{"report_id":"a64504c0-85a1-4ec6-9539-bcce0e4c2c69","version":0,"status":"done","tags":[],"date":"2026-07-26T23:24:33Z","url":{"schema":"http","addr":"830129coinbase.com","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":0,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"final":{"url":{"schema":"https","addr":"www.coinbase.com/","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"title":"Coinbase - Buy and Sell Bitcoin, Ethereum, and more with trust","dom":{"size":876364,"mime_type":"text/html; charset=utf-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (45638)","md5":"ccad2b8e922e319192d9096b2bc839a1","sha1":"bb42f89efcb0c627fa7e33ceee02e57ae2b7b770","sha256":"cb38b398caf1781440c8468ed7688816ef0c8ca553a5f0896d36a4b8ee8cee63","sha512":"a6b2aee8ee70d162f41665a4af1392488d0ef6dedecfb75e790a7b9d49e91099921dd5e3c17133b2c963d05d77899ea5d68971a3f70cbc71f0b305c886a9b40b","ssdeep":"12288:HnQLHa0Ep43TBAg66SMRwtbQrviUZ0kQeuog8HLHa0Ep43TBAg66SMRwtbQrviUj:R2","tlshash":"4715e92b79605a27c287879ce6616e987211c607bd279cecf79433712bcafe16e1130d","dom_hash":"domhashd724bb69e17340df624ddebb4fa34658","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"http","addr":"830129coinbase.com","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":0,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-30T23:24:33Z","useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0","referer":"","cookies":null,"exit_node":"qguvgzjxzsgb3vs"},"stats":{"alert_count":{"ids":0,"urlquery":0,"analyzer":0}},"detection":{"ids":null,"analyzer":null,"urlquery":null},"summary":[{"fqdn":"dynamic-assets.coinbase.com","ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2011-07-02","domain_rank":190802,"first_seen":"2019-02-14T08:07:16Z","last_seen":"2026-07-22T16:32:30.230756Z","alert_count":0,"request_count":5,"received_data":23805,"sent_data":5175,"comment":"","tags":null,"fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"images.ctfassets.net","ip":{"addr":"108.157.229.92","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2017-03-28","domain_rank":23334,"first_seen":"2017-09-20T16:27:05Z","last_seen":"2026-07-23T17:13:53.940276Z","alert_count":0,"request_count":4,"received_data":117124,"sent_data":2614,"comment":"","tags":null,"fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"play.google.com","ip":{"addr":"142.250.178.110","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":48,"first_seen":"2013-05-30T23:24:35Z","last_seen":"2026-07-20T08:25:23.783263Z","alert_count":0,"request_count":1,"received_data":517,"sent_data":555,"comment":"","tags":null,"fingerprints":null},{"fqdn":"geolocation.onetrust.com","ip":{"addr":"172.64.155.119","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2004-01-12","domain_rank":4022,"first_seen":"2018-02-07T11:23:41Z","last_seen":"2026-07-20T10:26:18.524578Z","alert_count":0,"request_count":1,"received_data":436,"sent_data":499,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}]},{"fqdn":"830129coinbase.com","ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"domain_registered":"2026-07-26","domain_rank":0,"first_seen":"2026-07-26T23:24:41.935519Z","last_seen":"2026-07-26T23:24:41.935519Z","alert_count":0,"request_count":17,"received_data":1570480,"sent_data":8078,"comment":"","tags":null,"fingerprints":[{"name":"Nginx:1.18.0","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":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}]},{"fqdn":"www.coinbase.com","ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2011-07-02","domain_rank":27619,"first_seen":"2013-04-25T17:27:27Z","last_seen":"2026-07-16T18:40:16.133788Z","alert_count":0,"request_count":96,"received_data":4961660,"sent_data":75713,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"Plaid","description":"Plaid is a fintech company that facilitates communication between financial services apps and users' banks and credit card providers.","website":"https://plaid.com","common_platform_enumeration":"","icon":"Plaid.svg","categories":["Payment processors","Miscellaneous"]},{"name":"Linkedin Ads","description":"Linkedin Ads is a paid marketing tool that offers access to Linkedin social networks through various sponsored posts and other methods.","website":"https://business.linkedin.com/marketing-solutions/ads","common_platform_enumeration":"","icon":"Linkedin.svg","categories":["Advertising"]},{"name":"PayPal","description":"PayPal is an online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders.","website":"https://paypal.com","common_platform_enumeration":"cpe:2.3:a:paypal:paypal:*:*:*:*:*:*:*:*","icon":"PayPal.svg","categories":["Payment processors"]},{"name":"Onfido","description":"Onfido is a technology company that helps businesses verify people's identities using a photo-based identity document, a selfie and artificial intelligence algorithms.","website":"https://onfido.com","common_platform_enumeration":"","icon":"Onfido.svg","categories":["Security","Authentication"]},{"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":"Contentful","description":"Contentful is an API-first content management platform to create, manage and publish content on any digital channel.","website":"https://www.contentful.com","common_platform_enumeration":"","icon":"Contentful.svg","categories":["CMS"]}]},{"fqdn":"fonts.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":0,"first_seen":"2014-04-02T10:51:04Z","last_seen":"2026-07-26T22:19:52.505461Z","alert_count":0,"request_count":2,"received_data":112058,"sent_data":1102,"comment":"","tags":null,"fingerprints":null},{"fqdn":"accounts.google.com","ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":103,"first_seen":"2012-05-23T06:57:57Z","last_seen":"2026-07-20T08:28:52.267165Z","alert_count":0,"request_count":4,"received_data":535524,"sent_data":2622,"comment":"","tags":null,"fingerprints":null},{"fqdn":"exceptions.coinbase.com","ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2011-07-02","domain_rank":76996,"first_seen":"2014-09-11T15:59:44Z","last_seen":"2026-07-06T01:26:18.892057Z","alert_count":0,"request_count":2,"received_data":2374,"sent_data":1168,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Cloudflare Bot Management","description":"Cloudflare bot management solution identifies and mitigates automated traffic to protect websites from bad bots.","website":"https://www.cloudflare.com/en-gb/products/bot-management/","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["Security"]}]},{"fqdn":"static-assets.coinbase.com","ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2011-07-02","domain_rank":379152,"first_seen":"2019-03-28T16:57:32Z","last_seen":"2026-07-26T12:39:41.973544Z","alert_count":0,"request_count":4,"received_data":184541,"sent_data":3554,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"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":"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":"asset-metadata-service-production.s3.amazonaws.com","ip":{"addr":"16.15.223.116","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"domain_registered":"2005-08-18","domain_rank":343394,"first_seen":"2021-10-14T16:23:39Z","last_seen":"2026-07-10T19:57:49.375989Z","alert_count":0,"request_count":1,"received_data":10068,"sent_data":645,"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"]}]},{"fqdn":"as.coinbase.com","ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2011-07-02","domain_rank":77301,"first_seen":"2023-04-22T11:36:40Z","last_seen":"2026-07-16T18:40:16.331335Z","alert_count":0,"request_count":9,"received_data":8963,"sent_data":6361,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"cdn.cookielaw.org","ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2011-06-20","domain_rank":2972,"first_seen":"2013-12-28T13:20:36Z","last_seen":"2026-07-20T08:06:13.19656Z","alert_count":0,"request_count":11,"received_data":997015,"sent_data":5908,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]}],"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.coinbase.com/assets/sw-cache/c_k-fyxQHB.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"33bfc9bad8550f4f1a541e86b7fc0ce6","sha1":"c4ee80d8aab0d7c19558eaf50588d53ad77046c7","sha256":"b12a3ec576fcb70a6da5ef2f99df42cef00c327073cf128d5c0a7ed013f2ff30","sha512":"9e54a89fc599f6b668d3cf1b8f6df13f93e98b4d101e87467232866cceb774e39aac32b6812c3b598455dacb0fca2d4899e837ff0c3b6d8d25466f8340ac0577","ssdeep":"","tlshash":"1781e888b174bbf20dcbf64da17f690df1282564440c9160f331dfa817da6969a61f1f","size":4054,"data":"","first_seen":"2026-07-26T23:24:50.357734Z","last_seen":"2026-07-26T23:25:46.865709Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DMT6TNC7.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"409aa385863eab7a2c430c9b57f3347b","sha1":"8d8c92b50d81e4ee3f26e61702c9c42bc903ee32","sha256":"7dc95ecdb2c5e8f88da4a22f594c99113b4b9fc64ca37862e9e22df4760f6da1","sha512":"a4f110bed5779bcceee980aaa82cda191b7f7587bbc2c752d12a6c3616612119c42fcfdbb4e759567d4c24fc6dd191e4d46a5b097188cb619933bd6d5f29b96e","ssdeep":"192:tR7EoHQy1ehzotyk1Mwfw5aNb/onZ51ctjksj0/+uHP7q34wwoXoh:tTt19x1G/1Fq6","tlshash":"ca12c8d1b2a8bbb029fed14540af9902f2193810883d61d1b332ad9c36b85c755f7f67","size":9346,"data":"","first_seen":"2026-07-26T23:24:50.341341Z","last_seen":"2026-07-26T23:25:46.904065Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CoOOoLEB.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"a1280bd648677f4d249347380f2a2064","sha1":"e876d98c4539c15762fab498234a9291773df239","sha256":"64491ce3c83bf5472ffe295b318f922ab79757a13e30b09042400f6b0863158b","sha512":"decf3d743f3e08e209d8ab8c70a1fcced5873c2e44b8c1e2564221c67b2e8e4600e515676245f54daffb2ce1ddf69e9473a92f2aa224dfa964ea8cf73d6265e7","ssdeep":"","tlshash":"d7217642dffd3c0a9433295cd185e2422158313ef14e8738f6315a3696fe5bb2514b43","size":1410,"data":"","first_seen":"2026-07-26T23:24:50.212829Z","last_seen":"2026-07-26T23:25:46.916534Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CobAleV62.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"a37ae0e963df8fec1a0e6f096d0d36d0","sha1":"c070cba19d8e0447259ad82d4a73cc2bda1f950a","sha256":"b4f8a13717fed801a9f27d206402ba450ae6415bc24ed64f28def8a6b86a2e21","sha512":"db3c1db2a1bb5a7161c3211147674ec50d832aedd15f0b996c9d7f1a76f083ccc016e30fcb3e8f47ab0962502b9481099c2b6dadaa6a6e570bc2f4fca8d29411","ssdeep":"","tlshash":"7181dac17ae47a7110dec34780af5e45b22c2531a92e9799f7306efc03a4993c7e4a4b","size":3946,"data":"","first_seen":"2026-07-26T23:24:50.233384Z","last_seen":"2026-07-26T23:25:46.832356Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_LuV1ZLXu.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"4fbb3d2b4140c7c9512059177f936fa3","sha1":"bca38087682a8a5d7a8d036f6a137b5547845439","sha256":"29725b169b26b586b8d088d09ff75e9f08e8d9bada0c0ddd13f042cdadb021c7","sha512":"7187a2de617622f678c2d5cdd75a6b4f9f7145a9aa46ef24dd55e3f0bb9c2d11d073bc51f4eba7b941993be21e6d29d9c8a4bb8a483d6c23289b0328d62267c3","ssdeep":"","tlshash":"150156dee6f61690930905cfd349a210b23798b7c4cc0b91f12c2b3d1724f0f4090663","size":850,"data":"","first_seen":"2026-07-26T23:24:50.29021Z","last_seen":"2026-07-26T23:25:46.900203Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CQDulsdO2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"775ff897b1b0d23ac7f97b906dc8a165","sha1":"95640c9f049e98679697f76d60bbe5f86d2923ef","sha256":"ee10f4e45e8052e832b2ae5246c9a67911a7fcbea6593e176f4d2ab4f1392c85","sha512":"fb446a5e8f8b127ed8469a2159085e60cb0ff84b6bfbdf4ba37d766ece5948ccaee1c4ac4d4ce3628a0f396b4a052d43f2d1e46022075ca5eb3f2f19682cf9df","ssdeep":"","tlshash":"a421eb8639b03fbed202121b91e20909332e223622ed4b15e23c6e5c13bea9ac154e47","size":1130,"data":"","first_seen":"2026-07-26T23:24:50.375492Z","last_seen":"2026-07-26T23:25:46.829375Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DmWypaHv2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"d19c9a57a47d9f5e288d499d1bc34214","sha1":"de8368e4e2836e63b4e1253dee22acdd1207c5d7","sha256":"c799d8f55d0d7d507b72b3528eb33bb43929132812e3376a01cf8735afbedb3a","sha512":"0e77b7c974e02fd4bd6fe5c09f460d55032f514a6e26c995a198376fd40eb6466c56d1c63f0df246da5fbab1ee2cc5d05257fafc33c7babd8b26aa41cd305f3e","ssdeep":"","tlshash":"8c312851c9f067a1d1fd37add121800113745927e5910b17e14a4f281bb6dc446abf6f","size":1561,"data":"","first_seen":"2026-07-26T23:24:50.296807Z","last_seen":"2026-07-26T23:25:46.870437Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"accounts.google.com/_/gsi/_/js/k=gsi.gsi.no.bMtc3RphJPQ.O/am=AAAAAAQB2CQE/d=1/rs=AF0KOtXf6ClT-FGnR65GecKaPcWWWRiN2A/m=credential_server_library","fqdn":"accounts.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"e0d1b2ad2cf92c087a283bf5dd5053be","sha1":"3d92150d4f20cdb9b962e63750019a7157cfb9eb","sha256":"7cfbd1dcc43c45a783e801d289b01a5d4b2779b88a6e41fab173427b035a8c24","sha512":"a42420bc80dc6dd944034fcb949dc8af2f5601d1c9fb1f69aafa7b137ec04551608af891299b147230182e8d29fe59353db0eca70b96cf9a54fd06f45bac782b","ssdeep":"3072:/dLu+DK9BXxA7hxy5uFALKNSZZ++ft2vJ:/dFv7hxy5SAux+fOJ","tlshash":"1d0409d8b3a270629363f9b4803f400bb17b68a9f4484cacf295d9d1adf59488577f78","size":188993,"data":"","first_seen":"2026-07-23T04:31:54.063998Z","last_seen":"2026-07-27T01:18:28.720457Z","times_seen":122,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_B_R_VgWn.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"4c0263bcfd30de78973f4afa0d88043c","sha1":"75aed3559a957c817157a3a50d1ee2c4beb50144","sha256":"35b9cdd90e146c52d5c89c4c8f43c7042f1d75f2bccb14f3174e75c2932e1a6a","sha512":"cf6ea3f9c244e196822526db1b90f4c394de4a8a9c76c914f5e7c33a0019b788d47dfa6c46246a1dfc754aa842398a62a8cad80583d069c9ced04bd7f206546a","ssdeep":"","tlshash":"3911e3c28af23e56f298975e853b0503233e5135958e4e55b33a5e6d173c885bb8cb83","size":921,"data":"","first_seen":"2026-07-26T23:24:50.209528Z","last_seen":"2026-07-26T23:25:46.886198Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_D6FEz_8I2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"4342947efcfb9a413d507c2b40adafc6","sha1":"789372ca5e1840779eefc3290e97ed4c50ad7d6b","sha256":"9ece4271cc6091a08d62d44f69f4028114e9451d99ae9f7098074774996f9823","sha512":"f12195eabbda776a22e3212dc8054cdb8a828850b4413779d93a1caf44bcfc2a1c82699bcbe90cda2a14c5ac1c67cbcc4160f1032bff8e2246d038865f182438","ssdeep":"192:FLpE6EbWUM3sPXEKEa0EdE2WAdA/sme7wHI0tdRtAbXFkrae9tAi:F6H6b3iy3AA/jZogdRtAbqra0Ai","tlshash":"17121acb726072eb7e27cb55403d254db20f60647c2989c07714f8fb42d7cd1a659baa","size":9289,"data":"","first_seen":"2026-07-26T23:24:50.424229Z","last_seen":"2026-07-26T23:25:46.842491Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_B5sSvvmc.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"3a9cf9cf773e60294ef591b2cc732ee0","sha1":"6efec759233ab70b729195b0b138632456d46219","sha256":"d6843c9a98591833f6c944c88335cb16fffb93bebe81cf15399e2e05554dc518","sha512":"e0d8be4325c926b4589d964385b1a1e11d3af90b1d8c87b6b5c44a112598d8b8da582f80e26f3f2f1f031760e11c115809055441a69b66a003210b830ae015a8","ssdeep":"","tlshash":"715192c17fe47a75018ed2d9c0bfa9c0f6146126943d66a1f220ace069a885701b5b27","size":3040,"data":"","first_seen":"2026-07-26T23:24:50.391239Z","last_seen":"2026-07-26T23:25:46.859589Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CfWNyu4g.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"cb2777a79e001c6933a2de9abf93fb74","sha1":"028ca50f2556cd35d6c5ebb24fc5c48d2a0edb95","sha256":"7290f5341282bcc9032615b854dfeb3e6bf4058dc280c99cece4693169207b9d","sha512":"317c5b0ac43df937e997c7d8a1a015ed8664d8ba69c029a1fdf6a925c0fb76cd81ba58cef00211db61c70b755129c8a37463140115be314b9af89825e984c208","ssdeep":"","tlshash":"c6e0d8db5ef05765850523fde66611013ba6022bd3cccf20e178da7d63ada8b8901743","size":369,"data":"","first_seen":"2026-07-26T23:24:50.316116Z","last_seen":"2026-07-26T23:25:46.877658Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_B5WAMJJs.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"1083a83da49d50e11de0b0ff1678ae9c","sha1":"15cfec14781b169715f6fe2f36fc7d1d2635cfd3","sha256":"39deaeb4d4f58b38d03bde6dd92e94a6a6d81da41720431fa2e7dafc818d8acb","sha512":"682503d50011898151119bc7641ab02faa6f363aae983f7b5f5e4a6ea833efae2c5027abfa6f7bc55e24e97112b366f2b42b6ad263821dacd692cd60b3894d44","ssdeep":"","tlshash":"fe4145c076f5fff10094935980afaa01f2286422687cb611f7719db06aa495784a5a23","size":2039,"data":"","first_seen":"2026-07-26T23:24:50.346832Z","last_seen":"2026-07-26T23:25:46.786296Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"68a03b063611391bceb41976d976280d","sha1":"181f197dba3adc1f36d397258066ea4817020fd6","sha256":"6b1384dc6dc1877158603570f38be29d9ca7bf660d2f118b6a3ad7692cb5aff3","sha512":"029c5386a42d6e9dff1701fa9f6cb9a6c58d163d68ddfe1b844689728e221d176e91abcf2849c8bac43f777e5b429f0ce5de614ff0f99d7964f29fcb935e0091","ssdeep":"","tlshash":"08a0129920523010c05741dd434336622101756e315101ed910144551e7e016030c4dc","size":80,"data":"","first_seen":"2025-11-27T13:14:19.759494Z","last_seen":"2026-07-26T23:25:46.932873Z","times_seen":99,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CnAYB1FP.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"2744eb12079e896f11cd7f499d3494de","sha1":"9dfd538caf3145f50c61a4293270055869dfccb5","sha256":"a9f1bf40360c9c99f4ccd66ade7597166353a876d79ee981c0768cb6f188053b","sha512":"e2ccb1c88d05bf3d14573ec96e48059260c2afdd389a033b1eb7e52a4addf256456fb435b3ee5abb3ebc621c5a3361e5f1e78cb27ca2d857bae4653a57975e4e","ssdeep":"","tlshash":"9421e2d18ff51d30a2d8d73ee25b93123e1e14b6a04d1514e13dade51365dcb44e8683","size":1282,"data":"","first_seen":"2026-07-26T23:24:50.214386Z","last_seen":"2026-07-26T23:25:46.821891Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BZxGBkuw2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"ea35d884d65563c00448c5b68abd0160","sha1":"ae880f7f2fa7c09fc8559b3a40a25a45ee15e938","sha256":"df145d21e0e090f1cf1075f9cb8226fc0faae00f8d1435d28bb130bafaf779a6","sha512":"2fcf9b7ea96d0a85d38bec912c57d27264de832938d38357b71af44496fa32e9edc05a2bf894d8f3f2d5903bb86b83b7436e4f6e51682cdc6beacf2b8d894b58","ssdeep":"","tlshash":"e201fec54ef5ba75d08a176ed46712c27328242b62cc4b20e13d1f3c13ecd62c080677","size":676,"data":"","first_seen":"2026-07-26T23:24:50.313166Z","last_seen":"2026-07-26T23:25:46.883185Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BrJM5Nld2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"4387987c159082786fdaaeba62fbc6a1","sha1":"75cca9c1fcecb895c814c229a9989c40c9395193","sha256":"5c0096d4ed7949273f32f92a3e9e26473ad6684f85d25ddab652ec6f2f21cca2","sha512":"6d563b78665198aac85b6b3b42f51ad3a46b22243200294be05e32b3ce686e6ccee30e9ba74312d825a33054c8bb8e1cc3b26e9ca60032437d28bbe85bf451d0","ssdeep":"","tlshash":"3c01dccdfaf01a72422716bdd05320017bb6a18283ce4e24c11c023853e1ae98982f87","size":706,"data":"","first_seen":"2026-07-26T23:24:50.231603Z","last_seen":"2026-07-26T23:25:46.823165Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/e_CrqRW1wP.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"ff7d44b6c994c437bae9f3259620ec75","sha1":"f6d1effff509e30436b83809a24369f60431d441","sha256":"3161834509d82a6560edc9f9fbd5aa9308a6530bbc19051d19f51055cc7c50bd","sha512":"4666239909ac9a3bc8c5d68f4647ed1c5e615ec67b33c2d67756534ebbaa0b8519cba2f2652c955a4246d8e51dcf714d639719c08e74a34fb1e133632be4ccdc","ssdeep":"24576:oGk/OVK1Q+TonBtTTG56bH+XBeX9WWow+Ug2V5P++qWWdGEpDkt2:oJ/OoGioH+YNnXg2XP++qWWdJDkt2","tlshash":"f3d57dd7b254f63407a385b6403b2546b33479568c0d90b4f2a0deed3bb8a45a1b3f7a","size":2828577,"data":"","first_seen":"2026-07-26T23:24:50.432341Z","last_seen":"2026-07-26T23:25:46.925847Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BGeBiUJx.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"097e1f08c5e766f9680771113ad9bbb8","sha1":"a148626a58e328b04524305e6b6af4b1e0198b2f","sha256":"b8266ec867de8118255c5bb3e824977eb97e98e6e09088f048e4b63524305c0c","sha512":"25196d7fdc0f7104c81fe4a057e19528bf7861ab1c0685a92071c25df8b379983a5b8228a53a3acbef01085132fee088952a0227fa592d5b520505d682eb0c6f","ssdeep":"96:xRKyZpLK0L7xVLKZPk4y7qltkCL/HJTakkxSoJVSyxWBYMmJT7MwFCYBICCo4Fvf:HKyZMPk4yGltkIHJTakkxFjEYMg3C0If","tlshash":"a7913e016731ce344a656ea8db4b3059aec680d3dee6dc1ab3802ebdd7fa50458b41e6","size":4300,"data":"","first_seen":"2026-07-26T23:24:50.379413Z","last_seen":"2026-07-26T23:25:46.902025Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BxpwToI9.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"6712b54c352200af47fce97c3df53a3a","sha1":"21351ee1889c2f789f2765aba5dc8849ebe753e7","sha256":"3ed8d46546eccddbc6798c4e22517600e6925d406ecc8ac9e8f09a42166016bd","sha512":"a3af1f9d35620d2b8394a6e1aed049880d823446c25b25baae1eb605766d9da089972e9cb760a5c5cb3407a93b8bc3443d61b8f6c7edf10267257923242bb824","ssdeep":"","tlshash":"7851342930f61fa8b807ba6dd06e510c352eec19d67f0ae4704b522933bd5fa6451f8e","size":2861,"data":"","first_seen":"2026-07-26T23:24:50.343395Z","last_seen":"2026-07-26T23:25:46.907645Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/src/main.tsx","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"fa85c42cf327d169530d33a3aff35b2b","sha1":"dcdb5c6edadca17f372e025aac4de8f68f39075a","sha256":"4e76ed9e63d03d4fbb7803fb84d5ec75531cd45f3cb6fa535a0fc503dfa491a8","sha512":"7fb5b78190cc76efb3581c43fbc001b54742c758d55409f9b40351d0b8116dd036ab454e6d2804502cec90c72dd677637aa28e3c6788de764b4eacecec48571e","ssdeep":"","tlshash":"8f3144631088adb6bc2b24adff15f542172c15d5fb14300cc284577a56b6aaa273bd4c","size":1622,"data":"","first_seen":"2026-07-26T23:24:50.385634Z","last_seen":"2026-07-26T23:25:46.834621Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DO4TPcwe.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"5d95e209938f315f914f277170675b47","sha1":"c85684227dfdbf83b02be05c8f21bab9d838595a","sha256":"d9801346431fe6acb765f8630eb298adfec314b79ef6fd9bf3d044d299705795","sha512":"d8fbd278df822c6e702059e1acc0f1afdbb9b4892eec22e07ef269c7ed5bd622d84c913a2a8a79dd0f09748aded11e61932ef0904e8b9eff5c601beb180616cc","ssdeep":"","tlshash":"a8f0dd464bf02ba9cd23323cc1a6678637285112a39e8b11d03a4a7d2b7e4c68519253","size":639,"data":"","first_seen":"2026-07-26T23:24:50.23629Z","last_seen":"2026-07-26T23:25:46.836158Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/src/index.css","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"introduction_type":"importedModule","is_inline":false,"md5":"b8ca3801321b4f700d9664cbf85a3e5b","sha1":"3c9c6696ba54646e9b6ccca1dabec5003295333f","sha256":"ed8196030bd4335abf9a200f846d3f4a04f8634ddf2285d423948683f88fd6bd","sha512":"258ee01371dd6d70df35822e1e553c1dd95c9075977553e963b39efac3df087511d9d64dd427c33428c758e7c5c37bddcfae2ef04739e5c36aaf56e27778c4ec","ssdeep":"768:fnDjdl7/rR/lSUd0nJLMtpFir1Zk9dODx7goHX0Q9ulcV:fnDjdl7/l/7inJLOa7goHF","tlshash":"40a3e32f7a92442d2d724df7f2d75169a3eb22c48d3597bdafc910524f8c3e0a89612c","size":102851,"data":"","first_seen":"2026-07-26T23:24:50.373155Z","last_seen":"2026-07-26T23:25:44.782173Z","times_seen":2,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CvaPVRgs2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"5fae3d41cc67a9e9fa509f29851154f7","sha1":"75a79fc22b9514fec1a882b49dffa7a2517df7ab","sha256":"ee1be9747f3282bdc84a44bd4370613c393cab150cc2214499006a49b8c61924","sha512":"461dcd3a5c645ca2438a8e7658337bcb418ac4616b9936a58a349ce46d0628bbe133f9d6af742c47bbe7428cf4f14fc900ff9658ef14014f35db970af1ed2212","ssdeep":"","tlshash":"c411ccc665f43bc0682b19adc13b810e3b5fa16e958d0a70e434627d2b646b47223fcb","size":868,"data":"","first_seen":"2026-07-26T23:24:50.263953Z","last_seen":"2026-07-26T23:25:46.894896Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CMyhKJrW2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"092fab6cf95b4f0b1118cd92b6db3fe9","sha1":"d96deaf58cd341cbdbd54659db0f4bad74012fee","sha256":"644770d00abc6a40ee8e234d03ee528303ea41cfbc32272857c961ea0853b3e5","sha512":"b5d54502ea48a53e3658369c23b21448626d916cc4d38fd1e117d7fa24a48c728bf9396732d50ebef1590dc338cbe43c51feb4437b6fc9ee2640e3db54a4694d","ssdeep":"6144:qvF7CadiLSzctN7Ep+sGLz7Lz7FWufrkcEWuI:bEpPelrV","tlshash":"18540ad2e16130f8dcaf2137a9688ba62fb06242a4d362f695d514790742f89f353f7c","size":285629,"data":"","first_seen":"2026-07-26T23:24:50.203435Z","last_seen":"2026-07-26T23:25:46.819754Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"d1ab6efdaac008999f73ee1288647265","sha1":"8aff28069c6605210c0352c39bf3cedbc721946d","sha256":"685d4969e7a6eff3dc411110f176baaed5044cbcf3b6baba5d11bbb06fd56ef4","sha512":"b844b6087570a283ed624e4fad92a47fb31c885aa633ea82e89fe194f94eb31b0ea2ad7772e3e0ba121aa6d4f92f2a07ddf2be827fa7aa27aed968f78557d06e","ssdeep":"","tlshash":"10b09200800a58b081aefa0dcb43b230b0222c265160a016be8cc2332f6fdc3b020682","size":123,"data":"","first_seen":"2025-11-27T13:14:19.754832Z","last_seen":"2026-07-26T23:25:46.922015Z","times_seen":98,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/@vite/client","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"2c3791925eec5a595a13bf340e6d74db","sha1":"d958ee9348c363fb21782f089e0cddc4c36758f8","sha256":"c0c620c5d60a1fa4e15b9179a12dfbb8fd37c1b1f5a5883fba7d5c93c2af1f55","sha512":"5884062f749877bc7fe5a6c59a8b8cc32561dd2acde2d1d1905e1d91075c877ff02027ff6d4471ca885444fdedeee4c696f585afa5c526dbed5a447138e2d04f","ssdeep":"1536:P1NQcFhP5sFmIb5BRcw6OEQJfiML5JaDUHOpwNgYFsY0g1Dv3t/DU2rYRNxrJL/:3Hcmir5f5JaDsOpI08R+NL/","tlshash":"2d04d6519e4a6071cffe1173f48d533ec29760034ab295ea9087d62f2475d3ac3a9e2b","size":178928,"data":"","first_seen":"2026-07-26T23:24:50.397457Z","last_seen":"2026-07-26T23:25:46.813588Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Dt2kXcs2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"0e4287c008daef7d8ceb906eb38fbf06","sha1":"73e60f379f50299523d1ae3fe713d4803e3d4cc8","sha256":"655ee29250ccbb366be53bcc4a4949ce69d91dbd1f87ca33ca6ad6d9a29b5156","sha512":"0d75405464911415997ce70b60508c178c1eee834551153ab7ebd9074fae8a0e60a6d02e6da611e0f5f36ab81795e6fa43a9fa441a651e09935619c2bb734b8f","ssdeep":"768:ieaehfPqyiL7FrqdKppACdgOhg1uJjyv9P3DcZKw6Y5Gz0tP322ufknDx:se588dK3vdgEJGW5Gz0P","tlshash":"02d20b9ee1203678711e897988b3624d761ed20dda4d0dac782c5e0d17cafe4b163f9b","size":29066,"data":"","first_seen":"2026-07-26T23:24:50.337592Z","last_seen":"2026-07-26T23:25:46.861299Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"292422f8a688e29ab57deb2c47f85997","sha1":"23aaba7b61b7cb0b7e60b131b9bb9cbc7b142ee1","sha256":"eec9576e2299d65be44f5ce7f20e19599987cc02bf73b166f6f0468643c309f6","sha512":"9c3b3777d2697257647659ade3114f45ba95bfc76763a6052dc032efe4767ac854dd47a51170be88aa8cd239c872f56e4ed8821b79f38f69269bd4eb6ba1936a","ssdeep":"","tlshash":"45d02ecca00e0d388bb332962b3e620030202109705b9ce0393f830c2f12f07d3c8a88","size":272,"data":"","first_seen":"2026-05-29T10:51:52.093089Z","last_seen":"2026-07-26T23:25:46.923049Z","times_seen":16,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_ChMEsMbq.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"9431f85743324d13745462976b7f0f3f","sha1":"a5223491dcf07cb0244c5067d13c8133da86cf59","sha256":"cdb927edd4469edd46323302eb1dd6a7e815b05aa49e13c8d2c8b32a4063788e","sha512":"64ee69a3fd613824e66b0b18efba2005c4fe94d15dcc659960577e727ea9b57aee5bfedb4ace5c3024f69799be83a426f3eac1b379e16779928a63fd139c71e0","ssdeep":"","tlshash":"824142973bf0713b0af2403ac20e3004e67a91464948be07d03aae9d2da8e559b73686","size":2325,"data":"","first_seen":"2026-07-26T23:24:50.350013Z","last_seen":"2026-07-26T23:25:46.802795Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Cg6TC-7I.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"f09a2a5aa31cb003bc1c6efc0215dd01","sha1":"fd1ea7277d90f3e9de9f979e1780b6c95ca8c3a7","sha256":"19c28c519fcb18983b725deda4ccbf79d1f025da539505f0f0f218694ccacf47","sha512":"c97665a660b4e996d8226fcad21ba3ee5679147ed4fc8ccf830dd845278e84038ddd6a724734b227b8a28892046c42cc1b6838f05a374ca0a492b5ad124d1885","ssdeep":"3072:zzAqKVgMaXP/2BxqZGh3n9/XPlU7355fNd/z7BFFn7TiSTHHbMOckbqdVdc0Q:zz2VgMaXP/2Bxqwh3n9/XPlU7j5TihrW","tlshash":"d95438ea73a6b47303ed526990b60240f3355999540c502cf27c98eb3da9c4366fbfb9","size":287377,"data":"","first_seen":"2026-07-26T23:24:50.355265Z","last_seen":"2026-07-26T23:25:46.82795Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_ConTLr3n.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"0695d81bbf1ef24429d945d2fadaf33f","sha1":"368cf7d57776c84aee7a8efbe0b940690452d7f3","sha256":"73af5362b5d33159efb301a00659c34f0f19d206eb1e3952b678675686805955","sha512":"4a8119841f6ddbf9934df5caef788823fb27953fc44174eb19e7c112c45aaa7c7a000d60622a5df948ef626d31f1c1b78c59e939468796688dd96f07eae81e64","ssdeep":"768:1wyexDhuMbU3Kj7JGiJAgvJrrgmbbchKZMbjP:10tAMbQi7JbTtNbbchKZMbjP","tlshash":"73b229c2b6f0f0568f7e50db50194005b3673e1d282aa845f76a2c4b760ed59a2cbf7d","size":24754,"data":"","first_seen":"2026-07-26T23:24:50.276136Z","last_seen":"2026-07-26T23:25:46.844887Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_8_hsTCsL.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"847c7da94210291f27395196b7bed176","sha1":"b593d325545bda2076bc40fa13d50644b01b58b5","sha256":"08e33dc101946235925a4308bce017f8857dc76671dc5b558ba00d81c439fd9b","sha512":"648de1a161b368173b25a9e99ca997bdeb6d355b0530daf624ca9f6df4d264738f11d591c4270197a2f7fe85a3e360b1b526d39471251131e4d5dea2d42da488","ssdeep":"96:xi9DKVyxq36m24wVu28wjCP2f4QdLQWkIprHC9+sEHg9nn:sEr3f2VVu7wjzf4Q2WkI4EAl","tlshash":"53b172e63391b476c31b0627806f0015f7b47a90281f582cb668b9db762499983e7fb5","size":5548,"data":"","first_seen":"2026-07-26T23:24:50.367721Z","last_seen":"2026-07-26T23:25:46.875375Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Dts15qiB.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"c903776d9baf4802c02e3cabc05ea370","sha1":"96192ea049a8350e25a90739311a8a036af30a9f","sha256":"b68c0375b1c0f14f1e4d9ae147fa1caffea76d99746d98fd6238ad788dd21a52","sha512":"659bef734fb6fb53d6fd22f92b9c37ffa1a11a76bf799945b411dc43f58a9326e162fe882b8b783aa5684dcb6f4321b91eeff77e26b50eb32927d713828712c3","ssdeep":"1536:WldCw/KDnCs2VUELKhFNcPMnAUNrHHbiBCYbPtz4EWNu:d3dJcPMnAYiBVbxWNu","tlshash":"c68329c6b3507135d3dbd619c07b4704b33bacd89809912c7a7aa9cb16a068466f6f3f","size":85383,"data":"","first_seen":"2026-07-26T23:24:50.323686Z","last_seen":"2026-07-26T23:25:46.805523Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"accounts.google.com/gsi/iframe/select?client_id=1080018929571-t143o72j7g4a93rio80higse5c127qlt.apps.googleusercontent.com\u0026ux_mode=popup\u0026ui_mode=card\u0026as=P4YV9BuuJfbPkhgedIgHB68Ic8tZeptD9W32v2w9bj8\u0026bs=Ipbn%2F3QC3VM9I38GIrtJVmLS5Dk1IjofnbHBYLgAhPQ\u0026is_itp=true\u0026channel_id=812f53114c3fe45c26c43b93689aef793f17c7859e69e0ece104b435922a6230\u0026origin=https%3A%2F%2Fwww.coinbase.com\u0026oauth2_auth_url=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Fv2%2Fauth","fqdn":"accounts.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"027a301a7b0c40bdf77e23a9992bd8a8","sha1":"8a3dc366071f008443968ed684952d5b31982c71","sha256":"3c9c43e60a3f8b0feddcd5393f314bd231fb25d03db1c5deaf2d81679dad326d","sha512":"fe19a55e003efe568bbdcd375915c9e36696378aa729a2f83dbffbc0e845cbc4da3ee415a505d949a998c9a43413657d75e3d3059f6a1764db90bc510418bca3","ssdeep":"3072:3dLu+DK9BXxA7hxy5uFALKNSZZ++ft2vJ:3dFv7hxy5SAux+fOJ","tlshash":"520409d8b3a270629363f9b4803f400bb17b68a9f4484cacf295d9d1adf59488577f78","size":188992,"data":"","first_seen":"2026-07-23T04:31:54.05849Z","last_seen":"2026-07-27T01:18:28.713276Z","times_seen":121,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"accounts.google.com/gsi/iframe/select?client_id=1080018929571-t143o72j7g4a93rio80higse5c127qlt.apps.googleusercontent.com\u0026ux_mode=popup\u0026ui_mode=card\u0026as=P4YV9BuuJfbPkhgedIgHB68Ic8tZeptD9W32v2w9bj8\u0026bs=Ipbn%2F3QC3VM9I38GIrtJVmLS5Dk1IjofnbHBYLgAhPQ\u0026is_itp=true\u0026channel_id=812f53114c3fe45c26c43b93689aef793f17c7859e69e0ece104b435922a6230\u0026origin=https%3A%2F%2Fwww.coinbase.com\u0026oauth2_auth_url=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Fv2%2Fauth","fqdn":"accounts.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"687a89dd1728fc52e34926480e116cee","sha1":"4ee52abe1f1307b2ee5437cddd6bc1065f96bb39","sha256":"f341b3b571a1c9ecb07d2e28a74336432ec8fa3cb0cb45c82c4b78b91d326dac","sha512":"825819ea0bffdd7e40795c4e0e8f949a8458a6996cf79de4fa50a170e5ec964a27c6e2f73aa65f14696f5cdae6452156a980f1b34f2ccc6afe08e33f77a51197","ssdeep":"","tlshash":"59f026636b7b6f48bc25d4cc1545ba4ede9f1d585c9ca9c420073d9249c0e21055dd2e","size":554,"data":"","first_seen":"2026-07-26T23:24:50.437198Z","last_seen":"2026-07-26T23:24:50.437198Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CI52bQ1Q2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"265d7a0df74013db0bb8293dfcc7e1c2","sha1":"131e42aa597d152cc30bd60dc69b44c8b51320d3","sha256":"3253f1b317c5e3d4f7ee1745c2b9de8191a723cd1f662b3010d5367d72ef7356","sha512":"8a5e8971f9274e6d853dc5d80b8bad70c1cb3cee06c55098140d8505ec00842d75a70d6c4f4b6a233038d477c4494e284a7d40a04634894e9fd4911effd1e29d","ssdeep":"","tlshash":"2a31660ea7b576d59296107840769c6a771b904631de0652b238059b13f15387a23f97","size":1803,"data":"","first_seen":"2026-07-26T23:24:50.239962Z","last_seen":"2026-07-26T23:25:46.884706Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_vjw1eDNY.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"5d3f142b6f3522357c8c24cdd77e657c","sha1":"dbd99e776102036d3527d06ca45ee1353614b8af","sha256":"10de12aaeeaba4f90aee036f523f23c1282f59906ef4cdd5f5f566024734d19a","sha512":"bed4acdb2a03a78bf2ba79edbbf80a73f9c89c517492dad8ebf7d23ffd7fc3da75517bafaaf30a9f27c5900944f480ebf8a3f935224bef5b51c2a5c5918aeb61","ssdeep":"","tlshash":"832197ded5f49be0fba23b6ec0a202956338102b80489a58e4a0de6533381ca9675927","size":1181,"data":"","first_seen":"2026-07-26T23:24:50.404962Z","last_seen":"2026-07-26T23:25:46.794101Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Ba-_iPNS.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"80ce96d219c254036db9133260b49426","sha1":"078517552cdc477f630c824d6bf156f11dbe22e7","sha256":"943995b14110f4a549dad4580ab938ca0c46daab52044354654fbc0ce41b63df","sha512":"a35a7e1dcd66811486be3e20c5e31a1b41f51258733b2c74ea8886a7faf28b2561e12b780c8848fc785f45008667cc948c711d24ebe6b98d5dfb5aaca82c5fb7","ssdeep":"","tlshash":"9d0165887ff87a65cb58160dc1876000f35dea5bd9dc4b20f02288283f55e3ac411b93","size":733,"data":"","first_seen":"2026-06-29T23:42:00.342672Z","last_seen":"2026-07-26T23:25:46.885444Z","times_seen":6,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_j0SAF0un.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"d2fbe1d0b3592b0c3ef3e87603d9ace6","sha1":"70812f9624b62abd51ea68c272f233b54dccec87","sha256":"0051052d5b941e93543ef1ad6b00c420a1477243893d04799c5d79a5827c458c","sha512":"88faed74dd49e59c3b41c8285ca5f83b39d998199340b4bb3acc851e5db36b8d7abc83b0d2a461ca4d7da4cd157767dc1d10ef26529fce6de1be601d69bf268f","ssdeep":"192:ib26y8LP2qaunv4Xa19z13KgKu2o/AP/+4AP/+rSX/:ib2boj3AMz9TKu2omSP","tlshash":"af22c5d8a2753026329bd9a8d233741f225ce1b2ec4616e47067dc1e1bd12d593e2fa7","size":9945,"data":"","first_seen":"2026-07-26T23:24:50.23812Z","last_seen":"2026-07-26T23:25:46.822556Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CfT0_Tmo2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"5708429a2f0187f6c4b1c3a0f6a99e0d","sha1":"4e1e727800ee5827bff63f61037a624f0f08e11f","sha256":"32681595d8328ee509f07ad855b7aefe7ee2c6decd3040c242510207c1ac4384","sha512":"f13fe29779956dfd5b437297e5a14cb761759ec99e2b43f17bdd12420ea55dcb8498355f4f28447cfaf1dc848a289370e2d91a55740b68362612918c8f695094","ssdeep":"","tlshash":"5241aaa5af91127831c948d5c3366c1ab2995046eecf8ae0f03b4e5717e84e5c1a1be7","size":1949,"data":"","first_seen":"2026-07-26T23:24:50.418491Z","last_seen":"2026-07-26T23:25:46.806643Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CnBZtet6.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"79beeb56a5ea6378b9698b81e1a008d6","sha1":"d9614b3f2b9dc15f7bbe0d4765bff7c1cf85de68","sha256":"ecf1b0b1dc0cdd5e1df5989b10791930a57c1e6440634a415120f6f4aaa0b21b","sha512":"dbd8b496be954ce7ccc9161076dea435a3f61635e78ce448172a01d97e08236483f2d8287d9cfa84a59a6914e7ee73db7e901f5d4604457b6bcf283c1e8feabd","ssdeep":"96:x4D57SCIfBjbEDVE1Cpwo3daC1bk3HhT8iDUeelZ6Tev/UZUSJLgClgT9yACOy3z:SN7RIA8CVaobYHaJdnRFvkACOyj","tlshash":"bff117dfb22031bc321789e48023530f714f5553bc4e0768f5b2ec6a226ca9971a7f4a","size":8039,"data":"","first_seen":"2026-07-26T23:24:50.421618Z","last_seen":"2026-07-26T23:25:46.84406Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_B2l-mZ2r.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"b753bea329f10b775390b98ebf2381dc","sha1":"c44cd21b3852a0800a2894dcc87a91ee91a315dd","sha256":"8d7634693375a40ceb8f1acf9c78c38ae72aeba28c945de76b96ba219179c0bf","sha512":"3e4901c4ffd3ff8e549adb2455cc7678ccec954a6288481124a7bdb02667c1f241c528c8cca94f92cfe3ec3f8b94129112f7f0038e43237763f3dc841f617f9d","ssdeep":"96:xtoWPbugaGUhffankfjvTn/6tao1F1qEkQkCxKwaZFk/0:Ym6gzUhfCkfjvTnd/CxZaZFx","tlshash":"12d19993e17922683a2b5865b0d3600f6a45d0045e9ff4acb1211d2f17d9cd57a72fc7","size":6268,"data":"","first_seen":"2026-07-26T23:24:50.363213Z","last_seen":"2026-07-26T23:25:46.911284Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Cc6q9Fpd.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"8b0721a2d85259b5ead1329a1c13da81","sha1":"33a53f375c94fdeb98ef92aa9d4d89496311bed3","sha256":"9565d5dbd6c81886b0fd3c48bc021e28fca86dec2f0af1977179a569ed68c3d3","sha512":"5779e73cf389ddea92b22a946c2b4247473fb3797eb59288da74b0b3a09f556e92321c5bbc88ba8c773d894fb338f70bc8af8f502fb664c52cc9bf5797b96ce0","ssdeep":"","tlshash":"d541649d55b0371e90b7243ee05e0b2f3674a0646f5e4ea0e170be6eb3808a41f21a97","size":2098,"data":"","first_seen":"2026-07-26T23:24:50.413286Z","last_seen":"2026-07-26T23:25:46.782832Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_lSRSIGb_2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"882e0a3d4f846819370d51b589bf334f","sha1":"e26eaaa6cc193b3b720b645d58fe89b567cb5ab9","sha256":"51a4dfe6a4620a0553ca21389b1adabd1f12d5ebb0fbe2be387964fe469adeeb","sha512":"da728017670f570de10cdd107a0cfc1197712c983706a690ae1370a3a97df7dd52bd2e53c3459281a5fae02c0543ccb9e9ca849f5a1c008811b6eb1cb7d1fdbf","ssdeep":"","tlshash":"1c214287d0742462e48703ed9279014b2e3c61b683ba4b6eb1387d3c5f2ad9a9980f17","size":1326,"data":"","first_seen":"2026-07-26T23:24:50.251614Z","last_seen":"2026-07-26T23:25:46.86846Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DQhT3PVT2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"8dd368659ae860655debf548f46388c5","sha1":"b66fcb659d80e009f3fb7b41d079359dff48ecd5","sha256":"d24fb2d7f82fe93aa71358962ba90cb720058b060563fd0fc0b69dd895dbdce7","sha512":"561a50e68c9ad56092d25806be032407c71325abe60aa104a65caf35ff68f561fa377ae38fd96674dfc4a4c704c9064d055d4d99b7285a6963a7824ea29fc307","ssdeep":"","tlshash":"87f0a2b99ef06f658231157df19359012294027787dc9f10f0398b3f13eaac6d964787","size":619,"data":"","first_seen":"2026-07-26T23:24:50.330276Z","last_seen":"2026-07-26T23:25:46.872806Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=08eb349e","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"introduction_type":"importedModule","is_inline":false,"md5":"c511c82fbd945e4aa56f40542e1a1593","sha1":"ba8130f8bd4c5a1a534b6291e31649774e54ac63","sha256":"7f6c1047b8ea1673707003365ee639e859df40b6597249356fddefa46fc7ef98","sha512":"b874ab7f2f910bb3e0e084a650826e6943a2232b6d05d0757b275aedadbd91a8f44192d0dfb8d765cf459af84e2100d60808711721d17be74a40171014406d7c","ssdeep":"384:guR3lC+2NQVUxpv3o9Q9CCdq2f2w2F2AurfsVkYYIHtAlkA:bR3aAUxpr9CCdq2f2w2F2Tr4c","tlshash":"3c42840528ea76a44d13a0b58b7bd547f52af44b062deea4f98cc5382f0409d81eb3dc","size":12375,"data":"","first_seen":"2026-07-26T23:24:50.415811Z","last_seen":"2026-07-26T23:25:46.887741Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DouJRUqN.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"51f42b21ea15c6a939cc8cef255b35eb","sha1":"5a2c997a227906a7e89eeafc383ffd823ddb3a11","sha256":"09bdb01afa10d88d600911165972635a049d8f57cf6eee61b36ff21866185f4d","sha512":"444f28b5efb4f93c7487efe628e79602b45a900b57bcb960a8dd75fc4edcf24c38773044f89c655c6fcbf60118ffa9389e535485eeff1a95e2491d04f86f463c","ssdeep":"","tlshash":"bff04ca2e9f01bb5319823afd2172241b6481167ab8e5b10a0288a3a3758e8fc494783","size":567,"data":"","first_seen":"2026-07-17T19:28:31.610676Z","last_seen":"2026-07-26T23:25:46.88396Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_FgfDFMHn.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"cd8f293a31f311e1837e4bf513560179","sha1":"f7c2bebd308902941b9a9cd9e48b05b2837b3bf0","sha256":"2762375d14351cebb5907856f8c722bebd0a7c1e35b59a4e6e97c7c6713eed9e","sha512":"c7b6ca917ecf83d3f959f86df98c618f7acbdbc1f54fe6befefb1621117073abb4dba5598777a892bdae0cec554f638ba979008d15fc8a5d1f79cf5a8edd9398","ssdeep":"","tlshash":"7641508676e06e5e8e49825540d70829122c2132689c1f80f3bd7cde33b5ae5ce99e87","size":2233,"data":"","first_seen":"2026-07-26T23:24:50.280273Z","last_seen":"2026-07-26T23:25:46.910406Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CUCiUZKd.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"7c28094c13a1fd19d6889214c4b739da","sha1":"b489d8e14acb044b830b1de0c3be7cecf31056ca","sha256":"81cf3dcbaf641947bec8e8f525aff50990e35c80fef81fe2498bf2083f1d817e","sha512":"434abbd2ebc3d371600ae3fa3f3c0b14b4ccd89a31e069bfba470c87b973a32565f60f20253a9e0710633bc6180a5ecdcd060a77410e6f33faf5528d3b8498d1","ssdeep":"96:xWgX5O6yRKRhFNu5rrV/toK2kDtunXFu0TkMakfzhIU+4d1oKwpDJXFzzJUNmO:UgAYxMrB/toTk8n1uikDkfdIUNd1oBpO","tlshash":"f5c1e9cdf1b0bbb0948ac680847bc84bf21d2888501d66a4f7707d59369e4e79473f87","size":5667,"data":"","first_seen":"2026-07-26T23:24:50.273698Z","last_seen":"2026-07-26T23:25:46.880852Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_kdeVV4Pp.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"d1db637c3ce769a7c90a566a70d613a8","sha1":"462ab16cb8de0e2effd3024531f3dd8c62a002c3","sha256":"3cd0b6f8cb9da76da5e40a9ebe26286947f6a89f75f63cd318c66e2f00f91e1c","sha512":"fdc35d689c036984e0a93024c4666b554b2c3d87baf69644001e84e77234485166e6f86856060dd511dc497fda3817918fb09e7711ede051fd60c6b99b2a97ad","ssdeep":"192:dSibRpRff0HJLXS02gEKl3ie0Q7v2EYvKnlKU0jxm0T9jH/y7Nhm:dlMC8E23ttvnYv66xLT9Gxhm","tlshash":"6c720cd1b7b43ae35adbead790e3852673397210e85de220f13664332971c5022a7f2d","size":16519,"data":"","first_seen":"2026-07-26T23:24:50.24964Z","last_seen":"2026-07-26T23:25:46.821218Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_bGrVwuh7.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"cdad40bbd23b92cc159c5765b1df7753","sha1":"8049102530dd90b715608af47fe90c1b6c82a69a","sha256":"964cc10fe0af1b136bfb3fee67f4a095db394b317c04b0bf18d3869ca56fe97c","sha512":"6e22404f99dc90dd552f105ea6c78af0dd0545ab635901416dc580b45c4518922695f3a266755794106cfe3db9a4243e006099ea19eaac2e37cbd9290dbc43cd","ssdeep":"192:sAkcoWAO1eRkHjEJe1gB9EEIIzxBxxUHVkf8:seZ1rjEggB9EEIIlB/UH/","tlshash":"83d11ade37f0bad55051f3e6da4b41d4f50d50e77c6a8a35f3b8ed305a418ae8a1a803","size":6582,"data":"","first_seen":"2026-07-26T23:24:50.299048Z","last_seen":"2026-07-26T23:25:46.818946Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BEjatgdP2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"09d71f393c1e1e805c9cbd70902fa208","sha1":"29491ca90f85b8e33fbeba78f25b052fbbf3efed","sha256":"0d10a7967f6ea4baf5311f8eef8f4a604507500f8756b30b2cd199bd479bec0a","sha512":"b562d9f2919f0e5f6710da059c0d29aaf1ec3025c8a5838f11771ead96a3278c5d8183b746d21af45b70562c091cc3f8f455c6bac2cd8715fca155d6a096649c","ssdeep":"96:xWtFzqP8nipwvE1K3oUAVNiS7nwQmQ7oPiHGLXdZE0xiEKwEtLe:QtIP8nievE5NlDwtgojLjEAiEKP1e","tlshash":"a291c4a36275f23a5309027ef0020116fb70c174ed1e94abf6f34e486e54a4862a3f59","size":4208,"data":"","first_seen":"2026-07-26T23:24:50.229464Z","last_seen":"2026-07-26T23:25:46.828661Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DCqe3bqf.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"310de874c8908003b0455ad8454ff800","sha1":"c8d2072652bac617f801896eb66a5d52ec1df6b1","sha256":"fdfe846e73780afc0afafaa81201921274a8db595c964d4b115e2786446d1dd7","sha512":"8d2607a9432a8788cfb0becb3cbb80d07688d015631abc537fa18e8b338a67f11c322ad3eec3b7718980e76089a52a40092845141c278fd294aee0c46d43f089","ssdeep":"96:xaZ3Gw8uboKBbDLXFsM8ayA7BIwldwkjPa54OpFm5NX5w50MY61UvRmS0K:QGzubowbX1D7BdVu54OpFm55Fx2K","tlshash":"4eb13ce0f37539704c5203aac096e680f5197423c82ea6c8f77868d51b6cdfbb590e53","size":5341,"data":"","first_seen":"2026-07-26T23:24:50.30375Z","last_seen":"2026-07-26T23:25:46.892381Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/src/kraken-theme.css","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"introduction_type":"importedModule","is_inline":false,"md5":"98548eb9987a4f0107ea5d618cd7bfed","sha1":"9760bb2fb648ce7500ffe64b9e0bf34747c7dd43","sha256":"a7dcb855cdc3165d7d29edfc47a1b063ce069de909faa9135917d24f6a1c057b","sha512":"73f6defb26fa41a9bcf8a53671cd51f4bfe167445404c38bf759e7c3ea079dc9e7abc710f4c3651041d26264bab6929693c1a84f131369ef0e362b6284a2210a","ssdeep":"","tlshash":"9d31ce22673b62746c120faefedeb2107f78394488343b66dfdcd95d06c61f442551a8","size":1817,"data":"","first_seen":"2026-07-26T23:24:50.408134Z","last_seen":"2026-07-26T23:25:46.837715Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CkMdy1_k2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"17c689be543616a18c457c8372b014f3","sha1":"1cc695912265649b05b2abb52b79f2da361f0faa","sha256":"2376bc4e17127a42bce1a84ef297361d67fa5d93f75afa7f6c28b540cdb1c660","sha512":"30c4fbdbf9c287b0ac13d4d4e76a865ba87eccc20b93df9f5e784c9322dd175d24c3698cc89ece91ca5e732231e9f1fab047f1324186b83fb178aa857769f59c","ssdeep":"","tlshash":"d201f1c6c6f837a9d15433adc241404132686127c34e8aa8f729192c67a9dc7d255653","size":823,"data":"","first_seen":"2026-07-26T23:24:50.215924Z","last_seen":"2026-07-26T23:25:46.851403Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/node_modules/vite/dist/client/env.mjs","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"introduction_type":"importedModule","is_inline":false,"md5":"e1a67720d72cfa6fde7db1462252dee9","sha1":"7e6d21d3fcf41bb25eedab0c4d33ecd961111d96","sha256":"989a1a6b55bdf57842aa46c52fefdce50a16fbfdfbf643e682ac82ad73023401","sha512":"912bc48bfd0634cbf7d4f0afffcc6ad72b07e558103eb50c1a54fff118abea460f6d4a90c5f5328f31350e5be952339d82d0d371b5c5cd6ba4c0e14db136cd67","ssdeep":"","tlshash":"987186555e86a471cffe0473f04e533ed28714a31a7281e6a087d67f20b5e2ac398e1b","size":3478,"data":"","first_seen":"2025-08-04T07:40:16.366179Z","last_seen":"2026-07-26T23:25:46.835321Z","times_seen":77,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BIiaEx3V.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"a7e69b1b1ad451636887d2efaa21bd67","sha1":"2660c76cb52052b78de2090b46fc3b96d9ecffe6","sha256":"f86cb5540e84bc6ffd83bc9566bc9fa2f32e030df8773f0c8e654ed70aa71985","sha512":"89320ee9942efe6a1dafc4a015f255302b4774212148c2b987edf8e38a16d3de9716f3307ff130742ca7a13c3eb23a9e9c2bc2eec0d43ea34732dbb7f3b7e301","ssdeep":"","tlshash":"49f027c29df02fd19016233fc45216017629526fd3ce4b20f1394e7a576ad9f8414b83","size":468,"data":"","first_seen":"2026-07-17T19:28:31.631541Z","last_seen":"2026-07-26T23:25:46.889257Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CofLuR90.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"5954928cd58206010909ea15b63d038c","sha1":"6660105654da6a93f8dc6d963366cf3f490101d7","sha256":"33a423554495ec161c817552d9291276c57cb9706ef4d7b277ad8bad8840ea52","sha512":"b2807893b4bfc4c4885d496234452ad07ade551ed9a8b670e9b8edbdc0dfec77e86afa431e41e7bf3e15f92bcf86268888239f3113a863e6662421f48bbc1be7","ssdeep":"","tlshash":"8a41a3d3dbbc7d61c46b029cc3d2c494166150a9a91d4f20f33b28bf07743ad2609be2","size":2054,"data":"","first_seen":"2026-07-26T23:24:50.3895Z","last_seen":"2026-07-26T23:25:46.804055Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DG5Q2Qcx2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"5a90f4bc938f28e74924dbe99181d60b","sha1":"f4ff7104ab2136305a22b49256d2116b69260336","sha256":"951841bf45305cfb9e408022b9eb7b723b837b1181fdd378f3e28873cf97941a","sha512":"213c5830d5db25d66965226d830a716d35f446ee60dbf2fd9eb98e6d3e08788ef9c22deb49affbc8dce87b68fe7787578df40991da31e16244962d0d5d659d96","ssdeep":"192:kcXDiwbDK3TgSw4wbrIpfC6Wa2C7Nwm9s6EemaoSwvbu7jFyiA/KFl2DFo/x7x:1Dg3TgVMpfC26TRZbWkiA7Yx7x","tlshash":"26028697e8503ee8341fcc6d6073504d27fef1abb6c9c2b8b2616f7907466586112b8a","size":8827,"data":"","first_seen":"2026-07-26T23:24:50.241919Z","last_seen":"2026-07-26T23:25:46.912332Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"accounts.google.com/gsi/client","fqdn":"accounts.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"853774617b1019ff5cac94cf80645189","sha1":"44442e7ad86af42120a25222a0ce82aea5483567","sha256":"e3f665a122d0c8e1a763b96275463a7dacd8d972c67421b3e4aaf417c6b40d2a","sha512":"8ec06a4d98fda998ac8c13a6eefd38d15e32b1c3c377dad93fa17932f41df631436938d93f29f7d2b7aa180f466b74b71f43119694b83fed5168ffd6f5e433d4","ssdeep":"6144:mdF57hxy5bhIJFMS/4y/PIwnpjSsM1aCRT9ySU:mUhsh/4y/gsdjM1aCRT9XU","tlshash":"07444adcb2e270359212f8b5c43f410ab076a679f0498cacfa95c5f5acb1d890167f7a","size":264892,"data":"","first_seen":"2026-07-23T03:09:36.951236Z","last_seen":"2026-07-27T01:59:39.085973Z","times_seen":446,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/@react-refresh","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"introduction_type":"importedModule","is_inline":false,"md5":"a1f0eaa56e286b562209b8a8e0ef02c5","sha1":"f18444d92a7af120c2d1f0865a9119a3502659ed","sha256":"fe633113388e056842f0b8df96ea422fcd97761329b79d39fddd71d1fee2f8c7","sha512":"bf7621954119161b3c14dffe1811ddd35a118bd6091a7febdf219da2f7bd1c198066c61bac49f64c06ad4d46aa32ccce872c1f6be109f434d8ec4bcf2c60beca","ssdeep":"1536:l7V1Co8cQj0PjS8FyTgRqvgs6uSfPP7h4:tbQr8Cg0vgs6uSfPP7h4","tlshash":"5eb3b3458d4a6474cfee1573f58da3bec29746070a7280e5a08bd22f2675d3ac3d9e0b","size":111894,"data":"","first_seen":"2025-10-08T08:00:32.651612Z","last_seen":"2026-07-26T23:25:46.879208Z","times_seen":112,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DUXM63ub.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"f07b0de45450bd726627d6dd193771b0","sha1":"1f7f6f3750aabea8ccb8194da45faa78ee684849","sha256":"b8547e93b97c1809c17ebd5c3709c3c944bc1f02a03882207d2ab93cc3e41103","sha512":"753c632b904060413c4520b2bfa2de4a60ef1af8c119ca2f85fe669ec0b359791092b3af5dc333c2f93312a8e65d60c8ace8000b9e5554c29d4f08097fe2c5b9","ssdeep":"","tlshash":"b44142c477f8ffb100a49359d0afb901f2183523187cb501f760eda1aa94947c4b4e23","size":2035,"data":"","first_seen":"2026-07-26T23:24:50.259753Z","last_seen":"2026-07-26T23:25:46.896585Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DAC8JqRx2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"dcf965f8803d9a4151aa177dea74c3cc","sha1":"c4da4d74b1820d1eb9c5ca641bdc49b616fd3675","sha256":"1c59144785a5462adb96018a5e035a7791d7d2e1c9cd56617222cff47c43a104","sha512":"43743c2d659563910713133d2a543fdedbf84d4a654ab8674bf405baf6008032f67ed0d992d3e613f3e903e607dedb836f73650d5de10a72752e6b72c2657713","ssdeep":"","tlshash":"dbf0e1c699f11b658014257fc1a765023365801ae3dcaf30f1294b3c13fddea8540b13","size":578,"data":"","first_seen":"2026-07-26T23:24:50.381252Z","last_seen":"2026-07-26T23:25:46.855576Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DaWhQ7ei2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"8cae1ccce7ea22d93a7c84bb34fccb79","sha1":"ae718ba3ed03bfdba0bf261ec0e4549aa4105185","sha256":"b3ae18db1776c8e9e665db168ef6a362d9226ac28c384e4499f6233578849320","sha512":"3f2ab38a3eecc10c56922062952554cb90d2f2bb53eef58cf733f096f53ee53f24b80e208691881a16e855923a353fc14920c2d33e4908d06068430fa7263c80","ssdeep":"","tlshash":"7e0110da86f00b75a442639dc1ae41153b282273826f0f31f03b0a3d07f9eae8080a97","size":739,"data":"","first_seen":"2026-07-26T23:24:50.394253Z","last_seen":"2026-07-26T23:25:46.862154Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BYxdTOkd.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"b473d109d9a8fd750517488edb7fee2a","sha1":"8c65e75e46ecf3f009dee71a0c4aa7eb1f610d06","sha256":"655e7ccad86e5f6c42ed9841a32543b2b0fcbaee19abb454306d6c26d4f48022","sha512":"8e1443faaef1c0f5d99b3241ecb8ba5c7dc0c3591170d449e73fee9b543c652079b64d43e707dabe9730441b24d02890dbb2e679e784fccc0e18197d0f3dbe80","ssdeep":"96:xi3bAf4hoKXVDpXFVGwfayvsbQN8CW7cNhZ9GUNPghypINUNVkUDnd46U:J4hoiVt1fDqXynVhnTU","tlshash":"60d19985f1f87630b01f878d80eb4986760a7446cd7cabe6b1372ea80fd419934a2e57","size":6632,"data":"","first_seen":"2026-07-26T23:24:50.257438Z","last_seen":"2026-07-26T23:25:46.873721Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_VnO5JD882.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"25d7f91c9500d0c19dd0b1bf7173312a","sha1":"716b9a062950a798a218ee554e17f414ab83cf87","sha256":"f7e5b7e30795b583d2ac73c763aba7585c0731c24d6120bad48c935434b096a5","sha512":"88a73a7b7ffd4d20e5e0447a2d4415569ed3e263ca5fe2085736b3436928f377c85b72e771431761edbea7fe6d06a96cacc4b6e289dd9c8a6ad54a157fb5499c","ssdeep":"","tlshash":"65f09e858af52bb15441227ec24e29923698102a93dedf30f1366a7c13bddce80147c3","size":492,"data":"","first_seen":"2026-07-26T23:24:50.223106Z","last_seen":"2026-07-26T23:25:46.895743Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CP-cgHfY.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"0dd7d303afea790ee55f70128e50e7ec","sha1":"f096cbf71accdc1184b57ba4b468f3c2af7d29c1","sha256":"483ad765c0685a69219b66b06dba0882569aef1caa1a94394ae2564febea52d3","sha512":"ed2f7b9a1067edef1ace48046d2f05e54ee7057f15753b1d0ae803ff8599ce57bbc0cdb89758b8196ea63738356f1d70a26e42f5637a37de76a64dc65bdc58a9","ssdeep":"","tlshash":"84211413a77d1f5f906333acc9b24101666d4036e38d4a11d1b9653903bfaea45717c7","size":1155,"data":"","first_seen":"2026-07-26T23:24:50.417226Z","last_seen":"2026-07-26T23:25:46.867553Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DG2th4Di.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"56637b5ea6f93270dc8e0fdd2a2bdbb6","sha1":"dfc603a0e55b691924f1fe9857afa94677c83d0f","sha256":"99c2a47780ea3ebb3f2697699e9f9642b35c7048b15f5f2c364d31a9b033cf8e","sha512":"39abd6e986ed70f332cf453d19bfd1207cca9251d25b1284261e3e3ce6e0917ffe7e01a1685c85668e137f8bc763262360b9fcdeba9cde5a54612b0c6be3b204","ssdeep":"","tlshash":"b95164feeba067fa41327b2942c66005daf0893bd68cbf4e9105cdcc23e15a49424ed7","size":2546,"data":"","first_seen":"2026-07-26T23:24:50.294757Z","last_seen":"2026-07-26T23:25:46.874542Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_xS4NDGm72.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"925188da3ac7e6a81e662fb7b2bda272","sha1":"594e98cff44b2ac0e3ec4891e230cd7c969b5aec","sha256":"15c6363c90507e29eda35bafe9938a007842340f4432c4030535cad8894b7f73","sha512":"7d3c8aa9677cb640f84ebfef502d9caf7a20b47cd3ede4b50495c64979c7653a11fc644a1c32a96c7baba5e1199fca8995fc8bb409a2f1043079329daaac3ddb","ssdeep":"","tlshash":"5701f4c9f6f412ad415022bdd0265780735c2257d39dce20f26885fd03b3a898c01f87","size":692,"data":"","first_seen":"2026-06-29T23:42:00.348113Z","last_seen":"2026-07-26T23:25:46.908566Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_ODTiuu-t2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"e347c7b4db3fd370e985fc501684a655","sha1":"863a71b32f597d38e793924667e019fb757e5387","sha256":"f0c2d02ec0d2f259ef89eaedd71b6258d51544fe8ca8ab37ec22d431def2257b","sha512":"9652071433998c255fd886fe87d4b052927373e922345d624ed02d7c7a4692ecfc7f9dd60b019dfafffdc88840fcdb1ada4490f479df544bd34888906d640678","ssdeep":"768:EArIqrUtCHrUuziEvw4uN8GV4VofWJJk30J:eDtarS5IofSJk30J","tlshash":"e003f863ec607fbc155b099ca433e44c17ba932e9986d164b8948e9a07ce7d06172fcf","size":40363,"data":"","first_seen":"2026-07-26T23:24:50.410072Z","last_seen":"2026-07-26T23:25:46.815031Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CDcXXtyq2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"ec491b28d074d4bd56b205eee88e6c87","sha1":"f53bbaf7836db43cb55b031d611c534fdfe2b09d","sha256":"e088a0975a772dffe78d15c192bf4f87e9f99bad89e12464d383f3ac05cfaba1","sha512":"7c0c434fd200b1c7e408ad18b77e1fe63051584311aadf8599068813ea925c851aa4113243b74f28f81faf7e21f1a3c07e7618d670c3add361c8e1f1d9622376","ssdeep":"","tlshash":"1811038ed9b837766115017cc00661412338600687884aa1f2195e7d279199d8487b6f","size":1090,"data":"","first_seen":"2026-07-26T23:24:50.335928Z","last_seen":"2026-07-26T23:25:46.901143Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/scripttemplates/202602.1.0/otBannerSdk.js","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"426179abc347fbf70943f183b4268ef5","sha1":"855aee6515f79465f8ca33506ad3a86a4b37ea83","sha256":"b7171dca698ca454704426d1ff6c7514c6e0d6c415931b37da63d4c7b77ed8c6","sha512":"5eb93f12557ff3f9db314c809c37c2e470f812b260cf511782546b6b930b6c3ecef0328a88cf1f2a66c925892f39d1237874f0fe8d262be43011bcd5b463ed06","ssdeep":"6144:K+3VFPgLTJxzoxlG0L3m1WjUluxBDWwSmijHaxGPWukkx1v6oR3m3hoJXV:KRLTJxUxlG0L3m1WjfGPRN6cvF","tlshash":"98c43a4e7590793547e762b8c027514ab63574acac95806cf41cc4f90bf9f822aa3fbb","size":543890,"data":"","first_seen":"2026-03-17T20:58:36.209726Z","last_seen":"2026-07-26T23:25:46.886982Z","times_seen":2456,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DcZArWt92.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"547d68333b3e0559128a8992b9b55708","sha1":"0c49d9c71c6e73ea3cc7591601e92bae17026374","sha256":"0d0367c5c159cd30751662b05d13e7f10024cfca7e7ef827116485c4fb99dec8","sha512":"d1a8843de956a23f3904b79b025eccd362918d8c11dc704330f429ef0b7870e9ddaf3e2b51c4b785edbdcc3799fe4216e94fb1bbe3e22d36bd0fd891707269de","ssdeep":"","tlshash":"8af09e869af1b7439509127ec1d3590036d81197c3dc4b71e124223d03fee8ac158b93","size":492,"data":"","first_seen":"2026-07-26T23:24:50.321609Z","last_seen":"2026-07-26T23:25:46.840059Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_nKs2bjen2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"89053743c65e40c86ac164560dbb1023","sha1":"62ed9078c1e4c67c2d925883952f7e24d8a5239a","sha256":"4582b4356ddf1a4ce6d8c40c3e4fb0ed879110a5c25aeb8f299b1f29d68c21e0","sha512":"67af2d5c43a350459e3b873e009dbdcb1330732f839751e94c9ca5d2dcdec7f643968a4da9ec6db2b6242409a115af9ac142271dd8513d92f10032856334fe5f","ssdeep":"","tlshash":"ce51e66826b9e4cf52b71914309f0119b136ae8c6f4fc349f771113a26ec53433b9b12","size":3105,"data":"","first_seen":"2026-07-26T23:24:50.333438Z","last_seen":"2026-07-26T23:25:46.905833Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Bwhk33wU.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"dc6c97cff56ea646eae1692ac9471a21","sha1":"3ada7bf2fbc448051467c657559335916935a1ca","sha256":"c7e42cd4a6294a1e85e6ef15291d12d163a300012e0d3abab77b17d17acf410c","sha512":"ecdf6a47df86cf4a9849571e8bd70211ca589264d4cb0c0ad19346818d64be2d88d9896430920d75fcc9ba29bd6e81aeac53c0bc021fca350e325f8b9e6681a3","ssdeep":"","tlshash":"a431169575f43baab2175a5d40b3471c321e804de72c09a4e965383c13b8b95b943fcb","size":1608,"data":"","first_seen":"2026-07-26T23:24:50.22112Z","last_seen":"2026-07-26T23:25:46.811393Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_s0Lq3TNF.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"d1a99311849270e6ab4b22992278d383","sha1":"1e86f70f7ba49376efc2e252624aad66076c2ecb","sha256":"3d461764c0bfa6610a305ea1fbbe3a95b13cf87d4ef3276259a5890fdc81d5b8","sha512":"3b5d469a1e79969d6436d698f50ce484e447fdf42d0731ebf40619879bc339f67a29e1083e38da6c05989af687767798c9d60c251fa04a450654e6a397be5e81","ssdeep":"","tlshash":"d80115c575f03fb5d06506add01552073327616b539d4b24d015073c176cec9eb54f47","size":723,"data":"","first_seen":"2026-07-26T23:24:50.219286Z","last_seen":"2026-07-26T23:25:46.812702Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=08eb349e","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"introduction_type":"importedModule","is_inline":false,"md5":"ab1b14c2188a11896fbeb5235aada4a0","sha1":"3fdbec746f89c43afc7a6452746ec0fb4de62053","sha256":"b094d3602d0bd2b6101c2225bd9adf6f247077d7499f038294fbf76907b3ff56","sha512":"aa3b9604feee8595dee542a5f97b954cb111501255e5b260345e43eb87a1c8f29ba50515c9fbc9f99e1da9a49dd346cbfe25fdadc1d86323c13361ce9ab4c52d","ssdeep":"96:mXgCDO+YA68hT9XzVPYXwfQsWq4NGXXgXH+/UHINeaNNENrLN5P39NyJds3td3dQ:Mgl+YA68hJXzKqfXg3JY","tlshash":"daf1b4455d5a70b48ffe0573f15c6b3ec29755970a3380e4928ae62b2474c3ac3d9e1b","size":7968,"data":"","first_seen":"2026-07-26T23:24:50.377482Z","last_seen":"2026-07-26T23:25:46.809617Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BPNCdo3r2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"90ce959a603ef461d32f9b4762da3cf9","sha1":"c3bdb107d6ec1b048399481fbfc3fb4c1c50b2d6","sha256":"6b840ef011cfbdfdf06d31483c93b814c65e3e553ba5d8498467086033062723","sha512":"f3b4263e00544bdf5de4ad1bdc5d13bdb8b43067f96d73c07fb888fa225f22430f65de7d2b6943a9c27caad6677f9d8400c70b899140526b558eb9ee94700145","ssdeep":"","tlshash":"51f050c559f017755000162dc157680233ad216b93dc4f10b135d73c17afe9e8510f83","size":517,"data":"","first_seen":"2026-07-26T23:24:50.39574Z","last_seen":"2026-07-26T23:25:46.90675Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CljeGIKG2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"e6830b308f31c7f344b4e1d888517631","sha1":"3cfa4e09099962950b1646c21beb9d58844869f4","sha256":"c360f093392442d60aa4fc7fb1152b5798240bbe12d4aa4b59fc7e59e20e8f70","sha512":"c7ad8be7cc9272191e427f7ec80908d8dd43fa8342afe47db9d4a751e6a0d0b95ce4629a5fb26ab6d8bcfafc146364c4bc1f9d25670a6a2e375c3980f8929559","ssdeep":"","tlshash":"1421219eceb436bd80791decf013541dd32c9e29a3ee0d52e1f41a1883935d61964b5b","size":1217,"data":"","first_seen":"2026-07-26T23:24:50.282167Z","last_seen":"2026-07-26T23:25:46.917518Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DAyioOU42.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"c8eda92a08a159c79a7cd49fd1e56daf","sha1":"10c8894ebca5e136cade683789e62611ec271c7e","sha256":"69aa1222af3a689c9e56174b37620e1d63e7981fdbbe295538f5190471ceb1b5","sha512":"e88682e054a4375db3401a5d82517bf640b413866a08b32d9c8ca978c571719f5c0bfe0d96f9c728bdee8d61c0b8e1a7028b584f34450b403ff5e01a653edb6a","ssdeep":"","tlshash":"5c513143ec24b23965a6041c74b66448a279271ee1fd9214f6c94bcb27e83cff861397","size":2819,"data":"","first_seen":"2026-07-26T23:24:50.365593Z","last_seen":"2026-07-26T23:25:46.823813Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DwNE4IkG2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"f42098f045fa46f968c60c96715bc921","sha1":"8f3beed52370269a97e7d6b4be1537ea2b0e7a00","sha256":"1dd5d27a4713b3c097e789c19f9b3dd3da96b856e743f5f9aea2b117486e21cc","sha512":"9560915f59f06ee85990a80295dd1dc0ad6e28dc21da6f1b69bb2c4777167f9fdd056f70bc1fe5161c71176463c562ea00d33fe97db00376872d9af72088607c","ssdeep":"96:xFs6sBpPyihEKcuVhhH2LJrnNNpl8BAWvABaoCPxXPX1YVY:Ds6sBpPyih5bWdrnNNpl8BA+ABfCEY","tlshash":"49c1e8b24fa134abc21747d66163951d263fb101a6060738f32d9c5e1bf616a72e3fa3","size":6068,"data":"","first_seen":"2026-07-26T23:24:50.207743Z","last_seen":"2026-07-26T23:25:46.784708Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/consent/01956191-791b-769a-8313-3683f5e22e0d/otSDKStub.js","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"97a095a05818c932f8cfad4cf5414796","sha1":"79d495a3e2145a5c9c971d8b8da1507649d735c1","sha256":"8f55f61e22439b32073283b9f67f3a83069757abd911a3f7a945e81a4f470185","sha512":"3659e54816e2048a893dcd20bcdb8c70c4e5447b554552395ca2e9fa99669a341d203815302d37345712b1360af5a31ed2dda3d881c86a98e796f019a4ffcfca","ssdeep":"768:Q3iEuyLXmkzRhnOZgu1K3+mD/9GI4YiuXf93mVUWrq:QSET31Yj83+S4Y59WV9W","tlshash":"b8f21b8ab1416a3447c2a5ace93f4317b23bb56d74c4c078b888d8f11da9c4f1577bba","size":36607,"data":"","first_seen":"2026-03-27T09:30:06.286502Z","last_seen":"2026-07-26T23:25:46.904959Z","times_seen":34,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_dub4iaRH.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"d659c06c96b15aba3c5d494df2eb4ee7","sha1":"5fa71aa2b4708d7771c23373063838d16a731231","sha256":"3f0cbb238e85e73af99473fabd7e7461bac6caa6dd06937909a23f2574b19cfa","sha512":"c5867f0abf3d9df72c05e3dc67eb1dc9b87c3bc41acf2fa558e98d01624037c247a3870559ee379a820d1df1dc6a862da73e2202400eac1b21ab2e45fc5fed7c","ssdeep":"96:x4rQI8x31qUwIh1RPW9SqfG0oURTUEakC/wmYb4g4hD4H:+rQIk31qUwIh1RPW9Sn0o00kNm+1H","tlshash":"13f113a75988666d321be1bc60f927084398441df85b8feda33eb5b7014e783073f666","size":7591,"data":"","first_seen":"2026-07-26T23:24:50.425612Z","last_seen":"2026-07-26T23:25:46.792457Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/node_modules/.vite/deps/chunk-WUR7D6NS.js?v=08eb349e","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"introduction_type":"importedModule","is_inline":false,"md5":"ab1945ee96ec9be8c6357a0dec0df2cc","sha1":"ec19184112329d8eb7eec1937eae56fbdcef02c1","sha256":"d170d9ecbf31a7361819959578bcbfa86016e6e5d980669796f63eb6b1cd00ee","sha512":"e0065d492fe163676eed8705cf234023073b643e55ae3c156ba0894b29127b8e11d3a4b1c5e0be4de609d60257a8c8196a719ef2c6536897d5ff61afb804909c","ssdeep":"768:UOy9UxpXR3ag9CCdq2f2w2F29V6jvkkJ0dXAujLGHzwHMCld:GUxpdACdq2f2w2F29uvYdbLGHzwHMCld","tlshash":"0e13a85979e715704823b0b94b6fd142f47a9807091ced64ba4c83b81f991acd6eefcc","size":45564,"data":"","first_seen":"2026-07-26T23:24:50.318324Z","last_seen":"2026-07-26T23:25:46.893216Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BAVtw-MY.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"f4f92c7a9317b6b6f9d7a24f19fd1af7","sha1":"e6c252f8f8cc9139e5acc19f6aa412155d477bf2","sha256":"b315c1d1f5eab3ace17a26b95e221c2d3f6fda6127057f57dc266519d6f85a26","sha512":"4c225c58d8cd3f5fb7f5a17c91b4b5618431ae1e44fb0ff415b0bb668feb787a33da758d6a8c155394cbb05db4ff32d1673c13bd2d8eaa6059e7afb76853bfea","ssdeep":"","tlshash":"134144c477f8fff240e09355847fae02f1182523687cb511f760eea09a6495784a8a23","size":2039,"data":"","first_seen":"2026-07-26T23:24:50.265929Z","last_seen":"2026-07-26T23:25:46.913327Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_tlHxE0FV.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"1406891c23482645f60c106c63ef0868","sha1":"d9ab3a70254eec049e2da2667fcfc3a6c311dd46","sha256":"ac7283bfc74d01cebc7c9dd8156b642988f33d03df43c29f00056ace7ff68c56","sha512":"52e201712b1a565597a08f914a8ee663c9af7821dd1387438394c0d8c05e033cda3c20d026c6f8d03fbd0a4c4c5d03a2352b2309630e38d9b633a3c29252c753","ssdeep":"","tlshash":"6b4186d6e3a0a67126c49189c485613635ae222a5cce6f70f352088d27a19c992d7f53","size":2147,"data":"","first_seen":"2026-07-26T23:24:50.419686Z","last_seen":"2026-07-26T23:25:46.831482Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Fj_5BF5D.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"89cf876ebff6b7b1a691f28d1da55ae5","sha1":"c19db302f361007bbf18f0603f9f4130f6cd1a04","sha256":"6b0b0f74268c5e2d3c6f3c76ac97b8b136b4fcb23004561cf1383ff6fc50fa5a","sha512":"c29ee08a3b4b305eded4e278412e51e0e911fbf309e8a0c4672740cb90f04a452b5d6f21d05d5503868a566cfac80de228bf6a5fa1cd3bc22a03d472c7f302cb","ssdeep":"192:8gU648I/toTk8n1Vj4tshLl3oZ151zboO+M:8gpBl1Vj4tsIL1zb8M","tlshash":"8fe108c072b1bab15a5fc6d5c03fa80af21d1015693d21a1b320adec66589c7e5f3f83","size":7119,"data":"","first_seen":"2026-07-26T23:24:50.309654Z","last_seen":"2026-07-26T23:25:46.84733Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/src/gemini-theme.css","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"introduction_type":"importedModule","is_inline":false,"md5":"49b2c7151822eff2b91be7f7ee1b0c75","sha1":"53fc528731fc2ce5c3b5687edb0f2aaa3409b956","sha256":"665f6020620fe86e3d9eb17533f791850b857ffbd0da727068264ec63ca740b1","sha512":"1ab4bcdff21179cac4ac8495634c30f486b3e3b6e8310aca19a75f39bbf6386eea7bb34be5cbd6ef044baa561576051c6df1277a3e8e986cfd609ffa1114d389","ssdeep":"","tlshash":"8b41c812bd5f9375a9120f9bfbcef020e7b4bc78c5282b199b6c813166d81f68a25354","size":1894,"data":"","first_seen":"2026-07-26T23:24:50.245848Z","last_seen":"2026-07-26T23:25:46.914335Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_COJwGqnl2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"5e5dc03b5a87072c3c9b171c7ad60a04","sha1":"5d63314e077f887cf7d3cce84ee7655b60eccdf6","sha256":"17f5d2df2ce90b95de262b7578b9e39eaca13ea5bcfb2aea4229c49dcfbc34a0","sha512":"6420f66047a223f847df07a38129a3b9e3c52ce684e2aae39e6da24c1bd29c939480f1b95a3b60dfcb796b3b14dc9f81eaae0fac294975bdb2318713975195dd","ssdeep":"96:xEhtyUzdoK6+DUXF0nxayWGASzURoKjsDGXFiq6ay0xfPAK:0zdov+o1JGpURomsa1/nAK","tlshash":"9ba1a5c1b3f8bfb060e1c75880bfa906f11471125879b050f771acb05aa485ba5e5f13","size":4897,"data":"","first_seen":"2026-07-26T23:24:50.217609Z","last_seen":"2026-07-26T23:25:46.815784Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/src/App.tsx","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"introduction_type":"importedModule","is_inline":false,"md5":"d53c19912fd109fa4e093675ce7eea05","sha1":"00cdde3b2538b4f1fb04afac12e48ca246704d99","sha256":"d87259f1d310b14e46f67277d0809feafcb2189469a22e94c74cc1831592e6ee","sha512":"68bf14a21e6058709da1ba4bca428aff02de9e4a1175905c33c81a2391e056d88affc7453c2e98dbcf80c59010200801ef69f46381ef1c18f421a196cc466d95","ssdeep":"1536:snmfYAp2rCTXrsBga3o/5/CCrZ1OTrBWxYiIVXbPZ546hSw0Urjj4Oa3kHd3m8UT:ImfYAp2rCTXrsBga3o/5/CCrZ1OTrBWX","tlshash":"b79387350e848410579392b9fe8ada6b1459374f870158ccf60daa096b7f96f33f8e4b","size":91546,"data":"","first_seen":"2026-07-26T23:24:50.305859Z","last_seen":"2026-07-26T23:25:44.800736Z","times_seen":2,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BDNzosdJ.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"efd0f9e68494651088b6e28d17c9faa5","sha1":"ec8881b5afc904bbb88e4154d1d4760b43939826","sha256":"93989a1c32e8c0189c05e56eb65c9b06618d1606d877897a37b43f8cfdb05337","sha512":"24154e4179d97d30f95ac45b639401f6280a9d343ec651adcb1d80b5adee73c120b076702375f78647b20380e7d61089cce35347c13027e1f8db3c1d4e973909","ssdeep":"384:h9TLMD2M8nJVboP6l29J+pipe9OGiOWfHiDIHFyI/3UaLbRtU98StBzLsd3kgEk:7y0VboP6A9ayY8/fCDsJ3UaaKd3kgEk","tlshash":"5092fbe632d6b134e39f522be06b410eb33651e1664d6418b238969d3c30d6287b7f6f","size":20881,"data":"","first_seen":"2026-07-26T23:24:50.311353Z","last_seen":"2026-07-26T23:25:46.808281Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_C6dyn7j32.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"ccbb8cb07bb7d64316a66e1f11ea7909","sha1":"318666744b196e67a916c531f246ff3fed7dbc70","sha256":"dccbc40caad5eaf13eac8c886dbca9ff232581fdb76103320cff863daeca7867","sha512":"6187141c68b2e1c1d867e29712f38b98ad8a1344c5f80a1faaae5d567031ef24913bcc5d9e1c1a7c597f495ad255026e672465a7b6a078cdcea7e92f969d99e1","ssdeep":"","tlshash":"5301f4945bf07f6a550326ed8563a90336e9213782cd8f60f119553d03e4c55c405683","size":669,"data":"","first_seen":"2026-07-26T23:24:50.402085Z","last_seen":"2026-07-26T23:25:46.843256Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DKT9lQC52.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"20f1c10458bffb79c50d0a37b80a237e","sha1":"b9f96809d5344707961325a6490daa078487e577","sha256":"d5158e56f65c1d0a54442cc9044813225689cab44389cf6676b23a647ccc7c58","sha512":"5f11d4588f9fd27144b57c672e111d60c6d802bb2adb4856b2fa05f62c6f819e59fef87d8ecbd0b74051f24419d68d7940d39f0cdc43b3b9f3e8443c137aaad3","ssdeep":"","tlshash":"901102ee3bf456b042429a6dc014570273b82302de9c8b28e0f44b3b23c2e8da855b97","size":999,"data":"","first_seen":"2026-07-26T23:24:50.403427Z","last_seen":"2026-07-26T23:25:46.84654Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BSQ_mPSi.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"70b3cc53cb4ff1e231982e95bcd22ee5","sha1":"0b3ea5869baa35858daa45295bd19c4354fd2eda","sha256":"827e1b6adca9bffde01d05ff4638377dd1e96eaf61215efd78b7834a3fcea918","sha512":"8d800400bc454aac4b143514a25a570825cf9964b3a31613d387e3dd46cd98a84cee2b679dead3d8b35d20039ee526d7b8099251b3a8e2f0c96cdee623b1bcba","ssdeep":"384:3AiJKkfZzHM7ndygmpVqMkZO2/d1bXwItUJyTR1aXM3z:3OmxMY2b9p","tlshash":"c1d2eaaa71233164716bde59907b680c6b6dc844e94a04d879370d2e23de3e07796fcf","size":28353,"data":"","first_seen":"2026-07-26T23:24:50.382818Z","last_seen":"2026-07-26T23:25:46.869407Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Ct0_WMwP2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"601b47a0b80457c75687961437382bc6","sha1":"d72d4054958a74bb9f8a5d39169f2b7ff5e3fa67","sha256":"a6e515478d6f48c56473d0961607799a8d04530d15360f1c7016053e8646c223","sha512":"96997a1ee56a3b6004669fd164a7bf24221c434df15dd40dd9378f6d2a18fab53405a0fba4f66f38a91efe7e85a990b05fcf096ad5ada7b8bc30a3115c597d71","ssdeep":"96:xcFCQjkIaOWWTnEhE4z7zcN/LJUmxU43wiJvGRRH:QWGCNz7z41XxDA","tlshash":"b29154d39dd07ff30a6e8a4d1067804823feb1b778c9c318e2b11f9a15135599363b99","size":4410,"data":"","first_seen":"2026-07-26T23:24:50.42693Z","last_seen":"2026-07-26T23:25:46.818125Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"debug","text":"[vite] connecting...","filename":"https://830129coinbase.com/@vite/client","line_number":733,"column_number":9},{"level":"debug","text":"[vite] connected.","filename":"https://830129coinbase.com/@vite/client","line_number":827,"column_number":12},{"level":"info","text":"Download the React DevTools for a better development experience: https://react.dev/link/react-devtools","filename":"https://830129coinbase.com/node_modules/.vite/deps/react-dom_client.js?v=08eb349e","line_number":20103,"column_number":54}]},"http":[{"url":{"schema":"https","addr":"830129coinbase.com/@react-refresh","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.197Z","timestamp":1785108243197,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /@react-refresh HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 111894\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: no-cache\r\nEtag: W/\"5367-h8iO905IyT3hT92qDTgpgcseDiA\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Nginx:1.18.0","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":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":111894,"size_decoded":112143,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (44184)","md5":"a1f0eaa56e286b562209b8a8e0ef02c5","sha1":"f18444d92a7af120c2d1f0865a9119a3502659ed","sha256":"fe633113388e056842f0b8df96ea422fcd97761329b79d39fddd71d1fee2f8c7","sha512":"bf7621954119161b3c14dffe1811ddd35a118bd6091a7febdf219da2f7bd1c198066c61bac49f64c06ad4d46aa32ccce872c1f6be109f434d8ec4bcf2c60beca","ssdeep":"1536:l7V1Co8cQj0PjS8FyTgRqvgs6uSfPP7h4:tbQr8Cg0vgs6uSfPP7h4","tlshash":"5eb3b3458d4a6474cfee1573f58da3bec29746070a7280e5a08bd22f2675d3ac3d9e0b","first_seen":"2025-10-08T08:00:32.651612Z","last_seen":"2026-07-26T23:25:46.879208Z","times_seen":112,"resource_available":true,"data":"aW1wb3J0IHsgaW5qZWN0UXVlcnkgYXMgX192aXRlX19pbmplY3RRdWVyeSB9IGZyb20gIi9Adml0ZS9jbGllbnQiOy8qIGdsb2JhbCB3aW5kb3cgKi8KLyogZXNsaW50LWRpc2FibGUgZXFlcWVxLCBwcmVmZXItY29uc3QsIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiAqLwoKLyohIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuICoqLwovKioKICogVGhpcyBpcyBzaW1wbGlmaWVkIHB1cmUtanMgdmVyc2lvbiBvZiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9tYWluL3BhY2thZ2VzL3JlYWN0LXJlZnJlc2gvc3JjL1JlYWN0RnJlc2hSdW50aW1lLmpzCiAqIHdpdGhvdXQgSUUxMSBjb21wYXRpYmlsaXR5IGFuZCB2ZXJib3NlIGlzRGV2IGNoZWNrcy4KICogU29tZSB1dGlscyBhcmUgYXBwZW5kZWQgYXQgdGhlIGJvdHRvbSBmb3IgSE1SIGludGVncmF0aW9uLgogKi8KCmNvbnN0IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpCmNvbnN0IFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKQoKLy8gV2UgbmV2ZXIgcmVtb3ZlIHRoZXNlIGFzc29jaWF0aW9ucy4KLy8gSXQncyBPSyB0byByZWZlcmVuY2UgZmFtaWxpZXMsIGJ1dCB1c2UgV2Vha01hcC9TZXQgZm9yIHR5cGVzLgpsZXQgYWxsRmFtaWxpZXNCeUlEID0gbmV3IE1hcCgpCmxldCBhbGxGYW1pbGllc0J5VHlwZSA9IG5ldyBXZWFrTWFwKCkKbGV0IGFsbFNpZ25hdHVyZXNCeVR5cGUgPSBuZXcgV2Vha01hcCgpCgovLyBUaGlzIFdlYWtNYXAgaXMgcmVhZCBieSBSZWFjdCwgc28gd2Ugb25seSBwdXQgZmFtaWxpZXMKLy8gdGhhdCBoYXZlIGFjdHVhbGx5IGJlZW4gZWRpdGVkIGhlcmUuIFRoaXMga2VlcHMgY2hlY2tzIGZhc3QuCmNvbnN0IHVwZGF0ZWRGYW1pbGllc0J5VHlwZSA9IG5ldyBXZWFrTWFwKCkKCi8vIFRoaXMgaXMgY2xlYXJlZCBvbiBldmVyeSBwZXJmb3JtUmVhY3RSZWZyZXNoKCkgY2FsbC4KLy8gSXQgaXMgYW4gYXJyYXkgb2YgW0ZhbWlseSwgTmV4dFR5cGVdIHR1cGxlcy4KbGV0IHBlbmRpbmdVcGRhdGVzID0gW10KCi8vIFRoaXMgaXMgaW5qZWN0ZWQgYnkgdGhlIHJlbmRlcmVyIHZpYSBEZXZUb29scyBnbG9iYWwgaG9vay4KY29uc3QgaGVscGVyc0J5UmVuZGVyZXJJRCA9IG5ldyBNYXAoKQoKY29uc3QgaGVscGVyc0J5Um9vdCA9IG5ldyBNYXAoKQoKLy8gV2Uga2VlcCB0cmFjayBvZiBtb3VudGVkIHJvb3RzIHNvIHdlIGNhbiBzY2hlZHVsZSB1cGRhdGVzLgpjb25zdCBtb3VudGVkUm9vdHMgPSBuZXcgU2V0KCkKLy8gSWYgYSByb290IGNhcHR1cmVzIGFuIGVycm9yLCB3ZSByZW1lbWJlciBpdCBzbyB3ZSBjYW4gcmV0cnkgb24gZWRpdC4KY29uc3QgZmFpbGVkUm9vdHMgPSBuZXcgU2V0KCkKCi8vIFdlIGFsc28gcmVtZW1iZXIgdGhlIGxhc3QgZWxlbWVudCBmb3IgZXZlcnkgcm9vdC4KLy8gSXQgbmVlZHMgdG8gYmUgd2VhayBiZWNhdXNlIHdlIGRvIHRoaXMgZXZlbiBmb3Igcm9vdHMgdGhhdCBmYWlsZWQgdG8gbW91bnQuCi8vIElmIHRoZXJlIGlzIG5vIFdlYWtNYXAsIHdlIHdvbid0IGF0dGVtcHQgdG8gZG8gcmV0cnlpbmcuCmxldCByb290RWxlbWVudHMgPSBuZXcgV2Vha01hcCgpCmxldCBpc1BlcmZvcm1pbmdSZWZyZXNoID0gZmFsc2UKCmZ1bmN0aW9uIGNvbXB1dGVGdWxsS2V5KHNpZ25hdHVyZSkgewogIGlmIChzaWduYXR1cmUuZnVsbEtleSAhPT0gbnVsbCkgewogICAgcmV0dXJuIHNpZ25hdHVyZS5mdWxsS2V5CiAgfQoKICBsZXQgZnVsbEtleSA9IHNpZ25hdHVyZS5vd25LZXkKICBsZXQgaG9va3MKICB0cnkgewogICAgaG9va3MgPSBzaWduYXR1cmUuZ2V0Q3VzdG9tSG9va3MoKQogIH0gY2F0Y2ggKGVycikgewogICAgLy8gVGhpcyBjYW4gaGFwcGVuIGluIGFuIGVkZ2UgY2FzZSwgZS5nLiBpZiBleHByZXNzaW9uIGxpa2UgRm9vLnVzZVNvbWV0aGluZwogICAgLy8gZGVwZW5kcyBvbiBGb28gd2hpY2ggaXMgbGF6aWx5IGluaXRpYWxpemVkIGR1cmluZyByZW5kZXJpbmcuCiAgICAvLyBJbiB0aGF0IGNhc2UganVzdCBhc3N1bWUgd2UnbGwgaGF2ZSB0byByZW1vdW50LgogICAgc2lnbmF0dXJlLmZvcmNlUmVzZXQgPSB0cnVlCiAgICBzaWduYXR1cmUuZnVsbEtleSA9IGZ1bGxLZXkKICAgIHJldHVybiBmdWxsS2V5CiAgfQoKICBmb3IgKGxldCBpID0gMDsgaSA8IGhvb2tzLmxlbmd0aDsgaSsrKSB7CiAgICBjb25zdCBob29rID0gaG9va3NbaV0KICAgIGlmICh0eXBlb2YgaG9vayAhPT0gJ2Z1bmN0aW9uJykgewogICAgICAvLyBTb21ldGhpbmcncyB3cm9uZy4gQXNzdW1lIHdlIG5lZWQgdG8gcmVtb3VudC4KICAgICAgc2lnbmF0dXJlLmZvcmNlUmVzZXQgPSB0cnVlCiAgICAgIHNpZ25hdHVyZS5mdWxsS2V5ID0gZnVsbEtleQogICAgICByZXR1cm4gZnVsbEtleQogICAgfQogICAgY29uc3QgbmVzdGVkSG9va1NpZ25hdHVyZSA9IGFsbFNpZ25hdHVyZXNCeVR5cGUuZ2V0KGhvb2spCiAgICBpZiAobmVzdGVkSG9va1NpZ25hdHVyZSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgIC8vIE5vIHNpZ25hdHVyZSBtZWFucyBIb29rIHdhc24ndCBpbiB0aGUgc291cmNlIGNvZGUsIGUuZy4gaW4gYSBsaWJyYXJ5LgogICAgICAvLyBXZSdsbCBza2lwIGl0IGJlY2F1c2Ugd2UgY2FuIGFzc3VtZSBpdCB3b24ndCBjaGFuZ2UgZHVyaW5nIHRoaXMgc2Vzc2lvbi4KICAgICAgY29udGludWUKICAgIH0KICAgIGNvbnN0IG5lc3RlZEhvb2tLZXkgPSBjb21wdXRlRnVsbEtleShuZXN0ZWRIb29rU2lnbmF0dXJlKQogICAgaWYgKG5lc3RlZEhvb2tTaWduYXR1cmUuZm9yY2VSZXNldCkgewogICAgICBzaWduYXR1cmUuZm9yY2VSZXNldCA9IHRydWUKICAgIH0KICAgIGZ1bGxLZXkgKz0gJ1xuLS0tXG4nICsgbmVzdGVkSG9va0tleQogIH0KCiAgc2lnbmF0dXJlLmZ1bGxLZXkgPSBmdWxsS2V5CiAgcmV0dXJuIGZ1bGxLZXkKfQoKZnVuY3Rpb24gaGF2ZUVxdWFsU2lnbmF0dXJlcyhwcmV2VHlwZSwgbmV4dFR5cGUpIHsKICBjb25zdCBwcmV2U2lnbmF0dXJlID0gYWxsU2lnbmF0dXJlc0J5VHlwZS5nZXQocHJldlR5cGUpCiAgY29uc3QgbmV4dFNpZ25hdHVyZSA9IGFsbFNpZ25hdHVyZXNCeVR5cGUuZ2V0KG5leHRUeXBlKQoKICBpZiAocHJldlNpZ25hdHVyZSA9PT0gdW5kZWZpbmVkICYmIG5leHRTaWduYXR1cmUgPT09IHVuZGVmaW5lZCkgewogICAgcmV0dXJuIHRydWUKICB9CiAgaWYgKHByZXZTaWduYXR1cmUgPT09IHVuZGVmaW5lZCB8fCBuZXh0U2lnbmF0dXJlID09PSB1bmRlZmluZWQpIHsKICAgIHJldHVybiBmYWxzZQogIH0KICBpZiAoY29tcHV0ZUZ1bGxLZXkocHJldlNpZ25hdHVyZSkgIT09IGNvbXB1dGVGdWxsS2V5KG5leHRTaWduYXR1cmUpKSB7CiAgICByZXR1cm4gZmFsc2UKICB9CiAgaWYgKG5leHRTaWduYXR1cmUuZm9yY2VSZXNldCkgewogICAgcmV0dXJuIGZhbHNlCiAgfQoKICByZXR1cm4gdHJ1ZQp9CgpmdW5jdGlvbiBpc1JlYWN0Q2xhc3ModHlwZSkgewogIHJldHVybiB0eXBlLnByb3RvdHlwZSAmJiB0eXBlLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50Cn0KCmZ1bmN0aW9uIGNhblByZXNlcnZlU3RhdGVCZXR3ZWVuKHByZXZUeXBlLCBuZXh0VHlwZSkgewogIGlmIChpc1JlYWN0Q2xhc3MocHJldlR5cGUpIHx8IGlzUmVhY3RDbGFzcyhuZXh0VHlwZSkpIHsKICAgIHJldHVybiBmYWxzZQogIH0KICBpZiAoaGF2ZUVxdWFsU2lnbmF0dXJlcyhwcmV2VHlwZSwgbmV4dFR5cGUpKSB7CiAgICByZXR1cm4gdHJ1ZQogIH0KICByZXR1cm4gZmFsc2UKfQoKZnVuY3Rpb24gcmVzb2x2ZUZhbWlseSh0eXBlKSB7CiAgLy8gT25seSBjaGVjayB1cGRhdGVkIHR5cGVzIHRvIGtlZXAgbG9va3VwcyBmYXN0LgogIHJldHVybiB1cGRhdGVkRmFtaWxpZXNCeVR5cGUuZ2V0KHR5cGUpCn0KCi8vIFRoaXMgaXMgYSBzYWZldHkgbWVjaGFuaXNtIHRvIHByb3RlY3QgYWdhaW5zdCByb2d1ZSBnZXR0ZXJzIGFuZCBQcm94aWVzLgpmdW5jdGlvbiBnZXRQcm9wZXJ0eShvYmplY3QsIHByb3BlcnR5KSB7CiAgdHJ5IHsKICAgIHJldHVybiBvYmplY3RbcHJvcGVydHldCiAgfSBjYXRjaCAoZXJyKSB7CiAgICAvLyBJbnRlbnRpb25hbGx5IGlnbm9yZS4KICAgIHJldHVybiB1bmRlZmluZWQKICB9Cn0KCmZ1bmN0aW9uIHBlcmZvcm1SZWFjdFJlZnJlc2goKSB7CiAgaWYgKHBlbmRpbmdVcGRhdGVzLmxlbmd0aCA9PT0gMCkgewogICAgcmV0dXJuIG51bGwKICB9CiAgaWYgKGlzUGVyZm9ybWluZ1JlZnJlc2gpIHsKICAgIHJldHVybiBudWxsCiAgfQoKICBpc1BlcmZvcm1pbmdSZWZyZXNoID0gdHJ1ZQogIHRyeSB7CiAgICBjb25zdCBzdGFsZUZhbWlsaWVzID0gbmV3IFNldCgpCiAgICBjb25zdCB1cGRhdGVkRmFtaWxpZXMgPSBuZXcgU2V0KCkKCiAgICBjb25zdCB1cGRhdGVzID0gcGVuZGluZ1VwZGF0ZXMKICAgIHBlbmRpbmdVcGRhdGVzID0gW10KICAgIHVwZGF0ZXMuZm9yRWFjaCgoW2ZhbWlseSwgbmV4dFR5cGVdKSA9PiB7CiAgICAgIC8vIE5vdyB0aGF0IHdlIGdvdCBhIHJlYWwgZWRpdCwgd2UgY2FuIGNyZWF0ZSBhc3NvY2lhdGlvbnMKICAgICAgLy8gdGhhdCB3aWxsIGJlIHJlYWQgYnkgdGhlIFJlYWN0IHJlY29uY2lsZXIuCiAgICAgIGNvbnN0IHByZXZUeXBlID0gZmFtaWx5LmN1cnJlbnQKICAgICAgdXBkYXRlZEZhbWlsaWVzQnlUeXBlLnNldChwcmV2VHlwZSwgZmFtaWx5KQogICAgICB1cGRhdGVkRmFtaWxpZXNCeVR5cGUuc2V0KG5leHRUeXBlLCBmYW1pbHkpCiAgICAgIGZhbWlseS5jdXJyZW50ID0gbmV4dFR5cGUKCiAgICAgIC8vIERldGVybWluZSB3aGV0aGVyIHRoaXMgc2hvdWxkIGJlIGEgcmUtcmVuZGVyIG9yIGEgcmUtbW91bnQuCiAgICAgIGlmIChjYW5QcmVzZXJ2ZVN0YXRlQmV0d2VlbihwcmV2VHlwZSwgbmV4dFR5cGUpKSB7CiAgICAgICAgdXBkYXRlZEZhbWlsaWVzLmFkZChmYW1pbHkpCiAgICAgIH0gZWxzZSB7CiAgICAgICAgc3RhbGVGYW1pbGllcy5hZGQoZmFtaWx5KQogICAgICB9CiAgICB9KQoKICAgIC8vIFRPRE86IHJlbmFtZSB0aGVzZSBmaWVsZHMgdG8gc29tZXRoaW5nIG1vcmUgbWVhbmluZ2Z1bC4KICAgIGNvbnN0IHVwZGF0ZSA9IHsKICAgICAgdXBkYXRlZEZhbWlsaWVzLCAvLyBGYW1pbGllcyB0aGF0IHdpbGwgcmUtcmVuZGVyIHByZXNlcnZpbmcgc3RhdGUKICAgICAgc3RhbGVGYW1pbGllcywgLy8gRmFtaWxpZXMgdGhhdCB3aWxsIGJlIHJlbW91bnRlZAogICAgfQoKICAgIGhlbHBlcnNCeVJlbmRlcmVySUQuZm9yRWFjaCgoaGVscGVycykgPT4gewogICAgICAvLyBFdmVuIGlmIHRoZXJlIGFyZSBubyByb290cywgc2V0IHRoZSBoYW5kbGVyIG9uIGZpcnN0IHVwZGF0ZS4KICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgaWYgKm5ldyogcm9vdHMgYXJlIG1vdW50ZWQsIHRoZXknbGwgdXNlIHRoZSByZXNvbHZlIGhhbmRsZXIuCiAgICAgIGhlbHBlcnMuc2V0UmVmcmVzaEhhbmRsZXIocmVzb2x2ZUZhbWlseSkKICAgIH0pCgogICAgbGV0IGRpZEVycm9yID0gZmFsc2UKICAgIGxldCBmaXJzdEVycm9yID0gbnVsbAoKICAgIC8vIFdlIHNuYXBzaG90IG1hcHMgYW5kIHNldHMgdGhhdCBhcmUgbXV0YXRlZCBkdXJpbmcgY29tbWl0cy4KICAgIC8vIElmIHdlIGRvbid0IGRvIHRoaXMsIHRoZXJlIGlzIGEgcmlzayB0aGV5IHdpbGwgYmUgbXV0YXRlZCB3aGlsZQogICAgLy8gd2UgaXRlcmF0ZSBvdmVyIHRoZW0uIEZvciBleGFtcGxlLCB0cnlpbmcgdG8gcmVjb3ZlciBhIGZhaWxlZCByb290CiAgICAvLyBtYXkgY2F1c2UgYW5vdGhlciByb290IHRvIGJlIGFkZGVkIHRvIHRoZSBmYWlsZWQgbGlzdCAtLSBhbiBpbmZpbml0ZSBsb29wLgogICAgY29uc3QgZmFpbGVkUm9vdHNTbmFwc2hvdCA9IG5ldyBTZXQoZmFpbGVkUm9vdHMpCiAgICBjb25zdCBtb3VudGVkUm9vdHNTbmFwc2hvdCA9IG5ldyBTZXQobW91bnRlZFJvb3RzKQogICAgY29uc3QgaGVscGVyc0J5Um9vdFNuYXBzaG90ID0gbmV3IE1hcChoZWxwZXJzQnlSb290KQoKICAgIGZhaWxlZFJvb3RzU25hcHNob3QuZm9yRWFjaCgocm9vdCkgPT4gewogICAgICBjb25zdCBoZWxwZXJzID0gaGVscGVyc0J5Um9vdFNuYXBzaG90LmdldChyb290KQogICAgICBpZiAoaGVscGVycyA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgJ0NvdWxkIG5vdCBmaW5kIGhlbHBlcnMgZm9yIGEgcm9vdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdCBSZWZyZXNoLicsCiAgICAgICAgKQogICAgICB9CiAgICAgIGlmICghZmFpbGVkUm9vdHMuaGFzKHJvb3QpKSB7CiAgICAgICAgLy8gTm8gbG9uZ2VyIGZhaWxlZC4KICAgICAgfQogICAgICBpZiAocm9vdEVsZW1lbnRzID09PSBudWxsKSB7CiAgICAgICAgcmV0dXJuCiAgICAgIH0KICAgICAgaWYgKCFyb290RWxlbWVudHMuaGFzKHJvb3QpKSB7CiAgICAgICAgcmV0dXJuCiAgICAgIH0KICAgICAgY29uc3QgZWxlbWVudCA9IHJvb3RFbGVtZW50cy5nZXQocm9vdCkKICAgICAgdHJ5IHsKICAgICAgICBoZWxwZXJzLnNjaGVkdWxlUm9vdChyb290LCBlbGVtZW50KQogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBpZiAoIWRpZEVycm9yKSB7CiAgICAgICAgICBkaWRFcnJvciA9IHRydWUKICAgICAgICAgIGZpcnN0RXJyb3IgPSBlcnIKICAgICAgICB9CiAgICAgICAgLy8gS2VlcCB0cnlpbmcgb3RoZXIgcm9vdHMuCiAgICAgIH0KICAgIH0pCiAgICBtb3VudGVkUm9vdHNTbmFwc2hvdC5mb3JFYWNoKChyb290KSA9PiB7CiAgICAgIGNvbnN0IGhlbHBlcnMgPSBoZWxwZXJzQnlSb290U25hcHNob3QuZ2V0KHJvb3QpCiAgICAgIGlmIChoZWxwZXJzID09PSB1bmRlZmluZWQpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAnQ291bGQgbm90IGZpbmQgaGVscGVycyBmb3IgYSByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0IFJlZnJlc2guJywKICAgICAgICApCiAgICAgIH0KICAgICAgaWYgKCFtb3VudGVkUm9vdHMuaGFzKHJvb3QpKSB7CiAgICAgICAgLy8gTm8gbG9uZ2VyIG1vdW50ZWQuCiAgICAgIH0KICAgICAgdHJ5IHsKICAgICAgICBoZWxwZXJzLnNjaGVkdWxlUmVmcmVzaChyb290LCB1cGRhdGUpCiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGlmICghZGlkRXJyb3IpIHsKICAgICAgICAgIGRpZEVycm9yID0gdHJ1ZQogICAgICAgICAgZmlyc3RFcnJvciA9IGVycgogICAgICAgIH0KICAgICAgICAvLyBLZWVwIHRyeWluZyBvdGhlciByb290cy4KICAgICAgfQogICAgfSkKICAgIGlmIChkaWRFcnJvcikgewogICAgICB0aHJvdyBmaXJzdEVycm9yCiAgICB9CiAgICByZXR1cm4gdXBkYXRlCiAgfSBmaW5hbGx5IHsKICAgIGlzUGVyZm9ybWluZ1JlZnJlc2ggPSBmYWxzZQogIH0KfQoKZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyKHR5cGUsIGlkKSB7CiAgaWYgKHR5cGUgPT09IG51bGwpIHsKICAgIHJldHVybgogIH0KICBpZiAodHlwZW9mIHR5cGUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHR5cGUgIT09ICdvYmplY3QnKSB7CiAgICByZXR1cm4KICB9CgogIC8vIFRoaXMgY2FuIGhhcHBlbiBpbiBhbiBlZGdlIGNhc2UsIGUuZy4gaWYgd2UgcmVnaXN0ZXIKICAvLyByZXR1cm4gdmFsdWUgb2YgYSBIT0MgYnV0IGl0IHJldHVybnMgYSBjYWNoZWQgY29tcG9uZW50LgogIC8vIElnbm9yZSBhbnl0aGluZyBidXQgdGhlIGZpcnN0IHJlZ2lzdHJhdGlvbiBmb3IgZWFjaCB0eXBlLgogIGlmIChhbGxGYW1pbGllc0J5VHlwZS5oYXModHlwZSkpIHsKICAgIHJldHVybgogIH0KICAvLyBDcmVhdGUgZmFtaWx5IG9yIHJlbWVtYmVyIHRvIHVwZGF0ZSBpdC4KICAvLyBOb25lIG9mIHRoaXMgYm9va2tlZXBpbmcgYWZmZWN0cyByZWNvbmNpbGlhdGlvbgogIC8vIHVudGlsIHRoZSBmaXJzdCBwZXJmb3JtUmVhY3RSZWZyZXNoKCkgY2FsbCBhYm92ZS4KICBsZXQgZmFtaWx5ID0gYWxsRmFtaWxpZXNCeUlELmdldChpZCkKICBpZiAoZmFtaWx5ID09PSB1bmRlZmluZWQpIHsKICAgIGZhbWlseSA9IHsgY3VycmVudDogdHlwZSB9CiAgICBhbGxGYW1pbGllc0J5SUQuc2V0KGlkLCBmYW1pbHkpCiAgfSBlbHNlIHsKICAgIHBlbmRpbmdVcGRhdGVzLnB1c2goW2ZhbWlseSwgdHlwZV0pCiAgfQogIGFsbEZhbWlsaWVzQnlUeXBlLnNldCh0eXBlLCBmYW1pbHkpCgogIC8vIFZpc2l0IGlubmVyIHR5cGVzIGJlY2F1c2Ugd2UgbWlnaHQgbm90IGhhdmUgcmVnaXN0ZXJlZCB0aGVtLgogIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCkgewogICAgc3dpdGNoIChnZXRQcm9wZXJ0eSh0eXBlLCAnJCR0eXBlb2YnKSkgewogICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6CiAgICAgICAgcmVnaXN0ZXIodHlwZS5yZW5kZXIsIGlkICsgJyRyZW5kZXInKQogICAgICAgIGJyZWFrCiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOgogICAgICAgIHJlZ2lzdGVyKHR5cGUudHlwZSwgaWQgKyAnJHR5cGUnKQogICAgICAgIGJyZWFrCiAgICB9CiAgfQp9CgpmdW5jdGlvbiBzZXRTaWduYXR1cmUodHlwZSwga2V5LCBmb3JjZVJlc2V0LCBnZXRDdXN0b21Ib29rcykgewogIGlmICghYWxsU2lnbmF0dXJlc0J5VHlwZS5oYXModHlwZSkpIHsKICAgIGFsbFNpZ25hdHVyZXNCeVR5cGUuc2V0KHR5cGUsIHsKICAgICAgZm9yY2VSZXNldCwKICAgICAgb3duS2V5OiBrZXksCiAgICAgIGZ1bGxLZXk6IG51bGwsCiAgICAgIGdldEN1c3RvbUhvb2tzOiBnZXRDdXN0b21Ib29rcyB8fCAoKCkgPT4gW10pLAogICAgfSkKICB9CiAgLy8gVmlzaXQgaW5uZXIgdHlwZXMgYmVjYXVzZSB3ZSBtaWdodCBub3QgaGF2ZSBzaWduZWQgdGhlbS4KICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHsKICAgIHN3aXRjaCAoZ2V0UHJvcGVydHkodHlwZSwgJyQkdHlwZW9mJykpIHsKICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOgogICAgICAgIHNldFNpZ25hdHVyZSh0eXBlLnJlbmRlciwga2V5LCBmb3JjZVJlc2V0LCBnZXRDdXN0b21Ib29rcykKICAgICAgICBicmVhawogICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRToKICAgICAgICBzZXRTaWduYXR1cmUodHlwZS50eXBlLCBrZXksIGZvcmNlUmVzZXQsIGdldEN1c3RvbUhvb2tzKQogICAgICAgIGJyZWFrCiAgICB9CiAgfQp9CgovLyBUaGlzIGlzIGxhemlseSBjYWxsZWQgZHVyaW5nIGZpcnN0IHJlbmRlciBmb3IgYSB0eXBlLgovLyBJdCBjYXB0dXJlcyBIb29rIGxpc3QgYXQgdGhhdCB0aW1lIHNvIGlubGluZSByZXF1aXJlcyBkb24ndCBicmVhayBjb21wYXJpc29ucy4KZnVuY3Rpb24gY29sbGVjdEN1c3RvbUhvb2tzRm9yU2lnbmF0dXJlKHR5cGUpIHsKICBjb25zdCBzaWduYXR1cmUgPSBhbGxTaWduYXR1cmVzQnlUeXBlLmdldCh0eXBlKQogIGlmIChzaWduYXR1cmUgIT09IHVuZGVmaW5lZCkgewogICAgY29tcHV0ZUZ1bGxLZXkoc2lnbmF0dXJlKQogIH0KfQoKZXhwb3J0IGZ1bmN0aW9uIGluamVjdEludG9HbG9iYWxIb29rKGdsb2JhbE9iamVjdCkgewogIC8vIEZvciBSZWFjdCBOYXRpdmUsIHRoZSBnbG9iYWwgaG9vayB3aWxsIGJlIHNldCB1cCBieSByZXF1aXJlKCdyZWFjdC1kZXZ0b29scy1jb3JlJykuCiAgLy8gVGhhdCBjb2RlIHdpbGwgcnVuIGJlZm9yZSB1cy4gU28gd2UgbmVlZCB0byBtb25rZXlwYXRjaCBmdW5jdGlvbnMgb24gZXhpc3RpbmcgaG9vay4KCiAgLy8gRm9yIFJlYWN0IFdlYiwgdGhlIGdsb2JhbCBob29rIHdpbGwgYmUgc2V0IHVwIGJ5IHRoZSBleHRlbnNpb24uCiAgLy8gVGhpcyB3aWxsIGFsc28gcnVuIGJlZm9yZSB1cy4KICBsZXQgaG9vayA9IGdsb2JhbE9iamVjdC5fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18KICBpZiAoaG9vayA9PT0gdW5kZWZpbmVkKSB7CiAgICAvLyBIb3dldmVyLCBpZiB0aGVyZSBpcyBubyBEZXZUb29scyBleHRlbnNpb24sIHdlJ2xsIG5lZWQgdG8gc2V0IHVwIHRoZSBnbG9iYWwgaG9vayBvdXJzZWx2ZXMuCiAgICAvLyBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlIGl0J3MgaW1wb3J0YW50IHRoYXQgcmVuZGVyZXIgY29kZSBydW5zICphZnRlciogdGhpcyBtZXRob2QgY2FsbC4KICAgIC8vIE90aGVyd2lzZSwgdGhlIHJlbmRlcmVyIHdpbGwgdGhpbmsgdGhhdCB0aGVyZSBpcyBubyBnbG9iYWwgaG9vaywgYW5kIHdvbid0IGRvIHRoZSBpbmplY3Rpb24uCiAgICBsZXQgbmV4dElEID0gMAogICAgZ2xvYmFsT2JqZWN0Ll9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyA9IGhvb2sgPSB7CiAgICAgIHJlbmRlcmVyczogbmV3IE1hcCgpLAogICAgICBzdXBwb3J0c0ZpYmVyOiB0cnVlLAogICAgICBpbmplY3Q6IChpbmplY3RlZCkgPT4gbmV4dElEKyssCiAgICAgIG9uU2NoZWR1bGVGaWJlclJvb3Q6IChpZCwgcm9vdCwgY2hpbGRyZW4pID0+IHt9LAogICAgICBvbkNvbW1pdEZpYmVyUm9vdDogKGlkLCByb290LCBtYXliZVByaW9yaXR5TGV2ZWwsIGRpZEVycm9yKSA9PiB7fSwKICAgICAgb25Db21taXRGaWJlclVubW91bnQoKSB7fSwKICAgIH0KICB9CgogIGlmIChob29rLmlzRGlzYWJsZWQpIHsKICAgIC8vIFRoaXMgaXNuJ3QgYSByZWFsIHByb3BlcnR5IG9uIHRoZSBob29rLCBidXQgaXQgY2FuIGJlIHNldCB0byBvcHQgb3V0CiAgICAvLyBvZiBEZXZUb29scyBpbnRlZ3JhdGlvbiBhbmQgYXNzb2NpYXRlZCB3YXJuaW5ncyBhbmQgbG9ncy4KICAgIC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50CiAgICBjb25zb2xlWyd3YXJuJ10oCiAgICAgICdTb21ldGhpbmcgaGFzIHNoaW1tZWQgdGhlIFJlYWN0IERldlRvb2xzIGdsb2JhbCBob29rIChfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pLiAnICsKICAgICAgICAnRmFzdCBSZWZyZXNoIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhpcyBzaGltIGFuZCB3aWxsIGJlIGRpc2FibGVkLicsCiAgICApCiAgICByZXR1cm4KICB9CgogIC8vIEhlcmUsIHdlIGp1c3Qgd2FudCB0byBnZXQgYSByZWZlcmVuY2UgdG8gc2NoZWR1bGVSZWZyZXNoLgogIGNvbnN0IG9sZEluamVjdCA9IGhvb2suaW5qZWN0CiAgaG9vay5pbmplY3QgPSBmdW5jdGlvbiAoaW5qZWN0ZWQpIHsKICAgIGNvbnN0IGlkID0gb2xkSW5qZWN0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykKICAgIGlmICgKICAgICAgdHlwZW9mIGluamVjdGVkLnNjaGVkdWxlUmVmcmVzaCA9PT0gJ2Z1bmN0aW9uJyAmJgogICAgICB0eXBlb2YgaW5qZWN0ZWQuc2V0UmVmcmVzaEhhbmRsZXIgPT09ICdmdW5jdGlvbicKICAgICkgewogICAgICAvLyBUaGlzIHZlcnNpb24gc3VwcG9ydHMgUmVhY3QgUmVmcmVzaC4KICAgICAgaGVscGVyc0J5UmVuZGVyZXJJRC5zZXQoaWQsIGluamVjdGVkKQogICAgfQogICAgcmV0dXJuIGlkCiAgfQoKICAvLyBEbyB0aGUgc2FtZSBmb3IgYW55IGFscmVhZHkgaW5qZWN0ZWQgcm9vdHMuCiAgLy8gVGhpcyBpcyB1c2VmdWwgaWYgUmVhY3RET00gaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZC4KICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE3NjI2CiAgaG9vay5yZW5kZXJlcnMuZm9yRWFjaCgoaW5qZWN0ZWQsIGlkKSA9PiB7CiAgICBpZiAoCiAgICAgIHR5cGVvZiBpbmplY3RlZC5zY2hlZHVsZVJlZnJlc2ggPT09ICdmdW5jdGlvbicgJiYKICAgICAgdHlwZW9mIGluamVjdGVkLnNldFJlZnJlc2hIYW5kbGVyID09PSAnZnVuY3Rpb24nCiAgICApIHsKICAgICAgLy8gVGhpcyB2ZXJzaW9uIHN1cHBvcnRzIFJlYWN0IFJlZnJlc2guCiAgICAgIGhlbHBlcnNCeVJlbmRlcmVySUQuc2V0KGlkLCBpbmplY3RlZCkKICAgIH0KICB9KQoKICAvLyBXZSBhbHNvIHdhbnQgdG8gdHJhY2sgY3VycmVudGx5IG1vdW50ZWQgcm9vdHMuCiAgY29uc3Qgb2xkT25Db21taXRGaWJlclJvb3QgPSBob29rLm9uQ29tbWl0RmliZXJSb290CiAgY29uc3Qgb2xkT25TY2hlZHVsZUZpYmVyUm9vdCA9IGhvb2sub25TY2hlZHVsZUZpYmVyUm9vdCB8fCAoKCkgPT4ge30pCiAgaG9vay5vblNjaGVkdWxlRmliZXJSb290ID0gZnVuY3Rpb24gKGlkLCByb290LCBjaGlsZHJlbikgewogICAgaWYgKCFpc1BlcmZvcm1pbmdSZWZyZXNoKSB7CiAgICAgIC8vIElmIGl0IHdhcyBpbnRlbnRpb25hbGx5IHNjaGVkdWxlZCwgZG9uJ3QgYXR0ZW1wdCB0byByZXN0b3JlLgogICAgICAvLyBUaGlzIGluY2x1ZGVzIGludGVudGlvbmFsbHkgc2NoZWR1bGVkIHVubW91bnRzLgogICAgICBmYWlsZWRSb290cy5kZWxldGUocm9vdCkKICAgICAgaWYgKHJvb3RFbGVtZW50cyAhPT0gbnVsbCkgewogICAgICAgIHJvb3RFbGVtZW50cy5zZXQocm9vdCwgY2hpbGRyZW4pCiAgICAgIH0KICAgIH0KICAgIHJldHVybiBvbGRPblNjaGVkdWxlRmliZXJSb290LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykKICB9CiAgaG9vay5vbkNvbW1pdEZpYmVyUm9vdCA9IGZ1bmN0aW9uIChpZCwgcm9vdCwgbWF5YmVQcmlvcml0eUxldmVsLCBkaWRFcnJvcikgewogICAgY29uc3QgaGVscGVycyA9IGhlbHBlcnNCeVJlbmRlcmVySUQuZ2V0KGlkKQogICAgaWYgKGhlbHBlcnMgIT09IHVuZGVmaW5lZCkgewogICAgICBoZWxwZXJzQnlSb290LnNldChyb290LCBoZWxwZXJzKQoKICAgICAgY29uc3QgY3VycmVudCA9IHJvb3QuY3VycmVudAogICAgICBjb25zdCBhbHRlcm5hdGUgPSBjdXJyZW50LmFsdGVybmF0ZQoKICAgICAgLy8gV2UgbmVlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGlzIHJvb3QgaGFzIGp1c3QgKHVuKW1vdW50ZWQuCiAgICAgIC8vIFRoaXMgbG9naWMgaXMgY29weS1wYXN0ZWQgZnJvbSBzaW1pbGFyIGxvZ2ljIGluIHRoZSBEZXZUb29scyBiYWNrZW5kLgogICAgICAvLyBJZiB0aGlzIGJyZWFrcyB3aXRoIHNvbWUgcmVmYWN0b3JpbmcsIHlvdSdsbCB3YW50IHRvIHVwZGF0ZSBEZXZUb29scyB0b28uCgogICAgICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7CiAgICAgICAgY29uc3Qgd2FzTW91bnRlZCA9CiAgICAgICAgICBhbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZSAhPSBudWxsICYmCiAgICAgICAgICBhbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5lbGVtZW50ICE9IG51bGwgJiYKICAgICAgICAgIG1vdW50ZWRSb290cy5oYXMocm9vdCkKCiAgICAgICAgY29uc3QgaXNNb3VudGVkID0KICAgICAgICAgIGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAhPSBudWxsICYmIGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5lbGVtZW50ICE9IG51bGwKCiAgICAgICAgaWYgKCF3YXNNb3VudGVkICYmIGlzTW91bnRlZCkgewogICAgICAgICAgLy8gTW91bnQgYSBuZXcgcm9vdC4KICAgICAgICAgIG1vdW50ZWRSb290cy5hZGQocm9vdCkKICAgICAgICAgIGZhaWxlZFJvb3RzLmRlbGV0ZShyb290KQogICAgICAgIH0gZWxzZSBpZiAod2FzTW91bnRlZCAmJiBpc01vdW50ZWQpIHsKICAgICAgICAgIC8vIFVwZGF0ZSBhbiBleGlzdGluZyByb290LgogICAgICAgICAgLy8gVGhpcyBkb2Vzbid0IGFmZmVjdCBvdXIgbW91bnRlZCByb290IFNldC4KICAgICAgICB9IGVsc2UgaWYgKHdhc01vdW50ZWQgJiYgIWlzTW91bnRlZCkgewogICAgICAgICAgLy8gVW5tb3VudCBhbiBleGlzdGluZyByb290LgogICAgICAgICAgbW91bnRlZFJvb3RzLmRlbGV0ZShyb290KQogICAgICAgICAgaWYgKGRpZEVycm9yKSB7CiAgICAgICAgICAgIC8vIFdlJ2xsIHJlbW91bnQgaXQgb24gZnV0dXJlIGVkaXRzLgogICAgICAgICAgICBmYWlsZWRSb290cy5hZGQocm9vdCkKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGhlbHBlcnNCeVJvb3QuZGVsZXRlKHJvb3QpCiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmICghd2FzTW91bnRlZCAmJiAhaXNNb3VudGVkKSB7CiAgICAgICAgICBpZiAoZGlkRXJyb3IpIHsKICAgICAgICAgICAgLy8gV2UnbGwgcmVtb3VudCBpdCBvbiBmdXR1cmUgZWRpdHMuCiAgICAgICAgICAgIGZhaWxlZFJvb3RzLmFkZChyb290KQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICAvLyBNb3VudCBhIG5ldyByb290LgogICAgICAgIG1vdW50ZWRSb290cy5hZGQocm9vdCkKICAgICAgfQogICAgfQoKICAgIC8vIEFsd2F5cyBjYWxsIHRoZSBkZWNvcmF0ZWQgRGV2VG9vbHMgaG9vay4KICAgIHJldHVybiBvbGRPbkNvbW1pdEZpYmVyUm9vdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpCiAgfQp9CgovLyBUaGlzIGlzIGEgd3JhcHBlciBvdmVyIG1vcmUgcHJpbWl0aXZlIGZ1bmN0aW9ucyBmb3Igc2V0dGluZyBzaWduYXR1cmUuCi8vIFNpZ25hdHVyZXMgbGV0IHVzIGRlY2lkZSB3aGV0aGVyIHRoZSBIb29rIG9yZGVyIGhhcyBjaGFuZ2VkIG9uIHJlZnJlc2guCi8vCi8vIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBhIHRyYW5zZm9ybSB0YXJnZXQsIGUuZy46Ci8vIHZhciBfcyA9IGNyZWF0ZVNpZ25hdHVyZUZ1bmN0aW9uRm9yVHJhbnNmb3JtKCkKLy8KLy8gZnVuY3Rpb24gSGVsbG8oKSB7Ci8vICAgY29uc3QgW2Zvbywgc2V0Rm9vXSA9IHVzZVN0YXRlKDApOwovLyAgIGNvbnN0IHZhbHVlID0gdXNlQ3VzdG9tSG9vaygpOwovLyAgIF9zKCk7IC8qIENhbGwgd2l0aG91dCBhcmd1bWVudHMgdHJpZ2dlcnMgY29sbGVjdGluZyB0aGUgY3VzdG9tIEhvb2sgbGlzdC4KLy8gICAgICAgICAgKiBUaGlzIGRvZXNuJ3QgaGFwcGVuIGR1cmluZyB0aGUgbW9kdWxlIGV2YWx1YXRpb24gYmVjYXVzZSB3ZQovLyAgICAgICAgICAqIGRvbid0IHdhbnQgdG8gY2hhbmdlIHRoZSBtb2R1bGUgb3JkZXIgd2l0aCBpbmxpbmUgcmVxdWlyZXMuCi8vICAgICAgICAgICogTmV4dCBjYWxscyBhcmUgbm9vcHMuICovCi8vICAgcmV0dXJuIDxoMT5IaTwvaDE+OwovLyB9Ci8vCi8vIC8qIENhbGwgd2l0aCBhcmd1bWVudHMgYXR0YWNoZXMgdGhlIHNpZ25hdHVyZSB0byB0aGUgdHlwZTogKi8KLy8gX3MoCi8vICAgSGVsbG8sCi8vICAgJ3VzZVN0YXRle1tmb28sIHNldEZvb119KDApJywKLy8gICAoKSA9PiBbdXNlQ3VzdG9tSG9va10sIC8qIExhenkgdG8gYXZvaWQgdHJpZ2dlcmluZyBpbmxpbmUgcmVxdWlyZXMgKi8KLy8gKTsKZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNpZ25hdHVyZUZ1bmN0aW9uRm9yVHJhbnNmb3JtKCkgewogIGxldCBzYXZlZFR5cGUKICBsZXQgaGFzQ3VzdG9tSG9va3MKICBsZXQgZGlkQ29sbGVjdEhvb2tzID0gZmFsc2UKICByZXR1cm4gZnVuY3Rpb24gKHR5cGUsIGtleSwgZm9yY2VSZXNldCwgZ2V0Q3VzdG9tSG9va3MpIHsKICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykgewogICAgICAvLyBXZSdyZSBpbiB0aGUgaW5pdGlhbCBwaGFzZSB0aGF0IGFzc29jaWF0ZXMgc2lnbmF0dXJlcwogICAgICAvLyB3aXRoIHRoZSBmdW5jdGlvbnMuIE5vdGUgdGhpcyBtYXkgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzCiAgICAgIC8vIGluIEhPQyBjaGFpbnMgbGlrZSBfcyhob2MxKF9zKGhvYzIoX3MoYWN0dWFsRnVuY3Rpb24pKSkpKS4KICAgICAgaWYgKCFzYXZlZFR5cGUpIHsKICAgICAgICAvLyBXZSdyZSBpbiB0aGUgaW5uZXJtb3N0IGNhbGwsIHNvIHRoaXMgaXMgdGhlIGFjdHVhbCB0eXBlLgogICAgICAgIC8vICRGbG93Rml4TWVbZXNjYXBlZC1nZW5lcmljXSBkaXNjb3ZlcmVkIHdoZW4gdXBkYXRpbmcgRmxvdwogICAgICAgIHNhdmVkVHlwZSA9IHR5cGUKICAgICAgICBoYXNDdXN0b21Ib29rcyA9IHR5cGVvZiBnZXRDdXN0b21Ib29rcyA9PT0gJ2Z1bmN0aW9uJwogICAgICB9CiAgICAgIC8vIFNldCB0aGUgc2lnbmF0dXJlIGZvciBhbGwgdHlwZXMgKGV2ZW4gd3JhcHBlcnMhKSBpbiBjYXNlCiAgICAgIC8vIHRoZXkgaGF2ZSBubyBzaWduYXR1cmVzIG9mIHRoZWlyIG93bi4gVGhpcyBpcyB0byBwcmV2ZW50CiAgICAgIC8vIHByb2JsZW1zIGxpa2UgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8yMDQxNy4KICAgICAgaWYgKAogICAgICAgIHR5cGUgIT0gbnVsbCAmJgogICAgICAgICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpCiAgICAgICkgewogICAgICAgIHNldFNpZ25hdHVyZSh0eXBlLCBrZXksIGZvcmNlUmVzZXQsIGdldEN1c3RvbUhvb2tzKQogICAgICB9CiAgICAgIHJldHVybiB0eXBlCiAgICB9IGVsc2UgewogICAgICAvLyBXZSdyZSBpbiB0aGUgX3MoKSBjYWxsIHdpdGhvdXQgYXJndW1lbnRzLCB3aGljaCBtZWFucwogICAgICAvLyB0aGlzIGlzIHRoZSB0aW1lIHRvIGNvbGxlY3QgY3VzdG9tIEhvb2sgc2lnbmF0dXJlcy4KICAgICAgLy8gT25seSBkbyB0aGlzIG9uY2UuIFRoaXMgcGF0aCBpcyBob3QgYW5kIHJ1bnMgKmluc2lkZSogZXZlcnkgcmVuZGVyIQogICAgICBpZiAoIWRpZENvbGxlY3RIb29rcyAmJiBoYXNDdXN0b21Ib29rcykgewogICAgICAgIGRpZENvbGxlY3RIb29rcyA9IHRydWUKICAgICAgICBjb2xsZWN0Q3VzdG9tSG9va3NGb3JTaWduYXR1cmUoc2F2ZWRUeXBlKQogICAgICB9CiAgICB9CiAgfQp9CgpmdW5jdGlvbiBpc0xpa2VseUNvbXBvbmVudFR5cGUodHlwZSkgewogIHN3aXRjaCAodHlwZW9mIHR5cGUpIHsKICAgIGNhc2UgJ2Z1bmN0aW9uJzogewogICAgICAvLyBGaXJzdCwgZGVhbCB3aXRoIGNsYXNzZXMuCiAgICAgIGlmICh0eXBlLnByb3RvdHlwZSAhPSBudWxsKSB7CiAgICAgICAgaWYgKHR5cGUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpIHsKICAgICAgICAgIC8vIFJlYWN0IGNsYXNzLgogICAgICAgICAgcmV0dXJuIHRydWUKICAgICAgICB9CiAgICAgICAgY29uc3Qgb3duTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0eXBlLnByb3RvdHlwZSkKICAgICAgICBpZiAob3duTmFtZXMubGVuZ3RoID4gMSB8fCBvd25OYW1lc1swXSAhPT0gJ2NvbnN0cnVjdG9yJykgewogICAgICAgICAgLy8gVGhpcyBsb29rcyBsaWtlIGEgY2xhc3MuCiAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICB9CgogICAgICAgIGlmICh0eXBlLnByb3RvdHlwZS5fX3Byb3RvX18gIT09IE9iamVjdC5wcm90b3R5cGUpIHsKICAgICAgICAgIC8vIEl0IGhhcyBhIHN1cGVyY2xhc3MuCiAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICB9CiAgICAgICAgLy8gUGFzcyB0aHJvdWdoLgogICAgICAgIC8vIFRoaXMgbG9va3MgbGlrZSBhIHJlZ3VsYXIgZnVuY3Rpb24gd2l0aCBlbXB0eSBwcm90b3R5cGUuCiAgICAgIH0KICAgICAgLy8gRm9yIHBsYWluIGZ1bmN0aW9ucyBhbmQgYXJyb3dzLCB1c2UgbmFtZSBhcyBhIGhldXJpc3RpYy4KICAgICAgY29uc3QgbmFtZSA9IHR5cGUubmFtZSB8fCB0eXBlLmRpc3BsYXlOYW1lCiAgICAgIHJldHVybiB0eXBlb2YgbmFtZSA9PT0gJ3N0cmluZycgJiYgL15bQS1aXS8udGVzdChuYW1lKQogICAgfQogICAgY2FzZSAnb2JqZWN0JzogewogICAgICBpZiAodHlwZSAhPSBudWxsKSB7CiAgICAgICAgc3dpdGNoIChnZXRQcm9wZXJ0eSh0eXBlLCAnJCR0eXBlb2YnKSkgewogICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOgogICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6CiAgICAgICAgICAgIC8vIERlZmluaXRlbHkgUmVhY3QgY29tcG9uZW50cy4KICAgICAgICAgICAgcmV0dXJuIHRydWUKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZmFsc2UKICAgIH0KICAgIGRlZmF1bHQ6IHsKICAgICAgcmV0dXJuIGZhbHNlCiAgICB9CiAgfQp9CgpmdW5jdGlvbiBpc0NvbXBvdW5kQ29tcG9uZW50KHR5cGUpIHsKICBpZiAoIWlzUGxhaW5PYmplY3QodHlwZSkpIHJldHVybiBmYWxzZQogIGZvciAoY29uc3Qga2V5IGluIHR5cGUpIHsKICAgIGlmICghaXNMaWtlbHlDb21wb25lbnRUeXBlKHR5cGVba2V5XSkpIHJldHVybiBmYWxzZQogIH0KICByZXR1cm4gdHJ1ZQp9CgpmdW5jdGlvbiBpc1BsYWluT2JqZWN0KG9iaikgewogIHJldHVybiAoCiAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gJ1tvYmplY3QgT2JqZWN0XScgJiYKICAgIChvYmouY29uc3RydWN0b3IgPT09IE9iamVjdCB8fCBvYmouY29uc3RydWN0b3IgPT09IHVuZGVmaW5lZCkKICApCn0KCi8qKgogKiBQbHVnaW4gdXRpbHMKICovCgovLyBUYWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9wbW1td2gvcmVhY3QtcmVmcmVzaC13ZWJwYWNrLXBsdWdpbi9ibG9iL21haW4vbGliL3J1bnRpbWUvUmVmcmVzaFV0aWxzLmpzI0wxNDEKLy8gVGhpcyBhbGxvd3MgdG8gcmVzaXN0ZXIgY29tcG9uZW50cyBub3QgZGV0ZWN0ZWQgYnkgU1dDIGxpa2Ugc3R5bGVkIGNvbXBvbmVudApleHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJFeHBvcnRzRm9yUmVhY3RSZWZyZXNoKGZpbGVuYW1lLCBtb2R1bGVFeHBvcnRzKSB7CiAgZm9yIChjb25zdCBrZXkgaW4gbW9kdWxlRXhwb3J0cykgewogICAgaWYgKGtleSA9PT0gJ19fZXNNb2R1bGUnKSBjb250aW51ZQogICAgY29uc3QgZXhwb3J0VmFsdWUgPSBtb2R1bGVFeHBvcnRzW2tleV0KICAgIGlmIChpc0xpa2VseUNvbXBvbmVudFR5cGUoZXhwb3J0VmFsdWUpKSB7CiAgICAgIC8vICdleHBvcnQnIGlzIHJlcXVpcmVkIHRvIGF2b2lkIGtleSBjb2xsaXNpb24gd2hlbiByZW5hbWVkIGV4cG9ydHMgdGhhdAogICAgICAvLyBzaGFkb3cgYSBsb2NhbCBjb21wb25lbnQgbmFtZTogaHR0cHM6Ly9naXRodWIuY29tL3ZpdGVqcy92aXRlLXBsdWdpbi1yZWFjdC9pc3N1ZXMvMTE2CiAgICAgIC8vIFRoZSByZWdpc3RlciBmdW5jdGlvbiBoYXMgYW4gaWRlbnRpdHkgY2hlY2sgdG8gbm90IHJlZ2lzdGVyIHR3aWNlIHRoZSBzYW1lIGNvbXBvbmVudCwKICAgICAgLy8gc28gdGhpcyBpcyBzYWZlIHRvIG5vdCB1c2VkIHRoZSBzYW1lIGtleSBoZXJlLgogICAgICByZWdpc3RlcihleHBvcnRWYWx1ZSwgZmlsZW5hbWUgKyAnIGV4cG9ydCAnICsga2V5KQogICAgfSBlbHNlIGlmIChpc0NvbXBvdW5kQ29tcG9uZW50KGV4cG9ydFZhbHVlKSkgewogICAgICBmb3IgKGNvbnN0IHN1YktleSBpbiBleHBvcnRWYWx1ZSkgewogICAgICAgIHJlZ2lzdGVyKAogICAgICAgICAgZXhwb3J0VmFsdWVbc3ViS2V5XSwKICAgICAgICAgIGZpbGVuYW1lICsgJyBleHBvcnQgJyArIGtleSArICctJyArIHN1YktleSwKICAgICAgICApCiAgICAgIH0KICAgIH0KICB9Cn0KCmZ1bmN0aW9uIGRlYm91bmNlKGZuLCBkZWxheSkgewogIGxldCBoYW5kbGUKICByZXR1cm4gKCkgPT4gewogICAgY2xlYXJUaW1lb3V0KGhhbmRsZSkKICAgIGhhbmRsZSA9IHNldFRpbWVvdXQoZm4sIGRlbGF5KQogIH0KfQoKY29uc3QgaG9va3MgPSBbXQp3aW5kb3cuX19yZWdpc3RlckJlZm9yZVBlcmZvcm1SZWFjdFJlZnJlc2ggPSAoY2IpID0+IHsKICBob29rcy5wdXNoKGNiKQp9CmNvbnN0IGVucXVldWVVcGRhdGUgPSBkZWJvdW5jZShhc3luYyAoKSA9PiB7CiAgaWYgKGhvb2tzLmxlbmd0aCkgYXdhaXQgUHJvbWlzZS5hbGwoaG9va3MubWFwKChjYikgPT4gY2IoKSkpCiAgcGVyZm9ybVJlYWN0UmVmcmVzaCgpCn0sIDE2KQoKZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUmVmcmVzaEJvdW5kYXJ5QW5kRW5xdWV1ZVVwZGF0ZSgKICBpZCwKICBwcmV2RXhwb3J0cywKICBuZXh0RXhwb3J0cywKKSB7CiAgY29uc3QgaWdub3JlZEV4cG9ydHMgPSB3aW5kb3cuX19nZXRSZWFjdFJlZnJlc2hJZ25vcmVkRXhwb3J0cz8uKHsgaWQgfSkgPz8gW10KICBpZiAoCiAgICBwcmVkaWNhdGVPbkV4cG9ydCgKICAgICAgaWdub3JlZEV4cG9ydHMsCiAgICAgIHByZXZFeHBvcnRzLAogICAgICAoa2V5KSA9PiBrZXkgaW4gbmV4dEV4cG9ydHMsCiAgICApICE9PSB0cnVlCiAgKSB7CiAgICByZXR1cm4gJ0NvdWxkIG5vdCBGYXN0IFJlZnJlc2ggKGV4cG9ydCByZW1vdmVkKScKICB9CiAgaWYgKAogICAgcHJlZGljYXRlT25FeHBvcnQoCiAgICAgIGlnbm9yZWRFeHBvcnRzLAogICAgICBuZXh0RXhwb3J0cywKICAgICAgKGtleSkgPT4ga2V5IGluIHByZXZFeHBvcnRzLAogICAgKSAhPT0gdHJ1ZQogICkgewogICAgcmV0dXJuICdDb3VsZCBub3QgRmFzdCBSZWZyZXNoIChuZXcgZXhwb3J0KScKICB9CgogIGxldCBoYXNFeHBvcnRzID0gZmFsc2UKICBjb25zdCBhbGxFeHBvcnRzQXJlQ29tcG9uZW50c09yVW5jaGFuZ2VkID0gcHJlZGljYXRlT25FeHBvcnQoCiAgICBpZ25vcmVkRXhwb3J0cywKICAgIG5leHRFeHBvcnRzLAogICAgKGtleSwgdmFsdWUpID0+IHsKICAgICAgaGFzRXhwb3J0cyA9IHRydWUKICAgICAgaWYgKGlzTGlrZWx5Q29tcG9uZW50VHlwZSh2YWx1ZSkpIHJldHVybiB0cnVlCiAgICAgIGlmIChpc0NvbXBvdW5kQ29tcG9uZW50KHZhbHVlKSkgcmV0dXJuIHRydWUKICAgICAgcmV0dXJuIHByZXZFeHBvcnRzW2tleV0gPT09IG5leHRFeHBvcnRzW2tleV0KICAgIH0sCiAgKQogIGlmIChoYXNFeHBvcnRzICYmIGFsbEV4cG9ydHNBcmVDb21wb25lbnRzT3JVbmNoYW5nZWQgPT09IHRydWUpIHsKICAgIGVucXVldWVVcGRhdGUoKQogIH0gZWxzZSB7CiAgICByZXR1cm4gYENvdWxkIG5vdCBGYXN0IFJlZnJlc2ggKCIke2FsbEV4cG9ydHNBcmVDb21wb25lbnRzT3JVbmNoYW5nZWR9IiBleHBvcnQgaXMgaW5jb21wYXRpYmxlKS4gTGVhcm4gbW9yZSBhdCBodHRwczovL2dpdGh1Yi5jb20vdml0ZWpzL3ZpdGUtcGx1Z2luLXJlYWN0L3RyZWUvbWFpbi9wYWNrYWdlcy9wbHVnaW4tcmVhY3QjY29uc2lzdGVudC1jb21wb25lbnRzLWV4cG9ydHNgCiAgfQp9CgpmdW5jdGlvbiBwcmVkaWNhdGVPbkV4cG9ydChpZ25vcmVkRXhwb3J0cywgbW9kdWxlRXhwb3J0cywgcHJlZGljYXRlKSB7CiAgZm9yIChjb25zdCBrZXkgaW4gbW9kdWxlRXhwb3J0cykgewogICAgaWYgKGlnbm9yZWRFeHBvcnRzLmluY2x1ZGVzKGtleSkpIGNvbnRpbnVlCiAgICBpZiAoIXByZWRpY2F0ZShrZXksIG1vZHVsZUV4cG9ydHNba2V5XSkpIHJldHVybiBrZXkKICB9CiAgcmV0dXJuIHRydWUKfQoKLy8gSGlkZXMgdml0ZS1pZ25vcmVkIGR5bmFtaWMgaW1wb3J0IHNvIHRoYXQgVml0ZSBjYW4gc2tpcCBhbmFseXNpcyBpZiBubyBvdGhlcgovLyBkeW5hbWljIGltcG9ydCBpcyBwcmVzZW50IChodHRwczovL2dpdGh1Yi5jb20vdml0ZWpzL3ZpdGUvcHVsbC8xMjczMikKZXhwb3J0IGNvbnN0IF9faG1yX2ltcG9ydCA9IChtb2R1bGUpID0+IGltcG9ydCgvKiBAdml0ZS1pZ25vcmUgKi8gX192aXRlX19pbmplY3RRdWVyeShtb2R1bGUsICdpbXBvcnQnKSkKCi8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIEB2aXRlanMvcGx1Z2luLXJlYWN0LgpleHBvcnQgZGVmYXVsdCB7IGluamVjdEludG9HbG9iYWxIb29rIH0KCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJa0J5WldGamRDMXlaV1p5WlhOb0lsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJR2x1YW1WamRGRjFaWEo1SUdGeklGOWZkbWwwWlY5ZmFXNXFaV04wVVhWbGNua2dmU0JtY205dElGd2lMMEIyYVhSbEwyTnNhV1Z1ZEZ3aU95OHFJR2RzYjJKaGJDQjNhVzVrYjNjZ0tpOWNiaThxSUdWemJHbHVkQzFrYVhOaFlteGxJR1Z4WlhGbGNTd2djSEpsWm1WeUxXTnZibk4wTENCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtOHRaVzF3ZEhrdFpuVnVZM1JwYjI0Z0tpOWNibHh1THlvaElFTnZjSGx5YVdkb2RDQW9ZeWtnVFdWMFlTQlFiR0YwWm05eWJYTXNJRWx1WXk0Z1lXNWtJR0ZtWm1sc2FXRjBaWE11SUNvcUwxeHVMeW9xWEc0Z0tpQlVhR2x6SUdseklITnBiWEJzYVdacFpXUWdjSFZ5WlMxcWN5QjJaWEp6YVc5dUlHOW1JR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzltWVdObFltOXZheTl5WldGamRDOWliRzlpTDIxaGFXNHZjR0ZqYTJGblpYTXZjbVZoWTNRdGNtVm1jbVZ6YUM5emNtTXZVbVZoWTNSR2NtVnphRkoxYm5ScGJXVXVhbk5jYmlBcUlIZHBkR2h2ZFhRZ1NVVXhNU0JqYjIxd1lYUnBZbWxzYVhSNUlHRnVaQ0IyWlhKaWIzTmxJR2x6UkdWMklHTm9aV05yY3k1Y2JpQXFJRk52YldVZ2RYUnBiSE1nWVhKbElHRndjR1Z1WkdWa0lHRjBJSFJvWlNCaWIzUjBiMjBnWm05eUlFaE5VaUJwYm5SbFozSmhkR2x2Ymk1Y2JpQXFMMXh1WEc1amIyNXpkQ0JTUlVGRFZGOUdUMUpYUVZKRVgxSkZSbDlVV1ZCRklEMGdVM2x0WW05c0xtWnZjaWduY21WaFkzUXVabTl5ZDJGeVpGOXlaV1luS1Z4dVkyOXVjM1FnVWtWQlExUmZUVVZOVDE5VVdWQkZJRDBnVTNsdFltOXNMbVp2Y2lnbmNtVmhZM1F1YldWdGJ5Y3BYRzVjYmk4dklGZGxJRzVsZG1WeUlISmxiVzkyWlNCMGFHVnpaU0JoYzNOdlkybGhkR2x2Ym5NdVhHNHZMeUJKZENkeklFOUxJSFJ2SUhKbFptVnlaVzVqWlNCbVlXMXBiR2xsY3l3Z1luVjBJSFZ6WlNCWFpXRnJUV0Z3TDFObGRDQm1iM0lnZEhsd1pYTXVYRzVzWlhRZ1lXeHNSbUZ0YVd4cFpYTkNlVWxFSUQwZ2JtVjNJRTFoY0NncFhHNXNaWFFnWVd4c1JtRnRhV3hwWlhOQ2VWUjVjR1VnUFNCdVpYY2dWMlZoYTAxaGNDZ3BYRzVzWlhRZ1lXeHNVMmxuYm1GMGRYSmxjMEo1Vkhsd1pTQTlJRzVsZHlCWFpXRnJUV0Z3S0NsY2JseHVMeThnVkdocGN5QlhaV0ZyVFdGd0lHbHpJSEpsWVdRZ1lua2dVbVZoWTNRc0lITnZJSGRsSUc5dWJIa2djSFYwSUdaaGJXbHNhV1Z6WEc0dkx5QjBhR0YwSUdoaGRtVWdZV04wZFdGc2JIa2dZbVZsYmlCbFpHbDBaV1FnYUdWeVpTNGdWR2hwY3lCclpXVndjeUJqYUdWamEzTWdabUZ6ZEM1Y2JtTnZibk4wSUhWd1pHRjBaV1JHWVcxcGJHbGxjMEo1Vkhsd1pTQTlJRzVsZHlCWFpXRnJUV0Z3S0NsY2JseHVMeThnVkdocGN5QnBjeUJqYkdWaGNtVmtJRzl1SUdWMlpYSjVJSEJsY21admNtMVNaV0ZqZEZKbFpuSmxjMmdvS1NCallXeHNMbHh1THk4Z1NYUWdhWE1nWVc0Z1lYSnlZWGtnYjJZZ1cwWmhiV2xzZVN3Z1RtVjRkRlI1Y0dWZElIUjFjR3hsY3k1Y2JteGxkQ0J3Wlc1a2FXNW5WWEJrWVhSbGN5QTlJRnRkWEc1Y2JpOHZJRlJvYVhNZ2FYTWdhVzVxWldOMFpXUWdZbmtnZEdobElISmxibVJsY21WeUlIWnBZU0JFWlhaVWIyOXNjeUJuYkc5aVlXd2dhRzl2YXk1Y2JtTnZibk4wSUdobGJIQmxjbk5DZVZKbGJtUmxjbVZ5U1VRZ1BTQnVaWGNnVFdGd0tDbGNibHh1WTI5dWMzUWdhR1ZzY0dWeWMwSjVVbTl2ZENBOUlHNWxkeUJOWVhBb0tWeHVYRzR2THlCWFpTQnJaV1Z3SUhSeVlXTnJJRzltSUcxdmRXNTBaV1FnY205dmRITWdjMjhnZDJVZ1kyRnVJSE5qYUdWa2RXeGxJSFZ3WkdGMFpYTXVYRzVqYjI1emRDQnRiM1Z1ZEdWa1VtOXZkSE1nUFNCdVpYY2dVMlYwS0NsY2JpOHZJRWxtSUdFZ2NtOXZkQ0JqWVhCMGRYSmxjeUJoYmlCbGNuSnZjaXdnZDJVZ2NtVnRaVzFpWlhJZ2FYUWdjMjhnZDJVZ1kyRnVJSEpsZEhKNUlHOXVJR1ZrYVhRdVhHNWpiMjV6ZENCbVlXbHNaV1JTYjI5MGN5QTlJRzVsZHlCVFpYUW9LVnh1WEc0dkx5QlhaU0JoYkhOdklISmxiV1Z0WW1WeUlIUm9aU0JzWVhOMElHVnNaVzFsYm5RZ1ptOXlJR1YyWlhKNUlISnZiM1F1WEc0dkx5QkpkQ0J1WldWa2N5QjBieUJpWlNCM1pXRnJJR0psWTJGMWMyVWdkMlVnWkc4Z2RHaHBjeUJsZG1WdUlHWnZjaUJ5YjI5MGN5QjBhR0YwSUdaaGFXeGxaQ0IwYnlCdGIzVnVkQzVjYmk4dklFbG1JSFJvWlhKbElHbHpJRzV2SUZkbFlXdE5ZWEFzSUhkbElIZHZiaWQwSUdGMGRHVnRjSFFnZEc4Z1pHOGdjbVYwY25scGJtY3VYRzVzWlhRZ2NtOXZkRVZzWlcxbGJuUnpJRDBnYm1WM0lGZGxZV3ROWVhBb0tWeHViR1YwSUdselVHVnlabTl5YldsdVoxSmxabkpsYzJnZ1BTQm1ZV3h6WlZ4dVhHNW1kVzVqZEdsdmJpQmpiMjF3ZFhSbFJuVnNiRXRsZVNoemFXZHVZWFIxY21VcElIdGNiaUFnYVdZZ0tITnBaMjVoZEhWeVpTNW1kV3hzUzJWNUlDRTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhOcFoyNWhkSFZ5WlM1bWRXeHNTMlY1WEc0Z0lIMWNibHh1SUNCc1pYUWdablZzYkV0bGVTQTlJSE5wWjI1aGRIVnlaUzV2ZDI1TFpYbGNiaUFnYkdWMElHaHZiMnR6WEc0Z0lIUnllU0I3WEc0Z0lDQWdhRzl2YTNNZ1BTQnphV2R1WVhSMWNtVXVaMlYwUTNWemRHOXRTRzl2YTNNb0tWeHVJQ0I5SUdOaGRHTm9JQ2hsY25JcElIdGNiaUFnSUNBdkx5QlVhR2x6SUdOaGJpQm9ZWEJ3Wlc0Z2FXNGdZVzRnWldSblpTQmpZWE5sTENCbExtY3VJR2xtSUdWNGNISmxjM05wYjI0Z2JHbHJaU0JHYjI4dWRYTmxVMjl0WlhSb2FXNW5YRzRnSUNBZ0x5OGdaR1Z3Wlc1a2N5QnZiaUJHYjI4Z2QyaHBZMmdnYVhNZ2JHRjZhV3g1SUdsdWFYUnBZV3hwZW1Wa0lHUjFjbWx1WnlCeVpXNWtaWEpwYm1jdVhHNGdJQ0FnTHk4Z1NXNGdkR2hoZENCallYTmxJR3AxYzNRZ1lYTnpkVzFsSUhkbEoyeHNJR2hoZG1VZ2RHOGdjbVZ0YjNWdWRDNWNiaUFnSUNCemFXZHVZWFIxY21VdVptOXlZMlZTWlhObGRDQTlJSFJ5ZFdWY2JpQWdJQ0J6YVdkdVlYUjFjbVV1Wm5Wc2JFdGxlU0E5SUdaMWJHeExaWGxjYmlBZ0lDQnlaWFIxY200Z1puVnNiRXRsZVZ4dUlDQjlYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQm9iMjlyY3k1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lHTnZibk4wSUdodmIyc2dQU0JvYjI5cmMxdHBYVnh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdhRzl2YXlBaFBUMGdKMloxYm1OMGFXOXVKeWtnZTF4dUlDQWdJQ0FnTHk4Z1UyOXRaWFJvYVc1bkozTWdkM0p2Ym1jdUlFRnpjM1Z0WlNCM1pTQnVaV1ZrSUhSdklISmxiVzkxYm5RdVhHNGdJQ0FnSUNCemFXZHVZWFIxY21VdVptOXlZMlZTWlhObGRDQTlJSFJ5ZFdWY2JpQWdJQ0FnSUhOcFoyNWhkSFZ5WlM1bWRXeHNTMlY1SUQwZ1puVnNiRXRsZVZ4dUlDQWdJQ0FnY21WMGRYSnVJR1oxYkd4TFpYbGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdibVZ6ZEdWa1NHOXZhMU5wWjI1aGRIVnlaU0E5SUdGc2JGTnBaMjVoZEhWeVpYTkNlVlI1Y0dVdVoyVjBLR2h2YjJzcFhHNGdJQ0FnYVdZZ0tHNWxjM1JsWkVodmIydFRhV2R1WVhSMWNtVWdQVDA5SUhWdVpHVm1hVzVsWkNrZ2UxeHVJQ0FnSUNBZ0x5OGdUbThnYzJsbmJtRjBkWEpsSUcxbFlXNXpJRWh2YjJzZ2QyRnpiaWQwSUdsdUlIUm9aU0J6YjNWeVkyVWdZMjlrWlN3Z1pTNW5MaUJwYmlCaElHeHBZbkpoY25rdVhHNGdJQ0FnSUNBdkx5QlhaU2RzYkNCemEybHdJR2wwSUdKbFkyRjFjMlVnZDJVZ1kyRnVJR0Z6YzNWdFpTQnBkQ0IzYjI0bmRDQmphR0Z1WjJVZ1pIVnlhVzVuSUhSb2FYTWdjMlZ6YzJsdmJpNWNiaUFnSUNBZ0lHTnZiblJwYm5WbFhHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElHNWxjM1JsWkVodmIydExaWGtnUFNCamIyMXdkWFJsUm5Wc2JFdGxlU2h1WlhOMFpXUkliMjlyVTJsbmJtRjBkWEpsS1Z4dUlDQWdJR2xtSUNodVpYTjBaV1JJYjI5clUybG5ibUYwZFhKbExtWnZjbU5sVW1WelpYUXBJSHRjYmlBZ0lDQWdJSE5wWjI1aGRIVnlaUzVtYjNKalpWSmxjMlYwSUQwZ2RISjFaVnh1SUNBZ0lIMWNiaUFnSUNCbWRXeHNTMlY1SUNzOUlDZGNYRzR0TFMxY1hHNG5JQ3NnYm1WemRHVmtTRzl2YTB0bGVWeHVJQ0I5WEc1Y2JpQWdjMmxuYm1GMGRYSmxMbVoxYkd4TFpYa2dQU0JtZFd4c1MyVjVYRzRnSUhKbGRIVnliaUJtZFd4c1MyVjVYRzU5WEc1Y2JtWjFibU4wYVc5dUlHaGhkbVZGY1hWaGJGTnBaMjVoZEhWeVpYTW9jSEpsZGxSNWNHVXNJRzVsZUhSVWVYQmxLU0I3WEc0Z0lHTnZibk4wSUhCeVpYWlRhV2R1WVhSMWNtVWdQU0JoYkd4VGFXZHVZWFIxY21WelFubFVlWEJsTG1kbGRDaHdjbVYyVkhsd1pTbGNiaUFnWTI5dWMzUWdibVY0ZEZOcFoyNWhkSFZ5WlNBOUlHRnNiRk5wWjI1aGRIVnlaWE5DZVZSNWNHVXVaMlYwS0c1bGVIUlVlWEJsS1Z4dVhHNGdJR2xtSUNod2NtVjJVMmxuYm1GMGRYSmxJRDA5UFNCMWJtUmxabWx1WldRZ0ppWWdibVY0ZEZOcFoyNWhkSFZ5WlNBOVBUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUnlkV1ZjYmlBZ2ZWeHVJQ0JwWmlBb2NISmxkbE5wWjI1aGRIVnlaU0E5UFQwZ2RXNWtaV1pwYm1Wa0lIeDhJRzVsZUhSVGFXZHVZWFIxY21VZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQm1ZV3h6WlZ4dUlDQjlYRzRnSUdsbUlDaGpiMjF3ZFhSbFJuVnNiRXRsZVNod2NtVjJVMmxuYm1GMGRYSmxLU0FoUFQwZ1kyOXRjSFYwWlVaMWJHeExaWGtvYm1WNGRGTnBaMjVoZEhWeVpTa3BJSHRjYmlBZ0lDQnlaWFIxY200Z1ptRnNjMlZjYmlBZ2ZWeHVJQ0JwWmlBb2JtVjRkRk5wWjI1aGRIVnlaUzVtYjNKalpWSmxjMlYwS1NCN1hHNGdJQ0FnY21WMGRYSnVJR1poYkhObFhHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2RISjFaVnh1ZlZ4dVhHNW1kVzVqZEdsdmJpQnBjMUpsWVdOMFEyeGhjM01vZEhsd1pTa2dlMXh1SUNCeVpYUjFjbTRnZEhsd1pTNXdjbTkwYjNSNWNHVWdKaVlnZEhsd1pTNXdjbTkwYjNSNWNHVXVhWE5TWldGamRFTnZiWEJ2Ym1WdWRGeHVmVnh1WEc1bWRXNWpkR2x2YmlCallXNVFjbVZ6WlhKMlpWTjBZWFJsUW1WMGQyVmxiaWh3Y21WMlZIbHdaU3dnYm1WNGRGUjVjR1VwSUh0Y2JpQWdhV1lnS0dselVtVmhZM1JEYkdGemN5aHdjbVYyVkhsd1pTa2dmSHdnYVhOU1pXRmpkRU5zWVhOektHNWxlSFJVZVhCbEtTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCbVlXeHpaVnh1SUNCOVhHNGdJR2xtSUNob1lYWmxSWEYxWVd4VGFXZHVZWFIxY21WektIQnlaWFpVZVhCbExDQnVaWGgwVkhsd1pTa3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RISjFaVnh1SUNCOVhHNGdJSEpsZEhWeWJpQm1ZV3h6WlZ4dWZWeHVYRzVtZFc1amRHbHZiaUJ5WlhOdmJIWmxSbUZ0YVd4NUtIUjVjR1VwSUh0Y2JpQWdMeThnVDI1c2VTQmphR1ZqYXlCMWNHUmhkR1ZrSUhSNWNHVnpJSFJ2SUd0bFpYQWdiRzl2YTNWd2N5Qm1ZWE4wTGx4dUlDQnlaWFIxY200Z2RYQmtZWFJsWkVaaGJXbHNhV1Z6UW5sVWVYQmxMbWRsZENoMGVYQmxLVnh1ZlZ4dVhHNHZMeUJVYUdseklHbHpJR0VnYzJGbVpYUjVJRzFsWTJoaGJtbHpiU0IwYnlCd2NtOTBaV04wSUdGbllXbHVjM1FnY205bmRXVWdaMlYwZEdWeWN5QmhibVFnVUhKdmVHbGxjeTVjYm1aMWJtTjBhVzl1SUdkbGRGQnliM0JsY25SNUtHOWlhbVZqZEN3Z2NISnZjR1Z5ZEhrcElIdGNiaUFnZEhKNUlIdGNiaUFnSUNCeVpYUjFjbTRnYjJKcVpXTjBXM0J5YjNCbGNuUjVYVnh1SUNCOUlHTmhkR05vSUNobGNuSXBJSHRjYmlBZ0lDQXZMeUJKYm5SbGJuUnBiMjVoYkd4NUlHbG5ibTl5WlM1Y2JpQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtYRzRnSUgxY2JuMWNibHh1Wm5WdVkzUnBiMjRnY0dWeVptOXliVkpsWVdOMFVtVm1jbVZ6YUNncElIdGNiaUFnYVdZZ0tIQmxibVJwYm1kVmNHUmhkR1Z6TG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1SUNBZ0lISmxkSFZ5YmlCdWRXeHNYRzRnSUgxY2JpQWdhV1lnS0dselVHVnlabTl5YldsdVoxSmxabkpsYzJncElIdGNiaUFnSUNCeVpYUjFjbTRnYm5Wc2JGeHVJQ0I5WEc1Y2JpQWdhWE5RWlhKbWIzSnRhVzVuVW1WbWNtVnphQ0E5SUhSeWRXVmNiaUFnZEhKNUlIdGNiaUFnSUNCamIyNXpkQ0J6ZEdGc1pVWmhiV2xzYVdWeklEMGdibVYzSUZObGRDZ3BYRzRnSUNBZ1kyOXVjM1FnZFhCa1lYUmxaRVpoYldsc2FXVnpJRDBnYm1WM0lGTmxkQ2dwWEc1Y2JpQWdJQ0JqYjI1emRDQjFjR1JoZEdWeklEMGdjR1Z1WkdsdVoxVndaR0YwWlhOY2JpQWdJQ0J3Wlc1a2FXNW5WWEJrWVhSbGN5QTlJRnRkWEc0Z0lDQWdkWEJrWVhSbGN5NW1iM0pGWVdOb0tDaGJabUZ0YVd4NUxDQnVaWGgwVkhsd1pWMHBJRDArSUh0Y2JpQWdJQ0FnSUM4dklFNXZkeUIwYUdGMElIZGxJR2R2ZENCaElISmxZV3dnWldScGRDd2dkMlVnWTJGdUlHTnlaV0YwWlNCaGMzTnZZMmxoZEdsdmJuTmNiaUFnSUNBZ0lDOHZJSFJvWVhRZ2QybHNiQ0JpWlNCeVpXRmtJR0o1SUhSb1pTQlNaV0ZqZENCeVpXTnZibU5wYkdWeUxseHVJQ0FnSUNBZ1kyOXVjM1FnY0hKbGRsUjVjR1VnUFNCbVlXMXBiSGt1WTNWeWNtVnVkRnh1SUNBZ0lDQWdkWEJrWVhSbFpFWmhiV2xzYVdWelFubFVlWEJsTG5ObGRDaHdjbVYyVkhsd1pTd2dabUZ0YVd4NUtWeHVJQ0FnSUNBZ2RYQmtZWFJsWkVaaGJXbHNhV1Z6UW5sVWVYQmxMbk5sZENodVpYaDBWSGx3WlN3Z1ptRnRhV3g1S1Z4dUlDQWdJQ0FnWm1GdGFXeDVMbU4xY25KbGJuUWdQU0J1WlhoMFZIbHdaVnh1WEc0Z0lDQWdJQ0F2THlCRVpYUmxjbTFwYm1VZ2QyaGxkR2hsY2lCMGFHbHpJSE5vYjNWc1pDQmlaU0JoSUhKbExYSmxibVJsY2lCdmNpQmhJSEpsTFcxdmRXNTBMbHh1SUNBZ0lDQWdhV1lnS0dOaGJsQnlaWE5sY25abFUzUmhkR1ZDWlhSM1pXVnVLSEJ5WlhaVWVYQmxMQ0J1WlhoMFZIbHdaU2twSUh0Y2JpQWdJQ0FnSUNBZ2RYQmtZWFJsWkVaaGJXbHNhV1Z6TG1Ga1pDaG1ZVzFwYkhrcFhHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCemRHRnNaVVpoYldsc2FXVnpMbUZrWkNobVlXMXBiSGtwWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2xjYmx4dUlDQWdJQzh2SUZSUFJFODZJSEpsYm1GdFpTQjBhR1Z6WlNCbWFXVnNaSE1nZEc4Z2MyOXRaWFJvYVc1bklHMXZjbVVnYldWaGJtbHVaMloxYkM1Y2JpQWdJQ0JqYjI1emRDQjFjR1JoZEdVZ1BTQjdYRzRnSUNBZ0lDQjFjR1JoZEdWa1JtRnRhV3hwWlhNc0lDOHZJRVpoYldsc2FXVnpJSFJvWVhRZ2QybHNiQ0J5WlMxeVpXNWtaWElnY0hKbGMyVnlkbWx1WnlCemRHRjBaVnh1SUNBZ0lDQWdjM1JoYkdWR1lXMXBiR2xsY3l3Z0x5OGdSbUZ0YVd4cFpYTWdkR2hoZENCM2FXeHNJR0psSUhKbGJXOTFiblJsWkZ4dUlDQWdJSDFjYmx4dUlDQWdJR2hsYkhCbGNuTkNlVkpsYm1SbGNtVnlTVVF1Wm05eVJXRmphQ2dvYUdWc2NHVnljeWtnUFQ0Z2UxeHVJQ0FnSUNBZ0x5OGdSWFpsYmlCcFppQjBhR1Z5WlNCaGNtVWdibThnY205dmRITXNJSE5sZENCMGFHVWdhR0Z1Wkd4bGNpQnZiaUJtYVhKemRDQjFjR1JoZEdVdVhHNGdJQ0FnSUNBdkx5QlVhR2x6SUdWdWMzVnlaWE1nZEdoaGRDQnBaaUFxYm1WM0tpQnliMjkwY3lCaGNtVWdiVzkxYm5SbFpDd2dkR2hsZVNkc2JDQjFjMlVnZEdobElISmxjMjlzZG1VZ2FHRnVaR3hsY2k1Y2JpQWdJQ0FnSUdobGJIQmxjbk11YzJWMFVtVm1jbVZ6YUVoaGJtUnNaWElvY21WemIyeDJaVVpoYldsc2VTbGNiaUFnSUNCOUtWeHVYRzRnSUNBZ2JHVjBJR1JwWkVWeWNtOXlJRDBnWm1Gc2MyVmNiaUFnSUNCc1pYUWdabWx5YzNSRmNuSnZjaUE5SUc1MWJHeGNibHh1SUNBZ0lDOHZJRmRsSUhOdVlYQnphRzkwSUcxaGNITWdZVzVrSUhObGRITWdkR2hoZENCaGNtVWdiWFYwWVhSbFpDQmtkWEpwYm1jZ1kyOXRiV2wwY3k1Y2JpQWdJQ0F2THlCSlppQjNaU0JrYjI0bmRDQmtieUIwYUdsekxDQjBhR1Z5WlNCcGN5QmhJSEpwYzJzZ2RHaGxlU0IzYVd4c0lHSmxJRzExZEdGMFpXUWdkMmhwYkdWY2JpQWdJQ0F2THlCM1pTQnBkR1Z5WVhSbElHOTJaWElnZEdobGJTNGdSbTl5SUdWNFlXMXdiR1VzSUhSeWVXbHVaeUIwYnlCeVpXTnZkbVZ5SUdFZ1ptRnBiR1ZrSUhKdmIzUmNiaUFnSUNBdkx5QnRZWGtnWTJGMWMyVWdZVzV2ZEdobGNpQnliMjkwSUhSdklHSmxJR0ZrWkdWa0lIUnZJSFJvWlNCbVlXbHNaV1FnYkdsemRDQXRMU0JoYmlCcGJtWnBibWwwWlNCc2IyOXdMbHh1SUNBZ0lHTnZibk4wSUdaaGFXeGxaRkp2YjNSelUyNWhjSE5vYjNRZ1BTQnVaWGNnVTJWMEtHWmhhV3hsWkZKdmIzUnpLVnh1SUNBZ0lHTnZibk4wSUcxdmRXNTBaV1JTYjI5MGMxTnVZWEJ6YUc5MElEMGdibVYzSUZObGRDaHRiM1Z1ZEdWa1VtOXZkSE1wWEc0Z0lDQWdZMjl1YzNRZ2FHVnNjR1Z5YzBKNVVtOXZkRk51WVhCemFHOTBJRDBnYm1WM0lFMWhjQ2hvWld4d1pYSnpRbmxTYjI5MEtWeHVYRzRnSUNBZ1ptRnBiR1ZrVW05dmRITlRibUZ3YzJodmRDNW1iM0pGWVdOb0tDaHliMjkwS1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCb1pXeHdaWEp6SUQwZ2FHVnNjR1Z5YzBKNVVtOXZkRk51WVhCemFHOTBMbWRsZENoeWIyOTBLVnh1SUNBZ0lDQWdhV1lnS0dobGJIQmxjbk1nUFQwOUlIVnVaR1ZtYVc1bFpDa2dlMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9YRzRnSUNBZ0lDQWdJQ0FnSjBOdmRXeGtJRzV2ZENCbWFXNWtJR2hsYkhCbGNuTWdabTl5SUdFZ2NtOXZkQzRnVkdocGN5QnBjeUJoSUdKMVp5QnBiaUJTWldGamRDQlNaV1p5WlhOb0xpY3NYRzRnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNnaFptRnBiR1ZrVW05dmRITXVhR0Z6S0hKdmIzUXBLU0I3WEc0Z0lDQWdJQ0FnSUM4dklFNXZJR3h2Ym1kbGNpQm1ZV2xzWldRdVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9jbTl2ZEVWc1pXMWxiblJ6SUQwOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5Ymx4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tDRnliMjkwUld4bGJXVnVkSE11YUdGektISnZiM1FwS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5Ymx4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnWTI5dWMzUWdaV3hsYldWdWRDQTlJSEp2YjNSRmJHVnRaVzUwY3k1blpYUW9jbTl2ZENsY2JpQWdJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJR2hsYkhCbGNuTXVjMk5vWldSMWJHVlNiMjkwS0hKdmIzUXNJR1ZzWlcxbGJuUXBYRzRnSUNBZ0lDQjlJR05oZEdOb0lDaGxjbklwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0ZrYVdSRmNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNBZ0lHUnBaRVZ5Y205eUlEMGdkSEoxWlZ4dUlDQWdJQ0FnSUNBZ0lHWnBjbk4wUlhKeWIzSWdQU0JsY25KY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQXZMeUJMWldWd0lIUnllV2x1WnlCdmRHaGxjaUJ5YjI5MGN5NWNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtWeHVJQ0FnSUcxdmRXNTBaV1JTYjI5MGMxTnVZWEJ6YUc5MExtWnZja1ZoWTJnb0tISnZiM1FwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUdobGJIQmxjbk1nUFNCb1pXeHdaWEp6UW5sU2IyOTBVMjVoY0hOb2IzUXVaMlYwS0hKdmIzUXBYRzRnSUNBZ0lDQnBaaUFvYUdWc2NHVnljeUE5UFQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0FuUTI5MWJHUWdibTkwSUdacGJtUWdhR1ZzY0dWeWN5Qm1iM0lnWVNCeWIyOTBMaUJVYUdseklHbHpJR0VnWW5WbklHbHVJRkpsWVdOMElGSmxabkpsYzJndUp5eGNiaUFnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdhV1lnS0NGdGIzVnVkR1ZrVW05dmRITXVhR0Z6S0hKdmIzUXBLU0I3WEc0Z0lDQWdJQ0FnSUM4dklFNXZJR3h2Ym1kbGNpQnRiM1Z1ZEdWa0xseHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnYUdWc2NHVnljeTV6WTJobFpIVnNaVkpsWm5KbGMyZ29jbTl2ZEN3Z2RYQmtZWFJsS1Z4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlhKeUtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaFpHbGtSWEp5YjNJcElIdGNiaUFnSUNBZ0lDQWdJQ0JrYVdSRmNuSnZjaUE5SUhSeWRXVmNiaUFnSUNBZ0lDQWdJQ0JtYVhKemRFVnljbTl5SUQwZ1pYSnlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnTHk4Z1MyVmxjQ0IwY25scGJtY2diM1JvWlhJZ2NtOXZkSE11WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2xjYmlBZ0lDQnBaaUFvWkdsa1JYSnliM0lwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJR1pwY25OMFJYSnliM0pjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhWd1pHRjBaVnh1SUNCOUlHWnBibUZzYkhrZ2UxeHVJQ0FnSUdselVHVnlabTl5YldsdVoxSmxabkpsYzJnZ1BTQm1ZV3h6WlZ4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCeVpXZHBjM1JsY2loMGVYQmxMQ0JwWkNrZ2UxeHVJQ0JwWmlBb2RIbHdaU0E5UFQwZ2JuVnNiQ2tnZTF4dUlDQWdJSEpsZEhWeWJseHVJQ0I5WEc0Z0lHbG1JQ2gwZVhCbGIyWWdkSGx3WlNBaFBUMGdKMloxYm1OMGFXOXVKeUFtSmlCMGVYQmxiMllnZEhsd1pTQWhQVDBnSjI5aWFtVmpkQ2NwSUh0Y2JpQWdJQ0J5WlhSMWNtNWNiaUFnZlZ4dVhHNGdJQzh2SUZSb2FYTWdZMkZ1SUdoaGNIQmxiaUJwYmlCaGJpQmxaR2RsSUdOaGMyVXNJR1V1Wnk0Z2FXWWdkMlVnY21WbmFYTjBaWEpjYmlBZ0x5OGdjbVYwZFhKdUlIWmhiSFZsSUc5bUlHRWdTRTlESUdKMWRDQnBkQ0J5WlhSMWNtNXpJR0VnWTJGamFHVmtJR052YlhCdmJtVnVkQzVjYmlBZ0x5OGdTV2R1YjNKbElHRnVlWFJvYVc1bklHSjFkQ0IwYUdVZ1ptbHljM1FnY21WbmFYTjBjbUYwYVc5dUlHWnZjaUJsWVdOb0lIUjVjR1V1WEc0Z0lHbG1JQ2hoYkd4R1lXMXBiR2xsYzBKNVZIbHdaUzVvWVhNb2RIbHdaU2twSUh0Y2JpQWdJQ0J5WlhSMWNtNWNiaUFnZlZ4dUlDQXZMeUJEY21WaGRHVWdabUZ0YVd4NUlHOXlJSEpsYldWdFltVnlJSFJ2SUhWd1pHRjBaU0JwZEM1Y2JpQWdMeThnVG05dVpTQnZaaUIwYUdseklHSnZiMnRyWldWd2FXNW5JR0ZtWm1WamRITWdjbVZqYjI1amFXeHBZWFJwYjI1Y2JpQWdMeThnZFc1MGFXd2dkR2hsSUdacGNuTjBJSEJsY21admNtMVNaV0ZqZEZKbFpuSmxjMmdvS1NCallXeHNJR0ZpYjNabExseHVJQ0JzWlhRZ1ptRnRhV3g1SUQwZ1lXeHNSbUZ0YVd4cFpYTkNlVWxFTG1kbGRDaHBaQ2xjYmlBZ2FXWWdLR1poYldsc2VTQTlQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnWm1GdGFXeDVJRDBnZXlCamRYSnlaVzUwT2lCMGVYQmxJSDFjYmlBZ0lDQmhiR3hHWVcxcGJHbGxjMEo1U1VRdWMyVjBLR2xrTENCbVlXMXBiSGtwWEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnY0dWdVpHbHVaMVZ3WkdGMFpYTXVjSFZ6YUNoYlptRnRhV3g1TENCMGVYQmxYU2xjYmlBZ2ZWeHVJQ0JoYkd4R1lXMXBiR2xsYzBKNVZIbHdaUzV6WlhRb2RIbHdaU3dnWm1GdGFXeDVLVnh1WEc0Z0lDOHZJRlpwYzJsMElHbHVibVZ5SUhSNWNHVnpJR0psWTJGMWMyVWdkMlVnYldsbmFIUWdibTkwSUdoaGRtVWdjbVZuYVhOMFpYSmxaQ0IwYUdWdExseHVJQ0JwWmlBb2RIbHdaVzltSUhSNWNHVWdQVDA5SUNkdlltcGxZM1FuSUNZbUlIUjVjR1VnSVQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0J6ZDJsMFkyZ2dLR2RsZEZCeWIzQmxjblI1S0hSNWNHVXNJQ2NrSkhSNWNHVnZaaWNwS1NCN1hHNGdJQ0FnSUNCallYTmxJRkpGUVVOVVgwWlBVbGRCVWtSZlVrVkdYMVJaVUVVNlhHNGdJQ0FnSUNBZ0lISmxaMmx6ZEdWeUtIUjVjR1V1Y21WdVpHVnlMQ0JwWkNBcklDY2tjbVZ1WkdWeUp5bGNiaUFnSUNBZ0lDQWdZbkpsWVd0Y2JpQWdJQ0FnSUdOaGMyVWdVa1ZCUTFSZlRVVk5UMTlVV1ZCRk9seHVJQ0FnSUNBZ0lDQnlaV2RwYzNSbGNpaDBlWEJsTG5SNWNHVXNJR2xrSUNzZ0p5UjBlWEJsSnlsY2JpQWdJQ0FnSUNBZ1luSmxZV3RjYmlBZ0lDQjlYRzRnSUgxY2JuMWNibHh1Wm5WdVkzUnBiMjRnYzJWMFUybG5ibUYwZFhKbEtIUjVjR1VzSUd0bGVTd2dabTl5WTJWU1pYTmxkQ3dnWjJWMFEzVnpkRzl0U0c5dmEzTXBJSHRjYmlBZ2FXWWdLQ0ZoYkd4VGFXZHVZWFIxY21WelFubFVlWEJsTG1oaGN5aDBlWEJsS1NrZ2UxeHVJQ0FnSUdGc2JGTnBaMjVoZEhWeVpYTkNlVlI1Y0dVdWMyVjBLSFI1Y0dVc0lIdGNiaUFnSUNBZ0lHWnZjbU5sVW1WelpYUXNYRzRnSUNBZ0lDQnZkMjVMWlhrNklHdGxlU3hjYmlBZ0lDQWdJR1oxYkd4TFpYazZJRzUxYkd3c1hHNGdJQ0FnSUNCblpYUkRkWE4wYjIxSWIyOXJjem9nWjJWMFEzVnpkRzl0U0c5dmEzTWdmSHdnS0NncElEMCtJRnRkS1N4Y2JpQWdJQ0I5S1Z4dUlDQjlYRzRnSUM4dklGWnBjMmwwSUdsdWJtVnlJSFI1Y0dWeklHSmxZMkYxYzJVZ2QyVWdiV2xuYUhRZ2JtOTBJR2hoZG1VZ2MybG5ibVZrSUhSb1pXMHVYRzRnSUdsbUlDaDBlWEJsYjJZZ2RIbHdaU0E5UFQwZ0oyOWlhbVZqZENjZ0ppWWdkSGx3WlNBaFBUMGdiblZzYkNrZ2UxeHVJQ0FnSUhOM2FYUmphQ0FvWjJWMFVISnZjR1Z5ZEhrb2RIbHdaU3dnSnlRa2RIbHdaVzltSnlrcElIdGNiaUFnSUNBZ0lHTmhjMlVnVWtWQlExUmZSazlTVjBGU1JGOVNSVVpmVkZsUVJUcGNiaUFnSUNBZ0lDQWdjMlYwVTJsbmJtRjBkWEpsS0hSNWNHVXVjbVZ1WkdWeUxDQnJaWGtzSUdadmNtTmxVbVZ6WlhRc0lHZGxkRU4xYzNSdmJVaHZiMnR6S1Z4dUlDQWdJQ0FnSUNCaWNtVmhhMXh1SUNBZ0lDQWdZMkZ6WlNCU1JVRkRWRjlOUlUxUFgxUlpVRVU2WEc0Z0lDQWdJQ0FnSUhObGRGTnBaMjVoZEhWeVpTaDBlWEJsTG5SNWNHVXNJR3RsZVN3Z1ptOXlZMlZTWlhObGRDd2daMlYwUTNWemRHOXRTRzl2YTNNcFhHNGdJQ0FnSUNBZ0lHSnlaV0ZyWEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzVjYmk4dklGUm9hWE1nYVhNZ2JHRjZhV3g1SUdOaGJHeGxaQ0JrZFhKcGJtY2dabWx5YzNRZ2NtVnVaR1Z5SUdadmNpQmhJSFI1Y0dVdVhHNHZMeUJKZENCallYQjBkWEpsY3lCSWIyOXJJR3hwYzNRZ1lYUWdkR2hoZENCMGFXMWxJSE52SUdsdWJHbHVaU0J5WlhGMWFYSmxjeUJrYjI0bmRDQmljbVZoYXlCamIyMXdZWEpwYzI5dWN5NWNibVoxYm1OMGFXOXVJR052Ykd4bFkzUkRkWE4wYjIxSWIyOXJjMFp2Y2xOcFoyNWhkSFZ5WlNoMGVYQmxLU0I3WEc0Z0lHTnZibk4wSUhOcFoyNWhkSFZ5WlNBOUlHRnNiRk5wWjI1aGRIVnlaWE5DZVZSNWNHVXVaMlYwS0hSNWNHVXBYRzRnSUdsbUlDaHphV2R1WVhSMWNtVWdJVDA5SUhWdVpHVm1hVzVsWkNrZ2UxeHVJQ0FnSUdOdmJYQjFkR1ZHZFd4c1MyVjVLSE5wWjI1aGRIVnlaU2xjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYVc1cVpXTjBTVzUwYjBkc2IySmhiRWh2YjJzb1oyeHZZbUZzVDJKcVpXTjBLU0I3WEc0Z0lDOHZJRVp2Y2lCU1pXRmpkQ0JPWVhScGRtVXNJSFJvWlNCbmJHOWlZV3dnYUc5dmF5QjNhV3hzSUdKbElITmxkQ0IxY0NCaWVTQnlaWEYxYVhKbEtDZHlaV0ZqZEMxa1pYWjBiMjlzY3kxamIzSmxKeWt1WEc0Z0lDOHZJRlJvWVhRZ1kyOWtaU0IzYVd4c0lISjFiaUJpWldadmNtVWdkWE11SUZOdklIZGxJRzVsWldRZ2RHOGdiVzl1YTJWNWNHRjBZMmdnWm5WdVkzUnBiMjV6SUc5dUlHVjRhWE4wYVc1bklHaHZiMnN1WEc1Y2JpQWdMeThnUm05eUlGSmxZV04wSUZkbFlpd2dkR2hsSUdkc2IySmhiQ0JvYjI5cklIZHBiR3dnWW1VZ2MyVjBJSFZ3SUdKNUlIUm9aU0JsZUhSbGJuTnBiMjR1WEc0Z0lDOHZJRlJvYVhNZ2QybHNiQ0JoYkhOdklISjFiaUJpWldadmNtVWdkWE11WEc0Z0lHeGxkQ0JvYjI5cklEMGdaMnh2WW1Gc1QySnFaV04wTGw5ZlVrVkJRMVJmUkVWV1ZFOVBURk5mUjB4UFFrRk1YMGhQVDB0ZlgxeHVJQ0JwWmlBb2FHOXZheUE5UFQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0x5OGdTRzkzWlhabGNpd2dhV1lnZEdobGNtVWdhWE1nYm04Z1JHVjJWRzl2YkhNZ1pYaDBaVzV6YVc5dUxDQjNaU2RzYkNCdVpXVmtJSFJ2SUhObGRDQjFjQ0IwYUdVZ1oyeHZZbUZzSUdodmIyc2diM1Z5YzJWc2RtVnpMbHh1SUNBZ0lDOHZJRTV2ZEdVZ2RHaGhkQ0JwYmlCMGFHbHpJR05oYzJVZ2FYUW5jeUJwYlhCdmNuUmhiblFnZEdoaGRDQnlaVzVrWlhKbGNpQmpiMlJsSUhKMWJuTWdLbUZtZEdWeUtpQjBhR2x6SUcxbGRHaHZaQ0JqWVd4c0xseHVJQ0FnSUM4dklFOTBhR1Z5ZDJselpTd2dkR2hsSUhKbGJtUmxjbVZ5SUhkcGJHd2dkR2hwYm1zZ2RHaGhkQ0IwYUdWeVpTQnBjeUJ1YnlCbmJHOWlZV3dnYUc5dmF5d2dZVzVrSUhkdmJpZDBJR1J2SUhSb1pTQnBibXBsWTNScGIyNHVYRzRnSUNBZ2JHVjBJRzVsZUhSSlJDQTlJREJjYmlBZ0lDQm5iRzlpWVd4UFltcGxZM1F1WDE5U1JVRkRWRjlFUlZaVVQwOU1VMTlIVEU5Q1FVeGZTRTlQUzE5ZklEMGdhRzl2YXlBOUlIdGNiaUFnSUNBZ0lISmxibVJsY21WeWN6b2dibVYzSUUxaGNDZ3BMRnh1SUNBZ0lDQWdjM1Z3Y0c5eWRITkdhV0psY2pvZ2RISjFaU3hjYmlBZ0lDQWdJR2x1YW1WamREb2dLR2x1YW1WamRHVmtLU0E5UGlCdVpYaDBTVVFyS3l4Y2JpQWdJQ0FnSUc5dVUyTm9aV1IxYkdWR2FXSmxjbEp2YjNRNklDaHBaQ3dnY205dmRDd2dZMmhwYkdSeVpXNHBJRDArSUh0OUxGeHVJQ0FnSUNBZ2IyNURiMjF0YVhSR2FXSmxjbEp2YjNRNklDaHBaQ3dnY205dmRDd2diV0Y1WW1WUWNtbHZjbWwwZVV4bGRtVnNMQ0JrYVdSRmNuSnZjaWtnUFQ0Z2UzMHNYRzRnSUNBZ0lDQnZia052YlcxcGRFWnBZbVZ5Vlc1dGIzVnVkQ2dwSUh0OUxGeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lHbG1JQ2hvYjI5ckxtbHpSR2x6WVdKc1pXUXBJSHRjYmlBZ0lDQXZMeUJVYUdseklHbHpiaWQwSUdFZ2NtVmhiQ0J3Y205d1pYSjBlU0J2YmlCMGFHVWdhRzl2YXl3Z1luVjBJR2wwSUdOaGJpQmlaU0J6WlhRZ2RHOGdiM0IwSUc5MWRGeHVJQ0FnSUM4dklHOW1JRVJsZGxSdmIyeHpJR2x1ZEdWbmNtRjBhVzl1SUdGdVpDQmhjM052WTJsaGRHVmtJSGRoY201cGJtZHpJR0Z1WkNCc2IyZHpMbHh1SUNBZ0lDOHZJRlZ6YVc1bklHTnZibk52YkdWYkozZGhjbTRuWFNCMGJ5QmxkbUZrWlNCQ1lXSmxiQ0JoYm1RZ1JWTk1hVzUwWEc0Z0lDQWdZMjl1YzI5c1pWc25kMkZ5YmlkZEtGeHVJQ0FnSUNBZ0oxTnZiV1YwYUdsdVp5Qm9ZWE1nYzJocGJXMWxaQ0IwYUdVZ1VtVmhZM1FnUkdWMlZHOXZiSE1nWjJ4dlltRnNJR2h2YjJzZ0tGOWZVa1ZCUTFSZlJFVldWRTlQVEZOZlIweFBRa0ZNWDBoUFQwdGZYeWt1SUNjZ0sxeHVJQ0FnSUNBZ0lDQW5SbUZ6ZENCU1pXWnlaWE5vSUdseklHNXZkQ0JqYjIxd1lYUnBZbXhsSUhkcGRHZ2dkR2hwY3lCemFHbHRJR0Z1WkNCM2FXeHNJR0psSUdScGMyRmliR1ZrTGljc1hHNGdJQ0FnS1Z4dUlDQWdJSEpsZEhWeWJseHVJQ0I5WEc1Y2JpQWdMeThnU0dWeVpTd2dkMlVnYW5WemRDQjNZVzUwSUhSdklHZGxkQ0JoSUhKbFptVnlaVzVqWlNCMGJ5QnpZMmhsWkhWc1pWSmxabkpsYzJndVhHNGdJR052Ym5OMElHOXNaRWx1YW1WamRDQTlJR2h2YjJzdWFXNXFaV04wWEc0Z0lHaHZiMnN1YVc1cVpXTjBJRDBnWm5WdVkzUnBiMjRnS0dsdWFtVmpkR1ZrS1NCN1hHNGdJQ0FnWTI5dWMzUWdhV1FnUFNCdmJHUkpibXBsWTNRdVlYQndiSGtvZEdocGN5d2dZWEpuZFcxbGJuUnpLVnh1SUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJSFI1Y0dWdlppQnBibXBsWTNSbFpDNXpZMmhsWkhWc1pWSmxabkpsYzJnZ1BUMDlJQ2RtZFc1amRHbHZiaWNnSmlaY2JpQWdJQ0FnSUhSNWNHVnZaaUJwYm1wbFkzUmxaQzV6WlhSU1pXWnlaWE5vU0dGdVpHeGxjaUE5UFQwZ0oyWjFibU4wYVc5dUoxeHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ0x5OGdWR2hwY3lCMlpYSnphVzl1SUhOMWNIQnZjblJ6SUZKbFlXTjBJRkpsWm5KbGMyZ3VYRzRnSUNBZ0lDQm9aV3h3WlhKelFubFNaVzVrWlhKbGNrbEVMbk5sZENocFpDd2dhVzVxWldOMFpXUXBYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJwWkZ4dUlDQjlYRzVjYmlBZ0x5OGdSRzhnZEdobElITmhiV1VnWm05eUlHRnVlU0JoYkhKbFlXUjVJR2x1YW1WamRHVmtJSEp2YjNSekxseHVJQ0F2THlCVWFHbHpJR2x6SUhWelpXWjFiQ0JwWmlCU1pXRmpkRVJQVFNCb1lYTWdZV3h5WldGa2VTQmlaV1Z1SUdsdWFYUnBZV3hwZW1Wa0xseHVJQ0F2THlCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdlptRmpaV0p2YjJzdmNtVmhZM1F2YVhOemRXVnpMekUzTmpJMlhHNGdJR2h2YjJzdWNtVnVaR1Z5WlhKekxtWnZja1ZoWTJnb0tHbHVhbVZqZEdWa0xDQnBaQ2tnUFQ0Z2UxeHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lIUjVjR1Z2WmlCcGJtcGxZM1JsWkM1elkyaGxaSFZzWlZKbFpuSmxjMmdnUFQwOUlDZG1kVzVqZEdsdmJpY2dKaVpjYmlBZ0lDQWdJSFI1Y0dWdlppQnBibXBsWTNSbFpDNXpaWFJTWldaeVpYTm9TR0Z1Wkd4bGNpQTlQVDBnSjJaMWJtTjBhVzl1SjF4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnTHk4Z1ZHaHBjeUIyWlhKemFXOXVJSE4xY0hCdmNuUnpJRkpsWVdOMElGSmxabkpsYzJndVhHNGdJQ0FnSUNCb1pXeHdaWEp6UW5sU1pXNWtaWEpsY2tsRUxuTmxkQ2hwWkN3Z2FXNXFaV04wWldRcFhHNGdJQ0FnZlZ4dUlDQjlLVnh1WEc0Z0lDOHZJRmRsSUdGc2MyOGdkMkZ1ZENCMGJ5QjBjbUZqYXlCamRYSnlaVzUwYkhrZ2JXOTFiblJsWkNCeWIyOTBjeTVjYmlBZ1kyOXVjM1FnYjJ4a1QyNURiMjF0YVhSR2FXSmxjbEp2YjNRZ1BTQm9iMjlyTG05dVEyOXRiV2wwUm1saVpYSlNiMjkwWEc0Z0lHTnZibk4wSUc5c1pFOXVVMk5vWldSMWJHVkdhV0psY2xKdmIzUWdQU0JvYjI5ckxtOXVVMk5vWldSMWJHVkdhV0psY2xKdmIzUWdmSHdnS0NncElEMCtJSHQ5S1Z4dUlDQm9iMjlyTG05dVUyTm9aV1IxYkdWR2FXSmxjbEp2YjNRZ1BTQm1kVzVqZEdsdmJpQW9hV1FzSUhKdmIzUXNJR05vYVd4a2NtVnVLU0I3WEc0Z0lDQWdhV1lnS0NGcGMxQmxjbVp2Y20xcGJtZFNaV1p5WlhOb0tTQjdYRzRnSUNBZ0lDQXZMeUJKWmlCcGRDQjNZWE1nYVc1MFpXNTBhVzl1WVd4c2VTQnpZMmhsWkhWc1pXUXNJR1J2YmlkMElHRjBkR1Z0Y0hRZ2RHOGdjbVZ6ZEc5eVpTNWNiaUFnSUNBZ0lDOHZJRlJvYVhNZ2FXNWpiSFZrWlhNZ2FXNTBaVzUwYVc5dVlXeHNlU0J6WTJobFpIVnNaV1FnZFc1dGIzVnVkSE11WEc0Z0lDQWdJQ0JtWVdsc1pXUlNiMjkwY3k1a1pXeGxkR1VvY205dmRDbGNiaUFnSUNBZ0lHbG1JQ2h5YjI5MFJXeGxiV1Z1ZEhNZ0lUMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lDQWdjbTl2ZEVWc1pXMWxiblJ6TG5ObGRDaHliMjkwTENCamFHbHNaSEpsYmlsY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHOXNaRTl1VTJOb1pXUjFiR1ZHYVdKbGNsSnZiM1F1WVhCd2JIa29kR2hwY3l3Z1lYSm5kVzFsYm5SektWeHVJQ0I5WEc0Z0lHaHZiMnN1YjI1RGIyMXRhWFJHYVdKbGNsSnZiM1FnUFNCbWRXNWpkR2x2YmlBb2FXUXNJSEp2YjNRc0lHMWhlV0psVUhKcGIzSnBkSGxNWlhabGJDd2daR2xrUlhKeWIzSXBJSHRjYmlBZ0lDQmpiMjV6ZENCb1pXeHdaWEp6SUQwZ2FHVnNjR1Z5YzBKNVVtVnVaR1Z5WlhKSlJDNW5aWFFvYVdRcFhHNGdJQ0FnYVdZZ0tHaGxiSEJsY25NZ0lUMDlJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJQ0FnYUdWc2NHVnljMEo1VW05dmRDNXpaWFFvY205dmRDd2dhR1ZzY0dWeWN5bGNibHh1SUNBZ0lDQWdZMjl1YzNRZ1kzVnljbVZ1ZENBOUlISnZiM1F1WTNWeWNtVnVkRnh1SUNBZ0lDQWdZMjl1YzNRZ1lXeDBaWEp1WVhSbElEMGdZM1Z5Y21WdWRDNWhiSFJsY201aGRHVmNibHh1SUNBZ0lDQWdMeThnVjJVZ2JtVmxaQ0IwYnlCa1pYUmxjbTFwYm1VZ2QyaGxkR2hsY2lCMGFHbHpJSEp2YjNRZ2FHRnpJR3AxYzNRZ0tIVnVLVzF2ZFc1MFpXUXVYRzRnSUNBZ0lDQXZMeUJVYUdseklHeHZaMmxqSUdseklHTnZjSGt0Y0dGemRHVmtJR1p5YjIwZ2MybHRhV3hoY2lCc2IyZHBZeUJwYmlCMGFHVWdSR1YyVkc5dmJITWdZbUZqYTJWdVpDNWNiaUFnSUNBZ0lDOHZJRWxtSUhSb2FYTWdZbkpsWVd0eklIZHBkR2dnYzI5dFpTQnlaV1poWTNSdmNtbHVaeXdnZVc5MUoyeHNJSGRoYm5RZ2RHOGdkWEJrWVhSbElFUmxkbFJ2YjJ4eklIUnZieTVjYmx4dUlDQWdJQ0FnYVdZZ0tHRnNkR1Z5Ym1GMFpTQWhQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjNZWE5OYjNWdWRHVmtJRDFjYmlBZ0lDQWdJQ0FnSUNCaGJIUmxjbTVoZEdVdWJXVnRiMmw2WldSVGRHRjBaU0FoUFNCdWRXeHNJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ1lXeDBaWEp1WVhSbExtMWxiVzlwZW1Wa1UzUmhkR1V1Wld4bGJXVnVkQ0FoUFNCdWRXeHNJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ2JXOTFiblJsWkZKdmIzUnpMbWhoY3loeWIyOTBLVnh1WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR2x6VFc5MWJuUmxaQ0E5WEc0Z0lDQWdJQ0FnSUNBZ1kzVnljbVZ1ZEM1dFpXMXZhWHBsWkZOMFlYUmxJQ0U5SUc1MWJHd2dKaVlnWTNWeWNtVnVkQzV0WlcxdmFYcGxaRk4wWVhSbExtVnNaVzFsYm5RZ0lUMGdiblZzYkZ4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2doZDJGelRXOTFiblJsWkNBbUppQnBjMDF2ZFc1MFpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5Qk5iM1Z1ZENCaElHNWxkeUJ5YjI5MExseHVJQ0FnSUNBZ0lDQWdJRzF2ZFc1MFpXUlNiMjkwY3k1aFpHUW9jbTl2ZENsY2JpQWdJQ0FnSUNBZ0lDQm1ZV2xzWldSU2IyOTBjeTVrWld4bGRHVW9jbTl2ZENsY2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaDNZWE5OYjNWdWRHVmtJQ1ltSUdselRXOTFiblJsWkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUZWd1pHRjBaU0JoYmlCbGVHbHpkR2x1WnlCeWIyOTBMbHh1SUNBZ0lDQWdJQ0FnSUM4dklGUm9hWE1nWkc5bGMyNG5kQ0JoWm1abFkzUWdiM1Z5SUcxdmRXNTBaV1FnY205dmRDQlRaWFF1WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0JwWmlBb2QyRnpUVzkxYm5SbFpDQW1KaUFoYVhOTmIzVnVkR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnVlc1dGIzVnVkQ0JoYmlCbGVHbHpkR2x1WnlCeWIyOTBMbHh1SUNBZ0lDQWdJQ0FnSUcxdmRXNTBaV1JTYjI5MGN5NWtaV3hsZEdVb2NtOXZkQ2xjYmlBZ0lDQWdJQ0FnSUNCcFppQW9aR2xrUlhKeWIzSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRmRsSjJ4c0lISmxiVzkxYm5RZ2FYUWdiMjRnWm5WMGRYSmxJR1ZrYVhSekxseHVJQ0FnSUNBZ0lDQWdJQ0FnWm1GcGJHVmtVbTl2ZEhNdVlXUmtLSEp2YjNRcFhHNGdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdobGJIQmxjbk5DZVZKdmIzUXVaR1ZzWlhSbEtISnZiM1FwWEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLQ0YzWVhOTmIzVnVkR1ZrSUNZbUlDRnBjMDF2ZFc1MFpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9aR2xrUlhKeWIzSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRmRsSjJ4c0lISmxiVzkxYm5RZ2FYUWdiMjRnWm5WMGRYSmxJR1ZrYVhSekxseHVJQ0FnSUNBZ0lDQWdJQ0FnWm1GcGJHVmtVbTl2ZEhNdVlXUmtLSEp2YjNRcFhHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0F2THlCTmIzVnVkQ0JoSUc1bGR5QnliMjkwTGx4dUlDQWdJQ0FnSUNCdGIzVnVkR1ZrVW05dmRITXVZV1JrS0hKdmIzUXBYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdRV3gzWVhseklHTmhiR3dnZEdobElHUmxZMjl5WVhSbFpDQkVaWFpVYjI5c2N5Qm9iMjlyTGx4dUlDQWdJSEpsZEhWeWJpQnZiR1JQYmtOdmJXMXBkRVpwWW1WeVVtOXZkQzVoY0hCc2VTaDBhR2x6TENCaGNtZDFiV1Z1ZEhNcFhHNGdJSDFjYm4xY2JseHVMeThnVkdocGN5QnBjeUJoSUhkeVlYQndaWElnYjNabGNpQnRiM0psSUhCeWFXMXBkR2wyWlNCbWRXNWpkR2x2Ym5NZ1ptOXlJSE5sZEhScGJtY2djMmxuYm1GMGRYSmxMbHh1THk4Z1UybG5ibUYwZFhKbGN5QnNaWFFnZFhNZ1pHVmphV1JsSUhkb1pYUm9aWElnZEdobElFaHZiMnNnYjNKa1pYSWdhR0Z6SUdOb1lXNW5aV1FnYjI0Z2NtVm1jbVZ6YUM1Y2JpOHZYRzR2THlCVWFHbHpJR1oxYm1OMGFXOXVJR2x6SUdsdWRHVnVaR1ZrSUhSdklHSmxJSFZ6WldRZ1lYTWdZU0IwY21GdWMyWnZjbTBnZEdGeVoyVjBMQ0JsTG1jdU9seHVMeThnZG1GeUlGOXpJRDBnWTNKbFlYUmxVMmxuYm1GMGRYSmxSblZ1WTNScGIyNUdiM0pVY21GdWMyWnZjbTBvS1Z4dUx5OWNiaTh2SUdaMWJtTjBhVzl1SUVobGJHeHZLQ2tnZTF4dUx5OGdJQ0JqYjI1emRDQmJabTl2TENCelpYUkdiMjlkSUQwZ2RYTmxVM1JoZEdVb01DazdYRzR2THlBZ0lHTnZibk4wSUhaaGJIVmxJRDBnZFhObFEzVnpkRzl0U0c5dmF5Z3BPMXh1THk4Z0lDQmZjeWdwT3lBdktpQkRZV3hzSUhkcGRHaHZkWFFnWVhKbmRXMWxiblJ6SUhSeWFXZG5aWEp6SUdOdmJHeGxZM1JwYm1jZ2RHaGxJR04xYzNSdmJTQkliMjlySUd4cGMzUXVYRzR2THlBZ0lDQWdJQ0FnSUNBcUlGUm9hWE1nWkc5bGMyNG5kQ0JvWVhCd1pXNGdaSFZ5YVc1bklIUm9aU0J0YjJSMWJHVWdaWFpoYkhWaGRHbHZiaUJpWldOaGRYTmxJSGRsWEc0dkx5QWdJQ0FnSUNBZ0lDQXFJR1J2YmlkMElIZGhiblFnZEc4Z1kyaGhibWRsSUhSb1pTQnRiMlIxYkdVZ2IzSmtaWElnZDJsMGFDQnBibXhwYm1VZ2NtVnhkV2x5WlhNdVhHNHZMeUFnSUNBZ0lDQWdJQ0FxSUU1bGVIUWdZMkZzYkhNZ1lYSmxJRzV2YjNCekxpQXFMMXh1THk4Z0lDQnlaWFIxY200Z1BHZ3hQa2hwUEM5b01UNDdYRzR2THlCOVhHNHZMMXh1THk4Z0x5b2dRMkZzYkNCM2FYUm9JR0Z5WjNWdFpXNTBjeUJoZEhSaFkyaGxjeUIwYUdVZ2MybG5ibUYwZFhKbElIUnZJSFJvWlNCMGVYQmxPaUFxTDF4dUx5OGdYM01vWEc0dkx5QWdJRWhsYkd4dkxGeHVMeThnSUNBbmRYTmxVM1JoZEdWN1cyWnZieXdnYzJWMFJtOXZYWDBvTUNrbkxGeHVMeThnSUNBb0tTQTlQaUJiZFhObFEzVnpkRzl0U0c5dmExMHNJQzhxSUV4aGVua2dkRzhnWVhadmFXUWdkSEpwWjJkbGNtbHVaeUJwYm14cGJtVWdjbVZ4ZFdseVpYTWdLaTljYmk4dklDazdYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZM0psWVhSbFUybG5ibUYwZFhKbFJuVnVZM1JwYjI1R2IzSlVjbUZ1YzJadmNtMG9LU0I3WEc0Z0lHeGxkQ0J6WVhabFpGUjVjR1ZjYmlBZ2JHVjBJR2hoYzBOMWMzUnZiVWh2YjJ0elhHNGdJR3hsZENCa2FXUkRiMnhzWldOMFNHOXZhM01nUFNCbVlXeHpaVnh1SUNCeVpYUjFjbTRnWm5WdVkzUnBiMjRnS0hSNWNHVXNJR3RsZVN3Z1ptOXlZMlZTWlhObGRDd2daMlYwUTNWemRHOXRTRzl2YTNNcElIdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlHdGxlU0E5UFQwZ0ozTjBjbWx1WnljcElIdGNiaUFnSUNBZ0lDOHZJRmRsSjNKbElHbHVJSFJvWlNCcGJtbDBhV0ZzSUhCb1lYTmxJSFJvWVhRZ1lYTnpiMk5wWVhSbGN5QnphV2R1WVhSMWNtVnpYRzRnSUNBZ0lDQXZMeUIzYVhSb0lIUm9aU0JtZFc1amRHbHZibk11SUU1dmRHVWdkR2hwY3lCdFlYa2dZbVVnWTJGc2JHVmtJRzExYkhScGNHeGxJSFJwYldWelhHNGdJQ0FnSUNBdkx5QnBiaUJJVDBNZ1kyaGhhVzV6SUd4cGEyVWdYM01vYUc5ak1TaGZjeWhvYjJNeUtGOXpLR0ZqZEhWaGJFWjFibU4wYVc5dUtTa3BLU2t1WEc0Z0lDQWdJQ0JwWmlBb0lYTmhkbVZrVkhsd1pTa2dlMXh1SUNBZ0lDQWdJQ0F2THlCWFpTZHlaU0JwYmlCMGFHVWdhVzV1WlhKdGIzTjBJR05oYkd3c0lITnZJSFJvYVhNZ2FYTWdkR2hsSUdGamRIVmhiQ0IwZVhCbExseHVJQ0FnSUNBZ0lDQXZMeUFrUm14dmQwWnBlRTFsVzJWelkyRndaV1F0WjJWdVpYSnBZMTBnWkdselkyOTJaWEpsWkNCM2FHVnVJSFZ3WkdGMGFXNW5JRVpzYjNkY2JpQWdJQ0FnSUNBZ2MyRjJaV1JVZVhCbElEMGdkSGx3WlZ4dUlDQWdJQ0FnSUNCb1lYTkRkWE4wYjIxSWIyOXJjeUE5SUhSNWNHVnZaaUJuWlhSRGRYTjBiMjFJYjI5cmN5QTlQVDBnSjJaMWJtTjBhVzl1SjF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnTHk4Z1UyVjBJSFJvWlNCemFXZHVZWFIxY21VZ1ptOXlJR0ZzYkNCMGVYQmxjeUFvWlhabGJpQjNjbUZ3Y0dWeWN5RXBJR2x1SUdOaGMyVmNiaUFnSUNBZ0lDOHZJSFJvWlhrZ2FHRjJaU0J1YnlCemFXZHVZWFIxY21WeklHOW1JSFJvWldseUlHOTNiaTRnVkdocGN5QnBjeUIwYnlCd2NtVjJaVzUwWEc0Z0lDQWdJQ0F2THlCd2NtOWliR1Z0Y3lCc2FXdGxJR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzltWVdObFltOXZheTl5WldGamRDOXBjM04xWlhNdk1qQTBNVGN1WEc0Z0lDQWdJQ0JwWmlBb1hHNGdJQ0FnSUNBZ0lIUjVjR1VnSVQwZ2JuVnNiQ0FtSmx4dUlDQWdJQ0FnSUNBb2RIbHdaVzltSUhSNWNHVWdQVDA5SUNkbWRXNWpkR2x2YmljZ2ZId2dkSGx3Wlc5bUlIUjVjR1VnUFQwOUlDZHZZbXBsWTNRbktWeHVJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJSE5sZEZOcFoyNWhkSFZ5WlNoMGVYQmxMQ0JyWlhrc0lHWnZjbU5sVW1WelpYUXNJR2RsZEVOMWMzUnZiVWh2YjJ0ektWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSNWNHVmNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnTHk4Z1YyVW5jbVVnYVc0Z2RHaGxJRjl6S0NrZ1kyRnNiQ0IzYVhSb2IzVjBJR0Z5WjNWdFpXNTBjeXdnZDJocFkyZ2diV1ZoYm5OY2JpQWdJQ0FnSUM4dklIUm9hWE1nYVhNZ2RHaGxJSFJwYldVZ2RHOGdZMjlzYkdWamRDQmpkWE4wYjIwZ1NHOXZheUJ6YVdkdVlYUjFjbVZ6TGx4dUlDQWdJQ0FnTHk4Z1QyNXNlU0JrYnlCMGFHbHpJRzl1WTJVdUlGUm9hWE1nY0dGMGFDQnBjeUJvYjNRZ1lXNWtJSEoxYm5NZ0ttbHVjMmxrWlNvZ1pYWmxjbmtnY21WdVpHVnlJVnh1SUNBZ0lDQWdhV1lnS0NGa2FXUkRiMnhzWldOMFNHOXZhM01nSmlZZ2FHRnpRM1Z6ZEc5dFNHOXZhM01wSUh0Y2JpQWdJQ0FnSUNBZ1pHbGtRMjlzYkdWamRFaHZiMnR6SUQwZ2RISjFaVnh1SUNBZ0lDQWdJQ0JqYjJ4c1pXTjBRM1Z6ZEc5dFNHOXZhM05HYjNKVGFXZHVZWFIxY21Vb2MyRjJaV1JVZVhCbEtWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dVhHNW1kVzVqZEdsdmJpQnBjMHhwYTJWc2VVTnZiWEJ2Ym1WdWRGUjVjR1VvZEhsd1pTa2dlMXh1SUNCemQybDBZMmdnS0hSNWNHVnZaaUIwZVhCbEtTQjdYRzRnSUNBZ1kyRnpaU0FuWm5WdVkzUnBiMjRuT2lCN1hHNGdJQ0FnSUNBdkx5QkdhWEp6ZEN3Z1pHVmhiQ0IzYVhSb0lHTnNZWE56WlhNdVhHNGdJQ0FnSUNCcFppQW9kSGx3WlM1d2NtOTBiM1I1Y0dVZ0lUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pTNXdjbTkwYjNSNWNHVXVhWE5TWldGamRFTnZiWEJ2Ym1WdWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUM4dklGSmxZV04wSUdOc1lYTnpMbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwY25WbFhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2IzZHVUbUZ0WlhNZ1BTQlBZbXBsWTNRdVoyVjBUM2R1VUhKdmNHVnlkSGxPWVcxbGN5aDBlWEJsTG5CeWIzUnZkSGx3WlNsY2JpQWdJQ0FnSUNBZ2FXWWdLRzkzYms1aGJXVnpMbXhsYm1kMGFDQStJREVnZkh3Z2IzZHVUbUZ0WlhOYk1GMGdJVDA5SUNkamIyNXpkSEoxWTNSdmNpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QlVhR2x6SUd4dmIydHpJR3hwYTJVZ1lTQmpiR0Z6Y3k1Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlZjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwZVhCbExuQnliM1J2ZEhsd1pTNWZYM0J5YjNSdlgxOGdJVDA5SUU5aWFtVmpkQzV3Y205MGIzUjVjR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJKZENCb1lYTWdZU0J6ZFhCbGNtTnNZWE56TGx4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCbVlXeHpaVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4dklGQmhjM01nZEdoeWIzVm5hQzVjYmlBZ0lDQWdJQ0FnTHk4Z1ZHaHBjeUJzYjI5cmN5QnNhV3RsSUdFZ2NtVm5kV3hoY2lCbWRXNWpkR2x2YmlCM2FYUm9JR1Z0Y0hSNUlIQnliM1J2ZEhsd1pTNWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lDOHZJRVp2Y2lCd2JHRnBiaUJtZFc1amRHbHZibk1nWVc1a0lHRnljbTkzY3l3Z2RYTmxJRzVoYldVZ1lYTWdZU0JvWlhWeWFYTjBhV011WEc0Z0lDQWdJQ0JqYjI1emRDQnVZVzFsSUQwZ2RIbHdaUzV1WVcxbElIeDhJSFI1Y0dVdVpHbHpjR3hoZVU1aGJXVmNiaUFnSUNBZ0lISmxkSFZ5YmlCMGVYQmxiMllnYm1GdFpTQTlQVDBnSjNOMGNtbHVaeWNnSmlZZ0wxNWJRUzFhWFM4dWRHVnpkQ2h1WVcxbEtWeHVJQ0FnSUgxY2JpQWdJQ0JqWVhObElDZHZZbXBsWTNRbk9pQjdYRzRnSUNBZ0lDQnBaaUFvZEhsd1pTQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJSE4zYVhSamFDQW9aMlYwVUhKdmNHVnlkSGtvZEhsd1pTd2dKeVFrZEhsd1pXOW1KeWtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUZKRlFVTlVYMFpQVWxkQlVrUmZVa1ZHWDFSWlVFVTZYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQlNSVUZEVkY5TlJVMVBYMVJaVUVVNlhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCRVpXWnBibWwwWld4NUlGSmxZV04wSUdOdmJYQnZibVZ1ZEhNdVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkSEoxWlZ4dUlDQWdJQ0FnSUNBZ0lHUmxabUYxYkhRNlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJWY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxYRzRnSUNBZ2ZWeHVJQ0FnSUdSbFptRjFiSFE2SUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpWeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dVhHNW1kVzVqZEdsdmJpQnBjME52YlhCdmRXNWtRMjl0Y0c5dVpXNTBLSFI1Y0dVcElIdGNiaUFnYVdZZ0tDRnBjMUJzWVdsdVQySnFaV04wS0hSNWNHVXBLU0J5WlhSMWNtNGdabUZzYzJWY2JpQWdabTl5SUNoamIyNXpkQ0JyWlhrZ2FXNGdkSGx3WlNrZ2UxeHVJQ0FnSUdsbUlDZ2hhWE5NYVd0bGJIbERiMjF3YjI1bGJuUlVlWEJsS0hSNWNHVmJhMlY1WFNrcElISmxkSFZ5YmlCbVlXeHpaVnh1SUNCOVhHNGdJSEpsZEhWeWJpQjBjblZsWEc1OVhHNWNibVoxYm1OMGFXOXVJR2x6VUd4aGFXNVBZbXBsWTNRb2IySnFLU0I3WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnVDJKcVpXTjBMbkJ5YjNSdmRIbHdaUzUwYjFOMGNtbHVaeTVqWVd4c0tHOWlhaWtnUFQwOUlDZGJiMkpxWldOMElFOWlhbVZqZEYwbklDWW1YRzRnSUNBZ0tHOWlhaTVqYjI1emRISjFZM1J2Y2lBOVBUMGdUMkpxWldOMElIeDhJRzlpYWk1amIyNXpkSEoxWTNSdmNpQTlQVDBnZFc1a1pXWnBibVZrS1Z4dUlDQXBYRzU5WEc1Y2JpOHFLbHh1SUNvZ1VHeDFaMmx1SUhWMGFXeHpYRzRnS2k5Y2JseHVMeThnVkdGclpXNGdabkp2YlNCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmNHMXRiWGRvTDNKbFlXTjBMWEpsWm5KbGMyZ3RkMlZpY0dGamF5MXdiSFZuYVc0dllteHZZaTl0WVdsdUwyeHBZaTl5ZFc1MGFXMWxMMUpsWm5KbGMyaFZkR2xzY3k1cWN5Tk1NVFF4WEc0dkx5QlVhR2x6SUdGc2JHOTNjeUIwYnlCeVpYTnBjM1JsY2lCamIyMXdiMjVsYm5SeklHNXZkQ0JrWlhSbFkzUmxaQ0JpZVNCVFYwTWdiR2xyWlNCemRIbHNaV1FnWTI5dGNHOXVaVzUwWEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21WbmFYTjBaWEpGZUhCdmNuUnpSbTl5VW1WaFkzUlNaV1p5WlhOb0tHWnBiR1Z1WVcxbExDQnRiMlIxYkdWRmVIQnZjblJ6S1NCN1hHNGdJR1p2Y2lBb1kyOXVjM1FnYTJWNUlHbHVJRzF2WkhWc1pVVjRjRzl5ZEhNcElIdGNiaUFnSUNCcFppQW9hMlY1SUQwOVBTQW5YMTlsYzAxdlpIVnNaU2NwSUdOdmJuUnBiblZsWEc0Z0lDQWdZMjl1YzNRZ1pYaHdiM0owVm1Gc2RXVWdQU0J0YjJSMWJHVkZlSEJ2Y25SelcydGxlVjFjYmlBZ0lDQnBaaUFvYVhOTWFXdGxiSGxEYjIxd2IyNWxiblJVZVhCbEtHVjRjRzl5ZEZaaGJIVmxLU2tnZTF4dUlDQWdJQ0FnTHk4Z0oyVjRjRzl5ZENjZ2FYTWdjbVZ4ZFdseVpXUWdkRzhnWVhadmFXUWdhMlY1SUdOdmJHeHBjMmx2YmlCM2FHVnVJSEpsYm1GdFpXUWdaWGh3YjNKMGN5QjBhR0YwWEc0Z0lDQWdJQ0F2THlCemFHRmtiM2NnWVNCc2IyTmhiQ0JqYjIxd2IyNWxiblFnYm1GdFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMM1pwZEdWcWN5OTJhWFJsTFhCc2RXZHBiaTF5WldGamRDOXBjM04xWlhNdk1URTJYRzRnSUNBZ0lDQXZMeUJVYUdVZ2NtVm5hWE4wWlhJZ1puVnVZM1JwYjI0Z2FHRnpJR0Z1SUdsa1pXNTBhWFI1SUdOb1pXTnJJSFJ2SUc1dmRDQnlaV2RwYzNSbGNpQjBkMmxqWlNCMGFHVWdjMkZ0WlNCamIyMXdiMjVsYm5Rc1hHNGdJQ0FnSUNBdkx5QnpieUIwYUdseklHbHpJSE5oWm1VZ2RHOGdibTkwSUhWelpXUWdkR2hsSUhOaGJXVWdhMlY1SUdobGNtVXVYRzRnSUNBZ0lDQnlaV2RwYzNSbGNpaGxlSEJ2Y25SV1lXeDFaU3dnWm1sc1pXNWhiV1VnS3lBbklHVjRjRzl5ZENBbklDc2dhMlY1S1Z4dUlDQWdJSDBnWld4elpTQnBaaUFvYVhORGIyMXdiM1Z1WkVOdmJYQnZibVZ1ZENobGVIQnZjblJXWVd4MVpTa3BJSHRjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYzNWaVMyVjVJR2x1SUdWNGNHOXlkRlpoYkhWbEtTQjdYRzRnSUNBZ0lDQWdJSEpsWjJsemRHVnlLRnh1SUNBZ0lDQWdJQ0FnSUdWNGNHOXlkRlpoYkhWbFczTjFZa3RsZVYwc1hHNGdJQ0FnSUNBZ0lDQWdabWxzWlc1aGJXVWdLeUFuSUdWNGNHOXlkQ0FuSUNzZ2EyVjVJQ3NnSnkwbklDc2djM1ZpUzJWNUxGeHVJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1OVhHNWNibVoxYm1OMGFXOXVJR1JsWW05MWJtTmxLR1p1TENCa1pXeGhlU2tnZTF4dUlDQnNaWFFnYUdGdVpHeGxYRzRnSUhKbGRIVnliaUFvS1NBOVBpQjdYRzRnSUNBZ1kyeGxZWEpVYVcxbGIzVjBLR2hoYm1Sc1pTbGNiaUFnSUNCb1lXNWtiR1VnUFNCelpYUlVhVzFsYjNWMEtHWnVMQ0JrWld4aGVTbGNiaUFnZlZ4dWZWeHVYRzVqYjI1emRDQm9iMjlyY3lBOUlGdGRYRzUzYVc1a2IzY3VYMTl5WldkcGMzUmxja0psWm05eVpWQmxjbVp2Y20xU1pXRmpkRkpsWm5KbGMyZ2dQU0FvWTJJcElEMCtJSHRjYmlBZ2FHOXZhM011Y0hWemFDaGpZaWxjYm4xY2JtTnZibk4wSUdWdWNYVmxkV1ZWY0dSaGRHVWdQU0JrWldKdmRXNWpaU2hoYzNsdVl5QW9LU0E5UGlCN1hHNGdJR2xtSUNob2IyOXJjeTVzWlc1bmRHZ3BJR0YzWVdsMElGQnliMjFwYzJVdVlXeHNLR2h2YjJ0ekxtMWhjQ2dvWTJJcElEMCtJR05pS0NrcEtWeHVJQ0J3WlhKbWIzSnRVbVZoWTNSU1pXWnlaWE5vS0NsY2JuMHNJREUyS1Z4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2RtRnNhV1JoZEdWU1pXWnlaWE5vUW05MWJtUmhjbmxCYm1SRmJuRjFaWFZsVlhCa1lYUmxLRnh1SUNCcFpDeGNiaUFnY0hKbGRrVjRjRzl5ZEhNc1hHNGdJRzVsZUhSRmVIQnZjblJ6TEZ4dUtTQjdYRzRnSUdOdmJuTjBJR2xuYm05eVpXUkZlSEJ2Y25SeklEMGdkMmx1Wkc5M0xsOWZaMlYwVW1WaFkzUlNaV1p5WlhOb1NXZHViM0psWkVWNGNHOXlkSE0vTGloN0lHbGtJSDBwSUQ4L0lGdGRYRzRnSUdsbUlDaGNiaUFnSUNCd2NtVmthV05oZEdWUGJrVjRjRzl5ZENoY2JpQWdJQ0FnSUdsbmJtOXlaV1JGZUhCdmNuUnpMRnh1SUNBZ0lDQWdjSEpsZGtWNGNHOXlkSE1zWEc0Z0lDQWdJQ0FvYTJWNUtTQTlQaUJyWlhrZ2FXNGdibVY0ZEVWNGNHOXlkSE1zWEc0Z0lDQWdLU0FoUFQwZ2RISjFaVnh1SUNBcElIdGNiaUFnSUNCeVpYUjFjbTRnSjBOdmRXeGtJRzV2ZENCR1lYTjBJRkpsWm5KbGMyZ2dLR1Y0Y0c5eWRDQnlaVzF2ZG1Wa0tTZGNiaUFnZlZ4dUlDQnBaaUFvWEc0Z0lDQWdjSEpsWkdsallYUmxUMjVGZUhCdmNuUW9YRzRnSUNBZ0lDQnBaMjV2Y21Wa1JYaHdiM0owY3l4Y2JpQWdJQ0FnSUc1bGVIUkZlSEJ2Y25SekxGeHVJQ0FnSUNBZ0tHdGxlU2tnUFQ0Z2EyVjVJR2x1SUhCeVpYWkZlSEJ2Y25SekxGeHVJQ0FnSUNrZ0lUMDlJSFJ5ZFdWY2JpQWdLU0I3WEc0Z0lDQWdjbVYwZFhKdUlDZERiM1ZzWkNCdWIzUWdSbUZ6ZENCU1pXWnlaWE5vSUNodVpYY2daWGh3YjNKMEtTZGNiaUFnZlZ4dVhHNGdJR3hsZENCb1lYTkZlSEJ2Y25SeklEMGdabUZzYzJWY2JpQWdZMjl1YzNRZ1lXeHNSWGh3YjNKMGMwRnlaVU52YlhCdmJtVnVkSE5QY2xWdVkyaGhibWRsWkNBOUlIQnlaV1JwWTJGMFpVOXVSWGh3YjNKMEtGeHVJQ0FnSUdsbmJtOXlaV1JGZUhCdmNuUnpMRnh1SUNBZ0lHNWxlSFJGZUhCdmNuUnpMRnh1SUNBZ0lDaHJaWGtzSUhaaGJIVmxLU0E5UGlCN1hHNGdJQ0FnSUNCb1lYTkZlSEJ2Y25SeklEMGdkSEoxWlZ4dUlDQWdJQ0FnYVdZZ0tHbHpUR2xyWld4NVEyOXRjRzl1Wlc1MFZIbHdaU2gyWVd4MVpTa3BJSEpsZEhWeWJpQjBjblZsWEc0Z0lDQWdJQ0JwWmlBb2FYTkRiMjF3YjNWdVpFTnZiWEJ2Ym1WdWRDaDJZV3gxWlNrcElISmxkSFZ5YmlCMGNuVmxYRzRnSUNBZ0lDQnlaWFIxY200Z2NISmxka1Y0Y0c5eWRITmJhMlY1WFNBOVBUMGdibVY0ZEVWNGNHOXlkSE5iYTJWNVhWeHVJQ0FnSUgwc1hHNGdJQ2xjYmlBZ2FXWWdLR2hoYzBWNGNHOXlkSE1nSmlZZ1lXeHNSWGh3YjNKMGMwRnlaVU52YlhCdmJtVnVkSE5QY2xWdVkyaGhibWRsWkNBOVBUMGdkSEoxWlNrZ2UxeHVJQ0FnSUdWdWNYVmxkV1ZWY0dSaGRHVW9LVnh1SUNCOUlHVnNjMlVnZTF4dUlDQWdJSEpsZEhWeWJpQmdRMjkxYkdRZ2JtOTBJRVpoYzNRZ1VtVm1jbVZ6YUNBb1hDSWtlMkZzYkVWNGNHOXlkSE5CY21WRGIyMXdiMjVsYm5SelQzSlZibU5vWVc1blpXUjlYQ0lnWlhod2IzSjBJR2x6SUdsdVkyOXRjR0YwYVdKc1pTa3VJRXhsWVhKdUlHMXZjbVVnWVhRZ2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwzWnBkR1ZxY3k5MmFYUmxMWEJzZFdkcGJpMXlaV0ZqZEM5MGNtVmxMMjFoYVc0dmNHRmphMkZuWlhNdmNHeDFaMmx1TFhKbFlXTjBJMk52Ym5OcGMzUmxiblF0WTI5dGNHOXVaVzUwY3kxbGVIQnZjblJ6WUZ4dUlDQjlYRzU5WEc1Y2JtWjFibU4wYVc5dUlIQnlaV1JwWTJGMFpVOXVSWGh3YjNKMEtHbG5ibTl5WldSRmVIQnZjblJ6TENCdGIyUjFiR1ZGZUhCdmNuUnpMQ0J3Y21Wa2FXTmhkR1VwSUh0Y2JpQWdabTl5SUNoamIyNXpkQ0JyWlhrZ2FXNGdiVzlrZFd4bFJYaHdiM0owY3lrZ2UxeHVJQ0FnSUdsbUlDaHBaMjV2Y21Wa1JYaHdiM0owY3k1cGJtTnNkV1JsY3loclpYa3BLU0JqYjI1MGFXNTFaVnh1SUNBZ0lHbG1JQ2doY0hKbFpHbGpZWFJsS0d0bGVTd2diVzlrZFd4bFJYaHdiM0owYzF0clpYbGRLU2tnY21WMGRYSnVJR3RsZVZ4dUlDQjlYRzRnSUhKbGRIVnliaUIwY25WbFhHNTlYRzVjYmk4dklFaHBaR1Z6SUhacGRHVXRhV2R1YjNKbFpDQmtlVzVoYldsaklHbHRjRzl5ZENCemJ5QjBhR0YwSUZacGRHVWdZMkZ1SUhOcmFYQWdZVzVoYkhsemFYTWdhV1lnYm04Z2IzUm9aWEpjYmk4dklHUjVibUZ0YVdNZ2FXMXdiM0owSUdseklIQnlaWE5sYm5RZ0tHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOTJhWFJsYW5NdmRtbDBaUzl3ZFd4c0x6RXlOek15S1Z4dVpYaHdiM0owSUdOdmJuTjBJRjlmYUcxeVgybHRjRzl5ZENBOUlDaHRiMlIxYkdVcElEMCtJR2x0Y0c5eWRDZ3ZLaUJBZG1sMFpTMXBaMjV2Y21VZ0tpOGdYMTkyYVhSbFgxOXBibXBsWTNSUmRXVnllU2h0YjJSMWJHVXNJQ2RwYlhCdmNuUW5LU2xjYmx4dUx5OGdSbTl5SUdKaFkydDNZWEprY3lCamIyMXdZWFJwWW1sc2FYUjVJSGRwZEdnZ1FIWnBkR1ZxY3k5d2JIVm5hVzR0Y21WaFkzUXVYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQjdJR2x1YW1WamRFbHVkRzlIYkc5aVlXeEliMjlySUgxY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4RlFVRkZMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUTNKR0xFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE96dEJRVVU1UlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzcEVMRU5CUVVNc1EwRkJRenRCUVVOR0xFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF6dEJRVU5zU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTzBGQlEzUkVMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVmM3UVVGRE5VUXNRMEZCUXl4RFFVRkRPenRCUVVWR0xFdEJRVXNzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU03UVVGRE4wUXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU03TzBGQlJTOURMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhaUVVGWk8wRkJRM0pETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTzBGQlF5OUVMRWRCUVVjc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNN1FVRkRPVUlzUjBGQlJ5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRPMEZCUTNCRExFZEJRVWNzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXpzN1FVRkZkRU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNN1FVRkRha1FzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpPMEZCUXpsRUxFdEJRVXNzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXpzN1FVRkZNVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1R0QlFVTjBSQ3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zVFVGQlRUdEJRVU01UXl4SFFVRkhMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZET3p0QlFVVjBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTzBGQlF6VkVMRXRCUVVzc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF6czdRVUZGY0VNc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJRenM3UVVGRk9VSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVTg3UVVGRE5VUXNTMEZCU3l4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXp0QlFVTTNRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1R0QlFVTjBSU3hMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRE96dEJRVVUxUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrN1FVRkRia1FzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTenRCUVVNM1JTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVUdEJRVU14UkN4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRPMEZCUXk5Q0xFZEJRVWNzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU03TzBGQlJURkNMRkZCUVZFc1EwRkJReXhqUVVGakxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdRVUZEYmtNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTnNReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNN1FVRkRja0lzUTBGQlF5eERRVUZET3p0QlFVVkdMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNN1FVRkRNVUlzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXp0QlFVTk9MRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU03UVVGRFRpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEdOQlFXTXNRMEZCUXp0QlFVTnlReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJRMmhDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF6dEJRVU53UlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV6dEJRVU5zUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEU5QlFVODdRVUZEY2tRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNelFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzaENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlExZ3NRMEZCUXl4RFFVRkRPenRCUVVWR0xFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGVrTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVONFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEY0VNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNUMEZCVHp0QlFVTnlSQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0zUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNeFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03UVVGRFlpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTzBGQlF6VkVMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVNelF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBPMEZCUXpkRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR6dEJRVU5vUml4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5PTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eHRRa0ZCYlVJN1FVRkROVVFzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRCUVVONFF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTNRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRNMElzUTBGQlF5eERRVUZET3p0QlFVVkdMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBRaXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlExUTdPMEZCUlVFc1VVRkJVU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBGQlEycEVMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVR0QlFVTjRSQ3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFN08wRkJSWGhFTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03UVVGRGJFVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03UVVGRFdDeERRVUZETEVOQlFVTTdRVUZEUml4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzBGQlEyeEZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlExZ3NRMEZCUXl4RFFVRkRPMEZCUTBZc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1pGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRMWdzUTBGQlF5eERRVUZETzBGQlEwWXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExHRkJRV0VzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0QlFVTm9ReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTllMRU5CUVVNc1EwRkJRenM3UVVGRlJpeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUTFRN08wRkJSVUVzVVVGQlVTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVNMVFpeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJRenRCUVVNeFF6czdRVUZGUVN4UlFVRlJMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGRGNrUXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjRSQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTllMRU5CUVVNc1EwRkJRenRCUVVOR0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJReTlETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRMWdzUTBGQlF5eERRVUZETzBGQlEwWXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVOVU96dEJRVVZCTEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRE4wSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpPMEZCUTJ4RUxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVazdRVUZEZGtNN08wRkJSVUVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUE8wRkJRekZGTEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdRVUZEZGtNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF6dEJRVU5PTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTzBGQlF6RkNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRhRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhoUVVGaExFTkJRVU1zVFVGQlRUdEJRVU16UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU5ZTEVOQlFVTXNRMEZCUXp0QlFVTkdPenRCUVVWQkxGRkJRVkVzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU03UVVGREwwSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU51UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU5ZTEVOQlFVTXNRMEZCUXp0QlFVTkdMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8wRkJRek5DTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRMWdzUTBGQlF5eERRVUZET3p0QlFVVkdMRU5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRlRUlzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXp0QlFVTk9MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF6dEJRVU5zUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU03TzBGQlJYQkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRjRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpWRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEzQkVMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTzBGQlEyeEVMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU01UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNUVUZCVFR0QlFVTm9SQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1RVRkJUVHRCUVVOb1JDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkZka0lzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4TFFVRkxPMEZCUTI1RkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZGtRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMR1ZCUVdVc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRUdEJRVU5zUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMEZCUTJJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRUdEJRVU5vUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5PTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenM3UVVGRlRDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVN1FVRkROMFFzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU51UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF6dEJRVU5zUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNN1FVRkRPVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkZTaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRemRETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTk8wRkJRM0JGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRlBPMEZCUTNSR0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4aFFVRmhPMEZCUXpkRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkZUQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMjVDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTTdPMEZCUlhKQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUenRCUVVOb1JTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF6dEJRVU5xUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRM0pGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVazdRVUZEYUVZc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1YwRkJWenRCUVVOdVJDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTzBGQlEzSkVMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEhGQ1FVRnhRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMR0ZCUVdFN08wRkJSWFpFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZETVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWs3UVVGRGNFUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdRVUZEYWtNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN6dEJRVU4yUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRE9VVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlExSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5zUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTzBGQlF6TkNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwNHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEYWtNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTFJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVGl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnVReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRVaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk9MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1R0QlFVTXpReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNN1FVRkRWaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UFFVRlBPMEZCUXpGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTndRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTjJRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEY2tJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzWkNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTlNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxPMEZCUTJ4RExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTA0c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXpReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNUdEJRVU53UkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0QlFVTnFReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTzBGQlEzWkNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU01UlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5PTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyNURMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVODdRVUZETlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVGl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTTdRVUZEVml4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMR1ZCUVdVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTzBGQlF6VkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU53UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU4yUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGNrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1pDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5TTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTzBGQlEyeERMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwNHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMHdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU5zUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdRVUZEV2l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRXQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXp0QlFVTmFMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRekZDTEVOQlFVTXNRMEZCUXp0QlFVTkdPenRCUVVWQkxFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEyNURMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU55UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETzBGQlEwWXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE9VUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6czdRVUZGUml4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNN1FVRkRha1FzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhUUVVGVE8wRkJRelZFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExGbEJRVmtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrN1FVRkROMFFzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMjVETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU03UVVGRFJpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJUdEJRVU16UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF6dEJRVU4wUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTE8wRkJRM0pFTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVN1FVRkRja01zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUXpWQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMEZCUXpkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNaVUZCWlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTzBGQlEyeERMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETzBGQlExUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRE8wRkJRM1JETEVOQlFVTXNRMEZCUXp0QlFVTkdMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVFVGQlRUczdRVUZGY0VNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVazdRVUZEYUVVc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRMnBFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXpReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc2MwSkJRWE5DTzBGQlEycERMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU0xUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNaVUZCWlR0QlFVTXhRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZEZUVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTFJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXp0QlFVTkdPenRCUVVWQkxGRkJRVkVzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1FVRkROMFFzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRFTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRGJFTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZUdEJRVU5vUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhPMEZCUTJwQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFbEJRVWs3UVVGRGJrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJFUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMHdzUTBGQlF5eERRVUZETzBGQlEwWXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWs3UVVGRE5VUXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTJwRUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU16UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNjMEpCUVhOQ08wRkJRMnBETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMR05CUVdNN1FVRkRha1VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExHVkJRV1U3UVVGRE1VSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1kwRkJZenRCUVVNdlJDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFVpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJRMFk3TzBGQlJVRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTVHRCUVVOMlJDeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnp0QlFVTm9SaXhSUVVGUkxFTkJRVU1zT0VKQlFUaENMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRE9VTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTzBGQlEyaEVMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dEJRVU12UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eFRRVUZUTzBGQlF6VkNMRU5CUVVNc1EwRkJRenRCUVVOR096dEJRVVZCTEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1FVRkRia1FzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEzWkdMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1RzN1FVRkZka1lzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXp0QlFVTnVSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZPMEZCUTJwRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU03UVVGRE1VSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wRkJRekZDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVE8wRkJRMnBITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrN1FVRkROMFlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNN1FVRkRiRWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5xUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5dzRRa0ZCT0VJc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjZSQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZETVVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNc1NVRkJTVHRCUVVONlFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBGQlEzQkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRja1FzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1pGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGREwwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF6czdRVUZGUml4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUTNaQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTTdRVUZEZUVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVlN4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNUdEJRVU12UkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF6dEJRVU5vUkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTI1Q0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRGhDUVVFNFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRhRWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVNM1JTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXpzN1FVRkZSaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNRMEZCUXl4bFFVRmxPMEZCUXpkRUxFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRGVrSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRM0JETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFRRVUZUTzBGQlF6bERMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzBGQlExQXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRkRVFzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVR0QlFVTnlSQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk9MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBPMEZCUXpWRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhSUVVGUk8wRkJRekZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTllMRU5CUVVNc1EwRkJRenM3UVVGRlJpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVczdRVUZETDBNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ6dEJRVU0xUkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUXpsRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRek5ETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wRkJRMUFzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZEVRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVUdEJRVU55UkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5PTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTzBGQlF6VkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4UlFVRlJPMEZCUXpGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNc1EwRkJRenM3UVVGRlNDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVczdRVUZEYkVRc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETzBGQlEzQkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4wUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU16UkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dEJRVU01UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRTlCUVU4N1FVRkRjRVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1UwRkJVeXhEUVVGRExGRkJRVkU3UVVGRGRrUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpPMEZCUXpkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRMnBETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkU3UVVGRGRrTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRk5CUVZNN1FVRkRka1FzUTBGQlF5eERRVUZETzBGQlEwWXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVNM1JTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTzBGQlF6bERMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdRVUZETDBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNZVUZCWVN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFBRVUZQT3p0QlFVVnlReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZETTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZET3p0QlFVVm9ReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eFBRVUZQTzBGQlEzQkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR6dEJRVU0zUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVYzdPMEZCUldwR0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRemxDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRPMEZCUTNwQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU16UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRMjVFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSk96dEJRVVV2UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJRenRCUVVONFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPenRCUVVVMVJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdRVUZEZEVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSk8wRkJRemRDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSk8wRkJReTlDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSk8wRkJRMnBETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVNMVF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVazdRVUZEY0VNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSenRCUVVOeVJDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVNM1F5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVazdRVUZEY2tNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVazdRVUZEYkVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTjRRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTE8wRkJReTlETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNUdEJRVU5vUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRGFrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1lVRkJZU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTzBGQlEzSkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRWaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUXpsRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRlRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN6dEJRVU12UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVazdRVUZEYUVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOV0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOU0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRFlpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNUdEJRVU16UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSk8wRkJRemRDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMDRzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkZTaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTVHRCUVVNNVF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVTBGQlV6dEJRVU55UkN4RFFVRkRMRU5CUVVNN1FVRkRSanM3UVVGRlFTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1UwRkJVenRCUVVONFJTeERRVUZETEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFOUJRVTg3UVVGRGVrVXNRMEZCUXp0QlFVTkVMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMjVGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEcxRFFVRnRReXhEUVVGRE8wRkJRMmhFTEVOQlFVTTdRVUZEUkN4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTndRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRFTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8wRkJRMnhETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpPMEZCUXpkRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETEU5QlFVOHNRMEZCUXp0QlFVTjJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFN1FVRkRlRVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRja01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1FVRkRka0lzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU0N4RFFVRkRPMEZCUTBRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXk5RUxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVTdRVUZEVEN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN6dEJRVU5XTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYWtNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBGQlEzcEZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFNpeE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRzFEUVVGdFF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBSQ3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETzBGQlEwNHNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJRenRCUVVOT0xFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONFFpeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzBGQlF6RkVMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOcVF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRE8wRkJRM0JFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTTdRVUZET1VRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dEJRVU4wUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVazdRVUZEYkVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0QlFVTm9SU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU53UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUk8wRkJRelZFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMDRzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdRVUZETjBRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU03UVVGRE1VUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3p0QlFVTnlSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1FVRkRWQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNSQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVNdlJDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFVpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEdOQlFXTTdRVUZETVVRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVGl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEWWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZEV0N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRCUVVONlJDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlU3UVVGRE0wUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFR0QlFVTXpSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRCUVVNNVF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc09FSkJRVGhDTEVOQlFVTXNVMEZCVXp0QlFVTm9SQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk9MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTTdRVUZEUmpzN1FVRkZRU3hSUVVGUkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRGNrTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTjJRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGNrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTzBGQlEycERMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRiRU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0QlFVTTNReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxPMEZCUTNoQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEycENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTlNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTTdRVUZEYkVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRiRVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3p0QlFVTndReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU5xUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdPMEZCUlZJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUXpORUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZUdEJRVU5vUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVOcVFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFVpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4N1FVRkRka0lzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV6dEJRVU5zUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5PTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXp0QlFVTm9SU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF6dEJRVU55UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVazdRVUZETTBRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnVRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRlRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRMME1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNjMEpCUVhOQ08wRkJRM0pETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMR1ZCUVdVN1FVRkRPVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTzBGQlF6RkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU51UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4N1FVRkRha0lzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUTI1Q0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOU0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTA0c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUTJJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRFlpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03UVVGRFlpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRE8wRkJRMFk3TzBGQlJVRXNVVUZCVVN4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTI1RExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTnVReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZETVVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEyeEVMRU5CUVVNc1EwRkJRenRCUVVOR0xFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEVkRzN1FVRkZRU3hSUVVGUkxFTkJRVU1zWVVGQllTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUXpWQ0xFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEVkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXk5RUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVE8wRkJRMmhGTEVOQlFVTXNRMEZCUXp0QlFVTkdPenRCUVVWQkxFTkJRVU1zUTBGQlF6dEJRVU5HTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVOV0xFTkJRVU1zUTBGQlF6czdRVUZGUml4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNSVUZCUlN4RFFVRkRPMEZCUXpOSExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRkRVVzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl3NFFrRkJPRUlzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRCUVVONFJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1FVRkRia01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE9VSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1IwRkJSenRCUVVONlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE5VTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJRenRCUVVNeFJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZETTBZc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNN1FVRkROMFlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVazdRVUZEZEVRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVYzdRVUZEZGtRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGFrUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdRVUZEZUVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFN1FVRkRhRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUXpkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5PMEZCUTNCRUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOU0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTA0c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXp0QlFVTkdPenRCUVVWQkxGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRE4wSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJRenRCUVVOT0xFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFppeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJReXhOUVVGTk8wRkJRM1pDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1MwRkJTenRCUVVOcVF5eERRVUZETEVOQlFVTTdRVUZEUmpzN1FVRkZRU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJZc1RVRkJUU3hEUVVGRExHMURRVUZ0UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNKRUxFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1FVRkRaanRCUVVOQkxFdEJRVXNzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRNME1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTNSQ3hEUVVGRExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNN1FVRkRkRUlzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlRzN1FVRkZUQ3hOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEhWRFFVRjFRenRCUVVOMlJDeERRVUZETEVOQlFVTXNSVUZCUlR0QlFVTktMRU5CUVVNc1EwRkJReXhYUVVGWE8wRkJRMklzUTBGQlF5eERRVUZETEZkQlFWYzdRVUZEWWl4RFFVRkRMRU5CUVVNN1FVRkRSaXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExDdENRVUVyUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE9VVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRCUVVOTUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNhVUpCUVdsQ08wRkJRM0pDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHTkJRV003UVVGRGNFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVjBGQlZ6dEJRVU5xUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNWMEZCVnp0QlFVTnFReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMVlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJRenRCUVVOdVJDeERRVUZETEVOQlFVTTdRVUZEUml4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wRkJRMHdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4cFFrRkJhVUk3UVVGRGNrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zWTBGQll6dEJRVU53UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTzBGQlEycENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4WFFVRlhPMEZCUTJwRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFZpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJReTlETEVOQlFVTXNRMEZCUXpzN1FVRkZSaXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRia0lzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4clEwRkJhME1zUTBGQlF5eERRVUZETEVOQlFVTXNhVUpCUVdsQ08wRkJRemxFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1kwRkJZenRCUVVOc1FpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjN1FVRkRaaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEY0VJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOdVFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTXZReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU0zUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRWRCUVVjN1FVRkRha1FzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTB3c1EwRkJReXhEUVVGRE8wRkJRMFlzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eHJRMEZCYTBNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTJwRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNZVUZCWVN4RFFVRkRPMEZCUTJ4Q0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMEZCUTFRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhyUTBGQmEwTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTlCUVU4N1FVRkROVTRzUTBGQlF5eERRVUZETzBGQlEwWTdPMEZCUlVFc1VVRkJVU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUTNKRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0QlFVTnVReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEdGQlFXRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEzQkVMRU5CUVVNc1EwRkJRenRCUVVOR0xFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEVkRzN1FVRkZRU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU03UVVGRE1VVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVczdRVUZEZGtVc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZET3p0QlFVVjJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzN1FVRkRlRVFzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTTdJbjA9"}},"time_used":98,"timings":{"blocked":-1,"dns":0,"connect":15,"send":0,"wait":31,"receive":29,"ssl":23},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/node_modules/vite/dist/client/env.mjs","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.444Z","timestamp":1785108243444,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /node_modules/vite/dist/client/env.mjs HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/@vite/client\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 3478\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: no-cache\r\nEtag: W/\"25b-V2bmMiQli1AsiiEb1NEXbTMk57g\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Nginx:1.18.0","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":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":3478,"size_decoded":3724,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (2874)","md5":"e1a67720d72cfa6fde7db1462252dee9","sha1":"7e6d21d3fcf41bb25eedab0c4d33ecd961111d96","sha256":"989a1a6b55bdf57842aa46c52fefdce50a16fbfdfbf643e682ac82ad73023401","sha512":"912bc48bfd0634cbf7d4f0afffcc6ad72b07e558103eb50c1a54fff118abea460f6d4a90c5f5328f31350e5be952339d82d0d371b5c5cd6ba4c0e14db136cd67","ssdeep":"","tlshash":"987186555e86a471cffe0473f04e533ed28714a31a7281e6a087d67f20b5e2ac398e1b","first_seen":"2025-08-04T07:40:16.366179Z","last_seen":"2026-07-26T23:25:46.835321Z","times_seen":77,"resource_available":true,"data":"Ly8jcmVnaW9uIHNyYy9jbGllbnQvZW52LnRzCmNvbnN0IGNvbnRleHQgPSAoKCkgPT4gewoJaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSAidW5kZWZpbmVkIikgcmV0dXJuIGdsb2JhbFRoaXM7CgllbHNlIGlmICh0eXBlb2Ygc2VsZiAhPT0gInVuZGVmaW5lZCIpIHJldHVybiBzZWxmOwoJZWxzZSBpZiAodHlwZW9mIHdpbmRvdyAhPT0gInVuZGVmaW5lZCIpIHJldHVybiB3aW5kb3c7CgllbHNlIHJldHVybiBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpOwp9KSgpOwpjb25zdCBkZWZpbmVzID0ge307Ck9iamVjdC5rZXlzKGRlZmluZXMpLmZvckVhY2goKGtleSkgPT4gewoJY29uc3Qgc2VnbWVudHMgPSBrZXkuc3BsaXQoIi4iKTsKCWxldCB0YXJnZXQgPSBjb250ZXh0OwoJZm9yIChsZXQgaSA9IDA7IGkgPCBzZWdtZW50cy5sZW5ndGg7IGkrKykgewoJCWNvbnN0IHNlZ21lbnQgPSBzZWdtZW50c1tpXTsKCQlpZiAoaSA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMSkgdGFyZ2V0W3NlZ21lbnRdID0gZGVmaW5lc1trZXldOwoJCWVsc2UgdGFyZ2V0ID0gdGFyZ2V0W3NlZ21lbnRdIHx8ICh0YXJnZXRbc2VnbWVudF0gPSB7fSk7Cgl9Cn0pOwoKLy8jZW5kcmVnaW9uCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJbVZ1ZGk1dGFuTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHk4amNtVm5hVzl1SUhOeVl5OWpiR2xsYm5RdlpXNTJMblJ6WEc1amIyNXpkQ0JqYjI1MFpYaDBJRDBnS0NncElEMCtJSHRjYmx4MGFXWWdLSFI1Y0dWdlppQm5iRzlpWVd4VWFHbHpJQ0U5UFNCY0luVnVaR1ZtYVc1bFpGd2lLU0J5WlhSMWNtNGdaMnh2WW1Gc1ZHaHBjenRjYmx4MFpXeHpaU0JwWmlBb2RIbHdaVzltSUhObGJHWWdJVDA5SUZ3aWRXNWtaV1pwYm1Wa1hDSXBJSEpsZEhWeWJpQnpaV3htTzF4dVhIUmxiSE5sSUdsbUlDaDBlWEJsYjJZZ2QybHVaRzkzSUNFOVBTQmNJblZ1WkdWbWFXNWxaRndpS1NCeVpYUjFjbTRnZDJsdVpHOTNPMXh1WEhSbGJITmxJSEpsZEhWeWJpQkdkVzVqZEdsdmJpaGNJbkpsZEhWeWJpQjBhR2x6WENJcEtDazdYRzU5S1NncE8xeHVZMjl1YzNRZ1pHVm1hVzVsY3lBOUlIdDlPMXh1VDJKcVpXTjBMbXRsZVhNb1pHVm1hVzVsY3lrdVptOXlSV0ZqYUNnb2EyVjVLU0E5UGlCN1hHNWNkR052Ym5OMElITmxaMjFsYm5SeklEMGdhMlY1TG5Od2JHbDBLRndpTGx3aUtUdGNibHgwYkdWMElIUmhjbWRsZENBOUlHTnZiblJsZUhRN1hHNWNkR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYzJWbmJXVnVkSE11YkdWdVozUm9PeUJwS3lzcElIdGNibHgwWEhSamIyNXpkQ0J6WldkdFpXNTBJRDBnYzJWbmJXVnVkSE5iYVYwN1hHNWNkRngwYVdZZ0tHa2dQVDA5SUhObFoyMWxiblJ6TG14bGJtZDBhQ0F0SURFcElIUmhjbWRsZEZ0elpXZHRaVzUwWFNBOUlHUmxabWx1WlhOYmEyVjVYVHRjYmx4MFhIUmxiSE5sSUhSaGNtZGxkQ0E5SUhSaGNtZGxkRnR6WldkdFpXNTBYU0I4ZkNBb2RHRnlaMlYwVzNObFoyMWxiblJkSUQwZ2UzMHBPMXh1WEhSOVhHNTlLVHRjYmx4dUx5OGpaVzVrY21WbmFXOXVJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXp0QlFVTjZRaXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzWkNMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1ZVRkJWVHRCUVVONlJDeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpPMEZCUTJ4RUxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMDdRVUZEZEVRc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZEVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5LTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5zUWl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzUkRMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyaERMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHp0QlFVTnlRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNelF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTNRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETzBGQlF5OUVMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNwRUxFTkJRVU03UVVGRFJDeERRVUZETEVOQlFVTTdPMEZCUlVZc1EwRkJReXhEUVVGRExFTkJRVU1pZlE9PQ=="}},"time_used":44,"timings":{"blocked":28,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/e_CrqRW1wP.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.043Z","timestamp":1785108244043,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/e_CrqRW1wP.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:31 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"ff7d44b6c994c437bae9f3259620ec75\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 6c7ea40580de9d2983b3dfe024472fb0.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: pNk8prnDVLkTTOWQhIexjBEerPWysW0EhmPHHEnMOg61kM8osXGd2Q==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 2932\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=beWlaRid58OKwn0HsJ8mN7kTGkCOrQR5bk0oAh5moP65uIr4sBS8GWbum546aLVLVfZ7bR%2FcyHjcShqfTibGi6laTMTAx83%2BrRMFmo9pJMpaAWtEi%2FERqTyIbEW%2FLkEhh0ETdlzfvZIZn9eZySFY\"}]}\r\ncf-ray: a21727dd4fce0883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":2828577,"size_decoded":762807,"mime_type":"application/javascript","magic":"Unicode text, UTF-8 text, with very long lines (41171)","md5":"5153d2a02d232421633cfc987c48e5ff","sha1":"2294252fab1aac5c780044f2c83d430e46c07535","sha256":"7e40b0d561e932de7366af664d5ba0d9292637752f8c8cab0b024ac5ed06bdee","sha512":"9f4feebd15628fc0b2d1717adbe94deab7c16f39dba4a7451590d25b5c265f00155bc4454aaadb9b864197e4dc6b7b7c44d34c813da249a44f944f85351006fd","ssdeep":"12288:oGMBgmrwC/OrOf2bpQLXusQ+L00XonBtTTGyfA1Byj:oGk/OVK1Q+TonBtTTG56j","tlshash":"45254ac9734472350b6298b6483f1686b3357982581d80e8f1a1eded6f38e899273f77","first_seen":"2026-07-26T23:24:50.199029Z","last_seen":"2026-07-26T23:25:46.880008Z","times_seen":3,"resource_available":false,"data":"Y29uc3QgX192aXRlX19tYXBEZXBzPShpLG09X192aXRlX19tYXBEZXBzLGQ9KG0uZnx8KG0uZj1baW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ2hNRXNNYnEuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NnNlRDLTdJLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CdHRTOGNjVi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQmVtdmtoWUEuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX3MwTHEzVE5GLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19MdVYxWkxYdS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ2ZXTnl1NGcuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NYVUQxRC1qLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19zeXRHU3lGcC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRHM0RVhpMVcuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0J3NHBDdzVzLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EU0VHRXhNYy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQll4ZFRPa2QuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJhX19hVmkydXVSLmNzcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRGVhVzZ3Z00uanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NGYXBmQlgzLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9mTzBiZGI1Ny5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RjbUpHSEE3LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9Ea2xDTWFjWi5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0ZqXzVCRjVELmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ETVQ2VE5DNy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfay1meXhRSEIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JETnpvc2RKLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9ER2dtdUxiMy5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0I1c1N2dm1jLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CWnhHQmt1dzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJhX1FqTy1zMjk2LmNzcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ29uVExyM24uanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX2w1UDlqYnB6LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EaDJmTFVjUy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQnhQMFNDMlkyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DSTUyYlExUTIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RTbmVXbjNMLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DdmFQVlJnczIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JJaWFFeDNWLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EdUJHXzAtbjIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RLVDlsUUM1Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQzZkeW43ajMyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EUjFGOFN0VjIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JnSTEzWUtUMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ3RIMGtGbzAyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EY1pBcld0OTIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JmZWJLbE5XMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ285QS0yaFkuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NkUVVhTFJhLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19LeGNvYURRdzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JTMXBVa1dVMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ2xzNjJtb20yLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CMFF3am4xai5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQkFWdHctTVkuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0I1V0FNSkpzLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CWE05RGFDNDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RuVU9XR2EwMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfWVFSMlEtR3QyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY190bEh4RTBGVi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRGU2eUZISncyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ERE5NYk5mNDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX2R1YjRpYVJILmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ERzJ0aDREaS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfZ1l4REtIaGwuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NmVDBfVG1vMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfbktzMmJqZW4yLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EVlJ2OTdIMjIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JySk01TmxkMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQjBNOGthNlgyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY18tNGt3ZC1BTTIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NPUzNBM0xrMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfUkN1czFwRzUyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EYVdoUTdlaTIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RBQzhKcVJ4Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQlBOQ2RvM3IyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19JT2xlMGpvcC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRDFIaE1uTWsuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0Jma2xub0V6LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CTDB6ei1sSy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQjE3b3E4UXIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX3hTNE5ER203Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ25BWUIxRlAuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0I0ZU9OZEYyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EcDFZN2dmSC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQjBWMDNFa3IuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RGTVBPNVJZLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Ec01ocnZCQS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfdmp3MWVETlkuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JHZUJpVUp4LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19COWxZX0hGaC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ2M2cTlGcGQuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NuQlp0ZXQ2LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Eb3VKUlVxTi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQnIxbXVqdVMyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DZkJXbGZYNDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX3hiTTlBQzhOMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfSzQyUjE4RUIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0QzNUNSWFZiMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRHFnZWF1cHUyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DMl9XMzhDWS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ2FOZFlBYzYuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JfRThLWTd2Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImFfRHRXNnU3TVMuY3NzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CYnZNZTFuci5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRGgzbTJGN1cuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJhX0JIR2pyQmVQLmNzcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImFfQ3loYUgwVnYuY3NzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EWUlvbVVNSy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImFfeUtlRkRPUjUuY3NzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9EdDZKbUFqMi5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NuTHYxM1lVLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19uMDRTMmZzbC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRFBRaWJ4OGouanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NSNnFDTXo3Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ1AtY2dIZlkuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NvZkx1UjkwLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CMkd6b29ReC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQnN2ZF9RZVguanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RVWE02M3ViLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19COERwLXVnTS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQk9Nc3RZUkcyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DbGplR0lLRzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX2NmOW95a1V5Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRFFoVDNQVlQyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DNmMxQlpCRDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RBN3c0S0l0LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19oclFBYzJqay5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRFVkTkJlWUcuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX1luSXhNaHZULmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19BU0ozQWhzaC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ3ZERHZaaUYyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ENmlOTXJjTDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjXy1WcGYySjU2Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRDM1cjZtUEsyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CVVc2d3BtMS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ1VDaVVaS2QuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJhX0NIeTJFN0xOLmNzcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRE80VFBjd2UuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NEY1hYdHlxMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ2tNZHkxX2syLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19sZDlkZDRWay5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfbFNSU0lHYl8yLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DQVBTUF91QS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQmNRdFhwVzQuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NvYkFsZVY2Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImFfQnE1RkNKdUEuY3NzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CN1NZbUJ5QS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfU3VlWEptZ1guanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RMRlpaZ3FDLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DREVjcWpZdC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQndNekM3MGkyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19UM0wwV1Y5Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ2VhVnh0RTUyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EX2Z3NnhONC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRFZHMG1sZUwyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY18yX0xQUnZmTy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQlNvM3N1R3gyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DUUR1bHNkTzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RpS1lseUhhLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DNndUc1BZXy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfVjA2UlpEeXQyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ibTgzVWQ2Si5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQzdsRGtfWk4uanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RoR05vaS1LMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfZTVBTmJsbGkyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CUmQ0a0ZNTS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfbWRmMkh2ZXYuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RqVGFVNjdzLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CY2tMLUtzSDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JTUV9tUFNpLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19qMFNBRjB1bi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRHQya1hjczIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JFamF0Z2RQMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ09Kd0dxbmwyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EQ3FlM2JxZi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImFfWldKdnVQckcuY3NzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CMmwtbVoyci5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfREF5aW9PVTQyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EdHMxNXFpQi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfOF9oc1RDc0wuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJhX0JLNE9ITmY2LmNzcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQnhwd1RvSTkuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0J3aGszM3dVLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19COHFhalpuQi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ0hWVHhiNGcuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RHNVEyUWN4Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRHdORTRJa0cyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CYS1faVBOUy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfVm5PNUpEODgyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CX1JfVmdXbi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ3QwX1dNd1AyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19yMUhldE1HSS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ05taGtrVEoyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ENHNlWExyYS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfYnhvekI2VXMyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Dei1vT0NhTDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JIWmVVQ3VULmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DMFEzSTVIVS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRG1XeXBhSHYyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Ca3Yxa2xxazIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX3ZQRGkxY09oMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImFfQ1NhOVB5UGMuY3NzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19IQndDZzlUdS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQm5jQWxVRnkyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CYXg0SjRaSC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfWkc3Tnc4X24uanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JQb0NZZVpKLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EdjlJTks4YjIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX2FyTUdZcnJrLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EX3RzSy1mLS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ0Q1OUdTZkgyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EaHpsZ25JcC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ3I4RW9jSHUyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CaXRlV0VYRzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RWUXhnVG9WLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EcVhRWl81bi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRERrRTZqbm8uanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX2tVOXBNdlhwMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQm01TUVjbmsyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ZeFZBWFRMcDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX3B4WjBpLU5JLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9CaTdxNUdvOS5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RwZWFHX0ZyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9ZN09RYW14ai5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0x1UXpoNktKLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9EUlZheUIzUS5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RHa3Ztbm5LLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CbnFiVmNkXzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JGZFdWblB0LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EVEs1OUFLbjIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NzMUdfdGJFMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfTU05NmkzRi0yLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EY0IweFI2bjIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NXWTh4UXUxMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQjM5dzZnT1kyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CY2doQWVjTzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0ZGZmpaak0xMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRGJoV2JCZ3EyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19PRFRpdXUtdDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX2tkZVZWNFBwLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19GZ2ZERk1Ibi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ29PT29MRUIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0Q2RkV6XzhJMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfYkdyVnd1aDcuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJhX0JjbjdublBxLmNzcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ2UzUkk5N04yLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Ec3dBNHhBUi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfREFROFk2VnUuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JtOTdFQVU1LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DYlk5NW5ucS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQjBseV9mWEoyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Dd19FYjlkSDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JOT0k3MzZoMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRC1YR3lPaDQuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX2pIRDd0ejhnLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DQWltS3RaVy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfaWhXdjFTYWQuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RUOVFZdTI2LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DTDBNX3JvXzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RCN3FJZlJxLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DZDZNZ2lKeS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ1ZLdkJjV00uanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NWQzVGeDJGLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19rcklkUUlPZC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ0lpa2dBXzkuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NjU2swY0luMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfd3hKd0Fsc0cuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0M1RUFNZXdZMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfV3Q3TlpxM1UuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JxVmRPZi1hMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRF9seks4MGYyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CVWlENS04bC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRG5SNUVmU2gyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CVlg2ME00djIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JvNDh0ZHpNLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EMk96VThIMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQmttS3E4VlQuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX3ZZVUQtMXZ0LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19FbzdqaFlmei5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ0F2MVBWT0QuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0QxY3dGblBhMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQlphQnd1YVMuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NoOURmd25jLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ETGl5VUdBdC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRHJFZ01mcUQyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9ESFQwbWVwUC5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0Q2YlpfeHRGLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DQjVsazlvQTIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NZazlkcDJXMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQzRUeVFLbDkuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NHWjJUN0pvLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DcGZieVRidS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRFVFTC1wRUYuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JGNmx2cDdvLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CWkpIVm9HYzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX04yWEdDVkpTMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQmtSZ1NsS3UuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0R4NjFrOTBRLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EYkE3Nzh6OS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQmdneXk2c2YuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0MxbjduSWRuMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQks3WVYzTlIyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ER1VvTFlFQzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX1paU3AzSHJsMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQkVueUlUWUMyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9Dc1VkZ0Q0WS5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NBSnFscTctLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CT2dVN1hfOC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQlF4VzVsTGMyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19YUF9RSWpXQS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfWDFWYzdtT2cyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CQlhwdjJnby5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfVUFMc3NVUnEuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NicXFPeUJzMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQkRrTDBKYlUuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NhOFo1ZnVhLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19FMDRrbjBlUTIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjXzg0QkoyR0JEMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRFBWOU5ndkIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX3p6YkRiV3hYLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY194QWRFV2d5Ry5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfb2MxMy1WbVYyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EWEEtcXBYZy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQnVsSjR6WEIyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Ec2U0MnF1SzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0N0ZkZjcVMwMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfamNGQ1lMUHcyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ESnlWZGtYNTIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0Npc1lHM2xuMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQm9QRGJLbUwyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CUW1pVGVqZS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRnZ6Z2tWR3cuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0N5U1Fka3p3Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ3V5MTNKc28uanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RURkZ2bUtTLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19QQml4S1EwcC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfckozSzhUc3kyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CRHNXWDFiVTIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX1IweXlIeVVwLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ETXN4dWtUZDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0ItRGZkVXY0LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Db1Y2ZEFEYjIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0Q1b0F5Y0xOMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfa0tVbW5HelkuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JZMUJvR1JJMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfSlRQbC1LNEMuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0Jzal9yM2Z3LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19oWk40Vnd0Xy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQlQteGVpQWcuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JlREp6d3dxLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9OTzBJMlNHVi5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JFQWJkZ0pOLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19iQlNpNEZHSy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRDRoYm40alEuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RMQnRoSllmLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DLUtNanllMzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NtTXNKNmkwLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EeDMyWWNCWC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ1ExakNsY0suanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0R2aWItZW5kLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DNHZsWkRQTS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ3Vick9ESnkuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0R2RjNGaC1sMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRGVmM0U4RVcuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NLNHhjemJhLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EUWZKNFFBYy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfSzVjWTBkbW8yLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ERVdnNDhXRC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQzNXUXVET1YuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JGMG5GOE84LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EVUdzcERjUC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfREY2VmRldDkuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NEWHRQYXZRLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9CSHZTQWgxSS5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX25YTXhaeEFyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Da2w5S3hyei5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRHA0dTdQdXcyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY195R1liX3A5aS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImFfT09ib2ZfYUkuY3NzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CcWw4c2hxMy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfa0E3VUdzU3IyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Cc2d5RUNwdi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfSG1fZ21nZmwuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX2k5UlVIb3RiLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CS0dCYTFmei5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ2tZdjNyVXYyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV94eGh3dGxxOC5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0R1bXZKTFhhMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQjBPaV9LMGkyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DOUtGN2ZkWTIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RTelNaNFZmMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQlhINjFvYXYuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NaTFY0T2h1LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9DTXM4Z0JmYS5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX1pxRldBUE9oMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImFfQ0h4aUN3cVUuY3NzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19GQU9nMFhJRC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImFfZ0Iyb1NKLVQuY3NzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CUjB1UFJKdjIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0M3MzNFb3FLLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EUnU0bUt6Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ1R0QXpYVzgyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EbXRFNk8ycS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ2lYWTh5TmkuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NDbFUxM0JPLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19zZS1fLXBZRzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RXaWNLcTN2Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfa19fSXJWSnoyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EM1Bmbm9ISC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRFdwOWNjbzUyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EcFl6RWhwRC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQjdYU2UwUkYuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NKdlBJbjRFLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY18zdTBjSUlTVC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfN2ZDaXUxZFUuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX3RsMlcwU2xDLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CLVZ5TzdRSy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQjdMMlpsNnUuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX01od0ZvdEd2Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImFfZll2M00xMHEuY3NzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EM29VTWI4ZDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JEZ1Ziay1ELmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ESHRTMjhTVy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfZVZjTGVmdmMuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RPbllsTVNjMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ1JQSE16TVUuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RNcGpTb3p2Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfYnVuM1g2eG8yLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CVkFHN1dyNC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ1lFVUJTNUcuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NUR0ZnTHVzLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Dd0g2bnVKTDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NEd3F0YjZnLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19Ddl85ajRvZC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ3BMd2hWakwuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JHdUlsWVZ1LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19kNmFvaVJMMy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ3dheUJUNTguanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RJQjNFY2RSLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ENlluTFc2by5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRHhrNjBBbUkyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19ENHpldGZucjIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJhX1R0N2Zodkl4LmNzcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfVjF0cXZ2cnIyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EWW1VSzFNRC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQk0zZzNzUlMuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JHVms5dFkwLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19COWd6Ymt4Qi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ3NFcmVabXUuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0J3eEltdU1XMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfNmRUcXJHcmQuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JvNEk5Qmd3Mi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQmIybHZGeUcuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0ItT0dwbjV1LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EUzBVVENVMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ2ZWajh4S1UuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0M4bEowRkd3LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EeUtFRUx6Ty5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImFfRFV4ZDhWNG4uY3NzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CSUp6VDVHRy5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRE5hSHQtU1kuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX2ZGOERNcGdzMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ0trTmd4Q2kyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19EY1pMRi1YYzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0RuaC1GMll0LmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiYV9DZkJXMjF3Vi5jc3MiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0NieXR6SEgxLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19DQXBoeVRYTDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0J6T0RpaUdGMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfekFQblY0d3kyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY185SkdwLWF4RzIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0REOWVJV0tuMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfaktsdzhfMjgyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19TZF96Q1d1WDIuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX2wwTkI1NklMMi5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfTC1iNUd6REgyLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19BTkFfRG5PMS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ01vT0ZNQzQuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjXzJzR2kzMnBDLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19CS3FwMnJlZC5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfQ3l1LWNoZkguanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0JOZFN3U3VPLmpzIixpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSkgKyAiY19sTHFJM2c0RS5qcyIsaW1wb3J0Lm1ldGEudXJsLnN1YnN0cmluZygwLCBpbXBvcnQubWV0YS51cmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgImNfRHFKejJBOXEuanMiLGltcG9ydC5tZXRhLnVybC5zdWJzdHJpbmcoMCwgaW1wb3J0Lm1ldGEudXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICJjX0J6TjhCWG1MMi5qcyJdKSkpPT5pLm1hcChpPT5kW2ldKTsKdHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDY0YzFiOTUxLWE1MzMtNGVkNy05ZWVjLTNkNmMxNzA1YzRmMmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTY0YzFiOTUxLWE1MzMtNGVkNy05ZWVjLTNkNmMxNzA1YzRmMmApfSkoKX1jYXRjaHt9dmFyIGU9T2JqZWN0LmNyZWF0ZSx0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxpPU9iamVjdC5nZXRQcm90b3R5cGVPZixhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbz0oZSx0KT0+KCk9PihlJiYodD1lKGU9MCkpLHQpLHM9KGUsdCk9PigpPT4odHx8KGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLGU9bnVsbCksdC5leHBvcnRzKSxjPShlLG4pPT57bGV0IHI9e307Zm9yKHZhciBpIGluIGUpdChyLGkse2dldDplW2ldLGVudW1lcmFibGU6ITB9KTtyZXR1cm4gbnx8dChyLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6YE1vZHVsZWB9KSxyfSxsPShlLGksbyxzKT0+e2lmKGkmJnR5cGVvZiBpPT1gb2JqZWN0YHx8dHlwZW9mIGk9PWBmdW5jdGlvbmApZm9yKHZhciBjPXIoaSksbD0wLHU9Yy5sZW5ndGgsZDtsPHU7bCsrKWQ9Y1tsXSwhYS5jYWxsKGUsZCkmJmQhPT1vJiZ0KGUsZCx7Z2V0OihlPT5pW2VdKS5iaW5kKG51bGwsZCksZW51bWVyYWJsZTohKHM9bihpLGQpKXx8cy5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9LHU9KG4scixhKT0+KGE9bj09bnVsbD97fTplKGkobikpLGwocnx8IW58fCFuLl9fZXNNb2R1bGU/dChhLGBkZWZhdWx0YCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwfSk6YSxuKSksZD1lPT5hLmNhbGwoZSxgbW9kdWxlLmV4cG9ydHNgKT9lW2Btb2R1bGUuZXhwb3J0c2BdOmwodCh7fSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZSksZj1zKCgoZSx0KT0+e3ZhciBuPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLk1hdGg9PT1NYXRoJiZlfTt0LmV4cG9ydHM9bih0eXBlb2YgZ2xvYmFsVGhpcz09YG9iamVjdGAmJmdsb2JhbFRoaXMpfHxuKHR5cGVvZiB3aW5kb3c9PWBvYmplY3RgJiZ3aW5kb3cpfHxuKHR5cGVvZiBzZWxmPT1gb2JqZWN0YCYmc2VsZil8fG4odHlwZW9mIGdsb2JhbFRoaXM9PWBvYmplY3RgJiZnbG9iYWxUaGlzKXx8bih0eXBlb2YgZT09YG9iamVjdGAmJmUpfHwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKCl8fEZ1bmN0aW9uKGByZXR1cm4gdGhpc2ApKCl9KSkscD1zKCgoZSx0KT0+e3QuZXhwb3J0cz1mdW5jdGlvbihlKXt0cnl7cmV0dXJuISFlKCl9Y2F0Y2h7cmV0dXJuITB9fX0pKSxtPXMoKChlLHQpPT57dC5leHBvcnRzPSFwKCkoZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdIT09N30pfSkpLGg9cygoKGUsdCk9Pnt0LmV4cG9ydHM9IXAoKShmdW5jdGlvbigpe3ZhciBlPShmdW5jdGlvbigpe30pLmJpbmQoKTtyZXR1cm4gdHlwZW9mIGUhPWBmdW5jdGlvbmB8fGUuaGFzT3duUHJvcGVydHkoYHByb3RvdHlwZWApfSl9KSksZz1zKCgoZSx0KT0+e3ZhciBuPWgoKSxyPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO3QuZXhwb3J0cz1uP3IuYmluZChyKTpmdW5jdGlvbigpe3JldHVybiByLmFwcGx5KHIsYXJndW1lbnRzKX19KSksXz1zKChlPT57dmFyIHQ9e30ucHJvcGVydHlJc0VudW1lcmFibGUsbj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2UuZj1uJiYhdC5jYWxsKHsxOjJ9LDEpP2Z1bmN0aW9uKGUpe3ZhciB0PW4odGhpcyxlKTtyZXR1cm4hIXQmJnQuZW51bWVyYWJsZX06dH0pKSx2PXMoKChlLHQpPT57dC5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2VudW1lcmFibGU6IShlJjEpLGNvbmZpZ3VyYWJsZTohKGUmMiksd3JpdGFibGU6IShlJjQpLHZhbHVlOnR9fX0pKSx5PXMoKChlLHQpPT57dmFyIG49aCgpLHI9RnVuY3Rpb24ucHJvdG90eXBlLGk9ci5jYWxsLGE9biYmci5iaW5kLmJpbmQoaSxpKTt0LmV4cG9ydHM9bj9hOmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBpLmFwcGx5KGUsYXJndW1lbnRzKX19fSkpLGI9cygoKGUsdCk9Pnt2YXIgbj15KCkscj1uKHt9LnRvU3RyaW5nKSxpPW4oYGAuc2xpY2UpO3QuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gaShyKGUpLDgsLTEpfX0pKSx4PXMoKChlLHQpPT57dmFyIG49eSgpLHI9cCgpLGk9YigpLGE9T2JqZWN0LG89bihgYC5zcGxpdCk7dC5leHBvcnRzPXIoZnVuY3Rpb24oKXtyZXR1cm4hYShgemApLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApfSk/ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSk9PT1gU3RyaW5nYD9vKGUsYGApOmEoZSl9OmF9KSksUz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZT09bnVsbH19KSksQz1zKCgoZSx0KT0+e3ZhciBuPVMoKSxyPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYobihlKSl0aHJvdyBuZXcgcihgQ2FuJ3QgY2FsbCBtZXRob2Qgb24gYCtlKTtyZXR1cm4gZX19KSksdz1zKCgoZSx0KT0+e3ZhciBuPXgoKSxyPUMoKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG4ocihlKSl9fSkpLFQ9cygoKGUsdCk9Pnt2YXIgbj10eXBlb2YgZG9jdW1lbnQ9PWBvYmplY3RgJiZkb2N1bWVudC5hbGw7dC5leHBvcnRzPW49PT12b2lkIDAmJm4hPT12b2lkIDA/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlPT1gZnVuY3Rpb25gfHxlPT09bn06ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlPT1gZnVuY3Rpb25gfX0pKSxFPXMoKChlLHQpPT57dmFyIG49VCgpO3QuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGU9PWBvYmplY3RgP2UhPT1udWxsOm4oZSl9fSkpLEQ9cygoKGUsdCk9Pnt2YXIgbj1mKCkscj1UKCksaT1mdW5jdGlvbihlKXtyZXR1cm4gcihlKT9lOnZvaWQgMH07dC5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9pKG5bZV0pOm5bZV0mJm5bZV1bdF19fSkpLE89cygoKGUsdCk9Pnt0LmV4cG9ydHM9eSgpKHt9LmlzUHJvdG90eXBlT2YpfSkpLGs9cygoKGUsdCk9Pnt2YXIgbj1mKCkubmF2aWdhdG9yLHI9biYmbi51c2VyQWdlbnQ7dC5leHBvcnRzPXI/U3RyaW5nKHIpOmBgfSkpLEE9cygoKGUsdCk9Pnt2YXIgbj1mKCkscj1rKCksaT1uLnByb2Nlc3MsYT1uLkRlbm8sbz1pJiZpLnZlcnNpb25zfHxhJiZhLnZlcnNpb24scz1vJiZvLnY4LGMsbDtzJiYoYz1zLnNwbGl0KGAuYCksbD1jWzBdPjAmJmNbMF08ND8xOisoY1swXStjWzFdKSksIWwmJnImJihjPXIubWF0Y2goL0VkZ2VcLyhcZCspLyksKCFjfHxjWzFdPj03NCkmJihjPXIubWF0Y2goL0Nocm9tZVwvKFxkKykvKSxjJiYobD0rY1sxXSkpKSx0LmV4cG9ydHM9bH0pKSxqPXMoKChlLHQpPT57dmFyIG49QSgpLHI9cCgpLGk9ZigpLlN0cmluZzt0LmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhcihmdW5jdGlvbigpe3ZhciBlPVN5bWJvbChgc3ltYm9sIGRldGVjdGlvbmApO3JldHVybiFpKGUpfHwhKE9iamVjdChlKWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZuJiZuPDQxfSl9KSksTT1zKCgoZSx0KT0+e3QuZXhwb3J0cz1qKCkmJiFTeW1ib2wuc2hhbSYmdHlwZW9mIFN5bWJvbC5pdGVyYXRvcj09YHN5bWJvbGB9KSksTj1zKCgoZSx0KT0+e3ZhciBuPUQoKSxyPVQoKSxpPU8oKSxhPU0oKSxvPU9iamVjdDt0LmV4cG9ydHM9YT9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGU9PWBzeW1ib2xgfTpmdW5jdGlvbihlKXt2YXIgdD1uKGBTeW1ib2xgKTtyZXR1cm4gcih0KSYmaSh0LnByb3RvdHlwZSxvKGUpKX19KSksUD1zKCgoZSx0KT0+e3ZhciBuPVN0cmluZzt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBuKGUpfWNhdGNoe3JldHVybmBPYmplY3RgfX19KSksRj1zKCgoZSx0KT0+e3ZhciBuPVQoKSxyPVAoKSxpPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYobihlKSlyZXR1cm4gZTt0aHJvdyBuZXcgaShyKGUpK2AgaXMgbm90IGEgZnVuY3Rpb25gKX19KSksZWU9cygoKGUsdCk9Pnt2YXIgbj1GKCkscj1TKCk7dC5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIGk9ZVt0XTtyZXR1cm4gcihpKT92b2lkIDA6bihpKX19KSksST1zKCgoZSx0KT0+e3ZhciBuPWcoKSxyPVQoKSxpPUUoKSxhPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbyxzO2lmKHQ9PT1gc3RyaW5nYCYmcihvPWUudG9TdHJpbmcpJiYhaShzPW4obyxlKSl8fHIobz1lLnZhbHVlT2YpJiYhaShzPW4obyxlKSl8fHQhPT1gc3RyaW5nYCYmcihvPWUudG9TdHJpbmcpJiYhaShzPW4obyxlKSkpcmV0dXJuIHM7dGhyb3cgbmV3IGEoYENhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZWApfX0pKSxMPXMoKChlLHQpPT57dC5leHBvcnRzPSExfSkpLFI9cygoKGUsdCk9Pnt2YXIgbj1mKCkscj1PYmplY3QuZGVmaW5lUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dHJ5e3IobixlLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoe25bZV09dH1yZXR1cm4gdH19KSksej1zKCgoZSx0KT0+e3ZhciBuPUwoKSxyPWYoKSxpPVIoKSxhPWBfX2NvcmUtanNfc2hhcmVkX19gLG89dC5leHBvcnRzPXJbYV18fGkoYSx7fSk7KG8udmVyc2lvbnN8fChvLnZlcnNpb25zPVtdKSkucHVzaCh7dmVyc2lvbjpgMy40NS4xYCxtb2RlOm4/YHB1cmVgOmBnbG9iYWxgLGNvcHlyaWdodDpgwqkgMjAxNC0yMDI1IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpYCxsaWNlbnNlOmBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjQ1LjEvTElDRU5TRWAsc291cmNlOmBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qc2B9KX0pKSx0ZT1zKCgoZSx0KT0+e3ZhciBuPXooKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbltlXXx8KG5bZV09dHx8e30pfX0pKSxuZT1zKCgoZSx0KT0+e3ZhciBuPUMoKSxyPU9iamVjdDt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHIobihlKSl9fSkpLHJlPXMoKChlLHQpPT57dmFyIG49eSgpLHI9bmUoKSxpPW4oe30uaGFzT3duUHJvcGVydHkpO3QuZXhwb3J0cz1PYmplY3QuaGFzT3dufHxmdW5jdGlvbihlLHQpe3JldHVybiBpKHIoZSksdCl9fSkpLGllPXMoKChlLHQpPT57dmFyIG49eSgpLHI9MCxpPU1hdGgucmFuZG9tKCksYT1uKDEuMS50b1N0cmluZyk7dC5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybmBTeW1ib2woYCsoZT09PXZvaWQgMD9gYDplKStgKV9gK2EoKytyK2ksMzYpfX0pKSxhZT1zKCgoZSx0KT0+e3ZhciBuPWYoKSxyPXRlKCksaT1yZSgpLGE9aWUoKSxvPWooKSxzPU0oKSxjPW4uU3ltYm9sLGw9cihgd2tzYCksdT1zP2MuZm9yfHxjOmMmJmMud2l0aG91dFNldHRlcnx8YTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGkobCxlKXx8KGxbZV09byYmaShjLGUpP2NbZV06dShgU3ltYm9sLmArZSkpLGxbZV19fSkpLG9lPXMoKChlLHQpPT57dmFyIG49ZygpLHI9RSgpLGk9TigpLGE9ZWUoKSxvPUkoKSxzPWFlKCksYz1UeXBlRXJyb3IsbD1zKGB0b1ByaW1pdGl2ZWApO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKCFyKGUpfHxpKGUpKXJldHVybiBlO3ZhciBzPWEoZSxsKSx1O2lmKHMpe2lmKHQ9PT12b2lkIDAmJih0PWBkZWZhdWx0YCksdT1uKHMsZSx0KSwhcih1KXx8aSh1KSlyZXR1cm4gdTt0aHJvdyBuZXcgYyhgQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlYCl9cmV0dXJuIHQ9PT12b2lkIDAmJih0PWBudW1iZXJgKSxvKGUsdCl9fSkpLHNlPXMoKChlLHQpPT57dmFyIG49b2UoKSxyPU4oKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9bihlLGBzdHJpbmdgKTtyZXR1cm4gcih0KT90OnQrYGB9fSkpLGNlPXMoKChlLHQpPT57dmFyIG49ZigpLHI9RSgpLGk9bi5kb2N1bWVudCxhPXIoaSkmJnIoaS5jcmVhdGVFbGVtZW50KTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGE/aS5jcmVhdGVFbGVtZW50KGUpOnt9fX0pKSxsZT1zKCgoZSx0KT0+e3ZhciBuPW0oKSxyPXAoKSxpPWNlKCk7dC5leHBvcnRzPSFuJiYhcihmdW5jdGlvbigpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoaShgZGl2YCksYGFgLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hIT09N30pfSkpLHVlPXMoKGU9Pnt2YXIgdD1tKCksbj1nKCkscj1fKCksaT12KCksYT13KCksbz1zZSgpLHM9cmUoKSxjPWxlKCksbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2UuZj10P2w6ZnVuY3Rpb24oZSx0KXtpZihlPWEoZSksdD1vKHQpLGMpdHJ5e3JldHVybiBsKGUsdCl9Y2F0Y2h7fWlmKHMoZSx0KSlyZXR1cm4gaSghbihyLmYsZSx0KSxlW3RdKX19KSksZGU9cygoKGUsdCk9Pnt2YXIgbj1tKCkscj1wKCk7dC5leHBvcnRzPW4mJnIoZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKCl7fSxgcHJvdG90eXBlYCx7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGUhPT00Mn0pfSkpLGZlPXMoKChlLHQpPT57dmFyIG49RSgpLHI9U3RyaW5nLGk9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihuKGUpKXJldHVybiBlO3Rocm93IG5ldyBpKHIoZSkrYCBpcyBub3QgYW4gb2JqZWN0YCl9fSkpLHBlPXMoKGU9Pnt2YXIgdD1tKCksbj1sZSgpLHI9ZGUoKSxpPWZlKCksYT1zZSgpLG89VHlwZUVycm9yLHM9T2JqZWN0LmRlZmluZVByb3BlcnR5LGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixsPWBlbnVtZXJhYmxlYCx1PWBjb25maWd1cmFibGVgLGQ9YHdyaXRhYmxlYDtlLmY9dD9yP2Z1bmN0aW9uKGUsdCxuKXtpZihpKGUpLHQ9YSh0KSxpKG4pLHR5cGVvZiBlPT1gZnVuY3Rpb25gJiZ0PT09YHByb3RvdHlwZWAmJmB2YWx1ZWBpbiBuJiZkIGluIG4mJiFuW2RdKXt2YXIgcj1jKGUsdCk7ciYmcltkXSYmKGVbdF09bi52YWx1ZSxuPXtjb25maWd1cmFibGU6dSBpbiBuP25bdV06clt1XSxlbnVtZXJhYmxlOmwgaW4gbj9uW2xdOnJbbF0sd3JpdGFibGU6ITF9KX1yZXR1cm4gcyhlLHQsbil9OnM6ZnVuY3Rpb24oZSx0LHIpe2lmKGkoZSksdD1hKHQpLGkociksbil0cnl7cmV0dXJuIHMoZSx0LHIpfWNhdGNoe31pZihgZ2V0YGluIHJ8fGBzZXRgaW4gcil0aHJvdyBuZXcgbyhgQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWRgKTtyZXR1cm5gdmFsdWVgaW4gciYmKGVbdF09ci52YWx1ZSksZX19KSksbWU9cygoKGUsdCk9Pnt2YXIgbj1tKCkscj1wZSgpLGk9digpO3QuZXhwb3J0cz1uP2Z1bmN0aW9uKGUsdCxuKXtyZXR1cm4gci5mKGUsdCxpKDEsbikpfTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbdF09bixlfX0pKSxoZT1zKCgoZSx0KT0+e3ZhciBuPW0oKSxyPXJlKCksaT1GdW5jdGlvbi5wcm90b3R5cGUsYT1uJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLG89cihpLGBuYW1lYCk7dC5leHBvcnRzPXtFWElTVFM6byxQUk9QRVI6byYmKGZ1bmN0aW9uKCl7fSkubmFtZT09PWBzb21ldGhpbmdgLENPTkZJR1VSQUJMRTpvJiYoIW58fG4mJmEoaSxgbmFtZWApLmNvbmZpZ3VyYWJsZSl9fSkpLGdlPXMoKChlLHQpPT57dmFyIG49eSgpLHI9VCgpLGk9eigpLGE9bihGdW5jdGlvbi50b1N0cmluZyk7cihpLmluc3BlY3RTb3VyY2UpfHwoaS5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhKGUpfSksdC5leHBvcnRzPWkuaW5zcGVjdFNvdXJjZX0pKSxfZT1zKCgoZSx0KT0+e3ZhciBuPWYoKSxyPVQoKSxpPW4uV2Vha01hcDt0LmV4cG9ydHM9cihpKSYmL25hdGl2ZSBjb2RlLy50ZXN0KFN0cmluZyhpKSl9KSksdmU9cygoKGUsdCk9Pnt2YXIgbj10ZSgpLHI9aWUoKSxpPW4oYGtleXNgKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGlbZV18fChpW2VdPXIoZSkpfX0pKSx5ZT1zKCgoZSx0KT0+e3QuZXhwb3J0cz17fX0pKSxiZT1zKCgoZSx0KT0+e3ZhciBuPV9lKCkscj1mKCksaT1FKCksYT1tZSgpLG89cmUoKSxzPXooKSxjPXZlKCksbD15ZSgpLHU9YE9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkYCxkPXIuVHlwZUVycm9yLHA9ci5XZWFrTWFwLG0saCxnLF89ZnVuY3Rpb24oZSl7cmV0dXJuIGcoZSk/aChlKTptKGUse30pfSx2PWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbjtpZighaSh0KXx8KG49aCh0KSkudHlwZSE9PWUpdGhyb3cgbmV3IGQoYEluY29tcGF0aWJsZSByZWNlaXZlciwgYCtlK2AgcmVxdWlyZWRgKTtyZXR1cm4gbn19O2lmKG58fHMuc3RhdGUpe3ZhciB5PXMuc3RhdGV8fChzLnN0YXRlPW5ldyBwKTt5LmdldD15LmdldCx5Lmhhcz15Lmhhcyx5LnNldD15LnNldCxtPWZ1bmN0aW9uKGUsdCl7aWYoeS5oYXMoZSkpdGhyb3cgbmV3IGQodSk7cmV0dXJuIHQuZmFjYWRlPWUseS5zZXQoZSx0KSx0fSxoPWZ1bmN0aW9uKGUpe3JldHVybiB5LmdldChlKXx8e319LGc9ZnVuY3Rpb24oZSl7cmV0dXJuIHkuaGFzKGUpfX1lbHNle3ZhciBiPWMoYHN0YXRlYCk7bFtiXT0hMCxtPWZ1bmN0aW9uKGUsdCl7aWYobyhlLGIpKXRocm93IG5ldyBkKHUpO3JldHVybiB0LmZhY2FkZT1lLGEoZSxiLHQpLHR9LGg9ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSxiKT9lW2JdOnt9fSxnPWZ1bmN0aW9uKGUpe3JldHVybiBvKGUsYil9fXQuZXhwb3J0cz17c2V0Om0sZ2V0OmgsaGFzOmcsZW5mb3JjZTpfLGdldHRlckZvcjp2fX0pKSx4ZT1zKCgoZSx0KT0+e3ZhciBuPXkoKSxyPXAoKSxpPVQoKSxhPXJlKCksbz1tKCkscz1oZSgpLkNPTkZJR1VSQUJMRSxjPWdlKCksbD1iZSgpLHU9bC5lbmZvcmNlLGQ9bC5nZXQsZj1TdHJpbmcsaD1PYmplY3QuZGVmaW5lUHJvcGVydHksZz1uKGBgLnNsaWNlKSxfPW4oYGAucmVwbGFjZSksdj1uKFtdLmpvaW4pLGI9byYmIXIoZnVuY3Rpb24oKXtyZXR1cm4gaChmdW5jdGlvbigpe30sYGxlbmd0aGAse3ZhbHVlOjh9KS5sZW5ndGghPT04fSkseD1TdHJpbmcoU3RyaW5nKS5zcGxpdChgU3RyaW5nYCksUz10LmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2coZih0KSwwLDcpPT09YFN5bWJvbChgJiYodD1gW2ArXyhmKHQpLC9eU3ltYm9sXCgoW14pXSopXCkuKiQvLGAkMWApK2BdYCksbiYmbi5nZXR0ZXImJih0PWBnZXQgYCt0KSxuJiZuLnNldHRlciYmKHQ9YHNldCBgK3QpLCghYShlLGBuYW1lYCl8fHMmJmUubmFtZSE9PXQpJiYobz9oKGUsYG5hbWVgLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMH0pOmUubmFtZT10KSxiJiZuJiZhKG4sYGFyaXR5YCkmJmUubGVuZ3RoIT09bi5hcml0eSYmaChlLGBsZW5ndGhgLHt2YWx1ZTpuLmFyaXR5fSk7dHJ5e24mJmEobixgY29uc3RydWN0b3JgKSYmbi5jb25zdHJ1Y3Rvcj9vJiZoKGUsYHByb3RvdHlwZWAse3dyaXRhYmxlOiExfSk6ZS5wcm90b3R5cGUmJihlLnByb3RvdHlwZT12b2lkIDApfWNhdGNoe312YXIgcj11KGUpO3JldHVybiBhKHIsYHNvdXJjZWApfHwoci5zb3VyY2U9dih4LHR5cGVvZiB0PT1gc3RyaW5nYD90OmBgKSksZX07RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPVMoZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzKSYmZCh0aGlzKS5zb3VyY2V8fGModGhpcyl9LGB0b1N0cmluZ2ApfSkpLFNlPXMoKChlLHQpPT57dmFyIG49VCgpLHI9cGUoKSxpPXhlKCksYT1SKCk7dC5leHBvcnRzPWZ1bmN0aW9uKGUsdCxvLHMpe3N8fChzPXt9KTt2YXIgYz1zLmVudW1lcmFibGUsbD1zLm5hbWU9PT12b2lkIDA/dDpzLm5hbWU7aWYobihvKSYmaShvLGwscykscy5nbG9iYWwpYz9lW3RdPW86YSh0LG8pO2Vsc2V7dHJ5e3MudW5zYWZlP2VbdF0mJihjPSEwKTpkZWxldGUgZVt0XX1jYXRjaHt9Yz9lW3RdPW86ci5mKGUsdCx7dmFsdWU6byxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohcy5ub25Db25maWd1cmFibGUsd3JpdGFibGU6IXMubm9uV3JpdGFibGV9KX1yZXR1cm4gZX19KSksQ2U9cygoKGUsdCk9Pnt2YXIgbj1NYXRoLmNlaWwscj1NYXRoLmZsb29yO3QuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbihlKXt2YXIgdD0rZTtyZXR1cm4odD4wP3I6bikodCl9fSkpLHdlPXMoKChlLHQpPT57dmFyIG49Q2UoKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9K2U7cmV0dXJuIHQhPT10fHx0PT09MD8wOm4odCl9fSkpLFRlPXMoKChlLHQpPT57dmFyIG49d2UoKSxyPU1hdGgubWF4LGk9TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIGE9bihlKTtyZXR1cm4gYTwwP3IoYSt0LDApOmkoYSx0KX19KSksRWU9cygoKGUsdCk9Pnt2YXIgbj13ZSgpLHI9TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PW4oZSk7cmV0dXJuIHQ+MD9yKHQsOTAwNzE5OTI1NDc0MDk5MSk6MH19KSksRGU9cygoKGUsdCk9Pnt2YXIgbj1FZSgpO3QuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbihlLmxlbmd0aCl9fSkpLE9lPXMoKChlLHQpPT57dmFyIG49dygpLHI9VGUoKSxpPURlKCksYT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxhLG8pe3ZhciBzPW4odCksYz1pKHMpO2lmKGM9PT0wKXJldHVybiFlJiYtMTt2YXIgbD1yKG8sYyksdTtpZihlJiZhIT09YSl7Zm9yKDtjPmw7KWlmKHU9c1tsKytdLHUhPT11KXJldHVybiEwfWVsc2UgZm9yKDtjPmw7bCsrKWlmKChlfHxsIGluIHMpJiZzW2xdPT09YSlyZXR1cm4gZXx8bHx8MDtyZXR1cm4hZSYmLTF9fTt0LmV4cG9ydHM9e2luY2x1ZGVzOmEoITApLGluZGV4T2Y6YSghMSl9fSkpLGtlPXMoKChlLHQpPT57dmFyIG49eSgpLHI9cmUoKSxpPXcoKSxhPU9lKCkuaW5kZXhPZixvPXllKCkscz1uKFtdLnB1c2gpO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWkoZSksYz0wLGw9W10sdTtmb3IodSBpbiBuKSFyKG8sdSkmJnIobix1KSYmcyhsLHUpO2Zvcig7dC5sZW5ndGg+YzspcihuLHU9dFtjKytdKSYmKH5hKGwsdSl8fHMobCx1KSk7cmV0dXJuIGx9fSkpLEFlPXMoKChlLHQpPT57dC5leHBvcnRzPVtgY29uc3RydWN0b3JgLGBoYXNPd25Qcm9wZXJ0eWAsYGlzUHJvdG90eXBlT2ZgLGBwcm9wZXJ0eUlzRW51bWVyYWJsZWAsYHRvTG9jYWxlU3RyaW5nYCxgdG9TdHJpbmdgLGB2YWx1ZU9mYF19KSksamU9cygoZT0+e3ZhciB0PWtlKCksbj1BZSgpLmNvbmNhdChgbGVuZ3RoYCxgcHJvdG90eXBlYCk7ZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXtyZXR1cm4gdChlLG4pfX0pKSxNZT1zKChlPT57ZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9KSksTmU9cygoKGUsdCk9Pnt2YXIgbj1EKCkscj15KCksaT1qZSgpLGE9TWUoKSxvPWZlKCkscz1yKFtdLmNvbmNhdCk7dC5leHBvcnRzPW4oYFJlZmxlY3RgLGBvd25LZXlzYCl8fGZ1bmN0aW9uKGUpe3ZhciB0PWkuZihvKGUpKSxuPWEuZjtyZXR1cm4gbj9zKHQsbihlKSk6dH19KSksUGU9cygoKGUsdCk9Pnt2YXIgbj1yZSgpLHI9TmUoKSxpPXVlKCksYT1wZSgpO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQsbyl7Zm9yKHZhciBzPXIodCksYz1hLmYsbD1pLmYsdT0wO3U8cy5sZW5ndGg7dSsrKXt2YXIgZD1zW3VdOyFuKGUsZCkmJiEobyYmbihvLGQpKSYmYyhlLGQsbCh0LGQpKX19fSkpLEZlPXMoKChlLHQpPT57dmFyIG49cCgpLHI9VCgpLGk9LyN8XC5wcm90b3R5cGVcLi8sYT1mdW5jdGlvbihlLHQpe3ZhciBpPXNbbyhlKV07cmV0dXJuIGk9PT1sPyEwOmk9PT1jPyExOnIodCk/bih0KTohIXR9LG89YS5ub3JtYWxpemU9ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKGksYC5gKS50b0xvd2VyQ2FzZSgpfSxzPWEuZGF0YT17fSxjPWEuTkFUSVZFPWBOYCxsPWEuUE9MWUZJTEw9YFBgO3QuZXhwb3J0cz1hfSkpLEllPXMoKChlLHQpPT57dmFyIG49ZigpLHI9dWUoKS5mLGk9bWUoKSxhPVNlKCksbz1SKCkscz1QZSgpLGM9RmUoKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbD1lLnRhcmdldCx1PWUuZ2xvYmFsLGQ9ZS5zdGF0LGYscD11P246ZD9uW2xdfHxvKGwse30pOm5bbF0mJm5bbF0ucHJvdG90eXBlLG0saCxnLF87aWYocClmb3IobSBpbiB0KXtpZihnPXRbbV0sZS5kb250Q2FsbEdldFNldD8oXz1yKHAsbSksaD1fJiZfLnZhbHVlKTpoPXBbbV0sZj1jKHU/bTpsKyhkP2AuYDpgI2ApK20sZS5mb3JjZWQpLCFmJiZoIT09dm9pZCAwKXtpZih0eXBlb2YgZz09dHlwZW9mIGgpY29udGludWU7cyhnLGgpfShlLnNoYW18fGgmJmguc2hhbSkmJmkoZyxgc2hhbWAsITApLGEocCxtLGcsZSl9fX0pKSxMZT1zKCgoZSx0KT0+e3ZhciBuPWtlKCkscj1BZSgpO3QuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSxyKX19KSksUmU9cygoZT0+e3ZhciB0PW0oKSxuPWRlKCkscj1wZSgpLGk9ZmUoKSxhPXcoKSxvPUxlKCk7ZS5mPXQmJiFuP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKGUsdCl7aShlKTtmb3IodmFyIG49YSh0KSxzPW8odCksYz1zLmxlbmd0aCxsPTAsdTtjPmw7KXIuZihlLHU9c1tsKytdLG5bdV0pO3JldHVybiBlfX0pKSx6ZT1zKCgoZSx0KT0+e3QuZXhwb3J0cz1EKCkoYGRvY3VtZW50YCxgZG9jdW1lbnRFbGVtZW50YCl9KSksQmU9cygoKGUsdCk9Pnt2YXIgbj1mZSgpLHI9UmUoKSxpPUFlKCksYT15ZSgpLG89emUoKSxzPWNlKCksYz12ZSgpLGw9YD5gLHU9YDxgLGQ9YHByb3RvdHlwZWAsZj1gc2NyaXB0YCxwPWMoYElFX1BST1RPYCksbT1mdW5jdGlvbigpe30saD1mdW5jdGlvbihlKXtyZXR1cm4gdStmK2wrZSt1K2AvYCtmK2x9LGc9ZnVuY3Rpb24oZSl7ZS53cml0ZShoKGBgKSksZS5jbG9zZSgpO3ZhciB0PWUucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gZT1udWxsLHR9LF89ZnVuY3Rpb24oKXt2YXIgZT1zKGBpZnJhbWVgKSx0PWBqYXZhYCtmK2A6YCxuO3JldHVybiBlLnN0eWxlLmRpc3BsYXk9YG5vbmVgLG8uYXBwZW5kQ2hpbGQoZSksZS5zcmM9U3RyaW5nKHQpLG49ZS5jb250ZW50V2luZG93LmRvY3VtZW50LG4ub3BlbigpLG4ud3JpdGUoaChgZG9jdW1lbnQuRj1PYmplY3RgKSksbi5jbG9zZSgpLG4uRn0sdix5PWZ1bmN0aW9uKCl7dHJ5e3Y9bmV3IEFjdGl2ZVhPYmplY3QoYGh0bWxmaWxlYCl9Y2F0Y2h7fXk9dHlwZW9mIGRvY3VtZW50PGB1YD9kb2N1bWVudC5kb21haW4mJnY/Zyh2KTpfKCk6Zyh2KTtmb3IodmFyIGU9aS5sZW5ndGg7ZS0tOylkZWxldGUgeVtkXVtpW2VdXTtyZXR1cm4geSgpfTthW3BdPSEwLHQuZXhwb3J0cz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihlLHQpe3ZhciBpO3JldHVybiBlPT09bnVsbD9pPXkoKToobVtkXT1uKGUpLGk9bmV3IG0sbVtkXT1udWxsLGlbcF09ZSksdD09PXZvaWQgMD9pOnIuZihpLHQpfX0pKSxWZT1zKCgoZSx0KT0+e3ZhciBuPWFlKCkscj1CZSgpLGk9cGUoKS5mLGE9bihgdW5zY29wYWJsZXNgKSxvPUFycmF5LnByb3RvdHlwZTtvW2FdPT09dm9pZCAwJiZpKG8sYSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOnIobnVsbCl9KSx0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7b1thXVtlXT0hMH19KSksSGU9SWUoKSxVZT1PZSgpLmluY2x1ZGVzLFdlPXAoKSxHZT1WZSgpO0hlKHt0YXJnZXQ6YEFycmF5YCxwcm90bzohMCxmb3JjZWQ6V2UoZnVuY3Rpb24oKXtyZXR1cm4hWyxdLmluY2x1ZGVzKCl9KX0se2luY2x1ZGVzOmZ1bmN0aW9uKGUpe3JldHVybiBVZSh0aGlzLGUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLEdlKGBpbmNsdWRlc2ApO3ZhciBLZT1zKCgoZSx0KT0+e3ZhciBuPXhlKCkscj1wZSgpO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQsaSl7cmV0dXJuIGkuZ2V0JiZuKGkuZ2V0LHQse2dldHRlcjohMH0pLGkuc2V0JiZuKGkuc2V0LHQse3NldHRlcjohMH0pLHIuZihlLHQsaSl9fSkpLHFlPXMoKChlLHQpPT57dmFyIG49ZigpLHI9cCgpLGk9bi5SZWdFeHA7dC5leHBvcnRzPXtjb3JyZWN0OiFyKGZ1bmN0aW9uKCl7dmFyIGU9ITA7dHJ5e2koYC5gLGBkYCl9Y2F0Y2h7ZT0hMX12YXIgdD17fSxuPWBgLHI9ZT9gZGdpbXN5YDpgZ2ltc3lgLGE9ZnVuY3Rpb24oZSxyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbis9ciwhMH19KX0sbz17ZG90QWxsOmBzYCxnbG9iYWw6YGdgLGlnbm9yZUNhc2U6YGlgLG11bHRpbGluZTpgbWAsc3RpY2t5OmB5YH07Zm9yKHZhciBzIGluIGUmJihvLmhhc0luZGljZXM9YGRgKSxvKWEocyxvW3NdKTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLnByb3RvdHlwZSxgZmxhZ3NgKS5nZXQuY2FsbCh0KSE9PXJ8fG4hPT1yfSl9fSkpLEplPXMoKChlLHQpPT57dmFyIG49ZmUoKTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgZT1uKHRoaXMpLHQ9YGA7cmV0dXJuIGUuaGFzSW5kaWNlcyYmKHQrPWBkYCksZS5nbG9iYWwmJih0Kz1gZ2ApLGUuaWdub3JlQ2FzZSYmKHQrPWBpYCksZS5tdWx0aWxpbmUmJih0Kz1gbWApLGUuZG90QWxsJiYodCs9YHNgKSxlLnVuaWNvZGUmJih0Kz1gdWApLGUudW5pY29kZVNldHMmJih0Kz1gdmApLGUuc3RpY2t5JiYodCs9YHlgKSx0fX0pKSxZZT1tKCksWGU9S2UoKSxaZT1xZSgpLFFlPUplKCk7WWUmJiFaZS5jb3JyZWN0JiYoWGUoUmVnRXhwLnByb3RvdHlwZSxgZmxhZ3NgLHtjb25maWd1cmFibGU6ITAsZ2V0OlFlfSksWmUuY29ycmVjdD0hMCk7dmFyICRlPXMoKChlLHQpPT57dC5leHBvcnRzPXR5cGVvZiBBcnJheUJ1ZmZlcjxgdWAmJnR5cGVvZiBEYXRhVmlldzxgdWB9KSksZXQ9cygoKGUsdCk9Pnt2YXIgbj1hZSgpKGB0b1N0cmluZ1RhZ2ApLHI9e307cltuXT1gemAsdC5leHBvcnRzPVN0cmluZyhyKT09PWBbb2JqZWN0IHpdYH0pKSx0dD1zKCgoZSx0KT0+e3ZhciBuPWV0KCkscj1UKCksaT1iKCksYT1hZSgpKGB0b1N0cmluZ1RhZ2ApLG89T2JqZWN0LHM9aShmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpPT09YEFyZ3VtZW50c2AsYz1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZVt0XX1jYXRjaHt9fTt0LmV4cG9ydHM9bj9pOmZ1bmN0aW9uKGUpe3ZhciB0LG4sbDtyZXR1cm4gZT09PXZvaWQgMD9gVW5kZWZpbmVkYDplPT09bnVsbD9gTnVsbGA6dHlwZW9mKG49Yyh0PW8oZSksYSkpPT1gc3RyaW5nYD9uOnM/aSh0KToobD1pKHQpKT09PWBPYmplY3RgJiZyKHQuY2FsbGVlKT9gQXJndW1lbnRzYDpsfX0pKSxudD1zKCgoZSx0KT0+e3QuZXhwb3J0cz0hcCgpKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZS5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IGUpIT09ZS5wcm90b3R5cGV9KX0pKSxydD1zKCgoZSx0KT0+e3ZhciBuPXJlKCkscj1UKCksaT1uZSgpLGE9dmUoKSxvPW50KCkscz1hKGBJRV9QUk9UT2ApLGM9T2JqZWN0LGw9Yy5wcm90b3R5cGU7dC5leHBvcnRzPW8/Yy5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihlKXt2YXIgdD1pKGUpO2lmKG4odCxzKSlyZXR1cm4gdFtzXTt2YXIgYT10LmNvbnN0cnVjdG9yO3JldHVybiByKGEpJiZ0IGluc3RhbmNlb2YgYT9hLnByb3RvdHlwZTp0IGluc3RhbmNlb2YgYz9sOm51bGx9fSkpLGl0PXMoKChlLHQpPT57dmFyIG49eSgpLHI9RigpO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQsaSl7dHJ5e3JldHVybiBuKHIoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpW2ldKSl9Y2F0Y2h7fX19KSksYXQ9cygoKGUsdCk9Pnt2YXIgbj1FKCk7dC5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuKGUpfHxlPT09bnVsbH19KSksb3Q9cygoKGUsdCk9Pnt2YXIgbj1hdCgpLHI9U3RyaW5nLGk9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihuKGUpKXJldHVybiBlO3Rocm93IG5ldyBpKGBDYW4ndCBzZXQgYCtyKGUpK2AgYXMgYSBwcm90b3R5cGVgKX19KSksc3Q9cygoKGUsdCk9Pnt2YXIgbj1pdCgpLHI9RSgpLGk9QygpLGE9b3QoKTt0LmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoYF9fcHJvdG9fX2Bpbnt9P2Z1bmN0aW9uKCl7dmFyIGU9ITEsdD17fSxvO3RyeXtvPW4oT2JqZWN0LnByb3RvdHlwZSxgX19wcm90b19fYCxgc2V0YCksbyh0LFtdKSxlPXQgaW5zdGFuY2VvZiBBcnJheX1jYXRjaHt9cmV0dXJuIGZ1bmN0aW9uKHQsbil7cmV0dXJuIGkodCksYShuKSxyKHQpJiYoZT9vKHQsbik6dC5fX3Byb3RvX189biksdH19KCk6dm9pZCAwKX0pKSxjdD1zKCgoZSx0KT0+e3ZhciBuPSRlKCkscj1tKCksaT1mKCksYT1UKCksbz1FKCkscz1yZSgpLGM9dHQoKSxsPVAoKSx1PW1lKCksZD1TZSgpLHA9S2UoKSxoPU8oKSxnPXJ0KCksXz1zdCgpLHY9YWUoKSx5PWllKCksYj1iZSgpLHg9Yi5lbmZvcmNlLFM9Yi5nZXQsQz1pLkludDhBcnJheSx3PUMmJkMucHJvdG90eXBlLEQ9aS5VaW50OENsYW1wZWRBcnJheSxrPUQmJkQucHJvdG90eXBlLEE9QyYmZyhDKSxqPXcmJmcodyksTT1PYmplY3QucHJvdG90eXBlLE49aS5UeXBlRXJyb3IsRj12KGB0b1N0cmluZ1RhZ2ApLGVlPXkoYFRZUEVEX0FSUkFZX1RBR2ApLEk9YFR5cGVkQXJyYXlDb25zdHJ1Y3RvcmAsTD1uJiYhIV8mJmMoaS5vcGVyYSkhPT1gT3BlcmFgLFI9ITEseix0ZSxuZSxvZT17SW50OEFycmF5OjEsVWludDhBcnJheToxLFVpbnQ4Q2xhbXBlZEFycmF5OjEsSW50MTZBcnJheToyLFVpbnQxNkFycmF5OjIsSW50MzJBcnJheTo0LFVpbnQzMkFycmF5OjQsRmxvYXQzMkFycmF5OjQsRmxvYXQ2NEFycmF5Ojh9LHNlPXtCaWdJbnQ2NEFycmF5OjgsQmlnVWludDY0QXJyYXk6OH0sY2U9ZnVuY3Rpb24oZSl7aWYoIW8oZSkpcmV0dXJuITE7dmFyIHQ9YyhlKTtyZXR1cm4gdD09PWBEYXRhVmlld2B8fHMob2UsdCl8fHMoc2UsdCl9LGxlPWZ1bmN0aW9uKGUpe3ZhciB0PWcoZSk7aWYobyh0KSl7dmFyIG49Uyh0KTtyZXR1cm4gbiYmcyhuLEkpP25bSV06bGUodCl9fSx1ZT1mdW5jdGlvbihlKXtpZighbyhlKSlyZXR1cm4hMTt2YXIgdD1jKGUpO3JldHVybiBzKG9lLHQpfHxzKHNlLHQpfSxkZT1mdW5jdGlvbihlKXtpZih1ZShlKSlyZXR1cm4gZTt0aHJvdyBuZXcgTihgVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5YCl9LGZlPWZ1bmN0aW9uKGUpe2lmKGEoZSkmJighX3x8aChBLGUpKSlyZXR1cm4gZTt0aHJvdyBuZXcgTihsKGUpK2AgaXMgbm90IGEgdHlwZWQgYXJyYXkgY29uc3RydWN0b3JgKX0scGU9ZnVuY3Rpb24oZSx0LG4sYSl7aWYocil7aWYobilmb3IodmFyIG8gaW4gb2Upe3ZhciBjPWlbb107aWYoYyYmcyhjLnByb3RvdHlwZSxlKSl0cnl7ZGVsZXRlIGMucHJvdG90eXBlW2VdfWNhdGNoe3RyeXtjLnByb3RvdHlwZVtlXT10fWNhdGNoe319fSghaltlXXx8bikmJmQoaixlLG4/dDpMJiZ3W2VdfHx0LGEpfX0saGU9ZnVuY3Rpb24oZSx0LG4pe3ZhciBhLG87aWYocil7aWYoXyl7aWYobil7Zm9yKGEgaW4gb2UpaWYobz1pW2FdLG8mJnMobyxlKSl0cnl7ZGVsZXRlIG9bZV19Y2F0Y2h7fX1pZighQVtlXXx8bil0cnl7cmV0dXJuIGQoQSxlLG4/dDpMJiZBW2VdfHx0KX1jYXRjaHt9ZWxzZSByZXR1cm59Zm9yKGEgaW4gb2Upbz1pW2FdLG8mJighb1tlXXx8bikmJmQobyxlLHQpfX07Zm9yKHogaW4gb2UpdGU9aVt6XSxuZT10ZSYmdGUucHJvdG90eXBlLG5lP3gobmUpW0ldPXRlOkw9ITE7Zm9yKHogaW4gc2UpdGU9aVt6XSxuZT10ZSYmdGUucHJvdG90eXBlLG5lJiYoeChuZSlbSV09dGUpO2lmKCghTHx8IWEoQSl8fEE9PT1GdW5jdGlvbi5wcm90b3R5cGUpJiYoQT1mdW5jdGlvbigpe3Rocm93IG5ldyBOKGBJbmNvcnJlY3QgaW52b2NhdGlvbmApfSxMKSlmb3IoeiBpbiBvZSlpW3pdJiZfKGlbel0sQSk7aWYoKCFMfHwhanx8aj09PU0pJiYoaj1BLnByb3RvdHlwZSxMKSlmb3IoeiBpbiBvZSlpW3pdJiZfKGlbel0ucHJvdG90eXBlLGopO2lmKEwmJmcoaykhPT1qJiZfKGssaiksciYmIXMoaixGKSlmb3IoeiBpbiBSPSEwLHAoaixGLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8odGhpcyk/dGhpc1tlZV06dm9pZCAwfX0pLG9lKWlbel0mJnUoaVt6XSxlZSx6KTt0LmV4cG9ydHM9e05BVElWRV9BUlJBWV9CVUZGRVJfVklFV1M6TCxUWVBFRF9BUlJBWV9UQUc6UiYmZWUsYVR5cGVkQXJyYXk6ZGUsYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpmZSxleHBvcnRUeXBlZEFycmF5TWV0aG9kOnBlLGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q6aGUsZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yOmxlLGlzVmlldzpjZSxpc1R5cGVkQXJyYXk6dWUsVHlwZWRBcnJheTpBLFR5cGVkQXJyYXlQcm90b3R5cGU6an19KSksbHQ9cygoKGUsdCk9Pnt2YXIgbj13ZSgpLHI9UmFuZ2VFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9bihlKTtpZih0PDApdGhyb3cgbmV3IHIoYFRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMGApO3JldHVybiB0fX0pKSx1dD1zKCgoZSx0KT0+e3ZhciBuPWx0KCkscj1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBpPW4oZSk7aWYoaSV0KXRocm93IG5ldyByKGBXcm9uZyBvZmZzZXRgKTtyZXR1cm4gaX19KSksZHQ9ZigpLGZ0PWcoKSxwdD1jdCgpLG10PURlKCksaHQ9dXQoKSxndD1uZSgpLF90PXAoKSx2dD1kdC5SYW5nZUVycm9yLHl0PWR0LkludDhBcnJheSxidD15dCYmeXQucHJvdG90eXBlLHh0PWJ0JiZidC5zZXQsU3Q9cHQuYVR5cGVkQXJyYXksQ3Q9cHQuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCx3dD0hX3QoZnVuY3Rpb24oKXt2YXIgZT1uZXcgVWludDhDbGFtcGVkQXJyYXkoMik7cmV0dXJuIGZ0KHh0LGUse2xlbmd0aDoxLDA6M30sMSksZVsxXSE9PTN9KSxUdD13dCYmcHQuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyYmX3QoZnVuY3Rpb24oKXt2YXIgZT1uZXcgeXQoMik7cmV0dXJuIGUuc2V0KDEpLGUuc2V0KGAyYCwxKSxlWzBdIT09MHx8ZVsxXSE9PTJ9KTtDdChgc2V0YCxmdW5jdGlvbihlKXtTdCh0aGlzKTt2YXIgdD1odChhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwxKSxuPWd0KGUpO2lmKHd0KXJldHVybiBmdCh4dCx0aGlzLG4sdCk7dmFyIHI9dGhpcy5sZW5ndGgsaT1tdChuKSxhPTA7aWYoaSt0PnIpdGhyb3cgbmV3IHZ0KGBXcm9uZyBsZW5ndGhgKTtmb3IoO2E8aTspdGhpc1t0K2FdPW5bYSsrXX0sIXd0fHxUdCk7dmFyIEV0PXMoKChlLHQpPT57dmFyIG49aCgpLHI9RnVuY3Rpb24ucHJvdG90eXBlLGk9ci5hcHBseSxhPXIuY2FsbDt0LmV4cG9ydHM9dHlwZW9mIFJlZmxlY3Q9PWBvYmplY3RgJiZSZWZsZWN0LmFwcGx5fHwobj9hLmJpbmQoaSk6ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShpLGFyZ3VtZW50cyl9KX0pKSxEdD1zKCgoZSx0KT0+e3ZhciBuPWIoKSxyPXkoKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYobihlKT09PWBGdW5jdGlvbmApcmV0dXJuIHIoZSl9fSkpLE90PXMoKChlLHQpPT57dmFyIG49RHQoKSxyPUYoKSxpPWgoKSxhPW4obi5iaW5kKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gcihlKSx0PT09dm9pZCAwP2U6aT9hKGUsdCk6ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0LGFyZ3VtZW50cyl9fX0pKSxrdD1zKCgoZSx0KT0+e3QuZXhwb3J0cz15KCkoW10uc2xpY2UpfSkpLEF0PXMoKChlLHQpPT57dmFyIG49VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKGU8dCl0aHJvdyBuZXcgbihgTm90IGVub3VnaCBhcmd1bWVudHNgKTtyZXR1cm4gZX19KSksanQ9cygoKGUsdCk9Pnt2YXIgbj1rKCk7dC5leHBvcnRzPS8oPzppcGFkfGlwaG9uZXxpcG9kKS4qYXBwbGV3ZWJraXQvaS50ZXN0KG4pfSkpLE10PXMoKChlLHQpPT57dmFyIG49ZigpLHI9aygpLGk9YigpLGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHIuc2xpY2UoMCxlLmxlbmd0aCk9PT1lfTt0LmV4cG9ydHM9KGZ1bmN0aW9uKCl7cmV0dXJuIGEoYEJ1bi9gKT9gQlVOYDphKGBDbG91ZGZsYXJlLVdvcmtlcnNgKT9gQ0xPVURGTEFSRWA6YShgRGVuby9gKT9gREVOT2A6YShgTm9kZS5qcy9gKT9gTk9ERWA6bi5CdW4mJnR5cGVvZiBCdW4udmVyc2lvbj09YHN0cmluZ2A/YEJVTmA6bi5EZW5vJiZ0eXBlb2YgRGVuby52ZXJzaW9uPT1gb2JqZWN0YD9gREVOT2A6aShuLnByb2Nlc3MpPT09YHByb2Nlc3NgP2BOT0RFYDpuLndpbmRvdyYmbi5kb2N1bWVudD9gQlJPV1NFUmA6YFJFU1RgfSkoKX0pKSxOdD1zKCgoZSx0KT0+e3QuZXhwb3J0cz1NdCgpPT09YE5PREVgfSkpLFB0PXMoKChlLHQpPT57dmFyIG49ZigpLHI9RXQoKSxpPU90KCksYT1UKCksbz1yZSgpLHM9cCgpLGM9emUoKSxsPWt0KCksdT1jZSgpLGQ9QXQoKSxtPWp0KCksaD1OdCgpLGc9bi5zZXRJbW1lZGlhdGUsXz1uLmNsZWFySW1tZWRpYXRlLHY9bi5wcm9jZXNzLHk9bi5EaXNwYXRjaCxiPW4uRnVuY3Rpb24seD1uLk1lc3NhZ2VDaGFubmVsLFM9bi5TdHJpbmcsQz0wLHc9e30sRT1gb25yZWFkeXN0YXRlY2hhbmdlYCxELE8sayxBO3MoZnVuY3Rpb24oKXtEPW4ubG9jYXRpb259KTt2YXIgaj1mdW5jdGlvbihlKXtpZihvKHcsZSkpe3ZhciB0PXdbZV07ZGVsZXRlIHdbZV0sdCgpfX0sTT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtqKGUpfX0sTj1mdW5jdGlvbihlKXtqKGUuZGF0YSl9LFA9ZnVuY3Rpb24oZSl7bi5wb3N0TWVzc2FnZShTKGUpLEQucHJvdG9jb2wrYC8vYCtELmhvc3QpfTsoIWd8fCFfKSYmKGc9ZnVuY3Rpb24oZSl7ZChhcmd1bWVudHMubGVuZ3RoLDEpO3ZhciB0PWEoZSk/ZTpiKGUpLG49bChhcmd1bWVudHMsMSk7cmV0dXJuIHdbKytDXT1mdW5jdGlvbigpe3IodCx2b2lkIDAsbil9LE8oQyksQ30sXz1mdW5jdGlvbihlKXtkZWxldGUgd1tlXX0saD9PPWZ1bmN0aW9uKGUpe3YubmV4dFRpY2soTShlKSl9OnkmJnkubm93P089ZnVuY3Rpb24oZSl7eS5ub3coTShlKSl9OngmJiFtPyhrPW5ldyB4LEE9ay5wb3J0MixrLnBvcnQxLm9ubWVzc2FnZT1OLE89aShBLnBvc3RNZXNzYWdlLEEpKTpuLmFkZEV2ZW50TGlzdGVuZXImJmEobi5wb3N0TWVzc2FnZSkmJiFuLmltcG9ydFNjcmlwdHMmJkQmJkQucHJvdG9jb2whPT1gZmlsZTpgJiYhcyhQKT8oTz1QLG4uYWRkRXZlbnRMaXN0ZW5lcihgbWVzc2FnZWAsTiwhMSkpOk89RSBpbiB1KGBzY3JpcHRgKT9mdW5jdGlvbihlKXtjLmFwcGVuZENoaWxkKHUoYHNjcmlwdGApKVtFXT1mdW5jdGlvbigpe2MucmVtb3ZlQ2hpbGQodGhpcyksaihlKX19OmZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoTShlKSwwKX0pLHQuZXhwb3J0cz17c2V0OmcsY2xlYXI6X319KSksRnQ9cygoKCk9Pnt2YXIgZT1JZSgpLHQ9ZigpLG49UHQoKS5jbGVhcjtlKHtnbG9iYWw6ITAsYmluZDohMCxlbnVtZXJhYmxlOiEwLGZvcmNlZDp0LmNsZWFySW1tZWRpYXRlIT09bn0se2NsZWFySW1tZWRpYXRlOm59KX0pKSxJdD1zKCgoZSx0KT0+e3ZhciBuPWYoKSxyPUV0KCksaT1UKCksYT1NdCgpLG89aygpLHM9a3QoKSxjPUF0KCksbD1uLkZ1bmN0aW9uLHU9L01TSUUgLlwuLy50ZXN0KG8pfHxhPT09YEJVTmAmJihmdW5jdGlvbigpe3ZhciBlPW4uQnVuLnZlcnNpb24uc3BsaXQoYC5gKTtyZXR1cm4gZS5sZW5ndGg8M3x8ZVswXT09PWAwYCYmKGVbMV08M3x8ZVsxXT09PWAzYCYmZVsyXT09PWAwYCl9KSgpO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPXQ/MjoxO3JldHVybiB1P2Z1bmN0aW9uKGEsbyl7dmFyIHU9Yyhhcmd1bWVudHMubGVuZ3RoLDEpPm4sZD1pKGEpP2E6bChhKSxmPXU/cyhhcmd1bWVudHMsbik6W10scD11P2Z1bmN0aW9uKCl7cihkLHRoaXMsZil9OmQ7cmV0dXJuIHQ/ZShwLG8pOmUocCl9OmV9fSkpLEx0PXMoKCgpPT57dmFyIGU9SWUoKSx0PWYoKSxuPVB0KCkuc2V0LHI9SXQoKSxpPXQuc2V0SW1tZWRpYXRlP3IobiwhMSk6bjtlKHtnbG9iYWw6ITAsYmluZDohMCxlbnVtZXJhYmxlOiEwLGZvcmNlZDp0LnNldEltbWVkaWF0ZSE9PWl9LHtzZXRJbW1lZGlhdGU6aX0pfSkpO0Z0KCksTHQoKSxJZSgpKHt0YXJnZXQ6YE9iamVjdGAsc3RhdDohMH0se2hhc093bjpyZSgpfSkscygoKGUsdCk9PnsoZnVuY3Rpb24obixyKXt0eXBlb2YgZT09YG9iamVjdGAmJnQhPT12b2lkIDA/cigpOnR5cGVvZiBkZWZpbmU9PWBmdW5jdGlvbmAmJmRlZmluZS5hbWQ/ZGVmaW5lKHIpOnIoKX0pKGUsKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt2YXIgdD0hMCxuPSExLHI9bnVsbCxpPXt0ZXh0OiEwLHNlYXJjaDohMCx1cmw6ITAsdGVsOiEwLGVtYWlsOiEwLHBhc3N3b3JkOiEwLG51bWJlcjohMCxkYXRlOiEwLG1vbnRoOiEwLHdlZWs6ITAsdGltZTohMCxkYXRldGltZTohMCwiZGF0ZXRpbWUtbG9jYWwiOiEwfTtmdW5jdGlvbiBhKGUpe3JldHVybiEhKGUmJmUhPT1kb2N1bWVudCYmZS5ub2RlTmFtZSE9PWBIVE1MYCYmZS5ub2RlTmFtZSE9PWBCT0RZYCYmYGNsYXNzTGlzdGBpbiBlJiZgY29udGFpbnNgaW4gZS5jbGFzc0xpc3QpfWZ1bmN0aW9uIG8oZSl7dmFyIHQ9ZS50eXBlLG49ZS50YWdOYW1lO3JldHVybiEhKG49PT1gSU5QVVRgJiZpW3RdJiYhZS5yZWFkT25seXx8bj09PWBURVhUQVJFQWAmJiFlLnJlYWRPbmx5fHxlLmlzQ29udGVudEVkaXRhYmxlKX1mdW5jdGlvbiBzKGUpe2UuY2xhc3NMaXN0LmNvbnRhaW5zKGBmb2N1cy12aXNpYmxlYCl8fChlLmNsYXNzTGlzdC5hZGQoYGZvY3VzLXZpc2libGVgKSxlLnNldEF0dHJpYnV0ZShgZGF0YS1mb2N1cy12aXNpYmxlLWFkZGVkYCxgYCkpfWZ1bmN0aW9uIGMoZSl7ZS5oYXNBdHRyaWJ1dGUoYGRhdGEtZm9jdXMtdmlzaWJsZS1hZGRlZGApJiYoZS5jbGFzc0xpc3QucmVtb3ZlKGBmb2N1cy12aXNpYmxlYCksZS5yZW1vdmVBdHRyaWJ1dGUoYGRhdGEtZm9jdXMtdmlzaWJsZS1hZGRlZGApKX1mdW5jdGlvbiBsKG4pe24ubWV0YUtleXx8bi5hbHRLZXl8fG4uY3RybEtleXx8KGEoZS5hY3RpdmVFbGVtZW50KSYmcyhlLmFjdGl2ZUVsZW1lbnQpLHQ9ITApfWZ1bmN0aW9uIHUoZSl7dD0hMX1mdW5jdGlvbiBkKGUpe2EoZS50YXJnZXQpJiYodHx8byhlLnRhcmdldCkpJiZzKGUudGFyZ2V0KX1mdW5jdGlvbiBmKGUpe2EoZS50YXJnZXQpJiYoZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKGBmb2N1cy12aXNpYmxlYCl8fGUudGFyZ2V0Lmhhc0F0dHJpYnV0ZShgZGF0YS1mb2N1cy12aXNpYmxlLWFkZGVkYCkpJiYobj0hMCx3aW5kb3cuY2xlYXJUaW1lb3V0KHIpLHI9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuPSExfSwxMDApLGMoZS50YXJnZXQpKX1mdW5jdGlvbiBwKGUpe2RvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT09PWBoaWRkZW5gJiYobiYmKHQ9ITApLG0oKSl9ZnVuY3Rpb24gbSgpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoYG1vdXNlbW92ZWAsZyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihgbW91c2Vkb3duYCxnKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGBtb3VzZXVwYCxnKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGBwb2ludGVybW92ZWAsZyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihgcG9pbnRlcmRvd25gLGcpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoYHBvaW50ZXJ1cGAsZyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihgdG91Y2htb3ZlYCxnKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGB0b3VjaHN0YXJ0YCxnKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGB0b3VjaGVuZGAsZyl9ZnVuY3Rpb24gaCgpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoYG1vdXNlbW92ZWAsZyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihgbW91c2Vkb3duYCxnKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGBtb3VzZXVwYCxnKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGBwb2ludGVybW92ZWAsZyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihgcG9pbnRlcmRvd25gLGcpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoYHBvaW50ZXJ1cGAsZyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihgdG91Y2htb3ZlYCxnKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGB0b3VjaHN0YXJ0YCxnKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGB0b3VjaGVuZGAsZyl9ZnVuY3Rpb24gZyhlKXtlLnRhcmdldC5ub2RlTmFtZSYmZS50YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWBodG1sYHx8KHQ9ITEsaCgpKX1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGBrZXlkb3duYCxsLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGBtb3VzZWRvd25gLHUsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoYHBvaW50ZXJkb3duYCx1LCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGB0b3VjaHN0YXJ0YCx1LCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGB2aXNpYmlsaXR5Y2hhbmdlYCxwLCEwKSxtKCksZS5hZGRFdmVudExpc3RlbmVyKGBmb2N1c2AsZCwhMCksZS5hZGRFdmVudExpc3RlbmVyKGBibHVyYCxmLCEwKSxlLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFJiZlLmhvc3Q/ZS5ob3N0LnNldEF0dHJpYnV0ZShgZGF0YS1qcy1mb2N1cy12aXNpYmxlYCxgYCk6ZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfTk9ERSYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKGBqcy1mb2N1cy12aXNpYmxlYCksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZShgZGF0YS1qcy1mb2N1cy12aXNpYmxlYCxgYCkpfWlmKHR5cGVvZiB3aW5kb3c8YHVgJiZ0eXBlb2YgZG9jdW1lbnQ8YHVgKXt3aW5kb3cuYXBwbHlGb2N1c1Zpc2libGVQb2x5ZmlsbD1lO3ZhciB0O3RyeXt0PW5ldyBDdXN0b21FdmVudChgZm9jdXMtdmlzaWJsZS1wb2x5ZmlsbC1yZWFkeWApfWNhdGNoe3Q9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoYEN1c3RvbUV2ZW50YCksdC5pbml0Q3VzdG9tRXZlbnQoYGZvY3VzLXZpc2libGUtcG9seWZpbGwtcmVhZHlgLCExLCExLHt9KX13aW5kb3cuZGlzcGF0Y2hFdmVudCh0KX10eXBlb2YgZG9jdW1lbnQ8YHVgJiZlKGRvY3VtZW50KX0pKX0pKSgpO3ZhciBSdD17YnJlYWRjcnVtYnM6W10saW5pdGlhbFVBQURhdGE6e30scGFnZUtleTpgYCxwYWdlS2V5UmVnZXg6e30scGFnZVBhdGg6YGAscHJldlBhZ2VLZXk6YGAscHJldlBhZ2VQYXRoOmBgfTtmdW5jdGlvbiB6dChlKXtPYmplY3QuYXNzaWduKFJ0LGUpfXZhciBCdD17aXNBY3RpdmU6ITEsdGltZXJJZDpudWxsfTtmdW5jdGlvbiBWdChlKXtCdC50aW1lcklkIT09bnVsbCYmKGNsZWFyVGltZW91dChCdC50aW1lcklkKSxCdC50aW1lcklkPW51bGwpLEJ0LmlzQWN0aXZlPWU+MCxCdC5pc0FjdGl2ZSYmKEJ0LnRpbWVySWQ9c2V0VGltZW91dCgoKT0+e0J0LmlzQWN0aXZlPSExLEJ0LnRpbWVySWQ9bnVsbH0sZSkpfWZ1bmN0aW9uIEh0KCl7cmV0dXJuIEJ0LmlzQWN0aXZlfWZ1bmN0aW9uIFV0KGUsLi4udCl7cmV0dXJuIHQucmVkdWNlKChlLHQpPT5uPT5lKHQobikpLGUpfXZhciBXdD1mdW5jdGlvbihlKXtyZXR1cm4gZS5mYmNsaWQ9YGZiY2xpZGAsZS5nY2xpZD1gZ2NsaWRgLGUubXNjbGtpZD1gbXNjbGtpZGAsZS5wdGNsaWQ9YHB0Y2xpZGAsZS50dGNsaWQ9YHR0Y2xpZGAsZS51dG1fc291cmNlPWB1dG1fc291cmNlYCxlLnV0bV9tZWRpdW09YHV0bV9tZWRpdW1gLGUudXRtX2NhbXBhaWduPWB1dG1fY2FtcGFpZ25gLGUudXRtX3Rlcm09YHV0bV90ZXJtYCxlLnV0bV9jb250ZW50PWB1dG1fY29udGVudGAsZX0oe30pLEd0PWZ1bmN0aW9uKGUpe3JldHVybiBlLmRldmVsb3BtZW50PWBkZXZlbG9wbWVudGAsZS5hbHBoYT1gYWxwaGFgLGUucHJvZHVjdGlvbj1gcHJvZHVjdGlvbmAsZX0oe30pLEt0PWZ1bmN0aW9uKGUpe3JldHVybiBlLmxvdz1gbG93YCxlLmhpZ2g9YGhpZ2hgLGV9KHt9KSxCPWZ1bmN0aW9uKGUpe3JldHVybiBlLmNvdW50PWBjb3VudGAsZS5yYXRlPWByYXRlYCxlLmdhdWdlPWBnYXVnZWAsZS5kaXN0cmlidXRpb249YGRpc3RyaWJ1dGlvbmAsZS5oaXN0b2dyYW09YGhpc3RvZ3JhbWAsZX0oe30pLHF0PWZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbW1lcmNlX21lcmNoYW50PWBjb21tZXJjZV9tZXJjaGFudGAsZS5kZXZpY2U9YGRldmljZWAsZS5lZHBfZmluZ2VycHJpbnRfaWQ9YGVkcF9maW5nZXJwcmludF9pZGAsZS5uZnRfdXNlcj1gbmZ0X3VzZXJgLGUudXNlcj1gdXNlcmAsZS53YWxsZXRfdXNlcj1gd2FsbGV0X3VzZXJgLGUudXVpZD1gdXNlcl91dWlkYCxlLmN1c3RvbT1gY3VzdG9tYCxlfSh7fSksVj1mdW5jdGlvbihlKXtyZXR1cm4gZS51bmtub3duPWB1bmtub3duYCxlLmFwcD1gYXBwYCxlLmFwaT1gYXBpYCxlLmJhbm5lcj1gYmFubmVyYCxlLmJ1dHRvbj1gYnV0dG9uYCxlLmNhcmQ9YGNhcmRgLGUuY2hhcnQ9YGNoYXJ0YCxlLmNoZWNrYm94PWBjaGVja2JveGAsZS5jb250ZW50X3NjcmlwdD1gY29udGVudF9zY3JpcHRgLGUuZHJvcGRvd249YGRyb3Bkb3duYCxlLmljb249YGljb25gLGUubGluaz1gbGlua2AsZS5tb2RhbD1gbW9kYWxgLGUubnVtcGFkPWBudW1wYWRgLGUucGFnZT1gcGFnZWAsZS5zaWRlYmFyPWBzaWRlYmFyYCxlLnNlYXJjaF9iYXI9YHNlYXJjaF9iYXJgLGUuc2VydmljZV93b3JrZXI9YHNlcnZpY2Vfd29ya2VyYCxlLnN3aXRjaD1gc3dpdGNoYCxlLnRhYmxlPWB0YWJsZWAsZS50ZXh0PWB0ZXh0YCxlLnRleHRfaW5wdXQ9YHRleHRfaW5wdXRgLGUudHJheT1gdHJheWAsZX0oe30pLEg9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudW5rbm93bj1gdW5rbm93bmAsZS5hcGk9YGFwaWAsZS5ibHVyPWBibHVyYCxlLmNhbmNlbD1gY2FuY2VsYCxlLmNsaWNrPWBjbGlja2AsZS5jaGFuZ2U9YGNoYW5nZWAsZS5kaXNtaXNzPWBkaXNtaXNzYCxlLmZvY3VzPWBmb2N1c2AsZS5ob3Zlcj1gaG92ZXJgLGUua2V5UHJlc3M9YGtleVByZXNzYCxlLm1lYXN1cmVtZW50PWBtZWFzdXJlbWVudGAsZS5tb3ZlPWBtb3ZlYCxlLnByb2Nlc3M9YHByb2Nlc3NgLGUucmVuZGVyPWByZW5kZXJgLGUuc2VhcmNoPWBzZWFyY2hgLGUuc2VsZWN0PWBzZWxlY3RgLGUuc3VibWl0PWBzdWJtaXRgLGUuc2Nyb2xsPWBzY3JvbGxgLGUudmlldz1gdmlld2AsZX0oe30pLEp0PWZ1bmN0aW9uKGUpe3JldHVybiBlLnVua25vd249YHVua25vd25gLGUud2ViPWB3ZWJgLGUuYW5kcm9pZD1gYW5kcm9pZGAsZS5pb3M9YGlvc2AsZS5tb2JpbGVfd2ViPWBtb2JpbGVfd2ViYCxlLnRhYmxldF93ZWI9YHRhYmxldF93ZWJgLGUuc2VydmVyPWBzZXJ2ZXJgLGUud2luZG93cz1gd2luZG93c2AsZS5tYWNvcz1gbWFjb3NgLGUuZXh0ZW5zaW9uPWBleHRlbnNpb25gLGV9KHt9KSxZdD1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLm5vdExvZ2dlZEluPTBdPWBub3RMb2dnZWRJbmAsZVtlLmxvZ2dlZEluPTFdPWBsb2dnZWRJbmAsZX0oe30pLFh0PWZ1bmN0aW9uKGUpe3JldHVybiBlLmFjPWBhY2AsZS5hZj1gYWZgLGUuYWg9YGFoYCxlLmFsPWBhbGAsZS5hbT1gYW1gLGUuYXI9YGFyYCxlLmFzPWBhc2AsZX0oe30pLFp0PWZ1bmN0aW9uKGUpe3JldHVybiBlLnB2PWBwdmAsZX0oe30pLFF0PWZ1bmN0aW9uKGUpe3JldHVybiBlLnhzPWB4c2AsZS5zPWBzYCxlLm09YG1gLGUubD1gbGAsZS54bD1geGxgLGUueHhsPWB4eGxgLGV9KHt9KSwkdD1gaHR0cHM6Ly9hbmFseXRpY3Mtc2VydmljZS1kZXYuY2JocS5uZXRgLGVuPWBodHRwczovL2FzLmNvaW5iYXNlLmNvbWAsdG49YGh0dHBzOi8vYW5hbHl0aWNzLXNlcnZpY2UtaW50ZXJuYWwtZGV2LmNiaHEubmV0YCxubj1gaHR0cHM6Ly9hbmFseXRpY3Mtc2VydmljZS1pbnRlcm5hbC5jYmhxLm5ldGAscm49YC9hbXBgLGFuPWAvbWV0cmljc2Asb249YC90cmFjay1leHBvc3VyZXNgLHNuPWAvdHJhY2VzYCxjbj1gL2xvZy1zdGF0ZW1lbnRgLGxuPWAxMi4xNi4wYCx1bj01KjFlMyxkbj1gYW5hbHl0aWNzLWRiYCxmbj1gZXhwZXJpbWVudC1leHBvc3VyZS1kYmAscG49YGtleXZhbC1zdG9yZWAsbW49YEFuYWx5dGljcyBTREs6YCxobj0xODAwKjFlMyxnbj1PYmplY3QudmFsdWVzKFd0KSxfbj1gcGFnZXZpZXdgLHZuPWBzZXNzaW9uX2R1cmF0aW9uYCx5bj17bmF2aWdhdGlvblRpbWluZzp7ZXZlbnROYW1lOmBwZXJmX25hdmlnYXRpb25fdGltaW5nYH0scmVkaXJlY3RUaW1lOntldmVudE5hbWU6YHBlcmZfcmVkaXJlY3RfdGltZWB9LFJUOntldmVudE5hbWU6YHBlcmZfcmVkaXJlY3RfdGltZWB9LFRURkI6e2V2ZW50TmFtZTpgcGVyZl90aW1lX3RvX2ZpcnN0X2J5dGVgfSxuZXR3b3JrSW5mb3JtYXRpb246e2V2ZW50TmFtZTpgcGVyZl9uZXR3b3JrX2luZm9ybWF0aW9uYH0sc3RvcmFnZUVzdGltYXRlOntldmVudE5hbWU6YHBlcmZfc3RvcmFnZV9lc3RpbWF0ZWB9LEZDUDp7ZXZlbnROYW1lOmBwZXJmX2ZpcnN0X2NvbnRlbnRmdWxfcGFpbnRgfSxGSUQ6e2V2ZW50TmFtZTpgcGVyZl9maXJzdF9pbnB1dF9kZWxheWB9LExDUDp7ZXZlbnROYW1lOmBwZXJmX2xhcmdlc3RfY29udGVudGZ1bF9wYWludGB9LENMUzp7ZXZlbnROYW1lOmBwZXJmX2N1bXVsYXRpdmVfbGF5b3V0X3NoaWZ0YH0sVEJUOntldmVudE5hbWU6YHBlcmZfdG90YWxfYmxvY2tpbmdfdGltZWB9LE5UQlQ6e2V2ZW50TmFtZTpgcGVyZl9uYXZpZ2F0aW9uX3RvdGFsX2Jsb2NraW5nX3RpbWVgfSxJTlA6e2V2ZW50TmFtZTpgcGVyZl9pbnRlcmFjdF90b19uZXh0X3BhaW50YH0sRVQ6e2V2ZW50TmFtZTpgcGVyZl9lbGVtZW50X3RpbWluZ2B9LHVzZXJKb3VybmV5U3RlcDp7ZXZlbnROYW1lOmBwZXJmX3VzZXJfam91cm5leV9zdGVwYH19LGJuPVtgYWNjZXNzX3Rva2VuYCxgcmVmcmVzaF90b2tlbmAsYHJlc2V0X3Rva2VuYF07ZnVuY3Rpb24geG4oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBTbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj94bihPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7Q24oZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6eG4oT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIENuKGUsdCxuKXtyZXR1cm4odD13bih0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiB3bihlKXt2YXIgdD1UbihlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBUbihlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfXZhciBFbj0vXihodHRwcz86XC9cLykvLERuPWBodHRwczovL2A7ZnVuY3Rpb24gT24oZSl7cmV0dXJue2V2ZW50c0VuZHBvaW50OmUrcm4sbWV0cmljc0VuZFBvaW50OmUrYW4sZXhwb3N1cmVFbmRwb2ludDplK29uLHRyYWNlc0VuZHBvaW50OmUrc24sc3RhdGVtZW50c0VuZHBvaW50OmUrY259fXZhciBVPVNuKFNuKHthdXRoQ29va2llOmBsb2dnZWRfaW5gLGFtcGxpdHVkZUFwaUtleTpgYCxiYXRjaEV2ZW50c1BlcmlvZDp1bixiYXRjaEV2ZW50c1RocmVzaG9sZDozMCxiYXRjaE1ldHJpY3NQZXJpb2Q6dW4sYmF0Y2hNZXRyaWNzVGhyZXNob2xkOjMwLGJhdGNoVHJhY2VzUGVyaW9kOnVuLGJhdGNoVHJhY2VzVGhyZXNob2xkOjMwLGJhdGNoU3RhdGVtZW50c1BlcmlvZDp1bixiYXRjaFN0YXRlbWVudHNUaHJlc2hvbGQ6MzAsaGVhZGVyczp7fSxpbnRlcmFjdGlvbk1hbmFnZXI6bnVsbCxpc0Fsd2F5c0F1dGhlZDohMSxpc1Byb2Q6ITEsaXNJbnRlcm5hbEFwcGxpY2F0aW9uOiExLG9uRXJyb3I6KGUsdCk9Pntjb25zb2xlLmVycm9yKG1uLGUsdCl9LHBsYXRmb3JtOkp0LnVua25vd24scHJvamVjdE5hbWU6YGAscmljVGltZW91dFNjaGVkdWxlRXZlbnQ6MWUzLHJpY1RpbWVvdXRTZXREZXZpY2U6NTAwLHNob3dEZWJ1Z0xvZ2dpbmc6ITEsdHJhY2tVc2VySWQ6ITEsdmVyc2lvbjpudWxsLGFwaUVuZHBvaW50OiR0fSxPbigkdCkpLHt9LHtzdGVwczp7fSxkaXNhYmxlUmVwb3J0aW5nOiExLHJlbGVhc2VTdGFnZTpHdC5kZXZlbG9wbWVudCxzdGF0ZW1lbnRzU2FtcGxlUmF0ZTouMSxwYWdlTG9hZFdpbmRvd01zOjFlNCxtZXRyaWNzRmx1c2hJbnRlcnZhbE1zOjFlM30pO2Z1bmN0aW9uIGtuKGUpe3JldHVybiBlLmFwaUVuZHBvaW50P0VuLnRlc3QoZS5hcGlFbmRwb2ludCk/ZS5hcGlFbmRwb2ludDpgJHtEbn0ke2UuYXBpRW5kcG9pbnR9YDplLmlzSW50ZXJuYWxBcHBsaWNhdGlvbj9ubjplbn12YXIgQW49ZT0+e2lmKCFlLmlzUHJvZClyZXR1cm4gZS5pc0ludGVybmFsQXBwbGljYXRpb24/KGUuYXBpRW5kcG9pbnQ9dG4sU24oU24oe30sZSksT24oZS5hcGlFbmRwb2ludCkpKTplO2xldCB0PWtuKGUpO3JldHVybiBTbihTbih7fSxlKSx7fSx7YXBpRW5kcG9pbnQ6dH0sT24odCkpfTtmdW5jdGlvbiBqbihlKXtsZXQgdD1lLnJldm9rZWRRdWVyeVBhcmFtcz9lLnJldm9rZWRRdWVyeVBhcmFtczpbXTtyZXR1cm4gU24oU24oe30sZSkse30se3Jldm9rZWRRdWVyeVBhcmFtczpibi5jb25jYXQodCl9KX1mdW5jdGlvbiBNbihlKXtyZXR1cm4gZS5kaXNhYmxlUmVwb3J0aW5nJiZPYmplY3QuYXNzaWduKGUsU24oU24oe30sZSkse30se29uRXJyb3I6KCk9Pnt9fSkpLFNuKHt9LGUpfXZhciBObj1VdChBbixqbixNbik7ZnVuY3Rpb24gUG4oZSl7bGV0IHQ9W2UuYmF0Y2hFdmVudHNUaHJlc2hvbGQsZS5iYXRjaE1ldHJpY3NUaHJlc2hvbGQsZS5iYXRjaFRyYWNlc1RocmVzaG9sZF07Zm9yKGxldCBlIG9mIHQpaWYoKGU/PzApPjMwKXtjb25zb2xlLndhcm4oYFlvdSBhcmUgc2V0dGluZyB0aGUgdGhyZXNoaG9sZCBmb3IgdGhlIGJhdGNoIGxpbWl0IHRvIGJlIGdyZWF0ZXIgdGhhbiAzMC4gVGhpcyBtYXkgY2F1c2UgcmVxdWVzdCBvdmVybG9hZC5gKTticmVha31PYmplY3QuYXNzaWduKFUsTm4oZSkpfXZhciBGbj17Y29sb3I6YHJnYig1LDE3NywxMDUpYCxmb250U2l6ZToxMX07ZnVuY3Rpb24gSW4oZSl7bGV0IHQ9ZS5tZXRyaWNOYW1lLG49ZS5kYXRhLHI9ZS5pbXBvcnRhbmNlPz9LdC5sb3c7aWYoIVUuc2hvd0RlYnVnTG9nZ2luZ3x8IWNvbnNvbGUpcmV0dXJuO2xldCBpPWAlYyAke21ufWAsYT1gY29sb3I6JHtGbi5jb2xvcn07Zm9udC1zaXplOiR7Rm4uZm9udFNpemV9cHg7YCxvPWBJbXBvcnRhbmNlOiAke3J9YDtjb25zb2xlLmdyb3VwKGksYSx0LG8pLEFycmF5LmlzQXJyYXkobikmJm4uZm9yRWFjaChlPT57ZSYmdHlwZW9mIGU9PWBvYmplY3RgJiZgZXZlbnRfdHlwZWBpbiBlP2NvbnNvbGUubG9nKGUuZXZlbnRfdHlwZSxlKTpjb25zb2xlLmxvZyhlKX0pLGNvbnNvbGUuZ3JvdXBFbmQoKX1mdW5jdGlvbiBMbihlKXtsZXQgdD1lLm1ldHJpY05hbWUsbj1lLmRhdGEscj1lLmltcG9ydGFuY2U/P0t0LmxvdztpZighVS5zaG93RGVidWdMb2dnaW5nfHwhY29uc29sZSlyZXR1cm47bGV0IGk9YGNvbG9yOiR7Rm4uY29sb3J9O2ZvbnQtc2l6ZToke0ZuLmZvbnRTaXplfXB4O2AsYT1gJWMgJHttbn1gLG89YEltcG9ydGFuY2U6ICR7cn1gO2NvbnNvbGUubG9nKGEsaSx0LG4sbyl9dmFyIFJuPShlLHQpPT50LnNvbWUodD0+ZSBpbnN0YW5jZW9mIHQpLHpuLEJuO2Z1bmN0aW9uIFZuKCl7cmV0dXJuIHpufHwoem49W0lEQkRhdGFiYXNlLElEQk9iamVjdFN0b3JlLElEQkluZGV4LElEQkN1cnNvcixJREJUcmFuc2FjdGlvbl0pfWZ1bmN0aW9uIEhuKCl7cmV0dXJuIEJufHwoQm49W0lEQkN1cnNvci5wcm90b3R5cGUuYWR2YW5jZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWVQcmltYXJ5S2V5XSl9dmFyIFVuPW5ldyBXZWFrTWFwLFduPW5ldyBXZWFrTWFwLEduPW5ldyBXZWFrTWFwLEtuPW5ldyBXZWFrTWFwLHFuPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEpuKGUpe2xldCB0PW5ldyBQcm9taXNlKCh0LG4pPT57bGV0IHI9KCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoYHN1Y2Nlc3NgLGkpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgZXJyb3JgLGEpfSxpPSgpPT57dChlcihlLnJlc3VsdCkpLHIoKX0sYT0oKT0+e24oZS5lcnJvcikscigpfTtlLmFkZEV2ZW50TGlzdGVuZXIoYHN1Y2Nlc3NgLGkpLGUuYWRkRXZlbnRMaXN0ZW5lcihgZXJyb3JgLGEpfSk7cmV0dXJuIHQudGhlbih0PT57dCBpbnN0YW5jZW9mIElEQkN1cnNvciYmVW4uc2V0KHQsZSl9KS5jYXRjaCgoKT0+e30pLHFuLnNldCh0LGUpLHR9ZnVuY3Rpb24gWW4oZSl7aWYoV24uaGFzKGUpKXJldHVybjtsZXQgdD1uZXcgUHJvbWlzZSgodCxuKT0+e2xldCByPSgpPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKGBjb21wbGV0ZWAsaSksZS5yZW1vdmVFdmVudExpc3RlbmVyKGBlcnJvcmAsYSksZS5yZW1vdmVFdmVudExpc3RlbmVyKGBhYm9ydGAsYSl9LGk9KCk9Pnt0KCkscigpfSxhPSgpPT57bihlLmVycm9yfHxuZXcgRE9NRXhjZXB0aW9uKGBBYm9ydEVycm9yYCxgQWJvcnRFcnJvcmApKSxyKCl9O2UuYWRkRXZlbnRMaXN0ZW5lcihgY29tcGxldGVgLGkpLGUuYWRkRXZlbnRMaXN0ZW5lcihgZXJyb3JgLGEpLGUuYWRkRXZlbnRMaXN0ZW5lcihgYWJvcnRgLGEpfSk7V24uc2V0KGUsdCl9dmFyIFhuPXtnZXQoZSx0LG4pe2lmKGUgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbil7aWYodD09PWBkb25lYClyZXR1cm4gV24uZ2V0KGUpO2lmKHQ9PT1gb2JqZWN0U3RvcmVOYW1lc2ApcmV0dXJuIGUub2JqZWN0U3RvcmVOYW1lc3x8R24uZ2V0KGUpO2lmKHQ9PT1gc3RvcmVgKXJldHVybiBuLm9iamVjdFN0b3JlTmFtZXNbMV0/dm9pZCAwOm4ub2JqZWN0U3RvcmUobi5vYmplY3RTdG9yZU5hbWVzWzBdKX1yZXR1cm4gZXIoZVt0XSl9LHNldChlLHQsbil7cmV0dXJuIGVbdF09biwhMH0saGFzKGUsdCl7cmV0dXJuIGUgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmKHQ9PT1gZG9uZWB8fHQ9PT1gc3RvcmVgKT8hMDp0IGluIGV9fTtmdW5jdGlvbiBabihlKXtYbj1lKFhuKX1mdW5jdGlvbiBRbihlKXtyZXR1cm4gZT09PUlEQkRhdGFiYXNlLnByb3RvdHlwZS50cmFuc2FjdGlvbiYmIShgb2JqZWN0U3RvcmVOYW1lc2BpbiBJREJUcmFuc2FjdGlvbi5wcm90b3R5cGUpP2Z1bmN0aW9uKHQsLi4ubil7bGV0IHI9ZS5jYWxsKHRyKHRoaXMpLHQsLi4ubik7cmV0dXJuIEduLnNldChyLHQuc29ydD90LnNvcnQoKTpbdF0pLGVyKHIpfTpIbigpLmluY2x1ZGVzKGUpP2Z1bmN0aW9uKC4uLnQpe3JldHVybiBlLmFwcGx5KHRyKHRoaXMpLHQpLGVyKFVuLmdldCh0aGlzKSl9OmZ1bmN0aW9uKC4uLnQpe3JldHVybiBlcihlLmFwcGx5KHRyKHRoaXMpLHQpKX19ZnVuY3Rpb24gJG4oZSl7cmV0dXJuIHR5cGVvZiBlPT1gZnVuY3Rpb25gP1FuKGUpOihlIGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24mJlluKGUpLFJuKGUsVm4oKSk/bmV3IFByb3h5KGUsWG4pOmUpfWZ1bmN0aW9uIGVyKGUpe2lmKGUgaW5zdGFuY2VvZiBJREJSZXF1ZXN0KXJldHVybiBKbihlKTtpZihLbi5oYXMoZSkpcmV0dXJuIEtuLmdldChlKTtsZXQgdD0kbihlKTtyZXR1cm4gdCE9PWUmJihLbi5zZXQoZSx0KSxxbi5zZXQodCxlKSksdH12YXIgdHI9ZT0+cW4uZ2V0KGUpO2Z1bmN0aW9uIG5yKGUsdCx7YmxvY2tlZDpuLHVwZ3JhZGU6cixibG9ja2luZzppLHRlcm1pbmF0ZWQ6YX09e30pe2xldCBvPWluZGV4ZWREQi5vcGVuKGUsdCkscz1lcihvKTtyZXR1cm4gciYmby5hZGRFdmVudExpc3RlbmVyKGB1cGdyYWRlbmVlZGVkYCxlPT57cihlcihvLnJlc3VsdCksZS5vbGRWZXJzaW9uLGUubmV3VmVyc2lvbixlcihvLnRyYW5zYWN0aW9uKSxlKX0pLG4mJm8uYWRkRXZlbnRMaXN0ZW5lcihgYmxvY2tlZGAsZT0+bihlLm9sZFZlcnNpb24sZS5uZXdWZXJzaW9uLGUpKSxzLnRoZW4oZT0+e2EmJmUuYWRkRXZlbnRMaXN0ZW5lcihgY2xvc2VgLCgpPT5hKCkpLGkmJmUuYWRkRXZlbnRMaXN0ZW5lcihgdmVyc2lvbmNoYW5nZWAsZT0+aShlLm9sZFZlcnNpb24sZS5uZXdWZXJzaW9uLGUpKX0pLmNhdGNoKCgpPT57fSksc312YXIgcnI9W2BnZXRgLGBnZXRLZXlgLGBnZXRBbGxgLGBnZXRBbGxLZXlzYCxgY291bnRgXSxpcj1bYHB1dGAsYGFkZGAsYGRlbGV0ZWAsYGNsZWFyYF0sYXI9bmV3IE1hcDtmdW5jdGlvbiBvcihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIElEQkRhdGFiYXNlJiYhKHQgaW4gZSkmJnR5cGVvZiB0PT1gc3RyaW5nYCkpcmV0dXJuO2lmKGFyLmdldCh0KSlyZXR1cm4gYXIuZ2V0KHQpO2xldCBuPXQucmVwbGFjZSgvRnJvbUluZGV4JC8sYGApLHI9dCE9PW4saT1pci5pbmNsdWRlcyhuKTtpZighKG4gaW4ocj9JREJJbmRleDpJREJPYmplY3RTdG9yZSkucHJvdG90eXBlKXx8IShpfHxyci5pbmNsdWRlcyhuKSkpcmV0dXJuO2xldCBhPWFzeW5jIGZ1bmN0aW9uKGUsLi4udCl7bGV0IGE9dGhpcy50cmFuc2FjdGlvbihlLGk/YHJlYWR3cml0ZWA6YHJlYWRvbmx5YCksbz1hLnN0b3JlO3JldHVybiByJiYobz1vLmluZGV4KHQuc2hpZnQoKSkpLChhd2FpdCBQcm9taXNlLmFsbChbb1tuXSguLi50KSxpJiZhLmRvbmVdKSlbMF19O3JldHVybiBhci5zZXQodCxhKSxhfVpuKGU9Pih7Li4uZSxnZXQ6KHQsbixyKT0+b3IodCxuKXx8ZS5nZXQodCxuLHIpLGhhczoodCxuKT0+ISFvcih0LG4pfHxlLmhhcyh0LG4pfSkpO3ZhciBzcj17aXNSZWFkeTohMSxpZGJLZXl2YWw6bnVsbH07ZnVuY3Rpb24gY3IoZSl7T2JqZWN0LmFzc2lnbihzcixlKX12YXIgbHI9W0p0LndlYixKdC5tb2JpbGVfd2ViLEp0LnRhYmxldF93ZWJdLHVyPXtwaG9uZTozNjAscGhvbmVMYW5kc2NhcGU6NTYwLHRhYmxldDo3NjgsdGFibGV0TGFuZHNjYXBlOjEwMjQsZGVza3RvcDoxMjgwLGRlc2t0b3BMYXJnZToxNDQwLGV4dHJhV2lkZToxNjAwfTtmdW5jdGlvbiBkcigpe3JldHVybiBVLnBsYXRmb3JtPT09YGFuZHJvaWRgfWZ1bmN0aW9uIGZyKCl7cmV0dXJuIFUucGxhdGZvcm09PT1gaW9zYH1mdW5jdGlvbiBwcigpe3JldHVybiB3aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogJHt1ci5waG9uZUxhbmRzY2FwZX1weClgKS5tYXRjaGVzfWZ1bmN0aW9uIG1yKCl7cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKGAobWF4LXdpZHRoOiAke3VyLnRhYmxldExhbmRzY2FwZX1weCwgbWluLXdpZHRoOiAke3VyLnBob25lTGFuZHNjYXBlKzF9cHgpYCkubWF0Y2hlc31mdW5jdGlvbiBocigpe3JldHVybiBsci5pbmNsdWRlcyhVLnBsYXRmb3JtKX1mdW5jdGlvbiBncigpe2xldCBlPXt9O3JldHVybntnZXQ6YXN5bmMgdD0+UHJvbWlzZS5yZXNvbHZlKGVbdF0pLHNldDphc3luYyh0LG4pPT4oZVt0XT1uLFByb21pc2UucmVzb2x2ZSh0KSksZGVsZXRlOmFzeW5jIHQ9PihkZWxldGUgZVt0XSxQcm9taXNlLnJlc29sdmUoKSksa2V5czphc3luYygpPT5Qcm9taXNlLnJlc29sdmUoT2JqZWN0LmtleXMoZSkpfX1hc3luYyBmdW5jdGlvbiBfcigpe2xldCBlO3RyeXt2YXIgdDtpZihocigpJiYodD13aW5kb3cpIT1udWxsJiZ0LmluZGV4ZWREQil7bGV0IHQ9YXdhaXQgbnIocG4sMSx7dXBncmFkZShlKXtlLmNyZWF0ZU9iamVjdFN0b3JlKGBrZXl2YWxgKX19KTtlPXthc3luYyBnZXQoZSl7cmV0dXJuIHQuZ2V0KGBrZXl2YWxgLGUpfSxhc3luYyBzZXQoZSxuKXtyZXR1cm4gdC5wdXQoYGtleXZhbGAsbixlKX0sYXN5bmMgZGVsZXRlKGUpe3JldHVybiB0LmRlbGV0ZShga2V5dmFsYCxlKX0sYXN5bmMga2V5cygpe3JldHVybiB0LmdldEFsbEtleXMoYGtleXZhbGApfX19fWNhdGNoKGUpe2xldCB0PWU7VS5vbkVycm9yKHQse3R5cGU6YG9wZW5EQmAsbWVzc2FnZTp0Lm1lc3NhZ2V9KX1lPWU/P2dyKCksY3Ioe2lkYktleXZhbDplfSl9YXN5bmMgZnVuY3Rpb24gdnIoZSl7aWYoIXNyLmlkYktleXZhbClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO3RyeXtyZXR1cm4gYXdhaXQgc3IuaWRiS2V5dmFsLmdldChlKT8/bnVsbH1jYXRjaHtyZXR1cm4gVS5vbkVycm9yKEVycm9yKGBJbmRleGVkREI6R2V0OkludGVybmFsRXJyb3JgKSksUHJvbWlzZS5yZXNvbHZlKG51bGwpfX1hc3luYyBmdW5jdGlvbiB5cihlLHQpe2lmKHNyLmlkYktleXZhbCl0cnl7YXdhaXQgc3IuaWRiS2V5dmFsLnNldChlLHQpfWNhdGNoe1Uub25FcnJvcihFcnJvcihgSW5kZXhlZERCOlNldDpJbnRlcm5hbEVycm9yYCkpfX12YXIgYnIseHIsU3I9e2lzUmVzb3VyY2VUaW1pbmc6ITEsaXNFbGVtZW50VGltaW5nOiExLG1heFRpbWU6M2U0LHJlcG9ydE9wdGlvbnM6e319LENyPWdsb2JhbFRoaXMsd3I9Q3IuY29uc29sZSxUcj1Dci5uYXZpZ2F0b3IsRXI9Q3IucGVyZm9ybWFuY2UsRHI9ZnVuY3Rpb24oKXtyZXR1cm4gVHIuZGV2aWNlTWVtb3J5fSxPcj1mdW5jdGlvbigpe3JldHVybiBUci5oYXJkd2FyZUNvbmN1cnJlbmN5fSxrcj1gbWFyay5gLEFyPWZ1bmN0aW9uKCl7cmV0dXJuIEVyJiYhIUVyLmdldEVudHJpZXNCeVR5cGUmJiEhRXIubm93JiYhIUVyLm1hcmt9LGpyPWA0Z2AsTXI9ITEsTnI9e30sUHI9e3ZhbHVlOjB9LEZyPXt2YWx1ZTp7YmVhY29uOjAsY3NzOjAsZmV0Y2g6MCxpbWc6MCxvdGhlcjowLHNjcmlwdDowLHRvdGFsOjAseG1saHR0cHJlcXVlc3Q6MH19LElyPXt2YWx1ZTowfSxMcj17dmFsdWU6MH0sUnI9e30senI9e2lzSGlkZGVuOiExLGRpZENoYW5nZTohMX0sQnI9ZnVuY3Rpb24oKXt6ci5pc0hpZGRlbj0hMSxkb2N1bWVudC5oaWRkZW4mJih6ci5pc0hpZGRlbj1kb2N1bWVudC5oaWRkZW4senIuZGlkQ2hhbmdlPSEwKX0sVnI9ZnVuY3Rpb24oZSx0KXt0cnl7dmFyIG49bmV3IFBlcmZvcm1hbmNlT2JzZXJ2ZXIoKGZ1bmN0aW9uKGUpe3QoZS5nZXRFbnRyaWVzKCkpfSkpO3JldHVybiBuLm9ic2VydmUoe3R5cGU6ZSxidWZmZXJlZDohMH0pLG59Y2F0Y2goZSl7d3Iud2FybihgUGVyZnVtZS5qczpgLGUpfXJldHVybiBudWxsfSxIcj1mdW5jdGlvbigpe3JldHVybiEhKE9yKCkmJk9yKCk8PTQpfHwhIShEcigpJiZEcigpPD00KX0sVXI9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZWBzbG93LTJnYDpjYXNlYDJnYDpjYXNlYDNnYDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiBIcigpfHx0fX0sV3I9ZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlRmxvYXQoZS50b0ZpeGVkKDQpKX0sR3I9ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlPT1gbnVtYmVyYD9XcihlLzEwMjQqKjIpOm51bGx9LEtyPWZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIGEsbz1mdW5jdGlvbigpe1NyLmFuYWx5dGljc1RyYWNrZXImJih6ci5pc0hpZGRlbiYmIVtgQ0xTYCxgSU5QYF0uaW5jbHVkZXMoZSl8fFNyLmFuYWx5dGljc1RyYWNrZXIoe2F0dHJpYnV0aW9uOnIsbWV0cmljTmFtZTplLGRhdGE6dCxuYXZpZ2F0b3JJbmZvcm1hdGlvbjpUcj97ZGV2aWNlTWVtb3J5OkRyKCl8fDAsaGFyZHdhcmVDb25jdXJyZW5jeTpPcigpfHwwLHNlcnZpY2VXb3JrZXJTdGF0dXM6YHNlcnZpY2VXb3JrZXJgaW4gVHI/VHIuc2VydmljZVdvcmtlci5jb250cm9sbGVyP2Bjb250cm9sbGVkYDpgc3VwcG9ydGVkYDpgdW5zdXBwb3J0ZWRgLGlzTG93RW5kRGV2aWNlOkhyKCksaXNMb3dFbmRFeHBlcmllbmNlOlVyKGpyLE1yKX06e30scmF0aW5nOm4sbmF2aWdhdGlvblR5cGU6aX0pKX07W2BDTFNgLGBJTlBgXS5pbmNsdWRlcyhlKT9vKCk6KGE9byxgcmVxdWVzdElkbGVDYWxsYmFja2BpbiBDcj9Dci5yZXF1ZXN0SWRsZUNhbGxiYWNrKGEse3RpbWVvdXQ6M2UzfSk6YSgpKX0scXI9ZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtpZighKGUubmFtZSE9PWBzZWxmYHx8ZS5zdGFydFRpbWU8UHIudmFsdWUpKXt2YXIgdD1lLmR1cmF0aW9uLTUwO3Q+MCYmKElyLnZhbHVlKz10LExyLnZhbHVlKz10KX19KSl9OyhmdW5jdGlvbihlKXtlLmluc3RhbnQ9YGluc3RhbnRgLGUucXVpY2s9YHF1aWNrYCxlLm1vZGVyYXRlPWBtb2RlcmF0ZWAsZS5zbG93PWBzbG93YCxlLnVuYXZvaWRhYmxlPWB1bmF2b2lkYWJsZWB9KShicnx8KGJyPXt9KSk7dmFyIEpyLFlyLFhyLFpyLFFyLCRyPSgoeHI9e30pW2JyLmluc3RhbnRdPXt2aXRhbHNUaHJlc2hvbGRzOlsxMDAsMjAwXSxtYXhPdXRsaWVyVGhyZXNob2xkOjFlNH0seHJbYnIucXVpY2tdPXt2aXRhbHNUaHJlc2hvbGRzOlsyMDAsNTAwXSxtYXhPdXRsaWVyVGhyZXNob2xkOjFlNH0seHJbYnIubW9kZXJhdGVdPXt2aXRhbHNUaHJlc2hvbGRzOls1MDAsMWUzXSxtYXhPdXRsaWVyVGhyZXNob2xkOjFlNH0seHJbYnIuc2xvd109e3ZpdGFsc1RocmVzaG9sZHM6WzFlMywyZTNdLG1heE91dGxpZXJUaHJlc2hvbGQ6MWU0fSx4cltici51bmF2b2lkYWJsZV09e3ZpdGFsc1RocmVzaG9sZHM6WzJlMyw1ZTNdLG1heE91dGxpZXJUaHJlc2hvbGQ6MmU0fSx4ciksZWk9e1JUOlsxMDAsMjAwXSxUQlQ6WzIwMCw2MDBdLE5UQlQ6WzIwMCw2MDBdfSx0aT1mdW5jdGlvbihlLHQpe3JldHVybiBlaVtlXT90PD1laVtlXVswXT9gZ29vZGA6dDw9ZWlbZV1bMV0/YG5lZWRzSW1wcm92ZW1lbnRgOmBwb29yYDpudWxsfSxuaT1mdW5jdGlvbihlLHQsbil7T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dHlwZW9mIHRbZV09PWBudW1iZXJgJiYodFtlXT1Xcih0W2VdKSl9KSksS3IoZSx0LG51bGwsbnx8e30pfSxyaT1mdW5jdGlvbihlKXt2YXIgdD1lLmF0dHJpYnV0aW9uLG49ZS5uYW1lLHI9ZS5yYXRpbmcsaT1lLnZhbHVlLGE9ZS5uYXZpZ2F0aW9uVHlwZTtuPT09YEZDUGAmJihQci52YWx1ZT1pKSxbYEZDUGAsYExDUGBdLmluY2x1ZGVzKG4pJiYhUnJbMF0mJihSclswXT1WcihgbG9uZ3Rhc2tgLHFyKSksbj09PWBGSURgJiZzZXRUaW1lb3V0KChmdW5jdGlvbigpe3pyLmRpZENoYW5nZXx8KHJpKHthdHRyaWJ1dGlvbjp0LG5hbWU6YFRCVGAscmF0aW5nOnRpKGBUQlRgLElyLnZhbHVlKSx2YWx1ZTpJci52YWx1ZSxuYXZpZ2F0aW9uVHlwZTphfSksbmkoYGRhdGFDb25zdW1wdGlvbmAsRnIudmFsdWUpKX0pLDFlNCk7dmFyIG89V3IoaSk7bzw9U3IubWF4VGltZSYmbz49MCYmS3IobixvLHIsdCxhKX0saWk9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlJiZwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKGBuYXZpZ2F0aW9uYClbMF19LGFpPWZ1bmN0aW9uKGUpe2lmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT1gbG9hZGluZ2ApcmV0dXJuYGxvYWRpbmdgO3ZhciB0PWlpKCk7aWYodCl7aWYoZTx0LmRvbUludGVyYWN0aXZlKXJldHVybmBsb2FkaW5nYDtpZih0LmRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0PT09MHx8ZTx0LmRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0KXJldHVybmBkb20taW50ZXJhY3RpdmVgO2lmKHQuZG9tQ29tcGxldGU9PT0wfHxlPHQuZG9tQ29tcGxldGUpcmV0dXJuYGRvbS1jb250ZW50LWxvYWRlZGB9cmV0dXJuYGNvbXBsZXRlYH0sb2k9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlTmFtZTtyZXR1cm4gZS5ub2RlVHlwZT09PTE/dC50b0xvd2VyQ2FzZSgpOnQudG9VcHBlckNhc2UoKS5yZXBsYWNlKC9eIy8sYGApfSxzaT1mdW5jdGlvbihlLHQpe3ZhciBuPWBgO3RyeXtmb3IoO2UmJmUubm9kZVR5cGUhPT05Oyl7dmFyIHI9ZSxpPXIuaWQ/YCNgK3IuaWQ6b2kocikrKHIuY2xhc3NMaXN0JiZyLmNsYXNzTGlzdC52YWx1ZSYmci5jbGFzc0xpc3QudmFsdWUudHJpbSgpJiZyLmNsYXNzTGlzdC52YWx1ZS50cmltKCkubGVuZ3RoP2AuYCtyLmNsYXNzTGlzdC52YWx1ZS50cmltKCkucmVwbGFjZSgvXHMrL2csYC5gKTpgYCk7aWYobi5sZW5ndGgraS5sZW5ndGg+KHR8fDEwMCktMSlyZXR1cm4gbnx8aTtpZihuPW4/aStgPmArbjppLHIuaWQpYnJlYWs7ZT1yLnBhcmVudE5vZGV9fWNhdGNoe31yZXR1cm4gbn0sY2k9LTEsbGk9ZnVuY3Rpb24oKXtyZXR1cm4gY2l9LHVpPWZ1bmN0aW9uKGUpe2FkZEV2ZW50TGlzdGVuZXIoYHBhZ2VzaG93YCwoZnVuY3Rpb24odCl7dC5wZXJzaXN0ZWQmJihjaT10LnRpbWVTdGFtcCxlKHQpKX0pLCEwKX0sZGk9ZnVuY3Rpb24oKXt2YXIgZT1paSgpO3JldHVybiBlJiZlLmFjdGl2YXRpb25TdGFydHx8MH0sZmk9ZnVuY3Rpb24oZSx0KXt2YXIgbj1paSgpLHI9YG5hdmlnYXRlYDtyZXR1cm4gbGkoKT49MD9yPWBiYWNrLWZvcndhcmQtY2FjaGVgOm4mJihkb2N1bWVudC5wcmVyZW5kZXJpbmd8fGRpKCk+MD9yPWBwcmVyZW5kZXJgOmRvY3VtZW50Lndhc0Rpc2NhcmRlZD9yPWByZXN0b3JlYDpuLnR5cGUmJihyPW4udHlwZS5yZXBsYWNlKC9fL2csYC1gKSkpLHtuYW1lOmUsdmFsdWU6dD09PXZvaWQgMD8tMTp0LHJhdGluZzpgZ29vZGAsZGVsdGE6MCxlbnRyaWVzOltdLGlkOmB2My0ke0RhdGUubm93KCl9LSR7TWF0aC5mbG9vcig4OTk5OTk5OTk5OTk5Kk1hdGgucmFuZG9tKCkpKzB4ZThkNGE1MTAwMH1gLG5hdmlnYXRpb25UeXBlOnJ9fSxwaT1mdW5jdGlvbihlLHQsbil7dHJ5e2lmKFBlcmZvcm1hbmNlT2JzZXJ2ZXIuc3VwcG9ydGVkRW50cnlUeXBlcy5pbmNsdWRlcyhlKSl7dmFyIHI9bmV3IFBlcmZvcm1hbmNlT2JzZXJ2ZXIoKGZ1bmN0aW9uKGUpe1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7dChlLmdldEVudHJpZXMoKSl9KSl9KSk7cmV0dXJuIHIub2JzZXJ2ZShPYmplY3QuYXNzaWduKHt0eXBlOmUsYnVmZmVyZWQ6ITB9LG58fHt9KSkscn19Y2F0Y2h7fX0sbWk9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGksYTtyZXR1cm4gZnVuY3Rpb24obyl7dC52YWx1ZT49MCYmKG98fHIpJiYoKGE9dC52YWx1ZS0oaXx8MCkpfHxpPT09dm9pZCAwKSYmKGk9dC52YWx1ZSx0LmRlbHRhPWEsdC5yYXRpbmc9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT50WzFdP2Bwb29yYDplPnRbMF0/YG5lZWRzLWltcHJvdmVtZW50YDpgZ29vZGB9KHQudmFsdWUsbiksZSh0KSl9fSxoaT1mdW5jdGlvbihlKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7cmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtyZXR1cm4gZSgpfSkpfSkpfSxnaT1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbih0KXt0LnR5cGUhPT1gcGFnZWhpZGVgJiZkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUhPT1gaGlkZGVuYHx8ZSh0KX07YWRkRXZlbnRMaXN0ZW5lcihgdmlzaWJpbGl0eWNoYW5nZWAsdCwhMCksYWRkRXZlbnRMaXN0ZW5lcihgcGFnZWhpZGVgLHQsITApfSxfaT1mdW5jdGlvbihlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24obil7dHx8KGUobiksdD0hMCl9fSx2aT0tMSx5aT1mdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUhPT1gaGlkZGVuYHx8ZG9jdW1lbnQucHJlcmVuZGVyaW5nPzEvMDowfSxiaT1mdW5jdGlvbihlKXtkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT1gaGlkZGVuYCYmdmk+LTEmJih2aT1lLnR5cGU9PT1gdmlzaWJpbGl0eWNoYW5nZWA/ZS50aW1lU3RhbXA6MCxTaSgpKX0seGk9ZnVuY3Rpb24oKXthZGRFdmVudExpc3RlbmVyKGB2aXNpYmlsaXR5Y2hhbmdlYCxiaSwhMCksYWRkRXZlbnRMaXN0ZW5lcihgcHJlcmVuZGVyaW5nY2hhbmdlYCxiaSwhMCl9LFNpPWZ1bmN0aW9uKCl7cmVtb3ZlRXZlbnRMaXN0ZW5lcihgdmlzaWJpbGl0eWNoYW5nZWAsYmksITApLHJlbW92ZUV2ZW50TGlzdGVuZXIoYHByZXJlbmRlcmluZ2NoYW5nZWAsYmksITApfSxDaT1mdW5jdGlvbigpe3JldHVybiB2aTwwJiYodmk9eWkoKSx4aSgpLHVpKChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dmk9eWkoKSx4aSgpfSksMCl9KSkpLHtnZXQgZmlyc3RIaWRkZW5UaW1lKCl7cmV0dXJuIHZpfX19LHdpPWZ1bmN0aW9uKGUpe2RvY3VtZW50LnByZXJlbmRlcmluZz9hZGRFdmVudExpc3RlbmVyKGBwcmVyZW5kZXJpbmdjaGFuZ2VgLChmdW5jdGlvbigpe3JldHVybiBlKCl9KSwhMCk6ZSgpfSxUaT1bMTgwMCwzZTNdLEVpPWZ1bmN0aW9uKGUsdCl7dD10fHx7fSx3aSgoZnVuY3Rpb24oKXt2YXIgbixyPUNpKCksaT1maShgRkNQYCksYT1waShgcGFpbnRgLChmdW5jdGlvbihlKXtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UubmFtZT09PWBmaXJzdC1jb250ZW50ZnVsLXBhaW50YCYmKGEuZGlzY29ubmVjdCgpLGUuc3RhcnRUaW1lPHIuZmlyc3RIaWRkZW5UaW1lJiYoaS52YWx1ZT1NYXRoLm1heChlLnN0YXJ0VGltZS1kaSgpLDApLGkuZW50cmllcy5wdXNoKGUpLG4oITApKSl9KSl9KSk7YSYmKG49bWkoZSxpLFRpLHQucmVwb3J0QWxsQ2hhbmdlcyksdWkoKGZ1bmN0aW9uKHIpe2k9ZmkoYEZDUGApLG49bWkoZSxpLFRpLHQucmVwb3J0QWxsQ2hhbmdlcyksaGkoKGZ1bmN0aW9uKCl7aS52YWx1ZT1wZXJmb3JtYW5jZS5ub3coKS1yLnRpbWVTdGFtcCxuKCEwKX0pKX0pKSl9KSl9LERpPVsuMSwuMjVdLE9pPXtwYXNzaXZlOiEwLGNhcHR1cmU6ITB9LGtpPW5ldyBEYXRlLEFpPWZ1bmN0aW9uKGUsdCl7SnJ8fChKcj10LFlyPWUsWHI9bmV3IERhdGUsTmkocmVtb3ZlRXZlbnRMaXN0ZW5lciksamkoKSl9LGppPWZ1bmN0aW9uKCl7aWYoWXI+PTAmJllyPFhyLWtpKXt2YXIgZT17ZW50cnlUeXBlOmBmaXJzdC1pbnB1dGAsbmFtZTpKci50eXBlLHRhcmdldDpKci50YXJnZXQsY2FuY2VsYWJsZTpKci5jYW5jZWxhYmxlLHN0YXJ0VGltZTpKci50aW1lU3RhbXAscHJvY2Vzc2luZ1N0YXJ0OkpyLnRpbWVTdGFtcCtZcn07WnIuZm9yRWFjaCgoZnVuY3Rpb24odCl7dChlKX0pKSxacj1bXX19LE1pPWZ1bmN0aW9uKGUpe2lmKGUuY2FuY2VsYWJsZSl7dmFyIHQ9KGUudGltZVN0YW1wPjB4ZThkNGE1MTAwMD9uZXcgRGF0ZTpwZXJmb3JtYW5jZS5ub3coKSktZS50aW1lU3RhbXA7ZS50eXBlPT1gcG9pbnRlcmRvd25gP2Z1bmN0aW9uKGUsdCl7dmFyIG49ZnVuY3Rpb24oKXtBaShlLHQpLGkoKX0scj1mdW5jdGlvbigpe2koKX0saT1mdW5jdGlvbigpe3JlbW92ZUV2ZW50TGlzdGVuZXIoYHBvaW50ZXJ1cGAsbixPaSkscmVtb3ZlRXZlbnRMaXN0ZW5lcihgcG9pbnRlcmNhbmNlbGAscixPaSl9O2FkZEV2ZW50TGlzdGVuZXIoYHBvaW50ZXJ1cGAsbixPaSksYWRkRXZlbnRMaXN0ZW5lcihgcG9pbnRlcmNhbmNlbGAscixPaSl9KHQsZSk6QWkodCxlKX19LE5pPWZ1bmN0aW9uKGUpe1tgbW91c2Vkb3duYCxga2V5ZG93bmAsYHRvdWNoc3RhcnRgLGBwb2ludGVyZG93bmBdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQsTWksT2kpfSkpfSxQaT1bMTAwLDMwMF0sRmk9ZnVuY3Rpb24oZSx0KXt0PXR8fHt9LHdpKChmdW5jdGlvbigpe3ZhciBuLHI9Q2koKSxpPWZpKGBGSURgKSxhPWZ1bmN0aW9uKGUpe2Uuc3RhcnRUaW1lPHIuZmlyc3RIaWRkZW5UaW1lJiYoaS52YWx1ZT1lLnByb2Nlc3NpbmdTdGFydC1lLnN0YXJ0VGltZSxpLmVudHJpZXMucHVzaChlKSxuKCEwKSl9LG89ZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKGEpfSxzPXBpKGBmaXJzdC1pbnB1dGAsbyk7bj1taShlLGksUGksdC5yZXBvcnRBbGxDaGFuZ2VzKSxzJiZnaShfaSgoZnVuY3Rpb24oKXtvKHMudGFrZVJlY29yZHMoKSkscy5kaXNjb25uZWN0KCl9KSkpLHMmJnVpKChmdW5jdGlvbigpe3ZhciByO2k9ZmkoYEZJRGApLG49bWkoZSxpLFBpLHQucmVwb3J0QWxsQ2hhbmdlcyksWnI9W10sWXI9LTEsSnI9bnVsbCxOaShhZGRFdmVudExpc3RlbmVyKSxyPWEsWnIucHVzaChyKSxqaSgpfSkpfSkpfSxJaT0wLExpPTEvMCxSaT0wLHppPWZ1bmN0aW9uKGUpe2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5pbnRlcmFjdGlvbklkJiYoTGk9TWF0aC5taW4oTGksZS5pbnRlcmFjdGlvbklkKSxSaT1NYXRoLm1heChSaSxlLmludGVyYWN0aW9uSWQpLElpPVJpPyhSaS1MaSkvNysxOjApfSkpfSxCaT1mdW5jdGlvbigpe3JldHVybiBRcj9JaTpwZXJmb3JtYW5jZS5pbnRlcmFjdGlvbkNvdW50fHwwfSxWaT1mdW5jdGlvbigpe2BpbnRlcmFjdGlvbkNvdW50YGluIHBlcmZvcm1hbmNlfHxRcnx8KFFyPXBpKGBldmVudGAsemkse3R5cGU6YGV2ZW50YCxidWZmZXJlZDohMCxkdXJhdGlvblRocmVzaG9sZDowfSkpfSxIaT1bMjAwLDUwMF0sVWk9MCxXaT1mdW5jdGlvbigpe3JldHVybiBCaSgpLVVpfSxHaT1bXSxLaT17fSxxaT1mdW5jdGlvbihlKXt2YXIgdD1HaVtHaS5sZW5ndGgtMV0sbj1LaVtlLmludGVyYWN0aW9uSWRdO2lmKG58fEdpLmxlbmd0aDwxMHx8ZS5kdXJhdGlvbj50LmxhdGVuY3kpe2lmKG4pbi5lbnRyaWVzLnB1c2goZSksbi5sYXRlbmN5PU1hdGgubWF4KG4ubGF0ZW5jeSxlLmR1cmF0aW9uKTtlbHNle3ZhciByPXtpZDplLmludGVyYWN0aW9uSWQsbGF0ZW5jeTplLmR1cmF0aW9uLGVudHJpZXM6W2VdfTtLaVtyLmlkXT1yLEdpLnB1c2gocil9R2kuc29ydCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5sYXRlbmN5LWUubGF0ZW5jeX0pKSxHaS5zcGxpY2UoMTApLmZvckVhY2goKGZ1bmN0aW9uKGUpe2RlbGV0ZSBLaVtlLmlkXX0pKX19LEppPWZ1bmN0aW9uKGUsdCl7KGZ1bmN0aW9uKGUsdCl7dD10fHx7fSx3aSgoZnVuY3Rpb24oKXtWaSgpO3ZhciBuLHI9ZmkoYElOUGApLGk9ZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmludGVyYWN0aW9uSWQmJnFpKGUpLGUuZW50cnlUeXBlPT09YGZpcnN0LWlucHV0YCYmIUdpLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmVudHJpZXMuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIGUuZHVyYXRpb249PT10LmR1cmF0aW9uJiZlLnN0YXJ0VGltZT09PXQuc3RhcnRUaW1lfSkpfSkpJiZxaShlKX0pKTt2YXIgdCxpPSh0PU1hdGgubWluKEdpLmxlbmd0aC0xLE1hdGguZmxvb3IoV2koKS81MCkpLEdpW3RdKTtpJiZpLmxhdGVuY3khPT1yLnZhbHVlJiYoci52YWx1ZT1pLmxhdGVuY3ksci5lbnRyaWVzPWkuZW50cmllcyxuKCkpfSxhPXBpKGBldmVudGAsaSx7ZHVyYXRpb25UaHJlc2hvbGQ6dC5kdXJhdGlvblRocmVzaG9sZD8/NDB9KTtuPW1pKGUscixIaSx0LnJlcG9ydEFsbENoYW5nZXMpLGEmJihgUGVyZm9ybWFuY2VFdmVudFRpbWluZ2BpbiB3aW5kb3cmJmBpbnRlcmFjdGlvbklkYGluIFBlcmZvcm1hbmNlRXZlbnRUaW1pbmcucHJvdG90eXBlJiZhLm9ic2VydmUoe3R5cGU6YGZpcnN0LWlucHV0YCxidWZmZXJlZDohMH0pLGdpKChmdW5jdGlvbigpe2koYS50YWtlUmVjb3JkcygpKSxyLnZhbHVlPDAmJldpKCk+MCYmKHIudmFsdWU9MCxyLmVudHJpZXM9W10pLG4oITApfSkpLHVpKChmdW5jdGlvbigpe0dpPVtdLFVpPUJpKCkscj1maShgSU5QYCksbj1taShlLHIsSGksdC5yZXBvcnRBbGxDaGFuZ2VzKX0pKSl9KSl9KSgoZnVuY3Rpb24odCl7KGZ1bmN0aW9uKGUpe2lmKGUuZW50cmllcy5sZW5ndGgpe3ZhciB0PWUuZW50cmllcy5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiB0LmR1cmF0aW9uLWUuZHVyYXRpb258fHQucHJvY2Vzc2luZ0VuZC10LnByb2Nlc3NpbmdTdGFydC0oZS5wcm9jZXNzaW5nRW5kLWUucHJvY2Vzc2luZ1N0YXJ0KX0pKVswXSxuPWUuZW50cmllcy5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4gZS50YXJnZXR9KSk7ZS5hdHRyaWJ1dGlvbj17ZXZlbnRUYXJnZXQ6c2kobiYmbi50YXJnZXQpLGV2ZW50VHlwZTp0Lm5hbWUsZXZlbnRUaW1lOnQuc3RhcnRUaW1lLGV2ZW50RW50cnk6dCxsb2FkU3RhdGU6YWkodC5zdGFydFRpbWUpfX1lbHNlIGUuYXR0cmlidXRpb249e319KSh0KSxlKHQpfSksdCl9LFlpPVsyNTAwLDRlM10sWGk9e30sWmk9WzgwMCwxODAwXSxRaT1mdW5jdGlvbiBlKHQpe2RvY3VtZW50LnByZXJlbmRlcmluZz93aSgoZnVuY3Rpb24oKXtyZXR1cm4gZSh0KX0pKTpkb2N1bWVudC5yZWFkeVN0YXRlPT09YGNvbXBsZXRlYD9zZXRUaW1lb3V0KHQsMCk6YWRkRXZlbnRMaXN0ZW5lcihgbG9hZGAsKGZ1bmN0aW9uKCl7cmV0dXJuIGUodCl9KSwhMCl9LCRpPWZ1bmN0aW9uKGUsdCl7dD10fHx7fTt2YXIgbj1maShgVFRGQmApLHI9bWkoZSxuLFppLHQucmVwb3J0QWxsQ2hhbmdlcyk7UWkoKGZ1bmN0aW9uKCl7dmFyIGk9aWkoKTtpZihpKXt2YXIgYT1pLnJlc3BvbnNlU3RhcnQ7aWYoYTw9MHx8YT5wZXJmb3JtYW5jZS5ub3coKSlyZXR1cm47bi52YWx1ZT1NYXRoLm1heChhLWRpKCksMCksbi5lbnRyaWVzPVtpXSxyKCEwKSx1aSgoZnVuY3Rpb24oKXtuPWZpKGBUVEZCYCwwKSwocj1taShlLG4sWmksdC5yZXBvcnRBbGxDaGFuZ2VzKSkoITApfSkpfX0pKX0sZWE9ZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmlkZW50aWZpZXImJnJpKHthdHRyaWJ1dGlvbjp7aWRlbnRpZmllcjplLmlkZW50aWZpZXJ9LG5hbWU6YEVUYCxyYXRpbmc6bnVsbCx2YWx1ZTplLnN0YXJ0VGltZX0pfSkpfSx0YT1mdW5jdGlvbihlKXtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2lmKFNyLmlzUmVzb3VyY2VUaW1pbmcmJm5pKGByZXNvdXJjZVRpbWluZ2AsZSksZS5kZWNvZGVkQm9keVNpemUmJmUuaW5pdGlhdG9yVHlwZSl7dmFyIHQ9ZS5kZWNvZGVkQm9keVNpemUvMWUzO0ZyLnZhbHVlW2UuaW5pdGlhdG9yVHlwZV0rPXQsRnIudmFsdWUudG90YWwrPXR9fSkpfSxuYT1mdW5jdGlvbigpeyhmdW5jdGlvbihlLHQpeyRpKChmdW5jdGlvbih0KXsoZnVuY3Rpb24oZSl7aWYoZS5lbnRyaWVzLmxlbmd0aCl7dmFyIHQ9ZS5lbnRyaWVzWzBdLG49dC5hY3RpdmF0aW9uU3RhcnR8fDAscj1NYXRoLm1heCh0LmRvbWFpbkxvb2t1cFN0YXJ0LW4sMCksaT1NYXRoLm1heCh0LmNvbm5lY3RTdGFydC1uLDApLGE9TWF0aC5tYXgodC5yZXF1ZXN0U3RhcnQtbiwwKTtlLmF0dHJpYnV0aW9uPXt3YWl0aW5nVGltZTpyLGRuc1RpbWU6aS1yLGNvbm5lY3Rpb25UaW1lOmEtaSxyZXF1ZXN0VGltZTplLnZhbHVlLWEsbmF2aWdhdGlvbkVudHJ5OnR9fWVsc2UgZS5hdHRyaWJ1dGlvbj17d2FpdGluZ1RpbWU6MCxkbnNUaW1lOjAsY29ubmVjdGlvblRpbWU6MCxyZXF1ZXN0VGltZTowfX0pKHQpLGUodCl9KSx0KX0pKChmdW5jdGlvbihlKXtlLnZhbHVlPjAmJnJpKGUpfSksU3IucmVwb3J0T3B0aW9ucy50dGZiKSxmdW5jdGlvbihlLHQpeyhmdW5jdGlvbihlLHQpe3Q9dHx8e30sRWkoX2koKGZ1bmN0aW9uKCl7dmFyIG4scj1maShgQ0xTYCwwKSxpPTAsYT1bXSxvPWZ1bmN0aW9uKGUpe2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoIWUuaGFkUmVjZW50SW5wdXQpe3ZhciB0PWFbMF0sbj1hW2EubGVuZ3RoLTFdO2kmJmUuc3RhcnRUaW1lLW4uc3RhcnRUaW1lPDFlMyYmZS5zdGFydFRpbWUtdC5zdGFydFRpbWU8NWUzPyhpKz1lLnZhbHVlLGEucHVzaChlKSk6KGk9ZS52YWx1ZSxhPVtlXSl9fSkpLGk+ci52YWx1ZSYmKHIudmFsdWU9aSxyLmVudHJpZXM9YSxuKCkpfSxzPXBpKGBsYXlvdXQtc2hpZnRgLG8pO3MmJihuPW1pKGUscixEaSx0LnJlcG9ydEFsbENoYW5nZXMpLGdpKChmdW5jdGlvbigpe28ocy50YWtlUmVjb3JkcygpKSxuKCEwKX0pKSx1aSgoZnVuY3Rpb24oKXtpPTAscj1maShgQ0xTYCwwKSxuPW1pKGUscixEaSx0LnJlcG9ydEFsbENoYW5nZXMpLGhpKChmdW5jdGlvbigpe3JldHVybiBuKCl9KSl9KSksc2V0VGltZW91dChuLDApKX0pKSl9KSgoZnVuY3Rpb24odCl7KGZ1bmN0aW9uKGUpe2lmKGUuZW50cmllcy5sZW5ndGgpe3ZhciB0PWUuZW50cmllcy5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJmUudmFsdWU+dC52YWx1ZT9lOnR9KSk7aWYodCYmdC5zb3VyY2VzJiZ0LnNvdXJjZXMubGVuZ3RoKXt2YXIgbj0ocj10LnNvdXJjZXMpLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5vZGUmJmUubm9kZS5ub2RlVHlwZT09PTF9KSl8fHJbMF07aWYobilyZXR1cm4gdm9pZChlLmF0dHJpYnV0aW9uPXtsYXJnZXN0U2hpZnRUYXJnZXQ6c2kobi5ub2RlKSxsYXJnZXN0U2hpZnRUaW1lOnQuc3RhcnRUaW1lLGxhcmdlc3RTaGlmdFZhbHVlOnQudmFsdWUsbGFyZ2VzdFNoaWZ0U291cmNlOm4sbGFyZ2VzdFNoaWZ0RW50cnk6dCxsb2FkU3RhdGU6YWkodC5zdGFydFRpbWUpfSl9fXZhciByO2UuYXR0cmlidXRpb249e319KSh0KSxlKHQpfSksdCl9KChmdW5jdGlvbihlKXtyZXR1cm4gcmkoZSl9KSxTci5yZXBvcnRPcHRpb25zLmNscyksZnVuY3Rpb24oZSx0KXtFaSgoZnVuY3Rpb24odCl7KGZ1bmN0aW9uKGUpe2lmKGUuZW50cmllcy5sZW5ndGgpe3ZhciB0PWlpKCksbj1lLmVudHJpZXNbZS5lbnRyaWVzLmxlbmd0aC0xXTtpZih0KXt2YXIgcj10LmFjdGl2YXRpb25TdGFydHx8MCxpPU1hdGgubWF4KDAsdC5yZXNwb25zZVN0YXJ0LXIpO2UuYXR0cmlidXRpb249e3RpbWVUb0ZpcnN0Qnl0ZTppLGZpcnN0Qnl0ZVRvRkNQOmUudmFsdWUtaSxsb2FkU3RhdGU6YWkoZS5lbnRyaWVzWzBdLnN0YXJ0VGltZSksbmF2aWdhdGlvbkVudHJ5OnQsZmNwRW50cnk6bn07cmV0dXJufX1lLmF0dHJpYnV0aW9uPXt0aW1lVG9GaXJzdEJ5dGU6MCxmaXJzdEJ5dGVUb0ZDUDplLnZhbHVlLGxvYWRTdGF0ZTphaShsaSgpKX19KSh0KSxlKHQpfSksdCl9KChmdW5jdGlvbihlKXtyZXR1cm4gcmkoZSl9KSxTci5yZXBvcnRPcHRpb25zLmZjcCksZnVuY3Rpb24oZSx0KXtGaSgoZnVuY3Rpb24odCl7KGZ1bmN0aW9uKGUpe3ZhciB0PWUuZW50cmllc1swXTtlLmF0dHJpYnV0aW9uPXtldmVudFRhcmdldDpzaSh0LnRhcmdldCksZXZlbnRUeXBlOnQubmFtZSxldmVudFRpbWU6dC5zdGFydFRpbWUsZXZlbnRFbnRyeTp0LGxvYWRTdGF0ZTphaSh0LnN0YXJ0VGltZSl9fSkodCksZSh0KX0pLHQpfSgoZnVuY3Rpb24oZSl7cmV0dXJuIHJpKGUpfSksU3IucmVwb3J0T3B0aW9ucy5maWQpLGZ1bmN0aW9uKGUsdCl7KGZ1bmN0aW9uKGUsdCl7dD10fHx7fSx3aSgoZnVuY3Rpb24oKXt2YXIgbixyPUNpKCksaT1maShgTENQYCksYT1mdW5jdGlvbihlKXt2YXIgdD1lW2UubGVuZ3RoLTFdO3QmJnQuc3RhcnRUaW1lPHIuZmlyc3RIaWRkZW5UaW1lJiYoaS52YWx1ZT1NYXRoLm1heCh0LnN0YXJ0VGltZS1kaSgpLDApLGkuZW50cmllcz1bdF0sbigpKX0sbz1waShgbGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50YCxhKTtpZihvKXtuPW1pKGUsaSxZaSx0LnJlcG9ydEFsbENoYW5nZXMpO3ZhciBzPV9pKChmdW5jdGlvbigpe1hpW2kuaWRdfHwoYShvLnRha2VSZWNvcmRzKCkpLG8uZGlzY29ubmVjdCgpLFhpW2kuaWRdPSEwLG4oITApKX0pKTtbYGtleWRvd25gLGBjbGlja2BdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2FkZEV2ZW50TGlzdGVuZXIoZSwoZnVuY3Rpb24oKXtyZXR1cm4gc2V0VGltZW91dChzLDApfSksITApfSkpLGdpKHMpLHVpKChmdW5jdGlvbihyKXtpPWZpKGBMQ1BgKSxuPW1pKGUsaSxZaSx0LnJlcG9ydEFsbENoYW5nZXMpLGhpKChmdW5jdGlvbigpe2kudmFsdWU9cGVyZm9ybWFuY2Uubm93KCktci50aW1lU3RhbXAsWGlbaS5pZF09ITAsbighMCl9KSl9KSl9fSkpfSkoKGZ1bmN0aW9uKHQpeyhmdW5jdGlvbihlKXtpZihlLmVudHJpZXMubGVuZ3RoKXt2YXIgdD1paSgpO2lmKHQpe3ZhciBuPXQuYWN0aXZhdGlvblN0YXJ0fHwwLHI9ZS5lbnRyaWVzW2UuZW50cmllcy5sZW5ndGgtMV0saT1yLnVybCYmcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShgcmVzb3VyY2VgKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT1yLnVybH0pKVswXSxhPU1hdGgubWF4KDAsdC5yZXNwb25zZVN0YXJ0LW4pLG89TWF0aC5tYXgoYSxpPyhpLnJlcXVlc3RTdGFydHx8aS5zdGFydFRpbWUpLW46MCkscz1NYXRoLm1heChvLGk/aS5yZXNwb25zZUVuZC1uOjApLGM9TWF0aC5tYXgocyxyP3Iuc3RhcnRUaW1lLW46MCksbD17ZWxlbWVudDpzaShyLmVsZW1lbnQpLHRpbWVUb0ZpcnN0Qnl0ZTphLHJlc291cmNlTG9hZERlbGF5Om8tYSxyZXNvdXJjZUxvYWRUaW1lOnMtbyxlbGVtZW50UmVuZGVyRGVsYXk6Yy1zLG5hdmlnYXRpb25FbnRyeTp0LGxjcEVudHJ5OnJ9O3IudXJsJiYobC51cmw9ci51cmwpLGkmJihsLmxjcFJlc291cmNlRW50cnk9aSksZS5hdHRyaWJ1dGlvbj1sO3JldHVybn19ZS5hdHRyaWJ1dGlvbj17dGltZVRvRmlyc3RCeXRlOjAscmVzb3VyY2VMb2FkRGVsYXk6MCxyZXNvdXJjZUxvYWRUaW1lOjAsZWxlbWVudFJlbmRlckRlbGF5OmUudmFsdWV9fSkodCksZSh0KX0pLHQpfSgoZnVuY3Rpb24oZSl7cmV0dXJuIHJpKGUpfSksU3IucmVwb3J0T3B0aW9ucy5sY3ApLEppKChmdW5jdGlvbihlKXtyZXR1cm4gcmkoZSl9KSxTci5yZXBvcnRPcHRpb25zLmlucCksU3IuaXNSZXNvdXJjZVRpbWluZyYmVnIoYHJlc291cmNlYCx0YSksU3IuaXNFbGVtZW50VGltaW5nJiZWcihgZWxlbWVudGAsZWEpfSxyYT1mdW5jdGlvbihlKXt2YXIgdD1gdXNhZ2VEZXRhaWxzYGluIGU/ZS51c2FnZURldGFpbHM6e307bmkoYHN0b3JhZ2VFc3RpbWF0ZWAse3F1b3RhOkdyKGUucXVvdGEpLHVzYWdlOkdyKGUudXNhZ2UpLGNhY2hlczpHcih0LmNhY2hlcyksaW5kZXhlZERCOkdyKHQuaW5kZXhlZERCKSxzZXJ2aWNlV29ya2VyOkdyKHQuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMpfSl9LGlhPXtmaW5hbE1hcmtUb1N0ZXBzTWFwOnt9LHN0YXJ0TWFya1RvU3RlcHNNYXA6e30sYWN0aXZlOnt9LG5hdmlnYXRpb25TdGVwczp7fX0sYWE9ZnVuY3Rpb24oZSl7ZGVsZXRlIGlhLmFjdGl2ZVtlXX0sb2E9ZnVuY3Rpb24oKXtpYS5zdGFydE1hcmtUb1N0ZXBzTWFwPXt9LGlhLmZpbmFsTWFya1RvU3RlcHNNYXA9e30saWEuYWN0aXZlPXt9LGlhLm5hdmlnYXRpb25TdGVwcz17fX0sc2E9ZnVuY3Rpb24oKXtyZXR1cm4gaWEubmF2aWdhdGlvblN0ZXBzfSxjYT1mdW5jdGlvbihlKXtyZXR1cm4gc2EoKVtlXT8/e319LGxhPWZ1bmN0aW9uKGUpe2lmKGU9PT12b2lkIDAmJihlPXt9KSxTci5hbmFseXRpY3NUcmFja2VyPWUuYW5hbHl0aWNzVHJhY2tlcixTci5pc1Jlc291cmNlVGltaW5nPSEhZS5yZXNvdXJjZVRpbWluZyxTci5pc0VsZW1lbnRUaW1pbmc9ISFlLmVsZW1lbnRUaW1pbmcsU3IubWF4VGltZT1lLm1heE1lYXN1cmVUaW1lfHxTci5tYXhUaW1lLFNyLnJlcG9ydE9wdGlvbnM9ZS5yZXBvcnRPcHRpb25zfHxTci5yZXBvcnRPcHRpb25zLFNyLnN0ZXBzPWUuc3RlcHMsU3Iub25NYXJrU3RlcD1lLm9uTWFya1N0ZXAsQXIoKSl7YFBlcmZvcm1hbmNlT2JzZXJ2ZXJgaW4gQ3ImJm5hKCksZG9jdW1lbnQuaGlkZGVuIT09dm9pZCAwJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGB2aXNpYmlsaXR5Y2hhbmdlYCxCcik7dmFyIHQ9ZnVuY3Rpb24oKXtpZighQXIoKSlyZXR1cm57fTt2YXIgZT1Fci5nZXRFbnRyaWVzQnlUeXBlKGBuYXZpZ2F0aW9uYClbMF07aWYoIWUpcmV0dXJue307dmFyIHQ9ZS5yZXNwb25zZVN0YXJ0LG49ZS5yZXNwb25zZUVuZDtyZXR1cm57ZmV0Y2hUaW1lOm4tZS5mZXRjaFN0YXJ0LHdvcmtlclRpbWU6ZS53b3JrZXJTdGFydD4wP24tZS53b3JrZXJTdGFydDowLHRvdGFsVGltZTpuLWUucmVxdWVzdFN0YXJ0LGRvd25sb2FkVGltZTpuLXQsdGltZVRvRmlyc3RCeXRlOnQtZS5yZXF1ZXN0U3RhcnQsaGVhZGVyU2l6ZTplLnRyYW5zZmVyU2l6ZS1lLmVuY29kZWRCb2R5U2l6ZXx8MCxkbnNMb29rdXBUaW1lOmUuZG9tYWluTG9va3VwRW5kLWUuZG9tYWluTG9va3VwU3RhcnQscmVkaXJlY3RUaW1lOmUucmVkaXJlY3RFbmQtZS5yZWRpcmVjdFN0YXJ0fX0oKTtuaShgbmF2aWdhdGlvblRpbWluZ2AsdCksdC5yZWRpcmVjdFRpbWUmJnJpKHthdHRyaWJ1dGlvbjp7fSxuYW1lOmBSVGAscmF0aW5nOnRpKGBSVGAsdC5yZWRpcmVjdFRpbWUpLHZhbHVlOnQucmVkaXJlY3RUaW1lfSksbmkoYG5ldHdvcmtJbmZvcm1hdGlvbmAsZnVuY3Rpb24oKXtpZihgY29ubmVjdGlvbmBpbiBUcil7dmFyIGU9VHIuY29ubmVjdGlvbjtyZXR1cm4gdHlwZW9mIGU9PWBvYmplY3RgPyhqcj1lLmVmZmVjdGl2ZVR5cGUsTXI9ISFlLnNhdmVEYXRhLHtkb3dubGluazplLmRvd25saW5rLGVmZmVjdGl2ZVR5cGU6ZS5lZmZlY3RpdmVUeXBlLHJ0dDplLnJ0dCxzYXZlRGF0YTohIWUuc2F2ZURhdGF9KTp7fX1yZXR1cm57fX0oKSksVHImJlRyLnN0b3JhZ2UmJnR5cGVvZiBUci5zdG9yYWdlLmVzdGltYXRlPT1gZnVuY3Rpb25gJiZUci5zdG9yYWdlLmVzdGltYXRlKCkudGhlbihyYSksU3Iuc3RlcHMmJlNyLnN0ZXBzJiYob2EoKSxPYmplY3QuZW50cmllcyhTci5zdGVwcykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQsbj1lWzBdLHI9ZVsxXS5tYXJrcyxpPXJbMF0sYT1yWzFdLG89aWEuc3RhcnRNYXJrVG9TdGVwc01hcFtpXT8/e307aWYob1tuXT0hMCxpYS5zdGFydE1hcmtUb1N0ZXBzTWFwW2ldPW8saWEuZmluYWxNYXJrVG9TdGVwc01hcFthXSl7dmFyIHM9aWEuZmluYWxNYXJrVG9TdGVwc01hcFthXVtpXXx8W107cy5wdXNoKG4pLGlhLmZpbmFsTWFya1RvU3RlcHNNYXBbYV1baV09c31lbHNlIGlhLmZpbmFsTWFya1RvU3RlcHNNYXBbYV09KCh0PXt9KVtpXT1bbl0sdCl9KSkpfX0sdWE9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWBzdGVwLmArZSxpPUVyLmdldEVudHJpZXNCeU5hbWUoa3IrdCkubGVuZ3RoPjA7aWYoRXIuZ2V0RW50cmllc0J5TmFtZShrcituKS5sZW5ndGg+MCYmaSYmU3Iuc3RlcHMmJlNyLnN0ZXBzW2VdKXt2YXIgYT0kcltTci5zdGVwc1tlXS50aHJlc2hvbGRdLG89YS5tYXhPdXRsaWVyVGhyZXNob2xkLHM9YS52aXRhbHNUaHJlc2hvbGRzLGM9RXIubWVhc3VyZShyLGtyK3Qsa3Irbik7aWYoYyl7dmFyIGw9Yy5kdXJhdGlvbjtpZihsPD1vKXt2YXIgdT1mdW5jdGlvbihlLHQpe3JldHVybiBlPD10WzBdP2Bnb29kYDplPD10WzFdP2BuZWVkc0ltcHJvdmVtZW50YDpgcG9vcmB9KGwscyk7bD49MCYmKEtyKGB1c2VySm91cm5leVN0ZXBgLGwsdSx7c3RlcE5hbWU6ZX0sdm9pZCAwKSxFci5tZWFzdXJlKGBzdGVwLiR7ZX1fdml0YWxzXyR7dX1gLHtzdGFydDpjLnN0YXJ0VGltZStjLmR1cmF0aW9uLGVuZDpjLnN0YXJ0VGltZStjLmR1cmF0aW9uLGRldGFpbDp7dHlwZTpgc3RlcFZpdGFsYCxkdXJhdGlvbjpsfX0pKX19fX0sZGE9ZnVuY3Rpb24oKXt2YXIgZT1zYSgpLHQ9aWEuc3RhcnRNYXJrVG9TdGVwc01hcCxuPU9iamVjdC5rZXlzKGUpLmxlbmd0aDtpZihuPT09MClyZXR1cm57fTt2YXIgcj17fSxpPW4tMSxhPWNhKGkpO2lmKE9iamVjdC5rZXlzKGEpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPXRbZV0/P1tdO09iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JbZV09ITB9KSl9KSksbj4xKXt2YXIgbz1jYShpLTEpO09iamVjdC5rZXlzKG8pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPXRbZV0/P1tdO09iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JbZV09ITB9KSl9KSl9cmV0dXJuIHJ9LGZhPWZ1bmN0aW9uKCl7dmFyIGUsdD1PYmplY3Qua2V5cyhpYS5uYXZpZ2F0aW9uU3RlcHMpLmxlbmd0aDtpYS5uYXZpZ2F0aW9uU3RlcHNbdF09e307dmFyIG49ZGEoKTsoZT1Tci5vbk1hcmtTdGVwKT09bnVsbHx8ZS5jYWxsKFNyLGBgLE9iamVjdC5rZXlzKG4pKX0scGE9ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKGksYSl7ZnVuY3Rpb24gbyhlKXt0cnl7YyhyLm5leHQoZSkpfWNhdGNoKGUpe2EoZSl9fWZ1bmN0aW9uIHMoZSl7dHJ5e2Moci50aHJvdyhlKSl9Y2F0Y2goZSl7YShlKX19ZnVuY3Rpb24gYyhlKXt2YXIgdDtlLmRvbmU/aShlLnZhbHVlKToodD1lLnZhbHVlLHQgaW5zdGFuY2VvZiBuP3Q6bmV3IG4oKGZ1bmN0aW9uKGUpe2UodCl9KSkpLnRoZW4obyxzKX1jKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KSl9LG1hPWZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLGEsbz17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZpWzBdKXRocm93IGlbMV07cmV0dXJuIGlbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gYT17bmV4dDpzKDApLHRocm93OnMoMSkscmV0dXJuOnMoMil9LHR5cGVvZiBTeW1ib2w9PWBmdW5jdGlvbmAmJihhW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGE7ZnVuY3Rpb24gcyhhKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKGEpe2lmKG4pdGhyb3cgVHlwZUVycm9yKGBHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuYCk7Zm9yKDtvOyl0cnl7aWYobj0xLHImJihpPTImYVswXT9yLnJldHVybjphWzBdP3IudGhyb3d8fCgoaT1yLnJldHVybikmJmkuY2FsbChyKSwwKTpyLm5leHQpJiYhKGk9aS5jYWxsKHIsYVsxXSkpLmRvbmUpcmV0dXJuIGk7c3dpdGNoKHI9MCxpJiYoYT1bMiZhWzBdLGkudmFsdWVdKSxhWzBdKXtjYXNlIDA6Y2FzZSAxOmk9YTticmVhaztjYXNlIDQ6cmV0dXJuIG8ubGFiZWwrKyx7dmFsdWU6YVsxXSxkb25lOiExfTtjYXNlIDU6by5sYWJlbCsrLHI9YVsxXSxhPVswXTtjb250aW51ZTtjYXNlIDc6YT1vLm9wcy5wb3AoKSxvLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihpPW8udHJ5cywhKChpPWkubGVuZ3RoPjAmJmlbaS5sZW5ndGgtMV0pfHxhWzBdIT09NiYmYVswXSE9PTIpKXtvPTA7Y29udGludWV9aWYoYVswXT09PTMmJighaXx8YVsxXT5pWzBdJiZhWzFdPGlbM10pKXtvLmxhYmVsPWFbMV07YnJlYWt9aWYoYVswXT09PTYmJm8ubGFiZWw8aVsxXSl7by5sYWJlbD1pWzFdLGk9YTticmVha31pZihpJiZvLmxhYmVsPGlbMl0pe28ubGFiZWw9aVsyXSxvLm9wcy5wdXNoKGEpO2JyZWFrfWlbMl0mJm8ub3BzLnBvcCgpLG8udHJ5cy5wb3AoKTtjb250aW51ZX1hPXQuY2FsbChlLG8pfWNhdGNoKGUpe2E9WzYsZV0scj0wfWZpbmFsbHl7bj1pPTB9aWYoNSZhWzBdKXRocm93IGFbMV07cmV0dXJue3ZhbHVlOmFbMF0/YVsxXTp2b2lkIDAsZG9uZTohMH19KFthLHNdKX19fSxoYT1mdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxhLG87aWYoaWEuZmluYWxNYXJrVG9TdGVwc01hcFtlXSl7KGZ1bmN0aW9uKGUpe3ZhciB0PWlhLm5hdmlnYXRpb25TdGVwcyxuPWlhLmZpbmFsTWFya1RvU3RlcHNNYXAscj1PYmplY3Qua2V5cyh0KS5sZW5ndGg7aWYociE9PTApe3ZhciBpPXItMSxhPWNhKGkpO2lmKGEmJm5bZV0pe3ZhciBvPW5bZV07byYmT2JqZWN0LmtleXMobykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoYVtlXSl7dmFyIG49Y2EoaSl8fHt9O25bZV09ITEsdFtpXT1ufWlmKHI+MSl7dmFyIG89aS0xLHM9Y2Eobyk7c1tlXSYmKHNbZV09ITEsdFtvXT1zKX19KSl9fX0pKGUpO3ZhciBzPWlhLmZpbmFsTWFya1RvU3RlcHNNYXBbZV07T2JqZWN0LmtleXMocykuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49c1t0XTtuLmZvckVhY2goYWEpLFByb21pc2UuYWxsKG4ubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gcGEodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7cmV0dXJuIG1hKHRoaXMsKGZ1bmN0aW9uKHIpe3N3aXRjaChyLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdWEobix0LGUpXTtjYXNlIDE6cmV0dXJuIHIuc2VudCgpLFsyXX19KSl9KSl9KSkpLmNhdGNoKChmdW5jdGlvbigpe30pKX0pKX1lbHNlIG49ZSxyPWlhLm5hdmlnYXRpb25TdGVwcyxpPU9iamVjdC5rZXlzKHIpLmxlbmd0aCwobz1jYShhPShpPjA/aToxKS0xKXx8W10pW25dPSEwLHJbYV09byxmdW5jdGlvbihlKXt2YXIgdD1pYS5zdGFydE1hcmtUb1N0ZXBzTWFwW2VdPz9bXTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihlKXtpYS5hY3RpdmVbZV18fChpYS5hY3RpdmVbZV09ITApfSkpfShlKTt2YXIgYz1kYSgpOyh0PVNyLm9uTWFya1N0ZXApPT1udWxsfHx0LmNhbGwoU3IsZSxPYmplY3Qua2V5cyhjKSl9LGdhPWZ1bmN0aW9uKGUpe0FyKCkmJihFci5tYXJrKGtyK2UpLGhhKGUpKX0sX2E9ZnVuY3Rpb24oZSl7QXIoKSYmIU5yW2VdJiYoTnJbZV09ITAsRXIubWFyayhgbWFya18ke2V9X3N0YXJ0YCkpfSx2YT1mdW5jdGlvbihlLHQsbil7aWYodD09PXZvaWQgMCYmKHQ9e30pLG49PT12b2lkIDAmJihuPSEwKSxBcigpJiZOcltlXSl7RXIubWFyayhgbWFya18ke2V9X2VuZGApLGRlbGV0ZSBOcltlXTt2YXIgcj1mdW5jdGlvbihlKXtFci5tZWFzdXJlKGUsYG1hcmtfJHtlfV9zdGFydGAsYG1hcmtfJHtlfV9lbmRgKTt2YXIgdD1Fci5nZXRFbnRyaWVzQnlOYW1lKGUpLnBvcCgpO3JldHVybiB0JiZ0LmVudHJ5VHlwZT09PWBtZWFzdXJlYD90LmR1cmF0aW9uOi0xfShlKTtuJiZuaShlLFdyKHIpLHQpfX0seWE9ZnVuY3Rpb24oZSl7RXIuZ2V0RW50cmllc0J5TmFtZShrcitlKS5sZW5ndGg9PT0wJiYoRXIubWFyayhrcitlKSxoYShlKSl9LGJhPTAseGE9ZnVuY3Rpb24oKXtfYShgbnRidGApLExyLnZhbHVlPTAsY2xlYXJUaW1lb3V0KGJhKSxiYT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3ZhKGBudGJ0YCx7fSwhMSkscmkoe2F0dHJpYnV0aW9uOnt9LG5hbWU6YE5UQlRgLHJhdGluZzp0aShgTlRCVGAsTHIudmFsdWUpLHZhbHVlOkxyLnZhbHVlfSksTHIudmFsdWU9MH0pLDJlMyl9LFNhPXMoKChlLHQpPT57KGZ1bmN0aW9uKG4scil7dmFyIGk9YDEuMC40MWAsYT1gYCxvPWA/YCxzPWBmdW5jdGlvbmAsYz1gdW5kZWZpbmVkYCxsPWBvYmplY3RgLHU9YHN0cmluZ2AsZD1gbWFqb3JgLGY9YG1vZGVsYCxwPWBuYW1lYCxtPWB0eXBlYCxoPWB2ZW5kb3JgLGc9YHZlcnNpb25gLF89YGFyY2hpdGVjdHVyZWAsdj1gY29uc29sZWAseT1gbW9iaWxlYCxiPWB0YWJsZXRgLHg9YHNtYXJ0dHZgLFM9YHdlYXJhYmxlYCxDPWBlbWJlZGRlZGAsdz01MDAsVD1gQW1hem9uYCxFPWBBcHBsZWAsRD1gQVNVU2AsTz1gQmxhY2tCZXJyeWAsaz1gQnJvd3NlcmAsQT1gQ2hyb21lYCxqPWBFZGdlYCxNPWBGaXJlZm94YCxOPWBHb29nbGVgLFA9YEhvbm9yYCxGPWBIdWF3ZWlgLGVlPWBMZW5vdm9gLEk9YExHYCxMPWBNaWNyb3NvZnRgLFI9YE1vdG9yb2xhYCx6PWBOdmlkaWFgLHRlPWBPbmVQbHVzYCxuZT1gT3BlcmFgLHJlPWBPUFBPYCxpZT1gU2Ftc3VuZ2AsYWU9YFNoYXJwYCxvZT1gU29ueWAsc2U9YFhpYW9taWAsY2U9YFplYnJhYCxsZT1gRmFjZWJvb2tgLHVlPWBDaHJvbWl1bSBPU2AsZGU9YE1hYyBPU2AsZmU9YCBCcm93c2VyYCxwZT1mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKXRbcl0mJnRbcl0ubGVuZ3RoJTI9PTA/bltyXT10W3JdLmNvbmNhdChlW3JdKTpuW3JdPWVbcl07cmV0dXJuIG59LG1lPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD17fSxuPTA7bjxlLmxlbmd0aDtuKyspdFtlW25dLnRvVXBwZXJDYXNlKCldPWVbbl07cmV0dXJuIHR9LGhlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR5cGVvZiBlPT09dT9nZSh0KS5pbmRleE9mKGdlKGUpKSE9PS0xOiExfSxnZT1mdW5jdGlvbihlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpfSxfZT1mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGU9PT11P2UucmVwbGFjZSgvW15cZFwuXS9nLGEpLnNwbGl0KGAuYClbMF06cn0sdmU9ZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgZT09PXUpcmV0dXJuIGU9ZS5yZXBsYWNlKC9eXHNccyovLGEpLHR5cGVvZiB0PT09Yz9lOmUuc3Vic3RyaW5nKDAsdyl9LHllPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTAsaSxhLG8sYyx1LGQ7bjx0Lmxlbmd0aCYmIXU7KXt2YXIgZj10W25dLHA9dFtuKzFdO2ZvcihpPWE9MDtpPGYubGVuZ3RoJiYhdSYmZltpXTspaWYodT1mW2krK10uZXhlYyhlKSx1KWZvcihvPTA7bzxwLmxlbmd0aDtvKyspZD11WysrYV0sYz1wW29dLHR5cGVvZiBjPT09bCYmYy5sZW5ndGg+MD9jLmxlbmd0aD09PTI/dHlwZW9mIGNbMV09PXM/dGhpc1tjWzBdXT1jWzFdLmNhbGwodGhpcyxkKTp0aGlzW2NbMF1dPWNbMV06Yy5sZW5ndGg9PT0zP3R5cGVvZiBjWzFdPT09cyYmIShjWzFdLmV4ZWMmJmNbMV0udGVzdCk/dGhpc1tjWzBdXT1kP2NbMV0uY2FsbCh0aGlzLGQsY1syXSk6cjp0aGlzW2NbMF1dPWQ/ZC5yZXBsYWNlKGNbMV0sY1syXSk6cjpjLmxlbmd0aD09PTQmJih0aGlzW2NbMF1dPWQ/Y1szXS5jYWxsKHRoaXMsZC5yZXBsYWNlKGNbMV0sY1syXSkpOnIpOnRoaXNbY109ZHx8cjtuKz0yfX0sYmU9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdClpZih0eXBlb2YgdFtuXT09PWwmJnRbbl0ubGVuZ3RoPjApe2Zvcih2YXIgaT0wO2k8dFtuXS5sZW5ndGg7aSsrKWlmKGhlKHRbbl1baV0sZSkpcmV0dXJuIG49PT1vP3I6bn1lbHNlIGlmKGhlKHRbbl0sZSkpcmV0dXJuIG49PT1vP3I6bjtyZXR1cm4gdC5oYXNPd25Qcm9wZXJ0eShgKmApP3RbYCpgXTplfSx4ZT17IjEuMCI6YC84YCwiMS4yIjpgLzFgLCIxLjMiOmAvM2AsIjIuMCI6YC80MTJgLCIyLjAuMiI6YC80MTZgLCIyLjAuMyI6YC80MTdgLCIyLjAuNCI6YC80MTlgLCI/IjpgL2B9LFNlPXtNRTpgNC45MGAsIk5UIDMuMTEiOmBOVDMuNTFgLCJOVCA0LjAiOmBOVDQuMGAsMmUzOmBOVCA1LjBgLFhQOltgTlQgNS4xYCxgTlQgNS4yYF0sVmlzdGE6YE5UIDYuMGAsNzpgTlQgNi4xYCw4OmBOVCA2LjJgLCI4LjEiOmBOVCA2LjNgLDEwOltgTlQgNi40YCxgTlQgMTAuMGBdLFJUOmBBUk1gfSxDZT17YnJvd3NlcjpbWy9cYig/OmNybW98Y3Jpb3MpXC8oW1x3XC5dKykvaV0sW2csW3AsYENocm9tZWBdXSxbL2VkZyg/OmV8aW9zfGEpP1wvKFtcd1wuXSspL2ldLFtnLFtwLGBFZGdlYF1dLFsvKG9wZXJhIG1pbmkpXC8oWy1cd1wuXSspL2ksLyhvcGVyYSBbbW9iaWxldGFiXXszLDZ9KVxiLit2ZXJzaW9uXC8oWy1cd1wuXSspL2ksLyhvcGVyYSkoPzouK3ZlcnNpb25cL3xbXC8gXSspKFtcd1wuXSspL2ldLFtwLGddLFsvb3Bpb3NbXC8gXSsoW1x3XC5dKykvaV0sW2csW3AsbmUrYCBNaW5pYF1dLFsvXGJvcCg/OnJnKT94XC8oW1x3XC5dKykvaV0sW2csW3AsbmUrYCBHWGBdXSxbL1xib3ByXC8oW1x3XC5dKykvaV0sW2csW3AsbmVdXSxbL1xiYlthaV0qZCg/OnVoZHxbdWJdKlthZWtvcHJzd3hdezUsNn0pW1wvIF0/KFtcd1wuXSspL2ldLFtnLFtwLGBCYWlkdWBdXSxbL1xiKD86bXhicm93c2VyfG14aW9zfG15aWUyKVwvPyhbLVx3XC5dKilcYi9pXSxbZyxbcCxgTWF4dGhvbmBdXSxbLyhraW5kbGUpXC8oW1x3XC5dKykvaSwvKGx1bmFzY2FwZXxtYXh0aG9ufG5ldGZyb250fGphc21pbmV8YmxhemVyfHNsZWlwbmlyKVtcLyBdPyhbXHdcLl0qKS9pLC8oYXZhbnR8aWVtb2JpbGV8c2xpbSg/OmJyb3dzZXJ8Ym9hdHxqZXQpKVtcLyBdPyhbXGRcLl0qKS9pLC8oPzptc3xcKCkoaWUpIChbXHdcLl0rKS9pLC8oZmxvY2t8cm9ja21lbHR8bWlkb3JpfGVwaXBoYW55fHNpbGt8c2t5ZmlyZXxvdmlicm93c2VyfGJvbHR8aXJvbnx2aXZhbGRpfGlyaWRpdW18cGhhbnRvbWpzfGJvd3NlcnxxdXB6aWxsYXxmYWxrb258cmVrb25xfHB1ZmZpbnxicmF2ZXx3aGFsZSg/IS4rbmF2ZXIpfHFxYnJvd3NlcmxpdGV8ZHVja2R1Y2tnb3xrbGFyfGhlbGlvfCg/PWNvbW9kb18pP2RyYWdvbilcLyhbLVx3XC5dKykvaSwvKGhleXRhcHxvdml8MTE1KWJyb3dzZXJcLyhbXGRcLl0rKS9pLC8od2VpYm8pX18oW1xkXC5dKykvaV0sW3AsZ10sWy9xdWFyayg/OnBjKT9cLyhbLVx3XC5dKykvaV0sW2csW3AsYFF1YXJrYF1dLFsvXGJkZGdcLyhbXHdcLl0rKS9pXSxbZyxbcCxgRHVja0R1Y2tHb2BdXSxbLyg/OlxidWM/ID9icm93c2VyfCg/Omp1Yy4rKXVjd2ViKVtcLyBdPyhbXHdcLl0rKS9pXSxbZyxbcCxgVUNgK2tdXSxbL21pY3JvbS4rXGJxYmNvcmVcLyhbXHdcLl0rKS9pLC9cYnFiY29yZVwvKFtcd1wuXSspLittaWNyb20vaSwvbWljcm9tZXNzZW5nZXJcLyhbXHdcLl0rKS9pXSxbZyxbcCxgV2VDaGF0YF1dLFsva29ucXVlcm9yXC8oW1x3XC5dKykvaV0sW2csW3AsYEtvbnF1ZXJvcmBdXSxbL3RyaWRlbnQuK3J2WzogXShbXHdcLl17MSw5fSlcYi4rbGlrZSBnZWNrby9pXSxbZyxbcCxgSUVgXV0sWy95YSg/OnNlYXJjaCk/YnJvd3NlclwvKFtcd1wuXSspL2ldLFtnLFtwLGBZYW5kZXhgXV0sWy9zbGJyb3dzZXJcLyhbXHdcLl0rKS9pXSxbZyxbcCxgU21hcnQgTGVub3ZvIGAra11dLFsvKGF2YXN0fGF2ZylcLyhbXHdcLl0rKS9pXSxbW3AsLyguKykvLGAkMSBTZWN1cmUgYCtrXSxnXSxbL1xiZm9jdXNcLyhbXHdcLl0rKS9pXSxbZyxbcCxNK2AgRm9jdXNgXV0sWy9cYm9wdFwvKFtcd1wuXSspL2ldLFtnLFtwLG5lK2AgVG91Y2hgXV0sWy9jb2NfY29jXHcrXC8oW1x3XC5dKykvaV0sW2csW3AsYENvYyBDb2NgXV0sWy9kb2xmaW5cLyhbXHdcLl0rKS9pXSxbZyxbcCxgRG9scGhpbmBdXSxbL2NvYXN0XC8oW1x3XC5dKykvaV0sW2csW3AsbmUrYCBDb2FzdGBdXSxbL21pdWlicm93c2VyXC8oW1x3XC5dKykvaV0sW2csW3AsYE1JVUlgK2ZlXV0sWy9meGlvc1wvKFtcd1wuLV0rKS9pXSxbZyxbcCxNXV0sWy9cYnFpaG9vYnJvd3NlclwvPyhbXHdcLl0qKS9pXSxbZyxbcCxgMzYwYF1dLFsvXGIocXEpXC8oW1x3XC5dKykvaV0sW1twLC8oLispLyxgJDFCcm93c2VyYF0sZ10sWy8ob2N1bHVzfHNhaWxmaXNofGh1YXdlaXx2aXZvfHBpY28pYnJvd3NlclwvKFtcd1wuXSspL2ldLFtbcCwvKC4rKS8sYCQxYCtmZV0sZ10sWy9zYW1zdW5nYnJvd3NlclwvKFtcd1wuXSspL2ldLFtnLFtwLGllK2AgSW50ZXJuZXRgXV0sWy9tZXRhc3JbXC8gXT8oW1xkXC5dKykvaV0sW2csW3AsYFNvZ291IEV4cGxvcmVyYF1dLFsvKHNvZ291KW1vXHcrXC8oW1xkXC5dKykvaV0sW1twLGBTb2dvdSBNb2JpbGVgXSxnXSxbLyhlbGVjdHJvbilcLyhbXHdcLl0rKSBzYWZhcmkvaSwvKHRlc2xhKSg/OiBxdGNhcmJyb3dzZXJ8XC8oMjBcZFxkXC5bLVx3XC5dKykpL2ksL20/KHFxYnJvd3NlcnwyMzQ1KD89YnJvd3NlcnxjaHJvbWV8ZXhwbG9yZXIpKVx3KltcLyBdP3Y/KFtcd1wuXSspL2ldLFtwLGddLFsvKGxiYnJvd3NlcnxyZWtvbnEpL2ksL1xbKGxpbmtlZGluKWFwcFxdL2ldLFtwXSxbL29tZVwvKFtcd1wuXSspIFx3KiA/KGlyb24pIHNhZi9pLC9vbWVcLyhbXHdcLl0rKS4rcWlodSAoMzYwKVtlc11lL2ldLFtnLHBdLFsvKCg/OmZiYW5cL2ZiaW9zfGZiX2lhYlwvZmI0YSkoPyEuK2ZiYXYpfDtmYmF2XC8oW1x3XC5dKyk7KS9pXSxbW3AsbGVdLGddLFsvKEtsYXJuYSlcLyhbXHdcLl0rKS9pLC8oa2FrYW8oPzp0YWxrfHN0b3J5KSlbXC8gXShbXHdcLl0rKS9pLC8obmF2ZXIpXCguKj8oXGQrXC5bXHdcLl0rKS4qXCkvaSwvKGRhdW0pYXBwc1tcLyBdKFtcd1wuXSspL2ksL3NhZmFyaSAobGluZSlcLyhbXHdcLl0rKS9pLC9cYihsaW5lKVwvKFtcd1wuXSspXC9pYWIvaSwvKGFsaXBheSljbGllbnRcLyhbXHdcLl0rKS9pLC8odHdpdHRlcikoPzphbmR8IGYuK2VcLyhbXHdcLl0rKSkvaSwvKGNocm9taXVtfGluc3RhZ3JhbXxzbmFwY2hhdClbXC8gXShbLVx3XC5dKykvaV0sW3AsZ10sWy9cYmdzYVwvKFtcd1wuXSspIC4qc2FmYXJpXC8vaV0sW2csW3AsYEdTQWBdXSxbL211c2ljYWxfbHkoPzouK2FwcF8/dmVyc2lvblwvfF8pKFtcd1wuXSspL2ldLFtnLFtwLGBUaWtUb2tgXV0sWy9oZWFkbGVzc2Nocm9tZSg/OlwvKFtcd1wuXSspfCApL2ldLFtnLFtwLEErYCBIZWFkbGVzc2BdXSxbLyB3dlwpLisoY2hyb21lKVwvKFtcd1wuXSspL2ldLFtbcCxBK2AgV2ViVmlld2BdLGddLFsvZHJvaWQuKyB2ZXJzaW9uXC8oW1x3XC5dKylcYi4rKD86bW9iaWxlIHNhZmFyaXxzYWZhcmkpL2ldLFtnLFtwLGBBbmRyb2lkIGAra11dLFsvKGNocm9tZXxvbW5pd2VifGFyb3JhfFt0aXplbm9rYV17NX0gP2Jyb3dzZXIpXC92PyhbXHdcLl0rKS9pXSxbcCxnXSxbL3ZlcnNpb25cLyhbXHdcLlwsXSspIC4qbW9iaWxlXC9cdysgKHNhZmFyaSkvaV0sW2csW3AsYE1vYmlsZSBTYWZhcmlgXV0sWy92ZXJzaW9uXC8oW1x3KFwufFwsKV0rKSAuKihtb2JpbGUgP3NhZmFyaXxzYWZhcmkpL2ldLFtnLHBdLFsvd2Via2l0Lis/KG1vYmlsZSA/c2FmYXJpfHNhZmFyaSkoXC9bXHdcLl0rKS9pXSxbcCxbZyxiZSx4ZV1dLFsvKHdlYmtpdHxraHRtbClcLyhbXHdcLl0rKS9pXSxbcCxnXSxbLyhuYXZpZ2F0b3J8bmV0c2NhcGVcZD8pXC8oWy1cd1wuXSspL2ldLFtbcCxgTmV0c2NhcGVgXSxnXSxbLyh3b2x2aWN8bGlicmV3b2xmKVwvKFtcd1wuXSspL2ldLFtwLGddLFsvbW9iaWxlIHZyOyBydjooW1x3XC5dKylcKS4rZmlyZWZveC9pXSxbZyxbcCxNK2AgUmVhbGl0eWBdXSxbL2VraW9oZi4rKGZsb3cpXC8oW1x3XC5dKykvaSwvKHN3aWZ0Zm94KS9pLC8oaWNlZHJhZ29ufGljZXdlYXNlbHxjYW1pbm98Y2hpbWVyYXxmZW5uZWN8bWFlbW8gYnJvd3NlcnxtaW5pbW98Y29ua2Vyb3IpW1wvIF0/KFtcd1wuXCtdKykvaSwvKHNlYW1vbmtleXxrLW1lbGVvbnxpY2VjYXR8aWNlYXBlfGZpcmViaXJkfHBob2VuaXh8cGFsZW1vb258YmFzaWxpc2t8d2F0ZXJmb3gpXC8oWy1cd1wuXSspJC9pLC8oZmlyZWZveClcLyhbXHdcLl0rKS9pLC8obW96aWxsYSlcLyhbXHdcLl0rKSAuK3J2XDouK2dlY2tvXC9cZCsvaSwvKGFtYXlhfGRpbGxvfGRvcmlzfGljYWJ8bGFkeWJpcmR8bHlueHxtb3NhaWN8bmV0c3VyZnxvYmlnb3xwb2xhcmlzfHczbXwoPzpnb3xpY2V8dXApW1wuIF0/YnJvd3NlcilbLVwvIF0/dj8oW1x3XC5dKykvaSwvXGIobGlua3MpIFwoKFtcd1wuXSspL2ldLFtwLFtnLC9fL2csYC5gXV0sWy8oY29iYWx0KVwvKFtcd1wuXSspL2ldLFtwLFtnLC9tYXN0ZXIufGx0cy4vLGBgXV1dLGNwdTpbWy9cYigoYW1kfHh8eDg2Wy1fXT98d293fHdpbik2NClcYi9pXSxbW18sYGFtZDY0YF1dLFsvKGlhMzIoPz07KSkvaSwvXGIoKGlbMzQ2XXx4KTg2KShwYyk/XGIvaV0sW1tfLGBpYTMyYF1dLFsvXGIoYWFyY2g2NHxhcm0odj9bODldZT9sP3xfPzY0KSlcYi9pXSxbW18sYGFybTY0YF1dLFsvXGIoYXJtKHZbNjddKT9odD9uP1tmbF1wPylcYi9pXSxbW18sYGFybWhmYF1dLFsvKCAoY2V8bW9iaWxlKTsgcHBjO3xcL1tcd1wuXSthcm1cYikvaV0sW1tfLGBhcm1gXV0sWy8oKHBwY3xwb3dlcnBjKSg2NCk/KSggbWFjfDt8XCkpL2ldLFtbXywvb3dlci8sYSxnZV1dLFsvIHN1bjRcd1s7XCldL2ldLFtbXyxgc3BhcmNgXV0sWy9cYihhdnIzMnxpYTY0KD89Oyl8NjhrKD89XCkpfFxiYXJtKD89dihbMS03XXxbNS03XTEpbD98O3xlYWJpKXwoaXJpeHxtaXBzfHNwYXJjKSg2NCk/XGJ8cGEtcmlzYykvaV0sW1tfLGdlXV1dLGRldmljZTpbWy9cYihzY2gtaVs4OV0wXGR8c2h3LW0zODBzfHNtLVtwdHhdXHd7Miw0fXxndC1bcG5dXGR7Miw0fXxzZ2gtdDhbNTZdOXxuZXh1cyAxMCkvaV0sW2YsW2gsaWVdLFttLGJdXSxbL1xiKCg/OnNbY2dwXWh8Z3R8c20pLSg/IVtscl0pXHcrfHNjW2ctXT9bXGRdK2E/fGdhbGF4eSBuZXh1cykvaSwvc2Ftc3VuZ1stIF0oKD8hc20tW2xyXSlbLVx3XSspL2ksL3NlYy0oc2doXHcrKS9pXSxbZixbaCxpZV0sW20seV1dLFsvKD86XC98XCgpKGlwKD86aG9uZXxvZClbXHcsIF0qKSg/OlwvfDspL2ldLFtmLFtoLEVdLFttLHldXSxbL1woKGlwYWQpO1stXHdcKSw7IF0rYXBwbGUvaSwvYXBwbGVjb3JlbWVkaWFcL1tcd1wuXSsgXCgoaXBhZCkvaSwvXGIoaXBhZClcZFxkPyxcZFxkP1s7XF1dLitpb3MvaV0sW2YsW2gsRV0sW20sYl1dLFsvKG1hY2ludG9zaCk7L2ldLFtmLFtoLEVdXSxbL1xiKHNoLT9bYWx0dnpdP1xkXGRbYS1la21dPykvaV0sW2YsW2gsYWVdLFttLHldXSxbL1xiKCg/OmJydHxlbG58aGV5Mj98Z2RpfGpkbiktYT9bbG53XTA5fCg/OmFnW3JtXTM/fGpkbjJ8a29iMiktYT9bbHddMFswOV1obikoPzogYnVpfFwpfDspL2ldLFtmLFtoLFBdLFttLGJdXSxbL2hvbm9yKFstXHcgXSspWztcKV0vaV0sW2YsW2gsUF0sW20seV1dLFsvXGIoKD86YWdbcnNdWzIzNTZdP2s/fGJhaFsyMzRdP3xiZ1syb118YnRba3ZdfGNtcnxjcG58ZGJbcnldMj98amRuMnxnb3R8a29iMj9rP3xtb258cGNlfHNjbXxzaHQ/fFt0d11ncnx2cmQpLVthZF0/W2x3XVswMTI1XVswOV1iP3w2MDVod3xiZzItdTAzfCg/OmdlbXxmZHJ8bTJ8cGxlfHQxKS1bN2FdMFsxLTRdW2x1XXx0MS1hMlsxM11bbHddfG1lZGlhcGFkW1x3XC4gXSooPz0gYnVpfFwpKSlcYig/IS4rZFwvcykvaV0sW2YsW2gsRl0sW20sYl1dLFsvKD86aHVhd2VpKShbLVx3IF0rKVs7XCldL2ksL1xiKG5leHVzIDZwfFx3ezIsNH1lPy1bYXR1XT9bbG5dW1xkeF1bMDEyMzU5Y11bYWRuXT8pXGIoPyEuK2RcL3MpL2ldLFtmLFtoLEZdLFttLHldXSxbL29pZFteXCldKzsgKDJbXGRiY117NH0oMTgyfDI4M3xycFx3ezJ9KVtjZ2xdfG0yMTA1azgxYT9jKSg/OiBidWl8XCkpL2ksL1xiKCg/OnJlZCk/bWlbLV8gXT9wYWRbXHctIF0qKSg/OiBidWl8XCkpL2ldLFtbZiwvXy9nLGAgYF0sW2gsc2VdLFttLGJdXSxbL1xiKHBvY29bXHcgXSt8bTJcZHszfWpcZFxkW2Etel17Mn0pKD86IGJ1aXxcKSkvaSwvXGI7IChcdyspIGJ1aWxkXC9obVwxL2ksL1xiKGhtWy1fIF0/bm90ZT9bXyBdPyg/OlxkXHcpPykgYnVpL2ksL1xiKHJlZG1pW1wtXyBdPyg/Om5vdGV8ayk/W1x3XyBdKykoPzogYnVpfFwpKS9pLC9vaWRbXlwpXSs7IChtP1sxMl1bMC0zODldWzAxXVx3ezMsNn1bYy15XSkoIGJ1aXw7IHd2fFwpKS9pLC9cYihtaVstXyBdPyg/OmFcZHxvbmV8b25lW18gXXBsdXN8bm90ZSBsdGV8bWF4fGNjKT9bXyBdPyg/OlxkP1x3PylbXyBdPyg/OnBsdXN8c2V8bGl0ZXxwcm8pPykoPzogYnVpfFwpKS9pLC8gKFtcdyBdKykgbWl1aVwvdj9cZC9pXSxbW2YsL18vZyxgIGBdLFtoLHNlXSxbbSx5XV0sWy87IChcdyspIGJ1aS4rIG9wcG8vaSwvXGIoY3BoWzEyXVxkezN9fHAoPzphZnxjW2FsXXxkXHd8ZVthcl0pW210XVxkMHx4OTAwN3xhMTAxb3ApXGIvaV0sW2YsW2gscmVdLFttLHldXSxbL1xiKG9wZDIoXGR7M31hPykpKD86IGJ1aXxcKSkvaV0sW2YsW2gsYmUse09uZVBsdXM6W2AzMDRgLGA0MDNgLGAyMDNgXSwiKiI6cmV9XSxbbSxiXV0sWy92aXZvIChcdyspKD86IGJ1aXxcKSkvaSwvXGIodlsxMl1cZHszfVx3P1thdF0pKD86IGJ1aXw7KS9pXSxbZixbaCxgVml2b2BdLFttLHldXSxbL1xiKHJteFsxLTNdXGR7M30pKD86IGJ1aXw7fFwpKS9pXSxbZixbaCxgUmVhbG1lYF0sW20seV1dLFsvXGIobWlsZXN0b25lfGRyb2lkKD86WzItNHhdfCAoPzpiaW9uaWN8eDJ8cHJvfHJhenIpKT86PyggNGcpPylcYltcdyBdK2J1aWxkXC8vaSwvXGJtb3QoPzpvcm9sYSk/Wy0gXShcdyopL2ksLygoPzptb3RvKD8hIDM2MClbXHdcKFwpIF0rfHh0XGR7Myw0fXxuZXh1cyA2KSg/PSBidWl8XCkpKS9pXSxbZixbaCxSXSxbbSx5XV0sWy9cYihtejYwXGR8eG9vbVsyIF17MCwyfSkgYnVpbGRcLy9pXSxbZixbaCxSXSxbbSxiXV0sWy8oKD89bGcpP1t2bF1rXC0/XGR7M30pIGJ1aXwgM1wuWy1cdzsgXXsxMH1sZz8tKFswNmN2OV17Myw0fSkvaV0sW2YsW2gsSV0sW20sYl1dLFsvKGxtKD86LT9mMTAwW252XT98LVtcd1wuXSspKD89IGJ1aXxcKSl8bmV4dXMgWzQ1XSkvaSwvXGJsZ1stZTtcLyBdKygoPyFicm93c2VyfG5ldGNhc3R8YW5kcm9pZCB0dnx3YXRjaClcdyspL2ksL1xibGctPyhbXGRcd10rKSBidWkvaV0sW2YsW2gsSV0sW20seV1dLFsvKGlkZWF0YWJbLVx3IF0rfDYwMmx2fGQtNDJhfGExMDFsdnxhMjEwOWF8YTM1MDAtaHZ8c1s1Nl0wMDB8cGItNjUwNVtteV18dGItP3g/XGR7Myw0fSg/OmZbY3VdfHh1fFthdl0pfHl0XGQ/LVtqeF0/XGQrW2xmbXhdKSggYnVpfDt8XCl8XC8pL2ksL2xlbm92byA/KGJbNjhdMFswOF0wLT9baGZdP3x0YWIoPzpbXHctIF0rPyl8dGJbXHctXXs2LDd9KSggYnVpfDt8XCl8XC8pL2ldLFtmLFtoLGVlXSxbbSxiXV0sWy8obm9raWEpICh0WzEyXVswMV0pL2ldLFtoLGYsW20sYl1dLFsvKD86bWFlbW98bm9raWEpLioobjkwMHxsdW1pYSBcZCt8cm0tXGQrKS9pLC9ub2tpYVstXyBdPygoWy1cd1wuIF0qKSkvaV0sW1tmLC9fL2csYCBgXSxbbSx5XSxbaCxgTm9raWFgXV0sWy8ocGl4ZWwgKGN8dGFibGV0KSlcYi9pXSxbZixbaCxOXSxbbSxiXV0sWy9kcm9pZC4rOyAocGl4ZWxbXGRheGwgXXswLDZ9KSg/OiBidWl8XCkpL2ldLFtmLFtoLE5dLFttLHldXSxbL2Ryb2lkLis7IChhP1xkWzAtMl17Mn1zb3xbYy1nXVxkezR9fHNvWy1nbF1cdyt8eHEtYVx3WzQtN11bMTJdKSg/PSBidWl8XCkuK2Nocm9tZVwvKD8hWzEtNl17MCwxfVxkXC4pKS9pXSxbZixbaCxvZV0sW20seV1dLFsvc29ueSB0YWJsZXQgW3BzXS9pLC9cYig/OnNvbnkpP3NncFx3Kyg/OiBidWl8XCkpL2ldLFtbZixgWHBlcmlhIFRhYmxldGBdLFtoLG9lXSxbbSxiXV0sWy8gKGtiMjAwNXxpbjIwWzEyXTV8YmUyMFsxMl1bNTldKVxiL2ksLyg/Om9uZSk/KD86cGx1cyk/IChhXGQwXGRcZCkoPzogYnxcKSkvaV0sW2YsW2gsdGVdLFttLHldXSxbLyhhbGV4YSl3ZWJtL2ksLyhrZlthLXpdezJ9d2l8YWVvKD8hYmMpXHdcdykoIGJ1aXxcKSkvaSwvKGtmW2Etel0rKSggYnVpfFwpKS4rc2lsa1wvL2ldLFtmLFtoLFRdLFttLGJdXSxbLygoPzpzZHxrZilbMDM0OWhpam9yc3R1d10rKSggYnVpfFwpKS4rc2lsa1wvL2ldLFtbZiwvKC4rKS9nLGBGaXJlIFBob25lICQxYF0sW2gsVF0sW20seV1dLFsvKHBsYXlib29rKTtbLVx3XCksOyBdKyhyaW0pL2ldLFtmLGgsW20sYl1dLFsvXGIoKD86YmJbYS1mXXxzdFtodl0pMTAwLVxkKS9pLC9cKGJiMTA7IChcdyspL2ldLFtmLFtoLE9dLFttLHldXSxbLyg/OlxifGFzdXNfKSh0cmFuc2ZvW3ByaW1lIF17NCwxMH0gXHcrfGVlZXBjfHNsaWRlciBcdyt8bmV4dXMgN3xwYWRmb25lfHAwMFtjal0pL2ldLFtmLFtoLERdLFttLGJdXSxbLyAoeltiZXNdNlswMjddWzAxMl1ba21dW2xzXXx6ZW5mb25lIFxkXHc/KVxiL2ldLFtmLFtoLERdLFttLHldXSxbLyhuZXh1cyA5KS9pXSxbZixbaCxgSFRDYF0sW20sYl1dLFsvKGh0YylbLTtfIF17MSwyfShbXHcgXSsoPz1cKXwgYnVpKXxcdyspL2ksLyh6dGUpWy0gXShbXHcgXSs/KSg/OiBidWl8XC98XCkpL2ksLyhhbGNhdGVsfGdlZWtzcGhvbmV8bmV4aWFufHBhbmFzb25pYyg/ISg/Ojt8XC4pKXxzb255KD8hLWJyYSkpWy1fIF0/KFstXHddKikvaV0sW2gsW2YsL18vZyxgIGBdLFttLHldXSxbL2Ryb2lkIFtcd1wuXSs7ICgoPzo4WzE0XTlbMTZdfDkoPzowKD86NDh8NjB8OFswMV0pfDEoPzozWzI3XXw2Nil8Mig/OjZbNjldfDlbNTZdKXw0NjYpKVtncXN3eF0pXHcqKFwpfCBidWkpL2ldLFtmLFtoLGBUQ0xgXSxbbSxiXV0sWy8oaXRlbCkgKChcdyspKS9pXSxbW2gsZ2VdLGYsW20sYmUse3RhYmxldDpbYHAxMDAwMWxgLGB3NzAwMWBdLCIqIjpgbW9iaWxlYH1dXSxbL2Ryb2lkLis7IChbYWJdWzEtN10tP1swMTc4YV1cZFxkPykvaV0sW2YsW2gsYEFjZXJgXSxbbSxiXV0sWy9kcm9pZC4rOyAobVsxLTVdIG5vdGUpIGJ1aS9pLC9cYm16LShbLVx3XXsyLH0pL2ldLFtmLFtoLGBNZWl6dWBdLFttLHldXSxbLzsgKCg/OnBvd2VyICk/YXJtb3IoPzpbXHcgXXswLDh9KSkoPzogYnVpfFwpKS9pXSxbZixbaCxgVWxlZm9uZWBdLFttLHldXSxbLzsgKGVuZXJneSA/XHcrKSg/OiBidWl8XCkpL2ksLzsgZW5lcmdpemVyIChbXHcgXSspKD86IGJ1aXxcKSkvaV0sW2YsW2gsYEVuZXJnaXplcmBdLFttLHldXSxbLzsgY2F0IChiMzUpOy9pLC87IChiMTVxP3xzMjIgZmxpcHxzNDhjfHM2MiBwcm8pKD86IGJ1aXxcKSkvaV0sW2YsW2gsYENhdGBdLFttLHldXSxbLygoPzpuZXcgKT9hbmRyb21heFtcdy0gXSspKD86IGJ1aXxcKSkvaV0sW2YsW2gsYFNtYXJ0ZnJlbmBdLFttLHldXSxbL2Ryb2lkLis7IChhKD86MDE1fDA2WzM1XXwxNDJwPykpL2ldLFtmLFtoLGBOb3RoaW5nYF0sW20seV1dLFsvOyAoeDY3IDVnfHRpa2Vhc3kgXHcrfGFjWzE3ODldXGRcdyspKCBifFwpKS9pLC9hcmNob3MgPyg1fGdhbWVwYWQyP3woW1x3IF0qW3QxNzg5XXxoZWxsbykgP1xkK1tcdyBdKikoIGJ8XCkpL2ldLFtmLFtoLGBBcmNob3NgXSxbbSxiXV0sWy9hcmNob3MgKFtcdyBdKykoIGJ8XCkpL2ksLzsgKGFjWzMtNl1cZFx3ezIsOH0pKCBifFwpKS9pXSxbZixbaCxgQXJjaG9zYF0sW20seV1dLFsvKGltbykgKHRhYiBcdyspL2ksLyhpbmZpbml4KSAoeDExMDFiPykvaV0sW2gsZixbbSxiXV0sWy8oYmxhY2tiZXJyeXxiZW5xfHBhbG0oPz1cLSl8c29ueWVyaWNzc29ufGFjZXJ8YXN1cyg/ISB6ZW53KXxkZWxsfGpvbGxhfG1laXp1fG1vdG9yb2xhfHBvbHl0cm9ufGluZmluaXh8dGVjbm98bWljcm9tYXh8YWR2YW4pWy1fIF0/KFstXHddKikvaSwvOyAoaG1kfGltbykgKFtcdyBdKz8pKD86IGJ1aXxcKSkvaSwvKGhwKSAoW1x3IF0rXHcpL2ksLyhtaWNyb3NvZnQpOyAobHVtaWFbXHcgXSspL2ksLyhsZW5vdm8pWy1fIF0/KFstXHcgXSs/KSg/OiBidWl8XCl8XC8pL2ksLyhvcHBvKSA/KFtcdyBdKykgYnVpL2ldLFtoLGYsW20seV1dLFsvKGtvYm8pXHMoZXJlYWRlcnx0b3VjaCkvaSwvKGhwKS4rKHRvdWNocGFkKD8hLit0YWJsZXQpfHRhYmxldCkvaSwvKGtpbmRsZSlcLyhbXHdcLl0rKS9pLC8obm9vaylbXHcgXStidWlsZFwvKFx3KykvaSwvKGRlbGwpIChzdHJlYVtrcHJcZCBdKltcZGtvXSkvaSwvKGxlWy0gXStwYW4pWy0gXSsoXHd7MSw5fSkgYnVpL2ksLyh0cmluaXR5KVstIF0qKHRcZHszfSkgYnVpL2ksLyhnaWdhc2V0KVstIF0rKHFcd3sxLDl9KSBidWkvaSwvKHZvZGFmb25lKSAoW1x3IF0rKSg/OlwpfCBidWkpL2ldLFtoLGYsW20sYl1dLFsvKHN1cmZhY2UgZHVvKS9pXSxbZixbaCxMXSxbbSxiXV0sWy9kcm9pZCBbXGRcLl0rOyAoZnBcZHU/KSg/OiBifFwpKS9pXSxbZixbaCxgRmFpcnBob25lYF0sW20seV1dLFsvKHUzMDRhYSkvaV0sW2YsW2gsYEFUJlRgXSxbbSx5XV0sWy9cYnNpZS0oXHcqKS9pXSxbZixbaCxgU2llbWVuc2BdLFttLHldXSxbL1xiKHJjdFx3KykgYi9pXSxbZixbaCxgUkNBYF0sW20sYl1dLFsvXGIodmVudWVbXGQgXXsyLDd9KSBiL2ldLFtmLFtoLGBEZWxsYF0sW20sYl1dLFsvXGIocSg/Om12fHRhKVx3KykgYi9pXSxbZixbaCxgVmVyaXpvbmBdLFttLGJdXSxbL1xiKD86YmFybmVzWyYgXStub2JsZSB8Ym5bcnRdKShbXHdcKyBdKikgYi9pXSxbZixbaCxgQmFybmVzICYgTm9ibGVgXSxbbSxiXV0sWy9cYih0bVxkezN9XHcrKSBiL2ldLFtmLFtoLGBOdVZpc2lvbmBdLFttLGJdXSxbL1xiKGs4OCkgYi9pXSxbZixbaCxgWlRFYF0sW20sYl1dLFsvXGIobnhcZHszfWopIGIvaV0sW2YsW2gsYFpURWBdLFttLHldXSxbL1xiKGdlblxkezN9KSBiLis0OWgvaV0sW2YsW2gsYFN3aXNzYF0sW20seV1dLFsvXGIoenVyXGR7M30pIGIvaV0sW2YsW2gsYFN3aXNzYF0sW20sYl1dLFsvXGIoKHpla2kpP3RiLipcYikgYi9pXSxbZixbaCxgWmVraWBdLFttLGJdXSxbL1xiKFt5cl1cZHsyfSkgYi9pLC9cYihkcmFnb25bLSBdK3RvdWNoIHxkdCkoXHd7NX0pIGIvaV0sW1toLGBEcmFnb24gVG91Y2hgXSxmLFttLGJdXSxbL1xiKG5zLT9cd3swLDl9KSBiL2ldLFtmLFtoLGBJbnNpZ25pYWBdLFttLGJdXSxbL1xiKChueGF8bmV4dCktP1x3ezAsOX0pIGIvaV0sW2YsW2gsYE5leHRCb29rYF0sW20sYl1dLFsvXGIoeHRyZW1lXF8pPyh2KDFbMDQ1XXwyWzAxNV18WzM0NjldMHw3WzA1XSkpIGIvaV0sW1toLGBWb2ljZWBdLGYsW20seV1dLFsvXGIobHZ0ZWxcLSk/KHYxWzEyXSkgYi9pXSxbW2gsYEx2VGVsYF0sZixbbSx5XV0sWy9cYihwaC0xKSAvaV0sW2YsW2gsYEVzc2VudGlhbGBdLFttLHldXSxbL1xiKHYoMTAwbWR8NzAwbmF8NzAxMXw5MTdnKS4qXGIpIGIvaV0sW2YsW2gsYEVudml6ZW5gXSxbbSxiXV0sWy9cYih0cmlvWy1cd1wuIF0rKSBiL2ldLFtmLFtoLGBNYWNoU3BlZWRgXSxbbSxiXV0sWy9cYnR1XygxNDkxKSBiL2ldLFtmLFtoLGBSb3RvcmBdLFttLGJdXSxbLygoPzp0ZWdyYW5vdGV8c2hpZWxkIHQoPyEuK2QgdHYpKVtcdy0gXSo/KSg/OiBifFwpKS9pXSxbZixbaCx6XSxbbSxiXV0sWy8oc3ByaW50KSAoXHcrKS9pXSxbaCxmLFttLHldXSxbLyhraW5cLltvbmV0d117M30pL2ldLFtbZiwvXC4vZyxgIGBdLFtoLExdLFttLHldXSxbL2Ryb2lkLis7IChjYzY2NjY/fGV0NVsxNl18bWNbMjM5XVsyM114P3x2YzhbMDNdeD8pXCkvaV0sW2YsW2gsY2VdLFttLGJdXSxbL2Ryb2lkLis7IChlYzMwfHBzMjB8dGNbMi04XVxkW2t4XSlcKS9pXSxbZixbaCxjZV0sW20seV1dLFsvc21hcnQtdHYuKyhzYW1zdW5nKS9pXSxbaCxbbSx4XV0sWy9oYmJ0di4rbWFwbGU7KFxkKykvaV0sW1tmLC9eLyxgU21hcnRUVmBdLFtoLGllXSxbbSx4XV0sWy8obnV4OyBuZXRjYXN0LitzbWFydHR2fGxnIChuZXRjYXN0XC50di0yMDFcZHxhbmRyb2lkIHR2KSkvaV0sW1toLEldLFttLHhdXSxbLyhhcHBsZSkgP3R2L2ldLFtoLFtmLEUrYCBUVmBdLFttLHhdXSxbL2Nya2V5L2ldLFtbZixBK2BjYXN0YF0sW2gsTl0sW20seF1dLFsvZHJvaWQuK2FmdChcdyspKCBidWl8XCkpL2ldLFtmLFtoLFRdLFttLHhdXSxbLyhzaGllbGQgXHcrIHR2KS9pXSxbZixbaCx6XSxbbSx4XV0sWy9cKGR0dltcKTtdLisoYXF1b3MpL2ksLyhhcXVvcy10dltcdyBdKylcKS9pXSxbZixbaCxhZV0sW20seF1dLFsvKGJyYXZpYVtcdyBdKykoIGJ1aXxcKSkvaV0sW2YsW2gsb2VdLFttLHhdXSxbLyhtaSh0dnxib3gpLT9cdyspIGJ1aS9pXSxbZixbaCxzZV0sW20seF1dLFsvSGJidHYuKih0ZWNobmlzYXQpICguKik7L2ldLFtoLGYsW20seF1dLFsvXGIocm9rdSlbXGR4XSpbXClcL10oKD86ZHZwLSk/W1xkXC5dKikvaSwvaGJidHZcL1xkK1wuXGQrXC5cZCsgK1woW1x3XCsgXSo7ICooW1x3XGRdW147XSopOyhbXjtdKikvaV0sW1toLHZlXSxbZix2ZV0sW20seF1dLFsvZHJvaWQuKzsgKFtcdy0gXSspICg/OmFuZHJvaWQgdHZ8c21hcnRbLSBdP3R2KS9pXSxbZixbbSx4XV0sWy9cYihhbmRyb2lkIHR2fHNtYXJ0Wy0gXT90dnxvcGVyYSB0dnx0djsgcnY6KVxiL2ldLFtbbSx4XV0sWy8ob3V5YSkvaSwvKG5pbnRlbmRvKSAoW3dpZHMzdXRjaF0rKS9pXSxbaCxmLFttLHZdXSxbL2Ryb2lkLis7IChzaGllbGQpKCBidWl8XCkpL2ldLFtmLFtoLHpdLFttLHZdXSxbLyhwbGF5c3RhdGlvbiBcdyspL2ldLFtmLFtoLG9lXSxbbSx2XV0sWy9cYih4Ym94KD86IG9uZSk/KD8hOyB4Ym94KSlbXCk7IF0vaV0sW2YsW2gsTF0sW20sdl1dLFsvXGIoc20tW2xyXVxkXGRbMDE1Nl1bZm51d10/cz98Z2VhciBsaXZlKVxiL2ldLFtmLFtoLGllXSxbbSxTXV0sWy8oKHBlYmJsZSkpYXBwL2ksLyhhc3VzfGdvb2dsZXxsZ3xvcHBvKSAoKHBpeGVsIHx6ZW4pP3dhdGNoW1x3IF0qKSggYnVpfFwpKS9pXSxbaCxmLFttLFNdXSxbLyhvdyg/OjE5fDIwKT93ZT9bMS0zXXsxLDN9KS9pXSxbZixbaCxyZV0sW20sU11dLFsvKHdhdGNoKSg/OiA/b3NbLFwvXXxcZCxcZFwvKVtcZFwuXSsvaV0sW2YsW2gsRV0sW20sU11dLFsvKG9wd3dlXGR7M30pL2ldLFtmLFtoLHRlXSxbbSxTXV0sWy8obW90byAzNjApL2ldLFtmLFtoLFJdLFttLFNdXSxbLyhzbWFydHdhdGNoIDMpL2ldLFtmLFtoLG9lXSxbbSxTXV0sWy8oZyB3YXRjaCByKS9pXSxbZixbaCxJXSxbbSxTXV0sWy9kcm9pZC4rOyAod3Q2Mz8wezIsM30pXCkvaV0sW2YsW2gsY2VdLFttLFNdXSxbL2Ryb2lkLis7IChnbGFzcykgXGQvaV0sW2YsW2gsTl0sW20sU11dLFsvKHBpY28pICg0fG5lbzMoPzogbGlua3xwcm8pPykvaV0sW2gsZixbbSxTXV0sWy87IChxdWVzdCggXGR8IHBybyk/KS9pXSxbZixbaCxsZV0sW20sU11dLFsvKHRlc2xhKSg/OiBxdGNhcmJyb3dzZXJ8XC9bLVx3XC5dKykvaV0sW2gsW20sQ11dLFsvKGFlb2JjKVxiL2ldLFtmLFtoLFRdLFttLENdXSxbLyhob21lcG9kKS4rbWFjIG9zL2ldLFtmLFtoLEVdLFttLENdXSxbL3dpbmRvd3MgaW90L2ldLFtbbSxDXV0sWy9kcm9pZCAuKz87IChbXjtdKz8pKD86IGJ1aXw7IHd2XCl8XCkgYXBwbGV3KS4rPyBtb2JpbGUgc2FmYXJpL2ldLFtmLFttLHldXSxbL2Ryb2lkIC4rPzsgKFteO10rPykoPzogYnVpfFwpIGFwcGxldykuKz8oPyEgbW9iaWxlKSBzYWZhcmkvaV0sW2YsW20sYl1dLFsvXGIoKHRhYmxldHx0YWIpWztcL118Zm9jdXNcL1xkKD8hLittb2JpbGUpKS9pXSxbW20sYl1dLFsvKHBob25lfG1vYmlsZSg/Ols7XC9dfCBbIFx3XC9cLl0qc2FmYXJpKXxwZGEoPz0uK3dpbmRvd3MgY2UpKS9pXSxbW20seV1dLFsvZHJvaWQgLis/OyAoW1x3XC4gLV0rKSggYnVpfFwpKS9pXSxbZixbaCxgR2VuZXJpY2BdXV0sZW5naW5lOltbL3dpbmRvd3MuKyBlZGdlXC8oW1x3XC5dKykvaV0sW2csW3AsaitgSFRNTGBdXSxbLyhhcmt3ZWIpXC8oW1x3XC5dKykvaV0sW3AsZ10sWy93ZWJraXRcLzUzN1wuMzYuK2Nocm9tZVwvKD8hMjcpKFtcd1wuXSspL2ldLFtnLFtwLGBCbGlua2BdXSxbLyhwcmVzdG8pXC8oW1x3XC5dKykvaSwvKHdlYmtpdHx0cmlkZW50fG5ldGZyb250fG5ldHN1cmZ8YW1heWF8bHlueHx3M218Z29hbm5hfHNlcnZvKVwvKFtcd1wuXSspL2ksL2VraW9oKGZsb3cpXC8oW1x3XC5dKykvaSwvKGtodG1sfHRhc21hbnxsaW5rcylbXC8gXVwoPyhbXHdcLl0rKS9pLC8oaWNhYilbXC8gXShbMjNdXC5bXGRcLl0rKS9pLC9cYihsaWJ3ZWIpL2ldLFtwLGddLFsvbGFkeWJpcmRcLy9pXSxbW3AsYExpYldlYmBdXSxbL3J2XDooW1x3XC5dezEsOX0pXGIuKyhnZWNrbykvaV0sW2cscF1dLG9zOltbL21pY3Jvc29mdCAod2luZG93cykgKHZpc3RhfHhwKS9pXSxbcCxnXSxbLyh3aW5kb3dzICg/OnBob25lKD86IG9zKT98bW9iaWxlfGlvdCkpW1wvIF0/KFtcZFwuXHcgXSopL2ldLFtwLFtnLGJlLFNlXV0sWy93aW5kb3dzIG50IDZcLjI7IChhcm0pL2ksL3dpbmRvd3NbXC8gXShbbnRjZVxkXC4gXStcdykoPyEuK3hib3gpL2ksLyg/Ondpbig/PTN8OXxuKXx3aW4gOXggKShbbnRcZFwuXSspL2ldLFtbZyxiZSxTZV0sW3AsYFdpbmRvd3NgXV0sWy9bYWRlaGltbm9wXXs0LDd9XGIoPzouKm9zIChbXHddKykgbGlrZSBtYWN8OyBvcGVyYSkvaSwvKD86aW9zO2Zic3ZcL3xpcGhvbmUuK2lvc1tcLyBdKShbXGRcLl0rKS9pLC9jZm5ldHdvcmtcLy4rZGFyd2luL2ldLFtbZywvXy9nLGAuYF0sW3AsYGlPU2BdXSxbLyhtYWMgb3MgeCkgPyhbXHdcLiBdKikvaSwvKG1hY2ludG9zaHxtYWNfcG93ZXJwY1xiKSg/IS4raGFpa3UpL2ldLFtbcCxkZV0sW2csL18vZyxgLmBdXSxbL2Ryb2lkIChbXHdcLl0rKVxiLisoYW5kcm9pZFstIF14ODZ8aGFybW9ueW9zKS9pXSxbZyxwXSxbLyh1YnVudHUpIChbXHdcLl0rKSBsaWtlIGFuZHJvaWQvaV0sW1twLC8oLispLyxgJDEgVG91Y2hgXSxnXSxbLyhhbmRyb2lkfGJhZGF8YmxhY2tiZXJyeXxrYWlvc3xtYWVtb3xtZWVnb3xvcGVuaGFybW9ueXxxbnh8cmltIHRhYmxldCBvc3xzYWlsZmlzaHxzZXJpZXM0MHxzeW1iaWFufHRpemVufHdlYm9zKVx3KlstXC87IF0/KFtcZFwuXSopL2ldLFtwLGddLFsvXChiYigxMCk7L2ldLFtnLFtwLE9dXSxbLyg/OnN5bWJpYW4gP29zfHN5bWJvc3xzNjAoPz07KXxzZXJpZXMgPzYwKVstXC8gXT8oW1x3XC5dKikvaV0sW2csW3AsYFN5bWJpYW5gXV0sWy9tb3ppbGxhXC9bXGRcLl0rIFwoKD86bW9iaWxlfHRhYmxldHx0dnxtb2JpbGU7IFtcdyBdKyk7IHJ2Oi4rIGdlY2tvXC8oW1x3XC5dKykvaV0sW2csW3AsTStgIE9TYF1dLFsvd2ViMHM7LitydCh0dikvaSwvXGIoPzpocCk/d29zKD86YnJvd3Nlcik/XC8oW1x3XC5dKykvaV0sW2csW3AsYHdlYk9TYF1dLFsvd2F0Y2goPzogP29zWyxcL118XGQsXGRcLykoW1xkXC5dKykvaV0sW2csW3AsYHdhdGNoT1NgXV0sWy9jcmtleVwvKFtcZFwuXSspL2ldLFtnLFtwLEErYGNhc3RgXV0sWy8oY3JvcykgW1x3XSsoPzpcKXwgKFtcd1wuXSspXGIpL2ldLFtbcCx1ZV0sZ10sWy9wYW5hc29uaWM7KHZpZXJhKS9pLC8obmV0cmFuZ2UpbW1oL2ksLyhuZXR0dilcLyhcZCtcLltcd1wuXSspL2ksLyhuaW50ZW5kb3xwbGF5c3RhdGlvbikgKFt3aWRzMzQ1cG9ydGFibGV2dWNoXSspL2ksLyh4Ym94KTsgK3hib3ggKFteXCk7XSspL2ksL1xiKGpvbGl8cGFsbSlcYiA/KD86b3MpP1wvPyhbXHdcLl0qKS9pLC8obWludClbXC9cKFwpIF0/KFx3KikvaSwvKG1hZ2VpYXx2ZWN0b3JsaW51eClbOyBdL2ksLyhba3hsbl0/dWJ1bnR1fGRlYmlhbnxzdXNlfG9wZW5zdXNlfGdlbnRvb3xhcmNoKD89IGxpbnV4KXxzbGFja3dhcmV8ZmVkb3JhfG1hbmRyaXZhfGNlbnRvc3xwY2xpbnV4b3N8cmVkID9oYXR8emVud2Fsa3xsaW5wdXN8cmFzcGJpYW58cGxhbiA5fG1pbml4fHJpc2Mgb3N8Y29udGlraXxkZWVwaW58bWFuamFyb3xlbGVtZW50YXJ5IG9zfHNhYmF5b258bGluc3BpcmUpKD86IGdudVwvbGludXgpPyg/OiBlbnRlcnByaXNlKT8oPzpbLSBdbGludXgpPyg/Oi1nbnUpP1stXC8gXT8oPyFjaHJvbXxwYWNrYWdlKShbLVx3XC5dKikvaSwvKGh1cmR8bGludXgpKD86IGFybVx3KnwgeDg2XHcqfCA/KShbXHdcLl0qKS9pLC8oZ251KSA/KFtcd1wuXSopL2ksL1xiKFstZnJlbnRvcGNnaHNdezAsNX1ic2R8ZHJhZ29uZmx5KVtcLyBdPyg/IWFtZHxbaXgzNDZdezEsMn04NikoW1x3XC5dKikvaSwvKGhhaWt1KSAoXHcrKS9pXSxbcCxnXSxbLyhzdW5vcykgPyhbXHdcLlxkXSopL2ldLFtbcCxgU29sYXJpc2BdLGddLFsvKCg/Om9wZW4pP3NvbGFyaXMpWy1cLyBdPyhbXHdcLl0qKS9pLC8oYWl4KSAoKFxkKSg/PVwufFwpfCApW1x3XC5dKSovaSwvXGIoYmVvc3xvc1wvMnxhbWlnYW9zfG1vcnBob3N8b3BlbnZtc3xmdWNoc2lhfGhwLXV4fHNlcmVuaXR5b3MpL2ksLyh1bml4KSA/KFtcd1wuXSopL2ldLFtwLGddXX0sd2U9ZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgZT09PWwmJih0PWUsZT1yKSwhKHRoaXMgaW5zdGFuY2VvZiB3ZSkpcmV0dXJuIG5ldyB3ZShlLHQpLmdldFJlc3VsdCgpO3ZhciBpPXR5cGVvZiBuIT09YyYmbi5uYXZpZ2F0b3I/bi5uYXZpZ2F0b3I6cixvPWV8fChpJiZpLnVzZXJBZ2VudD9pLnVzZXJBZ2VudDphKSx2PWkmJmkudXNlckFnZW50RGF0YT9pLnVzZXJBZ2VudERhdGE6cix4PXQ/cGUoQ2UsdCk6Q2UsUz1pJiZpLnVzZXJBZ2VudD09bztyZXR1cm4gdGhpcy5nZXRCcm93c2VyPWZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGVbcF09cixlW2ddPXIseWUuY2FsbChlLG8seC5icm93c2VyKSxlW2RdPV9lKGVbZ10pLFMmJmkmJmkuYnJhdmUmJnR5cGVvZiBpLmJyYXZlLmlzQnJhdmU9PXMmJihlW3BdPWBCcmF2ZWApLGV9LHRoaXMuZ2V0Q1BVPWZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGVbX109cix5ZS5jYWxsKGUsbyx4LmNwdSksZX0sdGhpcy5nZXREZXZpY2U9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZVtoXT1yLGVbZl09cixlW21dPXIseWUuY2FsbChlLG8seC5kZXZpY2UpLFMmJiFlW21dJiZ2JiZ2Lm1vYmlsZSYmKGVbbV09eSksUyYmZVtmXT09YE1hY2ludG9zaGAmJmkmJnR5cGVvZiBpLnN0YW5kYWxvbmUhPT1jJiZpLm1heFRvdWNoUG9pbnRzJiZpLm1heFRvdWNoUG9pbnRzPjImJihlW2ZdPWBpUGFkYCxlW21dPWIpLGV9LHRoaXMuZ2V0RW5naW5lPWZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGVbcF09cixlW2ddPXIseWUuY2FsbChlLG8seC5lbmdpbmUpLGV9LHRoaXMuZ2V0T1M9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZVtwXT1yLGVbZ109cix5ZS5jYWxsKGUsbyx4Lm9zKSxTJiYhZVtwXSYmdiYmdi5wbGF0Zm9ybSYmdi5wbGF0Zm9ybSE9YFVua25vd25gJiYoZVtwXT12LnBsYXRmb3JtLnJlcGxhY2UoL2Nocm9tZSBvcy9pLHVlKS5yZXBsYWNlKC9tYWNvcy9pLGRlKSksZX0sdGhpcy5nZXRSZXN1bHQ9ZnVuY3Rpb24oKXtyZXR1cm57dWE6dGhpcy5nZXRVQSgpLGJyb3dzZXI6dGhpcy5nZXRCcm93c2VyKCksZW5naW5lOnRoaXMuZ2V0RW5naW5lKCksb3M6dGhpcy5nZXRPUygpLGRldmljZTp0aGlzLmdldERldmljZSgpLGNwdTp0aGlzLmdldENQVSgpfX0sdGhpcy5nZXRVQT1mdW5jdGlvbigpe3JldHVybiBvfSx0aGlzLnNldFVBPWZ1bmN0aW9uKGUpe3JldHVybiBvPXR5cGVvZiBlPT09dSYmZS5sZW5ndGg+dz92ZShlLHcpOmUsdGhpc30sdGhpcy5zZXRVQShvKSx0aGlzfTt3ZS5WRVJTSU9OPWksd2UuQlJPV1NFUj1tZShbcCxnLGRdKSx3ZS5DUFU9bWUoW19dKSx3ZS5ERVZJQ0U9bWUoW2YsaCxtLHYseSx4LGIsUyxDXSksd2UuRU5HSU5FPXdlLk9TPW1lKFtwLGddKSx0eXBlb2YgZT09PWM/dHlwZW9mIGRlZmluZT09PXMmJmRlZmluZS5hbWQ/ZGVmaW5lKGZ1bmN0aW9uKCl7cmV0dXJuIHdlfSk6dHlwZW9mIG4hPT1jJiYobi5VQVBhcnNlcj13ZSk6KHR5cGVvZiB0IT09YyYmdC5leHBvcnRzJiYoZT10LmV4cG9ydHM9d2UpLGUuVUFQYXJzZXI9d2UpO3ZhciBUZT10eXBlb2YgbiE9PWMmJihuLmpRdWVyeXx8bi5aZXB0byk7aWYoVGUmJiFUZS51YSl7dmFyIEVlPW5ldyB3ZTtUZS51YT1FZS5nZXRSZXN1bHQoKSxUZS51YS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gRWUuZ2V0VUEoKX0sVGUudWEuc2V0PWZ1bmN0aW9uKGUpe0VlLnNldFVBKGUpO3ZhciB0PUVlLmdldFJlc3VsdCgpO2Zvcih2YXIgbiBpbiB0KVRlLnVhW25dPXRbbl19fX0pKHR5cGVvZiB3aW5kb3c9PWBvYmplY3RgP3dpbmRvdzplKX0pKTtmdW5jdGlvbiBDYShlKXtpZihocigpJiZuYXZpZ2F0b3ImJmBzZXJ2aWNlV29ya2VyYGluIG5hdmlnYXRvciYmbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcil0cnl7bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZShlKX1jYXRjaChlKXtlIGluc3RhbmNlb2YgRXJyb3ImJlUub25FcnJvcihlKX19dmFyIHdhPXUoU2EoKSksVGE9e2FtcGxpdHVkZU9TTmFtZTpudWxsLGFtcGxpdHVkZU9TVmVyc2lvbjpudWxsLGFtcGxpdHVkZURldmljZU1vZGVsOm51bGwsYnJvd3Nlck5hbWU6bnVsbCxicm93c2VyTWFqb3I6bnVsbCxvc05hbWU6bnVsbCx1c2VyQWdlbnQ6bnVsbCx3aWR0aDpudWxsLGhlaWdodDpudWxsLGlzX2xvd19lbmRfZGV2aWNlOm51bGwsaXNfbG93X2VuZF9leHBlcmllbmNlOm51bGx9LEVhPXtjb3VudHJ5Q29kZTpudWxsLGRldmljZUlkOm51bGwsZGV2aWNlTW9kZWw6bnVsbCxkZXZpY2VNYW51ZmFjdHVyZXI6bnVsbCxkZXZpY2Vfb3M6bnVsbCxkZXZpY2VDbGFzczpgdW5rbm93bmAsaXNPcHRPdXQ6ITEsbG9jYWxlOm51bGwsand0Om51bGwsc2Vzc2lvbl9sY2NfaWQ6bnVsbCx1c2VyQWdlbnQ6bnVsbCx1c2VySWQ6bnVsbCxpc0Jyb3RsaVN1cHBvcnRlZDpudWxsLHVzZXJUaWVyOm51bGwsZXhwZXJpbWVudEdyb3VwczpudWxsfTtmdW5jdGlvbiBEYShlKXtyZXR1cm4gZT8oTnVtYmVyKGUpXk1hdGgucmFuZG9tKCkqMTY+Pk51bWJlcihlKS80KS50b1N0cmluZygxNik6YDEwMDAwMDAwLTEwMDAtNDAwMC04MDAwLTEwMDAwMDAwMDAwMGAucmVwbGFjZSgvWzAxOF0vZyxEYSl9ZnVuY3Rpb24gT2EoKXtyZXR1cm4gVS5pc0Fsd2F5c0F1dGhlZD8hMDohIUVhLnVzZXJJZH1mdW5jdGlvbiBrYSgpe2xldCBlPXt9O3JldHVybiBFYS5jb3VudHJ5Q29kZSYmKGUuY291bnRyeV9jb2RlPUVhLmNvdW50cnlDb2RlKSxFYS5leHBlcmltZW50R3JvdXBzJiYoZS5leHBlcmltZW50X2dyb3Vwcz1FYS5leHBlcmltZW50R3JvdXBzKSxlfWZ1bmN0aW9uIEFhKCl7bGV0IGU9VS5wbGF0Zm9ybTtpZihlPT09SnQud2ViKXN3aXRjaCghMCl7Y2FzZSBwcigpOnJldHVybiBKdC5tb2JpbGVfd2ViO2Nhc2UgbXIoKTpyZXR1cm4gSnQudGFibGV0X3dlYn1yZXR1cm4gZX1mdW5jdGlvbiBqYSgpe3BlcmZvcm1hbmNlLm1hcmsmJnBlcmZvcm1hbmNlLm1hcmsoYHVhX3BhcnNlcl9zdGFydGApO2xldCBlPW5ldyB3YS5kZWZhdWx0KFRhLnVzZXJBZ2VudD8/YGApLmdldFJlc3VsdCgpO1RhLmJyb3dzZXJOYW1lPWUuYnJvd3Nlci5uYW1lPz9udWxsLFRhLmJyb3dzZXJNYWpvcj1lLmJyb3dzZXIubWFqb3I/P251bGwsVGEub3NOYW1lPWUub3MubmFtZT8/bnVsbCxUYS5hbXBsaXR1ZGVPU05hbWU9VGEuYnJvd3Nlck5hbWUsVGEuYW1wbGl0dWRlT1NWZXJzaW9uPVRhLmJyb3dzZXJNYWpvcixUYS5hbXBsaXR1ZGVEZXZpY2VNb2RlbD1UYS5vc05hbWUsQ2Eoe2RldmljZTp7YnJvd3Nlck5hbWU6VGEuYnJvd3Nlck5hbWUsb3NOYW1lOlRhLm9zTmFtZX19KSxwZXJmb3JtYW5jZS5tYXJrJiYocGVyZm9ybWFuY2UubWFyayhgdWFfcGFyc2VyX2VuZGApLHBlcmZvcm1hbmNlLm1lYXN1cmUoYHVhX3BhcnNlcmAsYHVhX3BhcnNlcl9zdGFydGAsYHVhX3BhcnNlcl9lbmRgKSl9ZnVuY3Rpb24gTWEoZSl7VGEuaGVpZ2h0PWUuaGVpZ2h0LFRhLndpZHRoPWUud2lkdGh9ZnVuY3Rpb24gTmEoKXtpZihocigpKXt2YXIgZSx0LG47YHJlcXVlc3RJZGxlQ2FsbGJhY2tgaW4gd2luZG93P3dpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrKGphLHt0aW1lb3V0OlUucmljVGltZW91dFNldERldmljZX0pOmphKCksVGEudXNlckFnZW50PSgoZT13aW5kb3cpPT1udWxsfHwoZT1lLm5hdmlnYXRvcik9PW51bGw/dm9pZCAwOmUudXNlckFnZW50KXx8bnVsbCxNYSh7aGVpZ2h0OigodD13aW5kb3cpPT1udWxsP3ZvaWQgMDp0LmlubmVySGVpZ2h0KT8/bnVsbCx3aWR0aDooKG49d2luZG93KT09bnVsbD92b2lkIDA6bi5pbm5lcldpZHRoKT8/bnVsbH0pfWVsc2UgKGZyKCl8fGRyKCkpJiYoVGEudXNlckFnZW50PUVhLnVzZXJBZ2VudCxUYS51c2VyQWdlbnQmJmphKCkpfWZ1bmN0aW9uIFBhKGUpe09iamVjdC5hc3NpZ24oRWEsZSksaHIoKSYmQ2Eoe2lkZW50aXR5Ontpc0F1dGhlZDohIUVhLnVzZXJJZCxsb2NhbGU6RWEubG9jYWxlPz9udWxsfX0pfWZ1bmN0aW9uIEZhKCl7aWYoaHIoKSl7dmFyIGUsdDtFYS5sb2NhbGU9KChlPW5hdmlnYXRvcik9PW51bGw/dm9pZCAwOmUubGFuZ3VhZ2VzWzBdKXx8KCh0PW5hdmlnYXRvcik9PW51bGw/dm9pZCAwOnQubGFuZ3VhZ2UpfHxgYH19ZnVuY3Rpb24gSWEoZSl7VGEuaXNfbG93X2VuZF9kZXZpY2U9ZS5pc19sb3dfZW5kX2RldmljZSxUYS5pc19sb3dfZW5kX2V4cGVyaWVuY2U9ZS5pc19sb3dfZW5kX2V4cGVyaWVuY2V9ZnVuY3Rpb24gTGEoKXtQbih7cGxhdGZvcm06QWEoKX0pLGhyKCkmJkNhKHtjb25maWc6e3BsYXRmb3JtOlUucGxhdGZvcm19fSl9dmFyIFJhPS9eW2EtemRdKyhfW2EtemRdKykqJC87ZnVuY3Rpb24gemEoZSl7cmV0dXJuIFJhLnRlc3QoZSl9ZnVuY3Rpb24gQmEoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBWYShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9CYShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7SGEoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6QmEoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIEhhKGUsdCxuKXtyZXR1cm4odD1VYSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBVYShlKXt2YXIgdD1XYShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBXYShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIEdhKGUsdCl7cmV0dXJuIFhhKGUpfHxZYShlLHQpfHxxYShlLHQpfHxLYSgpfWZ1bmN0aW9uIEthKCl7dGhyb3cgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gcWEoZSx0KXtpZihlKXtpZih0eXBlb2YgZT09YHN0cmluZ2ApcmV0dXJuIEphKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4gbj09PWBPYmplY3RgJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLG49PT1gTWFwYHx8bj09PWBTZXRgP0FycmF5LmZyb20oZSk6bj09PWBBcmd1bWVudHNgfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9KYShlLHQpOnZvaWQgMH19ZnVuY3Rpb24gSmEoZSx0KXsodD09bnVsbHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIFlhKGUsdCl7dmFyIG49ZT09bnVsbD9udWxsOnR5cGVvZiBTeW1ib2w8YHVgJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbYEBAaXRlcmF0b3JgXTtpZihuIT1udWxsKXt2YXIgcixpLGEsbyxzPVtdLGM9ITAsbD0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsdD09PTApe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYocy5wdXNoKHIudmFsdWUpLHMubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe2w9ITAsaT1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZuLnJldHVybiE9bnVsbCYmKG89bi5yZXR1cm4oKSxPYmplY3QobykhPT1vKSlyZXR1cm59ZmluYWxseXtpZihsKXRocm93IGl9fXJldHVybiBzfX1mdW5jdGlvbiBYYShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfXZhciBaYT1bYGFjdGlvbmAsYGNvbXBvbmVudF90eXBlYCxgY29tcG9uZW50X25hbWVgLGBjb250ZXh0YCxgbG9nZ2luZ19pZGBdLFFhPVtgbnVtX25vbl9oYXJkd2FyZV9hY2NvdW50c2AsYHVqc2AsYGNkc192ZXJzaW9uYCxgcHJpb3JpdHlgLGBpc19sb3dfZW5kX2RldmljZWAsYGlzX2xvd19lbmRfZXhwZXJpZW5jZWAsYHRyYWNlX2lkYF0sJGE9YHVqc19gLGVvPXt9O2Z1bmN0aW9uIHRvKGUpe3ZhciB0O2xldCBuPU9iamVjdC5lbnRyaWVzKGUpLnJlZHVjZSgoZSx0KT0+e2xldCBuPUdhKHQsMikscj1uWzBdLGk9blsxXTtyZXR1cm4hWmEuaW5jbHVkZXMocikmJlFhLmluY2x1ZGVzKHIpP3phKHIpP1ZhKFZhKHt9LGUpLHt9LHtbcl06aX0pOihVLm9uRXJyb3IoRXJyb3IoYElkZW50aXR5RmxvdyBwcm9wZXJ0eSBuYW1lcyBtdXN0IGhhdmUgc25ha2UgY2FzZSBmb3JtYXRgKSx7W3JdOml9KSxlKTplfSx7fSk7KHQ9bi51anMpIT1udWxsJiZ0Lmxlbmd0aCYmKG4udWpzPW4udWpzLm1hcChlPT5gJHskYX0ke2V9YCkpLE9iamVjdC5hc3NpZ24oZW8sbil9ZnVuY3Rpb24gbm8oZSl7T2JqZWN0LmtleXMoZW8pLmxlbmd0aD4wJiZPYmplY3QuYXNzaWduKGUsZW8pfWZ1bmN0aW9uIHJvKCl7cmV0dXJuIU9iamVjdC5rZXlzKGVvKS5sZW5ndGh9ZnVuY3Rpb24gaW8oKXtyZXR1cm4gVS5wbGF0Zm9ybT09PUp0LnVua25vd24/KFUub25FcnJvcihFcnJvcihgU0RLIHBsYXRmb3JtIG5vdCBpbml0aWFsaXplZGApKSwhMSk6ITB9dmFyIGFvPXtldmVudElkOjAsc2VxdWVuY2VOdW1iZXI6MCxzZXNzaW9uSWQ6MCxsYXN0RXZlbnRUaW1lOjAsc2Vzc2lvblN0YXJ0OjAsc2Vzc2lvblVVSUQ6bnVsbCx1c2VySWQ6bnVsbCxhYzowLGFmOjAsYWg6MCxhbDowLGFtOjAsYXI6MCxhczowLHB2OjB9O2Z1bmN0aW9uIG9vKGUpe09iamVjdC5hc3NpZ24oYW8sZSl9ZnVuY3Rpb24gc28oKXt2YXIgZTtyZXR1cm4oKGU9ZG9jdW1lbnQpPT1udWxsP3ZvaWQgMDplLnJlZmVycmVyKT8/YGB9ZnVuY3Rpb24gY28oZSx0KXtsZXQgbj1SZWdFeHAoYFsmP10ke3Quam9pbihgPS4qPygmfCQpfGApfT0uKj8oJnwkKWAsYGdgKTtyZXR1cm4gZS5yZXBsYWNlKG4sYGApLnJlcGxhY2UoL14mLyxgP2ApfWZ1bmN0aW9uIGxvKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gdW8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/bG8oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2ZvKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmxvKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBmbyhlLHQsbil7cmV0dXJuKHQ9cG8odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gcG8oZSl7dmFyIHQ9bW8oZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gbW8oZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBobygpe3ZhciBlO3JldHVybigoZT13aW5kb3cpPT1udWxsfHwoZT1lLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6ZS5ob3N0bmFtZSl8fGBgfWZ1bmN0aW9uIGdvKCl7dmFyIGUsdDtyZXR1cm4gVS5yZXZva2VkUXVlcnlQYXJhbXM/Y28oKCh0PXdpbmRvdyk9PW51bGx8fCh0PXQubG9jYXRpb24pPT1udWxsP3ZvaWQgMDp0LnNlYXJjaCl8fGBgLFUucmV2b2tlZFF1ZXJ5UGFyYW1zKTooKGU9d2luZG93KT09bnVsbHx8KGU9ZS5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmUuc2VhcmNoKXx8YGB9ZnVuY3Rpb24gX28oKXt2YXIgZTtyZXR1cm4oKGU9d2luZG93KT09bnVsbHx8KGU9ZS5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmUucGF0aG5hbWUpfHxgYH1mdW5jdGlvbiB2bygpe3JldHVybiBVLm92ZXJyaWRlV2luZG93TG9jYXRpb24/UnQucGFnZVBhdGg6X28oKStnbygpfWZ1bmN0aW9uIHlvKCl7bGV0IGU9c28oKTtpZighZSlyZXR1cm57fTtsZXQgdD1uZXcgVVJMKGUpO3JldHVybiB0Lmhvc3RuYW1lPT09aG8oKT97fTp7cmVmZXJyZXI6ZSxyZWZlcnJpbmdfZG9tYWluOnQuaG9zdG5hbWV9fWZ1bmN0aW9uIGJvKCl7bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyhnbygpKSx0PXt9O3JldHVybiBnbi5mb3JFYWNoKG49PntlLmhhcyhuKSYmKHRbbl09KGUuZ2V0KG4pPz9gYCkudG9Mb3dlckNhc2UoKSl9KSx0fWZ1bmN0aW9uIHhvKCl7bGV0IGU9e307cmV0dXJuIGduLmZvckVhY2godD0+e2FvW3RdJiYoZVt0XT1hb1t0XSl9KSxlfWZ1bmN0aW9uIFNvKCl7cmV0dXJuIWhyKCl8fE9iamVjdC5rZXlzKFJ0LmluaXRpYWxVQUFEYXRhKS5sZW5ndGg+MD9SdC5pbml0aWFsVUFBRGF0YToobmV3IFVSTFNlYXJjaFBhcmFtcyhnbygpKSxSdC5pbml0aWFsVUFBRGF0YT11byh1byh1byh7fSx4bygpKSxibygpKSx5bygpKSxSdC5pbml0aWFsVUFBRGF0YSl9ZnVuY3Rpb24gQ28oKXtSdC5wYWdlS2V5UmVnZXgmJk9iamVjdC5rZXlzKFJ0LnBhZ2VLZXlSZWdleCkuc29tZShlPT5SdC5wYWdlS2V5UmVnZXhbZV0udGVzdChSdC5wYWdlUGF0aCk/KFJ0LnBhZ2VLZXk9ZSwhMCk6ITEpfWZ1bmN0aW9uIHdvKCl7aWYoaHIoKSl7bGV0IGU9c28oKTtpZighUnQucHJldlBhZ2VQYXRoJiZlKXtsZXQgdD1uZXcgVVJMKGUpO2lmKHQuaG9zdG5hbWU9PT1obygpKXtSdC5wcmV2UGFnZVBhdGg9dC5wYXRobmFtZTtyZXR1cm59fX1SdC5wcmV2UGFnZVBhdGg9UnQucGFnZVBhdGgsUnQucHJldlBhZ2VLZXk9UnQucGFnZUtleX1mdW5jdGlvbiBUbygpe2xldCBlPXZvKCk7IWV8fGU9PT1SdC5wYWdlUGF0aHx8KGUhPT1SdC5wYWdlUGF0aCYmd28oKSxSdC5wYWdlUGF0aD1lLENvKCkpfWZ1bmN0aW9uIEVvKGUpe2hyKCkmJk9iamVjdC5hc3NpZ24oZSxTbygpKX12YXIgRG89e2V2ZW50c1F1ZXVlOltdLGV2ZW50c1NjaGVkdWxlZDohMSxtZXRyaWNzUXVldWU6W10sbWV0cmljc1NjaGVkdWxlZDohMSx0cmFjZXNRdWV1ZTpbXSx0cmFjZXNTY2hlZHVsZWQ6ITEsc3RhdGVtZW50c1F1ZXVlOltdLHN0YXRlbWVudHNTY2hlZHVsZWQ6ITF9O2Z1bmN0aW9uIE9vKCl7bGV0IGU9RG8ubWV0cmljc1F1ZXVlO3JldHVybiBEby5tZXRyaWNzUXVldWU9W10sZX1mdW5jdGlvbiBrbyhlKXtPYmplY3QuYXNzaWduKERvLGUpfXZhciBBbz17YWM6MCxhZjowLGFoOjAsYWw6MCxhbTowLGFyOjAsYXM6MCxwdjowLHNxczowfSxqbz17YWM6MjAsYWY6NSxhaDoxLGFsOjEsYW06MCxhcjoxMCxhczoyMH0sTW89e3B2OjI1fSxObz17eHM6MCxzOjE1LG06NjAsbDoyNDAseGw6OTYwLHh4bDozODQwfSxQbz17eHM6MCxzOjEsbToxLGw6Mix4bDoyLHh4bDoyfTtmdW5jdGlvbiBGbyhlKXtyZXR1cm4gZTxOby5zP1F0LnhzOmU8Tm8ubT9RdC5zOmU8Tm8ubD9RdC5tOmU8Tm8ueGw/UXQubDplPE5vLnh4bD9RdC54bDpRdC54eGx9ZnVuY3Rpb24gSW8oZSl7c3dpdGNoKGUuYWN0aW9uKXtjYXNlIEguY2xpY2s6QW8uYWMrPTE7YnJlYWs7Y2FzZSBILmZvY3VzOkFvLmFmKz0xO2JyZWFrO2Nhc2UgSC5ob3ZlcjpBby5haCs9MTticmVhaztjYXNlIEgubW92ZTpBby5hbSs9MTticmVhaztjYXNlIEguc2Nyb2xsOkFvLmFsKz0xO2JyZWFrO2Nhc2UgSC5zZWFyY2g6QW8uYXIrPTE7YnJlYWs7Y2FzZSBILnNlbGVjdDpBby5hcys9MTticmVha319ZnVuY3Rpb24gTG8oZSl7T2JqZWN0LmFzc2lnbihBbyxlKX1mdW5jdGlvbiBSbyhlKXtpZighZS5zZXNzaW9uX3JhbmspcmV0dXJuO2xldCB0PWUuc2Vzc2lvbl9yYW5rO09iamVjdC52YWx1ZXMoWHQpLmZvckVhY2goZT0+e0FvLnNxcys9QW9bZV0qam9bZV19KSxPYmplY3QudmFsdWVzKFp0KS5mb3JFYWNoKGU9PntBby5zcXMrPUFvW2VdKk1vW2VdfSksQW8uc3FzKj1Qb1t0XX1mdW5jdGlvbiB6byhlKXtpZihJbyhlKSxlLmV2ZW50X3R5cGU9PT1gcGFnZXZpZXdgKXtBby5wdis9MTtyZXR1cm59ZS5ldmVudF90eXBlPT09YHNlc3Npb25fZHVyYXRpb25gJiYoUm8oZSksT2JqZWN0LmFzc2lnbihlLEFvKSxMbyh7YWM6MCxhZjowLGFoOjAsYWw6MCxhbTowLGFyOjAsYXM6MCxwdjowLHNxczowfSkpfWZ1bmN0aW9uIEJvKCl7cmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpfXZhciBWbz17dGltZVN0YXJ0OkJvKCksdGltZU9uUGFnZVBhdGg6MCx0aW1lT25QYWdlS2V5OjAscHJldlRpbWVPblBhZ2VQYXRoOjAscHJldlRpbWVPblBhZ2VLZXk6MCxzZXNzaW9uRHVyYXRpb246MCxzZXNzaW9uRW5kOjAsc2Vzc2lvblN0YXJ0OjAscHJldlNlc3Npb25EdXJhdGlvbjowfTtmdW5jdGlvbiBIbyhlKXtPYmplY3QuYXNzaWduKFZvLGUpfWZ1bmN0aW9uIFVvKCl7b28oe2V2ZW50SWQ6YW8uZXZlbnRJZCsxfSl9ZnVuY3Rpb24gV28oKXtvbyh7c2VxdWVuY2VOdW1iZXI6YW8uc2VxdWVuY2VOdW1iZXIrMX0pfWZ1bmN0aW9uIEdvKCl7VS5wbGF0Zm9ybSE9PWBzZXJ2ZXJgJiYob28oe3Nlc3Npb25TdGFydDpWby5zZXNzaW9uU3RhcnQsYWM6QW8uYWMsYWY6QW8uYWYsYWg6QW8uYWgsYWw6QW8uYWwsYW06QW8uYW0sYXI6QW8uYXIsYXM6QW8uYXMscHY6QW8ucHZ9KSxFYS51c2VySWQmJm9vKHt1c2VySWQ6RWEudXNlcklkfSkseXIoZG4sYW8pKX1mdW5jdGlvbiBLbyhlKXtyZXR1cm4gZS0oYW8ubGFzdEV2ZW50VGltZXx8YW8uc2Vzc2lvblN0YXJ0KT5obn1mdW5jdGlvbiBxbygpe2xldCBlPUJvKCk7KCFhby5zZXNzaW9uSWR8fCFhby5zZXNzaW9uU3RhcnR8fCFhby5zZXNzaW9uVVVJRHx8S28oZSkpJiYoYW8uc2Vzc2lvbklkPWUsYW8uc2Vzc2lvblVVSUQ9RGEoKSxhby5zZXNzaW9uU3RhcnQ9ZSxIbyh7c2Vzc2lvblN0YXJ0OmV9KSxMbih7bWV0cmljTmFtZTpgU3RhcnRlZCBuZXcgc2Vzc2lvbjpgLGRhdGE6e3BlcnNpc3RlbnREYXRhOmFvLHRpbWVTdG9uZTpWb319KSl9ZnVuY3Rpb24gSm8oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBZbyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9KbyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7WG8oZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6Sm8oT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIFhvKGUsdCxuKXtyZXR1cm4odD1abyh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBabyhlKXt2YXIgdD1RbyhlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBRbyhlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uICRvKGUpe3ZhciB0O3pvKGUpO2xldCBuPWUuZXZlbnRfdHlwZTtkZWxldGUgZS5ldmVudF90eXBlO2xldCByPWUuZGV2aWNlSWQ/ZS5kZXZpY2VJZDpudWxsLGk9ZS50aW1lc3RhbXA7ZGVsZXRlIGUudGltZXN0YW1wO2xldCBhPWUudXNlclByb3BlcnRpZXM/P3t9O3JldHVybiBkZWxldGUgZS51c2VyUHJvcGVydGllcyxVbygpLFdvKCkscW8oKSxhby5sYXN0RXZlbnRUaW1lPUJvKCksR28oKSx7ZGV2aWNlX2lkOkVhLmRldmljZUlkPz9yPz9udWxsLHVzZXJfaWQ6RWEudXNlcklkLHRpbWVzdGFtcDppLGV2ZW50X2lkOmFvLmV2ZW50SWQsc2Vzc2lvbl9pZDphby5zZXNzaW9uSWR8fC0xLGV2ZW50X3R5cGU6bix2ZXJzaW9uX25hbWU6KCh0PVUudmVyc2lvbik9PW51bGw/dm9pZCAwOnQudG9TdHJpbmcoKSk/P251bGwscGxhdGZvcm06VS5wbGF0Zm9ybXx8bnVsbCxvc19uYW1lOlRhLmFtcGxpdHVkZU9TTmFtZSxvc192ZXJzaW9uOlRhLmFtcGxpdHVkZU9TVmVyc2lvbixkZXZpY2VfbW9kZWw6RWEuZGV2aWNlTW9kZWw/P1RhLmFtcGxpdHVkZURldmljZU1vZGVsLGRldmljZV9tYW51ZmFjdHVyZXI6RWEuZGV2aWNlTWFudWZhY3R1cmVyLGxhbmd1YWdlOkVhLmxvY2FsZSxldmVudF9wcm9wZXJ0aWVzOllvKFlvKHt9LGUpLHt9LHtzZXNzaW9uX3V1aWQ6YW8uc2Vzc2lvblVVSUQsaGVpZ2h0OlRhLmhlaWdodCx3aWR0aDpUYS53aWR0aCxyZWxlYXNlX3N0YWdlOlUucmVsZWFzZVN0YWdlLGlzX2xvd19lbmRfZGV2aWNlOlRhLmlzX2xvd19lbmRfZGV2aWNlLGlzX2xvd19lbmRfZXhwZXJpZW5jZTpUYS5pc19sb3dfZW5kX2V4cGVyaWVuY2V9KSx1c2VyX3Byb3BlcnRpZXM6WW8oWW8oe30sa2EoKSksYSksdXVpZDpEYSgpLGxpYnJhcnk6e25hbWU6YEBjYmhxL2NsaWVudC1hbmFseXRpY3NgLHZlcnNpb246bG59LHNlcXVlbmNlX251bWJlcjphby5zZXF1ZW5jZU51bWJlcix1c2VyX2FnZW50OlRhLnVzZXJBZ2VudD8/RWEudXNlckFnZW50LGlzX2Jyb3RsaV9zdXBwb3J0ZWQ6RWEuaXNCcm90bGlTdXBwb3J0ZWQ/YHRydWVgOmBmYWxzZWB9fWZ1bmN0aW9uIGVzKGUpe3JldHVybiBlLm1hcChlPT4kbyhlKSl9ZnVuY3Rpb24gdHMoZSl7cmV0dXJuIERvLmV2ZW50c1F1ZXVlLmxlbmd0aD09PTA/ITE6RG8uZXZlbnRzUXVldWUubGVuZ3RoPj1VLmJhdGNoRXZlbnRzVGhyZXNob2xkPyEwOihEby5ldmVudHNTY2hlZHVsZWR8fChEby5ldmVudHNTY2hlZHVsZWQ9ITAsc2V0VGltZW91dCgoKT0+e0RvLmV2ZW50c1NjaGVkdWxlZD0hMSxlKGVzKERvLmV2ZW50c1F1ZXVlKSksRG8uZXZlbnRzUXVldWU9W119LFUuYmF0Y2hFdmVudHNQZXJpb2QpKSwhMSl9dmFyIG5zPTAscnM9bnVsbCxpcz0wO2Z1bmN0aW9uIGFzKGUpe3ZhciB0O2hyKCkmJih0PXdpbmRvdykhPW51bGwmJnQucmVxdWVzdElkbGVDYWxsYmFjaz93aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjayhlLHt0aW1lb3V0OlUucmljVGltZW91dFNjaGVkdWxlRXZlbnR9KTooZHIoKXx8ZnIoKSkmJlUuaW50ZXJhY3Rpb25NYW5hZ2VyP1UuaW50ZXJhY3Rpb25NYW5hZ2VyLnJ1bkFmdGVySW50ZXJhY3Rpb25zKGUpOmUoKX1mdW5jdGlvbiBvcyhlKXtpZihEby5tZXRyaWNzUXVldWUubGVuZ3RoPT09MHx8cnMhPT1udWxsKXJldHVybjtsZXQgdD1EYXRlLm5vdygpLW5zLG49TWF0aC5tYXgoMCwoVS5tZXRyaWNzRmx1c2hJbnRlcnZhbE1zPz8xZTMpLXQpO2lmKEh0KCkpe2xldCB0PWlzO3JzPXNldFRpbWVvdXQoKCk9PnthcygoKT0+e3Q9PT1pcyYmKHJzPW51bGwsbnM9RGF0ZS5ub3coKSxlKCkpfSl9LG4pfWVsc2UgcnM9c2V0VGltZW91dCgoKT0+e3JzPW51bGwsbnM9RGF0ZS5ub3coKSxlKCl9LG4pfWZ1bmN0aW9uIHNzKCl7aXMrPTEscnMhPT1udWxsJiYoY2xlYXJUaW1lb3V0KHJzKSxycz1udWxsKX1mdW5jdGlvbiBjcyhlKXtyZXR1cm4gRG8udHJhY2VzUXVldWUubGVuZ3RoPT09MD8hMTpEby50cmFjZXNRdWV1ZS5sZW5ndGg+PVUuYmF0Y2hUcmFjZXNUaHJlc2hvbGQ/ITA6KERvLnRyYWNlc1NjaGVkdWxlZHx8KERvLnRyYWNlc1NjaGVkdWxlZD0hMCxzZXRUaW1lb3V0KCgpPT57RG8udHJhY2VzU2NoZWR1bGVkPSExLGUoRG8udHJhY2VzUXVldWUpLERvLnRyYWNlc1F1ZXVlPVtdfSxVLmJhdGNoVHJhY2VzUGVyaW9kKSksITEpfWZ1bmN0aW9uIGxzKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gdXMoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/bHMoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2RzKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmxzKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBkcyhlLHQsbil7cmV0dXJuKHQ9ZnModCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gZnMoZSl7dmFyIHQ9cHMoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gcHMoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX12YXIgbXM9YGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOGAsaHM9YGFwcGxpY2F0aW9uL2pzb25gO2Z1bmN0aW9uIGdzKHtpc0pTT046ZSxkYXRhOnR9KXtsZXQgbj0haHIoKXx8ZTtyZXR1cm57Y29udGVudFR5cGU6bj9oczptcyxib2R5Om4/SlNPTi5zdHJpbmdpZnkodCk6bmV3IFVSTFNlYXJjaFBhcmFtcyh0KS50b1N0cmluZygpfX1mdW5jdGlvbiBfcyhlKXtsZXQgdD1lLmRhdGEsbj1lLmltcG9ydGFuY2Uscj1lLmlzSlNPTixpPWUub25FcnJvcixhPWUudXJsLG89bj8/S3QubG93LHM9Z3Moe2lzSlNPTjpyLGRhdGE6dH0pLGM9cy5ib2R5LGw9cy5jb250ZW50VHlwZTtmdW5jdGlvbiB1KCl7bGV0IGU9bmV3IFhNTEh0dHBSZXF1ZXN0O2Uub3BlbihgUE9TVGAsYSwhMCksT2JqZWN0LmtleXMoVS5oZWFkZXJzfHx7fSkuZm9yRWFjaCh0PT57ZS5zZXRSZXF1ZXN0SGVhZGVyKHQsVS5oZWFkZXJzW3RdKX0pLGUuc2V0UmVxdWVzdEhlYWRlcihgQ29udGVudC1UeXBlYCxtcyksRWEuand0JiZlLnNldFJlcXVlc3RIZWFkZXIoYGF1dGhvcml6YXRpb25gLGBCZWFyZXIgJHtFYS5qd3R9YCksZS5zZW5kKGMpfWlmKGhyKCkmJiFyJiZgc2VuZEJlYWNvbmBpbiBuYXZpZ2F0b3ImJm89PT1LdC5sb3cmJighVS5oZWFkZXJzfHxPYmplY3Qua2V5cyhVLmhlYWRlcnMpLmxlbmd0aD09PTApKXtsZXQgZT1uZXcgQmxvYihbY10se3R5cGU6bXN9KTt0cnl7bmF2aWdhdG9yLnNlbmRCZWFjb24uYmluZChuYXZpZ2F0b3IpKGEsZSl8fHUoKX1jYXRjaChlKXtVLm9uRXJyb3IoZSksdSgpfX1lbHNlIGlmKGhyKCkmJiFyKXUoKTtlbHNle2xldCBlPXVzKHVzKHt9LFUuaGVhZGVycykse30seyJDb250ZW50LVR5cGUiOmx9KTtFYS5qd3QmJihlLkF1dGhvcml6YXRpb249YEJlYXJlciAke0VhLmp3dH1gKSxmZXRjaChhLHttZXRob2Q6YFBPU1RgLG1vZGU6YG5vLWNvcnNgLGhlYWRlcnM6ZSxib2R5OmN9KS5jYXRjaChlPT57aShlIGluc3RhbmNlb2YgRXJyb3I/ZTpFcnJvcihTdHJpbmcoZSkpLHtjb250ZXh0OmBBbmFseXRpY3NTREtBcGlFcnJvcmB9KX0pfX1mdW5jdGlvbiB2cyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIHlzKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP3ZzKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXticyhlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp2cyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gYnMoZSx0LG4pe3JldHVybih0PXhzKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHhzKGUpe3ZhciB0PVNzKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIFNzKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gQ3MoZSl7cmV0dXJuW2BzdHJpbmdgLGBudW1iZXJgLGBib29sZWFuYF0uaW5jbHVkZXModHlwZW9mIGUpfXZhciB3cz1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMubmFtZT1gQ2lyY3VsYXJKc29uUmVmZXJlbmNlYCx0aGlzLm1lc3NhZ2U9ZSx0eXBlb2YgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U9PWBmdW5jdGlvbmA/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPUVycm9yKGUpLnN0YWNrfX07ZnVuY3Rpb24gVHMoZSl7dHJ5e2xldCB0PVtdO2ZvcihsZXQgbiBvZiBlKXtsZXQgZT15cyh7fSxuKTtuLmV2ZW50X3Byb3BlcnRpZXMmJihlLmV2ZW50X3Byb3BlcnRpZXM9eXMoeXMoe30sZS5ldmVudF9wcm9wZXJ0aWVzKSx7fSx7Y3VycmVudFRhcmdldDpudWxsLHRhcmdldDpudWxsLHJlbGF0ZWRUYXJnZXQ6bnVsbCxfZGlzcGF0Y2hJbnN0YW5jZXM6bnVsbCxfdGFyZ2V0SW5zdDpudWxsLHZpZXc6Q3Mobi5ldmVudF9wcm9wZXJ0aWVzLnZpZXcpP24uZXZlbnRfcHJvcGVydGllcy52aWV3Om51bGx9KSksdC5wdXNoKGUpfXJldHVyblshMCxKU09OLnN0cmluZ2lmeSh0KV19Y2F0Y2h7cmV0dXJuWyExLGBgXX19dmFyIEVzPWNsYXNzIGV4dGVuZHMgd3N7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5uYW1lPWBEb21SZWZlcmVuY2VJbkFuYWx5dGljc0V2ZW50YH19O2Z1bmN0aW9uIERzKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gT3MoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/RHMoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2tzKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOkRzKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBrcyhlLHQsbil7cmV0dXJuKHQ9QXModCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gQXMoZSl7dmFyIHQ9anMoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24ganMoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBNcyhlLHQpe3JldHVybiBMcyhlKXx8SXMoZSx0KXx8UHMoZSx0KXx8TnMoKX1mdW5jdGlvbiBOcygpe3Rocm93IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIFBzKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBGcyhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIG49PT1gT2JqZWN0YCYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxuPT09YE1hcGB8fG49PT1gU2V0YD9BcnJheS5mcm9tKGUpOm49PT1gQXJndW1lbnRzYHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/RnMoZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIEZzKGUsdCl7KHQ9PW51bGx8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBJcyhlLHQpe3ZhciBuPWU9PW51bGw/bnVsbDp0eXBlb2YgU3ltYm9sPGB1YCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW2BAQGl0ZXJhdG9yYF07aWYobiE9bnVsbCl7dmFyIHIsaSxhLG8scz1bXSxjPSEwLGw9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LHQ9PT0wKXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKHMucHVzaChyLnZhbHVlKSxzLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXtsPSEwLGk9ZX1maW5hbGx5e3RyeXtpZighYyYmbi5yZXR1cm4hPW51bGwmJihvPW4ucmV0dXJuKCksT2JqZWN0KG8pIT09bykpcmV0dXJufWZpbmFsbHl7aWYobCl0aHJvdyBpfX1yZXR1cm4gc319ZnVuY3Rpb24gTHMoZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX1mdW5jdGlvbiBScyhlLHQ9S3QubG93KXtpZihFYS5pc09wdE91dHx8ZS5sZW5ndGg9PT0wKXJldHVybjtsZXQgbjt0cnl7bj1KU09OLnN0cmluZ2lmeShlKX1jYXRjaCh0KXtsZXQgcj1lLm1hcChlPT5lLmV2ZW50X3R5cGUpLmpvaW4oYCwgYCksaT1NcyhUcyhlKSwyKSxhPWlbMF0sbz1pWzFdO2lmKCFhKXtVLm9uRXJyb3IobmV3IHdzKHQgaW5zdGFuY2VvZiBFcnJvcj90Lm1lc3NhZ2U6YHVua25vd25gKSx7bGlzdEV2ZW50VHlwZTpyfSk7cmV0dXJufW49byxVLm9uRXJyb3IobmV3IEVzKGBGb3VuZCBET00gZWxlbWVudCByZWZlcmVuY2VgKSx7bGlzdEV2ZW50VHlwZTpyLHN0cmluZ2lmaWVkRXZlbnREYXRhOm59KX1sZXQgcj1CbygpLnRvU3RyaW5nKCksaT1PcyhPcyh7fSx7ZTpuLHY6YDJgLHVwbG9hZF90aW1lOnJ9KSx7fSx7Y2xpZW50OlUuYW1wbGl0dWRlQXBpS2V5fSk7X3Moe3VybDpVLmV2ZW50c0VuZHBvaW50LGRhdGE6aSxpbXBvcnRhbmNlOnQsb25FcnJvcjpVLm9uRXJyb3J9KSxJbih7bWV0cmljTmFtZTpgQmF0Y2ggRXZlbnRzYCxkYXRhOmUsaW1wb3J0YW5jZTp0fSl9ZnVuY3Rpb24genMoZT1LdC5sb3cpe1JzKGVzKERvLmV2ZW50c1F1ZXVlKSxlKSxrbyh7ZXZlbnRzUXVldWU6W119KX1mdW5jdGlvbiBCcyhlLHQ9S3QubG93KXtpZihlJiZEby5ldmVudHNRdWV1ZS5wdXNoKGUpLHNyLmlzUmVhZHkpe2lmKFUudHJhY2tVc2VySWQmJiFFYS51c2VySWQpe0RvLmV2ZW50c1F1ZXVlLmxlbmd0aD4xMCYmKFUudHJhY2tVc2VySWQ9ITEsVS5vbkVycm9yKEVycm9yKGB1c2VySWQgbm90IHNldCBpbiBMb2dnZWQtaW5gKSkpO3JldHVybn0odD09PUt0LmhpZ2h8fHRzKFJzKSkmJnpzKHQpfX1mdW5jdGlvbiBWcyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIEhzKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP1ZzKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtVcyhlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpWcyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gVXMoZSx0LG4pe3JldHVybih0PVdzKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIFdzKGUpe3ZhciB0PUdzKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIEdzKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9dmFyIEtzPU9iamVjdC52YWx1ZXMoSCkscXM9T2JqZWN0LnZhbHVlcyhWKTtmdW5jdGlvbiBKcyhlKXtyZXR1cm4gS3MuaW5jbHVkZXMoZSk/ZTpILnVua25vd259ZnVuY3Rpb24gWXMoZSl7cmV0dXJuIHFzLmluY2x1ZGVzKGUpP2U6Vi51bmtub3dufWZ1bmN0aW9uIFhzKGUsdCxuLHIpe2xldCBpPXthdXRoOk9hKCk/WXQubG9nZ2VkSW46WXQubm90TG9nZ2VkSW4sYWN0aW9uOnI/ZTpKcyhlKSxjb21wb25lbnRfdHlwZTpZcyh0KSxsb2dnaW5nX2lkOm4scGxhdGZvcm06VS5wbGF0Zm9ybSxwcm9qZWN0X25hbWU6VS5wcm9qZWN0TmFtZX07cmV0dXJuIHR5cGVvZiBFYS51c2VyVHlwZUVudW09PWBudW1iZXJgJiYoaS51c2VyX3R5cGVfZW51bT1FYS51c2VyVHlwZUVudW0pLGl9ZnVuY3Rpb24gWnMoZSx0KXtsZXQgbj1CbygpO2lmKCFlKXJldHVybiBVLm9uRXJyb3IoRXJyb3IoYG1pc3NpbmcgbG9nRGF0YWApKSxIcyhIcyh7fSxYcyhILnVua25vd24sVi51bmtub3duKSkse30se2xvY2FsZTpFYS5sb2NhbGUsc2Vzc2lvbl9sY2NfaWQ6RWEuc2Vzc2lvbl9sY2NfaWQsdGltZXN0YW1wOm4sdGltZV9zdGFydDpWby50aW1lU3RhcnR9KTtsZXQgcj10PT09YGVwcG9fYmFuZGl0X2Fzc2lnbm1lbnRgLGk9SHMoSHMoSHMoe30sZSksWHMoZS5hY3Rpb24sZS5jb21wb25lbnRUeXBlLGUubG9nZ2luZ0lkLHIpKSx7fSx7bG9jYWxlOkVhLmxvY2FsZSxzZXNzaW9uX2xjY19pZDpFYS5zZXNzaW9uX2xjY19pZCx0aW1lc3RhbXA6bix0aW1lX3N0YXJ0OlZvLnRpbWVTdGFydH0pO3JldHVybiBkZWxldGUgaS5jb21wb25lbnRUeXBlLGRlbGV0ZSBpLmxvZ2dpbmdJZCxpfXZhciBRcz17YmxhY2tsaXN0UmVnZXg6W10saXNFbmFibGVkOiExfTtmdW5jdGlvbiAkcygpe3JldHVybntwYWdlX2tleTpSdC5wYWdlS2V5LHBhZ2VfcGF0aDpSdC5wYWdlUGF0aCxwcmV2X3BhZ2Vfa2V5OlJ0LnByZXZQYWdlS2V5LHByZXZfcGFnZV9wYXRoOlJ0LnByZXZQYWdlUGF0aH19ZnVuY3Rpb24gZWMoZSl7T2JqZWN0LmFzc2lnbihRcyxlKX1mdW5jdGlvbiB0YyhlKXtRcy5pc0VuYWJsZWQmJihUbygpLE9iamVjdC5hc3NpZ24oZSwkcygpKSl9ZnVuY3Rpb24gbmMoZSx0LG49S3QubG93KXtpZihVLmRpc2FibGVSZXBvcnRpbmd8fEVhLmlzT3B0T3V0fHwhaW8oKSlyZXR1cm47bGV0IHI9WnModCxlKTt0YyhyKSxFbyhyKSxubyhyKSxyLmhhc19kb3VibGVfZmlyZWQ9ITE7bGV0IGk9YGA7aT1lPT09YGN1c3RvbWB8fGU9PT1gcGVyZm9ybWFuY2VgP3QuY3VzdG9tRXZlbnROYW1lOmUsci5ldmVudF90eXBlPWksbj09PUt0LmhpZ2g/QnMocixuKTphcygoKT0+e0JzKHIpfSl9ZnVuY3Rpb24gcmMoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBpYyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9yYyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7YWMoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6cmMoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIGFjKGUsdCxuKXtyZXR1cm4odD1vYyh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBvYyhlKXt2YXIgdD1zYyhlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBzYyhlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIGNjKCl7cmV0dXJue2F1dGhlZDpPYSgpP2B0cnVlYDpgZmFsc2VgLHBsYXRmb3JtOlUucGxhdGZvcm0scmVsZWFzZV9zdGFnZTpVLnJlbGVhc2VTdGFnZXx8bnVsbCxpc19sb3dfZW5kX2RldmljZTpUYS5pc19sb3dfZW5kX2RldmljZSxpc19sb3dfZW5kX2V4cGVyaWVuY2U6VGEuaXNfbG93X2VuZF9leHBlcmllbmNlfX1mdW5jdGlvbiBsYyhlKXtsZXQgdD1jYygpO3JldHVybiBlLm1hcChlPT57dmFyIG47bGV0IHI9ZS50YWdzPz97fTtyZXR1cm4gaWMoe21ldHJpY19uYW1lOmUubWV0cmljTmFtZSxwYWdlX3BhdGg6ZS5wYWdlUGF0aD8/bnVsbCx2YWx1ZTplLnZhbHVlLHRhZ3M6aWMoaWMoaWMoe30sdCkscikse30se3Byb2plY3RfbmFtZTpVLnByb2plY3ROYW1lLHZlcnNpb25fbmFtZTooKG49VS52ZXJzaW9uKT09bnVsbD92b2lkIDA6bi50b1N0cmluZygpKT8/bnVsbH0pLHR5cGU6ZS5tZXRyaWNUeXBlfSxlLmRhbmdlcm91c2x5U2V0TG9jYXRpb24/e2Rhbmdlcm91c2x5U2V0TG9jYXRpb246ZS5kYW5nZXJvdXNseVNldExvY2F0aW9ufTp7fSl9KX1mdW5jdGlvbiB1YyhlLHQ9ITEpe3Q/X3Moe3VybDpVLm1ldHJpY3NFbmRQb2ludCxkYXRhOnttZXRyaWNzOmV9LGlzSlNPTjohMCxvbkVycm9yOlUub25FcnJvcn0pOmFzKCgpPT57X3Moe3VybDpVLm1ldHJpY3NFbmRQb2ludCxkYXRhOnttZXRyaWNzOmV9LGlzSlNPTjohMCxvbkVycm9yOlUub25FcnJvcn0pfSksSW4oe21ldHJpY05hbWU6YEJhdGNoIE1ldHJpY3NgLGRhdGE6ZX0pfWZ1bmN0aW9uIGRjKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gZmMoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/ZGMoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3BjKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmRjKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBwYyhlLHQsbil7cmV0dXJuKHQ9bWModCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gbWMoZSl7dmFyIHQ9aGMoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gaGMoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBnYygpe2xldCBlPU9vKCk7ZS5sZW5ndGghPT0wJiZ1YyhsYyhlKSl9ZnVuY3Rpb24gX2MoZSl7aWYoVS5kaXNhYmxlUmVwb3J0aW5nfHwhaW8oKSlyZXR1cm47SnQuc2VydmVyIT09VS5wbGF0Zm9ybSYmIWUucGFnZVBhdGgmJlJ0LnBhZ2VQYXRoJiYoZS5wYWdlUGF0aD1SdC5wYWdlUGF0aCk7bGV0IHQ9cm8oKT9mYyhmYyh7fSxlLnRhZ3MpLHt9LHtsb2NhbGU6RWEubG9jYWxlLGRldmljZUNsYXNzOkVhLmRldmljZUNsYXNzLHVzZXJfdGllcjpFYS51c2VyVGllcixwYWdlX2tleTpSdC5wYWdlS2V5fSk6ZmMoZmMoZmMoe30sZS50YWdzKSxlbykse30se2xvY2FsZTpFYS5sb2NhbGUsZGV2aWNlQ2xhc3M6RWEuZGV2aWNlQ2xhc3MsdXNlcl90aWVyOkVhLnVzZXJUaWVyLHBhZ2Vfa2V5OlJ0LnBhZ2VLZXl9KTt0JiZPYmplY3QuYXNzaWduKGUse3RhZ3M6dH0pLERvLm1ldHJpY3NRdWV1ZS5wdXNoKGUpLG9zKGdjKX1mdW5jdGlvbiB2YyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIHljKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP3ZjKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtiYyhlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp2YyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gYmMoZSx0LG4pe3JldHVybih0PXhjKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHhjKGUpe3ZhciB0PVNjKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIFNjKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9dmFyIFc9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5zdGFudD1gaW5zdGFudGAsZS5xdWljaz1gcXVpY2tgLGUubW9kZXJhdGU9YG1vZGVyYXRlYCxlLnNsb3c9YHNsb3dgLGUudW5hdm9pZGFibGU9YHVuYXZvaWRhYmxlYCxlfSh7fSk7ZnVuY3Rpb24gQ2MoZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB3YyhlLHQpe1UhPW51bGwmJlUub25NYXJrU3RlcCYmVS5vbk1hcmtTdGVwKGUsdCksdG8oe3Vqczp0fSl9dmFyIFRjPTNlNCxFYz17fTtmdW5jdGlvbiBEYygpe3JldHVybnthbmFseXRpY3NUcmFja2VyOmU9PntsZXQgdD1lLmRhdGEsbj1lLmF0dHJpYnV0aW9uLHI9ZS5tZXRyaWNOYW1lLGk9ZS5uYXZpZ2F0b3JJbmZvcm1hdGlvbixhPWUucmF0aW5nLG89eW5bcl0scz0obj09bnVsbD92b2lkIDA6bi5jYXRlZ29yeSk/P251bGw7aWYoIW8mJiFzKXJldHVybjtsZXQgYz0oaT09bnVsbD92b2lkIDA6aS5kZXZpY2VNZW1vcnkpPz8wLGw9KGk9PW51bGw/dm9pZCAwOmkuaGFyZHdhcmVDb25jdXJyZW5jeSk/PzAsdT0oaT09bnVsbD92b2lkIDA6aS5pc0xvd0VuZERldmljZSk/PyExLGQ9KGk9PW51bGw/dm9pZCAwOmkuaXNMb3dFbmRFeHBlcmllbmNlKT8/ITEsZj0oaT09bnVsbD92b2lkIDA6aS5zZXJ2aWNlV29ya2VyU3RhdHVzKT8/YHVuc3VwcG9ydGVkYCxwPXljKHtkZXZpY2VNZW1vcnk6YyxoYXJkd2FyZUNvbmN1cnJlbmN5Omwsc2VydmljZVdvcmtlclN0YXR1czpmfSxFYyksbT17cGFnZV9rZXk6UnQucGFnZUtleT8/YGAsc2F2ZV9kYXRhOnQuc2F2ZURhdGE/PyExLHNlcnZpY2Vfd29ya2VyOmYsaXNfcGVyZl9tZXRyaWM6ITB9O2lmKElhKHtpc19sb3dfZW5kX2RldmljZTp1LGlzX2xvd19lbmRfZXhwZXJpZW5jZTpkfSksdG8oe2lzX2xvd19lbmRfZGV2aWNlOnUsaXNfbG93X2VuZF9leHBlcmllbmNlOmR9KSxyPT09YG5hdmlnYXRpb25UaW1pbmdgKXQmJnR5cGVvZiB0LnJlZGlyZWN0VGltZT09YG51bWJlcmAmJl9jKHttZXRyaWNOYW1lOnluLnJlZGlyZWN0VGltZS5ldmVudE5hbWUsbWV0cmljVHlwZTpCLmhpc3RvZ3JhbSx0YWdzOm0sdmFsdWU6dC5yZWRpcmVjdFRpbWU/PzB9KTtlbHNlIGlmKHI9PT1gVFRGQmApbmMoby5ldmVudE5hbWUseWMoe2FjdGlvbjpILm1lYXN1cmVtZW50LGNvbXBvbmVudFR5cGU6Vi5wYWdlLGR1cmF0aW9uOnQ/P251bGwsdml0YWxzU2NvcmU6YT8/bnVsbH0scCkpLF9jKHttZXRyaWNOYW1lOnluLlRURkIuZXZlbnROYW1lLG1ldHJpY1R5cGU6Qi5oaXN0b2dyYW0sdGFnczp5Yyh7fSxtKSx2YWx1ZTp0fSksYSYmX2Moe21ldHJpY05hbWU6YHBlcmZfd2ViX3ZpdGFsc190dGZiXyR7YX1gLG1ldHJpY1R5cGU6Qi5jb3VudCx0YWdzOm0sdmFsdWU6MX0pO2Vsc2UgaWYocj09PWBuZXR3b3JrSW5mb3JtYXRpb25gKXQhPW51bGwmJnQuZWZmZWN0aXZlVHlwZSYmKEVjPXQsbmMoby5ldmVudE5hbWUse2FjdGlvbjpILm1lYXN1cmVtZW50LGNvbXBvbmVudFR5cGU6Vi5wYWdlLG5ldHdvcmtJbmZvcm1hdGlvbkRvd25saW5rOnQuZG93bmxpbmssbmV0d29ya0luZm9ybWF0aW9uRWZmZWN0aXZlVHlwZTp0LmVmZmVjdGl2ZVR5cGUsbmV0d29ya0luZm9ybWF0aW9uUnR0OnQucnR0LG5ldHdvcmtJbmZvcm1hdGlvblNhdmVEYXRhOnQuc2F2ZURhdGEsbmF2aWdhdG9yRGV2aWNlTWVtb3J5OmMsbmF2aWdhdG9ySGFyZHdhcmVDb25jdXJyZW5jeTpsfSkpO2Vsc2UgaWYocj09PWBzdG9yYWdlRXN0aW1hdGVgKW5jKG8uZXZlbnROYW1lLHljKHljKHthY3Rpb246SC5tZWFzdXJlbWVudCxjb21wb25lbnRUeXBlOlYucGFnZX0sdCkscCkpLF9jKHttZXRyaWNOYW1lOmBwZXJmX3N0b3JhZ2VfZXN0aW1hdGVfY2FjaGVzYCxtZXRyaWNUeXBlOkIuaGlzdG9ncmFtLHRhZ3M6bSx2YWx1ZTp0LmNhY2hlc30pLF9jKHttZXRyaWNOYW1lOmBwZXJmX3N0b3JhZ2VfZXN0aW1hdGVfaW5kZXhlZF9kYmAsbWV0cmljVHlwZTpCLmhpc3RvZ3JhbSx0YWdzOm0sdmFsdWU6dC5pbmRleGVkREJ9KTtlbHNlIGlmKHI9PT1gQ0xTYCluYyhvLmV2ZW50TmFtZSx5Yyh7YWN0aW9uOkgubWVhc3VyZW1lbnQsY29tcG9uZW50VHlwZTpWLnBhZ2Usc2NvcmU6dCoxMDAsdml0YWxzU2NvcmU6YT8/bnVsbH0scCkpLGEmJl9jKHttZXRyaWNOYW1lOmBwZXJmX3dlYl92aXRhbHNfY2xzXyR7YX1gLG1ldHJpY1R5cGU6Qi5jb3VudCx0YWdzOm0sdmFsdWU6MX0pO2Vsc2UgaWYocj09PWBGSURgKXtsZXQgZT0obj09bnVsbD92b2lkIDA6bi5wZXJmb3JtYW5jZUVudHJ5KT8/bnVsbCxyPXBhcnNlSW50KChlPT1udWxsP3ZvaWQgMDplLnByb2Nlc3NpbmdTdGFydCk/P2BgKTtuYyhvLmV2ZW50TmFtZSx5Yyh7YWN0aW9uOkgubWVhc3VyZW1lbnQsY29tcG9uZW50VHlwZTpWLnBhZ2UsZHVyYXRpb246dD8/bnVsbCxwcm9jZXNzaW5nU3RhcnQ6ZSE9bnVsbCYmZS5wcm9jZXNzaW5nU3RhcnQ/cjpudWxsLHN0YXJ0VGltZTplIT1udWxsJiZlLnN0YXJ0VGltZT9wYXJzZUludChlLnN0YXJ0VGltZSk6bnVsbCx2aXRhbHNTY29yZTphPz9udWxsfSxwKSksYSYmX2Moe21ldHJpY05hbWU6YHBlcmZfd2ViX3ZpdGFsc19maWRWaXRhbHNfJHthfWAsbWV0cmljVHlwZTpCLmNvdW50LHRhZ3M6bSx2YWx1ZToxfSl9ZWxzZSByPT09YHVzZXJKb3VybmV5U3RlcGA/KG5jKGBwZXJmX3VzZXJfam91cm5leV9zdGVwYCx5Yyh7YWN0aW9uOkgubWVhc3VyZW1lbnQsY29tcG9uZW50VHlwZTpWLnBhZ2UsZHVyYXRpb246dD8/bnVsbCxyYXRpbmc6YT8/bnVsbCxzdGVwX25hbWU6KG49PW51bGw/dm9pZCAwOm4uc3RlcE5hbWUpPz9gYH0scCkpLF9jKHttZXRyaWNOYW1lOmB1c2VyX2pvdXJuZXlfc3RlcC4ke1UucHJvamVjdE5hbWV9LiR7VS5wbGF0Zm9ybX0uJHsobj09bnVsbD92b2lkIDA6bi5zdGVwTmFtZSk/P2BgfV92aXRhbHNfJHthfWAsbWV0cmljVHlwZTpCLmNvdW50LHRhZ3M6bSx2YWx1ZToxfSksX2Moe21ldHJpY05hbWU6YHVzZXJfam91cm5leV9zdGVwLiR7VS5wcm9qZWN0TmFtZX0uJHtVLnBsYXRmb3JtfS4keyhuPT1udWxsP3ZvaWQgMDpuLnN0ZXBOYW1lKT8/YGB9YCxtZXRyaWNUeXBlOkIuZGlzdHJpYnV0aW9uLHRhZ3M6bSx2YWx1ZTp0Pz9udWxsfSksX2Moe21ldHJpY05hbWU6YHVzZXJfam91cm5leV9zdGVwLiR7VS5wcm9qZWN0TmFtZX0uJHtVLnBsYXRmb3JtfS5kdXJhdGlvbl92aXRhbHNfJHthfWAsbWV0cmljVHlwZTpCLmNvdW50LHRhZ3M6eWMoeWMoe30sbSkse30se3N0ZXBfbmFtZToobj09bnVsbD92b2lkIDA6bi5zdGVwTmFtZSk/P2BgfSksdmFsdWU6MX0pLF9jKHttZXRyaWNOYW1lOmB1c2VyX2pvdXJuZXlfc3RlcC4ke1UucHJvamVjdE5hbWV9LiR7VS5wbGF0Zm9ybX0uZHVyYXRpb25gLG1ldHJpY1R5cGU6Qi5kaXN0cmlidXRpb24sdGFnczp5Yyh5Yyh7fSxtKSx7fSx7c3RlcF9uYW1lOihuPT1udWxsP3ZvaWQgMDpuLnN0ZXBOYW1lKT8/YGB9KSx2YWx1ZTp0Pz9udWxsfSkpOnluW3JdJiZ0JiYobmMoby5ldmVudE5hbWUseWMoe2FjdGlvbjpILm1lYXN1cmVtZW50LGNvbXBvbmVudFR5cGU6Vi5wYWdlLGR1cmF0aW9uOnQ/P251bGwsdml0YWxzU2NvcmU6YT8/bnVsbH0scCkpLGEmJihfYyh7bWV0cmljTmFtZTpgcGVyZl93ZWJfdml0YWxzXyR7Q2Mocil9XyR7YX1gLG1ldHJpY1R5cGU6Qi5jb3VudCx0YWdzOm0sdmFsdWU6MX0pLChyPT09YExDUGB8fHI9PT1gTlRCVGB8fHI9PT1gSU5QYHx8cj09PWBGQ1BgKSYmX2Moe21ldHJpY05hbWU6YHBlcmZfd2ViX3ZpdGFsc18ke0NjKHIpfWAsbWV0cmljVHlwZTpCLmRpc3RyaWJ1dGlvbix0YWdzOm0sdmFsdWU6dH0pKSl9LG1heE1lYXN1cmVUaW1lOlRjLHN0ZXBzOlUuc3RlcHMsb25NYXJrU3RlcDp3Y319dmFyIE9jPXttYXJrU3RlcDplPT57fSxtYXJrU3RlcE9uY2U6ZT0+e30sdHJhY2tVSk5hdmlnYXRpb246KCk9Pnt9LG1hcmtOVEJUOigpPT57fX07ZnVuY3Rpb24ga2MoKXtocigpJiZPYy5tYXJrTlRCVCYmT2MubWFya05UQlQoKX1mdW5jdGlvbiBBYyhlKXtocigpJiZPYy5tYXJrU3RlcCYmT2MubWFya1N0ZXAoZSl9ZnVuY3Rpb24gamMoZSl7aHIoKSYmT2MubWFya1N0ZXBPbmNlJiZPYy5tYXJrU3RlcE9uY2UoZSl9ZnVuY3Rpb24gTWMoKXtpZihocigpKXRyeXtsYShEYygpKSxPYy5tYXJrU3RlcD1nYSxPYy5tYXJrU3RlcE9uY2U9eWEsT2MudHJhY2tVSk5hdmlnYXRpb249ZmEsT2MubWFya05UQlQ9eGF9Y2F0Y2goZSl7ZSBpbnN0YW5jZW9mIEVycm9yJiZVLm9uRXJyb3IoZSl9fWZ1bmN0aW9uIE5jKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gUGMoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/TmMoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe0ZjKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOk5jKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBGYyhlLHQsbil7cmV0dXJuKHQ9SWModCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gSWMoZSl7dmFyIHQ9TGMoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gTGMoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX12YXIgUmM9e307ZnVuY3Rpb24gemMoZSl7bGV0IHQ9e3Rlc3RfbmFtZTplLnRlc3ROYW1lLGdyb3VwX25hbWU6ZS5ncm91cCxzdWJqZWN0X2lkOmUuc3ViamVjdElkLGV4cG9zZWRfYXQ6Qm8oKSxzdWJqZWN0X3R5cGU6ZS5zdWJqZWN0VHlwZSxwbGF0Zm9ybTpVLnBsYXRmb3JtLGVudHJ5X3BvaW50OmUuZW50cnlQb2ludH07cmV0dXJuIGUuc3ViamVjdFR5cGU9PT1gY3VzdG9tYCYmZS5jdXN0b21TdWJqZWN0VHlwZT9QYyhQYyh7fSx0KSx7fSx7Y3VzdG9tX3N1YmplY3RfdHlwZTplLmN1c3RvbVN1YmplY3RUeXBlfSk6UGMoe30sdCl9YXN5bmMgZnVuY3Rpb24gQmMoKXtyZXR1cm4gdnIoZm4pLnRoZW4oZT0+e1JjPWU/P3t9fSkuY2F0Y2goZT0+e2UgaW5zdGFuY2VvZiBFcnJvciYmVS5vbkVycm9yKGUpfSl9ZnVuY3Rpb24gVmMoZSl7bGV0IHQ9emMoZSk7aWYoUmNbZS50ZXN0TmFtZV09UmNbZS50ZXN0TmFtZV18fDAsUmNbZS50ZXN0TmFtZV0rM2U1PkJvKCkpe0xuKHttZXRyaWNOYW1lOmBFdmVudDogZXhwb3NlRXhwZXJpbWVudCAke2UudGVzdE5hbWV9IG5vdCBzZW50YCxkYXRhOnR9KTtyZXR1cm59UmNbZS50ZXN0TmFtZV09Qm8oKSx5cihmbixSYyksTG4oe21ldHJpY05hbWU6YEV2ZW50OiBleHBvc2VFeHBlcmltZW50ICR7ZS50ZXN0TmFtZX0gc2VudGAsZGF0YTp0fSksX3Moe3VybDpVLmV4cG9zdXJlRW5kcG9pbnQsZGF0YTpbdF0sb25FcnJvcjoodCxuKT0+e1JjW2UudGVzdE5hbWVdPTAseXIoZm4sUmMpLFUub25FcnJvcih0LG4pfSxpc0pTT046ITAsaW1wb3J0YW5jZTpLdC5oaWdofSl9ZnVuY3Rpb24gSGMoe2NhbGxNYXJrTlRCVDplPSEwLGV2ZW50SW1wb3J0YW5jZTp0PUt0Lmxvd309e30pe1UuZGlzYWJsZVJlcG9ydGluZ3x8aW8oKSYmKFFzLmJsYWNrbGlzdFJlZ2V4LnNvbWUoZT0+ZS50ZXN0KF9vKCkpKXx8KG5jKF9uLHthY3Rpb246SC5yZW5kZXIsY29tcG9uZW50VHlwZTpWLnBhZ2UsY2F0ZWdvcnk6YGF1dG9tYXRlZGB9LHQpLGUmJmtjKCkpKX1mdW5jdGlvbiBVYyhlKXthZGRFdmVudExpc3RlbmVyKGByZXNpemVgLCgpPT57cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57ZSgpfSl9KX12YXIgV2M9ITEsR2M9ITE7ZnVuY3Rpb24gS2MoZSl7V2M9IWUucGVyc2lzdGVkfWZ1bmN0aW9uIHFjKCl7YWRkRXZlbnRMaXN0ZW5lcihgcGFnZWhpZGVgLEtjKSxhZGRFdmVudExpc3RlbmVyKGBiZWZvcmV1bmxvYWRgLCgpPT57fSl9ZnVuY3Rpb24gSmMoZSx0PWBoaWRkZW5gLG49ITEpe0djfHwocWMoKSxHYz0hMCksYWRkRXZlbnRMaXN0ZW5lcihgdmlzaWJpbGl0eWNoYW5nZWAsKHt0aW1lU3RhbXA6bn0pPT57ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlPT09dCYmZSh7dGltZVN0YW1wOm4saXNVbmxvYWRpbmc6V2N9KX0se2NhcHR1cmU6ITAsb25jZTpufSl9ZnVuY3Rpb24gWWMoKXtnbi5mb3JFYWNoKGU9Pnthb1tlXSYmZGVsZXRlIGFvW2VdfSksR28oKX1mdW5jdGlvbiBYYygpe2xldCBlPUtvKEJvKCkpO2lmKGUmJlljKCksIWFvLmxhc3RFdmVudFRpbWV8fCFWby5zZXNzaW9uU3RhcnR8fCFlKXJldHVybjtsZXQgdD1NYXRoLnJvdW5kKChhby5sYXN0RXZlbnRUaW1lLVZvLnNlc3Npb25TdGFydCkvMWUzKTtpZih0PDF8fHQ+MzZlMylyZXR1cm47bGV0IG49Rm8odCk7bmModm4se2FjdGlvbjpILm1lYXN1cmVtZW50LGNvbXBvbmVudFR5cGU6Vi5wYWdlLHNlc3Npb25fZHVyYXRpb246dCxzZXNzaW9uX2VuZDphby5sYXN0RXZlbnRUaW1lLHNlc3Npb25fc3RhcnQ6Vm8uc2Vzc2lvblN0YXJ0LHNlc3Npb25fcmFuazpufSl9ZnVuY3Rpb24gWmMoKXtocigpJiYoSmMoKCk9Pntvbyh7bGFzdEV2ZW50VGltZTpCbygpfSksR28oKSx6cygpfSxgaGlkZGVuYCksSmMoKCk9PntYYygpfSxgdmlzaWJsZWApKX1mdW5jdGlvbiBRYygpe2hyKCkmJlVjKCgpPT57dmFyIGUsdDtMYSgpLE1hKHt3aWR0aDooKGU9d2luZG93KT09bnVsbD92b2lkIDA6ZS5pbm5lcldpZHRoKT8/bnVsbCxoZWlnaHQ6KCh0PXdpbmRvdyk9PW51bGw/dm9pZCAwOnQuaW5uZXJIZWlnaHQpPz9udWxsfSl9KX1mdW5jdGlvbiAkYyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGVsKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyPyRjKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXt0bChlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTokYyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gdGwoZSx0LG4pe3JldHVybih0PW5sKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIG5sKGUpe3ZhciB0PXJsKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIHJsKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9dmFyIGlsPVtdLGFsPVtdO2Z1bmN0aW9uIG9sKCl7bGV0IGU9aWwuc2hpZnQoKTtlJiZlKCl9ZnVuY3Rpb24gc2woKXtsZXQgZT1hbC5zaGlmdCgpO2UmJmUoKX1mdW5jdGlvbiBjbChlKXtsZXQgdD17fTtyZXR1cm4gZ24uZm9yRWFjaChuPT57ZVtuXSYmKHRbbl09ZVtuXSl9KSx0fWZ1bmN0aW9uIGxsKGUpe29vKGVsKGVsKHt9LGNsKGUpKSxibygpKSl9YXN5bmMgZnVuY3Rpb24gdWwoKXtsZXQgZT1hd2FpdCB2cihkbik7Y3Ioe2lzUmVhZHk6ITB9KSxvbCgpLGUmJihzbCgpLG9vKHtldmVudElkOmUuZXZlbnRJZD8/YW8uZXZlbnRJZCxzZXF1ZW5jZU51bWJlcjplLnNlcXVlbmNlTnVtYmVyPz9hby5zZXF1ZW5jZU51bWJlcixzZXNzaW9uSWQ6ZS5zZXNzaW9uSWQ/P2FvLnNlc3Npb25JZCxsYXN0RXZlbnRUaW1lOmUubGFzdEV2ZW50VGltZT8/YW8ubGFzdEV2ZW50VGltZSxzZXNzaW9uVVVJRDplLnNlc3Npb25VVUlEPz9hby5zZXNzaW9uVVVJRCxzZXNzaW9uU3RhcnQ6ZS5zZXNzaW9uU3RhcnQ/P2FvLnNlc3Npb25TdGFydH0pLGxsKGUpLEhvKHtzZXNzaW9uU3RhcnQ6ZS5zZXNzaW9uU3RhcnQ/P2FvLnNlc3Npb25TdGFydH0pLExvKHthYzplLmFjPz9Bby5hYyxhZjplLmFmPz9Bby5hZixhaDplLmFoPz9Bby5haCxhbDplLmFsPz9Bby5hbCxhbTplLmFtPz9Bby5hbSxhcjplLmFyPz9Bby5hcixhczplLmFzPz9Bby5hcyxwdjplLnB2Pz9Bby5wdn0pLFUudHJhY2tVc2VySWQmJlBhKHt1c2VySWQ6ZS51c2VySWQ/P0VhLnVzZXJJZH0pLFhjKCksTG4oe21ldHJpY05hbWU6YEluaXRpYWxpemVkIEFuYWx5dGljcyBJbmRleGVkREI6YCxkYXRhOmV9KSl9ZnVuY3Rpb24gZGwoZSl7UG4oZSksVnQoVS5wYWdlTG9hZFdpbmRvd01zPz8xZTQpLEZhKCksTGEoKSxfcigpLnRoZW4odWwpLmZpbmFsbHkocW8pLExuKHttZXRyaWNOYW1lOmBJbml0aWFsaXplZCBBbmFseXRpY3M6YCxkYXRhOntkZXZpY2VJZDpFYS5kZXZpY2VJZH19KSxpbC5wdXNoKCgpPT57QnMoKX0pLEJjKCksTmEoKSxaYygpLFFjKCksTWMoKX1mdW5jdGlvbiBmbChlKXtQYShlKSxlLnVzZXJBZ2VudCYmTmEoKSxMbih7bWV0cmljTmFtZTpgSWRlbnRpZnk6YCxkYXRhOntjb3VudHJ5Q29kZTpFYS5jb3VudHJ5Q29kZSxkZXZpY2VJZDpFYS5kZXZpY2VJZCx1c2VySWQ6RWEudXNlcklkfX0pfWZ1bmN0aW9uIHBsKHtibGFja2xpc3RSZWdleDplLHBhZ2VLZXlSZWdleDp0LGJyb3dzZXJIaXN0b3J5Om59KXtlYyh7YmxhY2tsaXN0UmVnZXg6ZT8/W10saXNFbmFibGVkOiEwfSksenQoe3BhZ2VLZXlSZWdleDp0fSksSGMoe2NhbGxNYXJrTlRCVDohMX0pLG4ubGlzdGVuKCgpPT57SGMoKX0pfXZhciBtbD17QnV0dG9uOntsYWJlbDpgY2JfYnV0dG9uYCx1dWlkOmBlOTIxYTA3NC00MGU2LTQzNzEtODcwMC0xMzRkNWNkNjMzZTZgLGNvbXBvbmVudFR5cGU6Vi5idXR0b259fTtmdW5jdGlvbiBobChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGdsKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP2hsKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtfbChlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpobChPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gX2woZSx0LG4pe3JldHVybih0PXZsKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHZsKGUpe3ZhciB0PXlsKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIHlsKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gYmwoZSx0LG4pe2xldCByPW4uY29tcG9uZW50TmFtZSxpPW4uZGF0YSxhPW4uYW5hbHl0aWNzSWQ7bmMoYGN1c3RvbWAsZ2woZ2woe2NvbXBvbmVudFR5cGU6ZS5jb21wb25lbnRUeXBlLGFjdGlvbjp0LGxvZ2dpbmdJZDplLnV1aWQsY29tcG9uZW50X25hbWU6cixjYXRlZ29yeTpgYXV0b21hdGVkYH0sYSYme2FuYWx5dGljc0lkOmF9KSx7fSx7Y3VzdG9tRXZlbnROYW1lOmE/YGF1dG9nZW5lcmF0ZWRfJHtlLmxhYmVsfV8ke3R9YDpgJHtlLmxhYmVsfWB9LGkpKX12YXIgeGw9e2FjdGlvbk1hcHBpbmc6e29uUHJlc3M6SC5jbGljayxvbkhvdmVyOkguaG92ZXJ9LGhhbmRsZXJzOntCdXR0b246e1tILmNsaWNrXTplPT5ibChtbC5CdXR0b24sSC5jbGljayxlKSxbSC5ob3Zlcl06ZT0+YmwobWwuQnV0dG9uLEguaG92ZXIsZSl9fX07ZnVuY3Rpb24gU2woZSx0PSExKXt0P19zKHt1cmw6VS50cmFjZXNFbmRwb2ludCxkYXRhOnt0cmFjZXM6ZX0saXNKU09OOiEwLG9uRXJyb3I6VS5vbkVycm9yfSk6YXMoKCk9Pntfcyh7dXJsOlUudHJhY2VzRW5kcG9pbnQsZGF0YTp7dHJhY2VzOmV9LGlzSlNPTjohMCxvbkVycm9yOlUub25FcnJvcn0pfSksSW4oe21ldHJpY05hbWU6YEJhdGNoIFRyYWNlc2AsZGF0YTplfSl9ZnVuY3Rpb24gQ2woZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiB3bChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9DbChPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7VGwoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6Q2woT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIFRsKGUsdCxuKXtyZXR1cm4odD1FbCh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBFbChlKXt2YXIgdD1EbChlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBEbChlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfXZhciBPbD0xZTY7ZnVuY3Rpb24ga2woZSl7cmV0dXJuIE1hdGgucm91bmQoZSpPbCl9ZnVuY3Rpb24gQWwoKXt2YXIgZTtyZXR1cm4oZT13aW5kb3cpPT1udWxsP3ZvaWQgMDplLmNyeXB0b31mdW5jdGlvbiBqbChlPUFsKCkpe2xldCB0PW5ldyBVaW50MzJBcnJheSgyKTtyZXR1cm4gZT09bnVsbHx8ZS5nZXRSYW5kb21WYWx1ZXModCksKChCaWdJbnQodFswXSk8PEJpZ0ludCgzMikpK0JpZ0ludCh0WzFdKSkudG9TdHJpbmcoKX1mdW5jdGlvbiBNbChlLHQpe3JldHVybnsieC1kYXRhZG9nLW9yaWdpbiI6YHJ1bWAsIngtZGF0YWRvZy1wYXJlbnQtaWQiOnQsIngtZGF0YWRvZy1zYW1wbGluZy1wcmlvcml0eSI6YDFgLCJ4LWRhdGFkb2ctdHJhY2UtaWQiOmV9fWZ1bmN0aW9uIE5sKGUpe3ZhciB0LG47bGV0IHI9ZS5uYW1lLGk9ZS50cmFjZUlkLGE9ZS5zcGFuSWQsbz1lLnN0YXJ0LHM9ZS5kdXJhdGlvbixjPWUucmVzb3VyY2UsbD1lLm1ldGEsdT1lLm1ldHJpY3MsZD1lLnBhcmVudElkLGY9KHQ9ZW8udWpzKT09bnVsbD92b2lkIDA6dC5qb2luKGAsIGApO3JldHVybiBlby50cmFjZV9pZD1pPz9qbCgpLHdsKHtkdXJhdGlvbjpzP2tsKHMpOjAsbmFtZTpyLHJlc291cmNlOmMsc2VydmljZTpVLnByb2plY3ROYW1lLHNwYW5faWQ6YT8/amwoKSxzdGFydDpvP2tsKG8pOjAsdHJhY2VfaWQ6ZW8udHJhY2VfaWQscGFyZW50X2lkOmQ/P2AxYCx0eXBlOmB3ZWJgLG1ldGE6d2wod2wod2woe3BsYXRmb3JtOlUucGxhdGZvcm19LFJ0LnBhZ2VLZXk/e3BhZ2Vfa2V5OlJ0LnBhZ2VLZXl9Ont9KSwobj1lby51anMpIT1udWxsJiZuLmxlbmd0aD97dWpzOmZ9Ont9KSxsPz97fSl9LHU/e21ldHJpY3M6dX06e30pfWZ1bmN0aW9uIFBsKGUsdCl7bGV0IG49d2wod2woe30sZS5tZXRhKSx0Lm1ldGEpLHI9d2wod2woe30sZS5tZXRyaWNzKSx0Lm1ldHJpY3MpLGk9e3N0YXJ0OnQuc3RhcnQ/a2wodC5zdGFydCk6ZS5zdGFydCxkdXJhdGlvbjp0LmR1cmF0aW9uP2tsKHQuZHVyYXRpb24pOmUuZHVyYXRpb259O09iamVjdC5hc3NpZ24oZSx0LHdsKHttZXRhOm4sbWV0cmljczpyfSxpKSl9ZnVuY3Rpb24gRmwoZSl7cmV0dXJuIGUubGVuZ3RoPjB9ZnVuY3Rpb24gSWwoZSx0KXtlLmZvckVhY2goZT0+UGwoZSx0KSl9ZnVuY3Rpb24gTGwoZSx0KXtVLmRpc2FibGVSZXBvcnRpbmd8fGlvKCkmJkZsKGUpJiYodCYmSWwoZSx0KSxEby50cmFjZXNRdWV1ZS5wdXNoKGUpLGNzKFNsKSYmKFNsKERvLnRyYWNlc1F1ZXVlKSxEby50cmFjZXNRdWV1ZT1bXSkpfWZ1bmN0aW9uIFJsKCl7dGhyb3cgRXJyb3IoYHNldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWRgKX1mdW5jdGlvbiB6bCgpe3Rocm93IEVycm9yKGBjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWRgKX1mdW5jdGlvbiBCbChlKXtpZigkbD09PXNldFRpbWVvdXQpcmV0dXJuIHNldFRpbWVvdXQoZSwwKTtpZigoJGw9PT1SbHx8ISRsKSYmc2V0VGltZW91dClyZXR1cm4gJGw9c2V0VGltZW91dCxzZXRUaW1lb3V0KGUsMCk7dHJ5e3JldHVybiAkbChlLDApfWNhdGNoe3RyeXtyZXR1cm4gJGwuY2FsbChudWxsLGUsMCl9Y2F0Y2h7cmV0dXJuICRsLmNhbGwodGhpcyxlLDApfX19ZnVuY3Rpb24gVmwoZSl7aWYoZXU9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dChlKTtpZigoZXU9PT16bHx8IWV1KSYmY2xlYXJUaW1lb3V0KXJldHVybiBldT1jbGVhclRpbWVvdXQsY2xlYXJUaW1lb3V0KGUpO3RyeXtyZXR1cm4gZXUoZSl9Y2F0Y2h7dHJ5e3JldHVybiBldS5jYWxsKG51bGwsZSl9Y2F0Y2h7cmV0dXJuIGV1LmNhbGwodGhpcyxlKX19fWZ1bmN0aW9uIEhsKCl7IW51fHwhcnV8fChudT0hMSxydS5sZW5ndGg/dHU9cnUuY29uY2F0KHR1KTppdT0tMSx0dS5sZW5ndGgmJlVsKCkpfWZ1bmN0aW9uIFVsKCl7aWYoIW51KXt2YXIgZT1CbChIbCk7bnU9ITA7Zm9yKHZhciB0PXR1Lmxlbmd0aDt0Oyl7Zm9yKHJ1PXR1LHR1PVtdOysraXU8dDspcnUmJnJ1W2l1XS5ydW4oKTtpdT0tMSx0PXR1Lmxlbmd0aH1ydT1udWxsLG51PSExLFZsKGUpfX1mdW5jdGlvbiBXbChlKXt2YXIgdD1BcnJheShhcmd1bWVudHMubGVuZ3RoLTEpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbi0xXT1hcmd1bWVudHNbbl07dHUucHVzaChuZXcgR2woZSx0KSksdHUubGVuZ3RoPT09MSYmIW51JiZCbChVbCl9ZnVuY3Rpb24gR2woZSx0KXt0aGlzLmZ1bj1lLHRoaXMuYXJyYXk9dH1mdW5jdGlvbiBLbCgpe31mdW5jdGlvbiBxbChlKXt0aHJvdyBFcnJvcihgcHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWRgKX1mdW5jdGlvbiBKbCgpe3JldHVybmAvYH1mdW5jdGlvbiBZbChlKXt0aHJvdyBFcnJvcihgcHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkYCl9ZnVuY3Rpb24gWGwoKXtyZXR1cm4gMH1mdW5jdGlvbiBabChlKXt2YXIgdD1idS5jYWxsKHl1KSouMDAxLG49TWF0aC5mbG9vcih0KSxyPU1hdGguZmxvb3IodCUxKjFlOSk7cmV0dXJuIGUmJihuLT1lWzBdLHItPWVbMV0scjwwJiYobi0tLHIrPTFlOSkpLFtuLHJdfWZ1bmN0aW9uIFFsKCl7cmV0dXJuKG5ldyBEYXRlLXh1KS8xZTN9dmFyICRsLGV1LHR1LG51LHJ1LGl1LGF1LG91LHN1LGN1LGx1LHV1LGR1LGZ1LHB1LG11LGh1LGd1LF91LHZ1LHl1LGJ1LHh1LFN1LEN1PW8oKCgpPT57JGw9UmwsZXU9emwsdHlwZW9mIGdsb2JhbFRoaXMuc2V0VGltZW91dD09YGZ1bmN0aW9uYCYmKCRsPXNldFRpbWVvdXQpLHR5cGVvZiBnbG9iYWxUaGlzLmNsZWFyVGltZW91dD09YGZ1bmN0aW9uYCYmKGV1PWNsZWFyVGltZW91dCksdHU9W10sbnU9ITEsaXU9LTEsR2wucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe3RoaXMuZnVuLmFwcGx5KG51bGwsdGhpcy5hcnJheSl9LGF1PWBicm93c2VyYCxvdT1gYnJvd3NlcmAsc3U9e30sY3U9W10sbHU9e30sdXU9e30sZHU9e30sZnU9S2wscHU9S2wsbXU9S2wsaHU9S2wsZ3U9S2wsX3U9S2wsdnU9S2wseXU9Z2xvYmFsVGhpcy5wZXJmb3JtYW5jZXx8e30sYnU9eXUubm93fHx5dS5tb3pOb3d8fHl1Lm1zTm93fHx5dS5vTm93fHx5dS53ZWJraXROb3d8fGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpfSx4dT1uZXcgRGF0ZSxTdT17bmV4dFRpY2s6V2wsdGl0bGU6YXUsYnJvd3NlcjohMCxlbnY6c3UsYXJndjpjdSx2ZXJzaW9uOmBgLHZlcnNpb25zOmx1LG9uOmZ1LGFkZExpc3RlbmVyOnB1LG9uY2U6bXUsb2ZmOmh1LHJlbW92ZUxpc3RlbmVyOmd1LHJlbW92ZUFsbExpc3RlbmVyczpfdSxlbWl0OnZ1LGJpbmRpbmc6cWwsY3dkOkpsLGNoZGlyOllsLHVtYXNrOlhsLGhydGltZTpabCxwbGF0Zm9ybTpvdSxyZWxlYXNlOnV1LGNvbmZpZzpkdSx1cHRpbWU6UWx9fSkpLHd1PXMoKGU9PntDdSgpO3ZhciB0PVN5bWJvbC5mb3IoYHJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50YCksbj1TeW1ib2wuZm9yKGByZWFjdC5wb3J0YWxgKSxyPVN5bWJvbC5mb3IoYHJlYWN0LmZyYWdtZW50YCksaT1TeW1ib2wuZm9yKGByZWFjdC5zdHJpY3RfbW9kZWApLGE9U3ltYm9sLmZvcihgcmVhY3QucHJvZmlsZXJgKSxvPVN5bWJvbC5mb3IoYHJlYWN0LmNvbnN1bWVyYCkscz1TeW1ib2wuZm9yKGByZWFjdC5jb250ZXh0YCksYz1TeW1ib2wuZm9yKGByZWFjdC5mb3J3YXJkX3JlZmApLGw9U3ltYm9sLmZvcihgcmVhY3Quc3VzcGVuc2VgKSx1PVN5bWJvbC5mb3IoYHJlYWN0Lm1lbW9gKSxkPVN5bWJvbC5mb3IoYHJlYWN0LmxhenlgKSxmPVN5bWJvbC5mb3IoYHJlYWN0LmFjdGl2aXR5YCkscD1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gbShlKXtyZXR1cm4gdHlwZW9mIGUhPWBvYmplY3RgfHwhZT9udWxsOihlPXAmJmVbcF18fGVbYEBAaXRlcmF0b3JgXSx0eXBlb2YgZT09YGZ1bmN0aW9uYD9lOm51bGwpfXZhciBoPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxnPU9iamVjdC5hc3NpZ24sXz17fTtmdW5jdGlvbiB2KGUsdCxuKXt0aGlzLnByb3BzPWUsdGhpcy5jb250ZXh0PXQsdGhpcy5yZWZzPV8sdGhpcy51cGRhdGVyPW58fGh9di5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fSx2LnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YCYmdHlwZW9mIGUhPWBmdW5jdGlvbmAmJmUhPW51bGwpdGhyb3cgRXJyb3IoYHRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLmApO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxlLHQsYHNldFN0YXRlYCl9LHYucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKGUpe3RoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcyxlLGBmb3JjZVVwZGF0ZWApfTtmdW5jdGlvbiB5KCl7fXkucHJvdG90eXBlPXYucHJvdG90eXBlO2Z1bmN0aW9uIGIoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Xyx0aGlzLnVwZGF0ZXI9bnx8aH12YXIgeD1iLnByb3RvdHlwZT1uZXcgeTt4LmNvbnN0cnVjdG9yPWIsZyh4LHYucHJvdG90eXBlKSx4LmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwO3ZhciBTPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gQygpe312YXIgdz17SDpudWxsLEE6bnVsbCxUOm51bGwsUzpudWxsfSxUPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gRShlLG4scil7dmFyIGk9ci5yZWY7cmV0dXJueyQkdHlwZW9mOnQsdHlwZTplLGtleTpuLHJlZjppPT09dm9pZCAwP251bGw6aSxwcm9wczpyfX1mdW5jdGlvbiBEKGUsdCl7cmV0dXJuIEUoZS50eXBlLHQsZS5wcm9wcyl9ZnVuY3Rpb24gTyhlKXtyZXR1cm4gdHlwZW9mIGU9PWBvYmplY3RgJiYhIWUmJmUuJCR0eXBlb2Y9PT10fWZ1bmN0aW9uIGsoZSl7dmFyIHQ9eyI9IjpgPTBgLCI6IjpgPTJgfTtyZXR1cm5gJGArZS5yZXBsYWNlKC9bPTpdL2csZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KX12YXIgQT0vXC8rL2c7ZnVuY3Rpb24gaihlLHQpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJmUmJmUua2V5IT1udWxsP2soYGArZS5rZXkpOnQudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIE0oZSl7c3dpdGNoKGUuc3RhdHVzKXtjYXNlYGZ1bGZpbGxlZGA6cmV0dXJuIGUudmFsdWU7Y2FzZWByZWplY3RlZGA6dGhyb3cgZS5yZWFzb247ZGVmYXVsdDpzd2l0Y2godHlwZW9mIGUuc3RhdHVzPT1gc3RyaW5nYD9lLnRoZW4oQyxDKTooZS5zdGF0dXM9YHBlbmRpbmdgLGUudGhlbihmdW5jdGlvbih0KXtlLnN0YXR1cz09PWBwZW5kaW5nYCYmKGUuc3RhdHVzPWBmdWxmaWxsZWRgLGUudmFsdWU9dCl9LGZ1bmN0aW9uKHQpe2Uuc3RhdHVzPT09YHBlbmRpbmdgJiYoZS5zdGF0dXM9YHJlamVjdGVkYCxlLnJlYXNvbj10KX0pKSxlLnN0YXR1cyl7Y2FzZWBmdWxmaWxsZWRgOnJldHVybiBlLnZhbHVlO2Nhc2VgcmVqZWN0ZWRgOnRocm93IGUucmVhc29ufX10aHJvdyBlfWZ1bmN0aW9uIE4oZSxyLGksYSxvKXt2YXIgcz10eXBlb2YgZTsocz09PWB1bmRlZmluZWRgfHxzPT09YGJvb2xlYW5gKSYmKGU9bnVsbCk7dmFyIGM9ITE7aWYoZT09PW51bGwpYz0hMDtlbHNlIHN3aXRjaChzKXtjYXNlYGJpZ2ludGA6Y2FzZWBzdHJpbmdgOmNhc2VgbnVtYmVyYDpjPSEwO2JyZWFrO2Nhc2Vgb2JqZWN0YDpzd2l0Y2goZS4kJHR5cGVvZil7Y2FzZSB0OmNhc2UgbjpjPSEwO2JyZWFrO2Nhc2UgZDpyZXR1cm4gYz1lLl9pbml0LE4oYyhlLl9wYXlsb2FkKSxyLGksYSxvKX19aWYoYylyZXR1cm4gbz1vKGUpLGM9YT09PWBgP2AuYCtqKGUsMCk6YSxTKG8pPyhpPWBgLGMhPW51bGwmJihpPWMucmVwbGFjZShBLGAkJi9gKStgL2ApLE4obyxyLGksYGAsZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSk6byE9bnVsbCYmKE8obykmJihvPUQobyxpKyhvLmtleT09bnVsbHx8ZSYmZS5rZXk9PT1vLmtleT9gYDooYGArby5rZXkpLnJlcGxhY2UoQSxgJCYvYCkrYC9gKStjKSksci5wdXNoKG8pKSwxO2M9MDt2YXIgbD1hPT09YGA/YC5gOmErYDpgO2lmKFMoZSkpZm9yKHZhciB1PTA7dTxlLmxlbmd0aDt1KyspYT1lW3VdLHM9bCtqKGEsdSksYys9TihhLHIsaSxzLG8pO2Vsc2UgaWYodT1tKGUpLHR5cGVvZiB1PT1gZnVuY3Rpb25gKWZvcihlPXUuY2FsbChlKSx1PTA7IShhPWUubmV4dCgpKS5kb25lOylhPWEudmFsdWUscz1sK2ooYSx1KyspLGMrPU4oYSxyLGkscyxvKTtlbHNlIGlmKHM9PT1gb2JqZWN0YCl7aWYodHlwZW9mIGUudGhlbj09YGZ1bmN0aW9uYClyZXR1cm4gTihNKGUpLHIsaSxhLG8pO3Rocm93IHI9U3RyaW5nKGUpLEVycm9yKGBPYmplY3RzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91bmQ6IGArKHI9PT1gW29iamVjdCBPYmplY3RdYD9gb2JqZWN0IHdpdGgga2V5cyB7YCtPYmplY3Qua2V5cyhlKS5qb2luKGAsIGApK2B9YDpyKStgKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLmApfXJldHVybiBjfWZ1bmN0aW9uIFAoZSx0LG4pe2lmKGU9PW51bGwpcmV0dXJuIGU7dmFyIHI9W10saT0wO3JldHVybiBOKGUscixgYCxgYCxmdW5jdGlvbihlKXtyZXR1cm4gdC5jYWxsKG4sZSxpKyspfSkscn1mdW5jdGlvbiBGKGUpe2lmKGUuX3N0YXR1cz09PS0xKXt2YXIgdD1lLl9yZXN1bHQ7dD10KCksdC50aGVuKGZ1bmN0aW9uKHQpeyhlLl9zdGF0dXM9PT0wfHxlLl9zdGF0dXM9PT0tMSkmJihlLl9zdGF0dXM9MSxlLl9yZXN1bHQ9dCl9LGZ1bmN0aW9uKHQpeyhlLl9zdGF0dXM9PT0wfHxlLl9zdGF0dXM9PT0tMSkmJihlLl9zdGF0dXM9MixlLl9yZXN1bHQ9dCl9KSxlLl9zdGF0dXM9PT0tMSYmKGUuX3N0YXR1cz0wLGUuX3Jlc3VsdD10KX1pZihlLl9zdGF0dXM9PT0xKXJldHVybiBlLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBlLl9yZXN1bHR9dmFyIGVlPXR5cGVvZiByZXBvcnRFcnJvcj09YGZ1bmN0aW9uYD9yZXBvcnRFcnJvcjpmdW5jdGlvbihlKXtpZih0eXBlb2Ygd2luZG93PT1gb2JqZWN0YCYmdHlwZW9mIHdpbmRvdy5FcnJvckV2ZW50PT1gZnVuY3Rpb25gKXt2YXIgdD1uZXcgd2luZG93LkVycm9yRXZlbnQoYGVycm9yYCx7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6dHlwZW9mIGU9PWBvYmplY3RgJiZlJiZ0eXBlb2YgZS5tZXNzYWdlPT1gc3RyaW5nYD9TdHJpbmcoZS5tZXNzYWdlKTpTdHJpbmcoZSksZXJyb3I6ZX0pO2lmKCF3aW5kb3cuZGlzcGF0Y2hFdmVudCh0KSlyZXR1cm59ZWxzZSBpZih0eXBlb2YgU3U9PWBvYmplY3RgJiZ0eXBlb2YgU3UuZW1pdD09YGZ1bmN0aW9uYCl7U3UuZW1pdChgdW5jYXVnaHRFeGNlcHRpb25gLGUpO3JldHVybn1jb25zb2xlLmVycm9yKGUpfSxJPXttYXA6UCxmb3JFYWNoOmZ1bmN0aW9uKGUsdCxuKXtQKGUsZnVuY3Rpb24oKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbil9LGNvdW50OmZ1bmN0aW9uKGUpe3ZhciB0PTA7cmV0dXJuIFAoZSxmdW5jdGlvbigpe3QrK30pLHR9LHRvQXJyYXk6ZnVuY3Rpb24oZSl7cmV0dXJuIFAoZSxmdW5jdGlvbihlKXtyZXR1cm4gZX0pfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighTyhlKSl0aHJvdyBFcnJvcihgUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuYCk7cmV0dXJuIGV9fTtlLkFjdGl2aXR5PWYsZS5DaGlsZHJlbj1JLGUuQ29tcG9uZW50PXYsZS5GcmFnbWVudD1yLGUuUHJvZmlsZXI9YSxlLlB1cmVDb21wb25lbnQ9YixlLlN0cmljdE1vZGU9aSxlLlN1c3BlbnNlPWwsZS5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU9dyxlLl9fQ09NUElMRVJfUlVOVElNRT17X19wcm90b19fOm51bGwsYzpmdW5jdGlvbihlKXtyZXR1cm4gdy5ILnVzZU1lbW9DYWNoZShlKX19LGUuY2FjaGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkobnVsbCxhcmd1bWVudHMpfX0sZS5jYWNoZVNpZ25hbD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLmNsb25lRWxlbWVudD1mdW5jdGlvbihlLHQsbil7aWYoZT09bnVsbCl0aHJvdyBFcnJvcihgVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCBgK2UrYC5gKTt2YXIgcj1nKHt9LGUucHJvcHMpLGk9ZS5rZXk7aWYodCE9bnVsbClmb3IoYSBpbiB0LmtleSE9PXZvaWQgMCYmKGk9YGArdC5rZXkpLHQpIVQuY2FsbCh0LGEpfHxhPT09YGtleWB8fGE9PT1gX19zZWxmYHx8YT09PWBfX3NvdXJjZWB8fGE9PT1gcmVmYCYmdC5yZWY9PT12b2lkIDB8fChyW2FdPXRbYV0pO3ZhciBhPWFyZ3VtZW50cy5sZW5ndGgtMjtpZihhPT09MSlyLmNoaWxkcmVuPW47ZWxzZSBpZigxPGEpe2Zvcih2YXIgbz1BcnJheShhKSxzPTA7czxhO3MrKylvW3NdPWFyZ3VtZW50c1tzKzJdO3IuY2hpbGRyZW49b31yZXR1cm4gRShlLnR5cGUsaSxyKX0sZS5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybiBlPXskJHR5cGVvZjpzLF9jdXJyZW50VmFsdWU6ZSxfY3VycmVudFZhbHVlMjplLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH0sZS5Qcm92aWRlcj1lLGUuQ29uc3VtZXI9eyQkdHlwZW9mOm8sX2NvbnRleHQ6ZX0sZX0sZS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPXt9LGE9bnVsbDtpZih0IT1udWxsKWZvcihyIGluIHQua2V5IT09dm9pZCAwJiYoYT1gYCt0LmtleSksdClULmNhbGwodCxyKSYmciE9PWBrZXlgJiZyIT09YF9fc2VsZmAmJnIhPT1gX19zb3VyY2VgJiYoaVtyXT10W3JdKTt2YXIgbz1hcmd1bWVudHMubGVuZ3RoLTI7aWYobz09PTEpaS5jaGlsZHJlbj1uO2Vsc2UgaWYoMTxvKXtmb3IodmFyIHM9QXJyYXkobyksYz0wO2M8bztjKyspc1tjXT1hcmd1bWVudHNbYysyXTtpLmNoaWxkcmVuPXN9aWYoZSYmZS5kZWZhdWx0UHJvcHMpZm9yKHIgaW4gbz1lLmRlZmF1bHRQcm9wcyxvKWlbcl09PT12b2lkIDAmJihpW3JdPW9bcl0pO3JldHVybiBFKGUsYSxpKX0sZS5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sZS5mb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpjLHJlbmRlcjplfX0sZS5pc1ZhbGlkRWxlbWVudD1PLGUubGF6eT1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6ZCxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmV9LF9pbml0OkZ9fSxlLm1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6dSx0eXBlOmUsY29tcGFyZTp0PT09dm9pZCAwP251bGw6dH19LGUuc3RhcnRUcmFuc2l0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PXcuVCxuPXt9O3cuVD1uO3RyeXt2YXIgcj1lKCksaT13LlM7aSE9PW51bGwmJmkobixyKSx0eXBlb2Ygcj09YG9iamVjdGAmJnImJnR5cGVvZiByLnRoZW49PWBmdW5jdGlvbmAmJnIudGhlbihDLGVlKX1jYXRjaChlKXtlZShlKX1maW5hbGx5e3QhPT1udWxsJiZuLnR5cGVzIT09bnVsbCYmKHQudHlwZXM9bi50eXBlcyksdy5UPXR9fSxlLnVuc3RhYmxlX3VzZUNhY2hlUmVmcmVzaD1mdW5jdGlvbigpe3JldHVybiB3LkgudXNlQ2FjaGVSZWZyZXNoKCl9LGUudXNlPWZ1bmN0aW9uKGUpe3JldHVybiB3LkgudXNlKGUpfSxlLnVzZUFjdGlvblN0YXRlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdy5ILnVzZUFjdGlvblN0YXRlKGUsdCxuKX0sZS51c2VDYWxsYmFjaz1mdW5jdGlvbihlLHQpe3JldHVybiB3LkgudXNlQ2FsbGJhY2soZSx0KX0sZS51c2VDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybiB3LkgudXNlQ29udGV4dChlKX0sZS51c2VEZWJ1Z1ZhbHVlPWZ1bmN0aW9uKCl7fSxlLnVzZURlZmVycmVkVmFsdWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdy5ILnVzZURlZmVycmVkVmFsdWUoZSx0KX0sZS51c2VFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdy5ILnVzZUVmZmVjdChlLHQpfSxlLnVzZUVmZmVjdEV2ZW50PWZ1bmN0aW9uKGUpe3JldHVybiB3LkgudXNlRWZmZWN0RXZlbnQoZSl9LGUudXNlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdy5ILnVzZUlkKCl9LGUudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHcuSC51c2VJbXBlcmF0aXZlSGFuZGxlKGUsdCxuKX0sZS51c2VJbnNlcnRpb25FZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdy5ILnVzZUluc2VydGlvbkVmZmVjdChlLHQpfSxlLnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiB3LkgudXNlTGF5b3V0RWZmZWN0KGUsdCl9LGUudXNlTWVtbz1mdW5jdGlvbihlLHQpe3JldHVybiB3LkgudXNlTWVtbyhlLHQpfSxlLnVzZU9wdGltaXN0aWM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdy5ILnVzZU9wdGltaXN0aWMoZSx0KX0sZS51c2VSZWR1Y2VyPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdy5ILnVzZVJlZHVjZXIoZSx0LG4pfSxlLnVzZVJlZj1mdW5jdGlvbihlKXtyZXR1cm4gdy5ILnVzZVJlZihlKX0sZS51c2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdy5ILnVzZVN0YXRlKGUpfSxlLnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdy5ILnVzZVN5bmNFeHRlcm5hbFN0b3JlKGUsdCxuKX0sZS51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHcuSC51c2VUcmFuc2l0aW9uKCl9LGUudmVyc2lvbj1gMTkuMi40YH0pKSxUdT1zKCgoZSx0KT0+e3QuZXhwb3J0cz13dSgpfSkpLEc9dShUdSgpKTtmdW5jdGlvbiBFdShlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIER1KGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP0V1KE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtPdShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpFdShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gT3UoZSx0LG4pe3JldHVybih0PWt1KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIGt1KGUpe3ZhciB0PUF1KGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIEF1KGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24ganUoZSx0LG49S3QubG93KXsoMCxHLnVzZUVmZmVjdCkoKCk9PntuYyhlLER1KER1KHt9LHQpLHt9LHthY3Rpb246SC5yZW5kZXJ9KSxuKX0sW10pfWZ1bmN0aW9uIE11KGUpe3JldHVybiBlIT1udWxsJiZlIT09YGB9ZnVuY3Rpb24gTnUoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBQdShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9OdShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7RnUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6TnUoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIEZ1KGUsdCxuKXtyZXR1cm4odD1JdSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBJdShlKXt2YXIgdD1MdShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBMdShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIFJ1KCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKFB1KFB1KFB1KHt9LGVvKSwkcygpKSx7fSx7c2Vzc2lvblVVSUQ6YW8uc2Vzc2lvblVVSUQsdXNlcklkOmFvLnVzZXJJZCxsb2NhbGU6RWEubG9jYWxlLGNvdW50cnlDb2RlOkVhLmNvdW50cnlDb2RlfSkpLnJlZHVjZSgoZSx0KT0+TXUodFsxXSk/UHUoUHUoe30sZSkse30se1t0WzBdXTp0WzFdfSk6ZSx7fSl9ZnVuY3Rpb24genUoZSl7cmV0dXJuIGU9PT12b2lkIDB8fGUubGVuZ3RoPT09MD9gYDplLmpvaW4oYCxgKX1mdW5jdGlvbiBCdSgpe3JldHVybnsiWC1DQi1EZXZpY2UtSUQiOkVhLmRldmljZUlkPz9gdW5rbm93bmAsIlgtQ0ItVXNlci1JRCI6RWEudXNlcklkPz9gdW5rbm93bmAsIlgtQ0ItSXMtTG9nZ2VkLUluIjpFYS51c2VySWQ/YHRydWVgOmBmYWxzZWAsIlgtQ0ItUGFnZWtleSI6UnQucGFnZUtleXx8YHVua25vd25gLCJYLUNCLVVKUyI6enUoZW8udWpzKSwiWC1DQi1QbGF0Zm9ybSI6VS5wbGF0Zm9ybXx8YHVua25vd25gLCJYLUNCLVByb2plY3QtTmFtZSI6VS5wcm9qZWN0TmFtZXx8YHVua25vd25gLCJYLUNCLVNlc3Npb24tVVVJRCI6YW8uc2Vzc2lvblVVSUQ/P2B1bmtub3duYCwiWC1DQi1WZXJzaW9uLU5hbWUiOlUudmVyc2lvbj9TdHJpbmcoVS52ZXJzaW9uKTpgdW5rbm93bmB9fXZhciBWdT1mdW5jdGlvbihlKXtyZXR1cm4gZS51bmtub3duPWB1bmtub3duYCxlLndlYj1gd2ViYCxlLmFuZHJvaWQ9YGFuZHJvaWRgLGUuaW9zPWBpb3NgLGUubW9iaWxlX3dlYj1gbW9iaWxlX3dlYmAsZS50YWJsZXRfd2ViPWB0YWJsZXRfd2ViYCxlLnNlcnZlcj1gc2VydmVyYCxlLndpbmRvd3M9YHdpbmRvd3NgLGUubWFjb3M9YG1hY29zYCxlLmV4dGVuc2lvbj1gZXh0ZW5zaW9uYCxlfSh7fSksSHU9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuY291bnQ9YGNvdW50YCxlLnJhdGU9YHJhdGVgLGUuZ2F1Z2U9YGdhdWdlYCxlLmRpc3RyaWJ1dGlvbj1gZGlzdHJpYnV0aW9uYCxlLmhpc3RvZ3JhbT1gaGlzdG9ncmFtYCxlfSh7fSksVXU9e2RlZmF1bHQ6e2Rpc2FibGVkOiExLHNlcnZpY2VVcmw6YGAsc2NvcGU6YGAscGxhdGZvcm06VnUudW5rbm93bix2ZXJzaW9uOmBgfX0sV3U9e2RlZmF1bHQ6e319O2Z1bmN0aW9uIEd1KGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gS3UoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/R3UoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3F1KGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOkd1KE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBxdShlLHQsbil7cmV0dXJuKHQ9SnUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gSnUoZSl7dmFyIHQ9WXUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gWXUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX12YXIgWHU9KDAsRy5jcmVhdGVDb250ZXh0KSh7c2NvcGU6YGRlZmF1bHRgLGNsaWVudEtpbGxTd2l0Y2hDb25maWc6e30sc2V0S2lsbFN3aXRjaENvbmZpZygpe1V1LmRlZmF1bHQuY29udGV4dEVycm9ySGFuZGxlciYmVXUuZGVmYXVsdC5jb250ZXh0RXJyb3JIYW5kbGVyKCl9fSk7ZnVuY3Rpb24gWnUoZSx0KXtpZighdClyZXR1cm4gZTtsZXQgbj0hMTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaChyPT57dFtyXSE9PXZvaWQgMCYmZVtyXSE9PXRbcl0/KGVbcl09dFtyXSxuPSEwKTp0W3JdPT09dm9pZCAwJiYoZVtyXSYmKG49ITApLGVbcl09ITEpfSksbj9LdSh7fSxlKTplfXZhciBRdT1zKCgoZSx0KT0+eyhmdW5jdGlvbihuKXt2YXIgcj10eXBlb2YgZT09YG9iamVjdGAmJmUsaT10eXBlb2YgdD09YG9iamVjdGAmJnQmJnQuZXhwb3J0cz09ciYmdCxhPXR5cGVvZiBnbG9iYWxUaGlzPT1gb2JqZWN0YCYmZ2xvYmFsVGhpczsoYS5nbG9iYWw9PT1hfHxhLndpbmRvdz09PWEpJiYobj1hKTt2YXIgbz1mdW5jdGlvbihlKXt0aGlzLm1lc3NhZ2U9ZX07by5wcm90b3R5cGU9RXJyb3IoKSxvLnByb3RvdHlwZS5uYW1lPWBJbnZhbGlkQ2hhcmFjdGVyRXJyb3JgO3ZhciBzPWZ1bmN0aW9uKGUpe3Rocm93IG5ldyBvKGUpfSxjPWBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvYCxsPS9bXHRcblxmXHIgXS9nLHU9e2VuY29kZTpmdW5jdGlvbihlKXtlPVN0cmluZyhlKSwvW15cMC1ceEZGXS8udGVzdChlKSYmcyhgVGhlIHN0cmluZyB0byBiZSBlbmNvZGVkIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgTGF0aW4xIHJhbmdlLmApO2Zvcih2YXIgdD1lLmxlbmd0aCUzLG49YGAscj0tMSxpLGEsbyxsLHU9ZS5sZW5ndGgtdDsrK3I8dTspaT1lLmNoYXJDb2RlQXQocik8PDE2LGE9ZS5jaGFyQ29kZUF0KCsrcik8PDgsbz1lLmNoYXJDb2RlQXQoKytyKSxsPWkrYStvLG4rPWMuY2hhckF0KGw+PjE4JjYzKStjLmNoYXJBdChsPj4xMiY2MykrYy5jaGFyQXQobD4+NiY2MykrYy5jaGFyQXQobCY2Myk7cmV0dXJuIHQ9PTI/KGk9ZS5jaGFyQ29kZUF0KHIpPDw4LGE9ZS5jaGFyQ29kZUF0KCsrciksbD1pK2Esbis9Yy5jaGFyQXQobD4+MTApK2MuY2hhckF0KGw+PjQmNjMpK2MuY2hhckF0KGw8PDImNjMpK2A9YCk6dD09MSYmKGw9ZS5jaGFyQ29kZUF0KHIpLG4rPWMuY2hhckF0KGw+PjIpK2MuY2hhckF0KGw8PDQmNjMpK2A9PWApLG59LGRlY29kZTpmdW5jdGlvbihlKXtlPVN0cmluZyhlKS5yZXBsYWNlKGwsYGApO3ZhciB0PWUubGVuZ3RoO3QlND09MCYmKGU9ZS5yZXBsYWNlKC89PT8kLyxgYCksdD1lLmxlbmd0aCksKHQlND09MXx8L1teK2EtekEtWjAtOS9dLy50ZXN0KGUpKSYmcyhgSW52YWxpZCBjaGFyYWN0ZXI6IHRoZSBzdHJpbmcgdG8gYmUgZGVjb2RlZCBpcyBub3QgY29ycmVjdGx5IGVuY29kZWQuYCk7Zm9yKHZhciBuPTAscixpLGE9YGAsbz0tMTsrK288dDspaT1jLmluZGV4T2YoZS5jaGFyQXQobykpLHI9biU0P3IqNjQraTppLG4rKyU0JiYoYSs9U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmcj4+KC0yKm4mNikpKTtyZXR1cm4gYX0sdmVyc2lvbjpgMS4wLjBgfTtpZih0eXBlb2YgZGVmaW5lPT1gZnVuY3Rpb25gJiZ0eXBlb2YgZGVmaW5lLmFtZD09YG9iamVjdGAmJmRlZmluZS5hbWQpZGVmaW5lKGZ1bmN0aW9uKCl7cmV0dXJuIHV9KTtlbHNlIGlmKHImJiFyLm5vZGVUeXBlKWlmKGkpaS5leHBvcnRzPXU7ZWxzZSBmb3IodmFyIGQgaW4gdSl1Lmhhc093blByb3BlcnR5KGQpJiYocltkXT11W2RdKTtlbHNlIG4uYmFzZTY0PXV9KShlKX0pKSgpO2FzeW5jIGZ1bmN0aW9uICR1KGUpe2xldCB0PWU/P3t9LG49dC5vcHRpb25hbFNjb3BlLHI9dC5vcHRpb25hbEtpbGxTd2l0Y2hVcmwsaT10Lm9wdGlvbmFsQXBpUGFyYW1zLGE9bj8/YGRlZmF1bHRgO3RyeXt2YXIgbyxzLGMsbDtsZXQgZT17c2NvcGU6bj8obz1VdVtuXSk9PW51bGw/dm9pZCAwOm8uc2NvcGU6VXUuZGVmYXVsdC5zY29wZSxwbGF0Zm9ybTpuPyhzPVV1W25dKT09bnVsbD92b2lkIDA6cy5wbGF0Zm9ybTpVdS5kZWZhdWx0LnBsYXRmb3JtLHZlcnNpb246bj8oYz1VdVtuXSk9PW51bGw/dm9pZCAwOmMudmVyc2lvbjpVdS5kZWZhdWx0LnZlcnNpb259LHQ9KDAsUXUuZW5jb2RlKShKU09OLnN0cmluZ2lmeShpPz9lKSksdT1yPz8oKGw9VXVbYV0pPT1udWxsP3ZvaWQgMDpsLnNlcnZpY2VVcmwpLGQ9YXdhaXQgZmV0Y2goYCR7dX0/cT0ke3R9YCx7aGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6YGFwcGxpY2F0aW9uL2pzb25gfX0pLnRoZW4oYXN5bmMgZT0+ZS5qc29uKCkpO3JldHVybiBkLmtpbGxzd2l0Y2hlcz9kLmtpbGxzd2l0Y2hlczpudWxsfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBFcnJvcil7dmFyIHUsZDsodT1VdVthXSk9PW51bGx8fChkPXUuZmV0Y2hFcnJvckhhbmRsZXIpPT1udWxsfHxkLmNhbGwodSxlKX1yZXR1cm4gbnVsbH19ZnVuY3Rpb24gZWQoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiB0ZChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9lZChPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7bmQoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6ZWQoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIG5kKGUsdCxuKXtyZXR1cm4odD1yZCh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiByZChlKXt2YXIgdD1pZChlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBpZChlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWFzeW5jIGZ1bmN0aW9uIGFkKGUsdCl7dmFyIG47bGV0IHI9dC5zY29wZTtpZihPYmplY3Qua2V5cyhXdSkuaW5jbHVkZXMocik/KGNvbnNvbGUud2FybihgWW91IGFyZSBpbml0aWFsaXppbmcgdGhlIGtpbGwgc3dpdGNoIHBhY2thZ2Ugd2l0aCB0aGUgc2FtZSBzY29wZSBhcyB0aGUgcHJpb3IgaW5pdGlhbGl6YXRpb24uIFRoaXMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIFNlZSBodHRwczovL2RvY3MuY2JocS5uZXQvZnJvbnRlbmQvcmVzaWxpZW5jZS9jbGllbnQta2lsbC1zd2l0Y2gvb3ZlcnZpZXcgZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksV3Vbcl09dGQoe30sdGQodGQoe30sV3Vbcl0pLGUpKSk6KFV1W3JdPXRkKHt9LHQpLFd1W3JdPXRkKHt9LGUpKSxVdVtyXS5kaXNhYmxlZClyZXR1cm47bGV0IGk9YXdhaXQgJHUoe29wdGlvbmFsU2NvcGU6cn0pO2lmKFV1W3JdLmxvZ2dlciYmaSl7dmFyIGE7bGV0IGU9YGVuYWJsZV9sb2dnaW5nX21ldHJpY3NfJHsoYT1VdVtyXS5sb2dnZXIpPT1udWxsP3ZvaWQgMDphLnBsYXRmb3JtfWA7VXVbcl0ubG9nZ2VyLmVuYWJsZUxvZ2dpbmc9aVtlXX1sZXQgbz1adShXdVtyXSxpKTtpZihPYmplY3QuYXNzaWduKFd1W3JdLG8pLChuPVV1W3JdLmxvZ2dlcikhPW51bGwmJm4uZW5hYmxlTG9nZ2luZyl7Zm9yKGxldCBlIGluIFd1W3JdKWlmKFd1W3JdW2VdKXt2YXIgczsocz1VdVtyXS5sb2dnZXIpPT1udWxsfHxzLmxvZ01ldHJpYyh7bWV0cmljTmFtZTpga2lsbF9zd2l0Y2hfaW5pdGlhbGl6ZWRgLG1ldHJpY1R5cGU6SHUuY291bnQsdmFsdWU6MX0pO2JyZWFrfX1yZXR1cm4gV3Vbcl19dmFyIG9kPXMoKGU9Pnt2YXIgdD1TeW1ib2wuZm9yKGByZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudGApLG49U3ltYm9sLmZvcihgcmVhY3QuZnJhZ21lbnRgKTtmdW5jdGlvbiByKGUsbixyKXt2YXIgaT1udWxsO2lmKHIhPT12b2lkIDAmJihpPWBgK3IpLG4ua2V5IT09dm9pZCAwJiYoaT1gYCtuLmtleSksYGtleWBpbiBuKWZvcih2YXIgYSBpbiByPXt9LG4pYSE9PWBrZXlgJiYoclthXT1uW2FdKTtlbHNlIHI9bjtyZXR1cm4gbj1yLnJlZix7JCR0eXBlb2Y6dCx0eXBlOmUsa2V5OmkscmVmOm49PT12b2lkIDA/bnVsbDpuLHByb3BzOnJ9fWUuRnJhZ21lbnQ9bixlLmpzeD1yLGUuanN4cz1yfSkpLHNkPXMoKChlLHQpPT57dC5leHBvcnRzPW9kKCl9KSksSz1zZCgpO2Z1bmN0aW9uIGNkKGUsdCl7cmV0dXJuIHBkKGUpfHxmZChlLHQpfHx1ZChlLHQpfHxsZCgpfWZ1bmN0aW9uIGxkKCl7dGhyb3cgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gdWQoZSx0KXtpZihlKXtpZih0eXBlb2YgZT09YHN0cmluZ2ApcmV0dXJuIGRkKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4gbj09PWBPYmplY3RgJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLG49PT1gTWFwYHx8bj09PWBTZXRgP0FycmF5LmZyb20oZSk6bj09PWBBcmd1bWVudHNgfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9kZChlLHQpOnZvaWQgMH19ZnVuY3Rpb24gZGQoZSx0KXsodD09bnVsbHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIGZkKGUsdCl7dmFyIG49ZT09bnVsbD9udWxsOnR5cGVvZiBTeW1ib2w8YHVgJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbYEBAaXRlcmF0b3JgXTtpZihuIT1udWxsKXt2YXIgcixpLGEsbyxzPVtdLGM9ITAsbD0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsdD09PTApe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYocy5wdXNoKHIudmFsdWUpLHMubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe2w9ITAsaT1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZuLnJldHVybiE9bnVsbCYmKG89bi5yZXR1cm4oKSxPYmplY3QobykhPT1vKSlyZXR1cm59ZmluYWxseXtpZihsKXRocm93IGl9fXJldHVybiBzfX1mdW5jdGlvbiBwZChlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfXZhciBtZD0zMCoxZTM7ZnVuY3Rpb24gaGQoe2NoaWxkcmVuOmUsaW5pdGlhbEtpbGxTd2l0Y2hlczp0LHNjb3BlOm4sb25LaWxsU3dpdGNoQ29uZmlnQ2hhbmdlZDpyfSl7bGV0IGk9Y2QoKDAsRy51c2VTdGF0ZSkodHlwZW9mIHQ9PWBmdW5jdGlvbmA/dCgpOnRbbl0pLDIpLGE9aVswXSxvPWlbMV0scz0oMCxHLnVzZU1lbW8pKCgpPT4oe3Njb3BlOm4sY2xpZW50S2lsbFN3aXRjaENvbmZpZzphLHNldEtpbGxTd2l0Y2hDb25maWc6ZT0+e2xldCB0PVp1KGEsZSk7dCE9PWEmJihvKHQpLHI9PW51bGx8fHIodCkpfX0pLFtuLGEscl0pO3JldHVybigwLEcudXNlRWZmZWN0KSgoKT0+e3ZhciBlLHQ7aWYoKGU9VXVbbl0pIT1udWxsJiZlLmRpc2FibGVkKXJldHVybjtsZXQgcj1hc3luYygpPT57dmFyIGUsdDtpZigoKGU9VXVbbl0pPT1udWxsP3ZvaWQgMDplLnBsYXRmb3JtKT09PVZ1LnNlcnZlcnx8dHlwZW9mIGRvY3VtZW50PGB1YCYmZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlPT09YGhpZGRlbmApcmV0dXJuO2xldCByPWF3YWl0ICR1KHtvcHRpb25hbFNjb3BlOm59KTtpZihyIT09bnVsbCYmKHMuc2V0S2lsbFN3aXRjaENvbmZpZyhyKSwodD1VdVtuXSkhPW51bGwmJnQubG9nZ2VyKSl7bGV0IGU9VXVbbl0ubG9nZ2VyO2UuZW5hYmxlTG9nZ2luZz1yW2BlbmFibGVfbG9nZ2luZ19tZXRyaWNzXyR7ZS5wbGF0Zm9ybX1gXX19LGksYT0oKT0+e2NsZWFySW50ZXJ2YWwoaSksaT1zZXRJbnRlcnZhbChyLG1kKX07YSgpO2xldCBvPXR5cGVvZiBkb2N1bWVudDxgdWAmJigodD1VdVtuXSk9PW51bGw/dm9pZCAwOnQucGxhdGZvcm0pIT09VnUuc2VydmVyLGM9KCk9Pntkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT1gdmlzaWJsZWAmJihyKCkuY2F0Y2goZT0+e3ZhciB0LHI7KHQ9VXVbbl0pPT1udWxsfHwocj10LmZldGNoRXJyb3JIYW5kbGVyKT09bnVsbHx8ci5jYWxsKHQsZSBpbnN0YW5jZW9mIEVycm9yP2U6RXJyb3IoU3RyaW5nKGUpKSl9KSxhKCkpfTtyZXR1cm4gbyYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihgdmlzaWJpbGl0eWNoYW5nZWAsYyksKCk9PntjbGVhckludGVydmFsKGkpLG8mJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoYHZpc2liaWxpdHljaGFuZ2VgLGMpfX0sW10pLCgwLEsuanN4KShYdS5Qcm92aWRlcix7dmFsdWU6cyxjaGlsZHJlbjplfSl9dmFyIGdkPW5ldyBTZXQ7ZnVuY3Rpb24gX2QoZSl7dmFyIHQ7bGV0IG49KDAsRy51c2VDb250ZXh0KShYdSkscj1uLnNjb3BlO2lmKGU9PT1udWxsKXJldHVybiExO2xldCBpPWU7aWYoIShpIGluIFd1W3JdKSl7bGV0IGU9cj09PWBkZWZhdWx0YD9gWW91IGFyZSB1c2luZyB0aGUgJHtpfSBraWxsIHN3aXRjaCBvdXRzaWRlIG9mIHRoZSBDbGllbnRLaWxsU3dpdGNoUHJvdmlkZXIuYDpgJHtpfSBpcyBub3QgaW4gdGhlICR7cn0ncyBjbGllbnQga2lsbCBzd2l0Y2ggb2JqZWN0LmA7cmV0dXJuIGNvbnNvbGUuZXJyb3IoZSksITF9aWYobi5jbGllbnRLaWxsU3dpdGNoQ29uZmlnKXt2YXIgYTtsZXQgZT1uLmNsaWVudEtpbGxTd2l0Y2hDb25maWdbaV18fCExLHQ9YCR7cn06JHtpfWA7aWYoISgoYT1VdVtyXSk9PW51bGx8fChhPWEubG9nZ2VyKT09bnVsbCkmJmEuZW5hYmxlTG9nZ2luZyYmZSYmIWdkLmhhcyh0KSl7dmFyIG87KG89VXVbcl0pPT1udWxsfHwobz1vLmxvZ2dlcik9PW51bGx8fG8ubG9nTWV0cmljKHttZXRyaWNOYW1lOmBraWxsX3N3aXRjaGVzX2VuYWJsZWRgLG1ldHJpY1R5cGU6SHUuY291bnQsdmFsdWU6MSx0YWdzOntraWxsX3N3aXRjaDppfX0pLGdkLmFkZCh0KX1yZXR1cm4gZX1lbHNlIGlmKCh0PVV1W3JdKSE9bnVsbCYmdC5ob29rRXJyb3JIYW5kbGVyKXt2YXIgcyxjOyhzPShjPVV1W3JdKS5ob29rRXJyb3JIYW5kbGVyKT09bnVsbHx8cy5jYWxsKGMpfXJldHVybiExfXZhciB2ZD1zKCgoZSx0KT0+e3ZhciBuPS9ccy87ZnVuY3Rpb24gcihlKXtmb3IodmFyIHQ9ZS5sZW5ndGg7dC0tJiZuLnRlc3QoZS5jaGFyQXQodCkpOyk7cmV0dXJuIHR9dC5leHBvcnRzPXJ9KSkseWQ9cygoKGUsdCk9Pnt2YXIgbj12ZCgpLHI9L15ccysvO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUmJmUuc2xpY2UoMCxuKGUpKzEpLnJlcGxhY2UocixgYCl9dC5leHBvcnRzPWl9KSksYmQ9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUpe3ZhciB0PXR5cGVvZiBlO3JldHVybiBlIT1udWxsJiYodD09YG9iamVjdGB8fHQ9PWBmdW5jdGlvbmApfXQuZXhwb3J0cz1ufSkpLHhkPXMoKChlLHQpPT57dC5leHBvcnRzPXR5cGVvZiBnbG9iYWxUaGlzPT1gb2JqZWN0YCYmZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcy5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbFRoaXN9KSksU2Q9cygoKGUsdCk9Pnt2YXIgbj14ZCgpLHI9dHlwZW9mIHNlbGY9PWBvYmplY3RgJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZjt0LmV4cG9ydHM9bnx8cnx8RnVuY3Rpb24oYHJldHVybiB0aGlzYCkoKX0pKSxDZD1zKCgoZSx0KT0+e3QuZXhwb3J0cz1TZCgpLlN5bWJvbH0pKSx3ZD1zKCgoZSx0KT0+e3ZhciBuPUNkKCkscj1PYmplY3QucHJvdG90eXBlLGk9ci5oYXNPd25Qcm9wZXJ0eSxhPXIudG9TdHJpbmcsbz1uP24udG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIHMoZSl7dmFyIHQ9aS5jYWxsKGUsbyksbj1lW29dO3RyeXtlW29dPXZvaWQgMDt2YXIgcj0hMH1jYXRjaHt9dmFyIHM9YS5jYWxsKGUpO3JldHVybiByJiYodD9lW29dPW46ZGVsZXRlIGVbb10pLHN9dC5leHBvcnRzPXN9KSksVGQ9cygoKGUsdCk9Pnt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIG4uY2FsbChlKX10LmV4cG9ydHM9cn0pKSxFZD1zKCgoZSx0KT0+e3ZhciBuPUNkKCkscj13ZCgpLGk9VGQoKSxhPWBbb2JqZWN0IE51bGxdYCxvPWBbb2JqZWN0IFVuZGVmaW5lZF1gLHM9bj9uLnRvU3RyaW5nVGFnOnZvaWQgMDtmdW5jdGlvbiBjKGUpe3JldHVybiBlPT1udWxsP2U9PT12b2lkIDA/bzphOnMmJnMgaW4gT2JqZWN0KGUpP3IoZSk6aShlKX10LmV4cG9ydHM9Y30pKSxEZD1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7cmV0dXJuIHR5cGVvZiBlPT1gb2JqZWN0YCYmISFlfXQuZXhwb3J0cz1ufSkpLE9kPXMoKChlLHQpPT57dmFyIG49RWQoKSxyPURkKCksaT1gW29iamVjdCBTeW1ib2xdYDtmdW5jdGlvbiBhKGUpe3JldHVybiB0eXBlb2YgZT09YHN5bWJvbGB8fHIoZSkmJm4oZSk9PWl9dC5leHBvcnRzPWF9KSksa2Q9cygoKGUsdCk9Pnt2YXIgbj15ZCgpLHI9YmQoKSxpPU9kKCksYT1OYU4sbz0vXlstK10weFswLTlhLWZdKyQvaSxzPS9eMGJbMDFdKyQvaSxjPS9eMG9bMC03XSskL2ksbD1wYXJzZUludDtmdW5jdGlvbiB1KGUpe2lmKHR5cGVvZiBlPT1gbnVtYmVyYClyZXR1cm4gZTtpZihpKGUpKXJldHVybiBhO2lmKHIoZSkpe3ZhciB0PXR5cGVvZiBlLnZhbHVlT2Y9PWBmdW5jdGlvbmA/ZS52YWx1ZU9mKCk6ZTtlPXIodCk/dCtgYDp0fWlmKHR5cGVvZiBlIT1gc3RyaW5nYClyZXR1cm4gZT09PTA/ZTorZTtlPW4oZSk7dmFyIHU9cy50ZXN0KGUpO3JldHVybiB1fHxjLnRlc3QoZSk/bChlLnNsaWNlKDIpLHU/Mjo4KTpvLnRlc3QoZSk/YTorZX10LmV4cG9ydHM9dX0pKSxBZD1zKCgoZSx0KT0+e3ZhciBuPWtkKCkscj0xLzAsaT0xNzk3NjkzMTM0ODYyMzE1N2UyOTI7ZnVuY3Rpb24gYShlKXtyZXR1cm4gZT8oZT1uKGUpLGU9PT1yfHxlPT09LXI/KGU8MD8tMToxKSppOmU9PT1lP2U6MCk6ZT09PTA/ZTowfXQuZXhwb3J0cz1hfSkpLGpkPXMoKChlLHQpPT57dmFyIG49QWQoKTtmdW5jdGlvbiByKGUpe3ZhciB0PW4oZSkscj10JTE7cmV0dXJuIHQ9PT10P3I/dC1yOnQ6MH10LmV4cG9ydHM9cn0pKSxNZD1zKCgoZSx0KT0+e3ZhciBuPWpkKCkscj1gRXhwZWN0ZWQgYSBmdW5jdGlvbmA7ZnVuY3Rpb24gaShlLHQpe3ZhciBpO2lmKHR5cGVvZiB0IT1gZnVuY3Rpb25gKXRocm93IFR5cGVFcnJvcihyKTtyZXR1cm4gZT1uKGUpLGZ1bmN0aW9uKCl7cmV0dXJuLS1lPjAmJihpPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxlPD0xJiYodD12b2lkIDApLGl9fXQuZXhwb3J0cz1pfSkpLE5kPXMoKChlLHQpPT57dmFyIG49TWQoKTtmdW5jdGlvbiByKGUpe3JldHVybiBuKDIsZSl9dC5leHBvcnRzPXJ9KSksUGQ9cygoKGUsdCk9Pnt0LmV4cG9ydHM9e0FDVE9SX0NIQU5HRTpgQWN0b3JDaGFuZ2VgLENBVENIX0ZJRUxEOmBDYXRjaEZpZWxkYCxDT05ESVRJT046YENvbmRpdGlvbmAsQ0xJRU5UX0NPTVBPTkVOVDpgQ2xpZW50Q29tcG9uZW50YCxDTElFTlRfRURHRV9UT19TRVJWRVJfT0JKRUNUOmBDbGllbnRFZGdlVG9TZXJ2ZXJPYmplY3RgLENMSUVOVF9FREdFX1RPX0NMSUVOVF9PQkpFQ1Q6YENsaWVudEVkZ2VUb0NsaWVudE9iamVjdGAsQ0xJRU5UX0VYVEVOU0lPTjpgQ2xpZW50RXh0ZW5zaW9uYCxERUZFUjpgRGVmZXJgLENPTk5FQ1RJT046YENvbm5lY3Rpb25gLEZSQUdNRU5UOmBGcmFnbWVudGAsRlJBR01FTlRfU1BSRUFEOmBGcmFnbWVudFNwcmVhZGAsSU5MSU5FX0RBVEFfRlJBR01FTlRfU1BSRUFEOmBJbmxpbmVEYXRhRnJhZ21lbnRTcHJlYWRgLElOTElORV9EQVRBX0ZSQUdNRU5UOmBJbmxpbmVEYXRhRnJhZ21lbnRgLElOTElORV9GUkFHTUVOVDpgSW5saW5lRnJhZ21lbnRgLExJTktFRF9GSUVMRDpgTGlua2VkRmllbGRgLExJTktFRF9IQU5ETEU6YExpbmtlZEhhbmRsZWAsTElURVJBTDpgTGl0ZXJhbGAsTElTVF9WQUxVRTpgTGlzdFZhbHVlYCxMT0NBTF9BUkdVTUVOVDpgTG9jYWxBcmd1bWVudGAsTU9EVUxFX0lNUE9SVDpgTW9kdWxlSW1wb3J0YCxBTElBU0VEX0ZSQUdNRU5UX1NQUkVBRDpgQWxpYXNlZEZyYWdtZW50U3ByZWFkYCxBTElBU0VEX0lOTElORV9GUkFHTUVOVF9TUFJFQUQ6YEFsaWFzZWRJbmxpbmVGcmFnbWVudFNwcmVhZGAsUkVMQVlfUkVTT0xWRVI6YFJlbGF5UmVzb2x2ZXJgLFJFTEFZX0xJVkVfUkVTT0xWRVI6YFJlbGF5TGl2ZVJlc29sdmVyYCxSRVFVSVJFRF9GSUVMRDpgUmVxdWlyZWRGaWVsZGAsT0JKRUNUX1ZBTFVFOmBPYmplY3RWYWx1ZWAsT1BFUkFUSU9OOmBPcGVyYXRpb25gLFJFUVVFU1Q6YFJlcXVlc3RgLFJPT1RfQVJHVU1FTlQ6YFJvb3RBcmd1bWVudGAsU0NBTEFSX0ZJRUxEOmBTY2FsYXJGaWVsZGAsU0NBTEFSX0hBTkRMRTpgU2NhbGFySGFuZGxlYCxTUExJVF9PUEVSQVRJT046YFNwbGl0T3BlcmF0aW9uYCxTVFJFQU06YFN0cmVhbWAsVFlQRV9ESVNDUklNSU5BVE9SOmBUeXBlRGlzY3JpbWluYXRvcmAsVVBEQVRBQkxFX1FVRVJZOmBVcGRhdGFibGVRdWVyeWAsVkFSSUFCTEU6YFZhcmlhYmxlYH19KSksRmQ9cygoKGUsdCk9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4scixpLGEsbyxzKXtpZighZSl7dmFyIGM7aWYodD09PXZvaWQgMCljPUVycm9yKGBNaW5pZmllZCBleGNlcHRpb24gb2NjdXJyZWQ7IHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgdGhlIGZ1bGwgZXJyb3IgbWVzc2FnZSBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLmApO2Vsc2V7dmFyIGw9W24scixpLGEsbyxzXSx1PTA7Yz1FcnJvcih0LnJlcGxhY2UoLyVzL2csZnVuY3Rpb24oKXtyZXR1cm4gbFt1KytdfSkpLGMubmFtZT1gSW52YXJpYW50IFZpb2xhdGlvbmB9dGhyb3cgYy5mcmFtZXNUb1BvcD0xLGN9fX0pKSxJZD1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciByPWZ1bmN0aW9uKCl7fTtyLnRoYXRSZXR1cm5zPW4sci50aGF0UmV0dXJuc0ZhbHNlPW4oITEpLHIudGhhdFJldHVybnNUcnVlPW4oITApLHIudGhhdFJldHVybnNOdWxsPW4obnVsbCksci50aGF0UmV0dXJuc1RoaXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sci50aGF0UmV0dXJuc0FyZ3VtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBlfSx0LmV4cG9ydHM9cn0pKSxMZD1zKCgoZSx0KT0+e3QuZXhwb3J0cz1JZCgpfSkpLFJkPXMoKChlLHQpPT57dmFyIG49UGQoKSxyPUZkKCk7TGQoKTtmdW5jdGlvbiBpKGUpe3IoITEpfWZ1bmN0aW9uIGEoZSl7dmFyIHQ9ZTtyZXR1cm4gdHlwZW9mIHQ9PWBmdW5jdGlvbmA/dD10KCk6dC5kZWZhdWx0JiYodD10LmRlZmF1bHQpLHR9ZnVuY3Rpb24gbyhlKXt2YXIgdD1hKGUpO3JldHVybiB0eXBlb2YgdD09YG9iamVjdGAmJiEhdCYmdC5raW5kPT09bi5GUkFHTUVOVH1mdW5jdGlvbiBzKGUpe3ZhciB0PWEoZSk7cmV0dXJuIHR5cGVvZiB0PT1gb2JqZWN0YCYmISF0JiZ0LmtpbmQ9PT1uLlJFUVVFU1R9ZnVuY3Rpb24gYyhlKXt2YXIgdD1hKGUpO3JldHVybiB0eXBlb2YgdD09YG9iamVjdGAmJiEhdCYmdC5raW5kPT09bi5VUERBVEFCTEVfUVVFUll9ZnVuY3Rpb24gbChlKXt2YXIgdD1hKGUpO3JldHVybiB0eXBlb2YgdD09YG9iamVjdGAmJiEhdCYmdC5raW5kPT09bi5JTkxJTkVfREFUQV9GUkFHTUVOVH1mdW5jdGlvbiB1KGUpe3ZhciB0PWEoZSk7cmV0dXJuIW8odCkmJnIoITEpLHR9ZnVuY3Rpb24gZChlKXt2YXIgdCxuPXUoZSkscj0odD1uLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6dC5yZWZldGNoLGk9cj09bnVsbD92b2lkIDA6ci5jb25uZWN0aW9uO3JldHVybiB0eXBlb2YgciE9YG9iamVjdGB8fCFyfHx0eXBlb2YgaSE9YG9iamVjdGB8fCFpP251bGw6bn1mdW5jdGlvbiBmKGUpe3ZhciB0LG49dShlKSxyPSh0PW4ubWV0YWRhdGEpPT1udWxsP3ZvaWQgMDp0LnJlZmV0Y2g7cmV0dXJuIHR5cGVvZiByIT1gb2JqZWN0YHx8IXI/bnVsbDpufWZ1bmN0aW9uIHAoZSl7dmFyIHQ9YShlKTtyZXR1cm4hcyh0KSYmcighMSksdH1mdW5jdGlvbiBtKGUpe3ZhciB0PWEoZSk7cmV0dXJuIWModCkmJnIoITEpLHR9ZnVuY3Rpb24gaChlKXt2YXIgdD1hKGUpO3JldHVybiFsKHQpJiZyKCExKSx0fXQuZXhwb3J0cz17Z2V0RnJhZ21lbnQ6dSxnZXROb2RlOmEsZ2V0UGFnaW5hdGlvbkZyYWdtZW50OmQsZ2V0UmVmZXRjaGFibGVGcmFnbWVudDpmLGdldFJlcXVlc3Q6cCxnZXRVcGRhdGFibGVRdWVyeTptLGdldElubGluZURhdGFGcmFnbWVudDpoLGdyYXBocWw6aSxpc0ZyYWdtZW50Om8saXNSZXF1ZXN0OnMsaXNVcGRhdGFibGVRdWVyeTpjLGlzSW5saW5lRGF0YUZyYWdtZW50Omx9fSkpLHpkPXMoKChlLHQpPT57ZnVuY3Rpb24gbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19dC5leHBvcnRzPW4sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSkpLEJkPXMoKChlLHQpPT57ZnVuY3Rpb24gbihlLHQpeyh0PT1udWxsfHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9dC5leHBvcnRzPW4sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSkpLFZkPXMoKChlLHQpPT57dmFyIG49QmQoKTtmdW5jdGlvbiByKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBuKGUsdCk7dmFyIHI9e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4gcj09PWBPYmplY3RgJiZlLmNvbnN0cnVjdG9yJiYocj1lLmNvbnN0cnVjdG9yLm5hbWUpLHI9PT1gTWFwYHx8cj09PWBTZXRgP0FycmF5LmZyb20oZSk6cj09PWBBcmd1bWVudHNgfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChyKT9uKGUsdCk6dm9pZCAwfX10LmV4cG9ydHM9cix0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHN9KSksSGQ9cygoKGUsdCk9Pnt2YXIgbj1WZCgpO2Z1bmN0aW9uIHIoZSx0KXt2YXIgcj10eXBlb2YgU3ltYm9sPGB1YCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW2BAQGl0ZXJhdG9yYF07aWYoIXIpe2lmKEFycmF5LmlzQXJyYXkoZSl8fChyPW4oZSkpfHx0JiZlJiZ0eXBlb2YgZS5sZW5ndGg9PWBudW1iZXJgKXtyJiYoZT1yKTt2YXIgaT0wLGE9ZnVuY3Rpb24oKXt9O3JldHVybntzOmEsbjpmdW5jdGlvbigpe3JldHVybiBpPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVtpKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOmF9fXRocm93IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9dmFyIG8scz0hMCxjPSExO3JldHVybntzOmZ1bmN0aW9uKCl7cj1yLmNhbGwoZSl9LG46ZnVuY3Rpb24oKXt2YXIgZT1yLm5leHQoKTtyZXR1cm4gcz1lLmRvbmUsZX0sZTpmdW5jdGlvbihlKXtjPSEwLG89ZX0sZjpmdW5jdGlvbigpe3RyeXtzfHxyLnJldHVybj09bnVsbHx8ci5yZXR1cm4oKX1maW5hbGx5e2lmKGMpdGhyb3cgb319fX10LmV4cG9ydHM9cix0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHN9KSksVWQ9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEhkKCkpLGk9RmQoKTtmdW5jdGlvbiBhKGUsdCl7dmFyIG49KDAsci5kZWZhdWx0KSh0KSxhO3RyeXtmb3Iobi5zKCk7IShhPW4ubigpKS5kb25lOyl7dmFyIHM9YS52YWx1ZTtlLnJlbGF5RmllbGRMb2dnZXIocyl9fWNhdGNoKGUpe24uZShlKX1maW5hbGx5e24uZigpfXZhciBjPSgwLHIuZGVmYXVsdCkodCksbDt0cnl7Zm9yKGMucygpOyEobD1jLm4oKSkuZG9uZTspe3ZhciB1PWwudmFsdWU7aWYobyh1KSlzd2l0Y2godS5raW5kKXtjYXNlYHJlbGF5X3Jlc29sdmVyLmVycm9yYDp0aHJvdyBFcnJvcihgUmVsYXk6IFJlc29sdmVyIGVycm9yIGF0IHBhdGggJyR7dS5maWVsZFBhdGh9JyBpbiAnJHt1Lm93bmVyfScuYCk7Y2FzZWByZWxheV9maWVsZF9wYXlsb2FkLmVycm9yYDp0aHJvdyBFcnJvcihgUmVsYXk6IFVuZXhwZWN0ZWQgcmVzcG9uc2UgcGF5bG9hZCAtIGNoZWNrIHNlcnZlciBsb2dzIGZvciBkZXRhaWxzLmApO2Nhc2VgbWlzc2luZ19leHBlY3RlZF9kYXRhLnRocm93YDp0aHJvdyBFcnJvcihgUmVsYXk6IE1pc3NpbmcgZXhwZWN0ZWQgZGF0YSBhdCBwYXRoICcke3UuZmllbGRQYXRofScgaW4gJyR7dS5vd25lcn0nLmApO2Nhc2VgbWlzc2luZ19yZXF1aXJlZF9maWVsZC50aHJvd2A6dGhyb3cgRXJyb3IoYFJlbGF5OiBNaXNzaW5nIEByZXF1aXJlZCB2YWx1ZSBhdCBwYXRoICcke3UuZmllbGRQYXRofScgaW4gJyR7dS5vd25lcn0nLmApO2Nhc2VgbWlzc2luZ19yZXF1aXJlZF9maWVsZC5sb2dgOmNhc2VgbWlzc2luZ19leHBlY3RlZF9kYXRhLmxvZ2A6YnJlYWs7ZGVmYXVsdDp1LmtpbmQsaSghMSl9fX1jYXRjaChlKXtjLmUoZSl9ZmluYWxseXtjLmYoKX19ZnVuY3Rpb24gbyhlKXtzd2l0Y2goZS5raW5kKXtjYXNlYHJlbGF5X3Jlc29sdmVyLmVycm9yYDpjYXNlYHJlbGF5X2ZpZWxkX3BheWxvYWQuZXJyb3JgOnJldHVybiBlLnNob3VsZFRocm93JiYhZS5oYW5kbGVkO2Nhc2VgbWlzc2luZ19leHBlY3RlZF9kYXRhLnRocm93YDpjYXNlYG1pc3NpbmdfcmVxdWlyZWRfZmllbGQudGhyb3dgOnJldHVybiFlLmhhbmRsZWQ7Y2FzZWBtaXNzaW5nX3JlcXVpcmVkX2ZpZWxkLmxvZ2A6Y2FzZWBtaXNzaW5nX2V4cGVjdGVkX2RhdGEubG9nYDpyZXR1cm4hMTtkZWZhdWx0OnRocm93IGUua2luZCxFcnJvcihgUmVsYXk6IFVuZXhwZWN0ZWQgZXZlbnQga2luZGApfX1mdW5jdGlvbiBzKGUsdCl7dCE9bnVsbCYmYShlLHQpfXQuZXhwb3J0cz17aGFuZGxlUG90ZW50aWFsU25hcHNob3RFcnJvcnM6cyxldmVudFNob3VsZFRocm93Om99fSkpLFdkPXMoKChlLHQpPT57ZnVuY3Rpb24gbihlKXsiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2YiO3JldHVybiB0LmV4cG9ydHM9bj10eXBlb2YgU3ltYm9sPT1gZnVuY3Rpb25gJiZ0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT1gc3ltYm9sYD9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZ0eXBlb2YgU3ltYm9sPT1gZnVuY3Rpb25gJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9gc3ltYm9sYDp0eXBlb2YgZX0sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzLG4oZSl9dC5leHBvcnRzPW4sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSkpLEdkPXMoKChlLHQpPT57dmFyIG49V2QoKS5kZWZhdWx0O2Z1bmN0aW9uIHIoZSx0KXtpZihuKGUpIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIHI9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHIhPT12b2lkIDApe3ZhciBpPXIuY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYobihpKSE9YG9iamVjdGApcmV0dXJuIGk7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9dC5leHBvcnRzPXIsdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSkpLEtkPXMoKChlLHQpPT57dmFyIG49V2QoKS5kZWZhdWx0LHI9R2QoKTtmdW5jdGlvbiBpKGUpe3ZhciB0PXIoZSxgc3RyaW5nYCk7cmV0dXJuIG4odCk9PWBzeW1ib2xgP3Q6dCtgYH10LmV4cG9ydHM9aSx0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHN9KSkscWQ9cygoKGUsdCk9Pnt2YXIgbj1LZCgpO2Z1bmN0aW9uIHIoZSx0LHIpe3JldHVybih0PW4odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1yLGV9dC5leHBvcnRzPXIsdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSkpLEpkPXMoKChlLHQpPT57dmFyIG49cWQoKTtmdW5jdGlvbiByKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gaShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgaT1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9yKE9iamVjdChpKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtuKGUsdCxpW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaSkpOnIoT2JqZWN0KGkpKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLHQpKX0pfXJldHVybiBlfXQuZXhwb3J0cz1pLHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0c30pKSxZZD1zKCgoZSx0KT0+e3ZhciBuPUJkKCk7ZnVuY3Rpb24gcihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBuKGUpfXQuZXhwb3J0cz1yLHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0c30pKSxYZD1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7aWYodHlwZW9mIFN5bWJvbDxgdWAmJmVbU3ltYm9sLml0ZXJhdG9yXSE9bnVsbHx8ZVtgQEBpdGVyYXRvcmBdIT1udWxsKXJldHVybiBBcnJheS5mcm9tKGUpfXQuZXhwb3J0cz1uLHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0c30pKSxaZD1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oKXt0aHJvdyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9dC5leHBvcnRzPW4sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSkpLFFkPXMoKChlLHQpPT57dmFyIG49WWQoKSxyPVhkKCksaT1WZCgpLGE9WmQoKTtmdW5jdGlvbiBvKGUpe3JldHVybiBuKGUpfHxyKGUpfHxpKGUpfHxhKCl9dC5leHBvcnRzPW8sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSkpLCRkPXMoKChlLHQpPT57dC5leHBvcnRzPXtERUZBVUxUX0hBTkRMRV9LRVk6YGB9fSkpLGVmPXMoKChlLHQpPT57dmFyIG49JGQoKS5ERUZBVUxUX0hBTkRMRV9LRVkscj1GZCgpO2Z1bmN0aW9uIGkoZSx0LGkpe3JldHVybiB0JiZ0IT09bj9gX18ke3R9XyR7ZX1gOihpPz9yKCExKSxgX18ke2l9XyR7ZX1gKX10LmV4cG9ydHM9aX0pKSx0Zj1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7aWYoIWV8fHR5cGVvZiBlIT1gb2JqZWN0YClyZXR1cm4gZTtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlLm1hcChuKTtmb3IodmFyIHQ9T2JqZWN0LmtleXMoZSkuc29ydCgpLHI9e30saT0wO2k8dC5sZW5ndGg7aSsrKXJbdFtpXV09bihlW3RbaV1dKTtyZXR1cm4gcn1mdW5jdGlvbiByKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpuZXcgU2V0O2lmKCFlfHx0eXBlb2YgZSE9YG9iamVjdGApcmV0dXJuITE7aWYodC5oYXMoZSkpcmV0dXJuITA7dmFyIG49bmV3IFNldCh0KTtyZXR1cm4gbi5hZGQoZSksKEFycmF5LmlzQXJyYXkoZSk/ZTpPYmplY3QudmFsdWVzKGUpKS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiByKGUsbil9KX10LmV4cG9ydHM9e3N0YWJsZUNvcHk6bixoYXNDeWNsZTpyfX0pKSxuZj1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oUWQoKSksaT1lZigpLGE9UGQoKSxvPXRmKCkuc3RhYmxlQ29weSxzPUZkKCksYz1hLlZBUklBQkxFLGw9YS5MSVRFUkFMLHU9YS5PQkpFQ1RfVkFMVUUsZD1hLkxJU1RfVkFMVUUsZj1gX19lcnJvcnNgLHA9YF9fbW9kdWxlX2NvbXBvbmVudF9gLG09YF9fbW9kdWxlX29wZXJhdGlvbl9gO2Z1bmN0aW9uIGgoZSx0KXtpZihlLmtpbmQ9PT1jKXJldHVybiBTKGUudmFyaWFibGVOYW1lLHQpO2lmKGUua2luZD09PWwpcmV0dXJuIGUudmFsdWU7aWYoZS5raW5kPT09dSl7dmFyIG49e307cmV0dXJuIGUuZmllbGRzLmZvckVhY2goZnVuY3Rpb24oZSl7bltlLm5hbWVdPWgoZSx0KX0pLG59ZWxzZSBpZihlLmtpbmQ9PT1kKXt2YXIgcj1bXTtyZXR1cm4gZS5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UhPW51bGwmJnIucHVzaChoKGUsdCkpfSkscn19ZnVuY3Rpb24gZyhlLHQsbil7dmFyIHI9e307cmV0dXJuIG4mJihyW1QuRlJBR01FTlRfUE9JTlRFUl9JU19XSVRISU5fVU5NQVRDSEVEX1RZUEVfUkVGSU5FTUVOVF09ITApLGUmJmUuZm9yRWFjaChmdW5jdGlvbihlKXtyW2UubmFtZV09aChlLHQpfSkscn1mdW5jdGlvbiBfKGUsdCl7dmFyIG49ZS5keW5hbWljS2V5LGE9ZS5oYW5kbGUsbz1lLmtleSxzPWUubmFtZSxjPWUuYXJncyxsPWUuZmlsdGVycyx1PWkoYSxvLHMpLGQ9bnVsbDtyZXR1cm4gYyYmbCYmYy5sZW5ndGghPT0wJiZsLmxlbmd0aCE9PTAmJihkPWMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBsLmluZGV4T2YoZS5uYW1lKT4tMX0pKSxuJiYoZD1kPT1udWxsP1tuXTpbbl0uY29uY2F0KCgwLHIuZGVmYXVsdCkoZCkpKSxkPT09bnVsbD91OngodSxnKGQsdCkpfWZ1bmN0aW9uIHYoZSx0KXtpZihlLnN0b3JhZ2VLZXkpcmV0dXJuIGUuc3RvcmFnZUtleTt2YXIgbj15KGUpLHI9ZS5uYW1lO3JldHVybiBuJiZuLmxlbmd0aCE9PTA/eChyLGcobix0KSk6cn1mdW5jdGlvbiB5KGUpe2lmKGUua2luZD09PWBSZWxheVJlc29sdmVyYHx8ZS5raW5kPT09YFJlbGF5TGl2ZVJlc29sdmVyYCl7dmFyIHQ7aWYoZS5hcmdzPT1udWxsKXt2YXIgbjtyZXR1cm4obj1lLmZyYWdtZW50KT09bnVsbD92b2lkIDA6bi5hcmdzfXJldHVybigodD1lLmZyYWdtZW50KT09bnVsbD92b2lkIDA6dC5hcmdzKT09bnVsbD9lLmFyZ3M6ZS5hcmdzLmNvbmNhdChlLmZyYWdtZW50LmFyZ3MpfXJldHVybiBlLmFyZ3M9PT12b2lkIDA/dm9pZCAwOmUuYXJnc31mdW5jdGlvbiBiKGUsdCl7cmV0dXJuIHgoZSxvKHQpKX1mdW5jdGlvbiB4KGUsdCl7aWYoIXQpcmV0dXJuIGU7dmFyIG49W107Zm9yKHZhciByIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIGk9dFtyXTtpIT1udWxsJiZuLnB1c2gocitgOmArKEpTT04uc3RyaW5naWZ5KGkpPz9gdW5kZWZpbmVkYCkpfXJldHVybiBuLmxlbmd0aD09PTA/ZTplK2AoJHtuLmpvaW4oYCxgKX0pYH1mdW5jdGlvbiBTKGUsdCl7cmV0dXJuIXQuaGFzT3duUHJvcGVydHkoZSkmJnMoITEpLG8odFtlXSl9ZnVuY3Rpb24gQyhlKXtyZXR1cm5gJHtwfSR7ZX1gfWZ1bmN0aW9uIHcoZSl7cmV0dXJuYCR7bX0ke2V9YH12YXIgVD17QUNUT1JfSURFTlRJRklFUl9LRVk6YF9fYWN0b3JJZGVudGlmaWVyYCxDTElFTlRfRURHRV9UUkFWRVJTQUxfUEFUSDpgX19jbGllbnRFZGdlVHJhdmVyc2FsUGF0aGAsRlJBR01FTlRTX0tFWTpgX19mcmFnbWVudHNgLEZSQUdNRU5UX09XTkVSX0tFWTpgX19mcmFnbWVudE93bmVyYCxGUkFHTUVOVF9QT0lOVEVSX0lTX1dJVEhJTl9VTk1BVENIRURfVFlQRV9SRUZJTkVNRU5UOmAkaXNXaXRoaW5Vbm1hdGNoZWRUeXBlUmVmaW5lbWVudGAsRlJBR01FTlRfUFJPUF9OQU1FX0tFWTpgX19mcmFnbWVudFByb3BOYW1lYCxNT0RVTEVfQ09NUE9ORU5UX0tFWTpgX19tb2R1bGVfY29tcG9uZW50YCxFUlJPUlNfS0VZOmYsSURfS0VZOmBfX2lkYCxSRUZfS0VZOmBfX3JlZmAsUkVGU19LRVk6YF9fcmVmc2AsUk9PVF9JRDpgY2xpZW50OnJvb3RgLFJPT1RfVFlQRTpgX19Sb290YCxUWVBFTkFNRV9LRVk6YF9fdHlwZW5hbWVgLElOVkFMSURBVEVEX0FUX0tFWTpgX19pbnZhbGlkYXRlZF9hdGAsUkVMQVlfUkVTT0xWRVJfVkFMVUVfS0VZOmBfX3Jlc29sdmVyVmFsdWVgLFJFTEFZX1JFU09MVkVSX0lOVkFMSURBVElPTl9LRVk6YF9fcmVzb2x2ZXJWYWx1ZU1heUJlSW52YWxpZGAsUkVMQVlfUkVTT0xWRVJfU05BUFNIT1RfS0VZOmBfX3Jlc29sdmVyU25hcHNob3RgLFJFTEFZX1JFU09MVkVSX0VSUk9SX0tFWTpgX19yZXNvbHZlckVycm9yYCxSRUxBWV9SRVNPTFZFUl9PVVRQVVRfVFlQRV9SRUNPUkRfSURTOmBfX3Jlc29sdmVyT3V0cHV0VHlwZVJlY29yZElEc2AsZm9ybWF0U3RvcmFnZUtleTp4LGdldEFyZ3VtZW50VmFsdWU6aCxnZXRBcmd1bWVudFZhbHVlczpnLGdldEhhbmRsZVN0b3JhZ2VLZXk6XyxnZXRTdG9yYWdlS2V5OnYsZ2V0U3RhYmxlU3RvcmFnZUtleTpiLGdldE1vZHVsZUNvbXBvbmVudEtleTpDLGdldE1vZHVsZU9wZXJhdGlvbktleTp3fTt0LmV4cG9ydHM9VH0pKSxyZj1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSmQoKSksaT1uZigpLmdldEFyZ3VtZW50VmFsdWVzLGE9RmQoKTtmdW5jdGlvbiBvKGUsdCxuKXtpZihlLmFyZ3VtZW50RGVmaW5pdGlvbnM9PW51bGwpcmV0dXJuIG47dmFyIGk7cmV0dXJuIGUuYXJndW1lbnREZWZpbml0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKCFuLmhhc093blByb3BlcnR5KGUubmFtZSkpc3dpdGNoKGk9aXx8KDAsci5kZWZhdWx0KSh7fSxuKSxlLmtpbmQpe2Nhc2VgTG9jYWxBcmd1bWVudGA6aVtlLm5hbWVdPWUuZGVmYXVsdFZhbHVlO2JyZWFrO2Nhc2VgUm9vdEFyZ3VtZW50YDppZighdC5oYXNPd25Qcm9wZXJ0eShlLm5hbWUpKXtpW2UubmFtZV09dm9pZCAwO2JyZWFrfWlbZS5uYW1lXT10W2UubmFtZV07YnJlYWs7ZGVmYXVsdDphKCExKX19KSxpfHxufWZ1bmN0aW9uIHMoZSx0LG4pe3ZhciByPXt9O3JldHVybiBlLmFyZ3VtZW50RGVmaW5pdGlvbnMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLmRlZmF1bHRWYWx1ZTtuW2UubmFtZV0hPW51bGwmJih0PW5bZS5uYW1lXSkscltlLm5hbWVdPXR9KSx0IT1udWxsJiZPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JbZV09dFtlXS5nZXQoKX0pLHJ9ZnVuY3Rpb24gYyhlLHQsbil7aWYodD09bnVsbClyZXR1cm4gZTt2YXIgYT0oMCxyLmRlZmF1bHQpKHt9LGUpLG89bj9pKG4sZSk6e307cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1vW2UubmFtZV0/P2UuZGVmYXVsdFZhbHVlO2FbZS5uYW1lXT10fSksYX10LmV4cG9ydHM9e2dldExvY2FsVmFyaWFibGVzOmMsZ2V0RnJhZ21lbnRWYXJpYWJsZXM6byxnZXRPcGVyYXRpb25WYXJpYWJsZXM6c319KSksYWY9cygoKGUsdCk9Pnt2YXIgbj1bXSxyPVtdO2Z1bmN0aW9uIGkoZSx0KXt2YXIgaT1uLmxlbmd0aD9uLnBvcCgpOltdLG89ci5sZW5ndGg/ci5wb3AoKTpbXSxzPWEoZSx0LGksbyk7cmV0dXJuIGkubGVuZ3RoPTAsby5sZW5ndGg9MCxuLnB1c2goaSksci5wdXNoKG8pLHN9ZnVuY3Rpb24gYShlLHQsbixyKXtpZihlPT09dClyZXR1cm4gZSE9PTB8fDEvZT09MS90O2lmKGU9PW51bGx8fHQ9PW51bGx8fHR5cGVvZiBlIT1gb2JqZWN0YHx8dHlwZW9mIHQhPWBvYmplY3RgKXJldHVybiExO3ZhciBpPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsbz1pLmNhbGwoZSk7aWYobyE9aS5jYWxsKHQpKXJldHVybiExO3N3aXRjaChvKXtjYXNlYFtvYmplY3QgU3RyaW5nXWA6cmV0dXJuIGU9PVN0cmluZyh0KTtjYXNlYFtvYmplY3QgTnVtYmVyXWA6cmV0dXJuIGlzTmFOKGUpfHxpc05hTih0KT8hMTplPT1OdW1iZXIodCk7Y2FzZWBbb2JqZWN0IERhdGVdYDpjYXNlYFtvYmplY3QgQm9vbGVhbl1gOnJldHVybitlPT0rdDtjYXNlYFtvYmplY3QgUmVnRXhwXWA6cmV0dXJuIGUuc291cmNlPT10LnNvdXJjZSYmZS5nbG9iYWw9PXQuZ2xvYmFsJiZlLm11bHRpbGluZT09dC5tdWx0aWxpbmUmJmUuaWdub3JlQ2FzZT09dC5pZ25vcmVDYXNlfWZvcih2YXIgcz1uLmxlbmd0aDtzLS07KWlmKG5bc109PWUpcmV0dXJuIHJbc109PXQ7bi5wdXNoKGUpLHIucHVzaCh0KTt2YXIgYz0wO2lmKG89PT1gW29iamVjdCBBcnJheV1gKXtpZihjPWUubGVuZ3RoLGMhPT10Lmxlbmd0aClyZXR1cm4hMTtmb3IoO2MtLTspaWYoIWEoZVtjXSx0W2NdLG4scikpcmV0dXJuITF9ZWxzZXtpZihlLmNvbnN0cnVjdG9yIT09dC5jb25zdHJ1Y3RvcilyZXR1cm4hMTtpZihlLmhhc093blByb3BlcnR5KGB2YWx1ZU9mYCkmJnQuaGFzT3duUHJvcGVydHkoYHZhbHVlT2ZgKSlyZXR1cm4gZS52YWx1ZU9mKCk9PXQudmFsdWVPZigpO3ZhciBsPU9iamVjdC5rZXlzKGUpO2lmKGwubGVuZ3RoIT1PYmplY3Qua2V5cyh0KS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciB1PTA7dTxsLmxlbmd0aDt1KyspaWYoIWEoZVtsW3VdXSx0W2xbdV1dLG4scikpcmV0dXJuITF9cmV0dXJuIG4ucG9wKCksci5wb3AoKSwhMH10LmV4cG9ydHM9aX0pKSxvZj1zKCgoZSx0KT0+e3ZhciBuPXJmKCkuZ2V0RnJhZ21lbnRWYXJpYWJsZXMscj1uZigpLGk9ci5DTElFTlRfRURHRV9UUkFWRVJTQUxfUEFUSCxhPXIuRlJBR01FTlRfT1dORVJfS0VZLG89ci5GUkFHTUVOVF9QT0lOVEVSX0lTX1dJVEhJTl9VTk1BVENIRURfVFlQRV9SRUZJTkVNRU5ULHM9ci5GUkFHTUVOVFNfS0VZLGM9ci5JRF9LRVksbD1hZigpLHU9RmQoKTtMZCgpO2Z1bmN0aW9uIGQoZSx0KXshKHR5cGVvZiB0PT1gb2JqZWN0YCYmdCYmIUFycmF5LmlzQXJyYXkodCkpJiZ1KCExKTt2YXIgcj10W2NdLGw9dFtzXSxkPXRbYV0sZj10W2ldO2lmKHR5cGVvZiByPT1gc3RyaW5nYCYmdHlwZW9mIGw9PWBvYmplY3RgJiZsJiZ0eXBlb2YgbFtlLm5hbWVdPT1gb2JqZWN0YCYmbFtlLm5hbWVdIT09bnVsbCYmdHlwZW9mIGQ9PWBvYmplY3RgJiZkJiYoZj09bnVsbHx8QXJyYXkuaXNBcnJheShmKSkpe3ZhciBwPWQsbT1mLGg9bFtlLm5hbWVdO3JldHVybiBEKGUscixuKGUscC52YXJpYWJsZXMsaCkscCxoW29dPT09ITAsbSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gZihlLHQpe3ZhciBuPW51bGw7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0LHIpe3ZhciBpPXQ9PW51bGw/bnVsbDpkKGUsdCk7aSE9bnVsbCYmKG49bnx8W10sbi5wdXNoKGkpKX0pLG49PW51bGw/bnVsbDp7a2luZDpgUGx1cmFsUmVhZGVyU2VsZWN0b3JgLHNlbGVjdG9yczpufX1mdW5jdGlvbiBwKGUsdCl7cmV0dXJuIHQ9PW51bGw/dDplLm1ldGFkYXRhJiZlLm1ldGFkYXRhLnBsdXJhbD09PSEwPyghQXJyYXkuaXNBcnJheSh0KSYmdSghMSksZihlLHQpKTooQXJyYXkuaXNBcnJheSh0KSYmdSghMSksZChlLHQpKX1mdW5jdGlvbiBtKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIGk9ZVtyXSxhPXRbcl07bltyXT1wKGksYSl9cmV0dXJuIG59ZnVuY3Rpb24gaChlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkocikpe3ZhciBpPWVbcl0sYT10W3JdO25bcl09ZyhpLGEpfXJldHVybiBufWZ1bmN0aW9uIGcoZSx0KXtyZXR1cm4gdD09bnVsbD90OmUubWV0YWRhdGEmJmUubWV0YWRhdGEucGx1cmFsPT09ITA/KCFBcnJheS5pc0FycmF5KHQpJiZ1KCExKSxfKGUsdCkpOihBcnJheS5pc0FycmF5KHQpJiZ1KCExKSx2KGUsdCkpfWZ1bmN0aW9uIF8oZSx0KXt2YXIgbj1udWxsO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHI9dD09bnVsbD9udWxsOnYoZSx0KTtyIT1udWxsJiYobj1ufHxbXSxuLnB1c2gocikpfSksbn1mdW5jdGlvbiB2KGUsdCl7ISh0eXBlb2YgdD09YG9iamVjdGAmJnQmJiFBcnJheS5pc0FycmF5KHQpKSYmdSghMSk7dmFyIG49dFtjXTtyZXR1cm4gdHlwZW9mIG49PWBzdHJpbmdgP246bnVsbH1mdW5jdGlvbiB5KGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIGk9ZVtyXSxhPXRbcl0sbz1iKGksYSk7T2JqZWN0LmFzc2lnbihuLG8pfXJldHVybiBufWZ1bmN0aW9uIGIoZSx0KXt2YXIgbjtyZXR1cm4gdD09bnVsbD97fTooKG49ZS5tZXRhZGF0YSk9PW51bGw/dm9pZCAwOm4ucGx1cmFsKT09PSEwPyghQXJyYXkuaXNBcnJheSh0KSYmdSghMSksUyhlLHQpKTooQXJyYXkuaXNBcnJheSh0KSYmdSghMSkseChlLHQpfHx7fSl9ZnVuY3Rpb24geChlLHQpe3ZhciBuPWQoZSx0KTtyZXR1cm4gbj9uLnZhcmlhYmxlczpudWxsfWZ1bmN0aW9uIFMoZSx0KXt2YXIgbj17fTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQscil7aWYodCE9bnVsbCl7dmFyIGk9eChlLHQpO2khPW51bGwmJk9iamVjdC5hc3NpZ24obixpKX19KSxufWZ1bmN0aW9uIEMoZSx0KXtyZXR1cm4gZS5kYXRhSUQ9PT10LmRhdGFJRCYmZS5ub2RlPT09dC5ub2RlJiZsKGUudmFyaWFibGVzLHQudmFyaWFibGVzKSYmdyhlLm93bmVyLHQub3duZXIpJiZlLmlzV2l0aGluVW5tYXRjaGVkVHlwZVJlZmluZW1lbnQ9PT10LmlzV2l0aGluVW5tYXRjaGVkVHlwZVJlZmluZW1lbnQmJlQoZS5jbGllbnRFZGdlVHJhdmVyc2FsUGF0aCx0LmNsaWVudEVkZ2VUcmF2ZXJzYWxQYXRoKX1mdW5jdGlvbiB3KGUsdCl7cmV0dXJuIGU9PT10PyEwOmUuaWRlbnRpZmllcj09PXQuaWRlbnRpZmllciYmbChlLmNhY2hlQ29uZmlnLHQuY2FjaGVDb25maWcpfWZ1bmN0aW9uIFQoZSx0KXtpZihlPT09dClyZXR1cm4hMDtpZihlPT1udWxsfHx0PT1udWxsfHxlLmxlbmd0aCE9PXQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbj1lLmxlbmd0aDtuLS07KXt2YXIgcj1lW25dLGk9dFtuXTtpZihyIT09aSYmKHI9PW51bGx8fGk9PW51bGx8fHIuY2xpZW50RWRnZURlc3RpbmF0aW9uSUQhPT1pLmNsaWVudEVkZ2VEZXN0aW5hdGlvbklEfHxyLnJlYWRlckNsaWVudEVkZ2UhPT1pLnJlYWRlckNsaWVudEVkZ2UpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIEUoZSx0KXtyZXR1cm4gZT09PXQ/ITA6ZT09bnVsbD90PT1udWxsOnQ9PW51bGw/ZT09bnVsbDplLmtpbmQ9PT1gU2luZ3VsYXJSZWFkZXJTZWxlY3RvcmAmJnQua2luZD09PWBTaW5ndWxhclJlYWRlclNlbGVjdG9yYD9DKGUsdCk6ZS5raW5kPT09YFBsdXJhbFJlYWRlclNlbGVjdG9yYCYmdC5raW5kPT09YFBsdXJhbFJlYWRlclNlbGVjdG9yYD9lLnNlbGVjdG9ycy5sZW5ndGg9PT10LnNlbGVjdG9ycy5sZW5ndGgmJmUuc2VsZWN0b3JzLmV2ZXJ5KGZ1bmN0aW9uKGUsbil7cmV0dXJuIEMoZSx0LnNlbGVjdG9yc1tuXSl9KTohMX1mdW5jdGlvbiBEKGUsdCxuLHIpe3JldHVybntraW5kOmBTaW5ndWxhclJlYWRlclNlbGVjdG9yYCxkYXRhSUQ6dCxpc1dpdGhpblVubWF0Y2hlZFR5cGVSZWZpbmVtZW50OmFyZ3VtZW50cy5sZW5ndGg+NCYmYXJndW1lbnRzWzRdIT09dm9pZCAwP2FyZ3VtZW50c1s0XTohMSxjbGllbnRFZGdlVHJhdmVyc2FsUGF0aDooYXJndW1lbnRzLmxlbmd0aD41P2FyZ3VtZW50c1s1XTp2b2lkIDApPz9udWxsLG5vZGU6ZSx2YXJpYWJsZXM6bixvd25lcjpyfX1mdW5jdGlvbiBPKGUsdCxuKXtyZXR1cm57ZGF0YUlEOnQsbm9kZTplLHZhcmlhYmxlczpufX10LmV4cG9ydHM9e2FyZUVxdWFsU2VsZWN0b3JzOkUsY3JlYXRlUmVhZGVyU2VsZWN0b3I6RCxjcmVhdGVOb3JtYWxpemF0aW9uU2VsZWN0b3I6TyxnZXREYXRhSURzRnJvbUZyYWdtZW50OmcsZ2V0RGF0YUlEc0Zyb21PYmplY3Q6aCxnZXRTaW5ndWxhclNlbGVjdG9yOmQsZ2V0UGx1cmFsU2VsZWN0b3I6ZixnZXRTZWxlY3RvcjpwLGdldFNlbGVjdG9yc0Zyb21PYmplY3Q6bSxnZXRWYXJpYWJsZXNGcm9tU2luZ3VsYXJGcmFnbWVudDp4LGdldFZhcmlhYmxlc0Zyb21QbHVyYWxGcmFnbWVudDpTLGdldFZhcmlhYmxlc0Zyb21GcmFnbWVudDpiLGdldFZhcmlhYmxlc0Zyb21PYmplY3Q6eX19KSksc2Y9cygoKGUsdCk9Pnt2YXIgbj1SZCgpLmdldEZyYWdtZW50LHI9VWQoKS5ldmVudFNob3VsZFRocm93LGk9b2YoKS5nZXRTZWxlY3RvcixhPUZkKCksbz1bXTtmdW5jdGlvbiBzKGUsdCl7by5wdXNoKGUpO3RyeXtyZXR1cm4gdCgpfWZpbmFsbHl7by5wb3AoKX19ZnVuY3Rpb24gYyhlLHQpe2lmKCFvLmxlbmd0aCl0aHJvdyBFcnJvcihgcmVhZEZyYWdtZW50IHNob3VsZCBiZSBjYWxsZWQgb25seSBmcm9tIHdpdGhpbiBhIFJlbGF5IFJlc29sdmVyIGZ1bmN0aW9uLmApO3ZhciBzPW9bby5sZW5ndGgtMV0sYz1pKG4oZSksdCk7Yz8/YSghMSksYy5raW5kIT09YFNpbmd1bGFyUmVhZGVyU2VsZWN0b3JgJiZhKCExKTt2YXIgdT1zLmdldERhdGFGb3JSZXNvbHZlckZyYWdtZW50KGMsdCksZD11LmRhdGEsZj11LmlzTWlzc2luZ0RhdGEscD11LmVycm9yUmVzcG9uc2VGaWVsZHM7aWYoZnx8cCE9bnVsbCYmcC5zb21lKHIpKXRocm93IGw7cmV0dXJuIGR9dmFyIGw9e307dC5leHBvcnRzPXtyZWFkRnJhZ21lbnQ6Yyx3aXRoUmVzb2x2ZXJDb250ZXh0OnMsUkVTT0xWRVJfRlJBR01FTlRfRVJST1JFRF9TRU5USU5FTDpsfX0pKSxjZj1zKCgoZSx0KT0+e3ZhciBuPXNmKCkucmVhZEZyYWdtZW50LHI9RmQoKTtmdW5jdGlvbiBpKGUsdCxpLGEpe3ZhciBvPXQ7cmV0dXJuIGZ1bmN0aW9uKHQscyl7dmFyIGM9bihlLHQpO2lmKGkhPW51bGwpe2lmKGM9PW51bGwpaWYoYT09PSEwKXIoITEpO2Vsc2UgcmV0dXJuIG8obnVsbCxzKTtpZihpIGluIGMpcmV0dXJuIGE9PT0hMCYmKGNbaV0/P3IoITEpKSxvKGNbaV0scyk7cighMSl9ZWxzZSByZXR1cm4gbyhjLHMpfX10LmV4cG9ydHM9aX0pKSxsZj1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSx0LG4scixpLGEsbyl7dHJ5e3ZhciBzPWVbYV0obyksYz1zLnZhbHVlfWNhdGNoKGUpe24oZSk7cmV0dXJufXMuZG9uZT90KGMpOlByb21pc2UucmVzb2x2ZShjKS50aGVuKHIsaSl9ZnVuY3Rpb24gcihlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLHI9YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihpLGEpe3ZhciBvPWUuYXBwbHkodCxyKTtmdW5jdGlvbiBzKGUpe24obyxpLGEscyxjLGBuZXh0YCxlKX1mdW5jdGlvbiBjKGUpe24obyxpLGEscyxjLGB0aHJvd2AsZSl9cyh2b2lkIDApfSl9fXQuZXhwb3J0cz1yLHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0c30pKSx1Zj1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7cmV0dXJuIHR5cGVvZiBlPT1gb2JqZWN0YCYmISFlJiZ0eXBlb2YgZS50aGVuPT1gZnVuY3Rpb25gfXQuZXhwb3J0cz1ufSkpLGRmPXMoKChlLHQpPT57dmFyIG49dWYoKSxyPXUsaT1mdW5jdGlvbigpe2UuY3JlYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSh0KX07ZnVuY3Rpb24gZShlKXt0aGlzLl9zb3VyY2U9ZX1lLm9uVW5oYW5kbGVkRXJyb3I9ZnVuY3Rpb24oZSl7cj1lfSxlLmZyb209ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSk/byhlKTpuKGUpP3MoZSk6YyhlKX07dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuY2F0Y2g9ZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm4gZS5jcmVhdGUoZnVuY3Rpb24oZSl7dmFyIHI7cmV0dXJuIG4uc3Vic2NyaWJlKHtzdGFydDpmdW5jdGlvbihlKXtyPWV9LG5leHQ6ZS5uZXh0LGNvbXBsZXRlOmUuY29tcGxldGUsZXJyb3I6ZnVuY3Rpb24obil7dHJ5e3Qobikuc3Vic2NyaWJlKHtzdGFydDpmdW5jdGlvbihlKXtyPWV9LG5leHQ6ZS5uZXh0LGNvbXBsZXRlOmUuY29tcGxldGUsZXJyb3I6ZS5lcnJvcn0pfWNhdGNoKHQpe2UuZXJyb3IodCwhMCl9fX0pLGZ1bmN0aW9uKCl7cmV0dXJuIHIudW5zdWJzY3JpYmUoKX19KX0sdC5jb25jYXQ9ZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm4gZS5jcmVhdGUoZnVuY3Rpb24oZSl7dmFyIHI7cmV0dXJuIG4uc3Vic2NyaWJlKHtzdGFydDpmdW5jdGlvbihlKXtyPWV9LG5leHQ6ZS5uZXh0LGVycm9yOmUuZXJyb3IsY29tcGxldGU6ZnVuY3Rpb24oKXtyPXQuc3Vic2NyaWJlKGUpfX0pLGZ1bmN0aW9uKCl7ciYmci51bnN1YnNjcmliZSgpfX0pfSx0LmRvPWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7cmV0dXJuIGUuY3JlYXRlKGZ1bmN0aW9uKGUpe3ZhciBpPWZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3RyeXt0W25dJiZ0W25dLmFwcGx5KHQsYXJndW1lbnRzKX1jYXRjaChlKXtyKGUsITApfWVbbl0mJmVbbl0uYXBwbHkoZSxhcmd1bWVudHMpfX07cmV0dXJuIG4uc3Vic2NyaWJlKHtzdGFydDppKGBzdGFydGApLG5leHQ6aShgbmV4dGApLGVycm9yOmkoYGVycm9yYCksY29tcGxldGU6aShgY29tcGxldGVgKSx1bnN1YnNjcmliZTppKGB1bnN1YnNjcmliZWApfSl9KX0sdC5maW5hbGx5PWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7cmV0dXJuIGUuY3JlYXRlKGZ1bmN0aW9uKGUpe3ZhciByPW4uc3Vic2NyaWJlKGUpO3JldHVybiBmdW5jdGlvbigpe3IudW5zdWJzY3JpYmUoKSx0KCl9fSl9LHQuaWZFbXB0eT1mdW5jdGlvbih0KXt2YXIgbj10aGlzO3JldHVybiBlLmNyZWF0ZShmdW5jdGlvbihlKXt2YXIgcj0hMSxpPW4uc3Vic2NyaWJlKHtuZXh0OmZ1bmN0aW9uKHQpe3I9ITAsZS5uZXh0KHQpfSxlcnJvcjplLmVycm9yLGNvbXBsZXRlOmZ1bmN0aW9uKCl7cj9lLmNvbXBsZXRlKCk6aT10LnN1YnNjcmliZShlKX19KTtyZXR1cm4gZnVuY3Rpb24oKXtpJiZpLnVuc3Vic2NyaWJlKCl9fSl9LHQuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3JldHVybiBsKHRoaXMuX3NvdXJjZSxlKX0sdC5tYXA9ZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm4gZS5jcmVhdGUoZnVuY3Rpb24oZSl7dmFyIHI9bi5zdWJzY3JpYmUoe2NvbXBsZXRlOmUuY29tcGxldGUsZXJyb3I6ZS5lcnJvcixuZXh0OmZ1bmN0aW9uKG4pe3RyeXt2YXIgcj10KG4pO2UubmV4dChyKX1jYXRjaCh0KXtlLmVycm9yKHQsITApfX19KTtyZXR1cm4gZnVuY3Rpb24oKXtyLnVuc3Vic2NyaWJlKCl9fSl9LHQubWVyZ2VNYXA9ZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm4gZS5jcmVhdGUoZnVuY3Rpb24ocil7dmFyIGk9W107ZnVuY3Rpb24gYShlKXt0aGlzLl9zdWI9ZSxpLnB1c2goZSl9ZnVuY3Rpb24gbygpe2kuc3BsaWNlKGkuaW5kZXhPZih0aGlzLl9zdWIpLDEpLGkubGVuZ3RoPT09MCYmci5jb21wbGV0ZSgpfXJldHVybiBuLnN1YnNjcmliZSh7c3RhcnQ6YSxuZXh0OmZ1bmN0aW9uKG4pe3RyeXtyLmNsb3NlZHx8ZS5mcm9tKHQobikpLnN1YnNjcmliZSh7c3RhcnQ6YSxuZXh0OnIubmV4dCxlcnJvcjpyLmVycm9yLGNvbXBsZXRlOm99KX1jYXRjaChlKXtyLmVycm9yKGUsITApfX0sZXJyb3I6ci5lcnJvcixjb21wbGV0ZTpvfSksZnVuY3Rpb24oKXtpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUudW5zdWJzY3JpYmUoKX0pLGkubGVuZ3RoPTB9fSl9LHQucG9sbD1mdW5jdGlvbih0KXt2YXIgbj10aGlzO3JldHVybiBlLmNyZWF0ZShmdW5jdGlvbihlKXt2YXIgcixpO3JldHVybihmdW5jdGlvbiBhKCl7cj1uLnN1YnNjcmliZSh7bmV4dDplLm5leHQsZXJyb3I6ZS5lcnJvcixjb21wbGV0ZTpmdW5jdGlvbigpe2k9c2V0VGltZW91dChhLHQpfX0pfSkoKSxmdW5jdGlvbigpe2NsZWFyVGltZW91dChpKSxyLnVuc3Vic2NyaWJlKCl9fSl9LHQudG9Qcm9taXNlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXt2YXIgcj0hMTtlLnN1YnNjcmliZSh7bmV4dDpmdW5jdGlvbihlKXtyfHwocj0hMCx0KGUpKX0sZXJyb3I6bixjb21wbGV0ZTp0fSl9KX0sZX0oKTtmdW5jdGlvbiBhKGUpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJiEhZSYmdHlwZW9mIGUuc3Vic2NyaWJlPT1gZnVuY3Rpb25gfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBpP2U6aS5jcmVhdGUoZnVuY3Rpb24odCl7cmV0dXJuIGUuc3Vic2NyaWJlKHQpfSl9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gaS5jcmVhdGUoZnVuY3Rpb24odCl7ZS50aGVuKGZ1bmN0aW9uKGUpe3QubmV4dChlKSx0LmNvbXBsZXRlKCl9LHQuZXJyb3IpfSl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gaS5jcmVhdGUoZnVuY3Rpb24odCl7dC5uZXh0KGUpLHQuY29tcGxldGUoKX0pfWZ1bmN0aW9uIGwoZSx0KXt2YXIgbj0hMSxpLGE9ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBjbG9zZWRgLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KX07ZnVuY3Rpb24gbygpe2lmKGkpe2lmKGkudW5zdWJzY3JpYmUpaS51bnN1YnNjcmliZSgpO2Vsc2UgdHJ5e2koKX1jYXRjaChlKXtyKGUsITApfWk9dm9pZCAwfX12YXIgcz1hKHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe2lmKCFuKXtuPSEwO3RyeXt0LnVuc3Vic2NyaWJlJiZ0LnVuc3Vic2NyaWJlKHMpfWNhdGNoKGUpe3IoZSwhMCl9ZmluYWxseXtvKCl9fX19KTt0cnl7dC5zdGFydCYmdC5zdGFydChzKX1jYXRjaChlKXtyKGUsITApfWlmKG4pcmV0dXJuIHM7dmFyIGM9YSh7bmV4dDpmdW5jdGlvbihlKXtpZighbiYmdC5uZXh0KXRyeXt0Lm5leHQoZSl9Y2F0Y2goZSl7cihlLCEwKX19LGVycm9yOmZ1bmN0aW9uKGUsaSl7aWYobnx8IXQuZXJyb3Ipbj0hMCxyKGUsaXx8ITEpLG8oKTtlbHNle249ITA7dHJ5e3QuZXJyb3IoZSl9Y2F0Y2goZSl7cihlLCEwKX1maW5hbGx5e28oKX19fSxjb21wbGV0ZTpmdW5jdGlvbigpe2lmKCFuKXtuPSEwO3RyeXt0LmNvbXBsZXRlJiZ0LmNvbXBsZXRlKCl9Y2F0Y2goZSl7cihlLCEwKX1maW5hbGx5e28oKX19fX0pO3RyeXtpPWUoYyl9Y2F0Y2goZSl7Yy5lcnJvcihlLCEwKX1yZXR1cm4gbiYmbygpLHN9ZnVuY3Rpb24gdShlLHQpe310LmV4cG9ydHM9aX0pKSxmZj1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSGQoKSksaT1uKHFkKCkpLGE9ZGYoKSxvPUZkKCk7dC5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXRoaXM7KDAsaS5kZWZhdWx0KSh0aGlzLGBfY29tcGxldGVgLCExKSwoMCxpLmRlZmF1bHQpKHRoaXMsYF9ldmVudHNgLFtdKSwoMCxpLmRlZmF1bHQpKHRoaXMsYF9zaW5rc2AsbmV3IFNldCksKDAsaS5kZWZhdWx0KSh0aGlzLGBfc3Vic2NyaXB0aW9uYCxbXSksdGhpcy5fb2JzZXJ2YWJsZT1hLmNyZWF0ZShmdW5jdGlvbih0KXtlLl9zaW5rcy5hZGQodCk7Zm9yKHZhciBuPWUuX2V2ZW50cyxyPTA7cjxuLmxlbmd0aCYmIXQuY2xvc2VkO3IrKyl7dmFyIGk9bltyXTtzd2l0Y2goaS5raW5kKXtjYXNlYGNvbXBsZXRlYDp0LmNvbXBsZXRlKCk7YnJlYWs7Y2FzZWBlcnJvcmA6dC5lcnJvcihpLmVycm9yKTticmVhaztjYXNlYG5leHRgOnQubmV4dChpLmRhdGEpO2JyZWFrO2RlZmF1bHQ6aS5raW5kLG8oITEpfX1yZXR1cm4gZnVuY3Rpb24oKXtlLl9zaW5rcy5kZWxldGUodCl9fSl9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuY29tcGxldGU9ZnVuY3Rpb24oKXt0aGlzLl9jb21wbGV0ZSE9PSEwJiYodGhpcy5fY29tcGxldGU9ITAsdGhpcy5fZXZlbnRzLnB1c2goe2tpbmQ6YGNvbXBsZXRlYH0pLHRoaXMuX3NpbmtzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29tcGxldGUoKX0pKX0sdC5lcnJvcj1mdW5jdGlvbihlKXt0aGlzLl9jb21wbGV0ZSE9PSEwJiYodGhpcy5fY29tcGxldGU9ITAsdGhpcy5fZXZlbnRzLnB1c2goe2tpbmQ6YGVycm9yYCxlcnJvcjplfSksdGhpcy5fc2lua3MuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5lcnJvcihlKX0pKX0sdC5uZXh0PWZ1bmN0aW9uKGUpe3RoaXMuX2NvbXBsZXRlIT09ITAmJih0aGlzLl9ldmVudHMucHVzaCh7a2luZDpgbmV4dGAsZGF0YTplfSksdGhpcy5fc2lua3MuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5uZXh0KGUpfSkpfSx0LnN1YnNjcmliZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9vYnNlcnZhYmxlLnN1YnNjcmliZShlKTtyZXR1cm4gdGhpcy5fc3Vic2NyaXB0aW9uLnB1c2godCksdH0sdC51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciBlPSgwLHIuZGVmYXVsdCkodGhpcy5fc3Vic2NyaXB0aW9uKSx0O3RyeXtmb3IoZS5zKCk7ISh0PWUubigpKS5kb25lOyl0LnZhbHVlLnVuc3Vic2NyaWJlKCl9Y2F0Y2godCl7ZS5lKHQpfWZpbmFsbHl7ZS5mKCl9dGhpcy5fc3Vic2NyaXB0aW9uPVtdfSx0LmdldE9ic2VydmVyQ291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2lua3Muc2l6ZX0sZX0oKX0pKSxwZj1zKCgoZSx0KT0+e3ZhciBuPWRmKCkscj1mZigpLGk9RmQoKSxhPXR5cGVvZiBXZWFrTWFwPT1gZnVuY3Rpb25gP25ldyBXZWFrTWFwOm5ldyBNYXA7ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBzKGUsdC5yZXF1ZXN0LmlkZW50aWZpZXIsZnVuY3Rpb24oKXtyZXR1cm4gZS5leGVjdXRlKHtvcGVyYXRpb246dH0pfSl9ZnVuY3Rpb24gcyhlLHQsYSl7cmV0dXJuIG4uY3JlYXRlKGZ1bmN0aW9uKG4pe3ZhciBvPWYoZSkscz1vLmdldCh0KTtyZXR1cm4gc3x8YSgpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gby5kZWxldGUodCl9KS5zdWJzY3JpYmUoe3N0YXJ0OmZ1bmN0aW9uKGUpe3M9e2lkZW50aWZpZXI6dCxzdWJqZWN0Om5ldyByLHN1YmplY3RGb3JJbkZsaWdodFN0YXR1czpuZXcgcixzdWJzY3JpcHRpb246ZSxwcm9taXNlOm51bGx9LG8uc2V0KHQscyl9LG5leHQ6ZnVuY3Rpb24oZSl7dmFyIG49cChvLHQpO24uc3ViamVjdC5uZXh0KGUpLG4uc3ViamVjdEZvckluRmxpZ2h0U3RhdHVzLm5leHQoZSl9LGVycm9yOmZ1bmN0aW9uKGUpe3ZhciBuPXAobyx0KTtuLnN1YmplY3QuZXJyb3IoZSksbi5zdWJqZWN0Rm9ySW5GbGlnaHRTdGF0dXMuZXJyb3IoZSl9LGNvbXBsZXRlOmZ1bmN0aW9uKCl7dmFyIGU9cChvLHQpO2Uuc3ViamVjdC5jb21wbGV0ZSgpLGUuc3ViamVjdEZvckluRmxpZ2h0U3RhdHVzLmNvbXBsZXRlKCl9LHVuc3Vic2NyaWJlOmZ1bmN0aW9uKGUpe3ZhciBuPXAobyx0KTtuLnN1YmplY3QudW5zdWJzY3JpYmUoKSxuLnN1YmplY3RGb3JJbkZsaWdodFN0YXR1cy51bnN1YnNjcmliZSgpfX0pLHM/P2koITEpLGMobyxzKS5zdWJzY3JpYmUobil9KX1mdW5jdGlvbiBjKGUsdCl7cmV0dXJuIG4uY3JlYXRlKGZ1bmN0aW9uKG4pe3ZhciByPXQuc3ViamVjdC5zdWJzY3JpYmUobik7cmV0dXJuIGZ1bmN0aW9uKCl7ci51bnN1YnNjcmliZSgpO3ZhciBuPWUuZ2V0KHQuaWRlbnRpZmllcik7aWYobil7dmFyIGk9bi5zdWJzY3JpcHRpb247aSE9bnVsbCYmbi5zdWJqZWN0LmdldE9ic2VydmVyQ291bnQoKT09PTAmJihpLnVuc3Vic2NyaWJlKCksZS5kZWxldGUodC5pZGVudGlmaWVyKSl9fX0pfWZ1bmN0aW9uIGwoZSx0LHIpe3JldHVybiBuLmNyZWF0ZShmdW5jdGlvbih0KXt2YXIgbj1yLnN1YmplY3RGb3JJbkZsaWdodFN0YXR1cy5zdWJzY3JpYmUoe2Vycm9yOnQuZXJyb3IsbmV4dDpmdW5jdGlvbihuKXtpZighZS5pc1JlcXVlc3RBY3RpdmUoci5pZGVudGlmaWVyKSl7dC5jb21wbGV0ZSgpO3JldHVybn10Lm5leHQoKX0sY29tcGxldGU6dC5jb21wbGV0ZSx1bnN1YnNjcmliZTp0LmNvbXBsZXRlfSk7cmV0dXJuIGZ1bmN0aW9uKCl7bi51bnN1YnNjcmliZSgpfX0pfWZ1bmN0aW9uIHUoZSx0KXt2YXIgbj1mKGUpLHI9bi5nZXQodC5pZGVudGlmaWVyKTtyZXR1cm4hcnx8IWUuaXNSZXF1ZXN0QWN0aXZlKHIuaWRlbnRpZmllcik/bnVsbDpuZXcgUHJvbWlzZShmdW5jdGlvbih0LGkpe3ZhciBhPSExO2woZSxuLHIpLnN1YnNjcmliZSh7Y29tcGxldGU6dCxlcnJvcjppLG5leHQ6ZnVuY3Rpb24oZSl7YSYmdChlKX19KSxhPSEwfSl9ZnVuY3Rpb24gZChlLHQpe3ZhciBuPWYoZSkscj1uLmdldCh0LmlkZW50aWZpZXIpO3JldHVybiFyfHwhZS5pc1JlcXVlc3RBY3RpdmUoci5pZGVudGlmaWVyKT9udWxsOmwoZSxuLHIpfWZ1bmN0aW9uIGYoZSl7dmFyIHQ9YS5nZXQoZSk7aWYodCE9bnVsbClyZXR1cm4gdDt2YXIgbj1uZXcgTWFwO3JldHVybiBhLnNldChlLG4pLG59ZnVuY3Rpb24gcChlLHQpe3ZhciBuPWUuZ2V0KHQpO3JldHVybiBuPz9pKCExKSxufXQuZXhwb3J0cz17ZmV0Y2hRdWVyeTpvLGZldGNoUXVlcnlEZWR1cGVkOnMsZ2V0UHJvbWlzZUZvckFjdGl2ZVJlcXVlc3Q6dSxnZXRPYnNlcnZhYmxlRm9yQWN0aXZlUmVxdWVzdDpkfX0pKSxtZj1zKCgoZSx0KT0+e3ZhciBuPXBmKCkuZ2V0UHJvbWlzZUZvckFjdGl2ZVJlcXVlc3Q7ZnVuY3Rpb24gcihlLHQscil7dmFyIGksYT1bXSxvPW4oZSxyKTtpZihvIT1udWxsKWE9W3JdO2Vsc2V7dmFyIHM9ZS5nZXRPcGVyYXRpb25UcmFja2VyKCkuZ2V0UGVuZGluZ09wZXJhdGlvbnNBZmZlY3RpbmdPd25lcihyKTthPShzPT1udWxsP3ZvaWQgMDpzLnBlbmRpbmdPcGVyYXRpb25zKT8/W10sbz0ocz09bnVsbD92b2lkIDA6cy5wcm9taXNlKT8/bnVsbH1pZighbylyZXR1cm4gbnVsbDt2YXIgYz0oKGk9YSk9PW51bGw/dm9pZCAwOmkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5vZGUucGFyYW1zLm5hbWV9KS5qb2luKGAsYCkpPz9udWxsOyhjPT1udWxsfHxjLmxlbmd0aD09PTApJiYoYz1gVW5rbm93biBwZW5kaW5nIG9wZXJhdGlvbmApO3ZhciBsPXQubmFtZSx1PWM9PT1sP2BSZWxheSgke2N9KWA6YFJlbGF5KCR7Y306JHtsfSlgO3JldHVybiBvLmRpc3BsYXlOYW1lPXUsZS5fX2xvZyh7bmFtZTpgcGVuZGluZ29wZXJhdGlvbi5mb3VuZGAsZnJhZ21lbnQ6dCxmcmFnbWVudE93bmVyOnIscGVuZGluZ09wZXJhdGlvbnM6YX0pLHtwcm9taXNlOm8scGVuZGluZ09wZXJhdGlvbnM6YX19dC5leHBvcnRzPXJ9KSksaGY9cygoKGUsdCk9Pnt2YXIgbj1sZigpLmRlZmF1bHQscj1kZigpLGk9UmQoKS5nZXRGcmFnbWVudCxhPW1mKCksbz1VZCgpLmhhbmRsZVBvdGVudGlhbFNuYXBzaG90RXJyb3JzLHM9b2YoKS5nZXRTZWxlY3RvcixjPUZkKCk7ZnVuY3Rpb24gbChlLHQsbil7cmV0dXJuIHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHUoKXtyZXR1cm4gdT1uKGZ1bmN0aW9uKihlLHQsbil7dmFyIHI7dHJ5e3ZhciBpLGE9eWllbGQgbmV3IFByb21pc2UoZnVuY3Rpb24oaSxhKXtyPWQoZSx0LG4pLnN1YnNjcmliZSh7bmV4dDpmdW5jdGlvbihlKXtlLnN0YXRlPT09YG9rYD9pKGUudmFsdWUpOmUuc3RhdGU9PT1gZXJyb3JgJiZhKGUuZXJyb3IpfX0pfSk7cmV0dXJuKGk9cik9PW51bGx8fGkudW5zdWJzY3JpYmUoKSxhfWNhdGNoKGUpe3ZhciBvO3Rocm93KG89cik9PW51bGx8fG8udW5zdWJzY3JpYmUoKSxlfX0pLHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGQoZSx0LG4pe3ZhciByLGE9aSh0KSxvPXMoYSxuKTtzd2l0Y2goKChyPWEubWV0YWRhdGEpPT1udWxsP3ZvaWQgMDpyLmhhc0NsaWVudEVkZ2VzKSE9bnVsbCYmYyghMSksbz8/YyghMSksby5raW5kKXtjYXNlYFNpbmd1bGFyUmVhZGVyU2VsZWN0b3JgOnJldHVybiBmKGUsdCxvKTtjYXNlYFBsdXJhbFJlYWRlclNlbGVjdG9yYDpjKCExKX1jKCExKX1mdW5jdGlvbiBmKGUsdCxuKXt2YXIgaT1lLmxvb2t1cChuKTtyZXR1cm4gci5jcmVhdGUoZnVuY3Rpb24ocil7ci5uZXh0KHAoZSx0LG4ub3duZXIsaSkpO3ZhciBhPWUuc3Vic2NyaWJlKGksZnVuY3Rpb24oaSl7ci5uZXh0KHAoZSx0LG4ub3duZXIsaSkpfSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuZGlzcG9zZSgpfX0pfWZ1bmN0aW9uIHAoZSx0LG4scil7dmFyIGk9ci5taXNzaW5nTGl2ZVJlc29sdmVyRmllbGRzIT1udWxsJiZyLm1pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHMubGVuZ3RoPjAscz1yLm1pc3NpbmdDbGllbnRFZGdlcyE9bnVsbCYmci5taXNzaW5nQ2xpZW50RWRnZXMubGVuZ3RoPjA7aWYoaXx8c3x8ci5pc01pc3NpbmdEYXRhJiZhKGUsdCxuKSE9bnVsbClyZXR1cm57c3RhdGU6YGxvYWRpbmdgfTt0cnl7byhlLHIuZXJyb3JSZXNwb25zZUZpZWxkcyl9Y2F0Y2goZSl7cmV0dXJue2Vycm9yOmUsc3RhdGU6YGVycm9yYH19cmV0dXJuIHIuZGF0YT8/YyghMSkse3N0YXRlOmBva2AsdmFsdWU6ci5kYXRhfX10LmV4cG9ydHM9e29ic2VydmVGcmFnbWVudDpkLHdhaXRGb3JGcmFnbWVudERhdGE6bH19KSksZ2Y9cygoKGUsdCk9Pnt2YXIgbj1sZigpLmRlZmF1bHQscj1oZigpLm9ic2VydmVGcmFnbWVudDtmdW5jdGlvbiBpKGUsdCxuKXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYSgpe3JldHVybiBhPW4oZnVuY3Rpb24qKGUsdCxuKXt2YXIgaTt0cnl7dmFyIGEsbz15aWVsZCBuZXcgUHJvbWlzZShmdW5jdGlvbihhLG8pe2k9cihlLHQsbikuc3Vic2NyaWJlKHtuZXh0OmZ1bmN0aW9uKGUpe2Uuc3RhdGU9PT1gb2tgP2EoZS52YWx1ZSk6ZS5zdGF0ZT09PWBlcnJvcmAmJm8oZS5lcnJvcil9fSl9KTtyZXR1cm4oYT1pKT09bnVsbHx8YS51bnN1YnNjcmliZSgpLG99Y2F0Y2goZSl7dmFyIHM7dGhyb3cocz1pKT09bnVsbHx8cy51bnN1YnNjcmliZSgpLGV9fSksYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5leHBvcnRzPXt3YWl0Rm9yRnJhZ21lbnREYXRhOml9fSkpLF9mPXMoKChlLHQpPT57dmFyIG49Y2YoKSxyPWhmKCkub2JzZXJ2ZUZyYWdtZW50LGk9Z2YoKS53YWl0Rm9yRnJhZ21lbnREYXRhO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGUub2s9PT0hMH1mdW5jdGlvbiBvKGUpe3JldHVybiBlLm9rPT09ITF9dC5leHBvcnRzPXtyZXNvbHZlckRhdGFJbmplY3RvcjpuLGlzVmFsdWVSZXN1bHQ6YSxpc0Vycm9yUmVzdWx0Om8sb2JzZXJ2ZUZyYWdtZW50OnIsd2FpdEZvckZyYWdtZW50RGF0YTppfX0pKSx2Zj1zKCgoZSx0KT0+e3QuZXhwb3J0cz17RU5BQkxFX1ZBUklBQkxFX0NPTk5FQ1RJT05fS0VZOiExLEVOQUJMRV9SRUxBWV9SRVNPTFZFUlM6ITEsRU5BQkxFX0dFVEZSQUdNRU5USURFTlRJRklFUl9PUFRJTUlaQVRJT046ITEsRU5BQkxFX0ZSSUVORExZX1FVRVJZX05BTUVfR1FMX1VSTDohMSxFTkFCTEVfRE9fTk9UX1dSQVBfTElWRV9RVUVSWTohMSxFTkFCTEVfTk9USUZZX1NVQlNDUklQVElPTjohMSxCQVRDSF9BU1lOQ19NT0RVTEVfVVBEQVRFU19GTjpudWxsLEVOQUJMRV9DT05UQUlORVJTX1NVQlNDUklCRV9PTl9DT01NSVQ6ITEsTUFYX0RBVEFfSURfTEVOR1RIOm51bGwsU1RSSU5HX0lOVEVSTl9MRVZFTDowLExPR19NSVNTSU5HX1JFQ09SRFNfSU5fUFJPRDohMSxFTkFCTEVfTk9OQ09NUExJQU5UX0VSUk9SX0hBTkRMSU5HX09OX0xJU1RTOiExLEVOQUJMRV9MT09TRV9TVUJTQ1JJUFRJT05fQVRUUklCVVRJT046ITEsRU5BQkxFX09QRVJBVElPTl9UUkFDS0VSX09QVElNSVNUSUNfVVBEQVRFUzohMSxFTkFCTEVfUkVMQVlfT1BFUkFUSU9OX1RSQUNLRVJfU1VTUEVOU0U6ITEsUFJPQ0VTU19PUFRJTUlTVElDX1VQREFURV9CRUZPUkVfU1VCU0NSSVBUSU9OOiExLE1BUktfUkVTT0xWRVJfVkFMVUVTX0FTX0NMRUFOX0FGVEVSX0ZSQUdNRU5UX1JFUkVBRDohMSxFTkFCTEVfQ1lMRV9ERVRFQ1RJT05fSU5fVkFSSUFCTEVTOiExLEVOQUJMRV9BQ1RJVklUWV9DT01QQVRJQklMSVRZOiExLEVOQUJMRV9SRUFEX1RJTUVfUkVTT0xWRVJfU1RPUkFHRV9LRVlfUFJFRklYOiEwfX0pKSx5Zj1zKCgoZSx0KT0+e3ZhciBuPW5ldyBNYXAscj0xLGk9cygpLGE9YAlgLG89YFx2YDtmdW5jdGlvbiBzKCl7Zm9yKHZhciBlPW5ldyBTZXQsdD0wO3Q8MTA7Kyt0KWUuYWRkKHQudG9TdHJpbmcoKSk7cmV0dXJuIGV9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZVswXT09PWEmJmkuaGFzKGVbMV0pfHxlWzBdPT09bz9vK2U6ZX1mdW5jdGlvbiBsKGUsdCl7aWYodD09bnVsbHx8ZS5sZW5ndGg8dClyZXR1cm4gYyhlKTt2YXIgaT1uLmdldChlKTtyZXR1cm4gaT8/KGk9YSsgcisrLG4uc2V0KGUsaSksaSl9dC5leHBvcnRzPXtpbnRlcm46bH19KSksYmY9cygoKGUsdCk9Pnt2YXIgbj12ZigpLHI9eWYoKS5pbnRlcm4saT1gY2xpZW50OmA7ZnVuY3Rpb24gYShlLHQsYSl7dmFyIG89KG4uU1RSSU5HX0lOVEVSTl9MRVZFTDw9MD9lOnIoZSxuLk1BWF9EQVRBX0lEX0xFTkdUSCkpK2A6YCt0O3JldHVybiBhIT1udWxsJiYobys9YDpgK2EpLG8uaW5kZXhPZihpKSE9PTAmJihvPWkrbyksb31mdW5jdGlvbiBvKGUpe3JldHVybiBlLmluZGV4T2YoaSk9PT0wfXZhciBzPTA7ZnVuY3Rpb24gYygpe3JldHVybmAke2l9bG9jYWw6JHtzKyt9YH1mdW5jdGlvbiBsKGUsdCxuKXt2YXIgcj1gJHtpfSR7ZX06JHt0fWA7cmV0dXJuIG4hPW51bGwmJihyKz1gOmArbikscn10LmV4cG9ydHM9e2dlbmVyYXRlQ2xpZW50SUQ6YSxnZW5lcmF0ZUNsaWVudE9iamVjdENsaWVudElEOmwsZ2VuZXJhdGVVbmlxdWVDbGllbnRJRDpjLGlzQ2xpZW50SUQ6b319KSkseGY9cygoKGUsdCk9Pnt2YXIgbj17YWZ0ZXI6ITAsYmVmb3JlOiEwLGZpbmQ6ITAsZmlyc3Q6ITAsbGFzdDohMCxzdXJyb3VuZHM6ITB9LHI9e0NVUlNPUjpgY3Vyc29yYCxFREdFUzpgZWRnZXNgLEVORF9DVVJTT1I6YGVuZEN1cnNvcmAsSEFTX05FWFRfUEFHRTpgaGFzTmV4dFBhZ2VgLEhBU19QUkVWX1BBR0U6YGhhc1ByZXZpb3VzUGFnZWAsTk9ERTpgbm9kZWAsUEFHRV9JTkZPX1RZUEU6YFBhZ2VJbmZvYCxQQUdFX0lORk86YHBhZ2VJbmZvYCxTVEFSVF9DVVJTT1I6YHN0YXJ0Q3Vyc29yYH07dC5leHBvcnRzPXtpbmplY3Q6ZnVuY3Rpb24oZSl7cj1lfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcn0saXNDb25uZWN0aW9uQ2FsbDpmdW5jdGlvbihlKXtyZXR1cm4gbi5oYXNPd25Qcm9wZXJ0eShlLm5hbWUpfX19KSksU2Y9cygoKGUsdCk9Pnt2YXIgbj1iZigpLmdlbmVyYXRlQ2xpZW50SUQscj1uZigpLmdldFN0YWJsZVN0b3JhZ2VLZXksaT1lZigpLGE9eGYoKSxvPUZkKCk7TGQoKTt2YXIgcz1gY29ubmVjdGlvbmAsYz1gX19jb25uZWN0aW9uX25leHRfZWRnZV9pbmRleGA7ZnVuY3Rpb24gbChlLHQpe3ZhciByPWUuZ2V0KHQuZGF0YUlEKTtpZihyKXt2YXIgaT1hLmdldCgpLG89aS5FREdFUyxzPWkuRU5EX0NVUlNPUixsPWkuSEFTX05FWFRfUEFHRSx1PWkuSEFTX1BSRVZfUEFHRSxkPWkuUEFHRV9JTkZPLGY9aS5QQUdFX0lORk9fVFlQRSxwPWkuU1RBUlRfQ1VSU09SLG09ci5nZXRMaW5rZWRSZWNvcmQodC5maWVsZEtleSksaD1tJiZtLmdldExpbmtlZFJlY29yZChkKTtpZighbSl7ci5zZXRWYWx1ZShudWxsLHQuaGFuZGxlS2V5LHZvaWQgMCxyLmdldEVycm9ycyh0LmZpZWxkS2V5KSk7cmV0dXJufXZhciB2PW4oci5nZXREYXRhSUQoKSx0LmhhbmRsZUtleSkseT1yLmdldExpbmtlZFJlY29yZCh0LmhhbmRsZUtleSksYj15Pz9lLmdldCh2KSx4PWImJmIuZ2V0TGlua2VkUmVjb3JkKGQpO2lmKGIpe3k/P3Iuc2V0TGlua2VkUmVjb3JkKGIsdC5oYW5kbGVLZXkpO3ZhciBTPWIsQz1tLmdldExpbmtlZFJlY29yZHMobyk7QyYmKEM9Qy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGcoZSxTLHQpfSkpO3ZhciB3PVMuZ2V0TGlua2VkUmVjb3JkcyhvKSxUPVMuZ2V0TGlua2VkUmVjb3JkKGQpO1MuY29weUZpZWxkc0Zyb20obSksdyYmUy5zZXRMaW5rZWRSZWNvcmRzKHcsbyksVCYmUy5zZXRMaW5rZWRSZWNvcmQoVCxkKTt2YXIgRT1bXSxEPXQuYXJncztpZih3JiZDKWlmKEQuYWZ0ZXIhPW51bGwpe3ZhciBPLGs9KE89eCk9PW51bGw/dm9pZCAwOk8uZ2V0VmFsdWUocyksQT1oPT1udWxsP3ZvaWQgMDpoLmdldFZhbHVlKHMpO2lmKHgmJkQuYWZ0ZXI9PT1rfHx4JiZrPT09QSl7dmFyIGo9bmV3IFNldDtfKHcsRSxqKSxfKEMsRSxqKX1lbHNlIHJldHVybn1lbHNlIGlmKEQuYmVmb3JlIT1udWxsKWlmKHgmJkQuYmVmb3JlPT09eC5nZXRWYWx1ZShwKSl7dmFyIE09bmV3IFNldDtfKEMsRSxNKSxfKHcsRSxNKX1lbHNlIHJldHVybjtlbHNlIEU9QztlbHNlIEU9Q3x8dztpZihFIT1udWxsJiZFIT09dyYmUy5zZXRMaW5rZWRSZWNvcmRzKEUsbykseCYmaCl7aWYoRC5hZnRlcj09bnVsbCYmRC5iZWZvcmU9PW51bGwpeC5jb3B5RmllbGRzRnJvbShoKTtlbHNlIGlmKEQuYmVmb3JlIT1udWxsfHxELmFmdGVyPT1udWxsJiZELmxhc3Qpe3guc2V0VmFsdWUoISFoLmdldFZhbHVlKHUpLHUpO3ZhciBOPWguZ2V0VmFsdWUocCk7dHlwZW9mIE49PWBzdHJpbmdgJiZ4LnNldFZhbHVlKE4scCl9ZWxzZSBpZihELmFmdGVyIT1udWxsfHxELmJlZm9yZT09bnVsbCYmRC5maXJzdCl7eC5zZXRWYWx1ZSghIWguZ2V0VmFsdWUobCksbCk7dmFyIFA9aC5nZXRWYWx1ZShzKTt0eXBlb2YgUD09YHN0cmluZ2AmJnguc2V0VmFsdWUoUCxzKX19fWVsc2V7dmFyIEY9ZS5jcmVhdGUodixtLmdldFR5cGUoKSk7Ri5zZXRWYWx1ZSgwLGMpLEYuY29weUZpZWxkc0Zyb20obSk7dmFyIGVlPW0uZ2V0TGlua2VkUmVjb3JkcyhvKTtlZSYmKGVlPWVlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZyhlLEYsdCl9KSxGLnNldExpbmtlZFJlY29yZHMoZWUsbykpLHIuc2V0TGlua2VkUmVjb3JkKEYsdC5oYW5kbGVLZXkpLHg9ZS5jcmVhdGUobihGLmdldERhdGFJRCgpLGQpLGYpLHguc2V0VmFsdWUoITEsbCkseC5zZXRWYWx1ZSghMSx1KSx4LnNldFZhbHVlKG51bGwscykseC5zZXRWYWx1ZShudWxsLHApLGgmJnguY29weUZpZWxkc0Zyb20oaCksRi5zZXRMaW5rZWRSZWNvcmQoeCxkKX19fWZ1bmN0aW9uIHUoZSx0LG4pe3ZhciByPWkocyx0LG51bGwpO3JldHVybiBlLmdldExpbmtlZFJlY29yZChyLG4pfWZ1bmN0aW9uIGQoZSx0LGEpe3JldHVybiBuKGUscihpKHMsdCxudWxsKSxhKSl9ZnVuY3Rpb24gZihlLHQsbil7dmFyIHI9YS5nZXQoKSxpPXIuQ1VSU09SLG89ci5FREdFUyxzPWUuZ2V0TGlua2VkUmVjb3JkcyhvKTtpZighcyl7ZS5zZXRMaW5rZWRSZWNvcmRzKFt0XSxvKTtyZXR1cm59dmFyIGM7aWYobj09bnVsbCljPXMuY29uY2F0KHQpO2Vsc2V7Yz1bXTtmb3IodmFyIGw9ITEsdT0wO3U8cy5sZW5ndGg7dSsrKXt2YXIgZD1zW3VdO2MucHVzaChkKSxkIT1udWxsJiZuPT09ZC5nZXRWYWx1ZShpKSYmKGMucHVzaCh0KSxsPSEwKX1sfHxjLnB1c2godCl9ZS5zZXRMaW5rZWRSZWNvcmRzKGMsbyl9ZnVuY3Rpb24gcChlLHQscixpKXt2YXIgbz1hLmdldCgpLk5PREUscz1uKHQuZ2V0RGF0YUlEKCksci5nZXREYXRhSUQoKSksYz1lLmdldChzKTtyZXR1cm4gY3x8KGM9ZS5jcmVhdGUocyxpKSksYy5zZXRMaW5rZWRSZWNvcmQocixvKSxjLmdldFZhbHVlKGBjdXJzb3JgKT8/Yy5zZXRWYWx1ZShudWxsLGBjdXJzb3JgKSxjfWZ1bmN0aW9uIG0oZSx0LG4pe3ZhciByPWEuZ2V0KCksaT1yLkNVUlNPUixvPXIuRURHRVMscz1lLmdldExpbmtlZFJlY29yZHMobyk7aWYoIXMpe2Uuc2V0TGlua2VkUmVjb3JkcyhbdF0sbyk7cmV0dXJufXZhciBjO2lmKG49PW51bGwpYz1bdF0uY29uY2F0KHMpO2Vsc2V7Yz1bXTtmb3IodmFyIGw9ITEsdT0wO3U8cy5sZW5ndGg7dSsrKXt2YXIgZD1zW3VdO2QhPW51bGwmJm49PT1kLmdldFZhbHVlKGkpJiYoYy5wdXNoKHQpLGw9ITApLGMucHVzaChkKX1sfHxjLnVuc2hpZnQodCl9ZS5zZXRMaW5rZWRSZWNvcmRzKGMsbyl9ZnVuY3Rpb24gaChlLHQpe3ZhciBuPWEuZ2V0KCkscj1uLkVER0VTLGk9bi5OT0RFLG89ZS5nZXRMaW5rZWRSZWNvcmRzKHIpO2lmKG8pe2Zvcih2YXIgcyxjPTA7YzxvLmxlbmd0aDtjKyspe3ZhciBsPW9bY10sdT1sJiZsLmdldExpbmtlZFJlY29yZChpKTt1IT1udWxsJiZ1LmdldERhdGFJRCgpPT09dD9zPT09dm9pZCAwJiYocz1vLnNsaWNlKDAsYykpOnMhPT12b2lkIDAmJnMucHVzaChsKX1zIT09dm9pZCAwJiZlLnNldExpbmtlZFJlY29yZHMocyxyKX19ZnVuY3Rpb24gZyhlLHQscil7aWYocj09bnVsbClyZXR1cm4gcjt2YXIgaT1hLmdldCgpLkVER0VTLHM9dC5nZXRWYWx1ZShjKTt0eXBlb2YgcyE9YG51bWJlcmAmJm8oITEpO3ZhciBsPW4odC5nZXREYXRhSUQoKSxpLHMpLHU9ZS5jcmVhdGUobCxyLmdldFR5cGUoKSk7cmV0dXJuIHUuY29weUZpZWxkc0Zyb20ociksdS5nZXRWYWx1ZShgY3Vyc29yYCk/P3Uuc2V0VmFsdWUobnVsbCxgY3Vyc29yYCksdC5zZXRWYWx1ZShzKzEsYyksdX1mdW5jdGlvbiBfKGUsdCxuKXtmb3IodmFyIHI9YS5nZXQoKS5OT0RFLGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89ZVtpXTtpZihvKXt2YXIgcz1vLmdldExpbmtlZFJlY29yZChyKSxjPXMmJnMuZ2V0RGF0YUlEKCk7aWYoYyl7aWYobi5oYXMoYykpY29udGludWU7bi5hZGQoYyl9dC5wdXNoKG8pfX19dC5leHBvcnRzPXtidWlsZENvbm5lY3Rpb25FZGdlOmcsY3JlYXRlRWRnZTpwLGRlbGV0ZU5vZGU6aCxnZXRDb25uZWN0aW9uOnUsZ2V0Q29ubmVjdGlvbklEOmQsaW5zZXJ0RWRnZUFmdGVyOmYsaW5zZXJ0RWRnZUJlZm9yZTptLHVwZGF0ZTpsfX0pKSxDZj1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSGQoKSksaT1TZigpLGE9eGYoKSxvPUZkKCk7TGQoKTt2YXIgcz17dXBkYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXQodC5kYXRhSUQpO2lmKG4hPW51bGwpe3ZhciByPW4uZ2V0VmFsdWUodC5maWVsZEtleSk7dHlwZW9mIHI9PWBzdHJpbmdgP2UuZGVsZXRlKHIpOkFycmF5LmlzQXJyYXkocikmJnIuZm9yRWFjaChmdW5jdGlvbih0KXt0eXBlb2YgdD09YHN0cmluZ2AmJmUuZGVsZXRlKHQpfSl9fX0sYz17dXBkYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXQodC5kYXRhSUQpO2lmKG4hPW51bGwpe3ZhciBhPXQuaGFuZGxlQXJncy5jb25uZWN0aW9uczthPz9vKCExKTt2YXIgcz1uLmdldFZhbHVlKHQuZmllbGRLZXkpOyhBcnJheS5pc0FycmF5KHMpP3M6W3NdKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKHR5cGVvZiB0PT1gc3RyaW5nYCl7dmFyIG49KDAsci5kZWZhdWx0KShhKSxvO3RyeXtmb3Iobi5zKCk7IShvPW4ubigpKS5kb25lOyl7dmFyIHM9by52YWx1ZSxjPWUuZ2V0KHMpO2MhPW51bGwmJmkuZGVsZXRlTm9kZShjLHQpfX1jYXRjaChlKXtuLmUoZSl9ZmluYWxseXtuLmYoKX19fSl9fX0sbD17dXBkYXRlOnAoaS5pbnNlcnRFZGdlQWZ0ZXIpfSx1PXt1cGRhdGU6cChpLmluc2VydEVkZ2VCZWZvcmUpfSxkPXt1cGRhdGU6bShpLmluc2VydEVkZ2VBZnRlcil9LGY9e3VwZGF0ZTptKGkuaW5zZXJ0RWRnZUJlZm9yZSl9O2Z1bmN0aW9uIHAoZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7dmFyIHM9dC5nZXQobi5kYXRhSUQpO2lmKHMhPW51bGwpe3ZhciBjPW4uaGFuZGxlQXJncy5jb25uZWN0aW9ucztjPz9vKCExKTt2YXIgbCx1O3RyeXtsPXMuZ2V0TGlua2VkUmVjb3JkKG4uZmllbGRLZXkpfWNhdGNoe31pZighbCl0cnl7dT1zLmdldExpbmtlZFJlY29yZHMobi5maWVsZEtleSl9Y2F0Y2h7fWlmKCEobD09bnVsbCYmdT09bnVsbCkpe3ZhciBkPWEuZ2V0KCksZj1kLk5PREUscD1kLkVER0VTLG09dT8/W2xdLGg9KDAsci5kZWZhdWx0KShtKSxnO3RyeXt2YXIgXz1mdW5jdGlvbigpe3ZhciBuPWcudmFsdWU7aWYobj09bnVsbClyZXR1cm5gY29udGludWVgO3ZhciBhPW4uZ2V0TGlua2VkUmVjb3JkKGBub2RlYCk7aWYoIWEpcmV0dXJuYGNvbnRpbnVlYDt2YXIgcz1hLmdldERhdGFJRCgpLGw9KDAsci5kZWZhdWx0KShjKSx1O3RyeXtmb3IobC5zKCk7ISh1PWwubigpKS5kb25lOyl7dmFyIGQ9dS52YWx1ZSxtPXQuZ2V0KGQpO2lmKG0hPW51bGwmJiEoKHY9bS5nZXRMaW5rZWRSZWNvcmRzKHApKSE9bnVsbCYmdi5zb21lKGZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybihlPT1udWxsfHwodD1lLmdldExpbmtlZFJlY29yZChmKSk9PW51bGw/dm9pZCAwOnQuZ2V0RGF0YUlEKCkpPT09c30pKSl7dmFyIGg9aS5idWlsZENvbm5lY3Rpb25FZGdlKHQsbSxuKTtoPz9vKCExKSxlKG0saCl9fX1jYXRjaChlKXtsLmUoZSl9ZmluYWxseXtsLmYoKX19O2ZvcihoLnMoKTshKGc9aC5uKCkpLmRvbmU7KXt2YXIgdjtfKCl9fWNhdGNoKGUpe2guZShlKX1maW5hbGx5e2guZigpfX19fX1mdW5jdGlvbiBtKGUpe3JldHVybiBmdW5jdGlvbih0LG4pe3ZhciBzPXQuZ2V0KG4uZGF0YUlEKTtpZihzIT1udWxsKXt2YXIgYz1uLmhhbmRsZUFyZ3MsbD1jLmNvbm5lY3Rpb25zLHU9Yy5lZGdlVHlwZU5hbWU7bD8/byghMSksdT8/byghMSk7dmFyIGQsZjt0cnl7ZD1zLmdldExpbmtlZFJlY29yZChuLmZpZWxkS2V5KX1jYXRjaHt9aWYoIWQpdHJ5e2Y9cy5nZXRMaW5rZWRSZWNvcmRzKG4uZmllbGRLZXkpfWNhdGNoe31pZighKGQ9PW51bGwmJmY9PW51bGwpKXt2YXIgcD1hLmdldCgpLG09cC5OT0RFLGg9cC5FREdFUyxnPWY/P1tkXSxfPSgwLHIuZGVmYXVsdCkoZyksdjt0cnl7dmFyIHk9ZnVuY3Rpb24oKXt2YXIgbj12LnZhbHVlO2lmKG49PW51bGwpcmV0dXJuYGNvbnRpbnVlYDt2YXIgYT1uLmdldERhdGFJRCgpLHM9KDAsci5kZWZhdWx0KShsKSxjO3RyeXtmb3Iocy5zKCk7IShjPXMubigpKS5kb25lOyl7dmFyIGQ9Yy52YWx1ZSxmPXQuZ2V0KGQpO2lmKGYhPW51bGwmJiEoKGI9Zi5nZXRMaW5rZWRSZWNvcmRzKGgpKSE9bnVsbCYmYi5zb21lKGZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybihlPT1udWxsfHwodD1lLmdldExpbmtlZFJlY29yZChtKSk9PW51bGw/dm9pZCAwOnQuZ2V0RGF0YUlEKCkpPT09YX0pKSl7dmFyIHA9aS5jcmVhdGVFZGdlKHQsZixuLHUpO3A/P28oITEpLGUoZixwKX19fWNhdGNoKGUpe3MuZShlKX1maW5hbGx5e3MuZigpfX07Zm9yKF8ucygpOyEodj1fLm4oKSkuZG9uZTspe3ZhciBiO3koKX19Y2F0Y2goZSl7Xy5lKGUpfWZpbmFsbHl7Xy5mKCl9fX19fXQuZXhwb3J0cz17QXBwZW5kRWRnZUhhbmRsZXI6bCxEZWxldGVSZWNvcmRIYW5kbGVyOnMsUHJlcGVuZEVkZ2VIYW5kbGVyOnUsQXBwZW5kTm9kZUhhbmRsZXI6ZCxQcmVwZW5kTm9kZUhhbmRsZXI6ZixEZWxldGVFZGdlSGFuZGxlcjpjfX0pKSx3Zj1zKCgoZSx0KT0+e3ZhciBuPVNmKCkscj1DZigpLGk9RmQoKTtmdW5jdGlvbiBhKGUpe3N3aXRjaChlKXtjYXNlYGNvbm5lY3Rpb25gOnJldHVybiBuO2Nhc2VgZGVsZXRlUmVjb3JkYDpyZXR1cm4gci5EZWxldGVSZWNvcmRIYW5kbGVyO2Nhc2VgZGVsZXRlRWRnZWA6cmV0dXJuIHIuRGVsZXRlRWRnZUhhbmRsZXI7Y2FzZWBhcHBlbmRFZGdlYDpyZXR1cm4gci5BcHBlbmRFZGdlSGFuZGxlcjtjYXNlYHByZXBlbmRFZGdlYDpyZXR1cm4gci5QcmVwZW5kRWRnZUhhbmRsZXI7Y2FzZWBhcHBlbmROb2RlYDpyZXR1cm4gci5BcHBlbmROb2RlSGFuZGxlcjtjYXNlYHByZXBlbmROb2RlYDpyZXR1cm4gci5QcmVwZW5kTm9kZUhhbmRsZXJ9aSghMSl9dC5leHBvcnRzPWF9KSksVGY9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUpe3JldHVybiEhKGUmJmVbYEBAUmVsYXlNb2Rlcm5FbnZpcm9ubWVudGBdKX10LmV4cG9ydHM9bn0pKSxFZj1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7cmV0dXJuIHIoZSk/KE9iamVjdC5mcmVlemUoZSksT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcj1lW3RdO3ImJnR5cGVvZiByPT1gb2JqZWN0YCYmIU9iamVjdC5pc0Zyb3plbihyKSYmbihyKX0pLGUpOmV9ZnVuY3Rpb24gcihlKXtyZXR1cm4gZSE9bnVsbCYmKEFycmF5LmlzQXJyYXkoZSl8fHR5cGVvZiBlPT1gb2JqZWN0YCYmZS5jb25zdHJ1Y3Rvcj09PU9iamVjdCl9dC5leHBvcnRzPW59KSksRGY9cygoKGUsdCk9Pnt2YXIgbj10ZigpLnN0YWJsZUNvcHkscj1GZCgpO2Z1bmN0aW9uIGkoZSx0KXt2YXIgaT1lLmNhY2hlSUQ9PW51bGw/ZS5pZDplLmNhY2hlSUQ7cmV0dXJuIGk/P3IoITEpLGkrSlNPTi5zdHJpbmdpZnkobih0KSl9dC5leHBvcnRzPWl9KSksT2Y9cygoKGUsdCk9PntFZigpO3ZhciBuPURmKCkscj12ZigpLGk9dGYoKS5oYXNDeWNsZSxhPXJmKCkuZ2V0T3BlcmF0aW9uVmFyaWFibGVzLG89b2YoKSxzPW8uY3JlYXRlTm9ybWFsaXphdGlvblNlbGVjdG9yLGM9by5jcmVhdGVSZWFkZXJTZWxlY3RvcixsPW5mKCkuUk9PVF9JRCx1PUZkKCk7ZnVuY3Rpb24gZChlLHQsbil7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4zJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOmwsZD1lLm9wZXJhdGlvbixwPWEoZCxlLnBhcmFtcy5wcm92aWRlZFZhcmlhYmxlcyx0KTtyLkVOQUJMRV9DWUxFX0RFVEVDVElPTl9JTl9WQVJJQUJMRVMmJmkocCkmJnUoITEpO3ZhciBtPWYoZSxwLG4pO3JldHVybntmcmFnbWVudDpjKGUuZnJhZ21lbnQsbyxwLG0pLHJlcXVlc3Q6bSxyb290OnMoZCxvLHApfX1mdW5jdGlvbiBmKGUsdCxyKXtyZXR1cm57aWRlbnRpZmllcjpuKGUucGFyYW1zLHQpLG5vZGU6ZSx2YXJpYWJsZXM6dCxjYWNoZUNvbmZpZzpyfX10LmV4cG9ydHM9e2NyZWF0ZU9wZXJhdGlvbkRlc2NyaXB0b3I6ZCxjcmVhdGVSZXF1ZXN0RGVzY3JpcHRvcjpmfX0pKSxrZj1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSGQoKSksaT1TZigpO0xkKCk7dmFyIGE9T2JqZWN0LmZyZWV6ZSh7UkFOR0VfQUREOmBSQU5HRV9BRERgLFJBTkdFX0RFTEVURTpgUkFOR0VfREVMRVRFYCxOT0RFX0RFTEVURTpgTk9ERV9ERUxFVEVgfSksbz1PYmplY3QuZnJlZXplKHtBUFBFTkQ6YGFwcGVuZGAsUFJFUEVORDpgcHJlcGVuZGB9KTtmdW5jdGlvbiBzKGUsdCxuLHIpe3ZhciBpPW4/W25dOltdLGE9cj9bcl06W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXtzd2l0Y2goZS50eXBlKXtjYXNlYE5PREVfREVMRVRFYDp2YXIgbj1jKGUsdCk7biYmKGkucHVzaChuKSxhLnB1c2gobikpO2JyZWFrO2Nhc2VgUkFOR0VfQUREYDp2YXIgcj1sKGUsdCk7ciYmKGkucHVzaChyKSxhLnB1c2gocikpO2JyZWFrO2Nhc2VgUkFOR0VfREVMRVRFYDp2YXIgbz11KGUsdCk7byYmKGkucHVzaChvKSxhLnB1c2gobykpO2JyZWFrfX0pLHtvcHRpbWlzdGljVXBkYXRlcjpmdW5jdGlvbihlLHQpe2kuZm9yRWFjaChmdW5jdGlvbihuKXtuKGUsdCl9KX0sdXBkYXRlcjpmdW5jdGlvbihlLHQpe2EuZm9yRWFjaChmdW5jdGlvbihuKXtuKGUsdCl9KX19fWZ1bmN0aW9uIGMoZSx0KXt2YXIgbj1lLmRlbGV0ZWRJREZpZWxkTmFtZSxyPWYodCk7cmV0dXJuIHI/ZnVuY3Rpb24oZSx0KXt2YXIgaT1lLmdldFJvb3RGaWVsZChyKTtpZihpKXt2YXIgYT1pLmdldFZhbHVlKG4pOyhBcnJheS5pc0FycmF5KGEpP2E6W2FdKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QmJnR5cGVvZiB0PT1gc3RyaW5nYCYmZS5kZWxldGUodCl9KX19Om51bGx9ZnVuY3Rpb24gbChlLHQpe3ZhciBuPWUucGFyZW50SUQsYT1lLmNvbm5lY3Rpb25JbmZvLG89ZS5lZGdlTmFtZTtpZighbilyZXR1cm4gbnVsbDt2YXIgcz1mKHQpO3JldHVybiFhfHwhcz9udWxsOmZ1bmN0aW9uKGUsdCl7dmFyIGM9ZS5nZXQobik7aWYoYyl7dmFyIGw9ZS5nZXRSb290RmllbGQocyk7aWYobCl7dmFyIHU9bC5nZXRMaW5rZWRSZWNvcmQobyksZD0oMCxyLmRlZmF1bHQpKGEpLGY7dHJ5e2ZvcihkLnMoKTshKGY9ZC5uKCkpLmRvbmU7KXt2YXIgcD1mLnZhbHVlO2lmKHUpe3ZhciBtPWkuZ2V0Q29ubmVjdGlvbihjLHAua2V5LHAuZmlsdGVycyk7aWYobSl7dmFyIGg9aS5idWlsZENvbm5lY3Rpb25FZGdlKGUsbSx1KTtpZihoKXN3aXRjaChwLnJhbmdlQmVoYXZpb3Ipe2Nhc2VgYXBwZW5kYDppLmluc2VydEVkZ2VBZnRlcihtLGgpO2JyZWFrO2Nhc2VgcHJlcGVuZGA6aS5pbnNlcnRFZGdlQmVmb3JlKG0saCk7YnJlYWs7ZGVmYXVsdDpicmVha319fX19Y2F0Y2goZSl7ZC5lKGUpfWZpbmFsbHl7ZC5mKCl9fX19fWZ1bmN0aW9uIHUoZSx0KXt2YXIgbj1lLnBhcmVudElELGk9ZS5jb25uZWN0aW9uS2V5cyxhPWUucGF0aFRvQ29ubmVjdGlvbixvPWUuZGVsZXRlZElERmllbGROYW1lO2lmKCFuKXJldHVybiBudWxsO3ZhciBzPWYodCk7cmV0dXJuIHM/ZnVuY3Rpb24oZSx0KXtpZih0KXt2YXIgYz1bXSxsPXRbc107aWYobCYmQXJyYXkuaXNBcnJheShvKSl7dmFyIHU9KDAsci5kZWZhdWx0KShvKSxmO3RyeXtmb3IodS5zKCk7IShmPXUubigpKS5kb25lOyl7dmFyIHA9Zi52YWx1ZTtsJiZ0eXBlb2YgbD09YG9iamVjdGAmJihsPWxbcF0pfX1jYXRjaChlKXt1LmUoZSl9ZmluYWxseXt1LmYoKX1BcnJheS5pc0FycmF5KGwpP2wuZm9yRWFjaChmdW5jdGlvbihlKXtlJiZlLmlkJiZ0eXBlb2YgZT09YG9iamVjdGAmJnR5cGVvZiBlLmlkPT1gc3RyaW5nYCYmYy5wdXNoKGUuaWQpfSk6bCYmbC5pZCYmdHlwZW9mIGwuaWQ9PWBzdHJpbmdgJiZjLnB1c2gobC5pZCl9ZWxzZSBsJiZ0eXBlb2Ygbz09YHN0cmluZ2AmJnR5cGVvZiBsPT1gb2JqZWN0YCYmKGw9bFtvXSx0eXBlb2YgbD09YHN0cmluZ2A/Yy5wdXNoKGwpOkFycmF5LmlzQXJyYXkobCkmJmwuZm9yRWFjaChmdW5jdGlvbihlKXt0eXBlb2YgZT09YHN0cmluZ2AmJmMucHVzaChlKX0pKTtkKG4saSxhLGUsYyl9fTpudWxsfWZ1bmN0aW9uIGQoZSx0LG4sYSxvKXt2YXIgcz1hLmdldChlKTtpZihzJiYhKG4ubGVuZ3RoPDIpKXtmb3IodmFyIGM9cyxsPTE7bDxuLmxlbmd0aC0xO2wrKyljJiYoYz1jLmdldExpbmtlZFJlY29yZChuW2xdKSk7aWYoISghdHx8IWMpKXt2YXIgdT0oMCxyLmRlZmF1bHQpKHQpLGQ7dHJ5e3ZhciBmPWZ1bmN0aW9uKCl7dmFyIGU9ZC52YWx1ZSx0PWkuZ2V0Q29ubmVjdGlvbihjLGUua2V5LGUuZmlsdGVycyk7dCYmby5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kuZGVsZXRlTm9kZSh0LGUpfSl9O2Zvcih1LnMoKTshKGQ9dS5uKCkpLmRvbmU7KWYoKX1jYXRjaChlKXt1LmUoZSl9ZmluYWxseXt1LmYoKX19fX1mdW5jdGlvbiBmKGUpe3JldHVybiBlLmZyYWdtZW50LnNlbGVjdGlvbnMmJmUuZnJhZ21lbnQuc2VsZWN0aW9ucy5sZW5ndGg+MCYmZS5mcmFnbWVudC5zZWxlY3Rpb25zWzBdLmtpbmQ9PT1gTGlua2VkRmllbGRgP2UuZnJhZ21lbnQuc2VsZWN0aW9uc1swXS5uYW1lOm51bGx9dC5leHBvcnRzPXtNdXRhdGlvblR5cGVzOmEsUmFuZ2VPcGVyYXRpb25zOm8sY29udmVydDpzfX0pKSxBZj1zKCgoZSx0KT0+e3ZhciBuPVJkKCkuZ2V0UmVxdWVzdCxyPVRmKCksaT1PZigpLmNyZWF0ZU9wZXJhdGlvbkRlc2NyaXB0b3IsYT1rZigpLG89RmQoKTtmdW5jdGlvbiBzKGUsdCl7IXIoZSkmJm8oITEpO3ZhciBzPW4odC5tdXRhdGlvbik7aWYocy5wYXJhbXMub3BlcmF0aW9uS2luZCE9PWBtdXRhdGlvbmApdGhyb3cgRXJyb3IoYGNvbW1pdE11dGF0aW9uOiBFeHBlY3RlZCBtdXRhdGlvbiBvcGVyYXRpb25gKTt2YXIgYz10Lm9wdGltaXN0aWNVcGRhdGVyLGw9dC5jb25maWdzLHU9dC5vcHRpbWlzdGljUmVzcG9uc2UsZD10LnZhcmlhYmxlcyxmPWkocyxkKTtyZXR1cm4gbCYmKGM9YS5jb252ZXJ0KGwscyxjKS5vcHRpbWlzdGljVXBkYXRlciksZS5hcHBseU11dGF0aW9uKHtvcGVyYXRpb246ZixyZXNwb25zZTp1LHVwZGF0ZXI6Y30pfXQuZXhwb3J0cz1zfSkpLGpmPXMoKChlLHQpPT57ZnVuY3Rpb24gbihlLHQpe2UuY29tbWl0VXBkYXRlKHQpfXQuZXhwb3J0cz1ufSkpLE1mPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0O24oSmQoKSksTGQoKSx0LmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSkpLE5mPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihRZCgpKSxpPVJkKCkuZ2V0UmVxdWVzdCxhPWJmKCkuZ2VuZXJhdGVVbmlxdWVDbGllbnRJRCxvPVRmKCkscz1PZigpLmNyZWF0ZU9wZXJhdGlvbkRlc2NyaXB0b3IsYz1rZigpO01mKCk7dmFyIGw9RmQoKTtMZCgpO2Z1bmN0aW9uIHUoZSx0KXshbyhlKSYmbCghMSk7dmFyIG49aSh0Lm11dGF0aW9uKTtpZihuLnBhcmFtcy5vcGVyYXRpb25LaW5kIT09YG11dGF0aW9uYCl0aHJvdyBFcnJvcihgY29tbWl0TXV0YXRpb246IEV4cGVjdGVkIG11dGF0aW9uIG9wZXJhdGlvbmApO2lmKG4ua2luZCE9PWBSZXF1ZXN0YCl0aHJvdyBFcnJvcihgY29tbWl0TXV0YXRpb246IEV4cGVjdGVkIG11dGF0aW9uIHRvIGJlIG9mIHR5cGUgcmVxdWVzdGApO3ZhciB1PXQub3B0aW1pc3RpY1Jlc3BvbnNlLGQ9dC5vcHRpbWlzdGljVXBkYXRlcixmPXQudXBkYXRlcixwPXQuY29uZmlncyxtPXQuY2FjaGVDb25maWcsaD10Lm9uRXJyb3IsZz10Lm9uVW5zdWJzY3JpYmUsXz10LnZhcmlhYmxlcyx2PXQudXBsb2FkYWJsZXMseT1zKG4sXyxtLGEoKSk7aWYodHlwZW9mIHU9PWBmdW5jdGlvbmAmJih1PXUoKSkscCl7dmFyIGI9Yy5jb252ZXJ0KHAsbixkLGYpO2Q9Yi5vcHRpbWlzdGljVXBkYXRlcixmPWIudXBkYXRlcn12YXIgeD1bXTtyZXR1cm57ZGlzcG9zZTplLmV4ZWN1dGVNdXRhdGlvbih7b3BlcmF0aW9uOnksb3B0aW1pc3RpY1Jlc3BvbnNlOnUsb3B0aW1pc3RpY1VwZGF0ZXI6ZCx1cGRhdGVyOmYsdXBsb2FkYWJsZXM6dn0pLnN1YnNjcmliZSh7bmV4dDpmdW5jdGlvbihlKXt2YXIgbjtBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaChmdW5jdGlvbihlKXtlLmVycm9ycyYmeC5wdXNoLmFwcGx5KHgsKDAsci5kZWZhdWx0KShlLmVycm9ycykpfSk6ZS5lcnJvcnMmJngucHVzaC5hcHBseSh4LCgwLHIuZGVmYXVsdCkoZS5lcnJvcnMpKSwobj10Lm9uTmV4dCk9PW51bGx8fG4uY2FsbCh0KX0sY29tcGxldGU6ZnVuY3Rpb24oKXt2YXIgbj10Lm9uQ29tcGxldGVkO24mJm4oZS5sb29rdXAoeS5mcmFnbWVudCkuZGF0YSx4Lmxlbmd0aD09PTA/bnVsbDp4KX0sZXJyb3I6aCx1bnN1YnNjcmliZTpnfSkudW5zdWJzY3JpYmV9fXQuZXhwb3J0cz11fSkpLFBmPXMoKChlLHQpPT57YWYoKSxMZCgpO3ZhciBuPXR5cGVvZiBXZWFrTWFwPT1gZnVuY3Rpb25gP25ldyBXZWFrTWFwOm5ldyBNYXA7ZnVuY3Rpb24gcihlLHQpe2lmKHQhPW51bGwpe3ZhciByPXt9O3JldHVybiBPYmplY3QuYXNzaWduKHIsZSksT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgaT10W2VdLmdldCxhPWkoKTtuLmhhcyhpKT9yW2VdPW4uZ2V0KGkpOihuLnNldChpLGEpLHJbZV09YSl9KSxyfWVsc2UgcmV0dXJuIGV9ci50ZXN0c19vbmx5X3Jlc2V0RGVidWdDYWNoZT12b2lkIDAsdC5leHBvcnRzPXJ9KSksRmY9cygoKGUsdCk9Pnt2YXIgbj1kZigpO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixpLGEsbyl7dmFyIHM9ZSh0LHIsaSxhLG8pO3JldHVybiBzIGluc3RhbmNlb2YgRXJyb3I/bi5jcmVhdGUoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXJyb3Iocyl9KTpuLmZyb20ocyl9fXQuZXhwb3J0cz17Y29udmVydEZldGNoOnJ9fSkpLElmPXMoKChlLHQpPT57dmFyIG49UGYoKSxyPUZmKCkuY29udmVydEZldGNoLGk9RmQoKTtmdW5jdGlvbiBhKGUsdCl7dmFyIGE9cihlKTtmdW5jdGlvbiBvKGUscixvLHMsYyl7dmFyIGw9bihyLGUucHJvdmlkZWRWYXJpYWJsZXMpO2lmKGUub3BlcmF0aW9uS2luZD09PWBzdWJzY3JpcHRpb25gKXJldHVybiF0JiZpKCExKSxzJiZpKCExKSx0KGUsbCxvKTt2YXIgdT1vLnBvbGw7cmV0dXJuIHU9PW51bGw/YShlLGwsbyxzLGMpOihzJiZpKCExKSxhKGUsbCx7Zm9yY2U6ITB9KS5wb2xsKHUpKX1yZXR1cm57ZXhlY3V0ZTpvfX10LmV4cG9ydHM9e2NyZWF0ZTphfX0pKSxMZj1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSmQoKSksaT10ZigpLnN0YWJsZUNvcHksYT1GZCgpLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZhciB0PWUuc2l6ZSxuPWUudHRsOyEodD4wKSYmYSghMSksIShuPjApJiZhKCExKSx0aGlzLl9yZXNwb25zZXM9bmV3IE1hcCx0aGlzLl9zaXplPXQsdGhpcy5fdHRsPW59dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9yZXNwb25zZXMuY2xlYXIoKX0sdC5nZXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9cyhlLHQpO3RoaXMuX3Jlc3BvbnNlcy5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7YyhlLmZldGNoVGltZSxuLl90dGwpfHxuLl9yZXNwb25zZXMuZGVsZXRlKHQpfSk7dmFyIGE9dGhpcy5fcmVzcG9uc2VzLmdldChpKTtyZXR1cm4gYT09bnVsbD9udWxsOkFycmF5LmlzQXJyYXkoYS5wYXlsb2FkKT9hLnBheWxvYWQubWFwKGZ1bmN0aW9uKGUpe3JldHVybigwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSxlKSx7fSx7ZXh0ZW5zaW9uczooMCxyLmRlZmF1bHQpKCgwLHIuZGVmYXVsdCkoe30sZS5leHRlbnNpb25zKSx7fSx7Y2FjaGVUaW1lc3RhbXA6YS5mZXRjaFRpbWV9KX0pfSk6KDAsci5kZWZhdWx0KSgoMCxyLmRlZmF1bHQpKHt9LGEucGF5bG9hZCkse30se2V4dGVuc2lvbnM6KDAsci5kZWZhdWx0KSgoMCxyLmRlZmF1bHQpKHt9LGEucGF5bG9hZC5leHRlbnNpb25zKSx7fSx7Y2FjaGVUaW1lc3RhbXA6YS5mZXRjaFRpbWV9KX0pfSx0LnNldD1mdW5jdGlvbihlLHQsbil7dmFyIHI9RGF0ZS5ub3coKSxpPXMoZSx0KTtpZih0aGlzLl9yZXNwb25zZXMuZGVsZXRlKGkpLHRoaXMuX3Jlc3BvbnNlcy5zZXQoaSx7ZmV0Y2hUaW1lOnIscGF5bG9hZDpufSksdGhpcy5fcmVzcG9uc2VzLnNpemU+dGhpcy5fc2l6ZSl7dmFyIGE9dGhpcy5fcmVzcG9uc2VzLmtleXMoKS5uZXh0KCk7YS5kb25lfHx0aGlzLl9yZXNwb25zZXMuZGVsZXRlKGEudmFsdWUpfX0sZX0oKTtmdW5jdGlvbiBzKGUsdCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGkoe3F1ZXJ5SUQ6ZSx2YXJpYWJsZXM6dH0pKX1mdW5jdGlvbiBjKGUsdCl7cmV0dXJuIGUrdD49RGF0ZS5ub3coKX10LmV4cG9ydHM9b30pKSxSZj1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSmQoKSksaT1kZigpLGE9T2YoKS5jcmVhdGVPcGVyYXRpb25EZXNjcmlwdG9yLG89VWQoKS5oYW5kbGVQb3RlbnRpYWxTbmFwc2hvdEVycm9ycyxzPXBmKCksYz1SZCgpLmdldFJlcXVlc3QsbD1GZCgpO2Z1bmN0aW9uIHUoZSx0LG4scyl7dmFyIHU9Yyh0KTt1LnBhcmFtcy5vcGVyYXRpb25LaW5kIT09YHF1ZXJ5YCYmbCghMSk7dmFyIGY9YSh1LG4sKDAsci5kZWZhdWx0KSh7Zm9yY2U6ITB9LHM9PW51bGw/dm9pZCAwOnMubmV0d29ya0NhY2hlQ29uZmlnKSkscD0ocz09bnVsbD92b2lkIDA6cy5mZXRjaFBvbGljeSk/P2BuZXR3b3JrLW9ubHlgO2Z1bmN0aW9uIG0odCl7cmV0dXJuIG8oZSx0LmVycm9yUmVzcG9uc2VGaWVsZHMpLHQuZGF0YX1zd2l0Y2gocCl7Y2FzZWBuZXR3b3JrLW9ubHlgOnJldHVybiBkKGUsZikubWFwKG0pO2Nhc2Vgc3RvcmUtb3ItbmV0d29ya2A6cmV0dXJuIGUuY2hlY2soZikuc3RhdHVzPT09YGF2YWlsYWJsZWA/aS5mcm9tKGUubG9va3VwKGYuZnJhZ21lbnQpKS5tYXAobSk6ZChlLGYpLm1hcChtKTtkZWZhdWx0OnRocm93IEVycm9yKGBmZXRjaFF1ZXJ5OiBJbnZhbGlkIGZldGNoUG9saWN5IGArcCl9fWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4gcy5mZXRjaFF1ZXJ5KGUsdCkubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGUubG9va3VwKHQuZnJhZ21lbnQpfSl9dC5leHBvcnRzPXV9KSksemY9cygoKGUsdCk9Pnt2YXIgbj1PZigpLmNyZWF0ZU9wZXJhdGlvbkRlc2NyaXB0b3Iscj1SZCgpLmdldFJlcXVlc3Q7ZnVuY3Rpb24gaShlLHQsaSxhKXt2YXIgbz1yKHQpO2lmKG8ucGFyYW1zLm9wZXJhdGlvbktpbmQhPT1gcXVlcnlgKXRocm93IEVycm9yKGBmZXRjaFF1ZXJ5OiBFeHBlY3RlZCBxdWVyeSBvcGVyYXRpb25gKTt2YXIgcz1uKG8saSxhKTtyZXR1cm4gZS5leGVjdXRlKHtvcGVyYXRpb246c30pLm1hcChmdW5jdGlvbigpe3JldHVybiBlLmxvb2t1cChzLmZyYWdtZW50KS5kYXRhfSkudG9Qcm9taXNlKCl9dC5leHBvcnRzPWl9KSksQmY9cygoKGUsdCk9Pnt0LmV4cG9ydHM9bmV3KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuX3ByZWxvYWRhYmxlUXVlcmllcz1uZXcgTWFwLHRoaXMuX2NhbGxiYWNrcz1uZXcgTWFwfXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LnNldD1mdW5jdGlvbihlLHQpe3RoaXMuX3ByZWxvYWRhYmxlUXVlcmllcy5zZXQoZSx0KTt2YXIgbj10aGlzLl9jYWxsYmFja3MuZ2V0KGUpO24hPW51bGwmJm4uZm9yRWFjaChmdW5jdGlvbihlKXt0cnl7ZSh0KX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0sMCl9fSl9LHQuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9wcmVsb2FkYWJsZVF1ZXJpZXMuZ2V0KGUpfSx0Lm9uTG9hZD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX2NhbGxiYWNrcy5nZXQoZSk/P25ldyBTZXQ7cmV0dXJuIG4uYWRkKHQpLHRoaXMuX2NhbGxiYWNrcy5zZXQoZSxuKSx7ZGlzcG9zZTpmdW5jdGlvbigpe24uZGVsZXRlKHQpfX19LHQuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9wcmVsb2FkYWJsZVF1ZXJpZXMuY2xlYXIoKX0sZX0oKSl9KSksVmY9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUsdCl7cmV0dXJuIGU9PT10JiYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSl9dC5leHBvcnRzPW59KSksSGY9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUsdCl7cmV0dXJuIHIoZSx0LCEwKX1mdW5jdGlvbiByKGUsdCxuKXtpZihlPT09dHx8dHlwZW9mIGUhPWBvYmplY3RgfHwhZXx8ZS5jb25zdHJ1Y3RvciE9PU9iamVjdCYmIUFycmF5LmlzQXJyYXkoZSl8fHR5cGVvZiB0IT1gb2JqZWN0YHx8IXR8fHQuY29uc3RydWN0b3IhPT1PYmplY3QmJiFBcnJheS5pc0FycmF5KHQpKXJldHVybiB0O3ZhciBpPSExLGE9QXJyYXkuaXNBcnJheShlKT9lOm51bGwsbz1BcnJheS5pc0FycmF5KHQpP3Q6bnVsbDtpZihhJiZvKXt2YXIgcz1uJiYhT2JqZWN0LmlzRnJvemVuKG8pO2k9by5yZWR1Y2UoZnVuY3Rpb24oZSx0LG4pe3ZhciBpPWFbbl0sYz1yKGksdCxzKTtyZXR1cm4gYyE9PW9bbl0mJnMmJihvW25dPWMpLGUmJmM9PT1hW25dfSwhMCkmJmEubGVuZ3RoPT09by5sZW5ndGh9ZWxzZSBpZighYSYmIW8pe3ZhciBjPWUsbD10LHU9T2JqZWN0LmtleXMoYyksZD1PYmplY3Qua2V5cyhsKSxmPW4mJiFPYmplY3QuaXNGcm96ZW4obCk7aT1kLnJlZHVjZShmdW5jdGlvbihlLHQpe3ZhciBuPWNbdF0saT1yKG4sbFt0XSxmKTtyZXR1cm4gaSE9PWxbdF0mJmYmJihsW3RdPWkpLGUmJmk9PT1jW3RdfSwhMCkmJnUubGVuZ3RoPT09ZC5sZW5ndGh9cmV0dXJuIGk/ZTp0fXQuZXhwb3J0cz1ufSkpLFVmPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihKZCgpKSxpPW4ocWQoKSksYT1tZigpLG89VWQoKS5oYW5kbGVQb3RlbnRpYWxTbmFwc2hvdEVycm9ycyxzPVZmKCksYz1IZigpLGw9dmYoKSx1PU9mKCkuY3JlYXRlUmVxdWVzdERlc2NyaXB0b3IsZD1vZigpLGY9ZC5hcmVFcXVhbFNlbGVjdG9ycyxwPWQuY3JlYXRlUmVhZGVyU2VsZWN0b3IsbT1kLmdldFNlbGVjdG9yc0Zyb21PYmplY3QsaD1hZigpLGc9RmQoKTtMZCgpO3ZhciBfPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbixyLGEpe3ZhciBvPXRoaXM7KDAsaS5kZWZhdWx0KSh0aGlzLGBfb25DaGFuZ2VgLGZ1bmN0aW9uKCl7by5fc3RhbGU9ITAsdHlwZW9mIG8uX2NhbGxiYWNrPT1gZnVuY3Rpb25gJiZvLl9jYWxsYmFjaygpfSksdGhpcy5fY2FsbGJhY2s9cix0aGlzLl9jb250ZXh0PWUsdGhpcy5fZGF0YT17fSx0aGlzLl9mcmFnbWVudHM9dCx0aGlzLl9wcm9wcz17fSx0aGlzLl9yZXNvbHZlcnM9e30sdGhpcy5fc3RhbGU9ITEsdGhpcy5fcm9vdElzUXVlcnlSZW5kZXJlcj1hLHRoaXMuc2V0UHJvcHMobil9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuZGlzcG9zZT1mdW5jdGlvbigpe2Zvcih2YXIgZSBpbiB0aGlzLl9yZXNvbHZlcnMpdGhpcy5fcmVzb2x2ZXJzLmhhc093blByb3BlcnR5KGUpJiZiKHRoaXMuX3Jlc29sdmVyc1tlXSl9LHQucmVzb2x2ZT1mdW5jdGlvbigpe2lmKHRoaXMuX3N0YWxlKXt2YXIgZT10aGlzLl9kYXRhLHQ7Zm9yKHZhciBuIGluIHRoaXMuX3Jlc29sdmVycylpZih0aGlzLl9yZXNvbHZlcnMuaGFzT3duUHJvcGVydHkobikpe3ZhciBpPXRoaXMuX3Jlc29sdmVyc1tuXSxhPWVbbl07aWYoaSl7dmFyIG89aS5yZXNvbHZlKCk7KHR8fG8hPT1hKSYmKHQ9dHx8KDAsci5kZWZhdWx0KSh7fSxlKSx0W25dPW8pfWVsc2V7dmFyIGM9dGhpcy5fcHJvcHNbbl0sbD1jPT09dm9pZCAwP251bGw6YzsodHx8IXMobCxhKSkmJih0PXR8fCgwLHIuZGVmYXVsdCkoe30sZSksdFtuXT1sKX19dGhpcy5fZGF0YT10fHxlLHRoaXMuX3N0YWxlPSExfXJldHVybiB0aGlzLl9kYXRhfSx0LnNldENhbGxiYWNrPWZ1bmN0aW9uKGUsdCl7dGhpcy5fY2FsbGJhY2s9dCxsLkVOQUJMRV9DT05UQUlORVJTX1NVQlNDUklCRV9PTl9DT01NSVQ9PT0hMCYmdGhpcy5zZXRQcm9wcyhlKX0sdC5zZXRQcm9wcz1mdW5jdGlvbihlKXt0aGlzLl9wcm9wcz17fTt2YXIgdD1tKHRoaXMuX2ZyYWdtZW50cyxlKTtmb3IodmFyIG4gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG4pKXt2YXIgcj10W25dLGk9dGhpcy5fcmVzb2x2ZXJzW25dO3I9PW51bGw/KGkhPW51bGwmJmkuZGlzcG9zZSgpLGk9bnVsbCk6ci5raW5kPT09YFBsdXJhbFJlYWRlclNlbGVjdG9yYD9pPT1udWxsP2k9bmV3IHkodGhpcy5fY29udGV4dC5lbnZpcm9ubWVudCx0aGlzLl9yb290SXNRdWVyeVJlbmRlcmVyLHIsdGhpcy5fY2FsbGJhY2shPW51bGwsdGhpcy5fb25DaGFuZ2UpOighKGkgaW5zdGFuY2VvZiB5KSYmZyghMSksaS5zZXRTZWxlY3RvcihyKSk6aT09bnVsbD9pPW5ldyB2KHRoaXMuX2NvbnRleHQuZW52aXJvbm1lbnQsdGhpcy5fcm9vdElzUXVlcnlSZW5kZXJlcixyLHRoaXMuX2NhbGxiYWNrIT1udWxsLHRoaXMuX29uQ2hhbmdlKTooIShpIGluc3RhbmNlb2YgdikmJmcoITEpLGkuc2V0U2VsZWN0b3IocikpLHRoaXMuX3Byb3BzW25dPWVbbl0sdGhpcy5fcmVzb2x2ZXJzW25dPWl9dGhpcy5fc3RhbGU9ITB9LHQuc2V0VmFyaWFibGVzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHRoaXMuX3Jlc29sdmVycylpZih0aGlzLl9yZXNvbHZlcnMuaGFzT3duUHJvcGVydHkobikpe3ZhciByPXRoaXMuX3Jlc29sdmVyc1tuXTtyJiZyLnNldFZhcmlhYmxlcyhlLHQpfXRoaXMuX3N0YWxlPSEwfSxlfSgpLHY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxuLHIsYSl7dmFyIG89dGhpczsoMCxpLmRlZmF1bHQpKHRoaXMsYF9vbkNoYW5nZWAsZnVuY3Rpb24oZSl7by5fZGF0YT1lLmRhdGEsby5faXNNaXNzaW5nRGF0YT1lLmlzTWlzc2luZ0RhdGEsby5fZXJyb3JSZXNwb25zZUZpZWxkcz1lLmVycm9yUmVzcG9uc2VGaWVsZHMsby5fY2FsbGJhY2soKX0pO3ZhciBzPWUubG9va3VwKG4pO3RoaXMuX2NhbGxiYWNrPWEsdGhpcy5fZGF0YT1zLmRhdGEsdGhpcy5faXNNaXNzaW5nRGF0YT1zLmlzTWlzc2luZ0RhdGEsdGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcz1zLmVycm9yUmVzcG9uc2VGaWVsZHMsdGhpcy5fZW52aXJvbm1lbnQ9ZSx0aGlzLl9yb290SXNRdWVyeVJlbmRlcmVyPXQsdGhpcy5fc2VsZWN0b3I9bixsLkVOQUJMRV9DT05UQUlORVJTX1NVQlNDUklCRV9PTl9DT01NSVQ9PT0hMD9yJiYodGhpcy5fc3Vic2NyaXB0aW9uPWUuc3Vic2NyaWJlKHMsdGhpcy5fb25DaGFuZ2UpKTp0aGlzLl9zdWJzY3JpcHRpb249ZS5zdWJzY3JpYmUocyx0aGlzLl9vbkNoYW5nZSl9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX3N1YnNjcmlwdGlvbiYmKHRoaXMuX3N1YnNjcmlwdGlvbi5kaXNwb3NlKCksdGhpcy5fc3Vic2NyaXB0aW9uPW51bGwpfSx0LnJlc29sdmU9ZnVuY3Rpb24oKXtpZih0aGlzLl9pc01pc3NpbmdEYXRhPT09ITApe3ZhciBlPWEodGhpcy5fZW52aXJvbm1lbnQsdGhpcy5fc2VsZWN0b3Iubm9kZSx0aGlzLl9zZWxlY3Rvci5vd25lciksdD1lPT1udWxsP3ZvaWQgMDplLnByb21pc2U7aWYodCE9bnVsbCYmIXRoaXMuX3Jvb3RJc1F1ZXJ5UmVuZGVyZXIpe3ZhciBuPShlPT1udWxsP3ZvaWQgMDplLnBlbmRpbmdPcGVyYXRpb25zKT8/W107dGhyb3cgdGhpcy5fZW52aXJvbm1lbnQuX19sb2coe25hbWU6YHN1c3BlbnNlLmZyYWdtZW50YCxkYXRhOnRoaXMuX2RhdGEsZnJhZ21lbnQ6dGhpcy5fc2VsZWN0b3Iubm9kZSxpc1JlbGF5SG9va3M6ITEsaXNNaXNzaW5nRGF0YTp0aGlzLl9pc01pc3NpbmdEYXRhLGlzUHJvbWlzZUNhY2hlZDohMSxwZW5kaW5nT3BlcmF0aW9uczpufSksdH19cmV0dXJuIG8odGhpcy5fZW52aXJvbm1lbnQsdGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcyksdGhpcy5fZGF0YX0sdC5zZXRTZWxlY3Rvcj1mdW5jdGlvbihlKXtpZighKHRoaXMuX3N1YnNjcmlwdGlvbiE9bnVsbCYmZihlLHRoaXMuX3NlbGVjdG9yKSkpe3RoaXMuZGlzcG9zZSgpO3ZhciB0PXRoaXMuX2Vudmlyb25tZW50Lmxvb2t1cChlKTt0aGlzLl9kYXRhPWModGhpcy5fZGF0YSx0LmRhdGEpLHRoaXMuX2lzTWlzc2luZ0RhdGE9dC5pc01pc3NpbmdEYXRhLHRoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHM9dC5lcnJvclJlc3BvbnNlRmllbGRzLHRoaXMuX3NlbGVjdG9yPWUsdGhpcy5fc3Vic2NyaXB0aW9uPXRoaXMuX2Vudmlyb25tZW50LnN1YnNjcmliZSh0LHRoaXMuX29uQ2hhbmdlKX19LHQuc2V0VmFyaWFibGVzPWZ1bmN0aW9uKGUsdCl7aWYoIWgoZSx0aGlzLl9zZWxlY3Rvci52YXJpYWJsZXMpKXt2YXIgbj11KHQsZSkscj1wKHRoaXMuX3NlbGVjdG9yLm5vZGUsdGhpcy5fc2VsZWN0b3IuZGF0YUlELGUsbik7dGhpcy5zZXRTZWxlY3RvcihyKX19LGV9KCkseT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4scixhKXt2YXIgbz10aGlzOygwLGkuZGVmYXVsdCkodGhpcyxgX29uQ2hhbmdlYCxmdW5jdGlvbihlKXtvLl9zdGFsZT0hMCxvLl9jYWxsYmFjaygpfSksdGhpcy5fY2FsbGJhY2s9YSx0aGlzLl9kYXRhPVtdLHRoaXMuX2Vudmlyb25tZW50PWUsdGhpcy5fcmVzb2x2ZXJzPVtdLHRoaXMuX3N0YWxlPSEwLHRoaXMuX3Jvb3RJc1F1ZXJ5UmVuZGVyZXI9dCx0aGlzLl9zdWJzY3JpYmVPbkNvbnN0cnVjdGlvbj1yLHRoaXMuc2V0U2VsZWN0b3Iobil9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX3Jlc29sdmVycy5mb3JFYWNoKGIpfSx0LnJlc29sdmU9ZnVuY3Rpb24oKXtpZih0aGlzLl9zdGFsZSl7Zm9yKHZhciBlPXRoaXMuX2RhdGEsdCxuPTA7bjx0aGlzLl9yZXNvbHZlcnMubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXSxpPXRoaXMuX3Jlc29sdmVyc1tuXS5yZXNvbHZlKCk7KHR8fGkhPT1yKSYmKHQ9dHx8ZS5zbGljZSgwLG4pLHQucHVzaChpKSl9IXQmJnRoaXMuX3Jlc29sdmVycy5sZW5ndGghPT1lLmxlbmd0aCYmKHQ9ZS5zbGljZSgwLHRoaXMuX3Jlc29sdmVycy5sZW5ndGgpKSx0aGlzLl9kYXRhPXR8fGUsdGhpcy5fc3RhbGU9ITF9cmV0dXJuIHRoaXMuX2RhdGF9LHQuc2V0U2VsZWN0b3I9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuc2VsZWN0b3JzO3RoaXMuX3Jlc29sdmVycy5sZW5ndGg+dC5sZW5ndGg7KXRoaXMuX3Jlc29sdmVycy5wb3AoKS5kaXNwb3NlKCk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspbjx0aGlzLl9yZXNvbHZlcnMubGVuZ3RoP3RoaXMuX3Jlc29sdmVyc1tuXS5zZXRTZWxlY3Rvcih0W25dKTp0aGlzLl9yZXNvbHZlcnNbbl09bmV3IHYodGhpcy5fZW52aXJvbm1lbnQsdGhpcy5fcm9vdElzUXVlcnlSZW5kZXJlcix0W25dLHRoaXMuX3N1YnNjcmliZU9uQ29uc3RydWN0aW9uLHRoaXMuX29uQ2hhbmdlKTt0aGlzLl9zdGFsZT0hMH0sdC5zZXRWYXJpYWJsZXM9ZnVuY3Rpb24oZSx0KXt0aGlzLl9yZXNvbHZlcnMuZm9yRWFjaChmdW5jdGlvbihuKXtyZXR1cm4gbi5zZXRWYXJpYWJsZXMoZSx0KX0pLHRoaXMuX3N0YWxlPSEwfSxlfSgpO2Z1bmN0aW9uIGIoZSl7ZSYmZS5kaXNwb3NlKCl9dC5leHBvcnRzPV99KSksV2Y9cygoKGUsdCk9Pnt2YXIgbj1VZigpO0xkKCk7ZnVuY3Rpb24gcihlLHQscixpLGEsbyl7cmV0dXJuIG5ldyBuKGUscixpLG8sYSl9dC5leHBvcnRzPXJ9KSksR2Y9cygoKGUsdCk9Pnt2YXIgbj1GZCgpLHIsaTtmdW5jdGlvbiBhKGUpe3JldHVybiByfHwocj1lLmNyZWF0ZUNvbnRleHQobnVsbCksaT1lKSxlIT09aSYmbighMSkscn10LmV4cG9ydHM9YX0pKSxLZj1zKCgoZSx0KT0+e3ZhciBuPU9iamVjdC5mcmVlemUoe19fTElWRV9SRVNPTFZFUl9TVVNQRU5TRV9TRU5USU5FTDohMH0pO2Z1bmN0aW9uIHIoKXtyZXR1cm4gbn1mdW5jdGlvbiBpKGUpe3JldHVybiBlPT09bn10LmV4cG9ydHM9e2lzU3VzcGVuc2VTZW50aW5lbDppLHN1c3BlbnNlU2VudGluZWw6cn19KSkscWY9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn10LmV4cG9ydHM9bix0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHN9KSksSmY9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKHFkKCkpLGk9bihxZigpKSxhPW4oS2QoKSksbz1uKEpkKCkpLHM9RWYoKSxjPWJmKCksbD1jLmdlbmVyYXRlQ2xpZW50T2JqZWN0Q2xpZW50SUQ7Yy5pc0NsaWVudElEO3ZhciB1PUtmKCkuaXNTdXNwZW5zZVNlbnRpbmVsLGQ9bmYoKSxmPWQuQUNUT1JfSURFTlRJRklFUl9LRVkscD1kLkVSUk9SU19LRVksbT1kLklEX0tFWSxoPWQuSU5WQUxJREFURURfQVRfS0VZLGc9ZC5SRUZfS0VZLF89ZC5SRUZTX0tFWSx2PWQuUkVMQVlfUkVTT0xWRVJfVkFMVUVfS0VZO2QuUk9PVF9JRDt2YXIgeT1kLlRZUEVOQU1FX0tFWSxiPWFmKCkseD1GZCgpO0xkKCk7ZnVuY3Rpb24gUyhlKXtyZXR1cm4oMCxvLmRlZmF1bHQpKHt9LGUpfWZ1bmN0aW9uIEMoZSx0KXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiZuIT09bSYmbiE9PXkmJih0W25dPWVbbl0pfWZ1bmN0aW9uIHcoZSx0KXt2YXIgbj17fTtyZXR1cm4gblttXT1lLG5beV09dCxufWZ1bmN0aW9uIFQoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gRShlKXtyZXR1cm4gZVttXX1mdW5jdGlvbiBEKGUpe3JldHVybiBwIGluIGU/T2JqZWN0LmtleXMoZSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlIT09cH0pOk9iamVjdC5rZXlzKGUpfWZ1bmN0aW9uIE8oZSl7cmV0dXJuIGVbeV19ZnVuY3Rpb24gayhlLHQpe3ZhciBuO3JldHVybihuPWVbcF0pPT1udWxsP3ZvaWQgMDpuW3RdfWZ1bmN0aW9uIEEoZSx0KXt2YXIgbj1lW3RdO3JldHVybiBuJiZ0eXBlb2Ygbj09YG9iamVjdGAmJiEoIW4uaGFzT3duUHJvcGVydHkoZykmJiFuLmhhc093blByb3BlcnR5KF8pKSYmeCghMSksbn1mdW5jdGlvbiBqKGUsdCl7cmV0dXJuIHQgaW4gZX1mdW5jdGlvbiBNKGUsdCl7dmFyIG49ZVt0XTtpZihuPT1udWxsKXJldHVybiBuO3ZhciByPW47cmV0dXJuISh0eXBlb2Ygcj09YG9iamVjdGAmJnImJnR5cGVvZiByW2ddPT1gc3RyaW5nYCkmJngoITEpLHJbZ119ZnVuY3Rpb24gTihlLHQpe3ZhciBuPWVbdF07aWYobj09bnVsbClyZXR1cm4hMTt2YXIgcj1uO3JldHVybiB0eXBlb2Ygcj09YG9iamVjdGAmJnImJnR5cGVvZiByW2ddPT1gc3RyaW5nYH1mdW5jdGlvbiBQKGUsdCl7dmFyIG49ZVt0XTtyZXR1cm4gbj09bnVsbD9uOighKHR5cGVvZiBuPT1gb2JqZWN0YCYmQXJyYXkuaXNBcnJheShuW19dKSkmJngoITEpLG5bX10pfWZ1bmN0aW9uIEYoZSx0KXt2YXIgbj1lW3RdO3JldHVybiBuPT1udWxsPyExOnR5cGVvZiBuPT1gb2JqZWN0YCYmQXJyYXkuaXNBcnJheShuW19dKSYmbltfXS5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgfSl9ZnVuY3Rpb24gZWUoZSl7aWYoZT09bnVsbClyZXR1cm4gbnVsbDt2YXIgdD1lW2hdO3JldHVybiB0eXBlb2YgdD09YG51bWJlcmA/dDpudWxsfWZ1bmN0aW9uIEkoZSx0KXt2YXIgbj1lW3BdLHI9dFtwXSxpPW51bGw7aWYobj09bnVsbCYmcj09bnVsbCl7Zm9yKHZhciBhIGluIHQpKGl8fCFiKGVbYV0sdFthXSkpJiYoaT1pPT09bnVsbD8oMCxvLmRlZmF1bHQpKHt9LGUpOmksaVthXT10W2FdKTtyZXR1cm4gaT8/ZX1mb3IodmFyIHMgaW4gdClpZihzIT09cCl7dmFyIGM9dFtzXSxsPXI9PW51bGw/dm9pZCAwOnJbc107aWYoaT09bnVsbCl7dmFyIHU9ZVtzXSxkPW49PW51bGw/dm9pZCAwOm5bc107aWYoYih1LGMpJiZiKGQsbCkpY29udGludWU7aT0oMCxvLmRlZmF1bHQpKHt9LGUpLG4hPW51bGwmJihpW3BdPSgwLG8uZGVmYXVsdCkoe30sbikpfXRlKGkscyxjKSx6KGkscyxsKX1yZXR1cm4gaT8/ZX1mdW5jdGlvbiBMKGUsdCl7aWYocCBpbiBlfHxwIGluIHQpe3ZhciBuPWVbcF0scj0oMCxpLmRlZmF1bHQpKGUsW3BdLm1hcChhLmRlZmF1bHQpKSxzPXRbcF0sYz0oMCxpLmRlZmF1bHQpKHQsW3BdLm1hcChhLmRlZmF1bHQpKSxsPSgwLG8uZGVmYXVsdCkoKDAsby5kZWZhdWx0KSh7fSxyKSxjKTtpZihuPT1udWxsJiZzPT1udWxsKXJldHVybiBsO3ZhciB1PXt9O2Zvcih2YXIgZCBpbiBuKWMuaGFzT3duUHJvcGVydHkoZCl8fCh1W2RdPW5bZF0pO2Zvcih2YXIgZiBpbiBzKXVbZl09c1tmXTtmb3IodmFyIG0gaW4gdSl7bFtwXT11O2JyZWFrfXJldHVybiBsfWVsc2UgcmV0dXJuKDAsby5kZWZhdWx0KSgoMCxvLmRlZmF1bHQpKHt9LGUpLHQpfWZ1bmN0aW9uIFIoZSl7cyhlKX1mdW5jdGlvbiB6KGUsdCxuKXt2YXIgaT1lW3BdO2lmKG4hPW51bGwmJm4ubGVuZ3RoPjApaT09bnVsbD9lW3BdPSgwLHIuZGVmYXVsdCkoe30sdCxuKTppW3RdPW47ZWxzZSBpZihpIT1udWxsJiZkZWxldGUgaVt0XSl7Zm9yKHZhciBhIGluIGkpaWYoaS5oYXNPd25Qcm9wZXJ0eShhKSlyZXR1cm47ZGVsZXRlIGVbcF19fWZ1bmN0aW9uIHRlKGUsdCxuKXtlW3RdPW59ZnVuY3Rpb24gbmUoZSx0LG4pe3ZhciByPXt9O3JbZ109bixlW3RdPXJ9ZnVuY3Rpb24gcmUoZSx0LG4pe3ZhciByPXt9O3JbX109bixlW3RdPXJ9ZnVuY3Rpb24gaWUoZSx0LG4scil7dmFyIGk9e307aVtnXT1yLGlbZl09bixlW3RdPWl9ZnVuY3Rpb24gYWUoZSx0KXt2YXIgbj1lW3RdO3JldHVybiBuPT1udWxsP246KCEodHlwZW9mIG49PWBvYmplY3RgJiZ0eXBlb2YgbltnXT09YHN0cmluZ2AmJm5bZl0hPW51bGwpJiZ4KCExKSxbbltmXSxuW2ddXSl9ZnVuY3Rpb24gb2UoZSx0KXt2YXIgbj1BKGUsdik7cmV0dXJuIG49PW51bGx8fHUobik/bnVsbDoodHlwZW9mIG49PWBvYmplY3RgJiYobj1uLmlkKSx0eXBlb2YgbiE9YHN0cmluZ2AmJngoITEpLGwodCxuKSl9ZnVuY3Rpb24gc2UoZSx0KXt2YXIgbj1BKGUsdik7cmV0dXJuIG49PW51bGx8fHUobik/bnVsbDooIUFycmF5LmlzQXJyYXkobikmJngoITEpLG4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlPT1udWxsP251bGw6KHR5cGVvZiBlPT1gb2JqZWN0YCYmKGU9ZS5pZCksdHlwZW9mIGUhPWBzdHJpbmdgJiZ4KCExKSxsKHQsZSkpfSkpfWZ1bmN0aW9uIGNlKGUpe3JldHVybiBlfXQuZXhwb3J0cz17Y2xvbmU6Uyxjb3B5RmllbGRzOkMsY3JlYXRlOncsZnJlZXplOlIsZnJvbU9iamVjdDpULGdldERhdGFJRDpFLGdldEVycm9yczprLGdldEZpZWxkczpELGdldEludmFsaWRhdGlvbkVwb2NoOmVlLGdldExpbmtlZFJlY29yZElEOk0sZ2V0TGlua2VkUmVjb3JkSURzOlAsZ2V0VHlwZTpPLGdldFZhbHVlOkEsaGFzVmFsdWU6aixoYXNMaW5rZWRSZWNvcmRJRDpOLGhhc0xpbmtlZFJlY29yZElEczpGLG1lcmdlOkwsc2V0RXJyb3JzOnosc2V0VmFsdWU6dGUsc2V0TGlua2VkUmVjb3JkSUQ6bmUsc2V0TGlua2VkUmVjb3JkSURzOnJlLHVwZGF0ZTpJLGdldEFjdG9yTGlua2VkUmVjb3JkSUQ6YWUsc2V0QWN0b3JMaW5rZWRSZWNvcmRJRDppZSxnZXRSZXNvbHZlckxpbmtlZFJlY29yZElEOm9lLGdldFJlc29sdmVyTGlua2VkUmVjb3JkSURzOnNlLHRvSlNPTjpjZX19KSksWWY9cygoKGUsdCk9Pnt0LmV4cG9ydHM9e0VYSVNURU5UOmBFWElTVEVOVGAsTk9ORVhJU1RFTlQ6YE5PTkVYSVNURU5UYCxVTktOT1dOOmBVTktOT1dOYH19KSksWGY9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEhkKCkpLGk9SmYoKSxhPVlmKCksbz1hLkVYSVNURU5ULHM9YS5OT05FWElTVEVOVCxjPWEuVU5LTk9XTjt0LmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZhciB0PXRoaXM7dGhpcy5fcmVjb3Jkcz1uZXcgTWFwLGUhPW51bGwmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHI9ZVtuXSxhPWkuZnJvbU9iamVjdChyKTt0Ll9yZWNvcmRzLnNldChuLGEpfSl9ZS5jcmVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfTt2YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX3JlY29yZHM9bmV3IE1hcH0sdC5kZWxldGU9ZnVuY3Rpb24oZSl7dGhpcy5fcmVjb3Jkcy5zZXQoZSxudWxsKX0sdC5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3JlY29yZHMuZ2V0KGUpfSx0LmdldFJlY29yZElEcz1mdW5jdGlvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX3JlY29yZHMua2V5cygpKX0sdC5nZXRTdGF0dXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3JlY29yZHMuaGFzKGUpP3RoaXMuX3JlY29yZHMuZ2V0KGUpPT1udWxsP3M6bzpjfSx0Lmhhcz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcmVjb3Jkcy5oYXMoZSl9LHQucmVtb3ZlPWZ1bmN0aW9uKGUpe3RoaXMuX3JlY29yZHMuZGVsZXRlKGUpfSx0LnNldD1mdW5jdGlvbihlLHQpe3RoaXMuX3JlY29yZHMuc2V0KGUsdCl9LHQuc2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWNvcmRzLnNpemV9LHQudG9KU09OPWZ1bmN0aW9uKCl7dmFyIGU9e30sdD0oMCxyLmRlZmF1bHQpKHRoaXMuX3JlY29yZHMpLG47dHJ5e2Zvcih0LnMoKTshKG49dC5uKCkpLmRvbmU7KXt2YXIgYT1uLnZhbHVlLG89YVswXSxzPWFbMV07ZVtvXT1pLnRvSlNPTihzKX19Y2F0Y2goZSl7dC5lKGUpfWZpbmFsbHl7dC5mKCl9cmV0dXJuIGV9LGV9KCl9KSksWmY9cygoKGUsdCk9Pnt2YXIgbj1GZCgpLHI9YElOVEVSTkFMX0FDVE9SX0lERU5USUZJRVJfRE9fTk9UX1VTRWA7ZnVuY3Rpb24gaShlKXtlIT09ciYmbighMSl9dC5leHBvcnRzPXthc3NlcnRJbnRlcm5hbEFjdG9ySWRlbnRpZmllcjppLGdldEFjdG9ySWRlbnRpZmllcjpmdW5jdGlvbihlKXtyZXR1cm4gZX0sZ2V0RGVmYXVsdEFjdG9ySWRlbnRpZmllcjpmdW5jdGlvbigpe3Rocm93IEVycm9yKGBOb3QgSW1wbGVtZW50ZWRgKX0sSU5URVJOQUxfQUNUT1JfSURFTlRJRklFUl9ET19OT1RfVVNFOnJ9fSkpLFFmPXMoKChlLHQpPT57dmFyIG49YGFjdG9yX2tleWAscj1aZigpLmdldEFjdG9ySWRlbnRpZmllcjtmdW5jdGlvbiBpKGUpe2lmKHR5cGVvZiBlPT1gb2JqZWN0YCYmZSYmdHlwZW9mIGVbbl09PWBzdHJpbmdgKXJldHVybiByKGVbbl0pfXQuZXhwb3J0cz17QUNUT1JfSURFTlRJRklFUl9GSUVMRF9OQU1FOm4sZ2V0QWN0b3JJZGVudGlmaWVyRnJvbVBheWxvYWQ6aX19KSksJGY9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEpkKCkpLGk9bihxZigpKSxhPW4oSGQoKSksbz1uKFFkKCkpLHM9W2BwYXRoYCxgbG9jYXRpb25zYF0sYz1TeW1ib2woYCRTRUxGYCk7ZnVuY3Rpb24gbChlKXtpZihlPT1udWxsKXJldHVybiBudWxsO3ZhciB0PW5ldyBNYXAsbj0oMCxhLmRlZmF1bHQpKGUpLHI7dHJ5e0VSUk9SUzpmb3Iobi5zKCk7IShyPW4ubigpKS5kb25lOyl7dmFyIG89ci52YWx1ZSxsPW8ucGF0aDtvLmxvY2F0aW9uczt2YXIgdT0oMCxpLmRlZmF1bHQpKG8scyk7aWYobCE9bnVsbCl7dmFyIGQ9bC5sZW5ndGg7aWYoZCE9PTApe2Zvcih2YXIgZj1kLTEscD10LG09MDttPGY7bSsrKXt2YXIgaD1sW21dLGc9cC5nZXQoaCk7aWYoZyBpbnN0YW5jZW9mIE1hcCl7cD1nO2NvbnRpbnVlfXZhciBfPW5ldyBNYXA7QXJyYXkuaXNBcnJheShnKSYmXy5zZXQoYyxnKSxwLnNldChoLF8pLHA9X312YXIgdj1sW2ZdLHk9cC5nZXQodik7eSBpbnN0YW5jZW9mIE1hcCYmKHA9eSx5PXAuZ2V0KHYpLHY9YyksQXJyYXkuaXNBcnJheSh5KT95LnB1c2godSk6cC5zZXQodixbdV0pfX19fWNhdGNoKGUpe24uZShlKX1maW5hbGx5e24uZigpfXJldHVybiB0fWZ1bmN0aW9uIHUoZSx0KXt2YXIgbj1lLmdldCh0KTtpZihuPT1udWxsKXJldHVybiBudWxsO2lmKEFycmF5LmlzQXJyYXkobikpcmV0dXJuIG47dmFyIHI9W107cmV0dXJuIGQobixyKSxyfWZ1bmN0aW9uIGQoZSx0KXt2YXIgbj0oMCxhLmRlZmF1bHQpKGUpLGk7dHJ5e2ZvcihuLnMoKTshKGk9bi5uKCkpLmRvbmU7KXt2YXIgcz1pLnZhbHVlLGw9c1swXSx1PXNbMV0sZj10Lmxlbmd0aDtpZihBcnJheS5pc0FycmF5KHUpP3QucHVzaC5hcHBseSh0LCgwLG8uZGVmYXVsdCkodSkpOmQodSx0KSxsIT09Yylmb3IodmFyIHA9dC5sZW5ndGgsbT1mO208cDttKyspe3ZhciBoPXRbbV07aC5wYXRoPT1udWxsP3RbbV09KDAsci5kZWZhdWx0KSgoMCxyLmRlZmF1bHQpKHt9LGgpLHt9LHtwYXRoOltsXX0pOmgucGF0aC51bnNoaWZ0KGwpfX19Y2F0Y2goZSl7bi5lKGUpfWZpbmFsbHl7bi5mKCl9fWZ1bmN0aW9uIGYoZSx0KXt2YXIgbj1lLmdldCh0KTtyZXR1cm4gbiBpbnN0YW5jZW9mIE1hcD9uOm51bGx9dC5leHBvcnRzPXtTRUxGOmMsYnVpbGRFcnJvclRyaWU6bCxnZXROZXN0ZWRFcnJvclRyaWVCeUtleTpmLGdldEVycm9yc0J5S2V5OnV9fSkpLGVwPXMoKChlLHQpPT57dmFyIG49YGNsaWVudDpfX3R5cGU6YCxyPWBfX1R5cGVTY2hlbWFgO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIG4rZX1mdW5jdGlvbiBhKGUpe3JldHVybiBlLmluZGV4T2Yobik9PT0wfXQuZXhwb3J0cz17Z2VuZXJhdGVUeXBlSUQ6aSxpc1R5cGVJRDphLFRZUEVfU0NIRU1BX1RZUEU6cn19KSksdHA9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEhkKCkpLGk9bihRZCgpKSxhPVFmKCk7YS5BQ1RPUl9JREVOVElGSUVSX0ZJRUxEX05BTUU7dmFyIG89YS5nZXRBY3RvcklkZW50aWZpZXJGcm9tUGF5bG9hZCxzPXZmKCksYz1iZigpLGw9Yy5nZW5lcmF0ZUNsaWVudElEO2MuaXNDbGllbnRJRDt2YXIgdT1yZigpLmdldExvY2FsVmFyaWFibGVzLGQ9JGYoKSxmPWQuYnVpbGRFcnJvclRyaWUscD1kLmdldEVycm9yc0J5S2V5LG09ZC5nZXROZXN0ZWRFcnJvclRyaWVCeUtleSxoPUpmKCksZz1vZigpLmNyZWF0ZU5vcm1hbGl6YXRpb25TZWxlY3RvcixfPW5mKCk7Xy5ST09UX0lEO3ZhciB2PV8uVFlQRU5BTUVfS0VZLHk9Xy5nZXRBcmd1bWVudFZhbHVlcyxiPV8uZ2V0SGFuZGxlU3RvcmFnZUtleSx4PV8uZ2V0TW9kdWxlQ29tcG9uZW50S2V5LFM9Xy5nZXRNb2R1bGVPcGVyYXRpb25LZXksQz1fLmdldFN0b3JhZ2VLZXksdz1lcCgpLFQ9dy5UWVBFX1NDSEVNQV9UWVBFLEU9dy5nZW5lcmF0ZVR5cGVJRDthZigpO3ZhciBEPUZkKCk7TGQoKTtmdW5jdGlvbiBPKGUsdCxuLHIsaSl7dmFyIGE9dC5kYXRhSUQsbz10Lm5vZGUscz10LnZhcmlhYmxlcztyZXR1cm4gbmV3IGsoZSxzLHIpLm5vcm1hbGl6ZVJlc3BvbnNlKG8sYSxuLGkpfXZhciBrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbil7dGhpcy5fYWN0b3JJZGVudGlmaWVyPW4uYWN0b3JJZGVudGlmaWVyLHRoaXMuX2dldERhdGFJZD1uLmdldERhdGFJRCx0aGlzLl9oYW5kbGVGaWVsZFBheWxvYWRzPVtdLHRoaXMuX3RyZWF0TWlzc2luZ0ZpZWxkc0FzTnVsbD1uLnRyZWF0TWlzc2luZ0ZpZWxkc0FzTnVsbCx0aGlzLl9pbmNyZW1lbnRhbFBsYWNlaG9sZGVycz1bXSx0aGlzLl9pc0NsaWVudEV4dGVuc2lvbj0hMSx0aGlzLl9pc1VubWF0Y2hlZEFic3RyYWN0VHlwZT0hMSx0aGlzLl9mb2xsb3d1cFBheWxvYWRzPVtdLHRoaXMuX3BhdGg9bi5wYXRoPygwLGkuZGVmYXVsdCkobi5wYXRoKTpbXSx0aGlzLl9yZWNvcmRTb3VyY2U9ZSx0aGlzLl92YXJpYWJsZXM9dCx0aGlzLl9zaG91bGRQcm9jZXNzQ2xpZW50Q29tcG9uZW50cz1uLnNob3VsZFByb2Nlc3NDbGllbnRDb21wb25lbnRzfXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0Lm5vcm1hbGl6ZVJlc3BvbnNlPWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPXRoaXMuX3JlY29yZFNvdXJjZS5nZXQodCk7cmV0dXJuIWkmJkQoITEpLHRoaXMuX2Fzc2lnbkNsaWVudEFic3RyYWN0VHlwZXMoZSksdGhpcy5fZXJyb3JUcmllPWYociksdGhpcy5fdHJhdmVyc2VTZWxlY3Rpb25zKGUsaSxuKSx7ZXJyb3JzOnIsZmllbGRQYXlsb2Fkczp0aGlzLl9oYW5kbGVGaWVsZFBheWxvYWRzLGluY3JlbWVudGFsUGxhY2Vob2xkZXJzOnRoaXMuX2luY3JlbWVudGFsUGxhY2Vob2xkZXJzLGZvbGxvd3VwUGF5bG9hZHM6dGhpcy5fZm9sbG93dXBQYXlsb2Fkcyxzb3VyY2U6dGhpcy5fcmVjb3JkU291cmNlLGlzRmluYWw6ITF9fSx0Ll9hc3NpZ25DbGllbnRBYnN0cmFjdFR5cGVzPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xpZW50QWJzdHJhY3RUeXBlcztpZih0IT1udWxsKWZvcih2YXIgbj0wLGk9T2JqZWN0LmtleXModCk7bjxpLmxlbmd0aDtuKyspe3ZhciBhPWlbbl0sbz0oMCxyLmRlZmF1bHQpKHRbYV0pLHM7dHJ5e2ZvcihvLnMoKTshKHM9by5uKCkpLmRvbmU7KXt2YXIgYz1zLnZhbHVlLGw9RShjKSx1PXRoaXMuX3JlY29yZFNvdXJjZS5nZXQobCk7dT8/KHU9aC5jcmVhdGUobCxUKSx0aGlzLl9yZWNvcmRTb3VyY2Uuc2V0KGwsdSkpLGguc2V0VmFsdWUodSxhLCEwKX19Y2F0Y2goZSl7by5lKGUpfWZpbmFsbHl7by5mKCl9fX0sdC5fZ2V0VmFyaWFibGVWYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4hdGhpcy5fdmFyaWFibGVzLmhhc093blByb3BlcnR5KGUpJiZEKCExKSx0aGlzLl92YXJpYWJsZXNbZV19LHQuX2dldFJlY29yZFR5cGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZVt2XTtyZXR1cm4gdD8/RCghMSksdH0sdC5fdHJhdmVyc2VTZWxlY3Rpb25zPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9MDtyPGUuc2VsZWN0aW9ucy5sZW5ndGg7cisrKXt2YXIgaT1lLnNlbGVjdGlvbnNbcl07c3dpdGNoKGkua2luZCl7Y2FzZWBTY2FsYXJGaWVsZGA6Y2FzZWBMaW5rZWRGaWVsZGA6dGhpcy5fbm9ybWFsaXplRmllbGQoaSx0LG4pO2JyZWFrO2Nhc2VgQ29uZGl0aW9uYDohIXRoaXMuX2dldFZhcmlhYmxlVmFsdWUoaS5jb25kaXRpb24pPT09aS5wYXNzaW5nVmFsdWUmJnRoaXMuX3RyYXZlcnNlU2VsZWN0aW9ucyhpLHQsbik7YnJlYWs7Y2FzZWBGcmFnbWVudFNwcmVhZGA6dmFyIGE9dGhpcy5fdmFyaWFibGVzO3RoaXMuX3ZhcmlhYmxlcz11KHRoaXMuX3ZhcmlhYmxlcyxpLmZyYWdtZW50LmFyZ3VtZW50RGVmaW5pdGlvbnMsaS5hcmdzKSx0aGlzLl90cmF2ZXJzZVNlbGVjdGlvbnMoaS5mcmFnbWVudCx0LG4pLHRoaXMuX3ZhcmlhYmxlcz1hO2JyZWFrO2Nhc2VgSW5saW5lRnJhZ21lbnRgOnZhciBvPWkuYWJzdHJhY3RLZXk7aWYobz09bnVsbCloLmdldFR5cGUodCk9PT1pLnR5cGUmJnRoaXMuX3RyYXZlcnNlU2VsZWN0aW9ucyhpLHQsbik7ZWxzZXt2YXIgcz1uLmhhc093blByb3BlcnR5KG8pLGM9RShoLmdldFR5cGUodCkpLGw9dGhpcy5fcmVjb3JkU291cmNlLmdldChjKTtsPz8obD1oLmNyZWF0ZShjLFQpLHRoaXMuX3JlY29yZFNvdXJjZS5zZXQoYyxsKSksaC5zZXRWYWx1ZShsLG8scykscyYmdGhpcy5fdHJhdmVyc2VTZWxlY3Rpb25zKGksdCxuKX1icmVhaztjYXNlYFR5cGVEaXNjcmltaW5hdG9yYDp2YXIgZD1pLmFic3RyYWN0S2V5LGY9bi5oYXNPd25Qcm9wZXJ0eShkKSxwPUUoaC5nZXRUeXBlKHQpKSxtPXRoaXMuX3JlY29yZFNvdXJjZS5nZXQocCk7bT8/KG09aC5jcmVhdGUocCxUKSx0aGlzLl9yZWNvcmRTb3VyY2Uuc2V0KHAsbSkpLGguc2V0VmFsdWUobSxkLGYpO2JyZWFrO2Nhc2VgTGlua2VkSGFuZGxlYDpjYXNlYFNjYWxhckhhbmRsZWA6dmFyIGc9aS5hcmdzP3koaS5hcmdzLHRoaXMuX3ZhcmlhYmxlcyk6e30sXz1DKGksdGhpcy5fdmFyaWFibGVzKSx2PWIoaSx0aGlzLl92YXJpYWJsZXMpO3RoaXMuX2hhbmRsZUZpZWxkUGF5bG9hZHMucHVzaCh7YXJnczpnLGRhdGFJRDpoLmdldERhdGFJRCh0KSxmaWVsZEtleTpfLGhhbmRsZTppLmhhbmRsZSxoYW5kbGVLZXk6dixoYW5kbGVBcmdzOmkuaGFuZGxlQXJncz95KGkuaGFuZGxlQXJncyx0aGlzLl92YXJpYWJsZXMpOnt9fSk7YnJlYWs7Y2FzZWBNb2R1bGVJbXBvcnRgOnRoaXMuX25vcm1hbGl6ZU1vZHVsZUltcG9ydChpLHQsbik7YnJlYWs7Y2FzZWBEZWZlcmA6dGhpcy5fbm9ybWFsaXplRGVmZXIoaSx0LG4pO2JyZWFrO2Nhc2VgU3RyZWFtYDp0aGlzLl9ub3JtYWxpemVTdHJlYW0oaSx0LG4pO2JyZWFrO2Nhc2VgQ2xpZW50RXh0ZW5zaW9uYDp2YXIgeD10aGlzLl9pc0NsaWVudEV4dGVuc2lvbjt0aGlzLl9pc0NsaWVudEV4dGVuc2lvbj0hMCx0aGlzLl90cmF2ZXJzZVNlbGVjdGlvbnMoaSx0LG4pLHRoaXMuX2lzQ2xpZW50RXh0ZW5zaW9uPXg7YnJlYWs7Y2FzZWBDbGllbnRDb21wb25lbnRgOmlmKHRoaXMuX3Nob3VsZFByb2Nlc3NDbGllbnRDb21wb25lbnRzPT09ITEpYnJlYWs7dGhpcy5fdHJhdmVyc2VTZWxlY3Rpb25zKGkuZnJhZ21lbnQsdCxuKTticmVhaztjYXNlYEFjdG9yQ2hhbmdlYDp0aGlzLl9ub3JtYWxpemVBY3RvckNoYW5nZShpLHQsbik7YnJlYWs7Y2FzZWBSZWxheVJlc29sdmVyYDp0aGlzLl9ub3JtYWxpemVSZXNvbHZlcihpLHQsbik7YnJlYWs7Y2FzZWBSZWxheUxpdmVSZXNvbHZlcmA6dGhpcy5fbm9ybWFsaXplUmVzb2x2ZXIoaSx0LG4pO2JyZWFrO2Nhc2VgQ2xpZW50RWRnZVRvQ2xpZW50T2JqZWN0YDp0aGlzLl9ub3JtYWxpemVSZXNvbHZlcihpLmJhY2tpbmdGaWVsZCx0LG4pO2JyZWFrO2RlZmF1bHQ6RCghMSl9fX0sdC5fbm9ybWFsaXplUmVzb2x2ZXI9ZnVuY3Rpb24oZSx0LG4pe2UuZnJhZ21lbnQhPW51bGwmJnRoaXMuX3RyYXZlcnNlU2VsZWN0aW9ucyhlLmZyYWdtZW50LHQsbil9LHQuX25vcm1hbGl6ZURlZmVyPWZ1bmN0aW9uKGUsdCxuKXsoZS5pZj09PW51bGx8fHRoaXMuX2dldFZhcmlhYmxlVmFsdWUoZS5pZikpPT09ITE/dGhpcy5fdHJhdmVyc2VTZWxlY3Rpb25zKGUsdCxuKTp0aGlzLl9pbmNyZW1lbnRhbFBsYWNlaG9sZGVycy5wdXNoKHtraW5kOmBkZWZlcmAsZGF0YTpuLGxhYmVsOmUubGFiZWwscGF0aDooMCxpLmRlZmF1bHQpKHRoaXMuX3BhdGgpLHNlbGVjdG9yOmcoZSxoLmdldERhdGFJRCh0KSx0aGlzLl92YXJpYWJsZXMpLHR5cGVOYW1lOmguZ2V0VHlwZSh0KSxhY3RvcklkZW50aWZpZXI6dGhpcy5fYWN0b3JJZGVudGlmaWVyfSl9LHQuX25vcm1hbGl6ZVN0cmVhbT1mdW5jdGlvbihlLHQsbil7dGhpcy5fdHJhdmVyc2VTZWxlY3Rpb25zKGUsdCxuKSwoZS5pZj09PW51bGx8fHRoaXMuX2dldFZhcmlhYmxlVmFsdWUoZS5pZikpPT09ITAmJnRoaXMuX2luY3JlbWVudGFsUGxhY2Vob2xkZXJzLnB1c2goe2tpbmQ6YHN0cmVhbWAsbGFiZWw6ZS5sYWJlbCxwYXRoOigwLGkuZGVmYXVsdCkodGhpcy5fcGF0aCkscGFyZW50SUQ6aC5nZXREYXRhSUQodCksbm9kZTplLHZhcmlhYmxlczp0aGlzLl92YXJpYWJsZXMsYWN0b3JJZGVudGlmaWVyOnRoaXMuX2FjdG9ySWRlbnRpZmllcn0pfSx0Ll9ub3JtYWxpemVNb2R1bGVJbXBvcnQ9ZnVuY3Rpb24oZSx0LG4peyEodHlwZW9mIG49PWBvYmplY3RgJiZuKSYmRCghMSk7dmFyIHI9aC5nZXRUeXBlKHQpLGE9eChlLmRvY3VtZW50TmFtZSksbz1lLmNvbXBvbmVudE1vZHVsZVByb3ZpZGVyfHxuW2FdO2guc2V0VmFsdWUodCxhLG8/P251bGwpO3ZhciBzPVMoZS5kb2N1bWVudE5hbWUpLGM9ZS5vcGVyYXRpb25Nb2R1bGVQcm92aWRlcnx8bltzXTtoLnNldFZhbHVlKHQscyxjPz9udWxsKSxjIT1udWxsJiZ0aGlzLl9mb2xsb3d1cFBheWxvYWRzLnB1c2goe2tpbmQ6YE1vZHVsZUltcG9ydFBheWxvYWRgLGFyZ3M6ZS5hcmdzLGRhdGE6bixkYXRhSUQ6aC5nZXREYXRhSUQodCksb3BlcmF0aW9uUmVmZXJlbmNlOmMscGF0aDooMCxpLmRlZmF1bHQpKHRoaXMuX3BhdGgpLHR5cGVOYW1lOnIsdmFyaWFibGVzOnRoaXMuX3ZhcmlhYmxlcyxhY3RvcklkZW50aWZpZXI6dGhpcy5fYWN0b3JJZGVudGlmaWVyfSl9LHQuX25vcm1hbGl6ZUZpZWxkPWZ1bmN0aW9uKGUsdCxuKXshKHR5cGVvZiBuPT1gb2JqZWN0YCYmbikmJkQoITEpO3ZhciByPWUuYWxpYXN8fGUubmFtZSxpPUMoZSx0aGlzLl92YXJpYWJsZXMpLGE9bltyXTtpZihhPT1udWxsfHxzLkVOQUJMRV9OT05DT01QTElBTlRfRVJST1JfSEFORExJTkdfT05fTElTVFMmJkFycmF5LmlzQXJyYXkoYSkmJmEubGVuZ3RoPT09MCl7aWYoYT09PXZvaWQgMCYmKHRoaXMuX2lzQ2xpZW50RXh0ZW5zaW9ufHx0aGlzLl9pc1VubWF0Y2hlZEFic3RyYWN0VHlwZXx8IXRoaXMuX3RyZWF0TWlzc2luZ0ZpZWxkc0FzTnVsbCkpcmV0dXJuO2guc2V0VmFsdWUodCxpLG51bGwpO3ZhciBvPXRoaXMuX2Vycm9yVHJpZTtpZihvIT1udWxsKXt2YXIgYz1wKG8scik7YyE9bnVsbCYmaC5zZXRFcnJvcnModCxpLGMpfXJldHVybn1pZihlLmtpbmQ9PT1gU2NhbGFyRmllbGRgKWguc2V0VmFsdWUodCxpLGEpO2Vsc2UgaWYoZS5raW5kPT09YExpbmtlZEZpZWxkYCl7dGhpcy5fcGF0aC5wdXNoKHIpO3ZhciBsPXRoaXMuX2Vycm9yVHJpZTt0aGlzLl9lcnJvclRyaWU9bD09bnVsbD9udWxsOm0obCxyKSxlLnBsdXJhbD90aGlzLl9ub3JtYWxpemVQbHVyYWxMaW5rKGUsdCxpLGEpOnRoaXMuX25vcm1hbGl6ZUxpbmsoZSx0LGksYSksdGhpcy5fZXJyb3JUcmllPWwsdGhpcy5fcGF0aC5wb3AoKX1lbHNlIEQoITEpfSx0Ll9ub3JtYWxpemVBY3RvckNoYW5nZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5saW5rZWRGaWVsZDshKHR5cGVvZiBuPT1gb2JqZWN0YCYmbikmJkQoITEpO3ZhciBhPXIuYWxpYXN8fHIubmFtZSxzPUMocix0aGlzLl92YXJpYWJsZXMpLGM9blthXTtpZihjPT1udWxsKXtpZihjPT09dm9pZCAwJiYodGhpcy5faXNDbGllbnRFeHRlbnNpb258fHRoaXMuX2lzVW5tYXRjaGVkQWJzdHJhY3RUeXBlfHwhdGhpcy5fdHJlYXRNaXNzaW5nRmllbGRzQXNOdWxsKSlyZXR1cm47aC5zZXRWYWx1ZSh0LHMsbnVsbCk7cmV0dXJufXZhciB1PW8oYyk7aWYodT09bnVsbCl7aC5zZXRWYWx1ZSh0LHMsbnVsbCk7cmV0dXJufXZhciBkPXIuY29uY3JldGVUeXBlPz90aGlzLl9nZXRSZWNvcmRUeXBlKGMpLGY9dGhpcy5fZ2V0RGF0YUlkKGMsZCl8fGguZ2V0TGlua2VkUmVjb3JkSUQodCxzKXx8bChoLmdldERhdGFJRCh0KSxzKTt0eXBlb2YgZiE9YHN0cmluZ2AmJkQoITEpLGguc2V0QWN0b3JMaW5rZWRSZWNvcmRJRCh0LHMsdSxmKSx0aGlzLl9mb2xsb3d1cFBheWxvYWRzLnB1c2goe2tpbmQ6YEFjdG9yUGF5bG9hZGAsZGF0YTpjLGRhdGFJRDpmLHBhdGg6W10uY29uY2F0KCgwLGkuZGVmYXVsdCkodGhpcy5fcGF0aCksW2FdKSx0eXBlTmFtZTpkLHZhcmlhYmxlczp0aGlzLl92YXJpYWJsZXMsbm9kZTpyLGFjdG9ySWRlbnRpZmllcjp1fSl9LHQuX25vcm1hbGl6ZUxpbms9ZnVuY3Rpb24oZSx0LG4scil7ISh0eXBlb2Ygcj09YG9iamVjdGAmJnIpJiZEKCExKTt2YXIgaT10aGlzLl9nZXREYXRhSWQocixlLmNvbmNyZXRlVHlwZT8/dGhpcy5fZ2V0UmVjb3JkVHlwZShyKSl8fGguZ2V0TGlua2VkUmVjb3JkSUQodCxuKXx8bChoLmdldERhdGFJRCh0KSxuKTt0eXBlb2YgaSE9YHN0cmluZ2AmJkQoITEpLGguc2V0TGlua2VkUmVjb3JkSUQodCxuLGkpO3ZhciBhPXRoaXMuX3JlY29yZFNvdXJjZS5nZXQoaSk7aWYoIWEpe3ZhciBvPWUuY29uY3JldGVUeXBlfHx0aGlzLl9nZXRSZWNvcmRUeXBlKHIpO2E9aC5jcmVhdGUoaSxvKSx0aGlzLl9yZWNvcmRTb3VyY2Uuc2V0KGksYSl9dGhpcy5fdHJhdmVyc2VTZWxlY3Rpb25zKGUsYSxyKX0sdC5fbm9ybWFsaXplUGx1cmFsTGluaz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaT10aGlzOyFBcnJheS5pc0FycmF5KHIpJiZEKCExKTt2YXIgYT1oLmdldExpbmtlZFJlY29yZElEcyh0LG4pLG89W107ci5mb3JFYWNoKGZ1bmN0aW9uKHIscyl7aWYocj09bnVsbCl7by5wdXNoKHIpO3JldHVybn1pLl9wYXRoLnB1c2goU3RyaW5nKHMpKTt2YXIgYz1pLl9lcnJvclRyaWU7aS5fZXJyb3JUcmllPWM9PW51bGw/bnVsbDptKGMscyksdHlwZW9mIHIhPWBvYmplY3RgJiZEKCExKTt2YXIgdT1pLl9nZXREYXRhSWQocixlLmNvbmNyZXRlVHlwZT8/aS5fZ2V0UmVjb3JkVHlwZShyKSl8fGEmJmFbc118fGwoaC5nZXREYXRhSUQodCksbixzKTt0eXBlb2YgdSE9YHN0cmluZ2AmJkQoITEpLG8ucHVzaCh1KTt2YXIgZD1pLl9yZWNvcmRTb3VyY2UuZ2V0KHUpO2lmKCFkKXt2YXIgZj1lLmNvbmNyZXRlVHlwZXx8aS5fZ2V0UmVjb3JkVHlwZShyKTtkPWguY3JlYXRlKHUsZiksaS5fcmVjb3JkU291cmNlLnNldCh1LGQpfWkuX3RyYXZlcnNlU2VsZWN0aW9ucyhlLGQsciksaS5fZXJyb3JUcmllPWMsaS5fcGF0aC5wb3AoKX0pLGguc2V0TGlua2VkUmVjb3JkSURzKHQsbixvKX0sdC5fdmFsaWRhdGVSZWNvcmRUeXBlPWZ1bmN0aW9uKGUsdCxuKXt0LmNvbmNyZXRlVHlwZT8/dGhpcy5fZ2V0UmVjb3JkVHlwZShuKSxoLmdldERhdGFJRChlKX0sdC5fdmFsaWRhdGVDb25mbGljdGluZ0ZpZWxkc1dpdGhJZGVudGljYWxJZD1mdW5jdGlvbihlLHQsbil7fSx0Ll92YWxpZGF0ZUNvbmZsaWN0aW5nTGlua2VkRmllbGRzV2l0aElkZW50aWNhbElkPWZ1bmN0aW9uKGUsdCxuKXt9LGV9KCk7dC5leHBvcnRzPXtub3JtYWxpemU6T319KSksbnA9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEpkKCkpLGk9bihKZigpKSxhPW4oWGYoKSksbz1uKHRwKCkpO2Z1bmN0aW9uIHMoZSx0LG4scyl7dmFyIGMsbD1lLmRhdGEsdT1lLmVycm9ycyxkPWEuZGVmYXVsdC5jcmVhdGUoKSxmPWkuZGVmYXVsdC5jcmVhdGUodC5kYXRhSUQsbik7ZC5zZXQodC5kYXRhSUQsZik7dmFyIHA9by5kZWZhdWx0Lm5vcm1hbGl6ZShkLHQsbCxzLHUpO3JldHVybigwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSxwKSx7fSx7aXNGaW5hbDooKGM9ZS5leHRlbnNpb25zKT09bnVsbD92b2lkIDA6Yy5pc19maW5hbCk9PT0hMH0pfXQuZXhwb3J0cz1zfSkpLHJwPXMoKChlLHQpPT57dmFyIG49UmQoKS5nZXRJbmxpbmVEYXRhRnJhZ21lbnQscj1uZigpLkZSQUdNRU5UU19LRVksaT1GZCgpO2Z1bmN0aW9uIGEoZSx0KXt2YXIgYSxvPW4oZSk7aWYodD09bnVsbClyZXR1cm4gdDt0eXBlb2YgdCE9YG9iamVjdGAmJmkoITEpO3ZhciBzPShhPXRbcl0pPT1udWxsP3ZvaWQgMDphW28ubmFtZV07cmV0dXJuIHM/P2koITEpLHN9dC5leHBvcnRzPWF9KSksaXA9cygoKGUsdCk9Pnt2YXIgbj0xZTU7ZnVuY3Rpb24gcigpe3JldHVybiBuKyt9dC5leHBvcnRzPXJ9KSksYXA9cygoKGUsdCk9Pnt2YXIgbj1pcCgpO2Z1bmN0aW9uIHIoZSx0KXtyZXR1cm57ZXhlY3V0ZTpmdW5jdGlvbihyLGksYSxvKXt2YXIgcz1uKCk7cmV0dXJuIHQuZXhlY3V0ZShyLGksYSxvLGZ1bmN0aW9uKHQpe2UuX19sb2coe25hbWU6YG5ldHdvcmsuaW5mb2AsbmV0d29ya1JlcXVlc3RJZDpzLGluZm86dH0pfSkuZG8oe3N0YXJ0OmZ1bmN0aW9uKHQpe2UuX19sb2coe25hbWU6YG5ldHdvcmsuc3RhcnRgLG5ldHdvcmtSZXF1ZXN0SWQ6cyxwYXJhbXM6cix2YXJpYWJsZXM6aSxjYWNoZUNvbmZpZzphfSl9LG5leHQ6ZnVuY3Rpb24odCl7ZS5fX2xvZyh7bmFtZTpgbmV0d29yay5uZXh0YCxuZXR3b3JrUmVxdWVzdElkOnMscmVzcG9uc2U6dH0pfSxlcnJvcjpmdW5jdGlvbih0KXtlLl9fbG9nKHtuYW1lOmBuZXR3b3JrLmVycm9yYCxuZXR3b3JrUmVxdWVzdElkOnMsZXJyb3I6dH0pfSxjb21wbGV0ZTpmdW5jdGlvbigpe2UuX19sb2coe25hbWU6YG5ldHdvcmsuY29tcGxldGVgLG5ldHdvcmtSZXF1ZXN0SWQ6c30pfSx1bnN1YnNjcmliZTpmdW5jdGlvbigpe2UuX19sb2coe25hbWU6YG5ldHdvcmsudW5zdWJzY3JpYmVgLG5ldHdvcmtSZXF1ZXN0SWQ6c30pfX0pfX19dC5leHBvcnRzPXJ9KSksb3A9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEhkKCkpLGk9RmQoKTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5fb3duZXJzVG9QZW5kaW5nT3BlcmF0aW9ucz1uZXcgTWFwLHRoaXMuX3BlbmRpbmdPcGVyYXRpb25zVG9Pd25lcnM9bmV3IE1hcCx0aGlzLl9vd25lcnNUb1BlbmRpbmdQcm9taXNlPW5ldyBNYXB9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQudXBkYXRlPWZ1bmN0aW9uKGUsdCl7aWYodC5zaXplIT09MCl7dmFyIG49ZS5pZGVudGlmaWVyLGk9bmV3IFNldCxhPSgwLHIuZGVmYXVsdCkodCksbzt0cnl7Zm9yKGEucygpOyEobz1hLm4oKSkuZG9uZTspe3ZhciBzPW8udmFsdWUuaWRlbnRpZmllcixjPXRoaXMuX293bmVyc1RvUGVuZGluZ09wZXJhdGlvbnMuZ2V0KHMpO2M9PW51bGw/KHRoaXMuX293bmVyc1RvUGVuZGluZ09wZXJhdGlvbnMuc2V0KHMsbmV3IE1hcChbW24sZV1dKSksaS5hZGQocykpOmMuaGFzKG4pfHwoYy5zZXQobixlKSxpLmFkZChzKSl9fWNhdGNoKGUpe2EuZShlKX1maW5hbGx5e2EuZigpfWlmKGkuc2l6ZSE9PTApe3ZhciBsPXRoaXMuX3BlbmRpbmdPcGVyYXRpb25zVG9Pd25lcnMuZ2V0KG4pfHxuZXcgU2V0LHU9KDAsci5kZWZhdWx0KShpKSxkO3RyeXtmb3IodS5zKCk7IShkPXUubigpKS5kb25lOyl7dmFyIGY9ZC52YWx1ZTt0aGlzLl9yZXNvbHZlT3duZXJSZXNvbHZlcnMoZiksbC5hZGQoZil9fWNhdGNoKGUpe3UuZShlKX1maW5hbGx5e3UuZigpfXRoaXMuX3BlbmRpbmdPcGVyYXRpb25zVG9Pd25lcnMuc2V0KG4sbCl9fX0sdC5jb21wbGV0ZT1mdW5jdGlvbihlKXt2YXIgdD1lLmlkZW50aWZpZXIsbj10aGlzLl9wZW5kaW5nT3BlcmF0aW9uc1RvT3duZXJzLmdldCh0KTtpZihuIT1udWxsKXt2YXIgaT1uZXcgU2V0LGE9bmV3IFNldCxvPSgwLHIuZGVmYXVsdCkobiksczt0cnl7Zm9yKG8ucygpOyEocz1vLm4oKSkuZG9uZTspe3ZhciBjPXMudmFsdWUsbD10aGlzLl9vd25lcnNUb1BlbmRpbmdPcGVyYXRpb25zLmdldChjKTtsJiYobC5kZWxldGUodCksbC5zaXplPjA/YS5hZGQoYyk6aS5hZGQoYykpfX1jYXRjaChlKXtvLmUoZSl9ZmluYWxseXtvLmYoKX12YXIgdT0oMCxyLmRlZmF1bHQpKGkpLGQ7dHJ5e2Zvcih1LnMoKTshKGQ9dS5uKCkpLmRvbmU7KXt2YXIgZj1kLnZhbHVlO3RoaXMuX3Jlc29sdmVPd25lclJlc29sdmVycyhmKSx0aGlzLl9vd25lcnNUb1BlbmRpbmdPcGVyYXRpb25zLmRlbGV0ZShmKX19Y2F0Y2goZSl7dS5lKGUpfWZpbmFsbHl7dS5mKCl9dmFyIHA9KDAsci5kZWZhdWx0KShhKSxtO3RyeXtmb3IocC5zKCk7IShtPXAubigpKS5kb25lOyl7dmFyIGg9bS52YWx1ZTt0aGlzLl9yZXNvbHZlT3duZXJSZXNvbHZlcnMoaCl9fWNhdGNoKGUpe3AuZShlKX1maW5hbGx5e3AuZigpfXRoaXMuX3BlbmRpbmdPcGVyYXRpb25zVG9Pd25lcnMuZGVsZXRlKHQpfX0sdC5fcmVzb2x2ZU93bmVyUmVzb2x2ZXJzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX293bmVyc1RvUGVuZGluZ1Byb21pc2UuZ2V0KGUpO3QhPW51bGwmJnQucmVzb2x2ZSgpLHRoaXMuX293bmVyc1RvUGVuZGluZ1Byb21pc2UuZGVsZXRlKGUpfSx0LmdldFBlbmRpbmdPcGVyYXRpb25zQWZmZWN0aW5nT3duZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pZGVudGlmaWVyLG49dGhpcy5fb3duZXJzVG9QZW5kaW5nT3BlcmF0aW9ucy5nZXQodCk7aWYobj09bnVsbHx8bi5zaXplPT09MClyZXR1cm4gbnVsbDt2YXIgcj10aGlzLl9vd25lcnNUb1BlbmRpbmdQcm9taXNlLmdldCh0KTtpZihyIT1udWxsKXJldHVybntwcm9taXNlOnIucHJvbWlzZSxwZW5kaW5nT3BlcmF0aW9uczpyLnBlbmRpbmdPcGVyYXRpb25zfTt2YXIgYSxvPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe2E9ZX0pO2E/P2koITEpO3ZhciBzPUFycmF5LmZyb20obi52YWx1ZXMoKSk7cmV0dXJuIHRoaXMuX293bmVyc1RvUGVuZGluZ1Byb21pc2Uuc2V0KHQse3Byb21pc2U6byxyZXNvbHZlOmEscGVuZGluZ09wZXJhdGlvbnM6c30pLHtwcm9taXNlOm8scGVuZGluZ09wZXJhdGlvbnM6c319LGV9KCl9KSksc3A9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUpe3ZhciB0PXR5cGVvZiBnbG9iYWxUaGlzPGB1YD9nbG9iYWxUaGlzOnR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp2b2lkIDAsbj10JiZ0Ll9fUkVMQVlfREVWVE9PTFNfSE9PS19fO24mJm4ucmVnaXN0ZXJFbnZpcm9ubWVudChlKX10LmV4cG9ydHM9bn0pKSxjcD1zKCgoZSx0KT0+e3ZhciBuPWJmKCkuZ2VuZXJhdGVDbGllbnRJRCxyPW5mKCkuUk9PVF9JRDt0LmV4cG9ydHM9e1ZJRVdFUl9JRDpuKHIsYHZpZXdlcmApLFZJRVdFUl9UWVBFOmBWaWV3ZXJgfX0pKSxscD1zKCgoZSx0KT0+e3ZhciBuPWNwKCkscj1uLlZJRVdFUl9JRCxpPW4uVklFV0VSX1RZUEU7ZnVuY3Rpb24gYShlLHQpe3JldHVybiB0PT09aSYmZS5pZD09bnVsbD9yOmUuaWR9dC5leHBvcnRzPWF9KSksdXA9cygoKGUsdCk9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7fX0pKSxkcD1zKCgoZSx0KT0+e3ZhciBuPVBkKCkscj1uLlJFUVVFU1QsaT1uLlNQTElUX09QRVJBVElPTjtmdW5jdGlvbiBhKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgcjpyZXR1cm4gZS5vcGVyYXRpb247Y2FzZSBpOmRlZmF1bHQ6cmV0dXJuIGV9fXQuZXhwb3J0cz1hfSkpLGZwPXMoKChlLHQpPT57ZnVuY3Rpb24gbihlLHQsbil7dmFyIHI9Wy4uLmFyZ3VtZW50c10uc2xpY2UoMyksaT0wLGE9bi5yZXBsYWNlKC8lcy9nLGZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyhyW2krK10pfSksbz1FcnJvcihhKSxzPU9iamVjdC5hc3NpZ24obyx7bmFtZTp0LG1lc3NhZ2VGb3JtYXQ6bixtZXNzYWdlUGFyYW1zOnIsdHlwZTplLHRhYWxPcGNvZGVzOlsyLDJdfSk7aWYocy5zdGFjaz09PXZvaWQgMCl0cnl7dGhyb3cgc31jYXRjaHt9cmV0dXJuIHN9dC5leHBvcnRzPXtjcmVhdGU6ZnVuY3Rpb24oZSx0KXt2YXIgcj1bLi4uYXJndW1lbnRzXS5zbGljZSgyKTtyZXR1cm4gbi5hcHBseSh2b2lkIDAsW2BlcnJvcmAsZSx0XS5jb25jYXQocikpfSxjcmVhdGVXYXJuaW5nOmZ1bmN0aW9uKGUsdCl7dmFyIHI9Wy4uLmFyZ3VtZW50c10uc2xpY2UoMik7cmV0dXJuIG4uYXBwbHkodm9pZCAwLFtgd2FybmAsZSx0XS5jb25jYXQocikpfX19KSkscHA9cygoKGUsdCk9Pnt2YXIgbixyLGk9dHlwZW9mIHdpbmRvdzxgdWAmJnR5cGVvZigobj13aW5kb3cpPT1udWxsfHwocj1uLnBlcmZvcm1hbmNlKT09bnVsbD92b2lkIDA6ci5ub3cpPT1gZnVuY3Rpb25gO2Z1bmN0aW9uIGEoKXtyZXR1cm4gaT93aW5kb3cucGVyZm9ybWFuY2Uubm93KCk6RGF0ZS5ub3coKX1mdW5jdGlvbiBvKGUpe3ZhciB0PWEoKSxuPWUoKTtyZXR1cm5bdCxhKCktdCxuXX10LmV4cG9ydHM9b30pKSxtcD1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSGQoKSksaT1uKFFkKCkpLGE9ZGYoKSxvPWlwKCkscz1kcCgpLGM9ZnAoKSxsPXZmKCksdT10ZigpLnN0YWJsZUNvcHksZD1wcCgpLGY9YmYoKSxwPWYuZ2VuZXJhdGVDbGllbnRJRCxtPWYuZ2VuZXJhdGVVbmlxdWVDbGllbnRJRCxoPXJmKCkuZ2V0TG9jYWxWYXJpYWJsZXMsZz1KZigpLF89b2YoKSx2PV8uY3JlYXRlTm9ybWFsaXphdGlvblNlbGVjdG9yLHk9Xy5jcmVhdGVSZWFkZXJTZWxlY3RvcixiPVhmKCkseD1uZigpLFM9eC5ST09UX1RZUEUsQz14LlRZUEVOQU1FX0tFWSx3PXguZ2V0U3RvcmFnZUtleSxUPUZkKCk7TGQoKTtmdW5jdGlvbiBFKGUpe3JldHVybiBuZXcgRChlKX12YXIgRD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dmFyIHQ9dGhpcyxuPWUuYWN0b3JJZGVudGlmaWVyLHI9ZS5nZXREYXRhSUQsaT1lLmdldFB1Ymxpc2hRdWV1ZSxhPWUuZ2V0U3RvcmUscz1lLmlzQ2xpZW50UGF5bG9hZCxjPWUub3BlcmF0aW9uLHU9ZS5vcGVyYXRpb25FeGVjdXRpb25zLGQ9ZS5vcGVyYXRpb25Mb2FkZXIsZj1lLm9wZXJhdGlvblRyYWNrZXIscD1lLm9wdGltaXN0aWNDb25maWcsbT1lLnNjaGVkdWxlcixoPWUuc2hvdWxkUHJvY2Vzc0NsaWVudENvbXBvbmVudHMsZz1lLnNpbmssXz1lLnNvdXJjZSx2PWUudHJlYXRNaXNzaW5nRmllbGRzQXNOdWxsLHk9ZS51cGRhdGVyLGI9ZS5sb2cseD1lLm5vcm1hbGl6ZVJlc3BvbnNlO3RoaXMuX2FjdG9ySWRlbnRpZmllcj1uLHRoaXMuX2dldERhdGFJRD1yLHRoaXMuX3RyZWF0TWlzc2luZ0ZpZWxkc0FzTnVsbD12LHRoaXMuX2luY3JlbWVudGFsUGF5bG9hZHNQZW5kaW5nPSExLHRoaXMuX2luY3JlbWVudGFsUmVzdWx0cz1uZXcgTWFwLHRoaXMuX2xvZz1iLHRoaXMuX2V4ZWN1dGVJZD1vKCksdGhpcy5fbmV4dFN1YnNjcmlwdGlvbklkPTAsdGhpcy5fb3BlcmF0aW9uPWMsdGhpcy5fb3BlcmF0aW9uRXhlY3V0aW9ucz11LHRoaXMuX29wZXJhdGlvbkxvYWRlcj1kLHRoaXMuX29wZXJhdGlvblRyYWNrZXI9Zix0aGlzLl9vcGVyYXRpb25VcGRhdGVFcG9jaHM9bmV3IE1hcCx0aGlzLl9vcHRpbWlzdGljVXBkYXRlcz1udWxsLHRoaXMuX3BlbmRpbmdNb2R1bGVQYXlsb2Fkc0NvdW50PTAsdGhpcy5fZ2V0UHVibGlzaFF1ZXVlPWksdGhpcy5fc2NoZWR1bGVyPW0sdGhpcy5fc2luaz1nLHRoaXMuX3NvdXJjZT1uZXcgTWFwLHRoaXMuX3N0YXRlPWBzdGFydGVkYCx0aGlzLl9nZXRTdG9yZT1hLHRoaXMuX3N1YnNjcmlwdGlvbnM9bmV3IE1hcCx0aGlzLl91cGRhdGVyPXksdGhpcy5faXNDbGllbnRQYXlsb2FkPXM9PT0hMCx0aGlzLl9pc1N1YnNjcmlwdGlvbk9wZXJhdGlvbj10aGlzLl9vcGVyYXRpb24ucmVxdWVzdC5ub2RlLnBhcmFtcy5vcGVyYXRpb25LaW5kPT09YHN1YnNjcmlwdGlvbmAsdGhpcy5fc2hvdWxkUHJvY2Vzc0NsaWVudENvbXBvbmVudHM9aCx0aGlzLl9yZXRhaW5EaXNwb3NhYmxlcz1uZXcgTWFwLHRoaXMuX3NlZW5BY3RvcnM9bmV3IFNldCx0aGlzLl9jb21wbGV0ZUZucz1bXSx0aGlzLl9ub3JtYWxpemVSZXNwb25zZT14O3ZhciBTPXRoaXMuX25leHRTdWJzY3JpcHRpb25JZCsrO2wuUFJPQ0VTU19PUFRJTUlTVElDX1VQREFURV9CRUZPUkVfU1VCU0NSSVBUSU9OJiZwIT1udWxsJiZ0aGlzLl9wcm9jZXNzT3B0aW1pc3RpY1Jlc3BvbnNlKHAucmVzcG9uc2U9PW51bGw/bnVsbDp7ZGF0YTpwLnJlc3BvbnNlfSxwLnVwZGF0ZXIsITEpLF8uc3Vic2NyaWJlKHtjb21wbGV0ZTpmdW5jdGlvbigpe3JldHVybiB0Ll9jb21wbGV0ZShTKX0sZXJyb3I6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuX2Vycm9yKGUpfSxuZXh0OmZ1bmN0aW9uKGUpe3RyeXt0Ll9uZXh0KFMsZSl9Y2F0Y2goZSl7Zy5lcnJvcihlKX19LHN0YXJ0OmZ1bmN0aW9uKGUpe3QuX3N0YXJ0KFMsZSksdC5fbG9nKHtuYW1lOmBleGVjdXRlLnN0YXJ0YCxleGVjdXRlSWQ6dC5fZXhlY3V0ZUlkLHBhcmFtczp0Ll9vcGVyYXRpb24ucmVxdWVzdC5ub2RlLnBhcmFtcyx2YXJpYWJsZXM6dC5fb3BlcmF0aW9uLnJlcXVlc3QudmFyaWFibGVzLGNhY2hlQ29uZmlnOnQuX29wZXJhdGlvbi5yZXF1ZXN0LmNhY2hlQ29uZmlnPz97fX0pfX0pLCFsLlBST0NFU1NfT1BUSU1JU1RJQ19VUERBVEVfQkVGT1JFX1NVQlNDUklQVElPTiYmcCE9bnVsbCYmdGhpcy5fcHJvY2Vzc09wdGltaXN0aWNSZXNwb25zZShwLnJlc3BvbnNlPT1udWxsP251bGw6e2RhdGE6cC5yZXNwb25zZX0scC51cGRhdGVyLCExKX12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5jYW5jZWw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKHRoaXMuX3N0YXRlIT09YGNvbXBsZXRlZGApe3RoaXMuX3N0YXRlPWBjb21wbGV0ZWRgLHRoaXMuX29wZXJhdGlvbkV4ZWN1dGlvbnMuZGVsZXRlKHRoaXMuX29wZXJhdGlvbi5yZXF1ZXN0LmlkZW50aWZpZXIpLHRoaXMuX3N1YnNjcmlwdGlvbnMuc2l6ZSE9PTAmJih0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUudW5zdWJzY3JpYmUoKX0pLHRoaXMuX3N1YnNjcmlwdGlvbnMuY2xlYXIoKSk7dmFyIHQ9dGhpcy5fb3B0aW1pc3RpY1VwZGF0ZXM7dCE9PW51bGwmJih0aGlzLl9vcHRpbWlzdGljVXBkYXRlcz1udWxsLHQuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5fZ2V0UHVibGlzaFF1ZXVlQW5kU2F2ZUFjdG9yKCkucmV2ZXJ0VXBkYXRlKHQpfSksdGhpcy5fcnVuUHVibGlzaFF1ZXVlKCkpLHRoaXMuX2luY3JlbWVudGFsUmVzdWx0cy5jbGVhcigpLHRoaXMuX2FzeW5jU3RvcmVVcGRhdGVEaXNwb3NhYmxlIT1udWxsJiYodGhpcy5fYXN5bmNTdG9yZVVwZGF0ZURpc3Bvc2FibGUuZGlzcG9zZSgpLHRoaXMuX2FzeW5jU3RvcmVVcGRhdGVEaXNwb3NhYmxlPW51bGwpLHRoaXMuX2NvbXBsZXRlRm5zPVtdLHRoaXMuX2NvbXBsZXRlT3BlcmF0aW9uVHJhY2tlcigpLHRoaXMuX2Rpc3Bvc2VSZXRhaW5lZERhdGEoKX19LHQuX3VwZGF0ZUFjdGl2ZVN0YXRlPWZ1bmN0aW9uKCl7dmFyIGU7c3dpdGNoKHRoaXMuX3N0YXRlKXtjYXNlYHN0YXJ0ZWRgOmU9YGFjdGl2ZWA7YnJlYWs7Y2FzZWBsb2FkaW5nX2luY3JlbWVudGFsYDplPWBhY3RpdmVgO2JyZWFrO2Nhc2VgY29tcGxldGVkYDplPWBpbmFjdGl2ZWA7YnJlYWs7Y2FzZWBsb2FkaW5nX2ZpbmFsYDplPXRoaXMuX3BlbmRpbmdNb2R1bGVQYXlsb2Fkc0NvdW50PjA/YGFjdGl2ZWA6YGluYWN0aXZlYDticmVhaztkZWZhdWx0OnRoaXMuX3N0YXRlLFQoITEpfXRoaXMuX29wZXJhdGlvbkV4ZWN1dGlvbnMuc2V0KHRoaXMuX29wZXJhdGlvbi5yZXF1ZXN0LmlkZW50aWZpZXIsZSl9LHQuX3NjaGVkdWxlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPXRoaXMuX3NjaGVkdWxlcjtpZihyIT1udWxsKXt2YXIgaT10aGlzLl9uZXh0U3Vic2NyaXB0aW9uSWQrKzthLmNyZWF0ZShmdW5jdGlvbihuKXt2YXIgaT1yLnNjaGVkdWxlKGZ1bmN0aW9uKCl7dHJ5e2UoKSxuLmNvbXBsZXRlKCl9Y2F0Y2goZSl7bi5lcnJvcihlKX19LHQpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiByLmNhbmNlbChpKX19KS5zdWJzY3JpYmUoe2NvbXBsZXRlOmZ1bmN0aW9uKCl7cmV0dXJuIG4uX2NvbXBsZXRlKGkpfSxlcnJvcjpmdW5jdGlvbihlKXtyZXR1cm4gbi5fZXJyb3IoZSl9LHN0YXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBuLl9zdGFydChpLGUpfX0pfWVsc2UgZSgpfSx0Ll9jb21wbGV0ZT1mdW5jdGlvbihlKXt0aGlzLl9zdWJzY3JpcHRpb25zLmRlbGV0ZShlKSx0aGlzLl9zdWJzY3JpcHRpb25zLnNpemU9PT0wJiYodGhpcy5jYW5jZWwoKSx0aGlzLl9zaW5rLmNvbXBsZXRlKCksdGhpcy5fbG9nKHtuYW1lOmBleGVjdXRlLmNvbXBsZXRlYCxleGVjdXRlSWQ6dGhpcy5fZXhlY3V0ZUlkfSkpfSx0Ll9lcnJvcj1mdW5jdGlvbihlKXt0aGlzLmNhbmNlbCgpLHRoaXMuX3NpbmsuZXJyb3IoZSksdGhpcy5fbG9nKHtuYW1lOmBleGVjdXRlLmVycm9yYCxleGVjdXRlSWQ6dGhpcy5fZXhlY3V0ZUlkLGVycm9yOmV9KX0sdC5fc3RhcnQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdWJzY3JpcHRpb25zLnNldChlLHQpLHRoaXMuX3VwZGF0ZUFjdGl2ZVN0YXRlKCl9LHQuX25leHQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHI9dGhpcy5fc3RhdGU9PT1gbG9hZGluZ19pbmNyZW1lbnRhbGA/YGxvd2A6YGRlZmF1bHRgO3RoaXMuX3NjaGVkdWxlKGZ1bmN0aW9uKCl7bi5fbG9nKHtuYW1lOmBleGVjdXRlLm5leHQuc3RhcnRgLGV4ZWN1dGVJZDpuLl9leGVjdXRlSWQscmVzcG9uc2U6dCxvcGVyYXRpb246bi5fb3BlcmF0aW9ufSksbi5faGFuZGxlTmV4dCh0KSxuLl9tYXliZUNvbXBsZXRlU3Vic2NyaXB0aW9uT3BlcmF0aW9uVHJhY2tpbmcoKSxuLl9sb2coe25hbWU6YGV4ZWN1dGUubmV4dC5lbmRgLGV4ZWN1dGVJZDpuLl9leGVjdXRlSWQscmVzcG9uc2U6dCxvcGVyYXRpb246bi5fb3BlcmF0aW9ufSl9LHIpfSx0Ll9oYW5kbGVFcnJvclJlc3BvbnNlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1bXTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKCEoZS5kYXRhPT09bnVsbCYmZS5leHRlbnNpb25zIT1udWxsJiYhZS5oYXNPd25Qcm9wZXJ0eShgZXJyb3JzYCkpKWlmKGUuZGF0YT09bnVsbCl7dmFyIHI9ZS5oYXNPd25Qcm9wZXJ0eShgZXJyb3JzYCkmJmUuZXJyb3JzIT1udWxsP2UuZXJyb3JzOm51bGwsaT1yP3IubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLm1lc3NhZ2V9KS5qb2luKGAKYCk6YChObyBlcnJvcnMpYCxhPWMuY3JlYXRlKGBSZWxheU5ldHdvcmtgLCJObyBkYXRhIHJldHVybmVkIGZvciBvcGVyYXRpb24gYCIrdC5fb3BlcmF0aW9uLnJlcXVlc3Qubm9kZS5wYXJhbXMubmFtZStgXGAsIGdvdCBlcnJvcihzKToKYCtpK2AKClNlZSB0aGUgZXJyb3IgXGBzb3VyY2VcYCBwcm9wZXJ0eSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gKTt0aHJvdyBhLnNvdXJjZT17ZXJyb3JzOnIsb3BlcmF0aW9uOnQuX29wZXJhdGlvbi5yZXF1ZXN0Lm5vZGUsdmFyaWFibGVzOnQuX29wZXJhdGlvbi5yZXF1ZXN0LnZhcmlhYmxlc30sYS5zdGFjayxhfWVsc2V7dmFyIG89ZTtuLnB1c2gobyl9fSksbn0sdC5faGFuZGxlT3B0aW1pc3RpY1Jlc3BvbnNlcz1mdW5jdGlvbihlKXt2YXIgdDtpZihlLmxlbmd0aD4xKXJldHVybiBlLnNvbWUoZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuKCh0PWUuZXh0ZW5zaW9ucyk9PW51bGw/dm9pZCAwOnQuaXNPcHRpbWlzdGljKT09PSEwfSkmJlQoITEpLCExO3ZhciBuPWVbMF0scj0oKHQ9bi5leHRlbnNpb25zKT09bnVsbD92b2lkIDA6dC5pc09wdGltaXN0aWMpPT09ITA7cmV0dXJuIHImJnRoaXMuX3N0YXRlIT09YHN0YXJ0ZWRgJiZUKCExKSxyPyh0aGlzLl9wcm9jZXNzT3B0aW1pc3RpY1Jlc3BvbnNlKG4sbnVsbCx0aGlzLl90cmVhdE1pc3NpbmdGaWVsZHNBc051bGwpLHRoaXMuX3NpbmsubmV4dChuKSwhMCk6ITF9LHQuX2hhbmRsZU5leHQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5fc3RhdGUhPT1gY29tcGxldGVkYCl7dGhpcy5fc2VlbkFjdG9ycy5jbGVhcigpO3ZhciB0PUFycmF5LmlzQXJyYXkoZSk/ZTpbZV0sbj10aGlzLl9oYW5kbGVFcnJvclJlc3BvbnNlKHQpO2lmKG4ubGVuZ3RoPT09MCl7dC5zb21lKGZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybigodD1lLmV4dGVuc2lvbnMpPT1udWxsP3ZvaWQgMDp0LmlzX2ZpbmFsKT09PSEwfSkmJih0aGlzLl9zdGF0ZT1gbG9hZGluZ19maW5hbGAsdGhpcy5fdXBkYXRlQWN0aXZlU3RhdGUoKSx0aGlzLl9pbmNyZW1lbnRhbFBheWxvYWRzUGVuZGluZz0hMSksdGhpcy5fc2luay5uZXh0KGUpO3JldHVybn1pZighdGhpcy5faGFuZGxlT3B0aW1pc3RpY1Jlc3BvbnNlcyhuKSl7dmFyIHI9TyhuKSxpPXJbMF0sYT1yWzFdLG89aS5sZW5ndGg+MDtpZihvKXtpZih0aGlzLl9pc1N1YnNjcmlwdGlvbk9wZXJhdGlvbil7dmFyIHM9bSgpO3RoaXMuX29wZXJhdGlvbj17cmVxdWVzdDp0aGlzLl9vcGVyYXRpb24ucmVxdWVzdCxmcmFnbWVudDp5KHRoaXMuX29wZXJhdGlvbi5mcmFnbWVudC5ub2RlLHMsdGhpcy5fb3BlcmF0aW9uLmZyYWdtZW50LnZhcmlhYmxlcyx0aGlzLl9vcGVyYXRpb24uZnJhZ21lbnQub3duZXIpLHJvb3Q6dih0aGlzLl9vcGVyYXRpb24ucm9vdC5ub2RlLHMsdGhpcy5fb3BlcmF0aW9uLnJvb3QudmFyaWFibGVzKX19dmFyIGM9dGhpcy5fcHJvY2Vzc1Jlc3BvbnNlcyhpKTt0aGlzLl9wcm9jZXNzUGF5bG9hZEZvbGxvd3VwcyhjKX1pZihhLmxlbmd0aD4wKXt2YXIgbD10aGlzLl9wcm9jZXNzSW5jcmVtZW50YWxSZXNwb25zZXMoYSk7dGhpcy5fcHJvY2Vzc1BheWxvYWRGb2xsb3d1cHMobCl9dGhpcy5faXNTdWJzY3JpcHRpb25PcGVyYXRpb24mJihuWzBdLmV4dGVuc2lvbnM9PW51bGw/blswXS5leHRlbnNpb25zPXtfX3JlbGF5X3N1YnNjcmlwdGlvbl9yb290X2lkOnRoaXMuX29wZXJhdGlvbi5mcmFnbWVudC5kYXRhSUR9Om5bMF0uZXh0ZW5zaW9ucy5fX3JlbGF5X3N1YnNjcmlwdGlvbl9yb290X2lkPXRoaXMuX29wZXJhdGlvbi5mcmFnbWVudC5kYXRhSUQpO3ZhciB1PXRoaXMuX3J1blB1Ymxpc2hRdWV1ZShvP3RoaXMuX29wZXJhdGlvbjp2b2lkIDApO28mJnRoaXMuX2luY3JlbWVudGFsUGF5bG9hZHNQZW5kaW5nJiZ0aGlzLl9yZXRhaW5EYXRhKCksdGhpcy5fdXBkYXRlT3BlcmF0aW9uVHJhY2tlcih1KSx0aGlzLl9zaW5rLm5leHQoZSl9fX0sdC5fcHJvY2Vzc09wdGltaXN0aWNSZXNwb25zZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9dGhpcztpZih0aGlzLl9vcHRpbWlzdGljVXBkYXRlcyE9PW51bGwmJlQoITEpLCEoZT09bnVsbCYmdD09bnVsbCkpe3ZhciBpPVtdO2lmKGUpe3ZhciBhPXRoaXMuX25vcm1hbGl6ZVJlc3BvbnNlKGUsdGhpcy5fb3BlcmF0aW9uLnJvb3QsUyx7YWN0b3JJZGVudGlmaWVyOnRoaXMuX2FjdG9ySWRlbnRpZmllcixnZXREYXRhSUQ6dGhpcy5fZ2V0RGF0YUlELHBhdGg6W10sc2hvdWxkUHJvY2Vzc0NsaWVudENvbXBvbmVudHM6dGhpcy5fc2hvdWxkUHJvY2Vzc0NsaWVudENvbXBvbmVudHMsdHJlYXRNaXNzaW5nRmllbGRzQXNOdWxsOm59KTtBKGEpLGkucHVzaCh7b3BlcmF0aW9uOnRoaXMuX29wZXJhdGlvbixwYXlsb2FkOmEsdXBkYXRlcjp0fSksdGhpcy5fcHJvY2Vzc09wdGltaXN0aWNGb2xsb3d1cHMoYSxpKX1lbHNlIHQmJmkucHVzaCh7b3BlcmF0aW9uOnRoaXMuX29wZXJhdGlvbixwYXlsb2FkOntlcnJvcnM6bnVsbCxmaWVsZFBheWxvYWRzOm51bGwsaW5jcmVtZW50YWxQbGFjZWhvbGRlcnM6bnVsbCxmb2xsb3d1cFBheWxvYWRzOm51bGwsc291cmNlOmIuY3JlYXRlKCksaXNGaW5hbDohMX0sdXBkYXRlcjp0fSk7dGhpcy5fb3B0aW1pc3RpY1VwZGF0ZXM9aSxpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHIuX2dldFB1Ymxpc2hRdWV1ZUFuZFNhdmVBY3RvcigpLmFwcGx5VXBkYXRlKGUpfSk7dmFyIG89dGhpcy5fcnVuUHVibGlzaFF1ZXVlKCk7bC5FTkFCTEVfT1BFUkFUSU9OX1RSQUNLRVJfT1BUSU1JU1RJQ19VUERBVEVTJiZ0aGlzLl91cGRhdGVPcGVyYXRpb25UcmFja2VyKG8pfX0sdC5fcHJvY2Vzc09wdGltaXN0aWNGb2xsb3d1cHM9ZnVuY3Rpb24oZSx0KXtpZihlLmZvbGxvd3VwUGF5bG9hZHMmJmUuZm9sbG93dXBQYXlsb2Fkcy5sZW5ndGgpe3ZhciBuPWUuZm9sbG93dXBQYXlsb2FkcyxhPSgwLHIuZGVmYXVsdCkobiksbzt0cnl7Zm9yKGEucygpOyEobz1hLm4oKSkuZG9uZTspe3ZhciBzPW8udmFsdWU7c3dpdGNoKHMua2luZCl7Y2FzZWBNb2R1bGVJbXBvcnRQYXlsb2FkYDp2YXIgYz10aGlzLl9leHBlY3RPcGVyYXRpb25Mb2FkZXIoKS5nZXQocy5vcGVyYXRpb25SZWZlcmVuY2UpO2lmKGM9PW51bGwpdGhpcy5fcHJvY2Vzc0FzeW5jT3B0aW1pc3RpY01vZHVsZUltcG9ydChzKTtlbHNle3ZhciBsPXRoaXMuX3Byb2Nlc3NPcHRpbWlzdGljTW9kdWxlSW1wb3J0KGMscyk7dC5wdXNoLmFwcGx5KHQsKDAsaS5kZWZhdWx0KShsKSl9YnJlYWs7Y2FzZWBBY3RvclBheWxvYWRgOmJyZWFrO2RlZmF1bHQ6VCghMSl9fX1jYXRjaChlKXthLmUoZSl9ZmluYWxseXthLmYoKX19fSx0Ll9ub3JtYWxpemVGb2xsb3d1cFBheWxvYWQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmtpbmQ9PT1gU3BsaXRPcGVyYXRpb25gJiZlLmtpbmQ9PT1gTW9kdWxlSW1wb3J0UGF5bG9hZGA/aChlLnZhcmlhYmxlcyx0LmFyZ3VtZW50RGVmaW5pdGlvbnMsZS5hcmdzKTplLnZhcmlhYmxlcyxyPXYodCxlLmRhdGFJRCxuKTtyZXR1cm4gdGhpcy5fbm9ybWFsaXplUmVzcG9uc2Uoe2RhdGE6ZS5kYXRhfSxyLGUudHlwZU5hbWUse2FjdG9ySWRlbnRpZmllcjp0aGlzLl9hY3RvcklkZW50aWZpZXIsZ2V0RGF0YUlEOnRoaXMuX2dldERhdGFJRCxwYXRoOmUucGF0aCx0cmVhdE1pc3NpbmdGaWVsZHNBc051bGw6dGhpcy5fdHJlYXRNaXNzaW5nRmllbGRzQXNOdWxsLHNob3VsZFByb2Nlc3NDbGllbnRDb21wb25lbnRzOnRoaXMuX3Nob3VsZFByb2Nlc3NDbGllbnRDb21wb25lbnRzfSl9LHQuX3Byb2Nlc3NPcHRpbWlzdGljTW9kdWxlSW1wb3J0PWZ1bmN0aW9uKGUsdCl7dmFyIG49cyhlKSxyPVtdLGk9dGhpcy5fbm9ybWFsaXplRm9sbG93dXBQYXlsb2FkKHQsbik7cmV0dXJuIEEoaSksci5wdXNoKHtvcGVyYXRpb246dGhpcy5fb3BlcmF0aW9uLHBheWxvYWQ6aSx1cGRhdGVyOm51bGx9KSx0aGlzLl9wcm9jZXNzT3B0aW1pc3RpY0ZvbGxvd3VwcyhpLHIpLHJ9LHQuX3Byb2Nlc3NBc3luY09wdGltaXN0aWNNb2R1bGVJbXBvcnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLl9leHBlY3RPcGVyYXRpb25Mb2FkZXIoKS5sb2FkKGUub3BlcmF0aW9uUmVmZXJlbmNlKS50aGVuKGZ1bmN0aW9uKG4pe2lmKCEobj09bnVsbHx8dC5fc3RhdGUhPT1gc3RhcnRlZGApKXt2YXIgcj10Ll9wcm9jZXNzT3B0aW1pc3RpY01vZHVsZUltcG9ydChuLGUpO2lmKHIuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5fZ2V0UHVibGlzaFF1ZXVlQW5kU2F2ZUFjdG9yKCkuYXBwbHlVcGRhdGUoZSl9KSx0Ll9vcHRpbWlzdGljVXBkYXRlcyE9bnVsbCl7dmFyIGE7KGE9dC5fb3B0aW1pc3RpY1VwZGF0ZXMpLnB1c2guYXBwbHkoYSwoMCxpLmRlZmF1bHQpKHIpKSx0Ll9ydW5QdWJsaXNoUXVldWUoKX19fSl9LHQuX3Byb2Nlc3NSZXNwb25zZXM9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fbG9nKHtuYW1lOmBleGVjdXRlLm5vcm1hbGl6ZS5zdGFydGAsb3BlcmF0aW9uOnRoaXMuX29wZXJhdGlvbn0pLHRoaXMuX29wdGltaXN0aWNVcGRhdGVzIT09bnVsbCYmKHRoaXMuX29wdGltaXN0aWNVcGRhdGVzLmZvckVhY2goZnVuY3Rpb24oZSl7dC5fZ2V0UHVibGlzaFF1ZXVlQW5kU2F2ZUFjdG9yKCkucmV2ZXJ0VXBkYXRlKGUpfSksdGhpcy5fb3B0aW1pc3RpY1VwZGF0ZXM9bnVsbCksdGhpcy5faW5jcmVtZW50YWxQYXlsb2Fkc1BlbmRpbmc9ITEsdGhpcy5faW5jcmVtZW50YWxSZXN1bHRzLmNsZWFyKCksdGhpcy5fc291cmNlLmNsZWFyKCksZS5tYXAoZnVuY3Rpb24oZSl7dmFyIG49dC5fbm9ybWFsaXplUmVzcG9uc2UoZSx0Ll9vcGVyYXRpb24ucm9vdCxTLHthY3RvcklkZW50aWZpZXI6dC5fYWN0b3JJZGVudGlmaWVyLGdldERhdGFJRDp0Ll9nZXREYXRhSUQscGF0aDpbXSx0cmVhdE1pc3NpbmdGaWVsZHNBc051bGw6dC5fdHJlYXRNaXNzaW5nRmllbGRzQXNOdWxsLHNob3VsZFByb2Nlc3NDbGllbnRDb21wb25lbnRzOnQuX3Nob3VsZFByb2Nlc3NDbGllbnRDb21wb25lbnRzfSk7cmV0dXJuIHQuX2dldFB1Ymxpc2hRdWV1ZUFuZFNhdmVBY3RvcigpLmNvbW1pdFBheWxvYWQodC5fb3BlcmF0aW9uLG4sdC5fdXBkYXRlciksdC5fbG9nKHtuYW1lOmBleGVjdXRlLm5vcm1hbGl6ZS5lbmRgLG9wZXJhdGlvbjp0Ll9vcGVyYXRpb259KSxufSl9LHQuX3Byb2Nlc3NQYXlsb2FkRm9sbG93dXBzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5fc3RhdGUhPT1gY29tcGxldGVkYCYmZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBuPWUuaW5jcmVtZW50YWxQbGFjZWhvbGRlcnMscj1lLmZvbGxvd3VwUGF5bG9hZHMsaT1lLmlzRmluYWw7aWYodC5fc3RhdGU9aT9gbG9hZGluZ19maW5hbGA6YGxvYWRpbmdfaW5jcmVtZW50YWxgLHQuX3VwZGF0ZUFjdGl2ZVN0YXRlKCksaSYmKHQuX2luY3JlbWVudGFsUGF5bG9hZHNQZW5kaW5nPSExKSxyJiZyLmxlbmd0aCE9PTAmJnIuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgbj10Ll9hY3RvcklkZW50aWZpZXI7dC5fYWN0b3JJZGVudGlmaWVyPWUuYWN0b3JJZGVudGlmaWVyPz90Ll9hY3RvcklkZW50aWZpZXIsdC5fcHJvY2Vzc0ZvbGxvd3VwUGF5bG9hZChlKSx0Ll9hY3RvcklkZW50aWZpZXI9bn0pLG4mJm4ubGVuZ3RoIT09MCYmKHQuX2luY3JlbWVudGFsUGF5bG9hZHNQZW5kaW5nPXQuX3N0YXRlIT09YGxvYWRpbmdfZmluYWxgLG4uZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcj10Ll9hY3RvcklkZW50aWZpZXI7dC5fYWN0b3JJZGVudGlmaWVyPW4uYWN0b3JJZGVudGlmaWVyPz90Ll9hY3RvcklkZW50aWZpZXIsdC5fcHJvY2Vzc0luY3JlbWVudGFsUGxhY2Vob2xkZXIoZSxuKSx0Ll9hY3RvcklkZW50aWZpZXI9cn0pLHQuX2lzQ2xpZW50UGF5bG9hZHx8dC5fc3RhdGU9PT1gbG9hZGluZ19maW5hbGApKXt2YXIgYT1bXTtuLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5raW5kPT09YGRlZmVyYCYmYS5wdXNoKHQuX3Byb2Nlc3NEZWZlclJlc3BvbnNlKGUubGFiZWwsZS5wYXRoLGUse2RhdGE6ZS5kYXRhfSkpfSksYS5sZW5ndGg+MCYmdC5fcHJvY2Vzc1BheWxvYWRGb2xsb3d1cHMoYSl9fSl9LHQuX21heWJlQ29tcGxldGVTdWJzY3JpcHRpb25PcGVyYXRpb25UcmFja2luZz1mdW5jdGlvbigpe3RoaXMuX2lzU3Vic2NyaXB0aW9uT3BlcmF0aW9uJiZ0aGlzLl9wZW5kaW5nTW9kdWxlUGF5bG9hZHNDb3VudD09PTAmJnRoaXMuX2luY3JlbWVudGFsUGF5bG9hZHNQZW5kaW5nPT09ITEmJnRoaXMuX2NvbXBsZXRlT3BlcmF0aW9uVHJhY2tlcigpfSx0Ll9wcm9jZXNzRm9sbG93dXBQYXlsb2FkPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7c3dpdGNoKGUua2luZCl7Y2FzZWBNb2R1bGVJbXBvcnRQYXlsb2FkYDp2YXIgbj10aGlzLl9leHBlY3RPcGVyYXRpb25Mb2FkZXIoKSxyPW4uZ2V0KGUub3BlcmF0aW9uUmVmZXJlbmNlKTtpZihyIT1udWxsKXRoaXMuX3Byb2Nlc3NGb2xsb3d1cFBheWxvYWRXaXRoTm9ybWFsaXphdGlvbk5vZGUoZSxzKHIpKTtlbHNle3ZhciBpPXRoaXMuX25leHRTdWJzY3JpcHRpb25JZCsrO3RoaXMuX3BlbmRpbmdNb2R1bGVQYXlsb2Fkc0NvdW50Kys7dmFyIG89ZnVuY3Rpb24oKXt0Ll9wZW5kaW5nTW9kdWxlUGF5bG9hZHNDb3VudC0tLHQuX21heWJlQ29tcGxldGVTdWJzY3JpcHRpb25PcGVyYXRpb25UcmFja2luZygpfSxjPWEuZnJvbShuZXcgUHJvbWlzZShmdW5jdGlvbih0LHIpe24ubG9hZChlLm9wZXJhdGlvblJlZmVyZW5jZSkudGhlbih0LHIpfSkpO2EuY3JlYXRlKGZ1bmN0aW9uKG4pe3ZhciByLGk9Yy5zdWJzY3JpYmUoe25leHQ6ZnVuY3Rpb24oaSl7aWYoaSE9bnVsbCl7dmFyIGE9ZnVuY3Rpb24oKXt0cnl7dmFyIHI9cyhpKSxhPWwuQkFUQ0hfQVNZTkNfTU9EVUxFX1VQREFURVNfRk4sbz1hIT1udWxsJiZ0Ll9wZW5kaW5nTW9kdWxlUGF5bG9hZHNDb3VudD4xLGM9ZChmdW5jdGlvbigpe2lmKHQuX2hhbmRsZUZvbGxvd3VwUGF5bG9hZChlLHIpLG8pdC5fc2NoZWR1bGVBc3luY1N0b3JlVXBkYXRlKGEsbi5jb21wbGV0ZSk7ZWxzZXt2YXIgaT10Ll9ydW5QdWJsaXNoUXVldWUoKTt0Ll91cGRhdGVPcGVyYXRpb25UcmFja2VyKGkpfX0pO2NbMF07dmFyIHU9Y1sxXTt0Ll9sb2coe25hbWU6YGV4ZWN1dGUuYXN5bmMubW9kdWxlYCxleGVjdXRlSWQ6dC5fZXhlY3V0ZUlkLG9wZXJhdGlvbk5hbWU6ci5uYW1lLGR1cmF0aW9uOnV9KSxvfHxuLmNvbXBsZXRlKCl9Y2F0Y2goZSl7bi5lcnJvcihlKX19LG89dC5fc2NoZWR1bGVyO289PW51bGw/YSgpOnI9by5zY2hlZHVsZShhKX1lbHNlIG4uY29tcGxldGUoKX0sZXJyb3I6bi5lcnJvcn0pO3JldHVybiBmdW5jdGlvbigpe2kudW5zdWJzY3JpYmUoKSx0Ll9zY2hlZHVsZXIhPW51bGwmJnIhPW51bGwmJnQuX3NjaGVkdWxlci5jYW5jZWwocil9fSkuc3Vic2NyaWJlKHtjb21wbGV0ZTpmdW5jdGlvbigpe3QuX2NvbXBsZXRlKGkpLG8oKX0sZXJyb3I6ZnVuY3Rpb24oZSl7dC5fZXJyb3IoZSksbygpfSxzdGFydDpmdW5jdGlvbihlKXtyZXR1cm4gdC5fc3RhcnQoaSxlKX19KX1icmVhaztjYXNlYEFjdG9yUGF5bG9hZGA6dGhpcy5fcHJvY2Vzc0ZvbGxvd3VwUGF5bG9hZFdpdGhOb3JtYWxpemF0aW9uTm9kZShlLGUubm9kZSk7YnJlYWs7ZGVmYXVsdDpUKCExKX19LHQuX3Byb2Nlc3NGb2xsb3d1cFBheWxvYWRXaXRoTm9ybWFsaXphdGlvbk5vZGU9ZnVuY3Rpb24oZSx0KXt0aGlzLl9oYW5kbGVGb2xsb3d1cFBheWxvYWQoZSx0KSx0aGlzLl9tYXliZUNvbXBsZXRlU3Vic2NyaXB0aW9uT3BlcmF0aW9uVHJhY2tpbmcoKX0sdC5faGFuZGxlRm9sbG93dXBQYXlsb2FkPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fbm9ybWFsaXplRm9sbG93dXBQYXlsb2FkKGUsdCk7dGhpcy5fZ2V0UHVibGlzaFF1ZXVlQW5kU2F2ZUFjdG9yKCkuY29tbWl0UGF5bG9hZCh0aGlzLl9vcGVyYXRpb24sbiksdGhpcy5fcHJvY2Vzc1BheWxvYWRGb2xsb3d1cHMoW25dKX0sdC5fcHJvY2Vzc0luY3JlbWVudGFsUGxhY2Vob2xkZXI9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmxhYmVsLHI9dC5wYXRoLm1hcChTdHJpbmcpLmpvaW4oYC5gKSxpPXRoaXMuX2luY3JlbWVudGFsUmVzdWx0cy5nZXQobik7aT8/KGk9bmV3IE1hcCx0aGlzLl9pbmNyZW1lbnRhbFJlc3VsdHMuc2V0KG4saSkpO3ZhciBhPWkuZ2V0KHIpLG89YSE9bnVsbCYmYS5raW5kPT09YHJlc3BvbnNlYD9hLnJlc3BvbnNlczpudWxsO2kuc2V0KHIse2tpbmQ6YHBsYWNlaG9sZGVyYCxwbGFjZWhvbGRlcjp0fSk7dmFyIHM7dC5raW5kPT09YHN0cmVhbWA/cz10LnBhcmVudElEOnQua2luZD09PWBkZWZlcmA/cz10LnNlbGVjdG9yLmRhdGFJRDpUKCExKTt2YXIgYz1lLnNvdXJjZS5nZXQocyksbD0oZS5maWVsZFBheWxvYWRzPz9bXSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3ZhciB0PXAoZS5kYXRhSUQsZS5maWVsZEtleSk7cmV0dXJuIGUuZGF0YUlEPT09c3x8dD09PXN9KTtjPz9UKCExKTt2YXIgdSxkLGY9dGhpcy5fc291cmNlLmdldChzKTtpZihmIT1udWxsKXt1PWcudXBkYXRlKGYucmVjb3JkLGMpO3ZhciBtPW5ldyBNYXAsaD1mdW5jdGlvbihlKXt2YXIgdD1rKGUpO20uc2V0KHQsZSl9O2YuZmllbGRQYXlsb2Fkcy5mb3JFYWNoKGgpLGwuZm9yRWFjaChoKSxkPUFycmF5LmZyb20obS52YWx1ZXMoKSl9ZWxzZSB1PWMsZD1sO2lmKHRoaXMuX3NvdXJjZS5zZXQocyx7cmVjb3JkOnUsZmllbGRQYXlsb2FkczpkfSksbyE9bnVsbCl7dmFyIF89dGhpcy5fcHJvY2Vzc0luY3JlbWVudGFsUmVzcG9uc2VzKG8pO3RoaXMuX3Byb2Nlc3NQYXlsb2FkRm9sbG93dXBzKF8pfX0sdC5fcHJvY2Vzc0luY3JlbWVudGFsUmVzcG9uc2VzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1bXTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciByPWUubGFiZWwsaT1lLnBhdGgsYT1lLnJlc3BvbnNlLG89dC5faW5jcmVtZW50YWxSZXN1bHRzLmdldChyKTtpZihvPz8obz1uZXcgTWFwLHQuX2luY3JlbWVudGFsUmVzdWx0cy5zZXQocixvKSksci5pbmRleE9mKGAkZGVmZXIkYCkhPT0tMSl7dmFyIHM9aS5tYXAoU3RyaW5nKS5qb2luKGAuYCksYz1vLmdldChzKTtpZihjPT1udWxsKXtjPXtraW5kOmByZXNwb25zZWAscmVzcG9uc2VzOltlXX0sby5zZXQocyxjKTtyZXR1cm59ZWxzZSBpZihjLmtpbmQ9PT1gcmVzcG9uc2VgKXtjLnJlc3BvbnNlcy5wdXNoKGUpO3JldHVybn12YXIgbD1jLnBsYWNlaG9sZGVyO2wua2luZCE9PWBkZWZlcmAmJlQoITEpLG4ucHVzaCh0Ll9wcm9jZXNzRGVmZXJSZXNwb25zZShyLGksbCxhKSl9ZWxzZXt2YXIgdT1pLnNsaWNlKDAsLTIpLm1hcChTdHJpbmcpLmpvaW4oYC5gKSxkPW8uZ2V0KHUpO2lmKGQ9PW51bGwpe2Q9e2tpbmQ6YHJlc3BvbnNlYCxyZXNwb25zZXM6W2VdfSxvLnNldCh1LGQpO3JldHVybn1lbHNlIGlmKGQua2luZD09PWByZXNwb25zZWApe2QucmVzcG9uc2VzLnB1c2goZSk7cmV0dXJufXZhciBmPWQucGxhY2Vob2xkZXI7Zi5raW5kIT09YHN0cmVhbWAmJlQoITEpLG4ucHVzaCh0Ll9wcm9jZXNzU3RyZWFtUmVzcG9uc2UocixpLGYsYSkpfX0pLG59LHQuX3Byb2Nlc3NEZWZlclJlc3BvbnNlPWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPW4uc2VsZWN0b3IuZGF0YUlELGE9dGhpcy5fYWN0b3JJZGVudGlmaWVyO3RoaXMuX2FjdG9ySWRlbnRpZmllcj1uLmFjdG9ySWRlbnRpZmllcj8/dGhpcy5fYWN0b3JJZGVudGlmaWVyO3ZhciBvPXRoaXMuX25vcm1hbGl6ZVJlc3BvbnNlKHIsbi5zZWxlY3RvcixuLnR5cGVOYW1lLHthY3RvcklkZW50aWZpZXI6dGhpcy5fYWN0b3JJZGVudGlmaWVyLGdldERhdGFJRDp0aGlzLl9nZXREYXRhSUQscGF0aDpuLnBhdGgsdHJlYXRNaXNzaW5nRmllbGRzQXNOdWxsOnRoaXMuX3RyZWF0TWlzc2luZ0ZpZWxkc0FzTnVsbCxzaG91bGRQcm9jZXNzQ2xpZW50Q29tcG9uZW50czp0aGlzLl9zaG91bGRQcm9jZXNzQ2xpZW50Q29tcG9uZW50c30pO3RoaXMuX2dldFB1Ymxpc2hRdWV1ZUFuZFNhdmVBY3RvcigpLmNvbW1pdFBheWxvYWQodGhpcy5fb3BlcmF0aW9uLG8pO3ZhciBzPXRoaXMuX3NvdXJjZS5nZXQoaSk7cz8/VCghMSk7dmFyIGM9cy5maWVsZFBheWxvYWRzO2lmKGMubGVuZ3RoIT09MCl7dmFyIGwsdT17ZXJyb3JzOm51bGwsZmllbGRQYXlsb2FkczpjLGluY3JlbWVudGFsUGxhY2Vob2xkZXJzOm51bGwsZm9sbG93dXBQYXlsb2FkczpudWxsLHNvdXJjZTpiLmNyZWF0ZSgpLGlzRmluYWw6KChsPXIuZXh0ZW5zaW9ucyk9PW51bGw/dm9pZCAwOmwuaXNfZmluYWwpPT09ITB9O3RoaXMuX2dldFB1Ymxpc2hRdWV1ZUFuZFNhdmVBY3RvcigpLmNvbW1pdFBheWxvYWQodGhpcy5fb3BlcmF0aW9uLHUpfXJldHVybiB0aGlzLl9hY3RvcklkZW50aWZpZXI9YSxvfSx0Ll9wcm9jZXNzU3RyZWFtUmVzcG9uc2U9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGE9bi5wYXJlbnRJRCxvPW4ubm9kZSxzPW4udmFyaWFibGVzLGM9bi5hY3RvcklkZW50aWZpZXIsbD10aGlzLl9hY3RvcklkZW50aWZpZXI7dGhpcy5fYWN0b3JJZGVudGlmaWVyPWM/P3RoaXMuX2FjdG9ySWRlbnRpZmllcjt2YXIgdT1vLnNlbGVjdGlvbnNbMF07ISh1IT1udWxsJiZ1LmtpbmQ9PT1gTGlua2VkRmllbGRgJiZ1LnBsdXJhbD09PSEwKSYmVCghMSk7dmFyIGQ9dGhpcy5fbm9ybWFsaXplU3RyZWFtSXRlbShyLGEsdSxzLHQsbi5wYXRoKSxmPWQuZmllbGRQYXlsb2FkcyxwPWQuaXRlbUlELG09ZC5pdGVtSW5kZXgsaD1kLnByZXZJRHMsZz1kLnJlbGF5UGF5bG9hZCxfPWQuc3RvcmFnZUtleTtpZih0aGlzLl9nZXRQdWJsaXNoUXVldWVBbmRTYXZlQWN0b3IoKS5jb21taXRQYXlsb2FkKHRoaXMuX29wZXJhdGlvbixnLGZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2V0KGEpO2lmKHQhPW51bGwpe3ZhciBuPXQuZ2V0TGlua2VkUmVjb3JkcyhfKTtpZihuIT1udWxsJiYhKG4ubGVuZ3RoIT09aC5sZW5ndGh8fG4uc29tZShmdW5jdGlvbihlLHQpe3JldHVybiBoW3RdIT09KGUmJmUuZ2V0RGF0YUlEKCkpfSkpKXt2YXIgcj0oMCxpLmRlZmF1bHQpKG4pO3JbbV09ZS5nZXQocCksdC5zZXRMaW5rZWRSZWNvcmRzKHIsXyl9fX0pLGYubGVuZ3RoIT09MCl7dmFyIHY9e2Vycm9yczpudWxsLGZpZWxkUGF5bG9hZHM6ZixpbmNyZW1lbnRhbFBsYWNlaG9sZGVyczpudWxsLGZvbGxvd3VwUGF5bG9hZHM6bnVsbCxzb3VyY2U6Yi5jcmVhdGUoKSxpc0ZpbmFsOiExfTt0aGlzLl9nZXRQdWJsaXNoUXVldWVBbmRTYXZlQWN0b3IoKS5jb21taXRQYXlsb2FkKHRoaXMuX29wZXJhdGlvbix2KX1yZXR1cm4gdGhpcy5fYWN0b3JJZGVudGlmaWVyPWwsZ30sdC5fbm9ybWFsaXplU3RyZWFtSXRlbT1mdW5jdGlvbihlLHQsbixyLGEsbyl7dmFyIHM9ZS5kYXRhO3R5cGVvZiBzIT1gb2JqZWN0YCYmVCghMSk7dmFyIGM9bi5hbGlhcz8/bi5uYW1lLGw9dyhuLHIpLHU9dGhpcy5fc291cmNlLmdldCh0KTt1Pz9UKCExKTt2YXIgZD11LnJlY29yZCxmPXUuZmllbGRQYXlsb2FkcyxtPWcuZ2V0TGlua2VkUmVjb3JkSURzKGQsbCk7bT8/VCghMSk7dmFyIGg9YVthLmxlbmd0aC0xXSxfPXBhcnNlSW50KGgsMTApOyEoXz09PWgmJl8+PTApJiZUKCExKTt2YXIgeT1uLmNvbmNyZXRlVHlwZT8/c1tDXTt0eXBlb2YgeSE9YHN0cmluZ2AmJlQoITEpO3ZhciBiPXRoaXMuX2dldERhdGFJRChzLHkpPz8obT09bnVsbD92b2lkIDA6bVtfXSk/P3AodCxsLF8pO3R5cGVvZiBiIT1gc3RyaW5nYCYmVCghMSk7dmFyIHg9dihuLGIsciksUz1nLmNsb25lKGQpLEU9KDAsaS5kZWZhdWx0KShtKTtyZXR1cm4gRVtfXT1iLGcuc2V0TGlua2VkUmVjb3JkSURzKFMsbCxFKSx0aGlzLl9zb3VyY2Uuc2V0KHQse3JlY29yZDpTLGZpZWxkUGF5bG9hZHM6Zn0pLHtmaWVsZFBheWxvYWRzOmYsaXRlbUlEOmIsaXRlbUluZGV4Ol8scHJldklEczptLHJlbGF5UGF5bG9hZDp0aGlzLl9ub3JtYWxpemVSZXNwb25zZShlLHgseSx7YWN0b3JJZGVudGlmaWVyOnRoaXMuX2FjdG9ySWRlbnRpZmllcixnZXREYXRhSUQ6dGhpcy5fZ2V0RGF0YUlELHBhdGg6W10uY29uY2F0KCgwLGkuZGVmYXVsdCkobyksW2MsU3RyaW5nKF8pXSksdHJlYXRNaXNzaW5nRmllbGRzQXNOdWxsOnRoaXMuX3RyZWF0TWlzc2luZ0ZpZWxkc0FzTnVsbCxzaG91bGRQcm9jZXNzQ2xpZW50Q29tcG9uZW50czp0aGlzLl9zaG91bGRQcm9jZXNzQ2xpZW50Q29tcG9uZW50c30pLHN0b3JhZ2VLZXk6bH19LHQuX3NjaGVkdWxlQXN5bmNTdG9yZVVwZGF0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7dGhpcy5fY29tcGxldGVGbnMucHVzaCh0KSx0aGlzLl9hc3luY1N0b3JlVXBkYXRlRGlzcG9zYWJsZT8/KHRoaXMuX2FzeW5jU3RvcmVVcGRhdGVEaXNwb3NhYmxlPWUoZnVuY3Rpb24oKXtuLl9hc3luY1N0b3JlVXBkYXRlRGlzcG9zYWJsZT1udWxsO3ZhciBlPW4uX3J1blB1Ymxpc2hRdWV1ZSgpO24uX3VwZGF0ZU9wZXJhdGlvblRyYWNrZXIoZSk7dmFyIHQ9KDAsci5kZWZhdWx0KShuLl9jb21wbGV0ZUZucyksaTt0cnl7Zm9yKHQucygpOyEoaT10Lm4oKSkuZG9uZTspe3ZhciBhPWkudmFsdWU7YSgpfX1jYXRjaChlKXt0LmUoZSl9ZmluYWxseXt0LmYoKX1uLl9jb21wbGV0ZUZucz1bXX0pKX0sdC5fdXBkYXRlT3BlcmF0aW9uVHJhY2tlcj1mdW5jdGlvbihlKXtlIT1udWxsJiZlLmxlbmd0aD4wJiZ0aGlzLl9vcGVyYXRpb25UcmFja2VyLnVwZGF0ZSh0aGlzLl9vcGVyYXRpb24ucmVxdWVzdCxuZXcgU2V0KGUpKX0sdC5fY29tcGxldGVPcGVyYXRpb25UcmFja2VyPWZ1bmN0aW9uKCl7dGhpcy5fb3BlcmF0aW9uVHJhY2tlci5jb21wbGV0ZSh0aGlzLl9vcGVyYXRpb24ucmVxdWVzdCl9LHQuX2dldFB1Ymxpc2hRdWV1ZUFuZFNhdmVBY3Rvcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZWVuQWN0b3JzLmFkZCh0aGlzLl9hY3RvcklkZW50aWZpZXIpLHRoaXMuX2dldFB1Ymxpc2hRdWV1ZSh0aGlzLl9hY3RvcklkZW50aWZpZXIpfSx0Ll9nZXRBY3RvcnNUb1Zpc2l0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NlZW5BY3RvcnMuc2l6ZT09PTA/bmV3IFNldChbdGhpcy5fYWN0b3JJZGVudGlmaWVyXSk6dGhpcy5fc2VlbkFjdG9yc30sdC5fcnVuUHVibGlzaFF1ZXVlPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBTZXQsbj0oMCxyLmRlZmF1bHQpKHRoaXMuX2dldEFjdG9yc1RvVmlzaXQoKSksaTt0cnl7Zm9yKG4ucygpOyEoaT1uLm4oKSkuZG9uZTspe3ZhciBhPWkudmFsdWU7dGhpcy5fZ2V0UHVibGlzaFF1ZXVlKGEpLnJ1bihlKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmFkZChlKX0pfX1jYXRjaChlKXtuLmUoZSl9ZmluYWxseXtuLmYoKX1yZXR1cm4gQXJyYXkuZnJvbSh0KX0sdC5fcmV0YWluRGF0YT1mdW5jdGlvbigpe3ZhciBlPSgwLHIuZGVmYXVsdCkodGhpcy5fZ2V0QWN0b3JzVG9WaXNpdCgpKSx0O3RyeXtmb3IoZS5zKCk7ISh0PWUubigpKS5kb25lOyl7dmFyIG49dC52YWx1ZTt0aGlzLl9yZXRhaW5EaXNwb3NhYmxlcy5oYXMobil8fHRoaXMuX3JldGFpbkRpc3Bvc2FibGVzLnNldChuLHRoaXMuX2dldFN0b3JlKG4pLnJldGFpbih0aGlzLl9vcGVyYXRpb24pKX19Y2F0Y2godCl7ZS5lKHQpfWZpbmFsbHl7ZS5mKCl9fSx0Ll9kaXNwb3NlUmV0YWluZWREYXRhPWZ1bmN0aW9uKCl7dmFyIGU9KDAsci5kZWZhdWx0KSh0aGlzLl9yZXRhaW5EaXNwb3NhYmxlcy52YWx1ZXMoKSksdDt0cnl7Zm9yKGUucygpOyEodD1lLm4oKSkuZG9uZTspdC52YWx1ZS5kaXNwb3NlKCl9Y2F0Y2godCl7ZS5lKHQpfWZpbmFsbHl7ZS5mKCl9dGhpcy5fcmV0YWluRGlzcG9zYWJsZXMuY2xlYXIoKX0sdC5fZXhwZWN0T3BlcmF0aW9uTG9hZGVyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fb3BlcmF0aW9uTG9hZGVyO3JldHVybiFlJiZUKCExKSxlfSxlfSgpO2Z1bmN0aW9uIE8oZSl7dmFyIHQ9W10sbj1bXTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGUucGF0aCE9bnVsbHx8ZS5sYWJlbCE9bnVsbCl7dmFyIHI9ZS5sYWJlbCxpPWUucGF0aDsocj09bnVsbHx8aT09bnVsbCkmJlQoITEpLG4ucHVzaCh7bGFiZWw6cixwYXRoOmkscmVzcG9uc2U6ZX0pfWVsc2UgdC5wdXNoKGUpfSksW3Qsbl19ZnVuY3Rpb24gayhlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodShlKSk/P2BgfWZ1bmN0aW9uIEEoZSl7dmFyIHQ9ZS5pbmNyZW1lbnRhbFBsYWNlaG9sZGVyczt0IT1udWxsJiZ0Lmxlbmd0aCE9PTAmJlQoITEpfXQuZXhwb3J0cz17ZXhlY3V0ZTpFfX0pKSxocD1zKCgoZSx0KT0+e3ZhciBuPUpmKCkscj1ZZigpLkVYSVNURU5ULGk9RmQoKTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7dGhpcy5fX3NvdXJjZXM9W3QsZV0sdGhpcy5fYmFzZT1lLHRoaXMuX3Npbms9dH12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC51bnN0YWJsZV9nZXRSYXdSZWNvcmRXaXRoQ2hhbmdlcz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9iYXNlLmdldChlKSxyPXRoaXMuX3NpbmsuZ2V0KGUpO3JldHVybiByPT09dm9pZCAwP3Q9PW51bGw/dDpuLmNsb25lKHQpOnI9PT1udWxsP251bGw6dD09bnVsbD9uLmNsb25lKHIpOm4udXBkYXRlKHQscil9LHQuX2dldFNpbmtSZWNvcmQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fc2luay5nZXQoZSk7aWYoIXQpe3ZhciByPXRoaXMuX2Jhc2UuZ2V0KGUpOyFyJiZpKCExKSx0PW4uY3JlYXRlKGUsbi5nZXRUeXBlKHIpKSx0aGlzLl9zaW5rLnNldChlLHQpfXJldHVybiB0fSx0LmNvcHlGaWVsZHM9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl9zaW5rLmdldChlKSxhPXRoaXMuX2Jhc2UuZ2V0KGUpOyEocnx8YSkmJmkoITEpO3ZhciBvPXRoaXMuX2dldFNpbmtSZWNvcmQodCk7YSYmbi5jb3B5RmllbGRzKGEsbyksciYmbi5jb3B5RmllbGRzKHIsbyl9LHQuY29weUZpZWxkc0Zyb21SZWNvcmQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl9nZXRTaW5rUmVjb3JkKHQpO24uY29weUZpZWxkcyhlLHIpfSx0LmNyZWF0ZT1mdW5jdGlvbihlLHQpeyEodGhpcy5fYmFzZS5nZXRTdGF0dXMoZSkhPT1yJiZ0aGlzLl9zaW5rLmdldFN0YXR1cyhlKSE9PXIpJiZpKCExKTt2YXIgYT1uLmNyZWF0ZShlLHQpO3RoaXMuX3Npbmsuc2V0KGUsYSl9LHQuZGVsZXRlPWZ1bmN0aW9uKGUpe3RoaXMuX3NpbmsuZGVsZXRlKGUpfSx0LmdldFN0YXR1cz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fc2luay5oYXMoZSk/dGhpcy5fc2luay5nZXRTdGF0dXMoZSk6dGhpcy5fYmFzZS5nZXRTdGF0dXMoZSl9LHQuZ2V0VHlwZT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PHRoaXMuX19zb3VyY2VzLmxlbmd0aDt0Kyspe3ZhciByPXRoaXMuX19zb3VyY2VzW3RdLmdldChlKTtpZihyKXJldHVybiBuLmdldFR5cGUocik7aWYocj09PW51bGwpcmV0dXJuIG51bGx9fSx0LmdldFZhbHVlPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTA7cjx0aGlzLl9fc291cmNlcy5sZW5ndGg7cisrKXt2YXIgaT10aGlzLl9fc291cmNlc1tyXS5nZXQoZSk7aWYoaSl7dmFyIGE9bi5nZXRWYWx1ZShpLHQpO2lmKGEhPT12b2lkIDApcmV0dXJuIGF9ZWxzZSBpZihpPT09bnVsbClyZXR1cm4gbnVsbH19LHQuc2V0VmFsdWU9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXRoaXMuX2dldFNpbmtSZWNvcmQoZSk7bi5zZXRWYWx1ZShpLHQscil9LHQuZ2V0RXJyb3JzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTA7cjx0aGlzLl9fc291cmNlcy5sZW5ndGg7cisrKXt2YXIgaT10aGlzLl9fc291cmNlc1tyXS5nZXQoZSk7aWYoaSl7dmFyIGE9bi5nZXRFcnJvcnMoaSx0KTtpZihhIT09dm9pZCAwKXJldHVybiBhfWVsc2UgaWYoaT09PW51bGwpcmV0dXJuIG51bGx9fSx0LnNldEVycm9ycz1mdW5jdGlvbihlLHQscil7dmFyIGk9dGhpcy5fZ2V0U2lua1JlY29yZChlKTtuLnNldEVycm9ycyhpLHQscil9LHQuZ2V0TGlua2VkUmVjb3JkSUQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MDtyPHRoaXMuX19zb3VyY2VzLmxlbmd0aDtyKyspe3ZhciBpPXRoaXMuX19zb3VyY2VzW3JdLmdldChlKTtpZihpKXt2YXIgYT1uLmdldExpbmtlZFJlY29yZElEKGksdCk7aWYoYSE9PXZvaWQgMClyZXR1cm4gYX1lbHNlIGlmKGk9PT1udWxsKXJldHVybiBudWxsfX0sdC5zZXRMaW5rZWRSZWNvcmRJRD1mdW5jdGlvbihlLHQscil7dmFyIGk9dGhpcy5fZ2V0U2lua1JlY29yZChlKTtuLnNldExpbmtlZFJlY29yZElEKGksdCxyKX0sdC5nZXRMaW5rZWRSZWNvcmRJRHM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MDtyPHRoaXMuX19zb3VyY2VzLmxlbmd0aDtyKyspe3ZhciBpPXRoaXMuX19zb3VyY2VzW3JdLmdldChlKTtpZihpKXt2YXIgYT1uLmdldExpbmtlZFJlY29yZElEcyhpLHQpO2lmKGEhPT12b2lkIDApcmV0dXJuIGF9ZWxzZSBpZihpPT09bnVsbClyZXR1cm4gbnVsbH19LHQuc2V0TGlua2VkUmVjb3JkSURzPWZ1bmN0aW9uKGUsdCxyKXt2YXIgaT10aGlzLl9nZXRTaW5rUmVjb3JkKGUpO24uc2V0TGlua2VkUmVjb3JkSURzKGksdCxyKX0sZX0oKX0pKSxncD1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSGQoKSksaT1uZigpLmdldEFyZ3VtZW50VmFsdWVzLGE9W2BpZGAsYF9faWRgLGBfX3R5cGVuYW1lYCxganNgXTtmdW5jdGlvbiBvKGUsdCxuLHIsaSl7dmFyIGE9e307cmV0dXJuIHMoYSxlLHQsbixyLGkpLGF9ZnVuY3Rpb24gcyhlLHQsbixvLGYscCl7dmFyIGg9KDAsci5kZWZhdWx0KShvKSxnO3RyeXt2YXIgXz1mdW5jdGlvbigpe3ZhciByPWcudmFsdWU7c3dpdGNoKHIua2luZCl7Y2FzZWBMaW5rZWRGaWVsZGA6ci5wbHVyYWw/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsKHY9ci5hbGlhcyk/P3IubmFtZSx7Z2V0OnUocixuLHQsZixwKSxzZXQ6YyhyLG4sdCxmKX0pOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCh5PXIuYWxpYXMpPz9yLm5hbWUse2dldDpkKHIsbix0LGYscCksc2V0OmwocixuLHQsZil9KTticmVhaztjYXNlYFNjYWxhckZpZWxkYDp2YXIgbz1yLmFsaWFzPz9yLm5hbWU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbyx7Z2V0OmZ1bmN0aW9uKCl7dmFyIGU9aShyLmFyZ3M/P1tdLG4pLGE9dC5nZXRWYWx1ZShyLm5hbWUsZSk7cmV0dXJuIGE/PyhhPW0ocixlLHQsZixwKSksYX0sc2V0OmEuaW5jbHVkZXMoci5uYW1lKT92b2lkIDA6ZnVuY3Rpb24oZSl7dmFyIGE9aShyLmFyZ3M/P1tdLG4pO3Quc2V0VmFsdWVfX1VOU0FGRShlLHIubmFtZSxhKX19KTticmVhaztjYXNlYElubGluZUZyYWdtZW50YDp0LmdldFR5cGUoKT09PXIudHlwZSYmcyhlLHQsbixyLnNlbGVjdGlvbnMsZixwKTticmVhaztjYXNlYENsaWVudEV4dGVuc2lvbmA6cyhlLHQsbixyLnNlbGVjdGlvbnMsZixwKTticmVhaztjYXNlYEZyYWdtZW50U3ByZWFkYDpicmVhaztjYXNlYENvbmRpdGlvbmA6Y2FzZWBBY3RvckNoYW5nZWA6Y2FzZWBJbmxpbmVEYXRhRnJhZ21lbnRTcHJlYWRgOmNhc2VgQWxpYXNlZElubGluZUZyYWdtZW50U3ByZWFkYDpjYXNlYENsaWVudEVkZ2VUb0NsaWVudE9iamVjdGA6Y2FzZWBDbGllbnRFZGdlVG9TZXJ2ZXJPYmplY3RgOmNhc2VgRGVmZXJgOmNhc2VgTW9kdWxlSW1wb3J0YDpjYXNlYFJlbGF5TGl2ZVJlc29sdmVyYDpjYXNlYFJlcXVpcmVkRmllbGRgOmNhc2VgQ2F0Y2hGaWVsZGA6Y2FzZWBTdHJlYW1gOmNhc2VgUmVsYXlSZXNvbHZlcmA6dGhyb3cgRXJyb3IoYEVuY291bnRlcmVkIGFuIHVuZXhwZWN0ZWQgUmVhZGVyU2VsZWN0aW9uIHZhcmlhbnQgaW4gUmVsYXlSZWNvcmRTb3VyY2VQcm94eS4gVGhpcyBpbmRpY2F0ZXMgYSBidWcgaW4gUmVsYXkuYCk7ZGVmYXVsdDp0aHJvdyByLmtpbmQsRXJyb3IoYEVuY291bnRlcmVkIGFuIHVuZXhwZWN0ZWQgUmVhZGVyU2VsZWN0aW9uIHZhcmlhbnQgaW4gUmVsYXlSZWNvcmRTb3VyY2VQcm94eS4gVGhpcyBpbmRpY2F0ZXMgYSBidWcgaW4gUmVsYXkuYCl9fTtmb3IoaC5zKCk7IShnPWgubigpKS5kb25lOyl7dmFyIHYseTtfKCl9fWNhdGNoKGUpe2guZShlKX1maW5hbGx5e2guZigpfX1mdW5jdGlvbiBjKGUsdCxuLHIpe3JldHVybiBmdW5jdGlvbihhKXt2YXIgbz1pKGUuYXJncz8/W10sdCk7aWYoYT09bnVsbCl0aHJvdyBFcnJvcihgRG8gbm90IGFzc2lnbiBudWxsIHRvIHBsdXJhbCBsaW5rZWQgZmllbGRzOyBhc3NpZ24gYW4gZW1wdHkgYXJyYXkgaW5zdGVhZC5gKTt2YXIgcz1hLm1hcChmdW5jdGlvbihlKXtpZihlPT1udWxsKXRocm93IEVycm9yKGBXaGVuIGFzc2lnbmluZyBhbiBhcnJheSBvZiBpdGVtcywgbm9uZSBvZiB0aGUgaXRlbXMgc2hvdWxkIGJlIG51bGwgb3IgdW5kZWZpbmVkLmApO3ZhciB0PWUuX19pZDtpZih0PT1udWxsKXRocm93IEVycm9yKGBUaGUgX19pZCBmaWVsZCBtdXN0IGJlIHByZXNlbnQgb24gZWFjaCBpdGVtIHBhc3NlZCB0byB0aGUgc2V0dGVyLiBUaGlzIGluZGljYXRlcyBhIGJ1ZyBpbiBSZWxheS5gKTt2YXIgbj1yLmdldCh0KTtpZihuPT1udWxsKXRocm93IEVycm9yKGBEaWQgbm90IGZpbmQgaXRlbSB3aXRoIGRhdGEgaWQgJHt0fSBpbiB0aGUgc3RvcmUuYCk7cmV0dXJuIG59KTtuLnNldExpbmtlZFJlY29yZHMocyxlLm5hbWUsbyl9fWZ1bmN0aW9uIGwoZSx0LG4scil7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBvPWkoZS5hcmdzPz9bXSx0KTtpZihhPT1udWxsKW4uc2V0VmFsdWUoYSxlLm5hbWUsbyk7ZWxzZXt2YXIgcz1hLl9faWQ7aWYocz09bnVsbCl0aHJvdyBFcnJvcihgVGhlIF9faWQgZmllbGQgbXVzdCBiZSBwcmVzZW50IG9uIHRoZSBhcmd1bWVudC4gVGhpcyBpbmRpY2F0ZXMgYSBidWcgaW4gUmVsYXkuYCk7dmFyIGM9ci5nZXQocyk7aWYoYz09bnVsbCl0aHJvdyBFcnJvcihgRGlkIG5vdCBmaW5kIGl0ZW0gd2l0aCBkYXRhIGlkICR7c30gaW4gdGhlIHN0b3JlLmApO24uc2V0TGlua2VkUmVjb3JkKGMsZS5uYW1lLG8pfX19ZnVuY3Rpb24gdShlLHQsbixyLGEpe3JldHVybiBmdW5jdGlvbigpe3ZhciBvPWkoZS5hcmdzPz9bXSx0KSxjPW4uZ2V0TGlua2VkUmVjb3JkcyhlLm5hbWUsbyk7cmV0dXJuIGM9PT12b2lkIDAmJihjPXAoZSxvLG4scixhKSksYz09bnVsbD9jOmMubWFwKGZ1bmN0aW9uKG4pe2lmKG4hPW51bGwpe3ZhciBpPXt9O3JldHVybiBzKGksbix0LGUuc2VsZWN0aW9ucyxyLGEpLGl9ZWxzZSByZXR1cm4gbn0pfX1mdW5jdGlvbiBkKGUsdCxuLHIsYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89aShlLmFyZ3M/P1tdLHQpLGM9bi5nZXRMaW5rZWRSZWNvcmQoZS5uYW1lLG8pO2lmKGM9PT12b2lkIDAmJihjPWYoZSxvLG4scixhKSksYyE9bnVsbCl7dmFyIGw9e307cmV0dXJuIHMobCxjLHQsZS5zZWxlY3Rpb25zLHIsYSksbH1lbHNlIHJldHVybiBjfX1mdW5jdGlvbiBmKGUsdCxuLGksYSl7dmFyIG89KDAsci5kZWZhdWx0KShhKSxzO3RyeXtmb3Ioby5zKCk7IShzPW8ubigpKS5kb25lOyl7dmFyIGM9cy52YWx1ZTtpZihjLmtpbmQ9PT1gbGlua2VkYCl7dmFyIGw9Yy5oYW5kbGUoZSxuLHQsaSk7aWYobCE9bnVsbClyZXR1cm4gaS5nZXQobCl9fX1jYXRjaChlKXtvLmUoZSl9ZmluYWxseXtvLmYoKX19ZnVuY3Rpb24gcChlLHQsbixpLGEpe3ZhciBvPSgwLHIuZGVmYXVsdCkoYSksczt0cnl7Zm9yKG8ucygpOyEocz1vLm4oKSkuZG9uZTspe3ZhciBjPXMudmFsdWU7aWYoYy5raW5kPT09YHBsdXJhbExpbmtlZGApe3ZhciBsPWMuaGFuZGxlKGUsbix0LGkpO2lmKGwhPW51bGwpcmV0dXJuIGwubWFwKGZ1bmN0aW9uKGUpe2lmKGUhPW51bGwpcmV0dXJuIGkuZ2V0KGUpfSl9fX1jYXRjaChlKXtvLmUoZSl9ZmluYWxseXtvLmYoKX19ZnVuY3Rpb24gbShlLHQsbixpLGEpe3ZhciBvPSgwLHIuZGVmYXVsdCkoYSksczt0cnl7Zm9yKG8ucygpOyEocz1vLm4oKSkuZG9uZTspe3ZhciBjPXMudmFsdWU7aWYoYy5raW5kPT09YHNjYWxhcmApe3ZhciBsPWMuaGFuZGxlKGUsbix0LGkpO2lmKGwhPT12b2lkIDApcmV0dXJuIGx9fX1jYXRjaChlKXtvLmUoZSl9ZmluYWxseXtvLmYoKX19dC5leHBvcnRzPXtjcmVhdGVVcGRhdGFibGVQcm94eTpvfX0pKSxfcD1zKCgoZSx0KT0+e3ZhciBuPVJkKCkuZ2V0RnJhZ21lbnQscj1vZigpLmdldFZhcmlhYmxlc0Zyb21GcmFnbWVudCxpPW5mKCkuSURfS0VZLGE9Z3AoKS5jcmVhdGVVcGRhdGFibGVQcm94eSxvPUZkKCk7ZnVuY3Rpb24gcyhlLHQscyxjKXt2YXIgbD1uKGUpLHU9cihsLHQpLGQ9dFtpXSxmPXMuZ2V0KGQpO3JldHVybiBmPz9vKCExKSx7dXBkYXRhYmxlRGF0YTphKGYsdSxsLnNlbGVjdGlvbnMscyxjKX19dC5leHBvcnRzPXtyZWFkVXBkYXRhYmxlRnJhZ21lbnQ6c319KSksdnA9cygoKGUsdCk9Pnt2YXIgbj1SZCgpLmdldFVwZGF0YWJsZVF1ZXJ5LHI9Z3AoKS5jcmVhdGVVcGRhdGFibGVQcm94eTtmdW5jdGlvbiBpKGUsdCxpLGEpe3ZhciBvPW4oZSk7cmV0dXJue3VwZGF0YWJsZURhdGE6cihpLmdldFJvb3QoKSx0LG8uZnJhZ21lbnQuc2VsZWN0aW9ucyxpLGEpfX10LmV4cG9ydHM9e3JlYWRVcGRhdGFibGVRdWVyeTppfX0pKSx5cD1zKCgoZSx0KT0+e3ZhciBuPWJmKCkuZ2VuZXJhdGVDbGllbnRJRCxyPW5mKCkuZ2V0U3RhYmxlU3RvcmFnZUtleSxpPUZkKCksYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4pe3RoaXMuX2RhdGFJRD1uLHRoaXMuX211dGF0b3I9dCx0aGlzLl9zb3VyY2U9ZX12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5jb3B5RmllbGRzRnJvbT1mdW5jdGlvbihlKXt0aGlzLl9tdXRhdG9yLmNvcHlGaWVsZHMoZS5nZXREYXRhSUQoKSx0aGlzLl9kYXRhSUQpfSx0LmdldERhdGFJRD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kYXRhSUR9LHQuZ2V0VHlwZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX211dGF0b3IuZ2V0VHlwZSh0aGlzLl9kYXRhSUQpO3JldHVybiBlPz9pKCExKSxlfSx0LmdldFZhbHVlPWZ1bmN0aW9uKGUsdCl7dmFyIG49cihlLHQpO3JldHVybiB0aGlzLl9tdXRhdG9yLmdldFZhbHVlKHRoaXMuX2RhdGFJRCxuKX0sdC5zZXRWYWx1ZT1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4hbyhlKSYmaSghMSksdGhpcy5zZXRWYWx1ZV9fVU5TQUZFKGUsdCxuLHIpfSx0LmdldEVycm9ycz1mdW5jdGlvbihlLHQpe3ZhciBuPXIoZSx0KTtyZXR1cm4gdGhpcy5fbXV0YXRvci5nZXRFcnJvcnModGhpcy5fZGF0YUlELG4pfSx0LnNldFZhbHVlX19VTlNBRkU9ZnVuY3Rpb24oZSx0LG4saSl7dmFyIGE9cih0LG4pO3JldHVybiB0aGlzLl9tdXRhdG9yLnNldFZhbHVlKHRoaXMuX2RhdGFJRCxhLGUpLGkhPW51bGwmJihpLmxlbmd0aD09PTA/dGhpcy5fbXV0YXRvci5zZXRFcnJvcnModGhpcy5fZGF0YUlELGEpOnRoaXMuX211dGF0b3Iuc2V0RXJyb3JzKHRoaXMuX2RhdGFJRCxhLGkpKSx0aGlzfSx0LmdldExpbmtlZFJlY29yZD1mdW5jdGlvbihlLHQpe3ZhciBuPXIoZSx0KSxpPXRoaXMuX211dGF0b3IuZ2V0TGlua2VkUmVjb3JkSUQodGhpcy5fZGF0YUlELG4pO3JldHVybiBpPT1udWxsP2k6dGhpcy5fc291cmNlLmdldChpKX0sdC5zZXRMaW5rZWRSZWNvcmQ9ZnVuY3Rpb24odCxuLGEpeyEodCBpbnN0YW5jZW9mIGUpJiZpKCExKTt2YXIgbz1yKG4sYSkscz10LmdldERhdGFJRCgpO3JldHVybiB0aGlzLl9tdXRhdG9yLnNldExpbmtlZFJlY29yZElEKHRoaXMuX2RhdGFJRCxvLHMpLHRoaXN9LHQuZ2V0T3JDcmVhdGVMaW5rZWRSZWNvcmQ9ZnVuY3Rpb24oZSx0LGkpe3ZhciBhPXRoaXMuZ2V0TGlua2VkUmVjb3JkKGUsaSk7aWYoIWEpe3ZhciBvPXIoZSxpKSxzPW4odGhpcy5nZXREYXRhSUQoKSxvKTthPXRoaXMuX3NvdXJjZS5nZXQocyk/P3RoaXMuX3NvdXJjZS5jcmVhdGUocyx0KSx0aGlzLnNldExpbmtlZFJlY29yZChhLGUsaSl9cmV0dXJuIGF9LHQuZ2V0TGlua2VkUmVjb3Jkcz1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT1yKGUsdCksYT10aGlzLl9tdXRhdG9yLmdldExpbmtlZFJlY29yZElEcyh0aGlzLl9kYXRhSUQsaSk7cmV0dXJuIGE9PW51bGw/YTphLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZT09bnVsbD9lOm4uX3NvdXJjZS5nZXQoZSl9KX0sdC5zZXRMaW5rZWRSZWNvcmRzPWZ1bmN0aW9uKGUsdCxuKXshQXJyYXkuaXNBcnJheShlKSYmaSghMSk7dmFyIGE9cih0LG4pLG89ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuZ2V0RGF0YUlEKCl9KTtyZXR1cm4gdGhpcy5fbXV0YXRvci5zZXRMaW5rZWRSZWNvcmRJRHModGhpcy5fZGF0YUlELGEsbyksdGhpc30sdC5pbnZhbGlkYXRlUmVjb3JkPWZ1bmN0aW9uKCl7dGhpcy5fc291cmNlLm1hcmtJREZvckludmFsaWRhdGlvbih0aGlzLl9kYXRhSUQpfSxlfSgpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIHR5cGVvZiBlIT1gb2JqZWN0YHx8IWV8fEFycmF5LmlzQXJyYXkoZSkmJmUuZXZlcnkobyl9dC5leHBvcnRzPWF9KSksYnA9cygoKGUsdCk9Pnt2YXIgbj1KZigpLHI9WWYoKSxpPXIuRVhJU1RFTlQsYT1yLk5PTkVYSVNURU5ULG89bmYoKSxzPW8uUk9PVF9JRCxjPW8uUk9PVF9UWVBFLGw9X3AoKS5yZWFkVXBkYXRhYmxlRnJhZ21lbnQsdT12cCgpLnJlYWRVcGRhdGFibGVRdWVyeSxkPXlwKCksZj1GZCgpO3QuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4scil7dGhpcy5fX211dGF0b3I9ZSx0aGlzLl9oYW5kbGVyUHJvdmlkZXI9bnx8bnVsbCx0aGlzLl9wcm94aWVzPXt9LHRoaXMuX2dldERhdGFJRD10LHRoaXMuX2ludmFsaWRhdGVkU3RvcmU9ITEsdGhpcy5faWRzTWFya2VkRm9ySW52YWxpZGF0aW9uPW5ldyBTZXQsdGhpcy5fbWlzc2luZ0ZpZWxkSGFuZGxlcnM9cn12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5wdWJsaXNoU291cmNlPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcztlLmdldFJlY29yZElEcygpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG89ZS5nZXRTdGF0dXModCk7aWYobz09PWkpe3ZhciBzPWUuZ2V0KHQpO3MmJihyLl9fbXV0YXRvci5nZXRTdGF0dXModCkhPT1pJiZyLmNyZWF0ZSh0LG4uZ2V0VHlwZShzKSksci5fX211dGF0b3IuY29weUZpZWxkc0Zyb21SZWNvcmQocyx0KSl9ZWxzZSBvPT09YSYmci5kZWxldGUodCl9KSx0JiZ0Lmxlbmd0aCYmdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXIuX2hhbmRsZXJQcm92aWRlciYmci5faGFuZGxlclByb3ZpZGVyKGUuaGFuZGxlKTshdCYmZighMSksdC51cGRhdGUocixlKX0pfSx0LmNyZWF0ZT1mdW5jdGlvbihlLHQpe3RoaXMuX19tdXRhdG9yLmNyZWF0ZShlLHQpLGRlbGV0ZSB0aGlzLl9wcm94aWVzW2VdO3ZhciBuPXRoaXMuZ2V0KGUpO3JldHVybiFuJiZmKCExKSxufSx0LmRlbGV0ZT1mdW5jdGlvbihlKXtlPT09cyYmZighMSksZGVsZXRlIHRoaXMuX3Byb3hpZXNbZV0sdGhpcy5fX211dGF0b3IuZGVsZXRlKGUpfSx0LmdldD1mdW5jdGlvbihlKXtpZighdGhpcy5fcHJveGllcy5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIHQ9dGhpcy5fX211dGF0b3IuZ2V0U3RhdHVzKGUpO3Q9PT1pP3RoaXMuX3Byb3hpZXNbZV09bmV3IGQodGhpcyx0aGlzLl9fbXV0YXRvcixlKTp0aGlzLl9wcm94aWVzW2VdPXQ9PT1hP251bGw6dm9pZCAwfXJldHVybiB0aGlzLl9wcm94aWVzW2VdfSx0LmdldFJvb3Q9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdldChzKTtyZXR1cm4gZXx8KGU9dGhpcy5jcmVhdGUocyxjKSksIShlJiZlLmdldFR5cGUoKT09PWMpJiZmKCExKSxlfSx0LmludmFsaWRhdGVTdG9yZT1mdW5jdGlvbigpe3RoaXMuX2ludmFsaWRhdGVkU3RvcmU9ITB9LHQuaXNTdG9yZU1hcmtlZEZvckludmFsaWRhdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pbnZhbGlkYXRlZFN0b3JlfSx0Lm1hcmtJREZvckludmFsaWRhdGlvbj1mdW5jdGlvbihlKXt0aGlzLl9pZHNNYXJrZWRGb3JJbnZhbGlkYXRpb24uYWRkKGUpfSx0LmdldElEc01hcmtlZEZvckludmFsaWRhdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pZHNNYXJrZWRGb3JJbnZhbGlkYXRpb259LHQucmVhZFVwZGF0YWJsZVF1ZXJ5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHUoZSx0LHRoaXMsdGhpcy5fbWlzc2luZ0ZpZWxkSGFuZGxlcnMpfSx0LnJlYWRVcGRhdGFibGVGcmFnbWVudD1mdW5jdGlvbihlLHQpe3JldHVybiBsKGUsdCx0aGlzLHRoaXMuX21pc3NpbmdGaWVsZEhhbmRsZXJzKX0sZX0oKX0pKSx4cD1zKCgoZSx0KT0+e3ZhciBuPW5mKCkscj1uLlJPT1RfVFlQRSxpPW4uZ2V0U3RvcmFnZUtleSxhPV9wKCkucmVhZFVwZGF0YWJsZUZyYWdtZW50LG89dnAoKS5yZWFkVXBkYXRhYmxlUXVlcnkscz1GZCgpO3QuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4scil7dGhpcy5fX211dGF0b3I9ZSx0aGlzLl9fcmVjb3JkU291cmNlPXQsdGhpcy5fcmVhZFNlbGVjdG9yPW4sdGhpcy5fbWlzc2luZ0ZpZWxkSGFuZGxlcnM9cn12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5jcmVhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fX3JlY29yZFNvdXJjZS5jcmVhdGUoZSx0KX0sdC5kZWxldGU9ZnVuY3Rpb24oZSl7dGhpcy5fX3JlY29yZFNvdXJjZS5kZWxldGUoZSl9LHQuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9fcmVjb3JkU291cmNlLmdldChlKX0sdC5nZXRSb290PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19yZWNvcmRTb3VyY2UuZ2V0Um9vdCgpfSx0LmdldE9wZXJhdGlvblJvb3Q9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fcmVjb3JkU291cmNlLmdldCh0aGlzLl9yZWFkU2VsZWN0b3IuZGF0YUlEKTtyZXR1cm4gZXx8KGU9dGhpcy5fX3JlY29yZFNvdXJjZS5jcmVhdGUodGhpcy5fcmVhZFNlbGVjdG9yLmRhdGFJRCxyKSksZX0sdC5fZ2V0Um9vdEZpZWxkPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLm5vZGUuc2VsZWN0aW9ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmtpbmQ9PT1gTGlua2VkRmllbGRgJiZlLm5hbWU9PT10fHxlLmtpbmQ9PT1gUmVxdWlyZWRGaWVsZGAmJmUuZmllbGQubmFtZT09PXR9KTtyZXR1cm4gciYmci5raW5kPT09YFJlcXVpcmVkRmllbGRgJiYocj1yLmZpZWxkKSwhKHImJnIua2luZD09PWBMaW5rZWRGaWVsZGApJiZzKCExKSxyLnBsdXJhbCE9PW4mJnMoITEpLHJ9LHQuZ2V0Um9vdEZpZWxkPWZ1bmN0aW9uKGUpe3ZhciB0PWkodGhpcy5fZ2V0Um9vdEZpZWxkKHRoaXMuX3JlYWRTZWxlY3RvcixlLCExKSx0aGlzLl9yZWFkU2VsZWN0b3IudmFyaWFibGVzKTtyZXR1cm4gdGhpcy5nZXRPcGVyYXRpb25Sb290KCkuZ2V0TGlua2VkUmVjb3JkKHQpfSx0LmdldFBsdXJhbFJvb3RGaWVsZD1mdW5jdGlvbihlKXt2YXIgdD1pKHRoaXMuX2dldFJvb3RGaWVsZCh0aGlzLl9yZWFkU2VsZWN0b3IsZSwhMCksdGhpcy5fcmVhZFNlbGVjdG9yLnZhcmlhYmxlcyk7cmV0dXJuIHRoaXMuZ2V0T3BlcmF0aW9uUm9vdCgpLmdldExpbmtlZFJlY29yZHModCl9LHQuaW52YWxpZGF0ZVN0b3JlPWZ1bmN0aW9uKCl7dGhpcy5fX3JlY29yZFNvdXJjZS5pbnZhbGlkYXRlU3RvcmUoKX0sdC5yZWFkVXBkYXRhYmxlUXVlcnk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbyhlLHQsdGhpcyx0aGlzLl9taXNzaW5nRmllbGRIYW5kbGVycyl9LHQucmVhZFVwZGF0YWJsZUZyYWdtZW50PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGEoZSx0LHRoaXMsdGhpcy5fbWlzc2luZ0ZpZWxkSGFuZGxlcnMpfSxlfSgpfSkpLFNwPXMoKChlLHQpPT57dmFyIG49UGQoKS5SRUxBWV9MSVZFX1JFU09MVkVSLHI9RmQoKTt0LmV4cG9ydHM9e05vb3BSZXNvbHZlckNhY2hlOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe312YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5yZWFkRnJvbUNhY2hlT3JFdmFsdWF0ZT1mdW5jdGlvbihlLHQsaSxhLG8pe3Qua2luZD09PW4mJnIoITEpO3ZhciBzPWEoKSxjPXMucmVzb2x2ZXJSZXN1bHQsbD1zLnNuYXBzaG90O3JldHVybltjLHZvaWQgMCxzLmVycm9yLGwsdm9pZCAwLHZvaWQgMF19LHQuaW52YWxpZGF0ZURhdGFJRHM9ZnVuY3Rpb24oZSl7fSx0LmVuc3VyZUNsaWVudFJlY29yZD1mdW5jdGlvbihlLHQpe3IoITEpfSx0Lm5vdGlmeVVwZGF0ZWRTdWJzY3JpYmVycz1mdW5jdGlvbihlKXt9LGV9KCl9fSkpLENwPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihKZCgpKSxpPW4ocWQoKSksYT1uKHFmKCkpLG89bihIZCgpKSxzPW4oUWQoKSksYz1bYG1lc3NhZ2VgXSxsPUtmKCkuaXNTdXNwZW5zZVNlbnRpbmVsLHU9cmYoKSxkPUpmKCksZj1uZigpLHA9Zi5DTElFTlRfRURHRV9UUkFWRVJTQUxfUEFUSCxtPWYuRlJBR01FTlRfT1dORVJfS0VZLGg9Zi5GUkFHTUVOVF9QUk9QX05BTUVfS0VZLGc9Zi5GUkFHTUVOVFNfS0VZLF89Zi5JRF9LRVksdj1mLk1PRFVMRV9DT01QT05FTlRfS0VZLHk9Zi5ST09UX0lELGI9Zi5nZXRBcmd1bWVudFZhbHVlcyx4PWYuZ2V0TW9kdWxlQ29tcG9uZW50S2V5LFM9Zi5nZXRTdG9yYWdlS2V5LEM9U3AoKS5Ob29wUmVzb2x2ZXJDYWNoZSx3PXNmKCksVD13LlJFU09MVkVSX0ZSQUdNRU5UX0VSUk9SRURfU0VOVElORUwsRT13LndpdGhSZXNvbHZlckNvbnRleHQsRD1lcCgpLmdlbmVyYXRlVHlwZUlELE89RmQoKTtmdW5jdGlvbiBrKGUsdCxuLHIpe3JldHVybiBuZXcgQShlLHQsbj8/bmV3IEMscikucmVhZCgpfXZhciBBPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbixyKXt2YXIgaTt0aGlzLl9jbGllbnRFZGdlVHJhdmVyc2FsUGF0aD0oaT10LmNsaWVudEVkZ2VUcmF2ZXJzYWxQYXRoKSE9bnVsbCYmaS5sZW5ndGg/KDAscy5kZWZhdWx0KSh0LmNsaWVudEVkZ2VUcmF2ZXJzYWxQYXRoKTpbXSx0aGlzLl9taXNzaW5nQ2xpZW50RWRnZXM9W10sdGhpcy5fbWlzc2luZ0xpdmVSZXNvbHZlckZpZWxkcz1bXSx0aGlzLl9pc01pc3NpbmdEYXRhPSExLHRoaXMuX2lzV2l0aGluVW5tYXRjaGVkVHlwZVJlZmluZW1lbnQ9ITEsdGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcz1udWxsLHRoaXMuX293bmVyPXQub3duZXIsdGhpcy5fdXNlRXhlY1RpbWVSZXNvbHZlcnM9dGhpcy5fb3duZXIubm9kZS5vcGVyYXRpb24udXNlX2V4ZWNfdGltZV9yZXNvbHZlcnM/PyExLHRoaXMuX3JlY29yZFNvdXJjZT1lLHRoaXMuX3NlZW5SZWNvcmRzPW5ldyBTZXQsdGhpcy5fc2VsZWN0b3I9dCx0aGlzLl92YXJpYWJsZXM9dC52YXJpYWJsZXMsdGhpcy5fcmVzb2x2ZXJDYWNoZT1uLHRoaXMuX2ZyYWdtZW50TmFtZT10Lm5vZGUubmFtZSx0aGlzLl91cGRhdGVkRGF0YUlEcz1uZXcgU2V0LHRoaXMuX3Jlc29sdmVyQ29udGV4dD1yfXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LnJlYWQ9ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMuX3NlbGVjdG9yLG49dC5ub2RlLHI9dC5kYXRhSUQsaT10LmlzV2l0aGluVW5tYXRjaGVkVHlwZVJlZmluZW1lbnQsYT1uLmFic3RyYWN0S2V5LG89dGhpcy5fcmVjb3JkU291cmNlLmdldChyKSxzPSFpO3MmJmE9PW51bGwmJm8hPW51bGwmJih0aGlzLl9yZWNvcmRNYXRjaGVzVHlwZUNvbmRpdGlvbihvLG4udHlwZSl8fChzPSExKSkscyYmYSE9bnVsbCYmbyE9bnVsbCYmdGhpcy5faW1wbGVtZW50c0ludGVyZmFjZShvLGEpPT09ITEmJihzPSExKSx0aGlzLl9pc1dpdGhpblVubWF0Y2hlZFR5cGVSZWZpbmVtZW50PSFzO3ZhciBjPXRoaXMuX3RyYXZlcnNlKG4scixudWxsKSxsPShlPXRoaXMuX3NlbGVjdG9yLm5vZGUubWV0YWRhdGEpPT1udWxsP3ZvaWQgMDplLmNhdGNoVG87cmV0dXJuIGwhPW51bGwmJihjPXRoaXMuX2NhdGNoRXJyb3JzKGMsbCxudWxsKSksdGhpcy5fdXBkYXRlZERhdGFJRHMuc2l6ZT4wJiYodGhpcy5fcmVzb2x2ZXJDYWNoZS5ub3RpZnlVcGRhdGVkU3Vic2NyaWJlcnModGhpcy5fdXBkYXRlZERhdGFJRHMpLHRoaXMuX3VwZGF0ZWREYXRhSURzLmNsZWFyKCkpLHtkYXRhOmMsaXNNaXNzaW5nRGF0YTp0aGlzLl9pc01pc3NpbmdEYXRhJiZzLG1pc3NpbmdDbGllbnRFZGdlczp0aGlzLl9taXNzaW5nQ2xpZW50RWRnZXMubGVuZ3RoP3RoaXMuX21pc3NpbmdDbGllbnRFZGdlczpudWxsLG1pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHM6dGhpcy5fbWlzc2luZ0xpdmVSZXNvbHZlckZpZWxkcyxzZWVuUmVjb3Jkczp0aGlzLl9zZWVuUmVjb3JkcyxzZWxlY3Rvcjp0aGlzLl9zZWxlY3RvcixlcnJvclJlc3BvbnNlRmllbGRzOnRoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHN9fSx0Ll9tYXliZUFkZEVycm9yUmVzcG9uc2VGaWVsZHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1kLmdldEVycm9ycyhlLHQpO2lmKG4hPW51bGwpe3ZhciByPXRoaXMuX2ZyYWdtZW50TmFtZTt0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzPz8odGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcz1bXSk7dmFyIGk9KDAsby5kZWZhdWx0KShuKSxhO3RyeXtmb3IoaS5zKCk7IShhPWkubigpKS5kb25lOyl7dmFyIHMsYz1hLnZhbHVlO3RoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHMucHVzaCh7a2luZDpgcmVsYXlfZmllbGRfcGF5bG9hZC5lcnJvcmAsb3duZXI6cixmaWVsZFBhdGg6KGMucGF0aD8/W10pLmpvaW4oYC5gKSxlcnJvcjpjLHNob3VsZFRocm93Oigocz10aGlzLl9zZWxlY3Rvci5ub2RlLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6cy50aHJvd09uRmllbGRFcnJvcik/PyExLGhhbmRsZWQ6ITF9KX19Y2F0Y2goZSl7aS5lKGUpfWZpbmFsbHl7aS5mKCl9fX0sdC5fbWFya0RhdGFBc01pc3Npbmc9ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoIXRoaXMuX2lzV2l0aGluVW5tYXRjaGVkVHlwZVJlZmluZW1lbnQpe3RoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHM/Pyh0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzPVtdKTt2YXIgbj10aGlzLl9mcmFnbWVudE5hbWU7aWYodGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcy5wdXNoKCgodD10aGlzLl9zZWxlY3Rvci5ub2RlLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6dC50aHJvd09uRmllbGRFcnJvcik/PyExP3traW5kOmBtaXNzaW5nX2V4cGVjdGVkX2RhdGEudGhyb3dgLG93bmVyOm4sZmllbGRQYXRoOmUsaGFuZGxlZDohMX06e2tpbmQ6YG1pc3NpbmdfZXhwZWN0ZWRfZGF0YS5sb2dgLG93bmVyOm4sZmllbGRQYXRoOmV9KSx0aGlzLl9pc01pc3NpbmdEYXRhPSEwLHRoaXMuX2NsaWVudEVkZ2VUcmF2ZXJzYWxQYXRoLmxlbmd0aCl7dmFyIHI9dGhpcy5fY2xpZW50RWRnZVRyYXZlcnNhbFBhdGhbdGhpcy5fY2xpZW50RWRnZVRyYXZlcnNhbFBhdGgubGVuZ3RoLTFdO3IhPT1udWxsJiZ0aGlzLl9taXNzaW5nQ2xpZW50RWRnZXMucHVzaCh7cmVxdWVzdDpyLnJlYWRlckNsaWVudEVkZ2Uub3BlcmF0aW9uLGNsaWVudEVkZ2VEZXN0aW5hdGlvbklEOnIuY2xpZW50RWRnZURlc3RpbmF0aW9uSUR9KX19fSx0Ll90cmF2ZXJzZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9dGhpcy5fcmVjb3JkU291cmNlLmdldCh0KTtpZih0aGlzLl9zZWVuUmVjb3Jkcy5hZGQodCkscj09bnVsbClyZXR1cm4gcj09PXZvaWQgMCYmdGhpcy5fbWFya0RhdGFBc01pc3NpbmcoYDxyZWNvcmQ+YCkscjt2YXIgaT1ufHx7fTtyZXR1cm4gdGhpcy5fdHJhdmVyc2VTZWxlY3Rpb25zKGUuc2VsZWN0aW9ucyxyLGkpP2k6bnVsbH0sdC5fZ2V0VmFyaWFibGVWYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4hdGhpcy5fdmFyaWFibGVzLmhhc093blByb3BlcnR5KGUpJiZPKCExKSx0aGlzLl92YXJpYWJsZXNbZV19LHQuX21heWJlUmVwb3J0VW5leHBlY3RlZE51bGw9ZnVuY3Rpb24oZSl7aWYoZS5hY3Rpb24hPT1gTk9ORWApe3ZhciB0PXRoaXMuX2ZyYWdtZW50TmFtZTt0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzPz8odGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcz1bXSk7dmFyIG49ZS5maWVsZC5saW5rZWRGaWVsZD09bnVsbD9lLmZpZWxkLmFsaWFzPz9lLmZpZWxkLm5hbWU6ZS5maWVsZC5saW5rZWRGaWVsZC5hbGlhcz8/ZS5maWVsZC5saW5rZWRGaWVsZC5uYW1lO3N3aXRjaChlLmFjdGlvbil7Y2FzZWBUSFJPV2A6dGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcy5wdXNoKHtraW5kOmBtaXNzaW5nX3JlcXVpcmVkX2ZpZWxkLnRocm93YCxmaWVsZFBhdGg6bixvd25lcjp0LGhhbmRsZWQ6ITF9KTtyZXR1cm47Y2FzZWBMT0dgOnRoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHMucHVzaCh7a2luZDpgbWlzc2luZ19yZXF1aXJlZF9maWVsZC5sb2dgLGZpZWxkUGF0aDpuLG93bmVyOnR9KTtyZXR1cm47ZGVmYXVsdDplLmFjdGlvbn19fSx0Ll9oYW5kbGVSZXF1aXJlZEZpZWxkVmFsdWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD09bnVsbD8odGhpcy5fbWF5YmVSZXBvcnRVbmV4cGVjdGVkTnVsbChlKSwhMSk6ITB9LHQuX2NhdGNoRXJyb3JzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lO3N3aXRjaCh0KXtjYXNlYFJFU1VMVGA6cj10aGlzLl9hc1Jlc3VsdChlKTticmVhaztjYXNlYE5VTExgOnRoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHMhPW51bGwmJnRoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHMubGVuZ3RoPjAmJihyPW51bGwpO2JyZWFrO2RlZmF1bHQ6fXZhciBpPXRoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHM7aWYodGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcz1uLGkhPW51bGwpe3RoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHM/Pyh0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzPVtdKTtmb3IodmFyIGE9MDthPGkubGVuZ3RoO2ErKyl0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzLnB1c2goaihpW2FdKSl9cmV0dXJuIHJ9LHQuX2FzUmVzdWx0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzPT1udWxsfHx0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzLmxlbmd0aD09PTA/e29rOiEwLHZhbHVlOmV9OntvazohMSxlcnJvcnM6dGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcy5tYXAoZnVuY3Rpb24oZSl7c3dpdGNoKGUua2luZCl7Y2FzZWByZWxheV9maWVsZF9wYXlsb2FkLmVycm9yYDp2YXIgdD1lLmVycm9yO3JldHVybiB0Lm1lc3NhZ2UsKDAsYS5kZWZhdWx0KSh0LGMpO2Nhc2VgbWlzc2luZ19leHBlY3RlZF9kYXRhLnRocm93YDpjYXNlYG1pc3NpbmdfZXhwZWN0ZWRfZGF0YS5sb2dgOnJldHVybntwYXRoOmUuZmllbGRQYXRoLnNwbGl0KGAuYCl9O2Nhc2VgcmVsYXlfcmVzb2x2ZXIuZXJyb3JgOnJldHVybnttZXNzYWdlOmBSZWxheTogRXJyb3IgaW4gcmVzb2x2ZXIgZm9yIGZpZWxkIGF0ICR7ZS5maWVsZFBhdGh9IGluICR7ZS5vd25lcn1gfTtjYXNlYG1pc3NpbmdfcmVxdWlyZWRfZmllbGQudGhyb3dgOnJldHVybnttZXNzYWdlOmBSZWxheTogTWlzc2luZyBAcmVxdWlyZWQgdmFsdWUgYXQgcGF0aCAnJHtlLmZpZWxkUGF0aH0nIGluICcke2Uub3duZXJ9Jy5gfTtjYXNlYG1pc3NpbmdfcmVxdWlyZWRfZmllbGQubG9nYDpyZXR1cm4gbnVsbDtkZWZhdWx0OmUua2luZCxPKCExKX19KS5maWx0ZXIoQm9vbGVhbil9fSx0Ll90cmF2ZXJzZVNlbGVjdGlvbnM9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lW3JdO3N3aXRjaChpLmtpbmQpe2Nhc2VgUmVxdWlyZWRGaWVsZGA6dmFyIGE9dGhpcy5fcmVhZENsaWVudFNpZGVEaXJlY3RpdmVGaWVsZChpLHQsbik7aWYoIXRoaXMuX2hhbmRsZVJlcXVpcmVkRmllbGRWYWx1ZShpLGEpKXJldHVybiExO2JyZWFrO2Nhc2VgQ2F0Y2hGaWVsZGA6dmFyIG8scz10aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzO3RoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHM9bnVsbDt2YXIgYz10aGlzLl9yZWFkQ2xpZW50U2lkZURpcmVjdGl2ZUZpZWxkKGksdCxuKSxsPSgobz1pLmZpZWxkKT09bnVsbD92b2lkIDA6by5iYWNraW5nRmllbGQpPz9pLmZpZWxkLHU9KGw9PW51bGw/dm9pZCAwOmwuYWxpYXMpPz8obD09bnVsbD92b2lkIDA6bC5uYW1lKTt1Pz9PKCExKSxuW3VdPXRoaXMuX2NhdGNoRXJyb3JzKGMsaS50byxzKTticmVhaztjYXNlYFNjYWxhckZpZWxkYDp0aGlzLl9yZWFkU2NhbGFyKGksdCxuKTticmVhaztjYXNlYExpbmtlZEZpZWxkYDppLnBsdXJhbD90aGlzLl9yZWFkUGx1cmFsTGluayhpLHQsbik6dGhpcy5fcmVhZExpbmsoaSx0LG4pO2JyZWFrO2Nhc2VgQ29uZGl0aW9uYDppZighIXRoaXMuX2dldFZhcmlhYmxlVmFsdWUoaS5jb25kaXRpb24pPT09aS5wYXNzaW5nVmFsdWUmJiF0aGlzLl90cmF2ZXJzZVNlbGVjdGlvbnMoaS5zZWxlY3Rpb25zLHQsbikpcmV0dXJuITE7YnJlYWs7Y2FzZWBJbmxpbmVGcmFnbWVudGA6aWYodGhpcy5fcmVhZElubGluZUZyYWdtZW50KGksdCxuLCExKT09PSExKXJldHVybiExO2JyZWFrO2Nhc2VgUmVsYXlMaXZlUmVzb2x2ZXJgOmNhc2VgUmVsYXlSZXNvbHZlcmA6dGhpcy5fdXNlRXhlY1RpbWVSZXNvbHZlcnM/dGhpcy5fcmVhZFNjYWxhcihpLHQsbik6dGhpcy5fcmVhZFJlc29sdmVyRmllbGQoaSx0LG4pO2JyZWFrO2Nhc2VgRnJhZ21lbnRTcHJlYWRgOnRoaXMuX2NyZWF0ZUZyYWdtZW50UG9pbnRlcihpLHQsbik7YnJlYWs7Y2FzZWBBbGlhc2VkSW5saW5lRnJhZ21lbnRTcHJlYWRgOnRoaXMuX3JlYWRBbGlhc2VkSW5saW5lRnJhZ21lbnQoaSx0LG4pO2JyZWFrO2Nhc2VgTW9kdWxlSW1wb3J0YDp0aGlzLl9yZWFkTW9kdWxlSW1wb3J0KGksdCxuKTticmVhaztjYXNlYElubGluZURhdGFGcmFnbWVudFNwcmVhZGA6dGhpcy5fY3JlYXRlSW5saW5lRGF0YU9yUmVzb2x2ZXJGcmFnbWVudFBvaW50ZXIoaSx0LG4pO2JyZWFrO2Nhc2VgRGVmZXJgOmNhc2VgQ2xpZW50RXh0ZW5zaW9uYDp2YXIgZD10aGlzLl9pc01pc3NpbmdEYXRhLGY9dGhpcy5fbWlzc2luZ0NsaWVudEVkZ2VzLmxlbmd0aDt0aGlzLl9jbGllbnRFZGdlVHJhdmVyc2FsUGF0aC5wdXNoKG51bGwpO3ZhciBwPXRoaXMuX3RyYXZlcnNlU2VsZWN0aW9ucyhpLnNlbGVjdGlvbnMsdCxuKTtpZih0aGlzLl9pc01pc3NpbmdEYXRhPWR8fHRoaXMuX21pc3NpbmdDbGllbnRFZGdlcy5sZW5ndGg+Znx8dGhpcy5fbWlzc2luZ0xpdmVSZXNvbHZlckZpZWxkcy5sZW5ndGg+MCx0aGlzLl9jbGllbnRFZGdlVHJhdmVyc2FsUGF0aC5wb3AoKSwhcClyZXR1cm4hMTticmVhaztjYXNlYFN0cmVhbWA6aWYoIXRoaXMuX3RyYXZlcnNlU2VsZWN0aW9ucyhpLnNlbGVjdGlvbnMsdCxuKSlyZXR1cm4hMTticmVhaztjYXNlYEFjdG9yQ2hhbmdlYDp0aGlzLl9yZWFkQWN0b3JDaGFuZ2UoaSx0LG4pO2JyZWFrO2Nhc2VgQ2xpZW50RWRnZVRvQ2xpZW50T2JqZWN0YDpjYXNlYENsaWVudEVkZ2VUb1NlcnZlck9iamVjdGA6aWYodGhpcy5fdXNlRXhlY1RpbWVSZXNvbHZlcnMmJihpLmJhY2tpbmdGaWVsZC5raW5kPT09YFJlbGF5UmVzb2x2ZXJgfHxpLmJhY2tpbmdGaWVsZC5raW5kPT09YFJlbGF5TGl2ZVJlc29sdmVyYCkpe3ZhciBtPWkubGlua2VkRmllbGQ7bS5wbHVyYWw/dGhpcy5fcmVhZFBsdXJhbExpbmsobSx0LG4pOnRoaXMuX3JlYWRMaW5rKG0sdCxuKX1lbHNlIHRoaXMuX3JlYWRDbGllbnRFZGdlKGksdCxuKTticmVhaztkZWZhdWx0Ok8oITEpfX1yZXR1cm4hMH0sdC5fcmVhZENsaWVudFNpZGVEaXJlY3RpdmVGaWVsZD1mdW5jdGlvbihlLHQsbil7c3dpdGNoKGUuZmllbGQua2luZCl7Y2FzZWBTY2FsYXJGaWVsZGA6cmV0dXJuIHRoaXMuX3JlYWRTY2FsYXIoZS5maWVsZCx0LG4pO2Nhc2VgTGlua2VkRmllbGRgOnJldHVybiBlLmZpZWxkLnBsdXJhbD90aGlzLl9yZWFkUGx1cmFsTGluayhlLmZpZWxkLHQsbik6dGhpcy5fcmVhZExpbmsoZS5maWVsZCx0LG4pO2Nhc2VgUmVsYXlSZXNvbHZlcmA6cmV0dXJuIHRoaXMuX3JlYWRSZXNvbHZlckZpZWxkKGUuZmllbGQsdCxuKTtjYXNlYFJlbGF5TGl2ZVJlc29sdmVyYDpyZXR1cm4gdGhpcy5fcmVhZFJlc29sdmVyRmllbGQoZS5maWVsZCx0LG4pO2Nhc2VgQ2xpZW50RWRnZVRvQ2xpZW50T2JqZWN0YDpjYXNlYENsaWVudEVkZ2VUb1NlcnZlck9iamVjdGA6cmV0dXJuIHRoaXMuX3JlYWRDbGllbnRFZGdlKGUuZmllbGQsdCxuKTtjYXNlYEFsaWFzZWRJbmxpbmVGcmFnbWVudFNwcmVhZGA6cmV0dXJuIHRoaXMuX3JlYWRBbGlhc2VkSW5saW5lRnJhZ21lbnQoZS5maWVsZCx0LG4pO2RlZmF1bHQ6ZS5maWVsZC5raW5kLE8oITEpfX0sdC5fcmVhZFJlc29sdmVyRmllbGQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWQuZ2V0RGF0YUlEKHQpLGk9dGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkczt0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzPW51bGw7dmFyIGE9dGhpcy5fcmVhZFJlc29sdmVyRmllbGRJbXBsKGUsciksbz1lLmFsaWFzPz9lLm5hbWU7cmV0dXJuIHRoaXMuX3ByZXBlbmRQcmV2aW91c0Vycm9ycyhpLG8pLG5bb109YSxhfSx0Ll9yZWFkUmVzb2x2ZXJGaWVsZEltcGw9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHI9ZS5mcmFnbWVudCxhLG89ZnVuY3Rpb24oZSl7cmV0dXJuIGE/PyhhPWsobi5fcmVjb3JkU291cmNlLGUsbi5fcmVzb2x2ZXJDYWNoZSkpLHtkYXRhOmEuZGF0YSxpc01pc3NpbmdEYXRhOmEuaXNNaXNzaW5nRGF0YSxlcnJvclJlc3BvbnNlRmllbGRzOmEuZXJyb3JSZXNwb25zZUZpZWxkc319LHM9dGhpcy5fcmVzb2x2ZXJDYWNoZS5yZWFkRnJvbUNhY2hlT3JFdmFsdWF0ZSh0LGUsdGhpcy5fdmFyaWFibGVzLGZ1bmN0aW9uKCl7aWYociE9bnVsbCl7dmFyIHM9e19faWQ6dCxfX2ZyYWdtZW50T3duZXI6bi5fb3duZXIsX19mcmFnbWVudHM6KDAsaS5kZWZhdWx0KSh7fSxyLm5hbWUsci5hcmdzP2Ioci5hcmdzLG4uX3ZhcmlhYmxlcyk6e30pfTtyZXR1cm4gRSh7Z2V0RGF0YUZvclJlc29sdmVyRnJhZ21lbnQ6b30sZnVuY3Rpb24oKXt2YXIgdD1NKGUsbi5fdmFyaWFibGVzLHMsbi5fcmVzb2x2ZXJDb250ZXh0KSxyPXRbMF0saT10WzFdO3JldHVybntyZXNvbHZlclJlc3VsdDpyLHNuYXBzaG90OmEsZXJyb3I6aX19KX1lbHNle3ZhciBjPU0oZSxuLl92YXJpYWJsZXMsbnVsbCxuLl9yZXNvbHZlckNvbnRleHQpO3JldHVybntyZXNvbHZlclJlc3VsdDpjWzBdLHNuYXBzaG90OnZvaWQgMCxlcnJvcjpjWzFdfX19LG8pLGM9c1swXSxsPXNbMV0sdT1zWzJdLGQ9c1szXSxmPXNbNF0scD1zWzVdO3JldHVybiB0aGlzLl9wcm9wYWdhdGVSZXNvbHZlck1ldGFkYXRhKGUucGF0aCxkLHUsbCxmLHApLGN9LHQuX3Byb3BhZ2F0ZVJlc29sdmVyTWV0YWRhdGE9ZnVuY3Rpb24oZSx0LG4scixpLGEpe2lmKHQhPW51bGwpe2lmKHQubWlzc2luZ0NsaWVudEVkZ2VzIT1udWxsKXt2YXIgcz0oMCxvLmRlZmF1bHQpKHQubWlzc2luZ0NsaWVudEVkZ2VzKSxjO3RyeXtmb3Iocy5zKCk7IShjPXMubigpKS5kb25lOyl7dmFyIGw9Yy52YWx1ZTt0aGlzLl9taXNzaW5nQ2xpZW50RWRnZXMucHVzaChsKX19Y2F0Y2goZSl7cy5lKGUpfWZpbmFsbHl7cy5mKCl9fWlmKHQubWlzc2luZ0xpdmVSZXNvbHZlckZpZWxkcyE9bnVsbCl7dGhpcy5faXNNaXNzaW5nRGF0YT10aGlzLl9pc01pc3NpbmdEYXRhfHx0Lm1pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHMubGVuZ3RoPjA7dmFyIHU9KDAsby5kZWZhdWx0KSh0Lm1pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHMpLGQ7dHJ5e2Zvcih1LnMoKTshKGQ9dS5uKCkpLmRvbmU7KXt2YXIgZj1kLnZhbHVlO3RoaXMuX21pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHMucHVzaChmKX19Y2F0Y2goZSl7dS5lKGUpfWZpbmFsbHl7dS5mKCl9fWlmKHQuZXJyb3JSZXNwb25zZUZpZWxkcyE9bnVsbCl7dGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcz8/KHRoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHM9W10pO3ZhciBwPSgwLG8uZGVmYXVsdCkodC5lcnJvclJlc3BvbnNlRmllbGRzKSxtO3RyeXtmb3IocC5zKCk7IShtPXAubigpKS5kb25lOyl7dmFyIGgsZz1tLnZhbHVlOygoaD10aGlzLl9zZWxlY3Rvci5ub2RlLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6aC50aHJvd09uRmllbGRFcnJvcik9PT0hMD90aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzLnB1c2goZyk6dGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcy5wdXNoKGooZykpfX1jYXRjaChlKXtwLmUoZSl9ZmluYWxseXtwLmYoKX19dGhpcy5faXNNaXNzaW5nRGF0YT10aGlzLl9pc01pc3NpbmdEYXRhfHx0LmlzTWlzc2luZ0RhdGF9aWYobil7dmFyIF8sdj17a2luZDpgcmVsYXlfcmVzb2x2ZXIuZXJyb3JgLGZpZWxkUGF0aDplLG93bmVyOnRoaXMuX2ZyYWdtZW50TmFtZSxlcnJvcjpuLHNob3VsZFRocm93OigoXz10aGlzLl9zZWxlY3Rvci5ub2RlLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6Xy50aHJvd09uRmllbGRFcnJvcik/PyExLGhhbmRsZWQ6ITF9O3RoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHM9PW51bGw/dGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcz1bdl06dGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcy5wdXNoKHYpfWlmKHIhPW51bGwmJnRoaXMuX3NlZW5SZWNvcmRzLmFkZChyKSxpIT1udWxsJiYodGhpcy5faXNNaXNzaW5nRGF0YT0hMCx0aGlzLl9taXNzaW5nTGl2ZVJlc29sdmVyRmllbGRzLnB1c2goaSkpLGEhPW51bGwpe3ZhciB5PSgwLG8uZGVmYXVsdCkoYSksYjt0cnl7Zm9yKHkucygpOyEoYj15Lm4oKSkuZG9uZTspe3ZhciB4PWIudmFsdWU7dGhpcy5fdXBkYXRlZERhdGFJRHMuYWRkKHgpfX1jYXRjaChlKXt5LmUoZSl9ZmluYWxseXt5LmYoKX19fSx0Ll9yZWFkQ2xpZW50RWRnZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9dGhpcyxpPWUuYmFja2luZ0ZpZWxkO2kua2luZD09PWBDbGllbnRFeHRlbnNpb25gJiZPKCExKTt2YXIgYT1pLmFsaWFzPz9pLm5hbWUsbz17fTt0aGlzLl90cmF2ZXJzZVNlbGVjdGlvbnMoW2ldLHQsbyk7dmFyIHM9b1thXTtpZihzPT1udWxsfHxsKHMpKXJldHVybiBuW2FdPXMscztpZihlLmxpbmtlZEZpZWxkLnBsdXJhbCl7IUFycmF5LmlzQXJyYXkocykmJk8oITEpO3ZhciBjO2Uua2luZCE9PWBDbGllbnRFZGdlVG9DbGllbnRPYmplY3RgJiZPKCExKSxjPWUuYmFja2luZ0ZpZWxkLm5vcm1hbGl6YXRpb25JbmZvPT1udWxsP3MubWFwKGZ1bmN0aW9uKHQpe3ZhciBuPWUuY29uY3JldGVUeXBlPz90Ll9fdHlwZW5hbWU7dHlwZW9mIG4hPWBzdHJpbmdgJiZPKCExKTt2YXIgYT1OKHQsaS5wYXRoLHIuX293bmVyLmlkZW50aWZpZXIpLG89ci5fcmVzb2x2ZXJDYWNoZS5lbnN1cmVDbGllbnRSZWNvcmQoYSxuKSxzPWUubW9kZWxSZXNvbHZlcnM7aWYocyE9bnVsbCl7dmFyIGM9c1tuXTtyZXR1cm4gYz09PXZvaWQgMCYmTyghMSksci5fcmVhZFJlc29sdmVyRmllbGRJbXBsKGMsbyk9PW51bGw/bnVsbDpvfXJldHVybiBvfSk6cy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIE4oZSxpLnBhdGgsci5fb3duZXIuaWRlbnRpZmllcil9KSx0aGlzLl9jbGllbnRFZGdlVHJhdmVyc2FsUGF0aC5wdXNoKG51bGwpO3ZhciB1PXRoaXMuX3JlYWRMaW5rZWRJZHMoZS5saW5rZWRGaWVsZCxjLHQsbik7cmV0dXJuIHRoaXMuX2NsaWVudEVkZ2VUcmF2ZXJzYWxQYXRoLnBvcCgpLG5bYV09dSx1fWVsc2V7dmFyIGQ9TihzLGkucGF0aCx0aGlzLl9vd25lci5pZGVudGlmaWVyKSxmLHA9ZS5jb25jcmV0ZVR5cGU/P3MuX190eXBlbmFtZSxtO2Uua2luZD09PWBDbGllbnRFZGdlVG9DbGllbnRPYmplY3RgP2UuYmFja2luZ0ZpZWxkLm5vcm1hbGl6YXRpb25JbmZvPT1udWxsPyh0eXBlb2YgcCE9YHN0cmluZ2AmJk8oITEpLGY9dGhpcy5fcmVzb2x2ZXJDYWNoZS5lbnN1cmVDbGllbnRSZWNvcmQoZCxwKSxtPW51bGwpOihmPWQsbT1udWxsKTooZj1kLG09e3JlYWRlckNsaWVudEVkZ2U6ZSxjbGllbnRFZGdlRGVzdGluYXRpb25JRDpkfSk7dmFyIGg9ZS5tb2RlbFJlc29sdmVycztpZihoIT1udWxsKXt0eXBlb2YgcCE9YHN0cmluZ2AmJk8oITEpO3ZhciBnPWhbcF07aWYoZz09PXZvaWQgMCYmTyghMSksdGhpcy5fcmVhZFJlc29sdmVyRmllbGRJbXBsKGcsZik9PW51bGwpcmV0dXJuIG5bYV09bnVsbCxudWxsfXRoaXMuX2NsaWVudEVkZ2VUcmF2ZXJzYWxQYXRoLnB1c2gobSk7dmFyIF89blthXTshKF89PW51bGx8fHR5cGVvZiBfPT1gb2JqZWN0YCkmJk8oITEpO3ZhciB2PXRoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHM7dGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcz1udWxsO3ZhciB5PXRoaXMuX3RyYXZlcnNlKGUubGlua2VkRmllbGQsZixfKTtyZXR1cm4gdGhpcy5fcHJlcGVuZFByZXZpb3VzRXJyb3JzKHYsYSksdGhpcy5fY2xpZW50RWRnZVRyYXZlcnNhbFBhdGgucG9wKCksblthXT15LHl9fSx0Ll9yZWFkU2NhbGFyPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmFsaWFzPz9lLm5hbWUsaT1TKGUsdGhpcy5fdmFyaWFibGVzKSxhPWQuZ2V0VmFsdWUodCxpKTtyZXR1cm4gYT09PW51bGw/dGhpcy5fbWF5YmVBZGRFcnJvclJlc3BvbnNlRmllbGRzKHQsaSk6YT09PXZvaWQgMCYmdGhpcy5fbWFya0RhdGFBc01pc3NpbmcociksbltyXT1hLGF9LHQuX3JlYWRMaW5rPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmFsaWFzPz9lLm5hbWUsaT1TKGUsdGhpcy5fdmFyaWFibGVzKSxhPWQuZ2V0TGlua2VkUmVjb3JkSUQodCxpKTtpZihhPT1udWxsKXJldHVybiBuW3JdPWEsYT09PW51bGw/dGhpcy5fbWF5YmVBZGRFcnJvclJlc3BvbnNlRmllbGRzKHQsaSk6YT09PXZvaWQgMCYmdGhpcy5fbWFya0RhdGFBc01pc3NpbmcociksYTt2YXIgbz1uW3JdOyEobz09bnVsbHx8dHlwZW9mIG89PWBvYmplY3RgKSYmTyghMSk7dmFyIHM9dGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkczt0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzPW51bGw7dmFyIGM9dGhpcy5fdHJhdmVyc2UoZSxhLG8pO3JldHVybiB0aGlzLl9wcmVwZW5kUHJldmlvdXNFcnJvcnMocyxyKSxuW3JdPWMsY30sdC5fcHJlcGVuZFByZXZpb3VzRXJyb3JzPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcyE9bnVsbCl7Zm9yKHZhciBuPTA7bjx0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzLmxlbmd0aDtuKyspe3ZhciByPXRoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHNbbl07ci5vd25lcj09PXRoaXMuX2ZyYWdtZW50TmFtZSYmKHIua2luZD09PWBtaXNzaW5nX2V4cGVjdGVkX2RhdGEudGhyb3dgfHxyLmtpbmQ9PT1gbWlzc2luZ19leHBlY3RlZF9kYXRhLmxvZ2B8fHIua2luZD09PWBtaXNzaW5nX3JlcXVpcmVkX2ZpZWxkLnRocm93YHx8ci5raW5kPT09YG1pc3NpbmdfcmVxdWlyZWRfZmllbGQubG9nYCkmJihyLmZpZWxkUGF0aD1gJHt0fS4ke3IuZmllbGRQYXRofWApfWlmKGUhPW51bGwpe2Zvcih2YXIgaT10aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzLmxlbmd0aC0xO2k+PTA7aS0tKWUucHVzaCh0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzW2ldKTt0aGlzLl9lcnJvclJlc3BvbnNlRmllbGRzPWV9fWVsc2UgdGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcz1lfSx0Ll9yZWFkQWN0b3JDaGFuZ2U9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuYWxpYXM/P2UubmFtZSxpPVMoZSx0aGlzLl92YXJpYWJsZXMpLGE9ZC5nZXRBY3RvckxpbmtlZFJlY29yZElEKHQsaSk7aWYoYT09bnVsbClyZXR1cm4gbltyXT1hLGE9PT12b2lkIDA/dGhpcy5fbWFya0RhdGFBc01pc3Npbmcocik6YT09PW51bGwmJnRoaXMuX21heWJlQWRkRXJyb3JSZXNwb25zZUZpZWxkcyh0LGkpLG5bcl07dmFyIG89YVswXSxzPWFbMV0sYz17fTtyZXR1cm4gdGhpcy5fY3JlYXRlRnJhZ21lbnRQb2ludGVyKGUuZnJhZ21lbnRTcHJlYWQsZC5mcm9tT2JqZWN0KHtfX2lkOnN9KSxjKSxuW3JdPXtfX2ZyYWdtZW50UmVmOmMsX192aWV3ZXI6b30sbltyXX0sdC5fcmVhZFBsdXJhbExpbms9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPVMoZSx0aGlzLl92YXJpYWJsZXMpLGk9ZC5nZXRMaW5rZWRSZWNvcmRJRHModCxyKTtyZXR1cm4gaT09PW51bGwmJnRoaXMuX21heWJlQWRkRXJyb3JSZXNwb25zZUZpZWxkcyh0LHIpLHRoaXMuX3JlYWRMaW5rZWRJZHMoZSxpLHQsbil9LHQuX3JlYWRMaW5rZWRJZHM9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9dGhpcyxhPWUuYWxpYXM/P2UubmFtZTtpZih0PT1udWxsKXJldHVybiByW2FdPXQsdD09PXZvaWQgMCYmdGhpcy5fbWFya0RhdGFBc01pc3NpbmcoYSksdDt2YXIgbz1yW2FdOyEobz09bnVsbHx8QXJyYXkuaXNBcnJheShvKSkmJk8oITEpO3ZhciBzPXRoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHM7dGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcz1udWxsO3ZhciBjPW98fFtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCxuKXtpZih0PT1udWxsKXt0PT09dm9pZCAwJiZpLl9tYXJrRGF0YUFzTWlzc2luZyhTdHJpbmcobikpLGNbbl09dDtyZXR1cm59dmFyIHI9Y1tuXTshKHI9PW51bGx8fHR5cGVvZiByPT1gb2JqZWN0YCkmJk8oITEpO3ZhciBhPWkuX2Vycm9yUmVzcG9uc2VGaWVsZHM7aS5fZXJyb3JSZXNwb25zZUZpZWxkcz1udWxsLGNbbl09aS5fdHJhdmVyc2UoZSx0LHIpLGkuX3ByZXBlbmRQcmV2aW91c0Vycm9ycyhhLG4pfSksdGhpcy5fcHJlcGVuZFByZXZpb3VzRXJyb3JzKHMsYSksclthXT1jLGN9LHQuX3JlYWRNb2R1bGVJbXBvcnQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXgoZS5kb2N1bWVudE5hbWUpLGk9ZS5jb21wb25lbnRNb2R1bGVQcm92aWRlcj8/ZC5nZXRWYWx1ZSh0LHIpO2lmKGk9PW51bGwpe2k9PT12b2lkIDAmJnRoaXMuX21hcmtEYXRhQXNNaXNzaW5nKGA8bW9kdWxlLWltcG9ydD5gKTtyZXR1cm59dGhpcy5fY3JlYXRlRnJhZ21lbnRQb2ludGVyKHtraW5kOmBGcmFnbWVudFNwcmVhZGAsbmFtZTplLmZyYWdtZW50TmFtZSxhcmdzOmUuYXJnc30sdCxuKSxuW2hdPWUuZnJhZ21lbnRQcm9wTmFtZSxuW3ZdPWl9LHQuX3JlYWRBbGlhc2VkSW5saW5lRnJhZ21lbnQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX2Vycm9yUmVzcG9uc2VGaWVsZHM7dGhpcy5fZXJyb3JSZXNwb25zZUZpZWxkcz1udWxsO3ZhciBpPXRoaXMuX3JlYWRJbmxpbmVGcmFnbWVudChlLmZyYWdtZW50LHQse30sITApO3RoaXMuX3ByZXBlbmRQcmV2aW91c0Vycm9ycyhyLGUubmFtZSksaT09PSExJiYoaT1udWxsKSxuW2UubmFtZV09aX0sdC5fcmVhZElubGluZUZyYWdtZW50PWZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUudHlwZT09bnVsbCl7dmFyIGk9dGhpcy5fdHJhdmVyc2VTZWxlY3Rpb25zKGUuc2VsZWN0aW9ucyx0LG4pO3JldHVybiBpPT09ITE/ITE6bn12YXIgYT1lLmFic3RyYWN0S2V5O2lmKGE9PW51bGwpaWYodGhpcy5fcmVjb3JkTWF0Y2hlc1R5cGVDb25kaXRpb24odCxlLnR5cGUpKXt2YXIgaT10aGlzLl90cmF2ZXJzZVNlbGVjdGlvbnMoZS5zZWxlY3Rpb25zLHQsbik7aWYoIWkpcmV0dXJuITF9ZWxzZSByZXR1cm4gbnVsbDtlbHNle3ZhciBvPXRoaXMuX2ltcGxlbWVudHNJbnRlcmZhY2UodCxhKTtpZihvPT09ITEmJnIpcmV0dXJuIG51bGw7dmFyIHM9dGhpcy5faXNNaXNzaW5nRGF0YSxjPXRoaXMuX2lzV2l0aGluVW5tYXRjaGVkVHlwZVJlZmluZW1lbnQ7dGhpcy5faXNXaXRoaW5Vbm1hdGNoZWRUeXBlUmVmaW5lbWVudD1jfHxvPT09ITE7dmFyIGw9dGhpcy5fdHJhdmVyc2VTZWxlY3Rpb25zKGUuc2VsZWN0aW9ucyx0LG4pO2lmKHRoaXMuX2lzV2l0aGluVW5tYXRjaGVkVHlwZVJlZmluZW1lbnQ9YyxvPT09ITEpcmV0dXJuIHRoaXMuX2lzTWlzc2luZ0RhdGE9cyxudWxsO2lmKG89PW51bGwpcmV0dXJuO2lmKGw9PT0hMSlyZXR1cm4hMX1yZXR1cm4gbn0sdC5fcmVjb3JkTWF0Y2hlc1R5cGVDb25kaXRpb249ZnVuY3Rpb24oZSx0KXt2YXIgbj1kLmdldFR5cGUoZSk7cmV0dXJuIG4hPW51bGwmJm49PT10fHxkLmdldERhdGFJRChlKT09PXl9LHQuX2NyZWF0ZUZyYWdtZW50UG9pbnRlcj1mdW5jdGlvbihlLHQsbil7dmFyIHI9bltnXTtyPz8ocj1uW2ddPXt9KSwhKHR5cGVvZiByPT1gb2JqZWN0YCYmcikmJk8oITEpLG5bX10/PyhuW19dPWQuZ2V0RGF0YUlEKHQpKSxyW2UubmFtZV09YihlLmFyZ3MsdGhpcy5fdmFyaWFibGVzLHRoaXMuX2lzV2l0aGluVW5tYXRjaGVkVHlwZVJlZmluZW1lbnQpLG5bbV09dGhpcy5fb3duZXIsdGhpcy5fY2xpZW50RWRnZVRyYXZlcnNhbFBhdGgubGVuZ3RoPjAmJnRoaXMuX2NsaWVudEVkZ2VUcmF2ZXJzYWxQYXRoW3RoaXMuX2NsaWVudEVkZ2VUcmF2ZXJzYWxQYXRoLmxlbmd0aC0xXSE9PW51bGwmJihuW3BdPSgwLHMuZGVmYXVsdCkodGhpcy5fY2xpZW50RWRnZVRyYXZlcnNhbFBhdGgpKX0sdC5fY3JlYXRlSW5saW5lRGF0YU9yUmVzb2x2ZXJGcmFnbWVudFBvaW50ZXI9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW5bZ107cj8/KHI9bltnXT17fSksISh0eXBlb2Ygcj09YG9iamVjdGAmJnIpJiZPKCExKSxuW19dPz8obltfXT1kLmdldERhdGFJRCh0KSk7dmFyIGk9e30sYT10aGlzLl9mcmFnbWVudE5hbWU7dGhpcy5fZnJhZ21lbnROYW1lPWUubmFtZTt2YXIgbz10aGlzLl92YXJpYWJsZXMscz1lLmFyZ3M/YihlLmFyZ3MsdGhpcy5fdmFyaWFibGVzKTp7fTt0aGlzLl92YXJpYWJsZXM9dS5nZXRGcmFnbWVudFZhcmlhYmxlcyhlLHRoaXMuX293bmVyLnZhcmlhYmxlcyxzKSx0aGlzLl90cmF2ZXJzZVNlbGVjdGlvbnMoZS5zZWxlY3Rpb25zLHQsaSksdGhpcy5fdmFyaWFibGVzPW8sdGhpcy5fZnJhZ21lbnROYW1lPWEscltlLm5hbWVdPWl9LHQuX2ltcGxlbWVudHNJbnRlcmZhY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj1kLmdldFR5cGUoZSkscj10aGlzLl9yZWNvcmRTb3VyY2UuZ2V0KEQobikpLGk9cj09bnVsbD9udWxsOmQuZ2V0VmFsdWUocix0KTtyZXR1cm4gaT8/dGhpcy5fbWFya0RhdGFBc01pc3NpbmcoYDxhYnN0cmFjdC10eXBlLWhpbnQ+YCksaX0sZX0oKTtmdW5jdGlvbiBqKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2VgbWlzc2luZ19leHBlY3RlZF9kYXRhLnRocm93YDpjYXNlYG1pc3NpbmdfcmVxdWlyZWRfZmllbGQudGhyb3dgOmNhc2VgcmVsYXlfZmllbGRfcGF5bG9hZC5lcnJvcmA6Y2FzZWByZWxheV9yZXNvbHZlci5lcnJvcmA6cmV0dXJuKDAsci5kZWZhdWx0KSgoMCxyLmRlZmF1bHQpKHt9LGUpLHt9LHtoYW5kbGVkOiEwfSk7Y2FzZWBtaXNzaW5nX2V4cGVjdGVkX2RhdGEubG9nYDpjYXNlYG1pc3NpbmdfcmVxdWlyZWRfZmllbGQubG9nYDpyZXR1cm4gZTtkZWZhdWx0OmUua2luZCxPKCExKX19ZnVuY3Rpb24gTShlLHQsbixyKXt2YXIgaT10eXBlb2YgZS5yZXNvbHZlck1vZHVsZT09YGZ1bmN0aW9uYD9lLnJlc29sdmVyTW9kdWxlOmUucmVzb2x2ZXJNb2R1bGUuZGVmYXVsdCxhPW51bGwsbz1udWxsO3RyeXt2YXIgcz1bXTtlLmZyYWdtZW50IT1udWxsJiZzLnB1c2gobik7dmFyIGM9ZS5hcmdzP2IoZS5hcmdzLHQpOnZvaWQgMDtzLnB1c2goYykscy5wdXNoKHIpLGE9aS5hcHBseShudWxsLHMpfWNhdGNoKGUpe2E9bnVsbCxlIT09VCYmKG89ZSl9cmV0dXJuW2Esb119ZnVuY3Rpb24gTihlLHQsbil7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBlO2lmKHR5cGVvZiBlPT1gb2JqZWN0YCYmZSYmdHlwZW9mIGUuaWQ9PWBzdHJpbmdgKXJldHVybiBlLmlkO08oITEpfXQuZXhwb3J0cz17cmVhZDprfX0pKSx3cD1zKCgoZSx0KT0+e3ZhciBuLHI9aHAoKSxpPWJwKCksYT14cCgpLG89Q3AoKSxzPVhmKCksYz1GZCgpO0xkKCk7dmFyIGw9dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHdpbmRvdzxgdWA/d2luZG93OnZvaWQgMCx1PShsPT1udWxsfHwobj1sLkVycm9yVXRpbHMpPT1udWxsP3ZvaWQgMDpuLmFwcGx5V2l0aEd1YXJkKT8/ZnVuY3Rpb24oZSx0LG4scixpKXtyZXR1cm4gZS5hcHBseSh0LG4pfSxkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbixyKXt0aGlzLl9oYXNTdG9yZVNuYXBzaG90PSExLHRoaXMuX2hhbmRsZXJQcm92aWRlcj10fHxudWxsLHRoaXMuX3BlbmRpbmdCYWNrdXBSZWJhc2U9ITEsdGhpcy5fcGVuZGluZ0RhdGE9bmV3IFNldCx0aGlzLl9wZW5kaW5nT3B0aW1pc3RpY1VwZGF0ZXM9bmV3IFNldCx0aGlzLl9zdG9yZT1lLHRoaXMuX2FwcGxpZWRPcHRpbWlzdGljVXBkYXRlcz1uZXcgU2V0LHRoaXMuX2djSG9sZD1udWxsLHRoaXMuX2dldERhdGFJRD1uLHRoaXMuX21pc3NpbmdGaWVsZEhhbmRsZXJzPXJ9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuYXBwbHlVcGRhdGU9ZnVuY3Rpb24oZSl7ISghdGhpcy5fYXBwbGllZE9wdGltaXN0aWNVcGRhdGVzLmhhcyhlKSYmIXRoaXMuX3BlbmRpbmdPcHRpbWlzdGljVXBkYXRlcy5oYXMoZSkpJiZjKCExKSx0aGlzLl9wZW5kaW5nT3B0aW1pc3RpY1VwZGF0ZXMuYWRkKGUpfSx0LnJldmVydFVwZGF0ZT1mdW5jdGlvbihlKXt0aGlzLl9wZW5kaW5nT3B0aW1pc3RpY1VwZGF0ZXMuaGFzKGUpP3RoaXMuX3BlbmRpbmdPcHRpbWlzdGljVXBkYXRlcy5kZWxldGUoZSk6dGhpcy5fYXBwbGllZE9wdGltaXN0aWNVcGRhdGVzLmhhcyhlKSYmKHRoaXMuX3BlbmRpbmdCYWNrdXBSZWJhc2U9ITAsdGhpcy5fYXBwbGllZE9wdGltaXN0aWNVcGRhdGVzLmRlbGV0ZShlKSl9LHQucmV2ZXJ0QWxsPWZ1bmN0aW9uKCl7dGhpcy5fcGVuZGluZ0JhY2t1cFJlYmFzZT0hMCx0aGlzLl9wZW5kaW5nT3B0aW1pc3RpY1VwZGF0ZXMuY2xlYXIoKSx0aGlzLl9hcHBsaWVkT3B0aW1pc3RpY1VwZGF0ZXMuY2xlYXIoKX0sdC5jb21taXRQYXlsb2FkPWZ1bmN0aW9uKGUsdCxuKXt0aGlzLl9wZW5kaW5nQmFja3VwUmViYXNlPSEwLHRoaXMuX3BlbmRpbmdEYXRhLmFkZCh7a2luZDpgcGF5bG9hZGAsb3BlcmF0aW9uOmUscGF5bG9hZDp0LHVwZGF0ZXI6bn0pfSx0LmNvbW1pdFVwZGF0ZT1mdW5jdGlvbihlKXt0aGlzLl9wZW5kaW5nQmFja3VwUmViYXNlPSEwLHRoaXMuX3BlbmRpbmdEYXRhLmFkZCh7a2luZDpgdXBkYXRlcmAsdXBkYXRlcjplfSl9LHQuY29tbWl0U291cmNlPWZ1bmN0aW9uKGUpe3RoaXMuX3BlbmRpbmdCYWNrdXBSZWJhc2U9ITAsdGhpcy5fcGVuZGluZ0RhdGEuYWRkKHtraW5kOmBzb3VyY2VgLHNvdXJjZTplfSl9LHQucnVuPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2FwcGxpZWRPcHRpbWlzdGljVXBkYXRlcz09PTAmJiEhdGhpcy5fZ2NIb2xkO2lmKCF0aGlzLl9wZW5kaW5nQmFja3VwUmViYXNlJiZ0aGlzLl9wZW5kaW5nT3B0aW1pc3RpY1VwZGF0ZXMuc2l6ZT09PTAmJiF0KXJldHVybltdO3RoaXMuX3BlbmRpbmdCYWNrdXBSZWJhc2UmJnRoaXMuX2hhc1N0b3JlU25hcHNob3QmJih0aGlzLl9zdG9yZS5yZXN0b3JlKCksdGhpcy5faGFzU3RvcmVTbmFwc2hvdD0hMSk7dmFyIG49dGhpcy5fY29tbWl0RGF0YSgpO3JldHVybih0aGlzLl9wZW5kaW5nT3B0aW1pc3RpY1VwZGF0ZXMuc2l6ZXx8dGhpcy5fcGVuZGluZ0JhY2t1cFJlYmFzZSYmdGhpcy5fYXBwbGllZE9wdGltaXN0aWNVcGRhdGVzLnNpemUpJiYodGhpcy5faGFzU3RvcmVTbmFwc2hvdHx8KHRoaXMuX3N0b3JlLnNuYXBzaG90KCksdGhpcy5faGFzU3RvcmVTbmFwc2hvdD0hMCksdGhpcy5fYXBwbHlVcGRhdGVzKCkpLHRoaXMuX3BlbmRpbmdCYWNrdXBSZWJhc2U9ITEsdGhpcy5fYXBwbGllZE9wdGltaXN0aWNVcGRhdGVzLnNpemU+MD90aGlzLl9nY0hvbGR8fCh0aGlzLl9nY0hvbGQ9dGhpcy5fc3RvcmUuaG9sZEdDKCkpOnRoaXMuX2djSG9sZCYmKHRoaXMuX2djSG9sZC5kaXNwb3NlKCksdGhpcy5fZ2NIb2xkPW51bGwpLHRoaXMuX3N0b3JlLm5vdGlmeShlLG4pfSx0Ll9wdWJsaXNoU291cmNlRnJvbVBheWxvYWQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPWUucGF5bG9hZCxvPWUub3BlcmF0aW9uLHM9ZS51cGRhdGVyLGw9bi5zb3VyY2UsdT1uLmZpZWxkUGF5bG9hZHMsZD1uZXcgcih0aGlzLl9zdG9yZS5nZXRTb3VyY2UoKSxsKSxwPW5ldyBpKGQsdGhpcy5fZ2V0RGF0YUlELHRoaXMuX2hhbmRsZXJQcm92aWRlcix0aGlzLl9taXNzaW5nRmllbGRIYW5kbGVycyk7aWYodSYmdS5sZW5ndGgmJnUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgbj10Ll9oYW5kbGVyUHJvdmlkZXImJnQuX2hhbmRsZXJQcm92aWRlcihlLmhhbmRsZSk7IW4mJmMoITEpLG4udXBkYXRlKHAsZSl9KSxzKXt2YXIgbT1vLmZyYWdtZW50O20/P2MoITEpLHMobmV3IGEoZCxwLG0sdGhpcy5fbWlzc2luZ0ZpZWxkSGFuZGxlcnMpLGYobCxtKSl9dmFyIGg9cC5nZXRJRHNNYXJrZWRGb3JJbnZhbGlkYXRpb24oKTtyZXR1cm4gdGhpcy5fc3RvcmUucHVibGlzaChsLGgpLHAuaXNTdG9yZU1hcmtlZEZvckludmFsaWRhdGlvbigpfSx0Ll9jb21taXREYXRhPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZighdGhpcy5fcGVuZGluZ0RhdGEuc2l6ZSlyZXR1cm4hMTt2YXIgdD0hMTtyZXR1cm4gdGhpcy5fcGVuZGluZ0RhdGEuZm9yRWFjaChmdW5jdGlvbihuKXtpZihuLmtpbmQ9PT1gcGF5bG9hZGApe3ZhciBhPWUuX3B1Ymxpc2hTb3VyY2VGcm9tUGF5bG9hZChuKTt0PXR8fGF9ZWxzZSBpZihuLmtpbmQ9PT1gc291cmNlYCl7dmFyIG89bi5zb3VyY2U7ZS5fc3RvcmUucHVibGlzaChvKX1lbHNle3ZhciBjPW4udXBkYXRlcixsPXMuY3JlYXRlKCksZD1uZXcgaShuZXcgcihlLl9zdG9yZS5nZXRTb3VyY2UoKSxsKSxlLl9nZXREYXRhSUQsZS5faGFuZGxlclByb3ZpZGVyLGUuX21pc3NpbmdGaWVsZEhhbmRsZXJzKTt1KGMsbnVsbCxbZF0sbnVsbCxgUmVsYXlQdWJsaXNoUXVldWU6Y29tbWl0RGF0YWApLHQ9dHx8ZC5pc1N0b3JlTWFya2VkRm9ySW52YWxpZGF0aW9uKCk7dmFyIGY9ZC5nZXRJRHNNYXJrZWRGb3JJbnZhbGlkYXRpb24oKTtlLl9zdG9yZS5wdWJsaXNoKGwsZil9fSksdGhpcy5fcGVuZGluZ0RhdGEuY2xlYXIoKSx0fSx0Ll9hcHBseVVwZGF0ZXM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9cy5jcmVhdGUoKSxuPW5ldyByKHRoaXMuX3N0b3JlLmdldFNvdXJjZSgpLHQpLG89bmV3IGkobix0aGlzLl9nZXREYXRhSUQsdGhpcy5faGFuZGxlclByb3ZpZGVyLHRoaXMuX21pc3NpbmdGaWVsZEhhbmRsZXJzKSxjPWZ1bmN0aW9uKHQpe2lmKHQuc3RvcmVVcGRhdGVyKXt2YXIgcj10LnN0b3JlVXBkYXRlcjt1KHIsbnVsbCxbb10sbnVsbCxgUmVsYXlQdWJsaXNoUXVldWU6YXBwbHlVcGRhdGVzYCl9ZWxzZXt2YXIgaT10Lm9wZXJhdGlvbixzPXQucGF5bG9hZCxjPXQudXBkYXRlcixsPXMuc291cmNlLGQ9cy5maWVsZFBheWxvYWRzO2lmKGwmJm8ucHVibGlzaFNvdXJjZShsLGQpLGMpe3ZhciBwO2wmJihwPWYobCxpLmZyYWdtZW50KSksdShjLG51bGwsW25ldyBhKG4sbyxpLmZyYWdtZW50LGUuX21pc3NpbmdGaWVsZEhhbmRsZXJzKSxwXSxudWxsLGBSZWxheVB1Ymxpc2hRdWV1ZTphcHBseVVwZGF0ZXNgKX19fTt0aGlzLl9wZW5kaW5nQmFja3VwUmViYXNlJiZ0aGlzLl9hcHBsaWVkT3B0aW1pc3RpY1VwZGF0ZXMuc2l6ZSYmdGhpcy5fYXBwbGllZE9wdGltaXN0aWNVcGRhdGVzLmZvckVhY2goYyksdGhpcy5fcGVuZGluZ09wdGltaXN0aWNVcGRhdGVzLnNpemUmJih0aGlzLl9wZW5kaW5nT3B0aW1pc3RpY1VwZGF0ZXMuZm9yRWFjaChmdW5jdGlvbih0KXtjKHQpLGUuX2FwcGxpZWRPcHRpbWlzdGljVXBkYXRlcy5hZGQodCl9KSx0aGlzLl9wZW5kaW5nT3B0aW1pc3RpY1VwZGF0ZXMuY2xlYXIoKSksdGhpcy5fc3RvcmUucHVibGlzaCh0KX0sZX0oKTtmdW5jdGlvbiBmKGUsdCl7cmV0dXJuIG8ucmVhZChlLHQpLmRhdGF9dC5leHBvcnRzPWR9KSksVHA9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEpkKCkpLGk9d2YoKSxhPVpmKCksbz1hLklOVEVSTkFMX0FDVE9SX0lERU5USUZJRVJfRE9fTk9UX1VTRSxzPWEuYXNzZXJ0SW50ZXJuYWxBY3RvcklkZW50aWZpZXIsYz1kZigpLGw9YXAoKSx1PW9wKCksZD1zcCgpLGY9bHAoKSxwPXVwKCksbT1ucCgpLGg9bXAoKSxnPXdwKCksXz1YZigpO0ZkKCk7dmFyIHY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZhciB0PXRoaXM7dGhpcy5jb25maWdOYW1lPWUuY29uZmlnTmFtZSx0aGlzLl90cmVhdE1pc3NpbmdGaWVsZHNBc051bGw9ZS50cmVhdE1pc3NpbmdGaWVsZHNBc051bGw9PT0hMDt2YXIgbj1lLm9wZXJhdGlvbkxvYWRlcjt0aGlzLl9fbG9nPWUubG9nPz9iLHRoaXMucmVsYXlGaWVsZExvZ2dlcj1lLnJlbGF5RmllbGRMb2dnZXI/P3AsdGhpcy5fZGVmYXVsdFJlbmRlclBvbGljeT1lLlVOU1RBQkxFX2RlZmF1bHRSZW5kZXJQb2xpY3k/P2BwYXJ0aWFsYCx0aGlzLl9vcGVyYXRpb25Mb2FkZXI9bix0aGlzLl9vcGVyYXRpb25FeGVjdXRpb25zPW5ldyBNYXAsdGhpcy5fbmV0d29yaz1sKHRoaXMsZS5uZXR3b3JrKSx0aGlzLl9nZXREYXRhSUQ9ZS5nZXREYXRhSUQ/P2YsdGhpcy5fbWlzc2luZ0ZpZWxkSGFuZGxlcnM9ZS5taXNzaW5nRmllbGRIYW5kbGVycz8/W10sdGhpcy5fcHVibGlzaFF1ZXVlPW5ldyBnKGUuc3RvcmUsZS5oYW5kbGVyUHJvdmlkZXI/P2ksdGhpcy5fZ2V0RGF0YUlELHRoaXMuX21pc3NpbmdGaWVsZEhhbmRsZXJzKSx0aGlzLl9zY2hlZHVsZXI9ZS5zY2hlZHVsZXI/P251bGwsdGhpcy5fc3RvcmU9ZS5zdG9yZSx0aGlzLm9wdGlvbnM9ZS5vcHRpb25zLHRoaXMuX2lzU2VydmVyPWUuaXNTZXJ2ZXI/PyExLHRoaXMuX25vcm1hbGl6ZVJlc3BvbnNlPWUubm9ybWFsaXplUmVzcG9uc2U/P20sdGhpcy5fX3NldE5ldD1mdW5jdGlvbihlKXtyZXR1cm4gdC5fbmV0d29yaz1sKHQsZSl9LHRoaXMuX29wZXJhdGlvblRyYWNrZXI9ZS5vcGVyYXRpb25UcmFja2VyPz9uZXcgdSx0aGlzLl9zaG91bGRQcm9jZXNzQ2xpZW50Q29tcG9uZW50cz1lLnNob3VsZFByb2Nlc3NDbGllbnRDb21wb25lbnRzLGQodGhpcyl9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuZ2V0U3RvcmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RvcmV9LHQuZ2V0TmV0d29yaz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9uZXR3b3JrfSx0LmdldE9wZXJhdGlvblRyYWNrZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3BlcmF0aW9uVHJhY2tlcn0sdC5nZXRTY2hlZHVsZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2NoZWR1bGVyfSx0LmlzUmVxdWVzdEFjdGl2ZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fb3BlcmF0aW9uRXhlY3V0aW9ucy5nZXQoZSk9PT1gYWN0aXZlYH0sdC5VTlNUQUJMRV9nZXREZWZhdWx0UmVuZGVyUG9saWN5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRSZW5kZXJQb2xpY3l9LHQuYXBwbHlVcGRhdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fc2NoZWR1bGVVcGRhdGVzKGZ1bmN0aW9uKCl7dC5fcHVibGlzaFF1ZXVlLmFwcGx5VXBkYXRlKGUpLHQuX3B1Ymxpc2hRdWV1ZS5ydW4oKX0pLHtkaXNwb3NlOmZ1bmN0aW9uKCl7dC5fc2NoZWR1bGVVcGRhdGVzKGZ1bmN0aW9uKCl7dC5fcHVibGlzaFF1ZXVlLnJldmVydFVwZGF0ZShlKSx0Ll9wdWJsaXNoUXVldWUucnVuKCl9KX19fSx0LnJldmVydFVwZGF0ZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuX3NjaGVkdWxlVXBkYXRlcyhmdW5jdGlvbigpe3QuX3B1Ymxpc2hRdWV1ZS5yZXZlcnRVcGRhdGUoZSksdC5fcHVibGlzaFF1ZXVlLnJ1bigpfSl9LHQucmVwbGFjZVVwZGF0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7dGhpcy5fc2NoZWR1bGVVcGRhdGVzKGZ1bmN0aW9uKCl7bi5fcHVibGlzaFF1ZXVlLnJldmVydFVwZGF0ZShlKSxuLl9wdWJsaXNoUXVldWUuYXBwbHlVcGRhdGUodCksbi5fcHVibGlzaFF1ZXVlLnJ1bigpfSl9LHQuYXBwbHlNdXRhdGlvbj1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9leGVjdXRlKHtjcmVhdGVTb3VyY2U6ZnVuY3Rpb24oKXtyZXR1cm4gYy5jcmVhdGUoZnVuY3Rpb24oZSl7fSl9LGlzQ2xpZW50UGF5bG9hZDohMSxvcGVyYXRpb246ZS5vcGVyYXRpb24sb3B0aW1pc3RpY0NvbmZpZzplLHVwZGF0ZXI6bnVsbH0pLnN1YnNjcmliZSh7fSk7cmV0dXJue2Rpc3Bvc2U6ZnVuY3Rpb24oKXtyZXR1cm4gdC51bnN1YnNjcmliZSgpfX19LHQuY2hlY2s9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX21pc3NpbmdGaWVsZEhhbmRsZXJzLmxlbmd0aD09PTAmJiF5KGUpP3RoaXMuX3N0b3JlLmNoZWNrKGUpOnRoaXMuX2NoZWNrU2VsZWN0b3JBbmRIYW5kbGVNaXNzaW5nRmllbGRzKGUsdGhpcy5fbWlzc2luZ0ZpZWxkSGFuZGxlcnMpfSx0LmNvbW1pdFBheWxvYWQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9leGVjdXRlKHtjcmVhdGVTb3VyY2U6ZnVuY3Rpb24oKXtyZXR1cm4gYy5mcm9tKHtkYXRhOnR9KX0saXNDbGllbnRQYXlsb2FkOiEwLG9wZXJhdGlvbjplLG9wdGltaXN0aWNDb25maWc6bnVsbCx1cGRhdGVyOm51bGx9KS5zdWJzY3JpYmUoe30pfSx0LmNvbW1pdFVwZGF0ZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuX3NjaGVkdWxlVXBkYXRlcyhmdW5jdGlvbigpe3QuX3B1Ymxpc2hRdWV1ZS5jb21taXRVcGRhdGUoZSksdC5fcHVibGlzaFF1ZXVlLnJ1bigpfSl9LHQubG9va3VwPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9zdG9yZS5sb29rdXAoZSl9LHQuc3Vic2NyaWJlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3N0b3JlLnN1YnNjcmliZShlLHQpfSx0LnJldGFpbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fc3RvcmUucmV0YWluKGUpfSx0LmlzU2VydmVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzU2VydmVyfSx0Ll9jaGVja1NlbGVjdG9yQW5kSGFuZGxlTWlzc2luZ0ZpZWxkcz1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1fLmNyZWF0ZSgpLGk9dGhpcy5fc3RvcmUuZ2V0U291cmNlKCksYT10aGlzLl9zdG9yZS5jaGVjayhlLHtoYW5kbGVyczp0LGRlZmF1bHRBY3RvcklkZW50aWZpZXI6byxnZXRTb3VyY2VGb3JBY3RvcjpmdW5jdGlvbihlKXtyZXR1cm4gcyhlKSxpfSxnZXRUYXJnZXRGb3JBY3RvcjpmdW5jdGlvbihlKXtyZXR1cm4gcyhlKSxyfX0pO3JldHVybiByLnNpemUoKT4wJiZ0aGlzLl9zY2hlZHVsZVVwZGF0ZXMoZnVuY3Rpb24oKXtuLl9wdWJsaXNoUXVldWUuY29tbWl0U291cmNlKHIpLG4uX3B1Ymxpc2hRdWV1ZS5ydW4oKX0pLGF9LHQuX3NjaGVkdWxlVXBkYXRlcz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9zY2hlZHVsZXI7dD09bnVsbD9lKCk6dC5zY2hlZHVsZShlKX0sdC5leGVjdXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1lLm9wZXJhdGlvbjtyZXR1cm4gdGhpcy5fZXhlY3V0ZSh7Y3JlYXRlU291cmNlOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZ2V0TmV0d29yaygpLmV4ZWN1dGUobi5yZXF1ZXN0Lm5vZGUucGFyYW1zLG4ucmVxdWVzdC52YXJpYWJsZXMsbi5yZXF1ZXN0LmNhY2hlQ29uZmlnfHx7fSxudWxsKX0saXNDbGllbnRQYXlsb2FkOiExLG9wZXJhdGlvbjpuLG9wdGltaXN0aWNDb25maWc6bnVsbCx1cGRhdGVyOm51bGx9KX0sdC5leGVjdXRlU3Vic2NyaXB0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1lLm9wZXJhdGlvbixyPWUudXBkYXRlcjtyZXR1cm4gdGhpcy5fZXhlY3V0ZSh7Y3JlYXRlU291cmNlOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZ2V0TmV0d29yaygpLmV4ZWN1dGUobi5yZXF1ZXN0Lm5vZGUucGFyYW1zLG4ucmVxdWVzdC52YXJpYWJsZXMsbi5yZXF1ZXN0LmNhY2hlQ29uZmlnfHx7fSxudWxsKX0saXNDbGllbnRQYXlsb2FkOiExLG9wZXJhdGlvbjpuLG9wdGltaXN0aWNDb25maWc6bnVsbCx1cGRhdGVyOnJ9KX0sdC5leGVjdXRlTXV0YXRpb249ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPWUub3BlcmF0aW9uLGk9ZS5vcHRpbWlzdGljUmVzcG9uc2UsYT1lLm9wdGltaXN0aWNVcGRhdGVyLG89ZS51cGRhdGVyLHM9ZS51cGxvYWRhYmxlcyxjO3JldHVybihpfHxhKSYmKGM9e29wZXJhdGlvbjpuLHJlc3BvbnNlOmksdXBkYXRlcjphfSksdGhpcy5fZXhlY3V0ZSh7Y3JlYXRlU291cmNlOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZ2V0TmV0d29yaygpLmV4ZWN1dGUobi5yZXF1ZXN0Lm5vZGUucGFyYW1zLG4ucmVxdWVzdC52YXJpYWJsZXMsKDAsci5kZWZhdWx0KSgoMCxyLmRlZmF1bHQpKHt9LG4ucmVxdWVzdC5jYWNoZUNvbmZpZykse30se2ZvcmNlOiEwfSkscyl9LGlzQ2xpZW50UGF5bG9hZDohMSxvcGVyYXRpb246bixvcHRpbWlzdGljQ29uZmlnOmMsdXBkYXRlcjpvfSl9LHQuZXhlY3V0ZVdpdGhTb3VyY2U9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcGVyYXRpb24sbj1lLnNvdXJjZTtyZXR1cm4gdGhpcy5fZXhlY3V0ZSh7Y3JlYXRlU291cmNlOmZ1bmN0aW9uKCl7cmV0dXJuIG59LGlzQ2xpZW50UGF5bG9hZDohMSxvcGVyYXRpb246dCxvcHRpbWlzdGljQ29uZmlnOm51bGwsdXBkYXRlcjpudWxsfSl9LHQudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuYFJlbGF5TW9kZXJuRW52aXJvbm1lbnQoJHt0aGlzLmNvbmZpZ05hbWU/P2BgfSlgfSx0Ll9leGVjdXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1lLmNyZWF0ZVNvdXJjZSxyPWUuaXNDbGllbnRQYXlsb2FkLGk9ZS5vcGVyYXRpb24sYT1lLm9wdGltaXN0aWNDb25maWcsbD1lLnVwZGF0ZXIsdT10aGlzLl9wdWJsaXNoUXVldWUsZD10aGlzLl9zdG9yZTtyZXR1cm4gYy5jcmVhdGUoZnVuY3Rpb24oZSl7dmFyIGM9aC5leGVjdXRlKHthY3RvcklkZW50aWZpZXI6byxnZXREYXRhSUQ6dC5fZ2V0RGF0YUlELGlzQ2xpZW50UGF5bG9hZDpyLGxvZzp0Ll9fbG9nLG9wZXJhdGlvbjppLG9wZXJhdGlvbkV4ZWN1dGlvbnM6dC5fb3BlcmF0aW9uRXhlY3V0aW9ucyxvcGVyYXRpb25Mb2FkZXI6dC5fb3BlcmF0aW9uTG9hZGVyLG9wZXJhdGlvblRyYWNrZXI6dC5fb3BlcmF0aW9uVHJhY2tlcixvcHRpbWlzdGljQ29uZmlnOmEsZ2V0UHVibGlzaFF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiBzKGUpLHV9LHNjaGVkdWxlcjp0Ll9zY2hlZHVsZXIsc2hvdWxkUHJvY2Vzc0NsaWVudENvbXBvbmVudHM6dC5fc2hvdWxkUHJvY2Vzc0NsaWVudENvbXBvbmVudHMsc2luazplLHNvdXJjZTpuKCksZ2V0U3RvcmU6ZnVuY3Rpb24oZSl7cmV0dXJuIHMoZSksZH0sdHJlYXRNaXNzaW5nRmllbGRzQXNOdWxsOnQuX3RyZWF0TWlzc2luZ0ZpZWxkc0FzTnVsbCx1cGRhdGVyOmwsbm9ybWFsaXplUmVzcG9uc2U6dC5fbm9ybWFsaXplUmVzcG9uc2V9KTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYy5jYW5jZWwoKX19KX0sZX0oKTtmdW5jdGlvbiB5KGUpe3JldHVybiBlLnJvb3Qubm9kZS5raW5kPT09YE9wZXJhdGlvbmAmJmUucm9vdC5ub2RlLmNsaWVudEFic3RyYWN0VHlwZXMhPW51bGx9di5wcm90b3R5cGVbYEBAUmVsYXlNb2Rlcm5FbnZpcm9ubWVudGBdPSEwO2Z1bmN0aW9uIGIoKXt9dC5leHBvcnRzPXZ9KSksRXA9cygoKGUsdCk9Pnt2YXIgbj1Qcm9taXNlLnJlc29sdmUoKTtmdW5jdGlvbiByKGUpe24udGhlbihlKS5jYXRjaChpKX1mdW5jdGlvbiBpKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSwwKX10LmV4cG9ydHM9cn0pKSxEcD1zKCgoZSx0KT0+e3ZhciBuPVBkKCkuTElOS0VEX0ZJRUxELHI9bmYoKS5nZXRIYW5kbGVTdG9yYWdlS2V5LGk9YWYoKSxhPUZkKCk7ZnVuY3Rpb24gbyhlLHQsbyl7dmFyIHM9dC5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtpbmQ9PT1uJiZ0Lm5hbWU9PT1lLm5hbWUmJnQuYWxpYXM9PT1lLmFsaWFzJiZpKHQuYXJncyxlLmFyZ3MpfSk7IShzJiZzLmtpbmQ9PT1uKSYmYSghMSk7dmFyIGM9cihlLG8pO3JldHVybntraW5kOmBMaW5rZWRGaWVsZGAsYWxpYXM6cy5hbGlhcyxuYW1lOmMsc3RvcmFnZUtleTpjLGFyZ3M6bnVsbCxjb25jcmV0ZVR5cGU6cy5jb25jcmV0ZVR5cGUscGx1cmFsOnMucGx1cmFsLHNlbGVjdGlvbnM6cy5zZWxlY3Rpb25zfX10LmV4cG9ydHM9b30pKSxPcD1zKCgoZSx0KT0+e3ZhciBuPVBkKCkuU0NBTEFSX0ZJRUxELHI9bmYoKS5nZXRIYW5kbGVTdG9yYWdlS2V5LGk9YWYoKSxhPUZkKCk7ZnVuY3Rpb24gbyhlLHQsbyl7dmFyIHM9dC5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtpbmQ9PT1uJiZ0Lm5hbWU9PT1lLm5hbWUmJnQuYWxpYXM9PT1lLmFsaWFzJiZpKHQuYXJncyxlLmFyZ3MpfSk7IShzJiZzLmtpbmQ9PT1uKSYmYSghMSk7dmFyIGM9cihlLG8pO3JldHVybntraW5kOmBTY2FsYXJGaWVsZGAsYWxpYXM6cy5hbGlhcyxuYW1lOmMsc3RvcmFnZUtleTpjLGFyZ3M6bnVsbH19dC5leHBvcnRzPW99KSksa3A9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEhkKCkpLGk9aHAoKSxhPWJwKCksbz1kcCgpLHM9YmYoKS5pc0NsaWVudElELGM9RHAoKSxsPU9wKCksdT1yZigpLmdldExvY2FsVmFyaWFibGVzLGQ9SmYoKSxmPVlmKCkscD1mLkVYSVNURU5ULG09Zi5VTktOT1dOLGg9bmYoKSxnPWVwKCksXz1nLlRZUEVfU0NIRU1BX1RZUEUsdj1nLmdlbmVyYXRlVHlwZUlELHk9RmQoKSxiPWguZ2V0TW9kdWxlT3BlcmF0aW9uS2V5LHg9aC5nZXRTdG9yYWdlS2V5LFM9aC5nZXRBcmd1bWVudFZhbHVlcztmdW5jdGlvbiBDKGUsdCxuLHIsaSxhLG8scyxjKXtjIT1udWxsJiZjKHtuYW1lOmBzdG9yZS5kYXRhY2hlY2tlci5zdGFydGAsc2VsZWN0b3I6cn0pO3ZhciBsPXIuZGF0YUlELHU9ci5ub2RlLGQ9ci52YXJpYWJsZXMsZj1uZXcgdyhlLHQsbixkLGksYSxvLHMpLmNoZWNrKHUsbCk7cmV0dXJuIGMhPW51bGwmJmMoe25hbWU6YHN0b3JlLmRhdGFjaGVja2VyLmVuZGAsc2VsZWN0b3I6cn0pLGZ9dmFyIHc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxuLHIsaSxhLG8scyl7dGhpcy5fZ2V0U291cmNlRm9yQWN0b3I9ZSx0aGlzLl9nZXRUYXJnZXRGb3JBY3Rvcj10LHRoaXMuX2dldERhdGFJRD1vLHRoaXMuX3NvdXJjZT1lKG4pLHRoaXMuX211dGF0b3JSZWNvcmRTb3VyY2VQcm94eUNhY2hlPW5ldyBNYXA7dmFyIGM9dGhpcy5fZ2V0TXV0YXRvckFuZFJlY29yZFByb3h5Rm9yQWN0b3IobiksbD1jWzBdLHU9Y1sxXTt0aGlzLl9tb3N0UmVjZW50bHlJbnZhbGlkYXRlZEF0PW51bGwsdGhpcy5faGFuZGxlcnM9aSx0aGlzLl9tdXRhdG9yPWwsdGhpcy5fb3BlcmF0aW9uTG9hZGVyPWE/P251bGwsdGhpcy5fcmVjb3JkU291cmNlUHJveHk9dSx0aGlzLl9yZWNvcmRXYXNNaXNzaW5nPSExLHRoaXMuX3ZhcmlhYmxlcz1yLHRoaXMuX3Nob3VsZFByb2Nlc3NDbGllbnRDb21wb25lbnRzPXN9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuX2dldE11dGF0b3JBbmRSZWNvcmRQcm94eUZvckFjdG9yPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX211dGF0b3JSZWNvcmRTb3VyY2VQcm94eUNhY2hlLmdldChlKTtpZih0PT1udWxsKXt2YXIgbj10aGlzLl9nZXRUYXJnZXRGb3JBY3RvcihlKSxyPW5ldyBpKHRoaXMuX2dldFNvdXJjZUZvckFjdG9yKGUpLG4pO3Q9W3IsbmV3IGEocix0aGlzLl9nZXREYXRhSUQsdm9pZCAwLHRoaXMuX2hhbmRsZXJzKV0sdGhpcy5fbXV0YXRvclJlY29yZFNvdXJjZVByb3h5Q2FjaGUuc2V0KGUsdCl9cmV0dXJuIHR9LHQuY2hlY2s9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fYXNzaWduQ2xpZW50QWJzdHJhY3RUeXBlcyhlKSx0aGlzLl90cmF2ZXJzZShlLHQpLHRoaXMuX3JlY29yZFdhc01pc3Npbmc9PT0hMD97c3RhdHVzOmBtaXNzaW5nYCxtb3N0UmVjZW50bHlJbnZhbGlkYXRlZEF0OnRoaXMuX21vc3RSZWNlbnRseUludmFsaWRhdGVkQXR9OntzdGF0dXM6YGF2YWlsYWJsZWAsbW9zdFJlY2VudGx5SW52YWxpZGF0ZWRBdDp0aGlzLl9tb3N0UmVjZW50bHlJbnZhbGlkYXRlZEF0fX0sdC5fZ2V0VmFyaWFibGVWYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4hdGhpcy5fdmFyaWFibGVzLmhhc093blByb3BlcnR5KGUpJiZ5KCExKSx0aGlzLl92YXJpYWJsZXNbZV19LHQuX2hhbmRsZU1pc3Npbmc9ZnVuY3Rpb24oKXt0aGlzLl9yZWNvcmRXYXNNaXNzaW5nPSEwfSx0Ll9oYW5kbGVNaXNzaW5nU2NhbGFyRmllbGQ9ZnVuY3Rpb24oZSx0KXtpZighKGUubmFtZT09PWBpZGAmJmUuYWxpYXM9PW51bGwmJnModCkpKXt2YXIgbj1lLmFyZ3M9PW51bGw/e306UyhlLmFyZ3MsdGhpcy5fdmFyaWFibGVzKSxpPSgwLHIuZGVmYXVsdCkodGhpcy5faGFuZGxlcnMpLGE7dHJ5e2ZvcihpLnMoKTshKGE9aS5uKCkpLmRvbmU7KXt2YXIgbz1hLnZhbHVlO2lmKG8ua2luZD09PWBzY2FsYXJgKXt2YXIgYz1vLmhhbmRsZShlLHRoaXMuX3JlY29yZFNvdXJjZVByb3h5LmdldCh0KSxuLHRoaXMuX3JlY29yZFNvdXJjZVByb3h5KTtpZihjIT09dm9pZCAwKXJldHVybiBjfX19Y2F0Y2goZSl7aS5lKGUpfWZpbmFsbHl7aS5mKCl9dGhpcy5faGFuZGxlTWlzc2luZygpfX0sdC5faGFuZGxlTWlzc2luZ0xpbmtGaWVsZD1mdW5jdGlvbihlLHQpe3ZhciBuPWUuYXJncz09bnVsbD97fTpTKGUuYXJncyx0aGlzLl92YXJpYWJsZXMpLGk9KDAsci5kZWZhdWx0KSh0aGlzLl9oYW5kbGVycyksYTt0cnl7Zm9yKGkucygpOyEoYT1pLm4oKSkuZG9uZTspe3ZhciBvPWEudmFsdWU7aWYoby5raW5kPT09YGxpbmtlZGApe3ZhciBzPW8uaGFuZGxlKGUsdGhpcy5fcmVjb3JkU291cmNlUHJveHkuZ2V0KHQpLG4sdGhpcy5fcmVjb3JkU291cmNlUHJveHkpO2lmKHMhPT12b2lkIDAmJihzPT09bnVsbHx8dGhpcy5fbXV0YXRvci5nZXRTdGF0dXMocyk9PT1wKSlyZXR1cm4gc319fWNhdGNoKGUpe2kuZShlKX1maW5hbGx5e2kuZigpfXRoaXMuX2hhbmRsZU1pc3NpbmcoKX0sdC5faGFuZGxlTWlzc2luZ1BsdXJhbExpbmtGaWVsZD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT1lLmFyZ3M9PW51bGw/e306UyhlLmFyZ3MsdGhpcy5fdmFyaWFibGVzKSxhPSgwLHIuZGVmYXVsdCkodGhpcy5faGFuZGxlcnMpLG87dHJ5e2ZvcihhLnMoKTshKG89YS5uKCkpLmRvbmU7KXt2YXIgcz1vLnZhbHVlO2lmKHMua2luZD09PWBwbHVyYWxMaW5rZWRgKXt2YXIgYz1zLmhhbmRsZShlLHRoaXMuX3JlY29yZFNvdXJjZVByb3h5LmdldCh0KSxpLHRoaXMuX3JlY29yZFNvdXJjZVByb3h5KTtpZihjIT1udWxsKXtpZihjLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVybiBlIT1udWxsJiZuLl9tdXRhdG9yLmdldFN0YXR1cyhlKT09PXB9KSlyZXR1cm4gY31lbHNlIGlmKGM9PT1udWxsKXJldHVybiBudWxsfX19Y2F0Y2goZSl7YS5lKGUpfWZpbmFsbHl7YS5mKCl9dGhpcy5faGFuZGxlTWlzc2luZygpfSx0Ll90cmF2ZXJzZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX211dGF0b3IuZ2V0U3RhdHVzKHQpO2lmKG49PT1tJiZ0aGlzLl9oYW5kbGVNaXNzaW5nKCksbj09PXApe3ZhciByPXRoaXMuX3NvdXJjZS5nZXQodCksaT1kLmdldEludmFsaWRhdGlvbkVwb2NoKHIpO2khPW51bGwmJih0aGlzLl9tb3N0UmVjZW50bHlJbnZhbGlkYXRlZEF0PXRoaXMuX21vc3RSZWNlbnRseUludmFsaWRhdGVkQXQ9PW51bGw/aTpNYXRoLm1heCh0aGlzLl9tb3N0UmVjZW50bHlJbnZhbGlkYXRlZEF0LGkpKSx0aGlzLl90cmF2ZXJzZVNlbGVjdGlvbnMoZS5zZWxlY3Rpb25zLHQpfX0sdC5fdHJhdmVyc2VTZWxlY3Rpb25zPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztlLmZvckVhY2goZnVuY3Rpb24ocil7c3dpdGNoKHIua2luZCl7Y2FzZWBTY2FsYXJGaWVsZGA6bi5fY2hlY2tTY2FsYXIocix0KTticmVhaztjYXNlYExpbmtlZEZpZWxkYDpyLnBsdXJhbD9uLl9jaGVja1BsdXJhbExpbmsocix0KTpuLl9jaGVja0xpbmsocix0KTticmVhaztjYXNlYEFjdG9yQ2hhbmdlYDpuLl9jaGVja0FjdG9yQ2hhbmdlKHIubGlua2VkRmllbGQsdCk7YnJlYWs7Y2FzZWBDb25kaXRpb25gOiEhbi5fZ2V0VmFyaWFibGVWYWx1ZShyLmNvbmRpdGlvbik9PT1yLnBhc3NpbmdWYWx1ZSYmbi5fdHJhdmVyc2VTZWxlY3Rpb25zKHIuc2VsZWN0aW9ucyx0KTticmVhaztjYXNlYElubGluZUZyYWdtZW50YDp2YXIgaT1yLmFic3RyYWN0S2V5O2lmKGk9PW51bGwpbi5fbXV0YXRvci5nZXRUeXBlKHQpPT09ci50eXBlJiZuLl90cmF2ZXJzZVNlbGVjdGlvbnMoci5zZWxlY3Rpb25zLHQpO2Vsc2V7dmFyIGE9bi5fbXV0YXRvci5nZXRUeXBlKHQpO2E/P3koITEpO3ZhciBvPXYoYSkscz1uLl9tdXRhdG9yLmdldFZhbHVlKG8saSk7cz09PSEwP24uX3RyYXZlcnNlU2VsZWN0aW9ucyhyLnNlbGVjdGlvbnMsdCk6cz8/bi5faGFuZGxlTWlzc2luZygpfWJyZWFrO2Nhc2VgTGlua2VkSGFuZGxlYDp2YXIgZD1jKHIsZSxuLl92YXJpYWJsZXMpO2QucGx1cmFsP24uX2NoZWNrUGx1cmFsTGluayhkLHQpOm4uX2NoZWNrTGluayhkLHQpO2JyZWFrO2Nhc2VgU2NhbGFySGFuZGxlYDp2YXIgZj1sKHIsZSxuLl92YXJpYWJsZXMpO24uX2NoZWNrU2NhbGFyKGYsdCk7YnJlYWs7Y2FzZWBNb2R1bGVJbXBvcnRgOm4uX2NoZWNrTW9kdWxlSW1wb3J0KHIsdCk7YnJlYWs7Y2FzZWBEZWZlcmA6Y2FzZWBTdHJlYW1gOm4uX3RyYXZlcnNlU2VsZWN0aW9ucyhyLnNlbGVjdGlvbnMsdCk7YnJlYWs7Y2FzZWBGcmFnbWVudFNwcmVhZGA6dmFyIHA9bi5fdmFyaWFibGVzO24uX3ZhcmlhYmxlcz11KG4uX3ZhcmlhYmxlcyxyLmZyYWdtZW50LmFyZ3VtZW50RGVmaW5pdGlvbnMsci5hcmdzKSxuLl90cmF2ZXJzZVNlbGVjdGlvbnMoci5mcmFnbWVudC5zZWxlY3Rpb25zLHQpLG4uX3ZhcmlhYmxlcz1wO2JyZWFrO2Nhc2VgQ2xpZW50RXh0ZW5zaW9uYDp2YXIgbT1uLl9yZWNvcmRXYXNNaXNzaW5nO24uX3RyYXZlcnNlU2VsZWN0aW9ucyhyLnNlbGVjdGlvbnMsdCksbi5fcmVjb3JkV2FzTWlzc2luZz1tO2JyZWFrO2Nhc2VgVHlwZURpc2NyaW1pbmF0b3JgOnZhciBoPXIuYWJzdHJhY3RLZXksZz1uLl9tdXRhdG9yLmdldFR5cGUodCk7Zz8/eSghMSk7dmFyIF89dihnKTtuLl9tdXRhdG9yLmdldFZhbHVlKF8saCk/P24uX2hhbmRsZU1pc3NpbmcoKTticmVhaztjYXNlYENsaWVudENvbXBvbmVudGA6aWYobi5fc2hvdWxkUHJvY2Vzc0NsaWVudENvbXBvbmVudHM9PT0hMSlicmVhaztuLl90cmF2ZXJzZVNlbGVjdGlvbnMoci5mcmFnbWVudC5zZWxlY3Rpb25zLHQpO2JyZWFrO2Nhc2VgUmVsYXlSZXNvbHZlcmA6bi5fY2hlY2tSZXNvbHZlcihyLHQpO2JyZWFrO2Nhc2VgUmVsYXlMaXZlUmVzb2x2ZXJgOm4uX2NoZWNrUmVzb2x2ZXIocix0KTticmVhaztjYXNlYENsaWVudEVkZ2VUb0NsaWVudE9iamVjdGA6bi5fY2hlY2tSZXNvbHZlcihyLmJhY2tpbmdGaWVsZCx0KTticmVhaztkZWZhdWx0OnkoITEpfX0pfSx0Ll9jaGVja1Jlc29sdmVyPWZ1bmN0aW9uKGUsdCl7ZS5mcmFnbWVudCYmdGhpcy5fdHJhdmVyc2VTZWxlY3Rpb25zKFtlLmZyYWdtZW50XSx0KX0sdC5fY2hlY2tNb2R1bGVJbXBvcnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9vcGVyYXRpb25Mb2FkZXI7bj09PW51bGwmJnkoITEpO3ZhciByPWIoZS5kb2N1bWVudE5hbWUpLGk9dGhpcy5fbXV0YXRvci5nZXRWYWx1ZSh0LHIpO2lmKGk9PW51bGwpe2k9PT12b2lkIDAmJnRoaXMuX2hhbmRsZU1pc3NpbmcoKTtyZXR1cm59dmFyIGE9bi5nZXQoaSk7aWYoYSE9bnVsbCl7dmFyIHM9byhhKSxjPXRoaXMuX3ZhcmlhYmxlczt0aGlzLl92YXJpYWJsZXM9dSh0aGlzLl92YXJpYWJsZXMscy5hcmd1bWVudERlZmluaXRpb25zLGUuYXJncyksdGhpcy5fdHJhdmVyc2Uocyx0KSx0aGlzLl92YXJpYWJsZXM9Y31lbHNlIHRoaXMuX2hhbmRsZU1pc3NpbmcoKX0sdC5fY2hlY2tTY2FsYXI9ZnVuY3Rpb24oZSx0KXt2YXIgbj14KGUsdGhpcy5fdmFyaWFibGVzKSxyPXRoaXMuX211dGF0b3IuZ2V0VmFsdWUodCxuKTtyPT09dm9pZCAwJiYocj10aGlzLl9oYW5kbGVNaXNzaW5nU2NhbGFyRmllbGQoZSx0KSxyIT09dm9pZCAwJiZ0aGlzLl9tdXRhdG9yLnNldFZhbHVlKHQsbixyKSl9LHQuX2NoZWNrTGluaz1mdW5jdGlvbihlLHQpe3ZhciBuPXgoZSx0aGlzLl92YXJpYWJsZXMpLHI9dGhpcy5fbXV0YXRvci5nZXRMaW5rZWRSZWNvcmRJRCh0LG4pO3I9PT12b2lkIDAmJihyPXRoaXMuX2hhbmRsZU1pc3NpbmdMaW5rRmllbGQoZSx0KSxyPT1udWxsP3I9PT1udWxsJiZ0aGlzLl9tdXRhdG9yLnNldFZhbHVlKHQsbixudWxsKTp0aGlzLl9tdXRhdG9yLnNldExpbmtlZFJlY29yZElEKHQsbixyKSksciE9bnVsbCYmdGhpcy5fdHJhdmVyc2UoZSxyKX0sdC5fY2hlY2tQbHVyYWxMaW5rPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPXgoZSx0aGlzLl92YXJpYWJsZXMpLGk9dGhpcy5fbXV0YXRvci5nZXRMaW5rZWRSZWNvcmRJRHModCxyKTtpPT09dm9pZCAwJiYoaT10aGlzLl9oYW5kbGVNaXNzaW5nUGx1cmFsTGlua0ZpZWxkKGUsdCksaT09bnVsbD9pPT09bnVsbCYmdGhpcy5fbXV0YXRvci5zZXRWYWx1ZSh0LHIsbnVsbCk6dGhpcy5fbXV0YXRvci5zZXRMaW5rZWRSZWNvcmRJRHModCxyLGkpKSxpJiZpLmZvckVhY2goZnVuY3Rpb24odCl7dCE9bnVsbCYmbi5fdHJhdmVyc2UoZSx0KX0pfSx0Ll9jaGVja0FjdG9yQ2hhbmdlPWZ1bmN0aW9uKGUsdCl7dmFyIG49eChlLHRoaXMuX3ZhcmlhYmxlcykscj10aGlzLl9zb3VyY2UuZ2V0KHQpLGk9cj09bnVsbD9yOmQuZ2V0QWN0b3JMaW5rZWRSZWNvcmRJRChyLG4pO2lmKGk9PW51bGwpaT09PXZvaWQgMCYmdGhpcy5faGFuZGxlTWlzc2luZygpO2Vsc2V7dmFyIGE9aVswXSxvPWlbMV0scz10aGlzLl9zb3VyY2UsYz10aGlzLl9tdXRhdG9yLGw9dGhpcy5fcmVjb3JkU291cmNlUHJveHksdT10aGlzLl9nZXRNdXRhdG9yQW5kUmVjb3JkUHJveHlGb3JBY3RvcihhKSxmPXVbMF0scD11WzFdO3RoaXMuX3NvdXJjZT10aGlzLl9nZXRTb3VyY2VGb3JBY3RvcihhKSx0aGlzLl9tdXRhdG9yPWYsdGhpcy5fcmVjb3JkU291cmNlUHJveHk9cCx0aGlzLl9hc3NpZ25DbGllbnRBYnN0cmFjdFR5cGVzKGUpLHRoaXMuX3RyYXZlcnNlKGUsbyksdGhpcy5fc291cmNlPXMsdGhpcy5fbXV0YXRvcj1jLHRoaXMuX3JlY29yZFNvdXJjZVByb3h5PWx9fSx0Ll9hc3NpZ25DbGllbnRBYnN0cmFjdFR5cGVzPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xpZW50QWJzdHJhY3RUeXBlcztpZih0IT1udWxsKWZvcih2YXIgbj0wLGk9T2JqZWN0LmtleXModCk7bjxpLmxlbmd0aDtuKyspe3ZhciBhPWlbbl0sbz0oMCxyLmRlZmF1bHQpKHRbYV0pLHM7dHJ5e2ZvcihvLnMoKTshKHM9by5uKCkpLmRvbmU7KXt2YXIgYz1zLnZhbHVlLGw9dihjKTt0aGlzLl9zb3VyY2UuZ2V0KGwpPz90aGlzLl9tdXRhdG9yLmNyZWF0ZShsLF8pLHRoaXMuX211dGF0b3IuZ2V0VmFsdWUobCxhKT8/dGhpcy5fbXV0YXRvci5zZXRWYWx1ZShsLGEsITApfX1jYXRjaChlKXtvLmUoZSl9ZmluYWxseXtvLmYoKX19fSxlfSgpO3QuZXhwb3J0cz17Y2hlY2s6Q319KSksQXA9cygoKGUsdCk9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHlwZW9mIGU9PWBvYmplY3RgJiZlJiYoQXJyYXkuaXNBcnJheShlKXx8ZS5jb25zdHJ1Y3Rvcj09PU9iamVjdCkmJk9iamVjdC5mcmVlemUoZSl9fSkpLGpwPXMoKChlLHQpPT57dmFyIG49SmYoKSxyPW5mKCkuUkVMQVlfUkVTT0xWRVJfT1VUUFVUX1RZUEVfUkVDT1JEX0lEUyxpPUZkKCk7ZnVuY3Rpb24gYShlKXt2YXIgdD1uLmdldFZhbHVlKGUscik7cmV0dXJuIHQ9PW51bGw/bnVsbDooISh0IGluc3RhbmNlb2YgU2V0KSYmaSghMSksdCl9dC5leHBvcnRzPWF9KSksTXA9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJiEhZSYmdHlwZW9mIGUucmVhZD09YGZ1bmN0aW9uYCYmdHlwZW9mIGUuc3Vic2NyaWJlPT1gZnVuY3Rpb25gfXQuZXhwb3J0cz1ufSkpLE5wPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihIZCgpKSxpPUhmKCksYT1QZCgpLlJFTEFZX0xJVkVfUkVTT0xWRVIsbz12ZigpLHM9QXAoKSxjPWJmKCksbD1jLmdlbmVyYXRlQ2xpZW50SUQsdT1jLmdlbmVyYXRlQ2xpZW50T2JqZWN0Q2xpZW50SUQsZD1KZigpLGY9b2YoKS5jcmVhdGVOb3JtYWxpemF0aW9uU2VsZWN0b3IscD1YZigpLG09dHAoKS5ub3JtYWxpemUsaD1uZigpLGc9aC5SRUxBWV9SRVNPTFZFUl9FUlJPUl9LRVksXz1oLlJFTEFZX1JFU09MVkVSX0lOVkFMSURBVElPTl9LRVksdj1oLlJFTEFZX1JFU09MVkVSX09VVFBVVF9UWVBFX1JFQ09SRF9JRFMseT1oLlJFTEFZX1JFU09MVkVSX1NOQVBTSE9UX0tFWSxiPWguUkVMQVlfUkVTT0xWRVJfVkFMVUVfS0VZLHg9aC5nZXRTdG9yYWdlS2V5LFM9anAoKSxDPU1wKCksdz1LZigpLmlzU3VzcGVuc2VTZW50aW5lbCxUPUZkKCk7TGQoKTt2YXIgRT1gX19yZXNvbHZlckxpdmVTdGF0ZVN1YnNjcmlwdGlvbmAsRD1gX19yZXNvbHZlckxpdmVTdGF0ZVZhbHVlYCxPPWBfX3Jlc29sdmVyTGl2ZVN0YXRlRGlydHlgLGs9YF9fUkVMQVlfUkVTT0xWRVJfX2AsQT1gX19yZWxheV9tb2RlbF9pbnN0YW5jZWA7ZnVuY3Rpb24gaihlLHQsbil7dmFyIHI9ZS5nZXQodCk7cnx8KHI9bmV3IFNldCxlLnNldCh0LHIpKSxyLmFkZChuKX12YXIgTT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXt0aGlzLl9yZXNvbHZlcklEVG9SZWNvcmRJRHM9bmV3IE1hcCx0aGlzLl9yZWNvcmRJRFRvUmVzb2x2ZXJJRHM9bmV3IE1hcCx0aGlzLl9nZXRSZWNvcmRTb3VyY2U9ZSx0aGlzLl9zdG9yZT10LHRoaXMuX2hhbmRsaW5nQmF0Y2g9ITEsdGhpcy5fbGl2ZVJlc29sdmVyQmF0Y2hSZWNvcmRTb3VyY2U9bnVsbH12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5yZWFkRnJvbUNhY2hlT3JFdmFsdWF0ZT1mdW5jdGlvbihlLHQsbixpLG8pe3ZhciBzPXRoaXMuX2dldFJlY29yZFNvdXJjZSgpLGM9eihzLGUpLHU9eCh0LG4pLGY9ZC5nZXRMaW5rZWRSZWNvcmRJRChjLHUpLHA9Zj09bnVsbD9udWxsOnMuZ2V0KGYpLG07aWYocD09bnVsbHx8dGhpcy5faXNJbnZhbGlkKHAsbykpe3AhPW51bGwmJlIocCksZj1mPz9sKGUsdSkscD1kLmNyZWF0ZShmLGspO3ZhciBoPWkoKTtpZihkLnNldFZhbHVlKHAseSxoLnNuYXBzaG90KSxkLnNldFZhbHVlKHAsZyxoLmVycm9yKSx0LmtpbmQ9PT1hKXtpZihoLnJlc29sdmVyUmVzdWx0IT1udWxsKXtoLmVycm9yIT1udWxsJiZUKCExKTt2YXIgXz1oLnJlc29sdmVyUmVzdWx0O209dGhpcy5fc2V0TGl2ZVN0YXRlVmFsdWUocCxmLF8sdCxuKX19ZWxzZSBtPXRoaXMuX3NldFJlc29sdmVyVmFsdWUocCxoLnJlc29sdmVyUmVzdWx0LHQsbik7cy5zZXQoZixwKTt2YXIgdj16KHMsZSksYj1kLmNsb25lKHYpO2lmKGQuc2V0TGlua2VkUmVjb3JkSUQoYix1LGYpLHMuc2V0KGUsYiksdC5mcmFnbWVudCE9bnVsbCl7dmFyIFMsRT1sKGUseCh0LmZyYWdtZW50LG4pKTtqKHRoaXMuX3Jlc29sdmVySURUb1JlY29yZElEcyxFLGYpLGoodGhpcy5fcmVjb3JkSURUb1Jlc29sdmVySURzLGUsRSk7dmFyIEE9KFM9aC5zbmFwc2hvdCk9PW51bGw/dm9pZCAwOlMuc2VlblJlY29yZHM7aWYoQSE9bnVsbCl7dmFyIE09KDAsci5kZWZhdWx0KShBKSxOO3RyeXtmb3IoTS5zKCk7IShOPU0ubigpKS5kb25lOyl7dmFyIFA9Ti52YWx1ZTtqKHRoaXMuX3JlY29yZElEVG9SZXNvbHZlcklEcyxQLEUpfX1jYXRjaChlKXtNLmUoZSl9ZmluYWxseXtNLmYoKX19fX1lbHNlIGlmKHQua2luZD09PWEmJmQuZ2V0VmFsdWUocCxPKSl7Zj1mPz9sKGUsdSkscD1kLmNsb25lKHApO3ZhciBGPWQuZ2V0VmFsdWUocCxEKTtDKEYpfHxUKCExKSxtPXRoaXMuX3NldExpdmVSZXNvbHZlclZhbHVlKHAsRix0LG4pLGQuc2V0VmFsdWUocCxPLCExKSxzLnNldChmLHApfXZhciBlZT10aGlzLl9nZXRSZXNvbHZlclZhbHVlKHApLEk9ZC5nZXRWYWx1ZShwLHkpLEw9ZC5nZXRWYWx1ZShwLGcpLHRlPW51bGw7cmV0dXJuIHcoZWUpJiYodGU9Zj8/bChlLHUpKSxbZWUsZixMLEksdGUsbV19LHQuZ2V0TGl2ZVJlc29sdmVyUHJvbWlzZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9nZXRSZWNvcmRTb3VyY2UoKS5nZXQoZSk7dD8/VCghMSk7dmFyIG49ZC5nZXRWYWx1ZSh0LEQpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXt2YXIgdD1uLnN1YnNjcmliZShmdW5jdGlvbigpe3QoKSxlKCl9KX0pfSx0Ll9zZXRMaXZlU3RhdGVWYWx1ZT1mdW5jdGlvbihlLHQsbixyLGkpe3ZhciBhPXRoaXMuX21ha2VMaXZlU3RhdGVIYW5kbGVyKHQpLG89bi5zdWJzY3JpYmUoYSk7ZC5zZXRWYWx1ZShlLEQsbik7dmFyIHM9dGhpcy5fc2V0TGl2ZVJlc29sdmVyVmFsdWUoZSxuLHIsaSk7cmV0dXJuIGQuc2V0VmFsdWUoZSxPLCExKSxkLnNldFZhbHVlKGUsRSxvKSxzfSx0Ll9tYWtlTGl2ZVN0YXRlSGFuZGxlcj1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQuX2dldFJlY29yZFNvdXJjZSgpLmdldChlKTtpZihuJiZkLmhhc1ZhbHVlKG4sRCkpe3ZhciByPWQuY2xvbmUobik7ZC5zZXRWYWx1ZShyLE8sITApLHQuX3NldExpdmVSZXNvbHZlclVwZGF0ZShlLHIpfX19LHQuX3NldExpdmVSZXNvbHZlclVwZGF0ZT1mdW5jdGlvbihlLHQpe2lmKHRoaXMuX2hhbmRsaW5nQmF0Y2gpdGhpcy5fbGl2ZVJlc29sdmVyQmF0Y2hSZWNvcmRTb3VyY2U/Pyh0aGlzLl9saXZlUmVzb2x2ZXJCYXRjaFJlY29yZFNvdXJjZT1wLmNyZWF0ZSgpKSx0aGlzLl9saXZlUmVzb2x2ZXJCYXRjaFJlY29yZFNvdXJjZS5zZXQoZSx0KTtlbHNle3ZhciBuPXAuY3JlYXRlKCk7bi5zZXQoZSx0KSx0aGlzLl9zdG9yZS5wdWJsaXNoKG4pLHRoaXMuX3N0b3JlLm5vdGlmeSgpfX0sdC5iYXRjaExpdmVTdGF0ZVVwZGF0ZXM9ZnVuY3Rpb24oZSl7dGhpcy5faGFuZGxpbmdCYXRjaCYmVCghMSksdGhpcy5faGFuZGxpbmdCYXRjaD0hMDt0cnl7ZSgpfWZpbmFsbHl7dGhpcy5fbGl2ZVJlc29sdmVyQmF0Y2hSZWNvcmRTb3VyY2UhPW51bGwmJih0aGlzLl9zdG9yZS5wdWJsaXNoKHRoaXMuX2xpdmVSZXNvbHZlckJhdGNoUmVjb3JkU291cmNlKSx0aGlzLl9zdG9yZS5ub3RpZnkoKSksdGhpcy5fbGl2ZVJlc29sdmVyQmF0Y2hSZWNvcmRTb3VyY2U9bnVsbCx0aGlzLl9oYW5kbGluZ0JhdGNoPSExfX0sdC5fc2V0TGl2ZVJlc29sdmVyVmFsdWU9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9bnVsbCxhPW51bGw7dHJ5e2k9dC5yZWFkKCl9Y2F0Y2goZSl7YT1lfXJldHVybiBkLnNldFZhbHVlKGUsZyxhKSx0aGlzLl9zZXRSZXNvbHZlclZhbHVlKGUsaSxuLHIpfSx0Ll9zZXRSZXNvbHZlclZhbHVlPWZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBhPW4ubm9ybWFsaXphdGlvbkluZm8sbz1udWxsO2lmKHQhPW51bGwmJmEhPW51bGwmJiF3KHQpKXt2YXIgYyxsPVMoZSksZj1uZXcgU2V0LG09dGhpcy5fZ2V0UmVjb3JkU291cmNlKCk7aWYoYS5wbHVyYWwpeyFBcnJheS5pc0FycmF5KHQpJiZUKCExKSxjPVtdO2Zvcih2YXIgaD1wLmNyZWF0ZSgpLGc9MDtnPHQubGVuZ3RoO2crKyl7dmFyIF89dFtnXTtpZihfIT1udWxsKXt0eXBlb2YgXyE9YG9iamVjdGAmJlQoITEpO3ZhciB5PW5lKGEsXykseD11KHksZC5nZXREYXRhSUQoZSksZyksQz10aGlzLl9ub3JtYWxpemVPdXRwdXRUeXBlVmFsdWUoeCxfLGksYSxbbi5wYXRoLFN0cmluZyhnKV0seSksRT0oMCxyLmRlZmF1bHQpKEMuZ2V0UmVjb3JkSURzKCkpLEQ7dHJ5e2ZvcihFLnMoKTshKEQ9RS5uKCkpLmRvbmU7KXt2YXIgTz1ELnZhbHVlO2guc2V0KE8seihDLE8pKSxmLmFkZChPKX19Y2F0Y2goZSl7RS5lKGUpfWZpbmFsbHl7RS5mKCl9Yy5wdXNoKHgpfX1vPU4obSxoLGwpfWVsc2V7dHlwZW9mIHQhPWBvYmplY3RgJiZUKCExKTt2YXIgaz1uZShhLHQpLEE9dShrLGQuZ2V0RGF0YUlEKGUpKSxqPXRoaXMuX25vcm1hbGl6ZU91dHB1dFR5cGVWYWx1ZShBLHQsaSxhLFtuLnBhdGhdLGspLE09KDAsci5kZWZhdWx0KShqLmdldFJlY29yZElEcygpKSxQO3RyeXtmb3IoTS5zKCk7IShQPU0ubigpKS5kb25lOyl7dmFyIEY9UC52YWx1ZTtmLmFkZChGKX19Y2F0Y2goZSl7TS5lKGUpfWZpbmFsbHl7TS5mKCl9Yz1BLG89TihtLGosbCl9ZC5zZXRWYWx1ZShlLHYsZikscyhjKSxkLnNldFZhbHVlKGUsYixjKX1lbHNlIHModCksZC5zZXRWYWx1ZShlLGIsdCk7cmV0dXJuIG99LHQubm90aWZ5VXBkYXRlZFN1YnNjcmliZXJzPWZ1bmN0aW9uKGUpe3RoaXMuX3N0b3JlLl9fbm90aWZ5VXBkYXRlZFN1YnNjcmliZXJzKGUpfSx0Ll9nZXRSZXNvbHZlclZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBkLmdldFZhbHVlKGUsYil9LHQuaW52YWxpZGF0ZURhdGFJRHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMuX2dldFJlY29yZFNvdXJjZSgpLG49bmV3IFNldCxpPUFycmF5LmZyb20oZSk7aS5sZW5ndGg7KXt2YXIgYT1pLnBvcCgpO24uYWRkKGEpLGUuYWRkKGEpO3ZhciBvPXRoaXMuX3JlY29yZElEVG9SZXNvbHZlcklEcy5nZXQoYSk7aWYobyE9bnVsbCl7dmFyIHM9KDAsci5kZWZhdWx0KShvKSxjO3RyeXtmb3Iocy5zKCk7IShjPXMubigpKS5kb25lOyl7dmFyIGw9Yy52YWx1ZTtpZighbi5oYXMobCkpe24uYWRkKGwpO3ZhciB1PXRoaXMuX3Jlc29sdmVySURUb1JlY29yZElEcy5nZXQobCk7aWYodT09bnVsbCljb250aW51ZTt2YXIgZD0oMCxyLmRlZmF1bHQpKHUpLGY7dHJ5e2ZvcihkLnMoKTshKGY9ZC5uKCkpLmRvbmU7KXt2YXIgcD1mLnZhbHVlO0YocCx0KSxuLmhhcyhwKXx8KG4uYWRkKHApLGkucHVzaChwKSl9fWNhdGNoKGUpe2QuZShlKX1maW5hbGx5e2QuZigpfX19fWNhdGNoKGUpe3MuZShlKX1maW5hbGx5e3MuZigpfX19fSx0Ll9pc0ludmFsaWQ9ZnVuY3Rpb24oZSx0KXtpZighZC5nZXRWYWx1ZShlLF8pKXJldHVybiExO3ZhciBuPWQuZ2V0VmFsdWUoZSx5KSxyPW49PW51bGw/dm9pZCAwOm4uZGF0YSxhPW49PW51bGw/dm9pZCAwOm4uc2VsZWN0b3I7aWYocj09bnVsbHx8YT09bnVsbClyZXR1cm4hMDt2YXIgcz10KGEpLmRhdGE7aWYoaShyLHMpIT09cilyZXR1cm4hMDtpZihvLk1BUktfUkVTT0xWRVJfVkFMVUVTX0FTX0NMRUFOX0FGVEVSX0ZSQUdNRU5UX1JFUkVBRCl7dmFyIGM9ZC5jbG9uZShlKTtkLnNldFZhbHVlKGMsXywhMSksdGhpcy5fZ2V0UmVjb3JkU291cmNlKCkuc2V0KGQuZ2V0RGF0YUlEKGUpLGMpfXJldHVybiExfSx0Ll9ub3JtYWxpemVPdXRwdXRUeXBlVmFsdWU9ZnVuY3Rpb24oZSx0LG4scixpLGEpe3ZhciBvPXAuY3JlYXRlKCk7c3dpdGNoKHIua2luZCl7Y2FzZWBPdXRwdXRUeXBlYDp2YXIgcz1kLmNyZWF0ZShlLGEpO3JldHVybiBvLnNldChlLHMpLG0obyxmKHIubm9ybWFsaXphdGlvbk5vZGUsZSxuKSx0LHRoaXMuX3N0b3JlLl9fZ2V0Tm9ybWFsaXphdGlvbk9wdGlvbnMoaSkpLnNvdXJjZTtjYXNlYFdlYWtNb2RlbGA6dmFyIGM9ZC5jcmVhdGUoZSxhKTtyZXR1cm4gZC5zZXRWYWx1ZShjLEEsdCksby5zZXQoZSxjKSxvO2RlZmF1bHQ6ci5raW5kLFQoITEpfX0sdC5lbnN1cmVDbGllbnRSZWNvcmQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj11KHQsZSkscj10aGlzLl9nZXRSZWNvcmRTb3VyY2UoKTtpZighci5oYXMobikpe3ZhciBpPWQuY3JlYXRlKG4sdCk7ZC5zZXRWYWx1ZShpLGBpZGAsZSksci5zZXQobixpKX1yZXR1cm4gbn0sdC51bnN1YnNjcmliZUZyb21MaXZlUmVzb2x2ZXJSZWNvcmRzPWZ1bmN0aW9uKGUpe3JldHVybiBJKHRoaXMuX2dldFJlY29yZFNvdXJjZSgpLGUpfSx0LmludmFsaWRhdGVSZXNvbHZlclJlY29yZHM9ZnVuY3Rpb24oZSl7aWYoZS5zaXplIT09MCl7dmFyIHQ9KDAsci5kZWZhdWx0KShlKSxuO3RyeXtmb3IodC5zKCk7IShuPXQubigpKS5kb25lOyl7dmFyIGk9bi52YWx1ZSxhPXRoaXMuX2dldFJlY29yZFNvdXJjZSgpLmdldChpKTthIT1udWxsJiZMKGEpJiZ0aGlzLl9nZXRSZWNvcmRTb3VyY2UoKS5kZWxldGUoaSl9fWNhdGNoKGUpe3QuZShlKX1maW5hbGx5e3QuZigpfX19LGV9KCk7ZnVuY3Rpb24gTihlLHQsbil7dmFyIGk9bmV3IFNldDtpZihuIT1udWxsKXt2YXIgYT0oMCxyLmRlZmF1bHQpKG4pLG87dHJ5e2ZvcihhLnMoKTshKG89YS5uKCkpLmRvbmU7KXt2YXIgcz1vLnZhbHVlO3QuaGFzKHMpfHwoaS5hZGQocyksZS5yZW1vdmUocykpfX1jYXRjaChlKXthLmUoZSl9ZmluYWxseXthLmYoKX19dmFyIGM9KDAsci5kZWZhdWx0KSh0LmdldFJlY29yZElEcygpKSxsO3RyeXtmb3IoYy5zKCk7IShsPWMubigpKS5kb25lOyl7dmFyIHU9bC52YWx1ZSxmPXoodCx1KTtpZihlLmhhcyh1KSl7dmFyIHA9eihlLHUpLG09ZC51cGRhdGUocCxmKTttIT09cCYmKGkuYWRkKHUpLGUuc2V0KHUsbSksZWUocCxlKSl9ZWxzZSBlLnNldCh1LGYpfX1jYXRjaChlKXtjLmUoZSl9ZmluYWxseXtjLmYoKX1yZXR1cm4gaX1mdW5jdGlvbiBQKGUpe3ZhciB0PW5ldyBTZXQ7cmV0dXJuIGQuZ2V0RmllbGRzKGUpLmZvckVhY2goZnVuY3Rpb24obil7aWYoZC5oYXNMaW5rZWRSZWNvcmRJRChlLG4pKXt2YXIgcj1kLmdldExpbmtlZFJlY29yZElEKGUsbik7ciE9bnVsbCYmdC5hZGQocil9ZWxzZSBpZihkLmhhc0xpbmtlZFJlY29yZElEcyhlLG4pKXt2YXIgaTsoaT1kLmdldExpbmtlZFJlY29yZElEcyhlLG4pKT09bnVsbHx8aS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UhPW51bGwmJnQuYWRkKGUpfSl9fSksdH1mdW5jdGlvbiBGKGUsdCl7dmFyIG49dC5nZXQoZSk7aWYobil7dmFyIHI9ZC5jbG9uZShuKTtkLnNldFZhbHVlKHIsXywhMCksdC5zZXQoZSxyKX19ZnVuY3Rpb24gZWUoZSx0KXt2YXIgbj1QKGUpLGk9KDAsci5kZWZhdWx0KShuKSxhO3RyeXtmb3IoaS5zKCk7IShhPWkubigpKS5kb25lOyl7dmFyIG89YS52YWx1ZSxzPXQuZ2V0KG8pO3MhPW51bGwmJkwocykmJkYobyx0KX19Y2F0Y2goZSl7aS5lKGUpfWZpbmFsbHl7aS5mKCl9fWZ1bmN0aW9uIEkoZSx0KXtpZih0LnNpemUhPT0wKXt2YXIgbj0oMCxyLmRlZmF1bHQpKHQpLGk7dHJ5e2ZvcihuLnMoKTshKGk9bi5uKCkpLmRvbmU7KXt2YXIgYT1pLnZhbHVlLG89ZS5nZXQoYSk7byE9bnVsbCYmTChvKSYmUihvKX19Y2F0Y2goZSl7bi5lKGUpfWZpbmFsbHl7bi5mKCl9fX1mdW5jdGlvbiBMKGUpe3JldHVybiBkLmdldFR5cGUoZSk9PT1rfWZ1bmN0aW9uIFIoZSl7dmFyIHQ9ZC5nZXRWYWx1ZShlLEUpO3QhPW51bGwmJnQoKX1mdW5jdGlvbiB6KGUsdCl7dmFyIG49ZS5nZXQodCk7cmV0dXJuIG4/P1QoITEpLG59ZnVuY3Rpb24gdGUoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gbmUoZSx0KXt2YXIgbj1lLmNvbmNyZXRlVHlwZT8/dC5fX3R5cGVuYW1lO3JldHVybiBuPz9UKCExKSxufXQuZXhwb3J0cz17TGl2ZVJlc29sdmVyQ2FjaGU6TSxnZXRVcGRhdGVkRGF0YUlEczp0ZSxSRUxBWV9SRVNPTFZFUl9MSVZFX1NUQVRFX1NVQlNDUklQVElPTl9LRVk6RX19KSksUHA9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEpkKCkpLGk9SmYoKSxhPVhmKCksbz1GZCgpLHM9aS5mcm9tT2JqZWN0KE9iamVjdC5mcmVlemUoe19fVU5QVUJMSVNIX1JFQ09SRF9TRU5USU5FTDohMH0pKSxjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt0aGlzLl9iYXNlPWUsdGhpcy5fc2luaz1hLmNyZWF0ZSgpfXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0Lmhhcz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fc2luay5oYXMoZSk/dGhpcy5fc2luay5nZXQoZSkhPT1zOnRoaXMuX2Jhc2UuaGFzKGUpfSx0LmdldD1mdW5jdGlvbihlKXtpZih0aGlzLl9zaW5rLmhhcyhlKSl7dmFyIHQ9dGhpcy5fc2luay5nZXQoZSk7cmV0dXJuIHQ9PT1zP3ZvaWQgMDp0fWVsc2UgcmV0dXJuIHRoaXMuX2Jhc2UuZ2V0KGUpfSx0LmdldFN0YXR1cz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmdldChlKTtyZXR1cm4gdD09PXZvaWQgMD9gVU5LTk9XTmA6dD09PW51bGw/YE5PTkVYSVNURU5UYDpgRVhJU1RFTlRgfSx0LmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fYmFzZT1hLmNyZWF0ZSgpLHRoaXMuX3NpbmsuY2xlYXIoKX0sdC5kZWxldGU9ZnVuY3Rpb24oZSl7dGhpcy5fc2luay5kZWxldGUoZSl9LHQucmVtb3ZlPWZ1bmN0aW9uKGUpe3RoaXMuX3Npbmsuc2V0KGUscyl9LHQuc2V0PWZ1bmN0aW9uKGUsdCl7dGhpcy5fc2luay5zZXQoZSx0KX0sdC5nZXRSZWNvcmRJRHM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy50b0pTT04oKSl9LHQuc2l6ZT1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLnRvSlNPTigpKS5sZW5ndGh9LHQudG9KU09OPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PSgwLHIuZGVmYXVsdCkoe30sdGhpcy5fYmFzZS50b0pTT04oKSk7cmV0dXJuIHRoaXMuX3NpbmsuZ2V0UmVjb3JkSURzKCkuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcj1lLmdldChuKTtyPT09dm9pZCAwP2RlbGV0ZSB0W25dOnRbbl09aS50b0pTT04ocil9KSx0fSx0LmdldE9wdGltaXN0aWNSZWNvcmRJRHM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFNldCh0aGlzLl9zaW5rLmdldFJlY29yZElEcygpKX0sZX0oKTtmdW5jdGlvbiBsKGUpe3JldHVybiBuZXcgYyhlKX1mdW5jdGlvbiB1KGUpe3JldHVybiEoZSBpbnN0YW5jZW9mIGMpJiZvKCExKSxlLmdldE9wdGltaXN0aWNSZWNvcmRJRHMoKX10LmV4cG9ydHM9e2NyZWF0ZTpsLGdldE9wdGltaXN0aWNSZWNvcmRJRHM6dX19KSksRnA9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEhkKCkpLGk9ZHAoKSxhPURwKCksbz1qcCgpLHM9cmYoKS5nZXRMb2NhbFZhcmlhYmxlcyxjPUpmKCksbD1uZigpLHU9ZXAoKS5nZW5lcmF0ZVR5cGVJRCxkPUZkKCksZj1sLmdldFN0b3JhZ2VLZXkscD1sLmdldE1vZHVsZU9wZXJhdGlvbktleTtmdW5jdGlvbiBtKGUsdCxuLHIsaSl7dmFyIGE9dC5kYXRhSUQsbz10Lm5vZGUscz10LnZhcmlhYmxlcztuZXcgaChlLHMsbixyLGkpLm1hcmsobyxhKX12YXIgaD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4scixpKXt0aGlzLl9vcGVyYXRpb25Mb2FkZXI9cj8/bnVsbCx0aGlzLl9vcGVyYXRpb25OYW1lPW51bGwsdGhpcy5fcmVjb3JkU291cmNlPWUsdGhpcy5fcmVmZXJlbmNlcz1uLHRoaXMuX3ZhcmlhYmxlcz10LHRoaXMuX3Nob3VsZFByb2Nlc3NDbGllbnRDb21wb25lbnRzPWl9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQubWFyaz1mdW5jdGlvbihlLHQpeyhlLmtpbmQ9PT1gT3BlcmF0aW9uYHx8ZS5raW5kPT09YFNwbGl0T3BlcmF0aW9uYCkmJih0aGlzLl9vcGVyYXRpb25OYW1lPWUubmFtZSksdGhpcy5fdHJhdmVyc2UoZSx0KX0sdC5fdHJhdmVyc2U9ZnVuY3Rpb24oZSx0KXt0aGlzLl9yZWZlcmVuY2VzLmFkZCh0KTt2YXIgbj10aGlzLl9yZWNvcmRTb3VyY2UuZ2V0KHQpO24hPW51bGwmJnRoaXMuX3RyYXZlcnNlU2VsZWN0aW9ucyhlLnNlbGVjdGlvbnMsbil9LHQuX2dldFZhcmlhYmxlVmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIXRoaXMuX3ZhcmlhYmxlcy5oYXNPd25Qcm9wZXJ0eShlKSYmZCghMSksdGhpcy5fdmFyaWFibGVzW2VdfSx0Ll90cmF2ZXJzZVNlbGVjdGlvbnM9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2UuZm9yRWFjaChmdW5jdGlvbihyKXtzd2l0Y2goci5raW5kKXtjYXNlYEFjdG9yQ2hhbmdlYDpuLl90cmF2ZXJzZUxpbmsoci5saW5rZWRGaWVsZCx0KTticmVhaztjYXNlYExpbmtlZEZpZWxkYDpyLnBsdXJhbD9uLl90cmF2ZXJzZVBsdXJhbExpbmsocix0KTpuLl90cmF2ZXJzZUxpbmsocix0KTticmVhaztjYXNlYENvbmRpdGlvbmA6ISFuLl9nZXRWYXJpYWJsZVZhbHVlKHIuY29uZGl0aW9uKT09PXIucGFzc2luZ1ZhbHVlJiZuLl90cmF2ZXJzZVNlbGVjdGlvbnMoci5zZWxlY3Rpb25zLHQpO2JyZWFrO2Nhc2VgSW5saW5lRnJhZ21lbnRgOmlmKHIuYWJzdHJhY3RLZXk9PW51bGwpe3ZhciBpPWMuZ2V0VHlwZSh0KTsoaSE9bnVsbCYmaT09PXIudHlwZXx8aT09PWwuUk9PVF9UWVBFKSYmbi5fdHJhdmVyc2VTZWxlY3Rpb25zKHIuc2VsZWN0aW9ucyx0KX1lbHNle3ZhciBvPXUoYy5nZXRUeXBlKHQpKTtuLl9yZWZlcmVuY2VzLmFkZChvKSxuLl90cmF2ZXJzZVNlbGVjdGlvbnMoci5zZWxlY3Rpb25zLHQpfWJyZWFrO2Nhc2VgRnJhZ21lbnRTcHJlYWRgOnZhciBmPW4uX3ZhcmlhYmxlcztuLl92YXJpYWJsZXM9cyhuLl92YXJpYWJsZXMsci5mcmFnbWVudC5hcmd1bWVudERlZmluaXRpb25zLHIuYXJncyksbi5fdHJhdmVyc2VTZWxlY3Rpb25zKHIuZnJhZ21lbnQuc2VsZWN0aW9ucyx0KSxuLl92YXJpYWJsZXM9ZjticmVhaztjYXNlYExpbmtlZEhhbmRsZWA6dmFyIHA9YShyLGUsbi5fdmFyaWFibGVzKTtwLnBsdXJhbD9uLl90cmF2ZXJzZVBsdXJhbExpbmsocCx0KTpuLl90cmF2ZXJzZUxpbmsocCx0KTticmVhaztjYXNlYERlZmVyYDpjYXNlYFN0cmVhbWA6bi5fdHJhdmVyc2VTZWxlY3Rpb25zKHIuc2VsZWN0aW9ucyx0KTticmVhaztjYXNlYFNjYWxhckZpZWxkYDpjYXNlYFNjYWxhckhhbmRsZWA6YnJlYWs7Y2FzZWBUeXBlRGlzY3JpbWluYXRvcmA6dmFyIG09dShjLmdldFR5cGUodCkpO24uX3JlZmVyZW5jZXMuYWRkKG0pO2JyZWFrO2Nhc2VgTW9kdWxlSW1wb3J0YDpuLl90cmF2ZXJzZU1vZHVsZUltcG9ydChyLHQpO2JyZWFrO2Nhc2VgQ2xpZW50RXh0ZW5zaW9uYDpuLl90cmF2ZXJzZVNlbGVjdGlvbnMoci5zZWxlY3Rpb25zLHQpO2JyZWFrO2Nhc2VgQ2xpZW50Q29tcG9uZW50YDppZihuLl9zaG91bGRQcm9jZXNzQ2xpZW50Q29tcG9uZW50cz09PSExKWJyZWFrO24uX3RyYXZlcnNlU2VsZWN0aW9ucyhyLmZyYWdtZW50LnNlbGVjdGlvbnMsdCk7YnJlYWs7Y2FzZWBSZWxheVJlc29sdmVyYDpuLl90cmF2ZXJzZVJlc29sdmVyRmllbGQocix0KTticmVhaztjYXNlYFJlbGF5TGl2ZVJlc29sdmVyYDpuLl90cmF2ZXJzZVJlc29sdmVyRmllbGQocix0KTticmVhaztjYXNlYENsaWVudEVkZ2VUb0NsaWVudE9iamVjdGA6bi5fdHJhdmVyc2VDbGllbnRFZGdlVG9DbGllbnRPYmplY3Qocix0KTticmVhaztkZWZhdWx0OmQoITEpfX0pfSx0Ll90cmF2ZXJzZUNsaWVudEVkZ2VUb0NsaWVudE9iamVjdD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX3RyYXZlcnNlUmVzb2x2ZXJGaWVsZChlLmJhY2tpbmdGaWVsZCx0KTtpZihuIT1udWxsKXt2YXIgaT10aGlzLl9yZWNvcmRTb3VyY2UuZ2V0KG4pO2lmKGkhPW51bGwpaWYoZS5iYWNraW5nRmllbGQuaXNPdXRwdXRUeXBlKXt2YXIgYT1vKGkpO2lmKGEhPW51bGwpe3ZhciBzPSgwLHIuZGVmYXVsdCkoYSksbDt0cnl7Zm9yKHMucygpOyEobD1zLm4oKSkuZG9uZTspe3ZhciB1PWwudmFsdWU7dGhpcy5fcmVmZXJlbmNlcy5hZGQodSl9fWNhdGNoKGUpe3MuZShlKX1maW5hbGx5e3MuZigpfX19ZWxzZXt2YXIgZD1lLmxpbmtlZEZpZWxkLGY9ZC5jb25jcmV0ZVR5cGU7aWYoZj09bnVsbClyZXR1cm47aWYoZC5wbHVyYWwpe3ZhciBwPWMuZ2V0UmVzb2x2ZXJMaW5rZWRSZWNvcmRJRHMoaSxmKTtpZihwIT1udWxsKXt2YXIgbT0oMCxyLmRlZmF1bHQpKHApLGg7dHJ5e2ZvcihtLnMoKTshKGg9bS5uKCkpLmRvbmU7KXt2YXIgZz1oLnZhbHVlO2chPW51bGwmJnRoaXMuX3RyYXZlcnNlKGQsZyl9fWNhdGNoKGUpe20uZShlKX1maW5hbGx5e20uZigpfX19ZWxzZXt2YXIgXz1jLmdldFJlc29sdmVyTGlua2VkUmVjb3JkSUQoaSxmKTtfIT1udWxsJiZ0aGlzLl90cmF2ZXJzZShkLF8pfX19fSx0Ll90cmF2ZXJzZVJlc29sdmVyRmllbGQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj1mKGUsdGhpcy5fdmFyaWFibGVzKSxyPWMuZ2V0TGlua2VkUmVjb3JkSUQodCxuKTtyIT1udWxsJiZ0aGlzLl9yZWZlcmVuY2VzLmFkZChyKTt2YXIgaT1lLmZyYWdtZW50O3JldHVybiBpIT1udWxsJiZ0aGlzLl90cmF2ZXJzZVNlbGVjdGlvbnMoW2ldLHQpLHJ9LHQuX3RyYXZlcnNlTW9kdWxlSW1wb3J0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fb3BlcmF0aW9uTG9hZGVyO249PT1udWxsJiZkKCExKTt2YXIgcj1wKGUuZG9jdW1lbnROYW1lKSxhPWMuZ2V0VmFsdWUodCxyKTtpZihhIT1udWxsKXt2YXIgbz1uLmdldChhKTtpZihvIT1udWxsKXt2YXIgbD1pKG8pLHU9dGhpcy5fdmFyaWFibGVzO3RoaXMuX3ZhcmlhYmxlcz1zKHRoaXMuX3ZhcmlhYmxlcyxsLmFyZ3VtZW50RGVmaW5pdGlvbnMsZS5hcmdzKSx0aGlzLl90cmF2ZXJzZVNlbGVjdGlvbnMobC5zZWxlY3Rpb25zLHQpLHRoaXMuX3ZhcmlhYmxlcz11fX19LHQuX3RyYXZlcnNlTGluaz1mdW5jdGlvbihlLHQpe3ZhciBuPWYoZSx0aGlzLl92YXJpYWJsZXMpLHI9Yy5nZXRMaW5rZWRSZWNvcmRJRCh0LG4pO3IhPW51bGwmJnRoaXMuX3RyYXZlcnNlKGUscil9LHQuX3RyYXZlcnNlUGx1cmFsTGluaz1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1mKGUsdGhpcy5fdmFyaWFibGVzKSxpPWMuZ2V0TGlua2VkUmVjb3JkSURzKHQscik7aSE9bnVsbCYmaS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QhPW51bGwmJm4uX3RyYXZlcnNlKGUsdCl9KX0sZX0oKTt0LmV4cG9ydHM9e21hcms6bX19KSksSXA9cygoKGUsdCk9Pnt2YXIgbj1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgcj1lW25dKCksaT1yLm5leHQoKTshaS5kb25lOyl7dmFyIGE9aS52YWx1ZTtpZih0LmhhcyhhKSlyZXR1cm4hMDtpPXIubmV4dCgpfXJldHVybiExfXQuZXhwb3J0cz1yfSkpLExwPXMoKChlLHQpPT57dmFyIG49bmYoKS5ST09UX0lELHI9Y3AoKS5WSUVXRVJfSUQsaT1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gYShlLHQpe2Zvcih2YXIgYT1lW2ldKCksbz1hLm5leHQoKTshby5kb25lOyl7dmFyIHM9by52YWx1ZTtpZih0LmhhcyhzKSYmcyE9PW4mJnMhPT1yKXJldHVybiEwO289YS5uZXh0KCl9cmV0dXJuITF9dC5leHBvcnRzPWF9KSksUnA9cygoKGUsdCk9PntFZigpO3ZhciBuPUhmKCkscj12ZigpLGk9SXAoKSxhPUxwKCksbz1DcCgpO3QuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4pe3RoaXMuX3N1YnNjcmlwdGlvbnM9bmV3IFNldCx0aGlzLl9fbG9nPWUsdGhpcy5fcmVzb2x2ZXJDYWNoZT10LHRoaXMuX3Jlc29sdmVyQ29udGV4dD1ufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LnN1YnNjcmliZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj17YmFja3VwOm51bGwsY2FsbGJhY2s6dCxzbmFwc2hvdDplLHN0YWxlOiExfTtyZXR1cm4gdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQocikse2Rpc3Bvc2U6ZnVuY3Rpb24oKXtuLl9zdWJzY3JpcHRpb25zLmRlbGV0ZShyKX19fSx0LnNuYXBzaG90U3Vic2NyaXB0aW9ucz1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaChmdW5jdGlvbihyKXtpZighci5zdGFsZSl7ci5iYWNrdXA9ci5zbmFwc2hvdDtyZXR1cm59dmFyIGk9ci5zbmFwc2hvdCxhPW8ucmVhZChlLGkuc2VsZWN0b3IsdC5fcmVzb2x2ZXJDYWNoZSx0Ll9yZXNvbHZlckNvbnRleHQpO2EuZGF0YT1uKGkuZGF0YSxhLmRhdGEpLHIuYmFja3VwPWF9KX0sdC5yZXN0b3JlU3Vic2NyaXB0aW9ucz1mdW5jdGlvbigpe3RoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLmJhY2t1cDtlLmJhY2t1cD1udWxsLHQ/KHQuZGF0YSE9PWUuc25hcHNob3QuZGF0YSYmKGUuc3RhbGU9ITApLGUuc25hcHNob3Q9e2RhdGE6ZS5zbmFwc2hvdC5kYXRhLGlzTWlzc2luZ0RhdGE6dC5pc01pc3NpbmdEYXRhLG1pc3NpbmdDbGllbnRFZGdlczp0Lm1pc3NpbmdDbGllbnRFZGdlcyxtaXNzaW5nTGl2ZVJlc29sdmVyRmllbGRzOnQubWlzc2luZ0xpdmVSZXNvbHZlckZpZWxkcyxzZWVuUmVjb3Jkczp0LnNlZW5SZWNvcmRzLHNlbGVjdG9yOnQuc2VsZWN0b3IsZXJyb3JSZXNwb25zZUZpZWxkczp0LmVycm9yUmVzcG9uc2VGaWVsZHN9KTplLnN0YWxlPSEwfSl9LHQudXBkYXRlU3Vic2NyaXB0aW9ucz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaT10aGlzLGE9dC5zaXplIT09MDt0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIHM9aS5fdXBkYXRlU3Vic2NyaXB0aW9uKGUsbyx0LGEscik7cyE9bnVsbCYmbi5wdXNoKHMpfSl9LHQuX3VwZGF0ZVN1YnNjcmlwdGlvbj1mdW5jdGlvbihlLHQscyxjLGwpe3ZhciB1PXQuYmFja3VwLGQ9dC5jYWxsYmFjayxmPXQuc25hcHNob3QscD10LnN0YWxlLG09YyYmaShmLnNlZW5SZWNvcmRzLHMpO2lmKCEoIXAmJiFtKSl7dmFyIGg9bXx8IXU/by5yZWFkKGUsZi5zZWxlY3Rvcix0aGlzLl9yZXNvbHZlckNhY2hlLHRoaXMuX3Jlc29sdmVyQ29udGV4dCk6dTtpZihoPXtkYXRhOm4oZi5kYXRhLGguZGF0YSksaXNNaXNzaW5nRGF0YTpoLmlzTWlzc2luZ0RhdGEsbWlzc2luZ0NsaWVudEVkZ2VzOmgubWlzc2luZ0NsaWVudEVkZ2VzLG1pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHM6aC5taXNzaW5nTGl2ZVJlc29sdmVyRmllbGRzLHNlZW5SZWNvcmRzOmguc2VlblJlY29yZHMsc2VsZWN0b3I6aC5zZWxlY3RvcixlcnJvclJlc3BvbnNlRmllbGRzOmguZXJyb3JSZXNwb25zZUZpZWxkc30sdC5zbmFwc2hvdD1oLHQuc3RhbGU9ITEsaC5kYXRhIT09Zi5kYXRhKXJldHVybiB0aGlzLl9fbG9nJiZyLkVOQUJMRV9OT1RJRllfU1VCU0NSSVBUSU9OJiZ0aGlzLl9fbG9nKHtuYW1lOmBzdG9yZS5ub3RpZnkuc3Vic2NyaXB0aW9uYCxzb3VyY2VPcGVyYXRpb246bCxzbmFwc2hvdDpmLG5leHRTbmFwc2hvdDpofSksZChoKSxmLnNlbGVjdG9yLm93bmVyO2lmKHIuRU5BQkxFX0xPT1NFX1NVQlNDUklQVElPTl9BVFRSSUJVVElPTiYmKHB8fGEoZi5zZWVuUmVjb3JkcyxzKSkpcmV0dXJuIGYuc2VsZWN0b3Iub3duZXJ9fSx0LnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3Vic2NyaXB0aW9ucy5zaXplfSxlfSgpfSkpLHpwPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihIZCgpKSxpPW4ocWQoKSksYT1aZigpLG89YS5JTlRFUk5BTF9BQ1RPUl9JREVOVElGSUVSX0RPX05PVF9VU0Uscz1hLmFzc2VydEludGVybmFsQWN0b3JJZGVudGlmaWVyO0VmKCk7dmFyIGM9RXAoKSxsPWtwKCksdT1scCgpLGQ9TnAoKSxmPWQuTGl2ZVJlc29sdmVyQ2FjaGUscD1kLlJFTEFZX1JFU09MVkVSX0xJVkVfU1RBVEVfU1VCU0NSSVBUSU9OX0tFWSxtPWQuZ2V0VXBkYXRlZERhdGFJRHMsaD1KZigpLGc9UHAoKSxfPUNwKCksdj1GcCgpLHk9UnAoKSxiPW5mKCkseD1uZigpLFM9eC5ST09UX0lELEM9eC5ST09UX1RZUEUsdz1GZCgpLFQ9MTAsRT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXt2YXIgbj10aGlzOygwLGkuZGVmYXVsdCkodGhpcyxgX2djU3RlcGAsZnVuY3Rpb24oKXtuLl9nY1J1biYmKG4uX2djUnVuLm5leHQoKS5kb25lP24uX2djUnVuPW51bGw6bi5fZ2NTY2hlZHVsZXIobi5fZ2NTdGVwKSl9KSx0aGlzLl9jdXJyZW50V3JpdGVFcG9jaD0wLHRoaXMuX2djSG9sZENvdW50ZXI9MCx0aGlzLl9nY1JlbGVhc2VCdWZmZXJTaXplPSh0PT1udWxsP3ZvaWQgMDp0LmdjUmVsZWFzZUJ1ZmZlclNpemUpPz9ULHRoaXMuX2djUnVuPW51bGwsdGhpcy5fZ2NTY2hlZHVsZXI9KHQ9PW51bGw/dm9pZCAwOnQuZ2NTY2hlZHVsZXIpPz9jLHRoaXMuX2dldERhdGFJRD0odD09bnVsbD92b2lkIDA6dC5nZXREYXRhSUQpPz91LHRoaXMuX2dsb2JhbEludmFsaWRhdGlvbkVwb2NoPW51bGwsdGhpcy5faW52YWxpZGF0aW9uU3Vic2NyaXB0aW9ucz1uZXcgU2V0LHRoaXMuX2ludmFsaWRhdGVkUmVjb3JkSURzPW5ldyBTZXQsdGhpcy5fX2xvZz0odD09bnVsbD92b2lkIDA6dC5sb2cpPz9udWxsLHRoaXMuX3F1ZXJ5Q2FjaGVFeHBpcmF0aW9uVGltZT10PT1udWxsP3ZvaWQgMDp0LnF1ZXJ5Q2FjaGVFeHBpcmF0aW9uVGltZSx0aGlzLl9vcGVyYXRpb25Mb2FkZXI9KHQ9PW51bGw/dm9pZCAwOnQub3BlcmF0aW9uTG9hZGVyKT8/bnVsbCx0aGlzLl9vcHRpbWlzdGljU291cmNlPW51bGwsdGhpcy5fcmVjb3JkU291cmNlPWUsdGhpcy5fcmVsZWFzZUJ1ZmZlcj1bXSx0aGlzLl9yb290cz1uZXcgTWFwLHRoaXMuX3Nob3VsZFNjaGVkdWxlR0M9ITEsdGhpcy5fcmVzb2x2ZXJDYWNoZT1uZXcgZihmdW5jdGlvbigpe3JldHVybiBuLl9nZXRNdXRhYmxlUmVjb3JkU291cmNlKCl9LHRoaXMpLHRoaXMuX3N0b3JlU3Vic2NyaXB0aW9ucz1uZXcgeSh0PT1udWxsP3ZvaWQgMDp0LmxvZyx0aGlzLl9yZXNvbHZlckNhY2hlKSx0aGlzLl91cGRhdGVkUmVjb3JkSURzPW5ldyBTZXQsdGhpcy5fc2hvdWxkUHJvY2Vzc0NsaWVudENvbXBvbmVudHM9KHQ9PW51bGw/dm9pZCAwOnQuc2hvdWxkUHJvY2Vzc0NsaWVudENvbXBvbmVudHMpPz8hMSx0aGlzLl9yZXNvbHZlckNvbnRleHQ9dD09bnVsbD92b2lkIDA6dC5yZXNvbHZlckNvbnRleHQsdGhpcy5fdHJlYXRNaXNzaW5nRmllbGRzQXNOdWxsPSh0PT1udWxsP3ZvaWQgMDp0LnRyZWF0TWlzc2luZ0ZpZWxkc0FzTnVsbCk/PyExLHRoaXMuX2FjdG9ySWRlbnRpZmllcj10PT1udWxsP3ZvaWQgMDp0LmFjdG9ySWRlbnRpZmllcixEKHRoaXMuX3JlY29yZFNvdXJjZSl9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuZ2V0U291cmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29wdGltaXN0aWNTb3VyY2U/P3RoaXMuX3JlY29yZFNvdXJjZX0sdC5nZXRPcGVyYXRpb25Mb2FkZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3BlcmF0aW9uTG9hZGVyfSx0Ll9nZXRNdXRhYmxlUmVjb3JkU291cmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29wdGltaXN0aWNTb3VyY2U/P3RoaXMuX3JlY29yZFNvdXJjZX0sdC5nZXRMaXZlUmVzb2x2ZXJQcm9taXNlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9yZXNvbHZlckNhY2hlLmdldExpdmVSZXNvbHZlclByb21pc2UoZSl9LHQuYmF0Y2hMaXZlU3RhdGVVcGRhdGVzPWZ1bmN0aW9uKGUpe3RoaXMuX19sb2chPW51bGwmJnRoaXMuX19sb2coe25hbWU6YGxpdmVyZXNvbHZlci5iYXRjaC5zdGFydGB9KTt0cnl7dGhpcy5fcmVzb2x2ZXJDYWNoZS5iYXRjaExpdmVTdGF0ZVVwZGF0ZXMoZSl9ZmluYWxseXt0aGlzLl9fbG9nIT1udWxsJiZ0aGlzLl9fbG9nKHtuYW1lOmBsaXZlcmVzb2x2ZXIuYmF0Y2guZW5kYH0pfX0sdC5jaGVjaz1mdW5jdGlvbihlLHQpe3ZhciBuPWUucm9vdCxyPXRoaXMuX2dldE11dGFibGVSZWNvcmRTb3VyY2UoKSxpPXRoaXMuX2dsb2JhbEludmFsaWRhdGlvbkVwb2NoLGE9dGhpcy5fcm9vdHMuZ2V0KGUucmVxdWVzdC5pZGVudGlmaWVyKSxjPWE9PW51bGw/bnVsbDphLmVwb2NoO2lmKGkhPW51bGwmJihjPT1udWxsfHxjPD1pKSlyZXR1cm57c3RhdHVzOmBzdGFsZWB9O3ZhciB1PSh0PT1udWxsP3ZvaWQgMDp0LmhhbmRsZXJzKT8/W10sZD0odD09bnVsbD92b2lkIDA6dC5nZXRTb3VyY2VGb3JBY3Rvcik/P2Z1bmN0aW9uKGUpe3JldHVybiBzKGUpLHJ9LGY9KHQ9PW51bGw/dm9pZCAwOnQuZ2V0VGFyZ2V0Rm9yQWN0b3IpPz9mdW5jdGlvbihlKXtyZXR1cm4gcyhlKSxyfTtyZXR1cm4gayhsLmNoZWNrKGQsZiwodD09bnVsbD92b2lkIDA6dC5kZWZhdWx0QWN0b3JJZGVudGlmaWVyKT8/byxuLHUsdGhpcy5fb3BlcmF0aW9uTG9hZGVyLHRoaXMuX2dldERhdGFJRCx0aGlzLl9zaG91bGRQcm9jZXNzQ2xpZW50Q29tcG9uZW50cyx0aGlzLl9fbG9nKSxjLGE9PW51bGw/dm9pZCAwOmEuZmV0Y2hUaW1lLHRoaXMuX3F1ZXJ5Q2FjaGVFeHBpcmF0aW9uVGltZSl9LHQucmV0YWluPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1lLnJlcXVlc3QuaWRlbnRpZmllcixyPSExLGk9ZnVuY3Rpb24oKXtpZighcil7cj0hMDt2YXIgZT10Ll9yb290cy5nZXQobik7aWYoZSE9bnVsbCYmKGUucmVmQ291bnQtLSxlLnJlZkNvdW50PT09MCkpe3ZhciBpPXQuX3F1ZXJ5Q2FjaGVFeHBpcmF0aW9uVGltZTtpZihlLmZldGNoVGltZSE9bnVsbCYmaSE9bnVsbCYmZS5mZXRjaFRpbWU8PURhdGUubm93KCktaSl0Ll9yb290cy5kZWxldGUobiksdC5zY2hlZHVsZUdDKCk7ZWxzZSBpZih0Ll9yZWxlYXNlQnVmZmVyLnB1c2gobiksdC5fcmVsZWFzZUJ1ZmZlci5sZW5ndGg+dC5fZ2NSZWxlYXNlQnVmZmVyU2l6ZSl7dmFyIGE9dC5fcmVsZWFzZUJ1ZmZlci5zaGlmdCgpO3QuX3Jvb3RzLmRlbGV0ZShhKSx0LnNjaGVkdWxlR0MoKX19fX0sYT10aGlzLl9yb290cy5nZXQobik7cmV0dXJuIGE9PW51bGw/dGhpcy5fcm9vdHMuc2V0KG4se29wZXJhdGlvbjplLHJlZkNvdW50OjEsZXBvY2g6bnVsbCxmZXRjaFRpbWU6bnVsbH0pOihhLnJlZkNvdW50PT09MCYmKHRoaXMuX3JlbGVhc2VCdWZmZXI9dGhpcy5fcmVsZWFzZUJ1ZmZlci5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1ufSkpLGEucmVmQ291bnQrPTEpLHtkaXNwb3NlOml9fSx0Lmxvb2t1cD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9fbG9nO3QhPW51bGwmJnQoe25hbWU6YHN0b3JlLmxvb2t1cC5zdGFydGAsc2VsZWN0b3I6ZX0pO3ZhciBuPXRoaXMuZ2V0U291cmNlKCkscj1fLnJlYWQobixlLHRoaXMuX3Jlc29sdmVyQ2FjaGUsdGhpcy5fcmVzb2x2ZXJDb250ZXh0KTtyZXR1cm4gdCE9bnVsbCYmdCh7bmFtZTpgc3RvcmUubG9va3VwLmVuZGAsc2VsZWN0b3I6ZX0pLHJ9LHQubm90aWZ5PWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPXRoaXMuX19sb2c7ciE9bnVsbCYmcih7bmFtZTpgc3RvcmUubm90aWZ5LnN0YXJ0YCxzb3VyY2VPcGVyYXRpb246ZX0pLHRoaXMuX2N1cnJlbnRXcml0ZUVwb2NoKyssdD09PSEwJiYodGhpcy5fZ2xvYmFsSW52YWxpZGF0aW9uRXBvY2g9dGhpcy5fY3VycmVudFdyaXRlRXBvY2gpLHRoaXMuX3Jlc29sdmVyQ2FjaGUuaW52YWxpZGF0ZURhdGFJRHModGhpcy5fdXBkYXRlZFJlY29yZElEcyk7dmFyIGk9dGhpcy5nZXRTb3VyY2UoKSxhPVtdO2lmKHRoaXMuX3N0b3JlU3Vic2NyaXB0aW9ucy51cGRhdGVTdWJzY3JpcHRpb25zKGksdGhpcy5fdXBkYXRlZFJlY29yZElEcyxhLGUpLHRoaXMuX2ludmFsaWRhdGlvblN1YnNjcmlwdGlvbnMuZm9yRWFjaChmdW5jdGlvbihlKXtuLl91cGRhdGVJbnZhbGlkYXRpb25TdWJzY3JpcHRpb24oZSx0PT09ITApfSksZSE9bnVsbCl7dmFyIG89ZS5yZXF1ZXN0LmlkZW50aWZpZXIscz10aGlzLl9yb290cy5nZXQobyk7aWYocyE9bnVsbClzLmVwb2NoPXRoaXMuX2N1cnJlbnRXcml0ZUVwb2NoLHMuZmV0Y2hUaW1lPURhdGUubm93KCk7ZWxzZSBpZihlLnJlcXVlc3Qubm9kZS5wYXJhbXMub3BlcmF0aW9uS2luZD09PWBxdWVyeWAmJnRoaXMuX2djUmVsZWFzZUJ1ZmZlclNpemU+MCYmdGhpcy5fcmVsZWFzZUJ1ZmZlci5sZW5ndGg8dGhpcy5fZ2NSZWxlYXNlQnVmZmVyU2l6ZSl7dmFyIGM9e29wZXJhdGlvbjplLHJlZkNvdW50OjAsZXBvY2g6dGhpcy5fY3VycmVudFdyaXRlRXBvY2gsZmV0Y2hUaW1lOkRhdGUubm93KCl9O3RoaXMuX3JlbGVhc2VCdWZmZXIucHVzaChvKSx0aGlzLl9yb290cy5zZXQobyxjKX19cmV0dXJuIHIhPW51bGwmJnIoe25hbWU6YHN0b3JlLm5vdGlmeS5jb21wbGV0ZWAsc291cmNlT3BlcmF0aW9uOmUsdXBkYXRlZFJlY29yZElEczp0aGlzLl91cGRhdGVkUmVjb3JkSURzLGludmFsaWRhdGVkUmVjb3JkSURzOnRoaXMuX2ludmFsaWRhdGVkUmVjb3JkSURzLHN1YnNjcmlwdGlvbnNTaXplOnRoaXMuX3N0b3JlU3Vic2NyaXB0aW9ucy5zaXplKCksdXBkYXRlZE93bmVyczphfSksdGhpcy5fdXBkYXRlZFJlY29yZElEcy5jbGVhcigpLHRoaXMuX2ludmFsaWRhdGVkUmVjb3JkSURzLmNsZWFyKCksYX0sdC5wdWJsaXNoPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fZ2V0TXV0YWJsZVJlY29yZFNvdXJjZSgpO08obixlLHRoaXMuX2N1cnJlbnRXcml0ZUVwb2NoKzEsdCx0aGlzLl91cGRhdGVkUmVjb3JkSURzLHRoaXMuX2ludmFsaWRhdGVkUmVjb3JkSURzKTt2YXIgcj10aGlzLl9fbG9nO3IhPW51bGwmJnIoe25hbWU6YHN0b3JlLnB1Ymxpc2hgLHNvdXJjZTplLG9wdGltaXN0aWM6bj09PXRoaXMuX29wdGltaXN0aWNTb3VyY2V9KX0sdC5zdWJzY3JpYmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fc3RvcmVTdWJzY3JpcHRpb25zLnN1YnNjcmliZShlLHQpfSx0LmhvbGRHQz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuX2djUnVuJiYodGhpcy5fZ2NSdW49bnVsbCx0aGlzLl9zaG91bGRTY2hlZHVsZUdDPSEwKSx0aGlzLl9nY0hvbGRDb3VudGVyKysse2Rpc3Bvc2U6ZnVuY3Rpb24oKXtlLl9nY0hvbGRDb3VudGVyPjAmJihlLl9nY0hvbGRDb3VudGVyLS0sZS5fZ2NIb2xkQ291bnRlcj09PTAmJmUuX3Nob3VsZFNjaGVkdWxlR0MmJihlLnNjaGVkdWxlR0MoKSxlLl9zaG91bGRTY2hlZHVsZUdDPSExKSl9fX0sdC50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm5gUmVsYXlNb2Rlcm5TdG9yZSgpYH0sdC5nZXRFcG9jaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJyZW50V3JpdGVFcG9jaH0sdC5fX2dldFVwZGF0ZWRSZWNvcmRJRHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXBkYXRlZFJlY29yZElEc30sdC5sb29rdXBJbnZhbGlkYXRpb25TdGF0ZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLG49bmV3IE1hcDtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciByPXQuZ2V0U291cmNlKCkuZ2V0KGUpO24uc2V0KGUsaC5nZXRJbnZhbGlkYXRpb25FcG9jaChyKT8/bnVsbCl9KSxuLnNldChgZ2xvYmFsYCx0aGlzLl9nbG9iYWxJbnZhbGlkYXRpb25FcG9jaCkse2RhdGFJRHM6ZSxpbnZhbGlkYXRpb25zOm59fSx0LmNoZWNrSW52YWxpZGF0aW9uU3RhdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5sb29rdXBJbnZhbGlkYXRpb25TdGF0ZShlLmRhdGFJRHMpLmludmFsaWRhdGlvbnMsbj1lLmludmFsaWRhdGlvbnM7aWYodC5nZXQoYGdsb2JhbGApIT09bi5nZXQoYGdsb2JhbGApKXJldHVybiEwO3ZhciBpPSgwLHIuZGVmYXVsdCkoZS5kYXRhSURzKSxhO3RyeXtmb3IoaS5zKCk7IShhPWkubigpKS5kb25lOyl7dmFyIG89YS52YWx1ZTtpZih0LmdldChvKSE9PW4uZ2V0KG8pKXJldHVybiEwfX1jYXRjaChlKXtpLmUoZSl9ZmluYWxseXtpLmYoKX1yZXR1cm4hMX0sdC5zdWJzY3JpYmVUb0ludmFsaWRhdGlvblN0YXRlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPXtjYWxsYmFjazp0LGludmFsaWRhdGlvblN0YXRlOmV9O3JldHVybiB0aGlzLl9pbnZhbGlkYXRpb25TdWJzY3JpcHRpb25zLmFkZChyKSx7ZGlzcG9zZTpmdW5jdGlvbigpe24uX2ludmFsaWRhdGlvblN1YnNjcmlwdGlvbnMuZGVsZXRlKHIpfX19LHQuX3VwZGF0ZUludmFsaWRhdGlvblN1YnNjcmlwdGlvbj1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1lLmNhbGxiYWNrLGk9ZS5pbnZhbGlkYXRpb25TdGF0ZS5kYXRhSURzOyh0fHxpLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIG4uX2ludmFsaWRhdGVkUmVjb3JkSURzLmhhcyhlKX0pKSYmcigpfSx0LnNuYXBzaG90PWZ1bmN0aW9uKCl7dGhpcy5fb3B0aW1pc3RpY1NvdXJjZSE9bnVsbCYmdyghMSk7dmFyIGU9dGhpcy5fX2xvZztlIT1udWxsJiZlKHtuYW1lOmBzdG9yZS5zbmFwc2hvdGB9KSx0aGlzLl9zdG9yZVN1YnNjcmlwdGlvbnMuc25hcHNob3RTdWJzY3JpcHRpb25zKHRoaXMuZ2V0U291cmNlKCkpLHRoaXMuX2djUnVuJiYodGhpcy5fZ2NSdW49bnVsbCx0aGlzLl9zaG91bGRTY2hlZHVsZUdDPSEwKSx0aGlzLl9vcHRpbWlzdGljU291cmNlPWcuY3JlYXRlKHRoaXMuZ2V0U291cmNlKCkpfSx0LnJlc3RvcmU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9vcHRpbWlzdGljU291cmNlOyFlJiZ3KCExKTt2YXIgdD10aGlzLl9fbG9nO3QhPW51bGwmJnQoe25hbWU6YHN0b3JlLnJlc3RvcmVgfSk7dmFyIG49Zy5nZXRPcHRpbWlzdGljUmVjb3JkSURzKGUpO3RoaXMuX3Jlc29sdmVyQ2FjaGUudW5zdWJzY3JpYmVGcm9tTGl2ZVJlc29sdmVyUmVjb3JkcyhuKSx0aGlzLl9vcHRpbWlzdGljU291cmNlPW51bGwsdGhpcy5fc2hvdWxkU2NoZWR1bGVHQyYmdGhpcy5zY2hlZHVsZUdDKCksdGhpcy5fc3RvcmVTdWJzY3JpcHRpb25zLnJlc3RvcmVTdWJzY3JpcHRpb25zKCksdGhpcy5fcmVzb2x2ZXJDYWNoZS5pbnZhbGlkYXRlUmVzb2x2ZXJSZWNvcmRzKG4pfSx0LnNjaGVkdWxlR0M9ZnVuY3Rpb24oKXtpZih0aGlzLl9nY0hvbGRDb3VudGVyPjApe3RoaXMuX3Nob3VsZFNjaGVkdWxlR0M9ITA7cmV0dXJufXRoaXMuX2djUnVufHwodGhpcy5fZ2NSdW49dGhpcy5fY29sbGVjdCgpLHRoaXMuX2djU2NoZWR1bGVyKHRoaXMuX2djU3RlcCkpfSx0Ll9fZ2M9ZnVuY3Rpb24oKXtpZih0aGlzLl9vcHRpbWlzdGljU291cmNlPT1udWxsKWZvcih2YXIgZT10aGlzLl9jb2xsZWN0KCk7IWUubmV4dCgpLmRvbmU7KTt9LHQuX2NvbGxlY3Q9ZnVuY3Rpb24qKCl7dmFyIGU9dGhpcy5fX2xvZzt0b3A6Zm9yKDs7KXtlIT1udWxsJiZlKHtuYW1lOmBzdG9yZS5nYy5zdGFydGB9KTt2YXIgdD10aGlzLl9jdXJyZW50V3JpdGVFcG9jaCxuPW5ldyBTZXQsaT0oMCxyLmRlZmF1bHQpKHRoaXMuX3Jvb3RzLnZhbHVlcygpKSxhO3RyeXtmb3IoaS5zKCk7IShhPWkubigpKS5kb25lOyl7dmFyIG89YS52YWx1ZS5vcGVyYXRpb24ucm9vdDtpZih2Lm1hcmsodGhpcy5fcmVjb3JkU291cmNlLG8sbix0aGlzLl9vcGVyYXRpb25Mb2FkZXIsdGhpcy5fc2hvdWxkUHJvY2Vzc0NsaWVudENvbXBvbmVudHMpLHlpZWxkLHQhPT10aGlzLl9jdXJyZW50V3JpdGVFcG9jaCl7ZSE9bnVsbCYmZSh7bmFtZTpgc3RvcmUuZ2MuaW50ZXJydXB0ZWRgfSk7Y29udGludWUgdG9wfX19Y2F0Y2goZSl7aS5lKGUpfWZpbmFsbHl7aS5mKCl9aWYobi5zaXplPT09MCl0aGlzLl9yZWNvcmRTb3VyY2UuY2xlYXIoKTtlbHNlIGZvcih2YXIgcz10aGlzLl9yZWNvcmRTb3VyY2UuZ2V0UmVjb3JkSURzKCksYz0wO2M8cy5sZW5ndGg7YysrKXt2YXIgbD1zW2NdO2lmKCFuLmhhcyhsKSl7dmFyIHU9dGhpcy5fcmVjb3JkU291cmNlLmdldChsKTtpZih1IT1udWxsKXt2YXIgZD1oLmdldFZhbHVlKHUscCk7ZCE9bnVsbCYmZCgpfXRoaXMuX3JlY29yZFNvdXJjZS5yZW1vdmUobCl9fWUhPW51bGwmJmUoe25hbWU6YHN0b3JlLmdjLmVuZGAscmVmZXJlbmNlczpufSk7cmV0dXJufX0sdC5fX2dldE5vcm1hbGl6YXRpb25PcHRpb25zPWZ1bmN0aW9uKGUpe3JldHVybntwYXRoOmUsZ2V0RGF0YUlEOnRoaXMuX2dldERhdGFJRCx0cmVhdE1pc3NpbmdGaWVsZHNBc051bGw6dGhpcy5fdHJlYXRNaXNzaW5nRmllbGRzQXNOdWxsLHNob3VsZFByb2Nlc3NDbGllbnRDb21wb25lbnRzOnRoaXMuX3Nob3VsZFByb2Nlc3NDbGllbnRDb21wb25lbnRzLGFjdG9ySWRlbnRpZmllcjp0aGlzLl9hY3RvcklkZW50aWZpZXJ9fSx0Ll9fbm90aWZ5VXBkYXRlZFN1YnNjcmliZXJzPWZ1bmN0aW9uKGUpe3ZhciB0PW0oZSksbj10aGlzLl91cGRhdGVkUmVjb3JkSURzO3RoaXMuX3VwZGF0ZWRSZWNvcmRJRHM9dCx0aGlzLm5vdGlmeSgpLHRoaXMuX3VwZGF0ZWRSZWNvcmRJRHM9bn0sZX0oKTtmdW5jdGlvbiBEKGUpe2lmKCFlLmhhcyhTKSl7dmFyIHQ9aC5jcmVhdGUoUyxDKTtlLnNldChTLHQpfX1mdW5jdGlvbiBPKGUsdCxuLHIsaSxhKXtyJiZyLmZvckVhY2goZnVuY3Rpb24ocil7dmFyIGk9ZS5nZXQociksbz10LmdldChyKTtpZihvIT09bnVsbCl7dmFyIHM9aT09bnVsbD9vPT1udWxsP251bGw6aC5jbG9uZShvKTpoLmNsb25lKGkpO3MmJihoLnNldFZhbHVlKHMsYi5JTlZBTElEQVRFRF9BVF9LRVksbiksYS5hZGQociksZS5zZXQocixzKSl9fSk7Zm9yKHZhciBvPXQuZ2V0UmVjb3JkSURzKCkscz0wO3M8by5sZW5ndGg7cysrKXt2YXIgYz1vW3NdLGw9dC5nZXQoYyksdT1lLmdldChjKTtpZihsJiZ1KXt2YXIgZD1oLnVwZGF0ZSh1LGwpO2QhPT11JiYoaS5hZGQoYyksZS5zZXQoYyxkKSl9ZWxzZSBsPT09bnVsbD8oZS5kZWxldGUoYyksdSE9PW51bGwmJmkuYWRkKGMpKTpsJiYoZS5zZXQoYyxsKSxpLmFkZChjKSl9fWZ1bmN0aW9uIGsoZSx0LG4scil7dmFyIGk9ZS5tb3N0UmVjZW50bHlJbnZhbGlkYXRlZEF0LGE9ZS5zdGF0dXM7cmV0dXJuIHR5cGVvZiBpPT1gbnVtYmVyYCYmKHQ9PW51bGx8fGk+dCk/e3N0YXR1czpgc3RhbGVgfTphPT09YG1pc3NpbmdgP3tzdGF0dXM6YG1pc3NpbmdgfTpuIT1udWxsJiZyIT1udWxsJiZuPD1EYXRlLm5vdygpLXI/e3N0YXR1czpgc3RhbGVgfTp7c3RhdHVzOmBhdmFpbGFibGVgLGZldGNoVGltZTpuPz9udWxsfX10LmV4cG9ydHM9RX0pKSxCcD1zKCgoZSx0KT0+e3ZhciBuPWtmKCkscj1SZCgpLmdldFJlcXVlc3QsaT1PZigpLmNyZWF0ZU9wZXJhdGlvbkRlc2NyaXB0b3IsYT1vZigpLmNyZWF0ZVJlYWRlclNlbGVjdG9yO0xkKCk7ZnVuY3Rpb24gbyhlLHQpe3ZhciBvPXIodC5zdWJzY3JpcHRpb24pO2lmKG8ucGFyYW1zLm9wZXJhdGlvbktpbmQhPT1gc3Vic2NyaXB0aW9uYCl0aHJvdyBFcnJvcihgcmVxdWVzdFN1YnNjcmlwdGlvbjogTXVzdCB1c2UgU3Vic2NyaXB0aW9uIG9wZXJhdGlvbmApO3ZhciBzPXQuY29uZmlncyxjPXQub25Db21wbGV0ZWQsbD10Lm9uRXJyb3IsdT10Lm9uTmV4dCxkPXQudmFyaWFibGVzLGY9dC5jYWNoZUNvbmZpZyxwPWkobyxkLGYpLG09KHM/bi5jb252ZXJ0KHMsbyxudWxsLHQudXBkYXRlcik6dCkudXBkYXRlcjtyZXR1cm57ZGlzcG9zZTplLmV4ZWN1dGVTdWJzY3JpcHRpb24oe29wZXJhdGlvbjpwLHVwZGF0ZXI6bX0pLnN1YnNjcmliZSh7bmV4dDpmdW5jdGlvbih0KXtpZih1IT1udWxsKXt2YXIgbj1wLmZyYWdtZW50LHI7aWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGksbztyPShpPXRbMF0pPT1udWxsfHwobz1pLmV4dGVuc2lvbnMpPT1udWxsP3ZvaWQgMDpvLl9fcmVsYXlfc3Vic2NyaXB0aW9uX3Jvb3RfaWR9ZWxzZXt2YXIgcztyPShzPXQuZXh0ZW5zaW9ucyk9PW51bGw/dm9pZCAwOnMuX19yZWxheV9zdWJzY3JpcHRpb25fcm9vdF9pZH10eXBlb2Ygcj09YHN0cmluZ2AmJihuPWEobi5ub2RlLHIsbi52YXJpYWJsZXMsbi5vd25lcikpO3ZhciBjPWUubG9va3VwKG4pLmRhdGE7dShjKX19LGVycm9yOmwsY29tcGxldGU6Y30pLnVuc3Vic2NyaWJlfX10LmV4cG9ydHM9b30pKSxWcD1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSmQoKSksaT1uZigpLGE9aS5nZXRNb2R1bGVDb21wb25lbnRLZXksbz1pLmdldE1vZHVsZU9wZXJhdGlvbktleTtmdW5jdGlvbiBzKGUsdCxuLGkpe3ZhciBzPSgwLHIuZGVmYXVsdCkoe30saSk7cmV0dXJuIHNbYShlKV09bixzW28oZSldPXQsc310LmV4cG9ydHM9c30pKSxIcD1zKCgoZSx0KT0+e3ZhciBuPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gcihlKXtmb3IodmFyIHQgaW4gZSlpZihuLmNhbGwoZSx0KSlyZXR1cm4hMTtyZXR1cm4hMH10LmV4cG9ydHM9cn0pKSxVcD1zKCgoZSx0KT0+e3ZhciBuPW9mKCkscj1uLmdldERhdGFJRHNGcm9tRnJhZ21lbnQsaT1uLmdldFNlbGVjdG9yLGE9bi5nZXRWYXJpYWJsZXNGcm9tRnJhZ21lbnQsbz1IcCgpLHM9dmYoKSxjPXRmKCkuc3RhYmxlQ29weSxsPXlmKCkuaW50ZXJuO2Z1bmN0aW9uIHUoZSx0KXt2YXIgbj1pKGUsdCksdT1uPT1udWxsP2BudWxsYDpuLmtpbmQ9PT1gU2luZ3VsYXJSZWFkZXJTZWxlY3RvcmA/bi5vd25lci5pZGVudGlmaWVyOmBbYCtuLnNlbGVjdG9ycy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUub3duZXIuaWRlbnRpZmllcn0pLmpvaW4oYCxgKStgXWAsZD1hKGUsdCksZj1yKGUsdCk7aWYocy5FTkFCTEVfR0VURlJBR01FTlRJREVOVElGSUVSX09QVElNSVpBVElPTil7dmFyIHA9Zj09PXZvaWQgMD9gbWlzc2luZ2A6Zj09bnVsbD9gbnVsbGA6QXJyYXkuaXNBcnJheShmKT9gW2ArZi5qb2luKGAsYCkrYF1gOmY7cmV0dXJuIHA9cy5TVFJJTkdfSU5URVJOX0xFVkVMPD0xP3A6bChwLHMuTUFYX0RBVEFfSURfTEVOR1RIKSx1K2AvYCtlLm5hbWUrYC9gKyhkPT1udWxsfHxvKGQpP2B7fWA6SlNPTi5zdHJpbmdpZnkoYyhkKSkpK2AvYCtwfWVsc2V7dmFyIG09SlNPTi5zdHJpbmdpZnkoZik/P2BtaXNzaW5nYDtyZXR1cm4gbT1zLlNUUklOR19JTlRFUk5fTEVWRUw8PTE/bTpsKG0scy5NQVhfREFUQV9JRF9MRU5HVEgpLHUrYC9gK2UubmFtZStgL2ArSlNPTi5zdHJpbmdpZnkoYyhkKSkrYC9gK219fXQuZXhwb3J0cz11fSkpLFdwPXMoKChlLHQpPT57dmFyIG49RmQoKTtmdW5jdGlvbiByKGUsdCl7dmFyIHIsaTsoKHI9ZS5tZXRhZGF0YSk9PW51bGw/dm9pZCAwOnIucGx1cmFsKT09PSEwJiZuKCExKTt2YXIgYT0oaT1lLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6aS5yZWZldGNoO2E/P24oITEpO3ZhciBvPWEub3BlcmF0aW9uLmRlZmF1bHQ/YS5vcGVyYXRpb24uZGVmYXVsdDphLm9wZXJhdGlvbixzPWEuZnJhZ21lbnRQYXRoSW5SZXN1bHQ7dHlwZW9mIG89PWBzdHJpbmdgJiZuKCExKTt2YXIgYz1hLmlkZW50aWZpZXJJbmZvO3JldHVybiBjIT1udWxsJiYoIShjLmlkZW50aWZpZXJGaWVsZD09bnVsbHx8dHlwZW9mIGMuaWRlbnRpZmllckZpZWxkPT1gc3RyaW5nYCkmJm4oITEpLCEoYy5pZGVudGlmaWVyUXVlcnlWYXJpYWJsZU5hbWU9PW51bGx8fHR5cGVvZiBjLmlkZW50aWZpZXJRdWVyeVZhcmlhYmxlTmFtZT09YHN0cmluZ2ApJiZuKCExKSkse2ZyYWdtZW50UmVmUGF0aEluUmVzcG9uc2U6cyxpZGVudGlmaWVySW5mbzpjLHJlZmV0Y2hhYmxlUmVxdWVzdDpvLHJlZmV0Y2hNZXRhZGF0YTphfX10LmV4cG9ydHM9cn0pKSxHcD1zKCgoZSx0KT0+e3ZhciBuPVdwKCkscj1GZCgpO2Z1bmN0aW9uIGkoZSx0KXt2YXIgaSxhPW4oZSx0KSxvPWEucmVmZXRjaGFibGVSZXF1ZXN0LHM9YS5yZWZldGNoTWV0YWRhdGEsYz1zLmNvbm5lY3Rpb247Yz8/cighMSk7dmFyIGw9Yy5wYXRoLHU9KCgoaT1lLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6aS5jb25uZWN0aW9uKT8/W10pWzBdO3U/P3IoITEpO3ZhciBkPXMuaWRlbnRpZmllckluZm87cmV0dXJuISgoZD09bnVsbD92b2lkIDA6ZC5pZGVudGlmaWVyRmllbGQpPT1udWxsfHx0eXBlb2YgZC5pZGVudGlmaWVyRmllbGQ9PWBzdHJpbmdgKSYmcighMSkse2Nvbm5lY3Rpb25QYXRoSW5GcmFnbWVudERhdGE6bCxpZGVudGlmaWVyRmllbGQ6ZD09bnVsbD92b2lkIDA6ZC5pZGVudGlmaWVyRmllbGQscGFnaW5hdGlvblJlcXVlc3Q6byxwYWdpbmF0aW9uTWV0YWRhdGE6YyxzdHJlYW06dS5zdHJlYW09PT0hMH19dC5leHBvcnRzPWl9KSksS3A9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKHFkKCkpLGk9bihKZCgpKSxhPUZkKCk7TGQoKTtmdW5jdGlvbiBvKGUsdCxuLG8scyxjKXt2YXIgbCx1PWMuYmFja3dhcmQsZD1jLmZvcndhcmQ7aWYoZT09PWBiYWNrd2FyZGApe3ZhciBmOyEodSE9bnVsbCYmdS5jb3VudCE9bnVsbCYmdS5jdXJzb3IhPW51bGwpJiZhKCExKTt2YXIgcD0oMCxpLmRlZmF1bHQpKCgwLGkuZGVmYXVsdCkoKDAsaS5kZWZhdWx0KSh7fSxvKSxzKSx7fSwoZj17fSwoMCxyLmRlZmF1bHQpKGYsdS5jdXJzb3IsbiksKDAsci5kZWZhdWx0KShmLHUuY291bnQsdCksZikpO3JldHVybiBkJiZkLmN1cnNvciYmKHBbZC5jdXJzb3JdPW51bGwpLGQmJmQuY291bnQmJihwW2QuY291bnRdPW51bGwpLHB9IShkIT1udWxsJiZkLmNvdW50IT1udWxsJiZkLmN1cnNvciE9bnVsbCkmJmEoITEpO3ZhciBtPSgwLGkuZGVmYXVsdCkoKDAsaS5kZWZhdWx0KSgoMCxpLmRlZmF1bHQpKHt9LG8pLHMpLHt9LChsPXt9LCgwLHIuZGVmYXVsdCkobCxkLmN1cnNvcixuKSwoMCxyLmRlZmF1bHQpKGwsZC5jb3VudCx0KSxsKSk7cmV0dXJuIHUmJnUuY3Vyc29yJiYobVt1LmN1cnNvcl09bnVsbCksdSYmdS5jb3VudCYmKG1bdS5jb3VudF09bnVsbCksbX10LmV4cG9ydHM9b30pKSxlZWU9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEhkKCkpLGk9RmQoKTtmdW5jdGlvbiBhKGUsdCl7dmFyIG49ZSxhPSgwLHIuZGVmYXVsdCkodCksbzt0cnl7Zm9yKGEucygpOyEobz1hLm4oKSkuZG9uZTspe3ZhciBzPW8udmFsdWU7aWYobj09bnVsbClyZXR1cm4gbnVsbDt0eXBlb2Ygcz09YG51bWJlcmA/KCFBcnJheS5pc0FycmF5KG4pJiZpKCExKSxuPW5bc10pOighKHR5cGVvZiBuPT1gb2JqZWN0YCYmIUFycmF5LmlzQXJyYXkobikpJiZpKCExKSxuPW5bc10pfX1jYXRjaChlKXthLmUoZSl9ZmluYWxseXthLmYoKX1yZXR1cm4gbn10LmV4cG9ydHM9YX0pKSx0ZWU9cygoKGUsdCk9Pnt2YXIgbj17fSxyPXtzdG9wOmZ1bmN0aW9uKCl7fX0saT17cHJvZmlsZTpmdW5jdGlvbihlLHQpe3ZhciBpPW5bZV07aWYoaSYmaS5sZW5ndGg+MCl7Zm9yKHZhciBhPVtdLG89aS5sZW5ndGgtMTtvPj0wO28tLSl7dmFyIHM9aVtvXShlLHQpO2EudW5zaGlmdChzKX1yZXR1cm57c3RvcDpmdW5jdGlvbihlKXthLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQoZSl9KX19fXJldHVybiByfSxhdHRhY2hQcm9maWxlSGFuZGxlcjpmdW5jdGlvbihlLHQpe24uaGFzT3duUHJvcGVydHkoZSl8fChuW2VdPVtdKSxuW2VdLnB1c2godCl9LGRldGFjaFByb2ZpbGVIYW5kbGVyOmZ1bmN0aW9uKGUsdCl7bi5oYXNPd25Qcm9wZXJ0eShlKSYmYShuW2VdLHQpfX07ZnVuY3Rpb24gYShlLHQpe3ZhciBuPWUuaW5kZXhPZih0KTtuIT09LTEmJmUuc3BsaWNlKG4sMSl9dC5leHBvcnRzPWl9KSksbmVlPXMoKChlLHQpPT57dmFyIG49X2YoKSxyPW4uaXNFcnJvclJlc3VsdCxpPW4uaXNWYWx1ZVJlc3VsdCxhPVNmKCksbz14ZigpLHM9Q2YoKSxjPXdmKCksbD1BZigpLHU9amYoKSxkPU5mKCksZj1rZigpLHA9SWYoKSxtPWRmKCksaD1MZigpLGc9UmYoKSxfPXpmKCksdj1wZigpLHk9UmQoKSxiPUJmKCkseD1iZigpLFM9eC5nZW5lcmF0ZUNsaWVudElELEM9eC5nZW5lcmF0ZVVuaXF1ZUNsaWVudElELHc9eC5pc0NsaWVudElELFQ9V2YoKSxFPUdmKCksRD1UZigpLE89S2YoKSxrPU8uaXNTdXNwZW5zZVNlbnRpbmVsLEE9Ty5zdXNwZW5zZVNlbnRpbmVsLGo9bnAoKSxNPXJwKCksTj1yZigpLFA9VHAoKSxGPU9mKCksZWU9SmYoKSxJPW9mKCksTD16cCgpLFI9b3AoKSx6PVhmKCksdGU9bmYoKSxuZT1zZigpLHJlPWNwKCksaWU9QnAoKSxhZT1WcCgpLG9lPUVmKCksc2U9VXAoKSxjZT1HcCgpLGxlPUtwKCksdWU9bWYoKSxkZT1XcCgpLGZlPWVmKCkscGU9RGYoKSxtZT1lZWUoKSxoZT1VZCgpLmhhbmRsZVBvdGVudGlhbFNuYXBzaG90RXJyb3JzLGdlPXVmKCksX2U9VmYoKSx2ZT1IZigpLHllPVBkKCksYmU9JGQoKSx4ZT1mcCgpLFNlPXZmKCksQ2U9dGVlKCksd2U9ZmYoKSxUZT10ZigpLEVlPVRlLmhhc0N5Y2xlLERlPVRlLnN0YWJsZUNvcHksT2U9UGYoKTt0LmV4cG9ydHM9e0Vudmlyb25tZW50OlAsTmV0d29yazpwLE9ic2VydmFibGU6bSxRdWVyeVJlc3BvbnNlQ2FjaGU6aCxSZWNvcmRTb3VyY2U6eixSZWNvcmQ6ZWUsUmVwbGF5U3ViamVjdDp3ZSxTdG9yZTpMLGFyZUVxdWFsU2VsZWN0b3JzOkkuYXJlRXF1YWxTZWxlY3RvcnMsY3JlYXRlRnJhZ21lbnRTcGVjUmVzb2x2ZXI6VCxjcmVhdGVOb3JtYWxpemF0aW9uU2VsZWN0b3I6SS5jcmVhdGVOb3JtYWxpemF0aW9uU2VsZWN0b3IsY3JlYXRlT3BlcmF0aW9uRGVzY3JpcHRvcjpGLmNyZWF0ZU9wZXJhdGlvbkRlc2NyaXB0b3IsY3JlYXRlUmVhZGVyU2VsZWN0b3I6SS5jcmVhdGVSZWFkZXJTZWxlY3RvcixjcmVhdGVSZXF1ZXN0RGVzY3JpcHRvcjpGLmNyZWF0ZVJlcXVlc3REZXNjcmlwdG9yLGdldEFyZ3VtZW50VmFsdWVzOnRlLmdldEFyZ3VtZW50VmFsdWVzLGdldERhdGFJRHNGcm9tRnJhZ21lbnQ6SS5nZXREYXRhSURzRnJvbUZyYWdtZW50LGdldERhdGFJRHNGcm9tT2JqZWN0OkkuZ2V0RGF0YUlEc0Zyb21PYmplY3QsZ2V0Tm9kZTp5LmdldE5vZGUsZ2V0RnJhZ21lbnQ6eS5nZXRGcmFnbWVudCxnZXRJbmxpbmVEYXRhRnJhZ21lbnQ6eS5nZXRJbmxpbmVEYXRhRnJhZ21lbnQsZ2V0TW9kdWxlQ29tcG9uZW50S2V5OnRlLmdldE1vZHVsZUNvbXBvbmVudEtleSxnZXRNb2R1bGVPcGVyYXRpb25LZXk6dGUuZ2V0TW9kdWxlT3BlcmF0aW9uS2V5LGdldFBhZ2luYXRpb25GcmFnbWVudDp5LmdldFBhZ2luYXRpb25GcmFnbWVudCxnZXRQbHVyYWxTZWxlY3RvcjpJLmdldFBsdXJhbFNlbGVjdG9yLGdldFJlZmV0Y2hhYmxlRnJhZ21lbnQ6eS5nZXRSZWZldGNoYWJsZUZyYWdtZW50LGdldFJlcXVlc3Q6eS5nZXRSZXF1ZXN0LGdldFJlcXVlc3RJZGVudGlmaWVyOnBlLGdldFNlbGVjdG9yOkkuZ2V0U2VsZWN0b3IsZ2V0U2VsZWN0b3JzRnJvbU9iamVjdDpJLmdldFNlbGVjdG9yc0Zyb21PYmplY3QsZ2V0U2luZ3VsYXJTZWxlY3RvcjpJLmdldFNpbmd1bGFyU2VsZWN0b3IsZ2V0U3RvcmFnZUtleTp0ZS5nZXRTdG9yYWdlS2V5LGdldFZhcmlhYmxlc0Zyb21GcmFnbWVudDpJLmdldFZhcmlhYmxlc0Zyb21GcmFnbWVudCxnZXRWYXJpYWJsZXNGcm9tT2JqZWN0OkkuZ2V0VmFyaWFibGVzRnJvbU9iamVjdCxnZXRWYXJpYWJsZXNGcm9tUGx1cmFsRnJhZ21lbnQ6SS5nZXRWYXJpYWJsZXNGcm9tUGx1cmFsRnJhZ21lbnQsZ2V0VmFyaWFibGVzRnJvbVNpbmd1bGFyRnJhZ21lbnQ6SS5nZXRWYXJpYWJsZXNGcm9tU2luZ3VsYXJGcmFnbWVudCxoYW5kbGVQb3RlbnRpYWxTbmFwc2hvdEVycm9yczpoZSxncmFwaHFsOnkuZ3JhcGhxbCxpc0Vycm9yUmVzdWx0OnIsaXNWYWx1ZVJlc3VsdDppLGlzRnJhZ21lbnQ6eS5pc0ZyYWdtZW50LGlzSW5saW5lRGF0YUZyYWdtZW50OnkuaXNJbmxpbmVEYXRhRnJhZ21lbnQsaXNTdXNwZW5zZVNlbnRpbmVsOmssc3VzcGVuc2VTZW50aW5lbDpBLGlzUmVxdWVzdDp5LmlzUmVxdWVzdCxyZWFkSW5saW5lRGF0YTpNLE11dGF0aW9uVHlwZXM6Zi5NdXRhdGlvblR5cGVzLFJhbmdlT3BlcmF0aW9uczpmLlJhbmdlT3BlcmF0aW9ucyxEZWZhdWx0SGFuZGxlclByb3ZpZGVyOmMsQ29ubmVjdGlvbkhhbmRsZXI6YSxNdXRhdGlvbkhhbmRsZXJzOnMsVklFV0VSX0lEOnJlLlZJRVdFUl9JRCxWSUVXRVJfVFlQRTpyZS5WSUVXRVJfVFlQRSxhcHBseU9wdGltaXN0aWNNdXRhdGlvbjpsLGNvbW1pdExvY2FsVXBkYXRlOnUsY29tbWl0TXV0YXRpb246ZCxmZXRjaFF1ZXJ5OmcsZmV0Y2hRdWVyeV9ERVBSRUNBVEVEOl8saXNSZWxheU1vZGVybkVudmlyb25tZW50OkQscmVxdWVzdFN1YnNjcmlwdGlvbjppZSxDb25uZWN0aW9uSW50ZXJmYWNlOm8sUHJlbG9hZGFibGVRdWVyeVJlZ2lzdHJ5OmIsUmVsYXlQcm9maWxlcjpDZSxjcmVhdGVQYXlsb2FkRm9yM0RGaWVsZDphZSxSZWxheUNvbmNyZXRlTm9kZTp5ZSxSZWxheUVycm9yOnhlLFJlbGF5RmVhdHVyZUZsYWdzOlNlLERFRkFVTFRfSEFORExFX0tFWTpiZS5ERUZBVUxUX0hBTkRMRV9LRVksRlJBR01FTlRTX0tFWTp0ZS5GUkFHTUVOVFNfS0VZLEZSQUdNRU5UX09XTkVSX0tFWTp0ZS5GUkFHTUVOVF9PV05FUl9LRVksSURfS0VZOnRlLklEX0tFWSxSRUZfS0VZOnRlLlJFRl9LRVksUkVGU19LRVk6dGUuUkVGU19LRVksUk9PVF9JRDp0ZS5ST09UX0lELFJPT1RfVFlQRTp0ZS5ST09UX1RZUEUsVFlQRU5BTUVfS0VZOnRlLlRZUEVOQU1FX0tFWSxkZWVwRnJlZXplOm9lLGdlbmVyYXRlQ2xpZW50SUQ6UyxnZW5lcmF0ZVVuaXF1ZUNsaWVudElEOkMsZ2V0UmVsYXlIYW5kbGVLZXk6ZmUsaXNDbGllbnRJRDp3LGlzUHJvbWlzZTpnZSxpc1NjYWxhckFuZEVxdWFsOl9lLHJlY3ljbGVOb2Rlc0ludG86dmUsc3RhYmxlQ29weTpEZSxoYXNDeWNsZTpFZSxnZXRGcmFnbWVudElkZW50aWZpZXI6c2UsZ2V0UmVmZXRjaE1ldGFkYXRhOmRlLGdldFBhZ2luYXRpb25NZXRhZGF0YTpjZSxnZXRQYWdpbmF0aW9uVmFyaWFibGVzOmxlLGdldFBlbmRpbmdPcGVyYXRpb25zRm9yRnJhZ21lbnQ6dWUsZ2V0VmFsdWVBdFBhdGg6bWUsX19pbnRlcm5hbDp7UmVzb2x2ZXJGcmFnbWVudHM6bmUsT3BlcmF0aW9uVHJhY2tlcjpSLGNyZWF0ZVJlbGF5Q29udGV4dDpFLGdldE9wZXJhdGlvblZhcmlhYmxlczpOLmdldE9wZXJhdGlvblZhcmlhYmxlcyxnZXRMb2NhbFZhcmlhYmxlczpOLmdldExvY2FsVmFyaWFibGVzLGZldGNoUXVlcnk6di5mZXRjaFF1ZXJ5LGZldGNoUXVlcnlEZWR1cGVkOnYuZmV0Y2hRdWVyeURlZHVwZWQsZ2V0UHJvbWlzZUZvckFjdGl2ZVJlcXVlc3Q6di5nZXRQcm9taXNlRm9yQWN0aXZlUmVxdWVzdCxnZXRPYnNlcnZhYmxlRm9yQWN0aXZlUmVxdWVzdDp2LmdldE9ic2VydmFibGVGb3JBY3RpdmVSZXF1ZXN0LG5vcm1hbGl6ZVJlc3BvbnNlOmosd2l0aFByb3ZpZGVkVmFyaWFibGVzOk9lfX19KSkscXA9cygoKGUsdCk9Pnt0LmV4cG9ydHM9bmVlKCl9KSksSnA9dShOZCgpKSxZcD1xcCgpO2Z1bmN0aW9uIFhwKGUpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJiEhZSYmT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09T2JqZWN0LnByb3RvdHlwZX1mdW5jdGlvbiBacChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIFFwKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP1pwKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtyZWUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6WnAoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIHJlZShlLHQsbil7cmV0dXJuKHQ9aWVlKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIGllZShlKXt2YXIgdD1hZWUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gYWVlKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gb2VlKGUpe3ZhciB0O3JldHVybmBlcnJvcmBpbiBlJiZ0eXBlb2YgZS5lcnJvcj09YHN0cmluZ2B8fGBlcnJvcnNgaW4gZSYmQXJyYXkuaXNBcnJheShlLmVycm9ycykmJnR5cGVvZigodD1lLmVycm9yc1swXSk9PW51bGw/dm9pZCAwOnQubWVzc2FnZSk9PWBzdHJpbmdgfHxgbWVzc2FnZWBpbiBlJiZ0eXBlb2YgZS5tZXNzYWdlPT1gc3RyaW5nYH1mdW5jdGlvbiAkcChlKXtsZXQgdD1gZmFpbGVkIHRvIHBhcnNlIHVybCBwYXRobmFtZWA7dHJ5e3JldHVybiBuZXcgVVJMKGUpLnBhdGhuYW1lfHx0fWNhdGNoe3JldHVybiBlLnJlcGxhY2UoL15odHRwcz86XC9cL1teL10rLyxgYCkuc3BsaXQoYD9gKVswXS5zcGxpdChgI2ApWzBdfHx0fX1mdW5jdGlvbiBzZWUoZSx0KXtsZXQgbj1gRmFpbGVkIHRvIGZldGNoOiAke2Uuc3RhdHVzfSB8ICR7ZS51cmw9PW51bGw/YHVua25vd24gcGF0aG5hbWVgOiRwKGUudXJsKX1gO2lmKHQgaW5zdGFuY2VvZiBFcnJvcilyZXR1cm5gJHtufSB8ICR7dC5tZXNzYWdlfWA7aWYoWHAodCkmJm9lZSh0KSl7bGV0IGU9dC5lcnJvcixuPXQuZXJyb3JzLHI9dC5tZXNzYWdlO3JldHVybihuPT1udWxsP3ZvaWQgMDpuLm1hcChlPT5lLm1lc3NhZ2UpLmpvaW4oYApgKSk/P2U/P3J9cmV0dXJuIG59dmFyIGNlZT0vY2xvdWRmbGFyZS9pLGVtPWNsYXNzIGUgZXh0ZW5kcyBFcnJvcntnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMucmVzcG9uc2Uuc3RhdHVzfWdldCBtZXRhKCl7bGV0IGU9dGhpcy5yZXNwb25zZS5oZWFkZXJzLmdldChgeC1hbXpuLXJlcXVlc3RpZGApfHx0aGlzLnJlc3BvbnNlLmhlYWRlcnMuZ2V0KGB4LXJlcXVlc3QtaWRgKSx0PXRoaXMucmVzcG9uc2UuaGVhZGVycy5nZXQoYGNmLXJheWApLG49dGhpcy5yZXNwb25zZS51cmw9PW51bGw/YHVua25vd24gcGF0aG5hbWVgOiRwKHRoaXMucmVzcG9uc2UudXJsKTtyZXR1cm57c3RhdHVzQ29kZTp0aGlzLnJlc3BvbnNlLnN0YXR1cyxyZXF1ZXN0SWQ6QXJyYXkuaXNBcnJheShlKT9lWzBdOmUsY2ZSYXk6QXJyYXkuaXNBcnJheSh0KT90WzBdOnQsdXJsUGF0aG5hbWU6bn19Z2V0IHJlc3BvbnNlU291cmNlKCl7aWYodGhpcy5yZXNwb25zZS5oZWFkZXJzLmdldChgQ0YtTWl0aWdhdGVkYCl8fHRoaXMucmVzcG9uc2Uuc3RhdHVzPj01MjAmJnRoaXMucmVzcG9uc2Uuc3RhdHVzPD01Mjd8fHRoaXMucmVzcG9uc2Uuc3RhdHVzPT09NTMwKXJldHVybmBjbG91ZGZsYXJlYDtpZih0aGlzLnJlc3BvbnNlLmhlYWRlcnMuZ2V0KGBYLUVycm9yLU9yaWdpbmApPT09YG5naW54YClyZXR1cm5gbmdpbnhgO2lmKFhwKHRoaXMucmVzcG9uc2VKc29uT3JUZXh0KSlyZXR1cm5gc2VydmljZWA7aWYodHlwZW9mIHRoaXMucmVzcG9uc2VKc29uT3JUZXh0PT1gc3RyaW5nYCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5yZXNwb25zZUpzb25PclRleHQpIT1udWxsJiZlLm1hdGNoKGNlZSk/YGNsb3VkZmxhcmVgOmBnYXRld2F5YH1yZXR1cm5gdW5rbm93bmB9Z2V0IG1ldGFkYXRhKCl7cmV0dXJuIFFwKFFwKHt9LHRoaXMuYWRkaXRpb25hbE1ldGFkYXRhKSx7fSx7Y2F1c2U6dGhpcy5jYXVzZSBpbnN0YW5jZW9mIEVycm9yP1N0cmluZyh0aGlzLmNhdXNlKTpudWxsLHJlYXV0aGVudGljYXRpb25SZXF1aXJlZDp0aGlzLnJlYXV0aGVudGljYXRpb25SZXF1aXJlZCxyZXNwb25zZVNvdXJjZTp0aGlzLnJlc3BvbnNlU291cmNlfSl9c2V0IG1ldGFkYXRhKGUpe3RoaXMuYWRkaXRpb25hbE1ldGFkYXRhPWV9Y29uc3RydWN0b3IodCxuKXtzdXBlcihzZWUodCxuKSksdGhpcy5uYW1lPWBBcGlFcnJvcmAsdGhpcy5yZXNwb25zZT12b2lkIDAsdGhpcy5yZXNwb25zZUpzb249dm9pZCAwLHRoaXMucmVzcG9uc2VKc29uT3JUZXh0PXZvaWQgMCx0aGlzLnJlYXV0aGVudGljYXRpb25SZXF1aXJlZD12b2lkIDAsdGhpcy5hZGRpdGlvbmFsTWV0YWRhdGE9e30sT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsZS5wcm90b3R5cGUpLHRoaXMucmVzcG9uc2U9dCx0aGlzLnJlc3BvbnNlSnNvbj1uLHRoaXMucmVzcG9uc2VKc29uT3JUZXh0PW59dG9KU09OKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKX19LHRtPXtsb2dNZXRyaWM6X2N9O2Z1bmN0aW9uIG5tKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gcm0oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/bm0oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2xlZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpubShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbGVlKGUsdCxuKXtyZXR1cm4odD11ZWUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gdWVlKGUpe3ZhciB0PWRlZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBkZWUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX12YXIgZmVlPXtkZWJ1ZzohMCxpbmZvOiEwLGxvZzohMCx3YXJuOiEwLGVycm9yOiEwfSxwZWU9Y2xhc3N7Y29uc3RydWN0b3Ioe3ByZWZpeDplLGNvbG9yOnQ9YGdyZWVuYCxvbkxvZzpuLHdyaXRlTGV2ZWw6cn0pe3RoaXMucHJlZml4PXZvaWQgMCx0aGlzLmNvbG9yPXZvaWQgMCx0aGlzLndyaXRlTGV2ZWw9dm9pZCAwLHRoaXMub25Mb2c9dm9pZCAwLHRoaXMuZGVidWc9KC4uLmUpPT57dmFyIHQ7KHQ9dGhpcy5vbkxvZyk9PW51bGx8fHQuY2FsbCh0aGlzLGBERUJVR2AsLi4uZSl9LHRoaXMubG9nPSguLi5lKT0+e3ZhciB0Oyh0PXRoaXMub25Mb2cpPT1udWxsfHx0LmNhbGwodGhpcyxgTE9HYCwuLi5lKX0sdGhpcy5pbmZvPSguLi5lKT0+e3ZhciB0Oyh0PXRoaXMub25Mb2cpPT1udWxsfHx0LmNhbGwodGhpcyxgSU5GT2AsLi4uZSl9LHRoaXMuZXJyb3I9KC4uLmUpPT57dmFyIHQ7KHQ9dGhpcy5vbkxvZyk9PW51bGx8fHQuY2FsbCh0aGlzLGBFUlJPUmAsLi4uZSl9LHRoaXMud2Fybj0oLi4uZSk9Pnt2YXIgdDsodD10aGlzLm9uTG9nKT09bnVsbHx8dC5jYWxsKHRoaXMsYFdBUk5gLC4uLmUpfSx0aGlzLnByZWZpeD1lLHRoaXMuY29sb3I9dCx0aGlzLndyaXRlTGV2ZWw9cm0ocm0oe30sZmVlKSxyKSx0aGlzLm9uTG9nPW59fSxpbTtmdW5jdGlvbiBtZWUoZSl7aW09ZX12YXIgYW09bmV3IHBlZSh7cHJlZml4OmBEQVRBYCxjb2xvcjpgZ3JlZW5gLG9uTG9nOiguLi5lKT0+e2ltPT1udWxsfHxpbSguLi5lKX19KTtmdW5jdGlvbiBvbShlKXt0cnl7bGV0IHQ9bmV3IFVSTChlLnNwbGl0KGA/YClbMF0pO3JldHVybi9jb2luYmFzZVwuY29tfGNiaHFcLm5ldHxsb2NhbGhvc3QvLnRlc3QodC5ob3N0bmFtZSl9Y2F0Y2h7cmV0dXJuITF9fXZhciBzbT1jbGFzcyBlIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3Ioe21lc3NhZ2U6dCxlcnJvcjpufSl7c3VwZXIodCksdGhpcy5uYW1lPWBOZXR3b3JrRXJyb3JgLHRoaXMuZXJyb3I9dm9pZCAwLHRoaXMucmVwb3J0RXJyb3I9ITEsdGhpcy5lcnJvcj1uLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLGUucHJvdG90eXBlKX10b0pTT04oKXtyZXR1cm4gdGhpcy50b1N0cmluZygpfX07ZnVuY3Rpb24gY20oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBsbShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9jbShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7aGVlKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmNtKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBoZWUoZSx0LG4pe3JldHVybih0PWdlZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBnZWUoZSl7dmFyIHQ9X2VlKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIF9lZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIHVtKHtoYW5kbGVVbmF1dGhvcml6ZWQ6ZSxnZXRQcmVSZXF1ZXN0U3RhdGU6dH0pe3JldHVybiBmdW5jdGlvbihuKXtsZXQgcjtyZXR1cm4gYXN5bmMgZnVuY3Rpb24oaSxhKXthd2FpdCByO2xldCBvPXQ9PW51bGw/dm9pZCAwOnQoKSxzPWF3YWl0IG4oaSxhKTtpZihzIGluc3RhbmNlb2Ygc20pcmV0dXJuIHM7aWYocyBpbnN0YW5jZW9mIGVtJiZzLnN0YXR1cz09PTQwMSl7bGV0IHQ9e2lzQmVpbmdSZWF1dGhvcml6ZWQ6ITAsYWNxdWlyZWRSZWF1dGhvcml6YXRpb25Mb2NrOiExLHJlYXV0aG9yaXplZDohMX07cnx8KHQuYWNxdWlyZWRSZWF1dGhvcml6YXRpb25Mb2NrPSEwLHI9ZSh7cmVzcG9uc2U6cyx1cmw6aSxpbml0OmEscHJlUmVxdWVzdFN0YXRlOm99KS50aGVuKGU9Pih7cmVhdXRob3JpemF0aW9uVmFsdWU6ZSxjYXVzZTpzLmNhdXNlfSkpKTt0cnl7bGV0IGU9YXdhaXQgcixuPWUucmVhdXRob3JpemF0aW9uVmFsdWUsaT1lLmNhdXNlLG89dHlwZW9mIG49PWBib29sZWFuYD9uOm49PT1gc3VjY2Vzc2A7aWYodC5yZWF1dGhvcml6ZWQ9byxhJiYoYS5sb2dNZXRhZGF0YT1sbShsbSh7fSxhLmxvZ01ldGFkYXRhKSx7fSx7cmV0cnlVbmF1dGhvcml6ZWQ6dH0pKSwhbylyZXR1cm4gcy5yZWF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ9biE9PWB1bmtub3duYCxzLm1lc3NhZ2U9YFJlYXV0aG9yaXphdGlvbiBmYWlsZWQ6IHJlYXV0aG9yaXphdGlvbiBoYW5kbGVyIHJldHVybmVkIGZhbHNlYCxzLmNhdXNlPz8ocy5jYXVzZT1pKSxzLm1ldGFkYXRhPXtyZWF1dGhvcml6YXRpb25TdGF0dXM6bn0sc31jYXRjaChlKXtyZXR1cm4gcy5tZXNzYWdlPWBSZWF1dGhvcml6YXRpb24gZmFpbGVkOiAke2UgaW5zdGFuY2VvZiBFcnJvcj9lLm1lc3NhZ2U6ZX1gLHMuY2F1c2U/PyhzLmNhdXNlPWUpLHN9ZmluYWxseXtyPXZvaWQgMH1yZXR1cm4gbihpLGEpfXJldHVybiBzfX19ZnVuY3Rpb24gZG0oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBmbShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9kbShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7dmVlKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmRtKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiB2ZWUoZSx0LG4pe3JldHVybih0PXllZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiB5ZWUoZSl7dmFyIHQ9YmVlKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIGJlZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIHBtKHtoZWFkZXJzOmV9KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKG4scil7cmV0dXJuIHQobixmbShmbSh7fSxyKSx7fSx7aGVhZGVyczpmbShmbSh7fSxlIGluc3RhbmNlb2YgRnVuY3Rpb24/YXdhaXQgZSh7dXJsOm4saW5pdDpyfSk6ZSkscj09bnVsbD92b2lkIDA6ci5oZWFkZXJzKX0pKX19fWZ1bmN0aW9uIHhlZSh7dG9rZW5NYW5hZ2VyOmUsc2hvdWxkU2VuZEF1dGg6dD1vbX0pe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdW0oe2hhbmRsZVVuYXV0aG9yaXplZDphc3luYyh7cmVzcG9uc2U6dCxwcmVSZXF1ZXN0U3RhdGU6bn0pPT57bGV0IHI9YXdhaXQobj09bnVsbD92b2lkIDA6bi5pbml0aWFsQWNjZXNzVG9rZW5SZWFkKTtpZihhd2FpdCBlLmdldEFjY2Vzc1Rva2VuKCkhPT1yKXJldHVybmBzdWNjZXNzYDtsZXQgaT1hd2FpdCBlLnJlZnJlc2hUb2tlbnMoKTtyZXR1cm4gdHlwZW9mIGk9PWBzdHJpbmdgP2BzdWNjZXNzYDoodC5jYXVzZT1pLGF3YWl0IGUuZ2V0QWNjZXNzVG9rZW4oKT09PXZvaWQgMD9gZmFpbHVyZWA6YHVua25vd25gKX0sZ2V0UHJlUmVxdWVzdFN0YXRlOigpPT4oe2luaXRpYWxBY2Nlc3NUb2tlblJlYWQ6ZS5nZXRBY2Nlc3NUb2tlbigpfSl9KShwbSh7aGVhZGVyczphc3luYyBuPT57bGV0IHI9YXdhaXQgZS5nZXRBY2Nlc3NUb2tlbigpO3JldHVybiByJiZ0KG4udXJsKT97YXV0aG9yaXphdGlvbjpgQmVhcmVyICR7cn1gfTp7fX19KShuKSl9fWZ1bmN0aW9uIG1tKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gU2VlKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP21tKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtDZWUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6bW0oT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIENlZShlLHQsbil7cmV0dXJuKHQ9d2VlKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHdlZShlKXt2YXIgdD1UZWUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gVGVlKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gRWVlKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYXN5bmMgZnVuY3Rpb24obixyKXtyZXR1cm4gdChuLFNlZSh7Y3JlZGVudGlhbHM6ZX0scikpfX19dmFyIERlZT1gY2IucmVhY3QuZGF0YV9sYXllcmA7ZnVuY3Rpb24gaG0oZSl7cmV0dXJuYCR7RGVlfS4ke2V9YH1mdW5jdGlvbiBnbShlKXtsZXQgdD1lLmhlYWRlcnMuZ2V0KGBjb250ZW50LXR5cGVgKTtyZXR1cm4gdD90LmluY2x1ZGVzKGBhcHBsaWNhdGlvbi9qc29uYCk6ITF9ZnVuY3Rpb24gT2VlKGUpe2xldCB0PWUuaGVhZGVycy5nZXQoYGNvbnRlbnQtdHlwZWApO3JldHVybiB0P3QuaW5jbHVkZXMoYHRleHQvaHRtbGApfHx0LmluY2x1ZGVzKGB0ZXh0L3BsYWluYCk6ITF9ZnVuY3Rpb24ga2VlKGUpe2xldCB0PWUuaGVhZGVycy5nZXQoYGNvbnRlbnQtdHlwZWApO3JldHVybiB0P3QuaW5jbHVkZXMoYHRleHQvcGxhaW5gKTohMX1mdW5jdGlvbiBBZWUoZSl7bGV0IHQ9ZS5oZWFkZXJzLmdldChgY29udGVudC10eXBlYCk7cmV0dXJuIHQ/dC5pbmNsdWRlcyhgdGV4dC9odG1sYCk6ITF9ZnVuY3Rpb24gX20oZSl7bGV0IHQ9ZS5oZWFkZXJzLmdldChgY29udGVudC10eXBlYCk7cmV0dXJuIHQ/dC5pbmNsdWRlcyhgbXVsdGlwYXJ0L21peGVkYCk6ITF9ZnVuY3Rpb24gdm0oZSl7bGV0IHQ9ZS5oZWFkZXJzLmdldChgY29udGVudC10eXBlYCk7cmV0dXJuIHQ/dC5pbmNsdWRlcyhgdGV4dC9ldmVudC1zdHJlYW1gKTohMX1mdW5jdGlvbiBqZWUoZSl7cmV0dXJuIF9tKGUpfHx2bShlKX1mdW5jdGlvbiB5bShlKXtyZXR1cm4gX20oZSk/YG11bHRpcGFydGA6dm0oZSk/YHNzZWA6YHVua25vd25gfWZ1bmN0aW9uIE1lZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yP2UgaW5zdGFuY2VvZiBzbT9gY2xpZW50YDplIGluc3RhbmNlb2YgZW0/ZS5yZXNwb25zZVNvdXJjZTpgdW5rbm93bmA6YHNlcnZpY2VgfWZ1bmN0aW9uIGJtKGUpe2xldCB0O2lmKGtlZShlKSYmKHQ9YHRleHQvcGxhaW5gKSxBZWUoZSkmJih0PWB0ZXh0L2h0bWxgKSxnbShlKSYmKHQ9YGFwcGxpY2F0aW9uL2pzb25gKSxfbShlKSYmKHQ9YG11bHRpcGFydC9taXhlZGApLHZtKGUpJiYodD1gdGV4dC9ldmVudC1zdHJlYW1gKSx0KXJldHVybiB0O2xldCBuPWUuaGVhZGVycy5nZXQoYGNvbnRlbnQtdHlwZWApO3JldHVybiBuP24uc3BsaXQoYDtgKVswXS50cmltKCk6YHVua25vd25gfWZ1bmN0aW9uIE5lZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHNtP2BuL2FgOmUgaW5zdGFuY2VvZiBlbT9ibShlLnJlc3BvbnNlKTpibShlKX1mdW5jdGlvbiB4bSgpe3JldHVybiB0eXBlb2Ygd2luZG93PGB1YCYmYHBlcmZvcm1hbmNlYGluIHdpbmRvdz93aW5kb3cucGVyZm9ybWFuY2Uubm93KCk6dHlwZW9mIGdsb2JhbFRoaXM8YHVgJiZgcGVyZm9ybWFuY2VgaW4gZ2xvYmFsVGhpcz9nbG9iYWxUaGlzLnBlcmZvcm1hbmNlLm5vdygpOkRhdGUubm93KCl9ZnVuY3Rpb24gU20oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBDbShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9TbShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7UGVlKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOlNtKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBQZWUoZSx0LG4pe3JldHVybih0PUZlZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBGZWUoZSl7dmFyIHQ9SWVlKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIEllZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIExlZSh7bG9nZ2VyOmU9YW0sYW5hbHl0aWNzOnQ9dG19KXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKHIsaSl7bGV0IGE9eG0oKSxvO3R5cGVvZiB3aW5kb3c8YHVgJiZgcGVyZm9ybWFuY2VgaW4gd2luZG93JiYobz13aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpO2xldCBzPS0xLGM9Q20oQ20oe30saSkse30se2xvZ01ldGFkYXRhOkNtKENtKHt9LGk9PW51bGw/dm9pZCAwOmkubG9nTWV0YWRhdGEpLHt9LHt1cmw6cixtZXRob2Q6KGk9PW51bGw/dm9pZCAwOmkubWV0aG9kKT8/YEdFVGB9KX0pO3QubG9nTWV0cmljKHttZXRyaWNOYW1lOmhtKGByZXF1ZXN0LnN0YXJ0YCksbWV0cmljVHlwZTpCLmNvdW50LHZhbHVlOjEsdGFnczpjLm1ldHJpY1RhZ3N9KTtsZXQgbD1hd2FpdCBuKHIsYyk7YHN0YXR1c2BpbiBsJiYocz1sLnN0YXR1cyk7bGV0IHU9eG0oKS1hLGQ7bCBpbnN0YW5jZW9mIEVycm9yfHx0LmxvZ01ldHJpYyh7bWV0cmljTmFtZTpobShgcmVxdWVzdC50aW1lX3VudGlsX2ZpcnN0X2J5dGUuZ2F1Z2VgKSxtZXRyaWNUeXBlOkIuZ2F1Z2UsdmFsdWU6bC50aW1lVW50aWxGaXJzdEJ5dGUsdGFnczpjLm1ldHJpY1RhZ3N9KSx0LmxvZ01ldHJpYyh7bWV0cmljTmFtZTpobShgdG90YWxfcmVxdWVzdC5kdXJhdGlvbi5nYXVnZWApLG1ldHJpY1R5cGU6Qi5nYXVnZSx2YWx1ZTp1LHRhZ3M6Yy5tZXRyaWNUYWdzfSksdHlwZW9mIHdpbmRvdzxgdWAmJmBwZXJmb3JtYW5jZWBpbiB3aW5kb3cmJm8hPT12b2lkIDAmJihkPU1hdGgucm91bmQod2luZG93LnBlcmZvcm1hbmNlLm5vdygpLW8pLHQubG9nTWV0cmljKHttZXRyaWNOYW1lOmhtKGB0b3RhbF9yZXF1ZXN0LmR1cmF0aW9uX3BlcmYuZ2F1Z2VgKSxtZXRyaWNUeXBlOkIuZ2F1Z2UsdmFsdWU6ZCx0YWdzOmMubWV0cmljVGFnc30pKSx0LmxvZ01ldHJpYyh7bWV0cmljTmFtZTpobShgdG90YWxfcmVxdWVzdC5jb21wbGV0ZWApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6Q20oQ20oe30sYy5tZXRyaWNUYWdzKSx7fSx7c3RhdHVzX2NvZGU6YCR7c31gLHJlc3BvbnNlX3NvdXJjZTpNZWUobCksY29udGVudF90eXBlOk5lZShsKX0pfSk7bGV0IGY9bCBpbnN0YW5jZW9mIGVtP2wubWV0YS5yZXF1ZXN0SWQ6bCBpbnN0YW5jZW9mIEVycm9yP2Bub25lYDpsLmhlYWRlcnMuZ2V0KGB4LWFtem4tcmVxdWVzZXRpZGApPz9sLmhlYWRlcnMuZ2V0KGB4LXJlcXVlc3QtaWRgKSxwPWBoZWFkZXJzYGluIGw/bC5oZWFkZXJzLmdldChgdHJhY2UtaWRgKTpudWxsO3JldHVybiBlLmRlYnVnKGBSZXF1ZXN0IGNvbXBsZXRlYCxDbShDbSh7fSxjLmxvZ01ldGFkYXRhKSx7fSx7cmVzcG9uc2VTdGF0dXM6cyxyZXF1ZXN0SWQ6Zix0cmFjZUlkOnAsdGltaW5nOntkdXJhdGlvbjp1LHRpbWVVbnRpbEZpcnN0Qnl0ZTpgdGltZVVudGlsRmlyc3RCeXRlYGluIGw/bC50aW1lVW50aWxGaXJzdEJ5dGU6bnVsbH19KSksbH19fWFzeW5jIGZ1bmN0aW9uIHdtKGUpe2F3YWl0IFByb21pc2UucmVzb2x2ZSgpLGUoKX1mdW5jdGlvbiBSZWUoe2xvZ2dlcjplPWFtfSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBhc3luYyBmdW5jdGlvbihuLHIpe2UubG9nKGBbTmV0d29yayBJbnNwZWN0b3JdIFJlcXVlc3Qgc3RhcnRlZGAse3VybDpuLGluaXQ6cn0pO2xldCBpPWF3YWl0IHQobixyKTtpZihpIGluc3RhbmNlb2YgRXJyb3Ipe2xldCB0PWksYT10IGluc3RhbmNlb2YgZW0/dC5yZXNwb25zZS5zdGF0dXM6LTE7cmV0dXJuIGUubG9nKGBbTmV0d29yayBJbnNwZWN0b3JdIEVycm9yIHJlc3BvbnNlIHJlY2VpdmVkYCx7dXJsOm4saW5pdDpyLHN0YXR1czphLGVycm9yOnR9KSxpfWlmKGplZShpKSl7bGV0IHQ9aS5zdGF0dXM7ZS5sb2coYFtOZXR3b3JrIEluc3BlY3Rvcl0gU3RyZWFtaW5nIHJlc3BvbnNlIHJlY2VpdmVkYCx7dXJsOm4saW5pdDpyLHN0YXR1czp0fSk7bGV0IGE9aS5pdGVyYWJsZSghMCk7cmV0dXJuIHdtKGFzeW5jKCk9Pntmb3IgYXdhaXQobGV0IHQgb2YgYSllLmxvZyhgW05ldHdvcmsgSW5zcGVjdG9yXSBTdHJlYW1pbmcgcmVzcG9uc2UgY2h1bmsgcmVjZWl2ZWRgLHt1cmw6bixpbml0OnIsY2h1bms6dH0pO2UubG9nKGBbTmV0d29yayBJbnNwZWN0b3JdIFN0cmVhbWluZyByZXNwb25zZSBjbG9zZWRgLHt1cmw6bixpbml0OnJ9KX0pLGl9bGV0IGE9aS5zdGF0dXM7ZS5sb2coYFtOZXR3b3JrIEluc3BlY3Rvcl0gVW5hcnkgcmVzcG9uc2UgcmVjZWl2ZWRgLHt1cmw6bixpbml0OnIsc3RhdHVzOmF9KTtsZXQgbz1hd2FpdCBpLnRleHQoKTtyZXR1cm4gZS5sb2coYFtOZXR3b3JrIEluc3BlY3Rvcl0gVW5hcnkgcmVzcG9uc2UgY29tcGxldGVkYCx7dXJsOm4saW5pdDpyLGJvZHk6b30pLGl9fX1mdW5jdGlvbiB6ZWUoe29uVHJhZmZpY1N0YXJ0OmUsb25UcmFmZmljU3RvcDp0LGxvZ2dlcjpuPWFtfSl7cmV0dXJuIGZ1bmN0aW9uKHIpe2xldCBpPTA7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKGEsbyl7aWYoaSs9MSxpPT09MSYmZSl0cnl7ZSgpfWNhdGNoKGUpe24uZXJyb3IoYEVycm9yIGluIG9uVHJhZmZpY1N0YXJ0IGNhbGxiYWNrYCxlKX10cnl7cmV0dXJuIGF3YWl0IHIoYSxvKX1maW5hbGx5e2lmKC0taSxpPT09MCYmdCl0cnl7dCgpfWNhdGNoKGUpe24uZXJyb3IoYEVycm9yIGluIG9uVHJhZmZpY1N0b3AgY2FsbGJhY2tgLGUpfX19fX12YXIgVG09Y2xhc3MgZSBleHRlbmRzIHNte2NvbnN0cnVjdG9yKHQpe3N1cGVyKHttZXNzYWdlOmByZXF1ZXN0VGltZW91dCBtaWRkbGV3YXJlIHRpbWVkIG91dCByZXF1ZXN0YCxlcnJvcjp0LmVycm9yfSksdGhpcy5uYW1lPWBOZXR3b3JrRXJyb3JgLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLGUucHJvdG90eXBlKX19O2Z1bmN0aW9uIEVtKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gRG0oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/RW0oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe0JlZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpFbShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gQmVlKGUsdCxuKXtyZXR1cm4odD1WZWUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gVmVlKGUpe3ZhciB0PUhlZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBIZWUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX12YXIgVWVlPTEwMDtmdW5jdGlvbiBXZWUoe2dldFRpbWVvdXRNczplPSgpPT4xMjAqMWUzLGxvZ2dlcjp0PWFtLGFuYWx5dGljczpuPXRtfSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBhc3luYyBmdW5jdGlvbihpLGEpe2xldCBvPW5ldyBBYm9ydENvbnRyb2xsZXIscz1hPT1udWxsP3ZvaWQgMDphLnNpZ25hbDtpZihzKXtsZXQgZT1zLm9uYWJvcnQ7cy5vbmFib3J0PXQ9PntvLmFib3J0KCksZSYmZS5jYWxsKHMsdCl9fWxldCBjPU1hdGgubWF4KGF3YWl0IGUoaSxhKSxVZWUpLGw9ITEsdT1zZXRUaW1lb3V0KCgpPT57bD0hMCxvLmFib3J0KCksYSYmKGEubG9nTWV0YWRhdGE9RG0oRG0oe30sYT09bnVsbD92b2lkIDA6YS5sb2dNZXRhZGF0YSkse30se3JlcXVlc3RUaW1lZE91dEFmdGVyOmN9KSksbi5sb2dNZXRyaWMoe21ldHJpY05hbWU6aG0oYHJlcXVlc3QudGltZW91dGApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6YT09bnVsbD92b2lkIDA6YS5tZXRyaWNUYWdzfSksdC5kZWJ1ZyhgUmVxdWVzdCB0aW1lZCBvdXRgLERtKERtKHt9LGE9PW51bGw/dm9pZCAwOmEubG9nTWV0YWRhdGEpLHt9LHt1cmw6aSx0aW1lb3V0TXM6Y30pKX0sYyksZD1hd2FpdCByKGksRG0oRG0oe30sYSkse30se3NpZ25hbDpvLnNpZ25hbH0pKTtyZXR1cm4gY2xlYXJUaW1lb3V0KHUpLGwmJmQgaW5zdGFuY2VvZiBzbT9uZXcgVG0oZCk6ZH19fWFzeW5jIGZ1bmN0aW9uIE9tKGUpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57c2V0VGltZW91dCh0LGUpfSl9ZnVuY3Rpb24ga20oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBBbShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9rbShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7R2VlKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmttKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBHZWUoZSx0LG4pe3JldHVybih0PUtlZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBLZWUoZSl7dmFyIHQ9cWVlKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIHFlZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIEplZSh7aW5pdDplfSx0KXtsZXQgbj0oKChlPT1udWxsP3ZvaWQgMDplLm1ldGhvZCk/P2BHRVRgKT09PWBHRVRgfHwoZT09bnVsbD92b2lkIDA6ZS5lbmFibGVSZXRyaWVzKT09PSEwKSYmKGU9PW51bGw/dm9pZCAwOmUuZW5hYmxlUmV0cmllcykhPT0hMSxyPXQucmVzcG9uc2Uuc3RhdHVzPj01MDAmJnQucmVzcG9uc2Uuc3RhdHVzPDYwMDtyZXR1cm4gbiYmcn1mdW5jdGlvbiBZZWUoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBlbSYmZS5yZXNwb25zZVNvdXJjZT09PWBjbG91ZGZsYXJlYH1mdW5jdGlvbiBYZWUoe3JldHJ5RGVsYXk6ZT1bMTAwXSxzaG91bGRSZXRyeTp0PUplZSxsb2dnZXI6bj1hbSxhbmFseXRpY3M6cj10bX09e30pe3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gYXN5bmMgZnVuY3Rpb24oYSxvKXt2YXIgcztsZXQgYz0wLGw9YXdhaXQgaShhLG8pO2Zvcig7WWVlKGwpJiYhKCEobz09bnVsbHx8KHM9by5zaWduYWwpPT1udWxsKSYmcy5hYm9ydGVkKSYmdCh7dXJsOmEsaW5pdDpvfSxsKSYmYzxlLmxlbmd0aDspe2xldCB0PUFtKEFtKHt9LG89PW51bGw/dm9pZCAwOm8ubWV0cmljVGFncykse30se3N0YXR1c19jb2RlOmAke2wucmVzcG9uc2Uuc3RhdHVzfWB9KTtyLmxvZ01ldHJpYyh7bWV0cmljTmFtZTpobShgcmVxdWVzdC5yZXRyeV9jbG91ZGZsYXJlX2Vycm9yLnJldHJ5YCksbWV0cmljVHlwZTpCLmNvdW50LHZhbHVlOjEsdGFnczp0fSksbi5kZWJ1ZyhgUmV0cnlpbmcgcmVxdWVzdCBpbiAke2VbY119IGR1ZSB0byBjbG91ZGZsYXJlIGVycm9yYCxBbShBbSh7fSxvPT1udWxsP3ZvaWQgMDpvLmxvZ01ldGFkYXRhKSx7fSx7dXJsOmEsbnVtUmV0cmllczpjfSkpLGF3YWl0IE9tKGVbY10pLGw9YXdhaXQgaShhLG8pLGMrPTEsbCBpbnN0YW5jZW9mIEVycm9yP3IubG9nTWV0cmljKHttZXRyaWNOYW1lOmhtKGByZXF1ZXN0LnJldHJ5X2Nsb3VkZmxhcmVfZXJyb3IuZmFpbHVyZWApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6dH0pOnIubG9nTWV0cmljKHttZXRyaWNOYW1lOmhtKGByZXF1ZXN0LnJldHJ5X2Nsb3VkZmxhcmVfZXJyb3Iuc3VjY2Vzc2ApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6dH0pLG8mJihvLmxvZ01ldGFkYXRhPUFtKEFtKHt9LG89PW51bGw/dm9pZCAwOm8ubG9nTWV0YWRhdGEpLHt9LHtyZXRyeUNsb3VkZmxhcmVFcnJvcnM6e251bVJldHJpZXM6Y319KSl9cmV0dXJuIGx9fX1mdW5jdGlvbiBqbShlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIE1tKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP2ptKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtaZWUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6am0oT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIFplZShlLHQsbil7cmV0dXJuKHQ9UWVlKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIFFlZShlKXt2YXIgdD0kZWUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gJGVlKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gZXRlKHtpbml0OmV9KXtyZXR1cm4oKChlPT1udWxsP3ZvaWQgMDplLm1ldGhvZCk/P2BHRVRgKT09PWBHRVRgfHwoZT09bnVsbD92b2lkIDA6ZS5lbmFibGVSZXRyaWVzKT09PSEwKSYmKGU9PW51bGw/dm9pZCAwOmUuZW5hYmxlUmV0cmllcykhPT0hMX1mdW5jdGlvbiB0dGUoe3JldHJ5RGVsYXk6ZT1bMTAwLDIwMCw0MDAsODAwLDEyMDBdLHNob3VsZFJldHJ5OnQ9ZXRlLGxvZ2dlcjpuPWFtLGFuYWx5dGljczpyPXRtfT17fSl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBhc3luYyBmdW5jdGlvbihhLG8pe3ZhciBzO2xldCBjPTAsbD1hd2FpdCBpKGEsbyk7Zm9yKDtsIGluc3RhbmNlb2Ygc20mJiEoIShvPT1udWxsfHwocz1vLnNpZ25hbCk9PW51bGwpJiZzLmFib3J0ZWQpJiZ0KHt1cmw6YSxpbml0Om99LGwpJiZjPGUubGVuZ3RoOylyLmxvZ01ldHJpYyh7bWV0cmljTmFtZTpobShgcmVxdWVzdC5uZXR3b3JrX2Vycm9yYCksbWV0cmljVHlwZTpCLmNvdW50LHZhbHVlOjEsdGFnczpvPT1udWxsP3ZvaWQgMDpvLm1ldHJpY1RhZ3N9KSxuLmRlYnVnKGBSZXRyeWluZyByZXF1ZXN0IGluICR7ZVtjXX0gZHVlIHRvIG5ldHdvcmsgZXJyb3JgLE1tKE1tKHt9LG89PW51bGw/dm9pZCAwOm8ubG9nTWV0YWRhdGEpLHt9LHt1cmw6YSxudW1SZXRyaWVzOmN9KSksYXdhaXQgT20oZVtjXSksbD1hd2FpdCBpKGEsbyksYys9MSxvJiYoby5sb2dNZXRhZGF0YT1NbShNbSh7fSxvPT1udWxsP3ZvaWQgMDpvLmxvZ01ldGFkYXRhKSx7fSx7cmV0cnlOZXR3b3JrOntudW1SZXRyaWVzOmN9fSkpO3JldHVybiBsfX19ZnVuY3Rpb24gTm0oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBQbShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9ObShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7bnRlKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOk5tKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBudGUoZSx0LG4pe3JldHVybih0PXJ0ZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBydGUoZSl7dmFyIHQ9aXRlKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIGl0ZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIGF0ZSh7aW5pdDplfSl7cmV0dXJuKCgoZT09bnVsbD92b2lkIDA6ZS5tZXRob2QpPz9gR0VUYCk9PT1gR0VUYHx8KGU9PW51bGw/dm9pZCAwOmUuZW5hYmxlUmV0cmllcyk9PT0hMCkmJihlPT1udWxsP3ZvaWQgMDplLmVuYWJsZVJldHJpZXMpIT09ITF9ZnVuY3Rpb24gRm0oZSl7cmV0dXJuYHN0YXR1c2BpbiBlJiZlLnN0YXR1cz09PTQyOX1mdW5jdGlvbiBvdGUoe3JldHJ5RGVsYXk6ZT1bMTAwLDIwMCw0MDAsODAwLDEyMDBdLHNob3VsZFJldHJ5OnQ9YXRlLGxvZ2dlcjpuPWFtfT17fSl7cmV0dXJuIGZ1bmN0aW9uKHIpe2xldCBpO3JldHVybiBhc3luYyBmdW5jdGlvbihhLG8pe2xldCBzPTA7YXdhaXQgaTtsZXQgYz1hd2FpdCByKGEsbyksbDt0cnl7Zm9yKDtGbShjKSYmdCh7aW5pdDpvLHJlc3BvbnNlOmN9KSYmczxlLmxlbmd0aDspbi5kZWJ1ZyhgUmV0cnlpbmcgcmVxdWVzdCBpbiAke2Vbc119IGR1ZSB0byByYXRlIGxpbWl0YCxQbShQbSh7fSxvPT1udWxsP3ZvaWQgMDpvLmxvZ01ldGFkYXRhKSx7fSx7dXJsOmEsbnVtUmV0cmllczpzfSkpLGx8fGF3YWl0IGksYXdhaXQgT20oZVtzXSksYz1hd2FpdCByKGEsbyksRm0oYykmJihpPW5ldyBQcm9taXNlKGU9PntsPWV9KSkscys9MSxvJiYoby5sb2dNZXRhZGF0YT1QbShQbSh7fSxvPT1udWxsP3ZvaWQgMDpvLmxvZ01ldGFkYXRhKSx7fSx7cmV0cnlSYXRlTGltaXQ6e251bVJldHJpZXM6c319KSl9ZmluYWxseXtsJiZsKCksaT12b2lkIDB9cmV0dXJuIGN9fX1mdW5jdGlvbiBJbShlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIExtKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP0ltKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtzdGUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6SW0oT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIHN0ZShlLHQsbil7cmV0dXJuKHQ9Y3RlKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIGN0ZShlKXt2YXIgdD1sdGUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gbHRlKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gdXRlKGUpe3JldHVybiBhc3luYyBmdW5jdGlvbih0LG4pe3JldHVybiBvbSh0KT9lKHQsTG0oTG0oe30sbikse30se2hlYWRlcnM6TG0oTG0oe30sQnUoKSksbj09bnVsbD92b2lkIDA6bi5oZWFkZXJzKX0pKTplKHQsbil9fWZ1bmN0aW9uIFJtKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gem0oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/Um0oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2R0ZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpSbShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gZHRlKGUsdCxuKXtyZXR1cm4odD1mdGUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gZnRlKGUpe3ZhciB0PXB0ZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBwdGUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1hc3luYyBmdW5jdGlvbiBtdGUoZSl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9PntzZXRUaW1lb3V0KCgpPT50KCEwKSxlKX0pfWZ1bmN0aW9uIGh0ZSh7cmVzb2x2ZVdoZW5OZXR3b3JrQXZhaWxhYmxlOmUsdGltZW91dE1zOnQ9NWUzLGRpc2FibGVUaW1lb3V0Om49ITEsYW5hbHl0aWNzOnI9dG19KXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKGEsbyl7bGV0IHM9eG0oKSxjPWF3YWl0IFByb21pc2UucmFjZShbZSgpLnRoZW4oKCk9PiExKS5jYXRjaCgoKT0+ITApLC4uLm4/W106W210ZSh0KV1dKSxsPXhtKCktcztyZXR1cm4gci5sb2dNZXRyaWMoe21ldHJpY05hbWU6aG0oYHJlcXVlc3Qud2FpdF9mb3JfbmV0d29yay50aW1lb3V0YCksbWV0cmljVHlwZTpCLmNvdW50LHZhbHVlOjEsdGFnczpvPT1udWxsP3ZvaWQgMDpvLm1ldHJpY1RhZ3N9KSxvJiYoby5sb2dNZXRhZGF0YT16bSh6bSh7fSxvLmxvZ01ldGFkYXRhKSx7fSx7d2FpdEZvck5ldHdvcms6e2R1cmF0aW9uOmwsdGltZWRPdXQ6Y319KSksYz9uZXcgc20oe21lc3NhZ2U6YFRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBuZXR3b3JrIGNvbm5lY3Rpb24uYH0pOmkoYSxvKX19fWFzeW5jIGZ1bmN0aW9uIEJtKGUsdCl7dHJ5e2F3YWl0IGUuY2FuY2VsKCl9Y2F0Y2h7fX1mdW5jdGlvbiBndGUoZSx0KXtyZXR1cm4gYnRlKGUpfHx5dGUoZSx0KXx8dnRlKGUsdCl8fF90ZSgpfWZ1bmN0aW9uIF90ZSgpe3Rocm93IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIHZ0ZShlLHQpe2lmKGUpe2lmKHR5cGVvZiBlPT1gc3RyaW5nYClyZXR1cm4gVm0oZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiBuPT09YE9iamVjdGAmJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksbj09PWBNYXBgfHxuPT09YFNldGA/QXJyYXkuZnJvbShlKTpuPT09YEFyZ3VtZW50c2B8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1ZtKGUsdCk6dm9pZCAwfX1mdW5jdGlvbiBWbShlLHQpeyh0PT1udWxsfHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24geXRlKGUsdCl7dmFyIG49ZT09bnVsbD9udWxsOnR5cGVvZiBTeW1ib2w8YHVgJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbYEBAaXRlcmF0b3JgXTtpZihuIT1udWxsKXt2YXIgcixpLGEsbyxzPVtdLGM9ITAsbD0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsdD09PTApe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYocy5wdXNoKHIudmFsdWUpLHMubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe2w9ITAsaT1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZuLnJldHVybiE9bnVsbCYmKG89bi5yZXR1cm4oKSxPYmplY3QobykhPT1vKSlyZXR1cm59ZmluYWxseXtpZihsKXRocm93IGl9fXJldHVybiBzfX1mdW5jdGlvbiBidGUoZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX12YXIgSG09YC0tYCx4dGU9YGJvdW5kYXJ5PWAsVW09YFxyCmAsU3RlPVVtK1VtLEN0ZT1uZXcgVGV4dERlY29kZXI7ZnVuY3Rpb24gd3RlKGUpe2lmKGU9PT1udWxsKXJldHVybiBudWxsO2xldCB0PWUuaW5kZXhPZih4dGUpLG49ZS5pbmRleE9mKGA7YCx0KTtyZXR1cm4gdD09PS0xP251bGw6ZS5zdWJzdHJpbmcodCs5LG4+LTE/bjp2b2lkIDApLnRyaW0oKS5yZXBsYWNlKC9bJyJdL2csYGApfWZ1bmN0aW9uIFR0ZShlKXt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSl9Y2F0Y2h7cmV0dXJuIEVycm9yKGBbTVVMVElQQVJUXSBFcnJvciBwYXJzaW5nIGRhdGEgZXZlbnQgYXMgSlNPTiwgcmVjZWl2ZWQ6ICR7ZS5sZW5ndGg+MD9lLnNsaWNlKDAsMTIpOmB7ZW1wdHlfcGF5bG9hZH1gfS4uLmApfX1hc3luYyBmdW5jdGlvbipFdGUoZSx0LG4scj1hbSl7bGV0IGk9YGAsYT1VbStIbSt0LG89YStIbSxzPWUuZ2V0UmVhZGVyKCk7dHJ5e2xldCBlPSEwLHQ9ITE7Zm9yKDs7KXtsZXQgbj1hd2FpdCBzLnJlYWQoKTtpZihuLmRvbmUpcmV0dXJuO2xldCByPWkrQ3RlLmRlY29kZShuLnZhbHVlKTtmb3IoaT1gYDtyLmluY2x1ZGVzKGEpOyl7bGV0IG49ci5pbmRleE9mKGEpO2lmKGUpe2U9ITEscj1yLnN1YnN0cmluZyhuK2EubGVuZ3RoKTtjb250aW51ZX1sZXQgaT1yLmluZGV4T2Yobyk7aT49MCYmaTw9biYmKHQ9ITApO2xldCBzPXIuc3Vic3RyaW5nKDAsbik7aWYocj1yLnN1YnN0cmluZyhuK2EubGVuZ3RoKSxzIT09YGApe2xldCBlPWd0ZShzLnNwbGl0KFN0ZSksMik7ZVswXTtsZXQgdD1lWzFdO3QhPT1gYCYmKHlpZWxkIFR0ZSh0KSl9aWYodClyZXR1cm59ci5sZW5ndGg+MCYmKGkrPXIpfX1jYXRjaChlKXtlIGluc3RhbmNlb2YgRXJyb3ImJih5aWVsZCBlKTtyZXR1cm59ZmluYWxseXtCbShzLHIpfX1mdW5jdGlvbiBEdGUoZSx0KXtyZXR1cm4ganRlKGUpfHxBdGUoZSx0KXx8a3RlKGUsdCl8fE90ZSgpfWZ1bmN0aW9uIE90ZSgpe3Rocm93IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIGt0ZShlLHQpe2lmKGUpe2lmKHR5cGVvZiBlPT1gc3RyaW5nYClyZXR1cm4gV20oZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiBuPT09YE9iamVjdGAmJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksbj09PWBNYXBgfHxuPT09YFNldGA/QXJyYXkuZnJvbShlKTpuPT09YEFyZ3VtZW50c2B8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1dtKGUsdCk6dm9pZCAwfX1mdW5jdGlvbiBXbShlLHQpeyh0PT1udWxsfHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gQXRlKGUsdCl7dmFyIG49ZT09bnVsbD9udWxsOnR5cGVvZiBTeW1ib2w8YHVgJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbYEBAaXRlcmF0b3JgXTtpZihuIT1udWxsKXt2YXIgcixpLGEsbyxzPVtdLGM9ITAsbD0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsdD09PTApe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYocy5wdXNoKHIudmFsdWUpLHMubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe2w9ITAsaT1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZuLnJldHVybiE9bnVsbCYmKG89bi5yZXR1cm4oKSxPYmplY3QobykhPT1vKSlyZXR1cm59ZmluYWxseXtpZihsKXRocm93IGl9fXJldHVybiBzfX1mdW5jdGlvbiBqdGUoZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX12YXIgR209YAoKYCxNdGU9bmV3IFRleHREZWNvZGVyO2Z1bmN0aW9uIE50ZShlLHQpe3JldHVybiB0PT09LTE/W2BgLGBgXTpbZS5zbGljZSgwLHQpLGUuc2xpY2UodCsyLGUubGVuZ3RoKV19ZnVuY3Rpb24gUHRlKGUsdCl7bGV0IG49ZS5yZXBsYWNlKGBkYXRhOiBgLGBgKTt0cnl7cmV0dXJuIEpTT04ucGFyc2Uobil9Y2F0Y2goZSl7cmV0dXJuIHQuZXJyb3IoYFtTU0VdIEVycm9yIHBhcnNpbmcgZGF0YSBldmVudCBhcyBKU09OLCByZWNlaXZlZDogJHtuLnNsaWNlKDAsMTIpfS4uLmApLGV9fWZ1bmN0aW9uIEZ0ZShlLHQpe2Uuc3RhcnRzV2l0aChgZXZlbnQ6IGApP3QuZXJyb3IoYFtTU0VdIEV2ZW50IHR5cGVzIG5vdCBpbXBsZW1lbnRlZCwgcmVjZWl2ZWQ6ICR7ZS5zbGljZSgwLDEyKX0uLi5gKTplPT09YGA/dC5lcnJvcihgW1NTRV0gRW1wdHkgZXZlbnQsIHJlY2VpdmVkIGVtcHR5IHN0cmluZyAiImApOnQuZXJyb3IoYFtTU0VdIFVua25vd24gZXZlbnQsIHJlY2VpdmVkOiAke2Uuc2xpY2UoMCwxMil9Li4uYCl9YXN5bmMgZnVuY3Rpb24qSXRlKGUsdCxuPWFtKXtsZXQgcj1gYCxpPWUuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0IGU9YXdhaXQgaS5yZWFkKCk7aWYoZS5kb25lKXJldHVybjtsZXQgdD1NdGUuZGVjb2RlKGUudmFsdWUpO3IrPXQ7bGV0IGE9ci5pbmRleE9mKEdtKTtmb3IoO2EhPT0tMTspe2xldCBlPUR0ZShOdGUocixhKSwyKSx0PWVbMF07aWYocj1lWzFdLGE9ci5pbmRleE9mKEdtKSwhdC5zdGFydHNXaXRoKGBkYXRhOiBgKSl7RnRlKHQsbik7Y29udGludWV9eWllbGQgUHRlKHQsbil9fX1jYXRjaChlKXtlIGluc3RhbmNlb2YgRXJyb3ImJih5aWVsZCBlKTtyZXR1cm59ZmluYWxseXtCbShpKX19ZnVuY3Rpb24gTHRlKGUpe2xldCB0PWVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCksbj17dmFsdWU6dm9pZCAwLG5leHQ6dm9pZCAwfSxyPVshMSwhMV0saT0hMSxhPSExLG87YXN5bmMgZnVuY3Rpb24gcygpe2k9ITA7bGV0IGU9YXdhaXQgdC5uZXh0KCk7aWYoZS5kb25lKWE9ITA7ZWxzZXtsZXQgdD17dmFsdWU6ZS52YWx1ZSxuZXh0OnZvaWQgMH07bi5uZXh0PXQsbj10fWk9ITF9YXN5bmMgZnVuY3Rpb24qYyhlLG4pe3RyeXtmb3IoOzspaWYobi5uZXh0KW49bi5uZXh0LHlpZWxkIG4udmFsdWU7ZWxzZSBpZihhKXJldHVybjtlbHNlIGl8fChvPXMoKSksYXdhaXQgb31maW5hbGx5e2lmKHJbZV09ITAsIWEmJnJbMS1lXSl7dmFyIGM7YXdhaXQoKGM9dC5yZXR1cm4pPT1udWxsP3ZvaWQgMDpjLmNhbGwodCkpfX19cmV0dXJuW2MoMCxuKSxjKDEsbildfWZ1bmN0aW9uIFJ0ZShlLHQpe3JldHVybiBIdGUoZSl8fFZ0ZShlLHQpfHxCdGUoZSx0KXx8enRlKCl9ZnVuY3Rpb24genRlKCl7dGhyb3cgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gQnRlKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBLbShlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIG49PT1gT2JqZWN0YCYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxuPT09YE1hcGB8fG49PT1gU2V0YD9BcnJheS5mcm9tKGUpOm49PT1gQXJndW1lbnRzYHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/S20oZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIEttKGUsdCl7KHQ9PW51bGx8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBWdGUoZSx0KXt2YXIgbj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDxgdWAmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtgQEBpdGVyYXRvcmBdO2lmKG4hPW51bGwpe3ZhciByLGksYSxvLHM9W10sYz0hMCxsPSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCx0PT09MCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihzLnB1c2goci52YWx1ZSkscy5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7bD0hMCxpPWV9ZmluYWxseXt0cnl7aWYoIWMmJm4ucmV0dXJuIT1udWxsJiYobz1uLnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGwpdGhyb3cgaX19cmV0dXJuIHN9fWZ1bmN0aW9uIEh0ZShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfXZhciBxbT1jbGFzcyBle2NvbnN0cnVjdG9yKGUpe3RoaXMuc291cmNlPXZvaWQgMCx0aGlzLmJ1ZmZlclJlbGVhc2VkPSExLHRoaXMuc291cmNlPWV9W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpe2lmKCF0aGlzLmJ1ZmZlclJlbGVhc2VkKXtsZXQgdD1SdGUoTHRlKHRoaXMuc291cmNlKSwyKSxuPXRbMF0scj10WzFdO3JldHVybiB0aGlzLnNvdXJjZT1uLGUud3JhcEl0ZXJhYmxlKHIpfXJldHVybiBlLndyYXBJdGVyYWJsZSh0aGlzLnNvdXJjZSl9dHJhbnNmb3JtKGUpe3RoaXMuc291cmNlPWUodGhpcy5zb3VyY2UpfXJlbGVhc2VCdWZmZXIoKXt0aGlzLmJ1ZmZlclJlbGVhc2VkPSEwfWdldCBpc0J1ZmZlclJlbGVhc2VkKCl7cmV0dXJuIHRoaXMuYnVmZmVyUmVsZWFzZWR9dG9JdGVyYXRvcigpe3JldHVybiB0aGlzW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpfXN0YXRpYyBmcm9tKHQpe3JldHVybiBuZXcgZSh0KX1zdGF0aWMgYXN5bmMqd3JhcEl0ZXJhYmxlKGUpe2ZvciBhd2FpdChsZXQgdCBvZiBlKXlpZWxkIHR9fSxVdGU9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5yZXNwb25zZT12b2lkIDAsdGhpcy5zaWduYWw9dm9pZCAwLHRoaXMucmVxdWVzdFRpbWU9dm9pZCAwLHRoaXMudGltZVVudGlsRmlyc3RCeXRlPXZvaWQgMCx0aGlzLmpzb25SZXN1bHQ9dm9pZCAwLHRoaXMuanNvbj1hc3luYygpPT57aWYodGhpcy5qc29uUmVzdWx0KXJldHVybiB0aGlzLmpzb25SZXN1bHQ7aWYodGhpcy50ZXh0UmVzdWx0IT09dm9pZCAwKXJldHVybiB0aGlzLmpzb25SZXN1bHQ9SlNPTi5wYXJzZSh0aGlzLnRleHRSZXN1bHQpLHRoaXMuanNvblJlc3VsdDtpZih0aGlzLml0ZXJhYmxlUmVzdWx0KXRocm93IEVycm9yKGBSZVJlYWRhYmxlUmVzcG9uc2UgY2FuIG5vdCBwYXJzZSByZXNwb25zZSB0byBqc29uIGFmdGVyIGFscmVhZHkgcGFyc2luZyB0byBpdGVyYWJsZS4gSXQgaXMgbGlrZWx5IHRoYXQgYSBtaWRkbGV3YXJlIGlzIGFjY2lkZW50YWxseSBjYWxsaW5nIGpzb24oKSBpbiBhIGRlZmF1bHQgYnJhbmNoIHdoZW4gaXQgc2hvdWxkIG5vdC5gKTtsZXQgZT1hd2FpdCB0aGlzLnJlc3BvbnNlLnRleHQoKTt0cnl7dGhpcy5qc29uUmVzdWx0PUpTT04ucGFyc2UoZSl9Y2F0Y2godCl7dGhyb3cgdGhpcy50ZXh0UmVzdWx0PWUsdH1yZXR1cm4gdGhpcy5qc29uUmVzdWx0fSx0aGlzLnRleHRSZXN1bHQ9dm9pZCAwLHRoaXMudGV4dD1hc3luYygpPT50aGlzLnRleHRSZXN1bHQ9PT12b2lkIDA/dGhpcy5qc29uUmVzdWx0Pyh0aGlzLnRleHRSZXN1bHQ9SlNPTi5zdHJpbmdpZnkodGhpcy5qc29uUmVzdWx0KSx0aGlzLnRleHRSZXN1bHQpOih0aGlzLnRleHRSZXN1bHQ9YXdhaXQgdGhpcy5yZXNwb25zZS50ZXh0KCksdGhpcy50ZXh0UmVzdWx0KTp0aGlzLnRleHRSZXN1bHQsdGhpcy5pdGVyYWJsZVJlc3VsdD12b2lkIDAsdGhpcy5yZXNwb25zZT1lLnJlc3BvbnNlLHRoaXMucmVxdWVzdFRpbWU9ZS5yZXF1ZXN0VGltZSx0aGlzLnRpbWVVbnRpbEZpcnN0Qnl0ZT1lLnRpbWVUaWxsRmlyc3RCeXRlLHRoaXMuc2lnbmFsPWUuc2lnbmFsfWdldCBvaygpe3JldHVybiB0aGlzLnJlc3BvbnNlLm9rfWdldCBoZWFkZXJzKCl7cmV0dXJuIHRoaXMucmVzcG9uc2UuaGVhZGVyc31nZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMucmVzcG9uc2Uuc3RhdHVzfWdldCB1cmwoKXtyZXR1cm4gdGhpcy5yZXNwb25zZS51cmx9Z2V0IGJvZHkoKXtyZXR1cm4gdGhpcy5yZXNwb25zZS5ib2R5fWl0ZXJhYmxlKGU9ITEpe2lmKCF0aGlzLnJlc3BvbnNlLmJvZHkpdGhyb3cgbmV3IHNtKHttZXNzYWdlOmBSZVJlYWRhYmxlUmVzcG9uc2UuaXRlcmFibGUgZW5jb3VudGVyZWQgYSByZXNwb25zZSB3aXRob3V0IGEgYm9keSBzdHJlYW0uYH0pO2lmKCF0aGlzLml0ZXJhYmxlUmVzdWx0KWlmKF9tKHRoaXMucmVzcG9uc2UpKXtsZXQgZT13dGUodGhpcy5yZXNwb25zZS5oZWFkZXJzLmdldChgY29udGVudC10eXBlYCkpO2lmKCFlKXRocm93IG5ldyBzbSh7bWVzc2FnZTpgUmVSZWFkYWJsZVJlc3BvbnNlLml0ZXJhYmxlIGVuY291bnRlcmVkIG11bHRpcGFydCBoZWFkZXIgdGhhdCB3YXMgbWlzc2luZyBhIGJvdW5kYXJ5LmB9KTtsZXQgdD1FdGUodGhpcy5yZXNwb25zZS5ib2R5LGUsdGhpcy5zaWduYWwpO3RoaXMuaXRlcmFibGVSZXN1bHQ9cW0uZnJvbSh0KX1lbHNlIGlmKHZtKHRoaXMucmVzcG9uc2UpKXtsZXQgZT1JdGUodGhpcy5yZXNwb25zZS5ib2R5LHRoaXMuc2lnbmFsKTt0aGlzLml0ZXJhYmxlUmVzdWx0PXFtLmZyb20oZSl9ZWxzZSB0aHJvdyBuZXcgc20oe21lc3NhZ2U6YFJlUmVhZGFibGVSZXNwb25zZS5pdGVyYWJsZSBvbmx5IHN1cHBvcnRzIG11bHRpcGFydCBhbmQgU1NFIHJlc3BvbnNlcywgcmVjZWl2ZWQ6ICR7dGhpcy5yZXNwb25zZS5oZWFkZXJzLmdldChgY29udGVudC10eXBlYCl9LmB9KTtpZih0aGlzLml0ZXJhYmxlUmVzdWx0LmlzQnVmZmVyUmVsZWFzZWQpdGhyb3cgbmV3IHNtKHttZXNzYWdlOmBSZVJlYWRhYmxlUmVzcG9uc2UuaXRlcmFibGUgY2FuIG5vdCByZWFkIHJlc3BvbnNlIGFzIGl0ZXJhYmxlIGFmdGVyIGJ1ZmZlciBoYXMgYmVlbiByZWxlYXNlZC5gfSk7cmV0dXJuIGV8fHRoaXMuaXRlcmFibGVSZXN1bHQucmVsZWFzZUJ1ZmZlcigpLHRoaXMuaXRlcmFibGVSZXN1bHR9fTthc3luYyBmdW5jdGlvbiBXdGUoZSx0KXt0cnl7bGV0IG49eG0oKSxyPWF3YWl0IGZldGNoKGUsdCksaT14bSgpLW47aWYodCE9bnVsbCYmdC5vblJhd1Jlc3BvbnNlJiZ0Lm9uUmF3UmVzcG9uc2UociksIXIpcmV0dXJuIG5ldyBzbSh7bWVzc2FnZTpgTm8gZGF0YSByZXR1cm5lZCBmcm9tIGZldGNoYH0pO2xldCBhPW5ldyBVdGUoe3Jlc3BvbnNlOnIscmVxdWVzdFRpbWU6bix0aW1lVGlsbEZpcnN0Qnl0ZTppLHNpZ25hbDoodD09bnVsbD92b2lkIDA6dC5zaWduYWwpPz8odD09bnVsbD92b2lkIDA6dC5yZXNwb25zZVNpZ25hbCl9KTtpZighYS5vayl7bGV0IGU7dHJ5e2lmKGdtKGEpKWU9YXdhaXQgYS5qc29uKCk7ZWxzZSBpZihPZWUoYSkpZT1hd2FpdCBhLnRleHQoKTtlbHNle2xldCB0PWEuaGVhZGVycy5nZXQoYGNvbnRlbnQtdHlwZWApPz9gdW5rbm93bmA7ZT1FcnJvcihgRXJyb3IgcGFyc2luZyByZXNwb25zZSwgdW5rbm93biByZXNwb25zZSBjb250ZW50LXR5cGU6ICR7dH1gKX19Y2F0Y2godCl7ZT10IGluc3RhbmNlb2YgRXJyb3I/dDpFcnJvcihgRXJyb3IgcGFyc2luZyByZXNwb25zZSwgdW5rbm93biBleGNlcHRpb25gKX1yZXR1cm4gbmV3IGVtKGEsZSl9cmV0dXJuIGF9Y2F0Y2goZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9uZXcgc20oe21lc3NhZ2U6ZS5tZXNzYWdlLGVycm9yOmV9KTpuZXcgc20oe21lc3NhZ2U6YCR7ZX1gfSl9fXZhciBHdGU9W2Bsb2dnZXJgLGBhbmFseXRpY3NgXTtmdW5jdGlvbiBKbShlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIFltKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP0ptKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtLdGUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6Sm0oT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIEt0ZShlLHQsbil7cmV0dXJuKHQ9cXRlKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHF0ZShlKXt2YXIgdD1KdGUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gSnRlKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gWXRlKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbixyLGk9WHRlKGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1mdW5jdGlvbiBYdGUoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmRleE9mKHIpIT09LTEpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufWZ1bmN0aW9uIFhtKGUsdD1XdGUpe2xldCBuPXQ7Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDstLXQpe2xldCByPWVbdF07ciYmKG49cihuKSl9cmV0dXJuIG59dmFyIFptPU9iamVjdC5mcmVlemUoe2xvZ2dlcjphbSxhbmFseXRpY3M6dG0scmV0cnlOZXR3b3JrOiEwLHJldHJ5UmF0ZUxpbWl0OiEwfSk7ZnVuY3Rpb24gUW0oZSx0KXtsZXQgbj1lLmxvZ2dlcixyPWUuYW5hbHl0aWNzLGk9WXRlKGUsR3RlKSxhPWkucmV0cnlSYXRlTGltaXQmJm90ZShpLnJldHJ5UmF0ZUxpbWl0PT09ITA/e2xvZ2dlcjpufTpZbSh7bG9nZ2VyOm59LGkucmV0cnlSYXRlTGltaXQpKSxvPWkucmV0cnlDbG91ZGZsYXJlRXJyb3JzJiZYZWUoaS5yZXRyeUNsb3VkZmxhcmVFcnJvcnM9PT0hMD97bG9nZ2VyOm4sYW5hbHl0aWNzOnJ9OlltKHtsb2dnZXI6bixhbmFseXRpY3M6cn0saS5yZXRyeUNsb3VkZmxhcmVFcnJvcnMpKSxzPWkud2FpdEZvck5ldHdvcmsmJmh0ZShZbSh7YW5hbHl0aWNzOnJ9LGkud2FpdEZvck5ldHdvcmspKSxjPWkucmV0cnlOZXR3b3JrJiZ0dGUoaS5yZXRyeU5ldHdvcms9PT0hMD97bG9nZ2VyOm4sYW5hbHl0aWNzOnJ9OlltKHtsb2dnZXI6bixhbmFseXRpY3M6cn0saS5yZXRyeU5ldHdvcmspKSxsPXQhPW51bGwmJnQuZW5hYmxlUmV0cnlCZWZvcmVXYWl0Rm9yTmV0d29yaz9bYSxvLGMsc106W2EsbyxzLGNdLHU9WG0oW2kubmV0d29ya0luc3BlY3RvciYmUmVlKHtsb2dnZXI6bn0pLCFpLmRpc2FibGVSZXF1ZXN0TWV0cmljcyYmTGVlKHtsb2dnZXI6bixhbmFseXRpY3M6cn0pLGkubm90aWZ5TmV0d29ya1RyYWZmaWMmJnplZShZbSh7bG9nZ2VyOm59LGkubm90aWZ5TmV0d29ya1RyYWZmaWMpKSwuLi5sLGkuYmVhcmVyQXV0aCYmeGVlKGkuYmVhcmVyQXV0aCksaS5jcmVkZW50aWFscyYmRWVlKGkuY3JlZGVudGlhbHMpLGkucmV0cnlVbmF1dGhvcml6ZWQmJnVtKGkucmV0cnlVbmF1dGhvcml6ZWQpLCFpLmRpc2FibGVBbmFseXRpY3NIZWFkZXJzJiZ1dGUsaS5zZXRIZWFkZXJzJiZwbShpLnNldEhlYWRlcnMpLGkucmVxdWVzdFRpbWVvdXQmJldlZShpLnJlcXVlc3RUaW1lb3V0PT09ITA/e2xvZ2dlcjpuLGFuYWx5dGljczpyfTpZbSh7bG9nZ2VyOm4sYW5hbHl0aWNzOnJ9LGkucmVxdWVzdFRpbWVvdXQpKV0pO3JldHVybiBPYmplY3QuYXNzaWduKHUse2NvbmZpZzppfSl9dmFyICRtPW5mKCksWnRlPWNsYXNzIGUgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLm5hbWU9YFN1c3BlbnNlVGltZW91dEVycm9yYCxPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxlLnByb3RvdHlwZSl9dG9KU09OKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKX19O2Z1bmN0aW9uIFF0ZShlLHQpe3JldHVybiBubmUoZSl8fHRuZShlLHQpfHxlbmUoZSx0KXx8JHRlKCl9ZnVuY3Rpb24gJHRlKCl7dGhyb3cgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gZW5lKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBlaChlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIG49PT1gT2JqZWN0YCYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxuPT09YE1hcGB8fG49PT1gU2V0YD9BcnJheS5mcm9tKGUpOm49PT1gQXJndW1lbnRzYHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/ZWgoZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIGVoKGUsdCl7KHQ9PW51bGx8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiB0bmUoZSx0KXt2YXIgbj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDxgdWAmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtgQEBpdGVyYXRvcmBdO2lmKG4hPW51bGwpe3ZhciByLGksYSxvLHM9W10sYz0hMCxsPSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCx0PT09MCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihzLnB1c2goci52YWx1ZSkscy5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7bD0hMCxpPWV9ZmluYWxseXt0cnl7aWYoIWMmJm4ucmV0dXJuIT1udWxsJiYobz1uLnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGwpdGhyb3cgaX19cmV0dXJuIHN9fWZ1bmN0aW9uIG5uZShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfWZ1bmN0aW9uIHJuZSh7bG9nZ2VyOmUscmVjb3JkU291cmNlOnQsZmllbGRNYXBwaW5nczpuLHNob3VsZEV4Y2x1ZGVJbmRleGluZ01pc3NpbmdGaWVsZEhhbmRsZXI6cn0pe2xldCBpPShlLHQsbik9PmAke2V9eyR7dH06JHtufX1gLGE9e30sbz1bXSxzPXt9O2ZvcihsZXQgZSBvZiBPYmplY3QuZW50cmllcyhuKSl7dmFyIGM9UXRlKGUsMik7bGV0IHQ9Y1swXSxuPWNbMV0scj1BcnJheS5pc0FycmF5KG4pP246W25dO2ZvcihsZXQgZSBvZiByKXtsZXQgbj17c291cmNlVHlwZUFuZEZpZWxkOnQsbWF0Y2g6ZS5tYXRjaCx0YXJnZXRUeXBlOmUudGFyZ2V0VHlwZX07by5wdXNoKG4pO2xldCByPXNbdF07cj9yLnB1c2gobik6c1t0XT1bbl19fWxldCBsPShuLHIpPT57bGV0IGk9dHlwZW9mIHI9PWBzdHJpbmdgP3Iuc3BsaXQoYC5gKTpyLGE9bltpWzBdXTtpZihhKXtpZih0eXBlb2YgYT09YHN0cmluZ2AmJmkubGVuZ3RoPT09MSlyZXR1cm4gYTtpZih0eXBlb2YgYT09YG9iamVjdGAmJmBfX3JlZmBpbiBhJiZpLmxlbmd0aD4xKXtsZXQgZT1hLl9fcmVmLG49dC5nZXQoZSk7cmV0dXJuIG4/bChuLGkuc2xpY2UoMSkpOnZvaWQgMH1lLmVycm9yKGBNaXNjb25maWd1cmVkIEJ5RmllbGRNaXNzaW5nRmllbGRIYW5kbGVyLiBDYW5ub3QgcmVzb2x2ZSAke2kuam9pbihgLmApfSBvbiAke24uX190eXBlbmFtZX1gKX19LHU9ZT0+e2lmKHIhPW51bGwmJnIoZSkpcmV0dXJuO2xldCBuPXQuZ2V0KGUpO2lmKCFufHwhKGBfX3R5cGVuYW1lYGluIG4pKXtmb3IobGV0IHQgaW4gYSlhW3RdPT09ZSYmZGVsZXRlIGFbdF07cmV0dXJufWxldCBzPW4uX190eXBlbmFtZTtmb3IobGV0IHQgb2Ygbyl7aWYodC50YXJnZXRUeXBlIT09cyljb250aW51ZTtsZXQgcj1sKG4sdC5tYXRjaC50YXJnZXRGaWVsZCk7aWYoIXIpY29udGludWU7bGV0IG89aSh0LnNvdXJjZVR5cGVBbmRGaWVsZCx0Lm1hdGNoLmFyZ3VtZW50LHIpO2Fbb109ZX19LGQ9dC5vblVwZGF0ZWQoZT0+ZS5mb3JFYWNoKHUpKTtmb3IobGV0IGUgb2YgdC5fcmVjb3Jkcy5rZXlzKCkpdShlKTtyZXR1cm57dW5zdWJzY3JpYmU6ZCxtaXNzaW5nRmllbGRIYW5kbGVyOntraW5kOmBsaW5rZWRgLGhhbmRsZToobixyLG8pPT57dHJ5e2lmKCFyKXJldHVybjt0LmdldFBlbmRpbmdVcGRhdGVJZHMoKS5mb3JFYWNoKHUpO2xldCBlPWAke3IuZ2V0VHlwZSgpfS4ke24ubmFtZX1gLGM9c1tlXTtpZighYylyZXR1cm47Zm9yKGxldCB0IG9mIGMpe2xldCBuPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLHQubWF0Y2guYXJndW1lbnQpP29bdC5tYXRjaC5hcmd1bWVudF06dm9pZCAwO2lmKCFuKWNvbnRpbnVlO2xldCByPWFbaShlLHQubWF0Y2guYXJndW1lbnQsbildO2lmKHIpcmV0dXJuIF9jKHttZXRyaWNOYW1lOmhtKGBtaXNzaW5nRmllbGRIYW5kbGVyLnJlc29sdmVkYCksbWV0cmljVHlwZTpCLmNvdW50LHZhbHVlOjEsdGFnczp7cmVzb2x2ZXI6ZX19KSxyfXJldHVybn1jYXRjaCh0KXtlLmVycm9yKGBFcnJvciBpbiBtaXNzaW5nIGZpZWxkIGhhbmRsZXIgZm9yIGZpZWxkICIke24ubmFtZX0iOiAke3R9YCksX2Moe21ldHJpY05hbWU6aG0oYG1pc3NpbmdGaWVsZEhhbmRsZXIuZXJyb3JgKSxtZXRyaWNUeXBlOkIuY291bnQsdmFsdWU6MSx0YWdzOntmaWVsZE5hbWU6bi5uYW1lfX0pO3JldHVybn19fX19dmFyIGluZT1gbXVsdGlwYXJ0L21peGVkO2RlZmVyU3BlYz0yMDIyMDgyNCwgYXBwbGljYXRpb24vanNvbmA7ZnVuY3Rpb24gYW5lKHtncmFwaHFsVXJsOmUsbWlkZGxld2FyZTp0LG5ldHdvcmtGZXRjaDpuLGxvZ2dlcjpyPWFtfSl7bGV0IGk9cG0oe2hlYWRlcnM6eyJDb250ZW50LVR5cGUiOmBhcHBsaWNhdGlvbi9qc29uYCxBY2NlcHQ6aW5lfX0pKG4pO2ZvcihsZXQgZT10Lmxlbmd0aC0xO2U+PTA7LS1lKXtsZXQgbj10W2VdO24mJihpPW4oaSkpfXJldHVybiBmdW5jdGlvbih0LG4sYSxvKXtsZXQgcz1gJHtlfT9gLGM9e2JvZHk6SlNPTi5zdHJpbmdpZnkoe3F1ZXJ5OnQudGV4dCxvcGVyYXRpb25OYW1lOnQubmFtZSx2YXJpYWJsZXM6bn0pLG1ldGhvZDpgUE9TVGAsZ3JhcGhxbE1ldGFkYXRhOntyZXF1ZXN0OnQsdmFyaWFibGVzOm4sY2FjaGVDb25maWc6YSx1cGxvYWRhYmxlczpvfSxlbmFibGVSZXRyaWVzOnQub3BlcmF0aW9uS2luZD09PWBxdWVyeWB9O3JldHVybiBZcC5PYnNlcnZhYmxlLmNyZWF0ZShlPT57bGV0IG49bj0+e3RyeXtlLm5leHQobil9Y2F0Y2goaSl7ci5lcnJvcihgRmFpbGVkIHRvIHN5bmMgcGF5bG9hZCB0byBSZWxheSBzdG9yZS5gLHtpZDp0LmlkLG5hbWU6dC5uYW1lLHF1ZXJ5TWV0YWRhdGE6dC5tZXRhZGF0YSxncmFwaHFsRXJyb3JzOm4uZXJyb3JzfSksZS5lcnJvcihpKX19O2kocyxjKS50aGVuKGFzeW5jIHQ9PntpZih0IGluc3RhbmNlb2YgRXJyb3Ipe2UuZXJyb3IodCk7cmV0dXJufWlmKGdtKHQpKXt0cnl7bihhd2FpdCB0Lmpzb24oKSl9Y2F0Y2godCl7ZS5lcnJvcih0KX1lLmNvbXBsZXRlKCk7cmV0dXJufWlmKF9tKHQpKXt0cnl7bGV0IGU9dC5pdGVyYWJsZSgpO2ZvciBhd2FpdChsZXQgdCBvZiBlKWlmKHQgaW5zdGFuY2VvZiBFcnJvcil7bGV0IGU9dDtyLmVycm9yKGUubWVzc2FnZSx7dXJsOnN9KX1lbHNlIG4odCl9Y2F0Y2godCl7ZS5lcnJvcih0KX1lLmNvbXBsZXRlKCk7cmV0dXJufXIuZXJyb3IoYFJlY2VpdmVkIG5vbi1KU09OL25vbi1tdWx0aXBhcnQgcmVzcG9uc2UgZnJvbSBHcmFwaFFMIGVuZHBvaW50LmApLGUuZXJyb3IobmV3IHNtKHttZXNzYWdlOmBJbnZhbGlkIG5ldHdvcmsgcmVzcG9uc2UgY29udGVudCB0eXBlOiAke3QuaGVhZGVycy5nZXQoYGNvbnRlbnQtdHlwZWApfWB9KSl9KS5jYXRjaCh0PT57ZS5lcnJvcihuZXcgc20oe21lc3NhZ2U6YEZldGNoIHRocmV3IGVycm9yIHdoZW4gaXQgc2hvdWxkIGJlIG5vbi10aHJvd2luZy5gLGVycm9yOnR9KSl9KX0pfX12YXIgdGg9cygoKGUsdCk9Pnt0LmV4cG9ydHM9VHUoKS5jcmVhdGVDb250ZXh0KHt3cmFwUHJlcGFyZVF1ZXJ5UmVzb3VyY2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX19KX0pKSxuaD1zKCgoZSx0KT0+e3ZhciBuPVR1KCkscj1xcCgpLl9faW50ZXJuYWwuY3JlYXRlUmVsYXlDb250ZXh0O3QuZXhwb3J0cz1yKG4pfSkpLHJoPXMoKChlLHQpPT57dmFyIG49bmgoKSxyPUZkKCksaT1UdSgpLnVzZUNvbnRleHQ7ZnVuY3Rpb24gYSgpe3ZhciBlPWkobik7cmV0dXJuIGU/P3IoITEpLGUuZW52aXJvbm1lbnR9dC5leHBvcnRzPWF9KSksaWg9cygoKGUsdCk9Pnt2YXIgbj10aCgpLHI9cmgoKSxpPVR1KCksYT1UdSgpLG89YS51c2VDb250ZXh0LHM9YS51c2VFZmZlY3Q7TGQoKTtmdW5jdGlvbiBjKGUpe3ZhciB0PWUuZW50cnlQb2ludFJlZmVyZW5jZSxhPWUucHJvcHMsYz10LmdldENvbXBvbmVudCxsPXQucXVlcmllcyx1PXQuZW50cnlQb2ludHMsZD10LmV4dHJhUHJvcHMsZj10LnJvb3RNb2R1bGVJRCxwPWMoKSxtPW8obiksaD1yKCk7cmV0dXJuIHMoZnVuY3Rpb24oKXtoLl9fbG9nKHtuYW1lOmBlbnRyeXBvaW50LnJvb3QuY29uc3VtZWAscHJvZmlsZXJDb250ZXh0Om0scm9vdE1vZHVsZUlEOmZ9KX0sW2gsbSxmXSksaS5jcmVhdGVFbGVtZW50KHAse2VudHJ5UG9pbnRzOnUsZXh0cmFQcm9wczpkLHByb3BzOmEscXVlcmllczpsfSl9dC5leHBvcnRzPWN9KSksYWg9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEpkKCkpLGk9RmQoKSxhPXFwKCksbz1hLl9faW50ZXJuYWwuZmV0Y2hRdWVyeURlZHVwZWQscz1hLk9ic2VydmFibGUsYz1hLlByZWxvYWRhYmxlUXVlcnlSZWdpc3RyeSxsPWEuUmVwbGF5U3ViamVjdCx1PWEuY3JlYXRlT3BlcmF0aW9uRGVzY3JpcHRvcixkPWEuZ2V0UmVxdWVzdCxmPWEuZ2V0UmVxdWVzdElkZW50aWZpZXIscD0xMDAwMDE7ZnVuY3Rpb24gbShlLHQsbixhLG0pe3ArKzt2YXIgaD0oYT09bnVsbD92b2lkIDA6YS5mZXRjaFBvbGljeSk/P2BzdG9yZS1vci1uZXR3b3JrYCxnPSgwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSxhPT1udWxsP3ZvaWQgMDphLm5ldHdvcmtDYWNoZUNvbmZpZykse30se2ZvcmNlOiEwfSksXyx2PSExLHk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdj0hMCxlLmV4ZWN1dGVXaXRoU291cmNlKHtvcGVyYXRpb246dCxzb3VyY2U6bn0pfSxiPW5ldyBsLHg9cy5jcmVhdGUoZnVuY3Rpb24oZSl7cmV0dXJuIGIuc3Vic2NyaWJlKGUpfSksUyxDPW51bGwsdz0hMSxUPWZ1bmN0aW9uKHQpe3c9ITA7dmFyIHI9bmV3IGw7cmV0dXJuIFM9byhlLGByYXctbmV0d29yay1yZXF1ZXN0LWArZih0LG4pLGZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0TmV0d29yaygpLmV4ZWN1dGUodCxuLGcpfSkuc3Vic2NyaWJlKHtlcnJvcjpmdW5jdGlvbihlKXtDPWUsci5lcnJvcihlKX0sbmV4dDpmdW5jdGlvbihlKXtyLm5leHQoZSl9LGNvbXBsZXRlOmZ1bmN0aW9uKCl7ci5jb21wbGV0ZSgpfX0pLnVuc3Vic2NyaWJlLHMuY3JlYXRlKGZ1bmN0aW9uKGUpe3ZhciB0PXIuc3Vic2NyaWJlKGUpO3JldHVybiBmdW5jdGlvbigpe3QudW5zdWJzY3JpYmUoKSxTKCl9fSl9LEUsRD1mdW5jdGlvbih0LG4pe3c9ITAsRT1vKGUsdC5yZXF1ZXN0LmlkZW50aWZpZXIsbikuc3Vic2NyaWJlKHtlcnJvcjpmdW5jdGlvbihlKXtiLmVycm9yKGUpfSxuZXh0OmZ1bmN0aW9uKGUpe2IubmV4dChlKX0sY29tcGxldGU6ZnVuY3Rpb24oKXtiLmNvbXBsZXRlKCl9fSkudW5zdWJzY3JpYmV9LE89ZnVuY3Rpb24odCl7dmFyIHI9dSh0LG4sZyk7Xz1lLnJldGFpbihyKSxoIT09YHN0b3JlLW9ubHlgJiYoaCE9PWBzdG9yZS1vci1uZXR3b3JrYHx8ZS5jaGVjayhyKS5zdGF0dXMhPT1gYXZhaWxhYmxlYCkmJkQocixmdW5jdGlvbigpe3JldHVybiB5KHIsVCh0LnBhcmFtcykpfSl9LGssQSxqO2lmKHQua2luZD09PWBQcmVsb2FkYWJsZUNvbmNyZXRlUmVxdWVzdGApe2s9dC5wYXJhbXMsaj1rLmlkLGo9PT1udWxsJiZpKCExKTt2YXIgTT1jLmdldChqKTtpZihNIT1udWxsKU8oTSk7ZWxzZXt2YXIgTj1oPT09YHN0b3JlLW9ubHlgP251bGw6VChrKTtBPWMub25Mb2FkKGosZnVuY3Rpb24odCl7QSgpO3ZhciByPXUodCxuLGcpO189ZS5yZXRhaW4ociksTiE9bnVsbCYmRChyLGZ1bmN0aW9uKCl7cmV0dXJuIHkocixOKX0pfSkuZGlzcG9zZX19ZWxzZXt2YXIgUD1kKHQpO2s9UC5wYXJhbXMsaj1rLmNhY2hlSUQ9PW51bGw/ay5pZDprLmNhY2hlSUQsTyhQKX12YXIgRj0hMSxlZT0hMSxJPSExLEw9ZnVuY3Rpb24oKXtlZXx8KF8mJl8uZGlzcG9zZSgpLGVlPSEwKX0sUj1mdW5jdGlvbigpe0l8fCh2P0UmJkUoKTpTJiZTKCksQSYmQSgpLEk9ITApfTtyZXR1cm57a2luZDpgUHJlbG9hZGVkUXVlcnlgLGVudmlyb25tZW50OmUsZW52aXJvbm1lbnRQcm92aWRlck9wdGlvbnM6bSxkaXNwb3NlOmZ1bmN0aW9uKCl7Rnx8KEwoKSxSKCksRj0hMCl9LHJlbGVhc2VRdWVyeTpMLGNhbmNlbE5ldHdvcmtSZXF1ZXN0OlIsZmV0Y2hLZXk6cCxpZDpqLGdldCBpc0Rpc3Bvc2VkKCl7cmV0dXJuIEZ8fGVlfSxnZXQgbmV0d29ya0Vycm9yKCl7cmV0dXJuIEN9LG5hbWU6ay5uYW1lLG5ldHdvcmtDYWNoZUNvbmZpZzpnLGZldGNoUG9saWN5Omgsc291cmNlOnc/eDp2b2lkIDAsdmFyaWFibGVzOm59fXQuZXhwb3J0cz17bG9hZFF1ZXJ5Om19fSkpLG9oPXMoKChlLHQpPT57dmFyIG49YWgoKS5sb2FkUXVlcnk7ZnVuY3Rpb24gcihlLHQsaSl7dmFyIGE9bnVsbDt0LnJvb3QuZ2V0TW9kdWxlSWZSZXF1aXJlZCgpPz8oYT10LnJvb3QubG9hZCgpKTt2YXIgbz10LmdldFByZWxvYWRQcm9wcyhpKSxzPW8ucXVlcmllcyxjPW8uZW50cnlQb2ludHMsbD1vLmV4dHJhUHJvcHMsdT17fSxkPXt9O3MhPW51bGwmJk9iamVjdC5rZXlzKHMpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHI9c1t0XTtpZihyIT1udWxsKXt2YXIgaT1yLmVudmlyb25tZW50UHJvdmlkZXJPcHRpb25zLGE9ci5vcHRpb25zLG89ci5wYXJhbWV0ZXJzLGM9ci52YXJpYWJsZXM7dVt0XT1uKGUuZ2V0RW52aXJvbm1lbnQoaSksbyxjLHtmZXRjaFBvbGljeTphPT1udWxsP3ZvaWQgMDphLmZldGNoUG9saWN5LG5ldHdvcmtDYWNoZUNvbmZpZzphPT1udWxsP3ZvaWQgMDphLm5ldHdvcmtDYWNoZUNvbmZpZyxfX25hbWVGb3JXYXJuaW5nOmBsb2FkRW50cnlQb2ludGB9LGkpfX0pLGMhPW51bGwmJk9iamVjdC5rZXlzKGMpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49Y1t0XTtpZihuIT1udWxsKXt2YXIgaT1uLmVudHJ5UG9pbnQsYT1uLmVudHJ5UG9pbnRQYXJhbXM7ZFt0XT1yKGUsaSxhKX19KTt2YXIgZj0hMTtyZXR1cm57ZGlzcG9zZTpmdW5jdGlvbigpe2Z8fCh1IT1udWxsJiZPYmplY3QudmFsdWVzKHUpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kaXNwb3NlO3QoKX0pLGQhPW51bGwmJk9iamVjdC52YWx1ZXMoZCkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLmRpc3Bvc2U7dCgpfSksZj0hMCl9LGVudHJ5UG9pbnRzOmQsZXh0cmFQcm9wczpsPz9udWxsLGdldENvbXBvbmVudDpmdW5jdGlvbigpe3ZhciBlPXQucm9vdC5nZXRNb2R1bGVJZlJlcXVpcmVkKCk7aWYoZT09bnVsbCl0aHJvdyBhPWE/P3Qucm9vdC5sb2FkKCksYTtyZXR1cm4gZS5kZWZhdWx0PT1udWxsP2U6ZS5kZWZhdWx0fSxnZXQgaXNEaXNwb3NlZCgpe3JldHVybiBmfSxxdWVyaWVzOnUscm9vdE1vZHVsZUlEOnQucm9vdC5nZXRNb2R1bGVJZCgpfX10LmV4cG9ydHM9cn0pKSxzaD1zKCgoZSx0KT0+e3ZhciBuPW5oKCkscj1UdSgpLGk9ci51c2VNZW1vO2Z1bmN0aW9uIGEoZSl7dmFyIHQ9ZS5jaGlsZHJlbixhPWUuZW52aXJvbm1lbnQsbz1lLmdldEVudmlyb25tZW50Rm9yQWN0b3Iscz1pKGZ1bmN0aW9uKCl7cmV0dXJue2Vudmlyb25tZW50OmEsZ2V0RW52aXJvbm1lbnRGb3JBY3RvcjpvfX0sW2Esb10pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQobi5Qcm92aWRlcix7dmFsdWU6c30sdCl9dC5leHBvcnRzPWF9KSksY2g9cygoKGUsdCk9Pnt2YXIgbj1UdSgpLHI9bi51c2VFZmZlY3QsaT1uLnVzZVJlZjtmdW5jdGlvbiBhKCl7dmFyIGU9aSghMCk7cmV0dXJuIHIoZnVuY3Rpb24oKXtyZXR1cm4gZS5jdXJyZW50PSEwLGZ1bmN0aW9uKCl7ZS5jdXJyZW50PSExfX0sW10pLGV9dC5leHBvcnRzPWF9KSksbGg9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEhkKCkpLGk9b2goKSxhPWNoKCksbz1UdSgpLHM9by51c2VDYWxsYmFjayxjPW8udXNlRWZmZWN0LGw9by51c2VSZWYsdT1vLnVzZVN0YXRlLGQ9e2tpbmQ6YE51bGxFbnRyeVBvaW50UmVmZXJlbmNlYH07ZnVuY3Rpb24gZihlLHQsbil7dmFyIG8sZixwPShuPT1udWxsfHwobz1uLlRFU1RfT05MWV9faW5pdGlhbEVudHJ5UG9pbnREYXRhKT09bnVsbD92b2lkIDA6by5lbnRyeVBvaW50UmVmZXJlbmNlKT8/ZCxtPShuPT1udWxsfHwoZj1uLlRFU1RfT05MWV9faW5pdGlhbEVudHJ5UG9pbnREYXRhKT09bnVsbD92b2lkIDA6Zi5lbnRyeVBvaW50UGFyYW1zKT8/bnVsbCxoPWEoKSxnPWwobmV3IFNldChbcF0pKSxfPXUocCksdj1fWzBdLHk9X1sxXSxiPXUobSkseD1iWzBdLFM9YlsxXSxDPXMoZnVuY3Rpb24oKXtpZihoLmN1cnJlbnQpe3ZhciBlPXtraW5kOmBOdWxsRW50cnlQb2ludFJlZmVyZW5jZWB9O2cuY3VycmVudC5hZGQoZSkseShlKX19LFt5LGhdKSx3PXMoZnVuY3Rpb24obil7aWYoaC5jdXJyZW50KXt2YXIgcj1pKGUsdCxuKTtnLmN1cnJlbnQuYWRkKHIpLHkociksUyhuKX19LFtlLHQseSxoXSksVD1sKCExKTtyZXR1cm4gYyhmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe1QuY3VycmVudD0hMH19LFtdKSxjKGZ1bmN0aW9uKCl7aWYoVC5jdXJyZW50PT09ITApe1QuY3VycmVudD0hMSx2LmtpbmQhPT1gTnVsbEVudHJ5UG9pbnRSZWZlcmVuY2VgJiZ4IT1udWxsJiZ3KHgpO3JldHVybn12YXIgZT1nLmN1cnJlbnQ7aWYoaC5jdXJyZW50KXt2YXIgdD0oMCxyLmRlZmF1bHQpKGUpLG47dHJ5e2Zvcih0LnMoKTshKG49dC5uKCkpLmRvbmU7KXt2YXIgaT1uLnZhbHVlO2lmKGk9PT12KWJyZWFrO2UuZGVsZXRlKGkpLGkua2luZCE9PWBOdWxsRW50cnlQb2ludFJlZmVyZW5jZWAmJmkuZGlzcG9zZSgpfX1jYXRjaChlKXt0LmUoZSl9ZmluYWxseXt0LmYoKX19fSxbdix4LHcsaF0pLGMoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT0oMCxyLmRlZmF1bHQpKGcuY3VycmVudCksdDt0cnl7Zm9yKGUucygpOyEodD1lLm4oKSkuZG9uZTspe3ZhciBuPXQudmFsdWU7bi5raW5kIT09YE51bGxFbnRyeVBvaW50UmVmZXJlbmNlYCYmbi5kaXNwb3NlKCl9fWNhdGNoKHQpe2UuZSh0KX1maW5hbGx5e2UuZigpfX19LFtdKSxbdi5raW5kPT09YE51bGxFbnRyeVBvaW50UmVmZXJlbmNlYD9udWxsOnYsdyxDXX10LmV4cG9ydHM9Zn0pKSx1aD1zKCgoZSx0KT0+e3ZhciBuPUZkKCkscj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5fY2FwYWNpdHk9ZSwhKHRoaXMuX2NhcGFjaXR5PjApJiZuKCExKSx0aGlzLl9tYXA9bmV3IE1hcH12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5zZXQ9ZnVuY3Rpb24oZSx0KXtpZih0aGlzLl9tYXAuZGVsZXRlKGUpLHRoaXMuX21hcC5zZXQoZSx0KSx0aGlzLl9tYXAuc2l6ZT50aGlzLl9jYXBhY2l0eSl7dmFyIG49dGhpcy5fbWFwLmtleXMoKS5uZXh0KCk7bi5kb25lfHx0aGlzLl9tYXAuZGVsZXRlKG4udmFsdWUpfX0sdC5nZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fbWFwLmdldChlKTtyZXR1cm4gdCE9bnVsbCYmKHRoaXMuX21hcC5kZWxldGUoZSksdGhpcy5fbWFwLnNldChlLHQpKSx0fSx0Lmhhcz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fbWFwLmhhcyhlKX0sdC5kZWxldGU9ZnVuY3Rpb24oZSl7dGhpcy5fbWFwLmRlbGV0ZShlKX0sdC5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21hcC5zaXplfSx0LmNhcGFjaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhcGFjaXR5LXRoaXMuX21hcC5zaXplfSx0LmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fbWFwLmNsZWFyKCl9LGV9KCk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gbmV3IHIoZSl9dC5leHBvcnRzPXtjcmVhdGU6aX19KSksZGg9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKHFkKCkpO0xkKCk7dmFyIGk9MzAwKjFlMzt0LmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZhciB0PXRoaXM7KDAsci5kZWZhdWx0KSh0aGlzLGBfcmV0YWluQ291bnRgLDApLCgwLHIuZGVmYXVsdCkodGhpcyxgX3JldGFpbkRpc3Bvc2FibGVgLG51bGwpLCgwLHIuZGVmYXVsdCkodGhpcyxgX3JlbGVhc2VUZW1wb3JhcnlSZXRhaW5gLG51bGwpLHRoaXMuX3JldGFpbj1mdW5jdGlvbihuKXtyZXR1cm4gdC5fcmV0YWluQ291bnQrKyx0Ll9yZXRhaW5Db3VudD09PTEmJih0Ll9yZXRhaW5EaXNwb3NhYmxlPWUobikpLHtkaXNwb3NlOmZ1bmN0aW9uKCl7dC5fcmV0YWluQ291bnQ9TWF0aC5tYXgoMCx0Ll9yZXRhaW5Db3VudC0xKSx0Ll9yZXRhaW5Db3VudD09PTAmJnQuX3JldGFpbkRpc3Bvc2FibGUhPW51bGwmJih0Ll9yZXRhaW5EaXNwb3NhYmxlLmRpc3Bvc2UoKSx0Ll9yZXRhaW5EaXNwb3NhYmxlPW51bGwpfX19fXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LnRlbXBvcmFyeVJldGFpbj1mdW5jdGlvbihlKXt2YXIgdD10aGlzLG47aWYoZS5pc1NlcnZlcigpKXJldHVybntkaXNwb3NlOmZ1bmN0aW9uKCl7fX07dmFyIHI9dGhpcy5fcmV0YWluKGUpLGE9bnVsbCxvPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEpLGE9bnVsbCx0Ll9yZWxlYXNlVGVtcG9yYXJ5UmV0YWluPW51bGwsci5kaXNwb3NlKCl9O3JldHVybiBhPXNldFRpbWVvdXQobyxpKSwobj10aGlzLl9yZWxlYXNlVGVtcG9yYXJ5UmV0YWluKT09bnVsbHx8bi5jYWxsKHRoaXMpLHRoaXMuX3JlbGVhc2VUZW1wb3JhcnlSZXRhaW49byx7ZGlzcG9zZTpmdW5jdGlvbigpe3ZhciBlOyhlPXQuX3JlbGVhc2VUZW1wb3JhcnlSZXRhaW4pPT1udWxsfHxlLmNhbGwodCl9fX0sdC5wZXJtYW5lbnRSZXRhaW49ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fcmV0YWluKGUpO3JldHVybiB0aGlzLnJlbGVhc2VUZW1wb3JhcnlSZXRhaW4oKSx0fSx0LnJlbGVhc2VUZW1wb3JhcnlSZXRhaW49ZnVuY3Rpb24oKXt2YXIgZTsoZT10aGlzLl9yZWxlYXNlVGVtcG9yYXJ5UmV0YWluKT09bnVsbHx8ZS5jYWxsKHRoaXMpLHRoaXMuX3JlbGVhc2VUZW1wb3JhcnlSZXRhaW49bnVsbH0sdC5nZXRSZXRhaW5Db3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZXRhaW5Db3VudH0sZX0oKX0pKSxmaD1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSmQoKSksaT1uKHFkKCkpLGE9dWgoKSxvPWRoKCkscz1GZCgpLGM9cXAoKS5pc1Byb21pc2U7TGQoKTt2YXIgbD0xZTMsdT1gc3RvcmUtb3ItbmV0d29ya2AsZD1gc3RvcmUtYW5kLW5ldHdvcmtgLGY9dHlwZW9mIFdlYWtNYXA9PWBmdW5jdGlvbmA7ZnVuY3Rpb24gcChlKXtyZXR1cm4gZS5yZXF1ZXN0Lm5vZGUucGFyYW1zLm1ldGFkYXRhLmxpdmUhPT12b2lkIDB9ZnVuY3Rpb24gbShlLHQsbixyLGkpe3ZhciBhPWAke24/PyhwKHQpP2Q6dSl9LSR7cj8/ZS5VTlNUQUJMRV9nZXREZWZhdWx0UmVuZGVyUG9saWN5KCl9LSR7dC5yZXF1ZXN0LmlkZW50aWZpZXJ9YDtyZXR1cm4gaT09bnVsbD9hOmAke2F9LSR7aX1gfWZ1bmN0aW9uIGgoZSx0KXt2YXIgbj17X19pZDplLmZyYWdtZW50LmRhdGFJRCxfX2ZyYWdtZW50czooMCxpLmRlZmF1bHQpKHt9LGUuZnJhZ21lbnQubm9kZS5uYW1lLGUucmVxdWVzdC52YXJpYWJsZXMpLF9fZnJhZ21lbnRPd25lcjplLnJlcXVlc3R9O3JldHVybntjYWNoZUlkZW50aWZpZXI6dCxmcmFnbWVudE5vZGU6ZS5yZXF1ZXN0Lm5vZGUuZnJhZ21lbnQsZnJhZ21lbnRSZWY6bixvcGVyYXRpb246ZX19dmFyIGc9MmU1O2Z1bmN0aW9uIF8oZSx0LG4scixpLGEpe3ZhciBzPXAodCksYz1yLGw9aSx1PW5ldyBvKGZ1bmN0aW9uKGUpe3ZhciBuPWUucmV0YWluKHQpO3JldHVybntkaXNwb3NlOmZ1bmN0aW9uKCl7cyYmbCE9bnVsbCYmbC51bnN1YnNjcmliZSgpLG4uZGlzcG9zZSgpLGEoZCl9fX0pLGQ9e2NhY2hlSWRlbnRpZmllcjplLGlkOmcrKyxwcm9jZXNzZWRQYXlsb2Fkc0NvdW50OjAsb3BlcmF0aW9uQXZhaWxhYmlsaXR5Om4sZ2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sc2V0VmFsdWU6ZnVuY3Rpb24oZSl7Yz1lfSxzZXROZXR3b3JrU3Vic2NyaXB0aW9uOmZ1bmN0aW9uKGUpe3MmJmwhPW51bGwmJmwudW5zdWJzY3JpYmUoKSxsPWV9LHRlbXBvcmFyeVJldGFpbjpmdW5jdGlvbihlKXtyZXR1cm4gdS50ZW1wb3JhcnlSZXRhaW4oZSl9LHBlcm1hbmVudFJldGFpbjpmdW5jdGlvbihlKXtyZXR1cm4gdS5wZXJtYW5lbnRSZXRhaW4oZSl9LHJlbGVhc2VUZW1wb3JhcnlSZXRhaW46ZnVuY3Rpb24oKXt1LnJlbGVhc2VUZW1wb3JhcnlSZXRhaW4oKX19O3JldHVybiBkfXZhciB2PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt2YXIgdD10aGlzOygwLGkuZGVmYXVsdCkodGhpcyxgX2NsZWFyQ2FjaGVFbnRyeWAsZnVuY3Rpb24oZSl7dC5fY2FjaGUuZGVsZXRlKGUuY2FjaGVJZGVudGlmaWVyKX0pLHRoaXMuX2Vudmlyb25tZW50PWUsdGhpcy5fY2FjaGU9YS5jcmVhdGUobCl9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQucHJlcGFyZT1mdW5jdGlvbihlLHQsbixyLGksYSxvKXt2YXIgcz1tKHRoaXMuX2Vudmlyb25tZW50LGUsbixyLGEpO3JldHVybiB0aGlzLnByZXBhcmVXaXRoSWRlbnRpZmllcihzLGUsdCxuLHIsaSxvKX0sdC5wcmVwYXJlV2l0aElkZW50aWZpZXI9ZnVuY3Rpb24oZSx0LG4saSxhLG8scyl7dmFyIGw9dGhpcy5fZW52aXJvbm1lbnQsZj1pPz8ocCh0KT9kOnUpLG09YT8/bC5VTlNUQUJMRV9nZXREZWZhdWx0UmVuZGVyUG9saWN5KCksaD10aGlzLl9jYWNoZS5nZXQoZSksZz1udWxsLF89aCE9bnVsbDtoPz8oaD10aGlzLl9mZXRjaEFuZFNhdmVRdWVyeShlLHQsbixmLG0scywoMCxyLmRlZmF1bHQpKCgwLHIuZGVmYXVsdCkoe30sbykse30se3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKGUpe2chPW51bGwmJmcuZGlzcG9zZSgpO3ZhciB0PW89PW51bGw/dm9pZCAwOm8udW5zdWJzY3JpYmU7dCYmdChlKX19KSkpLGc9aC50ZW1wb3JhcnlSZXRhaW4obCk7dmFyIHY9aC5nZXRWYWx1ZSgpO2lmKGModikpdGhyb3cgbC5fX2xvZyh7bmFtZTpgc3VzcGVuc2UucXVlcnlgLGZldGNoUG9saWN5OmYsaXNQcm9taXNlQ2FjaGVkOl8sb3BlcmF0aW9uOnQscXVlcnlBdmFpbGFiaWxpdHk6aC5vcGVyYXRpb25BdmFpbGFiaWxpdHkscmVuZGVyUG9saWN5Om19KSx2O2lmKHYgaW5zdGFuY2VvZiBFcnJvcil0aHJvdyB2O3JldHVybiB2fSx0LnJldGFpbj1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX2Vudmlyb25tZW50LHI9ZS5jYWNoZUlkZW50aWZpZXIsaT1lLm9wZXJhdGlvbixhPXRoaXMuX2dldE9yQ3JlYXRlQ2FjaGVFbnRyeShyLGksbnVsbCxlLG51bGwpLG89YS5wZXJtYW5lbnRSZXRhaW4obik7cmV0dXJuIG4uX19sb2coe25hbWU6YHF1ZXJ5cmVzb3VyY2UucmV0YWluYCxwcm9maWxlckNvbnRleHQ6dCxyZXNvdXJjZUlEOmEuaWR9KSx7ZGlzcG9zZTpmdW5jdGlvbigpe28uZGlzcG9zZSgpfX19LHQucmVsZWFzZVRlbXBvcmFyeVJldGFpbj1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9jYWNoZS5nZXQoZS5jYWNoZUlkZW50aWZpZXIpO3QhPW51bGwmJnQucmVsZWFzZVRlbXBvcmFyeVJldGFpbigpfSx0LlRFU1RTX09OTFlfX2dldENhY2hlRW50cnk9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9dGhpcy5fZW52aXJvbm1lbnQsYT1tKGksZSx0LG4scik7cmV0dXJuIHRoaXMuX2NhY2hlLmdldChhKX0sdC5fZ2V0T3JDcmVhdGVDYWNoZUVudHJ5PWZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIGE9dGhpcy5fY2FjaGUuZ2V0KGUpO3JldHVybiBhPz8oYT1fKGUsdCxuLHIsaSx0aGlzLl9jbGVhckNhY2hlRW50cnkpLHRoaXMuX2NhY2hlLnNldChlLGEpKSxhfSx0Ll9mZXRjaEFuZFNhdmVRdWVyeT1mdW5jdGlvbihlLHQsbixpLGEsbyxjKXt2YXIgbD10aGlzLHU9dGhpcy5fZW52aXJvbm1lbnQsZD11LmNoZWNrKHQpLGY9ZC5zdGF0dXMsbT1mPT09YGF2YWlsYWJsZWAsZz1tfHxhPT09YHBhcnRpYWxgJiZmIT09YHN0YWxlYCx2LHksYj1mdW5jdGlvbigpe307c3dpdGNoKGkpe2Nhc2Vgc3RvcmUtb25seWA6dj0hMSx5PSEwO2JyZWFrO2Nhc2Vgc3RvcmUtb3ItbmV0d29ya2A6dj0hbSx5PWc7YnJlYWs7Y2FzZWBzdG9yZS1hbmQtbmV0d29ya2A6dj0hMCx5PWc7YnJlYWs7ZGVmYXVsdDp2PSEwLHk9ITE7YnJlYWt9aWYoeSl7dmFyIHg9XyhlLHQsZCxoKHQsZSksbnVsbCx0aGlzLl9jbGVhckNhY2hlRW50cnkpO3RoaXMuX2NhY2hlLnNldChlLHgpfWlmKHYpe3ZhciBTPWgodCxlKSxDO24uc3Vic2NyaWJlKHtzdGFydDpmdW5jdGlvbihuKXtDPW47dmFyIGk9bC5fY2FjaGUuZ2V0KGUpO2kmJmkuc2V0TmV0d29ya1N1YnNjcmlwdGlvbihDKTt2YXIgYT1jPT1udWxsP3ZvaWQgMDpjLnN0YXJ0O2EmJmEoKDAsci5kZWZhdWx0KSgoMCxyLmRlZmF1bHQpKHt9LG4pLHt9LHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe3AodCkmJm4udW5zdWJzY3JpYmUoKX19KSl9LG5leHQ6ZnVuY3Rpb24oKXt2YXIgbj1sLl9nZXRPckNyZWF0ZUNhY2hlRW50cnkoZSx0LGQsUyxDKTtuLnByb2Nlc3NlZFBheWxvYWRzQ291bnQrPTEsbi5zZXRWYWx1ZShTKSxiKCk7dmFyIHI9Yz09bnVsbD92b2lkIDA6Yy5uZXh0O3IhPW51bGwmJnIodS5sb29rdXAodC5mcmFnbWVudCkpfSxlcnJvcjpmdW5jdGlvbihuKXt2YXIgcj1sLl9nZXRPckNyZWF0ZUNhY2hlRW50cnkoZSx0LGQsbixDKTtyLnByb2Nlc3NlZFBheWxvYWRzQ291bnQ9PT0wJiZyLnNldFZhbHVlKG4pLGIoKSxDPW51bGwsci5zZXROZXR3b3JrU3Vic2NyaXB0aW9uKG51bGwpO3ZhciBpPWM9PW51bGw/dm9pZCAwOmMuZXJyb3I7aSYmaShuKX0sY29tcGxldGU6ZnVuY3Rpb24oKXtiKCksQz1udWxsO3ZhciB0PWwuX2NhY2hlLmdldChlKTt0JiZ0LnNldE5ldHdvcmtTdWJzY3JpcHRpb24obnVsbCk7dmFyIG49Yz09bnVsbD92b2lkIDA6Yy5jb21wbGV0ZTtuJiZuKCl9LHVuc3Vic2NyaWJlOmM9PW51bGw/dm9pZCAwOmMudW5zdWJzY3JpYmV9KTt2YXIgdz10aGlzLl9jYWNoZS5nZXQoZSk7aWYoIXcpe3ZhciBUPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe2I9ZX0pO1QuZGlzcGxheU5hbWU9YFJlbGF5KGArdC5mcmFnbWVudC5ub2RlLm5hbWUrYClgLHc9XyhlLHQsZCxULEMsdGhpcy5fY2xlYXJDYWNoZUVudHJ5KSx0aGlzLl9jYWNoZS5zZXQoZSx3KX19ZWxzZXt2YXIgRT1jPT1udWxsP3ZvaWQgMDpjLmNvbXBsZXRlO0UmJkUoKX12YXIgRD10aGlzLl9jYWNoZS5nZXQoZSk7cmV0dXJuIEQ/P3MoITEpLHUuX19sb2coe25hbWU6YHF1ZXJ5cmVzb3VyY2UuZmV0Y2hgLHJlc291cmNlSUQ6RC5pZCxvcGVyYXRpb246dCxwcm9maWxlckNvbnRleHQ6byxmZXRjaFBvbGljeTppLHJlbmRlclBvbGljeTphLHF1ZXJ5QXZhaWxhYmlsaXR5OmQsc2hvdWxkRmV0Y2g6dn0pLER9LGV9KCk7ZnVuY3Rpb24geShlKXtyZXR1cm4gbmV3IHYoZSl9dmFyIGI9Zj9uZXcgV2Vha01hcDpuZXcgTWFwO2Z1bmN0aW9uIHgoZSl7dmFyIHQ9Yi5nZXQoZSk7aWYodClyZXR1cm4gdDt2YXIgbj15KGUpO3JldHVybiBiLnNldChlLG4pLG59dC5leHBvcnRzPXtjcmVhdGVRdWVyeVJlc291cmNlOnksZ2V0UXVlcnlSZXNvdXJjZUZvckVudmlyb25tZW50OngsZ2V0UXVlcnlDYWNoZUlkZW50aWZpZXI6bX19KSksb25lPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihKZCgpKSxpPW4oSGQoKSksYT1uKFFkKCkpLG89ZmgoKS5nZXRRdWVyeVJlc291cmNlRm9yRW52aXJvbm1lbnQscz1yaCgpLGM9RmQoKSxsPVR1KCk7bC51c2VEZWJ1Z1ZhbHVlO3ZhciB1PWwudXNlRWZmZWN0LGQ9bC51c2VNZW1vLGY9bC51c2VSZWYscD1sLnVzZVN0YXRlLG09cXAoKSxoPW0uX19pbnRlcm5hbCxnPWguZmV0Y2hRdWVyeSxfPWguZ2V0UHJvbWlzZUZvckFjdGl2ZVJlcXVlc3Qsdj1tLlJlbGF5RmVhdHVyZUZsYWdzLHk9bS5hcmVFcXVhbFNlbGVjdG9ycyxiPW0uY3JlYXRlT3BlcmF0aW9uRGVzY3JpcHRvcix4PW0uZ2V0UGVuZGluZ09wZXJhdGlvbnNGb3JGcmFnbWVudCxTPW0uZ2V0U2VsZWN0b3IsQz1tLmdldFZhcmlhYmxlc0Zyb21GcmFnbWVudCx3PW0uaGFuZGxlUG90ZW50aWFsU25hcHNob3RFcnJvcnMsVD1tLnJlY3ljbGVOb2Rlc0ludG87TGQoKTtmdW5jdGlvbiBFKGUpe3JldHVybiBlLmtpbmQ9PT1gYmFpbG91dGA/ITE6ZS5raW5kPT09YHNpbmd1bGFyYD9lLnNuYXBzaG90LmlzTWlzc2luZ0RhdGE6ZS5zbmFwc2hvdHMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pc01pc3NpbmdEYXRhfSl9ZnVuY3Rpb24gRChlKXtpZihlLmtpbmQ9PT1gYmFpbG91dGApcmV0dXJuIG51bGw7aWYoZS5raW5kPT09YHNpbmd1bGFyYClyZXR1cm4gZS5zbmFwc2hvdC5taXNzaW5nQ2xpZW50RWRnZXM/P251bGw7dmFyIHQ9bnVsbCxuPSgwLGkuZGVmYXVsdCkoZS5zbmFwc2hvdHMpLHI7dHJ5e2ZvcihuLnMoKTshKHI9bi5uKCkpLmRvbmU7KXt2YXIgYT1yLnZhbHVlO2lmKGEubWlzc2luZ0NsaWVudEVkZ2VzKXt0PXQ/P1tdO3ZhciBvPSgwLGkuZGVmYXVsdCkoYS5taXNzaW5nQ2xpZW50RWRnZXMpLHM7dHJ5e2ZvcihvLnMoKTshKHM9by5uKCkpLmRvbmU7KXt2YXIgYz1zLnZhbHVlO3QucHVzaChjKX19Y2F0Y2goZSl7by5lKGUpfWZpbmFsbHl7by5mKCl9fX19Y2F0Y2goZSl7bi5lKGUpfWZpbmFsbHl7bi5mKCl9cmV0dXJuIHR9ZnVuY3Rpb24gTyhlKXtpZihlLmtpbmQ9PT1gYmFpbG91dGApcmV0dXJuIG51bGw7aWYoZS5raW5kPT09YHNpbmd1bGFyYClyZXR1cm4gZS5zbmFwc2hvdC5taXNzaW5nTGl2ZVJlc29sdmVyRmllbGRzPz9udWxsO3ZhciB0PW51bGwsbj0oMCxpLmRlZmF1bHQpKGUuc25hcHNob3RzKSxyO3RyeXtmb3Iobi5zKCk7IShyPW4ubigpKS5kb25lOyl7dmFyIGE9ci52YWx1ZTtpZihhLm1pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHMpe3Q9dD8/W107dmFyIG89KDAsaS5kZWZhdWx0KShhLm1pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHMpLHM7dHJ5e2ZvcihvLnMoKTshKHM9by5uKCkpLmRvbmU7KXt2YXIgYz1zLnZhbHVlO3QucHVzaChjKX19Y2F0Y2goZSl7by5lKGUpfWZpbmFsbHl7by5mKCl9fX19Y2F0Y2goZSl7bi5lKGUpfWZpbmFsbHl7bi5mKCl9cmV0dXJuIHR9ZnVuY3Rpb24gayhlLHQpe2lmKHQua2luZD09PWBzaW5ndWxhcmApdyhlLHQuc25hcHNob3QuZXJyb3JSZXNwb25zZUZpZWxkcyk7ZWxzZSBpZih0LmtpbmQ9PT1gcGx1cmFsYCl7dmFyIG49KDAsaS5kZWZhdWx0KSh0LnNuYXBzaG90cykscjt0cnl7Zm9yKG4ucygpOyEocj1uLm4oKSkuZG9uZTspe3ZhciBhPXIudmFsdWU7dyhlLGEuZXJyb3JSZXNwb25zZUZpZWxkcyl9fWNhdGNoKGUpe24uZShlKX1maW5hbGx5e24uZigpfX19ZnVuY3Rpb24gQShlLHQpe2lmKHQua2luZD09PWBiYWlsb3V0YClyZXR1cm4gbnVsbDt2YXIgbj1lLmdldFN0b3JlKCkuZ2V0RXBvY2goKTtpZihuPT09dC5lcG9jaClyZXR1cm4gbnVsbDtpZih0LmtpbmQ9PT1gc2luZ3VsYXJgKXt2YXIgcj1lLmxvb2t1cCh0LnNuYXBzaG90LnNlbGVjdG9yKSxpPVQodC5zbmFwc2hvdC5kYXRhLHIuZGF0YSksYT17ZGF0YTppLGlzTWlzc2luZ0RhdGE6ci5pc01pc3NpbmdEYXRhLG1pc3NpbmdDbGllbnRFZGdlczpyLm1pc3NpbmdDbGllbnRFZGdlcyxtaXNzaW5nTGl2ZVJlc29sdmVyRmllbGRzOnIubWlzc2luZ0xpdmVSZXNvbHZlckZpZWxkcyxzZWVuUmVjb3JkczpyLnNlZW5SZWNvcmRzLHNlbGVjdG9yOnIuc2VsZWN0b3IsZXJyb3JSZXNwb25zZUZpZWxkczpyLmVycm9yUmVzcG9uc2VGaWVsZHN9O3JldHVybltpIT09dC5zbmFwc2hvdC5kYXRhLHtraW5kOmBzaW5ndWxhcmAsc25hcHNob3Q6YSxlcG9jaDpufV19ZWxzZXtmb3IodmFyIG89ITEscz1bXSxsPTA7bDx0LnNuYXBzaG90cy5sZW5ndGg7bCsrKXt2YXIgdT10LnNuYXBzaG90c1tsXSxkPWUubG9va3VwKHUuc2VsZWN0b3IpLGY9VCh1LmRhdGEsZC5kYXRhKSxwPXtkYXRhOmYsaXNNaXNzaW5nRGF0YTpkLmlzTWlzc2luZ0RhdGEsbWlzc2luZ0NsaWVudEVkZ2VzOmQubWlzc2luZ0NsaWVudEVkZ2VzLG1pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHM6ZC5taXNzaW5nTGl2ZVJlc29sdmVyRmllbGRzLHNlZW5SZWNvcmRzOmQuc2VlblJlY29yZHMsc2VsZWN0b3I6ZC5zZWxlY3RvcixlcnJvclJlc3BvbnNlRmllbGRzOmQuZXJyb3JSZXNwb25zZUZpZWxkc307ZiE9PXUuZGF0YSYmKG89ITApLHMucHVzaChwKX1yZXR1cm4gcy5sZW5ndGghPT10LnNuYXBzaG90cy5sZW5ndGgmJmMoITEpLFtvLHtraW5kOmBwbHVyYWxgLHNuYXBzaG90czpzLGVwb2NoOm59XX19ZnVuY3Rpb24gaihlLHQsbixpLGEpe3ZhciBzPUModCxuKSxjPSgwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSxzKSx7fSx7aWQ6aS5jbGllbnRFZGdlRGVzdGluYXRpb25JRH0pLGw9YihpLnJlcXVlc3QsYyxhPT1udWxsP3ZvaWQgMDphLm5ldHdvcmtDYWNoZUNvbmZpZyk7cmV0dXJuW28oZSkucHJlcGFyZShsLGcoZSxsKSxhPT1udWxsP3ZvaWQgMDphLmZldGNoUG9saWN5KSxfKGUsbC5yZXF1ZXN0KV19ZnVuY3Rpb24gTShlLHQsbixyKXtpZih0LmtpbmQ9PT1gYmFpbG91dGApcmV0dXJuIGZ1bmN0aW9uKCl7fTtpZih0LmtpbmQ9PT1gc2luZ3VsYXJgKXt2YXIgbz1lLnN1YnNjcmliZSh0LnNuYXBzaG90LGZ1bmN0aW9uKHQpe24oZnVuY3Rpb24obil7aWYobi5raW5kIT09YHNpbmd1bGFyYHx8bi5zbmFwc2hvdC5zZWxlY3RvciE9PXQuc2VsZWN0b3Ipe3ZhciBpPUEoZSxuKTtpZihpIT1udWxsKXt2YXIgYT1pWzBdLG89aVsxXTtyZXR1cm4gZS5fX2xvZyh7bmFtZTpgdXNlRnJhZ21lbnQuc3Vic2NyaXB0aW9uLm1pc3NlZFVwZGF0ZXNgLGhhc0RhdGFDaGFuZ2VzOmF9KSxyLmN1cnJlbnQ9YSxhP286bn1lbHNlIHJldHVybiBufXJldHVybiByLmN1cnJlbnQ9ITAse2tpbmQ6YHNpbmd1bGFyYCxzbmFwc2hvdDp0LGVwb2NoOmUuZ2V0U3RvcmUoKS5nZXRFcG9jaCgpfX0pfSk7cmV0dXJuIGZ1bmN0aW9uKCl7by5kaXNwb3NlKCl9fWVsc2V7dmFyIHM9dC5zbmFwc2hvdHMubWFwKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUuc3Vic2NyaWJlKHQsZnVuY3Rpb24odCl7bihmdW5jdGlvbihuKXt2YXIgbztpZihuLmtpbmQhPT1gcGx1cmFsYHx8KChvPW4uc25hcHNob3RzW2ldKT09bnVsbD92b2lkIDA6by5zZWxlY3RvcikhPT10LnNlbGVjdG9yKXt2YXIgcz1BKGUsbik7aWYocyE9bnVsbCl7dmFyIGM9c1swXSxsPXNbMV07cmV0dXJuIGUuX19sb2coe25hbWU6YHVzZUZyYWdtZW50LnN1YnNjcmlwdGlvbi5taXNzZWRVcGRhdGVzYCxoYXNEYXRhQ2hhbmdlczpjfSksci5jdXJyZW50PXIuY3VycmVudHx8YyxjP2w6bn1lbHNlIHJldHVybiBufXZhciB1PSgwLGEuZGVmYXVsdCkobi5zbmFwc2hvdHMpO3JldHVybiB1W2ldPXQsci5jdXJyZW50PSEwLHtraW5kOmBwbHVyYWxgLHNuYXBzaG90czp1LGVwb2NoOmUuZ2V0U3RvcmUoKS5nZXRFcG9jaCgpfX0pfSl9KTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT0oMCxpLmRlZmF1bHQpKHMpLHQ7dHJ5e2ZvcihlLnMoKTshKHQ9ZS5uKCkpLmRvbmU7KXQudmFsdWUuZGlzcG9zZSgpfWNhdGNoKHQpe2UuZSh0KX1maW5hbGx5e2UuZigpfX19fWZ1bmN0aW9uIE4oZSx0KXtyZXR1cm4gdD09bnVsbD97a2luZDpgYmFpbG91dGB9OnQua2luZD09PWBQbHVyYWxSZWFkZXJTZWxlY3RvcmA/e2tpbmQ6YHBsdXJhbGAsc25hcHNob3RzOnQuc2VsZWN0b3JzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZS5sb29rdXAodCl9KSxlcG9jaDplLmdldFN0b3JlKCkuZ2V0RXBvY2goKX06e2tpbmQ6YHNpbmd1bGFyYCxzbmFwc2hvdDplLmxvb2t1cCh0KSxlcG9jaDplLmdldFN0b3JlKCkuZ2V0RXBvY2goKX19ZnVuY3Rpb24gUChlLHQsbixyKXt2YXIgYSxsLG09ZChmdW5jdGlvbigpe3JldHVybiBTKGUsdCl9LFtlLHRdKSxoPShlPT1udWxsfHwoYT1lLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6YS5wbHVyYWwpPT09ITA7aD8hKHQ9PW51bGx8fEFycmF5LmlzQXJyYXkodCkpJiZjKCExKTpBcnJheS5pc0FycmF5KHQpJiZjKCExKSwhKHQ9PW51bGx8fGgmJkFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPT09MHx8bSE9bnVsbCkmJmMoITEpO3ZhciBnPXMoKSxfPXAoZnVuY3Rpb24oKXtyZXR1cm4gTihnLG0pfSksYj1fWzBdLEM9X1sxXSx3PWIsVD1wKHcpLFA9VFswXSxGPVRbMV0sZWU9UCxJPXAobSksTD1JWzBdLFI9SVsxXSx6PXAoZyksdGU9elswXSxuZT16WzFdO2lmKCF5KG0sTCl8fGchPT10ZSl7UihtKSxuZShnKTt2YXIgcmU9TihnLG0pO0MocmUpLEYocmUpLHc9cmUsZWU9cmV9dmFyIGllPWYoITEpO2lmKHUoZnVuY3Rpb24oKXtpZS5jdXJyZW50PW19LFttXSksKChsPWUubWV0YWRhdGEpPT1udWxsP3ZvaWQgMDpsLmhhc0NsaWVudEVkZ2VzKT09PSEwKXt2YXIgYWU9ZChmdW5jdGlvbigpe3ZhciBuPUQodyksYSxvPVtdO2lmKG4hPW51bGwmJm4ubGVuZ3RoKXthPVtdO3ZhciBzPSgwLGkuZGVmYXVsdCkobiksYzt0cnl7Zm9yKHMucygpOyEoYz1zLm4oKSkuZG9uZTspe3ZhciBsPWMudmFsdWUsdT1qKGcsZSx0LGwsciksZD11WzBdLGY9dVsxXTthLnB1c2goZCksZiE9bnVsbCYmby5wdXNoKGYpfX1jYXRjaChlKXtzLmUoZSl9ZmluYWxseXtzLmYoKX19cmV0dXJuW2Esb119LFt3LGcsZSx0LHJdKSxvZT1hZVswXSxzZT1hZVsxXTtpZihzZS5sZW5ndGgpdGhyb3cgUHJvbWlzZS5hbGwoc2UpO3UoZnVuY3Rpb24oKXt2YXIgZT1vKGcpO2lmKG9lIT1udWxsJiZvZS5sZW5ndGgpe3ZhciB0PVtdLG49KDAsaS5kZWZhdWx0KShvZSkscjt0cnl7Zm9yKG4ucygpOyEocj1uLm4oKSkuZG9uZTspe3ZhciBhPXIudmFsdWU7dC5wdXNoKGUucmV0YWluKGEpKX19Y2F0Y2goZSl7bi5lKGUpfWZpbmFsbHl7bi5mKCl9cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAsbj10O2U8bi5sZW5ndGg7ZSsrKW5bZV0uZGlzcG9zZSgpfX19LFtnLG9lXSl9aWYoRSh3KSl7dmFyIGNlPU8odyk7aWYoY2UhPW51bGwmJmNlLmxlbmd0aD4wKXRocm93IFByb21pc2UuYWxsKGNlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZy5nZXRTdG9yZSgpLmdldExpdmVSZXNvbHZlclByb21pc2UoZSl9KSk7aWYodi5FTkFCTEVfUkVMQVlfT1BFUkFUSU9OX1RSQUNLRVJfU1VTUEVOU0V8fGchPT10ZXx8IWllLmN1cnJlbnR8fCF5KGllLmN1cnJlbnQsbSkpe20/P2MoITEpO3ZhciBsZT14KGcsZSxtLmtpbmQ9PT1gUGx1cmFsUmVhZGVyU2VsZWN0b3JgP20uc2VsZWN0b3JzWzBdLm93bmVyOm0ub3duZXIpO2lmKGxlKXRocm93IGxlLnByb21pc2V9fWsoZyx3KTt2YXIgdWU9ZighMSk7aWYodShmdW5jdGlvbigpe3ZhciBlPWVlLHQ9QShnLGVlKTtpZih0IT09bnVsbCl7dmFyIG49dFswXSxyPXRbMV07biYmQyhyKSxlPXJ9cmV0dXJuIE0oZyxlLEMsdWUpfSxbZyxlZV0pLHVlLmN1cnJlbnQpe3ZhciBkZT1BKGcsdyk7aWYoZGUhPW51bGwpe3ZhciBmZT1kZVswXSxwZT1kZVsxXTtmZSYmKEMocGUpLHc9cGUpfXVlLmN1cnJlbnQ9ITF9dmFyIG1lO2lmKGgpe3ZhciBoZT10PT1udWxsO21lPWQoZnVuY3Rpb24oKXtyZXR1cm4gdy5raW5kPT09YGJhaWxvdXRgP2hlP251bGw6W106KHcua2luZCE9PWBwbHVyYWxgJiZjKCExKSx3LnNuYXBzaG90cy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGF0YX0pKX0sW3csaGVdKX1lbHNlIHcua2luZD09PWBiYWlsb3V0YD9tZT1udWxsOih3LmtpbmQhPT1gc2luZ3VsYXJgJiZjKCExKSxtZT13LnNuYXBzaG90LmRhdGEpO3JldHVybiB2LkxPR19NSVNTSU5HX1JFQ09SRFNfSU5fUFJPRCYmdCE9bnVsbCYmKG1lPT09dm9pZCAwfHxBcnJheS5pc0FycmF5KG1lKSYmbWUubGVuZ3RoPjAmJm1lLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dm9pZCAwfSkpLG1lfXQuZXhwb3J0cz1QfSkpLHNuZT1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSmQoKSksaT1uKEhkKCkpLGE9bihRZCgpKSxvPWZoKCkuZ2V0UXVlcnlSZXNvdXJjZUZvckVudmlyb25tZW50LHM9cmgoKSxjPUZkKCksbD1UdSgpO2wudXNlRGVidWdWYWx1ZTt2YXIgdT1sLnVzZUVmZmVjdCxkPWwudXNlTWVtbyxmPWwudXNlUmVmLHA9bC51c2VTdGF0ZSxtPXFwKCksaD1tLl9faW50ZXJuYWwsZz1oLmZldGNoUXVlcnksXz1oLmdldFByb21pc2VGb3JBY3RpdmVSZXF1ZXN0LHY9bS5SZWxheUZlYXR1cmVGbGFncyx5PW0uYXJlRXF1YWxTZWxlY3RvcnMsYj1tLmNyZWF0ZU9wZXJhdGlvbkRlc2NyaXB0b3IseD1tLmdldFBlbmRpbmdPcGVyYXRpb25zRm9yRnJhZ21lbnQsUz1tLmdldFNlbGVjdG9yLEM9bS5nZXRWYXJpYWJsZXNGcm9tRnJhZ21lbnQsdz1tLmhhbmRsZVBvdGVudGlhbFNuYXBzaG90RXJyb3JzLFQ9bS5yZWN5Y2xlTm9kZXNJbnRvO0xkKCk7ZnVuY3Rpb24gRShlKXtyZXR1cm4gZS5raW5kPT09YGJhaWxvdXRgPyExOmUua2luZD09PWBzaW5ndWxhcmA/ZS5zbmFwc2hvdC5pc01pc3NpbmdEYXRhOmUuc25hcHNob3RzLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNNaXNzaW5nRGF0YX0pfWZ1bmN0aW9uIEQoZSl7aWYoZS5raW5kPT09YGJhaWxvdXRgKXJldHVybiBudWxsO2lmKGUua2luZD09PWBzaW5ndWxhcmApcmV0dXJuIGUuc25hcHNob3QubWlzc2luZ0NsaWVudEVkZ2VzPz9udWxsO3ZhciB0PW51bGwsbj0oMCxpLmRlZmF1bHQpKGUuc25hcHNob3RzKSxyO3RyeXtmb3Iobi5zKCk7IShyPW4ubigpKS5kb25lOyl7dmFyIGE9ci52YWx1ZTtpZihhLm1pc3NpbmdDbGllbnRFZGdlcyl7dD10Pz9bXTt2YXIgbz0oMCxpLmRlZmF1bHQpKGEubWlzc2luZ0NsaWVudEVkZ2VzKSxzO3RyeXtmb3Ioby5zKCk7IShzPW8ubigpKS5kb25lOyl7dmFyIGM9cy52YWx1ZTt0LnB1c2goYyl9fWNhdGNoKGUpe28uZShlKX1maW5hbGx5e28uZigpfX19fWNhdGNoKGUpe24uZShlKX1maW5hbGx5e24uZigpfXJldHVybiB0fWZ1bmN0aW9uIE8oZSl7aWYoZS5raW5kPT09YGJhaWxvdXRgKXJldHVybiBudWxsO2lmKGUua2luZD09PWBzaW5ndWxhcmApcmV0dXJuIGUuc25hcHNob3QubWlzc2luZ0xpdmVSZXNvbHZlckZpZWxkcz8/bnVsbDt2YXIgdD1udWxsLG49KDAsaS5kZWZhdWx0KShlLnNuYXBzaG90cykscjt0cnl7Zm9yKG4ucygpOyEocj1uLm4oKSkuZG9uZTspe3ZhciBhPXIudmFsdWU7aWYoYS5taXNzaW5nTGl2ZVJlc29sdmVyRmllbGRzKXt0PXQ/P1tdO3ZhciBvPSgwLGkuZGVmYXVsdCkoYS5taXNzaW5nTGl2ZVJlc29sdmVyRmllbGRzKSxzO3RyeXtmb3Ioby5zKCk7IShzPW8ubigpKS5kb25lOyl7dmFyIGM9cy52YWx1ZTt0LnB1c2goYyl9fWNhdGNoKGUpe28uZShlKX1maW5hbGx5e28uZigpfX19fWNhdGNoKGUpe24uZShlKX1maW5hbGx5e24uZigpfXJldHVybiB0fWZ1bmN0aW9uIGsoZSx0KXtpZih0LmtpbmQ9PT1gc2luZ3VsYXJgKXcoZSx0LnNuYXBzaG90LmVycm9yUmVzcG9uc2VGaWVsZHMpO2Vsc2UgaWYodC5raW5kPT09YHBsdXJhbGApe3ZhciBuPSgwLGkuZGVmYXVsdCkodC5zbmFwc2hvdHMpLHI7dHJ5e2ZvcihuLnMoKTshKHI9bi5uKCkpLmRvbmU7KXt2YXIgYT1yLnZhbHVlO3coZSxhLmVycm9yUmVzcG9uc2VGaWVsZHMpfX1jYXRjaChlKXtuLmUoZSl9ZmluYWxseXtuLmYoKX19fWZ1bmN0aW9uIEEoZSx0KXtpZih0LmtpbmQ9PT1gYmFpbG91dGApcmV0dXJuIG51bGw7dmFyIG49ZS5nZXRTdG9yZSgpLmdldEVwb2NoKCk7aWYobj09PXQuZXBvY2gpcmV0dXJuIG51bGw7aWYodC5raW5kPT09YHNpbmd1bGFyYCl7dmFyIHI9ZS5sb29rdXAodC5zbmFwc2hvdC5zZWxlY3RvciksaT1UKHQuc25hcHNob3QuZGF0YSxyLmRhdGEpLGE9e2RhdGE6aSxpc01pc3NpbmdEYXRhOnIuaXNNaXNzaW5nRGF0YSxtaXNzaW5nQ2xpZW50RWRnZXM6ci5taXNzaW5nQ2xpZW50RWRnZXMsbWlzc2luZ0xpdmVSZXNvbHZlckZpZWxkczpyLm1pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHMsc2VlblJlY29yZHM6ci5zZWVuUmVjb3JkcyxzZWxlY3RvcjpyLnNlbGVjdG9yLGVycm9yUmVzcG9uc2VGaWVsZHM6ci5lcnJvclJlc3BvbnNlRmllbGRzfTtyZXR1cm5baSE9PXQuc25hcHNob3QuZGF0YSx7a2luZDpgc2luZ3VsYXJgLHNuYXBzaG90OmEsZXBvY2g6bixzZWxlY3Rvcjp0LnNlbGVjdG9yLGVudmlyb25tZW50OnQuZW52aXJvbm1lbnR9XX1lbHNle2Zvcih2YXIgbz0hMSxzPVtdLGw9MDtsPHQuc25hcHNob3RzLmxlbmd0aDtsKyspe3ZhciB1PXQuc25hcHNob3RzW2xdLGQ9ZS5sb29rdXAodS5zZWxlY3RvciksZj1UKHUuZGF0YSxkLmRhdGEpLHA9e2RhdGE6Zixpc01pc3NpbmdEYXRhOmQuaXNNaXNzaW5nRGF0YSxtaXNzaW5nQ2xpZW50RWRnZXM6ZC5taXNzaW5nQ2xpZW50RWRnZXMsbWlzc2luZ0xpdmVSZXNvbHZlckZpZWxkczpkLm1pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHMsc2VlblJlY29yZHM6ZC5zZWVuUmVjb3JkcyxzZWxlY3RvcjpkLnNlbGVjdG9yLGVycm9yUmVzcG9uc2VGaWVsZHM6ZC5lcnJvclJlc3BvbnNlRmllbGRzfTtmIT09dS5kYXRhJiYobz0hMCkscy5wdXNoKHApfXJldHVybiBzLmxlbmd0aCE9PXQuc25hcHNob3RzLmxlbmd0aCYmYyghMSksW28se2tpbmQ6YHBsdXJhbGAsc25hcHNob3RzOnMsZXBvY2g6bixzZWxlY3Rvcjp0LnNlbGVjdG9yLGVudmlyb25tZW50OnQuZW52aXJvbm1lbnR9XX19ZnVuY3Rpb24gaihlLHQsbixpLGEpe3ZhciBzPUModCxuKSxjPSgwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSxzKSx7fSx7aWQ6aS5jbGllbnRFZGdlRGVzdGluYXRpb25JRH0pLGw9YihpLnJlcXVlc3QsYyxhPT1udWxsP3ZvaWQgMDphLm5ldHdvcmtDYWNoZUNvbmZpZyk7cmV0dXJuW28oZSkucHJlcGFyZShsLGcoZSxsKSxhPT1udWxsP3ZvaWQgMDphLmZldGNoUG9saWN5KSxfKGUsbC5yZXF1ZXN0KV19ZnVuY3Rpb24gTShlLHQsbil7aWYodC5raW5kPT09YGJhaWxvdXRgKXJldHVybiBmdW5jdGlvbigpe307aWYodC5raW5kPT09YHNpbmd1bGFyYCl7dmFyIHI9ZS5zdWJzY3JpYmUodC5zbmFwc2hvdCxmdW5jdGlvbihyKXtuKGZ1bmN0aW9uKG4pe3ZhciBpPW51bGw7aWYobi5raW5kIT09YHNpbmd1bGFyYHx8bi5zbmFwc2hvdC5zZWxlY3RvciE9PXIuc2VsZWN0b3J8fG4uZW52aXJvbm1lbnQhPT1lKXt2YXIgYT1BKG4uZW52aXJvbm1lbnQsbik7aWYoYSE9bnVsbCl7dmFyIG89YVswXSxzPWFbMV07ZS5fX2xvZyh7bmFtZTpgdXNlRnJhZ21lbnQuc3Vic2NyaXB0aW9uLm1pc3NlZFVwZGF0ZXNgLGhhc0RhdGFDaGFuZ2VzOm99KSxpPW8/czpufWVsc2UgaT1ufWVsc2UgaT17a2luZDpgc2luZ3VsYXJgLHNuYXBzaG90OnIsZXBvY2g6ZS5nZXRTdG9yZSgpLmdldEVwb2NoKCksc2VsZWN0b3I6dC5zZWxlY3RvcixlbnZpcm9ubWVudDp0LmVudmlyb25tZW50fTtyZXR1cm4gaX0pfSk7cmV0dXJuIGZ1bmN0aW9uKCl7ci5kaXNwb3NlKCl9fWVsc2V7dmFyIG89dC5zbmFwc2hvdHMubWFwKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIGUuc3Vic2NyaWJlKHIsZnVuY3Rpb24ocil7bihmdW5jdGlvbihuKXt2YXIgbyxzPW51bGw7aWYobi5raW5kIT09YHBsdXJhbGB8fCgobz1uLnNuYXBzaG90c1tpXSk9PW51bGw/dm9pZCAwOm8uc2VsZWN0b3IpIT09ci5zZWxlY3Rvcnx8bi5lbnZpcm9ubWVudCE9PWUpe3ZhciBjPUEobi5lbnZpcm9ubWVudCxuKTtpZihjIT1udWxsKXt2YXIgbD1jWzBdLHU9Y1sxXTtlLl9fbG9nKHtuYW1lOmB1c2VGcmFnbWVudC5zdWJzY3JpcHRpb24ubWlzc2VkVXBkYXRlc2AsaGFzRGF0YUNoYW5nZXM6bH0pLHM9bD91Om59ZWxzZSBzPW59ZWxzZXt2YXIgZD0oMCxhLmRlZmF1bHQpKG4uc25hcHNob3RzKTtkW2ldPXIscz17a2luZDpgcGx1cmFsYCxzbmFwc2hvdHM6ZCxlcG9jaDplLmdldFN0b3JlKCkuZ2V0RXBvY2goKSxzZWxlY3Rvcjp0LnNlbGVjdG9yLGVudmlyb25tZW50OnQuZW52aXJvbm1lbnR9fXJldHVybiBzfSl9KX0pO3JldHVybiBmdW5jdGlvbigpe3ZhciBlPSgwLGkuZGVmYXVsdCkobyksdDt0cnl7Zm9yKGUucygpOyEodD1lLm4oKSkuZG9uZTspdC52YWx1ZS5kaXNwb3NlKCl9Y2F0Y2godCl7ZS5lKHQpfWZpbmFsbHl7ZS5mKCl9fX19ZnVuY3Rpb24gTihlLHQpe3JldHVybiB0PT1udWxsP3traW5kOmBiYWlsb3V0YCxlbnZpcm9ubWVudDplfTp0LmtpbmQ9PT1gUGx1cmFsUmVhZGVyU2VsZWN0b3JgP3traW5kOmBwbHVyYWxgLHNuYXBzaG90czp0LnNlbGVjdG9ycy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGUubG9va3VwKHQpfSksZXBvY2g6ZS5nZXRTdG9yZSgpLmdldEVwb2NoKCksc2VsZWN0b3I6dCxlbnZpcm9ubWVudDplfTp7a2luZDpgc2luZ3VsYXJgLHNuYXBzaG90OmUubG9va3VwKHQpLGVwb2NoOmUuZ2V0U3RvcmUoKS5nZXRFcG9jaCgpLHNlbGVjdG9yOnQsZW52aXJvbm1lbnQ6ZX19ZnVuY3Rpb24gUChlLHQsbixyKXt2YXIgYSxsLG09ZChmdW5jdGlvbigpe3JldHVybiBTKGUsdCl9LFtlLHRdKSxoPShlPT1udWxsfHwoYT1lLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6YS5wbHVyYWwpPT09ITA7aD8hKHQ9PW51bGx8fEFycmF5LmlzQXJyYXkodCkpJiZjKCExKTpBcnJheS5pc0FycmF5KHQpJiZjKCExKSwhKHQ9PW51bGx8fGgmJkFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPT09MHx8bSE9bnVsbCkmJmMoITEpO3ZhciBnPXMoKSxfPXAoZnVuY3Rpb24oKXtyZXR1cm4gTihnLG0pfSksYj1fWzBdLEM9X1sxXSx3PWIsVD13LmVudmlyb25tZW50O2lmKCF5KG0sdy5zZWxlY3Rvcil8fGchPT13LmVudmlyb25tZW50KXt2YXIgUD1OKGcsbSk7QyhQKSx3PVB9dmFyIEY9ZighMSk7aWYodShmdW5jdGlvbigpe0YuY3VycmVudD1tfSxbbV0pLCgobD1lLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6bC5oYXNDbGllbnRFZGdlcyk9PT0hMCl7dmFyIGVlPWQoZnVuY3Rpb24oKXt2YXIgbj1EKHcpLGEsbz1bXTtpZihuIT1udWxsJiZuLmxlbmd0aCl7YT1bXTt2YXIgcz0oMCxpLmRlZmF1bHQpKG4pLGM7dHJ5e2ZvcihzLnMoKTshKGM9cy5uKCkpLmRvbmU7KXt2YXIgbD1jLnZhbHVlLHU9aihnLGUsdCxsLHIpLGQ9dVswXSxmPXVbMV07YS5wdXNoKGQpLGYhPW51bGwmJm8ucHVzaChmKX19Y2F0Y2goZSl7cy5lKGUpfWZpbmFsbHl7cy5mKCl9fXJldHVyblthLG9dfSxbdyxnLGUsdCxyXSksST1lZVswXSxMPWVlWzFdO2lmKEwubGVuZ3RoKXRocm93IFByb21pc2UuYWxsKEwpO3UoZnVuY3Rpb24oKXt2YXIgZT1vKGcpO2lmKEkhPW51bGwmJkkubGVuZ3RoKXt2YXIgdD1bXSxuPSgwLGkuZGVmYXVsdCkoSSkscjt0cnl7Zm9yKG4ucygpOyEocj1uLm4oKSkuZG9uZTspe3ZhciBhPXIudmFsdWU7dC5wdXNoKGUucmV0YWluKGEpKX19Y2F0Y2goZSl7bi5lKGUpfWZpbmFsbHl7bi5mKCl9cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAsbj10O2U8bi5sZW5ndGg7ZSsrKW5bZV0uZGlzcG9zZSgpfX19LFtnLEldKX1pZihFKHcpKXt2YXIgUj1PKHcpO2lmKFIhPW51bGwmJlIubGVuZ3RoPjApdGhyb3cgUHJvbWlzZS5hbGwoUi5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGcuZ2V0U3RvcmUoKS5nZXRMaXZlUmVzb2x2ZXJQcm9taXNlKGUpfSkpO2lmKHYuRU5BQkxFX1JFTEFZX09QRVJBVElPTl9UUkFDS0VSX1NVU1BFTlNFfHxnIT09VHx8IUYuY3VycmVudHx8IXkoRi5jdXJyZW50LG0pKXttPz9jKCExKTt2YXIgej14KGcsZSxtLmtpbmQ9PT1gUGx1cmFsUmVhZGVyU2VsZWN0b3JgP20uc2VsZWN0b3JzWzBdLm93bmVyOm0ub3duZXIpO2lmKHopdGhyb3cgei5wcm9taXNlfX1rKGcsdyk7dmFyIHRlPWYobnVsbCk7dShmdW5jdGlvbigpe3ZhciBlPXRlLmN1cnJlbnQ7aWYoZSE9bnVsbCl7aWYody5lbnZpcm9ubWVudD09PWUuZW52aXJvbm1lbnQmJncuc2VsZWN0b3I9PT1lLnNlbGVjdG9yKXJldHVybjtlLmRpc3Bvc2UoKX1pZih3LmtpbmQhPT1gYmFpbG91dGApe3ZhciB0PXcsbj1BKHcuZW52aXJvbm1lbnQsdyk7aWYobiE9PW51bGwpe3ZhciByPW5bMF0saT1uWzFdO2lmKHIpe0MoaSk7cmV0dXJufXQ9aX10ZS5jdXJyZW50PXtkaXNwb3NlOk0ody5lbnZpcm9ubWVudCx0LEMpLHNlbGVjdG9yOncuc2VsZWN0b3IsZW52aXJvbm1lbnQ6dy5lbnZpcm9ubWVudH19fSxbd10pLHUoZnVuY3Rpb24oKXtyZXR1cm4gdGUuY3VycmVudD09bnVsbCYmdy5raW5kIT09YGJhaWxvdXRgJiYodGUuY3VycmVudD17ZGlzcG9zZTpNKHcuZW52aXJvbm1lbnQsdyxDKSxzZWxlY3Rvcjp3LnNlbGVjdG9yLGVudmlyb25tZW50OncuZW52aXJvbm1lbnR9KSxmdW5jdGlvbigpe3ZhciBlOyhlPXRlLmN1cnJlbnQpPT1udWxsfHxlLmRpc3Bvc2UoKSx0ZS5jdXJyZW50PW51bGx9fSxbXSk7dmFyIG5lO2lmKGgpe3ZhciByZT10PT1udWxsO25lPWQoZnVuY3Rpb24oKXtyZXR1cm4gdy5raW5kPT09YGJhaWxvdXRgP3JlP251bGw6W106KHcua2luZCE9PWBwbHVyYWxgJiZjKCExKSx3LnNuYXBzaG90cy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGF0YX0pKX0sW3cscmVdKX1lbHNlIHcua2luZD09PWBiYWlsb3V0YD9uZT1udWxsOih3LmtpbmQhPT1gc2luZ3VsYXJgJiZjKCExKSxuZT13LnNuYXBzaG90LmRhdGEpO3JldHVybiB2LkxPR19NSVNTSU5HX1JFQ09SRFNfSU5fUFJPRCYmdCE9bnVsbCYmKG5lPT09dm9pZCAwfHxBcnJheS5pc0FycmF5KG5lKSYmbmUubGVuZ3RoPjAmJm5lLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dm9pZCAwfSkpLG5lfXQuZXhwb3J0cz1QfSkpLHBoPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihvbmUoKSksaT1uKHNuZSgpKSxhPXFwKCk7ZnVuY3Rpb24gbyhlLHQsbixvKXtyZXR1cm4gYS5SZWxheUZlYXR1cmVGbGFncy5FTkFCTEVfQUNUSVZJVFlfQ09NUEFUSUJJTElUWT8oMCxpLmRlZmF1bHQpKGUsdCxuLG8pOigwLHIuZGVmYXVsdCkoZSx0LG4sbyl9dC5leHBvcnRzPW99KSksbWg9cygoKGUsdCk9Pnt2YXIgbj1UdSgpLnVzZU1lbW87ZnVuY3Rpb24gcihlKXtyZXR1cm4gbihmdW5jdGlvbigpe3JldHVybntjdXJyZW50OmV9fSxbXSl9dC5leHBvcnRzPXJ9KSksaGg9cygoKGUsdCk9PnttaCgpLExkKCk7ZnVuY3Rpb24gbihlLHQpe310LmV4cG9ydHM9bn0pKSxnaD1zKCgoZSx0KT0+e3ZhciBuPXBoKCkscj1oaCgpO1R1KCkudXNlRGVidWdWYWx1ZTt2YXIgaT1xcCgpLmdldEZyYWdtZW50O2Z1bmN0aW9uIGEoZSx0KXt2YXIgYT1pKGUpO3JldHVybiByKGEsYGZpcnN0IGFyZ3VtZW50IG9mIHVzZUZyYWdtZW50KClgKSxuKGEsdCxgdXNlRnJhZ21lbnQoKWApfXQuZXhwb3J0cz1hfSkpLF9oPXMoKChlLHQpPT57dmFyIG49bWgoKSxyPVR1KCksaT1yLnVzZUNhbGxiYWNrLGE9ci51c2VFZmZlY3Q7ZnVuY3Rpb24gbygpe3ZhciBlPW4obnVsbCksdD1uKCExKSxyPWkoZnVuY3Rpb24oKXtlLmN1cnJlbnQhPW51bGwmJihlLmN1cnJlbnQudW5zdWJzY3JpYmUoKSxlLmN1cnJlbnQ9bnVsbCksdC5jdXJyZW50PSExfSxbXSksbz1pKGZ1bmN0aW9uKG4pe2UuY3VycmVudD1uLHQuY3VycmVudD0hMH0sW10pLHM9aShmdW5jdGlvbigpe2UuY3VycmVudD1udWxsLHQuY3VycmVudD0hMX0sW10pO3JldHVybiBhKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9LFtyXSkse2lzRmV0Y2hpbmdSZWY6dCxzdGFydEZldGNoOm8sZGlzcG9zZUZldGNoOnIsY29tcGxldGVGZXRjaDpzfX10LmV4cG9ydHM9b30pKSx2aD1zKCgoZSx0KT0+e3ZhciBuPXRoKCkscj1maCgpLGk9ci5nZXRRdWVyeUNhY2hlSWRlbnRpZmllcixhPXIuZ2V0UXVlcnlSZXNvdXJjZUZvckVudmlyb25tZW50LG89X2goKSxzPXBoKCksYz1yaCgpLGw9VHUoKSx1PWwudXNlQ29udGV4dCxkPWwudXNlRWZmZWN0LGY9bC51c2VTdGF0ZSxwPWwudXNlUmVmO2Z1bmN0aW9uIG0oZSl7dmFyIHQ9ZS5xdWVyeSxyPWUuY29tcG9uZW50RGlzcGxheU5hbWUsbD1lLmZldGNoT2JzZXJ2YWJsZSxtPWUuZmV0Y2hQb2xpY3ksaD1lLmZldGNoS2V5LGc9ZS5yZW5kZXJQb2xpY3ksXz1jKCksdj11KG4pLHk9YShfKSxiPWYoMCkseD1iWzBdLFM9YlsxXSxDPW8oKSx3PUMuc3RhcnRGZXRjaCxUPUMuY29tcGxldGVGZXRjaCxFPWkoXyx0LG0sZyxgJHt4fS0ke2g/P2BgfWApLEQ9di53cmFwUHJlcGFyZVF1ZXJ5UmVzb3VyY2UoZnVuY3Rpb24oKXtyZXR1cm4geS5wcmVwYXJlV2l0aElkZW50aWZpZXIoRSx0LGwsbSxnLHtzdGFydDp3LGNvbXBsZXRlOlQsZXJyb3I6VH0sdil9KSxPPXAoITEpO2QoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXtPLmN1cnJlbnQ9ITB9fSxbXSksZChmdW5jdGlvbigpe2lmKE8uY3VycmVudD09PSEwKXtPLmN1cnJlbnQ9ITEsUyhmdW5jdGlvbihlKXtyZXR1cm4gZSsxfSk7cmV0dXJufXZhciBlPXkucmV0YWluKEQsdik7cmV0dXJuIGZ1bmN0aW9uKCl7ZS5kaXNwb3NlKCl9fSxbXyxFXSksZChmdW5jdGlvbigpe3kucmVsZWFzZVRlbXBvcmFyeVJldGFpbihEKX0pO3ZhciBrPUQuZnJhZ21lbnROb2RlLEE9RC5mcmFnbWVudFJlZjtyZXR1cm4gcyhrLEEscil9dC5leHBvcnRzPW19KSksY25lPXMoKChlLHQpPT57dmFyIG49YWYoKSxyPVR1KCkudXNlU3RhdGU7ZnVuY3Rpb24gaShlKXt2YXIgdD1yKGUpLGk9dFswXSxhPXRbMV07cmV0dXJuIG4oZSxpKT9pOihhKGUpLGUpfXQuZXhwb3J0cz1pfSkpLHloPXMoKChlLHQpPT57dmFyIG49Y25lKCkscj1UdSgpLGk9cXAoKSxhPWkuY3JlYXRlT3BlcmF0aW9uRGVzY3JpcHRvcixvPWkuZ2V0UmVxdWVzdCxzPXIudXNlTWVtbztmdW5jdGlvbiBjKGUsdCxyKXt2YXIgaT1uKHQpLGM9bihyfHx7fSk7cmV0dXJuIHMoZnVuY3Rpb24oKXtyZXR1cm4gYShvKGUpLGksYyl9LFtlLGksY10pfXQuZXhwb3J0cz1jfSkpLGJoPXMoKChlLHQpPT57dmFyIG49dmgoKSxyPXloKCksaT1yaCgpLGE9cXAoKS5fX2ludGVybmFsLmZldGNoUXVlcnk7ZnVuY3Rpb24gbyhlLHQsbyl7dmFyIHM9aSgpLGM9cihlLHQsbyYmby5uZXR3b3JrQ2FjaGVDb25maWc/by5uZXR3b3JrQ2FjaGVDb25maWc6e2ZvcmNlOiEwfSk7cmV0dXJuIG4oe2NvbXBvbmVudERpc3BsYXlOYW1lOmB1c2VMYXp5TG9hZFF1ZXJ5KClgLGZldGNoS2V5Om89PW51bGw/dm9pZCAwOm8uZmV0Y2hLZXksZmV0Y2hPYnNlcnZhYmxlOmEocyxjKSxmZXRjaFBvbGljeTpvPT1udWxsP3ZvaWQgMDpvLmZldGNoUG9saWN5LHF1ZXJ5OmMscmVuZGVyUG9saWN5Om89PW51bGw/dm9pZCAwOm8uVU5TVEFCTEVfcmVuZGVyUG9saWN5fSl9dC5leHBvcnRzPW99KSkseGg9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEpkKCkpLGk9Y2goKSxhPXJoKCksbz1UdSgpLHM9cXAoKS5jb21taXRNdXRhdGlvbixjPW8udXNlU3RhdGUsbD1vLnVzZUVmZmVjdCx1PW8udXNlUmVmLGQ9by51c2VDYWxsYmFjaztmdW5jdGlvbiBmKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpzLG49YSgpLG89aSgpLGY9dShuKSxwPXUoZSksbT11KG5ldyBTZXQpLGg9YyghMSksZz1oWzBdLF89aFsxXSx2PWQoZnVuY3Rpb24odCl7Zi5jdXJyZW50PT09biYmcC5jdXJyZW50PT09ZSYmKG0uY3VycmVudC5kZWxldGUodCksby5jdXJyZW50JiZfKG0uY3VycmVudC5zaXplPjApKX0sW24sbyxlXSk7cmV0dXJuIGwoZnVuY3Rpb24oKXsoZi5jdXJyZW50IT09bnx8cC5jdXJyZW50IT09ZSkmJihtLmN1cnJlbnQ9bmV3IFNldCxvLmN1cnJlbnQmJl8oITEpLGYuY3VycmVudD1uLHAuY3VycmVudD1lKX0sW24sbyxlXSksW2QoZnVuY3Rpb24oaSl7by5jdXJyZW50JiZfKCEwKTt2YXIgYT10KG4sKDAsci5kZWZhdWx0KSgoMCxyLmRlZmF1bHQpKHt9LGkpLHt9LHttdXRhdGlvbjplLG9uQ29tcGxldGVkOmZ1bmN0aW9uKGUsdCl7dmFyIG47dihhKSwobj1pLm9uQ29tcGxldGVkKT09bnVsbHx8bi5jYWxsKGksZSx0KX0sb25FcnJvcjpmdW5jdGlvbihlKXt2YXIgdDt2KGEpLCh0PWkub25FcnJvcik9PW51bGx8fHQuY2FsbChpLGUpfSxvblVuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7dmFyIGU7dihhKSwoZT1pLm9uVW5zdWJzY3JpYmUpPT1udWxsfHxlLmNhbGwoaSl9LG9uTmV4dDpmdW5jdGlvbigpe3ZhciBlOyhlPWkub25OZXh0KT09bnVsbHx8ZS5jYWxsKGkpfX0pKTtyZXR1cm4gbS5jdXJyZW50LmFkZChhKSxhfSxbdix0LG4sbyxlXSksZ119dC5leHBvcnRzPWZ9KSksU2g9cygoKGUsdCk9Pnt2YXIgbj1GZCgpLHI9cXAoKSxpPXIuQ29ubmVjdGlvbkludGVyZmFjZSxhPXIuZ2V0VmFsdWVBdFBhdGg7ZnVuY3Rpb24gbyhlLHQscixvKXt2YXIgcz1pLmdldCgpLGM9cy5FREdFUyxsPXMuUEFHRV9JTkZPLHU9cy5IQVNfTkVYVF9QQUdFLGQ9cy5IQVNfUFJFVl9QQUdFLGY9cy5FTkRfQ1VSU09SLHA9cy5TVEFSVF9DVVJTT1IsbT1hKHIsbyk7aWYobT09bnVsbClyZXR1cm57Y3Vyc29yOm51bGwsaGFzTW9yZTohMX07dHlwZW9mIG0hPWBvYmplY3RgJiZuKCExKTt2YXIgaD1tW2NdLGc9bVtsXTtpZihoPT1udWxsfHxnPT1udWxsKXJldHVybntjdXJzb3I6bnVsbCxoYXNNb3JlOiExfTshQXJyYXkuaXNBcnJheShoKSYmbighMSksdHlwZW9mIGchPWBvYmplY3RgJiZuKCExKTt2YXIgXz1lPT09YGZvcndhcmRgP2dbZl0/P251bGw6Z1twXT8/bnVsbDtyZXR1cm4hKF89PT1udWxsfHx0eXBlb2YgXz09YHN0cmluZ2ApJiZuKCExKSx7Y3Vyc29yOl8saGFzTW9yZTplPT09YGZvcndhcmRgP18hPW51bGwmJmdbdV09PT0hMDpfIT1udWxsJiZnW2RdPT09ITB9fXQuZXhwb3J0cz1vfSkpLENoPXMoKChlLHQpPT57dmFyIG49cmgoKSxyPUZkKCksaT1UdSgpLGE9cXAoKSxvPWEuX19pbnRlcm5hbC5nZXRPYnNlcnZhYmxlRm9yQWN0aXZlUmVxdWVzdCxzPWEuZ2V0U2VsZWN0b3IsYz1pLnVzZUVmZmVjdCxsPWkudXNlU3RhdGUsdT1pLnVzZU1lbW87ZnVuY3Rpb24gZChlLHQpe3ZhciBpPW4oKSxhPXUoZnVuY3Rpb24oKXt2YXIgbj1zKGUsdCk7cmV0dXJuIG49PW51bGw/bnVsbDoobi5raW5kIT09YFNpbmd1bGFyUmVhZGVyU2VsZWN0b3JgJiZyKCExKSxvKGksbi5vd25lcikpfSxbaSxlLHRdKSxkPWwoYSE9bnVsbCksZj1kWzBdLHA9ZFsxXTtyZXR1cm4gYyhmdW5jdGlvbigpe3ZhciBlO2lmKHAoYSE9bnVsbCksYSE9bnVsbCl7dmFyIHQ9ZnVuY3Rpb24oKXtwKCExKX07ZT1hLnN1YnNjcmliZSh7Y29tcGxldGU6dCxlcnJvcjp0fSl9cmV0dXJuIGZ1bmN0aW9uKCl7ZSYmZS51bnN1YnNjcmliZSgpfX0sW2FdKSxmfXQuZXhwb3J0cz1kfSkpLGxuZT1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSmQoKSksaT1TaCgpLGE9Y2goKSxvPUNoKCkscz1yaCgpLGM9RmQoKSxsPVR1KCksdT1sLnVzZUNhbGxiYWNrLGQ9bC51c2VSZWYsZj1sLnVzZVN0YXRlLHA9cXAoKSxtPXAuX19pbnRlcm5hbC5mZXRjaFF1ZXJ5LGg9cC5jcmVhdGVPcGVyYXRpb25EZXNjcmlwdG9yLGc9cC5nZXRQYWdpbmF0aW9uVmFyaWFibGVzLF89cC5nZXRSZWZldGNoTWV0YWRhdGEsdj1wLmdldFNlbGVjdG9yO0xkKCk7ZnVuY3Rpb24geShlKXt2YXIgdD1lLmRpcmVjdGlvbixuPWUuZnJhZ21lbnROb2RlLGw9ZS5mcmFnbWVudFJlZixwPWUuZnJhZ21lbnRJZGVudGlmaWVyLHk9ZS5mcmFnbWVudERhdGEsYj1lLmNvbm5lY3Rpb25QYXRoSW5GcmFnbWVudERhdGEseD1lLnBhZ2luYXRpb25SZXF1ZXN0LFM9ZS5wYWdpbmF0aW9uTWV0YWRhdGEsQz1lLmNvbXBvbmVudERpc3BsYXlOYW1lLHc9ZS5vYnNlcnZlcixUPWUub25SZXNldCxFPXMoKSxEPV8obixDKS5pZGVudGlmaWVySW5mbyxPPShEPT1udWxsP3ZvaWQgMDpELmlkZW50aWZpZXJGaWVsZCkhPW51bGwmJnR5cGVvZiB5PT1gb2JqZWN0YCYmeT95W0QuaWRlbnRpZmllckZpZWxkXTpudWxsLGs9ZCh7a2luZDpgbm9uZWB9KSxBPWYoRSksaj1BWzBdLE09QVsxXSxOPWYocCksUD1OWzBdLEY9TlsxXSxlZT1vKG4sbCksST11KGZ1bmN0aW9uKCl7ay5jdXJyZW50LmtpbmQ9PT1gZmV0Y2hpbmdgJiZrLmN1cnJlbnQuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksay5jdXJyZW50PXtraW5kOmBub25lYH19LFtdKTsoRSE9PWp8fHAhPT1QKSYmKEkoKSxUKCksTShFKSxGKHApKTt2YXIgTD1pKHQsbix5LGIpLFI9TC5jdXJzb3Isej1MLmhhc01vcmUsdGU9YSgpO3JldHVyblt1KGZ1bmN0aW9uKGUsaSl7dmFyIGE9aT09bnVsbD92b2lkIDA6aS5vbkNvbXBsZXRlO2lmKHRlLmN1cnJlbnQhPT0hMClyZXR1cm57ZGlzcG9zZTpmdW5jdGlvbigpe319O3ZhciBvPXYobixsKTtpZihrLmN1cnJlbnQua2luZD09PWBmZXRjaGluZ2B8fHk9PW51bGx8fGVlKXJldHVybiBhJiZhKG51bGwpLHtkaXNwb3NlOmZ1bmN0aW9uKCl7fX07IShvIT1udWxsJiZvLmtpbmQhPT1gUGx1cmFsUmVhZGVyU2VsZWN0b3JgKSYmYyghMSk7dmFyIHM9by5vd25lci52YXJpYWJsZXMsdT1vLnZhcmlhYmxlcyxkPWk9PW51bGw/dm9pZCAwOmkuVU5TVEFCTEVfZXh0cmFWYXJpYWJsZXMsZj1nKHQsZSxSLCgwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSxzKSx1KSwoMCxyLmRlZmF1bHQpKHt9LGQpLFMpO3JldHVybiBEIT1udWxsJiYoZltELmlkZW50aWZpZXJRdWVyeVZhcmlhYmxlTmFtZV09TyksbShFLGgoeCxmLHtmb3JjZTohMH0pKS5zdWJzY3JpYmUoKDAsci5kZWZhdWx0KSgoMCxyLmRlZmF1bHQpKHt9LHcpLHt9LHtzdGFydDpmdW5jdGlvbihlKXtrLmN1cnJlbnQ9e2tpbmQ6YGZldGNoaW5nYCxzdWJzY3JpcHRpb246ZX0sdy5zdGFydCYmdy5zdGFydChlKX0sY29tcGxldGU6ZnVuY3Rpb24oKXtrLmN1cnJlbnQ9e2tpbmQ6YG5vbmVgfSx3LmNvbXBsZXRlJiZ3LmNvbXBsZXRlKCksYSYmYShudWxsKX0sZXJyb3I6ZnVuY3Rpb24oZSl7ay5jdXJyZW50PXtraW5kOmBub25lYH0sdy5jb21wbGV0ZSYmdy5jb21wbGV0ZSgpLGEmJmEoZSl9fSkpLHtkaXNwb3NlOmZ1bmN0aW9uKCl7fX19LFtFLE8sdCxSLGVlLHksbi5uYW1lLGwsQ10pLHosSV19dC5leHBvcnRzPXl9KSksd2g9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEpkKCkpLGk9U2goKSxhPV9oKCksbz1jaCgpLHM9Q2goKSxjPWxuZSgpLGw9cmgoKSx1PUZkKCksZD1UdSgpLGY9ZC51c2VDYWxsYmFjayxwPWQudXNlRWZmZWN0LG09ZC51c2VTdGF0ZSxoPXFwKCksZz1oLl9faW50ZXJuYWwuZmV0Y2hRdWVyeSxfPWguUmVsYXlGZWF0dXJlRmxhZ3Msdj1oLmNyZWF0ZU9wZXJhdGlvbkRlc2NyaXB0b3IseT1oLmdldFBhZ2luYXRpb25WYXJpYWJsZXMsYj1oLmdldFJlZmV0Y2hNZXRhZGF0YSx4PWguZ2V0U2VsZWN0b3I7TGQoKTtmdW5jdGlvbiBTKGUpe3JldHVybiBfLkVOQUJMRV9BQ1RJVklUWV9DT01QQVRJQklMSVRZP2MoZSk6QyhlKX1mdW5jdGlvbiBDKGUpe3ZhciB0PWUuZGlyZWN0aW9uLG49ZS5mcmFnbWVudE5vZGUsYz1lLmZyYWdtZW50UmVmLGQ9ZS5mcmFnbWVudElkZW50aWZpZXIsaD1lLmZyYWdtZW50RGF0YSxfPWUuY29ubmVjdGlvblBhdGhJbkZyYWdtZW50RGF0YSxTPWUucGFnaW5hdGlvblJlcXVlc3QsQz1lLnBhZ2luYXRpb25NZXRhZGF0YSx3PWUuY29tcG9uZW50RGlzcGxheU5hbWUsVD1lLm9ic2VydmVyLEU9ZS5vblJlc2V0LEQ9bCgpLE89YSgpLGs9Ty5pc0ZldGNoaW5nUmVmLEE9Ty5zdGFydEZldGNoLGo9Ty5kaXNwb3NlRmV0Y2gsTT1PLmNvbXBsZXRlRmV0Y2gsTj1iKG4sdykuaWRlbnRpZmllckluZm8sUD0oTj09bnVsbD92b2lkIDA6Ti5pZGVudGlmaWVyRmllbGQpIT1udWxsJiZ0eXBlb2YgaD09YG9iamVjdGAmJmg/aFtOLmlkZW50aWZpZXJGaWVsZF06bnVsbCxGPW8oKSxlZT1tKEQpLEk9ZWVbMF0sTD1lZVsxXSxSPW0oZCksej1SWzBdLHRlPVJbMV0sbmU9cyhuLGMpOyhEIT09SXx8ZCE9PXopJiYoaigpLEUoKSxMKEQpLHRlKGQpKTt2YXIgcmU9aSh0LG4saCxfKSxpZT1yZS5jdXJzb3IsYWU9cmUuaGFzTW9yZTtyZXR1cm4gcChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe2ooKX19LFtqXSksW2YoZnVuY3Rpb24oZSxpKXt2YXIgYT1pPT1udWxsP3ZvaWQgMDppLm9uQ29tcGxldGU7aWYoRi5jdXJyZW50IT09ITApcmV0dXJue2Rpc3Bvc2U6ZnVuY3Rpb24oKXt9fTt2YXIgbz14KG4sYyk7aWYoay5jdXJyZW50PT09ITB8fGg9PW51bGx8fG5lKXJldHVybiBhJiZhKG51bGwpLHtkaXNwb3NlOmZ1bmN0aW9uKCl7fX07IShvIT1udWxsJiZvLmtpbmQhPT1gUGx1cmFsUmVhZGVyU2VsZWN0b3JgKSYmdSghMSk7dmFyIHM9by5vd25lci52YXJpYWJsZXMsbD1vLnZhcmlhYmxlcyxkPWk9PW51bGw/dm9pZCAwOmkuVU5TVEFCTEVfZXh0cmFWYXJpYWJsZXMsZj15KHQsZSxpZSwoMCxyLmRlZmF1bHQpKCgwLHIuZGVmYXVsdCkoe30scyksbCksKDAsci5kZWZhdWx0KSh7fSxkKSxDKTtyZXR1cm4gTiE9bnVsbCYmKGZbTi5pZGVudGlmaWVyUXVlcnlWYXJpYWJsZU5hbWVdPVApLGcoRCx2KFMsZix7Zm9yY2U6ITB9KSkuc3Vic2NyaWJlKCgwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSxUKSx7fSx7c3RhcnQ6ZnVuY3Rpb24oZSl7QShlKSxULnN0YXJ0JiZULnN0YXJ0KGUpfSxjb21wbGV0ZTpmdW5jdGlvbigpe00oKSxULmNvbXBsZXRlJiZULmNvbXBsZXRlKCksYSYmYShudWxsKX0sZXJyb3I6ZnVuY3Rpb24oZSl7TSgpLFQuZXJyb3ImJlQuZXJyb3IoZSksYSYmYShlKX19KSkse2Rpc3Bvc2U6an19LFtELFAsdCxpZSxBLGosTSxrLG5lLGgsbi5uYW1lLGMsd10pLGFlLGpdfXQuZXhwb3J0cz1TfSkpLHVuZT1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSmQoKSksaT1uKEhkKCkpLGE9ZmgoKS5nZXRRdWVyeVJlc291cmNlRm9yRW52aXJvbm1lbnQsbz1GZCgpLHM9cXAoKSxjPXMuX19pbnRlcm5hbC5mZXRjaFF1ZXJ5LGw9cy5SZWxheUZlYXR1cmVGbGFncyx1PXMuY3JlYXRlT3BlcmF0aW9uRGVzY3JpcHRvcixkPXMuZ2V0UGVuZGluZ09wZXJhdGlvbnNGb3JGcmFnbWVudCxmPXMuZ2V0U2VsZWN0b3IscD1zLmdldFZhcmlhYmxlc0Zyb21GcmFnbWVudCxtPXMuaGFuZGxlUG90ZW50aWFsU25hcHNob3RFcnJvcnM7TGQoKTtmdW5jdGlvbiBoKGUpe3JldHVybiBlLmtpbmQ9PT1gYmFpbG91dGA/ITE6ZS5raW5kPT09YHNpbmd1bGFyYD9lLnNuYXBzaG90LmlzTWlzc2luZ0RhdGE6ZS5zbmFwc2hvdHMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pc01pc3NpbmdEYXRhfSl9ZnVuY3Rpb24gZyhlKXtpZihlLmtpbmQ9PT1gYmFpbG91dGApcmV0dXJuIG51bGw7aWYoZS5raW5kPT09YHNpbmd1bGFyYClyZXR1cm4gZS5zbmFwc2hvdC5taXNzaW5nQ2xpZW50RWRnZXM/P251bGw7dmFyIHQ9bnVsbCxuPSgwLGkuZGVmYXVsdCkoZS5zbmFwc2hvdHMpLHI7dHJ5e2ZvcihuLnMoKTshKHI9bi5uKCkpLmRvbmU7KXt2YXIgYT1yLnZhbHVlO2lmKGEubWlzc2luZ0NsaWVudEVkZ2VzKXt0PXQ/P1tdO3ZhciBvPSgwLGkuZGVmYXVsdCkoYS5taXNzaW5nQ2xpZW50RWRnZXMpLHM7dHJ5e2ZvcihvLnMoKTshKHM9by5uKCkpLmRvbmU7KXt2YXIgYz1zLnZhbHVlO3QucHVzaChjKX19Y2F0Y2goZSl7by5lKGUpfWZpbmFsbHl7by5mKCl9fX19Y2F0Y2goZSl7bi5lKGUpfWZpbmFsbHl7bi5mKCl9cmV0dXJuIHR9ZnVuY3Rpb24gXyhlLHQpe2lmKHQua2luZD09PWBzaW5ndWxhcmApbShlLHQuc25hcHNob3QuZXJyb3JSZXNwb25zZUZpZWxkcyk7ZWxzZSBpZih0LmtpbmQ9PT1gcGx1cmFsYCl7dmFyIG49KDAsaS5kZWZhdWx0KSh0LnNuYXBzaG90cykscjt0cnl7Zm9yKG4ucygpOyEocj1uLm4oKSkuZG9uZTspe3ZhciBhPXIudmFsdWU7bShlLGEuZXJyb3JSZXNwb25zZUZpZWxkcyl9fWNhdGNoKGUpe24uZShlKX1maW5hbGx5e24uZigpfX19ZnVuY3Rpb24gdihlLHQsbixpLG8pe3ZhciBzPXAodCxuKSxsPSgwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSxzKSx7fSx7aWQ6aS5jbGllbnRFZGdlRGVzdGluYXRpb25JRH0pLGQ9dShpLnJlcXVlc3QsbCxvPT1udWxsP3ZvaWQgMDpvLm5ldHdvcmtDYWNoZUNvbmZpZyk7cmV0dXJuIGEoZSkucHJlcGFyZShkLGMoZSxkKSxvPT1udWxsP3ZvaWQgMDpvLmZldGNoUG9saWN5KX1mdW5jdGlvbiB5KGUsdCl7cmV0dXJuIHQ9PW51bGw/e2tpbmQ6YGJhaWxvdXRgfTp0LmtpbmQ9PT1gUGx1cmFsUmVhZGVyU2VsZWN0b3JgP3Quc2VsZWN0b3JzLmxlbmd0aD09PTA/e2tpbmQ6YGJhaWxvdXRgfTp7a2luZDpgcGx1cmFsYCxzbmFwc2hvdHM6dC5zZWxlY3RvcnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlLmxvb2t1cCh0KX0pLGVwb2NoOmUuZ2V0U3RvcmUoKS5nZXRFcG9jaCgpfTp7a2luZDpgc2luZ3VsYXJgLHNuYXBzaG90OmUubG9va3VwKHQpLGVwb2NoOmUuZ2V0U3RvcmUoKS5nZXRFcG9jaCgpfX1mdW5jdGlvbiBiKGUsdCxuLHIsYSxzKXt2YXIgYyx1LHA9Zih0LG4pLG09KHQ9PW51bGx8fChjPXQubWV0YWRhdGEpPT1udWxsP3ZvaWQgMDpjLnBsdXJhbCk9PT0hMDttPyEobj09bnVsbHx8QXJyYXkuaXNBcnJheShuKSkmJm8oITEpOkFycmF5LmlzQXJyYXkobikmJm8oITEpLCEobj09bnVsbHx8bSYmQXJyYXkuaXNBcnJheShuKSYmbi5sZW5ndGg9PT0wfHxwIT1udWxsKSYmbyghMSk7dmFyIGI9eShlLHApLHg9bnVsbDtpZigoKHU9dC5tZXRhZGF0YSk9PW51bGw/dm9pZCAwOnUuaGFzQ2xpZW50RWRnZXMpPT09ITApe3ZhciBTPWcoYik7aWYoUyE9bnVsbCYmUy5sZW5ndGgpe3g9W107dmFyIEM9KDAsaS5kZWZhdWx0KShTKSx3O3RyeXtmb3IoQy5zKCk7ISh3PUMubigpKS5kb25lOyl7dmFyIFQ9dy52YWx1ZTt4LnB1c2godihlLHQsbixULGEpKX19Y2F0Y2goZSl7Qy5lKGUpfWZpbmFsbHl7Qy5mKCl9fX1pZihoKGIpKXtwPz9vKCExKTt2YXIgRT1kKGUsdCxwLmtpbmQ9PT1gUGx1cmFsUmVhZGVyU2VsZWN0b3JgP3Auc2VsZWN0b3JzWzBdLm93bmVyOnAub3duZXIpO2lmKEUpdGhyb3cgRS5wcm9taXNlO18oZSxiKX12YXIgRD1iLmtpbmQ9PT1gYmFpbG91dGA/bT9bXTpudWxsOmIua2luZD09PWBzaW5ndWxhcmA/Yi5zbmFwc2hvdC5kYXRhOmIuc25hcHNob3RzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5kYXRhfSk7cmV0dXJuIGwuTE9HX01JU1NJTkdfUkVDT1JEU19JTl9QUk9EJiZuIT1udWxsJiYoRD09PXZvaWQgMHx8QXJyYXkuaXNBcnJheShEKSYmRC5sZW5ndGg+MCYmRC5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm4gZT09PXZvaWQgMH0pKSx7ZGF0YTpELGNsaWVudEVkZ2VRdWVyaWVzOnh9fXQuZXhwb3J0cz1ifSkpLGRuZT1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSGQoKSksaT1haCgpLmxvYWRRdWVyeSxhPWNoKCksbz1yaCgpLHM9VHUoKSxjPXMudXNlQ2FsbGJhY2ssbD1zLnVzZUVmZmVjdCx1PXMudXNlSW5zZXJ0aW9uRWZmZWN0LGQ9cy51c2VSZWYsZj1zLnVzZVN0YXRlLHA9cXAoKS5nZXRSZXF1ZXN0LG09e2tpbmQ6YE51bGxRdWVyeVJlZmVyZW5jZWB9O2Z1bmN0aW9uIGgoZSl7cmV0dXJuIGUua2luZD09PWBQcmVsb2FkYWJsZUNvbmNyZXRlUmVxdWVzdGA/ZS5wYXJhbXMubWV0YWRhdGEubGl2ZSE9PXZvaWQgMDpwKGUpLnBhcmFtcy5tZXRhZGF0YS5saXZlIT09dm9pZCAwfXZhciBnPTFlMyo2MCo1O2Z1bmN0aW9uIF8oZSx0KXt2YXIgbj10Pz9tLHM9bygpLHA9YSgpLF89ZChudWxsKTtfLmN1cnJlbnQ/PyhfLmN1cnJlbnQ9bmV3IFNldChbbl0pKTt2YXIgdj1mKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSx5PXZbMF0sYj12WzFdLHg9ZihmdW5jdGlvbigpe3JldHVybiBufSksUz14WzBdLEM9eFsxXTtpZihuIT09Uyl7dmFyIHc7KHc9Xy5jdXJyZW50KT09bnVsbHx8dy5hZGQobiksQyhuKSxiKG4pfXZhciBUPWMoZnVuY3Rpb24oKXtpZihwLmN1cnJlbnQpe3ZhciBlOyhlPV8uY3VycmVudCk9PW51bGx8fGUuYWRkKG0pLGIobSl9fSxbcF0pLEU9YyhmdW5jdGlvbih0LG4pe3ZhciByO2lmKHAuY3VycmVudCl7dmFyIGE9biE9bnVsbCYmbi5oYXNPd25Qcm9wZXJ0eShgX19lbnZpcm9ubWVudGApP3tmZXRjaFBvbGljeTpuLmZldGNoUG9saWN5LG5ldHdvcmtDYWNoZUNvbmZpZzpuLm5ldHdvcmtDYWNoZUNvbmZpZyxfX25hbWVGb3JXYXJuaW5nOm4uX19uYW1lRm9yV2FybmluZ306bixvPWkoKG49PW51bGw/dm9pZCAwOm4uX19lbnZpcm9ubWVudCk/P3MsZSx0LGEpOyhyPV8uY3VycmVudCk9PW51bGx8fHIuYWRkKG8pLGIobyl9fSxbcyxlLGIscF0pLEQ9YyhmdW5jdGlvbihlLHQpe3ZhciBuPV8uY3VycmVudD8/bmV3IFNldCxpPSgwLHIuZGVmYXVsdCkobiksYTt0cnl7Zm9yKGkucygpOyEoYT1pLm4oKSkuZG9uZTspe3ZhciBvPWEudmFsdWU7byE9PXQmJm8ua2luZCE9PWBOdWxsUXVlcnlSZWZlcmVuY2VgJiYoaChlKT9vLmRpc3Bvc2UmJm8uZGlzcG9zZSgpOm8ucmVsZWFzZVF1ZXJ5JiZvLnJlbGVhc2VRdWVyeSgpKX19Y2F0Y2goZSl7aS5lKGUpfWZpbmFsbHl7aS5mKCl9fSxbXSksTz1kKG51bGwpO3JldHVybiBsKGZ1bmN0aW9uKCl7cmV0dXJuIEQoZSx5KSxPLmN1cnJlbnQhPW51bGwmJihjbGVhclRpbWVvdXQoTy5jdXJyZW50KSxPLmN1cnJlbnQ9bnVsbCksZnVuY3Rpb24oKXtPLmN1cnJlbnQ9c2V0VGltZW91dChmdW5jdGlvbigpe0QoZSxudWxsKX0sZyl9fSxbZSx5XSksdShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe08uY3VycmVudCYmY2xlYXJUaW1lb3V0KE8uY3VycmVudCksTy5jdXJyZW50PW51bGwsRChlLG51bGwpfX0sW2VdKSxbeS5raW5kPT09YE51bGxRdWVyeVJlZmVyZW5jZWA/bnVsbDp5LEUsVF19dC5leHBvcnRzPV99KSksVGg9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEhkKCkpLGk9YWgoKS5sb2FkUXVlcnksYT1jaCgpLG89ZG5lKCkscz1yaCgpLGM9VHUoKSxsPWMudXNlQ2FsbGJhY2ssdT1jLnVzZUVmZmVjdCxkPWMudXNlUmVmLGY9Yy51c2VTdGF0ZSxwPXFwKCksbT1wLlJlbGF5RmVhdHVyZUZsYWdzLGg9cC5nZXRSZXF1ZXN0LGc9e2tpbmQ6YE51bGxRdWVyeVJlZmVyZW5jZWB9O2Z1bmN0aW9uIF8oZSl7cmV0dXJuIGUua2luZD09PWBQcmVsb2FkYWJsZUNvbmNyZXRlUmVxdWVzdGA/ZS5wYXJhbXMubWV0YWRhdGEubGl2ZSE9PXZvaWQgMDpoKGUpLnBhcmFtcy5tZXRhZGF0YS5saXZlIT09dm9pZCAwfWZ1bmN0aW9uIHYoZSx0KXtyZXR1cm4gbS5FTkFCTEVfQUNUSVZJVFlfQ09NUEFUSUJJTElUWT9vKGUsdCk6eShlLHQpfWZ1bmN0aW9uIHkoZSx0KXt2YXIgbj10Pz9nLG89cygpLGM9YSgpLHA9ZChuZXcgU2V0KFtuXSkpLG09ZihmdW5jdGlvbigpe3JldHVybiBufSksaD1tWzBdLHY9bVsxXSx5PWYoZnVuY3Rpb24oKXtyZXR1cm4gbn0pLGI9eVswXSx4PXlbMV07biE9PWImJihwLmN1cnJlbnQuYWRkKG4pLHgobiksdihuKSk7dmFyIFM9bChmdW5jdGlvbigpe2MuY3VycmVudCYmKHAuY3VycmVudC5hZGQoZyksdihnKSl9LFtjXSksQz1sKGZ1bmN0aW9uKHQsbil7dmFyIHI9biE9bnVsbCYmbi5oYXNPd25Qcm9wZXJ0eShgX19lbnZpcm9ubWVudGApP3tmZXRjaFBvbGljeTpuLmZldGNoUG9saWN5LG5ldHdvcmtDYWNoZUNvbmZpZzpuLm5ldHdvcmtDYWNoZUNvbmZpZyxfX25hbWVGb3JXYXJuaW5nOm4uX19uYW1lRm9yV2FybmluZ306bjtpZihjLmN1cnJlbnQpe3ZhciBhPWkoKG49PW51bGw/dm9pZCAwOm4uX19lbnZpcm9ubWVudCk/P28sZSx0LHIpO3AuY3VycmVudC5hZGQoYSksdihhKX19LFtvLGUsdixjXSksdz1kKCExKTtyZXR1cm4gdShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3cuY3VycmVudD0hMH19LFtdKSx1KGZ1bmN0aW9uKCl7aWYody5jdXJyZW50PT09ITApe3cuY3VycmVudD0hMSxoLmtpbmQhPT1gTnVsbFF1ZXJ5UmVmZXJlbmNlYCYmQyhoLnZhcmlhYmxlcyx7ZmV0Y2hQb2xpY3k6aC5mZXRjaFBvbGljeSxuZXR3b3JrQ2FjaGVDb25maWc6aC5uZXR3b3JrQ2FjaGVDb25maWd9KTtyZXR1cm59dmFyIHQ9cC5jdXJyZW50O2lmKGMuY3VycmVudCl7dmFyIG49KDAsci5kZWZhdWx0KSh0KSxpO3RyeXtmb3Iobi5zKCk7IShpPW4ubigpKS5kb25lOyl7dmFyIGE9aS52YWx1ZTtpZihhPT09aClicmVhazt0LmRlbGV0ZShhKSxhLmtpbmQhPT1gTnVsbFF1ZXJ5UmVmZXJlbmNlYCYmKF8oZSk/YS5kaXNwb3NlJiZhLmRpc3Bvc2UoKTphLnJlbGVhc2VRdWVyeSYmYS5yZWxlYXNlUXVlcnkoKSl9fWNhdGNoKGUpe24uZShlKX1maW5hbGx5e24uZigpfX19LFtoLGMsQyxlXSksdShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PSgwLHIuZGVmYXVsdCkocC5jdXJyZW50KSxuO3RyeXtmb3IodC5zKCk7IShuPXQubigpKS5kb25lOyl7dmFyIGk9bi52YWx1ZTtpLmtpbmQhPT1gTnVsbFF1ZXJ5UmVmZXJlbmNlYCYmKF8oZSk/aS5kaXNwb3NlJiZpLmRpc3Bvc2UoKTppLnJlbGVhc2VRdWVyeSYmaS5yZWxlYXNlUXVlcnkoKSl9fWNhdGNoKGUpe3QuZShlKX1maW5hbGx5e3QuZigpfX19LFtlXSksW2gua2luZD09PWBOdWxsUXVlcnlSZWZlcmVuY2VgP251bGw6aCxDLFNdfXQuZXhwb3J0cz12fSkpLEVoPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihKZCgpKSxpPXRoKCksYT1maCgpLmdldFF1ZXJ5UmVzb3VyY2VGb3JFbnZpcm9ubWVudCxvPXVuZSgpLHM9cGgoKSxjPWNoKCksbD1UaCgpLHU9cmgoKSxkPUZkKCksZj1UdSgpLHA9Zi51c2VDYWxsYmFjayxtPWYudXNlQ29udGV4dCxoPWYudXNlUmVkdWNlcixnPXFwKCksXz1nLl9faW50ZXJuYWwuZmV0Y2hRdWVyeSx2PWcuY3JlYXRlT3BlcmF0aW9uRGVzY3JpcHRvcix5PWcuZ2V0RnJhZ21lbnRJZGVudGlmaWVyLGI9Zy5nZXRSZWZldGNoTWV0YWRhdGEseD1nLmdldFNlbGVjdG9yLFM9Zy5nZXRWYWx1ZUF0UGF0aDtMZCgpO2Z1bmN0aW9uIEMoZSx0KXtzd2l0Y2godC50eXBlKXtjYXNlYHJlZmV0Y2hgOnJldHVybigwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSxlKSx7fSx7ZmV0Y2hQb2xpY3k6dC5mZXRjaFBvbGljeSxtaXJyb3JlZEVudmlyb25tZW50OnQucmVmZXRjaEVudmlyb25tZW50Pz9lLm1pcnJvcmVkRW52aXJvbm1lbnQsb25Db21wbGV0ZTp0Lm9uQ29tcGxldGUscmVmZXRjaEVudmlyb25tZW50OnQucmVmZXRjaEVudmlyb25tZW50LHJlZmV0Y2hRdWVyeTp0LnJlZmV0Y2hRdWVyeSxyZW5kZXJQb2xpY3k6dC5yZW5kZXJQb2xpY3l9KTtjYXNlYHJlc2V0YDpyZXR1cm57ZmV0Y2hQb2xpY3k6dm9pZCAwLG1pcnJvcmVkRW52aXJvbm1lbnQ6dC5lbnZpcm9ubWVudCxtaXJyb3JlZEZyYWdtZW50SWRlbnRpZmllcjp0LmZyYWdtZW50SWRlbnRpZmllcixvbkNvbXBsZXRlOnZvaWQgMCxyZWZldGNoUXVlcnk6bnVsbCxyZW5kZXJQb2xpY3k6dm9pZCAwfTtkZWZhdWx0OnRocm93IHQudHlwZSxFcnJvcihgdXNlUmVmZXRjaGFibGVGcmFnbWVudE5vZGU6IFVuZXhwZWN0ZWQgYWN0aW9uIHR5cGVgKX19ZnVuY3Rpb24gdyhlLHQsbil7dmFyIHI9dSgpLGM9YihlLG4pLGY9Yy5yZWZldGNoYWJsZVJlcXVlc3QscD1jLmZyYWdtZW50UmVmUGF0aEluUmVzcG9uc2UsZz1jLmlkZW50aWZpZXJJbmZvLHY9eShlLHQpLHg9aChDLHtmZXRjaFBvbGljeTp2b2lkIDAsbWlycm9yZWRFbnZpcm9ubWVudDpyLG1pcnJvcmVkRnJhZ21lbnRJZGVudGlmaWVyOnYsb25Db21wbGV0ZTp2b2lkIDAscmVmZXRjaEVudmlyb25tZW50Om51bGwscmVmZXRjaFF1ZXJ5Om51bGwscmVuZGVyUG9saWN5OnZvaWQgMH0pLHc9eFswXSxFPXhbMV0sRD13LmZldGNoUG9saWN5LE89dy5taXJyb3JlZEVudmlyb25tZW50LGs9dy5taXJyb3JlZEZyYWdtZW50SWRlbnRpZmllcixBPXcub25Db21wbGV0ZSxqPXcucmVmZXRjaEVudmlyb25tZW50LE09dy5yZWZldGNoUXVlcnksTj13LnJlbmRlclBvbGljeSxQPWo/P3IsRj1hKFApLGVlPW0oaSksST1QIT09T3x8diE9PWssTD1sKGYpLFI9TFswXSx6PUxbMV0sdGU9TFsyXSxuZT10O2lmKEkpRSh7dHlwZTpgcmVzZXRgLGVudmlyb25tZW50OlAsZnJhZ21lbnRJZGVudGlmaWVyOnZ9KSx0ZSgpO2Vsc2UgaWYoTSE9bnVsbCYmUiE9bnVsbCl7dmFyIHJlPWZ1bmN0aW9uKGUpe0EmJkEoZT8/bnVsbCl9LGllPVIuc291cmNlPT1udWxsP18oUCxNKTpSLnNvdXJjZSxhZT1lZS53cmFwUHJlcGFyZVF1ZXJ5UmVzb3VyY2UoZnVuY3Rpb24oKXtyZXR1cm4gRi5wcmVwYXJlKE0saWUsRCxOLHtlcnJvcjpyZSxjb21wbGV0ZTpmdW5jdGlvbigpe3JlKCl9fSxSLmZldGNoS2V5LGVlKX0pLG9lPW8oUCxhZS5mcmFnbWVudE5vZGUsYWUuZnJhZ21lbnRSZWYsbikuZGF0YTtvZT8/ZCghMSksbmU9UyhvZSxwKX12YXIgc2U9cyhlLG5lLG4pLGNlPVQobixFLHRlLHNlLHYsZSxwLGcseix0LGYpO3JldHVybntmcmFnbWVudERhdGE6c2UsZnJhZ21lbnRSZWY6bmUscmVmZXRjaDpjZX19ZnVuY3Rpb24gVChlLHQsbixpLGEsbyxzLGwsdSxkLGYpe3ZhciBtPWMoKSxoPShsPT1udWxsP3ZvaWQgMDpsLmlkZW50aWZpZXJGaWVsZCkhPW51bGwmJnR5cGVvZiBpPT1gb2JqZWN0YCYmaT9pW2wuaWRlbnRpZmllckZpZWxkXTpudWxsO3JldHVybiBwKGZ1bmN0aW9uKGUsaSl7aWYobS5jdXJyZW50IT09ITApcmV0dXJue2Rpc3Bvc2U6ZnVuY3Rpb24oKXt9fTt2YXIgYT1pPT1udWxsP3ZvaWQgMDppLl9fZW52aXJvbm1lbnQscz1pPT1udWxsP3ZvaWQgMDppLmZldGNoUG9saWN5LGM9aT09bnVsbD92b2lkIDA6aS5VTlNUQUJMRV9yZW5kZXJQb2xpY3kscD1pPT1udWxsP3ZvaWQgMDppLm9uQ29tcGxldGUsZz14KG8sZCksXyx5O2lmKGc9PW51bGwpXz17fSx5PXt9O2Vsc2UgaWYoZy5raW5kPT09YFBsdXJhbFJlYWRlclNlbGVjdG9yYCl7dmFyIGIsUztfPSgoYj1nLnNlbGVjdG9yc1swXSk9PW51bGw/dm9pZCAwOmIub3duZXIudmFyaWFibGVzKT8/e30seT0oKFM9Zy5zZWxlY3RvcnNbMF0pPT1udWxsP3ZvaWQgMDpTLnZhcmlhYmxlcyk/P3t9fWVsc2UgXz1nLm93bmVyLnZhcmlhYmxlcyx5PWcudmFyaWFibGVzO3ZhciBDPSgwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSgoMCxyLmRlZmF1bHQpKHt9LF8pLHkpLGUpO2whPW51bGwmJiFlLmhhc093blByb3BlcnR5KGwuaWRlbnRpZmllclF1ZXJ5VmFyaWFibGVOYW1lKSYmKENbbC5pZGVudGlmaWVyUXVlcnlWYXJpYWJsZU5hbWVdPWgpO3ZhciB3PXYoZixDLHtmb3JjZTohMH0pO3JldHVybiB1KHcucmVxdWVzdC52YXJpYWJsZXMse2ZldGNoUG9saWN5OnMsX19lbnZpcm9ubWVudDphLF9fbmFtZUZvcldhcm5pbmc6YHJlZmV0Y2hgfSksdCh7dHlwZTpgcmVmZXRjaGAsZmV0Y2hQb2xpY3k6cyxvbkNvbXBsZXRlOnAscmVmZXRjaEVudmlyb25tZW50OmEscmVmZXRjaFF1ZXJ5OncscmVuZGVyUG9saWN5OmN9KSx7ZGlzcG9zZTpufX0sW2EsdCxuLGgsdV0pfXQuZXhwb3J0cz13fSkpLERoPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihKZCgpKSxpPXdoKCksYT1FaCgpLG89cmgoKSxzPWhoKCksYz1UdSgpLGw9Yy51c2VDYWxsYmFjaztjLnVzZURlYnVnVmFsdWU7dmFyIHU9Yy51c2VTdGF0ZSxkPXFwKCksZj1kLmdldEZyYWdtZW50LHA9ZC5nZXRGcmFnbWVudElkZW50aWZpZXIsbT1kLmdldFBhZ2luYXRpb25NZXRhZGF0YTtmdW5jdGlvbiBoKGUsdCl7dmFyIG49ZihlKTtzKG4sYGZpcnN0IGFyZ3VtZW50IG9mIHVzZVBhZ2luYXRpb25GcmFnbWVudCgpYCk7dmFyIGk9YHVzZVBhZ2luYXRpb25GcmFnbWVudCgpYCxvPW0obixpKSxjPW8uY29ubmVjdGlvblBhdGhJbkZyYWdtZW50RGF0YSx1PW8ucGFnaW5hdGlvblJlcXVlc3QsZD1vLnBhZ2luYXRpb25NZXRhZGF0YSxoPWEobix0LGkpLF89aC5mcmFnbWVudERhdGEsdj1oLmZyYWdtZW50UmVmLHk9aC5yZWZldGNoLGI9cChuLHYpLHg9Zyh7Y29tcG9uZW50RGlzcGxheU5hbWU6aSxjb25uZWN0aW9uUGF0aEluRnJhZ21lbnREYXRhOmMsZGlyZWN0aW9uOmBiYWNrd2FyZGAsZnJhZ21lbnREYXRhOl8sZnJhZ21lbnRJZGVudGlmaWVyOmIsZnJhZ21lbnROb2RlOm4sZnJhZ21lbnRSZWY6dixwYWdpbmF0aW9uTWV0YWRhdGE6ZCxwYWdpbmF0aW9uUmVxdWVzdDp1fSksUz14WzBdLEM9eFsxXSx3PXhbMl0sVD14WzNdLEU9Zyh7Y29tcG9uZW50RGlzcGxheU5hbWU6aSxjb25uZWN0aW9uUGF0aEluRnJhZ21lbnREYXRhOmMsZGlyZWN0aW9uOmBmb3J3YXJkYCxmcmFnbWVudERhdGE6XyxmcmFnbWVudElkZW50aWZpZXI6YixmcmFnbWVudE5vZGU6bixmcmFnbWVudFJlZjp2LHBhZ2luYXRpb25NZXRhZGF0YTpkLHBhZ2luYXRpb25SZXF1ZXN0OnV9KSxEPUVbMF0sTz1FWzFdLGs9RVsyXSxBPUVbM107cmV0dXJue2RhdGE6Xyxsb2FkTmV4dDpELGxvYWRQcmV2aW91czpTLGhhc05leHQ6TyxoYXNQcmV2aW91czpDLGlzTG9hZGluZ05leHQ6ayxpc0xvYWRpbmdQcmV2aW91czp3LHJlZmV0Y2g6bChmdW5jdGlvbihlLHQpe3JldHVybiBBKCksVCgpLHkoZSwoMCxyLmRlZmF1bHQpKCgwLHIuZGVmYXVsdCkoe30sdCkse30se19fZW52aXJvbm1lbnQ6dm9pZCAwfSkpfSxbQSxULHldKX19ZnVuY3Rpb24gZyhlKXt2YXIgdD1vKCksbj11KCExKSxhPW5bMF0scz1uWzFdLGM9ZnVuY3Rpb24oZSl7dmFyIG4scj0obj10LmdldFNjaGVkdWxlcigpKT09bnVsbD92b2lkIDA6bi5zY2hlZHVsZTtyP3IoZnVuY3Rpb24oKXtzKGUpfSk6cyhlKX0sbD1pKCgwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSxlKSx7fSx7b2JzZXJ2ZXI6e3N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIGMoITApfSxjb21wbGV0ZTpmdW5jdGlvbigpe3JldHVybiBjKCExKX0sZXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gYyghMSl9fSxvblJlc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMoITEpfX0pKTtyZXR1cm5bbFswXSxsWzFdLGEsbFsyXV19dC5leHBvcnRzPWh9KSksT2g9cygoKGUsdCk9Pnt2YXIgbj12aCgpLHI9eWgoKSxpPXJoKCksYT1GZCgpO1R1KCkudXNlRGVidWdWYWx1ZTt2YXIgbz1xcCgpLl9faW50ZXJuYWwscz1vLmZldGNoUXVlcnlEZWR1cGVkLGM9by5mZXRjaFF1ZXJ5O0xkKCk7ZnVuY3Rpb24gbChlLHQsbyl7dmFyIGw9aSgpLHU9dC5mZXRjaEtleSxkPXQuZmV0Y2hQb2xpY3ksZj10LnNvdXJjZSxwPXQudmFyaWFibGVzLG09dC5uZXR3b3JrQ2FjaGVDb25maWcsaD1yKGUscCxtKSxnO2lmKHQua2luZD09PWBQcmVsb2FkZWRRdWVyeV9ERVBSRUNBVEVEYCloLnJlcXVlc3Qubm9kZS5wYXJhbXMubmFtZSE9PXQubmFtZSYmYSghMSksZz17Y29tcG9uZW50RGlzcGxheU5hbWU6YHVzZVByZWxvYWRlZFF1ZXJ5KClgLGZldGNoS2V5OnUsZmV0Y2hPYnNlcnZhYmxlOnMobCxoLnJlcXVlc3QuaWRlbnRpZmllcixmdW5jdGlvbigpe3JldHVybiBsPT09dC5lbnZpcm9ubWVudCYmZiE9bnVsbD9sLmV4ZWN1dGVXaXRoU291cmNlKHtvcGVyYXRpb246aCxzb3VyY2U6Zn0pOmwuZXhlY3V0ZSh7b3BlcmF0aW9uOmh9KX0pLGZldGNoUG9saWN5OmQscXVlcnk6aCxyZW5kZXJQb2xpY3k6bz09bnVsbD92b2lkIDA6by5VTlNUQUJMRV9yZW5kZXJQb2xpY3l9O2Vsc2V7dmFyIF89YyhsLGgpO2c9e2NvbXBvbmVudERpc3BsYXlOYW1lOmB1c2VQcmVsb2FkZWRRdWVyeSgpYCxmZXRjaE9ic2VydmFibGU6ZiE9bnVsbCYmbD09PXQuZW52aXJvbm1lbnQ/Zi5pZkVtcHR5KF8pOih0LmVudmlyb25tZW50LF8pLGZldGNoS2V5OnUsZmV0Y2hQb2xpY3k6ZCxxdWVyeTpoLHJlbmRlclBvbGljeTpvPT1udWxsP3ZvaWQgMDpvLlVOU1RBQkxFX3JlbmRlclBvbGljeX19cmV0dXJuIG4oZyl9dC5leHBvcnRzPWx9KSksa2g9cygoKGUsdCk9Pnt2YXIgbj1FaCgpLHI9aGgoKTtUdSgpLnVzZURlYnVnVmFsdWU7dmFyIGk9cXAoKS5nZXRGcmFnbWVudDtmdW5jdGlvbiBhKGUsdCl7dmFyIGE9aShlKTtyKGEsYGZpcnN0IGFyZ3VtZW50IG9mIHVzZVJlZmV0Y2hhYmxlRnJhZ21lbnQoKWApO3ZhciBvPW4oYSx0LGB1c2VSZWZldGNoYWJsZUZyYWdtZW50KClgKTtyZXR1cm5bby5mcmFnbWVudERhdGEsby5yZWZldGNoXX10LmV4cG9ydHM9YX0pKSxBaD1zKCgoZSx0KT0+e3ZhciBuPXJoKCkscj1UdSgpLGk9ci51c2VFZmZlY3QsYT1yLnVzZVJlZjtmdW5jdGlvbiBvKGUsdCl7dmFyIHI9bigpLG89YShudWxsKTtyZXR1cm4gaShmdW5jdGlvbigpe3ZhciBuPXIuZ2V0U3RvcmUoKSxpPW4ubG9va3VwSW52YWxpZGF0aW9uU3RhdGUoZSksYT1uLnN1YnNjcmliZVRvSW52YWxpZGF0aW9uU3RhdGUoaSx0KTtyZXR1cm4gby5jdXJyZW50PWEsZnVuY3Rpb24oKXtyZXR1cm4gYS5kaXNwb3NlKCl9fSxbQXJyYXkuZnJvbShlKS5zb3J0KCkuam9pbihgYCksdCxyXSkse2Rpc3Bvc2U6ZnVuY3Rpb24oKXtvLmN1cnJlbnQhPW51bGwmJm8uY3VycmVudC5kaXNwb3NlKCl9fX10LmV4cG9ydHM9b30pKSxqaD1zKCgoZSx0KT0+e3ZhciBuPXJoKCkscj1UdSgpLnVzZUVmZmVjdCxpPXFwKCkucmVxdWVzdFN1YnNjcmlwdGlvbjtmdW5jdGlvbiBhKGUsdCl7dmFyIGE9dD8/aSxvPW4oKTtyKGZ1bmN0aW9uKCl7cmV0dXJuIGEobyxlKS5kaXNwb3NlfSxbbyxlLGFdKX10LmV4cG9ydHM9YX0pKSxmbmU9cygoKGUsdCk9Pnt2YXIgbj1paCgpLHI9b2goKSxpPWFoKCkubG9hZFF1ZXJ5LGE9dGgoKSxvPXNoKCkscz1saCgpLGM9Z2goKSxsPWJoKCksdT14aCgpLGQ9RGgoKSxmPU9oKCkscD1UaCgpLG09a2goKSxoPXJoKCksZz1BaCgpLF89amgoKSx2PXFwKCk7dC5leHBvcnRzPXtDb25uZWN0aW9uSGFuZGxlcjp2LkNvbm5lY3Rpb25IYW5kbGVyLGFwcGx5T3B0aW1pc3RpY011dGF0aW9uOnYuYXBwbHlPcHRpbWlzdGljTXV0YXRpb24sY29tbWl0TG9jYWxVcGRhdGU6di5jb21taXRMb2NhbFVwZGF0ZSxjb21taXRNdXRhdGlvbjp2LmNvbW1pdE11dGF0aW9uLGdyYXBocWw6di5ncmFwaHFsLHJlYWRJbmxpbmVEYXRhOnYucmVhZElubGluZURhdGEscmVxdWVzdFN1YnNjcmlwdGlvbjp2LnJlcXVlc3RTdWJzY3JpcHRpb24sRW50cnlQb2ludENvbnRhaW5lcjpuLFJlbGF5RW52aXJvbm1lbnRQcm92aWRlcjpvLFByb2ZpbGVyQ29udGV4dDphLGZldGNoUXVlcnk6di5mZXRjaFF1ZXJ5LGxvYWRRdWVyeTppLGxvYWRFbnRyeVBvaW50OnIsdXNlRnJhZ21lbnQ6Yyx1c2VMYXp5TG9hZFF1ZXJ5OmwsdXNlRW50cnlQb2ludExvYWRlcjpzLHVzZVF1ZXJ5TG9hZGVyOnAsdXNlTXV0YXRpb246dSx1c2VQYWdpbmF0aW9uRnJhZ21lbnQ6ZCx1c2VQcmVsb2FkZWRRdWVyeTpmLHVzZVJlZmV0Y2hhYmxlRnJhZ21lbnQ6bSx1c2VSZWxheUVudmlyb25tZW50OmgsdXNlU3Vic2NyaWJlVG9JbnZhbGlkYXRpb25TdGF0ZTpnLHVzZVN1YnNjcmlwdGlvbjpffX0pKSxNaD1zKCgoZSx0KT0+e3QuZXhwb3J0cz1mbmUoKX0pKSgpLE5oPW5ldyBNYXAsUGg9bmV3IE1hcDtmdW5jdGlvbiBwbmUoZSl7cmV0dXJuIGUua2luZD09PWBGcmFnbWVudGB9ZnVuY3Rpb24gbW5lKGUpe3JldHVybiBlLmtpbmQ9PT1gUmVxdWVzdGB9ZnVuY3Rpb24gRmgoZSl7bGV0IHQ7aWYodD10eXBlb2YgZT09YGZ1bmN0aW9uYD9lKCk6ZS5kZWZhdWx0P2UuZGVmYXVsdDplLG1uZSh0KSl7bGV0IGU9YGNhY2hlSURgaW4gdC5wYXJhbXMmJnQucGFyYW1zLmNhY2hlSUQhPW51bGw/dC5wYXJhbXMuY2FjaGVJRDp0LnBhcmFtcy5pZDtyZXR1cm4gZSYmTmguc2V0KGUsdCksZX1pZihwbmUodCkpe3ZhciBuO2lmKChuPXQubWV0YWRhdGEpIT1udWxsJiZuLnJlZmV0Y2gpe3ZhciByO2xldCBlPShyPXQubWV0YWRhdGEpPT1udWxsP3ZvaWQgMDpyLnJlZmV0Y2gub3BlcmF0aW9uO3JldHVybiB0eXBlb2YgZT09YHN0cmluZ2A/bnVsbDooUGguc2V0KHQubmFtZSx0KSxGaChlKSl9cmV0dXJuIFBoLnNldCh0Lm5hbWUsdCksdC5uYW1lfXJldHVybiBudWxsfWZ1bmN0aW9uIEloKGUpe3JldHVybiBOaC5nZXQoZSl9dmFyIExoPShlLHQsbixyKT0+KEZoKHQpLCgwLE1oLmZldGNoUXVlcnkpKGUsdCxuLHIpKSxobmU9YF9fUkVMQVlfUkVTT0xWRVJfX2A7ZnVuY3Rpb24gZ25lKGUpe3JldHVybiBlPT09aG5lfWZ1bmN0aW9uIF9uZShlLHQpe2xldCBuPTAscj17fSxpPXt9O2ZvcihsZXQgZSBvZiB0KWlmKGUuZmllbGQpe2xldCB0PXJbZS5maWVsZF0/P3t9O3RbZS50eXBlbmFtZV09ZSxyW2UuZmllbGRdPXR9ZWxzZSBpW2UudHlwZW5hbWVdPWU7bGV0IGE9eyJjbGllbnQ6cm9vdCI6MX0sbz1PYmplY3QuYXNzaWduKHt9LGUpLHM9KGUsdCk9Pnt2YXIgbjtyZXR1cm4oKG49cltlXSk9PW51bGw/dm9pZCAwOm5bdF0pfHxpW3RdfSxjPWU9PnthW2VdPShhW2VdPz8wKSsxfSxsPWU9PnthW2VdPShhW2VdPz8xKS0xfSx1PWU9PmFbZV0/PzA7Zm9yKGxldCB0IGluIGUpaWYoT2JqZWN0Lmhhc093bihlLHQpKXtsZXQgbj1lW3RdLHI9T2JqZWN0LmFzc2lnbih7fSxuKTtvW3RdPXI7Zm9yKGxldCB0IGluIHIpaWYoT2JqZWN0Lmhhc093bihyLHQpKXtsZXQgbj1yW3RdO2lmKG4mJnR5cGVvZiBuPT1gb2JqZWN0YCl7aWYoYF9fcmVmYGluIG4pe2Mobi5fX3JlZik7bGV0IHI9ZVtuLl9fcmVmXTtyJiYocyh0LHIuX190eXBlbmFtZSk/P2duZShyLl9fdHlwZW5hbWUpKSYmbChuLl9fcmVmKX1pZihgX19yZWZzYGluIG4pe2xldCByPW4uX19yZWZzO2ZvcihsZXQgbiBvZiByKXtjKG4pO2xldCByPWVbbl07ciYmcyh0LHIuX190eXBlbmFtZSkmJmwobil9fX19fWZvcihsZXQgZSBpbiBvKWlmKE9iamVjdC5oYXNPd24obyxlKSl7aWYodShlKTwxKXtkZWxldGUgb1tlXSxuKz0xO2NvbnRpbnVlfWxldCB0PW9bZV07aWYodCl7Zm9yKGxldCBlIGluIHQpaWYoT2JqZWN0Lmhhc093bih0LGUpKXtsZXQgbj10W2VdO2lmKG4mJnR5cGVvZiBuPT1gb2JqZWN0YCl7aWYoYF9fcmVmYGluIG4pe2xldCByPW4uX19yZWY7dShyKTwxJiZkZWxldGUgdFtlXX1pZihgX19yZWZzYGluIG4pe2xldCByPW4uX19yZWZzO3IubGVuZ3RoPjAmJihyLnNvbWUoZT0+dShlKT4wKXx8ZGVsZXRlIHRbZV0pfX19fX1yZXR1cm57ZmlsdGVyZWRSZWNvcmRNYXA6byxudW1GaWx0ZXJlZFZhbHVlczpufX12YXIgUmg9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5tYXhTaXplPXZvaWQgMCx0aGlzLmNhY2hlPXZvaWQgMCx0aGlzLm1heFNpemU9ZSx0aGlzLmNhY2hlPW5ldyBNYXB9Z2V0KGUpe2xldCB0PXRoaXMuY2FjaGUuZ2V0KGUpO3JldHVybiB0JiYodGhpcy5jYWNoZS5kZWxldGUoZSksdGhpcy5jYWNoZS5zZXQoZSx0KSksdH1zZXQoZSx0KXt0aGlzLmNhY2hlLmhhcyhlKT90aGlzLmNhY2hlLmRlbGV0ZShlKTp0aGlzLmNhY2hlLnNpemU9PT10aGlzLm1heFNpemUmJnRoaXMuY2FjaGUuZGVsZXRlKHRoaXMuZmlyc3QoKSksdGhpcy5jYWNoZS5zZXQoZSx0KX1kZWxldGUoZSl7cmV0dXJuIHRoaXMuY2FjaGUuZGVsZXRlKGUpfWNsZWFyKCl7dGhpcy5jYWNoZS5jbGVhcigpfWZpcnN0KCl7cmV0dXJuIHRoaXMuY2FjaGUua2V5cygpLm5leHQoKS52YWx1ZX1nZXRNYXAoKXtyZXR1cm4gdGhpcy5jYWNoZX19O2Z1bmN0aW9uIHpoKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gQmgoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/emgoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZuZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp6aChPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gdm5lKGUsdCxuKXtyZXR1cm4odD15bmUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24geW5lKGUpe3ZhciB0PWJuZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBibmUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiB4bmUoZSl7cmV0dXJuIHR5cGVvZiBlPT1gb2JqZWN0YCYmISFlfWZ1bmN0aW9uIFNuZShlLHQpe2lmKGUuZ3JhcGhxbE1ldGFkYXRhLnJlcXVlc3Qub3BlcmF0aW9uS2luZCE9PWBtdXRhdGlvbmApcmV0dXJuITE7bGV0IG49ZS5ncmFwaHFsTWV0YWRhdGEudmFyaWFibGVzLmlucHV0O3JldHVybiB4bmUobik/YGF1dGhvcml6YXRpb25Db250ZXh0YGluIG4mJnR5cGVvZiBuLmF1dGhvcml6YXRpb25Db250ZXh0PT1gc3RyaW5nYD8hMDooYGF1dGhvcml6YXRpb25Db250ZXh0YGluIG4mJnQud2FybihgTXV0YXRpb24gYXV0aG9yaXphdGlvbkNvbnRleHQgc2hvdWxkIGJlIGEgc3RyaW5nLCByZWNlaXZlZCAke3R5cGVvZiBuLmF1dGhvcml6YXRpb25Db250ZXh0fSBpbiAke2UuZ3JhcGhxbE1ldGFkYXRhLnJlcXVlc3QubmFtZX1gKSwhMSk6ITF9ZnVuY3Rpb24gQ25lKHtsb2dnZXI6ZX09e2xvZ2dlcjphbX0pe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYXN5bmMgZnVuY3Rpb24obixyKXtpZihTbmUocixlKSl7bGV0IGU9ci5ncmFwaHFsTWV0YWRhdGEudmFyaWFibGVzLmlucHV0LmF1dGhvcml6YXRpb25Db250ZXh0O3JldHVybiB0KG4sQmgoQmgoe30scikse30se2hlYWRlcnM6QmgoQmgoe30sci5oZWFkZXJzKSx7fSx7IkF1dGh6LUNvbnRleHQiOmV9KX0pKX1yZXR1cm4gdChuLHIpfX19ZnVuY3Rpb24gVmgoZSl7cmV0dXJuIGUuZ3JhcGhxbE1ldGFkYXRhLnJlcXVlc3Qub3BlcmF0aW9uS2luZD09PWBxdWVyeWB9ZnVuY3Rpb24gSGgoZSl7cmV0dXJuIGUuZ3JhcGhxbE1ldGFkYXRhLnJlcXVlc3Qub3BlcmF0aW9uS2luZD09PWBtdXRhdGlvbmB9ZnVuY3Rpb24gd25lKGUpe3JldHVybiBlLmdyYXBocWxNZXRhZGF0YS5yZXF1ZXN0Lm9wZXJhdGlvbktpbmQ9PT1gc3Vic2NyaXB0aW9uYH1mdW5jdGlvbiBUbmUoZSx0KXtyZXR1cm4oVmgoZSl8fEhoKGUpKSYmZ20odCl9ZnVuY3Rpb24gVWgoZSx0KXtyZXR1cm4oVmgoZSl8fEhoKGUpKSYmX20odCl9ZnVuY3Rpb24gV2goZSx0KXtyZXR1cm4gdHlwZW9mIGUhPWBvYmplY3RgfHwhZT8hMTpgZXJyb3JzYGluIGUmJkFycmF5LmlzQXJyYXkoZS5lcnJvcnMpP2UuZXJyb3JzLnNvbWUoZT0+e3ZhciBuO3JldHVybiBlJiYoKG49ZS5leHRlbnNpb25zKT09bnVsbD92b2lkIDA6bi5jb2RlKT09PXR9KTohMX1mdW5jdGlvbiBHaChlKXt2YXIgdDtyZXR1cm5gZXJyb3JzYGluIGUmJmUuZXJyb3JzIT1udWxsJiYoKHQ9ZS5lcnJvcnMpPT1udWxsP3ZvaWQgMDp0Lmxlbmd0aCk+MH1mdW5jdGlvbiBLaChlKXt2YXIgdDtpZighKGBlcnJvcnNgaW4gZSl8fCEoKHQ9ZS5lcnJvcnMpIT1udWxsJiZ0Lmxlbmd0aCkpcmV0dXJuO2xldCBuPWUuZXJyb3JzO2ZvcihsZXQgZSBvZiBuKXt2YXIgcixpLGE7bGV0IHQ9KHI9ZS5wYXRoKT09bnVsbD92b2lkIDA6ci5qb2luKGAuYCksbj0oaT1lLmV4dGVuc2lvbnMpPT1udWxsfHwoaT1pLmVycm9yTWV0YWRhdGEpPT1udWxsP3ZvaWQgMDppLmNvZGUsbz0oKGE9ZS5leHRlbnNpb25zKT09bnVsbD92b2lkIDA6YS5lcnJvck1ldGFkYXRhKT8/e307bj09PWBVTkFVVEhPUklaRURgfHxuPT09YFVOQVZBSUxBQkxFYD9vLmNvZGU9bjpvLmNvZGU9YEZBSUxFRGAsZS5lcnJvclBhdGg9dCxlLmV4dGVuc2lvbnM9PT12b2lkIDAmJihlLmV4dGVuc2lvbnM9e30pLGUuZXh0ZW5zaW9ucy5lcnJvck1ldGFkYXRhPW99fWZ1bmN0aW9uIEVuZShlKXtyZXR1cm4gYXN5bmMgZnVuY3Rpb24odCxuKXtsZXQgcj1hd2FpdCBlKHQsbik7cmV0dXJuIHIgaW5zdGFuY2VvZiBFcnJvcj9yOlVoKG4scik/KHIuaXRlcmFibGUoITApLnRyYW5zZm9ybShhc3luYyBmdW5jdGlvbiooZSl7Zm9yIGF3YWl0KGxldCB0IG9mIGUpdCBpbnN0YW5jZW9mIEVycm9yfHxLaCh0KSx5aWVsZCB0fSkscik6KEtoKGF3YWl0IHIuanNvbigpKSxyKX19ZnVuY3Rpb24gcWgoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBKaChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9xaChPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7RG5lKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOnFoKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBEbmUoZSx0LG4pe3JldHVybih0PU9uZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBPbmUoZSl7dmFyIHQ9a25lKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIGtuZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIFloKGUpe3JldHVybiBhc3luYyBmdW5jdGlvbih0LG4pe3JldHVybiBlKGAke3R9Jm9wZXJhdGlvbk5hbWU9JHtlbmNvZGVVUklDb21wb25lbnQobi5ncmFwaHFsTWV0YWRhdGEucmVxdWVzdC5uYW1lKX1gLEpoKEpoKHt9LG4pLHt9LHttZXRyaWNUYWdzOkpoKEpoKHt9LG4ubWV0cmljVGFncykse30se29wZXJhdGlvbk5hbWU6bi5ncmFwaHFsTWV0YWRhdGEucmVxdWVzdC5uYW1lfSl9KSl9fXZhciBBbmU9Y2xhc3MgZXh0ZW5kcyBQcm9taXNle2NvbnN0cnVjdG9yKGUpe2xldCB0LG47c3VwZXIoKGUscik9Pnt0PWUsbj1yfSksdGhpcy5tYWtlUHJvbWlzZT12b2lkIDAsdGhpcy5wcm9taXNlPXZvaWQgMCx0aGlzLnJlc29sdmU9dm9pZCAwLHRoaXMucmVqZWN0PXZvaWQgMCx0aGlzLnJlc29sdmU9dCx0aGlzLnJlamVjdD1uLHRoaXMubWFrZVByb21pc2U9ZX1hc3luYyB0aGVuKGUsdCl7cmV0dXJuIHRoaXMucHJvbWlzZXx8KHRoaXMucHJvbWlzZT10aGlzLm1ha2VQcm9taXNlKCksdGhpcy5wcm9taXNlLnRoZW4odGhpcy5yZXNvbHZlLHRoaXMucmVqZWN0KSksdGhpcy5wcm9taXNlLnRoZW4oZSx0KX19O2Z1bmN0aW9uIFhoKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gWmgoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/WGgoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2puZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpYaChPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gam5lKGUsdCxuKXtyZXR1cm4odD1NbmUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gTW5lKGUpe3ZhciB0PU5uZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBObmUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBQbmUoZSl7dmFyIHQ7cmV0dXJuIGUmJmBlcnJvcnNgaW4gZSYmKHQ9ZS5lcnJvcnMpIT1udWxsJiZ0Lmxlbmd0aCYmZS5lcnJvcnMubGVuZ3RoPjA/ZS5lcnJvcnMuc29tZShlPT5lLm1lc3NhZ2U9PT1gUGVyc2lzdGVkUXVlcnlOb3RGb3VuZGApOiExfWZ1bmN0aW9uIEZuZShlKXtyZXR1cm4gV2goZSxgUEVSU0lTVEVEX1FVRVJZX05PVF9JTl9MSVNUYCl9ZnVuY3Rpb24gSW5lKGUpe3JldHVybiBXaChlLGBQRVJTSVNURURfUVVFUllfSURfUkVRVUlSRURgKX1mdW5jdGlvbiBMbmUoZSx0KXtyZXR1cm5gJmV4dGVuc2lvbnM9JHtlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkodCkpfSZ2YXJpYWJsZXM9JHtlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZSkpfWB9ZnVuY3Rpb24gUm5lKGUsdCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHtleHRlbnNpb25zOnQsdmFyaWFibGVzOmV9KX1mdW5jdGlvbiB6bmUoe2dldFBlcnNpc3RlZFF1ZXJpZXM6ZSxsb2dnZXI6dD1hbSxsb2dNZXRyaWM6bj1fY30pe3JldHVybiBmdW5jdGlvbihyKXtsZXQgaT1uZXcgQW5lKGUpO3JldHVybiBhc3luYyBmdW5jdGlvbihlLGEpe3ZhciBvO2xldCBzPWEuZ3JhcGhxbE1ldGFkYXRhLGM9cy5yZXF1ZXN0LGw9cy52YXJpYWJsZXM7aWYoIWMuaWQpcmV0dXJuIHIoZSxhKTtpZihjLm9wZXJhdGlvbktpbmQhPT1gcXVlcnlgKXJldHVybiBjLnRleHQ/cihlLGEpOnIoZSxaaChaaCh7fSxhKSx7fSx7Ym9keTpKU09OLnN0cmluZ2lmeSh7cXVlcnk6KGF3YWl0IGkpW2MuaWRdLG9wZXJhdGlvbk5hbWU6Yy5uYW1lLHZhcmlhYmxlczpsfSl9KSk7bGV0IHU9e3BlcnNpc3RlZFF1ZXJ5Ont2ZXJzaW9uOjEsc2hhMjU2SGFzaDpjLmlkfX0sZD0oKG89YS5ncmFwaHFsTWV0YWRhdGEuY2FjaGVDb25maWcpPT1udWxsfHwobz1vLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6by5mb3JjZVBvc3QpPz8hMSxmPWQ/YFBPU1RgOmBHRVRgLHA9ZD9SbmUobCx1KTp2b2lkIDAsbT1kP3ZvaWQgMDpMbmUobCx1KSxoPWF3YWl0IHIobT9gJHtlfSR7bX1gOmUsWmgoWmgoe30sYSkse30se21ldGhvZDpmLGJvZHk6cH0pKSxnPWFzeW5jKCk9PntpZihjLmlkJiYhYy50ZXh0JiYhKGF3YWl0IGkpW2MuaWRdKXRocm93IHQuZXJyb3IoYFBlcnNpc3RlZCBxdWVyeSBub3QgZm91bmQuIE5hbWU6ICR7Yy5uYW1lfSBJRDogJHtjLmlkfWApLEVycm9yKGBQZXJzaXN0ZWQgcXVlcnkgbm90IGZvdW5kLiBOYW1lOiAke2MubmFtZX0gSUQ6ICR7Yy5pZH1gKTtsZXQgbz1hd2FpdCByKGUsWmgoWmgoe30sYSkse30se2JvZHk6SlNPTi5zdHJpbmdpZnkoe2V4dGVuc2lvbnM6e3BlcnNpc3RlZFF1ZXJ5Ont2ZXJzaW9uOjEsc2hhMjU2SGFzaDpjLmlkfX0scXVlcnk6KGF3YWl0IGkpW2MuaWRdLG9wZXJhdGlvbk5hbWU6Yy5uYW1lLHZhcmlhYmxlczpsfSl9KSk7cmV0dXJuIG8gaW5zdGFuY2VvZiBlbSYmSW5lKG8ucmVzcG9uc2VKc29uKSYmbih7bWV0cmljTmFtZTpobShgcmVsYXkuYXBxLnBlcnNpc3RlZF9xdWVyeV9pZF9yZXF1aXJlZGApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxfSksb307cmV0dXJuIGggaW5zdGFuY2VvZiBzbT9oOmggaW5zdGFuY2VvZiBlbT9GbmUoaC5yZXNwb25zZUpzb24pPyhuKHttZXRyaWNOYW1lOmhtKGByZWxheS5hcHEucGVyc2lzdGVkX3F1ZXJ5X25vdF9pbl9saXN0YCksbWV0cmljVHlwZTpCLmNvdW50LHZhbHVlOjF9KSxnKCkpOmg6Z20oaCkmJlBuZShhd2FpdCBoLmpzb24oKSk/KG4oe21ldHJpY05hbWU6aG0oYHJlbGF5LmFwcS5wZXJzaXN0ZWRfcXVlcnlfbm90X2ZvdW5kYCksbWV0cmljVHlwZTpCLmNvdW50LHZhbHVlOjF9KSxnKCkpOmh9fX1mdW5jdGlvbiBRaChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uICRoKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP1FoKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtCbmUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6UWgoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIEJuZShlLHQsbil7cmV0dXJuKHQ9Vm5lKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIFZuZShlKXt2YXIgdD1IbmUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gSG5lKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9dmFyIGVnPWByZWxheV9mZXRjaGVyLnJlc3BvbnNlLmNvdW50YCx0Zz1gcmVsYXlfZmV0Y2hlci5yZXNwb25zZS5lcnJvcmAsbmc9YHJlbGF5X2ZldGNoZXIucmVzcG9uc2UudG90YWxfZHVyYXRpb25gLHJnPWByZWxheV9mZXRjaGVyLnJlc3BvbnNlLmRhdGFfc2l6ZWA7ZnVuY3Rpb24gaWcoZSl7cmV0dXJuIGUubGVuZ3RoLzEwMjR9ZnVuY3Rpb24gVW5lKGUpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gYXN5bmMgZnVuY3Rpb24odCxuKXtsZXQgcj14bSgpLGk9YXdhaXQgZSh0LG4pO2lmKGkgaW5zdGFuY2VvZiBFcnJvcilyZXR1cm4gaTtsZXQgYT0kaCgkaCh7fSxuLm1ldHJpY1RhZ3MpLHt9LHtkZWxpdmVyeVR5cGU6YHdob2xlYH0pLG89JGgoJGgoe30sbi5tZXRyaWNUYWdzKSx7fSx7ZGVsaXZlcnlUeXBlOmBpbmNyZW1lbnRhbGB9KTtpZigoVmgobil8fEhoKG4pKSYmKFRuZShuLGkpJiYoX2Moe21ldHJpY05hbWU6aG0oZWcpLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6YX0pLHdtKGFzeW5jKCk9PntsZXQgZT1hd2FpdCBpLmpzb24oKTtHaChlKSYmX2Moe21ldHJpY05hbWU6aG0odGcpLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6YX0pLF9jKHttZXRyaWNOYW1lOmhtKG5nKSxtZXRyaWNUeXBlOkIuaGlzdG9ncmFtLHZhbHVlOnhtKCktcix0YWdzOmF9KTtsZXQgdD1lLmRhdGE/aWcoSlNPTi5zdHJpbmdpZnkoZS5kYXRhKSk6MDtfYyh7bWV0cmljTmFtZTpobShyZyksbWV0cmljVHlwZTpCLmRpc3RyaWJ1dGlvbix2YWx1ZTp0LHRhZ3M6YX0pfSkpLFVoKG4saSkpKXtfYyh7bWV0cmljTmFtZTpobShlZyksbWV0cmljVHlwZTpCLmNvdW50LHZhbHVlOjEsdGFnczpvfSk7bGV0IGU9aS5pdGVyYWJsZSghMCksdD0hMSxhPTAscz0wO3dtKGFzeW5jKCk9PntsZXQgaT0wLGM9ITE7Zm9yIGF3YWl0KGxldCBvIG9mIGUpe2xldCBlPTA7byBpbnN0YW5jZW9mIEVycm9yfHwoYz1jfHxHaChvKSxlPW8uZGF0YT9pZyhKU09OLnN0cmluZ2lmeShvLmRhdGEpKTowKSxpKz1lLHR8fCh0PSEwLGE9eG0oKS1yLHM9ZSxfYyh7bWV0cmljTmFtZTpobShgcmVsYXlfZmV0Y2hlci5yZXNwb25zZS5pbmNyZW1lbnRhbF9kZWxpdmVyeS50aW1lX3VudGlsX2ZpcnN0X3Jlc3VsdGApLG1ldHJpY1R5cGU6Qi5oaXN0b2dyYW0sdmFsdWU6YSx0YWdzOm4ubWV0cmljVGFnc30pLF9jKHttZXRyaWNOYW1lOmhtKGByZWxheV9mZXRjaGVyLnJlc3BvbnNlLmluY3JlbWVudGFsX2RlbGl2ZXJ5LmZpcnN0X3Jlc3VsdF9kYXRhX3NpemVgKSxtZXRyaWNUeXBlOkIuZGlzdHJpYnV0aW9uLHZhbHVlOnMsdGFnczpuLm1ldHJpY1RhZ3N9KSl9YyYmX2Moe21ldHJpY05hbWU6aG0odGcpLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6b30pO2xldCBsPXhtKCktcjtfYyh7bWV0cmljTmFtZTpobShuZyksbWV0cmljVHlwZTpCLmhpc3RvZ3JhbSx2YWx1ZTpsLHRhZ3M6b30pLF9jKHttZXRyaWNOYW1lOmByZWxheV9mZXRjaGVyLnJlc3BvbnNlLmluY3JlbWVudGFsX2RlbGl2ZXJ5LmZpcnN0X3Jlc3VsdF9sYXRlbmN5X2FkdmFudGFnZWAsbWV0cmljVHlwZTpCLmhpc3RvZ3JhbSx2YWx1ZTpsLWEsdGFnczpuLm1ldHJpY1RhZ3N9KSxfYyh7bWV0cmljTmFtZTpobShyZyksbWV0cmljVHlwZTpCLmRpc3RyaWJ1dGlvbix2YWx1ZTppLHRhZ3M6b30pLF9jKHttZXRyaWNOYW1lOmByZWxheV9mZXRjaGVyLnJlc3BvbnNlLmluY3JlbWVudGFsX2RlbGl2ZXJ5LmZpcnN0X3Jlc3VsdF9zaXplX2FkdmFudGFnZWAsbWV0cmljVHlwZTpCLmRpc3RyaWJ1dGlvbix2YWx1ZTppLXMsdGFnczpuLm1ldHJpY1RhZ3N9KX0pfXJldHVybiBpfX19dmFyIFduZT1gcmVsYXlfZmV0Y2hlci5wZXJmb3JtYW5jZWA7ZnVuY3Rpb24gR25lKGUpe3JldHVybiBhc3luYyBmdW5jdGlvbih0LG4pe2xldCByPXhtKCksaT1hd2FpdCBlKHQsbiksYT14bSgpLXI7cmV0dXJuIF9jKHttZXRyaWNOYW1lOmhtKFduZSksbWV0cmljVHlwZTpCLmhpc3RvZ3JhbSx2YWx1ZTphLHRhZ3M6e29wZXJhdGlvbk5hbWU6bi5ncmFwaHFsTWV0YWRhdGEucmVxdWVzdC5uYW1lfX0pLGl9fWZ1bmN0aW9uIEtuZShlLHQpe2xldCBuPVtdLHI9KGksYSk9PntpZihhPT09dC5sZW5ndGgpe24ucHVzaChpKTtyZXR1cm59bGV0IG89ZVthXTtpZighb3x8by5sZW5ndGg9PT0wKXIoYT09PTA/dFthXTpgJHtpfS4ke3RbYV19YCxhKzEpO2Vsc2UgZm9yKGxldCBlIG9mWy4uLm8sdFthXV0pcihhPT09MD9lOmAke2l9LiR7ZX1gLGErMSl9O3JldHVybiByKGBgLDApLG4ubWFwKGU9PmUuc3BsaXQoYC5gKSl9ZnVuY3Rpb24gcW5lKGUpe2xldCB0PWUucm9vdC5ub2RlLG49ZT0+e2ZvcihsZXQgdCBvZiBlKWlmKHQua2luZD09PWBDbGllbnRFeHRlbnNpb25gfHxgc2VsZWN0aW9uc2BpbiB0JiZuKHQuc2VsZWN0aW9ucykpcmV0dXJuITA7cmV0dXJuITF9O24odC5zZWxlY3Rpb25zKSYmX2Moe21ldHJpY05hbWU6aG0oYGNsaWVudF9zY2hlbWFfZXh0ZW5zaW9uLmNvdW50YCksbWV0cmljVHlwZTpCLmNvdW50LHZhbHVlOjF9KX1mdW5jdGlvbiBhZyhlKXtyZXR1cm4gdHlwZW9mIGU9PWBvYmplY3RgJiYhQXJyYXkuaXNBcnJheShlKSYmZSE9PW51bGx9ZnVuY3Rpb24gb2coZSx0LG4pe3JldHVybiBhZyh0KSYmKGFnKG4pJiZgaWRgaW4gbj90LmlkPW4uaWQ6ZSYmKHQuaWQ9ZSkpLHR9ZnVuY3Rpb24gc2coZSx0KXtpZighKCFlfHwhdHx8IXRbZV0pKXJldHVybiB0W2VdWyRtLlJFRl9LRVldfWZ1bmN0aW9uIEpuZSh7cGF0aEFycmF5OmUsbWlzc0ZpZWxkSW5kZXg6dCxwYXlsb2FkOm4sdmFsdWU6cixyZWxheVN0b3JlUmVjb3JkUG9pbnRlcjppLGZpZWxkU3RvcmFnZUtleTphLHN0b3JlUmVjb3JkU291cmNlOm99KXtsZXQgcz1lW3RdLGM9ZS5zbGljZSh0KzEpLnJldmVyc2UoKS5yZWR1Y2UoKGUsdCxuKT0+KHtbdF06bj09PTA/cjplfSkse30pO25bc109Yztmb3IobGV0IHI9dDtyPGUubGVuZ3RoO3IrPTEpe2xldCB0PWVbcl0scz1hW2Ake3J9LiR7dH1gXSxjPXNnKHMsaSk7b2coYyxuW3RdLG51bGwpLGk9by5nZXQoYz8/YGApLG49blt0XX19ZnVuY3Rpb24gWW5lKHtkYXRhOmUscGF0aEFycmF5OnQsdmFsdWU6bixyZWxheVN0b3JlOnIsZmllbGRTdG9yYWdlS2V5OmkscGx1cmFsRmllbGRzOmEsbG9nZ2VyOm99KXtsZXQgcz1yLmdldFNvdXJjZSgpLGM9cy5nZXQoJG0uUk9PVF9JRCksbD0oZSxyLGMpPT57bGV0IHU9dFtlXSxkPWlbYCR7ZX0uJHt1fWBdLGY9c2coZCxjKTtpZihlPT09dC5sZW5ndGgtMSl7clt1XT1vZyhmLG4sclt1XSk7cmV0dXJufWlmKHJbdV09PT1udWxsfHxyW3VdPT09dm9pZCAwKXtpZihhLnNpemU+MCl7by5lcnJvcihgW0RhdGEgTGF5ZXIgRmllbGQgTGV2ZWwgTW9ja2VyXTogQXR0ZW1wdGVkIHRvIG92ZXJ3cml0ZSBhbiBhcnJheSBmaWVsZCB3aXRoIGEgbW9jaywgYnV0IGdvdCBhbiBlcnJvbmVvdXMgcmVzcG9uc2Ugd2l0aCBtaXNzaW5nIGRhdGEuIFRoaXMgdXNlIGNhc2UgaXMgbm90IHlldCBzdXBwb3J0ZWQgYXQgdGhlIG1vbWVudC4gSW5zdGVhZCwgY29uc2lkZXIgbW9ja2luZyB0aGUgZW50aXJlIGFycmF5YCk7cmV0dXJufUpuZSh7dmFsdWU6bixtaXNzRmllbGRJbmRleDplLHBhdGhBcnJheTp0LHBheWxvYWQ6cixyZWxheVN0b3JlUmVjb3JkUG9pbnRlcjpjLGZpZWxkU3RvcmFnZUtleTppLHN0b3JlUmVjb3JkU291cmNlOnN9KX1lbHNlIGlmKHUgaW4gcilpZihhLmhhcyhlKSlmb3IobGV0IHQgb2Ygclt1XSlsKGUrMSx0LG51bGwpO2Vsc2UgbChlKzEsclt1XSxzLmdldChmPz9gYCkpfTtsKDAsZSxjKX12YXIgWG5lPXUocygoKGUsdCk9Pnt2YXIgbj0yMDAscj1gX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfX2AsaT0xLGE9MixvPTkwMDcxOTkyNTQ3NDA5OTEscz1gW29iamVjdCBBcmd1bWVudHNdYCxjPWBbb2JqZWN0IEFycmF5XWAsbD1gW29iamVjdCBCb29sZWFuXWAsdT1gW29iamVjdCBEYXRlXWAsZD1gW29iamVjdCBFcnJvcl1gLGY9YFtvYmplY3QgRnVuY3Rpb25dYCxwPWBbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXWAsbT1gW29iamVjdCBNYXBdYCxoPWBbb2JqZWN0IE51bWJlcl1gLGc9YFtvYmplY3QgT2JqZWN0XWAsXz1gW29iamVjdCBQcm9taXNlXWAsdj1gW29iamVjdCBSZWdFeHBdYCx5PWBbb2JqZWN0IFNldF1gLGI9YFtvYmplY3QgU3RyaW5nXWAseD1gW29iamVjdCBTeW1ib2xdYCxTPWBbb2JqZWN0IFdlYWtNYXBdYCxDPWBbb2JqZWN0IEFycmF5QnVmZmVyXWAsdz1gW29iamVjdCBEYXRhVmlld11gLFQ9YFtvYmplY3QgRmxvYXQzMkFycmF5XWAsRT1gW29iamVjdCBGbG9hdDY0QXJyYXldYCxEPWBbb2JqZWN0IEludDhBcnJheV1gLE89YFtvYmplY3QgSW50MTZBcnJheV1gLGs9YFtvYmplY3QgSW50MzJBcnJheV1gLEE9YFtvYmplY3QgVWludDhBcnJheV1gLGo9YFtvYmplY3QgVWludDhDbGFtcGVkQXJyYXldYCxNPWBbb2JqZWN0IFVpbnQxNkFycmF5XWAsTj1gW29iamVjdCBVaW50MzJBcnJheV1gLFA9L1tcXF4kLiorPygpW1xde318XS9nLEY9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sZWU9L14oPzowfFsxLTldXGQqKSQvLEk9e307SVtUXT1JW0VdPUlbRF09SVtPXT1JW2tdPUlbQV09SVtqXT1JW01dPUlbTl09ITAsSVtzXT1JW2NdPUlbQ109SVtsXT1JW3ddPUlbdV09SVtkXT1JW2ZdPUlbbV09SVtoXT1JW2ddPUlbdl09SVt5XT1JW2JdPUlbU109ITE7dmFyIEw9dHlwZW9mIGdsb2JhbFRoaXM9PWBvYmplY3RgJiZnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLk9iamVjdD09PU9iamVjdCYmZ2xvYmFsVGhpcyxSPXR5cGVvZiBzZWxmPT1gb2JqZWN0YCYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsej1MfHxSfHxGdW5jdGlvbihgcmV0dXJuIHRoaXNgKSgpLHRlPXR5cGVvZiBlPT1gb2JqZWN0YCYmZSYmIWUubm9kZVR5cGUmJmUsbmU9dGUmJnR5cGVvZiB0PT1gb2JqZWN0YCYmdCYmIXQubm9kZVR5cGUmJnQscmU9bmUmJm5lLmV4cG9ydHM9PT10ZSYmTC5wcm9jZXNzLGllPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiByZSYmcmUuYmluZGluZyhgdXRpbGApfWNhdGNoe319KCksYWU9aWUmJmllLmlzVHlwZWRBcnJheTtmdW5jdGlvbiBvZShlLHQpe2Zvcih2YXIgbj0tMSxyPWU/ZS5sZW5ndGg6MDsrK248cjspaWYodChlW25dLG4sZSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gc2UoZSx0KXtmb3IodmFyIG49LTEscj1BcnJheShlKTsrK248ZTspcltuXT10KG4pO3JldHVybiByfWZ1bmN0aW9uIGNlKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSh0KX19ZnVuY3Rpb24gbGUoZSx0KXtyZXR1cm4gZT09bnVsbD92b2lkIDA6ZVt0XX1mdW5jdGlvbiB1ZShlKXt2YXIgdD0hMTtpZihlIT1udWxsJiZ0eXBlb2YgZS50b1N0cmluZyE9YGZ1bmN0aW9uYCl0cnl7dD0hIShlK2BgKX1jYXRjaHt9cmV0dXJuIHR9ZnVuY3Rpb24gZGUoZSl7dmFyIHQ9LTEsbj1BcnJheShlLnNpemUpO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSxyKXtuWysrdF09W3IsZV19KSxufWZ1bmN0aW9uIGZlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBlKHQobikpfX1mdW5jdGlvbiBwZShlKXt2YXIgdD0tMSxuPUFycmF5KGUuc2l6ZSk7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXtuWysrdF09ZX0pLG59dmFyIG1lPUFycmF5LnByb3RvdHlwZSxoZT1GdW5jdGlvbi5wcm90b3R5cGUsZ2U9T2JqZWN0LnByb3RvdHlwZSxfZT16W2BfX2NvcmUtanNfc2hhcmVkX19gXSx2ZT1mdW5jdGlvbigpe3ZhciBlPS9bXi5dKyQvLmV4ZWMoX2UmJl9lLmtleXMmJl9lLmtleXMuSUVfUFJPVE98fGBgKTtyZXR1cm4gZT9gU3ltYm9sKHNyYylfMS5gK2U6YGB9KCkseWU9aGUudG9TdHJpbmcsYmU9Z2UuaGFzT3duUHJvcGVydHkseGU9Z2UudG9TdHJpbmcsU2U9UmVnRXhwKGBeYCt5ZS5jYWxsKGJlKS5yZXBsYWNlKFAsYFxcJCZgKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLGAkMS4qP2ApK2AkYCksQ2U9ei5TeW1ib2wsd2U9ei5VaW50OEFycmF5LFRlPWdlLnByb3BlcnR5SXNFbnVtZXJhYmxlLEVlPW1lLnNwbGljZSxEZT1mZShPYmplY3Qua2V5cyxPYmplY3QpLE9lPU90KHosYERhdGFWaWV3YCksa2U9T3QoeixgTWFwYCksQWU9T3QoeixgUHJvbWlzZWApLGplPU90KHosYFNldGApLE1lPU90KHosYFdlYWtNYXBgKSxOZT1PdChPYmplY3QsYGNyZWF0ZWApLFBlPUZ0KE9lKSxGZT1GdChrZSksSWU9RnQoQWUpLExlPUZ0KGplKSxSZT1GdChNZSksemU9Q2U/Q2UucHJvdG90eXBlOnZvaWQgMCxCZT16ZT96ZS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBWZShlKXt2YXIgdD0tMSxuPWU/ZS5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrdDxuOyl7dmFyIHI9ZVt0XTt0aGlzLnNldChyWzBdLHJbMV0pfX1mdW5jdGlvbiBIZSgpe3RoaXMuX19kYXRhX189TmU/TmUobnVsbCk6e319ZnVuY3Rpb24gVWUoZSl7cmV0dXJuIHRoaXMuaGFzKGUpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1tlXX1mdW5jdGlvbiBXZShlKXt2YXIgdD10aGlzLl9fZGF0YV9fO2lmKE5lKXt2YXIgbj10W2VdO3JldHVybiBuPT09cj92b2lkIDA6bn1yZXR1cm4gYmUuY2FsbCh0LGUpP3RbZV06dm9pZCAwfWZ1bmN0aW9uIEdlKGUpe3ZhciB0PXRoaXMuX19kYXRhX187cmV0dXJuIE5lP3RbZV0hPT12b2lkIDA6YmUuY2FsbCh0LGUpfWZ1bmN0aW9uIEtlKGUsdCl7dmFyIG49dGhpcy5fX2RhdGFfXztyZXR1cm4gbltlXT1OZSYmdD09PXZvaWQgMD9yOnQsdGhpc31WZS5wcm90b3R5cGUuY2xlYXI9SGUsVmUucHJvdG90eXBlLmRlbGV0ZT1VZSxWZS5wcm90b3R5cGUuZ2V0PVdlLFZlLnByb3RvdHlwZS5oYXM9R2UsVmUucHJvdG90eXBlLnNldD1LZTtmdW5jdGlvbiBxZShlKXt2YXIgdD0tMSxuPWU/ZS5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrdDxuOyl7dmFyIHI9ZVt0XTt0aGlzLnNldChyWzBdLHJbMV0pfX1mdW5jdGlvbiBKZSgpe3RoaXMuX19kYXRhX189W119ZnVuY3Rpb24gWWUoZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXyxuPWh0KHQsZSk7cmV0dXJuIG48MD8hMToobj09dC5sZW5ndGgtMT90LnBvcCgpOkVlLmNhbGwodCxuLDEpLCEwKX1mdW5jdGlvbiBYZShlKXt2YXIgdD10aGlzLl9fZGF0YV9fLG49aHQodCxlKTtyZXR1cm4gbjwwP3ZvaWQgMDp0W25dWzFdfWZ1bmN0aW9uIFplKGUpe3JldHVybiBodCh0aGlzLl9fZGF0YV9fLGUpPi0xfWZ1bmN0aW9uIFFlKGUsdCl7dmFyIG49dGhpcy5fX2RhdGFfXyxyPWh0KG4sZSk7cmV0dXJuIHI8MD9uLnB1c2goW2UsdF0pOm5bcl1bMV09dCx0aGlzfXFlLnByb3RvdHlwZS5jbGVhcj1KZSxxZS5wcm90b3R5cGUuZGVsZXRlPVllLHFlLnByb3RvdHlwZS5nZXQ9WGUscWUucHJvdG90eXBlLmhhcz1aZSxxZS5wcm90b3R5cGUuc2V0PVFlO2Z1bmN0aW9uICRlKGUpe3ZhciB0PS0xLG49ZT9lLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PG47KXt2YXIgcj1lW3RdO3RoaXMuc2V0KHJbMF0sclsxXSl9fWZ1bmN0aW9uIGV0KCl7dGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgVmUsbWFwOm5ldyhrZXx8cWUpLHN0cmluZzpuZXcgVmV9fWZ1bmN0aW9uIHR0KGUpe3JldHVybiBFdCh0aGlzLGUpLmRlbGV0ZShlKX1mdW5jdGlvbiBudChlKXtyZXR1cm4gRXQodGhpcyxlKS5nZXQoZSl9ZnVuY3Rpb24gcnQoZSl7cmV0dXJuIEV0KHRoaXMsZSkuaGFzKGUpfWZ1bmN0aW9uIGl0KGUsdCl7cmV0dXJuIEV0KHRoaXMsZSkuc2V0KGUsdCksdGhpc30kZS5wcm90b3R5cGUuY2xlYXI9ZXQsJGUucHJvdG90eXBlLmRlbGV0ZT10dCwkZS5wcm90b3R5cGUuZ2V0PW50LCRlLnByb3RvdHlwZS5oYXM9cnQsJGUucHJvdG90eXBlLnNldD1pdDtmdW5jdGlvbiBhdChlKXt2YXIgdD0tMSxuPWU/ZS5sZW5ndGg6MDtmb3IodGhpcy5fX2RhdGFfXz1uZXcgJGU7Kyt0PG47KXRoaXMuYWRkKGVbdF0pfWZ1bmN0aW9uIG90KGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldChlLHIpLHRoaXN9ZnVuY3Rpb24gc3QoZSl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKGUpfWF0LnByb3RvdHlwZS5hZGQ9YXQucHJvdG90eXBlLnB1c2g9b3QsYXQucHJvdG90eXBlLmhhcz1zdDtmdW5jdGlvbiBjdChlKXt0aGlzLl9fZGF0YV9fPW5ldyBxZShlKX1mdW5jdGlvbiBsdCgpe3RoaXMuX19kYXRhX189bmV3IHFlfWZ1bmN0aW9uIHV0KGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLmRlbGV0ZShlKX1mdW5jdGlvbiBkdChlKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQoZSl9ZnVuY3Rpb24gZnQoZSl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKGUpfWZ1bmN0aW9uIHB0KGUsdCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihyIGluc3RhbmNlb2YgcWUpe3ZhciBpPXIuX19kYXRhX187aWYoIWtlfHxpLmxlbmd0aDxuLTEpcmV0dXJuIGkucHVzaChbZSx0XSksdGhpcztyPXRoaXMuX19kYXRhX189bmV3ICRlKGkpfXJldHVybiByLnNldChlLHQpLHRoaXN9Y3QucHJvdG90eXBlLmNsZWFyPWx0LGN0LnByb3RvdHlwZS5kZWxldGU9dXQsY3QucHJvdG90eXBlLmdldD1kdCxjdC5wcm90b3R5cGUuaGFzPWZ0LGN0LnByb3RvdHlwZS5zZXQ9cHQ7ZnVuY3Rpb24gbXQoZSx0KXt2YXIgbj1SdChlKXx8THQoZSk/c2UoZS5sZW5ndGgsU3RyaW5nKTpbXSxyPW4ubGVuZ3RoLGk9ISFyO2Zvcih2YXIgYSBpbiBlKSh0fHxiZS5jYWxsKGUsYSkpJiYhKGkmJihhPT1gbGVuZ3RoYHx8QXQoYSxyKSkpJiZuLnB1c2goYSk7cmV0dXJuIG59ZnVuY3Rpb24gaHQoZSx0KXtmb3IodmFyIG49ZS5sZW5ndGg7bi0tOylpZihJdChlW25dWzBdLHQpKXJldHVybiBuO3JldHVybi0xfWZ1bmN0aW9uIGd0KGUpe3JldHVybiB4ZS5jYWxsKGUpfWZ1bmN0aW9uIF90KGUsdCxuLHIsaSl7cmV0dXJuIGU9PT10PyEwOmU9PW51bGx8fHQ9PW51bGx8fCFVdChlKSYmIVd0KHQpP2UhPT1lJiZ0IT09dDp2dChlLHQsX3QsbixyLGkpfWZ1bmN0aW9uIHZ0KGUsdCxuLHIsaSxvKXt2YXIgbD1SdChlKSx1PVJ0KHQpLGQ9YyxmPWM7bHx8KGQ9a3QoZSksZD1kPT1zP2c6ZCksdXx8KGY9a3QodCksZj1mPT1zP2c6Zik7dmFyIHA9ZD09ZyYmIXVlKGUpLG09Zj09ZyYmIXVlKHQpLGg9ZD09ZjtpZihoJiYhcClyZXR1cm4gb3x8KG89bmV3IGN0KSxsfHxLdChlKT9DdChlLHQsbixyLGksbyk6d3QoZSx0LGQsbixyLGksbyk7aWYoIShpJmEpKXt2YXIgXz1wJiZiZS5jYWxsKGUsYF9fd3JhcHBlZF9fYCksdj1tJiZiZS5jYWxsKHQsYF9fd3JhcHBlZF9fYCk7aWYoX3x8dil7dmFyIHk9Xz9lLnZhbHVlKCk6ZSxiPXY/dC52YWx1ZSgpOnQ7cmV0dXJuIG98fChvPW5ldyBjdCksbih5LGIscixpLG8pfX1yZXR1cm4gaD8ob3x8KG89bmV3IGN0KSxUdChlLHQsbixyLGksbykpOiExfWZ1bmN0aW9uIHl0KGUsdCxuLHIpe3ZhciBvPW4ubGVuZ3RoLHM9byxjPSFyO2lmKGU9PW51bGwpcmV0dXJuIXM7Zm9yKGU9T2JqZWN0KGUpO28tLTspe3ZhciBsPW5bb107aWYoYyYmbFsyXT9sWzFdIT09ZVtsWzBdXTohKGxbMF1pbiBlKSlyZXR1cm4hMX1mb3IoOysrbzxzOyl7bD1uW29dO3ZhciB1PWxbMF0sZD1lW3VdLGY9bFsxXTtpZihjJiZsWzJdKXtpZihkPT09dm9pZCAwJiYhKHUgaW4gZSkpcmV0dXJuITF9ZWxzZXt2YXIgcD1uZXcgY3Q7aWYocil2YXIgbT1yKGQsZix1LGUsdCxwKTtpZighKG09PT12b2lkIDA/X3QoZixkLHIsaXxhLHApOm0pKXJldHVybiExfX1yZXR1cm4hMH1mdW5jdGlvbiBidChlKXtyZXR1cm4hVXQoZSl8fE10KGUpPyExOihWdChlKXx8dWUoZSk/U2U6RikudGVzdChGdChlKSl9ZnVuY3Rpb24geHQoZSl7cmV0dXJuIFd0KGUpJiZIdChlLmxlbmd0aCkmJiEhSVt4ZS5jYWxsKGUpXX1mdW5jdGlvbiBTdChlKXtpZighTnQoZSkpcmV0dXJuIERlKGUpO3ZhciB0PVtdO2Zvcih2YXIgbiBpbiBPYmplY3QoZSkpYmUuY2FsbChlLG4pJiZuIT1gY29uc3RydWN0b3JgJiZ0LnB1c2gobik7cmV0dXJuIHR9ZnVuY3Rpb24gQ3QoZSx0LG4scixvLHMpe3ZhciBjPW8mYSxsPWUubGVuZ3RoLHU9dC5sZW5ndGg7aWYobCE9dSYmIShjJiZ1PmwpKXJldHVybiExO3ZhciBkPXMuZ2V0KGUpO2lmKGQmJnMuZ2V0KHQpKXJldHVybiBkPT10O3ZhciBmPS0xLHA9ITAsbT1vJmk/bmV3IGF0OnZvaWQgMDtmb3Iocy5zZXQoZSx0KSxzLnNldCh0LGUpOysrZjxsOyl7dmFyIGg9ZVtmXSxnPXRbZl07aWYocil2YXIgXz1jP3IoZyxoLGYsdCxlLHMpOnIoaCxnLGYsZSx0LHMpO2lmKF8hPT12b2lkIDApe2lmKF8pY29udGludWU7cD0hMTticmVha31pZihtKXtpZighb2UodCxmdW5jdGlvbihlLHQpe2lmKCFtLmhhcyh0KSYmKGg9PT1lfHxuKGgsZSxyLG8scykpKXJldHVybiBtLmFkZCh0KX0pKXtwPSExO2JyZWFrfX1lbHNlIGlmKCEoaD09PWd8fG4oaCxnLHIsbyxzKSkpe3A9ITE7YnJlYWt9fXJldHVybiBzLmRlbGV0ZShlKSxzLmRlbGV0ZSh0KSxwfWZ1bmN0aW9uIHd0KGUsdCxuLHIsbyxzLGMpe3N3aXRjaChuKXtjYXNlIHc6aWYoZS5ieXRlTGVuZ3RoIT10LmJ5dGVMZW5ndGh8fGUuYnl0ZU9mZnNldCE9dC5ieXRlT2Zmc2V0KXJldHVybiExO2U9ZS5idWZmZXIsdD10LmJ1ZmZlcjtjYXNlIEM6cmV0dXJuIShlLmJ5dGVMZW5ndGghPXQuYnl0ZUxlbmd0aHx8IXIobmV3IHdlKGUpLG5ldyB3ZSh0KSkpO2Nhc2UgbDpjYXNlIHU6Y2FzZSBoOnJldHVybiBJdCgrZSwrdCk7Y2FzZSBkOnJldHVybiBlLm5hbWU9PXQubmFtZSYmZS5tZXNzYWdlPT10Lm1lc3NhZ2U7Y2FzZSB2OmNhc2UgYjpyZXR1cm4gZT09dCtgYDtjYXNlIG06dmFyIGY9ZGU7Y2FzZSB5OnZhciBwPXMmYTtpZihmfHwoZj1wZSksZS5zaXplIT10LnNpemUmJiFwKXJldHVybiExO3ZhciBnPWMuZ2V0KGUpO2lmKGcpcmV0dXJuIGc9PXQ7c3w9aSxjLnNldChlLHQpO3ZhciBfPUN0KGYoZSksZih0KSxyLG8scyxjKTtyZXR1cm4gYy5kZWxldGUoZSksXztjYXNlIHg6aWYoQmUpcmV0dXJuIEJlLmNhbGwoZSk9PUJlLmNhbGwodCl9cmV0dXJuITF9ZnVuY3Rpb24gVHQoZSx0LG4scixpLG8pe3ZhciBzPWkmYSxjPUIoZSksbD1jLmxlbmd0aDtpZihsIT1CKHQpLmxlbmd0aCYmIXMpcmV0dXJuITE7Zm9yKHZhciB1PWw7dS0tOyl7dmFyIGQ9Y1t1XTtpZighKHM/ZCBpbiB0OmJlLmNhbGwodCxkKSkpcmV0dXJuITF9dmFyIGY9by5nZXQoZSk7aWYoZiYmby5nZXQodCkpcmV0dXJuIGY9PXQ7dmFyIHA9ITA7by5zZXQoZSx0KSxvLnNldCh0LGUpO2Zvcih2YXIgbT1zOysrdTxsOyl7ZD1jW3VdO3ZhciBoPWVbZF0sZz10W2RdO2lmKHIpdmFyIF89cz9yKGcsaCxkLHQsZSxvKTpyKGgsZyxkLGUsdCxvKTtpZighKF89PT12b2lkIDA/aD09PWd8fG4oaCxnLHIsaSxvKTpfKSl7cD0hMTticmVha31tfHwobT1kPT1gY29uc3RydWN0b3JgKX1pZihwJiYhbSl7dmFyIHY9ZS5jb25zdHJ1Y3Rvcix5PXQuY29uc3RydWN0b3I7diE9eSYmYGNvbnN0cnVjdG9yYGluIGUmJmBjb25zdHJ1Y3RvcmBpbiB0JiYhKHR5cGVvZiB2PT1gZnVuY3Rpb25gJiZ2IGluc3RhbmNlb2YgdiYmdHlwZW9mIHk9PWBmdW5jdGlvbmAmJnkgaW5zdGFuY2VvZiB5KSYmKHA9ITEpfXJldHVybiBvLmRlbGV0ZShlKSxvLmRlbGV0ZSh0KSxwfWZ1bmN0aW9uIEV0KGUsdCl7dmFyIG49ZS5fX2RhdGFfXztyZXR1cm4ganQodCk/blt0eXBlb2YgdD09YHN0cmluZ2A/YHN0cmluZ2A6YGhhc2hgXTpuLm1hcH1mdW5jdGlvbiBEdChlKXtmb3IodmFyIHQ9QihlKSxuPXQubGVuZ3RoO24tLTspe3ZhciByPXRbbl0saT1lW3JdO3Rbbl09W3IsaSxQdChpKV19cmV0dXJuIHR9ZnVuY3Rpb24gT3QoZSx0KXt2YXIgbj1sZShlLHQpO3JldHVybiBidChuKT9uOnZvaWQgMH12YXIga3Q9Z3Q7KE9lJiZrdChuZXcgT2UobmV3IEFycmF5QnVmZmVyKDEpKSkhPXd8fGtlJiZrdChuZXcga2UpIT1tfHxBZSYma3QoQWUucmVzb2x2ZSgpKSE9X3x8amUmJmt0KG5ldyBqZSkhPXl8fE1lJiZrdChuZXcgTWUpIT1TKSYmKGt0PWZ1bmN0aW9uKGUpe3ZhciB0PXhlLmNhbGwoZSksbj10PT1nP2UuY29uc3RydWN0b3I6dm9pZCAwLHI9bj9GdChuKTp2b2lkIDA7aWYocilzd2l0Y2gocil7Y2FzZSBQZTpyZXR1cm4gdztjYXNlIEZlOnJldHVybiBtO2Nhc2UgSWU6cmV0dXJuIF87Y2FzZSBMZTpyZXR1cm4geTtjYXNlIFJlOnJldHVybiBTfXJldHVybiB0fSk7ZnVuY3Rpb24gQXQoZSx0KXtyZXR1cm4gdD10Pz9vLCEhdCYmKHR5cGVvZiBlPT1gbnVtYmVyYHx8ZWUudGVzdChlKSkmJmU+LTEmJmUlMT09MCYmZTx0fWZ1bmN0aW9uIGp0KGUpe3ZhciB0PXR5cGVvZiBlO3JldHVybiB0PT1gc3RyaW5nYHx8dD09YG51bWJlcmB8fHQ9PWBzeW1ib2xgfHx0PT1gYm9vbGVhbmA/ZSE9PWBfX3Byb3RvX19gOmU9PT1udWxsfWZ1bmN0aW9uIE10KGUpe3JldHVybiEhdmUmJnZlIGluIGV9ZnVuY3Rpb24gTnQoZSl7dmFyIHQ9ZSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4gZT09PSh0eXBlb2YgdD09YGZ1bmN0aW9uYCYmdC5wcm90b3R5cGV8fGdlKX1mdW5jdGlvbiBQdChlKXtyZXR1cm4gZT09PWUmJiFVdChlKX1mdW5jdGlvbiBGdChlKXtpZihlIT1udWxsKXt0cnl7cmV0dXJuIHllLmNhbGwoZSl9Y2F0Y2h7fXRyeXtyZXR1cm4gZStgYH1jYXRjaHt9fXJldHVybmBgfWZ1bmN0aW9uIEl0KGUsdCl7cmV0dXJuIGU9PT10fHxlIT09ZSYmdCE9PXR9ZnVuY3Rpb24gTHQoZSl7cmV0dXJuIEJ0KGUpJiZiZS5jYWxsKGUsYGNhbGxlZWApJiYoIVRlLmNhbGwoZSxgY2FsbGVlYCl8fHhlLmNhbGwoZSk9PXMpfXZhciBSdD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIHp0KGUpe3JldHVybiBlIT1udWxsJiZIdChlLmxlbmd0aCkmJiFWdChlKX1mdW5jdGlvbiBCdChlKXtyZXR1cm4gV3QoZSkmJnp0KGUpfWZ1bmN0aW9uIFZ0KGUpe3ZhciB0PVV0KGUpP3hlLmNhbGwoZSk6YGA7cmV0dXJuIHQ9PWZ8fHQ9PXB9ZnVuY3Rpb24gSHQoZSl7cmV0dXJuIHR5cGVvZiBlPT1gbnVtYmVyYCYmZT4tMSYmZSUxPT0wJiZlPD1vfWZ1bmN0aW9uIFV0KGUpe3ZhciB0PXR5cGVvZiBlO3JldHVybiEhZSYmKHQ9PWBvYmplY3RgfHx0PT1gZnVuY3Rpb25gKX1mdW5jdGlvbiBXdChlKXtyZXR1cm4hIWUmJnR5cGVvZiBlPT1gb2JqZWN0YH1mdW5jdGlvbiBHdChlLHQpe3JldHVybiBlPT09dHx8eXQoZSx0LER0KHQpKX12YXIgS3Q9YWU/Y2UoYWUpOnh0O2Z1bmN0aW9uIEIoZSl7cmV0dXJuIHp0KGUpP210KGUpOlN0KGUpfXQuZXhwb3J0cz1HdH0pKSgpKTtmdW5jdGlvbiBjZyhlKXtyZXR1cm4gZSYmYHNlbGVjdGlvbnNgaW4gZSYmYG5hbWVgaW4gZX1mdW5jdGlvbiBabmUoZSl7cmV0dXJuIGUua2luZD09PWBTY2FsYXJGaWVsZGB9ZnVuY3Rpb24gUW5lKHtvcGVyYXRpb25WYXJpYWJsZXM6ZSxmaWVsZFZhcmlhYmxlczp0LGFyZ3M6bn0pe3JldHVybiBuPygwLFhuZS5kZWZhdWx0KSgoMCwkbS5nZXRBcmd1bWVudFZhbHVlcykobixlKSx0KTohMH1mdW5jdGlvbiAkbmUoe3BhdGhBcnJheTplLG9wZXJhdGlvbkRlc2NyaXB0b3I6dCx2YXJpYWJsZXM6bixmaWVsZFN0b3JhZ2VLZXk6cixwbHVyYWxGaWVsZHM6aSxhbGlhc2VzOmF9KXtsZXQgbz10LnJvb3Qscz1vLm5vZGUsYz1vLnZhcmlhYmxlcyxsPVsuLi5zLnNlbGVjdGlvbnNdLHU9MCxkPSExO2Zvcig7bC5sZW5ndGg7KXtsZXQgdD1sLmxlbmd0aCxvPWVbdV0scz0hMTtmb3IobGV0IGY9MDtmPHQ7Zis9MSl7bGV0IHQ9bC5zaGlmdCgpO2lmKHQmJihjZyh0KXx8Wm5lKHQpKSYmdC5uYW1lPT09byl7bGV0IGY9bj09bnVsbD92b2lkIDA6bltvXTtpZighZnx8UW5lKHtvcGVyYXRpb25WYXJpYWJsZXM6YyxhcmdzOnQuYXJncyxmaWVsZFZhcmlhYmxlczpmfSkpe2xldCBuPSgwLCRtLmdldFN0b3JhZ2VLZXkpKHQsYyksbz1gJHt1fS4ke3QuYWxpYXM/P3QubmFtZX1gO3Jbb109bixgcGx1cmFsYGluIHQmJnQucGx1cmFsJiZpLmFkZCh1KTtsZXQgZj10LmFsaWFzO2YmJihhW3VdPT09dm9pZCAwJiYoYVt1XT1bXSksYVt1XS5wdXNoKGYpKSx1IT09ZS5sZW5ndGgtMSYmY2codCk/bC5wdXNoKC4uLnQuc2VsZWN0aW9ucyk6ZD0hMCxzPSEwfX1lbHNlIHQmJmBzZWxlY3Rpb25zYGluIHQmJmwucHVzaCguLi50LnNlbGVjdGlvbnMpfWlmKGQpcmV0dXJuITA7cyYmKHUrPTEpfXJldHVybiExfXZhciBsZz1uZXcgTWFwLHVnPW5ldyBNYXAsZGc9bmV3IE1hcCxmZz1uZXcgTWFwO2Z1bmN0aW9uIGVyZSh7cGF0aEFycmF5OmUsdmFyaWFibGVzOnR9KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodD97cGF0aEFycmF5OmUsdmFyaWFibGVzOnR9OntwYXRoQXJyYXk6ZX0pfWZ1bmN0aW9uIHRyZSgpe2xnLmNsZWFyKCksdWcuY2xlYXIoKSxkZy5jbGVhcigpLGZnLmNsZWFyKCl9dmFyIHBnO2Z1bmN0aW9uIG5yZShlKXt0cmUoKSxwZz1lfWZ1bmN0aW9uIHJyZShlLHQpe3JldHVybiB0JiZucmUodCksZnVuY3Rpb24odCl7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKG4scil7bGV0IGk9YXdhaXQgdChuLHIpLGE9ZSgpLG89YS5yZWxheUVudmlyb25tZW50LHM9ci5ncmFwaHFsTWV0YWRhdGEucmVxdWVzdC5pZD8/ci5ncmFwaHFsTWV0YWRhdGEucmVxdWVzdC5jYWNoZUlELGM9cyYmSWgocyk7aWYoIWN8fCFwZ3x8IWEuZmVhdHVyZUZsYWdzLmVuYWJsZUZpZWxkTGV2ZWxNb2NrZXJ8fHBnLmxlbmd0aD09PTB8fGkgaW5zdGFuY2VvZiBFcnJvcilyZXR1cm4gaTtsZXQgbD1hc3luYyBlPT57bGV0IHQ9KDAsWXAuY3JlYXRlT3BlcmF0aW9uRGVzY3JpcHRvcikoYyxyLmdyYXBocWxNZXRhZGF0YS52YXJpYWJsZXMpLG49KDAsWXAuZ2V0UmVxdWVzdElkZW50aWZpZXIpKGMucGFyYW1zLHIuZ3JhcGhxbE1ldGFkYXRhLnZhcmlhYmxlcyksaT1yLmdyYXBocWxNZXRhZGF0YS5yZXF1ZXN0Lm5hbWUsbD1bXSx1PTA7aWYoISghKGBkYXRhYGluIGUpfHwhZS5kYXRhKSl0cnl7Zm9yKGxldCByIG9mIHBnPz9bXSl7aWYoIXIub3BlcmF0aW9uTmFtZXx8ci5vcGVyYXRpb25OYW1lPT09aSl7bGV0IGM9ZS5kYXRhO2ZvcihsZXQgZSBvZiByLmZpZWxkT3ZlcnJpZGUpe2xldCByPWUucGF0aCx1PWUudmFsdWUsZD1lLnZhcmlhYmxlcyxmPWUuZXJyb3JNZXNzYWdlLHA9ZS5kYW5nZXJvdXNseVNldEVycm9yUGF0aDt0cnl7bGV0IGU9ci5zcGxpdChgLmApLG09ZXJlKHtwYXRoQXJyYXk6ZSx2YXJpYWJsZXM6ZH0pLGg9bGcuZ2V0KG0pPz9uZXcgU2V0LGc9dWcuZ2V0KG0pPz97fSxfPWZnLmdldChtKT8/W10sdj1kZy5nZXQobSk/P25ldyBTZXQseT1oLmhhcyhuKXx8JG5lKHtwYXRoQXJyYXk6ZSxvcGVyYXRpb25EZXNjcmlwdG9yOnQsdmFyaWFibGVzOmQsZmllbGRTdG9yYWdlS2V5OmcscGx1cmFsRmllbGRzOnYsYWxpYXNlczpffSk7aWYoeSl7bGV0IHQ9S25lKF8sZSk7Zm9yKGxldCBlIG9mIHQpWW5lKHtkYXRhOmMscGF0aEFycmF5OmUsdmFsdWU6dSxmaWVsZFN0b3JhZ2VLZXk6ZyxwbHVyYWxGaWVsZHM6dixyZWxheVN0b3JlOm8uZ2V0U3RvcmUoKSxsb2dnZXI6YS5sb2dnZXJ9KSxmJiZsLnB1c2goe21lc3NhZ2U6ZixwYXRoOnA/P2V9KTthLmxvZ2dlci5sb2coYFtEYXRhIExheWVyIEZpZWxkIExldmVsIE1vY2tlcl06IEFwcGx5aW5nIG1vY2sgZGF0YSB0byBvcGVyYXRpb24gIiR7aX0iIG9uIGZpZWxkICIke3J9ImApfXkmJihoLmFkZChzKSxsZy5zZXQobSxoKSksZGcuc2V0KG0sdiksdWcuc2V0KG0sZyksZmcuc2V0KG0sXyl9Y2F0Y2goZSl7YS5sb2dnZXIuZXJyb3IoYFtEYXRhIExheWVyIEZpZWxkIExldmVsIE1vY2tlcl06IEVycm9yIGFwcGx5aW5nIG1vY2sgZGF0YSBmb3Igb3BlcmF0aW9uICIke2l9IiBvbiBmaWVsZCAiJHtyfSJgLGUpfX19ci5kZWxheSYmKHU9ci5kZWxheSl9bC5sZW5ndGghPT0wJiYoZS5lcnJvcnM9Wy4uLmUuZXJyb3JzPz9bXSwuLi5sXSksdSYmKGEubG9nZ2VyLmRlYnVnKGBbRGF0YSBMYXllciBGaWVsZCBMZXZlbCBNb2NrZXJdOiBUaGUgJHtpfSBpcyBiZWluZyB0aHJvdHRsZWQgYnkgJHt1fW1zLmApLGF3YWl0IE9tKHUpKX1jYXRjaChlKXthLmxvZ2dlci5lcnJvcihgW0RhdGEgTGF5ZXIgRmllbGQgTGV2ZWwgTW9ja2VyXTogRXJyb3IgcHJvY2Vzc2luZyBtb2NrIGRhdGEuIFBsZWFzZSBtYWtlIHN1cmUgeW91ciAiZmllbGRMZXZlbE1vY2tEYXRhLmpzIiBmaWxlIGlzIHZhbGlkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpc2l0IGh0dHBzOi8vZnJvbnRlbmQuY2JocS5uZXQvZGF0YS1sYXllci9ndWlkZXMvZmllbGQtbGV2ZWwtbW9ja2VyI3N0ZXAtMi1zZXQtdXAtbW9jay1kYXRhYCxlKX1maW5hbGx5e19jKHttZXRyaWNOYW1lOmhtKGBmaWVsZF9sZXZlbF9tb2NrZXIudHJpZ2dlcmApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxfSkscW5lKHQpfX07cmV0dXJuIFVoKHIsaSk/KGkuaXRlcmFibGUoITApLnRyYW5zZm9ybShhc3luYyBmdW5jdGlvbiooZSl7Zm9yIGF3YWl0KGxldCB0IG9mIGUpdCBpbnN0YW5jZW9mIEVycm9yfHxhd2FpdCBsKHQpLHlpZWxkIHR9KSxpKTooYXdhaXQgbChhd2FpdCBpLmpzb24oKSksaSl9fX12YXIgbWc9Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQsbil7c3VwZXIobi5tYXAoZT0+ZS5tZXNzYWdlKS5qb2luKGAKYCkpLHRoaXMubmFtZT1gR3JhcGhxbEVycm9yYCx0aGlzLmdyYXBocWxFcnJvcnM9dm9pZCAwLHRoaXMubWV0YT12b2lkIDAsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsZS5wcm90b3R5cGUpLHRoaXMuZ3JhcGhxbEVycm9ycz1uO2xldCByPXQuaGVhZGVycy5nZXQoYHgtcmVxdWVzdC1pZGApPz9gYCxpPXQuaGVhZGVycy5nZXQoYGNmLXJheWApPz9gYDt0aGlzLm1ldGE9e3JlcXVlc3RJZDpBcnJheS5pc0FycmF5KHIpP3JbMF06cixjZlJheTpBcnJheS5pc0FycmF5KGkpP2lbMF06aX19fTtmdW5jdGlvbiBpcmUoe29uU3RhcnQ6ZSxvbkNvbXBsZXRlOnQsbG9nZ2VyOm49YW19KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKGksYSl7bGV0IG87dHJ5e2xldCB0PXtncmFwaHFsUmVxdWVzdDphLmdyYXBocWxNZXRhZGF0YS5yZXF1ZXN0LHZhcmlhYmxlczphLmdyYXBocWxNZXRhZGF0YS52YXJpYWJsZXMsc3RhcnRUaW1lOkRhdGUubm93KCl9O2U9PW51bGx8fGUodCksbz1hd2FpdCByKGksYSl9Y2F0Y2goZSl7bGV0IHQ9YFVuY2F1Z2h0IGVycm9yIGluIGZldGNoIHN0YWNrOiAke2V9YDtvPW5ldyBzbSh7bWVzc2FnZTp0LGVycm9yOmV9KSxuLmVycm9yKHQse29wZXJhdGlvbk5hbWU6YS5ncmFwaHFsTWV0YWRhdGEucmVxdWVzdC5uYW1lLGVycm9yOmV9KX1sZXQgcztpZihvIGluc3RhbmNlb2YgRXJyb3Ipcz1vO2Vsc2UgaWYoVWgoYSxvKSl0cnl7bGV0IGU9by5pdGVyYWJsZSghMCk7cmV0dXJuIHdtKGFzeW5jKCk9Pnt0cnl7bGV0IHQ9W107Zm9yIGF3YWl0KGxldCBuIG9mIGUpaWYobiBpbnN0YW5jZW9mIEVycm9yKXtsZXQgZT1uO3QucHVzaChlKX1lbHNle2xldCBlPWBlcnJvcnNgaW4gbj9uLmVycm9yczp2b2lkIDA7ZSE9bnVsbCYmZS5sZW5ndGgmJnQucHVzaCguLi5lKX10Lmxlbmd0aCYmKHM9bmV3IG1nKG8sdCksbi5lcnJvcihgR3JhcGhRTCBwYXlsb2FkIGVycm9yc2Ase29wZXJhdGlvbjphLmdyYXBocWxNZXRhZGF0YS5yZXF1ZXN0Lm5hbWUsZ3JhcGhxbEVycm9yOnN9KSl9Y2F0Y2goZSl7bGV0IHQ9YFVuY2F1Z2h0IGVycm9yIGluIHJlc3BvbnNlIGl0ZXJhYmxlIHN0YWNrOiAke2V9YDtzPW5ldyBzbSh7bWVzc2FnZTp0LGVycm9yOmV9KSxuLmVycm9yKHQse29wZXJhdGlvbk5hbWU6YS5ncmFwaHFsTWV0YWRhdGEucmVxdWVzdC5uYW1lLGVycm9yOmV9KX10KHtncmFwaHFsUmVxdWVzdDphLmdyYXBocWxNZXRhZGF0YS5yZXF1ZXN0LHZhcmlhYmxlczphLmdyYXBocWxNZXRhZGF0YS52YXJpYWJsZXMsY29tcGxldGlvblRpbWU6RGF0ZS5ub3coKSxjYWNoZUNvbmZpZ01ldGFkYXRhOmEuZ3JhcGhxbE1ldGFkYXRhLmNhY2hlQ29uZmlnLm1ldGFkYXRhLGVycm9yOnN9KX0pLG99Y2F0Y2goZSl7cz1uZXcgc20oe21lc3NhZ2U6YEludmFsaWQgaW5jcmVtZW50YWwgZGVsaXZlcnkgcmVzcG9uc2UuICR7YS5ncmFwaHFsTWV0YWRhdGEucmVxdWVzdC5uYW1lfWAsZXJyb3I6ZX0pfWVsc2UgdHJ5e2xldCBlPWF3YWl0IG8uanNvbigpLHQ9ZSYmYGVycm9yc2BpbiBlP2UuZXJyb3JzOnZvaWQgMDt0IT1udWxsJiZ0Lmxlbmd0aCYmKHM9bmV3IG1nKG8sdCksbi5lcnJvcihgR3JhcGhRTCBwYXlsb2FkIGVycm9yc2Ase29wZXJhdGlvbjphLmdyYXBocWxNZXRhZGF0YS5yZXF1ZXN0Lm5hbWUsZ3JhcGhxbEVycm9yOnN9KSl9Y2F0Y2goZSl7cz1uZXcgc20oe21lc3NhZ2U6YEludmFsaWQgbmV0d29yayByZXNwb25zZS4gJHthLmdyYXBocWxNZXRhZGF0YS5yZXF1ZXN0Lm5hbWV9YCxlcnJvcjplfSl9cmV0dXJuIHQoe2dyYXBocWxSZXF1ZXN0OmEuZ3JhcGhxbE1ldGFkYXRhLnJlcXVlc3QsdmFyaWFibGVzOmEuZ3JhcGhxbE1ldGFkYXRhLnZhcmlhYmxlcyxjb21wbGV0aW9uVGltZTpEYXRlLm5vdygpLGNhY2hlQ29uZmlnTWV0YWRhdGE6YS5ncmFwaHFsTWV0YWRhdGEuY2FjaGVDb25maWcubWV0YWRhdGEsZXJyb3I6c30pLG99fX1mdW5jdGlvbiBhcmUoZSl7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmxlbmd0aD09PTB9ZnVuY3Rpb24gb3JlKGUsdCl7bGV0IG49T2JqZWN0LmtleXModCkuam9pbihgIiwgImApfHxgPG5vbmU+YDtlLmxvZyhgcG9seWZpbGxBcG9sbG9Sb3V0ZXJTdWJjcmlwdGlvbnM6IEVuY291bnRlcmVkIGFuIGludmFsaWQgc3Vic2NyaXB0aW9uIG1lc3NhZ2Ugd2l0aCBrZXlzICIke259ImApfWZ1bmN0aW9uIHNyZSh7bG9nZ2VyOmU9YW19KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKG4scil7bGV0IGk9YXdhaXQgdChuLHIpO3JldHVybiBpIGluc3RhbmNlb2YgRXJyb3J8fF9tKGkpJiZpLml0ZXJhYmxlKCEwKS50cmFuc2Zvcm0oYXN5bmMgZnVuY3Rpb24qKHQpe2ZvciBhd2FpdChsZXQgbiBvZiB0KXtpZihuIGluc3RhbmNlb2YgRXJyb3Ipe3lpZWxkIG47YnJlYWt9aWYoYXJlKG4pKXt5aWVsZHtkYXRhOnt9LGV4dGVuc2lvbnM6e2hlYXJ0YmVhdDohMH19O2NvbnRpbnVlfWlmKGBlcnJvcnNgaW4gbil7eWllbGQgbi5lcnJvcnMmJm4uZXJyb3JzLmxlbmd0aD4wP25ldyBtZyhpLG4uZXJyb3JzKTpuZXcgbWcoaSxbe3BhdGg6W10sbWVzc2FnZTpgVW5rbm93biB0b3AgbGV2ZWwgZ3JhcGhxbCBlcnJvcmB9XSk7YnJlYWt9aWYoYHBheWxvYWRgaW4gbiYmbi5wYXlsb2FkIT09dm9pZCAwKXtpZihuLnBheWxvYWQ9PT1udWxsKWNvbnRpbnVlO3lpZWxkIG4ucGF5bG9hZDtjb250aW51ZX1vcmUoZSxuKX19KSxpfX19ZnVuY3Rpb24gaGcoZSx0KXtlLmV4dGVuc2lvbnN8fChlLmV4dGVuc2lvbnM9e30pLGUuZXh0ZW5zaW9ucy5pc19maW5hbD0hdH1mdW5jdGlvbiBjcmUoKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKHQsbil7bGV0IHI9YXdhaXQgZSh0LG4pO3JldHVybiByIGluc3RhbmNlb2YgRXJyb3I/cjpVaChuLHIpPyhyLml0ZXJhYmxlKCEwKS50cmFuc2Zvcm0oYXN5bmMgZnVuY3Rpb24qKGUpe2ZvciBhd2FpdChsZXQgdCBvZiBlKWlmKHQgaW5zdGFuY2VvZiBFcnJvcil5aWVsZCB0O2Vsc2V7bGV0IGU9dC5oYXNOZXh0O2lmKGRlbGV0ZSB0Lmhhc05leHQsYGluY3JlbWVudGFsYGluIHQmJnQuaW5jcmVtZW50YWwpZm9yKGxldCBuPTA7bjx0LmluY3JlbWVudGFsLmxlbmd0aDtuKz0xKXtsZXQgcj10LmluY3JlbWVudGFsW25dO2hnKHIsbj09PXQuaW5jcmVtZW50YWwubGVuZ3RoLTE/ZTohMCkseWllbGQgcn1lbHNlIGhnKHQsZSkseWllbGQgdH19KSxyKTooaGcoYXdhaXQgci5qc29uKCksITEpLHIpfX19ZnVuY3Rpb24gbHJlKGUsdCl7cmV0dXJuIHByZShlKXx8ZnJlKGUsdCl8fGRyZShlLHQpfHx1cmUoKX1mdW5jdGlvbiB1cmUoKXt0aHJvdyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiBkcmUoZSx0KXtpZihlKXtpZih0eXBlb2YgZT09YHN0cmluZ2ApcmV0dXJuIGdnKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4gbj09PWBPYmplY3RgJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLG49PT1gTWFwYHx8bj09PWBTZXRgP0FycmF5LmZyb20oZSk6bj09PWBBcmd1bWVudHNgfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9nZyhlLHQpOnZvaWQgMH19ZnVuY3Rpb24gZ2coZSx0KXsodD09bnVsbHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIGZyZShlLHQpe3ZhciBuPWU9PW51bGw/bnVsbDp0eXBlb2YgU3ltYm9sPGB1YCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW2BAQGl0ZXJhdG9yYF07aWYobiE9bnVsbCl7dmFyIHIsaSxhLG8scz1bXSxjPSEwLGw9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LHQ9PT0wKXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKHMucHVzaChyLnZhbHVlKSxzLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXtsPSEwLGk9ZX1maW5hbGx5e3RyeXtpZighYyYmbi5yZXR1cm4hPW51bGwmJihvPW4ucmV0dXJuKCksT2JqZWN0KG8pIT09bykpcmV0dXJufWZpbmFsbHl7aWYobCl0aHJvdyBpfX1yZXR1cm4gc319ZnVuY3Rpb24gcHJlKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9ZnVuY3Rpb24gX2coZSl7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQoU3RyaW5nKGUpKSkmJmlzRmluaXRlKE51bWJlcihlKSl9ZnVuY3Rpb24gdmcoZSl7cmV0dXJuIGUmJmBzZWxlY3Rpb25zYGluIGUmJmBuYW1lYGluIGV9ZnVuY3Rpb24gbXJlKGUpe3JldHVybiBlLmtpbmQ9PT1gU2NhbGFyRmllbGRgfWZ1bmN0aW9uIHlnKGUpe3ZhciB0O3JldHVybigodD1lLmNvbmNyZXRlVHlwZSk9PW51bGw/dm9pZCAwOnQuZW5kc1dpdGgoYENvbm5lY3Rpb25gKSk/PyExfWZ1bmN0aW9uIGJnKGUsdCl7cmV0dXJuIGU9PT10Lmxlbmd0aC0xfWZ1bmN0aW9uIGhyZShlKXtyZXR1cm4gWHAoZSkmJmBpZGBpbiBlJiZ0eXBlb2YgZS5pZD09YHN0cmluZ2B9ZnVuY3Rpb24gZ3JlKGUpe3JldHVybiBlLnJlcGxhY2UoL2FmdGVyOiJbXiJdKiIsPy8sYGApfWZ1bmN0aW9uIHhnKGUsdCl7bGV0IG49ZTt0cnl7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aC0xJiZuO2UrPTEpbj1uW3RbZV1dO2xldCBlPXRbdC5sZW5ndGgtMV07cmV0dXJue3BhcmVudDpuLGtleTplLHZhbHVlOm5bZV19fWNhdGNoe3JldHVybiBudWxsfX12YXIgU2c9e3RhcmdldFJlY29yZDp2b2lkIDAsaXNDb25uZWN0aW9uOiExfTtmdW5jdGlvbiBDZyh7Y3VycmVudEluZGV4OmUsY3VycmVudFNlbGVjdGlvbjp0LHBhcmVudFJlY29yZFBvaW50ZXI6bixlcnJvclBhdGg6cix2YXJpYWJsZXM6aSxzdG9yZVJlY29yZFNvdXJjZTphfSl7aWYoIW4pcmV0dXJuIFNnO2xldCBvPXJbZV07aWYodCYmKHZnKHQpfHxtcmUodCkpJiYodC5uYW1lPT09b3x8dC5hbGlhcz09PW8pKXtsZXQgcz0oMCxZcC5nZXRTdG9yYWdlS2V5KSh0LGkpO2lmKCFzKXRocm93IEVycm9yKGBVbmFibGUgdG8gZ2V0IHN0b3JhZ2Uga2V5ICR7dC5hbGlhcz8/dC5uYW1lfSBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiB0aGUgcmVsYXkgc3RvcmVgKTtpZih2Zyh0KSl7bGV0IG89blt5Zyh0KT9ncmUocyk6c107aWYoIW8pcmV0dXJuIFNnO2xldCBjLGw9ZSsxO2lmKGBwbHVyYWxgaW4gdCYmdC5wbHVyYWwpe2xldCBpPW9bWXAuUkVGU19LRVldO2lmKCFBcnJheS5pc0FycmF5KGkpfHxpLmxlbmd0aD09PTApcmV0dXJuIFNnO2lmKGJnKGUscikpcmV0dXJue3RhcmdldFJlY29yZDpuLGlzQ29ubmVjdGlvbjp5Zyh0KX07bGV0IGE9cltlKzFdO2lmKCFfZyhhKSl0aHJvdyBFcnJvcihgSW52YWxpZCBlcnJvciBwYXRoIC0gZXhwZWN0ZWQgYSBudW1iZXIgZm9sbG93aW5nIGEgcGx1cmFsIGZpZWxkYCk7Yz1pW2FdLGwrPTF9ZWxzZSBjPW9bWXAuUkVGX0tFWV07aWYoIWMpcmV0dXJuIFNnO2xldCB1PWEuZ2V0KGMpO2lmKCF1KXJldHVybiBTZztpZihiZyhlLHIpKXJldHVybnt0YXJnZXRSZWNvcmQ6bixpc0Nvbm5lY3Rpb246eWcodCl9O2lmKGBzZWxlY3Rpb25zYGluIHQpZm9yKGxldCBlIG9mIHQuc2VsZWN0aW9ucyl7bGV0IHQ9Q2coe2N1cnJlbnRJbmRleDpsLGN1cnJlbnRTZWxlY3Rpb246ZSxwYXJlbnRSZWNvcmRQb2ludGVyOnUsZXJyb3JQYXRoOnIsdmFyaWFibGVzOmksc3RvcmVSZWNvcmRTb3VyY2U6YX0pO2lmKHQudGFyZ2V0UmVjb3JkIT09dm9pZCAwKXJldHVybiB0fX1lbHNlIHJldHVybihuPT1udWxsP3ZvaWQgMDpuW29dKT09bnVsbD9TZzp7dGFyZ2V0UmVjb3JkOm4saXNDb25uZWN0aW9uOiExfX1lbHNlIGlmKGBzZWxlY3Rpb25zYGluIHQpZm9yKGxldCBvIG9mIHQuc2VsZWN0aW9ucyl7bGV0IHQ9Q2coe2N1cnJlbnRJbmRleDplLGN1cnJlbnRTZWxlY3Rpb246byxwYXJlbnRSZWNvcmRQb2ludGVyOm4sZXJyb3JQYXRoOnIsdmFyaWFibGVzOmksc3RvcmVSZWNvcmRTb3VyY2U6YX0pO2lmKHQudGFyZ2V0UmVjb3JkIT09dm9pZCAwKXJldHVybiB0fXJldHVybiBTZ31mdW5jdGlvbiBfcmUoZSx0KXtsZXQgbj1lO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgcj10W2VdO2lmKFhwKG4pJiZ0eXBlb2Ygcj09YHN0cmluZ2Ape2xldCBpPW5bcl07aWYoaT09PW51bGwpcmV0dXJuIHQuc2xpY2UoMCxlKzEpO2lmKFhwKGkpfHxBcnJheS5pc0FycmF5KGkpKXtuPWk7Y29udGludWV9fWlmKEFycmF5LmlzQXJyYXkobikmJnR5cGVvZiByPT1gbnVtYmVyYCl7bGV0IGk9bltyXTtpZihpPT09bnVsbClyZXR1cm4gdC5zbGljZSgwLGUrMSk7aWYoWHAoaSl8fEFycmF5LmlzQXJyYXkoaSkpe249aTtjb250aW51ZX19YnJlYWt9cmV0dXJuIHR9ZnVuY3Rpb24gd2coZSx0KXtmb3IobGV0IG49dC5sZW5ndGgtMjtuPj0wO24tLSl7bGV0IHI9eGcoZSx0LnNsaWNlKDAsbisxKSk7aWYoIXIpcmV0dXJuO2xldCBpPXIudmFsdWU7aWYoaT09bnVsbClyZXR1cm47aWYoaHJlKGkpKXJldHVybltpLmlkLHQuc2xpY2UobisxLHQubGVuZ3RoKV19fWZ1bmN0aW9uIFRnKGUsdCxuLHIpe3ZhciBpO2lmKCEoIWUuZGF0YXx8ISgoaT1lLmVycm9ycykhPW51bGwmJmkubGVuZ3RoKSkpdHJ5e2xldCBpPXQmJkloKHQpO2lmKCFpKXJldHVybjtsZXQgbz0oMCxZcC5jcmVhdGVPcGVyYXRpb25EZXNjcmlwdG9yKShpLG4pLHM9ci5yZWxheUVudmlyb25tZW50LmdldFN0b3JlKCksYz1vLnJvb3Qubm9kZTtpZihgZXJyb3JzYGluIGUpe3ZhciBhOyhhPWUuZXJyb3JzKT09bnVsbHx8YS5mb3JFYWNoKHQ9PntpZighKGBwYXRoYGluIHQpfHwhKGBkYXRhYGluIGUmJmUuZGF0YSkpcmV0dXJuO2xldCBpPXQucGF0aDtpZihfZyhpW2kubGVuZ3RoLTFdKSlyZXR1cm47bGV0IGE9cy5nZXRTb3VyY2UoKSxvPWEuZ2V0KFlwLlJPT1RfSUQpLGw9X3JlKGUuZGF0YSxpKSx1PWMuc2VsZWN0aW9ucztpZihvPT1udWxsKXRocm93IEVycm9yKGBSb290IHJlY29yZCBub3QgZm91bmQgaW4gdGhlIHJlbGF5IHN0b3JlYCk7bGV0IGQsZj1vLHA9bDtpZihyLmZlYXR1cmVGbGFncy5lbmFibGVSZW1vdmVQYXJ0aWFsUmVhZE51bGxzVHJhdmVyc2FsRW50cnlQb2ludE9wdGltaXphdGlvbil7bGV0IHQ9d2coZS5kYXRhLGwpO2lmKHQpe2xldCBlPWxyZSh0LDIpLG49ZVswXSxyPWVbMV0saT1hLmdldChuKTtpJiYoZj1pLHA9cil9fWZvcihsZXQgZSBvZiB1KXtsZXQgdD1DZyh7Y3VycmVudEluZGV4OjAsY3VycmVudFNlbGVjdGlvbjplLHBhcmVudFJlY29yZFBvaW50ZXI6ZixlcnJvclBhdGg6cCx2YXJpYWJsZXM6bixzdG9yZVJlY29yZFNvdXJjZTphfSk7aWYodC50YXJnZXRSZWNvcmQhPT12b2lkIDApe2Q9dDticmVha319aWYoKGQ9PW51bGw/dm9pZCAwOmQudGFyZ2V0UmVjb3JkKT09PXZvaWQgMClyZXR1cm47bGV0IG09eGcoZS5kYXRhLGwpOyFtfHxtLnZhbHVlIT09bnVsbHx8KGQuaXNDb25uZWN0aW9uP20ucGFyZW50W20ua2V5XT1bXTpkZWxldGUgbS5wYXJlbnRbbS5rZXldKX0pfX1jYXRjaChlKXtyLmxvZ2dlci5lcnJvcihgRXJyb3IgZmlsdGVyaW5nIG51bGxzIGZyb20gcmVzcG9uc2VgLGUpfX1mdW5jdGlvbiB2cmUoZSx0KXt0cnl7aWYoYGVycm9yc2BpbiBlJiZlLmVycm9ycyYmZS5lcnJvcnMubGVuZ3RoPjApZm9yKGxldCB0IG9mIGUuZXJyb3JzKXtpZighKGBwYXRoYGluIHQpfHwhZS5kYXRhKXJldHVybjtsZXQgbj10LnBhdGgscj14ZyhlLmRhdGEsbik7aWYoIXJ8fHIudmFsdWUhPT1udWxsKXJldHVybjtkZWxldGUgci5wYXJlbnRbci5rZXldfX1jYXRjaChlKXt0LmxvZ2dlci5lcnJvcihgRXJyb3IgZmlsdGVyaW5nIG51bGxzIGZyb20gc3Vic2NyaXB0aW9uIHJlc3VsdGAsZSl9fWZ1bmN0aW9uIEVnKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYXN5bmMgZnVuY3Rpb24obixyKXtsZXQgaT1hd2FpdCB0KG4scik7cmV0dXJuIGkgaW5zdGFuY2VvZiBFcnJvcj9pOlVoKHIsaSk/KGkuaXRlcmFibGUoITApLnRyYW5zZm9ybShhc3luYyBmdW5jdGlvbioodCl7Zm9yIGF3YWl0KGxldCBuIG9mIHQpbiBpbnN0YW5jZW9mIEVycm9yfHxUZyhuLHIuZ3JhcGhxbE1ldGFkYXRhLnJlcXVlc3QuaWQsci5ncmFwaHFsTWV0YWRhdGEudmFyaWFibGVzLGUoKSkseWllbGQgbn0pLGkpOnduZShyKT8oaS5pdGVyYWJsZSghMCkudHJhbnNmb3JtKGFzeW5jIGZ1bmN0aW9uKih0KXtmb3IgYXdhaXQobGV0IG4gb2YgdCluIGluc3RhbmNlb2YgRXJyb3J8fHZyZShuLGUoKSkseWllbGQgbn0pLGkpOihUZyhhd2FpdCBpLmpzb24oKSxyLmdyYXBocWxNZXRhZGF0YS5yZXF1ZXN0LmlkLHIuZ3JhcGhxbE1ldGFkYXRhLnZhcmlhYmxlcyxlKCkpLGkpfX19ZnVuY3Rpb24geXJlKGUpe3JldHVybiBlIGluc3RhbmNlb2YgZW0/YGFwaWA6ZSBpbnN0YW5jZW9mIFRtP2ByZXF1ZXN0X3RpbWVvdXRgOmUgaW5zdGFuY2VvZiBzbT9gbmV0d29ya2A6YHVua25vd25gfXZhciBicmU9bmV3IFNldCx4cmU9MWUzKjE2LERnPVswLDFlMyw1ZTMsMWU0LDNlNF0sU3JlPURnW0RnLmxlbmd0aC0xXSxDcmU9NWUzO2Z1bmN0aW9uIHdyZShlKXtyZXR1cm5gZXh0ZW5zaW9uc2BpbiBlJiZlLmV4dGVuc2lvbnMhPW51bGwmJihgaGVhcnRiZWF0YGluIGUuZXh0ZW5zaW9uc3x8YHNzZV9oZWFydGJlYXRgaW4gZS5leHRlbnNpb25zKX1mdW5jdGlvbiBUcmUoZSl7cmV0dXJuIGUuZ3JhcGhxbEVycm9ycy5zb21lKGU9Pnt2YXIgdDtyZXR1cm4oKHQ9ZS5leHRlbnNpb25zKT09bnVsbD92b2lkIDA6dC5jb2RlKT09PWBTVUJTQ1JJUFRJT05fU0NIRU1BX1JFTE9BRGB9KX1mdW5jdGlvbiBFcmUoe2dyYXBocWxVcmw6ZSxtaWRkbGV3YXJlOnQsbmV0d29ya0ZldGNoOm4sZ2V0R3JhcGhxbEVudmlyb25tZW50OnIsZ2V0UGVyc2lzdGVkUXVlcmllczppLGxvZ2dlcjphPWFtfSl7bGV0IG89bjtmb3IobGV0IGU9dC5sZW5ndGgtMTtlPj0wOy0tZSl7bGV0IG49dFtlXTtuJiYobz1uKG8pKX1yZXR1cm4gZnVuY3Rpb24odCxuLHMpe3ZhciBjO2xldCBsPSExLHU9KChjPXMubWV0YWRhdGEpPT1udWxsP3ZvaWQgMDpjLmRpc2FibGVSZWNvbm5lY3RzKT09PSEwLGQ9MCxmLHA9KCk9PntsPSEwfSxtPSgpPT57Zj1zZXRUaW1lb3V0KCgpPT57LS1kLGQ+MD9tKCk6Zj12b2lkIDB9LFNyZSl9LGg9YXN5bmMoKT0+e2lmKGQ+MCl7bGV0IGU9RGdbZC0xXTthd2FpdCBPbShlKSxtKCl9fSxnPSgpPT57ZiYmKGNsZWFyVGltZW91dChmKSxmPXZvaWQgMCksZDxEZy5sZW5ndGgmJihkKz0xKX0sXz0oe29wZXJhdGlvbjplLHJlYXNvbjp0LHByb3RvY29sOm59KT0+e19jKHttZXRyaWNOYW1lOmhtKGBncmFwaHFsX3N1YnNjcmlwdGlvbl9mZXRjaGVyLnJlY29ubmVjdGApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6e29wZXJhdGlvbjplLHByb3RvY29sOm4scmVhc29uOnR9fSl9O3JldHVybiBZcC5PYnNlcnZhYmxlLmNyZWF0ZShjPT57bGV0IGQ9ZT0+e3RyeXtlLmRhdGEhPW51bGwmJmMubmV4dChlKX1jYXRjaHthLmVycm9yKGBGYWlsZWQgdG8gc3luYyBwYXlsb2FkIHRvIFJlbGF5IHN0b3JlLmAse2lkOnQuaWQsbmFtZTp0Lm5hbWUscXVlcnlNZXRhZGF0YTp0Lm1ldGFkYXRhLGdyYXBocWxFcnJvcnM6ZS5lcnJvcnN9KX19LGY9MCxtPSExLHYseT1gZGlzY29ubmVjdGAsYj1gdW5rbm93bmAseCxTPSgpPT57eD09bnVsbHx8eC5hYm9ydCgpfSxDLHc9KCk9PntDJiZjbGVhclRpbWVvdXQoQyksQz12b2lkIDB9LFQ9KCk9PntDJiZ3KCksQz1zZXRUaW1lb3V0KCgpPT57eT09PWBkaXNjb25uZWN0YCYmKHk9YGhlYXJ0YmVhdF90aW1lb3V0YCksUygpfSx4cmUpfSxFPWAke2V9P2AsRD1hc3luYygpPT5pJiZ0LmlkPyhhd2FpdCBpKCkpW3QuaWRdOnQudGV4dDtyZXR1cm4oYXN5bmMoKT0+e2xldCBlPWF3YWl0IEQoKSxpPWFzeW5jKCk9Pnt4PW5ldyBBYm9ydENvbnRyb2xsZXIseT1gZGlzY29ubmVjdGA7dHJ5e19jKHttZXRyaWNOYW1lOmhtKGBncmFwaHFsX3N1YnNjcmlwdGlvbl9mZXRjaGVyLnJlcXVlc3RfY291bnRgKSxtZXRyaWNUeXBlOkIuY291bnQsdmFsdWU6MSx0YWdzOntvcGVyYXRpb246dC5uYW1lfX0pO2xldCBpPXtib2R5OkpTT04uc3RyaW5naWZ5KHtxdWVyeTplLG9wZXJhdGlvbk5hbWU6dC5uYW1lLHZhcmlhYmxlczpufSksbWV0aG9kOmBQT1NUYCxncmFwaHFsTWV0YWRhdGE6e3JlcXVlc3Q6dCx2YXJpYWJsZXM6bixjYWNoZUNvbmZpZzpzfSxlbmFibGVSZXRyaWVzOiEwLHNpZ25hbDp4LnNpZ25hbH0sbD1hd2FpdCBvKEUsaSk7aWYobCBpbnN0YW5jZW9mIEVycm9yKXtpZih4LnNpZ25hbC5hYm9ydGVkKXJldHVybjtsIGluc3RhbmNlb2YgZW0mJihiPXltKGwucmVzcG9uc2UpKSxhLmVycm9yKGBTdWJzY3JpcHRpb24gZmV0Y2ggZmFpbGVkYCx7dXJsOkUsZXJyb3I6bCxwcm90b2NvbDpifSksX2Moe21ldHJpY05hbWU6aG0oYGdyYXBocWxfc3Vic2NyaXB0aW9uX2ZldGNoZXIucmVxdWVzdF9lcnJvcl9jb3VudGApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6e29wZXJhdGlvbjp0Lm5hbWUsZXJyb3JfdHlwZTp5cmUobCkscHJvdG9jb2w6YixzdGF0dXM6bCBpbnN0YW5jZW9mIGVtP1N0cmluZyhsLnN0YXR1cyk6YC0xYH19KSxjLmVycm9yKGwpO3JldHVybn1pZihiPXltKGwpLHIoKS5mZWF0dXJlRmxhZ3MuZW5hYmxlRGVidWdTdWJzY3JpcHRpb25UZXJtaW5hdG9yJiZicmUuaGFzKHQubmFtZSkpe2MuZXJyb3IoRXJyb3IoYFNpbXVsYXRlZCBlcnJvciBmcm9tIHN1YnNjcmlwdGlvbiB0ZXJtaW5hdG9yYCkpLFMoKTtyZXR1cm59X2Moe21ldHJpY05hbWU6aG0oYGdyYXBocWxfc3Vic2NyaXB0aW9uX2ZldGNoZXIucmVxdWVzdF9zdWNjZXNzX2NvdW50YCksbWV0cmljVHlwZTpCLmNvdW50LHZhbHVlOjEsdGFnczp7b3BlcmF0aW9uOnQubmFtZSxwcm90b2NvbDpifX0pO3RyeXtsZXQgZT1sLml0ZXJhYmxlKCksbj0hMTtmb3IgYXdhaXQobGV0IHIgb2YgZSl7bGV0IGU9IW47aWYobj0hMCxyIGluc3RhbmNlb2YgbWcpe2xldCBuPXI7aWYodj1uLGEuZXJyb3IoYFN1YnNjcmlwdGlvbiB0b3AgbGV2ZWwgdHJhbnNwb3J0IGVycm9yIGVuY291bnRlcmVkYCx7dXJsOkUsZXJyb3I6bixwcm90b2NvbDpifSksX2Moe21ldHJpY05hbWU6aG0oYGdyYXBocWxfc3Vic2NyaXB0aW9uX2ZldGNoZXIuc3RyZWFtX2Vycm9yX2NvdW50YCksbWV0cmljVHlwZTpCLmNvdW50LHZhbHVlOjEsdGFnczp7b3BlcmF0aW9uOnQubmFtZSxwcm90b2NvbDpiLGVycm9yX3R5cGU6YHRvcF9sZXZlbF90cmFuc3BvcnRgfX0pLFRyZShuKSl7eT1gc3Vic2NyaXB0aW9uX3NjaGVtYV9yZWxvYWRgO2JyZWFrfW0mJmY+PTEmJmMuZXJyb3IobiksZj49MyYmYy5lcnJvcihuKSxmKz0xLGUmJihtPSEwKSx5PWB0b3BfbGV2ZWxfdHJhbnNwb3J0X2Vycm9yYDticmVha31pZihtPSExLHIgaW5zdGFuY2VvZiBFcnJvcil7aWYoeC5zaWduYWwuYWJvcnRlZClyZXR1cm47dj1yLF9jKHttZXRyaWNOYW1lOmhtKGBncmFwaHFsX3N1YnNjcmlwdGlvbl9mZXRjaGVyLnN0cmVhbV9lcnJvcl9jb3VudGApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6e29wZXJhdGlvbjp0Lm5hbWUscHJvdG9jb2w6YixlcnJvcl90eXBlOmBzdHJlYW1fcmVhZGB9fSksZj0wLHk9YHN0cmVhbV9yZWFkX2Vycm9yYDticmVha312PXZvaWQgMCx1fHxUKCksIXdyZShyKSYmZChyKX19Y2F0Y2goZSl7YS5lcnJvcihgU3Vic2NyaXB0aW9uIHN0cmVhbSB0aHJldyBlcnJvciBkdXJpbmcgcHJvY2Vzc2luZy5gLHt1cmw6RSxlcnJvcjplLHByb3RvY29sOmJ9KSxfYyh7bWV0cmljTmFtZTpobShgZ3JhcGhxbF9zdWJzY3JpcHRpb25fZmV0Y2hlci5zdHJlYW1fZXJyb3JfY291bnRgKSxtZXRyaWNUeXBlOkIuY291bnQsdmFsdWU6MSx0YWdzOntvcGVyYXRpb246dC5uYW1lLHByb3RvY29sOmIsZXJyb3JfdHlwZTpgZXhjZXB0aW9uYH19KSxjLmVycm9yKG5ldyBzbSh7bWVzc2FnZTpgU3Vic2NyaXB0aW9uIHN0cmVhbSB0aHJldyBlcnJvciBkdXJpbmcgcHJvY2Vzc2luZy5gLGVycm9yOmV9KSl9dygpfWNhdGNoKGUpe2EuZXJyb3IoYFN1YnNjcmlwdGlvbiBmZXRjaCB0aHJldyBlcnJvciB3aGVuIGl0IHNob3VsZCBiZSBub24tdGhyb3dpbmcuYCx7dXJsOkUsZXJyb3I6ZX0pLF9jKHttZXRyaWNOYW1lOmhtKGBncmFwaHFsX3N1YnNjcmlwdGlvbl9mZXRjaGVyLnJlcXVlc3RfZXJyb3JfY291bnRgKSxtZXRyaWNUeXBlOkIuY291bnQsdmFsdWU6MSx0YWdzOntvcGVyYXRpb246dC5uYW1lLHByb3RvY29sOmIsZXJyb3JfdHlwZTpgZXhjZXB0aW9uYH19KSxjLmVycm9yKG5ldyBzbSh7bWVzc2FnZTpgU3Vic2NyaXB0aW9uIGZldGNoIHRocmV3IGVycm9yIHdoZW4gaXQgc2hvdWxkIGJlIG5vbi10aHJvd2luZy5gLGVycm9yOmV9KSl9fTtmb3IoOyFjLmNsb3NlZDspe2xldCBlPSFsLG49bDtpZihlJiZwKCksYXdhaXQgaCgpLGMuY2xvc2VkfHwobiYmKF8oe29wZXJhdGlvbjp0Lm5hbWUscHJvdG9jb2w6YixyZWFzb246eX0pLHk9PT1gc3Vic2NyaXB0aW9uX3NjaGVtYV9yZWxvYWRgJiZhd2FpdCBPbShNYXRoLnJhbmRvbSgpKkNyZSkpLGMuY2xvc2VkKSlicmVhaztpZihhd2FpdCBpKCkseD09bnVsbHx8eC5hYm9ydCgpLHUpe3Y/Yy5lcnJvcih2KTpjLmNvbXBsZXRlKCk7YnJlYWt9ZygpfX0pKCkse2Nsb3NlZDohMSx1bnN1YnNjcmliZTooKT0+e1MoKX19fSl9fWZ1bmN0aW9uIE9nKGUpe2xldCB0PVlwLlJlY29yZFNvdXJjZS5jcmVhdGUoZSksbj1uZXcgU2V0LHIsaT1uZXcgU2V0LGE9ZT0+e2UmJihBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaChlPT5pLmFkZChlKSk6aS5hZGQoZSkpLHJ8fChyPXdtKCgpPT57bi5mb3JFYWNoKGU9PntlKGkpfSksaT1uZXcgU2V0LHI9dm9pZCAwfSkpfSxvPXQuc2V0O3Quc2V0PShlLG4pPT57by5jYWxsKHQsZSxuKSxhKGUpfTtsZXQgcz10LmNsZWFyO3QuY2xlYXI9KCk9PntsZXQgZT10LmdldFJlY29yZElEcygpO3MuY2FsbCh0KSxhKGUpfTtsZXQgYz10LmRlbGV0ZTt0LmRlbGV0ZT1lPT57Yy5jYWxsKHQsZSksYShlKX07bGV0IGw9dC5yZW1vdmU7cmV0dXJuIHQucmVtb3ZlPWU9PntsLmNhbGwodCxlKSxhKGUpfSxPYmplY3QuYXNzaWduKHQse29uVXBkYXRlZDplPT4obi5hZGQoZSksKCk9Pm4uZGVsZXRlKGUpKSxnZXRQZW5kaW5nVXBkYXRlSWRzOigpPT5uZXcgU2V0KGkpfSl9dmFyIERyZT1ZcC5fX2ludGVybmFsLmdldE9wZXJhdGlvblZhcmlhYmxlcztmdW5jdGlvbiBPcmUoZSl7cmV0dXJuYGdyYXBocWxFcnJvcnNgaW4gZT9lLmdyYXBocWxFcnJvcnMuc29tZShlPT57dmFyIHQ7cmV0dXJuKCh0PWUuZXh0ZW5zaW9ucyk9PW51bGx8fCh0PXQuZXJyb3JNZXRhZGF0YSk9PW51bGw/dm9pZCAwOnQuYWN0aW9uYWJsZSk/PyEwfSk6ITB9ZnVuY3Rpb24ga3JlKGUpe3JldHVybntuYW1lOmUubmFtZSxzdGF0dXM6YHN0YXR1c2BpbiBlP2Uuc3RhdHVzOnZvaWQgMCxtZXNzYWdlOmUubWVzc2FnZSxncmFwaHFsRXJyb3JzOmBncmFwaHFsRXJyb3JzYGluIGU/ZS5ncmFwaHFsRXJyb3JzOnZvaWQgMCxpc1F1ZXJ5RXJyb3JBY3Rpb25hYmxlOk9yZShlKX19ZnVuY3Rpb24ga2coZSx0KXtsZXQgbj17fTtmb3IobGV0IGUgaW4gdCl0W2VdIT09bnVsbCYmdFtlXSE9PXZvaWQgMCYmKG5bZV09dFtlXSk7cmV0dXJuKDAsWXAuZ2V0UmVxdWVzdElkZW50aWZpZXIpKGUsbil9ZnVuY3Rpb24gQWcoZSx0KXtsZXQgbj0oMCxZcC5nZXRSZXF1ZXN0KShlKTtpZihuIT1udWxsJiZuLm9wZXJhdGlvbilyZXR1cm4ga2cobi5wYXJhbXMsRHJlKG4ub3BlcmF0aW9uLG4ucGFyYW1zLnByb3ZpZGVkVmFyaWFibGVzLHQpKX1mdW5jdGlvbiBqZyhlKXt2YXIgdCxuO2xldCByPWU9PW51bGx8fCh0PWUuX19mcmFnbWVudE93bmVyKT09bnVsbD92b2lkIDA6dC5ub2RlLGk9KGU9PW51bGx8fChuPWUuX19mcmFnbWVudE93bmVyKT09bnVsbD92b2lkIDA6bi52YXJpYWJsZXMpPz97fTtpZihyKXJldHVybiBBZyhyLGkpfWZ1bmN0aW9uIEFyZShlKXtyZXR1cm4gZS5xdWVyeUVycm9yIT09dm9pZCAwfWZ1bmN0aW9uIGpyZSh7bG9nZ2VyOmV9KXtyZXR1cm4gdD0+e3N3aXRjaCh0LmtpbmQpe2Nhc2VgbWlzc2luZ19yZXF1aXJlZF9maWVsZC5sb2dgOmUud2FybihgTWlzc2luZyBGaWVsZDogQHJlcXVpcmVkKGFjdGlvbjogTE9HKWAsdCk7YnJlYWs7Y2FzZWBtaXNzaW5nX3JlcXVpcmVkX2ZpZWxkLnRocm93YDplLmVycm9yKGBNaXNzaW5nIEZpZWxkOiBAcmVxdWlyZWQoYWN0aW9uOiBUSFJPVylgLHQpO2JyZWFrO2Nhc2VgcmVsYXlfcmVzb2x2ZXIuZXJyb3JgOmUuZXJyb3IoYFJlbGF5IFJlc29sdmVyIHRocmV3IGFuIGVycm9yYCx0KTticmVhaztjYXNlYG1pc3NpbmdfZXhwZWN0ZWRfZGF0YS50aHJvd2A6ZS5lcnJvcihgTWlzc2luZyBleHBlY3RlZCBkYXRhOiBAZXhwZWN0ZWRFcnJvcmAsdCk7YnJlYWs7Y2FzZWBtaXNzaW5nX2V4cGVjdGVkX2RhdGEubG9nYDplLndhcm4oYE1pc3NpbmcgZXhwZWN0ZWQgZGF0YTogQGV4cGVjdGVkRXJyb3IuIGh0dHBzOi8vcmVsYXkuZGV2L2RvY3MvbmV4dC9hcGktcmVmZXJlbmNlL2ZpZWxkLWxvZ2dlci8jbWlzc2luZy1leHBlY3RlZC1kYXRhLWxvZ2AsdCksX2Moe21ldHJpY05hbWU6aG0oYG1pc3NpbmdfZXhwZWN0ZWRfZGF0YS5jb3VudGApLG1ldHJpY1R5cGU6Qi5jb3VudCx0YWdzOntmaWVsZFBhdGg6dC5maWVsZFBhdGgsb3duZXI6dC5vd25lcn0sdmFsdWU6MX0pO2JyZWFrO2RlZmF1bHQ6dC5raW5kfX19dmFyIE1nPWBWbWxsZDJWeU9qQT1gLE5nO2Z1bmN0aW9uIE1yZShlLHQpe2xldCBuPWUuZ2V0KGBjbGllbnQ6cm9vdGApO2lmKG4mJmB2aWV3ZXJgaW4gbiYmbi52aWV3ZXImJmBfX3JlZmBpbiBuLnZpZXdlcil7bGV0IGU9bi52aWV3ZXIuX19yZWY7ZSE9PU1nJiYodC5lcnJvcihgW2RhdGEgbGF5ZXJdICEhISBXQVJOSU5HOiBWaWV3ZXIuaWQgY2hhbmdlZCBkdXJpbmcgdGhlIGxhc3Qgc3RvcmUgdXBkYXRlLiBUaGlzIGNhdXNlcyBwYXJ0aWFsIGNhY2hlIGludmFsaWRhdGlvbiB3aGljaCBsaWtlbHkgYnJlYWtzIHRoZSBhcHAuYCksZSE9PU5nJiZfYyh7bWV0cmljTmFtZTpobShgZW52aXJvbm1lbnQudmlld2VyX2ludmFsaWRhdGlvbl9ndWFyZHJhaWwudmlld2VyX2ludmFsaWRlZF9jb3VudGApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxfSksTmc9ZSksZT09PU1nJiYoTmc9dm9pZCAwKX19ZnVuY3Rpb24gUGcoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBGZyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9QZyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7TnJlKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOlBnKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBOcmUoZSx0LG4pe3JldHVybih0PVByZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBQcmUoZSl7dmFyIHQ9RnJlKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIEZyZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfXZhciBJcmU9MWUzLExyZT0xMCxScmU9MTAqMTAyNCoxMDI0LHpyZT1gbXVsdGlwYXJ0L21peGVkO3N1YnNjcmlwdGlvblNwZWM9IjEuMCIsIGFwcGxpY2F0aW9uL2pzb25gLEJyZT1gdGV4dC9ldmVudC1zdHJlYW1gLFZyZT17InZlcnktc2hvcnQiOjYwKjFlMyxzaG9ydDozMDAqMWUzLG1lZGl1bToxODAwKjFlMywic2luZ2xlLWRheSI6MTQ0MCo2MCoxZTMsZm9yZXZlcjozNjUqMjQqNjAqNjAqMWUzfSxIcmU9Y2xhc3N7Y29uc3RydWN0b3Ioe2dyYXBocWxVcmw6ZSxuZXR3b3JrRmV0Y2g6dD1RbShabSksc3Vic2NyaXB0aW9uRmV0Y2g6bixnZXRQZXJzaXN0ZWRRdWVyaWVzOnIsc2VyaWFsaXplZENhY2hlOmksbG9nZ2VyOmE9YW0sZGV0YWlsZWRSZWxheUxvZ2dpbmc6bz0hMSxmZWF0dXJlRmxhZ3M6cz17fSxfX3Rlc3RfcmVsYXlFbnZpcm9ubWVudDpjLGRlZmF1bHRUdGw6bCxzdGFuZGFyZFR0bHM6dSxnY1JlbGVhc2VCdWZmZXJTaXplOmQ9cy5lbmFibGVSZWxheVN0b3JlR2FyYmFnZUNvbGxlY3Rpb249PT0hMD9McmU6SXJlLGdjU2NoZWR1bGVyOmYscGVyc2lzdGVkQ2FjaGVGaWx0ZXJzOnAsbWlzc2luZ0ZpZWxkSGFuZGxlckZpZWxkTWFwcGluZ3M6bSxtaXNzaW5nRmllbGRIYW5kbGVyczpoLHNob3VsZEV4Y2x1ZGVJbmRleGluZ01pc3NpbmdGaWVsZEhhbmRsZXI6ZyxzY2hlbWFBU1Q6XyxwcmVsb2FkZWRRdWVyeUxSVVNpemU6dj01LGludGVyY2VwdG9yczp5fSl7dmFyIGIseCxTLEMsdzt0aGlzLnJlY29yZFNvdXJjZT12b2lkIDAsdGhpcy5xdWVyeU1ldGFkYXRhPXZvaWQgMCx0aGlzLnJlbGF5RW52aXJvbm1lbnQ9dm9pZCAwLHRoaXMuZmVhdHVyZUZsYWdzPXZvaWQgMCx0aGlzLmRlZmF1bHRUdGw9dm9pZCAwLHRoaXMuc3RhbmRhcmRUdGxzPXZvaWQgMCx0aGlzLmxvZ2dlcj12b2lkIDAsdGhpcy5wZXJzaXN0ZWRDYWNoZUZpbHRlcnM9dm9pZCAwLHRoaXMuc2NoZW1hQVNUPXZvaWQgMCx0aGlzLnByZWxvYWRlZFF1ZXJ5TFJVU2l6ZT12b2lkIDAsdGhpcy5wcmVsb2FkZWRRdWVyeUxSVT12b2lkIDAsdGhpcy5yZWNlbnRseVJlbmRlcmVkUXVlcmllcz12b2lkIDAsdGhpcy5xdWVyaWVzSW5GbGlnaHQ9MCx0aGlzLnF1ZXJ5U2V0dGxlZExpc3RlbmVycz1uZXcgU2V0LHRoaXMuaW50ZXJjZXB0b3JzPXZvaWQgMCx0aGlzLmlzRGVzdHJveWVkPXZvaWQgMCx0aGlzLnNlcmlhbGl6ZT1hc3luYygpPT57bGV0IGU9dGhpcy5yZWNvcmRTb3VyY2UudG9KU09OKCksdD10aGlzLmdldFBlcnNpc3RlZENhY2hlRmlsdGVycygpO3RyeXtsZXQgbj1fbmUoZSx0KS5maWx0ZXJlZFJlY29yZE1hcDtpZihuKXtmb3IobGV0IGUgb2YgT2JqZWN0LmtleXMobikpaWYobltlXSl7bGV0IHQ9bltlXTt0IT1udWxsJiZkZWxldGUgdC5fX2ludmFsaWRhdGVkX2F0fX1mb3IobGV0IGUgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLnF1ZXJ5TWV0YWRhdGEpKWBsYXN0QnlwYXNzQ2FjaGVLZXlgaW4gZSYmZGVsZXRlIGUubGFzdEJ5cGFzc0NhY2hlS2V5O2xldCByPXt0eXBlOmBQRVJTSVNURURfQ0FDSEVfVjNgLHJlY29yZE1hcDpuLHF1ZXJ5TWV0YWRhdGE6dGhpcy5xdWVyeU1ldGFkYXRhfSxpPUpTT04uc3RyaW5naWZ5KHIpO3JldHVybiBpLmxlbmd0aD5ScmU/KF9jKHttZXRyaWNOYW1lOmhtKGBlbnZpcm9ubWVudC5zZXJpYWxpemUuY2FjaGVfdG9vX2JpZ2ApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxfSksYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGBgKSk6YXdhaXQgUHJvbWlzZS5yZXNvbHZlKGkpfWNhdGNoKGUpe3JldHVybiBfYyh7bWV0cmljTmFtZTpobShgZW52aXJvbm1lbnQuc2VyaWFsaXplLmZhaWx1cmVgKSxtZXRyaWNUeXBlOkIuY291bnQsdmFsdWU6MX0pLHRoaXMubG9nZ2VyLmVycm9yKGBFcnJvciBmaWx0ZXJpbmcgcGVyc2lzdGVkIGNhY2hlYCxlKSxQcm9taXNlLnJlc29sdmUoYGApfX0sdGhpcy5vbkNhY2hlVXBkYXRlZExpc3RlbmVycz1uZXcgU2V0LHRoaXMub25RdWVyeU1ldGFkYXRhVXBkYXRlZExpc3RlbmVycz1uZXcgU2V0LHRoaXMucmFpc2VDYWNoZVVwZGF0ZWQ9ZT0+e3RoaXMuaXNEZXN0cm95ZWR8fHRoaXMub25DYWNoZVVwZGF0ZWRMaXN0ZW5lcnMuZm9yRWFjaCh0PT50KHtkYXRhSWRzOmUsZ3JhcGhxbEVudmlyb25tZW50OnRoaXN9KSl9LHRoaXMucmFpc2VRdWVyeU1ldGFkYXRhVXBkYXRlZD1lPT57dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5vblF1ZXJ5TWV0YWRhdGFVcGRhdGVkTGlzdGVuZXJzLmZvckVhY2godD0+dCh7cmVxdWVzdElkZW50aWZpZXI6ZSxncmFwaHFsRW52aXJvbm1lbnQ6dGhpc30pKX0sdGhpcy5oYW5kbGVRdWVyeVN0YXJ0ZWQ9KHtncmFwaHFsUmVxdWVzdDplLHZhcmlhYmxlczp0LHN0YXJ0VGltZTpufSk9PntpZihlLm9wZXJhdGlvbktpbmQhPT1gcXVlcnlgKXJldHVybjt0aGlzLnF1ZXJpZXNJbkZsaWdodCs9MTtsZXQgcj1rZyhlLHQpO3RoaXMucXVlcnlNZXRhZGF0YVtyXT10aGlzLnF1ZXJ5TWV0YWRhdGFbcl0/P3t9LHRoaXMucXVlcnlNZXRhZGF0YVtyXS5vcGVyYXRpb25OYW1lPWUubmFtZSx0aGlzLnF1ZXJ5TWV0YWRhdGFbcl0ubGFzdFN0YXJ0RXBvY2g9bix0aGlzLnJhaXNlUXVlcnlNZXRhZGF0YVVwZGF0ZWQocil9LHRoaXMuaGFuZGxlUXVlcnlDb21wbGV0ZWQ9KHtncmFwaHFsUmVxdWVzdDplLHZhcmlhYmxlczp0LGNvbXBsZXRpb25UaW1lOm4sY2FjaGVDb25maWdNZXRhZGF0YTpyLGVycm9yOml9KT0+e2lmKGUub3BlcmF0aW9uS2luZCE9PWBxdWVyeWApcmV0dXJuO2xldCBhPXI9PW51bGw/dm9pZCAwOnIuYnlwYXNzQ2FjaGVLZXksbz1rZyhlLHQpO3IhPW51bGwmJnIuZm9yY2VMb2FkUXVlcnkmJmk/dGhpcy5wcmVsb2FkZWRRdWVyeUxSVS5zZXQobyxyLmZvcmNlTG9hZFF1ZXJ5KTpyIT1udWxsJiZyLmZvcmNlTG9hZFF1ZXJ5JiZ0aGlzLnByZWxvYWRlZFF1ZXJ5TFJVLmRlbGV0ZShvKTtsZXQgcz10aGlzLnF1ZXJ5TWV0YWRhdGFbb10sYz1hPz8ocz09bnVsbD92b2lkIDA6cy5sYXN0QnlwYXNzQ2FjaGVLZXkpLGw9RGF0ZS5ub3coKSx1PWk/e29wZXJhdGlvbk5hbWU6ZS5uYW1lLGxhc3RTdGFydEVwb2NoOnM9PW51bGw/dm9pZCAwOnMubGFzdFN0YXJ0RXBvY2gsbGFzdFN1Y2Nlc3NFcG9jaDpzPT1udWxsP3ZvaWQgMDpzLmxhc3RTdWNjZXNzRXBvY2gsbGFzdEVycm9yRXBvY2g6bixsYXN0RXJyb3I6a3JlKGkpLGxhc3RCeXBhc3NDYWNoZUtleTpjLGxhc3RDb21wbGV0ZUVwb2NoOmx9OntvcGVyYXRpb25OYW1lOmUubmFtZSxsYXN0U3RhcnRFcG9jaDpzPT1udWxsP3ZvaWQgMDpzLmxhc3RTdGFydEVwb2NoLGxhc3RTdWNjZXNzRXBvY2g6bixsYXN0QnlwYXNzQ2FjaGVLZXk6YyxsYXN0Q29tcGxldGVFcG9jaDpsfTt0aGlzLnF1ZXJ5TWV0YWRhdGFbb109dSx0aGlzLnF1ZXJpZXNJbkZsaWdodD1NYXRoLm1heCgwLHRoaXMucXVlcmllc0luRmxpZ2h0LTEpLHRoaXMucXVlcmllc0luRmxpZ2h0PT09MCYmdGhpcy5xdWVyeVNldHRsZWRMaXN0ZW5lcnMuc2l6ZSE9PTAmJnRoaXMucXVlcnlTZXR0bGVkTGlzdGVuZXJzLmZvckVhY2goZT0+ZSgpKSx0aGlzLnJhaXNlUXVlcnlNZXRhZGF0YVVwZGF0ZWQobyl9LHRoaXMub25DYWNoZVVwZGF0ZWQ9ZT0+KHRoaXMub25DYWNoZVVwZGF0ZWRMaXN0ZW5lcnMuYWRkKGUpLCgpPT50aGlzLm9uQ2FjaGVVcGRhdGVkTGlzdGVuZXJzLmRlbGV0ZShlKSksdGhpcy5vblF1ZXJ5TWV0YWRhdGFVcGRhdGVkPWU9Pih0aGlzLm9uUXVlcnlNZXRhZGF0YVVwZGF0ZWRMaXN0ZW5lcnMuYWRkKGUpLCgpPT50aGlzLm9uUXVlcnlNZXRhZGF0YVVwZGF0ZWRMaXN0ZW5lcnMuZGVsZXRlKGUpKSx0aGlzLk5PX01FVEFEQVRBPXt9LHRoaXMuZ2V0UXVlcnlNZXRhZGF0YT1lPT4oZT90aGlzLnF1ZXJ5TWV0YWRhdGFbZV06dGhpcy5OT19NRVRBREFUQSk/P3RoaXMuTk9fTUVUQURBVEEsdGhpcy5nZXRBbGxRdWVyeU1ldGFkYXRhPSgpPT50aGlzLnF1ZXJ5TWV0YWRhdGEsdGhpcy5nZXRQcmVsb2FkZWRRdWVyeUxSVT0oKT0+dGhpcy5wcmVsb2FkZWRRdWVyeUxSVSx0aGlzLmdldFBlcnNpc3RlZENhY2hlRmlsdGVycz0oKT0+e3ZhciBlO3JldHVybiBBcnJheS5pc0FycmF5KHRoaXMucGVyc2lzdGVkQ2FjaGVGaWx0ZXJzKT90aGlzLnBlcnNpc3RlZENhY2hlRmlsdGVyczooKGU9dGhpcy5wZXJzaXN0ZWRDYWNoZUZpbHRlcnMpPT1udWxsP3ZvaWQgMDplLmNhbGwodGhpcykpPz9bXX0sdGhpcy53YWl0Rm9yUXVlcmllc1RvU2V0dGxlPShlPTE1ZTMpPT5uZXcgUHJvbWlzZSh0PT57aWYodGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5xdWVyaWVzSW5GbGlnaHQ9PT0wKXt0KCk7cmV0dXJufWxldCBuPW51bGwscj0oKT0+e24hPT1udWxsJiZjbGVhclRpbWVvdXQobiksdGhpcy5xdWVyeVNldHRsZWRMaXN0ZW5lcnMuZGVsZXRlKHIpLHQoKX07bj1zZXRUaW1lb3V0KCgpPT57dGhpcy5xdWVyeVNldHRsZWRMaXN0ZW5lcnMuZGVsZXRlKHIpLHQoKX0sZSksdGhpcy5xdWVyeVNldHRsZWRMaXN0ZW5lcnMuYWRkKHIpfSksdGhpcy5kZXN0cm95PSgpPT57dGhpcy5pc0Rlc3Ryb3llZD0hMCx0aGlzLnByZWxvYWRlZFF1ZXJ5TFJVLmNsZWFyKCksQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2V0dGxlZExpc3RlbmVycykuZm9yRWFjaChlPT5lKCkpfSx0aGlzLm1hcmtRdWVyeVJlbmRlcj1lPT57dGhpcy5yZWNlbnRseVJlbmRlcmVkUXVlcmllcy5zZXQoZSxEYXRlLm5vdygpKX0sdGhpcy5nZXRSZWNlbnRseVJlbmRlcmVkUXVlcnlUaW1lc3RhbXA9ZT0+dGhpcy5yZWNlbnRseVJlbmRlcmVkUXVlcmllcy5nZXQoZSksWXAuUmVsYXlGZWF0dXJlRmxhZ3MuRU5BQkxFX1JFTEFZX1JFU09MVkVSUz0hMCxZcC5SZWxheUZlYXR1cmVGbGFncy5FTkFCTEVfRklFTERfRVJST1JfSEFORExJTkc9ITAsdGhpcy5sb2dnZXI9YSx0aGlzLmZlYXR1cmVGbGFncz1zLHRoaXMuZGVmYXVsdFR0bD1sPz9gc2hvcnRgLHRoaXMuc3RhbmRhcmRUdGxzPUZnKEZnKHt9LFZyZSksdSksdGhpcy5wZXJzaXN0ZWRDYWNoZUZpbHRlcnM9cCx0aGlzLnNjaGVtYUFTVD1fLHRoaXMucHJlbG9hZGVkUXVlcnlMUlVTaXplPXYsdGhpcy5pc0Rlc3Ryb3llZD0hMSx0aGlzLmludGVyY2VwdG9ycz15LHRoaXMucHJlbG9hZGVkUXVlcnlMUlU9bmV3IFJoKHRoaXMucHJlbG9hZGVkUXVlcnlMUlVTaXplKSx0aGlzLnJlY2VudGx5UmVuZGVyZWRRdWVyaWVzPW5ldyBSaCgxMCk7bGV0IFQ9e2luaXRpYWxGZWF0dXJlRmxhZ3M6cyxwZXJzaXN0ZWRDYWNoZTohIWksZ2NSZWxlYXNlQnVmZmVyU2l6ZTpkLGdjU2NoZWR1bGVyOiEhZixwZXJzaXN0ZWRRdWVyaWVzOiEhcixkZWZhdWx0VHRsOmAke2x9YCxtaXNzaW5nRmllbGRIYW5kbGVyRmllbGRNYXBwaW5nczptJiZPYmplY3Qua2V5cyhtKS5sZW5ndGg+MHx8ITEsbWlzc2luZ0ZpZWxkSGFuZGxlcnM6ISEoaCYmaC5sZW5ndGg+MCl9O2EuZGVidWcoYEdyYXBoUUwgRW52aXJvbm1lbnQgSW5pdGlhbGl6ZWRgLFQpLHkhPW51bGwmJnkucXVlcnlMZXZlbE1vY2tlckNvbmZpZyYmIXImJmEud2FybihgUXVlcnkgbGV2ZWwgbW9ja2VyIGlzIGVuYWJsZWQgYnV0ICJnZXRQZXJzaXN0ZWRRdWVyaWVzIiBpcyBub3QgcHJvdmlkZWQuIFF1ZXJ5IGxldmVsIG1vY2tlciBpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgd2l0aCBhdXRvbWF0aWMgcGVyc2lzdGVkIHF1ZXJpZXMuYCk7dHJ5e2xldCBlPWk/SlNPTi5wYXJzZShpKTp2b2lkIDA7KGU9PW51bGw/dm9pZCAwOmUudHlwZSk9PT1gUEVSU0lTVEVEX0NBQ0hFX1YzYD8odGhpcy5xdWVyeU1ldGFkYXRhPWUucXVlcnlNZXRhZGF0YT8/e30sdGhpcy5yZWNvcmRTb3VyY2U9T2coZS5yZWNvcmRNYXApKToodGhpcy5xdWVyeU1ldGFkYXRhPXt9LHRoaXMucmVjb3JkU291cmNlPU9nKCkpfWNhdGNoKGUpe2EuZXJyb3IoYEVycm9yIHJlc3RvcmluZyBwZXJzaXN0ZWQgY2FjaGVgLGUpLHRoaXMucXVlcnlNZXRhZGF0YT17fSx0aGlzLnJlY29yZFNvdXJjZT1PZygpfXRoaXMucmVjb3JkU291cmNlLm9uVXBkYXRlZChlPT57dGhpcy5yYWlzZUNhY2hlVXBkYXRlZChlKSxNcmUodGhpcy5yZWNvcmRTb3VyY2UsYSl9KTtsZXQgRT1tP3JuZSh7bG9nZ2VyOmEscmVjb3JkU291cmNlOnRoaXMucmVjb3JkU291cmNlLGZpZWxkTWFwcGluZ3M6bSxzaG91bGRFeGNsdWRlSW5kZXhpbmdNaXNzaW5nRmllbGRIYW5kbGVyOmd9KTp2b2lkIDAsRD0oKGI9dGhpcy5pbnRlcmNlcHRvcnMpPT1udWxsfHwoYj1iLnF1ZXJ5TGV2ZWxNb2NrZXJDb25maWcpPT1udWxsP3ZvaWQgMDpiLmRhbmdlcm91c2x5QWxsb3dNb2NraW5nT2ZQcm9kdWN0aW9uUXVlcmllcyl8fCgoeD10aGlzLmludGVyY2VwdG9ycyk9PW51bGw/dm9pZCAwOngucXVlcnlMZXZlbE1vY2tlckNvbmZpZykmJiExLE89bmV3IFlwLlN0b3JlKHRoaXMucmVjb3JkU291cmNlLHtnY1JlbGVhc2VCdWZmZXJTaXplOmQsZ2NTY2hlZHVsZXI6Zn0pO2lmKHRoaXMucmVsYXlFbnZpcm9ubWVudD1jPz9uZXcgWXAuRW52aXJvbm1lbnQoe3JlbGF5RmllbGRMb2dnZXI6anJlKHtsb2dnZXI6YX0pLHN0b3JlOk8sbWlzc2luZ0ZpZWxkSGFuZGxlcnM6RT9bLi4uaD8/W10sRT09bnVsbD92b2lkIDA6RS5taXNzaW5nRmllbGRIYW5kbGVyXTpoLG5ldHdvcms6WXAuTmV0d29yay5jcmVhdGUoYW5lKHtncmFwaHFsVXJsOmUsbWlkZGxld2FyZTpbWWgsQ25lKHtsb2dnZXI6YX0pLFVuZSh7fSksaXJlKHtvblN0YXJ0OnRoaXMuaGFuZGxlUXVlcnlTdGFydGVkLG9uQ29tcGxldGU6dGhpcy5oYW5kbGVRdWVyeUNvbXBsZXRlZCxsb2dnZXI6YX0pLEVnKCgpPT50aGlzKSxFbmUscnJlKCgpPT50aGlzLChTPXRoaXMuaW50ZXJjZXB0b3JzKT09bnVsbHx8KFM9Uy5maWVsZExldmVsTW9ja2VyQ29uZmlnKT09bnVsbD92b2lkIDA6Uy5tb2NrRGF0YSksRD8oQz10aGlzLmludGVyY2VwdG9ycyk9PW51bGx8fChDPUMucXVlcnlMZXZlbE1vY2tlckNvbmZpZyk9PW51bGw/dm9pZCAwOkMucXVlcnlMZXZlbE1vY2tlck1pZGRsZXdhcmUoe2dldFBlcnNpc3RlZFF1ZXJpZXM6cixsb2dnZXI6YX0pOnZvaWQgMCxjcmUoKSxyJiZ6bmUoe2dldFBlcnNpc3RlZFF1ZXJpZXM6cixsb2dnZXI6YX0pLEduZV0sbmV0d29ya0ZldGNoOnQsbG9nZ2VyOmF9KSxFcmUoe2dyYXBocWxVcmw6ZSxtaWRkbGV3YXJlOltZaCxFZygoKT0+dGhpcyksRD8odz10aGlzLmludGVyY2VwdG9ycyk9PW51bGx8fCh3PXcucXVlcnlMZXZlbE1vY2tlckNvbmZpZyk9PW51bGw/dm9pZCAwOncucXVlcnlMZXZlbE1vY2tlck1pZGRsZXdhcmUoe2dldFBlcnNpc3RlZFF1ZXJpZXM6cixsb2dnZXI6YX0pOnZvaWQgMCxwbSh7aGVhZGVyczooKT0+KHsiQ29udGVudC1UeXBlIjpgYXBwbGljYXRpb24vanNvbmAsQWNjZXB0OnMuZW5hYmxlU3Vic2NyaXB0aW9uc092ZXJNdWx0aXBhcnQ/enJlOkJyZX0pfSksc3JlKHtsb2dnZXI6YX0pXSxnZXRQZXJzaXN0ZWRRdWVyaWVzOnIsbmV0d29ya0ZldGNoOm4/P3QsZ2V0R3JhcGhxbEVudmlyb25tZW50OigpPT50aGlzLGxvZ2dlcjphfSkpfSksbyl7bGV0IGU9dGhpcy5yZWxheUVudmlyb25tZW50Ll9fbG9nO3RoaXMucmVsYXlFbnZpcm9ubWVudC5fX2xvZz0oLi4udCk9PntlJiZlKC4uLnQpLGEuZGVidWcoLi4udCl9fX19O2Z1bmN0aW9uIFVyZShlKXtyZXR1cm4gbmV3IEhyZShlKX1mdW5jdGlvbiBXcmUoZSx0KXtyZXR1cm4gSnJlKGUpfHxxcmUoZSx0KXx8S3JlKGUsdCl8fEdyZSgpfWZ1bmN0aW9uIEdyZSgpe3Rocm93IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIEtyZShlLHQpe2lmKGUpe2lmKHR5cGVvZiBlPT1gc3RyaW5nYClyZXR1cm4gSWcoZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiBuPT09YE9iamVjdGAmJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksbj09PWBNYXBgfHxuPT09YFNldGA/QXJyYXkuZnJvbShlKTpuPT09YEFyZ3VtZW50c2B8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP0lnKGUsdCk6dm9pZCAwfX1mdW5jdGlvbiBJZyhlLHQpeyh0PT1udWxsfHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gcXJlKGUsdCl7dmFyIG49ZT09bnVsbD9udWxsOnR5cGVvZiBTeW1ib2w8YHVgJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbYEBAaXRlcmF0b3JgXTtpZihuIT1udWxsKXt2YXIgcixpLGEsbyxzPVtdLGM9ITAsbD0hMTt0cnl7aWYoYT0obj1uLmNhbGwoZSkpLm5leHQsdD09PTApe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1hLmNhbGwobikpLmRvbmUpJiYocy5wdXNoKHIudmFsdWUpLHMubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe2w9ITAsaT1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZuLnJldHVybiE9bnVsbCYmKG89bi5yZXR1cm4oKSxPYmplY3QobykhPT1vKSlyZXR1cm59ZmluYWxseXtpZihsKXRocm93IGl9fXJldHVybiBzfX1mdW5jdGlvbiBKcmUoZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX12YXIgTGc9KDAsRy5jcmVhdGVDb250ZXh0KShHLnVzZUVmZmVjdCk7ZnVuY3Rpb24gWXJlKHt1c2VGb2N1c0VmZmVjdDplLGNoaWxkcmVuOnR9KXtsZXQgbj1XcmUoKDAsRy51c2VTdGF0ZSkoKCk9PmUpLDEpWzBdO3JldHVybigwLEsuanN4KShMZy5Qcm92aWRlcix7dmFsdWU6bixjaGlsZHJlbjp0fSl9ZnVuY3Rpb24gUmcoZSx0KXtyZXR1cm4oMCxHLnVzZUNvbnRleHQpKExnKShlLHQpfXZhciBYcmU9W2BpbnN0cnVtZW50YXRpb25JZGAsYGZhbGxiYWNrYCxgZGlzYWJsZUluc3RydW1lbnRhdGlvbmBdO2Z1bmN0aW9uIFpyZShlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG4scixpPVFyZShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPT09LTEmJnt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKGlbbl09ZVtuXSl9cmV0dXJuIGl9ZnVuY3Rpb24gUXJlKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn1mdW5jdGlvbiB6ZyhlLHQpe3JldHVybiBuaWUoZSl8fHRpZShlLHQpfHxlaWUoZSx0KXx8JHJlKCl9ZnVuY3Rpb24gJHJlKCl7dGhyb3cgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gZWllKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBCZyhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIG49PT1gT2JqZWN0YCYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxuPT09YE1hcGB8fG49PT1gU2V0YD9BcnJheS5mcm9tKGUpOm49PT1gQXJndW1lbnRzYHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/QmcoZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIEJnKGUsdCl7KHQ9PW51bGx8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiB0aWUoZSx0KXt2YXIgbj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDxgdWAmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtgQEBpdGVyYXRvcmBdO2lmKG4hPW51bGwpe3ZhciByLGksYSxvLHM9W10sYz0hMCxsPSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCx0PT09MCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihzLnB1c2goci52YWx1ZSkscy5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7bD0hMCxpPWV9ZmluYWxseXt0cnl7aWYoIWMmJm4ucmV0dXJuIT1udWxsJiYobz1uLnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGwpdGhyb3cgaX19cmV0dXJuIHN9fWZ1bmN0aW9uIG5pZShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfWZ1bmN0aW9uIFZnKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gSGcoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/VmcoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JpZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpWZyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gcmllKGUsdCxuKXtyZXR1cm4odD1paWUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gaWllKGUpe3ZhciB0PWFpZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBhaWUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBvaWUoZSl7cmV0dXJuIEhnKEhnKHt9LGUpLHt9LHtmaXJzdFJlbmRlckF0OnZvaWQgMCxyZXNvbHZlZEF0OnZvaWQgMCxkaWRTdXNwZW5kOiExLG1vdW50ZWRBdDpbXSx1bm1vdW50ZWRBdDpbXSxldmVudHM6W119KX1mdW5jdGlvbiBVZyh7aW5zdHJ1bWVudGF0aW9uSWQ6ZSxzY3JlZW5GaXJzdFJlbmRlcmVkQXQ6dD14bSgpLGVuYWJsZVRpbWVvdXQ6bj0hMX0pe3JldHVybntpbnN0cnVtZW50YXRpb25JZDplLGZpcnN0UmVuZGVyZWRBdDp0LGRhdGFUaW1pbmdzOnt9LGVuYWJsZVRpbWVvdXQ6bn19dmFyIFdnPSgwLEcuY3JlYXRlQ29udGV4dCkoW10pO1dnLlByb3ZpZGVyO3ZhciBHZz0oMCxHLmNyZWF0ZUNvbnRleHQpKHZvaWQgMCk7ZnVuY3Rpb24gc2llKHtpbnN0cnVtZW50YXRpb25JZDplLGVuYWJsZWQ6dD0hMSxjaGlsZHJlbjpuLGRpc2FibGVJbnN0cnVtZW50YXRpb246cj0hMSxlbmFibGVUaW1lb3V0Omk9ITF9KXtsZXQgYT0oMCxHLnVzZUNvbnRleHQpKFdnKSxvPXpnKCgwLEcudXNlU3RhdGUpKCgpPT57aWYoIXIpe2xldCB0PVVnKHtpbnN0cnVtZW50YXRpb25JZDplLGVuYWJsZVRpbWVvdXQ6aX0pO3JldHVybiBhLnB1c2godCksdH19KSwyKSxzPW9bMF0sYz1vWzFdO2lmKCFyJiYocz09bnVsbD92b2lkIDA6cy5pbnN0cnVtZW50YXRpb25JZCkhPT1lKXtsZXQgdD1VZyh7aW5zdHJ1bWVudGF0aW9uSWQ6ZX0pO2ModCksYS5wdXNoKHQpfXJldHVybigwLEcudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiByPygpPT57fToocyYmKHMubW91bnRlZEF0PXhtKCkpLCgpPT57cyYmKHMudW5tb3VudGVkQXQ9eG0oKSl9KX0sW3Mscl0pLHQ/KDAsSy5qc3gpKEdnLlByb3ZpZGVyLHt2YWx1ZTpzLGNoaWxkcmVuOm59LGUpOigwLEsuanN4KShLLkZyYWdtZW50LHtjaGlsZHJlbjpufSl9ZnVuY3Rpb24gY2llKCl7cmV0dXJuKDAsRy51c2VDb250ZXh0KShHZyl9ZnVuY3Rpb24gS2coe3R5cGU6ZSxuYW1lOnQsaWRlbnRpZmllcjpufSl7bGV0IHI9KDAsRy51c2VDb250ZXh0KShHZyksaT1gJHt0fSR7dD9gLWA6YGB9JHtufWAsYT0oMCxHLnVzZUNhbGxiYWNrKSgoKT0+e2lmKHIpcmV0dXJuIHIuZGF0YVRpbWluZ3NbaV09ci5kYXRhVGltaW5nc1tpXT8/b2llKHtuYW1lOnQsaWRlbnRpZmllcjpuLHR5cGU6ZX0pLHIuZGF0YVRpbWluZ3NbaV19LFtpLHQsbixlLHJdKTtyZXR1cm4oMCxHLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtsZXQgZT1hKCk7cmV0dXJuIGU9PW51bGx8fGUubW91bnRlZEF0LnB1c2goeG0oKSksKCk9PntlPT1udWxsfHxlLnVubW91bnRlZEF0LnB1c2goeG0oKSl9fSxbYV0pLCgwLEcudXNlTWVtbykoKCk9Pih7bm90aWZ5UmVuZGVyOmU9PntsZXQgdD1hKCk7dCYmKHQuZmlyc3RSZW5kZXJBdD10LmZpcnN0UmVuZGVyQXQ/P3htKCksdC5zdXNwZW5zZUJvdW5kYXJ5TmFtZXx8KHQuc3VzcGVuc2VCb3VuZGFyeU5hbWU9ZSkpfSxub3RpZnlTdXNwZW5kZWQ6KCk9PntsZXQgZT1hKCk7ZSYmKGUuZGlkU3VzcGVuZD1lLmRpZFN1c3BlbmR8fCEwKX0sbm90aWZ5UmVzb2x2ZWQ6KCk9PntsZXQgZT1hKCk7ZSYmKGUucmVzb2x2ZWRBdD1lLnJlc29sdmVkQXQ/P3htKCkpfSxub3RpZnlFdmVudDplPT57bGV0IHQ9YSgpO3QmJnQuZXZlbnRzLnB1c2goe3R5cGU6ZSx0aW1lOnhtKCl9KX19KSxbYV0pfXZhciBsaWU9NDVlMztmdW5jdGlvbiB1aWUoZSx0LG4scil7cmV0dXJuIHNldFRpbWVvdXQoKCk9PntpZihyKCkpdHJ5e3Rocm93IHR9Y2F0Y2goZSl7ZSBpbnN0YW5jZW9mIEVycm9yJiYoZS5zdGFjays9YFxuJHt0LnN0YWNrfWApLG4oKCk9Pnt0aHJvdyBlfSl9fSxlKX1mdW5jdGlvbiBkaWUoe2luc3RydW1lbnRhdGlvbklkOmUsZGlzYWJsZUluc3RydW1lbnRhdGlvbjp0LGNoaWxkcmVuOm59KXtsZXQgcj1jaWUoKSxpPUtnKHt0eXBlOmBzdXNwZW5zZUZhbGxiYWNrYCxuYW1lOmBzdXNwZW5zZUZhbGxiYWNrYCxpZGVudGlmaWVyOmV9KS5ub3RpZnlSZXNvbHZlZCxhPXpnKCgwLEcudXNlU3RhdGUpKCksMilbMV07cmV0dXJuKDAsRy51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7cmV0dXJuIHQ/dm9pZCAwOml9LFtpLHRdKSwoMCxHLnVzZUVmZmVjdCkoKCk9PntpZighKHIhPW51bGwmJnIuZW5hYmxlVGltZW91dCkpcmV0dXJuO2xldCB0PSEwLG49dWllKGxpZSxuZXcgWnRlKGBUaW1lb3V0IGluIFN1c3BlbnNlIEZhbGxiYWNrICgke2V9KWApLGEsKCk9PnQpO3JldHVybigpPT57dD0hMSxjbGVhclRpbWVvdXQobil9fSxbZSxyPT1udWxsP3ZvaWQgMDpyLmVuYWJsZVRpbWVvdXRdKSwoMCxLLmpzeCkoSy5GcmFnbWVudCx7Y2hpbGRyZW46bn0pfXZhciBxZz0oMCxHLmNyZWF0ZUNvbnRleHQpKGBgKTtmdW5jdGlvbiBKZygpe3JldHVybigwLEcudXNlQ29udGV4dCkocWcpfWZ1bmN0aW9uIFlnKGUpe2xldCB0PWUuaW5zdHJ1bWVudGF0aW9uSWQsbj1lLmZhbGxiYWNrLHI9ZS5kaXNhYmxlSW5zdHJ1bWVudGF0aW9uLGk9WnJlKGUsWHJlKSxhPUtnKHt0eXBlOmBzdXNwZW5zZUZhbGxiYWNrYCxuYW1lOmBzdXNwZW5zZUZhbGxiYWNrYCxpZGVudGlmaWVyOnR9KSxvPUpnKCk7cmV0dXJuIHJ8fGEubm90aWZ5UmVuZGVyKG8pLCgwLEsuanN4KShxZy5Qcm92aWRlcix7dmFsdWU6dCxjaGlsZHJlbjooMCxLLmpzeCkoRy5TdXNwZW5zZSxIZyh7ZmFsbGJhY2s6KDAsSy5qc3gpKGRpZSx7aW5zdHJ1bWVudGF0aW9uSWQ6dCxkaXNhYmxlSW5zdHJ1bWVudGF0aW9uOnIsY2hpbGRyZW46bn0pfSxpKSl9KX12YXIgZmllPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihKZCgpKSxpPW4ocWQoKSksYT1uKFFkKCkpLG89dWgoKSxzPWZoKCkuZ2V0UXVlcnlSZXNvdXJjZUZvckVudmlyb25tZW50LGM9ZGgoKSxsPUZkKCksdT1xcCgpLGQ9dS5fX2ludGVybmFsLGY9ZC5mZXRjaFF1ZXJ5LHA9ZC5nZXRQcm9taXNlRm9yQWN0aXZlUmVxdWVzdCxtPXUuUmVsYXlGZWF0dXJlRmxhZ3MsaD11LmNyZWF0ZU9wZXJhdGlvbkRlc2NyaXB0b3IsZz11LmdldEZyYWdtZW50SWRlbnRpZmllcixfPXUuZ2V0UGVuZGluZ09wZXJhdGlvbnNGb3JGcmFnbWVudCx2PXUuZ2V0U2VsZWN0b3IseT11LmdldFZhcmlhYmxlc0Zyb21GcmFnbWVudCxiPXUuaGFuZGxlUG90ZW50aWFsU25hcHNob3RFcnJvcnMseD11LmlzUHJvbWlzZSxTPXUucmVjeWNsZU5vZGVzSW50byxDPXR5cGVvZiBXZWFrTWFwPT1gZnVuY3Rpb25gLHc9MWU2LFQ9T2JqZWN0LmZyZWV6ZShbXSk7ZnVuY3Rpb24gRShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNNaXNzaW5nRGF0YX0pOmUuaXNNaXNzaW5nRGF0YX1mdW5jdGlvbiBEKGUpe3ZhciB0O3JldHVybiBBcnJheS5pc0FycmF5KGUpP2Uuc29tZShmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4oKCh0PWUubWlzc2luZ0NsaWVudEVkZ2VzKT09bnVsbD92b2lkIDA6dC5sZW5ndGgpPz8wKT4wfSk6KCgodD1lLm1pc3NpbmdDbGllbnRFZGdlcyk9PW51bGw/dm9pZCAwOnQubGVuZ3RoKT8/MCk+MH1mdW5jdGlvbiBPKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2UubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLm1pc3NpbmdMaXZlUmVzb2x2ZXJGaWVsZHN9KS5maWx0ZXIoQm9vbGVhbikuZmxhdCgpOmUubWlzc2luZ0xpdmVSZXNvbHZlckZpZWxkc31mdW5jdGlvbiBrKGUsdCl7QXJyYXkuaXNBcnJheShlKT9lLmZvckVhY2godCk6dChlKX1mdW5jdGlvbiBBKGUsdCxuKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT97Y2FjaGVLZXk6ZSxzbmFwc2hvdDp0LGRhdGE6dC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGF0YX0pLGlzTWlzc2luZ0RhdGE6RSh0KSxzdG9yZUVwb2NoOm59OntjYWNoZUtleTplLHNuYXBzaG90OnQsZGF0YTp0LmRhdGEsaXNNaXNzaW5nRGF0YTpFKHQpLHN0b3JlRXBvY2g6bn19dmFyIGo9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpeygwLGkuZGVmYXVsdCkodGhpcyxgX2NhY2hlYCxuZXcgTWFwKSwoMCxpLmRlZmF1bHQpKHRoaXMsYF9yZXRhaW5Db3VudHNgLG5ldyBNYXApLHRoaXMuX2Vudmlyb25tZW50PWV9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQuZ2V0PWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybigodD10aGlzLl9jYWNoZS5nZXQoZSkpPT1udWxsP3ZvaWQgMDp0WzBdKT8/dm9pZCAwfSx0LnJlY29yZFF1ZXJ5UmVzdWx0cz1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj10aGlzLl9jYWNoZS5nZXQoZSk7aWYocil7dmFyIGk9clswXSxhPXJbMV07dC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kucHVzaChlKX0pLGEudGVtcG9yYXJ5UmV0YWluKHRoaXMuX2Vudmlyb25tZW50KX1lbHNle3ZhciBvPW5ldyBjKGZ1bmN0aW9uKCl7cmV0dXJuIG4uX3JldGFpbihlKX0pO3RoaXMuX2NhY2hlLnNldChlLFt0LG9dKSxvLnRlbXBvcmFyeVJldGFpbih0aGlzLl9lbnZpcm9ubWVudCl9fSx0Ll9yZXRhaW49ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPSh0aGlzLl9yZXRhaW5Db3VudHMuZ2V0KGUpPz8wKSsxO3JldHVybiB0aGlzLl9yZXRhaW5Db3VudHMuc2V0KGUsbikse2Rpc3Bvc2U6ZnVuY3Rpb24oKXt2YXIgbj0odC5fcmV0YWluQ291bnRzLmdldChlKT8/MCktMTtuPjA/dC5fcmV0YWluQ291bnRzLnNldChlLG4pOih0Ll9yZXRhaW5Db3VudHMuZGVsZXRlKGUpLHQuX2NhY2hlLmRlbGV0ZShlKSl9fX0sZX0oKSxNPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt0aGlzLl9lbnZpcm9ubWVudD1lLHRoaXMuX2NhY2hlPW8uY3JlYXRlKHcpLHRoaXMuX2NsaWVudEVkZ2VRdWVyeVJlc3VsdHNDYWNoZT1uZXcgaihlKX12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5yZWFkPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLnJlYWRXaXRoSWRlbnRpZmllcihlLHQsZyhlLHQpLG4scil9LHQucmVhZFdpdGhJZGVudGlmaWVyPWZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG89dGhpcyxjLHUsZCxmPXRoaXMuX2Vudmlyb25tZW50O2lmKHQ9PW51bGwpcmV0dXJue2NhY2hlS2V5Om4sZGF0YTpudWxsLGlzTWlzc2luZ0RhdGE6ITEsc25hcHNob3Q6bnVsbCxzdG9yZUVwb2NoOjB9O3ZhciBoPWYuZ2V0U3RvcmUoKS5nZXRFcG9jaCgpO2lmKChlPT1udWxsfHwoYz1lLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6Yy5wbHVyYWwpPT09ITAmJighQXJyYXkuaXNBcnJheSh0KSYmbCghMSksdC5sZW5ndGg9PT0wKSlyZXR1cm57Y2FjaGVLZXk6bixkYXRhOlQsaXNNaXNzaW5nRGF0YTohMSxzbmFwc2hvdDpULHN0b3JlRXBvY2g6aH07dmFyIGc9dGhpcy5fY2FjaGUuZ2V0KG4pO2lmKGchPW51bGwpe3ZhciBfO2lmKGcua2luZD09PWBwZW5kaW5nYCYmeChnLnByb21pc2UpKXRocm93IGYuX19sb2coe25hbWU6YHN1c3BlbnNlLmZyYWdtZW50YCxkYXRhOmcucmVzdWx0LmRhdGEsZnJhZ21lbnQ6ZSxpc1JlbGF5SG9va3M6ITAsaXNNaXNzaW5nRGF0YTpnLnJlc3VsdC5pc01pc3NpbmdEYXRhLGlzUHJvbWlzZUNhY2hlZDohMCxwZW5kaW5nT3BlcmF0aW9uczpnLnBlbmRpbmdPcGVyYXRpb25zfSksZy5wcm9taXNlO2lmKGcua2luZD09PWBkb25lYCYmZy5yZXN1bHQuc25hcHNob3QmJiEoKF89TyhnLnJlc3VsdC5zbmFwc2hvdCkpIT1udWxsJiZfLmxlbmd0aCkpcmV0dXJuIHRoaXMuX3Rocm93T3JMb2dFcnJvcnNJblNuYXBzaG90KGcucmVzdWx0LnNuYXBzaG90KSxnLnJlc3VsdC5pc01pc3NpbmdEYXRhJiZmLl9fbG9nKHtuYW1lOmBmcmFnbWVudHJlc291cmNlLm1pc3NpbmdfZGF0YWAsZGF0YTpnLnJlc3VsdC5kYXRhLGZyYWdtZW50OmUsaXNSZWxheUhvb2tzOiEwLGNhY2hlZDohMH0pLGcucmVzdWx0fXZhciB5PXYoZSx0KTt5Pz9sKCExKTt2YXIgYj1udWxsLFM9bnVsbDtpZihtLkVOQUJMRV9SRUxBWV9PUEVSQVRJT05fVFJBQ0tFUl9TVVNQRU5TRSYmZyE9bnVsbCYmZy5raW5kPT09YG1pc3NpbmdgPyhiPWcucmVzdWx0LFM9Zy5zbmFwc2hvdCk6KFM9eS5raW5kPT09YFBsdXJhbFJlYWRlclNlbGVjdG9yYD95LnNlbGVjdG9ycy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGYubG9va3VwKGUpfSk6Zi5sb29rdXAoeSksYj1BKG4sUyxoKSksIWIuaXNNaXNzaW5nRGF0YSlyZXR1cm4gdGhpcy5fdGhyb3dPckxvZ0Vycm9yc0luU25hcHNob3QoUyksdGhpcy5fY2FjaGUuc2V0KG4se2tpbmQ6YGRvbmVgLHJlc3VsdDpifSksYjt2YXIgQz1udWxsO2lmKCgodT1lLm1ldGFkYXRhKT09bnVsbD92b2lkIDA6dS5oYXNDbGllbnRFZGdlcyk9PT0hMCYmRChTKSl7Qz1bXTt2YXIgdz1zKHRoaXMuX2Vudmlyb25tZW50KSxFPVtdO2soUyxmdW5jdGlvbihuKXt2YXIgcjsocj1uLm1pc3NpbmdDbGllbnRFZGdlcyk9PW51bGx8fHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixpPW4ucmVxdWVzdCxhPW4uY2xpZW50RWRnZURlc3RpbmF0aW9uSUQscz1vLl9wZXJmb3JtQ2xpZW50RWRnZVF1ZXJ5KHcsZSx0LGksYSksYz1zLnF1ZXJ5UmVzdWx0LGw9cy5yZXF1ZXN0RGVzY3JpcHRvcjtFLnB1c2goYyksKHI9Qyk9PW51bGx8fHIucHVzaChsKX0pfSksdGhpcy5fY2xpZW50RWRnZVF1ZXJ5UmVzdWx0c0NhY2hlPz9sKCExKSx0aGlzLl9jbGllbnRFZGdlUXVlcnlSZXN1bHRzQ2FjaGUucmVjb3JkUXVlcnlSZXN1bHRzKG4sRSl9dmFyIGo9W107QyYmKGo9Qy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHAoby5fZW52aXJvbm1lbnQsZSl9KS5maWx0ZXIoQm9vbGVhbikpO3ZhciBNPXkua2luZD09PWBQbHVyYWxSZWFkZXJTZWxlY3RvcmA/eS5zZWxlY3RvcnNbMF0ub3duZXI6eS5vd25lcixOPXRoaXMuX2dldEFuZFNhdmVQcm9taXNlRm9yRnJhZ21lbnRSZXF1ZXN0SW5GbGlnaHQobixlLE0sYiksUD1OPT1udWxsP3ZvaWQgMDpOLnByb21pc2UsRj0oKGQ9TyhTKSk9PW51bGw/dm9pZCAwOmQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBmLmdldFN0b3JlKCkuZ2V0TGl2ZVJlc29sdmVyUHJvbWlzZShlKX0pKT8/W107aWYoai5sZW5ndGh8fEYubGVuZ3RofHx4KFApKXtmLl9fbG9nKHtuYW1lOmBzdXNwZW5zZS5mcmFnbWVudGAsZGF0YTpiLmRhdGEsZnJhZ21lbnQ6ZSxpc1JlbGF5SG9va3M6ITAsaXNQcm9taXNlQ2FjaGVkOiExLGlzTWlzc2luZ0RhdGE6Yi5pc01pc3NpbmdEYXRhLHBlbmRpbmdPcGVyYXRpb25zOltdLmNvbmNhdCgoMCxhLmRlZmF1bHQpKChOPT1udWxsP3ZvaWQgMDpOLnBlbmRpbmdPcGVyYXRpb25zKT8/W10pLCgwLGEuZGVmYXVsdCkoQz8/W10pKX0pO3ZhciBlZT1bXTtpZihqLmxlbmd0aD4wJiYoZWU9ZWUuY29uY2F0KGopKSxGLmxlbmd0aD4wJiYoZWU9ZWUuY29uY2F0KEYpKSxlZS5sZW5ndGg+MCl0aHJvdyBQJiZlZS5wdXNoKFApLFByb21pc2UuYWxsKGVlKTtpZihQKXRocm93IFB9cmV0dXJuIG0uRU5BQkxFX1JFTEFZX09QRVJBVElPTl9UUkFDS0VSX1NVU1BFTlNFJiZiLmlzTWlzc2luZ0RhdGEmJnRoaXMuX2NhY2hlLnNldChuLHtraW5kOmBkb25lYCxyZXN1bHQ6Yn0pLHRoaXMuX3Rocm93T3JMb2dFcnJvcnNJblNuYXBzaG90KFMpLGYuX19sb2coe25hbWU6YGZyYWdtZW50cmVzb3VyY2UubWlzc2luZ19kYXRhYCxkYXRhOmIuZGF0YSxmcmFnbWVudDplLGlzUmVsYXlIb29rczohMCxjYWNoZWQ6ITF9KSxBKG4sUyxoKX0sdC5fcGVyZm9ybUNsaWVudEVkZ2VRdWVyeT1mdW5jdGlvbihlLHQsbixpLGEpe3ZhciBvPXkodCxuKSxzPWgoaSwoMCxyLmRlZmF1bHQpKCgwLHIuZGVmYXVsdCkoe30sbykse30se2lkOmF9KSx7fSksYz1mKHRoaXMuX2Vudmlyb25tZW50LHMpLGw9ZS5wcmVwYXJlKHMsYyk7cmV0dXJue3JlcXVlc3REZXNjcmlwdG9yOnMucmVxdWVzdCxxdWVyeVJlc3VsdDpsfX0sdC5fdGhyb3dPckxvZ0Vycm9yc0luU25hcHNob3Q9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaChmdW5jdGlvbihlKXtiKHQuX2Vudmlyb25tZW50LGUuZXJyb3JSZXNwb25zZUZpZWxkcyl9KTpiKHRoaXMuX2Vudmlyb25tZW50LGUuZXJyb3JSZXNwb25zZUZpZWxkcyl9LHQucmVhZFNwZWM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXt9O2Zvcih2YXIgaSBpbiBlKXJbaV09dGhpcy5yZWFkKGVbaV0sdFtpXSxuLGkpO3JldHVybiByfSx0LnN1YnNjcmliZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscixpPXRoaXMuX2Vudmlyb25tZW50LGE9ZS5jYWNoZUtleSxvPWUuc25hcHNob3Q7aWYoIW8pcmV0dXJue2Rpc3Bvc2U6ZnVuY3Rpb24oKXt9fTt2YXIgYz10aGlzLmNoZWNrTWlzc2VkVXBkYXRlcyhlKSx1PWNbMF0sZD1jWzFdO3UmJnQoKTt2YXIgZj1bXTtBcnJheS5pc0FycmF5KG8pPyghQXJyYXkuaXNBcnJheShkKSYmbCghMSksZC5mb3JFYWNoKGZ1bmN0aW9uKGUscil7Zi5wdXNoKGkuc3Vic2NyaWJlKGUsZnVuY3Rpb24oZSl7dmFyIG89aS5nZXRTdG9yZSgpLmdldEVwb2NoKCk7bi5fdXBkYXRlUGx1cmFsU25hcHNob3QoYSxkLGUscixvKSx0KCl9KSl9KSk6KCEoZCE9bnVsbCYmIUFycmF5LmlzQXJyYXkoZCkpJiZsKCExKSxmLnB1c2goaS5zdWJzY3JpYmUoZCxmdW5jdGlvbihlKXt2YXIgcj1pLmdldFN0b3JlKCkuZ2V0RXBvY2goKSxvPUEoYSxlLHIpO20uRU5BQkxFX1JFTEFZX09QRVJBVElPTl9UUkFDS0VSX1NVU1BFTlNFJiZvLmlzTWlzc2luZ0RhdGE/bi5fY2FjaGUuc2V0KGEse2tpbmQ6YG1pc3NpbmdgLHJlc3VsdDpvLHNuYXBzaG90OmV9KTpuLl9jYWNoZS5zZXQoYSx7a2luZDpgZG9uZWAscmVzdWx0OkEoYSxlLHIpfSksdCgpfSkpKTt2YXIgcD0oKHI9dGhpcy5fY2xpZW50RWRnZVF1ZXJ5UmVzdWx0c0NhY2hlKT09bnVsbD92b2lkIDA6ci5nZXQoYSkpPz92b2lkIDA7aWYocCE9bnVsbCYmcC5sZW5ndGgpe3ZhciBoPXModGhpcy5fZW52aXJvbm1lbnQpO3AuZm9yRWFjaChmdW5jdGlvbihlKXtmLnB1c2goaC5yZXRhaW4oZSkpfSl9cmV0dXJue2Rpc3Bvc2U6ZnVuY3Rpb24oKXtmLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGlzcG9zZSgpfSksbi5fY2FjaGUuZGVsZXRlKGEpfX19LHQuc3Vic2NyaWJlU3BlYz1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1PYmplY3Qua2V5cyhlKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIG4uc3Vic2NyaWJlKGVbcl0sdCl9KTtyZXR1cm57ZGlzcG9zZTpmdW5jdGlvbigpe3IuZm9yRWFjaChmdW5jdGlvbihlKXtlLmRpc3Bvc2UoKX0pfX19LHQuY2hlY2tNaXNzZWRVcGRhdGVzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2Vudmlyb25tZW50LG49ZS5zbmFwc2hvdDtpZighbilyZXR1cm5bITEsbnVsbF07dmFyIGk9bnVsbDtpZihpPXQuZ2V0U3RvcmUoKS5nZXRFcG9jaCgpLGUuc3RvcmVFcG9jaD09PWkpcmV0dXJuWyExLGUuc25hcHNob3RdO3ZhciBhPWUuY2FjaGVLZXk7aWYoQXJyYXkuaXNBcnJheShuKSl7dmFyIG89ITEscz1bXTtpZihuLmZvckVhY2goZnVuY3Rpb24oZSxuKXt2YXIgaT10Lmxvb2t1cChlLnNlbGVjdG9yKSxhPWUuZGF0YSxjPWkuZGF0YSxsPVMoYSxjKTtsIT09YSYmKGk9KDAsci5kZWZhdWx0KSgoMCxyLmRlZmF1bHQpKHt9LGkpLHt9LHtkYXRhOmx9KSxvPSEwKSxzW25dPWl9KSxvKXt2YXIgYz1BKGEscyxpKTttLkVOQUJMRV9SRUxBWV9PUEVSQVRJT05fVFJBQ0tFUl9TVVNQRU5TRSYmYy5pc01pc3NpbmdEYXRhP3RoaXMuX2NhY2hlLnNldChhLHtraW5kOmBtaXNzaW5nYCxyZXN1bHQ6YyxzbmFwc2hvdDpzfSk6dGhpcy5fY2FjaGUuc2V0KGEse2tpbmQ6YGRvbmVgLHJlc3VsdDpjfSl9cmV0dXJuW28sc119dmFyIGw9dC5sb29rdXAobi5zZWxlY3RvciksdT1uLmRhdGEsZD1sLmRhdGEsZj1TKHUsZCkscD17ZGF0YTpmLGlzTWlzc2luZ0RhdGE6bC5pc01pc3NpbmdEYXRhLG1pc3NpbmdDbGllbnRFZGdlczpsLm1pc3NpbmdDbGllbnRFZGdlcyxtaXNzaW5nTGl2ZVJlc29sdmVyRmllbGRzOmwubWlzc2luZ0xpdmVSZXNvbHZlckZpZWxkcyxzZWVuUmVjb3JkczpsLnNlZW5SZWNvcmRzLHNlbGVjdG9yOmwuc2VsZWN0b3IsZXJyb3JSZXNwb25zZUZpZWxkczpsLmVycm9yUmVzcG9uc2VGaWVsZHN9O2lmKGYhPT11KXt2YXIgaD1BKGEscCxpKTttLkVOQUJMRV9SRUxBWV9PUEVSQVRJT05fVFJBQ0tFUl9TVVNQRU5TRSYmaC5pc01pc3NpbmdEYXRhP3RoaXMuX2NhY2hlLnNldChhLHtraW5kOmBtaXNzaW5nYCxyZXN1bHQ6aCxzbmFwc2hvdDpwfSk6dGhpcy5fY2FjaGUuc2V0KGEse2tpbmQ6YGRvbmVgLHJlc3VsdDpofSl9cmV0dXJuW2YhPT11LHBdfSx0LmNoZWNrTWlzc2VkVXBkYXRlc1NwZWM9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4gT2JqZWN0LmtleXMoZSkuc29tZShmdW5jdGlvbihuKXtyZXR1cm4gdC5jaGVja01pc3NlZFVwZGF0ZXMoZVtuXSlbMF19KX0sdC5fZ2V0QW5kU2F2ZVByb21pc2VGb3JGcmFnbWVudFJlcXVlc3RJbkZsaWdodD1mdW5jdGlvbihlLHQsbixyKXt2YXIgaT10aGlzLGE9Xyh0aGlzLl9lbnZpcm9ubWVudCx0LG4pO2lmKGE9PW51bGwpcmV0dXJuIG51bGw7dmFyIG89YS5wcm9taXNlLHM9YS5wZW5kaW5nT3BlcmF0aW9ucyxjPW8udGhlbihmdW5jdGlvbigpe2kuX2NhY2hlLmRlbGV0ZShlKX0pLmNhdGNoKGZ1bmN0aW9uKHQpe2kuX2NhY2hlLmRlbGV0ZShlKX0pO3JldHVybiBjLmRpc3BsYXlOYW1lPW8uZGlzcGxheU5hbWUsdGhpcy5fY2FjaGUuc2V0KGUse2tpbmQ6YHBlbmRpbmdgLHBlbmRpbmdPcGVyYXRpb25zOnMscHJvbWlzZTpjLHJlc3VsdDpyfSkse3Byb21pc2U6YyxwZW5kaW5nT3BlcmF0aW9uczpzfX0sdC5fdXBkYXRlUGx1cmFsU25hcHNob3Q9ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxzPXRoaXMuX2NhY2hlLmdldChlKTtpZih4KHMpKXtOKG4uc2VsZWN0b3Iubm9kZS5uYW1lKTtyZXR1cm59dmFyIGM9cz09bnVsbHx8KG89cy5yZXN1bHQpPT1udWxsP3ZvaWQgMDpvLnNuYXBzaG90O2lmKGMmJiFBcnJheS5pc0FycmF5KGMpKXtOKG4uc2VsZWN0b3Iubm9kZS5uYW1lKTtyZXR1cm59dmFyIGw9Yz8oMCxhLmRlZmF1bHQpKGMpOigwLGEuZGVmYXVsdCkodCk7bFtyXT1uO3ZhciB1PUEoZSxsLGkpO20uRU5BQkxFX1JFTEFZX09QRVJBVElPTl9UUkFDS0VSX1NVU1BFTlNFJiZ1LmlzTWlzc2luZ0RhdGE/dGhpcy5fY2FjaGUuc2V0KGUse2tpbmQ6YG1pc3NpbmdgLHJlc3VsdDp1LHNuYXBzaG90Omx9KTp0aGlzLl9jYWNoZS5zZXQoZSx7a2luZDpgZG9uZWAscmVzdWx0OnV9KX0sZX0oKTtmdW5jdGlvbiBOKGUpe2woITEpfWZ1bmN0aW9uIFAoZSl7cmV0dXJuIG5ldyBNKGUpfXZhciBGPUM/bmV3IFdlYWtNYXA6bmV3IE1hcDtmdW5jdGlvbiBlZShlKXt2YXIgdD1GLmdldChlKTtpZih0KXJldHVybiB0O3ZhciBuPVAoZSk7cmV0dXJuIEYuc2V0KGUsbiksbn10LmV4cG9ydHM9e2NyZWF0ZUZyYWdtZW50UmVzb3VyY2U6UCxnZXRGcmFnbWVudFJlc291cmNlRm9yRW52aXJvbm1lbnQ6ZWV9fSkpKCk7ZnVuY3Rpb24gWGcoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBaZyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9YZyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7cGllKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOlhnKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBwaWUoZSx0LG4pe3JldHVybih0PW1pZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBtaWUoZSl7dmFyIHQ9aGllKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIGhpZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIGdpZShlLHQpe3JldHVybiBiaWUoZSl8fHlpZShlLHQpfHx2aWUoZSx0KXx8X2llKCl9ZnVuY3Rpb24gX2llKCl7dGhyb3cgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gdmllKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBRZyhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIG49PT1gT2JqZWN0YCYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxuPT09YE1hcGB8fG49PT1gU2V0YD9BcnJheS5mcm9tKGUpOm49PT1gQXJndW1lbnRzYHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/UWcoZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIFFnKGUsdCl7KHQ9PW51bGx8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiB5aWUoZSx0KXt2YXIgbj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDxgdWAmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtgQEBpdGVyYXRvcmBdO2lmKG4hPW51bGwpe3ZhciByLGksYSxvLHM9W10sYz0hMCxsPSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCx0PT09MCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihzLnB1c2goci52YWx1ZSkscy5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7bD0hMCxpPWV9ZmluYWxseXt0cnl7aWYoIWMmJm4ucmV0dXJuIT1udWxsJiYobz1uLnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGwpdGhyb3cgaX19cmV0dXJuIHN9fWZ1bmN0aW9uIGJpZShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfXZhciAkZz1gcmVmZXRjaF9hbGxfZmFpbGVkX3F1ZXJpZXMudHJpZ2dlcmA7ZnVuY3Rpb24geGllKGUsdCl7cmV0dXJuIHQ/YCR7ZX0tJHt0fWA6YCR7ZX1gfXZhciBlXz0oMCxHLmNyZWF0ZUNvbnRleHQpKHZvaWQgMCk7ZnVuY3Rpb24gdF8oZSl7dmFyIHQ7cmV0dXJuISEoZSE9bnVsbCYmZS5sYXN0RXJyb3JFcG9jaCkmJiEhKCgodD1lLmxhc3RFcnJvcik9PW51bGw/dm9pZCAwOnQuaXNRdWVyeUVycm9yQWN0aW9uYWJsZSk/PyEwKX1mdW5jdGlvbiBTaWUoZSx0LG4pe2xldCByPW4uZ2V0UmVjZW50bHlSZW5kZXJlZFF1ZXJ5VGltZXN0YW1wKGUpO3JldHVybiByPT09dm9pZCAwPyExOnQ+PXImJnQtcjw9MWU0fWZ1bmN0aW9uIENpZSh7Z3JhcGhxbEVudmlyb25tZW50OmUsY2hpbGRyZW46dH0pe2xldCBuPSgwLEcudXNlUmVmKShlKSxyPWdpZSgoMCxHLnVzZVN0YXRlKSh7fSksMiksaT1yWzBdLGE9clsxXTtuLmN1cnJlbnQhPT1lJiYobi5jdXJyZW50PWUsYSh7fSkpO2xldCBvPSgwLEcudXNlQ2FsbGJhY2spKChlLHQpPT57dmFyIG47bGV0IHI9QWcoZSx0KTtyZXR1cm5gJHsocj8obj1pW3JdKT09bnVsbD92b2lkIDA6bi5mZXRjaEtleTp2b2lkIDApPz8wfWB9LFtpXSkscz0oMCxHLnVzZUNhbGxiYWNrKSgoZSx0KT0+e3ZhciBuO2xldCByPUFnKGUsdCksYT1yPyhuPWlbcl0pPT1udWxsP3ZvaWQgMDpuLmJ5cGFzc0NhY2hlS2V5OnZvaWQgMDtyZXR1cm4gYT9gJHthfWA6dm9pZCAwfSxbaV0pLGM9KDAsRy51c2VDYWxsYmFjaykoKHQsbik9PntsZXQgcj0obj09bnVsbD92b2lkIDA6bi5mb3JjZVN1c3BlbmQpPz8hMDtpZihyKXRyeXt2YXIgaTtsZXQgdD0oaT0oMCxmaWUuZ2V0RnJhZ21lbnRSZXNvdXJjZUZvckVudmlyb25tZW50KShlLnJlbGF5RW52aXJvbm1lbnQpKT09bnVsbD92b2lkIDA6aS5fY2FjaGU7dD09bnVsbHx8dC5jbGVhcigpfWNhdGNoe2UubG9nZ2VyLmRlYnVnKGBmYWlsZWQgdG8gY2xlYXIgRnJhZ21lbnRSZXNvdXJjZSBjYWNoZWApfWZvcihsZXQgbiBvZiB0KXt2YXIgbztsZXQgdD0obz1lLmdldFByZWxvYWRlZFF1ZXJ5TFJVKCkpPT1udWxsP3ZvaWQgMDpvLmdldChuKTtpZih0KXtsZXQgZT10LmxvYWRRdWVyeSxuPXQub3B0aW9ucyxpPXQudmFyaWFibGVzO2UoaSxaZyhaZyh7fSxuKSx7fSx7ZmV0Y2hQb2xpY3k6cj9gbmV0d29yay1vbmx5YDpgc3RvcmUtYW5kLW5ldHdvcmtgLG5ldHdvcmtDYWNoZUNvbmZpZzpaZyhaZyh7fSxuPT1udWxsP3ZvaWQgMDpuLm5ldHdvcmtDYWNoZUNvbmZpZykse30se21ldGFkYXRhOntmb3JjZUxvYWRRdWVyeTp0fX0pfSkpfX1hKGU9PntsZXQgbj1aZyh7fSxlKTtmb3IobGV0IGUgb2YgdCl7dmFyIGksYSxvO25bZV09e2ZldGNoS2V5OigoKGk9bltlXSk9PW51bGw/dm9pZCAwOmkuZmV0Y2hLZXkpPz8wKSsxLGJ5cGFzc0NhY2hlS2V5OnI/KCgoYT1uW2VdKT09bnVsbD92b2lkIDA6YS5ieXBhc3NDYWNoZUtleSk/PzApKzE6KG89bltlXSk9PW51bGw/dm9pZCAwOm8uYnlwYXNzQ2FjaGVLZXl9fXJldHVybiBufSl9LFtlXSksbD0oMCxHLnVzZUNhbGxiYWNrKShhc3luYyh0PWB1bmtub3duYCxuPXZvaWQgMCk9PntsZXQgcj1lLmdldEFsbFF1ZXJ5TWV0YWRhdGEoKSxpPVtdO2ZvcihsZXQgZSBvZiBPYmplY3Qua2V5cyhyKSl7bGV0IG49cltlXS5vcGVyYXRpb25OYW1lO3RfKHJbZV0pJiYoX2Moe21ldHJpY05hbWU6aG0oJGcpLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6e29yaWdpbjp0LHJlYXNvbjpgZmFpbHVyZWAsb3BlcmF0aW9uX25hbWU6bj8/YHVua25vd25gfX0pLGkucHVzaChlKSl9aS5sZW5ndGghPT0wJiYoYyhpLG4pLGF3YWl0IGUud2FpdEZvclF1ZXJpZXNUb1NldHRsZSgpKX0sW2UsY10pLHU9KDAsRy51c2VDYWxsYmFjaykoKHQsbj1gdW5rbm93bmApPT57aWYoIWUuZmVhdHVyZUZsYWdzLmVuYWJsZVJlZmV0Y2hpbmdSZWNlbnRseVJlbmRlcmVkUXVlcmllc0luRXJyb3JIYW5kbGluZyl7bChuKTtyZXR1cm59bGV0IHI9ZS5nZXRBbGxRdWVyeU1ldGFkYXRhKCksaT1bXTtmb3IobGV0IGEgb2YgT2JqZWN0LmtleXMocikpe2xldCBvPXJbYV0ub3BlcmF0aW9uTmFtZTt0XyhyW2FdKT8oX2Moe21ldHJpY05hbWU6aG0oJGcpLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6e29yaWdpbjpuLHJlYXNvbjpgZmFpbHVyZWAsb3BlcmF0aW9uX25hbWU6bz8/YHVua25vd25gfX0pLGkucHVzaChhKSk6U2llKGEsdCxlKSYmKF9jKHttZXRyaWNOYW1lOmhtKCRnKSxtZXRyaWNUeXBlOkIuY291bnQsdmFsdWU6MSx0YWdzOntvcmlnaW46bixyZWFzb246YHJlY2VudGx5X3JlbmRlcmVkYCxvcGVyYXRpb25fbmFtZTpvPz9gdW5rbm93bmB9fSksaS5wdXNoKGEpKX1pLmxlbmd0aCE9PTAmJmMoaSl9LFtlLGwsY10pLGQ9KDAsRy51c2VNZW1vKSgoKT0+KHtnZXRGZXRjaEtleTpvLHJlZmV0Y2hBbGxGYWlsZWRRdWVyaWVzOmwscmVmZXRjaEFsbEZhaWxlZEFuZFJlY2VudGx5UmVuZGVyZWRRdWVyaWVzOnUsZ2V0QnlwYXNzQ2FjaGVLZXk6c30pLFtvLGwsdSxzXSk7cmV0dXJuKDAsSy5qc3gpKGVfLlByb3ZpZGVyLHt2YWx1ZTpkLGNoaWxkcmVuOnR9KX1mdW5jdGlvbiB3aWUoZSx0KXtsZXQgbj0oMCxHLnVzZUNvbnRleHQpKGVfKTtpZighbil0aHJvdyBFcnJvcihgQXR0ZW1wdGVkIHRvIGNhbGwgdXNlRmV0Y2hLZXkgb3V0c2lkZSBvZiBhIFF1ZXJ5RmV0Y2hrZXlQcm92aWRlci5gKTtyZXR1cm4gbi5nZXRGZXRjaEtleShlLHQpfWZ1bmN0aW9uIFRpZShlLHQpe2xldCBuPSgwLEcudXNlQ29udGV4dCkoZV8pO2lmKCFuKXRocm93IEVycm9yKGBBdHRlbXB0ZWQgdG8gY2FsbCB1c2VCeXBhc3NDYWNoZUtleSBvdXRzaWRlIG9mIGEgUXVlcnlGZXRjaGtleVByb3ZpZGVyLmApO3JldHVybiBuLmdldEJ5cGFzc0NhY2hlS2V5KGUsdCl9dmFyIG5fPSgwLEcuY3JlYXRlQ29udGV4dCkodm9pZCAwKTtmdW5jdGlvbiBFaWUoe2Vudmlyb25tZW50OmUsdXNlRm9jdXNFZmZlY3Q6dD1HLnVzZUVmZmVjdCxjaGlsZHJlbjpufSl7bGV0IHI9S2coe3R5cGU6YGdyYXBocWxQcm92aWRlcmAsbmFtZTpgYCxpZGVudGlmaWVyOmBncmFwaHFsUHJvdmlkZXJgfSksaT1KZygpO3Iubm90aWZ5UmVuZGVyKGkpO2xldCBhO2lmKGBjb21wbGV0ZWBpbiBlKXtpZighZS5jb21wbGV0ZSl0aHJvdyByLm5vdGlmeVN1c3BlbmRlZCgpLGU7aWYoci5ub3RpZnlSZXNvbHZlZCgpLGUuZXJyb3IpdGhyb3cgZS5lcnJvcjtpZighZS5lbnZpcm9ubWVudCl0aHJvdyBFcnJvcihgRW52aXJvbm1lbnQgcHJvbWlzZSByZXNvbHZlZCBidXQgbm8gZW52aXJvbm1lbnQgb3IgZXJyb3IgcmV0dXJuZWQuYCk7YT1lLmVudmlyb25tZW50fWVsc2Ugci5ub3RpZnlSZXNvbHZlZCgpLGE9ZTtyZXR1cm4oMCxLLmpzeCkobl8uUHJvdmlkZXIse3ZhbHVlOmEsY2hpbGRyZW46KDAsSy5qc3gpKE1oLlJlbGF5RW52aXJvbm1lbnRQcm92aWRlcix7ZW52aXJvbm1lbnQ6YS5yZWxheUVudmlyb25tZW50LGNoaWxkcmVuOigwLEsuanN4KShDaWUse2dyYXBocWxFbnZpcm9ubWVudDphLGNoaWxkcmVuOigwLEsuanN4KShZcmUse3VzZUZvY3VzRWZmZWN0OnQsY2hpbGRyZW46bn0pfSl9KX0pfWZ1bmN0aW9uIHJfKCl7bGV0IGU9KDAsRy51c2VDb250ZXh0KShuXyk7aWYoIWUpdGhyb3cgRXJyb3IoYEF0dGVtcHRlZCB0byB1c2UgR3JhcGhRTCBlbnZpcm9ubWVudCB3aXRoIG5vIHByb3ZpZGVyLiBQbGVhc2UgaW5jbGR1ZSBhIDxHcmFwaFFMUHJvdmlkZXI+IGhpZ2hlciBpbiB5b3VyIFJlYWN0IHRyZWUuYCk7cmV0dXJuIGV9ZnVuY3Rpb24gaV8oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBhXyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9pXyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7RGllKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmlfKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBEaWUoZSx0LG4pe3JldHVybih0PU9pZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBPaWUoZSl7dmFyIHQ9a2llKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIGtpZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIEFpZShlKXtyZXR1cm57cmVzcG9uc2VUeXBlOmUsaGFuZGxlck1hcDp7fSx3aGVuOmZ1bmN0aW9uKGUsdCl7bGV0IG49KEFycmF5LmlzQXJyYXkoZSk/ZTpbZV0pLnJlZHVjZSgoZSxuKT0+YV8oYV8oe30sZSkse30se1tuXTp0fSkse30pO3JldHVybiBhXyhhXyh7fSx0aGlzKSx7fSx7aGFuZGxlck1hcDphXyhhXyh7fSx0aGlzLmhhbmRsZXJNYXApLG4pfSl9LG90aGVyd2lzZTpmdW5jdGlvbihlKXtpZih0aGlzLnJlc3BvbnNlVHlwZT09PW51bGwpcmV0dXJuIGUodGhpcy5yZXNwb25zZVR5cGUpO2xldCB0PXRoaXMucmVzcG9uc2VUeXBlLl9fdHlwZW5hbWU7aWYodCBpbiB0aGlzLmhhbmRsZXJNYXApe2xldCBlPXRoaXMuaGFuZGxlck1hcFt0XTtyZXR1cm4gZSh0aGlzLnJlc3BvbnNlVHlwZSl9cmV0dXJuIGUodGhpcy5yZXNwb25zZVR5cGUpfX19dmFyIGppZT0oMCxHLmNyZWF0ZUNvbnRleHQpKCExKTtmdW5jdGlvbiBvXygpe3JldHVybigwLEcudXNlQ29udGV4dCkoamllKX1mdW5jdGlvbiBzXyhlLHQpe2xldCBuPUtnKHt0eXBlOmBmcmFnbWVudGAsbmFtZTpGaChlKT8/YGAsaWRlbnRpZmllcjp0PT1udWxsP3ZvaWQgMDp0Ll9faWR9KSxyPXJfKCk7b18oKSxyLmZlYXR1cmVGbGFncy5lbmFibGVQZXJzaXN0ZWRDYWNoZUd1YXJkcmFpbDtsZXQgaT1KZygpO24ubm90aWZ5UmVuZGVyKGkpO3RyeXtsZXQgcj0oMCxNaC51c2VGcmFnbWVudCkoZSx0KTtyZXR1cm4gbi5ub3RpZnlSZXNvbHZlZCgpLHJ9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIFByb21pc2U/bi5ub3RpZnlTdXNwZW5kZWQoKTpuLm5vdGlmeVJlc29sdmVkKCksZSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgbj1qZyh0KSxpPXIuZ2V0UXVlcnlNZXRhZGF0YShuKS5sYXN0RXJyb3I7aSYmZS5xdWVyeUVycm9yPT09dm9pZCAwJiYoZS5xdWVyeUVycm9yPWkpfXRocm93IGV9fWZ1bmN0aW9uIGNfKGUsdCl7cmV0dXJuIHNfKGUsdCl9ZnVuY3Rpb24gbF8oZSx0KXtyZXR1cm4oZS5lcnJvclJlc3BvbnNlRmllbGRzPz9bXSkuZmxhdE1hcChlPT4odD09PXZvaWQgMHx8ZS5vd25lcj09PXQpJiZlLmVycm9yP1tlLmVycm9yXTpbXSl9ZnVuY3Rpb24gTWllKGUsdCxuKXtsZXQgcj1bXSxpPWBgO2ZvcihsZXQgbiBvZiB0KXt2YXIgYTsoYT1uLmVycm9yUGF0aCkhPW51bGwmJmEuZW5kc1dpdGgoZSkmJihpIT09YGAmJm4uZXJyb3JQYXRoIT09aXx8KGk9bi5lcnJvclBhdGgsci5wdXNoKG4pKSl9cmV0dXJuIHJ9ZnVuY3Rpb24gTmllKGUsdCxuKXtsZXQgcj1bXTtpZihgc2VsZWN0b3JzYGluIGUpZm9yKGxldCBpIG9mIGUuc2VsZWN0b3JzKXtsZXQgZT10Lmxvb2t1cChpKTtyLnB1c2goLi4ubF8oZSxuKSl9ZWxzZXtsZXQgaT10Lmxvb2t1cChlKTtyLnB1c2goLi4ubF8oaSxuKSl9cmV0dXJuIHJ9ZnVuY3Rpb24gUGllKHtyZWFkZXJTZWxlY3RvcjplLGdyYXBocWxFbnZpcm9ubWVudDp0LHBhdGg6bixvd25pbmdGcmFnbWVudE9yUXVlcnlOYW1lOnJ9KXtsZXQgaT10LnJlbGF5RW52aXJvbm1lbnQ7dC5sb2dnZXI7dHJ5e3ZhciBhO2xldCB0PU1pZShuLE5pZShlLGkscikscik7cmV0dXJuIHQ9PW51bGx8fChhPXRbMF0pPT1udWxsfHwoYT1hLmV4dGVuc2lvbnMpPT1udWxsP3ZvaWQgMDphLmVycm9yTWV0YWRhdGF9Y2F0Y2h7fX1mdW5jdGlvbiB1Xyh7ZGF0YTplLHJlYWRlclNlbGVjdG9yOnQsZ3JhcGhxbEVudmlyb25tZW50Om4sb3duaW5nRnJhZ21lbnRPclF1ZXJ5TmFtZTpyfSl7bGV0IGk9KDAsRy51c2VNZW1vKSgoKT0+bmV3IE1hcCxbZV0pO3JldHVybiBlPT57aWYoaS5oYXMoZSkpcmV0dXJuIGkuZ2V0KGUpO2xldCBhPVBpZSh7Z3JhcGhxbEVudmlyb25tZW50Om4sb3duaW5nRnJhZ21lbnRPclF1ZXJ5TmFtZTpyLHJlYWRlclNlbGVjdG9yOnQscGF0aDplfSk7cmV0dXJuIGEmJmkuc2V0KGUsYSksYX19ZnVuY3Rpb24gRmllKGUsdCl7bGV0IG49KDAsRy51c2VNZW1vKSgoKT0+KDAsWXAuZ2V0RnJhZ21lbnQpKGUpLFtlXSkscj0oMCxHLnVzZU1lbW8pKCgpPT4oMCxZcC5nZXRTZWxlY3Rvcikobix0KSxbbix0XSksaT1uLm5hbWUsYT1yXygpLG89c18oZSx0KTtyZXR1cm5bbyx1Xyh7ZGF0YTpvLHJlYWRlclNlbGVjdG9yOnIsZ3JhcGhxbEVudmlyb25tZW50OmEsb3duaW5nRnJhZ21lbnRPclF1ZXJ5TmFtZTppfSldfXZhciBkXz1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oKXtyZXR1cm4gdC5leHBvcnRzPW49T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSx0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHMsbi5hcHBseShudWxsLGFyZ3VtZW50cyl9dC5leHBvcnRzPW4sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSkpLGZfPXMoKChlLHQpPT57ZnVuY3Rpb24gbihlKXtpZihlPT09dm9pZCAwKXRocm93IFJlZmVyZW5jZUVycm9yKGB0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRgKTtyZXR1cm4gZX10LmV4cG9ydHM9bix0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHMuZGVmYXVsdD10LmV4cG9ydHN9KSksSWllPXMoKChlLHQpPT57ZnVuY3Rpb24gbihlLHIpe3JldHVybiB0LmV4cG9ydHM9bj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihlLHQpe3JldHVybiBlLl9fcHJvdG9fXz10LGV9LHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0cyxuKGUscil9dC5leHBvcnRzPW4sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzLmRlZmF1bHQ9dC5leHBvcnRzfSkpLHBfPXMoKChlLHQpPT57dmFyIG49SWllKCk7ZnVuY3Rpb24gcihlLHQpe2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsbihlLHQpfXQuZXhwb3J0cz1yLHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0cy5kZWZhdWx0PXQuZXhwb3J0c30pKSxMaWU9cygoKGUsdCk9Pnt2YXIgbj1GZCgpO2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIHIgaW4hKHQmJnR5cGVvZiB0PT1gb2JqZWN0YCkmJm4oITEpLHQpaWYodC5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIGk9dFtyXTshKGkmJih0eXBlb2YgaT09YG9iamVjdGB8fHR5cGVvZiBpPT1gZnVuY3Rpb25gKSkmJm4oITEpfX10LmV4cG9ydHM9cn0pKSxtXz1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGUuZGlzcGxheU5hbWV8fGUubmFtZXx8YENvbXBvbmVudGB9ZnVuY3Rpb24gcihlKXtyZXR1cm5gUmVsYXkoYCtuKGUpK2ApYH10LmV4cG9ydHM9e2dldENvbXBvbmVudE5hbWU6bixnZXRDb250YWluZXJOYW1lOnJ9fSkpLGhfPXMoKChlLHQpPT57dC5leHBvcnRzPVR1KCkuY3JlYXRlQ29udGV4dCh7cm9vdElzUXVlcnlSZW5kZXJlcjohMX0pfSkpLGdfPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihkXygpKSxpPUxpZSgpLGE9bV8oKSxvPWEuZ2V0Q29tcG9uZW50TmFtZSxzPWEuZ2V0Q29udGFpbmVyTmFtZSxjPW5oKCksbD1oXygpLHU9RmQoKSxkPVR1KCksZj1xcCgpLmdldEZyYWdtZW50LHA9ZC51c2VDb250ZXh0O2Z1bmN0aW9uIG0oZSx0LG4pe3ZhciBhPXMoZSk7aShvKGUpLHQpO3ZhciBtPXt9O2Zvcih2YXIgaCBpbiB0KW1baF09Zih0W2hdKTt2YXIgZz1uKGUsbSk7Zy5kaXNwbGF5TmFtZT1hO2Z1bmN0aW9uIF8oZSx0KXt2YXIgbj1wKGMpO24/P3UoITEpO3ZhciBpPXAobCk7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChnLCgwLHIuZGVmYXVsdCkoe30sZSx7X19yZWxheUNvbnRleHQ6bixfX3Jvb3RJc1F1ZXJ5UmVuZGVyZXI6KGk9PW51bGw/dm9pZCAwOmkucm9vdElzUXVlcnlSZW5kZXJlcik/PyExLGNvbXBvbmVudFJlZjplLmNvbXBvbmVudFJlZnx8dH0pKX1yZXR1cm4gXy5kaXNwbGF5TmFtZT1hLGQuZm9yd2FyZFJlZihfKX10LmV4cG9ydHM9bX0pKSxSaWU9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJiEhZSYmdHlwZW9mIGUuY2hlY2s9PWBmdW5jdGlvbmAmJnR5cGVvZiBlLmxvb2t1cD09YGZ1bmN0aW9uYCYmdHlwZW9mIGUucmV0YWluPT1gZnVuY3Rpb25gJiZ0eXBlb2YgZS5leGVjdXRlPT1gZnVuY3Rpb25gJiZ0eXBlb2YgZS5zdWJzY3JpYmU9PWBmdW5jdGlvbmB9dC5leHBvcnRzPW59KSksX189cygoKGUsdCk9Pnt2YXIgbj1SaWUoKSxyPUZkKCk7ZnVuY3Rpb24gaShlKXtyZXR1cm4hYShlKSYmcighMSksZX1mdW5jdGlvbiBhKGUpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJiEhZSYmIUFycmF5LmlzQXJyYXkoZSkmJm4oZS5lbnZpcm9ubWVudCl9dC5leHBvcnRzPXthc3NlcnRSZWxheUNvbnRleHQ6aSxpc1JlbGF5Q29udGV4dDphfX0pKSx6aWU9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKGRfKCkpLGk9bihxZigpKSxhPW4oZl8oKSksbz1uKHBfKCkpLHM9bihxZCgpKSxjPVtgY29tcG9uZW50UmVmYCxgX19yZWxheUNvbnRleHRgLGBfX3Jvb3RJc1F1ZXJ5UmVuZGVyZXJgXSxsPWdfKCksdT1tXygpLmdldENvbnRhaW5lck5hbWUsZD1fXygpLmFzc2VydFJlbGF5Q29udGV4dCxmPWFmKCkscD1UdSgpLG09cXAoKSxoPW0uY3JlYXRlRnJhZ21lbnRTcGVjUmVzb2x2ZXIsZz1tLmdldERhdGFJRHNGcm9tT2JqZWN0LF89bS5pc1NjYWxhckFuZEVxdWFsO2Z1bmN0aW9uIHYoZSx0KXt2YXIgbixsPXUoZSk7cmV0dXJuIG49ZnVuY3Rpb24obil7KDAsby5kZWZhdWx0KSh1LG4pO2Z1bmN0aW9uIHUoZSl7dmFyIHI9bi5jYWxsKHRoaXMsZSl8fHRoaXM7KDAscy5kZWZhdWx0KSgoMCxhLmRlZmF1bHQpKHIpLGBfaGFuZGxlRnJhZ21lbnREYXRhVXBkYXRlYCxmdW5jdGlvbigpe3ZhciBlPXIuc3RhdGUucmVzb2x2ZXI7ci5zZXRTdGF0ZShmdW5jdGlvbih0KXtyZXR1cm4gZT09PXQucmVzb2x2ZXI/e2RhdGE6dC5yZXNvbHZlci5yZXNvbHZlKCkscmVsYXlQcm9wOnkodC5yZWxheVByb3AuZW52aXJvbm1lbnQpfTpudWxsfSl9KTt2YXIgaT1kKGUuX19yZWxheUNvbnRleHQpLG89aChpLGwsdCxlLGUuX19yb290SXNRdWVyeVJlbmRlcmVyPz8hMSk7cmV0dXJuIHIuc3RhdGU9e2RhdGE6by5yZXNvbHZlKCkscHJldlByb3BzOmUscHJldlByb3BzQ29udGV4dDppLHJlbGF5UHJvcDp5KGkuZW52aXJvbm1lbnQpLHJlc29sdmVyOm99LHJ9dS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM9ZnVuY3Rpb24oZSxuKXt2YXIgcj1uLnByZXZQcm9wcyxpPWQoZS5fX3JlbGF5Q29udGV4dCksYT1lLl9fcm9vdElzUXVlcnlSZW5kZXJlcj8/ITEsbz1nKHQscikscz1nKHQsZSksYz1uLnJlc29sdmVyO2lmKG4ucHJldlByb3BzQ29udGV4dC5lbnZpcm9ubWVudCE9PWkuZW52aXJvbm1lbnR8fCFmKG8scykpcmV0dXJuIGM9aChpLGwsdCxlLGEpLHtkYXRhOmMucmVzb2x2ZSgpLHByZXZQcm9wc0NvbnRleHQ6aSxwcmV2UHJvcHM6ZSxyZWxheVByb3A6eShpLmVudmlyb25tZW50KSxyZXNvbHZlcjpjfTtjLnNldFByb3BzKGUpO3ZhciB1PWMucmVzb2x2ZSgpO3JldHVybiB1PT09bi5kYXRhP251bGw6e2RhdGE6dSxwcmV2UHJvcHM6ZSxwcmV2UHJvcHNDb250ZXh0OmkscmVsYXlQcm9wOnkoaS5lbnZpcm9ubWVudCl9fTt2YXIgbT11LnByb3RvdHlwZTtyZXR1cm4gbS5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3RoaXMuX3N1YnNjcmliZVRvTmV3UmVzb2x2ZXJBbmRSZXJlbmRlcklmU3RvcmVIYXNDaGFuZ2VkKCl9LG0uY29tcG9uZW50RGlkVXBkYXRlPWZ1bmN0aW9uKGUsdCl7dGhpcy5zdGF0ZS5yZXNvbHZlcj09PXQucmVzb2x2ZXI/dGhpcy5fcmVyZW5kZXJJZlN0b3JlSGFzQ2hhbmdlZCgpOih0LnJlc29sdmVyLmRpc3Bvc2UoKSx0aGlzLl9zdWJzY3JpYmVUb05ld1Jlc29sdmVyQW5kUmVyZW5kZXJJZlN0b3JlSGFzQ2hhbmdlZCgpKX0sbS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMuc3RhdGUucmVzb2x2ZXIuZGlzcG9zZSgpfSxtLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mdW5jdGlvbihlLG4pe2lmKG4uZGF0YSE9PXRoaXMuc3RhdGUuZGF0YSlyZXR1cm4hMDtmb3IodmFyIHI9T2JqZWN0LmtleXMoZSksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldO2lmKGE9PT1gX19yZWxheUNvbnRleHRgKXtpZihuLnByZXZQcm9wc0NvbnRleHQuZW52aXJvbm1lbnQhPT10aGlzLnN0YXRlLnByZXZQcm9wc0NvbnRleHQuZW52aXJvbm1lbnQpcmV0dXJuITB9ZWxzZSBpZighdC5oYXNPd25Qcm9wZXJ0eShhKSYmIV8oZVthXSx0aGlzLnByb3BzW2FdKSlyZXR1cm4hMH1yZXR1cm4hMX0sbS5fcmVyZW5kZXJJZlN0b3JlSGFzQ2hhbmdlZD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhdGUsdD1lLmRhdGEsbj1lLnJlc29sdmVyLnJlc29sdmUoKTt0IT09biYmdGhpcy5zZXRTdGF0ZSh7ZGF0YTpufSl9LG0uX3N1YnNjcmliZVRvTmV3UmVzb2x2ZXJBbmRSZXJlbmRlcklmU3RvcmVIYXNDaGFuZ2VkPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zdGF0ZSx0PWUuZGF0YSxuPWUucmVzb2x2ZXIscj1uLnJlc29sdmUoKTtuLnNldENhbGxiYWNrKHRoaXMucHJvcHMsdGhpcy5faGFuZGxlRnJhZ21lbnREYXRhVXBkYXRlKSx0IT09ciYmdGhpcy5zZXRTdGF0ZSh7ZGF0YTpyfSl9LG0ucmVuZGVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wcm9wcyxuPXQuY29tcG9uZW50UmVmO3QuX19yZWxheUNvbnRleHQsdC5fX3Jvb3RJc1F1ZXJ5UmVuZGVyZXI7dmFyIGE9KDAsaS5kZWZhdWx0KSh0LGMpO3JldHVybiBwLmNyZWF0ZUVsZW1lbnQoZSwoMCxyLmRlZmF1bHQpKHt9LGEsdGhpcy5zdGF0ZS5kYXRhLHtyZWY6bixyZWxheTp0aGlzLnN0YXRlLnJlbGF5UHJvcH0pKX0sdX0ocC5Db21wb25lbnQpLCgwLHMuZGVmYXVsdCkobixgZGlzcGxheU5hbWVgLGwpLG59ZnVuY3Rpb24geShlKXtyZXR1cm57ZW52aXJvbm1lbnQ6ZX19ZnVuY3Rpb24gYihlLHQpe3JldHVybiBsKGUsdCx2KX10LmV4cG9ydHM9e2NyZWF0ZUNvbnRhaW5lcjpifX0pKSxCaWU9cygoKGUsdCk9Pnt2YXIgbj1uaCgpLHI9aF8oKSxpPWFmKCksYT1UdSgpLG89cXAoKSxzPW8uY3JlYXRlT3BlcmF0aW9uRGVzY3JpcHRvcjtvLmRlZXBGcmVlemU7dmFyIGM9by5nZXRSZXF1ZXN0LGw9YS51c2VMYXlvdXRFZmZlY3QsdT1hLnVzZVN0YXRlLGQ9YS51c2VSZWYsZj1hLnVzZU1lbW8scD17cm9vdElzUXVlcnlSZW5kZXJlcjohMH07ZnVuY3Rpb24gbShlKXt2YXIgdD1hLnVzZVJlZihlKTtyZXR1cm4gaSh0LmN1cnJlbnQsZSl8fCh0LmN1cnJlbnQ9ZSksdC5jdXJyZW50fWZ1bmN0aW9uIGgoZSl7dmFyIHQ9ZS5lbnZpcm9ubWVudCxpPWUucXVlcnksbz1lLnZhcmlhYmxlcyxoPWUucmVuZGVyLGc9bShvKSxfPWYoZnVuY3Rpb24oKXtyZXR1cm4gcyhjKGkpLGcpfSxbaSxnXSksdj1mKGZ1bmN0aW9uKCl7cmV0dXJue2Vudmlyb25tZW50OnR9fSxbdF0pLHk9ZChudWxsKSxiPXUobnVsbClbMV0seD1kKG51bGwpO3JldHVybiBsKGZ1bmN0aW9uKCl7dmFyIGU9eC5jdXJyZW50O3JldHVybiBmdW5jdGlvbigpe2UmJmUoKX19LFtmKGZ1bmN0aW9uKCl7dC5jaGVjayhfKTt2YXIgZT10Lmxvb2t1cChfLmZyYWdtZW50KTt5LmN1cnJlbnQ9ZS5kYXRhO3ZhciBuPXQucmV0YWluKF8pLHI9dC5zdWJzY3JpYmUoZSxmdW5jdGlvbihlKXt5LmN1cnJlbnQ9ZS5kYXRhLGIoeS5jdXJyZW50KX0pLGk9ITE7ZnVuY3Rpb24gYSgpe2l8fChpPSEwLHguY3VycmVudD1udWxsLG4uZGlzcG9zZSgpLHIuZGlzcG9zZSgpKX1yZXR1cm4geC5jdXJyZW50JiZ4LmN1cnJlbnQoKSx4LmN1cnJlbnQ9YSxlfSxbdCxfXSldKSxhLmNyZWF0ZUVsZW1lbnQobi5Qcm92aWRlcix7dmFsdWU6dn0sYS5jcmVhdGVFbGVtZW50KHIuUHJvdmlkZXIse3ZhbHVlOnB9LGgoe3Byb3BzOnkuY3VycmVudH0pKSl9dC5leHBvcnRzPWh9KSksdl89cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEpkKCkpLGk9cXAoKS5nZXRTZWxlY3RvcjtmdW5jdGlvbiBhKGUsdCl7dmFyIG49e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIG8scz1lW2FdLGM9dFthXSxsPWkocyxjKSx1PWwhPW51bGwmJmwua2luZD09PWBQbHVyYWxSZWFkZXJTZWxlY3RvcmA/KChvPWwuc2VsZWN0b3JzWzBdKT09bnVsbD92b2lkIDA6by5vd25lci52YXJpYWJsZXMpPz97fToobD09bnVsbD92b2lkIDA6bC5vd25lci52YXJpYWJsZXMpPz97fTtuPSgwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSxuKSx1KX0pLG59dC5leHBvcnRzPWF9KSkseV89cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKHFkKCkpLGk9RmQoKSxhPXFwKCksbz1hLl9faW50ZXJuYWwuZmV0Y2hRdWVyeSxzPWEuY3JlYXRlT3BlcmF0aW9uRGVzY3JpcHRvcixjPWEuaXNSZWxheU1vZGVybkVudmlyb25tZW50O3QuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7KDAsci5kZWZhdWx0KSh0aGlzLGBfc2VsZWN0aW9uUmVmZXJlbmNlc2AsW10pLCgwLHIuZGVmYXVsdCkodGhpcyxgX2RpZEZldGNoRmluaXNoYCwhMSksZSE9bnVsbCYmKHRoaXMuX2NhY2hlU2VsZWN0aW9uUmVmZXJlbmNlPWUuY2FjaGVTZWxlY3Rpb25SZWZlcmVuY2UsdGhpcy5fc2VsZWN0aW9uUmVmZXJlbmNlcz1lLnNlbGVjdGlvblJlZmVyZW5jZXMpfXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LmdldFNlbGVjdGlvblJlZmVyZW5jZXM9ZnVuY3Rpb24oKXtyZXR1cm57Y2FjaGVTZWxlY3Rpb25SZWZlcmVuY2U6dGhpcy5fY2FjaGVTZWxlY3Rpb25SZWZlcmVuY2Usc2VsZWN0aW9uUmVmZXJlbmNlczp0aGlzLl9zZWxlY3Rpb25SZWZlcmVuY2VzfX0sdC5sb29rdXBJblN0b3JlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4obj09PWBzdG9yZS1hbmQtbmV0d29ya2B8fG49PT1gc3RvcmUtb3ItbmV0d29ya2ApJiZlLmNoZWNrKHQpLnN0YXR1cz09PWBhdmFpbGFibGVgPyh0aGlzLl9yZXRhaW5DYWNoZWRPcGVyYXRpb24oZSx0KSxlLmxvb2t1cCh0LmZyYWdtZW50KSk6bnVsbH0sdC5nZXRGZXRjaFJlc3VsdD1mdW5jdGlvbigpe2lmKHRoaXMuX2RpZEZldGNoRmluaXNoKXtpZih0aGlzLl9lcnJvciE9bnVsbClyZXR1cm57ZXJyb3I6dGhpcy5fZXJyb3J9O2lmKHRoaXMuX3NuYXBzaG90IT1udWxsKXJldHVybntzbmFwc2hvdDp0aGlzLl9zbmFwc2hvdH19ZWxzZSByZXR1cm4gbnVsbH0sdC5leGVjdXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1lLmVudmlyb25tZW50LHI9ZS5vcGVyYXRpb24saT1lLnByZXNlcnZlUHJldmlvdXNSZWZlcmVuY2VzLGE9aT09PXZvaWQgMD8hMTppLHM9bi5yZXRhaW4ociksbD1mdW5jdGlvbigpe3QuX3NlbGVjdGlvblJlZmVyZW5jZXM9dC5fc2VsZWN0aW9uUmVmZXJlbmNlcy5jb25jYXQocyl9LHU9ZnVuY3Rpb24oKXthfHx0LmRpc3Bvc2VTZWxlY3Rpb25SZWZlcmVuY2VzKCksdC5fc2VsZWN0aW9uUmVmZXJlbmNlcz10Ll9zZWxlY3Rpb25SZWZlcmVuY2VzLmNvbmNhdChzKX0sZD1mdW5jdGlvbigpe3QuX3NlbGVjdGlvblJlZmVyZW5jZXM9dC5fc2VsZWN0aW9uUmVmZXJlbmNlcy5jb25jYXQocyl9O3JldHVybiBjKG4pP28obixyKS5kbyh7ZXJyb3I6bCxjb21wbGV0ZTp1LHVuc3Vic2NyaWJlOmR9KTpuLmV4ZWN1dGUoe29wZXJhdGlvbjpyfSkuZG8oe2Vycm9yOmwsY29tcGxldGU6dSx1bnN1YnNjcmliZTpkfSl9LHQuc2V0T25EYXRhQ2hhbmdlPWZ1bmN0aW9uKGUpeyF0aGlzLl9mZXRjaE9wdGlvbnMmJmkoITEpLHR5cGVvZiBlPT1gZnVuY3Rpb25gJiYodGhpcy5fZmV0Y2hPcHRpb25zLm9uRGF0YUNoYW5nZUNhbGxiYWNrcz10aGlzLl9mZXRjaE9wdGlvbnMub25EYXRhQ2hhbmdlQ2FsbGJhY2tzfHxbXSx0aGlzLl9mZXRjaE9wdGlvbnMub25EYXRhQ2hhbmdlQ2FsbGJhY2tzLnB1c2goZSksdGhpcy5fZGlkRmV0Y2hGaW5pc2gmJih0aGlzLl9lcnJvcj09bnVsbD90aGlzLl9zbmFwc2hvdCE9bnVsbCYmZSh7c25hcHNob3Q6dGhpcy5fc25hcHNob3R9KTplKHtlcnJvcjp0aGlzLl9lcnJvcn0pKSl9LHQuZmV0Y2g9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHI9ZS5lbnZpcm9ubWVudCxpPWUub3BlcmF0aW9uLGE9ZS5vbkRhdGFDaGFuZ2Usbz0hMSxjO3RoaXMuZGlzcG9zZVJlcXVlc3QoKTt2YXIgbD10aGlzLl9mZXRjaE9wdGlvbnMmJnRoaXMuX2ZldGNoT3B0aW9ucy5vbkRhdGFDaGFuZ2VDYWxsYmFja3M7dGhpcy5fZmV0Y2hPcHRpb25zPXtlbnZpcm9ubWVudDpyLG9uRGF0YUNoYW5nZUNhbGxiYWNrczpsfHxbXSxvcGVyYXRpb246aX0sYSYmdGhpcy5fZmV0Y2hPcHRpb25zLm9uRGF0YUNoYW5nZUNhbGxiYWNrcy5pbmRleE9mKGEpPT09LTEmJnRoaXMuX2ZldGNoT3B0aW9ucy5vbkRhdGFDaGFuZ2VDYWxsYmFja3MucHVzaChhKTt2YXIgdT10P3MoaS5yZXF1ZXN0Lm5vZGUsaS5yZXF1ZXN0LnZhcmlhYmxlcyx0KTppLGQ9dGhpcy5leGVjdXRlKHtlbnZpcm9ubWVudDpyLG9wZXJhdGlvbjp1fSkuZmluYWxseShmdW5jdGlvbigpe24uX3BlbmRpbmdSZXF1ZXN0PW51bGx9KS5zdWJzY3JpYmUoe25leHQ6ZnVuY3Rpb24oKXtuLl9kaWRGZXRjaEZpbmlzaD0hMCxuLl9lcnJvcj1udWxsLG4uX29uUXVlcnlEYXRhQXZhaWxhYmxlKHtub3RpZnlGaXJzdFJlc3VsdDpvfSl9LGVycm9yOmZ1bmN0aW9uKGUpe24uX2RpZEZldGNoRmluaXNoPSEwLG4uX2Vycm9yPWUsbi5fc25hcHNob3Q9bnVsbDt2YXIgdD1uLl9mZXRjaE9wdGlvbnMmJm4uX2ZldGNoT3B0aW9ucy5vbkRhdGFDaGFuZ2VDYWxsYmFja3M7bz90JiZ0LmZvckVhY2goZnVuY3Rpb24odCl7dCh7ZXJyb3I6ZX0pfSk6Yz1lfX0pO2lmKHRoaXMuX3BlbmRpbmdSZXF1ZXN0PXtkaXNwb3NlOmZ1bmN0aW9uKCl7ZC51bnN1YnNjcmliZSgpfX0sbz0hMCxjKXRocm93IGM7cmV0dXJuIHRoaXMuX3NuYXBzaG90fSx0LnJldHJ5PWZ1bmN0aW9uKGUpe3JldHVybiF0aGlzLl9mZXRjaE9wdGlvbnMmJmkoITEpLHRoaXMuZmV0Y2goe2Vudmlyb25tZW50OnRoaXMuX2ZldGNoT3B0aW9ucy5lbnZpcm9ubWVudCxvcGVyYXRpb246dGhpcy5fZmV0Y2hPcHRpb25zLm9wZXJhdGlvbixvbkRhdGFDaGFuZ2U6bnVsbH0sZSl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZVJlcXVlc3QoKSx0aGlzLmRpc3Bvc2VTZWxlY3Rpb25SZWZlcmVuY2VzKCl9LHQuZGlzcG9zZVJlcXVlc3Q9ZnVuY3Rpb24oKXt0aGlzLl9lcnJvcj1udWxsLHRoaXMuX3NuYXBzaG90PW51bGwsdGhpcy5fcGVuZGluZ1JlcXVlc3QmJnRoaXMuX3BlbmRpbmdSZXF1ZXN0LmRpc3Bvc2UoKSx0aGlzLl9yb290U3Vic2NyaXB0aW9uJiYodGhpcy5fcm9vdFN1YnNjcmlwdGlvbi5kaXNwb3NlKCksdGhpcy5fcm9vdFN1YnNjcmlwdGlvbj1udWxsKX0sdC5fcmV0YWluQ2FjaGVkT3BlcmF0aW9uPWZ1bmN0aW9uKGUsdCl7dGhpcy5fZGlzcG9zZUNhY2hlU2VsZWN0aW9uUmVmZXJlbmNlKCksdGhpcy5fY2FjaGVTZWxlY3Rpb25SZWZlcmVuY2U9ZS5yZXRhaW4odCl9LHQuX2Rpc3Bvc2VDYWNoZVNlbGVjdGlvblJlZmVyZW5jZT1mdW5jdGlvbigpe3RoaXMuX2NhY2hlU2VsZWN0aW9uUmVmZXJlbmNlJiZ0aGlzLl9jYWNoZVNlbGVjdGlvblJlZmVyZW5jZS5kaXNwb3NlKCksdGhpcy5fY2FjaGVTZWxlY3Rpb25SZWZlcmVuY2U9bnVsbH0sdC5kaXNwb3NlU2VsZWN0aW9uUmVmZXJlbmNlcz1mdW5jdGlvbigpe3RoaXMuX2Rpc3Bvc2VDYWNoZVNlbGVjdGlvblJlZmVyZW5jZSgpLHRoaXMuX3NlbGVjdGlvblJlZmVyZW5jZXMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5kaXNwb3NlKCl9KSx0aGlzLl9zZWxlY3Rpb25SZWZlcmVuY2VzPVtdfSx0Ll9vblF1ZXJ5RGF0YUF2YWlsYWJsZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLG49ZS5ub3RpZnlGaXJzdFJlc3VsdDshdGhpcy5fZmV0Y2hPcHRpb25zJiZpKCExKTt2YXIgcj10aGlzLl9mZXRjaE9wdGlvbnMsYT1yLmVudmlyb25tZW50LG89ci5vbkRhdGFDaGFuZ2VDYWxsYmFja3Mscz1yLm9wZXJhdGlvbjtpZighdGhpcy5fc25hcHNob3QmJih0aGlzLl9zbmFwc2hvdD1hLmxvb2t1cChzLmZyYWdtZW50KSx0aGlzLl9yb290U3Vic2NyaXB0aW9uPWEuc3Vic2NyaWJlKHRoaXMuX3NuYXBzaG90LGZ1bmN0aW9uKGUpe2lmKHQuX2ZldGNoT3B0aW9ucyE9bnVsbCl7dmFyIG49dC5fZmV0Y2hPcHRpb25zLm9uRGF0YUNoYW5nZUNhbGxiYWNrcztBcnJheS5pc0FycmF5KG4pJiZuLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQoe3NuYXBzaG90OmV9KX0pfX0pLHRoaXMuX3NuYXBzaG90JiZuJiZBcnJheS5pc0FycmF5KG8pKSl7dmFyIGM9dGhpcy5fc25hcHNob3Q7by5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKHtzbmFwc2hvdDpjfSl9KX19LGV9KCl9KSksVmllPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihkXygpKSxpPW4ocWYoKSksYT1uKGZfKCkpLG89bihwXygpKSxzPW4ocWQoKSksYz1uKEpkKCkpLGw9W2Bjb21wb25lbnRSZWZgXSx1PVtgY29tcG9uZW50UmVmYCxgX19yZWxheUNvbnRleHRgLGBfX3Jvb3RJc1F1ZXJ5UmVuZGVyZXJgXSxkPVtgY29tcG9uZW50UmVmYCxgX19yZWxheUNvbnRleHRgLGBfX3Jvb3RJc1F1ZXJ5UmVuZGVyZXJgXSxmPWdfKCkscD12XygpLG09bV8oKSxoPW0uZ2V0Q29tcG9uZW50TmFtZSxnPW0uZ2V0Q29udGFpbmVyTmFtZSxfPW5oKCksdj15XygpLHk9X18oKS5hc3NlcnRSZWxheUNvbnRleHQsYj1hZigpLHg9RmQoKSxTPVR1KCksQz1xcCgpLHc9Qy5Db25uZWN0aW9uSW50ZXJmYWNlLFQ9Qy5PYnNlcnZhYmxlLEU9Qy5SZWxheUZlYXR1cmVGbGFncyxEPUMuY3JlYXRlRnJhZ21lbnRTcGVjUmVzb2x2ZXIsTz1DLmNyZWF0ZU9wZXJhdGlvbkRlc2NyaXB0b3Isaz1DLmdldERhdGFJRHNGcm9tT2JqZWN0LEE9Qy5nZXRSZXF1ZXN0LGo9Qy5nZXRWYXJpYWJsZXNGcm9tT2JqZWN0LE09Qy5pc1NjYWxhckFuZEVxdWFsO0xkKCk7dmFyIE49YGZvcndhcmRgO2Z1bmN0aW9uIFAoZSl7dmFyIHQ9ZS5wYXRoO3JldHVybiF0JiZ4KCExKSxmdW5jdGlvbihuKXtmb3IodmFyIHI9bltlLmZyYWdtZW50TmFtZV0saT0wO2k8dC5sZW5ndGg7aSsrKXtpZighcnx8dHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiBudWxsO3I9clt0W2ldXX1yZXR1cm4gcn19ZnVuY3Rpb24gRihlKXt2YXIgdD1lLmNvdW50O3JldHVybiF0JiZ4KCExKSxmdW5jdGlvbihlLG4pe3JldHVybigwLGMuZGVmYXVsdCkoKDAsYy5kZWZhdWx0KSh7fSxlKSx7fSwoMCxzLmRlZmF1bHQpKHt9LHQsbikpfX1mdW5jdGlvbiBlZShlKXt2YXIgdD1udWxsLG49ITE7Zm9yKHZhciByIGluIGUpe3ZhciBpPWVbcl0sYT1pLm1ldGFkYXRhJiZpLm1ldGFkYXRhLmNvbm5lY3Rpb247aS5tZXRhZGF0YSE9PXZvaWQgMCYmKG49ITApLGEmJihhLmxlbmd0aCE9PTEmJngoITEpLHQmJngoITEpLHQ9KDAsYy5kZWZhdWx0KSgoMCxjLmRlZmF1bHQpKHt9LGFbMF0pLHt9LHtmcmFnbWVudE5hbWU6cn0pKX1yZXR1cm4hKCFufHx0IT09bnVsbCkmJngoITEpLHR8fHt9fWZ1bmN0aW9uIEkoZSl7cmV0dXJuIHR5cGVvZiBlPT1gZnVuY3Rpb25gP3tlcnJvcjplLGNvbXBsZXRlOmUsdW5zdWJzY3JpYmU6ZnVuY3Rpb24odCl7dHlwZW9mIGU9PWBmdW5jdGlvbmAmJmUoKX19OmV8fHt9fWZ1bmN0aW9uIEwoZSx0LG4pe3ZhciBmO2goZSk7dmFyIG09ZyhlKSxDPWVlKHQpLEw9bi5nZXRDb25uZWN0aW9uRnJvbVByb3BzfHxQKEMpLFI9bi5kaXJlY3Rpb258fEMuZGlyZWN0aW9uOyFSJiZ4KCExKTt2YXIgej1uLmdldEZyYWdtZW50VmFyaWFibGVzfHxGKEMpO3JldHVybiBmPWZ1bmN0aW9uKGYpeygwLG8uZGVmYXVsdCkoaCxmKTtmdW5jdGlvbiBoKGUpe3ZhciBuPWYuY2FsbCh0aGlzLGUpfHx0aGlzOygwLHMuZGVmYXVsdCkoKDAsYS5kZWZhdWx0KShuKSxgX2hhbmRsZUZyYWdtZW50RGF0YVVwZGF0ZWAsZnVuY3Rpb24oKXtuLnNldFN0YXRlKHtkYXRhOm4uX3Jlc29sdmVyLnJlc29sdmUoKX0pfSksKDAscy5kZWZhdWx0KSgoMCxhLmRlZmF1bHQpKG4pLGBfaGFzTW9yZWAsZnVuY3Rpb24oKXt2YXIgZT1uLl9nZXRDb25uZWN0aW9uRGF0YSgpO3JldHVybiEhKGUmJmUuaGFzTW9yZSYmZS5jdXJzb3IpfSksKDAscy5kZWZhdWx0KSgoMCxhLmRlZmF1bHQpKG4pLGBfaXNMb2FkaW5nYCxmdW5jdGlvbigpe3JldHVybiEhbi5fcmVmZXRjaFN1YnNjcmlwdGlvbn0pLCgwLHMuZGVmYXVsdCkoKDAsYS5kZWZhdWx0KShuKSxgX3JlZmV0Y2hDb25uZWN0aW9uYCxmdW5jdGlvbihlLHQscil7aWYoIW4uX2NhbkZldGNoUGFnZShgcmVmZXRjaENvbm5lY3Rpb25gKSlyZXR1cm57ZGlzcG9zZTpmdW5jdGlvbigpe319O24uX3JlZmV0Y2hWYXJpYWJsZXM9cjt2YXIgaT17Y291bnQ6ZSxjdXJzb3I6bnVsbCx0b3RhbENvdW50OmV9O3JldHVybntkaXNwb3NlOm4uX2ZldGNoUGFnZShpLEkodCkse2ZvcmNlOiEwfSkudW5zdWJzY3JpYmV9fSksKDAscy5kZWZhdWx0KSgoMCxhLmRlZmF1bHQpKG4pLGBfbG9hZE1vcmVgLGZ1bmN0aW9uKGUsdCxyKXtpZighbi5fY2FuRmV0Y2hQYWdlKGBsb2FkTW9yZWApKXJldHVybntkaXNwb3NlOmZ1bmN0aW9uKCl7fX07dmFyIGk9SSh0KSxhPW4uX2dldENvbm5lY3Rpb25EYXRhKCk7aWYoIWEpcmV0dXJuIFQuY3JlYXRlKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbXBsZXRlKCl9KS5zdWJzY3JpYmUoaSksbnVsbDt2YXIgbz1hLmVkZ2VDb3VudCtlO2lmKHImJnIuZm9yY2UpcmV0dXJuIG4uX3JlZmV0Y2hDb25uZWN0aW9uKG8sdCk7dmFyIHM9dy5nZXQoKTtzLkVORF9DVVJTT1Iscy5TVEFSVF9DVVJTT1I7dmFyIGM9e2NvdW50OmUsY3Vyc29yOmEuY3Vyc29yLHRvdGFsQ291bnQ6b307cmV0dXJue2Rpc3Bvc2U6bi5fZmV0Y2hQYWdlKGMsaSxyKS51bnN1YnNjcmliZX19KTt2YXIgcj15KGUuX19yZWxheUNvbnRleHQpLGk9ZS5fX3Jvb3RJc1F1ZXJ5UmVuZGVyZXI/PyExO3JldHVybiBuLl9pc0FSZXF1ZXN0SW5GbGlnaHQ9ITEsbi5fcmVmZXRjaFN1YnNjcmlwdGlvbj1udWxsLG4uX3JlZmV0Y2hWYXJpYWJsZXM9bnVsbCxFLkVOQUJMRV9DT05UQUlORVJTX1NVQlNDUklCRV9PTl9DT01NSVQ9PT0hMD9uLl9yZXNvbHZlcj1EKHIsbSx0LGUsaSk6bi5fcmVzb2x2ZXI9RChyLG0sdCxlLGksbi5faGFuZGxlRnJhZ21lbnREYXRhVXBkYXRlKSxuLnN0YXRlPXtkYXRhOm4uX3Jlc29sdmVyLnJlc29sdmUoKSxwcmV2Q29udGV4dDpyLGNvbnRleHRGb3JDaGlsZHJlbjpyLHJlbGF5UHJvcDpuLl9idWlsZFJlbGF5UHJvcChyKSxyZXNvbHZlckdlbmVyYXRpb246MH0sbi5faXNVbm1vdW50ZWQ9ITEsbi5faGFzRmV0Y2hlZD0hMSxufXZhciBnPWgucHJvdG90eXBlO3JldHVybiBnLmNvbXBvbmVudERpZE1vdW50PWZ1bmN0aW9uKCl7dGhpcy5faXNVbm1vdW50ZWQ9ITEsRS5FTkFCTEVfQ09OVEFJTkVSU19TVUJTQ1JJQkVfT05fQ09NTUlUPT09ITAmJnRoaXMuX3N1YnNjcmliZVRvTmV3UmVzb2x2ZXJBbmRSZXJlbmRlcklmU3RvcmVIYXNDaGFuZ2VkKCl9LGcuY29tcG9uZW50RGlkVXBkYXRlPWZ1bmN0aW9uKGUsdCl7RS5FTkFCTEVfQ09OVEFJTkVSU19TVUJTQ1JJQkVfT05fQ09NTUlUPT09ITAmJih0LnJlc29sdmVyR2VuZXJhdGlvbj09PXRoaXMuc3RhdGUucmVzb2x2ZXJHZW5lcmF0aW9uP3RoaXMuX3JlcmVuZGVySWZTdG9yZUhhc0NoYW5nZWQoKTp0aGlzLl9zdWJzY3JpYmVUb05ld1Jlc29sdmVyQW5kUmVyZW5kZXJJZlN0b3JlSGFzQ2hhbmdlZCgpKX0sZy5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcz1mdW5jdGlvbihlKXt2YXIgbj10aGlzLHI9eShlLl9fcmVsYXlDb250ZXh0KSxpPWUuX19yb290SXNRdWVyeVJlbmRlcmVyPz8hMSxhPWsodCx0aGlzLnByb3BzKSxvPWsodCxlKSxzPXAodCx0aGlzLnByb3BzKSxjPXAodCxlKTtyLmVudmlyb25tZW50IT09dGhpcy5zdGF0ZS5wcmV2Q29udGV4dC5lbnZpcm9ubWVudHx8IWIocyxjKXx8IWIoYSxvKT8odGhpcy5fY2xlYW51cCgpLEUuRU5BQkxFX0NPTlRBSU5FUlNfU1VCU0NSSUJFX09OX0NPTU1JVD09PSEwP3RoaXMuX3Jlc29sdmVyPUQocixtLHQsZSxpKTp0aGlzLl9yZXNvbHZlcj1EKHIsbSx0LGUsaSx0aGlzLl9oYW5kbGVGcmFnbWVudERhdGFVcGRhdGUpLHRoaXMuc2V0U3RhdGUoZnVuY3Rpb24oZSl7cmV0dXJue3ByZXZDb250ZXh0OnIsY29udGV4dEZvckNoaWxkcmVuOnIscmVsYXlQcm9wOm4uX2J1aWxkUmVsYXlQcm9wKHIpLHJlc29sdmVyR2VuZXJhdGlvbjplLnJlc29sdmVyR2VuZXJhdGlvbisxfX0pKTp0aGlzLl9oYXNGZXRjaGVkfHx0aGlzLl9yZXNvbHZlci5zZXRQcm9wcyhlKTt2YXIgbD10aGlzLl9yZXNvbHZlci5yZXNvbHZlKCk7bCE9PXRoaXMuc3RhdGUuZGF0YSYmdGhpcy5zZXRTdGF0ZSh7ZGF0YTpsfSl9LGcuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt0aGlzLl9pc1VubW91bnRlZD0hMCx0aGlzLl9jbGVhbnVwKCl9LGcuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKGUsbil7aWYobi5kYXRhIT09dGhpcy5zdGF0ZS5kYXRhfHxuLnJlbGF5UHJvcCE9PXRoaXMuc3RhdGUucmVsYXlQcm9wfHxuLnJlc29sdmVyR2VuZXJhdGlvbiE9PXRoaXMuc3RhdGUucmVzb2x2ZXJHZW5lcmF0aW9uKXJldHVybiEwO2Zvcih2YXIgcj1PYmplY3Qua2V5cyhlKSxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXJbaV07aWYoYT09PWBfX3JlbGF5Q29udGV4dGApe2lmKG4ucHJldkNvbnRleHQuZW52aXJvbm1lbnQhPT10aGlzLnN0YXRlLnByZXZDb250ZXh0LmVudmlyb25tZW50KXJldHVybiEwfWVsc2UgaWYoIXQuaGFzT3duUHJvcGVydHkoYSkmJiFNKGVbYV0sdGhpcy5wcm9wc1thXSkpcmV0dXJuITB9cmV0dXJuITF9LGcuX2J1aWxkUmVsYXlQcm9wPWZ1bmN0aW9uKGUpe3JldHVybntoYXNNb3JlOnRoaXMuX2hhc01vcmUsaXNMb2FkaW5nOnRoaXMuX2lzTG9hZGluZyxsb2FkTW9yZTp0aGlzLl9sb2FkTW9yZSxyZWZldGNoQ29ubmVjdGlvbjp0aGlzLl9yZWZldGNoQ29ubmVjdGlvbixlbnZpcm9ubWVudDplLmVudmlyb25tZW50fX0sZy5fcmVyZW5kZXJJZlN0b3JlSGFzQ2hhbmdlZD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhdGUuZGF0YSx0PXRoaXMuX3Jlc29sdmVyLnJlc29sdmUoKTtlIT09dCYmdGhpcy5zZXRTdGF0ZSh7ZGF0YTp0fSl9LGcuX3N1YnNjcmliZVRvTmV3UmVzb2x2ZXJBbmRSZXJlbmRlcklmU3RvcmVIYXNDaGFuZ2VkPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zdGF0ZS5kYXRhLHQ9dGhpcy5fcmVzb2x2ZXIucmVzb2x2ZSgpO3RoaXMuX3Jlc29sdmVyLnNldENhbGxiYWNrKHRoaXMucHJvcHMsdGhpcy5faGFuZGxlRnJhZ21lbnREYXRhVXBkYXRlKSxlIT09dCYmdGhpcy5zZXRTdGF0ZSh7ZGF0YTp0fSl9LGcuX2dldENvbm5lY3Rpb25EYXRhPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wcm9wcztlLmNvbXBvbmVudFJlZjt2YXIgdD0oMCxpLmRlZmF1bHQpKGUsbCksbj1MKCgwLGMuZGVmYXVsdCkoKDAsYy5kZWZhdWx0KSh7fSx0KSx0aGlzLnN0YXRlLmRhdGEpKTtpZihuPT1udWxsKXJldHVybiBudWxsO3ZhciByPXcuZ2V0KCksYT1yLkVER0VTLG89ci5QQUdFX0lORk8scz1yLkhBU19ORVhUX1BBR0UsdT1yLkhBU19QUkVWX1BBR0UsZD1yLkVORF9DVVJTT1IsZj1yLlNUQVJUX0NVUlNPUjt0eXBlb2YgbiE9YG9iamVjdGAmJngoITEpO3ZhciBwPW5bYV0sbT1uW29dO2lmKHA9PW51bGx8fG09PW51bGwpcmV0dXJuIG51bGw7IUFycmF5LmlzQXJyYXkocCkmJngoITEpLHR5cGVvZiBtIT1gb2JqZWN0YCYmeCghMSk7dmFyIGg9Uj09PU4/bVtzXTptW3VdLGc9Uj09PU4/bVtkXTptW2ZdO3JldHVybiB0eXBlb2YgaCE9YGJvb2xlYW5gfHxwLmxlbmd0aCE9PTAmJmc9PT12b2lkIDA/bnVsbDp7Y3Vyc29yOmcsZWRnZUNvdW50OnAubGVuZ3RoLGhhc01vcmU6aH19LGcuX2dldFF1ZXJ5RmV0Y2hlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9xdWVyeUZldGNoZXJ8fCh0aGlzLl9xdWVyeUZldGNoZXI9bmV3IHYpLHRoaXMuX3F1ZXJ5RmV0Y2hlcn0sZy5fY2FuRmV0Y2hQYWdlPWZ1bmN0aW9uKGUpe3JldHVybiF0aGlzLl9pc1VubW91bnRlZH0sZy5fZmV0Y2hQYWdlPWZ1bmN0aW9uKGUscixhKXt2YXIgbz10aGlzLHM9eSh0aGlzLnByb3BzLl9fcmVsYXlDb250ZXh0KS5lbnZpcm9ubWVudCxsPXRoaXMucHJvcHM7bC5jb21wb25lbnRSZWYsbC5fX3JlbGF5Q29udGV4dCxsLl9fcm9vdElzUXVlcnlSZW5kZXJlcjt2YXIgZD0oMCxpLmRlZmF1bHQpKGwsdSksZj0oMCxjLmRlZmF1bHQpKCgwLGMuZGVmYXVsdCkoe30sZCksdGhpcy5zdGF0ZS5kYXRhKSxtLGg9cCh0LGQpO209aih0LGQpLG09KDAsYy5kZWZhdWx0KSgoMCxjLmRlZmF1bHQpKCgwLGMuZGVmYXVsdCkoe30saCksbSksdGhpcy5fcmVmZXRjaFZhcmlhYmxlcyk7dmFyIGc9bi5nZXRWYXJpYWJsZXMoZix7Y291bnQ6ZS5jb3VudCxjdXJzb3I6ZS5jdXJzb3J9LG0pOyEodHlwZW9mIGc9PWBvYmplY3RgJiZnKSYmeCghMSksZz0oMCxjLmRlZmF1bHQpKCgwLGMuZGVmYXVsdCkoe30sZyksdGhpcy5fcmVmZXRjaFZhcmlhYmxlcyksbT0oMCxjLmRlZmF1bHQpKCgwLGMuZGVmYXVsdCkoe30sZyksbSk7dmFyIF89YT97Zm9yY2U6ISFhLmZvcmNlfTp2b2lkIDA7XyE9bnVsbCYmKGE9PW51bGw/dm9pZCAwOmEubWV0YWRhdGEpIT1udWxsJiYoXy5tZXRhZGF0YT1hPT1udWxsP3ZvaWQgMDphLm1ldGFkYXRhKTt2YXIgdj1PKEEobi5xdWVyeSksZyxfKSxTPW51bGw7dGhpcy5fcmVmZXRjaFN1YnNjcmlwdGlvbiYmdGhpcy5fcmVmZXRjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2hhc0ZldGNoZWQ9ITA7dmFyIEM9ZnVuY3Rpb24odCxuKXt2YXIgcj1vLl9yZXNvbHZlci5yZXNvbHZlKCk7by5fcmVzb2x2ZXIuc2V0VmFyaWFibGVzKHoobSxlLnRvdGFsQ291bnQpLHYucmVxdWVzdC5ub2RlKTt2YXIgaT1vLl9yZXNvbHZlci5yZXNvbHZlKCk7YihyLGkpP24oKTpvLnNldFN0YXRlKHtkYXRhOmksY29udGV4dEZvckNoaWxkcmVuOntlbnZpcm9ubWVudDpvLnByb3BzLl9fcmVsYXlDb250ZXh0LmVudmlyb25tZW50fX0sbil9LHc9ZnVuY3Rpb24oKXtvLl9yZWZldGNoU3Vic2NyaXB0aW9uPT09UyYmKG8uX3JlZmV0Y2hTdWJzY3JpcHRpb249bnVsbCxvLl9pc0FSZXF1ZXN0SW5GbGlnaHQ9ITEpfTtyZXR1cm4gdGhpcy5faXNBUmVxdWVzdEluRmxpZ2h0PSEwLFM9dGhpcy5fZ2V0UXVlcnlGZXRjaGVyKCkuZXhlY3V0ZSh7ZW52aXJvbm1lbnQ6cyxvcGVyYXRpb246dixwcmVzZXJ2ZVByZXZpb3VzUmVmZXJlbmNlczohMH0pLm1lcmdlTWFwKGZ1bmN0aW9uKGUpe3JldHVybiBULmNyZWF0ZShmdW5jdGlvbih0KXtDKGUsZnVuY3Rpb24oKXt0Lm5leHQoKSx0LmNvbXBsZXRlKCl9KX0pfSkuZG8oe2Vycm9yOncsY29tcGxldGU6dyx1bnN1YnNjcmliZTp3fSkuc3Vic2NyaWJlKHJ8fHt9KSx0aGlzLl9yZWZldGNoU3Vic2NyaXB0aW9uPXRoaXMuX2lzQVJlcXVlc3RJbkZsaWdodD9TOm51bGwsU30sZy5fY2xlYW51cD1mdW5jdGlvbigpe3RoaXMuX3Jlc29sdmVyLmRpc3Bvc2UoKSx0aGlzLl9yZWZldGNoVmFyaWFibGVzPW51bGwsdGhpcy5faGFzRmV0Y2hlZD0hMSx0aGlzLl9yZWZldGNoU3Vic2NyaXB0aW9uJiYodGhpcy5fcmVmZXRjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3JlZmV0Y2hTdWJzY3JpcHRpb249bnVsbCx0aGlzLl9pc0FSZXF1ZXN0SW5GbGlnaHQ9ITEpLHRoaXMuX3F1ZXJ5RmV0Y2hlciYmdGhpcy5fcXVlcnlGZXRjaGVyLmRpc3Bvc2UoKX0sZy5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnByb3BzLG49dC5jb21wb25lbnRSZWY7dC5fX3JlbGF5Q29udGV4dCx0Ll9fcm9vdElzUXVlcnlSZW5kZXJlcjt2YXIgYT0oMCxpLmRlZmF1bHQpKHQsZCk7cmV0dXJuIFMuY3JlYXRlRWxlbWVudChfLlByb3ZpZGVyLHt2YWx1ZTp0aGlzLnN0YXRlLmNvbnRleHRGb3JDaGlsZHJlbn0sUy5jcmVhdGVFbGVtZW50KGUsKDAsci5kZWZhdWx0KSh7fSxhLHRoaXMuc3RhdGUuZGF0YSx7cmVmOm4scmVsYXk6dGhpcy5zdGF0ZS5yZWxheVByb3B9KSkpfSxofShTLkNvbXBvbmVudCksKDAscy5kZWZhdWx0KShmLGBkaXNwbGF5TmFtZWAsbSksZn1mdW5jdGlvbiBSKGUsdCxuKXtyZXR1cm4gZihlLHQsZnVuY3Rpb24oZSx0KXtyZXR1cm4gTChlLHQsbil9KX10LmV4cG9ydHM9e2NyZWF0ZUNvbnRhaW5lcjpSfX0pKSxIaWU9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEpkKCkpLGk9bihmXygpKSxhPW4ocF8oKSksbz1uKHFkKCkpLHM9bmgoKSxjPXlfKCksbD1oXygpLHU9YWYoKSxkPVR1KCksZj1xcCgpLHA9Zi5jcmVhdGVPcGVyYXRpb25EZXNjcmlwdG9yO2YuZGVlcEZyZWV6ZTt2YXIgbT1mLmdldFJlcXVlc3QsaD17fSxnPXtyb290SXNRdWVyeVJlbmRlcmVyOiEwfSxfPWZ1bmN0aW9uKGUpeygwLGEuZGVmYXVsdCkodCxlKTtmdW5jdGlvbiB0KHQpe3ZhciBuPWUuY2FsbCh0aGlzLHQpfHx0aGlzOygwLG8uZGVmYXVsdCkoKDAsaS5kZWZhdWx0KShuKSxgX2hhbmRsZURhdGFDaGFuZ2VgLGZ1bmN0aW9uKGUpe3ZhciB0PWUuZXJyb3I9PW51bGw/bnVsbDplLmVycm9yLHI9ZS5zbmFwc2hvdD09bnVsbD9udWxsOmUuc25hcHNob3Q7bi5zZXRTdGF0ZShmdW5jdGlvbihlKXt2YXIgbj1lLnJlcXVlc3RDYWNoZUtleTtyZXR1cm4gbiYmZGVsZXRlIGhbbl0scj09PWUuc25hcHNob3QmJnQ9PT1lLmVycm9yP251bGw6e3JlbmRlclByb3BzOmIodCxyLGUucXVlcnlGZXRjaGVyLGUucmV0cnlDYWxsYmFja3MpLHNuYXBzaG90OnIscmVxdWVzdENhY2hlS2V5Om51bGx9fSl9KTt2YXIgYT17aGFuZGxlRGF0YUNoYW5nZTpudWxsLGhhbmRsZVJldHJ5QWZ0ZXJFcnJvcjpudWxsfSxzLGw7aWYodC5xdWVyeSl7dmFyIHU9dC5xdWVyeTtsPXgobSh1KS5wYXJhbXMsdC52YXJpYWJsZXMpLHM9aFtsXT9oW2xdLnF1ZXJ5RmV0Y2hlcjpuZXcgY31lbHNlIHM9bmV3IGM7cmV0dXJuIG4uX21heWJlSGlkZGVuT3JGYXN0UmVmcmVzaD0hMSxuLnN0YXRlPSgwLHIuZGVmYXVsdCkoe3ByZXZQcm9wc0Vudmlyb25tZW50OnQuZW52aXJvbm1lbnQscHJldlByb3BzVmFyaWFibGVzOnQudmFyaWFibGVzLHByZXZRdWVyeTp0LnF1ZXJ5LHF1ZXJ5RmV0Y2hlcjpzLHJldHJ5Q2FsbGJhY2tzOmF9LEModCxzLGEsbCkpLG59dC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5wcmV2UXVlcnkhPT1lLnF1ZXJ5fHx0LnByZXZQcm9wc0Vudmlyb25tZW50IT09ZS5lbnZpcm9ubWVudHx8IXUodC5wcmV2UHJvcHNWYXJpYWJsZXMsZS52YXJpYWJsZXMpP1MoZSx0KTpudWxsfTt2YXIgbj10LnByb3RvdHlwZTtyZXR1cm4gbi5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYodGhpcy5fbWF5YmVIaWRkZW5PckZhc3RSZWZyZXNoPT09ITApe3RoaXMuX21heWJlSGlkZGVuT3JGYXN0UmVmcmVzaD0hMSx0aGlzLnNldFN0YXRlKGZ1bmN0aW9uKHQpe3ZhciBuPVMoZS5wcm9wcyx0KSxyPW4ucmVxdWVzdENhY2hlS2V5LGk9bi5xdWVyeUZldGNoZXI7cmV0dXJuIHIhPW51bGwmJmhbcl0hPW51bGwmJmkuc2V0T25EYXRhQ2hhbmdlKGUuX2hhbmRsZURhdGFDaGFuZ2UpLG59KTtyZXR1cm59dmFyIHQ9dGhpcy5zdGF0ZSxuPXQucmV0cnlDYWxsYmFja3Mscj10LnF1ZXJ5RmV0Y2hlcixpPXQucmVxdWVzdENhY2hlS2V5O2kmJmRlbGV0ZSBoW2ldLG4uaGFuZGxlRGF0YUNoYW5nZT10aGlzLl9oYW5kbGVEYXRhQ2hhbmdlLG4uaGFuZGxlUmV0cnlBZnRlckVycm9yPWZ1bmN0aW9uKHQpe3JldHVybiBlLnNldFN0YXRlKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVxdWVzdENhY2hlS2V5O3JldHVybiB0JiZkZWxldGUgaFt0XSx7cmVuZGVyUHJvcHM6digpLHJlcXVlc3RDYWNoZUtleTpudWxsfX0pfSx0aGlzLnByb3BzLnF1ZXJ5JiZyLnNldE9uRGF0YUNoYW5nZSh0aGlzLl9oYW5kbGVEYXRhQ2hhbmdlKX0sbi5jb21wb25lbnREaWRVcGRhdGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLnN0YXRlLHI9bi5xdWVyeUZldGNoZXIsaT1uLnJlcXVlc3RDYWNoZUtleTtpJiYoZGVsZXRlIGhbaV0sZGVsZXRlIHRoaXMuc3RhdGUucmVxdWVzdENhY2hlS2V5KSx0aGlzLnByb3BzLnF1ZXJ5JiZyIT09dC5xdWVyeUZldGNoZXImJnIuc2V0T25EYXRhQ2hhbmdlKHRoaXMuX2hhbmRsZURhdGFDaGFuZ2UpfSxuLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5xdWVyeUZldGNoZXIuZGlzcG9zZSgpLHRoaXMuX21heWJlSGlkZGVuT3JGYXN0UmVmcmVzaD0hMH0sbi5zaG91bGRDb21wb25lbnRVcGRhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5yZW5kZXIhPT10aGlzLnByb3BzLnJlbmRlcnx8dC5yZW5kZXJQcm9wcyE9PXRoaXMuc3RhdGUucmVuZGVyUHJvcHN9LG4ucmVuZGVyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zdGF0ZSx0PWUucmVuZGVyUHJvcHMsbj1lLnJlbGF5Q29udGV4dDtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KHMuUHJvdmlkZXIse3ZhbHVlOm59LGQuY3JlYXRlRWxlbWVudChsLlByb3ZpZGVyLHt2YWx1ZTpnfSx0aGlzLnByb3BzLnJlbmRlcih0KSkpfSx0fShkLkNvbXBvbmVudCk7ZnVuY3Rpb24gdigpe3JldHVybntlcnJvcjpudWxsLHByb3BzOm51bGwscmV0cnk6bnVsbH19ZnVuY3Rpb24geSgpe3JldHVybntlcnJvcjpudWxsLHByb3BzOnt9LHJldHJ5Om51bGx9fWZ1bmN0aW9uIGIoZSx0LG4scil7cmV0dXJue2Vycm9yOmV8fG51bGwscHJvcHM6dD90LmRhdGE6bnVsbCxyZXRyeTpmdW5jdGlvbih0KXt2YXIgaT1uLnJldHJ5KHQpO2kmJnR5cGVvZiByLmhhbmRsZURhdGFDaGFuZ2U9PWBmdW5jdGlvbmA/ci5oYW5kbGVEYXRhQ2hhbmdlKHtzbmFwc2hvdDppfSk6ZSYmdHlwZW9mIHIuaGFuZGxlUmV0cnlBZnRlckVycm9yPT1gZnVuY3Rpb25gJiZyLmhhbmRsZVJldHJ5QWZ0ZXJFcnJvcihlKX19fWZ1bmN0aW9uIHgoZSx0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoe2lkOmUuY2FjaGVJRD9lLmNhY2hlSUQ6ZS5pZCx2YXJpYWJsZXM6dH0pfWZ1bmN0aW9uIFMoZSx0KXt2YXIgbj1lLnF1ZXJ5LGk9dC5xdWVyeUZldGNoZXIuZ2V0U2VsZWN0aW9uUmVmZXJlbmNlcygpO3QucXVlcnlGZXRjaGVyLmRpc3Bvc2VSZXF1ZXN0KCk7dmFyIGE7aWYobil7dmFyIG89eChtKG4pLnBhcmFtcyxlLnZhcmlhYmxlcyk7YT1oW29dP2hbb10ucXVlcnlGZXRjaGVyOm5ldyBjKGkpfWVsc2UgYT1uZXcgYyhpKTtyZXR1cm4oMCxyLmRlZmF1bHQpKHtwcmV2UXVlcnk6ZS5xdWVyeSxwcmV2UHJvcHNFbnZpcm9ubWVudDplLmVudmlyb25tZW50LHByZXZQcm9wc1ZhcmlhYmxlczplLnZhcmlhYmxlcyxxdWVyeUZldGNoZXI6YX0sQyhlLGEsdC5yZXRyeUNhbGxiYWNrcykpfWZ1bmN0aW9uIEMoZSx0LG4scil7dmFyIGk9ZS5lbnZpcm9ubWVudCxhPWUucXVlcnksbz1lLnZhcmlhYmxlcyxzPWUuY2FjaGVDb25maWcsYz1pO2lmKGEpe3ZhciBsPW0oYSksdT1wKGwsbyxzKSxkPXtlbnZpcm9ubWVudDpjfTtpZih0eXBlb2Ygcj09YHN0cmluZ2AmJmhbcl0pe3ZhciBmPWhbcl0uc25hcHNob3Q7cmV0dXJuIGY/e2Vycm9yOm51bGwscmVsYXlDb250ZXh0OmQscmVuZGVyUHJvcHM6YihudWxsLGYsdCxuKSxzbmFwc2hvdDpmLHJlcXVlc3RDYWNoZUtleTpyfTp7ZXJyb3I6bnVsbCxyZWxheUNvbnRleHQ6ZCxyZW5kZXJQcm9wczp2KCksc25hcHNob3Q6bnVsbCxyZXF1ZXN0Q2FjaGVLZXk6cn19dHJ5e3ZhciBnPXQubG9va3VwSW5TdG9yZShjLHUsZS5mZXRjaFBvbGljeSksXz10LmZldGNoKHtlbnZpcm9ubWVudDpjLG9uRGF0YUNoYW5nZTpudWxsLG9wZXJhdGlvbjp1fSl8fGc7cmV0dXJuIHI9cnx8eChsLnBhcmFtcyxlLnZhcmlhYmxlcyksaFtyXT17cXVlcnlGZXRjaGVyOnQsc25hcHNob3Q6X30sXz97ZXJyb3I6bnVsbCxyZWxheUNvbnRleHQ6ZCxyZW5kZXJQcm9wczpiKG51bGwsXyx0LG4pLHNuYXBzaG90Ol8scmVxdWVzdENhY2hlS2V5OnJ9OntlcnJvcjpudWxsLHJlbGF5Q29udGV4dDpkLHJlbmRlclByb3BzOnYoKSxzbmFwc2hvdDpudWxsLHJlcXVlc3RDYWNoZUtleTpyfX1jYXRjaChlKXtyZXR1cm57ZXJyb3I6ZSxyZWxheUNvbnRleHQ6ZCxyZW5kZXJQcm9wczpiKGUsbnVsbCx0LG4pLHNuYXBzaG90Om51bGwscmVxdWVzdENhY2hlS2V5OnJ9fX1lbHNlIHJldHVybiB0LmRpc3Bvc2UoKSx7ZXJyb3I6bnVsbCxyZWxheUNvbnRleHQ6e2Vudmlyb25tZW50OmN9LHJlbmRlclByb3BzOnkoKSxyZXF1ZXN0Q2FjaGVLZXk6bnVsbH19dC5leHBvcnRzPV99KSksVWllPXMoKChlLHQpPT57dmFyIG49emQoKS5kZWZhdWx0LHI9bihkXygpKSxpPW4ocWYoKSksYT1uKEpkKCkpLG89bihmXygpKSxzPW4ocF8oKSksYz1uKHFkKCkpLGw9W2Bjb21wb25lbnRSZWZgLGBfX3JlbGF5Q29udGV4dGAsYF9fcm9vdElzUXVlcnlSZW5kZXJlcmBdLHU9Z18oKSxkPXZfKCksZj1tXygpLmdldENvbnRhaW5lck5hbWUscD1uaCgpLG09eV8oKSxoPV9fKCkuYXNzZXJ0UmVsYXlDb250ZXh0LGc9YWYoKSxfPVR1KCksdj1xcCgpLHk9di5PYnNlcnZhYmxlLGI9di5jcmVhdGVGcmFnbWVudFNwZWNSZXNvbHZlcix4PXYuY3JlYXRlT3BlcmF0aW9uRGVzY3JpcHRvcixTPXYuZ2V0RGF0YUlEc0Zyb21PYmplY3QsQz12LmdldFJlcXVlc3Qsdz12LmdldFZhcmlhYmxlc0Zyb21PYmplY3QsVD12LmlzU2NhbGFyQW5kRXF1YWw7TGQoKTtmdW5jdGlvbiBFKGUsdCxuKXt2YXIgdSx2PWYoZSk7cmV0dXJuIHU9ZnVuY3Rpb24odSl7KDAscy5kZWZhdWx0KShmLHUpO2Z1bmN0aW9uIGYoZSl7dmFyIHI9dS5jYWxsKHRoaXMsZSl8fHRoaXM7KDAsYy5kZWZhdWx0KSgoMCxvLmRlZmF1bHQpKHIpLGBfaGFuZGxlRnJhZ21lbnREYXRhVXBkYXRlYCxmdW5jdGlvbigpe3ZhciBlPXIuc3RhdGUucmVzb2x2ZXI7ci5zZXRTdGF0ZShmdW5jdGlvbih0KXtyZXR1cm4gZT09PXQucmVzb2x2ZXI/e2RhdGE6dC5yZXNvbHZlci5yZXNvbHZlKCl9Om51bGx9KX0pLCgwLGMuZGVmYXVsdCkoKDAsby5kZWZhdWx0KShyKSxgX3JlZmV0Y2hgLGZ1bmN0aW9uKGUsaSxvLHMpe2lmKHIuX2lzVW5tb3VudGVkKXJldHVybntkaXNwb3NlOmZ1bmN0aW9uKCl7fX07dmFyIGM9aChyLnByb3BzLl9fcmVsYXlDb250ZXh0KS5lbnZpcm9ubWVudCxsPWQodCxyLnByb3BzKSx1PXR5cGVvZiBlPT1gZnVuY3Rpb25gP2Uoci5fZ2V0RnJhZ21lbnRWYXJpYWJsZXMoKSk6ZTt1PSgwLGEuZGVmYXVsdCkoKDAsYS5kZWZhdWx0KSh7fSxsKSx1KTt2YXIgZj1pPygwLGEuZGVmYXVsdCkoKDAsYS5kZWZhdWx0KSh7fSx1KSxpKTp1LHA9cz97Zm9yY2U6ISFzLmZvcmNlfTp2b2lkIDA7cCE9bnVsbCYmKHM9PW51bGw/dm9pZCAwOnMubWV0YWRhdGEpIT1udWxsJiYocC5tZXRhZGF0YT1zPT1udWxsP3ZvaWQgMDpzLm1ldGFkYXRhKTt2YXIgbT10eXBlb2Ygbz09YGZ1bmN0aW9uYD97bmV4dDpvLGVycm9yOm99Om98fHt9LGc9eChDKG4pLHUscCk7ci5zdGF0ZS5sb2NhbFZhcmlhYmxlcz11LHIuX3JlZmV0Y2hTdWJzY3JpcHRpb24mJnIuX3JlZmV0Y2hTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTt2YXIgXztyZXR1cm4gci5fZ2V0UXVlcnlGZXRjaGVyKCkubG9va3VwSW5TdG9yZShjLGcscz09bnVsbD92b2lkIDA6cy5mZXRjaFBvbGljeSk9PW51bGw/KHIuX2dldFF1ZXJ5RmV0Y2hlcigpLmV4ZWN1dGUoe2Vudmlyb25tZW50OmMsb3BlcmF0aW9uOmcscHJlc2VydmVQcmV2aW91c1JlZmVyZW5jZXM6ITB9KS5tZXJnZU1hcChmdW5jdGlvbihlKXtyZXR1cm4gci5zdGF0ZS5yZXNvbHZlci5zZXRWYXJpYWJsZXMoZixnLnJlcXVlc3Qubm9kZSkseS5jcmVhdGUoZnVuY3Rpb24oZSl7cmV0dXJuIHIuc2V0U3RhdGUoZnVuY3Rpb24oZSl7cmV0dXJue2RhdGE6ZS5yZXNvbHZlci5yZXNvbHZlKCksY29udGV4dEZvckNoaWxkcmVuOntlbnZpcm9ubWVudDpyLnByb3BzLl9fcmVsYXlDb250ZXh0LmVudmlyb25tZW50fX19LGZ1bmN0aW9uKCl7ZS5uZXh0KCksZS5jb21wbGV0ZSgpfSl9KX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLl9yZWZldGNoU3Vic2NyaXB0aW9uPT09XyYmKHIuX3JlZmV0Y2hTdWJzY3JpcHRpb249bnVsbCl9KS5zdWJzY3JpYmUoKDAsYS5kZWZhdWx0KSgoMCxhLmRlZmF1bHQpKHt9LG0pLHt9LHtzdGFydDpmdW5jdGlvbihlKXtyLl9yZWZldGNoU3Vic2NyaXB0aW9uPV89ZSxtLnN0YXJ0JiZtLnN0YXJ0KGUpfX0pKSx7ZGlzcG9zZTpmdW5jdGlvbigpe18mJl8udW5zdWJzY3JpYmUoKX19KTooci5zdGF0ZS5yZXNvbHZlci5zZXRWYXJpYWJsZXMoZixnLnJlcXVlc3Qubm9kZSksci5zZXRTdGF0ZShmdW5jdGlvbihlKXtyZXR1cm57ZGF0YTplLnJlc29sdmVyLnJlc29sdmUoKSxjb250ZXh0Rm9yQ2hpbGRyZW46e2Vudmlyb25tZW50OnIucHJvcHMuX19yZWxheUNvbnRleHQuZW52aXJvbm1lbnR9fX0sZnVuY3Rpb24oKXttLm5leHQmJm0ubmV4dCgpLG0uY29tcGxldGUmJm0uY29tcGxldGUoKX0pLHtkaXNwb3NlOmZ1bmN0aW9uKCl7fX0pfSk7dmFyIGk9aChlLl9fcmVsYXlDb250ZXh0KSxzPWUuX19yb290SXNRdWVyeVJlbmRlcmVyPz8hMTtyLl9yZWZldGNoU3Vic2NyaXB0aW9uPW51bGw7dmFyIGw9YihpLHYsdCxlLHMpO3JldHVybiByLnN0YXRlPXtkYXRhOmwucmVzb2x2ZSgpLGxvY2FsVmFyaWFibGVzOm51bGwscHJldlByb3BzOmUscHJldlByb3BzQ29udGV4dDppLGNvbnRleHRGb3JDaGlsZHJlbjppLHJlbGF5UHJvcDpEKGkuZW52aXJvbm1lbnQsci5fcmVmZXRjaCkscmVzb2x2ZXI6bH0sci5faXNVbm1vdW50ZWQ9ITEscn12YXIgRT1mLnByb3RvdHlwZTtyZXR1cm4gRS5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3RoaXMuX2lzVW5tb3VudGVkPSExLHRoaXMuX3N1YnNjcmliZVRvTmV3UmVzb2x2ZXJBbmRSZXJlbmRlcklmU3RvcmVIYXNDaGFuZ2VkKCl9LEUuY29tcG9uZW50RGlkVXBkYXRlPWZ1bmN0aW9uKGUsdCl7dGhpcy5zdGF0ZS5yZXNvbHZlcj09PXQucmVzb2x2ZXI/dGhpcy5fcmVyZW5kZXJJZlN0b3JlSGFzQ2hhbmdlZCgpOih0LnJlc29sdmVyLmRpc3Bvc2UoKSx0aGlzLl9xdWVyeUZldGNoZXImJnRoaXMuX3F1ZXJ5RmV0Y2hlci5kaXNwb3NlKCksdGhpcy5fcmVmZXRjaFN1YnNjcmlwdGlvbiYmdGhpcy5fcmVmZXRjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3N1YnNjcmliZVRvTmV3UmVzb2x2ZXJBbmRSZXJlbmRlcklmU3RvcmVIYXNDaGFuZ2VkKCkpfSxmLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcz1mdW5jdGlvbihlLG4pe3ZhciByPW4ucHJldlByb3BzLGk9aChlLl9fcmVsYXlDb250ZXh0KSxhPWUuX19yb290SXNRdWVyeVJlbmRlcmVyPz8hMSxvPVModCxyKSxzPVModCxlKSxjPWQodCxyKSxsPWQodCxlKSx1PW4ucmVzb2x2ZXI7aWYobi5wcmV2UHJvcHNDb250ZXh0LmVudmlyb25tZW50IT09aS5lbnZpcm9ubWVudHx8IWcoYyxsKXx8IWcobyxzKSlyZXR1cm4gdT1iKGksdix0LGUsYSkse2RhdGE6dS5yZXNvbHZlKCksbG9jYWxWYXJpYWJsZXM6bnVsbCxwcmV2UHJvcHM6ZSxwcmV2UHJvcHNDb250ZXh0OmksY29udGV4dEZvckNoaWxkcmVuOmkscmVsYXlQcm9wOkQoaS5lbnZpcm9ubWVudCxuLnJlbGF5UHJvcC5yZWZldGNoKSxyZXNvbHZlcjp1fTtuLmxvY2FsVmFyaWFibGVzfHx1LnNldFByb3BzKGUpO3ZhciBmPXUucmVzb2x2ZSgpO3JldHVybiBmPT09bi5kYXRhP251bGw6e2RhdGE6ZixwcmV2UHJvcHM6ZX19LEUuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt0aGlzLl9pc1VubW91bnRlZD0hMCx0aGlzLnN0YXRlLnJlc29sdmVyLmRpc3Bvc2UoKSx0aGlzLl9xdWVyeUZldGNoZXImJnRoaXMuX3F1ZXJ5RmV0Y2hlci5kaXNwb3NlKCksdGhpcy5fcmVmZXRjaFN1YnNjcmlwdGlvbiYmdGhpcy5fcmVmZXRjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfSxFLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mdW5jdGlvbihlLG4pe2lmKG4uZGF0YSE9PXRoaXMuc3RhdGUuZGF0YXx8bi5yZWxheVByb3AhPT10aGlzLnN0YXRlLnJlbGF5UHJvcClyZXR1cm4hMDtmb3IodmFyIHI9T2JqZWN0LmtleXMoZSksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldO2lmKGE9PT1gX19yZWxheUNvbnRleHRgKXtpZih0aGlzLnN0YXRlLnByZXZQcm9wc0NvbnRleHQuZW52aXJvbm1lbnQhPT1uLnByZXZQcm9wc0NvbnRleHQuZW52aXJvbm1lbnQpcmV0dXJuITB9ZWxzZSBpZighdC5oYXNPd25Qcm9wZXJ0eShhKSYmIVQoZVthXSx0aGlzLnByb3BzW2FdKSlyZXR1cm4hMH1yZXR1cm4hMX0sRS5fcmVyZW5kZXJJZlN0b3JlSGFzQ2hhbmdlZD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhdGUsdD1lLmRhdGEsbj1lLnJlc29sdmVyLnJlc29sdmUoKTt0IT09biYmdGhpcy5zZXRTdGF0ZSh7ZGF0YTpufSl9LEUuX3N1YnNjcmliZVRvTmV3UmVzb2x2ZXJBbmRSZXJlbmRlcklmU3RvcmVIYXNDaGFuZ2VkPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zdGF0ZSx0PWUuZGF0YSxuPWUucmVzb2x2ZXIscj1uLnJlc29sdmUoKTtuLnNldENhbGxiYWNrKHRoaXMucHJvcHMsdGhpcy5faGFuZGxlRnJhZ21lbnREYXRhVXBkYXRlKSx0IT09ciYmdGhpcy5zZXRTdGF0ZSh7ZGF0YTpyfSl9LEUuX2dldEZyYWdtZW50VmFyaWFibGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHcodCx0aGlzLnByb3BzKX0sRS5fZ2V0UXVlcnlGZXRjaGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3F1ZXJ5RmV0Y2hlcnx8KHRoaXMuX3F1ZXJ5RmV0Y2hlcj1uZXcgbSksdGhpcy5fcXVlcnlGZXRjaGVyfSxFLnJlbmRlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMucHJvcHMsbj10LmNvbXBvbmVudFJlZjt0Ll9fcmVsYXlDb250ZXh0LHQuX19yb290SXNRdWVyeVJlbmRlcmVyO3ZhciBhPSgwLGkuZGVmYXVsdCkodCxsKSxvPXRoaXMuc3RhdGUscz1vLnJlbGF5UHJvcCxjPW8uY29udGV4dEZvckNoaWxkcmVuO3JldHVybiBfLmNyZWF0ZUVsZW1lbnQocC5Qcm92aWRlcix7dmFsdWU6Y30sXy5jcmVhdGVFbGVtZW50KGUsKDAsci5kZWZhdWx0KSh7fSxhLHRoaXMuc3RhdGUuZGF0YSx7cmVmOm4scmVsYXk6c30pKSl9LGZ9KF8uQ29tcG9uZW50KSwoMCxjLmRlZmF1bHQpKHUsYGRpc3BsYXlOYW1lYCx2KSx1fWZ1bmN0aW9uIEQoZSx0KXtyZXR1cm57ZW52aXJvbm1lbnQ6ZSxyZWZldGNoOnR9fWZ1bmN0aW9uIE8oZSx0LG4pe3JldHVybiB1KGUsdCxmdW5jdGlvbihlLHQpe3JldHVybiBFKGUsdCxuKX0pfXQuZXhwb3J0cz17Y3JlYXRlQ29udGFpbmVyOk99fSkpLFdpZT1zKCgoZSx0KT0+e3ZhciBuPXpkKCkuZGVmYXVsdCxyPW4oSmQoKSksaT1iaCgpO2Z1bmN0aW9uIGEoZSx0LG4pe3JldHVybiBpKGUsdCwoMCxyLmRlZmF1bHQpKCgwLHIuZGVmYXVsdCkoe30sbikse30se2ZldGNoUG9saWN5OmBzdG9yZS1vbmx5YH0pKX10LmV4cG9ydHM9YX0pKSxHaWU9cygoKGUsdCk9Pnt2YXIgbj16ZCgpLmRlZmF1bHQscj1uKEpkKCkpLGk9Z2goKSxhPXdoKCksbz1FaCgpLHM9cmgoKSxjPWhoKCksbD1GZCgpLHU9VHUoKSxkPXUudXNlQ2FsbGJhY2s7dS51c2VEZWJ1Z1ZhbHVlO3ZhciBmPXUudXNlRWZmZWN0LHA9dS51c2VMYXlvdXRFZmZlY3QsbT11LnVzZU1lbW8saD11LnVzZVJlZixnPXUudXNlU3RhdGUsXz1xcCgpLHY9Xy5nZXRGcmFnbWVudCx5PV8uZ2V0RnJhZ21lbnRJZGVudGlmaWVyLGI9Xy5nZXRQYWdpbmF0aW9uTWV0YWRhdGEseD1xcCgpLFM9eC5Db25uZWN0aW9uSW50ZXJmYWNlLEM9eC5nZXRTZWxlY3Rvcix3PXguZ2V0VmFsdWVBdFBhdGg7ZnVuY3Rpb24gVChlLHQsbix1LF8pe3ZhciB4LFQsRT1hcmd1bWVudHMubGVuZ3RoPjUmJmFyZ3VtZW50c1s1XSE9PXZvaWQgMD9hcmd1bWVudHNbNV06MSxEPXYoZSk7YyhELGBmaXJzdCBhcmd1bWVudCBvZiB1c2VQcmVmZXRjaGFibGVGb3J3YXJkUGFnaW5hdGlvbkZyYWdtZW50X0VYUEVSSU1FTlRBTCgpYCk7dmFyIE89YHVzZVByZWZldGNoYWJsZUZvcndhcmRQYWdpbmF0aW9uRnJhZ21lbnRfRVhQRVJJTUVOVEFMKClgLGs9YihELE8pLEE9ay5jb25uZWN0aW9uUGF0aEluRnJhZ21lbnREYXRhLGo9ay5wYWdpbmF0aW9uUmVxdWVzdCxNPWsucGFnaW5hdGlvbk1ldGFkYXRhLE49byhELHQsTyksUD1OLmZyYWdtZW50RGF0YSxGPU4uZnJhZ21lbnRSZWYsZWU9Ti5yZWZldGNoLEk9eShELEYpLEw9bShmdW5jdGlvbigpe3ZhciBlPXcoUCxBKTtyZXR1cm4gZT09bnVsbD9udWxsOmVbUy5nZXQoKS5FREdFU119LFtBLFBdKSxSPUw9PW51bGw/LTE6TC5sZW5ndGgsej1nKHU/P1IpLHRlPXpbMF0sbmU9elsxXSxyZT10ZTt0ZT09PS0xJiZSIT09LTEmJihyZT11Pz9SLG5lKHJlKSk7dmFyIGllPXMoKSxhZT1nKCExKSxvZT1hZVswXSxzZT1hZVsxXSxjZT1nKCExKSxsZT1jZVswXSx1ZT1jZVsxXSxkZT1oKDApLGZlPWQoZnVuY3Rpb24oZSl7dmFyIHQsbj0odD1pZS5nZXRTY2hlZHVsZXIoKSk9PW51bGw/dm9pZCAwOnQuc2NoZWR1bGU7bj9uKGZ1bmN0aW9uKCl7c2UoZSl9KTpzZShlKX0sW2llXSkscGU9aCghMSksbWU9YSh7Y29tcG9uZW50RGlzcGxheU5hbWU6Tyxjb25uZWN0aW9uUGF0aEluRnJhZ21lbnREYXRhOkEsZGlyZWN0aW9uOmBmb3J3YXJkYCxmcmFnbWVudERhdGE6UCxmcmFnbWVudElkZW50aWZpZXI6SSxmcmFnbWVudE5vZGU6RCxmcmFnbWVudFJlZjpGLHBhZ2luYXRpb25NZXRhZGF0YTpNLHBhZ2luYXRpb25SZXF1ZXN0Omosb2JzZXJ2ZXI6bShmdW5jdGlvbigpe3JldHVybntzdGFydDpmdW5jdGlvbigpe3BlLmN1cnJlbnQ9ITAsc2UoITApfSxjb21wbGV0ZTpmdW5jdGlvbigpe3BlLmN1cnJlbnQ9ITEsZmUoITEpfSxlcnJvcjpmdW5jdGlvbigpe3BlLmN1cnJlbnQ9ITEsZmUoITEpfX19LFtmZV0pLG9uUmVzZXQ6ZChmdW5jdGlvbigpe2lmKCFsZSl7dmFyIGUsdD0oZT1pZS5nZXRTY2hlZHVsZXIoKSk9PW51bGw/dm9pZCAwOmUuc2NoZWR1bGU7dD90KGZ1bmN0aW9uKCl7bmUoLTEpfSk6bmUoLTEpfXBlLmN1cnJlbnQ9ITEsZmUoITEpfSxbaWUsbGUsZmVdKX0pLGhlPW1lWzBdLGdlPW1lWzFdLF9lPW1lWzJdO3AoZnVuY3Rpb24oKXtkZS5jdXJyZW50PVItcmV9LFtyZSxSXSk7dmFyIHZlPV89PW51bGw/dm9pZCAwOl8uVU5TVEFCTEVfZXh0cmFWYXJpYWJsZXMseWU9Xz09bnVsbD92b2lkIDA6Xy5vbkNvbXBsZXRlLGJlPWQoZnVuY3Rpb24oZSx0KXsoIXBlLmN1cnJlbnR8fGRlLmN1cnJlbnQ+PTApJiYoZGUuY3VycmVudC09ZSxuZShmdW5jdGlvbih0KXtyZXR1cm4gdCtlfSksIXBlLmN1cnJlbnQmJmRlLmN1cnJlbnQ8MCYmaGUoTWF0aC5tYXgoRSxNYXRoLm1pbihlLG4tZGUuY3VycmVudCkpLHQ/P3tvbkNvbXBsZXRlOnllLFVOU1RBQkxFX2V4dHJhVmFyaWFibGVzOnR5cGVvZiB2ZT09YGZ1bmN0aW9uYD92ZSh7aGFzTmV4dDpnZSxkYXRhOlAsZ2V0U2VydmVyRWRnZXM6ZnVuY3Rpb24oKXt2YXIgZT1DKHhlLEwpO3JldHVybiBlPT1udWxsP1tdOihlLmtpbmQhPT1gUGx1cmFsUmVhZGVyU2VsZWN0b3JgJiZsKCExKSxlLnNlbGVjdG9ycy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGllLmxvb2t1cChlKS5kYXRhfSkpfX0pOnZlfSkpfSxbbixoZSxFLEwsUCx2ZSx5ZV0pLHhlPSh4PWUubWV0YWRhdGEpPT1udWxsfHwoVD14LnJlZmV0Y2gpPT1udWxsP3ZvaWQgMDpULmVkZ2VzRnJhZ21lbnQ7eGU/P2woITEpLGYoZnVuY3Rpb24oKXtpZighcGUuY3VycmVudCYmIW9lJiYhbGUmJmdlJiYoUi1yZTxufHxyZT5SKSl7dmFyIGU9eWU7aGUoTWF0aC5tYXgobi1NYXRoLm1heChSLXJlLDApLHJlLVIsRSkse29uQ29tcGxldGU6ZSxVTlNUQUJMRV9leHRyYVZhcmlhYmxlczp0eXBlb2YgdmU9PWBmdW5jdGlvbmA/dmUoe2hhc05leHQ6Z2UsZGF0YTpQLGdldFNlcnZlckVkZ2VzOmZ1bmN0aW9uKCl7dmFyIGU9Qyh4ZSxMKTtyZXR1cm4gZT09bnVsbD9bXTooZS5raW5kIT09YFBsdXJhbFJlYWRlclNlbGVjdG9yYCYmbCghMSksZS5zZWxlY3RvcnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBpZS5sb29rdXAoZSkuZGF0YX0pKX19KTp2ZX0pfX0sW2dlLG4sbGUsaGUscmUsdmUseWUsUixMLG9lLEUsaWUseGVdKTt2YXIgU2U9TWF0aC5taW4ocmUsUiksQ2U9aSh4ZSxtKGZ1bmN0aW9uKCl7cmV0dXJuKEw9PW51bGw/dm9pZCAwOkwuc2xpY2UoMCxTZSkpPz9bXX0sW0wsU2VdKSksd2U9ZChmdW5jdGlvbihlLHQpe3JldHVybiBfZSgpLHVlKCEwKSxlZShlLCgwLHIuZGVmYXVsdCkoKDAsci5kZWZhdWx0KSh7fSx0KSx7fSx7b25Db21wbGV0ZTpmdW5jdGlvbihlKXt2YXIgbixyLGk9KG49aWUuZ2V0U2NoZWR1bGVyKCkpPT1udWxsP3ZvaWQgMDpuLnNjaGVkdWxlO2k/aShmdW5jdGlvbigpe3VlKCExKSxuZSgtMSl9KToodWUoITEpLG5lKC0xKSksdD09bnVsbHx8KHI9dC5vbkNvbXBsZXRlKT09bnVsbHx8ci5jYWxsKHQsZSl9LF9fZW52aXJvbm1lbnQ6dm9pZCAwfSkpfSxbX2UsaWUsZWVdKTtyZXR1cm57ZWRnZXM6Q2UsZGF0YTpQLGxvYWROZXh0OmJlLGhhc05leHQ6Z2V8fFI+cmUsaXNMb2FkaW5nTmV4dDpvZSYmcmU+UixyZWZldGNoOndlfX10LmV4cG9ydHM9VH0pKSxLaWU9cygoKGUsdCk9Pnt2YXIgbj1uaCgpLHI9emllKCksaT1CaWUoKSxhPVZpZSgpLG89SGllKCkscz1VaWUoKSxjPWloKCksbD1vaCgpLHU9YWgoKS5sb2FkUXVlcnksZD10aCgpLGY9c2goKSxwPVdpZSgpLG09bGgoKSxoPWdoKCksZz1iaCgpLF89eGgoKSx2PURoKCkseT1HaWUoKSxiPU9oKCkseD1UaCgpLFM9a2goKSxDPXJoKCksdz1BaCgpLFQ9amgoKSxFPXFwKCk7dC5leHBvcnRzPXtDb25uZWN0aW9uSGFuZGxlcjpFLkNvbm5lY3Rpb25IYW5kbGVyLFF1ZXJ5UmVuZGVyZXI6byxMb2NhbFF1ZXJ5UmVuZGVyZXI6aSxNdXRhdGlvblR5cGVzOkUuTXV0YXRpb25UeXBlcyxSYW5nZU9wZXJhdGlvbnM6RS5SYW5nZU9wZXJhdGlvbnMsUmVhY3RSZWxheUNvbnRleHQ6bixhcHBseU9wdGltaXN0aWNNdXRhdGlvbjpFLmFwcGx5T3B0aW1pc3RpY011dGF0aW9uLGNvbW1pdExvY2FsVXBkYXRlOkUuY29tbWl0TG9jYWxVcGRhdGUsY29tbWl0TXV0YXRpb246RS5jb21taXRNdXRhdGlvbixjcmVhdGVGcmFnbWVudENvbnRhaW5lcjpyLmNyZWF0ZUNvbnRhaW5lcixjcmVhdGVQYWdpbmF0aW9uQ29udGFpbmVyOmEuY3JlYXRlQ29udGFpbmVyLGNyZWF0ZVJlZmV0Y2hDb250YWluZXI6cy5jcmVhdGVDb250YWluZXIsZmV0Y2hRdWVyeV9ERVBSRUNBVEVEOkUuZmV0Y2hRdWVyeV9ERVBSRUNBVEVELGdyYXBocWw6RS5ncmFwaHFsLHJlYWRJbmxpbmVEYXRhOkUucmVhZElubGluZURhdGEscmVxdWVzdFN1YnNjcmlwdGlvbjpFLnJlcXVlc3RTdWJzY3JpcHRpb24sRW50cnlQb2ludENvbnRhaW5lcjpjLFJlbGF5RW52aXJvbm1lbnRQcm92aWRlcjpmLFByb2ZpbGVyQ29udGV4dDpkLGZldGNoUXVlcnk6RS5mZXRjaFF1ZXJ5LGxvYWRRdWVyeTp1LGxvYWRFbnRyeVBvaW50OmwsdXNlQ2xpZW50UXVlcnk6cCx1c2VGcmFnbWVudDpoLHVzZUxhenlMb2FkUXVlcnk6Zyx1c2VFbnRyeVBvaW50TG9hZGVyOm0sdXNlUXVlcnlMb2FkZXI6eCx1c2VNdXRhdGlvbjpfLHVzZVBhZ2luYXRpb25GcmFnbWVudDp2LHVzZVByZWxvYWRlZFF1ZXJ5OmIsdXNlUmVmZXRjaGFibGVGcmFnbWVudDpTLHVzZVByZWZldGNoYWJsZUZvcndhcmRQYWdpbmF0aW9uRnJhZ21lbnRfRVhQRVJJTUVOVEFMOnksdXNlUmVsYXlFbnZpcm9ubWVudDpDLHVzZVN1YnNjcmliZVRvSW52YWxpZGF0aW9uU3RhdGU6dyx1c2VTdWJzY3JpcHRpb246VH19KSkscWllPXMoKChlLHQpPT57dC5leHBvcnRzPUtpZSgpfSkpO2Z1bmN0aW9uIEppZShlLHQpe3JldHVybiBRaWUoZSl8fFppZShlLHQpfHxYaWUoZSx0KXx8WWllKCl9ZnVuY3Rpb24gWWllKCl7dGhyb3cgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gWGllKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBiXyhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIG49PT1gT2JqZWN0YCYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxuPT09YE1hcGB8fG49PT1gU2V0YD9BcnJheS5mcm9tKGUpOm49PT1gQXJndW1lbnRzYHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/Yl8oZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIGJfKGUsdCl7KHQ9PW51bGx8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBaaWUoZSx0KXt2YXIgbj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDxgdWAmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtgQEBpdGVyYXRvcmBdO2lmKG4hPW51bGwpe3ZhciByLGksYSxvLHM9W10sYz0hMCxsPSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCx0PT09MCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihzLnB1c2goci52YWx1ZSkscy5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7bD0hMCxpPWV9ZmluYWxseXt0cnl7aWYoIWMmJm4ucmV0dXJuIT1udWxsJiYobz1uLnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGwpdGhyb3cgaX19cmV0dXJuIHN9fWZ1bmN0aW9uIFFpZShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfWZ1bmN0aW9uIHhfKGUsdCl7bGV0IG49ZS5nZXRRdWVyeU1ldGFkYXRhKHQpO3JldHVybiBuLmxhc3RTdGFydEVwb2NoIT09dm9pZCAwJiYobi5sYXN0Q29tcGxldGVFcG9jaD09PXZvaWQgMHx8bi5sYXN0U3RhcnRFcG9jaD5uLmxhc3RDb21wbGV0ZUVwb2NoKX1mdW5jdGlvbiAkaWUoZSl7bGV0IHQ9cl8oKSxuPWpnKGUpLHI9SmllKCgwLEcudXNlU3RhdGUpKCgpPT54Xyh0LG4pKSwyKSxpPXJbMF0sYT1yWzFdO3JldHVybigwLEcudXNlRWZmZWN0KSgoKT0+e2lmKG4pcmV0dXJuIHQub25RdWVyeU1ldGFkYXRhVXBkYXRlZCgoe3JlcXVlc3RJZGVudGlmaWVyOmV9KT0+e2U9PT1uJiZhKHhfKHQsbikpfSl9LFt0LG5dKSxpfWZ1bmN0aW9uIGVhZShlKXtyZXR1cm57X19pZDplLmZyYWdtZW50LmRhdGFJRCxfX2ZyYWdtZW50czp7W2UuZnJhZ21lbnQubm9kZS5uYW1lXTplLnJlcXVlc3QudmFyaWFibGVzfSxfX2ZyYWdtZW50T3duZXI6ZS5yZXF1ZXN0fX1mdW5jdGlvbiB0YWUoZSx0KXtsZXQgbj10eXBlb2YgZT09YHN0cmluZ2A/dC5zdGFuZGFyZFR0bHNbZV06ZTtyZXR1cm4gTWF0aC5tYXgoNTAwLG4pfWZ1bmN0aW9uIG5hZShlLHQsbil7dmFyIHI7bGV0IGk9dGFlKGUsbiksYT0odD09bnVsbD92b2lkIDA6dC5sYXN0Q29tcGxldGVFcG9jaCk/Pyh0PT1udWxsP3ZvaWQgMDp0Lmxhc3RTdGFydEVwb2NoKTtpZihhPT09dm9pZCAwKXJldHVybiEwO2xldCBvPURhdGUubm93KCkscz0odD09bnVsbD92b2lkIDA6dC5sYXN0RXJyb3IpIT09dm9pZCAwLGM9ISEoISh0PT1udWxsfHwocj10Lmxhc3RFcnJvcik9PW51bGwpJiZyLmlzUXVlcnlFcnJvckFjdGlvbmFibGUpLGw9bz5hK2ksdT1vPmErNTAwO3JldHVybiBsfHx1JiZzJiZjfWZ1bmN0aW9uIFNfKGUpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJmB0dGxgaW4gZX1mdW5jdGlvbiByYWUoZSl7cmV0dXJuIFNfKGUpfHxlPT09YG5ldHdvcmstb25seWB8fGU9PT1gc3RvcmUtYW5kLW5ldHdvcmtgfWZ1bmN0aW9uIGlhZShlLHQpe3JldHVybiBjYWUoZSl8fHNhZShlLHQpfHxvYWUoZSx0KXx8YWFlKCl9ZnVuY3Rpb24gYWFlKCl7dGhyb3cgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gb2FlKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBDXyhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIG49PT1gT2JqZWN0YCYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxuPT09YE1hcGB8fG49PT1gU2V0YD9BcnJheS5mcm9tKGUpOm49PT1gQXJndW1lbnRzYHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/Q18oZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIENfKGUsdCl7KHQ9PW51bGx8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBzYWUoZSx0KXt2YXIgbj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDxgdWAmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtgQEBpdGVyYXRvcmBdO2lmKG4hPW51bGwpe3ZhciByLGksYSxvLHM9W10sYz0hMCxsPSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCx0PT09MCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihzLnB1c2goci52YWx1ZSkscy5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7bD0hMCxpPWV9ZmluYWxseXt0cnl7aWYoIWMmJm4ucmV0dXJuIT1udWxsJiYobz1uLnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGwpdGhyb3cgaX19cmV0dXJuIHN9fWZ1bmN0aW9uIGNhZShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfWZ1bmN0aW9uIHdfKGUsdCl7RmgoZSk7bGV0IG49KDAsTWgudXNlUmVsYXlFbnZpcm9ubWVudCkoKSxyPWlhZSgoMCxHLnVzZVN0YXRlKSghMSksMiksaT1yWzBdLGE9clsxXSxvPSgwLEcudXNlUmVmKShlKTtvLmN1cnJlbnQ9ZTtsZXQgcz0oMCxHLnVzZVJlZikodCk7cy5jdXJyZW50PXQ7bGV0IGM9KDAsRy51c2VSZWYpKCExKTtyZXR1cm4oMCxHLnVzZUVmZmVjdCkoKCk9PihjLmN1cnJlbnQ9ITAsKCk9PntjLmN1cnJlbnQ9ITF9KSxbXSkse3JlZnJlc2g6KDAsRy51c2VDYWxsYmFjaykoYXN5bmMoKT0+e3RyeXthKCEwKSxhd2FpdCBMaChuLG8uY3VycmVudCxzLmN1cnJlbnQse2ZldGNoUG9saWN5OmBuZXR3b3JrLW9ubHlgfSkudG9Qcm9taXNlKCl9Y2F0Y2h7fWMuY3VycmVudCYmYSghMSl9LFtuXSksaXNSZWZyZXNoaW5nOml9fWZ1bmN0aW9uIFRfKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gRV8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/VF8oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2xhZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpUXyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbGFlKGUsdCxuKXtyZXR1cm4odD11YWUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gdWFlKGUpe3ZhciB0PWRhZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBkYWUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBEXyhlLHQsbil7dmFyIHI7RmgoZSk7bGV0IGk9KDAsWXAuZ2V0UmVxdWVzdCkoZSksYT1pPT1udWxsfHwocj1pLm9wZXJhdGlvbik9PW51bGw/dm9pZCAwOnIubmFtZSxvPUFnKGUsdCkscz1yXygpO28mJnMuZmVhdHVyZUZsYWdzLmVuYWJsZVJlZmV0Y2hpbmdSZWNlbnRseVJlbmRlcmVkUXVlcmllc0luRXJyb3JIYW5kbGluZyYmcy5tYXJrUXVlcnlSZW5kZXIobyksb18oKSxzLmZlYXR1cmVGbGFncy5lbmFibGVQZXJzaXN0ZWRDYWNoZUd1YXJkcmFpbDtsZXQgYz1LZyh7dHlwZTpgbGF6eUxvYWRlZFF1ZXJ5YCxuYW1lOmEsaWRlbnRpZmllcjpvPz9gdW5rbm93bmB9KSxsPUpnKCk7Yy5ub3RpZnlSZW5kZXIobCk7bGV0IHU9d2llKGUsdCksZD1UaWUoZSx0KSxmPXhpZSgobj09bnVsbD92b2lkIDA6bi5mZXRjaEtleSk/P3UsZCkscD1vP3MuZ2V0UXVlcnlNZXRhZGF0YShvKTp2b2lkIDAsbT1wPT1udWxsP3ZvaWQgMDpwLmxhc3RCeXBhc3NDYWNoZUtleSxoPSgwLEcudXNlTWVtbykoKCk9PntsZXQgZT0obj09bnVsbD92b2lkIDA6bi5uZXR3b3JrQ2FjaGVDb25maWcpPz97fTtyZXR1cm4gZS5tZXRhZGF0YT1FXyhFXyh7fSxlLm1ldGFkYXRhPz97fSkse30se2J5cGFzc0NhY2hlS2V5OmR9KSxlfSxbZCxuPT1udWxsP3ZvaWQgMDpuLm5ldHdvcmtDYWNoZUNvbmZpZ10pLGc9bj09bnVsbD92b2lkIDA6bi5mZXRjaFBvbGljeSxfPSgwLEcudXNlTWVtbykoKCk9Pih7dHRsOnMuZGVmYXVsdFR0bH0pLFtzLmRlZmF1bHRUdGxdKSx2PWc/P18seT1TXyh2KT9gc3RvcmUtb3ItbmV0d29ya2A6djttIT09ZCYmKHk9YG5ldHdvcmstb25seWApO3RyeXtsZXQgcj0oMCxNaC51c2VMYXp5TG9hZFF1ZXJ5KShlLHQsRV8oRV8oe30sbikse30se2ZldGNoS2V5OmYsZmV0Y2hQb2xpY3k6eSxuZXR3b3JrQ2FjaGVDb25maWc6aH0pKTtjLm5vdGlmeVJlc29sdmVkKCk7bGV0IGE9U18odik/di50dGw6dm9pZCAwLGw9d18oZSx0KS5yZWZyZXNoO3JldHVybiBSZygoMCxHLnVzZUNhbGxiYWNrKSgoKT0+e3ZhciBlO2lmKCFyYWUodikpcmV0dXJuO2xldCB0PWk9PW51bGx8fChlPWkub3BlcmF0aW9uKT09bnVsbD92b2lkIDA6ZS5uYW1lLG49bz9zLmdldFF1ZXJ5TWV0YWRhdGEobyk6dm9pZCAwLHI9cy5kZWZhdWx0VHRsLHU9YT8/cjtuYWUodSxuLHMpPyhjLm5vdGlmeUV2ZW50KGB0dGxSZWZyZXNoYCksbCgpLF9jKHttZXRyaWNOYW1lOmhtKGB0dGwucmVmcmVzaGApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6e3R5cGU6YHVzZUxhenlMb2FkUXVlcnlgLG9wZXJhdGlvbl9uYW1lOnR9fSkscy5sb2dnZXIuZGVidWcoYHVzZUxhenlMb2FkUXVlcnkudHRsLnJlZnJlc2hgLHt0dGw6dSxvcGVyYXRpb25OYW1lOnQsbWV0YWRhdGFMYXN0U3VjY2Vzc0Vwb2NoOihuPT1udWxsP3ZvaWQgMDpuLmxhc3RTdWNjZXNzRXBvY2gpPz8tMSxub3c6YCR7RGF0ZS5ub3coKX1gfSkpOihfYyh7bWV0cmljTmFtZTpobShgdHRsLnJlZnJlc2guc2tpcGApLG1ldHJpY1R5cGU6Qi5jb3VudCx2YWx1ZToxLHRhZ3M6e3R5cGU6YHVzZUxhenlMb2FkUXVlcnlgLG9wZXJhdGlvbl9uYW1lOnR9fSkscy5sb2dnZXIuZGVidWcoYHVzZUxhenlMb2FkUXVlcnkudHRsLnJlZnJlc2guc2tpcGAse3R0bDp1LG9wZXJhdGlvbk5hbWU6dCxtZXRhZGF0YUxhc3RTdWNjZXNzRXBvY2g6KG49PW51bGw/dm9pZCAwOm4ubGFzdFN1Y2Nlc3NFcG9jaCk/Py0xLG5vdzpgJHtEYXRlLm5vdygpfWB9KSl9LFtpLHMsbCxvLGMsdixhXSksW28sYSxsXSkscn1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgUHJvbWlzZT9jLm5vdGlmeVN1c3BlbmRlZCgpOmMubm90aWZ5UmVzb2x2ZWQoKSxlIGluc3RhbmNlb2YgRXJyb3Ipe2xldCB0PXMuZ2V0UXVlcnlNZXRhZGF0YShvKS5sYXN0RXJyb3I7dCYmZS5xdWVyeUVycm9yPT09dm9pZCAwJiYoZS5xdWVyeUVycm9yPXQpfXRocm93IGV9fWZ1bmN0aW9uIE9fKGUsdCxuKXtyZXR1cm4gRF8oZSx0LG4pfWZ1bmN0aW9uIGZhZShlLHQsbil7bGV0IHI9KDAsRy51c2VNZW1vKSgoKT0+KDAsWXAuZ2V0UmVxdWVzdCkoZSksW2VdKSxpPSgwLEcudXNlTWVtbykoKCk9PntsZXQgZT1yLmZyYWdtZW50O3JldHVybigwLFlwLmdldFNlbGVjdG9yKShlLGVhZSgoMCxZcC5jcmVhdGVPcGVyYXRpb25EZXNjcmlwdG9yKShyLHQpKSl9LFtyLHRdKSxhPXIuZnJhZ21lbnQubmFtZSxvPXJfKCkscz1EXyhlLHQsbik7cmV0dXJuW3MsdV8oe2RhdGE6cyxyZWFkZXJTZWxlY3RvcjppLGdyYXBocWxFbnZpcm9ubWVudDpvLG93bmluZ0ZyYWdtZW50T3JRdWVyeU5hbWU6YX0pXX1mdW5jdGlvbiBrXyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIEFfKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP2tfKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtqXyhlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTprXyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gal8oZSx0LG4pe3JldHVybih0PU1fKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIE1fKGUpe3ZhciB0PU5fKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIE5fKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gUF8oZSx0KXtyZXR1cm4gbWFlKGUpfHxwYWUoZSx0KXx8SV8oZSx0KXx8Rl8oKX1mdW5jdGlvbiBGXygpe3Rocm93IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIElfKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBMXyhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIG49PT1gT2JqZWN0YCYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxuPT09YE1hcGB8fG49PT1gU2V0YD9BcnJheS5mcm9tKGUpOm49PT1gQXJndW1lbnRzYHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/TF8oZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIExfKGUsdCl7KHQ9PW51bGx8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBwYWUoZSx0KXt2YXIgbj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDxgdWAmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtgQEBpdGVyYXRvcmBdO2lmKG4hPW51bGwpe3ZhciByLGksYSxvLHM9W10sYz0hMCxsPSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCx0PT09MCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihzLnB1c2goci52YWx1ZSkscy5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7bD0hMCxpPWV9ZmluYWxseXt0cnl7aWYoIWMmJm4ucmV0dXJuIT1udWxsJiYobz1uLnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGwpdGhyb3cgaX19cmV0dXJuIHN9fWZ1bmN0aW9uIG1hZShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfWZ1bmN0aW9uIFJfKGUpe0ZoKGUpO2xldCB0PSgwLFlwLmdldFJlcXVlc3QpKGUpLG49cl8oKSxyPVBfKCgwLE1oLnVzZU11dGF0aW9uKShlKSwyKSxpPXJbMF0sYT1yWzFdO3JldHVyblsoMCxHLnVzZUNhbGxiYWNrKShlPT57bGV0IHI9KDAsWXAuY3JlYXRlT3BlcmF0aW9uRGVzY3JpcHRvcikodCxlLnZhcmlhYmxlcyk7cmV0dXJuIGkoQV8oQV8oe30sZSkse30se29uRXJyb3I6aT0+e3ZhciBhO24ubG9nZ2VyLmVycm9yKGBvbkVycm9yIGNhbGxlZCB3aGlsZSB0cnlpbmcgbXV0YXRpb25gLHtlcnJvcjppLG9wZXJhdGlvbklkOnIucmVxdWVzdC5pZGVudGlmaWVyLG9wZXJhdGlvbk5hbWU6dC5vcGVyYXRpb24ubmFtZX0pLChhPWUub25FcnJvcik9PW51bGx8fGEuY2FsbChlLHthbHJlYWR5UmVwb3J0ZWRFcnJvcjppfSl9LG9uQ29tcGxldGVkOihpLGEpPT57YSYmbi5sb2dnZXIuZXJyb3IoYEVycm9ycyB3ZXJlIHJlY2VpdmVkIGluIHRoZSBvbkNvbXBsZXRlZCBtdXRhdGlvbiBoYW5kbGVyYCx7ZXJyb3JzOmEsb3BlcmF0aW9uSWQ6ci5yZXF1ZXN0LmlkZW50aWZpZXIsb3BlcmF0aW9uTmFtZTp0Lm9wZXJhdGlvbi5uYW1lfSk7bGV0IG89ITE7Zm9yKGxldCBlIGluIGkpaWYoaVtlXT09PW51bGwmJmEpe2ZvcihsZXQgdCBvZiBhKWlmKGBwYXRoYGluIHQpe2xldCBuPXQucGF0aDtuLmxlbmd0aD09PTEmJm5bMF09PT1lJiYobz0hMCl9fWlmKG8pe3ZhciBzOyhzPWUub25FcnJvcik9PW51bGx8fHMuY2FsbChlLHthbHJlYWR5UmVwb3J0ZWRFcnJvcjpFcnJvcihgTXV0YXRpb24gcmVzcG9uZGVkIHdpdGggYSB0b3AgbGV2ZWwgbnVsbC4gQW4gdXBzdHJlYW0gc2VydmljZSBpcyBsaWtlbHkgZmFpbGluZyBhbmQgc2hvdWxkIGJlIGludmVzdGlnYXRlZGApfSl9ZWxzZSB0cnl7dmFyIGM7KGM9ZS5vbkNvbXBsZXRlZCk9PW51bGx8fGMuY2FsbChlLHtyZXNwb25zZTppLGFscmVhZHlSZXBvcnRlZEVycm9yczphfSl9Y2F0Y2goZSl7bi5sb2dnZXIuZXJyb3IoYEVycm9yIG9jY3VycmVkIHdoaWxlIGNhbGxpbmcgb25Db21wbGV0ZWRgLHtlcnJvcjplLG9wZXJhdGlvbk5hbWU6dC5vcGVyYXRpb24ubmFtZSxvcGVyYXRpb25JZGVudGlmaWVyOnIucmVxdWVzdC5pZGVudGlmaWVyfSl9fX0pKX0sW24ubG9nZ2VyLGldKSxhXX12YXIgaGFlPXUoQ2goKSkuZGVmYXVsdDtmdW5jdGlvbiBnYWUoZSx0LG4pe2xldCByPSgwLEcudXNlUmVmKShuKTtyLmN1cnJlbnQ9bjtsZXQgaT1oYWUoZSx0KSxhPSgwLEcudXNlUmVmKShpKTtyZXR1cm4gYS5jdXJyZW50PWksKDAsRy51c2VDYWxsYmFjaykoKC4uLmUpPT57dmFyIHQ7aWYoKCh0PWVbMV0pPT1udWxsP3ZvaWQgMDp0LndhaXRGb3JQYXJlbnRPcGVyYXRpb24pIT09ITApcmV0dXJuIG4oLi4uZSk7aWYoYS5jdXJyZW50PT09ITApe2xldCB0PSExLG47cmV0dXJuKGFzeW5jKCk9Pntmb3IobGV0IGU9MDtlPDEwO2UrPTEpe2lmKGF3YWl0IE9tKDFlMyksdClyZXR1cm47aWYoYS5jdXJyZW50PT09ITEpYnJlYWt9bj1yLmN1cnJlbnQoLi4uZSkuZGlzcG9zZX0pKCkse2Rpc3Bvc2U6KCk9Pnt0PSEwLG49PW51bGx8fG4oKX19fXJldHVybiByLmN1cnJlbnQoLi4uZSl9LFtuXSl9ZnVuY3Rpb24gel8oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBCXyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj96XyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7X2FlKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOnpfKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBfYWUoZSx0LG4pe3JldHVybih0PXZhZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiB2YWUoZSl7dmFyIHQ9eWFlKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIHlhZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIGJhZShlLHQpe2xldCBuPUZoKGUpLHI9cl8oKSxpPUtnKHt0eXBlOmBwYWdpbmF0aW9uRnJhZ21lbnRgLG5hbWU6bj8/YGAsaWRlbnRpZmllcjp0PT1udWxsP3ZvaWQgMDp0Ll9faWR9KSxhPUpnKCk7aS5ub3RpZnlSZW5kZXIoYSk7dHJ5e2xldCBuPSgwLE1oLnVzZVBhZ2luYXRpb25GcmFnbWVudCkoZSx0KTtpLm5vdGlmeVJlc29sdmVkKCk7bGV0IGE9Z2FlKGUsdCxuLmxvYWROZXh0KTtyZXR1cm4gci5mZWF0dXJlRmxhZ3MuZW5hYmxlVXNlUGFnaW5hdGlvbkZyYWdtZW50U2FmZUxvYWROZXh0P0JfKEJfKHt9LG4pLHt9LHtsb2FkTmV4dDphfSk6bn1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgUHJvbWlzZT9pLm5vdGlmeVN1c3BlbmRlZCgpOmkubm90aWZ5UmVzb2x2ZWQoKSxlIGluc3RhbmNlb2YgRXJyb3Ipe2xldCBuPWpnKHQpLGk9ci5nZXRRdWVyeU1ldGFkYXRhKG4pLmxhc3RFcnJvcjtpJiZlLnF1ZXJ5RXJyb3I9PT12b2lkIDAmJihlLnF1ZXJ5RXJyb3I9aSl9dGhyb3cgZX19dmFyIHhhZT0oLi4uZSk9PmJhZSguLi5lKSxTYWU9KGUsdCk9PntGaChlKTtsZXQgbj1yXygpO3RyeXtyZXR1cm4oMCxNaC51c2VSZWZldGNoYWJsZUZyYWdtZW50KShlLHQpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHI9amcodCksaT1uLmdldFF1ZXJ5TWV0YWRhdGEocikubGFzdEVycm9yO2kmJmUucXVlcnlFcnJvcj09PXZvaWQgMCYmKGUucXVlcnlFcnJvcj1pKX10aHJvdyBlfX0sQ2FlPXFpZSgpO2Z1bmN0aW9uIHdhZShlLHQpe2xldCBuPXQ/P1lwLnJlcXVlc3RTdWJzY3JpcHRpb24scj0oMCxDYWUudXNlUmVsYXlFbnZpcm9ubWVudCkoKTtSZygoMCxHLnVzZUNhbGxiYWNrKSgoKT0+bihyLGUpLmRpc3Bvc2UsW24sZSxyXSksW3IsZSxuXSl9WXAuX19pbnRlcm5hbC5SZXNvbHZlckZyYWdtZW50cy5yZWFkRnJhZ21lbnQ7ZnVuY3Rpb24gVl8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKWVbcl09bltyXX1yZXR1cm4gZX12YXIgVGFlPXtyZWFkOmZ1bmN0aW9uKGUpe3JldHVybiBlWzBdPT09YCJgJiYoZT1lLnNsaWNlKDEsLTEpKSxlLnJlcGxhY2UoLyglW1xkQS1GXXsyfSkrL2dpLGRlY29kZVVSSUNvbXBvbmVudCl9LHdyaXRlOmZ1bmN0aW9uKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJSgyWzM0NkJGXXwzW0FDLUZdfDQwfDVbQkRFXXw2MHw3W0JDRF0pL2csZGVjb2RlVVJJQ29tcG9uZW50KX19O2Z1bmN0aW9uIEhfKGUsdCl7ZnVuY3Rpb24gbihuLHIsaSl7aWYoISh0eXBlb2YgZG9jdW1lbnQ+YHVgKSl7aT1WXyh7fSx0LGkpLHR5cGVvZiBpLmV4cGlyZXM9PWBudW1iZXJgJiYoaS5leHBpcmVzPW5ldyBEYXRlKERhdGUubm93KCkraS5leHBpcmVzKjg2NGU1KSksaS5leHBpcmVzJiYoaS5leHBpcmVzPWkuZXhwaXJlcy50b1VUQ1N0cmluZygpKSxuPWVuY29kZVVSSUNvbXBvbmVudChuKS5yZXBsYWNlKC8lKDJbMzQ2Ql18NUV8NjB8N0MpL2csZGVjb2RlVVJJQ29tcG9uZW50KS5yZXBsYWNlKC9bKCldL2csZXNjYXBlKTt2YXIgYT1gYDtmb3IodmFyIG8gaW4gaSlpW29dJiYoYSs9YDsgYCtvLGlbb10hPT0hMCYmKGErPWA9YCtpW29dLnNwbGl0KGA7YClbMF0pKTtyZXR1cm4gZG9jdW1lbnQuY29va2llPW4rYD1gK2Uud3JpdGUocixuKSthfX1mdW5jdGlvbiByKHQpe2lmKCEodHlwZW9mIGRvY3VtZW50PmB1YHx8YXJndW1lbnRzLmxlbmd0aCYmIXQpKXtmb3IodmFyIG49ZG9jdW1lbnQuY29va2llP2RvY3VtZW50LmNvb2tpZS5zcGxpdChgOyBgKTpbXSxyPXt9LGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIGE9bltpXS5zcGxpdChgPWApLG89YS5zbGljZSgxKS5qb2luKGA9YCk7dHJ5e3ZhciBzPWRlY29kZVVSSUNvbXBvbmVudChhWzBdKTtpZihyW3NdPWUucmVhZChvLHMpLHQ9PT1zKWJyZWFrfWNhdGNoe319cmV0dXJuIHQ/clt0XTpyfX1yZXR1cm4gT2JqZWN0LmNyZWF0ZSh7c2V0Om4sZ2V0OnIscmVtb3ZlOmZ1bmN0aW9uKGUsdCl7bihlLGBgLFZfKHt9LHQse2V4cGlyZXM6LTF9KSl9LHdpdGhBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUpe3JldHVybiBIXyh0aGlzLmNvbnZlcnRlcixWXyh7fSx0aGlzLmF0dHJpYnV0ZXMsZSkpfSx3aXRoQ29udmVydGVyOmZ1bmN0aW9uKGUpe3JldHVybiBIXyhWXyh7fSx0aGlzLmNvbnZlcnRlcixlKSx0aGlzLmF0dHJpYnV0ZXMpfX0se2F0dHJpYnV0ZXM6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9LGNvbnZlcnRlcjp7dmFsdWU6T2JqZWN0LmZyZWV6ZShlKX19KX12YXIgVV89SF8oVGFlLHtwYXRoOmAvYH0pO2Z1bmN0aW9uIFdfKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gR18oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/V18oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe0VhZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpXXyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gRWFlKGUsdCxuKXtyZXR1cm4odD1EYWUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gRGFlKGUpe3ZhciB0PU9hZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBPYWUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBLXyhlLHQpe3JldHVybiBNYWUoZSl8fGphZShlLHQpfHxBYWUoZSx0KXx8a2FlKCl9ZnVuY3Rpb24ga2FlKCl7dGhyb3cgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gQWFlKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBxXyhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIG49PT1gT2JqZWN0YCYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxuPT09YE1hcGB8fG49PT1gU2V0YD9BcnJheS5mcm9tKGUpOm49PT1gQXJndW1lbnRzYHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/cV8oZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIHFfKGUsdCl7KHQ9PW51bGx8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBqYWUoZSx0KXt2YXIgbj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDxgdWAmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtgQEBpdGVyYXRvcmBdO2lmKG4hPW51bGwpe3ZhciByLGksYSxvLHM9W10sYz0hMCxsPSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCx0PT09MCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihzLnB1c2goci52YWx1ZSkscy5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7bD0hMCxpPWV9ZmluYWxseXt0cnl7aWYoIWMmJm4ucmV0dXJuIT1udWxsJiYobz1uLnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGwpdGhyb3cgaX19cmV0dXJuIHN9fWZ1bmN0aW9uIE1hZShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfXZhciBKXz1gY2JfY29uc2VudF9wcmVmZXJlbmNlc2AsWV89e25lY2Vzc2FyeTpgQzAwMDFgLHBlcmZvcm1hbmNlOmBDMDAwMmAsZnVuY3Rpb25hbDpgQzAwMDNgLHRhcmdldGluZzpgQzAwMDRgfSxYXz1gb25ldHJ1c3Rsb2FkZWRgLFpfPWBjb25zZW50Y2hhbmdlZGAsUV8sTmFlPW5ldyBQcm9taXNlKGU9PntRXz1lfSk7ZnVuY3Rpb24gJF8oZSl7aWYodHlwZW9mIHdpbmRvdz5gdWApcmV0dXJuKCk9Pnt9O2lmKHdpbmRvdy5PbmV0cnVzdEFjdGl2ZUdyb3VwcylyZXR1cm4gZSgpLCgpPT57fTtsZXQgdD0hMTtyZXR1cm4gTmFlLnRoZW4oKCk9Pnt0fHxlKCl9KSwoKT0+e3Q9ITB9fWlmKHR5cGVvZiB3aW5kb3c8YHVgKXtsZXQgZT1zZXRJbnRlcnZhbCgoKT0+e3dpbmRvdy5PbmV0cnVzdEFjdGl2ZUdyb3VwcyYmKGNsZWFySW50ZXJ2YWwoZSksUV89PW51bGx8fFFfKCkpfSwxMDApfXZhciBldj1gI29uZXRydXN0LWJhbm5lci1zZGtgLHR2PWAjb25ldHJ1c3QtcGMtc2RrYCxQYWU9YGJ1dHRvbiwgW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKWA7ZnVuY3Rpb24gRmFlKGUpe3JldHVybiBBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbChQYWUpKS5maWx0ZXIoZT0+IWUuaGFzQXR0cmlidXRlKGBkaXNhYmxlZGApJiZlLm9mZnNldFBhcmVudCE9PW51bGwpfWZ1bmN0aW9uIElhZShlLHQpe2xldCBuPUZhZShlKTtpZihuLmxlbmd0aD09PTApcmV0dXJuKCk9Pnt9O2xldCByPW5bMF0saT1uW24ubGVuZ3RoLTFdO3I9PW51bGx8fHIuZm9jdXMoKTtsZXQgYT1lPT57ZS5rZXk9PT1gVGFiYCYmKGUuc2hpZnRLZXk/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXImJihlLnByZXZlbnREZWZhdWx0KCksaT09bnVsbHx8aS5mb2N1cygpKTpkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aSYmKGUucHJldmVudERlZmF1bHQoKSxyPT1udWxsfHxyLmZvY3VzKCkpKX07cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcihga2V5ZG93bmAsYSksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoYGtleWRvd25gLGEpLHQ9PW51bGx8fHQuZm9jdXMoKX19ZnVuY3Rpb24gTGFlKGUpe2xldCB0PSgwLEcudXNlUmVmKShudWxsKSxuPSgwLEcudXNlUmVmKShudWxsKTsoMCxHLnVzZUVmZmVjdCkoKCk9Pnt2YXIgcixpO2lmKCFlfHx0eXBlb2Ygd2luZG93PmB1YClyZXR1cm47bGV0IGE9ZT0+e3ZhciByOyhyPW4uY3VycmVudCk9PW51bGx8fHIuY2FsbChuKSx0LmN1cnJlbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxuLmN1cnJlbnQ9SWFlKGUsdC5jdXJyZW50KX0sbz0oKT0+e3ZhciBlLHI7KGU9bi5jdXJyZW50KT09bnVsbHx8ZS5jYWxsKG4pLG4uY3VycmVudD1udWxsLChyPXQuY3VycmVudCk9PW51bGx8fHIuZm9jdXMoKSx0LmN1cnJlbnQ9bnVsbH0scz0oKT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZXYpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0diksbj1lJiZnZXRDb21wdXRlZFN0eWxlKGUpLmRpc3BsYXkhPT1gbm9uZWA7dCYmZ2V0Q29tcHV0ZWRTdHlsZSh0KS5kaXNwbGF5IT09YG5vbmVgJiZ0LmdldEF0dHJpYnV0ZShgYXJpYS1oaWRkZW5gKSE9PWB0cnVlYCYmdD9hKHQpOm4mJmU/YShlKTpvKCl9LGM9KCk9PnskXygoKT0+e3MoKX0pfSxsPW5ldyBNdXRhdGlvbk9ic2VydmVyKHMpO3R5cGVvZigocj13aW5kb3cuT25lVHJ1c3QpPT1udWxsP3ZvaWQgMDpyLklzQWxlcnRCb3hDbG9zZWQpPT1gZnVuY3Rpb25gJiZjKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoWF8sYyksKGk9d2luZG93Lk9uZVRydXN0KSE9bnVsbCYmaS5PbkNvbnNlbnRDaGFuZ2VkJiZ3aW5kb3cuT25lVHJ1c3QuT25Db25zZW50Q2hhbmdlZChzKTtsZXQgdT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGV2KSxkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodHYpO3JldHVybiB1JiZsLm9ic2VydmUodSx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6W2BzdHlsZWBdfSksZCYmbC5vYnNlcnZlKGQse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOltgc3R5bGVgLGBhcmlhLWhpZGRlbmBdfSksKCk9Pnt2YXIgZTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihYXyxjKSxsLmRpc2Nvbm5lY3QoKSwoZT1uLmN1cnJlbnQpPT1udWxsfHxlLmNhbGwobil9fSxbZV0pfWZ1bmN0aW9uIG52KCl7bGV0IGU9S18oKDAsRy51c2VTdGF0ZSkoITEpLDIpLHQ9ZVswXSxuPWVbMV07cmV0dXJuKDAsRy51c2VFZmZlY3QpKCgpPT57bighMCl9LFtdKSx0fWZ1bmN0aW9uIFJhZShlLHQpe2xldCBuPW52KCkscj1LXygoMCxHLnVzZVN0YXRlKShudWxsKSwyKSxpPXJbMF0sYT1yWzFdOygwLEcudXNlRWZmZWN0KSgoKT0+e3ZhciByOyFufHwhdHx8IWV8fGU9PT1pfHwocj13aW5kb3cuT25lVHJ1c3QpIT1udWxsJiZyLmNoYW5nZUxhbmd1YWdlJiYod2luZG93Lk9uZVRydXN0LmNoYW5nZUxhbmd1YWdlKGUpLGEoZSkpfSxbbixlLGksdF0pfXZhciBydj1udWxsO2Z1bmN0aW9uIHphZShlKXtydj1lPz9udWxsfWZ1bmN0aW9uIGl2KCl7cmV0dXJuIHJ2fWZ1bmN0aW9uIGF2KGUsdCxuKXtsZXQgcj1uZXcgU2V0LGk9W107Zm9yKGxldCBlIG9mIHQpaWYoZS5yZWdleCl0cnl7aS5wdXNoKHtpZDplLmlkLHJlZ2V4OmUucmVnZXgsY29tcGlsZWRSZWdleDpuZXcgUmVnRXhwKGUucmVnZXgpfSl9Y2F0Y2h7fWVsc2Ugci5hZGQoZS5pZCk7cmV0dXJue2lkOmUscmVxdWlyZWQ6bixleGFjdE1hdGNoZXM6cixyZWdleE1hdGNoZXM6aX19dmFyIEJhZT17Y2F0ZWdvcmllczpuZXcgTWFwKFtbYG5lY2Vzc2FyeWAsYXYoYG5lY2Vzc2FyeWAsW3tpZDpgYmFzZV9kZXZpY2VfaWRgfSx7aWQ6YGNmX2NsZWFyYW5jZWB9LHtpZDpgY2JfZG1gfSx7aWQ6YF9jZnV2aWRgfSx7aWQ6YF9fY2ZfYm1gfSx7aWQ6YGNiX2NvbnNlbnRfcHJlZmVyZW5jZXNgfSx7aWQ6YGhhc0wxV2FybmluZ1NlZW5gfSx7aWQ6YGhhc19hY2NvdW50c19hbmRfd2FsbGV0X2dyb3Vwc2B9LHtpZDpgYmFzZV9hY2NvdW50X2tpbGxzd2l0Y2hfb3ZlcnJpZGVzYH0se2lkOmBiYV9zZXNzaW9uYH0se2lkOmBiYV9yZWZyZXNoYH0se2lkOmB3YWdtaS5zdG9yZWB9XSwhMCldLFtgcGVyZm9ybWFuY2VgLGF2KGBwZXJmb3JtYW5jZWAsW3tpZDpgX2dhX3h4eHh4eHh4eHhgfSx7aWQ6YF9nYWB9LHtpZDpgZGV2aWNlLWlkYH1dKV0sW2BmdW5jdGlvbmFsYCxhdihgZnVuY3Rpb25hbGAsW3tpZDpgc3BlY3RydW1gfSx7aWQ6YHdhZ21pLnJlY2VudENvbm5lY3RvcklkYH1dKV1dKSxnZW9sb2NhdGlvblJ1bGVzOlt7cmVnaW9uOmBERUZBVUxUYCxmcmFtZXdvcms6YG9wdE91dGB9LHtyZWdpb246YEVVYCxmcmFtZXdvcms6YG9wdEluYH1dfSxWYWU9e2NhdGVnb3JpZXM6bmV3IE1hcChbW2BuZWNlc3NhcnlgLGF2KGBuZWNlc3NhcnlgLFt7aWQ6YGlwX2NvdW50cnlgfSx7aWQ6YGxvY2FsZWB9LHtpZDpgd2FnbWkuc3RvcmVgfSx7aWQ6YHdhZ21pLnJlY2VudENvbm5lY3RvcklkYH0se2lkOmBjYl9jb25zZW50X3ByZWZlcmVuY2VzYH0se2lkOmBfX2NmX2JtYH1dLCEwKV0sW2BwZXJmb3JtYW5jZWAsYXYoYHBlcmZvcm1hbmNlYCxbe2lkOmBfZGRfc2B9LHtpZDpgYmFzZV9kZXZpY2VfaWRgfV0pXV0pLGdlb2xvY2F0aW9uUnVsZXM6W3tyZWdpb246YERFRkFVTFRgLGZyYW1ld29yazpgb3B0T3V0YH0se3JlZ2lvbjpgRVVgLGZyYW1ld29yazpgb3B0SW5gfV19LEhhZT17Y2F0ZWdvcmllczpuZXcgTWFwKFtbYG5lY2Vzc2FyeWAsYXYoYG5lY2Vzc2FyeWAsW3tpZDpgaXBfY291bnRyeWB9LHtpZDpgbG9jYWxlYH0se2lkOmBjYl9jb25zZW50X3ByZWZlcmVuY2VzYH0se2lkOmBfX2NmX2JtYH0se2lkOmBiYXNlX2FjY291bnRfa2lsbHN3aXRjaF9vdmVycmlkZXNgfV0sITApXSxbYHBlcmZvcm1hbmNlYCxhdihgcGVyZm9ybWFuY2VgLFt7aWQ6YF9kZF9zYH0se2lkOmBiYXNlX2RldmljZV9pZGB9XSldXSksZ2VvbG9jYXRpb25SdWxlczpbe3JlZ2lvbjpgREVGQVVMVGAsZnJhbWV3b3JrOmBvcHRPdXRgfSx7cmVnaW9uOmBFVWAsZnJhbWV3b3JrOmBvcHRJbmB9XX0sVWFlPXtjYXRlZ29yaWVzOm5ldyBNYXAoW1tgbmVjZXNzYXJ5YCxhdihgbmVjZXNzYXJ5YCxbe2lkOmBjYWNoZWRfbG9jYWxlYH0se2lkOmBfX2NmZHVpZGB9LHtpZDpgY2JfZG1gfSx7aWQ6YHVuaWZpZWQtb2F1dGgtc3RhdGUtY29va2llYH0se2lkOmBsb2dpbi1zZXNzaW9uYH0se2lkOmBkZjNgfSx7aWQ6YGNiX3JjaWRgfSx7aWQ6YG5vX3JlZGlyZWN0X2NvbW1lcmNlYH0se2lkOmBub19yZWRpcmVjdF9leGNoYW5nZWB9LHtpZDpgbm9fcmVkaXJlY3RfaW5zdG9gfSx7aWQ6YG5vX3JlZGlyZWN0X2ludHhgfSx7aWQ6YG5vX3JlZGlyZWN0X3ByaW1lYH0se2lkOmBjZl9jaGxfcmNfbWB9LHtpZDpgX3hfZmxvd19zZXNzaW9uYH0se2lkOmBfaW1tb3J0YWx8ZGV2aWNlVG9rZW5gfSx7aWQ6YF9HUkVDQVBUQ0hBYH0se2lkOmBfX2NmcnVpZGB9LHtpZDpgb2F1dGgtc3RhdGUtY29va2llYH0se2lkOmBpcF9jb3VudHJ5YH0se2lkOmBfY2Z1dmlkYH0se2lkOmBjZHMtZmZzYH0se2lkOmBjY19kYXNoYm9hcmRfc2Vzc2lvbmB9LHtpZDpgY2NfbG9jYWxlX2ZsYWdgfSx7aWQ6YGNiX2xvZ2dlZF9vdXRfbG9jYWxlYH0se2lkOmBjb2luYmFzZV9sb2NhbGVgfSx7aWQ6YGxvZ2dlZF9pbmB9LHtpZDpgY2ItZ3NzY19kZXZlbG9wbWVudGB9LHtpZDpgY2ItZ3NzY19zdGFnaW5nYH0se2lkOmBjYi1nc3NjYH0se2lkOmBfY29pbmJhc2Vfc2Vzc2lvbmB9LHtpZDpgYWR2ZXJ0aXNpbmdfc2hhcmluZ19hbGxvd2VkYH0se2lkOmBfX3NzaWRgfSx7aWQ6YGNmX29iX2luZm9gfSx7aWQ6YGRmMmB9LHtpZDpgZGZgfSx7aWQ6YGJhYH0se2lkOmBjZl91c2Vfb2JgfSx7aWQ6YF9jb2luYmFzZV9sYXhgfSx7aWQ6YF9jb2luYmFzZV9zdHJpY3RgfSx7aWQ6YGp3dGB9LHtpZDpgdW5pZmllZC1zZXNzaW9uLW1hbmFnZXItY29va2llYH0se2lkOmBzZnRgfSx7aWQ6YGphcGFuX2Jlc3Bva2VfY29udGVudGB9LHtpZDpgX19jZl9ibWB9LHtpZDpgQ0ItQ0xJRU5UYH0se2lkOmBjYl90ZXN0X2Nvb2tpZWB9LHtpZDpgaXNfbW9iaWxlX2FwcGB9LHtpZDpgT3B0YW5vbkNvbnNlbnRgfSx7aWQ6YE9wdGFub25BbGVydEJveENsb3NlZGB9LHtpZDpgY2JfY29uc2VudF9wcmVmZXJlbmNlc2B9LHtpZDpgY2JfY29uc2VudF9zaWduYXR1cmVgfSx7aWQ6YGNvaW5iYXNlX2RldmljZV9pZGB9LHtpZDpgbG9naW4tc3RhdGVgfSx7aWQ6YHNlc3Npb24tbWFuYWdlci1jb29raWVgfSx7aWQ6YF9fc3RyaXBlX21pZGB9LHtpZDpgX19zdHJpcGVfc2lkYH0se2lkOmBjb29raWVzLWJhbm5lcmB9LHtpZDpgaGFzTDFXYXJuaW5nU2VlbmB9LHtpZDpgaGFzX2FjY291bnRzX2FuZF93YWxsZXRfZ3JvdXBzYH1dLCEwKV0sW2BwZXJmb3JtYW5jZWAsYXYoYHBlcmZvcm1hbmNlYCxbe2lkOmBfZ2F0YH0se2lkOmBfZ2F0X2d0YWdfYH0se2lkOmBfZ2F0X2d0YWdfVUFfLXJlZ2V4YCxyZWdleDpgX2dhdF9ndGFnX1VBX1swLTldK19bMC05XStgfSx7aWQ6YF9nYXRfVUEtcmVnZXhgLHJlZ2V4OmBfZ2F0X1VBLShbMC05XXs4fSktKFswLTldezJ9KWB9LHtpZDpgY2ItcmZtYH0se2lkOmBhanNfYW5vbnltb3VzX2lkYH0se2lkOmBfX3RsZF9fYH0se2lkOmBhanMlM0Fjb29raWVzYH0se2lkOmBhanMlM0F0ZXN0YH0se2lkOmBhanNfZ3JvdXBfaWRgfSx7aWQ6YGFtcGxpdHVkZV9kZXZpY2VfaWRgfSx7aWQ6YF9nYWNfVUEtcmVnZXhgLHJlZ2V4OmBfZ2FjX1VBLVswLTldKy1bMC05XStgfSx7aWQ6YEpTRVNTSU9OSURgfSx7aWQ6YGNmX2NobF9yY19pYH0se2lkOmBkdGNvb2tpZWB9LHtpZDpgcGVyZl9kdjVgfSx7aWQ6YHJsX2Fub255bW91c19pZGB9LHtpZDpgcmxfdXNlcl9pZGB9LHtpZDpgcmxfZ3JvdXBfaWRgfSx7aWQ6YEFNQ1ZfcmVnZXhgLHJlZ2V4OmBBTUNWXyg/OlswLTlBLVpdKylAQWRvYmVPcmdgfSx7aWQ6YExQVklEYH0se2lkOmBfX3Byb2ZpbGluYH0se2lkOmBhbXBfcmVnZXhgLHJlZ2V4OmBhbXBfWzAtOWEtel17Nn1gfSx7aWQ6YExQU0lELXJlZ2V4YCxyZWdleDpgTFBTSUQtWzAtOV0rYH0se2lkOmBfaHAyX2lkLnJlZ2V4YCxyZWdleDpgX2hwMl9pZC5bMC05XStgfSx7aWQ6YF9fdXRtYWB9LHtpZDpgeC1sb2dpbi1pZGB9LHtpZDpgeC11dWlkYH0se2lkOmBfZGRfc2B9LHtpZDpgX2RkYH0se2lkOmBfZGRfcmB9LHtpZDpgYWZVc2VySWRgfSx7aWQ6YEFGX1NZTkNgfSx7aWQ6YEFGX0RFRkFVTFRfTUVBU1VSRU1FTlRfU1RBVFVTYH0se2lkOmBkZXZpY2UtaWRgfV0pXSxbYGZ1bmN0aW9uYWxgLGF2KGBmdW5jdGlvbmFsYCxbe2lkOmBjb2luYmFzZV9jdXJyZW5jeWB9LHtpZDpgX3BhcnNlbHlfdmlzaXRvcmB9LHtpZDpgYWR2YW5jZWRfY29sb3JfdGhlbWVgfSx7aWQ6YGNiX3NwZWN0cnVtYH0se2lkOmBjYl9oaWdoX2NvbnRyYXN0YH0se2lkOmBoaWRlX2FkdmFuY2VkX21vZGVfbnV4YH0se2lkOmBmdXR1cmVzX2hpZGVfZmlyc3RfdHJhZGVfb25ib2FyZGluZ19zcG90bGlnaHRgfSx7aWQ6YGZ1dHVyZXNfaGlkZV9hZnRlcl9maXJzdF90cmFkZV9zcG90bGlnaHRgfSx7aWQ6YGhhc19zZWVuX3BlcnBldHVhbF9tYXJnaW5faGVhbHRoX2Jhbm5lcl9yZWdleGAscmVnZXg6YGhhc19zZWVuX3BlcnBldHVhbF9tYXJnaW5faGVhbHRoX2Jhbm5lcl8oLiopYH0se2lkOmBoYXNfc2Vlbl9hZHZhbmNlZF9tb2RlX3Rvb2x0aXBgfSx7aWQ6YGhpZGVfdXNkY19iYW5uZXJgfSx7aWQ6YGhhc19zZWVuX29yZGVyX2Zvcm1fbnV4X3Rvb2x0aXBgfSx7aWQ6YGhhc19zZWVuX2FkdmFuY2VkX2ZlZXNfcHJpY2luZ19iYW5uZXJgfSx7aWQ6YGhhc19zZWVuX3plcm9fZmVlX2luY2VudGl2ZV9iYW5uZXJgfSx7aWQ6YGhhc19zdWJtaXR0ZWRfcHJpbWVfcmVzb3VyY2VzX2ludGVyZXN0X2Zvcm1gfSx7aWQ6YGhhc19zdWJtaXR0ZWRfbGVhZGdlbl9mb3JtYH0se2lkOmBwcmljZV9jaGFydF9yZXNvbHV0aW9uYH0se2lkOmBvcHRpbWl6ZWx5RW5kVXNlcklkYH0se2lkOmBoaWRlX2NvdW50cnlfYmFubmVyYH0se2lkOmBoaWRlX2Nvb2tpZXNfbWVzc2FnZWB9LHtpZDpgaGlkZV9hbmRyb2lkX2Jhbm5lcmB9LHtpZDpgcGxhaWRfb2F1dGhfZGF0YWB9LHtpZDpgYnl0ZXNfc2lnbnVwX21vZGFsX3ZpZXdlZGB9LHtpZDpgcmxtX2Fzc2V0X3BhZ2Vfdmlld19jb3VudGB9LHtpZDpgcmxtX2hvbWVfcGFnZV92aWV3X2NvdW50YH0se2lkOmBybG1fY29udmVydGVyX3BhZ2Vfdmlld19jb3VudGB9LHtpZDpgcmxtX2Rpc21pc3NlZF9hc3NldGB9LHtpZDpgcmxtX2Rpc21pc3NlZF9ob21lYH0se2lkOmBybG1fZGlzbWlzc2VkX2NvbnZlcnRlcmB9LHtpZDpgc2lnbnVwX21vZGFsX2Rpc21pc3NlZF9ob21lYH0se2lkOmBzaWdudXBfbW9kYWxfZGlzbWlzc2VkX2xlYXJuYH0se2lkOmBoYXNfc2Vlbl9mZWVfdXBncmFkZV9iYW5uZXJgfSx7aWQ6YHBheXBhbF9yZWF1dGhfZGF0YWB9LHtpZDpgY2Itc3V0YH0se2lkOmBoaWRlX2hjX2NvdW50cnlfYmFubmVyYH0se2lkOmBzcGVjdHJ1bWB9LHtpZDpgdGhlbWVDb2xvcmB9XSldLFtgdGFyZ2V0aW5nYCxhdihgdGFyZ2V0aW5nYCxbe2lkOmB1c2VyX2FnZW50YH0se2lkOmBfZ2FgfSx7aWQ6YF9nYV9yZWdleGAscmVnZXg6YF9nYV9bYS16QS1aMC05XXsxMH1gfSx7aWQ6YF9naWRgfSx7aWQ6YHV0bWB9LHtpZDpgdXRtX3Jhd2B9LHtpZDpgbGlfZmF0X2lkYH0se2lkOmByZHRfY2lkYH0se2lkOmBjYmFmZmNsaWRgfSx7aWQ6YGdjbGlkYH0se2lkOmBnX3N0YXRlYH0se2lkOmBfdWV0dmlkYH0se2lkOmBfdWV0c2lkYH0se2lkOmBNVUlEYH0se2lkOmBmYmNsaWRgfSx7aWQ6YF9nY2xfYXVgfSx7aWQ6YF9mYmNgfSx7aWQ6YF9mYnBgfSx7aWQ6YHdkYH0se2lkOmBkcHJgfSx7aWQ6YGFjdGB9LHtpZDpgY191c2VyYH0se2lkOmBwcmVzZW5jZWB9LHtpZDpgc2JgfSx7aWQ6YHhzYH0se2lkOmBzcGluYH0se2lkOmBkYXRyYH0se2lkOmBZU0NgfSx7aWQ6YFZJU0lUT1JfSU5GTzFfTElWRWB9LHtpZDpgYW1wbGl0dWRlX2lkLXJlZ2V4YCxyZWdleDpgYW1wbGl0dWRlX2lkKD86X1thLWYwLTldezMyfXx1bmRlZmluZWQpKD86LiopYH0se2lkOmBBVE5gfSx7aWQ6YE5JRGB9LHtpZDpgR1BTYH0se2lkOmBBQTAwM2B9LHtpZDpgbXBfcmVnZXhgLHJlZ2V4OmBtcF9bYS1mMC05XXszMn1fbWl4cGFuZWxgfSx7aWQ6YGdjbGB9LHtpZDpgbXNjbGtpZGB9LHtpZDpgcHRjbGlkYH0se2lkOmB0dGNsaWRgfSx7aWQ6YF9nY2xfYXdgfSx7aWQ6YGl0ZXJhYmxlVGVtcGxhdGVJZGB9LHtpZDpgaXRlcmFibGVNZXNzYWdlSWRgfSx7aWQ6YGl0ZXJhYmxlRW5kVXNlcklkYH0se2lkOmBpdGVyYWJsZUVtYWlsQ2FtcGFpZ25JZGB9LHtpZDpgX2dhY19nYl9yZWdleGAscmVnZXg6YF9nYWNfZ2JfWzAtOUEtWi1dK2B9XSldLFtgZGVsZXRlLWlmLXNlZW5gLGF2KGBkZWxldGUtaWYtc2VlbmAsW3tpZDpgY2xvdWRmbGFyZS1jaGFsbGVuZ2UtcmVnZXhgLHJlZ2V4OmBeKGNmX2NobF9wcm9nJCl8KGNmX2NjXy4uLiQpfChjZl9jaGxfY2NfLi4uJCl8KGNmX2NobF9zZXFfLi4uJClgfV0pXV0pLGdlb2xvY2F0aW9uUnVsZXM6W3tyZWdpb246YERFRkFVTFRgLGZyYW1ld29yazpgb3B0T3V0YH0se3JlZ2lvbjpgRVVgLGZyYW1ld29yazpgb3B0SW5gfV19LFdhZT17Y2F0ZWdvcmllczpuZXcgTWFwKFtbYG5lY2Vzc2FyeWAsYXYoYG5lY2Vzc2FyeWAsW3tpZDpgX19jZmR1aWRgfSx7aWQ6YF9jZl9ibWB9LHtpZDpgY2YtY291bnRyeWB9LHtpZDpgX2NvaW5iYXNlX3Nlc3Npb25gfSx7aWQ6YF9fc3NpZGB9LHtpZDpgZGYyYH0se2lkOmBkZmB9LHtpZDpgYmFgfSx7aWQ6YF9jb2luYmFzZV9sYXhgfSx7aWQ6YF9jb2luYmFzZV9zdHJpY3RgfSx7aWQ6YHNmdGB9XSwhMCldLFtgcGVyZm9ybWFuY2VgLGF2KGBwZXJmb3JtYW5jZWAsW3tpZDpgZW5hYmxlX3BlcmZvcm1hbmNlX2FuYWx5dGljc2B9LHtpZDpgY2ItcmZtYH0se2lkOmBhanNfYW5vbnltb3VzX2lkYH0se2lkOmBhanMlM0Fjb29raWVzYH0se2lkOmBhanMlM0F0ZXN0YH0se2lkOmBhanNfZ3JvdXBfaWRgfSx7aWQ6YGFtcGxpdHVkZV9kZXZpY2VfaWRgfSx7aWQ6YGNvaW5iYXNlX2RldmljZV9pZGB9LHtpZDpgX2dhdGB9LHtpZDpgX2dhY19VQS0zMjgwNDE4MS0yM2B9LHtpZDpgX2dpZGB9LHtpZDpgX2dhYH0se2lkOmBKU0VTU0lPTklEYH0se2lkOmBfZ2FfcmVnZXhgLHJlZ2V4OmBfZ2FfW2EtekEtWjAtOV17MTB9YH1dKV0sW2BmdW5jdGlvbmFsYCxhdihgZnVuY3Rpb25hbGAsW3tpZDpgX3BhcnNlbHlfdmlzaXRvcmB9LHtpZDpgX3BhcnNlbHlfc2Vzc2lvbmB9LHtpZDpgb3B0aW1pemVseUVuZFVzZXJJZGB9LHtpZDpgaGlkZV9hbmRyb2lkX2Jhbm5lcmB9XSldLFtgdGFyZ2V0aW5nYCxhdihgdGFyZ2V0aW5nYCxbe2lkOmBlbmFibGVfdGFyZ2V0aW5nX2FuYWx5dGljc2B9LHtpZDpgX2djbF9hdWB9LHtpZDpgdXRtYH0se2lkOmBmcmB9LHtpZDpgVklTSVRPUl9JTkZPMV9MSVZFYH0se2lkOmBhbXBsaXR1ZGVfaWQtcmVnZXhgLHJlZ2V4OmBhbXBsaXR1ZGVfaWQoPzpfW2EtZjAtOV17MzJ9fHVuZGVmaW5lZCkoPzouKilgfSx7aWQ6YEFUTmB9LHtpZDpgTklEYH0se2lkOmBJREVgfSx7aWQ6YEdQU2B9LHtpZDpgQUEwMDNgfSx7aWQ6YF9nYXRfVUEtcmVnZXhgLHJlZ2V4OmBfZ2F0X1VBLShbMC05XXs4fSktKFswLTldezJ9KWB9LHtpZDpgX2dhdF9ndGFnX1VBXy1yZWdleGAscmVnZXg6YF9nYXRfZ3RhZ19VQV9bMC05XStfWzAtOV0rYH0se2lkOmBtcF9yZWdleGAscmVnZXg6YG1wX1thLWYwLTldezMyfV9taXhwYW5lbGB9LHtpZDpgZ2NsYH0se2lkOmBwbGFpZF9saW5rX3BlcnNpc3RlbnRfaWRgfSx7aWQ6YF9mYnBgfV0pXSxbYGRlbGV0ZS1pZi1zZWVuYCxhdihgZGVsZXRlLWlmLXNlZW5gLFt7aWQ6YGNsb3VkZmxhcmUtY2hhbGxlbmdlLXJlZ2V4YCxyZWdleDpgXihjZl9jaGxfcHJvZyQpfChjZl9jY18uLi4kKXwoY2ZfY2hsX2NjXy4uLiQpfChjZl9jaGxfc2VxXy4uLiQpYH1dKV1dKSxnZW9sb2NhdGlvblJ1bGVzOlt7cmVnaW9uOmBERUZBVUxUYCxmcmFtZXdvcms6YG9wdE91dGB9LHtyZWdpb246YEVVYCxmcmFtZXdvcms6YG9wdEluYH1dfSxHYWU9e2NhdGVnb3JpZXM6bmV3IE1hcChbW2BuZWNlc3NhcnlgLGF2KGBuZWNlc3NhcnlgLFt7aWQ6YGRmM2B9LHtpZDpgZGZfcHJvYH0se2lkOmBpZGVudGl0eV9kZXZpY2VfaWRgfSx7aWQ6YGNvaW5iYXNlX2RldmljZV9pZGB9LHtpZDpgY29va2llcy1iYW5uZXJgfSx7aWQ6YGNvaW5iYXNlX2xvY2FsZWB9LHtpZDpgY2FjaGVkX2xvY2FsZWB9LHtpZDpgdXRtYH0se2lkOmB1dG1fcmF3YH0se2lkOmBfZGRfc2B9LHtpZDpgY2JfcmNpZGB9XSwhMCldXSksZ2VvbG9jYXRpb25SdWxlczpbe3JlZ2lvbjpgREVGQVVMVGAsZnJhbWV3b3JrOmBvcHRPdXRgfSx7cmVnaW9uOmBFVWAsZnJhbWV3b3JrOmBvcHRJbmB9XX0sS2FlPW5ldyBNYXAoW1tgYmFzZWRldmAsVmFlXSxbYGNvaW5iYXNlYCxVYWVdLFtgZXhjaGFuZ2VgLFdhZV0sW2BpZGVudGl0eWAsR2FlXSxbYGJhc2VhcHBgLEJhZV0sW2BiYXNlb3JnYCxIYWVdXSksb3Y9bmV3IE1hcCxzdj1uZXcgTWFwO2Z1bmN0aW9uIHFhZShlLHQpe2xldCBuPW5ldyBNYXAscj1bXTtmb3IobGV0IGUgb2YgdC5jYXRlZ29yaWVzKXtsZXQgdD1LXyhlLDIpWzFdO2ZvcihsZXQgZSBvZiB0LmV4YWN0TWF0Y2hlcyluLnNldChlLHQuaWQpO2ZvcihsZXQgZSBvZiB0LnJlZ2V4TWF0Y2hlcylyLnB1c2goe3JlZ2V4OmUuY29tcGlsZWRSZWdleCxjYXRlZ29yeTp0LmlkLG9yaWdpbmFsUGF0dGVybjplLnJlZ2V4LHRyYWNrZXJJZDplLmlkfSl9b3Yuc2V0KGUsbiksc3Yuc2V0KGUscil9ZnVuY3Rpb24gY3YoZSx0PWBjb2luYmFzZWApe2xldCBuPW92LmdldCh0KTtpZihuKXtsZXQgdD1uLmdldChlKTtpZih0KXJldHVybiB0fWxldCByPXN2LmdldCh0KTtpZihyKXtmb3IobGV0IHQgb2YgcilpZih0LnJlZ2V4LnRlc3QoZSkpcmV0dXJuIHQuY2F0ZWdvcnl9dGhyb3cgRXJyb3IoYENvb2tpZSAnJHtlfScgaXMgbm90IGNvbmZpZ3VyZWQgaW4gdGhlIGNvb2tpZSBtYW5hZ2VyIGNvbmZpZyBmb3IgcHJvZHVjdCAnJHt0fSdgKX1mdW5jdGlvbiBKYWUoKXtmb3IobGV0IHQgb2YgS2FlKXt2YXIgZT1LXyh0LDIpO2xldCBuPWVbMF0scj1lWzFdO3FhZShuLHIpfX1KYWUoKTtmdW5jdGlvbiBZYWUoKXtyZXR1cm4gdHlwZW9mIGRvY3VtZW50PmB1YD97fTpVXy5nZXQoKXx8e319dmFyIFhhZT1gQkUuQkcuQ1ouREsuREUuRUUuSUUuR1IuRVMuRlIuSFIuSVQuQ1kuTFYuTFQuTFUuSFUuTVQuTkwuQVQuUEwuUFQuUk8uU0kuU0suRkkuU0UuR0JgLnNwbGl0KGAuYCksWmFlPVtgSVNgLGBMSWAsYE5PYCxgQ0hgXSxRYWU9bmV3IFNldChbLi4uWGFlLC4uLlphZV0pO2Z1bmN0aW9uICRhZShlKXtyZXR1cm4gUWFlLmhhcyhlLnRvVXBwZXJDYXNlKCkpfWZ1bmN0aW9uIGx2KGUsdCxuKXtpZih0eXBlb2Ygd2luZG93PmB1YClyZXR1cm4hMTtsZXQgcjt0cnl7cj1jdihlLG4pfWNhdGNoe3JldHVybiExfWlmKHI9PT1gZGVsZXRlLWlmLXNlZW5gKXJldHVybiExO2lmKHI9PT1gbmVjZXNzYXJ5YClyZXR1cm4hMDtsZXQgaT1VXy5nZXQoSl8pO2lmKCFpKXJldHVybiEodCYmJGFlKHQpKTt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGkpKVtyXT8/ITF9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIHV2KCl7aWYodHlwZW9mIHdpbmRvdzxgdWApe3ZhciBlO3JldHVybihlPXdpbmRvdy5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmUuaG9zdG5hbWV9fWZ1bmN0aW9uIGR2KCl7bGV0IGU9dXYoKTtpZighZSlyZXR1cm47aWYoZT09PWBsb2NhbGhvc3RgfHwvXlxkK1wuXGQrXC5cZCtcLlxkKyQvLnRlc3QoZSkpcmV0dXJuIGU7bGV0IHQ9ZS5zcGxpdChgLmApO3JldHVybiB0Lmxlbmd0aDw9MT9lOnQubGVuZ3RoPD0yP2AuJHtlfWA6YC4ke3Quc2xpY2UoLTIpLmpvaW4oYC5gKX1gfWZ1bmN0aW9uIGZ2KGUpe3R5cGVvZiBkb2N1bWVudD5gdWB8fGUuZm9yRWFjaChlPT57VV8ucmVtb3ZlKGUpLFVfLmdldChlKSYmKFVfLnJlbW92ZShlLHtkb21haW46ZHYoKSxwYXRoOmAvYH0pLFVfLnJlbW92ZShlLHtkb21haW46dXYoKSxwYXRoOmAvYH0pKX0pfWZ1bmN0aW9uIGVvZShlLHQpe2xldCBuPSgwLEcudXNlUmVmKShgYCkscj0oMCxHLnVzZVJlZikodCk7ci5jdXJyZW50PXQsKDAsRy51c2VFZmZlY3QpKCgpPT57aWYodHlwZW9mIGRvY3VtZW50PmB1YHx8dHlwZW9mIHdpbmRvdz5gdWApcmV0dXJuKCk9Pnt9O2xldCB0PSgpPT57bGV0IHQ9WWFlKCksbj1bXTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKHQ9PntpZighKHQ9PT1gT3B0YW5vbkNvbnNlbnRgfHx0PT09YE9wdGFub25BbGVydEJveENsb3NlZGB8fHQ9PT1gY2JfY29uc2VudF9wcmVmZXJlbmNlc2ApKXt0cnl7bGV0IHI9Y3YodCxlKTtpZihyPT09YG5lY2Vzc2FyeWApcmV0dXJuO2lmKHI9PT1gZGVsZXRlLWlmLXNlZW5gKXtuLnB1c2godCk7cmV0dXJufX1jYXRjaHt9bHYodCxpdigpLGUpfHxuLnB1c2godCl9fSksbi5sZW5ndGg+MCYmKGZ2KG4pLHIuY3VycmVudCYmci5jdXJyZW50KGB1Y3BtX2Nvb2tpZXNfcmVtb3ZlZGAse2FjdGlvbjpILnByb2Nlc3MsY29tcG9uZW50VHlwZTpWLmJhbm5lcixwcm9kdWN0OmUsY291bnQ6bi5sZW5ndGgsY29va2llTmFtZXM6bi5qb2luKGAsYCl9KSl9O24uY3VycmVudD1kb2N1bWVudC5jb29raWUsdCgpO2xldCBpPXNldEludGVydmFsKCgpPT57bGV0IGU9ZG9jdW1lbnQuY29va2llO2UhPT1uLmN1cnJlbnQmJihuLmN1cnJlbnQ9ZSx0KCkpfSw1MDApO3JldHVybigpPT5jbGVhckludGVydmFsKGkpfSxbZV0pfXZhciBwdj1gMDE5NTYxOTEtNzkxYi03NjlhLTgzMTMtMzY4M2Y1ZTIyZTBkLXRlc3RgLG12PXB2LGh2PWAwMTlhNGE1ZC02NDcxLTc3ZmItYmMyNS05ZDg0Y2IzYjU5MWUtdGVzdGAsZ3Y9YDAxOWIwYzY5LTI0ZTUtN2U3MS1iNWY3LTgyNDBiNDkxZjY4Yy10ZXN0YCxfdj1gMDE5NWY2NmMtMjhhMi03OTQ1LTg0ZDAtYWUyMDQ3MjAxODVkLXRlc3RgLHRvZT17Y29pbmJhc2U6e3Byb2R1Y3Rpb246YDAxOTU2MTkxLTc5MWItNzY5YS04MzEzLTM2ODNmNWUyMmUwZGAsc3RhZ2luZzpwdixkZXZlbG9wbWVudDpwdixtb2NrOnB2fSxiYXNlZGV2Ontwcm9kdWN0aW9uOmAwMTlhNGE1ZC02NDcxLTc3ZmItYmMyNS05ZDg0Y2IzYjU5MWVgLHN0YWdpbmc6aHYsZGV2ZWxvcG1lbnQ6aHYsbW9jazpodn0sZXhjaGFuZ2U6e3Byb2R1Y3Rpb246YDAxOTU2MTkxLTc5MWItNzY5YS04MzEzLTM2ODNmNWUyMmUwZGAsc3RhZ2luZzptdixkZXZlbG9wbWVudDptdixtb2NrOm12fSxpZGVudGl0eTp7cHJvZHVjdGlvbjpwdixzdGFnaW5nOnB2LGRldmVsb3BtZW50OnB2LG1vY2s6cHZ9LGJhc2VhcHA6e3Byb2R1Y3Rpb246YDAxOWIwYzY5LTI0ZTUtN2U3MS1iNWY3LTgyNDBiNDkxZjY4Y2Asc3RhZ2luZzpndixkZXZlbG9wbWVudDpndixtb2NrOmd2fSxiYXNlb3JnOntwcm9kdWN0aW9uOmAwMTk1ZjY2Yy0yOGEyLTc5NDUtODRkMC1hZTIwNDcyMDE4NWRgLHN0YWdpbmc6X3YsZGV2ZWxvcG1lbnQ6X3YsbW9jazpfdn19O2Z1bmN0aW9uIHZ2KGUsdCl7bGV0IG49T2JqZWN0LmtleXMoZSkscj1PYmplY3Qua2V5cyh0KTtyZXR1cm4gbi5sZW5ndGg9PT1yLmxlbmd0aD9uLmV2ZXJ5KG49PmVbbl09PT10W25dKTohMX12YXIgbm9lPXtkZXZlbG9wbWVudDpgaHR0cHM6Ly9jb25zZW50LWRldi5jYmhxLm5ldGAsc3RhZ2luZzpgaHR0cHM6Ly9jb25zZW50LXN0YWdpbmcuY2JocS5uZXRgLHByb2R1Y3Rpb246YGh0dHBzOi8vYXBpLmNvaW5iYXNlLmNvbWAsbW9jazpgaHR0cHM6Ly9jb25zZW50LWRldi5jYmhxLm5ldGB9O2Z1bmN0aW9uIHl2KGUpe3JldHVybiBub2VbZV19ZnVuY3Rpb24gYnYoKXt2YXIgZSx0O2lmKHR5cGVvZiB3aW5kb3c+YHVgfHwhKChlPXdpbmRvdykhPW51bGwmJmUuT25ldHJ1c3RBY3RpdmVHcm91cHMpKXJldHVybntzdHJpY3RseU5lY2Vzc2FyeTohMCxwZXJmb3JtYW5jZTohMSxmdW5jdGlvbmFsOiExLHRhcmdldGluZzohMX07bGV0IG49KHR5cGVvZiB3aW5kb3c8YHVgPyh0PXdpbmRvdy5PbmV0cnVzdEFjdGl2ZUdyb3Vwcyk9PW51bGw/dm9pZCAwOnQuc3BsaXQoYCxgKTpudWxsKT8/W107cmV0dXJue3N0cmljdGx5TmVjZXNzYXJ5Om4uaW5jbHVkZXMoWV8ubmVjZXNzYXJ5KSxwZXJmb3JtYW5jZTpuLmluY2x1ZGVzKFlfLnBlcmZvcm1hbmNlKSxmdW5jdGlvbmFsOm4uaW5jbHVkZXMoWV8uZnVuY3Rpb25hbCksdGFyZ2V0aW5nOm4uaW5jbHVkZXMoWV8udGFyZ2V0aW5nKX19ZnVuY3Rpb24geHYoKXtsZXQgZT1VXy5nZXQoSl8pO3JldHVybiBlP0pTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGUpKTp7fX1mdW5jdGlvbiByb2Uoe2RvbWFpblNjcmlwdElkOmUsaW5pdGlhbFBhcmFtczp0LGF1dG9CbG9jazpuPSEwLG9uRXJyb3I6cixsb2dFdmVudDppLHByb2R1Y3Q6YSxlbmFibGVHdGFnQ29uc2VudERlZmF1bHQ6bz0hMSxpc0luRXVyb3BlOnN9KXtsZXQgYz0oMCxHLnVzZVJlZikocik7Yy5jdXJyZW50PXI7bGV0IGw9KDAsRy51c2VSZWYpKGkpO3JldHVybiBsLmN1cnJlbnQ9aSwoMCxHLnVzZUVmZmVjdCkoKCk9PntpZih0eXBlb2YgZG9jdW1lbnQ+YHVgKXJldHVybjtsZXQgcj1bXSxpPWU9PntsZXQgdD1FcnJvcihgU2NyaXB0TG9hZGVyOiBGYWlsZWQgdG8gbG9hZCBzY3JpcHQ6ICR7ZX1gKTtjb25zb2xlLmVycm9yKHQubWVzc2FnZSksYy5jdXJyZW50JiZjLmN1cnJlbnQodCksbC5jdXJyZW50JiZsLmN1cnJlbnQoYHVjcG1fc2NyaXB0X2xvYWRfZmFpbHVyZWAse2FjdGlvbjpILnVua25vd24sY29tcG9uZW50VHlwZTpWLmJhbm5lcixwcm9kdWN0OmEsc2NyaXB0TmFtZTplfSl9O3RyeXtsZXQgYT1kb2N1bWVudC5oZWFkPz9kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShgaGVhZGApWzBdO2lmKCFhKXRocm93IEVycm9yKGBTY3JpcHRMb2FkZXI6IDxoZWFkPiBlbGVtZW50IG5vdCBmb3VuZGApO2xldCBjPWBodHRwczovL2Nkbi5jb29raWVsYXcub3JnL2NvbnNlbnRgO2lmKG8pe2xldCBlPXM/YGRlbmllZGA6YGdyYW50ZWRgLHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgc2NyaXB0YCk7dC50eXBlPWB0ZXh0L2phdmFzY3JpcHRgLHQuYXN5bmM9ITEsdC50ZXh0PWAKICAgICAgICAgIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOwogICAgICAgICAgZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fQogICAgICAgICAgZ3RhZygnY29uc2VudCcsJ2RlZmF1bHQnLHthZF9zdG9yYWdlOicke2V9JyxhZF91c2VyX2RhdGE6JyR7ZX0nLGFkX3BlcnNvbmFsaXphdGlvbjonJHtlfScsYW5hbHl0aWNzX3N0b3JhZ2U6JyR7ZX0nLHdhaXRfZm9yX3VwZGF0ZTo1MDB9KTsKICAgICAgICBgLGEuYXBwZW5kQ2hpbGQodCksci5wdXNoKHQpfWxldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYHNjcmlwdGApO2lmKGwudHlwZT1gdGV4dC9qYXZhc2NyaXB0YCxsLmFzeW5jPSExLGwudGV4dD1gCiAgICAgICAgd2luZG93Lk9uZVRydXN0ID0gd2luZG93Lk9uZVRydXN0IHx8IHt9OwogICAgICAgIHdpbmRvdy5PbmVUcnVzdC5kYXRhU3ViamVjdFBhcmFtcyA9ICR7dCE9bnVsbCYmdC5pZD9KU09OLnN0cmluZ2lmeShHXyh7aWQ6dC5pZCxpc0Fub255bW91czohMX0sdC50b2tlbj97dG9rZW46dC50b2tlbn06e30pKTpgeyJpc0Fub255bW91cyI6IHRydWV9YH07CiAgICAgIGAsYS5hcHBlbmRDaGlsZChsKSxyLnB1c2gobCksbil7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgc2NyaXB0YCk7dC50eXBlPWB0ZXh0L2phdmFzY3JpcHRgLHQuYXN5bmM9ITEsdC5zcmM9YCR7Y30vJHtlfS9PdEF1dG9CbG9jay5qc2AsdC5vbmVycm9yPSgpPT5pKGBPdEF1dG9CbG9jay5qc2ApLGEuYXBwZW5kQ2hpbGQodCksci5wdXNoKHQpfWxldCB1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYHNjcmlwdGApO3UudHlwZT1gdGV4dC9qYXZhc2NyaXB0YCx1LmFzeW5jPSExLHUuc3JjPWAke2N9LyR7ZX0vb3RTREtTdHViLmpzYCx1LnNldEF0dHJpYnV0ZShgZGF0YS1kb21haW4tc2NyaXB0YCxlKSx1Lm9uZXJyb3I9KCk9PmkoYG90U0RLU3R1Yi5qc2ApLGEuYXBwZW5kQ2hpbGQodSksci5wdXNoKHUpO2xldCBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYHNjcmlwdGApO2QudHlwZT1gdGV4dC9qYXZhc2NyaXB0YCxkLmFzeW5jPSExLGQudGV4dD1gZnVuY3Rpb24gT3B0YW5vbldyYXBwZXIoKSB7IHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnJHtYX30nKSk7IH1gLGEuYXBwZW5kQ2hpbGQoZCksci5wdXNoKGQpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoYFNjcmlwdExvYWRlcjogdW5leHBlY3RlZCBlcnJvciB3aGlsZSBpbmplY3Rpbmcgc2NyaXB0c2AsZSksYy5jdXJyZW50JiZjLmN1cnJlbnQoZSksci5mb3JFYWNoKGU9PntlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0pfXJldHVybigpPT57ci5mb3JFYWNoKGU9PntlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0pfX0sW2UsdD09bnVsbD92b2lkIDA6dC5pZCx0PT1udWxsP3ZvaWQgMDp0LnRva2VuLG4sYSxvLHNdKSxudWxsfWZ1bmN0aW9uIFN2KGUpe2xldCB0PW5ldyBEYXRlKERhdGUubm93KCkrMzY1KjI0KjYwKjYwKjFlMykudG9VVENTdHJpbmcoKSxuPWVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShlKSkscj1kdigpO2RvY3VtZW50LmNvb2tpZT1gY2JfY29uc2VudF9wcmVmZXJlbmNlcz0ke259OyBwYXRoPS87IGV4cGlyZXM9JHt0fTsgU2FtZVNpdGU9TGF4OyBkb21haW49JHtyfWB9ZnVuY3Rpb24gaW9lKHtwcm9kdWN0OmU9YGNvaW5iYXNlYCxvbkxvYWQ6dCx1c2VyOm4sZW52aXJvbm1lbnQ6cj1gcHJvZHVjdGlvbmAsZGV2aWNlSWQ6aSxjb3VudHJ5Q29kZTphLGlzSW5FdXJvcGU6byxsb2NhbGU6cyxsb2dFdmVudDpjLG9uUHJlZmVyZW5jZXNDaGFuZ2VkOmwsYXV0b0Jsb2NrOnU9ITAsb25FcnJvcjpkLGVuYWJsZUd0YWdDb25zZW50RGVmYXVsdDpmPSExfSl7emFlKGEpO2xldCBwPW52KCksbT1LXygoMCxHLnVzZVN0YXRlKSghMSksMiksaD1tWzBdLGc9bVsxXSxfPUtfKCgwLEcudXNlU3RhdGUpKCExKSwyKSx2PV9bMF0seT1fWzFdLGI9S18oKDAsRy51c2VTdGF0ZSkobnVsbCksMikseD1iWzBdLFM9YlsxXSxDPUtfKCgwLEcudXNlU3RhdGUpKCExKSwyKSx3PUNbMF0sVD1DWzFdLEU9dG9lW2VdW3JdLEQ9KDAsRy51c2VNZW1vKSgoKT0+biE9bnVsbCYmbi51dWlkJiZ4P3tpZDpuLnV1aWQsdG9rZW46eH06dm9pZCAwLFtuPT1udWxsP3ZvaWQgMDpuLnV1aWQseF0pOygwLEcudXNlRWZmZWN0KSgoKT0+e2lmKCFufHwhcClyZXR1cm47bGV0IHQ7cmV0dXJuKGFzeW5jKCk9Pnt0cnl7bGV0IGU9YXdhaXQgZmV0Y2goYCR7eXYocil9L2FwaS92MS9jb25zZW50L3Rva2VuYCx7bWV0aG9kOmBQT1NUYCxib2R5OkpTT04uc3RyaW5naWZ5KHt1c2VyX2lkOm4udXVpZH0pLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOmBhcHBsaWNhdGlvbi9qc29uYH19KTtpZighZS5vayl0aHJvdyBFcnJvcihgSldUIGZldGNoIGZhaWxlZCB3aXRoIHN0YXR1cyAke2Uuc3RhdHVzfWApO2xldCBpPShhd2FpdCBlLmpzb24oKSkuand0O1MoaSksVCghMSksdD1zZXRJbnRlcnZhbCgoKT0+e3ZhciBlOyhlPXdpbmRvdy5PbmVUcnVzdCkhPW51bGwmJmUuc3luY0NvbnNlbnRQcm9maWxlJiYod2luZG93Lk9uZVRydXN0LnN5bmNDb25zZW50UHJvZmlsZShuLnV1aWQsaSwhMSksY2xlYXJJbnRlcnZhbCh0KSl9LDIwMCl9Y2F0Y2godCl7UyhudWxsKSxUKCEwKSxkJiZkKHQpLGMmJmMoYHVjcG1fand0X2ZldGNoX2ZhaWx1cmVgLHthY3Rpb246SC51bmtub3duLGNvbXBvbmVudFR5cGU6Vi5iYW5uZXIscHJvZHVjdDplLGVycm9yOnQubWVzc2FnZX0pfX0pKCksKCk9PmNsZWFySW50ZXJ2YWwodCl9LFtyLHAsbixkLGMsZV0pO2xldCBPPSgwLEcudXNlQ2FsbGJhY2spKGFzeW5jIHQ9PntpZighbilyZXR1cm47bGV0IGw9dD8/eHYoKTt0cnl7bGV0IHQ9YXdhaXQgZmV0Y2goYCR7eXYocil9L2FwaS92MS9jb25zZW50L2xvZ2Ase21ldGhvZDpgUE9TVGAsYm9keTpKU09OLnN0cmluZ2lmeSh7Y29uc2VudDp7dXNlcklkOm4udXVpZCxwcmVmZXJlbmNlczpsLGRldmljZUlkOmksbG9jYWxlOnMsdGltZXN0YW1wOkRhdGUubm93KCkscHJvZHVjdDplLHVzZXJBY3Rpdml0eTpvP2BvcHQtaW5gOmBvcHQtb3V0YCxkaXNjbG9zdXJlVmVyc2lvbjpgMS4wYCxkaXNjbG9zdXJlTGFuZ3VhZ2U6cyxyZWdpb246YSxjb3VudHJ5Q29kZTphfX0pfSk7aWYoIXQub2spdGhyb3cgRXJyb3IoYENvbnNlbnQgbG9nIGZhaWxlZCB3aXRoIHN0YXR1cyAke3Quc3RhdHVzfWApO2MmJmMoYHVjcG1fY29uc2VudF9sb2dgLHthY3Rpb246SC5zdWJtaXQsY29tcG9uZW50VHlwZTpWLmJhbm5lcixwcm9kdWN0OmUsdXNlckFjdGl2aXR5Om8/YG9wdC1pbmA6YG9wdC1vdXRgLHVzZXJJZDpuPT1udWxsP3ZvaWQgMDpuLnV1aWQscHJlZmVyZW5jZXM6SlNPTi5zdHJpbmdpZnkobCl9KX1jYXRjaCh0KXtkJiZkKHQpLGMmJmMoYHVjcG1fY29uc2VudF9sb2dfZmFpbHVyZWAse2FjdGlvbjpILnVua25vd24sY29tcG9uZW50VHlwZTpWLmJhbm5lcixwcm9kdWN0OmUsZXJyb3I6dC5tZXNzYWdlfSl9fSxbYSxpLHIsbyxzLGMsZSxuLGRdKTsoMCxHLnVzZUVmZmVjdCkoKCk9PntpZighKCFufHwhcHx8aCkpcmV0dXJuICRfKCgpPT57bGV0IGU9YnYoKSx0PXh2KCk7T2JqZWN0LmtleXModCkubGVuZ3RoPjAmJiF2dihlLHQpJiYoTyh0KSxTdihlKSxnKCEwKSl9KX0sW24scCxoLE9dKSwoMCxHLnVzZUVmZmVjdCkoKCk9PntnKCExKX0sW249PW51bGw/dm9pZCAwOm4udXVpZF0pLCgwLEcudXNlRWZmZWN0KSgoKT0+e2lmKCFwKXJldHVybjtsZXQgdD1zZXRJbnRlcnZhbCgoKT0+e3ZhciByOyhyPXdpbmRvdy5PbmVUcnVzdCkhPW51bGwmJnIuT25Db25zZW50Q2hhbmdlZCYmKHdpbmRvdy5PbmVUcnVzdC5PbkNvbnNlbnRDaGFuZ2VkKCgpPT57bGV0IHQ9YnYoKTtjJiZjKGB1Y3BtX2NvbnNlbnRfY2hhbmdlZGAse2FjdGlvbjpILmNoYW5nZSxjb21wb25lbnRUeXBlOlYuYmFubmVyLHByb2R1Y3Q6ZSxwcmVmZXJlbmNlczpKU09OLnN0cmluZ2lmeSh0KX0pLFN2KHQpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChaXykpLGwmJmwoKSxPKCksbiYmZyghMCl9KSxjbGVhckludGVydmFsKHQpKX0sMTAwKTtyZXR1cm4oKT0+Y2xlYXJJbnRlcnZhbCh0KX0sW3IscCxlLG4sTyxjLGxdKSxlb2UoZSxjKTtsZXQgaz0oMCxHLnVzZUNhbGxiYWNrKSgoKT0+e2lmKHYpcmV0dXJuO2xldCBuPXdpbmRvdy5PbmVUcnVzdCYmdHlwZW9mIHdpbmRvdy5PbmVUcnVzdC5Jc0FsZXJ0Qm94Q2xvc2VkPT1gZnVuY3Rpb25gPyF3aW5kb3cuT25lVHJ1c3QuSXNBbGVydEJveENsb3NlZCgpOiExO2MmJmMoYHVjcG1fc2NyaXB0X2xvYWRlZGAse2FjdGlvbjpILnZpZXcsY29tcG9uZW50VHlwZTpWLmJhbm5lcixwcm9kdWN0OmV9KSxjJiZuJiZjKGB1Y3BtX2Jhbm5lcl92aXNpYmxlYCx7YWN0aW9uOkgudmlldyxjb21wb25lbnRUeXBlOlYuYmFubmVyLHByb2R1Y3Q6ZX0pLHkoITApLHQmJnQoKX0sW3YsYyx0LGVdKTtyZXR1cm4gUmFlKHMsdiksTGFlKHYpLCgwLEcudXNlRWZmZWN0KSgoKT0+KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFhfLGspLCgpPT53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihYXyxrKSksW2tdKSwoMCxHLnVzZUVmZmVjdCkoKCk9PntpZihwKXJldHVybiAkXygoKT0+e2lmKCFVXy5nZXQoYGNiX2NvbnNlbnRfcHJlZmVyZW5jZXNgKSYmIW8pe1N2KHtzdHJpY3RseU5lY2Vzc2FyeTohMCxwZXJmb3JtYW5jZTohMCxmdW5jdGlvbmFsOiEwLHRhcmdldGluZzohMH0pO3JldHVybn1sZXQgZT1idigpLHQ9eHYoKTtPYmplY3Qua2V5cyh0KS5sZW5ndGg9PT0wP1N2KGUpOnZ2KGUsdCl8fFN2KGUpfSl9LFtwLG9dKSwhcHx8ISghbnx8biYmKHg/P3cpKT9udWxsOigwLEsuanN4KShyb2Use2RvbWFpblNjcmlwdElkOkUsaW5pdGlhbFBhcmFtczpELGF1dG9CbG9jazp1LG9uRXJyb3I6ZCxsb2dFdmVudDpjLHByb2R1Y3Q6ZSxlbmFibGVHdGFnQ29uc2VudERlZmF1bHQ6Zixpc0luRXVyb3BlOm99KX1mdW5jdGlvbiBDdigpe2xldCBlPUtfKCgwLEcudXNlU3RhdGUpKCgpPT50eXBlb2Ygd2luZG93PmB1YD97fTp4digpKSwyKSx0PWVbMF0sbj1lWzFdLHI9KDAsRy51c2VDYWxsYmFjaykoKCk9PntuKGU9PntsZXQgdD14digpO3JldHVybiB2dihlLHQpP2U6dH0pfSxbXSk7cmV0dXJuKDAsRy51c2VFZmZlY3QpKCgpPT4ocigpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFpfLHIpLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoWl8scil9KSxbcl0pLHR9dmFyIGFvZT00O2Z1bmN0aW9uIG9vZShlKXtyZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGUpLmxlbmd0aH1mdW5jdGlvbiBzb2UoZSx0KXtyZXR1cm4gb29lKGUpLzEwMjQ+dH1mdW5jdGlvbiB3dih7bmFtZTplLHByb2R1Y3Q6dH0pe3JldHVybihuLHIpPT57aWYobj09bnVsbCl7VV8ucmVtb3ZlKGUsR18oR18oe30scikse30se2RvbWFpbjpkdigpLHBhdGg6YC9gfSkpO3JldHVybn1pZihjdihlLHQpPT09YGRlbGV0ZS1pZi1zZWVuYCl7VV8ucmVtb3ZlKGUsR18oR18oe30scikse30se2RvbWFpbjpkdigpLHBhdGg6YC9gfSkpLFVfLnJlbW92ZShlLEdfKEdfKHt9LHIpLHt9LHtkb21haW46dXYoKSxwYXRoOmAvYH0pKTtyZXR1cm59aWYoIWx2KGUsaXYoKSx0KSlyZXR1cm47bGV0IGk9SlNPTi5zdHJpbmdpZnkobiksYT0ocj09bnVsbD92b2lkIDA6ci5zaXplKT8/YW9lO2lmKHNvZShlbmNvZGVVUklDb21wb25lbnQoaSkrZSxhKSl0aHJvdyBFcnJvcihgJHtlfSB2YWx1ZSBleGNlZWRzICR7YX1LQmApO3tsZXQgdD1HXyhHXyh7fSxyKSx7fSx7ZG9tYWluOmR2KCkscGF0aDpgL2B9KTtgc2l6ZWBpbiB0JiZkZWxldGUgdC5zaXplLFVfLnNldChlLGksdCl9fX1mdW5jdGlvbiBUdihlLHQpe2xldCBuPSgwLEcudXNlQ2FsbGJhY2spKChuLHIpPT53dih7bmFtZTplLHByb2R1Y3Q6dH0pKG4sciksW2UsdF0pLHI9VV8uZ2V0KGUpO3JldHVyblsoMCxHLnVzZU1lbW8pKCgpPT57aWYocil0cnl7cmV0dXJuIEpTT04ucGFyc2Uocil9Y2F0Y2h7cmV0dXJuIHR5cGVvZiByPT1gc3RyaW5nYD9yOnZvaWQgMH19LFtyXSksbl19ZnVuY3Rpb24gY29lKCl7bGV0IGU9bnYoKSx0PUtfKCgwLEcudXNlU3RhdGUpKCExKSwyKSxuPXRbMF0scj10WzFdLGk9KDAsRy51c2VDYWxsYmFjaykoKCk9Pnt0eXBlb2Ygd2luZG93PmB1YHx8d2luZG93Lk9uZVRydXN0JiZ0eXBlb2Ygd2luZG93Lk9uZVRydXN0LklzQWxlcnRCb3hDbG9zZWQ9PWBmdW5jdGlvbmAmJnIoIXdpbmRvdy5PbmVUcnVzdC5Jc0FsZXJ0Qm94Q2xvc2VkKCkpfSxbXSk7cmV0dXJuKDAsRy51c2VFZmZlY3QpKCgpPT57dmFyIHQ7aWYoIWUpcmV0dXJuKCk9Pnt9O2xldCBuPSEwLHI9KCk9Pnt2YXIgZTtuJiYoaSgpLChlPXdpbmRvdy5PbmVUcnVzdCkhPW51bGwmJmUuT25Db25zZW50Q2hhbmdlZCYmd2luZG93Lk9uZVRydXN0Lk9uQ29uc2VudENoYW5nZWQoKCk9PntuJiZpKCl9KSl9O3JldHVybiB0eXBlb2YoKHQ9d2luZG93Lk9uZVRydXN0KT09bnVsbD92b2lkIDA6dC5Jc0FsZXJ0Qm94Q2xvc2VkKT09YGZ1bmN0aW9uYCYmcigpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFhfLHIpLCgpPT57bj0hMSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihYXyxyKX19LFtpLGVdKSxufWZ1bmN0aW9uIGxvZSgpe2xldCBlPW52KCksdD1LXygoMCxHLnVzZVN0YXRlKSghMSksMiksbj10WzBdLHI9dFsxXTtyZXR1cm4oMCxHLnVzZUVmZmVjdCkoKCk9PntpZighZSlyZXR1cm47bGV0IHQ9KCk9PnIoITApO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihYXyx0KSx3aW5kb3cuT25ldHJ1c3RBY3RpdmVHcm91cHMmJnQoKSwoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFhfLHQpfX0sW2VdKSxufXZhciBFdj1gY2JfdGVzdF9jb29raWVgO2Z1bmN0aW9uIHVvZSgpe2lmKHR5cGVvZiB3aW5kb3c+YHVgfHx0eXBlb2YgZG9jdW1lbnQ+YHVgKXJldHVybiExO3RyeXtVXy5zZXQoRXYsYDFgKTtsZXQgZT1VXy5nZXQoRXYpPT09YDFgO3JldHVybiBVXy5yZW1vdmUoRXYpLGV9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIGRvZShlKXtpZighKHR5cGVvZiBkb2N1bWVudD5gdWApKXJldHVybiBVXy5nZXQoZSl9ZnVuY3Rpb24gRHYoKXt2YXIgZTsoZT13aW5kb3cpIT1udWxsJiZlLk9uZVRydXN0JiZ3aW5kb3cuT25lVHJ1c3QuVG9nZ2xlSW5mb0Rpc3BsYXkoKX12YXIgT3Y9YGNiX3JjaWRgLGZvZT0zNjAwLzg2NDAwLHBvZT13dih7bmFtZTpPdixwcm9kdWN0OmBpZGVudGl0eWB9KTtmdW5jdGlvbiBrdigpe2Z2KFtPdl0pfWZ1bmN0aW9uIG1vZShlKXtwb2UoZSx7ZXhwaXJlczpmb2Usc2VjdXJlOiEwLHNhbWVTaXRlOmBsYXhgfSl9ZnVuY3Rpb24gQXYoKXtsZXQgZT1kb2UoT3YpO2lmKGUpdHJ5e2xldCB0PUpTT04ucGFyc2UoZSk7cmV0dXJuIHR5cGVvZiB0PT1gc3RyaW5nYD90OmV9Y2F0Y2h7cmV0dXJuIGV9fXZhciBob2U9Y2xhc3MgZXh0ZW5kcyBDdXN0b21FdmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihgUkNJRF9DSEFOR0VgLHtkZXRhaWw6ZX0pfX07ZnVuY3Rpb24gZ29lKGUpe2xldCB0PXR5cGVvZiB3aW5kb3c8YHVgO2Z1bmN0aW9uIG4oKXtsZXQgZT1uZXcgTWFwO3JldHVybntnZXRJdGVtOnQ9PmUuZ2V0KHQpPz9udWxsLHNldEl0ZW06KHQsbik9PmUuc2V0KHQsbikscmVtb3ZlSXRlbTp0PT5lLmRlbGV0ZSh0KX19cmV0dXJuIHQ/ZT8/c2Vzc2lvblN0b3JhZ2U6bigpfXZhciBqdj1gUkNJRGAsTXY9YEZFQVRVUkVfRU5BQkxFRGAsTnY9Z29lKHR5cGVvZiB3aW5kb3c8YHVgP3Nlc3Npb25TdG9yYWdlOnZvaWQgMCksUHY9e2dldEFjdGl2ZVJlc291cmNlOigpPT5Odi5nZXRJdGVtKGp2KT8/dm9pZCAwLHNldEFjdGl2ZVJlc291cmNlOmU9PntOdi5zZXRJdGVtKGp2LGUpfSxjbGVhckFjdGl2ZVJlc291cmNlOigpPT57TnYucmVtb3ZlSXRlbShqdil9LHNldE1VU0VuYWJsZWQ6ZT0+e052LnNldEl0ZW0oTXYsZS50b1N0cmluZygpKX0sTVVTRW5hYmxlZDooKT0+TnYuZ2V0SXRlbShNdik9PT1gdHJ1ZWB9LF9vZT1zKCgoZSx0KT0+eyhmdW5jdGlvbigpe3ZhciBlPWBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvYCxuPXtyb3RsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU8PHR8ZT4+PjMyLXR9LHJvdHI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZTw8MzItdHxlPj4+dH0sZW5kaWFuOmZ1bmN0aW9uKGUpe2lmKGUuY29uc3RydWN0b3I9PU51bWJlcilyZXR1cm4gbi5yb3RsKGUsOCkmMTY3MTE5MzV8bi5yb3RsKGUsMjQpJjQyNzgyNTUzNjA7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XT1uLmVuZGlhbihlW3RdKTtyZXR1cm4gZX0scmFuZG9tQnl0ZXM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdO2U+MDtlLS0pdC5wdXNoKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTYpKTtyZXR1cm4gdH0sYnl0ZXNUb1dvcmRzOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTAscj0wO248ZS5sZW5ndGg7bisrLHIrPTgpdFtyPj4+NV18PWVbbl08PDI0LXIlMzI7cmV0dXJuIHR9LHdvcmRzVG9CeXRlczpmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGgqMzI7bis9OCl0LnB1c2goZVtuPj4+NV0+Pj4yNC1uJTMyJjI1NSk7cmV0dXJuIHR9LGJ5dGVzVG9IZXg6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyl0LnB1c2goKGVbbl0+Pj40KS50b1N0cmluZygxNikpLHQucHVzaCgoZVtuXSYxNSkudG9TdHJpbmcoMTYpKTtyZXR1cm4gdC5qb2luKGBgKX0saGV4VG9CeXRlczpmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bis9Mil0LnB1c2gocGFyc2VJbnQoZS5zdWJzdHIobiwyKSwxNikpO3JldHVybiB0fSxieXRlc1RvQmFzZTY0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj1bXSxyPTA7cjx0Lmxlbmd0aDtyKz0zKWZvcih2YXIgaT10W3JdPDwxNnx0W3IrMV08PDh8dFtyKzJdLGE9MDthPDQ7YSsrKXIqOCthKjY8PXQubGVuZ3RoKjg/bi5wdXNoKGUuY2hhckF0KGk+Pj42KigzLWEpJjYzKSk6bi5wdXNoKGA9YCk7cmV0dXJuIG4uam9pbihgYCl9LGJhc2U2NFRvQnl0ZXM6ZnVuY3Rpb24odCl7dD10LnJlcGxhY2UoL1teQS1aMC05K1wvXS9naSxgYCk7Zm9yKHZhciBuPVtdLHI9MCxpPTA7cjx0Lmxlbmd0aDtpPSsrciU0KWkhPTAmJm4ucHVzaCgoZS5pbmRleE9mKHQuY2hhckF0KHItMSkpJjIqKigtMippKzgpLTEpPDxpKjJ8ZS5pbmRleE9mKHQuY2hhckF0KHIpKT4+PjYtaSoyKTtyZXR1cm4gbn19O3QuZXhwb3J0cz1ufSkoKX0pKSxGdj1zKCgoZSx0KT0+e3ZhciBuPXt1dGY4OntzdHJpbmdUb0J5dGVzOmZ1bmN0aW9uKGUpe3JldHVybiBuLmJpbi5zdHJpbmdUb0J5dGVzKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChlKSkpfSxieXRlc1RvU3RyaW5nOmZ1bmN0aW9uKGUpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKG4uYmluLmJ5dGVzVG9TdHJpbmcoZSkpKX19LGJpbjp7c3RyaW5nVG9CeXRlczpmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bisrKXQucHVzaChlLmNoYXJDb2RlQXQobikmMjU1KTtyZXR1cm4gdH0sYnl0ZXNUb1N0cmluZzpmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bisrKXQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGVbbl0pKTtyZXR1cm4gdC5qb2luKGBgKX19fTt0LmV4cG9ydHM9bn0pKSx2b2U9cygoKGUsdCk9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPW51bGwmJihuKGUpfHxyKGUpfHwhIWUuX2lzQnVmZmVyKX07ZnVuY3Rpb24gbihlKXtyZXR1cm4hIWUuY29uc3RydWN0b3ImJnR5cGVvZiBlLmNvbnN0cnVjdG9yLmlzQnVmZmVyPT1gZnVuY3Rpb25gJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGUpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIHR5cGVvZiBlLnJlYWRGbG9hdExFPT1gZnVuY3Rpb25gJiZ0eXBlb2YgZS5zbGljZT09YGZ1bmN0aW9uYCYmbihlLnNsaWNlKDAsMCkpfX0pKSx5b2U9dShzKCgoZSx0KT0+eyhmdW5jdGlvbigpe3ZhciBlPV9vZSgpLG49RnYoKS51dGY4LHI9dm9lKCksaT1GdigpLmJpbixhPWZ1bmN0aW9uKHQsbyl7dC5jb25zdHJ1Y3Rvcj09U3RyaW5nP3Q9byYmby5lbmNvZGluZz09PWBiaW5hcnlgP2kuc3RyaW5nVG9CeXRlcyh0KTpuLnN0cmluZ1RvQnl0ZXModCk6cih0KT90PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsMCk6IUFycmF5LmlzQXJyYXkodCkmJnQuY29uc3RydWN0b3IhPT1VaW50OEFycmF5JiYodD10LnRvU3RyaW5nKCkpO2Zvcih2YXIgcz1lLmJ5dGVzVG9Xb3Jkcyh0KSxjPXQubGVuZ3RoKjgsbD0xNzMyNTg0MTkzLHU9LTI3MTczMzg3OSxkPS0xNzMyNTg0MTk0LGY9MjcxNzMzODc4LHA9MDtwPHMubGVuZ3RoO3ArKylzW3BdPShzW3BdPDw4fHNbcF0+Pj4yNCkmMTY3MTE5MzV8KHNbcF08PDI0fHNbcF0+Pj44KSY0Mjc4MjU1MzYwO3NbYz4+PjVdfD0xMjg8PGMlMzIsc1soYys2ND4+Pjk8PDQpKzE0XT1jO2Zvcih2YXIgbT1hLl9mZixoPWEuX2dnLGc9YS5faGgsXz1hLl9paSxwPTA7cDxzLmxlbmd0aDtwKz0xNil7dmFyIHY9bCx5PXUsYj1kLHg9ZjtsPW0obCx1LGQsZixzW3ArMF0sNywtNjgwODc2OTM2KSxmPW0oZixsLHUsZCxzW3ArMV0sMTIsLTM4OTU2NDU4NiksZD1tKGQsZixsLHUsc1twKzJdLDE3LDYwNjEwNTgxOSksdT1tKHUsZCxmLGwsc1twKzNdLDIyLC0xMDQ0NTI1MzMwKSxsPW0obCx1LGQsZixzW3ArNF0sNywtMTc2NDE4ODk3KSxmPW0oZixsLHUsZCxzW3ArNV0sMTIsMTIwMDA4MDQyNiksZD1tKGQsZixsLHUsc1twKzZdLDE3LC0xNDczMjMxMzQxKSx1PW0odSxkLGYsbCxzW3ArN10sMjIsLTQ1NzA1OTgzKSxsPW0obCx1LGQsZixzW3ArOF0sNywxNzcwMDM1NDE2KSxmPW0oZixsLHUsZCxzW3ArOV0sMTIsLTE5NTg0MTQ0MTcpLGQ9bShkLGYsbCx1LHNbcCsxMF0sMTcsLTQyMDYzKSx1PW0odSxkLGYsbCxzW3ArMTFdLDIyLC0xOTkwNDA0MTYyKSxsPW0obCx1LGQsZixzW3ArMTJdLDcsMTgwNDYwMzY4MiksZj1tKGYsbCx1LGQsc1twKzEzXSwxMiwtNDAzNDExMDEpLGQ9bShkLGYsbCx1LHNbcCsxNF0sMTcsLTE1MDIwMDIyOTApLHU9bSh1LGQsZixsLHNbcCsxNV0sMjIsMTIzNjUzNTMyOSksbD1oKGwsdSxkLGYsc1twKzFdLDUsLTE2NTc5NjUxMCksZj1oKGYsbCx1LGQsc1twKzZdLDksLTEwNjk1MDE2MzIpLGQ9aChkLGYsbCx1LHNbcCsxMV0sMTQsNjQzNzE3NzEzKSx1PWgodSxkLGYsbCxzW3ArMF0sMjAsLTM3Mzg5NzMwMiksbD1oKGwsdSxkLGYsc1twKzVdLDUsLTcwMTU1ODY5MSksZj1oKGYsbCx1LGQsc1twKzEwXSw5LDM4MDE2MDgzKSxkPWgoZCxmLGwsdSxzW3ArMTVdLDE0LC02NjA0NzgzMzUpLHU9aCh1LGQsZixsLHNbcCs0XSwyMCwtNDA1NTM3ODQ4KSxsPWgobCx1LGQsZixzW3ArOV0sNSw1Njg0NDY0MzgpLGY9aChmLGwsdSxkLHNbcCsxNF0sOSwtMTAxOTgwMzY5MCksZD1oKGQsZixsLHUsc1twKzNdLDE0LC0xODczNjM5NjEpLHU9aCh1LGQsZixsLHNbcCs4XSwyMCwxMTYzNTMxNTAxKSxsPWgobCx1LGQsZixzW3ArMTNdLDUsLTE0NDQ2ODE0NjcpLGY9aChmLGwsdSxkLHNbcCsyXSw5LC01MTQwMzc4NCksZD1oKGQsZixsLHUsc1twKzddLDE0LDE3MzUzMjg0NzMpLHU9aCh1LGQsZixsLHNbcCsxMl0sMjAsLTE5MjY2MDc3MzQpLGw9ZyhsLHUsZCxmLHNbcCs1XSw0LC0zNzg1NTgpLGY9ZyhmLGwsdSxkLHNbcCs4XSwxMSwtMjAyMjU3NDQ2MyksZD1nKGQsZixsLHUsc1twKzExXSwxNiwxODM5MDMwNTYyKSx1PWcodSxkLGYsbCxzW3ArMTRdLDIzLC0zNTMwOTU1NiksbD1nKGwsdSxkLGYsc1twKzFdLDQsLTE1MzA5OTIwNjApLGY9ZyhmLGwsdSxkLHNbcCs0XSwxMSwxMjcyODkzMzUzKSxkPWcoZCxmLGwsdSxzW3ArN10sMTYsLTE1NTQ5NzYzMiksdT1nKHUsZCxmLGwsc1twKzEwXSwyMywtMTA5NDczMDY0MCksbD1nKGwsdSxkLGYsc1twKzEzXSw0LDY4MTI3OTE3NCksZj1nKGYsbCx1LGQsc1twKzBdLDExLC0zNTg1MzcyMjIpLGQ9ZyhkLGYsbCx1LHNbcCszXSwxNiwtNzIyNTIxOTc5KSx1PWcodSxkLGYsbCxzW3ArNl0sMjMsNzYwMjkxODkpLGw9ZyhsLHUsZCxmLHNbcCs5XSw0LC02NDAzNjQ0ODcpLGY9ZyhmLGwsdSxkLHNbcCsxMl0sMTEsLTQyMTgxNTgzNSksZD1nKGQsZixsLHUsc1twKzE1XSwxNiw1MzA3NDI1MjApLHU9Zyh1LGQsZixsLHNbcCsyXSwyMywtOTk1MzM4NjUxKSxsPV8obCx1LGQsZixzW3ArMF0sNiwtMTk4NjMwODQ0KSxmPV8oZixsLHUsZCxzW3ArN10sMTAsMTEyNjg5MTQxNSksZD1fKGQsZixsLHUsc1twKzE0XSwxNSwtMTQxNjM1NDkwNSksdT1fKHUsZCxmLGwsc1twKzVdLDIxLC01NzQzNDA1NSksbD1fKGwsdSxkLGYsc1twKzEyXSw2LDE3MDA0ODU1NzEpLGY9XyhmLGwsdSxkLHNbcCszXSwxMCwtMTg5NDk4NjYwNiksZD1fKGQsZixsLHUsc1twKzEwXSwxNSwtMTA1MTUyMyksdT1fKHUsZCxmLGwsc1twKzFdLDIxLC0yMDU0OTIyNzk5KSxsPV8obCx1LGQsZixzW3ArOF0sNiwxODczMzEzMzU5KSxmPV8oZixsLHUsZCxzW3ArMTVdLDEwLC0zMDYxMTc0NCksZD1fKGQsZixsLHUsc1twKzZdLDE1LC0xNTYwMTk4MzgwKSx1PV8odSxkLGYsbCxzW3ArMTNdLDIxLDEzMDkxNTE2NDkpLGw9XyhsLHUsZCxmLHNbcCs0XSw2LC0xNDU1MjMwNzApLGY9XyhmLGwsdSxkLHNbcCsxMV0sMTAsLTExMjAyMTAzNzkpLGQ9XyhkLGYsbCx1LHNbcCsyXSwxNSw3MTg3ODcyNTkpLHU9Xyh1LGQsZixsLHNbcCs5XSwyMSwtMzQzNDg1NTUxKSxsPWwrdj4+PjAsdT11K3k+Pj4wLGQ9ZCtiPj4+MCxmPWYreD4+PjB9cmV0dXJuIGUuZW5kaWFuKFtsLHUsZCxmXSl9O2EuX2ZmPWZ1bmN0aW9uKGUsdCxuLHIsaSxhLG8pe3ZhciBzPWUrKHQmbnx+dCZyKSsoaT4+PjApK287cmV0dXJuKHM8PGF8cz4+PjMyLWEpK3R9LGEuX2dnPWZ1bmN0aW9uKGUsdCxuLHIsaSxhLG8pe3ZhciBzPWUrKHQmcnxuJn5yKSsoaT4+PjApK287cmV0dXJuKHM8PGF8cz4+PjMyLWEpK3R9LGEuX2hoPWZ1bmN0aW9uKGUsdCxuLHIsaSxhLG8pe3ZhciBzPWUrKHRebl5yKSsoaT4+PjApK287cmV0dXJuKHM8PGF8cz4+PjMyLWEpK3R9LGEuX2lpPWZ1bmN0aW9uKGUsdCxuLHIsaSxhLG8pe3ZhciBzPWUrKG5eKHR8fnIpKSsoaT4+PjApK287cmV0dXJuKHM8PGF8cz4+PjMyLWEpK3R9LGEuX2Jsb2Nrc2l6ZT0xNixhLl9kaWdlc3RzaXplPTE2LHQuZXhwb3J0cz1mdW5jdGlvbih0LG4pe2lmKHQ9PW51bGwpdGhyb3cgRXJyb3IoYElsbGVnYWwgYXJndW1lbnQgYCt0KTt2YXIgcj1lLndvcmRzVG9CeXRlcyhhKHQsbikpO3JldHVybiBuJiZuLmFzQnl0ZXM/cjpuJiZuLmFzU3RyaW5nP2kuYnl0ZXNUb1N0cmluZyhyKTplLmJ5dGVzVG9IZXgocil9fSkoKX0pKSgpKTtmdW5jdGlvbiBJdihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIEx2KGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP0l2KE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtib2UoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6SXYoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIGJvZShlLHQsbil7cmV0dXJuIHQ9eG9lKHQpLHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24geG9lKGUpe3ZhciB0PVNvZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6U3RyaW5nKHQpfWZ1bmN0aW9uIFNvZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfXZhciBSdix6dixCdjtmdW5jdGlvbiBDb2UoKXtCdiYmKEJ2KCksenY9dm9pZCAwLEJ2PXZvaWQgMCl9ZnVuY3Rpb24gVnYoKXtyZXR1cm4gUnZ9ZnVuY3Rpb24gSHYoZSl7UnY9ZSxlJiZDb2UoKX1hc3luYyBmdW5jdGlvbiBVdigpe3JldHVybiBSdj09PXZvaWQgMHx8UnY/UHJvbWlzZS5yZXNvbHZlKCk6KHp2PT09dm9pZCAwJiYoenY9bmV3IFByb21pc2UoZT0+e0J2PWV9KSksenYpfWZ1bmN0aW9uIFd2KCl7cmV0dXJuITB9dmFyIEd2PSgpPT4oKT0+dm9pZCAwO2Z1bmN0aW9uIEt2KCl7cmV0dXJuIFd2KCl9dmFyIHF2PWU9Pkd2KGUpO2Z1bmN0aW9uIHdvZShlKXtXdj1lLmdldElzVmlzaWJsZSxHdj1lLm9uVmlzaWJsZUNoYW5nZWR9dmFyIFRvZT17aW5mbzpjb25zb2xlLmluZm8sd2FybmluZzpjb25zb2xlLndhcm4sZXJyb3I6Y29uc29sZS5lcnJvcn0sSnY9YCVjIEVycm9yIFJlcG9ydGluZzpgLFl2PWBjb2xvcjpyZWQ7YCxFb2U9ZT0+eyhUb2VbZS5zZXZlcml0eT8/YGVycm9yYF0/P2NvbnNvbGUuZXJyb3IpKEp2LFl2LGUpfTtmdW5jdGlvbiBEb2UoZSl7cmV0dXJuIShgcmVwb3J0RXJyb3JgaW4gZSl8fCEhZS5yZXBvcnRFcnJvcn1mdW5jdGlvbiBPb2UoZSl7cmV0dXJuKDAseW9lLmRlZmF1bHQpKGUubWVzc2FnZSsoZS5zdGFjaz8/YGApKS5zdWJzdHJpbmcoMCw4KX1mdW5jdGlvbiBrb2UoZSl7cmV0dXJuIHQ9PntsZXQgbjt0IGluc3RhbmNlb2YgRXJyb3I/KG49e2Vycm9yOnR9LGNvbnNvbGUud2FybihKdixZdixgcmVwb3J0RXJyb3IgY2FsbGVkIGluY29ycmVjdGx5IChyZXBvcnRFcnJvcihlcnJvcikgcmF0aGVyIHRoYW4gcmVwb3J0RXJyb3Ioe2Vycm9yfSkpYCkpOnR5cGVvZiB0PT1gb2JqZWN0YD8obj10LG4uZXJyb3IgaW5zdGFuY2VvZiBFcnJvcnx8KGNvbnNvbGUud2FybihKdixZdixgcmVwb3J0RXJyb3IgY2FsbGVkIGluY29ycmVjdGx5IHdpdGggc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gZXJyb3Igb2JqZWN0YCx0KSxuLm1ldGFkYXRhPUx2KEx2KHt9LG4ubWV0YWRhdGEpLHt9LHtvcmlnaW5hbEVycm9yRGF0YTpKU09OLnN0cmluZ2lmeShuLmVycm9yKX0pLG4uZXJyb3I9RXJyb3IoYFVuc3BlY2lmaWVkIGVycm9yLmApKSk6KG49e2Vycm9yOkVycm9yKGBVbnNwZWNpZmllZCBlcnJvci5gKSxtZXRhZGF0YTp7b3JpZ2luYWxFcnJvckRhdGE6SlNPTi5zdHJpbmdpZnkodCl9fSxjb25zb2xlLndhcm4oSnYsWXYsYHJlcG9ydEVycm9yIGNhbGxlZCBpbmNvcnJlY3RseWApKTtsZXQgcj1uLmVycm9yLGk9T29lKHIpO3JldHVybiBEb2UocikmJmUobixpKSx7ZXJyb3JIYXNoOml9fX12YXIgQW9lPWtvZShFb2UpLFh2PWU9Pnt0cnl7cmV0dXJuIEFvZShlKX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5lcnJvcihKdixZdixgRXJyb3IgcmVwb3J0aW5nIGVycm9yYCxlKSx7fX19LFp2PXUoRmQoKSk7ZnVuY3Rpb24gam9lKGUpe3JldHVybiA2NTw9ZSYmZTw9OTB9ZnVuY3Rpb24gTW9lKGUpe3JldHVybiA5Nzw9ZSYmZTw9MTIyfWZ1bmN0aW9uIE5vZShlKXtyZXR1cm4gNDg8PWUmJmU8PTU3fWZ1bmN0aW9uIFBvZShlKXtyZXR1cm4gZS0zMn1mdW5jdGlvbiBGb2UoZSl7cmV0dXJuIGUrMzJ9ZnVuY3Rpb24gSW9lKGUpe2xldCB0PWUuY2hhckNvZGVBdCgwKTtpZihOb2UodCl8fHQ9PT00NXx8aXNOYU4odCkpcmV0dXJuIGU7bGV0IG49am9lKHQpLHI9bj9bRm9lKHQpXTpbdF0saT1lLmxlbmd0aDtmb3IobGV0IHQ9MTt0PGk7dCsrKXtsZXQgaT1lLmNoYXJDb2RlQXQodCk7aWYoaT09PTk1fHxpPT09MzJ8fGk9PT00NSl7aWYobj0hMCxpPWUuY2hhckNvZGVBdCgrK3QpLGlzTmFOKGkpKXJldHVybiBlO01vZShpKT9yLnB1c2goUG9lKGkpKTpyLnB1c2goaSl9ZWxzZSByLnB1c2goaSl9cmV0dXJuIG4/U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseSh2b2lkIDAscik6ZX12YXIgUXY9cygoKGUsdCk9PnsoZnVuY3Rpb24oZSl7dmFyIG49ZnVuY3Rpb24oZSx0LHIpe2lmKCFsKHQpfHxkKHQpfHxmKHQpfHxwKHQpfHxjKHQpKXJldHVybiB0O3ZhciBpLGE9MCxvPTA7aWYodSh0KSlmb3IoaT1bXSxvPXQubGVuZ3RoO2E8bzthKyspaS5wdXNoKG4oZSx0W2FdLHIpKTtlbHNlIGZvcih2YXIgcyBpbiBpPXt9LHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscykmJihpW2UocyxyKV09bihlLHRbc10scikpO3JldHVybiBpfSxyPWZ1bmN0aW9uKGUsdCl7dD10fHx7fTt2YXIgbj10LnNlcGFyYXRvcnx8YF9gLHI9dC5zcGxpdHx8Lyg/PVtBLVpdKS87cmV0dXJuIGUuc3BsaXQocikuam9pbihuKX0saT1mdW5jdGlvbihlKXtyZXR1cm4gbShlKT9lOihlPWUucmVwbGFjZSgvW1wtX1xzXSsoLik/L2csZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD90LnRvVXBwZXJDYXNlKCk6YGB9KSxlLnN1YnN0cigwLDEpLnRvTG93ZXJDYXNlKCkrZS5zdWJzdHIoMSkpfSxhPWZ1bmN0aW9uKGUpe3ZhciB0PWkoZSk7cmV0dXJuIHQuc3Vic3RyKDAsMSkudG9VcHBlckNhc2UoKSt0LnN1YnN0cigxKX0sbz1mdW5jdGlvbihlLHQpe3JldHVybiByKGUsdCkudG9Mb3dlckNhc2UoKX0scz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGM9ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlPT1gZnVuY3Rpb25gfSxsPWZ1bmN0aW9uKGUpe3JldHVybiBlPT09T2JqZWN0KGUpfSx1PWZ1bmN0aW9uKGUpe3JldHVybiBzLmNhbGwoZSk9PWBbb2JqZWN0IEFycmF5XWB9LGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHMuY2FsbChlKT09YFtvYmplY3QgRGF0ZV1gfSxmPWZ1bmN0aW9uKGUpe3JldHVybiBzLmNhbGwoZSk9PWBbb2JqZWN0IFJlZ0V4cF1gfSxwPWZ1bmN0aW9uKGUpe3JldHVybiBzLmNhbGwoZSk9PWBbb2JqZWN0IEJvb2xlYW5dYH0sbT1mdW5jdGlvbihlKXtyZXR1cm4gZS09MCxlPT09ZX0saD1mdW5jdGlvbihlLHQpe3ZhciBuPXQmJmBwcm9jZXNzYGluIHQ/dC5wcm9jZXNzOnQ7cmV0dXJuIHR5cGVvZiBuPT1gZnVuY3Rpb25gP2Z1bmN0aW9uKHQscil7cmV0dXJuIG4odCxlLHIpfTplfSxnPXtjYW1lbGl6ZTppLGRlY2FtZWxpemU6byxwYXNjYWxpemU6YSxkZXBhc2NhbGl6ZTpvLGNhbWVsaXplS2V5czpmdW5jdGlvbihlLHQpe3JldHVybiBuKGgoaSx0KSxlKX0sZGVjYW1lbGl6ZUtleXM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbihoKG8sdCksZSx0KX0scGFzY2FsaXplS2V5czpmdW5jdGlvbihlLHQpe3JldHVybiBuKGgoYSx0KSxlKX0sZGVwYXNjYWxpemVLZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVjYW1lbGl6ZUtleXMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX07dHlwZW9mIGRlZmluZT09YGZ1bmN0aW9uYCYmZGVmaW5lLmFtZD9kZWZpbmUoZyk6dCE9PXZvaWQgMCYmdC5leHBvcnRzP3QuZXhwb3J0cz1nOmUuaHVtcHM9Z30pKGUpfSkpLExvZT11KFF2KCkpO2Z1bmN0aW9uIFJvZShlKXtyZXR1cm4vW0EtWmEtejAtOV0rX1tBLVphLXowLTlfXSovLnRlc3QoZSl9ZnVuY3Rpb24gem9lKGUpe3JldHVybi9bQS1aXStbQS1aYS16MC05XSovLnRlc3QoZSl9ZnVuY3Rpb24gQm9lKGUpe3JldHVybi9eW0EtWmEtejAtOV0rX1tBLVphLXowLTlfXSokLy50ZXN0KGUpfWZ1bmN0aW9uIFZvZShlKXtyZXR1cm4vXltBLVpdK1tBLVphLXowLTldKiQvLnRlc3QoZSl9ZnVuY3Rpb24gSG9lKGUpe3JldHVybi9eW0EtWl0qJC8udGVzdChlKX1mdW5jdGlvbiAkdihlKXtyZXR1cm4gUm9lKGUpfHx6b2UoZSk/SW9lKGUpOmV9ZnVuY3Rpb24gZXkoZSx0PSExKXtyZXR1cm4oMCxMb2UuY2FtZWxpemVLZXlzKShlLChlLG4scik9PntsZXQgaT1Cb2UoZSl8fFZvZShlKTtyZXR1cm4gdCYmSG9lKGUpP2U6aT9uKGUscik6ZX0pfXZhciB0eT1gJWMgSW5zdGFudCBBUEkgSG9va3M6YCxueT1gY29sb3I6Ymx1ZWAscnk9dShzKCgoZSx0KT0+e3QuZXhwb3J0cz1mdW5jdGlvbiBlKHQsbil7aWYodD09PW4pcmV0dXJuITA7aWYodCYmbiYmdHlwZW9mIHQ9PWBvYmplY3RgJiZ0eXBlb2Ygbj09YG9iamVjdGApe2lmKHQuY29uc3RydWN0b3IhPT1uLmNvbnN0cnVjdG9yKXJldHVybiExO3ZhciByLGksYTtpZihBcnJheS5pc0FycmF5KHQpKXtpZihyPXQubGVuZ3RoLHIhPW4ubGVuZ3RoKXJldHVybiExO2ZvcihpPXI7aS0tIT09MDspaWYoIWUodFtpXSxuW2ldKSlyZXR1cm4hMTtyZXR1cm4hMH1pZih0LmNvbnN0cnVjdG9yPT09UmVnRXhwKXJldHVybiB0LnNvdXJjZT09PW4uc291cmNlJiZ0LmZsYWdzPT09bi5mbGFncztpZih0LnZhbHVlT2YhPT1PYmplY3QucHJvdG90eXBlLnZhbHVlT2YpcmV0dXJuIHQudmFsdWVPZigpPT09bi52YWx1ZU9mKCk7aWYodC50b1N0cmluZyE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcpcmV0dXJuIHQudG9TdHJpbmcoKT09PW4udG9TdHJpbmcoKTtpZihhPU9iamVjdC5rZXlzKHQpLHI9YS5sZW5ndGgsciE9PU9iamVjdC5rZXlzKG4pLmxlbmd0aClyZXR1cm4hMTtmb3IoaT1yO2ktLSE9PTA7KWlmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixhW2ldKSlyZXR1cm4hMTtmb3IoaT1yO2ktLSE9PTA7KXt2YXIgbz1hW2ldO2lmKCFlKHRbb10sbltvXSkpcmV0dXJuITF9cmV0dXJuITB9cmV0dXJuIHQhPT10JiZuIT09bn19KSkoKSksVW9lPShmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmKGVbbl09dFtuXSl9LGUodCxuKX07cmV0dXJuIGZ1bmN0aW9uKHQsbil7ZSh0LG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0pKCksV29lPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gaXkoZSx0KXtyZXR1cm4gV29lLmNhbGwoZSx0KX1mdW5jdGlvbiBheShlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9QXJyYXkoZS5sZW5ndGgpLG49MDtuPHQubGVuZ3RoO24rKyl0W25dPWBgK247cmV0dXJuIHR9aWYoT2JqZWN0LmtleXMpcmV0dXJuIE9iamVjdC5rZXlzKGUpO3ZhciByPVtdO2Zvcih2YXIgaSBpbiBlKWl5KGUsaSkmJnIucHVzaChpKTtyZXR1cm4gcn1mdW5jdGlvbiBveShlKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2Vgb2JqZWN0YDpyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlKSk7Y2FzZWB1bmRlZmluZWRgOnJldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIGV9fWZ1bmN0aW9uIHN5KGUpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGgscjt0PG47KXtpZihyPWUuY2hhckNvZGVBdCh0KSxyPj00OCYmcjw9NTcpe3QrKztjb250aW51ZX1yZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBjeShlKXtyZXR1cm4gZS5pbmRleE9mKGAvYCk9PT0tMSYmZS5pbmRleE9mKGB+YCk9PT0tMT9lOmUucmVwbGFjZSgvfi9nLGB+MGApLnJlcGxhY2UoL1wvL2csYH4xYCl9ZnVuY3Rpb24gbHkoZSl7cmV0dXJuIGUucmVwbGFjZSgvfjEvZyxgL2ApLnJlcGxhY2UoL34wL2csYH5gKX1mdW5jdGlvbiB1eShlKXtpZihlPT09dm9pZCAwKXJldHVybiEwO2lmKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKylpZih1eShlW3RdKSlyZXR1cm4hMH1lbHNlIGlmKHR5cGVvZiBlPT1gb2JqZWN0YCl7Zm9yKHZhciByPWF5KGUpLGk9ci5sZW5ndGgsYT0wO2E8aTthKyspaWYodXkoZVtyW2FdXSkpcmV0dXJuITB9fXJldHVybiExfWZ1bmN0aW9uIGR5KGUsdCl7dmFyIG49W2VdO2Zvcih2YXIgciBpbiB0KXt2YXIgaT10eXBlb2YgdFtyXT09YG9iamVjdGA/SlNPTi5zdHJpbmdpZnkodFtyXSxudWxsLDIpOnRbcl07aSE9PXZvaWQgMCYmbi5wdXNoKHIrYDogYCtpKX1yZXR1cm4gbi5qb2luKGAKYCl9dmFyIGZ5PWZ1bmN0aW9uKGUpe1VvZSh0LGUpO2Z1bmN0aW9uIHQodCxuLHIsaSxhKXt2YXIgbz10aGlzLmNvbnN0cnVjdG9yLHM9ZS5jYWxsKHRoaXMsZHkodCx7bmFtZTpuLGluZGV4OnIsb3BlcmF0aW9uOmksdHJlZTphfSkpfHx0aGlzO3JldHVybiBzLm5hbWU9bixzLmluZGV4PXIscy5vcGVyYXRpb249aSxzLnRyZWU9YSxPYmplY3Quc2V0UHJvdG90eXBlT2YocyxvLnByb3RvdHlwZSkscy5tZXNzYWdlPWR5KHQse25hbWU6bixpbmRleDpyLG9wZXJhdGlvbjppLHRyZWU6YX0pLHN9cmV0dXJuIHR9KEVycm9yKSxHb2U9Yyh7SnNvblBhdGNoRXJyb3I6KCk9PnB5LF9hcmVFcXVhbHM6KCk9PmJ5LGFwcGx5T3BlcmF0aW9uOigpPT5neSxhcHBseVBhdGNoOigpPT5feSxhcHBseVJlZHVjZXI6KCk9PkpvZSxkZWVwQ2xvbmU6KCk9PktvZSxnZXRWYWx1ZUJ5UG9pbnRlcjooKT0+aHksdmFsaWRhdGU6KCk9Pnl5LHZhbGlkYXRvcjooKT0+dnl9KSxweT1meSxLb2U9b3ksbXk9e2FkZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbdF09dGhpcy52YWx1ZSx7bmV3RG9jdW1lbnQ6bn19LHJlbW92ZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9ZVt0XTtyZXR1cm4gZGVsZXRlIGVbdF0se25ld0RvY3VtZW50Om4scmVtb3ZlZDpyfX0scmVwbGFjZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9ZVt0XTtyZXR1cm4gZVt0XT10aGlzLnZhbHVlLHtuZXdEb2N1bWVudDpuLHJlbW92ZWQ6cn19LG1vdmU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWh5KG4sdGhpcy5wYXRoKTtyJiYocj1veShyKSk7dmFyIGk9Z3kobix7b3A6YHJlbW92ZWAscGF0aDp0aGlzLmZyb219KS5yZW1vdmVkO3JldHVybiBneShuLHtvcDpgYWRkYCxwYXRoOnRoaXMucGF0aCx2YWx1ZTppfSkse25ld0RvY3VtZW50Om4scmVtb3ZlZDpyfX0sY29weTpmdW5jdGlvbihlLHQsbil7dmFyIHI9aHkobix0aGlzLmZyb20pO3JldHVybiBneShuLHtvcDpgYWRkYCxwYXRoOnRoaXMucGF0aCx2YWx1ZTpveShyKX0pLHtuZXdEb2N1bWVudDpufX0sdGVzdDpmdW5jdGlvbihlLHQsbil7cmV0dXJue25ld0RvY3VtZW50Om4sdGVzdDpieShlW3RdLHRoaXMudmFsdWUpfX0sX2dldDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMudmFsdWU9ZVt0XSx7bmV3RG9jdW1lbnQ6bn19fSxxb2U9e2FkZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHN5KHQpP2Uuc3BsaWNlKHQsMCx0aGlzLnZhbHVlKTplW3RdPXRoaXMudmFsdWUse25ld0RvY3VtZW50Om4saW5kZXg6dH19LHJlbW92ZTpmdW5jdGlvbihlLHQsbil7cmV0dXJue25ld0RvY3VtZW50Om4scmVtb3ZlZDplLnNwbGljZSh0LDEpWzBdfX0scmVwbGFjZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9ZVt0XTtyZXR1cm4gZVt0XT10aGlzLnZhbHVlLHtuZXdEb2N1bWVudDpuLHJlbW92ZWQ6cn19LG1vdmU6bXkubW92ZSxjb3B5Om15LmNvcHksdGVzdDpteS50ZXN0LF9nZXQ6bXkuX2dldH07ZnVuY3Rpb24gaHkoZSx0KXtpZih0PT1gYClyZXR1cm4gZTt2YXIgbj17b3A6YF9nZXRgLHBhdGg6dH07cmV0dXJuIGd5KGUsbiksbi52YWx1ZX1mdW5jdGlvbiBneShlLHQsbixyLGksYSl7aWYobj09PXZvaWQgMCYmKG49ITEpLHI9PT12b2lkIDAmJihyPSEwKSxpPT09dm9pZCAwJiYoaT0hMCksYT09PXZvaWQgMCYmKGE9MCksbiYmKHR5cGVvZiBuPT1gZnVuY3Rpb25gP24odCwwLGUsdC5wYXRoKTp2eSh0LDApKSx0LnBhdGg9PT1gYCl7dmFyIG89e25ld0RvY3VtZW50OmV9O2lmKHQub3A9PT1gYWRkYClyZXR1cm4gby5uZXdEb2N1bWVudD10LnZhbHVlLG87aWYodC5vcD09PWByZXBsYWNlYClyZXR1cm4gby5uZXdEb2N1bWVudD10LnZhbHVlLG8ucmVtb3ZlZD1lLG87aWYodC5vcD09PWBtb3ZlYHx8dC5vcD09PWBjb3B5YClyZXR1cm4gby5uZXdEb2N1bWVudD1oeShlLHQuZnJvbSksdC5vcD09PWBtb3ZlYCYmKG8ucmVtb3ZlZD1lKSxvO2lmKHQub3A9PT1gdGVzdGApe2lmKG8udGVzdD1ieShlLHQudmFsdWUpLG8udGVzdD09PSExKXRocm93IG5ldyBweShgVGVzdCBvcGVyYXRpb24gZmFpbGVkYCxgVEVTVF9PUEVSQVRJT05fRkFJTEVEYCxhLHQsZSk7cmV0dXJuIG8ubmV3RG9jdW1lbnQ9ZSxvfWVsc2UgaWYodC5vcD09PWByZW1vdmVgKXJldHVybiBvLnJlbW92ZWQ9ZSxvLm5ld0RvY3VtZW50PW51bGwsbztlbHNlIGlmKHQub3A9PT1gX2dldGApcmV0dXJuIHQudmFsdWU9ZSxvO2Vsc2UgaWYobil0aHJvdyBuZXcgcHkoIk9wZXJhdGlvbiBgb3BgIHByb3BlcnR5IGlzIG5vdCBvbmUgb2Ygb3BlcmF0aW9ucyBkZWZpbmVkIGluIFJGQy02OTAyIixgT1BFUkFUSU9OX09QX0lOVkFMSURgLGEsdCxlKTtlbHNlIHJldHVybiBvfWVsc2V7cnx8KGU9b3koZSkpO3ZhciBzPSh0LnBhdGh8fGBgKS5zcGxpdChgL2ApLGM9ZSxsPTEsdT1zLmxlbmd0aCxkPXZvaWQgMCxmPXZvaWQgMCxwPXZvaWQgMDtmb3IocD10eXBlb2Ygbj09YGZ1bmN0aW9uYD9uOnZ5Ozspe2lmKGY9c1tsXSxmJiZmLmluZGV4T2YoYH5gKSE9LTEmJihmPWx5KGYpKSxpJiYoZj09YF9fcHJvdG9fX2B8fGY9PWBwcm90b3R5cGVgJiZsPjAmJnNbbC0xXT09YGNvbnN0cnVjdG9yYCkpdGhyb3cgVHlwZUVycm9yKCJKU09OLVBhdGNoOiBtb2RpZnlpbmcgYF9fcHJvdG9fX2Agb3IgYGNvbnN0cnVjdG9yL3Byb3RvdHlwZWAgcHJvcCBpcyBiYW5uZWQgZm9yIHNlY3VyaXR5IHJlYXNvbnMsIGlmIHRoaXMgd2FzIG9uIHB1cnBvc2UsIHBsZWFzZSBzZXQgYGJhblByb3RvdHlwZU1vZGlmaWNhdGlvbnNgIGZsYWcgZmFsc2UgYW5kIHBhc3MgaXQgdG8gdGhpcyBmdW5jdGlvbi4gTW9yZSBpbmZvIGluIGZhc3QtanNvbi1wYXRjaCBSRUFETUUiKTtpZihuJiZkPT09dm9pZCAwJiYoY1tmXT09PXZvaWQgMD9kPXMuc2xpY2UoMCxsKS5qb2luKGAvYCk6bD09dS0xJiYoZD10LnBhdGgpLGQhPT12b2lkIDAmJnAodCwwLGUsZCkpLGwrKyxBcnJheS5pc0FycmF5KGMpKXtpZihmPT09YC1gKWY9Yy5sZW5ndGg7ZWxzZSBpZihuJiYhc3koZikpdGhyb3cgbmV3IHB5KGBFeHBlY3RlZCBhbiB1bnNpZ25lZCBiYXNlLTEwIGludGVnZXIgdmFsdWUsIG1ha2luZyB0aGUgbmV3IHJlZmVyZW5jZWQgdmFsdWUgdGhlIGFycmF5IGVsZW1lbnQgd2l0aCB0aGUgemVyby1iYXNlZCBpbmRleGAsYE9QRVJBVElPTl9QQVRIX0lMTEVHQUxfQVJSQVlfSU5ERVhgLGEsdCxlKTtlbHNlIHN5KGYpJiYoZj1+fmYpO2lmKGw+PXUpe2lmKG4mJnQub3A9PT1gYWRkYCYmZj5jLmxlbmd0aCl0aHJvdyBuZXcgcHkoYFRoZSBzcGVjaWZpZWQgaW5kZXggTVVTVCBOT1QgYmUgZ3JlYXRlciB0aGFuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5YCxgT1BFUkFUSU9OX1ZBTFVFX09VVF9PRl9CT1VORFNgLGEsdCxlKTt2YXIgbz1xb2VbdC5vcF0uY2FsbCh0LGMsZixlKTtpZihvLnRlc3Q9PT0hMSl0aHJvdyBuZXcgcHkoYFRlc3Qgb3BlcmF0aW9uIGZhaWxlZGAsYFRFU1RfT1BFUkFUSU9OX0ZBSUxFRGAsYSx0LGUpO3JldHVybiBvfX1lbHNlIGlmKGw+PXUpe3ZhciBvPW15W3Qub3BdLmNhbGwodCxjLGYsZSk7aWYoby50ZXN0PT09ITEpdGhyb3cgbmV3IHB5KGBUZXN0IG9wZXJhdGlvbiBmYWlsZWRgLGBURVNUX09QRVJBVElPTl9GQUlMRURgLGEsdCxlKTtyZXR1cm4gb31pZihjPWNbZl0sbiYmbDx1JiYoIWN8fHR5cGVvZiBjIT1gb2JqZWN0YCkpdGhyb3cgbmV3IHB5KGBDYW5ub3QgcGVyZm9ybSBvcGVyYXRpb24gYXQgdGhlIGRlc2lyZWQgcGF0aGAsYE9QRVJBVElPTl9QQVRIX1VOUkVTT0xWQUJMRWAsYSx0LGUpfX19ZnVuY3Rpb24gX3koZSx0LG4scixpKXtpZihyPT09dm9pZCAwJiYocj0hMCksaT09PXZvaWQgMCYmKGk9ITApLG4mJiFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBweShgUGF0Y2ggc2VxdWVuY2UgbXVzdCBiZSBhbiBhcnJheWAsYFNFUVVFTkNFX05PVF9BTl9BUlJBWWApO3J8fChlPW95KGUpKTtmb3IodmFyIGE9QXJyYXkodC5sZW5ndGgpLG89MCxzPXQubGVuZ3RoO288cztvKyspYVtvXT1neShlLHRbb10sbiwhMCxpLG8pLGU9YVtvXS5uZXdEb2N1bWVudDtyZXR1cm4gYS5uZXdEb2N1bWVudD1lLGF9ZnVuY3Rpb24gSm9lKGUsdCxuKXt2YXIgcj1neShlLHQpO2lmKHIudGVzdD09PSExKXRocm93IG5ldyBweShgVGVzdCBvcGVyYXRpb24gZmFpbGVkYCxgVEVTVF9PUEVSQVRJT05fRkFJTEVEYCxuLHQsZSk7cmV0dXJuIHIubmV3RG9jdW1lbnR9ZnVuY3Rpb24gdnkoZSx0LG4scil7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZXx8QXJyYXkuaXNBcnJheShlKSl0aHJvdyBuZXcgcHkoYE9wZXJhdGlvbiBpcyBub3QgYW4gb2JqZWN0YCxgT1BFUkFUSU9OX05PVF9BTl9PQkpFQ1RgLHQsZSxuKTtpZighbXlbZS5vcF0pdGhyb3cgbmV3IHB5KCJPcGVyYXRpb24gYG9wYCBwcm9wZXJ0eSBpcyBub3Qgb25lIG9mIG9wZXJhdGlvbnMgZGVmaW5lZCBpbiBSRkMtNjkwMiIsYE9QRVJBVElPTl9PUF9JTlZBTElEYCx0LGUsbik7aWYodHlwZW9mIGUucGF0aCE9YHN0cmluZ2ApdGhyb3cgbmV3IHB5KCJPcGVyYXRpb24gYHBhdGhgIHByb3BlcnR5IGlzIG5vdCBhIHN0cmluZyIsYE9QRVJBVElPTl9QQVRIX0lOVkFMSURgLHQsZSxuKTtpZihlLnBhdGguaW5kZXhPZihgL2ApIT09MCYmZS5wYXRoLmxlbmd0aD4wKXRocm93IG5ldyBweSgnT3BlcmF0aW9uIGBwYXRoYCBwcm9wZXJ0eSBtdXN0IHN0YXJ0IHdpdGggIi8iJyxgT1BFUkFUSU9OX1BBVEhfSU5WQUxJRGAsdCxlLG4pO2lmKChlLm9wPT09YG1vdmVgfHxlLm9wPT09YGNvcHlgKSYmdHlwZW9mIGUuZnJvbSE9YHN0cmluZ2ApdGhyb3cgbmV3IHB5KCJPcGVyYXRpb24gYGZyb21gIHByb3BlcnR5IGlzIG5vdCBwcmVzZW50IChhcHBsaWNhYmxlIGluIGBtb3ZlYCBhbmQgYGNvcHlgIG9wZXJhdGlvbnMpIixgT1BFUkFUSU9OX0ZST01fUkVRVUlSRURgLHQsZSxuKTtpZigoZS5vcD09PWBhZGRgfHxlLm9wPT09YHJlcGxhY2VgfHxlLm9wPT09YHRlc3RgKSYmZS52YWx1ZT09PXZvaWQgMCl0aHJvdyBuZXcgcHkoIk9wZXJhdGlvbiBgdmFsdWVgIHByb3BlcnR5IGlzIG5vdCBwcmVzZW50IChhcHBsaWNhYmxlIGluIGBhZGRgLCBgcmVwbGFjZWAgYW5kIGB0ZXN0YCBvcGVyYXRpb25zKSIsYE9QRVJBVElPTl9WQUxVRV9SRVFVSVJFRGAsdCxlLG4pO2lmKChlLm9wPT09YGFkZGB8fGUub3A9PT1gcmVwbGFjZWB8fGUub3A9PT1gdGVzdGApJiZ1eShlLnZhbHVlKSl0aHJvdyBuZXcgcHkoIk9wZXJhdGlvbiBgdmFsdWVgIHByb3BlcnR5IGlzIG5vdCBwcmVzZW50IChhcHBsaWNhYmxlIGluIGBhZGRgLCBgcmVwbGFjZWAgYW5kIGB0ZXN0YCBvcGVyYXRpb25zKSIsYE9QRVJBVElPTl9WQUxVRV9DQU5OT1RfQ09OVEFJTl9VTkRFRklORURgLHQsZSxuKTtpZihuKXtpZihlLm9wPT1gYWRkYCl7dmFyIGk9ZS5wYXRoLnNwbGl0KGAvYCkubGVuZ3RoLGE9ci5zcGxpdChgL2ApLmxlbmd0aDtpZihpIT09YSsxJiZpIT09YSl0aHJvdyBuZXcgcHkoIkNhbm5vdCBwZXJmb3JtIGFuIGBhZGRgIG9wZXJhdGlvbiBhdCB0aGUgZGVzaXJlZCBwYXRoIixgT1BFUkFUSU9OX1BBVEhfQ0FOTk9UX0FERGAsdCxlLG4pfWVsc2UgaWYoZS5vcD09PWByZXBsYWNlYHx8ZS5vcD09PWByZW1vdmVgfHxlLm9wPT09YF9nZXRgKXtpZihlLnBhdGghPT1yKXRocm93IG5ldyBweShgQ2Fubm90IHBlcmZvcm0gdGhlIG9wZXJhdGlvbiBhdCBhIHBhdGggdGhhdCBkb2VzIG5vdCBleGlzdGAsYE9QRVJBVElPTl9QQVRIX1VOUkVTT0xWQUJMRWAsdCxlLG4pfWVsc2UgaWYoZS5vcD09PWBtb3ZlYHx8ZS5vcD09PWBjb3B5YCl7dmFyIG89eXkoW3tvcDpgX2dldGAscGF0aDplLmZyb20sdmFsdWU6dm9pZCAwfV0sbik7aWYobyYmby5uYW1lPT09YE9QRVJBVElPTl9QQVRIX1VOUkVTT0xWQUJMRWApdGhyb3cgbmV3IHB5KGBDYW5ub3QgcGVyZm9ybSB0aGUgb3BlcmF0aW9uIGZyb20gYSBwYXRoIHRoYXQgZG9lcyBub3QgZXhpc3RgLGBPUEVSQVRJT05fRlJPTV9VTlJFU09MVkFCTEVgLHQsZSxuKX19fWZ1bmN0aW9uIHl5KGUsdCxuKXt0cnl7aWYoIUFycmF5LmlzQXJyYXkoZSkpdGhyb3cgbmV3IHB5KGBQYXRjaCBzZXF1ZW5jZSBtdXN0IGJlIGFuIGFycmF5YCxgU0VRVUVOQ0VfTk9UX0FOX0FSUkFZYCk7aWYodClfeShveSh0KSxveShlKSxufHwhMCk7ZWxzZXtuPW58fHZ5O2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKW4oZVtyXSxyLHQsdm9pZCAwKX19Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIHB5KXJldHVybiBlO3Rocm93IGV9fWZ1bmN0aW9uIGJ5KGUsdCl7aWYoZT09PXQpcmV0dXJuITA7aWYoZSYmdCYmdHlwZW9mIGU9PWBvYmplY3RgJiZ0eXBlb2YgdD09YG9iamVjdGApe3ZhciBuPUFycmF5LmlzQXJyYXkoZSkscj1BcnJheS5pc0FycmF5KHQpLGksYSxvO2lmKG4mJnIpe2lmKGE9ZS5sZW5ndGgsYSE9dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGk9YTtpLS0hPT0wOylpZighYnkoZVtpXSx0W2ldKSlyZXR1cm4hMTtyZXR1cm4hMH1pZihuIT1yKXJldHVybiExO3ZhciBzPU9iamVjdC5rZXlzKGUpO2lmKGE9cy5sZW5ndGgsYSE9PU9iamVjdC5rZXlzKHQpLmxlbmd0aClyZXR1cm4hMTtmb3IoaT1hO2ktLSE9PTA7KWlmKCF0Lmhhc093blByb3BlcnR5KHNbaV0pKXJldHVybiExO2ZvcihpPWE7aS0tIT09MDspaWYobz1zW2ldLCFieShlW29dLHRbb10pKXJldHVybiExO3JldHVybiEwfXJldHVybiBlIT09ZSYmdCE9PXR9dmFyIFlvZT1jKHtjb21wYXJlOigpPT5yc2UsZ2VuZXJhdGU6KCk9PlN5LG9ic2VydmU6KCk9Pm5zZSx1bm9ic2VydmU6KCk9PnRzZX0pLHh5PW5ldyBXZWFrTWFwLFhvZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5vYnNlcnZlcnM9bmV3IE1hcCx0aGlzLm9iaj1lfXJldHVybiBlfSgpLFpvZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXt0aGlzLmNhbGxiYWNrPWUsdGhpcy5vYnNlcnZlcj10fXJldHVybiBlfSgpO2Z1bmN0aW9uIFFvZShlKXtyZXR1cm4geHkuZ2V0KGUpfWZ1bmN0aW9uICRvZShlLHQpe3JldHVybiBlLm9ic2VydmVycy5nZXQodCl9ZnVuY3Rpb24gZXNlKGUsdCl7ZS5vYnNlcnZlcnMuZGVsZXRlKHQuY2FsbGJhY2spfWZ1bmN0aW9uIHRzZShlLHQpe3QudW5vYnNlcnZlKCl9ZnVuY3Rpb24gbnNlKGUsdCl7dmFyIG49W10scixpPVFvZShlKTtpZighaSlpPW5ldyBYb2UoZSkseHkuc2V0KGUsaSk7ZWxzZXt2YXIgYT0kb2UoaSx0KTtyPWEmJmEub2JzZXJ2ZXJ9aWYocilyZXR1cm4gcjtpZihyPXt9LGkudmFsdWU9b3koZSksdCl7ci5jYWxsYmFjaz10LHIubmV4dD1udWxsO3ZhciBvPWZ1bmN0aW9uKCl7U3kocil9LHM9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoci5uZXh0KSxyLm5leHQ9c2V0VGltZW91dChvKX07dHlwZW9mIHdpbmRvdzxgdWAmJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgbW91c2V1cGAscyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYGtleXVwYCxzKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgbW91c2Vkb3duYCxzKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihga2V5ZG93bmAscyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYGNoYW5nZWAscykpfXJldHVybiByLnBhdGNoZXM9bixyLm9iamVjdD1lLHIudW5vYnNlcnZlPWZ1bmN0aW9uKCl7U3kociksY2xlYXJUaW1lb3V0KHIubmV4dCksZXNlKGksciksdHlwZW9mIHdpbmRvdzxgdWAmJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihgbW91c2V1cGAscyksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoYGtleXVwYCxzKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihgbW91c2Vkb3duYCxzKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihga2V5ZG93bmAscyksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoYGNoYW5nZWAscykpfSxpLm9ic2VydmVycy5zZXQodCxuZXcgWm9lKHQscikpLHJ9ZnVuY3Rpb24gU3koZSx0KXt0PT09dm9pZCAwJiYodD0hMSk7dmFyIG49eHkuZ2V0KGUub2JqZWN0KTtDeShuLnZhbHVlLGUub2JqZWN0LGUucGF0Y2hlcyxgYCx0KSxlLnBhdGNoZXMubGVuZ3RoJiZfeShuLnZhbHVlLGUucGF0Y2hlcyk7dmFyIHI9ZS5wYXRjaGVzO3JldHVybiByLmxlbmd0aD4wJiYoZS5wYXRjaGVzPVtdLGUuY2FsbGJhY2smJmUuY2FsbGJhY2socikpLHJ9ZnVuY3Rpb24gQ3koZSx0LG4scixpKXtpZih0IT09ZSl7dHlwZW9mIHQudG9KU09OPT1gZnVuY3Rpb25gJiYodD10LnRvSlNPTigpKTtmb3IodmFyIGE9YXkodCksbz1heShlKSxzPSExLGM9by5sZW5ndGgtMTtjPj0wO2MtLSl7dmFyIGw9b1tjXSx1PWVbbF07aWYoaXkodCxsKSYmISh0W2xdPT09dm9pZCAwJiZ1IT09dm9pZCAwJiZBcnJheS5pc0FycmF5KHQpPT09ITEpKXt2YXIgZD10W2xdO3R5cGVvZiB1PT1gb2JqZWN0YCYmdSYmdHlwZW9mIGQ9PWBvYmplY3RgJiZkJiZBcnJheS5pc0FycmF5KHUpPT09QXJyYXkuaXNBcnJheShkKT9DeSh1LGQsbixyK2AvYCtjeShsKSxpKTp1IT09ZCYmKGkmJm4ucHVzaCh7b3A6YHRlc3RgLHBhdGg6citgL2ArY3kobCksdmFsdWU6b3kodSl9KSxuLnB1c2goe29wOmByZXBsYWNlYCxwYXRoOnIrYC9gK2N5KGwpLHZhbHVlOm95KGQpfSkpfWVsc2UgQXJyYXkuaXNBcnJheShlKT09PUFycmF5LmlzQXJyYXkodCk/KGkmJm4ucHVzaCh7b3A6YHRlc3RgLHBhdGg6citgL2ArY3kobCksdmFsdWU6b3kodSl9KSxuLnB1c2goe29wOmByZW1vdmVgLHBhdGg6citgL2ArY3kobCl9KSxzPSEwKTooaSYmbi5wdXNoKHtvcDpgdGVzdGAscGF0aDpyLHZhbHVlOmV9KSxuLnB1c2goe29wOmByZXBsYWNlYCxwYXRoOnIsdmFsdWU6dH0pKX1pZighKCFzJiZhLmxlbmd0aD09by5sZW5ndGgpKWZvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgbD1hW2NdOyFpeShlLGwpJiZ0W2xdIT09dm9pZCAwJiZuLnB1c2goe29wOmBhZGRgLHBhdGg6citgL2ArY3kobCksdmFsdWU6b3kodFtsXSl9KX19fWZ1bmN0aW9uIHJzZShlLHQsbil7bj09PXZvaWQgMCYmKG49ITEpO3ZhciByPVtdO3JldHVybiBDeShlLHQscixgYCxuKSxyfU9iamVjdC5hc3NpZ24oe30sR29lLFlvZSx7SnNvblBhdGNoRXJyb3I6ZnksZGVlcENsb25lOm95LGVzY2FwZVBhdGhDb21wb25lbnQ6Y3ksdW5lc2NhcGVQYXRoQ29tcG9uZW50Omx5fSk7dmFyIHd5OyhmdW5jdGlvbihlKXtlLmNvdW50PWBjb3VudGAsZS5yYXRlPWByYXRlYCxlLmdhdWdlPWBnYXVnZWAsZS5kaXN0cmlidXRpb249YGRpc3RyaWJ1dGlvbmAsZS5oaXN0b2dyYW09YGhpc3RvZ3JhbWB9KSh3eXx8KHd5PXt9KSk7dmFyIFR5O2Z1bmN0aW9uIGlzZShlKXtUeT1lfWZ1bmN0aW9uIEV5KGUpe2lmKCFUeSlyZXR1cm47bGV0IHQ7dHJ5e3R5cGVvZiB3aW5kb3c8YHVgJiYodD13aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykpfWNhdGNoe310P3QoVHkuYmluZChudWxsLGUpKTpUeShlKX12YXIgYXNlPVN5bWJvbC50b1N0cmluZ1RhZyxEeT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucmVzb2x2ZT12b2lkIDAsdGhpcy5yZWplY3Q9dm9pZCAwLHRoaXMudGhlbj12b2lkIDAsdGhpcy5jYXRjaD12b2lkIDAsdGhpcy5maW5hbGx5PXZvaWQgMCx0aGlzW2FzZV09dm9pZCAwLHRoaXMuX3Byb21pc2U9dm9pZCAwLHRoaXMuX3Byb21pc2U9bmV3IFByb21pc2UoKGUsdCk9Pnt0aGlzLnJlc29sdmU9ZSx0aGlzLnJlamVjdD10fSksdGhpcy50aGVuPXRoaXMuX3Byb21pc2UudGhlbi5iaW5kKHRoaXMuX3Byb21pc2UpLHRoaXMuY2F0Y2g9dGhpcy5fcHJvbWlzZS5jYXRjaC5iaW5kKHRoaXMuX3Byb21pc2UpLHRoaXMuZmluYWxseT10aGlzLl9wcm9taXNlLmZpbmFsbHkuYmluZCh0aGlzLl9wcm9taXNlKSx0aGlzW1N5bWJvbC50b1N0cmluZ1RhZ109YERlZmVycmVkUHJvbWlzZWB9fTtmdW5jdGlvbiBPeShlLHQpe3JldHVybiBsc2UoZSl8fGNzZShlLHQpfHxzc2UoZSx0KXx8b3NlKCl9ZnVuY3Rpb24gb3NlKCl7dGhyb3cgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gc3NlKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBreShlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihuPT09YE9iamVjdGAmJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksbj09PWBNYXBgfHxuPT09YFNldGApcmV0dXJuIEFycmF5LmZyb20oZSk7aWYobj09PWBBcmd1bWVudHNgfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4ga3koZSx0KX19ZnVuY3Rpb24ga3koZSx0KXsodD09bnVsbHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIGNzZShlLHQpe3ZhciBuPWU9PW51bGw/bnVsbDp0eXBlb2YgU3ltYm9sPGB1YCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW2BAQGl0ZXJhdG9yYF07aWYobiE9bnVsbCl7dmFyIHIsaSxhLG8scz1bXSxjPSEwLGw9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LHQ9PT0wKXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKHMucHVzaChyLnZhbHVlKSxzLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXtsPSEwLGk9ZX1maW5hbGx5e3RyeXtpZighYyYmbi5yZXR1cm4hPW51bGwmJihvPW4ucmV0dXJuKCksT2JqZWN0KG8pIT09bykpcmV0dXJufWZpbmFsbHl7aWYobCl0aHJvdyBpfX1yZXR1cm4gc319ZnVuY3Rpb24gbHNlKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9ZnVuY3Rpb24gQXkoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBqeShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9BeShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7dXNlKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOkF5KE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiB1c2UoZSx0LG4pe3JldHVybiB0PWRzZSh0KSx0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIGRzZShlKXt2YXIgdD1mc2UoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OlN0cmluZyh0KX1mdW5jdGlvbiBmc2UoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX12YXIgTXk9e0NPTk5FQ1RJT05fSU5JVF9DT1VOVDpgc3NlX2Nvbm5lY3Rpb25faW5pdF9jb3VudGAsVElNRV9UT19FU1RBQkxJU0hfQ09OTkVDVElPTjpgc3NlX3RpbWVfdG9fZXN0YWJsaXNoX2Nvbm5lY3Rpb25gLENPTk5FQ1RJT05fT1BFTl9DT1VOVDpgc3NlX2Nvbm5lY3Rpb25fb3Blbl9jb3VudGAsVElNRV9UT19GSVJTVF9TTkFQU0hPVDpgc3NlX3RpbWVfdG9fZmlyc3Rfc25hcHNob3RgLENPTlRFTlRfTEVOR1RIOmBzc2VfY29udGVudF9sZW5ndGhgLENPTk5FQ1RJT05fQ0xPU0VEX0NPVU5UOmBzc2VfY29ubmVjdGlvbl9jbG9zZWRfY291bnRgLENPTk5FQ1RJT05fRVJST1JfQ09VTlQ6YHNzZV9jb25uZWN0aW9uX2Vycm9yX2NvdW50YCxDT05ORUNUSU9OX1RJTUVPVVRfQUJPUlQ6YHNzZV9jb25uZWN0aW9uX3RpbWVvdXRfYWJvcnRgLFNUUkVBTV9ET05FX0NPVU5UOmBzc2Vfc3RyZWFtX2RvbmVfY291bnRgLFNUQUxFX0RBVEE6YHNzZV9zdGFsZV9kYXRhYCxUSU1FX1RPX0RFRVBfQ0xPTkU6YHNzZV90aW1lX3RvX2RlZXBfY2xvbmVgLFJFQ09OTkVDVDpgc3NlX3JlY29ubmVjdGB9O2Z1bmN0aW9uIE55KGUsdCxuKXtsZXQgcj1EYXRlLm5vdygpLGk9b3kodCksYT1EYXRlLm5vdygpLXI7cmV0dXJuIEV5KHttZXRyaWNOYW1lOk15LlRJTUVfVE9fREVFUF9DTE9ORSxtZXRyaWNUeXBlOnd5LmRpc3RyaWJ1dGlvbix2YWx1ZTphLHRhZ3M6e3N0cmVhbV9uYW1lOmV9fSksaX12YXIgUHk9MWUzLHBzZT1QeSxtc2U9UHkqMTYsaHNlPVB5KjIwLGdzZT1QeSoxMCxGeT17VElNRV9UT19FU1RBQkxJU0hfQ09OTkVDVElPTjpgc3NlX3RpbWVfdG9fZXN0YWJsaXNoX2Nvbm5lY3Rpb25gLENPTk5FQ1RJT05fT1BFTjpgc3NlX2Nvbm5lY3Rpb25fb3BlbmAsVElNRV9UT19GSVJTVF9TTkFQU0hPVDpgc3NlX3RpbWVfdG9fZmlyc3Rfc25hcHNob3RgLENPTlRFTlRfTEVOR1RIOmBzc2VfY29udGVudF9sZW5ndGhgLENPTk5FQ1RJT05fQ0xPU0VEOmBzc2VfY29ubmVjdGlvbl9jbG9zZWRgLENPTk5FQ1RJT05fRVJST1I6YHNzZV9jb25uZWN0aW9uX2Vycm9yYCxTVEFMRV9EQVRBOmBzc2Vfc3RhbGVfZGF0YWB9LF9zZT1jbGFzc3tnZXQgZGF0YSgpe3JldHVybiB0aGlzLl9kYXRhfWdldCBsYXN0VXBkYXRlZCgpe3JldHVybiB0aGlzLl9sYXN0VXBkYXRlZH1nZXQgbnVtU3Vic2NyaWJlcnMoKXtyZXR1cm4gdGhpcy5fc3Vic2NyaWJlcnMuc2l6ZX1nZXQgZGF0YVNuYXBzaG90KCl7bGV0IGU9dGhpcy5fZGF0YSx0PXRoaXMuX2xhc3RVcGRhdGVkO2lmKGUpcmV0dXJuIHRoaXMuX2N1cnJlbnRTbmFwc2hvdHx8KHRoaXMuX2N1cnJlbnRTbmFwc2hvdD1lIGluc3RhbmNlb2YgRXJyb3I/ZTp7ZGF0YTpOeSh0aGlzLnN0cmVhbU5hbWUsZSx0aGlzLmRhdGEpLGxhc3RVcGRhdGVkOnQ/P0RhdGUubm93KCl9KSx0aGlzLl9jdXJyZW50U25hcHNob3R9Z2V0IGxhc3RIZWFydGJlYXRUaW1lc3RhbXAoKXtyZXR1cm4gdGhpcy5fbGFzdEhlYXJ0YmVhdFRpbWVzdGFtcH1nZXQgaXNMb2FkaW5nKCl7cmV0dXJuKCF0aGlzLmRhdGF8fHRoaXMuX2lzU3RhbGUpJiYhIXRoaXMuX2V2ZW50U291cmNlfWdldCBpc0FwcFZpc2libGUoKXtyZXR1cm4gdGhpcy5fbm90VmlzaWJsZVRpbWVzdGFtcD09PXZvaWQgMH1jb25zdHJ1Y3Rvcih7dXJsOmUsc3RyZWFtTmFtZTp0LGNsb3NlVW51c2VkQ29ubmVjdGlvbkFmdGVyTXM6bj01MDAscGF1c2VBZnRlck5vdFZpc2libGVGb3JNczpyPTYwKjFlMyxtYXhNaXNzaW5nSGVhcnRiZWF0SW50ZXJ2YWxNczppPW1zZSxtYXJrQXNTdGFsZUFmdGVyTXM6YT1oc2UsbWF4Q29ubmVjdGlvblRpbWVvdXRNczpvPWdzZSxhZGRpdGlvbmFsSGVhZGVyczpzLGNvbnRleHQ6Y30pe2lmKHRoaXMudXJsPXZvaWQgMCx0aGlzLnN0cmVhbU5hbWU9dm9pZCAwLHRoaXMuX2xhc3RVcGRhdGVkPXZvaWQgMCx0aGlzLl9kYXRhPXZvaWQgMCx0aGlzLl9sYXN0U2VudE1ldHJpY1RpbWVzdGFtcD12b2lkIDAsdGhpcy5fY2xvc2VVbnVzZWRDb25uZWN0aW9uQWZ0ZXJNcz12b2lkIDAsdGhpcy5fcGF1c2VBZnRlck5vdFZpc2libGVGb3JNcz12b2lkIDAsdGhpcy5fbWF4TWlzc2luZ0hlYXJ0YmVhdEludGVydmFsTXM9dm9pZCAwLHRoaXMuX21hcmtBc1N0YWxlQWZ0ZXJNcz12b2lkIDAsdGhpcy5fbWF4Q29ubmVjdGlvblRpbWVvdXRNcz12b2lkIDAsdGhpcy5fY29udGV4dD12b2lkIDAsdGhpcy5fc3Vic2NyaWJlcnM9bmV3IFNldCx0aGlzLl9ub1N1YnNjcmliZXJzVGltZXN0YW1wPURhdGUubm93KCksdGhpcy5fcGFnZVZpc2libGU9ITAsdGhpcy5fY3JlYXRlZEF0PURhdGUubm93KCksdGhpcy5fZXZlbnRTb3VyY2U9dm9pZCAwLHRoaXMuX2RlZmVycmVkTG9hZD1uZXcgRHksdGhpcy5fdXBkYXRlRGVmZXJyZWQ9dm9pZCAwLHRoaXMuX25vdFZpc2libGVUaW1lc3RhbXA9S3YoKT92b2lkIDA6RGF0ZS5ub3coKSx0aGlzLl9sYXN0SGVhcnRiZWF0VGltZXN0YW1wPXZvaWQgMCx0aGlzLl9sYXN0TWVzc2FnZVRpbWVzdGFtcD12b2lkIDAsdGhpcy5fZXZlbnRTb3VyY2VDcmVhdGVkVGltZXM9MCx0aGlzLl9jdXJyZW50U25hcHNob3Q9dm9pZCAwLHRoaXMuX2lzU3RhbGU9dm9pZCAwLHRoaXMuX21heE9wZW5Db25uZWN0aW9uVGltZW91dD12b2lkIDAsdGhpcy5fbWlzc2luZ0hlYXJ0YmVhdFJlY29ubmVjdFRpbWVvdXQ9dm9pZCAwLHRoaXMuX21pc3NpbmdIZWFydGJlYXRTZXRTdGFsZVRpbWVvdXQ9dm9pZCAwLHRoaXMuX2NsZWFudXBUaW1lb3V0PXZvaWQgMCx0aGlzLl9zdG9wV2F0Y2hpbmdQYWdlVmlzaWJpbGl0eT12b2lkIDAsdGhpcy5fc3RhcnRXYXRjaGluZ1BhZ2VWaXNpYmlsaXR5PSgpPT57aWYodGhpcy5fc3RvcFdhdGNoaW5nUGFnZVZpc2liaWxpdHkpcmV0dXJuO2xldCBlPXF2KGU9PntlPyh0aGlzLl9wYWdlVmlzaWJsZT0hMCx0aGlzLl9ub3RWaXNpYmxlVGltZXN0YW1wPXZvaWQgMCx0aGlzLl9vcGVuKCkpOih0aGlzLl9wYWdlVmlzaWJsZT0hMSx0aGlzLl9ub3RWaXNpYmxlVGltZXN0YW1wPXRoaXMuX25vdFZpc2libGVUaW1lc3RhbXA/P0RhdGUubm93KCksdGhpcy5fc3Vic2NyaWJlcnMuc2l6ZSx0aGlzLl9zY2hlZHVsZUNsZWFudXAoKSl9KTt0aGlzLl9zdG9wV2F0Y2hpbmdQYWdlVmlzaWJpbGl0eT1lfSx0aGlzLl9oYW5kbGVTbmFwc2hvdE1lc3NhZ2U9ZT0+e2xldCB0PWV5KGUpOygwLHJ5LmRlZmF1bHQpKHRoaXMuX2RhdGEsdCl8fCh0aGlzLl9kYXRhPXQsdGhpcy5fY3VycmVudFNuYXBzaG90PXZvaWQgMCx0aGlzLl9ub3RpZnlTdWJzY3JpYmVycyh7ZXZlbnRUeXBlOmBzbmFwc2hvdGAsZGF0YTp0fSkpLHRoaXMuX2xhc3RVcGRhdGVkPURhdGUubm93KCksdGhpcy5fZGVmZXJyZWRMb2FkLnJlc29sdmUodm9pZCAwKX0sdGhpcy5faGFuZGxlUGF0Y2hNZXNzYWdlPWU9PntpZihlLmxlbmd0aCl0cnl7dmFyIHQ7aWYoIXRoaXMuX2RhdGEpdGhyb3cgRXJyb3IoYFJlY2VpdmVkIGEgcGF0Y2ggd2l0aG91dCBhIGN1cnJlbnQgc25hcHNob3QgKCR7dGhpcy51cmx9KWApO2ZvcihsZXQgdCBvZiBlKSh0Lm9wPT09YGFkZGB8fHQub3A9PT1gcmVwbGFjZWApJiYodC52YWx1ZT1leSh0LnZhbHVlKSksdC5wYXRoPSR2KHQucGF0aCk7X3kodGhpcy5fZGF0YSxlLCEwKTtsZXQgbj10aGlzLl9jdXJyZW50U25hcHNob3QgaW5zdGFuY2VvZiBFcnJvcnx8KHQ9dGhpcy5fY3VycmVudFNuYXBzaG90KT09bnVsbD92b2lkIDA6dC5kYXRhLHI9dGhpcy5fZGF0YSBpbnN0YW5jZW9mIEVycm9yP3ZvaWQgMDp0aGlzLl9kYXRhO3RoaXMuX2xhc3RVcGRhdGVkPURhdGUubm93KCksKDAscnkuZGVmYXVsdCkodGhpcy5fZGF0YSxuKXx8KHRoaXMuX2N1cnJlbnRTbmFwc2hvdD12b2lkIDAsdGhpcy5fbm90aWZ5U3Vic2NyaWJlcnMoe2V2ZW50VHlwZTpgcGF0Y2hgLGRhdGE6cixwYXRjaGVzOmV9KSl9Y2F0Y2goZSl7ZSBpbnN0YW5jZW9mIEVycm9yJiZYdih7ZXJyb3I6ZSxtZXRhZGF0YTp7dXJsOnRoaXMudXJsfX0pfX0sdGhpcy5faGFuZGxlSGVhcnRiZWF0PSgpPT57dGhpcy5fbGFzdEhlYXJ0YmVhdFRpbWVzdGFtcD1EYXRlLm5vdygpfSx0aGlzLl9oYW5kbGVNZXNzYWdlPSgpPT57dGhpcy5fbGFzdE1lc3NhZ2VUaW1lc3RhbXA9RGF0ZS5ub3coKSx0aGlzLl9jaGVja01pc3NpbmdIZWFydGJlYXQoKSx0aGlzLl9zY2hlZHVsZUhlYXJ0YmVhdFJlY29ubmVjdENoZWNrKCl9LHRoaXMuX2xvZ01ldHJpYz0oZSx0LG4scik9PntFeSh7bWV0cmljTmFtZTplLG1ldHJpY1R5cGU6dCx2YWx1ZTpuLHRhZ3M6ankoankoe3N0cmVhbV9uYW1lOnRoaXMuc3RyZWFtTmFtZX0sciksdGhpcy5fY29udGV4dCYme2NvbnRleHQ6dGhpcy5fY29udGV4dH0pfSl9LHRoaXMuX2hhbmRsZUNvbm5lY3Rpb25PcGVuTWV0cmljPWU9Pnt2YXIgdCxuO2xldCByPURhdGUubm93KCktZSxpPSgodD1uYXZpZ2F0b3IpPT1udWxsfHwodD10LmNvbm5lY3Rpb24pPT1udWxsP3ZvaWQgMDp0LmVmZmVjdGl2ZVR5cGUpPz9gdW5kZWZpbmVkYCxhPShuPW5hdmlnYXRvcik9PW51bGx8fChuPW4uY29ubmVjdGlvbik9PW51bGw/dm9pZCAwOm4uZG93bmxpbmssbz1hPT1udWxsP3ZvaWQgMDpNYXRoLmZsb29yKGEpO3RoaXMuX2xvZ01ldHJpYyhGeS5USU1FX1RPX0VTVEFCTElTSF9DT05ORUNUSU9OLHd5LmRpc3RyaWJ1dGlvbixyLHtkb3dubGluazpTdHJpbmcobyl9KSx0aGlzLl9sb2dNZXRyaWMoRnkuQ09OTkVDVElPTl9PUEVOLHd5LmNvdW50LDEse2Nvbm5lY3Rpb25fdHlwZTppfSl9LHRoaXMuX2hhbmRsZUZpcnN0U25hcHNob3RNZXRyaWM9KGUsdCk9PntpZighdGhpcy5pc0FwcFZpc2libGUpcmV0dXJuO2xldCBuPURhdGUubm93KCktdDt0aGlzLl9sb2dNZXRyaWMoRnkuVElNRV9UT19GSVJTVF9TTkFQU0hPVCx3eS5kaXN0cmlidXRpb24sbiksdGhpcy5fbG9nTWV0cmljKEZ5LkNPTlRFTlRfTEVOR1RILHd5LmRpc3RyaWJ1dGlvbixlLHtzdHJlYW1fbWVzc2FnZV90eXBlOmBzbmFwc2hvdGB9KX0sdGhpcy5faGFuZGxlTWVzc2FnZU1ldHJpYz0oZSx0KT0+e2xldCBuPURhdGUubm93KCkscj10aGlzLl9sYXN0U2VudE1ldHJpY1RpbWVzdGFtcDshdGhpcy5pc0FwcFZpc2libGV8fHImJm4tcjxwc2V8fCh0aGlzLl9sYXN0U2VudE1ldHJpY1RpbWVzdGFtcD1EYXRlLm5vdygpLHRoaXMuX2xvZ01ldHJpYyhGeS5DT05URU5UX0xFTkdUSCx3eS5kaXN0cmlidXRpb24sdCx7c3RyZWFtX21lc3NhZ2VfdHlwZTplfSkpfSx0aGlzLl9oYW5kbGVDb25uZWN0aW9uQ2xvc2VNZXRyaWM9ZT0+e3ZhciB0O2xldCBuPSgodD1uYXZpZ2F0b3IpPT1udWxsfHwodD10LmNvbm5lY3Rpb24pPT1udWxsP3ZvaWQgMDp0LmVmZmVjdGl2ZVR5cGUpPz9gdW5kZWZpbmVkYDt0aGlzLl9sb2dNZXRyaWMoRnkuQ09OTkVDVElPTl9DTE9TRUQsd3kuY291bnQsMSx7c3RyZWFtX2Nsb3NpbmdfcmVhc29uOmUsY29ubmVjdGlvbl90eXBlOm59KX0sdGhpcy5fZ2V0SXNPbmxpbmVNZXRyaWNWYWx1ZT0oKT0+e2xldCBlPVZ2KCk7cmV0dXJuIGU9PT12b2lkIDA/YG4vYWA6ZT9gdHJ1ZWA6YGZhbHNlYH0sdGhpcy5faGFuZGxlQ29ubmVjdGlvbkVycm9yTWV0cmljPSgpPT57dGhpcy5fbG9nTWV0cmljKEZ5LkNPTk5FQ1RJT05fRVJST1Isd3kuY291bnQsMSx7aXNfb25saW5lOnRoaXMuX2dldElzT25saW5lTWV0cmljVmFsdWUoKX0pfSx0aGlzLl9yZWNvbm5lY3Q9KCk9Pnt2YXIgZTsoZT10aGlzLl9ldmVudFNvdXJjZSk9PW51bGx8fGUuY2xvc2UoKSx0aGlzLl9ldmVudFNvdXJjZT12b2lkIDAsdGhpcy5fb3BlbigpfSx0aGlzLl9vcGVuPWFzeW5jKCk9PntpZihhd2FpdCBVdigpLHRoaXMuX2V2ZW50U291cmNlKXJldHVybjt0aGlzLl9ldmVudFNvdXJjZT1uZXcgRXZlbnRTb3VyY2UodGhpcy51cmwse3dpdGhDcmVkZW50aWFsczohMH0pLHRoaXMuX2V2ZW50U291cmNlQ3JlYXRlZFRpbWVzKz0xO2xldCBlPURhdGUubm93KCk7dGhpcy5fZXZlbnRTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihgbWVzc2FnZWAsKHtkYXRhOnR9KT0+e2xldCBuPUpTT04ucGFyc2UodCk7dGhpcy5faGFuZGxlTWVzc2FnZSgpLGBzbmFwc2hvdGBpbiBuLnJlc3VsdD8oIXRoaXMuX2RhdGEmJnRoaXMuaXNBcHBWaXNpYmxlP3RoaXMuX2hhbmRsZUZpcnN0U25hcHNob3RNZXRyaWModC5sZW5ndGgsZSk6dGhpcy5faGFuZGxlTWVzc2FnZU1ldHJpYyhgc25hcHNob3RgLHQubGVuZ3RoKSx0aGlzLl9oYW5kbGVTbmFwc2hvdE1lc3NhZ2Uobi5yZXN1bHQuc25hcHNob3QpKTpgcGF0Y2hgaW4gbi5yZXN1bHQ/KHRoaXMuX2hhbmRsZVBhdGNoTWVzc2FnZShuLnJlc3VsdC5wYXRjaC5vcGVyYXRpb25zKSx0aGlzLl9oYW5kbGVNZXNzYWdlTWV0cmljKGBwYXRjaGAsdC5sZW5ndGgpKTpuLnJlc3VsdC5oZWFydGJlYXQmJnRoaXMuX2hhbmRsZUhlYXJ0YmVhdCgpfSksdGhpcy5fZXZlbnRTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihgZXJyb3JgLCgpPT57KHt9KS5ERVRBSUxFRF9FUlJPUlM9PT1gZW5hYmxlZGAmJlh2KHtlcnJvcjpuZXcgZW0oe3N0YXR1czo0MDAsaGVhZGVyczpuZXcgSGVhZGVyc30se21lc3NhZ2U6YEVycm9yIG9uIHN0cmVhbWluZyByZXNvdXJjZS5gfSksbWV0YWRhdGE6e3VybDp0aGlzLnVybH19KSx0aGlzLl9oYW5kbGVDb25uZWN0aW9uRXJyb3JNZXRyaWMoKX0pO3RyeXthd2FpdCBuZXcgUHJvbWlzZSgodCxuKT0+e3ZhciByO2xldCBpPSgpPT57dmFyIG47dGhpcy5fbWF4T3BlbkNvbm5lY3Rpb25UaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fbWF4T3BlbkNvbm5lY3Rpb25UaW1lb3V0KSwobj10aGlzLl9ldmVudFNvdXJjZSk9PW51bGx8fG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihgb3BlbmAsaSksdGhpcy5faGFuZGxlQ29ubmVjdGlvbk9wZW5NZXRyaWMoZSksdGhpcy5fc2NoZWR1bGVJc1N0YWxlQ2hlY2soKSx0KCl9O3RoaXMuX21heE9wZW5Db25uZWN0aW9uVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dmFyIGU7dGhpcy5fbWF4T3BlbkNvbm5lY3Rpb25UaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fbWF4T3BlbkNvbm5lY3Rpb25UaW1lb3V0KSwoZT10aGlzLl9ldmVudFNvdXJjZSk9PW51bGx8fGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgb3BlbmAsaSksbih7ZXJyb3I6bmV3IHNtKHttZXNzYWdlOmBDb25uZWN0aW9uIHRpbWVvdXQgcmVhY2hlZCBmb3IgdXJsOiAke3RoaXMudXJsfS5gfSksbWV0YWRhdGE6e3VybDp0aGlzLnVybH19KX0sdGhpcy5fbWF4Q29ubmVjdGlvblRpbWVvdXRNcyksKHI9dGhpcy5fZXZlbnRTb3VyY2UpPT1udWxsfHxyLmFkZEV2ZW50TGlzdGVuZXIoYG9wZW5gLGkpfSl9Y2F0Y2goZSl7ZSBpbnN0YW5jZW9mIEVycm9yJiZYdih7ZXJyb3I6ZX0pLHRoaXMuX3BhZ2VWaXNpYmxlJiZ0aGlzLl9yZWNvbm5lY3QoKX10aGlzLl9zY2hlZHVsZUhlYXJ0YmVhdFJlY29ubmVjdENoZWNrKCl9LHRoaXMuX3NjaGVkdWxlQ2xlYW51cD0oKT0+e2lmKHRoaXMuX2NsZWFudXBUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fY2xlYW51cFRpbWVvdXQpLCF0aGlzLl9ldmVudFNvdXJjZSlyZXR1cm47bGV0IGU9RGF0ZS5ub3coKSx0PXRoaXMuX25vU3Vic2NyaWJlcnNUaW1lc3RhbXA/ZS10aGlzLl9ub1N1YnNjcmliZXJzVGltZXN0YW1wOnZvaWQgMCxuPXRoaXMuX25vdFZpc2libGVUaW1lc3RhbXA/ZS10aGlzLl9ub3RWaXNpYmxlVGltZXN0YW1wOnZvaWQgMDtpZih0PT09dm9pZCAwJiZuPT09dm9pZCAwKXJldHVybjtsZXQgcj1NYXRoLm1pbih0PT09dm9pZCAwPzIqKjUzLTE6dGhpcy5fY2xvc2VVbnVzZWRDb25uZWN0aW9uQWZ0ZXJNcy10LG49PT12b2lkIDA/MioqNTMtMTp0aGlzLl9wYXVzZUFmdGVyTm90VmlzaWJsZUZvck1zLW4pO2lmKHI+MCl7dGhpcy5fY2xlYW51cFRpbWVvdXQ9c2V0VGltZW91dCh0aGlzLl9zY2hlZHVsZUNsZWFudXAscisxKTtyZXR1cm59biE9PXZvaWQgMCYmdGhpcy5faGFuZGxlQ29ubmVjdGlvbkNsb3NlTWV0cmljKGBhcHBfbm90X3Zpc2libGVgKSx0IT09dm9pZCAwJiZ0aGlzLl9oYW5kbGVDb25uZWN0aW9uQ2xvc2VNZXRyaWMoYG5vX3N1YnNjcmliZXJzYCksdGhpcy5fZXZlbnRTb3VyY2UuY2xvc2UoKSx0aGlzLl9ldmVudFNvdXJjZT12b2lkIDAsdGhpcy5fbWlzc2luZ0hlYXJ0YmVhdFJlY29ubmVjdFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9taXNzaW5nSGVhcnRiZWF0UmVjb25uZWN0VGltZW91dCksdGhpcy5fbWF4T3BlbkNvbm5lY3Rpb25UaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fbWF4T3BlbkNvbm5lY3Rpb25UaW1lb3V0KX0sdGhpcy5fc2NoZWR1bGVJc1N0YWxlQ2hlY2s9KCk9Pnt0aGlzLl9taXNzaW5nSGVhcnRiZWF0U2V0U3RhbGVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fbWlzc2luZ0hlYXJ0YmVhdFNldFN0YWxlVGltZW91dCksdGhpcy5fbWlzc2luZ0hlYXJ0YmVhdFNldFN0YWxlVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5fY2hlY2tNaXNzaW5nSGVhcnRiZWF0KCl9LHRoaXMuX21hcmtBc1N0YWxlQWZ0ZXJNcyl9LHRoaXMuX3NjaGVkdWxlSGVhcnRiZWF0UmVjb25uZWN0Q2hlY2s9KCk9Pnt0aGlzLl9taXNzaW5nSGVhcnRiZWF0UmVjb25uZWN0VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX21pc3NpbmdIZWFydGJlYXRSZWNvbm5lY3RUaW1lb3V0KSx0aGlzLl9taXNzaW5nSGVhcnRiZWF0UmVjb25uZWN0VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5fcGFnZVZpc2libGUmJnRoaXMuX3JlY29ubmVjdCgpfSx0aGlzLl9tYXhNaXNzaW5nSGVhcnRiZWF0SW50ZXJ2YWxNcyl9LHRoaXMubG9hZD0oKT0+KHRoaXMuX29wZW4oKSwoYXN5bmMoKT0+e2F3YWl0IHRoaXMuX2RlZmVycmVkTG9hZCx0aGlzLm51bVN1YnNjcmliZXJzPT09MCYmKHRoaXMuX25vU3Vic2NyaWJlcnNUaW1lc3RhbXA9RGF0ZS5ub3coKSx0aGlzLl9zY2hlZHVsZUNsZWFudXAoKSl9KSgpLHRoaXMuX2RlZmVycmVkTG9hZCksdGhpcy53YWl0Rm9yVXBkYXRlPSgpPT4odGhpcy5fb3BlbigpLHRoaXMuX3VwZGF0ZURlZmVycmVkfHwodGhpcy5fdXBkYXRlRGVmZXJyZWQ9bmV3IER5KSx0aGlzLl91cGRhdGVEZWZlcnJlZCksdGhpcy5fcmVzb2x2ZVVwZGF0ZVByb21pc2U9KCk9Pnt0aGlzLl91cGRhdGVEZWZlcnJlZCYmKHRoaXMuX3VwZGF0ZURlZmVycmVkLnJlc29sdmUodm9pZCAwKSx0aGlzLl91cGRhdGVEZWZlcnJlZD12b2lkIDApfSx0aGlzLl9ldmVudElzVXBkYXRlPWU9PmUuZXZlbnRUeXBlPT09YHN0YWxlYD8hZS5pc1N0YWxlOmUuZXZlbnRUeXBlIT09YGVycm9yYCx0aGlzLl9ub3RpZnlTdWJzY3JpYmVycz1lPT57Zm9yKGxldCB0IG9mIHRoaXMuX3N1YnNjcmliZXJzKXRyeXt0LmNhbGxiYWNrKGUpfWNhdGNoKGUpe2UgaW5zdGFuY2VvZiBFcnJvciYmWHYoe2Vycm9yOmUsbWV0YWRhdGE6e3VybDp0aGlzLnVybH19KX10aGlzLl9ldmVudElzVXBkYXRlKGUpJiZ0aGlzLl9yZXNvbHZlVXBkYXRlUHJvbWlzZSgpfSx0aGlzLl9jaGVja01pc3NpbmdIZWFydGJlYXQ9KCk9PntsZXQgZT10aGlzLl9sYXN0TWVzc2FnZVRpbWVzdGFtcD8/MCx0PURhdGUubm93KCktZT50aGlzLl9tYXJrQXNTdGFsZUFmdGVyTXM7dGhpcy5zdHJlYW1OYW1lLHQhPT10aGlzLl9pc1N0YWxlJiYodGhpcy5faXNTdGFsZT10LHRoaXMuX2lzU3RhbGUmJnRoaXMuaXNBcHBWaXNpYmxlJiZ0aGlzLl9sb2dNZXRyaWMoRnkuU1RBTEVfREFUQSx3eS5kaXN0cmlidXRpb24sMSksdGhpcy5fbm90aWZ5U3Vic2NyaWJlcnMoe2V2ZW50VHlwZTpgc3RhbGVgLGlzU3RhbGU6dH0pKSx0aGlzLl9pc1N0YWxlfHx0aGlzLl9zY2hlZHVsZUlzU3RhbGVDaGVjaygpfSx0aGlzLnN1YnNjcmliZT1lPT4odGhpcy5fc3Vic2NyaWJlcnMuYWRkKGUpLHRoaXMuX3N0YXJ0V2F0Y2hpbmdQYWdlVmlzaWJpbGl0eSgpLHRoaXMuX25vU3Vic2NyaWJlcnNUaW1lc3RhbXA9dm9pZCAwLHRoaXMuX29wZW4oKSwoKT0+e2lmKHRoaXMuX3N1YnNjcmliZXJzLmRlbGV0ZShlKSx0aGlzLl9zdWJzY3JpYmVycy5zaXplPT09MCl7dmFyIHQ7dGhpcy5fbm9TdWJzY3JpYmVyc1RpbWVzdGFtcD1EYXRlLm5vdygpLCh0PXRoaXMuX3N0b3BXYXRjaGluZ1BhZ2VWaXNpYmlsaXR5KT09bnVsbHx8dC5jYWxsKHRoaXMpfXRoaXMubnVtU3Vic2NyaWJlcnM9PT0wJiYodGhpcy5fbm9TdWJzY3JpYmVyc1RpbWVzdGFtcD1EYXRlLm5vdygpLHRoaXMuX3NjaGVkdWxlQ2xlYW51cCgpKX0pLHRoaXMudXJsPWUsdGhpcy5zdHJlYW1OYW1lPXQsdGhpcy5fY29udGV4dD1jLHMmJk9iamVjdC5rZXlzKHMpLmxlbmd0aCxuJiZuPDApdGhyb3cgRXJyb3IoYGNsb3NlVW51c2VkQ29ubmVjdGlvbkFmdGVyIGFmdGVyIE1TIG11c3QgYmUgZ3JlYXRlciB0aGFuIDBgKTtpZihyJiZyPDApdGhyb3cgRXJyb3IoYHBhdXNlQWZ0ZXJOb3RWaXNpYmxlRm9yTXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMGApO3RoaXMuX2NyZWF0ZWRBdD1EYXRlLm5vdygpLHRoaXMuX21heE1pc3NpbmdIZWFydGJlYXRJbnRlcnZhbE1zPWksdGhpcy5fY2xvc2VVbnVzZWRDb25uZWN0aW9uQWZ0ZXJNcz1uLHRoaXMuX3BhdXNlQWZ0ZXJOb3RWaXNpYmxlRm9yTXM9cix0aGlzLl9tYXJrQXNTdGFsZUFmdGVyTXM9YSx0aGlzLl9tYXhDb25uZWN0aW9uVGltZW91dE1zPW8sdGhpcy5faXNTdGFsZT0hMX19O2Z1bmN0aW9uIHZzZShlLHQpe2ZvcihsZXQgbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtsZXQgcj1lW25dO2lmKHQocikpcmV0dXJuIG59cmV0dXJuLTF9dmFyIHlzZT17NDAwOmBodHRwXzQwMGAsNDAxOmBodHRwXzQwMWAsNDAzOmBodHRwXzQwM2AsNDA0OmBodHRwXzQwNGAsNDI5OmBodHRwXzQyOWAsNTAwOmBodHRwXzUwMGAsNTAyOmBodHRwXzUwMmAsNTAzOmBodHRwXzUwM2AsNTA0OmBodHRwXzUwNGB9O2Z1bmN0aW9uIGJzZShlKXtsZXQgdD1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQuaW5jbHVkZXMoYHJlc3BvbnNlIGJvZHkgd2FzIG51bGxgKT9gbnVsbF9ib2R5YDpWdigpPT09ITE/YG5ldHdvcmtfb2ZmbGluZWA6dC5pbmNsdWRlcyhgZG5zYCl8fHQuaW5jbHVkZXMoYGdldGFkZHJpbmZvYCk/YG5ldHdvcmtfZG5zYDp0LmluY2x1ZGVzKGByZWZ1c2VkYCk/YG5ldHdvcmtfcmVmdXNlZGA6dC5pbmNsdWRlcyhgcmVzZXRgKT9gbmV0d29ya19yZXNldGA6dC5pbmNsdWRlcyhgc3NsYCl8fHQuaW5jbHVkZXMoYGNlcnRpZmljYXRlYCl8fHQuaW5jbHVkZXMoYHRsc2ApP2BuZXR3b3JrX3NzbGA6dC5pbmNsdWRlcyhgY29yc2ApfHx0LmluY2x1ZGVzKGBjcm9zcy1vcmlnaW5gKT9gbmV0d29ya19jb3JzYDp0LmluY2x1ZGVzKGBhYm9ydGApP2BuZXR3b3JrX2Fib3J0YDpgbmV0d29ya191bmtub3duYH1mdW5jdGlvbiBJeShlLHQpe2lmKCF0KXJldHVybmBlbXB0eV91cmxgO2lmKGUgaW5zdGFuY2VvZiBlbSl7bGV0IHQ9eXNlW2Uuc3RhdHVzXTtpZih0KXJldHVybiB0O2lmKGUuc3RhdHVzPj00MDAmJmUuc3RhdHVzPDUwMClyZXR1cm5gaHR0cF80eHhgO2lmKGUuc3RhdHVzPj01MDApcmV0dXJuYGh0dHBfNXh4YH1yZXR1cm4gYnNlKGUubWVzc2FnZSl9dmFyIEx5PWAKCmA7YXN5bmMgZnVuY3Rpb24qeHNlKGUpe2xldCB0PW5ldyBUZXh0RGVjb2Rlcjt0cnl7Zm9yKDs7KXtsZXQgbj1hd2FpdCBlLnJlYWQoKSxyPW4uZG9uZSxpPW4udmFsdWU7aWYocilyZXR1cm4gbnVsbDt5aWVsZCB0LmRlY29kZShpKX19Y2F0Y2goZSl7cmV0dXJuIGV9ZmluYWxseXtlLnJlbGVhc2VMb2NrKCl9fXZhciBSeT1jbGFzc3tjb25zdHJ1Y3Rvcih7b25SZXN1bHQ6ZSxvbkVycm9yOnQsb25Eb25lOm59LHIpe3RoaXMuX3N0cmVhbVJlYWRlcj12b2lkIDAsdGhpcy5fYnVmZmVyPXZvaWQgMCx0aGlzLl9jbG9zZWQ9dm9pZCAwLHRoaXMuX29uUmVzdWx0PXZvaWQgMCx0aGlzLl9vbkVycm9yPXZvaWQgMCx0aGlzLl9vbkRvbmU9dm9pZCAwLHRoaXMuX2xvZ2dlcj12b2lkIDAsdGhpcy5fZGV2VG9vbHNPcHRzPXZvaWQgMCx0aGlzLl9idWZmZXI9YGAsdGhpcy5fY2xvc2VkPSExLHRoaXMuX29uUmVzdWx0PWUsdGhpcy5fb25FcnJvcj10LHRoaXMuX29uRG9uZT1uPz8oKCk9Pnt9KSx0aGlzLl9sb2dnZXI9KHI9PW51bGw/dm9pZCAwOnIubG9nZ2VyKT8/YW0sdGhpcy5fZGV2VG9vbHNPcHRzPXIhPW51bGwmJnIuZGV2VG9vbHM/ankoankoe30sci5kZXZUb29scykse30se2Vwb2NoOkRhdGUubm93KCl9KTp2b2lkIDB9YXN5bmMgc3RhcnQoZSl7dGhpcy5fcmVwb3J0U3RhcnQoKSx0aGlzLl9zdHJlYW1SZWFkZXI9ZSxlLmNsb3NlZC5jYXRjaCgoKT0+e30pLnRoZW4oKCk9Pnt0aGlzLl9jbG9zZWQ9ITB9KTtsZXQgdD14c2UoZSk7Zm9yKDs7KXtsZXQgZT0oYXdhaXQgdC5uZXh0KCkpLnZhbHVlO2lmKGU9PT1udWxsKXt0aGlzLl9oYW5kbGVEb25lKCk7cmV0dXJufWlmKGUgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHQ9ZTt0aGlzLl9oYW5kbGVFcnJvcih0KTtyZXR1cm59bGV0IG49ZTt0aGlzLl9idWZmZXIrPW47bGV0IHI9dGhpcy5fYnVmZmVyLmluZGV4T2YoTHkpO2Zvcig7ciE9PS0xOyl7bGV0IGU9dGhpcy5fdGFrZUV2ZW50T2ZmQnVmZmVyKHIpO2lmKHI9dGhpcy5fYnVmZmVyLmluZGV4T2YoTHkpLGUuc3RhcnRzV2l0aChgZGF0YTogYCkpe2xldCB0PXRoaXMuX3BhcnNlUmVzdWx0KGUpO2lmKHQhPT1udWxsKXtsZXQgZT1PeSh0LDIpLG49ZVswXSxyPWVbMV07dGhpcy5faGFuZGxlUmVzdWx0KG4scil9fWVsc2UgdGhpcy5fbG9nSW52YWxpZE9yVW5zdXBwb3J0ZWRFdmVudChlKX19fV9oYW5kbGVSZXN1bHQoZSx0KXt0aGlzLl9yZXBvcnREZXZUb29sc0V2ZW50KGByZXN1bHRgLGUpLHRoaXMuX29uUmVzdWx0KGUsdCl9X2hhbmRsZUVycm9yKGUpe3RoaXMuX3JlcG9ydERldlRvb2xzRXZlbnQoYGVycm9yYCxlKSx0aGlzLl9vbkVycm9yKGUpfV9oYW5kbGVEb25lKCl7dGhpcy5fcmVwb3J0RGV2VG9vbHNFdmVudChgZG9uZWApLHRoaXMuX29uRG9uZSgpfV9yZXBvcnRTdGFydCgpe3RoaXMuX3JlcG9ydERldlRvb2xzRXZlbnQoYHN0YXJ0YCl9X3JlcG9ydERldlRvb2xzRXZlbnQoZSx0KXt0cnl7dmFyIG47aWYoIXRoaXMuX2RldlRvb2xzT3B0cylyZXR1cm47bGV0IHI9dGhpcy5fZGV2VG9vbHNPcHRzLGk9ci51cmwsYT1yLmVwb2NoLG89dD97dXJsOmksZXBvY2g6YSxyZXN1bHQ6dH06e3VybDppLGVwb2NoOmF9OyhuPXRoaXMuX2RldlRvb2xzT3B0cyk9PW51bGx8fG4ucmVwb3J0ZXIoZSxvKX1jYXRjaChlKXt0aGlzLl9sb2dnZXIuZXJyb3IoYFtTU0VdIEVycm9yIHJlcG9ydGluZyBldmVudCB0byBkZXYgdG9vbHM6ICR7ZX1gKX19X3Rha2VFdmVudE9mZkJ1ZmZlcihlKXtpZihlPT09LTEpcmV0dXJuYGA7bGV0IHQ9dGhpcy5fYnVmZmVyLnNsaWNlKDAsZSksbj10aGlzLl9idWZmZXIuc2xpY2UoZSsyLHRoaXMuX2J1ZmZlci5sZW5ndGgpO3JldHVybiB0aGlzLl9idWZmZXI9bix0fV9wYXJzZVJlc3VsdChlKXtsZXQgdD1lLnJlcGxhY2UoYGRhdGE6IGAsYGApO3RyeXtyZXR1cm5bSlNPTi5wYXJzZSh0KSx0XX1jYXRjaHtyZXR1cm4gdGhpcy5fbG9nZ2VyLmVycm9yKGBbU1NFXSBFcnJvciBwYXJzaW5nIGRhdGEgZXZlbnQgYXMgSlNPTiwgcmVjZWl2ZWQ6ICR7dC5zbGljZSgwLDEyKX0uLi5gKSxudWxsfX1fbG9nSW52YWxpZE9yVW5zdXBwb3J0ZWRFdmVudChlKXtlLnN0YXJ0c1dpdGgoYGV2ZW50OiBgKT90aGlzLl9sb2dnZXIuZXJyb3IoYFtTU0VdIEV2ZW50IHR5cGVzIG5vdCBpbXBsZW1lbnRlZCwgcmVjZWl2ZWQ6ICR7ZS5zbGljZSgwLDEyKX0uLi5gKTplPT09YGA/dGhpcy5fbG9nZ2VyLmVycm9yKGBbU1NFXSBFbXB0eSBldmVudCwgcmVjZWl2ZWQgZW1wdHkgc3RyaW5nICIiYCk6dGhpcy5fbG9nZ2VyLmVycm9yKGBbU1NFXSBVbmtub3duIGV2ZW50LCByZWNlaXZlZDogJHtlLnNsaWNlKDAsMTIpfS4uLmApfWFzeW5jIF9zYWZlU3RyZWFtUmVhZGVyQ2FuY2VsKCl7dHJ5e3ZhciBlO2F3YWl0KChlPXRoaXMuX3N0cmVhbVJlYWRlcik9PW51bGw/dm9pZCAwOmUuY2FuY2VsKCkpfWNhdGNoKGUpe3RoaXMuX2xvZ2dlci5lcnJvcihgU3NlU3RyZWFtUHJvY2Vzc29yIHJlYWRlci5jYW5jZWwoKSB0aHJldyBlcnJvcjogJHtlfWApfX1jYW5jZWwoKXt0aGlzLl9jbG9zZWR8fHRoaXMuX3NhZmVTdHJlYW1SZWFkZXJDYW5jZWwoKX1jaGVja0lzQ2xvc2VkKCl7cmV0dXJuIHRoaXMuX2Nsb3NlZH19LHp5PTFlMyxTc2U9enksQ3NlPXp5KjE2LHdzZT16eSoyMCxUc2U9enkqMTAsRXNlPS4xLEJ5PTNlMyxEc2U9MTAsT3NlPXsxOjFlMywyOkJ5LDU6NmUzLDg6MTJlMywxMjoxNWUzfSxrc2U9ITE7YXN5bmMgZnVuY3Rpb24gQXNlKGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKG49PnNldFRpbWVvdXQoKCk9PntuKGUoKSl9LHQpKX1mdW5jdGlvbiBWeShlLHQsbil7Zm9yKGxldCBlIG9mIHQpKGUub3A9PT1gYWRkYHx8ZS5vcD09PWByZXBsYWNlYCkmJihlLnZhbHVlPWV5KGUudmFsdWUpKSxlLnBhdGg9JHYoZS5wYXRoKTtfeShlLHQsbil9dmFyIEh5PWNsYXNzIGUgZXh0ZW5kcyBzbXtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLm5hbWU9YENvbm5lY3Rpb25UaW1lb3V0RXJyb3JgLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLGUucHJvdG90eXBlKX19O2Z1bmN0aW9uIGpzZSh7ZW5hYmxlZDplfSl7cmV0dXJuKHQsbik9PntlKCkmJihjb25zb2xlLmxvZyhgW1NTRSBERVYgVE9PTFNdIEV2ZW50OiAke3R9ICR7bi51cmx9ICR7RGF0ZS5ub3coKX1gKSxuLnJlc3VsdCYmY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkobi5yZXN1bHQsbnVsbCwyKSkpfX1mdW5jdGlvbiBNc2UoKXtyZXR1cm4hISh0eXBlb2Ygd2luZG93PGB1YCYmYGVuYWJsZVNzZURldlRvb2xzYGluIHdpbmRvdyYmd2luZG93LmVuYWJsZVNzZURldlRvb2xzKXx8ISEodHlwZW9mIGdsb2JhbFRoaXM8YHVgJiZgZW5hYmxlU3NlRGV2VG9vbHNgaW4gZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcy5lbmFibGVTc2VEZXZUb29scyl9dmFyIE5zZT1jbGFzc3tnZXQgZGF0YSgpe3JldHVybiB0aGlzLl9kYXRhfWdldCBsYXN0VXBkYXRlZCgpe3JldHVybiB0aGlzLl9sYXN0VXBkYXRlZH1nZXQgbnVtU3Vic2NyaWJlcnMoKXtyZXR1cm4gdGhpcy5fc3Vic2NyaWJlcnMuc2l6ZX1nZXQgX2FjdGl2ZVNzZURldlRvb2xzKCl7cmV0dXJuIHRoaXMuX3NzZURldlRvb2xzUmVwb3J0ZXI/e3JlcG9ydGVyOnRoaXMuX3NzZURldlRvb2xzUmVwb3J0ZXIsdXJsOnRoaXMudXJsfTp7cmVwb3J0ZXI6anNlKHtlbmFibGVkOigpPT5Nc2UoKX0pLHVybDp0aGlzLnVybH19Z2V0IGRhdGFTbmFwc2hvdCgpe2xldCBlPXRoaXMuX2RhdGEsdD10aGlzLl9sYXN0VXBkYXRlZDtpZihlKXJldHVybiB0aGlzLl9jdXJyZW50U25hcHNob3R8fCh0aGlzLl9jdXJyZW50U25hcHNob3Q9ZSBpbnN0YW5jZW9mIEVycm9yP2U6e2RhdGE6TnkodGhpcy5zdHJlYW1OYW1lLGUsdGhpcy5kYXRhKSxsYXN0VXBkYXRlZDp0Pz9EYXRlLm5vdygpfSksdGhpcy5fY3VycmVudFNuYXBzaG90fWdldCBsYXN0SGVhcnRiZWF0VGltZXN0YW1wKCl7cmV0dXJuIHRoaXMuX2xhc3RIZWFydGJlYXRUaW1lc3RhbXB9Z2V0IGlzTG9hZGluZygpe3JldHVybighdGhpcy5kYXRhfHx0aGlzLl9pc1N0YWxlKSYmISF0aGlzLl9zdHJlYW1Qcm9jZXNzb3J9Z2V0IGlzQXBwVmlzaWJsZSgpe3JldHVybiBLdigpfWNvbnN0cnVjdG9yKHt1cmw6ZSxzdHJlYW1OYW1lOnQsZmV0Y2g6bixjbG9zZVVudXNlZENvbm5lY3Rpb25BZnRlck1zOnI9NTAwLHBhdXNlQWZ0ZXJOb3RWaXNpYmxlRm9yTXM6aT02MCoxZTMsbWF4TWlzc2luZ0hlYXJ0YmVhdEludGVydmFsTXM6YT1Dc2UsbWFya0FzU3RhbGVBZnRlck1zOm89d3NlLG1heENvbm5lY3Rpb25UaW1lb3V0TXM6cz1Uc2UsYWRkaXRpb25hbEhlYWRlcnM6Yyxzc2VEZXZUb29sc1JlcG9ydGVyOmwsZW5hYmxlSW1wcm92ZWRFcnJvckJvdW5kYXJ5U3VwcG9ydDp1LGVuYWJsZUltcHJvdmVkUmV0cnlTdXBwb3J0OmQsZW5hYmxlZFJlY29ubmVjdE9uUGF0Y2hFcnJvcjpmLGRpc2FibGVDb250ZW50TGVuZ3RoTG9nZ2luZzpwLHZhbGlkYXRlT3BlcmF0aW9uOm09ITAsdGhyb3R0bGVNczpoLHJldHJ5VGltZW91dENvbmZpZzpnLGNvbnRleHQ6XyxlbmFibGVNYXhSZXRyeUxpbWl0OnYsbWF4UmV0cnlBdHRlbXB0czp5fSl7aWYodGhpcy51cmw9dm9pZCAwLHRoaXMuc3RyZWFtTmFtZT12b2lkIDAsdGhpcy5fZmV0Y2g9dm9pZCAwLHRoaXMuX2xhc3RVcGRhdGVkPXZvaWQgMCx0aGlzLl9kYXRhPXZvaWQgMCx0aGlzLl9sYXN0U2VudE1ldHJpY1RpbWVzdGFtcD12b2lkIDAsdGhpcy5fY2xvc2VVbnVzZWRDb25uZWN0aW9uQWZ0ZXJNcz12b2lkIDAsdGhpcy5fcGF1c2VBZnRlck5vdFZpc2libGVGb3JNcz12b2lkIDAsdGhpcy5fbWF4TWlzc2luZ0hlYXJ0YmVhdEludGVydmFsTXM9dm9pZCAwLHRoaXMuX21hcmtBc1N0YWxlQWZ0ZXJNcz12b2lkIDAsdGhpcy5fbWF4Q29ubmVjdGlvblRpbWVvdXRNcz12b2lkIDAsdGhpcy5fY29udGV4dD12b2lkIDAsdGhpcy5fZW5hYmxlSW1wcm92ZWRFcnJvckJvdW5kYXJ5U3VwcG9ydD12b2lkIDAsdGhpcy5fZW5hYmxlSW1wcm92ZWRSZXRyeVN1cHBvcnQ9dm9pZCAwLHRoaXMuX2VuYWJsZWRSZWNvbm5lY3RPblBhdGNoRXJyb3I9dm9pZCAwLHRoaXMuX2Rpc2FibGVDb250ZW50TGVuZ3RoTG9nZ2luZz12b2lkIDAsdGhpcy5fYWRkaXRpb25hbEhlYWRlcnM9dm9pZCAwLHRoaXMuX3N1YnNjcmliZXJzPW5ldyBTZXQsdGhpcy5fbm9TdWJzY3JpYmVyc1RpbWVzdGFtcD1EYXRlLm5vdygpLHRoaXMuX2NyZWF0ZWRBdD1EYXRlLm5vdygpLHRoaXMuX3N0cmVhbVByb2Nlc3Nvcj12b2lkIDAsdGhpcy5fYWJvcnRDb250cm9sbGVyPXZvaWQgMCx0aGlzLl9zc2VEZXZUb29sc1JlcG9ydGVyPXZvaWQgMCx0aGlzLl9kZWZlcnJlZExvYWQ9dm9pZCAwLHRoaXMuX3VwZGF0ZURlZmVycmVkPXZvaWQgMCx0aGlzLl9ub3RWaXNpYmxlVGltZXN0YW1wPUt2KCk/dm9pZCAwOkRhdGUubm93KCksdGhpcy5fbGFzdEhlYXJ0YmVhdFRpbWVzdGFtcD12b2lkIDAsdGhpcy5fbGFzdE1lc3NhZ2VUaW1lc3RhbXA9dm9pZCAwLHRoaXMuX3N0cmVhbVByb2Nlc3NvckNyZWF0ZWRUaW1lcz0wLHRoaXMuX2N1cnJlbnRTbmFwc2hvdD12b2lkIDAsdGhpcy5faXNTdGFsZT12b2lkIDAsdGhpcy5fbWlzc2luZ0hlYXJ0YmVhdFJlY29ubmVjdFRpbWVvdXQ9dm9pZCAwLHRoaXMuX21pc3NpbmdIZWFydGJlYXRTZXRTdGFsZVRpbWVvdXQ9dm9pZCAwLHRoaXMuX2NsZWFudXBUaW1lb3V0PXZvaWQgMCx0aGlzLl92YWxpZGF0ZU9wZXJhdGlvbj12b2lkIDAsdGhpcy5fdGhyb3R0bGVNcz12b2lkIDAsdGhpcy5fcmV0cnlUaW1lb3V0Q29uZmlnPXZvaWQgMCx0aGlzLl9lbmFibGVNYXhSZXRyeUxpbWl0PXZvaWQgMCx0aGlzLl9tYXhSZXRyeUF0dGVtcHRzPXZvaWQgMCx0aGlzLmlzRGVzdHJveWVkPSExLHRoaXMuX3JldHJ5QXR0ZW1wdHM9MCx0aGlzLl9yZWNvbm5lY3RUaW1lb3V0PXZvaWQgMCx0aGlzLl9zdG9wV2F0Y2hpbmdQYWdlVmlzaWJpbGl0eT12b2lkIDAsdGhpcy5fc3RhcnRXYXRjaGluZ1BhZ2VWaXNpYmlsaXR5PSgpPT57aWYodGhpcy5fc3RvcFdhdGNoaW5nUGFnZVZpc2liaWxpdHkpcmV0dXJuO2xldCBlPXF2KGU9PntlPyh0aGlzLl9ub3RWaXNpYmxlVGltZXN0YW1wPXZvaWQgMCx0aGlzLl9vcGVuKCkpOih0aGlzLl9ub3RWaXNpYmxlVGltZXN0YW1wPXRoaXMuX25vdFZpc2libGVUaW1lc3RhbXA/P0RhdGUubm93KCksdGhpcy5fc3Vic2NyaWJlcnMuc2l6ZSx0aGlzLl9zY2hlZHVsZUNsZWFudXAoKSl9KTt0aGlzLl9zdG9wV2F0Y2hpbmdQYWdlVmlzaWJpbGl0eT1lfSx0aGlzLl9hcHBseVNuYXBzaG90TWVzc2FnZT1lPT57bGV0IHQ9ZXkoZSk7cmV0dXJuIHRoaXMuX2xhc3RVcGRhdGVkPURhdGUubm93KCksKDAscnkuZGVmYXVsdCkodGhpcy5fZGF0YSx0KT8hMToodGhpcy5fZGF0YT10LHRoaXMuX2N1cnJlbnRTbmFwc2hvdD12b2lkIDAsITApfSx0aGlzLl9lbWl0U25hcHNob3RFdmVudD0oKT0+e2xldCBlPXRoaXMuX2RhdGE7dGhpcy5fbm90aWZ5U3Vic2NyaWJlcnMoe2V2ZW50VHlwZTpgc25hcHNob3RgLGRhdGE6ZX0pfSx0aGlzLl9oYW5kbGVTbmFwc2hvdE1lc3NhZ2U9ZT0+e3RoaXMuX2FwcGx5U25hcHNob3RNZXNzYWdlKGUpJiZ0aGlzLl9lbWl0U25hcHNob3RFdmVudCgpLHRoaXMuX3Jlc29sdmVEZWZlcnJlZExvYWQoKSx0aGlzLl9yZXNvbHZlVXBkYXRlUHJvbWlzZSgpfSx0aGlzLl9hcHBseVBhdGNoTWVzc2FnZT1lPT57aWYoIWUubGVuZ3RoKXJldHVybiExO3RyeXt2YXIgdDtpZighdGhpcy5fZGF0YSl0aHJvdyBFcnJvcihgUmVjZWl2ZWQgYSBwYXRjaCB3aXRob3V0IGEgY3VycmVudCBzbmFwc2hvdCAoJHt0aGlzLnVybH0pYCk7aWYodGhpcy5fZGF0YSBpbnN0YW5jZW9mIEVycm9yKXRocm93IEVycm9yKGBBdHRlbXB0ZWQgdG8gYXBwbHkgcGF0Y2ggdG8gZXJyb3IgZGF0YSAoJHt0aGlzLnVybH0pYCk7VnkodGhpcy5fZGF0YSxlLHRoaXMuX3ZhbGlkYXRlT3BlcmF0aW9uKTtsZXQgbj10aGlzLl9jdXJyZW50U25hcHNob3QgaW5zdGFuY2VvZiBFcnJvcnx8KHQ9dGhpcy5fY3VycmVudFNuYXBzaG90KT09bnVsbD92b2lkIDA6dC5kYXRhO2lmKHRoaXMuX2xhc3RVcGRhdGVkPURhdGUubm93KCksISgwLHJ5LmRlZmF1bHQpKHRoaXMuX2RhdGEsbikpcmV0dXJuIHRoaXMuX2N1cnJlbnRTbmFwc2hvdD12b2lkIDAsITB9Y2F0Y2goZSl7dGhpcy5fZW5hYmxlZFJlY29ubmVjdE9uUGF0Y2hFcnJvciYmdGhpcy5fcmVjb25uZWN0KGBwYXRjaF9lcnJvcmApLGUgaW5zdGFuY2VvZiBFcnJvciYmWHYoe2Vycm9yOmUsbWV0YWRhdGE6e3VybDp0aGlzLnVybCxzdHJlYW1OYW1lOnRoaXMuc3RyZWFtTmFtZX19KX1yZXR1cm4hMX0sdGhpcy5fZW1pdFBhdGNoRXZlbnQ9ZT0+e2xldCB0PXRoaXMuX2RhdGEgaW5zdGFuY2VvZiBFcnJvcj92b2lkIDA6dGhpcy5fZGF0YTt0aGlzLl9ub3RpZnlTdWJzY3JpYmVycyh7ZXZlbnRUeXBlOmBwYXRjaGAsZGF0YTp0LHBhdGNoZXM6ZX0pfSx0aGlzLl9oYW5kbGVQYXRjaE1lc3NhZ2U9ZT0+e3RoaXMuX2FwcGx5UGF0Y2hNZXNzYWdlKGUpJiZ0aGlzLl9lbWl0UGF0Y2hFdmVudChlKSx0aGlzLl9yZXNvbHZlVXBkYXRlUHJvbWlzZSgpfSx0aGlzLl90aHJvdHRsZWRNZXNzYWdlUXVldWU9W10sdGhpcy5fdGhyb3R0bGVkQmF0Y2hBcHBsaWNhdGlvblRpbWVvdXQ9dm9pZCAwLHRoaXMuX2JhdGNoQXBwbHlUaHJvdHRsZWRNZXNzYWdlcz0oKT0+e3RyeXtsZXQgZT12c2UodGhpcy5fdGhyb3R0bGVkTWVzc2FnZVF1ZXVlLGU9PmBzbmFwc2hvdGBpbiBlKSx0PWUhPT0tMSxuPXQ/dGhpcy5fdGhyb3R0bGVkTWVzc2FnZVF1ZXVlW2VdLnNuYXBzaG90OnZvaWQgMCxyPSh0P3RoaXMuX3Rocm90dGxlZE1lc3NhZ2VRdWV1ZS5zbGljZShlKzEpOnRoaXMuX3Rocm90dGxlZE1lc3NhZ2VRdWV1ZSkuZmxhdE1hcChlPT5lLnBhdGNoKTtpZihuKXtpZihyLmxlbmd0aCl0cnl7VnkobixyLHRoaXMuX3ZhbGlkYXRlT3BlcmF0aW9uKX1jYXRjaChlKXt0aGlzLl9lbmFibGVkUmVjb25uZWN0T25QYXRjaEVycm9yJiZ0aGlzLl9yZWNvbm5lY3QoYGJhdGNoX2FwcGx5X3BhdGNoZXNfdG9fc25hcHNob3RfZXJyb3JgKSxlIGluc3RhbmNlb2YgRXJyb3ImJlh2KHtlcnJvcjplLG1ldGFkYXRhOnt1cmw6dGhpcy51cmwsc3RyZWFtTmFtZTp0aGlzLnN0cmVhbU5hbWV9fSl9dGhpcy5fYXBwbHlTbmFwc2hvdE1lc3NhZ2UobikmJnRoaXMuX2VtaXRTbmFwc2hvdEV2ZW50KCl9ZWxzZSB0aGlzLl9hcHBseVBhdGNoTWVzc2FnZShyKSYmdGhpcy5fZW1pdFBhdGNoRXZlbnQocik7dGhpcy5fdGhyb3R0bGVkTWVzc2FnZVF1ZXVlPVtdLHRoaXMuX3Jlc29sdmVEZWZlcnJlZExvYWQoKSx0aGlzLl9yZXNvbHZlVXBkYXRlUHJvbWlzZSgpfWNhdGNoKGUpe3RoaXMuX3JlY29ubmVjdChgYmF0Y2hfYXBwbHlfZXJyb3JgKSxlIGluc3RhbmNlb2YgRXJyb3ImJlh2KHtlcnJvcjplLG1ldGFkYXRhOnt1cmw6dGhpcy51cmwsc3RyZWFtTmFtZTp0aGlzLnN0cmVhbU5hbWV9fSl9fSx0aGlzLl9oYW5kbGVUaHJvdHRsZWRNZXNzYWdlPWU9PntsZXQgdD10aGlzLl90aHJvdHRsZU1zPz8wLG49dGhpcy5fbGFzdFVwZGF0ZWQ/PzAscj1EYXRlLm5vdygpLW47dGhpcy5fdGhyb3R0bGVkQmF0Y2hBcHBsaWNhdGlvblRpbWVvdXQ/dGhpcy5fdGhyb3R0bGVkTWVzc2FnZVF1ZXVlLnB1c2goZSk6dC1yPjA/KHRoaXMuX3Rocm90dGxlZE1lc3NhZ2VRdWV1ZS5wdXNoKGUpLHRoaXMuX3Rocm90dGxlZEJhdGNoQXBwbGljYXRpb25UaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9iYXRjaEFwcGx5VGhyb3R0bGVkTWVzc2FnZXMoKSx0aGlzLl90aHJvdHRsZWRCYXRjaEFwcGxpY2F0aW9uVGltZW91dD12b2lkIDB9LHQtcikpOihgc25hcHNob3RgaW4gZSYmdGhpcy5fYXBwbHlTbmFwc2hvdE1lc3NhZ2UoZS5zbmFwc2hvdCkmJnRoaXMuX2VtaXRTbmFwc2hvdEV2ZW50KCksYHBhdGNoYGluIGUmJnRoaXMuX2FwcGx5UGF0Y2hNZXNzYWdlKGUucGF0Y2gpJiZ0aGlzLl9lbWl0UGF0Y2hFdmVudChlLnBhdGNoKSx0aGlzLl9yZXNvbHZlRGVmZXJyZWRMb2FkKCksdGhpcy5fcmVzb2x2ZVVwZGF0ZVByb21pc2UoKSl9LHRoaXMuX2lzVGhyb3R0bGVkTW9kZT0oKT0+dGhpcy5fdGhyb3R0bGVNcyE9PXZvaWQgMCYmdGhpcy5fdGhyb3R0bGVNcz4wLHRoaXMuX2hhbmRsZUhlYXJ0YmVhdD0oKT0+e3RoaXMuX2xhc3RIZWFydGJlYXRUaW1lc3RhbXA9RGF0ZS5ub3coKSx0aGlzLl9yZXNvbHZlVXBkYXRlUHJvbWlzZSgpfSx0aGlzLl9oYW5kbGVNZXNzYWdlPSgpPT57dGhpcy5fcmV0cnlBdHRlbXB0cz0wLHRoaXMuX2xhc3RNZXNzYWdlVGltZXN0YW1wPURhdGUubm93KCksdGhpcy5fY2hlY2tNaXNzaW5nSGVhcnRiZWF0KCksdGhpcy5fc2NoZWR1bGVIZWFydGJlYXRSZWNvbm5lY3RDaGVjaygpfSx0aGlzLl9oYW5kbGVFcnJvcj0oZSx0KT0+e2lmKFh2KHtlcnJvcjplLG1ldGFkYXRhOnt1cmw6dGhpcy51cmwsc3RyZWFtTmFtZTp0aGlzLnN0cmVhbU5hbWUsZXJyb3JTb3VyY2U6dCxlbmFibGVJbXByb3ZlZEVycm9yQm91bmRhcnlTdXBwb3J0OnRoaXMuX2VuYWJsZUltcHJvdmVkRXJyb3JCb3VuZGFyeVN1cHBvcnQscGFnZVZpc2libGU6S3YoKSxsYXN0TWVzc2FnZVRpbWVzdGFtcDp0aGlzLl9sYXN0TWVzc2FnZVRpbWVzdGFtcH19KSx0aGlzLl9lbmFibGVJbXByb3ZlZEVycm9yQm91bmRhcnlTdXBwb3J0KWlmKHQ9PT1gdGltZW91dGB8fHQ9PT1gcmVhZGApS3YoKSYmdGhpcy5fcmVjb25uZWN0KHQ9PT1gdGltZW91dGA/YHRpbWVvdXRfZXJyb3JgOmByZWFkX2Vycm9yYCksdGhpcy5fc2NoZWR1bGVIZWFydGJlYXRSZWNvbm5lY3RDaGVjaygpO2Vsc2UgaWYodD09PWBvcGVuYCYmdGhpcy5fcmV0cnlBdHRlbXB0czw9dGhpcy5fbWF4UmV0cnlBdHRlbXB0cyYmdGhpcy5fZW5hYmxlSW1wcm92ZWRSZXRyeVN1cHBvcnQpe2xldCB0PUl5KGUsdGhpcy51cmwpO3RoaXMuX3JlY29ubmVjdChgb3Blbl9lcnJvcmAsdCl9ZWxzZSB0aGlzLl9yZXRyeUF0dGVtcHRzPTAsdGhpcy5fZGF0YT1lLHRoaXMuX2hhbHRCYXRjaFByb2Nlc3NpbmcoKSx0PT09YG9wZW5gJiYodGhpcy5fY3VycmVudFNuYXBzaG90PXZvaWQgMCksdGhpcy5faGFuZGxlQ29ubmVjdGlvbkVycm9yTWV0cmljKGUsdCx0PT09YG9wZW5gP0l5KGUsdGhpcy51cmwpOnZvaWQgMCksdGhpcy5fbm90aWZ5U3Vic2NyaWJlcnMoe2V2ZW50VHlwZTpgZXJyb3JgfSksdGhpcy5fcmVzb2x2ZURlZmVycmVkTG9hZCgpO2Vsc2UgZSBpbnN0YW5jZW9mIEh5fHwodGhpcy5fZGF0YT1lLHRoaXMuX2hhbHRCYXRjaFByb2Nlc3NpbmcoKSx0aGlzLl9oYW5kbGVDb25uZWN0aW9uRXJyb3JNZXRyaWMoZSx0KSksS3YoKSYmdGhpcy5fcmVjb25uZWN0KGB1bmtub3duYCksdGhpcy5fc2NoZWR1bGVIZWFydGJlYXRSZWNvbm5lY3RDaGVjaygpfSx0aGlzLl9sb2dNZXRyaWM9KGUsdCxuLHIpPT57RXkoe21ldHJpY05hbWU6ZSxtZXRyaWNUeXBlOnQsdmFsdWU6bix0YWdzOmp5KGp5KHtmZXRjaF9iYXNlZDpgZmV0Y2hfYmFzZWRgLHN0cmVhbV9uYW1lOnRoaXMuc3RyZWFtTmFtZX0sciksdGhpcy5fY29udGV4dCYme2NvbnRleHQ6dGhpcy5fY29udGV4dH0pfSl9LHRoaXMuX2hhbmRsZUNvbm5lY3Rpb25PcGVuTWV0cmljPWU9Pnt2YXIgdCxuO2xldCByPURhdGUubm93KCktZSxpPSgodD1uYXZpZ2F0b3IpPT1udWxsfHwodD10LmNvbm5lY3Rpb24pPT1udWxsP3ZvaWQgMDp0LmVmZmVjdGl2ZVR5cGUpPz9gdW5kZWZpbmVkYCxhPShuPW5hdmlnYXRvcik9PW51bGx8fChuPW4uY29ubmVjdGlvbik9PW51bGw/dm9pZCAwOm4uZG93bmxpbmssbz1hPT1udWxsP3ZvaWQgMDpNYXRoLmZsb29yKGEpO3RoaXMuX2xvZ01ldHJpYyhNeS5USU1FX1RPX0VTVEFCTElTSF9DT05ORUNUSU9OLHd5LmRpc3RyaWJ1dGlvbixyLHtkb3dubGluazpTdHJpbmcobyl9KSx0aGlzLl9sb2dNZXRyaWMoTXkuQ09OTkVDVElPTl9PUEVOX0NPVU5ULHd5LmNvdW50LDEse2Nvbm5lY3Rpb25fdHlwZTppfSl9LHRoaXMuX2hhbmRsZUZpcnN0U25hcHNob3RNZXRyaWM9KGUsdCk9PntpZighS3YoKSlyZXR1cm47bGV0IG49RGF0ZS5ub3coKS10O3RoaXMuX2xvZ01ldHJpYyhNeS5USU1FX1RPX0ZJUlNUX1NOQVBTSE9ULHd5LmRpc3RyaWJ1dGlvbixuKSwhdGhpcy5fZGlzYWJsZUNvbnRlbnRMZW5ndGhMb2dnaW5nJiZ0aGlzLl9sb2dNZXRyaWMoTXkuQ09OVEVOVF9MRU5HVEgsd3kuZGlzdHJpYnV0aW9uLGUse3N0cmVhbV9tZXNzYWdlX3R5cGU6YHNuYXBzaG90YH0pfSx0aGlzLl9oYW5kbGVNZXNzYWdlTWV0cmljPShlLHQpPT57bGV0IG49RGF0ZS5ub3coKSxyPXRoaXMuX2xhc3RTZW50TWV0cmljVGltZXN0YW1wOyFLdigpfHx0aGlzLl9kaXNhYmxlQ29udGVudExlbmd0aExvZ2dpbmd8fHImJm4tcjxTc2V8fCh0aGlzLl9sYXN0U2VudE1ldHJpY1RpbWVzdGFtcD1EYXRlLm5vdygpLHRoaXMuX2xvZ01ldHJpYyhNeS5DT05URU5UX0xFTkdUSCx3eS5kaXN0cmlidXRpb24sdCx7c3RyZWFtX21lc3NhZ2VfdHlwZTplfSkpfSx0aGlzLl9oYW5kbGVEb25lTWV0cmljPWU9Pnt0aGlzLl9sb2dNZXRyaWMoTXkuU1RSRUFNX0RPTkVfQ09VTlQsd3kuY291bnQsMSx7cmVjb25uZWN0ZWQ6ZT9gdHJ1ZWA6YGZhbHNlYH0pfSx0aGlzLl9oYW5kbGVDb25uZWN0aW9uQ2xvc2VNZXRyaWM9ZT0+e3ZhciB0O2xldCBuPSgodD1uYXZpZ2F0b3IpPT1udWxsfHwodD10LmNvbm5lY3Rpb24pPT1udWxsP3ZvaWQgMDp0LmVmZmVjdGl2ZVR5cGUpPz9gdW5kZWZpbmVkYDt0aGlzLl9sb2dNZXRyaWMoTXkuQ09OTkVDVElPTl9DTE9TRURfQ09VTlQsd3kuY291bnQsMSx7c3RyZWFtX2Nsb3NpbmdfcmVhc29uOmUsY29ubmVjdGlvbl90eXBlOm59KX0sdGhpcy5fZ2V0SXNPbmxpbmVNZXRyaWNWYWx1ZT0oKT0+e2xldCBlPVZ2KCk7cmV0dXJuIGU9PT12b2lkIDA/YG4vYWA6ZT9gdHJ1ZWA6YGZhbHNlYH0sdGhpcy5faGFuZGxlQ29ubmVjdGlvbkVycm9yTWV0cmljPShlLHQsbik9Pnt0aGlzLl9sb2dNZXRyaWMoTXkuQ09OTkVDVElPTl9FUlJPUl9DT1VOVCx3eS5jb3VudCwxLGp5KHtpc19vbmxpbmU6dGhpcy5fZ2V0SXNPbmxpbmVNZXRyaWNWYWx1ZSgpLGVycm9yU291cmNlOnQsc3RhdHVzOmUgaW5zdGFuY2VvZiBlbT9TdHJpbmcoZS5zdGF0dXMpOmUgaW5zdGFuY2VvZiBIeT9gdGltZW91dF9lcnJvcmA6YG5ldHdvcmtfZXJyb3JgfSxuJiZ7ZXJyb3JfcmVhc29uOm59KSl9LHRoaXMuX3JlY29ubmVjdD1hc3luYyhlLHQpPT57aWYoIXRoaXMuX3JlY29ubmVjdFRpbWVvdXQpe2lmKHRoaXMuX3JldHJ5QXR0ZW1wdHMrPTEsdGhpcy5fZW5hYmxlTWF4UmV0cnlMaW1pdCYmdGhpcy5fcmV0cnlBdHRlbXB0cz50aGlzLl9tYXhSZXRyeUF0dGVtcHRzKXtsZXQgZT1uZXcgc20oe21lc3NhZ2U6YE1heCByZXRyeSBhdHRlbXB0cyAoJHt0aGlzLl9tYXhSZXRyeUF0dGVtcHRzfSkgZXhjZWVkZWQgZm9yIHVybDogJHt0aGlzLnVybH1gfSk7dGhpcy5fZGF0YT1lLHRoaXMuX2N1cnJlbnRTbmFwc2hvdD12b2lkIDAsdGhpcy5faGFsdEJhdGNoUHJvY2Vzc2luZygpLHRoaXMuX2hhbmRsZUNvbm5lY3Rpb25FcnJvck1ldHJpYyhlLGBvcGVuYCx0KSx0aGlzLl9ub3RpZnlTdWJzY3JpYmVycyh7ZXZlbnRUeXBlOmBlcnJvcmB9KSx0aGlzLl9yZXNvbHZlRGVmZXJyZWRMb2FkKCk7cmV0dXJufWlmKHRoaXMuX2xvZ01ldHJpYyhNeS5SRUNPTk5FQ1Qsd3kuY291bnQsMSxqeSh7cmVhc29uOmV9LHQmJntlcnJvcl9yZWFzb246dH0pKSx0aGlzLl9jbGVhbnVwU3RyZWFtUHJvY2Vzc29yKCksdGhpcy5fZW5hYmxlSW1wcm92ZWRSZXRyeVN1cHBvcnQpe2xldCBlPXRoaXMuX2dldE5leHRUaW1lb3V0TXMoKTt0aGlzLl9yZWNvbm5lY3RUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9yZWNvbm5lY3RUaW1lb3V0PXZvaWQgMCx0aGlzLl9vcGVuKCl9LGUpfWVsc2UgdGhpcy5fb3BlbigpfX0sdGhpcy5fb3Blbj1hc3luYyBlPT57bGV0IHQ9KGU9PW51bGw/dm9pZCAwOmUuZm9yY2VSZWNvbm5lY3QpPz8hMTtpZih0aGlzLmlzRGVzdHJveWVkfHwoYXdhaXQgVXYoKSx0JiZ0aGlzLl9jbGVhbnVwU3RyZWFtUHJvY2Vzc29yKCksdGhpcy5fc3RyZWFtUHJvY2Vzc29yfHx0aGlzLl9yZWNvbm5lY3RUaW1lb3V0KSlyZXR1cm47dGhpcy5fbG9nTWV0cmljKE15LkNPTk5FQ1RJT05fSU5JVF9DT1VOVCx3eS5jb3VudCwxKTtsZXQgbj1EYXRlLm5vdygpO3RoaXMuX3N0cmVhbVByb2Nlc3Nvcj1uZXcgUnkoe29uUmVzdWx0OihlLHQpPT57dGhpcy5faGFuZGxlTWVzc2FnZSgpLGBzbmFwc2hvdGBpbiBlLnJlc3VsdD8oIXRoaXMuX2RhdGEmJkt2KCk/dGhpcy5faGFuZGxlRmlyc3RTbmFwc2hvdE1ldHJpYyh0Lmxlbmd0aCxuKTp0aGlzLl9oYW5kbGVNZXNzYWdlTWV0cmljKGBzbmFwc2hvdGAsdC5sZW5ndGgpLHRoaXMuX2lzVGhyb3R0bGVkTW9kZSgpP3RoaXMuX2hhbmRsZVRocm90dGxlZE1lc3NhZ2Uoe3NuYXBzaG90OmUucmVzdWx0LnNuYXBzaG90fSk6dGhpcy5faGFuZGxlU25hcHNob3RNZXNzYWdlKGUucmVzdWx0LnNuYXBzaG90KSk6YHBhdGNoYGluIGUucmVzdWx0Pyh0aGlzLl9oYW5kbGVNZXNzYWdlTWV0cmljKGBwYXRjaGAsdC5sZW5ndGgpLHRoaXMuX2lzVGhyb3R0bGVkTW9kZSgpP3RoaXMuX2hhbmRsZVRocm90dGxlZE1lc3NhZ2Uoe3BhdGNoOmUucmVzdWx0LnBhdGNoLm9wZXJhdGlvbnN9KTp0aGlzLl9oYW5kbGVQYXRjaE1lc3NhZ2UoZS5yZXN1bHQucGF0Y2gub3BlcmF0aW9ucykpOmUucmVzdWx0LmhlYXJ0YmVhdCYmdGhpcy5faGFuZGxlSGVhcnRiZWF0KCl9LG9uRXJyb3I6ZT0+e3RoaXMuX2hhbmRsZUVycm9yKGUsYHJlYWRgKX0sb25Eb25lOigpPT57dmFyIGU7bGV0IHQ9KChlPXRoaXMuX3N0cmVhbVByb2Nlc3Nvcik9PW51bGw/dm9pZCAwOmUuY2hlY2tJc0Nsb3NlZCgpKT09PSEwLG49ISEoS3YoKSYmdGhpcy5fc3Vic2NyaWJlcnMuc2l6ZT4wJiZ0KTt0aGlzLl9oYW5kbGVEb25lTWV0cmljKG4pLG4mJnRoaXMuX3JlY29ubmVjdChgZGlzY29ubmVjdGApfX0se2RldlRvb2xzOnRoaXMuX2FjdGl2ZVNzZURldlRvb2xzfSksdGhpcy5fc3RyZWFtUHJvY2Vzc29yQ3JlYXRlZFRpbWVzKz0xO2xldCByPW5ldyBBYm9ydENvbnRyb2xsZXI7dGhpcy5fYWJvcnRDb250cm9sbGVyPXI7bGV0IGk9ITEsYT1hd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMuX2ZldGNoKHRoaXMudXJsLHtzaWduYWw6ci5zaWduYWwsY3JlZGVudGlhbHM6YGluY2x1ZGVgLGhlYWRlcnM6ankoeyJDb250ZW50LVR5cGUiOmtzZT9gdGV4dGA6YHRleHQvZXZlbnQtc3RyZWFtYH0sdGhpcy5fYWRkaXRpb25hbEhlYWRlcnMpfSksQXNlKCgpPT4oaXx8KHRoaXMuX2xvZ01ldHJpYyhNeS5DT05ORUNUSU9OX1RJTUVPVVRfQUJPUlQsd3kuY291bnQsMSksci5hYm9ydCgpKSxuZXcgSHkoe21lc3NhZ2U6YENvbm5lY3Rpb24gdGltZW91dCByZWFjaGVkIGZvciB1cmw6ICR7dGhpcy51cmx9LmB9KSksdGhpcy5fbWF4Q29ubmVjdGlvblRpbWVvdXRNcyldKTtpZih0aGlzLmlzRGVzdHJveWVkKXJldHVybjtpZihpPSEwLGEgaW5zdGFuY2VvZiBFcnJvcil7bGV0IGU9YTt0aGlzLl9oYW5kbGVFcnJvcihlLGEgaW5zdGFuY2VvZiBIeT9gdGltZW91dGA6YG9wZW5gKTtyZXR1cm59aWYoYS5ib2R5PT1udWxsKXtsZXQgZT1uZXcgc20oe21lc3NhZ2U6YFJlc3BvbnNlIGJvZHkgd2FzIG51bGxgfSk7dGhpcy5faGFuZGxlRXJyb3IoZSxgb3BlbmApO3JldHVybn1pZighdGhpcy5fc3RyZWFtUHJvY2Vzc29yKXJldHVybjt0aGlzLl9oYW5kbGVDb25uZWN0aW9uT3Blbk1ldHJpYyhuKTtsZXQgbz1hLmJvZHkuZ2V0UmVhZGVyKCk7dGhpcy5fc3RyZWFtUHJvY2Vzc29yLnN0YXJ0KG8pLHRoaXMuX3NjaGVkdWxlSXNTdGFsZUNoZWNrKCksdGhpcy5fc2NoZWR1bGVIZWFydGJlYXRSZWNvbm5lY3RDaGVjaygpfSx0aGlzLl9zY2hlZHVsZUNsZWFudXA9KCk9PntpZih0aGlzLl9jbGVhbnVwVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX2NsZWFudXBUaW1lb3V0KSwhdGhpcy5fc3RyZWFtUHJvY2Vzc29yKXJldHVybjtsZXQgZT1EYXRlLm5vdygpLHQ9dGhpcy5fbm9TdWJzY3JpYmVyc1RpbWVzdGFtcD9lLXRoaXMuX25vU3Vic2NyaWJlcnNUaW1lc3RhbXA6dm9pZCAwLG49dGhpcy5fbm90VmlzaWJsZVRpbWVzdGFtcD9lLXRoaXMuX25vdFZpc2libGVUaW1lc3RhbXA6dm9pZCAwO2lmKHQ9PT12b2lkIDAmJm49PT12b2lkIDApcmV0dXJuO2xldCByPU1hdGgubWluKHQ9PT12b2lkIDA/MioqNTMtMTp0aGlzLl9jbG9zZVVudXNlZENvbm5lY3Rpb25BZnRlck1zLXQsbj09PXZvaWQgMD8yKio1My0xOnRoaXMuX3BhdXNlQWZ0ZXJOb3RWaXNpYmxlRm9yTXMtbik7aWYocj4wKXt0aGlzLl9jbGVhbnVwVGltZW91dD1zZXRUaW1lb3V0KHRoaXMuX3NjaGVkdWxlQ2xlYW51cCxyKzEpO3JldHVybn1uIT09dm9pZCAwJiZ0aGlzLl9oYW5kbGVDb25uZWN0aW9uQ2xvc2VNZXRyaWMoYGFwcF9ub3RfdmlzaWJsZWApLHQhPT12b2lkIDAmJnRoaXMuX2hhbmRsZUNvbm5lY3Rpb25DbG9zZU1ldHJpYyhgbm9fc3Vic2NyaWJlcnNgKSx0aGlzLl9yZWNvbm5lY3RUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuX3JlY29ubmVjdFRpbWVvdXQpLHRoaXMuX3JlY29ubmVjdFRpbWVvdXQ9dm9pZCAwKSx0aGlzLl9jbGVhbnVwU3RyZWFtUHJvY2Vzc29yKCl9LHRoaXMuX3NjaGVkdWxlSXNTdGFsZUNoZWNrPSgpPT57dGhpcy5fbWlzc2luZ0hlYXJ0YmVhdFNldFN0YWxlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX21pc3NpbmdIZWFydGJlYXRTZXRTdGFsZVRpbWVvdXQpLHRoaXMuX21pc3NpbmdIZWFydGJlYXRTZXRTdGFsZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NoZWNrTWlzc2luZ0hlYXJ0YmVhdCgpfSx0aGlzLl9tYXJrQXNTdGFsZUFmdGVyTXMpfSx0aGlzLl9zY2hlZHVsZUhlYXJ0YmVhdFJlY29ubmVjdENoZWNrPSgpPT57dGhpcy5fbWlzc2luZ0hlYXJ0YmVhdFJlY29ubmVjdFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9taXNzaW5nSGVhcnRiZWF0UmVjb25uZWN0VGltZW91dCksdGhpcy5fbWlzc2luZ0hlYXJ0YmVhdFJlY29ubmVjdFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e0t2KCkmJnRoaXMuX3N1YnNjcmliZXJzLnNpemU+MCYmdGhpcy5fcmVjb25uZWN0KGBtaXNzaW5nX2hlYXJ0YmVhdGApfSx0aGlzLl9tYXhNaXNzaW5nSGVhcnRiZWF0SW50ZXJ2YWxNcyl9LHRoaXMubG9hZD1lPT4odGhpcy5fZGVmZXJyZWRMb2FkfHwodGhpcy5fZGVmZXJyZWRMb2FkPW5ldyBEeSksdGhpcy5fb3BlbihlKSwoYXN5bmMoKT0+e2F3YWl0IHRoaXMuX2RlZmVycmVkTG9hZCx0aGlzLm51bVN1YnNjcmliZXJzPT09MCYmKHRoaXMuX25vU3Vic2NyaWJlcnNUaW1lc3RhbXA9RGF0ZS5ub3coKSx0aGlzLl9zY2hlZHVsZUNsZWFudXAoKSl9KSgpLHRoaXMuX2RlZmVycmVkTG9hZCksdGhpcy5fcmVzb2x2ZURlZmVycmVkTG9hZD0oKT0+e3RoaXMuX2RlZmVycmVkTG9hZCYmKHRoaXMuX2RlZmVycmVkTG9hZC5yZXNvbHZlKHZvaWQgMCksdGhpcy5fZGVmZXJyZWRMb2FkPXZvaWQgMCl9LHRoaXMud2FpdEZvclVwZGF0ZT0oKT0+KHRoaXMuX29wZW4oKSx0aGlzLl91cGRhdGVEZWZlcnJlZHx8KHRoaXMuX3VwZGF0ZURlZmVycmVkPW5ldyBEeSksdGhpcy5fdXBkYXRlRGVmZXJyZWQpLHRoaXMuX3Jlc29sdmVVcGRhdGVQcm9taXNlPSgpPT57dGhpcy5fdXBkYXRlRGVmZXJyZWQmJih0aGlzLl91cGRhdGVEZWZlcnJlZC5yZXNvbHZlKHZvaWQgMCksdGhpcy5fdXBkYXRlRGVmZXJyZWQ9dm9pZCAwKX0sdGhpcy5fbm90aWZ5U3Vic2NyaWJlcnM9ZT0+e2ZvcihsZXQgdCBvZiB0aGlzLl9zdWJzY3JpYmVycyl0cnl7dC5jYWxsYmFjayhlKX1jYXRjaChlKXtlIGluc3RhbmNlb2YgRXJyb3ImJlh2KHtlcnJvcjplLG1ldGFkYXRhOnt1cmw6dGhpcy51cmwsc3RyZWFtTmFtZTp0aGlzLnN0cmVhbU5hbWV9fSl9fSx0aGlzLl9jaGVja01pc3NpbmdIZWFydGJlYXQ9KCk9PntsZXQgZT10aGlzLl9sYXN0TWVzc2FnZVRpbWVzdGFtcD8/MCx0PURhdGUubm93KCktZT50aGlzLl9tYXJrQXNTdGFsZUFmdGVyTXM7dGhpcy5zdHJlYW1OYW1lLHQhPT10aGlzLl9pc1N0YWxlJiYodGhpcy5faXNTdGFsZT10LHRoaXMuX2lzU3RhbGUmJkt2KCkmJnRoaXMuX2xvZ01ldHJpYyhNeS5TVEFMRV9EQVRBLHd5LmRpc3RyaWJ1dGlvbiwxKSx0aGlzLl9ub3RpZnlTdWJzY3JpYmVycyh7ZXZlbnRUeXBlOmBzdGFsZWAsaXNTdGFsZTp0fSkpLHRoaXMuX2lzU3RhbGV8fHRoaXMuX3NjaGVkdWxlSXNTdGFsZUNoZWNrKCl9LHRoaXMuc3Vic2NyaWJlPWU9Pih0aGlzLl9zdWJzY3JpYmVycy5hZGQoZSksdGhpcy5fc3RhcnRXYXRjaGluZ1BhZ2VWaXNpYmlsaXR5KCksdGhpcy5fbm9TdWJzY3JpYmVyc1RpbWVzdGFtcD12b2lkIDAsdGhpcy5fb3BlbigpLCgpPT57aWYodGhpcy5fc3Vic2NyaWJlcnMuZGVsZXRlKGUpLHRoaXMuX3N1YnNjcmliZXJzLnNpemU9PT0wKXt2YXIgdDt0aGlzLl9ub1N1YnNjcmliZXJzVGltZXN0YW1wPURhdGUubm93KCksKHQ9dGhpcy5fc3RvcFdhdGNoaW5nUGFnZVZpc2liaWxpdHkpPT1udWxsfHx0LmNhbGwodGhpcyl9dGhpcy5udW1TdWJzY3JpYmVycz09PTAmJih0aGlzLl9ub1N1YnNjcmliZXJzVGltZXN0YW1wPURhdGUubm93KCksdGhpcy5fc2NoZWR1bGVDbGVhbnVwKCkpfSksdGhpcy5raWxsPSgpPT57dmFyIGU7dGhpcy5pc0Rlc3Ryb3llZD0hMCwoZT10aGlzLl9zdHJlYW1Qcm9jZXNzb3IpPT1udWxsfHxlLmNhbmNlbCgpfSx0aGlzLl9nZXROZXh0VGltZW91dE1zPSgpPT57dmFyIGU7bGV0IHQ9dGhpcy5fcmV0cnlBdHRlbXB0cyxuPShlPU9iamVjdC5lbnRyaWVzKHRoaXMuX3JldHJ5VGltZW91dENvbmZpZykuc29ydCgoW2VdLFt0XSk9Pk51bWJlcih0KS1OdW1iZXIoZSkpLmZpbmQoKFtlXSk9Pk51bWJlcihlKTw9dCkpPT1udWxsP3ZvaWQgMDplWzFdO258fChuPUJ5KTtsZXQgcj1Fc2UqbipNYXRoLnJhbmRvbSgpKihNYXRoLnJhbmRvbSgpPi41PzE6LTEpO3JldHVybiBuK3J9LHRoaXMudXJsPWUsdGhpcy5zdHJlYW1OYW1lPXQsdGhpcy5fY29udGV4dD1fLHRoaXMuX2ZldGNoPW4sdGhpcy5fYWRkaXRpb25hbEhlYWRlcnM9Yyx0aGlzLl9zc2VEZXZUb29sc1JlcG9ydGVyPWwsciYmcjwwKXRocm93IEVycm9yKGBjbG9zZVVudXNlZENvbm5lY3Rpb25BZnRlciBhZnRlciBNUyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwYCk7aWYoaSYmaTwwKXRocm93IEVycm9yKGBwYXVzZUFmdGVyTm90VmlzaWJsZUZvck1zIG11c3QgYmUgZ3JlYXRlciB0aGFuIDBgKTt0aGlzLl9jcmVhdGVkQXQ9RGF0ZS5ub3coKSx0aGlzLl9tYXhNaXNzaW5nSGVhcnRiZWF0SW50ZXJ2YWxNcz1hLHRoaXMuX2Nsb3NlVW51c2VkQ29ubmVjdGlvbkFmdGVyTXM9cix0aGlzLl9wYXVzZUFmdGVyTm90VmlzaWJsZUZvck1zPWksdGhpcy5fbWFya0FzU3RhbGVBZnRlck1zPW8sdGhpcy5fbWF4Q29ubmVjdGlvblRpbWVvdXRNcz1zLHRoaXMuX2VuYWJsZUltcHJvdmVkRXJyb3JCb3VuZGFyeVN1cHBvcnQ9dT8/ITEsdGhpcy5fZW5hYmxlSW1wcm92ZWRSZXRyeVN1cHBvcnQ9ZD8/ITEsdGhpcy5fZW5hYmxlZFJlY29ubmVjdE9uUGF0Y2hFcnJvcj1mPz8hMSx0aGlzLl9kaXNhYmxlQ29udGVudExlbmd0aExvZ2dpbmc9cD8/ITEsdGhpcy5fdmFsaWRhdGVPcGVyYXRpb249bSx0aGlzLl90aHJvdHRsZU1zPWgsdGhpcy5fcmV0cnlUaW1lb3V0Q29uZmlnPWc/P09zZSx0aGlzLl9lbmFibGVNYXhSZXRyeUxpbWl0PXY/PyExLHRoaXMuX21heFJldHJ5QXR0ZW1wdHM9eT8/RHNlLHRoaXMuX2lzU3RhbGU9ITF9X2hhbHRCYXRjaFByb2Nlc3NpbmcoKXtjbGVhclRpbWVvdXQodGhpcy5fdGhyb3R0bGVkQmF0Y2hBcHBsaWNhdGlvblRpbWVvdXQpLHRoaXMuX3Rocm90dGxlZEJhdGNoQXBwbGljYXRpb25UaW1lb3V0PXZvaWQgMCx0aGlzLl90aHJvdHRsZWRNZXNzYWdlUXVldWU9W119X2NsZWFudXBTdHJlYW1Qcm9jZXNzb3IoKXt2YXIgZTsoZT10aGlzLl9zdHJlYW1Qcm9jZXNzb3IpPT1udWxsfHxlLmNhbmNlbCgpLHRoaXMuX3N0cmVhbVByb2Nlc3Nvcj12b2lkIDAsdGhpcy5fYWJvcnRDb250cm9sbGVyJiYodGhpcy5fYWJvcnRDb250cm9sbGVyLmFib3J0KCksdGhpcy5fYWJvcnRDb250cm9sbGVyPXZvaWQgMCksdGhpcy5fbWlzc2luZ0hlYXJ0YmVhdFJlY29ubmVjdFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9taXNzaW5nSGVhcnRiZWF0UmVjb25uZWN0VGltZW91dCl9fSxQc2U9UW0oankoankoe30sWm0pLHt9LHtjcmVkZW50aWFsczpgaW5jbHVkZWB9KSk7ZnVuY3Rpb24gRnNlKGUsdCl7aWYodClmb3IobGV0IG4gb2YgdC5lbnRyaWVzKCkpe2xldCB0PU95KG4sMikscj10WzBdLGk9dFsxXTtpZihyLnRlc3QoZSkpcmV0dXJuIGl9fWZ1bmN0aW9uIElzZShlLHQpe3JldHVybiF0fHxPYmplY3Qua2V5cyh0KS5sZW5ndGg9PT0wP2U6YCR7ZX06OmhlYWRlcnM6JHtPYmplY3Qua2V5cyh0KS5zb3J0KCkubWFwKGU9PmAke2V9OiR7dFtlXX1gKS5qb2luKGAsYCl9YH12YXIgVXk9KDAsRy5jcmVhdGVDb250ZXh0KSh2b2lkIDApLExzZT0oMCxHLm1lbW8pKGZ1bmN0aW9uKHtmZXRjaDplLGNsb3NlVW51c2VkQ29ubmVjdGlvbkFmdGVyTXM6dCxwYXVzZUFmdGVyTm90VmlzaWJsZUZvck1zOm4sbWF4TWlzc2luZ0hlYXJ0YmVhdEludGVydmFsTXM6cixtYXhDb25uZWN0aW9uVGltZW91dE1zOmksdmFsaWRhdGVPcGVyYXRpb246YSxlbmFibGVNYXhSZXRyeUxpbWl0Om8sbWF4UmV0cnlBdHRlbXB0czpzLHJldHJ5VGltZW91dENvbmZpZzpjLGluaXRpYWxSZXNvdXJjZXM6bCxjaGlsZHJlbjp1LGVuYWJsZUZldGNoQmFzZWRTdHJlYW1pbmc6ZCxjaGVja0FsbG93RmV0Y2hCYXNlZFN0cmVhbWluZ0J5VXJsOmYsc3NlRGV2VG9vbHNSZXBvcnRlcjpwLGVuYWJsZUltcHJvdmVkRXJyb3JCb3VuZGFyeVN1cHBvcnQ6bSxlbmFibGVJbXByb3ZlZFJldHJ5U3VwcG9ydDpoLGVuYWJsZWRSZWNvbm5lY3RPblBhdGNoRXJyb3I6ZyxkaXNhYmxlQ29udGVudExlbmd0aExvZ2dpbmc6XyxwZXJSZXNvdXJjZUNvbmZpZzp2fSl7bGV0IHk9ZT8/UHNlLGI9T3koKDAsRy51c2VTdGF0ZSkoKCk9PntsZXQgZT17fTtpZihsKWZvcihsZXQgdCBvZiBsKWVbdC51cmxdPXQ7cmV0dXJuIGV9KSwxKVswXSx4PSgwLEcudXNlUmVmKSghMCk7KDAsRy51c2VFZmZlY3QpKCgpPT57aWYoeC5jdXJyZW50KXt4LmN1cnJlbnQ9ITE7cmV0dXJufWNvbnNvbGUud2Fybih0eSxueSxgU3RyZWFtaW5nIHJlc291cmNlIHByb3AgY2hhbmdlIG5vdCBhcHBsaWVkIHRvIGV4aXN0aW5nIHJlc291cmNlcy5gKX0sW3QsbixyLGxdKSwoMCxHLnVzZUVmZmVjdCkoKCk9PigpPT57bGV0IGU9T2JqZWN0LnZhbHVlcyhiKTtmb3IobGV0IHQgb2YgZSlga2lsbGBpbiB0JiZ0LmtpbGwoKX0sW2JdKTtsZXQgUz0oMCxHLnVzZUNhbGxiYWNrKSgoe3VybDplLHN0cmVhbU5hbWU6bCxhZGRpdGlvbmFsSGVhZGVyczp1LGNvbnRleHQ6eH0pPT57bGV0IFM9Zj9mKGUpOiEwLEM9ZCYmUz9Oc2U6X3NlLHc9SXNlKGUsdSk7aWYoYlt3XSlyZXR1cm4gYlt3XTtsZXQgVD1Gc2UoZSx2KSxFPW5ldyBDKGp5KHtmZXRjaDp5LHVybDplLHN0cmVhbU5hbWU6bCxjb250ZXh0OngsY2xvc2VVbnVzZWRDb25uZWN0aW9uQWZ0ZXJNczp0LHBhdXNlQWZ0ZXJOb3RWaXNpYmxlRm9yTXM6bixtYXhNaXNzaW5nSGVhcnRiZWF0SW50ZXJ2YWxNczpyLG1heENvbm5lY3Rpb25UaW1lb3V0TXM6aSxhZGRpdGlvbmFsSGVhZGVyczp1LHZhbGlkYXRlT3BlcmF0aW9uOmEsc3NlRGV2VG9vbHNSZXBvcnRlcjpwLGVuYWJsZUltcHJvdmVkRXJyb3JCb3VuZGFyeVN1cHBvcnQ6bSxlbmFibGVJbXByb3ZlZFJldHJ5U3VwcG9ydDpoLGVuYWJsZWRSZWNvbm5lY3RPblBhdGNoRXJyb3I6ZyxkaXNhYmxlQ29udGVudExlbmd0aExvZ2dpbmc6XyxlbmFibGVNYXhSZXRyeUxpbWl0Om8sbWF4UmV0cnlBdHRlbXB0czpzLHJldHJ5VGltZW91dENvbmZpZzpjfSxUKSk7cmV0dXJuIGJbd109RSxFfSxbeSxiLHQsbixyLGksYSxvLHMsYyxkLGYscCxtLGgsZyxfLHZdKSxDPSgwLEcudXNlQ2FsbGJhY2spKCgpPT5PYmplY3QudmFsdWVzKGIpLmZpbHRlcihlPT5lLmRhdGE9PT12b2lkIDAmJmUuaXNMb2FkaW5nKSxbYl0pLHc9KDAsRy51c2VDYWxsYmFjaykoKCk9Pntmb3IobGV0IGUgb2YgT2JqZWN0LmtleXMoYikpe2xldCB0PWJbZV07dC5kYXRhIGluc3RhbmNlb2YgRXJyb3ImJihga2lsbGBpbiB0JiZ0LmtpbGwoKSxkZWxldGUgYltlXSl9fSxbYl0pLFQ9KDAsRy51c2VNZW1vKSgoKT0+KHtnZXRSZXNvdXJjZTpTLGdldEFsbFBlbmRpbmdSZXNvdXJjZXM6QyxraWxsQW5kUmVtb3ZlRmFpbGVkUmVzb3VyY2VzOnd9KSxbUyxDLHddKTtyZXR1cm4oMCxLLmpzeCkoVXkuUHJvdmlkZXIse3ZhbHVlOlQsY2hpbGRyZW46dX0pfSk7ZnVuY3Rpb24gUnNlKHt1cmw6ZSxzdHJlYW1OYW1lOnQsYWRkaXRpb25hbEhlYWRlcnM6bixjb250ZXh0OnJ9KXtsZXQgaT0oMCxHLnVzZUNvbnRleHQpKFV5KTtpZighaSl0aHJvdyBFcnJvcihgQXR0ZW1wdGVkIHRvIHVzZSB1c2VTdHJlYW1pbmdSZXNvdXJjZUNhY2hlIHdpdGhvdXQgYSBwcm92aWRlci4gUGxlYXNlIGFkZCBhIHByb3ZpZGVyIHRvIHlvdXIgY29tcG9uZW50IHRyZWVgKTtyZXR1cm4gaS5nZXRSZXNvdXJjZSh7dXJsOmUsc3RyZWFtTmFtZTp0LGFkZGl0aW9uYWxIZWFkZXJzOm4sY29udGV4dDpyfSl9ZnVuY3Rpb24gV3koZSx0KXtyZXR1cm4gSHNlKGUpfHxWc2UoZSx0KXx8QnNlKGUsdCl8fHpzZSgpfWZ1bmN0aW9uIHpzZSgpe3Rocm93IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIEJzZShlLHQpe2lmKGUpe2lmKHR5cGVvZiBlPT1gc3RyaW5nYClyZXR1cm4gR3koZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYobj09PWBPYmplY3RgJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLG49PT1gTWFwYHx8bj09PWBTZXRgKXJldHVybiBBcnJheS5mcm9tKGUpO2lmKG49PT1gQXJndW1lbnRzYHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIEd5KGUsdCl9fWZ1bmN0aW9uIEd5KGUsdCl7KHQ9PW51bGx8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBWc2UoZSx0KXt2YXIgbj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDxgdWAmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtgQEBpdGVyYXRvcmBdO2lmKG4hPW51bGwpe3ZhciByLGksYSxvLHM9W10sYz0hMCxsPSExO3RyeXtpZihhPShuPW4uY2FsbChlKSkubmV4dCx0PT09MCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihzLnB1c2goci52YWx1ZSkscy5sZW5ndGghPT10KTtjPSEwKTt9Y2F0Y2goZSl7bD0hMCxpPWV9ZmluYWxseXt0cnl7aWYoIWMmJm4ucmV0dXJuIT1udWxsJiYobz1uLnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGwpdGhyb3cgaX19cmV0dXJuIHN9fWZ1bmN0aW9uIEhzZShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfWZ1bmN0aW9uIEt5KGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gcXkoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/S3koT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe1VzZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpLeShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gVXNlKGUsdCxuKXtyZXR1cm4gdD1Xc2UodCksdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBXc2UoZSl7dmFyIHQ9R3NlKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDpTdHJpbmcodCl9ZnVuY3Rpb24gR3NlKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9dmFyIEp5PShlLHQ9ITEpPT5hc3luYyhuLHIpPT57bGV0IGk9YXdhaXQgZShuLHIpO2lmKGkgaW5zdGFuY2VvZiBzbSlyZXR1cm4gaTtpZihpIGluc3RhbmNlb2YgZW0pcmV0dXJuIGkucmVzcG9uc2VKc29uPWV5KGkucmVzcG9uc2VKc29uKSxpO3RyeXtsZXQgZT1pLmpzb24uYmluZChpKTtpLmpzb249YXN5bmMoLi4uaSk9Pnt0cnl7bGV0IG49YXdhaXQgZSguLi5pKTtyZXR1cm4gciE9bnVsbCYmci5kaXNhYmxlQ2FtZWxpemU/bjpleShuLHQpfWNhdGNoKGUpe3JldHVybiBYdih7ZXJyb3I6ZSxtZXRhZGF0YTp7dXJsOm59fSksZX19fWNhdGNoKGUpe1h2KHtlcnJvcjplLG1ldGFkYXRhOnt1cmw6bn19KX1yZXR1cm4gaX0sWXk9Y2xhc3N7X3NldERhdGEoZSl7aWYodGhpcy5fZGF0YT1lLHRoaXMuX2RhdGFJc1N0YWxlPSExLCEoZSBpbnN0YW5jZW9mIEVycm9yKSl7dmFyIHQ7dGhpcy5fbGFzdE5vbkVycm9yRGF0YT1lLCh0PXRoaXMuX3NjaGVkdWxlUGVyc2lzdCk9PW51bGx8fHQuY2FsbCh0aGlzKX19X3NldEh5ZHJhdGVkRGF0YShlKXt0aGlzLl9kYXRhPWUsdGhpcy5fZGF0YUlzU3RhbGU9ITB9Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy5fZGF0YX1nZXQgbGFzdE5vbkVycm9yRGF0YSgpe3JldHVybiB0aGlzLl9sYXN0Tm9uRXJyb3JEYXRhfWdldCBkYXRhSXNTdGFsZSgpe3JldHVybiB0aGlzLl9kYXRhSXNTdGFsZX1nZXQgbGFzdFVwZGF0ZWQoKXtyZXR1cm4gdGhpcy5fbGFzdFVwZGF0ZWR9Y29uc3RydWN0b3Ioe2ZldGNoOmUsdXJsOnQsY2xlYW51cEFmdGVyTXM6bixoeWRyYXRlZERhdGE6cixpbml0aWFsRGF0YTppLGRpc2FibGVDYW1lbGl6ZTphLGFkZGl0aW9uYWxIZWFkZXJzOm8sc2NoZWR1bGVQZXJzaXN0OnN9KXtpZih0aGlzLnVybD12b2lkIDAsdGhpcy5fZmV0Y2hGdW5jdGlvbj12b2lkIDAsdGhpcy5fbGFzdFVwZGF0ZWQ9dm9pZCAwLHRoaXMuX2RhdGE9dm9pZCAwLHRoaXMuX2xhc3ROb25FcnJvckRhdGE9dm9pZCAwLHRoaXMuX2RhdGFJc1N0YWxlPSExLHRoaXMuX2lzQ2FtZWxpemVEaXNhYmxlZD12b2lkIDAsdGhpcy5fYWRkaXRpb25hbEhlYWRlcnM9dm9pZCAwLHRoaXMuX2NsZWFudXBBZnRlck1zPXZvaWQgMCx0aGlzLl9zdWJzY3JpYmVycz1uZXcgU2V0LHRoaXMuX25vU3Vic2NyaWJlcnNUaW1lc3RhbXA9RGF0ZS5ub3coKSx0aGlzLl9zY2hlZHVsZVBlcnNpc3Q9dm9pZCAwLHRoaXMuX29uUGFnZVZpc2libGU9KCk9Pnt0aGlzLl9zY2hlZHVsZVJlZnJlc2goKX0sdGhpcy5fc3RvcFdhdGNoaW5nUGFnZVZpc2liaWxpdHk9dm9pZCAwLHRoaXMuX3N0YXJ0V2F0Y2hpbmdQYWdlVmlzaWJpbGl0eT0oKT0+e2lmKHRoaXMuX3N0b3BXYXRjaGluZ1BhZ2VWaXNpYmlsaXR5KXJldHVybjtsZXQgZT1xdihlPT57ZT90aGlzLl9zY2hlZHVsZVJlZnJlc2goKTp0aGlzLl9yZWZyZXNoVGltZW91dElkJiZjbGVhclRpbWVvdXQodGhpcy5fcmVmcmVzaFRpbWVvdXRJZCl9KTt0aGlzLl9zdG9wV2F0Y2hpbmdQYWdlVmlzaWJpbGl0eT1lfSx0aGlzLl9yZWZyZXNoVGltZW91dElkPXZvaWQgMCx0aGlzLl9zY2hlZHVsZVJlZnJlc2g9KGU9RGF0ZS5ub3coKSk9PntpZih0aGlzLl9yZWZyZXNoVGltZW91dElkJiZjbGVhclRpbWVvdXQodGhpcy5fcmVmcmVzaFRpbWVvdXRJZCksS3YoKSYmdGhpcy5fc3Vic2NyaWJlcnMuc2l6ZSl7bGV0IHQ7Zm9yKGxldCBlIG9mIHRoaXMuX3N1YnNjcmliZXJzKXtsZXQgbj1lLm1heEFnZU1zO24mJm4+MCYmKHQ9dD9NYXRoLm1pbih0LG4pOm4pfWxldCBuPXQmJnRoaXMubGFzdFVwZGF0ZWQ/dGhpcy5sYXN0VXBkYXRlZCt0LWU6dm9pZCAwO2lmKG49PT12b2lkIDApcmV0dXJuO3RoaXMuX3JlZnJlc2hUaW1lb3V0SWQ9c2V0VGltZW91dCh0aGlzLmZldGNoLE1hdGgubWF4KG4sMCkpfX0sdGhpcy5fY2xlYW51cFRpbWVvdXRJZD12b2lkIDAsdGhpcy5fc2NoZWR1bGVDbGVhbnVwPShlPURhdGUubm93KCkpPT57aWYodGhpcy5fY2xlYW51cFRpbWVvdXRJZCYmY2xlYXJUaW1lb3V0KHRoaXMuX2NsZWFudXBUaW1lb3V0SWQpLHRoaXMuX25vU3Vic2NyaWJlcnNUaW1lc3RhbXAmJnRoaXMuX2NsZWFudXBBZnRlck1zKXtsZXQgdD10aGlzLl9ub1N1YnNjcmliZXJzVGltZXN0YW1wK3RoaXMuX2NsZWFudXBBZnRlck1zLWU7dDw9MD8odGhpcy5fc2V0RGF0YSh2b2lkIDApLHRoaXMuX2xhc3RVcGRhdGVkPXZvaWQgMCx0aGlzLl9ub3RpZnlTdWJzY3JpYmVycygpKTp0aGlzLl9jbGVhbnVwVGltZW91dElkPXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9zZXREYXRhKHZvaWQgMCksdGhpcy5fbGFzdFVwZGF0ZWQ9dm9pZCAwLHRoaXMuX25vdGlmeVN1YnNjcmliZXJzKCl9LHQpfX0sdGhpcy5faW5GbGlnaHRSZXF1ZXN0PXZvaWQgMCx0aGlzLmZldGNoPWFzeW5jKCk9PntpZih0aGlzLl9pbkZsaWdodFJlcXVlc3QpcmV0dXJuIHRoaXMuX2luRmxpZ2h0UmVxdWVzdDtsZXQgZT1hc3luYygpPT57bGV0IGU9YXdhaXQgdGhpcy5fZmV0Y2hGdW5jdGlvbih0aGlzLnVybCx7aGVhZGVyczpxeSh7YWNjZXB0OmBhcHBsaWNhdGlvbi9qc29uYCwiY29udGVudC10eXBlIjpgYXBwbGljYXRpb24vanNvbmB9LHRoaXMuX2FkZGl0aW9uYWxIZWFkZXJzKSxkaXNhYmxlQ2FtZWxpemU6dGhpcy5faXNDYW1lbGl6ZURpc2FibGVkPz8hMX0pLHQ9RGF0ZS5ub3coKTtpZih0aGlzLl9sYXN0VXBkYXRlZD10LHRoaXMuX25vU3Vic2NyaWJlcnNUaW1lc3RhbXA9dGhpcy5fbm9TdWJzY3JpYmVyc1RpbWVzdGFtcCYmdCx0aGlzLl9zY2hlZHVsZUNsZWFudXAodCksdGhpcy5fc2NoZWR1bGVSZWZyZXNoKHQpLGUgaW5zdGFuY2VvZiBFcnJvcilYdih7ZXJyb3I6ZSxtZXRhZGF0YTp7dXJsOnRoaXMudXJsfX0pLHRoaXMuX3NldERhdGEoZSksdGhpcy5fbm90aWZ5U3Vic2NyaWJlcnMoKTtlbHNlIHRyeXtsZXQgdD1hd2FpdCBlLmpzb24oKTsoMCxyeS5kZWZhdWx0KSh0aGlzLl9kYXRhLHQpfHwodGhpcy5fc2V0RGF0YSh0KSx0aGlzLl9ub3RpZnlTdWJzY3JpYmVycygpKX1jYXRjaChlKXtsZXQgdD1uZXcgc20oe21lc3NhZ2U6YEZhaWxlZCB0byBwYXJzZSBqc29uIHJlcG9uc2VgLGVycm9yOmUgaW5zdGFuY2VvZiBFcnJvcj9lOnZvaWQgMH0pO1h2KHtlcnJvcjp0LG1ldGFkYXRhOnt1cmw6dGhpcy51cmx9fSksdGhpcy5fc2V0RGF0YSh0KSx0aGlzLl9ub3RpZnlTdWJzY3JpYmVycygpfXRoaXMuX2luRmxpZ2h0UmVxdWVzdD12b2lkIDB9O3JldHVybiB0aGlzLl9pbkZsaWdodFJlcXVlc3Q9ZSgpLHRoaXMuX2luRmxpZ2h0UmVxdWVzdH0sdGhpcy5fbm90aWZ5U3Vic2NyaWJlcnM9KCk9Pntmb3IobGV0IGUgb2YgdGhpcy5fc3Vic2NyaWJlcnMpdHJ5e2UuY2FsbGJhY2soKX1jYXRjaChlKXtlIGluc3RhbmNlb2YgRXJyb3ImJlh2KHtlcnJvcjplLG1ldGFkYXRhOnt1cmw6dGhpcy51cmx9fSl9fSx0aGlzLnN1YnNjcmliZT1lPT4odGhpcy5fc3Vic2NyaWJlcnMuYWRkKGUpLHRoaXMuX3N0YXJ0V2F0Y2hpbmdQYWdlVmlzaWJpbGl0eSgpLHRoaXMuX25vU3Vic2NyaWJlcnNUaW1lc3RhbXA9dm9pZCAwLHRoaXMuX3NjaGVkdWxlUmVmcmVzaCgpLHRoaXMuX3NjaGVkdWxlQ2xlYW51cCgpLCgpPT57aWYodGhpcy5fc3Vic2NyaWJlcnMuZGVsZXRlKGUpLHRoaXMuX3N1YnNjcmliZXJzLnNpemU9PT0wKXt2YXIgdDt0aGlzLl9ub1N1YnNjcmliZXJzVGltZXN0YW1wPURhdGUubm93KCksKHQ9dGhpcy5fc3RvcFdhdGNoaW5nUGFnZVZpc2liaWxpdHkpPT1udWxsfHx0LmNhbGwodGhpcyl9dGhpcy5fc2NoZWR1bGVSZWZyZXNoKCksdGhpcy5fc3Vic2NyaWJlcnMuc2l6ZT09PTAmJnRoaXMuX3NjaGVkdWxlQ2xlYW51cCgpfSksdGhpcy5jbGVhcj0oKT0+e3RoaXMuX3NldERhdGEodm9pZCAwKSx0aGlzLl9sYXN0VXBkYXRlZD12b2lkIDAsdGhpcy5fbm90aWZ5U3Vic2NyaWJlcnMoKSx0aGlzLl9zY2hlZHVsZVJlZnJlc2goKX0sdGhpcy5vcHRpbWlzdGljVXBkYXRlPWFzeW5jIGU9PntsZXQgdD1XeShlKHRoaXMuX2RhdGEgaW5zdGFuY2VvZiBFcnJvcj92b2lkIDA6dGhpcy5fZGF0YSksMiksbj10WzBdLHI9dFsxXTtyZXR1cm4gdGhpcy5fc2V0RGF0YShuKSx0aGlzLl9sYXN0VXBkYXRlZD1EYXRlLm5vdygpLHRoaXMuX25vdGlmeVN1YnNjcmliZXJzKCksYXdhaXQgcixhd2FpdCB0aGlzLmZldGNoKCkscn0sdGhpcy51cmw9dCx0aGlzLl9mZXRjaEZ1bmN0aW9uPWUsdGhpcy5fc2NoZWR1bGVQZXJzaXN0PXMsdGhpcy5faXNDYW1lbGl6ZURpc2FibGVkPWEsdGhpcy5fYWRkaXRpb25hbEhlYWRlcnM9byxuJiZuPDApdGhyb3cgRXJyb3IoYENsZWFudXAgYWZ0ZXIgTVMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMGApO2lmKHRoaXMuX2NsZWFudXBBZnRlck1zPW4sciYmdGhpcy5fZGF0YT09PXZvaWQgMCYmdGhpcy5fc2V0SHlkcmF0ZWREYXRhKHIpLGkpe2xldCBlPXRoaXMuX2RhdGEhPT12b2lkIDA7dGhpcy5faW5GbGlnaHRSZXF1ZXN0PWkudGhlbih0PT57dGhpcy5fc2V0RGF0YSh0KTtsZXQgbj1EYXRlLm5vdygpO3RoaXMuX2xhc3RVcGRhdGVkPW4sdGhpcy5fbm9TdWJzY3JpYmVyc1RpbWVzdGFtcD10aGlzLl9ub1N1YnNjcmliZXJzVGltZXN0YW1wJiZuLHRoaXMuX3NjaGVkdWxlUmVmcmVzaChuKSx0aGlzLl9zY2hlZHVsZUNsZWFudXAobiksdGhpcy5faW5GbGlnaHRSZXF1ZXN0PXZvaWQgMCx0aGlzLl9pc0NhbWVsaXplRGlzYWJsZWQ9YSx0aGlzLl9hZGRpdGlvbmFsSGVhZGVycz1vLGUmJnRoaXMuX25vdGlmeVN1YnNjcmliZXJzKCl9KX19Z2V0IG51bVN1YnNjcmliZXJzKCl7cmV0dXJuIHRoaXMuX3N1YnNjcmliZXJzLnNpemV9Z2V0IGlzRmV0Y2hpbmcoKXtyZXR1cm4hIXRoaXMuX2luRmxpZ2h0UmVxdWVzdH19LEtzZT1KeShRbShxeShxeSh7fSxabSkse30se2NyZWRlbnRpYWxzOmBpbmNsdWRlYH0pKSksWHk9KDAsRy5jcmVhdGVDb250ZXh0KSh2b2lkIDApLFp5PSgwLEcubWVtbykoKHtmZXRjaDplLGNsZWFudXBBZnRlck1zOnQscGVyc2lzdG9yOm4scHJlZmV0Y2hlZERhdGE6cj17fSxjaGlsZHJlbjppLGNhY2hlS2V5OmEsaWdub3JlQ2FjaGVIZWFkZXJzOm89W119KT0+e2xldCBzPWU/P0tzZSxjPVd5KCgwLEcudXNlU3RhdGUpKHt9KSwxKVswXSxsPVd5KCgwLEcudXNlU3RhdGUpKGEpLDIpLHU9bFswXSxkPWxbMV07aWYobiE9bnVsbCYmbi5oeWRyYXRpb25JblByb2dyZXNzKXRocm93IG4ud2FpdE9uSHlkcmF0ZSgpO2xldCBmPSgwLEcudXNlTWVtbykoKCk9PihuPT1udWxsP3ZvaWQgMDpuLmh5ZHJhdGVkRGF0YSk/P3t9LFtuXSkscD0oMCxHLnVzZU1lbW8pKCgpPT5uPygpPT57bi5wZXJzaXN0KGMpfTp2b2lkIDAsW24sY10pOygwLEcudXNlRWZmZWN0KSgoKT0+e09iamVjdC5rZXlzKHF5KHF5KHt9LGYpLHIpKS5mb3JFYWNoKGU9PntsZXQgbj1lLnNwbGl0KGA6OmApLGk9blswXSxhO24ubGVuZ3RoPjEmJihhPW5bMV0uaW5jbHVkZXMoYGRpc2FibGVDYW1lbGl6ZWApKSxjW2VdfHwoY1tlXT1uZXcgWXkoe2ZldGNoOnMsdXJsOmksZGlzYWJsZUNhbWVsaXplOmEsY2xlYW51cEFmdGVyTXM6dCxoeWRyYXRlZERhdGE6Zj09bnVsbD92b2lkIDA6ZltlXSxpbml0aWFsRGF0YTpyW2VdLHNjaGVkdWxlUGVyc2lzdDpwfSkpLGRlbGV0ZSByW2VdLGRlbGV0ZSBmW2VdfSl9LFtzLGMsZixyLHAsdF0pO2xldCBtPSgwLEcudXNlUmVmKSghMCk7KDAsRy51c2VFZmZlY3QpKCgpPT57aWYobS5jdXJyZW50KXttLmN1cnJlbnQ9ITE7cmV0dXJufWNvbnNvbGUud2Fybih0eSxueSxgRmV0Y2ggcmVzb3VyY2UgcHJvcCBjaGFuZ2Ugbm90IGFwcGxpZWQgdG8gZXhpc3RpbmcgcmVzb3VyY2VzLmApfSxbdF0pLCgwLEcudXNlRWZmZWN0KSgoKT0+e2EhPT11JiYoZChhKSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGU9PmRlbGV0ZSBjW2VdKSl9LFtjLHUsYV0pO2xldCBoPSgwLEcudXNlQ2FsbGJhY2spKChlLG4saSk9PntsZXQgYT1gYDtpZihpKXtsZXQgZT1PYmplY3QuZW50cmllcyhpKS5maWx0ZXIoKFtlXSk9PiFvLmluY2x1ZGVzKGUpKSx0PU9iamVjdC5mcm9tRW50cmllcyhlKTtlLmxlbmd0aD4wJiYoYT1gOjpoZWFkZXJzOiR7SlNPTi5zdHJpbmdpZnkodCl9YCl9bGV0IGw9YCR7ZX0ke24/YDo6ZGlzYWJsZUNhbWVsaXplYDpgYH0ke2F9YDtyZXR1cm4gY1tsXXx8KGNbbF09bmV3IFl5KHtmZXRjaDpzLHVybDplLGNsZWFudXBBZnRlck1zOnQsZGlzYWJsZUNhbWVsaXplOm4sYWRkaXRpb25hbEhlYWRlcnM6aSxoeWRyYXRlZERhdGE6Zj09bnVsbD92b2lkIDA6ZltsXSxpbml0aWFsRGF0YTpyW2xdLHNjaGVkdWxlUGVyc2lzdDpwfSkpLGNbbF19LFtzLHQsYyxmLHIscCxvXSksZz0oMCxHLnVzZUNhbGxiYWNrKSgoKT0+T2JqZWN0LnZhbHVlcyhjKS5maWx0ZXIoZT0+ZS5kYXRhPT09dm9pZCAwJiZlLmlzRmV0Y2hpbmcpLFtjXSksXz0oMCxHLnVzZUNhbGxiYWNrKSgoKT0+T2JqZWN0LnZhbHVlcyhjKS5maWx0ZXIoZT0+ZS5kYXRhIGluc3RhbmNlb2YgRXJyb3IpLFtjXSksdj0oMCxHLnVzZU1lbW8pKCgpPT4oe2ZldGNoOnMsZ2V0UmVzb3VyY2U6aCxnZXRBbGxQZW5kaW5nUmVzb3VyY2VzOmcsZ2V0QWxsRmFpbGVkUmVzb3VyY2VzOl99KSxbcyxoLGcsX10pO3JldHVybigwLEsuanN4KShYeS5Qcm92aWRlcix7dmFsdWU6dixjaGlsZHJlbjppfSl9KTtmdW5jdGlvbiBReShlLHQsbil7bGV0IHI9KDAsRy51c2VDb250ZXh0KShYeSk7aWYoIXIpdGhyb3cgRXJyb3IoYEF0dGVtcHRlZCB0byB1c2UgdXNlRmV0Y2hhYmxlUmVzb3VyY2Ugd2l0aG91dCBhIHByb3ZpZGVyLiBQbGVhc2UgYWRkIGEgcHJvdmlkZXIgdG8geW91ciBjb21wb25lbnQgdHJlZWApO3JldHVybiByLmdldFJlc291cmNlKGUsdCxuKX1mdW5jdGlvbiBxc2UoKXtsZXQgZT0oMCxHLnVzZUNvbnRleHQpKFh5KTtpZighZSl0aHJvdyBFcnJvcihgQXR0ZW1wdGVkIHRvIHVzZSB1c2VHZXRSZXNvdXJjZSB3aXRob3V0IGEgcHJvdmlkZXIuIFBsZWFzZSBhZGQgYSBwcm92aWRlciB0byB5b3VyIGNvbXBvbmVudCB0cmVlYCk7cmV0dXJuIGUuZ2V0UmVzb3VyY2V9ZnVuY3Rpb24gJHkoKXtsZXQgZT0oMCxHLnVzZUNvbnRleHQpKFh5KTtpZighZSl0aHJvdyBFcnJvcihgQXR0ZW1wdGVkIHRvIHVzZSB1c2VGZXRjaGFibGVSZXNvdXJjZUZldGNoIHdpdGhvdXQgYSBwcm92aWRlci4gUGxlYXNlIGFkZCBhIEZldGNoYWJsZVJlc291cmNlUHJvdmlkZXIgdG8geW91ciBjb21wb25lbnQgdHJlZWApO3JldHVybiBlLmZldGNofXZhciBlYj1mdW5jdGlvbihlKXtyZXR1cm4gZS5UWVBFX1VOU1BFQ0lGSUVEPWBUWVBFX1VOU1BFQ0lGSUVEYCxlLk5PXzJGQT1gTk9fMkZBYCxlLlNNUz1gU01TYCxlLlRPVFA9YFRPVFBgLGUuRklETz1gRklET2AsZS5VMkY9YFUyRmAsZS5ERVZJQ0VfVkVSSUZJQ0FUSU9OPWBERVZJQ0VfVkVSSUZJQ0FUSU9OYCxlLklEVj1gSURWYCxlLlJFQ09WRVJZX0NPREU9YFJFQ09WRVJZX0NPREVgLGUuUFVTSD1gUFVTSGAsZS5CWVBBU1M9YEJZUEFTU2AsZS5CQUNLVVBfQ09ERT1gQkFDS1VQX0NPREVgLGUuRU1BSUw9YEVNQUlMYCxlLlNFQ1VSSVRZX1FVRVNUSU9OPWBTRUNVUklUWV9RVUVTVElPTmAsZS5QQVNTV09SRD1gUEFTU1dPUkRgLGUuUEFTU0tFWT1gUEFTU0tFWWAsZS5EQVRBX0xPQ0tFUj1gREFUQV9MT0NLRVJgLGUuT0FVVEg9YE9BVVRIYCxlLk9BVVRIX0dPT0dMRT1gT0FVVEhfR09PR0xFYCxlLk9BVVRIX0FQUExFPWBPQVVUSF9BUFBMRWAsZS5ESVNQTEFZX05BTUU9YERJU1BMQVlfTkFNRWAsZS5PQVVUSF9PS1RBPWBPQVVUSF9PS1RBYCxlLkdVQVJESUFOPWBHVUFSRElBTmAsZS5TU089YFNTT2AsZS5DT05TRU5TVVM9YENPTlNFTlNVU2AsZS5CSU9NRVRSSUM9YEJJT01FVFJJQ2AsZX0oe30pLEpzZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5ERUZBVUxUPWBERUZBVUxUYCxlLkFMTE9XPWBBTExPV2AsZS5ESVNBTExPVz1gRElTQUxMT1dgLGV9KHt9KSxZc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuU1RBVFVTX1VOU1BFQ0lGSUVEPWBTVEFUVVNfVU5TUEVDSUZJRURgLGUuTElOS0VEPWBMSU5LRURgLGUuTUlTU0lOR19MSU5LPWBNSVNTSU5HX0xJTktgLGUuU0lHTlVQX05FRURFRD1gU0lHTlVQX05FRURFRGAsZX0oe30pLHRiPXtVUzpgVVNgLERFOmBERWAsR0I6YEdCYCxGUjpgRlJgLENBOmBDQWAsUFQ6YFBUYCxCUjpgQlJgLEVTOmBFU2AsU0c6YFNHYCxBVTpgQVVgLElUOmBJVGAsTkw6YE5MYCxBUjpgQVJgLElOOmBJTmAsTVg6YE1YYH0sbmI9e2VuOntuYW1lOmBFbmdsaXNoYCxjb2RlOmBlbmB9LGVzOntuYW1lOmBFc3Bhw7FvbGAsY29kZTpgZXNgfSxmcjp7bmFtZTpgRnJhbsOnYWlzYCxjb2RlOmBmcmB9LGRlOntuYW1lOmBEZXV0c2NoYCxjb2RlOmBkZWB9LGl0OntuYW1lOmBJdGFsaWFub2AsY29kZTpgaXRgfSxubDp7bmFtZTpgTmVkZXJsYW5kc2AsY29kZTpgbmxgfSxwbDp7bmFtZTpgUG9sc2tpYCxjb2RlOmBwbGB9LHB0OntuYW1lOmBQb3J0dWd1w6pzYCxjb2RlOmBwdGB9LHJ1OntuYW1lOmDQoNGD0YHRgdC60LjQuWAsY29kZTpgcnVgfSx0aDp7bmFtZTpg4LmE4LiX4LiiYCxjb2RlOmB0aGB9LHpoOntuYW1lOmDkuK3mlodgLGNvZGU6YHpoYH0saWQ6e25hbWU6YEJhaGFzYSBJbmRvbmVzaWFgLGNvZGU6YGlkYH19LHJiPXt1czp7Y291bnRyeV9jb2RlOnRiLlVTLGNvdW50cnlfbmFtZTpgVW5pdGVkIFN0YXRlc2AsZGVmYXVsdF9sb2NhbGU6YGVuYCxzdXBwb3J0ZWRfbG9jYWxlczpbbmIuZXMuY29kZSxuYi5lbi5jb2RlXX0sZGU6e2NvdW50cnlfY29kZTp0Yi5ERSxjb3VudHJ5X25hbWU6YEdlcm1hbnlgLGRlZmF1bHRfbG9jYWxlOmBkZWAsc3VwcG9ydGVkX2xvY2FsZXM6W25iLmRlLmNvZGUsbmIuZW4uY29kZV0saXNfZGVmYXVsdF9sb2NhbGVfc2luZ2xlX3BhdGg6ITB9LGdiOntjb3VudHJ5X2NvZGU6dGIuR0IsY291bnRyeV9uYW1lOmBVbml0ZWQgS2luZ2RvbWAsZGVmYXVsdF9sb2NhbGU6YGVuYCxzdXBwb3J0ZWRfbG9jYWxlczpbbmIuZW4uY29kZV19LGZyOntjb3VudHJ5X2NvZGU6dGIuRlIsY291bnRyeV9uYW1lOmBGcmFuY2VgLGRlZmF1bHRfbG9jYWxlOmBmcmAsc3VwcG9ydGVkX2xvY2FsZXM6W25iLmVuLmNvZGUsbmIuZnIuY29kZV19LGNhOntjb3VudHJ5X2NvZGU6dGIuQ0EsY291bnRyeV9uYW1lOmBDYW5hZGFgLGRlZmF1bHRfbG9jYWxlOmBlbmAsc3VwcG9ydGVkX2xvY2FsZXM6W25iLmVuLmNvZGUsbmIuZnIuY29kZV19LGVzOntjb3VudHJ5X2NvZGU6dGIuRVMsY291bnRyeV9uYW1lOmBTcGFpbmAsZGVmYXVsdF9sb2NhbGU6YGVzYCxzdXBwb3J0ZWRfbG9jYWxlczpbbmIuZXMuY29kZSxuYi5lbi5jb2RlXX0sYnI6e2NvdW50cnlfY29kZTp0Yi5CUixjb3VudHJ5X25hbWU6YEJyYXppbGAsZGVmYXVsdF9sb2NhbGU6YHB0YCxzdXBwb3J0ZWRfbG9jYWxlczpbbmIucHQuY29kZSxuYi5lbi5jb2RlXX0scHQ6e2NvdW50cnlfY29kZTp0Yi5QVCxjb3VudHJ5X25hbWU6YFBvcnR1Z2FsYCxkZWZhdWx0X2xvY2FsZTpgcHRgLHN1cHBvcnRlZF9sb2NhbGVzOltuYi5wdC5jb2RlLG5iLmVuLmNvZGVdfSxhdTp7Y291bnRyeV9jb2RlOnRiLkFVLGNvdW50cnlfbmFtZTpgQXVzdHJhbGlhYCxkZWZhdWx0X2xvY2FsZTpgZW5gLHN1cHBvcnRlZF9sb2NhbGVzOltuYi5lbi5jb2RlXX0sc2c6e2NvdW50cnlfY29kZTp0Yi5TRyxjb3VudHJ5X25hbWU6YFNpbmdhcG9yZWAsZGVmYXVsdF9sb2NhbGU6YGVuYCxzdXBwb3J0ZWRfbG9jYWxlczpbbmIuZW4uY29kZSxuYi56aC5jb2RlXX0saXQ6e2NvdW50cnlfY29kZTpgSVRgLGNvdW50cnlfbmFtZTpgSXRhbHlgLGRlZmF1bHRfbG9jYWxlOmBpdGAsc3VwcG9ydGVkX2xvY2FsZXM6W25iLml0LmNvZGUsbmIuZW4uY29kZV0saXNfZGVmYXVsdF9sb2NhbGVfc2luZ2xlX3BhdGg6ITB9LG5sOntjb3VudHJ5X2NvZGU6YE5MYCxjb3VudHJ5X25hbWU6YE5ldGhlcmxhbmRzYCxkZWZhdWx0X2xvY2FsZTpgbmxgLHN1cHBvcnRlZF9sb2NhbGVzOltuYi5ubC5jb2RlLG5iLmVuLmNvZGVdLGlzX2RlZmF1bHRfbG9jYWxlX3NpbmdsZV9wYXRoOiEwfSxhcjp7Y291bnRyeV9jb2RlOnRiLkFSLGNvdW50cnlfbmFtZTpgQXJnZW50aW5hYCxkZWZhdWx0X2xvY2FsZTpgZXNgLHN1cHBvcnRlZF9sb2NhbGVzOltuYi5lcy5jb2RlLG5iLmVuLmNvZGVdfSxpbjp7Y291bnRyeV9jb2RlOnRiLklOLGNvdW50cnlfbmFtZTpgSW5kaWFgLGRlZmF1bHRfbG9jYWxlOmBlbmAsc3VwcG9ydGVkX2xvY2FsZXM6W25iLmVuLmNvZGVdfSxteDp7Y291bnRyeV9jb2RlOnRiLk1YLGNvdW50cnlfbmFtZTpgTWV4aWNvYCxkZWZhdWx0X2xvY2FsZTpgZXNgLHN1cHBvcnRlZF9sb2NhbGVzOltuYi5lcy5jb2RlLG5iLmVuLmNvZGVdfX0sWHNlPVtgZXMtTEFgLGBmcmAsYHBsYCxgcnVgLGB0aGAsYHpoLUNOYCxgemgtVFdgXSxpYj17cHJvZHVjdGlvbjpgaHR0cHM6Ly90cmFuc2xhdGlvbnMuY29pbmJhc2UuY29tYCxkZXZlbG9wbWVudDpgaHR0cHM6Ly90cmFuc2xhdGlvbnMuY2JocS5uZXRgfTtmdW5jdGlvbiBac2UoZSl7cmV0dXJuIGliW2VdfHxpYi5wcm9kdWN0aW9ufWZ1bmN0aW9uIGFiKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gb2IoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/YWIoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe1FzZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTphYihPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gUXNlKGUsdCxuKXtyZXR1cm4odD0kc2UodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gJHNlKGUpe3ZhciB0PWVjZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBlY2UoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiB0Y2UoZSl7cmV0dXJuYCR7WnNlKGUpfS9sb2NhbGVzL2FwcHMvbG9nZ2Vkb3V0L3d3dy5qc29uYH1hc3luYyBmdW5jdGlvbiBuY2UoZT17fSl7bGV0IHQ9ZS5lbnYsbj10Y2UodD09PXZvaWQgMD9gcHJvZHVjdGlvbmA6dCkscj17fTt0cnl7bGV0IGU9YXdhaXQgZmV0Y2gobik7aWYoIWUub2spdGhyb3cgRXJyb3IoYEJhZCBSZXNwb25zZWAse2NhdXNlOmV9KTtsZXQgdD1hd2FpdCBlLmpzb24oKTtyPSh0PT1udWxsP3ZvaWQgMDp0LmNvbmZpZyl8fHt9fWNhdGNoKGUpe2NvbnNvbGUud2FybihgRXJyb3Igd2hpbGUgZmV0Y2hpbmcgdGhlIGNvbmZpZy4gRmFsbGluZyBiYWNrIHRvIHRoZSBwcmVkZWZpbmVkIG1hcGAsZSkscj1yYn1yZXR1cm4gcn1mdW5jdGlvbiByY2UoZSl7cmV0dXJuIG5iW2VdfWZ1bmN0aW9uIHNiKGUpe3JldHVybiBPYmplY3QudmFsdWVzKGUpLm1hcChlPT57bGV0IHQ9ZS5zdXBwb3J0ZWRfbG9jYWxlcyxuPXQ9PT12b2lkIDA/W106dCxyPWUuY291bnRyeV9jb2RlLGk9bi5tYXAoZT0+e2xldCB0PXJjZShlKTtyZXR1cm4gdD97dGFnOmUsbmFtZTp0Lm5hbWUsY29kZTpgJHtlfS0ke3J9YC50b0xvd2VyQ2FzZSgpfTpudWxsfSkuZmlsdGVyKEJvb2xlYW4pO3JldHVybiBvYihvYih7fSxlKSx7fSx7c3VwcG9ydGVkX2xvY2FsZXM6aXx8W119KX0pfXZhciBpY2U9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmNvbmZpZz1udWxsLHRoaXMuY29uZmlnTGlzdD1bXX1hc3luYyBmZXRjaChlPXt9KXtyZXR1cm4gdGhpcy5jb25maWc9YXdhaXQgbmNlKGUpLHRoaXMuY29uZmlnTGlzdD1zYih0aGlzLmNvbmZpZyl8fFtdLHtjb25maWc6dGhpcy5jb25maWcsY29uZmlnTGlzdDp0aGlzLmNvbmZpZ0xpc3R9fWFzeW5jIGdldENvbmZpZyhlPXt9KXtyZXR1cm4gdGhpcy5jb25maWc/dGhpcy5jb25maWc6KGF3YWl0IHRoaXMuZmV0Y2goZSkpLmNvbmZpZ31hc3luYyBnZXRDb25maWdMaXN0KGU9e30pe3JldHVybiB0aGlzLmNvbmZpZz90aGlzLmNvbmZpZ0xpc3Q6KGF3YWl0IHRoaXMuZmV0Y2goZSkpLmNvbmZpZ0xpc3R9YXN5bmMgZ2V0Q29uZmlnRm9yKGUsdD17fSl7bGV0IG49YXdhaXQgdGhpcy5nZXRDb25maWdMaXN0KHQpO3JldHVybiBuPT1udWxsP3ZvaWQgMDpuLmZpbmQodD0+e3ZhciBuO3JldHVybigobj10LmNvdW50cnlfY29kZSk9PW51bGw/dm9pZCAwOm4udG9Mb3dlckNhc2UoKSk9PT0oZT09bnVsbD92b2lkIDA6ZS50b0xvd2VyQ2FzZSgpKX0pfX07ZnVuY3Rpb24gY2IoKXtyZXR1cm4gcmJ9ZnVuY3Rpb24gbGIoKXtyZXR1cm4gc2IoY2IoKSl9ZnVuY3Rpb24gdWIoZSl7dmFyIHQ7cmV0dXJuKHQ9bGIoKSk9PW51bGw/dm9pZCAwOnQuZmluZCh0PT57dmFyIG47cmV0dXJuKChuPXQuY291bnRyeV9jb2RlKT09bnVsbD92b2lkIDA6bi50b0xvd2VyQ2FzZSgpKT09PShlPT1udWxsP3ZvaWQgMDplLnRvTG93ZXJDYXNlKCkpfSl9ZnVuY3Rpb24gZGIoKXtyZXR1cm4gWHNlfW5ldyBpY2U7ZnVuY3Rpb24gYWNlKGUsdCl7cmV0dXJuIGxjZShlKXx8Y2NlKGUsdCl8fHNjZShlLHQpfHxvY2UoKX1mdW5jdGlvbiBvY2UoKXt0aHJvdyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiBzY2UoZSx0KXtpZihlKXtpZih0eXBlb2YgZT09YHN0cmluZ2ApcmV0dXJuIGZiKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4gbj09PWBPYmplY3RgJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLG49PT1gTWFwYHx8bj09PWBTZXRgP0FycmF5LmZyb20oZSk6bj09PWBBcmd1bWVudHNgfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9mYihlLHQpOnZvaWQgMH19ZnVuY3Rpb24gZmIoZSx0KXsodD09bnVsbHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIGNjZShlLHQpe3ZhciBuPWU9PW51bGw/bnVsbDp0eXBlb2YgU3ltYm9sPGB1YCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW2BAQGl0ZXJhdG9yYF07aWYobiE9bnVsbCl7dmFyIHIsaSxhLG8scz1bXSxjPSEwLGw9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LHQ9PT0wKXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKHMucHVzaChyLnZhbHVlKSxzLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXtsPSEwLGk9ZX1maW5hbGx5e3RyeXtpZighYyYmbi5yZXR1cm4hPW51bGwmJihvPW4ucmV0dXJuKCksT2JqZWN0KG8pIT09bykpcmV0dXJufWZpbmFsbHl7aWYobCl0aHJvdyBpfX1yZXR1cm4gc319ZnVuY3Rpb24gbGNlKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9ZnVuY3Rpb24gcGIoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBtYihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9wYihPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7dWNlKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOnBiKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiB1Y2UoZSx0LG4pe3JldHVybih0PWRjZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBkY2UoZSl7dmFyIHQ9ZmNlKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIGZjZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIGhiKHtsYW5ndWFnZUNvZGU6ZSxjb3VudHJ5Q29kZTp0LGNvdW50cnlEZWZhdWx0TG9jYWxlOm4saXNEZWZhdWx0TG9jYWxlU2luZ2xlUGF0aDpyfSl7bGV0IGk9dC50b0xvd2VyQ2FzZSgpLGE7cmV0dXJuIGE9ZT09PWBlbmAmJmk9PT1gdXNgP2BgOnImJmU9PT1uP2U6aT9gJHtlfS0ke2l9YDplLGEudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBwY2UoKXtsZXQgZT17Y291bnRyeV9jb2RlOmBgLHN1cHBvcnRlZF9sb2NhbGVzOmRiKCksY291bnRyeV9uYW1lOmBgLGRlZmF1bHRfbG9jYWxlOmBgfTtyZXR1cm4gbWIobWIoe30sY2IoKSkse30se2dsb2JhbDplfSl9ZnVuY3Rpb24gZ2IoZSl7bGV0IHQ9ZT8/cGNlKCksbj1bXTtpZighdClyZXR1cm5bXTtmb3IobGV0IGUgb2YgT2JqZWN0LmVudHJpZXModCkpe2xldCB0PWFjZShlLDIpWzFdLHI9dC5kZWZhdWx0X2xvY2FsZSxpPXQuaXNfZGVmYXVsdF9sb2NhbGVfc2luZ2xlX3BhdGgsYT10LmNvdW50cnlfY29kZS50b0xvd2VyQ2FzZSgpO2ZvcihsZXQgZSBvZiB0LnN1cHBvcnRlZF9sb2NhbGVzKXtsZXQgdD1oYih7bGFuZ3VhZ2VDb2RlOmUsY291bnRyeUNvZGU6YSxjb3VudHJ5RGVmYXVsdExvY2FsZTpyLGlzRGVmYXVsdExvY2FsZVNpbmdsZVBhdGg6ISFpfSk7dCYmbi5wdXNoKHQpfX1yZXR1cm5bLi4ubmV3IFNldChuKV19ZnVuY3Rpb24gbWNlKGUsdCl7cmV0dXJuIHZjZShlKXx8X2NlKGUsdCl8fGdjZShlLHQpfHxoY2UoKX1mdW5jdGlvbiBoY2UoKXt0aHJvdyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiBnY2UoZSx0KXtpZihlKXtpZih0eXBlb2YgZT09YHN0cmluZ2ApcmV0dXJuIF9iKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4gbj09PWBPYmplY3RgJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLG49PT1gTWFwYHx8bj09PWBTZXRgP0FycmF5LmZyb20oZSk6bj09PWBBcmd1bWVudHNgfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9fYihlLHQpOnZvaWQgMH19ZnVuY3Rpb24gX2IoZSx0KXsodD09bnVsbHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIF9jZShlLHQpe3ZhciBuPWU9PW51bGw/bnVsbDp0eXBlb2YgU3ltYm9sPGB1YCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW2BAQGl0ZXJhdG9yYF07aWYobiE9bnVsbCl7dmFyIHIsaSxhLG8scz1bXSxjPSEwLGw9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LHQ9PT0wKXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKHMucHVzaChyLnZhbHVlKSxzLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXtsPSEwLGk9ZX1maW5hbGx5e3RyeXtpZighYyYmbi5yZXR1cm4hPW51bGwmJihvPW4ucmV0dXJuKCksT2JqZWN0KG8pIT09bykpcmV0dXJufWZpbmFsbHl7aWYobCl0aHJvdyBpfX1yZXR1cm4gc319ZnVuY3Rpb24gdmNlKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9ZnVuY3Rpb24geWNlKGUpe3JldHVybiBtY2UoZS5zcGxpdChgLWApLDEpWzBdfWZ1bmN0aW9uIGJjZShlLHQpe2lmKHQubGVuZ3RoPT09MClyZXR1cm4hMTtsZXQgbj1lLnRvTG93ZXJDYXNlKCkscj1SZWdFeHAoYF4vKCR7dC5qb2luKGB8YCl9KSgoL3xcXD98IykuKik/JGApO3JldHVybiEhbi5tYXRjaChyKX1mdW5jdGlvbiB2YihlLHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5pbmNsdWRlcyhlLnRvTG93ZXJDYXNlKCkpfXZhciB4Y2U9eyJlcy00MTkiOmBlcy1sYWAsImVzLW14IjpgZXMtbGFgLHB0OmBwdC1icmAsemg6YHpoLWNuYH07ZnVuY3Rpb24geWIoZSx0KXt2YXIgbjtpZih0LmluY2x1ZGVzKGUpKXJldHVybiBlO2xldCByPShuPXhjZVtlXSk9PW51bGw/dm9pZCAwOm4udG9Mb3dlckNhc2UoKTtyZXR1cm4gciYmdC5pbmNsdWRlcyhyKT9yOmBgfWZ1bmN0aW9uIGJiKGUsdCl7bGV0IG49ZS50b0xvd2VyQ2FzZSgpLHI9dC5tYXAoZT0+ZS50b0xvd2VyQ2FzZSgpKSxpPXliKG4scik7aWYoaSlyZXR1cm4gaTtpZihuLmluY2x1ZGVzKGAtYCkpe2xldCBlPW4uc3BsaXQoYC1gKVswXSx0PXliKGUscik7aWYodClyZXR1cm4gdH1yZXR1cm5gYH1mdW5jdGlvbiBTY2UoZSx0KXtsZXQgbj1lLnNwbGl0KGAsYCkubWFwKGU9PmUuc3BsaXQoYDtgKVswXS50cmltKCkpLHI9blswXXx8YGAsaT1uWzFdfHxgYDtyZXR1cm4gYmIocix0KXx8YmIoaSx0KXx8YGB9ZnVuY3Rpb24gQ2NlKHtyZXF1ZXN0VXJsOmUsY291bnRyeTp0LGFjY2VwdExhbmd1YWdlOm4sY29uZmlnOnIsc3VwcG9ydGVkTG9jYWxlczppfSl7bGV0IGE9dC50b0xvd2VyQ2FzZSgpO2lmKGJjZShlLGkpfHwhdmIoYSxyKXx8IXJbYV0pcmV0dXJuIGU7bGV0IG89clthXSxzPW8uc3VwcG9ydGVkX2xvY2FsZXMsYz1vLmRlZmF1bHRfbG9jYWxlLGw9by5pc19kZWZhdWx0X2xvY2FsZV9zaW5nbGVfcGF0aCx1PVNjZShuLHMpfHxjO2lmKGE9PT1gdXNgJiZ1PT09YGVuYClyZXR1cm4gZTtsZXQgZD1gJHt1fS0ke2F9YDtyZXR1cm4gbCYmdT09PWMmJihkPXljZShjKSksYC8ke2R9JHtlfWB9dmFyIHdjZT1gbW9kdWxlcHJlbG9hZGAsVGNlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBVUkwoZSx0KS5ocmVmfSx4Yj17fSxxPWZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1Qcm9taXNlLnJlc29sdmUoKTtpZih0JiZ0Lmxlbmd0aD4wKXtsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShgbGlua2ApLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbWV0YVtwcm9wZXJ0eT1jc3Atbm9uY2VdYCksYT0oaT09bnVsbD92b2lkIDA6aS5ub25jZSl8fChpPT1udWxsP3ZvaWQgMDppLmdldEF0dHJpYnV0ZShgbm9uY2VgKSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoZT0+UHJvbWlzZS5yZXNvbHZlKGUpLnRoZW4oZT0+KHtzdGF0dXM6YGZ1bGZpbGxlZGAsdmFsdWU6ZX0pLGU9Pih7c3RhdHVzOmByZWplY3RlZGAscmVhc29uOmV9KSkpKX1yPW8odC5tYXAodD0+e2lmKHQ9VGNlKHQsbiksdCBpbiB4YilyZXR1cm47eGJbdF09ITA7bGV0IHI9dC5lbmRzV2l0aChgLmNzc2ApLGk9cj9gW3JlbD0ic3R5bGVzaGVldCJdYDpgYDtpZihuKWZvcihsZXQgbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtsZXQgaT1lW25dO2lmKGkuaHJlZj09PXQmJighcnx8aS5yZWw9PT1gc3R5bGVzaGVldGApKXJldHVybn1lbHNlIGlmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj0iJHt0fSJdJHtpfWApKXJldHVybjtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBsaW5rYCk7aWYoby5yZWw9cj9gc3R5bGVzaGVldGA6d2NlLHJ8fChvLmFzPWBzY3JpcHRgKSxvLmNyb3NzT3JpZ2luPWBgLG8uaHJlZj10LGEmJm8uc2V0QXR0cmlidXRlKGBub25jZWAsYSksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChvKSxyKXJldHVybiBuZXcgUHJvbWlzZSgoZSxuKT0+e28uYWRkRXZlbnRMaXN0ZW5lcihgbG9hZGAsZSksby5hZGRFdmVudExpc3RlbmVyKGBlcnJvcmAsKCk9Pm4oRXJyb3IoYFVuYWJsZSB0byBwcmVsb2FkIENTUyBmb3IgJHt0fWApKSl9KX0pKX1mdW5jdGlvbiBpKGUpe2xldCB0PW5ldyBFdmVudChgdml0ZTpwcmVsb2FkRXJyb3JgLHtjYW5jZWxhYmxlOiEwfSk7aWYodC5wYXlsb2FkPWUsd2luZG93LmRpc3BhdGNoRXZlbnQodCksIXQuZGVmYXVsdFByZXZlbnRlZCl0aHJvdyBlfXJldHVybiByLnRoZW4odD0+e2ZvcihsZXQgZSBvZiB0fHxbXSllLnN0YXR1cz09PWByZWplY3RlZGAmJmkoZS5yZWFzb24pO3JldHVybiBlKCkuY2F0Y2goaSl9KX07ZnVuY3Rpb24gRWNlKCl7bGV0IGUsdCxuPXtwcm9taXNlOm5ldyBQcm9taXNlKChuLHIpPT57ZT1lPT57bihlKX0sdD1lPT57cihlKX19KSxyZXNvbHZlOmUscmVqZWN0OnQscmVzZXQ6KCk9PntuLnByb21pc2U9bmV3IFByb21pc2UoKGUsdCk9PntsZXQgcj1uLnJlc29sdmUsaT1uLnJlamVjdDtuLnJlc29sdmU9dD0+e3IodCksZSh0KX0sbi5yZWplY3Q9ZT0+e2koZSksdChlKX19KX19O3JldHVybiBufWZ1bmN0aW9uIFNiKGUpe3dpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBob2UoZSkpfWZ1bmN0aW9uIERjZSgpe2lmKHR5cGVvZiB3aW5kb3c8YHVgKXtsZXQgZT1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmdldChgcmNpZGApO2lmKGUpcmV0dXJuIGU7bGV0IHQ9QXYoKTtpZih0KXJldHVybiB0fXJldHVybiBQdi5nZXRBY3RpdmVSZXNvdXJjZSgpfXZhciBDYj1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmFjdGl2ZVJlc291cmNlSWQ9RGNlKCksdGhpcy5yZXNvdXJjZXNQcm9taXNlPUVjZSgpfWFzeW5jIGlzVmFsaWRSZXNvdXJjZUlkKGUpe3JldHVybihhd2FpdCB0aGlzLnJlc291cmNlc1Byb21pc2UucHJvbWlzZSkuc29tZSh0PT50LmlkZW50aXR5QWNjb3VudElkPT09ZSl9YXN5bmMgaW5pdGlhbGl6ZUFzeW5jKCl7bGV0IGU9YXdhaXQgdGhpcy5yZXNvdXJjZXNQcm9taXNlLnByb21pc2U7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gZS5maW5kKGU9PmUuaWRlbnRpdHlBY2NvdW50SWQ9PT10KX1sZXQgbj10KG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KGByY2lkYCkpLHI9dChBdigpKSxpPXQoUHYuZ2V0QWN0aXZlUmVzb3VyY2UoKSksYT1uPz9yPz9pO2lmKGEpcmV0dXJuIGF3YWl0IHRoaXMucGVyc2lzdEFjdGl2ZVJlc291cmNlKGEuaWRlbnRpdHlBY2NvdW50SWQpLHtuZWVkc1NlbGVjdGlvbjohMX07aWYodGhpcy5hY3RpdmVSZXNvdXJjZUlkPXZvaWQgMCxQdi5jbGVhckFjdGl2ZVJlc291cmNlKCksa3YoKSxlLmxlbmd0aDw9MSl7dmFyIG87bGV0IHQ9KG89ZVswXSk9PW51bGw/dm9pZCAwOm8uaWRlbnRpdHlBY2NvdW50SWQ7cmV0dXJuIHQmJmF3YWl0IHRoaXMucGVyc2lzdEFjdGl2ZVJlc291cmNlKHQpLHtuZWVkc1NlbGVjdGlvbjohMX19cmV0dXJue25lZWRzU2VsZWN0aW9uOiEwLHJlc291cmNlczplfX1nZXRBY3RpdmVSZXNvdXJjZUlkKCl7cmV0dXJuIHRoaXMuYWN0aXZlUmVzb3VyY2VJZH1hc3luYyBnZXRSZXNvdXJjZUZyb21JZChlKXtyZXR1cm4oYXdhaXQgdGhpcy5yZXNvdXJjZXNQcm9taXNlLnByb21pc2UpLmZpbmQodD0+dC5pZGVudGl0eUFjY291bnRJZD09PWUpfXNldFJlc291cmNlcyhlKXt0aGlzLnJlc291cmNlc1Byb21pc2UucmVzZXQoKSx0aGlzLnJlc291cmNlc1Byb21pc2UucmVzb2x2ZShlPz9bXSl9YXN5bmMgcGVyc2lzdEFjdGl2ZVJlc291cmNlKGUpe3JldHVybiBlJiZhd2FpdCB0aGlzLmlzVmFsaWRSZXNvdXJjZUlkKGUpPyh0aGlzLmFjdGl2ZVJlc291cmNlSWQ9ZSxQdi5zZXRBY3RpdmVSZXNvdXJjZShlKSxTYihlKSxtb2UoZSksITApOiExfWFzeW5jIHNlbGVjdFdpdGhvdXRQZXJzaXN0KGUpe3JldHVybiBlJiZhd2FpdCB0aGlzLmlzVmFsaWRSZXNvdXJjZUlkKGUpPyh0aGlzLmFjdGl2ZVJlc291cmNlSWQ9ZSxTYihlKSwhMCk6ITF9cmVzZXQoKXt0aGlzLmFjdGl2ZVJlc291cmNlSWQ9dm9pZCAwLFB2LmNsZWFyQWN0aXZlUmVzb3VyY2UoKSxrdigpfUlOVEVSTkFMX2dldFJlc291cmNlcygpe3JldHVybiB0aGlzLnJlc291cmNlc1Byb21pc2UucHJvbWlzZX19LE9jZT1jKHtfX2FkZERpc3Bvc2FibGVSZXNvdXJjZTooKT0+WmIsX19hc3NpZ246KCk9PnR4LF9fYXN5bmNEZWxlZ2F0b3I6KCk9PlViLF9fYXN5bmNHZW5lcmF0b3I6KCk9PkhiLF9fYXN5bmNWYWx1ZXM6KCk9PldiLF9fYXdhaXQ6KCk9PlZiLF9fYXdhaXRlcjooKT0+TmIsX19jbGFzc1ByaXZhdGVGaWVsZEdldDooKT0+SmIsX19jbGFzc1ByaXZhdGVGaWVsZEluOigpPT5YYixfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0OigpPT5ZYixfX2NyZWF0ZUJpbmRpbmc6KCk9Pm54LF9fZGVjb3JhdGU6KCk9PkViLF9fZGlzcG9zZVJlc291cmNlczooKT0+UWIsX19lc0RlY29yYXRlOigpPT5PYixfX2V4cG9ydFN0YXI6KCk9PkZiLF9fZXh0ZW5kczooKT0+d2IsX19nZW5lcmF0b3I6KCk9PlBiLF9faW1wb3J0RGVmYXVsdDooKT0+cWIsX19pbXBvcnRTdGFyOigpPT5LYixfX21ha2VUZW1wbGF0ZU9iamVjdDooKT0+R2IsX19tZXRhZGF0YTooKT0+TWIsX19wYXJhbTooKT0+RGIsX19wcm9wS2V5OigpPT5BYixfX3JlYWQ6KCk9PkxiLF9fcmVzdDooKT0+VGIsX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb246KCk9PiRiLF9fcnVuSW5pdGlhbGl6ZXJzOigpPT5rYixfX3NldEZ1bmN0aW9uTmFtZTooKT0+amIsX19zcHJlYWQ6KCk9PlJiLF9fc3ByZWFkQXJyYXk6KCk9PkJiLF9fc3ByZWFkQXJyYXlzOigpPT56YixfX3ZhbHVlczooKT0+SWIsZGVmYXVsdDooKT0+b3h9KTtmdW5jdGlvbiB3YihlLHQpe2lmKHR5cGVvZiB0IT1gZnVuY3Rpb25gJiZ0IT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoYENsYXNzIGV4dGVuZHMgdmFsdWUgYCtTdHJpbmcodCkrYCBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsYCk7ZXgoZSx0KTtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPXQ9PT1udWxsP09iamVjdC5jcmVhdGUodCk6KG4ucHJvdG90eXBlPXQucHJvdG90eXBlLG5ldyBuKX1mdW5jdGlvbiBUYihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0LmluZGV4T2Yocik8MCYmKG5bcl09ZVtyXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PWBmdW5jdGlvbmApZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2k8ci5sZW5ndGg7aSsrKXQuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW2ldKSYmKG5bcltpXV09ZVtyW2ldXSk7cmV0dXJuIG59ZnVuY3Rpb24gRWIoZSx0LG4scil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aCxhPWk8Mz90OnI9PT1udWxsP3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pOnIsbztpZih0eXBlb2YgUmVmbGVjdD09YG9iamVjdGAmJnR5cGVvZiBSZWZsZWN0LmRlY29yYXRlPT1gZnVuY3Rpb25gKWE9UmVmbGVjdC5kZWNvcmF0ZShlLHQsbixyKTtlbHNlIGZvcih2YXIgcz1lLmxlbmd0aC0xO3M+PTA7cy0tKShvPWVbc10pJiYoYT0oaTwzP28oYSk6aT4zP28odCxuLGEpOm8odCxuKSl8fGEpO3JldHVybiBpPjMmJmEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4sYSksYX1mdW5jdGlvbiBEYihlLHQpe3JldHVybiBmdW5jdGlvbihuLHIpe3QobixyLGUpfX1mdW5jdGlvbiBPYihlLHQsbixyLGksYSl7ZnVuY3Rpb24gbyhlKXtpZihlIT09dm9pZCAwJiZ0eXBlb2YgZSE9YGZ1bmN0aW9uYCl0aHJvdyBUeXBlRXJyb3IoYEZ1bmN0aW9uIGV4cGVjdGVkYCk7cmV0dXJuIGV9Zm9yKHZhciBzPXIua2luZCxjPXM9PT1gZ2V0dGVyYD9gZ2V0YDpzPT09YHNldHRlcmA/YHNldGA6YHZhbHVlYCxsPSF0JiZlP3Iuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChsP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCxyLm5hbWUpOnt9KSxkLGY9ITEscD1uLmxlbmd0aC0xO3A+PTA7cC0tKXt2YXIgbT17fTtmb3IodmFyIGggaW4gciltW2hdPWg9PT1gYWNjZXNzYD97fTpyW2hdO2Zvcih2YXIgaCBpbiByLmFjY2VzcyltLmFjY2Vzc1toXT1yLmFjY2Vzc1toXTttLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKGUpe2lmKGYpdGhyb3cgVHlwZUVycm9yKGBDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWRgKTthLnB1c2gobyhlfHxudWxsKSl9O3ZhciBnPSgwLG5bcF0pKHM9PT1gYWNjZXNzb3JgP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2NdLG0pO2lmKHM9PT1gYWNjZXNzb3JgKXtpZihnPT09dm9pZCAwKWNvbnRpbnVlO2lmKHR5cGVvZiBnIT1gb2JqZWN0YHx8IWcpdGhyb3cgVHlwZUVycm9yKGBPYmplY3QgZXhwZWN0ZWRgKTsoZD1vKGcuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGcuc2V0KSkmJih1LnNldD1kKSwoZD1vKGcuaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZSAoZD1vKGcpKSYmKHM9PT1gZmllbGRgP2kudW5zaGlmdChkKTp1W2NdPWQpfWwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLHIubmFtZSx1KSxmPSEwfWZ1bmN0aW9uIGtiKGUsdCxuKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPHQubGVuZ3RoO2krKyluPXI/dFtpXS5jYWxsKGUsbik6dFtpXS5jYWxsKGUpO3JldHVybiByP246dm9pZCAwfWZ1bmN0aW9uIEFiKGUpe3JldHVybiB0eXBlb2YgZT09YHN5bWJvbGA/ZTpgJHtlfWB9ZnVuY3Rpb24gamIoZSx0LG4pe3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGAmJih0PXQuZGVzY3JpcHRpb24/YFske3QuZGVzY3JpcHRpb259XWA6YGApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBuYW1lYCx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOm4/YCR7bn0gJHt0fWA6dH0pfWZ1bmN0aW9uIE1iKGUsdCl7aWYodHlwZW9mIFJlZmxlY3Q9PWBvYmplY3RgJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09YGZ1bmN0aW9uYClyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShlLHQpfWZ1bmN0aW9uIE5iKGUsdCxuLHIpe2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBuP2U6bmV3IG4oZnVuY3Rpb24odCl7dChlKX0pfXJldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKG4sYSl7ZnVuY3Rpb24gbyhlKXt0cnl7YyhyLm5leHQoZSkpfWNhdGNoKGUpe2EoZSl9fWZ1bmN0aW9uIHMoZSl7dHJ5e2Moci50aHJvdyhlKSl9Y2F0Y2goZSl7YShlKX19ZnVuY3Rpb24gYyhlKXtlLmRvbmU/bihlLnZhbHVlKTppKGUudmFsdWUpLnRoZW4obyxzKX1jKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KX1mdW5jdGlvbiBQYihlLHQpe3ZhciBuPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZihhWzBdJjEpdGhyb3cgYVsxXTtyZXR1cm4gYVsxXX0sdHJ5czpbXSxvcHM6W119LHIsaSxhLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT1gZnVuY3Rpb25gP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PXMoMCksby50aHJvdz1zKDEpLG8ucmV0dXJuPXMoMiksdHlwZW9mIFN5bWJvbD09YGZ1bmN0aW9uYCYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBzKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYyhbZSx0XSl9fWZ1bmN0aW9uIGMocyl7aWYocil0aHJvdyBUeXBlRXJyb3IoYEdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5gKTtmb3IoO28mJihvPTAsc1swXSYmKG49MCkpLG47KXRyeXtpZihyPTEsaSYmKGE9c1swXSYyP2kucmV0dXJuOnNbMF0/aS50aHJvd3x8KChhPWkucmV0dXJuKSYmYS5jYWxsKGkpLDApOmkubmV4dCkmJiEoYT1hLmNhbGwoaSxzWzFdKSkuZG9uZSlyZXR1cm4gYTtzd2l0Y2goaT0wLGEmJihzPVtzWzBdJjIsYS52YWx1ZV0pLHNbMF0pe2Nhc2UgMDpjYXNlIDE6YT1zO2JyZWFrO2Nhc2UgNDpyZXR1cm4gbi5sYWJlbCsrLHt2YWx1ZTpzWzFdLGRvbmU6ITF9O2Nhc2UgNTpuLmxhYmVsKyssaT1zWzFdLHM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpzPW4ub3BzLnBvcCgpLG4udHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKChhPW4udHJ5cywhKGE9YS5sZW5ndGg+MCYmYVthLmxlbmd0aC0xXSkpJiYoc1swXT09PTZ8fHNbMF09PT0yKSl7bj0wO2NvbnRpbnVlfWlmKHNbMF09PT0zJiYoIWF8fHNbMV0+YVswXSYmc1sxXTxhWzNdKSl7bi5sYWJlbD1zWzFdO2JyZWFrfWlmKHNbMF09PT02JiZuLmxhYmVsPGFbMV0pe24ubGFiZWw9YVsxXSxhPXM7YnJlYWt9aWYoYSYmbi5sYWJlbDxhWzJdKXtuLmxhYmVsPWFbMl0sbi5vcHMucHVzaChzKTticmVha31hWzJdJiZuLm9wcy5wb3AoKSxuLnRyeXMucG9wKCk7Y29udGludWV9cz10LmNhbGwoZSxuKX1jYXRjaChlKXtzPVs2LGVdLGk9MH1maW5hbGx5e3I9YT0wfWlmKHNbMF0mNSl0aHJvdyBzWzFdO3JldHVybnt2YWx1ZTpzWzBdP3NbMV06dm9pZCAwLGRvbmU6ITB9fX1mdW5jdGlvbiBGYihlLHQpe2Zvcih2YXIgbiBpbiBlKW4hPT1gZGVmYXVsdGAmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmbngodCxlLG4pfWZ1bmN0aW9uIEliKGUpe3ZhciB0PXR5cGVvZiBTeW1ib2w9PWBmdW5jdGlvbmAmJlN5bWJvbC5pdGVyYXRvcixuPXQmJmVbdF0scj0wO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZihlJiZ0eXBlb2YgZS5sZW5ndGg9PWBudW1iZXJgKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGUmJnI+PWUubGVuZ3RoJiYoZT12b2lkIDApLHt2YWx1ZTplJiZlW3IrK10sZG9uZTohZX19fTt0aHJvdyBUeXBlRXJyb3IodD9gT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5gOmBTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuYCl9ZnVuY3Rpb24gTGIoZSx0KXt2YXIgbj10eXBlb2YgU3ltYm9sPT1gZnVuY3Rpb25gJiZlW1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIGU7dmFyIHI9bi5jYWxsKGUpLGksYT1bXSxvO3RyeXtmb3IoOyh0PT09dm9pZCAwfHx0LS0gPjApJiYhKGk9ci5uZXh0KCkpLmRvbmU7KWEucHVzaChpLnZhbHVlKX1jYXRjaChlKXtvPXtlcnJvcjplfX1maW5hbGx5e3RyeXtpJiYhaS5kb25lJiYobj1yLnJldHVybikmJm4uY2FsbChyKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIGF9ZnVuY3Rpb24gUmIoKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZT1lLmNvbmNhdChMYihhcmd1bWVudHNbdF0pKTtyZXR1cm4gZX1mdW5jdGlvbiB6Yigpe2Zvcih2YXIgZT0wLHQ9MCxuPWFyZ3VtZW50cy5sZW5ndGg7dDxuO3QrKyllKz1hcmd1bWVudHNbdF0ubGVuZ3RoO2Zvcih2YXIgcj1BcnJheShlKSxpPTAsdD0wO3Q8bjt0KyspZm9yKHZhciBhPWFyZ3VtZW50c1t0XSxvPTAscz1hLmxlbmd0aDtvPHM7bysrLGkrKylyW2ldPWFbb107cmV0dXJuIHJ9ZnVuY3Rpb24gQmIoZSx0LG4pe2lmKG58fGFyZ3VtZW50cy5sZW5ndGg9PT0yKWZvcih2YXIgcj0wLGk9dC5sZW5ndGgsYTtyPGk7cisrKShhfHwhKHIgaW4gdCkpJiYoYXx8KGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwwLHIpKSxhW3JdPXRbcl0pO3JldHVybiBlLmNvbmNhdChhfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSl9ZnVuY3Rpb24gVmIoZSl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBWYj8odGhpcy52PWUsdGhpcyk6bmV3IFZiKGUpfWZ1bmN0aW9uIEhiKGUsdCxuKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgVHlwZUVycm9yKGBTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5gKTt2YXIgcj1uLmFwcGx5KGUsdHx8W10pLGksYT1bXTtyZXR1cm4gaT1PYmplY3QuY3JlYXRlKCh0eXBlb2YgQXN5bmNJdGVyYXRvcj09YGZ1bmN0aW9uYD9Bc3luY0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKSxzKGBuZXh0YCkscyhgdGhyb3dgKSxzKGByZXR1cm5gLG8pLGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0KS50aGVuKGUsZCl9fWZ1bmN0aW9uIHMoZSx0KXtyW2VdJiYoaVtlXT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXthLnB1c2goW2UsdCxuLHJdKT4xfHxjKGUsdCl9KX0sdCYmKGlbZV09dChpW2VdKSkpfWZ1bmN0aW9uIGMoZSx0KXt0cnl7bChyW2VdKHQpKX1jYXRjaChlKXtmKGFbMF1bM10sZSl9fWZ1bmN0aW9uIGwoZSl7ZS52YWx1ZSBpbnN0YW5jZW9mIFZiP1Byb21pc2UucmVzb2x2ZShlLnZhbHVlLnYpLnRoZW4odSxkKTpmKGFbMF1bMl0sZSl9ZnVuY3Rpb24gdShlKXtjKGBuZXh0YCxlKX1mdW5jdGlvbiBkKGUpe2MoYHRocm93YCxlKX1mdW5jdGlvbiBmKGUsdCl7ZSh0KSxhLnNoaWZ0KCksYS5sZW5ndGgmJmMoYVswXVswXSxhWzBdWzFdKX19ZnVuY3Rpb24gVWIoZSl7dmFyIHQsbjtyZXR1cm4gdD17fSxyKGBuZXh0YCkscihgdGhyb3dgLGZ1bmN0aW9uKGUpe3Rocm93IGV9KSxyKGByZXR1cm5gKSx0W1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdDtmdW5jdGlvbiByKHIsaSl7dFtyXT1lW3JdP2Z1bmN0aW9uKHQpe3JldHVybihuPSFuKT97dmFsdWU6VmIoZVtyXSh0KSksZG9uZTohMX06aT9pKHQpOnR9Oml9fWZ1bmN0aW9uIFdiKGUpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBUeXBlRXJyb3IoYFN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLmApO3ZhciB0PWVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdLG47cmV0dXJuIHQ/dC5jYWxsKGUpOihlPXR5cGVvZiBJYj09YGZ1bmN0aW9uYD9JYihlKTplW1N5bWJvbC5pdGVyYXRvcl0oKSxuPXt9LHIoYG5leHRgKSxyKGB0aHJvd2ApLHIoYHJldHVybmApLG5bU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LG4pO2Z1bmN0aW9uIHIodCl7blt0XT1lW3RdJiZmdW5jdGlvbihuKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixhKXtuPWVbdF0obiksaShyLGEsbi5kb25lLG4udmFsdWUpfSl9fWZ1bmN0aW9uIGkoZSx0LG4scil7UHJvbWlzZS5yZXNvbHZlKHIpLnRoZW4oZnVuY3Rpb24odCl7ZSh7dmFsdWU6dCxkb25lOm59KX0sdCl9fWZ1bmN0aW9uIEdiKGUsdCl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgcmF3YCx7dmFsdWU6dH0pOmUucmF3PXQsZX1mdW5jdGlvbiBLYihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYoZSE9bnVsbClmb3IodmFyIG49aXgoZSkscj0wO3I8bi5sZW5ndGg7cisrKW5bcl0hPT1gZGVmYXVsdGAmJm54KHQsZSxuW3JdKTtyZXR1cm4gcngodCxlKSx0fWZ1bmN0aW9uIHFiKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiBKYihlLHQsbixyKXtpZihuPT09YGFgJiYhcil0aHJvdyBUeXBlRXJyb3IoYFByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlcmApO2lmKHR5cGVvZiB0PT1gZnVuY3Rpb25gP2UhPT10fHwhcjohdC5oYXMoZSkpdGhyb3cgVHlwZUVycm9yKGBDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRgKTtyZXR1cm4gbj09PWBtYD9yOm49PT1gYWA/ci5jYWxsKGUpOnI/ci52YWx1ZTp0LmdldChlKX1mdW5jdGlvbiBZYihlLHQsbixyLGkpe2lmKHI9PT1gbWApdGhyb3cgVHlwZUVycm9yKGBQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVgKTtpZihyPT09YGFgJiYhaSl0aHJvdyBUeXBlRXJyb3IoYFByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlcmApO2lmKHR5cGVvZiB0PT1gZnVuY3Rpb25gP2UhPT10fHwhaTohdC5oYXMoZSkpdGhyb3cgVHlwZUVycm9yKGBDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdGApO3JldHVybiByPT09YGFgP2kuY2FsbChlLG4pOmk/aS52YWx1ZT1uOnQuc2V0KGUsbiksbn1mdW5jdGlvbiBYYihlLHQpe2lmKHQ9PT1udWxsfHx0eXBlb2YgdCE9YG9iamVjdGAmJnR5cGVvZiB0IT1gZnVuY3Rpb25gKXRocm93IFR5cGVFcnJvcihgQ2Fubm90IHVzZSAnaW4nIG9wZXJhdG9yIG9uIG5vbi1vYmplY3RgKTtyZXR1cm4gdHlwZW9mIGU9PWBmdW5jdGlvbmA/dD09PWU6ZS5oYXModCl9ZnVuY3Rpb24gWmIoZSx0LG4pe2lmKHQhPW51bGwpe2lmKHR5cGVvZiB0IT1gb2JqZWN0YCYmdHlwZW9mIHQhPWBmdW5jdGlvbmApdGhyb3cgVHlwZUVycm9yKGBPYmplY3QgZXhwZWN0ZWQuYCk7dmFyIHIsaTtpZihuKXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBUeXBlRXJyb3IoYFN5bWJvbC5hc3luY0Rpc3Bvc2UgaXMgbm90IGRlZmluZWQuYCk7cj10W1N5bWJvbC5hc3luY0Rpc3Bvc2VdfWlmKHI9PT12b2lkIDApe2lmKCFTeW1ib2wuZGlzcG9zZSl0aHJvdyBUeXBlRXJyb3IoYFN5bWJvbC5kaXNwb3NlIGlzIG5vdCBkZWZpbmVkLmApO3I9dFtTeW1ib2wuZGlzcG9zZV0sbiYmKGk9cil9aWYodHlwZW9mIHIhPWBmdW5jdGlvbmApdGhyb3cgVHlwZUVycm9yKGBPYmplY3Qgbm90IGRpc3Bvc2FibGUuYCk7aSYmKHI9ZnVuY3Rpb24oKXt0cnl7aS5jYWxsKHRoaXMpfWNhdGNoKGUpe3JldHVybiBQcm9taXNlLnJlamVjdChlKX19KSxlLnN0YWNrLnB1c2goe3ZhbHVlOnQsZGlzcG9zZTpyLGFzeW5jOm59KX1lbHNlIG4mJmUuc3RhY2sucHVzaCh7YXN5bmM6ITB9KTtyZXR1cm4gdH1mdW5jdGlvbiBRYihlKXtmdW5jdGlvbiB0KHQpe2UuZXJyb3I9ZS5oYXNFcnJvcj9uZXcgYXgodCxlLmVycm9yLGBBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuYCk6dCxlLmhhc0Vycm9yPSEwfXZhciBuLHI9MDtmdW5jdGlvbiBpKCl7Zm9yKDtuPWUuc3RhY2sucG9wKCk7KXRyeXtpZighbi5hc3luYyYmcj09PTEpcmV0dXJuIHI9MCxlLnN0YWNrLnB1c2gobiksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihpKTtpZihuLmRpc3Bvc2Upe3ZhciBhPW4uZGlzcG9zZS5jYWxsKG4udmFsdWUpO2lmKG4uYXN5bmMpcmV0dXJuIHJ8PTIsUHJvbWlzZS5yZXNvbHZlKGEpLnRoZW4oaSxmdW5jdGlvbihlKXtyZXR1cm4gdChlKSxpKCl9KX1lbHNlIHJ8PTF9Y2F0Y2goZSl7dChlKX1pZihyPT09MSlyZXR1cm4gZS5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdChlLmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTtpZihlLmhhc0Vycm9yKXRocm93IGUuZXJyb3J9cmV0dXJuIGkoKX1mdW5jdGlvbiAkYihlLHQpe3JldHVybiB0eXBlb2YgZT09YHN0cmluZ2AmJi9eXC5cLj9cLy8udGVzdChlKT9lLnJlcGxhY2UoL1wuKHRzeCkkfCgoPzpcLmQpPykoKD86XC5bXi4vXSs/KT8pXC4oW2NtXT8pdHMkL2ksZnVuY3Rpb24oZSxuLHIsaSxhKXtyZXR1cm4gbj90P2AuanN4YDpgLmpzYDpyJiYoIWl8fCFhKT9lOnIraStgLmArYS50b0xvd2VyQ2FzZSgpK2Bqc2B9KTplfXZhciBleCx0eCxueCxyeCxpeCxheCxveCxzeD1vKCgoKT0+e2V4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV4PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKX0sZXgoZSx0KX0sdHg9ZnVuY3Rpb24oKXtyZXR1cm4gdHg9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gdD1hcmd1bWVudHNbbl0sdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKSYmKGVbaV09dFtpXSk7cmV0dXJuIGV9LHR4LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbng9T2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0LG4scil7cj09PXZvaWQgMCYmKHI9bik7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pOyghaXx8KGBnZXRgaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKSkmJihpPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsaSl9KTooZnVuY3Rpb24oZSx0LG4scil7cj09PXZvaWQgMCYmKHI9biksZVtyXT10W25dfSkscng9T2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgZGVmYXVsdGAse2VudW1lcmFibGU6ITAsdmFsdWU6dH0pfSk6ZnVuY3Rpb24oZSx0KXtlLmRlZmF1bHQ9dH0saXg9ZnVuY3Rpb24oZSl7cmV0dXJuIGl4PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbdC5sZW5ndGhdPW4pO3JldHVybiB0fSxpeChlKX0sYXg9dHlwZW9mIFN1cHByZXNzZWRFcnJvcj09YGZ1bmN0aW9uYD9TdXBwcmVzc2VkRXJyb3I6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPUVycm9yKG4pO3JldHVybiByLm5hbWU9YFN1cHByZXNzZWRFcnJvcmAsci5lcnJvcj1lLHIuc3VwcHJlc3NlZD10LHJ9LG94PXtfX2V4dGVuZHM6d2IsX19hc3NpZ246dHgsX19yZXN0OlRiLF9fZGVjb3JhdGU6RWIsX19wYXJhbTpEYixfX2VzRGVjb3JhdGU6T2IsX19ydW5Jbml0aWFsaXplcnM6a2IsX19wcm9wS2V5OkFiLF9fc2V0RnVuY3Rpb25OYW1lOmpiLF9fbWV0YWRhdGE6TWIsX19hd2FpdGVyOk5iLF9fZ2VuZXJhdG9yOlBiLF9fY3JlYXRlQmluZGluZzpueCxfX2V4cG9ydFN0YXI6RmIsX192YWx1ZXM6SWIsX19yZWFkOkxiLF9fc3ByZWFkOlJiLF9fc3ByZWFkQXJyYXlzOnpiLF9fc3ByZWFkQXJyYXk6QmIsX19hd2FpdDpWYixfX2FzeW5jR2VuZXJhdG9yOkhiLF9fYXN5bmNEZWxlZ2F0b3I6VWIsX19hc3luY1ZhbHVlczpXYixfX21ha2VUZW1wbGF0ZU9iamVjdDpHYixfX2ltcG9ydFN0YXI6S2IsX19pbXBvcnREZWZhdWx0OnFiLF9fY2xhc3NQcml2YXRlRmllbGRHZXQ6SmIsX19jbGFzc1ByaXZhdGVGaWVsZFNldDpZYixfX2NsYXNzUHJpdmF0ZUZpZWxkSW46WGIsX19hZGREaXNwb3NhYmxlUmVzb3VyY2U6WmIsX19kaXNwb3NlUmVzb3VyY2VzOlFiLF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOiRifX0pKTtmdW5jdGlvbiBjeChlLHQpe3ZhciBuPXQmJnQuY2FjaGU/dC5jYWNoZTpteCxyPXQmJnQuc2VyaWFsaXplcj90LnNlcmlhbGl6ZXI6Zng7cmV0dXJuKHQmJnQuc3RyYXRlZ3k/dC5zdHJhdGVneTpBY2UpKGUse2NhY2hlOm4sc2VyaWFsaXplcjpyfSl9ZnVuY3Rpb24ga2NlKGUpe3JldHVybiBlPT1udWxsfHx0eXBlb2YgZT09YG51bWJlcmB8fHR5cGVvZiBlPT1gYm9vbGVhbmB9ZnVuY3Rpb24gbHgoZSx0LG4scil7dmFyIGk9a2NlKHIpP3I6bihyKSxhPXQuZ2V0KGkpO3JldHVybiBhPT09dm9pZCAwJiYoYT1lLmNhbGwodGhpcyxyKSx0LnNldChpLGEpKSxhfWZ1bmN0aW9uIHV4KGUsdCxuKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMyksaT1uKHIpLGE9dC5nZXQoaSk7cmV0dXJuIGE9PT12b2lkIDAmJihhPWUuYXBwbHkodGhpcyxyKSx0LnNldChpLGEpKSxhfWZ1bmN0aW9uIGR4KGUsdCxuLHIsaSl7cmV0dXJuIG4uYmluZCh0LGUscixpKX1mdW5jdGlvbiBBY2UoZSx0KXt2YXIgbj1lLmxlbmd0aD09PTE/bHg6dXg7cmV0dXJuIGR4KGUsdGhpcyxuLHQuY2FjaGUuY3JlYXRlKCksdC5zZXJpYWxpemVyKX1mdW5jdGlvbiBqY2UoZSx0KXtyZXR1cm4gZHgoZSx0aGlzLHV4LHQuY2FjaGUuY3JlYXRlKCksdC5zZXJpYWxpemVyKX1mdW5jdGlvbiBNY2UoZSx0KXtyZXR1cm4gZHgoZSx0aGlzLGx4LHQuY2FjaGUuY3JlYXRlKCksdC5zZXJpYWxpemVyKX12YXIgZngscHgsbXgsaHgsZ3g9bygoKCk9PntmeD1mdW5jdGlvbigpe3JldHVybiBKU09OLnN0cmluZ2lmeShhcmd1bWVudHMpfSxweD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLmNhY2hlPU9iamVjdC5jcmVhdGUobnVsbCl9cmV0dXJuIGUucHJvdG90eXBlLmdldD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jYWNoZVtlXX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dGhpcy5jYWNoZVtlXT10fSxlfSgpLG14PXtjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHB4fX0saHg9e3ZhcmlhZGljOmpjZSxtb25hZGljOk1jZX19KSksX3g7KGZ1bmN0aW9uKGUpe2VbZS5FWFBFQ1RfQVJHVU1FTlRfQ0xPU0lOR19CUkFDRT0xXT1gRVhQRUNUX0FSR1VNRU5UX0NMT1NJTkdfQlJBQ0VgLGVbZS5FTVBUWV9BUkdVTUVOVD0yXT1gRU1QVFlfQVJHVU1FTlRgLGVbZS5NQUxGT1JNRURfQVJHVU1FTlQ9M109YE1BTEZPUk1FRF9BUkdVTUVOVGAsZVtlLkVYUEVDVF9BUkdVTUVOVF9UWVBFPTRdPWBFWFBFQ1RfQVJHVU1FTlRfVFlQRWAsZVtlLklOVkFMSURfQVJHVU1FTlRfVFlQRT01XT1gSU5WQUxJRF9BUkdVTUVOVF9UWVBFYCxlW2UuRVhQRUNUX0FSR1VNRU5UX1NUWUxFPTZdPWBFWFBFQ1RfQVJHVU1FTlRfU1RZTEVgLGVbZS5JTlZBTElEX05VTUJFUl9TS0VMRVRPTj03XT1gSU5WQUxJRF9OVU1CRVJfU0tFTEVUT05gLGVbZS5JTlZBTElEX0RBVEVfVElNRV9TS0VMRVRPTj04XT1gSU5WQUxJRF9EQVRFX1RJTUVfU0tFTEVUT05gLGVbZS5FWFBFQ1RfTlVNQkVSX1NLRUxFVE9OPTldPWBFWFBFQ1RfTlVNQkVSX1NLRUxFVE9OYCxlW2UuRVhQRUNUX0RBVEVfVElNRV9TS0VMRVRPTj0xMF09YEVYUEVDVF9EQVRFX1RJTUVfU0tFTEVUT05gLGVbZS5VTkNMT1NFRF9RVU9URV9JTl9BUkdVTUVOVF9TVFlMRT0xMV09YFVOQ0xPU0VEX1FVT1RFX0lOX0FSR1VNRU5UX1NUWUxFYCxlW2UuRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9PUFRJT05TPTEyXT1gRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9PUFRJT05TYCxlW2UuRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9PRkZTRVRfVkFMVUU9MTNdPWBFWFBFQ1RfUExVUkFMX0FSR1VNRU5UX09GRlNFVF9WQUxVRWAsZVtlLklOVkFMSURfUExVUkFMX0FSR1VNRU5UX09GRlNFVF9WQUxVRT0xNF09YElOVkFMSURfUExVUkFMX0FSR1VNRU5UX09GRlNFVF9WQUxVRWAsZVtlLkVYUEVDVF9TRUxFQ1RfQVJHVU1FTlRfU0VMRUNUT1I9MTVdPWBFWFBFQ1RfU0VMRUNUX0FSR1VNRU5UX1NFTEVDVE9SYCxlW2UuRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUj0xNl09YEVYUEVDVF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1JgLGVbZS5FWFBFQ1RfU0VMRUNUX0FSR1VNRU5UX1NFTEVDVE9SX0ZSQUdNRU5UPTE3XT1gRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9TRUxFQ1RPUl9GUkFHTUVOVGAsZVtlLkVYUEVDVF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1JfRlJBR01FTlQ9MThdPWBFWFBFQ1RfUExVUkFMX0FSR1VNRU5UX1NFTEVDVE9SX0ZSQUdNRU5UYCxlW2UuSU5WQUxJRF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1I9MTldPWBJTlZBTElEX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUmAsZVtlLkRVUExJQ0FURV9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1I9MjBdPWBEVVBMSUNBVEVfUExVUkFMX0FSR1VNRU5UX1NFTEVDVE9SYCxlW2UuRFVQTElDQVRFX1NFTEVDVF9BUkdVTUVOVF9TRUxFQ1RPUj0yMV09YERVUExJQ0FURV9TRUxFQ1RfQVJHVU1FTlRfU0VMRUNUT1JgLGVbZS5NSVNTSU5HX09USEVSX0NMQVVTRT0yMl09YE1JU1NJTkdfT1RIRVJfQ0xBVVNFYCxlW2UuSU5WQUxJRF9UQUc9MjNdPWBJTlZBTElEX1RBR2AsZVtlLklOVkFMSURfVEFHX05BTUU9MjVdPWBJTlZBTElEX1RBR19OQU1FYCxlW2UuVU5NQVRDSEVEX0NMT1NJTkdfVEFHPTI2XT1gVU5NQVRDSEVEX0NMT1NJTkdfVEFHYCxlW2UuVU5DTE9TRURfVEFHPTI3XT1gVU5DTE9TRURfVEFHYH0pKF94fHwoX3g9e30pKTt2YXIgdng7KGZ1bmN0aW9uKGUpe2VbZS5saXRlcmFsPTBdPWBsaXRlcmFsYCxlW2UuYXJndW1lbnQ9MV09YGFyZ3VtZW50YCxlW2UubnVtYmVyPTJdPWBudW1iZXJgLGVbZS5kYXRlPTNdPWBkYXRlYCxlW2UudGltZT00XT1gdGltZWAsZVtlLnNlbGVjdD01XT1gc2VsZWN0YCxlW2UucGx1cmFsPTZdPWBwbHVyYWxgLGVbZS5wb3VuZD03XT1gcG91bmRgLGVbZS50YWc9OF09YHRhZ2B9KSh2eHx8KHZ4PXt9KSk7dmFyIHl4OyhmdW5jdGlvbihlKXtlW2UubnVtYmVyPTBdPWBudW1iZXJgLGVbZS5kYXRlVGltZT0xXT1gZGF0ZVRpbWVgfSkoeXh8fCh5eD17fSkpO2Z1bmN0aW9uIGJ4KGUpe3JldHVybiBlLnR5cGU9PT12eC5saXRlcmFsfWZ1bmN0aW9uIE5jZShlKXtyZXR1cm4gZS50eXBlPT09dnguYXJndW1lbnR9ZnVuY3Rpb24geHgoZSl7cmV0dXJuIGUudHlwZT09PXZ4Lm51bWJlcn1mdW5jdGlvbiBTeChlKXtyZXR1cm4gZS50eXBlPT09dnguZGF0ZX1mdW5jdGlvbiBDeChlKXtyZXR1cm4gZS50eXBlPT09dngudGltZX1mdW5jdGlvbiB3eChlKXtyZXR1cm4gZS50eXBlPT09dnguc2VsZWN0fWZ1bmN0aW9uIFR4KGUpe3JldHVybiBlLnR5cGU9PT12eC5wbHVyYWx9ZnVuY3Rpb24gUGNlKGUpe3JldHVybiBlLnR5cGU9PT12eC5wb3VuZH1mdW5jdGlvbiBFeChlKXtyZXR1cm4gZS50eXBlPT09dngudGFnfWZ1bmN0aW9uIER4KGUpe3JldHVybiEhKGUmJnR5cGVvZiBlPT1gb2JqZWN0YCYmZS50eXBlPT09eXgubnVtYmVyKX1mdW5jdGlvbiBPeChlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09YG9iamVjdGAmJmUudHlwZT09PXl4LmRhdGVUaW1lKX12YXIga3g9L1sgXHhBMFx1MTY4MFx1MjAwMC1cdTIwMEFcdTIwMkZcdTIwNUZcdTMwMDBdLyxGY2U9Lyg/OltFZWNdezEsNn18R3sxLDV9fFtRcV17MSw1fXwoPzpbeVl1cl0rfFV7MSw1fSl8W01MXXsxLDV9fGR7MSwyfXxEezEsM318RnsxfXxbYWJCXXsxLDV9fFtoa0hLXXsxLDJ9fHd7MSwyfXxXezF9fG17MSwyfXxzezEsMn18W3paT3ZWeFhdezEsNH0pKD89KFteJ10qJ1teJ10qJykqW14nXSokKS9nO2Z1bmN0aW9uIEljZShlKXt2YXIgdD17fTtyZXR1cm4gZS5yZXBsYWNlKEZjZSxmdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aDtzd2l0Y2goZVswXSl7Y2FzZWBHYDp0LmVyYT1uPT09ND9gbG9uZ2A6bj09PTU/YG5hcnJvd2A6YHNob3J0YDticmVhaztjYXNlYHlgOnQueWVhcj1uPT09Mj9gMi1kaWdpdGA6YG51bWVyaWNgO2JyZWFrO2Nhc2VgWWA6Y2FzZWB1YDpjYXNlYFVgOmNhc2VgcmA6dGhyb3cgUmFuZ2VFcnJvcigiYFkvdS9VL3JgICh5ZWFyKSBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZCwgdXNlIGB5YCBpbnN0ZWFkIik7Y2FzZWBxYDpjYXNlYFFgOnRocm93IFJhbmdlRXJyb3IoImBxL1FgIChxdWFydGVyKSBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZCIpO2Nhc2VgTWA6Y2FzZWBMYDp0Lm1vbnRoPVtgbnVtZXJpY2AsYDItZGlnaXRgLGBzaG9ydGAsYGxvbmdgLGBuYXJyb3dgXVtuLTFdO2JyZWFrO2Nhc2Vgd2A6Y2FzZWBXYDp0aHJvdyBSYW5nZUVycm9yKCJgdy9XYCAod2VlaykgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTtjYXNlYGRgOnQuZGF5PVtgbnVtZXJpY2AsYDItZGlnaXRgXVtuLTFdO2JyZWFrO2Nhc2VgRGA6Y2FzZWBGYDpjYXNlYGdgOnRocm93IFJhbmdlRXJyb3IoImBEL0YvZ2AgKGRheSkgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQsIHVzZSBgZGAgaW5zdGVhZCIpO2Nhc2VgRWA6dC53ZWVrZGF5PW49PT00P2Bsb25nYDpuPT09NT9gbmFycm93YDpgc2hvcnRgO2JyZWFrO2Nhc2VgZWA6aWYobjw0KXRocm93IFJhbmdlRXJyb3IoImBlLi5lZWVgICh3ZWVrZGF5KSBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZCIpO3Qud2Vla2RheT1bYHNob3J0YCxgbG9uZ2AsYG5hcnJvd2AsYHNob3J0YF1bbi00XTticmVhaztjYXNlYGNgOmlmKG48NCl0aHJvdyBSYW5nZUVycm9yKCJgYy4uY2NjYCAod2Vla2RheSkgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTt0LndlZWtkYXk9W2BzaG9ydGAsYGxvbmdgLGBuYXJyb3dgLGBzaG9ydGBdW24tNF07YnJlYWs7Y2FzZWBhYDp0LmhvdXIxMj0hMDticmVhaztjYXNlYGJgOmNhc2VgQmA6dGhyb3cgUmFuZ2VFcnJvcigiYGIvQmAgKHBlcmlvZCkgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQsIHVzZSBgYWAgaW5zdGVhZCIpO2Nhc2VgaGA6dC5ob3VyQ3ljbGU9YGgxMmAsdC5ob3VyPVtgbnVtZXJpY2AsYDItZGlnaXRgXVtuLTFdO2JyZWFrO2Nhc2VgSGA6dC5ob3VyQ3ljbGU9YGgyM2AsdC5ob3VyPVtgbnVtZXJpY2AsYDItZGlnaXRgXVtuLTFdO2JyZWFrO2Nhc2VgS2A6dC5ob3VyQ3ljbGU9YGgxMWAsdC5ob3VyPVtgbnVtZXJpY2AsYDItZGlnaXRgXVtuLTFdO2JyZWFrO2Nhc2Vga2A6dC5ob3VyQ3ljbGU9YGgyNGAsdC5ob3VyPVtgbnVtZXJpY2AsYDItZGlnaXRgXVtuLTFdO2JyZWFrO2Nhc2VgamA6Y2FzZWBKYDpjYXNlYENgOnRocm93IFJhbmdlRXJyb3IoImBqL0ovQ2AgKGhvdXIpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkLCB1c2UgYGgvSC9LL2tgIGluc3RlYWQiKTtjYXNlYG1gOnQubWludXRlPVtgbnVtZXJpY2AsYDItZGlnaXRgXVtuLTFdO2JyZWFrO2Nhc2Vgc2A6dC5zZWNvbmQ9W2BudW1lcmljYCxgMi1kaWdpdGBdW24tMV07YnJlYWs7Y2FzZWBTYDpjYXNlYEFgOnRocm93IFJhbmdlRXJyb3IoImBTL0FgIChzZWNvbmQpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkLCB1c2UgYHNgIGluc3RlYWQiKTtjYXNlYHpgOnQudGltZVpvbmVOYW1lPW48ND9gc2hvcnRgOmBsb25nYDticmVhaztjYXNlYFpgOmNhc2VgT2A6Y2FzZWB2YDpjYXNlYFZgOmNhc2VgWGA6Y2FzZWB4YDp0aHJvdyBSYW5nZUVycm9yKCJgWi9PL3YvVi9YL3hgICh0aW1lWm9uZSkgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQsIHVzZSBgemAgaW5zdGVhZCIpfXJldHVybmBgfSksdH12YXIgTGNlPS9bXHQtXHIgXHg4NVx1MjAwRVx1MjAwRlx1MjAyOFx1MjAyOV0vaTtzeCgpO2Z1bmN0aW9uIFJjZShlKXtpZihlLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoYE51bWJlciBza2VsZXRvbiBjYW5ub3QgYmUgZW1wdHlgKTtmb3IodmFyIHQ9ZS5zcGxpdChMY2UpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGg+MH0pLG49W10scj0wLGk9dDtyPGkubGVuZ3RoO3IrKyl7dmFyIGE9aVtyXS5zcGxpdChgL2ApO2lmKGEubGVuZ3RoPT09MCl0aHJvdyBFcnJvcihgSW52YWxpZCBudW1iZXIgc2tlbGV0b25gKTtmb3IodmFyIG89YVswXSxzPWEuc2xpY2UoMSksYz0wLGw9cztjPGwubGVuZ3RoO2MrKylpZihsW2NdLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoYEludmFsaWQgbnVtYmVyIHNrZWxldG9uYCk7bi5wdXNoKHtzdGVtOm8sb3B0aW9uczpzfSl9cmV0dXJuIG59ZnVuY3Rpb24gemNlKGUpe3JldHVybiBlLnJlcGxhY2UoL14oLio/KS0vLGBgKX12YXIgQXg9L15cLig/OigwKykoXCopP3woIyspfCgwKykoIyspKSQvZyxqeD0vXihAKyk/KFwrfCMrKT9bcnNdPyQvZyxCY2U9LyhcKikoMCspfCgjKykoMCspfCgwKykvZyxNeD0vXigwKykkLztmdW5jdGlvbiBOeChlKXt2YXIgdD17fTtyZXR1cm4gZVtlLmxlbmd0aC0xXT09PWByYD90LnJvdW5kaW5nUHJpb3JpdHk9YG1vcmVQcmVjaXNpb25gOmVbZS5sZW5ndGgtMV09PT1gc2AmJih0LnJvdW5kaW5nUHJpb3JpdHk9YGxlc3NQcmVjaXNpb25gKSxlLnJlcGxhY2UoangsZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0eXBlb2Ygcj09YHN0cmluZ2A/cj09PWArYD90Lm1pbmltdW1TaWduaWZpY2FudERpZ2l0cz1uLmxlbmd0aDpuWzBdPT09YCNgP3QubWF4aW11bVNpZ25pZmljYW50RGlnaXRzPW4ubGVuZ3RoOih0Lm1pbmltdW1TaWduaWZpY2FudERpZ2l0cz1uLmxlbmd0aCx0Lm1heGltdW1TaWduaWZpY2FudERpZ2l0cz1uLmxlbmd0aCsodHlwZW9mIHI9PWBzdHJpbmdgP3IubGVuZ3RoOjApKToodC5taW5pbXVtU2lnbmlmaWNhbnREaWdpdHM9bi5sZW5ndGgsdC5tYXhpbXVtU2lnbmlmaWNhbnREaWdpdHM9bi5sZW5ndGgpLGBgfSksdH1mdW5jdGlvbiBQeChlKXtzd2l0Y2goZSl7Y2FzZWBzaWduLWF1dG9gOnJldHVybntzaWduRGlzcGxheTpgYXV0b2B9O2Nhc2Vgc2lnbi1hY2NvdW50aW5nYDpjYXNlYCgpYDpyZXR1cm57Y3VycmVuY3lTaWduOmBhY2NvdW50aW5nYH07Y2FzZWBzaWduLWFsd2F5c2A6Y2FzZWArIWA6cmV0dXJue3NpZ25EaXNwbGF5OmBhbHdheXNgfTtjYXNlYHNpZ24tYWNjb3VudGluZy1hbHdheXNgOmNhc2VgKCkhYDpyZXR1cm57c2lnbkRpc3BsYXk6YGFsd2F5c2AsY3VycmVuY3lTaWduOmBhY2NvdW50aW5nYH07Y2FzZWBzaWduLWV4Y2VwdC16ZXJvYDpjYXNlYCs/YDpyZXR1cm57c2lnbkRpc3BsYXk6YGV4Y2VwdFplcm9gfTtjYXNlYHNpZ24tYWNjb3VudGluZy1leGNlcHQtemVyb2A6Y2FzZWAoKT9gOnJldHVybntzaWduRGlzcGxheTpgZXhjZXB0WmVyb2AsY3VycmVuY3lTaWduOmBhY2NvdW50aW5nYH07Y2FzZWBzaWduLW5ldmVyYDpjYXNlYCtfYDpyZXR1cm57c2lnbkRpc3BsYXk6YG5ldmVyYH19fWZ1bmN0aW9uIFZjZShlKXt2YXIgdDtpZihlWzBdPT09YEVgJiZlWzFdPT09YEVgPyh0PXtub3RhdGlvbjpgZW5naW5lZXJpbmdgfSxlPWUuc2xpY2UoMikpOmVbMF09PT1gRWAmJih0PXtub3RhdGlvbjpgc2NpZW50aWZpY2B9LGU9ZS5zbGljZSgxKSksdCl7dmFyIG49ZS5zbGljZSgwLDIpO2lmKG49PT1gKyFgPyh0LnNpZ25EaXNwbGF5PWBhbHdheXNgLGU9ZS5zbGljZSgyKSk6bj09PWArP2AmJih0LnNpZ25EaXNwbGF5PWBleGNlcHRaZXJvYCxlPWUuc2xpY2UoMikpLCFNeC50ZXN0KGUpKXRocm93IEVycm9yKGBNYWxmb3JtZWQgY29uY2lzZSBlbmcvc2NpZW50aWZpYyBub3RhdGlvbmApO3QubWluaW11bUludGVnZXJEaWdpdHM9ZS5sZW5ndGh9cmV0dXJuIHR9ZnVuY3Rpb24gRngoZSl7cmV0dXJuIFB4KGUpfHx7fX1mdW5jdGlvbiBIY2UoZSl7Zm9yKHZhciB0PXt9LG49MCxyPWU7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07c3dpdGNoKGkuc3RlbSl7Y2FzZWBwZXJjZW50YDpjYXNlYCVgOnQuc3R5bGU9YHBlcmNlbnRgO2NvbnRpbnVlO2Nhc2VgJXgxMDBgOnQuc3R5bGU9YHBlcmNlbnRgLHQuc2NhbGU9MTAwO2NvbnRpbnVlO2Nhc2VgY3VycmVuY3lgOnQuc3R5bGU9YGN1cnJlbmN5YCx0LmN1cnJlbmN5PWkub3B0aW9uc1swXTtjb250aW51ZTtjYXNlYGdyb3VwLW9mZmA6Y2FzZWAsX2A6dC51c2VHcm91cGluZz0hMTtjb250aW51ZTtjYXNlYHByZWNpc2lvbi1pbnRlZ2VyYDpjYXNlYC5gOnQubWF4aW11bUZyYWN0aW9uRGlnaXRzPTA7Y29udGludWU7Y2FzZWBtZWFzdXJlLXVuaXRgOmNhc2VgdW5pdGA6dC5zdHlsZT1gdW5pdGAsdC51bml0PXpjZShpLm9wdGlvbnNbMF0pO2NvbnRpbnVlO2Nhc2VgY29tcGFjdC1zaG9ydGA6Y2FzZWBLYDp0Lm5vdGF0aW9uPWBjb21wYWN0YCx0LmNvbXBhY3REaXNwbGF5PWBzaG9ydGA7Y29udGludWU7Y2FzZWBjb21wYWN0LWxvbmdgOmNhc2VgS0tgOnQubm90YXRpb249YGNvbXBhY3RgLHQuY29tcGFjdERpc3BsYXk9YGxvbmdgO2NvbnRpbnVlO2Nhc2Vgc2NpZW50aWZpY2A6dD10eCh0eCh0eCh7fSx0KSx7bm90YXRpb246YHNjaWVudGlmaWNgfSksaS5vcHRpb25zLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0eCh0eCh7fSxlKSxGeCh0KSl9LHt9KSk7Y29udGludWU7Y2FzZWBlbmdpbmVlcmluZ2A6dD10eCh0eCh0eCh7fSx0KSx7bm90YXRpb246YGVuZ2luZWVyaW5nYH0pLGkub3B0aW9ucy5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHgodHgoe30sZSksRngodCkpfSx7fSkpO2NvbnRpbnVlO2Nhc2Vgbm90YXRpb24tc2ltcGxlYDp0Lm5vdGF0aW9uPWBzdGFuZGFyZGA7Y29udGludWU7Y2FzZWB1bml0LXdpZHRoLW5hcnJvd2A6dC5jdXJyZW5jeURpc3BsYXk9YG5hcnJvd1N5bWJvbGAsdC51bml0RGlzcGxheT1gbmFycm93YDtjb250aW51ZTtjYXNlYHVuaXQtd2lkdGgtc2hvcnRgOnQuY3VycmVuY3lEaXNwbGF5PWBjb2RlYCx0LnVuaXREaXNwbGF5PWBzaG9ydGA7Y29udGludWU7Y2FzZWB1bml0LXdpZHRoLWZ1bGwtbmFtZWA6dC5jdXJyZW5jeURpc3BsYXk9YG5hbWVgLHQudW5pdERpc3BsYXk9YGxvbmdgO2NvbnRpbnVlO2Nhc2VgdW5pdC13aWR0aC1pc28tY29kZWA6dC5jdXJyZW5jeURpc3BsYXk9YHN5bWJvbGA7Y29udGludWU7Y2FzZWBzY2FsZWA6dC5zY2FsZT1wYXJzZUZsb2F0KGkub3B0aW9uc1swXSk7Y29udGludWU7Y2FzZWByb3VuZGluZy1tb2RlLWZsb29yYDp0LnJvdW5kaW5nTW9kZT1gZmxvb3JgO2NvbnRpbnVlO2Nhc2Vgcm91bmRpbmctbW9kZS1jZWlsaW5nYDp0LnJvdW5kaW5nTW9kZT1gY2VpbGA7Y29udGludWU7Y2FzZWByb3VuZGluZy1tb2RlLWRvd25gOnQucm91bmRpbmdNb2RlPWB0cnVuY2A7Y29udGludWU7Y2FzZWByb3VuZGluZy1tb2RlLXVwYDp0LnJvdW5kaW5nTW9kZT1gZXhwYW5kYDtjb250aW51ZTtjYXNlYHJvdW5kaW5nLW1vZGUtaGFsZi1ldmVuYDp0LnJvdW5kaW5nTW9kZT1gaGFsZkV2ZW5gO2NvbnRpbnVlO2Nhc2Vgcm91bmRpbmctbW9kZS1oYWxmLWRvd25gOnQucm91bmRpbmdNb2RlPWBoYWxmVHJ1bmNgO2NvbnRpbnVlO2Nhc2Vgcm91bmRpbmctbW9kZS1oYWxmLXVwYDp0LnJvdW5kaW5nTW9kZT1gaGFsZkV4cGFuZGA7Y29udGludWU7Y2FzZWBpbnRlZ2VyLXdpZHRoYDppZihpLm9wdGlvbnMubGVuZ3RoPjEpdGhyb3cgUmFuZ2VFcnJvcihgaW50ZWdlci13aWR0aCBzdGVtcyBvbmx5IGFjY2VwdCBhIHNpbmdsZSBvcHRpb25hbCBvcHRpb25gKTtpLm9wdGlvbnNbMF0ucmVwbGFjZShCY2UsZnVuY3Rpb24oZSxuLHIsaSxhLG8pe2lmKG4pdC5taW5pbXVtSW50ZWdlckRpZ2l0cz1yLmxlbmd0aDtlbHNlIGlmKGkmJmEpdGhyb3cgRXJyb3IoYFdlIGN1cnJlbnRseSBkbyBub3Qgc3VwcG9ydCBtYXhpbXVtIGludGVnZXIgZGlnaXRzYCk7ZWxzZSBpZihvKXRocm93IEVycm9yKGBXZSBjdXJyZW50bHkgZG8gbm90IHN1cHBvcnQgZXhhY3QgaW50ZWdlciBkaWdpdHNgKTtyZXR1cm5gYH0pO2NvbnRpbnVlfWlmKE14LnRlc3QoaS5zdGVtKSl7dC5taW5pbXVtSW50ZWdlckRpZ2l0cz1pLnN0ZW0ubGVuZ3RoO2NvbnRpbnVlfWlmKEF4LnRlc3QoaS5zdGVtKSl7aWYoaS5vcHRpb25zLmxlbmd0aD4xKXRocm93IFJhbmdlRXJyb3IoYEZyYWN0aW9uLXByZWNpc2lvbiBzdGVtcyBvbmx5IGFjY2VwdCBhIHNpbmdsZSBvcHRpb25hbCBvcHRpb25gKTtpLnN0ZW0ucmVwbGFjZShBeCxmdW5jdGlvbihlLG4scixpLGEsbyl7cmV0dXJuIHI9PT1gKmA/dC5taW5pbXVtRnJhY3Rpb25EaWdpdHM9bi5sZW5ndGg6aSYmaVswXT09PWAjYD90Lm1heGltdW1GcmFjdGlvbkRpZ2l0cz1pLmxlbmd0aDphJiZvPyh0Lm1pbmltdW1GcmFjdGlvbkRpZ2l0cz1hLmxlbmd0aCx0Lm1heGltdW1GcmFjdGlvbkRpZ2l0cz1hLmxlbmd0aCtvLmxlbmd0aCk6KHQubWluaW11bUZyYWN0aW9uRGlnaXRzPW4ubGVuZ3RoLHQubWF4aW11bUZyYWN0aW9uRGlnaXRzPW4ubGVuZ3RoKSxgYH0pO3ZhciBhPWkub3B0aW9uc1swXTthPT09YHdgP3Q9dHgodHgoe30sdCkse3RyYWlsaW5nWmVyb0Rpc3BsYXk6YHN0cmlwSWZJbnRlZ2VyYH0pOmEmJih0PXR4KHR4KHt9LHQpLE54KGEpKSk7Y29udGludWV9aWYoangudGVzdChpLnN0ZW0pKXt0PXR4KHR4KHt9LHQpLE54KGkuc3RlbSkpO2NvbnRpbnVlfXZhciBvPVB4KGkuc3RlbSk7byYmKHQ9dHgodHgoe30sdCksbykpO3ZhciBzPVZjZShpLnN0ZW0pO3MmJih0PXR4KHR4KHt9LHQpLHMpKX1yZXR1cm4gdH12YXIgSXg9eyIwMDEiOltgSGAsYGhgXSw0MTk6W2BoYCxgSGAsYGhCYCxgaGJgXSxBQzpbYEhgLGBoYCxgaGJgLGBoQmBdLEFEOltgSGAsYGhCYF0sQUU6W2BoYCxgaEJgLGBoYmAsYEhgXSxBRjpbYEhgLGBoYmAsYGhCYCxgaGBdLEFHOltgaGAsYGhiYCxgSGAsYGhCYF0sQUk6W2BIYCxgaGAsYGhiYCxgaEJgXSxBTDpbYGhgLGBIYCxgaEJgXSxBTTpbYEhgLGBoQmBdLEFPOltgSGAsYGhCYF0sQVI6W2BoYCxgSGAsYGhCYCxgaGJgXSxBUzpbYGhgLGBIYF0sQVQ6W2BIYCxgaEJgXSxBVTpbYGhgLGBoYmAsYEhgLGBoQmBdLEFXOltgSGAsYGhCYF0sQVg6W2BIYF0sQVo6W2BIYCxgaEJgLGBoYF0sQkE6W2BIYCxgaEJgLGBoYF0sQkI6W2BoYCxgaGJgLGBIYCxgaEJgXSxCRDpbYGhgLGBoQmAsYEhgXSxCRTpbYEhgLGBoQmBdLEJGOltgSGAsYGhCYF0sQkc6W2BIYCxgaEJgLGBoYF0sQkg6W2BoYCxgaEJgLGBoYmAsYEhgXSxCSTpbYEhgLGBoYF0sQko6W2BIYCxgaEJgXSxCTDpbYEhgLGBoQmBdLEJNOltgaGAsYGhiYCxgSGAsYGhCYF0sQk46W2BoYmAsYGhCYCxgaGAsYEhgXSxCTzpbYGhgLGBIYCxgaEJgLGBoYmBdLEJROltgSGBdLEJSOltgSGAsYGhCYF0sQlM6W2BoYCxgaGJgLGBIYCxgaEJgXSxCVDpbYGhgLGBIYF0sQlc6W2BIYCxgaGAsYGhiYCxgaEJgXSxCWTpbYEhgLGBoYF0sQlo6W2BIYCxgaGAsYGhiYCxgaEJgXSxDQTpbYGhgLGBoYmAsYEhgLGBoQmBdLENDOltgSGAsYGhgLGBoYmAsYGhCYF0sQ0Q6W2BoQmAsYEhgXSxDRjpbYEhgLGBoYCxgaEJgXSxDRzpbYEhgLGBoQmBdLENIOltgSGAsYGhCYCxgaGBdLENJOltgSGAsYGhCYF0sQ0s6W2BIYCxgaGAsYGhiYCxgaEJgXSxDTDpbYGhgLGBIYCxgaEJgLGBoYmBdLENNOltgSGAsYGhgLGBoQmBdLENOOltgSGAsYGhCYCxgaGJgLGBoYF0sQ086W2BoYCxgSGAsYGhCYCxgaGJgXSxDUDpbYEhgXSxDUjpbYGhgLGBIYCxgaEJgLGBoYmBdLENVOltgaGAsYEhgLGBoQmAsYGhiYF0sQ1Y6W2BIYCxgaEJgXSxDVzpbYEhgLGBoQmBdLENYOltgSGAsYGhgLGBoYmAsYGhCYF0sQ1k6W2BoYCxgSGAsYGhiYCxgaEJgXSxDWjpbYEhgXSxERTpbYEhgLGBoQmBdLERHOltgSGAsYGhgLGBoYmAsYGhCYF0sREo6W2BoYCxgSGBdLERLOltgSGBdLERNOltgaGAsYGhiYCxgSGAsYGhCYF0sRE86W2BoYCxgSGAsYGhCYCxgaGJgXSxEWjpbYGhgLGBoQmAsYGhiYCxgSGBdLEVBOltgSGAsYGhgLGBoQmAsYGhiYF0sRUM6W2BoYCxgSGAsYGhCYCxgaGJgXSxFRTpbYEhgLGBoQmBdLEVHOltgaGAsYGhCYCxgaGJgLGBIYF0sRUg6W2BoYCxgaEJgLGBoYmAsYEhgXSxFUjpbYGhgLGBIYF0sRVM6W2BIYCxgaEJgLGBoYCxgaGJgXSxFVDpbYGhCYCxgaGJgLGBoYCxgSGBdLEZJOltgSGBdLEZKOltgaGAsYGhiYCxgSGAsYGhCYF0sRks6W2BIYCxgaGAsYGhiYCxgaEJgXSxGTTpbYGhgLGBoYmAsYEhgLGBoQmBdLEZPOltgSGAsYGhgXSxGUjpbYEhgLGBoQmBdLEdBOltgSGAsYGhCYF0sR0I6W2BIYCxgaGAsYGhiYCxgaEJgXSxHRDpbYGhgLGBoYmAsYEhgLGBoQmBdLEdFOltgSGAsYGhCYCxgaGBdLEdGOltgSGAsYGhCYF0sR0c6W2BIYCxgaGAsYGhiYCxgaEJgXSxHSDpbYGhgLGBIYF0sR0k6W2BIYCxgaGAsYGhiYCxgaEJgXSxHTDpbYEhgLGBoYF0sR006W2BoYCxgaGJgLGBIYCxgaEJgXSxHTjpbYEhgLGBoQmBdLEdQOltgSGAsYGhCYF0sR1E6W2BIYCxgaEJgLGBoYCxgaGJgXSxHUjpbYGhgLGBIYCxgaGJgLGBoQmBdLEdUOltgaGAsYEhgLGBoQmAsYGhiYF0sR1U6W2BoYCxgaGJgLGBIYCxgaEJgXSxHVzpbYEhgLGBoQmBdLEdZOltgaGAsYGhiYCxgSGAsYGhCYF0sSEs6W2BoYCxgaEJgLGBoYmAsYEhgXSxITjpbYGhgLGBIYCxgaEJgLGBoYmBdLEhSOltgSGAsYGhCYF0sSFU6W2BIYCxgaGBdLElDOltgSGAsYGhgLGBoQmAsYGhiYF0sSUQ6W2BIYF0sSUU6W2BIYCxgaGAsYGhiYCxgaEJgXSxJTDpbYEhgLGBoQmBdLElNOltgSGAsYGhgLGBoYmAsYGhCYF0sSU46W2BoYCxgSGBdLElPOltgSGAsYGhgLGBoYmAsYGhCYF0sSVE6W2BoYCxgaEJgLGBoYmAsYEhgXSxJUjpbYGhCYCxgSGBdLElTOltgSGBdLElUOltgSGAsYGhCYF0sSkU6W2BIYCxgaGAsYGhiYCxgaEJgXSxKTTpbYGhgLGBoYmAsYEhgLGBoQmBdLEpPOltgaGAsYGhCYCxgaGJgLGBIYF0sSlA6W2BIYCxgS2AsYGhgXSxLRTpbYGhCYCxgaGJgLGBIYCxgaGBdLEtHOltgSGAsYGhgLGBoQmAsYGhiYF0sS0g6W2BoQmAsYGhgLGBIYCxgaGJgXSxLSTpbYGhgLGBoYmAsYEhgLGBoQmBdLEtNOltgSGAsYGhgLGBoQmAsYGhiYF0sS046W2BoYCxgaGJgLGBIYCxgaEJgXSxLUDpbYGhgLGBIYCxgaEJgLGBoYmBdLEtSOltgaGAsYEhgLGBoQmAsYGhiYF0sS1c6W2BoYCxgaEJgLGBoYmAsYEhgXSxLWTpbYGhgLGBoYmAsYEhgLGBoQmBdLEtaOltgSGAsYGhCYF0sTEE6W2BIYCxgaGJgLGBoQmAsYGhgXSxMQjpbYGhgLGBoQmAsYGhiYCxgSGBdLExDOltgaGAsYGhiYCxgSGAsYGhCYF0sTEk6W2BIYCxgaEJgLGBoYF0sTEs6W2BIYCxgaGAsYGhCYCxgaGJgXSxMUjpbYGhgLGBoYmAsYEhgLGBoQmBdLExTOltgaGAsYEhgXSxMVDpbYEhgLGBoYCxgaGJgLGBoQmBdLExVOltgSGAsYGhgLGBoQmBdLExWOltgSGAsYGhCYCxgaGJgLGBoYF0sTFk6W2BoYCxgaEJgLGBoYmAsYEhgXSxNQTpbYEhgLGBoYCxgaEJgLGBoYmBdLE1DOltgSGAsYGhCYF0sTUQ6W2BIYCxgaEJgXSxNRTpbYEhgLGBoQmAsYGhgXSxNRjpbYEhgLGBoQmBdLE1HOltgSGAsYGhgXSxNSDpbYGhgLGBoYmAsYEhgLGBoQmBdLE1LOltgSGAsYGhgLGBoYmAsYGhCYF0sTUw6W2BIYF0sTU06W2BoQmAsYGhiYCxgSGAsYGhgXSxNTjpbYEhgLGBoYCxgaGJgLGBoQmBdLE1POltgaGAsYGhCYCxgaGJgLGBIYF0sTVA6W2BoYCxgaGJgLGBIYCxgaEJgXSxNUTpbYEhgLGBoQmBdLE1SOltgaGAsYGhCYCxgaGJgLGBIYF0sTVM6W2BIYCxgaGAsYGhiYCxgaEJgXSxNVDpbYEhgLGBoYF0sTVU6W2BIYCxgaGBdLE1WOltgSGAsYGhgXSxNVzpbYGhgLGBoYmAsYEhgLGBoQmBdLE1YOltgaGAsYEhgLGBoQmAsYGhiYF0sTVk6W2BoYmAsYGhCYCxgaGAsYEhgXSxNWjpbYEhgLGBoQmBdLE5BOltgaGAsYEhgLGBoQmAsYGhiYF0sTkM6W2BIYCxgaEJgXSxORTpbYEhgXSxORjpbYEhgLGBoYCxgaGJgLGBoQmBdLE5HOltgSGAsYGhgLGBoYmAsYGhCYF0sTkk6W2BoYCxgSGAsYGhCYCxgaGJgXSxOTDpbYEhgLGBoQmBdLE5POltgSGAsYGhgXSxOUDpbYEhgLGBoYCxgaEJgXSxOUjpbYEhgLGBoYCxgaGJgLGBoQmBdLE5VOltgSGAsYGhgLGBoYmAsYGhCYF0sTlo6W2BoYCxgaGJgLGBIYCxgaEJgXSxPTTpbYGhgLGBoQmAsYGhiYCxgSGBdLFBBOltgaGAsYEhgLGBoQmAsYGhiYF0sUEU6W2BoYCxgSGAsYGhCYCxgaGJgXSxQRjpbYEhgLGBoYCxgaEJgXSxQRzpbYGhgLGBIYF0sUEg6W2BoYCxgaEJgLGBoYmAsYEhgXSxQSzpbYGhgLGBoQmAsYEhgXSxQTDpbYEhgLGBoYF0sUE06W2BIYCxgaEJgXSxQTjpbYEhgLGBoYCxgaGJgLGBoQmBdLFBSOltgaGAsYEhgLGBoQmAsYGhiYF0sUFM6W2BoYCxgaEJgLGBoYmAsYEhgXSxQVDpbYEhgLGBoQmBdLFBXOltgaGAsYEhgXSxQWTpbYGhgLGBIYCxgaEJgLGBoYmBdLFFBOltgaGAsYGhCYCxgaGJgLGBIYF0sUkU6W2BIYCxgaEJgXSxSTzpbYEhgLGBoQmBdLFJTOltgSGAsYGhCYCxgaGBdLFJVOltgSGBdLFJXOltgSGAsYGhgXSxTQTpbYGhgLGBoQmAsYGhiYCxgSGBdLFNCOltgaGAsYGhiYCxgSGAsYGhCYF0sU0M6W2BIYCxgaGAsYGhCYF0sU0Q6W2BoYCxgaEJgLGBoYmAsYEhgXSxTRTpbYEhgXSxTRzpbYGhgLGBoYmAsYEhgLGBoQmBdLFNIOltgSGAsYGhgLGBoYmAsYGhCYF0sU0k6W2BIYCxgaEJgXSxTSjpbYEhgXSxTSzpbYEhgXSxTTDpbYGhgLGBoYmAsYEhgLGBoQmBdLFNNOltgSGAsYGhgLGBoQmBdLFNOOltgSGAsYGhgLGBoQmBdLFNPOltgaGAsYEhgXSxTUjpbYEhgLGBoQmBdLFNTOltgaGAsYGhiYCxgSGAsYGhCYF0sU1Q6W2BIYCxgaEJgXSxTVjpbYGhgLGBIYCxgaEJgLGBoYmBdLFNYOltgSGAsYGhgLGBoYmAsYGhCYF0sU1k6W2BoYCxgaEJgLGBoYmAsYEhgXSxTWjpbYGhgLGBoYmAsYEhgLGBoQmBdLFRBOltgSGAsYGhgLGBoYmAsYGhCYF0sVEM6W2BoYCxgaGJgLGBIYCxgaEJgXSxURDpbYGhgLGBIYCxgaEJgXSxURjpbYEhgLGBoYCxgaEJgXSxURzpbYEhgLGBoQmBdLFRIOltgSGAsYGhgXSxUSjpbYEhgLGBoYF0sVEw6W2BIYCxgaEJgLGBoYmAsYGhgXSxUTTpbYEhgLGBoYF0sVE46W2BoYCxgaEJgLGBoYmAsYEhgXSxUTzpbYGhgLGBIYF0sVFI6W2BIYCxgaEJgXSxUVDpbYGhgLGBoYmAsYEhgLGBoQmBdLFRXOltgaEJgLGBoYmAsYGhgLGBIYF0sVFo6W2BoQmAsYGhiYCxgSGAsYGhgXSxVQTpbYEhgLGBoQmAsYGhgXSxVRzpbYGhCYCxgaGJgLGBIYCxgaGBdLFVNOltgaGAsYGhiYCxgSGAsYGhCYF0sVVM6W2BoYCxgaGJgLGBIYCxgaEJgXSxVWTpbYGhgLGBIYCxgaEJgLGBoYmBdLFVaOltgSGAsYGhCYCxgaGBdLFZBOltgSGAsYGhgLGBoQmBdLFZDOltgaGAsYGhiYCxgSGAsYGhCYF0sVkU6W2BoYCxgSGAsYGhCYCxgaGJgXSxWRzpbYGhgLGBoYmAsYEhgLGBoQmBdLFZJOltgaGAsYGhiYCxgSGAsYGhCYF0sVk46W2BIYCxgaGBdLFZVOltgaGAsYEhgXSxXRjpbYEhgLGBoQmBdLFdTOltgaGAsYEhgXSxYSzpbYEhgLGBoQmAsYGhgXSxZRTpbYGhgLGBoQmAsYGhiYCxgSGBdLFlUOltgSGAsYGhCYF0sWkE6W2BIYCxgaGAsYGhiYCxgaEJgXSxaTTpbYGhgLGBoYmAsYEhgLGBoQmBdLFpXOltgSGAsYGhgXSwiYWYtWkEiOltgSGAsYGhgLGBoQmAsYGhiYF0sImFyLTAwMSI6W2BoYCxgaEJgLGBoYmAsYEhgXSwiY2EtRVMiOltgSGAsYGhgLGBoQmBdLCJlbi0wMDEiOltgaGAsYGhiYCxgSGAsYGhCYF0sImVuLUhLIjpbYGhgLGBoYmAsYEhgLGBoQmBdLCJlbi1JTCI6W2BIYCxgaGAsYGhiYCxgaEJgXSwiZW4tTVkiOltgaGAsYGhiYCxgSGAsYGhCYF0sImVzLUJSIjpbYEhgLGBoYCxgaEJgLGBoYmBdLCJlcy1FUyI6W2BIYCxgaGAsYGhCYCxgaGJgXSwiZXMtR1EiOltgSGAsYGhgLGBoQmAsYGhiYF0sImZyLUNBIjpbYEhgLGBoYCxgaEJgXSwiZ2wtRVMiOltgSGAsYGhgLGBoQmBdLCJndS1JTiI6W2BoQmAsYGhiYCxgaGAsYEhgXSwiaGktSU4iOltgaEJgLGBoYCxgSGBdLCJpdC1DSCI6W2BIYCxgaGAsYGhCYF0sIml0LUlUIjpbYEhgLGBoYCxgaEJgXSwia24tSU4iOltgaEJgLGBoYCxgSGBdLCJtbC1JTiI6W2BoQmAsYGhgLGBIYF0sIm1yLUlOIjpbYGhCYCxgaGJgLGBoYCxgSGBdLCJwYS1JTiI6W2BoQmAsYGhiYCxgaGAsYEhgXSwidGEtSU4iOltgaEJgLGBoYCxgaGJgLGBIYF0sInRlLUlOIjpbYGhCYCxgaGAsYEhgXSwienUtWkEiOltgSGAsYGhCYCxgaGJgLGBoYF19O2Z1bmN0aW9uIFVjZShlLHQpe2Zvcih2YXIgbj1gYCxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWUuY2hhckF0KHIpO2lmKGk9PT1gamApe2Zvcih2YXIgYT0wO3IrMTxlLmxlbmd0aCYmZS5jaGFyQXQocisxKT09PWk7KWErKyxyKys7dmFyIG89MSsoYSYxKSxzPWE8Mj8xOjMrKGE+PjEpLGM9YGFgLGw9V2NlKHQpO2ZvcigobD09YEhgfHxsPT1ga2ApJiYocz0wKTtzLS0gPjA7KW4rPWM7Zm9yKDtvLS0gPjA7KW49bCtufWVsc2UgaT09PWBKYD9uKz1gSGA6bis9aX1yZXR1cm4gbn1mdW5jdGlvbiBXY2UoZSl7dmFyIHQ9ZS5ob3VyQ3ljbGU7aWYodD09PXZvaWQgMCYmZS5ob3VyQ3ljbGVzJiZlLmhvdXJDeWNsZXMubGVuZ3RoJiYodD1lLmhvdXJDeWNsZXNbMF0pLHQpc3dpdGNoKHQpe2Nhc2VgaDI0YDpyZXR1cm5ga2A7Y2FzZWBoMjNgOnJldHVybmBIYDtjYXNlYGgxMmA6cmV0dXJuYGhgO2Nhc2VgaDExYDpyZXR1cm5gS2A7ZGVmYXVsdDp0aHJvdyBFcnJvcihgSW52YWxpZCBob3VyQ3ljbGVgKX12YXIgbj1lLmxhbmd1YWdlLHI7cmV0dXJuIG4hPT1gcm9vdGAmJihyPWUubWF4aW1pemUoKS5yZWdpb24pLChJeFtyfHxgYF18fEl4W258fGBgXXx8SXhbYCR7bn0tMDAxYF18fEl4W2AwMDFgXSlbMF19c3goKTt2YXIgTHgsR2NlPVJlZ0V4cChgXiR7a3guc291cmNlfSpgKSxLY2U9UmVnRXhwKGAke2t4LnNvdXJjZX0qXCRgKTtmdW5jdGlvbiBSeChlLHQpe3JldHVybntzdGFydDplLGVuZDp0fX12YXIgcWNlPSEhU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoJiZgX2FgLnN0YXJ0c1dpdGgoYGFgLDEpLEpjZT0hIVN0cmluZy5mcm9tQ29kZVBvaW50LFljZT0hIU9iamVjdC5mcm9tRW50cmllcyxYY2U9ISFTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0LFpjZT0hIVN0cmluZy5wcm90b3R5cGUudHJpbVN0YXJ0LFFjZT0hIVN0cmluZy5wcm90b3R5cGUudHJpbUVuZCwkY2U9TnVtYmVyLmlzU2FmZUludGVnZXI/TnVtYmVyLmlzU2FmZUludGVnZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlPT1gbnVtYmVyYCYmaXNGaW5pdGUoZSkmJk1hdGguZmxvb3IoZSk9PT1lJiZNYXRoLmFicyhlKTw9OTAwNzE5OTI1NDc0MDk5MX0seng9ITA7dHJ5e3p4PSgoTHg9V3goYChbXlxccHtXaGl0ZV9TcGFjZX1cXHB7UGF0dGVybl9TeW50YXh9XSopYCxgeXVgKS5leGVjKGBhYCkpPT1udWxsP3ZvaWQgMDpMeFswXSk9PT1gYWB9Y2F0Y2h7eng9ITF9dmFyIEJ4PXFjZT9mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUuc3RhcnRzV2l0aCh0LG4pfTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUuc2xpY2UobixuK3QubGVuZ3RoKT09PXR9LFZ4PUpjZT9TdHJpbmcuZnJvbUNvZGVQb2ludDpmdW5jdGlvbigpe2Zvcih2YXIgZT1bLi4uYXJndW1lbnRzXSx0PWBgLG49ZS5sZW5ndGgscj0wLGk7bj5yOyl7aWYoaT1lW3IrK10saT4xMTE0MTExKXRocm93IFJhbmdlRXJyb3IoaStgIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnRgKTt0Kz1pPDY1NTM2P1N0cmluZy5mcm9tQ2hhckNvZGUoaSk6U3RyaW5nLmZyb21DaGFyQ29kZSgoKGktPTY1NTM2KT4+MTApKzU1Mjk2LGklMTAyNCs1NjMyMCl9cmV0dXJuIHR9LEh4PVljZT9PYmplY3QuZnJvbUVudHJpZXM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49MCxyPWU7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl0sYT1pWzBdO3RbYV09aVsxXX1yZXR1cm4gdH0sVXg9WGNlP2Z1bmN0aW9uKGUsdCl7cmV0dXJuIGUuY29kZVBvaW50QXQodCl9OmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5sZW5ndGg7aWYoISh0PDB8fHQ+PW4pKXt2YXIgcj1lLmNoYXJDb2RlQXQodCksaTtyZXR1cm4gcjw1NTI5Nnx8cj41NjMxOXx8dCsxPT09bnx8KGk9ZS5jaGFyQ29kZUF0KHQrMSkpPDU2MzIwfHxpPjU3MzQzP3I6KHItNTUyOTY8PDEwKSsoaS01NjMyMCkrNjU1MzZ9fSxlbGU9WmNlP2Z1bmN0aW9uKGUpe3JldHVybiBlLnRyaW1TdGFydCgpfTpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKEdjZSxgYCl9LHRsZT1RY2U/ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHJpbUVuZCgpfTpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKEtjZSxgYCl9O2Z1bmN0aW9uIFd4KGUsdCl7cmV0dXJuIG5ldyBSZWdFeHAoZSx0KX12YXIgR3g7aWYoengpe3ZhciBLeD1XeChgKFteXFxwe1doaXRlX1NwYWNlfVxccHtQYXR0ZXJuX1N5bnRheH1dKilgLGB5dWApO0d4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEt4Lmxhc3RJbmRleD10LEt4LmV4ZWMoZSlbMV0/P2BgfX1lbHNlIEd4PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdOzspe3ZhciByPVV4KGUsdCk7aWYocj09PXZvaWQgMHx8Sngocil8fGFsZShyKSlicmVhaztuLnB1c2gociksdCs9cj49NjU1MzY/MjoxfXJldHVybiBWeC5hcHBseSh2b2lkIDAsbil9O3ZhciBubGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7dD09PXZvaWQgMCYmKHQ9e30pLHRoaXMubWVzc2FnZT1lLHRoaXMucG9zaXRpb249e29mZnNldDowLGxpbmU6MSxjb2x1bW46MX0sdGhpcy5pZ25vcmVUYWc9ISF0Lmlnbm9yZVRhZyx0aGlzLmxvY2FsZT10LmxvY2FsZSx0aGlzLnJlcXVpcmVzT3RoZXJDbGF1c2U9ISF0LnJlcXVpcmVzT3RoZXJDbGF1c2UsdGhpcy5zaG91bGRQYXJzZVNrZWxldG9ucz0hIXQuc2hvdWxkUGFyc2VTa2VsZXRvbnN9cmV0dXJuIGUucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKCl7aWYodGhpcy5vZmZzZXQoKSE9PTApdGhyb3cgRXJyb3IoYHBhcnNlciBjYW4gb25seSBiZSB1c2VkIG9uY2VgKTtyZXR1cm4gdGhpcy5wYXJzZU1lc3NhZ2UoMCxgYCwhMSl9LGUucHJvdG90eXBlLnBhcnNlTWVzc2FnZT1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPVtdOyF0aGlzLmlzRU9GKCk7KXt2YXIgaT10aGlzLmNoYXIoKTtpZihpPT09MTIzKXt2YXIgYT10aGlzLnBhcnNlQXJndW1lbnQoZSxuKTtpZihhLmVycilyZXR1cm4gYTtyLnB1c2goYS52YWwpfWVsc2UgaWYoaT09PTEyNSYmZT4wKWJyZWFrO2Vsc2UgaWYoaT09PTM1JiYodD09PWBwbHVyYWxgfHx0PT09YHNlbGVjdG9yZGluYWxgKSl7dmFyIG89dGhpcy5jbG9uZVBvc2l0aW9uKCk7dGhpcy5idW1wKCksci5wdXNoKHt0eXBlOnZ4LnBvdW5kLGxvY2F0aW9uOlJ4KG8sdGhpcy5jbG9uZVBvc2l0aW9uKCkpfSl9ZWxzZSBpZihpPT09NjAmJiF0aGlzLmlnbm9yZVRhZyYmdGhpcy5wZWVrKCk9PT00Nyl7aWYobilicmVhaztyZXR1cm4gdGhpcy5lcnJvcihfeC5VTk1BVENIRURfQ0xPU0lOR19UQUcsUngodGhpcy5jbG9uZVBvc2l0aW9uKCksdGhpcy5jbG9uZVBvc2l0aW9uKCkpKX1lbHNlIGlmKGk9PT02MCYmIXRoaXMuaWdub3JlVGFnJiZxeCh0aGlzLnBlZWsoKXx8MCkpe3ZhciBhPXRoaXMucGFyc2VUYWcoZSx0KTtpZihhLmVycilyZXR1cm4gYTtyLnB1c2goYS52YWwpfWVsc2V7dmFyIGE9dGhpcy5wYXJzZUxpdGVyYWwoZSx0KTtpZihhLmVycilyZXR1cm4gYTtyLnB1c2goYS52YWwpfX1yZXR1cm57dmFsOnIsZXJyOm51bGx9fSxlLnByb3RvdHlwZS5wYXJzZVRhZz1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuY2xvbmVQb3NpdGlvbigpO3RoaXMuYnVtcCgpO3ZhciByPXRoaXMucGFyc2VUYWdOYW1lKCk7aWYodGhpcy5idW1wU3BhY2UoKSx0aGlzLmJ1bXBJZihgLz5gKSlyZXR1cm57dmFsOnt0eXBlOnZ4LmxpdGVyYWwsdmFsdWU6YDwke3J9Lz5gLGxvY2F0aW9uOlJ4KG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpfSxlcnI6bnVsbH07aWYodGhpcy5idW1wSWYoYD5gKSl7dmFyIGk9dGhpcy5wYXJzZU1lc3NhZ2UoZSsxLHQsITApO2lmKGkuZXJyKXJldHVybiBpO3ZhciBhPWkudmFsLG89dGhpcy5jbG9uZVBvc2l0aW9uKCk7aWYodGhpcy5idW1wSWYoYDwvYCkpe2lmKHRoaXMuaXNFT0YoKXx8IXF4KHRoaXMuY2hhcigpKSlyZXR1cm4gdGhpcy5lcnJvcihfeC5JTlZBTElEX1RBRyxSeChvLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk7dmFyIHM9dGhpcy5jbG9uZVBvc2l0aW9uKCk7cmV0dXJuIHI9PT10aGlzLnBhcnNlVGFnTmFtZSgpPyh0aGlzLmJ1bXBTcGFjZSgpLHRoaXMuYnVtcElmKGA+YCk/e3ZhbDp7dHlwZTp2eC50YWcsdmFsdWU6cixjaGlsZHJlbjphLGxvY2F0aW9uOlJ4KG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpfSxlcnI6bnVsbH06dGhpcy5lcnJvcihfeC5JTlZBTElEX1RBRyxSeChvLHRoaXMuY2xvbmVQb3NpdGlvbigpKSkpOnRoaXMuZXJyb3IoX3guVU5NQVRDSEVEX0NMT1NJTkdfVEFHLFJ4KHMsdGhpcy5jbG9uZVBvc2l0aW9uKCkpKX1lbHNlIHJldHVybiB0aGlzLmVycm9yKF94LlVOQ0xPU0VEX1RBRyxSeChuLHRoaXMuY2xvbmVQb3NpdGlvbigpKSl9ZWxzZSByZXR1cm4gdGhpcy5lcnJvcihfeC5JTlZBTElEX1RBRyxSeChuLHRoaXMuY2xvbmVQb3NpdGlvbigpKSl9LGUucHJvdG90eXBlLnBhcnNlVGFnTmFtZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMub2Zmc2V0KCk7Zm9yKHRoaXMuYnVtcCgpOyF0aGlzLmlzRU9GKCkmJmlsZSh0aGlzLmNoYXIoKSk7KXRoaXMuYnVtcCgpO3JldHVybiB0aGlzLm1lc3NhZ2Uuc2xpY2UoZSx0aGlzLm9mZnNldCgpKX0sZS5wcm90b3R5cGUucGFyc2VMaXRlcmFsPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPXRoaXMuY2xvbmVQb3NpdGlvbigpLHI9YGA7Oyl7dmFyIGk9dGhpcy50cnlQYXJzZVF1b3RlKHQpO2lmKGkpe3IrPWk7Y29udGludWV9dmFyIGE9dGhpcy50cnlQYXJzZVVucXVvdGVkKGUsdCk7aWYoYSl7cis9YTtjb250aW51ZX12YXIgbz10aGlzLnRyeVBhcnNlTGVmdEFuZ2xlQnJhY2tldCgpO2lmKG8pe3IrPW87Y29udGludWV9YnJlYWt9dmFyIHM9Ungobix0aGlzLmNsb25lUG9zaXRpb24oKSk7cmV0dXJue3ZhbDp7dHlwZTp2eC5saXRlcmFsLHZhbHVlOnIsbG9jYXRpb246c30sZXJyOm51bGx9fSxlLnByb3RvdHlwZS50cnlQYXJzZUxlZnRBbmdsZUJyYWNrZXQ9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc0VPRigpJiZ0aGlzLmNoYXIoKT09PTYwJiYodGhpcy5pZ25vcmVUYWd8fCFybGUodGhpcy5wZWVrKCl8fDApKT8odGhpcy5idW1wKCksYDxgKTpudWxsfSxlLnByb3RvdHlwZS50cnlQYXJzZVF1b3RlPWZ1bmN0aW9uKGUpe2lmKHRoaXMuaXNFT0YoKXx8dGhpcy5jaGFyKCkhPT0zOSlyZXR1cm4gbnVsbDtzd2l0Y2godGhpcy5wZWVrKCkpe2Nhc2UgMzk6cmV0dXJuIHRoaXMuYnVtcCgpLHRoaXMuYnVtcCgpLGAnYDtjYXNlIDEyMzpjYXNlIDYwOmNhc2UgNjI6Y2FzZSAxMjU6YnJlYWs7Y2FzZSAzNTppZihlPT09YHBsdXJhbGB8fGU9PT1gc2VsZWN0b3JkaW5hbGApYnJlYWs7cmV0dXJuIG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH10aGlzLmJ1bXAoKTt2YXIgdD1bdGhpcy5jaGFyKCldO2Zvcih0aGlzLmJ1bXAoKTshdGhpcy5pc0VPRigpOyl7dmFyIG49dGhpcy5jaGFyKCk7aWYobj09PTM5KWlmKHRoaXMucGVlaygpPT09MzkpdC5wdXNoKDM5KSx0aGlzLmJ1bXAoKTtlbHNle3RoaXMuYnVtcCgpO2JyZWFrfWVsc2UgdC5wdXNoKG4pO3RoaXMuYnVtcCgpfXJldHVybiBWeC5hcHBseSh2b2lkIDAsdCl9LGUucHJvdG90eXBlLnRyeVBhcnNlVW5xdW90ZWQ9ZnVuY3Rpb24oZSx0KXtpZih0aGlzLmlzRU9GKCkpcmV0dXJuIG51bGw7dmFyIG49dGhpcy5jaGFyKCk7cmV0dXJuIG49PT02MHx8bj09PTEyM3x8bj09PTM1JiYodD09PWBwbHVyYWxgfHx0PT09YHNlbGVjdG9yZGluYWxgKXx8bj09PTEyNSYmZT4wP251bGw6KHRoaXMuYnVtcCgpLFZ4KG4pKX0sZS5wcm90b3R5cGUucGFyc2VBcmd1bWVudD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuY2xvbmVQb3NpdGlvbigpO2lmKHRoaXMuYnVtcCgpLHRoaXMuYnVtcFNwYWNlKCksdGhpcy5pc0VPRigpKXJldHVybiB0aGlzLmVycm9yKF94LkVYUEVDVF9BUkdVTUVOVF9DTE9TSU5HX0JSQUNFLFJ4KG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTtpZih0aGlzLmNoYXIoKT09PTEyNSlyZXR1cm4gdGhpcy5idW1wKCksdGhpcy5lcnJvcihfeC5FTVBUWV9BUkdVTUVOVCxSeChuLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk7dmFyIHI9dGhpcy5wYXJzZUlkZW50aWZpZXJJZlBvc3NpYmxlKCkudmFsdWU7aWYoIXIpcmV0dXJuIHRoaXMuZXJyb3IoX3guTUFMRk9STUVEX0FSR1VNRU5ULFJ4KG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTtpZih0aGlzLmJ1bXBTcGFjZSgpLHRoaXMuaXNFT0YoKSlyZXR1cm4gdGhpcy5lcnJvcihfeC5FWFBFQ1RfQVJHVU1FTlRfQ0xPU0lOR19CUkFDRSxSeChuLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk7c3dpdGNoKHRoaXMuY2hhcigpKXtjYXNlIDEyNTpyZXR1cm4gdGhpcy5idW1wKCkse3ZhbDp7dHlwZTp2eC5hcmd1bWVudCx2YWx1ZTpyLGxvY2F0aW9uOlJ4KG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpfSxlcnI6bnVsbH07Y2FzZSA0NDpyZXR1cm4gdGhpcy5idW1wKCksdGhpcy5idW1wU3BhY2UoKSx0aGlzLmlzRU9GKCk/dGhpcy5lcnJvcihfeC5FWFBFQ1RfQVJHVU1FTlRfQ0xPU0lOR19CUkFDRSxSeChuLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk6dGhpcy5wYXJzZUFyZ3VtZW50T3B0aW9ucyhlLHQscixuKTtkZWZhdWx0OnJldHVybiB0aGlzLmVycm9yKF94Lk1BTEZPUk1FRF9BUkdVTUVOVCxSeChuLHRoaXMuY2xvbmVQb3NpdGlvbigpKSl9fSxlLnByb3RvdHlwZS5wYXJzZUlkZW50aWZpZXJJZlBvc3NpYmxlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jbG9uZVBvc2l0aW9uKCksdD10aGlzLm9mZnNldCgpLG49R3godGhpcy5tZXNzYWdlLHQpLHI9dCtuLmxlbmd0aDtyZXR1cm4gdGhpcy5idW1wVG8ocikse3ZhbHVlOm4sbG9jYXRpb246UngoZSx0aGlzLmNsb25lUG9zaXRpb24oKSl9fSxlLnByb3RvdHlwZS5wYXJzZUFyZ3VtZW50T3B0aW9ucz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaT10aGlzLmNsb25lUG9zaXRpb24oKSxhPXRoaXMucGFyc2VJZGVudGlmaWVySWZQb3NzaWJsZSgpLnZhbHVlLG89dGhpcy5jbG9uZVBvc2l0aW9uKCk7c3dpdGNoKGEpe2Nhc2VgYDpyZXR1cm4gdGhpcy5lcnJvcihfeC5FWFBFQ1RfQVJHVU1FTlRfVFlQRSxSeChpLG8pKTtjYXNlYG51bWJlcmA6Y2FzZWBkYXRlYDpjYXNlYHRpbWVgOnRoaXMuYnVtcFNwYWNlKCk7dmFyIHM9bnVsbDtpZih0aGlzLmJ1bXBJZihgLGApKXt0aGlzLmJ1bXBTcGFjZSgpO3ZhciBjPXRoaXMuY2xvbmVQb3NpdGlvbigpLGw9dGhpcy5wYXJzZVNpbXBsZUFyZ1N0eWxlSWZQb3NzaWJsZSgpO2lmKGwuZXJyKXJldHVybiBsO3ZhciB1PXRsZShsLnZhbCk7aWYodS5sZW5ndGg9PT0wKXJldHVybiB0aGlzLmVycm9yKF94LkVYUEVDVF9BUkdVTUVOVF9TVFlMRSxSeCh0aGlzLmNsb25lUG9zaXRpb24oKSx0aGlzLmNsb25lUG9zaXRpb24oKSkpO3M9e3N0eWxlOnUsc3R5bGVMb2NhdGlvbjpSeChjLHRoaXMuY2xvbmVQb3NpdGlvbigpKX19dmFyIGQ9dGhpcy50cnlQYXJzZUFyZ3VtZW50Q2xvc2Uocik7aWYoZC5lcnIpcmV0dXJuIGQ7dmFyIGY9Ungocix0aGlzLmNsb25lUG9zaXRpb24oKSk7aWYocyYmQngocz09bnVsbD92b2lkIDA6cy5zdHlsZSxgOjpgLDApKXt2YXIgcD1lbGUocy5zdHlsZS5zbGljZSgyKSk7aWYoYT09PWBudW1iZXJgKXt2YXIgbD10aGlzLnBhcnNlTnVtYmVyU2tlbGV0b25Gcm9tU3RyaW5nKHAscy5zdHlsZUxvY2F0aW9uKTtyZXR1cm4gbC5lcnI/bDp7dmFsOnt0eXBlOnZ4Lm51bWJlcix2YWx1ZTpuLGxvY2F0aW9uOmYsc3R5bGU6bC52YWx9LGVycjpudWxsfX1lbHNle2lmKHAubGVuZ3RoPT09MClyZXR1cm4gdGhpcy5lcnJvcihfeC5FWFBFQ1RfREFURV9USU1FX1NLRUxFVE9OLGYpO3ZhciBtPXA7dGhpcy5sb2NhbGUmJihtPVVjZShwLHRoaXMubG9jYWxlKSk7dmFyIHU9e3R5cGU6eXguZGF0ZVRpbWUscGF0dGVybjptLGxvY2F0aW9uOnMuc3R5bGVMb2NhdGlvbixwYXJzZWRPcHRpb25zOnRoaXMuc2hvdWxkUGFyc2VTa2VsZXRvbnM/SWNlKG0pOnt9fTtyZXR1cm57dmFsOnt0eXBlOmE9PT1gZGF0ZWA/dnguZGF0ZTp2eC50aW1lLHZhbHVlOm4sbG9jYXRpb246ZixzdHlsZTp1fSxlcnI6bnVsbH19fXJldHVybnt2YWw6e3R5cGU6YT09PWBudW1iZXJgP3Z4Lm51bWJlcjphPT09YGRhdGVgP3Z4LmRhdGU6dngudGltZSx2YWx1ZTpuLGxvY2F0aW9uOmYsc3R5bGU6KHM9PW51bGw/dm9pZCAwOnMuc3R5bGUpPz9udWxsfSxlcnI6bnVsbH07Y2FzZWBwbHVyYWxgOmNhc2Vgc2VsZWN0b3JkaW5hbGA6Y2FzZWBzZWxlY3RgOnZhciBoPXRoaXMuY2xvbmVQb3NpdGlvbigpO2lmKHRoaXMuYnVtcFNwYWNlKCksIXRoaXMuYnVtcElmKGAsYCkpcmV0dXJuIHRoaXMuZXJyb3IoX3guRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9PUFRJT05TLFJ4KGgsdHgoe30saCkpKTt0aGlzLmJ1bXBTcGFjZSgpO3ZhciBnPXRoaXMucGFyc2VJZGVudGlmaWVySWZQb3NzaWJsZSgpLF89MDtpZihhIT09YHNlbGVjdGAmJmcudmFsdWU9PT1gb2Zmc2V0YCl7aWYoIXRoaXMuYnVtcElmKGA6YCkpcmV0dXJuIHRoaXMuZXJyb3IoX3guRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9PRkZTRVRfVkFMVUUsUngodGhpcy5jbG9uZVBvc2l0aW9uKCksdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTt0aGlzLmJ1bXBTcGFjZSgpO3ZhciBsPXRoaXMudHJ5UGFyc2VEZWNpbWFsSW50ZWdlcihfeC5FWFBFQ1RfUExVUkFMX0FSR1VNRU5UX09GRlNFVF9WQUxVRSxfeC5JTlZBTElEX1BMVVJBTF9BUkdVTUVOVF9PRkZTRVRfVkFMVUUpO2lmKGwuZXJyKXJldHVybiBsO3RoaXMuYnVtcFNwYWNlKCksZz10aGlzLnBhcnNlSWRlbnRpZmllcklmUG9zc2libGUoKSxfPWwudmFsfXZhciB2PXRoaXMudHJ5UGFyc2VQbHVyYWxPclNlbGVjdE9wdGlvbnMoZSxhLHQsZyk7aWYodi5lcnIpcmV0dXJuIHY7dmFyIGQ9dGhpcy50cnlQYXJzZUFyZ3VtZW50Q2xvc2Uocik7aWYoZC5lcnIpcmV0dXJuIGQ7dmFyIHk9Ungocix0aGlzLmNsb25lUG9zaXRpb24oKSk7cmV0dXJuIGE9PT1gc2VsZWN0YD97dmFsOnt0eXBlOnZ4LnNlbGVjdCx2YWx1ZTpuLG9wdGlvbnM6SHgodi52YWwpLGxvY2F0aW9uOnl9LGVycjpudWxsfTp7dmFsOnt0eXBlOnZ4LnBsdXJhbCx2YWx1ZTpuLG9wdGlvbnM6SHgodi52YWwpLG9mZnNldDpfLHBsdXJhbFR5cGU6YT09PWBwbHVyYWxgP2BjYXJkaW5hbGA6YG9yZGluYWxgLGxvY2F0aW9uOnl9LGVycjpudWxsfTtkZWZhdWx0OnJldHVybiB0aGlzLmVycm9yKF94LklOVkFMSURfQVJHVU1FTlRfVFlQRSxSeChpLG8pKX19LGUucHJvdG90eXBlLnRyeVBhcnNlQXJndW1lbnRDbG9zZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5pc0VPRigpfHx0aGlzLmNoYXIoKSE9PTEyNT90aGlzLmVycm9yKF94LkVYUEVDVF9BUkdVTUVOVF9DTE9TSU5HX0JSQUNFLFJ4KGUsdGhpcy5jbG9uZVBvc2l0aW9uKCkpKToodGhpcy5idW1wKCkse3ZhbDohMCxlcnI6bnVsbH0pfSxlLnByb3RvdHlwZS5wYXJzZVNpbXBsZUFyZ1N0eWxlSWZQb3NzaWJsZT1mdW5jdGlvbigpe2Zvcih2YXIgZT0wLHQ9dGhpcy5jbG9uZVBvc2l0aW9uKCk7IXRoaXMuaXNFT0YoKTspc3dpdGNoKHRoaXMuY2hhcigpKXtjYXNlIDM5OnRoaXMuYnVtcCgpO3ZhciBuPXRoaXMuY2xvbmVQb3NpdGlvbigpO2lmKCF0aGlzLmJ1bXBVbnRpbChgJ2ApKXJldHVybiB0aGlzLmVycm9yKF94LlVOQ0xPU0VEX1FVT1RFX0lOX0FSR1VNRU5UX1NUWUxFLFJ4KG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTt0aGlzLmJ1bXAoKTticmVhaztjYXNlIDEyMzplKz0xLHRoaXMuYnVtcCgpO2JyZWFrO2Nhc2UgMTI1OmlmKGU+MCktLWU7ZWxzZSByZXR1cm57dmFsOnRoaXMubWVzc2FnZS5zbGljZSh0Lm9mZnNldCx0aGlzLm9mZnNldCgpKSxlcnI6bnVsbH07YnJlYWs7ZGVmYXVsdDp0aGlzLmJ1bXAoKTticmVha31yZXR1cm57dmFsOnRoaXMubWVzc2FnZS5zbGljZSh0Lm9mZnNldCx0aGlzLm9mZnNldCgpKSxlcnI6bnVsbH19LGUucHJvdG90eXBlLnBhcnNlTnVtYmVyU2tlbGV0b25Gcm9tU3RyaW5nPWZ1bmN0aW9uKGUsdCl7dmFyIG49W107dHJ5e249UmNlKGUpfWNhdGNoe3JldHVybiB0aGlzLmVycm9yKF94LklOVkFMSURfTlVNQkVSX1NLRUxFVE9OLHQpfXJldHVybnt2YWw6e3R5cGU6eXgubnVtYmVyLHRva2VuczpuLGxvY2F0aW9uOnQscGFyc2VkT3B0aW9uczp0aGlzLnNob3VsZFBhcnNlU2tlbGV0b25zP0hjZShuKTp7fX0sZXJyOm51bGx9fSxlLnByb3RvdHlwZS50cnlQYXJzZVBsdXJhbE9yU2VsZWN0T3B0aW9ucz1mdW5jdGlvbihlLHQsbixyKXtmb3IodmFyIGksYT0hMSxvPVtdLHM9bmV3IFNldCxjPXIudmFsdWUsbD1yLmxvY2F0aW9uOzspe2lmKGMubGVuZ3RoPT09MCl7dmFyIHU9dGhpcy5jbG9uZVBvc2l0aW9uKCk7aWYodCE9PWBzZWxlY3RgJiZ0aGlzLmJ1bXBJZihgPWApKXt2YXIgZD10aGlzLnRyeVBhcnNlRGVjaW1hbEludGVnZXIoX3guRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUixfeC5JTlZBTElEX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUik7aWYoZC5lcnIpcmV0dXJuIGQ7bD1SeCh1LHRoaXMuY2xvbmVQb3NpdGlvbigpKSxjPXRoaXMubWVzc2FnZS5zbGljZSh1Lm9mZnNldCx0aGlzLm9mZnNldCgpKX1lbHNlIGJyZWFrfWlmKHMuaGFzKGMpKXJldHVybiB0aGlzLmVycm9yKHQ9PT1gc2VsZWN0YD9feC5EVVBMSUNBVEVfU0VMRUNUX0FSR1VNRU5UX1NFTEVDVE9SOl94LkRVUExJQ0FURV9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1IsbCk7Yz09PWBvdGhlcmAmJihhPSEwKSx0aGlzLmJ1bXBTcGFjZSgpO3ZhciBmPXRoaXMuY2xvbmVQb3NpdGlvbigpO2lmKCF0aGlzLmJ1bXBJZihge2ApKXJldHVybiB0aGlzLmVycm9yKHQ9PT1gc2VsZWN0YD9feC5FWFBFQ1RfU0VMRUNUX0FSR1VNRU5UX1NFTEVDVE9SX0ZSQUdNRU5UOl94LkVYUEVDVF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1JfRlJBR01FTlQsUngodGhpcy5jbG9uZVBvc2l0aW9uKCksdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTt2YXIgcD10aGlzLnBhcnNlTWVzc2FnZShlKzEsdCxuKTtpZihwLmVycilyZXR1cm4gcDt2YXIgbT10aGlzLnRyeVBhcnNlQXJndW1lbnRDbG9zZShmKTtpZihtLmVycilyZXR1cm4gbTtvLnB1c2goW2Mse3ZhbHVlOnAudmFsLGxvY2F0aW9uOlJ4KGYsdGhpcy5jbG9uZVBvc2l0aW9uKCkpfV0pLHMuYWRkKGMpLHRoaXMuYnVtcFNwYWNlKCksaT10aGlzLnBhcnNlSWRlbnRpZmllcklmUG9zc2libGUoKSxjPWkudmFsdWUsbD1pLmxvY2F0aW9ufXJldHVybiBvLmxlbmd0aD09PTA/dGhpcy5lcnJvcih0PT09YHNlbGVjdGA/X3guRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9TRUxFQ1RPUjpfeC5FWFBFQ1RfUExVUkFMX0FSR1VNRU5UX1NFTEVDVE9SLFJ4KHRoaXMuY2xvbmVQb3NpdGlvbigpLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk6dGhpcy5yZXF1aXJlc090aGVyQ2xhdXNlJiYhYT90aGlzLmVycm9yKF94Lk1JU1NJTkdfT1RIRVJfQ0xBVVNFLFJ4KHRoaXMuY2xvbmVQb3NpdGlvbigpLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk6e3ZhbDpvLGVycjpudWxsfX0sZS5wcm90b3R5cGUudHJ5UGFyc2VEZWNpbWFsSW50ZWdlcj1mdW5jdGlvbihlLHQpe3ZhciBuPTEscj10aGlzLmNsb25lUG9zaXRpb24oKTt0aGlzLmJ1bXBJZihgK2ApfHx0aGlzLmJ1bXBJZihgLWApJiYobj0tMSk7Zm9yKHZhciBpPSExLGE9MDshdGhpcy5pc0VPRigpOyl7dmFyIG89dGhpcy5jaGFyKCk7aWYobz49NDgmJm88PTU3KWk9ITAsYT1hKjEwKyhvLTQ4KSx0aGlzLmJ1bXAoKTtlbHNlIGJyZWFrfXZhciBzPVJ4KHIsdGhpcy5jbG9uZVBvc2l0aW9uKCkpO3JldHVybiBpPyhhKj1uLCRjZShhKT97dmFsOmEsZXJyOm51bGx9OnRoaXMuZXJyb3IodCxzKSk6dGhpcy5lcnJvcihlLHMpfSxlLnByb3RvdHlwZS5vZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb3NpdGlvbi5vZmZzZXR9LGUucHJvdG90eXBlLmlzRU9GPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0KCk9PT10aGlzLm1lc3NhZ2UubGVuZ3RofSxlLnByb3RvdHlwZS5jbG9uZVBvc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJue29mZnNldDp0aGlzLnBvc2l0aW9uLm9mZnNldCxsaW5lOnRoaXMucG9zaXRpb24ubGluZSxjb2x1bW46dGhpcy5wb3NpdGlvbi5jb2x1bW59fSxlLnByb3RvdHlwZS5jaGFyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wb3NpdGlvbi5vZmZzZXQ7aWYoZT49dGhpcy5tZXNzYWdlLmxlbmd0aCl0aHJvdyBFcnJvcihgb3V0IG9mIGJvdW5kYCk7dmFyIHQ9VXgodGhpcy5tZXNzYWdlLGUpO2lmKHQ9PT12b2lkIDApdGhyb3cgRXJyb3IoYE9mZnNldCAke2V9IGlzIGF0IGludmFsaWQgVVRGLTE2IGNvZGUgdW5pdCBib3VuZGFyeWApO3JldHVybiB0fSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihlLHQpe3JldHVybnt2YWw6bnVsbCxlcnI6e2tpbmQ6ZSxtZXNzYWdlOnRoaXMubWVzc2FnZSxsb2NhdGlvbjp0fX19LGUucHJvdG90eXBlLmJ1bXA9ZnVuY3Rpb24oKXtpZighdGhpcy5pc0VPRigpKXt2YXIgZT10aGlzLmNoYXIoKTtlPT09MTA/KHRoaXMucG9zaXRpb24ubGluZSs9MSx0aGlzLnBvc2l0aW9uLmNvbHVtbj0xLHRoaXMucG9zaXRpb24ub2Zmc2V0Kz0xKToodGhpcy5wb3NpdGlvbi5jb2x1bW4rPTEsdGhpcy5wb3NpdGlvbi5vZmZzZXQrPWU8NjU1MzY/MToyKX19LGUucHJvdG90eXBlLmJ1bXBJZj1mdW5jdGlvbihlKXtpZihCeCh0aGlzLm1lc3NhZ2UsZSx0aGlzLm9mZnNldCgpKSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspdGhpcy5idW1wKCk7cmV0dXJuITB9cmV0dXJuITF9LGUucHJvdG90eXBlLmJ1bXBVbnRpbD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLm9mZnNldCgpLG49dGhpcy5tZXNzYWdlLmluZGV4T2YoZSx0KTtyZXR1cm4gbj49MD8odGhpcy5idW1wVG8obiksITApOih0aGlzLmJ1bXBUbyh0aGlzLm1lc3NhZ2UubGVuZ3RoKSwhMSl9LGUucHJvdG90eXBlLmJ1bXBUbz1mdW5jdGlvbihlKXtpZih0aGlzLm9mZnNldCgpPmUpdGhyb3cgRXJyb3IoYHRhcmdldE9mZnNldCAke2V9IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9mZnNldCAke3RoaXMub2Zmc2V0KCl9YCk7Zm9yKGU9TWF0aC5taW4oZSx0aGlzLm1lc3NhZ2UubGVuZ3RoKTs7KXt2YXIgdD10aGlzLm9mZnNldCgpO2lmKHQ9PT1lKWJyZWFrO2lmKHQ+ZSl0aHJvdyBFcnJvcihgdGFyZ2V0T2Zmc2V0ICR7ZX0gaXMgYXQgaW52YWxpZCBVVEYtMTYgY29kZSB1bml0IGJvdW5kYXJ5YCk7aWYodGhpcy5idW1wKCksdGhpcy5pc0VPRigpKWJyZWFrfX0sZS5wcm90b3R5cGUuYnVtcFNwYWNlPWZ1bmN0aW9uKCl7Zm9yKDshdGhpcy5pc0VPRigpJiZKeCh0aGlzLmNoYXIoKSk7KXRoaXMuYnVtcCgpfSxlLnByb3RvdHlwZS5wZWVrPWZ1bmN0aW9uKCl7aWYodGhpcy5pc0VPRigpKXJldHVybiBudWxsO3ZhciBlPXRoaXMuY2hhcigpLHQ9dGhpcy5vZmZzZXQoKTtyZXR1cm4gdGhpcy5tZXNzYWdlLmNoYXJDb2RlQXQodCsoZT49NjU1MzY/MjoxKSk/P251bGx9LGV9KCk7ZnVuY3Rpb24gcXgoZSl7cmV0dXJuIGU+PTk3JiZlPD0xMjJ8fGU+PTY1JiZlPD05MH1mdW5jdGlvbiBybGUoZSl7cmV0dXJuIHF4KGUpfHxlPT09NDd9ZnVuY3Rpb24gaWxlKGUpe3JldHVybiBlPT09NDV8fGU9PT00Nnx8ZT49NDgmJmU8PTU3fHxlPT09OTV8fGU+PTk3JiZlPD0xMjJ8fGU+PTY1JiZlPD05MHx8ZT09MTgzfHxlPj0xOTImJmU8PTIxNHx8ZT49MjE2JiZlPD0yNDZ8fGU+PTI0OCYmZTw9ODkzfHxlPj04OTUmJmU8PTgxOTF8fGU+PTgyMDQmJmU8PTgyMDV8fGU+PTgyNTUmJmU8PTgyNTZ8fGU+PTgzMDQmJmU8PTg1OTF8fGU+PTExMjY0JiZlPD0xMjI3MXx8ZT49MTIyODkmJmU8PTU1Mjk1fHxlPj02Mzc0NCYmZTw9NjQ5NzV8fGU+PTY1MDA4JiZlPD02NTUzM3x8ZT49NjU1MzYmJmU8PTk4MzAzOX1mdW5jdGlvbiBKeChlKXtyZXR1cm4gZT49OSYmZTw9MTN8fGU9PT0zMnx8ZT09PTEzM3x8ZT49ODIwNiYmZTw9ODIwN3x8ZT09PTgyMzJ8fGU9PT04MjMzfWZ1bmN0aW9uIGFsZShlKXtyZXR1cm4gZT49MzMmJmU8PTM1fHxlPT09MzZ8fGU+PTM3JiZlPD0zOXx8ZT09PTQwfHxlPT09NDF8fGU9PT00Mnx8ZT09PTQzfHxlPT09NDR8fGU9PT00NXx8ZT49NDYmJmU8PTQ3fHxlPj01OCYmZTw9NTl8fGU+PTYwJiZlPD02Mnx8ZT49NjMmJmU8PTY0fHxlPT09OTF8fGU9PT05Mnx8ZT09PTkzfHxlPT09OTR8fGU9PT05Nnx8ZT09PTEyM3x8ZT09PTEyNHx8ZT09PTEyNXx8ZT09PTEyNnx8ZT09PTE2MXx8ZT49MTYyJiZlPD0xNjV8fGU9PT0xNjZ8fGU9PT0xNjd8fGU9PT0xNjl8fGU9PT0xNzF8fGU9PT0xNzJ8fGU9PT0xNzR8fGU9PT0xNzZ8fGU9PT0xNzd8fGU9PT0xODJ8fGU9PT0xODd8fGU9PT0xOTF8fGU9PT0yMTV8fGU9PT0yNDd8fGU+PTgyMDgmJmU8PTgyMTN8fGU+PTgyMTQmJmU8PTgyMTV8fGU9PT04MjE2fHxlPT09ODIxN3x8ZT09PTgyMTh8fGU+PTgyMTkmJmU8PTgyMjB8fGU9PT04MjIxfHxlPT09ODIyMnx8ZT09PTgyMjN8fGU+PTgyMjQmJmU8PTgyMzF8fGU+PTgyNDAmJmU8PTgyNDh8fGU9PT04MjQ5fHxlPT09ODI1MHx8ZT49ODI1MSYmZTw9ODI1NHx8ZT49ODI1NyYmZTw9ODI1OXx8ZT09PTgyNjB8fGU9PT04MjYxfHxlPT09ODI2Mnx8ZT49ODI2MyYmZTw9ODI3M3x8ZT09PTgyNzR8fGU9PT04Mjc1fHxlPj04Mjc3JiZlPD04Mjg2fHxlPj04NTkyJiZlPD04NTk2fHxlPj04NTk3JiZlPD04NjAxfHxlPj04NjAyJiZlPD04NjAzfHxlPj04NjA0JiZlPD04NjA3fHxlPT09ODYwOHx8ZT49ODYwOSYmZTw9ODYxMHx8ZT09PTg2MTF8fGU+PTg2MTImJmU8PTg2MTN8fGU9PT04NjE0fHxlPj04NjE1JiZlPD04NjIxfHxlPT09ODYyMnx8ZT49ODYyMyYmZTw9ODY1M3x8ZT49ODY1NCYmZTw9ODY1NXx8ZT49ODY1NiYmZTw9ODY1N3x8ZT09PTg2NTh8fGU9PT04NjU5fHxlPT09ODY2MHx8ZT49ODY2MSYmZTw9ODY5MXx8ZT49ODY5MiYmZTw9ODk1OXx8ZT49ODk2MCYmZTw9ODk2N3x8ZT09PTg5Njh8fGU9PT04OTY5fHxlPT09ODk3MHx8ZT09PTg5NzF8fGU+PTg5NzImJmU8PTg5OTF8fGU+PTg5OTImJmU8PTg5OTN8fGU+PTg5OTQmJmU8PTllM3x8ZT09PTkwMDF8fGU9PT05MDAyfHxlPj05MDAzJiZlPD05MDgzfHxlPT09OTA4NHx8ZT49OTA4NSYmZTw9OTExNHx8ZT49OTExNSYmZTw9OTEzOXx8ZT49OTE0MCYmZTw9OTE3OXx8ZT49OTE4MCYmZTw9OTE4NXx8ZT49OTE4NiYmZTw9OTI1NHx8ZT49OTI1NSYmZTw9OTI3OXx8ZT49OTI4MCYmZTw9OTI5MHx8ZT49OTI5MSYmZTw9OTMxMXx8ZT49OTQ3MiYmZTw9OTY1NHx8ZT09PTk2NTV8fGU+PTk2NTYmJmU8PTk2NjR8fGU9PT05NjY1fHxlPj05NjY2JiZlPD05NzE5fHxlPj05NzIwJiZlPD05NzI3fHxlPj05NzI4JiZlPD05ODM4fHxlPT09OTgzOXx8ZT49OTg0MCYmZTw9MTAwODd8fGU9PT0xMDA4OHx8ZT09PTEwMDg5fHxlPT09MTAwOTB8fGU9PT0xMDA5MXx8ZT09PTEwMDkyfHxlPT09MTAwOTN8fGU9PT0xMDA5NHx8ZT09PTEwMDk1fHxlPT09MTAwOTZ8fGU9PT0xMDA5N3x8ZT09PTEwMDk4fHxlPT09MTAwOTl8fGU9PT0xMDEwMHx8ZT09PTEwMTAxfHxlPj0xMDEzMiYmZTw9MTAxNzV8fGU+PTEwMTc2JiZlPD0xMDE4MHx8ZT09PTEwMTgxfHxlPT09MTAxODJ8fGU+PTEwMTgzJiZlPD0xMDIxM3x8ZT09PTEwMjE0fHxlPT09MTAyMTV8fGU9PT0xMDIxNnx8ZT09PTEwMjE3fHxlPT09MTAyMTh8fGU9PT0xMDIxOXx8ZT09PTEwMjIwfHxlPT09MTAyMjF8fGU9PT0xMDIyMnx8ZT09PTEwMjIzfHxlPj0xMDIyNCYmZTw9MTAyMzl8fGU+PTEwMjQwJiZlPD0xMDQ5NXx8ZT49MTA0OTYmJmU8PTEwNjI2fHxlPT09MTA2Mjd8fGU9PT0xMDYyOHx8ZT09PTEwNjI5fHxlPT09MTA2MzB8fGU9PT0xMDYzMXx8ZT09PTEwNjMyfHxlPT09MTA2MzN8fGU9PT0xMDYzNHx8ZT09PTEwNjM1fHxlPT09MTA2MzZ8fGU9PT0xMDYzN3x8ZT09PTEwNjM4fHxlPT09MTA2Mzl8fGU9PT0xMDY0MHx8ZT09PTEwNjQxfHxlPT09MTA2NDJ8fGU9PT0xMDY0M3x8ZT09PTEwNjQ0fHxlPT09MTA2NDV8fGU9PT0xMDY0Nnx8ZT09PTEwNjQ3fHxlPT09MTA2NDh8fGU+PTEwNjQ5JiZlPD0xMDcxMXx8ZT09PTEwNzEyfHxlPT09MTA3MTN8fGU9PT0xMDcxNHx8ZT09PTEwNzE1fHxlPj0xMDcxNiYmZTw9MTA3NDd8fGU9PT0xMDc0OHx8ZT09PTEwNzQ5fHxlPj0xMDc1MCYmZTw9MTEwMDd8fGU+PTExMDA4JiZlPD0xMTA1NXx8ZT49MTEwNTYmJmU8PTExMDc2fHxlPj0xMTA3NyYmZTw9MTEwNzh8fGU+PTExMDc5JiZlPD0xMTA4NHx8ZT49MTEwODUmJmU8PTExMTIzfHxlPj0xMTEyNCYmZTw9MTExMjV8fGU+PTExMTI2JiZlPD0xMTE1N3x8ZT09PTExMTU4fHxlPj0xMTE1OSYmZTw9MTEyNjN8fGU+PTExNzc2JiZlPD0xMTc3N3x8ZT09PTExNzc4fHxlPT09MTE3Nzl8fGU9PT0xMTc4MHx8ZT09PTExNzgxfHxlPj0xMTc4MiYmZTw9MTE3ODR8fGU9PT0xMTc4NXx8ZT09PTExNzg2fHxlPT09MTE3ODd8fGU9PT0xMTc4OHx8ZT09PTExNzg5fHxlPj0xMTc5MCYmZTw9MTE3OTh8fGU9PT0xMTc5OXx8ZT49MTE4MDAmJmU8PTExODAxfHxlPT09MTE4MDJ8fGU9PT0xMTgwM3x8ZT09PTExODA0fHxlPT09MTE4MDV8fGU+PTExODA2JiZlPD0xMTgwN3x8ZT09PTExODA4fHxlPT09MTE4MDl8fGU9PT0xMTgxMHx8ZT09PTExODExfHxlPT09MTE4MTJ8fGU9PT0xMTgxM3x8ZT09PTExODE0fHxlPT09MTE4MTV8fGU9PT0xMTgxNnx8ZT09PTExODE3fHxlPj0xMTgxOCYmZTw9MTE4MjJ8fGU9PT0xMTgyM3x8ZT49MTE4MjQmJmU8PTExODMzfHxlPj0xMTgzNCYmZTw9MTE4MzV8fGU+PTExODM2JiZlPD0xMTgzOXx8ZT09PTExODQwfHxlPT09MTE4NDF8fGU9PT0xMTg0Mnx8ZT49MTE4NDMmJmU8PTExODU1fHxlPj0xMTg1NiYmZTw9MTE4NTd8fGU9PT0xMTg1OHx8ZT49MTE4NTkmJmU8PTExOTAzfHxlPj0xMjI4OSYmZTw9MTIyOTF8fGU9PT0xMjI5Nnx8ZT09PTEyMjk3fHxlPT09MTIyOTh8fGU9PT0xMjI5OXx8ZT09PTEyMzAwfHxlPT09MTIzMDF8fGU9PT0xMjMwMnx8ZT09PTEyMzAzfHxlPT09MTIzMDR8fGU9PT0xMjMwNXx8ZT49MTIzMDYmJmU8PTEyMzA3fHxlPT09MTIzMDh8fGU9PT0xMjMwOXx8ZT09PTEyMzEwfHxlPT09MTIzMTF8fGU9PT0xMjMxMnx8ZT09PTEyMzEzfHxlPT09MTIzMTR8fGU9PT0xMjMxNXx8ZT09PTEyMzE2fHxlPT09MTIzMTd8fGU+PTEyMzE4JiZlPD0xMjMxOXx8ZT09PTEyMzIwfHxlPT09MTIzMzZ8fGU9PT02NDgzMHx8ZT09PTY0ODMxfHxlPj02NTA5MyYmZTw9NjUwOTR9c3goKTtmdW5jdGlvbiBZeChlKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoZGVsZXRlIGUubG9jYXRpb24sd3goZSl8fFR4KGUpKWZvcih2YXIgdCBpbiBlLm9wdGlvbnMpZGVsZXRlIGUub3B0aW9uc1t0XS5sb2NhdGlvbixZeChlLm9wdGlvbnNbdF0udmFsdWUpO2Vsc2UgeHgoZSkmJkR4KGUuc3R5bGUpfHwoU3goZSl8fEN4KGUpKSYmT3goZS5zdHlsZSk/ZGVsZXRlIGUuc3R5bGUubG9jYXRpb246RXgoZSkmJll4KGUuY2hpbGRyZW4pfSl9ZnVuY3Rpb24gb2xlKGUsdCl7dD09PXZvaWQgMCYmKHQ9e30pLHQ9dHgoe3Nob3VsZFBhcnNlU2tlbGV0b25zOiEwLHJlcXVpcmVzT3RoZXJDbGF1c2U6ITB9LHQpO3ZhciBuPW5ldyBubGUoZSx0KS5wYXJzZSgpO2lmKG4uZXJyKXt2YXIgcj1TeW50YXhFcnJvcihfeFtuLmVyci5raW5kXSk7dGhyb3cgci5sb2NhdGlvbj1uLmVyci5sb2NhdGlvbixyLm9yaWdpbmFsTWVzc2FnZT1uLmVyci5tZXNzYWdlLHJ9cmV0dXJuIHQhPW51bGwmJnQuY2FwdHVyZUxvY2F0aW9ufHxZeChuLnZhbCksbi52YWx9c3goKTt2YXIgWHg7KGZ1bmN0aW9uKGUpe2UuTUlTU0lOR19WQUxVRT1gTUlTU0lOR19WQUxVRWAsZS5JTlZBTElEX1ZBTFVFPWBJTlZBTElEX1ZBTFVFYCxlLk1JU1NJTkdfSU5UTF9BUEk9YE1JU1NJTkdfSU5UTF9BUElgfSkoWHh8fChYeD17fSkpO3ZhciBaeD1mdW5jdGlvbihlKXt3Yih0LGUpO2Z1bmN0aW9uIHQodCxuLHIpe3ZhciBpPWUuY2FsbCh0aGlzLHQpfHx0aGlzO3JldHVybiBpLmNvZGU9bixpLm9yaWdpbmFsTWVzc2FnZT1yLGl9cmV0dXJuIHQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYFtmb3JtYXRqcyBFcnJvcjogJHt0aGlzLmNvZGV9XSAke3RoaXMubWVzc2FnZX1gfSx0fShFcnJvciksUXg9ZnVuY3Rpb24oZSl7d2IodCxlKTtmdW5jdGlvbiB0KHQsbixyLGkpe3JldHVybiBlLmNhbGwodGhpcyxgSW52YWxpZCB2YWx1ZXMgZm9yICIke3R9IjogIiR7bn0iLiBPcHRpb25zIGFyZSAiJHtPYmplY3Qua2V5cyhyKS5qb2luKGAiLCAiYCl9ImAsWHguSU5WQUxJRF9WQUxVRSxpKXx8dGhpc31yZXR1cm4gdH0oWngpLHNsZT1mdW5jdGlvbihlKXt3Yih0LGUpO2Z1bmN0aW9uIHQodCxuLHIpe3JldHVybiBlLmNhbGwodGhpcyxgVmFsdWUgZm9yICIke3R9IiBtdXN0IGJlIG9mIHR5cGUgJHtufWAsWHguSU5WQUxJRF9WQUxVRSxyKXx8dGhpc31yZXR1cm4gdH0oWngpLGNsZT1mdW5jdGlvbihlKXt3Yih0LGUpO2Z1bmN0aW9uIHQodCxuKXtyZXR1cm4gZS5jYWxsKHRoaXMsYFRoZSBpbnRsIHN0cmluZyBjb250ZXh0IHZhcmlhYmxlICIke3R9IiB3YXMgbm90IHByb3ZpZGVkIHRvIHRoZSBzdHJpbmcgIiR7bn0iYCxYeC5NSVNTSU5HX1ZBTFVFLG4pfHx0aGlzfXJldHVybiB0fShaeCksJHg7KGZ1bmN0aW9uKGUpe2VbZS5saXRlcmFsPTBdPWBsaXRlcmFsYCxlW2Uub2JqZWN0PTFdPWBvYmplY3RgfSkoJHh8fCgkeD17fSkpO2Z1bmN0aW9uIGxsZShlKXtyZXR1cm4gZS5sZW5ndGg8Mj9lOmUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZVtlLmxlbmd0aC0xXTtyZXR1cm4hbnx8bi50eXBlIT09JHgubGl0ZXJhbHx8dC50eXBlIT09JHgubGl0ZXJhbD9lLnB1c2godCk6bi52YWx1ZSs9dC52YWx1ZSxlfSxbXSl9ZnVuY3Rpb24gZVMoZSl7cmV0dXJuIHR5cGVvZiBlPT1gZnVuY3Rpb25gfWZ1bmN0aW9uIHRTKGUsdCxuLHIsaSxhLG8pe2lmKGUubGVuZ3RoPT09MSYmYngoZVswXSkpcmV0dXJuW3t0eXBlOiR4LmxpdGVyYWwsdmFsdWU6ZVswXS52YWx1ZX1dO2Zvcih2YXIgcz1bXSxjPTAsbD1lO2M8bC5sZW5ndGg7YysrKXt2YXIgdT1sW2NdO2lmKGJ4KHUpKXtzLnB1c2goe3R5cGU6JHgubGl0ZXJhbCx2YWx1ZTp1LnZhbHVlfSk7Y29udGludWV9aWYoUGNlKHUpKXt0eXBlb2YgYT09YG51bWJlcmAmJnMucHVzaCh7dHlwZTokeC5saXRlcmFsLHZhbHVlOm4uZ2V0TnVtYmVyRm9ybWF0KHQpLmZvcm1hdChhKX0pO2NvbnRpbnVlfXZhciBkPXUudmFsdWU7aWYoIShpJiZkIGluIGkpKXRocm93IG5ldyBjbGUoZCxvKTt2YXIgZj1pW2RdO2lmKE5jZSh1KSl7KCFmfHx0eXBlb2YgZj09YHN0cmluZ2B8fHR5cGVvZiBmPT1gbnVtYmVyYCkmJihmPXR5cGVvZiBmPT1gc3RyaW5nYHx8dHlwZW9mIGY9PWBudW1iZXJgP1N0cmluZyhmKTpgYCkscy5wdXNoKHt0eXBlOnR5cGVvZiBmPT1gc3RyaW5nYD8keC5saXRlcmFsOiR4Lm9iamVjdCx2YWx1ZTpmfSk7Y29udGludWV9aWYoU3godSkpe3ZhciBwPXR5cGVvZiB1LnN0eWxlPT1gc3RyaW5nYD9yLmRhdGVbdS5zdHlsZV06T3godS5zdHlsZSk/dS5zdHlsZS5wYXJzZWRPcHRpb25zOnZvaWQgMDtzLnB1c2goe3R5cGU6JHgubGl0ZXJhbCx2YWx1ZTpuLmdldERhdGVUaW1lRm9ybWF0KHQscCkuZm9ybWF0KGYpfSk7Y29udGludWV9aWYoQ3godSkpe3ZhciBwPXR5cGVvZiB1LnN0eWxlPT1gc3RyaW5nYD9yLnRpbWVbdS5zdHlsZV06T3godS5zdHlsZSk/dS5zdHlsZS5wYXJzZWRPcHRpb25zOnIudGltZS5tZWRpdW07cy5wdXNoKHt0eXBlOiR4LmxpdGVyYWwsdmFsdWU6bi5nZXREYXRlVGltZUZvcm1hdCh0LHApLmZvcm1hdChmKX0pO2NvbnRpbnVlfWlmKHh4KHUpKXt2YXIgcD10eXBlb2YgdS5zdHlsZT09YHN0cmluZ2A/ci5udW1iZXJbdS5zdHlsZV06RHgodS5zdHlsZSk/dS5zdHlsZS5wYXJzZWRPcHRpb25zOnZvaWQgMDtwJiZwLnNjYWxlJiYoZio9cC5zY2FsZXx8MSkscy5wdXNoKHt0eXBlOiR4LmxpdGVyYWwsdmFsdWU6bi5nZXROdW1iZXJGb3JtYXQodCxwKS5mb3JtYXQoZil9KTtjb250aW51ZX1pZihFeCh1KSl7dmFyIG09dS5jaGlsZHJlbixoPXUudmFsdWUsZz1pW2hdO2lmKCFlUyhnKSl0aHJvdyBuZXcgc2xlKGgsYGZ1bmN0aW9uYCxvKTt2YXIgXz1nKHRTKG0sdCxuLHIsaSxhKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUudmFsdWV9KSk7QXJyYXkuaXNBcnJheShfKXx8KF89W19dKSxzLnB1c2guYXBwbHkocyxfLm1hcChmdW5jdGlvbihlKXtyZXR1cm57dHlwZTp0eXBlb2YgZT09YHN0cmluZ2A/JHgubGl0ZXJhbDokeC5vYmplY3QsdmFsdWU6ZX19KSl9aWYod3godSkpe3ZhciB2PXUub3B0aW9uc1tmXXx8dS5vcHRpb25zLm90aGVyO2lmKCF2KXRocm93IG5ldyBReCh1LnZhbHVlLGYsT2JqZWN0LmtleXModS5vcHRpb25zKSxvKTtzLnB1c2guYXBwbHkocyx0Uyh2LnZhbHVlLHQsbixyLGkpKTtjb250aW51ZX1pZihUeCh1KSl7dmFyIHY9dS5vcHRpb25zW2A9JHtmfWBdO2lmKCF2KXtpZighSW50bC5QbHVyYWxSdWxlcyl0aHJvdyBuZXcgWngoYEludGwuUGx1cmFsUnVsZXMgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIGVudmlyb25tZW50LgpUcnkgcG9seWZpbGxpbmcgaXQgdXNpbmcgIkBmb3JtYXRqcy9pbnRsLXBsdXJhbHJ1bGVzIgpgLFh4Lk1JU1NJTkdfSU5UTF9BUEksbyk7dmFyIHk9bi5nZXRQbHVyYWxSdWxlcyh0LHt0eXBlOnUucGx1cmFsVHlwZX0pLnNlbGVjdChmLSh1Lm9mZnNldHx8MCkpO3Y9dS5vcHRpb25zW3ldfHx1Lm9wdGlvbnMub3RoZXJ9aWYoIXYpdGhyb3cgbmV3IFF4KHUudmFsdWUsZixPYmplY3Qua2V5cyh1Lm9wdGlvbnMpLG8pO3MucHVzaC5hcHBseShzLHRTKHYudmFsdWUsdCxuLHIsaSxmLSh1Lm9mZnNldHx8MCkpKTtjb250aW51ZX19cmV0dXJuIGxsZShzKX1zeCgpLGd4KCk7ZnVuY3Rpb24gdWxlKGUsdCl7cmV0dXJuIHQ/dHgodHgodHgoe30sZXx8e30pLHR8fHt9KSxPYmplY3Qua2V5cyhlKS5yZWR1Y2UoZnVuY3Rpb24obixyKXtyZXR1cm4gbltyXT10eCh0eCh7fSxlW3JdKSx0W3JdfHx7fSksbn0se30pKTplfWZ1bmN0aW9uIGRsZShlLHQpe3JldHVybiB0P09iamVjdC5rZXlzKGUpLnJlZHVjZShmdW5jdGlvbihuLHIpe3JldHVybiBuW3JdPXVsZShlW3JdLHRbcl0pLG59LHR4KHt9LGUpKTplfWZ1bmN0aW9uIG5TKGUpe3JldHVybntjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm57Z2V0OmZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSxzZXQ6ZnVuY3Rpb24odCxuKXtlW3RdPW59fX19fWZ1bmN0aW9uIGZsZShlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9e251bWJlcjp7fSxkYXRlVGltZTp7fSxwbHVyYWxSdWxlczp7fX0pLHtnZXROdW1iZXJGb3JtYXQ6Y3goZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gbmV3KChlPUludGwuTnVtYmVyRm9ybWF0KS5iaW5kLmFwcGx5KGUsQmIoW3ZvaWQgMF0sdCwhMSkpKX0se2NhY2hlOm5TKGUubnVtYmVyKSxzdHJhdGVneTpoeC52YXJpYWRpY30pLGdldERhdGVUaW1lRm9ybWF0OmN4KGZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIG5ldygoZT1JbnRsLkRhdGVUaW1lRm9ybWF0KS5iaW5kLmFwcGx5KGUsQmIoW3ZvaWQgMF0sdCwhMSkpKX0se2NhY2hlOm5TKGUuZGF0ZVRpbWUpLHN0cmF0ZWd5Omh4LnZhcmlhZGljfSksZ2V0UGx1cmFsUnVsZXM6Y3goZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gbmV3KChlPUludGwuUGx1cmFsUnVsZXMpLmJpbmQuYXBwbHkoZSxCYihbdm9pZCAwXSx0LCExKSkpfSx7Y2FjaGU6blMoZS5wbHVyYWxSdWxlcyksc3RyYXRlZ3k6aHgudmFyaWFkaWN9KX19dmFyIHJTPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4scixpKXtuPT09dm9pZCAwJiYobj1lLmRlZmF1bHRMb2NhbGUpO3ZhciBhPXRoaXM7aWYodGhpcy5mb3JtYXR0ZXJDYWNoZT17bnVtYmVyOnt9LGRhdGVUaW1lOnt9LHBsdXJhbFJ1bGVzOnt9fSx0aGlzLmZvcm1hdD1mdW5jdGlvbihlKXt2YXIgdD1hLmZvcm1hdFRvUGFydHMoZSk7aWYodC5sZW5ndGg9PT0xKXJldHVybiB0WzBdLnZhbHVlO3ZhciBuPXQucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIWUubGVuZ3RofHx0LnR5cGUhPT0keC5saXRlcmFsfHx0eXBlb2YgZVtlLmxlbmd0aC0xXSE9YHN0cmluZ2A/ZS5wdXNoKHQudmFsdWUpOmVbZS5sZW5ndGgtMV0rPXQudmFsdWUsZX0sW10pO3JldHVybiBuLmxlbmd0aDw9MT9uWzBdfHxgYDpufSx0aGlzLmZvcm1hdFRvUGFydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRTKGEuYXN0LGEubG9jYWxlcyxhLmZvcm1hdHRlcnMsYS5mb3JtYXRzLGUsdm9pZCAwLGEubWVzc2FnZSl9LHRoaXMucmVzb2x2ZWRPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJue2xvY2FsZTooKGU9YS5yZXNvbHZlZExvY2FsZSk9PW51bGw/dm9pZCAwOmUudG9TdHJpbmcoKSl8fEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZihhLmxvY2FsZXMpWzBdfX0sdGhpcy5nZXRBc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hc3R9LHRoaXMubG9jYWxlcz1uLHRoaXMucmVzb2x2ZWRMb2NhbGU9ZS5yZXNvbHZlTG9jYWxlKG4pLHR5cGVvZiB0PT1gc3RyaW5nYCl7aWYodGhpcy5tZXNzYWdlPXQsIWUuX19wYXJzZSl0aHJvdyBUeXBlRXJyb3IoIkludGxNZXNzYWdlRm9ybWF0Ll9fcGFyc2UgbXVzdCBiZSBzZXQgdG8gcHJvY2VzcyBgbWVzc2FnZWAgb2YgdHlwZSBgc3RyaW5nYCIpO3ZhciBvPWl8fHt9O28uZm9ybWF0dGVyczt2YXIgcz1UYihvLFtgZm9ybWF0dGVyc2BdKTt0aGlzLmFzdD1lLl9fcGFyc2UodCx0eCh0eCh7fSxzKSx7bG9jYWxlOnRoaXMucmVzb2x2ZWRMb2NhbGV9KSl9ZWxzZSB0aGlzLmFzdD10O2lmKCFBcnJheS5pc0FycmF5KHRoaXMuYXN0KSl0aHJvdyBUeXBlRXJyb3IoYEEgbWVzc2FnZSBtdXN0IGJlIHByb3ZpZGVkIGFzIGEgU3RyaW5nIG9yIEFTVC5gKTt0aGlzLmZvcm1hdHM9ZGxlKGUuZm9ybWF0cyxyKSx0aGlzLmZvcm1hdHRlcnM9aSYmaS5mb3JtYXR0ZXJzfHxmbGUodGhpcy5mb3JtYXR0ZXJDYWNoZSl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBkZWZhdWx0TG9jYWxlYCx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUubWVtb2l6ZWREZWZhdWx0TG9jYWxlfHwoZS5tZW1vaXplZERlZmF1bHRMb2NhbGU9bmV3IEludGwuTnVtYmVyRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlKSxlLm1lbW9pemVkRGVmYXVsdExvY2FsZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLm1lbW9pemVkRGVmYXVsdExvY2FsZT1udWxsLGUucmVzb2x2ZUxvY2FsZT1mdW5jdGlvbihlKXtpZihJbnRsLkxvY2FsZSE9PXZvaWQgMCl7dmFyIHQ9SW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKGUpO3JldHVybiB0Lmxlbmd0aD4wP25ldyBJbnRsLkxvY2FsZSh0WzBdKTpuZXcgSW50bC5Mb2NhbGUodHlwZW9mIGU9PWBzdHJpbmdgP2U6ZVswXSl9fSxlLl9fcGFyc2U9b2xlLGUuZm9ybWF0cz17bnVtYmVyOntpbnRlZ2VyOnttYXhpbXVtRnJhY3Rpb25EaWdpdHM6MH0sY3VycmVuY3k6e3N0eWxlOmBjdXJyZW5jeWB9LHBlcmNlbnQ6e3N0eWxlOmBwZXJjZW50YH19LGRhdGU6e3Nob3J0Onttb250aDpgbnVtZXJpY2AsZGF5OmBudW1lcmljYCx5ZWFyOmAyLWRpZ2l0YH0sbWVkaXVtOnttb250aDpgc2hvcnRgLGRheTpgbnVtZXJpY2AseWVhcjpgbnVtZXJpY2B9LGxvbmc6e21vbnRoOmBsb25nYCxkYXk6YG51bWVyaWNgLHllYXI6YG51bWVyaWNgfSxmdWxsOnt3ZWVrZGF5OmBsb25nYCxtb250aDpgbG9uZ2AsZGF5OmBudW1lcmljYCx5ZWFyOmBudW1lcmljYH19LHRpbWU6e3Nob3J0Ontob3VyOmBudW1lcmljYCxtaW51dGU6YG51bWVyaWNgfSxtZWRpdW06e2hvdXI6YG51bWVyaWNgLG1pbnV0ZTpgbnVtZXJpY2Asc2Vjb25kOmBudW1lcmljYH0sbG9uZzp7aG91cjpgbnVtZXJpY2AsbWludXRlOmBudW1lcmljYCxzZWNvbmQ6YG51bWVyaWNgLHRpbWVab25lTmFtZTpgc2hvcnRgfSxmdWxsOntob3VyOmBudW1lcmljYCxtaW51dGU6YG51bWVyaWNgLHNlY29uZDpgbnVtZXJpY2AsdGltZVpvbmVOYW1lOmBzaG9ydGB9fX0sZX0oKTtzeCgpO3ZhciBpUzsoZnVuY3Rpb24oZSl7ZS5GT1JNQVRfRVJST1I9YEZPUk1BVF9FUlJPUmAsZS5VTlNVUFBPUlRFRF9GT1JNQVRURVI9YFVOU1VQUE9SVEVEX0ZPUk1BVFRFUmAsZS5JTlZBTElEX0NPTkZJRz1gSU5WQUxJRF9DT05GSUdgLGUuTUlTU0lOR19EQVRBPWBNSVNTSU5HX0RBVEFgLGUuTUlTU0lOR19UUkFOU0xBVElPTj1gTUlTU0lOR19UUkFOU0xBVElPTmB9KShpU3x8KGlTPXt9KSk7dmFyIGFTPWZ1bmN0aW9uKGUpe3diKHQsZSk7ZnVuY3Rpb24gdChuLHIsaSl7dmFyIGE9dGhpcyxvPWk/aSBpbnN0YW5jZW9mIEVycm9yP2k6RXJyb3IoU3RyaW5nKGkpKTp2b2lkIDA7cmV0dXJuIGE9ZS5jYWxsKHRoaXMsYFtAZm9ybWF0anMvaW50bCBFcnJvciAke259XSAke3J9CiR7bz9gCiR7by5tZXNzYWdlfQoke28uc3RhY2t9YDpgYH1gKXx8dGhpcyxhLmNvZGU9bix0eXBlb2YgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U9PWBmdW5jdGlvbmAmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKGEsdCksYX1yZXR1cm4gdH0oRXJyb3IpLHBsZT1mdW5jdGlvbihlKXt3Yih0LGUpO2Z1bmN0aW9uIHQodCxuKXtyZXR1cm4gZS5jYWxsKHRoaXMsaVMuVU5TVVBQT1JURURfRk9STUFUVEVSLHQsbil8fHRoaXN9cmV0dXJuIHR9KGFTKSxtbGU9ZnVuY3Rpb24oZSl7d2IodCxlKTtmdW5jdGlvbiB0KHQsbil7cmV0dXJuIGUuY2FsbCh0aGlzLGlTLklOVkFMSURfQ09ORklHLHQsbil8fHRoaXN9cmV0dXJuIHR9KGFTKSxvUz1mdW5jdGlvbihlKXt3Yih0LGUpO2Z1bmN0aW9uIHQodCxuKXtyZXR1cm4gZS5jYWxsKHRoaXMsaVMuTUlTU0lOR19EQVRBLHQsbil8fHRoaXN9cmV0dXJuIHR9KGFTKSxzUz1mdW5jdGlvbihlKXt3Yih0LGUpO2Z1bmN0aW9uIHQodCxuLHIpe3ZhciBpPWUuY2FsbCh0aGlzLGlTLkZPUk1BVF9FUlJPUixgJHt0fQpMb2NhbGU6ICR7bn0KYCxyKXx8dGhpcztyZXR1cm4gaS5sb2NhbGU9bixpfXJldHVybiB0fShhUyksY1M9ZnVuY3Rpb24oZSl7d2IodCxlKTtmdW5jdGlvbiB0KHQsbixyLGkpe3ZhciBhPWUuY2FsbCh0aGlzLGAke3R9Ck1lc3NhZ2VJRDogJHtyPT1udWxsP3ZvaWQgMDpyLmlkfQpEZWZhdWx0IE1lc3NhZ2U6ICR7cj09bnVsbD92b2lkIDA6ci5kZWZhdWx0TWVzc2FnZX0KRGVzY3JpcHRpb246ICR7cj09bnVsbD92b2lkIDA6ci5kZXNjcmlwdGlvbn0KYCxuLGkpfHx0aGlzO3JldHVybiBhLmRlc2NyaXB0b3I9cixhLmxvY2FsZT1uLGF9cmV0dXJuIHR9KHNTKSxobGU9ZnVuY3Rpb24oZSl7d2IodCxlKTtmdW5jdGlvbiB0KHQsbil7dmFyIHI9ZS5jYWxsKHRoaXMsaVMuTUlTU0lOR19UUkFOU0xBVElPTixgTWlzc2luZyBtZXNzYWdlOiAiJHt0LmlkfSIgZm9yIGxvY2FsZSAiJHtufSIsIHVzaW5nICR7dC5kZWZhdWx0TWVzc2FnZT9gZGVmYXVsdCBtZXNzYWdlICgke3R5cGVvZiB0LmRlZmF1bHRNZXNzYWdlPT1gc3RyaW5nYD90LmRlZmF1bHRNZXNzYWdlOnQuZGVmYXVsdE1lc3NhZ2UubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlPz9KU09OLnN0cmluZ2lmeShlKX0pLmpvaW4oKX0pYDpgaWRgfSBhcyBmYWxsYmFjay5gKXx8dGhpcztyZXR1cm4gci5kZXNjcmlwdG9yPXQscn1yZXR1cm4gdH0oYVMpO3N4KCksZ3goKTtmdW5jdGlvbiBnbGUoZSx0LG4pe2lmKG49PT12b2lkIDAmJihuPUVycm9yKSwhZSl0aHJvdyBuZXcgbih0KX1mdW5jdGlvbiBsUyhlLHQsbil7cmV0dXJuIG49PT12b2lkIDAmJihuPXt9KSx0LnJlZHVjZShmdW5jdGlvbih0LHIpe3JldHVybiByIGluIGU/dFtyXT1lW3JdOnIgaW4gbiYmKHRbcl09bltyXSksdH0se30pfXZhciB1Uz17Zm9ybWF0czp7fSxtZXNzYWdlczp7fSx0aW1lWm9uZTp2b2lkIDAsZGVmYXVsdExvY2FsZTpgZW5gLGRlZmF1bHRGb3JtYXRzOnt9LGZhbGxiYWNrT25FbXB0eVN0cmluZzohMCxvbkVycm9yOmZ1bmN0aW9uKGUpe30sb25XYXJuOmZ1bmN0aW9uKGUpe319O2Z1bmN0aW9uIGRTKCl7cmV0dXJue2RhdGVUaW1lOnt9LG51bWJlcjp7fSxtZXNzYWdlOnt9LHJlbGF0aXZlVGltZTp7fSxwbHVyYWxSdWxlczp7fSxsaXN0Ont9LGRpc3BsYXlOYW1lczp7fX19ZnVuY3Rpb24gZlMoZSl7cmV0dXJue2NyZWF0ZTpmdW5jdGlvbigpe3JldHVybntnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19LHNldDpmdW5jdGlvbih0LG4pe2VbdF09bn19fX19ZnVuY3Rpb24gX2xlKGUpe2U9PT12b2lkIDAmJihlPWRTKCkpO3ZhciB0PUludGwuUmVsYXRpdmVUaW1lRm9ybWF0LG49SW50bC5MaXN0Rm9ybWF0LHI9SW50bC5EaXNwbGF5TmFtZXMsaT1jeChmdW5jdGlvbigpe2Zvcih2YXIgZSx0PVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbl09YXJndW1lbnRzW25dO3JldHVybiBuZXcoKGU9SW50bC5EYXRlVGltZUZvcm1hdCkuYmluZC5hcHBseShlLEJiKFt2b2lkIDBdLHQsITEpKSl9LHtjYWNoZTpmUyhlLmRhdGVUaW1lKSxzdHJhdGVneTpoeC52YXJpYWRpY30pLGE9Y3goZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gbmV3KChlPUludGwuTnVtYmVyRm9ybWF0KS5iaW5kLmFwcGx5KGUsQmIoW3ZvaWQgMF0sdCwhMSkpKX0se2NhY2hlOmZTKGUubnVtYmVyKSxzdHJhdGVneTpoeC52YXJpYWRpY30pLG89Y3goZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gbmV3KChlPUludGwuUGx1cmFsUnVsZXMpLmJpbmQuYXBwbHkoZSxCYihbdm9pZCAwXSx0LCExKSkpfSx7Y2FjaGU6ZlMoZS5wbHVyYWxSdWxlcyksc3RyYXRlZ3k6aHgudmFyaWFkaWN9KTtyZXR1cm57Z2V0RGF0ZVRpbWVGb3JtYXQ6aSxnZXROdW1iZXJGb3JtYXQ6YSxnZXRNZXNzYWdlRm9ybWF0OmN4KGZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBuZXcgclMoZSx0LG4sdHgoe2Zvcm1hdHRlcnM6e2dldE51bWJlckZvcm1hdDphLGdldERhdGVUaW1lRm9ybWF0OmksZ2V0UGx1cmFsUnVsZXM6b319LHJ8fHt9KSl9LHtjYWNoZTpmUyhlLm1lc3NhZ2UpLHN0cmF0ZWd5Omh4LnZhcmlhZGljfSksZ2V0UmVsYXRpdmVUaW1lRm9ybWF0OmN4KGZ1bmN0aW9uKCl7dmFyIGU9Wy4uLmFyZ3VtZW50c107cmV0dXJuIG5ldyh0LmJpbmQuYXBwbHkodCxCYihbdm9pZCAwXSxlLCExKSkpfSx7Y2FjaGU6ZlMoZS5yZWxhdGl2ZVRpbWUpLHN0cmF0ZWd5Omh4LnZhcmlhZGljfSksZ2V0UGx1cmFsUnVsZXM6byxnZXRMaXN0Rm9ybWF0OmN4KGZ1bmN0aW9uKCl7dmFyIGU9Wy4uLmFyZ3VtZW50c107cmV0dXJuIG5ldyhuLmJpbmQuYXBwbHkobixCYihbdm9pZCAwXSxlLCExKSkpfSx7Y2FjaGU6ZlMoZS5saXN0KSxzdHJhdGVneTpoeC52YXJpYWRpY30pLGdldERpc3BsYXlOYW1lczpjeChmdW5jdGlvbigpe3ZhciBlPVsuLi5hcmd1bWVudHNdO3JldHVybiBuZXcoci5iaW5kLmFwcGx5KHIsQmIoW3ZvaWQgMF0sZSwhMSkpKX0se2NhY2hlOmZTKGUuZGlzcGxheU5hbWVzKSxzdHJhdGVneTpoeC52YXJpYWRpY30pfX1mdW5jdGlvbiBwUyhlLHQsbixyKXt2YXIgaT1lJiZlW3RdLGE7aWYoaSYmKGE9aVtuXSksYSlyZXR1cm4gYTtyKG5ldyBwbGUoYE5vICR7dH0gZm9ybWF0IG5hbWVkOiAke259YCkpfXN4KCk7ZnVuY3Rpb24gbVMoZSx0KXtyZXR1cm4gT2JqZWN0LmtleXMoZSkucmVkdWNlKGZ1bmN0aW9uKG4scil7cmV0dXJuIG5bcl09dHgoe3RpbWVab25lOnR9LGVbcl0pLG59LHt9KX1mdW5jdGlvbiBoUyhlLHQpe3JldHVybiBPYmplY3Qua2V5cyh0eCh0eCh7fSxlKSx0KSkucmVkdWNlKGZ1bmN0aW9uKG4scil7cmV0dXJuIG5bcl09dHgodHgoe30sZVtyXXx8e30pLHRbcl18fHt9KSxufSx7fSl9ZnVuY3Rpb24gZ1MoZSx0KXtpZighdClyZXR1cm4gZTt2YXIgbj1yUy5mb3JtYXRzO3JldHVybiB0eCh0eCh0eCh7fSxuKSxlKSx7ZGF0ZTpoUyhtUyhuLmRhdGUsdCksbVMoZS5kYXRlfHx7fSx0KSksdGltZTpoUyhtUyhuLnRpbWUsdCksbVMoZS50aW1lfHx7fSx0KSl9KX12YXIgX1M9ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgYT1lLmxvY2FsZSxvPWUuZm9ybWF0cyxzPWUubWVzc2FnZXMsYz1lLmRlZmF1bHRMb2NhbGUsbD1lLmRlZmF1bHRGb3JtYXRzLHU9ZS5mYWxsYmFja09uRW1wdHlTdHJpbmcsZD1lLm9uRXJyb3IsZj1lLnRpbWVab25lLHA9ZS5kZWZhdWx0UmljaFRleHRFbGVtZW50cztuPT09dm9pZCAwJiYobj17aWQ6YGB9KTt2YXIgbT1uLmlkLGg9bi5kZWZhdWx0TWVzc2FnZTtnbGUoISFtLGBbQGZvcm1hdGpzL2ludGxdIEFuIFxgaWRcYCBtdXN0IGJlIHByb3ZpZGVkIHRvIGZvcm1hdCBhIG1lc3NhZ2UuIFlvdSBjYW4gZWl0aGVyOgoxLiBDb25maWd1cmUgeW91ciBidWlsZCB0b29sY2hhaW4gd2l0aCBbYmFiZWwtcGx1Z2luLWZvcm1hdGpzXShodHRwczovL2Zvcm1hdGpzLmdpdGh1Yi5pby9kb2NzL3Rvb2xpbmcvYmFiZWwtcGx1Z2luKQpvciBbQGZvcm1hdGpzL3RzLXRyYW5zZm9ybWVyXShodHRwczovL2Zvcm1hdGpzLmdpdGh1Yi5pby9kb2NzL3Rvb2xpbmcvdHMtdHJhbnNmb3JtZXIpIE9SCjIuIENvbmZpZ3VyZSB5b3VyIFxgZXNsaW50XGAgY29uZmlnIHRvIGluY2x1ZGUgW2VzbGludC1wbHVnaW4tZm9ybWF0anNdKGh0dHBzOi8vZm9ybWF0anMuZ2l0aHViLmlvL2RvY3MvdG9vbGluZy9saW50ZXIjZW5mb3JjZS1pZCkKdG8gYXV0b2ZpeCB0aGlzIGlzc3VlYCk7dmFyIGc9U3RyaW5nKG0pLF89cyYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsZykmJnNbZ107aWYoQXJyYXkuaXNBcnJheShfKSYmXy5sZW5ndGg9PT0xJiZfWzBdLnR5cGU9PT12eC5saXRlcmFsKXJldHVybiBfWzBdLnZhbHVlO2lmKCFyJiZfJiZ0eXBlb2YgXz09YHN0cmluZ2AmJiFwKXJldHVybiBfLnJlcGxhY2UoLydceyguKj8pXH0nL2dpLGB7JDF9YCk7aWYocj10eCh0eCh7fSxwKSxyfHx7fSksbz1nUyhvLGYpLGw9Z1MobCxmKSwhXyl7aWYodT09PSExJiZfPT09YGApcmV0dXJuIF87aWYoKCFofHxhJiZhLnRvTG93ZXJDYXNlKCkhPT1jLnRvTG93ZXJDYXNlKCkpJiZkKG5ldyBobGUobixhKSksaCl0cnl7dmFyIHY9dC5nZXRNZXNzYWdlRm9ybWF0KGgsYyxsLGkpO3JldHVybiB2LmZvcm1hdChyKX1jYXRjaChlKXtyZXR1cm4gZChuZXcgY1MoYEVycm9yIGZvcm1hdHRpbmcgZGVmYXVsdCBtZXNzYWdlIGZvcjogIiR7Z30iLCByZW5kZXJpbmcgZGVmYXVsdCBtZXNzYWdlIHZlcmJhdGltYCxhLG4sZSkpLHR5cGVvZiBoPT1gc3RyaW5nYD9oOmd9cmV0dXJuIGd9dHJ5e3ZhciB2PXQuZ2V0TWVzc2FnZUZvcm1hdChfLGEsbyx0eCh7Zm9ybWF0dGVyczp0fSxpfHx7fSkpO3JldHVybiB2LmZvcm1hdChyKX1jYXRjaChlKXtkKG5ldyBjUyhgRXJyb3IgZm9ybWF0dGluZyBtZXNzYWdlOiAiJHtnfSIsIHVzaW5nICR7aD9gZGVmYXVsdCBtZXNzYWdlYDpgaWRgfSBhcyBmYWxsYmFjay5gLGEsbixlKSl9aWYoaCl0cnl7dmFyIHY9dC5nZXRNZXNzYWdlRm9ybWF0KGgsYyxsLGkpO3JldHVybiB2LmZvcm1hdChyKX1jYXRjaChlKXtkKG5ldyBjUyhgRXJyb3IgZm9ybWF0dGluZyB0aGUgZGVmYXVsdCBtZXNzYWdlIGZvcjogIiR7Z30iLCByZW5kZXJpbmcgbWVzc2FnZSB2ZXJiYXRpbWAsYSxuLGUpKX1yZXR1cm4gdHlwZW9mIF89PWBzdHJpbmdgP186dHlwZW9mIGg9PWBzdHJpbmdgP2g6Z307c3goKTt2YXIgdmxlPVtgZm9ybWF0TWF0Y2hlcmAsYHRpbWVab25lYCxgaG91cjEyYCxgd2Vla2RheWAsYGVyYWAsYHllYXJgLGBtb250aGAsYGRheWAsYGhvdXJgLGBtaW51dGVgLGBzZWNvbmRgLGB0aW1lWm9uZU5hbWVgLGBob3VyQ3ljbGVgLGBkYXRlU3R5bGVgLGB0aW1lU3R5bGVgLGBjYWxlbmRhcmAsYG51bWJlcmluZ1N5c3RlbWAsYGZyYWN0aW9uYWxTZWNvbmREaWdpdHNgXTtmdW5jdGlvbiB2UyhlLHQsbixyKXt2YXIgaT1lLmxvY2FsZSxhPWUuZm9ybWF0cyxvPWUub25FcnJvcixzPWUudGltZVpvbmU7cj09PXZvaWQgMCYmKHI9e30pO3ZhciBjPXIuZm9ybWF0LGw9dHgodHgoe30scyYme3RpbWVab25lOnN9KSxjJiZwUyhhLHQsYyxvKSksdT1sUyhyLHZsZSxsKTtyZXR1cm4gdD09PWB0aW1lYCYmIXUuaG91ciYmIXUubWludXRlJiYhdS5zZWNvbmQmJiF1LnRpbWVTdHlsZSYmIXUuZGF0ZVN0eWxlJiYodT10eCh0eCh7fSx1KSx7aG91cjpgbnVtZXJpY2AsbWludXRlOmBudW1lcmljYH0pKSxuKGksdSl9ZnVuY3Rpb24geWxlKGUsdCl7dmFyIG49Wy4uLmFyZ3VtZW50c10uc2xpY2UoMikscj1uWzBdLGk9blsxXSxhPWk9PT12b2lkIDA/e306aSxvPXR5cGVvZiByPT1gc3RyaW5nYD9uZXcgRGF0ZShyfHwwKTpyO3RyeXtyZXR1cm4gdlMoZSxgZGF0ZWAsdCxhKS5mb3JtYXQobyl9Y2F0Y2godCl7ZS5vbkVycm9yKG5ldyBzUyhgRXJyb3IgZm9ybWF0dGluZyBkYXRlLmAsZS5sb2NhbGUsdCkpfXJldHVybiBTdHJpbmcobyl9ZnVuY3Rpb24gYmxlKGUsdCl7dmFyIG49Wy4uLmFyZ3VtZW50c10uc2xpY2UoMikscj1uWzBdLGk9blsxXSxhPWk9PT12b2lkIDA/e306aSxvPXR5cGVvZiByPT1gc3RyaW5nYD9uZXcgRGF0ZShyfHwwKTpyO3RyeXtyZXR1cm4gdlMoZSxgdGltZWAsdCxhKS5mb3JtYXQobyl9Y2F0Y2godCl7ZS5vbkVycm9yKG5ldyBzUyhgRXJyb3IgZm9ybWF0dGluZyB0aW1lLmAsZS5sb2NhbGUsdCkpfXJldHVybiBTdHJpbmcobyl9ZnVuY3Rpb24geGxlKGUsdCl7dmFyIG49Wy4uLmFyZ3VtZW50c10uc2xpY2UoMikscj1uWzBdLGk9blsxXSxhPW5bMl0sbz1hPT09dm9pZCAwP3t9OmEscz10eXBlb2Ygcj09YHN0cmluZ2A/bmV3IERhdGUocnx8MCk6cixjPXR5cGVvZiBpPT1gc3RyaW5nYD9uZXcgRGF0ZShpfHwwKTppO3RyeXtyZXR1cm4gdlMoZSxgZGF0ZVRpbWVSYW5nZWAsdCxvKS5mb3JtYXRSYW5nZShzLGMpfWNhdGNoKHQpe2Uub25FcnJvcihuZXcgc1MoYEVycm9yIGZvcm1hdHRpbmcgZGF0ZSB0aW1lIHJhbmdlLmAsZS5sb2NhbGUsdCkpfXJldHVybiBTdHJpbmcocyl9ZnVuY3Rpb24gU2xlKGUsdCl7dmFyIG49Wy4uLmFyZ3VtZW50c10uc2xpY2UoMikscj1uWzBdLGk9blsxXSxhPWk9PT12b2lkIDA/e306aSxvPXR5cGVvZiByPT1gc3RyaW5nYD9uZXcgRGF0ZShyfHwwKTpyO3RyeXtyZXR1cm4gdlMoZSxgZGF0ZWAsdCxhKS5mb3JtYXRUb1BhcnRzKG8pfWNhdGNoKHQpe2Uub25FcnJvcihuZXcgc1MoYEVycm9yIGZvcm1hdHRpbmcgZGF0ZS5gLGUubG9jYWxlLHQpKX1yZXR1cm5bXX1mdW5jdGlvbiBDbGUoZSx0KXt2YXIgbj1bLi4uYXJndW1lbnRzXS5zbGljZSgyKSxyPW5bMF0saT1uWzFdLGE9aT09PXZvaWQgMD97fTppLG89dHlwZW9mIHI9PWBzdHJpbmdgP25ldyBEYXRlKHJ8fDApOnI7dHJ5e3JldHVybiB2UyhlLGB0aW1lYCx0LGEpLmZvcm1hdFRvUGFydHMobyl9Y2F0Y2godCl7ZS5vbkVycm9yKG5ldyBzUyhgRXJyb3IgZm9ybWF0dGluZyB0aW1lLmAsZS5sb2NhbGUsdCkpfXJldHVybltdfXZhciB3bGU9W2BzdHlsZWAsYHR5cGVgLGBmYWxsYmFja2AsYGxhbmd1YWdlRGlzcGxheWBdO2Z1bmN0aW9uIFRsZShlLHQsbixyKXt2YXIgaT1lLmxvY2FsZSxhPWUub25FcnJvcjtJbnRsLkRpc3BsYXlOYW1lc3x8YShuZXcgWngoYEludGwuRGlzcGxheU5hbWVzIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC4KVHJ5IHBvbHlmaWxsaW5nIGl0IHVzaW5nICJAZm9ybWF0anMvaW50bC1kaXNwbGF5bmFtZXMiCmAsWHguTUlTU0lOR19JTlRMX0FQSSkpO3ZhciBvPWxTKHIsd2xlKTt0cnl7cmV0dXJuIHQoaSxvKS5vZihuKX1jYXRjaChlKXthKG5ldyBzUyhgRXJyb3IgZm9ybWF0dGluZyBkaXNwbGF5IG5hbWUuYCxpLGUpKX19c3goKTt2YXIgRWxlPVtgdHlwZWAsYHN0eWxlYF0seVM9RGF0ZS5ub3coKTtmdW5jdGlvbiBEbGUoZSl7cmV0dXJuYCR7eVN9XyR7ZX1fJHt5U31gfWZ1bmN0aW9uIE9sZShlLHQsbixyKXtyPT09dm9pZCAwJiYocj17fSk7dmFyIGk9YlMoZSx0LG4scikucmVkdWNlKGZ1bmN0aW9uKGUsdCl7dmFyIG49dC52YWx1ZTtyZXR1cm4gdHlwZW9mIG49PWBzdHJpbmdgJiZ0eXBlb2YgZVtlLmxlbmd0aC0xXT09YHN0cmluZ2A/ZVtlLmxlbmd0aC0xXSs9bjplLnB1c2gobiksZX0sW10pO3JldHVybiBpLmxlbmd0aD09PTE/aVswXTppLmxlbmd0aD09PTA/YGA6aX1mdW5jdGlvbiBiUyhlLHQsbixyKXt2YXIgaT1lLmxvY2FsZSxhPWUub25FcnJvcjtyPT09dm9pZCAwJiYocj17fSksSW50bC5MaXN0Rm9ybWF0fHxhKG5ldyBaeChgSW50bC5MaXN0Rm9ybWF0IGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC4KVHJ5IHBvbHlmaWxsaW5nIGl0IHVzaW5nICJAZm9ybWF0anMvaW50bC1saXN0Zm9ybWF0IgpgLFh4Lk1JU1NJTkdfSU5UTF9BUEkpKTt2YXIgbz1sUyhyLEVsZSk7dHJ5e3ZhciBzPXt9LGM9bi5tYXAoZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgZT09YG9iamVjdGApe3ZhciBuPURsZSh0KTtyZXR1cm4gc1tuXT1lLG59cmV0dXJuIFN0cmluZyhlKX0pO3JldHVybiB0KGksbykuZm9ybWF0VG9QYXJ0cyhjKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PWBsaXRlcmFsYD9lOnR4KHR4KHt9LGUpLHt2YWx1ZTpzW2UudmFsdWVdfHxlLnZhbHVlfSl9KX1jYXRjaChlKXthKG5ldyBzUyhgRXJyb3IgZm9ybWF0dGluZyBsaXN0LmAsaSxlKSl9cmV0dXJuIG59dmFyIGtsZT1bYHR5cGVgXTtmdW5jdGlvbiBBbGUoZSx0LG4scil7dmFyIGk9ZS5sb2NhbGUsYT1lLm9uRXJyb3I7cj09PXZvaWQgMCYmKHI9e30pLEludGwuUGx1cmFsUnVsZXN8fGEobmV3IFp4KGBJbnRsLlBsdXJhbFJ1bGVzIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC4KVHJ5IHBvbHlmaWxsaW5nIGl0IHVzaW5nICJAZm9ybWF0anMvaW50bC1wbHVyYWxydWxlcyIKYCxYeC5NSVNTSU5HX0lOVExfQVBJKSk7dmFyIG89bFMocixrbGUpO3RyeXtyZXR1cm4gdChpLG8pLnNlbGVjdChuKX1jYXRjaChlKXthKG5ldyBzUyhgRXJyb3IgZm9ybWF0dGluZyBwbHVyYWwuYCxpLGUpKX1yZXR1cm5gb3RoZXJgfXZhciBqbGU9W2BudW1lcmljYCxgc3R5bGVgXTtmdW5jdGlvbiBNbGUoZSx0LG4pe3ZhciByPWUubG9jYWxlLGk9ZS5mb3JtYXRzLGE9ZS5vbkVycm9yO249PT12b2lkIDAmJihuPXt9KTt2YXIgbz1uLmZvcm1hdCxzPSEhbyYmcFMoaSxgcmVsYXRpdmVgLG8sYSl8fHt9O3JldHVybiB0KHIsbFMobixqbGUscykpfWZ1bmN0aW9uIE5sZShlLHQsbixyLGkpe2k9PT12b2lkIDAmJihpPXt9KSxyfHwocj1gc2Vjb25kYCksSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXR8fGUub25FcnJvcihuZXcgWngoYEludGwuUmVsYXRpdmVUaW1lRm9ybWF0IGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC4KVHJ5IHBvbHlmaWxsaW5nIGl0IHVzaW5nICJAZm9ybWF0anMvaW50bC1yZWxhdGl2ZXRpbWVmb3JtYXQiCmAsWHguTUlTU0lOR19JTlRMX0FQSSkpO3RyeXtyZXR1cm4gTWxlKGUsdCxpKS5mb3JtYXQobixyKX1jYXRjaCh0KXtlLm9uRXJyb3IobmV3IHNTKGBFcnJvciBmb3JtYXR0aW5nIHJlbGF0aXZlIHRpbWUuYCxlLmxvY2FsZSx0KSl9cmV0dXJuIFN0cmluZyhuKX12YXIgUGxlPVtgc3R5bGVgLGBjdXJyZW5jeWAsYHVuaXRgLGB1bml0RGlzcGxheWAsYHVzZUdyb3VwaW5nYCxgbWluaW11bUludGVnZXJEaWdpdHNgLGBtaW5pbXVtRnJhY3Rpb25EaWdpdHNgLGBtYXhpbXVtRnJhY3Rpb25EaWdpdHNgLGBtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHNgLGBtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHNgLGBjb21wYWN0RGlzcGxheWAsYGN1cnJlbmN5RGlzcGxheWAsYGN1cnJlbmN5U2lnbmAsYG5vdGF0aW9uYCxgc2lnbkRpc3BsYXlgLGB1bml0YCxgdW5pdERpc3BsYXlgLGBudW1iZXJpbmdTeXN0ZW1gLGB0cmFpbGluZ1plcm9EaXNwbGF5YCxgcm91bmRpbmdQcmlvcml0eWAsYHJvdW5kaW5nSW5jcmVtZW50YCxgcm91bmRpbmdNb2RlYF07ZnVuY3Rpb24geFMoZSx0LG4pe3ZhciByPWUubG9jYWxlLGk9ZS5mb3JtYXRzLGE9ZS5vbkVycm9yO249PT12b2lkIDAmJihuPXt9KTt2YXIgbz1uLmZvcm1hdCxzPW8mJnBTKGksYG51bWJlcmAsbyxhKXx8e307cmV0dXJuIHQocixsUyhuLFBsZSxzKSl9ZnVuY3Rpb24gRmxlKGUsdCxuLHIpe3I9PT12b2lkIDAmJihyPXt9KTt0cnl7cmV0dXJuKHI9PW51bGw/dm9pZCAwOnIuY3VycmVuY3kpPT09YFNHRGA/YFMkYCt4UyhlLHQsT2JqZWN0LmFzc2lnbih7fSx7bWluaW11bUZyYWN0aW9uRGlnaXRzOjIsbWF4aW11bUZyYWN0aW9uRGlnaXRzOjJ9LHIse3N0eWxlOmBkZWNpbWFsYH0pKS5mb3JtYXQobik6eFMoZSx0LHIpLmZvcm1hdChuKX1jYXRjaCh0KXtlLm9uRXJyb3IobmV3IHNTKGBFcnJvciBmb3JtYXR0aW5nIG51bWJlci5gLGUubG9jYWxlLHQpKX1yZXR1cm4gU3RyaW5nKG4pfWZ1bmN0aW9uIElsZShlLHQsbixyKXtyPT09dm9pZCAwJiYocj17fSk7dHJ5e3JldHVybiB4UyhlLHQscikuZm9ybWF0VG9QYXJ0cyhuKX1jYXRjaCh0KXtlLm9uRXJyb3IobmV3IHNTKGBFcnJvciBmb3JtYXR0aW5nIG51bWJlci5gLGUubG9jYWxlLHQpKX1yZXR1cm5bXX1zeCgpO2Z1bmN0aW9uIExsZShlKXtyZXR1cm4gdHlwZW9mKGU/ZVtPYmplY3Qua2V5cyhlKVswXV06dm9pZCAwKT09YHN0cmluZ2B9ZnVuY3Rpb24gUmxlKGUpe2Uub25XYXJuJiZlLmRlZmF1bHRSaWNoVGV4dEVsZW1lbnRzJiZMbGUoZS5tZXNzYWdlc3x8e30pJiZlLm9uV2FybihgW0Bmb3JtYXRqcy9pbnRsXSAiZGVmYXVsdFJpY2hUZXh0RWxlbWVudHMiIHdhcyBzcGVjaWZpZWQgYnV0ICJtZXNzYWdlIiB3YXMgbm90IHByZS1jb21waWxlZC4gClBsZWFzZSBjb25zaWRlciB1c2luZyAiQGZvcm1hdGpzL2NsaSIgdG8gcHJlLWNvbXBpbGUgeW91ciBtZXNzYWdlcyBmb3IgcGVyZm9ybWFuY2UuCkZvciBtb3JlIGRldGFpbHMgc2VlIGh0dHBzOi8vZm9ybWF0anMuZ2l0aHViLmlvL2RvY3MvZ2V0dGluZy1zdGFydGVkL21lc3NhZ2UtZGlzdHJpYnV0aW9uYCl9ZnVuY3Rpb24gemxlKGUsdCl7dmFyIG49X2xlKHQpLHI9dHgodHgoe30sdVMpLGUpLGk9ci5sb2NhbGUsYT1yLmRlZmF1bHRMb2NhbGUsbz1yLm9uRXJyb3I7cmV0dXJuIGk/IUludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZihpKS5sZW5ndGgmJm8/byhuZXcgb1MoYE1pc3NpbmcgbG9jYWxlIGRhdGEgZm9yIGxvY2FsZTogIiR7aX0iIGluIEludGwuTnVtYmVyRm9ybWF0LiBVc2luZyBkZWZhdWx0IGxvY2FsZTogIiR7YX0iIGFzIGZhbGxiYWNrLiBTZWUgaHR0cHM6Ly9mb3JtYXRqcy5naXRodWIuaW8vZG9jcy9yZWFjdC1pbnRsI3J1bnRpbWUtcmVxdWlyZW1lbnRzIGZvciBtb3JlIGRldGFpbHNgKSk6IUludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKGkpLmxlbmd0aCYmbyYmbyhuZXcgb1MoYE1pc3NpbmcgbG9jYWxlIGRhdGEgZm9yIGxvY2FsZTogIiR7aX0iIGluIEludGwuRGF0ZVRpbWVGb3JtYXQuIFVzaW5nIGRlZmF1bHQgbG9jYWxlOiAiJHthfSIgYXMgZmFsbGJhY2suIFNlZSBodHRwczovL2Zvcm1hdGpzLmdpdGh1Yi5pby9kb2NzL3JlYWN0LWludGwjcnVudGltZS1yZXF1aXJlbWVudHMgZm9yIG1vcmUgZGV0YWlsc2ApKToobyYmbyhuZXcgbWxlKGAibG9jYWxlIiB3YXMgbm90IGNvbmZpZ3VyZWQsIHVzaW5nICIke2F9IiBhcyBmYWxsYmFjay4gU2VlIGh0dHBzOi8vZm9ybWF0anMuZ2l0aHViLmlvL2RvY3MvcmVhY3QtaW50bC9hcGkjaW50bHNoYXBlIGZvciBtb3JlIGRldGFpbHNgKSksci5sb2NhbGU9ci5kZWZhdWx0TG9jYWxlfHxgZW5gKSxSbGUociksdHgodHgoe30scikse2Zvcm1hdHRlcnM6bixmb3JtYXROdW1iZXI6RmxlLmJpbmQobnVsbCxyLG4uZ2V0TnVtYmVyRm9ybWF0KSxmb3JtYXROdW1iZXJUb1BhcnRzOklsZS5iaW5kKG51bGwscixuLmdldE51bWJlckZvcm1hdCksZm9ybWF0UmVsYXRpdmVUaW1lOk5sZS5iaW5kKG51bGwscixuLmdldFJlbGF0aXZlVGltZUZvcm1hdCksZm9ybWF0RGF0ZTp5bGUuYmluZChudWxsLHIsbi5nZXREYXRlVGltZUZvcm1hdCksZm9ybWF0RGF0ZVRvUGFydHM6U2xlLmJpbmQobnVsbCxyLG4uZ2V0RGF0ZVRpbWVGb3JtYXQpLGZvcm1hdFRpbWU6YmxlLmJpbmQobnVsbCxyLG4uZ2V0RGF0ZVRpbWVGb3JtYXQpLGZvcm1hdERhdGVUaW1lUmFuZ2U6eGxlLmJpbmQobnVsbCxyLG4uZ2V0RGF0ZVRpbWVGb3JtYXQpLGZvcm1hdFRpbWVUb1BhcnRzOkNsZS5iaW5kKG51bGwscixuLmdldERhdGVUaW1lRm9ybWF0KSxmb3JtYXRQbHVyYWw6QWxlLmJpbmQobnVsbCxyLG4uZ2V0UGx1cmFsUnVsZXMpLGZvcm1hdE1lc3NhZ2U6X1MuYmluZChudWxsLHIsbiksJHQ6X1MuYmluZChudWxsLHIsbiksZm9ybWF0TGlzdDpPbGUuYmluZChudWxsLHIsbi5nZXRMaXN0Rm9ybWF0KSxmb3JtYXRMaXN0VG9QYXJ0czpiUy5iaW5kKG51bGwscixuLmdldExpc3RGb3JtYXQpLGZvcm1hdERpc3BsYXlOYW1lOlRsZS5iaW5kKG51bGwscixuLmdldERpc3BsYXlOYW1lcyl9KX1zeCgpO2Z1bmN0aW9uIEJsZShlLHQsbil7aWYobj09PXZvaWQgMCYmKG49RXJyb3IpLCFlKXRocm93IG5ldyBuKHQpfWZ1bmN0aW9uIFNTKGUpe0JsZShlLCJbUmVhY3QgSW50bF0gQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgYGludGxgIG9iamVjdC4gPEludGxQcm92aWRlcj4gbmVlZHMgdG8gZXhpc3QgaW4gdGhlIGNvbXBvbmVudCBhbmNlc3RyeS4iKX12YXIgQ1M9dHgodHgoe30sdVMpLHt0ZXh0Q29tcG9uZW50OkcuRnJhZ21lbnR9KSxWbGU9e2tleTo0Mn0sSGxlPWZ1bmN0aW9uKGUpe3JldHVybiBHLmlzVmFsaWRFbGVtZW50KGUpP0cuY3JlYXRlRWxlbWVudChHLkZyYWdtZW50LFZsZSxlKTplfSxVbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIEcuQ2hpbGRyZW4ubWFwKGUsSGxlKT8/W119O2Z1bmN0aW9uIFdsZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUoRy5DaGlsZHJlbi50b0FycmF5KHQpKX19ZnVuY3Rpb24gd1MoZSx0KXtpZihlPT09dClyZXR1cm4hMDtpZighZXx8IXQpcmV0dXJuITE7dmFyIG49T2JqZWN0LmtleXMoZSkscj1PYmplY3Qua2V5cyh0KSxpPW4ubGVuZ3RoO2lmKHIubGVuZ3RoIT09aSlyZXR1cm4hMTtmb3IodmFyIGE9MDthPGk7YSsrKXt2YXIgbz1uW2FdO2lmKGVbb10hPT10W29dfHwhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbykpcmV0dXJuITF9cmV0dXJuITB9dmFyIEdsZT1zKChlPT57dmFyIHQ9dHlwZW9mIFN5bWJvbD09YGZ1bmN0aW9uYCYmU3ltYm9sLmZvcixuPXQ/U3ltYm9sLmZvcihgcmVhY3QuZWxlbWVudGApOjYwMTAzLHI9dD9TeW1ib2wuZm9yKGByZWFjdC5wb3J0YWxgKTo2MDEwNixpPXQ/U3ltYm9sLmZvcihgcmVhY3QuZnJhZ21lbnRgKTo2MDEwNyxhPXQ/U3ltYm9sLmZvcihgcmVhY3Quc3RyaWN0X21vZGVgKTo2MDEwOCxvPXQ/U3ltYm9sLmZvcihgcmVhY3QucHJvZmlsZXJgKTo2MDExNCxzPXQ/U3ltYm9sLmZvcihgcmVhY3QucHJvdmlkZXJgKTo2MDEwOSxjPXQ/U3ltYm9sLmZvcihgcmVhY3QuY29udGV4dGApOjYwMTEwLGw9dD9TeW1ib2wuZm9yKGByZWFjdC5hc3luY19tb2RlYCk6NjAxMTEsdT10P1N5bWJvbC5mb3IoYHJlYWN0LmNvbmN1cnJlbnRfbW9kZWApOjYwMTExLGQ9dD9TeW1ib2wuZm9yKGByZWFjdC5mb3J3YXJkX3JlZmApOjYwMTEyLGY9dD9TeW1ib2wuZm9yKGByZWFjdC5zdXNwZW5zZWApOjYwMTEzLHA9dD9TeW1ib2wuZm9yKGByZWFjdC5zdXNwZW5zZV9saXN0YCk6NjAxMjAsbT10P1N5bWJvbC5mb3IoYHJlYWN0Lm1lbW9gKTo2MDExNSxoPXQ/U3ltYm9sLmZvcihgcmVhY3QubGF6eWApOjYwMTE2LGc9dD9TeW1ib2wuZm9yKGByZWFjdC5ibG9ja2ApOjYwMTIxLF89dD9TeW1ib2wuZm9yKGByZWFjdC5mdW5kYW1lbnRhbGApOjYwMTE3LHY9dD9TeW1ib2wuZm9yKGByZWFjdC5yZXNwb25kZXJgKTo2MDExOCx5PXQ/U3ltYm9sLmZvcihgcmVhY3Quc2NvcGVgKTo2MDExOTtmdW5jdGlvbiBiKGUpe2lmKHR5cGVvZiBlPT1gb2JqZWN0YCYmZSl7dmFyIHQ9ZS4kJHR5cGVvZjtzd2l0Y2godCl7Y2FzZSBuOnN3aXRjaChlPWUudHlwZSxlKXtjYXNlIGw6Y2FzZSB1OmNhc2UgaTpjYXNlIG86Y2FzZSBhOmNhc2UgZjpyZXR1cm4gZTtkZWZhdWx0OnN3aXRjaChlPWUmJmUuJCR0eXBlb2YsZSl7Y2FzZSBjOmNhc2UgZDpjYXNlIGg6Y2FzZSBtOmNhc2UgczpyZXR1cm4gZTtkZWZhdWx0OnJldHVybiB0fX1jYXNlIHI6cmV0dXJuIHR9fX1mdW5jdGlvbiB4KGUpe3JldHVybiBiKGUpPT09dX1lLkFzeW5jTW9kZT1sLGUuQ29uY3VycmVudE1vZGU9dSxlLkNvbnRleHRDb25zdW1lcj1jLGUuQ29udGV4dFByb3ZpZGVyPXMsZS5FbGVtZW50PW4sZS5Gb3J3YXJkUmVmPWQsZS5GcmFnbWVudD1pLGUuTGF6eT1oLGUuTWVtbz1tLGUuUG9ydGFsPXIsZS5Qcm9maWxlcj1vLGUuU3RyaWN0TW9kZT1hLGUuU3VzcGVuc2U9ZixlLmlzQXN5bmNNb2RlPWZ1bmN0aW9uKGUpe3JldHVybiB4KGUpfHxiKGUpPT09bH0sZS5pc0NvbmN1cnJlbnRNb2RlPXgsZS5pc0NvbnRleHRDb25zdW1lcj1mdW5jdGlvbihlKXtyZXR1cm4gYihlKT09PWN9LGUuaXNDb250ZXh0UHJvdmlkZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGIoZSk9PT1zfSxlLmlzRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGU9PWBvYmplY3RgJiYhIWUmJmUuJCR0eXBlb2Y9PT1ufSxlLmlzRm9yd2FyZFJlZj1mdW5jdGlvbihlKXtyZXR1cm4gYihlKT09PWR9LGUuaXNGcmFnbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gYihlKT09PWl9LGUuaXNMYXp5PWZ1bmN0aW9uKGUpe3JldHVybiBiKGUpPT09aH0sZS5pc01lbW89ZnVuY3Rpb24oZSl7cmV0dXJuIGIoZSk9PT1tfSxlLmlzUG9ydGFsPWZ1bmN0aW9uKGUpe3JldHVybiBiKGUpPT09cn0sZS5pc1Byb2ZpbGVyPWZ1bmN0aW9uKGUpe3JldHVybiBiKGUpPT09b30sZS5pc1N0cmljdE1vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGIoZSk9PT1hfSxlLmlzU3VzcGVuc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGIoZSk9PT1mfSxlLmlzVmFsaWRFbGVtZW50VHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgfHx0eXBlb2YgZT09YGZ1bmN0aW9uYHx8ZT09PWl8fGU9PT11fHxlPT09b3x8ZT09PWF8fGU9PT1mfHxlPT09cHx8dHlwZW9mIGU9PWBvYmplY3RgJiYhIWUmJihlLiQkdHlwZW9mPT09aHx8ZS4kJHR5cGVvZj09PW18fGUuJCR0eXBlb2Y9PT1zfHxlLiQkdHlwZW9mPT09Y3x8ZS4kJHR5cGVvZj09PWR8fGUuJCR0eXBlb2Y9PT1ffHxlLiQkdHlwZW9mPT09dnx8ZS4kJHR5cGVvZj09PXl8fGUuJCR0eXBlb2Y9PT1nKX0sZS50eXBlT2Y9Yn0pKSxLbGU9cygoKGUsdCk9Pnt0LmV4cG9ydHM9R2xlKCl9KSksVFM9cygoKGUsdCk9Pnt2YXIgbj1LbGUoKSxyPXtjaGlsZENvbnRleHRUeXBlczohMCxjb250ZXh0VHlwZTohMCxjb250ZXh0VHlwZXM6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLGdldERlZmF1bHRQcm9wczohMCxnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6ITAsZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOiEwLG1peGluczohMCxwcm9wVHlwZXM6ITAsdHlwZTohMH0saT17bmFtZTohMCxsZW5ndGg6ITAscHJvdG90eXBlOiEwLGNhbGxlcjohMCxjYWxsZWU6ITAsYXJndW1lbnRzOiEwLGFyaXR5OiEwfSxhPXskJHR5cGVvZjohMCxyZW5kZXI6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLHByb3BUeXBlczohMH0sbz17JCR0eXBlb2Y6ITAsY29tcGFyZTohMCxkZWZhdWx0UHJvcHM6ITAsZGlzcGxheU5hbWU6ITAscHJvcFR5cGVzOiEwLHR5cGU6ITB9LHM9e307c1tuLkZvcndhcmRSZWZdPWEsc1tuLk1lbW9dPW87ZnVuY3Rpb24gYyhlKXtyZXR1cm4gbi5pc01lbW8oZSk/bzpzW2UuJCR0eXBlb2ZdfHxyfXZhciBsPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLGQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IscD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsbT1PYmplY3QucHJvdG90eXBlO2Z1bmN0aW9uIGgoZSx0LG4pe2lmKHR5cGVvZiB0IT1gc3RyaW5nYCl7aWYobSl7dmFyIHI9cCh0KTtyJiZyIT09bSYmaChlLHIsbil9dmFyIGE9dSh0KTtkJiYoYT1hLmNvbmNhdChkKHQpKSk7Zm9yKHZhciBvPWMoZSkscz1jKHQpLGc9MDtnPGEubGVuZ3RoOysrZyl7dmFyIF89YVtnXTtpZighaVtfXSYmIShuJiZuW19dKSYmIShzJiZzW19dKSYmIShvJiZvW19dKSl7dmFyIHY9Zih0LF8pO3RyeXtsKGUsXyx2KX1jYXRjaHt9fX19cmV0dXJuIGV9dC5leHBvcnRzPWh9KSk7VFMoKTt2YXIgRVM9dHlwZW9mIHdpbmRvdzxgdWAmJiF3aW5kb3cuX19SRUFDVF9JTlRMX0JZUEFTU19HTE9CQUxfQ09OVEVYVF9fP3dpbmRvdy5fX1JFQUNUX0lOVExfQ09OVEVYVF9ffHwod2luZG93Ll9fUkVBQ1RfSU5UTF9DT05URVhUX189Ry5jcmVhdGVDb250ZXh0KG51bGwpKTpHLmNyZWF0ZUNvbnRleHQobnVsbCk7RVMuQ29uc3VtZXI7dmFyIHFsZT1FUy5Qcm92aWRlcixKbGU9RVM7ZnVuY3Rpb24gRFMoKXt2YXIgZT1HLnVzZUNvbnRleHQoSmxlKTtyZXR1cm4gU1MoZSksZX1zeCgpO3ZhciBPUzsoZnVuY3Rpb24oZSl7ZS5mb3JtYXREYXRlPWBGb3JtYXR0ZWREYXRlYCxlLmZvcm1hdFRpbWU9YEZvcm1hdHRlZFRpbWVgLGUuZm9ybWF0TnVtYmVyPWBGb3JtYXR0ZWROdW1iZXJgLGUuZm9ybWF0TGlzdD1gRm9ybWF0dGVkTGlzdGAsZS5mb3JtYXREaXNwbGF5TmFtZT1gRm9ybWF0dGVkRGlzcGxheU5hbWVgfSkoT1N8fChPUz17fSkpO3ZhciBrUzsoZnVuY3Rpb24oZSl7ZS5mb3JtYXREYXRlPWBGb3JtYXR0ZWREYXRlUGFydHNgLGUuZm9ybWF0VGltZT1gRm9ybWF0dGVkVGltZVBhcnRzYCxlLmZvcm1hdE51bWJlcj1gRm9ybWF0dGVkTnVtYmVyUGFydHNgLGUuZm9ybWF0TGlzdD1gRm9ybWF0dGVkTGlzdFBhcnRzYH0pKGtTfHwoa1M9e30pKTt2YXIgQVM9ZnVuY3Rpb24oZSl7dmFyIHQ9RFMoKSxuPWUudmFsdWUscj1lLmNoaWxkcmVuLGk9VGIoZSxbYHZhbHVlYCxgY2hpbGRyZW5gXSk7cmV0dXJuIHIodC5mb3JtYXROdW1iZXJUb1BhcnRzKG4saSkpfTtBUy5kaXNwbGF5TmFtZT1gRm9ybWF0dGVkTnVtYmVyUGFydHNgLEFTLmRpc3BsYXlOYW1lPWBGb3JtYXR0ZWROdW1iZXJQYXJ0c2A7ZnVuY3Rpb24galMoZSl7dmFyIHQ9ZnVuY3Rpb24odCl7dmFyIG49RFMoKSxyPXQudmFsdWUsaT10LmNoaWxkcmVuLGE9VGIodCxbYHZhbHVlYCxgY2hpbGRyZW5gXSksbz10eXBlb2Ygcj09YHN0cmluZ2A/bmV3IERhdGUocnx8MCk6cjtyZXR1cm4gaShlPT09YGZvcm1hdERhdGVgP24uZm9ybWF0RGF0ZVRvUGFydHMobyxhKTpuLmZvcm1hdFRpbWVUb1BhcnRzKG8sYSkpfTtyZXR1cm4gdC5kaXNwbGF5TmFtZT1rU1tlXSx0fWZ1bmN0aW9uIE1TKGUpe3ZhciB0PWZ1bmN0aW9uKHQpe3ZhciBuPURTKCkscj10LnZhbHVlLGk9dC5jaGlsZHJlbixhPVRiKHQsW2B2YWx1ZWAsYGNoaWxkcmVuYF0pLG89bltlXShyLGEpO2lmKHR5cGVvZiBpPT1gZnVuY3Rpb25gKXJldHVybiBpKG8pO3ZhciBzPW4udGV4dENvbXBvbmVudHx8Ry5GcmFnbWVudDtyZXR1cm4gRy5jcmVhdGVFbGVtZW50KHMsbnVsbCxvKX07cmV0dXJuIHQuZGlzcGxheU5hbWU9T1NbZV0sdH1zeCgpO2Z1bmN0aW9uIE5TKGUpe3JldHVybiBlJiZPYmplY3Qua2V5cyhlKS5yZWR1Y2UoZnVuY3Rpb24odCxuKXt2YXIgcj1lW25dO3JldHVybiB0W25dPWVTKHIpP1dsZShyKTpyLHR9LHt9KX12YXIgUFM9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9Wy4uLmFyZ3VtZW50c10uc2xpY2UoNCksYT1OUyhyKSxvPV9TLmFwcGx5KHZvaWQgMCxCYihbZSx0LG4sYV0saSwhMSkpO3JldHVybiBBcnJheS5pc0FycmF5KG8pP1VsZShvKTpvfSxGUz1mdW5jdGlvbihlLHQpe3ZhciBuPWUuZGVmYXVsdFJpY2hUZXh0RWxlbWVudHMscj1UYihlLFtgZGVmYXVsdFJpY2hUZXh0RWxlbWVudHNgXSksaT1OUyhuKSxhPXpsZSh0eCh0eCh0eCh7fSxDUykscikse2RlZmF1bHRSaWNoVGV4dEVsZW1lbnRzOml9KSx0KSxvPXtsb2NhbGU6YS5sb2NhbGUsdGltZVpvbmU6YS50aW1lWm9uZSxmYWxsYmFja09uRW1wdHlTdHJpbmc6YS5mYWxsYmFja09uRW1wdHlTdHJpbmcsZm9ybWF0czphLmZvcm1hdHMsZGVmYXVsdExvY2FsZTphLmRlZmF1bHRMb2NhbGUsZGVmYXVsdEZvcm1hdHM6YS5kZWZhdWx0Rm9ybWF0cyxtZXNzYWdlczphLm1lc3NhZ2VzLG9uRXJyb3I6YS5vbkVycm9yLGRlZmF1bHRSaWNoVGV4dEVsZW1lbnRzOml9O3JldHVybiB0eCh0eCh7fSxhKSx7Zm9ybWF0TWVzc2FnZTpQUy5iaW5kKG51bGwsbyxhLmZvcm1hdHRlcnMpLCR0OlBTLmJpbmQobnVsbCxvLGEuZm9ybWF0dGVycyl9KX07c3goKTtmdW5jdGlvbiBZbGUoZSx0KXt2YXIgbj1lLnZhbHVlcyxyPVRiKGUsW2B2YWx1ZXNgXSksaT10LnZhbHVlcyxhPVRiKHQsW2B2YWx1ZXNgXSk7cmV0dXJuIHdTKGksbikmJndTKHIsYSl9ZnVuY3Rpb24gSVMoZSl7dmFyIHQ9RFMoKSxuPXQuZm9ybWF0TWVzc2FnZSxyPXQudGV4dENvbXBvbmVudCxpPXI9PT12b2lkIDA/Ry5GcmFnbWVudDpyLGE9ZS5pZCxvPWUuZGVzY3JpcHRpb24scz1lLmRlZmF1bHRNZXNzYWdlLGM9ZS52YWx1ZXMsbD1lLmNoaWxkcmVuLHU9ZS50YWdOYW1lLGQ9dT09PXZvaWQgMD9pOnUsZj1lLmlnbm9yZVRhZyxwPW4oe2lkOmEsZGVzY3JpcHRpb246byxkZWZhdWx0TWVzc2FnZTpzfSxjLHtpZ25vcmVUYWc6Zn0pO3JldHVybiB0eXBlb2YgbD09YGZ1bmN0aW9uYD9sKEFycmF5LmlzQXJyYXkocCk/cDpbcF0pOmQ/Ry5jcmVhdGVFbGVtZW50KGQsbnVsbCxwKTpHLmNyZWF0ZUVsZW1lbnQoRy5GcmFnbWVudCxudWxsLHApfUlTLmRpc3BsYXlOYW1lPWBGb3JtYXR0ZWRNZXNzYWdlYDt2YXIgTFM9Ry5tZW1vKElTLFlsZSk7TFMuZGlzcGxheU5hbWU9YE1lbW9pemVkRm9ybWF0dGVkTWVzc2FnZWAsc3goKTtmdW5jdGlvbiBSUyhlKXtyZXR1cm57bG9jYWxlOmUubG9jYWxlLHRpbWVab25lOmUudGltZVpvbmUsZmFsbGJhY2tPbkVtcHR5U3RyaW5nOmUuZmFsbGJhY2tPbkVtcHR5U3RyaW5nLGZvcm1hdHM6ZS5mb3JtYXRzLHRleHRDb21wb25lbnQ6ZS50ZXh0Q29tcG9uZW50LG1lc3NhZ2VzOmUubWVzc2FnZXMsZGVmYXVsdExvY2FsZTplLmRlZmF1bHRMb2NhbGUsZGVmYXVsdEZvcm1hdHM6ZS5kZWZhdWx0Rm9ybWF0cyxvbkVycm9yOmUub25FcnJvcixvbldhcm46ZS5vbldhcm4sd3JhcFJpY2hUZXh0Q2h1bmtzSW5GcmFnbWVudDplLndyYXBSaWNoVGV4dENodW5rc0luRnJhZ21lbnQsZGVmYXVsdFJpY2hUZXh0RWxlbWVudHM6ZS5kZWZhdWx0UmljaFRleHRFbGVtZW50c319dmFyIHpTPWZ1bmN0aW9uKGUpe3diKHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciB0PWUhPT1udWxsJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gdC5jYWNoZT1kUygpLHQuc3RhdGU9e2NhY2hlOnQuY2FjaGUsaW50bDpGUyhSUyh0LnByb3BzKSx0LmNhY2hlKSxwcmV2Q29uZmlnOlJTKHQucHJvcHMpfSx0fXJldHVybiB0LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcz1mdW5jdGlvbihlLHQpe3ZhciBuPXQucHJldkNvbmZpZyxyPXQuY2FjaGUsaT1SUyhlKTtyZXR1cm4gd1MobixpKT9udWxsOntpbnRsOkZTKGkscikscHJldkNvbmZpZzppfX0sdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIFNTKHRoaXMuc3RhdGUuaW50bCksRy5jcmVhdGVFbGVtZW50KHFsZSx7dmFsdWU6dGhpcy5zdGF0ZS5pbnRsfSx0aGlzLnByb3BzLmNoaWxkcmVuKX0sdC5kaXNwbGF5TmFtZT1gSW50bFByb3ZpZGVyYCx0LmRlZmF1bHRQcm9wcz1DUyx0fShHLlB1cmVDb21wb25lbnQpO2Z1bmN0aW9uIEJTKGUpe3JldHVybiBlfXZhciBYbGU9TVMoYGZvcm1hdERhdGVgKTtNUyhgZm9ybWF0VGltZWApLE1TKGBmb3JtYXROdW1iZXJgKSxNUyhgZm9ybWF0TGlzdGApLE1TKGBmb3JtYXREaXNwbGF5TmFtZWApLGpTKGBmb3JtYXREYXRlYCksalMoYGZvcm1hdFRpbWVgKTt2YXIgVlM9ZnVuY3Rpb24oKXtsZXQgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLmZpbHRlcihCb29sZWFuKSx0PXt9LG49W107ZS5mb3JFYWNoKGU9PnsoZT9lLnNwbGl0KGAgYCk6W10pLmZvckVhY2goZT0+e2lmKGUuc3RhcnRzV2l0aChgYXRtX2ApKXtsZXRbLG5dPWUuc3BsaXQoYF9gKTt0W25dPWV9ZWxzZSBuLnB1c2goZSl9KX0pO2xldCByPVtdO2ZvcihsZXQgZSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpJiZyLnB1c2godFtlXSk7cmV0dXJuIHIucHVzaCguLi5uKSxyLmpvaW4oYCBgKX0sSFM9ZT0+e2xldCB0LG49bmV3IFNldCxyPShlLHIpPT57bGV0IGk9dHlwZW9mIGU9PWBmdW5jdGlvbmA/ZSh0KTplO2lmKCFPYmplY3QuaXMoaSx0KSl7bGV0IGU9dDt0PXI/Pyh0eXBlb2YgaSE9YG9iamVjdGB8fCFpKT9pOk9iamVjdC5hc3NpZ24oe30sdCxpKSxuLmZvckVhY2gobj0+bih0LGUpKX19LGk9KCk9PnQsYT17c2V0U3RhdGU6cixnZXRTdGF0ZTppLGdldEluaXRpYWxTdGF0ZTooKT0+byxzdWJzY3JpYmU6ZT0+KG4uYWRkKGUpLCgpPT5uLmRlbGV0ZShlKSl9LG89dD1lKHIsaSxhKTtyZXR1cm4gYX0sWmxlPShlPT5lP0hTKGUpOkhTKSxRbGU9ZT0+ZTtmdW5jdGlvbiAkbGUoZSx0PVFsZSl7bGV0IG49Ry51c2VTeW5jRXh0ZXJuYWxTdG9yZShlLnN1YnNjcmliZSxHLnVzZUNhbGxiYWNrKCgpPT50KGUuZ2V0U3RhdGUoKSksW2UsdF0pLEcudXNlQ2FsbGJhY2soKCk9PnQoZS5nZXRJbml0aWFsU3RhdGUoKSksW2UsdF0pKTtyZXR1cm4gRy51c2VEZWJ1Z1ZhbHVlKG4pLG59dmFyIGV1ZT0oMCxHLmNyZWF0ZUNvbnRleHQpKHZvaWQgMCksdHVlPVpsZSgoKT0+KHt9KSksbnVlPSgpPT4oMCxHLnVzZUNvbnRleHQpKGV1ZSk/P3R1ZTtmdW5jdGlvbiBVUyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIFdTKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP1VTKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtydWUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6VVMoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIHJ1ZShlLHQsbil7cmV0dXJuKHQ9aXVlKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIGl1ZShlKXt2YXIgdD1hdWUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gYXVlKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gb3VlKGUsdCl7cmV0dXJuIGU/dD9XUyhXUyh7fSxlKSx0KTplOnR9dmFyIEdTPShlLHQpPT57bGV0IG49JGxlKG51ZSgpLHQ9Pnt2YXIgbjtyZXR1cm4obj10LmNvbXBvbmVudHMpPT1udWxsP3ZvaWQgMDpuW2VdfSk7cmV0dXJuIG4/b3VlKHR5cGVvZiBuPT1gZnVuY3Rpb25gP24odCk6bix0KTp0fSxLUz17Ym9yZGVyZWQ6YGJvcmRlcmVkLWJ3aGU5bXRgLGJvcmRlcmVkSG9yaXpvbnRhbDpgYm9yZGVyZWRIb3Jpem9udGFsLWI3ZWFzMm9gLGJvcmRlcmVkVmVydGljYWw6YGJvcmRlcmVkVmVydGljYWwtYndhMGg4dmAsYm9yZGVyZWRTdGFydDpgYm9yZGVyZWRTdGFydC1iZ2d2MWdxYCxib3JkZXJlZEVuZDpgYm9yZGVyZWRFbmQtYnhkbnkwbWAsYm9yZGVyZWRUb3A6YGJvcmRlcmVkVG9wLWJlZXdjaDVgLGJvcmRlcmVkQm90dG9tOmBib3JkZXJlZEJvdHRvbS1iMW9hYzNib2B9LHN1ZT17dG9wOmB0b3AtdG83Y3BvemAsYm90dG9tOmBib3R0b20tYjZnbWx4cWAscmlnaHQ6YHJpZ2h0LXIxaXN1dmxiYCxsZWZ0OmBsZWZ0LWwxOXhudmFhYCxhbGw6YGFsbC1hd2U3a3p3YH0scVM9Yyh7YWxpZ25Db250ZW50OigpPT5GdWUsYWxpZ25JdGVtczooKT0+SXVlLGFsaWduU2VsZjooKT0+THVlLGJhY2tncm91bmQ6KCk9PnV1ZSxib3JkZXJCb3R0b21MZWZ0UmFkaXVzOigpPT5idWUsYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6KCk9Pnh1ZSxib3JkZXJCb3R0b21XaWR0aDooKT0+aHVlLGJvcmRlckNvbG9yOigpPT5kdWUsYm9yZGVyRW5kV2lkdGg6KCk9Pm11ZSxib3JkZXJSYWRpdXM6KCk9Pl91ZSxib3JkZXJTdGFydFdpZHRoOigpPT5ndWUsYm9yZGVyVG9wTGVmdFJhZGl1czooKT0+dnVlLGJvcmRlclRvcFJpZ2h0UmFkaXVzOigpPT55dWUsYm9yZGVyVG9wV2lkdGg6KCk9PnB1ZSxib3JkZXJXaWR0aDooKT0+ZnVlLGNvbG9yOigpPT5sdWUsY29sdW1uR2FwOigpPT5NdWUsZGlzcGxheTooKT0+a3VlLGR5bmFtaWM6KCk9PkpTLGVsZXZhdGlvbjooKT0+Y3VlLGZsZXhEaXJlY3Rpb246KCk9PlJ1ZSxmbGV4V3JhcDooKT0+enVlLGZvbnRGYW1pbHk6KCk9PlN1ZSxmb250U2l6ZTooKT0+Q3VlLGZvbnRXZWlnaHQ6KCk9Pnd1ZSxnYXA6KCk9Pmp1ZSxqdXN0aWZ5Q29udGVudDooKT0+UHVlLGxpbmVIZWlnaHQ6KCk9PlR1ZSxtYXJnaW46KCk9Pkp1ZSxtYXJnaW5Cb3R0b206KCk9PlF1ZSxtYXJnaW5FbmQ6KCk9PiR1ZSxtYXJnaW5TdGFydDooKT0+ZWRlLG1hcmdpblRvcDooKT0+WnVlLG1hcmdpblg6KCk9Pll1ZSxtYXJnaW5ZOigpPT5YdWUsb3ZlcmZsb3c6KCk9PkF1ZSxwYWRkaW5nOigpPT5WdWUscGFkZGluZ0JvdHRvbTooKT0+R3VlLHBhZGRpbmdFbmQ6KCk9PnF1ZSxwYWRkaW5nU3RhcnQ6KCk9Pkt1ZSxwYWRkaW5nVG9wOigpPT5XdWUscGFkZGluZ1g6KCk9Pkh1ZSxwYWRkaW5nWTooKT0+VXVlLHBvc2l0aW9uOigpPT5CdWUscm93R2FwOigpPT5OdWUsdGV4dEFsaWduOigpPT50ZGUsdGV4dERlY29yYXRpb246KCk9PkV1ZSx0ZXh0VHJhbnNmb3JtOigpPT5EdWUsdXNlclNlbGVjdDooKT0+T3VlLHZpc2liaWxpdHk6KCk9Pm5kZX0pLEpTPXt3aWR0aDpgd2lkdGgtd3M1MWV1ZmAsaGVpZ2h0OmBoZWlnaHQtaGxsdG1na2AsbWluV2lkdGg6YG1pbldpZHRoLW1xcHFvN2xgLG1pbkhlaWdodDpgbWluSGVpZ2h0LW00c2tjdDFgLG1heFdpZHRoOmBtYXhXaWR0aC1tbHF4NnZuYCxtYXhIZWlnaHQ6YG1heEhlaWdodC1tMWo1NG9pYWAsYXNwZWN0UmF0aW86YGFzcGVjdFJhdGlvLWE4NHNid2ZgLHRvcDpgdG9wLXRkZzdqaWpgLGJvdHRvbTpgYm90dG9tLWIxYmU4NmFiYCxsZWZ0OmBsZWZ0LWxtNzhqeW1gLHJpZ2h0OmByaWdodC1yNmM1MXVzYCx0cmFuc2Zvcm06YHRyYW5zZm9ybS10NDV1ajd5YCxmbGV4QmFzaXM6YGZsZXhCYXNpcy1mOTVia3BvYCxmbGV4U2hyaW5rOmBmbGV4U2hyaW5rLWYxNzRodTIyYCxmbGV4R3JvdzpgZmxleEdyb3ctZmF2OWh5bGAsZ3JpZFRlbXBsYXRlQ29sdW1uczpgZ3JpZFRlbXBsYXRlQ29sdW1ucy1nZDJ6dThnYCxncmlkVGVtcGxhdGVSb3dzOmBncmlkVGVtcGxhdGVSb3dzLWdmOXBuOHlgLGdyaWRUZW1wbGF0ZUFyZWFzOmBncmlkVGVtcGxhdGVBcmVhcy1nMW9tZzV1Z2AsZ3JpZFRlbXBsYXRlOmBncmlkVGVtcGxhdGUtZzF1ajB0bGZgLGdyaWRBdXRvQ29sdW1uczpgZ3JpZEF1dG9Db2x1bW5zLWcxZWpuNG1uYCxncmlkQXV0b1Jvd3M6YGdyaWRBdXRvUm93cy1nMWp1MDA1cmAsZ3JpZEF1dG9GbG93OmBncmlkQXV0b0Zsb3ctZzFhb3R4MWFgLGdyaWQ6YGdyaWQtZzF4cDk3dTBgLGdyaWRSb3dTdGFydDpgZ3JpZFJvd1N0YXJ0LWcxOG1pMXhvYCxncmlkQ29sdW1uU3RhcnQ6YGdyaWRDb2x1bW5TdGFydC1nMTI5dTJma2AsZ3JpZFJvd0VuZDpgZ3JpZFJvd0VuZC1nMW1qZDJxZ2AsZ3JpZENvbHVtbkVuZDpgZ3JpZENvbHVtbkVuZC1nZWdhcmJ2YCxncmlkUm93OmBncmlkUm93LWdveTV2dGNgLGdyaWRDb2x1bW46YGdyaWRDb2x1bW4tZ3djZXBmd2AsZ3JpZEFyZWE6YGdyaWRBcmVhLWcxZzN5YzdxYCxvcGFjaXR5OmBvcGFjaXR5LW8xeG5lc2hhYCx6SW5kZXg6YHpJbmRleC16MXExeGszYmB9LGN1ZT17MDpgXzAtXzg0d284cGAsMTpgXzEtXzFlaXN3YWhgLDI6YF8yLV9zMWx1bGlgfSxsdWU9e2ZnOmBmZy1mMXNvcmFnNGAsZmdJbnZlcnNlOmBmZ0ludmVyc2UtZjFzZGx3am5gLGZnTXV0ZWQ6YGZnTXV0ZWQtZnFyYXFwb2AsZmdQcmltYXJ5OmBmZ1ByaW1hcnktZjF2aWFoaWZgLGZnUG9zaXRpdmU6YGZnUG9zaXRpdmUtZmJweW9wYmAsZmdOZWdhdGl2ZTpgZmdOZWdhdGl2ZS1mMW0xdHk0dWAsZmdXYXJuaW5nOmBmZ1dhcm5pbmctZjFubTJ2c2ZgLGJnOmBiZy1iMTJnNWZjYmAsYmdBbHRlcm5hdGU6YGJnQWx0ZXJuYXRlLWI1MndiNmdgLGJnSW52ZXJzZTpgYmdJbnZlcnNlLWJ6dXIzbmJgLGJnT3ZlcmxheTpgYmdPdmVybGF5LWIxa2E2MG5qYCxiZ1ByaW1hcnk6YGJnUHJpbWFyeS1iMWFsanVvbGAsYmdQcmltYXJ5V2FzaDpgYmdQcmltYXJ5V2FzaC1iMWZ3Mjdka2AsYmdTZWNvbmRhcnk6YGJnU2Vjb25kYXJ5LWI1bDkxMThgLGJnVGVydGlhcnk6YGJnVGVydGlhcnktYmd6OHRvdWAsYmdTZWNvbmRhcnlXYXNoOmBiZ1NlY29uZGFyeVdhc2gtYjEwazUyNHVgLGJnTmVnYXRpdmU6YGJnTmVnYXRpdmUtYnQ4eTF6NGAsYmdOZWdhdGl2ZVdhc2g6YGJnTmVnYXRpdmVXYXNoLWIxcnJzeXNtYCxiZ1Bvc2l0aXZlOmBiZ1Bvc2l0aXZlLWI5aXRsdnpgLGJnUG9zaXRpdmVXYXNoOmBiZ1Bvc2l0aXZlV2FzaC1iMXBtOW40OWAsYmdXYXJuaW5nOmBiZ1dhcm5pbmctYnNzYnc2b2AsYmdXYXJuaW5nV2FzaDpgYmdXYXJuaW5nV2FzaC1iMTRsdG5lcmAsY3VycmVudENvbG9yOmBjdXJyZW50Q29sb3ItYzF1bDY3OXFgLGJnTGluZTpgYmdMaW5lLWIxdnIzMnZuYCxiZ0xpbmVJbnZlcnNlOmBiZ0xpbmVJbnZlcnNlLWIxcWExajNzYCxiZ0xpbmVIZWF2eTpgYmdMaW5lSGVhdnktYmQ5MWlvZGAsYmdMaW5lUHJpbWFyeTpgYmdMaW5lUHJpbWFyeS1iMXVndXNhdmAsYmdMaW5lUHJpbWFyeVN1YnRsZTpgYmdMaW5lUHJpbWFyeVN1YnRsZS1iNDk2b3gzYCxiZ0VsZXZhdGlvbjE6YGJnRWxldmF0aW9uMS1iMXhwdXJuYCxiZ0VsZXZhdGlvbjI6YGJnRWxldmF0aW9uMi1ibTZyZmllYCxhY2NlbnRTdWJ0bGVHcmVlbjpgYWNjZW50U3VidGxlR3JlZW4tYWY2NDFqcmAsYWNjZW50Qm9sZEdyZWVuOmBhY2NlbnRCb2xkR3JlZW4tYWpqNzFsYWAsYWNjZW50U3VidGxlQmx1ZTpgYWNjZW50U3VidGxlQmx1ZS1hbzFwMjZkYCxhY2NlbnRCb2xkQmx1ZTpgYWNjZW50Qm9sZEJsdWUtYWZ5Y2dsa2AsYWNjZW50U3VidGxlUHVycGxlOmBhY2NlbnRTdWJ0bGVQdXJwbGUtYWQ2ZHYwZ2AsYWNjZW50Qm9sZFB1cnBsZTpgYWNjZW50Qm9sZFB1cnBsZS1hMWtsbHhmbmAsYWNjZW50U3VidGxlWWVsbG93OmBhY2NlbnRTdWJ0bGVZZWxsb3ctYTFkMm1zZG9gLGFjY2VudEJvbGRZZWxsb3c6YGFjY2VudEJvbGRZZWxsb3ctYTFudHA2ajNgLGFjY2VudFN1YnRsZVJlZDpgYWNjZW50U3VidGxlUmVkLWFkMHhjZndgLGFjY2VudEJvbGRSZWQ6YGFjY2VudEJvbGRSZWQtYTE5ODZrMzVgLGFjY2VudFN1YnRsZUdyYXk6YGFjY2VudFN1YnRsZUdyYXktYWkwdmR4eGAsYWNjZW50Qm9sZEdyYXk6YGFjY2VudEJvbGRHcmF5LWExdWQ0NHVoYCx0cmFuc3BhcmVudDpgdHJhbnNwYXJlbnQtdDFoY3NieHNgfSx1dWU9e2ZnOmBmZy1mMWppNmc1NmAsZmdJbnZlcnNlOmBmZ0ludmVyc2UtZmdjMDdsZWAsZmdNdXRlZDpgZmdNdXRlZC1mMW1qc2t2MGAsZmdQcmltYXJ5OmBmZ1ByaW1hcnktZjF4ZjZxdnZgLGZnUG9zaXRpdmU6YGZnUG9zaXRpdmUtZmNxbHZkYmAsZmdOZWdhdGl2ZTpgZmdOZWdhdGl2ZS1mMTBnd2E5aGAsZmdXYXJuaW5nOmBmZ1dhcm5pbmctZndnb2R6emAsYmc6YGJnLWJwN2dnMzFgLGJnQWx0ZXJuYXRlOmBiZ0FsdGVybmF0ZS1idHh2dGdzYCxiZ0ludmVyc2U6YGJnSW52ZXJzZS1iMXQ1NmFiYmAsYmdPdmVybGF5OmBiZ092ZXJsYXktYmpub3FzZmAsYmdQcmltYXJ5OmBiZ1ByaW1hcnktYmJsbWZ6OGAsYmdQcmltYXJ5V2FzaDpgYmdQcmltYXJ5V2FzaC1iMTFlZ245b2AsYmdTZWNvbmRhcnk6YGJnU2Vjb25kYXJ5LWIxZ3JzaGJqYCxiZ1RlcnRpYXJ5OmBiZ1RlcnRpYXJ5LWIxNHllMDRsYCxiZ1NlY29uZGFyeVdhc2g6YGJnU2Vjb25kYXJ5V2FzaC1iMTZ0bmYzdWAsYmdOZWdhdGl2ZTpgYmdOZWdhdGl2ZS1iMWFmeGUzbGAsYmdOZWdhdGl2ZVdhc2g6YGJnTmVnYXRpdmVXYXNoLWJlOWl1djlgLGJnUG9zaXRpdmU6YGJnUG9zaXRpdmUtYnh0bXV6dGAsYmdQb3NpdGl2ZVdhc2g6YGJnUG9zaXRpdmVXYXNoLWJyYXI4YXNgLGJnV2FybmluZzpgYmdXYXJuaW5nLWIxN3VhaHpxYCxiZ1dhcm5pbmdXYXNoOmBiZ1dhcm5pbmdXYXNoLWIxOTBqYWp2YCxjdXJyZW50Q29sb3I6YGN1cnJlbnRDb2xvci1jMTYzaW5sMGAsYmdMaW5lOmBiZ0xpbmUtYjFhZHQ5dDZgLGJnTGluZUludmVyc2U6YGJnTGluZUludmVyc2UtYjN3cjZzNmAsYmdMaW5lSGVhdnk6YGJnTGluZUhlYXZ5LWIxdmhlenFrYCxiZ0xpbmVQcmltYXJ5OmBiZ0xpbmVQcmltYXJ5LWIxdG4xamhhYCxiZ0xpbmVQcmltYXJ5U3VidGxlOmBiZ0xpbmVQcmltYXJ5U3VidGxlLWJ6NjQ3NHVgLGJnRWxldmF0aW9uMTpgYmdFbGV2YXRpb24xLWI3OXVwdDRgLGJnRWxldmF0aW9uMjpgYmdFbGV2YXRpb24yLWIxNW9qbWdjYCxhY2NlbnRTdWJ0bGVHcmVlbjpgYWNjZW50U3VidGxlR3JlZW4tYXR6N2FmbGAsYWNjZW50Qm9sZEdyZWVuOmBhY2NlbnRCb2xkR3JlZW4tYTFwN21tcW1gLGFjY2VudFN1YnRsZUJsdWU6YGFjY2VudFN1YnRsZUJsdWUtYTFnYjdjd2dgLGFjY2VudEJvbGRCbHVlOmBhY2NlbnRCb2xkQmx1ZS1hZ2h6enA3YCxhY2NlbnRTdWJ0bGVQdXJwbGU6YGFjY2VudFN1YnRsZVB1cnBsZS1hMTByMXd4c2AsYWNjZW50Qm9sZFB1cnBsZTpgYWNjZW50Qm9sZFB1cnBsZS1hMWFlaTIycmAsYWNjZW50U3VidGxlWWVsbG93OmBhY2NlbnRTdWJ0bGVZZWxsb3ctYTE2MDd0eWAsYWNjZW50Qm9sZFllbGxvdzpgYWNjZW50Qm9sZFllbGxvdy1hMXYyc3RwYCxhY2NlbnRTdWJ0bGVSZWQ6YGFjY2VudFN1YnRsZVJlZC1hZGdrYXd0YCxhY2NlbnRCb2xkUmVkOmBhY2NlbnRCb2xkUmVkLWExb2FrM3d2YCxhY2NlbnRTdWJ0bGVHcmF5OmBhY2NlbnRTdWJ0bGVHcmF5LWExZzN4OGdpYCxhY2NlbnRCb2xkR3JheTpgYWNjZW50Qm9sZEdyYXktYTFrNDJ1amxgLHRyYW5zcGFyZW50OmB0cmFuc3BhcmVudC10MXJtazZ1aWB9LGR1ZT17Zmc6YGZnLWZwdGl1dHhgLGZnSW52ZXJzZTpgZmdJbnZlcnNlLWY5dzQwajVgLGZnTXV0ZWQ6YGZnTXV0ZWQtZjFsb2k1b2dgLGZnUHJpbWFyeTpgZmdQcmltYXJ5LWYxcXpmb2pgLGZnUG9zaXRpdmU6YGZnUG9zaXRpdmUtZmxnYnEyOWAsZmdOZWdhdGl2ZTpgZmdOZWdhdGl2ZS1mMTVrZGF5eGAsZmdXYXJuaW5nOmBmZ1dhcm5pbmctZjFseGVjdWNgLGJnOmBiZy1iOGVxNmp6YCxiZ0FsdGVybmF0ZTpgYmdBbHRlcm5hdGUtYjFqbmcxOXpgLGJnSW52ZXJzZTpgYmdJbnZlcnNlLWIxZ2hqdHozYCxiZ092ZXJsYXk6YGJnT3ZlcmxheS1iaG45ZnBrYCxiZ1ByaW1hcnk6YGJnUHJpbWFyeS1iMXBiYjBjbGAsYmdQcmltYXJ5V2FzaDpgYmdQcmltYXJ5V2FzaC1iMXRmeHN3Y2AsYmdTZWNvbmRhcnk6YGJnU2Vjb25kYXJ5LWIxazEydDNoYCxiZ1RlcnRpYXJ5OmBiZ1RlcnRpYXJ5LWJwNmQ4c21gLGJnU2Vjb25kYXJ5V2FzaDpgYmdTZWNvbmRhcnlXYXNoLWIxaHpxbW1jYCxiZ05lZ2F0aXZlOmBiZ05lZ2F0aXZlLWI5ZmN2bzhgLGJnTmVnYXRpdmVXYXNoOmBiZ05lZ2F0aXZlV2FzaC1iMndxNWQ5YCxiZ1Bvc2l0aXZlOmBiZ1Bvc2l0aXZlLWIxb3NhcDZgLGJnUG9zaXRpdmVXYXNoOmBiZ1Bvc2l0aXZlV2FzaC1iMWJqcmwwZWAsYmdXYXJuaW5nOmBiZ1dhcm5pbmctYjEyMm80dWVgLGJnV2FybmluZ1dhc2g6YGJnV2FybmluZ1dhc2gtYjE1dDAzNGJgLGN1cnJlbnRDb2xvcjpgY3VycmVudENvbG9yLWM3Y2U5ZjhgLGJnTGluZTpgYmdMaW5lLWIxa2xrNmhgLGJnTGluZUludmVyc2U6YGJnTGluZUludmVyc2UtYjFpY3Y0cWRgLGJnTGluZUhlYXZ5OmBiZ0xpbmVIZWF2eS1iMWE3YXN1emAsYmdMaW5lUHJpbWFyeTpgYmdMaW5lUHJpbWFyeS1iMXRkMnYwZmAsYmdMaW5lUHJpbWFyeVN1YnRsZTpgYmdMaW5lUHJpbWFyeVN1YnRsZS1icms4dWY2YCxiZ0VsZXZhdGlvbjE6YGJnRWxldmF0aW9uMS1iMWdxMnNodWAsYmdFbGV2YXRpb24yOmBiZ0VsZXZhdGlvbjItYjFieXp0emNgLGFjY2VudFN1YnRsZUdyZWVuOmBhY2NlbnRTdWJ0bGVHcmVlbi1hMWNxMnJzNmAsYWNjZW50Qm9sZEdyZWVuOmBhY2NlbnRCb2xkR3JlZW4tYTVwZ21oemAsYWNjZW50U3VidGxlQmx1ZTpgYWNjZW50U3VidGxlQmx1ZS1hMXkxY3FjeGAsYWNjZW50Qm9sZEJsdWU6YGFjY2VudEJvbGRCbHVlLWFqNnVraXNgLGFjY2VudFN1YnRsZVB1cnBsZTpgYWNjZW50U3VidGxlUHVycGxlLWExODMxcGQ1YCxhY2NlbnRCb2xkUHVycGxlOmBhY2NlbnRCb2xkUHVycGxlLWExZ2Y1eGl5YCxhY2NlbnRTdWJ0bGVZZWxsb3c6YGFjY2VudFN1YnRsZVllbGxvdy1hYzhtcTNpYCxhY2NlbnRCb2xkWWVsbG93OmBhY2NlbnRCb2xkWWVsbG93LWE3cmdreTZgLGFjY2VudFN1YnRsZVJlZDpgYWNjZW50U3VidGxlUmVkLWExaDB2dmRgLGFjY2VudEJvbGRSZWQ6YGFjY2VudEJvbGRSZWQtYWlteXg5bGAsYWNjZW50U3VidGxlR3JheTpgYWNjZW50U3VidGxlR3JheS1hYXM0dGl3YCxhY2NlbnRCb2xkR3JheTpgYWNjZW50Qm9sZEdyYXktYTFsczh0YmZgLHRyYW5zcGFyZW50OmB0cmFuc3BhcmVudC10MTl4bnlpN2B9LGZ1ZT17MDpgXzAtXzE5aW42MDZgLDEwMDpgXzEwMC1feDQ0Z3M0YCwyMDA6YF8yMDAtXzFwMWhpendgLDMwMDpgXzMwMC1fMW53YTRoNGAsNDAwOmBfNDAwLV80dWx4NnRgLDUwMDpgXzUwMC1fYnNjYTdkYH0scHVlPXswOmBfMC1fMTdnMjhxZWAsMTAwOmBfMTAwLV91d2VtY2xgLDIwMDpgXzIwMC1fMXc1aHVsMWAsMzAwOmBfMzAwLV9sa3hpMmVgLDQwMDpgXzQwMC1fMWp4OWM2ZGAsNTAwOmBfNTAwLV8xeHlyMHphYH0sbXVlPXswOmBfMC1fMXE2bW5obGAsMTAwOmBfMTAwLV9vczkycGVgLDIwMDpgXzIwMC1fdGlwcWI0YCwzMDA6YF8zMDAtXzF2ZWxua29gLDQwMDpgXzQwMC1fMTBrMzl1dmAsNTAwOmBfNTAwLV8xNTdtdHV0YH0saHVlPXswOmBfMC1fMjAwMWExYCwxMDA6YF8xMDAtXzFnYWl0bGZgLDIwMDpgXzIwMC1fMTlpdjYwZGAsMzAwOmBfMzAwLV8xeTNkMG1jYCw0MDA6YF80MDAtXzFkb3p0enBgLDUwMDpgXzUwMC1fMWNzaG5sdGB9LGd1ZT17MDpgXzAtX3oyOW9wNWAsMTAwOmBfMTAwLV8ya25ldGdgLDIwMDpgXzIwMC1fbDR4dHN2YCwzMDA6YF8zMDAtXzFxeDZ2OHJgLDQwMDpgXzQwMC1fcXcweHpkYCw1MDA6YF81MDAtXzFxYXZhb3ZgfSxfdWU9ezA6YF8wLV85OGIxdzZgLDEwMDpgXzEwMC1fMzd5em0zYCwyMDA6YF8yMDAtX3R2N2V0YWAsMzAwOmBfMzAwLV8xeXphNTJ2YCw0MDA6YF80MDAtXzVnZjB2cmAsNTAwOmBfNTAwLV9taWxidzJgLDYwMDpgXzYwMC1fZ3FrMHcxYCw3MDA6YF83MDAtX3FiMWg2YmAsODAwOmBfODAwLV9vd2d2aDJgLDkwMDpgXzkwMC1fMWkxbmxtemAsMWUzOmBfMTAwMC1fdHFocnI5YH0sdnVlPXswOmBfMC1fMW90NGxmMWAsMTAwOmBfMTAwLV8xa3Jkdnc2YCwyMDA6YF8yMDAtXzFpbXNnbDVgLDMwMDpgXzMwMC1fN250eHBnYCw0MDA6YF80MDAtXzFxcXUyY2AsNTAwOmBfNTAwLV8xa2g0bDI5YCw2MDA6YF82MDAtX2JxczRoMWAsNzAwOmBfNzAwLV8xNzM1aHZnYCw4MDA6YF84MDAtX3E2ZzByZGAsOTAwOmBfOTAwLV8xaXN1OHd3YCwxZTM6YF8xMDAwLV9wNG5idTJgfSx5dWU9ezA6YF8wLV8xbHJxdWdrYCwxMDA6YF8xMDAtXzFhNmM3djdgLDIwMDpgXzIwMC1fbTNnNXFjYCwzMDA6YF8zMDAtXzQwYm14Y2AsNDAwOmBfNDAwLV8xNGg5NTZhYCw1MDA6YF81MDAtX3Zwc3lzc2AsNjAwOmBfNjAwLV9uZnV0YmNgLDcwMDpgXzcwMC1fMW91MHUwcWAsODAwOmBfODAwLV9wNzN0c2JgLDkwMDpgXzkwMC1fMTA0ZXVkMmAsMWUzOmBfMTAwMC1fbnhzZHJpYH0sYnVlPXswOmBfMC1fMXlzMnZ3aWAsMTAwOmBfMTAwLV9xOGQxM2dgLDIwMDpgXzIwMC1fMTlsbXZtMWAsMzAwOmBfMzAwLV9lM2did3lgLDQwMDpgXzQwMC1faHFwMXh2YCw1MDA6YF81MDAtXzNhaWcxN2AsNjAwOmBfNjAwLV8xeXNkeHRgLDcwMDpgXzcwMC1fMXY3bTVmY2AsODAwOmBfODAwLV8xbjBwODY3YCw5MDA6YF85MDAtXzEzbThjNzNgLDFlMzpgXzEwMDAtXzFmZXpseHhgfSx4dWU9ezA6YF8wLV91dDk4ZjBgLDEwMDpgXzEwMC1fMXJnbGQydmAsMjAwOmBfMjAwLV9kaTRpcTNgLDMwMDpgXzMwMC1fMjF3aGEwYCw0MDA6YF80MDAtXzF2Zmc1OGJgLDUwMDpgXzUwMC1fMXl2ZGwzbGAsNjAwOmBfNjAwLV8xcnJieTloYCw3MDA6YF83MDAtXzE0MW5ldjZgLDgwMDpgXzgwMC1fMWR2N3dsNmAsOTAwOmBfOTAwLV8xZGdiNjFuYCwxZTM6YF8xMDAwLV8xc2U0eDdsYH0sU3VlPXtpbmhlcml0OmBpbmhlcml0LWk4Y2Vram5gLGRpc3BsYXkxOmBkaXNwbGF5MS1kem9qbHA2YCxkaXNwbGF5MjpgZGlzcGxheTItZDNmeXd1aWAsZGlzcGxheTM6YGRpc3BsYXkzLWR0ampweGJgLHRpdGxlMTpgdGl0bGUxLXR0amVnanFgLHRpdGxlMjpgdGl0bGUyLXRwc2Z6cHlgLHRpdGxlMzpgdGl0bGUzLXQxcHQ0b3NoYCx0aXRsZTQ6YHRpdGxlNC10MTNrZnQzcmAsaGVhZGxpbmU6YGhlYWRsaW5lLWgxNXUwd2UwYCxib2R5OmBib2R5LWIxNGE4ZWdkYCxsYWJlbDE6YGxhYmVsMS1sczR1OXgwYCxsYWJlbDI6YGxhYmVsMi1sMTBtazV4eGAsY2FwdGlvbjpgY2FwdGlvbi1jMWl4aDEyMmAsbGVnYWw6YGxlZ2FsLWwxcmxwZHJqYH0sQ3VlPXtpbmhlcml0OmBpbmhlcml0LWk1eWZ3anVgLGRpc3BsYXkxOmBkaXNwbGF5MS1kMTc4OTJzcWAsZGlzcGxheTI6YGRpc3BsYXkyLWQxZmtjMjNkYCxkaXNwbGF5MzpgZGlzcGxheTMtZGwyOTJvcGAsdGl0bGUxOmB0aXRsZTEtdDFhOHNjY2NgLHRpdGxlMjpgdGl0bGUyLXQ3ZTA2MTlgLHRpdGxlMzpgdGl0bGUzLXQxbzEzOTg0YCx0aXRsZTQ6YHRpdGxlNC10bTk0eGVrYCxoZWFkbGluZTpgaGVhZGxpbmUtaDFjejE4NHlgLGJvZHk6YGJvZHktYjEyaXBzOWtgLGxhYmVsMTpgbGFiZWwxLWxmNDJlcmpgLGxhYmVsMjpgbGFiZWwyLWwxZ2xyc21tYCxjYXB0aW9uOmBjYXB0aW9uLWNpNHhhZ2hgLGxlZ2FsOmBsZWdhbC1sMXYybHhzYmB9LHd1ZT17aW5oZXJpdDpgaW5oZXJpdC1pMTlqZDg2bmAsZGlzcGxheTE6YGRpc3BsYXkxLWQxdDlzN3dqYCxkaXNwbGF5MjpgZGlzcGxheTItZG1haHE3ZGAsZGlzcGxheTM6YGRpc3BsYXkzLWQxODJmMmN3YCx0aXRsZTE6YHRpdGxlMS10Mmg3ZGMzYCx0aXRsZTI6YHRpdGxlMi10dG1jc3J3YCx0aXRsZTM6YHRpdGxlMy10MW4ybjFicGAsdGl0bGU0OmB0aXRsZTQtdHV0d3NoemAsaGVhZGxpbmU6YGhlYWRsaW5lLWgxYXhlNjhoYCxib2R5OmBib2R5LWIxbXFjZzVyYCxsYWJlbDE6YGxhYmVsMS1sdXZqNTIyYCxsYWJlbDI6YGxhYmVsMi1sMWZ6ZTgyOGAsY2FwdGlvbjpgY2FwdGlvbi1jMXRyNm8xcWAsbGVnYWw6YGxlZ2FsLWwxc3UybW85YH0sVHVlPXtpbmhlcml0OmBpbmhlcml0LWkxcTJ6bTRuYCxkaXNwbGF5MTpgZGlzcGxheTEtZGF2YXhrOGAsZGlzcGxheTI6YGRpc3BsYXkyLWQxMGJjYmVjYCxkaXNwbGF5MzpgZGlzcGxheTMtZHp4NWc1OWAsdGl0bGUxOmB0aXRsZTEtdDE5dWxvem5gLHRpdGxlMjpgdGl0bGUyLXQ4eG13d2dgLHRpdGxlMzpgdGl0bGUzLXQxaG5xOXczYCx0aXRsZTQ6YHRpdGxlNC10MWp1cHN5bmAsaGVhZGxpbmU6YGhlYWRsaW5lLWgxZDh4aDN3YCxib2R5OmBib2R5LWIxYjYxcTN5YCxsYWJlbDE6YGxhYmVsMS1sanQxZ2pwYCxsYWJlbDI6YGxhYmVsMi1sNjRuMThvYCxjYXB0aW9uOmBjYXB0aW9uLWMxbmMycW5wYCxsZWdhbDpgbGVnYWwtbDlvbWI0NGB9LEV1ZT17bm9uZTpgbm9uZS1uZzdrcmVkYCx1bmRlcmxpbmU6YHVuZGVybGluZS11eHdsN3FsYCxvdmVybGluZTpgb3ZlcmxpbmUtbzFsNjgzNmVgLCJsaW5lLXRocm91Z2giOmBsaW5lLXRocm91Z2gtbDFrdmx0NjhgLCJ1bmRlcmxpbmUgb3ZlcmxpbmUiOmB1bmRlcmxpbmVfb3ZlcmxpbmUtdWwyaTF2M2AsInVuZGVybGluZSBkb3VibGUiOmB1bmRlcmxpbmVfZG91YmxlLXV5Z3kyczRgfSxEdWU9e25vbmU6YG5vbmUtbjE3aHA1OTlgLHVwcGVyY2FzZTpgdXBwZXJjYXNlLXUxbzdzMDA5YCxsb3dlcmNhc2U6YGxvd2VyY2FzZS1sMXA1cG0zY2AsY2FwaXRhbGl6ZTpgY2FwaXRhbGl6ZS1jMXV6ZGM2MGB9LE91ZT17bm9uZTpgbm9uZS1uMjBxMzZiYCx0ZXh0OmB0ZXh0LXQxbWgwdmJmYCxhbGw6YGFsbC1hMW5iNXNuN2AsYXV0bzpgYXV0by1hMW9ucmk4YWB9LGt1ZT17bm9uZTpgbm9uZS1ueHMzYmtrYCxibG9jazpgYmxvY2stYnZtYmZsamAsaW5saW5lOmBpbmxpbmUtaTFkNXh0MmdgLCJpbmxpbmUtYmxvY2siOmBpbmxpbmUtYmxvY2staTF3OGFmbzlgLGZsZXg6YGZsZXgtZmY1cmZ5NmAsImlubGluZS1mbGV4IjpgaW5saW5lLWZsZXgtaTZjeng4YCxncmlkOmBncmlkLWdvdnZ2cGZgLCJpbmxpbmUtZ3JpZCI6YGlubGluZS1ncmlkLWkxMXkwYXNuYCxjb250ZW50czpgY29udGVudHMtYzEzajBncGhgLCJmbG93LXJvb3QiOmBmbG93LXJvb3QtZjFmM2Y0cmVgLHJldmVydDpgcmV2ZXJ0LXIxdWdvOXRxYCwibGlzdC1pdGVtIjpgbGlzdC1pdGVtLWwxd3lhN3ZkYH0sQXVlPXthdXRvOmBhdXRvLWExdnRiZzl3YCx2aXNpYmxlOmB2aXNpYmxlLXYxY2U3dHptYCxoaWRkZW46YGhpZGRlbi1oMTQ3anVub2AsY2xpcDpgY2xpcC1jMXVpam9yOWAsc2Nyb2xsOmBzY3JvbGwtczFjeHhpa3pgfSxqdWU9ezA6YF8wLV9ndWxjcWdgLCIwLjI1IjpgXzBfMjUtX3E3eW94OWAsIjAuNSI6YF8wXzUtXzFmeDdtMG9gLCIwLjc1IjpgXzBfNzUtXzFua3hwYXVgLDE6YF8xLV80d2Y2NmAsIjEuNSI6YF8xXzUtXzFxYW1qdnJgLDI6YF8yLV9zM3MzdnhgLDM6YF8zLV8xZDJxZmY1YCw0OmBfNC1fdXdqd2UxYCw1OmBfNS1fNDN3ZGtyYCw2OmBfNi1fYmthaXFjYCw3OmBfNy1fcHNjbWo0YCw4OmBfOC1fZ3E1c2NkYCw5OmBfOS1fNjVjYTIzYCwxMDpgXzEwLV8xcHF5eDNxYH0sTXVlPXswOmBfMC1fMXhqZDJ4eWAsIjAuMjUiOmBfMF8yNS1fdGE1ZGJkYCwiMC41IjpgXzBfNS1fMWI1cGx3bWAsIjAuNzUiOmBfMF83NS1fcXkxNjIwYCwxOmBfMS1fMXNmb3cxM2AsIjEuNSI6YF8xXzUtX3owamEyOWAsMjpgXzItX3c2bHh6a2AsMzpgXzMtXzFvN3V4N2ZgLDQ6YF80LV9oOHF2cTFgLDU6YF81LV8xN3gycG5mYCw2OmBfNi1fenV3cWJkYCw3OmBfNy1fOWxjazNsYCw4OmBfOC1fOHUxaGlzYCw5OmBfOS1fanI1YTZjYCwxMDpgXzEwLV9lZmwzc29gfSxOdWU9ezA6YF8wLV94aXJ5OXVgLCIwLjI1IjpgXzBfMjUtXzE4M2pranZgLCIwLjUiOmBfMF81LV9xZzBmNm1gLCIwLjc1IjpgXzBfNzUtX25jMmc1NGAsMTpgXzEtXzF1ZDViOWxgLCIxLjUiOmBfMV81LV9ycTA5NG9gLDI6YF8yLV9udTNoNW1gLDM6YF8zLV9tZHB3azBgLDQ6YF80LV9objdneGAsNTpgXzUtXzFpYXYyNWpgLDY6YF82LV9wcXVmZTBgLDc6YF83LV8xNzZvanNpYCw4OmBfOC1fMTFuOHEwbWAsOTpgXzktXzF1bmdueWdgLDEwOmBfMTAtXzFwc2tpdHZgfSxQdWU9e25vcm1hbDpgbm9ybWFsLW5mdGJqczZgLGNlbnRlcjpgY2VudGVyLWNqcHVqY2RgLHN0YXJ0OmBzdGFydC1zMWwyaHZ6M2AsZW5kOmBlbmQtZTF4b2c2ZjJgLCJmbGV4LXN0YXJ0IjpgZmxleC1zdGFydC1mMWVnZ2hna2AsImZsZXgtZW5kIjpgZmxleC1lbmQtZmF4NzhzcWAsbGVmdDpgbGVmdC1scmZtbXIwYCxyaWdodDpgcmlnaHQtcjFmeDl4a2ZgLCJzcGFjZS1iZXR3ZWVuIjpgc3BhY2UtYmV0d2Vlbi1zMTlnb2ZvNGAsInNwYWNlLWFyb3VuZCI6YHNwYWNlLWFyb3VuZC1zcXQ1a21xYCwic3BhY2UtZXZlbmx5Ijpgc3BhY2UtZXZlbmx5LXMxdnFud3YxYCxzdHJldGNoOmBzdHJldGNoLXMxMHhwNTBmYH0sRnVlPXtub3JtYWw6YG5vcm1hbC1uMXdtaTYxdWAsY2VudGVyOmBjZW50ZXItY253bmxiN2Asc3RhcnQ6YHN0YXJ0LXMxZDVsZmF1YCxlbmQ6YGVuZC1lNXlzejdqYCwiZmxleC1zdGFydCI6YGZsZXgtc3RhcnQtZmowZ2JqMmAsImZsZXgtZW5kIjpgZmxleC1lbmQtZjFyM2J4aWhgLCJzcGFjZS1iZXR3ZWVuIjpgc3BhY2UtYmV0d2Vlbi1zcGVzMWI4YCwic3BhY2UtYXJvdW5kIjpgc3BhY2UtYXJvdW5kLXM3d2kzejFgLCJzcGFjZS1ldmVubHkiOmBzcGFjZS1ldmVubHktczF4bGh0M3BgLHN0cmV0Y2g6YHN0cmV0Y2gtc3hycmt6aWAsYmFzZWxpbmU6YGJhc2VsaW5lLWI0cWI1cXlgLCJmaXJzdCBiYXNlbGluZSI6YGZpcnN0X2Jhc2VsaW5lLWZmd2VtenZgLCJsYXN0IGJhc2VsaW5lIjpgbGFzdF9iYXNlbGluZS1sOGt6YnpxYH0sSXVlPXtub3JtYWw6YG5vcm1hbC1udW53c3RsYCxjZW50ZXI6YGNlbnRlci1jYzFiYWZ3YCxzdGFydDpgc3RhcnQtczFzaXY4MXlgLGVuZDpgZW5kLWUxeXg0MDV3YCwiZmxleC1zdGFydCI6YGZsZXgtc3RhcnQtZmFpMnVmYWAsImZsZXgtZW5kIjpgZmxleC1lbmQtZnRxZmR0ZmAsInNlbGYtc3RhcnQiOmBzZWxmLXN0YXJ0LXMxZGFzM2J4YCwic2VsZi1lbmQiOmBzZWxmLWVuZC1zYzFmbjJ1YCxzdHJldGNoOmBzdHJldGNoLXNhMWRwajBgLGJhc2VsaW5lOmBiYXNlbGluZS1iMWJweXhlbmAsImZpcnN0IGJhc2VsaW5lIjpgZmlyc3RfYmFzZWxpbmUtZjF0MTRsdmhgLCJsYXN0IGJhc2VsaW5lIjpgbGFzdF9iYXNlbGluZS1sdmR5YnFrYH0sTHVlPXthdXRvOmBhdXRvLWExdmdodmxqYCxub3JtYWw6YG5vcm1hbC1uMTN4a3Q2aWAsY2VudGVyOmBjZW50ZXItYzFsbGE4ZXJgLHN0YXJ0OmBzdGFydC1zMTR4Z3RrMmAsZW5kOmBlbmQtZXRnOWFndmAsImZsZXgtc3RhcnQiOmBmbGV4LXN0YXJ0LWZpM21meHpgLCJmbGV4LWVuZCI6YGZsZXgtZW5kLWY1bWJ5eGFgLCJzZWxmLXN0YXJ0Ijpgc2VsZi1zdGFydC1zYmN2NTRoYCwic2VsZi1lbmQiOmBzZWxmLWVuZC1zOTUxcmlqYCxzdHJldGNoOmBzdHJldGNoLXMxNXpmZmxqYCxiYXNlbGluZTpgYmFzZWxpbmUtYmgzYjFtMGAsImZpcnN0IGJhc2VsaW5lIjpgZmlyc3RfYmFzZWxpbmUtZjE3MTduamdgLCJsYXN0IGJhc2VsaW5lIjpgbGFzdF9iYXNlbGluZS1sZTZtaHp3YH0sUnVlPXtyb3c6YHJvdy1yMWZqdjJjMGAsInJvdy1yZXZlcnNlIjpgcm93LXJldmVyc2UtcnU2eDhkcWAsY29sdW1uOmBjb2x1bW4tYzFmazZhb2hgLCJjb2x1bW4tcmV2ZXJzZSI6YGNvbHVtbi1yZXZlcnNlLWNiZWR2eXZgfSx6dWU9e25vd3JhcDpgbm93cmFwLW4xZTB2MjBnYCx3cmFwOmB3cmFwLXdnNnB5c3RgLCJ3cmFwLXJldmVyc2UiOmB3cmFwLXJldmVyc2UtdzFnajQ5aHBgfSxCdWU9e3N0YXRpYzpgc3RhdGljLXN0eTEzdzNgLHJlbGF0aXZlOmByZWxhdGl2ZS1ybWRrNGlvYCxhYnNvbHV0ZTpgYWJzb2x1dGUtYTVxd2Joa2AsZml4ZWQ6YGZpeGVkLWZzZW1qZHdgLHN0aWNreTpgc3RpY2t5LXN1aWJtYXlgfSxWdWU9ezA6YF8wLV9zaWtneDZgLCIwLjI1IjpgXzBfMjUtXzFob3RvM2ZgLCIwLjUiOmBfMF81LV91dGpiYjRgLCIwLjc1IjpgXzBfNzUtXzF2cW1oNjRgLDE6YF8xLV8xb2h4dWp1YCwiMS41IjpgXzFfNS1fMTVpaTg5d2AsMjpgXzItXzE1aXptb2dgLDM6YF8zLV9teDV2OHpgLDQ6YF80LV9yYjFnYTVgLDU6YF81LV8xajl6NDB2YCw2OmBfNi1fa3NwMjA1YCw3OmBfNy1fMW04Yjlsa2AsODpgXzgtXzF2c2N2MHZgLDk6YF85LV9oN3Q1dHNgLDEwOmBfMTAtXzFmc2Y4ZnJgfSxIdWU9ezA6YF8wLV8xMWQ5b25tYCwiMC4yNSI6YF8wXzI1LV81bmthdjRgLCIwLjUiOmBfMF81LV8xNHBnNXduYCwiMC43NSI6YF8wXzc1LV85OHZ0b3BgLDE6YF8xLV8xYzVjY2huYCwiMS41IjpgXzFfNS1femw0YjE1YCwyOmBfMi1fMWQ1NnZrM2AsMzpgXzMtX2luMXkwa2AsNDpgXzQtX3NtN3JhdWAsNTpgXzUtX3FyYzVrNmAsNjpgXzYtXzFuaGE0N3lgLDc6YF83LV9yMnNmam1gLDg6YF84LV8xNjI5NDI1YCw5OmBfOS1fam4xZmRjYCwxMDpgXzEwLV8xcWQ5Z3dxYH0sVXVlPXswOmBfMC1fMW82YjVzZmAsIjAuMjUiOmBfMF8yNS1fbTNuZzBkYCwiMC41IjpgXzBfNS1fbnl2YmZgLCIwLjc1IjpgXzBfNzUtX2RtcnV4a2AsMTpgXzEtX2o5ajkxeWAsIjEuNSI6YF8xXzUtXzF2MmF4ZXpgLDI6YF8yLV8xdWJ2d2Q5YCwzOmBfMy1fb3lkb2tgLDQ6YF80LV9ldnZ6b2pgLDU6YF81LV9xMXlyc2NgLDY6YF82LV9vdXNwZXlgLDc6YF83LV8xMm41eXVtYCw4OmBfOC1feHJ1NjllYCw5OmBfOS1fbnNyaXN6YCwxMDpgXzEwLV8xeGE2cmhjYH0sV3VlPXswOmBfMC1fMXhsajhmbmAsIjAuMjUiOmBfMF8yNS1fODE0ZjRtYCwiMC41IjpgXzBfNS1fNjRpaWMyYCwiMC43NSI6YF8wXzc1LV8xa2I3bm80YCwxOmBfMS1fMXJ2eW9kZ2AsIjEuNSI6YF8xXzUtX29lcmdqMGAsMjpgXzItXzE5czZrNTNgLDM6YF8zLV8xdnMweDk3YCw0OmBfNC1feXl3czFhYCw1OmBfNS1fODYwbTE5YCw2OmBfNi1fMWpyeHppcmAsNzpgXzctXzF5ejVxYjRgLDg6YF84LV9ta2UwMXNgLDk6YF85LV8xdTJ3ZXZ3YCwxMDpgXzEwLV8xYzRoMXVuYH0sR3VlPXswOmBfMC1fMXVjeWZjY2AsIjAuMjUiOmBfMF8yNS1fd21zdGNkYCwiMC41IjpgXzBfNS1fdW9qajM0YCwiMC43NSI6YF8wXzc1LV9qZjEzYTNgLDE6YF8xLV93NnZ1ZjlgLCIxLjUiOmBfMV81LV8xZGNlbTAyYCwyOmBfMi1fdTN0eWFmYCwzOmBfMy1fMWp1ZnlkZ2AsNDpgXzQtXzFzMXR1bnBgLDU6YF81LV9nZWE1cWlgLDY6YF82LV9laGljcHZgLDc6YF83LV8xajY4aTAxYCw4OmBfOC1fZzZneHB1YCw5OmBfOS1fZnEyamliYCwxMDpgXzEwLV8xam5lMXl2YH0sS3VlPXswOmBfMC1fMWtxMjRqdmAsIjAuMjUiOmBfMF8yNS1fZ2UzeHc5YCwiMC41IjpgXzBfNS1fcGVqcHp3YCwiMC43NSI6YF8wXzc1LV9keXB6Z3FgLDE6YF8xLV8xdTRoMXEzYCwiMS41IjpgXzFfNS1fMXdkYTViZGAsMjpgXzItXzEwM3FhNzhgLDM6YF8zLV9zbTQ3dGJgLDQ6YF80LV95cGtlcGpgLDU6YF81LV9xd2ozaW5gLDY6YF82LV92MWdiZXhgLDc6YF83LV8xdDJvbzIzYCw4OmBfOC1fcHl4MjEwYCw5OmBfOS1fb3RlM2JwYCwxMDpgXzEwLV8xcjk1YWJtYH0scXVlPXswOmBfMC1fdmJ6M3dhYCwiMC4yNSI6YF8wXzI1LV81NTZqcWxgLCIwLjUiOmBfMF81LV8xYTZ2aXp0YCwiMC43NSI6YF8wXzc1LV9jMW90eGtgLDE6YF8xLV8xbjU3c2pzYCwiMS41IjpgXzFfNS1fc3J3eWxoYCwyOmBfMi1faDJsZXl5YCwzOmBfMy1feHd3ZDViYCw0OmBfNC1fMTQ2NnY5bWAsNTpgXzUtX2E2bWFuOWAsNjpgXzYtXzE2czR3MWRgLDc6YF83LV9tYTA1bXNgLDg6YF84LV82NWVvOHhgLDk6YF85LV9hdzl0OGJgLDEwOmBfMTAtXzR4c2wzZmB9LEp1ZT17MDpgXzAtXzFkdDdnYnBgLCItMC4yNSI6YF8tMF8yNS0tMWVmaDlnaGAsIi0wLjUiOmBfLTBfNS0tMThmNXo0YCwiLTAuNzUiOmBfLTBfNzUtLTF1OXMwdDhgLCItMSI6YF8tMS0tNGtwMGE5YCwiLTEuNSI6YF8tMV81LS1meTJkNmZgLCItMiI6YF8tMi0tbno5eDF0YCwiLTMiOmBfLTMtLTFsZTgwOG9gLCItNCI6YF8tNC0tNnB6NWttYCwiLTUiOmBfLTUtLWVocm5sZ2AsIi02IjpgXy02LS0xZDk4OGZ3YCwiLTciOmBfLTctLTE0dnRhYmVgLCItOCI6YF8tOC0tczFqdGV2YCwiLTkiOmBfLTktLWtleG1mcmAsIi0xMCI6YF8tMTAtLWllZzBpOGB9LFl1ZT17MDpgXzAtXzEyZnBkNGZgLCItMC4yNSI6YF8tMF8yNS0ta2JqanZlYCwiLTAuNSI6YF8tMF81LS0xbDVtbGc1YCwiLTAuNzUiOmBfLTBfNzUtLTEzYTAzeXJgLCItMSI6YF8tMS0tMW1sdWEyOWAsIi0xLjUiOmBfLTFfNS0tMXZtZTVwOWAsIi0yIjpgXy0yLS0xN3pqeGNrYCwiLTMiOmBfLTMtLTFyNmhpNjRgLCItNCI6YF8tNC0tMWc2dmwzMmAsIi01IjpgXy01LS0xcjdkYnFqYCwiLTYiOmBfLTYtLW13NGltM2AsIi03IjpgXy03LS15d2o4MTdgLCItOCI6YF8tOC0tMXJjNmxzdmAsIi05IjpgXy05LS1ld3YzZXZgLCItMTAiOmBfLTEwLS0ydDNnaGtgfSxYdWU9ezA6YF8wLV8xeXFzc2VrYCwiLTAuMjUiOmBfLTBfMjUtLTFyNjdvY3VgLCItMC41IjpgXy0wXzUtLTk1d2Y1a2AsIi0wLjc1IjpgXy0wXzc1LS0xdDIwOWd4YCwiLTEiOmBfLTEtLTEzM2t5cGFgLCItMS41IjpgXy0xXzUtLXh5eW9xcWAsIi0yIjpgXy0yLS1wN20xaWxgLCItMyI6YF8tMy0tMWd6NW90bGAsIi00IjpgXy00LS15NTZyNzZgLCItNSI6YF8tNS0tbjBreDg2YCwiLTYiOmBfLTYtLTU5N3I0ZGAsIi03IjpgXy03LS0xZjh3cWxiYCwiLTgiOmBfLTgtLTEzZWNuYzBgLCItOSI6YF8tOS0tY3Z5NG9mYCwiLTEwIjpgXy0xMC0tNHp3N2JtYH0sWnVlPXswOmBfMC1fdWU5bzNmYCwiLTAuMjUiOmBfLTBfMjUtLWVpa3RnZmAsIi0wLjUiOmBfLTBfNS0taXVhM3ptYCwiLTAuNzUiOmBfLTBfNzUtLTFkNmo4cGxgLCItMSI6YF8tMS0tMWN1azgwbWAsIi0xLjUiOmBfLTFfNS0tMWx6cno2ZGAsIi0yIjpgXy0yLS1pdGc0aXZgLCItMyI6YF8tMy0taGkwam50YCwiLTQiOmBfLTQtLTFoZzRnb25gLCItNSI6YF8tNS0taXVjOXNqYCwiLTYiOmBfLTYtLXVyamI3aWAsIi03IjpgXy03LS0xNHZwaW03YCwiLTgiOmBfLTgtLWRhYzZnemAsIi05IjpgXy05LS0xNDVnbGtrYCwiLTEwIjpgXy0xMC0taXB5Y3NrYH0sUXVlPXswOmBfMC1fMWxsbGwxYWAsIi0wLjI1IjpgXy0wXzI1LS1xMXVuNDhgLCItMC41IjpgXy0wXzUtLXY2ZW16a2AsIi0wLjc1IjpgXy0wXzc1LS0xOTlkZ3VkYCwiLTEiOmBfLTEtLTFhczN5ZmAsIi0xLjUiOmBfLTFfNS0tZ2RscHgxYCwiLTIiOmBfLTItLTFiMXBmM3JgLCItMyI6YF8tMy0tcHdiaTJtYCwiLTQiOmBfLTQtLTFkYzF0aDVgLCItNSI6YF8tNS0tMTF3NTRpamAsIi02IjpgXy02LS1zeWF3dWdgLCItNyI6YF8tNy0tMTFwZG5lZGAsIi04IjpgXy04LS0xcmNxb2VjYCwiLTkiOmBfLTktLTExcmFkcGJgLCItMTAiOmBfLTEwLS0xcm5nYm9yYH0sJHVlPXswOmBfMC1fNnhieHE0YCwiLTAuMjUiOmBfLTBfMjUtLXR5M2ppZ2AsIi0wLjUiOmBfLTBfNS0tNWxidGdtYCwiLTAuNzUiOmBfLTBfNzUtLTFrN240N2hgLCItMSI6YF8tMS0teTZwZTRuYCwiLTEuNSI6YF8tMV81LS0xN3A1ampxYCwiLTIiOmBfLTItLTFmYm1tdnhgLCItMyI6YF8tMy0tanZ6MWlmYCwiLTQiOmBfLTQtLTFsMHdqZmdgLCItNSI6YF8tNS0tbHFleXM4YCwiLTYiOmBfLTYtLXFhNXA5eWAsIi03IjpgXy03LS0xMGMxdGV6YCwiLTgiOmBfLTgtLTFtaW1lMDBgLCItOSI6YF8tOS0tMW9xbnJmcWAsIi0xMCI6YF8tMTAtLTE5b21razFgfSxlZGU9ezA6YF8wLV9xOTkxZXRgLCItMC4yNSI6YF8tMF8yNS0tdHcxNjR4YCwiLTAuNSI6YF8tMF81LS13NWZmbWhgLCItMC43NSI6YF8tMF83NS0tbTU2cng4YCwiLTEiOmBfLTEtLXp6OWo2ZGAsIi0xLjUiOmBfLTFfNS0tMWNjd3k3dWAsIi0yIjpgXy0yLS12eTR6NGRgLCItMyI6YF8tMy0tMWljMnlvZmAsIi00IjpgXy00LS0xZm96OHp4YCwiLTUiOmBfLTUtLTFsamplMTFgLCItNiI6YF8tNi0tdDYzeGZ2YCwiLTciOmBfLTctLTE2N2txZG1gLCItOCI6YF8tOC0tcm90M2pmYCwiLTkiOmBfLTktLTF4eXQ0ZmxgLCItMTAiOmBfLTEwLS0xdmZjazl1YH0sdGRlPXtzdGFydDpgc3RhcnQtc3pnOW9lcWAsZW5kOmBlbmQtZTFkOWQyZ3ZgLGNlbnRlcjpgY2VudGVyLWNmejk3ajlgLGp1c3RpZnk6YGp1c3RpZnktajF3YmFjY2RgfSxuZGU9e2hpZGRlbjpgaGlkZGVuLWgxM2Y3cWZwYCx2aXNpYmxlOmB2aXNpYmxlLXZvdjNqajNgfSxZUz17cGhvbmU6MCxwaG9uZUxhbmRzY2FwZTo1NjAsdGFibGV0Ojc2OCx0YWJsZXRMYW5kc2NhcGU6MTAyNCxkZXNrdG9wOjEyODAsZGVza3RvcExhcmdlOjE0NDAsZXh0cmFXaWRlOjE2MDB9LFhTPXtwaG9uZTpgKG1heC13aWR0aDogNzY3cHgpYCxwaG9uZVBvcnRyYWl0OmAobWF4LXdpZHRoOiA1NTlweClgLHBob25lTGFuZHNjYXBlOmAobWluLXdpZHRoOiA1NjBweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KWAsdGFibGV0OmAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEyNzlweClgLHRhYmxldFBvcnRyYWl0OmAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweClgLHRhYmxldExhbmRzY2FwZTpgKG1pbi13aWR0aDogMTAyNHB4KSBhbmQgKG1heC13aWR0aDogMTI3OXB4KWAsZGVza3RvcDpgKG1pbi13aWR0aDogMTI4MHB4KWAsZGVza3RvcFNtYWxsOmAobWluLXdpZHRoOiAxMjgwcHgpIGFuZCAobWF4LXdpZHRoOiAxNDM5cHgpYCxkZXNrdG9wTGFyZ2U6YChtaW4td2lkdGg6IDE0NDBweCkgYW5kIChtYXgtd2lkdGg6IDE1OTlweClgLGV4dHJhV2lkZTpgKG1pbi13aWR0aDogMTYwMHB4KWB9LHJkZT1jKHthbGlnbkNvbnRlbnQ6KCk9PmpkZSxhbGlnbkl0ZW1zOigpPT5NZGUsYWxpZ25TZWxmOigpPT5OZGUsYmFja2dyb3VuZDooKT0+b2RlLGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6KCk9PmdkZSxib3JkZXJCb3R0b21SaWdodFJhZGl1czooKT0+X2RlLGJvcmRlckJvdHRvbVdpZHRoOigpPT5kZGUsYm9yZGVyQ29sb3I6KCk9PnNkZSxib3JkZXJFbmRXaWR0aDooKT0+dWRlLGJvcmRlclJhZGl1czooKT0+cGRlLGJvcmRlclN0YXJ0V2lkdGg6KCk9PmZkZSxib3JkZXJUb3BMZWZ0UmFkaXVzOigpPT5tZGUsYm9yZGVyVG9wUmlnaHRSYWRpdXM6KCk9PmhkZSxib3JkZXJUb3BXaWR0aDooKT0+bGRlLGJvcmRlcldpZHRoOigpPT5jZGUsY29sb3I6KCk9PmFkZSxjb2x1bW5HYXA6KCk9Pk9kZSxkaXNwbGF5OigpPT5UZGUsZHluYW1pYzooKT0+WlMsZWxldmF0aW9uOigpPT5pZGUsZmxleERpcmVjdGlvbjooKT0+UGRlLGZsZXhXcmFwOigpPT5GZGUsZm9udEZhbWlseTooKT0+dmRlLGZvbnRTaXplOigpPT55ZGUsZm9udFdlaWdodDooKT0+YmRlLGdhcDooKT0+RGRlLGp1c3RpZnlDb250ZW50OigpPT5BZGUsbGluZUhlaWdodDooKT0+eGRlLG1hcmdpbjooKT0+V2RlLG1hcmdpbkJvdHRvbTooKT0+SmRlLG1hcmdpbkVuZDooKT0+WWRlLG1hcmdpblN0YXJ0OigpPT5YZGUsbWFyZ2luVG9wOigpPT5xZGUsbWFyZ2luWDooKT0+R2RlLG1hcmdpblk6KCk9PktkZSxvdmVyZmxvdzooKT0+RWRlLHBhZGRpbmc6KCk9PkxkZSxwYWRkaW5nQm90dG9tOigpPT5WZGUscGFkZGluZ0VuZDooKT0+VWRlLHBhZGRpbmdTdGFydDooKT0+SGRlLHBhZGRpbmdUb3A6KCk9PkJkZSxwYWRkaW5nWDooKT0+UmRlLHBhZGRpbmdZOigpPT56ZGUscG9zaXRpb246KCk9PklkZSxyb3dHYXA6KCk9PmtkZSx0ZXh0QWxpZ246KCk9PlpkZSx0ZXh0RGVjb3JhdGlvbjooKT0+U2RlLHRleHRUcmFuc2Zvcm06KCk9PkNkZSx1c2VyU2VsZWN0OigpPT53ZGUsdmlzaWJpbGl0eTooKT0+UWRlfSksWlM9e3dpZHRoOmB3aWR0aC13N2Q0NWJnYCxoZWlnaHQ6YGhlaWdodC1oOTg4eHc0YCxtaW5XaWR0aDpgbWluV2lkdGgtbTE5Ym51cm5gLG1pbkhlaWdodDpgbWluSGVpZ2h0LW1lMnB6anRgLG1heFdpZHRoOmBtYXhXaWR0aC1tMW9jamIzMmAsbWF4SGVpZ2h0OmBtYXhIZWlnaHQtbTdxaHZkeWAsYXNwZWN0UmF0aW86YGFzcGVjdFJhdGlvLWFydXI1NnNgLHRvcDpgdG9wLXQxbDJ2N29mYCxib3R0b206YGJvdHRvbS1iZzV3dzlwYCxsZWZ0OmBsZWZ0LWwxeWwyaXkxYCxyaWdodDpgcmlnaHQtcjFrZTFzY2ZgLHRyYW5zZm9ybTpgdHJhbnNmb3JtLXRidHQ3aDFgLGZsZXhCYXNpczpgZmxleEJhc2lzLWY4YTJ4aTlgLGZsZXhTaHJpbms6YGZsZXhTaHJpbmstZjF5dzB1cWZgLGZsZXhHcm93OmBmbGV4R3Jvdy1mZGVibWFjYCxncmlkVGVtcGxhdGVDb2x1bW5zOmBncmlkVGVtcGxhdGVDb2x1bW5zLWcxZ2o0MjdzYCxncmlkVGVtcGxhdGVSb3dzOmBncmlkVGVtcGxhdGVSb3dzLWdoNmdhaDlgLGdyaWRUZW1wbGF0ZUFyZWFzOmBncmlkVGVtcGxhdGVBcmVhcy1nNWx6c2FoYCxncmlkVGVtcGxhdGU6YGdyaWRUZW1wbGF0ZS1nMW1ueDVpcWAsZ3JpZEF1dG9Db2x1bW5zOmBncmlkQXV0b0NvbHVtbnMtZ3A1MnA1a2AsZ3JpZEF1dG9Sb3dzOmBncmlkQXV0b1Jvd3MtZzFzd3gxdG9gLGdyaWRBdXRvRmxvdzpgZ3JpZEF1dG9GbG93LWdzdWI0bzhgLGdyaWQ6YGdyaWQtZzN4b3hxZmAsZ3JpZFJvd1N0YXJ0OmBncmlkUm93U3RhcnQtZzFpY3VibmxgLGdyaWRDb2x1bW5TdGFydDpgZ3JpZENvbHVtblN0YXJ0LWc0ejMwMmJgLGdyaWRSb3dFbmQ6YGdyaWRSb3dFbmQtZzFmZzJibXZgLGdyaWRDb2x1bW5FbmQ6YGdyaWRDb2x1bW5FbmQtZzFqMzZzcm1gLGdyaWRSb3c6YGdyaWRSb3ctZ2JyNHh5ZmAsZ3JpZENvbHVtbjpgZ3JpZENvbHVtbi1nYXZ0OHZ6YCxncmlkQXJlYTpgZ3JpZEFyZWEtZzE5Y280dnpgLG9wYWNpdHk6YG9wYWNpdHktbzZkeTN4YCx6SW5kZXg6YHpJbmRleC16MXh5end4aWB9LGlkZT17MDpgXzAtXzZraGlzdWAsMTpgXzEtXzE1Y2JrcXBgLDI6YF8yLV9iY2x6djBgfSxhZGU9e2ZnOmBmZy1mMXI5dW5vMGAsZmdJbnZlcnNlOmBmZ0ludmVyc2UtZmg2ZGMxY2AsZmdNdXRlZDpgZmdNdXRlZC1mMThrOG5wYWAsZmdQcmltYXJ5OmBmZ1ByaW1hcnktZnBoZnV5b2AsZmdQb3NpdGl2ZTpgZmdQb3NpdGl2ZS1md2U3ZDJhYCxmZ05lZ2F0aXZlOmBmZ05lZ2F0aXZlLWYxdnF6emJoYCxmZ1dhcm5pbmc6YGZnV2FybmluZy1mdGE5czhsYCxiZzpgYmctYnRwMWhoOWAsYmdBbHRlcm5hdGU6YGJnQWx0ZXJuYXRlLWIxODFhbzhlYCxiZ0ludmVyc2U6YGJnSW52ZXJzZS1iMW53aG10dGAsYmdPdmVybGF5OmBiZ092ZXJsYXktYjEzNzlyM29gLGJnUHJpbWFyeTpgYmdQcmltYXJ5LWJ1cno2Y2JgLGJnUHJpbWFyeVdhc2g6YGJnUHJpbWFyeVdhc2gtYjFvbXpnYmpgLGJnU2Vjb25kYXJ5OmBiZ1NlY29uZGFyeS1iY3FyeTNtYCxiZ1RlcnRpYXJ5OmBiZ1RlcnRpYXJ5LWJoaGx6NWtgLGJnU2Vjb25kYXJ5V2FzaDpgYmdTZWNvbmRhcnlXYXNoLWJtb28zZGpgLGJnTmVnYXRpdmU6YGJnTmVnYXRpdmUtYjE4Y25leWFgLGJnTmVnYXRpdmVXYXNoOmBiZ05lZ2F0aXZlV2FzaC1iMXJyMDg1ZmAsYmdQb3NpdGl2ZTpgYmdQb3NpdGl2ZS1ibDNuYWg1YCxiZ1Bvc2l0aXZlV2FzaDpgYmdQb3NpdGl2ZVdhc2gtYjFjNnM5dzRgLGJnV2FybmluZzpgYmdXYXJuaW5nLWIxejBkdHA2YCxiZ1dhcm5pbmdXYXNoOmBiZ1dhcm5pbmdXYXNoLWIxNGE0cTd1YCxjdXJyZW50Q29sb3I6YGN1cnJlbnRDb2xvci1jMWN6NGplNGAsYmdMaW5lOmBiZ0xpbmUtYnZmNWwxaWAsYmdMaW5lSW52ZXJzZTpgYmdMaW5lSW52ZXJzZS1iMWVmazRxbGAsYmdMaW5lSGVhdnk6YGJnTGluZUhlYXZ5LWIycXFrNWAsYmdMaW5lUHJpbWFyeTpgYmdMaW5lUHJpbWFyeS1idmFsbDA3YCxiZ0xpbmVQcmltYXJ5U3VidGxlOmBiZ0xpbmVQcmltYXJ5U3VidGxlLWIxMjF2dnhuYCxiZ0VsZXZhdGlvbjE6YGJnRWxldmF0aW9uMS1iMWZ5MmZ2amAsYmdFbGV2YXRpb24yOmBiZ0VsZXZhdGlvbjItYnBqMnNieWAsYWNjZW50U3VidGxlR3JlZW46YGFjY2VudFN1YnRsZUdyZWVuLWExOHd6a21gLGFjY2VudEJvbGRHcmVlbjpgYWNjZW50Qm9sZEdyZWVuLWFxZjZ4cTBgLGFjY2VudFN1YnRsZUJsdWU6YGFjY2VudFN1YnRsZUJsdWUtYTFzcmkybWNgLGFjY2VudEJvbGRCbHVlOmBhY2NlbnRCb2xkQmx1ZS1hMXNxNGh2NGAsYWNjZW50U3VidGxlUHVycGxlOmBhY2NlbnRTdWJ0bGVQdXJwbGUtYXliMXo3OGAsYWNjZW50Qm9sZFB1cnBsZTpgYWNjZW50Qm9sZFB1cnBsZS1haXpic2Q1YCxhY2NlbnRTdWJ0bGVZZWxsb3c6YGFjY2VudFN1YnRsZVllbGxvdy1hMXJyb2R0YCxhY2NlbnRCb2xkWWVsbG93OmBhY2NlbnRCb2xkWWVsbG93LWExa2xxeDRuYCxhY2NlbnRTdWJ0bGVSZWQ6YGFjY2VudFN1YnRsZVJlZC1hMTdnbmhyYWAsYWNjZW50Qm9sZFJlZDpgYWNjZW50Qm9sZFJlZC1hZG56dm1lYCxhY2NlbnRTdWJ0bGVHcmF5OmBhY2NlbnRTdWJ0bGVHcmF5LWFqN3k2aDBgLGFjY2VudEJvbGRHcmF5OmBhY2NlbnRCb2xkR3JheS1hZTFrdnQ2YCx0cmFuc3BhcmVudDpgdHJhbnNwYXJlbnQtdDRmbjN5ZmB9LG9kZT17Zmc6YGZnLWYxZGJhcnc0YCxmZ0ludmVyc2U6YGZnSW52ZXJzZS1mcmIwd2tvYCxmZ011dGVkOmBmZ011dGVkLWZzMDJlY3RgLGZnUHJpbWFyeTpgZmdQcmltYXJ5LWYxZGZxY2NjYCxmZ1Bvc2l0aXZlOmBmZ1Bvc2l0aXZlLWYxZnVycWF2YCxmZ05lZ2F0aXZlOmBmZ05lZ2F0aXZlLWYxazRlcW1vYCxmZ1dhcm5pbmc6YGZnV2FybmluZy1mY2o3djFjYCxiZzpgYmctYmJoNmIxc2AsYmdBbHRlcm5hdGU6YGJnQWx0ZXJuYXRlLWJ6dXJxY2AsYmdJbnZlcnNlOmBiZ0ludmVyc2UtYnpoMWw3eWAsYmdPdmVybGF5OmBiZ092ZXJsYXktYjFrcG1mcHlgLGJnUHJpbWFyeTpgYmdQcmltYXJ5LWJ3NjlnYzZgLGJnUHJpbWFyeVdhc2g6YGJnUHJpbWFyeVdhc2gtYjEwemZ0emNgLGJnU2Vjb25kYXJ5OmBiZ1NlY29uZGFyeS1ieXloNXhsYCxiZ1RlcnRpYXJ5OmBiZ1RlcnRpYXJ5LWIxeXowdHlgLGJnU2Vjb25kYXJ5V2FzaDpgYmdTZWNvbmRhcnlXYXNoLWIxbmczeThkYCxiZ05lZ2F0aXZlOmBiZ05lZ2F0aXZlLWJreTQxMmhgLGJnTmVnYXRpdmVXYXNoOmBiZ05lZ2F0aXZlV2FzaC1iMWc5OTM4MWAsYmdQb3NpdGl2ZTpgYmdQb3NpdGl2ZS1ibG8xOHFwYCxiZ1Bvc2l0aXZlV2FzaDpgYmdQb3NpdGl2ZVdhc2gtYjF4bGxrMmNgLGJnV2FybmluZzpgYmdXYXJuaW5nLWJ3MnZ4cDNgLGJnV2FybmluZ1dhc2g6YGJnV2FybmluZ1dhc2gtYjF1bnUweXhgLGN1cnJlbnRDb2xvcjpgY3VycmVudENvbG9yLWN1Nm04dGpgLGJnTGluZTpgYmdMaW5lLWJrazZheXVgLGJnTGluZUludmVyc2U6YGJnTGluZUludmVyc2UtYjFwZ2xiOGAsYmdMaW5lSGVhdnk6YGJnTGluZUhlYXZ5LWJmMXd6ZnJgLGJnTGluZVByaW1hcnk6YGJnTGluZVByaW1hcnktYjE0ZTZ6a3NgLGJnTGluZVByaW1hcnlTdWJ0bGU6YGJnTGluZVByaW1hcnlTdWJ0bGUtYmNqb29vbGAsYmdFbGV2YXRpb24xOmBiZ0VsZXZhdGlvbjEtYjFxbGRvbHpgLGJnRWxldmF0aW9uMjpgYmdFbGV2YXRpb24yLWIxczZrMXkxYCxhY2NlbnRTdWJ0bGVHcmVlbjpgYWNjZW50U3VidGxlR3JlZW4tYTczN3V0YCxhY2NlbnRCb2xkR3JlZW46YGFjY2VudEJvbGRHcmVlbi1hMWFzdjY5ZWAsYWNjZW50U3VidGxlQmx1ZTpgYWNjZW50U3VidGxlQmx1ZS1hbWl1MTl2YCxhY2NlbnRCb2xkQmx1ZTpgYWNjZW50Qm9sZEJsdWUtYTE1anN3dnJgLGFjY2VudFN1YnRsZVB1cnBsZTpgYWNjZW50U3VidGxlUHVycGxlLWFzNXBtNjlgLGFjY2VudEJvbGRQdXJwbGU6YGFjY2VudEJvbGRQdXJwbGUtYXRlazB5ZGAsYWNjZW50U3VidGxlWWVsbG93OmBhY2NlbnRTdWJ0bGVZZWxsb3ctYTE2M2J1empgLGFjY2VudEJvbGRZZWxsb3c6YGFjY2VudEJvbGRZZWxsb3ctYTEzaTA3MmJgLGFjY2VudFN1YnRsZVJlZDpgYWNjZW50U3VidGxlUmVkLWExYWgxcWFoYCxhY2NlbnRCb2xkUmVkOmBhY2NlbnRCb2xkUmVkLWExa3J6ZW12YCxhY2NlbnRTdWJ0bGVHcmF5OmBhY2NlbnRTdWJ0bGVHcmF5LWExbGljbzMyYCxhY2NlbnRCb2xkR3JheTpgYWNjZW50Qm9sZEdyYXktYWwxeTUwMGAsdHJhbnNwYXJlbnQ6YHRyYW5zcGFyZW50LXQxZzNhN2ptYH0sc2RlPXtmZzpgZmctZnJpZTMwbmAsZmdJbnZlcnNlOmBmZ0ludmVyc2UtZjFmaWc0cHRgLGZnTXV0ZWQ6YGZnTXV0ZWQtZmJzbXplMGAsZmdQcmltYXJ5OmBmZ1ByaW1hcnktZjllcDk0eGAsZmdQb3NpdGl2ZTpgZmdQb3NpdGl2ZS1meXQ4b3I3YCxmZ05lZ2F0aXZlOmBmZ05lZ2F0aXZlLWYxdnhzdzNhYCxmZ1dhcm5pbmc6YGZnV2FybmluZy1mcW0wMGxyYCxiZzpgYmctYjEwZG1yY2JgLGJnQWx0ZXJuYXRlOmBiZ0FsdGVybmF0ZS1iaTY3dGJ5YCxiZ0ludmVyc2U6YGJnSW52ZXJzZS1iNHZicXNwYCxiZ092ZXJsYXk6YGJnT3ZlcmxheS1icnJzcGg1YCxiZ1ByaW1hcnk6YGJnUHJpbWFyeS1iMXdrcWw5b2AsYmdQcmltYXJ5V2FzaDpgYmdQcmltYXJ5V2FzaC1idHZub3BhYCxiZ1NlY29uZGFyeTpgYmdTZWNvbmRhcnktYjEzd3FjdG5gLGJnVGVydGlhcnk6YGJnVGVydGlhcnktYnVmcmY2aWAsYmdTZWNvbmRhcnlXYXNoOmBiZ1NlY29uZGFyeVdhc2gtYnZkdjhjNGAsYmdOZWdhdGl2ZTpgYmdOZWdhdGl2ZS1iMWF1cmkyeWAsYmdOZWdhdGl2ZVdhc2g6YGJnTmVnYXRpdmVXYXNoLWIxczh3OXljYCxiZ1Bvc2l0aXZlOmBiZ1Bvc2l0aXZlLWIxbnBzaW02YCxiZ1Bvc2l0aXZlV2FzaDpgYmdQb3NpdGl2ZVdhc2gtYjFpNDZ4dzdgLGJnV2FybmluZzpgYmdXYXJuaW5nLWIxbjg1cHB2YCxiZ1dhcm5pbmdXYXNoOmBiZ1dhcm5pbmdXYXNoLWJoMDUzZGlgLGN1cnJlbnRDb2xvcjpgY3VycmVudENvbG9yLWMxZDlrNm1xYCxiZ0xpbmU6YGJnTGluZS1iMW11ZXFua2AsYmdMaW5lSW52ZXJzZTpgYmdMaW5lSW52ZXJzZS1ibmIwZXNpYCxiZ0xpbmVIZWF2eTpgYmdMaW5lSGVhdnktYnBkejVlNWAsYmdMaW5lUHJpbWFyeTpgYmdMaW5lUHJpbWFyeS1iYndnbGIwYCxiZ0xpbmVQcmltYXJ5U3VidGxlOmBiZ0xpbmVQcmltYXJ5U3VidGxlLWJrbjBvYWZgLGJnRWxldmF0aW9uMTpgYmdFbGV2YXRpb24xLWIxeHhwZWFmYCxiZ0VsZXZhdGlvbjI6YGJnRWxldmF0aW9uMi1ibG9ldzllYCxhY2NlbnRTdWJ0bGVHcmVlbjpgYWNjZW50U3VidGxlR3JlZW4tYTExdGVrZXhgLGFjY2VudEJvbGRHcmVlbjpgYWNjZW50Qm9sZEdyZWVuLWExYmJuaDlvYCxhY2NlbnRTdWJ0bGVCbHVlOmBhY2NlbnRTdWJ0bGVCbHVlLWExb25xM3hoYCxhY2NlbnRCb2xkQmx1ZTpgYWNjZW50Qm9sZEJsdWUtYXVydW42emAsYWNjZW50U3VidGxlUHVycGxlOmBhY2NlbnRTdWJ0bGVQdXJwbGUtYWV0dHMxMWAsYWNjZW50Qm9sZFB1cnBsZTpgYWNjZW50Qm9sZFB1cnBsZS1hbDZ6bTl0YCxhY2NlbnRTdWJ0bGVZZWxsb3c6YGFjY2VudFN1YnRsZVllbGxvdy1hcHhoMmlmYCxhY2NlbnRCb2xkWWVsbG93OmBhY2NlbnRCb2xkWWVsbG93LWFkMmdjeGhgLGFjY2VudFN1YnRsZVJlZDpgYWNjZW50U3VidGxlUmVkLWFwajV0enBgLGFjY2VudEJvbGRSZWQ6YGFjY2VudEJvbGRSZWQtYTFoaHdzM2VgLGFjY2VudFN1YnRsZUdyYXk6YGFjY2VudFN1YnRsZUdyYXktYTFsNWpiNWZgLGFjY2VudEJvbGRHcmF5OmBhY2NlbnRCb2xkR3JheS1heHlldWw1YCx0cmFuc3BhcmVudDpgdHJhbnNwYXJlbnQtdGMyM2pnOWB9LGNkZT17MDpgXzAtXzVmc3F1aGAsMTAwOmBfMTAwLV9pM3gwd2dgLDIwMDpgXzIwMC1fMW83cTRpM2AsMzAwOmBfMzAwLV8xb29rMThnYCw0MDA6YF80MDAtXzFmbG1oNDVgLDUwMDpgXzUwMC1faWtwY25lYH0sbGRlPXswOmBfMC1fdDg4ZzVzYCwxMDA6YF8xMDAtXzFqcmoybW5gLDIwMDpgXzIwMC1fMzh6b2ZyYCwzMDA6YF8zMDAtXzFxcXhyYnNgLDQwMDpgXzQwMC1fMXZueWl0amAsNTAwOmBfNTAwLV8xaGZ0YjRoYH0sdWRlPXswOmBfMC1fMTRzY3ZyNGAsMTAwOmBfMTAwLV8xb3RmbXhyYCwyMDA6YF8yMDAtXzF0bzhqYjFgLDMwMDpgXzMwMC1fMWMzbGVzc2AsNDAwOmBfNDAwLV8xOHYxOXRnYCw1MDA6YF81MDAtX2IxNWpsc2B9LGRkZT17MDpgXzAtXzEydnp1YWhgLDEwMDpgXzEwMC1fMXBjZmN6b2AsMjAwOmBfMjAwLV81cXFoYWlgLDMwMDpgXzMwMC1fMWdicWtoZGAsNDAwOmBfNDAwLV8xb3ppMmF1YCw1MDA6YF81MDAtXzFhazNjOGpgfSxmZGU9ezA6YF8wLV8xNmJncmtrYCwxMDA6YF8xMDAtXzEydGxjNjNgLDIwMDpgXzIwMC1fMTZ0ZHJ5Z2AsMzAwOmBfMzAwLV8xOWlobmF2YCw0MDA6YF80MDAtXzEzeHFiYnlgLDUwMDpgXzUwMC1fM2ZnZnE2YH0scGRlPXswOmBfMC1fOTV2MXRgLDEwMDpgXzEwMC1fMWZkeTkyMWAsMjAwOmBfMjAwLV8xaWV0NmF1YCwzMDA6YF8zMDAtX2p1Y3UyeGAsNDAwOmBfNDAwLV9mY3k2bGAsNTAwOmBfNTAwLV8xMjZkb2RyYCw2MDA6YF82MDAtXzN3a255bGAsNzAwOmBfNzAwLV8xdzYwazFnYCw4MDA6YF84MDAtXzEzZjQ5ZXJgLDkwMDpgXzkwMC1fMXN6NDNzYCwxZTM6YF8xMDAwLV8xZjAwdGxlYH0sbWRlPXswOmBfMC1feXJieTk2YCwxMDA6YF8xMDAtX214YjFwMWAsMjAwOmBfMjAwLV8xczR0bjN1YCwzMDA6YF8zMDAtX2U4emVyamAsNDAwOmBfNDAwLV8xOXhyeTVyYCw1MDA6YF81MDAtXzFqM3h2emxgLDYwMDpgXzYwMC1fMWttczB0ZGAsNzAwOmBfNzAwLV8xZ3hxMm04YCw4MDA6YF84MDAtXzRmczFucGAsOTAwOmBfOTAwLV9hamMyNG5gLDFlMzpgXzEwMDAtXzE1bmRycGB9LGhkZT17MDpgXzAtXzVvanFhbWAsMTAwOmBfMTAwLV8xdnlkZ3ZxYCwyMDA6YF8yMDAtX2RjODJvYWAsMzAwOmBfMzAwLV9pZjg2dGFgLDQwMDpgXzQwMC1fMW9hZjFmMmAsNTAwOmBfNTAwLV80Zjl1dm9gLDYwMDpgXzYwMC1fMThmbnppNWAsNzAwOmBfNzAwLV9vOHFjODJgLDgwMDpgXzgwMC1fZ21idHEzYCw5MDA6YF85MDAtXzFjemR0YTNgLDFlMzpgXzEwMDAtX2NxZ3FmY2B9LGdkZT17MDpgXzAtX2Uxd3pxd2AsMTAwOmBfMTAwLV8xa2ZwdjV5YCwyMDA6YF8yMDAtX210aW01OWAsMzAwOmBfMzAwLV8xdnE1N2l0YCw0MDA6YF80MDAtXzFkMDY0a2JgLDUwMDpgXzUwMC1fbHQwbm95YCw2MDA6YF82MDAtXzdib3JkMWAsNzAwOmBfNzAwLV8xN3JsYmV6YCw4MDA6YF84MDAtXzN6ZHlyeWAsOTAwOmBfOTAwLV8xc2t2YWEzYCwxZTM6YF8xMDAwLV8xdHBibjZjYH0sX2RlPXswOmBfMC1fMTYxYjd3cWAsMTAwOmBfMTAwLV8xNG04bnI0YCwyMDA6YF8yMDAtXzFzYnNiNmdgLDMwMDpgXzMwMC1fMXdqMGprN2AsNDAwOmBfNDAwLV8xODgzMGMyYCw1MDA6YF81MDAtX3Z3bXgwYCw2MDA6YF82MDAtXzFlNGNuZXVgLDcwMDpgXzcwMC1fbnMwbHM0YCw4MDA6YF84MDAtXzJ0dnkxamAsOTAwOmBfOTAwLV9qb2t1andgLDFlMzpgXzEwMDAtXzlmZTJlZWB9LHZkZT17aW5oZXJpdDpgaW5oZXJpdC1pOTVuZXd5YCxkaXNwbGF5MTpgZGlzcGxheTEtZDE2d3Z6bWdgLGRpc3BsYXkyOmBkaXNwbGF5Mi1kNm84cGcyYCxkaXNwbGF5MzpgZGlzcGxheTMtZDNkNXMwYCx0aXRsZTE6YHRpdGxlMS10MTdxZXo1d2AsdGl0bGUyOmB0aXRsZTItdHZ3eHh5dmAsdGl0bGUzOmB0aXRsZTMtdDFmYWR4d3RgLHRpdGxlNDpgdGl0bGU0LXR4emZlM3VgLGhlYWRsaW5lOmBoZWFkbGluZS1oZXNlNzF4YCxib2R5OmBib2R5LWIxcXd4M3A5YCxsYWJlbDE6YGxhYmVsMS1sMXJ0MTNtb2AsbGFiZWwyOmBsYWJlbDItbHg4MjBkMmAsY2FwdGlvbjpgY2FwdGlvbi1jYXR5ZHV4YCxsZWdhbDpgbGVnYWwtbDEyYXo1aW9gfSx5ZGU9e2luaGVyaXQ6YGluaGVyaXQtaTEweGFjMGdgLGRpc3BsYXkxOmBkaXNwbGF5MS1kNXA3MXNlYCxkaXNwbGF5MjpgZGlzcGxheTItZDFkYjNzemRgLGRpc3BsYXkzOmBkaXNwbGF5My1kMWRobWlhOGAsdGl0bGUxOmB0aXRsZTEtdGR4M3ZrYCx0aXRsZTI6YHRpdGxlMi10MXBpNHQ5eGAsdGl0bGUzOmB0aXRsZTMtdHR5bTY5Y2AsdGl0bGU0OmB0aXRsZTQtdDFsc3FrdmZgLGhlYWRsaW5lOmBoZWFkbGluZS1obHloZmZhYCxib2R5OmBib2R5LWI1NDB1dTBgLGxhYmVsMTpgbGFiZWwxLWxtZzNiazhgLGxhYmVsMjpgbGFiZWwyLWxoaWM1MnFgLGNhcHRpb246YGNhcHRpb24tYzFhaHk5N2pgLGxlZ2FsOmBsZWdhbC1sdmt3aHF3YH0sYmRlPXtpbmhlcml0OmBpbmhlcml0LWkxMW12NGI0YCxkaXNwbGF5MTpgZGlzcGxheTEtZGkzbmJ6emAsZGlzcGxheTI6YGRpc3BsYXkyLWQxNTVwcjZ2YCxkaXNwbGF5MzpgZGlzcGxheTMtZDF4cWQ2Z2AsdGl0bGUxOmB0aXRsZTEtdDE5dXgzbG5gLHRpdGxlMjpgdGl0bGUyLXQxaXVscG9sYCx0aXRsZTM6YHRpdGxlMy10NjIxcGF3YCx0aXRsZTQ6YHRpdGxlNC10MW1heHlsbGAsaGVhZGxpbmU6YGhlYWRsaW5lLWh0enhlbzZgLGJvZHk6YGJvZHktYjFnaDZpMDNgLGxhYmVsMTpgbGFiZWwxLWwxOHQ4aW9yYCxsYWJlbDI6YGxhYmVsMi1sM3V0YWxnYCxjYXB0aW9uOmBjYXB0aW9uLWMxcGFhOHllYCxsZWdhbDpgbGVnYWwtbDFkMGZweTdgfSx4ZGU9e2luaGVyaXQ6YGluaGVyaXQtaXdlMjFhM2AsZGlzcGxheTE6YGRpc3BsYXkxLWQ4eWYyODRgLGRpc3BsYXkyOmBkaXNwbGF5Mi1kZjVvemxoYCxkaXNwbGF5MzpgZGlzcGxheTMtZHp5azBnYmAsdGl0bGUxOmB0aXRsZTEtdG4ycG5rMWAsdGl0bGUyOmB0aXRsZTItdHppZ3dzcWAsdGl0bGUzOmB0aXRsZTMtdGs3OHp5YmAsdGl0bGU0OmB0aXRsZTQtdGVmdHcyYCxoZWFkbGluZTpgaGVhZGxpbmUtaHcyb3FsZGAsYm9keTpgYm9keS1iMTlranRsOGAsbGFiZWwxOmBsYWJlbDEtbHUydm1pbWAsbGFiZWwyOmBsYWJlbDItbDEyNXJ3b3dgLGNhcHRpb246YGNhcHRpb24tY2IxMXlydmAsbGVnYWw6YGxlZ2FsLWx5bm8wdWxgfSxTZGU9e25vbmU6YG5vbmUtbmRhcjIyamAsdW5kZXJsaW5lOmB1bmRlcmxpbmUtdXFnOTd1YWAsb3ZlcmxpbmU6YG92ZXJsaW5lLW8xM3Biem03YCwibGluZS10aHJvdWdoIjpgbGluZS10aHJvdWdoLWxxOXRleGpgLCJ1bmRlcmxpbmUgb3ZlcmxpbmUiOmB1bmRlcmxpbmVfb3ZlcmxpbmUtdTFpYWNzbGZgLCJ1bmRlcmxpbmUgZG91YmxlIjpgdW5kZXJsaW5lX2RvdWJsZS11YW5qYnplYH0sQ2RlPXtub25lOmBub25lLW5vZHJ5MnhgLHVwcGVyY2FzZTpgdXBwZXJjYXNlLXUxeTBtZ2R5YCxsb3dlcmNhc2U6YGxvd2VyY2FzZS1sMTR2ZjJlOGAsY2FwaXRhbGl6ZTpgY2FwaXRhbGl6ZS1jYXM5eHVnYH0sd2RlPXtub25lOmBub25lLW4xMjVjc3lqYCx0ZXh0OmB0ZXh0LXQxbm5xMWxsYCxhbGw6YGFsbC1heGt6bThuYCxhdXRvOmBhdXRvLWFhZDc5eDVgfSxUZGU9e25vbmU6YG5vbmUtbnZueTYxMWAsYmxvY2s6YGJsb2NrLWJ5Z2hsdW9gLGlubGluZTpgaW5saW5lLWltOWhuNXBgLCJpbmxpbmUtYmxvY2siOmBpbmxpbmUtYmxvY2staWJ4OThxbGAsZmxleDpgZmxleC1mMTAwb2hvMWAsImlubGluZS1mbGV4IjpgaW5saW5lLWZsZXgtaTF4ZHRpZmZgLGdyaWQ6YGdyaWQtZ3NjY3J4YCwiaW5saW5lLWdyaWQiOmBpbmxpbmUtZ3JpZC1pcXpnNXRpYCxjb250ZW50czpgY29udGVudHMtYzFrYzRpZ2NgLCJmbG93LXJvb3QiOmBmbG93LXJvb3QtZjExa2d0Y3RgLHJldmVydDpgcmV2ZXJ0LXIzY2p2dDBgLCJsaXN0LWl0ZW0iOmBsaXN0LWl0ZW0tbDFhbXF4MHlgfSxFZGU9e2F1dG86YGF1dG8tYTFxaXh5cjFgLHZpc2libGU6YHZpc2libGUtdjEyMm9kOTRgLGhpZGRlbjpgaGlkZGVuLWgxbnc5ZXA4YCxjbGlwOmBjbGlwLWMxODh3YmQ4YCxzY3JvbGw6YHNjcm9sbC1zenBxc3BqYH0sRGRlPXswOmBfMC1fcHBuNDk3YCwiMC4yNSI6YF8wXzI1LV93dWRnMTBgLCIwLjUiOmBfMF81LV8xc2dyYjd0YCwiMC43NSI6YF8wXzc1LV8xbDFzc3pvYCwxOmBfMS1faHN2enNyYCwiMS41IjpgXzFfNS1fMXhiNWd5N2AsMjpgXzItXzFkNWx0NzlgLDM6YF8zLV8xYjJuNmg3YCw0OmBfNC1fY2RwZjhmYCw1OmBfNS1fbmgyNm9gLDY6YF82LV8xMDR1dDBoYCw3OmBfNy1fMXRmd3hoZ2AsODpgXzgtXzEzZjhvZXdgLDk6YF85LV93YjJ0eGZgLDEwOmBfMTAtXzFvNzF0NHZgfSxPZGU9ezA6YF8wLV8xNGVmbWcwYCwiMC4yNSI6YF8wXzI1LV8xZDZrcDRvYCwiMC41IjpgXzBfNS1fMTAzODJwNWAsIjAuNzUiOmBfMF83NS1fMWNiZDJheWAsMTpgXzEtXzF3aHRnNDRgLCIxLjUiOmBfMV81LV8xd3MwYmp6YCwyOmBfMi1fZHozemI5YCwzOmBfMy1fMW53Z2dudGAsNDpgXzQtXzE4dnZpMDRgLDU6YF81LV9maG1oYnVgLDY6YF82LV9veWw3dXZgLDc6YF83LV83NDl6aWFgLDg6YF84LV9yYTE4Nm5gLDk6YF85LV8xbHo4aTV6YCwxMDpgXzEwLV8xY2p0YWxuYH0sa2RlPXswOmBfMC1fcTVseDAxYCwiMC4yNSI6YF8wXzI1LV8xNnJ1MXRuYCwiMC41IjpgXzBfNS1fdWdvMG5gLCIwLjc1IjpgXzBfNzUtXzdlNHE0amAsMTpgXzEtXzFrbHJra2RgLCIxLjUiOmBfMV81LV9udzB0cXFgLDI6YF8yLV8xZGhoN3NgLDM6YF8zLV8xNmVjdTI4YCw0OmBfNC1fMWhwbHBhd2AsNTpgXzUtX2o4a3VhbmAsNjpgXzYtXzFiMmExcGFgLDc6YF83LV9hcTVycjhgLDg6YF84LV9pcDEzaWZgLDk6YF85LV9nbWRiODdgLDEwOmBfMTAtXzE5ODVmZWJgfSxBZGU9e25vcm1hbDpgbm9ybWFsLW55bWt1N2lgLGNlbnRlcjpgY2VudGVyLWMxM3pyazVwYCxzdGFydDpgc3RhcnQtczY0Mmdob2AsZW5kOmBlbmQtZTE2eTJmOWpgLCJmbGV4LXN0YXJ0IjpgZmxleC1zdGFydC1mcmJkaW5lYCwiZmxleC1lbmQiOmBmbGV4LWVuZC1mMTQ0YmJrZ2AsbGVmdDpgbGVmdC1sZHd1NmhvYCxyaWdodDpgcmlnaHQtcnZwYXJjOWAsInNwYWNlLWJldHdlZW4iOmBzcGFjZS1iZXR3ZWVuLXN4ZXk3ajFgLCJzcGFjZS1hcm91bmQiOmBzcGFjZS1hcm91bmQtczF2ZGtoNHRgLCJzcGFjZS1ldmVubHkiOmBzcGFjZS1ldmVubHktczFmYjNieXNgLHN0cmV0Y2g6YHN0cmV0Y2gtc214dXZ5b2B9LGpkZT17bm9ybWFsOmBub3JtYWwtbmM3Z3dlemAsY2VudGVyOmBjZW50ZXItY3d3NnN6dWAsc3RhcnQ6YHN0YXJ0LXM2b3VzYmxgLGVuZDpgZW5kLWVmam5uNjVgLCJmbGV4LXN0YXJ0IjpgZmxleC1zdGFydC1mMTVqcWtibGAsImZsZXgtZW5kIjpgZmxleC1lbmQtZjFrcXRpd2pgLCJzcGFjZS1iZXR3ZWVuIjpgc3BhY2UtYmV0d2Vlbi1zdG51OTBmYCwic3BhY2UtYXJvdW5kIjpgc3BhY2UtYXJvdW5kLXN2dGVybDFgLCJzcGFjZS1ldmVubHkiOmBzcGFjZS1ldmVubHktczFyNWc2Y3dgLHN0cmV0Y2g6YHN0cmV0Y2gtc25vY2xtaGAsYmFzZWxpbmU6YGJhc2VsaW5lLWIzcDVyOXZgLCJmaXJzdCBiYXNlbGluZSI6YGZpcnN0X2Jhc2VsaW5lLWYxZ3M1dmFvYCwibGFzdCBiYXNlbGluZSI6YGxhc3RfYmFzZWxpbmUtbDF5bGwycTJgfSxNZGU9e25vcm1hbDpgbm9ybWFsLW41Z3FncnZgLGNlbnRlcjpgY2VudGVyLWMzY3RxZGVgLHN0YXJ0OmBzdGFydC1zMWRxb251Y2AsZW5kOmBlbmQtZWQ5bHY0NGAsImZsZXgtc3RhcnQiOmBmbGV4LXN0YXJ0LWZoM2NuaHVgLCJmbGV4LWVuZCI6YGZsZXgtZW5kLWYzb2w1em1gLCJzZWxmLXN0YXJ0Ijpgc2VsZi1zdGFydC1zMTVweXE2MWAsInNlbGYtZW5kIjpgc2VsZi1lbmQtc2R6YW5jOWAsc3RyZXRjaDpgc3RyZXRjaC1zdG1kNnZ3YCxiYXNlbGluZTpgYmFzZWxpbmUtYjJtMXozZ2AsImZpcnN0IGJhc2VsaW5lIjpgZmlyc3RfYmFzZWxpbmUtZjE5aXkzazFgLCJsYXN0IGJhc2VsaW5lIjpgbGFzdF9iYXNlbGluZS1sbGtmeWRoYH0sTmRlPXthdXRvOmBhdXRvLWE4dmM5c21gLG5vcm1hbDpgbm9ybWFsLW41ZDBiZHdgLGNlbnRlcjpgY2VudGVyLWMxbHg1NWAsc3RhcnQ6YHN0YXJ0LXMxZW1jbzNuYCxlbmQ6YGVuZC1lb3FhOXJ4YCwiZmxleC1zdGFydCI6YGZsZXgtc3RhcnQtZnFuaHUwYmAsImZsZXgtZW5kIjpgZmxleC1lbmQtZjE0cmJ2Z2AsInNlbGYtc3RhcnQiOmBzZWxmLXN0YXJ0LXM0cTZkYWpgLCJzZWxmLWVuZCI6YHNlbGYtZW5kLXMyemNnNWxgLHN0cmV0Y2g6YHN0cmV0Y2gtczFuenZ1NWxgLGJhc2VsaW5lOmBiYXNlbGluZS1iazJncmk5YCwiZmlyc3QgYmFzZWxpbmUiOmBmaXJzdF9iYXNlbGluZS1mZDUxaGNgLCJsYXN0IGJhc2VsaW5lIjpgbGFzdF9iYXNlbGluZS1sc2Y5dGc5YH0sUGRlPXtyb3c6YHJvdy1ydjRmcTVjYCwicm93LXJldmVyc2UiOmByb3ctcmV2ZXJzZS1ybHF4cTRtYCxjb2x1bW46YGNvbHVtbi1jMWRjZDQ1OWAsImNvbHVtbi1yZXZlcnNlIjpgY29sdW1uLXJldmVyc2UtYzFmOTRjOWZgfSxGZGU9e25vd3JhcDpgbm93cmFwLW5odzVuNWZgLHdyYXA6YHdyYXAtdzE2MXJ4d2tgLCJ3cmFwLXJldmVyc2UiOmB3cmFwLXJldmVyc2UtdzRuMzFhbWB9LElkZT17c3RhdGljOmBzdGF0aWMtc20ydXRxNmAscmVsYXRpdmU6YHJlbGF0aXZlLXJ3eGJvemxgLGFic29sdXRlOmBhYnNvbHV0ZS1ha3EwcWttYCxmaXhlZDpgZml4ZWQtZjN5bXJ3cmAsc3RpY2t5OmBzdGlja3ktczE5dmR2MnFgfSxMZGU9ezA6YF8wLV8xMXNrem50YCwiMC4yNSI6YF8wXzI1LV9wNnJpNnVgLCIwLjUiOmBfMF81LV9kOW0wOGJgLCIwLjc1IjpgXzBfNzUtX3dpMHBmZGAsMTpgXzEtX2htc2xpdmAsIjEuNSI6YF8xXzUtXzFtcWY2cmlgLDI6YF8yLV8xY252dXo5YCwzOmBfMy1fN2hibTl5YCw0OmBfNC1fOHJvdWRzYCw1OmBfNS1famFkbHdlYCw2OmBfNi1fMWN4N2RlaWAsNzpgXzctX3l3emprYWAsODpgXzgtX3N5OHBxeWAsOTpgXzktXzE1YjlybGFgLDEwOmBfMTAtXzE5enE2OTNgfSxSZGU9ezA6YF8wLV8xbnN5cnkyYCwiMC4yNSI6YF8wXzI1LV82eTJzdHFgLCIwLjUiOmBfMF81LV92dGh1ZXVgLCIwLjc1IjpgXzBfNzUtXzVneXJ0OWAsMTpgXzEtX3RoNzloa2AsIjEuNSI6YF8xXzUtXzQ4cmt4MmAsMjpgXzItXzF5b2NlczRgLDM6YF8zLV8xNWVsNjZzYCw0OmBfNC1fZXU4czNzYCw1OmBfNS1feXplNHJ0YCw2OmBfNi1fMTR0d3VhNGAsNzpgXzctXzEycGw3YmtgLDg6YF84LV9uOWt5cmNgLDk6YF85LV8xMWV5aTNsYCwxMDpgXzEwLV8xMWRjMWt6YH0semRlPXswOmBfMC1fc21hajloYCwiMC4yNSI6YF8wXzI1LV8xbHZjMW5nYCwiMC41IjpgXzBfNS1fMW92cGVwcWAsIjAuNzUiOmBfMF83NS1fMXFzc2l2bGAsMTpgXzEtX204Ym1jeWAsIjEuNSI6YF8xXzUtXzVzdWNyb2AsMjpgXzItX20xY2owYmAsMzpgXzMtXzdzaWV6emAsNDpgXzQtXzYwejlxbmAsNTpgXzUtXzFoM3k1M3NgLDY6YF82LV8xMDBpbTBtYCw3OmBfNy1faGtodnRtYCw4OmBfOC1fbnNjOXZrYCw5OmBfOS1fOHF5bHh0YCwxMDpgXzEwLV9nbmZzZGJgfSxCZGU9ezA6YF8wLV8yYTV0MnRgLCIwLjI1IjpgXzBfMjUtX3l1czdoZmAsIjAuNSI6YF8wXzUtX2FnbmJ2ZmAsIjAuNzUiOmBfMF83NS1fNmNmbDlnYCwxOmBfMS1fcTVhMDN3YCwiMS41IjpgXzFfNS1feXd3cnhhYCwyOmBfMi1fMXl6OXA2ZGAsMzpgXzMtX212emZ6ZGAsNDpgXzQtXzF2ZG8wNjBgLDU6YF81LV8xb3MydTB6YCw2OmBfNi1fM3owNzh0YCw3OmBfNy1fMWMwN3J1cGAsODpgXzgtXzFscGk5dXVgLDk6YF85LV9jZXJ0ejFgLDEwOmBfMTAtXzFpMzR5NWlgfSxWZGU9ezA6YF8wLV9seGt0MGJgLCIwLjI1IjpgXzBfMjUtX3Jpam91YmAsIjAuNSI6YF8wXzUtXzF5eWI3ajFgLCIwLjc1IjpgXzBfNzUtXzEzeW9keTVgLDE6YF8xLV8xaWgyYXUwYCwiMS41IjpgXzFfNS1fZHNpbDkyYCwyOmBfMi1fNWpna212YCwzOmBfMy1fOW0wdnp3YCw0OmBfNC1fMXZhdTA1ZmAsNTpgXzUtXzE3cjA1N3FgLDY6YF82LV8xcHY3aWFxYCw3OmBfNy1fMWxoc3ZndGAsODpgXzgtX2JiNTRtcGAsOTpgXzktXzFncWRvcGFgLDEwOmBfMTAtXzg5ajczc2B9LEhkZT17MDpgXzAtX2xjZnJuc2AsIjAuMjUiOmBfMF8yNS1feTc3M3BuYCwiMC41IjpgXzBfNS1faXYxa3JxYCwiMC43NSI6YF8wXzc1LV9jZ3ljd3NgLDE6YF8xLV8xanB5M2JkYCwiMS41IjpgXzFfNS1fMmJ0cm1xYCwyOmBfMi1fcXQwN2tqYCwzOmBfMy1fMXZjaDRub2AsNDpgXzQtXzE3ZDFkMTVgLDU6YF81LV8xM3RjOTMwYCw2OmBfNi1fMXF5MWdxYCw3OmBfNy1fMTZoZzd5OWAsODpgXzgtXzFqcjdpODNgLDk6YF85LV8xY2g2MnNtYCwxMDpgXzEwLV8xd3pydzU3YH0sVWRlPXswOmBfMC1fMWk5d2IzcmAsIjAuMjUiOmBfMF8yNS1fMTN6bWs5NWAsIjAuNSI6YF8wXzUtXzFxb3ZvejVgLCIwLjc1IjpgXzBfNzUtXzF1NHJwendgLDE6YF8xLV8zOHJzaHlgLCIxLjUiOmBfMV81LV9xN21mOGpgLDI6YF8yLV8zYnByMXZgLDM6YF8zLV96dzA2OWZgLDQ6YF80LV8xajI4NW1yYCw1OmBfNS1fMzF2Nnp0YCw2OmBfNi1fMXlyaG9lOGAsNzpgXzctXzE1dGc1MTFgLDg6YF84LV8xbjBlNmE1YCw5OmBfOS1fMXI3bzNzMWAsMTA6YF8xMC1fMW4wdDUzYH0sV2RlPXswOmBfMC1fOTh5bnI1YCwiLTAuMjUiOmBfLTBfMjUtLTFzOGhlaHBgLCItMC41IjpgXy0wXzUtLWY4ZTh0Z2AsIi0wLjc1IjpgXy0wXzc1LS1kM3BpaTBgLCItMSI6YF8tMS0tMXNhMnRnOWAsIi0xLjUiOmBfLTFfNS0tczh5czB6YCwiLTIiOmBfLTItLXVuNWV5d2AsIi0zIjpgXy0zLS1hZDMyNnlgLCItNCI6YF8tNC0tMXR2cWJ5MWAsIi01IjpgXy01LS0xZzN1bjh0YCwiLTYiOmBfLTYtLTFheDgyNmtgLCItNyI6YF8tNy0tMWxleDZ1eGAsIi04IjpgXy04LS1iMTNldHFgLCItOSI6YF8tOS0tMTUxamU3aWAsIi0xMCI6YF8tMTAtLTEzZnp4dzlgfSxHZGU9ezA6YF8wLV84djc3dHRgLCItMC4yNSI6YF8tMF8yNS0tbXAxeGo4YCwiLTAuNSI6YF8tMF81LS0xbWh4cTNxYCwiLTAuNzUiOmBfLTBfNzUtLW5ic25zdGAsIi0xIjpgXy0xLS0xMjh5Mnp6YCwiLTEuNSI6YF8tMV81LS0xY2ZwNDh1YCwiLTIiOmBfLTItLTN1a3lrdGAsIi0zIjpgXy0zLS0xaDh5eTg3YCwiLTQiOmBfLTQtLTFjamIxbW1gLCItNSI6YF8tNS0teGJnNG54YCwiLTYiOmBfLTYtLTF4MTNwYmFgLCItNyI6YF8tNy0tMXhkYzgzZWAsIi04IjpgXy04LS0xNHdrbnpyYCwiLTkiOmBfLTktLWduNm9lemAsIi0xMCI6YF8tMTAtLTEwcTBxYTlgfSxLZGU9ezA6YF8wLV8xcTcyeTZtYCwiLTAuMjUiOmBfLTBfMjUtLWprZHNkMGAsIi0wLjUiOmBfLTBfNS0tMTM2NDZkdWAsIi0wLjc1IjpgXy0wXzc1LS0xNDFud3VjYCwiLTEiOmBfLTEtLXYzazR2dmAsIi0xLjUiOmBfLTFfNS0tMWU1aXIwdGAsIi0yIjpgXy0yLS0xdG90NWlwYCwiLTMiOmBfLTMtLXVkemg5YCwiLTQiOmBfLTQtLTF5endkYmNgLCItNSI6YF8tNS0tb3QwazE2YCwiLTYiOmBfLTYtLTF2eGtha2AsIi03IjpgXy03LS0xdWV4OTdmYCwiLTgiOmBfLTgtLTE2M2c0YTdgLCItOSI6YF8tOS0tN3NjN3QyYCwiLTEwIjpgXy0xMC0taGZhZm9vYH0scWRlPXswOmBfMC1fb2Y2Nmd6YCwiLTAuMjUiOmBfLTBfMjUtLWpkOTMxcmAsIi0wLjUiOmBfLTBfNS0tMWVqNjNkZWAsIi0wLjc1IjpgXy0wXzc1LS0xc29vZW50YCwiLTEiOmBfLTEtLTFwczV1dzdgLCItMS41IjpgXy0xXzUtLWNibmkxNGAsIi0yIjpgXy0yLS0yMHdvNHNgLCItMyI6YF8tMy0tMTBoMGQyY2AsIi00IjpgXy00LS1pd3FwYThgLCItNSI6YF8tNS0tdzF1b2c0YCwiLTYiOmBfLTYtLXl3aGhoeWAsIi03IjpgXy03LS1vZXhxZndgLCItOCI6YF8tOC0tMTlnN3ZhMGAsIi05IjpgXy05LS01a3picXhgLCItMTAiOmBfLTEwLS0xaW1nMXJzYH0sSmRlPXswOmBfMC1fN3ptbnE2YCwiLTAuMjUiOmBfLTBfMjUtLTN0cm9xYCwiLTAuNSI6YF8tMF81LS0xbzF0Y3lzYCwiLTAuNzUiOmBfLTBfNzUtLTE1cjlobGRgLCItMSI6YF8tMS0tMXVmMDczcGAsIi0xLjUiOmBfLTFfNS0tOG55Znp0YCwiLTIiOmBfLTItLTZiM2oydGAsIi0zIjpgXy0zLS11aXp3Z2AsIi00IjpgXy00LS05MHI2eWtgLCItNSI6YF8tNS0tMXUzcTh1cGAsIi02IjpgXy02LS0xN3FldTE3YCwiLTciOmBfLTctLTEwbGFhOTNgLCItOCI6YF8tOC0tMTVwejY2eGAsIi05IjpgXy05LS1meWZvdTRgLCItMTAiOmBfLTEwLS0xeHFiMndwYH0sWWRlPXswOmBfMC1fbmp4NDlkYCwiLTAuMjUiOmBfLTBfMjUtLXN3YjVibWAsIi0wLjUiOmBfLTBfNS0tMWN5bDE0MWAsIi0wLjc1IjpgXy0wXzc1LS0xdnZqNjk2YCwiLTEiOmBfLTEtLTF1aGE5dnhgLCItMS41IjpgXy0xXzUtLTE1NWYzbjBgLCItMiI6YF8tMi0tdnFlaHg5YCwiLTMiOmBfLTMtLTFzbDFmZzBgLCItNCI6YF8tNC0tbTBjZXd1YCwiLTUiOmBfLTUtLTFyajNtdmNgLCItNiI6YF8tNi0tMXY4bmdudGAsIi03IjpgXy03LS0xYXhlanI0YCwiLTgiOmBfLTgtLTFhc216MjFgLCItOSI6YF8tOS0tMXZlM25jZ2AsIi0xMCI6YF8tMTAtLTEzdzJlbHBgfSxYZGU9ezA6YF8wLV9xdXM5eWpgLCItMC4yNSI6YF8tMF8yNS0tc3VlOTJkYCwiLTAuNSI6YF8tMF81LS0xdGZycmxuYCwiLTAuNzUiOmBfLTBfNzUtLTE2b3Jtc3FgLCItMSI6YF8tMS0tMWdsMm5tcGAsIi0xLjUiOmBfLTFfNS0tMWtpcm96b2AsIi0yIjpgXy0yLS1vNzZhMGpgLCItMyI6YF8tMy0tMTBsMDM0bGAsIi00IjpgXy00LS10OTdmZHZgLCItNSI6YF8tNS0teWJoNGkxYCwiLTYiOmBfLTYtLTdwemxmaGAsIi03IjpgXy03LS0xZ3I0bHdyYCwiLTgiOmBfLTgtLTF2and3MjZgLCItOSI6YF8tOS0teTV1ZGI1YCwiLTEwIjpgXy0xMC0tMXdqM3JmNWB9LFpkZT17c3RhcnQ6YHN0YXJ0LXNjYW80amFgLGVuZDpgZW5kLWUxcTM0eGZsYCxjZW50ZXI6YGNlbnRlci1jaHcyN2c1YCxqdXN0aWZ5OmBqdXN0aWZ5LWoxeGFwc2o5YH0sUWRlPXtoaWRkZW46YGhpZGRlbi1oZjVwNHVsYCx2aXNpYmxlOmB2aXNpYmxlLXY0b3NldnRgfSwkZGU9Yyh7YWxpZ25Db250ZW50OigpPT5EZmUsYWxpZ25JdGVtczooKT0+T2ZlLGFsaWduU2VsZjooKT0+a2ZlLGJhY2tncm91bmQ6KCk9Pm5mZSxib3JkZXJCb3R0b21MZWZ0UmFkaXVzOigpPT5mZmUsYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6KCk9PnBmZSxib3JkZXJCb3R0b21XaWR0aDooKT0+c2ZlLGJvcmRlckNvbG9yOigpPT5yZmUsYm9yZGVyRW5kV2lkdGg6KCk9Pm9mZSxib3JkZXJSYWRpdXM6KCk9PmxmZSxib3JkZXJTdGFydFdpZHRoOigpPT5jZmUsYm9yZGVyVG9wTGVmdFJhZGl1czooKT0+dWZlLGJvcmRlclRvcFJpZ2h0UmFkaXVzOigpPT5kZmUsYm9yZGVyVG9wV2lkdGg6KCk9PmFmZSxib3JkZXJXaWR0aDooKT0+aWZlLGNvbG9yOigpPT50ZmUsY29sdW1uR2FwOigpPT53ZmUsZGlzcGxheTooKT0+eGZlLGR5bmFtaWM6KCk9PlFTLGVsZXZhdGlvbjooKT0+ZWZlLGZsZXhEaXJlY3Rpb246KCk9PkFmZSxmbGV4V3JhcDooKT0+amZlLGZvbnRGYW1pbHk6KCk9Pm1mZSxmb250U2l6ZTooKT0+aGZlLGZvbnRXZWlnaHQ6KCk9PmdmZSxnYXA6KCk9PkNmZSxqdXN0aWZ5Q29udGVudDooKT0+RWZlLGxpbmVIZWlnaHQ6KCk9Pl9mZSxtYXJnaW46KCk9PkJmZSxtYXJnaW5Cb3R0b206KCk9PldmZSxtYXJnaW5FbmQ6KCk9PkdmZSxtYXJnaW5TdGFydDooKT0+S2ZlLG1hcmdpblRvcDooKT0+VWZlLG1hcmdpblg6KCk9PlZmZSxtYXJnaW5ZOigpPT5IZmUsb3ZlcmZsb3c6KCk9PlNmZSxwYWRkaW5nOigpPT5OZmUscGFkZGluZ0JvdHRvbTooKT0+TGZlLHBhZGRpbmdFbmQ6KCk9PnpmZSxwYWRkaW5nU3RhcnQ6KCk9PlJmZSxwYWRkaW5nVG9wOigpPT5JZmUscGFkZGluZ1g6KCk9PlBmZSxwYWRkaW5nWTooKT0+RmZlLHBvc2l0aW9uOigpPT5NZmUscm93R2FwOigpPT5UZmUsdGV4dEFsaWduOigpPT5xZmUsdGV4dERlY29yYXRpb246KCk9PnZmZSx0ZXh0VHJhbnNmb3JtOigpPT55ZmUsdXNlclNlbGVjdDooKT0+YmZlLHZpc2liaWxpdHk6KCk9PkpmZX0pLFFTPXt3aWR0aDpgd2lkdGgtd3F0cThhb2AsaGVpZ2h0OmBoZWlnaHQtaDhiY3ZkaWAsbWluV2lkdGg6YG1pbldpZHRoLW1uZ20zaGRgLG1pbkhlaWdodDpgbWluSGVpZ2h0LW0xdGt0YTNjYCxtYXhXaWR0aDpgbWF4V2lkdGgtbWF2eHQybWAsbWF4SGVpZ2h0OmBtYXhIZWlnaHQtbTFxbHN3M3dgLGFzcGVjdFJhdGlvOmBhc3BlY3RSYXRpby1hMWFqcm1jNWAsdG9wOmB0b3AtdDFlZ3FvYmlgLGJvdHRvbTpgYm90dG9tLWJ0YjJsbnZgLGxlZnQ6YGxlZnQtbDEzeGlnMzFgLHJpZ2h0OmByaWdodC1yemo1ZWpqYCx0cmFuc2Zvcm06YHRyYW5zZm9ybS10M2VkaWc4YCxmbGV4QmFzaXM6YGZsZXhCYXNpcy1mMmJzaXB0YCxmbGV4U2hyaW5rOmBmbGV4U2hyaW5rLWZhMWttZDZgLGZsZXhHcm93OmBmbGV4R3Jvdy1mMWlhc2N3b2AsZ3JpZFRlbXBsYXRlQ29sdW1uczpgZ3JpZFRlbXBsYXRlQ29sdW1ucy1nMXBjM2o1b2AsZ3JpZFRlbXBsYXRlUm93czpgZ3JpZFRlbXBsYXRlUm93cy1nc2Nha3ljYCxncmlkVGVtcGxhdGVBcmVhczpgZ3JpZFRlbXBsYXRlQXJlYXMtZ2JtdDF6emAsZ3JpZFRlbXBsYXRlOmBncmlkVGVtcGxhdGUtZzRtc3N1ZmAsZ3JpZEF1dG9Db2x1bW5zOmBncmlkQXV0b0NvbHVtbnMtZzE1bWp1MzlgLGdyaWRBdXRvUm93czpgZ3JpZEF1dG9Sb3dzLWdtbHV4eDZgLGdyaWRBdXRvRmxvdzpgZ3JpZEF1dG9GbG93LWcxdnlqM3hgLGdyaWQ6YGdyaWQtZzFreTV3MzlgLGdyaWRSb3dTdGFydDpgZ3JpZFJvd1N0YXJ0LWd3NnFrYWZgLGdyaWRDb2x1bW5TdGFydDpgZ3JpZENvbHVtblN0YXJ0LWdiMTd6cW1gLGdyaWRSb3dFbmQ6YGdyaWRSb3dFbmQtZzVzbmhjNmAsZ3JpZENvbHVtbkVuZDpgZ3JpZENvbHVtbkVuZC1nNmlmOGczYCxncmlkUm93OmBncmlkUm93LWdqZXVpcWVgLGdyaWRDb2x1bW46YGdyaWRDb2x1bW4tZ2FnanhobGAsZ3JpZEFyZWE6YGdyaWRBcmVhLWc3MWpqd3NgLG9wYWNpdHk6YG9wYWNpdHktb20xNWMydGAsekluZGV4OmB6SW5kZXgtejFkMHBjdmZgfSxlZmU9ezA6YF8wLV85aDhuZG1gLDE6YF8xLV8xZ3djbmIwYCwyOmBfMi1fMW5kY2xxa2B9LHRmZT17Zmc6YGZnLWYxOW96dDJ4YCxmZ0ludmVyc2U6YGZnSW52ZXJzZS1mMWphczljdmAsZmdNdXRlZDpgZmdNdXRlZC1maHhnbml2YCxmZ1ByaW1hcnk6YGZnUHJpbWFyeS1mNWtqNWR2YCxmZ1Bvc2l0aXZlOmBmZ1Bvc2l0aXZlLWZ2d2luNnhgLGZnTmVnYXRpdmU6YGZnTmVnYXRpdmUtZjFsOGppZjlgLGZnV2FybmluZzpgZmdXYXJuaW5nLWYxdHZvd2Z6YCxiZzpgYmctYmpocG9zZ2AsYmdBbHRlcm5hdGU6YGJnQWx0ZXJuYXRlLWIxd21yNjg2YCxiZ0ludmVyc2U6YGJnSW52ZXJzZS1iMXNibnhiZWAsYmdPdmVybGF5OmBiZ092ZXJsYXktYjEzYnM4enVgLGJnUHJpbWFyeTpgYmdQcmltYXJ5LWJwMzc5MmAsYmdQcmltYXJ5V2FzaDpgYmdQcmltYXJ5V2FzaC1iMTlmenJob2AsYmdTZWNvbmRhcnk6YGJnU2Vjb25kYXJ5LWIxd3hwOXZjYCxiZ1RlcnRpYXJ5OmBiZ1RlcnRpYXJ5LWJxZmRiOXNgLGJnU2Vjb25kYXJ5V2FzaDpgYmdTZWNvbmRhcnlXYXNoLWI3aXJwOHBgLGJnTmVnYXRpdmU6YGJnTmVnYXRpdmUtYjF2NzZ3Y3VgLGJnTmVnYXRpdmVXYXNoOmBiZ05lZ2F0aXZlV2FzaC1iOXhpNTA5YCxiZ1Bvc2l0aXZlOmBiZ1Bvc2l0aXZlLWIxaG14aXVkYCxiZ1Bvc2l0aXZlV2FzaDpgYmdQb3NpdGl2ZVdhc2gtYjFqMzltdDFgLGJnV2FybmluZzpgYmdXYXJuaW5nLWIxczcxYXAxYCxiZ1dhcm5pbmdXYXNoOmBiZ1dhcm5pbmdXYXNoLWIxNTd5cjFzYCxjdXJyZW50Q29sb3I6YGN1cnJlbnRDb2xvci1jMTQ2azUweWAsYmdMaW5lOmBiZ0xpbmUtYmNwY29xYCxiZ0xpbmVJbnZlcnNlOmBiZ0xpbmVJbnZlcnNlLWIxOHBnMHBiYCxiZ0xpbmVIZWF2eTpgYmdMaW5lSGVhdnktYjF2d2trOW9gLGJnTGluZVByaW1hcnk6YGJnTGluZVByaW1hcnktYm81MTJ2aGAsYmdMaW5lUHJpbWFyeVN1YnRsZTpgYmdMaW5lUHJpbWFyeVN1YnRsZS1iMWU3NzMxd2AsYmdFbGV2YXRpb24xOmBiZ0VsZXZhdGlvbjEtYjR3N2RmMmAsYmdFbGV2YXRpb24yOmBiZ0VsZXZhdGlvbjItYjFnYjBpZHFgLGFjY2VudFN1YnRsZUdyZWVuOmBhY2NlbnRTdWJ0bGVHcmVlbi1hMXBkOXo2YmAsYWNjZW50Qm9sZEdyZWVuOmBhY2NlbnRCb2xkR3JlZW4tYTE0M2V6bWNgLGFjY2VudFN1YnRsZUJsdWU6YGFjY2VudFN1YnRsZUJsdWUtYTFtbGl1cTJgLGFjY2VudEJvbGRCbHVlOmBhY2NlbnRCb2xkQmx1ZS1hdWVjNzEyYCxhY2NlbnRTdWJ0bGVQdXJwbGU6YGFjY2VudFN1YnRsZVB1cnBsZS1hMTdyajV5cGAsYWNjZW50Qm9sZFB1cnBsZTpgYWNjZW50Qm9sZFB1cnBsZS1hYzAwNGRxYCxhY2NlbnRTdWJ0bGVZZWxsb3c6YGFjY2VudFN1YnRsZVllbGxvdy1hMWMzYmljbmAsYWNjZW50Qm9sZFllbGxvdzpgYWNjZW50Qm9sZFllbGxvdy1hcm8yOGkyYCxhY2NlbnRTdWJ0bGVSZWQ6YGFjY2VudFN1YnRsZVJlZC1hMTJmeWZtNWAsYWNjZW50Qm9sZFJlZDpgYWNjZW50Qm9sZFJlZC1hMWlmcmh0YCxhY2NlbnRTdWJ0bGVHcmF5OmBhY2NlbnRTdWJ0bGVHcmF5LWFuNTd1OTJgLGFjY2VudEJvbGRHcmF5OmBhY2NlbnRCb2xkR3JheS1hZ3N2ODVsYCx0cmFuc3BhcmVudDpgdHJhbnNwYXJlbnQtdHQ3ZXRiYH0sbmZlPXtmZzpgZmctZjFndDRiMXBgLGZnSW52ZXJzZTpgZmdJbnZlcnNlLWY4Zjd0aWAsZmdNdXRlZDpgZmdNdXRlZC1mMXVkYTRlbWAsZmdQcmltYXJ5OmBmZ1ByaW1hcnktZjEwMXMxMHNgLGZnUG9zaXRpdmU6YGZnUG9zaXRpdmUtZnVleGV2amAsZmdOZWdhdGl2ZTpgZmdOZWdhdGl2ZS1mZnJtZmFlYCxmZ1dhcm5pbmc6YGZnV2FybmluZy1mODQwZGtgLGJnOmBiZy1iNzA5NzRjYCxiZ0FsdGVybmF0ZTpgYmdBbHRlcm5hdGUtYjEzM2QxcGdgLGJnSW52ZXJzZTpgYmdJbnZlcnNlLWIxb3QzcWVnYCxiZ092ZXJsYXk6YGJnT3ZlcmxheS1iMWkxMXQ0YCxiZ1ByaW1hcnk6YGJnUHJpbWFyeS1iMXNzNHAxaGAsYmdQcmltYXJ5V2FzaDpgYmdQcmltYXJ5V2FzaC1iaWxpbzExYCxiZ1NlY29uZGFyeTpgYmdTZWNvbmRhcnktYjQzdmZoeGAsYmdUZXJ0aWFyeTpgYmdUZXJ0aWFyeS1iZDNsdXBkYCxiZ1NlY29uZGFyeVdhc2g6YGJnU2Vjb25kYXJ5V2FzaC1ia2hmNTZxYCxiZ05lZ2F0aXZlOmBiZ05lZ2F0aXZlLWIxNHBzMWJ4YCxiZ05lZ2F0aXZlV2FzaDpgYmdOZWdhdGl2ZVdhc2gtYjF5cWJuN3hgLGJnUG9zaXRpdmU6YGJnUG9zaXRpdmUtYnppN3p2ZGAsYmdQb3NpdGl2ZVdhc2g6YGJnUG9zaXRpdmVXYXNoLWIxN2E5aTk1YCxiZ1dhcm5pbmc6YGJnV2FybmluZy1iMWJjM3JqaWAsYmdXYXJuaW5nV2FzaDpgYmdXYXJuaW5nV2FzaC1iMTF3Yzk5YWAsY3VycmVudENvbG9yOmBjdXJyZW50Q29sb3ItY3BwdDZ2OWAsYmdMaW5lOmBiZ0xpbmUtYjdkcnNnbGAsYmdMaW5lSW52ZXJzZTpgYmdMaW5lSW52ZXJzZS1iMTNrdnM4NWAsYmdMaW5lSGVhdnk6YGJnTGluZUhlYXZ5LWJnNHY5ajFgLGJnTGluZVByaW1hcnk6YGJnTGluZVByaW1hcnktYjJjYTR0N2AsYmdMaW5lUHJpbWFyeVN1YnRsZTpgYmdMaW5lUHJpbWFyeVN1YnRsZS1ibTNseWJ6YCxiZ0VsZXZhdGlvbjE6YGJnRWxldmF0aW9uMS1iZzdmOGQ3YCxiZ0VsZXZhdGlvbjI6YGJnRWxldmF0aW9uMi1iZWEzcTd3YCxhY2NlbnRTdWJ0bGVHcmVlbjpgYWNjZW50U3VidGxlR3JlZW4tYXhzZTN2YmAsYWNjZW50Qm9sZEdyZWVuOmBhY2NlbnRCb2xkR3JlZW4tYTFsYmNwb2lgLGFjY2VudFN1YnRsZUJsdWU6YGFjY2VudFN1YnRsZUJsdWUtYXl2dnFhZWAsYWNjZW50Qm9sZEJsdWU6YGFjY2VudEJvbGRCbHVlLWF3dzhweXVgLGFjY2VudFN1YnRsZVB1cnBsZTpgYWNjZW50U3VidGxlUHVycGxlLWExNDl5YTc1YCxhY2NlbnRCb2xkUHVycGxlOmBhY2NlbnRCb2xkUHVycGxlLWExeTZ4ZmQ5YCxhY2NlbnRTdWJ0bGVZZWxsb3c6YGFjY2VudFN1YnRsZVllbGxvdy1hYzdzN2JnYCxhY2NlbnRCb2xkWWVsbG93OmBhY2NlbnRCb2xkWWVsbG93LWFkcHNmZjhgLGFjY2VudFN1YnRsZVJlZDpgYWNjZW50U3VidGxlUmVkLWF2Nnh4Zm9gLGFjY2VudEJvbGRSZWQ6YGFjY2VudEJvbGRSZWQtYTF3Z2g2d2FgLGFjY2VudFN1YnRsZUdyYXk6YGFjY2VudFN1YnRsZUdyYXktYTEzczZmeGVgLGFjY2VudEJvbGRHcmF5OmBhY2NlbnRCb2xkR3JheS1hc3U4eGZ0YCx0cmFuc3BhcmVudDpgdHJhbnNwYXJlbnQtdDE2cjNuNnVgfSxyZmU9e2ZnOmBmZy1mc2FyMDhkYCxmZ0ludmVyc2U6YGZnSW52ZXJzZS1mNHF5NTBrYCxmZ011dGVkOmBmZ011dGVkLWYxZXk4bXF2YCxmZ1ByaW1hcnk6YGZnUHJpbWFyeS1meGR4bDFqYCxmZ1Bvc2l0aXZlOmBmZ1Bvc2l0aXZlLWYxZ3lxcXN6YCxmZ05lZ2F0aXZlOmBmZ05lZ2F0aXZlLWYyenhkN21gLGZnV2FybmluZzpgZmdXYXJuaW5nLWZxcGZqbnJgLGJnOmBiZy1iaGc5OGNsYCxiZ0FsdGVybmF0ZTpgYmdBbHRlcm5hdGUtYnRycWFpcGAsYmdJbnZlcnNlOmBiZ0ludmVyc2UtYjE3ZzVqZzhgLGJnT3ZlcmxheTpgYmdPdmVybGF5LWIxMGRkb2R3YCxiZ1ByaW1hcnk6YGJnUHJpbWFyeS1iazR5MW9qYCxiZ1ByaW1hcnlXYXNoOmBiZ1ByaW1hcnlXYXNoLWIxdGZqMGp4YCxiZ1NlY29uZGFyeTpgYmdTZWNvbmRhcnktYjJ5aXhzeGAsYmdUZXJ0aWFyeTpgYmdUZXJ0aWFyeS1ibGZtbHpgLGJnU2Vjb25kYXJ5V2FzaDpgYmdTZWNvbmRhcnlXYXNoLWIxM28wbG0yYCxiZ05lZ2F0aXZlOmBiZ05lZ2F0aXZlLWJhenNucXFgLGJnTmVnYXRpdmVXYXNoOmBiZ05lZ2F0aXZlV2FzaC1idzY2NWdgLGJnUG9zaXRpdmU6YGJnUG9zaXRpdmUtYmlwMnY0b2AsYmdQb3NpdGl2ZVdhc2g6YGJnUG9zaXRpdmVXYXNoLWIxbzNqdjJyYCxiZ1dhcm5pbmc6YGJnV2FybmluZy1iYmh3M3pwYCxiZ1dhcm5pbmdXYXNoOmBiZ1dhcm5pbmdXYXNoLWJ2ZmM0dHlgLGN1cnJlbnRDb2xvcjpgY3VycmVudENvbG9yLWNoNTlpd2RgLGJnTGluZTpgYmdMaW5lLWIxY3RoOXdrYCxiZ0xpbmVJbnZlcnNlOmBiZ0xpbmVJbnZlcnNlLWJkY3E5ZTNgLGJnTGluZUhlYXZ5OmBiZ0xpbmVIZWF2eS1iMWNpNzd1YWAsYmdMaW5lUHJpbWFyeTpgYmdMaW5lUHJpbWFyeS1ibGw1MzV0YCxiZ0xpbmVQcmltYXJ5U3VidGxlOmBiZ0xpbmVQcmltYXJ5U3VidGxlLWIxeDZmM2QwYCxiZ0VsZXZhdGlvbjE6YGJnRWxldmF0aW9uMS1idWZtZG1jYCxiZ0VsZXZhdGlvbjI6YGJnRWxldmF0aW9uMi1iMWd0cnhvM2AsYWNjZW50U3VidGxlR3JlZW46YGFjY2VudFN1YnRsZUdyZWVuLWFwOG1qMXFgLGFjY2VudEJvbGRHcmVlbjpgYWNjZW50Qm9sZEdyZWVuLWFpMWc5OGhgLGFjY2VudFN1YnRsZUJsdWU6YGFjY2VudFN1YnRsZUJsdWUtYTF2dm42ZHhgLGFjY2VudEJvbGRCbHVlOmBhY2NlbnRCb2xkQmx1ZS1hMXhnZ2hybWAsYWNjZW50U3VidGxlUHVycGxlOmBhY2NlbnRTdWJ0bGVQdXJwbGUtYTFkd212cnNgLGFjY2VudEJvbGRQdXJwbGU6YGFjY2VudEJvbGRQdXJwbGUtYWQybnQ3OGAsYWNjZW50U3VidGxlWWVsbG93OmBhY2NlbnRTdWJ0bGVZZWxsb3ctYTFudm83NTlgLGFjY2VudEJvbGRZZWxsb3c6YGFjY2VudEJvbGRZZWxsb3ctYTFnaWg4NzJgLGFjY2VudFN1YnRsZVJlZDpgYWNjZW50U3VidGxlUmVkLWF3dHJyMzJgLGFjY2VudEJvbGRSZWQ6YGFjY2VudEJvbGRSZWQtYThhMTJ5NGAsYWNjZW50U3VidGxlR3JheTpgYWNjZW50U3VidGxlR3JheS1hMWF3cGF4aGAsYWNjZW50Qm9sZEdyYXk6YGFjY2VudEJvbGRHcmF5LWFiNjhkeTFgLHRyYW5zcGFyZW50OmB0cmFuc3BhcmVudC10MWY2d2c2ZGB9LGlmZT17MDpgXzAtX28wN3V1Z2AsMTAwOmBfMTAwLV9uYmtzYzNgLDIwMDpgXzIwMC1fMWF5NW4yemAsMzAwOmBfMzAwLV8yMTM4dDZgLDQwMDpgXzQwMC1fam80ems4YCw1MDA6YF81MDAtXzZxODUydmB9LGFmZT17MDpgXzAtX2p3aWR6dmAsMTAwOmBfMTAwLV83eWJscGNgLDIwMDpgXzIwMC1fMXlram9pOWAsMzAwOmBfMzAwLV8xdnYxeHYyYCw0MDA6YF80MDAtX2RhcXZ2YmAsNTAwOmBfNTAwLV8xbnhxbGVuYH0sb2ZlPXswOmBfMC1fMWY2aGJnN2AsMTAwOmBfMTAwLV85MjF6NThgLDIwMDpgXzIwMC1fMWdpMWl3eGAsMzAwOmBfMzAwLV8xOGh6NDZ2YCw0MDA6YF80MDAtXzFweTh5c2tgLDUwMDpgXzUwMC1fMTY0YnNidmB9LHNmZT17MDpgXzAtX28xYjMzdWAsMTAwOmBfMTAwLV8zZDI3M3pgLDIwMDpgXzIwMC1fbzFwb2JoYCwzMDA6YF8zMDAtXzFnNDNqbjhgLDQwMDpgXzQwMC1fMWw1dnZramAsNTAwOmBfNTAwLV8yZ2Fvd2ZgfSxjZmU9ezA6YF8wLV8xYXRucDByYCwxMDA6YF8xMDAtX3FuZnZmdGAsMjAwOmBfMjAwLV8xZ2JudnUzYCwzMDA6YF8zMDAtX2Z5Y3FrcGAsNDAwOmBfNDAwLV8xYmFzbjM2YCw1MDA6YF81MDAtX3kwMzl4Y2B9LGxmZT17MDpgXzAtX2JqcnExcWAsMTAwOmBfMTAwLV8xdDFoZnA1YCwyMDA6YF8yMDAtXzFrYTg0M2xgLDMwMDpgXzMwMC1fMTB4dG56c2AsNDAwOmBfNDAwLV8xd2VpYmQ4YCw1MDA6YF81MDAtXzFqNnUxd2FgLDYwMDpgXzYwMC1fMWlrcW43cGAsNzAwOmBfNzAwLV9pY2t0dDRgLDgwMDpgXzgwMC1fMTU3cGZremAsOTAwOmBfOTAwLV81dHEzNDRgLDFlMzpgXzEwMDAtX2psenltd2B9LHVmZT17MDpgXzAtXzEzYTRjcndgLDEwMDpgXzEwMC1fMTZlNmd6b2AsMjAwOmBfMjAwLV82bzJwM2ZgLDMwMDpgXzMwMC1fbDFraW9jYCw0MDA6YF80MDAtX2Q1NnRod2AsNTAwOmBfNTAwLV9kNHYzaXVgLDYwMDpgXzYwMC1fMXJmN3l6c2AsNzAwOmBfNzAwLV8xdHJ5bjNjYCw4MDA6YF84MDAtXzFsbHRlM3ZgLDkwMDpgXzkwMC1fMWxza3gzaWAsMWUzOmBfMTAwMC1fbXRyZHBuYH0sZGZlPXswOmBfMC1fMW5hOHFrY2AsMTAwOmBfMTAwLV8xODloNnluYCwyMDA6YF8yMDAtXzE2ZXp1eDNgLDMwMDpgXzMwMC1fM3c2cWFhYCw0MDA6YF80MDAtXzE5dHBybjFgLDUwMDpgXzUwMC1fMWs5MHoxdWAsNjAwOmBfNjAwLV9raXZuOWJgLDcwMDpgXzcwMC1fMTJkenZkdmAsODAwOmBfODAwLV9pYXMwamRgLDkwMDpgXzkwMC1fc3B6bWN1YCwxZTM6YF8xMDAwLV9jdmtybHFgfSxmZmU9ezA6YF8wLV8xOGtrbmczYCwxMDA6YF8xMDAtX2MxZ2g2ZGAsMjAwOmBfMjAwLV94aWxqcmxgLDMwMDpgXzMwMC1fMWs0cjZnOGAsNDAwOmBfNDAwLV95MzdmMHVgLDUwMDpgXzUwMC1feXRvZzVoYCw2MDA6YF82MDAtX2gzNjczOGAsNzAwOmBfNzAwLV8xYWhqNHF2YCw4MDA6YF84MDAtX2xsNGJzd2AsOTAwOmBfOTAwLV8xOGQ2eGRhYCwxZTM6YF8xMDAwLV92d251dHdgfSxwZmU9ezA6YF8wLV8xOHF2a3UwYCwxMDA6YF8xMDAtX3AydWZpNGAsMjAwOmBfMjAwLV9weG16eDVgLDMwMDpgXzMwMC1fOXZuZzkxYCw0MDA6YF80MDAtX3JqNWFrdGAsNTAwOmBfNTAwLV94YzE1eGlgLDYwMDpgXzYwMC1fMXJmZGQ0cmAsNzAwOmBfNzAwLV8zdHdzY3RgLDgwMDpgXzgwMC1fY25tN2MxYCw5MDA6YF85MDAtXzF5dHU5dXdgLDFlMzpgXzEwMDAtXzF4dGlkcmlgfSxtZmU9e2luaGVyaXQ6YGluaGVyaXQtaTF1N2M3OWpgLGRpc3BsYXkxOmBkaXNwbGF5MS1kMXVwbzg5YmAsZGlzcGxheTI6YGRpc3BsYXkyLWQxbHZheXFlYCxkaXNwbGF5MzpgZGlzcGxheTMtZDFxd3dmaWFgLHRpdGxlMTpgdGl0bGUxLXQxZDhlemo4YCx0aXRsZTI6YHRpdGxlMi10b3IxMWx4YCx0aXRsZTM6YHRpdGxlMy10MWhiejRteWAsdGl0bGU0OmB0aXRsZTQtdDh5eWYwNmAsaGVhZGxpbmU6YGhlYWRsaW5lLWh5bDlsYmtgLGJvZHk6YGJvZHktYjFyeDhtNW5gLGxhYmVsMTpgbGFiZWwxLWxnZGNuY2tgLGxhYmVsMjpgbGFiZWwyLWw1aHY0aWpgLGNhcHRpb246YGNhcHRpb24tY3c4OXdwcGAsbGVnYWw6YGxlZ2FsLWxpNWV5djRgfSxoZmU9e2luaGVyaXQ6YGluaGVyaXQtaTF4NmRzNzFgLGRpc3BsYXkxOmBkaXNwbGF5MS1kNnB2dXJ2YCxkaXNwbGF5MjpgZGlzcGxheTItZDFpZjd4dXZgLGRpc3BsYXkzOmBkaXNwbGF5My1kNGhzMHk5YCx0aXRsZTE6YHRpdGxlMS10MWRhcmFlZGAsdGl0bGUyOmB0aXRsZTItdDFuaWhqanhgLHRpdGxlMzpgdGl0bGUzLXQxNzdkMWszYCx0aXRsZTQ6YHRpdGxlNC10MXhjc2JreGAsaGVhZGxpbmU6YGhlYWRsaW5lLWh4NGp1dnJgLGJvZHk6YGJvZHktYjF5dWZkMnJgLGxhYmVsMTpgbGFiZWwxLWx5bTl1OTVgLGxhYmVsMjpgbGFiZWwyLWwxcjNodTVoYCxjYXB0aW9uOmBjYXB0aW9uLWMxdWxvbzEyYCxsZWdhbDpgbGVnYWwtbDkzdjA2NGB9LGdmZT17aW5oZXJpdDpgaW5oZXJpdC1pMXczaGJmZmAsZGlzcGxheTE6YGRpc3BsYXkxLWRkM29naGtgLGRpc3BsYXkyOmBkaXNwbGF5Mi1kcW15NGsxYCxkaXNwbGF5MzpgZGlzcGxheTMtZDE0eWY5MnVgLHRpdGxlMTpgdGl0bGUxLXQxOTVvem5zYCx0aXRsZTI6YHRpdGxlMi10NnRjenlgLHRpdGxlMzpgdGl0bGUzLXQxODVobWw0YCx0aXRsZTQ6YHRpdGxlNC10MWlrcm9xdGAsaGVhZGxpbmU6YGhlYWRsaW5lLWg2djZiOGAsYm9keTpgYm9keS1iMWxjcmF6ZmAsbGFiZWwxOmBsYWJlbDEtbHVnZWE3d2AsbGFiZWwyOmBsYWJlbDItbDEyOXNhempgLGNhcHRpb246YGNhcHRpb24tY3E5NHl5ZmAsbGVnYWw6YGxlZ2FsLWx3ZXJ5OTdgfSxfZmU9e2luaGVyaXQ6YGluaGVyaXQtaXp4eTltM2AsZGlzcGxheTE6YGRpc3BsYXkxLWQxYjU3ZjJ0YCxkaXNwbGF5MjpgZGlzcGxheTItZGd5dHk0aGAsZGlzcGxheTM6YGRpc3BsYXkzLWRxZDJhdm5gLHRpdGxlMTpgdGl0bGUxLXQ0czRyeG5gLHRpdGxlMjpgdGl0bGUyLXQxbTJwcmdhYCx0aXRsZTM6YHRpdGxlMy10MWZ1MWFieWAsdGl0bGU0OmB0aXRsZTQtdHQ1dHU4NmAsaGVhZGxpbmU6YGhlYWRsaW5lLWhiNjlzM2JgLGJvZHk6YGJvZHktYjhjcWkycmAsbGFiZWwxOmBsYWJlbDEtbG91OXQ0emAsbGFiZWwyOmBsYWJlbDItbDFxN3F0a2pgLGNhcHRpb246YGNhcHRpb24tY3ViZjV1aWAsbGVnYWw6YGxlZ2FsLWwxbjE5eGxyYH0sdmZlPXtub25lOmBub25lLW4xZWd1eHBpYCx1bmRlcmxpbmU6YHVuZGVybGluZS11bG4zenRtYCxvdmVybGluZTpgb3ZlcmxpbmUtbzE4Y2xqbzBgLCJsaW5lLXRocm91Z2giOmBsaW5lLXRocm91Z2gtbDFpOGVxc2JgLCJ1bmRlcmxpbmUgb3ZlcmxpbmUiOmB1bmRlcmxpbmVfb3ZlcmxpbmUtdTF3aGd0Z3BgLCJ1bmRlcmxpbmUgZG91YmxlIjpgdW5kZXJsaW5lX2RvdWJsZS11dW4yYThpYH0seWZlPXtub25lOmBub25lLW5kM2VuZ2tgLHVwcGVyY2FzZTpgdXBwZXJjYXNlLXU5anZxdWAsbG93ZXJjYXNlOmBsb3dlcmNhc2UtbDFoZWc4MmdgLGNhcGl0YWxpemU6YGNhcGl0YWxpemUtYzFzenBvdDBgfSxiZmU9e25vbmU6YG5vbmUtbjF2a3V0enVgLHRleHQ6YHRleHQtdDFweDQ5eW5gLGFsbDpgYWxsLWFhbDNheG1gLGF1dG86YGF1dG8tYTFrZjlnamVgfSx4ZmU9e25vbmU6YG5vbmUtbnJycDV1NGAsYmxvY2s6YGJsb2NrLWJxcjAyY21gLGlubGluZTpgaW5saW5lLWkxa3EzMTNoYCwiaW5saW5lLWJsb2NrIjpgaW5saW5lLWJsb2NrLWl1aWV3ODlgLGZsZXg6YGZsZXgtZnd0cW9ibWAsImlubGluZS1mbGV4IjpgaW5saW5lLWZsZXgtaWxoa2lpY2AsZ3JpZDpgZ3JpZC1nZjJncjgzYCwiaW5saW5lLWdyaWQiOmBpbmxpbmUtZ3JpZC1pMWJjaWllbGAsY29udGVudHM6YGNvbnRlbnRzLWM2MWs5bjVgLCJmbG93LXJvb3QiOmBmbG93LXJvb3QtZmhxbjZlaGAscmV2ZXJ0OmByZXZlcnQtcm04dzRkd2AsImxpc3QtaXRlbSI6YGxpc3QtaXRlbS1senkxbjd0YH0sU2ZlPXthdXRvOmBhdXRvLWExcGR0bmk3YCx2aXNpYmxlOmB2aXNpYmxlLXYxZTg1OTBwYCxoaWRkZW46YGhpZGRlbi1oYmpwbHllYCxjbGlwOmBjbGlwLWMxc3VxMnJ0YCxzY3JvbGw6YHNjcm9sbC1zYXlhNWc4YH0sQ2ZlPXswOmBfMC1fMmVxajR2YCwiMC4yNSI6YF8wXzI1LV82cjBrN21gLCIwLjUiOmBfMF81LV8xOWN0cmIzYCwiMC43NSI6YF8wXzc1LV8xYWx2MTE3YCwxOmBfMS1fMXgxbmJ1eGAsIjEuNSI6YF8xXzUtXzFpNGphcjhgLDI6YF8yLV8xYWN6OTlnYCwzOmBfMy1fMTJuMXNweWAsNDpgXzQtXzFzdTFnaTRgLDU6YF81LV8xOHJ3c2xgLDY6YF82LV9pczdleGJgLDc6YF83LV93NW5wOG9gLDg6YF84LV8xNW5zYjVmYCw5OmBfOS1fMTRxd3J4aWAsMTA6YF8xMC1fOGduOHp0YH0sd2ZlPXswOmBfMC1fbGdpdmx1YCwiMC4yNSI6YF8wXzI1LV84MWdvajdgLCIwLjUiOmBfMF81LV8xaWFpcW9gLCIwLjc1IjpgXzBfNzUtX2IzbTlqcGAsMTpgXzEtX3lzbnd2M2AsIjEuNSI6YF8xXzUtXzNsOWFicmAsMjpgXzItXzExdXJ6c3hgLDM6YF8zLV8xeWw0amF4YCw0OmBfNC1fb3pybnBqYCw1OmBfNS1fdGEwYmg2YCw2OmBfNi1fMTh5c2h3NGAsNzpgXzctXzFmM3NkYndgLDg6YF84LV9peWtxaWJgLDk6YF85LV8xaG90OWU1YCwxMDpgXzEwLV80dDVpdGVgfSxUZmU9ezA6YF8wLV9oM2Jja3lgLCIwLjI1IjpgXzBfMjUtXzFmdjNnOGNgLCIwLjUiOmBfMF81LV8xM2IwMjdgLCIwLjc1IjpgXzBfNzUtXzEyMXF3dzlgLDE6YF8xLV8xeWZmajF2YCwiMS41IjpgXzFfNS1fZjltOWIwYCwyOmBfMi1fMW9pODloa2AsMzpgXzMtXzFxZmQwbTFgLDQ6YF80LV9jY2s5eDdgLDU6YF81LV9lNXlseWpgLDY6YF82LV81cGg0ejBgLDc6YF83LV8xNjk4eHh4YCw4OmBfOC1fZjczdDF2YCw5OmBfOS1fMWdjZWhpNGAsMTA6YF8xMC1feWNxczR6YH0sRWZlPXtub3JtYWw6YG5vcm1hbC1uamVmZnZnYCxjZW50ZXI6YGNlbnRlci1jMXZ0aDNuZGAsc3RhcnQ6YHN0YXJ0LXMxcXFzaWFsYCxlbmQ6YGVuZC1lcXRrNHl2YCwiZmxleC1zdGFydCI6YGZsZXgtc3RhcnQtZmczczBvc2AsImZsZXgtZW5kIjpgZmxleC1lbmQtZmJrcnVua2AsbGVmdDpgbGVmdC1sY2xoeTlqYCxyaWdodDpgcmlnaHQtcmRyeTlnZmAsInNwYWNlLWJldHdlZW4iOmBzcGFjZS1iZXR3ZWVuLXNnMGg0OXlgLCJzcGFjZS1hcm91bmQiOmBzcGFjZS1hcm91bmQtc3c1bzYxd2AsInNwYWNlLWV2ZW5seSI6YHNwYWNlLWV2ZW5seS1zY2M5bDJxYCxzdHJldGNoOmBzdHJldGNoLXNjd2cyeW9gfSxEZmU9e25vcm1hbDpgbm9ybWFsLW4xaDJnN2Y1YCxjZW50ZXI6YGNlbnRlci1jMWh6NmFzZmAsc3RhcnQ6YHN0YXJ0LXMxYTkzeHo1YCxlbmQ6YGVuZC1lMWl4eGlqOWAsImZsZXgtc3RhcnQiOmBmbGV4LXN0YXJ0LWYxd2kxYWllYCwiZmxleC1lbmQiOmBmbGV4LWVuZC1mNGV3Z3NlYCwic3BhY2UtYmV0d2VlbiI6YHNwYWNlLWJldHdlZW4tczEyNzE2ejlgLCJzcGFjZS1hcm91bmQiOmBzcGFjZS1hcm91bmQtczFpMnl5d2tgLCJzcGFjZS1ldmVubHkiOmBzcGFjZS1ldmVubHktczFrY2RrNnpgLHN0cmV0Y2g6YHN0cmV0Y2gtczExamcwZGtgLGJhc2VsaW5lOmBiYXNlbGluZS1iMWo1b3E2NGAsImZpcnN0IGJhc2VsaW5lIjpgZmlyc3RfYmFzZWxpbmUtZjFsbWd5OHRgLCJsYXN0IGJhc2VsaW5lIjpgbGFzdF9iYXNlbGluZS1sMWYyMGoyNGB9LE9mZT17bm9ybWFsOmBub3JtYWwtbjF0OXFqdTNgLGNlbnRlcjpgY2VudGVyLWMzemprNmAsc3RhcnQ6YHN0YXJ0LXNmMG8zMWZgLGVuZDpgZW5kLWUxNWdvdnc4YCwiZmxleC1zdGFydCI6YGZsZXgtc3RhcnQtZnU5ZGRjeGAsImZsZXgtZW5kIjpgZmxleC1lbmQtZjEwcXJ6cmlgLCJzZWxmLXN0YXJ0Ijpgc2VsZi1zdGFydC1zbjM4cnRzYCwic2VsZi1lbmQiOmBzZWxmLWVuZC1zNm51bXhzYCxzdHJldGNoOmBzdHJldGNoLXMxZTljenRuYCxiYXNlbGluZTpgYmFzZWxpbmUtYjE1M3BseXFgLCJmaXJzdCBiYXNlbGluZSI6YGZpcnN0X2Jhc2VsaW5lLWZpbzFzMHdgLCJsYXN0IGJhc2VsaW5lIjpgbGFzdF9iYXNlbGluZS1sMWx5eTU5YH0sa2ZlPXthdXRvOmBhdXRvLWExY2tjdnU1YCxub3JtYWw6YG5vcm1hbC1uMTU3eTR3YmAsY2VudGVyOmBjZW50ZXItYzV6ZmFmaGAsc3RhcnQ6YHN0YXJ0LXM4MDl1Mm5gLGVuZDpgZW5kLWUxdDEyM3I1YCwiZmxleC1zdGFydCI6YGZsZXgtc3RhcnQtZjFmM3YyZ21gLCJmbGV4LWVuZCI6YGZsZXgtZW5kLWZ5cmloY3JgLCJzZWxmLXN0YXJ0Ijpgc2VsZi1zdGFydC1zcmNuNmJrYCwic2VsZi1lbmQiOmBzZWxmLWVuZC1zNHpjNmduYCxzdHJldGNoOmBzdHJldGNoLXMxZ2tiend4YCxiYXNlbGluZTpgYmFzZWxpbmUtYmRvY21lemAsImZpcnN0IGJhc2VsaW5lIjpgZmlyc3RfYmFzZWxpbmUtZjcyYXZhbGAsImxhc3QgYmFzZWxpbmUiOmBsYXN0X2Jhc2VsaW5lLWwxb3U3Y2d4YH0sQWZlPXtyb3c6YHJvdy1yMXlxNXRtNmAsInJvdy1yZXZlcnNlIjpgcm93LXJldmVyc2UtcjNrZ2xkdmAsY29sdW1uOmBjb2x1bW4tY2RnZDlxZ2AsImNvbHVtbi1yZXZlcnNlIjpgY29sdW1uLXJldmVyc2UtY2hic2w3eGB9LGpmZT17bm93cmFwOmBub3dyYXAtbjFzMTlxajdgLHdyYXA6YHdyYXAtdzFkOHdmczJgLCJ3cmFwLXJldmVyc2UiOmB3cmFwLXJldmVyc2UtdzFraXVmYjFgfSxNZmU9e3N0YXRpYzpgc3RhdGljLXMxMjRoMWx3YCxyZWxhdGl2ZTpgcmVsYXRpdmUtcnd5bm1wbmAsYWJzb2x1dGU6YGFic29sdXRlLWExMnpoand5YCxmaXhlZDpgZml4ZWQtZjFzNG1wMDdgLHN0aWNreTpgc3RpY2t5LXM4anIxMzFgfSxOZmU9ezA6YF8wLV8yY3U2bzdgLCIwLjI1IjpgXzBfMjUtXzF4NWhlZjlgLCIwLjUiOmBfMF81LV9ndDZ1MDdgLCIwLjc1IjpgXzBfNzUtXzFpNnE4MmVgLDE6YF8xLV8xZmN0bzFqYCwiMS41IjpgXzFfNS1fMWYwOHc2emAsMjpgXzItXzFuZjN3aDJgLDM6YF8zLV9laWZ4N3ZgLDQ6YF80LV9pNmI3bnZgLDU6YF81LV8xbzY1ZWlqYCw2OmBfNi1fMWRpNG12aWAsNzpgXzctX3ZveG04d2AsODpgXzgtXzFkMGk0dGlgLDk6YF85LV8xYmd6aWZnYCwxMDpgXzEwLV8xbGNyNjhoYH0sUGZlPXswOmBfMC1fMWFoNzBkeWAsIjAuMjUiOmBfMF8yNS1fbnZlMjFuYCwiMC41IjpgXzBfNS1fOGtsbWc2YCwiMC43NSI6YF8wXzc1LV9kNm1haHZgLDE6YF8xLV81Z2ZpenNgLCIxLjUiOmBfMV81LV81Ymc3ejVgLDI6YF8yLV8xMHNidWpvYCwzOmBfMy1fMWRzNmdiNWAsNDpgXzQtXzExNXBrYXVgLDU6YF81LV8xOXl4b25lYCw2OmBfNi1fMTc0ZXg4YmAsNzpgXzctXzFzNjFuNHdgLDg6YF84LV9ocnJhbzRgLDk6YF85LV93YTBqNXFgLDEwOmBfMTAtX2tycnhlZGB9LEZmZT17MDpgXzAtX2poNzFxOWAsIjAuMjUiOmBfMF8yNS1fc2I2a21sYCwiMC41IjpgXzBfNS1fNXgwMWNnYCwiMC43NSI6YF8wXzc1LV8xcjY0ZGxrYCwxOmBfMS1fdTZwNTc1YCwiMS41IjpgXzFfNS1fMXF0MXp0eWAsMjpgXzItXzQwamM2ZGAsMzpgXzMtXzF3Zmd5aTBgLDQ6YF80LV95NGdkNWhgLDU6YF81LV8xbWlhamx2YCw2OmBfNi1fMWNrc212cWAsNzpgXzctXzF4ZDQyZDBgLDg6YF84LV8xbWhxYTczYCw5OmBfOS1fMXExcjRrOWAsMTA6YF8xMC1fMTRmaDRzZGB9LElmZT17MDpgXzAtX2R5bjRwYmAsIjAuMjUiOmBfMF8yNS1fMWF6ZWNjb2AsIjAuNSI6YF8wXzUtXzFsMXRmbHFgLCIwLjc1IjpgXzBfNzUtXzI0aWRrZWAsMTpgXzEtXzF2cDh0NGJgLCIxLjUiOmBfMV81LV8xZmhpN3RmYCwyOmBfMi1fMXZzb3NkMGAsMzpgXzMtXzFhbDJqeDNgLDQ6YF80LV9vNnI4cTdgLDU6YF81LV8xc29hcnI3YCw2OmBfNi1fMXdqbTl1OGAsNzpgXzctXzE3aTJ3eDhgLDg6YF84LV93NGhteW1gLDk6YF85LV8xYWdzdGVpYCwxMDpgXzEwLV83Ymc0NGZgfSxMZmU9ezA6YF8wLV95N2ZueWhgLCIwLjI1IjpgXzBfMjUtXzEwM3pzMG9gLCIwLjUiOmBfMF81LV9zOGFzOGtgLCIwLjc1IjpgXzBfNzUtXzE3OW1kdXFgLDE6YF8xLV93NTIwdXRgLCIxLjUiOmBfMV81LV8xajZ3ZXc3YCwyOmBfMi1fa2d4ZnR3YCwzOmBfMy1fbHc3MnRnYCw0OmBfNC1fMXFtZWlqd2AsNTpgXzUtX3FmeHE3M2AsNjpgXzYtXzFqMnRwYndgLDc6YF83LV8xZzllY3h1YCw4OmBfOC1fc2l3M241YCw5OmBfOS1fMThwdHJ3MmAsMTA6YF8xMC1fMTV3bDBzd2B9LFJmZT17MDpgXzAtXzE5bm9ncDlgLCIwLjI1IjpgXzBfMjUtXzloYWFhaGAsIjAuNSI6YF8wXzUtX2I4dDlueWAsIjAuNzUiOmBfMF83NS1fOWR0Z3hrYCwxOmBfMS1fMWR5ZTF6OGAsIjEuNSI6YF8xXzUtXzEzdWpscm1gLDI6YF8yLV8xcjdncGxuYCwzOmBfMy1fd2VwNDgwYCw0OmBfNC1fMWx1dnJ6d2AsNTpgXzUtXzFrbDg2ejNgLDY6YF82LV8xdmVma3R4YCw3OmBfNy1fMWgzYmxwbmAsODpgXzgtXzFqNTJ1czdgLDk6YF85LV8xNTBrZDhkYCwxMDpgXzEwLV81bGp4emRgfSx6ZmU9ezA6YF8wLV9tZ29uNHdgLCIwLjI1IjpgXzBfMjUtXzFxejhiZzRgLCIwLjUiOmBfMF81LV9pOGFwdWJgLCIwLjc1IjpgXzBfNzUtXzF5aGlhOHlgLDE6YF8xLV9kc3BrZ3VgLCIxLjUiOmBfMV81LV8xODU3czJiYCwyOmBfMi1fbGV6YzVoYCwzOmBfMy1fcXNzZWo2YCw0OmBfNC1fMWsxNWxhdWAsNTpgXzUtXzE5a29tZ2NgLDY6YF82LV84N2FjOG9gLDc6YF83LV9sMWtvYzFgLDg6YF84LV8xZ3NhM3M5YCw5OmBfOS1faXJ3cjRyYCwxMDpgXzEwLV90eG9heXBgfSxCZmU9ezA6YF8wLV8xNzBveDluYCwiLTAuMjUiOmBfLTBfMjUtLTUyMDcyZWAsIi0wLjUiOmBfLTBfNS0tczY0cW8xYCwiLTAuNzUiOmBfLTBfNzUtLTFwZjlsNnRgLCItMSI6YF8tMS0tMWRzbzRuZ2AsIi0xLjUiOmBfLTFfNS0tMXV3bG1ucWAsIi0yIjpgXy0yLS04NzM4cWpgLCItMyI6YF8tMy0tbXBreDNvYCwiLTQiOmBfLTQtLTFnMDk0MDNgLCItNSI6YF8tNS0tMTd6bmFtYWAsIi02IjpgXy02LS0xcGZ3cXA4YCwiLTciOmBfLTctLTF4dDE2dzlgLCItOCI6YF8tOC0tMTJnb29jMGAsIi05IjpgXy05LS1nMnlpc3BgLCItMTAiOmBfLTEwLS0xanF5c2gyYH0sVmZlPXswOmBfMC1fMmY5OHN0YCwiLTAuMjUiOmBfLTBfMjUtLTgxOWRkemAsIi0wLjUiOmBfLTBfNS0tejlmcGpjYCwiLTAuNzUiOmBfLTBfNzUtLTExZXkydW1gLCItMSI6YF8tMS0taWhzcTFuYCwiLTEuNSI6YF8tMV81LS1ibnhvZXhgLCItMiI6YF8tMi0tMWVuMGd6b2AsIi0zIjpgXy0zLS1rZnl6emdgLCItNCI6YF8tNC0tbzc0ZjJiYCwiLTUiOmBfLTUtLTRlczUyamAsIi02IjpgXy02LS0xamZzMmRkYCwiLTciOmBfLTctLTFhcjBsazhgLCItOCI6YF8tOC0tbWY4eXc5YCwiLTkiOmBfLTktLXV0dmU2MWAsIi0xMCI6YF8tMTAtLTF1MHR5bjFgfSxIZmU9ezA6YF8wLV9obmw3MXZgLCItMC4yNSI6YF8tMF8yNS0tMTVhYmlpYWAsIi0wLjUiOmBfLTBfNS0tMXpldjdmYCwiLTAuNzUiOmBfLTBfNzUtLWlsdDd4dmAsIi0xIjpgXy0xLS0xdjU1azY2YCwiLTEuNSI6YF8tMV81LS02NXpzbWxgLCItMiI6YF8tMi0tcmJydXVrYCwiLTMiOmBfLTMtLTFjam90Y3pgLCItNCI6YF8tNC0tZjIzMGdkYCwiLTUiOmBfLTUtLW1nMW5qb2AsIi02IjpgXy02LS1ydWpiZDlgLCItNyI6YF8tNy0tMXh4aTB4cGAsIi04IjpgXy04LS1pMmJxOWRgLCItOSI6YF8tOS0tN3k0b2FjYCwiLTEwIjpgXy0xMC0tMWdwenNoZmB9LFVmZT17MDpgXzAtX2t6ajNobGAsIi0wLjI1IjpgXy0wXzI1LS1hbWJpZWlgLCItMC41IjpgXy0wXzUtLTV2d2t6YCwiLTAuNzUiOmBfLTBfNzUtLXIwb3o2ZGAsIi0xIjpgXy0xLS15Z3ptdXRgLCItMS41IjpgXy0xXzUtLTFkOGdxc2dgLCItMiI6YF8tMi0tMWJsdmhoeGAsIi0zIjpgXy0zLS1rYnF5ZnJgLCItNCI6YF8tNC0tMWcwMGQ1OGAsIi01IjpgXy01LS0xc3VlbHJpYCwiLTYiOmBfLTYtLTEwNjU5bWVgLCItNyI6YF8tNy0tZGw0d3VkYCwiLTgiOmBfLTgtLTFjaTdjN3hgLCItOSI6YF8tOS0tOHh0cXo5YCwiLTEwIjpgXy0xMC0tMjQydjg2YH0sV2ZlPXswOmBfMC1fNWp2dWt3YCwiLTAuMjUiOmBfLTBfMjUtLTFpN2VyNnZgLCItMC41IjpgXy0wXzUtLThkcDIxcWAsIi0wLjc1IjpgXy0wXzc1LS12aTM5bDhgLCItMSI6YF8tMS0tMjVvMGg3YCwiLTEuNSI6YF8tMV81LS0xaWhucGZ2YCwiLTIiOmBfLTItLTE2eHA0YnRgLCItMyI6YF8tMy0tMWliZG0wcGAsIi00IjpgXy00LS1hZnptejJgLCItNSI6YF8tNS0teGtkZ3Q5YCwiLTYiOmBfLTYtLTFldmRjYXNgLCItNyI6YF8tNy0tYWVpeWNqYCwiLTgiOmBfLTgtLTFnd2I1NmlgLCItOSI6YF8tOS0tMW5xYmIxMWAsIi0xMCI6YF8tMTAtLWhzMGxmcWB9LEdmZT17MDpgXzAtX2NmYWNnNGAsIi0wLjI1IjpgXy0wXzI1LS0xdmszc2twYCwiLTAuNSI6YF8tMF81LS05dTRmdHBgLCItMC43NSI6YF8tMF83NS0tMTI1ZjA4dWAsIi0xIjpgXy0xLS1jMWVhenhgLCItMS41IjpgXy0xXzUtLTFwdmNpa3BgLCItMiI6YF8tMi0teTVxcnR1YCwiLTMiOmBfLTMtLXBlaGttZ2AsIi00IjpgXy00LS0xc25mc3FqYCwiLTUiOmBfLTUtLTFuemxwZTBgLCItNiI6YF8tNi0tMWhsM2JsYCwiLTciOmBfLTctLTE0ajFieHVgLCItOCI6YF8tOC0teTg0emU2YCwiLTkiOmBfLTktLTExZ3Q5MXNgLCItMTAiOmBfLTEwLS0xd3RieDVhYH0sS2ZlPXswOmBfMC1fYTNyOGttYCwiLTAuMjUiOmBfLTBfMjUtLTFwc2gyNTlgLCItMC41IjpgXy0wXzUtLTF3bzQwaTZgLCItMC43NSI6YF8tMF83NS0tenp1emw2YCwiLTEiOmBfLTEtLTF5MTJ1OTlgLCItMS41IjpgXy0xXzUtLTUxYzFhOGAsIi0yIjpgXy0yLS1laXE5b2ZgLCItMyI6YF8tMy0tbHk2OGF4YCwiLTQiOmBfLTQtLXgybjk5ZWAsIi01IjpgXy01LS1oeXV1OTdgLCItNiI6YF8tNi0tMWF2aGcwa2AsIi03IjpgXy03LS0xcDVnNWh3YCwiLTgiOmBfLTgtLTE0dTNuYTdgLCItOSI6YF8tOS0tdHllb2NpYCwiLTEwIjpgXy0xMC0tNmIwcG1yYH0scWZlPXtzdGFydDpgc3RhcnQtczEwbGVyNHFgLGVuZDpgZW5kLWUxeWJiZXI1YCxjZW50ZXI6YGNlbnRlci1jMWtkNDdyOGAsanVzdGlmeTpganVzdGlmeS1qMXU5cHZheWB9LEpmZT17aGlkZGVuOmBoaWRkZW4taDFmMHdnOG1gLHZpc2libGU6YHZpc2libGUtdnJnOHJ0bGB9LFlmZT1jKHthbGlnbkNvbnRlbnQ6KCk9PkNwZSxhbGlnbkl0ZW1zOigpPT53cGUsYWxpZ25TZWxmOigpPT5UcGUsYmFja2dyb3VuZDooKT0+UWZlLGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6KCk9PmNwZSxib3JkZXJCb3R0b21SaWdodFJhZGl1czooKT0+bHBlLGJvcmRlckJvdHRvbVdpZHRoOigpPT5ycGUsYm9yZGVyQ29sb3I6KCk9PiRmZSxib3JkZXJFbmRXaWR0aDooKT0+bnBlLGJvcmRlclJhZGl1czooKT0+YXBlLGJvcmRlclN0YXJ0V2lkdGg6KCk9PmlwZSxib3JkZXJUb3BMZWZ0UmFkaXVzOigpPT5vcGUsYm9yZGVyVG9wUmlnaHRSYWRpdXM6KCk9PnNwZSxib3JkZXJUb3BXaWR0aDooKT0+dHBlLGJvcmRlcldpZHRoOigpPT5lcGUsY29sb3I6KCk9PlpmZSxjb2x1bW5HYXA6KCk9PmJwZSxkaXNwbGF5OigpPT5fcGUsZHluYW1pYzooKT0+JFMsZWxldmF0aW9uOigpPT5YZmUsZmxleERpcmVjdGlvbjooKT0+RXBlLGZsZXhXcmFwOigpPT5EcGUsZm9udEZhbWlseTooKT0+dXBlLGZvbnRTaXplOigpPT5kcGUsZm9udFdlaWdodDooKT0+ZnBlLGdhcDooKT0+eXBlLGp1c3RpZnlDb250ZW50OigpPT5TcGUsbGluZUhlaWdodDooKT0+cHBlLG1hcmdpbjooKT0+SXBlLG1hcmdpbkJvdHRvbTooKT0+QnBlLG1hcmdpbkVuZDooKT0+VnBlLG1hcmdpblN0YXJ0OigpPT5IcGUsbWFyZ2luVG9wOigpPT56cGUsbWFyZ2luWDooKT0+THBlLG1hcmdpblk6KCk9PlJwZSxvdmVyZmxvdzooKT0+dnBlLHBhZGRpbmc6KCk9PmtwZSxwYWRkaW5nQm90dG9tOigpPT5OcGUscGFkZGluZ0VuZDooKT0+RnBlLHBhZGRpbmdTdGFydDooKT0+UHBlLHBhZGRpbmdUb3A6KCk9Pk1wZSxwYWRkaW5nWDooKT0+QXBlLHBhZGRpbmdZOigpPT5qcGUscG9zaXRpb246KCk9Pk9wZSxyb3dHYXA6KCk9PnhwZSx0ZXh0QWxpZ246KCk9PlVwZSx0ZXh0RGVjb3JhdGlvbjooKT0+bXBlLHRleHRUcmFuc2Zvcm06KCk9PmhwZSx1c2VyU2VsZWN0OigpPT5ncGUsdmlzaWJpbGl0eTooKT0+V3BlfSksJFM9e3dpZHRoOmB3aWR0aC13NTdlcTV4YCxoZWlnaHQ6YGhlaWdodC1ob3U0ZWV2YCxtaW5XaWR0aDpgbWluV2lkdGgtbTE2MnN6bnlgLG1pbkhlaWdodDpgbWluSGVpZ2h0LW0xOWhpNjh4YCxtYXhXaWR0aDpgbWF4V2lkdGgtbTEwZGswN29gLG1heEhlaWdodDpgbWF4SGVpZ2h0LW1vbG52aWAsYXNwZWN0UmF0aW86YGFzcGVjdFJhdGlvLWFxY2YwenZgLHRvcDpgdG9wLXQ3bjg0aGpgLGJvdHRvbTpgYm90dG9tLWIzdW5hZWdgLGxlZnQ6YGxlZnQtbDFwc29vdzhgLHJpZ2h0OmByaWdodC1yMWZ1a2lpZmAsdHJhbnNmb3JtOmB0cmFuc2Zvcm0tdHgycmp4b2AsZmxleEJhc2lzOmBmbGV4QmFzaXMtZjI5dDBuc2AsZmxleFNocmluazpgZmxleFNocmluay1mMXBkZnFvZ2AsZmxleEdyb3c6YGZsZXhHcm93LWYxeTlmOHYyYCxncmlkVGVtcGxhdGVDb2x1bW5zOmBncmlkVGVtcGxhdGVDb2x1bW5zLWcxNTdydjc4YCxncmlkVGVtcGxhdGVSb3dzOmBncmlkVGVtcGxhdGVSb3dzLWdiMWw4NzZgLGdyaWRUZW1wbGF0ZUFyZWFzOmBncmlkVGVtcGxhdGVBcmVhcy1naTk0bWJtYCxncmlkVGVtcGxhdGU6YGdyaWRUZW1wbGF0ZS1nMWY5MmZtdGAsZ3JpZEF1dG9Db2x1bW5zOmBncmlkQXV0b0NvbHVtbnMtZ2kwZWExZmAsZ3JpZEF1dG9Sb3dzOmBncmlkQXV0b1Jvd3MtZ2x5MWI2MWAsZ3JpZEF1dG9GbG93OmBncmlkQXV0b0Zsb3ctZzF2cWU2cXVgLGdyaWQ6YGdyaWQtZzFzdXhzazdgLGdyaWRSb3dTdGFydDpgZ3JpZFJvd1N0YXJ0LWcxZWFxcWtqYCxncmlkQ29sdW1uU3RhcnQ6YGdyaWRDb2x1bW5TdGFydC1nYTA2NHdxYCxncmlkUm93RW5kOmBncmlkUm93RW5kLWcxMTF4NHJzYCxncmlkQ29sdW1uRW5kOmBncmlkQ29sdW1uRW5kLWdpN2ppaWZgLGdyaWRSb3c6YGdyaWRSb3ctZzJqbzkxMWAsZ3JpZENvbHVtbjpgZ3JpZENvbHVtbi1nMXB5NHllYmAsZ3JpZEFyZWE6YGdyaWRBcmVhLWcxeHR3ams1YCxvcGFjaXR5OmBvcGFjaXR5LW8xbWNvY2p0YCx6SW5kZXg6YHpJbmRleC16b2ZybWc5YH0sWGZlPXswOmBfMC1fNDhod3VtYCwxOmBfMS1fN3phczNjYCwyOmBfMi1fMWozcDBwbWB9LFpmZT17Zmc6YGZnLWZydTYxb25gLGZnSW52ZXJzZTpgZmdJbnZlcnNlLWY2ZDJtMmpgLGZnTXV0ZWQ6YGZnTXV0ZWQtZjFoOGV5YXpgLGZnUHJpbWFyeTpgZmdQcmltYXJ5LWY2YnY4N2RgLGZnUG9zaXRpdmU6YGZnUG9zaXRpdmUtZjFjMzZkZ3NgLGZnTmVnYXRpdmU6YGZnTmVnYXRpdmUtZjE5cXFzbHFgLGZnV2FybmluZzpgZmdXYXJuaW5nLWYxdHVuc3AxYCxiZzpgYmctYmtvdnRma2AsYmdBbHRlcm5hdGU6YGJnQWx0ZXJuYXRlLWIxZW9wOXo4YCxiZ0ludmVyc2U6YGJnSW52ZXJzZS1iM3Z2a3I5YCxiZ092ZXJsYXk6YGJnT3ZlcmxheS1iMW9vbDFwaWAsYmdQcmltYXJ5OmBiZ1ByaW1hcnktYmYzdXg3bGAsYmdQcmltYXJ5V2FzaDpgYmdQcmltYXJ5V2FzaC1ibmpidWZwYCxiZ1NlY29uZGFyeTpgYmdTZWNvbmRhcnktYmFjZHlkN2AsYmdUZXJ0aWFyeTpgYmdUZXJ0aWFyeS1iMTl5djNuYWAsYmdTZWNvbmRhcnlXYXNoOmBiZ1NlY29uZGFyeVdhc2gtYjFnN2s4ejBgLGJnTmVnYXRpdmU6YGJnTmVnYXRpdmUtYnRiNHI3NmAsYmdOZWdhdGl2ZVdhc2g6YGJnTmVnYXRpdmVXYXNoLWJkdWRsbmxgLGJnUG9zaXRpdmU6YGJnUG9zaXRpdmUtYjFxYmhlamJgLGJnUG9zaXRpdmVXYXNoOmBiZ1Bvc2l0aXZlV2FzaC1iNXBraXBkYCxiZ1dhcm5pbmc6YGJnV2FybmluZy1iMTBlNzV2cmAsYmdXYXJuaW5nV2FzaDpgYmdXYXJuaW5nV2FzaC1iNTBnbzhhYCxjdXJyZW50Q29sb3I6YGN1cnJlbnRDb2xvci1jMTc1MGJveGAsYmdMaW5lOmBiZ0xpbmUtYjF1ZTV0MmhgLGJnTGluZUludmVyc2U6YGJnTGluZUludmVyc2UtYmF0b3RkaWAsYmdMaW5lSGVhdnk6YGJnTGluZUhlYXZ5LWJ6bDVjbHNgLGJnTGluZVByaW1hcnk6YGJnTGluZVByaW1hcnktYnloNmdqdmAsYmdMaW5lUHJpbWFyeVN1YnRsZTpgYmdMaW5lUHJpbWFyeVN1YnRsZS1iMW1rcjQ1YmAsYmdFbGV2YXRpb24xOmBiZ0VsZXZhdGlvbjEtYjFva28wbTVgLGJnRWxldmF0aW9uMjpgYmdFbGV2YXRpb24yLWJxZmhhdDFgLGFjY2VudFN1YnRsZUdyZWVuOmBhY2NlbnRTdWJ0bGVHcmVlbi1hZDdndzB0YCxhY2NlbnRCb2xkR3JlZW46YGFjY2VudEJvbGRHcmVlbi1hMzluNWQ0YCxhY2NlbnRTdWJ0bGVCbHVlOmBhY2NlbnRTdWJ0bGVCbHVlLWExcGY3bXcwYCxhY2NlbnRCb2xkQmx1ZTpgYWNjZW50Qm9sZEJsdWUtYTF0bzIxaHBgLGFjY2VudFN1YnRsZVB1cnBsZTpgYWNjZW50U3VidGxlUHVycGxlLWE5MnVjeHJgLGFjY2VudEJvbGRQdXJwbGU6YGFjY2VudEJvbGRQdXJwbGUtYTg2ZmFlYCxhY2NlbnRTdWJ0bGVZZWxsb3c6YGFjY2VudFN1YnRsZVllbGxvdy1hMWpmcmtkZ2AsYWNjZW50Qm9sZFllbGxvdzpgYWNjZW50Qm9sZFllbGxvdy1ha2NncnowYCxhY2NlbnRTdWJ0bGVSZWQ6YGFjY2VudFN1YnRsZVJlZC1hM2hsOHNvYCxhY2NlbnRCb2xkUmVkOmBhY2NlbnRCb2xkUmVkLWExdXVuMmV4YCxhY2NlbnRTdWJ0bGVHcmF5OmBhY2NlbnRTdWJ0bGVHcmF5LWE5emxxc2RgLGFjY2VudEJvbGRHcmF5OmBhY2NlbnRCb2xkR3JheS1haWNycnl4YCx0cmFuc3BhcmVudDpgdHJhbnNwYXJlbnQtdDF2Mnl2ZDBgfSxRZmU9e2ZnOmBmZy1mMTU5cGE0ZWAsZmdJbnZlcnNlOmBmZ0ludmVyc2UtZjExanZudjVgLGZnTXV0ZWQ6YGZnTXV0ZWQtZnVnOXhxNWAsZmdQcmltYXJ5OmBmZ1ByaW1hcnktZmE2MzJ3b2AsZmdQb3NpdGl2ZTpgZmdQb3NpdGl2ZS1mczZtZ2dhYCxmZ05lZ2F0aXZlOmBmZ05lZ2F0aXZlLWZlYWt3ZmdgLGZnV2FybmluZzpgZmdXYXJuaW5nLWYxM2tpdGlmYCxiZzpgYmctYjgyankyaGAsYmdBbHRlcm5hdGU6YGJnQWx0ZXJuYXRlLWJkMGtqZHBgLGJnSW52ZXJzZTpgYmdJbnZlcnNlLWJ6b2tzczJgLGJnT3ZlcmxheTpgYmdPdmVybGF5LWIxZTVncW02YCxiZ1ByaW1hcnk6YGJnUHJpbWFyeS1iMXdsODZma2AsYmdQcmltYXJ5V2FzaDpgYmdQcmltYXJ5V2FzaC1iaTk4bHp0YCxiZ1NlY29uZGFyeTpgYmdTZWNvbmRhcnktYjFueno4NWNgLGJnVGVydGlhcnk6YGJnVGVydGlhcnktYmE0Z2twNWAsYmdTZWNvbmRhcnlXYXNoOmBiZ1NlY29uZGFyeVdhc2gtYjlqZHpteGAsYmdOZWdhdGl2ZTpgYmdOZWdhdGl2ZS1iMWo4OHY5NmAsYmdOZWdhdGl2ZVdhc2g6YGJnTmVnYXRpdmVXYXNoLWJxYWNjZGVgLGJnUG9zaXRpdmU6YGJnUG9zaXRpdmUtYjFrejFhZDRgLGJnUG9zaXRpdmVXYXNoOmBiZ1Bvc2l0aXZlV2FzaC1iajZ1enJ4YCxiZ1dhcm5pbmc6YGJnV2FybmluZy1iN2s2NDFxYCxiZ1dhcm5pbmdXYXNoOmBiZ1dhcm5pbmdXYXNoLWIxMTdmbmthYCxjdXJyZW50Q29sb3I6YGN1cnJlbnRDb2xvci1jcGYwa3lpYCxiZ0xpbmU6YGJnTGluZS1iMXEyYTNsamAsYmdMaW5lSW52ZXJzZTpgYmdMaW5lSW52ZXJzZS1iYTc4dXF6YCxiZ0xpbmVIZWF2eTpgYmdMaW5lSGVhdnktYjIyZHA5M2AsYmdMaW5lUHJpbWFyeTpgYmdMaW5lUHJpbWFyeS1idjJsNnljYCxiZ0xpbmVQcmltYXJ5U3VidGxlOmBiZ0xpbmVQcmltYXJ5U3VidGxlLWIxdW5kcTZ1YCxiZ0VsZXZhdGlvbjE6YGJnRWxldmF0aW9uMS1iMTlhZW9lYWAsYmdFbGV2YXRpb24yOmBiZ0VsZXZhdGlvbjItYjFtc2VlNjZgLGFjY2VudFN1YnRsZUdyZWVuOmBhY2NlbnRTdWJ0bGVHcmVlbi1hMXhycXNkZmAsYWNjZW50Qm9sZEdyZWVuOmBhY2NlbnRCb2xkR3JlZW4tYXJkOGs4ZGAsYWNjZW50U3VidGxlQmx1ZTpgYWNjZW50U3VidGxlQmx1ZS1hMWNuNzY2ZWAsYWNjZW50Qm9sZEJsdWU6YGFjY2VudEJvbGRCbHVlLWExeTY4a2pkYCxhY2NlbnRTdWJ0bGVQdXJwbGU6YGFjY2VudFN1YnRsZVB1cnBsZS1hMms5dzlxYCxhY2NlbnRCb2xkUHVycGxlOmBhY2NlbnRCb2xkUHVycGxlLWExd2d2MzdxYCxhY2NlbnRTdWJ0bGVZZWxsb3c6YGFjY2VudFN1YnRsZVllbGxvdy1hcXhiZWtsYCxhY2NlbnRCb2xkWWVsbG93OmBhY2NlbnRCb2xkWWVsbG93LWFrMmUwaWlgLGFjY2VudFN1YnRsZVJlZDpgYWNjZW50U3VidGxlUmVkLWEybzUzaW5gLGFjY2VudEJvbGRSZWQ6YGFjY2VudEJvbGRSZWQtYXQ0cTdraGAsYWNjZW50U3VidGxlR3JheTpgYWNjZW50U3VidGxlR3JheS1hbWI5ZHdtYCxhY2NlbnRCb2xkR3JheTpgYWNjZW50Qm9sZEdyYXktYThjbzQyamAsdHJhbnNwYXJlbnQ6YHRyYW5zcGFyZW50LXQxNGt3a3ZuYH0sJGZlPXtmZzpgZmctZmlkZTBvdmAsZmdJbnZlcnNlOmBmZ0ludmVyc2UtZjFqZTZlcDZgLGZnTXV0ZWQ6YGZnTXV0ZWQtZjE0MDN0bnRgLGZnUHJpbWFyeTpgZmdQcmltYXJ5LWYyeGIxNDBgLGZnUG9zaXRpdmU6YGZnUG9zaXRpdmUtZjExdzA3cWAsZmdOZWdhdGl2ZTpgZmdOZWdhdGl2ZS1mejhjNHI0YCxmZ1dhcm5pbmc6YGZnV2FybmluZy1mMW11b3p1bGAsYmc6YGJnLWJtb2V1cDdgLGJnQWx0ZXJuYXRlOmBiZ0FsdGVybmF0ZS1iajhocXZtYCxiZ0ludmVyc2U6YGJnSW52ZXJzZS1ienpsbXR2YCxiZ092ZXJsYXk6YGJnT3ZlcmxheS1iY29rYWhqYCxiZ1ByaW1hcnk6YGJnUHJpbWFyeS1iMTg0bXJoaWAsYmdQcmltYXJ5V2FzaDpgYmdQcmltYXJ5V2FzaC1iMTNxdHI5bWAsYmdTZWNvbmRhcnk6YGJnU2Vjb25kYXJ5LWIxdXZzcmI5YCxiZ1RlcnRpYXJ5OmBiZ1RlcnRpYXJ5LWJmbWRieGhgLGJnU2Vjb25kYXJ5V2FzaDpgYmdTZWNvbmRhcnlXYXNoLWI5MWtyMmFgLGJnTmVnYXRpdmU6YGJnTmVnYXRpdmUtYjFtZHpvanhgLGJnTmVnYXRpdmVXYXNoOmBiZ05lZ2F0aXZlV2FzaC1ibzN4OGJ1YCxiZ1Bvc2l0aXZlOmBiZ1Bvc2l0aXZlLWIxZHdoNDVxYCxiZ1Bvc2l0aXZlV2FzaDpgYmdQb3NpdGl2ZVdhc2gtYnZqcG5taWAsYmdXYXJuaW5nOmBiZ1dhcm5pbmctYjFuYzEwNndgLGJnV2FybmluZ1dhc2g6YGJnV2FybmluZ1dhc2gtYnozMGVrcWAsY3VycmVudENvbG9yOmBjdXJyZW50Q29sb3ItY3h4eHkyc2AsYmdMaW5lOmBiZ0xpbmUtYmc1eXl3dGAsYmdMaW5lSW52ZXJzZTpgYmdMaW5lSW52ZXJzZS1iMWJ5d3k0aWAsYmdMaW5lSGVhdnk6YGJnTGluZUhlYXZ5LWIxZjM0eW9tYCxiZ0xpbmVQcmltYXJ5OmBiZ0xpbmVQcmltYXJ5LWIxYnBsMnBmYCxiZ0xpbmVQcmltYXJ5U3VidGxlOmBiZ0xpbmVQcmltYXJ5U3VidGxlLWJhbnNreHRgLGJnRWxldmF0aW9uMTpgYmdFbGV2YXRpb24xLWJ1Znd0NG9gLGJnRWxldmF0aW9uMjpgYmdFbGV2YXRpb24yLWIxM2xzdm93YCxhY2NlbnRTdWJ0bGVHcmVlbjpgYWNjZW50U3VidGxlR3JlZW4tYWQ5ZDYzaWAsYWNjZW50Qm9sZEdyZWVuOmBhY2NlbnRCb2xkR3JlZW4tYW5obmg4c2AsYWNjZW50U3VidGxlQmx1ZTpgYWNjZW50U3VidGxlQmx1ZS1haTNvYmoyYCxhY2NlbnRCb2xkQmx1ZTpgYWNjZW50Qm9sZEJsdWUtYTFldnVzZ2tgLGFjY2VudFN1YnRsZVB1cnBsZTpgYWNjZW50U3VidGxlUHVycGxlLWFoNmI5Ym9gLGFjY2VudEJvbGRQdXJwbGU6YGFjY2VudEJvbGRQdXJwbGUtYWt2YWQ3amAsYWNjZW50U3VidGxlWWVsbG93OmBhY2NlbnRTdWJ0bGVZZWxsb3ctYTNpNjllb2AsYWNjZW50Qm9sZFllbGxvdzpgYWNjZW50Qm9sZFllbGxvdy1hMWZubDQ5OGAsYWNjZW50U3VidGxlUmVkOmBhY2NlbnRTdWJ0bGVSZWQtYTFnNGlkc2xgLGFjY2VudEJvbGRSZWQ6YGFjY2VudEJvbGRSZWQtYWQxM3RjY2AsYWNjZW50U3VidGxlR3JheTpgYWNjZW50U3VidGxlR3JheS1heWc0cW1jYCxhY2NlbnRCb2xkR3JheTpgYWNjZW50Qm9sZEdyYXktYWEwYWJqY2AsdHJhbnNwYXJlbnQ6YHRyYW5zcGFyZW50LXQxZjRtcWJjYH0sZXBlPXswOmBfMC1fb2Q0cTRvYCwxMDA6YF8xMDAtXzFvY2oxOG5gLDIwMDpgXzIwMC1fMXlta3NpZ2AsMzAwOmBfMzAwLV9sYWh1Ym5gLDQwMDpgXzQwMC1fMWl1YnpkcGAsNTAwOmBfNTAwLV8xcG9xdWY4YH0sdHBlPXswOmBfMC1fM3BrY3NjYCwxMDA6YF8xMDAtX2E2YXJoN2AsMjAwOmBfMjAwLV95dGEzMG9gLDMwMDpgXzMwMC1fMTJqNHQ0YWAsNDAwOmBfNDAwLV8xeWxlZmg0YCw1MDA6YF81MDAtX3gybnFod2B9LG5wZT17MDpgXzAtXzF1aW05dHBgLDEwMDpgXzEwMC1fMThkaHV5YmAsMjAwOmBfMjAwLV8xYjE2cWhtYCwzMDA6YF8zMDAtXzF5cmV0ZWRgLDQwMDpgXzQwMC1fMXZqcHFwb2AsNTAwOmBfNTAwLV8xbGtha2N1YH0scnBlPXswOmBfMC1feTV3dzFpYCwxMDA6YF8xMDAtX3luYnVydmAsMjAwOmBfMjAwLV9obGlnemNgLDMwMDpgXzMwMC1fMXN5OWd5bWAsNDAwOmBfNDAwLV8xMjh1YW9lYCw1MDA6YF81MDAtXzFveWx2Y2hgfSxpcGU9ezA6YF8wLV94eTJ3dHVgLDEwMDpgXzEwMC1fMWsyN3l4eWAsMjAwOmBfMjAwLV8yOW42amJgLDMwMDpgXzMwMC1fOXk2Yjd2YCw0MDA6YF80MDAtX2VvaGtkc2AsNTAwOmBfNTAwLV8xaWdrZzY3YH0sYXBlPXswOmBfMC1fMTE5aG53YCwxMDA6YF8xMDAtXzEyZDR2Y2dgLDIwMDpgXzIwMC1fb3Fmc3NlYCwzMDA6YF8zMDAtXzJrcjM2ZGAsNDAwOmBfNDAwLV8xcHhrNmFhYCw1MDA6YF81MDAtXzFsbXZzYjhgLDYwMDpgXzYwMC1fMThkcW9jamAsNzAwOmBfNzAwLV8xeW95eW5yYCw4MDA6YF84MDAtX2swbjk4cWAsOTAwOmBfOTAwLV9iMzRjdHFgLDFlMzpgXzEwMDAtXzZkMjA5YWB9LG9wZT17MDpgXzAtX2ZjNjVtMGAsMTAwOmBfMTAwLV8xOG9zcG1oYCwyMDA6YF8yMDAtXzF0Y2lsbm9gLDMwMDpgXzMwMC1fZ242bjBpYCw0MDA6YF80MDAtX2p5cmhhemAsNTAwOmBfNTAwLV8xMHQ3Y3EyYCw2MDA6YF82MDAtXzVuMnM2ZGAsNzAwOmBfNzAwLV8xeGE4aGlsYCw4MDA6YF84MDAtXzM0cXgycGAsOTAwOmBfOTAwLV8xcmJ3MndsYCwxZTM6YF8xMDAwLV92NDljdzJgfSxzcGU9ezA6YF8wLV96OXQxeThgLDEwMDpgXzEwMC1fdmczMHg3YCwyMDA6YF8yMDAtXzFna3d3a2JgLDMwMDpgXzMwMC1fMTM4eGVzYWAsNDAwOmBfNDAwLV8zZTh5bjBgLDUwMDpgXzUwMC1feGQ4NTVsYCw2MDA6YF82MDAtX2oybXF5ZGAsNzAwOmBfNzAwLV92eDBwc2JgLDgwMDpgXzgwMC1fMW9pczE1cGAsOTAwOmBfOTAwLV8xbzlpYWtnYCwxZTM6YF8xMDAwLV9tejBvZ3dgfSxjcGU9ezA6YF8wLV8xMHFsd2kzYCwxMDA6YF8xMDAtX3lrYjk2N2AsMjAwOmBfMjAwLV8xank1em1pYCwzMDA6YF8zMDAtXzE0ejd6eDlgLDQwMDpgXzQwMC1fNm5wcTY5YCw1MDA6YF81MDAtX3kzbTZ3dWAsNjAwOmBfNjAwLV9pYzlmYjRgLDcwMDpgXzcwMC1fcWlvbG92YCw4MDA6YF84MDAtXzFidW5qOHdgLDkwMDpgXzkwMC1fdG9lYTE5YCwxZTM6YF8xMDAwLV8xNG9nbm1tYH0sbHBlPXswOmBfMC1fMW0xd29kYWAsMTAwOmBfMTAwLV96NHBxODFgLDIwMDpgXzIwMC1fZWl2ZGtoYCwzMDA6YF8zMDAtX2I1cnM3a2AsNDAwOmBfNDAwLV9ra2p5eWZgLDUwMDpgXzUwMC1fMXRjYnFtZ2AsNjAwOmBfNjAwLV8xbWpuYnhhYCw3MDA6YF83MDAtX3NudGZhdGAsODAwOmBfODAwLV8xdGl1bTRrYCw5MDA6YF85MDAtXzlkdDJnMmAsMWUzOmBfMTAwMC1fMTZoZ3pwbWB9LHVwZT17aW5oZXJpdDpgaW5oZXJpdC1pMWpjaXJhOGAsZGlzcGxheTE6YGRpc3BsYXkxLWRncHRhMTFgLGRpc3BsYXkyOmBkaXNwbGF5Mi1kMWZsMTJlMmAsZGlzcGxheTM6YGRpc3BsYXkzLWQxa3ZubnZjYCx0aXRsZTE6YHRpdGxlMS10MXFlYm03eGAsdGl0bGUyOmB0aXRsZTItdGw0a3NhcmAsdGl0bGUzOmB0aXRsZTMtdDFwOGx5ajRgLHRpdGxlNDpgdGl0bGU0LXQxcHpya3plYCxoZWFkbGluZTpgaGVhZGxpbmUtaDFhdzJkeGAsYm9keTpgYm9keS1ic2hvMmJxYCxsYWJlbDE6YGxhYmVsMS1sMXY1aGttdmAsbGFiZWwyOmBsYWJlbDItbDE1N2V0c2AsY2FwdGlvbjpgY2FwdGlvbi1jeWl5eXBnYCxsZWdhbDpgbGVnYWwtbHk2Ym44OGB9LGRwZT17aW5oZXJpdDpgaW5oZXJpdC1pMWU0aWFxN2AsZGlzcGxheTE6YGRpc3BsYXkxLWRmYWViYjdgLGRpc3BsYXkyOmBkaXNwbGF5Mi1kczM4anZ2YCxkaXNwbGF5MzpgZGlzcGxheTMtZDF1b3Ixd2RgLHRpdGxlMTpgdGl0bGUxLXQxNzBsZ2lrYCx0aXRsZTI6YHRpdGxlMi10cWR2OXozYCx0aXRsZTM6YHRpdGxlMy10MTlza2pwemAsdGl0bGU0OmB0aXRsZTQtdGU0ZGJra2AsaGVhZGxpbmU6YGhlYWRsaW5lLWgxc3JycGloYCxib2R5OmBib2R5LWIxOWpxcm5wYCxsYWJlbDE6YGxhYmVsMS1sa3diaWtiYCxsYWJlbDI6YGxhYmVsMi1sNjl2dm9jYCxjYXB0aW9uOmBjYXB0aW9uLWNlZm0xenFgLGxlZ2FsOmBsZWdhbC1sMXN4dHBnMWB9LGZwZT17aW5oZXJpdDpgaW5oZXJpdC1pZDc2YTE5YCxkaXNwbGF5MTpgZGlzcGxheTEtZDFwMGN3dXVgLGRpc3BsYXkyOmBkaXNwbGF5Mi1kMXZ0aGJoNmAsZGlzcGxheTM6YGRpc3BsYXkzLWQ2MXMyZW1gLHRpdGxlMTpgdGl0bGUxLXRyZDZoNGVgLHRpdGxlMjpgdGl0bGUyLXQxdGxjNXRiYCx0aXRsZTM6YHRpdGxlMy10ZWV5a2N4YCx0aXRsZTQ6YHRpdGxlNC10Y2E4a3NgLGhlYWRsaW5lOmBoZWFkbGluZS1oMWN2azBwc2AsYm9keTpgYm9keS1iMTljaTFjYCxsYWJlbDE6YGxhYmVsMS1sMWc0NXl4OWAsbGFiZWwyOmBsYWJlbDItbDFkczU2ZHhgLGNhcHRpb246YGNhcHRpb24tYzlycDdjeWAsbGVnYWw6YGxlZ2FsLWwxbjFzMDViYH0scHBlPXtpbmhlcml0OmBpbmhlcml0LWkxMHc1eDV3YCxkaXNwbGF5MTpgZGlzcGxheTEtZHVqN3IzY2AsZGlzcGxheTI6YGRpc3BsYXkyLWR1emZwMTBgLGRpc3BsYXkzOmBkaXNwbGF5My1kZTIwOWxwYCx0aXRsZTE6YHRpdGxlMS10MTFwcDd2ZGAsdGl0bGUyOmB0aXRsZTItdDEwbnh6aGtgLHRpdGxlMzpgdGl0bGUzLXRzdmRmeDVgLHRpdGxlNDpgdGl0bGU0LXQxMjlhZGZnYCxoZWFkbGluZTpgaGVhZGxpbmUtaDFqNmJrdmdgLGJvZHk6YGJvZHktYjF4OHliamNgLGxhYmVsMTpgbGFiZWwxLWxieWY3d3VgLGxhYmVsMjpgbGFiZWwyLWwxNndpcDFtYCxjYXB0aW9uOmBjYXB0aW9uLWNkcGtuajZgLGxlZ2FsOmBsZWdhbC1sMTVjNzYyNmB9LG1wZT17bm9uZTpgbm9uZS1uMWt4bmlwZWAsdW5kZXJsaW5lOmB1bmRlcmxpbmUtdW45bTV0eWAsb3ZlcmxpbmU6YG92ZXJsaW5lLW8xaHRzdXI4YCwibGluZS10aHJvdWdoIjpgbGluZS10aHJvdWdoLWwxMm95c3NxYCwidW5kZXJsaW5lIG92ZXJsaW5lIjpgdW5kZXJsaW5lX292ZXJsaW5lLXV1ZWxtYnJgLCJ1bmRlcmxpbmUgZG91YmxlIjpgdW5kZXJsaW5lX2RvdWJsZS11cDB1dzRjYH0saHBlPXtub25lOmBub25lLW5uODQ4cHRgLHVwcGVyY2FzZTpgdXBwZXJjYXNlLXUxZ21jcHBhYCxsb3dlcmNhc2U6YGxvd2VyY2FzZS1sbXBicTczYCxjYXBpdGFsaXplOmBjYXBpdGFsaXplLWNpNHBxMmRgfSxncGU9e25vbmU6YG5vbmUtbnB4ZzhtaGAsdGV4dDpgdGV4dC10c2k3Zzl0YCxhbGw6YGFsbC1hZXpnaHEyYCxhdXRvOmBhdXRvLWE1cHhwbmxgfSxfcGU9e25vbmU6YG5vbmUtbjFobHN5dnZgLGJsb2NrOmBibG9jay1iMXN6MjE2YWAsaW5saW5lOmBpbmxpbmUtaTFpMnVpazFgLCJpbmxpbmUtYmxvY2siOmBpbmxpbmUtYmxvY2staWhyaGZ5Y2AsZmxleDpgZmxleC1mMWY3aGszd2AsImlubGluZS1mbGV4IjpgaW5saW5lLWZsZXgtaTE2djQxZXlgLGdyaWQ6YGdyaWQtZ3dyeThtZWAsImlubGluZS1ncmlkIjpgaW5saW5lLWdyaWQtaTFjY2k3NWVgLGNvbnRlbnRzOmBjb250ZW50cy1jNXNkMXZpYCwiZmxvdy1yb290IjpgZmxvdy1yb290LWYxdnV3dXhpYCxyZXZlcnQ6YHJldmVydC1yMW14MWo0a2AsImxpc3QtaXRlbSI6YGxpc3QtaXRlbS1scGZ2aDcyYH0sdnBlPXthdXRvOmBhdXRvLWFzdDI4cHVgLHZpc2libGU6YHZpc2libGUtdjFsZ3dkd3lgLGhpZGRlbjpgaGlkZGVuLWgxb2pxbnVrYCxjbGlwOmBjbGlwLWNydTI4enhgLHNjcm9sbDpgc2Nyb2xsLXMxZzM0ODl2YH0seXBlPXswOmBfMC1fcTdxNmliYCwiMC4yNSI6YF8wXzI1LV9tMm9sZjJgLCIwLjUiOmBfMF81LV8xcHNlaWw5YCwiMC43NSI6YF8wXzc1LV85eXFtcmhgLDE6YF8xLV8xcDJ0bmZxYCwiMS41IjpgXzFfNS1fMWkweTFxOGAsMjpgXzItXzE4M2k5dmVgLDM6YF8zLV8xdGpqbzlqYCw0OmBfNC1fMWNtZmY0OWAsNTpgXzUtX2x5MG4waWAsNjpgXzYtXzF5b2YweDdgLDc6YF83LV80MTZna2NgLDg6YF84LV9sZDdscjBgLDk6YF85LV9hYncwNnVgLDEwOmBfMTAtX250ZzNheWB9LGJwZT17MDpgXzAtXzFneW54cHdgLCIwLjI1IjpgXzBfMjUtXzEzc2Z1bnNgLCIwLjUiOmBfMF81LV82dHphdmxgLCIwLjc1IjpgXzBfNzUtX3BibzJ4dmAsMTpgXzEtX2k1aGh5ZGAsIjEuNSI6YF8xXzUtX2l2eXk0dmAsMjpgXzItX3BleHZrZmAsMzpgXzMtXzZzYnBleWAsNDpgXzQtXzFteWx3YjZgLDU6YF81LV8xaGNud2U1YCw2OmBfNi1fMW13Z3R1emAsNzpgXzctX25zeXNmMGAsODpgXzgtXzRkNWYweWAsOTpgXzktX3NjeDc0c2AsMTA6YF8xMC1fbDJ5NnJnYH0seHBlPXswOmBfMC1fNTg1amtrYCwiMC4yNSI6YF8wXzI1LV9wY2t5NTdgLCIwLjUiOmBfMF81LV8xZWRzdGVrYCwiMC43NSI6YF8wXzc1LV8xbHB3enhzYCwxOmBfMS1fMW43cHFpeWAsIjEuNSI6YF8xXzUtXzRxeDUxN2AsMjpgXzItXzk5Z3Y3aGAsMzpgXzMtX3ZxcGt1aGAsNDpgXzQtXzV5OWFteGAsNTpgXzUtXzF5eDl4YTNgLDY6YF82LV8xNDU0YTV1YCw3OmBfNy1fMWMyazVyZWAsODpgXzgtXzE5b2hmcXdgLDk6YF85LV9yZWQzMm5gLDEwOmBfMTAtX2hocDR2emB9LFNwZT17bm9ybWFsOmBub3JtYWwtbnJvdHRlZmAsY2VudGVyOmBjZW50ZXItYzdlYmN1YWAsc3RhcnQ6YHN0YXJ0LXMxdnhzOGd3YCxlbmQ6YGVuZC1lMWdneW9wdWAsImZsZXgtc3RhcnQiOmBmbGV4LXN0YXJ0LWZwNHAydDRgLCJmbGV4LWVuZCI6YGZsZXgtZW5kLWYxM2M3NGQxYCxsZWZ0OmBsZWZ0LWxuMjZ5dGtgLHJpZ2h0OmByaWdodC1yNGYyZmYyYCwic3BhY2UtYmV0d2VlbiI6YHNwYWNlLWJldHdlZW4tc3A0NTM2ZGAsInNwYWNlLWFyb3VuZCI6YHNwYWNlLWFyb3VuZC1zMThrN2Z4cmAsInNwYWNlLWV2ZW5seSI6YHNwYWNlLWV2ZW5seS1zMW40em05ZGAsc3RyZXRjaDpgc3RyZXRjaC1zYWNrbHJzYH0sQ3BlPXtub3JtYWw6YG5vcm1hbC1uc2Q4cjh2YCxjZW50ZXI6YGNlbnRlci1jaXNtYTg5YCxzdGFydDpgc3RhcnQtczFkbjhvcDBgLGVuZDpgZW5kLWUxYWl2bTVvYCwiZmxleC1zdGFydCI6YGZsZXgtc3RhcnQtZjJyN2Q0MmAsImZsZXgtZW5kIjpgZmxleC1lbmQtZjFxM21pcDRgLCJzcGFjZS1iZXR3ZWVuIjpgc3BhY2UtYmV0d2Vlbi1zd2Vwbzd1YCwic3BhY2UtYXJvdW5kIjpgc3BhY2UtYXJvdW5kLXM2bmFyc2JgLCJzcGFjZS1ldmVubHkiOmBzcGFjZS1ldmVubHktczFtOWx6bGlgLHN0cmV0Y2g6YHN0cmV0Y2gtczFmbGZraTZgLGJhc2VsaW5lOmBiYXNlbGluZS1idGJ5Ynp2YCwiZmlyc3QgYmFzZWxpbmUiOmBmaXJzdF9iYXNlbGluZS1mdGxodGRkYCwibGFzdCBiYXNlbGluZSI6YGxhc3RfYmFzZWxpbmUtbDFsYmdnamtgfSx3cGU9e25vcm1hbDpgbm9ybWFsLW4xMzI2N2V5YCxjZW50ZXI6YGNlbnRlci1ja2l3MGNgLHN0YXJ0OmBzdGFydC1zMWtqcmc1cWAsZW5kOmBlbmQtZTF1ajd1MmlgLCJmbGV4LXN0YXJ0IjpgZmxleC1zdGFydC1mMTY1MHVxZmAsImZsZXgtZW5kIjpgZmxleC1lbmQtZm9xbTcxYWAsInNlbGYtc3RhcnQiOmBzZWxmLXN0YXJ0LXMxaW9rZzgyYCwic2VsZi1lbmQiOmBzZWxmLWVuZC1zMTIycHVydmAsc3RyZXRjaDpgc3RyZXRjaC1zMWU3aDVvYCxiYXNlbGluZTpgYmFzZWxpbmUtYjE5M3diaXFgLCJmaXJzdCBiYXNlbGluZSI6YGZpcnN0X2Jhc2VsaW5lLWYzOXRvbXZgLCJsYXN0IGJhc2VsaW5lIjpgbGFzdF9iYXNlbGluZS1sNXVlNWB9LFRwZT17YXV0bzpgYXV0by1hMW1jbGUzemAsbm9ybWFsOmBub3JtYWwtbmMxMXp4eGAsY2VudGVyOmBjZW50ZXItYzgwbjJxM2Asc3RhcnQ6YHN0YXJ0LXMxZW5ybnFlYCxlbmQ6YGVuZC1leWJob2ZkYCwiZmxleC1zdGFydCI6YGZsZXgtc3RhcnQtZjE3bnh6Y2VgLCJmbGV4LWVuZCI6YGZsZXgtZW5kLWZwM240eG9gLCJzZWxmLXN0YXJ0Ijpgc2VsZi1zdGFydC1zcnF3amRiYCwic2VsZi1lbmQiOmBzZWxmLWVuZC1zMTlkbG43dmAsc3RyZXRjaDpgc3RyZXRjaC1zbjN3djRxYCxiYXNlbGluZTpgYmFzZWxpbmUtYjF2bXEzdmpgLCJmaXJzdCBiYXNlbGluZSI6YGZpcnN0X2Jhc2VsaW5lLWYxY3hrdHJuYCwibGFzdCBiYXNlbGluZSI6YGxhc3RfYmFzZWxpbmUtbGlvYTZsOWB9LEVwZT17cm93OmByb3ctcjFjcGJ1eDZgLCJyb3ctcmV2ZXJzZSI6YHJvdy1yZXZlcnNlLXIxdnBiazF0YCxjb2x1bW46YGNvbHVtbi1jY2lib3dnYCwiY29sdW1uLXJldmVyc2UiOmBjb2x1bW4tcmV2ZXJzZS1jdXk5c2FkYH0sRHBlPXtub3dyYXA6YG5vd3JhcC1udm9zb3lvYCx3cmFwOmB3cmFwLXdqcXB0M2VgLCJ3cmFwLXJldmVyc2UiOmB3cmFwLXJldmVyc2Utd3Awc3FqNGB9LE9wZT17c3RhdGljOmBzdGF0aWMtc3JqeGN3eGAscmVsYXRpdmU6YHJlbGF0aXZlLXI3M25oNnpgLGFic29sdXRlOmBhYnNvbHV0ZS1hN2oycXNwYCxmaXhlZDpgZml4ZWQtZjFkdjdyYTVgLHN0aWNreTpgc3RpY2t5LXN3NTA4aDVgfSxrcGU9ezA6YF8wLV8zM2E4dWlgLCIwLjI1IjpgXzBfMjUtX3B4ZHduOWAsIjAuNSI6YF8wXzUtXzFsdW45dzBgLCIwLjc1IjpgXzBfNzUtXzExZHNnNWNgLDE6YF8xLV9pbGl6Z3VgLCIxLjUiOmBfMV81LV9hbms2dW9gLDI6YF8yLV9lcGlwMWJgLDM6YF8zLV8xcG9uNmNtYCw0OmBfNC1fbG82c3ZmYCw1OmBfNS1fbmhhaDQ3YCw2OmBfNi1fMXNqM2M1ZmAsNzpgXzctXzExNHl6cmxgLDg6YF84LV90b2Q2Y2AsOTpgXzktX255bWpxb2AsMTA6YF8xMC1fZHFuaGZlYH0sQXBlPXswOmBfMC1fN3JlcWJ0YCwiMC4yNSI6YF8wXzI1LV8xNDl0ZHBpYCwiMC41IjpgXzBfNS1fejhudzZgLCIwLjc1IjpgXzBfNzUtX3dhcGwxdWAsMTpgXzEtX2R2bXU1eWAsIjEuNSI6YF8xXzUtXzE0djcyYXVgLDI6YF8yLV8xMzNydjB5YCwzOmBfMy1fMTExbTJ1ZGAsNDpgXzQtXzFvbmZhaXRgLDU6YF81LV8xajF6enpnYCw2OmBfNi1fMW03NzV0OGAsNzpgXzctXzl6cHM2b2AsODpgXzgtX2k1MjBwMGAsOTpgXzktXzFqZXhibjJgLDEwOmBfMTAtXzFpcXR0MnhgfSxqcGU9ezA6YF8wLV8xNWU5OTFvYCwiMC4yNSI6YF8wXzI1LV9jMDhxajFgLCIwLjUiOmBfMF81LV9wMTZzZHRgLCIwLjc1IjpgXzBfNzUtX3lpNW93a2AsMTpgXzEtXzF5dndkdTBgLCIxLjUiOmBfMV81LV8xYzg5cDJ5YCwyOmBfMi1fMThpYmxhdWAsMzpgXzMtX3VxYnB5MmAsNDpgXzQtXzFra2toemlgLDU6YF81LV9hZ2ZpOGAsNjpgXzYtX2pmbjMxZWAsNzpgXzctXzFla3lwenJgLDg6YF84LV8xbG8xdjZzYCw5OmBfOS1fNXBoaHN3YCwxMDpgXzEwLV9mc29janpgfSxNcGU9ezA6YF8wLV8xNnV0NjVqYCwiMC4yNSI6YF8wXzI1LV85c2J0YWFgLCIwLjUiOmBfMF81LV9scnN3NnlgLCIwLjc1IjpgXzBfNzUtX2p1NHBsOWAsMTpgXzEtXzE0cGpqYnVgLCIxLjUiOmBfMV81LV8xN2VhNHBvYCwyOmBfMi1fcWoza3JjYCwzOmBfMy1fMWNrczg3NWAsNDpgXzQtX2hoczVhZ2AsNTpgXzUtXzd5dnprcGAsNjpgXzYtXzJ4NXYxZGAsNzpgXzctXzF4Z2wwZ3hgLDg6YF84LV8xYjByb2hqYCw5OmBfOS1fOW5qM21mYCwxMDpgXzEwLV9jMzN3eW9gfSxOcGU9ezA6YF8wLV9oZXYyeDNgLCIwLjI1IjpgXzBfMjUtXzFmaXRuemAsIjAuNSI6YF8wXzUtXzE1ZmhuNnJgLCIwLjc1IjpgXzBfNzUtX2VqemEycmAsMTpgXzEtX2Vscm96NmAsIjEuNSI6YF8xXzUtXzFtYWhtbDJgLDI6YF8yLV91c2VzeG9gLDM6YF8zLV8xNG81aGRhYCw0OmBfNC1fMTBiMjM4M2AsNTpgXzUtXzE2NDFiMmdgLDY6YF82LV9mYndwMXRgLDc6YF83LV8xd2hpZGVyYCw4OmBfOC1fMXdkczNwMmAsOTpgXzktXzF2cDdmcWJgLDEwOmBfMTAtXzE1cmZ6eTRgfSxQcGU9ezA6YF8wLV8xMmFiMW5mYCwiMC4yNSI6YF8wXzI1LV92eDliYWtgLCIwLjUiOmBfMF81LV8xcjQ0eWZtYCwiMC43NSI6YF8wXzc1LV9vem93NnhgLDE6YF8xLV8xZmplajltYCwiMS41IjpgXzFfNS1fYWxueWtlYCwyOmBfMi1fdHIxa3BhYCwzOmBfMy1fMXA1OWc1NmAsNDpgXzQtX2NoNjlvN2AsNTpgXzUtX2wzMWg3MWAsNjpgXzYtXzFyYjNkdWxgLDc6YF83LV83ZnNubmFgLDg6YF84LV8yeTd3MTZgLDk6YF85LV8xZXdpNDVrYCwxMDpgXzEwLV80M3FjaWlgfSxGcGU9ezA6YF8wLV8xb3NwZXIwYCwiMC4yNSI6YF8wXzI1LV9lMnh0YzBgLCIwLjUiOmBfMF81LV8xcmowd2tiYCwiMC43NSI6YF8wXzc1LV8xeWRsc2V6YCwxOmBfMS1fMWJvbmw2cGAsIjEuNSI6YF8xXzUtX2l1ZnU4NGAsMjpgXzItX3FoNTBvdmAsMzpgXzMtX3ZuMGMycGAsNDpgXzQtXzEwZXFvYzlgLDU6YF81LV9kbmRtaWNgLDY6YF82LV8xcmc5OGZ3YCw3OmBfNy1fcDFwNmo2YCw4OmBfOC1fNnI1eXlqYCw5OmBfOS1fdm5icHFkYCwxMDpgXzEwLV84NjE1amB9LElwZT17MDpgXzAtXzE1cGt6YW1gLCItMC4yNSI6YF8tMF8yNS0tMW5hNWR6YWAsIi0wLjUiOmBfLTBfNS0tMTBudjJjNGAsIi0wLjc1IjpgXy0wXzc1LS0xa28weG12YCwiLTEiOmBfLTEtLWlnc215ZmAsIi0xLjUiOmBfLTFfNS0tMXFsbWl5M2AsIi0yIjpgXy0yLS1jeW01N3pgLCItMyI6YF8tMy0tdnQxb3p4YCwiLTQiOmBfLTQtLWQ3NDNvdmAsIi01IjpgXy01LS00czhhdWdgLCItNiI6YF8tNi0tc2NoMDV6YCwiLTciOmBfLTctLXh2dDFtNmAsIi04IjpgXy04LS0xZTg1b3dzYCwiLTkiOmBfLTktLTV3ejljOGAsIi0xMCI6YF8tMTAtLTFoZ3UwendgfSxMcGU9ezA6YF8wLV90ZXhqZnlgLCItMC4yNSI6YF8tMF8yNS0tY3FleDM1YCwiLTAuNSI6YF8tMF81LS0xMGd6dzN1YCwiLTAuNzUiOmBfLTBfNzUtLTh0MG1tMWAsIi0xIjpgXy0xLS0xMmo0NjNxYCwiLTEuNSI6YF8tMV81LS0xMWg5cmg2YCwiLTIiOmBfLTItLWUzb2dnb2AsIi0zIjpgXy0zLS1veXAyODVgLCItNCI6YF8tNC0tdDJ1Y3JuYCwiLTUiOmBfLTUtLTE5bWZ6ZW1gLCItNiI6YF8tNi0tdGxrcGhlYCwiLTciOmBfLTctLTExdjBoMjVgLCItOCI6YF8tOC0tMXAwanRyNGAsIi05IjpgXy05LS0xY3d5dGgwYCwiLTEwIjpgXy0xMC0tZHB4NGN1YH0sUnBlPXswOmBfMC1fMWRqenBwa2AsIi0wLjI1IjpgXy0wXzI1LS0xeHhheWVnYCwiLTAuNSI6YF8tMF81LS0xbTJ0MWM4YCwiLTAuNzUiOmBfLTBfNzUtLTExdnFiNHRgLCItMSI6YF8tMS0tMTBqYmVhMWAsIi0xLjUiOmBfLTFfNS0tMXUxczZpOGAsIi0yIjpgXy0yLS1kd3gxZzVgLCItMyI6YF8tMy0tNTFoMnBiYCwiLTQiOmBfLTQtLWJmMHJmamAsIi01IjpgXy01LS1mODEzeDVgLCItNiI6YF8tNi0taTJ6dzkyYCwiLTciOmBfLTctLTFyMW80OXJgLCItOCI6YF8tOC0tMTc5Ync3bmAsIi05IjpgXy05LS1pNGN1cmtgLCItMTAiOmBfLTEwLS0xazQ2NGxkYH0senBlPXswOmBfMC1fbDFhM3RoYCwiLTAuMjUiOmBfLTBfMjUtLXFuYWY4NWAsIi0wLjUiOmBfLTBfNS0tMWVyY2pneGAsIi0wLjc1IjpgXy0wXzc1LS1uOHk2NjlgLCItMSI6YF8tMS0tZWsybmJqYCwiLTEuNSI6YF8tMV81LS0xZmJuMmY5YCwiLTIiOmBfLTItLTE1djBoMGxgLCItMyI6YF8tMy0tbng3ZnpkYCwiLTQiOmBfLTQtLTUxb2NraWAsIi01IjpgXy01LS05M290dDNgLCItNiI6YF8tNi0tMWZ0azhoM2AsIi03IjpgXy03LS0xcmJnaXVjYCwiLTgiOmBfLTgtLWh6NXJiMmAsIi05IjpgXy05LS0xbGh4aWNuYCwiLTEwIjpgXy0xMC0tMXU4ZHQ2cmB9LEJwZT17MDpgXzAtXzFuZDR4djFgLCItMC4yNSI6YF8tMF8yNS0tMWE4aXdpM2AsIi0wLjUiOmBfLTBfNS0tYWd5aHZzYCwiLTAuNzUiOmBfLTBfNzUtLTFxbXl0ZTFgLCItMSI6YF8tMS0tMWpudGtrZGAsIi0xLjUiOmBfLTFfNS0tcm1zOXkzYCwiLTIiOmBfLTItLTFscnFnZ2VgLCItMyI6YF8tMy0tMjNmem9vYCwiLTQiOmBfLTQtLTFjbXNwOTFgLCItNSI6YF8tNS0tMWliejlua2AsIi02IjpgXy02LS1idWdocWxgLCItNyI6YF8tNy0tYXdnZ2dzYCwiLTgiOmBfLTgtLXowdjQ3M2AsIi05IjpgXy05LS0xcjFwaHQyYCwiLTEwIjpgXy0xMC0taHQwYTdsYH0sVnBlPXswOmBfMC1fN3NvNHVzYCwiLTAuMjUiOmBfLTBfMjUtLTFoYzhqb29gLCItMC41IjpgXy0wXzUtLTE3bWV1YTBgLCItMC43NSI6YF8tMF83NS0tMWVzZnFhemAsIi0xIjpgXy0xLS0xZmN6b25jYCwiLTEuNSI6YF8tMV81LS1vdWM1bW5gLCItMiI6YF8tMi0tMXk5YzcwZmAsIi0zIjpgXy0zLS1hNXYzNzlgLCItNCI6YF8tNC0tMTFwMHR0NWAsIi01IjpgXy01LS0xc3R4MnFsYCwiLTYiOmBfLTYtLWR6eGEzbWAsIi03IjpgXy03LS0xdGl6YzRkYCwiLTgiOmBfLTgtLThpZHd1Y2AsIi05IjpgXy05LS0xbHRsdWdkYCwiLTEwIjpgXy0xMC0tMXRsd3ltNmB9LEhwZT17MDpgXzAtXzE0aHkzZmZgLCItMC4yNSI6YF8tMF8yNS0tZGJvaHh2YCwiLTAuNSI6YF8tMF81LS0xN25qOW81YCwiLTAuNzUiOmBfLTBfNzUtLTV2MzZtM2AsIi0xIjpgXy0xLS1yY2o2Y2ZgLCItMS41IjpgXy0xXzUtLXBlbWV4dmAsIi0yIjpgXy0yLS10dWU0cWZgLCItMyI6YF8tMy0tMXI1NWYxbGAsIi00IjpgXy00LS1wZW5hZnJgLCItNSI6YF8tNS0tMWNrZ3c0YmAsIi02IjpgXy02LS0xNXk3aDJ4YCwiLTciOmBfLTctLTE5dmRmaGFgLCItOCI6YF8tOC0tMzFjcWo3YCwiLTkiOmBfLTktLXM4MnIzMGAsIi0xMCI6YF8tMTAtLTE3OWxneXpgfSxVcGU9e3N0YXJ0OmBzdGFydC1zdzlrcjdrYCxlbmQ6YGVuZC1lNmNpMXVwYCxjZW50ZXI6YGNlbnRlci1jMXZkdjJwdGAsanVzdGlmeTpganVzdGlmeS1qeWZpcGkwYH0sV3BlPXtoaWRkZW46YGhpZGRlbi1oMXg5aHdmdmAsdmlzaWJsZTpgdmlzaWJsZS12enlxMjNnYH07ZnVuY3Rpb24gZUMoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBHcGUoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/ZUMoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe0twZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTplQyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gS3BlKGUsdCxuKXtyZXR1cm4odD1xcGUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gcXBlKGUpe3ZhciB0PUpwZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBKcGUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX12YXIgdEM9e2N1cnJlbnQ6e319LFlwZT1lPT57dEMuY3VycmVudD1HcGUoe30sZSl9LG5DPXtjb2xvcjpgQ29sb3JgLGJhY2tncm91bmQ6YENvbG9yYCxib3JkZXJDb2xvcjpgQ29sb3JgLGJvcmRlcldpZHRoOmBCb3JkZXJXaWR0aGAsYm9yZGVyVG9wV2lkdGg6YEJvcmRlcldpZHRoYCxib3JkZXJFbmRXaWR0aDpgQm9yZGVyV2lkdGhgLGJvcmRlckJvdHRvbVdpZHRoOmBCb3JkZXJXaWR0aGAsYm9yZGVyU3RhcnRXaWR0aDpgQm9yZGVyV2lkdGhgLGJvcmRlclJhZGl1czpgQm9yZGVyUmFkaXVzYCxib3JkZXJUb3BMZWZ0UmFkaXVzOmBCb3JkZXJSYWRpdXNgLGJvcmRlclRvcFJpZ2h0UmFkaXVzOmBCb3JkZXJSYWRpdXNgLGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6YEJvcmRlclJhZGl1c2AsYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6YEJvcmRlclJhZGl1c2AsZm9udEZhbWlseTpgRm9udEZhbWlseWAsZm9udFNpemU6YEZvbnRTaXplYCxmb250V2VpZ2h0OmBGb250V2VpZ2h0YCxsaW5lSGVpZ2h0OmBMaW5lSGVpZ2h0YCxnYXA6YFNwYWNlYCxjb2x1bW5HYXA6YFNwYWNlYCxyb3dHYXA6YFNwYWNlYCxwYWRkaW5nOmBTcGFjZWAscGFkZGluZ1g6YFNwYWNlYCxwYWRkaW5nWTpgU3BhY2VgLHBhZGRpbmdUb3A6YFNwYWNlYCxwYWRkaW5nQm90dG9tOmBTcGFjZWAscGFkZGluZ1N0YXJ0OmBTcGFjZWAscGFkZGluZ0VuZDpgU3BhY2VgLG1hcmdpbjpgU3BhY2VgLG1hcmdpblg6YFNwYWNlYCxtYXJnaW5ZOmBTcGFjZWAsbWFyZ2luVG9wOmBTcGFjZWAsbWFyZ2luQm90dG9tOmBTcGFjZWAsbWFyZ2luRW5kOmBTcGFjZWAsbWFyZ2luU3RhcnQ6YFNwYWNlYCxlbGV2YXRpb246YEVsZXZhdGlvbmB9LFhwZT17d2lkdGg6MSxoZWlnaHQ6MSxtaW5XaWR0aDoxLG1pbkhlaWdodDoxLG1heFdpZHRoOjEsbWF4SGVpZ2h0OjEsdG9wOjEsYm90dG9tOjEsbGVmdDoxLHJpZ2h0OjEsZmxleEJhc2lzOjF9LFpwZT0oZSx0KT0+e2xldCBuPXt9LHI9YGA7Zm9yKGxldCB0IGluIGUpe2xldCBsPWVbdF07aWYobCE9PXZvaWQgMCl7aWYoSlNbdF0hPT12b2lkIDApe2xldCBlPVhwZVt0XTtpZih0eXBlb2YgbCE9YG9iamVjdGApe25bYC0tYCt0XT1lJiZ0eXBlb2YgbD09YG51bWJlcmAmJmwhPT0wP2wrYHB4YDpsLHIrPWAgYCtKU1t0XTtjb250aW51ZX1sLmJhc2UhPT12b2lkIDAmJihuW2AtLWArdF09ZSYmdHlwZW9mIGwuYmFzZT09YG51bWJlcmAmJmwuYmFzZSE9PTA/bC5iYXNlK2BweGA6bC5iYXNlLHIrPWAgYCtKU1t0XSksbC5waG9uZSE9PXZvaWQgMCYmKG5bYC0tcGhvbmUtYCt0XT1lJiZ0eXBlb2YgbC5waG9uZT09YG51bWJlcmAmJmwucGhvbmUhPT0wP2wucGhvbmUrYHB4YDpsLnBob25lLHIrPWAgYCtaU1t0XSksbC50YWJsZXQhPT12b2lkIDAmJihuW2AtLXRhYmxldC1gK3RdPWUmJnR5cGVvZiBsLnRhYmxldD09YG51bWJlcmAmJmwudGFibGV0IT09MD9sLnRhYmxldCtgcHhgOmwudGFibGV0LHIrPWAgYCtRU1t0XSksbC5kZXNrdG9wIT09dm9pZCAwJiYobltgLS1kZXNrdG9wLWArdF09ZSYmdHlwZW9mIGwuZGVza3RvcD09YG51bWJlcmAmJmwuZGVza3RvcCE9PTA/bC5kZXNrdG9wK2BweGA6bC5kZXNrdG9wLHIrPWAgYCskU1t0XSk7Y29udGludWV9aWYodHlwZW9mIGwhPWBvYmplY3RgKXt2YXIgaTtyKz1gIGArKHFTW3RdW2xdPz8oKGk9dEMuY3VycmVudC5leHRlbmRTdHlsZVByb3BzKT09bnVsbHx8KGk9aVtuQ1t0XV1bbF0pPT1udWxsP3ZvaWQgMDppW3RdLmJhc2UpKX1lbHNle2lmKGwuYmFzZSE9PXZvaWQgMCl7dmFyIGE7cis9YCBgKyhxU1t0XVtsLmJhc2VdPz8oKGE9dEMuY3VycmVudC5leHRlbmRTdHlsZVByb3BzKT09bnVsbHx8KGE9YVtuQ1t0XV1bbC5iYXNlXSk9PW51bGw/dm9pZCAwOmFbdF0uYmFzZSkpfWlmKGwucGhvbmUhPT12b2lkIDApe3ZhciBvO3IrPWAgYCsocmRlW3RdW2wucGhvbmVdPz8oKG89dEMuY3VycmVudC5leHRlbmRTdHlsZVByb3BzKT09bnVsbHx8KG89b1tuQ1t0XV1bbC5waG9uZV0pPT1udWxsP3ZvaWQgMDpvW3RdLnBob25lKSl9aWYobC50YWJsZXQhPT12b2lkIDApe3ZhciBzO3IrPWAgYCsoJGRlW3RdW2wudGFibGV0XT8/KChzPXRDLmN1cnJlbnQuZXh0ZW5kU3R5bGVQcm9wcyk9PW51bGx8fChzPXNbbkNbdF1dW2wudGFibGV0XSk9PW51bGw/dm9pZCAwOnNbdF0udGFibGV0KSl9aWYobC5kZXNrdG9wIT09dm9pZCAwKXt2YXIgYztyKz1gIGArKFlmZVt0XVtsLmRlc2t0b3BdPz8oKGM9dEMuY3VycmVudC5leHRlbmRTdHlsZVByb3BzKT09bnVsbHx8KGM9Y1tuQ1t0XV1bbC5kZXNrdG9wXSk9PW51bGw/dm9pZCAwOmNbdF0uZGVza3RvcCkpfX19fWZvcihsZXQgZSBpbiB0KW5bZV09dFtlXTtyZXR1cm57c3R5bGU6bixjbGFzc05hbWU6cn19LFFwZT1gY2hpbGRyZW4uYXMuYWNjZXNzaWJpbGl0eUxhYmVsLmFjY2Vzc2liaWxpdHlMYWJlbGxlZEJ5LmFjY2Vzc2liaWxpdHlIaW50LnN0eWxlLmNsYXNzTmFtZS50ZXN0SUQucGluLmVsZXZhdGlvbi5ib3JkZXJlZC5ib3JkZXJlZFRvcC5ib3JkZXJlZEJvdHRvbS5ib3JkZXJlZFN0YXJ0LmJvcmRlcmVkRW5kLmJvcmRlcmVkSG9yaXpvbnRhbC5ib3JkZXJlZFZlcnRpY2FsLmRhbmdlcm91c2x5U2V0QmFja2dyb3VuZC5kaXNwbGF5LnBvc2l0aW9uLm92ZXJmbG93LnpJbmRleC5nYXAuY29sdW1uR2FwLnJvd0dhcC5qdXN0aWZ5Q29udGVudC5hbGlnbkNvbnRlbnQuYWxpZ25JdGVtcy5hbGlnblNlbGYuZmxleERpcmVjdGlvbi5mbGV4V3JhcC5jb2xvci5iYWNrZ3JvdW5kLmJvcmRlckNvbG9yLmJvcmRlclRvcExlZnRSYWRpdXMuYm9yZGVyVG9wUmlnaHRSYWRpdXMuYm9yZGVyQm90dG9tTGVmdFJhZGl1cy5ib3JkZXJCb3R0b21SaWdodFJhZGl1cy5ib3JkZXJUb3BXaWR0aC5ib3JkZXJFbmRXaWR0aC5ib3JkZXJTdGFydFdpZHRoLmJvcmRlckJvdHRvbVdpZHRoLmJvcmRlcldpZHRoLmJvcmRlclJhZGl1cy5mb250LmZvbnRGYW1pbHkuZm9udFNpemUuZm9udFdlaWdodC5saW5lSGVpZ2h0LnRleHRBbGlnbi50ZXh0RGVjb3JhdGlvbi50ZXh0VHJhbnNmb3JtLnBhZGRpbmcucGFkZGluZ1gucGFkZGluZ1kucGFkZGluZ1RvcC5wYWRkaW5nQm90dG9tLnBhZGRpbmdTdGFydC5wYWRkaW5nRW5kLm1hcmdpbi5tYXJnaW5YLm1hcmdpblkubWFyZ2luVG9wLm1hcmdpbkJvdHRvbS5tYXJnaW5TdGFydC5tYXJnaW5FbmQudXNlclNlbGVjdC52aXNpYmlsaXR5LndpZHRoLmhlaWdodC5taW5XaWR0aC5taW5IZWlnaHQubWF4V2lkdGgubWF4SGVpZ2h0LmFzcGVjdFJhdGlvLnRvcC5ib3R0b20ubGVmdC5yaWdodC50cmFuc2Zvcm0uZmxleEJhc2lzLmZsZXhTaHJpbmsuZmxleEdyb3cuZ3JpZFRlbXBsYXRlQ29sdW1ucy5ncmlkVGVtcGxhdGVSb3dzLmdyaWRUZW1wbGF0ZUFyZWFzLmdyaWRUZW1wbGF0ZS5ncmlkQXV0b0NvbHVtbnMuZ3JpZEF1dG9Sb3dzLmdyaWRBdXRvRmxvdy5ncmlkLmdyaWRSb3dTdGFydC5ncmlkQ29sdW1uU3RhcnQuZ3JpZFJvd0VuZC5ncmlkQ29sdW1uRW5kLmdyaWRSb3cuZ3JpZENvbHVtbi5ncmlkQXJlYS5vcGFjaXR5YC5zcGxpdChgLmApO2Z1bmN0aW9uIHJDKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gaUMoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/ckMoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpeyRwZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpyQyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gJHBlKGUsdCxuKXtyZXR1cm4odD1lbWUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gZW1lKGUpe3ZhciB0PXRtZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiB0bWUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBubWUoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT1ybWUoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIHJtZShlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluZGV4T2YocikhPT0tMSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59dmFyIEo9KDAsRy5tZW1vKSgoMCxHLmZvcndhcmRSZWYpKChlLHQpPT57bGV0e2NoaWxkcmVuOm4sYXM6cixhY2Nlc3NpYmlsaXR5TGFiZWw6aSxhY2Nlc3NpYmlsaXR5TGFiZWxsZWRCeTphLGFjY2Vzc2liaWxpdHlIaW50Om8sc3R5bGU6cyxjbGFzc05hbWU6Yyx0ZXN0SUQ6bCxwaW46dSxlbGV2YXRpb246ZCxib3JkZXJlZDpmLGJvcmRlcmVkVG9wOnAsYm9yZGVyZWRCb3R0b206bSxib3JkZXJlZFN0YXJ0OmgsYm9yZGVyZWRFbmQ6Zyxib3JkZXJlZEhvcml6b250YWw6Xyxib3JkZXJlZFZlcnRpY2FsOnYsZGFuZ2Vyb3VzbHlTZXRCYWNrZ3JvdW5kOnksZGlzcGxheTpiPWBmbGV4YCxwb3NpdGlvbjp4LG92ZXJmbG93OlMsekluZGV4OkMsZ2FwOncsY29sdW1uR2FwOlQscm93R2FwOkUsanVzdGlmeUNvbnRlbnQ6RCxhbGlnbkNvbnRlbnQ6TyxhbGlnbkl0ZW1zOmssYWxpZ25TZWxmOkEsZmxleERpcmVjdGlvbjpqLGZsZXhXcmFwOk0sY29sb3I6TixiYWNrZ3JvdW5kOlAsYm9yZGVyQ29sb3I6Rixib3JkZXJUb3BMZWZ0UmFkaXVzOmVlLGJvcmRlclRvcFJpZ2h0UmFkaXVzOkksYm9yZGVyQm90dG9tTGVmdFJhZGl1czpMLGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOlIsYm9yZGVyVG9wV2lkdGg6eixib3JkZXJFbmRXaWR0aDp0ZSxib3JkZXJTdGFydFdpZHRoOm5lLGJvcmRlckJvdHRvbVdpZHRoOnJlLGJvcmRlcldpZHRoOmllLGJvcmRlclJhZGl1czphZSxmb250Om9lLGZvbnRGYW1pbHk6c2U9b2UsZm9udFNpemU6Y2U9b2UsZm9udFdlaWdodDpsZT1vZSxsaW5lSGVpZ2h0OnVlPW9lLHRleHRBbGlnbjpkZSx0ZXh0RGVjb3JhdGlvbjpmZSx0ZXh0VHJhbnNmb3JtOnBlLHBhZGRpbmc6bWUscGFkZGluZ1g6aGUscGFkZGluZ1k6Z2UscGFkZGluZ1RvcDpfZSxwYWRkaW5nQm90dG9tOnZlLHBhZGRpbmdTdGFydDp5ZSxwYWRkaW5nRW5kOmJlLG1hcmdpbjp4ZSxtYXJnaW5YOlNlLG1hcmdpblk6Q2UsbWFyZ2luVG9wOndlLG1hcmdpbkJvdHRvbTpUZSxtYXJnaW5TdGFydDpFZSxtYXJnaW5FbmQ6RGUsdXNlclNlbGVjdDpPZSx2aXNpYmlsaXR5OmtlLHdpZHRoOkFlLGhlaWdodDpqZSxtaW5XaWR0aDpNZSxtaW5IZWlnaHQ6TmUsbWF4V2lkdGg6UGUsbWF4SGVpZ2h0OkZlLGFzcGVjdFJhdGlvOkllLHRvcDpMZSxib3R0b206UmUsbGVmdDp6ZSxyaWdodDpCZSx0cmFuc2Zvcm06VmUsZmxleEJhc2lzOkhlLGZsZXhTaHJpbms6VWUsZmxleEdyb3c6V2UsZ3JpZFRlbXBsYXRlQ29sdW1uczpHZSxncmlkVGVtcGxhdGVSb3dzOktlLGdyaWRUZW1wbGF0ZUFyZWFzOnFlLGdyaWRUZW1wbGF0ZTpKZSxncmlkQXV0b0NvbHVtbnM6WWUsZ3JpZEF1dG9Sb3dzOlhlLGdyaWRBdXRvRmxvdzpaZSxncmlkOlFlLGdyaWRSb3dTdGFydDokZSxncmlkQ29sdW1uU3RhcnQ6ZXQsZ3JpZFJvd0VuZDp0dCxncmlkQ29sdW1uRW5kOm50LGdyaWRSb3c6cnQsZ3JpZENvbHVtbjppdCxncmlkQXJlYTphdCxvcGFjaXR5Om90fT1lLHN0PW5tZShlLFFwZSksY3Q9cj8/YGRpdmAsbHQ9KDAsRy51c2VNZW1vKSgoKT0+aUMoe2JhY2tncm91bmRDb2xvcjp5fSxzKSxbeSxzXSksdXQ9KDAsRy51c2VNZW1vKSgoKT0+WnBlKHtkaXNwbGF5OmIscG9zaXRpb246eCxvdmVyZmxvdzpTLHpJbmRleDpDLGdhcDp3LGNvbHVtbkdhcDpULHJvd0dhcDpFLGp1c3RpZnlDb250ZW50OkQsYWxpZ25Db250ZW50Ok8sYWxpZ25JdGVtczprLGFsaWduU2VsZjpBLGZsZXhEaXJlY3Rpb246aixmbGV4V3JhcDpNLGNvbG9yOk4sYmFja2dyb3VuZDpQLGJvcmRlckNvbG9yOkYsYm9yZGVyV2lkdGg6aWUsYm9yZGVyUmFkaXVzOmFlLGJvcmRlclRvcExlZnRSYWRpdXM6ZWUsYm9yZGVyVG9wUmlnaHRSYWRpdXM6SSxib3JkZXJCb3R0b21MZWZ0UmFkaXVzOkwsYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6Uixib3JkZXJUb3BXaWR0aDp6LGJvcmRlckVuZFdpZHRoOnRlLGJvcmRlckJvdHRvbVdpZHRoOnJlLGJvcmRlclN0YXJ0V2lkdGg6bmUsZWxldmF0aW9uOmQsZm9udEZhbWlseTpzZSxmb250U2l6ZTpjZSxmb250V2VpZ2h0OmxlLGxpbmVIZWlnaHQ6dWUsdGV4dEFsaWduOmRlLHRleHREZWNvcmF0aW9uOmZlLHRleHRUcmFuc2Zvcm06cGUscGFkZGluZzptZSxwYWRkaW5nWDpoZSxwYWRkaW5nWTpnZSxwYWRkaW5nVG9wOl9lLHBhZGRpbmdCb3R0b206dmUscGFkZGluZ1N0YXJ0OnllLHBhZGRpbmdFbmQ6YmUsbWFyZ2luOnhlLG1hcmdpblg6U2UsbWFyZ2luWTpDZSxtYXJnaW5Ub3A6d2UsbWFyZ2luQm90dG9tOlRlLG1hcmdpblN0YXJ0OkVlLG1hcmdpbkVuZDpEZSx1c2VyU2VsZWN0Ok9lLHZpc2liaWxpdHk6a2Usd2lkdGg6QWUsaGVpZ2h0OmplLG1pbldpZHRoOk1lLG1pbkhlaWdodDpOZSxtYXhXaWR0aDpQZSxtYXhIZWlnaHQ6RmUsYXNwZWN0UmF0aW86SWUsdG9wOkxlLGJvdHRvbTpSZSxsZWZ0OnplLHJpZ2h0OkJlLHRyYW5zZm9ybTpWZSxmbGV4QmFzaXM6SGUsZmxleFNocmluazpVZSxmbGV4R3JvdzpXZSxncmlkVGVtcGxhdGVDb2x1bW5zOkdlLGdyaWRUZW1wbGF0ZVJvd3M6S2UsZ3JpZFRlbXBsYXRlQXJlYXM6cWUsZ3JpZFRlbXBsYXRlOkplLGdyaWRBdXRvQ29sdW1uczpZZSxncmlkQXV0b1Jvd3M6WGUsZ3JpZEF1dG9GbG93OlplLGdyaWQ6UWUsZ3JpZFJvd1N0YXJ0OiRlLGdyaWRDb2x1bW5TdGFydDpldCxncmlkUm93RW5kOnR0LGdyaWRDb2x1bW5FbmQ6bnQsZ3JpZFJvdzpydCxncmlkQ29sdW1uOml0LGdyaWRBcmVhOmF0LG9wYWNpdHk6b3R9LGx0KSxbYix4LFMsQyx3LFQsRSxELE8sayxBLGosTSxOLFAsRixpZSxhZSxlZSxJLEwsUix6LHRlLHJlLG5lLGQsc2UsY2UsbGUsdWUsZGUsZmUscGUsbWUsaGUsZ2UsX2UsdmUseWUsYmUseGUsU2UsQ2Usd2UsVGUsRWUsRGUsT2Usa2UsQWUsamUsTWUsTmUsUGUsRmUsSWUsTGUsUmUsemUsQmUsVmUsSGUsVWUsV2UsR2UsS2UscWUsSmUsWWUsWGUsWmUsUWUsJGUsZXQsdHQsbnQscnQsaXQsYXQsb3QsbHRdKTtyZXR1cm4oMCxLLmpzeCkoY3QsaUMoaUMoe3JlZjp0LCJhcmlhLWRlc2NyaWJlZGJ5IjpvLCJhcmlhLWxhYmVsIjppLCJhcmlhLWxhYmVsbGVkYnkiOmEsY2xhc3NOYW1lOlZTKHV0LmNsYXNzTmFtZSx1JiZzdWVbdV0sZiYmS1MuYm9yZGVyZWQscCYmS1MuYm9yZGVyZWRUb3AsbSYmS1MuYm9yZGVyZWRCb3R0b20saCYmS1MuYm9yZGVyZWRTdGFydCxnJiZLUy5ib3JkZXJlZEVuZCxfJiZLUy5ib3JkZXJlZEhvcml6b250YWwsdiYmS1MuYm9yZGVyZWRWZXJ0aWNhbCxjKSwiZGF0YS10ZXN0aWQiOmwsc3R5bGU6dXQuc3R5bGV9LHN0KSx7fSx7Y2hpbGRyZW46bn0pKX0pKTtKLmRpc3BsYXlOYW1lPWBCb3hgO3ZhciBpbWU9Ljg4LGFtZT0uODIsYUM9LjUsb21lPS43NSxzbWU9W2Bhc2AsYGZvbnRgLGBmb250RmFtaWx5YCxgY29sb3JgLGBkaXNwbGF5YCxgdGV4dEFsaWduYCxgbnVtYmVyT2ZMaW5lc2AsYHN0eWxlYCxgY2xhc3NOYW1lYCxgZGlzYWJsZWRgLGBkYW5nZXJvdXNseVNldENvbG9yYCxgdGFidWxhck51bWJlcnNgLGBzbGFzaGVkWmVyb2AsYHVuZGVybGluZWAsYG1vbm9gLGBub1dyYXBgLGBvdmVyZmxvd2AsYHRleHREZWNvcmF0aW9uYCxgdGV4dFRyYW5zZm9ybWAsYGNoaWxkcmVuYCxgcmVuZGVyRW1wdHlOb2RlYF07ZnVuY3Rpb24gb0MoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBzQyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9vQyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7Y21lKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOm9DKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBjbWUoZSx0LG4pe3JldHVybih0PWxtZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBsbWUoZSl7dmFyIHQ9dW1lKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIHVtZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIGRtZShlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG4scixpPWZtZShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPT09LTEmJnt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKGlbbl09ZVtuXSl9cmV0dXJuIGl9ZnVuY3Rpb24gZm1lKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgcG1lPWBiYXNlQ3NzLWJjM2wxdzJgLG1tZT1gbW9ub0Nzcy1tdG11dGo4YCxobWU9YG51bWJlck9mTGluZXNDc3MtbjEzbmhudXFgLGdtZT1gZGlzYWJsZWRDc3MtZDFjanp6MGNgLF9tZT1gdGFidWxhck51bWJlcnNDc3MtdDFuMjI2dDZgLHZtZT1gc2xhc2hlZFplcm9Dc3Mtc3RyN2lpOGAseW1lPWBub1dyYXBDc3MtbjF1enoyeXZgLGJtZT17dHJ1bmNhdGU6YHRydW5jYXRlLXQxd2J3d3gzYCxjbGlwOmBjbGlwLWN0YXM0ejNgLHdyYXA6YHdyYXAtdzF2N2lkMHZgLGJyZWFrOmBicmVhay1iMWl5MnVya2B9LHhtZT1gc3BhbmAsY0M9KDAsRy5tZW1vKSgoMCxHLmZvcndhcmRSZWYpKChlLHQpPT57bGV0e2FzOm4sZm9udDpyPWBpbmhlcml0YCxmb250RmFtaWx5Omk9cixjb2xvcjphPWBmZ2AsZGlzcGxheTpvPWBpbmxpbmVgLHRleHRBbGlnbjpzPWBzdGFydGAsbnVtYmVyT2ZMaW5lczpjLHN0eWxlOmwsY2xhc3NOYW1lOnUsZGlzYWJsZWQ6ZCxkYW5nZXJvdXNseVNldENvbG9yOmYsdGFidWxhck51bWJlcnM6cCxzbGFzaGVkWmVybzptLHVuZGVybGluZTpoLG1vbm86Zyxub1dyYXA6XyxvdmVyZmxvdzp2LHRleHREZWNvcmF0aW9uOnk9aD9gdW5kZXJsaW5lYDpgbm9uZWAsdGV4dFRyYW5zZm9ybTpiLGNoaWxkcmVuOngscmVuZGVyRW1wdHlOb2RlOlM9ITB9PWUsQz1kbWUoZSxzbWUpLHc9bj8/eG1lLFQ9KDAsRy51c2VNZW1vKSgoKT0+c0Moe2NvbG9yOmYsIi0tdGV4dC1udW1iZXJPZkxpbmVzIjpjLCItLXRleHQtdGV4dFRyYW5zZm9ybSI6Yj8/YHZhcigtLXRleHRUcmFuc2Zvcm0tJHtpfSlgLCItLXRleHQtZm9udEZhbWlseU1vbm8iOmcmJmB2YXIoLS1mb250RmFtaWx5TW9uby0ke2l9KWB9LGwpLFtmLGMsYixnLGksbF0pO3JldHVybiFTJiYoeD09bnVsbHx8eD09PWBgfHxOdW1iZXIuaXNOYU4oeCkpP251bGw6KDAsSy5qc3gpKEosc0Moc0Moe3JlZjp0LGFzOncsY2xhc3NOYW1lOlZTKHBtZSxjJiZobWUsZCYmZ21lLGcmJm1tZSxwJiZfbWUsbSYmdm1lLF8mJnltZSx2JiZibWVbdl0sdSksY29sb3I6YSxkaXNwbGF5Om8sZm9udDpyLGZvbnRGYW1pbHk6aSxzdHlsZTpULHRleHRBbGlnbjpzLHRleHREZWNvcmF0aW9uOnl9LEMpLHt9LHtjaGlsZHJlbjp4fSkpfSkpO2NDLmRpc3BsYXlOYW1lPWBUZXh0YDt2YXIgU21lPXMoKGU9Pnt2YXIgdD1UdSgpO2Z1bmN0aW9uIG4oZSl7dmFyIHQ9YGh0dHBzOi8vcmVhY3QuZGV2L2Vycm9ycy9gK2U7aWYoMTxhcmd1bWVudHMubGVuZ3RoKXt0Kz1gP2FyZ3NbXT1gK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbMV0pO2Zvcih2YXIgbj0yO248YXJndW1lbnRzLmxlbmd0aDtuKyspdCs9YCZhcmdzW109YCtlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW25dKX1yZXR1cm5gTWluaWZpZWQgUmVhY3QgZXJyb3IgI2ArZStgOyB2aXNpdCBgK3QrYCBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuYH1mdW5jdGlvbiByKCl7fXZhciBpPXtkOntmOnIscjpmdW5jdGlvbigpe3Rocm93IEVycm9yKG4oNTIyKSl9LEQ6cixDOnIsTDpyLG06cixYOnIsUzpyLE06cn0scDowLGZpbmRET01Ob2RlOm51bGx9LGE9U3ltYm9sLmZvcihgcmVhY3QucG9ydGFsYCk7ZnVuY3Rpb24gbyhlLHQsbil7dmFyIHI9Mzxhcmd1bWVudHMubGVuZ3RoJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOm51bGw7cmV0dXJueyQkdHlwZW9mOmEsa2V5OnI9PW51bGw/bnVsbDpgYCtyLGNoaWxkcmVuOmUsY29udGFpbmVySW5mbzp0LGltcGxlbWVudGF0aW9uOm59fXZhciBzPXQuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFO2Z1bmN0aW9uIGMoZSx0KXtpZihlPT09YGZvbnRgKXJldHVybmBgO2lmKHR5cGVvZiB0PT1gc3RyaW5nYClyZXR1cm4gdD09PWB1c2UtY3JlZGVudGlhbHNgP3Q6YGB9ZS5fX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU9aSxlLmNyZWF0ZVBvcnRhbD1mdW5jdGlvbihlLHQpe3ZhciByPTI8YXJndW1lbnRzLmxlbmd0aCYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpudWxsO2lmKCF0fHx0Lm5vZGVUeXBlIT09MSYmdC5ub2RlVHlwZSE9PTkmJnQubm9kZVR5cGUhPT0xMSl0aHJvdyBFcnJvcihuKDI5OSkpO3JldHVybiBvKGUsdCxudWxsLHIpfSxlLmZsdXNoU3luYz1mdW5jdGlvbihlKXt2YXIgdD1zLlQsbj1pLnA7dHJ5e2lmKHMuVD1udWxsLGkucD0yLGUpcmV0dXJuIGUoKX1maW5hbGx5e3MuVD10LGkucD1uLGkuZC5mKCl9fSxlLnByZWNvbm5lY3Q9ZnVuY3Rpb24oZSx0KXt0eXBlb2YgZT09YHN0cmluZ2AmJih0Pyh0PXQuY3Jvc3NPcmlnaW4sdD10eXBlb2YgdD09YHN0cmluZ2A/dD09PWB1c2UtY3JlZGVudGlhbHNgP3Q6YGA6dm9pZCAwKTp0PW51bGwsaS5kLkMoZSx0KSl9LGUucHJlZmV0Y2hETlM9ZnVuY3Rpb24oZSl7dHlwZW9mIGU9PWBzdHJpbmdgJiZpLmQuRChlKX0sZS5wcmVpbml0PWZ1bmN0aW9uKGUsdCl7aWYodHlwZW9mIGU9PWBzdHJpbmdgJiZ0JiZ0eXBlb2YgdC5hcz09YHN0cmluZ2Ape3ZhciBuPXQuYXMscj1jKG4sdC5jcm9zc09yaWdpbiksYT10eXBlb2YgdC5pbnRlZ3JpdHk9PWBzdHJpbmdgP3QuaW50ZWdyaXR5OnZvaWQgMCxvPXR5cGVvZiB0LmZldGNoUHJpb3JpdHk9PWBzdHJpbmdgP3QuZmV0Y2hQcmlvcml0eTp2b2lkIDA7bj09PWBzdHlsZWA/aS5kLlMoZSx0eXBlb2YgdC5wcmVjZWRlbmNlPT1gc3RyaW5nYD90LnByZWNlZGVuY2U6dm9pZCAwLHtjcm9zc09yaWdpbjpyLGludGVncml0eTphLGZldGNoUHJpb3JpdHk6b30pOm49PT1gc2NyaXB0YCYmaS5kLlgoZSx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6YSxmZXRjaFByaW9yaXR5Om8sbm9uY2U6dHlwZW9mIHQubm9uY2U9PWBzdHJpbmdgP3Qubm9uY2U6dm9pZCAwfSl9fSxlLnByZWluaXRNb2R1bGU9ZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgZT09YHN0cmluZ2ApaWYodHlwZW9mIHQ9PWBvYmplY3RgJiZ0KXtpZih0LmFzPT1udWxsfHx0LmFzPT09YHNjcmlwdGApe3ZhciBuPWModC5hcyx0LmNyb3NzT3JpZ2luKTtpLmQuTShlLHtjcm9zc09yaWdpbjpuLGludGVncml0eTp0eXBlb2YgdC5pbnRlZ3JpdHk9PWBzdHJpbmdgP3QuaW50ZWdyaXR5OnZvaWQgMCxub25jZTp0eXBlb2YgdC5ub25jZT09YHN0cmluZ2A/dC5ub25jZTp2b2lkIDB9KX19ZWxzZSB0Pz9pLmQuTShlKX0sZS5wcmVsb2FkPWZ1bmN0aW9uKGUsdCl7aWYodHlwZW9mIGU9PWBzdHJpbmdgJiZ0eXBlb2YgdD09YG9iamVjdGAmJnQmJnR5cGVvZiB0LmFzPT1gc3RyaW5nYCl7dmFyIG49dC5hcyxyPWMobix0LmNyb3NzT3JpZ2luKTtpLmQuTChlLG4se2Nyb3NzT3JpZ2luOnIsaW50ZWdyaXR5OnR5cGVvZiB0LmludGVncml0eT09YHN0cmluZ2A/dC5pbnRlZ3JpdHk6dm9pZCAwLG5vbmNlOnR5cGVvZiB0Lm5vbmNlPT1gc3RyaW5nYD90Lm5vbmNlOnZvaWQgMCx0eXBlOnR5cGVvZiB0LnR5cGU9PWBzdHJpbmdgP3QudHlwZTp2b2lkIDAsZmV0Y2hQcmlvcml0eTp0eXBlb2YgdC5mZXRjaFByaW9yaXR5PT1gc3RyaW5nYD90LmZldGNoUHJpb3JpdHk6dm9pZCAwLHJlZmVycmVyUG9saWN5OnR5cGVvZiB0LnJlZmVycmVyUG9saWN5PT1gc3RyaW5nYD90LnJlZmVycmVyUG9saWN5OnZvaWQgMCxpbWFnZVNyY1NldDp0eXBlb2YgdC5pbWFnZVNyY1NldD09YHN0cmluZ2A/dC5pbWFnZVNyY1NldDp2b2lkIDAsaW1hZ2VTaXplczp0eXBlb2YgdC5pbWFnZVNpemVzPT1gc3RyaW5nYD90LmltYWdlU2l6ZXM6dm9pZCAwLG1lZGlhOnR5cGVvZiB0Lm1lZGlhPT1gc3RyaW5nYD90Lm1lZGlhOnZvaWQgMH0pfX0sZS5wcmVsb2FkTW9kdWxlPWZ1bmN0aW9uKGUsdCl7aWYodHlwZW9mIGU9PWBzdHJpbmdgKWlmKHQpe3ZhciBuPWModC5hcyx0LmNyb3NzT3JpZ2luKTtpLmQubShlLHthczp0eXBlb2YgdC5hcz09YHN0cmluZ2AmJnQuYXMhPT1gc2NyaXB0YD90LmFzOnZvaWQgMCxjcm9zc09yaWdpbjpuLGludGVncml0eTp0eXBlb2YgdC5pbnRlZ3JpdHk9PWBzdHJpbmdgP3QuaW50ZWdyaXR5OnZvaWQgMH0pfWVsc2UgaS5kLm0oZSl9LGUucmVxdWVzdEZvcm1SZXNldD1mdW5jdGlvbihlKXtpLmQucihlKX0sZS51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcz1mdW5jdGlvbihlLHQpe3JldHVybiBlKHQpfSxlLnVzZUZvcm1TdGF0ZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHMuSC51c2VGb3JtU3RhdGUoZSx0LG4pfSxlLnVzZUZvcm1TdGF0dXM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5ILnVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzKCl9LGUudmVyc2lvbj1gMTkuMi40YH0pKSxsQz1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oKXtpZighKHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18+YHVgfHx0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFIT1gZnVuY3Rpb25gKSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKG4pfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fW4oKSx0LmV4cG9ydHM9U21lKCl9KSksdUM9dShsQygpKSxkQz1gTTE1LjQ4NTUgNi4wMjQyQzE2LjE3MTUgNy4yNDg1MiAxNi4xNzE1IDguNzUxNDggMTUuNDg1NSA5Ljk3NTgxTDEzLjQyMTMgMTMuNjU5OEMxMi43MjU5IDE0LjkwMDggMTEuNDMxNyAxNS42NjY3IDEwLjAzMDEgMTUuNjY2N0g1Ljk2OTk0QzQuNTY4MjggMTUuNjY2NyAzLjI3NDEgMTQuOTAwOCAyLjU3ODc0IDEzLjY1OThMMC41MTQ1MTUgOS45NzU4MUMtMC4xNzE1MDQgOC43NTE0OCAtMC4xNzE1MDUgNy4yNDg1MiAwLjUxNDUxNCA2LjAyNDJMMi41Nzg3NCAyLjM0MDIyQzMuMjc0MSAxLjA5OTIyIDQuNTY4MjggMC4zMzMzMzYgNS45Njk5NCAwLjMzMzMzNkgxMC4wMzAxQzExLjQzMTcgMC4zMzMzMzYgMTIuNzI1OSAxLjA5OTIyIDEzLjQyMTMgMi4zNDAyMkwxNS40ODU1IDYuMDI0MlpgO2Z1bmN0aW9uIGZDKCl7dmFyIGU7cmV0dXJuISEodHlwZW9mIHdpbmRvdzxgdWAmJihlPXdpbmRvdykhPW51bGwmJihlPWUuZG9jdW1lbnQpIT1udWxsJiZlLmNyZWF0ZUVsZW1lbnQpfWZ1bmN0aW9uIHBDKCl7cmV0dXJuIWZDKCl9ZnVuY3Rpb24gbUMoKXtyZXR1cm4gcEMoKT92b2lkIDA6e3dpbmRvdyxkb2N1bWVudH19dmFyIGhDPSgpPT57bGV0W2UsdF09KDAsRy51c2VTdGF0ZSkoITEpO3JldHVybigwLEcudXNlRWZmZWN0KSgoKT0+dCghMCksW10pLCgwLEcudXNlTWVtbykoKCk9PmUmJmZDKCksW2VdKX0sZ0M9KCk9PntsZXQgZT1oQygpO3JldHVybiBmQygpJiZlfSxfQyxDbWU9YGNkcy1oZXhhZ29uYCx3bWU9YGNkcy1oZXhhZ29uLWNsaXBQYXRoLWNvbnRhaW5lcmAsVG1lPWBjZHMtaGV4YWdvbi1hdmF0YXItY2xpcHBlcmAsRW1lPTIsdkM9KCk9PigwLEsuanN4KShgc3ZnYCx7aGVpZ2h0OmAwYCx2aWV3Qm94OmAwIDAgMTYgMTZgLHdpZHRoOmAwYCxjaGlsZHJlbjooMCxLLmpzeCkoYGRlZnNgLHtjaGlsZHJlbjooMCxLLmpzeCkoYGNsaXBQYXRoYCx7Y2xpcFBhdGhVbml0czpgb2JqZWN0Qm91bmRpbmdCb3hgLGlkOlRtZSx0cmFuc2Zvcm06YHNjYWxlKCR7MS8xNn0gJHsxLzE2fSlgLGNoaWxkcmVuOigwLEsuanN4KShgcGF0aGAse2Q6ZEN9KX0pfSl9KTt2Qy5kaXNwbGF5TmFtZT1gSGV4YWdvbkF2YXRhckNsaXBQYXRoYDt2YXIgRG1lPWBoZXhhZ29uQm9yZGVyQ29udGFpbmVyQ3NzLWgxM2thOWI4YCxPbWU9YHBhdGhFbGVtZW50Q3NzLXAxbHA1dXF1YCx5Qz0oMCxHLm1lbW8pKGU9PntsZXR7c3Ryb2tlQ29sb3I6dCxvZmZzZXQ6bix0ZXN0SUQ6cj1DbWUsY2xhc3NOYW1lOml9PWU7cmV0dXJuKDAsSy5qc3gpKEoseyJhcmlhLWhpZGRlbiI6ITAsY2xhc3NOYW1lOlZTKERtZSxpKSwiZGF0YS1vZmZzZXQiOiEhbiwiZGF0YS10ZXN0aWQiOnIsY2hpbGRyZW46KDAsSy5qc3gpKGBzdmdgLHsiZGF0YS10ZXN0aWQiOmAke3J9LXN2Z2Asb3ZlcmZsb3c6YHZpc2libGVgLHZpZXdCb3g6YDAgMCAxNiAxNmAsY2hpbGRyZW46KDAsSy5qc3gpKGBwYXRoYCx7Y2xhc3NOYW1lOk9tZSxkOmRDLCJkYXRhLXRlc3RpZCI6YCR7cn0tcGF0aGAsc3Ryb2tlOnQsc3Ryb2tlV2lkdGg6RW1lLHZlY3RvckVmZmVjdDpgbm9uLXNjYWxpbmctc3Ryb2tlYH0pfSl9KX0pO3lDLmRpc3BsYXlOYW1lPWBIZXhhZ29uQm9yZGVyYDt2YXIgYkM9KF9DPW1DKCkpPT1udWxsP3ZvaWQgMDpfQy5kb2N1bWVudCx4Qz0oMCxHLm1lbW8pKCgpPT57bGV0IGU9KDAsRy51c2VNZW1vKSgoKT0+YkM9PW51bGw/dm9pZCAwOmJDLmNyZWF0ZUVsZW1lbnQoYGRpdmApLFtdKTtyZXR1cm4oMCxHLnVzZUVmZmVjdCkoKCk9PntsZXQgdD1iQz09bnVsbD92b2lkIDA6YkMuYm9keTtpZighKGJDIT1udWxsJiZiQy5nZXRFbGVtZW50QnlJZChgY2RzLWhleGFnb24tY2xpcFBhdGgtY29udGFpbmVyYCl8fCFlKSlyZXR1cm4gZS5pZD13bWUsZS5zdHlsZS5oZWlnaHQ9YDBweGAsZS5zdHlsZS53aWR0aD1gMHB4YCxlLmFyaWFIaWRkZW49YHRydWVgLHQ9PW51bGx8fHQuYXBwZW5kQ2hpbGQoZSksKCk9PntlLnJlbW92ZSgpfX0sW2VdKSxlPygwLHVDLmNyZWF0ZVBvcnRhbCkoKDAsSy5qc3gpKHZDLHt9KSxlKTpudWxsfSk7eEMuZGlzcGxheU5hbWU9YEhleGFnb25DbGlwUGF0aFBvcnRhbGA7dmFyIFNDPSgpPT5nQygpPygwLEsuanN4KSh4Qyx7fSk6KDAsSy5qc3gpKHZDLHt9KTtTQy5kaXNwbGF5TmFtZT1gSXNvSGV4YWdvbkNsaXBQYXRoYDt2YXIga21lPXtjaXJjbGU6MWU1LHNxdWlyY2xlOjgsc3F1YXJlOjQscmVjdGFuZ2xlOjAsaGV4YWdvbjowfSxBbWU9W2B3aWR0aGAsYGhlaWdodGAsYGFzcGVjdFJhdGlvYCxgc2hhcGVgLGBzb3VyY2VgLGBhbHRgLGBjbGFzc05hbWVgLGByZXNpemVNb2RlYCxgc2l6ZWAsYGJvcmRlckNvbG9yYCxgYm9yZGVyV2lkdGhgLGBzdHlsZWBdO2Z1bmN0aW9uIENDKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gd0MoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/Q0MoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2ptZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpDQyhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gam1lKGUsdCxuKXtyZXR1cm4odD1NbWUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gTW1lKGUpe3ZhciB0PU5tZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBObWUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBQbWUoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT1GbWUoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIEZtZShlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluZGV4T2YocikhPT0tMSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59dmFyIEltZT1gY2RzLVJlbW90ZUltYWdlYCxMbWU9YGJhc2VDc3MtYmJ6cDYwNWAsUm1lPXtjb3ZlcjpgY292ZXItYzFzZzl4ajlgLGNvbnRhaW46YGNvbnRhaW4tY3Q2MzloNmB9LHptZT1gaGV4YWdvbk92ZXJmbG93Q3NzLWgxMDZhdmI1YCxCbWU9YGZhbGxiYWNrQ3NzLWZtZDdpeGVgLFZtZT17Y2lyY2xlOmBjaXJjbGUtYzFvaDR5b3FgLHNxdWlyY2xlOmBzcXVpcmNsZS1zMWV4d2ZzOWAsc3F1YXJlOmBzcXVhcmUtczExN3dwdXdgLHJlY3RhbmdsZTpgcmVjdGFuZ2xlLXIxOGNqN29pYCxoZXhhZ29uOmBoZXhhZ29uLWg0YmMyNG9gfSxUQz0oMCxHLm1lbW8pKGU9PntsZXQgdD1HUyhgUmVtb3RlSW1hZ2VgLGUpLHt3aWR0aDpuLGhlaWdodDpyLGFzcGVjdFJhdGlvOmksc2hhcGU6YT1gc3F1YXJlYCxzb3VyY2U6byxhbHQ6cz1gYCxjbGFzc05hbWU6YyxyZXNpemVNb2RlOmw9YGNvdmVyYCxzaXplOnU9YG1gLGJvcmRlckNvbG9yOmQsYm9yZGVyV2lkdGg6Zj1kPzIwMDp2b2lkIDAsc3R5bGU6cH09dCxtPVBtZSh0LEFtZSksaD0oMCxHLnVzZU1lbW8pKCgpPT53Qyh7YXNwZWN0UmF0aW86aT9pLmpvaW4oYCAvIGApOnZvaWQgMH0scCksW2kscF0pLGc9KDAsRy51c2VNZW1vKSgoKT0+bnx8cj9yOmB2YXIoLS1hdmF0YXJTaXplLSR7dX0pYCxbbixyLHVdKSxfPSgwLEcudXNlTWVtbykoKCk9Pm58fHI/bjpgdmFyKC0tYXZhdGFyU2l6ZS0ke3V9KWAsW24scix1XSk7cmV0dXJuKDAsSy5qc3gpKEosd0Moe2FsdDpzLGFzOmBpbWdgLGJvcmRlckNvbG9yOmQsYm9yZGVyV2lkdGg6ZixjbGFzc05hbWU6VlMoSW1lLExtZSxhPT09YGhleGFnb25gJiZ6bWUsUm1lW2xdLFZtZVthXSwhbyYmQm1lLGMpLCJkYXRhLXNoYXBlIjphLGhlaWdodDpnLHNyYzpvLHN0eWxlOmgsd2lkdGg6X30sbSkpfSksRUM9e2lubmVyU3BhY2luZzp7cGFkZGluZ1g6MixwYWRkaW5nWToxLG1hcmdpblg6LTJ9LG91dGVyU3BhY2luZzp7cGFkZGluZ1g6MyxwYWRkaW5nWToxLG1hcmdpblg6MH19LEhtZT17ImhpZGRlbkV5ZS0xMi1hY3RpdmUiOmDzsJObYCwiaGlkZGVuRXllLTEyLWluYWN0aXZlIjpg87CTnGAsImhpZGRlbkV5ZS0xNi1hY3RpdmUiOmDzsJOdYCwiaGlkZGVuRXllLTE2LWluYWN0aXZlIjpg87CTnmAsImhpZGRlbkV5ZS0yNC1hY3RpdmUiOmDzsJOfYCwiaGlkZGVuRXllLTI0LWluYWN0aXZlIjpg87CToGAsInRyYWRpbmctMTItYWN0aXZlIjpg87Cht2AsInRyYWRpbmctMTItaW5hY3RpdmUiOmDzsKG4YCwidHJhZGluZy0xNi1hY3RpdmUiOmDzsKG5YCwidHJhZGluZy0xNi1pbmFjdGl2ZSI6YPOwobpgLCJ0cmFkaW5nLTI0LWFjdGl2ZSI6YPOwobtgLCJ0cmFkaW5nLTI0LWluYWN0aXZlIjpg87ChvGAsInF1ZXJ5VHJhbnNhY3QtMTItYWN0aXZlIjpg87CbmWAsInF1ZXJ5VHJhbnNhY3QtMTItaW5hY3RpdmUiOmDzsJuaYCwicXVlcnlUcmFuc2FjdC0xNi1hY3RpdmUiOmDzsJubYCwicXVlcnlUcmFuc2FjdC0xNi1pbmFjdGl2ZSI6YPOwm5xgLCJxdWVyeVRyYW5zYWN0LTI0LWFjdGl2ZSI6YPOwm51gLCJxdWVyeVRyYW5zYWN0LTI0LWluYWN0aXZlIjpg87CbnmAsInRheGVzLTEyLWFjdGl2ZSI6YPOwoY1gLCJ0YXhlcy0xMi1pbmFjdGl2ZSI6YPOwoY5gLCJ0YXhlcy0xNi1hY3RpdmUiOmDzsKGPYCwidGF4ZXMtMTYtaW5hY3RpdmUiOmDzsKGQYCwidGF4ZXMtMjQtYWN0aXZlIjpg87ChkWAsInRheGVzLTI0LWluYWN0aXZlIjpg87ChkmAsImFwcFN3aXRjaGVyLTEyLWFjdGl2ZSI6YPOwgYlgLCJhcHBTd2l0Y2hlci0xMi1pbmFjdGl2ZSI6YPOwgYpgLCJhcHBTd2l0Y2hlci0xNi1hY3RpdmUiOmDzsIGLYCwiYXBwU3dpdGNoZXItMTYtaW5hY3RpdmUiOmDzsIGMYCwiYXBwU3dpdGNoZXItMjQtYWN0aXZlIjpg87CBjWAsImFwcFN3aXRjaGVyLTI0LWluYWN0aXZlIjpg87CBjmAsImNvbGxlY3Rpb24tMTItYWN0aXZlIjpg87CKj2AsImNvbGxlY3Rpb24tMTItaW5hY3RpdmUiOmDzsIqQYCwiY29sbGVjdGlvbi0xNi1hY3RpdmUiOmDzsIqRYCwiY29sbGVjdGlvbi0xNi1pbmFjdGl2ZSI6YPOwipJgLCJjb2xsZWN0aW9uLTI0LWFjdGl2ZSI6YPOwipNgLCJjb2xsZWN0aW9uLTI0LWluYWN0aXZlIjpg87CKlGAsImxpZ2h0LTEyLWFjdGl2ZSI6YPOwlYdgLCJsaWdodC0xMi1pbmFjdGl2ZSI6YPOwlYhgLCJsaWdodC0xNi1hY3RpdmUiOmDzsJWJYCwibGlnaHQtMTYtaW5hY3RpdmUiOmDzsJWKYCwibGlnaHQtMjQtYWN0aXZlIjpg87CVi2AsImxpZ2h0LTI0LWluYWN0aXZlIjpg87CVjGAsInBsYW5ldC0xMi1hY3RpdmUiOmDzsJqLYCwicGxhbmV0LTEyLWluYWN0aXZlIjpg87CajGAsInBsYW5ldC0xNi1hY3RpdmUiOmDzsJqNYCwicGxhbmV0LTE2LWluYWN0aXZlIjpg87CajmAsInBsYW5ldC0yNC1hY3RpdmUiOmDzsJqPYCwicGxhbmV0LTI0LWluYWN0aXZlIjpg87CakGAsInNob3BwaW5nQ2FydC0xMi1hY3RpdmUiOmDzsJ6BYCwic2hvcHBpbmdDYXJ0LTEyLWluYWN0aXZlIjpg87CegmAsInNob3BwaW5nQ2FydC0xNi1hY3RpdmUiOmDzsJ6DYCwic2hvcHBpbmdDYXJ0LTE2LWluYWN0aXZlIjpg87CehGAsInNob3BwaW5nQ2FydC0yNC1hY3RpdmUiOmDzsJ6FYCwic2hvcHBpbmdDYXJ0LTI0LWluYWN0aXZlIjpg87CehmAsInBlb3BsZUdyb3VwLTEyLWFjdGl2ZSI6YPOwmadgLCJwZW9wbGVHcm91cC0xMi1pbmFjdGl2ZSI6YPOwmahgLCJwZW9wbGVHcm91cC0xNi1hY3RpdmUiOmDzsJmpYCwicGVvcGxlR3JvdXAtMTYtaW5hY3RpdmUiOmDzsJmqYCwicGVvcGxlR3JvdXAtMjQtYWN0aXZlIjpg87CZq2AsInBlb3BsZUdyb3VwLTI0LWluYWN0aXZlIjpg87CZrGAsInRyb3BoeUN1cC0xMi1hY3RpdmUiOmDzsKKPYCwidHJvcGh5Q3VwLTEyLWluYWN0aXZlIjpg87CikGAsInRyb3BoeUN1cC0xNi1hY3RpdmUiOmDzsKKRYCwidHJvcGh5Q3VwLTE2LWluYWN0aXZlIjpg87CikmAsInRyb3BoeUN1cC0yNC1hY3RpdmUiOmDzsKKTYCwidHJvcGh5Q3VwLTI0LWluYWN0aXZlIjpg87CilGAsIm1vcmVWZXJ0aWNhbC0xMi1hY3RpdmUiOmDzsJazYCwibW9yZVZlcnRpY2FsLTEyLWluYWN0aXZlIjpg87CWtGAsIm1vcmVWZXJ0aWNhbC0xNi1hY3RpdmUiOmDzsJa1YCwibW9yZVZlcnRpY2FsLTE2LWluYWN0aXZlIjpg87CWtmAsIm1vcmVWZXJ0aWNhbC0yNC1hY3RpdmUiOmDzsJa3YCwibW9yZVZlcnRpY2FsLTI0LWluYWN0aXZlIjpg87CWuGAsInBhcnRpY2lwYXRlLTEyLWFjdGl2ZSI6YPOwmKVgLCJwYXJ0aWNpcGF0ZS0xMi1pbmFjdGl2ZSI6YPOwmKZgLCJwYXJ0aWNpcGF0ZS0xNi1hY3RpdmUiOmDzsJinYCwicGFydGljaXBhdGUtMTYtaW5hY3RpdmUiOmDzsJioYCwicGFydGljaXBhdGUtMjQtYWN0aXZlIjpg87CYqWAsInBhcnRpY2lwYXRlLTI0LWluYWN0aXZlIjpg87CYqmAsIm1vb24tMTItYWN0aXZlIjpg87CWp2AsIm1vb24tMTItaW5hY3RpdmUiOmDzsJaoYCwibW9vbi0xNi1hY3RpdmUiOmDzsJapYCwibW9vbi0xNi1pbmFjdGl2ZSI6YPOwlqpgLCJtb29uLTI0LWFjdGl2ZSI6YPOwlqtgLCJtb29uLTI0LWluYWN0aXZlIjpg87CWrGAsInNlY3VyaXR5U2hpZWxkLTEyLWFjdGl2ZSI6YPOwnZFgLCJzZWN1cml0eVNoaWVsZC0xMi1pbmFjdGl2ZSI6YPOwnZJgLCJzZWN1cml0eVNoaWVsZC0xNi1hY3RpdmUiOmDzsJ2TYCwic2VjdXJpdHlTaGllbGQtMTYtaW5hY3RpdmUiOmDzsJ2UYCwic2VjdXJpdHlTaGllbGQtMjQtYWN0aXZlIjpg87CdlWAsInNlY3VyaXR5U2hpZWxkLTI0LWluYWN0aXZlIjpg87CdlmAsImludm9pY2UtMTItYWN0aXZlIjpg87CUqWAsImludm9pY2UtMTItaW5hY3RpdmUiOmDzsJSqYCwiaW52b2ljZS0xNi1hY3RpdmUiOmDzsJSrYCwiaW52b2ljZS0xNi1pbmFjdGl2ZSI6YPOwlKxgLCJpbnZvaWNlLTI0LWFjdGl2ZSI6YPOwlK1gLCJpbnZvaWNlLTI0LWluYWN0aXZlIjpg87CUrmAsInVuZG8tMTItYWN0aXZlIjpg87CioWAsInVuZG8tMTItaW5hY3RpdmUiOmDzsKKiYCwidW5kby0xNi1hY3RpdmUiOmDzsKKjYCwidW5kby0xNi1pbmFjdGl2ZSI6YPOwoqRgLCJ1bmRvLTI0LWFjdGl2ZSI6YPOwoqVgLCJ1bmRvLTI0LWluYWN0aXZlIjpg87CipmAsImdhYi0xMi1hY3RpdmUiOmDzsJCzYCwiZ2FiLTEyLWluYWN0aXZlIjpg87CQtGAsImdhYi0xNi1hY3RpdmUiOmDzsJC1YCwiZ2FiLTE2LWluYWN0aXZlIjpg87CQtmAsImdhYi0yNC1hY3RpdmUiOmDzsJC3YCwiZ2FiLTI0LWluYWN0aXZlIjpg87CQuGAsImhlYXJ0LTEyLWFjdGl2ZSI6YPOwk4lgLCJoZWFydC0xMi1pbmFjdGl2ZSI6YPOwk4pgLCJoZWFydC0xNi1hY3RpdmUiOmDzsJOLYCwiaGVhcnQtMTYtaW5hY3RpdmUiOmDzsJOMYCwiaGVhcnQtMjQtYWN0aXZlIjpg87CTjWAsImhlYXJ0LTI0LWluYWN0aXZlIjpg87CTjmAsImFjY291bnQtMTItYWN0aXZlIjpg87CAgWAsImFjY291bnQtMTItaW5hY3RpdmUiOmDzsICCYCwiYWNjb3VudC0xNi1hY3RpdmUiOmDzsICDYCwiYWNjb3VudC0xNi1pbmFjdGl2ZSI6YPOwgIRgLCJhY2NvdW50LTI0LWFjdGl2ZSI6YPOwgIVgLCJhY2NvdW50LTI0LWluYWN0aXZlIjpg87CAhmAsImhhbW1lci0xMi1hY3RpdmUiOmDzsJODYCwiaGFtbWVyLTEyLWluYWN0aXZlIjpg87CThGAsImhhbW1lci0xNi1hY3RpdmUiOmDzsJOFYCwiaGFtbWVyLTE2LWluYWN0aXZlIjpg87CThmAsImhhbW1lci0yNC1hY3RpdmUiOmDzsJOHYCwiaGFtbWVyLTI0LWluYWN0aXZlIjpg87CTiGAsInRhZy0xMi1hY3RpdmUiOmDzsKGHYCwidGFnLTEyLWluYWN0aXZlIjpg87ChiGAsInRhZy0xNi1hY3RpdmUiOmDzsKGJYCwidGFnLTE2LWluYWN0aXZlIjpg87ChimAsInRhZy0yNC1hY3RpdmUiOmDzsKGLYCwidGFnLTI0LWluYWN0aXZlIjpg87ChjGAsImdpZnRCb3gtMTItYWN0aXZlIjpg87CSmWAsImdpZnRCb3gtMTItaW5hY3RpdmUiOmDzsJKaYCwiZ2lmdEJveC0xNi1hY3RpdmUiOmDzsJKbYCwiZ2lmdEJveC0xNi1pbmFjdGl2ZSI6YPOwkpxgLCJnaWZ0Qm94LTI0LWFjdGl2ZSI6YPOwkp1gLCJnaWZ0Qm94LTI0LWluYWN0aXZlIjpg87CSnmAsInN1cHBvcnQtMTItYWN0aXZlIjpg87ChgWAsInN1cHBvcnQtMTItaW5hY3RpdmUiOmDzsKGCYCwic3VwcG9ydC0xNi1hY3RpdmUiOmDzsKGDYCwic3VwcG9ydC0xNi1pbmFjdGl2ZSI6YPOwoYRgLCJzdXBwb3J0LTI0LWFjdGl2ZSI6YPOwoYVgLCJzdXBwb3J0LTI0LWluYWN0aXZlIjpg87ChhmAsImV5ZS0xMi1hY3RpdmUiOmDzsI+ZYCwiZXllLTEyLWluYWN0aXZlIjpg87CPmmAsImV5ZS0xNi1hY3RpdmUiOmDzsI+bYCwiZXllLTE2LWluYWN0aXZlIjpg87CPnGAsImV5ZS0yNC1hY3RpdmUiOmDzsI+dYCwiZXllLTI0LWluYWN0aXZlIjpg87CPnmAsImVhcm4tMTItYWN0aXZlIjpg87COkWAsImVhcm4tMTItaW5hY3RpdmUiOmDzsI6SYCwiZWFybi0xNi1hY3RpdmUiOmDzsI6TYCwiZWFybi0xNi1pbmFjdGl2ZSI6YPOwjpRgLCJlYXJuLTI0LWFjdGl2ZSI6YPOwjpVgLCJlYXJuLTI0LWluYWN0aXZlIjpg87COlmAsImRpcmVjdERlcG9zaXQtMTItYWN0aXZlIjpg87CNj2AsImRpcmVjdERlcG9zaXQtMTItaW5hY3RpdmUiOmDzsI2QYCwiZGlyZWN0RGVwb3NpdC0xNi1hY3RpdmUiOmDzsI2RYCwiZGlyZWN0RGVwb3NpdC0xNi1pbmFjdGl2ZSI6YPOwjZJgLCJkaXJlY3REZXBvc2l0LTI0LWFjdGl2ZSI6YPOwjZNgLCJkaXJlY3REZXBvc2l0LTI0LWluYWN0aXZlIjpg87CNlGAsImNyeXN0YWxCYWxsLTEyLWFjdGl2ZSI6YPOwi51gLCJjcnlzdGFsQmFsbC0xMi1pbmFjdGl2ZSI6YPOwi55gLCJjcnlzdGFsQmFsbC0xNi1hY3RpdmUiOmDzsIufYCwiY3J5c3RhbEJhbGwtMTYtaW5hY3RpdmUiOmDzsIugYCwiY3J5c3RhbEJhbGwtMjQtYWN0aXZlIjpg87CLoWAsImNyeXN0YWxCYWxsLTI0LWluYWN0aXZlIjpg87CLomAsImRpYW1vbmQtMTItYWN0aXZlIjpg87CNg2AsImRpYW1vbmQtMTItaW5hY3RpdmUiOmDzsI2EYCwiZGlhbW9uZC0xNi1hY3RpdmUiOmDzsI2FYCwiZGlhbW9uZC0xNi1pbmFjdGl2ZSI6YPOwjYZgLCJkaWFtb25kLTI0LWFjdGl2ZSI6YPOwjYdgLCJkaWFtb25kLTI0LWluYWN0aXZlIjpg87CNiGAsImNvbW1lbnQtMTItYWN0aXZlIjpg87CKlWAsImNvbW1lbnQtMTItaW5hY3RpdmUiOmDzsIqWYCwiY29tbWVudC0xNi1hY3RpdmUiOmDzsIqXYCwiY29tbWVudC0xNi1pbmFjdGl2ZSI6YPOwiphgLCJjb21tZW50LTI0LWFjdGl2ZSI6YPOwiplgLCJjb21tZW50LTI0LWluYWN0aXZlIjpg87CKmmAsImNoYXJ0UGllLTEyLWFjdGl2ZSI6YPOwh61gLCJjaGFydFBpZS0xMi1pbmFjdGl2ZSI6YPOwh65gLCJjaGFydFBpZS0xNi1hY3RpdmUiOmDzsIevYCwiY2hhcnRQaWUtMTYtaW5hY3RpdmUiOmDzsIewYCwiY2hhcnRQaWUtMjQtYWN0aXZlIjpg87CHsWAsImNoYXJ0UGllLTI0LWluYWN0aXZlIjpg87CHsmAsImNoYXJ0Q2FuZGxlcy0xMi1hY3RpdmUiOmDzsIehYCwiY2hhcnRDYW5kbGVzLTEyLWluYWN0aXZlIjpg87CHomAsImNoYXJ0Q2FuZGxlcy0xNi1hY3RpdmUiOmDzsIejYCwiY2hhcnRDYW5kbGVzLTE2LWluYWN0aXZlIjpg87CHpGAsImNoYXJ0Q2FuZGxlcy0yNC1hY3RpdmUiOmDzsIelYCwiY2hhcnRDYW5kbGVzLTI0LWluYWN0aXZlIjpg87CHpmAsInJveWFsdHktMTItYWN0aXZlIjpg87CcrWAsInJveWFsdHktMTItaW5hY3RpdmUiOmDzsJyuYCwicm95YWx0eS0xNi1hY3RpdmUiOmDzsJyvYCwicm95YWx0eS0xNi1pbmFjdGl2ZSI6YPOwnLBgLCJyb3lhbHR5LTI0LWFjdGl2ZSI6YPOwnLFgLCJyb3lhbHR5LTI0LWluYWN0aXZlIjpg87CcsmAsImNhc2gtMTItYWN0aXZlIjpg87CFnWAsImNhc2gtMTItaW5hY3RpdmUiOmDzsIWeYCwiY2FzaC0xNi1hY3RpdmUiOmDzsIWfYCwiY2FzaC0xNi1pbmFjdGl2ZSI6YPOwhaBgLCJjYXNoLTI0LWFjdGl2ZSI6YPOwhaFgLCJjYXNoLTI0LWluYWN0aXZlIjpg87CFomAsImNhcmV0LTEyLWFjdGl2ZSI6YPOwhL9gLCJjYXJldC0xMi1pbmFjdGl2ZSI6YPOwhYBgLCJjYXJldC0xNi1hY3RpdmUiOmDzsIWBYCwiY2FyZXQtMTYtaW5hY3RpdmUiOmDzsIWCYCwiY2FyZXQtMjQtYWN0aXZlIjpg87CFg2AsImNhcmV0LTI0LWluYWN0aXZlIjpg87CFhGAsImJyb3dzZXItMTItYWN0aXZlIjpg87CElWAsImJyb3dzZXItMTItaW5hY3RpdmUiOmDzsISWYCwiYnJvd3Nlci0xNi1hY3RpdmUiOmDzsISXYCwiYnJvd3Nlci0xNi1pbmFjdGl2ZSI6YPOwhJhgLCJicm93c2VyLTI0LWFjdGl2ZSI6YPOwhJlgLCJicm93c2VyLTI0LWluYWN0aXZlIjpg87CEmmAsImRvY3VtZW50YXRpb24tMTItYWN0aXZlIjpg87CNp2AsImRvY3VtZW50YXRpb24tMTItaW5hY3RpdmUiOmDzsI2oYCwiZG9jdW1lbnRhdGlvbi0xNi1hY3RpdmUiOmDzsI2pYCwiZG9jdW1lbnRhdGlvbi0xNi1pbmFjdGl2ZSI6YPOwjapgLCJkb2N1bWVudGF0aW9uLTI0LWFjdGl2ZSI6YPOwjatgLCJkb2N1bWVudGF0aW9uLTI0LWluYWN0aXZlIjpg87CNrGAsInNldHRpbmdzLTEyLWFjdGl2ZSI6YPOwnalgLCJzZXR0aW5ncy0xMi1pbmFjdGl2ZSI6YPOwnapgLCJzZXR0aW5ncy0xNi1hY3RpdmUiOmDzsJ2rYCwic2V0dGluZ3MtMTYtaW5hY3RpdmUiOmDzsJ2sYCwic2V0dGluZ3MtMjQtYWN0aXZlIjpg87CdrWAsInNldHRpbmdzLTI0LWluYWN0aXZlIjpg87CdrmAsImFzdHJvbmF1dEhlbG1ldC0xMi1hY3RpdmUiOmDzsIKLYCwiYXN0cm9uYXV0SGVsbWV0LTEyLWluYWN0aXZlIjpg87CCjGAsImFzdHJvbmF1dEhlbG1ldC0xNi1hY3RpdmUiOmDzsIKNYCwiYXN0cm9uYXV0SGVsbWV0LTE2LWluYWN0aXZlIjpg87CCjmAsImFzdHJvbmF1dEhlbG1ldC0yNC1hY3RpdmUiOmDzsIKPYCwiYXN0cm9uYXV0SGVsbWV0LTI0LWluYWN0aXZlIjpg87CCkGAsIm5ld3NGZWVkLTEyLWFjdGl2ZSI6YPOwlr9gLCJuZXdzRmVlZC0xMi1pbmFjdGl2ZSI6YPOwl4BgLCJuZXdzRmVlZC0xNi1hY3RpdmUiOmDzsJeBYCwibmV3c0ZlZWQtMTYtaW5hY3RpdmUiOmDzsJeCYCwibmV3c0ZlZWQtMjQtYWN0aXZlIjpg87CXg2AsIm5ld3NGZWVkLTI0LWluYWN0aXZlIjpg87CXhGAsImhvbWUtMTItYWN0aXZlIjpg87CToWAsImhvbWUtMTItaW5hY3RpdmUiOmDzsJOiYCwiaG9tZS0xNi1hY3RpdmUiOmDzsJOjYCwiaG9tZS0xNi1pbmFjdGl2ZSI6YPOwk6RgLCJob21lLTI0LWFjdGl2ZSI6YPOwk6VgLCJob21lLTI0LWluYWN0aXZlIjpg87CTpmAsInN1bi0xMi1hY3RpdmUiOmDzsKC7YCwic3VuLTEyLWluYWN0aXZlIjpg87CgvGAsInN1bi0xNi1hY3RpdmUiOmDzsKC9YCwic3VuLTE2LWluYWN0aXZlIjpg87CgvmAsInN1bi0yNC1hY3RpdmUiOmDzsKC/YCwic3VuLTI0LWluYWN0aXZlIjpg87ChgGAsInBheS0xMi1hY3RpdmUiOmDzsJi9YCwicGF5LTEyLWluYWN0aXZlIjpg87CYvmAsInBheS0xNi1hY3RpdmUiOmDzsJi/YCwicGF5LTE2LWluYWN0aXZlIjpg87CZgGAsInBheS0yNC1hY3RpdmUiOmDzsJmBYCwicGF5LTI0LWluYWN0aXZlIjpg87CZgmAsImRlZmktMTItYWN0aXZlIjpg87CLu2AsImRlZmktMTItaW5hY3RpdmUiOmDzsIu8YCwiZGVmaS0xNi1hY3RpdmUiOmDzsIu9YCwiZGVmaS0xNi1pbmFjdGl2ZSI6YPOwi75gLCJkZWZpLTI0LWFjdGl2ZSI6YPOwi79gLCJkZWZpLTI0LWluYWN0aXZlIjpg87CMgGAsImRlcG9zaXQtMTItYWN0aXZlIjpg87CMh2AsImRlcG9zaXQtMTItaW5hY3RpdmUiOmDzsIyIYCwiZGVwb3NpdC0xNi1hY3RpdmUiOmDzsIyJYCwiZGVwb3NpdC0xNi1pbmFjdGl2ZSI6YPOwjIpgLCJkZXBvc2l0LTI0LWFjdGl2ZSI6YPOwjItgLCJkZXBvc2l0LTI0LWluYWN0aXZlIjpg87CMjGAsInBheW1lbnRDYXJkLTEyLWFjdGl2ZSI6YPOwmYlgLCJwYXltZW50Q2FyZC0xMi1pbmFjdGl2ZSI6YPOwmYpgLCJwYXltZW50Q2FyZC0xNi1hY3RpdmUiOmDzsJmLYCwicGF5bWVudENhcmQtMTYtaW5hY3RpdmUiOmDzsJmMYCwicGF5bWVudENhcmQtMjQtYWN0aXZlIjpg87CZjWAsInBheW1lbnRDYXJkLTI0LWluYWN0aXZlIjpg87CZjmAsInNjYW5RckNvZGUtMTItYWN0aXZlIjpg87Ccv2AsInNjYW5RckNvZGUtMTItaW5hY3RpdmUiOmDzsJ2AYCwic2NhblFyQ29kZS0xNi1hY3RpdmUiOmDzsJ2BYCwic2NhblFyQ29kZS0xNi1pbmFjdGl2ZSI6YPOwnYJgLCJzY2FuUXJDb2RlLTI0LWFjdGl2ZSI6YPOwnYNgLCJzY2FuUXJDb2RlLTI0LWluYWN0aXZlIjpg87CdhGAsInBlbmNpbC0xMi1hY3RpdmUiOmDzsJmhYCwicGVuY2lsLTEyLWluYWN0aXZlIjpg87CZomAsInBlbmNpbC0xNi1hY3RpdmUiOmDzsJmjYCwicGVuY2lsLTE2LWluYWN0aXZlIjpg87CZpGAsInBlbmNpbC0yNC1hY3RpdmUiOmDzsJmlYCwicGVuY2lsLTI0LWluYWN0aXZlIjpg87CZpmAsImNsb3VkLTEyLWFjdGl2ZSI6YPOwiY1gLCJjbG91ZC0xMi1pbmFjdGl2ZSI6YPOwiY5gLCJjbG91ZC0xNi1hY3RpdmUiOmDzsImPYCwiY2xvdWQtMTYtaW5hY3RpdmUiOmDzsImQYCwiY2xvdWQtMjQtYWN0aXZlIjpg87CJkWAsImNsb3VkLTI0LWluYWN0aXZlIjpg87CJkmAsImJlbGwtMTItYWN0aXZlIjpg87CDmWAsImJlbGwtMTItaW5hY3RpdmUiOmDzsIOaYCwiYmVsbC0xNi1hY3RpdmUiOmDzsIObYCwiYmVsbC0xNi1pbmFjdGl2ZSI6YPOwg5xgLCJiZWxsLTI0LWFjdGl2ZSI6YPOwg51gLCJiZWxsLTI0LWluYWN0aXZlIjpg87CDnmAsImludGVyZXN0LTEyLWFjdGl2ZSI6YPOwlJ1gLCJpbnRlcmVzdC0xMi1pbmFjdGl2ZSI6YPOwlJ5gLCJpbnRlcmVzdC0xNi1hY3RpdmUiOmDzsJSfYCwiaW50ZXJlc3QtMTYtaW5hY3RpdmUiOmDzsJSgYCwiaW50ZXJlc3QtMjQtYWN0aXZlIjpg87CUoWAsImludGVyZXN0LTI0LWluYWN0aXZlIjpg87CUomAsImNoYXJ0QmFyLTEyLWFjdGl2ZSI6YPOwh5tgLCJjaGFydEJhci0xMi1pbmFjdGl2ZSI6YPOwh5xgLCJjaGFydEJhci0xNi1hY3RpdmUiOmDzsIedYCwiY2hhcnRCYXItMTYtaW5hY3RpdmUiOmDzsIeeYCwiY2hhcnRCYXItMjQtYWN0aXZlIjpg87CHn2AsImNoYXJ0QmFyLTI0LWluYWN0aXZlIjpg87CHoGAsImZhY2VzLTEyLWFjdGl2ZSI6YPOwj6VgLCJmYWNlcy0xMi1pbmFjdGl2ZSI6YPOwj6ZgLCJmYWNlcy0xNi1hY3RpdmUiOmDzsI+nYCwiZmFjZXMtMTYtaW5hY3RpdmUiOmDzsI+oYCwiZmFjZXMtMjQtYWN0aXZlIjpg87CPqWAsImZhY2VzLTI0LWluYWN0aXZlIjpg87CPqmAsImRhc2hib2FyZC0xMi1hY3RpdmUiOmDzsIuvYCwiZGFzaGJvYXJkLTEyLWluYWN0aXZlIjpg87CLsGAsImRhc2hib2FyZC0xNi1hY3RpdmUiOmDzsIuxYCwiZGFzaGJvYXJkLTE2LWluYWN0aXZlIjpg87CLsmAsImRhc2hib2FyZC0yNC1hY3RpdmUiOmDzsIuzYCwiZGFzaGJvYXJkLTI0LWluYWN0aXZlIjpg87CLtGAsImFwcGxpY2F0aW9uLTEyLWFjdGl2ZSI6YPOwgY9gLCJhcHBsaWNhdGlvbi0xMi1pbmFjdGl2ZSI6YPOwgZBgLCJhcHBsaWNhdGlvbi0xNi1hY3RpdmUiOmDzsIGRYCwiYXBwbGljYXRpb24tMTYtaW5hY3RpdmUiOmDzsIGSYCwiYXBwbGljYXRpb24tMjQtYWN0aXZlIjpg87CBk2AsImFwcGxpY2F0aW9uLTI0LWluYWN0aXZlIjpg87CBlGAsImFkZFBlb3BsZS0xMi1hY3RpdmUiOmDzsICTYCwiYWRkUGVvcGxlLTEyLWluYWN0aXZlIjpg87CAlGAsImFkZFBlb3BsZS0xNi1hY3RpdmUiOmDzsICVYCwiYWRkUGVvcGxlLTE2LWluYWN0aXZlIjpg87CAlmAsImFkZFBlb3BsZS0yNC1hY3RpdmUiOmDzsICXYCwiYWRkUGVvcGxlLTI0LWluYWN0aXZlIjpg87CAmGAsImdob3N0LTEyLWFjdGl2ZSI6YPOwko1gLCJnaG9zdC0xMi1pbmFjdGl2ZSI6YPOwko5gLCJnaG9zdC0xNi1hY3RpdmUiOmDzsJKPYCwiZ2hvc3QtMTYtaW5hY3RpdmUiOmDzsJKQYCwiZ2hvc3QtMjQtYWN0aXZlIjpg87CSkWAsImdob3N0LTI0LWluYWN0aXZlIjpg87CSkmAsImFjdGl2aXR5LTEyLWFjdGl2ZSI6YPOwgIdgLCJhY3Rpdml0eS0xMi1pbmFjdGl2ZSI6YPOwgIhgLCJhY3Rpdml0eS0xNi1hY3RpdmUiOmDzsICJYCwiYWN0aXZpdHktMTYtaW5hY3RpdmUiOmDzsICKYCwiYWN0aXZpdHktMjQtYWN0aXZlIjpg87CAi2AsImFjdGl2aXR5LTI0LWluYWN0aXZlIjpg87CAjGAsImRyb3BzLTEyLWFjdGl2ZSI6YPOwjotgLCJkcm9wcy0xMi1pbmFjdGl2ZSI6YPOwjoxgLCJkcm9wcy0xNi1hY3RpdmUiOmDzsI6NYCwiZHJvcHMtMTYtaW5hY3RpdmUiOmDzsI6OYCwiZHJvcHMtMjQtYWN0aXZlIjpg87COj2AsImRyb3BzLTI0LWluYWN0aXZlIjpg87COkGAsImNvcHktMTItYWN0aXZlIjpg87CLhWAsImNvcHktMTItaW5hY3RpdmUiOmDzsIuGYCwiY29weS0xNi1hY3RpdmUiOmDzsIuHYCwiY29weS0xNi1pbmFjdGl2ZSI6YPOwi4hgLCJjb3B5LTI0LWFjdGl2ZSI6YPOwi4lgLCJjb3B5LTI0LWluYWN0aXZlIjpg87CLimAsIm1hZ25pZnlpbmdHbGFzcy0xMi1hY3RpdmUiOmDzsJW3YCwibWFnbmlmeWluZ0dsYXNzLTEyLWluYWN0aXZlIjpg87CVuGAsIm1hZ25pZnlpbmdHbGFzcy0xNi1hY3RpdmUiOmDzsJW5YCwibWFnbmlmeWluZ0dsYXNzLTE2LWluYWN0aXZlIjpg87CVumAsIm1hZ25pZnlpbmdHbGFzcy0yNC1hY3RpdmUiOmDzsJW7YCwibWFnbmlmeWluZ0dsYXNzLTI0LWluYWN0aXZlIjpg87CVvGAsIm1lbnUtMTItYWN0aXZlIjpg87CWiWAsIm1lbnUtMTItaW5hY3RpdmUiOmDzsJaKYCwibWVudS0xNi1hY3RpdmUiOmDzsJaLYCwibWVudS0xNi1pbmFjdGl2ZSI6YPOwloxgLCJtZW51LTI0LWFjdGl2ZSI6YPOwlo1gLCJtZW51LTI0LWluYWN0aXZlIjpg87CWjmAsIndhbGxldC0xMi1hY3RpdmUiOmDzsKOjYCwid2FsbGV0LTEyLWluYWN0aXZlIjpg87CjpGAsIndhbGxldC0xNi1hY3RpdmUiOmDzsKOlYCwid2FsbGV0LTE2LWluYWN0aXZlIjpg87CjpmAsIndhbGxldC0yNC1hY3RpdmUiOmDzsKOnYCwid2FsbGV0LTI0LWluYWN0aXZlIjpg87CjqGAsInJvY2tldFNoaXAtMTItYWN0aXZlIjpg87Ccm2AsInJvY2tldFNoaXAtMTItaW5hY3RpdmUiOmDzsJycYCwicm9ja2V0U2hpcC0xNi1hY3RpdmUiOmDzsJydYCwicm9ja2V0U2hpcC0xNi1pbmFjdGl2ZSI6YPOwnJ5gLCJyb2NrZXRTaGlwLTI0LWFjdGl2ZSI6YPOwnJ9gLCJyb2NrZXRTaGlwLTI0LWluYWN0aXZlIjpg87CcoGAsIndyYXBUb2tlbi0xMi1hY3RpdmUiOmDzsKSNYCwid3JhcFRva2VuLTEyLWluYWN0aXZlIjpg87CkjmAsIndyYXBUb2tlbi0xNi1hY3RpdmUiOmDzsKSPYCwid3JhcFRva2VuLTE2LWluYWN0aXZlIjpg87CkkGAsIndyYXBUb2tlbi0yNC1hY3RpdmUiOmDzsKSRYCwid3JhcFRva2VuLTI0LWluYWN0aXZlIjpg87CkkmAsInNldFBpbkNvZGUtMTItYWN0aXZlIjpg87Cdo2AsInNldFBpbkNvZGUtMTItaW5hY3RpdmUiOmDzsJ2kYCwic2V0UGluQ29kZS0xNi1hY3RpdmUiOmDzsJ2lYCwic2V0UGluQ29kZS0xNi1pbmFjdGl2ZSI6YPOwnaZgLCJzZXRQaW5Db2RlLTI0LWFjdGl2ZSI6YPOwnadgLCJzZXRQaW5Db2RlLTI0LWluYWN0aXZlIjpg87CdqGAsIm9yZGVySGlzdG9yeS0xMi1hY3RpdmUiOmDzsJiHYCwib3JkZXJIaXN0b3J5LTEyLWluYWN0aXZlIjpg87CYiGAsIm9yZGVySGlzdG9yeS0xNi1hY3RpdmUiOmDzsJiJYCwib3JkZXJIaXN0b3J5LTE2LWluYWN0aXZlIjpg87CYimAsIm9yZGVySGlzdG9yeS0yNC1hY3RpdmUiOmDzsJiLYCwib3JkZXJIaXN0b3J5LTI0LWluYWN0aXZlIjpg87CYjGAsImNvbGxhcHNlLTEyLWFjdGl2ZSI6YPOwioNgLCJjb2xsYXBzZS0xMi1pbmFjdGl2ZSI6YPOwioRgLCJjb2xsYXBzZS0xNi1hY3RpdmUiOmDzsIqFYCwiY29sbGFwc2UtMTYtaW5hY3RpdmUiOmDzsIqGYCwiY29sbGFwc2UtMjQtYWN0aXZlIjpg87CKh2AsImNvbGxhcHNlLTI0LWluYWN0aXZlIjpg87CKiGAsInZlcnRpY2FsTGluZS0xMi1hY3RpdmUiOmDzsKORYCwidmVydGljYWxMaW5lLTEyLWluYWN0aXZlIjpg87CjkmAsInZlcnRpY2FsTGluZS0xNi1hY3RpdmUiOmDzsKOTYCwidmVydGljYWxMaW5lLTE2LWluYWN0aXZlIjpg87CjlGAsInZlcnRpY2FsTGluZS0yNC1hY3RpdmUiOmDzsKOVYCwidmVydGljYWxMaW5lLTI0LWluYWN0aXZlIjpg87CjlmAsImNhbGVuZGFyLTEyLWFjdGl2ZSI6YPOwhKFgLCJjYWxlbmRhci0xMi1pbmFjdGl2ZSI6YPOwhKJgLCJjYWxlbmRhci0xNi1hY3RpdmUiOmDzsISjYCwiY2FsZW5kYXItMTYtaW5hY3RpdmUiOmDzsISkYCwiY2FsZW5kYXItMjQtYWN0aXZlIjpg87CEpWAsImNhbGVuZGFyLTI0LWluYWN0aXZlIjpg87CEpmAsIndpdGhkcmF3LTEyLWFjdGl2ZSI6YPOwpIdgLCJ3aXRoZHJhdy0xMi1pbmFjdGl2ZSI6YPOwpIhgLCJ3aXRoZHJhdy0xNi1hY3RpdmUiOmDzsKSJYCwid2l0aGRyYXctMTYtaW5hY3RpdmUiOmDzsKSKYCwid2l0aGRyYXctMjQtYWN0aXZlIjpg87Cki2AsIndpdGhkcmF3LTI0LWluYWN0aXZlIjpg87CkjGAsImNoYXJ0UGllQ2lyY2xlLTEyLWFjdGl2ZSI6YPOwh7NgLCJjaGFydFBpZUNpcmNsZS0xMi1pbmFjdGl2ZSI6YPOwh7RgLCJjaGFydFBpZUNpcmNsZS0xNi1hY3RpdmUiOmDzsIe1YCwiY2hhcnRQaWVDaXJjbGUtMTYtaW5hY3RpdmUiOmDzsIe2YCwiY2hhcnRQaWVDaXJjbGUtMjQtYWN0aXZlIjpg87CHt2AsImNoYXJ0UGllQ2lyY2xlLTI0LWluYWN0aXZlIjpg87CHuGAsImFycm93RG93bi0xMi1hY3RpdmUiOmDzsIGVYCwiYXJyb3dEb3duLTEyLWluYWN0aXZlIjpg87CBlmAsImFycm93RG93bi0xNi1hY3RpdmUiOmDzsIGXYCwiYXJyb3dEb3duLTE2LWluYWN0aXZlIjpg87CBmGAsImFycm93RG93bi0yNC1hY3RpdmUiOmDzsIGZYCwiYXJyb3dEb3duLTI0LWluYWN0aXZlIjpg87CBmmAsImNhc2hSdXBlZS0xMi1hY3RpdmUiOmDzsIalYCwiY2FzaFJ1cGVlLTEyLWluYWN0aXZlIjpg87CGpmAsImNhc2hSdXBlZS0xNi1hY3RpdmUiOmDzsIanYCwiY2FzaFJ1cGVlLTE2LWluYWN0aXZlIjpg87CGqGAsImNhc2hSdXBlZS0yNC1hY3RpdmUiOmDzsIapYCwiY2FzaFJ1cGVlLTI0LWluYWN0aXZlIjpg87CGqmAsImJvb2stMTItYWN0aXZlIjpg87CDt2AsImJvb2stMTItaW5hY3RpdmUiOmDzsIO4YCwiYm9vay0xNi1hY3RpdmUiOmDzsIO5YCwiYm9vay0xNi1pbmFjdGl2ZSI6YPOwg7pgLCJib29rLTI0LWFjdGl2ZSI6YPOwg7tgLCJib29rLTI0LWluYWN0aXZlIjpg87CDvGAsIm1pbnVzLTEyLWFjdGl2ZSI6YPOwlqFgLCJtaW51cy0xMi1pbmFjdGl2ZSI6YPOwlqJgLCJtaW51cy0xNi1hY3RpdmUiOmDzsJajYCwibWludXMtMTYtaW5hY3RpdmUiOmDzsJakYCwibWludXMtMjQtYWN0aXZlIjpg87CWpWAsIm1pbnVzLTI0LWluYWN0aXZlIjpg87CWpmAsImJsb2ctMTItYWN0aXZlIjpg87CDsWAsImJsb2ctMTItaW5hY3RpdmUiOmDzsIOyYCwiYmxvZy0xNi1hY3RpdmUiOmDzsIOzYCwiYmxvZy0xNi1pbmFjdGl2ZSI6YPOwg7RgLCJibG9nLTI0LWFjdGl2ZSI6YPOwg7VgLCJibG9nLTI0LWluYWN0aXZlIjpg87CDtmAsImNyeXB0b2Jhc2ljcy0xMi1hY3RpdmUiOmDzsIuXYCwiY3J5cHRvYmFzaWNzLTEyLWluYWN0aXZlIjpg87CLmGAsImNyeXB0b2Jhc2ljcy0xNi1hY3RpdmUiOmDzsIuZYCwiY3J5cHRvYmFzaWNzLTE2LWluYWN0aXZlIjpg87CLmmAsImNyeXB0b2Jhc2ljcy0yNC1hY3RpdmUiOmDzsIubYCwiY3J5cHRvYmFzaWNzLTI0LWluYWN0aXZlIjpg87CLnGAsIm1lZ2FwaG9uZS0xMi1hY3RpdmUiOmDzsJaDYCwibWVnYXBob25lLTEyLWluYWN0aXZlIjpg87CWhGAsIm1lZ2FwaG9uZS0xNi1hY3RpdmUiOmDzsJaFYCwibWVnYXBob25lLTE2LWluYWN0aXZlIjpg87CWhmAsIm1lZ2FwaG9uZS0yNC1hY3RpdmUiOmDzsJaHYCwibWVnYXBob25lLTI0LWluYWN0aXZlIjpg87CWiGAsImxpZ2h0YnVsYi0xMi1hY3RpdmUiOmDzsJWNYCwibGlnaHRidWxiLTEyLWluYWN0aXZlIjpg87CVjmAsImxpZ2h0YnVsYi0xNi1hY3RpdmUiOmDzsJWPYCwibGlnaHRidWxiLTE2LWluYWN0aXZlIjpg87CVkGAsImxpZ2h0YnVsYi0yNC1hY3RpdmUiOmDzsJWRYCwibGlnaHRidWxiLTI0LWluYWN0aXZlIjpg87CVkmAsInBGUFMtMTItYWN0aXZlIjpg87CYk2AsInBGUFMtMTItaW5hY3RpdmUiOmDzsJiUYCwicEZQUy0xNi1hY3RpdmUiOmDzsJiVYCwicEZQUy0xNi1pbmFjdGl2ZSI6YPOwmJZgLCJwRlBTLTI0LWFjdGl2ZSI6YPOwmJdgLCJwRlBTLTI0LWluYWN0aXZlIjpg87CYmGAsInJlZnJlc2gtMTItYWN0aXZlIjpg87Cbt2AsInJlZnJlc2gtMTItaW5hY3RpdmUiOmDzsJu4YCwicmVmcmVzaC0xNi1hY3RpdmUiOmDzsJu5YCwicmVmcmVzaC0xNi1pbmFjdGl2ZSI6YPOwm7pgLCJyZWZyZXNoLTI0LWFjdGl2ZSI6YPOwm7tgLCJyZWZyZXNoLTI0LWluYWN0aXZlIjpg87CbvGAsInNlYXJjaC0xMi1hY3RpdmUiOmDzsJ2FYCwic2VhcmNoLTEyLWluYWN0aXZlIjpg87CdhmAsInNlYXJjaC0xNi1hY3RpdmUiOmDzsJ2HYCwic2VhcmNoLTE2LWluYWN0aXZlIjpg87CdiGAsInNlYXJjaC0yNC1hY3RpdmUiOmDzsJ2JYCwic2VhcmNoLTI0LWluYWN0aXZlIjpg87CdimAsIndpcmVUcmFuc2Zlci0xMi1hY3RpdmUiOmDzsKSBYCwid2lyZVRyYW5zZmVyLTEyLWluYWN0aXZlIjpg87CkgmAsIndpcmVUcmFuc2Zlci0xNi1hY3RpdmUiOmDzsKSDYCwid2lyZVRyYW5zZmVyLTE2LWluYWN0aXZlIjpg87CkhGAsIndpcmVUcmFuc2Zlci0yNC1hY3RpdmUiOmDzsKSFYCwid2lyZVRyYW5zZmVyLTI0LWluYWN0aXZlIjpg87CkhmAsImludmlzaWJsZS0xMi1hY3RpdmUiOmDzsJSjYCwiaW52aXNpYmxlLTEyLWluYWN0aXZlIjpg87CUpGAsImludmlzaWJsZS0xNi1hY3RpdmUiOmDzsJSlYCwiaW52aXNpYmxlLTE2LWluYWN0aXZlIjpg87CUpmAsImludmlzaWJsZS0yNC1hY3RpdmUiOmDzsJSnYCwiaW52aXNpYmxlLTI0LWluYWN0aXZlIjpg87CUqGAsInJlY3VycmluZy0xMi1hY3RpdmUiOmDzsJuxYCwicmVjdXJyaW5nLTEyLWluYWN0aXZlIjpg87CbsmAsInJlY3VycmluZy0xNi1hY3RpdmUiOmDzsJuzYCwicmVjdXJyaW5nLTE2LWluYWN0aXZlIjpg87CbtGAsInJlY3VycmluZy0yNC1hY3RpdmUiOmDzsJu1YCwicmVjdXJyaW5nLTI0LWluYWN0aXZlIjpg87CbtmAsInVwbG9hZC0xMi1hY3RpdmUiOmDzsKK5YCwidXBsb2FkLTEyLWluYWN0aXZlIjpg87CiumAsInVwbG9hZC0xNi1hY3RpdmUiOmDzsKK7YCwidXBsb2FkLTE2LWluYWN0aXZlIjpg87CivGAsInVwbG9hZC0yNC1hY3RpdmUiOmDzsKK9YCwidXBsb2FkLTI0LWluYWN0aXZlIjpg87CivmAsInVua25vd24tMTItYWN0aXZlIjpg87Cip2AsInVua25vd24tMTItaW5hY3RpdmUiOmDzsKKoYCwidW5rbm93bi0xNi1hY3RpdmUiOmDzsKKpYCwidW5rbm93bi0xNi1pbmFjdGl2ZSI6YPOwoqpgLCJ1bmtub3duLTI0LWFjdGl2ZSI6YPOwoqtgLCJ1bmtub3duLTI0LWluYWN0aXZlIjpg87CirGAsInRyYXNoQ2FuLTEyLWFjdGl2ZSI6YPOwooNgLCJ0cmFzaENhbi0xMi1pbmFjdGl2ZSI6YPOwooRgLCJ0cmFzaENhbi0xNi1hY3RpdmUiOmDzsKKFYCwidHJhc2hDYW4tMTYtaW5hY3RpdmUiOmDzsKKGYCwidHJhc2hDYW4tMjQtYWN0aXZlIjpg87Cih2AsInRyYXNoQ2FuLTI0LWluYWN0aXZlIjpg87CiiGAsInRodW1ic1VwT3V0bGluZS0xMi1hY3RpdmUiOmDzsKGxYCwidGh1bWJzVXBPdXRsaW5lLTEyLWluYWN0aXZlIjpg87ChsmAsInRodW1ic1VwT3V0bGluZS0xNi1hY3RpdmUiOmDzsKGzYCwidGh1bWJzVXBPdXRsaW5lLTE2LWluYWN0aXZlIjpg87ChtGAsInRodW1ic1VwT3V0bGluZS0yNC1hY3RpdmUiOmDzsKG1YCwidGh1bWJzVXBPdXRsaW5lLTI0LWluYWN0aXZlIjpg87ChtmAsInRodW1ic0Rvd24tMTItYWN0aXZlIjpg87Chn2AsInRodW1ic0Rvd24tMTItaW5hY3RpdmUiOmDzsKGgYCwidGh1bWJzRG93bi0xNi1hY3RpdmUiOmDzsKGhYCwidGh1bWJzRG93bi0xNi1pbmFjdGl2ZSI6YPOwoaJgLCJ0aHVtYnNEb3duLTI0LWFjdGl2ZSI6YPOwoaNgLCJ0aHVtYnNEb3duLTI0LWluYWN0aXZlIjpg87ChpGAsInRheGVzUmVjZWlwdC0xMi1hY3RpdmUiOmDzsKGTYCwidGF4ZXNSZWNlaXB0LTEyLWluYWN0aXZlIjpg87ChlGAsInRheGVzUmVjZWlwdC0xNi1hY3RpdmUiOmDzsKGVYCwidGF4ZXNSZWNlaXB0LTE2LWluYWN0aXZlIjpg87ChlmAsInRheGVzUmVjZWlwdC0yNC1hY3RpdmUiOmDzsKGXYCwidGF4ZXNSZWNlaXB0LTI0LWluYWN0aXZlIjpg87ChmGAsInN0ZXA3LTEyLWFjdGl2ZSI6YPOwoKlgLCJzdGVwNy0xMi1pbmFjdGl2ZSI6YPOwoKpgLCJzdGVwNy0xNi1hY3RpdmUiOmDzsKCrYCwic3RlcDctMTYtaW5hY3RpdmUiOmDzsKCsYCwic3RlcDctMjQtYWN0aXZlIjpg87CgrWAsInN0ZXA3LTI0LWluYWN0aXZlIjpg87CgrmAsInN0ZXA1LTEyLWFjdGl2ZSI6YPOwoJ1gLCJzdGVwNS0xMi1pbmFjdGl2ZSI6YPOwoJ5gLCJzdGVwNS0xNi1hY3RpdmUiOmDzsKCfYCwic3RlcDUtMTYtaW5hY3RpdmUiOmDzsKCgYCwic3RlcDUtMjQtYWN0aXZlIjpg87CgoWAsInN0ZXA1LTI0LWluYWN0aXZlIjpg87CgomAsInN0ZXA0LTEyLWFjdGl2ZSI6YPOwoJdgLCJzdGVwNC0xMi1pbmFjdGl2ZSI6YPOwoJhgLCJzdGVwNC0xNi1hY3RpdmUiOmDzsKCZYCwic3RlcDQtMTYtaW5hY3RpdmUiOmDzsKCaYCwic3RlcDQtMjQtYWN0aXZlIjpg87Cgm2AsInN0ZXA0LTI0LWluYWN0aXZlIjpg87CgnGAsInN0ZXAzLTEyLWFjdGl2ZSI6YPOwoJFgLCJzdGVwMy0xMi1pbmFjdGl2ZSI6YPOwoJJgLCJzdGVwMy0xNi1hY3RpdmUiOmDzsKCTYCwic3RlcDMtMTYtaW5hY3RpdmUiOmDzsKCUYCwic3RlcDMtMjQtYWN0aXZlIjpg87CglWAsInN0ZXAzLTI0LWluYWN0aXZlIjpg87CglmAsInN0ZXAyLTEyLWFjdGl2ZSI6YPOwoItgLCJzdGVwMi0xMi1pbmFjdGl2ZSI6YPOwoIxgLCJzdGVwMi0xNi1hY3RpdmUiOmDzsKCNYCwic3RlcDItMTYtaW5hY3RpdmUiOmDzsKCOYCwic3RlcDItMjQtYWN0aXZlIjpg87Cgj2AsInN0ZXAyLTI0LWluYWN0aXZlIjpg87CgkGAsIm5ld3NsZXR0ZXItMTItYWN0aXZlIjpg87CXhWAsIm5ld3NsZXR0ZXItMTItaW5hY3RpdmUiOmDzsJeGYCwibmV3c2xldHRlci0xNi1hY3RpdmUiOmDzsJeHYCwibmV3c2xldHRlci0xNi1pbmFjdGl2ZSI6YPOwl4hgLCJuZXdzbGV0dGVyLTI0LWFjdGl2ZSI6YPOwl4lgLCJuZXdzbGV0dGVyLTI0LWluYWN0aXZlIjpg87CXimAsInN0ZXAxLTEyLWFjdGl2ZSI6YPOwoIVgLCJzdGVwMS0xMi1pbmFjdGl2ZSI6YPOwoIZgLCJzdGVwMS0xNi1hY3RpdmUiOmDzsKCHYCwic3RlcDEtMTYtaW5hY3RpdmUiOmDzsKCIYCwic3RlcDEtMjQtYWN0aXZlIjpg87CgiWAsInN0ZXAxLTI0LWluYWN0aXZlIjpg87CgimAsInN0ZXAwLTEyLWFjdGl2ZSI6YPOwn79gLCJzdGVwMC0xMi1pbmFjdGl2ZSI6YPOwoIBgLCJzdGVwMC0xNi1hY3RpdmUiOmDzsKCBYCwic3RlcDAtMTYtaW5hY3RpdmUiOmDzsKCCYCwic3RlcDAtMjQtYWN0aXZlIjpg87Cgg2AsInN0ZXAwLTI0LWluYWN0aXZlIjpg87CghGAsInN0YXItMTItYWN0aXZlIjpg87Cfs2AsInN0YXItMTItaW5hY3RpdmUiOmDzsJ+0YCwic3Rhci0xNi1hY3RpdmUiOmDzsJ+1YCwic3Rhci0xNi1pbmFjdGl2ZSI6YPOwn7ZgLCJzdGFyLTI0LWFjdGl2ZSI6YPOwn7dgLCJzdGFyLTI0LWluYWN0aXZlIjpg87CfuGAsInNwYXJrbGUtMTItYWN0aXZlIjpg87CflWAsInNwYXJrbGUtMTItaW5hY3RpdmUiOmDzsJ+WYCwic3BhcmtsZS0xNi1hY3RpdmUiOmDzsJ+XYCwic3BhcmtsZS0xNi1pbmFjdGl2ZSI6YPOwn5hgLCJzcGFya2xlLTI0LWFjdGl2ZSI6YPOwn5lgLCJzcGFya2xlLTI0LWluYWN0aXZlIjpg87CfmmAsInNvdW5kT24tMTItYWN0aXZlIjpg87Cfj2AsInNvdW5kT24tMTItaW5hY3RpdmUiOmDzsJ+QYCwic291bmRPbi0xNi1hY3RpdmUiOmDzsJ+RYCwic291bmRPbi0xNi1pbmFjdGl2ZSI6YPOwn5JgLCJzb3VuZE9uLTI0LWFjdGl2ZSI6YPOwn5NgLCJzb3VuZE9uLTI0LWluYWN0aXZlIjpg87CflGAsImNhc2hCcmF6aWxsaWFuUmVhbC0xMi1hY3RpdmUiOmDzsIWvYCwiY2FzaEJyYXppbGxpYW5SZWFsLTEyLWluYWN0aXZlIjpg87CFsGAsImNhc2hCcmF6aWxsaWFuUmVhbC0xNi1hY3RpdmUiOmDzsIWxYCwiY2FzaEJyYXppbGxpYW5SZWFsLTE2LWluYWN0aXZlIjpg87CFsmAsImNhc2hCcmF6aWxsaWFuUmVhbC0yNC1hY3RpdmUiOmDzsIWzYCwiY2FzaEJyYXppbGxpYW5SZWFsLTI0LWluYWN0aXZlIjpg87CFtGAsInNvdW5kT2ZmLTEyLWFjdGl2ZSI6YPOwn4lgLCJzb3VuZE9mZi0xMi1pbmFjdGl2ZSI6YPOwn4pgLCJzb3VuZE9mZi0xNi1hY3RpdmUiOmDzsJ+LYCwic291bmRPZmYtMTYtaW5hY3RpdmUiOmDzsJ+MYCwic291bmRPZmYtMjQtYWN0aXZlIjpg87CfjWAsInNvdW5kT2ZmLTI0LWluYWN0aXZlIjpg87CfjmAsImluc3RpdHV0ZS0xMi1hY3RpdmUiOmDzsJSRYCwiaW5zdGl0dXRlLTEyLWluYWN0aXZlIjpg87CUkmAsImluc3RpdHV0ZS0xNi1hY3RpdmUiOmDzsJSTYCwiaW5zdGl0dXRlLTE2LWluYWN0aXZlIjpg87CUlGAsImluc3RpdHV0ZS0yNC1hY3RpdmUiOmDzsJSVYCwiaW5zdGl0dXRlLTI0LWluYWN0aXZlIjpg87CUlmAsInNvcnRVcENlbnRlci0xMi1hY3RpdmUiOmDzsJ+DYCwic29ydFVwQ2VudGVyLTEyLWluYWN0aXZlIjpg87CfhGAsInNvcnRVcENlbnRlci0xNi1hY3RpdmUiOmDzsJ+FYCwic29ydFVwQ2VudGVyLTE2LWluYWN0aXZlIjpg87CfhmAsInNvcnRVcENlbnRlci0yNC1hY3RpdmUiOmDzsJ+HYCwic29ydFVwQ2VudGVyLTI0LWluYWN0aXZlIjpg87CfiGAsInNvcnRVcC0xMi1hY3RpdmUiOmDzsJ69YCwic29ydFVwLTEyLWluYWN0aXZlIjpg87CevmAsInNvcnRVcC0xNi1hY3RpdmUiOmDzsJ6/YCwic29ydFVwLTE2LWluYWN0aXZlIjpg87CfgGAsInNvcnRVcC0yNC1hY3RpdmUiOmDzsJ+BYCwic29ydFVwLTI0LWluYWN0aXZlIjpg87CfgmAsInNvcnREb3duQ2VudGVyLTEyLWFjdGl2ZSI6YPOwnrdgLCJzb3J0RG93bkNlbnRlci0xMi1pbmFjdGl2ZSI6YPOwnrhgLCJzb3J0RG93bkNlbnRlci0xNi1hY3RpdmUiOmDzsJ65YCwic29ydERvd25DZW50ZXItMTYtaW5hY3RpdmUiOmDzsJ66YCwic29ydERvd25DZW50ZXItMjQtYWN0aXZlIjpg87Ceu2AsInNvcnREb3duQ2VudGVyLTI0LWluYWN0aXZlIjpg87CevGAsInNvcnREb3duLTEyLWFjdGl2ZSI6YPOwnrFgLCJzb3J0RG93bi0xMi1pbmFjdGl2ZSI6YPOwnrJgLCJzb3J0RG93bi0xNi1hY3RpdmUiOmDzsJ6zYCwic29ydERvd24tMTYtaW5hY3RpdmUiOmDzsJ60YCwic29ydERvd24tMjQtYWN0aXZlIjpg87CetWAsInNvcnREb3duLTI0LWluYWN0aXZlIjpg87CetmAsInNvZm9ydC0xMi1hY3RpdmUiOmDzsJ6lYCwic29mb3J0LTEyLWluYWN0aXZlIjpg87CepmAsInNvZm9ydC0xNi1hY3RpdmUiOmDzsJ6nYCwic29mb3J0LTE2LWluYWN0aXZlIjpg87CeqGAsInNvZm9ydC0yNC1hY3RpdmUiOmDzsJ6pYCwic29mb3J0LTI0LWluYWN0aXZlIjpg87CeqmAsInNtYXJ0Q29udHJhY3QtMTItYWN0aXZlIjpg87CejWAsInNtYXJ0Q29udHJhY3QtMTItaW5hY3RpdmUiOmDzsJ6OYCwic21hcnRDb250cmFjdC0xNi1hY3RpdmUiOmDzsJ6PYCwic21hcnRDb250cmFjdC0xNi1pbmFjdGl2ZSI6YPOwnpBgLCJzbWFydENvbnRyYWN0LTI0LWFjdGl2ZSI6YPOwnpFgLCJzbWFydENvbnRyYWN0LTI0LWluYWN0aXZlIjpg87CekmAsInNoaWVsZC0xMi1hY3RpdmUiOmDzsJ21YCwic2hpZWxkLTEyLWluYWN0aXZlIjpg87CdtmAsInNoaWVsZC0xNi1hY3RpdmUiOmDzsJ23YCwic2hpZWxkLTE2LWluYWN0aXZlIjpg87CduGAsInNoaWVsZC0yNC1hY3RpdmUiOmDzsJ25YCwic2hpZWxkLTI0LWluYWN0aXZlIjpg87CdumAsInBheW91dHMtMTItYWN0aXZlIjpg87CZlWAsInBheW91dHMtMTItaW5hY3RpdmUiOmDzsJmWYCwicGF5b3V0cy0xNi1hY3RpdmUiOmDzsJmXYCwicGF5b3V0cy0xNi1pbmFjdGl2ZSI6YPOwmZhgLCJwYXlvdXRzLTI0LWFjdGl2ZSI6YPOwmZlgLCJwYXlvdXRzLTI0LWluYWN0aXZlIjpg87CZmmAsInNoYXJlLTEyLWFjdGl2ZSI6YPOwna9gLCJzaGFyZS0xMi1pbmFjdGl2ZSI6YPOwnbBgLCJzaGFyZS0xNi1hY3RpdmUiOmDzsJ2xYCwic2hhcmUtMTYtaW5hY3RpdmUiOmDzsJ2yYCwic2hhcmUtMjQtYWN0aXZlIjpg87Cds2AsInNoYXJlLTI0LWluYWN0aXZlIjpg87CdtGAsImdsb2JlLTEyLWFjdGl2ZSI6YPOwkqtgLCJnbG9iZS0xMi1pbmFjdGl2ZSI6YPOwkqxgLCJnbG9iZS0xNi1hY3RpdmUiOmDzsJKtYCwiZ2xvYmUtMTYtaW5hY3RpdmUiOmDzsJKuYCwiZ2xvYmUtMjQtYWN0aXZlIjpg87CSr2AsImdsb2JlLTI0LWluYWN0aXZlIjpg87CSsGAsInNhdmUtMTItYWN0aXZlIjpg87CcuWAsInNhdmUtMTItaW5hY3RpdmUiOmDzsJy6YCwic2F2ZS0xNi1hY3RpdmUiOmDzsJy7YCwic2F2ZS0xNi1pbmFjdGl2ZSI6YPOwnLxgLCJzYXZlLTI0LWFjdGl2ZSI6YPOwnL1gLCJzYXZlLTI0LWluYWN0aXZlIjpg87CcvmAsInFyQ29kZUFsdC0xMi1hY3RpdmUiOmDzsJuTYCwicXJDb2RlQWx0LTEyLWluYWN0aXZlIjpg87CblGAsInFyQ29kZUFsdC0xNi1hY3RpdmUiOmDzsJuVYCwicXJDb2RlQWx0LTE2LWluYWN0aXZlIjpg87CblmAsInFyQ29kZUFsdC0yNC1hY3RpdmUiOmDzsJuXYCwicXJDb2RlQWx0LTI0LWluYWN0aXZlIjpg87CbmGAsInNhZmUtMTItYWN0aXZlIjpg87Ccs2AsInNhZmUtMTItaW5hY3RpdmUiOmDzsJy0YCwic2FmZS0xNi1hY3RpdmUiOmDzsJy1YCwic2FmZS0xNi1pbmFjdGl2ZSI6YPOwnLZgLCJzYWZlLTI0LWFjdGl2ZSI6YPOwnLdgLCJzYWZlLTI0LWluYWN0aXZlIjpg87CcuGAsInJlcG9ydC0xMi1hY3RpdmUiOmDzsJyJYCwicmVwb3J0LTEyLWluYWN0aXZlIjpg87CcimAsInJlcG9ydC0xNi1hY3RpdmUiOmDzsJyLYCwicmVwb3J0LTE2LWluYWN0aXZlIjpg87CcjGAsInJlcG9ydC0yNC1hY3RpdmUiOmDzsJyNYCwicmVwb3J0LTI0LWluYWN0aXZlIjpg87CcjmAsInJlY3RhbmdsZS0xMi1hY3RpdmUiOmDzsJurYCwicmVjdGFuZ2xlLTEyLWluYWN0aXZlIjpg87CbrGAsInJlY3RhbmdsZS0xNi1hY3RpdmUiOmDzsJutYCwicmVjdGFuZ2xlLTE2LWluYWN0aXZlIjpg87CbrmAsInJlY3RhbmdsZS0yNC1hY3RpdmUiOmDzsJuvYCwicmVjdGFuZ2xlLTI0LWluYWN0aXZlIjpg87CbsGAsInJlQ2VudGVyLTEyLWFjdGl2ZSI6YPOwm6VgLCJyZUNlbnRlci0xMi1pbmFjdGl2ZSI6YPOwm6ZgLCJyZUNlbnRlci0xNi1hY3RpdmUiOmDzsJunYCwicmVDZW50ZXItMTYtaW5hY3RpdmUiOmDzsJuoYCwicmVDZW50ZXItMjQtYWN0aXZlIjpg87CbqWAsInJlQ2VudGVyLTI0LWluYWN0aXZlIjpg87CbqmAsInFyQ29kZS0xMi1hY3RpdmUiOmDzsJuNYCwicXJDb2RlLTEyLWluYWN0aXZlIjpg87CbjmAsInFyQ29kZS0xNi1hY3RpdmUiOmDzsJuPYCwicXJDb2RlLTE2LWluYWN0aXZlIjpg87CbkGAsInFyQ29kZS0yNC1hY3RpdmUiOmDzsJuRYCwicXJDb2RlLTI0LWluYWN0aXZlIjpg87CbkmAsInB1bHNlLTEyLWFjdGl2ZSI6YPOwm4FgLCJwdWxzZS0xMi1pbmFjdGl2ZSI6YPOwm4JgLCJwdWxzZS0xNi1hY3RpdmUiOmDzsJuDYCwicHVsc2UtMTYtaW5hY3RpdmUiOmDzsJuEYCwicHVsc2UtMjQtYWN0aXZlIjpg87CbhWAsInB1bHNlLTI0LWluYWN0aXZlIjpg87CbhmAsInBsYXktMTItYWN0aXZlIjpg87CakWAsInBsYXktMTItaW5hY3RpdmUiOmDzsJqSYCwicGxheS0xNi1hY3RpdmUiOmDzsJqTYCwicGxheS0xNi1pbmFjdGl2ZSI6YPOwmpRgLCJwbGF5LTI0LWFjdGl2ZSI6YPOwmpVgLCJwbGF5LTI0LWluYWN0aXZlIjpg87CalmAsInBpbi0xMi1hY3RpdmUiOmDzsJqFYCwicGluLTEyLWluYWN0aXZlIjpg87CahmAsInBpbi0xNi1hY3RpdmUiOmDzsJqHYCwicGluLTE2LWluYWN0aXZlIjpg87CaiGAsInBpbi0yNC1hY3RpdmUiOmDzsJqJYCwicGluLTI0LWluYWN0aXZlIjpg87CaimAsInBob25lLTEyLWFjdGl2ZSI6YPOwmb9gLCJwaG9uZS0xMi1pbmFjdGl2ZSI6YPOwmoBgLCJwaG9uZS0xNi1hY3RpdmUiOmDzsJqBYCwicGhvbmUtMTYtaW5hY3RpdmUiOmDzsJqCYCwicGhvbmUtMjQtYWN0aXZlIjpg87Cag2AsInBob25lLTI0LWluYWN0aXZlIjpg87CahGAsInBlcmNlbnRhZ2UtMTItYWN0aXZlIjpg87CZs2AsInBlcmNlbnRhZ2UtMTItaW5hY3RpdmUiOmDzsJm0YCwicGVyY2VudGFnZS0xNi1hY3RpdmUiOmDzsJm1YCwicGVyY2VudGFnZS0xNi1pbmFjdGl2ZSI6YPOwmbZgLCJwZXJjZW50YWdlLTI0LWFjdGl2ZSI6YPOwmbdgLCJwZXJjZW50YWdlLTI0LWluYWN0aXZlIjpg87CZuGAsInBheXBhbC0xMi1hY3RpdmUiOmDzsJmbYCwicGF5cGFsLTEyLWluYWN0aXZlIjpg87CZnGAsInBheXBhbC0xNi1hY3RpdmUiOmDzsJmdYCwicGF5cGFsLTE2LWluYWN0aXZlIjpg87CZnmAsInBheXBhbC0yNC1hY3RpdmUiOmDzsJmfYCwicGF5cGFsLTI0LWluYWN0aXZlIjpg87CZoGAsInBhcGVyY2xpcC0xMi1hY3RpdmUiOmDzsJifYCwicGFwZXJjbGlwLTEyLWluYWN0aXZlIjpg87CYoGAsInBhcGVyY2xpcC0xNi1hY3RpdmUiOmDzsJihYCwicGFwZXJjbGlwLTE2LWluYWN0aXZlIjpg87CYomAsInBhcGVyY2xpcC0yNC1hY3RpdmUiOmDzsJijYCwicGFwZXJjbGlwLTI0LWluYWN0aXZlIjpg87CYpGAsInBhcGVyQWlycGxhbmUtMTItYWN0aXZlIjpg87CYmWAsInBhcGVyQWlycGxhbmUtMTItaW5hY3RpdmUiOmDzsJiaYCwicGFwZXJBaXJwbGFuZS0xNi1hY3RpdmUiOmDzsJibYCwicGFwZXJBaXJwbGFuZS0xNi1pbmFjdGl2ZSI6YPOwmJxgLCJwYXBlckFpcnBsYW5lLTI0LWFjdGl2ZSI6YPOwmJ1gLCJwYXBlckFpcnBsYW5lLTI0LWluYWN0aXZlIjpg87CYnmAsInVsdGlsaXR5LTEyLWFjdGl2ZSI6YPOwoptgLCJ1bHRpbGl0eS0xMi1pbmFjdGl2ZSI6YPOwopxgLCJ1bHRpbGl0eS0xNi1hY3RpdmUiOmDzsKKdYCwidWx0aWxpdHktMTYtaW5hY3RpdmUiOmDzsKKeYCwidWx0aWxpdHktMjQtYWN0aXZlIjpg87Cin2AsInVsdGlsaXR5LTI0LWluYWN0aXZlIjpg87CioGAsIm91dGxpbmUtMTItYWN0aXZlIjpg87CYjWAsIm91dGxpbmUtMTItaW5hY3RpdmUiOmDzsJiOYCwib3V0bGluZS0xNi1hY3RpdmUiOmDzsJiPYCwib3V0bGluZS0xNi1pbmFjdGl2ZSI6YPOwmJBgLCJvdXRsaW5lLTI0LWFjdGl2ZSI6YPOwmJFgLCJvdXRsaW5lLTI0LWluYWN0aXZlIjpg87CYkmAsInRyb3BoeS0xMi1hY3RpdmUiOmDzsKKJYCwidHJvcGh5LTEyLWluYWN0aXZlIjpg87CiimAsInRyb3BoeS0xNi1hY3RpdmUiOmDzsKKLYCwidHJvcGh5LTE2LWluYWN0aXZlIjpg87CijGAsInRyb3BoeS0yNC1hY3RpdmUiOmDzsKKNYCwidHJvcGh5LTI0LWluYWN0aXZlIjpg87CijmAsIm5vV2lmaS0xMi1hY3RpdmUiOmDzsJevYCwibm9XaWZpLTEyLWluYWN0aXZlIjpg87CXsGAsIm5vV2lmaS0xNi1hY3RpdmUiOmDzsJexYCwibm9XaWZpLTE2LWluYWN0aXZlIjpg87CXsmAsIm5vV2lmaS0yNC1hY3RpdmUiOmDzsJezYCwibm9XaWZpLTI0LWluYWN0aXZlIjpg87CXtGAsIm5mdFNhbGUtMTItYWN0aXZlIjpg87CXo2AsIm5mdFNhbGUtMTItaW5hY3RpdmUiOmDzsJekYCwibmZ0U2FsZS0xNi1hY3RpdmUiOmDzsJelYCwibmZ0U2FsZS0xNi1pbmFjdGl2ZSI6YPOwl6ZgLCJuZnRTYWxlLTI0LWFjdGl2ZSI6YPOwl6dgLCJuZnRTYWxlLTI0LWluYWN0aXZlIjpg87CXqGAsImFmZmlsaWF0ZXMtMTItYWN0aXZlIjpg87CApWAsImFmZmlsaWF0ZXMtMTItaW5hY3RpdmUiOmDzsICmYCwiYWZmaWxpYXRlcy0xNi1hY3RpdmUiOmDzsICnYCwiYWZmaWxpYXRlcy0xNi1pbmFjdGl2ZSI6YPOwgKhgLCJhZmZpbGlhdGVzLTI0LWFjdGl2ZSI6YPOwgKlgLCJhZmZpbGlhdGVzLTI0LWluYWN0aXZlIjpg87CAqmAsIm5mdE9mZmVyLTEyLWFjdGl2ZSI6YPOwl5dgLCJuZnRPZmZlci0xMi1pbmFjdGl2ZSI6YPOwl5hgLCJuZnRPZmZlci0xNi1hY3RpdmUiOmDzsJeZYCwibmZ0T2ZmZXItMTYtaW5hY3RpdmUiOmDzsJeaYCwibmZ0T2ZmZXItMjQtYWN0aXZlIjpg87CXm2AsIm5mdE9mZmVyLTI0LWluYWN0aXZlIjpg87CXnGAsInN0ZXA4LTEyLWFjdGl2ZSI6YPOwoK9gLCJzdGVwOC0xMi1pbmFjdGl2ZSI6YPOwoLBgLCJzdGVwOC0xNi1hY3RpdmUiOmDzsKCxYCwic3RlcDgtMTYtaW5hY3RpdmUiOmDzsKCyYCwic3RlcDgtMjQtYWN0aXZlIjpg87Cgs2AsInN0ZXA4LTI0LWluYWN0aXZlIjpg87CgtGAsImV4dGVybmFsTGluay0xMi1hY3RpdmUiOmDzsI+TYCwiZXh0ZXJuYWxMaW5rLTEyLWluYWN0aXZlIjpg87CPlGAsImV4dGVybmFsTGluay0xNi1hY3RpdmUiOmDzsI+VYCwiZXh0ZXJuYWxMaW5rLTE2LWluYWN0aXZlIjpg87CPlmAsImV4dGVybmFsTGluay0yNC1hY3RpdmUiOmDzsI+XYCwiZXh0ZXJuYWxMaW5rLTI0LWluYWN0aXZlIjpg87CPmGAsIm11c2ljLTEyLWFjdGl2ZSI6YPOwlrlgLCJtdXNpYy0xMi1pbmFjdGl2ZSI6YPOwlrpgLCJtdXNpYy0xNi1hY3RpdmUiOmDzsJa7YCwibXVzaWMtMTYtaW5hY3RpdmUiOmDzsJa8YCwibXVzaWMtMjQtYWN0aXZlIjpg87CWvWAsIm11c2ljLTI0LWluYWN0aXZlIjpg87CWvmAsInN0ZXA2LTEyLWFjdGl2ZSI6YPOwoKNgLCJzdGVwNi0xMi1pbmFjdGl2ZSI6YPOwoKRgLCJzdGVwNi0xNi1hY3RpdmUiOmDzsKClYCwic3RlcDYtMTYtaW5hY3RpdmUiOmDzsKCmYCwic3RlcDYtMjQtYWN0aXZlIjpg87Cgp2AsInN0ZXA2LTI0LWluYWN0aXZlIjpg87CgqGAsIm1ldGF2ZXJzZS0xMi1hY3RpdmUiOmDzsJaPYCwibWV0YXZlcnNlLTEyLWluYWN0aXZlIjpg87CWkGAsIm1ldGF2ZXJzZS0xNi1hY3RpdmUiOmDzsJaRYCwibWV0YXZlcnNlLTE2LWluYWN0aXZlIjpg87CWkmAsIm1ldGF2ZXJzZS0yNC1hY3RpdmUiOmDzsJaTYCwibWV0YXZlcnNlLTI0LWluYWN0aXZlIjpg87CWlGAsIm1hcmtldENhcC0xMi1hY3RpdmUiOmDzsJW9YCwibWFya2V0Q2FwLTEyLWluYWN0aXZlIjpg87CVvmAsIm1hcmtldENhcC0xNi1hY3RpdmUiOmDzsJW/YCwibWFya2V0Q2FwLTE2LWluYWN0aXZlIjpg87CWgGAsIm1hcmtldENhcC0yNC1hY3RpdmUiOmDzsJaBYCwibWFya2V0Q2FwLTI0LWluYWN0aXZlIjpg87CWgmAsImZpYi0xMi1hY3RpdmUiOmDzsI+xYCwiZmliLTEyLWluYWN0aXZlIjpg87CPsmAsImZpYi0xNi1hY3RpdmUiOmDzsI+zYCwiZmliLTE2LWluYWN0aXZlIjpg87CPtGAsImZpYi0yNC1hY3RpdmUiOmDzsI+1YCwiZmliLTI0LWluYWN0aXZlIjpg87CPtmAsImFubm90YXRpb24tMTItYWN0aXZlIjpg87CAt2AsImFubm90YXRpb24tMTItaW5hY3RpdmUiOmDzsIC4YCwiYW5ub3RhdGlvbi0xNi1hY3RpdmUiOmDzsIC5YCwiYW5ub3RhdGlvbi0xNi1pbmFjdGl2ZSI6YPOwgLpgLCJhbm5vdGF0aW9uLTI0LWFjdGl2ZSI6YPOwgLtgLCJhbm5vdGF0aW9uLTI0LWluYWN0aXZlIjpg87CAvGAsImxpc3QtMTItYWN0aXZlIjpg87CVn2AsImxpc3QtMTItaW5hY3RpdmUiOmDzsJWgYCwibGlzdC0xNi1hY3RpdmUiOmDzsJWhYCwibGlzdC0xNi1pbmFjdGl2ZSI6YPOwlaJgLCJsaXN0LTI0LWFjdGl2ZSI6YPOwlaNgLCJsaXN0LTI0LWluYWN0aXZlIjpg87CVpGAsImxhcHRvcC0xMi1hY3RpdmUiOmDzsJS7YCwibGFwdG9wLTEyLWluYWN0aXZlIjpg87CUvGAsImxhcHRvcC0xNi1hY3RpdmUiOmDzsJS9YCwibGFwdG9wLTE2LWluYWN0aXZlIjpg87CUvmAsImxhcHRvcC0yNC1hY3RpdmUiOmDzsJS/YCwibGFwdG9wLTI0LWluYWN0aXZlIjpg87CVgGAsImNoYXJ0Vm9sdW1lLTEyLWFjdGl2ZSI6YPOwh7lgLCJjaGFydFZvbHVtZS0xMi1pbmFjdGl2ZSI6YPOwh7pgLCJjaGFydFZvbHVtZS0xNi1hY3RpdmUiOmDzsIe7YCwiY2hhcnRWb2x1bWUtMTYtaW5hY3RpdmUiOmDzsIe8YCwiY2hhcnRWb2x1bWUtMjQtYWN0aXZlIjpg87CHvWAsImNoYXJ0Vm9sdW1lLTI0LWluYWN0aXZlIjpg87CHvmAsImRvdWJsZUNoZXZyb25SaWdodC0xMi1hY3RpdmUiOmDzsI2zYCwiZG91YmxlQ2hldnJvblJpZ2h0LTEyLWluYWN0aXZlIjpg87CNtGAsImRvdWJsZUNoZXZyb25SaWdodC0xNi1hY3RpdmUiOmDzsI21YCwiZG91YmxlQ2hldnJvblJpZ2h0LTE2LWluYWN0aXZlIjpg87CNtmAsImRvdWJsZUNoZXZyb25SaWdodC0yNC1hY3RpdmUiOmDzsI23YCwiZG91YmxlQ2hldnJvblJpZ2h0LTI0LWluYWN0aXZlIjpg87CNuGAsImVycm9yLTEyLWFjdGl2ZSI6YPOwjqNgLCJlcnJvci0xMi1pbmFjdGl2ZSI6YPOwjqRgLCJlcnJvci0xNi1hY3RpdmUiOmDzsI6lYCwiZXJyb3ItMTYtaW5hY3RpdmUiOmDzsI6mYCwiZXJyb3ItMjQtYWN0aXZlIjpg87COp2AsImVycm9yLTI0LWluYWN0aXZlIjpg87COqGAsImdhbWVzLTEyLWFjdGl2ZSI6YPOwkLlgLCJnYW1lcy0xMi1pbmFjdGl2ZSI6YPOwkLpgLCJnYW1lcy0xNi1hY3RpdmUiOmDzsJC7YCwiZ2FtZXMtMTYtaW5hY3RpdmUiOmDzsJC8YCwiZ2FtZXMtMjQtYWN0aXZlIjpg87CQvWAsImdhbWVzLTI0LWluYWN0aXZlIjpg87CQvmAsImZvbGxvd0FkZC0xMi1hY3RpdmUiOmDzsJCbYCwiZm9sbG93QWRkLTEyLWluYWN0aXZlIjpg87CQnGAsImZvbGxvd0FkZC0xNi1hY3RpdmUiOmDzsJCdYCwiZm9sbG93QWRkLTE2LWluYWN0aXZlIjpg87CQnmAsImZvbGxvd0FkZC0yNC1hY3RpdmUiOmDzsJCfYCwiZm9sbG93QWRkLTI0LWluYWN0aXZlIjpg87CQoGAsImdpZnRDYXJkLTEyLWFjdGl2ZSI6YPOwkp9gLCJnaWZ0Q2FyZC0xMi1pbmFjdGl2ZSI6YPOwkqBgLCJnaWZ0Q2FyZC0xNi1hY3RpdmUiOmDzsJKhYCwiZ2lmdENhcmQtMTYtaW5hY3RpdmUiOmDzsJKiYCwiZ2lmdENhcmQtMjQtYWN0aXZlIjpg87CSo2AsImdpZnRDYXJkLTI0LWluYWN0aXZlIjpg87CSpGAsImZvbGxvd2luZy0xMi1hY3RpdmUiOmDzsJChYCwiZm9sbG93aW5nLTEyLWluYWN0aXZlIjpg87CQomAsImZvbGxvd2luZy0xNi1hY3RpdmUiOmDzsJCjYCwiZm9sbG93aW5nLTE2LWluYWN0aXZlIjpg87CQpGAsImZvbGxvd2luZy0yNC1hY3RpdmUiOmDzsJClYCwiZm9sbG93aW5nLTI0LWluYWN0aXZlIjpg87CQpmAsInR3aXR0ZXJMb2dvLTEyLWFjdGl2ZSI6YPOwopVgLCJ0d2l0dGVyTG9nby0xMi1pbmFjdGl2ZSI6YPOwopZgLCJ0d2l0dGVyTG9nby0xNi1hY3RpdmUiOmDzsKKXYCwidHdpdHRlckxvZ28tMTYtaW5hY3RpdmUiOmDzsKKYYCwidHdpdHRlckxvZ28tMjQtYWN0aXZlIjpg87CimWAsInR3aXR0ZXJMb2dvLTI0LWluYWN0aXZlIjpg87CimmAsImZpbmdlcnByaW50LTEyLWFjdGl2ZSI6YPOwj71gLCJmaW5nZXJwcmludC0xMi1pbmFjdGl2ZSI6YPOwj75gLCJmaW5nZXJwcmludC0xNi1hY3RpdmUiOmDzsI+/YCwiZmluZ2VycHJpbnQtMTYtaW5hY3RpdmUiOmDzsJCAYCwiZmluZ2VycHJpbnQtMjQtYWN0aXZlIjpg87CQgWAsImZpbmdlcnByaW50LTI0LWluYWN0aXZlIjpg87CQgmAsIm5mdC0xMi1hY3RpdmUiOmDzsJeLYCwibmZ0LTEyLWluYWN0aXZlIjpg87CXjGAsIm5mdC0xNi1hY3RpdmUiOmDzsJeNYCwibmZ0LTE2LWluYWN0aXZlIjpg87CXjmAsIm5mdC0yNC1hY3RpdmUiOmDzsJePYCwibmZ0LTI0LWluYWN0aXZlIjpg87CXkGAsImNvbGxlY3RpYmxlcy0xMi1hY3RpdmUiOmDzsIqJYCwiY29sbGVjdGlibGVzLTEyLWluYWN0aXZlIjpg87CKimAsImNvbGxlY3RpYmxlcy0xNi1hY3RpdmUiOmDzsIqLYCwiY29sbGVjdGlibGVzLTE2LWluYWN0aXZlIjpg87CKjGAsImNvbGxlY3RpYmxlcy0yNC1hY3RpdmUiOmDzsIqNYCwiY29sbGVjdGlibGVzLTI0LWluYWN0aXZlIjpg87CKjmAsImdhdWdlLTEyLWFjdGl2ZSI6YPOwkYVgLCJnYXVnZS0xMi1pbmFjdGl2ZSI6YPOwkYZgLCJnYXVnZS0xNi1hY3RpdmUiOmDzsJGHYCwiZ2F1Z2UtMTYtaW5hY3RpdmUiOmDzsJGIYCwiZ2F1Z2UtMjQtYWN0aXZlIjpg87CRiWAsImdhdWdlLTI0LWluYWN0aXZlIjpg87CRimAsImNhc2hUaGFpQmFodC0xMi1hY3RpdmUiOmDzsIa3YCwiY2FzaFRoYWlCYWh0LTEyLWluYWN0aXZlIjpg87CGuGAsImNhc2hUaGFpQmFodC0xNi1hY3RpdmUiOmDzsIa5YCwiY2FzaFRoYWlCYWh0LTE2LWluYWN0aXZlIjpg87CGumAsImNhc2hUaGFpQmFodC0yNC1hY3RpdmUiOmDzsIa7YCwiY2FzaFRoYWlCYWh0LTI0LWluYWN0aXZlIjpg87CGvGAsImZhY2VTY2FuLTEyLWFjdGl2ZSI6YPOwj59gLCJmYWNlU2Nhbi0xMi1pbmFjdGl2ZSI6YPOwj6BgLCJmYWNlU2Nhbi0xNi1hY3RpdmUiOmDzsI+hYCwiZmFjZVNjYW4tMTYtaW5hY3RpdmUiOmDzsI+iYCwiZmFjZVNjYW4tMjQtYWN0aXZlIjpg87CPo2AsImZhY2VTY2FuLTI0LWluYWN0aXZlIjpg87CPpGAsImNhc2hQb2xpc2habG90eS0xMi1hY3RpdmUiOmDzsIafYCwiY2FzaFBvbGlzaFpsb3R5LTEyLWluYWN0aXZlIjpg87CGoGAsImNhc2hQb2xpc2habG90eS0xNi1hY3RpdmUiOmDzsIahYCwiY2FzaFBvbGlzaFpsb3R5LTE2LWluYWN0aXZlIjpg87CGomAsImNhc2hQb2xpc2habG90eS0yNC1hY3RpdmUiOmDzsIajYCwiY2FzaFBvbGlzaFpsb3R5LTI0LWluYWN0aXZlIjpg87CGpGAsImZvcmstMTItYWN0aXZlIjpg87CQp2AsImZvcmstMTItaW5hY3RpdmUiOmDzsJCoYCwiZm9yay0xNi1hY3RpdmUiOmDzsJCpYCwiZm9yay0xNi1pbmFjdGl2ZSI6YPOwkKpgLCJmb3JrLTI0LWFjdGl2ZSI6YPOwkKtgLCJmb3JrLTI0LWluYWN0aXZlIjpg87CQrGAsImhvcml6b250YWxMaW5lLTEyLWFjdGl2ZSI6YPOwk6dgLCJob3Jpem9udGFsTGluZS0xMi1pbmFjdGl2ZSI6YPOwk6hgLCJob3Jpem9udGFsTGluZS0xNi1hY3RpdmUiOmDzsJOpYCwiaG9yaXpvbnRhbExpbmUtMTYtaW5hY3RpdmUiOmDzsJOqYCwiaG9yaXpvbnRhbExpbmUtMjQtYWN0aXZlIjpg87CTq2AsImhvcml6b250YWxMaW5lLTI0LWluYWN0aXZlIjpg87CTrGAsImZvcndhcmRBcnJvdy0xMi1hY3RpdmUiOmDzsJCtYCwiZm9yd2FyZEFycm93LTEyLWluYWN0aXZlIjpg87CQrmAsImZvcndhcmRBcnJvdy0xNi1hY3RpdmUiOmDzsJCvYCwiZm9yd2FyZEFycm93LTE2LWluYWN0aXZlIjpg87CQsGAsImZvcndhcmRBcnJvdy0yNC1hY3RpdmUiOmDzsJCxYCwiZm9yd2FyZEFycm93LTI0LWluYWN0aXZlIjpg87CQsmAsIm1vcmUtMTItYWN0aXZlIjpg87CWrWAsIm1vcmUtMTItaW5hY3RpdmUiOmDzsJauYCwibW9yZS0xNi1hY3RpdmUiOmDzsJavYCwibW9yZS0xNi1pbmFjdGl2ZSI6YPOwlrBgLCJtb3JlLTI0LWFjdGl2ZSI6YPOwlrFgLCJtb3JlLTI0LWluYWN0aXZlIjpg87CWsmAsImV4cGFuZEFkZHJlc3MtMTItYWN0aXZlIjpg87CPh2AsImV4cGFuZEFkZHJlc3MtMTItaW5hY3RpdmUiOmDzsI+IYCwiZXhwYW5kQWRkcmVzcy0xNi1hY3RpdmUiOmDzsI+JYCwiZXhwYW5kQWRkcmVzcy0xNi1pbmFjdGl2ZSI6YPOwj4pgLCJleHBhbmRBZGRyZXNzLTI0LWFjdGl2ZSI6YPOwj4tgLCJleHBhbmRBZGRyZXNzLTI0LWluYWN0aXZlIjpg87CPjGAsImdlYXItMTItYWN0aXZlIjpg87CSgWAsImdlYXItMTItaW5hY3RpdmUiOmDzsJKCYCwiZ2Vhci0xNi1hY3RpdmUiOmDzsJKDYCwiZ2Vhci0xNi1pbmFjdGl2ZSI6YPOwkoRgLCJnZWFyLTI0LWFjdGl2ZSI6YPOwkoVgLCJnZWFyLTI0LWluYWN0aXZlIjpg87CShmAsImV4cGFuZC0xMi1hY3RpdmUiOmDzsI+BYCwiZXhwYW5kLTEyLWluYWN0aXZlIjpg87CPgmAsImV4cGFuZC0xNi1hY3RpdmUiOmDzsI+DYCwiZXhwYW5kLTE2LWluYWN0aXZlIjpg87CPhGAsImV4cGFuZC0yNC1hY3RpdmUiOmDzsI+FYCwiZXhwYW5kLTI0LWluYWN0aXZlIjpg87CPhmAsImV4Y2xhbWF0aW9uTWFyay0xMi1hY3RpdmUiOmDzsI67YCwiZXhjbGFtYXRpb25NYXJrLTEyLWluYWN0aXZlIjpg87COvGAsImV4Y2xhbWF0aW9uTWFyay0xNi1hY3RpdmUiOmDzsI69YCwiZXhjbGFtYXRpb25NYXJrLTE2LWluYWN0aXZlIjpg87COvmAsImV4Y2xhbWF0aW9uTWFyay0yNC1hY3RpdmUiOmDzsI6/YCwiZXhjbGFtYXRpb25NYXJrLTI0LWluYWN0aXZlIjpg87CPgGAsImV0aGVyZXVtLTEyLWFjdGl2ZSI6YPOwjqlgLCJldGhlcmV1bS0xMi1pbmFjdGl2ZSI6YPOwjqpgLCJldGhlcmV1bS0xNi1hY3RpdmUiOmDzsI6rYCwiZXRoZXJldW0tMTYtaW5hY3RpdmUiOmDzsI6sYCwiZXRoZXJldW0tMjQtYWN0aXZlIjpg87COrWAsImV0aGVyZXVtLTI0LWluYWN0aXZlIjpg87COrmAsImhhbWJ1cmdlci0xMi1hY3RpdmUiOmDzsJK9YCwiaGFtYnVyZ2VyLTEyLWluYWN0aXZlIjpg87CSvmAsImhhbWJ1cmdlci0xNi1hY3RpdmUiOmDzsJK/YCwiaGFtYnVyZ2VyLTE2LWluYWN0aXZlIjpg87CTgGAsImhhbWJ1cmdlci0yNC1hY3RpdmUiOmDzsJOBYCwiaGFtYnVyZ2VyLTI0LWluYWN0aXZlIjpg87CTgmAsImVtYWlsLTEyLWFjdGl2ZSI6YPOwjp1gLCJlbWFpbC0xMi1pbmFjdGl2ZSI6YPOwjp5gLCJlbWFpbC0xNi1hY3RpdmUiOmDzsI6fYCwiZW1haWwtMTYtaW5hY3RpdmUiOmDzsI6gYCwiZW1haWwtMjQtYWN0aXZlIjpg87COoWAsImVtYWlsLTI0LWluYWN0aXZlIjpg87COomAsImJvb2ttYXJrLTEyLWFjdGl2ZSI6YPOwg71gLCJib29rbWFyay0xMi1pbmFjdGl2ZSI6YPOwg75gLCJib29rbWFyay0xNi1hY3RpdmUiOmDzsIO/YCwiYm9va21hcmstMTYtaW5hY3RpdmUiOmDzsISAYCwiYm9va21hcmstMjQtYWN0aXZlIjpg87CEgWAsImJvb2ttYXJrLTI0LWluYWN0aXZlIjpg87CEgmAsImtleWJvYXJkLTEyLWFjdGl2ZSI6YPOwlLVgLCJrZXlib2FyZC0xMi1pbmFjdGl2ZSI6YPOwlLZgLCJrZXlib2FyZC0xNi1hY3RpdmUiOmDzsJS3YCwia2V5Ym9hcmQtMTYtaW5hY3RpdmUiOmDzsJS4YCwia2V5Ym9hcmQtMjQtYWN0aXZlIjpg87CUuWAsImtleWJvYXJkLTI0LWluYWN0aXZlIjpg87CUumAsInByb3RlY3Rpb24tMTItYWN0aXZlIjpg87Cau2AsInByb3RlY3Rpb24tMTItaW5hY3RpdmUiOmDzsJq8YCwicHJvdGVjdGlvbi0xNi1hY3RpdmUiOmDzsJq9YCwicHJvdGVjdGlvbi0xNi1pbmFjdGl2ZSI6YPOwmr5gLCJwcm90ZWN0aW9uLTI0LWFjdGl2ZSI6YPOwmr9gLCJwcm90ZWN0aW9uLTI0LWluYWN0aXZlIjpg87CbgGAsImV4cGFuZEFsbC0xMi1hY3RpdmUiOmDzsI+NYCwiZXhwYW5kQWxsLTEyLWluYWN0aXZlIjpg87CPjmAsImV4cGFuZEFsbC0xNi1hY3RpdmUiOmDzsI+PYCwiZXhwYW5kQWxsLTE2LWluYWN0aXZlIjpg87CPkGAsImV4cGFuZEFsbC0yNC1hY3RpdmUiOmDzsI+RYCwiZXhwYW5kQWxsLTI0LWluYWN0aXZlIjpg87CPkmAsImlkZW50aXR5Q2FyZC0xMi1hY3RpdmUiOmDzsJOzYCwiaWRlbnRpdHlDYXJkLTEyLWluYWN0aXZlIjpg87CTtGAsImlkZW50aXR5Q2FyZC0xNi1hY3RpdmUiOmDzsJO1YCwiaWRlbnRpdHlDYXJkLTE2LWluYWN0aXZlIjpg87CTtmAsImlkZW50aXR5Q2FyZC0yNC1hY3RpdmUiOmDzsJO3YCwiaWRlbnRpdHlDYXJkLTI0LWluYWN0aXZlIjpg87CTuGAsImluZm8tMTItYWN0aXZlIjpg87CTv2AsImluZm8tMTItaW5hY3RpdmUiOmDzsJSAYCwiaW5mby0xNi1hY3RpdmUiOmDzsJSBYCwiaW5mby0xNi1pbmFjdGl2ZSI6YPOwlIJgLCJpbmZvLTI0LWFjdGl2ZSI6YPOwlINgLCJpbmZvLTI0LWluYWN0aXZlIjpg87CUhGAsImRvd25BcnJvdy0xMi1hY3RpdmUiOmDzsI25YCwiZG93bkFycm93LTEyLWluYWN0aXZlIjpg87CNumAsImRvd25BcnJvdy0xNi1hY3RpdmUiOmDzsI27YCwiZG93bkFycm93LTE2LWluYWN0aXZlIjpg87CNvGAsImRvd25BcnJvdy0yNC1hY3RpdmUiOmDzsI29YCwiZG93bkFycm93LTI0LWluYWN0aXZlIjpg87CNvmAsImRvdC0xMi1hY3RpdmUiOmDzsI2tYCwiZG90LTEyLWluYWN0aXZlIjpg87CNrmAsImRvdC0xNi1hY3RpdmUiOmDzsI2vYCwiZG90LTE2LWluYWN0aXZlIjpg87CNsGAsImRvdC0yNC1hY3RpdmUiOmDzsI2xYCwiZG90LTI0LWluYWN0aXZlIjpg87CNsmAsImRvY3VtZW50LTEyLWFjdGl2ZSI6YPOwjaFgLCJkb2N1bWVudC0xMi1pbmFjdGl2ZSI6YPOwjaJgLCJkb2N1bWVudC0xNi1hY3RpdmUiOmDzsI2jYCwiZG9jdW1lbnQtMTYtaW5hY3RpdmUiOmDzsI2kYCwiZG9jdW1lbnQtMjQtYWN0aXZlIjpg87CNpWAsImRvY3VtZW50LTI0LWluYWN0aXZlIjpg87CNpmAsImRpYWdvbmFsUmlnaHRBcnJvdy0xMi1hY3RpdmUiOmDzsIy3YCwiZGlhZ29uYWxSaWdodEFycm93LTEyLWluYWN0aXZlIjpg87CMuGAsImRpYWdvbmFsUmlnaHRBcnJvdy0xNi1hY3RpdmUiOmDzsIy5YCwiZGlhZ29uYWxSaWdodEFycm93LTE2LWluYWN0aXZlIjpg87CMumAsImRpYWdvbmFsUmlnaHRBcnJvdy0yNC1hY3RpdmUiOmDzsIy7YCwiZGlhZ29uYWxSaWdodEFycm93LTI0LWluYWN0aXZlIjpg87CMvGAsImdyb3VwLTEyLWFjdGl2ZSI6YPOwkrdgLCJncm91cC0xMi1pbmFjdGl2ZSI6YPOwkrhgLCJncm91cC0xNi1hY3RpdmUiOmDzsJK5YCwiZ3JvdXAtMTYtaW5hY3RpdmUiOmDzsJK6YCwiZ3JvdXAtMjQtYWN0aXZlIjpg87CSu2AsImdyb3VwLTI0LWluYWN0aXZlIjpg87CSvGAsImNhc2hVU0QtMTItYWN0aXZlIjpg87CHg2AsImNhc2hVU0QtMTItaW5hY3RpdmUiOmDzsIeEYCwiY2FzaFVTRC0xNi1hY3RpdmUiOmDzsIeFYCwiY2FzaFVTRC0xNi1pbmFjdGl2ZSI6YPOwh4ZgLCJjYXNoVVNELTI0LWFjdGl2ZSI6YPOwh4dgLCJjYXNoVVNELTI0LWluYWN0aXZlIjpg87CHiGAsImRpYWdvbmFsVXBBcnJvdy0xMi1hY3RpdmUiOmDzsIy9YCwiZGlhZ29uYWxVcEFycm93LTEyLWluYWN0aXZlIjpg87CMvmAsImRpYWdvbmFsVXBBcnJvdy0xNi1hY3RpdmUiOmDzsIy/YCwiZGlhZ29uYWxVcEFycm93LTE2LWluYWN0aXZlIjpg87CNgGAsImRpYWdvbmFsVXBBcnJvdy0yNC1hY3RpdmUiOmDzsI2BYCwiZGlhZ29uYWxVcEFycm93LTI0LWluYWN0aXZlIjpg87CNgmAsInJvY2tldC0xMi1hY3RpdmUiOmDzsJyVYCwicm9ja2V0LTEyLWluYWN0aXZlIjpg87CclmAsInJvY2tldC0xNi1hY3RpdmUiOmDzsJyXYCwicm9ja2V0LTE2LWluYWN0aXZlIjpg87CcmGAsInJvY2tldC0yNC1hY3RpdmUiOmDzsJyZYCwicm9ja2V0LTI0LWluYWN0aXZlIjpg87CcmmAsInRodW1ic0Rvd25PdXRsaW5lLTEyLWFjdGl2ZSI6YPOwoaVgLCJ0aHVtYnNEb3duT3V0bGluZS0xMi1pbmFjdGl2ZSI6YPOwoaZgLCJ0aHVtYnNEb3duT3V0bGluZS0xNi1hY3RpdmUiOmDzsKGnYCwidGh1bWJzRG93bk91dGxpbmUtMTYtaW5hY3RpdmUiOmDzsKGoYCwidGh1bWJzRG93bk91dGxpbmUtMjQtYWN0aXZlIjpg87ChqWAsInRodW1ic0Rvd25PdXRsaW5lLTI0LWluYWN0aXZlIjpg87ChqmAsImZsYW1lLTEyLWFjdGl2ZSI6YPOwkINgLCJmbGFtZS0xMi1pbmFjdGl2ZSI6YPOwkIRgLCJmbGFtZS0xNi1hY3RpdmUiOmDzsJCFYCwiZmxhbWUtMTYtaW5hY3RpdmUiOmDzsJCGYCwiZmxhbWUtMjQtYWN0aXZlIjpg87CQh2AsImZsYW1lLTI0LWluYWN0aXZlIjpg87CQiGAsImN1cnJlbmNpZXMtMTItYWN0aXZlIjpg87CLo2AsImN1cnJlbmNpZXMtMTItaW5hY3RpdmUiOmDzsIukYCwiY3VycmVuY2llcy0xNi1hY3RpdmUiOmDzsIulYCwiY3VycmVuY2llcy0xNi1pbmFjdGl2ZSI6YPOwi6ZgLCJjdXJyZW5jaWVzLTI0LWFjdGl2ZSI6YPOwi6dgLCJjdXJyZW5jaWVzLTI0LWluYWN0aXZlIjpg87CLqGAsImNyb3NzVHJhZGUtMTItYWN0aXZlIjpg87CLi2AsImNyb3NzVHJhZGUtMTItaW5hY3RpdmUiOmDzsIuMYCwiY3Jvc3NUcmFkZS0xNi1hY3RpdmUiOmDzsIuNYCwiY3Jvc3NUcmFkZS0xNi1pbmFjdGl2ZSI6YPOwi45gLCJjcm9zc1RyYWRlLTI0LWFjdGl2ZSI6YPOwi49gLCJjcm9zc1RyYWRlLTI0LWluYWN0aXZlIjpg87CLkGAsInN0YWtlLTEyLWFjdGl2ZSI6YPOwn6dgLCJzdGFrZS0xMi1pbmFjdGl2ZSI6YPOwn6hgLCJzdGFrZS0xNi1hY3RpdmUiOmDzsJ+pYCwic3Rha2UtMTYtaW5hY3RpdmUiOmDzsJ+qYCwic3Rha2UtMjQtYWN0aXZlIjpg87Cfq2AsInN0YWtlLTI0LWluYWN0aXZlIjpg87CfrGAsInByb2ZpbGUtMTItYWN0aXZlIjpg87CatWAsInByb2ZpbGUtMTItaW5hY3RpdmUiOmDzsJq2YCwicHJvZmlsZS0xNi1hY3RpdmUiOmDzsJq3YCwicHJvZmlsZS0xNi1pbmFjdGl2ZSI6YPOwmrhgLCJwcm9maWxlLTI0LWFjdGl2ZSI6YPOwmrlgLCJwcm9maWxlLTI0LWluYWN0aXZlIjpg87CaumAsImNvbnZlcnQtMTItYWN0aXZlIjpg87CKv2AsImNvbnZlcnQtMTItaW5hY3RpdmUiOmDzsIuAYCwiY29udmVydC0xNi1hY3RpdmUiOmDzsIuBYCwiY29udmVydC0xNi1pbmFjdGl2ZSI6YPOwi4JgLCJjb252ZXJ0LTI0LWFjdGl2ZSI6YPOwi4NgLCJjb252ZXJ0LTI0LWluYWN0aXZlIjpg87CLhGAsImNsb3NlQ2FwdGlvbi0xMi1hY3RpdmUiOmDzsImHYCwiY2xvc2VDYXB0aW9uLTEyLWluYWN0aXZlIjpg87CJiGAsImNsb3NlQ2FwdGlvbi0xNi1hY3RpdmUiOmDzsImJYCwiY2xvc2VDYXB0aW9uLTE2LWluYWN0aXZlIjpg87CJimAsImNsb3NlQ2FwdGlvbi0yNC1hY3RpdmUiOmDzsImLYCwiY2xvc2VDYXB0aW9uLTI0LWluYWN0aXZlIjpg87CJjGAsInN0YXR1c0RvdC0xMi1hY3RpdmUiOmDzsJ+5YCwic3RhdHVzRG90LTEyLWluYWN0aXZlIjpg87CfumAsInN0YXR1c0RvdC0xNi1hY3RpdmUiOmDzsJ+7YCwic3RhdHVzRG90LTE2LWluYWN0aXZlIjpg87CfvGAsInN0YXR1c0RvdC0yNC1hY3RpdmUiOmDzsJ+9YCwic3RhdHVzRG90LTI0LWluYWN0aXZlIjpg87CfvmAsImNsb2NrT3V0bGluZS0xMi1hY3RpdmUiOmDzsIi7YCwiY2xvY2tPdXRsaW5lLTEyLWluYWN0aXZlIjpg87CIvGAsImNsb2NrT3V0bGluZS0xNi1hY3RpdmUiOmDzsIi9YCwiY2xvY2tPdXRsaW5lLTE2LWluYWN0aXZlIjpg87CIvmAsImNsb2NrT3V0bGluZS0yNC1hY3RpdmUiOmDzsIi/YCwiY2xvY2tPdXRsaW5lLTI0LWluYWN0aXZlIjpg87CJgGAsImdhdmVsLTEyLWFjdGl2ZSI6YPOwkbtgLCJnYXZlbC0xMi1pbmFjdGl2ZSI6YPOwkbxgLCJnYXZlbC0xNi1hY3RpdmUiOmDzsJG9YCwiZ2F2ZWwtMTYtaW5hY3RpdmUiOmDzsJG+YCwiZ2F2ZWwtMjQtYWN0aXZlIjpg87CRv2AsImdhdmVsLTI0LWluYWN0aXZlIjpg87CSgGAsImNsaXBib2FyZC0xMi1hY3RpdmUiOmDzsIivYCwiY2xpcGJvYXJkLTEyLWluYWN0aXZlIjpg87CIsGAsImNsaXBib2FyZC0xNi1hY3RpdmUiOmDzsIixYCwiY2xpcGJvYXJkLTE2LWluYWN0aXZlIjpg87CIsmAsImNsaXBib2FyZC0yNC1hY3RpdmUiOmDzsIizYCwiY2xpcGJvYXJkLTI0LWluYWN0aXZlIjpg87CItGAsImNpcmNsZUNyb3NzLTEyLWFjdGl2ZSI6YPOwiKNgLCJjaXJjbGVDcm9zcy0xMi1pbmFjdGl2ZSI6YPOwiKRgLCJjaXJjbGVDcm9zcy0xNi1hY3RpdmUiOmDzsIilYCwiY2lyY2xlQ3Jvc3MtMTYtaW5hY3RpdmUiOmDzsIimYCwiY2lyY2xlQ3Jvc3MtMjQtYWN0aXZlIjpg87CIp2AsImNpcmNsZUNyb3NzLTI0LWluYWN0aXZlIjpg87CIqGAsImNpcmNsZUNoZWNrbWFyay0xMi1hY3RpdmUiOmDzsIidYCwiY2lyY2xlQ2hlY2ttYXJrLTEyLWluYWN0aXZlIjpg87CInmAsImNpcmNsZUNoZWNrbWFyay0xNi1hY3RpdmUiOmDzsIifYCwiY2lyY2xlQ2hlY2ttYXJrLTE2LWluYWN0aXZlIjpg87CIoGAsImNpcmNsZUNoZWNrbWFyay0yNC1hY3RpdmUiOmDzsIihYCwiY2lyY2xlQ2hlY2ttYXJrLTI0LWluYWN0aXZlIjpg87CIomAsImNoZWNrbWFyay0xMi1hY3RpdmUiOmDzsIiXYCwiY2hlY2ttYXJrLTEyLWluYWN0aXZlIjpg87CImGAsImNoZWNrbWFyay0xNi1hY3RpdmUiOmDzsIiZYCwiY2hlY2ttYXJrLTE2LWluYWN0aXZlIjpg87CImmAsImNoZWNrbWFyay0yNC1hY3RpdmUiOmDzsIibYCwiY2hlY2ttYXJrLTI0LWluYWN0aXZlIjpg87CInGAsImNoZWNrYm94RW1wdHktMTItYWN0aXZlIjpg87CIkWAsImNoZWNrYm94RW1wdHktMTItaW5hY3RpdmUiOmDzsIiSYCwiY2hlY2tib3hFbXB0eS0xNi1hY3RpdmUiOmDzsIiTYCwiY2hlY2tib3hFbXB0eS0xNi1pbmFjdGl2ZSI6YPOwiJRgLCJjaGVja2JveEVtcHR5LTI0LWFjdGl2ZSI6YPOwiJVgLCJjaGVja2JveEVtcHR5LTI0LWluYWN0aXZlIjpg87CIlmAsImNoZWNrYm94Q2hlY2tlZC0xMi1hY3RpdmUiOmDzsIiLYCwiY2hlY2tib3hDaGVja2VkLTEyLWluYWN0aXZlIjpg87CIjGAsImNoZWNrYm94Q2hlY2tlZC0xNi1hY3RpdmUiOmDzsIiNYCwiY2hlY2tib3hDaGVja2VkLTE2LWluYWN0aXZlIjpg87CIjmAsImNoZWNrYm94Q2hlY2tlZC0yNC1hY3RpdmUiOmDzsIiPYCwiY2hlY2tib3hDaGVja2VkLTI0LWluYWN0aXZlIjpg87CIkGAsInB5cmFtaWQtMTItYWN0aXZlIjpg87Cbh2AsInB5cmFtaWQtMTItaW5hY3RpdmUiOmDzsJuIYCwicHlyYW1pZC0xNi1hY3RpdmUiOmDzsJuJYCwicHlyYW1pZC0xNi1pbmFjdGl2ZSI6YPOwm4pgLCJweXJhbWlkLTI0LWFjdGl2ZSI6YPOwm4tgLCJweXJhbWlkLTI0LWluYWN0aXZlIjpg87CbjGAsImNoYXRCdWJibGUtMTItYWN0aXZlIjpg87CIhWAsImNoYXRCdWJibGUtMTItaW5hY3RpdmUiOmDzsIiGYCwiY2hhdEJ1YmJsZS0xNi1hY3RpdmUiOmDzsIiHYCwiY2hhdEJ1YmJsZS0xNi1pbmFjdGl2ZSI6YPOwiIhgLCJjaGF0QnViYmxlLTI0LWFjdGl2ZSI6YPOwiIlgLCJjaGF0QnViYmxlLTI0LWluYWN0aXZlIjpg87CIimAsImNoYXRCb3RBZ2VudC0xMi1hY3RpdmUiOmDzsIe/YCwiY2hhdEJvdEFnZW50LTEyLWluYWN0aXZlIjpg87CIgGAsImNoYXRCb3RBZ2VudC0xNi1hY3RpdmUiOmDzsIiBYCwiY2hhdEJvdEFnZW50LTE2LWluYWN0aXZlIjpg87CIgmAsImNoYXRCb3RBZ2VudC0yNC1hY3RpdmUiOmDzsIiDYCwiY2hhdEJvdEFnZW50LTI0LWluYWN0aXZlIjpg87CIhGAsImluaXRpYXRvci0xMi1hY3RpdmUiOmDzsJSFYCwiaW5pdGlhdG9yLTEyLWluYWN0aXZlIjpg87CUhmAsImluaXRpYXRvci0xNi1hY3RpdmUiOmDzsJSHYCwiaW5pdGlhdG9yLTE2LWluYWN0aXZlIjpg87CUiGAsImluaXRpYXRvci0yNC1hY3RpdmUiOmDzsJSJYCwiaW5pdGlhdG9yLTI0LWluYWN0aXZlIjpg87CUimAsImFkZC0xMi1hY3RpdmUiOmDzsICNYCwiYWRkLTEyLWluYWN0aXZlIjpg87CAjmAsImFkZC0xNi1hY3RpdmUiOmDzsICPYCwiYWRkLTE2LWluYWN0aXZlIjpg87CAkGAsImFkZC0yNC1hY3RpdmUiOmDzsICRYCwiYWRkLTI0LWluYWN0aXZlIjpg87CAkmAsImNhc2hWaWV0bmFtZXNlRG9uZy0xMi1hY3RpdmUiOmDzsIePYCwiY2FzaFZpZXRuYW1lc2VEb25nLTEyLWluYWN0aXZlIjpg87CHkGAsImNhc2hWaWV0bmFtZXNlRG9uZy0xNi1hY3RpdmUiOmDzsIeRYCwiY2FzaFZpZXRuYW1lc2VEb25nLTE2LWluYWN0aXZlIjpg87CHkmAsImNhc2hWaWV0bmFtZXNlRG9uZy0yNC1hY3RpdmUiOmDzsIeTYCwiY2FzaFZpZXRuYW1lc2VEb25nLTI0LWluYWN0aXZlIjpg87CHlGAsImNhc2hVYWVEaXJoYW0tMTItYWN0aXZlIjpg87CHiWAsImNhc2hVYWVEaXJoYW0tMTItaW5hY3RpdmUiOmDzsIeKYCwiY2FzaFVhZURpcmhhbS0xNi1hY3RpdmUiOmDzsIeLYCwiY2FzaFVhZURpcmhhbS0xNi1pbmFjdGl2ZSI6YPOwh4xgLCJjYXNoVWFlRGlyaGFtLTI0LWFjdGl2ZSI6YPOwh41gLCJjYXNoVWFlRGlyaGFtLTI0LWluYWN0aXZlIjpg87CHjmAsImNhc2hUdXJraXNoTGlyYS0xMi1hY3RpdmUiOmDzsIa9YCwiY2FzaFR1cmtpc2hMaXJhLTEyLWluYWN0aXZlIjpg87CGvmAsImNhc2hUdXJraXNoTGlyYS0xNi1hY3RpdmUiOmDzsIa/YCwiY2FzaFR1cmtpc2hMaXJhLTE2LWluYWN0aXZlIjpg87CHgGAsImNhc2hUdXJraXNoTGlyYS0yNC1hY3RpdmUiOmDzsIeBYCwiY2FzaFR1cmtpc2hMaXJhLTI0LWluYWN0aXZlIjpg87CHgmAsImNhc2hTd2lzc0ZyYW5jLTEyLWFjdGl2ZSI6YPOwhrFgLCJjYXNoU3dpc3NGcmFuYy0xMi1pbmFjdGl2ZSI6YPOwhrJgLCJjYXNoU3dpc3NGcmFuYy0xNi1hY3RpdmUiOmDzsIazYCwiY2FzaFN3aXNzRnJhbmMtMTYtaW5hY3RpdmUiOmDzsIa0YCwiY2FzaFN3aXNzRnJhbmMtMjQtYWN0aXZlIjpg87CGtWAsImNhc2hTd2lzc0ZyYW5jLTI0LWluYWN0aXZlIjpg87CGtmAsImNhc2hFVVItMTItYWN0aXZlIjpg87CGgWAsImNhc2hFVVItMTItaW5hY3RpdmUiOmDzsIaCYCwiY2FzaEVVUi0xNi1hY3RpdmUiOmDzsIaDYCwiY2FzaEVVUi0xNi1pbmFjdGl2ZSI6YPOwhoRgLCJjYXNoRVVSLTI0LWFjdGl2ZSI6YPOwhoVgLCJjYXNoRVVSLTI0LWluYWN0aXZlIjpg87CGhmAsImdlbmVyYWxDaGFyYWN0ZXItMTItYWN0aXZlIjpg87CSh2AsImdlbmVyYWxDaGFyYWN0ZXItMTItaW5hY3RpdmUiOmDzsJKIYCwiZ2VuZXJhbENoYXJhY3Rlci0xNi1hY3RpdmUiOmDzsJKJYCwiZ2VuZXJhbENoYXJhY3Rlci0xNi1pbmFjdGl2ZSI6YPOwkopgLCJnZW5lcmFsQ2hhcmFjdGVyLTI0LWFjdGl2ZSI6YPOwkotgLCJnZW5lcmFsQ2hhcmFjdGVyLTI0LWluYWN0aXZlIjpg87CSjGAsImNhc2hQaGlsaXBwaW5lUGVzby0xMi1hY3RpdmUiOmDzsIaZYCwiY2FzaFBoaWxpcHBpbmVQZXNvLTEyLWluYWN0aXZlIjpg87CGmmAsImNhc2hQaGlsaXBwaW5lUGVzby0xNi1hY3RpdmUiOmDzsIabYCwiY2FzaFBoaWxpcHBpbmVQZXNvLTE2LWluYWN0aXZlIjpg87CGnGAsImNhc2hQaGlsaXBwaW5lUGVzby0yNC1hY3RpdmUiOmDzsIadYCwiY2FzaFBoaWxpcHBpbmVQZXNvLTI0LWluYWN0aXZlIjpg87CGnmAsImNhc2hHQlAtMTItYWN0aXZlIjpg87CGh2AsImNhc2hHQlAtMTItaW5hY3RpdmUiOmDzsIaIYCwiY2FzaEdCUC0xNi1hY3RpdmUiOmDzsIaJYCwiY2FzaEdCUC0xNi1pbmFjdGl2ZSI6YPOwhopgLCJjYXNoR0JQLTI0LWFjdGl2ZSI6YPOwhotgLCJjYXNoR0JQLTI0LWluYWN0aXZlIjpg87CGjGAsImNoYWluTGluay0xMi1hY3RpdmUiOmDzsIeVYCwiY2hhaW5MaW5rLTEyLWluYWN0aXZlIjpg87CHlmAsImNoYWluTGluay0xNi1hY3RpdmUiOmDzsIeXYCwiY2hhaW5MaW5rLTE2LWluYWN0aXZlIjpg87CHmGAsImNoYWluTGluay0yNC1hY3RpdmUiOmDzsIeZYCwiY2hhaW5MaW5rLTI0LWluYWN0aXZlIjpg87CHmmAsImNhc2hCcmF6aWxpYW5SZWFsLTEyLWFjdGl2ZSI6YPOwhalgLCJjYXNoQnJhemlsaWFuUmVhbC0xMi1pbmFjdGl2ZSI6YPOwhapgLCJjYXNoQnJhemlsaWFuUmVhbC0xNi1hY3RpdmUiOmDzsIWrYCwiY2FzaEJyYXppbGlhblJlYWwtMTYtaW5hY3RpdmUiOmDzsIWsYCwiY2FzaEJyYXppbGlhblJlYWwtMjQtYWN0aXZlIjpg87CFrWAsImNhc2hCcmF6aWxpYW5SZWFsLTI0LWluYWN0aXZlIjpg87CFrmAsInZpc2libGUtMTItYWN0aXZlIjpg87Cjl2AsInZpc2libGUtMTItaW5hY3RpdmUiOmDzsKOYYCwidmlzaWJsZS0xNi1hY3RpdmUiOmDzsKOZYCwidmlzaWJsZS0xNi1pbmFjdGl2ZSI6YPOwo5pgLCJ2aXNpYmxlLTI0LWFjdGl2ZSI6YPOwo5tgLCJ2aXNpYmxlLTI0LWluYWN0aXZlIjpg87CjnGAsImNhcmV0RG93bi0xMi1hY3RpdmUiOmDzsIWFYCwiY2FyZXREb3duLTEyLWluYWN0aXZlIjpg87CFhmAsImNhcmV0RG93bi0xNi1hY3RpdmUiOmDzsIWHYCwiY2FyZXREb3duLTE2LWluYWN0aXZlIjpg87CFiGAsImNhcmV0RG93bi0yNC1hY3RpdmUiOmDzsIWJYCwiY2FyZXREb3duLTI0LWluYWN0aXZlIjpg87CFimAsInNlZW4tMTItYWN0aXZlIjpg87Cdl2AsInNlZW4tMTItaW5hY3RpdmUiOmDzsJ2YYCwic2Vlbi0xNi1hY3RpdmUiOmDzsJ2ZYCwic2Vlbi0xNi1pbmFjdGl2ZSI6YPOwnZpgLCJzZWVuLTI0LWFjdGl2ZSI6YPOwnZtgLCJzZWVuLTI0LWluYWN0aXZlIjpg87CdnGAsIm5mdEJ1eS0xMi1hY3RpdmUiOmDzsJeRYCwibmZ0QnV5LTEyLWluYWN0aXZlIjpg87CXkmAsIm5mdEJ1eS0xNi1hY3RpdmUiOmDzsJeTYCwibmZ0QnV5LTE2LWluYWN0aXZlIjpg87CXlGAsIm5mdEJ1eS0yNC1hY3RpdmUiOmDzsJeVYCwibmZ0QnV5LTI0LWluYWN0aXZlIjpg87CXlmAsImJhY2tBcnJvdy0xMi1hY3RpdmUiOmDzsIKdYCwiYmFja0Fycm93LTEyLWluYWN0aXZlIjpg87CCnmAsImJhY2tBcnJvdy0xNi1hY3RpdmUiOmDzsIKfYCwiYmFja0Fycm93LTE2LWluYWN0aXZlIjpg87CCoGAsImJhY2tBcnJvdy0yNC1hY3RpdmUiOmDzsIKhYCwiYmFja0Fycm93LTI0LWluYWN0aXZlIjpg87CComAsImF2ZXJhZ2UtMTItYWN0aXZlIjpg87CCl2AsImF2ZXJhZ2UtMTItaW5hY3RpdmUiOmDzsIKYYCwiYXZlcmFnZS0xNi1hY3RpdmUiOmDzsIKZYCwiYXZlcmFnZS0xNi1pbmFjdGl2ZSI6YPOwgppgLCJhdmVyYWdlLTI0LWFjdGl2ZSI6YPOwgptgLCJhdmVyYWdlLTI0LWluYWN0aXZlIjpg87CCnGAsIndpZmktMTItYWN0aXZlIjpg87Cju2AsIndpZmktMTItaW5hY3RpdmUiOmDzsKO8YCwid2lmaS0xNi1hY3RpdmUiOmDzsKO9YCwid2lmaS0xNi1pbmFjdGl2ZSI6YPOwo75gLCJ3aWZpLTI0LWFjdGl2ZSI6YPOwo79gLCJ3aWZpLTI0LWluYWN0aXZlIjpg87CkgGAsImFycm93c1ZlcnRpY2FsLTEyLWFjdGl2ZSI6YPOwgbNgLCJhcnJvd3NWZXJ0aWNhbC0xMi1pbmFjdGl2ZSI6YPOwgbRgLCJhcnJvd3NWZXJ0aWNhbC0xNi1hY3RpdmUiOmDzsIG1YCwiYXJyb3dzVmVydGljYWwtMTYtaW5hY3RpdmUiOmDzsIG2YCwiYXJyb3dzVmVydGljYWwtMjQtYWN0aXZlIjpg87CBt2AsImFycm93c1ZlcnRpY2FsLTI0LWluYWN0aXZlIjpg87CBuGAsImRpc2NvcmRMb2dvLTEyLWFjdGl2ZSI6YPOwjZtgLCJkaXNjb3JkTG9nby0xMi1pbmFjdGl2ZSI6YPOwjZxgLCJkaXNjb3JkTG9nby0xNi1hY3RpdmUiOmDzsI2dYCwiZGlzY29yZExvZ28tMTYtaW5hY3RpdmUiOmDzsI2eYCwiZGlzY29yZExvZ28tMjQtYWN0aXZlIjpg87CNn2AsImRpc2NvcmRMb2dvLTI0LWluYWN0aXZlIjpg87CNoGAsImFydHdvcmstMTItYWN0aXZlIjpg87CBuWAsImFydHdvcmstMTItaW5hY3RpdmUiOmDzsIG6YCwiYXJ0d29yay0xNi1hY3RpdmUiOmDzsIG7YCwiYXJ0d29yay0xNi1pbmFjdGl2ZSI6YPOwgbxgLCJhcnR3b3JrLTI0LWFjdGl2ZSI6YPOwgb1gLCJhcnR3b3JrLTI0LWluYWN0aXZlIjpg87CBvmAsImRpcmVjdERlcG9zaXRJY29uLTEyLWFjdGl2ZSI6YPOwjZVgLCJkaXJlY3REZXBvc2l0SWNvbi0xMi1pbmFjdGl2ZSI6YPOwjZZgLCJkaXJlY3REZXBvc2l0SWNvbi0xNi1hY3RpdmUiOmDzsI2XYCwiZGlyZWN0RGVwb3NpdEljb24tMTYtaW5hY3RpdmUiOmDzsI2YYCwiZGlyZWN0RGVwb3NpdEljb24tMjQtYWN0aXZlIjpg87CNmWAsImRpcmVjdERlcG9zaXRJY29uLTI0LWluYWN0aXZlIjpg87CNmmAsImxpZ2h0bmluZ0JvbHQtMTItYWN0aXZlIjpg87CVk2AsImxpZ2h0bmluZ0JvbHQtMTItaW5hY3RpdmUiOmDzsJWUYCwibGlnaHRuaW5nQm9sdC0xNi1hY3RpdmUiOmDzsJWVYCwibGlnaHRuaW5nQm9sdC0xNi1pbmFjdGl2ZSI6YPOwlZZgLCJsaWdodG5pbmdCb2x0LTI0LWFjdGl2ZSI6YPOwlZdgLCJsaWdodG5pbmdCb2x0LTI0LWluYWN0aXZlIjpg87CVmGAsImFwaS0xMi1hY3RpdmUiOmDzsIC9YCwiYXBpLTEyLWluYWN0aXZlIjpg87CAvmAsImFwaS0xNi1hY3RpdmUiOmDzsIC/YCwiYXBpLTE2LWluYWN0aXZlIjpg87CBgGAsImFwaS0yNC1hY3RpdmUiOmDzsIGBYCwiYXBpLTI0LWluYWN0aXZlIjpg87CBgmAsImFycm93UmlnaHQtMTItYWN0aXZlIjpg87CBoWAsImFycm93UmlnaHQtMTItaW5hY3RpdmUiOmDzsIGiYCwiYXJyb3dSaWdodC0xNi1hY3RpdmUiOmDzsIGjYCwiYXJyb3dSaWdodC0xNi1pbmFjdGl2ZSI6YPOwgaRgLCJhcnJvd1JpZ2h0LTI0LWFjdGl2ZSI6YPOwgaVgLCJhcnJvd1JpZ2h0LTI0LWluYWN0aXZlIjpg87CBpmAsImFpcmRyb3AtMTItYWN0aXZlIjpg87CAq2AsImFpcmRyb3AtMTItaW5hY3RpdmUiOmDzsICsYCwiYWlyZHJvcC0xNi1hY3RpdmUiOmDzsICtYCwiYWlyZHJvcC0xNi1pbmFjdGl2ZSI6YPOwgK5gLCJhaXJkcm9wLTI0LWFjdGl2ZSI6YPOwgK9gLCJhaXJkcm9wLTI0LWluYWN0aXZlIjpg87CAsGAsImNhcmQtMTItYWN0aXZlIjpg87CEuWAsImNhcmQtMTItaW5hY3RpdmUiOmDzsIS6YCwiY2FyZC0xNi1hY3RpdmUiOmDzsIS7YCwiY2FyZC0xNi1pbmFjdGl2ZSI6YPOwhLxgLCJjYXJkLTI0LWFjdGl2ZSI6YPOwhL1gLCJjYXJkLTI0LWluYWN0aXZlIjpg87CEvmAsImJhbmstMTItYWN0aXZlIjpg87CCo2AsImJhbmstMTItaW5hY3RpdmUiOmDzsIKkYCwiYmFuay0xNi1hY3RpdmUiOmDzsIKlYCwiYmFuay0xNi1pbmFjdGl2ZSI6YPOwgqZgLCJiYW5rLTI0LWFjdGl2ZSI6YPOwgqdgLCJiYW5rLTI0LWluYWN0aXZlIjpg87CCqGAsInN0ZXA5LTEyLWFjdGl2ZSI6YPOwoLVgLCJzdGVwOS0xMi1pbmFjdGl2ZSI6YPOwoLZgLCJzdGVwOS0xNi1hY3RpdmUiOmDzsKC3YCwic3RlcDktMTYtaW5hY3RpdmUiOmDzsKC4YCwic3RlcDktMjQtYWN0aXZlIjpg87CguWAsInN0ZXA5LTI0LWluYWN0aXZlIjpg87CgumAsImluc3RhZ3JhbUxvZ28tMTItYWN0aXZlIjpg87CUi2AsImluc3RhZ3JhbUxvZ28tMTItaW5hY3RpdmUiOmDzsJSMYCwiaW5zdGFncmFtTG9nby0xNi1hY3RpdmUiOmDzsJSNYCwiaW5zdGFncmFtTG9nby0xNi1pbmFjdGl2ZSI6YPOwlI5gLCJpbnN0YWdyYW1Mb2dvLTI0LWFjdGl2ZSI6YPOwlI9gLCJpbnN0YWdyYW1Mb2dvLTI0LWluYWN0aXZlIjpg87CUkGAsImRyYWctMTItYWN0aXZlIjpg87COhWAsImRyYWctMTItaW5hY3RpdmUiOmDzsI6GYCwiZHJhZy0xNi1hY3RpdmUiOmDzsI6HYCwiZHJhZy0xNi1pbmFjdGl2ZSI6YPOwjohgLCJkcmFnLTI0LWFjdGl2ZSI6YPOwjolgLCJkcmFnLTI0LWluYWN0aXZlIjpg87COimAsImF2YXRhci0xMi1hY3RpdmUiOmDzsIKRYCwiYXZhdGFyLTEyLWluYWN0aXZlIjpg87CCkmAsImF2YXRhci0xNi1hY3RpdmUiOmDzsIKTYCwiYXZhdGFyLTE2LWluYWN0aXZlIjpg87CClGAsImF2YXRhci0yNC1hY3RpdmUiOmDzsIKVYCwiYXZhdGFyLTI0LWluYWN0aXZlIjpg87CClmAsInRodW1ic1VwLTEyLWFjdGl2ZSI6YPOwoatgLCJ0aHVtYnNVcC0xMi1pbmFjdGl2ZSI6YPOwoaxgLCJ0aHVtYnNVcC0xNi1hY3RpdmUiOmDzsKGtYCwidGh1bWJzVXAtMTYtaW5hY3RpdmUiOmDzsKGuYCwidGh1bWJzVXAtMjQtYWN0aXZlIjpg87Chr2AsInRodW1ic1VwLTI0LWluYWN0aXZlIjpg87ChsGAsInJlZ3VsYXRlZC0xMi1hY3RpdmUiOmDzsJu9YCwicmVndWxhdGVkLTEyLWluYWN0aXZlIjpg87CbvmAsInJlZ3VsYXRlZC0xNi1hY3RpdmUiOmDzsJu/YCwicmVndWxhdGVkLTE2LWluYWN0aXZlIjpg87CcgGAsInJlZ3VsYXRlZC0yNC1hY3RpdmUiOmDzsJyBYCwicmVndWxhdGVkLTI0LWluYWN0aXZlIjpg87CcgmAsImxvY2stMTItYWN0aXZlIjpg87CVpWAsImxvY2stMTItaW5hY3RpdmUiOmDzsJWmYCwibG9jay0xNi1hY3RpdmUiOmDzsJWnYCwibG9jay0xNi1pbmFjdGl2ZSI6YPOwlahgLCJsb2NrLTI0LWFjdGl2ZSI6YPOwlalgLCJsb2NrLTI0LWluYWN0aXZlIjpg87CVqmAsImFycm93TGVmdC0xMi1hY3RpdmUiOmDzsIGbYCwiYXJyb3dMZWZ0LTEyLWluYWN0aXZlIjpg87CBnGAsImFycm93TGVmdC0xNi1hY3RpdmUiOmDzsIGdYCwiYXJyb3dMZWZ0LTE2LWluYWN0aXZlIjpg87CBnmAsImFycm93TGVmdC0yNC1hY3RpdmUiOmDzsIGfYCwiYXJyb3dMZWZ0LTI0LWluYWN0aXZlIjpg87CBoGAsImNsb2NrLTEyLWFjdGl2ZSI6YPOwiLVgLCJjbG9jay0xMi1pbmFjdGl2ZSI6YPOwiLZgLCJjbG9jay0xNi1hY3RpdmUiOmDzsIi3YCwiY2xvY2stMTYtaW5hY3RpdmUiOmDzsIi4YCwiY2xvY2stMjQtYWN0aXZlIjpg87CIuWAsImNsb2NrLTI0LWluYWN0aXZlIjpg87CIumAsImJsb2NrY2hhaW4tMTItYWN0aXZlIjpg87CDq2AsImJsb2NrY2hhaW4tMTItaW5hY3RpdmUiOmDzsIOsYCwiYmxvY2tjaGFpbi0xNi1hY3RpdmUiOmDzsIOtYCwiYmxvY2tjaGFpbi0xNi1pbmFjdGl2ZSI6YPOwg65gLCJibG9ja2NoYWluLTI0LWFjdGl2ZSI6YPOwg69gLCJibG9ja2NoYWluLTI0LWluYWN0aXZlIjpg87CDsGAsInRlbGVwaG9uZS0xMi1hY3RpdmUiOmDzsKGZYCwidGVsZXBob25lLTEyLWluYWN0aXZlIjpg87ChmmAsInRlbGVwaG9uZS0xNi1hY3RpdmUiOmDzsKGbYCwidGVsZXBob25lLTE2LWluYWN0aXZlIjpg87ChnGAsInRlbGVwaG9uZS0yNC1hY3RpdmUiOmDzsKGdYCwidGVsZXBob25lLTI0LWluYWN0aXZlIjpg87ChnmAsInRyYW5zYWN0aW9ucy0xMi1hY3RpdmUiOmDzsKG9YCwidHJhbnNhY3Rpb25zLTEyLWluYWN0aXZlIjpg87ChvmAsInRyYW5zYWN0aW9ucy0xNi1hY3RpdmUiOmDzsKG/YCwidHJhbnNhY3Rpb25zLTE2LWluYWN0aXZlIjpg87CigGAsInRyYW5zYWN0aW9ucy0yNC1hY3RpdmUiOmDzsKKBYCwidHJhbnNhY3Rpb25zLTI0LWluYWN0aXZlIjpg87CigmAsImRpYWdvbmFsRG93bkFycm93LTEyLWFjdGl2ZSI6YPOwjLFgLCJkaWFnb25hbERvd25BcnJvdy0xMi1pbmFjdGl2ZSI6YPOwjLJgLCJkaWFnb25hbERvd25BcnJvdy0xNi1hY3RpdmUiOmDzsIyzYCwiZGlhZ29uYWxEb3duQXJyb3ctMTYtaW5hY3RpdmUiOmDzsIy0YCwiZGlhZ29uYWxEb3duQXJyb3ctMjQtYWN0aXZlIjpg87CMtWAsImRpYWdvbmFsRG93bkFycm93LTI0LWluYWN0aXZlIjpg87CMtmAsImNhcmV0VXAtMTItYWN0aXZlIjpg87CFl2AsImNhcmV0VXAtMTItaW5hY3RpdmUiOmDzsIWYYCwiY2FyZXRVcC0xNi1hY3RpdmUiOmDzsIWZYCwiY2FyZXRVcC0xNi1pbmFjdGl2ZSI6YPOwhZpgLCJjYXJldFVwLTI0LWFjdGl2ZSI6YPOwhZtgLCJjYXJldFVwLTI0LWluYWN0aXZlIjpg87CFnGAsImRvd25sb2FkLTEyLWFjdGl2ZSI6YPOwjb9gLCJkb3dubG9hZC0xMi1pbmFjdGl2ZSI6YPOwjoBgLCJkb3dubG9hZC0xNi1hY3RpdmUiOmDzsI6BYCwiZG93bmxvYWQtMTYtaW5hY3RpdmUiOmDzsI6CYCwiZG93bmxvYWQtMjQtYWN0aXZlIjpg87COg2AsImRvd25sb2FkLTI0LWluYWN0aXZlIjpg87COhGAsImFycm93VXAtMTItYWN0aXZlIjpg87CBp2AsImFycm93VXAtMTItaW5hY3RpdmUiOmDzsIGoYCwiYXJyb3dVcC0xNi1hY3RpdmUiOmDzsIGpYCwiYXJyb3dVcC0xNi1pbmFjdGl2ZSI6YPOwgapgLCJhcnJvd1VwLTI0LWFjdGl2ZSI6YPOwgatgLCJhcnJvd1VwLTI0LWluYWN0aXZlIjpg87CBrGAsIndhcm5pbmctMTItYWN0aXZlIjpg87CjtWAsIndhcm5pbmctMTItaW5hY3RpdmUiOmDzsKO2YCwid2FybmluZy0xNi1hY3RpdmUiOmDzsKO3YCwid2FybmluZy0xNi1pbmFjdGl2ZSI6YPOwo7hgLCJ3YXJuaW5nLTI0LWFjdGl2ZSI6YPOwo7lgLCJ3YXJuaW5nLTI0LWluYWN0aXZlIjpg87CjumAsImNvbnRpbnVvdXMtMTItYWN0aXZlIjpg87CKuWAsImNvbnRpbnVvdXMtMTItaW5hY3RpdmUiOmDzsIq6YCwiY29udGludW91cy0xNi1hY3RpdmUiOmDzsIq7YCwiY29udGludW91cy0xNi1pbmFjdGl2ZSI6YPOwirxgLCJjb250aW51b3VzLTI0LWFjdGl2ZSI6YPOwir1gLCJjb250aW51b3VzLTI0LWluYWN0aXZlIjpg87CKvmAsInVwQXJyb3ctMTItYWN0aXZlIjpg87Cis2AsInVwQXJyb3ctMTItaW5hY3RpdmUiOmDzsKK0YCwidXBBcnJvdy0xNi1hY3RpdmUiOmDzsKK1YCwidXBBcnJvdy0xNi1pbmFjdGl2ZSI6YPOworZgLCJ1cEFycm93LTI0LWFjdGl2ZSI6YPOwordgLCJ1cEFycm93LTI0LWluYWN0aXZlIjpg87CiuGAsInF1ZXN0aW9uTWFyay0xMi1hY3RpdmUiOmDzsJufYCwicXVlc3Rpb25NYXJrLTEyLWluYWN0aXZlIjpg87CboGAsInF1ZXN0aW9uTWFyay0xNi1hY3RpdmUiOmDzsJuhYCwicXVlc3Rpb25NYXJrLTE2LWluYWN0aXZlIjpg87CbomAsInF1ZXN0aW9uTWFyay0yNC1hY3RpdmUiOmDzsJujYCwicXVlc3Rpb25NYXJrLTI0LWluYWN0aXZlIjpg87CbpGAsImZpbHRlci0xMi1hY3RpdmUiOmDzsI+3YCwiZmlsdGVyLTEyLWluYWN0aXZlIjpg87CPuGAsImZpbHRlci0xNi1hY3RpdmUiOmDzsI+5YCwiZmlsdGVyLTE2LWluYWN0aXZlIjpg87CPumAsImZpbHRlci0yNC1hY3RpdmUiOmDzsI+7YCwiZmlsdGVyLTI0LWluYWN0aXZlIjpg87CPvGAsImFsbFRpbWVIaWdoLTEyLWFjdGl2ZSI6YPOwgLFgLCJhbGxUaW1lSGlnaC0xMi1pbmFjdGl2ZSI6YPOwgLJgLCJhbGxUaW1lSGlnaC0xNi1hY3RpdmUiOmDzsICzYCwiYWxsVGltZUhpZ2gtMTYtaW5hY3RpdmUiOmDzsIC0YCwiYWxsVGltZUhpZ2gtMjQtYWN0aXZlIjpg87CAtWAsImFsbFRpbWVIaWdoLTI0LWluYWN0aXZlIjpg87CAtmAsImNsb3NlLTEyLWFjdGl2ZSI6YPOwiYFgLCJjbG9zZS0xMi1pbmFjdGl2ZSI6YPOwiYJgLCJjbG9zZS0xNi1hY3RpdmUiOmDzsImDYCwiY2xvc2UtMTYtaW5hY3RpdmUiOmDzsImEYCwiY2xvc2UtMjQtYWN0aXZlIjpg87CJhWAsImNsb3NlLTI0LWluYWN0aXZlIjpg87CJhmAsImNhcmV0TGVmdC0xMi1hY3RpdmUiOmDzsIWLYCwiY2FyZXRMZWZ0LTEyLWluYWN0aXZlIjpg87CFjGAsImNhcmV0TGVmdC0xNi1hY3RpdmUiOmDzsIWNYCwiY2FyZXRMZWZ0LTE2LWluYWN0aXZlIjpg87CFjmAsImNhcmV0TGVmdC0yNC1hY3RpdmUiOmDzsIWPYCwiY2FyZXRMZWZ0LTI0LWluYWN0aXZlIjpg87CFkGAsImRleC0xMi1hY3RpdmUiOmDzsIyrYCwiZGV4LTEyLWluYWN0aXZlIjpg87CMrGAsImRleC0xNi1hY3RpdmUiOmDzsIytYCwiZGV4LTE2LWluYWN0aXZlIjpg87CMrmAsImRleC0yNC1hY3RpdmUiOmDzsIyvYCwiZGV4LTI0LWluYWN0aXZlIjpg87CMsGAsImJyaWVmY2FzZS0xMi1hY3RpdmUiOmDzsISPYCwiYnJpZWZjYXNlLTEyLWluYWN0aXZlIjpg87CEkGAsImJyaWVmY2FzZS0xNi1hY3RpdmUiOmDzsISRYCwiYnJpZWZjYXNlLTE2LWluYWN0aXZlIjpg87CEkmAsImJyaWVmY2FzZS0yNC1hY3RpdmUiOmDzsISTYCwiYnJpZWZjYXNlLTI0LWluYWN0aXZlIjpg87CElGAsInBhdXNlLTEyLWFjdGl2ZSI6YPOwmLdgLCJwYXVzZS0xMi1pbmFjdGl2ZSI6YPOwmLhgLCJwYXVzZS0xNi1hY3RpdmUiOmDzsJi5YCwicGF1c2UtMTYtaW5hY3RpdmUiOmDzsJi6YCwicGF1c2UtMjQtYWN0aXZlIjpg87CYu2AsInBhdXNlLTI0LWluYWN0aXZlIjpg87CYvGAsImlkZWFsLTEyLWFjdGl2ZSI6YPOwk61gLCJpZGVhbC0xMi1pbmFjdGl2ZSI6YPOwk65gLCJpZGVhbC0xNi1hY3RpdmUiOmDzsJOvYCwiaWRlYWwtMTYtaW5hY3RpdmUiOmDzsJOwYCwiaWRlYWwtMjQtYWN0aXZlIjpg87CTsWAsImlkZWFsLTI0LWluYWN0aXZlIjpg87CTsmAsImNhc2hJbmRvbmVzaWFuUnVwaWFoLTEyLWFjdGl2ZSI6YPOwho1gLCJjYXNoSW5kb25lc2lhblJ1cGlhaC0xMi1pbmFjdGl2ZSI6YPOwho5gLCJjYXNoSW5kb25lc2lhblJ1cGlhaC0xNi1hY3RpdmUiOmDzsIaPYCwiY2FzaEluZG9uZXNpYW5SdXBpYWgtMTYtaW5hY3RpdmUiOmDzsIaQYCwiY2FzaEluZG9uZXNpYW5SdXBpYWgtMjQtYWN0aXZlIjpg87CGkWAsImNhc2hJbmRvbmVzaWFuUnVwaWFoLTI0LWluYWN0aXZlIjpg87CGkmAsImNhcmV0UmlnaHQtMTItYWN0aXZlIjpg87CFkWAsImNhcmV0UmlnaHQtMTItaW5hY3RpdmUiOmDzsIWSYCwiY2FyZXRSaWdodC0xNi1hY3RpdmUiOmDzsIWTYCwiY2FyZXRSaWdodC0xNi1pbmFjdGl2ZSI6YPOwhZRgLCJjYXJldFJpZ2h0LTI0LWFjdGl2ZSI6YPOwhZVgLCJjYXJldFJpZ2h0LTI0LWluYWN0aXZlIjpg87CFlmAsImFycm93c0hvcml6b250YWwtMTItYWN0aXZlIjpg87CBrWAsImFycm93c0hvcml6b250YWwtMTItaW5hY3RpdmUiOmDzsIGuYCwiYXJyb3dzSG9yaXpvbnRhbC0xNi1hY3RpdmUiOmDzsIGvYCwiYXJyb3dzSG9yaXpvbnRhbC0xNi1pbmFjdGl2ZSI6YPOwgbBgLCJhcnJvd3NIb3Jpem9udGFsLTI0LWFjdGl2ZSI6YPOwgbFgLCJhcnJvd3NIb3Jpem9udGFsLTI0LWluYWN0aXZlIjpg87CBsmAsInNwZWFrZXItMTItYWN0aXZlIjpg87Cfm2AsInNwZWFrZXItMTItaW5hY3RpdmUiOmDzsJ+cYCwic3BlYWtlci0xNi1hY3RpdmUiOmDzsJ+dYCwic3BlYWtlci0xNi1pbmFjdGl2ZSI6YPOwn55gLCJzcGVha2VyLTI0LWFjdGl2ZSI6YPOwn59gLCJzcGVha2VyLTI0LWluYWN0aXZlIjpg87CfoGAsImNpcmN1bGF0aW5nU3VwcGx5LTEyLWFjdGl2ZSI6YPOwiKlgLCJjaXJjdWxhdGluZ1N1cHBseS0xMi1pbmFjdGl2ZSI6YPOwiKpgLCJjaXJjdWxhdGluZ1N1cHBseS0xNi1hY3RpdmUiOmDzsIirYCwiY2lyY3VsYXRpbmdTdXBwbHktMTYtaW5hY3RpdmUiOmDzsIisYCwiY2lyY3VsYXRpbmdTdXBwbHktMjQtYWN0aXZlIjpg87CIrWAsImNpcmN1bGF0aW5nU3VwcGx5LTI0LWluYWN0aXZlIjpg87CIrmAsImNhc2hBdXN0cmFsaWFuRG9sbGFyLTEyLWFjdGl2ZSI6YPOwhaNgLCJjYXNoQXVzdHJhbGlhbkRvbGxhci0xMi1pbmFjdGl2ZSI6YPOwhaRgLCJjYXNoQXVzdHJhbGlhbkRvbGxhci0xNi1hY3RpdmUiOmDzsIWlYCwiY2FzaEF1c3RyYWxpYW5Eb2xsYXItMTYtaW5hY3RpdmUiOmDzsIWmYCwiY2FzaEF1c3RyYWxpYW5Eb2xsYXItMjQtYWN0aXZlIjpg87CFp2AsImNhc2hBdXN0cmFsaWFuRG9sbGFyLTI0LWluYWN0aXZlIjpg87CFqGAsImNhbWVyYS0xMi1hY3RpdmUiOmDzsIStYCwiY2FtZXJhLTEyLWluYWN0aXZlIjpg87CErmAsImNhbWVyYS0xNi1hY3RpdmUiOmDzsISvYCwiY2FtZXJhLTE2LWluYWN0aXZlIjpg87CEsGAsImNhbWVyYS0yNC1hY3RpdmUiOmDzsISxYCwiY2FtZXJhLTI0LWluYWN0aXZlIjpg87CEsmAsImNoYXJ0TGluZS0xMi1hY3RpdmUiOmDzsIenYCwiY2hhcnRMaW5lLTEyLWluYWN0aXZlIjpg87CHqGAsImNoYXJ0TGluZS0xNi1hY3RpdmUiOmDzsIepYCwiY2hhcnRMaW5lLTE2LWluYWN0aXZlIjpg87CHqmAsImNoYXJ0TGluZS0yNC1hY3RpdmUiOmDzsIerYCwiY2hhcnRMaW5lLTI0LWluYWN0aXZlIjpg87CHrGAsInVubG9jay0xMi1hY3RpdmUiOmDzsKKtYCwidW5sb2NrLTEyLWluYWN0aXZlIjpg87CirmAsInVubG9jay0xNi1hY3RpdmUiOmDzsKKvYCwidW5sb2NrLTE2LWluYWN0aXZlIjpg87CisGAsInVubG9jay0yNC1hY3RpdmUiOmDzsKKxYCwidW5sb2NrLTI0LWluYWN0aXZlIjpg87CismAsImJyaWRnaW5nLTEyLWFjdGl2ZSI6YPOwhIlgLCJicmlkZ2luZy0xMi1pbmFjdGl2ZSI6YPOwhIpgLCJicmlkZ2luZy0xNi1hY3RpdmUiOmDzsISLYCwiYnJpZGdpbmctMTYtaW5hY3RpdmUiOmDzsISMYCwiYnJpZGdpbmctMjQtYWN0aXZlIjpg87CEjWAsImJyaWRnaW5nLTI0LWluYWN0aXZlIjpg87CEjmAsImNhc2hKUFktMTItYWN0aXZlIjpg87CGk2AsImNhc2hKUFktMTItaW5hY3RpdmUiOmDzsIaUYCwiY2FzaEpQWS0xNi1hY3RpdmUiOmDzsIaVYCwiY2FzaEpQWS0xNi1pbmFjdGl2ZSI6YPOwhpZgLCJjYXNoSlBZLTI0LWFjdGl2ZSI6YPOwhpdgLCJjYXNoSlBZLTI0LWluYWN0aXZlIjpg87CGmGAsImNvaW5iYXNlT25lLTEyLWFjdGl2ZSI6YPOwiatgLCJjb2luYmFzZU9uZS0xMi1pbmFjdGl2ZSI6YPOwiaxgLCJjb2luYmFzZU9uZS0xNi1hY3RpdmUiOmDzsImtYCwiY29pbmJhc2VPbmUtMTYtaW5hY3RpdmUiOmDzsImuYCwiY29pbmJhc2VPbmUtMjQtYWN0aXZlIjpg87CJr2AsImNvaW5iYXNlT25lLTI0LWluYWN0aXZlIjpg87CJsGAsImNhc2hTaW5nYXBvcmVEb2xsYXItMTItYWN0aXZlIjpg87CGq2AsImNhc2hTaW5nYXBvcmVEb2xsYXItMTItaW5hY3RpdmUiOmDzsIasYCwiY2FzaFNpbmdhcG9yZURvbGxhci0xNi1hY3RpdmUiOmDzsIatYCwiY2FzaFNpbmdhcG9yZURvbGxhci0xNi1pbmFjdGl2ZSI6YPOwhq5gLCJjYXNoU2luZ2Fwb3JlRG9sbGFyLTI0LWFjdGl2ZSI6YPOwhq9gLCJjYXNoU2luZ2Fwb3JlRG9sbGFyLTI0LWluYWN0aXZlIjpg87CGsGAsImNhc2hDYW5hZGlhbkRvbGxhci0xMi1hY3RpdmUiOmDzsIW1YCwiY2FzaENhbmFkaWFuRG9sbGFyLTEyLWluYWN0aXZlIjpg87CFtmAsImNhc2hDYW5hZGlhbkRvbGxhci0xNi1hY3RpdmUiOmDzsIW3YCwiY2FzaENhbmFkaWFuRG9sbGFyLTE2LWluYWN0aXZlIjpg87CFuGAsImNhc2hDYW5hZGlhbkRvbGxhci0yNC1hY3RpdmUiOmDzsIW5YCwiY2FzaENhbmFkaWFuRG9sbGFyLTI0LWluYWN0aXZlIjpg87CFumAsImZhdWNldC0xMi1hY3RpdmUiOmDzsI+rYCwiZmF1Y2V0LTEyLWluYWN0aXZlIjpg87CPrGAsImZhdWNldC0xNi1hY3RpdmUiOmDzsI+tYCwiZmF1Y2V0LTE2LWluYWN0aXZlIjpg87CPrmAsImZhdWNldC0yNC1hY3RpdmUiOmDzsI+vYCwiZmF1Y2V0LTI0LWluYWN0aXZlIjpg87CPsGAsInBhc3Nwb3J0LTEyLWFjdGl2ZSI6YPOwmLFgLCJwYXNzcG9ydC0xMi1pbmFjdGl2ZSI6YPOwmLJgLCJwYXNzcG9ydC0xNi1hY3RpdmUiOmDzsJizYCwicGFzc3BvcnQtMTYtaW5hY3RpdmUiOmDzsJi0YCwicGFzc3BvcnQtMjQtYWN0aXZlIjpg87CYtWAsInBhc3Nwb3J0LTI0LWluYWN0aXZlIjpg87CYtmAsImRlcml2YXRpdmVzLTEyLWFjdGl2ZSI6YPOwjI1gLCJkZXJpdmF0aXZlcy0xMi1pbmFjdGl2ZSI6YPOwjI5gLCJkZXJpdmF0aXZlcy0xNi1hY3RpdmUiOmDzsIyPYCwiZGVyaXZhdGl2ZXMtMTYtaW5hY3RpdmUiOmDzsIyQYCwiZGVyaXZhdGl2ZXMtMjQtYWN0aXZlIjpg87CMkWAsImRlcml2YXRpdmVzLTI0LWluYWN0aXZlIjpg87CMkmAsImJhc2UtMTItYWN0aXZlIjpg87CCr2AsImJhc2UtMTItaW5hY3RpdmUiOmDzsIKwYCwiYmFzZS0xNi1hY3RpdmUiOmDzsIKxYCwiYmFzZS0xNi1pbmFjdGl2ZSI6YPOwgrJgLCJiYXNlLTI0LWFjdGl2ZSI6YPOwgrNgLCJiYXNlLTI0LWluYWN0aXZlIjpg87CCtGAsImV2ZW50Q29udHJhY3RzLTEyLWFjdGl2ZSI6YPOwjq9gLCJldmVudENvbnRyYWN0cy0xMi1pbmFjdGl2ZSI6YPOwjrBgLCJldmVudENvbnRyYWN0cy0xNi1hY3RpdmUiOmDzsI6xYCwiZXZlbnRDb250cmFjdHMtMTYtaW5hY3RpdmUiOmDzsI6yYCwiZXZlbnRDb250cmFjdHMtMjQtYWN0aXZlIjpg87COs2AsImV2ZW50Q29udHJhY3RzLTI0LWluYWN0aXZlIjpg87COtGAsInBlcnBldHVhbFN3YXAtMTItYWN0aXZlIjpg87CZuWAsInBlcnBldHVhbFN3YXAtMTItaW5hY3RpdmUiOmDzsJm6YCwicGVycGV0dWFsU3dhcC0xNi1hY3RpdmUiOmDzsJm7YCwicGVycGV0dWFsU3dhcC0xNi1pbmFjdGl2ZSI6YPOwmbxgLCJwZXJwZXR1YWxTd2FwLTI0LWFjdGl2ZSI6YPOwmb1gLCJwZXJwZXR1YWxTd2FwLTI0LWluYWN0aXZlIjpg87CZvmAsInJvbGxpbmdTcG90LTEyLWFjdGl2ZSI6YPOwnKFgLCJyb2xsaW5nU3BvdC0xMi1pbmFjdGl2ZSI6YPOwnKJgLCJyb2xsaW5nU3BvdC0xNi1hY3RpdmUiOmDzsJyjYCwicm9sbGluZ1Nwb3QtMTYtaW5hY3RpdmUiOmDzsJykYCwicm9sbGluZ1Nwb3QtMjQtYWN0aXZlIjpg87CcpWAsInJvbGxpbmdTcG90LTI0LWluYWN0aXZlIjpg87CcpmAsImZvbGRlckFycm93LTEyLWFjdGl2ZSI6YPOwkI9gLCJmb2xkZXJBcnJvdy0xMi1pbmFjdGl2ZSI6YPOwkJBgLCJmb2xkZXJBcnJvdy0xNi1hY3RpdmUiOmDzsJCRYCwiZm9sZGVyQXJyb3ctMTYtaW5hY3RpdmUiOmDzsJCSYCwiZm9sZGVyQXJyb3ctMjQtYWN0aXZlIjpg87CQk2AsImZvbGRlckFycm93LTI0LWluYWN0aXZlIjpg87CQlGAsImZvbGRlci0xMi1hY3RpdmUiOmDzsJCJYCwiZm9sZGVyLTEyLWluYWN0aXZlIjpg87CQimAsImZvbGRlci0xNi1hY3RpdmUiOmDzsJCLYCwiZm9sZGVyLTE2LWluYWN0aXZlIjpg87CQjGAsImZvbGRlci0yNC1hY3RpdmUiOmDzsJCNYCwiZm9sZGVyLTI0LWluYWN0aXZlIjpg87CQjmAsInJlZ3VsYXRlZEZ1dHVyZXMtMTItYWN0aXZlIjpg87Ccg2AsInJlZ3VsYXRlZEZ1dHVyZXMtMTItaW5hY3RpdmUiOmDzsJyEYCwicmVndWxhdGVkRnV0dXJlcy0xNi1hY3RpdmUiOmDzsJyFYCwicmVndWxhdGVkRnV0dXJlcy0xNi1pbmFjdGl2ZSI6YPOwnIZgLCJyZWd1bGF0ZWRGdXR1cmVzLTI0LWFjdGl2ZSI6YPOwnIdgLCJyZWd1bGF0ZWRGdXR1cmVzLTI0LWluYWN0aXZlIjpg87CciGAsIm9wdGlvbnMtMTItYWN0aXZlIjpg87CXu2AsIm9wdGlvbnMtMTItaW5hY3RpdmUiOmDzsJe8YCwib3B0aW9ucy0xNi1hY3RpdmUiOmDzsJe9YCwib3B0aW9ucy0xNi1pbmFjdGl2ZSI6YPOwl75gLCJvcHRpb25zLTI0LWFjdGl2ZSI6YPOwl79gLCJvcHRpb25zLTI0LWluYWN0aXZlIjpg87CYgGAsImNvbXBhc3MtMTItYWN0aXZlIjpg87CKoWAsImNvbXBhc3MtMTItaW5hY3RpdmUiOmDzsIqiYCwiY29tcGFzcy0xNi1hY3RpdmUiOmDzsIqjYCwiY29tcGFzcy0xNi1pbmFjdGl2ZSI6YPOwiqRgLCJjb21wYXNzLTI0LWFjdGl2ZSI6YPOwiqVgLCJjb21wYXNzLTI0LWluYWN0aXZlIjpg87CKpmAsInNvcnREb3VibGVBcnJvdy0xMi1hY3RpdmUiOmDzsJ6rYCwic29ydERvdWJsZUFycm93LTEyLWluYWN0aXZlIjpg87CerGAsInNvcnREb3VibGVBcnJvdy0xNi1hY3RpdmUiOmDzsJ6tYCwic29ydERvdWJsZUFycm93LTE2LWluYWN0aXZlIjpg87CermAsInNvcnREb3VibGVBcnJvdy0yNC1hY3RpdmUiOmDzsJ6vYCwic29ydERvdWJsZUFycm93LTI0LWluYWN0aXZlIjpg87CesGAsIndhbGxldExvZ28tMTItYWN0aXZlIjpg87CjqWAsIndhbGxldExvZ28tMTItaW5hY3RpdmUiOmDzsKOqYCwid2FsbGV0TG9nby0xNi1hY3RpdmUiOmDzsKOrYCwid2FsbGV0TG9nby0xNi1pbmFjdGl2ZSI6YPOwo6xgLCJ3YWxsZXRMb2dvLTI0LWFjdGl2ZSI6YPOwo61gLCJ3YWxsZXRMb2dvLTI0LWluYWN0aXZlIjpg87CjrmAsImNvbW1lcmNlUHJvZHVjdC0xMi1hY3RpdmUiOmDzsIqbYCwiY29tbWVyY2VQcm9kdWN0LTEyLWluYWN0aXZlIjpg87CKnGAsImNvbW1lcmNlUHJvZHVjdC0xNi1hY3RpdmUiOmDzsIqdYCwiY29tbWVyY2VQcm9kdWN0LTE2LWluYWN0aXZlIjpg87CKnmAsImNvbW1lcmNlUHJvZHVjdC0yNC1hY3RpdmUiOmDzsIqfYCwiY29tbWVyY2VQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CKoGAsImtleS0xMi1hY3RpdmUiOmDzsJSvYCwia2V5LTEyLWluYWN0aXZlIjpg87CUsGAsImtleS0xNi1hY3RpdmUiOmDzsJSxYCwia2V5LTE2LWluYWN0aXZlIjpg87CUsmAsImtleS0yNC1hY3RpdmUiOmDzsJSzYCwia2V5LTI0LWluYWN0aXZlIjpg87CUtGAsImdhc0ZlZXMtMTItYWN0aXZlIjpg87CQv2AsImdhc0ZlZXMtMTItaW5hY3RpdmUiOmDzsJGAYCwiZ2FzRmVlcy0xNi1hY3RpdmUiOmDzsJGBYCwiZ2FzRmVlcy0xNi1pbmFjdGl2ZSI6YPOwkYJgLCJnYXNGZWVzLTI0LWFjdGl2ZSI6YPOwkYNgLCJnYXNGZWVzLTI0LWluYWN0aXZlIjpg87CRhGAsInNlY3VyaXR5S2V5LTEyLWFjdGl2ZSI6YPOwnYtgLCJzZWN1cml0eUtleS0xMi1pbmFjdGl2ZSI6YPOwnYxgLCJzZWN1cml0eUtleS0xNi1hY3RpdmUiOmDzsJ2NYCwic2VjdXJpdHlLZXktMTYtaW5hY3RpdmUiOmDzsJ2OYCwic2VjdXJpdHlLZXktMjQtYWN0aXZlIjpg87Cdj2AsInNlY3VyaXR5S2V5LTI0LWluYWN0aXZlIjpg87CdkGAsIndhYXNQcm9kdWN0LTEyLWFjdGl2ZSI6YPOwo51gLCJ3YWFzUHJvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwo55gLCJ3YWFzUHJvZHVjdC0xNi1hY3RpdmUiOmDzsKOfYCwid2Fhc1Byb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsKOgYCwid2Fhc1Byb2R1Y3QtMjQtYWN0aXZlIjpg87CjoWAsIndhYXNQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CjomAsInNpZ25pblByb2R1Y3QtMTItYWN0aXZlIjpg87Ceh2AsInNpZ25pblByb2R1Y3QtMTItaW5hY3RpdmUiOmDzsJ6IYCwic2lnbmluUHJvZHVjdC0xNi1hY3RpdmUiOmDzsJ6JYCwic2lnbmluUHJvZHVjdC0xNi1pbmFjdGl2ZSI6YPOwnopgLCJzaWduaW5Qcm9kdWN0LTI0LWFjdGl2ZSI6YPOwnotgLCJzaWduaW5Qcm9kdWN0LTI0LWluYWN0aXZlIjpg87CejGAsInJvc2V0dGFQcm9kdWN0LTEyLWFjdGl2ZSI6YPOwnKdgLCJyb3NldHRhUHJvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwnKhgLCJyb3NldHRhUHJvZHVjdC0xNi1hY3RpdmUiOmDzsJypYCwicm9zZXR0YVByb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsJyqYCwicm9zZXR0YVByb2R1Y3QtMjQtYWN0aXZlIjpg87Ccq2AsInJvc2V0dGFQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CcrGAsImV4Y2hhbmdlUHJvZHVjdC0xMi1hY3RpdmUiOmDzsI61YCwiZXhjaGFuZ2VQcm9kdWN0LTEyLWluYWN0aXZlIjpg87COtmAsImV4Y2hhbmdlUHJvZHVjdC0xNi1hY3RpdmUiOmDzsI63YCwiZXhjaGFuZ2VQcm9kdWN0LTE2LWluYWN0aXZlIjpg87COuGAsImV4Y2hhbmdlUHJvZHVjdC0yNC1hY3RpdmUiOmDzsI65YCwiZXhjaGFuZ2VQcm9kdWN0LTI0LWluYWN0aXZlIjpg87COumAsInByaW1lUG9kdWN0LTEyLWFjdGl2ZSI6YPOwmqNgLCJwcmltZVBvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwmqRgLCJwcmltZVBvZHVjdC0xNi1hY3RpdmUiOmDzsJqlYCwicHJpbWVQb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsJqmYCwicHJpbWVQb2R1Y3QtMjQtYWN0aXZlIjpg87Cap2AsInByaW1lUG9kdWN0LTI0LWluYWN0aXZlIjpg87CaqGAsImFkdmFuY2VkVHJhZGVQcm9kdWN0LTEyLWFjdGl2ZSI6YPOwgJ9gLCJhZHZhbmNlZFRyYWRlUHJvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwgKBgLCJhZHZhbmNlZFRyYWRlUHJvZHVjdC0xNi1hY3RpdmUiOmDzsIChYCwiYWR2YW5jZWRUcmFkZVByb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsICiYCwiYWR2YW5jZWRUcmFkZVByb2R1Y3QtMjQtYWN0aXZlIjpg87CAo2AsImFkdmFuY2VkVHJhZGVQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CApGAsInBheVByb2R1Y3QtMTItYWN0aXZlIjpg87CZg2AsInBheVByb2R1Y3QtMTItaW5hY3RpdmUiOmDzsJmEYCwicGF5UHJvZHVjdC0xNi1hY3RpdmUiOmDzsJmFYCwicGF5UHJvZHVjdC0xNi1pbmFjdGl2ZSI6YPOwmYZgLCJwYXlQcm9kdWN0LTI0LWFjdGl2ZSI6YPOwmYdgLCJwYXlQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CZiGAsInN0YWtpbmctMTItYWN0aXZlIjpg87CfrWAsInN0YWtpbmctMTItaW5hY3RpdmUiOmDzsJ+uYCwic3Rha2luZy0xNi1hY3RpdmUiOmDzsJ+vYCwic3Rha2luZy0xNi1pbmFjdGl2ZSI6YPOwn7BgLCJzdGFraW5nLTI0LWFjdGl2ZSI6YPOwn7FgLCJzdGFraW5nLTI0LWluYWN0aXZlIjpg87CfsmAsImNvaW5iYXNlLTEyLWFjdGl2ZSI6YPOwiZ9gLCJjb2luYmFzZS0xMi1pbmFjdGl2ZSI6YPOwiaBgLCJjb2luYmFzZS0xNi1hY3RpdmUiOmDzsImhYCwiY29pbmJhc2UtMTYtaW5hY3RpdmUiOmDzsImiYCwiY29pbmJhc2UtMjQtYWN0aXZlIjpg87CJo2AsImNvaW5iYXNlLTI0LWluYWN0aXZlIjpg87CJpGAsIm5vZGVQcm9kdWN0LTEyLWFjdGl2ZSI6YPOwl7VgLCJub2RlUHJvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwl7ZgLCJub2RlUHJvZHVjdC0xNi1hY3RpdmUiOmDzsJe3YCwibm9kZVByb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsJe4YCwibm9kZVByb2R1Y3QtMjQtYWN0aXZlIjpg87CXuWAsIm5vZGVQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CXumAsIndhbGxldFByb2R1Y3QtMTItYWN0aXZlIjpg87Cjr2AsIndhbGxldFByb2R1Y3QtMTItaW5hY3RpdmUiOmDzsKOwYCwid2FsbGV0UHJvZHVjdC0xNi1hY3RpdmUiOmDzsKOxYCwid2FsbGV0UHJvZHVjdC0xNi1pbmFjdGl2ZSI6YPOwo7JgLCJ3YWxsZXRQcm9kdWN0LTI0LWFjdGl2ZSI6YPOwo7NgLCJ3YWxsZXRQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CjtGAsImNvaW5iYXNlQ2FyZFByb2R1Y3QtMTItYWN0aXZlIjpg87CJpWAsImNvaW5iYXNlQ2FyZFByb2R1Y3QtMTItaW5hY3RpdmUiOmDzsImmYCwiY29pbmJhc2VDYXJkUHJvZHVjdC0xNi1hY3RpdmUiOmDzsImnYCwiY29pbmJhc2VDYXJkUHJvZHVjdC0xNi1pbmFjdGl2ZSI6YPOwiahgLCJjb2luYmFzZUNhcmRQcm9kdWN0LTI0LWFjdGl2ZSI6YPOwialgLCJjb2luYmFzZUNhcmRQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CJqmAsImN1c3RvZHlQcm9kdWN0LTEyLWFjdGl2ZSI6YPOwi6lgLCJjdXN0b2R5UHJvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwi6pgLCJjdXN0b2R5UHJvZHVjdC0xNi1hY3RpdmUiOmDzsIurYCwiY3VzdG9keVByb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsIusYCwiY3VzdG9keVByb2R1Y3QtMjQtYWN0aXZlIjpg87CLrWAsImN1c3RvZHlQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CLrmAsImxlYXJuaW5nUmV3YXJkc1Byb2R1Y3QtMTItYWN0aXZlIjpg87CVgWAsImxlYXJuaW5nUmV3YXJkc1Byb2R1Y3QtMTItaW5hY3RpdmUiOmDzsJWCYCwibGVhcm5pbmdSZXdhcmRzUHJvZHVjdC0xNi1hY3RpdmUiOmDzsJWDYCwibGVhcm5pbmdSZXdhcmRzUHJvZHVjdC0xNi1pbmFjdGl2ZSI6YPOwlYRgLCJsZWFybmluZ1Jld2FyZHNQcm9kdWN0LTI0LWFjdGl2ZSI6YPOwlYVgLCJsZWFybmluZ1Jld2FyZHNQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CVhmAsInJld2FyZHNQcm9kdWN0LTEyLWFjdGl2ZSI6YPOwnI9gLCJyZXdhcmRzUHJvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwnJBgLCJyZXdhcmRzUHJvZHVjdC0xNi1hY3RpdmUiOmDzsJyRYCwicmV3YXJkc1Byb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsJySYCwicmV3YXJkc1Byb2R1Y3QtMjQtYWN0aXZlIjpg87Cck2AsInJld2FyZHNQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CclGAsInZlbnR1cmVzUHJvZHVjdC0xMi1hY3RpdmUiOmDzsKK/YCwidmVudHVyZXNQcm9kdWN0LTEyLWluYWN0aXZlIjpg87CjgGAsInZlbnR1cmVzUHJvZHVjdC0xNi1hY3RpdmUiOmDzsKOBYCwidmVudHVyZXNQcm9kdWN0LTE2LWluYWN0aXZlIjpg87CjgmAsInZlbnR1cmVzUHJvZHVjdC0yNC1hY3RpdmUiOmDzsKODYCwidmVudHVyZXNQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CjhGAsImFzc2V0TWFuYWdlbWVudFByb2R1Y3QtMTItYWN0aXZlIjpg87CChWAsImFzc2V0TWFuYWdlbWVudFByb2R1Y3QtMTItaW5hY3RpdmUiOmDzsIKGYCwiYXNzZXRNYW5hZ2VtZW50UHJvZHVjdC0xNi1hY3RpdmUiOmDzsIKHYCwiYXNzZXRNYW5hZ2VtZW50UHJvZHVjdC0xNi1pbmFjdGl2ZSI6YPOwgohgLCJhc3NldE1hbmFnZW1lbnRQcm9kdWN0LTI0LWFjdGl2ZSI6YPOwgolgLCJhc3NldE1hbmFnZW1lbnRQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CCimAsImhlbHBDZW50ZXJQcm9kdWN0LTEyLWFjdGl2ZSI6YPOwk49gLCJoZWxwQ2VudGVyUHJvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwk5BgLCJoZWxwQ2VudGVyUHJvZHVjdC0xNi1hY3RpdmUiOmDzsJORYCwiaGVscENlbnRlclByb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsJOSYCwiaGVscENlbnRlclByb2R1Y3QtMjQtYWN0aXZlIjpg87CTk2AsImhlbHBDZW50ZXJQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CTlGAsImluc3RpdHV0aW9uYWxQcm9kdWN0LTEyLWFjdGl2ZSI6YPOwlJdgLCJpbnN0aXR1dGlvbmFsUHJvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwlJhgLCJpbnN0aXR1dGlvbmFsUHJvZHVjdC0xNi1hY3RpdmUiOmDzsJSZYCwiaW5zdGl0dXRpb25hbFByb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsJSaYCwiaW5zdGl0dXRpb25hbFByb2R1Y3QtMjQtYWN0aXZlIjpg87CUm2AsImluc3RpdHV0aW9uYWxQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CUnGAsImNvbXBsaWFuY2VQcm9kdWN0LTEyLWFjdGl2ZSI6YPOwiqdgLCJjb21wbGlhbmNlUHJvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwiqhgLCJjb21wbGlhbmNlUHJvZHVjdC0xNi1hY3RpdmUiOmDzsIqpYCwiY29tcGxpYW5jZVByb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsIqqYCwiY29tcGxpYW5jZVByb2R1Y3QtMjQtYWN0aXZlIjpg87CKq2AsImNvbXBsaWFuY2VQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CKrGAsImRlbGVnYXRlUHJvZHVjdC0xMi1hY3RpdmUiOmDzsIyBYCwiZGVsZWdhdGVQcm9kdWN0LTEyLWluYWN0aXZlIjpg87CMgmAsImRlbGVnYXRlUHJvZHVjdC0xNi1hY3RpdmUiOmDzsIyDYCwiZGVsZWdhdGVQcm9kdWN0LTE2LWluYWN0aXZlIjpg87CMhGAsImRlbGVnYXRlUHJvZHVjdC0yNC1hY3RpdmUiOmDzsIyFYCwiZGVsZWdhdGVQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CMhmAsImNsb3VkUHJvZHVjdC0xMi1hY3RpdmUiOmDzsImTYCwiY2xvdWRQcm9kdWN0LTEyLWluYWN0aXZlIjpg87CJlGAsImNsb3VkUHJvZHVjdC0xNi1hY3RpdmUiOmDzsImVYCwiY2xvdWRQcm9kdWN0LTE2LWluYWN0aXZlIjpg87CJlmAsImNsb3VkUHJvZHVjdC0yNC1hY3RpdmUiOmDzsImXYCwiY2xvdWRQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CJmGAsImFzc2V0SHViUHJvZHVjdC0xMi1hY3RpdmUiOmDzsIG/YCwiYXNzZXRIdWJQcm9kdWN0LTEyLWluYWN0aXZlIjpg87CCgGAsImFzc2V0SHViUHJvZHVjdC0xNi1hY3RpdmUiOmDzsIKBYCwiYXNzZXRIdWJQcm9kdWN0LTE2LWluYWN0aXZlIjpg87CCgmAsImFzc2V0SHViUHJvZHVjdC0yNC1hY3RpdmUiOmDzsIKDYCwiYXNzZXRIdWJQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CChGAsInByaXZhdGVDbGllbnRQcm9kdWN0LTEyLWFjdGl2ZSI6YPOwmqlgLCJwcml2YXRlQ2xpZW50UHJvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwmqpgLCJwcml2YXRlQ2xpZW50UHJvZHVjdC0xNi1hY3RpdmUiOmDzsJqrYCwicHJpdmF0ZUNsaWVudFByb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsJqsYCwicHJpdmF0ZUNsaWVudFByb2R1Y3QtMjQtYWN0aXZlIjpg87CarWAsInByaXZhdGVDbGllbnRQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CarmAsInBhcnRpY2lwYXRlUHJvZHVjdC0xMi1hY3RpdmUiOmDzsJirYCwicGFydGljaXBhdGVQcm9kdWN0LTEyLWluYWN0aXZlIjpg87CYrGAsInBhcnRpY2lwYXRlUHJvZHVjdC0xNi1hY3RpdmUiOmDzsJitYCwicGFydGljaXBhdGVQcm9kdWN0LTE2LWluYWN0aXZlIjpg87CYrmAsInBhcnRpY2lwYXRlUHJvZHVjdC0yNC1hY3RpdmUiOmDzsJivYCwicGFydGljaXBhdGVQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CYsGAsImVhcm5Qcm9kdWN0LTEyLWFjdGl2ZSI6YPOwjpdgLCJlYXJuUHJvZHVjdC0xMi1pbmFjdGl2ZSI6YPOwjphgLCJlYXJuUHJvZHVjdC0xNi1hY3RpdmUiOmDzsI6ZYCwiZWFyblByb2R1Y3QtMTYtaW5hY3RpdmUiOmDzsI6aYCwiZWFyblByb2R1Y3QtMjQtYWN0aXZlIjpg87COm2AsImVhcm5Qcm9kdWN0LTI0LWluYWN0aXZlIjpg87COnGAsIm5mdFByb2R1Y3QtMTItYWN0aXZlIjpg87CXnWAsIm5mdFByb2R1Y3QtMTItaW5hY3RpdmUiOmDzsJeeYCwibmZ0UHJvZHVjdC0xNi1hY3RpdmUiOmDzsJefYCwibmZ0UHJvZHVjdC0xNi1pbmFjdGl2ZSI6YPOwl6BgLCJuZnRQcm9kdWN0LTI0LWFjdGl2ZSI6YPOwl6FgLCJuZnRQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CXomAsImRhdGFNYXJrZXRwbGFjZVByb2R1Y3QtMTItYWN0aXZlIjpg87CLtWAsImRhdGFNYXJrZXRwbGFjZVByb2R1Y3QtMTItaW5hY3RpdmUiOmDzsIu2YCwiZGF0YU1hcmtldHBsYWNlUHJvZHVjdC0xNi1hY3RpdmUiOmDzsIu3YCwiZGF0YU1hcmtldHBsYWNlUHJvZHVjdC0xNi1pbmFjdGl2ZSI6YPOwi7hgLCJkYXRhTWFya2V0cGxhY2VQcm9kdWN0LTI0LWFjdGl2ZSI6YPOwi7lgLCJkYXRhTWFya2V0cGxhY2VQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CLumAsImRlcml2YXRpdmVzUHJvZHVjdC0xMi1hY3RpdmUiOmDzsIyTYCwiZGVyaXZhdGl2ZXNQcm9kdWN0LTEyLWluYWN0aXZlIjpg87CMlGAsImRlcml2YXRpdmVzUHJvZHVjdC0xNi1hY3RpdmUiOmDzsIyVYCwiZGVyaXZhdGl2ZXNQcm9kdWN0LTE2LWluYWN0aXZlIjpg87CMlmAsImRlcml2YXRpdmVzUHJvZHVjdC0yNC1hY3RpdmUiOmDzsIyXYCwiZGVyaXZhdGl2ZXNQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CMmGAsInByb1Byb2R1Y3QtMTItYWN0aXZlIjpg87Car2AsInByb1Byb2R1Y3QtMTItaW5hY3RpdmUiOmDzsJqwYCwicHJvUHJvZHVjdC0xNi1hY3RpdmUiOmDzsJqxYCwicHJvUHJvZHVjdC0xNi1pbmFjdGl2ZSI6YPOwmrJgLCJwcm9Qcm9kdWN0LTI0LWFjdGl2ZSI6YPOwmrNgLCJwcm9Qcm9kdWN0LTI0LWluYWN0aXZlIjpg87CatGAsImhlbHBDZW50ZXJRdWVzdGlvbk1hcmstMTItYWN0aXZlIjpg87CTlWAsImhlbHBDZW50ZXJRdWVzdGlvbk1hcmstMTItaW5hY3RpdmUiOmDzsJOWYCwiaGVscENlbnRlclF1ZXN0aW9uTWFyay0xNi1hY3RpdmUiOmDzsJOXYCwiaGVscENlbnRlclF1ZXN0aW9uTWFyay0xNi1pbmFjdGl2ZSI6YPOwk5hgLCJoZWxwQ2VudGVyUXVlc3Rpb25NYXJrLTI0LWFjdGl2ZSI6YPOwk5lgLCJoZWxwQ2VudGVyUXVlc3Rpb25NYXJrLTI0LWluYWN0aXZlIjpg87CTmmAsImdhdWdlRW1wdHktMTItYWN0aXZlIjpg87CRi2AsImdhdWdlRW1wdHktMTItaW5hY3RpdmUiOmDzsJGMYCwiZ2F1Z2VFbXB0eS0xNi1hY3RpdmUiOmDzsJGNYCwiZ2F1Z2VFbXB0eS0xNi1pbmFjdGl2ZSI6YPOwkY5gLCJnYXVnZUVtcHR5LTI0LWFjdGl2ZSI6YPOwkY9gLCJnYXVnZUVtcHR5LTI0LWluYWN0aXZlIjpg87CRkGAsImdhdWdlTG93LTEyLWFjdGl2ZSI6YPOwkaNgLCJnYXVnZUxvdy0xMi1pbmFjdGl2ZSI6YPOwkaRgLCJnYXVnZUxvdy0xNi1hY3RpdmUiOmDzsJGlYCwiZ2F1Z2VMb3ctMTYtaW5hY3RpdmUiOmDzsJGmYCwiZ2F1Z2VMb3ctMjQtYWN0aXZlIjpg87CRp2AsImdhdWdlTG93LTI0LWluYWN0aXZlIjpg87CRqGAsImdhdWdlTWVkaXVtLTEyLWFjdGl2ZSI6YPOwkbVgLCJnYXVnZU1lZGl1bS0xMi1pbmFjdGl2ZSI6YPOwkbZgLCJnYXVnZU1lZGl1bS0xNi1hY3RpdmUiOmDzsJG3YCwiZ2F1Z2VNZWRpdW0tMTYtaW5hY3RpdmUiOmDzsJG4YCwiZ2F1Z2VNZWRpdW0tMjQtYWN0aXZlIjpg87CRuWAsImdhdWdlTWVkaXVtLTI0LWluYWN0aXZlIjpg87CRumAsImNsdXN0ZXItMTItYWN0aXZlIjpg87CJmWAsImNsdXN0ZXItMTItaW5hY3RpdmUiOmDzsImaYCwiY2x1c3Rlci0xNi1hY3RpdmUiOmDzsImbYCwiY2x1c3Rlci0xNi1pbmFjdGl2ZSI6YPOwiZxgLCJjbHVzdGVyLTI0LWFjdGl2ZSI6YPOwiZ1gLCJjbHVzdGVyLTI0LWluYWN0aXZlIjpg87CJnmAsImJvcnJvd1Byb2R1Y3QtMTItYWN0aXZlIjpg87CEg2AsImJvcnJvd1Byb2R1Y3QtMTItaW5hY3RpdmUiOmDzsISEYCwiYm9ycm93UHJvZHVjdC0xNi1hY3RpdmUiOmDzsISFYCwiYm9ycm93UHJvZHVjdC0xNi1pbmFjdGl2ZSI6YPOwhIZgLCJib3Jyb3dQcm9kdWN0LTI0LWFjdGl2ZSI6YPOwhIdgLCJib3Jyb3dQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CEiGAsIm5vUm9ja2V0LTEyLWFjdGl2ZSI6YPOwl6lgLCJub1JvY2tldC0xMi1pbmFjdGl2ZSI6YPOwl6pgLCJub1JvY2tldC0xNi1hY3RpdmUiOmDzsJerYCwibm9Sb2NrZXQtMTYtaW5hY3RpdmUiOmDzsJesYCwibm9Sb2NrZXQtMjQtYWN0aXZlIjpg87CXrWAsIm5vUm9ja2V0LTI0LWluYWN0aXZlIjpg87CXrmAsImNvaW5iYXNlT25lTG9nby0xMi1hY3RpdmUiOmDzsIm3YCwiY29pbmJhc2VPbmVMb2dvLTEyLWluYWN0aXZlIjpg87CJuGAsImNvaW5iYXNlT25lTG9nby0xNi1hY3RpdmUiOmDzsIm5YCwiY29pbmJhc2VPbmVMb2dvLTE2LWluYWN0aXZlIjpg87CJumAsImNvaW5iYXNlT25lTG9nby0yNC1hY3RpdmUiOmDzsIm7YCwiY29pbmJhc2VPbmVMb2dvLTI0LWluYWN0aXZlIjpg87CJvGAsImNyeXB0by0xMi1hY3RpdmUiOmDzsIuRYCwiY3J5cHRvLTEyLWluYWN0aXZlIjpg87CLkmAsImNyeXB0by0xNi1hY3RpdmUiOmDzsIuTYCwiY3J5cHRvLTE2LWluYWN0aXZlIjpg87CLlGAsImNyeXB0by0yNC1hY3RpdmUiOmDzsIuVYCwiY3J5cHRvLTI0LWluYWN0aXZlIjpg87CLlmAsImxvZ291dC0xMi1hY3RpdmUiOmDzsJWxYCwibG9nb3V0LTEyLWluYWN0aXZlIjpg87CVsmAsImxvZ291dC0xNi1hY3RpdmUiOmDzsJWzYCwibG9nb3V0LTE2LWluYWN0aXZlIjpg87CVtGAsImxvZ291dC0yNC1hY3RpdmUiOmDzsJW1YCwibG9nb3V0LTI0LWluYWN0aXZlIjpg87CVtmAsImxvZ2luLTEyLWFjdGl2ZSI6YPOwlatgLCJsb2dpbi0xMi1pbmFjdGl2ZSI6YPOwlaxgLCJsb2dpbi0xNi1hY3RpdmUiOmDzsJWtYCwibG9naW4tMTYtaW5hY3RpdmUiOmDzsJWuYCwibG9naW4tMjQtYWN0aXZlIjpg87CVr2AsImxvZ2luLTI0LWluYWN0aXZlIjpg87CVsGAsImxpbmVDaGFydENyeXB0by0xMi1hY3RpdmUiOmDzsJWZYCwibGluZUNoYXJ0Q3J5cHRvLTEyLWluYWN0aXZlIjpg87CVmmAsImxpbmVDaGFydENyeXB0by0xNi1hY3RpdmUiOmDzsJWbYCwibGluZUNoYXJ0Q3J5cHRvLTE2LWluYWN0aXZlIjpg87CVnGAsImxpbmVDaGFydENyeXB0by0yNC1hY3RpdmUiOmDzsJWdYCwibGluZUNoYXJ0Q3J5cHRvLTI0LWluYWN0aXZlIjpg87CVnmAsImNhc2hDb2lucy0xMi1hY3RpdmUiOmDzsIW7YCwiY2FzaENvaW5zLTEyLWluYWN0aXZlIjpg87CFvGAsImNhc2hDb2lucy0xNi1hY3RpdmUiOmDzsIW9YCwiY2FzaENvaW5zLTE2LWluYWN0aXZlIjpg87CFvmAsImNhc2hDb2lucy0yNC1hY3RpdmUiOmDzsIW/YCwiY2FzaENvaW5zLTI0LWluYWN0aXZlIjpg87CGgGAsImFwaVBsdWctMTItYWN0aXZlIjpg87CBg2AsImFwaVBsdWctMTItaW5hY3RpdmUiOmDzsIGEYCwiYXBpUGx1Zy0xNi1hY3RpdmUiOmDzsIGFYCwiYXBpUGx1Zy0xNi1pbmFjdGl2ZSI6YPOwgYZgLCJhcGlQbHVnLTI0LWFjdGl2ZSI6YPOwgYdgLCJhcGlQbHVnLTI0LWluYWN0aXZlIjpg87CBiGAsImRldmVsb3BlclBsYXRmb3JtUHJvZHVjdC0xMi1hY3RpdmUiOmDzsIylYCwiZGV2ZWxvcGVyUGxhdGZvcm1Qcm9kdWN0LTEyLWluYWN0aXZlIjpg87CMpmAsImRldmVsb3BlclBsYXRmb3JtUHJvZHVjdC0xNi1hY3RpdmUiOmDzsIynYCwiZGV2ZWxvcGVyUGxhdGZvcm1Qcm9kdWN0LTE2LWluYWN0aXZlIjpg87CMqGAsImRldmVsb3BlclBsYXRmb3JtUHJvZHVjdC0yNC1hY3RpdmUiOmDzsIypYCwiZGV2ZWxvcGVyUGxhdGZvcm1Qcm9kdWN0LTI0LWluYWN0aXZlIjpg87CMqmAsImRldmVsb3BlckFQSVByb2R1Y3QtMTItYWN0aXZlIjpg87CMn2AsImRldmVsb3BlckFQSVByb2R1Y3QtMTItaW5hY3RpdmUiOmDzsIygYCwiZGV2ZWxvcGVyQVBJUHJvZHVjdC0xNi1hY3RpdmUiOmDzsIyhYCwiZGV2ZWxvcGVyQVBJUHJvZHVjdC0xNi1pbmFjdGl2ZSI6YPOwjKJgLCJkZXZlbG9wZXJBUElQcm9kdWN0LTI0LWFjdGl2ZSI6YPOwjKNgLCJkZXZlbG9wZXJBUElQcm9kdWN0LTI0LWluYWN0aXZlIjpg87CMpGAsImFkdmFuY2VkTWFya2V0U2VsZWN0b3ItMTItYWN0aXZlIjpg87CAmWAsImFkdmFuY2VkTWFya2V0U2VsZWN0b3ItMTItaW5hY3RpdmUiOmDzsICaYCwiYWR2YW5jZWRNYXJrZXRTZWxlY3Rvci0xNi1hY3RpdmUiOmDzsICbYCwiYWR2YW5jZWRNYXJrZXRTZWxlY3Rvci0xNi1pbmFjdGl2ZSI6YPOwgJxgLCJhZHZhbmNlZE1hcmtldFNlbGVjdG9yLTI0LWFjdGl2ZSI6YPOwgJ1gLCJhZHZhbmNlZE1hcmtldFNlbGVjdG9yLTI0LWluYWN0aXZlIjpg87CAnmAsInNlbmRSZWNlaXZlLTEyLWFjdGl2ZSI6YPOwnZ1gLCJzZW5kUmVjZWl2ZS0xMi1pbmFjdGl2ZSI6YPOwnZ5gLCJzZW5kUmVjZWl2ZS0xNi1hY3RpdmUiOmDzsJ2fYCwic2VuZFJlY2VpdmUtMTYtaW5hY3RpdmUiOmDzsJ2gYCwic2VuZFJlY2VpdmUtMjQtYWN0aXZlIjpg87CdoWAsInNlbmRSZWNlaXZlLTI0LWluYWN0aXZlIjpg87CdomAsInByaWNlQWxlcnRzLTEyLWFjdGl2ZSI6YPOwmpdgLCJwcmljZUFsZXJ0cy0xMi1pbmFjdGl2ZSI6YPOwmphgLCJwcmljZUFsZXJ0cy0xNi1hY3RpdmUiOmDzsJqZYCwicHJpY2VBbGVydHMtMTYtaW5hY3RpdmUiOmDzsJqaYCwicHJpY2VBbGVydHMtMjQtYWN0aXZlIjpg87Cam2AsInByaWNlQWxlcnRzLTI0LWluYWN0aXZlIjpg87CanGAsImZvbGRlck9wZW4tMTItYWN0aXZlIjpg87CQlWAsImZvbGRlck9wZW4tMTItaW5hY3RpdmUiOmDzsJCWYCwiZm9sZGVyT3Blbi0xNi1hY3RpdmUiOmDzsJCXYCwiZm9sZGVyT3Blbi0xNi1pbmFjdGl2ZSI6YPOwkJhgLCJmb2xkZXJPcGVuLTI0LWFjdGl2ZSI6YPOwkJlgLCJmb2xkZXJPcGVuLTI0LWluYWN0aXZlIjpg87CQmmAsInZlcmlmaWVkQmFkZ2UtMTItYWN0aXZlIjpg87CjhWAsInZlcmlmaWVkQmFkZ2UtMTItaW5hY3RpdmUiOmDzsKOGYCwidmVyaWZpZWRCYWRnZS0xNi1hY3RpdmUiOmDzsKOHYCwidmVyaWZpZWRCYWRnZS0xNi1pbmFjdGl2ZSI6YPOwo4hgLCJ2ZXJpZmllZEJhZGdlLTI0LWFjdGl2ZSI6YPOwo4lgLCJ2ZXJpZmllZEJhZGdlLTI0LWluYWN0aXZlIjpg87CjimAsImdhdWdlSGlnaC0xMi1hY3RpdmUiOmDzsJGRYCwiZ2F1Z2VIaWdoLTEyLWluYWN0aXZlIjpg87CRkmAsImdhdWdlSGlnaC0xNi1hY3RpdmUiOmDzsJGTYCwiZ2F1Z2VIaWdoLTE2LWluYWN0aXZlIjpg87CRlGAsImdhdWdlSGlnaC0yNC1hY3RpdmUiOmDzsJGVYCwiZ2F1Z2VIaWdoLTI0LWluYWN0aXZlIjpg87CRlmAsInN0YWdnZXJlZExpc3QtMTItYWN0aXZlIjpg87CfoWAsInN0YWdnZXJlZExpc3QtMTItaW5hY3RpdmUiOmDzsJ+iYCwic3RhZ2dlcmVkTGlzdC0xNi1hY3RpdmUiOmDzsJ+jYCwic3RhZ2dlcmVkTGlzdC0xNi1pbmFjdGl2ZSI6YPOwn6RgLCJzdGFnZ2VyZWRMaXN0LTI0LWFjdGl2ZSI6YPOwn6VgLCJzdGFnZ2VyZWRMaXN0LTI0LWluYWN0aXZlIjpg87CfpmAsImNhbmRsZXN0aWNrcy0xMi1hY3RpdmUiOmDzsISzYCwiY2FuZGxlc3RpY2tzLTEyLWluYWN0aXZlIjpg87CEtGAsImNhbmRsZXN0aWNrcy0xNi1hY3RpdmUiOmDzsIS1YCwiY2FuZGxlc3RpY2tzLTE2LWluYWN0aXZlIjpg87CEtmAsImNhbmRsZXN0aWNrcy0yNC1hY3RpdmUiOmDzsIS3YCwiY2FuZGxlc3RpY2tzLTI0LWluYWN0aXZlIjpg87CEuGAsIm9yZGVyQm9vay0xMi1hY3RpdmUiOmDzsJiBYCwib3JkZXJCb29rLTEyLWluYWN0aXZlIjpg87CYgmAsIm9yZGVyQm9vay0xNi1hY3RpdmUiOmDzsJiDYCwib3JkZXJCb29rLTE2LWluYWN0aXZlIjpg87CYhGAsIm9yZGVyQm9vay0yNC1hY3RpdmUiOmDzsJiFYCwib3JkZXJCb29rLTI0LWluYWN0aXZlIjpg87CYhmAsIm1pY3JvcGhvbmUtMTItYWN0aXZlIjpg87CWlWAsIm1pY3JvcGhvbmUtMTItaW5hY3RpdmUiOmDzsJaWYCwibWljcm9waG9uZS0xNi1hY3RpdmUiOmDzsJaXYCwibWljcm9waG9uZS0xNi1pbmFjdGl2ZSI6YPOwlphgLCJtaWNyb3Bob25lLTI0LWFjdGl2ZSI6YPOwlplgLCJtaWNyb3Bob25lLTI0LWluYWN0aXZlIjpg87CWmmAsImNhbGN1bGF0b3ItMTItYWN0aXZlIjpg87CEm2AsImNhbGN1bGF0b3ItMTItaW5hY3RpdmUiOmDzsIScYCwiY2FsY3VsYXRvci0xNi1hY3RpdmUiOmDzsISdYCwiY2FsY3VsYXRvci0xNi1pbmFjdGl2ZSI6YPOwhJ5gLCJjYWxjdWxhdG9yLTI0LWFjdGl2ZSI6YPOwhJ9gLCJjYWxjdWxhdG9yLTI0LWluYWN0aXZlIjpg87CEoGAsImdpZi0xMi1hY3RpdmUiOmDzsJKTYCwiZ2lmLTEyLWluYWN0aXZlIjpg87CSlGAsImdpZi0xNi1hY3RpdmUiOmDzsJKVYCwiZ2lmLTE2LWluYWN0aXZlIjpg87CSlmAsImdpZi0yNC1hY3RpdmUiOmDzsJKXYCwiZ2lmLTI0LWluYWN0aXZlIjpg87CSmGAsImltYWdlLTEyLWFjdGl2ZSI6YPOwk7lgLCJpbWFnZS0xMi1pbmFjdGl2ZSI6YPOwk7pgLCJpbWFnZS0xNi1hY3RpdmUiOmDzsJO7YCwiaW1hZ2UtMTYtaW5hY3RpdmUiOmDzsJO8YCwiaW1hZ2UtMjQtYWN0aXZlIjpg87CTvWAsImltYWdlLTI0LWluYWN0aXZlIjpg87CTvmAsInByaWNlQWxlcnRzQ2hlY2stMTItYWN0aXZlIjpg87CanWAsInByaWNlQWxlcnRzQ2hlY2stMTItaW5hY3RpdmUiOmDzsJqeYCwicHJpY2VBbGVydHNDaGVjay0xNi1hY3RpdmUiOmDzsJqfYCwicHJpY2VBbGVydHNDaGVjay0xNi1pbmFjdGl2ZSI6YPOwmqBgLCJwcmljZUFsZXJ0c0NoZWNrLTI0LWFjdGl2ZSI6YPOwmqFgLCJwcmljZUFsZXJ0c0NoZWNrLTI0LWluYWN0aXZlIjpg87CaomAsInZlcmlmaWVkUG9vbHMtMTItYWN0aXZlIjpg87Cji2AsInZlcmlmaWVkUG9vbHMtMTItaW5hY3RpdmUiOmDzsKOMYCwidmVyaWZpZWRQb29scy0xNi1hY3RpdmUiOmDzsKONYCwidmVyaWZpZWRQb29scy0xNi1pbmFjdGl2ZSI6YPOwo45gLCJ2ZXJpZmllZFBvb2xzLTI0LWFjdGl2ZSI6YPOwo49gLCJ2ZXJpZmllZFBvb2xzLTI0LWluYWN0aXZlIjpg87CjkGAsImJlbGxDaGVjay0xMi1hY3RpdmUiOmDzsIOfYCwiYmVsbENoZWNrLTEyLWluYWN0aXZlIjpg87CDoGAsImJlbGxDaGVjay0xNi1hY3RpdmUiOmDzsIOhYCwiYmVsbENoZWNrLTE2LWluYWN0aXZlIjpg87CDomAsImJlbGxDaGVjay0yNC1hY3RpdmUiOmDzsIOjYCwiYmVsbENoZWNrLTI0LWluYWN0aXZlIjpg87CDpGAsImJlbGxQbHVzLTEyLWFjdGl2ZSI6YPOwg6VgLCJiZWxsUGx1cy0xMi1pbmFjdGl2ZSI6YPOwg6ZgLCJiZWxsUGx1cy0xNi1hY3RpdmUiOmDzsIOnYCwiYmVsbFBsdXMtMTYtaW5hY3RpdmUiOmDzsIOoYCwiYmVsbFBsdXMtMjQtYWN0aXZlIjpg87CDqWAsImJlbGxQbHVzLTI0LWluYWN0aXZlIjpg87CDqmAsInNoaWVsZE91dGxpbmUtMTItYWN0aXZlIjpg87Cdu2AsInNoaWVsZE91dGxpbmUtMTItaW5hY3RpdmUiOmDzsJ28YCwic2hpZWxkT3V0bGluZS0xNi1hY3RpdmUiOmDzsJ29YCwic2hpZWxkT3V0bGluZS0xNi1pbmFjdGl2ZSI6YPOwnb5gLCJzaGllbGRPdXRsaW5lLTI0LWFjdGl2ZSI6YPOwnb9gLCJzaGllbGRPdXRsaW5lLTI0LWluYWN0aXZlIjpg87CegGAsImJhckNoYXJ0V2luZG93LTEyLWFjdGl2ZSI6YPOwgqlgLCJiYXJDaGFydFdpbmRvdy0xMi1pbmFjdGl2ZSI6YPOwgqpgLCJiYXJDaGFydFdpbmRvdy0xNi1hY3RpdmUiOmDzsIKrYCwiYmFyQ2hhcnRXaW5kb3ctMTYtaW5hY3RpdmUiOmDzsIKsYCwiYmFyQ2hhcnRXaW5kb3ctMjQtYWN0aXZlIjpg87CCrWAsImJhckNoYXJ0V2luZG93LTI0LWluYWN0aXZlIjpg87CCrmAsImdpdEh1YkxvZ28tMTItYWN0aXZlIjpg87CSpWAsImdpdEh1YkxvZ28tMTItaW5hY3RpdmUiOmDzsJKmYCwiZ2l0SHViTG9nby0xNi1hY3RpdmUiOmDzsJKnYCwiZ2l0SHViTG9nby0xNi1pbmFjdGl2ZSI6YPOwkqhgLCJnaXRIdWJMb2dvLTI0LWFjdGl2ZSI6YPOwkqlgLCJnaXRIdWJMb2dvLTI0LWluYWN0aXZlIjpg87CSqmAsImdvb2dsZUxvZ28tMTItYWN0aXZlIjpg87CSsWAsImdvb2dsZUxvZ28tMTItaW5hY3RpdmUiOmDzsJKyYCwiZ29vZ2xlTG9nby0xNi1hY3RpdmUiOmDzsJKzYCwiZ29vZ2xlTG9nby0xNi1pbmFjdGl2ZSI6YPOwkrRgLCJnb29nbGVMb2dvLTI0LWFjdGl2ZSI6YPOwkrVgLCJnb29nbGVMb2dvLTI0LWluYWN0aXZlIjpg87CStmAsImRlcml2YXRpdmVzUHJvZHVjdE5ldy0xMi1hY3RpdmUiOmDzsIyZYCwiZGVyaXZhdGl2ZXNQcm9kdWN0TmV3LTEyLWluYWN0aXZlIjpg87CMmmAsImRlcml2YXRpdmVzUHJvZHVjdE5ldy0xNi1hY3RpdmUiOmDzsIybYCwiZGVyaXZhdGl2ZXNQcm9kdWN0TmV3LTE2LWluYWN0aXZlIjpg87CMnGAsImRlcml2YXRpdmVzUHJvZHVjdE5ldy0yNC1hY3RpdmUiOmDzsIydYCwiZGVyaXZhdGl2ZXNQcm9kdWN0TmV3LTI0LWluYWN0aXZlIjpg87CMnmAsIm1pbnQtMTItYWN0aXZlIjpg87CWm2AsIm1pbnQtMTItaW5hY3RpdmUiOmDzsJacYCwibWludC0xNi1hY3RpdmUiOmDzsJadYCwibWludC0xNi1pbmFjdGl2ZSI6YPOwlp5gLCJtaW50LTI0LWFjdGl2ZSI6YPOwlp9gLCJtaW50LTI0LWluYWN0aXZlIjpg87CWoGAsInNvY2lhbFNoYXJlLTEyLWFjdGl2ZSI6YPOwnp9gLCJzb2NpYWxTaGFyZS0xMi1pbmFjdGl2ZSI6YPOwnqBgLCJzb2NpYWxTaGFyZS0xNi1hY3RpdmUiOmDzsJ6hYCwic29jaWFsU2hhcmUtMTYtaW5hY3RpdmUiOmDzsJ6iYCwic29jaWFsU2hhcmUtMjQtYWN0aXZlIjpg87Ceo2AsInNvY2lhbFNoYXJlLTI0LWluYWN0aXZlIjpg87CepGAsInNvY2lhbENoYXQtMTItYWN0aXZlIjpg87Cek2AsInNvY2lhbENoYXQtMTItaW5hY3RpdmUiOmDzsJ6UYCwic29jaWFsQ2hhdC0xNi1hY3RpdmUiOmDzsJ6VYCwic29jaWFsQ2hhdC0xNi1pbmFjdGl2ZSI6YPOwnpZgLCJzb2NpYWxDaGF0LTI0LWFjdGl2ZSI6YPOwnpdgLCJzb2NpYWxDaGF0LTI0LWluYWN0aXZlIjpg87CemGAsInNvY2lhbFJlc2hhcmUtMTItYWN0aXZlIjpg87CemWAsInNvY2lhbFJlc2hhcmUtMTItaW5hY3RpdmUiOmDzsJ6aYCwic29jaWFsUmVzaGFyZS0xNi1hY3RpdmUiOmDzsJ6bYCwic29jaWFsUmVzaGFyZS0xNi1pbmFjdGl2ZSI6YPOwnpxgLCJzb2NpYWxSZXNoYXJlLTI0LWFjdGl2ZSI6YPOwnp1gLCJzb2NpYWxSZXNoYXJlLTI0LWluYWN0aXZlIjpg87CenmAsImNhbGVuZGFyRW1wdHktMTItYWN0aXZlIjpg87CEp2AsImNhbGVuZGFyRW1wdHktMTItaW5hY3RpdmUiOmDzsISoYCwiY2FsZW5kYXJFbXB0eS0xNi1hY3RpdmUiOmDzsISpYCwiY2FsZW5kYXJFbXB0eS0xNi1pbmFjdGl2ZSI6YPOwhKpgLCJjYWxlbmRhckVtcHR5LTI0LWFjdGl2ZSI6YPOwhKtgLCJjYWxlbmRhckVtcHR5LTI0LWluYWN0aXZlIjpg87CErGAsInBheW1lbnRzLTEyLWFjdGl2ZSI6YPOwmY9gLCJwYXltZW50cy0xMi1pbmFjdGl2ZSI6YPOwmZBgLCJwYXltZW50cy0xNi1hY3RpdmUiOmDzsJmRYCwicGF5bWVudHMtMTYtaW5hY3RpdmUiOmDzsJmSYCwicGF5bWVudHMtMjQtYWN0aXZlIjpg87CZk2AsInBheW1lbnRzLTI0LWluYWN0aXZlIjpg87CZlGAsImdhdWdlSGlnaE1pZC0xMi1hY3RpdmUiOmDzsJGdYCwiZ2F1Z2VIaWdoTWlkLTEyLWluYWN0aXZlIjpg87CRnmAsImdhdWdlSGlnaE1pZC0xNi1hY3RpdmUiOmDzsJGfYCwiZ2F1Z2VIaWdoTWlkLTE2LWluYWN0aXZlIjpg87CRoGAsImdhdWdlSGlnaE1pZC0yNC1hY3RpdmUiOmDzsJGhYCwiZ2F1Z2VIaWdoTWlkLTI0LWluYWN0aXZlIjpg87CRomAsImNvbmNpZXJnZS0xMi1hY3RpdmUiOmDzsIqtYCwiY29uY2llcmdlLTEyLWluYWN0aXZlIjpg87CKrmAsImNvbmNpZXJnZS0xNi1hY3RpdmUiOmDzsIqvYCwiY29uY2llcmdlLTE2LWluYWN0aXZlIjpg87CKsGAsImNvbmNpZXJnZS0yNC1hY3RpdmUiOmDzsIqxYCwiY29uY2llcmdlLTI0LWluYWN0aXZlIjpg87CKsmAsImNvbmNpZXJnZUJlbGwtMTItYWN0aXZlIjpg87CKs2AsImNvbmNpZXJnZUJlbGwtMTItaW5hY3RpdmUiOmDzsIq0YCwiY29uY2llcmdlQmVsbC0xNi1hY3RpdmUiOmDzsIq1YCwiY29uY2llcmdlQmVsbC0xNi1pbmFjdGl2ZSI6YPOwirZgLCJjb25jaWVyZ2VCZWxsLTI0LWFjdGl2ZSI6YPOwirdgLCJjb25jaWVyZ2VCZWxsLTI0LWluYWN0aXZlIjpg87CKuGAsImNvaW5iYXNlUmV3YXJkcy0xMi1hY3RpdmUiOmDzsIm9YCwiY29pbmJhc2VSZXdhcmRzLTEyLWluYWN0aXZlIjpg87CJvmAsImNvaW5iYXNlUmV3YXJkcy0xNi1hY3RpdmUiOmDzsIm/YCwiY29pbmJhc2VSZXdhcmRzLTE2LWluYWN0aXZlIjpg87CKgGAsImNvaW5iYXNlUmV3YXJkcy0yNC1hY3RpdmUiOmDzsIqBYCwiY29pbmJhc2VSZXdhcmRzLTI0LWluYWN0aXZlIjpg87CKgmAsInBlb3BsZVN0YXItMTItYWN0aXZlIjpg87CZrWAsInBlb3BsZVN0YXItMTItaW5hY3RpdmUiOmDzsJmuYCwicGVvcGxlU3Rhci0xNi1hY3RpdmUiOmDzsJmvYCwicGVvcGxlU3Rhci0xNi1pbmFjdGl2ZSI6YPOwmbBgLCJwZW9wbGVTdGFyLTI0LWFjdGl2ZSI6YPOwmbFgLCJwZW9wbGVTdGFyLTI0LWluYWN0aXZlIjpg87CZsmAsImdhdWdlTG93TWlkLTEyLWFjdGl2ZSI6YPOwka9gLCJnYXVnZUxvd01pZC0xMi1pbmFjdGl2ZSI6YPOwkbBgLCJnYXVnZUxvd01pZC0xNi1hY3RpdmUiOmDzsJGxYCwiZ2F1Z2VMb3dNaWQtMTYtaW5hY3RpdmUiOmDzsJGyYCwiZ2F1Z2VMb3dNaWQtMjQtYWN0aXZlIjpg87CRs2AsImdhdWdlTG93TWlkLTI0LWluYWN0aXZlIjpg87CRtGAsImdhdWdlSGlnaExvdy0xMi1hY3RpdmUiOmDzsJGXYCwiZ2F1Z2VIaWdoTG93LTEyLWluYWN0aXZlIjpg87CRmGAsImdhdWdlSGlnaExvdy0xNi1hY3RpdmUiOmDzsJGZYCwiZ2F1Z2VIaWdoTG93LTE2LWluYWN0aXZlIjpg87CRmmAsImdhdWdlSGlnaExvdy0yNC1hY3RpdmUiOmDzsJGbYCwiZ2F1Z2VIaWdoTG93LTI0LWluYWN0aXZlIjpg87CRnGAsImdhdWdlTG93SGlnaC0xMi1hY3RpdmUiOmDzsJGpYCwiZ2F1Z2VMb3dIaWdoLTEyLWluYWN0aXZlIjpg87CRqmAsImdhdWdlTG93SGlnaC0xNi1hY3RpdmUiOmDzsJGrYCwiZ2F1Z2VMb3dIaWdoLTE2LWluYWN0aXZlIjpg87CRrGAsImdhdWdlTG93SGlnaC0yNC1hY3RpdmUiOmDzsJGtYCwiZ2F1Z2VMb3dIaWdoLTI0LWluYWN0aXZlIjpg87CRrmAsImNvaW5iYXNlT25lQ2FyZC0xMi1hY3RpdmUiOmDzsImxYCwiY29pbmJhc2VPbmVDYXJkLTEyLWluYWN0aXZlIjpg87CJsmAsImNvaW5iYXNlT25lQ2FyZC0xNi1hY3RpdmUiOmDzsImzYCwiY29pbmJhc2VPbmVDYXJkLTE2LWluYWN0aXZlIjpg87CJtGAsImNvaW5iYXNlT25lQ2FyZC0yNC1hY3RpdmUiOmDzsIm1YCwiY29pbmJhc2VPbmVDYXJkLTI0LWluYWN0aXZlIjpg87CJtmAsImRpYW1vbmRJbmNlbnRpdmVzLTEyLWFjdGl2ZSI6YPOwjYlgLCJkaWFtb25kSW5jZW50aXZlcy0xMi1pbmFjdGl2ZSI6YPOwjYpgLCJkaWFtb25kSW5jZW50aXZlcy0xNi1hY3RpdmUiOmDzsI2LYCwiZGlhbW9uZEluY2VudGl2ZXMtMTYtaW5hY3RpdmUiOmDzsI2MYCwiZGlhbW9uZEluY2VudGl2ZXMtMjQtYWN0aXZlIjpg87CNjWAsImRpYW1vbmRJbmNlbnRpdmVzLTI0LWluYWN0aXZlIjpg87CNjmAsImJhc2VGZWVkLTEyLWFjdGl2ZSI6YPOwgrtgLCJiYXNlRmVlZC0xMi1pbmFjdGl2ZSI6YPOwgrxgLCJiYXNlRmVlZC0xNi1hY3RpdmUiOmDzsIK9YCwiYmFzZUZlZWQtMTYtaW5hY3RpdmUiOmDzsIK+YCwiYmFzZUZlZWQtMjQtYWN0aXZlIjpg87CCv2AsImJhc2VGZWVkLTI0LWluYWN0aXZlIjpg87CDgGAsImJhc2VOb3RpZmljYXRpb24tMTItYWN0aXZlIjpg87CDgWAsImJhc2VOb3RpZmljYXRpb24tMTItaW5hY3RpdmUiOmDzsIOCYCwiYmFzZU5vdGlmaWNhdGlvbi0xNi1hY3RpdmUiOmDzsIODYCwiYmFzZU5vdGlmaWNhdGlvbi0xNi1pbmFjdGl2ZSI6YPOwg4RgLCJiYXNlTm90aWZpY2F0aW9uLTI0LWFjdGl2ZSI6YPOwg4VgLCJiYXNlTm90aWZpY2F0aW9uLTI0LWluYWN0aXZlIjpg87CDhmAsImJhc2VXYWxsZXQtMTItYWN0aXZlIjpg87CDk2AsImJhc2VXYWxsZXQtMTItaW5hY3RpdmUiOmDzsIOUYCwiYmFzZVdhbGxldC0xNi1hY3RpdmUiOmDzsIOVYCwiYmFzZVdhbGxldC0xNi1pbmFjdGl2ZSI6YPOwg5ZgLCJiYXNlV2FsbGV0LTI0LWFjdGl2ZSI6YPOwg5dgLCJiYXNlV2FsbGV0LTI0LWluYWN0aXZlIjpg87CDmGAsImJhc2VBcHBzLTEyLWFjdGl2ZSI6YPOwgrVgLCJiYXNlQXBwcy0xMi1pbmFjdGl2ZSI6YPOwgrZgLCJiYXNlQXBwcy0xNi1hY3RpdmUiOmDzsIK3YCwiYmFzZUFwcHMtMTYtaW5hY3RpdmUiOmDzsIK4YCwiYmFzZUFwcHMtMjQtYWN0aXZlIjpg87CCuWAsImJhc2VBcHBzLTI0LWluYWN0aXZlIjpg87CCumAsImJhc2VTcXVhcmUtMTItYWN0aXZlIjpg87CDh2AsImJhc2VTcXVhcmUtMTItaW5hY3RpdmUiOmDzsIOIYCwiYmFzZVNxdWFyZS0xNi1hY3RpdmUiOmDzsIOJYCwiYmFzZVNxdWFyZS0xNi1pbmFjdGl2ZSI6YPOwg4pgLCJiYXNlU3F1YXJlLTI0LWFjdGl2ZSI6YPOwg4tgLCJiYXNlU3F1YXJlLTI0LWluYWN0aXZlIjpg87CDjGAsImJhc2VUcmFuc2FjdC0xMi1hY3RpdmUiOmDzsIONYCwiYmFzZVRyYW5zYWN0LTEyLWluYWN0aXZlIjpg87CDjmAsImJhc2VUcmFuc2FjdC0xNi1hY3RpdmUiOmDzsIOPYCwiYmFzZVRyYW5zYWN0LTE2LWluYWN0aXZlIjpg87CDkGAsImJhc2VUcmFuc2FjdC0yNC1hY3RpdmUiOmDzsIORYCwiYmFzZVRyYW5zYWN0LTI0LWluYWN0aXZlIjpg87CDkmAsImRpbm5lclBsYXRlLTEyLWFjdGl2ZSI6YPOwpKVgLCJkaW5uZXJQbGF0ZS0xMi1pbmFjdGl2ZSI6YPOwpKZgLCJkaW5uZXJQbGF0ZS0xNi1hY3RpdmUiOmDzsKSnYCwiZGlubmVyUGxhdGUtMTYtaW5hY3RpdmUiOmDzsKSoYCwiZGlubmVyUGxhdGUtMjQtYWN0aXZlIjpg87CkqWAsImRpbm5lclBsYXRlLTI0LWluYWN0aXZlIjpg87CkqmAsIndlbGxuZXNzLTEyLWFjdGl2ZSI6YPOwpLdgLCJ3ZWxsbmVzcy0xMi1pbmFjdGl2ZSI6YPOwpLhgLCJ3ZWxsbmVzcy0xNi1hY3RpdmUiOmDzsKS5YCwid2VsbG5lc3MtMTYtaW5hY3RpdmUiOmDzsKS6YCwid2VsbG5lc3MtMjQtYWN0aXZlIjpg87Cku2AsIndlbGxuZXNzLTI0LWluYWN0aXZlIjpg87CkvGAsImNyb3NzLTEyLWFjdGl2ZSI6YPOwpJ9gLCJjcm9zcy0xMi1pbmFjdGl2ZSI6YPOwpKBgLCJjcm9zcy0xNi1hY3RpdmUiOmDzsKShYCwiY3Jvc3MtMTYtaW5hY3RpdmUiOmDzsKSiYCwiY3Jvc3MtMjQtYWN0aXZlIjpg87Cko2AsImNyb3NzLTI0LWluYWN0aXZlIjpg87CkpGAsImNhci0xMi1hY3RpdmUiOmDzsKSTYCwiY2FyLTEyLWluYWN0aXZlIjpg87CklGAsImNhci0xNi1hY3RpdmUiOmDzsKSVYCwiY2FyLTE2LWluYWN0aXZlIjpg87CklmAsImNhci0yNC1hY3RpdmUiOmDzsKSXYCwiY2FyLTI0LWluYWN0aXZlIjpg87CkmGAsInBsYW5lLTEyLWFjdGl2ZSI6YPOwpKtgLCJwbGFuZS0xMi1pbmFjdGl2ZSI6YPOwpKxgLCJwbGFuZS0xNi1hY3RpdmUiOmDzsKStYCwicGxhbmUtMTYtaW5hY3RpdmUiOmDzsKSuYCwicGxhbmUtMjQtYWN0aXZlIjpg87Ckr2AsInBsYW5lLTI0LWluYWN0aXZlIjpg87CksGAsImNsb3RoaW5nLTEyLWFjdGl2ZSI6YPOwpJlgLCJjbG90aGluZy0xMi1pbmFjdGl2ZSI6YPOwpJpgLCJjbG90aGluZy0xNi1hY3RpdmUiOmDzsKSbYCwiY2xvdGhpbmctMTYtaW5hY3RpdmUiOmDzsKScYCwiY2xvdGhpbmctMjQtYWN0aXZlIjpg87CknWAsImNsb3RoaW5nLTI0LWluYWN0aXZlIjpg87CknmAsInBvd2VyVG9vbC0xMi1hY3RpdmUiOmDzsKSxYCwicG93ZXJUb29sLTEyLWluYWN0aXZlIjpg87CksmAsInBvd2VyVG9vbC0xNi1hY3RpdmUiOmDzsKSzYCwicG93ZXJUb29sLTE2LWluYWN0aXZlIjpg87CktGAsInBvd2VyVG9vbC0yNC1hY3RpdmUiOmDzsKS1YCwicG93ZXJUb29sLTI0LWluYWN0aXZlIjpg87CktmAsImNvbXBvc2UtMTItYWN0aXZlIjpg87Clm2AsImNvbXBvc2UtMTItaW5hY3RpdmUiOmDzsKWcYCwiY29tcG9zZS0xNi1hY3RpdmUiOmDzsKWdYCwiY29tcG9zZS0xNi1pbmFjdGl2ZSI6YPOwpZ5gLCJjb21wb3NlLTI0LWFjdGl2ZSI6YPOwpZ9gLCJjb21wb3NlLTI0LWluYWN0aXZlIjpg87CloGAsImRhdGFTdGFjay0xMi1hY3RpdmUiOmDzsKWhYCwiZGF0YVN0YWNrLTEyLWluYWN0aXZlIjpg87ClomAsImRhdGFTdGFjay0xNi1hY3RpdmUiOmDzsKWjYCwiZGF0YVN0YWNrLTE2LWluYWN0aXZlIjpg87ClpGAsImRhdGFTdGFjay0yNC1hY3RpdmUiOmDzsKWlYCwiZGF0YVN0YWNrLTI0LWluYWN0aXZlIjpg87ClpmAsInBsdXNNaW51cy0xMi1hY3RpdmUiOmDzsKW5YCwicGx1c01pbnVzLTEyLWluYWN0aXZlIjpg87ClumAsInBsdXNNaW51cy0xNi1hY3RpdmUiOmDzsKW7YCwicGx1c01pbnVzLTE2LWluYWN0aXZlIjpg87ClvGAsInBsdXNNaW51cy0yNC1hY3RpdmUiOmDzsKW9YCwicGx1c01pbnVzLTI0LWluYWN0aXZlIjpg87ClvmAsInhMb2dvLTEyLWFjdGl2ZSI6YPOwpb9gLCJ4TG9nby0xMi1pbmFjdGl2ZSI6YPOwpoBgLCJ4TG9nby0xNi1hY3RpdmUiOmDzsKaBYCwieExvZ28tMTYtaW5hY3RpdmUiOmDzsKaCYCwieExvZ28tMjQtYWN0aXZlIjpg87Cmg2AsInhMb2dvLTI0LWluYWN0aXZlIjpg87CmhGAsInBhc3NLZXktMTItYWN0aXZlIjpg87Cls2AsInBhc3NLZXktMTItaW5hY3RpdmUiOmDzsKW0YCwicGFzc0tleS0xNi1hY3RpdmUiOmDzsKW1YCwicGFzc0tleS0xNi1pbmFjdGl2ZSI6YPOwpbZgLCJwYXNzS2V5LTI0LWFjdGl2ZSI6YPOwpbdgLCJwYXNzS2V5LTI0LWluYWN0aXZlIjpg87CluGAsImJlZ2lubmluZ0Fycm93LTEyLWFjdGl2ZSI6YPOwpYlgLCJiZWdpbm5pbmdBcnJvdy0xMi1pbmFjdGl2ZSI6YPOwpYpgLCJiZWdpbm5pbmdBcnJvdy0xNi1hY3RpdmUiOmDzsKWLYCwiYmVnaW5uaW5nQXJyb3ctMTYtaW5hY3RpdmUiOmDzsKWMYCwiYmVnaW5uaW5nQXJyb3ctMjQtYWN0aXZlIjpg87CljWAsImJlZ2lubmluZ0Fycm93LTI0LWluYWN0aXZlIjpg87CljmAsImVuZEFycm93LTEyLWFjdGl2ZSI6YPOwpa1gLCJlbmRBcnJvdy0xMi1pbmFjdGl2ZSI6YPOwpa5gLCJlbmRBcnJvdy0xNi1hY3RpdmUiOmDzsKWvYCwiZW5kQXJyb3ctMTYtaW5hY3RpdmUiOmDzsKWwYCwiZW5kQXJyb3ctMjQtYWN0aXZlIjpg87ClsWAsImVuZEFycm93LTI0LWluYWN0aXZlIjpg87ClsmAsImFwcGxlTG9nby0xMi1hY3RpdmUiOmDzsKS9YCwiYXBwbGVMb2dvLTEyLWluYWN0aXZlIjpg87CkvmAsImFwcGxlTG9nby0xNi1hY3RpdmUiOmDzsKS/YCwiYXBwbGVMb2dvLTE2LWluYWN0aXZlIjpg87ClgGAsImFwcGxlTG9nby0yNC1hY3RpdmUiOmDzsKWBYCwiYXBwbGVMb2dvLTI0LWluYWN0aXZlIjpg87ClgmAsImVhcm5SZXdhcmRzLTEyLWFjdGl2ZSI6YPOwpadgLCJlYXJuUmV3YXJkcy0xMi1pbmFjdGl2ZSI6YPOwpahgLCJlYXJuUmV3YXJkcy0xNi1hY3RpdmUiOmDzsKWpYCwiZWFyblJld2FyZHMtMTYtaW5hY3RpdmUiOmDzsKWqYCwiZWFyblJld2FyZHMtMjQtYWN0aXZlIjpg87Clq2AsImVhcm5SZXdhcmRzLTI0LWluYWN0aXZlIjpg87ClrGAsImJlYWtlci0xMi1hY3RpdmUiOmDzsKWDYCwiYmVha2VyLTEyLWluYWN0aXZlIjpg87ClhGAsImJlYWtlci0xNi1hY3RpdmUiOmDzsKWFYCwiYmVha2VyLTE2LWluYWN0aXZlIjpg87ClhmAsImJlYWtlci0yNC1hY3RpdmUiOmDzsKWHYCwiYmVha2VyLTI0LWluYWN0aXZlIjpg87CliGAsImJsb2NrLTEyLWFjdGl2ZSI6YPOwpY9gLCJibG9jay0xMi1pbmFjdGl2ZSI6YPOwpZBgLCJibG9jay0xNi1hY3RpdmUiOmDzsKWRYCwiYmxvY2stMTYtaW5hY3RpdmUiOmDzsKWSYCwiYmxvY2stMjQtYWN0aXZlIjpg87Clk2AsImJsb2NrLTI0LWluYWN0aXZlIjpg87CllGAsImNoYXRSZXF1ZXN0cy0xMi1hY3RpdmUiOmDzsKWVYCwiY2hhdFJlcXVlc3RzLTEyLWluYWN0aXZlIjpg87CllmAsImNoYXRSZXF1ZXN0cy0xNi1hY3RpdmUiOmDzsKWXYCwiY2hhdFJlcXVlc3RzLTE2LWluYWN0aXZlIjpg87ClmGAsImNoYXRSZXF1ZXN0cy0yNC1hY3RpdmUiOmDzsKWZYCwiY2hhdFJlcXVlc3RzLTI0LWluYWN0aXZlIjpg87ClmmAsImxlYWRDb2luLTEyLWFjdGl2ZSI6YPOwppFgLCJsZWFkQ29pbi0xMi1pbmFjdGl2ZSI6YPOwppJgLCJsZWFkQ29pbi0xNi1hY3RpdmUiOmDzsKaTYCwibGVhZENvaW4tMTYtaW5hY3RpdmUiOmDzsKaUYCwibGVhZENvaW4tMjQtYWN0aXZlIjpg87CmlWAsImxlYWRDb2luLTI0LWluYWN0aXZlIjpg87CmlmAsImxlYWRDaGFydC0xMi1hY3RpdmUiOmDzsKaLYCwibGVhZENoYXJ0LTEyLWluYWN0aXZlIjpg87CmjGAsImxlYWRDaGFydC0xNi1hY3RpdmUiOmDzsKaNYCwibGVhZENoYXJ0LTE2LWluYWN0aXZlIjpg87CmjmAsImxlYWRDaGFydC0yNC1hY3RpdmUiOmDzsKaPYCwibGVhZENoYXJ0LTI0LWluYWN0aXZlIjpg87CmkGAsImdyaWQtMTItYWN0aXZlIjpg87CmhWAsImdyaWQtMTItaW5hY3RpdmUiOmDzsKaGYCwiZ3JpZC0xNi1hY3RpdmUiOmDzsKaHYCwiZ3JpZC0xNi1pbmFjdGl2ZSI6YPOwpohgLCJncmlkLTI0LWFjdGl2ZSI6YPOwpolgLCJncmlkLTI0LWluYWN0aXZlIjpg87CmimAsImNvbW1lbnRQbHVzLTEyLWFjdGl2ZSI6YPOwppdgLCJjb21tZW50UGx1cy0xMi1pbmFjdGl2ZSI6YPOwpphgLCJjb21tZW50UGx1cy0xNi1hY3RpdmUiOmDzsKaZYCwiY29tbWVudFBsdXMtMTYtaW5hY3RpdmUiOmDzsKaaYCwiY29tbWVudFBsdXMtMjQtYWN0aXZlIjpg87Cmm2AsImNvbW1lbnRQbHVzLTI0LWluYWN0aXZlIjpg87CmnGAsInNhdmluZ3NCYW5rLTEyLWFjdGl2ZSI6YPOwpqNgLCJzYXZpbmdzQmFuay0xMi1pbmFjdGl2ZSI6YPOwpqRgLCJzYXZpbmdzQmFuay0xNi1hY3RpdmUiOmDzsKalYCwic2F2aW5nc0JhbmstMTYtaW5hY3RpdmUiOmDzsKamYCwic2F2aW5nc0JhbmstMjQtYWN0aXZlIjpg87Cmp2AsInNhdmluZ3NCYW5rLTI0LWluYWN0aXZlIjpg87CmqGAsImZzY3NQcm90ZWN0aW9uLTEyLWFjdGl2ZSI6YPOwpp1gLCJmc2NzUHJvdGVjdGlvbi0xMi1pbmFjdGl2ZSI6YPOwpp5gLCJmc2NzUHJvdGVjdGlvbi0xNi1hY3RpdmUiOmDzsKafYCwiZnNjc1Byb3RlY3Rpb24tMTYtaW5hY3RpdmUiOmDzsKagYCwiZnNjc1Byb3RlY3Rpb24tMjQtYWN0aXZlIjpg87CmoWAsImZzY3NQcm90ZWN0aW9uLTI0LWluYWN0aXZlIjpg87CmomAsImluc3RhbnRVbnN0YWtpbmdDbG9jay0xMi1hY3RpdmUiOmDzsKeTYCwiaW5zdGFudFVuc3Rha2luZ0Nsb2NrLTEyLWluYWN0aXZlIjpg87CnlGAsImluc3RhbnRVbnN0YWtpbmdDbG9jay0xNi1hY3RpdmUiOmDzsKeVYCwiaW5zdGFudFVuc3Rha2luZ0Nsb2NrLTE2LWluYWN0aXZlIjpg87CnlmAsImluc3RhbnRVbnN0YWtpbmdDbG9jay0yNC1hY3RpdmUiOmDzsKeXYCwiaW5zdGFudFVuc3Rha2luZ0Nsb2NrLTI0LWluYWN0aXZlIjpg87CnmGAsImF1dG8tMTItYWN0aXZlIjpg87Cmr2AsImF1dG8tMTItaW5hY3RpdmUiOmDzsKawYCwiYXV0by0xNi1hY3RpdmUiOmDzsKaxYCwiYXV0by0xNi1pbmFjdGl2ZSI6YPOwprJgLCJhdXRvLTI0LWFjdGl2ZSI6YPOwprNgLCJhdXRvLTI0LWluYWN0aXZlIjpg87CmtGAsImNyZWF0b3JDb2luLTEyLWFjdGl2ZSI6YPOwp4FgLCJjcmVhdG9yQ29pbi0xMi1pbmFjdGl2ZSI6YPOwp4JgLCJjcmVhdG9yQ29pbi0xNi1hY3RpdmUiOmDzsKeDYCwiY3JlYXRvckNvaW4tMTYtaW5hY3RpdmUiOmDzsKeEYCwiY3JlYXRvckNvaW4tMjQtYWN0aXZlIjpg87CnhWAsImNyZWF0b3JDb2luLTI0LWluYWN0aXZlIjpg87CnhmAsImFsbG9jYXRpb24tMTItYWN0aXZlIjpg87CmqWAsImFsbG9jYXRpb24tMTItaW5hY3RpdmUiOmDzsKaqYCwiYWxsb2NhdGlvbi0xNi1hY3RpdmUiOmDzsKarYCwiYWxsb2NhdGlvbi0xNi1pbmFjdGl2ZSI6YPOwpqxgLCJhbGxvY2F0aW9uLTI0LWFjdGl2ZSI6YPOwpq1gLCJhbGxvY2F0aW9uLTI0LWluYWN0aXZlIjpg87CmrmAsImJhc2VWZXJpZmljYXRpb24tMTItYWN0aXZlIjpg87CmtWAsImJhc2VWZXJpZmljYXRpb24tMTItaW5hY3RpdmUiOmDzsKa2YCwiYmFzZVZlcmlmaWNhdGlvbi0xNi1hY3RpdmUiOmDzsKa3YCwiYmFzZVZlcmlmaWNhdGlvbi0xNi1pbmFjdGl2ZSI6YPOwprhgLCJiYXNlVmVyaWZpY2F0aW9uLTI0LWFjdGl2ZSI6YPOwprlgLCJiYXNlVmVyaWZpY2F0aW9uLTI0LWluYWN0aXZlIjpg87CmumAsImRpc3RyaWJ1dGlvbi0xMi1hY3RpdmUiOmDzsKeNYCwiZGlzdHJpYnV0aW9uLTEyLWluYWN0aXZlIjpg87CnjmAsImRpc3RyaWJ1dGlvbi0xNi1hY3RpdmUiOmDzsKePYCwiZGlzdHJpYnV0aW9uLTE2LWluYWN0aXZlIjpg87CnkGAsImRpc3RyaWJ1dGlvbi0yNC1hY3RpdmUiOmDzsKeRYCwiZGlzdHJpYnV0aW9uLTI0LWluYWN0aXZlIjpg87CnkmAsImRpc2FibGVkUGhvbmUtMTItYWN0aXZlIjpg87Cnh2AsImRpc2FibGVkUGhvbmUtMTItaW5hY3RpdmUiOmDzsKeIYCwiZGlzYWJsZWRQaG9uZS0xNi1hY3RpdmUiOmDzsKeJYCwiZGlzYWJsZWRQaG9uZS0xNi1pbmFjdGl2ZSI6YPOwp4pgLCJkaXNhYmxlZFBob25lLTI0LWFjdGl2ZSI6YPOwp4tgLCJkaXNhYmxlZFBob25lLTI0LWluYWN0aXZlIjpg87CnjGAsImNvbmZpZy0xMi1hY3RpdmUiOmDzsKa7YCwiY29uZmlnLTEyLWluYWN0aXZlIjpg87CmvGAsImNvbmZpZy0xNi1hY3RpdmUiOmDzsKa9YCwiY29uZmlnLTE2LWluYWN0aXZlIjpg87CmvmAsImNvbmZpZy0yNC1hY3RpdmUiOmDzsKa/YCwiY29uZmlnLTI0LWluYWN0aXZlIjpg87CngGAsImxvY2F0aW9uLTEyLWFjdGl2ZSI6YPOwp5lgLCJsb2NhdGlvbi0xMi1pbmFjdGl2ZSI6YPOwp5pgLCJsb2NhdGlvbi0xNi1hY3RpdmUiOmDzsKebYCwibG9jYXRpb24tMTYtaW5hY3RpdmUiOmDzsKecYCwibG9jYXRpb24tMjQtYWN0aXZlIjpg87CnnWAsImxvY2F0aW9uLTI0LWluYWN0aXZlIjpg87CnnmAsInVuZm9sbG93UGVvcGxlLTEyLWFjdGl2ZSI6YPOwp6VgLCJ1bmZvbGxvd1Blb3BsZS0xMi1pbmFjdGl2ZSI6YPOwp6ZgLCJ1bmZvbGxvd1Blb3BsZS0xNi1hY3RpdmUiOmDzsKenYCwidW5mb2xsb3dQZW9wbGUtMTYtaW5hY3RpdmUiOmDzsKeoYCwidW5mb2xsb3dQZW9wbGUtMjQtYWN0aXZlIjpg87CnqWAsInVuZm9sbG93UGVvcGxlLTI0LWluYWN0aXZlIjpg87CnqmAsInRva2VuU2FsZXMtMTItYWN0aXZlIjpg87Cnn2AsInRva2VuU2FsZXMtMTItaW5hY3RpdmUiOmDzsKegYCwidG9rZW5TYWxlcy0xNi1hY3RpdmUiOmDzsKehYCwidG9rZW5TYWxlcy0xNi1pbmFjdGl2ZSI6YPOwp6JgLCJ0b2tlblNhbGVzLTI0LWFjdGl2ZSI6YPOwp6NgLCJ0b2tlblNhbGVzLTI0LWluYWN0aXZlIjpg87CnpGAsImJhc2VRdWlja0J1eS0xMi1hY3RpdmUiOmDzsKerYCwiYmFzZVF1aWNrQnV5LTEyLWluYWN0aXZlIjpg87CnrGAsImJhc2VRdWlja0J1eS0xNi1hY3RpdmUiOmDzsKetYCwiYmFzZVF1aWNrQnV5LTE2LWluYWN0aXZlIjpg87CnrmAsImJhc2VRdWlja0J1eS0yNC1hY3RpdmUiOmDzsKevYCwiYmFzZVF1aWNrQnV5LTI0LWluYWN0aXZlIjpg87CnsGAsImFycm93c1VwRG93bi0xMi1hY3RpdmUiOmDzsKexYCwiYXJyb3dzVXBEb3duLTEyLWluYWN0aXZlIjpg87CnsmAsImFycm93c1VwRG93bi0xNi1hY3RpdmUiOmDzsKezYCwiYXJyb3dzVXBEb3duLTE2LWluYWN0aXZlIjpg87CntGAsImFycm93c1VwRG93bi0yNC1hY3RpdmUiOmDzsKe1YCwiYXJyb3dzVXBEb3duLTI0LWluYWN0aXZlIjpg87CntmAsIm1vbmV5Q2FyZENvaW4tMTItYWN0aXZlIjpg87Coj2AsIm1vbmV5Q2FyZENvaW4tMTItaW5hY3RpdmUiOmDzsKiQYCwibW9uZXlDYXJkQ29pbi0xNi1hY3RpdmUiOmDzsKiRYCwibW9uZXlDYXJkQ29pbi0xNi1pbmFjdGl2ZSI6YPOwqJJgLCJtb25leUNhcmRDb2luLTI0LWFjdGl2ZSI6YPOwqJNgLCJtb25leUNhcmRDb2luLTI0LWluYWN0aXZlIjpg87ColGAsInNpbmdsZUNvaW4tMTItYWN0aXZlIjpg87Com2AsInNpbmdsZUNvaW4tMTItaW5hY3RpdmUiOmDzsKicYCwic2luZ2xlQ29pbi0xNi1hY3RpdmUiOmDzsKidYCwic2luZ2xlQ29pbi0xNi1pbmFjdGl2ZSI6YPOwqJ5gLCJzaW5nbGVDb2luLTI0LWFjdGl2ZSI6YPOwqJ9gLCJzaW5nbGVDb2luLTI0LWluYWN0aXZlIjpg87CooGAsImNhbGVuZGFyQmxhbmstMTItYWN0aXZlIjpg87Cnt2AsImNhbGVuZGFyQmxhbmstMTItaW5hY3RpdmUiOmDzsKe4YCwiY2FsZW5kYXJCbGFuay0xNi1hY3RpdmUiOmDzsKe5YCwiY2FsZW5kYXJCbGFuay0xNi1pbmFjdGl2ZSI6YPOwp7pgLCJjYWxlbmRhckJsYW5rLTI0LWFjdGl2ZSI6YPOwp7tgLCJjYWxlbmRhckJsYW5rLTI0LWluYWN0aXZlIjpg87CnvGAsInBpZUNoYXJ0RGF0YS0xMi1hY3RpdmUiOmDzsKiVYCwicGllQ2hhcnREYXRhLTEyLWluYWN0aXZlIjpg87ColmAsInBpZUNoYXJ0RGF0YS0xNi1hY3RpdmUiOmDzsKiXYCwicGllQ2hhcnREYXRhLTE2LWluYWN0aXZlIjpg87ComGAsInBpZUNoYXJ0RGF0YS0yNC1hY3RpdmUiOmDzsKiZYCwicGllQ2hhcnREYXRhLTI0LWluYWN0aXZlIjpg87CommAsImNvaW5zQ3J5cHRvLTEyLWFjdGl2ZSI6YPOwp71gLCJjb2luc0NyeXB0by0xMi1pbmFjdGl2ZSI6YPOwp75gLCJjb2luc0NyeXB0by0xNi1hY3RpdmUiOmDzsKe/YCwiY29pbnNDcnlwdG8tMTYtaW5hY3RpdmUiOmDzsKiAYCwiY29pbnNDcnlwdG8tMjQtYWN0aXZlIjpg87CogWAsImNvaW5zQ3J5cHRvLTI0LWluYWN0aXZlIjpg87CogmAsImNyeXN0YWxCYWxsSW5zaWdodC0xMi1hY3RpdmUiOmDzsKiDYCwiY3J5c3RhbEJhbGxJbnNpZ2h0LTEyLWluYWN0aXZlIjpg87CohGAsImNyeXN0YWxCYWxsSW5zaWdodC0xNi1hY3RpdmUiOmDzsKiFYCwiY3J5c3RhbEJhbGxJbnNpZ2h0LTE2LWluYWN0aXZlIjpg87CohmAsImNyeXN0YWxCYWxsSW5zaWdodC0yNC1hY3RpdmUiOmDzsKiHYCwiY3J5c3RhbEJhbGxJbnNpZ2h0LTI0LWluYWN0aXZlIjpg87CoiGAsImxvb3AtMTItYWN0aXZlIjpg87CoiWAsImxvb3AtMTItaW5hY3RpdmUiOmDzsKiKYCwibG9vcC0xNi1hY3RpdmUiOmDzsKiLYCwibG9vcC0xNi1pbmFjdGl2ZSI6YPOwqIxgLCJsb29wLTI0LWFjdGl2ZSI6YPOwqI1gLCJsb29wLTI0LWluYWN0aXZlIjpg87CojmAsInJvYm90LTEyLWFjdGl2ZSI6YPOwqKFgLCJyb2JvdC0xMi1pbmFjdGl2ZSI6YPOwqKJgLCJyb2JvdC0xNi1hY3RpdmUiOmDzsKijYCwicm9ib3QtMTYtaW5hY3RpdmUiOmDzsKikYCwicm9ib3QtMjQtYWN0aXZlIjpg87CopWAsInJvYm90LTI0LWluYWN0aXZlIjpg87CopmAsInRlc3QtMTItYWN0aXZlIjpg87CwpWAsInRlc3QtMTItaW5hY3RpdmUiOmDzsLCmYCwidGVzdC0xNi1hY3RpdmUiOmDzsLCnYCwidGVzdC0xNi1pbmFjdGl2ZSI6YPOwsKhgLCJ0ZXN0LTI0LWFjdGl2ZSI6YPOwsKlgLCJ0ZXN0LTI0LWluYWN0aXZlIjpg87CwqmAsInRva2VuTGF1bmNoQ29pbi0xMi1hY3RpdmUiOmDzsLCxYCwidG9rZW5MYXVuY2hDb2luLTEyLWluYWN0aXZlIjpg87CwsmAsInRva2VuTGF1bmNoQ29pbi0xNi1hY3RpdmUiOmDzsLCzYCwidG9rZW5MYXVuY2hDb2luLTE2LWluYWN0aXZlIjpg87CwtGAsInRva2VuTGF1bmNoQ29pbi0yNC1hY3RpdmUiOmDzsLC1YCwidG9rZW5MYXVuY2hDb2luLTI0LWluYWN0aXZlIjpg87CwtmAsImZvb3RiYWxsLTEyLWFjdGl2ZSI6YPOwq7NgLCJmb290YmFsbC0xMi1pbmFjdGl2ZSI6YPOwq7RgLCJmb290YmFsbC0xNi1hY3RpdmUiOmDzsKu1YCwiZm9vdGJhbGwtMTYtaW5hY3RpdmUiOmDzsKu2YCwiZm9vdGJhbGwtMjQtYWN0aXZlIjpg87Crt2AsImZvb3RiYWxsLTI0LWluYWN0aXZlIjpg87CruGAsIm1tYS0xMi1hY3RpdmUiOmDzsK2BYCwibW1hLTEyLWluYWN0aXZlIjpg87CtgmAsIm1tYS0xNi1hY3RpdmUiOmDzsK2DYCwibW1hLTE2LWluYWN0aXZlIjpg87CthGAsIm1tYS0yNC1hY3RpdmUiOmDzsK2FYCwibW1hLTI0LWluYWN0aXZlIjpg87CthmAsImhvY2tleS0xMi1hY3RpdmUiOmDzsKyRYCwiaG9ja2V5LTEyLWluYWN0aXZlIjpg87CskmAsImhvY2tleS0xNi1hY3RpdmUiOmDzsKyTYCwiaG9ja2V5LTE2LWluYWN0aXZlIjpg87CslGAsImhvY2tleS0yNC1hY3RpdmUiOmDzsKyVYCwiaG9ja2V5LTI0LWluYWN0aXZlIjpg87CslmAsImNoZXNzLTEyLWFjdGl2ZSI6YPOwqqtgLCJjaGVzcy0xMi1pbmFjdGl2ZSI6YPOwqqxgLCJjaGVzcy0xNi1hY3RpdmUiOmDzsKqtYCwiY2hlc3MtMTYtaW5hY3RpdmUiOmDzsKquYCwiY2hlc3MtMjQtYWN0aXZlIjpg87Cqr2AsImNoZXNzLTI0LWluYWN0aXZlIjpg87CqsGAsInNvY2Nlci0xMi1hY3RpdmUiOmDzsK+vYCwic29jY2VyLTEyLWluYWN0aXZlIjpg87CvsGAsInNvY2Nlci0xNi1hY3RpdmUiOmDzsK+xYCwic29jY2VyLTE2LWluYWN0aXZlIjpg87CvsmAsInNvY2Nlci0yNC1hY3RpdmUiOmDzsK+zYCwic29jY2VyLTI0LWluYWN0aXZlIjpg87CvtGAsInRlbm5pcy0xMi1hY3RpdmUiOmDzsLCfYCwidGVubmlzLTEyLWluYWN0aXZlIjpg87CwoGAsInRlbm5pcy0xNi1hY3RpdmUiOmDzsLChYCwidGVubmlzLTE2LWluYWN0aXZlIjpg87CwomAsInRlbm5pcy0yNC1hY3RpdmUiOmDzsLCjYCwidGVubmlzLTI0LWluYWN0aXZlIjpg87CwpGAsImNyaWNrZXQtMTItYWN0aXZlIjpg87CriWAsImNyaWNrZXQtMTItaW5hY3RpdmUiOmDzsKuKYCwiY3JpY2tldC0xNi1hY3RpdmUiOmDzsKuLYCwiY3JpY2tldC0xNi1pbmFjdGl2ZSI6YPOwq4xgLCJjcmlja2V0LTI0LWFjdGl2ZSI6YPOwq41gLCJjcmlja2V0LTI0LWluYWN0aXZlIjpg87CrjmAsImJhc2ViYWxsLTEyLWFjdGl2ZSI6YPOwqa9gLCJiYXNlYmFsbC0xMi1pbmFjdGl2ZSI6YPOwqbBgLCJiYXNlYmFsbC0xNi1hY3RpdmUiOmDzsKmxYCwiYmFzZWJhbGwtMTYtaW5hY3RpdmUiOmDzsKmyYCwiYmFzZWJhbGwtMjQtYWN0aXZlIjpg87Cps2AsImJhc2ViYWxsLTI0LWluYWN0aXZlIjpg87CptGAsInN0cmF0ZWd5LTEyLWFjdGl2ZSI6YPOwsJlgLCJzdHJhdGVneS0xMi1pbmFjdGl2ZSI6YPOwsJpgLCJzdHJhdGVneS0xNi1hY3RpdmUiOmDzsLCbYCwic3RyYXRlZ3ktMTYtaW5hY3RpdmUiOmDzsLCcYCwic3RyYXRlZ3ktMjQtYWN0aXZlIjpg87CwnWAsInN0cmF0ZWd5LTI0LWluYWN0aXZlIjpg87CwnmAsIm1vdG9yc3BvcnQtMTItYWN0aXZlIjpg87Cth2AsIm1vdG9yc3BvcnQtMTItaW5hY3RpdmUiOmDzsK2IYCwibW90b3JzcG9ydC0xNi1hY3RpdmUiOmDzsK2JYCwibW90b3JzcG9ydC0xNi1pbmFjdGl2ZSI6YPOwrYpgLCJtb3RvcnNwb3J0LTI0LWFjdGl2ZSI6YPOwrYtgLCJtb3RvcnNwb3J0LTI0LWluYWN0aXZlIjpg87CtjGAsImdvbGYtMTItYWN0aXZlIjpg87CshWAsImdvbGYtMTItaW5hY3RpdmUiOmDzsKyGYCwiZ29sZi0xNi1hY3RpdmUiOmDzsKyHYCwiZ29sZi0xNi1pbmFjdGl2ZSI6YPOwrIhgLCJnb2xmLTI0LWFjdGl2ZSI6YPOwrIlgLCJnb2xmLTI0LWluYWN0aXZlIjpg87CsimAsImJhc2tldGJhbGwtMTItYWN0aXZlIjpg87CptWAsImJhc2tldGJhbGwtMTItaW5hY3RpdmUiOmDzsKm2YCwiYmFza2V0YmFsbC0xNi1hY3RpdmUiOmDzsKm3YCwiYmFza2V0YmFsbC0xNi1pbmFjdGl2ZSI6YPOwqbhgLCJiYXNrZXRiYWxsLTI0LWFjdGl2ZSI6YPOwqblgLCJiYXNrZXRiYWxsLTI0LWluYWN0aXZlIjpg87CpumAsInRva2VuTGF1bmNoUm9ja2V0LTEyLWFjdGl2ZSI6YPOwsLdgLCJ0b2tlbkxhdW5jaFJvY2tldC0xMi1pbmFjdGl2ZSI6YPOwsLhgLCJ0b2tlbkxhdW5jaFJvY2tldC0xNi1hY3RpdmUiOmDzsLC5YCwidG9rZW5MYXVuY2hSb2NrZXQtMTYtaW5hY3RpdmUiOmDzsLC6YCwidG9rZW5MYXVuY2hSb2NrZXQtMjQtYWN0aXZlIjpg87Cwu2AsInRva2VuTGF1bmNoUm9ja2V0LTI0LWluYWN0aXZlIjpg87CwvGAsImJveGluZy0xMi1hY3RpdmUiOmDzsKm7YCwiYm94aW5nLTEyLWluYWN0aXZlIjpg87CpvGAsImJveGluZy0xNi1hY3RpdmUiOmDzsKm9YCwiYm94aW5nLTE2LWluYWN0aXZlIjpg87CpvmAsImJveGluZy0yNC1hY3RpdmUiOmDzsKm/YCwiYm94aW5nLTI0LWluYWN0aXZlIjpg87CqgGAsImJhbGxvdGJveC0xMi1hY3RpdmUiOmDzsKmdYCwiYmFsbG90Ym94LTEyLWluYWN0aXZlIjpg87CpnmAsImJhbGxvdGJveC0xNi1hY3RpdmUiOmDzsKmfYCwiYmFsbG90Ym94LTE2LWluYWN0aXZlIjpg87CpoGAsImJhbGxvdGJveC0yNC1hY3RpdmUiOmDzsKmhYCwiYmFsbG90Ym94LTI0LWluYWN0aXZlIjpg87CpomAsInNwZWVjaEJ1YmJsZS0xMi1hY3RpdmUiOmDzsK+1YCwic3BlZWNoQnViYmxlLTEyLWluYWN0aXZlIjpg87CvtmAsInNwZWVjaEJ1YmJsZS0xNi1hY3RpdmUiOmDzsK+3YCwic3BlZWNoQnViYmxlLTE2LWluYWN0aXZlIjpg87CvuGAsInNwZWVjaEJ1YmJsZS0yNC1hY3RpdmUiOmDzsK+5YCwic3BlZWNoQnViYmxlLTI0LWluYWN0aXZlIjpg87CvumAsInN0YXJCdWJibGUtMTItYWN0aXZlIjpg87CwjWAsInN0YXJCdWJibGUtMTItaW5hY3RpdmUiOmDzsLCOYCwic3RhckJ1YmJsZS0xNi1hY3RpdmUiOmDzsLCPYCwic3RhckJ1YmJsZS0xNi1pbmFjdGl2ZSI6YPOwsJBgLCJzdGFyQnViYmxlLTI0LWFjdGl2ZSI6YPOwsJFgLCJzdGFyQnViYmxlLTI0LWluYWN0aXZlIjpg87CwkmAsImF0U2lnbi0xMi1hY3RpdmUiOmDzsKmLYCwiYXRTaWduLTEyLWluYWN0aXZlIjpg87CpjGAsImF0U2lnbi0xNi1hY3RpdmUiOmDzsKmNYCwiYXRTaWduLTE2LWluYWN0aXZlIjpg87CpjmAsImF0U2lnbi0yNC1hY3RpdmUiOmDzsKmPYCwiYXRTaWduLTI0LWluYWN0aXZlIjpg87CpkGAsIm1lZGFsLTEyLWFjdGl2ZSI6YPOwrK9gLCJtZWRhbC0xMi1pbmFjdGl2ZSI6YPOwrLBgLCJtZWRhbC0xNi1hY3RpdmUiOmDzsKyxYCwibWVkYWwtMTYtaW5hY3RpdmUiOmDzsKyyYCwibWVkYWwtMjQtYWN0aXZlIjpg87Css2AsIm1lZGFsLTI0LWluYWN0aXZlIjpg87CstGAsInJpYmJvbi0xMi1hY3RpdmUiOmDzsK65YCwicmliYm9uLTEyLWluYWN0aXZlIjpg87CuumAsInJpYmJvbi0xNi1hY3RpdmUiOmDzsK67YCwicmliYm9uLTE2LWluYWN0aXZlIjpg87CuvGAsInJpYmJvbi0yNC1hY3RpdmUiOmDzsK69YCwicmliYm9uLTI0LWluYWN0aXZlIjpg87CuvmAsInN0YXJUcm9waHktMTItYWN0aXZlIjpg87Cwk2AsInN0YXJUcm9waHktMTItaW5hY3RpdmUiOmDzsLCUYCwic3RhclRyb3BoeS0xNi1hY3RpdmUiOmDzsLCVYCwic3RhclRyb3BoeS0xNi1pbmFjdGl2ZSI6YPOwsJZgLCJzdGFyVHJvcGh5LTI0LWFjdGl2ZSI6YPOwsJdgLCJzdGFyVHJvcGh5LTI0LWluYWN0aXZlIjpg87CwmGAsImNhbGVuZGFyRGF0ZXMtMTItYWN0aXZlIjpg87Cqk2AsImNhbGVuZGFyRGF0ZXMtMTItaW5hY3RpdmUiOmDzsKqUYCwiY2FsZW5kYXJEYXRlcy0xNi1hY3RpdmUiOmDzsKqVYCwiY2FsZW5kYXJEYXRlcy0xNi1pbmFjdGl2ZSI6YPOwqpZgLCJjYWxlbmRhckRhdGVzLTI0LWFjdGl2ZSI6YPOwqpdgLCJjYWxlbmRhckRhdGVzLTI0LWluYWN0aXZlIjpg87CqmGAsImNhbGVuZGFyTW9uZXktMTItYWN0aXZlIjpg87Cqn2AsImNhbGVuZGFyTW9uZXktMTItaW5hY3RpdmUiOmDzsKqgYCwiY2FsZW5kYXJNb25leS0xNi1hY3RpdmUiOmDzsKqhYCwiY2FsZW5kYXJNb25leS0xNi1pbmFjdGl2ZSI6YPOwqqJgLCJjYWxlbmRhck1vbmV5LTI0LWFjdGl2ZSI6YPOwqqNgLCJjYWxlbmRhck1vbmV5LTI0LWluYWN0aXZlIjpg87CqpGAsInN0YWJsZUNvaW4tMTItYWN0aXZlIjpg87Cvu2AsInN0YWJsZUNvaW4tMTItaW5hY3RpdmUiOmDzsK+8YCwic3RhYmxlQ29pbi0xNi1hY3RpdmUiOmDzsK+9YCwic3RhYmxlQ29pbi0xNi1pbmFjdGl2ZSI6YPOwr75gLCJzdGFibGVDb2luLTI0LWFjdGl2ZSI6YPOwr79gLCJzdGFibGVDb2luLTI0LWluYWN0aXZlIjpg87CwgGAsInBvbGl0aWNzR2F2ZWwtMTItYWN0aXZlIjpg87CuiWAsInBvbGl0aWNzR2F2ZWwtMTItaW5hY3RpdmUiOmDzsK6KYCwicG9saXRpY3NHYXZlbC0xNi1hY3RpdmUiOmDzsK6LYCwicG9saXRpY3NHYXZlbC0xNi1pbmFjdGl2ZSI6YPOwroxgLCJwb2xpdGljc0dhdmVsLTI0LWFjdGl2ZSI6YPOwro1gLCJwb2xpdGljc0dhdmVsLTI0LWluYWN0aXZlIjpg87CujmAsInBvbGl0aWNzQnVpbGRpbmctMTItYWN0aXZlIjpg87Ctt2AsInBvbGl0aWNzQnVpbGRpbmctMTItaW5hY3RpdmUiOmDzsK24YCwicG9saXRpY3NCdWlsZGluZy0xNi1hY3RpdmUiOmDzsK25YCwicG9saXRpY3NCdWlsZGluZy0xNi1pbmFjdGl2ZSI6YPOwrbpgLCJwb2xpdGljc0J1aWxkaW5nLTI0LWFjdGl2ZSI6YPOwrbtgLCJwb2xpdGljc0J1aWxkaW5nLTI0LWluYWN0aXZlIjpg87CtvGAsInBvbGl0aWNzU3Rhci0xMi1hY3RpdmUiOmDzsK6VYCwicG9saXRpY3NTdGFyLTEyLWluYWN0aXZlIjpg87CulmAsInBvbGl0aWNzU3Rhci0xNi1hY3RpdmUiOmDzsK6XYCwicG9saXRpY3NTdGFyLTE2LWluYWN0aXZlIjpg87CumGAsInBvbGl0aWNzU3Rhci0yNC1hY3RpdmUiOmDzsK6ZYCwicG9saXRpY3NTdGFyLTI0LWluYWN0aXZlIjpg87CummAsInBvbGl0aWNzUG9kaXVtLTEyLWFjdGl2ZSI6YPOwro9gLCJwb2xpdGljc1BvZGl1bS0xMi1pbmFjdGl2ZSI6YPOwrpBgLCJwb2xpdGljc1BvZGl1bS0xNi1hY3RpdmUiOmDzsK6RYCwicG9saXRpY3NQb2RpdW0tMTYtaW5hY3RpdmUiOmDzsK6SYCwicG9saXRpY3NQb2RpdW0tMjQtYWN0aXZlIjpg87Cuk2AsInBvbGl0aWNzUG9kaXVtLTI0LWluYWN0aXZlIjpg87CulGAsImFwcGxlLTEyLWFjdGl2ZSI6YPOwqYVgLCJhcHBsZS0xMi1pbmFjdGl2ZSI6YPOwqYZgLCJhcHBsZS0xNi1hY3RpdmUiOmDzsKmHYCwiYXBwbGUtMTYtaW5hY3RpdmUiOmDzsKmIYCwiYXBwbGUtMjQtYWN0aXZlIjpg87CpiWAsImFwcGxlLTI0LWluYWN0aXZlIjpg87CpimAsImVkdWNhdGlvblBlbmNpbC0xMi1hY3RpdmUiOmDzsKubYCwiZWR1Y2F0aW9uUGVuY2lsLTEyLWluYWN0aXZlIjpg87CrnGAsImVkdWNhdGlvblBlbmNpbC0xNi1hY3RpdmUiOmDzsKudYCwiZWR1Y2F0aW9uUGVuY2lsLTE2LWluYWN0aXZlIjpg87CrnmAsImVkdWNhdGlvblBlbmNpbC0yNC1hY3RpdmUiOmDzsKufYCwiZWR1Y2F0aW9uUGVuY2lsLTI0LWluYWN0aXZlIjpg87CroGAsInJhdGluZ3NTdGFyLTEyLWFjdGl2ZSI6YPOwrrNgLCJyYXRpbmdzU3Rhci0xMi1pbmFjdGl2ZSI6YPOwrrRgLCJyYXRpbmdzU3Rhci0xNi1hY3RpdmUiOmDzsK61YCwicmF0aW5nc1N0YXItMTYtaW5hY3RpdmUiOmDzsK62YCwicmF0aW5nc1N0YXItMjQtYWN0aXZlIjpg87Cut2AsInJhdGluZ3NTdGFyLTI0LWluYWN0aXZlIjpg87CuuGAsInBvZGl1bVN0YXItMTItYWN0aXZlIjpg87CtsWAsInBvZGl1bVN0YXItMTItaW5hY3RpdmUiOmDzsK2yYCwicG9kaXVtU3Rhci0xNi1hY3RpdmUiOmDzsK2zYCwicG9kaXVtU3Rhci0xNi1pbmFjdGl2ZSI6YPOwrbRgLCJwb2RpdW1TdGFyLTI0LWFjdGl2ZSI6YPOwrbVgLCJwb2RpdW1TdGFyLTI0LWluYWN0aXZlIjpg87CttmAsInJhdGluZ3NDaGVjay0xMi1hY3RpdmUiOmDzsK6nYCwicmF0aW5nc0NoZWNrLTEyLWluYWN0aXZlIjpg87CuqGAsInJhdGluZ3NDaGVjay0xNi1hY3RpdmUiOmDzsK6pYCwicmF0aW5nc0NoZWNrLTE2LWluYWN0aXZlIjpg87CuqmAsInJhdGluZ3NDaGVjay0yNC1hY3RpdmUiOmDzsK6rYCwicmF0aW5nc0NoZWNrLTI0LWluYWN0aXZlIjpg87CurGAsInBpbGxCb3R0bGUtMTItYWN0aXZlIjpg87Ctn2AsInBpbGxCb3R0bGUtMTItaW5hY3RpdmUiOmDzsK2gYCwicGlsbEJvdHRsZS0xNi1hY3RpdmUiOmDzsK2hYCwicGlsbEJvdHRsZS0xNi1pbmFjdGl2ZSI6YPOwraJgLCJwaWxsQm90dGxlLTI0LWFjdGl2ZSI6YPOwraNgLCJwaWxsQm90dGxlLTI0LWluYWN0aXZlIjpg87CtpGAsIm5lZWRsZS0xMi1hY3RpdmUiOmDzsK2TYCwibmVlZGxlLTEyLWluYWN0aXZlIjpg87CtlGAsIm5lZWRsZS0xNi1hY3RpdmUiOmDzsK2VYCwibmVlZGxlLTE2LWluYWN0aXZlIjpg87CtlmAsIm5lZWRsZS0yNC1hY3RpdmUiOmDzsK2XYCwibmVlZGxlLTI0LWluYWN0aXZlIjpg87CtmGAsImhvc3BpdGFsLTEyLWFjdGl2ZSI6YPOwrJdgLCJob3NwaXRhbC0xMi1pbmFjdGl2ZSI6YPOwrJhgLCJob3NwaXRhbC0xNi1hY3RpdmUiOmDzsKyZYCwiaG9zcGl0YWwtMTYtaW5hY3RpdmUiOmDzsKyaYCwiaG9zcGl0YWwtMjQtYWN0aXZlIjpg87Csm2AsImhvc3BpdGFsLTI0LWluYWN0aXZlIjpg87CsnGAsImJ1Zy0xMi1hY3RpdmUiOmDzsKqHYCwiYnVnLTEyLWluYWN0aXZlIjpg87CqiGAsImJ1Zy0xNi1hY3RpdmUiOmDzsKqJYCwiYnVnLTE2LWluYWN0aXZlIjpg87CqimAsImJ1Zy0yNC1hY3RpdmUiOmDzsKqLYCwiYnVnLTI0LWluYWN0aXZlIjpg87CqjGAsImJhbmRhZ2UtMTItYWN0aXZlIjpg87Cpo2AsImJhbmRhZ2UtMTItaW5hY3RpdmUiOmDzsKmkYCwiYmFuZGFnZS0xNi1hY3RpdmUiOmDzsKmlYCwiYmFuZGFnZS0xNi1pbmFjdGl2ZSI6YPOwqaZgLCJiYW5kYWdlLTI0LWFjdGl2ZSI6YPOwqadgLCJiYW5kYWdlLTI0LWluYWN0aXZlIjpg87CpqGAsInNjaWVuY2VNb29uLTEyLWFjdGl2ZSI6YPOwr5FgLCJzY2llbmNlTW9vbi0xMi1pbmFjdGl2ZSI6YPOwr5JgLCJzY2llbmNlTW9vbi0xNi1hY3RpdmUiOmDzsK+TYCwic2NpZW5jZU1vb24tMTYtaW5hY3RpdmUiOmDzsK+UYCwic2NpZW5jZU1vb24tMjQtYWN0aXZlIjpg87CvlWAsInNjaWVuY2VNb29uLTI0LWluYWN0aXZlIjpg87CvlmAsImFsaWVuLTEyLWFjdGl2ZSI6YPOwqLlgLCJhbGllbi0xMi1pbmFjdGl2ZSI6YPOwqLpgLCJhbGllbi0xNi1hY3RpdmUiOmDzsKi7YCwiYWxpZW4tMTYtaW5hY3RpdmUiOmDzsKi8YCwiYWxpZW4tMjQtYWN0aXZlIjpg87CovWAsImFsaWVuLTI0LWluYWN0aXZlIjpg87CovmAsIm1pY3Jvc2NvcGUtMTItYWN0aXZlIjpg87Csu2AsIm1pY3Jvc2NvcGUtMTItaW5hY3RpdmUiOmDzsKy8YCwibWljcm9zY29wZS0xNi1hY3RpdmUiOmDzsKy9YCwibWljcm9zY29wZS0xNi1pbmFjdGl2ZSI6YPOwrL5gLCJtaWNyb3Njb3BlLTI0LWFjdGl2ZSI6YPOwrL9gLCJtaWNyb3Njb3BlLTI0LWluYWN0aXZlIjpg87CtgGAsInNjaWVuY2VCZWFrZXItMTItYWN0aXZlIjpg87Cvi2AsInNjaWVuY2VCZWFrZXItMTItaW5hY3RpdmUiOmDzsK+MYCwic2NpZW5jZUJlYWtlci0xNi1hY3RpdmUiOmDzsK+NYCwic2NpZW5jZUJlYWtlci0xNi1pbmFjdGl2ZSI6YPOwr45gLCJzY2llbmNlQmVha2VyLTI0LWFjdGl2ZSI6YPOwr49gLCJzY2llbmNlQmVha2VyLTI0LWluYWN0aXZlIjpg87CvkGAsImNpdHktMTItYWN0aXZlIjpg87CqsWAsImNpdHktMTItaW5hY3RpdmUiOmDzsKqyYCwiY2l0eS0xNi1hY3RpdmUiOmDzsKqzYCwiY2l0eS0xNi1pbmFjdGl2ZSI6YPOwqrRgLCJjaXR5LTI0LWFjdGl2ZSI6YPOwqrVgLCJjaXR5LTI0LWluYWN0aXZlIjpg87CqtmAsImZhY3RvcnktMTItYWN0aXZlIjpg87Crp2AsImZhY3RvcnktMTItaW5hY3RpdmUiOmDzsKuoYCwiZmFjdG9yeS0xNi1hY3RpdmUiOmDzsKupYCwiZmFjdG9yeS0xNi1pbmFjdGl2ZSI6YPOwq6pgLCJmYWN0b3J5LTI0LWFjdGl2ZSI6YPOwq6tgLCJmYWN0b3J5LTI0LWluYWN0aXZlIjpg87CrrGAsImNvcnBvcmF0aW9uLTEyLWFjdGl2ZSI6YPOwq4NgLCJjb3Jwb3JhdGlvbi0xMi1pbmFjdGl2ZSI6YPOwq4RgLCJjb3Jwb3JhdGlvbi0xNi1hY3RpdmUiOmDzsKuFYCwiY29ycG9yYXRpb24tMTYtaW5hY3RpdmUiOmDzsKuGYCwiY29ycG9yYXRpb24tMjQtYWN0aXZlIjpg87Crh2AsImNvcnBvcmF0aW9uLTI0LWluYWN0aXZlIjpg87CriGAsImdyZWVuRW5lcmd5LTEyLWFjdGl2ZSI6YPOwrItgLCJncmVlbkVuZXJneS0xMi1pbmFjdGl2ZSI6YPOwrIxgLCJncmVlbkVuZXJneS0xNi1hY3RpdmUiOmDzsKyNYCwiZ3JlZW5FbmVyZ3ktMTYtaW5hY3RpdmUiOmDzsKyOYCwiZ3JlZW5FbmVyZ3ktMjQtYWN0aXZlIjpg87Csj2AsImdyZWVuRW5lcmd5LTI0LWluYWN0aXZlIjpg87CskGAsInRoZXJtb21ldGVyLTEyLWFjdGl2ZSI6YPOwsKtgLCJ0aGVybW9tZXRlci0xMi1pbmFjdGl2ZSI6YPOwsKxgLCJ0aGVybW9tZXRlci0xNi1hY3RpdmUiOmDzsLCtYCwidGhlcm1vbWV0ZXItMTYtaW5hY3RpdmUiOmDzsLCuYCwidGhlcm1vbWV0ZXItMjQtYWN0aXZlIjpg87Cwr2AsInRoZXJtb21ldGVyLTI0LWluYWN0aXZlIjpg87CwsGAsInVtYnJlbGxhLTEyLWFjdGl2ZSI6YPOwsZVgLCJ1bWJyZWxsYS0xMi1pbmFjdGl2ZSI6YPOwsZZgLCJ1bWJyZWxsYS0xNi1hY3RpdmUiOmDzsLGXYCwidW1icmVsbGEtMTYtaW5hY3RpdmUiOmDzsLGYYCwidW1icmVsbGEtMjQtYWN0aXZlIjpg87CxmWAsInVtYnJlbGxhLTI0LWluYWN0aXZlIjpg87CxmmAsImh1cnJpY2FuZS0xMi1hY3RpdmUiOmDzsKyjYCwiaHVycmljYW5lLTEyLWluYWN0aXZlIjpg87CspGAsImh1cnJpY2FuZS0xNi1hY3RpdmUiOmDzsKylYCwiaHVycmljYW5lLTE2LWluYWN0aXZlIjpg87CspmAsImh1cnJpY2FuZS0yNC1hY3RpdmUiOmDzsKynYCwiaHVycmljYW5lLTI0LWluYWN0aXZlIjpg87CsqGAsInN0YWJsZWNvaW5TdGFjay0xMi1hY3RpdmUiOmDzsLCBYCwic3RhYmxlY29pblN0YWNrLTEyLWluYWN0aXZlIjpg87CwgmAsInN0YWJsZWNvaW5TdGFjay0xNi1hY3RpdmUiOmDzsLCDYCwic3RhYmxlY29pblN0YWNrLTE2LWluYWN0aXZlIjpg87CwhGAsInN0YWJsZWNvaW5TdGFjay0yNC1hY3RpdmUiOmDzsLCFYCwic3RhYmxlY29pblN0YWNrLTI0LWluYWN0aXZlIjpg87CwhmAsImVudGVydGFpbm1lbnQtMTItYWN0aXZlIjpg87CroWAsImVudGVydGFpbm1lbnQtMTItaW5hY3RpdmUiOmDzsKuiYCwiZW50ZXJ0YWlubWVudC0xNi1hY3RpdmUiOmDzsKujYCwiZW50ZXJ0YWlubWVudC0xNi1pbmFjdGl2ZSI6YPOwq6RgLCJlbnRlcnRhaW5tZW50LTI0LWFjdGl2ZSI6YPOwq6VgLCJlbnRlcnRhaW5tZW50LTI0LWluYWN0aXZlIjpg87CrpmAsInRzaGlydC0xMi1hY3RpdmUiOmDzsLGDYCwidHNoaXJ0LTEyLWluYWN0aXZlIjpg87CxhGAsInRzaGlydC0xNi1hY3RpdmUiOmDzsLGFYCwidHNoaXJ0LTE2LWluYWN0aXZlIjpg87CxhmAsInRzaGlydC0yNC1hY3RpdmUiOmDzsLGHYCwidHNoaXJ0LTI0LWluYWN0aXZlIjpg87CxiGAsInJvdHRlblRvbWF0by0xMi1hY3RpdmUiOmDzsK6/YCwicm90dGVuVG9tYXRvLTEyLWluYWN0aXZlIjpg87CvgGAsInJvdHRlblRvbWF0by0xNi1hY3RpdmUiOmDzsK+BYCwicm90dGVuVG9tYXRvLTE2LWluYWN0aXZlIjpg87CvgmAsInJvdHRlblRvbWF0by0yNC1hY3RpdmUiOmDzsK+DYCwicm90dGVuVG9tYXRvLTI0LWluYWN0aXZlIjpg87CvhGAsInR2LTEyLWFjdGl2ZSI6YPOwsYlgLCJ0di0xMi1pbmFjdGl2ZSI6YPOwsYpgLCJ0di0xNi1hY3RpdmUiOmDzsLGLYCwidHYtMTYtaW5hY3RpdmUiOmDzsLGMYCwidHYtMjQtYWN0aXZlIjpg87CxjWAsInR2LTI0LWluYWN0aXZlIjpg87CxjmAsImZpbG1TdHJpcC0xMi1hY3RpdmUiOmDzsKutYCwiZmlsbVN0cmlwLTEyLWluYWN0aXZlIjpg87CrrmAsImZpbG1TdHJpcC0xNi1hY3RpdmUiOmDzsKuvYCwiZmlsbVN0cmlwLTE2LWluYWN0aXZlIjpg87CrsGAsImZpbG1TdHJpcC0yNC1hY3RpdmUiOmDzsKuxYCwiZmlsbVN0cmlwLTI0LWluYWN0aXZlIjpg87CrsmAsInNpbmdsZU5vdGUtMTItYWN0aXZlIjpg87CvnWAsInNpbmdsZU5vdGUtMTItaW5hY3RpdmUiOmDzsK+eYCwic2luZ2xlTm90ZS0xNi1hY3RpdmUiOmDzsK+fYCwic2luZ2xlTm90ZS0xNi1pbmFjdGl2ZSI6YPOwr6BgLCJzaW5nbGVOb3RlLTI0LWFjdGl2ZSI6YPOwr6FgLCJzaW5nbGVOb3RlLTI0LWluYWN0aXZlIjpg87CvomAsImVkdWNhdGlvbkJvb2stMTItYWN0aXZlIjpg87CrlWAsImVkdWNhdGlvbkJvb2stMTItaW5hY3RpdmUiOmDzsKuWYCwiZWR1Y2F0aW9uQm9vay0xNi1hY3RpdmUiOmDzsKuXYCwiZWR1Y2F0aW9uQm9vay0xNi1pbmFjdGl2ZSI6YPOwq5hgLCJlZHVjYXRpb25Cb29rLTI0LWFjdGl2ZSI6YPOwq5lgLCJlZHVjYXRpb25Cb29rLTI0LWluYWN0aXZlIjpg87CrmmAsImdhbWluZy0xMi1hY3RpdmUiOmDzsKu5YCwiZ2FtaW5nLTEyLWluYWN0aXZlIjpg87CrumAsImdhbWluZy0xNi1hY3RpdmUiOmDzsKu7YCwiZ2FtaW5nLTE2LWluYWN0aXZlIjpg87CrvGAsImdhbWluZy0yNC1hY3RpdmUiOmDzsKu9YCwiZ2FtaW5nLTI0LWluYWN0aXZlIjpg87CrvmAsInJhdGluZ3NDaGVja3MtMTItYWN0aXZlIjpg87CurWAsInJhdGluZ3NDaGVja3MtMTItaW5hY3RpdmUiOmDzsK6uYCwicmF0aW5nc0NoZWNrcy0xNi1hY3RpdmUiOmDzsK6vYCwicmF0aW5nc0NoZWNrcy0xNi1pbmFjdGl2ZSI6YPOwrrBgLCJyYXRpbmdzQ2hlY2tzLTI0LWFjdGl2ZSI6YPOwrrFgLCJyYXRpbmdzQ2hlY2tzLTI0LWluYWN0aXZlIjpg87CusmAsInBsYXlidXR0b24tMTItYWN0aXZlIjpg87Ctq2AsInBsYXlidXR0b24tMTItaW5hY3RpdmUiOmDzsK2sYCwicGxheWJ1dHRvbi0xNi1hY3RpdmUiOmDzsK2tYCwicGxheWJ1dHRvbi0xNi1pbmFjdGl2ZSI6YPOwra5gLCJwbGF5YnV0dG9uLTI0LWFjdGl2ZSI6YPOwra9gLCJwbGF5YnV0dG9uLTI0LWluYWN0aXZlIjpg87CtsGAsInNjaWVuY2VBdG9tLTEyLWFjdGl2ZSI6YPOwr4VgLCJzY2llbmNlQXRvbS0xMi1pbmFjdGl2ZSI6YPOwr4ZgLCJzY2llbmNlQXRvbS0xNi1hY3RpdmUiOmDzsK+HYCwic2NpZW5jZUF0b20tMTYtaW5hY3RpdmUiOmDzsK+IYCwic2NpZW5jZUF0b20tMjQtYWN0aXZlIjpg87CviWAsInNjaWVuY2VBdG9tLTI0LWluYWN0aXZlIjpg87CvimAsImVhcnRocXVha2UtMTItYWN0aXZlIjpg87Crj2AsImVhcnRocXVha2UtMTItaW5hY3RpdmUiOmDzsKuQYCwiZWFydGhxdWFrZS0xNi1hY3RpdmUiOmDzsKuRYCwiZWFydGhxdWFrZS0xNi1pbmFjdGl2ZSI6YPOwq5JgLCJlYXJ0aHF1YWtlLTI0LWFjdGl2ZSI6YPOwq5NgLCJlYXJ0aHF1YWtlLTI0LWluYWN0aXZlIjpg87CrlGAsInNob2UtMTItYWN0aXZlIjpg87Cvl2AsInNob2UtMTItaW5hY3RpdmUiOmDzsK+YYCwic2hvZS0xNi1hY3RpdmUiOmDzsK+ZYCwic2hvZS0xNi1pbmFjdGl2ZSI6YPOwr5pgLCJzaG9lLTI0LWFjdGl2ZSI6YPOwr5tgLCJzaG9lLTI0LWluYWN0aXZlIjpg87CvnGAsInF1b3RhdGlvbi0xMi1hY3RpdmUiOmDzsK6bYCwicXVvdGF0aW9uLTEyLWluYWN0aXZlIjpg87CunGAsInF1b3RhdGlvbi0xNi1hY3RpdmUiOmDzsK6dYCwicXVvdGF0aW9uLTE2LWluYWN0aXZlIjpg87CunmAsInF1b3RhdGlvbi0yNC1hY3RpdmUiOmDzsK6fYCwicXVvdGF0aW9uLTI0LWluYWN0aXZlIjpg87CuoGAsIm11c2ljQXJ0aWNsZXMtMTItYWN0aXZlIjpg87CtjWAsIm11c2ljQXJ0aWNsZXMtMTItaW5hY3RpdmUiOmDzsK2OYCwibXVzaWNBcnRpY2xlcy0xNi1hY3RpdmUiOmDzsK2PYCwibXVzaWNBcnRpY2xlcy0xNi1pbmFjdGl2ZSI6YPOwrZBgLCJtdXNpY0FydGljbGVzLTI0LWFjdGl2ZSI6YPOwrZFgLCJtdXNpY0FydGljbGVzLTI0LWluYWN0aXZlIjpg87CtkmAsInBvbGl0aWNzRmxhZy0xMi1hY3RpdmUiOmDzsK6DYCwicG9saXRpY3NGbGFnLTEyLWluYWN0aXZlIjpg87CuhGAsInBvbGl0aWNzRmxhZy0xNi1hY3RpdmUiOmDzsK6FYCwicG9saXRpY3NGbGFnLTE2LWluYWN0aXZlIjpg87CuhmAsInBvbGl0aWNzRmxhZy0yNC1hY3RpdmUiOmDzsK6HYCwicG9saXRpY3NGbGFnLTI0LWluYWN0aXZlIjpg87CuiGAsImJhckNoYXJ0U2ltcGxlLTEyLWFjdGl2ZSI6YPOwqalgLCJiYXJDaGFydFNpbXBsZS0xMi1pbmFjdGl2ZSI6YPOwqapgLCJiYXJDaGFydFNpbXBsZS0xNi1hY3RpdmUiOmDzsKmrYCwiYmFyQ2hhcnRTaW1wbGUtMTYtaW5hY3RpdmUiOmDzsKmsYCwiYmFyQ2hhcnRTaW1wbGUtMjQtYWN0aXZlIjpg87CprWAsImJhckNoYXJ0U2ltcGxlLTI0LWluYWN0aXZlIjpg87CprmAsImJ1aWxkaW5nLTEyLWFjdGl2ZSI6YPOwqo1gLCJidWlsZGluZy0xMi1pbmFjdGl2ZSI6YPOwqo5gLCJidWlsZGluZy0xNi1hY3RpdmUiOmDzsKqPYCwiYnVpbGRpbmctMTYtaW5hY3RpdmUiOmDzsKqQYCwiYnVpbGRpbmctMjQtYWN0aXZlIjpg87CqkWAsImJ1aWxkaW5nLTI0LWluYWN0aXZlIjpg87CqkmAsInRvcm5hZG8tMTItYWN0aXZlIjpg87CwvWAsInRvcm5hZG8tMTItaW5hY3RpdmUiOmDzsLC+YCwidG9ybmFkby0xNi1hY3RpdmUiOmDzsLC/YCwidG9ybmFkby0xNi1pbmFjdGl2ZSI6YPOwsYBgLCJ0b3JuYWRvLTI0LWFjdGl2ZSI6YPOwsYFgLCJ0b3JuYWRvLTI0LWluYWN0aXZlIjpg87CxgmAsImNvbXB1dGVyQ2hpcC0xMi1hY3RpdmUiOmDzsKq9YCwiY29tcHV0ZXJDaGlwLTEyLWluYWN0aXZlIjpg87CqvmAsImNvbXB1dGVyQ2hpcC0xNi1hY3RpdmUiOmDzsKq/YCwiY29tcHV0ZXJDaGlwLTE2LWluYWN0aXZlIjpg87CrgGAsImNvbXB1dGVyQ2hpcC0yNC1hY3RpdmUiOmDzsKuBYCwiY29tcHV0ZXJDaGlwLTI0LWluYWN0aXZlIjpg87CrgmAsImNsb3VkUGFydGlhbC0xMi1hY3RpdmUiOmDzsKq3YCwiY2xvdWRQYXJ0aWFsLTEyLWluYWN0aXZlIjpg87CquGAsImNsb3VkUGFydGlhbC0xNi1hY3RpdmUiOmDzsKq5YCwiY2xvdWRQYXJ0aWFsLTE2LWluYWN0aXZlIjpg87CqumAsImNsb3VkUGFydGlhbC0yNC1hY3RpdmUiOmDzsKq7YCwiY2xvdWRQYXJ0aWFsLTI0LWluYWN0aXZlIjpg87CqvGAsImFpcmRyb3BDb2lucy0xMi1hY3RpdmUiOmDzsKitYCwiYWlyZHJvcENvaW5zLTEyLWluYWN0aXZlIjpg87CormAsImFpcmRyb3BDb2lucy0xNi1hY3RpdmUiOmDzsKivYCwiYWlyZHJvcENvaW5zLTE2LWluYWN0aXZlIjpg87CosGAsImFpcmRyb3BDb2lucy0yNC1hY3RpdmUiOmDzsKixYCwiYWlyZHJvcENvaW5zLTI0LWluYWN0aXZlIjpg87CosmAsImdhc0ZlZXNBbHQtMTItYWN0aXZlIjpg87Crv2AsImdhc0ZlZXNBbHQtMTItaW5hY3RpdmUiOmDzsKyAYCwiZ2FzRmVlc0FsdC0xNi1hY3RpdmUiOmDzsKyBYCwiZ2FzRmVlc0FsdC0xNi1pbmFjdGl2ZSI6YPOwrIJgLCJnYXNGZWVzQWx0LTI0LWFjdGl2ZSI6YPOwrINgLCJnYXNGZWVzQWx0LTI0LWluYWN0aXZlIjpg87CshGAsImF0b21TY2llbmNlLTEyLWFjdGl2ZSI6YPOwqZFgLCJhdG9tU2NpZW5jZS0xMi1pbmFjdGl2ZSI6YPOwqZJgLCJhdG9tU2NpZW5jZS0xNi1hY3RpdmUiOmDzsKmTYCwiYXRvbVNjaWVuY2UtMTYtaW5hY3RpdmUiOmDzsKmUYCwiYXRvbVNjaWVuY2UtMjQtYWN0aXZlIjpg87CplWAsImF0b21TY2llbmNlLTI0LWluYWN0aXZlIjpg87CplmAsImhvc3BpdGFsQ3Jvc3MtMTItYWN0aXZlIjpg87CsnWAsImhvc3BpdGFsQ3Jvc3MtMTItaW5hY3RpdmUiOmDzsKyeYCwiaG9zcGl0YWxDcm9zcy0xNi1hY3RpdmUiOmDzsKyfYCwiaG9zcGl0YWxDcm9zcy0xNi1pbmFjdGl2ZSI6YPOwrKBgLCJob3NwaXRhbENyb3NzLTI0LWFjdGl2ZSI6YPOwrKFgLCJob3NwaXRhbENyb3NzLTI0LWluYWN0aXZlIjpg87CsomAsImFpcmRyb3BBbHQtMTItYWN0aXZlIjpg87Cop2AsImFpcmRyb3BBbHQtMTItaW5hY3RpdmUiOmDzsKioYCwiYWlyZHJvcEFsdC0xNi1hY3RpdmUiOmDzsKipYCwiYWlyZHJvcEFsdC0xNi1pbmFjdGl2ZSI6YPOwqKpgLCJhaXJkcm9wQWx0LTI0LWFjdGl2ZSI6YPOwqKtgLCJhaXJkcm9wQWx0LTI0LWluYWN0aXZlIjpg87CorGAsIm9pbC0xMi1hY3RpdmUiOmDzsK2ZYCwib2lsLTEyLWluYWN0aXZlIjpg87CtmmAsIm9pbC0xNi1hY3RpdmUiOmDzsK2bYCwib2lsLTE2LWluYWN0aXZlIjpg87CtnGAsIm9pbC0yNC1hY3RpdmUiOmDzsK2dYCwib2lsLTI0LWluYWN0aXZlIjpg87CtnmAsImFwb3RoZWNhcnktMTItYWN0aXZlIjpg87Cov2AsImFwb3RoZWNhcnktMTItaW5hY3RpdmUiOmDzsKmAYCwiYXBvdGhlY2FyeS0xNi1hY3RpdmUiOmDzsKmBYCwiYXBvdGhlY2FyeS0xNi1pbmFjdGl2ZSI6YPOwqYJgLCJhcG90aGVjYXJ5LTI0LWFjdGl2ZSI6YPOwqYNgLCJhcG90aGVjYXJ5LTI0LWluYWN0aXZlIjpg87CphGAsImJyaWVmY2FzZUFsdC0xMi1hY3RpdmUiOmDzsKqBYCwiYnJpZWZjYXNlQWx0LTEyLWluYWN0aXZlIjpg87CqgmAsImJyaWVmY2FzZUFsdC0xNi1hY3RpdmUiOmDzsKqDYCwiYnJpZWZjYXNlQWx0LTE2LWluYWN0aXZlIjpg87CqhGAsImJyaWVmY2FzZUFsdC0yNC1hY3RpdmUiOmDzsKqFYCwiYnJpZWZjYXNlQWx0LTI0LWluYWN0aXZlIjpg87CqhmAsInZpcnVzLTEyLWFjdGl2ZSI6YPOwsZtgLCJ2aXJ1cy0xMi1pbmFjdGl2ZSI6YPOwsZxgLCJ2aXJ1cy0xNi1hY3RpdmUiOmDzsLGdYCwidmlydXMtMTYtaW5hY3RpdmUiOmDzsLGeYCwidmlydXMtMjQtYWN0aXZlIjpg87Cxn2AsInZpcnVzLTI0LWluYWN0aXZlIjpg87CxoGAsInBpbGxDYXBzdWxlLTEyLWFjdGl2ZSI6YPOwraVgLCJwaWxsQ2Fwc3VsZS0xMi1pbmFjdGl2ZSI6YPOwraZgLCJwaWxsQ2Fwc3VsZS0xNi1hY3RpdmUiOmDzsK2nYCwicGlsbENhcHN1bGUtMTYtaW5hY3RpdmUiOmDzsK2oYCwicGlsbENhcHN1bGUtMjQtYWN0aXZlIjpg87CtqWAsInBpbGxDYXBzdWxlLTI0LWluYWN0aXZlIjpg87CtqmAsInN0YXJBd2FyZC0xMi1hY3RpdmUiOmDzsLCHYCwic3RhckF3YXJkLTEyLWluYWN0aXZlIjpg87CwiGAsInN0YXJBd2FyZC0xNi1hY3RpdmUiOmDzsLCJYCwic3RhckF3YXJkLTE2LWluYWN0aXZlIjpg87CwimAsInN0YXJBd2FyZC0yNC1hY3RpdmUiOmDzsLCLYCwic3RhckF3YXJkLTI0LWluYWN0aXZlIjpg87CwjGAsImNhbGVuZGFyU3Rhci0xMi1hY3RpdmUiOmDzsKqlYCwiY2FsZW5kYXJTdGFyLTEyLWluYWN0aXZlIjpg87CqpmAsImNhbGVuZGFyU3Rhci0xNi1hY3RpdmUiOmDzsKqnYCwiY2FsZW5kYXJTdGFyLTE2LWluYWN0aXZlIjpg87CqqGAsImNhbGVuZGFyU3Rhci0yNC1hY3RpdmUiOmDzsKqpYCwiY2FsZW5kYXJTdGFyLTI0LWluYWN0aXZlIjpg87CqqmAsImNhbGVuZGFySGVhcnQtMTItYWN0aXZlIjpg87CqmWAsImNhbGVuZGFySGVhcnQtMTItaW5hY3RpdmUiOmDzsKqaYCwiY2FsZW5kYXJIZWFydC0xNi1hY3RpdmUiOmDzsKqbYCwiY2FsZW5kYXJIZWFydC0xNi1pbmFjdGl2ZSI6YPOwqpxgLCJjYWxlbmRhckhlYXJ0LTI0LWFjdGl2ZSI6YPOwqp1gLCJjYWxlbmRhckhlYXJ0LTI0LWluYWN0aXZlIjpg87CqnmAsInNpbmdsZWNsb3VkLTEyLWFjdGl2ZSI6YPOwr6NgLCJzaW5nbGVjbG91ZC0xMi1pbmFjdGl2ZSI6YPOwr6RgLCJzaW5nbGVjbG91ZC0xNi1hY3RpdmUiOmDzsK+lYCwic2luZ2xlY2xvdWQtMTYtaW5hY3RpdmUiOmDzsK+mYCwic2luZ2xlY2xvdWQtMjQtYWN0aXZlIjpg87Cvp2AsInNpbmdsZWNsb3VkLTI0LWluYWN0aXZlIjpg87CvqGAsImxpZ2h0bmluZy0xMi1hY3RpdmUiOmDzsKypYCwibGlnaHRuaW5nLTEyLWluYWN0aXZlIjpg87CsqmAsImxpZ2h0bmluZy0xNi1hY3RpdmUiOmDzsKyrYCwibGlnaHRuaW5nLTE2LWluYWN0aXZlIjpg87CsrGAsImxpZ2h0bmluZy0yNC1hY3RpdmUiOmDzsKytYCwibGlnaHRuaW5nLTI0LWluYWN0aXZlIjpg87CsrmAsIm1pY3JvcGhvbmVDb3JkbGVzcy0xMi1hY3RpdmUiOmDzsKy1YCwibWljcm9waG9uZUNvcmRsZXNzLTEyLWluYWN0aXZlIjpg87CstmAsIm1pY3JvcGhvbmVDb3JkbGVzcy0xNi1hY3RpdmUiOmDzsKy3YCwibWljcm9waG9uZUNvcmRsZXNzLTE2LWluYWN0aXZlIjpg87CsuGAsIm1pY3JvcGhvbmVDb3JkbGVzcy0yNC1hY3RpdmUiOmDzsKy5YCwibWljcm9waG9uZUNvcmRsZXNzLTI0LWluYWN0aXZlIjpg87CsumAsInNub3ctMTItYWN0aXZlIjpg87CvqWAsInNub3ctMTItaW5hY3RpdmUiOmDzsK+qYCwic25vdy0xNi1hY3RpdmUiOmDzsK+rYCwic25vdy0xNi1pbmFjdGl2ZSI6YPOwr6xgLCJzbm93LTI0LWFjdGl2ZSI6YPOwr61gLCJzbm93LTI0LWluYWN0aXZlIjpg87CvrmAsInR2U3RhbmQtMTItYWN0aXZlIjpg87Cxj2AsInR2U3RhbmQtMTItaW5hY3RpdmUiOmDzsLGQYCwidHZTdGFuZC0xNi1hY3RpdmUiOmDzsLGRYCwidHZTdGFuZC0xNi1pbmFjdGl2ZSI6YPOwsZJgLCJ0dlN0YW5kLTI0LWFjdGl2ZSI6YPOwsZNgLCJ0dlN0YW5kLTI0LWluYWN0aXZlIjpg87CxlGAsIndpbmQtMTItYWN0aXZlIjpg87CxoWAsIndpbmQtMTItaW5hY3RpdmUiOmDzsLGiYCwid2luZC0xNi1hY3RpdmUiOmDzsLGjYCwid2luZC0xNi1pbmFjdGl2ZSI6YPOwsaRgLCJ3aW5kLTI0LWFjdGl2ZSI6YPOwsaVgLCJ3aW5kLTI0LWluYWN0aXZlIjpg87CxpmAsInBvbGl0aWNzQ2FuZGlkYXRlLTEyLWFjdGl2ZSI6YPOwrb1gLCJwb2xpdGljc0NhbmRpZGF0ZS0xMi1pbmFjdGl2ZSI6YPOwrb5gLCJwb2xpdGljc0NhbmRpZGF0ZS0xNi1hY3RpdmUiOmDzsK2/YCwicG9saXRpY3NDYW5kaWRhdGUtMTYtaW5hY3RpdmUiOmDzsK6AYCwicG9saXRpY3NDYW5kaWRhdGUtMjQtYWN0aXZlIjpg87CugWAsInBvbGl0aWNzQ2FuZGlkYXRlLTI0LWluYWN0aXZlIjpg87CugmAsImJhbGxvdC0xMi1hY3RpdmUiOmDzsKmXYCwiYmFsbG90LTEyLWluYWN0aXZlIjpg87CpmGAsImJhbGxvdC0xNi1hY3RpdmUiOmDzsKmZYCwiYmFsbG90LTE2LWluYWN0aXZlIjpg87CpmmAsImJhbGxvdC0yNC1hY3RpdmUiOmDzsKmbYCwiYmFsbG90LTI0LWluYWN0aXZlIjpg87CpnGAsInJhaW4tMTItYWN0aXZlIjpg87CuoWAsInJhaW4tMTItaW5hY3RpdmUiOmDzsK6iYCwicmFpbi0xNi1hY3RpdmUiOmDzsK6jYCwicmFpbi0xNi1pbmFjdGl2ZSI6YPOwrqRgLCJyYWluLTI0LWFjdGl2ZSI6YPOwrqVgLCJyYWluLTI0LWluYWN0aXZlIjpg87CupmAsImFpcmRyb3BQYXJhY2h1dGUtMTItYWN0aXZlIjpg87Cos2AsImFpcmRyb3BQYXJhY2h1dGUtMTItaW5hY3RpdmUiOmDzsKi0YCwiYWlyZHJvcFBhcmFjaHV0ZS0xNi1hY3RpdmUiOmDzsKi1YCwiYWlyZHJvcFBhcmFjaHV0ZS0xNi1pbmFjdGl2ZSI6YPOwqLZgLCJhaXJkcm9wUGFyYWNodXRlLTI0LWFjdGl2ZSI6YPOwqLdgLCJhaXJkcm9wUGFyYWNodXRlLTI0LWluYWN0aXZlIjpg87CouGAsImJpcnRoY2VydGlmaWNhdGUtMTItYWN0aXZlIjpg87Cxp2AsImJpcnRoY2VydGlmaWNhdGUtMTItaW5hY3RpdmUiOmDzsLGoYCwiYmlydGhjZXJ0aWZpY2F0ZS0xNi1hY3RpdmUiOmDzsLGpYCwiYmlydGhjZXJ0aWZpY2F0ZS0xNi1pbmFjdGl2ZSI6YPOwsapgLCJiaXJ0aGNlcnRpZmljYXRlLTI0LWFjdGl2ZSI6YPOwsatgLCJiaXJ0aGNlcnRpZmljYXRlLTI0LWluYWN0aXZlIjpg87CxrGAsImF1dG9DYXItMTItYWN0aXZlIjpg87CxrWAsImF1dG9DYXItMTItaW5hY3RpdmUiOmDzsLGuYCwiYXV0b0Nhci0xNi1hY3RpdmUiOmDzsLGvYCwiYXV0b0Nhci0xNi1pbmFjdGl2ZSI6YPOwsbBgLCJhdXRvQ2FyLTI0LWFjdGl2ZSI6YPOwsbFgLCJhdXRvQ2FyLTI0LWluYWN0aXZlIjpg87CxsmAsIndlYmhvb2tzLTEyLWFjdGl2ZSI6YPOwsbNgLCJ3ZWJob29rcy0xMi1pbmFjdGl2ZSI6YPOwsbRgLCJ3ZWJob29rcy0xNi1hY3RpdmUiOmDzsLG1YCwid2ViaG9va3MtMTYtaW5hY3RpdmUiOmDzsLG2YCwid2ViaG9va3MtMjQtYWN0aXZlIjpg87Cxt2AsIndlYmhvb2tzLTI0LWluYWN0aXZlIjpg87CxuGAsInVzZGMtMTItYWN0aXZlIjpg87CyhWAsInVzZGMtMTItaW5hY3RpdmUiOmDzsLKGYCwidXNkYy0xNi1hY3RpdmUiOmDzsLKHYCwidXNkYy0xNi1pbmFjdGl2ZSI6YPOwsohgLCJ1c2RjLTI0LWFjdGl2ZSI6YPOwsolgLCJ1c2RjLTI0LWluYWN0aXZlIjpg87CyimAsInBpZUNoYXJ0V2l0aEFycm93LTEyLWFjdGl2ZSI6YPOwsb9gLCJwaWVDaGFydFdpdGhBcnJvdy0xMi1pbmFjdGl2ZSI6YPOwsoBgLCJwaWVDaGFydFdpdGhBcnJvdy0xNi1hY3RpdmUiOmDzsLKBYCwicGllQ2hhcnRXaXRoQXJyb3ctMTYtaW5hY3RpdmUiOmDzsLKCYCwicGllQ2hhcnRXaXRoQXJyb3ctMjQtYWN0aXZlIjpg87Cyg2AsInBpZUNoYXJ0V2l0aEFycm93LTI0LWluYWN0aXZlIjpg87CyhGAsImZpbHRlckxpbmVTdGFjay0xMi1hY3RpdmUiOmDzsLG5YCwiZmlsdGVyTGluZVN0YWNrLTEyLWluYWN0aXZlIjpg87CxumAsImZpbHRlckxpbmVTdGFjay0xNi1hY3RpdmUiOmDzsLG7YCwiZmlsdGVyTGluZVN0YWNrLTE2LWluYWN0aXZlIjpg87CxvGAsImZpbHRlckxpbmVTdGFjay0yNC1hY3RpdmUiOmDzsLG9YCwiZmlsdGVyTGluZVN0YWNrLTI0LWluYWN0aXZlIjpg87CxvmAsIm92ZXJQcmVkaWN0aW9ucy0xMi1hY3RpdmUiOmDzsLKRYCwib3ZlclByZWRpY3Rpb25zLTEyLWluYWN0aXZlIjpg87CykmAsIm92ZXJQcmVkaWN0aW9ucy0xNi1hY3RpdmUiOmDzsLKTYCwib3ZlclByZWRpY3Rpb25zLTE2LWluYWN0aXZlIjpg87CylGAsIm92ZXJQcmVkaWN0aW9ucy0yNC1hY3RpdmUiOmDzsLKVYCwib3ZlclByZWRpY3Rpb25zLTI0LWluYWN0aXZlIjpg87CylmAsImNvbHVtbi0xMi1hY3RpdmUiOmDzsLKLYCwiY29sdW1uLTEyLWluYWN0aXZlIjpg87CyjGAsImNvbHVtbi0xNi1hY3RpdmUiOmDzsLKNYCwiY29sdW1uLTE2LWluYWN0aXZlIjpg87CyjmAsImNvbHVtbi0yNC1hY3RpdmUiOmDzsLKPYCwiY29sdW1uLTI0LWluYWN0aXZlIjpg87CykGAsInVuZGVyUHJlZGljdGlvbnMtMTItYWN0aXZlIjpg87Cyl2AsInVuZGVyUHJlZGljdGlvbnMtMTItaW5hY3RpdmUiOmDzsLKYYCwidW5kZXJQcmVkaWN0aW9ucy0xNi1hY3RpdmUiOmDzsLKZYCwidW5kZXJQcmVkaWN0aW9ucy0xNi1pbmFjdGl2ZSI6YPOwsppgLCJ1bmRlclByZWRpY3Rpb25zLTI0LWFjdGl2ZSI6YPOwsptgLCJ1bmRlclByZWRpY3Rpb25zLTI0LWluYWN0aXZlIjpg87CynGAsImJhc2VMb2NrLTEyLWFjdGl2ZSI6YPOwsp1gLCJiYXNlTG9jay0xMi1pbmFjdGl2ZSI6YPOwsp5gLCJiYXNlTG9jay0xNi1hY3RpdmUiOmDzsLKfYCwiYmFzZUxvY2stMTYtaW5hY3RpdmUiOmDzsLKgYCwiYmFzZUxvY2stMjQtYWN0aXZlIjpg87CyoWAsImJhc2VMb2NrLTI0LWluYWN0aXZlIjpg87CyomAsImNhcmV0RXhwYW5kLTEyLWFjdGl2ZSI6YPOwsqlgLCJjYXJldEV4cGFuZC0xMi1pbmFjdGl2ZSI6YPOwsqpgLCJjYXJldEV4cGFuZC0xNi1hY3RpdmUiOmDzsLKrYCwiY2FyZXRFeHBhbmQtMTYtaW5hY3RpdmUiOmDzsLKsYCwiY2FyZXRFeHBhbmQtMjQtYWN0aXZlIjpg87CyrWAsImNhcmV0RXhwYW5kLTI0LWluYWN0aXZlIjpg87CyrmAsImNhcmV0Q29sbGFwc2UtMTItYWN0aXZlIjpg87Cyo2AsImNhcmV0Q29sbGFwc2UtMTItaW5hY3RpdmUiOmDzsLKkYCwiY2FyZXRDb2xsYXBzZS0xNi1hY3RpdmUiOmDzsLKlYCwiY2FyZXRDb2xsYXBzZS0xNi1pbmFjdGl2ZSI6YPOwsqZgLCJjYXJldENvbGxhcHNlLTI0LWFjdGl2ZSI6YPOwsqdgLCJjYXJldENvbGxhcHNlLTI0LWluYWN0aXZlIjpg87CyqGAsIm9wZW5Cb29rLTEyLWFjdGl2ZSI6YPOwsrVgLCJvcGVuQm9vay0xMi1pbmFjdGl2ZSI6YPOwsrZgLCJvcGVuQm9vay0xNi1hY3RpdmUiOmDzsLK3YCwib3BlbkJvb2stMTYtaW5hY3RpdmUiOmDzsLK4YCwib3BlbkJvb2stMjQtYWN0aXZlIjpg87CyuWAsIm9wZW5Cb29rLTI0LWluYWN0aXZlIjpg87CyumAsInBhcmxheXNFbXB0eS0xMi1hY3RpdmUiOmDzsLOBYCwicGFybGF5c0VtcHR5LTEyLWluYWN0aXZlIjpg87CzgmAsInBhcmxheXNFbXB0eS0xNi1hY3RpdmUiOmDzsLODYCwicGFybGF5c0VtcHR5LTE2LWluYWN0aXZlIjpg87CzhGAsInBhcmxheXNFbXB0eS0yNC1hY3RpdmUiOmDzsLOFYCwicGFybGF5c0VtcHR5LTI0LWluYWN0aXZlIjpg87CzhmAsInBhcmxheXNBZGQtMTItYWN0aXZlIjpg87Cyu2AsInBhcmxheXNBZGQtMTItaW5hY3RpdmUiOmDzsLK8YCwicGFybGF5c0FkZC0xNi1hY3RpdmUiOmDzsLK9YCwicGFybGF5c0FkZC0xNi1pbmFjdGl2ZSI6YPOwsr5gLCJwYXJsYXlzQWRkLTI0LWFjdGl2ZSI6YPOwsr9gLCJwYXJsYXlzQWRkLTI0LWluYWN0aXZlIjpg87CzgGAsImFkZE1vZHVsZVVJLTEyLWFjdGl2ZSI6YPOwsq9gLCJhZGRNb2R1bGVVSS0xMi1pbmFjdGl2ZSI6YPOwsrBgLCJhZGRNb2R1bGVVSS0xNi1hY3RpdmUiOmDzsLKxYCwiYWRkTW9kdWxlVUktMTYtaW5hY3RpdmUiOmDzsLKyYCwiYWRkTW9kdWxlVUktMjQtYWN0aXZlIjpg87Cys2AsImFkZE1vZHVsZVVJLTI0LWluYWN0aXZlIjpg87CytGAsImlwb0NoYXJ0LTEyLWFjdGl2ZSI6YPOws4dgLCJpcG9DaGFydC0xMi1pbmFjdGl2ZSI6YPOws4hgLCJpcG9DaGFydC0xNi1hY3RpdmUiOmDzsLOJYCwiaXBvQ2hhcnQtMTYtaW5hY3RpdmUiOmDzsLOKYCwiaXBvQ2hhcnQtMjQtYWN0aXZlIjpg87Czi2AsImlwb0NoYXJ0LTI0LWluYWN0aXZlIjpg87CzjGAsImxlYXJuaW5nQ2VudGVyLTEyLWFjdGl2ZSI6YPOws41gLCJsZWFybmluZ0NlbnRlci0xMi1pbmFjdGl2ZSI6YPOws45gLCJsZWFybmluZ0NlbnRlci0xNi1hY3RpdmUiOmDzsLOPYCwibGVhcm5pbmdDZW50ZXItMTYtaW5hY3RpdmUiOmDzsLOQYCwibGVhcm5pbmdDZW50ZXItMjQtYWN0aXZlIjpg87CzkWAsImxlYXJuaW5nQ2VudGVyLTI0LWluYWN0aXZlIjpg87CzkmB9O0N1KCk7ZnVuY3Rpb24gREMoZSl7dmFyIHQ7cmV0dXJuIHR5cGVvZiBTdT09YG9iamVjdGAmJigodD1TdSk9PW51bGx8fCh0PXQuZW52KT09bnVsbD92b2lkIDA6dC5OT0RFX0VOVik9PT1lfXZhciBPQz0oKT0+REMoYGRldmVsb3BtZW50YCksVW1lPSgpPT5EQyhgcHJvZHVjdGlvbmApLFdtZT0oKT0+REMoYHRlc3RgKSxrQz0oKT0+e3ZhciBlO3JldHVybiEhKHR5cGVvZiBTdT09YG9iamVjdGAmJiEoKGU9U3UpPT1udWxsfHwoZT1lLmVudik9PW51bGwpJiZlLlNUT1JZQk9PS19TS0lQX0FOSU1BVElPTil8fHR5cGVvZiBTVE9SWUJPT0tfU0tJUF9BTklNQVRJT048YHVgfSxHbWU9e2xpZ2h0U3BlY3RydW06YGxpZ2h0YCxkYXJrU3BlY3RydW06YGRhcmtgLGxpZ2h0Q29sb3I6YGxpZ2h0Q29sb3JgLGRhcmtDb2xvcjpgZGFya0NvbG9yYCxsaWdodElsbHVzdHJhdGlvbkNvbG9yOmBsaWdodElsbHVzdHJhdGlvbkNvbG9yYCxkYXJrSWxsdXN0cmF0aW9uQ29sb3I6YGRhcmtJbGx1c3RyYXRpb25Db2xvcmAsaWxsdXN0cmF0aW9uQ29sb3I6YGlsbHVzdHJhdGlvbmAsc3BlY3RydW06YGAsY29sb3I6YGNvbG9yYCxzcGFjZTpgc3BhY2VgLGljb25TaXplOmBpY29uU2l6ZWAsYXZhdGFyU2l6ZTpgYXZhdGFyU2l6ZWAsYm9yZGVyV2lkdGg6YGJvcmRlcldpZHRoYCxib3JkZXJSYWRpdXM6YGJvcmRlclJhZGl1c2AsZm9udEZhbWlseTpgZm9udEZhbWlseWAsZm9udEZhbWlseU1vbm86YGZvbnRGYW1pbHlNb25vYCxmb250U2l6ZTpgZm9udFNpemVgLGZvbnRXZWlnaHQ6YGZvbnRXZWlnaHRgLGxpbmVIZWlnaHQ6YGxpbmVIZWlnaHRgLHRleHRUcmFuc2Zvcm06YHRleHRUcmFuc2Zvcm1gLHNoYWRvdzpgc2hhZG93YCxjb250cm9sU2l6ZTpgY29udHJvbFNpemVgfSxLbWU9L1wuL2cscW1lPWU9PmUucmVwbGFjZSgvKFthLXpdKShcZCspJC9pLGAkMS0kMmApLEptZT1lPT57bGV0IHQ9e30sbj1PYmplY3Qua2V5cyhlKTtmb3IobGV0IHIgb2Ygbil7bGV0IG49ZVtyXTtpZighbnx8cj09PWBpZGApY29udGludWU7aWYocj09PWBhY3RpdmVDb2xvclNjaGVtZWApe3RbYC0tYWN0aXZlQ29sb3JTY2hlbWVgXT1lLmFjdGl2ZUNvbG9yU2NoZW1lO2NvbnRpbnVlfWlmKHI9PT1gbGlnaHRJbGx1c3RyYXRpb25Db2xvcmB8fHI9PT1gZGFya0lsbHVzdHJhdGlvbkNvbG9yYCljb250aW51ZTtpZihyPT09YGlsbHVzdHJhdGlvbkNvbG9yYCl7Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKG4pKXtsZXQgcj1uW2VdO3IhPT12b2lkIDAmJih0W2AtLWlsbHVzdHJhdGlvbi0ke3FtZShlKX1gXT1yKX1jb250aW51ZX1sZXQgaT1HbWVbcl0sYT1pP2AtLSR7aX0tYDpgLS1gLG89T2JqZWN0LmtleXMobik7Zm9yKGxldCBlIG9mIG8pe2xldCByPW5bZV07aWYocj09PXZvaWQgMCljb250aW51ZTtsZXQgaT1gJHthfSR7ZX1gLnJlcGxhY2UoS21lLGBfYCk7dFtpXT10eXBlb2Ygcj09YG51bWJlcmA/citgcHhgOnJ9fXJldHVybiB0fSxZbWU9YGNkcy1kZWZhdWx0YCxBQz17Ymx1ZTA6YDI0NSwyNDgsMjU1YCxibHVlNTpgMjExLDIyNSwyNTVgLGJsdWUxMDpgMTc2LDIwMiwyNTVgLGJsdWUxNTpgMTQ2LDE4MiwyNTVgLGJsdWUyMDpgMTE1LDE2MiwyNTVgLGJsdWUzMDpgNzAsMTMyLDI1NWAsYmx1ZTQwOmAzOCwxMTAsMjU1YCxibHVlNTA6YDE2LDk0LDI1NWAsYmx1ZTYwOmAwLDgyLDI1NWAsYmx1ZTcwOmAwLDc1LDIzNWAsYmx1ZTgwOmAwLDYyLDE5M2AsYmx1ZTkwOmAwLDQxLDEzMGAsYmx1ZTEwMDpgMCwyNCw3N2AsZ3JlZW4wOmAyNDUsMjU1LDI1MWAsZ3JlZW41OmAyMDMsMjQ1LDIyN2AsZ3JlZW4xMDpgMTYzLDIzNSwyMDVgLGdyZWVuMTU6YDEzMSwyMjQsMTg2YCxncmVlbjIwOmAxMDEsMjE0LDE2N2AsZ3JlZW4zMDpgNjAsMTk0LDEzOGAsZ3JlZW40MDpgMzQsMTczLDExNWAsZ3JlZW41MDpgMTgsMTUzLDk3YCxncmVlbjYwOmA5LDEzMyw4MWAsZ3JlZW43MDpgNCwxMTIsNjdgLGdyZWVuODA6YDIsODMsNTBgLGdyZWVuOTA6YDAsNTcsMzVgLGdyZWVuMTAwOmAwLDMxLDE4YCxvcmFuZ2UwOmAyNTUsMjUwLDI0NWAsb3JhbmdlNTpgMjU0LDIzMiwyMTBgLG9yYW5nZTEwOmAyNTMsMjEzLDE3NmAsb3JhbmdlMTU6YDI1MSwxOTQsMTQ3YCxvcmFuZ2UyMDpgMjQ5LDE3NCwxMThgLG9yYW5nZTMwOmAyNDQsMTQwLDc2YCxvcmFuZ2U0MDpgMjM3LDExMiw0N2Asb3JhbmdlNTA6YDIyNSw4OSwyN2Asb3JhbmdlNjA6YDIwNyw3MSwxNGAsb3JhbmdlNzA6YDE4MSw1NCw2YCxvcmFuZ2U4MDpgMTQ1LDM5LDJgLG9yYW5nZTkwOmAxMDAsMjYsMGAsb3JhbmdlMTAwOmA1MSwxMywwYCxncmF5MDpgMjU1LDI1NSwyNTVgLGdyYXk1OmAyNDcsMjQ4LDI0OWAsZ3JheTEwOmAyMzgsMjQwLDI0M2AsZ3JheTE1OmAyMjIsMjI1LDIzMWAsZ3JheTIwOmAyMDYsMjEwLDIxOWAsZ3JheTMwOmAxNzcsMTgzLDE5NWAsZ3JheTQwOmAxMzcsMTQ0LDE1OGAsZ3JheTUwOmAxMTMsMTIwLDEzNGAsZ3JheTYwOmA5MSw5NywxMTBgLGdyYXk3MDpgNzAsNzUsODVgLGdyYXk4MDpgNTAsNTMsNjFgLGdyYXk5MDpgMzAsMzIsMzdgLGdyYXkxMDA6YDEwLDExLDEzYCxpbmRpZ28wOmAyNDYsMjQ3LDI1NWAsaW5kaWdvNTpgMjMwLDIzMiwyNTVgLGluZGlnbzEwOmAyMTQsMjE4LDI1NGAsaW5kaWdvMTU6YDE5OCwyMDQsMjUzYCxpbmRpZ28yMDpgMTgxLDE4OSwyNTNgLGluZGlnbzMwOmAxNDgsMTYxLDI1MWAsaW5kaWdvNDA6YDExNiwxMzUsMjQ3YCxpbmRpZ281MDpgODksMTExLDI0MmAsaW5kaWdvNjA6YDY2LDkxLDIzM2AsaW5kaWdvNzA6YDQ3LDc0LDIxNWAsaW5kaWdvODA6YDMxLDU0LDE3M2AsaW5kaWdvOTA6YDE3LDMyLDEwN2AsaW5kaWdvMTAwOmA4LDE1LDUxYCxwaW5rMDpgMjU1LDI0NSwyNTVgLHBpbms1OmAyNTMsMjI4LDI1M2AscGluazEwOmAyNTEsMjEyLDI1MGAscGluazE1OmAyNDgsMTk1LDI0NWAscGluazIwOmAyNDQsMTc4LDI0MGAscGluazMwOmAyMzUsMTQzLDIyN2AscGluazQwOmAyMjEsMTEwLDIwOWAscGluazUwOmAyMDMsODEsMTg3YCxwaW5rNjA6YDE3OSw1OCwxNjJgLHBpbms3MDpgMTQ5LDM5LDEzM2AscGluazgwOmAxMTYsMjYsMTAyYCxwaW5rOTA6YDgzLDE3LDcyYCxwaW5rMTAwOmA1MSwxMCw0NGAscHVycGxlMDpgMjUxLDI0NywyNTVgLHB1cnBsZTU6YDI0NCwyMzIsMjU1YCxwdXJwbGUxMDpgMjM3LDIxNywyNTVgLHB1cnBsZTE1OmAyMzAsMjAxLDI1NWAscHVycGxlMjA6YDIyMiwxODQsMjU1YCxwdXJwbGUzMDpgMjA1LDE1MywyNTNgLHB1cnBsZTQwOmAxODgsMTIzLDI1MWAscHVycGxlNTA6YDE1NywxMDcsMjQyYCxwdXJwbGU2MDpgMTM4LDg1LDIzM2AscHVycGxlNzA6YDExOSw2NywyMTVgLHB1cnBsZTgwOmA5MCw0OCwxNzNgLHB1cnBsZTkwOmA1NCwyNywxMDdgLHB1cnBsZTEwMDpgMjUsMTMsNTFgLHJlZDA6YDI1NSwyNDUsMjQ2YCxyZWQ1OmAyNTQsMjI1LDIyOGAscmVkMTA6YDI1MywyMDYsMjEwYCxyZWQxNTpgMjUxLDE4NiwxOTFgLHJlZDIwOmAyNDksMTY2LDE3M2AscmVkMzA6YDI0NCwxMjcsMTM2YCxyZWQ0MDpgMjM3LDg5LDEwMmAscmVkNTA6YDIyNSw1Nyw3MWAscmVkNjA6YDIwNywzMiw0N2AscmVkNzA6YDE4MSwxNSwyOWAscmVkODA6YDE0NSw1LDE2YCxyZWQ5MDpgMTAwLDEsOWAscmVkMTAwOmA1MSwwLDRgLHRlYWwwOmAyNDAsMjU0LDI1NWAsdGVhbDU6YDE4OCwyNDYsMjUzYCx0ZWFsMTA6YDEzNiwyMzcsMjUxYCx0ZWFsMTU6YDkzLDIyNiwyNDhgLHRlYWwyMDpgNTEsMjEzLDI0NGAsdGVhbDMwOmAwLDE4OCwyMzVgLHRlYWw0MDpgMCwxNjksMjIxYCx0ZWFsNTA6YDAsMTQ3LDIwM2AsdGVhbDYwOmAwLDEyMywxNzlgLHRlYWw3MDpgMCw5NywxNDlgLHRlYWw4MDpgMCw3MSwxMTZgLHRlYWw5MDpgMCw0Nyw4M2AsdGVhbDEwMDpgMCwyNyw1MWAseWVsbG93MDpgMjU1LDI1MiwyNDFgLHllbGxvdzU6YDI1NSwyNDQsMTkyYCx5ZWxsb3cxMDpgMjU1LDI0MCwxNDVgLHllbGxvdzE1OmAyNTUsMjM0LDEwMGAseWVsbG93MjA6YDI1NSwyMjgsNTRgLHllbGxvdzMwOmAyNDcsMjEwLDI2YCx5ZWxsb3c0MDpgMjM1LDE4NiwwYCx5ZWxsb3c1MDpgMjA3LDE1MSwwYCx5ZWxsb3c2MDpgMTc0LDExMywwYCx5ZWxsb3c3MDpgMTM2LDc2LDBgLHllbGxvdzgwOmA5Niw0OCwwYCx5ZWxsb3c5MDpgNTgsMjAsMGAseWVsbG93MTAwOmAyNyw2LDBgLGNoYXJ0cmV1c2UwOmAyNDUsMjU1LDI1MGAsY2hhcnRyZXVzZTU6YDIyMSwyNTEsMjMyYCxjaGFydHJldXNlMTA6YDE5OCwyNDcsMjA5YCxjaGFydHJldXNlMTU6YDE3NiwyNDIsMTgyYCxjaGFydHJldXNlMjA6YDE1OSwyMzgsMTU1YCxjaGFydHJldXNlMzA6YDEzNywyMjMsMTE3YCxjaGFydHJldXNlNDA6YDEyNywyMDgsODdgLGNoYXJ0cmV1c2U1MDpgODYsMTc5LDY0YCxjaGFydHJldXNlNjA6YDUzLDE1MSw0OGAsY2hhcnRyZXVzZTcwOmAzNSwxMjIsNDNgLGNoYXJ0cmV1c2U4MDpgMjUsOTMsNDFgLGNoYXJ0cmV1c2U5MDpgMTcsNjQsMzVgLGNoYXJ0cmV1c2UxMDA6YDcsMjYsMTdgfSxqQz17Ymx1ZTA6YDAsMTYsNTFgLGJsdWU1OmAxLDI5LDkxYCxibHVlMTA6YDEsNDIsMTMwYCxibHVlMTU6YDMsNTEsMTU0YCxibHVlMjA6YDUsNTksMTc3YCxibHVlMzA6YDEwLDcyLDIwNmAsYmx1ZTQwOmAxOSw4NCwyMjVgLGJsdWU1MDpgMzMsOTgsMjM4YCxibHVlNjA6YDU1LDExNSwyNDVgLGJsdWU3MDpgODcsMTM5LDI1MGAsYmx1ZTgwOmAxMzIsMTcwLDI1M2AsYmx1ZTkwOmAxODUsMjA3LDI1NWAsYmx1ZTEwMDpgMjQ1LDI0OCwyNTVgLGdyZWVuMDpgMCwzMSwxOGAsZ3JlZW41OmAwLDQ4LDI5YCxncmVlbjEwOmAxLDcwLDQyYCxncmVlbjE1OmAyLDgyLDQ4YCxncmVlbjIwOmAyLDkyLDU1YCxncmVlbjMwOmA2LDExMiw2OGAsZ3JlZW40MDpgMTEsMTMzLDgyYCxncmVlbjUwOmAyMSwxNTMsOThgLGdyZWVuNjA6YDM5LDE3MywxMTdgLGdyZWVuNzA6YDY4LDE5NCwxNDFgLGdyZWVuODA6YDExMSwyMTQsMTcxYCxncmVlbjkwOmAxNzEsMjM1LDIwOGAsZ3JlZW4xMDA6YDI0NSwyNTUsMjUxYCxvcmFuZ2UwOmA1MSwxMywwYCxvcmFuZ2U1OmA3OSwyMCwwYCxvcmFuZ2UxMDpgMTA3LDI4LDFgLG9yYW5nZTE1OmAxMzEsMzYsMmAsb3JhbmdlMjA6YDE1NSw0NCw0YCxvcmFuZ2UzMDpgMTg5LDU5LDlgLG9yYW5nZTQwOmAyMTMsNzYsMThgLG9yYW5nZTUwOmAyMzAsOTYsMzJgLG9yYW5nZTYwOmAyNDAsMTIwLDU0YCxvcmFuZ2U3MDpgMjQ4LDE1MCw4NmAsb3JhbmdlODA6YDI1MiwxODUsMTMxYCxvcmFuZ2U5MDpgMjU0LDIxOSwxODVgLG9yYW5nZTEwMDpgMjU1LDI1MCwyNDVgLGdyYXkwOmAxMCwxMSwxM2AsZ3JheTU6YDIwLDIxLDI1YCxncmF5MTA6YDMwLDMyLDM3YCxncmF5MTU6YDQwLDQzLDQ5YCxncmF5MjA6YDUwLDUzLDYxYCxncmF5MzA6YDcwLDc1LDg1YCxncmF5NDA6YDkxLDk3LDExMGAsZ3JheTUwOmAxMTQsMTIwLDEzNGAsZ3JheTYwOmAxMzgsMTQ1LDE1OGAsZ3JheTcwOmAxNjUsMTcwLDE4MmAsZ3JheTgwOmAxOTMsMTk4LDIwN2AsZ3JheTkwOmAyMjQsMjI2LDIzMWAsZ3JheTEwMDpgMjU1LDI1NSwyNTVgLGluZGlnbzA6YDgsMTUsNTFgLGluZGlnbzU6YDE0LDI3LDkxYCxpbmRpZ28xMDpgMjEsMzksMTMwYCxpbmRpZ28xNTpgMjcsNDcsMTU0YCxpbmRpZ28yMDpgMzMsNTYsMTc3YCxpbmRpZ28zMDpgNDgsNzMsMjA2YCxpbmRpZ280MDpgNjgsOTIsMjI1YCxpbmRpZ281MDpgOTIsMTEzLDIzOGAsaW5kaWdvNjA6YDEyMSwxMzgsMjQ1YCxpbmRpZ283MDpgMTUzLDE2NSwyNTBgLGluZGlnbzgwOmAxODcsMTk0LDI1M2AsaW5kaWdvOTA6YDIxOSwyMjMsMjU1YCxpbmRpZ28xMDA6YDI0NiwyNDcsMjU1YCxwaW5rMDpgNTEsMTAsNDRgLHBpbms1OmA3MCwxNCw2MWAscGluazEwOmA4OSwxOSw3OGAscGluazE1OmAxMDgsMjQsOTRgLHBpbmsyMDpgMTI2LDMwLDExMWAscGluazMwOmAxNTksNDQsMTQyYCxwaW5rNDA6YDE4Nyw2NCwxNzBgLHBpbms1MDpgMjA4LDg4LDE5M2AscGluazYwOmAyMjUsMTE3LDIxNGAscGluazcwOmAyMzcsMTQ5LDIzMGAscGluazgwOmAyNDYsMTg0LDI0M2AscGluazkwOmAyNTIsMjE3LDI1MWAscGluazEwMDpgMjU1LDI0NSwyNTVgLHB1cnBsZTA6YDI1LDEzLDUxYCxwdXJwbGU1OmA0MywyMiw4OWAscHVycGxlMTA6YDczLDMwLDEzN2AscHVycGxlMTU6YDk3LDM3LDE3NWAscHVycGxlMjA6YDEyMyw0NSwyMTFgLHB1cnBsZTMwOmAxNDIsNTEsMjM0YCxwdXJwbGU0MDpgMTY0LDg0LDI0NGAscHVycGxlNTA6YDE4OCwxMjMsMjUxYCxwdXJwbGU2MDpgMjA1LDE1MywyNTNgLHB1cnBsZTcwOmAyMTcsMTc2LDI1NGAscHVycGxlODA6YDIzMCwyMDEsMjU1YCxwdXJwbGU5MDpgMjM3LDIxNywyNTVgLHB1cnBsZTEwMDpgMjUxLDI0NywyNTVgLHJlZDA6YDUxLDAsNGAscmVkNTpgNzksMCw3YCxyZWQxMDpgMTA3LDEsMTBgLHJlZDE1OmAxMzEsNCwxNGAscmVkMjA6YDE1NSw3LDE5YCxyZWQzMDpgMTg5LDE5LDMzYCxyZWQ0MDpgMjEzLDM4LDUyYCxyZWQ1MDpgMjMwLDY0LDc4YCxyZWQ2MDpgMjQwLDk3LDEwOWAscmVkNzA6YDI0OCwxMzQsMTQ0YCxyZWQ4MDpgMjUyLDE3NCwxODFgLHJlZDkwOmAyNTQsMjEzLDIxNmAscmVkMTAwOmAyNTUsMjQ1LDI0NmAsdGVhbDA6YDAsMjAsMzhgLHRlYWw1OmAwLDMyLDU5YCx0ZWFsMTA6YDAsNDUsNzlgLHRlYWwxNTpgMCw1OCw5OWAsdGVhbDIwOmAwLDcyLDExOGAsdGVhbDMwOmAwLDk5LDE1M2AsdGVhbDQwOmAwLDEyNSwxODJgLHRlYWw1MDpgMCwxNDksMjA1YCx0ZWFsNjA6YDAsMTcwLDIyM2AsdGVhbDcwOmA2LDE5MCwyMzZgLHRlYWw4MDpgNjksMjE3LDI0NWAsdGVhbDkwOmAxNDksMjM5LDI1MWAsdGVhbDEwMDpgMjQwLDI1NCwyNTVgLHllbGxvdzA6YDI3LDYsMGAseWVsbG93NTpgNDksMTcsMGAseWVsbG93MTA6YDgxLDQwLDBgLHllbGxvdzE1OmA5Niw0OCwwYCx5ZWxsb3cyMDpgMTE1LDY0LDBgLHllbGxvdzMwOmAxNDcsOTYsMGAseWVsbG93NDA6YDE3NSwxMjgsMGAseWVsbG93NTA6YDE5OSwxNTgsMGAseWVsbG93NjA6YDIyMiwxODksMjNgLHllbGxvdzcwOmAyMjksMjA1LDQ4YCx5ZWxsb3c4MDpgMjQyLDIyMiw5NGAseWVsbG93OTA6YDI1NSwyNDAsMTQ1YCx5ZWxsb3cxMDA6YDI1NSwyNTIsMjQxYCxjaGFydHJldXNlMDpgNSwyMiwxNGAsY2hhcnRyZXVzZTU6YDE0LDU0LDI5YCxjaGFydHJldXNlMTA6YDIxLDc5LDM0YCxjaGFydHJldXNlMTU6YDI5LDEwMywzNmAsY2hhcnRyZXVzZTIwOmA0NSwxMjgsNDBgLGNoYXJ0cmV1c2UzMDpgNzMsMTUyLDU0YCxjaGFydHJldXNlNDA6YDEwNywxNzYsNzNgLGNoYXJ0cmV1c2U1MDpgMTIzLDIwMCwxMDVgLGNoYXJ0cmV1c2U2MDpgMTQwLDIwOSwxMzZgLGNoYXJ0cmV1c2U3MDpgMTU4LDIxNywxNjNgLGNoYXJ0cmV1c2U4MDpgMTc4LDIyMiwxODhgLGNoYXJ0cmV1c2U5MDpgMjA5LDIzOCwyMjBgLGNoYXJ0cmV1c2UxMDA6YDI0NSwyNTUsMjUwYH0sTUM9e2lkOlltZSxsaWdodFNwZWN0cnVtOkFDLGRhcmtTcGVjdHJ1bTpqQyxsaWdodENvbG9yOntmZzpgcmdiKCR7QUMuZ3JheTEwMH0pYCxmZ011dGVkOmByZ2IoJHtBQy5ncmF5NjB9KWAsZmdJbnZlcnNlOmByZ2IoJHtBQy5ncmF5MH0pYCxmZ1ByaW1hcnk6YHJnYigke0FDLmJsdWU2MH0pYCxmZ1dhcm5pbmc6YHJnYigke0FDLm9yYW5nZTYwfSlgLGZnUG9zaXRpdmU6YHJnYigke0FDLmdyZWVuNjB9KWAsZmdOZWdhdGl2ZTpgcmdiKCR7QUMucmVkNjB9KWAsYmc6YHJnYigke0FDLmdyYXkwfSlgLGJnQWx0ZXJuYXRlOmByZ2IoJHtBQy5ncmF5MTB9KWAsYmdJbnZlcnNlOmByZ2IoJHtBQy5ncmF5MTAwfSlgLGJnT3ZlcmxheTpgcmdiYSgke0FDLmdyYXk4MH0sMC4zMylgLGJnUHJpbWFyeTpgcmdiKCR7QUMuYmx1ZTYwfSlgLGJnUHJpbWFyeVdhc2g6YHJnYigke0FDLmJsdWUwfSlgLGJnU2Vjb25kYXJ5OmByZ2IoJHtBQy5ncmF5MTB9KWAsYmdUZXJ0aWFyeTpgcmdiKCR7QUMuZ3JheTIwfSlgLGJnU2Vjb25kYXJ5V2FzaDpgcmdiKCR7QUMuZ3JheTV9KWAsYmdOZWdhdGl2ZTpgcmdiKCR7QUMucmVkNjB9KWAsYmdOZWdhdGl2ZVdhc2g6YHJnYigke0FDLnJlZDB9KWAsYmdQb3NpdGl2ZTpgcmdiKCR7QUMuZ3JlZW42MH0pYCxiZ1Bvc2l0aXZlV2FzaDpgcmdiKCR7QUMuZ3JlZW4wfSlgLGJnV2FybmluZzpgcmdiKCR7QUMub3JhbmdlNjB9KWAsYmdXYXJuaW5nV2FzaDpgcmdiKCR7QUMub3JhbmdlMH0pYCxjdXJyZW50Q29sb3I6YGN1cnJlbnRDb2xvcmAsYmdMaW5lOmByZ2JhKCR7QUMuZ3JheTYwfSwwLjIpYCxiZ0xpbmVIZWF2eTpgcmdiYSgke0FDLmdyYXk2MH0sMC42NilgLGJnTGluZUludmVyc2U6YHJnYigke0FDLmdyYXkwfSlgLGJnTGluZVByaW1hcnk6YHJnYigke0FDLmJsdWU2MH0pYCxiZ0xpbmVQcmltYXJ5U3VidGxlOmByZ2IoJHtBQy5ibHVlMjB9KWAsYmdFbGV2YXRpb24xOmByZ2IoJHtBQy5ncmF5MH0pYCxiZ0VsZXZhdGlvbjI6YHJnYigke0FDLmdyYXkwfSlgLGFjY2VudFN1YnRsZUdyZWVuOmByZ2IoJHtBQy5ncmVlbjB9KWAsYWNjZW50Qm9sZEdyZWVuOmByZ2IoJHtBQy5ncmVlbjYwfSlgLGFjY2VudFN1YnRsZUJsdWU6YHJnYigke0FDLmJsdWUwfSlgLGFjY2VudEJvbGRCbHVlOmByZ2IoJHtBQy5ibHVlNjB9KWAsYWNjZW50U3VidGxlUHVycGxlOmByZ2IoJHtBQy5wdXJwbGUwfSlgLGFjY2VudEJvbGRQdXJwbGU6YHJnYigke0FDLnB1cnBsZTgwfSlgLGFjY2VudFN1YnRsZVllbGxvdzpgcmdiKCR7QUMueWVsbG93MH0pYCxhY2NlbnRCb2xkWWVsbG93OmByZ2IoJHtBQy55ZWxsb3czMH0pYCxhY2NlbnRTdWJ0bGVSZWQ6YHJnYigke0FDLnJlZDB9KWAsYWNjZW50Qm9sZFJlZDpgcmdiKCR7QUMucmVkNjB9KWAsYWNjZW50U3VidGxlR3JheTpgcmdiKCR7QUMuZ3JheTEwfSlgLGFjY2VudEJvbGRHcmF5OmByZ2IoJHtBQy5ncmF5ODB9KWAsdHJhbnNwYXJlbnQ6YHJnYmEoJHtBQy5ncmF5MH0sMClgfSxkYXJrQ29sb3I6e2ZnOmByZ2IoJHtqQy5ncmF5MTAwfSlgLGZnSW52ZXJzZTpgcmdiKCR7akMuZ3JheTB9KWAsZmdNdXRlZDpgcmdiKCR7akMuZ3JheTYwfSlgLGZnUHJpbWFyeTpgcmdiKCR7akMuYmx1ZTcwfSlgLGZnUG9zaXRpdmU6YHJnYigke2pDLmdyZWVuNjB9KWAsZmdOZWdhdGl2ZTpgcmdiKCR7akMucmVkNjB9KWAsZmdXYXJuaW5nOmByZ2IoJHtqQy5vcmFuZ2U3MH0pYCxiZzpgcmdiKCR7akMuZ3JheTB9KWAsYmdBbHRlcm5hdGU6YHJnYigke2pDLmdyYXk1fSlgLGJnSW52ZXJzZTpgcmdiKCR7akMuZ3JheTEwMH0pYCxiZ092ZXJsYXk6YHJnYmEoJHtqQy5ncmF5MH0sMC4zMylgLGJnUHJpbWFyeTpgcmdiKCR7akMuYmx1ZTcwfSlgLGJnUHJpbWFyeVdhc2g6YHJnYigke2pDLmJsdWUwfSlgLGJnU2Vjb25kYXJ5OmByZ2IoJHtqQy5ncmF5MTV9KWAsYmdUZXJ0aWFyeTpgcmdiKCR7akMuZ3JheTIwfSlgLGJnU2Vjb25kYXJ5V2FzaDpgcmdiKCR7akMuZ3JheTV9KWAsYmdOZWdhdGl2ZTpgcmdiKCR7akMucmVkNjB9KWAsYmdOZWdhdGl2ZVdhc2g6YHJnYigke2pDLnJlZDB9KWAsYmdQb3NpdGl2ZTpgcmdiKCR7akMuZ3JlZW42MH0pYCxiZ1Bvc2l0aXZlV2FzaDpgcmdiKCR7akMuZ3JlZW4wfSlgLGJnV2FybmluZzpgcmdiKCR7akMub3JhbmdlNjB9KWAsYmdXYXJuaW5nV2FzaDpgcmdiKCR7akMub3JhbmdlMH0pYCxjdXJyZW50Q29sb3I6YGN1cnJlbnRDb2xvcmAsYmdMaW5lOmByZ2JhKCR7akMuZ3JheTYwfSwwLjIpYCxiZ0xpbmVJbnZlcnNlOmByZ2IoJHtqQy5ncmF5MH0pYCxiZ0xpbmVIZWF2eTpgcmdiYSgke2pDLmdyYXk2MH0sMC42NilgLGJnTGluZVByaW1hcnk6YHJnYigke2pDLmJsdWU3MH0pYCxiZ0xpbmVQcmltYXJ5U3VidGxlOmByZ2IoJHtqQy5ibHVlMjB9KWAsYmdFbGV2YXRpb24xOmByZ2IoJHtqQy5ncmF5NX0pYCxiZ0VsZXZhdGlvbjI6YHJnYigke2pDLmdyYXkxMH0pYCxhY2NlbnRTdWJ0bGVHcmVlbjpgcmdiKCR7akMuZ3JlZW4wfSlgLGFjY2VudEJvbGRHcmVlbjpgcmdiKCR7akMuZ3JlZW42MH0pYCxhY2NlbnRTdWJ0bGVCbHVlOmByZ2IoJHtqQy5ibHVlMH0pYCxhY2NlbnRCb2xkQmx1ZTpgcmdiKCR7akMuYmx1ZTYwfSlgLGFjY2VudFN1YnRsZVB1cnBsZTpgcmdiKCR7akMucHVycGxlMH0pYCxhY2NlbnRCb2xkUHVycGxlOmByZ2IoJHtqQy5wdXJwbGU4MH0pYCxhY2NlbnRTdWJ0bGVZZWxsb3c6YHJnYigke2pDLnllbGxvdzB9KWAsYWNjZW50Qm9sZFllbGxvdzpgcmdiKCR7akMueWVsbG93MzB9KWAsYWNjZW50U3VidGxlUmVkOmByZ2IoJHtqQy5yZWQwfSlgLGFjY2VudEJvbGRSZWQ6YHJnYigke2pDLnJlZDYwfSlgLGFjY2VudFN1YnRsZUdyYXk6YHJnYigke2pDLmdyYXkxMH0pYCxhY2NlbnRCb2xkR3JheTpgcmdiKCR7akMuZ3JheTgwfSlgLHRyYW5zcGFyZW50OmByZ2JhKCR7akMuZ3JheTB9LDApYH0sbGlnaHRJbGx1c3RyYXRpb25Db2xvcjp7cHJpbWFyeTpgcmdiKCR7QUMuYmx1ZTYwfSlgLGJsYWNrOmByZ2IoJHtBQy5ncmF5MTAwfSlgLHdoaXRlOmByZ2IoJHtBQy5ncmF5MH0pYCxncmF5OmByZ2IoJHtBQy5ncmF5MjB9KWAsZ3JheTI6YHJnYigxMCwgMTEsIDE1KWAsZ3JheTM6YHJnYigyMDYsIDIxMCwgMjIwKWAsZ3JheTQ6YHJnYigyMDAsIDIwMywgMjEwKWAscG9zaXRpdmU6YHJnYigke0FDLmdyZWVuMzB9KWAsbmVnYXRpdmU6YHJnYigke0FDLnJlZDUwfSlgLGFjY2VudDE6YHJnYigyNTUsIDIxMCwgMClgLGFjY2VudDI6YHJnYigke0FDLnRlYWwxNX0pYCxhY2NlbnQzOmByZ2IoJHtBQy5vcmFuZ2U0MH0pYCxhY2NlbnQ0OmByZ2IoJHtBQy5ibHVlMjB9KWAsaW52ZXJ0OmByZ2IoMTAsIDExLCAxNClgLGludmVydDI6YHJnYigyNTUsIDI1NSwgMjU0KWB9LGRhcmtJbGx1c3RyYXRpb25Db2xvcjp7cHJpbWFyeTpgcmdiKCR7akMuYmx1ZTcwfSlgLGJsYWNrOmByZ2IoJHtqQy5ncmF5MH0pYCx3aGl0ZTpgcmdiKCR7akMuZ3JheTEwMH0pYCxncmF5OmByZ2IoJHtqQy5ncmF5MzB9KWAsZ3JheTI6YHJnYigke2pDLmdyYXkzMH0pYCxncmF5MzpgcmdiKCR7akMuZ3JheTEwMH0pYCxncmF5NDpgcmdiKCR7akMuZ3JheTEwMH0pYCxwb3NpdGl2ZTpgcmdiKCR7akMuZ3JlZW43MH0pYCxuZWdhdGl2ZTpgcmdiKCR7akMucmVkNjB9KWAsYWNjZW50MTpgcmdiKDIzNiwgMjA4LCAxMDUpYCxhY2NlbnQyOmByZ2IoJHtqQy50ZWFsODB9KWAsYWNjZW50MzpgcmdiKCR7akMub3JhbmdlNjB9KWAsYWNjZW50NDpgcmdiKCR7akMuYmx1ZTgwfSlgLGludmVydDpgcmdiKCR7akMuZ3JheTEwMH0pYCxpbnZlcnQyOmByZ2IoJHtqQy5ncmF5NTB9KWB9LHNwYWNlOnswOjAsIjAuMjUiOjIsIjAuNSI6NCwiMC43NSI6NiwxOjgsIjEuNSI6MTIsMjoxNiwzOjI0LDQ6MzIsNTo0MCw2OjQ4LDc6NTYsODo2NCw5OjcyLDEwOjgwfSxib3JkZXJXaWR0aDp7MDowLDEwMDoxLDIwMDoyLDMwMDo0LDQwMDo2LDUwMDo4fSxib3JkZXJSYWRpdXM6ezA6MCwxMDA6NCwyMDA6OCwzMDA6MTIsNDAwOjE2LDUwMDoyNCw2MDA6MzIsNzAwOjQwLDgwMDo0OCw5MDA6NTYsMWUzOjFlNX0saWNvblNpemU6e3hzOjEyLHM6MTYsbToyNCxsOjMyfSxhdmF0YXJTaXplOntzOjE2LG06MjQsbDozMix4bDo0MCx4eGw6NDgseHh4bDo1Nn0sY29udHJvbFNpemU6e2NoZWNrYm94U2l6ZToyMCxyYWRpb1NpemU6MjAsc3dpdGNoV2lkdGg6NTIsc3dpdGNoSGVpZ2h0OjMyLHN3aXRjaFRodW1iU2l6ZTozMCx0aWxlU2l6ZToxMDZ9LGZvbnRGYW1pbHk6e2Rpc3BsYXkxOmB2YXIoLS1kZWZhdWx0Rm9udC1zYW5zKWAsZGlzcGxheTI6YHZhcigtLWRlZmF1bHRGb250LXNhbnMpYCxkaXNwbGF5MzpgdmFyKC0tZGVmYXVsdEZvbnQtc2FucylgLHRpdGxlMTpgdmFyKC0tZGVmYXVsdEZvbnQtc2FucylgLHRpdGxlMjpgdmFyKC0tZGVmYXVsdEZvbnQtc2FucylgLHRpdGxlMzpgdmFyKC0tZGVmYXVsdEZvbnQtc2FucylgLHRpdGxlNDpgdmFyKC0tZGVmYXVsdEZvbnQtc2FucylgLGhlYWRsaW5lOmB2YXIoLS1kZWZhdWx0Rm9udC1zYW5zKWAsYm9keTpgdmFyKC0tZGVmYXVsdEZvbnQtc2FucylgLGxhYmVsMTpgdmFyKC0tZGVmYXVsdEZvbnQtc2FucylgLGxhYmVsMjpgdmFyKC0tZGVmYXVsdEZvbnQtc2FucylgLGNhcHRpb246YHZhcigtLWRlZmF1bHRGb250LXNhbnMpYCxsZWdhbDpgdmFyKC0tZGVmYXVsdEZvbnQtc2FucylgfSxmb250RmFtaWx5TW9ubzp7ZGlzcGxheTE6YHZhcigtLWRlZmF1bHRGb250LW1vbm8pYCxkaXNwbGF5MjpgdmFyKC0tZGVmYXVsdEZvbnQtbW9ubylgLGRpc3BsYXkzOmB2YXIoLS1kZWZhdWx0Rm9udC1tb25vKWAsdGl0bGUxOmB2YXIoLS1kZWZhdWx0Rm9udC1tb25vKWAsdGl0bGUyOmB2YXIoLS1kZWZhdWx0Rm9udC1tb25vKWAsdGl0bGUzOmB2YXIoLS1kZWZhdWx0Rm9udC1tb25vKWAsdGl0bGU0OmB2YXIoLS1kZWZhdWx0Rm9udC1tb25vKWAsaGVhZGxpbmU6YHZhcigtLWRlZmF1bHRGb250LW1vbm8pYCxib2R5OmB2YXIoLS1kZWZhdWx0Rm9udC1tb25vKWAsbGFiZWwxOmB2YXIoLS1kZWZhdWx0Rm9udC1tb25vKWAsbGFiZWwyOmB2YXIoLS1kZWZhdWx0Rm9udC1tb25vKWAsY2FwdGlvbjpgdmFyKC0tZGVmYXVsdEZvbnQtbW9ubylgLGxlZ2FsOmB2YXIoLS1kZWZhdWx0Rm9udC1tb25vKWB9LGZvbnRTaXplOntkaXNwbGF5MTpgNHJlbWAsZGlzcGxheTI6YDNyZW1gLGRpc3BsYXkzOmAyLjVyZW1gLHRpdGxlMTpgMS43NXJlbWAsdGl0bGUyOmAxLjc1cmVtYCx0aXRsZTM6YDEuMjVyZW1gLHRpdGxlNDpgMS4yNXJlbWAsaGVhZGxpbmU6YDFyZW1gLGJvZHk6YDFyZW1gLGxhYmVsMTpgMC44NzVyZW1gLGxhYmVsMjpgMC44NzVyZW1gLGNhcHRpb246YDAuODEyNXJlbWAsbGVnYWw6YDAuODEyNXJlbWB9LGZvbnRXZWlnaHQ6e2Rpc3BsYXkxOmA0MDBgLGRpc3BsYXkyOmA0MDBgLGRpc3BsYXkzOmA0MDBgLHRpdGxlMTpgNjAwYCx0aXRsZTI6YDQwMGAsdGl0bGUzOmA2MDBgLHRpdGxlNDpgNDAwYCxoZWFkbGluZTpgNjAwYCxib2R5OmA0MDBgLGxhYmVsMTpgNjAwYCxsYWJlbDI6YDQwMGAsY2FwdGlvbjpgNjAwYCxsZWdhbDpgNDAwYH0sbGluZUhlaWdodDp7ZGlzcGxheTE6YDQuNXJlbWAsZGlzcGxheTI6YDMuNXJlbWAsZGlzcGxheTM6YDNyZW1gLHRpdGxlMTpgMi4yNXJlbWAsdGl0bGUyOmAyLjI1cmVtYCx0aXRsZTM6YDEuNzVyZW1gLHRpdGxlNDpgMS43NXJlbWAsaGVhZGxpbmU6YDEuNXJlbWAsYm9keTpgMS41cmVtYCxsYWJlbDE6YDEuMjVyZW1gLGxhYmVsMjpgMS4yNXJlbWAsY2FwdGlvbjpgMXJlbWAsbGVnYWw6YDFyZW1gfSx0ZXh0VHJhbnNmb3JtOntkaXNwbGF5MTpgbm9uZWAsZGlzcGxheTI6YG5vbmVgLGRpc3BsYXkzOmBub25lYCx0aXRsZTE6YG5vbmVgLHRpdGxlMjpgbm9uZWAsdGl0bGUzOmBub25lYCx0aXRsZTQ6YG5vbmVgLGhlYWRsaW5lOmBub25lYCxib2R5OmBub25lYCxsYWJlbDE6YG5vbmVgLGxhYmVsMjpgbm9uZWAsY2FwdGlvbjpgdXBwZXJjYXNlYCxsZWdhbDpgbm9uZWB9LHNoYWRvdzp7ZWxldmF0aW9uMTpgMHB4IDhweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xMilgLGVsZXZhdGlvbjI6YDBweCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMTIpYH19LE5DPSgwLEcuY3JlYXRlQ29udGV4dCkoe3RyYW5zZm9ybVBhZ2VQb2ludDplPT5lLGlzU3RhdGljOiExLHJlZHVjZWRNb3Rpb246YG5ldmVyYH0pLFBDPSgwLEcuY3JlYXRlQ29udGV4dCkoe30pLEZDPSgwLEcuY3JlYXRlQ29udGV4dCkobnVsbCksSUM9dHlwZW9mIGRvY3VtZW50PGB1YCxMQz1JQz9HLnVzZUxheW91dEVmZmVjdDpHLnVzZUVmZmVjdCxSQz0oMCxHLmNyZWF0ZUNvbnRleHQpKHtzdHJpY3Q6ITF9KSx6Qz1lPT5lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csYCQxLSQyYCkudG9Mb3dlckNhc2UoKSxCQz1gZGF0YS1gK3pDKGBmcmFtZXJBcHBlYXJJZGApO2Z1bmN0aW9uIFhtZShlLHQsbixyKXtsZXR7dmlzdWFsRWxlbWVudDppfT0oMCxHLnVzZUNvbnRleHQpKFBDKSxhPSgwLEcudXNlQ29udGV4dCkoUkMpLG89KDAsRy51c2VDb250ZXh0KShGQykscz0oMCxHLnVzZUNvbnRleHQpKE5DKS5yZWR1Y2VkTW90aW9uLGM9KDAsRy51c2VSZWYpKCk7cj1yfHxhLnJlbmRlcmVyLCFjLmN1cnJlbnQmJnImJihjLmN1cnJlbnQ9cihlLHt2aXN1YWxTdGF0ZTp0LHBhcmVudDppLHByb3BzOm4scHJlc2VuY2VDb250ZXh0Om8sYmxvY2tJbml0aWFsQW5pbWF0aW9uOm8/by5pbml0aWFsPT09ITE6ITEscmVkdWNlZE1vdGlvbkNvbmZpZzpzfSkpO2xldCBsPWMuY3VycmVudDsoMCxHLnVzZUluc2VydGlvbkVmZmVjdCkoKCk9PntsJiZsLnVwZGF0ZShuLG8pfSk7bGV0IHU9KDAsRy51c2VSZWYpKCEhKG5bQkNdJiYhd2luZG93LkhhbmRvZmZDb21wbGV0ZSkpO3JldHVybiBMQygoKT0+e2wmJihsLnJlbmRlcigpLHUuY3VycmVudCYmbC5hbmltYXRpb25TdGF0ZSYmbC5hbmltYXRpb25TdGF0ZS5hbmltYXRlQ2hhbmdlcygpKX0pLCgwLEcudXNlRWZmZWN0KSgoKT0+e2wmJihsLnVwZGF0ZUZlYXR1cmVzKCksIXUuY3VycmVudCYmbC5hbmltYXRpb25TdGF0ZSYmbC5hbmltYXRpb25TdGF0ZS5hbmltYXRlQ2hhbmdlcygpLHUuY3VycmVudCYmKHUuY3VycmVudD0hMSx3aW5kb3cuSGFuZG9mZkNvbXBsZXRlPSEwKSl9KSxsfWZ1bmN0aW9uIFZDKGUpe3JldHVybiBlJiZ0eXBlb2YgZT09YG9iamVjdGAmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGBjdXJyZW50YCl9ZnVuY3Rpb24gWm1lKGUsdCxuKXtyZXR1cm4oMCxHLnVzZUNhbGxiYWNrKShyPT57ciYmZS5tb3VudCYmZS5tb3VudChyKSx0JiYocj90Lm1vdW50KHIpOnQudW5tb3VudCgpKSxuJiYodHlwZW9mIG49PWBmdW5jdGlvbmA/bihyKTpWQyhuKSYmKG4uY3VycmVudD1yKSl9LFt0XSl9ZnVuY3Rpb24gSEMoZSl7cmV0dXJuIHR5cGVvZiBlPT1gc3RyaW5nYHx8QXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBVQyhlKXtyZXR1cm4gdHlwZW9mIGU9PWBvYmplY3RgJiYhIWUmJnR5cGVvZiBlLnN0YXJ0PT1gZnVuY3Rpb25gfXZhciBXQz1bYGFuaW1hdGVgLGB3aGlsZUluVmlld2AsYHdoaWxlRm9jdXNgLGB3aGlsZUhvdmVyYCxgd2hpbGVUYXBgLGB3aGlsZURyYWdgLGBleGl0YF0sR0M9W2Bpbml0aWFsYCwuLi5XQ107ZnVuY3Rpb24gS0MoZSl7cmV0dXJuIFVDKGUuYW5pbWF0ZSl8fEdDLnNvbWUodD0+SEMoZVt0XSkpfWZ1bmN0aW9uIHFDKGUpe3JldHVybiEhKEtDKGUpfHxlLnZhcmlhbnRzKX1mdW5jdGlvbiBRbWUoZSx0KXtpZihLQyhlKSl7bGV0e2luaXRpYWw6dCxhbmltYXRlOm59PWU7cmV0dXJue2luaXRpYWw6dD09PSExfHxIQyh0KT90OnZvaWQgMCxhbmltYXRlOkhDKG4pP246dm9pZCAwfX1yZXR1cm4gZS5pbmhlcml0PT09ITE/e306dH1mdW5jdGlvbiAkbWUoZSl7bGV0e2luaXRpYWw6dCxhbmltYXRlOm59PVFtZShlLCgwLEcudXNlQ29udGV4dCkoUEMpKTtyZXR1cm4oMCxHLnVzZU1lbW8pKCgpPT4oe2luaXRpYWw6dCxhbmltYXRlOm59KSxbSkModCksSkMobildKX1mdW5jdGlvbiBKQyhlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLmpvaW4oYCBgKTplfXZhciBZQz17YW5pbWF0aW9uOltgYW5pbWF0ZWAsYHZhcmlhbnRzYCxgd2hpbGVIb3ZlcmAsYHdoaWxlVGFwYCxgZXhpdGAsYHdoaWxlSW5WaWV3YCxgd2hpbGVGb2N1c2AsYHdoaWxlRHJhZ2BdLGV4aXQ6W2BleGl0YF0sZHJhZzpbYGRyYWdgLGBkcmFnQ29udHJvbHNgXSxmb2N1czpbYHdoaWxlRm9jdXNgXSxob3ZlcjpbYHdoaWxlSG92ZXJgLGBvbkhvdmVyU3RhcnRgLGBvbkhvdmVyRW5kYF0sdGFwOltgd2hpbGVUYXBgLGBvblRhcGAsYG9uVGFwU3RhcnRgLGBvblRhcENhbmNlbGBdLHBhbjpbYG9uUGFuYCxgb25QYW5TdGFydGAsYG9uUGFuU2Vzc2lvblN0YXJ0YCxgb25QYW5FbmRgXSxpblZpZXc6W2B3aGlsZUluVmlld2AsYG9uVmlld3BvcnRFbnRlcmAsYG9uVmlld3BvcnRMZWF2ZWBdLGxheW91dDpbYGxheW91dGAsYGxheW91dElkYF19LFhDPXt9O2ZvcihsZXQgZSBpbiBZQylYQ1tlXT17aXNFbmFibGVkOnQ9PllDW2VdLnNvbWUoZT0+ISF0W2VdKX07ZnVuY3Rpb24gWkMoZSl7Zm9yKGxldCB0IGluIGUpWENbdF09ey4uLlhDW3RdLC4uLmVbdF19fXZhciBRQz0oMCxHLmNyZWF0ZUNvbnRleHQpKHt9KSwkQz0oMCxHLmNyZWF0ZUNvbnRleHQpKHt9KSxlaGU9U3ltYm9sLmZvcihgbW90aW9uQ29tcG9uZW50U3ltYm9sYCk7ZnVuY3Rpb24gdGhlKHtwcmVsb2FkZWRGZWF0dXJlczplLGNyZWF0ZVZpc3VhbEVsZW1lbnQ6dCx1c2VSZW5kZXI6bix1c2VWaXN1YWxTdGF0ZTpyLENvbXBvbmVudDppfSl7ZSYmWkMoZSk7ZnVuY3Rpb24gYShhLG8pe2xldCBzLGM9ey4uLigwLEcudXNlQ29udGV4dCkoTkMpLC4uLmEsbGF5b3V0SWQ6bmhlKGEpfSx7aXNTdGF0aWM6bH09Yyx1PSRtZShhKSxkPXIoYSxsKTtpZighbCYmSUMpe3UudmlzdWFsRWxlbWVudD1YbWUoaSxkLGMsdCk7bGV0IG49KDAsRy51c2VDb250ZXh0KSgkQykscj0oMCxHLnVzZUNvbnRleHQpKFJDKS5zdHJpY3Q7dS52aXN1YWxFbGVtZW50JiYocz11LnZpc3VhbEVsZW1lbnQubG9hZEZlYXR1cmVzKGMscixlLG4pKX1yZXR1cm4gRy5jcmVhdGVFbGVtZW50KFBDLlByb3ZpZGVyLHt2YWx1ZTp1fSxzJiZ1LnZpc3VhbEVsZW1lbnQ/Ry5jcmVhdGVFbGVtZW50KHMse3Zpc3VhbEVsZW1lbnQ6dS52aXN1YWxFbGVtZW50LC4uLmN9KTpudWxsLG4oaSxhLFptZShkLHUudmlzdWFsRWxlbWVudCxvKSxkLGwsdS52aXN1YWxFbGVtZW50KSl9bGV0IG89KDAsRy5mb3J3YXJkUmVmKShhKTtyZXR1cm4gb1tlaGVdPWksb31mdW5jdGlvbiBuaGUoe2xheW91dElkOmV9KXtsZXQgdD0oMCxHLnVzZUNvbnRleHQpKFFDKS5pZDtyZXR1cm4gdCYmZSE9PXZvaWQgMD90K2AtYCtlOmV9ZnVuY3Rpb24gZXcoZSl7ZnVuY3Rpb24gdCh0LG49e30pe3JldHVybiB0aGUoZSh0LG4pKX1pZih0eXBlb2YgUHJveHk+YHVgKXJldHVybiB0O2xldCBuPW5ldyBNYXA7cmV0dXJuIG5ldyBQcm94eSh0LHtnZXQ6KGUscik9PihuLmhhcyhyKXx8bi5zZXQocix0KHIpKSxuLmdldChyKSl9KX12YXIgcmhlPVtgYW5pbWF0ZWAsYGNpcmNsZWAsYGRlZnNgLGBkZXNjYCxgZWxsaXBzZWAsYGdgLGBpbWFnZWAsYGxpbmVgLGBmaWx0ZXJgLGBtYXJrZXJgLGBtYXNrYCxgbWV0YWRhdGFgLGBwYXRoYCxgcGF0dGVybmAsYHBvbHlnb25gLGBwb2x5bGluZWAsYHJlY3RgLGBzdG9wYCxgc3dpdGNoYCxgc3ltYm9sYCxgc3ZnYCxgdGV4dGAsYHRzcGFuYCxgdXNlYCxgdmlld2BdO2Z1bmN0aW9uIHR3KGUpe3JldHVybiB0eXBlb2YgZSE9YHN0cmluZ2B8fGUuaW5jbHVkZXMoYC1gKT8hMTohIShyaGUuaW5kZXhPZihlKT4tMXx8L1tBLVpdLy50ZXN0KGUpKX12YXIgbnc9e307ZnVuY3Rpb24gaWhlKGUpe09iamVjdC5hc3NpZ24obncsZSl9dmFyIHJ3PVtgdHJhbnNmb3JtUGVyc3BlY3RpdmVgLGB4YCxgeWAsYHpgLGB0cmFuc2xhdGVYYCxgdHJhbnNsYXRlWWAsYHRyYW5zbGF0ZVpgLGBzY2FsZWAsYHNjYWxlWGAsYHNjYWxlWWAsYHJvdGF0ZWAsYHJvdGF0ZVhgLGByb3RhdGVZYCxgcm90YXRlWmAsYHNrZXdgLGBza2V3WGAsYHNrZXdZYF0saXc9bmV3IFNldChydyk7ZnVuY3Rpb24gYXcoZSx7bGF5b3V0OnQsbGF5b3V0SWQ6bn0pe3JldHVybiBpdy5oYXMoZSl8fGUuc3RhcnRzV2l0aChgb3JpZ2luYCl8fCh0fHxuIT09dm9pZCAwKSYmKCEhbndbZV18fGU9PT1gb3BhY2l0eWApfXZhciBvdz1lPT4hIShlJiZlLmdldFZlbG9jaXR5KSxhaGU9e3g6YHRyYW5zbGF0ZVhgLHk6YHRyYW5zbGF0ZVlgLHo6YHRyYW5zbGF0ZVpgLHRyYW5zZm9ybVBlcnNwZWN0aXZlOmBwZXJzcGVjdGl2ZWB9LG9oZT1ydy5sZW5ndGg7ZnVuY3Rpb24gc2hlKGUse2VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0aW9uOnQ9ITAsYWxsb3dUcmFuc2Zvcm1Ob25lOm49ITB9LHIsaSl7bGV0IGE9YGA7Zm9yKGxldCB0PTA7dDxvaGU7dCsrKXtsZXQgbj1yd1t0XTtpZihlW25dIT09dm9pZCAwKXtsZXQgdD1haGVbbl18fG47YSs9YCR7dH0oJHtlW25dfSkgYH19cmV0dXJuIHQmJiFlLnomJihhKz1gdHJhbnNsYXRlWigwKWApLGE9YS50cmltKCksaT9hPWkoZSxyP2BgOmEpOm4mJnImJihhPWBub25lYCksYX12YXIgc3c9ZT0+dD0+dHlwZW9mIHQ9PWBzdHJpbmdgJiZ0LnN0YXJ0c1dpdGgoZSksY3c9c3coYC0tYCksbHc9c3coYHZhcigtLWApLGNoZT0vdmFyXHMqXChccyotLVtcdy1dKyhccyosXHMqKD86KD86W14pKF18XCgoPzpbXikoXSt8XChbXikoXSpcKSkqXCkpKikrKT9ccypcKS9nLGxoZT0oZSx0KT0+dCYmdHlwZW9mIGU9PWBudW1iZXJgP3QudHJhbnNmb3JtKGUpOmUsdXc9KGUsdCxuKT0+TWF0aC5taW4oTWF0aC5tYXgobixlKSx0KSxkdz17dGVzdDplPT50eXBlb2YgZT09YG51bWJlcmAscGFyc2U6cGFyc2VGbG9hdCx0cmFuc2Zvcm06ZT0+ZX0sZnc9ey4uLmR3LHRyYW5zZm9ybTplPT51dygwLDEsZSl9LHB3PXsuLi5kdyxkZWZhdWx0OjF9LG13PWU9Pk1hdGgucm91bmQoZSoxZTUpLzFlNSxodz0vKC0pPyhbXGRdKlwuP1tcZF0pKy9nLGd3PS8oI1swLTlhLWZdezMsOH18KHJnYnxoc2wpYT9cKCgtP1tcZFwuXSslP1ssXHNdKyl7Mn0oLT9bXGRcLl0rJT8pXHMqW1wsXC9dP1xzKltcZFwuXSolP1wpKS9naSx1aGU9L14oI1swLTlhLWZdezMsOH18KHJnYnxoc2wpYT9cKCgtP1tcZFwuXSslP1ssXHNdKyl7Mn0oLT9bXGRcLl0rJT8pXHMqW1wsXC9dP1xzKltcZFwuXSolP1wpKSQvaTtmdW5jdGlvbiBfdyhlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgfXZhciB2dz1lPT4oe3Rlc3Q6dD0+X3codCkmJnQuZW5kc1dpdGgoZSkmJnQuc3BsaXQoYCBgKS5sZW5ndGg9PT0xLHBhcnNlOnBhcnNlRmxvYXQsdHJhbnNmb3JtOnQ9PmAke3R9JHtlfWB9KSx5dz12dyhgZGVnYCksYnc9dncoYCVgKSx4dz12dyhgcHhgKSxkaGU9dncoYHZoYCksZmhlPXZ3KGB2d2ApLFN3PXsuLi5idyxwYXJzZTplPT5idy5wYXJzZShlKS8xMDAsdHJhbnNmb3JtOmU9PmJ3LnRyYW5zZm9ybShlKjEwMCl9LEN3PXsuLi5kdyx0cmFuc2Zvcm06TWF0aC5yb3VuZH0sd3c9e2JvcmRlcldpZHRoOnh3LGJvcmRlclRvcFdpZHRoOnh3LGJvcmRlclJpZ2h0V2lkdGg6eHcsYm9yZGVyQm90dG9tV2lkdGg6eHcsYm9yZGVyTGVmdFdpZHRoOnh3LGJvcmRlclJhZGl1czp4dyxyYWRpdXM6eHcsYm9yZGVyVG9wTGVmdFJhZGl1czp4dyxib3JkZXJUb3BSaWdodFJhZGl1czp4dyxib3JkZXJCb3R0b21SaWdodFJhZGl1czp4dyxib3JkZXJCb3R0b21MZWZ0UmFkaXVzOnh3LHdpZHRoOnh3LG1heFdpZHRoOnh3LGhlaWdodDp4dyxtYXhIZWlnaHQ6eHcsc2l6ZTp4dyx0b3A6eHcscmlnaHQ6eHcsYm90dG9tOnh3LGxlZnQ6eHcscGFkZGluZzp4dyxwYWRkaW5nVG9wOnh3LHBhZGRpbmdSaWdodDp4dyxwYWRkaW5nQm90dG9tOnh3LHBhZGRpbmdMZWZ0Onh3LG1hcmdpbjp4dyxtYXJnaW5Ub3A6eHcsbWFyZ2luUmlnaHQ6eHcsbWFyZ2luQm90dG9tOnh3LG1hcmdpbkxlZnQ6eHcscm90YXRlOnl3LHJvdGF0ZVg6eXcscm90YXRlWTp5dyxyb3RhdGVaOnl3LHNjYWxlOnB3LHNjYWxlWDpwdyxzY2FsZVk6cHcsc2NhbGVaOnB3LHNrZXc6eXcsc2tld1g6eXcsc2tld1k6eXcsZGlzdGFuY2U6eHcsdHJhbnNsYXRlWDp4dyx0cmFuc2xhdGVZOnh3LHRyYW5zbGF0ZVo6eHcseDp4dyx5Onh3LHo6eHcscGVyc3BlY3RpdmU6eHcsdHJhbnNmb3JtUGVyc3BlY3RpdmU6eHcsb3BhY2l0eTpmdyxvcmlnaW5YOlN3LG9yaWdpblk6U3csb3JpZ2luWjp4dyx6SW5kZXg6Q3csZmlsbE9wYWNpdHk6Zncsc3Ryb2tlT3BhY2l0eTpmdyxudW1PY3RhdmVzOkN3fTtmdW5jdGlvbiBUdyhlLHQsbixyKXtsZXR7c3R5bGU6aSx2YXJzOmEsdHJhbnNmb3JtOm8sdHJhbnNmb3JtT3JpZ2luOnN9PWUsYz0hMSxsPSExLHU9ITA7Zm9yKGxldCBlIGluIHQpe2xldCBuPXRbZV07aWYoY3coZSkpe2FbZV09bjtjb250aW51ZX1sZXQgcj13d1tlXSxkPWxoZShuLHIpO2lmKGl3LmhhcyhlKSl7aWYoYz0hMCxvW2VdPWQsIXUpY29udGludWU7biE9PShyLmRlZmF1bHR8fDApJiYodT0hMSl9ZWxzZSBlLnN0YXJ0c1dpdGgoYG9yaWdpbmApPyhsPSEwLHNbZV09ZCk6aVtlXT1kfWlmKHQudHJhbnNmb3JtfHwoY3x8cj9pLnRyYW5zZm9ybT1zaGUoZS50cmFuc2Zvcm0sbix1LHIpOmkudHJhbnNmb3JtJiYoaS50cmFuc2Zvcm09YG5vbmVgKSksbCl7bGV0e29yaWdpblg6ZT1gNTAlYCxvcmlnaW5ZOnQ9YDUwJWAsb3JpZ2luWjpuPTB9PXM7aS50cmFuc2Zvcm1PcmlnaW49YCR7ZX0gJHt0fSAke259YH19dmFyIEV3PSgpPT4oe3N0eWxlOnt9LHRyYW5zZm9ybTp7fSx0cmFuc2Zvcm1PcmlnaW46e30sdmFyczp7fX0pO2Z1bmN0aW9uIER3KGUsdCxuKXtmb3IobGV0IHIgaW4gdCkhb3codFtyXSkmJiFhdyhyLG4pJiYoZVtyXT10W3JdKX1mdW5jdGlvbiBwaGUoe3RyYW5zZm9ybVRlbXBsYXRlOmV9LHQsbil7cmV0dXJuKDAsRy51c2VNZW1vKSgoKT0+e2xldCByPUV3KCk7cmV0dXJuIFR3KHIsdCx7ZW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRpb246IW59LGUpLE9iamVjdC5hc3NpZ24oe30sci52YXJzLHIuc3R5bGUpfSxbdF0pfWZ1bmN0aW9uIG1oZShlLHQsbil7bGV0IHI9ZS5zdHlsZXx8e30saT17fTtyZXR1cm4gRHcoaSxyLGUpLE9iamVjdC5hc3NpZ24oaSxwaGUoZSx0LG4pKSxlLnRyYW5zZm9ybVZhbHVlcz9lLnRyYW5zZm9ybVZhbHVlcyhpKTppfWZ1bmN0aW9uIGhoZShlLHQsbil7bGV0IHI9e30saT1taGUoZSx0LG4pO3JldHVybiBlLmRyYWcmJmUuZHJhZ0xpc3RlbmVyIT09ITEmJihyLmRyYWdnYWJsZT0hMSxpLnVzZXJTZWxlY3Q9aS5XZWJraXRVc2VyU2VsZWN0PWkuV2Via2l0VG91Y2hDYWxsb3V0PWBub25lYCxpLnRvdWNoQWN0aW9uPWUuZHJhZz09PSEwP2Bub25lYDpgcGFuLSR7ZS5kcmFnPT09YHhgP2B5YDpgeGB9YCksZS50YWJJbmRleD09PXZvaWQgMCYmKGUub25UYXB8fGUub25UYXBTdGFydHx8ZS53aGlsZVRhcCkmJihyLnRhYkluZGV4PTApLHIuc3R5bGU9aSxyfXZhciBnaGU9bmV3IFNldChgYW5pbWF0ZS5leGl0LnZhcmlhbnRzLmluaXRpYWwuc3R5bGUudmFsdWVzLnZhcmlhbnRzLnRyYW5zaXRpb24udHJhbnNmb3JtVGVtcGxhdGUudHJhbnNmb3JtVmFsdWVzLmN1c3RvbS5pbmhlcml0Lm9uQmVmb3JlTGF5b3V0TWVhc3VyZS5vbkFuaW1hdGlvblN0YXJ0Lm9uQW5pbWF0aW9uQ29tcGxldGUub25VcGRhdGUub25EcmFnU3RhcnQub25EcmFnLm9uRHJhZ0VuZC5vbk1lYXN1cmVEcmFnQ29uc3RyYWludHMub25EaXJlY3Rpb25Mb2NrLm9uRHJhZ1RyYW5zaXRpb25FbmQuX2RyYWdYLl9kcmFnWS5vbkhvdmVyU3RhcnQub25Ib3ZlckVuZC5vblZpZXdwb3J0RW50ZXIub25WaWV3cG9ydExlYXZlLmdsb2JhbFRhcFRhcmdldC5pZ25vcmVTdHJpY3Qudmlld3BvcnRgLnNwbGl0KGAuYCkpO2Z1bmN0aW9uIE93KGUpe3JldHVybiBlLnN0YXJ0c1dpdGgoYHdoaWxlYCl8fGUuc3RhcnRzV2l0aChgZHJhZ2ApJiZlIT09YGRyYWdnYWJsZWB8fGUuc3RhcnRzV2l0aChgbGF5b3V0YCl8fGUuc3RhcnRzV2l0aChgb25UYXBgKXx8ZS5zdGFydHNXaXRoKGBvblBhbmApfHxlLnN0YXJ0c1dpdGgoYG9uTGF5b3V0YCl8fGdoZS5oYXMoZSl9ZnVuY3Rpb24gX2hlKGUpe3ZhciB0PXt9O3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdFtuXT09PXZvaWQgMCYmKHRbbl09ZShuKSksdFtuXX19dmFyIHZoZT1vKCgoKT0+e30pKSx5aGU9Yyh7ZGVmYXVsdDooKT0+QXd9KSxrdyxBdyxiaGU9bygoKCk9Pnt2aGUoKSxrdz0vXigoY2hpbGRyZW58ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUx8a2V5fHJlZnxhdXRvRm9jdXN8ZGVmYXVsdFZhbHVlfGRlZmF1bHRDaGVja2VkfGlubmVySFRNTHxzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmd8c3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nfHZhbHVlTGlua3xhY2NlcHR8YWNjZXB0Q2hhcnNldHxhY2Nlc3NLZXl8YWN0aW9ufGFsbG93fGFsbG93VXNlck1lZGlhfGFsbG93UGF5bWVudFJlcXVlc3R8YWxsb3dGdWxsU2NyZWVufGFsbG93VHJhbnNwYXJlbmN5fGFsdHxhc3luY3xhdXRvQ29tcGxldGV8YXV0b1BsYXl8Y2FwdHVyZXxjZWxsUGFkZGluZ3xjZWxsU3BhY2luZ3xjaGFsbGVuZ2V8Y2hhclNldHxjaGVja2VkfGNpdGV8Y2xhc3NJRHxjbGFzc05hbWV8Y29sc3xjb2xTcGFufGNvbnRlbnR8Y29udGVudEVkaXRhYmxlfGNvbnRleHRNZW51fGNvbnRyb2xzfGNvbnRyb2xzTGlzdHxjb29yZHN8Y3Jvc3NPcmlnaW58ZGF0YXxkYXRlVGltZXxkZWNvZGluZ3xkZWZhdWx0fGRlZmVyfGRpcnxkaXNhYmxlZHxkaXNhYmxlUGljdHVyZUluUGljdHVyZXxkb3dubG9hZHxkcmFnZ2FibGV8ZW5jVHlwZXxmb3JtfGZvcm1BY3Rpb258Zm9ybUVuY1R5cGV8Zm9ybU1ldGhvZHxmb3JtTm9WYWxpZGF0ZXxmb3JtVGFyZ2V0fGZyYW1lQm9yZGVyfGhlYWRlcnN8aGVpZ2h0fGhpZGRlbnxoaWdofGhyZWZ8aHJlZkxhbmd8aHRtbEZvcnxodHRwRXF1aXZ8aWR8aW5wdXRNb2RlfGludGVncml0eXxpc3xrZXlQYXJhbXN8a2V5VHlwZXxraW5kfGxhYmVsfGxhbmd8bGlzdHxsb2FkaW5nfGxvb3B8bG93fG1hcmdpbkhlaWdodHxtYXJnaW5XaWR0aHxtYXh8bWF4TGVuZ3RofG1lZGlhfG1lZGlhR3JvdXB8bWV0aG9kfG1pbnxtaW5MZW5ndGh8bXVsdGlwbGV8bXV0ZWR8bmFtZXxub25jZXxub1ZhbGlkYXRlfG9wZW58b3B0aW11bXxwYXR0ZXJufHBsYWNlaG9sZGVyfHBsYXlzSW5saW5lfHBvc3RlcnxwcmVsb2FkfHByb2ZpbGV8cmFkaW9Hcm91cHxyZWFkT25seXxyZWZlcnJlclBvbGljeXxyZWx8cmVxdWlyZWR8cmV2ZXJzZWR8cm9sZXxyb3dzfHJvd1NwYW58c2FuZGJveHxzY29wZXxzY29wZWR8c2Nyb2xsaW5nfHNlYW1sZXNzfHNlbGVjdGVkfHNoYXBlfHNpemV8c2l6ZXN8c2xvdHxzcGFufHNwZWxsQ2hlY2t8c3JjfHNyY0RvY3xzcmNMYW5nfHNyY1NldHxzdGFydHxzdGVwfHN0eWxlfHN1bW1hcnl8dGFiSW5kZXh8dGFyZ2V0fHRpdGxlfHR5cGV8dXNlTWFwfHZhbHVlfHdpZHRofHdtb2RlfHdyYXB8YWJvdXR8ZGF0YXR5cGV8aW5saXN0fHByZWZpeHxwcm9wZXJ0eXxyZXNvdXJjZXx0eXBlb2Z8dm9jYWJ8YXV0b0NhcGl0YWxpemV8YXV0b0NvcnJlY3R8YXV0b1NhdmV8Y29sb3J8aW5lcnR8aXRlbVByb3B8aXRlbVNjb3BlfGl0ZW1UeXBlfGl0ZW1JRHxpdGVtUmVmfG9ufHJlc3VsdHN8c2VjdXJpdHl8dW5zZWxlY3RhYmxlfGFjY2VudEhlaWdodHxhY2N1bXVsYXRlfGFkZGl0aXZlfGFsaWdubWVudEJhc2VsaW5lfGFsbG93UmVvcmRlcnxhbHBoYWJldGljfGFtcGxpdHVkZXxhcmFiaWNGb3JtfGFzY2VudHxhdHRyaWJ1dGVOYW1lfGF0dHJpYnV0ZVR5cGV8YXV0b1JldmVyc2V8YXppbXV0aHxiYXNlRnJlcXVlbmN5fGJhc2VsaW5lU2hpZnR8YmFzZVByb2ZpbGV8YmJveHxiZWdpbnxiaWFzfGJ5fGNhbGNNb2RlfGNhcEhlaWdodHxjbGlwfGNsaXBQYXRoVW5pdHN8Y2xpcFBhdGh8Y2xpcFJ1bGV8Y29sb3JJbnRlcnBvbGF0aW9ufGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnN8Y29sb3JQcm9maWxlfGNvbG9yUmVuZGVyaW5nfGNvbnRlbnRTY3JpcHRUeXBlfGNvbnRlbnRTdHlsZVR5cGV8Y3Vyc29yfGN4fGN5fGR8ZGVjZWxlcmF0ZXxkZXNjZW50fGRpZmZ1c2VDb25zdGFudHxkaXJlY3Rpb258ZGlzcGxheXxkaXZpc29yfGRvbWluYW50QmFzZWxpbmV8ZHVyfGR4fGR5fGVkZ2VNb2RlfGVsZXZhdGlvbnxlbmFibGVCYWNrZ3JvdW5kfGVuZHxleHBvbmVudHxleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkfGZpbGx8ZmlsbE9wYWNpdHl8ZmlsbFJ1bGV8ZmlsdGVyfGZpbHRlclJlc3xmaWx0ZXJVbml0c3xmbG9vZENvbG9yfGZsb29kT3BhY2l0eXxmb2N1c2FibGV8Zm9udEZhbWlseXxmb250U2l6ZXxmb250U2l6ZUFkanVzdHxmb250U3RyZXRjaHxmb250U3R5bGV8Zm9udFZhcmlhbnR8Zm9udFdlaWdodHxmb3JtYXR8ZnJvbXxmcnxmeHxmeXxnMXxnMnxnbHlwaE5hbWV8Z2x5cGhPcmllbnRhdGlvbkhvcml6b250YWx8Z2x5cGhPcmllbnRhdGlvblZlcnRpY2FsfGdseXBoUmVmfGdyYWRpZW50VHJhbnNmb3JtfGdyYWRpZW50VW5pdHN8aGFuZ2luZ3xob3JpekFkdlh8aG9yaXpPcmlnaW5YfGlkZW9ncmFwaGljfGltYWdlUmVuZGVyaW5nfGlufGluMnxpbnRlcmNlcHR8a3xrMXxrMnxrM3xrNHxrZXJuZWxNYXRyaXh8a2VybmVsVW5pdExlbmd0aHxrZXJuaW5nfGtleVBvaW50c3xrZXlTcGxpbmVzfGtleVRpbWVzfGxlbmd0aEFkanVzdHxsZXR0ZXJTcGFjaW5nfGxpZ2h0aW5nQ29sb3J8bGltaXRpbmdDb25lQW5nbGV8bG9jYWx8bWFya2VyRW5kfG1hcmtlck1pZHxtYXJrZXJTdGFydHxtYXJrZXJIZWlnaHR8bWFya2VyVW5pdHN8bWFya2VyV2lkdGh8bWFza3xtYXNrQ29udGVudFVuaXRzfG1hc2tVbml0c3xtYXRoZW1hdGljYWx8bW9kZXxudW1PY3RhdmVzfG9mZnNldHxvcGFjaXR5fG9wZXJhdG9yfG9yZGVyfG9yaWVudHxvcmllbnRhdGlvbnxvcmlnaW58b3ZlcmZsb3d8b3ZlcmxpbmVQb3NpdGlvbnxvdmVybGluZVRoaWNrbmVzc3xwYW5vc2UxfHBhaW50T3JkZXJ8cGF0aExlbmd0aHxwYXR0ZXJuQ29udGVudFVuaXRzfHBhdHRlcm5UcmFuc2Zvcm18cGF0dGVyblVuaXRzfHBvaW50ZXJFdmVudHN8cG9pbnRzfHBvaW50c0F0WHxwb2ludHNBdFl8cG9pbnRzQXRafHByZXNlcnZlQWxwaGF8cHJlc2VydmVBc3BlY3RSYXRpb3xwcmltaXRpdmVVbml0c3xyfHJhZGl1c3xyZWZYfHJlZll8cmVuZGVyaW5nSW50ZW50fHJlcGVhdENvdW50fHJlcGVhdER1cnxyZXF1aXJlZEV4dGVuc2lvbnN8cmVxdWlyZWRGZWF0dXJlc3xyZXN0YXJ0fHJlc3VsdHxyb3RhdGV8cnh8cnl8c2NhbGV8c2VlZHxzaGFwZVJlbmRlcmluZ3xzbG9wZXxzcGFjaW5nfHNwZWN1bGFyQ29uc3RhbnR8c3BlY3VsYXJFeHBvbmVudHxzcGVlZHxzcHJlYWRNZXRob2R8c3RhcnRPZmZzZXR8c3RkRGV2aWF0aW9ufHN0ZW1ofHN0ZW12fHN0aXRjaFRpbGVzfHN0b3BDb2xvcnxzdG9wT3BhY2l0eXxzdHJpa2V0aHJvdWdoUG9zaXRpb258c3RyaWtldGhyb3VnaFRoaWNrbmVzc3xzdHJpbmd8c3Ryb2tlfHN0cm9rZURhc2hhcnJheXxzdHJva2VEYXNob2Zmc2V0fHN0cm9rZUxpbmVjYXB8c3Ryb2tlTGluZWpvaW58c3Ryb2tlTWl0ZXJsaW1pdHxzdHJva2VPcGFjaXR5fHN0cm9rZVdpZHRofHN1cmZhY2VTY2FsZXxzeXN0ZW1MYW5ndWFnZXx0YWJsZVZhbHVlc3x0YXJnZXRYfHRhcmdldFl8dGV4dEFuY2hvcnx0ZXh0RGVjb3JhdGlvbnx0ZXh0UmVuZGVyaW5nfHRleHRMZW5ndGh8dG98dHJhbnNmb3JtfHUxfHUyfHVuZGVybGluZVBvc2l0aW9ufHVuZGVybGluZVRoaWNrbmVzc3x1bmljb2RlfHVuaWNvZGVCaWRpfHVuaWNvZGVSYW5nZXx1bml0c1BlckVtfHZBbHBoYWJldGljfHZIYW5naW5nfHZJZGVvZ3JhcGhpY3x2TWF0aGVtYXRpY2FsfHZhbHVlc3x2ZWN0b3JFZmZlY3R8dmVyc2lvbnx2ZXJ0QWR2WXx2ZXJ0T3JpZ2luWHx2ZXJ0T3JpZ2luWXx2aWV3Qm94fHZpZXdUYXJnZXR8dmlzaWJpbGl0eXx3aWR0aHN8d29yZFNwYWNpbmd8d3JpdGluZ01vZGV8eHx4SGVpZ2h0fHgxfHgyfHhDaGFubmVsU2VsZWN0b3J8eGxpbmtBY3R1YXRlfHhsaW5rQXJjcm9sZXx4bGlua0hyZWZ8eGxpbmtSb2xlfHhsaW5rU2hvd3x4bGlua1RpdGxlfHhsaW5rVHlwZXx4bWxCYXNlfHhtbG5zfHhtbG5zWGxpbmt8eG1sTGFuZ3x4bWxTcGFjZXx5fHkxfHkyfHlDaGFubmVsU2VsZWN0b3J8enx6b29tQW5kUGFufGZvcnxjbGFzc3xhdXRvZm9jdXMpfCgoW0RkXVtBYV1bVHRdW0FhXXxbQWFdW1JyXVtJaV1bQWFdfHgpLS4qKSkkLyxBdz1faGUoZnVuY3Rpb24oZSl7cmV0dXJuIGt3LnRlc3QoZSl8fGUuY2hhckNvZGVBdCgwKT09PTExMSYmZS5jaGFyQ29kZUF0KDEpPT09MTEwJiZlLmNoYXJDb2RlQXQoMik8OTF9KX0pKSxqdz1lPT4hT3coZSk7ZnVuY3Rpb24gTXcoZSl7ZSYmKGp3PXQ9PnQuc3RhcnRzV2l0aChgb25gKT8hT3codCk6ZSh0KSl9dHJ5e013KChiaGUoKSxkKHloZSkpLmRlZmF1bHQpfWNhdGNoe31mdW5jdGlvbiB4aGUoZSx0LG4pe2xldCByPXt9O2ZvcihsZXQgaSBpbiBlKWk9PT1gdmFsdWVzYCYmdHlwZW9mIGUudmFsdWVzPT1gb2JqZWN0YHx8KGp3KGkpfHxuPT09ITAmJk93KGkpfHwhdCYmIU93KGkpfHxlLmRyYWdnYWJsZSYmaS5zdGFydHNXaXRoKGBvbkRyYWdgKSkmJihyW2ldPWVbaV0pO3JldHVybiByfWZ1bmN0aW9uIE53KGUsdCxuKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgP2U6eHcudHJhbnNmb3JtKHQrbiplKX1mdW5jdGlvbiBTaGUoZSx0LG4pe3JldHVybmAke053KHQsZS54LGUud2lkdGgpfSAke053KG4sZS55LGUuaGVpZ2h0KX1gfXZhciBDaGU9e29mZnNldDpgc3Ryb2tlLWRhc2hvZmZzZXRgLGFycmF5OmBzdHJva2UtZGFzaGFycmF5YH0sd2hlPXtvZmZzZXQ6YHN0cm9rZURhc2hvZmZzZXRgLGFycmF5OmBzdHJva2VEYXNoYXJyYXlgfTtmdW5jdGlvbiBUaGUoZSx0LG49MSxyPTAsaT0hMCl7ZS5wYXRoTGVuZ3RoPTE7bGV0IGE9aT9DaGU6d2hlO2VbYS5vZmZzZXRdPXh3LnRyYW5zZm9ybSgtcik7bGV0IG89eHcudHJhbnNmb3JtKHQpLHM9eHcudHJhbnNmb3JtKG4pO2VbYS5hcnJheV09YCR7b30gJHtzfWB9ZnVuY3Rpb24gUHcoZSx7YXR0clg6dCxhdHRyWTpuLGF0dHJTY2FsZTpyLG9yaWdpblg6aSxvcmlnaW5ZOmEscGF0aExlbmd0aDpvLHBhdGhTcGFjaW5nOnM9MSxwYXRoT2Zmc2V0OmM9MCwuLi5sfSx1LGQsZil7aWYoVHcoZSxsLHUsZiksZCl7ZS5zdHlsZS52aWV3Qm94JiYoZS5hdHRycy52aWV3Qm94PWUuc3R5bGUudmlld0JveCk7cmV0dXJufWUuYXR0cnM9ZS5zdHlsZSxlLnN0eWxlPXt9O2xldHthdHRyczpwLHN0eWxlOm0sZGltZW5zaW9uczpofT1lO3AudHJhbnNmb3JtJiYoaCYmKG0udHJhbnNmb3JtPXAudHJhbnNmb3JtKSxkZWxldGUgcC50cmFuc2Zvcm0pLGgmJihpIT09dm9pZCAwfHxhIT09dm9pZCAwfHxtLnRyYW5zZm9ybSkmJihtLnRyYW5zZm9ybU9yaWdpbj1TaGUoaCxpPT09dm9pZCAwPy41OmksYT09PXZvaWQgMD8uNTphKSksdCE9PXZvaWQgMCYmKHAueD10KSxuIT09dm9pZCAwJiYocC55PW4pLHIhPT12b2lkIDAmJihwLnNjYWxlPXIpLG8hPT12b2lkIDAmJlRoZShwLG8scyxjLCExKX12YXIgRnc9KCk9Pih7Li4uRXcoKSxhdHRyczp7fX0pLEl3PWU9PnR5cGVvZiBlPT1gc3RyaW5nYCYmZS50b0xvd2VyQ2FzZSgpPT09YHN2Z2A7ZnVuY3Rpb24gRWhlKGUsdCxuLHIpe2xldCBpPSgwLEcudXNlTWVtbykoKCk9PntsZXQgbj1GdygpO3JldHVybiBQdyhuLHQse2VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0aW9uOiExfSxJdyhyKSxlLnRyYW5zZm9ybVRlbXBsYXRlKSx7Li4ubi5hdHRycyxzdHlsZTp7Li4ubi5zdHlsZX19fSxbdF0pO2lmKGUuc3R5bGUpe2xldCB0PXt9O0R3KHQsZS5zdHlsZSxlKSxpLnN0eWxlPXsuLi50LC4uLmkuc3R5bGV9fXJldHVybiBpfWZ1bmN0aW9uIERoZShlPSExKXtyZXR1cm4odCxuLHIse2xhdGVzdFZhbHVlczppfSxhKT0+e2xldCBvPSh0dyh0KT9FaGU6aGhlKShuLGksYSx0KSxzPXsuLi54aGUobix0eXBlb2YgdD09YHN0cmluZ2AsZSksLi4ubyxyZWY6cn0se2NoaWxkcmVuOmN9PW4sbD0oMCxHLnVzZU1lbW8pKCgpPT5vdyhjKT9jLmdldCgpOmMsW2NdKTtyZXR1cm4oMCxHLmNyZWF0ZUVsZW1lbnQpKHQsey4uLnMsY2hpbGRyZW46bH0pfX1mdW5jdGlvbiBMdyhlLHtzdHlsZTp0LHZhcnM6bn0scixpKXtPYmplY3QuYXNzaWduKGUuc3R5bGUsdCxpJiZpLmdldFByb2plY3Rpb25TdHlsZXMocikpO2ZvcihsZXQgdCBpbiBuKWUuc3R5bGUuc2V0UHJvcGVydHkodCxuW3RdKX12YXIgUnc9bmV3IFNldChbYGJhc2VGcmVxdWVuY3lgLGBkaWZmdXNlQ29uc3RhbnRgLGBrZXJuZWxNYXRyaXhgLGBrZXJuZWxVbml0TGVuZ3RoYCxga2V5U3BsaW5lc2AsYGtleVRpbWVzYCxgbGltaXRpbmdDb25lQW5nbGVgLGBtYXJrZXJIZWlnaHRgLGBtYXJrZXJXaWR0aGAsYG51bU9jdGF2ZXNgLGB0YXJnZXRYYCxgdGFyZ2V0WWAsYHN1cmZhY2VTY2FsZWAsYHNwZWN1bGFyQ29uc3RhbnRgLGBzcGVjdWxhckV4cG9uZW50YCxgc3RkRGV2aWF0aW9uYCxgdGFibGVWYWx1ZXNgLGB2aWV3Qm94YCxgZ3JhZGllbnRUcmFuc2Zvcm1gLGBwYXRoTGVuZ3RoYCxgc3RhcnRPZmZzZXRgLGB0ZXh0TGVuZ3RoYCxgbGVuZ3RoQWRqdXN0YF0pO2Z1bmN0aW9uIHp3KGUsdCxuLHIpe0x3KGUsdCx2b2lkIDAscik7Zm9yKGxldCBuIGluIHQuYXR0cnMpZS5zZXRBdHRyaWJ1dGUoUncuaGFzKG4pP246ekMobiksdC5hdHRyc1tuXSl9ZnVuY3Rpb24gQncoZSx0KXtsZXR7c3R5bGU6bn09ZSxyPXt9O2ZvcihsZXQgaSBpbiBuKShvdyhuW2ldKXx8dC5zdHlsZSYmb3codC5zdHlsZVtpXSl8fGF3KGksZSkpJiYocltpXT1uW2ldKTtyZXR1cm4gcn1mdW5jdGlvbiBWdyhlLHQpe2xldCBuPUJ3KGUsdCk7Zm9yKGxldCByIGluIGUpaWYob3coZVtyXSl8fG93KHRbcl0pKXtsZXQgdD1ydy5pbmRleE9mKHIpPT09LTE/cjpgYXR0cmArci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStyLnN1YnN0cmluZygxKTtuW3RdPWVbcl19cmV0dXJuIG59ZnVuY3Rpb24gSHcoZSx0LG4scj17fSxpPXt9KXtyZXR1cm4gdHlwZW9mIHQ9PWBmdW5jdGlvbmAmJih0PXQobj09PXZvaWQgMD9lLmN1c3RvbTpuLHIsaSkpLHR5cGVvZiB0PT1gc3RyaW5nYCYmKHQ9ZS52YXJpYW50cyYmZS52YXJpYW50c1t0XSksdHlwZW9mIHQ9PWBmdW5jdGlvbmAmJih0PXQobj09PXZvaWQgMD9lLmN1c3RvbTpuLHIsaSkpLHR9ZnVuY3Rpb24gVXcoZSl7bGV0IHQ9KDAsRy51c2VSZWYpKG51bGwpO3JldHVybiB0LmN1cnJlbnQ9PT1udWxsJiYodC5jdXJyZW50PWUoKSksdC5jdXJyZW50fXZhciBXdz1lPT5BcnJheS5pc0FycmF5KGUpLE9oZT1lPT4hIShlJiZ0eXBlb2YgZT09YG9iamVjdGAmJmUubWl4JiZlLnRvVmFsdWUpLGtoZT1lPT5XdyhlKT9lW2UubGVuZ3RoLTFdfHwwOmU7ZnVuY3Rpb24gR3coZSl7bGV0IHQ9b3coZSk/ZS5nZXQoKTplO3JldHVybiBPaGUodCk/dC50b1ZhbHVlKCk6dH1mdW5jdGlvbiBBaGUoe3NjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wczplLGNyZWF0ZVJlbmRlclN0YXRlOnQsb25Nb3VudDpufSxyLGksYSl7bGV0IG89e2xhdGVzdFZhbHVlczpqaGUocixpLGEsZSkscmVuZGVyU3RhdGU6dCgpfTtyZXR1cm4gbiYmKG8ubW91bnQ9ZT0+bihyLGUsbykpLG99dmFyIEt3PWU9Pih0LG4pPT57bGV0IHI9KDAsRy51c2VDb250ZXh0KShQQyksaT0oMCxHLnVzZUNvbnRleHQpKEZDKSxhPSgpPT5BaGUoZSx0LHIsaSk7cmV0dXJuIG4/YSgpOlV3KGEpfTtmdW5jdGlvbiBqaGUoZSx0LG4scil7bGV0IGk9e30sYT1yKGUse30pO2ZvcihsZXQgZSBpbiBhKWlbZV09R3coYVtlXSk7bGV0e2luaXRpYWw6byxhbmltYXRlOnN9PWUsYz1LQyhlKSxsPXFDKGUpO3QmJmwmJiFjJiZlLmluaGVyaXQhPT0hMSYmKG89PT12b2lkIDAmJihvPXQuaW5pdGlhbCkscz09PXZvaWQgMCYmKHM9dC5hbmltYXRlKSk7bGV0IHU9bj9uLmluaXRpYWw9PT0hMTohMTt1PXV8fG89PT0hMTtsZXQgZD11P3M6bztyZXR1cm4gZCYmdHlwZW9mIGQhPWBib29sZWFuYCYmIVVDKGQpJiYoQXJyYXkuaXNBcnJheShkKT9kOltkXSkuZm9yRWFjaCh0PT57bGV0IG49SHcoZSx0KTtpZighbilyZXR1cm47bGV0e3RyYW5zaXRpb25FbmQ6cix0cmFuc2l0aW9uOmEsLi4ub309bjtmb3IobGV0IGUgaW4gbyl7bGV0IHQ9b1tlXTtpZihBcnJheS5pc0FycmF5KHQpKXtsZXQgZT11P3QubGVuZ3RoLTE6MDt0PXRbZV19dCE9PW51bGwmJihpW2VdPXQpfWZvcihsZXQgZSBpbiByKWlbZV09cltlXX0pLGl9dmFyIHF3PWU9PmUsSnc9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm9yZGVyPVtdLHRoaXMuc2NoZWR1bGVkPW5ldyBTZXR9YWRkKGUpe2lmKCF0aGlzLnNjaGVkdWxlZC5oYXMoZSkpcmV0dXJuIHRoaXMuc2NoZWR1bGVkLmFkZChlKSx0aGlzLm9yZGVyLnB1c2goZSksITB9cmVtb3ZlKGUpe2xldCB0PXRoaXMub3JkZXIuaW5kZXhPZihlKTt0IT09LTEmJih0aGlzLm9yZGVyLnNwbGljZSh0LDEpLHRoaXMuc2NoZWR1bGVkLmRlbGV0ZShlKSl9Y2xlYXIoKXt0aGlzLm9yZGVyLmxlbmd0aD0wLHRoaXMuc2NoZWR1bGVkLmNsZWFyKCl9fTtmdW5jdGlvbiBNaGUoZSl7bGV0IHQ9bmV3IEp3LG49bmV3IEp3LHI9MCxpPSExLGE9ITEsbz1uZXcgV2Vha1NldCxzPXtzY2hlZHVsZTooZSxhPSExLHM9ITEpPT57bGV0IGM9cyYmaSxsPWM/dDpuO3JldHVybiBhJiZvLmFkZChlKSxsLmFkZChlKSYmYyYmaSYmKHI9dC5vcmRlci5sZW5ndGgpLGV9LGNhbmNlbDplPT57bi5yZW1vdmUoZSksby5kZWxldGUoZSl9LHByb2Nlc3M6Yz0+e2lmKGkpe2E9ITA7cmV0dXJufWlmKGk9ITAsW3Qsbl09W24sdF0sbi5jbGVhcigpLHI9dC5vcmRlci5sZW5ndGgscilmb3IobGV0IG49MDtuPHI7bisrKXtsZXQgcj10Lm9yZGVyW25dO3IoYyksby5oYXMocikmJihzLnNjaGVkdWxlKHIpLGUoKSl9aT0hMSxhJiYoYT0hMSxzLnByb2Nlc3MoYykpfX07cmV0dXJuIHN9dmFyIFl3PVtgcHJlcGFyZWAsYHJlYWRgLGB1cGRhdGVgLGBwcmVSZW5kZXJgLGByZW5kZXJgLGBwb3N0UmVuZGVyYF0sTmhlPTQwO2Z1bmN0aW9uIFBoZShlLHQpe2xldCBuPSExLHI9ITAsaT17ZGVsdGE6MCx0aW1lc3RhbXA6MCxpc1Byb2Nlc3Npbmc6ITF9LGE9WXcucmVkdWNlKChlLHQpPT4oZVt0XT1NaGUoKCk9Pm49ITApLGUpLHt9KSxvPWU9PmFbZV0ucHJvY2VzcyhpKSxzPSgpPT57bGV0IGE9cGVyZm9ybWFuY2Uubm93KCk7bj0hMSxpLmRlbHRhPXI/MWUzLzYwOk1hdGgubWF4KE1hdGgubWluKGEtaS50aW1lc3RhbXAsTmhlKSwxKSxpLnRpbWVzdGFtcD1hLGkuaXNQcm9jZXNzaW5nPSEwLFl3LmZvckVhY2gobyksaS5pc1Byb2Nlc3Npbmc9ITEsbiYmdCYmKHI9ITEsZShzKSl9LGM9KCk9PntuPSEwLHI9ITAsaS5pc1Byb2Nlc3Npbmd8fGUocyl9O3JldHVybntzY2hlZHVsZTpZdy5yZWR1Y2UoKGUsdCk9PntsZXQgcj1hW3RdO3JldHVybiBlW3RdPShlLHQ9ITEsaT0hMSk9PihufHxjKCksci5zY2hlZHVsZShlLHQsaSkpLGV9LHt9KSxjYW5jZWw6ZT0+WXcuZm9yRWFjaCh0PT5hW3RdLmNhbmNlbChlKSksc3RhdGU6aSxzdGVwczphfX12YXJ7c2NoZWR1bGU6WHcsY2FuY2VsOlp3LHN0YXRlOlF3LHN0ZXBzOiR3fT1QaGUodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZTxgdWA/cmVxdWVzdEFuaW1hdGlvbkZyYW1lOnF3LCEwKSxlVD17dXNlVmlzdWFsU3RhdGU6S3coe3NjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wczpWdyxjcmVhdGVSZW5kZXJTdGF0ZTpGdyxvbk1vdW50OihlLHQse3JlbmRlclN0YXRlOm4sbGF0ZXN0VmFsdWVzOnJ9KT0+e1h3LnJlYWQoKCk9Pnt0cnl7bi5kaW1lbnNpb25zPXR5cGVvZiB0LmdldEJCb3g9PWBmdW5jdGlvbmA/dC5nZXRCQm94KCk6dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1jYXRjaHtuLmRpbWVuc2lvbnM9e3g6MCx5OjAsd2lkdGg6MCxoZWlnaHQ6MH19fSksWHcucmVuZGVyKCgpPT57UHcobixyLHtlbmFibGVIYXJkd2FyZUFjY2VsZXJhdGlvbjohMX0sSXcodC50YWdOYW1lKSxlLnRyYW5zZm9ybVRlbXBsYXRlKSx6dyh0LG4pfSl9fSl9LHRUPXt1c2VWaXN1YWxTdGF0ZTpLdyh7c2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzOkJ3LGNyZWF0ZVJlbmRlclN0YXRlOkV3fSl9O2Z1bmN0aW9uIG5UKGUse2ZvcndhcmRNb3Rpb25Qcm9wczp0PSExfSxuLHIpe3JldHVybnsuLi50dyhlKT9lVDp0VCxwcmVsb2FkZWRGZWF0dXJlczpuLHVzZVJlbmRlcjpEaGUodCksY3JlYXRlVmlzdWFsRWxlbWVudDpyLENvbXBvbmVudDplfX1mdW5jdGlvbiByVChlLHQsbixyPXtwYXNzaXZlOiEwfSl7cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcih0LG4sciksKCk9PmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4pfXZhciBpVD1lPT5lLnBvaW50ZXJUeXBlPT09YG1vdXNlYD90eXBlb2YgZS5idXR0b24hPWBudW1iZXJgfHxlLmJ1dHRvbjw9MDplLmlzUHJpbWFyeSE9PSExO2Z1bmN0aW9uIGFUKGUsdD1gcGFnZWApe3JldHVybntwb2ludDp7eDplW3QrYFhgXSx5OmVbdCtgWWBdfX19dmFyIEZoZT1lPT50PT5pVCh0KSYmZSh0LGFUKHQpKTtmdW5jdGlvbiBvVChlLHQsbixyKXtyZXR1cm4gclQoZSx0LEZoZShuKSxyKX12YXIgSWhlPShlLHQpPT5uPT50KGUobikpLHNUPSguLi5lKT0+ZS5yZWR1Y2UoSWhlKTtmdW5jdGlvbiBjVChlKXtsZXQgdD1udWxsO3JldHVybigpPT50PT09bnVsbD8odD1lLCgpPT57dD1udWxsfSk6ITF9dmFyIGxUPWNUKGBkcmFnSG9yaXpvbnRhbGApLHVUPWNUKGBkcmFnVmVydGljYWxgKTtmdW5jdGlvbiBkVChlKXtsZXQgdD0hMTtpZihlPT09YHlgKXQ9dVQoKTtlbHNlIGlmKGU9PT1geGApdD1sVCgpO2Vsc2V7bGV0IGU9bFQoKSxuPXVUKCk7ZSYmbj90PSgpPT57ZSgpLG4oKX06KGUmJmUoKSxuJiZuKCkpfXJldHVybiB0fWZ1bmN0aW9uIGZUKCl7bGV0IGU9ZFQoITApO3JldHVybiBlPyhlKCksITEpOiEwfXZhciBwVD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmlzTW91bnRlZD0hMSx0aGlzLm5vZGU9ZX11cGRhdGUoKXt9fTtmdW5jdGlvbiBtVChlLHQpe2xldCBuPWBwb2ludGVyYCsodD9gZW50ZXJgOmBsZWF2ZWApLHI9YG9uSG92ZXJgKyh0P2BTdGFydGA6YEVuZGApO3JldHVybiBvVChlLmN1cnJlbnQsbiwobixpKT0+e2lmKG4ucG9pbnRlclR5cGU9PT1gdG91Y2hgfHxmVCgpKXJldHVybjtsZXQgYT1lLmdldFByb3BzKCk7ZS5hbmltYXRpb25TdGF0ZSYmYS53aGlsZUhvdmVyJiZlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShgd2hpbGVIb3ZlcmAsdCksYVtyXSYmWHcudXBkYXRlKCgpPT5hW3JdKG4saSkpfSx7cGFzc2l2ZTohZS5nZXRQcm9wcygpW3JdfSl9dmFyIExoZT1jbGFzcyBleHRlbmRzIHBUe21vdW50KCl7dGhpcy51bm1vdW50PXNUKG1UKHRoaXMubm9kZSwhMCksbVQodGhpcy5ub2RlLCExKSl9dW5tb3VudCgpe319LFJoZT1jbGFzcyBleHRlbmRzIHBUe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlzQWN0aXZlPSExfW9uRm9jdXMoKXtsZXQgZT0hMTt0cnl7ZT10aGlzLm5vZGUuY3VycmVudC5tYXRjaGVzKGA6Zm9jdXMtdmlzaWJsZWApfWNhdGNoe2U9ITB9IWV8fCF0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGV8fCh0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKGB3aGlsZUZvY3VzYCwhMCksdGhpcy5pc0FjdGl2ZT0hMCl9b25CbHVyKCl7IXRoaXMuaXNBY3RpdmV8fCF0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGV8fCh0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKGB3aGlsZUZvY3VzYCwhMSksdGhpcy5pc0FjdGl2ZT0hMSl9bW91bnQoKXt0aGlzLnVubW91bnQ9c1QoclQodGhpcy5ub2RlLmN1cnJlbnQsYGZvY3VzYCwoKT0+dGhpcy5vbkZvY3VzKCkpLHJUKHRoaXMubm9kZS5jdXJyZW50LGBibHVyYCwoKT0+dGhpcy5vbkJsdXIoKSkpfXVubW91bnQoKXt9fSxoVD0oZSx0KT0+dD9lPT09dD8hMDpoVChlLHQucGFyZW50RWxlbWVudCk6ITE7ZnVuY3Rpb24gZ1QoZSx0KXtpZighdClyZXR1cm47bGV0IG49bmV3IFBvaW50ZXJFdmVudChgcG9pbnRlcmArZSk7dChuLGFUKG4pKX12YXIgemhlPWNsYXNzIGV4dGVuZHMgcFR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVtb3ZlU3RhcnRMaXN0ZW5lcnM9cXcsdGhpcy5yZW1vdmVFbmRMaXN0ZW5lcnM9cXcsdGhpcy5yZW1vdmVBY2Nlc3NpYmxlTGlzdGVuZXJzPXF3LHRoaXMuc3RhcnRQb2ludGVyUHJlc3M9KGUsdCk9PntpZih0aGlzLmlzUHJlc3NpbmcpcmV0dXJuO3RoaXMucmVtb3ZlRW5kTGlzdGVuZXJzKCk7bGV0IG49dGhpcy5ub2RlLmdldFByb3BzKCkscj1vVCh3aW5kb3csYHBvaW50ZXJ1cGAsKGUsdCk9PntpZighdGhpcy5jaGVja1ByZXNzRW5kKCkpcmV0dXJuO2xldHtvblRhcDpuLG9uVGFwQ2FuY2VsOnIsZ2xvYmFsVGFwVGFyZ2V0Oml9PXRoaXMubm9kZS5nZXRQcm9wcygpO1h3LnVwZGF0ZSgoKT0+eyFpJiYhaFQodGhpcy5ub2RlLmN1cnJlbnQsZS50YXJnZXQpP3ImJnIoZSx0KTpuJiZuKGUsdCl9KX0se3Bhc3NpdmU6IShuLm9uVGFwfHxuLm9uUG9pbnRlclVwKX0pLGk9b1Qod2luZG93LGBwb2ludGVyY2FuY2VsYCwoZSx0KT0+dGhpcy5jYW5jZWxQcmVzcyhlLHQpLHtwYXNzaXZlOiEobi5vblRhcENhbmNlbHx8bi5vblBvaW50ZXJDYW5jZWwpfSk7dGhpcy5yZW1vdmVFbmRMaXN0ZW5lcnM9c1QocixpKSx0aGlzLnN0YXJ0UHJlc3MoZSx0KX0sdGhpcy5zdGFydEFjY2Vzc2libGVQcmVzcz0oKT0+e2xldCBlPXJUKHRoaXMubm9kZS5jdXJyZW50LGBrZXlkb3duYCxlPT57aWYoZS5rZXkhPT1gRW50ZXJgfHx0aGlzLmlzUHJlc3NpbmcpcmV0dXJuO2xldCB0PWU9PntlLmtleSE9PWBFbnRlcmB8fCF0aGlzLmNoZWNrUHJlc3NFbmQoKXx8Z1QoYHVwYCwoZSx0KT0+e2xldHtvblRhcDpufT10aGlzLm5vZGUuZ2V0UHJvcHMoKTtuJiZYdy51cGRhdGUoKCk9Pm4oZSx0KSl9KX07dGhpcy5yZW1vdmVFbmRMaXN0ZW5lcnMoKSx0aGlzLnJlbW92ZUVuZExpc3RlbmVycz1yVCh0aGlzLm5vZGUuY3VycmVudCxga2V5dXBgLHQpLGdUKGBkb3duYCwoZSx0KT0+e3RoaXMuc3RhcnRQcmVzcyhlLHQpfSl9KSx0PXJUKHRoaXMubm9kZS5jdXJyZW50LGBibHVyYCwoKT0+e3RoaXMuaXNQcmVzc2luZyYmZ1QoYGNhbmNlbGAsKGUsdCk9PnRoaXMuY2FuY2VsUHJlc3MoZSx0KSl9KTt0aGlzLnJlbW92ZUFjY2Vzc2libGVMaXN0ZW5lcnM9c1QoZSx0KX19c3RhcnRQcmVzcyhlLHQpe3RoaXMuaXNQcmVzc2luZz0hMDtsZXR7b25UYXBTdGFydDpuLHdoaWxlVGFwOnJ9PXRoaXMubm9kZS5nZXRQcm9wcygpO3ImJnRoaXMubm9kZS5hbmltYXRpb25TdGF0ZSYmdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShgd2hpbGVUYXBgLCEwKSxuJiZYdy51cGRhdGUoKCk9Pm4oZSx0KSl9Y2hlY2tQcmVzc0VuZCgpe3JldHVybiB0aGlzLnJlbW92ZUVuZExpc3RlbmVycygpLHRoaXMuaXNQcmVzc2luZz0hMSx0aGlzLm5vZGUuZ2V0UHJvcHMoKS53aGlsZVRhcCYmdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlJiZ0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKGB3aGlsZVRhcGAsITEpLCFmVCgpfWNhbmNlbFByZXNzKGUsdCl7aWYoIXRoaXMuY2hlY2tQcmVzc0VuZCgpKXJldHVybjtsZXR7b25UYXBDYW5jZWw6bn09dGhpcy5ub2RlLmdldFByb3BzKCk7biYmWHcudXBkYXRlKCgpPT5uKGUsdCkpfW1vdW50KCl7bGV0IGU9dGhpcy5ub2RlLmdldFByb3BzKCksdD1vVChlLmdsb2JhbFRhcFRhcmdldD93aW5kb3c6dGhpcy5ub2RlLmN1cnJlbnQsYHBvaW50ZXJkb3duYCx0aGlzLnN0YXJ0UG9pbnRlclByZXNzLHtwYXNzaXZlOiEoZS5vblRhcFN0YXJ0fHxlLm9uUG9pbnRlclN0YXJ0KX0pLG49clQodGhpcy5ub2RlLmN1cnJlbnQsYGZvY3VzYCx0aGlzLnN0YXJ0QWNjZXNzaWJsZVByZXNzKTt0aGlzLnJlbW92ZVN0YXJ0TGlzdGVuZXJzPXNUKHQsbil9dW5tb3VudCgpe3RoaXMucmVtb3ZlU3RhcnRMaXN0ZW5lcnMoKSx0aGlzLnJlbW92ZUVuZExpc3RlbmVycygpLHRoaXMucmVtb3ZlQWNjZXNzaWJsZUxpc3RlbmVycygpfX0sX1Q9bmV3IFdlYWtNYXAsdlQ9bmV3IFdlYWtNYXAsQmhlPWU9PntsZXQgdD1fVC5nZXQoZS50YXJnZXQpO3QmJnQoZSl9LFZoZT1lPT57ZS5mb3JFYWNoKEJoZSl9O2Z1bmN0aW9uIEhoZSh7cm9vdDplLC4uLnR9KXtsZXQgbj1lfHxkb2N1bWVudDt2VC5oYXMobil8fHZULnNldChuLHt9KTtsZXQgcj12VC5nZXQobiksaT1KU09OLnN0cmluZ2lmeSh0KTtyZXR1cm4gcltpXXx8KHJbaV09bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFZoZSx7cm9vdDplLC4uLnR9KSkscltpXX1mdW5jdGlvbiBVaGUoZSx0LG4pe2xldCByPUhoZSh0KTtyZXR1cm4gX1Quc2V0KGUsbiksci5vYnNlcnZlKGUpLCgpPT57X1QuZGVsZXRlKGUpLHIudW5vYnNlcnZlKGUpfX12YXIgV2hlPXtzb21lOjAsYWxsOjF9LEdoZT1jbGFzcyBleHRlbmRzIHBUe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmhhc0VudGVyZWRWaWV3PSExLHRoaXMuaXNJblZpZXc9ITF9c3RhcnRPYnNlcnZlcigpe3RoaXMudW5tb3VudCgpO2xldHt2aWV3cG9ydDplPXt9fT10aGlzLm5vZGUuZ2V0UHJvcHMoKSx7cm9vdDp0LG1hcmdpbjpuLGFtb3VudDpyPWBzb21lYCxvbmNlOml9PWUsYT17cm9vdDp0P3QuY3VycmVudDp2b2lkIDAscm9vdE1hcmdpbjpuLHRocmVzaG9sZDp0eXBlb2Ygcj09YG51bWJlcmA/cjpXaGVbcl19O3JldHVybiBVaGUodGhpcy5ub2RlLmN1cnJlbnQsYSxlPT57bGV0e2lzSW50ZXJzZWN0aW5nOnR9PWU7aWYodGhpcy5pc0luVmlldz09PXR8fCh0aGlzLmlzSW5WaWV3PXQsaSYmIXQmJnRoaXMuaGFzRW50ZXJlZFZpZXcpKXJldHVybjt0JiYodGhpcy5oYXNFbnRlcmVkVmlldz0hMCksdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlJiZ0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKGB3aGlsZUluVmlld2AsdCk7bGV0e29uVmlld3BvcnRFbnRlcjpuLG9uVmlld3BvcnRMZWF2ZTpyfT10aGlzLm5vZGUuZ2V0UHJvcHMoKSxhPXQ/bjpyO2EmJmEoZSl9KX1tb3VudCgpe3RoaXMuc3RhcnRPYnNlcnZlcigpfXVwZGF0ZSgpe2lmKHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcj5gdWApcmV0dXJuO2xldHtwcm9wczplLHByZXZQcm9wczp0fT10aGlzLm5vZGU7W2BhbW91bnRgLGBtYXJnaW5gLGByb290YF0uc29tZShLaGUoZSx0KSkmJnRoaXMuc3RhcnRPYnNlcnZlcigpfXVubW91bnQoKXt9fTtmdW5jdGlvbiBLaGUoe3ZpZXdwb3J0OmU9e319LHt2aWV3cG9ydDp0PXt9fT17fSl7cmV0dXJuIG49PmVbbl0hPT10W25dfXZhciB5VD17aW5WaWV3OntGZWF0dXJlOkdoZX0sdGFwOntGZWF0dXJlOnpoZX0sZm9jdXM6e0ZlYXR1cmU6UmhlfSxob3Zlcjp7RmVhdHVyZTpMaGV9fTtmdW5jdGlvbiBiVChlLHQpe2lmKCFBcnJheS5pc0FycmF5KHQpKXJldHVybiExO2xldCBuPXQubGVuZ3RoO2lmKG4hPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHI9MDtyPG47cisrKWlmKHRbcl0hPT1lW3JdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHFoZShlKXtsZXQgdD17fTtyZXR1cm4gZS52YWx1ZXMuZm9yRWFjaCgoZSxuKT0+dFtuXT1lLmdldCgpKSx0fWZ1bmN0aW9uIEpoZShlKXtsZXQgdD17fTtyZXR1cm4gZS52YWx1ZXMuZm9yRWFjaCgoZSxuKT0+dFtuXT1lLmdldFZlbG9jaXR5KCkpLHR9ZnVuY3Rpb24geFQoZSx0LG4pe2xldCByPWUuZ2V0UHJvcHMoKTtyZXR1cm4gSHcocix0LG49PT12b2lkIDA/ci5jdXN0b206bixxaGUoZSksSmhlKGUpKX12YXIgU1Q9cXcsQ1Q9cXcsd1Q9ZT0+ZSoxZTMsVFQ9ZT0+ZS8xZTMsRVQ9e2N1cnJlbnQ6ITF9LERUPWU9PkFycmF5LmlzQXJyYXkoZSkmJnR5cGVvZiBlWzBdPT1gbnVtYmVyYDtmdW5jdGlvbiBPVChlKXtyZXR1cm4hISghZXx8dHlwZW9mIGU9PWBzdHJpbmdgJiZBVFtlXXx8RFQoZSl8fEFycmF5LmlzQXJyYXkoZSkmJmUuZXZlcnkoT1QpKX12YXIga1Q9KFtlLHQsbixyXSk9PmBjdWJpYy1iZXppZXIoJHtlfSwgJHt0fSwgJHtufSwgJHtyfSlgLEFUPXtsaW5lYXI6YGxpbmVhcmAsZWFzZTpgZWFzZWAsZWFzZUluOmBlYXNlLWluYCxlYXNlT3V0OmBlYXNlLW91dGAsZWFzZUluT3V0OmBlYXNlLWluLW91dGAsY2lyY0luOmtUKFswLC42NSwuNTUsMV0pLGNpcmNPdXQ6a1QoWy41NSwwLDEsLjQ1XSksYmFja0luOmtUKFsuMzEsLjAxLC42NiwtLjU5XSksYmFja091dDprVChbLjMzLDEuNTMsLjY5LC45OV0pfTtmdW5jdGlvbiBqVChlKXtpZihlKXJldHVybiBEVChlKT9rVChlKTpBcnJheS5pc0FycmF5KGUpP2UubWFwKGpUKTpBVFtlXX1mdW5jdGlvbiBZaGUoZSx0LG4se2RlbGF5OnI9MCxkdXJhdGlvbjppLHJlcGVhdDphPTAscmVwZWF0VHlwZTpvPWBsb29wYCxlYXNlOnMsdGltZXM6Y309e30pe2xldCBsPXtbdF06bn07YyYmKGwub2Zmc2V0PWMpO2xldCB1PWpUKHMpO3JldHVybiBBcnJheS5pc0FycmF5KHUpJiYobC5lYXNpbmc9dSksZS5hbmltYXRlKGwse2RlbGF5OnIsZHVyYXRpb246aSxlYXNpbmc6QXJyYXkuaXNBcnJheSh1KT9gbGluZWFyYDp1LGZpbGw6YGJvdGhgLGl0ZXJhdGlvbnM6YSsxLGRpcmVjdGlvbjpvPT09YHJldmVyc2VgP2BhbHRlcm5hdGVgOmBub3JtYWxgfSl9ZnVuY3Rpb24gWGhlKGUse3JlcGVhdDp0LHJlcGVhdFR5cGU6bj1gbG9vcGB9KXtyZXR1cm4gZVt0JiZuIT09YGxvb3BgJiZ0JTI9PTE/MDplLmxlbmd0aC0xXX12YXIgTVQ9KGUsdCxuKT0+KCgoMS0zKm4rMyp0KSplKygzKm4tNip0KSkqZSszKnQpKmUsWmhlPTFlLTcsUWhlPTEyO2Z1bmN0aW9uICRoZShlLHQsbixyLGkpe2xldCBhLG8scz0wO2RvIG89dCsobi10KS8yLGE9TVQobyxyLGkpLWUsYT4wP249bzp0PW87d2hpbGUoTWF0aC5hYnMoYSk+WmhlJiYrK3M8UWhlKTtyZXR1cm4gb31mdW5jdGlvbiBOVChlLHQsbixyKXtpZihlPT09dCYmbj09PXIpcmV0dXJuIHF3O2xldCBpPXQ9PiRoZSh0LDAsMSxlLG4pO3JldHVybiBlPT5lPT09MHx8ZT09PTE/ZTpNVChpKGUpLHQscil9dmFyIGVnZT1OVCguNDIsMCwxLDEpLHRnZT1OVCgwLDAsLjU4LDEpLFBUPU5UKC40MiwwLC41OCwxKSxGVD1lPT5BcnJheS5pc0FycmF5KGUpJiZ0eXBlb2YgZVswXSE9YG51bWJlcmAsSVQ9ZT0+dD0+dDw9LjU/ZSgyKnQpLzI6KDItZSgyKigxLXQpKSkvMixMVD1lPT50PT4xLWUoMS10KSxSVD1lPT4xLU1hdGguc2luKE1hdGguYWNvcyhlKSkselQ9TFQoUlQpLG5nZT1JVChSVCksQlQ9TlQoLjMzLDEuNTMsLjY5LC45OSksVlQ9TFQoQlQpLEhUPXtsaW5lYXI6cXcsZWFzZUluOmVnZSxlYXNlSW5PdXQ6UFQsZWFzZU91dDp0Z2UsY2lyY0luOlJULGNpcmNJbk91dDpuZ2UsY2lyY091dDp6VCxiYWNrSW46VlQsYmFja0luT3V0OklUKFZUKSxiYWNrT3V0OkJULGFudGljaXBhdGU6ZT0+KGUqPTIpPDE/LjUqVlQoZSk6LjUqKDItMioqKC0xMCooZS0xKSkpfSxVVD1lPT57aWYoQXJyYXkuaXNBcnJheShlKSl7Q1QoZS5sZW5ndGg9PT00LGBDdWJpYyBiZXppZXIgYXJyYXlzIG11c3QgY29udGFpbiBmb3VyIG51bWVyaWNhbCB2YWx1ZXMuYCk7bGV0W3QsbixyLGldPWU7cmV0dXJuIE5UKHQsbixyLGkpfWVsc2UgaWYodHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBDVChIVFtlXSE9PXZvaWQgMCxgSW52YWxpZCBlYXNpbmcgdHlwZSAnJHtlfSdgKSxIVFtlXTtyZXR1cm4gZX0sV1Q9KGUsdCk9Pm49PiEhKF93KG4pJiZ1aGUudGVzdChuKSYmbi5zdGFydHNXaXRoKGUpfHx0JiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobix0KSksR1Q9KGUsdCxuKT0+cj0+e2lmKCFfdyhyKSlyZXR1cm4gcjtsZXRbaSxhLG8sc109ci5tYXRjaChodyk7cmV0dXJue1tlXTpwYXJzZUZsb2F0KGkpLFt0XTpwYXJzZUZsb2F0KGEpLFtuXTpwYXJzZUZsb2F0KG8pLGFscGhhOnM9PT12b2lkIDA/MTpwYXJzZUZsb2F0KHMpfX0scmdlPWU9PnV3KDAsMjU1LGUpLEtUPXsuLi5kdyx0cmFuc2Zvcm06ZT0+TWF0aC5yb3VuZChyZ2UoZSkpfSxxVD17dGVzdDpXVChgcmdiYCxgcmVkYCkscGFyc2U6R1QoYHJlZGAsYGdyZWVuYCxgYmx1ZWApLHRyYW5zZm9ybTooe3JlZDplLGdyZWVuOnQsYmx1ZTpuLGFscGhhOnI9MX0pPT5gcmdiYShgK0tULnRyYW5zZm9ybShlKStgLCBgK0tULnRyYW5zZm9ybSh0KStgLCBgK0tULnRyYW5zZm9ybShuKStgLCBgK213KGZ3LnRyYW5zZm9ybShyKSkrYClgfTtmdW5jdGlvbiBpZ2UoZSl7bGV0IHQ9YGAsbj1gYCxyPWBgLGk9YGA7cmV0dXJuIGUubGVuZ3RoPjU/KHQ9ZS5zdWJzdHJpbmcoMSwzKSxuPWUuc3Vic3RyaW5nKDMsNSkscj1lLnN1YnN0cmluZyg1LDcpLGk9ZS5zdWJzdHJpbmcoNyw5KSk6KHQ9ZS5zdWJzdHJpbmcoMSwyKSxuPWUuc3Vic3RyaW5nKDIsMykscj1lLnN1YnN0cmluZygzLDQpLGk9ZS5zdWJzdHJpbmcoNCw1KSx0Kz10LG4rPW4scis9cixpKz1pKSx7cmVkOnBhcnNlSW50KHQsMTYpLGdyZWVuOnBhcnNlSW50KG4sMTYpLGJsdWU6cGFyc2VJbnQociwxNiksYWxwaGE6aT9wYXJzZUludChpLDE2KS8yNTU6MX19dmFyIEpUPXt0ZXN0OldUKGAjYCkscGFyc2U6aWdlLHRyYW5zZm9ybTpxVC50cmFuc2Zvcm19LFlUPXt0ZXN0OldUKGBoc2xgLGBodWVgKSxwYXJzZTpHVChgaHVlYCxgc2F0dXJhdGlvbmAsYGxpZ2h0bmVzc2ApLHRyYW5zZm9ybTooe2h1ZTplLHNhdHVyYXRpb246dCxsaWdodG5lc3M6bixhbHBoYTpyPTF9KT0+YGhzbGEoYCtNYXRoLnJvdW5kKGUpK2AsIGArYncudHJhbnNmb3JtKG13KHQpKStgLCBgK2J3LnRyYW5zZm9ybShtdyhuKSkrYCwgYCttdyhmdy50cmFuc2Zvcm0ocikpK2ApYH0sWFQ9e3Rlc3Q6ZT0+cVQudGVzdChlKXx8SlQudGVzdChlKXx8WVQudGVzdChlKSxwYXJzZTplPT5xVC50ZXN0KGUpP3FULnBhcnNlKGUpOllULnRlc3QoZSk/WVQucGFyc2UoZSk6SlQucGFyc2UoZSksdHJhbnNmb3JtOmU9Pl93KGUpP2U6ZS5oYXNPd25Qcm9wZXJ0eShgcmVkYCk/cVQudHJhbnNmb3JtKGUpOllULnRyYW5zZm9ybShlKX0sWlQ9KGUsdCxuKT0+LW4qZStuKnQrZTtmdW5jdGlvbiBRVChlLHQsbil7cmV0dXJuIG48MCYmKG4rPTEpLG4+MSYmLS1uLG48MS82P2UrKHQtZSkqNipuOm48MS8yP3Q6bjwyLzM/ZSsodC1lKSooMi8zLW4pKjY6ZX1mdW5jdGlvbiBhZ2Uoe2h1ZTplLHNhdHVyYXRpb246dCxsaWdodG5lc3M6bixhbHBoYTpyfSl7ZS89MzYwLHQvPTEwMCxuLz0xMDA7bGV0IGk9MCxhPTAsbz0wO2lmKCF0KWk9YT1vPW47ZWxzZXtsZXQgcj1uPC41P24qKDErdCk6bit0LW4qdCxzPTIqbi1yO2k9UVQocyxyLGUrMS8zKSxhPVFUKHMscixlKSxvPVFUKHMscixlLTEvMyl9cmV0dXJue3JlZDpNYXRoLnJvdW5kKGkqMjU1KSxncmVlbjpNYXRoLnJvdW5kKGEqMjU1KSxibHVlOk1hdGgucm91bmQobyoyNTUpLGFscGhhOnJ9fXZhciAkVD0oZSx0LG4pPT57bGV0IHI9ZSplO3JldHVybiBNYXRoLnNxcnQoTWF0aC5tYXgoMCxuKih0KnQtcikrcikpfSxvZ2U9W0pULHFULFlUXSxzZ2U9ZT0+b2dlLmZpbmQodD0+dC50ZXN0KGUpKTtmdW5jdGlvbiBlRShlKXtsZXQgdD1zZ2UoZSk7Q1QoISF0LGAnJHtlfScgaXMgbm90IGFuIGFuaW1hdGFibGUgY29sb3IuIFVzZSB0aGUgZXF1aXZhbGVudCBjb2xvciBjb2RlIGluc3RlYWQuYCk7bGV0IG49dC5wYXJzZShlKTtyZXR1cm4gdD09PVlUJiYobj1hZ2UobikpLG59dmFyIHRFPShlLHQpPT57bGV0IG49ZUUoZSkscj1lRSh0KSxpPXsuLi5ufTtyZXR1cm4gZT0+KGkucmVkPSRUKG4ucmVkLHIucmVkLGUpLGkuZ3JlZW49JFQobi5ncmVlbixyLmdyZWVuLGUpLGkuYmx1ZT0kVChuLmJsdWUsci5ibHVlLGUpLGkuYWxwaGE9WlQobi5hbHBoYSxyLmFscGhhLGUpLHFULnRyYW5zZm9ybShpKSl9O2Z1bmN0aW9uIGNnZShlKXt2YXIgdCxuO3JldHVybiBpc05hTihlKSYmX3coZSkmJigoKHQ9ZS5tYXRjaChodykpPT1udWxsP3ZvaWQgMDp0Lmxlbmd0aCl8fDApKygoKG49ZS5tYXRjaChndykpPT1udWxsP3ZvaWQgMDpuLmxlbmd0aCl8fDApPjB9dmFyIG5FPXtyZWdleDpjaGUsY291bnRLZXk6YFZhcnNgLHRva2VuOiIke3Z9IixwYXJzZTpxd30sckU9e3JlZ2V4Omd3LGNvdW50S2V5OmBDb2xvcnNgLHRva2VuOiIke2N9IixwYXJzZTpYVC5wYXJzZX0saUU9e3JlZ2V4Omh3LGNvdW50S2V5OmBOdW1iZXJzYCx0b2tlbjoiJHtufSIscGFyc2U6ZHcucGFyc2V9O2Z1bmN0aW9uIGFFKGUse3JlZ2V4OnQsY291bnRLZXk6bix0b2tlbjpyLHBhcnNlOml9KXtsZXQgYT1lLnRva2VuaXNlZC5tYXRjaCh0KTthJiYoZVtgbnVtYCtuXT1hLmxlbmd0aCxlLnRva2VuaXNlZD1lLnRva2VuaXNlZC5yZXBsYWNlKHQsciksZS52YWx1ZXMucHVzaCguLi5hLm1hcChpKSkpfWZ1bmN0aW9uIG9FKGUpe2xldCB0PWUudG9TdHJpbmcoKSxuPXt2YWx1ZTp0LHRva2VuaXNlZDp0LHZhbHVlczpbXSxudW1WYXJzOjAsbnVtQ29sb3JzOjAsbnVtTnVtYmVyczowfTtyZXR1cm4gbi52YWx1ZS5pbmNsdWRlcyhgdmFyKC0tYCkmJmFFKG4sbkUpLGFFKG4sckUpLGFFKG4saUUpLG59ZnVuY3Rpb24gc0UoZSl7cmV0dXJuIG9FKGUpLnZhbHVlc31mdW5jdGlvbiBjRShlKXtsZXR7dmFsdWVzOnQsbnVtQ29sb3JzOm4sbnVtVmFyczpyLHRva2VuaXNlZDppfT1vRShlKSxhPXQubGVuZ3RoO3JldHVybiBlPT57bGV0IHQ9aTtmb3IobGV0IGk9MDtpPGE7aSsrKXQ9aTxyP3QucmVwbGFjZShuRS50b2tlbixlW2ldKTppPHIrbj90LnJlcGxhY2UockUudG9rZW4sWFQudHJhbnNmb3JtKGVbaV0pKTp0LnJlcGxhY2UoaUUudG9rZW4sbXcoZVtpXSkpO3JldHVybiB0fX12YXIgbGdlPWU9PnR5cGVvZiBlPT1gbnVtYmVyYD8wOmU7ZnVuY3Rpb24gdWdlKGUpe2xldCB0PXNFKGUpO3JldHVybiBjRShlKSh0Lm1hcChsZ2UpKX12YXIgbEU9e3Rlc3Q6Y2dlLHBhcnNlOnNFLGNyZWF0ZVRyYW5zZm9ybWVyOmNFLGdldEFuaW1hdGFibGVOb25lOnVnZX0sdUU9KGUsdCk9Pm49PmAke24+MD90OmV9YDtmdW5jdGlvbiBkRShlLHQpe3JldHVybiB0eXBlb2YgZT09YG51bWJlcmA/bj0+WlQoZSx0LG4pOlhULnRlc3QoZSk/dEUoZSx0KTplLnN0YXJ0c1dpdGgoYHZhcihgKT91RShlLHQpOnBFKGUsdCl9dmFyIGZFPShlLHQpPT57bGV0IG49Wy4uLmVdLHI9bi5sZW5ndGgsaT1lLm1hcCgoZSxuKT0+ZEUoZSx0W25dKSk7cmV0dXJuIGU9Pntmb3IobGV0IHQ9MDt0PHI7dCsrKW5bdF09aVt0XShlKTtyZXR1cm4gbn19LGRnZT0oZSx0KT0+e2xldCBuPXsuLi5lLC4uLnR9LHI9e307Zm9yKGxldCBpIGluIG4pZVtpXSE9PXZvaWQgMCYmdFtpXSE9PXZvaWQgMCYmKHJbaV09ZEUoZVtpXSx0W2ldKSk7cmV0dXJuIGU9Pntmb3IobGV0IHQgaW4gciluW3RdPXJbdF0oZSk7cmV0dXJuIG59fSxwRT0oZSx0KT0+e2xldCBuPWxFLmNyZWF0ZVRyYW5zZm9ybWVyKHQpLHI9b0UoZSksaT1vRSh0KTtyZXR1cm4gci5udW1WYXJzPT09aS5udW1WYXJzJiZyLm51bUNvbG9ycz09PWkubnVtQ29sb3JzJiZyLm51bU51bWJlcnM+PWkubnVtTnVtYmVycz9zVChmRShyLnZhbHVlcyxpLnZhbHVlcyksbik6KFNUKCEwLGBDb21wbGV4IHZhbHVlcyAnJHtlfScgYW5kICcke3R9JyB0b28gZGlmZmVyZW50IHRvIG1peC4gRW5zdXJlIGFsbCBjb2xvcnMgYXJlIG9mIHRoZSBzYW1lIHR5cGUsIGFuZCB0aGF0IGVhY2ggY29udGFpbnMgdGhlIHNhbWUgcXVhbnRpdHkgb2YgbnVtYmVyIGFuZCBjb2xvciB2YWx1ZXMuIEZhbGxpbmcgYmFjayB0byBpbnN0YW50IHRyYW5zaXRpb24uYCksdUUoZSx0KSl9LG1FPShlLHQsbik9PntsZXQgcj10LWU7cmV0dXJuIHI9PT0wPzE6KG4tZSkvcn0saEU9KGUsdCk9Pm49PlpUKGUsdCxuKTtmdW5jdGlvbiBmZ2UoZSl7cmV0dXJuIHR5cGVvZiBlPT1gbnVtYmVyYD9oRTp0eXBlb2YgZT09YHN0cmluZ2A/WFQudGVzdChlKT90RTpwRTpBcnJheS5pc0FycmF5KGUpP2ZFOnR5cGVvZiBlPT1gb2JqZWN0YD9kZ2U6aEV9ZnVuY3Rpb24gcGdlKGUsdCxuKXtsZXQgcj1bXSxpPW58fGZnZShlWzBdKSxhPWUubGVuZ3RoLTE7Zm9yKGxldCBuPTA7bjxhO24rKyl7bGV0IGE9aShlW25dLGVbbisxXSk7dCYmKGE9c1QoQXJyYXkuaXNBcnJheSh0KT90W25dfHxxdzp0LGEpKSxyLnB1c2goYSl9cmV0dXJuIHJ9ZnVuY3Rpb24gZ0UoZSx0LHtjbGFtcDpuPSEwLGVhc2U6cixtaXhlcjppfT17fSl7bGV0IGE9ZS5sZW5ndGg7aWYoQ1QoYT09PXQubGVuZ3RoLGBCb3RoIGlucHV0IGFuZCBvdXRwdXQgcmFuZ2VzIG11c3QgYmUgdGhlIHNhbWUgbGVuZ3RoYCksYT09PTEpcmV0dXJuKCk9PnRbMF07ZVswXT5lW2EtMV0mJihlPVsuLi5lXS5yZXZlcnNlKCksdD1bLi4udF0ucmV2ZXJzZSgpKTtsZXQgbz1wZ2UodCxyLGkpLHM9by5sZW5ndGgsYz10PT57bGV0IG49MDtpZihzPjEpZm9yKDtuPGUubGVuZ3RoLTImJiEodDxlW24rMV0pO24rKyk7bGV0IHI9bUUoZVtuXSxlW24rMV0sdCk7cmV0dXJuIG9bbl0ocil9O3JldHVybiBuP3Q9PmModXcoZVswXSxlW2EtMV0sdCkpOmN9ZnVuY3Rpb24gX0UoZSx0KXtsZXQgbj1lW2UubGVuZ3RoLTFdO2ZvcihsZXQgcj0xO3I8PXQ7cisrKXtsZXQgaT1tRSgwLHQscik7ZS5wdXNoKFpUKG4sMSxpKSl9fWZ1bmN0aW9uIHZFKGUpe2xldCB0PVswXTtyZXR1cm4gX0UodCxlLmxlbmd0aC0xKSx0fWZ1bmN0aW9uIG1nZShlLHQpe3JldHVybiBlLm1hcChlPT5lKnQpfWZ1bmN0aW9uIGhnZShlLHQpe3JldHVybiBlLm1hcCgoKT0+dHx8UFQpLnNwbGljZSgwLGUubGVuZ3RoLTEpfWZ1bmN0aW9uIHlFKHtkdXJhdGlvbjplPTMwMCxrZXlmcmFtZXM6dCx0aW1lczpuLGVhc2U6cj1gZWFzZUluT3V0YH0pe2xldCBpPUZUKHIpP3IubWFwKFVUKTpVVChyKSxhPXtkb25lOiExLHZhbHVlOnRbMF19LG89Z0UobWdlKG4mJm4ubGVuZ3RoPT09dC5sZW5ndGg/bjp2RSh0KSxlKSx0LHtlYXNlOkFycmF5LmlzQXJyYXkoaSk/aTpoZ2UodCxpKX0pO3JldHVybntjYWxjdWxhdGVkRHVyYXRpb246ZSxuZXh0OnQ9PihhLnZhbHVlPW8odCksYS5kb25lPXQ+PWUsYSl9fWZ1bmN0aW9uIGJFKGUsdCl7cmV0dXJuIHQ/MWUzL3QqZTowfXZhciBnZ2U9NTtmdW5jdGlvbiB4RShlLHQsbil7bGV0IHI9TWF0aC5tYXgodC1nZ2UsMCk7cmV0dXJuIGJFKG4tZShyKSx0LXIpfXZhciBTRT0uMDAxLF9nZT0uMDEsdmdlPS4wNTtmdW5jdGlvbiB5Z2Uoe2R1cmF0aW9uOmU9ODAwLGJvdW5jZTp0PS4yNSx2ZWxvY2l0eTpuPTAsbWFzczpyPTF9KXtsZXQgaSxhO1NUKGU8PXdUKDEwKSxgU3ByaW5nIGR1cmF0aW9uIG11c3QgYmUgMTAgc2Vjb25kcyBvciBsZXNzYCk7bGV0IG89MS10O289dXcodmdlLDEsbyksZT11dyhfZ2UsMTAsVFQoZSkpLG88MT8oaT10PT57bGV0IHI9dCpvLGk9ciplLGE9ci1uLHM9Q0UodCxvKSxjPU1hdGguZXhwKC1pKTtyZXR1cm4gU0UtYS9zKmN9LGE9dD0+e2xldCByPXQqbyplLGE9cipuK24scz1vKioyKnQqKjIqZSxjPU1hdGguZXhwKC1yKSxsPUNFKHQqKjIsbyk7cmV0dXJuKC1pKHQpK1NFPjA/LTE6MSkqKChhLXMpKmMpL2x9KTooaT10PT57bGV0IHI9TWF0aC5leHAoLXQqZSksaT0odC1uKSplKzE7cmV0dXJuLVNFK3IqaX0sYT10PT5NYXRoLmV4cCgtdCplKSooKG4tdCkqKGUqZSkpKTtsZXQgcz01L2UsYz14Z2UoaSxhLHMpO2lmKGU9d1QoZSksaXNOYU4oYykpcmV0dXJue3N0aWZmbmVzczoxMDAsZGFtcGluZzoxMCxkdXJhdGlvbjplfTt7bGV0IHQ9YyoqMipyO3JldHVybntzdGlmZm5lc3M6dCxkYW1waW5nOm8qMipNYXRoLnNxcnQocip0KSxkdXJhdGlvbjplfX19dmFyIGJnZT0xMjtmdW5jdGlvbiB4Z2UoZSx0LG4pe2xldCByPW47Zm9yKGxldCBuPTE7bjxiZ2U7bisrKXItPWUocikvdChyKTtyZXR1cm4gcn1mdW5jdGlvbiBDRShlLHQpe3JldHVybiBlKk1hdGguc3FydCgxLXQqdCl9dmFyIFNnZT1bYGR1cmF0aW9uYCxgYm91bmNlYF0sQ2dlPVtgc3RpZmZuZXNzYCxgZGFtcGluZ2AsYG1hc3NgXTtmdW5jdGlvbiB3RShlLHQpe3JldHVybiB0LnNvbWUodD0+ZVt0XSE9PXZvaWQgMCl9ZnVuY3Rpb24gd2dlKGUpe2xldCB0PXt2ZWxvY2l0eTowLHN0aWZmbmVzczoxMDAsZGFtcGluZzoxMCxtYXNzOjEsaXNSZXNvbHZlZEZyb21EdXJhdGlvbjohMSwuLi5lfTtpZighd0UoZSxDZ2UpJiZ3RShlLFNnZSkpe2xldCBuPXlnZShlKTt0PXsuLi50LC4uLm4sbWFzczoxfSx0LmlzUmVzb2x2ZWRGcm9tRHVyYXRpb249ITB9cmV0dXJuIHR9ZnVuY3Rpb24gVEUoe2tleWZyYW1lczplLHJlc3REZWx0YTp0LHJlc3RTcGVlZDpuLC4uLnJ9KXtsZXQgaT1lWzBdLGE9ZVtlLmxlbmd0aC0xXSxvPXtkb25lOiExLHZhbHVlOml9LHtzdGlmZm5lc3M6cyxkYW1waW5nOmMsbWFzczpsLGR1cmF0aW9uOnUsdmVsb2NpdHk6ZCxpc1Jlc29sdmVkRnJvbUR1cmF0aW9uOmZ9PXdnZSh7Li4ucix2ZWxvY2l0eTotVFQoci52ZWxvY2l0eXx8MCl9KSxwPWR8fDAsbT1jLygyKk1hdGguc3FydChzKmwpKSxoPWEtaSxnPVRUKE1hdGguc3FydChzL2wpKSxfPU1hdGguYWJzKGgpPDU7bnx8KG49Xz8uMDE6MiksdHx8KHQ9Xz8uMDA1Oi41KTtsZXQgdjtpZihtPDEpe2xldCBlPUNFKGcsbSk7dj10PT5hLU1hdGguZXhwKC1tKmcqdCkqKChwK20qZypoKS9lKk1hdGguc2luKGUqdCkraCpNYXRoLmNvcyhlKnQpKX1lbHNlIGlmKG09PT0xKXY9ZT0+YS1NYXRoLmV4cCgtZyplKSooaCsocCtnKmgpKmUpO2Vsc2V7bGV0IGU9ZypNYXRoLnNxcnQobSptLTEpO3Y9dD0+e2xldCBuPU1hdGguZXhwKC1tKmcqdCkscj1NYXRoLm1pbihlKnQsMzAwKTtyZXR1cm4gYS1uKigocCttKmcqaCkqTWF0aC5zaW5oKHIpK2UqaCpNYXRoLmNvc2gocikpL2V9fXJldHVybntjYWxjdWxhdGVkRHVyYXRpb246ZiYmdXx8bnVsbCxuZXh0OmU9PntsZXQgcj12KGUpO2lmKGYpby5kb25lPWU+PXU7ZWxzZXtsZXQgaT1wO2UhPT0wJiYoaT1tPDE/eEUodixlLHIpOjApO2xldCBzPU1hdGguYWJzKGkpPD1uLGM9TWF0aC5hYnMoYS1yKTw9dDtvLmRvbmU9cyYmY31yZXR1cm4gby52YWx1ZT1vLmRvbmU/YTpyLG99fX1mdW5jdGlvbiBFRSh7a2V5ZnJhbWVzOmUsdmVsb2NpdHk6dD0wLHBvd2VyOm49LjgsdGltZUNvbnN0YW50OnI9MzI1LGJvdW5jZURhbXBpbmc6aT0xMCxib3VuY2VTdGlmZm5lc3M6YT01MDAsbW9kaWZ5VGFyZ2V0Om8sbWluOnMsbWF4OmMscmVzdERlbHRhOmw9LjUscmVzdFNwZWVkOnV9KXtsZXQgZD1lWzBdLGY9e2RvbmU6ITEsdmFsdWU6ZH0scD1lPT5zIT09dm9pZCAwJiZlPHN8fGMhPT12b2lkIDAmJmU+YyxtPWU9PnM9PT12b2lkIDA/YzpjPT09dm9pZCAwfHxNYXRoLmFicyhzLWUpPE1hdGguYWJzKGMtZSk/czpjLGg9bip0LGc9ZCtoLF89bz09PXZvaWQgMD9nOm8oZyk7XyE9PWcmJihoPV8tZCk7bGV0IHY9ZT0+LWgqTWF0aC5leHAoLWUvcikseT1lPT5fK3YoZSksYj1lPT57bGV0IHQ9dihlKSxuPXkoZSk7Zi5kb25lPU1hdGguYWJzKHQpPD1sLGYudmFsdWU9Zi5kb25lP186bn0seCxTLEM9ZT0+e3AoZi52YWx1ZSkmJih4PWUsUz1URSh7a2V5ZnJhbWVzOltmLnZhbHVlLG0oZi52YWx1ZSldLHZlbG9jaXR5OnhFKHksZSxmLnZhbHVlKSxkYW1waW5nOmksc3RpZmZuZXNzOmEscmVzdERlbHRhOmwscmVzdFNwZWVkOnV9KSl9O3JldHVybiBDKDApLHtjYWxjdWxhdGVkRHVyYXRpb246bnVsbCxuZXh0OmU9PntsZXQgdD0hMTtyZXR1cm4hUyYmeD09PXZvaWQgMCYmKHQ9ITAsYihlKSxDKGUpKSx4IT09dm9pZCAwJiZlPng/Uy5uZXh0KGUteCk6KCF0JiZiKGUpLGYpfX19dmFyIFRnZT1lPT57bGV0IHQ9KHt0aW1lc3RhbXA6dH0pPT5lKHQpO3JldHVybntzdGFydDooKT0+WHcudXBkYXRlKHQsITApLHN0b3A6KCk9Plp3KHQpLG5vdzooKT0+UXcuaXNQcm9jZXNzaW5nP1F3LnRpbWVzdGFtcDpwZXJmb3JtYW5jZS5ub3coKX19LEVnZT0yZTQ7ZnVuY3Rpb24gREUoZSl7bGV0IHQ9MCxuPWUubmV4dCh0KTtmb3IoOyFuLmRvbmUmJnQ8MmU0Oyl0Kz01MCxuPWUubmV4dCh0KTtyZXR1cm4gdD49MmU0PzEvMDp0fXZhciBEZ2U9e2RlY2F5OkVFLGluZXJ0aWE6RUUsdHdlZW46eUUsa2V5ZnJhbWVzOnlFLHNwcmluZzpURX07ZnVuY3Rpb24gT0Uoe2F1dG9wbGF5OmU9ITAsZGVsYXk6dD0wLGRyaXZlcjpuPVRnZSxrZXlmcmFtZXM6cix0eXBlOmk9YGtleWZyYW1lc2AscmVwZWF0OmE9MCxyZXBlYXREZWxheTpvPTAscmVwZWF0VHlwZTpzPWBsb29wYCxvblBsYXk6YyxvblN0b3A6bCxvbkNvbXBsZXRlOnUsb25VcGRhdGU6ZCwuLi5mfSl7bGV0IHA9MSxtPSExLGgsZyxfPSgpPT57Zz1uZXcgUHJvbWlzZShlPT57aD1lfSl9O18oKTtsZXQgdix5PURnZVtpXXx8eUUsYjt5IT09eUUmJnR5cGVvZiByWzBdIT1gbnVtYmVyYCYmKGI9Z0UoWzAsMTAwXSxyLHtjbGFtcDohMX0pLHI9WzAsMTAwXSk7bGV0IHg9eSh7Li4uZixrZXlmcmFtZXM6cn0pLFM7cz09PWBtaXJyb3JgJiYoUz15KHsuLi5mLGtleWZyYW1lczpbLi4ucl0ucmV2ZXJzZSgpLHZlbG9jaXR5Oi0oZi52ZWxvY2l0eXx8MCl9KSk7bGV0IEM9YGlkbGVgLHc9bnVsbCxUPW51bGwsRT1udWxsO3guY2FsY3VsYXRlZER1cmF0aW9uPT09bnVsbCYmYSYmKHguY2FsY3VsYXRlZER1cmF0aW9uPURFKHgpKTtsZXR7Y2FsY3VsYXRlZER1cmF0aW9uOkR9PXgsTz0xLzAsaz0xLzA7RCE9PW51bGwmJihPPUQrbyxrPU8qKGErMSktbyk7bGV0IEE9MCxqPWU9PntpZihUPT09bnVsbClyZXR1cm47cD4wJiYoVD1NYXRoLm1pbihULGUpKSxwPDAmJihUPU1hdGgubWluKGUtay9wLFQpKSxBPXc9PT1udWxsP01hdGgucm91bmQoZS1UKSpwOnc7bGV0IG49QS10KihwPj0wPzE6LTEpLGk9cD49MD9uPDA6bj5rO0E9TWF0aC5tYXgobiwwKSxDPT09YGZpbmlzaGVkYCYmdz09PW51bGwmJihBPWspO2xldCBjPUEsbD14O2lmKGEpe2xldCBlPU1hdGgubWluKEEsaykvTyx0PU1hdGguZmxvb3IoZSksbj1lJTE7IW4mJmU+PTEmJihuPTEpLG49PT0xJiZ0LS0sdD1NYXRoLm1pbih0LGErMSksdCUyJiYocz09PWByZXZlcnNlYD8obj0xLW4sbyYmKG4tPW8vTykpOnM9PT1gbWlycm9yYCYmKGw9UykpLGM9dXcoMCwxLG4pKk99bGV0IHU9aT97ZG9uZTohMSx2YWx1ZTpyWzBdfTpsLm5leHQoYyk7YiYmKHUudmFsdWU9Yih1LnZhbHVlKSk7bGV0e2RvbmU6Zn09dTshaSYmRCE9PW51bGwmJihmPXA+PTA/QT49azpBPD0wKTtsZXQgbT13PT09bnVsbCYmKEM9PT1gZmluaXNoZWRgfHxDPT09YHJ1bm5pbmdgJiZmKTtyZXR1cm4gZCYmZCh1LnZhbHVlKSxtJiZQKCksdX0sTT0oKT0+e3YmJnYuc3RvcCgpLHY9dm9pZCAwfSxOPSgpPT57Qz1gaWRsZWAsTSgpLGgoKSxfKCksVD1FPW51bGx9LFA9KCk9PntDPWBmaW5pc2hlZGAsdSYmdSgpLE0oKSxoKCl9LEY9KCk9PntpZihtKXJldHVybjt2fHwodj1uKGopKTtsZXQgZT12Lm5vdygpO2MmJmMoKSx3PT09bnVsbD8oIVR8fEM9PT1gZmluaXNoZWRgKSYmKFQ9ZSk6VD1lLXcsQz09PWBmaW5pc2hlZGAmJl8oKSxFPVQsdz1udWxsLEM9YHJ1bm5pbmdgLHYuc3RhcnQoKX07ZSYmRigpO2xldCBlZT17dGhlbihlLHQpe3JldHVybiBnLnRoZW4oZSx0KX0sZ2V0IHRpbWUoKXtyZXR1cm4gVFQoQSl9LHNldCB0aW1lKGUpe2U9d1QoZSksQT1lLHchPT1udWxsfHwhdnx8cD09PTA/dz1lOlQ9di5ub3coKS1lL3B9LGdldCBkdXJhdGlvbigpe3JldHVybiBUVCh4LmNhbGN1bGF0ZWREdXJhdGlvbj09PW51bGw/REUoeCk6eC5jYWxjdWxhdGVkRHVyYXRpb24pfSxnZXQgc3BlZWQoKXtyZXR1cm4gcH0sc2V0IHNwZWVkKGUpe2U9PT1wfHwhdnx8KHA9ZSxlZS50aW1lPVRUKEEpKX0sZ2V0IHN0YXRlKCl7cmV0dXJuIEN9LHBsYXk6RixwYXVzZTooKT0+e0M9YHBhdXNlZGAsdz1BfSxzdG9wOigpPT57bT0hMCxDIT09YGlkbGVgJiYoQz1gaWRsZWAsbCYmbCgpLE4oKSl9LGNhbmNlbDooKT0+e0UhPT1udWxsJiZqKEUpLE4oKX0sY29tcGxldGU6KCk9PntDPWBmaW5pc2hlZGB9LHNhbXBsZTplPT4oVD0wLGooZSkpfTtyZXR1cm4gZWV9ZnVuY3Rpb24ga0UoZSl7bGV0IHQ7cmV0dXJuKCk9Pih0PT09dm9pZCAwJiYodD1lKCkpLHQpfXZhciBPZ2U9a0UoKCk9Pk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKEVsZW1lbnQucHJvdG90eXBlLGBhbmltYXRlYCkpLGtnZT1uZXcgU2V0KFtgb3BhY2l0eWAsYGNsaXBQYXRoYCxgZmlsdGVyYCxgdHJhbnNmb3JtYCxgYmFja2dyb3VuZENvbG9yYF0pLEFFPTEwLEFnZT0yZTQsamdlPShlLHQpPT50LnR5cGU9PT1gc3ByaW5nYHx8ZT09PWBiYWNrZ3JvdW5kQ29sb3JgfHwhT1QodC5lYXNlKTtmdW5jdGlvbiBNZ2UoZSx0LHtvblVwZGF0ZTpuLG9uQ29tcGxldGU6ciwuLi5pfSl7aWYoIShPZ2UoKSYma2dlLmhhcyh0KSYmIWkucmVwZWF0RGVsYXkmJmkucmVwZWF0VHlwZSE9PWBtaXJyb3JgJiZpLmRhbXBpbmchPT0wJiZpLnR5cGUhPT1gaW5lcnRpYWApKXJldHVybiExO2xldCBhPSExLG8scyxjPSExLGw9KCk9PntzPW5ldyBQcm9taXNlKGU9PntvPWV9KX07bCgpO2xldHtrZXlmcmFtZXM6dSxkdXJhdGlvbjpkPTMwMCxlYXNlOmYsdGltZXM6cH09aTtpZihqZ2UodCxpKSl7bGV0IGU9T0Uoey4uLmkscmVwZWF0OjAsZGVsYXk6MH0pLHQ9e2RvbmU6ITEsdmFsdWU6dVswXX0sbj1bXSxyPTA7Zm9yKDshdC5kb25lJiZyPEFnZTspdD1lLnNhbXBsZShyKSxuLnB1c2godC52YWx1ZSkscis9QUU7cD12b2lkIDAsdT1uLGQ9ci1BRSxmPWBsaW5lYXJgfWxldCBtPVloZShlLm93bmVyLmN1cnJlbnQsdCx1LHsuLi5pLGR1cmF0aW9uOmQsZWFzZTpmLHRpbWVzOnB9KSxoPSgpPT57Yz0hMSxtLmNhbmNlbCgpfSxnPSgpPT57Yz0hMCxYdy51cGRhdGUoaCksbygpLGwoKX07cmV0dXJuIG0ub25maW5pc2g9KCk9PntjfHwoZS5zZXQoWGhlKHUsaSkpLHImJnIoKSxnKCkpfSx7dGhlbihlLHQpe3JldHVybiBzLnRoZW4oZSx0KX0sYXR0YWNoVGltZWxpbmUoZSl7cmV0dXJuIG0udGltZWxpbmU9ZSxtLm9uZmluaXNoPW51bGwscXd9LGdldCB0aW1lKCl7cmV0dXJuIFRUKG0uY3VycmVudFRpbWV8fDApfSxzZXQgdGltZShlKXttLmN1cnJlbnRUaW1lPXdUKGUpfSxnZXQgc3BlZWQoKXtyZXR1cm4gbS5wbGF5YmFja1JhdGV9LHNldCBzcGVlZChlKXttLnBsYXliYWNrUmF0ZT1lfSxnZXQgZHVyYXRpb24oKXtyZXR1cm4gVFQoZCl9LHBsYXk6KCk9PnthfHwobS5wbGF5KCksWncoaCkpfSxwYXVzZTooKT0+bS5wYXVzZSgpLHN0b3A6KCk9PntpZihhPSEwLG0ucGxheVN0YXRlPT09YGlkbGVgKXJldHVybjtsZXR7Y3VycmVudFRpbWU6dH09bTtpZih0KXtsZXQgbj1PRSh7Li4uaSxhdXRvcGxheTohMX0pO2Uuc2V0V2l0aFZlbG9jaXR5KG4uc2FtcGxlKHQtQUUpLnZhbHVlLG4uc2FtcGxlKHQpLnZhbHVlLEFFKX1nKCl9LGNvbXBsZXRlOigpPT57Y3x8bS5maW5pc2goKX0sY2FuY2VsOmd9fWZ1bmN0aW9uIE5nZSh7a2V5ZnJhbWVzOmUsZGVsYXk6dCxvblVwZGF0ZTpuLG9uQ29tcGxldGU6cn0pe2xldCBpPSgpPT4obiYmbihlW2UubGVuZ3RoLTFdKSxyJiZyKCkse3RpbWU6MCxzcGVlZDoxLGR1cmF0aW9uOjAscGxheTpxdyxwYXVzZTpxdyxzdG9wOnF3LHRoZW46ZT0+KGUoKSxQcm9taXNlLnJlc29sdmUoKSksY2FuY2VsOnF3LGNvbXBsZXRlOnF3fSk7cmV0dXJuIHQ/T0Uoe2tleWZyYW1lczpbMCwxXSxkdXJhdGlvbjowLGRlbGF5OnQsb25Db21wbGV0ZTppfSk6aSgpfXZhciBQZ2U9e3R5cGU6YHNwcmluZ2Asc3RpZmZuZXNzOjUwMCxkYW1waW5nOjI1LHJlc3RTcGVlZDoxMH0sRmdlPWU9Pih7dHlwZTpgc3ByaW5nYCxzdGlmZm5lc3M6NTUwLGRhbXBpbmc6ZT09PTA/MipNYXRoLnNxcnQoNTUwKTozMCxyZXN0U3BlZWQ6MTB9KSxJZ2U9e3R5cGU6YGtleWZyYW1lc2AsZHVyYXRpb246Ljh9LExnZT17dHlwZTpga2V5ZnJhbWVzYCxlYXNlOlsuMjUsLjEsLjM1LDFdLGR1cmF0aW9uOi4zfSxSZ2U9KGUse2tleWZyYW1lczp0fSk9PnQubGVuZ3RoPjI/SWdlOml3LmhhcyhlKT9lLnN0YXJ0c1dpdGgoYHNjYWxlYCk/RmdlKHRbMV0pOlBnZTpMZ2UsakU9KGUsdCk9PmU9PT1gekluZGV4YD8hMTohISh0eXBlb2YgdD09YG51bWJlcmB8fEFycmF5LmlzQXJyYXkodCl8fHR5cGVvZiB0PT1gc3RyaW5nYCYmKGxFLnRlc3QodCl8fHQ9PT1gMGApJiYhdC5zdGFydHNXaXRoKGB1cmwoYCkpLHpnZT1uZXcgU2V0KFtgYnJpZ2h0bmVzc2AsYGNvbnRyYXN0YCxgc2F0dXJhdGVgLGBvcGFjaXR5YF0pO2Z1bmN0aW9uIEJnZShlKXtsZXRbdCxuXT1lLnNsaWNlKDAsLTEpLnNwbGl0KGAoYCk7aWYodD09PWBkcm9wLXNoYWRvd2ApcmV0dXJuIGU7bGV0W3JdPW4ubWF0Y2goaHcpfHxbXTtpZighcilyZXR1cm4gZTtsZXQgaT1uLnJlcGxhY2UocixgYCksYT0rISF6Z2UuaGFzKHQpO3JldHVybiByIT09biYmKGEqPTEwMCksdCtgKGArYStpK2ApYH12YXIgVmdlPS8oW2Etei1dKilcKC4qP1wpL2csTUU9ey4uLmxFLGdldEFuaW1hdGFibGVOb25lOmU9PntsZXQgdD1lLm1hdGNoKFZnZSk7cmV0dXJuIHQ/dC5tYXAoQmdlKS5qb2luKGAgYCk6ZX19LEhnZT17Li4ud3csY29sb3I6WFQsYmFja2dyb3VuZENvbG9yOlhULG91dGxpbmVDb2xvcjpYVCxmaWxsOlhULHN0cm9rZTpYVCxib3JkZXJDb2xvcjpYVCxib3JkZXJUb3BDb2xvcjpYVCxib3JkZXJSaWdodENvbG9yOlhULGJvcmRlckJvdHRvbUNvbG9yOlhULGJvcmRlckxlZnRDb2xvcjpYVCxmaWx0ZXI6TUUsV2Via2l0RmlsdGVyOk1FfSxORT1lPT5IZ2VbZV07ZnVuY3Rpb24gUEUoZSx0KXtsZXQgbj1ORShlKTtyZXR1cm4gbiE9PU1FJiYobj1sRSksbi5nZXRBbmltYXRhYmxlTm9uZT9uLmdldEFuaW1hdGFibGVOb25lKHQpOnZvaWQgMH12YXIgRkU9ZT0+L14wW14uXHNdKyQvLnRlc3QoZSk7ZnVuY3Rpb24gVWdlKGUpe2lmKHR5cGVvZiBlPT1gbnVtYmVyYClyZXR1cm4gZT09PTA7aWYoZSE9PW51bGwpcmV0dXJuIGU9PT1gbm9uZWB8fGU9PT1gMGB8fEZFKGUpfWZ1bmN0aW9uIFdnZShlLHQsbixyKXtsZXQgaT1qRSh0LG4pLGE7YT1BcnJheS5pc0FycmF5KG4pP1suLi5uXTpbbnVsbCxuXTtsZXQgbz1yLmZyb209PT12b2lkIDA/ZS5nZXQoKTpyLmZyb20scyxjPVtdO2ZvcihsZXQgZT0wO2U8YS5sZW5ndGg7ZSsrKWFbZV09PT1udWxsJiYoYVtlXT1lPT09MD9vOmFbZS0xXSksVWdlKGFbZV0pJiZjLnB1c2goZSksdHlwZW9mIGFbZV09PWBzdHJpbmdgJiZhW2VdIT09YG5vbmVgJiZhW2VdIT09YDBgJiYocz1hW2VdKTtpZihpJiZjLmxlbmd0aCYmcylmb3IobGV0IGU9MDtlPGMubGVuZ3RoO2UrKyl7bGV0IG49Y1tlXTthW25dPVBFKHQscyl9cmV0dXJuIGF9ZnVuY3Rpb24gR2dlKHt3aGVuOmUsZGVsYXk6dCxkZWxheUNoaWxkcmVuOm4sc3RhZ2dlckNoaWxkcmVuOnIsc3RhZ2dlckRpcmVjdGlvbjppLHJlcGVhdDphLHJlcGVhdFR5cGU6byxyZXBlYXREZWxheTpzLGZyb206YyxlbGFwc2VkOmwsLi4udX0pe3JldHVybiEhT2JqZWN0LmtleXModSkubGVuZ3RofWZ1bmN0aW9uIElFKGUsdCl7cmV0dXJuIGVbdF18fGUuZGVmYXVsdHx8ZX12YXIgS2dlPXtza2lwQW5pbWF0aW9uczohMX0sTEU9KGUsdCxuLHI9e30pPT5pPT57bGV0IGE9SUUocixlKXx8e30sbz1hLmRlbGF5fHxyLmRlbGF5fHwwLHtlbGFwc2VkOnM9MH09cjtzLT13VChvKTtsZXQgYz1XZ2UodCxlLG4sYSksbD1jWzBdLHU9Y1tjLmxlbmd0aC0xXSxkPWpFKGUsbCksZj1qRShlLHUpO1NUKGQ9PT1mLGBZb3UgYXJlIHRyeWluZyB0byBhbmltYXRlICR7ZX0gZnJvbSAiJHtsfSIgdG8gIiR7dX0iLiAke2x9IGlzIG5vdCBhbiBhbmltYXRhYmxlIHZhbHVlIC0gdG8gZW5hYmxlIHRoaXMgYW5pbWF0aW9uIHNldCAke2x9IHRvIGEgdmFsdWUgYW5pbWF0YWJsZSB0byAke3V9IHZpYSB0aGUgXGBzdHlsZVxgIHByb3BlcnR5LmApO2xldCBwPXtrZXlmcmFtZXM6Yyx2ZWxvY2l0eTp0LmdldFZlbG9jaXR5KCksZWFzZTpgZWFzZU91dGAsLi4uYSxkZWxheTotcyxvblVwZGF0ZTplPT57dC5zZXQoZSksYS5vblVwZGF0ZSYmYS5vblVwZGF0ZShlKX0sb25Db21wbGV0ZTooKT0+e2koKSxhLm9uQ29tcGxldGUmJmEub25Db21wbGV0ZSgpfX07aWYoR2dlKGEpfHwocD17Li4ucCwuLi5SZ2UoZSxwKX0pLHAuZHVyYXRpb24mJihwLmR1cmF0aW9uPXdUKHAuZHVyYXRpb24pKSxwLnJlcGVhdERlbGF5JiYocC5yZXBlYXREZWxheT13VChwLnJlcGVhdERlbGF5KSksIWR8fCFmfHxFVC5jdXJyZW50fHxhLnR5cGU9PT0hMXx8S2dlLnNraXBBbmltYXRpb25zKXJldHVybiBOZ2UoRVQuY3VycmVudD97Li4ucCxkZWxheTowfTpwKTtpZighci5pc0hhbmRvZmYmJnQub3duZXImJnQub3duZXIuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYhdC5vd25lci5nZXRQcm9wcygpLm9uVXBkYXRlKXtsZXQgbj1NZ2UodCxlLHApO2lmKG4pcmV0dXJuIG59cmV0dXJuIE9FKHApfTtmdW5jdGlvbiBSRShlKXtyZXR1cm4hIShvdyhlKSYmZS5hZGQpfXZhciB6RT1lPT4vXlwtP1xkKlwuP1xkKyQvLnRlc3QoZSk7ZnVuY3Rpb24gQkUoZSx0KXtlLmluZGV4T2YodCk9PT0tMSYmZS5wdXNoKHQpfWZ1bmN0aW9uIFZFKGUsdCl7bGV0IG49ZS5pbmRleE9mKHQpO24+LTEmJmUuc3BsaWNlKG4sMSl9dmFyIEhFPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zdWJzY3JpcHRpb25zPVtdfWFkZChlKXtyZXR1cm4gQkUodGhpcy5zdWJzY3JpcHRpb25zLGUpLCgpPT5WRSh0aGlzLnN1YnNjcmlwdGlvbnMsZSl9bm90aWZ5KGUsdCxuKXtsZXQgcj10aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoO2lmKHIpaWYocj09PTEpdGhpcy5zdWJzY3JpcHRpb25zWzBdKGUsdCxuKTtlbHNlIGZvcihsZXQgaT0wO2k8cjtpKyspe2xldCByPXRoaXMuc3Vic2NyaXB0aW9uc1tpXTtyJiZyKGUsdCxuKX19Z2V0U2l6ZSgpe3JldHVybiB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RofWNsZWFyKCl7dGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aD0wfX0scWdlPWU9PiFpc05hTihwYXJzZUZsb2F0KGUpKSxVRT17Y3VycmVudDp2b2lkIDB9LEpnZT1jbGFzc3tjb25zdHJ1Y3RvcihlLHQ9e30pe3RoaXMudmVyc2lvbj1gMTAuMTguMGAsdGhpcy50aW1lRGVsdGE9MCx0aGlzLmxhc3RVcGRhdGVkPTAsdGhpcy5jYW5UcmFja1ZlbG9jaXR5PSExLHRoaXMuZXZlbnRzPXt9LHRoaXMudXBkYXRlQW5kTm90aWZ5PShlLHQ9ITApPT57dGhpcy5wcmV2PXRoaXMuY3VycmVudCx0aGlzLmN1cnJlbnQ9ZTtsZXR7ZGVsdGE6bix0aW1lc3RhbXA6cn09UXc7dGhpcy5sYXN0VXBkYXRlZCE9PXImJih0aGlzLnRpbWVEZWx0YT1uLHRoaXMubGFzdFVwZGF0ZWQ9cixYdy5wb3N0UmVuZGVyKHRoaXMuc2NoZWR1bGVWZWxvY2l0eUNoZWNrKSksdGhpcy5wcmV2IT09dGhpcy5jdXJyZW50JiZ0aGlzLmV2ZW50cy5jaGFuZ2UmJnRoaXMuZXZlbnRzLmNoYW5nZS5ub3RpZnkodGhpcy5jdXJyZW50KSx0aGlzLmV2ZW50cy52ZWxvY2l0eUNoYW5nZSYmdGhpcy5ldmVudHMudmVsb2NpdHlDaGFuZ2Uubm90aWZ5KHRoaXMuZ2V0VmVsb2NpdHkoKSksdCYmdGhpcy5ldmVudHMucmVuZGVyUmVxdWVzdCYmdGhpcy5ldmVudHMucmVuZGVyUmVxdWVzdC5ub3RpZnkodGhpcy5jdXJyZW50KX0sdGhpcy5zY2hlZHVsZVZlbG9jaXR5Q2hlY2s9KCk9Plh3LnBvc3RSZW5kZXIodGhpcy52ZWxvY2l0eUNoZWNrKSx0aGlzLnZlbG9jaXR5Q2hlY2s9KHt0aW1lc3RhbXA6ZX0pPT57ZSE9PXRoaXMubGFzdFVwZGF0ZWQmJih0aGlzLnByZXY9dGhpcy5jdXJyZW50LHRoaXMuZXZlbnRzLnZlbG9jaXR5Q2hhbmdlJiZ0aGlzLmV2ZW50cy52ZWxvY2l0eUNoYW5nZS5ub3RpZnkodGhpcy5nZXRWZWxvY2l0eSgpKSl9LHRoaXMuaGFzQW5pbWF0ZWQ9ITEsdGhpcy5wcmV2PXRoaXMuY3VycmVudD1lLHRoaXMuY2FuVHJhY2tWZWxvY2l0eT1xZ2UodGhpcy5jdXJyZW50KSx0aGlzLm93bmVyPXQub3duZXJ9b25DaGFuZ2UoZSl7cmV0dXJuIHRoaXMub24oYGNoYW5nZWAsZSl9b24oZSx0KXt0aGlzLmV2ZW50c1tlXXx8KHRoaXMuZXZlbnRzW2VdPW5ldyBIRSk7bGV0IG49dGhpcy5ldmVudHNbZV0uYWRkKHQpO3JldHVybiBlPT09YGNoYW5nZWA/KCk9PntuKCksWHcucmVhZCgoKT0+e3RoaXMuZXZlbnRzLmNoYW5nZS5nZXRTaXplKCl8fHRoaXMuc3RvcCgpfSl9Om59Y2xlYXJMaXN0ZW5lcnMoKXtmb3IobGV0IGUgaW4gdGhpcy5ldmVudHMpdGhpcy5ldmVudHNbZV0uY2xlYXIoKX1hdHRhY2goZSx0KXt0aGlzLnBhc3NpdmVFZmZlY3Q9ZSx0aGlzLnN0b3BQYXNzaXZlRWZmZWN0PXR9c2V0KGUsdD0hMCl7IXR8fCF0aGlzLnBhc3NpdmVFZmZlY3Q/dGhpcy51cGRhdGVBbmROb3RpZnkoZSx0KTp0aGlzLnBhc3NpdmVFZmZlY3QoZSx0aGlzLnVwZGF0ZUFuZE5vdGlmeSl9c2V0V2l0aFZlbG9jaXR5KGUsdCxuKXt0aGlzLnNldCh0KSx0aGlzLnByZXY9ZSx0aGlzLnRpbWVEZWx0YT1ufWp1bXAoZSl7dGhpcy51cGRhdGVBbmROb3RpZnkoZSksdGhpcy5wcmV2PWUsdGhpcy5zdG9wKCksdGhpcy5zdG9wUGFzc2l2ZUVmZmVjdCYmdGhpcy5zdG9wUGFzc2l2ZUVmZmVjdCgpfWdldCgpe3JldHVybiBVRS5jdXJyZW50JiZVRS5jdXJyZW50LnB1c2godGhpcyksdGhpcy5jdXJyZW50fWdldFByZXZpb3VzKCl7cmV0dXJuIHRoaXMucHJldn1nZXRWZWxvY2l0eSgpe3JldHVybiB0aGlzLmNhblRyYWNrVmVsb2NpdHk/YkUocGFyc2VGbG9hdCh0aGlzLmN1cnJlbnQpLXBhcnNlRmxvYXQodGhpcy5wcmV2KSx0aGlzLnRpbWVEZWx0YSk6MH1zdGFydChlKXtyZXR1cm4gdGhpcy5zdG9wKCksbmV3IFByb21pc2UodD0+e3RoaXMuaGFzQW5pbWF0ZWQ9ITAsdGhpcy5hbmltYXRpb249ZSh0KSx0aGlzLmV2ZW50cy5hbmltYXRpb25TdGFydCYmdGhpcy5ldmVudHMuYW5pbWF0aW9uU3RhcnQubm90aWZ5KCl9KS50aGVuKCgpPT57dGhpcy5ldmVudHMuYW5pbWF0aW9uQ29tcGxldGUmJnRoaXMuZXZlbnRzLmFuaW1hdGlvbkNvbXBsZXRlLm5vdGlmeSgpLHRoaXMuY2xlYXJBbmltYXRpb24oKX0pfXN0b3AoKXt0aGlzLmFuaW1hdGlvbiYmKHRoaXMuYW5pbWF0aW9uLnN0b3AoKSx0aGlzLmV2ZW50cy5hbmltYXRpb25DYW5jZWwmJnRoaXMuZXZlbnRzLmFuaW1hdGlvbkNhbmNlbC5ub3RpZnkoKSksdGhpcy5jbGVhckFuaW1hdGlvbigpfWlzQW5pbWF0aW5nKCl7cmV0dXJuISF0aGlzLmFuaW1hdGlvbn1jbGVhckFuaW1hdGlvbigpe2RlbGV0ZSB0aGlzLmFuaW1hdGlvbn1kZXN0cm95KCl7dGhpcy5jbGVhckxpc3RlbmVycygpLHRoaXMuc3RvcCgpLHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QmJnRoaXMuc3RvcFBhc3NpdmVFZmZlY3QoKX19O2Z1bmN0aW9uIFdFKGUsdCl7cmV0dXJuIG5ldyBKZ2UoZSx0KX12YXIgR0U9ZT0+dD0+dC50ZXN0KGUpLEtFPVtkdyx4dyxidyx5dyxmaGUsZGhlLHt0ZXN0OmU9PmU9PT1gYXV0b2AscGFyc2U6ZT0+ZX1dLHFFPWU9PktFLmZpbmQoR0UoZSkpLFlnZT1bLi4uS0UsWFQsbEVdLFhnZT1lPT5ZZ2UuZmluZChHRShlKSk7ZnVuY3Rpb24gWmdlKGUsdCxuKXtlLmhhc1ZhbHVlKHQpP2UuZ2V0VmFsdWUodCkuc2V0KG4pOmUuYWRkVmFsdWUodCxXRShuKSl9ZnVuY3Rpb24gSkUoZSx0KXtsZXQgbj14VChlLHQpLHt0cmFuc2l0aW9uRW5kOnI9e30sdHJhbnNpdGlvbjppPXt9LC4uLmF9PW4/ZS5tYWtlVGFyZ2V0QW5pbWF0YWJsZShuLCExKTp7fTthPXsuLi5hLC4uLnJ9O2ZvcihsZXQgdCBpbiBhKVpnZShlLHQsa2hlKGFbdF0pKX1mdW5jdGlvbiBZRShlLHQpe1suLi50XS5yZXZlcnNlKCkuZm9yRWFjaChuPT57bGV0IHI9ZS5nZXRWYXJpYW50KG4pO3ImJkpFKGUsciksZS52YXJpYW50Q2hpbGRyZW4mJmUudmFyaWFudENoaWxkcmVuLmZvckVhY2goZT0+e1lFKGUsdCl9KX0pfWZ1bmN0aW9uIFFnZShlLHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIFlFKGUsdCk7aWYodHlwZW9mIHQ9PWBzdHJpbmdgKXJldHVybiBZRShlLFt0XSk7SkUoZSx0KX1mdW5jdGlvbiAkZ2UoZSx0LG4pe2xldCByPU9iamVjdC5rZXlzKHQpLmZpbHRlcih0PT4hZS5oYXNWYWx1ZSh0KSksaT1yLmxlbmd0aDtpZihpKWZvcihsZXQgYT0wO2E8aTthKyspe2xldCBpPXJbYV0sbz10W2ldLHM9bnVsbDtBcnJheS5pc0FycmF5KG8pJiYocz1vWzBdKSxzPT09bnVsbCYmKHM9bltpXT8/ZS5yZWFkVmFsdWUoaSk/P3RbaV0pLHMhPW51bGwmJih0eXBlb2Ygcz09YHN0cmluZ2AmJih6RShzKXx8RkUocykpP3M9cGFyc2VGbG9hdChzKTohWGdlKHMpJiZsRS50ZXN0KG8pJiYocz1QRShpLG8pKSxlLmFkZFZhbHVlKGksV0Uocyx7b3duZXI6ZX0pKSxuW2ldPT09dm9pZCAwJiYobltpXT1zKSxzIT09bnVsbCYmZS5zZXRCYXNlVGFyZ2V0KGkscykpfX1mdW5jdGlvbiBlX2UoZSx0KXtpZih0KXJldHVybih0W2VdfHx0LmRlZmF1bHR8fHQpLmZyb219ZnVuY3Rpb24gdF9lKGUsdCxuKXtsZXQgcj17fTtmb3IobGV0IGkgaW4gZSl7bGV0IGU9ZV9lKGksdCk7aWYoZSE9PXZvaWQgMClyW2ldPWU7ZWxzZXtsZXQgZT1uLmdldFZhbHVlKGkpO2UmJihyW2ldPWUuZ2V0KCkpfX1yZXR1cm4gcn1mdW5jdGlvbiBuX2Uoe3Byb3RlY3RlZEtleXM6ZSxuZWVkc0FuaW1hdGluZzp0fSxuKXtsZXQgcj1lLmhhc093blByb3BlcnR5KG4pJiZ0W25dIT09ITA7cmV0dXJuIHRbbl09ITEscn1mdW5jdGlvbiByX2UoZSx0KXtsZXQgbj1lLmdldCgpO2lmKEFycmF5LmlzQXJyYXkodCkpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV0hPT1uKXJldHVybiEwfWVsc2UgcmV0dXJuIG4hPT10fWZ1bmN0aW9uIFhFKGUsdCx7ZGVsYXk6bj0wLHRyYW5zaXRpb25PdmVycmlkZTpyLHR5cGU6aX09e30pe2xldHt0cmFuc2l0aW9uOmE9ZS5nZXREZWZhdWx0VHJhbnNpdGlvbigpLHRyYW5zaXRpb25FbmQ6bywuLi5zfT1lLm1ha2VUYXJnZXRBbmltYXRhYmxlKHQpLGM9ZS5nZXRWYWx1ZShgd2lsbENoYW5nZWApO3ImJihhPXIpO2xldCBsPVtdLHU9aSYmZS5hbmltYXRpb25TdGF0ZSYmZS5hbmltYXRpb25TdGF0ZS5nZXRTdGF0ZSgpW2ldO2ZvcihsZXQgdCBpbiBzKXtsZXQgcj1lLmdldFZhbHVlKHQpLGk9c1t0XTtpZighcnx8aT09PXZvaWQgMHx8dSYmbl9lKHUsdCkpY29udGludWU7bGV0IG89e2RlbGF5Om4sZWxhcHNlZDowLC4uLklFKGF8fHt9LHQpfTtpZih3aW5kb3cuSGFuZG9mZkFwcGVhckFuaW1hdGlvbnMpe2xldCBuPWUuZ2V0UHJvcHMoKVtCQ107aWYobil7bGV0IGU9d2luZG93LkhhbmRvZmZBcHBlYXJBbmltYXRpb25zKG4sdCxyLFh3KTtlIT09bnVsbCYmKG8uZWxhcHNlZD1lLG8uaXNIYW5kb2ZmPSEwKX19bGV0IGQ9IW8uaXNIYW5kb2ZmJiYhcl9lKHIsaSk7aWYoby50eXBlPT09YHNwcmluZ2AmJihyLmdldFZlbG9jaXR5KCl8fG8udmVsb2NpdHkpJiYoZD0hMSksci5hbmltYXRpb24mJihkPSExKSxkKWNvbnRpbnVlO3Iuc3RhcnQoTEUodCxyLGksZS5zaG91bGRSZWR1Y2VNb3Rpb24mJml3Lmhhcyh0KT97dHlwZTohMX06bykpO2xldCBmPXIuYW5pbWF0aW9uO1JFKGMpJiYoYy5hZGQodCksZi50aGVuKCgpPT5jLnJlbW92ZSh0KSkpLGwucHVzaChmKX1yZXR1cm4gbyYmUHJvbWlzZS5hbGwobCkudGhlbigoKT0+e28mJkpFKGUsbyl9KSxsfWZ1bmN0aW9uIFpFKGUsdCxuPXt9KXtsZXQgcj14VChlLHQsbi5jdXN0b20pLHt0cmFuc2l0aW9uOmk9ZS5nZXREZWZhdWx0VHJhbnNpdGlvbigpfHx7fX09cnx8e307bi50cmFuc2l0aW9uT3ZlcnJpZGUmJihpPW4udHJhbnNpdGlvbk92ZXJyaWRlKTtsZXQgYT1yPygpPT5Qcm9taXNlLmFsbChYRShlLHIsbikpOigpPT5Qcm9taXNlLnJlc29sdmUoKSxvPWUudmFyaWFudENoaWxkcmVuJiZlLnZhcmlhbnRDaGlsZHJlbi5zaXplPyhyPTApPT57bGV0e2RlbGF5Q2hpbGRyZW46YT0wLHN0YWdnZXJDaGlsZHJlbjpvLHN0YWdnZXJEaXJlY3Rpb246c309aTtyZXR1cm4gaV9lKGUsdCxhK3IsbyxzLG4pfTooKT0+UHJvbWlzZS5yZXNvbHZlKCkse3doZW46c309aTtpZihzKXtsZXRbZSx0XT1zPT09YGJlZm9yZUNoaWxkcmVuYD9bYSxvXTpbbyxhXTtyZXR1cm4gZSgpLnRoZW4oKCk9PnQoKSl9ZWxzZSByZXR1cm4gUHJvbWlzZS5hbGwoW2EoKSxvKG4uZGVsYXkpXSl9ZnVuY3Rpb24gaV9lKGUsdCxuPTAscj0wLGk9MSxhKXtsZXQgbz1bXSxzPShlLnZhcmlhbnRDaGlsZHJlbi5zaXplLTEpKnIsYz1pPT09MT8oZT0wKT0+ZSpyOihlPTApPT5zLWUqcjtyZXR1cm4gQXJyYXkuZnJvbShlLnZhcmlhbnRDaGlsZHJlbikuc29ydChhX2UpLmZvckVhY2goKGUscik9PntlLm5vdGlmeShgQW5pbWF0aW9uU3RhcnRgLHQpLG8ucHVzaChaRShlLHQsey4uLmEsZGVsYXk6bitjKHIpfSkudGhlbigoKT0+ZS5ub3RpZnkoYEFuaW1hdGlvbkNvbXBsZXRlYCx0KSkpfSksUHJvbWlzZS5hbGwobyl9ZnVuY3Rpb24gYV9lKGUsdCl7cmV0dXJuIGUuc29ydE5vZGVQb3NpdGlvbih0KX1mdW5jdGlvbiBRRShlLHQsbj17fSl7ZS5ub3RpZnkoYEFuaW1hdGlvblN0YXJ0YCx0KTtsZXQgcjtpZihBcnJheS5pc0FycmF5KHQpKXtsZXQgaT10Lm1hcCh0PT5aRShlLHQsbikpO3I9UHJvbWlzZS5hbGwoaSl9ZWxzZSBpZih0eXBlb2YgdD09YHN0cmluZ2Apcj1aRShlLHQsbik7ZWxzZXtsZXQgaT10eXBlb2YgdD09YGZ1bmN0aW9uYD94VChlLHQsbi5jdXN0b20pOnQ7cj1Qcm9taXNlLmFsbChYRShlLGksbikpfXJldHVybiByLnRoZW4oKCk9PmUubm90aWZ5KGBBbmltYXRpb25Db21wbGV0ZWAsdCkpfXZhciBvX2U9Wy4uLldDXS5yZXZlcnNlKCksc19lPVdDLmxlbmd0aDtmdW5jdGlvbiBjX2UoZSl7cmV0dXJuIHQ9PlByb21pc2UuYWxsKHQubWFwKCh7YW5pbWF0aW9uOnQsb3B0aW9uczpufSk9PlFFKGUsdCxuKSkpfWZ1bmN0aW9uIGxfZShlKXtsZXQgdD1jX2UoZSksbj1kX2UoKSxyPSEwLGk9KHQsbik9PntsZXQgcj14VChlLG4pO2lmKHIpe2xldHt0cmFuc2l0aW9uOmUsdHJhbnNpdGlvbkVuZDpuLC4uLml9PXI7dD17Li4udCwuLi5pLC4uLm59fXJldHVybiB0fTtmdW5jdGlvbiBhKG4pe3Q9bihlKX1mdW5jdGlvbiBvKGEsbyl7bGV0IHM9ZS5nZXRQcm9wcygpLGM9ZS5nZXRWYXJpYW50Q29udGV4dCghMCl8fHt9LGw9W10sdT1uZXcgU2V0LGQ9e30sZj0xLzA7Zm9yKGxldCB0PTA7dDxzX2U7dCsrKXtsZXQgcD1vX2VbdF0sbT1uW3BdLGg9c1twXT09PXZvaWQgMD9jW3BdOnNbcF0sZz1IQyhoKSxfPXA9PT1vP20uaXNBY3RpdmU6bnVsbDtfPT09ITEmJihmPXQpO2xldCB2PWg9PT1jW3BdJiZoIT09c1twXSYmZztpZih2JiZyJiZlLm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQmJih2PSExKSxtLnByb3RlY3RlZEtleXM9ey4uLmR9LCFtLmlzQWN0aXZlJiZfPT09bnVsbHx8IWgmJiFtLnByZXZQcm9wfHxVQyhoKXx8dHlwZW9mIGg9PWBib29sZWFuYCljb250aW51ZTtsZXQgeT11X2UobS5wcmV2UHJvcCxoKXx8cD09PW8mJm0uaXNBY3RpdmUmJiF2JiZnfHx0PmYmJmcsYj0hMSx4PUFycmF5LmlzQXJyYXkoaCk/aDpbaF0sUz14LnJlZHVjZShpLHt9KTtfPT09ITEmJihTPXt9KTtsZXR7cHJldlJlc29sdmVkVmFsdWVzOkM9e319PW0sdz17Li4uQywuLi5TfSxUPWU9Pnt5PSEwLHUuaGFzKGUpJiYoYj0hMCx1LmRlbGV0ZShlKSksbS5uZWVkc0FuaW1hdGluZ1tlXT0hMH07Zm9yKGxldCBlIGluIHcpe2xldCB0PVNbZV0sbj1DW2VdO2lmKGQuaGFzT3duUHJvcGVydHkoZSkpY29udGludWU7bGV0IHI9ITE7cj1Xdyh0KSYmV3cobik/IWJUKHQsbik6dCE9PW4scj90PT09dm9pZCAwP3UuYWRkKGUpOlQoZSk6dCE9PXZvaWQgMCYmdS5oYXMoZSk/VChlKTptLnByb3RlY3RlZEtleXNbZV09ITB9bS5wcmV2UHJvcD1oLG0ucHJldlJlc29sdmVkVmFsdWVzPVMsbS5pc0FjdGl2ZSYmKGQ9ey4uLmQsLi4uU30pLHImJmUuYmxvY2tJbml0aWFsQW5pbWF0aW9uJiYoeT0hMSkseSYmKCF2fHxiKSYmbC5wdXNoKC4uLngubWFwKGU9Pih7YW5pbWF0aW9uOmUsb3B0aW9uczp7dHlwZTpwLC4uLmF9fSkpKX1pZih1LnNpemUpe2xldCB0PXt9O3UuZm9yRWFjaChuPT57bGV0IHI9ZS5nZXRCYXNlVGFyZ2V0KG4pO3IhPT12b2lkIDAmJih0W25dPXIpfSksbC5wdXNoKHthbmltYXRpb246dH0pfWxldCBwPSEhbC5sZW5ndGg7cmV0dXJuIHImJihzLmluaXRpYWw9PT0hMXx8cy5pbml0aWFsPT09cy5hbmltYXRlKSYmIWUubWFudWFsbHlBbmltYXRlT25Nb3VudCYmKHA9ITEpLHI9ITEscD90KGwpOlByb21pc2UucmVzb2x2ZSgpfWZ1bmN0aW9uIHModCxyLGkpe3ZhciBhO2lmKG5bdF0uaXNBY3RpdmU9PT1yKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTsoYT1lLnZhcmlhbnRDaGlsZHJlbik9PW51bGx8fGEuZm9yRWFjaChlPT57dmFyIG47cmV0dXJuKG49ZS5hbmltYXRpb25TdGF0ZSk9PW51bGw/dm9pZCAwOm4uc2V0QWN0aXZlKHQscil9KSxuW3RdLmlzQWN0aXZlPXI7bGV0IHM9byhpLHQpO2ZvcihsZXQgZSBpbiBuKW5bZV0ucHJvdGVjdGVkS2V5cz17fTtyZXR1cm4gc31yZXR1cm57YW5pbWF0ZUNoYW5nZXM6byxzZXRBY3RpdmU6cyxzZXRBbmltYXRlRnVuY3Rpb246YSxnZXRTdGF0ZTooKT0+bn19ZnVuY3Rpb24gdV9lKGUsdCl7cmV0dXJuIHR5cGVvZiB0PT1gc3RyaW5nYD90IT09ZTpBcnJheS5pc0FycmF5KHQpPyFiVCh0LGUpOiExfWZ1bmN0aW9uICRFKGU9ITEpe3JldHVybntpc0FjdGl2ZTplLHByb3RlY3RlZEtleXM6e30sbmVlZHNBbmltYXRpbmc6e30scHJldlJlc29sdmVkVmFsdWVzOnt9fX1mdW5jdGlvbiBkX2UoKXtyZXR1cm57YW5pbWF0ZTokRSghMCksd2hpbGVJblZpZXc6JEUoKSx3aGlsZUhvdmVyOiRFKCksd2hpbGVUYXA6JEUoKSx3aGlsZURyYWc6JEUoKSx3aGlsZUZvY3VzOiRFKCksZXhpdDokRSgpfX12YXIgZl9lPWNsYXNzIGV4dGVuZHMgcFR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksZS5hbmltYXRpb25TdGF0ZXx8KGUuYW5pbWF0aW9uU3RhdGU9bF9lKGUpKX11cGRhdGVBbmltYXRpb25Db250cm9sc1N1YnNjcmlwdGlvbigpe2xldHthbmltYXRlOmV9PXRoaXMubm9kZS5nZXRQcm9wcygpO3RoaXMudW5tb3VudCgpLFVDKGUpJiYodGhpcy51bm1vdW50PWUuc3Vic2NyaWJlKHRoaXMubm9kZSkpfW1vdW50KCl7dGhpcy51cGRhdGVBbmltYXRpb25Db250cm9sc1N1YnNjcmlwdGlvbigpfXVwZGF0ZSgpe2xldHthbmltYXRlOmV9PXRoaXMubm9kZS5nZXRQcm9wcygpLHthbmltYXRlOnR9PXRoaXMubm9kZS5wcmV2UHJvcHN8fHt9O2UhPT10JiZ0aGlzLnVwZGF0ZUFuaW1hdGlvbkNvbnRyb2xzU3Vic2NyaXB0aW9uKCl9dW5tb3VudCgpe319LHBfZT0wLGVEPXthbmltYXRpb246e0ZlYXR1cmU6Zl9lfSxleGl0OntGZWF0dXJlOmNsYXNzIGV4dGVuZHMgcFR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuaWQ9cF9lKyt9dXBkYXRlKCl7aWYoIXRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHQpcmV0dXJuO2xldHtpc1ByZXNlbnQ6ZSxvbkV4aXRDb21wbGV0ZTp0LGN1c3RvbTpufT10aGlzLm5vZGUucHJlc2VuY2VDb250ZXh0LHtpc1ByZXNlbnQ6cn09dGhpcy5ub2RlLnByZXZQcmVzZW5jZUNvbnRleHR8fHt9O2lmKCF0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGV8fGU9PT1yKXJldHVybjtsZXQgaT10aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKGBleGl0YCwhZSx7Y3VzdG9tOm4/P3RoaXMubm9kZS5nZXRQcm9wcygpLmN1c3RvbX0pO3QmJiFlJiZpLnRoZW4oKCk9PnQodGhpcy5pZCkpfW1vdW50KCl7bGV0e3JlZ2lzdGVyOmV9PXRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHR8fHt9O2UmJih0aGlzLnVubW91bnQ9ZSh0aGlzLmlkKSl9dW5tb3VudCgpe319fX0sdEQ9KCk9Pih7dHJhbnNsYXRlOjAsc2NhbGU6MSxvcmlnaW46MCxvcmlnaW5Qb2ludDowfSksbV9lPSgpPT4oe3g6dEQoKSx5OnREKCl9KSxuRD0oKT0+KHttaW46MCxtYXg6MH0pLHJEPSgpPT4oe3g6bkQoKSx5Om5EKCl9KTtmdW5jdGlvbiBpRCh7dG9wOmUsbGVmdDp0LHJpZ2h0Om4sYm90dG9tOnJ9KXtyZXR1cm57eDp7bWluOnQsbWF4Om59LHk6e21pbjplLG1heDpyfX19ZnVuY3Rpb24gaF9lKHt4OmUseTp0fSl7cmV0dXJue3RvcDp0Lm1pbixyaWdodDplLm1heCxib3R0b206dC5tYXgsbGVmdDplLm1pbn19ZnVuY3Rpb24gZ19lKGUsdCl7aWYoIXQpcmV0dXJuIGU7bGV0IG49dCh7eDplLmxlZnQseTplLnRvcH0pLHI9dCh7eDplLnJpZ2h0LHk6ZS5ib3R0b219KTtyZXR1cm57dG9wOm4ueSxsZWZ0Om4ueCxib3R0b206ci55LHJpZ2h0OnIueH19ZnVuY3Rpb24gYUQoZSl7cmV0dXJuIGU9PT12b2lkIDB8fGU9PT0xfWZ1bmN0aW9uIG9EKHtzY2FsZTplLHNjYWxlWDp0LHNjYWxlWTpufSl7cmV0dXJuIWFEKGUpfHwhYUQodCl8fCFhRChuKX1mdW5jdGlvbiBzRChlKXtyZXR1cm4gb0QoZSl8fGNEKGUpfHxlLnp8fGUucm90YXRlfHxlLnJvdGF0ZVh8fGUucm90YXRlWX1mdW5jdGlvbiBjRChlKXtyZXR1cm4gbEQoZS54KXx8bEQoZS55KX1mdW5jdGlvbiBsRChlKXtyZXR1cm4gZSYmZSE9PWAwJWB9ZnVuY3Rpb24gdUQoZSx0LG4pe3JldHVybiBuK3QqKGUtbil9ZnVuY3Rpb24gZEQoZSx0LG4scixpKXtyZXR1cm4gaSE9PXZvaWQgMCYmKGU9dUQoZSxpLHIpKSx1RChlLG4scikrdH1mdW5jdGlvbiBmRChlLHQ9MCxuPTEscixpKXtlLm1pbj1kRChlLm1pbix0LG4scixpKSxlLm1heD1kRChlLm1heCx0LG4scixpKX1mdW5jdGlvbiBwRChlLHt4OnQseTpufSl7ZkQoZS54LHQudHJhbnNsYXRlLHQuc2NhbGUsdC5vcmlnaW5Qb2ludCksZkQoZS55LG4udHJhbnNsYXRlLG4uc2NhbGUsbi5vcmlnaW5Qb2ludCl9ZnVuY3Rpb24gX19lKGUsdCxuLHI9ITEpe2xldCBpPW4ubGVuZ3RoO2lmKCFpKXJldHVybjt0Lng9dC55PTE7bGV0IGEsbztmb3IobGV0IHM9MDtzPGk7cysrKXthPW5bc10sbz1hLnByb2plY3Rpb25EZWx0YTtsZXQgaT1hLmluc3RhbmNlO2kmJmkuc3R5bGUmJmkuc3R5bGUuZGlzcGxheT09PWBjb250ZW50c2B8fChyJiZhLm9wdGlvbnMubGF5b3V0U2Nyb2xsJiZhLnNjcm9sbCYmYSE9PWEucm9vdCYmX0QoZSx7eDotYS5zY3JvbGwub2Zmc2V0LngseTotYS5zY3JvbGwub2Zmc2V0Lnl9KSxvJiYodC54Kj1vLnguc2NhbGUsdC55Kj1vLnkuc2NhbGUscEQoZSxvKSksciYmc0QoYS5sYXRlc3RWYWx1ZXMpJiZfRChlLGEubGF0ZXN0VmFsdWVzKSl9dC54PW1EKHQueCksdC55PW1EKHQueSl9ZnVuY3Rpb24gbUQoZSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoZSl8fGU+MS4wMDAwMDAwMDAwMDAxfHxlPC45OTk5OTk5OTk5OTk/ZToxfWZ1bmN0aW9uIGhEKGUsdCl7ZS5taW4rPXQsZS5tYXgrPXR9ZnVuY3Rpb24gZ0QoZSx0LFtuLHIsaV0pe2xldCBhPXRbaV09PT12b2lkIDA/LjU6dFtpXSxvPVpUKGUubWluLGUubWF4LGEpO2ZEKGUsdFtuXSx0W3JdLG8sdC5zY2FsZSl9dmFyIHZfZT1bYHhgLGBzY2FsZVhgLGBvcmlnaW5YYF0seV9lPVtgeWAsYHNjYWxlWWAsYG9yaWdpbllgXTtmdW5jdGlvbiBfRChlLHQpe2dEKGUueCx0LHZfZSksZ0QoZS55LHQseV9lKX1mdW5jdGlvbiB2RChlLHQpe3JldHVybiBpRChnX2UoZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0KSl9ZnVuY3Rpb24gYl9lKGUsdCxuKXtsZXQgcj12RChlLG4pLHtzY3JvbGw6aX09dDtyZXR1cm4gaSYmKGhEKHIueCxpLm9mZnNldC54KSxoRChyLnksaS5vZmZzZXQueSkpLHJ9dmFyIHhfZT0vdmFyXCgoLS1bYS16QS1aMC05LV9dKyksPyA/KFthLXpBLVowLTkgKCklIy4sLV0rKT9cKS87ZnVuY3Rpb24gU19lKGUpe2xldCB0PXhfZS5leGVjKGUpO2lmKCF0KXJldHVyblssXTtsZXRbLG4scl09dDtyZXR1cm5bbixyXX12YXIgQ19lPTQ7ZnVuY3Rpb24geUQoZSx0LG49MSl7Q1Qobjw9Q19lLGBNYXggQ1NTIHZhcmlhYmxlIGZhbGxiYWNrIGRlcHRoIGRldGVjdGVkIGluIHByb3BlcnR5ICIke2V9Ii4gVGhpcyBtYXkgaW5kaWNhdGUgYSBjaXJjdWxhciBmYWxsYmFjayBkZXBlbmRlbmN5LmApO2xldFtyLGldPVNfZShlKTtpZighcilyZXR1cm47bGV0IGE9d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZ2V0UHJvcGVydHlWYWx1ZShyKTtpZihhKXtsZXQgZT1hLnRyaW0oKTtyZXR1cm4gekUoZSk/cGFyc2VGbG9hdChlKTplfWVsc2UgaWYobHcoaSkpcmV0dXJuIHlEKGksdCxuKzEpO2Vsc2UgcmV0dXJuIGl9ZnVuY3Rpb24gd19lKGUsey4uLnR9LG4pe2xldCByPWUuY3VycmVudDtpZighKHIgaW5zdGFuY2VvZiBFbGVtZW50KSlyZXR1cm57dGFyZ2V0OnQsdHJhbnNpdGlvbkVuZDpufTtuJiYobj17Li4ubn0pLGUudmFsdWVzLmZvckVhY2goZT0+e2xldCB0PWUuZ2V0KCk7aWYoIWx3KHQpKXJldHVybjtsZXQgbj15RCh0LHIpO24mJmUuc2V0KG4pfSk7Zm9yKGxldCBlIGluIHQpe2xldCBpPXRbZV07aWYoIWx3KGkpKWNvbnRpbnVlO2xldCBhPXlEKGkscik7YSYmKHRbZV09YSxufHwobj17fSksbltlXT09PXZvaWQgMCYmKG5bZV09aSkpfXJldHVybnt0YXJnZXQ6dCx0cmFuc2l0aW9uRW5kOm59fXZhciBUX2U9bmV3IFNldChbYHdpZHRoYCxgaGVpZ2h0YCxgdG9wYCxgbGVmdGAsYHJpZ2h0YCxgYm90dG9tYCxgeGAsYHlgLGB0cmFuc2xhdGVYYCxgdHJhbnNsYXRlWWBdKSxiRD1lPT5UX2UuaGFzKGUpLEVfZT1lPT5PYmplY3Qua2V5cyhlKS5zb21lKGJEKSx4RD1lPT5lPT09ZHd8fGU9PT14dyxTRD0oZSx0KT0+cGFyc2VGbG9hdChlLnNwbGl0KGAsIGApW3RdKSxDRD0oZSx0KT0+KG4se3RyYW5zZm9ybTpyfSk9PntpZihyPT09YG5vbmVgfHwhcilyZXR1cm4gMDtsZXQgaT1yLm1hdGNoKC9ebWF0cml4M2RcKCguKylcKSQvKTtpZihpKXJldHVybiBTRChpWzFdLHQpO3tsZXQgdD1yLm1hdGNoKC9ebWF0cml4XCgoLispXCkkLyk7cmV0dXJuIHQ/U0QodFsxXSxlKTowfX0sd0Q9bmV3IFNldChbYHhgLGB5YCxgemBdKSxURD1ydy5maWx0ZXIoZT0+IXdELmhhcyhlKSk7ZnVuY3Rpb24gRUQoZSl7bGV0IHQ9W107cmV0dXJuIFRELmZvckVhY2gobj0+e2xldCByPWUuZ2V0VmFsdWUobik7ciE9PXZvaWQgMCYmKHQucHVzaChbbixyLmdldCgpXSksci5zZXQoKyEhbi5zdGFydHNXaXRoKGBzY2FsZWApKSl9KSx0Lmxlbmd0aCYmZS5yZW5kZXIoKSx0fXZhciBERD17d2lkdGg6KHt4OmV9LHtwYWRkaW5nTGVmdDp0PWAwYCxwYWRkaW5nUmlnaHQ6bj1gMGB9KT0+ZS5tYXgtZS5taW4tcGFyc2VGbG9hdCh0KS1wYXJzZUZsb2F0KG4pLGhlaWdodDooe3k6ZX0se3BhZGRpbmdUb3A6dD1gMGAscGFkZGluZ0JvdHRvbTpuPWAwYH0pPT5lLm1heC1lLm1pbi1wYXJzZUZsb2F0KHQpLXBhcnNlRmxvYXQobiksdG9wOihlLHt0b3A6dH0pPT5wYXJzZUZsb2F0KHQpLGxlZnQ6KGUse2xlZnQ6dH0pPT5wYXJzZUZsb2F0KHQpLGJvdHRvbTooe3k6ZX0se3RvcDp0fSk9PnBhcnNlRmxvYXQodCkrKGUubWF4LWUubWluKSxyaWdodDooe3g6ZX0se2xlZnQ6dH0pPT5wYXJzZUZsb2F0KHQpKyhlLm1heC1lLm1pbikseDpDRCg0LDEzKSx5OkNEKDUsMTQpfTtERC50cmFuc2xhdGVYPURELngsREQudHJhbnNsYXRlWT1ERC55O3ZhciBEX2U9KGUsdCxuKT0+e2xldCByPXQubWVhc3VyZVZpZXdwb3J0Qm94KCksaT10LmN1cnJlbnQsYT1nZXRDb21wdXRlZFN0eWxlKGkpLHtkaXNwbGF5Om99PWEscz17fTtvPT09YG5vbmVgJiZ0LnNldFN0YXRpY1ZhbHVlKGBkaXNwbGF5YCxlLmRpc3BsYXl8fGBibG9ja2ApLG4uZm9yRWFjaChlPT57c1tlXT1ERFtlXShyLGEpfSksdC5yZW5kZXIoKTtsZXQgYz10Lm1lYXN1cmVWaWV3cG9ydEJveCgpO3JldHVybiBuLmZvckVhY2gobj0+e2xldCByPXQuZ2V0VmFsdWUobik7ciYmci5qdW1wKHNbbl0pLGVbbl09RERbbl0oYyxhKX0pLGV9LE9fZT0oZSx0LG49e30scj17fSk9Pnt0PXsuLi50fSxyPXsuLi5yfTtsZXQgaT1PYmplY3Qua2V5cyh0KS5maWx0ZXIoYkQpLGE9W10sbz0hMSxzPVtdO2lmKGkuZm9yRWFjaChpPT57bGV0IGM9ZS5nZXRWYWx1ZShpKTtpZighZS5oYXNWYWx1ZShpKSlyZXR1cm47bGV0IGw9bltpXSx1PXFFKGwpLGQ9dFtpXSxmO2lmKFd3KGQpKXtsZXQgZT1kLmxlbmd0aCx0PSsoZFswXT09PW51bGwpO2w9ZFt0XSx1PXFFKGwpO2ZvcihsZXQgbj10O248ZSYmZFtuXSE9PW51bGw7bisrKWY/Q1QocUUoZFtuXSk9PT1mLGBBbGwga2V5ZnJhbWVzIG11c3QgYmUgb2YgdGhlIHNhbWUgdHlwZWApOihmPXFFKGRbbl0pLENUKGY9PT11fHx4RCh1KSYmeEQoZiksYEtleWZyYW1lcyBtdXN0IGJlIG9mIHRoZSBzYW1lIGRpbWVuc2lvbiBhcyB0aGUgY3VycmVudCB2YWx1ZWApKX1lbHNlIGY9cUUoZCk7aWYodSE9PWYpaWYoeEQodSkmJnhEKGYpKXtsZXQgZT1jLmdldCgpO3R5cGVvZiBlPT1gc3RyaW5nYCYmYy5zZXQocGFyc2VGbG9hdChlKSksdHlwZW9mIGQ9PWBzdHJpbmdgP3RbaV09cGFyc2VGbG9hdChkKTpBcnJheS5pc0FycmF5KGQpJiZmPT09eHcmJih0W2ldPWQubWFwKHBhcnNlRmxvYXQpKX1lbHNlIHUhPW51bGwmJnUudHJhbnNmb3JtJiZmIT1udWxsJiZmLnRyYW5zZm9ybSYmKGw9PT0wfHxkPT09MCk/bD09PTA/Yy5zZXQoZi50cmFuc2Zvcm0obCkpOnRbaV09dS50cmFuc2Zvcm0oZCk6KG98fChhPUVEKGUpLG89ITApLHMucHVzaChpKSxyW2ldPXJbaV09PT12b2lkIDA/dFtpXTpyW2ldLGMuanVtcChkKSl9KSxzLmxlbmd0aCl7bGV0IG49cy5pbmRleE9mKGBoZWlnaHRgKT49MD93aW5kb3cucGFnZVlPZmZzZXQ6bnVsbCxpPURfZSh0LGUscyk7cmV0dXJuIGEubGVuZ3RoJiZhLmZvckVhY2goKFt0LG5dKT0+e2UuZ2V0VmFsdWUodCkuc2V0KG4pfSksZS5yZW5kZXIoKSxJQyYmbiE9PW51bGwmJndpbmRvdy5zY3JvbGxUbyh7dG9wOm59KSx7dGFyZ2V0OmksdHJhbnNpdGlvbkVuZDpyfX1lbHNlIHJldHVybnt0YXJnZXQ6dCx0cmFuc2l0aW9uRW5kOnJ9fTtmdW5jdGlvbiBrX2UoZSx0LG4scil7cmV0dXJuIEVfZSh0KT9PX2UoZSx0LG4scik6e3RhcmdldDp0LHRyYW5zaXRpb25FbmQ6cn19dmFyIEFfZT0oZSx0LG4scik9PntsZXQgaT13X2UoZSx0LHIpO3JldHVybiB0PWkudGFyZ2V0LHI9aS50cmFuc2l0aW9uRW5kLGtfZShlLHQsbixyKX0sT0Q9e2N1cnJlbnQ6bnVsbH0sa0Q9e2N1cnJlbnQ6ITF9O2Z1bmN0aW9uIGpfZSgpe2lmKGtELmN1cnJlbnQ9ITAsSUMpaWYod2luZG93Lm1hdGNoTWVkaWEpe2xldCBlPXdpbmRvdy5tYXRjaE1lZGlhKGAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbilgKSx0PSgpPT5PRC5jdXJyZW50PWUubWF0Y2hlcztlLmFkZExpc3RlbmVyKHQpLHQoKX1lbHNlIE9ELmN1cnJlbnQ9ITF9ZnVuY3Rpb24gTV9lKGUsdCxuKXtsZXR7d2lsbENoYW5nZTpyfT10O2ZvcihsZXQgaSBpbiB0KXtsZXQgYT10W2ldLG89bltpXTtpZihvdyhhKSllLmFkZFZhbHVlKGksYSksUkUocikmJnIuYWRkKGkpO2Vsc2UgaWYob3cobykpZS5hZGRWYWx1ZShpLFdFKGEse293bmVyOmV9KSksUkUocikmJnIucmVtb3ZlKGkpO2Vsc2UgaWYobyE9PWEpaWYoZS5oYXNWYWx1ZShpKSl7bGV0IHQ9ZS5nZXRWYWx1ZShpKTshdC5oYXNBbmltYXRlZCYmdC5zZXQoYSl9ZWxzZXtsZXQgdD1lLmdldFN0YXRpY1ZhbHVlKGkpO2UuYWRkVmFsdWUoaSxXRSh0PT09dm9pZCAwP2E6dCx7b3duZXI6ZX0pKX19Zm9yKGxldCByIGluIG4pdFtyXT09PXZvaWQgMCYmZS5yZW1vdmVWYWx1ZShyKTtyZXR1cm4gdH12YXIgQUQ9bmV3IFdlYWtNYXAsakQ9T2JqZWN0LmtleXMoWEMpLE5fZT1qRC5sZW5ndGgsTUQ9W2BBbmltYXRpb25TdGFydGAsYEFuaW1hdGlvbkNvbXBsZXRlYCxgVXBkYXRlYCxgQmVmb3JlTGF5b3V0TWVhc3VyZWAsYExheW91dE1lYXN1cmVgLGBMYXlvdXRBbmltYXRpb25TdGFydGAsYExheW91dEFuaW1hdGlvbkNvbXBsZXRlYF0sUF9lPUdDLmxlbmd0aCxGX2U9Y2xhc3N7Y29uc3RydWN0b3Ioe3BhcmVudDplLHByb3BzOnQscHJlc2VuY2VDb250ZXh0Om4scmVkdWNlZE1vdGlvbkNvbmZpZzpyLHZpc3VhbFN0YXRlOml9LGE9e30pe3RoaXMuY3VycmVudD1udWxsLHRoaXMuY2hpbGRyZW49bmV3IFNldCx0aGlzLmlzVmFyaWFudE5vZGU9ITEsdGhpcy5pc0NvbnRyb2xsaW5nVmFyaWFudHM9ITEsdGhpcy5zaG91bGRSZWR1Y2VNb3Rpb249bnVsbCx0aGlzLnZhbHVlcz1uZXcgTWFwLHRoaXMuZmVhdHVyZXM9e30sdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnM9bmV3IE1hcCx0aGlzLnByZXZNb3Rpb25WYWx1ZXM9e30sdGhpcy5ldmVudHM9e30sdGhpcy5wcm9wRXZlbnRTdWJzY3JpcHRpb25zPXt9LHRoaXMubm90aWZ5VXBkYXRlPSgpPT50aGlzLm5vdGlmeShgVXBkYXRlYCx0aGlzLmxhdGVzdFZhbHVlcyksdGhpcy5yZW5kZXI9KCk9Pnt0aGlzLmN1cnJlbnQmJih0aGlzLnRyaWdnZXJCdWlsZCgpLHRoaXMucmVuZGVySW5zdGFuY2UodGhpcy5jdXJyZW50LHRoaXMucmVuZGVyU3RhdGUsdGhpcy5wcm9wcy5zdHlsZSx0aGlzLnByb2plY3Rpb24pKX0sdGhpcy5zY2hlZHVsZVJlbmRlcj0oKT0+WHcucmVuZGVyKHRoaXMucmVuZGVyLCExLCEwKTtsZXR7bGF0ZXN0VmFsdWVzOm8scmVuZGVyU3RhdGU6c309aTt0aGlzLmxhdGVzdFZhbHVlcz1vLHRoaXMuYmFzZVRhcmdldD17Li4ub30sdGhpcy5pbml0aWFsVmFsdWVzPXQuaW5pdGlhbD97Li4ub306e30sdGhpcy5yZW5kZXJTdGF0ZT1zLHRoaXMucGFyZW50PWUsdGhpcy5wcm9wcz10LHRoaXMucHJlc2VuY2VDb250ZXh0PW4sdGhpcy5kZXB0aD1lP2UuZGVwdGgrMTowLHRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZz1yLHRoaXMub3B0aW9ucz1hLHRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzPUtDKHQpLHRoaXMuaXNWYXJpYW50Tm9kZT1xQyh0KSx0aGlzLmlzVmFyaWFudE5vZGUmJih0aGlzLnZhcmlhbnRDaGlsZHJlbj1uZXcgU2V0KSx0aGlzLm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQ9ISEoZSYmZS5jdXJyZW50KTtsZXR7d2lsbENoYW5nZTpjLC4uLmx9PXRoaXMuc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHQse30pO2ZvcihsZXQgZSBpbiBsKXtsZXQgdD1sW2VdO29bZV0hPT12b2lkIDAmJm93KHQpJiYodC5zZXQob1tlXSwhMSksUkUoYykmJmMuYWRkKGUpKX19c2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKGUsdCl7cmV0dXJue319bW91bnQoZSl7dGhpcy5jdXJyZW50PWUsQUQuc2V0KGUsdGhpcyksdGhpcy5wcm9qZWN0aW9uJiYhdGhpcy5wcm9qZWN0aW9uLmluc3RhbmNlJiZ0aGlzLnByb2plY3Rpb24ubW91bnQoZSksdGhpcy5wYXJlbnQmJnRoaXMuaXNWYXJpYW50Tm9kZSYmIXRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzJiYodGhpcy5yZW1vdmVGcm9tVmFyaWFudFRyZWU9dGhpcy5wYXJlbnQuYWRkVmFyaWFudENoaWxkKHRoaXMpKSx0aGlzLnZhbHVlcy5mb3JFYWNoKChlLHQpPT50aGlzLmJpbmRUb01vdGlvblZhbHVlKHQsZSkpLGtELmN1cnJlbnR8fGpfZSgpLHRoaXMuc2hvdWxkUmVkdWNlTW90aW9uPXRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZz09PWBuZXZlcmA/ITE6dGhpcy5yZWR1Y2VkTW90aW9uQ29uZmlnPT09YGFsd2F5c2A/ITA6T0QuY3VycmVudCx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuY2hpbGRyZW4uYWRkKHRoaXMpLHRoaXMudXBkYXRlKHRoaXMucHJvcHMsdGhpcy5wcmVzZW5jZUNvbnRleHQpfXVubW91bnQoKXtBRC5kZWxldGUodGhpcy5jdXJyZW50KSx0aGlzLnByb2plY3Rpb24mJnRoaXMucHJvamVjdGlvbi51bm1vdW50KCksWncodGhpcy5ub3RpZnlVcGRhdGUpLFp3KHRoaXMucmVuZGVyKSx0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5mb3JFYWNoKGU9PmUoKSksdGhpcy5yZW1vdmVGcm9tVmFyaWFudFRyZWUmJnRoaXMucmVtb3ZlRnJvbVZhcmlhbnRUcmVlKCksdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmNoaWxkcmVuLmRlbGV0ZSh0aGlzKTtmb3IobGV0IGUgaW4gdGhpcy5ldmVudHMpdGhpcy5ldmVudHNbZV0uY2xlYXIoKTtmb3IobGV0IGUgaW4gdGhpcy5mZWF0dXJlcyl0aGlzLmZlYXR1cmVzW2VdLnVubW91bnQoKTt0aGlzLmN1cnJlbnQ9bnVsbH1iaW5kVG9Nb3Rpb25WYWx1ZShlLHQpe2xldCBuPWl3LmhhcyhlKSxyPXQub24oYGNoYW5nZWAsdD0+e3RoaXMubGF0ZXN0VmFsdWVzW2VdPXQsdGhpcy5wcm9wcy5vblVwZGF0ZSYmWHcudXBkYXRlKHRoaXMubm90aWZ5VXBkYXRlLCExLCEwKSxuJiZ0aGlzLnByb2plY3Rpb24mJih0aGlzLnByb2plY3Rpb24uaXNUcmFuc2Zvcm1EaXJ0eT0hMCl9KSxpPXQub24oYHJlbmRlclJlcXVlc3RgLHRoaXMuc2NoZWR1bGVSZW5kZXIpO3RoaXMudmFsdWVTdWJzY3JpcHRpb25zLnNldChlLCgpPT57cigpLGkoKX0pfXNvcnROb2RlUG9zaXRpb24oZSl7cmV0dXJuIXRoaXMuY3VycmVudHx8IXRoaXMuc29ydEluc3RhbmNlTm9kZVBvc2l0aW9ufHx0aGlzLnR5cGUhPT1lLnR5cGU/MDp0aGlzLnNvcnRJbnN0YW5jZU5vZGVQb3NpdGlvbih0aGlzLmN1cnJlbnQsZS5jdXJyZW50KX1sb2FkRmVhdHVyZXMoe2NoaWxkcmVuOmUsLi4udH0sbixyLGkpe2xldCBhLG87Zm9yKGxldCBlPTA7ZTxOX2U7ZSsrKXtsZXQgbj1qRFtlXSx7aXNFbmFibGVkOnIsRmVhdHVyZTppLFByb2plY3Rpb25Ob2RlOnMsTWVhc3VyZUxheW91dDpjfT1YQ1tuXTtzJiYoYT1zKSxyKHQpJiYoIXRoaXMuZmVhdHVyZXNbbl0mJmkmJih0aGlzLmZlYXR1cmVzW25dPW5ldyBpKHRoaXMpKSxjJiYobz1jKSl9aWYoKHRoaXMudHlwZT09PWBodG1sYHx8dGhpcy50eXBlPT09YHN2Z2ApJiYhdGhpcy5wcm9qZWN0aW9uJiZhKXt0aGlzLnByb2plY3Rpb249bmV3IGEodGhpcy5sYXRlc3RWYWx1ZXMsdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LnByb2plY3Rpb24pO2xldHtsYXlvdXRJZDplLGxheW91dDpuLGRyYWc6cixkcmFnQ29uc3RyYWludHM6byxsYXlvdXRTY3JvbGw6cyxsYXlvdXRSb290OmN9PXQ7dGhpcy5wcm9qZWN0aW9uLnNldE9wdGlvbnMoe2xheW91dElkOmUsbGF5b3V0Om4sYWx3YXlzTWVhc3VyZUxheW91dDohIXJ8fG8mJlZDKG8pLHZpc3VhbEVsZW1lbnQ6dGhpcyxzY2hlZHVsZVJlbmRlcjooKT0+dGhpcy5zY2hlZHVsZVJlbmRlcigpLGFuaW1hdGlvblR5cGU6dHlwZW9mIG49PWBzdHJpbmdgP246YGJvdGhgLGluaXRpYWxQcm9tb3Rpb25Db25maWc6aSxsYXlvdXRTY3JvbGw6cyxsYXlvdXRSb290OmN9KX1yZXR1cm4gb311cGRhdGVGZWF0dXJlcygpe2ZvcihsZXQgZSBpbiB0aGlzLmZlYXR1cmVzKXtsZXQgdD10aGlzLmZlYXR1cmVzW2VdO3QuaXNNb3VudGVkP3QudXBkYXRlKCk6KHQubW91bnQoKSx0LmlzTW91bnRlZD0hMCl9fXRyaWdnZXJCdWlsZCgpe3RoaXMuYnVpbGQodGhpcy5yZW5kZXJTdGF0ZSx0aGlzLmxhdGVzdFZhbHVlcyx0aGlzLm9wdGlvbnMsdGhpcy5wcm9wcyl9bWVhc3VyZVZpZXdwb3J0Qm94KCl7cmV0dXJuIHRoaXMuY3VycmVudD90aGlzLm1lYXN1cmVJbnN0YW5jZVZpZXdwb3J0Qm94KHRoaXMuY3VycmVudCx0aGlzLnByb3BzKTpyRCgpfWdldFN0YXRpY1ZhbHVlKGUpe3JldHVybiB0aGlzLmxhdGVzdFZhbHVlc1tlXX1zZXRTdGF0aWNWYWx1ZShlLHQpe3RoaXMubGF0ZXN0VmFsdWVzW2VdPXR9bWFrZVRhcmdldEFuaW1hdGFibGUoZSx0PSEwKXtyZXR1cm4gdGhpcy5tYWtlVGFyZ2V0QW5pbWF0YWJsZUZyb21JbnN0YW5jZShlLHRoaXMucHJvcHMsdCl9dXBkYXRlKGUsdCl7KGUudHJhbnNmb3JtVGVtcGxhdGV8fHRoaXMucHJvcHMudHJhbnNmb3JtVGVtcGxhdGUpJiZ0aGlzLnNjaGVkdWxlUmVuZGVyKCksdGhpcy5wcmV2UHJvcHM9dGhpcy5wcm9wcyx0aGlzLnByb3BzPWUsdGhpcy5wcmV2UHJlc2VuY2VDb250ZXh0PXRoaXMucHJlc2VuY2VDb250ZXh0LHRoaXMucHJlc2VuY2VDb250ZXh0PXQ7Zm9yKGxldCB0PTA7dDxNRC5sZW5ndGg7dCsrKXtsZXQgbj1NRFt0XTt0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNbbl0mJih0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNbbl0oKSxkZWxldGUgdGhpcy5wcm9wRXZlbnRTdWJzY3JpcHRpb25zW25dKTtsZXQgcj1lW2BvbmArbl07ciYmKHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9uc1tuXT10aGlzLm9uKG4scikpfXRoaXMucHJldk1vdGlvblZhbHVlcz1NX2UodGhpcyx0aGlzLnNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhlLHRoaXMucHJldlByb3BzKSx0aGlzLnByZXZNb3Rpb25WYWx1ZXMpLHRoaXMuaGFuZGxlQ2hpbGRNb3Rpb25WYWx1ZSYmdGhpcy5oYW5kbGVDaGlsZE1vdGlvblZhbHVlKCl9Z2V0UHJvcHMoKXtyZXR1cm4gdGhpcy5wcm9wc31nZXRWYXJpYW50KGUpe3JldHVybiB0aGlzLnByb3BzLnZhcmlhbnRzP3RoaXMucHJvcHMudmFyaWFudHNbZV06dm9pZCAwfWdldERlZmF1bHRUcmFuc2l0aW9uKCl7cmV0dXJuIHRoaXMucHJvcHMudHJhbnNpdGlvbn1nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKXtyZXR1cm4gdGhpcy5wcm9wcy50cmFuc2Zvcm1QYWdlUG9pbnR9Z2V0Q2xvc2VzdFZhcmlhbnROb2RlKCl7cmV0dXJuIHRoaXMuaXNWYXJpYW50Tm9kZT90aGlzOnRoaXMucGFyZW50P3RoaXMucGFyZW50LmdldENsb3Nlc3RWYXJpYW50Tm9kZSgpOnZvaWQgMH1nZXRWYXJpYW50Q29udGV4dChlPSExKXtpZihlKXJldHVybiB0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXRWYXJpYW50Q29udGV4dCgpOnZvaWQgMDtpZighdGhpcy5pc0NvbnRyb2xsaW5nVmFyaWFudHMpe2xldCBlPXRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5nZXRWYXJpYW50Q29udGV4dCgpfHx7fTtyZXR1cm4gdGhpcy5wcm9wcy5pbml0aWFsIT09dm9pZCAwJiYoZS5pbml0aWFsPXRoaXMucHJvcHMuaW5pdGlhbCksZX1sZXQgdD17fTtmb3IobGV0IGU9MDtlPFBfZTtlKyspe2xldCBuPUdDW2VdLHI9dGhpcy5wcm9wc1tuXTsoSEMocil8fHI9PT0hMSkmJih0W25dPXIpfXJldHVybiB0fWFkZFZhcmlhbnRDaGlsZChlKXtsZXQgdD10aGlzLmdldENsb3Nlc3RWYXJpYW50Tm9kZSgpO2lmKHQpcmV0dXJuIHQudmFyaWFudENoaWxkcmVuJiZ0LnZhcmlhbnRDaGlsZHJlbi5hZGQoZSksKCk9PnQudmFyaWFudENoaWxkcmVuLmRlbGV0ZShlKX1hZGRWYWx1ZShlLHQpe3QhPT10aGlzLnZhbHVlcy5nZXQoZSkmJih0aGlzLnJlbW92ZVZhbHVlKGUpLHRoaXMuYmluZFRvTW90aW9uVmFsdWUoZSx0KSksdGhpcy52YWx1ZXMuc2V0KGUsdCksdGhpcy5sYXRlc3RWYWx1ZXNbZV09dC5nZXQoKX1yZW1vdmVWYWx1ZShlKXt0aGlzLnZhbHVlcy5kZWxldGUoZSk7bGV0IHQ9dGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuZ2V0KGUpO3QmJih0KCksdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuZGVsZXRlKGUpKSxkZWxldGUgdGhpcy5sYXRlc3RWYWx1ZXNbZV0sdGhpcy5yZW1vdmVWYWx1ZUZyb21SZW5kZXJTdGF0ZShlLHRoaXMucmVuZGVyU3RhdGUpfWhhc1ZhbHVlKGUpe3JldHVybiB0aGlzLnZhbHVlcy5oYXMoZSl9Z2V0VmFsdWUoZSx0KXtpZih0aGlzLnByb3BzLnZhbHVlcyYmdGhpcy5wcm9wcy52YWx1ZXNbZV0pcmV0dXJuIHRoaXMucHJvcHMudmFsdWVzW2VdO2xldCBuPXRoaXMudmFsdWVzLmdldChlKTtyZXR1cm4gbj09PXZvaWQgMCYmdCE9PXZvaWQgMCYmKG49V0UodCx7b3duZXI6dGhpc30pLHRoaXMuYWRkVmFsdWUoZSxuKSksbn1yZWFkVmFsdWUoZSl7cmV0dXJuIHRoaXMubGF0ZXN0VmFsdWVzW2VdIT09dm9pZCAwfHwhdGhpcy5jdXJyZW50P3RoaXMubGF0ZXN0VmFsdWVzW2VdOnRoaXMuZ2V0QmFzZVRhcmdldEZyb21Qcm9wcyh0aGlzLnByb3BzLGUpPz90aGlzLnJlYWRWYWx1ZUZyb21JbnN0YW5jZSh0aGlzLmN1cnJlbnQsZSx0aGlzLm9wdGlvbnMpfXNldEJhc2VUYXJnZXQoZSx0KXt0aGlzLmJhc2VUYXJnZXRbZV09dH1nZXRCYXNlVGFyZ2V0KGUpe3ZhciB0O2xldHtpbml0aWFsOm59PXRoaXMucHJvcHMscj10eXBlb2Ygbj09YHN0cmluZ2B8fHR5cGVvZiBuPT1gb2JqZWN0YD8odD1Idyh0aGlzLnByb3BzLG4pKT09bnVsbD92b2lkIDA6dFtlXTp2b2lkIDA7aWYobiYmciE9PXZvaWQgMClyZXR1cm4gcjtsZXQgaT10aGlzLmdldEJhc2VUYXJnZXRGcm9tUHJvcHModGhpcy5wcm9wcyxlKTtyZXR1cm4gaSE9PXZvaWQgMCYmIW93KGkpP2k6dGhpcy5pbml0aWFsVmFsdWVzW2VdIT09dm9pZCAwJiZyPT09dm9pZCAwP3ZvaWQgMDp0aGlzLmJhc2VUYXJnZXRbZV19b24oZSx0KXtyZXR1cm4gdGhpcy5ldmVudHNbZV18fCh0aGlzLmV2ZW50c1tlXT1uZXcgSEUpLHRoaXMuZXZlbnRzW2VdLmFkZCh0KX1ub3RpZnkoZSwuLi50KXt0aGlzLmV2ZW50c1tlXSYmdGhpcy5ldmVudHNbZV0ubm90aWZ5KC4uLnQpfX0sTkQ9Y2xhc3MgZXh0ZW5kcyBGX2V7c29ydEluc3RhbmNlTm9kZVBvc2l0aW9uKGUsdCl7cmV0dXJuIGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCkmMj8xOi0xfWdldEJhc2VUYXJnZXRGcm9tUHJvcHMoZSx0KXtyZXR1cm4gZS5zdHlsZT9lLnN0eWxlW3RdOnZvaWQgMH1yZW1vdmVWYWx1ZUZyb21SZW5kZXJTdGF0ZShlLHt2YXJzOnQsc3R5bGU6bn0pe2RlbGV0ZSB0W2VdLGRlbGV0ZSBuW2VdfW1ha2VUYXJnZXRBbmltYXRhYmxlRnJvbUluc3RhbmNlKHt0cmFuc2l0aW9uOmUsdHJhbnNpdGlvbkVuZDp0LC4uLm59LHt0cmFuc2Zvcm1WYWx1ZXM6cn0saSl7bGV0IGE9dF9lKG4sZXx8e30sdGhpcyk7aWYociYmKHQmJih0PXIodCkpLG4mJihuPXIobikpLGEmJihhPXIoYSkpKSxpKXskZ2UodGhpcyxuLGEpO2xldCBlPUFfZSh0aGlzLG4sYSx0KTt0PWUudHJhbnNpdGlvbkVuZCxuPWUudGFyZ2V0fXJldHVybnt0cmFuc2l0aW9uOmUsdHJhbnNpdGlvbkVuZDp0LC4uLm59fX07ZnVuY3Rpb24gSV9lKGUpe3JldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKX12YXIgUEQ9Y2xhc3MgZXh0ZW5kcyBORHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPWBodG1sYH1yZWFkVmFsdWVGcm9tSW5zdGFuY2UoZSx0KXtpZihpdy5oYXModCkpe2xldCBlPU5FKHQpO3JldHVybiBlJiZlLmRlZmF1bHR8fDB9ZWxzZXtsZXQgbj1JX2UoZSkscj0oY3codCk/bi5nZXRQcm9wZXJ0eVZhbHVlKHQpOm5bdF0pfHwwO3JldHVybiB0eXBlb2Ygcj09YHN0cmluZ2A/ci50cmltKCk6cn19bWVhc3VyZUluc3RhbmNlVmlld3BvcnRCb3goZSx7dHJhbnNmb3JtUGFnZVBvaW50OnR9KXtyZXR1cm4gdkQoZSx0KX1idWlsZChlLHQsbixyKXtUdyhlLHQsbixyLnRyYW5zZm9ybVRlbXBsYXRlKX1zY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMoZSx0KXtyZXR1cm4gQncoZSx0KX1oYW5kbGVDaGlsZE1vdGlvblZhbHVlKCl7dGhpcy5jaGlsZFN1YnNjcmlwdGlvbiYmKHRoaXMuY2hpbGRTdWJzY3JpcHRpb24oKSxkZWxldGUgdGhpcy5jaGlsZFN1YnNjcmlwdGlvbik7bGV0e2NoaWxkcmVuOmV9PXRoaXMucHJvcHM7b3coZSkmJih0aGlzLmNoaWxkU3Vic2NyaXB0aW9uPWUub24oYGNoYW5nZWAsZT0+e3RoaXMuY3VycmVudCYmKHRoaXMuY3VycmVudC50ZXh0Q29udGVudD1gJHtlfWApfSkpfXJlbmRlckluc3RhbmNlKGUsdCxuLHIpe0x3KGUsdCxuLHIpfX0sRkQ9Y2xhc3MgZXh0ZW5kcyBORHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPWBzdmdgLHRoaXMuaXNTVkdUYWc9ITF9Z2V0QmFzZVRhcmdldEZyb21Qcm9wcyhlLHQpe3JldHVybiBlW3RdfXJlYWRWYWx1ZUZyb21JbnN0YW5jZShlLHQpe2lmKGl3Lmhhcyh0KSl7bGV0IGU9TkUodCk7cmV0dXJuIGUmJmUuZGVmYXVsdHx8MH1yZXR1cm4gdD1Sdy5oYXModCk/dDp6Qyh0KSxlLmdldEF0dHJpYnV0ZSh0KX1tZWFzdXJlSW5zdGFuY2VWaWV3cG9ydEJveCgpe3JldHVybiByRCgpfXNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhlLHQpe3JldHVybiBWdyhlLHQpfWJ1aWxkKGUsdCxuLHIpe1B3KGUsdCxuLHRoaXMuaXNTVkdUYWcsci50cmFuc2Zvcm1UZW1wbGF0ZSl9cmVuZGVySW5zdGFuY2UoZSx0LG4scil7encoZSx0LG4scil9bW91bnQoZSl7dGhpcy5pc1NWR1RhZz1JdyhlLnRhZ05hbWUpLHN1cGVyLm1vdW50KGUpfX0sSUQ9KGUsdCk9PnR3KGUpP25ldyBGRCh0LHtlbmFibGVIYXJkd2FyZUFjY2VsZXJhdGlvbjohMX0pOm5ldyBQRCh0LHtlbmFibGVIYXJkd2FyZUFjY2VsZXJhdGlvbjohMH0pLExEPWV3KG5UKTtmdW5jdGlvbiBSRCgpe2xldCBlPSgwLEcudXNlUmVmKSghMSk7cmV0dXJuIExDKCgpPT4oZS5jdXJyZW50PSEwLCgpPT57ZS5jdXJyZW50PSExfSksW10pLGV9ZnVuY3Rpb24gTF9lKCl7bGV0IGU9UkQoKSxbdCxuXT0oMCxHLnVzZVN0YXRlKSgwKSxyPSgwLEcudXNlQ2FsbGJhY2spKCgpPT57ZS5jdXJyZW50JiZuKHQrMSl9LFt0XSk7cmV0dXJuWygwLEcudXNlQ2FsbGJhY2spKCgpPT5Ydy5wb3N0UmVuZGVyKHIpLFtyXSksdF19dmFyIFJfZT1jbGFzcyBleHRlbmRzIEcuQ29tcG9uZW50e2dldFNuYXBzaG90QmVmb3JlVXBkYXRlKGUpe2xldCB0PXRoaXMucHJvcHMuY2hpbGRSZWYuY3VycmVudDtpZih0JiZlLmlzUHJlc2VudCYmIXRoaXMucHJvcHMuaXNQcmVzZW50KXtsZXQgZT10aGlzLnByb3BzLnNpemVSZWYuY3VycmVudDtlLmhlaWdodD10Lm9mZnNldEhlaWdodHx8MCxlLndpZHRoPXQub2Zmc2V0V2lkdGh8fDAsZS50b3A9dC5vZmZzZXRUb3AsZS5sZWZ0PXQub2Zmc2V0TGVmdH1yZXR1cm4gbnVsbH1jb21wb25lbnREaWRVcGRhdGUoKXt9cmVuZGVyKCl7cmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW59fTtmdW5jdGlvbiB6X2Uoe2NoaWxkcmVuOmUsaXNQcmVzZW50OnR9KXtsZXQgbj0oMCxHLnVzZUlkKSgpLHI9KDAsRy51c2VSZWYpKG51bGwpLGk9KDAsRy51c2VSZWYpKHt3aWR0aDowLGhlaWdodDowLHRvcDowLGxlZnQ6MH0pO3JldHVybigwLEcudXNlSW5zZXJ0aW9uRWZmZWN0KSgoKT0+e2xldHt3aWR0aDplLGhlaWdodDphLHRvcDpvLGxlZnQ6c309aS5jdXJyZW50O2lmKHR8fCFyLmN1cnJlbnR8fCFlfHwhYSlyZXR1cm47ci5jdXJyZW50LmRhdGFzZXQubW90aW9uUG9wSWQ9bjtsZXQgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBzdHlsZWApO3JldHVybiBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGMpLGMuc2hlZXQmJmMuc2hlZXQuaW5zZXJ0UnVsZShgCiAgICAgICAgICBbZGF0YS1tb3Rpb24tcG9wLWlkPSIke259Il0gewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsKICAgICAgICAgICAgd2lkdGg6ICR7ZX1weCAhaW1wb3J0YW50OwogICAgICAgICAgICBoZWlnaHQ6ICR7YX1weCAhaW1wb3J0YW50OwogICAgICAgICAgICB0b3A6ICR7b31weCAhaW1wb3J0YW50OwogICAgICAgICAgICBsZWZ0OiAke3N9cHggIWltcG9ydGFudDsKICAgICAgICAgIH0KICAgICAgICBgKSwoKT0+e2RvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQoYyl9fSxbdF0pLEcuY3JlYXRlRWxlbWVudChSX2Use2lzUHJlc2VudDp0LGNoaWxkUmVmOnIsc2l6ZVJlZjppfSxHLmNsb25lRWxlbWVudChlLHtyZWY6cn0pKX12YXIgekQ9KHtjaGlsZHJlbjplLGluaXRpYWw6dCxpc1ByZXNlbnQ6bixvbkV4aXRDb21wbGV0ZTpyLGN1c3RvbTppLHByZXNlbmNlQWZmZWN0c0xheW91dDphLG1vZGU6b30pPT57bGV0IHM9VXcoQl9lKSxjPSgwLEcudXNlSWQpKCksbD0oMCxHLnVzZU1lbW8pKCgpPT4oe2lkOmMsaW5pdGlhbDp0LGlzUHJlc2VudDpuLGN1c3RvbTppLG9uRXhpdENvbXBsZXRlOmU9PntzLnNldChlLCEwKTtmb3IobGV0IGUgb2Ygcy52YWx1ZXMoKSlpZighZSlyZXR1cm47ciYmcigpfSxyZWdpc3RlcjplPT4ocy5zZXQoZSwhMSksKCk9PnMuZGVsZXRlKGUpKX0pLGE/dm9pZCAwOltuXSk7cmV0dXJuKDAsRy51c2VNZW1vKSgoKT0+e3MuZm9yRWFjaCgoZSx0KT0+cy5zZXQodCwhMSkpfSxbbl0pLEcudXNlRWZmZWN0KCgpPT57IW4mJiFzLnNpemUmJnImJnIoKX0sW25dKSxvPT09YHBvcExheW91dGAmJihlPUcuY3JlYXRlRWxlbWVudCh6X2Use2lzUHJlc2VudDpufSxlKSksRy5jcmVhdGVFbGVtZW50KEZDLlByb3ZpZGVyLHt2YWx1ZTpsfSxlKX07ZnVuY3Rpb24gQl9lKCl7cmV0dXJuIG5ldyBNYXB9ZnVuY3Rpb24gQkQoZSl7cmV0dXJuKDAsRy51c2VFZmZlY3QpKCgpPT4oKT0+ZSgpLFtdKX12YXIgVkQ9ZT0+ZS5rZXl8fGBgO2Z1bmN0aW9uIFZfZShlLHQpe2UuZm9yRWFjaChlPT57bGV0IG49VkQoZSk7dC5zZXQobixlKX0pfWZ1bmN0aW9uIEhfZShlKXtsZXQgdD1bXTtyZXR1cm4gRy5DaGlsZHJlbi5mb3JFYWNoKGUsZT0+eygwLEcuaXNWYWxpZEVsZW1lbnQpKGUpJiZ0LnB1c2goZSl9KSx0fXZhciBIRD0oe2NoaWxkcmVuOmUsY3VzdG9tOnQsaW5pdGlhbDpuPSEwLG9uRXhpdENvbXBsZXRlOnIsZXhpdEJlZm9yZUVudGVyOmkscHJlc2VuY2VBZmZlY3RzTGF5b3V0OmE9ITAsbW9kZTpvPWBzeW5jYH0pPT57Q1QoIWksYFJlcGxhY2UgZXhpdEJlZm9yZUVudGVyIHdpdGggbW9kZT0nd2FpdCdgKTtsZXQgcz0oMCxHLnVzZUNvbnRleHQpKFFDKS5mb3JjZVJlbmRlcnx8TF9lKClbMF0sYz1SRCgpLGw9SF9lKGUpLHU9bCxkPSgwLEcudXNlUmVmKShuZXcgTWFwKS5jdXJyZW50LGY9KDAsRy51c2VSZWYpKHUpLHA9KDAsRy51c2VSZWYpKG5ldyBNYXApLmN1cnJlbnQsbT0oMCxHLnVzZVJlZikoITApO2lmKExDKCgpPT57bS5jdXJyZW50PSExLFZfZShsLHApLGYuY3VycmVudD11fSksQkQoKCk9PnttLmN1cnJlbnQ9ITAscC5jbGVhcigpLGQuY2xlYXIoKX0pLG0uY3VycmVudClyZXR1cm4gRy5jcmVhdGVFbGVtZW50KEcuRnJhZ21lbnQsbnVsbCx1Lm1hcChlPT5HLmNyZWF0ZUVsZW1lbnQoekQse2tleTpWRChlKSxpc1ByZXNlbnQ6ITAsaW5pdGlhbDpuP3ZvaWQgMDohMSxwcmVzZW5jZUFmZmVjdHNMYXlvdXQ6YSxtb2RlOm99LGUpKSk7dT1bLi4udV07bGV0IGg9Zi5jdXJyZW50Lm1hcChWRCksZz1sLm1hcChWRCksXz1oLmxlbmd0aDtmb3IobGV0IGU9MDtlPF87ZSsrKXtsZXQgdD1oW2VdO2cuaW5kZXhPZih0KT09PS0xJiYhZC5oYXModCkmJmQuc2V0KHQsdm9pZCAwKX1yZXR1cm4gbz09PWB3YWl0YCYmZC5zaXplJiYodT1bXSksZC5mb3JFYWNoKChlLG4pPT57aWYoZy5pbmRleE9mKG4pIT09LTEpcmV0dXJuO2xldCBpPXAuZ2V0KG4pO2lmKCFpKXJldHVybjtsZXQgbT1oLmluZGV4T2YobiksXz1lO198fChfPUcuY3JlYXRlRWxlbWVudCh6RCx7a2V5OlZEKGkpLGlzUHJlc2VudDohMSxvbkV4aXRDb21wbGV0ZTooKT0+e2QuZGVsZXRlKG4pO2xldCBlPUFycmF5LmZyb20ocC5rZXlzKCkpLmZpbHRlcihlPT4hZy5pbmNsdWRlcyhlKSk7aWYoZS5mb3JFYWNoKGU9PnAuZGVsZXRlKGUpKSxmLmN1cnJlbnQ9bC5maWx0ZXIodD0+e2xldCByPVZEKHQpO3JldHVybiByPT09bnx8ZS5pbmNsdWRlcyhyKX0pLCFkLnNpemUpe2lmKGMuY3VycmVudD09PSExKXJldHVybjtzKCksciYmcigpfX0sY3VzdG9tOnQscHJlc2VuY2VBZmZlY3RzTGF5b3V0OmEsbW9kZTpvfSxpKSxkLnNldChuLF8pKSx1LnNwbGljZShtLDAsXyl9KSx1PXUubWFwKGU9PntsZXQgdD1lLmtleTtyZXR1cm4gZC5oYXModCk/ZTpHLmNyZWF0ZUVsZW1lbnQoekQse2tleTpWRChlKSxpc1ByZXNlbnQ6ITAscHJlc2VuY2VBZmZlY3RzTGF5b3V0OmEsbW9kZTpvfSxlKX0pLEcuY3JlYXRlRWxlbWVudChHLkZyYWdtZW50LG51bGwsZC5zaXplP3U6dS5tYXAoZT0+KDAsRy5jbG9uZUVsZW1lbnQpKGUpKSl9O2Z1bmN0aW9uIFVEKHtjaGlsZHJlbjplLGZlYXR1cmVzOnQsc3RyaWN0Om49ITF9KXtsZXRbLHJdPSgwLEcudXNlU3RhdGUpKCFXRCh0KSksaT0oMCxHLnVzZVJlZikodm9pZCAwKTtpZighV0QodCkpe2xldHtyZW5kZXJlcjplLC4uLm59PXQ7aS5jdXJyZW50PWUsWkMobil9cmV0dXJuKDAsRy51c2VFZmZlY3QpKCgpPT57V0QodCkmJnQoKS50aGVuKCh7cmVuZGVyZXI6ZSwuLi50fSk9PntaQyh0KSxpLmN1cnJlbnQ9ZSxyKCEwKX0pfSxbXSksRy5jcmVhdGVFbGVtZW50KFJDLlByb3ZpZGVyLHt2YWx1ZTp7cmVuZGVyZXI6aS5jdXJyZW50LHN0cmljdDpufX0sZSl9ZnVuY3Rpb24gV0QoZSl7cmV0dXJuIHR5cGVvZiBlPT1gZnVuY3Rpb25gfXZhciBHRD17cmVuZGVyZXI6SUQsLi4uZUQsLi4ueVR9O2Z1bmN0aW9uIFVfZShlKXtlLnZhbHVlcy5mb3JFYWNoKGU9PmUuc3RvcCgpKX1mdW5jdGlvbiBXX2UoKXtsZXQgZT0hMSx0PW5ldyBTZXQsbj17c3Vic2NyaWJlKGUpe3JldHVybiB0LmFkZChlKSwoKT0+dm9pZCB0LmRlbGV0ZShlKX0sc3RhcnQobixyKXtDVChlLGBjb250cm9scy5zdGFydCgpIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBhIGNvbXBvbmVudCBoYXMgbW91bnRlZC4gQ29uc2lkZXIgY2FsbGluZyB3aXRoaW4gYSB1c2VFZmZlY3QgaG9vay5gKTtsZXQgaT1bXTtyZXR1cm4gdC5mb3JFYWNoKGU9PntpLnB1c2goUUUoZSxuLHt0cmFuc2l0aW9uT3ZlcnJpZGU6cn0pKX0pLFByb21pc2UuYWxsKGkpfSxzZXQobil7cmV0dXJuIENUKGUsYGNvbnRyb2xzLnNldCgpIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBhIGNvbXBvbmVudCBoYXMgbW91bnRlZC4gQ29uc2lkZXIgY2FsbGluZyB3aXRoaW4gYSB1c2VFZmZlY3QgaG9vay5gKSx0LmZvckVhY2goZT0+e1FnZShlLG4pfSl9LHN0b3AoKXt0LmZvckVhY2goZT0+e1VfZShlKX0pfSxtb3VudCgpe3JldHVybiBlPSEwLCgpPT57ZT0hMSxuLnN0b3AoKX19fTtyZXR1cm4gbn1mdW5jdGlvbiBHX2UoKXtsZXQgZT1VdyhXX2UpO3JldHVybiBMQyhlLm1vdW50LFtdKSxlfXZhciBLRD1HX2UsS19lPWU9PntsZXR7Y2hpbGRyZW46dCxtb3Rpb25GZWF0dXJlczpuPUdEfT1lO3JldHVybigwLEsuanN4KShVRCx7c3RyaWN0OiEwLGZlYXR1cmVzOm4sY2hpbGRyZW46dH0pfTtmdW5jdGlvbiBxRChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIEpEKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP3FEKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtxX2UoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6cUQoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIHFfZShlLHQsbil7cmV0dXJuKHQ9Sl9lKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIEpfZShlKXt2YXIgdD1ZX2UoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gWV9lKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9dmFyIFlEPSgwLEcuY3JlYXRlQ29udGV4dCkodm9pZCAwKSxYRD1lPT4oMCxHLnVzZU1lbW8pKCgpPT5KbWUoZSksW2VdKSxYX2U9KDAsRy5tZW1vKShlPT57bGV0e2Rpc3BsYXk6dCxjbGFzc05hbWU6bixzdHlsZTpyLGNoaWxkcmVuOmksdGhlbWU6YX09ZSxvPVhEKGEpLHM9KDAsRy51c2VNZW1vKSgoKT0+SkQoSkQoe30sbykse30se2Rpc3BsYXk6dH0sciksW28sdCxyXSk7cmV0dXJuKDAsSy5qc3gpKGBkaXZgLHtjbGFzc05hbWU6VlMoYS5pZCxhLmFjdGl2ZUNvbG9yU2NoZW1lLG4pLHN0eWxlOnMsY2hpbGRyZW46aX0pfSksWl9lPShlLHQpPT57aWYoIXQpcmV0dXJuIGU7bGV0IG49e2lkOmUuaWQsYWN0aXZlQ29sb3JTY2hlbWU6ZS5hY3RpdmVDb2xvclNjaGVtZX07cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gocj0+e3I9PT1gaWRgfHxyPT09YGFjdGl2ZUNvbG9yU2NoZW1lYHx8KG5bcl09e30sT2JqZWN0LmtleXMoZVtyXT8/e30pLmZvckVhY2goaT0+e3ZhciBhLG87KChhPWVbcl0pPT1udWxsP3ZvaWQgMDphW2ldKSE9PSgobz10W3JdKT09bnVsbD92b2lkIDA6b1tpXSkmJihuW3JdW2ldPWVbcl1baV0pfSkpfSksbn0sWkQ9KDAsRy5tZW1vKShlPT57bGV0e3RoZW1lOnQsYWN0aXZlQ29sb3JTY2hlbWU6bixjaGlsZHJlbjpyLGNsYXNzTmFtZTppLGRpc3BsYXk6YSxzdHlsZTpvLG1vdGlvbkZlYXR1cmVzOnMsaXNvbGF0ZWQ6Y309ZSxsPSgwLEcudXNlTWVtbykoKCk9PntsZXQgZT1uPT09YGRhcmtgP2BkYXJrU3BlY3RydW1gOmBsaWdodFNwZWN0cnVtYCxyPW49PT1gZGFya2A/YGRhcmtDb2xvcmA6YGxpZ2h0Q29sb3JgLGk9bj09PWBkYXJrYD9gZGFya0lsbHVzdHJhdGlvbkNvbG9yYDpgbGlnaHRJbGx1c3RyYXRpb25Db2xvcmAsYT1uPT09YGRhcmtgP2BsaWdodFNwZWN0cnVtYDpgZGFya1NwZWN0cnVtYCxvPW49PT1gZGFya2A/YGxpZ2h0Q29sb3JgOmBkYXJrQ29sb3JgO2lmKCF0W3JdKXRocm93IEVycm9yKGBUaGVtZVByb3ZpZGVyIGFjdGl2ZUNvbG9yU2NoZW1lIGlzICR7bn0gYnV0IG5vICR7bn0gY29sb3JzIGFyZSBkZWZpbmVkIGZvciB0aGUgdGhlbWUuIFNlZSB0aGUgZG9jcyBodHRwczovL2Nkcy5jYmhxLm5ldC9nZXR0aW5nLXN0YXJ0ZWQvdGhlbWluZ2ApO2lmKCF0W2VdKXRocm93IEVycm9yKGBUaGVtZVByb3ZpZGVyIGFjdGl2ZUNvbG9yU2NoZW1lIGlzICR7bn0gYnV0IG5vICR7ZX0gdmFsdWVzIGFyZSBkZWZpbmVkIGZvciB0aGUgdGhlbWUuIFNlZSB0aGUgZG9jcyBodHRwczovL2Nkcy5jYmhxLm5ldC9nZXR0aW5nLXN0YXJ0ZWQvdGhlbWluZ2ApO2lmKHRbYV0mJiF0W29dKXRocm93IEVycm9yKGBUaGVtZVByb3ZpZGVyIHRoZW1lIGhhcyAke2F9IHZhbHVlcyBkZWZpbmVkIGJ1dCBubyAke299IGNvbG9ycyBhcmUgZGVmaW5lZCBmb3IgdGhlIHRoZW1lLiBTZWUgdGhlIGRvY3MgaHR0cHM6Ly9jZHMuY2JocS5uZXQvZ2V0dGluZy1zdGFydGVkL3RoZW1pbmdgKTtpZih0W29dJiYhdFthXSl0aHJvdyBFcnJvcihgVGhlbWVQcm92aWRlciB0aGVtZSBoYXMgJHtvfSBjb2xvcnMgZGVmaW5lZCBidXQgbm8gJHthfSB2YWx1ZXMgYXJlIGRlZmluZWQgZm9yIHRoZSB0aGVtZS4gU2VlIHRoZSBkb2NzIGh0dHBzOi8vY2RzLmNiaHEubmV0L2dldHRpbmctc3RhcnRlZC90aGVtaW5nYCk7bGV0IHM9dFtpXSxjPXM/SkQoSkQoe30sTUNbaV0pLHMpOnZvaWQgMDtyZXR1cm4gSkQoSkQoe30sdCkse30se2FjdGl2ZUNvbG9yU2NoZW1lOm4sc3BlY3RydW06dFtlXSxjb2xvcjp0W3JdLGlsbHVzdHJhdGlvbkNvbG9yOmN9KX0sW3Qsbl0pLHU9KDAsRy51c2VDb250ZXh0KShZRCksZD0oMCxHLnVzZU1lbW8pKCgpPT5jP2w6Wl9lKGwsdSksW2wsdSxjXSk7cmV0dXJuKDAsSy5qc3gpKEtfZSx7bW90aW9uRmVhdHVyZXM6cyxjaGlsZHJlbjooMCxLLmpzeCkoWUQuUHJvdmlkZXIse3ZhbHVlOmwsY2hpbGRyZW46KDAsSy5qc3gpKFhfZSx7Y2xhc3NOYW1lOmksZGlzcGxheTphLHN0eWxlOm8sdGhlbWU6ZCxjaGlsZHJlbjpyfSl9KX0pfSksUUQ9KDAsRy5tZW1vKShlPT57bGV0e2NoaWxkcmVuOnQsZGlzcGxheTpuLGNsYXNzTmFtZTpyLHN0eWxlOmksaXNvbGF0ZWQ6YX09ZSxvPSgwLEcudXNlQ29udGV4dCkoWUQpO2lmKCFvKXRocm93IEVycm9yKGBJbnZlcnRlZFRoZW1lUHJvdmlkZXIgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFRoZW1lUHJvdmlkZXJgKTtsZXQgcz1vLmFjdGl2ZUNvbG9yU2NoZW1lPT09YGRhcmtgP2BsaWdodGA6YGRhcmtgO3JldHVybigwLEsuanN4KShaRCx7YWN0aXZlQ29sb3JTY2hlbWU6b1tvLmFjdGl2ZUNvbG9yU2NoZW1lPT09YGRhcmtgP2BsaWdodENvbG9yYDpgZGFya0NvbG9yYF0/czpvLmFjdGl2ZUNvbG9yU2NoZW1lLGNsYXNzTmFtZTpyLGRpc3BsYXk6bixpc29sYXRlZDphLHN0eWxlOmksdGhlbWU6byxjaGlsZHJlbjp0fSl9KSwkRD0oKT0+e2xldCBlPSgwLEcudXNlQ29udGV4dCkoWUQpO2lmKCFlKXRocm93IEVycm9yKGB1c2VUaGVtZSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgVGhlbWVQcm92aWRlcmApO3JldHVybiBlfSxRX2U9W2BhY2Nlc3NpYmlsaXR5TGFiZWxgLGBjb2xvcmAsYGRhbmdlcm91c2x5U2V0Q29sb3JgLGBmYWxsYmFja2AsYG5hbWVgLGBzaXplYCxgdGVzdElEYCxgY2xhc3NOYW1lYCxgY2xhc3NOYW1lc2AsYHN0eWxlYCxgc3R5bGVzYCxgYWN0aXZlYF07ZnVuY3Rpb24gZU8oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiB0TyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9lTyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7JF9lKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmVPKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiAkX2UoZSx0LG4pe3JldHVybih0PWV2ZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBldmUoZSl7dmFyIHQ9dHZlKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIHR2ZShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIG52ZShlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG4scixpPXJ2ZShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPT09LTEmJnt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKGlbbl09ZVtuXSl9cmV0dXJuIGl9ZnVuY3Rpb24gcnZlKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgaXZlPWBjZHMtSWNvbmAsYXZlPWBpY29uQ3NzLWlqZ3huMXBgLG92ZT17eHM6YHhzLXgxbzJ2a2E3YCxzOmBzLXNtcHZwZG1gLG06YG0tbTFqN2I0NjVgLGw6YGwtbDFicmk4NjRgfSxzdmU9ZT0+ZTw9MTI/MTI6ZTw9MTY/MTY6MjQsbk89KDAsRy5tZW1vKSgoMCxHLmZvcndhcmRSZWYpKChlLHQpPT57bGV0IG49R1MoYEljb25gLGUpLHthY2Nlc3NpYmlsaXR5TGFiZWw6cixjb2xvcjppPWBmZ1ByaW1hcnlgLGRhbmdlcm91c2x5U2V0Q29sb3I6YSxmYWxsYmFjazpvPW51bGwsbmFtZTpzLHNpemU6Yz1gbWAsdGVzdElEOmwsY2xhc3NOYW1lOnUsY2xhc3NOYW1lczpkLHN0eWxlOmYsc3R5bGVzOnAsYWN0aXZlOm19PW4saD1udmUobixRX2UpLGc9JEQoKS5pY29uU2l6ZVtjXSxfPXN2ZShnKSx2PSgwLEcudXNlTWVtbykoKCk9PnRPKHRPKHRPKHt9LGE/e2NvbG9yOmF9Ont9KSxmKSxwPT1udWxsP3ZvaWQgMDpwLnJvb3QpLFthLGYscD09bnVsbD92b2lkIDA6cC5yb290XSkseT1gJHtzfS0ke199LSR7bT9gYWN0aXZlYDpgaW5hY3RpdmVgfWAsYj1IbWVbeV07aWYoYj09PXZvaWQgMClyZXR1cm4gT0MoKSYmY29uc29sZS5lcnJvcihgVW5hYmxlIHRvIGZpbmQgZ2x5cGggZm9yIGljb24gbmFtZSAiJHtzfSIgd2l0aCBnbHlwaCBrZXkgIiR7eX0iYCksbztsZXQgeD1sP2Ake2x9LWdseXBoYDpgaWNvbi1iYXNlLWdseXBoYDtyZXR1cm4oMCxLLmpzeCkoSix0Tyh0Tyh7Y2xhc3NOYW1lOlZTKGl2ZSx1LGQ9PW51bGw/dm9pZCAwOmQucm9vdCksY29sb3I6aSxwb3NpdGlvbjpgcmVsYXRpdmVgLHN0eWxlOnYsdGVzdElEOmx9LGgpLHt9LHtjaGlsZHJlbjooMCxLLmpzeCkoYHNwYW5gLHtyZWY6dCwiYXJpYS1oaWRkZW4iOiFyLCJhcmlhLWxhYmVsIjpyLGNsYXNzTmFtZTpWUyhhdmUsb3ZlW2NdLGQ9PW51bGw/dm9pZCAwOmQuaWNvbiksImRhdGEtaWNvbi1uYW1lIjpzLCJkYXRhLXRlc3RpZCI6eCxyb2xlOmBpbWdgLHN0eWxlOnA9PW51bGw/dm9pZCAwOnAuaWNvbix0aXRsZTpyLHRyYW5zbGF0ZTpgbm9gLGNoaWxkcmVuOmJ9KX0pKX0pKTtuTy5kaXNwbGF5TmFtZT1gSWNvbmA7dmFyIGN2ZT1bYGFzYCxgZmxleERpcmVjdGlvbmBdO2Z1bmN0aW9uIHJPKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gbHZlKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP3JPKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXt1dmUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6ck8oT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIHV2ZShlLHQsbil7cmV0dXJuKHQ9ZHZlKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIGR2ZShlKXt2YXIgdD1mdmUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gZnZlKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gcHZlKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbixyLGk9bXZlKGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1mdW5jdGlvbiBtdmUoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmRleE9mKHIpIT09LTEpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufXZhciBpTz0oMCxHLmZvcndhcmRSZWYpKChlLHQpPT57bGV0e2FzOm4sZmxleERpcmVjdGlvbjpyPWByb3dgfT1lLGk9cHZlKGUsY3ZlKTtyZXR1cm4oMCxLLmpzeCkoSixsdmUoe3JlZjp0LGFzOm4/P2BkaXZgLGZsZXhEaXJlY3Rpb246cn0saSkpfSk7aU8uZGlzcGxheU5hbWU9YEhTdGFja2A7dmFyIGh2ZT1bYGFzYCxgZmxleERpcmVjdGlvbmBdO2Z1bmN0aW9uIGFPKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gZ3ZlKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP2FPKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtfdmUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6YU8oT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIF92ZShlLHQsbil7cmV0dXJuKHQ9dnZlKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHZ2ZShlKXt2YXIgdD15dmUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24geXZlKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gYnZlKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbixyLGk9eHZlKGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1mdW5jdGlvbiB4dmUoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmRleE9mKHIpIT09LTEpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufXZhciBvTz0oMCxHLmZvcndhcmRSZWYpKChlLHQpPT57bGV0e2FzOm4sZmxleERpcmVjdGlvbjpyPWBjb2x1bW5gfT1lLGk9YnZlKGUsaHZlKTtyZXR1cm4oMCxLLmpzeCkoSixndmUoe3JlZjp0LGFzOm4/P2BkaXZgLGZsZXhEaXJlY3Rpb246cn0saSkpfSk7b08uZGlzcGxheU5hbWU9YFZTdGFja2A7dmFyIHNPPShlLHQpPT50P0FycmF5LmlzQXJyYXkodCk/dC5pbmNsdWRlcyhlKTp0PT09ZTohMTtmdW5jdGlvbiBjTyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGxPKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP2NPKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtTdmUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6Y08oT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIFN2ZShlLHQsbil7cmV0dXJuKHQ9Q3ZlKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIEN2ZShlKXt2YXIgdD13dmUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gd3ZlKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9dmFyIHVPPUVDLmlubmVyU3BhY2luZyxkTz1FQy5vdXRlclNwYWNpbmc7ZnVuY3Rpb24gZk8oKXtsZXR7aW5uZXJTcGFjaW5nOmUsb3V0ZXJTcGFjaW5nOnR9PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4oMCxHLnVzZU1lbW8pKCgpPT4oe2lubmVyOmxPKGxPKHt9LHVPKSx7fSx7cGFkZGluZ1g6KGU9PW51bGw/dm9pZCAwOmUucGFkZGluZyk/P3VPLnBhZGRpbmdYLHBhZGRpbmdZOihlPT1udWxsP3ZvaWQgMDplLnBhZGRpbmcpPz91Ty5wYWRkaW5nWX0sZSksb3V0ZXI6bE8obE8oe30sZE8pLHt9LHtwYWRkaW5nWDoodD09bnVsbD92b2lkIDA6dC5wYWRkaW5nKT8/ZE8ucGFkZGluZ1gscGFkZGluZ1k6KHQ9PW51bGw/dm9pZCAwOnQucGFkZGluZyk/P2RPLnBhZGRpbmdZfSx0KX0pLFtlLHRdKX12YXIgcE89cygoKGUsdCk9Pnt2YXIgbj1PYmplY3QucHJvdG90eXBlO2Z1bmN0aW9uIHIoZSl7dmFyIHQ9ZSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4gZT09PSh0eXBlb2YgdD09YGZ1bmN0aW9uYCYmdC5wcm90b3R5cGV8fG4pfXQuZXhwb3J0cz1yfSkpLG1PPXMoKChlLHQpPT57ZnVuY3Rpb24gbihlLHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gZSh0KG4pKX19dC5leHBvcnRzPW59KSksVHZlPXMoKChlLHQpPT57dC5leHBvcnRzPW1PKCkoT2JqZWN0LmtleXMsT2JqZWN0KX0pKSxoTz1zKCgoZSx0KT0+e3ZhciBuPXBPKCkscj1UdmUoKSxpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gYShlKXtpZighbihlKSlyZXR1cm4gcihlKTt2YXIgdD1bXTtmb3IodmFyIGEgaW4gT2JqZWN0KGUpKWkuY2FsbChlLGEpJiZhIT1gY29uc3RydWN0b3JgJiZ0LnB1c2goYSk7cmV0dXJuIHR9dC5leHBvcnRzPWF9KSksZ089cygoKGUsdCk9Pnt2YXIgbj1FZCgpLHI9YmQoKSxpPWBbb2JqZWN0IEFzeW5jRnVuY3Rpb25dYCxhPWBbb2JqZWN0IEZ1bmN0aW9uXWAsbz1gW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl1gLHM9YFtvYmplY3QgUHJveHldYDtmdW5jdGlvbiBjKGUpe2lmKCFyKGUpKXJldHVybiExO3ZhciB0PW4oZSk7cmV0dXJuIHQ9PWF8fHQ9PW98fHQ9PWl8fHQ9PXN9dC5leHBvcnRzPWN9KSksRXZlPXMoKChlLHQpPT57dC5leHBvcnRzPVNkKClbYF9fY29yZS1qc19zaGFyZWRfX2BdfSkpLER2ZT1zKCgoZSx0KT0+e3ZhciBuPUV2ZSgpLHI9ZnVuY3Rpb24oKXt2YXIgZT0vW14uXSskLy5leGVjKG4mJm4ua2V5cyYmbi5rZXlzLklFX1BST1RPfHxgYCk7cmV0dXJuIGU/YFN5bWJvbChzcmMpXzEuYCtlOmBgfSgpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuISFyJiZyIGluIGV9dC5leHBvcnRzPWl9KSksX089cygoKGUsdCk9Pnt2YXIgbj1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gcihlKXtpZihlIT1udWxsKXt0cnl7cmV0dXJuIG4uY2FsbChlKX1jYXRjaHt9dHJ5e3JldHVybiBlK2BgfWNhdGNoe319cmV0dXJuYGB9dC5leHBvcnRzPXJ9KSksT3ZlPXMoKChlLHQpPT57dmFyIG49Z08oKSxyPUR2ZSgpLGk9YmQoKSxhPV9PKCksbz0vW1xcXiQuKis/KClbXF17fXxdL2cscz0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxjPUZ1bmN0aW9uLnByb3RvdHlwZSxsPU9iamVjdC5wcm90b3R5cGUsdT1jLnRvU3RyaW5nLGQ9bC5oYXNPd25Qcm9wZXJ0eSxmPVJlZ0V4cChgXmArdS5jYWxsKGQpLnJlcGxhY2UobyxgXFwkJmApLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csYCQxLio/YCkrYCRgKTtmdW5jdGlvbiBwKGUpe3JldHVybiFpKGUpfHxyKGUpPyExOihuKGUpP2Y6cykudGVzdChhKGUpKX10LmV4cG9ydHM9cH0pKSxrdmU9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUsdCl7cmV0dXJuIGU9PW51bGw/dm9pZCAwOmVbdF19dC5leHBvcnRzPW59KSksdk89cygoKGUsdCk9Pnt2YXIgbj1PdmUoKSxyPWt2ZSgpO2Z1bmN0aW9uIGkoZSx0KXt2YXIgaT1yKGUsdCk7cmV0dXJuIG4oaSk/aTp2b2lkIDB9dC5leHBvcnRzPWl9KSksQXZlPXMoKChlLHQpPT57dC5leHBvcnRzPXZPKCkoU2QoKSxgRGF0YVZpZXdgKX0pKSx5Tz1zKCgoZSx0KT0+e3QuZXhwb3J0cz12TygpKFNkKCksYE1hcGApfSkpLGp2ZT1zKCgoZSx0KT0+e3QuZXhwb3J0cz12TygpKFNkKCksYFByb21pc2VgKX0pKSxiTz1zKCgoZSx0KT0+e3QuZXhwb3J0cz12TygpKFNkKCksYFNldGApfSkpLE12ZT1zKCgoZSx0KT0+e3QuZXhwb3J0cz12TygpKFNkKCksYFdlYWtNYXBgKX0pKSx4Tz1zKCgoZSx0KT0+e3ZhciBuPUF2ZSgpLHI9eU8oKSxpPWp2ZSgpLGE9Yk8oKSxvPU12ZSgpLHM9RWQoKSxjPV9PKCksbD1gW29iamVjdCBNYXBdYCx1PWBbb2JqZWN0IE9iamVjdF1gLGQ9YFtvYmplY3QgUHJvbWlzZV1gLGY9YFtvYmplY3QgU2V0XWAscD1gW29iamVjdCBXZWFrTWFwXWAsbT1gW29iamVjdCBEYXRhVmlld11gLGg9YyhuKSxnPWMociksXz1jKGkpLHY9YyhhKSx5PWMobyksYj1zOyhuJiZiKG5ldyBuKG5ldyBBcnJheUJ1ZmZlcigxKSkpIT1tfHxyJiZiKG5ldyByKSE9bHx8aSYmYihpLnJlc29sdmUoKSkhPWR8fGEmJmIobmV3IGEpIT1mfHxvJiZiKG5ldyBvKSE9cCkmJihiPWZ1bmN0aW9uKGUpe3ZhciB0PXMoZSksbj10PT11P2UuY29uc3RydWN0b3I6dm9pZCAwLHI9bj9jKG4pOmBgO2lmKHIpc3dpdGNoKHIpe2Nhc2UgaDpyZXR1cm4gbTtjYXNlIGc6cmV0dXJuIGw7Y2FzZSBfOnJldHVybiBkO2Nhc2UgdjpyZXR1cm4gZjtjYXNlIHk6cmV0dXJuIHB9cmV0dXJuIHR9KSx0LmV4cG9ydHM9Yn0pKSxOdmU9cygoKGUsdCk9Pnt2YXIgbj1FZCgpLHI9RGQoKSxpPWBbb2JqZWN0IEFyZ3VtZW50c11gO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIHIoZSkmJm4oZSk9PWl9dC5leHBvcnRzPWF9KSksU089cygoKGUsdCk9Pnt2YXIgbj1OdmUoKSxyPURkKCksaT1PYmplY3QucHJvdG90eXBlLGE9aS5oYXNPd25Qcm9wZXJ0eSxvPWkucHJvcGVydHlJc0VudW1lcmFibGU7dC5leHBvcnRzPW4oZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKT9uOmZ1bmN0aW9uKGUpe3JldHVybiByKGUpJiZhLmNhbGwoZSxgY2FsbGVlYCkmJiFvLmNhbGwoZSxgY2FsbGVlYCl9fSkpLENPPXMoKChlLHQpPT57dC5leHBvcnRzPUFycmF5LmlzQXJyYXl9KSksd089cygoKGUsdCk9Pnt2YXIgbj05MDA3MTk5MjU0NzQwOTkxO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHR5cGVvZiBlPT1gbnVtYmVyYCYmZT4tMSYmZSUxPT0wJiZlPD1ufXQuZXhwb3J0cz1yfSkpLFRPPXMoKChlLHQpPT57dmFyIG49Z08oKSxyPXdPKCk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSE9bnVsbCYmcihlLmxlbmd0aCkmJiFuKGUpfXQuZXhwb3J0cz1pfSkpLFB2ZT1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oKXtyZXR1cm4hMX10LmV4cG9ydHM9bn0pKSxFTz1zKCgoZSx0KT0+e3ZhciBuPVNkKCkscj1QdmUoKSxpPXR5cGVvZiBlPT1gb2JqZWN0YCYmZSYmIWUubm9kZVR5cGUmJmUsYT1pJiZ0eXBlb2YgdD09YG9iamVjdGAmJnQmJiF0Lm5vZGVUeXBlJiZ0LG89YSYmYS5leHBvcnRzPT09aT9uLkJ1ZmZlcjp2b2lkIDA7dC5leHBvcnRzPShvP28uaXNCdWZmZXI6dm9pZCAwKXx8cn0pKSxGdmU9cygoKGUsdCk9Pnt2YXIgbj1FZCgpLHI9d08oKSxpPURkKCksYT1gW29iamVjdCBBcmd1bWVudHNdYCxvPWBbb2JqZWN0IEFycmF5XWAscz1gW29iamVjdCBCb29sZWFuXWAsYz1gW29iamVjdCBEYXRlXWAsbD1gW29iamVjdCBFcnJvcl1gLHU9YFtvYmplY3QgRnVuY3Rpb25dYCxkPWBbb2JqZWN0IE1hcF1gLGY9YFtvYmplY3QgTnVtYmVyXWAscD1gW29iamVjdCBPYmplY3RdYCxtPWBbb2JqZWN0IFJlZ0V4cF1gLGg9YFtvYmplY3QgU2V0XWAsZz1gW29iamVjdCBTdHJpbmddYCxfPWBbb2JqZWN0IFdlYWtNYXBdYCx2PWBbb2JqZWN0IEFycmF5QnVmZmVyXWAseT1gW29iamVjdCBEYXRhVmlld11gLGI9YFtvYmplY3QgRmxvYXQzMkFycmF5XWAseD1gW29iamVjdCBGbG9hdDY0QXJyYXldYCxTPWBbb2JqZWN0IEludDhBcnJheV1gLEM9YFtvYmplY3QgSW50MTZBcnJheV1gLHc9YFtvYmplY3QgSW50MzJBcnJheV1gLFQ9YFtvYmplY3QgVWludDhBcnJheV1gLEU9YFtvYmplY3QgVWludDhDbGFtcGVkQXJyYXldYCxEPWBbb2JqZWN0IFVpbnQxNkFycmF5XWAsTz1gW29iamVjdCBVaW50MzJBcnJheV1gLGs9e307a1tiXT1rW3hdPWtbU109a1tDXT1rW3ddPWtbVF09a1tFXT1rW0RdPWtbT109ITAsa1thXT1rW29dPWtbdl09a1tzXT1rW3ldPWtbY109a1tsXT1rW3VdPWtbZF09a1tmXT1rW3BdPWtbbV09a1toXT1rW2ddPWtbX109ITE7ZnVuY3Rpb24gQShlKXtyZXR1cm4gaShlKSYmcihlLmxlbmd0aCkmJiEha1tuKGUpXX10LmV4cG9ydHM9QX0pKSxETz1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfX10LmV4cG9ydHM9bn0pKSxPTz1zKCgoZSx0KT0+e3ZhciBuPXhkKCkscj10eXBlb2YgZT09YG9iamVjdGAmJmUmJiFlLm5vZGVUeXBlJiZlLGk9ciYmdHlwZW9mIHQ9PWBvYmplY3RgJiZ0JiYhdC5ub2RlVHlwZSYmdCxhPWkmJmkuZXhwb3J0cz09PXImJm4ucHJvY2Vzczt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGkmJmkucmVxdWlyZSYmaS5yZXF1aXJlKGB1dGlsYCkudHlwZXN8fGEmJmEuYmluZGluZyYmYS5iaW5kaW5nKGB1dGlsYCl9Y2F0Y2h7fX0oKX0pKSxrTz1zKCgoZSx0KT0+e3ZhciBuPUZ2ZSgpLHI9RE8oKSxpPU9PKCksYT1pJiZpLmlzVHlwZWRBcnJheTt0LmV4cG9ydHM9YT9yKGEpOm59KSksSXZlPXUocygoKGUsdCk9Pnt2YXIgbj1oTygpLHI9eE8oKSxpPVNPKCksYT1DTygpLG89VE8oKSxzPUVPKCksYz1wTygpLGw9a08oKSx1PWBbb2JqZWN0IE1hcF1gLGQ9YFtvYmplY3QgU2V0XWAsZj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHAoZSl7aWYoZT09bnVsbClyZXR1cm4hMDtpZihvKGUpJiYoYShlKXx8dHlwZW9mIGU9PWBzdHJpbmdgfHx0eXBlb2YgZS5zcGxpY2U9PWBmdW5jdGlvbmB8fHMoZSl8fGwoZSl8fGkoZSkpKXJldHVybiFlLmxlbmd0aDt2YXIgdD1yKGUpO2lmKHQ9PXV8fHQ9PWQpcmV0dXJuIWUuc2l6ZTtpZihjKGUpKXJldHVybiFuKGUpLmxlbmd0aDtmb3IodmFyIHAgaW4gZSlpZihmLmNhbGwoZSxwKSlyZXR1cm4hMTtyZXR1cm4hMH10LmV4cG9ydHM9cH0pKSgpKSxBTz17fSxqTz0oMCxHLmNyZWF0ZUNvbnRleHQpKEFPKSxMdmU9ZT0+e2xldHtjb25maWc6dCxjaGlsZHJlbjpufT1lLHI9KDAsRy51c2VNZW1vKSgoKT0+dD8/QU8sW3RdKTtyZXR1cm4oMCxLLmpzeCkoak8uUHJvdmlkZXIse3ZhbHVlOnIsY2hpbGRyZW46bn0pfSxSdmU9KCk9Pnt9LHp2ZT0oZSx0LG4scik9PntsZXQgaT0oMCxHLnVzZUNvbnRleHQpKGpPKTtyZXR1cm4oMCxHLnVzZUNhbGxiYWNrKSgoKT0+e2lmKCFpLmhhbmRsZXJzfHwhKG4hPW51bGwmJm4uYWN0aW9ucy5sZW5ndGgpJiYhcilyZXR1cm47bGV0IGE9aT09bnVsbD92b2lkIDA6aS5oYW5kbGVyc1tlXTtpZighYSlyZXR1cm47bGV0e2FjdGlvbk1hcHBpbmc6b309aSxzPShvPT1udWxsP3ZvaWQgMDpvW3RdKT8/dCxjPWFbc10/P1J2ZSxsPXt9O2lmKHImJihsLmFuYWx5dGljc0lkPXIpLG4hPW51bGwmJm4uYWN0aW9ucy5pbmNsdWRlcyhzKSYmKGwuY29tcG9uZW50TmFtZT1uLmNvbXBvbmVudE5hbWUsbC5kYXRhPW4uZGF0YSksISgwLEl2ZS5kZWZhdWx0KShsKSlyZXR1cm4gYyhsKX0sW3QsZSxpLG4scl0pfSxNTz1mQygpP0cudXNlTGF5b3V0RWZmZWN0OkcudXNlRWZmZWN0O2Z1bmN0aW9uIE5PKGUsdCxuKXtlLnByb3RvdHlwZT10LnByb3RvdHlwZT1uLG4uY29uc3RydWN0b3I9ZX1mdW5jdGlvbiBQTyhlLHQpe3ZhciBuPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpO2Zvcih2YXIgciBpbiB0KW5bcl09dFtyXTtyZXR1cm4gbn1mdW5jdGlvbiBGTygpe312YXIgSU89LjcsTE89MS9JTyxSTz1gXFxzKihbKy1dP1xcZCspXFxzKmAsek89YFxccyooWystXT8oPzpcXGQqXFwuKT9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccypgLEJPPWBcXHMqKFsrLV0/KD86XFxkKlxcLik/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKmAsQnZlPS9eIyhbMC05YS1mXXszLDh9KSQvLFZ2ZT1SZWdFeHAoYF5yZ2JcXCgke1JPfSwke1JPfSwke1JPfVxcKSRgKSxIdmU9UmVnRXhwKGBecmdiXFwoJHtCT30sJHtCT30sJHtCT31cXCkkYCksVXZlPVJlZ0V4cChgXnJnYmFcXCgke1JPfSwke1JPfSwke1JPfSwke3pPfVxcKSRgKSxXdmU9UmVnRXhwKGBecmdiYVxcKCR7Qk99LCR7Qk99LCR7Qk99LCR7ek99XFwpJGApLEd2ZT1SZWdFeHAoYF5oc2xcXCgke3pPfSwke0JPfSwke0JPfVxcKSRgKSxLdmU9UmVnRXhwKGBeaHNsYVxcKCR7ek99LCR7Qk99LCR7Qk99LCR7ek99XFwpJGApLFZPPXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O05PKEZPLFdPLHtjb3B5KGUpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsZSl9LGRpc3BsYXlhYmxlKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4OkhPLGZvcm1hdEhleDpITyxmb3JtYXRIZXg4OnF2ZSxmb3JtYXRIc2w6SnZlLGZvcm1hdFJnYjpVTyx0b1N0cmluZzpVT30pO2Z1bmN0aW9uIEhPKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gcXZlKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4OCgpfWZ1bmN0aW9uIEp2ZSgpe3JldHVybiB0ayh0aGlzKS5mb3JtYXRIc2woKX1mdW5jdGlvbiBVTygpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdFJnYigpfWZ1bmN0aW9uIFdPKGUpe3ZhciB0LG47cmV0dXJuIGU9KGUrYGApLnRyaW0oKS50b0xvd2VyQ2FzZSgpLCh0PUJ2ZS5leGVjKGUpKT8obj10WzFdLmxlbmd0aCx0PXBhcnNlSW50KHRbMV0sMTYpLG49PT02P0dPKHQpOm49PT0zP25ldyBKTyh0Pj44JjE1fHQ+PjQmMjQwLHQ+PjQmMTV8dCYyNDAsKHQmMTUpPDw0fHQmMTUsMSk6bj09PTg/S08odD4+MjQmMjU1LHQ+PjE2JjI1NSx0Pj44JjI1NSwodCYyNTUpLzI1NSk6bj09PTQ/S08odD4+MTImMTV8dD4+OCYyNDAsdD4+OCYxNXx0Pj40JjI0MCx0Pj40JjE1fHQmMjQwLCgodCYxNSk8PDR8dCYxNSkvMjU1KTpudWxsKToodD1WdmUuZXhlYyhlKSk/bmV3IEpPKHRbMV0sdFsyXSx0WzNdLDEpOih0PUh2ZS5leGVjKGUpKT9uZXcgSk8odFsxXSoyNTUvMTAwLHRbMl0qMjU1LzEwMCx0WzNdKjI1NS8xMDAsMSk6KHQ9VXZlLmV4ZWMoZSkpP0tPKHRbMV0sdFsyXSx0WzNdLHRbNF0pOih0PVd2ZS5leGVjKGUpKT9LTyh0WzFdKjI1NS8xMDAsdFsyXSoyNTUvMTAwLHRbM10qMjU1LzEwMCx0WzRdKToodD1HdmUuZXhlYyhlKSk/ZWsodFsxXSx0WzJdLzEwMCx0WzNdLzEwMCwxKToodD1LdmUuZXhlYyhlKSk/ZWsodFsxXSx0WzJdLzEwMCx0WzNdLzEwMCx0WzRdKTpWTy5oYXNPd25Qcm9wZXJ0eShlKT9HTyhWT1tlXSk6ZT09PWB0cmFuc3BhcmVudGA/bmV3IEpPKE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gR08oZSl7cmV0dXJuIG5ldyBKTyhlPj4xNiYyNTUsZT4+OCYyNTUsZSYyNTUsMSl9ZnVuY3Rpb24gS08oZSx0LG4scil7cmV0dXJuIHI8PTAmJihlPXQ9bj1OYU4pLG5ldyBKTyhlLHQsbixyKX1mdW5jdGlvbiBZdmUoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBGT3x8KGU9V08oZSkpLGU/KGU9ZS5yZ2IoKSxuZXcgSk8oZS5yLGUuZyxlLmIsZS5vcGFjaXR5KSk6bmV3IEpPfWZ1bmN0aW9uIHFPKGUsdCxuLHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9ZdmUoZSk6bmV3IEpPKGUsdCxuLHI/PzEpfWZ1bmN0aW9uIEpPKGUsdCxuLHIpe3RoaXMucj0rZSx0aGlzLmc9K3QsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0rcn1OTyhKTyxxTyxQTyhGTyx7YnJpZ2h0ZXIoZSl7cmV0dXJuIGU9ZT09bnVsbD9MTzpMTyoqK2UsbmV3IEpPKHRoaXMuciplLHRoaXMuZyplLHRoaXMuYiplLHRoaXMub3BhY2l0eSl9LGRhcmtlcihlKXtyZXR1cm4gZT1lPT1udWxsP0lPOklPKiorZSxuZXcgSk8odGhpcy5yKmUsdGhpcy5nKmUsdGhpcy5iKmUsdGhpcy5vcGFjaXR5KX0scmdiKCl7cmV0dXJuIHRoaXN9LGNsYW1wKCl7cmV0dXJuIG5ldyBKTyhRTyh0aGlzLnIpLFFPKHRoaXMuZyksUU8odGhpcy5iKSxaTyh0aGlzLm9wYWNpdHkpKX0sZGlzcGxheWFibGUoKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4OllPLGZvcm1hdEhleDpZTyxmb3JtYXRIZXg4Olh2ZSxmb3JtYXRSZ2I6WE8sdG9TdHJpbmc6WE99KSk7ZnVuY3Rpb24gWU8oKXtyZXR1cm5gIyR7JE8odGhpcy5yKX0keyRPKHRoaXMuZyl9JHskTyh0aGlzLmIpfWB9ZnVuY3Rpb24gWHZlKCl7cmV0dXJuYCMkeyRPKHRoaXMucil9JHskTyh0aGlzLmcpfSR7JE8odGhpcy5iKX0keyRPKChpc05hTih0aGlzLm9wYWNpdHkpPzE6dGhpcy5vcGFjaXR5KSoyNTUpfWB9ZnVuY3Rpb24gWE8oKXtsZXQgZT1aTyh0aGlzLm9wYWNpdHkpO3JldHVybmAke2U9PT0xP2ByZ2IoYDpgcmdiYShgfSR7UU8odGhpcy5yKX0sICR7UU8odGhpcy5nKX0sICR7UU8odGhpcy5iKX0ke2U9PT0xP2ApYDpgLCAke2V9KWB9YH1mdW5jdGlvbiBaTyhlKXtyZXR1cm4gaXNOYU4oZSk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsZSkpfWZ1bmN0aW9uIFFPKGUpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKGUpfHwwKSl9ZnVuY3Rpb24gJE8oZSl7cmV0dXJuIGU9UU8oZSksKGU8MTY/YDBgOmBgKStlLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBlayhlLHQsbixyKXtyZXR1cm4gcjw9MD9lPXQ9bj1OYU46bjw9MHx8bj49MT9lPXQ9TmFOOnQ8PTAmJihlPU5hTiksbmV3IG5rKGUsdCxuLHIpfWZ1bmN0aW9uIHRrKGUpe2lmKGUgaW5zdGFuY2VvZiBuaylyZXR1cm4gbmV3IG5rKGUuaCxlLnMsZS5sLGUub3BhY2l0eSk7aWYoZSBpbnN0YW5jZW9mIEZPfHwoZT1XTyhlKSksIWUpcmV0dXJuIG5ldyBuaztpZihlIGluc3RhbmNlb2YgbmspcmV0dXJuIGU7ZT1lLnJnYigpO3ZhciB0PWUuci8yNTUsbj1lLmcvMjU1LHI9ZS5iLzI1NSxpPU1hdGgubWluKHQsbixyKSxhPU1hdGgubWF4KHQsbixyKSxvPU5hTixzPWEtaSxjPShhK2kpLzI7cmV0dXJuIHM/KG89dD09PWE/KG4tcikvcysobjxyKSo2Om49PT1hPyhyLXQpL3MrMjoodC1uKS9zKzQscy89YzwuNT9hK2k6Mi1hLWksbyo9NjApOnM9Yz4wJiZjPDE/MDpvLG5ldyBuayhvLHMsYyxlLm9wYWNpdHkpfWZ1bmN0aW9uIFp2ZShlLHQsbixyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/dGsoZSk6bmV3IG5rKGUsdCxuLHI/PzEpfWZ1bmN0aW9uIG5rKGUsdCxuLHIpe3RoaXMuaD0rZSx0aGlzLnM9K3QsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0rcn1OTyhuayxadmUsUE8oRk8se2JyaWdodGVyKGUpe3JldHVybiBlPWU9PW51bGw/TE86TE8qKitlLG5ldyBuayh0aGlzLmgsdGhpcy5zLHRoaXMubCplLHRoaXMub3BhY2l0eSl9LGRhcmtlcihlKXtyZXR1cm4gZT1lPT1udWxsP0lPOklPKiorZSxuZXcgbmsodGhpcy5oLHRoaXMucyx0aGlzLmwqZSx0aGlzLm9wYWNpdHkpfSxyZ2IoKXt2YXIgZT10aGlzLmglMzYwKyh0aGlzLmg8MCkqMzYwLHQ9aXNOYU4oZSl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwscj1uKyhuPC41P246MS1uKSp0LGk9MipuLXI7cmV0dXJuIG5ldyBKTyhhayhlPj0yNDA/ZS0yNDA6ZSsxMjAsaSxyKSxhayhlLGksciksYWsoZTwxMjA/ZSsyNDA6ZS0xMjAsaSxyKSx0aGlzLm9wYWNpdHkpfSxjbGFtcCgpe3JldHVybiBuZXcgbmsocmsodGhpcy5oKSxpayh0aGlzLnMpLGlrKHRoaXMubCksWk8odGhpcy5vcGFjaXR5KSl9LGRpc3BsYXlhYmxlKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxmb3JtYXRIc2woKXtsZXQgZT1aTyh0aGlzLm9wYWNpdHkpO3JldHVybmAke2U9PT0xP2Boc2woYDpgaHNsYShgfSR7cmsodGhpcy5oKX0sICR7aWsodGhpcy5zKSoxMDB9JSwgJHtpayh0aGlzLmwpKjEwMH0lJHtlPT09MT9gKWA6YCwgJHtlfSlgfWB9fSkpO2Z1bmN0aW9uIHJrKGUpe3JldHVybiBlPShlfHwwKSUzNjAsZTwwP2UrMzYwOmV9ZnVuY3Rpb24gaWsoZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oMSxlfHwwKSl9ZnVuY3Rpb24gYWsoZSx0LG4pe3JldHVybihlPDYwP3QrKG4tdCkqZS82MDplPDE4MD9uOmU8MjQwP3QrKG4tdCkqKDI0MC1lKS82MDp0KSoyNTV9dmFyIG9rPWU9PnR5cGVvZiBlPT1gc3RyaW5nYD9xTyhlKTpgcmBpbiBlJiZgZ2BpbiBlJiZgYmBpbiBlP3FPKGUucixlLmcsZS5iLGUub3BhY2l0eSk6cU8oZSksUXZlPWU9PntsZXR7dW5kZXJsYXlDb2xvcjp0LG92ZXJsYXlDb2xvcjpufT1lLHtyLGc6aSxiOmEsb3BhY2l0eTpvfT1vayh0KSx7cjpzLGc6YyxiOmwsb3BhY2l0eTp1fT1vayhuKSxkPVtdO3JldHVybiBkWzNdPTEtKDEtdSkqKDEtbyksZFswXT1NYXRoLnJvdW5kKHMqdS9kWzNdK3IqbyooMS11KS9kWzNdKSxkWzFdPU1hdGgucm91bmQoYyp1L2RbM10raSpvKigxLXUpL2RbM10pLGRbMl09TWF0aC5yb3VuZChsKnUvZFszXSthKm8qKDEtdSkvZFszXSkscU8oZFswXSxkWzFdLGRbMl0pfSxzaz1lPT57dmFyIHQ7bGV0IG49KHQ9V08oZSkpPT1udWxsP3ZvaWQgMDp0LnJnYigpO2lmKCFuKXJldHVybjtsZXR7cixnOmksYjphfT1uLG89TnVtYmVyLmlzTmFOKHIpPzA6cixzPU51bWJlci5pc05hTihpKT8wOmksYz1OdW1iZXIuaXNOYU4oYSk/MDphLFtsLHUsZF09W28vMjU1LHMvMjU1LGMvMjU1XS5tYXAoZT0+ZTw9LjA0MDQ1P2UvMTIuOTI6KChlKy4wNTUpLzEuMDU1KSoqMi40KTtyZXR1cm4gLjIxMjYqbCsuNzE1Mip1Ky4wNzIyKmR9LCR2ZT17bGlnaHQ6e3VuZGVybGF5Q29sb3I6YCNmZmZgLGhpZ2hDb250cmFzdEx1bWluYW5jZVRocmVzaG9sZDouMTF9LGRhcms6e3VuZGVybGF5Q29sb3I6YCMwMDBgLGhpZ2hDb250cmFzdEx1bWluYW5jZVRocmVzaG9sZDouNH19LGV5ZT17bm9BZGp1c3RtZW50THVtaW5hbmNlRGVsdGE6LjIsYWRqdXN0bWVudFN0cmVuZ3RoUmF0aW86Ljc1LGFkanVzdG1lbnRFYXNpbmdGdW5jdGlvbjpgZWFzZS1vdXRgfSx0eWU9ZT0+e2xldHtvdmVybGF5Q29sb3JMdW1pbmFuY2U6dCx1bmRlcmxheUNvbG9yTHVtaW5hbmNlOm4sYmxlbmRPcGFjaXR5OnIsYmxlbmRPcGFjaXR5QWRqdXN0bWVudENvbmZpZzp7bm9BZGp1c3RtZW50THVtaW5hbmNlRGVsdGE6aSxhZGp1c3RtZW50U3RyZW5ndGhSYXRpbzphLGFkanVzdG1lbnRFYXNpbmdGdW5jdGlvbjpvfT1leWV9PWUscz1NYXRoLmFicyh0LW4pO2lmKHM8aSlyZXR1cm4gcjtsZXQgYz0ocy1pKS8oMS1pKSxsO3N3aXRjaChvKXtjYXNlYGxpbmVhcmA6bD1jO2JyZWFrO2Nhc2VgZWFzZS1pbmA6bD1jKioyO2JyZWFrO2RlZmF1bHQ6bD1jKiouNTticmVha31sZXQgdT1sKmE7cmV0dXJuIHIrKDEtcikqdX0sY2s9ZT0+e2xldHtvdmVybGF5Q29sb3I6dCxibGVuZE9wYWNpdHk6bixibGVuZE9wYWNpdHlBZGp1c3RtZW50Q29uZmlnOnIsY29sb3JTY2hlbWU6aSxjb25maWdCeUNvbG9yU2NoZW1lOmE9JHZlLHNraXBDb250cmFzdE9wdGltaXphdGlvbjpvPSExfT1lO2lmKHQ9PT1gY3VycmVudENvbG9yYHx8dD09PWB0cmFuc3BhcmVudGApcmV0dXJuIHQ7bGV0IHM9V08odCk7aWYocz09PW51bGwpcmV0dXJuIHQ7bGV0IGM9cy5vcGFjaXR5O2lmKGM9PT0wKXJldHVybmB0cmFuc3BhcmVudGA7bGV0IGw9c2sodCk/PzEsdT1pPT09YGRhcmtgP2BsaWdodGA6YGRhcmtgLGQ9aT09PWBkYXJrYD9sPj1hLmRhcmsuaGlnaENvbnRyYXN0THVtaW5hbmNlVGhyZXNob2xkOmw8PWEubGlnaHQuaGlnaENvbnRyYXN0THVtaW5hbmNlVGhyZXNob2xkLGY9b3x8ZD9hW2ldLnVuZGVybGF5Q29sb3I6YVt1XS51bmRlcmxheUNvbG9yLHA9dHllKHtvdmVybGF5Q29sb3JMdW1pbmFuY2U6bCx1bmRlcmxheUNvbG9yTHVtaW5hbmNlOnNrKGYpPz8xLGJsZW5kT3BhY2l0eTpuLGJsZW5kT3BhY2l0eUFkanVzdG1lbnRDb25maWc6cn0pLG09UXZlKHt1bmRlcmxheUNvbG9yOmYsb3ZlcmxheUNvbG9yOnMuY29weSh7b3BhY2l0eTpwfSl9KTtyZXR1cm4gYzwxP20uY29weSh7b3BhY2l0eTpjfSkuZm9ybWF0UmdiKCk6bS5mb3JtYXRSZ2IoKX07ZnVuY3Rpb24gbnllKGUsdCl7ZSE9bnVsbCYmZS5hZGRFdmVudExpc3RlbmVyP2UuYWRkRXZlbnRMaXN0ZW5lcihgY2hhbmdlYCx0KTplIT1udWxsJiZlLmFkZExpc3RlbmVyJiZlLmFkZExpc3RlbmVyKHQpfWZ1bmN0aW9uIHJ5ZShlLHQpe2UhPW51bGwmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcj9lLnJlbW92ZUV2ZW50TGlzdGVuZXIoYGNoYW5nZWAsdCk6ZSE9bnVsbCYmZS5yZW1vdmVMaXN0ZW5lciYmZS5yZW1vdmVMaXN0ZW5lcih0KX12YXIgaXllPXt3aWR0aDpZUy5kZXNrdG9wLGNvbG9yU2NoZW1lOmBsaWdodGB9LGxrPSgwLEcuY3JlYXRlQ29udGV4dCkobnVsbCksYXllPWU9PntsZXR7Y2hpbGRyZW46dCxkZWZhdWx0VmFsdWVzOm49aXllfT1lO3JldHVybigwLEcudXNlU3RhdGUpKCgpPT5way5pbml0KHtkZWZhdWx0VmFsdWVzOm59KSksKDAsSy5qc3gpKGxrLlByb3ZpZGVyLHt2YWx1ZTpwayxjaGlsZHJlbjp0fSl9LHVrPWZ1bmN0aW9uKGUpe2xldCB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXToxNixuPXBhcnNlSW50KGUuc2xpY2UoMCwtMiksMTApLHI9ZS5lbmRzV2l0aChgcHhgKSxpPWUuZW5kc1dpdGgoYGVtYCk7aWYoaXNOYU4obil8fCFyJiYhaSl0aHJvdyBFcnJvcihgZ2V0UGl4ZWxWYWx1ZSBmYWlsZWQgdG8gcGFyc2UgdmFsdWU6ICIke2V9YCk7cmV0dXJuIGk/bip0Om59LGRrPXt3aWR0aDooZSx0KT0+dC53aWR0aD09PXZvaWQgMD8hMTp0LndpZHRoPT09dWsoZSx0LmZvbnRTaXplKSwibWluLXdpZHRoIjooZSx0KT0+dC53aWR0aD09PXZvaWQgMD8hMTp0LndpZHRoPj11ayhlLHQuZm9udFNpemUpLCJtYXgtd2lkdGgiOihlLHQpPT50LndpZHRoPT09dm9pZCAwPyExOnQud2lkdGg8PXVrKGUsdC5mb250U2l6ZSksaGVpZ2h0OihlLHQpPT50LmhlaWdodD09PXZvaWQgMD8hMTp0LmhlaWdodD09PXVrKGUsdC5mb250U2l6ZSksIm1pbi1oZWlnaHQiOihlLHQpPT50LmhlaWdodD09PXZvaWQgMD8hMTp0LmhlaWdodD49dWsoZSx0LmZvbnRTaXplKSwibWF4LWhlaWdodCI6KGUsdCk9PnQuaGVpZ2h0PT09dm9pZCAwPyExOnQuaGVpZ2h0PD11ayhlLHQuZm9udFNpemUpLCJwcmVmZXJzLWNvbG9yLXNjaGVtZSI6KGUsdCk9PnQuY29sb3JTY2hlbWU9PT12b2lkIDA/ZT09PWBsaWdodGA6ISEodC5jb2xvclNjaGVtZSYmdC5jb2xvclNjaGVtZT09PWUpLCJwcmVmZXJzLWNvbnRyYXN0IjooZSx0KT0+dC5jb250cmFzdD09PXZvaWQgMD9lPT09YG5vLXByZWZlcmVuY2VgOnQuY29udHJhc3Q9PT1lfSxmaz0oZSx0KT0+e2xldCBuPWUuc3BsaXQoYCBhbmQgYCk7Zm9yKGxldCBlIG9mIG4pe3ZhciByLGksYTtsZXQgbj1lLnRyaW0oKSxvPW5bMF09PT1gKGAmJm5bbi5sZW5ndGgtMV09PT1gKWA/bi5zbGljZSgxLC0xKS50cmltKCk6bjtpZighbylyZXR1cm4hMTtsZXQgcz1vLnNwbGl0KGA6YCksYz0ocj1zWzBdKT09bnVsbD92b2lkIDA6ci50cmltKCksbD0oaT1zWzFdKT09bnVsbD92b2lkIDA6aS50cmltKCk7aWYoIWN8fCFsfHwhKChhPWRrW2NdKSE9bnVsbCYmYS5jYWxsKGRrLGwsdCkpKXJldHVybiExfXJldHVybiEwfSxwaz0oKCk9PntsZXQgZT17fSx0PXt9LG49e30scj0hMTtyZXR1cm57aW5pdDplPT57cnx8KHI9ITAsZS5kZWZhdWx0VmFsdWVzJiYobj1lLmRlZmF1bHRWYWx1ZXMpKX0sc3Vic2NyaWJlOihuLHIpPT57dFtuXT8/KHRbbl09W10pLHRbbl0ucHVzaChyKTtsZXQgaT1lPT57dmFyIG47KG49dFtlXSk9PW51bGx8fG4uZm9yRWFjaChlPT5lKCkpfSxhPSgpPT5pKG4pO3JldHVybiBlW25dfHwoZVtuXT13aW5kb3cubWF0Y2hNZWRpYShuKSxueWUoZVtuXSxhKSksKCk9Pnt2YXIgaTt0W25dPXRbbl0uZmlsdGVyKGU9PmUhPT1yKSwoKGk9dFtuXSk9PW51bGw/dm9pZCAwOmkubGVuZ3RoKT09PTAmJihkZWxldGUgdFtuXSxyeWUoZVtuXSxhKSxkZWxldGUgZVtuXSl9fSxnZXRTbmFwc2hvdDp0PT57dmFyIHI7cmV0dXJuKChyPWVbdF0pPT1udWxsP3ZvaWQgMDpyLm1hdGNoZXMpPz9mayh0LG4pfSxnZXRTZXJ2ZXJTbmFwc2hvdDplPT5mayhlLG4pfX0pKCksb3llPWU9PnR5cGVvZiBlPT1gb2JqZWN0YCYmISFlJiYoYGJhc2VgaW4gZXx8YHBob25lYGluIGV8fGB0YWJsZXRgaW4gZXx8YGRlc2t0b3BgaW4gZSksbWs9ZT0+e2xldCB0PSgwLEcudXNlQ29udGV4dCkobGspLG49dD09bnVsbD92b2lkIDA6dC5nZXRTbmFwc2hvdDtpZighZXx8IW95ZShlKSlyZXR1cm4gZTtsZXQgcj1lLmJhc2U/P2UucGhvbmU/P2UudGFibGV0Pz9lLmRlc2t0b3A7cmV0dXJuIG4/ZS5waG9uZSE9PXZvaWQgMCYmbihYUy5waG9uZSk/ZS5waG9uZTplLnRhYmxldCE9PXZvaWQgMCYmbihYUy50YWJsZXQpP2UudGFibGV0OmUuZGVza3RvcCE9PXZvaWQgMCYmbihYUy5kZXNrdG9wKT9lLmRlc2t0b3A6cjpyfSxzeWU9YC0taW50ZXItYmdgLGN5ZT1gLS1pbnRlci1ib3JkZXJDb2xvcmAsbHllPWAtLWludGVyLXByZXNzLWJnYCx1eWU9YC0taW50ZXItcHJlc3MtYm9yZGVyQ29sb3JgLGR5ZT1gLS1pbnRlci1wcmVzcy1vcGFjaXR5YCxmeWU9YC0taW50ZXItaG92ZXItYmdgLHB5ZT1gLS1pbnRlci1ob3Zlci1ib3JkZXJDb2xvcmAsbXllPWAtLWludGVyLWhvdmVyLW9wYWNpdHlgLGh5ZT1gLS1pbnRlci1kaXNhYmxlLWJnYCxneWU9YC0taW50ZXItZGlzYWJsZS1ib3JkZXJDb2xvcmAsX3llPVtgYXNgLGBiYWNrZ3JvdW5kYCxgYm9yZGVyQ29sb3JgLGBib3JkZXJXaWR0aGAsYGJsb2NrYCxgY2xhc3NOYW1lYCxgZGlzYWJsZWRgLGBsb2FkaW5nYCxgcHJlc3NlZGAsYHN0eWxlYCxgYmxlbmRTdHlsZXNgLGB0cmFuc3BhcmVudFdoaWxlSW5hY3RpdmVgLGB0cmFuc3BhcmVudFdoaWxlUHJlc3NlZGBdO2Z1bmN0aW9uIGhrKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gZ2soZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/aGsoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3Z5ZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpoayhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gdnllKGUsdCxuKXtyZXR1cm4odD15eWUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24geXllKGUpe3ZhciB0PWJ5ZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBieWUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiB4eWUoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT1TeWUoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIFN5ZShlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluZGV4T2YocikhPT0tMSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59dmFyIEN5ZT1gY2RzLUludGVyYWN0YWJsZWAsd3llPWBiYXNlQ3NzLWIxN3dtazhmYCxUeWU9YGJsb2NrQ3NzLWIxeXRpbmp0YCxFeWU9YHRyYW5zcGFyZW50QWN0aXZlQ3NzLXQxMGVpNXJvYCxEeWU9YHRyYW5zcGFyZW50V2hpbGVJbmFjdGl2ZUNzcy10ZTVxMjNzYCxPeWU9YGJ1dHRvbmAsX2s9KDAsRy5mb3J3YXJkUmVmKSgoZSx0KT0+e2xldHthczpuLGJhY2tncm91bmQ6cj1gdHJhbnNwYXJlbnRgLGJvcmRlckNvbG9yOmk9cixib3JkZXJXaWR0aDphPTEwMCxibG9jazpvLGNsYXNzTmFtZTpzLGRpc2FibGVkOmMsbG9hZGluZzpsLHByZXNzZWQ6dSxzdHlsZTpkLGJsZW5kU3R5bGVzOmYsdHJhbnNwYXJlbnRXaGlsZUluYWN0aXZlOnAsdHJhbnNwYXJlbnRXaGlsZVByZXNzZWQ6bX09ZSxoPXh5ZShlLF95ZSksZz1uPz9PeWUsXz0kRCgpLHY9bWsoaSkseT0oMCxHLnVzZU1lbW8pKCgpPT5nayhnayh7fSxreWUoe3RoZW1lOl8sYmFja2dyb3VuZDpyLGJsZW5kU3R5bGVzOmYsYm9yZGVyQ29sb3I6dn0pKSxkKSxbZCxyLF8sZix2XSk7cmV0dXJuKDAsSy5qc3gpKEosZ2soe3JlZjp0LCJhcmlhLWJ1c3kiOmwsImFyaWEtZGlzYWJsZWQiOmx8fGN8fHZvaWQgMCwiYXJpYS1wcmVzc2VkIjp1LGFzOmcsYm9yZGVyV2lkdGg6YSxjbGFzc05hbWU6VlMoQ3llLHd5ZSxvJiZUeWUscCYmRHllLG0mJkV5ZSxzKSwiZGF0YS1kaXNhYmxlZCI6YyxkaXNhYmxlZDpjLHN0eWxlOnl9LGgpKX0pLGt5ZT1lPT57bGV0e3RoZW1lOnQsYmFja2dyb3VuZDpuPWB0cmFuc3BhcmVudGAsYm9yZGVyQ29sb3I6cj1uLGJsZW5kU3R5bGVzOml9PWUsYT0oaT09bnVsbD92b2lkIDA6aS5iYWNrZ3JvdW5kKT8/dC5jb2xvcltuXSxvPShpPT1udWxsP3ZvaWQgMDppLmJvcmRlckNvbG9yKT8/dC5jb2xvcltyXSxzPShpPT1udWxsP3ZvaWQgMDppLmhvdmVyZWRPcGFjaXR5KT8/aW1lLGM9KGk9PW51bGw/dm9pZCAwOmkucHJlc3NlZE9wYWNpdHkpPz9hbWUsbD0oaT09bnVsbD92b2lkIDA6aS5kaXNhYmxlZE9wYWNpdHkpPz9vbWU7cmV0dXJue1tzeWVdOihpPT1udWxsP3ZvaWQgMDppLmJhY2tncm91bmQpPz9gdmFyKC0tY29sb3ItJHtufSlgLFtjeWVdOihpPT1udWxsP3ZvaWQgMDppLmJvcmRlckNvbG9yKT8/YHZhcigtLWNvbG9yLSR7cn0pYCxbZnllXTpjayh7b3ZlcmxheUNvbG9yOihpPT1udWxsP3ZvaWQgMDppLmhvdmVyZWRCYWNrZ3JvdW5kKT8/YSxibGVuZE9wYWNpdHk6cyxjb2xvclNjaGVtZTp0LmFjdGl2ZUNvbG9yU2NoZW1lfSksW3B5ZV06Y2soe292ZXJsYXlDb2xvcjooaT09bnVsbD92b2lkIDA6aS5ob3ZlcmVkQm9yZGVyQ29sb3IpPz9vLGJsZW5kT3BhY2l0eTpzLGNvbG9yU2NoZW1lOnQuYWN0aXZlQ29sb3JTY2hlbWV9KSxbbXllXTpzLFtseWVdOmNrKHtvdmVybGF5Q29sb3I6KGk9PW51bGw/dm9pZCAwOmkucHJlc3NlZEJhY2tncm91bmQpPz9hLGJsZW5kT3BhY2l0eTpjLGNvbG9yU2NoZW1lOnQuYWN0aXZlQ29sb3JTY2hlbWV9KSxbdXllXTpjayh7b3ZlcmxheUNvbG9yOihpPT1udWxsP3ZvaWQgMDppLnByZXNzZWRCb3JkZXJDb2xvcik/P28sYmxlbmRPcGFjaXR5OmMsY29sb3JTY2hlbWU6dC5hY3RpdmVDb2xvclNjaGVtZX0pLFtkeWVdOmMsW2h5ZV06Y2soe292ZXJsYXlDb2xvcjooaT09bnVsbD92b2lkIDA6aS5kaXNhYmxlZEJhY2tncm91bmQpPz9hLGJsZW5kT3BhY2l0eTpsLGNvbG9yU2NoZW1lOnQuYWN0aXZlQ29sb3JTY2hlbWUsc2tpcENvbnRyYXN0T3B0aW1pemF0aW9uOiEwfSksW2d5ZV06Y2soe292ZXJsYXlDb2xvcjooaT09bnVsbD92b2lkIDA6aS5kaXNhYmxlZEJvcmRlckNvbG9yKT8/byxibGVuZE9wYWNpdHk6bCxjb2xvclNjaGVtZTp0LmFjdGl2ZUNvbG9yU2NoZW1lLHNraXBDb250cmFzdE9wdGltaXphdGlvbjohMH0pfX07ZnVuY3Rpb24gQXllKGUpe2xldCB0PWU7cmV0dXJuIHQub2Zmc2V0V2lkdGg+MHx8dC5vZmZzZXRIZWlnaHQ+MHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aD4wfXZhciBqeWU9YGlucHV0Om5vdChbdHlwZT0naGlkZGVuJ10pOm5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKSwKICB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGFbaHJlZl0sIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIFt0YWJpbmRleF0sCiAgaWZyYW1lLCBvYmplY3QsIGVtYmVkLCBhcmVhW2hyZWZdLCBhdWRpb1tjb250cm9sc10sIHZpZGVvW2NvbnRyb2xzXSwKICBbY29udGVudGVkaXRhYmxlXTpub3QoW2NvbnRlbnRlZGl0YWJsZT0nZmFsc2UnXSlgO2Z1bmN0aW9uIE15ZShlKXtyZXR1cm4gZS5tYXRjaGVzKGp5ZSkmJkF5ZShlKX1mdW5jdGlvbiBOeWUoZSl7bGV0e2FjdGl2ZUVsZW1lbnQ6dH09ZG9jdW1lbnQ7aWYoIXQpcmV0dXJuITE7aWYoZS5jb250YWlucyh0KSlyZXR1cm4hMDtsZXQgbj10LmdldEF0dHJpYnV0ZShgYXJpYS1hY3RpdmVkZXNjZW5kYW50YCk7cmV0dXJuIG4/bj09PWUuaWQ/ITA6ISFlLnF1ZXJ5U2VsZWN0b3IoYCMke259YCk6ITF9ZnVuY3Rpb24gdmsoZSl7IU55ZShlKSYmTXllKGUpJiZlLmZvY3VzKCl9dmFyIFB5ZT1bYGJ1dHRvbmAsYGNvbG9yYCxgZmlsZWAsYGltYWdlYCxgcmVzZXRgLGBzdWJtaXRgXTtmdW5jdGlvbiB5ayhlKXtyZXR1cm4gZS50YWdOYW1lPT09YEJVVFRPTmA/ITA6ZS50YWdOYW1lPT09YElOUFVUYD9QeWUuaW5jbHVkZXMoZS50eXBlKTohMX1mdW5jdGlvbiBGeWUoZSl7cmV0dXJuIWUuY3VycmVudFRhcmdldC5jb250YWlucyhlLnRhcmdldCl9ZnVuY3Rpb24gSXllKCl7bGV0e3VzZXJBZ2VudDplfT13aW5kb3cubmF2aWdhdG9yO3JldHVybiBlLmluY2x1ZGVzKGBNYWNgKSYmIWUuaW5jbHVkZXMoYENocm9tZWApJiYoZS5pbmNsdWRlcyhgU2FmYXJpYCl8fGUuaW5jbHVkZXMoYEZpcmVmb3hgKSl9ZnVuY3Rpb24gTHllKGUpe3JldHVybiBlLmlzVHJ1c3RlZD95ayhlLmN1cnJlbnRUYXJnZXQpfHxlLmN1cnJlbnRUYXJnZXQudGFnTmFtZT09PWBJTlBVVGB8fGUuY3VycmVudFRhcmdldC50YWdOYW1lPT09YFRFWFRBUkVBYHx8ZS5jdXJyZW50VGFyZ2V0LnRhZ05hbWU9PT1gQWB8fGUuY3VycmVudFRhcmdldC50YWdOYW1lPT09YFNFTEVDVGA6ITF9ZnVuY3Rpb24gUnllKGUpe2xldCB0PWUuY3VycmVudFRhcmdldDtpZighSXllKCl8fEZ5ZShlKXx8IXlrKHQpKXJldHVybjtsZXQgbj0oKT0+e30scj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoYG1vdXNldXBgLG4sITApLHZrKHQpfSk7bj0oKT0+e2NhbmNlbEFuaW1hdGlvbkZyYW1lKHIpLHZrKHQpfSx0LmFkZEV2ZW50TGlzdGVuZXIoYG1vdXNldXBgLG4se29uY2U6ITAsY2FwdHVyZTohMH0pfWZ1bmN0aW9uIHp5ZShlKXtyZXR1cm5bYEJVVFRPTmAsYElOUFVUYCxgU0VMRUNUYCxgVEVYVEFSRUFgLGBBYF0uaW5jbHVkZXMoZS50YWdOYW1lKX1mdW5jdGlvbiBCeWUoZSl7cmV0dXJuW2BCVVRUT05gLGBJTlBVVGAsYFNFTEVDVGAsYFRFWFRBUkVBYF0uaW5jbHVkZXMoZS50YWdOYW1lKX1mdW5jdGlvbiBWeWUoZSl7bGV0e2Rpc2FibGVkOnQsZm9jdXNhYmxlOm4sc3VwcG9ydHNEaXNhYmxlZDpyLG5hdGl2ZVRhYmJhYmxlOmksdGFiSW5kZXg6YX09ZTtyZXR1cm4gdCYmIW4/aSYmIXI/LTE6dm9pZCAwOmk/YTphfHwwfXZhciBIeWU9W2Bhc2AsYGNsYXNzTmFtZWAsYGRpc2FibGVkYCxgbG9hZGluZ2AsYG9uQ2xpY2tDYXB0dXJlYCxgb25DbGlja2AsYG9uS2V5RG93bmAsYG9uS2V5VXBgLGBvbk1vdXNlRG93bmAsYG9uTW91c2VEb3duQ2FwdHVyZWAsYG5vU2NhbGVPblByZXNzYCxgdGFiSW5kZXhgLGBldmVudENvbmZpZ2AsYGFuYWx5dGljc0lkYCxgZm9jdXNhYmxlYCxgdHlwZWAsYHRyYW5zcGFyZW50V2hpbGVQcmVzc2VkYCxgcGFkZGluZ2BdO2Z1bmN0aW9uIGJrKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24geGsoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/YmsoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe1V5ZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpiayhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gVXllKGUsdCxuKXtyZXR1cm4odD1XeWUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gV3llKGUpe3ZhciB0PUd5ZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBHeWUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBLeWUoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT1xeWUoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIHF5ZShlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluZGV4T2YocikhPT0tMSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59dmFyIEp5ZT1gc2NhbGVkRG93bkNzcy1zMW82YWx4ZGAsWXllPWBiYXNlQ3NzLWIxbnJtb2RwYCxYeWU9YHRyYW5zcGFyZW50QWN0aXZlQ3NzLXQxNHpzbmJ3YCxaeWU9YGJ1dHRvbmAsU2s9KDAsRy5mb3J3YXJkUmVmKSgoZSx0KT0+e2xldHthczpuLGNsYXNzTmFtZTpyLGRpc2FibGVkOmksbG9hZGluZzphLG9uQ2xpY2tDYXB0dXJlOm8sb25DbGljazpzLG9uS2V5RG93bjpjLG9uS2V5VXA6bCxvbk1vdXNlRG93bjp1LG9uTW91c2VEb3duQ2FwdHVyZTpkLG5vU2NhbGVPblByZXNzOmYsdGFiSW5kZXg6cCxldmVudENvbmZpZzptLGFuYWx5dGljc0lkOmgsZm9jdXNhYmxlOmcsdHlwZTpfLHRyYW5zcGFyZW50V2hpbGVQcmVzc2VkOnYscGFkZGluZzp5PTB9PWUsYj1LeWUoZSxIeWUpLHg9bj8/WnllLFM9KDAsRy51c2VSZWYpKG51bGwpOygwLEcudXNlSW1wZXJhdGl2ZUhhbmRsZSkodCwoKT0+Uy5jdXJyZW50LFtdKTtsZXQgQz14PT09YGJ1dHRvbmA/YGJ1dHRvbmA6dm9pZCAwLFt3LFRdPSgwLEcudXNlU3RhdGUpKCEwKSxbRSxEXT0oMCxHLnVzZVN0YXRlKSghMCksW08sa109KDAsRy51c2VTdGF0ZSkoITEpLEE9KDAsRy51c2VSZWYpKCExKTtNTygoKT0+e2xldCBlPVMuY3VycmVudDtlJiYoenllKGUpfHxUKCExKSxCeWUoZSl8fEQoITEpKX0sW10pO2xldCBqPSgwLEcudXNlQ2FsbGJhY2spKGU9PntpZihjPT1udWxsfHxjKGUpLGUuZGVmYXVsdFByZXZlbnRlZHx8aXx8ZS5tZXRhS2V5fHxlLnRhcmdldCE9PWUuY3VycmVudFRhcmdldClyZXR1cm47bGV0IHQ9ZS5rZXk9PT1gRW50ZXJgLG49ZS5rZXk9PT1gIGA7aWYodHx8bil7aWYoTHllKGUpKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksdD9lLmN1cnJlbnRUYXJnZXQuY2xpY2soKTpuJiYhQS5jdXJyZW50JiYoQS5jdXJyZW50PSEwLGsoITApKX19LFtpLGNdKSxNPSgwLEcudXNlQ2FsbGJhY2spKGU9PntsPT1udWxsfHxsKGUpLCEoZS5kZWZhdWx0UHJldmVudGVkfHxpfHxlLm1ldGFLZXkpJiZBLmN1cnJlbnQmJmUua2V5PT09YCBgJiYoQS5jdXJyZW50PSExLGsoITEpLGUuY3VycmVudFRhcmdldC5jbGljaygpKX0sW2ksbF0pLE49KDAsRy51c2VDYWxsYmFjaykoZT0+e289PW51bGx8fG8oZSksIWUuZGVmYXVsdFByZXZlbnRlZCYmaSYmKGUuc3RvcFByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpKX0sW2ksb10pLFA9KDAsRy51c2VDYWxsYmFjaykoZT0+e2Q9PW51bGx8fGQoZSksIWUuZGVmYXVsdFByZXZlbnRlZCYmaSYmKGUuc3RvcFByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpKX0sW2ksZF0pLEY9KDAsRy51c2VDYWxsYmFjaykoZT0+e3U9PW51bGx8fHUoZSksIWUuZGVmYXVsdFByZXZlbnRlZCYmUnllKGUpfSxbdV0pLGVlPXp2ZShgQnV0dG9uYCxgb25DbGlja2AsbSxoKSxJPSgwLEcudXNlQ2FsbGJhY2spKGU9PntzPT1udWxsfHxzKGUpLGVlKCl9LFtzLGVlXSksTD0oMCxHLnVzZU1lbW8pKCgpPT4oe2Rpc2FibGVkOihpfHxhKSYmRSYmIWc/ITA6dm9pZCAwLCJhcmlhLWRpc2FibGVkIjooaXx8YSkmJighRXx8Zyk/ITA6dm9pZCAwLHRhYkluZGV4OlZ5ZSh7ZGlzYWJsZWQ6aSxmb2N1c2FibGU6ZyxzdXBwb3J0c0Rpc2FibGVkOkUsbmF0aXZlVGFiYmFibGU6dyx0YWJJbmRleDpwfSl9KSxbaSxhLGcsRSx3LHBdKTtyZXR1cm4oMCxLLmpzeCkoX2sseGsoeGsoe3JlZjpTLGFzOngsY2xhc3NOYW1lOlZTKFl5ZSwhZiYmSnllLHYmJlh5ZSxyKSwiZGF0YS1hY3RpdmUiOk98fHZvaWQgMCwiZGF0YS1sb2FkaW5nIjphfHx2b2lkIDAsbG9hZGluZzphLG9uQ2xpY2s6SSxvbkNsaWNrQ2FwdHVyZTpOLG9uS2V5RG93bjpqLG9uS2V5VXA6TSxvbk1vdXNlRG93bjpGLG9uTW91c2VEb3duQ2FwdHVyZTpQLHBhZGRpbmc6eSxyZWw6IWIucmVsJiZiLnRhcmdldD09PWBfYmxhbmtgP2Bub29wZW5lciBub3JlZmVycmVyYDpiLnJlbCx0cmFuc3BhcmVudFdoaWxlUHJlc3NlZDp2LHR5cGU6Xz8/Q30sTCksYikpfSksUXllPWBhcy5hY2Nlc3NvcnkuYWNjZXNzb3J5Tm9kZS5hbGlnbkl0ZW1zLmJvcmRlcmVkLmJvcmRlcmVkQm90dG9tLmJvcmRlcmVkRW5kLmJvcmRlcmVkSG9yaXpvbnRhbC5ib3JkZXJlZFN0YXJ0LmJvcmRlcmVkVG9wLmJvcmRlcmVkVmVydGljYWwuYm9yZGVyQm90dG9tTGVmdFJhZGl1cy5ib3JkZXJCb3R0b21SaWdodFJhZGl1cy5ib3JkZXJCb3R0b21XaWR0aC5ib3JkZXJDb2xvci5ib3JkZXJFbmRXaWR0aC5ib3JkZXJSYWRpdXMuYm9yZGVyU3RhcnRXaWR0aC5ib3JkZXJUb3BMZWZ0UmFkaXVzLmJvcmRlclRvcFJpZ2h0UmFkaXVzLmJvcmRlclRvcFdpZHRoLmJvcmRlcldpZHRoLmNoaWxkcmVuLnN0eWxlLnN0eWxlcy5jbGFzc05hbWVzLmNsYXNzTmFtZS5jb250ZW50Q2xhc3NOYW1lLmVuZC5kZXRhaWwuZGV0YWlsV2lkdGguZGlzYWJsZWQuZ2FwLmNvbHVtbkdhcC5yb3dHYXAuaW50ZXJtZWRpYXJ5Lm1lZGlhLm1pbkhlaWdodC5tYXhIZWlnaHQub25DbGljay5vbktleURvd24ub25LZXlVcC5wcmlvcml0eS5zZWxlY3RlZC50ZXN0SUQudGFyZ2V0LmhyZWYudGFiSW5kZXguc2hvdWxkT3ZlcmZsb3cuc2hvdWxkVHJ1bmNhdGUuYWNjZXNzaWJpbGl0eUxhYmVsLmFjY2Vzc2liaWxpdHlMYWJlbGxlZEJ5LmFjY2Vzc2liaWxpdHlIaW50LmlubmVyU3BhY2luZy5vdXRlclNwYWNpbmcuYm90dG9tQ29udGVudC5iYWNrZ3JvdW5kYC5zcGxpdChgLmApLCR5ZT1bYG1hcmdpblhgXTtmdW5jdGlvbiBDayhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIHdrKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP0NrKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtlYmUoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6Q2soT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIGViZShlLHQsbil7cmV0dXJuKHQ9dGJlKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHRiZShlKXt2YXIgdD1uYmUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gbmJlKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gVGsoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT1yYmUoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIHJiZShlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluZGV4T2YocikhPT0tMSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59dmFyIGliZT1gY2RzLUNlbGxgLGFiZT1gcHJlc3NDc3MtcDE3YXdyaTFgLG9iZT1gaW5zZXRGb2N1c1JpbmdDc3MtaTFuNHBxc2JgLHNiZT1gYmFzZUNzcy1iMWJibnBtemAsY2JlPWB0cnVuY2F0aW9uQ3NzLXRkYWlhNzFgLEVrPSgwLEcubWVtbykoKDAsRy5mb3J3YXJkUmVmKSgoZSx0KT0+e2xldCBuPUdTKGBDZWxsYCxlKSx7YXM6cixhY2Nlc3Nvcnk6aSxhY2Nlc3NvcnlOb2RlOmEsYWxpZ25JdGVtczpvPWBjZW50ZXJgLGJvcmRlcmVkOnMsYm9yZGVyZWRCb3R0b206Yyxib3JkZXJlZEVuZDpsLGJvcmRlcmVkSG9yaXpvbnRhbDp1LGJvcmRlcmVkU3RhcnQ6ZCxib3JkZXJlZFRvcDpmLGJvcmRlcmVkVmVydGljYWw6cCxib3JkZXJCb3R0b21MZWZ0UmFkaXVzOm0sYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6aCxib3JkZXJCb3R0b21XaWR0aDpnLGJvcmRlckNvbG9yOl8sYm9yZGVyRW5kV2lkdGg6dixib3JkZXJSYWRpdXM6eT0yMDAsYm9yZGVyU3RhcnRXaWR0aDpiLGJvcmRlclRvcExlZnRSYWRpdXM6eCxib3JkZXJUb3BSaWdodFJhZGl1czpTLGJvcmRlclRvcFdpZHRoOkMsYm9yZGVyV2lkdGg6dyxjaGlsZHJlbjpULHN0eWxlOkUsc3R5bGVzOkQsY2xhc3NOYW1lczpPLGNsYXNzTmFtZTprLGNvbnRlbnRDbGFzc05hbWU6QSxlbmQ6aixkZXRhaWw6TSxkZXRhaWxXaWR0aDpOLGRpc2FibGVkOlAsZ2FwOkY9Mixjb2x1bW5HYXA6ZWUscm93R2FwOkk9MSxpbnRlcm1lZGlhcnk6TCxtZWRpYTpSLG1pbkhlaWdodDp6LG1heEhlaWdodDp0ZSxvbkNsaWNrOm5lLG9uS2V5RG93bjpyZSxvbktleVVwOmllLHByaW9yaXR5OmFlLHNlbGVjdGVkOm9lLHRlc3RJRDpzZSx0YXJnZXQ6Y2UsaHJlZjpsZSx0YWJJbmRleDp1ZSxzaG91bGRPdmVyZmxvdzpkZSxzaG91bGRUcnVuY2F0ZTpmZT0hZGUsYWNjZXNzaWJpbGl0eUxhYmVsOnBlLGFjY2Vzc2liaWxpdHlMYWJlbGxlZEJ5Om1lLGFjY2Vzc2liaWxpdHlIaW50OmhlLGlubmVyU3BhY2luZzpnZSxvdXRlclNwYWNpbmc6X2UsYm90dG9tQ29udGVudDp2ZSxiYWNrZ3JvdW5kOnllPWBiZ0FsdGVybmF0ZWB9PW4sYmU9VGsobixReWUpLHhlPXI/P2BkaXZgLHtpbm5lcjpTZSxvdXRlcjpDZX09Zk8oe2lubmVyU3BhY2luZzpnZSxvdXRlclNwYWNpbmc6X2V9KSx7bWFyZ2luWDp3ZX09U2UsVGU9VGsoU2UsJHllKSxFZT0hIWxlLERlPSEhKG5lPz9yZT8/aWUpLE9lPUVlfHxEZSxrZT1WUyhzYmUsZmUmJmNiZSksQWU9KDAsRy51c2VNZW1vKSgoKT0+KHtib3JkZXJlZDpzLGJvcmRlcmVkQm90dG9tOmMsYm9yZGVyZWRFbmQ6bCxib3JkZXJlZEhvcml6b250YWw6dSxib3JkZXJlZFN0YXJ0OmQsYm9yZGVyZWRUb3A6Zixib3JkZXJlZFZlcnRpY2FsOnAsYm9yZGVyQm90dG9tTGVmdFJhZGl1czptLGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOmgsYm9yZGVyQm90dG9tV2lkdGg6Zyxib3JkZXJDb2xvcjpfLGJvcmRlckVuZFdpZHRoOnYsYm9yZGVyUmFkaXVzOnksYm9yZGVyU3RhcnRXaWR0aDpiLGJvcmRlclRvcExlZnRSYWRpdXM6eCxib3JkZXJUb3BSaWdodFJhZGl1czpTLGJvcmRlclRvcFdpZHRoOkMsYm9yZGVyV2lkdGg6d30pLFtzLGMsbCx1LGQsZixwLG0saCxnLF8sdix5LGIseCxTLEMsd10pLGplPSgwLEcudXNlTWVtbykoKCk9Pnt2YXIgZTtsZXQgdD13ayh3ayh3ayh3ayh7fSxBZSkse30se2NsYXNzTmFtZTpWUyhBLE89PW51bGw/dm9pZCAwOk8uY29udGVudENvbnRhaW5lciksdGVzdElEOnNlfSxvZT97YmFja2dyb3VuZDp5ZX06e30pLE9lP1RlOlNlKSx7fSx7c3R5bGU6RD09bnVsbD92b2lkIDA6RC5jb250ZW50Q29udGFpbmVyfSksbj17YWxpZ25JdGVtczpvLGZsZXhHcm93OjEsZ2FwOmVlfHxGLHdpZHRoOmAxMDAlYCxjbGFzc05hbWU6Tz09bnVsbD92b2lkIDA6Ty50b3BDb250ZW50LHN0eWxlOkQ9PW51bGw/dm9pZCAwOkQudG9wQ29udGVudH0scj0oRD09bnVsbHx8KGU9RC5lbmQpPT1udWxsP3ZvaWQgMDplLndpZHRoKT8/TixzPSgwLEsuanN4cykoSy5GcmFnbWVudCx7Y2hpbGRyZW46W1ImJigwLEsuanN4KShKLHtjbGFzc05hbWU6Tz09bnVsbD92b2lkIDA6Ty5tZWRpYSxmbGV4R3JvdzowLGZsZXhTaHJpbms6MCxzdHlsZTpEPT1udWxsP3ZvaWQgMDpELm1lZGlhLGNoaWxkcmVuOlJ9KSwoMCxLLmpzeCkoSix7Y2xhc3NOYW1lOlZTKGtlLE89PW51bGw/dm9pZCAwOk8uY2hpbGRyZW5Db250YWluZXIpLGZsZXhHcm93OjEsZmxleFNocmluazorIXNPKGBzdGFydGAsYWUpLGp1c3RpZnlDb250ZW50OmBmbGV4LXN0YXJ0YCxzdHlsZTpEPT1udWxsP3ZvaWQgMDpELmNoaWxkcmVuQ29udGFpbmVyLGNoaWxkcmVuOlR9KSwhIUwmJigwLEsuanN4KShKLHtjbGFzc05hbWU6VlMoa2UsTz09bnVsbD92b2lkIDA6Ty5pbnRlcm1lZGlhcnkpLGZsZXhHcm93OjAsZmxleFNocmluazorIXNPKGBtaWRkbGVgLGFlKSxqdXN0aWZ5Q29udGVudDpgY2VudGVyYCxzdHlsZTpEPT1udWxsP3ZvaWQgMDpELmludGVybWVkaWFyeSxjaGlsZHJlbjpMfSksISEoaj8/TSkmJigwLEsuanN4KShKLHthbGlnbkl0ZW1zOmBmbGV4LWVuZGAsY2xhc3NOYW1lOlZTKGtlLE89PW51bGw/dm9pZCAwOk8uZW5kKSxmbGV4RGlyZWN0aW9uOmBjb2x1bW5gLGZsZXhHcm93OnI/dm9pZCAwOjEsZmxleFNocmluazpyP3ZvaWQgMDorIXNPKGBlbmRgLGFlKSxqdXN0aWZ5Q29udGVudDpgZmxleC1lbmRgLHN0eWxlOkQ9PW51bGw/dm9pZCAwOkQuZW5kLHdpZHRoOk4sY2hpbGRyZW46aj8/TX0pLCEhKGE/P2kpJiYoMCxLLmpzeCkoSix7Y2xhc3NOYW1lOk89PW51bGw/dm9pZCAwOk8uYWNjZXNzb3J5LGZsZXhHcm93OjAsZmxleFNocmluazowLHN0eWxlOkQ9PW51bGw/dm9pZCAwOkQuYWNjZXNzb3J5LGNoaWxkcmVuOmE/P2l9KV19KTtyZXR1cm4gdmU/KDAsSy5qc3hzKShvTyx3ayh3ayh7YWxpZ25JdGVtczpgc3RyZXRjaGAsZmxleEdyb3c6MSxnYXA6SSx3aWR0aDpgMTAwJWB9LHQpLHt9LHtjaGlsZHJlbjpbKDAsSy5qc3gpKGlPLHdrKHdrKHt9LG4pLHt9LHtjaGlsZHJlbjpzfSkpLCgwLEsuanN4KShKLHtjbGFzc05hbWU6Tz09bnVsbD92b2lkIDA6Ty5ib3R0b21Db250ZW50LHN0eWxlOkQ9PW51bGw/dm9pZCAwOkQuYm90dG9tQ29udGVudCxjaGlsZHJlbjp2ZX0pXX0pKTooMCxLLmpzeCkoaU8sd2sod2sod2soe30sbiksdCkse30se2NoaWxkcmVuOnN9KSl9LFtBZSxBLE89PW51bGw/dm9pZCAwOk8uY29udGVudENvbnRhaW5lcixPPT1udWxsP3ZvaWQgMDpPLnRvcENvbnRlbnQsTz09bnVsbD92b2lkIDA6Ty5tZWRpYSxPPT1udWxsP3ZvaWQgMDpPLmNoaWxkcmVuQ29udGFpbmVyLE89PW51bGw/dm9pZCAwOk8uaW50ZXJtZWRpYXJ5LE89PW51bGw/dm9pZCAwOk8uZW5kLE89PW51bGw/dm9pZCAwOk8uYWNjZXNzb3J5LE89PW51bGw/dm9pZCAwOk8uYm90dG9tQ29udGVudCxzZSxvZSx5ZSxPZSxUZSxTZSxEPT1udWxsP3ZvaWQgMDpELmNvbnRlbnRDb250YWluZXIsRD09bnVsbD92b2lkIDA6RC50b3BDb250ZW50LEQ9PW51bGw/dm9pZCAwOkQubWVkaWEsRD09bnVsbD92b2lkIDA6RC5jaGlsZHJlbkNvbnRhaW5lcixEPT1udWxsP3ZvaWQgMDpELmludGVybWVkaWFyeSxEPT1udWxsP3ZvaWQgMDpELmVuZCxEPT1udWxsP3ZvaWQgMDpELmFjY2Vzc29yeSxEPT1udWxsP3ZvaWQgMDpELmJvdHRvbUNvbnRlbnQsbyxlZSxGLFIsa2UsYWUsVCxMLGosTSxOLGksYSx2ZSxJXSksTWU9KDAsRy51c2VNZW1vKSgoKT0+e2xldCBlPXdrKHdrKHtub1NjYWxlT25QcmVzczohMCx0cmFuc3BhcmVudFdoaWxlSW5hY3RpdmU6ITAsYWNjZXNzaWJpbGl0eUhpbnQ6aGUsYWNjZXNzaWJpbGl0eUxhYmVsOnBlLGFjY2Vzc2liaWxpdHlMYWJlbGxlZEJ5Om1lLGJhY2tncm91bmQ6YGJnYH0sQWUpLHt9LHtjbGFzc05hbWU6VlMoYWJlLG9iZSxPPT1udWxsP3ZvaWQgMDpPLnByZXNzYWJsZSksZGlzYWJsZWQ6UCxtYXJnaW5YOndlLG9uQ2xpY2s6bmUsb25LZXlEb3duOnJlLG9uS2V5VXA6aWUsdGFiSW5kZXg6dWUsdGVzdElEOnNlJiZgJHtzZX0tY2VsbC1wcmVzc2FibGVgLHN0eWxlOkQ9PW51bGw/dm9pZCAwOkQucHJlc3NhYmxlfSk7cmV0dXJuIEVlPygwLEsuanN4KShTayx3ayh3ayh7YXM6YGFgLGhyZWY6bGUsdGFyZ2V0OmNlfSxlKSx7fSx7Y2hpbGRyZW46amV9KSk6RGU/KDAsSy5qc3gpKFNrLHdrKHdrKHthczpgYnV0dG9uYH0sZSkse30se2NoaWxkcmVuOmplfSkpOmplfSxbaGUscGUsbWUsQWUsTz09bnVsbD92b2lkIDA6Ty5wcmVzc2FibGUsUCx3ZSxuZSxyZSxpZSx1ZSxzZSxEPT1udWxsP3ZvaWQgMDpELnByZXNzYWJsZSxFZSxsZSxjZSxqZSxEZV0pO3JldHVybigwLEsuanN4KShKLHdrKHdrKHdrKHtyZWY6dCxhbGlnbkl0ZW1zOmBzdHJldGNoYCxhczp4ZSxjbGFzc05hbWU6VlMoaWJlLGssTz09bnVsbD92b2lkIDA6Ty5yb290KSxtYXhIZWlnaHQ6dGUsbWluSGVpZ2h0Onosc3R5bGU6d2sod2soe30sRSksRD09bnVsbD92b2lkIDA6RC5yb290KSx3aWR0aDpgMTAwJWB9LENlKSxiZSkse30se2NoaWxkcmVuOk1lfSkpfSkpLERrPWU9PmZDKCk/KGU/P2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZGlyPT09YHJ0bGA6ITEsbGJlPVtgdHlwZWBdO2Z1bmN0aW9uIE9rKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24ga2soZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/T2soT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ViZShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpPayhPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gdWJlKGUsdCxuKXtyZXR1cm4odD1kYmUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gZGJlKGUpe3ZhciB0PWZiZShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBmYmUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBwYmUoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT1tYmUoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIG1iZShlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluZGV4T2YocikhPT0tMSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59dmFyIGhiZT1gYWNjZXNzb3J5YCxBaz0oMCxHLm1lbW8pKCgwLEcuZm9yd2FyZFJlZikoZnVuY3Rpb24oZSx0KXtsZXQgbj1HUyhgQ2VsbEFjY2Vzc29yeWAsZSkse3R5cGU6cn09bixpPXBiZShuLGxiZSksYTtyZXR1cm4gcj09PWBtb3JlYCYmKGE9KDAsSy5qc3gpKG5PLHtjb2xvcjpgZmdNdXRlZGAsbmFtZTpgbW9yZWAsc2l6ZTpgc2B9KSkscj09PWBhcnJvd2AmJihhPSgwLEsuanN4KShuTyx7Y29sb3I6YGZnTXV0ZWRgLG5hbWU6RGsoKT9gY2FyZXRMZWZ0YDpgY2FyZXRSaWdodGAsc2l6ZTpgc2B9KSkscj09PWBzZWxlY3RlZGAmJihhPSgwLEsuanN4KShuTyx7Y29sb3I6YGZnUHJpbWFyeWAsbmFtZTpgY2hlY2ttYQ=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_xS4NDGm72.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.609Z","timestamp":1785108244609,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_xS4NDGm72.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 383\r\nlast-modified: Tue, 23 Jun 2026 21:00:49 GMT\r\netag: \"ef5ce5725b0e356c2e35f268abe44cfc\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 9ed190c9d6b2f812d19cbb317856ed88.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: FRA60-P6\r\nx-amz-cf-id: ZHRjgsySJiS1ieDWLXEU3oO_NHsNkN20Kq8EFVf4qGEUe-nOAXRyDQ==\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 2859207\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=b%2BdxKloG6g8KjULKCvsVaHT8O5654c1ehZTA9gCcr4DiI7oMaOHSI3BMT1LNXR1WWNwkiaqIStCTn7fsY3qIEG4fYHMb8wj%2F4%2B4ndiEHcD5I1G9OZoB1ydZSmS9qt9UWe3gW%2FgEKp%2BXLK4pILMdO\"}]}\r\ncf-ray: a21727e0ddf70883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":692,"size_decoded":1543,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (652)","md5":"925188da3ac7e6a81e662fb7b2bda272","sha1":"594e98cff44b2ac0e3ec4891e230cd7c969b5aec","sha256":"15c6363c90507e29eda35bafe9938a007842340f4432c4030535cad8894b7f73","sha512":"7d3c8aa9677cb640f84ebfef502d9caf7a20b47cd3ede4b50495c64979c7653a11fc644a1c32a96c7baba5e1199fca8995fc8bb409a2f1043079329daaac3ddb","ssdeep":"","tlshash":"5701f4c9f6f412ad415022bdd0265780735c2257d39dce20f26885fd03b3a898c01f87","first_seen":"2026-06-29T23:42:00.348113Z","last_seen":"2026-07-26T23:25:46.908566Z","times_seen":7,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDYyNTMxYmY2LWZkNTUtNDIxMS1iNzcxLTljMmE4M2FkMzc4ZmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTYyNTMxYmY2LWZkNTUtNDIxMS1iNzcxLTljMmE4M2FkMzc4ZmApfSkoKX1jYXRjaHt9dmFyIGU9e2Zvcm1hdDpgZm1gLHF1YWxpdHk6YHFgLHdpZHRoOmB3YCxoZWlnaHQ6YGhgLHByb2dyZXNzaXZlOmBmbGAsZml0OmBmaXRgLGZvY3VzOmBmYCxyYWRpdXM6YHJgLGJhY2tncm91bmRDb2xvcjpgYmdgfTtmdW5jdGlvbiB0KHQsbil7bGV0IHI9W107cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZvckVhY2godD0+e2lmKHQ9PT1gcHJvZ3Jlc3NpdmVgKW5bdF0mJnIucHVzaChgZmw9cHJvZ3Jlc3NpdmVgKTtlbHNle2xldCBpPWVbdF07ci5wdXNoKGAke2l9PSR7blt0XX1gKX19KSxgJHt0fT8ke3Iuam9pbihgJmApfWB9ZXhwb3J0e3R9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX3hTNE5ER203Mi5qcy5tYXA="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CMyhKJrW2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:05.618Z","timestamp":1785108245618,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CMyhKJrW2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/assets/sw-cache/e_CrqRW1wP.js\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:05 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Thu, 23 Jul 2026 16:20:28 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"092fab6cf95b4f0b1118cd92b6db3fe9\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 236fbed8f1be57bca7880d295ff3916c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: qeGAhsAwzQyD5D-W-mL8FgPCHTfDST2U0rqtTKhsRmNIUYnRyOMc8g==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 284064\r\nexpires: Tue, 27 Jul 2027 05:12:51 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=syAWnHWaKBoQ71RMdEUTFrouFuBd2TjX3IeuFaMDSLI7XdGS1ebFVHB3RAJBMMK%2F%2BAo9taJnu5Z0kOf09LTLBk1ECGQ0x69S1BtH50IZeDK9t7Emv2sVNiXNYFAA9VlGP8WrpmLqc9MgpZ%2FW%2BFgP\"}]}\r\ncf-ray: a21727e719950883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":285629,"size_decoded":62312,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (33406)","md5":"092fab6cf95b4f0b1118cd92b6db3fe9","sha1":"d96deaf58cd341cbdbd54659db0f4bad74012fee","sha256":"644770d00abc6a40ee8e234d03ee528303ea41cfbc32272857c961ea0853b3e5","sha512":"b5d54502ea48a53e3658369c23b21448626d916cc4d38fd1e117d7fa24a48c728bf9396732d50ebef1590dc338cbe43c51feb4437b6fc9ee2640e3db54a4694d","ssdeep":"6144:qvF7CadiLSzctN7Ep+sGLz7Lz7FWufrkcEWuI:bEpPelrV","tlshash":"18540ad2e16130f8dcaf2137a9688ba62fb06242a4d362f695d514790742f89f353f7c","first_seen":"2026-07-26T23:24:50.203435Z","last_seen":"2026-07-26T23:25:46.819754Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGJiNDY3NWM2LTBhNDAtNDFjOC1hM2Q1LTViMzEzMGZjYTU4OGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWJiNDY3NWM2LTBhNDAtNDFjOC1hM2Q1LTViMzEzMGZjYTU4OGApfSkoKX1jYXRjaHt9dmFyIGU9eyIwMGMyNDMzMmY3MTg5ODg0ZWJlM2FjZWI4OGM2ZDI1MmI3MWJjOGJkZDQ4Y2RmOTMyZWJiYThkOTFjNzkxZmRhIjpgbXV0YXRpb24gdXNlUmVkdWNlUG9zaXRpb25BVFNNdXRhdGlvbigkaW5wdXQ6UmVkdWNlUG9zaXRpb25JbnB1dCEpe3JlZHVjZVBvc2l0aW9uKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBSZWR1Y2VQb3NpdGlvblN1Y2Nlc3N7X190eXBlbmFtZSxvcmRlcnt1dWlkLHByb2R1Y3RJZCxjbGllbnRPcmRlcklkLHNpZGUsaWR9LHJlZHVjZURldGFpbHN7c291cmNlQW1vdW50LHRhcmdldEFtb3VudCxzb3VyY2VQb3NpdGlvblNpZGUsdGFyZ2V0UG9zaXRpb25TaWRlLHJlZHVjZU9yZGVyQ29uZmlndXJhdGlvbntsaW1pdEdvb2RUaWxsQ2FuY2Vse2Jhc2VTaXplLGxpbWl0UHJpY2UscG9zdE9ubHl9fX19LC4uLm9uIFBvc2l0aW9uT3BlcmF0aW9uRXJyb3J7X190eXBlbmFtZSxjb3JyZWxhdGlvbklkLG1lc3NhZ2UsY29kZSxvcGVyYXRpb259fX1gLCIwMWYxMzcwODExMWJiMDg0NjVkMzg2MWU4NTRmYjVlZjJmNzc5ZjdlMTA4Y2JkZDE1NTM4ZjNlYjUyZTY4YmJiIjpgcXVlcnkgQ29udmVyc2lvblRvb2xDb252ZXJ0ZXJSZWRlc2lnbkZyYWdtZW50UmVmZXRjaFF1ZXJ5KCRiYXNlU3ltYm9sOlN0cmluZyEsJGNvdW50cnk6U3RyaW5nISwkc2tpcEZldGNoaW5nQ3VycmVuY3k6Qm9vbGVhbiEsJHNraXBGZXRjaGluZ1NlY29uZEFzc2V0OkJvb2xlYW4hLCR0YXJnZXRDdXJyZW5jeTpUaWNrZXJTeW1ib2whLCR0YXJnZXRTeW1ib2w6U3RyaW5nISl7Li4uQ29udmVyc2lvblRvb2xDb252ZXJ0ZXJSZWRlc2lnbkZyYWdtZW50XzJVQ0RsQn1mcmFnbWVudCBDb252ZXJzaW9uVG9vbENvbnZlcnRlclJlZGVzaWduRnJhZ21lbnRfMlVDRGxCIG9uIFF1ZXJ5e2Fzc2V0QnlTeW1ib2woc3ltYm9sOiRiYXNlU3ltYm9sKXtuYW1lLGRpc3BsYXlTeW1ib2wsbGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTokdGFyZ2V0Q3VycmVuY3kpQHNraXAoaWY6JHNraXBGZXRjaGluZ0N1cnJlbmN5KXtwcmljZSxxdW90ZUN1cnJlbmN5LHRpbWVzdGFtcCxpZH0saW1hZ2VVcmwsc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeSl7aXNUcmFkYWJsZSxpc0RleCxpc1dhbGxldH0sY29pbk1hcmtldENhcElkLGNvaW5HZWNrb0lkLGlkfSxhc3NldDI6YXNzZXRCeVN5bWJvbChzeW1ib2w6JHRhcmdldFN5bWJvbClAc2tpcChpZjokc2tpcEZldGNoaW5nU2Vjb25kQXNzZXQpe2ltYWdlVXJsLGlkfX1gLCIwMzA2YmQ5YjA4YTA2ODQ2MDgxZjA4ZDUxMmIyMWVjOTdjNTQwMzQ5MjQ0MmM4YjVmOTQ3N2RkYzQwZGM5ZGUwIjpgcXVlcnkgUHJlZGljdGlvbnNKb2luQ29udGVudFF1ZXJ5KCRyZWZlcnJhbENvZGU6U3RyaW5nISwkbWV0YWRhdGFLZXk6U3RyaW5nISl7Li4uUHJlZGljdGlvbnNKb2luSGVyb0ZyYWdtZW50LC4uLnVzZVByZWRpY3Rpb25Kb2luUGFnZVVpQ29udGVudEZyYWdtZW50LC4uLlByZWRpY3Rpb25zSm9pbkV4cGVydFNlY3Rpb25GcmFnbWVudH1mcmFnbWVudCBQcmVkaWN0aW9uc0pvaW5FeHBlcnRTZWN0aW9uRnJhZ21lbnQgb24gUXVlcnl7Li4udXNlUHJlZGljdGlvbkpvaW5QYWdlVWlDb250ZW50RnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbnNKb2luSGVyb0ZyYWdtZW50IG9uIFF1ZXJ5ey4uLnVzZVByZWRpY3Rpb25Kb2luUGFnZVVpQ29udGVudEZyYWdtZW50fWZyYWdtZW50IHVzZVByZWRpY3Rpb25Kb2luUGFnZVVpQ29udGVudEZyYWdtZW50IG9uIFF1ZXJ5e3VpQ29tcG9uZW50c0J5U3VyZmFjZUxvZ2dlZE91dChzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfUFJFRElDVElPTl9NQVJLRVRfUkVGRVJSQUxTIixjYXRlZ29yeU5hbWVzOlsiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX1BSRURJQ1RJT05fTUFSS0VUX1JFRkVSUkFMU19KT0lOIl0sZmlsdGVyOnt2YXJpYWJsZXNGaWx0ZXI6e3RleHRWYXJpYWJsZXM6e2VudHJpZXM6W3trZXk6InJlZmVyX2NvZGUiLHZhbHVlOiRyZWZlcnJhbENvZGV9LHtrZXk6Im1ldGFkYXRhX2tleSIsdmFsdWU6JG1ldGFkYXRhS2V5fV19fX0sc2tpcENhY2hlOnRydWUpe2VkZ2Vze25vZGV7Y29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3RleHRGaWVsZHN7a2V5LHRleHR9LGRlc2NyaXB0aW9uVGV4dEZpZWxke3RleHR9LGltYWdle3VybH19LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGNvbXBvbmVudHN7Y2F0ZWdvcnlOYW1lLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHt0aXRsZVRleHRGaWVsZHt0ZXh0fSx0ZXh0RmllbGRze2tleSx0ZXh0fSxpbWFnZXt1cmx9LGZvb3RlclJpY2hUZXh0RmllbGR7aHRtbFN0cmluZ319LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfSxpZH19LGlkfX1gLCIwMzU2YTNkMjQ4YTgyMDZjOTUzMjBhYWQ0ZWQ3YTcwNzM3YWJiNDAwOTZiNGM1OTI0ZTE2MzJkMGRjMjc5NDY3IjpgcXVlcnkgdXNlQ2hhdEV2ZW50U3Vic2NyaWJlclRlc3RRdWVyeSgkY29udmVyc2F0aW9uVXVpZDpVdWlkISwkZmlyc3Q6SW50ISwkYWZ0ZXI6U3RyaW5nLCRiZWZvcmU6U3RyaW5nLCRsYXN0OkludCl7dmlld2Vye2NvbnZlcnNhdGlvbkJ5VXVpZCh1dWlkOiRjb252ZXJzYXRpb25VdWlkKXtub2Rle2V2ZW50cyhmaXJzdDokZmlyc3QsYWZ0ZXI6JGFmdGVyLGJlZm9yZTokYmVmb3JlLGxhc3Q6JGxhc3Qpe2VkZ2Vze2N1cnNvcixub2Rle19fdHlwZW5hbWUsaWR9fSxwYWdlSW5mb3tlbmRDdXJzb3IsaGFzTmV4dFBhZ2UsaGFzUHJldmlvdXNQYWdlLHN0YXJ0Q3Vyc29yfX0saWR9fSwuLi5DaGF0Qm9keUNvbnZlcnNhdGlvblRocmVhZEZyYWdtZW50XzNIVFpxYyxpZH19ZnJhZ21lbnQgQ2hhdEJvZHlDb252ZXJzYXRpb25UaHJlYWRGcmFnbWVudF8zSFRacWMgb24gVmlld2Vye2NoYXRTdXBwb3J0Q29uZmlnU2V0dGluZ3N7cGlpUmVnZXhMaXN0e2xhYmVsLHJlZ2V4fSxjb25maWdze2tleSx2YWx1ZX19LGNvbnZlcnNhdGlvbkJ5VXVpZCh1dWlkOiRjb252ZXJzYXRpb25VdWlkKXtub2Rle3V1aWQsaXNDbG9zZWQsZXZlbnRzKGZpcnN0OiRmaXJzdCxhZnRlcjokYWZ0ZXIsYmVmb3JlOiRiZWZvcmUsbGFzdDokbGFzdCl7ZWRnZXN7Y3Vyc29yLG5vZGV7aWQsdXVpZCx0eXBlLGNyZWF0ZVRpbWUscGFydGljaXBhbnR7cGFydGljaXBhbnRUeXBlLGlkfSxpblJlcGx5VG9VdWlkLG1lc3NhZ2VDb250ZW50e21lc3NhZ2UsaXNGcmVlVGV4dERpc2FibGVkfSwuLi5NZXNzYWdlVHlwZVRvVUlSZW5kZXJlckZyYWdtZW50LF9fdHlwZW5hbWV9fSxwYWdlSW5mb3tlbmRDdXJzb3IsaGFzTmV4dFBhZ2UsaGFzUHJldmlvdXNQYWdlLHN0YXJ0Q3Vyc29yfX0saWR9fX1mcmFnbWVudCBNZXNzYWdlQnViYmxlRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7aWQsdXVpZCxwYXJ0aWNpcGFudHtpZCxkaXNwbGF5TmFtZSxwYXJ0aWNpcGFudFR5cGV9LGNyZWF0ZVRpbWUsbWVzc2FnZUNvbnRlbnR7bWVzc2FnZSxyZXBsaWVze2xhYmVsLGxpbmssbWVzc2FnZVRvUHVibGlzaH0scmVmZXJlbmNlTGlua3N7dGl0bGUsbGlua30saXNSZWFjdGlvbnNFbmFibGVkLGV4dHJhRWxlbWVudFR5cGUsZXh0cmFFbGVtZW50UGF5bG9hZH0sZmlsZXNNZXRhZGF0YXtmaWxlc3thdHRhY2htZW50SWQsZmlsZU5hbWV9fX1mcmFnbWVudCBNZXNzYWdlVHlwZVRvVUlSZW5kZXJlckZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e3R5cGUsLi4uTWVzc2FnZUJ1YmJsZUZyYWdtZW50LC4uLlBhcnRpY2lwYW50QnViYmxlRnJhZ21lbnR9ZnJhZ21lbnQgUGFydGljaXBhbnRCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtwYXJ0aWNpcGFudHtkaXNwbGF5TmFtZSxwYXJ0aWNpcGFudFR5cGUsaWR9fWAsIjA1OTEzYzBmZThmOWVlYWFkNDMwNmIyZGM5NzNiMWMwOWQ4Zjk2OTYwNjc4ZmVlOGRhYmI1MWIxY2RhNzM0MDIiOmBxdWVyeSBFeHBsb3JlUXVlcnkoJGN1cnJlbmN5OlRpY2tlclN5bWJvbCEsJGJ0Y1VVSUQ6VXVpZCEsJGV0aFVVSUQ6VXVpZCEsJGNvdW50cnk6U3RyaW5nISwkY291bnRyeUNvZGU6U3RyaW5nISwkc3VwcG9ydGVkTG9jYWxlOlN1cHBvcnRlZExvY2FsZSEsJGZpbHRlcjpBc3NldFNlYXJjaEZpbHRlciEsJGxpbWl0OkludCEsJG9yZGVyOlNvcnRPcmRlciEsJHJlc29sdXRpb246U2VhcmNoUmVzb2x1dGlvbiEsJHNvcnQ6QXNzZXRTZWFyY2hTb3J0ISwkcGFnZTpJbnQhLCRza2lwU3BhcmtsaW5lczpCb29sZWFuISwkc2VsZWN0ZWRIb3VyUHJpY2VzOkJvb2xlYW4hLCRzZWxlY3RlZERheVByaWNlczpCb29sZWFuISwkc2VsZWN0ZWRXZWVrUHJpY2VzOkJvb2xlYW4hLCRzZWxlY3RlZE1vbnRoUHJpY2VzOkJvb2xlYW4hLCRzZWxlY3RlZFllYXJQcmljZXM6Qm9vbGVhbiEsJHNob3VsZFVzZVVBU0ZpZWxkczpCb29sZWFuISwkaXNFeHBsb3JlVjI6Qm9vbGVhbiEpey4uLkV4cGxvcmVDb250ZW50RnJhZ21lbnRAc2tpcChpZjokaXNFeHBsb3JlVjIpLC4uLkV4cGxvcmVWMkNvbnRlbnRGcmFnbWVudEBpbmNsdWRlKGlmOiRpc0V4cGxvcmVWMil9ZnJhZ21lbnQgQ29pbjUwSW5mb0ZyYWdtZW50IG9uIFF1ZXJ5ey4uLnVzZU1hcmtldEhlYWx0aEZyYWdtZW50X1AwYXpRfWZyYWdtZW50IENyeXB0b1ByaWNlc1RhYmxlRnJhZ21lbnQgb24gUXVlcnl7Li4udXNlTG9nZ2VkT3V0VXNkY1Jld2FyZEZyYWdtZW50LGdlbmVyaWNTZWFyY2hBc3NldHMoY291bnRyeTokY291bnRyeSxmaWx0ZXI6JGZpbHRlcixmaXJzdDokbGltaXQsb3JkZXI6JG9yZGVyLHJlc29sdXRpb246JHJlc29sdXRpb24sc29ydDokc29ydCxwYWdlOiRwYWdlKXt0b3RhbEFzc2V0Q291bnQsLi4uUHJpY2VzVGFibGVGcmFnbWVudH19ZnJhZ21lbnQgQ3J5cHRvUHJpY2VzVGFibGVXcmFwcGVyRXhwbG9yZUZyYWdtZW50IG9uIFF1ZXJ5ey4uLkNyeXB0b1ByaWNlc1RhYmxlRnJhZ21lbnR9ZnJhZ21lbnQgRGVzY3JpcHRpb25GcmFnbWVudCBvbiBRdWVyeXt3ZWVrbHlNYXJrZXRIZWFsdGhIZWFkZXI6bWFya2V0SGVhbHRoVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kscmVzb2x1dGlvbjpXRUVLKXttYXJrZXRDYXBTdGF0c3twZXJjZW50Q2hhbmdlLHZhbHVlfX0sZGFpbHlNYXJrZXRIZWFsdGhIZWFkZXI6bWFya2V0SGVhbHRoVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe21hcmtldENhcFN0YXRze3BlcmNlbnRDaGFuZ2V9fSx0b3BHYWluZXJzSGVhZGVyOnNlYXJjaEFzc2V0c1YyKGZpcnN0OjMsc29ydDpQRVJDRU5UX0NIQU5HRSxmaWx0ZXI6VE9QX0dBSU5FUlMsb3JkZXI6REVTQyl7ZWRnZXN7bm9kZXtuYW1lLGlkfX19LGJ0Y0hlYWRlcjphc3NldEJ5VXVpZCh1dWlkOiRidGNVVUlEKXttYXJrZXRDYXBWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSksdm9sdW1lUGVyY2VudENoYW5nZTI0aFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSxpZH0sZXRoSGVhZGVyOmFzc2V0QnlVdWlkKHV1aWQ6JGV0aFVVSUQpe21hcmtldENhcFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSx2b2x1bWVQZXJjZW50Q2hhbmdlMjRoVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLGlkfX1mcmFnbWVudCBFeHBsb3JlQ29udGVudEZyYWdtZW50IG9uIFF1ZXJ5ey4uLlNlYXJjaFdyYXBwZXJFeHBsb3JlRnJhZ21lbnQsLi4uTWFya2V0U3RhdHNDYXJvdXNlbEV4cGxvcmVGcmFnbWVudCwuLi5DcnlwdG9QcmljZXNUYWJsZVdyYXBwZXJFeHBsb3JlRnJhZ21lbnQsLi4uVG9wTW92ZXJzRXhwbG9yZUZyYWdtZW50LC4uLk5ld09uQ29pbmJhc2VFeHBsb3JlRnJhZ21lbnQsLi4uVHJlbmRpbmdFeHBsb3JlRnJhZ21lbnR9ZnJhZ21lbnQgRXhwbG9yZVYyQ29udGVudEZyYWdtZW50IG9uIFF1ZXJ5ey4uLk1hcmtldFN0YXRzUm93RXhwbG9yZVYyRnJhZ21lbnQsLi4uUHJpY2VzVGFibGVWMldyYXBwZXJGcmFnbWVudCwuLi5Nb2JpbGVUb3BTZWFyY2hlc0xpc3RGcmFnbWVudCwuLi5Ub3BNb3ZlcnNDYXJkVjJGcmFnbWVudCwuLi5OZXdPbkNvaW5iYXNlQ2FyZFYyRnJhZ21lbnR9ZnJhZ21lbnQgTWFya2V0U3RhdHNDYXJvdXNlbEV4cGxvcmVGcmFnbWVudCBvbiBRdWVyeXttYXJrZXRIZWFsdGhWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSxyZXNvbHV0aW9uOkRBWSl7bWFya2V0Q2FwU3RhdHN7dmFsdWUscGVyY2VudENoYW5nZX0sdHJhZGluZ1ZvbHVtZVN0YXRze3ZhbHVlLHBlcmNlbnRDaGFuZ2V9LGJ1eWVyU2VsbGVyUmF0aW97dmFsdWUscGVyY2VudENoYW5nZX0sYnRjRG9taW5hbmNlU3RhdHN7dmFsdWUscGVyY2VudENoYW5nZX19LG1hcmtldENhcENoYXJ0Om1hcmtldFN0YXRzKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5LGZpbHRlcjpNQVJLRVRfQ0FQKXtzdGF0c0J5RGF5e3F1b3RlVmFsdWVzfX0sdHJhZGVWb2x1bWVDaGFydDptYXJrZXRTdGF0cyhxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSxmaWx0ZXI6VFJBREVfVk9MVU1FKXtzdGF0c0J5RGF5e3F1b3RlVmFsdWVzfX0sYnV5U2VsbFJhdGlvQ2hhcnQ6bWFya2V0U3RhdHMocXVvdGVDdXJyZW5jeTokY3VycmVuY3ksZmlsdGVyOkJVWUVSX1NFTExFUl9SQVRJTyl7c3RhdHNCeURheXtxdW90ZVZhbHVlc319LGJ0Y0RvbWluYW5jZUNoYXJ0Om1hcmtldFN0YXRzKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5LGZpbHRlcjpCVENfRE9NSU5BTkNFKXtzdGF0c0J5RGF5e3F1b3RlVmFsdWVzfX0sbWFya2V0U3RhdHNFeHBsb3JlU3VyZmFjZTp1aUNvbXBvbmVudHNCeVN1cmZhY2Uoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX0VYUExPUkVfTE9HR0VEX09VVF9NQVJLRVRfU1RBVFMiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfTUFSS0VUX1NUQVRTX0NBUk9VU0VMIl0pe2VkZ2Vze25vZGV7Y29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e2tleSx0aXRsZVRleHRGaWVsZHt0ZXh0fX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH0sLi4uRGVzY3JpcHRpb25GcmFnbWVudH1mcmFnbWVudCBNYXJrZXRTdGF0c1Jvd0V4cGxvcmVWMkZyYWdtZW50IG9uIFF1ZXJ5e21hcmtldEhlYWx0aFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5LHJlc29sdXRpb246REFZKXttYXJrZXRDYXBTdGF0c3t2YWx1ZSxwZXJjZW50Q2hhbmdlfSxidGNEb21pbmFuY2VTdGF0c3t2YWx1ZSxwZXJjZW50Q2hhbmdlfSx0cmFkaW5nVm9sdW1lU3RhdHN7dmFsdWUscGVyY2VudENoYW5nZX0sYnV5ZXJTZWxsZXJSYXRpb3t2YWx1ZSxwZXJjZW50Q2hhbmdlfX19ZnJhZ21lbnQgTW9iaWxlVG9wU2VhcmNoZXNMaXN0RnJhZ21lbnQgb24gUXVlcnl7Z2VuZXJpY1NlYXJjaEFzc2V0cyhjb3VudHJ5OiRjb3VudHJ5LGZpbHRlcjokZmlsdGVyLGZpcnN0OiRsaW1pdCxvcmRlcjokb3JkZXIscmVzb2x1dGlvbjokcmVzb2x1dGlvbixzb3J0OiRzb3J0LHBhZ2U6JHBhZ2Upe2VkZ2Vze25vZGV7aWQsc3ltYm9sLHNsdWcsbmFtZSxpbWFnZVVybCxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cHJpY2UsaWR9LC4uLlBlcmNlbnRDaGFuZ2VUZXh0RnJhZ21lbnQsLi4uU3BhcmtsaW5lV3JhcHBlckZyYWdtZW50fX19fWZyYWdtZW50IE5ld09uQ29pbmJhc2VDYXJkVjJGcmFnbWVudCBvbiBRdWVyeXtyZWNlbnRseUxpc3RlZFYyOnNlYXJjaEFzc2V0c1YyKGZpcnN0OjgsZmlsdGVyOlJFQ0VOVExZX0xJU1RFRF8zX01PTlRIUyl7ZWRnZXN7bm9kZXt1dWlkLG5hbWUsc2x1ZyxkaXNwbGF5U3ltYm9sLGltYWdlVXJsLGxhdW5jaFRpbWUsaWR9fX19ZnJhZ21lbnQgTmV3T25Db2luYmFzZUV4cGxvcmVGcmFnbWVudCBvbiBRdWVyeXtyZWNlbnRseUxpc3RlZEFzc2V0czpzZWFyY2hBc3NldHNWMihmaXJzdDozLGZpbHRlcjpSRUNFTlRMWV9MSVNURURfM19NT05USFMpe2VkZ2Vze25vZGV7dXVpZCxuYW1lLHNsdWcsaW1hZ2VVcmwsZGlzcGxheVN5bWJvbCxsYXVuY2hUaW1lLGlkfX19fWZyYWdtZW50IFBlcmNlbnRDaGFuZ2VUZXh0RnJhZ21lbnQgb24gQXNzZXR7bGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3BlcmNlbnRDaGFuZ2VzQHNraXAoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7aG91cixkYXksd2Vlayxtb250aCx5ZWFyfSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7aG91cixkYXksd2Vlayxtb250aCx5ZWFyfSxpZH19ZnJhZ21lbnQgUHJpY2VzVGFibGVGcmFnbWVudCBvbiBBc3NldENvbm5lY3Rpb25XaXRoQ291bnR7ZWRnZXN7bm9kZXtpZCxzeW1ib2wsc2x1ZyxuYW1lLGltYWdlVXJsLHZvbHVtZTI0aFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cHJpY2UsaWR9LG1hcmtldENhcFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSxzdXBwb3J0ZWRDb250ZXh0c0ZvckxvY2F0aW9uKGNvdW50cnlDb2RlOiRjb3VudHJ5KXtpc1RyYWRhYmxlLGlzRGV4LGlzV2FsbGV0fSwuLi5QZXJjZW50Q2hhbmdlVGV4dEZyYWdtZW50LC4uLlNwYXJrbGluZVdyYXBwZXJGcmFnbWVudH19fWZyYWdtZW50IFByaWNlc1RhYmxlVjJCb2R5RnJhZ21lbnQgb24gQXNzZXRDb25uZWN0aW9uV2l0aENvdW50e2VkZ2Vze25vZGV7aWQsc3ltYm9sLHNsdWcsbmFtZSxpbWFnZVVybCx2b2x1bWUyNGhWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSksbGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3ByaWNlLHBlcmNlbnRDaGFuZ2VzQHNraXAoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7aG91cixkYXksd2Vlayxtb250aCx5ZWFyfSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7aG91cixkYXksd2Vlayxtb250aCx5ZWFyfSxpZH0sbWFya2V0Q2FwVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLHN1cHBvcnRlZENvbnRleHRzRm9yTG9jYXRpb24oY291bnRyeUNvZGU6JGNvdW50cnkpe2lzVHJhZGFibGUsaXNEZXgsaXNXYWxsZXR9LC4uLlBlcmNlbnRDaGFuZ2VUZXh0RnJhZ21lbnQsLi4uU3BhcmtsaW5lV3JhcHBlckZyYWdtZW50fX19ZnJhZ21lbnQgUHJpY2VzVGFibGVWMldyYXBwZXJGcmFnbWVudCBvbiBRdWVyeXsuLi51c2VMb2dnZWRPdXRVc2RjUmV3YXJkRnJhZ21lbnQsZ2VuZXJpY1NlYXJjaEFzc2V0cyhjb3VudHJ5OiRjb3VudHJ5LGZpbHRlcjokZmlsdGVyLGZpcnN0OiRsaW1pdCxvcmRlcjokb3JkZXIscmVzb2x1dGlvbjokcmVzb2x1dGlvbixzb3J0OiRzb3J0LHBhZ2U6JHBhZ2Upe3RvdGFsQXNzZXRDb3VudCwuLi5QcmljZXNUYWJsZVYyQm9keUZyYWdtZW50fX1mcmFnbWVudCBTZWFyY2hDb250ZW50RnJhZ21lbnQgb24gUXVlcnl7Li4uQ29pbjUwSW5mb0ZyYWdtZW50fWZyYWdtZW50IFNlYXJjaFdyYXBwZXJFeHBsb3JlRnJhZ21lbnQgb24gUXVlcnl7Li4uU2VhcmNoQ29udGVudEZyYWdtZW50fWZyYWdtZW50IFNwYXJrbGluZVdyYXBwZXJGcmFnbWVudCBvbiBBc3NldHtwcmljZURhdGFGb3JIb3VyVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpQGluY2x1ZGUoaWY6JHNlbGVjdGVkSG91clByaWNlcyl7cXVvdGVzQHNraXAoaWY6JHNraXBTcGFya2xpbmVzKXtwcmljZX19LHByaWNlRGF0YUZvckRheVYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KUBpbmNsdWRlKGlmOiRzZWxlY3RlZERheVByaWNlcyl7cXVvdGVzQHNraXAoaWY6JHNraXBTcGFya2xpbmVzKXtwcmljZX19LHByaWNlRGF0YUZvcldlZWtWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSlAaW5jbHVkZShpZjokc2VsZWN0ZWRXZWVrUHJpY2VzKXtxdW90ZXNAc2tpcChpZjokc2tpcFNwYXJrbGluZXMpe3ByaWNlfX0scHJpY2VEYXRhRm9yTW9udGhWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSlAaW5jbHVkZShpZjokc2VsZWN0ZWRNb250aFByaWNlcyl7cXVvdGVzQHNraXAoaWY6JHNraXBTcGFya2xpbmVzKXtwcmljZX19LHByaWNlRGF0YUZvclllYXJWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSlAaW5jbHVkZShpZjokc2VsZWN0ZWRZZWFyUHJpY2VzKXtxdW90ZXNAc2tpcChpZjokc2tpcFNwYXJrbGluZXMpe3ByaWNlfX0sY29sb3J9ZnJhZ21lbnQgVG9wTW92ZXJzQ2FyZFYyRnJhZ21lbnQgb24gUXVlcnl7dG9wTW92ZXJzVjI6c2VhcmNoQXNzZXRzVjIoZmlyc3Q6OCxzb3J0OlBFUkNFTlRfQ0hBTkdFLGZpbHRlcjpUT1BfTU9WRVJTLG9yZGVyOkRFU0Mpe2VkZ2Vze25vZGV7dXVpZCxzbHVnLG5hbWUsZGlzcGxheVN5bWJvbCxpbWFnZVVybCxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cHJpY2UscGVyY2VudENoYW5nZXNAc2tpcChpZjokc2hvdWxkVXNlVUFTRmllbGRzKXtkYXl9LHBlcmNlbnRDaGFuZ2VzVjJAaW5jbHVkZShpZjokc2hvdWxkVXNlVUFTRmllbGRzKXtkYXl9LGlkfSxpZH19fX1mcmFnbWVudCBUb3BNb3ZlcnNFeHBsb3JlRnJhZ21lbnQgb24gUXVlcnl7c2VhcmNoQXNzZXRzVjIoZmlyc3Q6OCxzb3J0OlBFUkNFTlRfQ0hBTkdFLGZpbHRlcjpUT1BfTU9WRVJTLG9yZGVyOkRFU0Mpe2VkZ2Vze25vZGV7dXVpZCxzbHVnLGRpc3BsYXlTeW1ib2wsaW1hZ2VVcmwsbGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3ByaWNlLHBlcmNlbnRDaGFuZ2VzQHNraXAoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxpZH0saWQsX190eXBlbmFtZX0sY3Vyc29yfSxwYWdlSW5mb3tlbmRDdXJzb3IsaGFzTmV4dFBhZ2V9fX1mcmFnbWVudCBUcmVuZGluZ0V4cGxvcmVGcmFnbWVudCBvbiBRdWVyeXtkYWlseU1vc3RWaWV3ZWRBc3NldHMoc3VwcG9ydGVkTG9jYWxlOiRzdXBwb3J0ZWRMb2NhbGUpe3JhbmssbW92ZW1lbnRQZXJjZW50LGFzc2V0e2lkLG5hbWUsc2x1ZyxpbWFnZVVybCxkaXNwbGF5U3ltYm9sfX19ZnJhZ21lbnQgdXNlTG9nZ2VkT3V0VXNkY1Jld2FyZEZyYWdtZW50IG9uIFF1ZXJ5ey4uLnVzZVVTRENDdXN0b21EYXRhfWZyYWdtZW50IHVzZU1hcmtldEhlYWx0aEZyYWdtZW50X1AwYXpRIG9uIFF1ZXJ5e21hcmtldEhlYWx0aDptYXJrZXRIZWFsdGhWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSxyZXNvbHV0aW9uOkRBWSl7bWFya2V0Q2FwU3RhdHN7cGVyY2VudENoYW5nZX19LHJldGFpbEludHhVbmF1dGhlZHtpbmRleEJ5U3ltYm9sKHN5bWJvbDoiQ09JTjUwIil7cHJpY2UyNEhyUGVyY2VudH19fWZyYWdtZW50IHVzZVVTRENDdXN0b21EYXRhIG9uIFF1ZXJ5e3Jld2FyZHNPcmNoZXN0cmF0aW9uUHJvZ3JhbVJld2FyZFJhdGVGb3JMb2dvdXRQYWdlKGN1cnJlbmN5OiJVU0RDIixwbGF0Zm9ybTpSRVRBSUwsY291bnRyeUNvZGU6JGNvdW50cnlDb2RlKXtiYXNlUmF0ZSxnZW9Qcm9tb1JhdGUsY2JPbmVSYXRlfX1gLCIwNzk3YWIxNTYwZjZiNjU2NzNkM2RkN2FiNjU5NjVhYTIxNTRhNThiZDc5ZGFiZmIwMWNlZjU0MmRlMDZhNGNmIjpgcXVlcnkgdXNlSGFzT3Blbk9yZGVyc09yRXhpc3RpbmdQb3NpdGlvbnNBVFNRdWVyeSgkc2tpcFBlcnBzVHJhZGluZzpCb29sZWFuISwkcHJvZHVjdElkOlRoaXJkUGFydHlJZFN0cmluZywkc29ydEJ5OlBlcnBldHVhbEZ1dHVyZVBvc2l0aW9uc1VwZGF0ZWRWMlNvcnRCeUlucHV0LCRzb3J0RGlyZWN0aW9uOlNvcnRPcmRlcklucHV0KXsuLi51c2VIYXNPcGVuT3JkZXJzT3JFeGlzdGluZ1Bvc2l0aW9uc0FUU0ZyYWdtZW50fWZyYWdtZW50IHVzZUhhc09wZW5PcmRlcnNPckV4aXN0aW5nUG9zaXRpb25zQVRTRnJhZ21lbnQgb24gUXVlcnl7dmlld2Vye3BlcnBldHVhbEZ1dHVyZVBvc2l0aW9uc1YyKHByb2R1Y3RJZDokcHJvZHVjdElkLHNvcnRCeTokc29ydEJ5LHNvcnREaXJlY3Rpb246JHNvcnREaXJlY3Rpb24pQHNraXAoaWY6JHNraXBQZXJwc1RyYWRpbmcpe3Bvc2l0aW9uc3thc3NldCxtYXJnaW5UeXBlLGxldmVyYWdlLHNpZGUsbmV0U2l6ZSxpZH0saWR9LGlkfX1gLCIwOWMzN2U1Y2M5ODUwMTlkNDQ5NGI3NzA4MDdiODM4OGEwZjA5YWE1ZWVlZDA0MmE2ZjJmMzIxNmVlMDFlODlkIjpgbXV0YXRpb24gdXNlVU9CVXBkYXRlTm90aWZpY2F0aW9uUHJlZmVyZW5jZU11dGF0aW9uKCRlbmFibGVkOkJvb2xlYW4hKXt1cGRhdGVOb3RpZmljYXRpb25QcmVmZXJlbmNlKGlucHV0Ont0eXBlOkNGVENfRlVUVVJFU19UWVBFLGNoYW5uZWw6U01TLGVuYWJsZWQ6JGVuYWJsZWR9KXtzdWNjZXNzfX1gLCIwOWYwNzc2ZTU1ZDE4MWY5MWI0YmRmYjJmMTI3ZjM1Mjg2MzA4ZDg0Y2JjMDk2MDUwMWQyNWQ5Y2NkNTY4ZDY5IjpgbXV0YXRpb24gdXNlU3VibWl0RnV0dXJlc1RyYWRpbmdTU05NdXRhdGlvbigkaW5wdXQ6U3VibWl0RnV0dXJlc1RyYWRpbmdTU05JbnB1dCEpe3N1Ym1pdEZ1dHVyZXNUcmFkaW5nU1NOKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBTdWJtaXRGdXR1cmVzVHJhZGluZ1NTTlN1Y2Nlc3N7ZHVtbXl9LC4uLm9uIEdlbmVyaWNFcnJvcntjb2RlLG1lc3NhZ2V9fX1gLCIwYWEwYzNhYjM4ZjBjYWFkY2RiNzllMzJhZmFiYTFkM2RlOTY0OTlhYjJiYzA2YmZkNjUxMzQzZGY5NTY3YzBiIjpgbXV0YXRpb24gdXNlUHJvZHVjdFdhdGNobGlzdFJlb3JkZXJNdXRhdGlvbigkcHJvZHVjdElkczpbU3RyaW5nIV0hKXtyZXRhaWxCcm9rZXJhZ2VSZW9yZGVyV2F0Y2hsaXN0KGlucHV0Ontwcm9kdWN0SWRzOiRwcm9kdWN0SWRzfSl7X190eXBlbmFtZSx2aWV3ZXJ7cmV0YWlsQnJva2VyYWdle3Byb2R1Y3RXYXRjaGxpc3R7cHJvZHVjdElkcyxpZH19LGlkfX19YCwiMGJhZDhhMTFiZWIwZjM2MzFkNjgwNmZmOWUxMmUxYzI0M2QyN2NiZGVkYzY4MzgxZDE5YTI2OTJlNTRkY2Q3YSI6YHF1ZXJ5IFBheW1lbnRMaW5rUGFnZVZpZXdlckNvbnRlbnRRdWVyeSgkdXVpZDpVdWlkISl7Li4udXNlUGF5bWVudExpbmtQYWdlQnlVdWlkRnJhZ21lbnRfMjZWU043fWZyYWdtZW50IHVzZVBheW1lbnRMaW5rUGFnZUJ5VXVpZEZyYWdtZW50XzI2VlNONyBvbiBRdWVyeXtwYXltZW50TGlua1BhZ2VCeVV1aWQodXVpZDokdXVpZCl7dXVpZCxzdGF0dXMsbWF4VXNlcyxtaW50Q291bnQscGFpZENvdW50LGlzU29sZE91dCxuZWVkc0J1eWVyTmFtZSxuZWVkc0J1eWVyRW1haWwsbmVlZHNCdXllclBob25lLG5lZWRzQnV5ZXJTaGlwcGluZ0FkZHJlc3MsbmVlZHNCdXllclJlZmVyZW5jZSxzdWNjZXNzUmVkaXJlY3RVcmwsZmFpbFJlZGlyZWN0VXJsLHByb2R1Y3R7bmFtZSxkZXNjcmlwdGlvbixwcmljaW5nTW9kZSxhbW91bnQsbWluaW11bUFtb3VudCxtYXhpbXVtQW1vdW50LGN1cnJlbmN5LGltYWdlVXJsLGlkfSxpZH19YCwiMGMwMTcwNzA0MDUxODYxOTNjODg3ZjAwZjhmNWY0MWM2ZGI3ZDlmNzBkNzYwZWM2Zjk0N2Q0ZGY0Y2ZlZDA3MiI6YHF1ZXJ5IFc4SW5kaWNpYUNoZWNrU3RlcFF1ZXJ5KCRmb3JtSWQ6VGhpcmRQYXJ0eUlkU3RyaW5nISl7dzhJbmRpY2lhKGZvcm1JZDokZm9ybUlkKXt1c0luZGljaWF7aXNEZXRlY3RlZH0sdHJlYXR5SW5kaWNpYXtpc0RldGVjdGVkfX19YCwiMGMwOTRmNTAwMjEyY2ExMzEwYTI1ZDdlYzU4Yjg0YTY5M2NhNGFlODUxNDQwMzhjNjhkZDA5MzY3YmFlM2RhNiI6YHF1ZXJ5IElEQ2FwdHVyZVNjcmVlblF1ZXJ5e3ZpZXdlcntwb2xpY3lSZXN0cmljdGlvbnMoYWN0aW9uOmZ1dHVyZXNfdHJhZGluZyl7aWR2TWV0YWRhdGF7aWR9LGlkfSxpZH19YCwiMGM1NGQ1MDQ1ZTU4ZTI4MDdjNjYxMDI5NTRlN2RkNzE1ODRlMjg0NmE4YTQ4M2Y4MzhjYjMzYWI0YmMyZjEzZCI6YG11dGF0aW9uIHVzZUtZQ1JlZnJlc2hDb25maXJtTXV0YXRpb24oJGlucHV0OkNvbmZpcm1LWUNSZWZyZXNoSW5wdXQhKXtjb25maXJtS1lDUmVmcmVzaChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gQ29uZmlybUtZQ1JlZnJlc2hTdWNjZXNze2R1bW15fSwuLi5vbiBHZW5lcmljRXJyb3J7Y29kZSxtZXNzYWdlfX19YCwiMGM5ZTVmZTUyMjViOWU0YWYyOGYwNTQzNmRjZDRkNDlhZmZlYWZiOGE3MTNiMjJkNzI1MmFiMzE0NDZhZDA3YiI6YG11dGF0aW9uIHVzZVNlbGZDZXJ0aWZpY2F0aW9uRm9ybVN1Ym1pdHRlck11dGF0aW9uKCRpbnB1dDpTdWJtaXRTZWxmQ2VydGlmaWNhdGlvbkZvcm1JbnB1dCEpe3N1Ym1pdFNlbGZDZXJ0aWZpY2F0aW9uRm9ybShpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gU3VibWl0U2VsZkNlcnRpZmljYXRpb25Gb3JtU3VjY2Vzc3tmb3JtSWQsc3RhdHVzLG1lc3NhZ2UsY3JlYXRlZEF0LHZpZXdlcntpZH19LC4uLm9uIFN1Ym1pdFNlbGZDZXJ0aWZpY2F0aW9uRm9ybUFjdGlvbmFibGVFcnJvcntjb3JyZWxhdGlvbklkLHRpdGxlLGRlc2NyaXB0aW9uLGN0YXt1cmx9fX19YCwiMGQzMGJhZDk3NTg1NzQ3MTM2YTY1ZmJlNTAyODI4ZTM4NmFhNjllMDRlMWQ5MWFiYzc3ZDI3NGE1MTNkMjA3YiI6YHF1ZXJ5IHVzZVJlY2VydGlmaWNhdGlvblByZWZpbGxRdWVyeXt2aWV3ZXJ7cHJlZmlsbFNlbGZDZXJ0aWZpY2F0aW9ue2p1cmlzZGljdGlvbnN7Y291bnRyeUNvZGUsY291bnRyeU5hbWUsd2FzVGluUHJvdmlkZWQsaXNSZXF1aXJlZCxpc3N1ZXNUaW4sdGlufX0saWR9fWAsIjBkNWI0ZmQ4ODQ5MmU4MWU4YmZiMmQzYjM5M2JhMzg2NmY3NDRjNjJkZGUzMjlhNDIxNDQ5MjNlOWNiMTE4M2QiOmBzdWJzY3JpcHRpb24gdXNlU3BvdFBvc2l0aW9uc1YyU3Vic2NyaXB0aW9ue3BvcnRmb2xpb0JhbGFuY2VVcGRhdGVke3BvcnRmb2xpb3tzcG90UG9zaXRpb25zVjJ7ZWRnZXN7bm9kZXtjb2xsYXRlcmFsQmFsYW5jZXthdmFpbGFibGVDb2xsYXRlcmFsRmlhdHthbW91bnQsY3VycmVuY3ksaWR9LHRvdGFsQ29sbGF0ZXJhbENyeXB0b3thbW91bnQsaWR9fSxpZH19fSxpZH19fWAsIjBkZDI0YzBiZjc0YTY1ZDc4ZDY1Y2IzM2RkMDNiODI0ZGE1MDdlNDc3YmU5ZmQ4MTc5MzUzYmJmMWM3YzFjMjMiOmBxdWVyeSB1c2VJbnR4UGVybWlzc2lvbnNDYWNoZVVwZGF0ZVF1ZXJ5e3ZpZXdlcntyZXRhaWxJbnR4e2ludHhQZXJtaXNzaW9uc3tlbnRpdHksYWNjZXNzTGV2ZWwsaXNPbmJvYXJkZWQsZ2VvTWF4TGV2ZXJhZ2UscGVybWlzc2lvbnN7bWFya2V0UGVybWlzc2lvbnN7bWFya2V0Vmlld3thbGxvd2VkfX0sdHJhbnNmZXJQZXJtaXNzaW9uc3t0cmFuc2ZlclZpZXd7YWxsb3dlZH0sdHJhbnNmZXJFbmFibGVke2FsbG93ZWR9LHRyYW5zZmVyRGVwb3NpdEVuYWJsZWR7YWxsb3dlZH0sdHJhbnNmZXJXaXRoZHJhd0VuYWJsZWR7YWxsb3dlZH19LHBvcnRmb2xpb1Blcm1pc3Npb25ze3BvcnRmb2xpb1ZpZXd7YWxsb3dlZH0scG9zaXRpb25zVmlld3thbGxvd2VkfSxwb3NpdGlvbnNDbG9zZXthbGxvd2VkfX0sdHJhZGluZ1Blcm1pc3Npb25ze29yZGVyRm9ybVZpZXd7YWxsb3dlZH0sb3JkZXJGb3JtRW5hYmxlZHthbGxvd2VkfSxvcmRlcnNWaWV3e2FsbG93ZWR9LG9yZGVyc0NhbmNlbHthbGxvd2VkfX19fX0saWR9fWAsIjBlNDRhNGIxNTIwZDFkNzVhYWQzZTU2ZjkxMGY0MDMzZThiZmU5MWE2Njg3ZjgzNTNkZDg5YmMyZjE2MzFhNzkiOmBxdWVyeSBGdXR1cmVzRHVlRGlsaWdlbmNlRmxvd1F1ZXJ5e3ZpZXdlcntkZXJpdmF0aXZlc09uYm9hcmRpbmd7ZHVlRGlsaWdlbmNlUXVlc3Rpb25zVjJ7aGVhZGluZywuLi5GdXR1cmVzRHVlRGlsaWdlbmNlRmxvd1NjcmVlbkZyYWdtZW50fX0saWR9fWZyYWdtZW50IEZ1dHVyZXNEdWVEaWxpZ2VuY2VGbG93U2NyZWVuRnJhZ21lbnQgb24gRGVyaXZhdGl2ZXNVc2VyT25ib2FyZGluZ0R1ZURpbGlnZW5jZVF1ZXN0aW9uc3txdWVzdGlvbnN7cXVlc3Rpb25OdW1iZXIsaGVhZGluZyx0eXBlLG9wdGlvbnN7bGFiZWw6dmFsdWUsdmFsdWU6bGFiZWx9fX1gLCIwZTk0NjdhMDVkYzQyYzRjNmFkZjMwOTI4OWY0NDI4ZjMxMGJiMDE4Mzg0Y2FkYjU4NjZiNzkxOTBjNmQ3YWNmIjpgbXV0YXRpb24gdXNlVWFzU3BvdE1hcmdpblZlcmlmaWNhdGlvblN1Ym1pdE11dGF0aW9uKCRpbnB1dDpVcGRhdGVNYW51YWxBY2NyZWRpdGF0aW9uRG9jdW1lbnRVcGxvYWRJbnB1dCEpe3VwZGF0ZU1hbnVhbEFjY3JlZGl0YXRpb25Eb2N1bWVudFVwbG9hZChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gVXBkYXRlTWFudWFsQWNjcmVkaXRhdGlvbkRvY3VtZW50VXBsb2FkU3VjY2Vzc3t1c2VyQWNjcmVkaXRhdGlvbnt1dWlkLHN0YXR1cyxpZH19LC4uLm9uIEdlbmVyaWNFcnJvcnttZXNzYWdlfX19YCwiMTAyYmRkYTA2ZTMxZjBhOWI0M2I1YjExNjVmYjZhZjFkNWI1N2JhODgwYzk3NDA1OGM1NTZhYjc2NGZlMzc0YiI6YHF1ZXJ5IHVzZU9wdEluU3RhdHVzRmV0Y2hlclF1ZXJ5KCRjYW1wYWlnbk5hbWU6U3RyaW5nISwkc2tpcDpCb29sZWFuISl7dmlld2VyQHNraXAoaWY6JHNraXApe3VzZXJQcm9wZXJ0aWVze3V1aWQsaWR9LGluY2VudGl2ZXNDYW1wYWlnbkJ5TmFtZShjYW1wYWlnbk5hbWU6JGNhbXBhaWduTmFtZSl7b3B0SW57aXNPcHRlZEluLGlkfSxpZH0saWR9fWAsIjExZmViNDYxYjBmNWZiNDMxNTJkOTQ4NjNiYTFlYmE4ZTY2ZmFiNDI3M2RhZjQyZTkwOGEzYWU2YTkyYjk0YzYiOmBxdWVyeSBQcmVkaWN0aW9uTWFya2V0c0RldGFpbFBhZ2VRdWVyeSgkZXZlbnRUaWNrZXI6VGhpcmRQYXJ0eUlkU3RyaW5nISwkcHJvZHVjdHNTb3J0T3B0aW9uOlJiYVByb2R1Y3RzU29ydE9wdGlvbiEsJHByb2R1Y3RzU29ydE9yZGVyOlNvcnRPcmRlciEsJGxpdmVQcm9kdWN0SWRzOltUaGlyZFBhcnR5SWRTdHJpbmchXSEsJHNraXBMaXZlUHJvZHVjdFN0YXRzOkJvb2xlYW4hKXtyZXRhaWxCcm9rZXJhZ2V7aW5zdHJ1bWVudEdyb3VwKGluc3RydW1lbnRHcm91cElkOiRldmVudFRpY2tlcixwcm9kdWN0c1NvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixwcm9kdWN0c1NvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGl0bGV9LGluc3RydW1lbnRHcm91cElkLGlkfX0sLi4uUHJlZGljdGlvbkV2ZW50Q29udGVudEZyYWdtZW50LC4uLlByZWRpY3Rpb25FdmVudE5hdkZyYWdtZW50LC4uLlByZWRpY3Rpb25NYXJrZXRzTGl2ZVByb2R1Y3RTdGF0c0VtaXR0ZXJGcmFnbWVudH1mcmFnbWVudCBQcmVkaWN0aW9uRXZlbnRDb250ZW50RnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle2luc3RydW1lbnRHcm91cChpbnN0cnVtZW50R3JvdXBJZDokZXZlbnRUaWNrZXIscHJvZHVjdHNTb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24scHJvZHVjdHNTb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtpbnN0cnVtZW50R3JvdXBJZCxwcm9kdWN0c3twcm9kdWN0SWQscHJpY2UscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3NldHRsZW1lbnRQcmljZSxjb250cmFjdEV4cGlyeSxhc2tQcmljZXN7eWVzQXNrLG5vQXNrfX0sLi4uUHJlZGljdGlvbk1hcmtldHNBYm91dEZyYWdtZW50LGlkfSxpZH19LC4uLlByZWRpY3Rpb25FdmVudERldGFpbHNDaGFydEZyYWdtZW50LC4uLlByZWRpY3Rpb25zUGF5b3V0Q29udmVyc2lvbldpZGdldEZyYWdtZW50LC4uLlByZWRpY3Rpb25FdmVudEtleVN0YXRzRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV2ZW50TWFya2V0U2VsZWN0b3JGcmFnbWVudCwuLi5QcmVkaWN0aW9uTWFya2V0c0xpdmVQcm9kdWN0U3RhdHNFbWl0dGVyRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbkV2ZW50RGV0YWlsc0NoYXJ0RnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle2luc3RydW1lbnRHcm91cChpbnN0cnVtZW50R3JvdXBJZDokZXZlbnRUaWNrZXIscHJvZHVjdHNTb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24scHJvZHVjdHNTb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXsuLi51c2VJc0hlYWRUb0hlYWRFdmVudEZyYWdtZW50LC4uLnVzZUhlYWRUb0hlYWRUZWFtRGF0YUZyYWdtZW50LC4uLnVzZUxpdmVTY29yZUNhcmRWaXNpYmlsaXR5RnJhZ21lbnQscHJvZHVjdHN7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3ttYXJrZXRDb2xvcix5ZXNUaXRsZXMsYWJicmV2aWF0aW9ufSxpZH0sLi4udXNlSXNTcG9ydHNFdmVudEZyYWdtZW50LGlkfX19ZnJhZ21lbnQgUHJlZGljdGlvbkV2ZW50S2V5U3RhdHNGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7aW5zdHJ1bWVudEdyb3VwKGluc3RydW1lbnRHcm91cElkOiRldmVudFRpY2tlcixwcm9kdWN0c1NvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixwcm9kdWN0c1NvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3ZvbHVtZTI0aCx2b2x1bWVQZXJjZW50YWdlQ2hhbmdlMjRoLHByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze29wZW5JbnRlcmVzdCx0b3RhbFZvbHVtZX0scHJvZHVjdHN7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tjb250cmFjdEV4cGlyeX0saWR9LGlkfX19ZnJhZ21lbnQgUHJlZGljdGlvbkV2ZW50TWFya2V0U2VsZWN0b3JGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7aW5zdHJ1bWVudEdyb3VwKGluc3RydW1lbnRHcm91cElkOiRldmVudFRpY2tlcixwcm9kdWN0c1NvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixwcm9kdWN0c1NvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGlja2VyfSxwcm9kdWN0c3tiYXNlQ2Jybixwcm9kdWN0SWQscHJpY2UscHJpY2VQZXJjZW50Q2hhbmdlMjRoLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tsaWdodE1vZGVJY29uVXJsLHNldHRsZW1lbnRQcmljZSx5ZXNUaXRsZXMsYXNrUHJpY2Vze3llc0Fzayxub0Fza319LGlkfSwuLi51c2VJc0hlYWRUb0hlYWRFdmVudEZyYWdtZW50LC4uLnVzZUhlYWRUb0hlYWRUZWFtRGF0YUZyYWdtZW50LC4uLlByZWRpY3Rpb25NYXJrZXRzSGVhZFRvSGVhZEJ1dHRvbkdyb3VwRnJhZ21lbnQsaWR9fX1mcmFnbWVudCBQcmVkaWN0aW9uRXZlbnROYXZGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7aW5zdHJ1bWVudEdyb3VwKGluc3RydW1lbnRHcm91cElkOiRldmVudFRpY2tlcixwcm9kdWN0c1NvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixwcm9kdWN0c1NvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe2ltYWdlVXJsLHByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGl0bGUsc2VjdG9yLHRhZ3N9LGlkfSxzZWN0b3JMaXN0e3NlY3RvcixzZWN0b3JJZCxsYWJlbH19fWZyYWdtZW50IFByZWRpY3Rpb25NYXJrZXRzQWJvdXRGcmFnbWVudCBvbiBSYmFQcm9kdWN0e3ByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tjb250cmFjdFRlcm1zVXJsLHJ1bGVzUHJpbWFyeSxydWxlc1NlY29uZGFyeSxzZWN0b3Isc2V0dGxlbWVudFNvdXJjZXN7dXJsLG5hbWV9fX1mcmFnbWVudCBQcmVkaWN0aW9uTWFya2V0c0hlYWRUb0hlYWRCdXR0b25GcmFnbWVudF9Fb085dSBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJvZHVjdHN7cHJvZHVjdElkLGJhc2VDYnJuLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thYmJyZXZpYXRpb24seWVzVGl0bGVzLGFza1ByaWNlc3t5ZXNBc2t9fSxpZH0sLi4udXNlSGVhZFRvSGVhZFRlYW1EYXRhRnJhZ21lbnRfRW9POXV9ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNIZWFkVG9IZWFkQnV0dG9uR3JvdXBGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7Li4uUHJlZGljdGlvbk1hcmtldHNIZWFkVG9IZWFkQnV0dG9uRnJhZ21lbnRfRW9POXUsLi4udXNlSGVhZFRvSGVhZFNldHRsZW1lbnRTdGF0dXNGcmFnbWVudF9Fb085dSwuLi51c2VQcmVkaWN0aW9uTWFya2V0RXZlbnRTY2hlZHVsZVN0YXRlRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNMaXZlUHJvZHVjdFN0YXRzRW1pdHRlckZyYWdtZW50IG9uIFF1ZXJ5e3JldGFpbEJyb2tlcmFnZUBza2lwKGlmOiRza2lwTGl2ZVByb2R1Y3RTdGF0cyl7cHJvZHVjdHNTdGF0cyhwcm9kdWN0SWRzOiRsaXZlUHJvZHVjdElkcyxwcm9kdWN0VHlwZTpQUkVESUNUSU9OX01BUktFVCxwcm9kdWN0VmVudWU6S0FMU0hJKXtwcm9kdWN0SWQscHJpY2UscHJpY2VQZXJjZW50Q2hhbmdlMjRoLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thc2tQcmljZXN7eWVzQXNrLG5vQXNrfSxjb250cmFjdEV4cGlyeSxzZXR0bGVtZW50UHJpY2V9LGZjbVRyYWRpbmdTZXNzaW9uRGV0YWlsc3tjbG9zZVRpbWUsaXNTZXNzaW9uT3BlbixvcGVuVGltZX0saWR9fX1mcmFnbWVudCBQcmVkaWN0aW9uc1BheW91dENvbnZlcnNpb25XaWRnZXRGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7aW5zdHJ1bWVudEdyb3VwKGluc3RydW1lbnRHcm91cElkOiRldmVudFRpY2tlcixwcm9kdWN0c1NvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixwcm9kdWN0c1NvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze3NlY3Rvcn0scHJvZHVjdHN7cHJvZHVjdElkLHByaWNlLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3t5ZXNUaXRsZXMsc2V0dGxlbWVudFByaWNlLGxpZ2h0TW9kZUljb25VcmwsYXNrUHJpY2Vze3llc0Fzayxub0Fza319LGlkfSxpZH19fWZyYWdtZW50IHVzZUhlYWRUb0hlYWRTZXR0bGVtZW50U3RhdHVzRnJhZ21lbnRfRW9POXUgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3Byb2R1Y3Rze3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7c2V0dGxlbWVudFByaWNlfSxpZH19ZnJhZ21lbnQgdXNlSGVhZFRvSGVhZFRlYW1EYXRhRnJhZ21lbnQgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2xpdmVFdmVudHttaWxlc3RvbmVze2VucmljaGVkRGF0YXtfX3R5cGVuYW1lLC4uLm9uIFJiYUJhc2tldGJhbGxHYW1lRW5yaWNoZWR7aG9tZVRlYW17dGVhbUlkLHRlYW1OYW1lfSxhd2F5VGVhbXt0ZWFtSWQsdGVhbU5hbWV9LF9fdHlwZW5hbWV9LC4uLm9uIFJiYUZvb3RiYWxsR2FtZUVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFTb2NjZXJNYXRjaEVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFCYXNlYmFsbEdhbWVFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhSG9ja2V5R2FtZUVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFDcmlja2V0TWF0Y2hFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhVGVubmlzTWF0Y2hFbnJpY2hlZHtob21lVGVhbTpwbGF5ZXIxe3RlYW1JZDpwbGF5ZXJJZCx0ZWFtTmFtZTpwbGF5ZXJOYW1lfSxhd2F5VGVhbTpwbGF5ZXIye3RlYW1JZDpwbGF5ZXJJZCx0ZWFtTmFtZTpwbGF5ZXJOYW1lfSxfX3R5cGVuYW1lfX19fX0scHJvZHVjdHN7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thYmJyZXZpYXRpb24sbWFya2V0Q29sb3IsbWFya2V0Q29sb3JEYXJrLHllc1RpdGxlcyxzdWJqZWN0UmVmZXJlbmNlc3tzdWJqZWN0SWR9fSxpZH19ZnJhZ21lbnQgdXNlSGVhZFRvSGVhZFRlYW1EYXRhRnJhZ21lbnRfRW9POXUgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2xpdmVFdmVudHttaWxlc3RvbmVze2VucmljaGVkRGF0YXtfX3R5cGVuYW1lLC4uLm9uIFJiYUJhc2tldGJhbGxHYW1lRW5yaWNoZWR7aG9tZVRlYW17dGVhbUlkLHRlYW1OYW1lfSxhd2F5VGVhbXt0ZWFtSWQsdGVhbU5hbWV9LF9fdHlwZW5hbWV9LC4uLm9uIFJiYUZvb3RiYWxsR2FtZUVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFTb2NjZXJNYXRjaEVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFCYXNlYmFsbEdhbWVFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhSG9ja2V5R2FtZUVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFDcmlja2V0TWF0Y2hFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhVGVubmlzTWF0Y2hFbnJpY2hlZHtob21lVGVhbTpwbGF5ZXIxe3RlYW1JZDpwbGF5ZXJJZCx0ZWFtTmFtZTpwbGF5ZXJOYW1lfSxhd2F5VGVhbTpwbGF5ZXIye3RlYW1JZDpwbGF5ZXJJZCx0ZWFtTmFtZTpwbGF5ZXJOYW1lfSxfX3R5cGVuYW1lfX19fX0scHJvZHVjdHN7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thYmJyZXZpYXRpb24sbWFya2V0Q29sb3IsbWFya2V0Q29sb3JEYXJrLHllc1RpdGxlcyxzdWJqZWN0UmVmZXJlbmNlc3tzdWJqZWN0SWR9fSxpZH19ZnJhZ21lbnQgdXNlSXNIZWFkVG9IZWFkRXZlbnRGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7c2VjdG9yLHByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze3Njb3BlfSxwcm9kdWN0c3twcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSxpZH0sLi4udXNlSGVhZFRvSGVhZFRlYW1EYXRhRnJhZ21lbnRfRW9POXV9ZnJhZ21lbnQgdXNlSXNTcG9ydHNFdmVudEZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtzZWN0b3IscHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7bGl2ZUV2ZW50e3N0YXR1c319fWZyYWdtZW50IHVzZUxpdmVTY29yZUNhcmRWaXNpYmlsaXR5RnJhZ21lbnQgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze3RhZ3Msc2NvcGUsbGl2ZUV2ZW50e3N0YXJ0RGF0ZSxzdGF0dXN9fX1mcmFnbWVudCB1c2VQcmVkaWN0aW9uTWFya2V0RXZlbnRTY2hlZHVsZVN0YXRlRnJhZ21lbnQgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze3Nob3VsZFVzZVNlcmllcyxsaXZlRXZlbnR7c3RhcnREYXRlLHN0YXR1c319fWAsIjEyMDQ0YTgzZjc1MGMyN2Q5ODZjNmRhYWNmZWY4NDgwMmVlZDVmZjk5YjcwZmE2NDUzNTg3Mjc1ZDNkZGE5MDAiOmBxdWVyeSBQcmVkaWN0aW9uRmVhdHVyZWRFdmVudENhcmRDb250ZW50UXVlcnkoJGV2ZW50VGlja2VyOlRoaXJkUGFydHlJZFN0cmluZyEsJHByb2R1Y3RzU29ydE9wdGlvbjpSYmFQcm9kdWN0c1NvcnRPcHRpb24hLCRwcm9kdWN0c1NvcnRPcmRlcjpTb3J0T3JkZXIhKXsuLi5GZWF0dXJlZEgySENvbnZlcnNpb25XaWRnZXRGcmFnbWVudCxyZXRhaWxCcm9rZXJhZ2V7aW5zdHJ1bWVudEdyb3VwKGluc3RydW1lbnRHcm91cElkOiRldmVudFRpY2tlcixwcm9kdWN0c1NvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixwcm9kdWN0c1NvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpey4uLnVzZUhlYWRUb0hlYWRDYXJkRGF0YUZyYWdtZW50LGlkfX19ZnJhZ21lbnQgRmVhdHVyZWRIMkhDb252ZXJzaW9uV2lkZ2V0RnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle2luc3RydW1lbnRHcm91cChpbnN0cnVtZW50R3JvdXBJZDokZXZlbnRUaWNrZXIscHJvZHVjdHNTb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24scHJvZHVjdHNTb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtwcm9kdWN0c3twcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze2FiYnJldmlhdGlvbix5ZXNUaXRsZXMsYXNrUHJpY2Vze3llc0Fza319LGlkfSxpZH19fWZyYWdtZW50IHVzZUhlYWRUb0hlYWRDYXJkRGF0YUZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcm9kdWN0c3twcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze2FiYnJldmlhdGlvbixzZXR0bGVtZW50UHJpY2UsbWFya2V0Q29sb3JEYXJrfSxpZH0scHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaWNrZXIsbGl2ZUV2ZW50e3N0YXR1cyxzdGFydERhdGV9LGZlYXR1cmVDYXJke3N1YlRpdGxlLHN1YlRpdGxlQ29sb3JEYXJrLHN1YlRpdGxlQ29sb3JIaWdoQ29udHJhc3REYXJrLGJhY2tncm91bmRDb2xvckRhcmssYmFja2dyb3VuZENvbG9ySGlnaENvbnRyYXN0RGFya319LC4uLnVzZUhlYWRUb0hlYWRUZWFtRGF0YUZyYWdtZW50X0VvTzl1fWZyYWdtZW50IHVzZUhlYWRUb0hlYWRUZWFtRGF0YUZyYWdtZW50X0VvTzl1IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tsaXZlRXZlbnR7bWlsZXN0b25lc3tlbnJpY2hlZERhdGF7X190eXBlbmFtZSwuLi5vbiBSYmFCYXNrZXRiYWxsR2FtZUVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFGb290YmFsbEdhbWVFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhU29jY2VyTWF0Y2hFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhQmFzZWJhbGxHYW1lRW5yaWNoZWR7aG9tZVRlYW17dGVhbUlkLHRlYW1OYW1lfSxhd2F5VGVhbXt0ZWFtSWQsdGVhbU5hbWV9LF9fdHlwZW5hbWV9LC4uLm9uIFJiYUhvY2tleUdhbWVFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhQ3JpY2tldE1hdGNoRW5yaWNoZWR7aG9tZVRlYW17dGVhbUlkLHRlYW1OYW1lfSxhd2F5VGVhbXt0ZWFtSWQsdGVhbU5hbWV9LF9fdHlwZW5hbWV9LC4uLm9uIFJiYVRlbm5pc01hdGNoRW5yaWNoZWR7aG9tZVRlYW06cGxheWVyMXt0ZWFtSWQ6cGxheWVySWQsdGVhbU5hbWU6cGxheWVyTmFtZX0sYXdheVRlYW06cGxheWVyMnt0ZWFtSWQ6cGxheWVySWQsdGVhbU5hbWU6cGxheWVyTmFtZX0sX190eXBlbmFtZX19fX19LHByb2R1Y3Rze3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7YWJicmV2aWF0aW9uLG1hcmtldENvbG9yLG1hcmtldENvbG9yRGFyayx5ZXNUaXRsZXMsc3ViamVjdFJlZmVyZW5jZXN7c3ViamVjdElkfX0saWR9fWAsIjEyZmJlYTI4OTVjMTQ1NTA2NTMyMTViNzE0YjY3MTk1ZDJlNTkwYTA2ZGY1N2YyZmI0ZjA3MmNkNjI3ODU1OGMiOmBtdXRhdGlvbiB1c2VVT0JTZXRVc2VyQXR0cmlidXRlTXV0YXRpb24oJGlucHV0OlNldFVzZXJBdHRyaWJ1dGVJbnB1dCEpe3NldFVzZXJBdHRyaWJ1dGUoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFNldFVzZXJBdHRyaWJ1dGVTdWNjZXNze3ZpZXdlcntpZCxyZXRhaWxCcm9rZXJhZ2V7dXNlckF0dHJpYnV0ZXN7YXR0cmlidXRlTmFtZSxhdHRyaWJ1dGVWYWx1ZX19fX0sLi4ub24gR2VuZXJpY0Vycm9ye21lc3NhZ2V9fX1gLCIxMzAzNGQ2ODhkOGY0MjdhMDg0N2I0YjMzNTFjMWM4NThjZTMyZDRmMGJlNTY1NGE0MjUzNjU1Zjg4M2U5MWZhIjpgbXV0YXRpb24gdXNlRXF1aXR5V2F0Y2hsaXN0QWRkTXV0YXRpb24oJGlucHV0OkFkZFdhdGNobGlzdEl0ZW1JbnB1dCEsJHdhdGNobGlzdFV1aWQ6VXVpZCwkd2F0Y2hsaXN0Q291bnQ6SW50ISl7YWRkV2F0Y2hsaXN0SXRlbShpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gQWRkV2F0Y2hsaXN0SXRlbVN1Y2Nlc3N7dmlld2Vye3dhdGNobGlzdEJ5VXVpZCh3YXRjaGxpc3RVdWlkOiR3YXRjaGxpc3RVdWlkKXtpZCx1dWlkLGl0ZW1zKGZpcnN0OiR3YXRjaGxpc3RDb3VudCl7ZWRnZXN7bm9kZXtpZCx1dWlkLHR5cGUsaXRlbU1ldGFkYXRhe19fdHlwZW5hbWUsLi4ub24gRXF1aXR5e2RhdGF7cHJvZHVjdElkLHRpY2tlcixzaG9ydE5hbWUsaW1hZ2VVcmwscHJpY2UscHJpY2VQZXJjZW50YWdlQ2hhbmdlTWFya2V0SG91cnMsbWFya2V0Y2FwLGFwcHJveGltYXRlUXVvdGVWb2x1bWUyNGh9LGlkfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIERlcmliaXRJbnN0cnVtZW50e2lkfSwuLi5vbiBJUE97aWR9LC4uLm9uIFJiYUluc3RydW1lbnRHcm91cHtpZH0sLi4ub24gUmV0YWlsQnJva2VyYWdlUHJvZHVjdHtpZH0sLi4ub24gVmlld2VyRXF1aXR5T3B0aW9ue2lkfX0sX190eXBlbmFtZX0sY3Vyc29yfSxwYWdlSW5mb3tlbmRDdXJzb3IsaGFzTmV4dFBhZ2V9fX0saWR9fX19YCwiMTM4MmQyNmRlYmRmY2Y5ZDgwZGRkZmY4MjZkMTAyZjJmMjAwNTljNjlhZGJlZDFhZTU3YzNjZWFmNDg1ZGE5OSI6YG11dGF0aW9uIHVzZVRheEluZm9TdWJtaXR0ZXJNdXRhdGlvbigkaW5wdXQ6U3VibWl0RVVUYXhSZXNpZGVuY2VJbnB1dCEpe3N1Ym1pdEVVVGF4UmVzaWRlbmNlKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBTdWJtaXRFVVRheFJlc2lkZW5jZVN1Y2Nlc3N7Zm9ybUlkLHN0YXR1cyxtZXNzYWdlLGNyZWF0ZWRBdCxkYXRhQ29uc2lzdGVuY3lSZXN1bHR7aGFzSW5jb25zaXN0ZW5jaWVzfX0sLi4ub24gU3VibWl0RVVUYXhSZXNpZGVuY2VBY3Rpb25hYmxlRXJyb3J7Y29ycmVsYXRpb25JZCx0aXRsZSxkZXNjcmlwdGlvbixjdGF7dXJsfX19fWAsIjE0NTFhYTA0ZGZjZjA1OWMwODg5NWEwMDI0ZjVhNjY3NjM3OWVkZTU3YWU2NWQyMjJlNWI1OTI5Nzk2MzQ2ZmYiOmBxdWVyeSB1c2VJbnR4UGVybWlzc2lvbnNGb3JjZVVwZGF0ZVF1ZXJ5e3ZpZXdlcntyZXRhaWxJbnR4e2ludHhQZXJtaXNzaW9ucyhmb3JjZVVwZGF0ZTp0cnVlKXtlbnRpdHksYWNjZXNzTGV2ZWwsaXNPbmJvYXJkZWQsZ2VvTWF4TGV2ZXJhZ2UscGVybWlzc2lvbnN7bWFya2V0UGVybWlzc2lvbnN7bWFya2V0Vmlld3thbGxvd2VkfX0sdHJhbnNmZXJQZXJtaXNzaW9uc3t0cmFuc2ZlclZpZXd7YWxsb3dlZH0sdHJhbnNmZXJFbmFibGVke2FsbG93ZWR9LHRyYW5zZmVyRGVwb3NpdEVuYWJsZWR7YWxsb3dlZH0sdHJhbnNmZXJXaXRoZHJhd0VuYWJsZWR7YWxsb3dlZH19LHBvcnRmb2xpb1Blcm1pc3Npb25ze3BvcnRmb2xpb1ZpZXd7YWxsb3dlZH0scG9zaXRpb25zVmlld3thbGxvd2VkfSxwb3NpdGlvbnNDbG9zZXthbGxvd2VkfX0sdHJhZGluZ1Blcm1pc3Npb25ze29yZGVyRm9ybVZpZXd7YWxsb3dlZH0sb3JkZXJGb3JtRW5hYmxlZHthbGxvd2VkfSxvcmRlcnNWaWV3e2FsbG93ZWR9LG9yZGVyc0NhbmNlbHthbGxvd2VkfX19fX0saWR9fWAsIjE1MGExYjIwYjkzN2RjMzNhM2EyM2RiNmU5ZGQ5YzFhNzViNjgyMjlkMmUwMmFmOWUzZDVkMGJlMjI4NjQ2ZTIiOmBxdWVyeSBXOEluZGljaWFDdXJlU3RhdHVzUG9sbFN0ZXBRdWVyeSgkZm9ybUlkOlRoaXJkUGFydHlJZFN0cmluZyEpe3c4SW5kaWNpYUN1cmVTdGF0dXMoZm9ybUlkOiRmb3JtSWQpe3N0YXR1c319YCwiMTU0OTFjNDg4OTI4NjRlNzJiNDEyYTI2YjE0YWU2Y2RiMmU0ZjU3NTQ1ZDUyNDQzYzc5NDE4ODlkMWY2NTMwMSI6YHN1YnNjcmlwdGlvbiBDb2luYmFzZUdyYXBoUUxUcmFuc3BvcnRFcXVpdGllc1N1YnNjcmlwdGlvbntlcXVpdHlQb3NpdGlvbnNBbmRCYWxhbmNlRXZlbnRzOnNwb3RQb3NpdGlvbkFuZEJhbGFuY2VFdmVudHMoY2FzaEZpbHRlcjpDQVNIX0ZJTFRFUl9FUVVJVElFUyl7X190eXBlbmFtZSwuLi5vbiBQb3J0Zm9saW9TcG90UG9zaXRpb25BZGRlZEV2ZW50e3Bvc2l0aW9ue2lkLGNicm4sdG90YWxCYWxhbmNlRmlhdHthbW91bnQsY3VycmVuY3ksaWR9LHRvdGFsQmFsYW5jZUVxdWl0eXthbW91bnQsY3VycmVuY3ksaWR9LGluc3RydW1lbnR7X190eXBlbmFtZSwuLi5vbiBWaWV3ZXJFcXVpdHl7ZXF1aXR5e2lkLGRhdGF7dGlja2VyLHNob3J0TmFtZSxwcm9kdWN0SWQsaW1hZ2VVcmx9fSxwZXJmb3JtYW5jZSh0aW1lUmFuZ2U6T05FX0RBWSl7cmV0dXJuc3t1bnJlYWxpemVke3BlcmNlbnQsdmFsdWV7dmFsdWUsY3VycmVuY3l9fX0saWR9LGlkfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIFRpZXJzQ3VycmVuY3l7aWR9LC4uLm9uIFZpZXdlckVxdWl0eU9wdGlvbntpZH0sLi4ub24gVmlld2VyUHJlZGljdGlvbk1hcmtldHtpZH19fX0sLi4ub24gUG9ydGZvbGlvU3BvdFBvc2l0aW9uVXBkYXRlZEV2ZW50e3Bvc2l0aW9ue2lkLGNicm4sdG90YWxCYWxhbmNlRmlhdHthbW91bnQsY3VycmVuY3ksaWR9LHRvdGFsQmFsYW5jZUVxdWl0eXthbW91bnQsY3VycmVuY3ksaWR9LGluc3RydW1lbnR7X190eXBlbmFtZSwuLi5vbiBWaWV3ZXJFcXVpdHl7ZXF1aXR5e2lkLGRhdGF7dGlja2VyLHNob3J0TmFtZSxwcm9kdWN0SWQsaW1hZ2VVcmx9fSxwZXJmb3JtYW5jZSh0aW1lUmFuZ2U6T05FX0RBWSl7cmV0dXJuc3t1bnJlYWxpemVke3BlcmNlbnQsdmFsdWV7dmFsdWUsY3VycmVuY3l9fX0saWR9LGlkfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIFRpZXJzQ3VycmVuY3l7aWR9LC4uLm9uIFZpZXdlckVxdWl0eU9wdGlvbntpZH0sLi4ub24gVmlld2VyUHJlZGljdGlvbk1hcmtldHtpZH19fX0sLi4ub24gUG9ydGZvbGlvU3BvdFBvc2l0aW9uUmVtb3ZlZEV2ZW50e2lkfX19YCwiMTVjOGFkOGI1ZGZjYjZlMWU5ODExNjVkNGJhZDQzMjU0YTYyY2YwMjA3MTU4ZjQ1M2FmNmE3MGU0ZDU5M2E3ZSI6YG11dGF0aW9uIFVzZXJJbnB1dENyZWF0ZVVuYXV0aGVudGljYXRlZENvbnZlcnNhdGlvbkV2ZW50TXV0YXRpb24oJGlucHV0OkNyZWF0ZVVuYXV0aGVudGljYXRlZEV2ZW50SW5wdXQhKXtjcmVhdGVVbmF1dGhlbnRpY2F0ZWRFdmVudChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gQ3JlYXRlVW5hdXRoZW50aWNhdGVkRXZlbnRTdWNjZXNze2NvbnZlcnNhdGlvbkV2ZW50e25vZGV7Li4uTWVzc2FnZVR5cGVUb1VJUmVuZGVyZXJGcmFnbWVudCxpZH19fSwuLi5vbiBCYWRSZXF1ZXN0RXJyb3J7bWVzc2FnZX19fWZyYWdtZW50IE1lc3NhZ2VCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtpZCx1dWlkLHBhcnRpY2lwYW50e2lkLGRpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZX0sY3JlYXRlVGltZSxtZXNzYWdlQ29udGVudHttZXNzYWdlLHJlcGxpZXN7bGFiZWwsbGluayxtZXNzYWdlVG9QdWJsaXNofSxyZWZlcmVuY2VMaW5rc3t0aXRsZSxsaW5rfSxpc1JlYWN0aW9uc0VuYWJsZWQsZXh0cmFFbGVtZW50VHlwZSxleHRyYUVsZW1lbnRQYXlsb2FkfSxmaWxlc01ldGFkYXRhe2ZpbGVze2F0dGFjaG1lbnRJZCxmaWxlTmFtZX19fWZyYWdtZW50IE1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7dHlwZSwuLi5NZXNzYWdlQnViYmxlRnJhZ21lbnQsLi4uUGFydGljaXBhbnRCdWJibGVGcmFnbWVudH1mcmFnbWVudCBQYXJ0aWNpcGFudEJ1YmJsZUZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e3BhcnRpY2lwYW50e2Rpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZSxpZH19YCwiMTY1MGQzNDYxZGMyNTRmMTYyZDlhNWFlNzMxYjMxNzMwM2JjYTczZWMwOWE1NDA4NzYyYmEyY2M5YjA3OTIwNSI6YHN1YnNjcmlwdGlvbiBVbmF1dGhlbnRpY2F0ZWRDaGF0RXZlbnRTdWJzY3JpYmVyU3Vic2NyaXB0aW9uKCRpbnB1dDpTdWJzY3JpYmVFdmVudHNCeUNvbnZlcnNhdGlvbklucHV0ISl7ZXZlbnQ6c3Vic2NyaWJlVW5hdXRoZW50aWNhdGVkQ29udmVyc2F0aW9uRXZlbnRzQnlDb252ZXJzYXRpb24oaW5wdXQ6JGlucHV0KXtjdXJzb3Isbm9kZXtpZCx1dWlkLHR5cGUsY3JlYXRlVGltZSxlcnJvckRhdGF7aXNGYXRhbCx0eXBlLG1lc3NhZ2V9LHBhcnRpY2lwYW50e3BhcnRpY2lwYW50VHlwZSxpZH0sbWVzc2FnZUNvbnRlbnR7aXNGcmVlVGV4dERpc2FibGVkfSxjb252ZXJzYXRpb257aWQsdXVpZCxpc0Nsb3NlZH0sLi4uTWVzc2FnZVR5cGVUb1VJUmVuZGVyZXJGcmFnbWVudH19fWZyYWdtZW50IE1lc3NhZ2VCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtpZCx1dWlkLHBhcnRpY2lwYW50e2lkLGRpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZX0sY3JlYXRlVGltZSxtZXNzYWdlQ29udGVudHttZXNzYWdlLHJlcGxpZXN7bGFiZWwsbGluayxtZXNzYWdlVG9QdWJsaXNofSxyZWZlcmVuY2VMaW5rc3t0aXRsZSxsaW5rfSxpc1JlYWN0aW9uc0VuYWJsZWQsZXh0cmFFbGVtZW50VHlwZSxleHRyYUVsZW1lbnRQYXlsb2FkfSxmaWxlc01ldGFkYXRhe2ZpbGVze2F0dGFjaG1lbnRJZCxmaWxlTmFtZX19fWZyYWdtZW50IE1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7dHlwZSwuLi5NZXNzYWdlQnViYmxlRnJhZ21lbnQsLi4uUGFydGljaXBhbnRCdWJibGVGcmFnbWVudH1mcmFnbWVudCBQYXJ0aWNpcGFudEJ1YmJsZUZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e3BhcnRpY2lwYW50e2Rpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZSxpZH19YCwiMTZkMWRjOWYwNTMzMzljMjE5Yjg4NWE1ZGFjOGFhOGIwNzM5MDVhMDM4NTA2MDJjZWM5NmY3NDhlYTdmMWI4ZCI6YHF1ZXJ5IFRva2VuU2FsZXNPZmZlcmluZ0RldGFpbExvZ2dlZE91dFF1ZXJ5KCRzbHVnOlN0cmluZyEsJGlzTG9nZ2VkT3V0OkJvb2xlYW4hLCRmb3JjZVVwZGF0ZTpCb29sZWFuISwkcGFnZUtleTpTdHJpbmchKXtyYWlzZXtvZmZlcmluZ1YyKHNsdWc6JHNsdWcpe19fdHlwZW5hbWUsaWR9fSwuLi5PZmZlcmluZ0RldGFpbEFzaWRlU2VjdGlvbkZyYWdtZW50XzI2WVhtSCwuLi5Ub2tlblNhbGVzTWV0YVRhZ3NGcmFnbWVudF8yMEo1UGwsLi4uT2ZmZXJpbmdCYW5uZXJTZWN0aW9uRnJhZ21lbnRfMjBKNVBsLC4uLk9mZmVyaW5nT3ZlcnZpZXdGcmFnbWVudF8yNllYbUgsLi4uT2ZmZXJpbmdTYWxlRGV0YWlsc1NlY3Rpb25GcmFnbWVudF8yMEo1UGwsLi4uT2ZmZXJpbmdUaW1lbGluZVNlY3Rpb25GcmFnbWVudF8yMEo1UGwsLi4uVG9rZW5TYWxlc0Zvb3RlckxvZ2dlZE91dEZyYWdtZW50XzI2WVhtSCwuLi5EeW5hbWljRm9vdGVyTGF5b3V0RnJhZ21lbnRfMnVNWnFKfWZyYWdtZW50IER5bmFtaWNGb290ZXJMYXlvdXRGcmFnbWVudF8ydU1acUogb24gUXVlcnl7dW5hdXRoZWRTdXJmYWNlOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlOlVJX0NPTVBPTkVOVF9TVVJGQUNFX0ZPT1RFUl9ESVNDTEFJTUVSLGNhdGVnb3JpZXM6W1VJX0NPTVBPTkVOVF9DQVRFR09SWV9GT09URVJfRElTQ0xBSU1FUl0sZmlsdGVyOntmb290ZXJEaXNjbGFpbWVyRmlsdGVyOntwYWdlS2V5OiRwYWdlS2V5fX0pQGluY2x1ZGUoaWY6JGlzTG9nZ2VkT3V0KXtlZGdlc3tub2Rle2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50Rm9vdGVyRGlzY2xhaW1lcnt0aXRsZXt0ZXh0fSxkZXNjcmlwdGlvbnt0ZXh0fSx0aXRsZUN0YXt0ZXh0LHVybCx0ZXh0Q29sb3J9LGRlc2NyaXB0aW9uQ3Rhe3RleHQsdXJsLHRleHRDb2xvcn0scmljaFRleHRUaXRsZXtodG1sU3RyaW5nfX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH0sdmlld2VyQHNraXAoaWY6JGlzTG9nZ2VkT3V0KXthdXRoZWRTdXJmYWNlOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlOlVJX0NPTVBPTkVOVF9TVVJGQUNFX0ZPT1RFUl9ESVNDTEFJTUVSLGNhdGVnb3JpZXM6W1VJX0NPTVBPTkVOVF9DQVRFR09SWV9GT09URVJfRElTQ0xBSU1FUl0sZmlsdGVyOntmb290ZXJEaXNjbGFpbWVyRmlsdGVyOntwYWdlS2V5OiRwYWdlS2V5fSxyZWxldmFudFRhZ3NGaWx0ZXI6e3JlbGV2YW50VGFnczpbXX19KXtlZGdlc3tub2Rle2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50Rm9vdGVyRGlzY2xhaW1lcnt0aXRsZXt0ZXh0fSxkZXNjcmlwdGlvbnt0ZXh0fSx0aXRsZUN0YXt0ZXh0LHVybCx0ZXh0Q29sb3J9LGRlc2NyaXB0aW9uQ3Rhe3RleHQsdXJsLHRleHRDb2xvcn0scmljaFRleHRUaXRsZXtodG1sU3RyaW5nfX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH0saWR9fWZyYWdtZW50IE9mZmVyaW5nQmFubmVyRnJhZ21lbnRfM1B1SGNMIG9uIFF1ZXJ5e3JhaXNle29mZmVyaW5nVjIoc2x1Zzokc2x1Zyl7X190eXBlbmFtZSwuLi5vbiBUb2tlblNhbGVPZmZlcmluZ3t0aXRsZSxpbWFnZU1ldGFkYXRhe2ltYWdlM3gxfX0saWR9fX1mcmFnbWVudCBPZmZlcmluZ0Jhbm5lclNlY3Rpb25GcmFnbWVudF8yMEo1UGwgb24gUXVlcnl7Li4uT2ZmZXJpbmdCYW5uZXJGcmFnbWVudF8zUHVIY0x9ZnJhZ21lbnQgT2ZmZXJpbmdEZXRhaWxBc2lkZVNlY3Rpb25GcmFnbWVudF8yNllYbUggb24gUXVlcnl7Li4udXNlT2ZmZXJpbmdQaGFzZUZyYWdtZW50XzI2WVhtSH1mcmFnbWVudCBPZmZlcmluZ092ZXJ2aWV3RnJhZ21lbnRfMjZZWG1IIG9uIFF1ZXJ5ey4uLnVzZU9mZmVyaW5nUGhhc2VGcmFnbWVudF8yNllYbUgsdWlDb21wb25lbnRzQnlTdXJmYWNlTG9nZ2VkT3V0KHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9UT0tFTl9TQUxFU19JTkZPX01PREFMUyIsZmlyc3Q6MSlAaW5jbHVkZShpZjokaXNMb2dnZWRPdXQpe2VkZ2Vze25vZGV7Y29tcG9uZW50c3tpZCxjb250ZW50SWQsY29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3RpdGxlVGV4dEZpZWxke3RleHR9LHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ319LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19fSxpZH19LGlkfQogIHJhaXNlQGluY2x1ZGUoaWY6JGlzTG9nZ2VkT3V0KXtvZmZlcmluZ1YyKHNsdWc6JHNsdWcpe19fdHlwZW5hbWUsLi4ub24gVG9rZW5TYWxlT2ZmZXJpbmd7dGl0bGUsZGVzY3JpcHRpb24sYXNzZXR7ZGlzcGxheVN5bWJvbCxpbWFnZVVybCxpZH0sdmFsdWF0aW9uQW1vdW50e3ZhbHVlfSx0YXJnZXRQcmljZXt2YWx1ZSxjdXJyZW5jeX0sb2ZmZXJpbmdBbGxvY2F0aW9uUGVyY2VudGFnZSx0b2tlblNhbGVzU3VwcGxlbWVudGFsVXJsc3tyb2Fkc2hvd1VybCxkaXNjbG9zdXJlc1BkZlVybCxvZmZpY2lhbFdlYnNpdGUseEhhbmRsZX19LGlkfX0sdmlld2VyQHNraXAoaWY6JGlzTG9nZ2VkT3V0KXt1aUNvbXBvbmVudHNCeVN1cmZhY2Uoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX1RPS0VOX1NBTEVTX0lORk9fTU9EQUxTIixmaXJzdDoxKXtlZGdlc3tub2Rle2NvbXBvbmVudHN7aWQsY29udGVudElkLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHt0aXRsZVRleHRGaWVsZHt0ZXh0fSxyaWNoVGV4dERlc2NyaXB0aW9ue2h0bWxTdHJpbmd9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fX0saWR9fSxpZH0scmFpc2V7b2ZmZXJpbmcoc2x1Zzokc2x1Zyxmb3JjZVVwZGF0ZTokZm9yY2VVcGRhdGUpe19fdHlwZW5hbWUsLi4ub24gVG9rZW5TYWxlT2ZmZXJpbmd7dGl0bGUsZGVzY3JpcHRpb24sYXNzZXR7ZGlzcGxheVN5bWJvbCxpbWFnZVVybCxpZH0sdmFsdWF0aW9uQW1vdW50e3ZhbHVlfSx0YXJnZXRQcmljZXt2YWx1ZSxjdXJyZW5jeX0sb2ZmZXJpbmdBbGxvY2F0aW9uUGVyY2VudGFnZSx0b2tlblNhbGVzU3VwcGxlbWVudGFsVXJsc3tyb2Fkc2hvd1VybCxkaXNjbG9zdXJlc1BkZlVybCxvZmZpY2lhbFdlYnNpdGUseEhhbmRsZX19LGlkfX0saWR9fWZyYWdtZW50IE9mZmVyaW5nU2FsZURldGFpbHNGcmFnbWVudF8zUHVIY0wgb24gUXVlcnl7Li4udXNlT2ZmZXJpbmdQaGFzZUZyYWdtZW50XzFzN3RFZCxyYWlzZXtvZmZlcmluZ1YyKHNsdWc6JHNsdWcpe19fdHlwZW5hbWUsLi4ub24gVG9rZW5TYWxlT2ZmZXJpbmd7dGFyZ2V0UmFpc2VBbW91bnR7dmFsdWUsY3VycmVuY3l9LG1pbkludmVzdG1lbnRQZXJVc2Vye3ZhbHVlLGN1cnJlbmN5fSxtYXhJbnZlc3RtZW50UGVyVXNlcnt2YWx1ZSxjdXJyZW5jeX0sdG90YWxBbW91bnRJbnZlc3RlZHt2YWx1ZSxjdXJyZW5jeX19LGlkfX19ZnJhZ21lbnQgT2ZmZXJpbmdTYWxlRGV0YWlsc1NlY3Rpb25GcmFnbWVudF8yMEo1UGwgb24gUXVlcnl7Li4uT2ZmZXJpbmdTYWxlRGV0YWlsc0ZyYWdtZW50XzNQdUhjTH1mcmFnbWVudCBPZmZlcmluZ1RpbWVsaW5lRnJhZ21lbnRfM1B1SGNMIG9uIFF1ZXJ5ey4uLnVzZU9mZmVyaW5nUGhhc2VGcmFnbWVudF8xczd0RWQscmFpc2V7b2ZmZXJpbmdWMihzbHVnOiRzbHVnKXtfX3R5cGVuYW1lLC4uLm9uIFRva2VuU2FsZU9mZmVyaW5ne3B1Ymxpc2hUaW1lLHN0YXJ0VGltZSxlbmRUaW1lLGFzc2V0RGlzdHJpYnV0aW9uVGltZX0saWR9fX1mcmFnbWVudCBPZmZlcmluZ1RpbWVsaW5lU2VjdGlvbkZyYWdtZW50XzIwSjVQbCBvbiBRdWVyeXsuLi5PZmZlcmluZ1RpbWVsaW5lRnJhZ21lbnRfM1B1SGNMfWZyYWdtZW50IFRva2VuU2FsZXNGb290ZXJMb2dnZWRPdXRGcmFnbWVudF8yNllYbUggb24gUXVlcnl7Li4udXNlT2ZmZXJpbmdQaGFzZUZyYWdtZW50XzI2WVhtSH1mcmFnbWVudCBUb2tlblNhbGVzTWV0YVRhZ3NGcmFnbWVudF8yMEo1UGwgb24gUXVlcnl7cmFpc2V7b2ZmZXJpbmdWMihzbHVnOiRzbHVnKXtfX3R5cGVuYW1lLC4uLm9uIFRva2VuU2FsZU9mZmVyaW5ne3RpdGxlLGRlc2NyaXB0aW9uLGJhbm5lckltYWdlVXJsfSxpZH19fWZyYWdtZW50IHVzZU9mZmVyaW5nUGhhc2VGcmFnbWVudF8xczd0RWQgb24gUXVlcnl7cmFpc2V7b2ZmZXJpbmdWMihzbHVnOiRzbHVnKXtfX3R5cGVuYW1lLC4uLm9uIFRva2VuU2FsZU9mZmVyaW5ne3B1Ymxpc2hUaW1lLHN0YXJ0VGltZSxlbmRUaW1lLGFzc2V0RGlzdHJpYnV0aW9uVGltZX0saWR9fX1mcmFnbWVudCB1c2VPZmZlcmluZ1BoYXNlRnJhZ21lbnRfMjZZWG1IIG9uIFF1ZXJ5e3JhaXNlQGluY2x1ZGUoaWY6JGlzTG9nZ2VkT3V0KXtvZmZlcmluZ1YyKHNsdWc6JHNsdWcpe19fdHlwZW5hbWUsLi4ub24gVG9rZW5TYWxlT2ZmZXJpbmd7cHVibGlzaFRpbWUsc3RhcnRUaW1lLGVuZFRpbWUsYXNzZXREaXN0cmlidXRpb25UaW1lfSxpZH19LHZpZXdlckBza2lwKGlmOiRpc0xvZ2dlZE91dCl7cmFpc2V7b2ZmZXJpbmcoc2x1Zzokc2x1Zyxmb3JjZVVwZGF0ZTokZm9yY2VVcGRhdGUpe19fdHlwZW5hbWUsLi4ub24gVG9rZW5TYWxlT2ZmZXJpbmd7cHVibGlzaFRpbWUsc3RhcnRUaW1lLGVuZFRpbWUsYXNzZXREaXN0cmlidXRpb25UaW1lfSxpZH19LGlkfX1gLCIxNmY0M2I2NWRjODViZWE3NzE2ZTlkZGVkZjViNmViNTU1YWI2YTgxMTRkMDcyNDFkMThjOTdhZTU0MGExYmZlIjpgcXVlcnkgU2VhcmNoTXVsdGlTZWN0aW9uYWxRdWVyeSgkcXVlcnk6U3RyaW5nISwkc2VjdGlvbkVudGl0eUxpbWl0OkludCEsJHNraXBMZWdhY3k6Qm9vbGVhbiEsJHNraXBTZWFyY2hWMlVuYXV0aDpCb29sZWFuISwkZW50aXR5VHlwZXM6W1NlYXJjaEVudGl0eVVuYXV0aElucHV0IV0hLCRzaG91bGRVc2VVQVNGaWVsZHM6Qm9vbGVhbiEpe211bHRpU2VjdGlvbmFsU2VhcmNoKHF1ZXJ5OiRxdWVyeSxzZWN0aW9uRW50aXR5TGltaXQ6JHNlY3Rpb25FbnRpdHlMaW1pdCxlbnRpdHlUeXBlczokZW50aXR5VHlwZXMpQHNraXAoaWY6JHNraXBMZWdhY3kpey4uLk11bHRpUHJvZHVjdFNlYXJjaERyb3Bkb3duRnJhZ21lbnR9LG11bHRpU2VjdGlvbmFsU2VhcmNoVjIocXVlcnk6JHF1ZXJ5LHNlYXJjaFJlcXVlc3RzOlt7c2VjdGlvbklkOiJBU1NFVFMiLHVzZUNhc2U6QVNTRVRfR0xPQkFMX1NFQVJDSCxmaXJzdDokc2VjdGlvbkVudGl0eUxpbWl0fSx7c2VjdGlvbklkOiJFUVVJVElFUyIsdXNlQ2FzZTpFUVVJVElFU19HTE9CQUxfU0VBUkNILGZpcnN0OiRzZWN0aW9uRW50aXR5TGltaXR9LHtzZWN0aW9uSWQ6IlBSRURJQ1RJT05TIix1c2VDYXNlOlBSRURJQ1RJT05fTUFSS0VUU19HTE9CQUxfU0VBUkNILGZpcnN0OiRzZWN0aW9uRW50aXR5TGltaXR9LHtzZWN0aW9uSWQ6IlBFUlBFVFVBTFMiLHVzZUNhc2U6UEVSUEVUVUFMU19HTE9CQUxfU0VBUkNILGZpcnN0OiRzZWN0aW9uRW50aXR5TGltaXR9LHtzZWN0aW9uSWQ6IkZVVFVSRVMiLHVzZUNhc2U6RlVUVVJFU19HTE9CQUxfU0VBUkNILGZpcnN0OiRzZWN0aW9uRW50aXR5TGltaXR9XSlAc2tpcChpZjokc2tpcFNlYXJjaFYyVW5hdXRoKXsuLi5NdWx0aVByb2R1Y3RTZWFyY2hEcm9wZG93blYyRnJhZ21lbnR9fWZyYWdtZW50IENyeXB0b1Jvd0ZyYWdtZW50IG9uIEFzc2V0e25hbWUsc2x1ZyxwbGF0Zm9ybU5hbWUsaW1hZ2VVcmwsY21jUmFuayxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiJVU0QiKXtwcmljZSxwZXJjZW50Q2hhbmdlc0Bza2lwKGlmOiRzaG91bGRVc2VVQVNGaWVsZHMpe2RheX0scGVyY2VudENoYW5nZXNWMkBpbmNsdWRlKGlmOiRzaG91bGRVc2VVQVNGaWVsZHMpe2RheX0saWR9LG1hcmtldENhcFYyKHF1b3RlQ3VycmVuY3k6IlVTRCIpLHZvbHVtZTI0aFYyKHF1b3RlQ3VycmVuY3k6IlVTRCIpfWZyYWdtZW50IEVxdWl0aWVzUm93RnJhZ21lbnQgb24gUmV0YWlsQnJva2VyYWdlUHJvZHVjdFNlYXJjaEVudGl0eXtkaXNwbGF5TmFtZSxzaG9ydE5hbWUsdGlja2VyLHByaWNlLHByaWNlUGVyY2VudGFnZUNoYW5nZTI0aCxwcmljZVBlcmNlbnRhZ2VDaGFuZ2VNYXJrZXRIb3Vycyx2b2x1bWUyNGgsbWFya2V0Q2FwfWZyYWdtZW50IEVxdWl0aWVzUm93VjJGcmFnbWVudCBvbiBFcXVpdHlTZWFyY2hFbnRpdHl7cHJvZHVjdElkLG1hcmtldERhdGF7cHJvZHVjdElkLGRpc3BsYXlOYW1lLHNob3J0TmFtZSx0aWNrZXIscHJpY2UscHJpY2VQZXJjZW50YWdlQ2hhbmdlMjRoLHByaWNlUGVyY2VudGFnZUNoYW5nZU1hcmtldEhvdXJzLHZvbHVtZTI0aCxtYXJrZXRDYXB9fWZyYWdtZW50IEZ1dHVyZXNSb3dGcmFnbWVudCBvbiBSZXRhaWxCcm9rZXJhZ2VQcm9kdWN0U2VhcmNoRW50aXR5e3Byb2R1Y3RJZCxkaXNwbGF5TmFtZSxwcmljZSxwcmljZVBlcmNlbnRhZ2VDaGFuZ2UyNGgsYXBwcm94aW1hdGVRdW90ZTI0aFZvbHVtZSxpY29uVXJsLGV4cGlyeURhdGUsdmVudWUsb3BlbkludGVyZXN0fWZyYWdtZW50IEZ1dHVyZXNSb3dWMkZyYWdtZW50IG9uIERlcml2YXRpdmVTZWFyY2hFbnRpdHl7cHJvZHVjdElkLG1hcmtldERhdGF7cHJvZHVjdElkLGRpc3BsYXlOYW1lLHByaWNlLHByaWNlUGVyY2VudGFnZUNoYW5nZTI0aCxhcHByb3hpbWF0ZVF1b3RlMjRoVm9sdW1lLGljb25VcmwsdmVudWUsZXhwaXJ5RGF0ZSxvcGVuSW50ZXJlc3R9fWZyYWdtZW50IE11bHRpUHJvZHVjdFNlYXJjaERyb3Bkb3duRnJhZ21lbnQgb24gTXVsdGlTZWN0aW9uYWxTZWFyY2hVbmF1dGhSZXNwb25zZXtzZWFyY2hTZWN0aW9uc3tzZWFyY2hTZWN0aW9uVHlwZSwuLi5NdWx0aVByb2R1Y3RTZWFyY2hEcm9wZG93blNlY3Rpb25GcmFnbWVudH19ZnJhZ21lbnQgTXVsdGlQcm9kdWN0U2VhcmNoRHJvcGRvd25TZWN0aW9uRnJhZ21lbnQgb24gTXVsdGlTZWN0aW9uYWxTZWFyY2hVbmF1dGhTZWN0aW9ue3NlYXJjaFNlY3Rpb25UeXBlLHNlYXJjaEVudGl0aWVze19fdHlwZW5hbWUsLi4ub24gQXNzZXR7dXVpZCwuLi5DcnlwdG9Sb3dGcmFnbWVudH0sLi4ub24gUmV0YWlsQnJva2VyYWdlUHJvZHVjdFNlYXJjaEVudGl0eXtwcm9kdWN0SWQsZGlzcGxheU5hbWUsZnVuZGluZ1JhdGUsdGlja2VyLC4uLlBlcnBzUm93RnJhZ21lbnQsLi4uRnV0dXJlc1Jvd0ZyYWdtZW50LC4uLkVxdWl0aWVzUm93RnJhZ21lbnR9LC4uLm9uIFJiYUluc3RydW1lbnRHcm91cHtpbnN0cnVtZW50R3JvdXBJZCwuLi5QcmVkaWN0aW9uc1Jvd0ZyYWdtZW50LGlkfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIFJldGFpbEJyb2tlcmFnZVByb2R1Y3R7aWR9fX1mcmFnbWVudCBNdWx0aVByb2R1Y3RTZWFyY2hEcm9wZG93blNlY3Rpb25WMkZyYWdtZW50IG9uIFNlYXJjaFYyVW5hdXRoU2VjdGlvblNlYXJjaFJlc3BvbnNle3NlY3Rpb25JZCxjYW5kaWRhdGVze2VkZ2Vze25vZGV7ZW50aXR5e19fdHlwZW5hbWUsLi4ub24gQXNzZXR7dXVpZCwuLi5DcnlwdG9Sb3dGcmFnbWVudH0sLi4ub24gRXF1aXR5U2VhcmNoRW50aXR5e2Nicm4scHJvZHVjdElkLG1hcmtldERhdGF7ZGlzcGxheU5hbWUsc2hvcnROYW1lLHRpY2tlcn0sLi4uRXF1aXRpZXNSb3dWMkZyYWdtZW50fSwuLi5vbiBEZXJpdmF0aXZlU2VhcmNoRW50aXR5e2Nicm4scHJvZHVjdElkLG1hcmtldERhdGF7ZGlzcGxheU5hbWV9LC4uLlBlcnBzUm93VjJGcmFnbWVudCwuLi5GdXR1cmVzUm93VjJGcmFnbWVudH0sLi4ub24gUHJlZGljdGlvbk1hcmtldFNlYXJjaEVudGl0eXtldmVudElkLHByb2R1Y3RJZCxjYnJuLG1hcmtldERhdGF7ZXZlbnRUaXRsZSx5ZXNUaXRsZXN9LC4uLlByZWRpY3Rpb25zUm93VjJGcmFnbWVudH0sLi4ub24gUmJhSW5zdHJ1bWVudEdyb3Vwe2luc3RydW1lbnRHcm91cElkLC4uLlByZWRpY3Rpb25zUm93RnJhZ21lbnQsaWR9LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH0sLi4ub24gUmV0YWlsQnJva2VyYWdlUHJvZHVjdHtpZH19fX19fWZyYWdtZW50IE11bHRpUHJvZHVjdFNlYXJjaERyb3Bkb3duVjJGcmFnbWVudCBvbiBTZWFyY2hWMlVuYXV0aE11bHRpU2VjdGlvbmFsU2VhcmNoUmVzcG9uc2V7cmVzdWx0c3tzZWN0aW9uSWQsLi4uTXVsdGlQcm9kdWN0U2VhcmNoRHJvcGRvd25TZWN0aW9uVjJGcmFnbWVudH19ZnJhZ21lbnQgUGVycHNSb3dGcmFnbWVudCBvbiBSZXRhaWxCcm9rZXJhZ2VQcm9kdWN0U2VhcmNoRW50aXR5e3Byb2R1Y3RJZCxkaXNwbGF5TmFtZSxwcmljZSxwcmljZVBlcmNlbnRhZ2VDaGFuZ2UyNGgsYXBwcm94aW1hdGVRdW90ZTI0aFZvbHVtZSxpY29uVXJsLHZlbnVlLGZ1bmRpbmdSYXRlfWZyYWdtZW50IFBlcnBzUm93VjJGcmFnbWVudCBvbiBEZXJpdmF0aXZlU2VhcmNoRW50aXR5e3Byb2R1Y3RJZCxtYXJrZXREYXRhe3Byb2R1Y3RJZCxkaXNwbGF5TmFtZSxwcmljZSxwcmljZVBlcmNlbnRhZ2VDaGFuZ2UyNGgsYXBwcm94aW1hdGVRdW90ZTI0aFZvbHVtZSxpY29uVXJsLHZlbnVlLGZ1bmRpbmdSYXRlfX1mcmFnbWVudCBQcmVkaWN0aW9uc1Jvd0ZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtpbnN0cnVtZW50R3JvdXBJZCxwcmVkaWN0aW9uSW1hZ2VVcmw6aW1hZ2VVcmwscHJvZHVjdHMobWF4UHJvZHVjdHM6MSl7cHJpY2UscHJpY2VQZXJjZW50Q2hhbmdlMjRoLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tldmVudFRpdGxlLHllc1RpdGxlc30saWR9fWZyYWdtZW50IFByZWRpY3Rpb25zUm93VjJGcmFnbWVudCBvbiBQcmVkaWN0aW9uTWFya2V0U2VhcmNoRW50aXR5e2V2ZW50SWQsbWFya2V0RGF0YXtldmVudElkLGltYWdlVXJsLHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxldmVudFRpdGxlLHllc1RpdGxlc319YCwiMTc4ZWRlMzM0YzY5MGYyOTg3OTQzOWEzNmIzMGI5MzdkMmJjNmE5Mzg3MjUwMDhhMjI2ZmNiYTdmMDk5MmE0NyI6YHN1YnNjcmlwdGlvbiBTZXJ2ZXJXYWxsZXRTaWduaW5nQ2xpZW50VHJhbnNhY3Rpb25TdGF0dXNTdWJzY3JpcHRpb24oJGlucHV0Ok1hZ2ljV2FsbGV0VHJhbnNhY3Rpb25TdGF0dXNJbnB1dCEpe29uTWFnaWNXYWxsZXRUcmFuc2FjdGlvblN0YXR1c0NoYW5nZWQoaW5wdXQ6JGlucHV0KXt0cmFuc2FjdGlvbnt0cmFuc2FjdGlvblJlZmVyZW5jZSxzdGF0dXMsc2lnbmluZ1N0YXR1cyxjb25maXJtYXRpb25TdGF0dXMsc2lnbmluZ1JlcXVlc3R7c3RhdHVzLGNoYWxsZW5nZSxvd25lcnN7b3duZXJLaW5kLGFjY291bnRBZGRyZXNzLGZpZG9DcmVkZW50aWFsSWQsZmlkb1B1YmxpY0tleSxjZHBTZXJ2ZXJXYWxsZXRBZGRyZXNzLGNkcFByb2plY3RJZH0sc2lnbmluZ1BheWxvYWQsbmV0d29ya30sdHJhbnNhY3Rpb25IYXNoLG5ldHdvcmt9fX1gLCIxOTMzNDMyMDcwMzYyNGMzZTA1OTljOTdjNjMwNWVhMzAzM2I5MTM4NWYyMjgwYTg1YzA3NjJlMTg5YTdiMjljIjpgc3Vic2NyaXB0aW9uIHVzZUxpdmVQcmljZUNoYXJ0c1N1YnNjcmlwdGlvbigkaW5wdXQ6TGF0ZXN0QXNzZXRQcmljZUNoYXJ0VXBkYXRlZElucHV0ISl7bGF0ZXN0QXNzZXRQcmljZUNoYXJ0VXBkYXRlZChpbnB1dDokaW5wdXQpe2xhdGVzdFByaWNlQ2hhcnR7dGltZXN0YW1wLHByaWNlfX19YCwiMTliNDMyOTA1N2IxOTU4ODc5ZTkzMWYyOTY3MzAwMzZkZGJkOWE2Zjg3MGQxMzM4MDg0ZDg0Zjg0ODA2NGQ1ZiI6YG11dGF0aW9uIHVzZVN1Ym1pdEZ1dHVyZXNUcmFkaW5nU1NOVU9CTXV0YXRpb24oJGlucHV0OlN1Ym1pdEZ1dHVyZXNUcmFkaW5nU1NOSW5wdXQhKXtzdWJtaXRGdXR1cmVzVHJhZGluZ1NTTihpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gU3VibWl0RnV0dXJlc1RyYWRpbmdTU05TdWNjZXNze2R1bW15fSwuLi5vbiBHZW5lcmljRXJyb3J7Y29kZSxtZXNzYWdlfX19YCwiMWIyNzk1YTlhNDlhNjMyMzY2NDRmNWM4MmI2ZjczZDc5ZDQyYjkxY2E5ZWEzYjI0Njg3ODgzNTdiYzU3ODkzYSI6YHF1ZXJ5IFByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkc0xpdmVTY29yZVBvbGxlclJlZmV0Y2hRdWVyeSgkbGl2ZUluc3RydW1lbnRHcm91cElkczpbVGhpcmRQYXJ0eUlkU3RyaW5nIV0hLCRza2lwTGl2ZVNjb3JlczpCb29sZWFuISl7Li4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRzTGl2ZVNjb3JlUG9sbGVyRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRzTGl2ZVNjb3JlUG9sbGVyRnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdlQHNraXAoaWY6JHNraXBMaXZlU2NvcmVzKXtsaXZlU2NvcmVJbnN0cnVtZW50R3JvdXBzOmluc3RydW1lbnRHcm91cHNCeUlkcyhpbnN0cnVtZW50R3JvdXBUeXBlOlBSRURJQ1RJT05fTUFSS0VULGluc3RydW1lbnRHcm91cElkczokbGl2ZUluc3RydW1lbnRHcm91cElkcyl7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7bGl2ZUV2ZW50e3N0YXR1cyxtaWxlc3RvbmVze2VucmljaGVkRGF0YXtfX3R5cGVuYW1lLC4uLm9uIFJiYUJhc2tldGJhbGxHYW1lRW5yaWNoZWR7cGVyaW9kLHBlcmlvZFR5cGUsY2xvY2ssaG9tZVRlYW17dGVhbUlkLHBvaW50c30sYXdheVRlYW17dGVhbUlkLHBvaW50c319LC4uLm9uIFJiYVRlbm5pc01hdGNoRW5yaWNoZWR7Y3VycmVudFNldCxwbGF5ZXIxe3BsYXllcklkLHNldHNXb24sY3VycmVudEdhbWVQb2ludHMsaXNXaW5uZXIsaXNTZXJ2aW5nLGhhc0FkdmFudGFnZSxzY29yZXN7c2NvcmUsb3V0Y29tZX19LHBsYXllcjJ7cGxheWVySWQsc2V0c1dvbixjdXJyZW50R2FtZVBvaW50cyxpc1dpbm5lcixpc1NlcnZpbmcsaGFzQWR2YW50YWdlLHNjb3Jlc3tzY29yZSxvdXRjb21lfX19LC4uLm9uIFJiYVNvY2Nlck1hdGNoRW5yaWNoZWR7aGFsZix0aW1lLHNob3dQZW5hbHRpZXMsaG9tZVRlYW17dGVhbUlkLHNhbWVHYW1lU2NvcmUscGVuYWx0aWVzLGlzV2lubmVyfSxhd2F5VGVhbXt0ZWFtSWQsc2FtZUdhbWVTY29yZSxwZW5hbHRpZXMsaXNXaW5uZXJ9fSwuLi5vbiBSYmFCYXNlYmFsbEdhbWVFbnJpY2hlZHtpbm5pbmcsaW5uaW5nSGFsZixvdXRzLGhvbWVUZWFte3RlYW1JZCxydW5zLGlzV2lubmVyfSxhd2F5VGVhbXt0ZWFtSWQscnVucyxpc1dpbm5lcn19LC4uLm9uIFJiYUhvY2tleUdhbWVFbnJpY2hlZHtwZXJpb2QsY2xvY2ssaG9tZVRlYW17dGVhbUlkLGdvYWxzLGlzV2lubmVyfSxhd2F5VGVhbXt0ZWFtSWQsZ29hbHMsaXNXaW5uZXJ9fX19fX0saWR9fX1gLCIxYjc2ZGY1MjM0MjU3MzFkMGEzYTBiOWVlMzg3ZTQyNzUyNGQ2NDJjZjk4NGZkYWI4MGRjOTM1OTY5ZjgxYjcwIjpgbXV0YXRpb24gdXNlVW5hdXRoZWRBcHByb3ZlVmF1bHRXaXRoZHJhd2FsTXV0YXRpb24oJGlucHV0OkFwcHJvdmVWYXVsdFdpdGhkcmF3YWxVbmF1dGhlbnRpY2F0ZWRJbnB1dCEpe2FwcHJvdmVWYXVsdFdpdGhkcmF3YWxVbmF1dGhlbnRpY2F0ZWQoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIEFwcHJvdmVWYXVsdFdpdGhkcmF3YWxVbmF1dGhlbnRpY2F0ZWRTdWNjZXNze3dpdGhkcmF3YWxTdGF0dXN9LC4uLm9uIEJhZFJlcXVlc3RFcnJvcnttZXNzYWdlLGNvZGV9fX1gLCIxYmY0OGVjNWFiNmQ4MmYyYmVlODMwYmFhMWQ0NjcxNzkyYzI0YWE0NmQ3ZmI5ZjcwNGFlMGM2YWJhMjY5YWNmIjpgcXVlcnkgRnV0dXJlc0luc2lnaHRzUXVlcnkoJGNvbnRyYWN0VGFnOlN0cmluZyEsJGV4cGlyYXRpb25EYXRlOlN0cmluZyEsJG1pbmltdW1PcmRlclNpemU6U3RyaW5nISl7dWlDb21wb25lbnRzQnlTdXJmYWNlTG9nZ2VkT3V0KHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9TSU1QTEVfREVSSVZBVElWRVNfSU5TSUdIVFMiLGNhdGVnb3J5TmFtZXM6IlVJX0NPTVBPTkVOVF9DQVRFR09SWV9TSU1QTEVfREVSSVZBVElWRVNfSU5TSUdIVFMiLGZpbHRlcjp7cmVsZXZhbnRUYWdzRmlsdGVyOntyZWxldmFudFRhZ3M6WyRjb250cmFjdFRhZ119fSx0ZW1wbGF0ZVZhcmlhYmxlczp7ZW50cmllczpbe2tleToiY29udHJhY3RfZXhwaXJhdGlvbl9kYXRlIix2YWx1ZTokZXhwaXJhdGlvbkRhdGV9LHtrZXk6Im1pbmltdW1fb3JkZXJfc2l6ZSIsdmFsdWU6JG1pbmltdW1PcmRlclNpemV9XX0pey4uLnVzZUluc2lnaHRzRnJhZ21lbnQsaWR9fWZyYWdtZW50IHVzZUluc2lnaHRzRnJhZ21lbnQgb24gVUlDb21wb25lbnRzQ29ubmVjdGlvbntlZGdlc3tub2Rle2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHt0ZXh0RmllbGRze2tleSx0ZXh0fX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fX1gLCIxYzIzOGI2MjM2ZTViNTlmYzYwZGZlOWZjZDc2ODFlMDUwYWQ5NzM4ZGU5NWM5YWZiOTRjZGZiODQ5Y2RkMDc4IjpgbXV0YXRpb24gQ2hhdEhlYWRlclVuYXV0aFNvZnRDbG9zZU11dGF0aW9uKCRpbnB1dDpDcmVhdGVVbmF1dGhlbnRpY2F0ZWRFdmVudElucHV0ISl7ZXZlbnQ6Y3JlYXRlVW5hdXRoZW50aWNhdGVkRXZlbnQoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIENyZWF0ZVVuYXV0aGVudGljYXRlZEV2ZW50U3VjY2Vzc3tjb252ZXJzYXRpb25FdmVudHtjdXJzb3Isbm9kZXtpZCx1dWlkLHR5cGV9fX0sLi4ub24gQmFkUmVxdWVzdEVycm9ye19fdHlwZW5hbWUsY29kZSxtZXNzYWdlfX19YCwiMWMzMzZlN2Y4YjhmMGI5YWRkYWZlNWM5MGE3ZTZiZjNlZTAwMzdlYjllMzA4MGQ5NTllNzY4YmNjYTIxOTNhZSI6YHF1ZXJ5IE1hcmtldGluZ01hcmtldFNlbGVjdG9yVjNRdWVyeXsuLi5NYXJrZXRTZWxlY3RvclYzRHJhd2VyRnJhZ21lbnR9ZnJhZ21lbnQgTWFya2V0U2VsZWN0b3JWM0RyYXdlckZyYWdtZW50IG9uIFF1ZXJ5ey4uLk1hcmtldFNlbGVjdG9yVjNUYWJsZUZyYWdtZW50LC4uLk1vYmlsZU1hcmtldFNlbGVjdG9yVjNEcmF3ZXJGcmFnbWVudH1mcmFnbWVudCBNYXJrZXRTZWxlY3RvclYzVGFibGVGcmFnbWVudCBvbiBRdWVyeXsuLi5WaXJ0dWFsTWFya2V0U2VsZWN0b3JWM1RhYmxlUHJvZHVjdFJvd0Jhc2VGcmFnbWVudCwuLi5SZWNvbW1lbmRlZEFzc2V0c0xpc3RGcmFnbWVudH1mcmFnbWVudCBNYXJrZXRTZWxlY3RvclYzVGFibGVQcm9kdWN0Um93RnJhZ21lbnQgb24gUXVlcnl7dmlld2Vye3JldGFpbEJyb2tlcmFnZXtwcm9kdWN0V2F0Y2hsaXN0e3Byb2R1Y3RJZHMsaWR9fSxpZH19ZnJhZ21lbnQgTW9iaWxlTWFya2V0U2VsZWN0b3JWM0RyYXdlckZyYWdtZW50IG9uIFF1ZXJ5ey4uLk1hcmtldFNlbGVjdG9yVjNUYWJsZUZyYWdtZW50fWZyYWdtZW50IFJlY29tbWVuZGVkQXNzZXRzTGlzdEZyYWdtZW50IG9uIFF1ZXJ5ey4uLlZpcnR1YWxNYXJrZXRTZWxlY3RvclYzVGFibGVQcm9kdWN0Um93QmFzZUZyYWdtZW50fWZyYWdtZW50IFZpcnR1YWxNYXJrZXRTZWxlY3RvclYzVGFibGVQcm9kdWN0Um93QmFzZUZyYWdtZW50IG9uIFF1ZXJ5ey4uLk1hcmtldFNlbGVjdG9yVjNUYWJsZVByb2R1Y3RSb3dGcmFnbWVudH1gLCIxY2UwNjA3MDMyNDJjMmZmYTEyODhiZmFiNjAxMmZlNGY0ZmY2NDQ1N2E2NjdhOTQ2MzRlOWQ5NmU5NzY4OGU3IjpgbXV0YXRpb24gdXNlVW5hdXRoZWRDYW5jZWxWYXVsdFdpdGhkcmF3YWxNdXRhdGlvbigkaW5wdXQ6Q2FuY2VsVmF1bHRXaXRoZHJhd2FsVW5hdXRoZW50aWNhdGVkSW5wdXQhKXtjYW5jZWxWYXVsdFdpdGhkcmF3YWxVbmF1dGhlbnRpY2F0ZWQoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIENhbmNlbFZhdWx0V2l0aGRyYXdhbFVuYXV0aGVudGljYXRlZFN1Y2Nlc3N7d2l0aGRyYXdhbFN0YXR1c30sLi4ub24gQmFkUmVxdWVzdEVycm9ye21lc3NhZ2UsY29kZX19fWAsIjFmYTMyNTAyZDFkY2RiOTAxOTBiNTg3NTBjZDkxMzA5MTM2MWJlZDdiNmZhOWIzYzdjNWE2MDBmNTlkY2Y3NDUiOmBxdWVyeSB1c2VFbnJpY2hlZFRpY2tlcnNRdWVyeXt2aWV3ZXJ7dWlDb21wb25lbnRzQnlTdXJmYWNlKHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9TV0VFUFNUQUtFU19NQUlMRVIiLGZpcnN0OjUwLHNraXBDYWNoZTp0cnVlKXtlZGdlc3tub2Rle2NvbXBvbmVudEpzb24sY29tcG9uZW50c3tjb21wb25lbnRKc29uLGlkfSxpZH19LGlkfSxpZH19YCwiMWZjNmUzNDhjMTAzNDg4OTdlYjlhNDk1NGQxMTU2YTkwMjIzYmFhMWRlZGQyMWZjNzA4MmRkY2VlYzE0Y2ZiMiI6YHF1ZXJ5IHVzZVVuaWZpZWRJbnR4QmxvY2tpbmdSZXN0cmljdGlvbkZldGNoZXJRdWVyeXt2aWV3ZXJ7YmxvY2tpbmdFeHBlcmllbmNlc0ZvckFjdGlvbihhY3Rpb246e2FjdGlvblR5cGU6VFJBTlNBQ1RfSU5UWH0pe2V4cGVyaWVuY2Vze3R5cGUsY29tcG9uZW50Q29udGV4dH19LGlkfX1gLCIyMDE3NjIyNmI1ZmMwNWI0NzU4ZGJkZWYxNjZhYjIzNmU1MjA2YjY1MWVjMmZiYjM4Y2I0ZGY5ZjYzM2IzOTdiIjpgbXV0YXRpb24gQ2hhdEhlYWRlclNvZnRDbG9zZU11dGF0aW9uKCRpbnB1dDpDcmVhdGVDb252ZXJzYXRpb25FdmVudElucHV0ISl7ZXZlbnQ6Y3JlYXRlQ29udmVyc2F0aW9uRXZlbnQoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIENyZWF0ZUNvbnZlcnNhdGlvbkV2ZW50U3VjY2Vzc3tjb252ZXJzYXRpb25FdmVudHtjdXJzb3Isbm9kZXtpZCx1dWlkLHR5cGV9fX0sLi4ub24gQmFkUmVxdWVzdEVycm9ye19fdHlwZW5hbWUsY29kZSxtZXNzYWdlfX19YCwiMjFlNWFhNGZmMzAxNzgzZDcwMWI1MGNjNGIwZmM3ODBhY2FkMDc1ZGY2ZDA3ZDA1NDM4Mjk2MWZjMzljMzgyZCI6YG11dGF0aW9uIFVPQlVwZGF0ZUFpRmlsZVVwbG9hZE11dGF0aW9uKCRpbnB1dDpVcGRhdGVNYW51YWxBY2NyZWRpdGF0aW9uRG9jdW1lbnRVcGxvYWRJbnB1dCEpe3VwZGF0ZU1hbnVhbEFjY3JlZGl0YXRpb25Eb2N1bWVudFVwbG9hZChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gVXBkYXRlTWFudWFsQWNjcmVkaXRhdGlvbkRvY3VtZW50VXBsb2FkU3VjY2Vzc3t1c2VyQWNjcmVkaXRhdGlvbnt1dWlkLHN0YXR1cyxpZH19LC4uLm9uIEdlbmVyaWNFcnJvcnttZXNzYWdlfX19YCwiMjMyYTg5ODFmNTA1MzcwZjM4OTMwNjM4Yjk3MDQxZGVmYTNiYmNlMTcyYThiMTMyNWYxMjk5NmEzOTA4MzlmNyI6YHF1ZXJ5IENhbGxUb0FjdGlvbnNRdWVyeSgkcHJvbW9Db2RlOlN0cmluZyEsJGNvdW50cnlDb2RlOlN0cmluZyEpe3Byb21vQ29kZURhdGFGcm9tTnV4KHJlZmVyQ29kZTokcHJvbW9Db2RlLGNvdW50cnlDb2RlOiRjb3VudHJ5Q29kZSl7Y29kZVR5cGUsZXJyb3JDb2RlfX1gLCIyMzU1NDZmM2ZmODA5MDhiMzU4ZDdlOGUwM2Y1ZjEyZmMyMDhmNjYzOWU5MWM3ZDYzMThkMDAyODNlNzE1ZTJlIjpgcXVlcnkgQ29pbmJhc2VPbmVQYXJ0bmVyc2hpcHNJbm5lclYyUXVlcnkoJGNhbXBhaWduSWQ6U3RyaW5nISl7Y2IxUGFydG5lcnNoaXBzVW5pcXVlRWxlbWVudHM6dWlDb21wb25lbnRzQnlTdXJmYWNlTG9nZ2VkT3V0KHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9DQjFfUEFSVE5FUlNISVBTX0xPR0dFRF9PVVQiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfQ0IxX1BBUlRORVJTSElQU19SRVZBTVBFRF9IRUFERVJfVU5JUVVFX0VMRU1FTlRTX0NPTlRBSU5FUiJdLGZpbHRlcjp7cmVsZXZhbnRUYWdzRmlsdGVyOntyZWxldmFudFRhZ3M6WyRjYW1wYWlnbklkXX19LHNraXBDYWNoZTp0cnVlKXtlZGdlc3tub2Rle2NhdGVnb3J5TmFtZSwuLi5Db2luYmFzZU9uZVBhcnRuZXJzaGlwc0hlYWRlclYyRWxlbWVudHNGcmFnbWVudCxpZH19LC4uLnVzZUxvZ0luc3VmZmljaWVudERQRGF0YUVycm9yRnJhZ21lbnQsaWR9LGNiMVBhcnRuZXJzaGlwc1NoYXJlZEVsZW1lbnRzOnVpQ29tcG9uZW50c0J5U3VyZmFjZUxvZ2dlZE91dChzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfQ0IxX1BBUlRORVJTSElQU19MT0dHRURfT1VUIixjYXRlZ29yeU5hbWVzOlsiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX0NCMV9QQVJUTkVSU0hJUFNfRkFRX0NPTlRBSU5FUiJdLHNraXBDYWNoZTp0cnVlKXtlZGdlc3tub2Rle2NhdGVnb3J5TmFtZSwuLi5Db2luYmFzZU9uZVBhcnRuZXJzaGlwc0ZhcVNlY3Rpb25GcmFnbWVudCxpZH19LC4uLnVzZUxvZ0luc3VmZmljaWVudERQRGF0YUVycm9yRnJhZ21lbnQsaWR9fWZyYWdtZW50IENvaW5iYXNlT25lUGFydG5lcnNoaXBzRmFxU2VjdGlvbkZyYWdtZW50IG9uIFVJQ29tcG9uZW50e2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50Q29udGFpbmVye3RpdGxlLHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ30sY29tcG9uZW50c3tjYXRlZ29yeU5hbWUsY29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3RpdGxlVGV4dEZpZWxke3RleHR9LHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ319LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX19ZnJhZ21lbnQgQ29pbmJhc2VPbmVQYXJ0bmVyc2hpcHNIZWFkZXJWMkVsZW1lbnRzRnJhZ21lbnQgb24gVUlDb21wb25lbnR7Y2F0ZWdvcnlOYW1lLHRleHRWYXJpYWJsZXN7ZW50cmllc3trZXksdmFsdWV9fSxjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudENvbnRhaW5lcntjb21wb25lbnRze2NhdGVnb3J5TmFtZSxjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGVUZXh0RmllbGR7dGV4dH0sZGVzY3JpcHRpb25UZXh0RmllbGR7dGV4dH0saW1hZ2V7dXJsfSxwcmltYXJ5Q29tcG9uZW50Q3Rhe3RleHQsdXJsfSxzZWNvbmRhcnlDb21wb25lbnRDdGF7dGV4dCx1cmx9LHN1YnRpdGxlVGV4dEZpZWxke3RleHR9LHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ30scmljaFRleHRGaWVsZHN7aHRtbFN0cmluZyxrZXl9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fSxpZH19LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19fWZyYWdtZW50IHVzZUxvZ0luc3VmZmljaWVudERQRGF0YUVycm9yRnJhZ21lbnQgb24gVUlDb21wb25lbnRzQ29ubmVjdGlvbntlbGlnaWJpbGl0eVN0YXR1c3tpbmVsaWdpYmxlUmVhc29uc30sZXJyb3J7X190eXBlbmFtZSxtZXNzYWdlLGNvZGV9fWAsIjIzYzQ0ZTBmYzQ2ZDM4MGFjZDlhYzkxNTY4YjYyZDhlYTUxNmI0NDVhMGJhNmNhNTllNjdiNTMyMTMxNjI5NjIiOmBxdWVyeSBKb2luUGFnZVNpZ25VcENvbnRlbnREZXNjcmlwdGlvblF1ZXJ5KCRyZWZlckNvZGU6U3RyaW5nISwkc2hvdWxkU2tpcERlc2NyaXB0aW9uOkJvb2xlYW4hKXt1aUNvbXBvbmVudHNCeVN1cmZhY2VMb2dnZWRPdXQoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX1JFRkVSUkFMU19IVUIiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfUkVGRVJSQUxTX0pPSU4iXSxmaWx0ZXI6e3ZhcmlhYmxlc0ZpbHRlcjp7dGV4dFZhcmlhYmxlczp7ZW50cmllczpbe2tleToicmVmZXJfY29kZSIsdmFsdWU6JHJlZmVyQ29kZX1dfX19LHNraXBDYWNoZTp0cnVlKUBza2lwKGlmOiRzaG91bGRTa2lwRGVzY3JpcHRpb24pe2VkZ2Vze25vZGV7Y29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e2Rlc2NyaXB0aW9uVGV4dEZpZWxke3RleHR9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fSxpZH19LGlkfX1gLCIyNmE5MjFkNTJjNWQxZjIzYTU5MTE0NGI0MTk0ZjMyZjZmNzdkOWRkOTBmNjgyZDdiZTdkMGM0ZThlZTMyZmI1IjpgcXVlcnkgUHJldmlld1BhZ2VRdWVyeSgkcXVvdGVDdXJyZW5jeTpUaWNrZXJTeW1ib2whLCRzdGFrYWJsZVRhYmxlQ3Vyc29yOlN0cmluZywkc2hvdWxkVXNlVUFTRmllbGRzOkJvb2xlYW4hLCRhc3NldExpbWl0OkludCEpey4uLkZlYXR1cmVBc3NldHNGcmFnbWVudF80cTVSckQsLi4uRWFyblN0YWtlVGFibGVGcmFnbWVudF80bWdVNGl9ZnJhZ21lbnQgRWFyblN0YWtlVGFibGVGcmFnbWVudF80bWdVNGkgb24gUXVlcnl7c3Rha2luZ0Fzc2V0cyhmaXJzdDo5LGFmdGVyOiRzdGFrYWJsZVRhYmxlQ3Vyc29yLGZpbHRlcjpTVVBQT1JURURfT05fQ09JTkJBU0Upe3RvdGFsQ291bnQscGFnZUluZm97c3RhcnRDdXJzb3IsZW5kQ3Vyc29yfSxlZGdlc3tub2Rle25hbWUsaW1hZ2VVcmwsZGlzcGxheVN5bWJvbCxzbHVnLG1hcmtldENhcFYyKHF1b3RlQ3VycmVuY3k6JHF1b3RlQ3VycmVuY3kpLHN0YWtpbmdTdGF0c3twZXJjZW50YWdlU3Rha2VkLGlzU3VwcG9ydGVkT25Db2luYmFzZSxoYXNTdGFraW5nUGFnZSxyZXdhcmRBcHl9LGlkfX19fWZyYWdtZW50IEZlYXR1cmVBc3NldHNGcmFnbWVudF80cTVSckQgb24gUXVlcnl7dHJhZGFibGU6c2VhcmNoQXNzZXRzVjIoZmlyc3Q6JGFzc2V0TGltaXQsb3JkZXI6REVTQyxxdWVyeToiIixyZXNvbHV0aW9uOkRBWSxmaWx0ZXI6TElTVEVELHNvcnQ6TUFSS0VUX0NBUCl7ZWRnZXN7bm9kZXt1dWlkLC4uLkZlYXR1cmVBc3NldHNSb3dGcmFnbWVudF8yak9FNE0saWR9fX0sdG9wR2FpbmVyczpzZWFyY2hBc3NldHNWMihmaXJzdDokYXNzZXRMaW1pdCxvcmRlcjpERVNDLHF1ZXJ5OiIiLHJlc29sdXRpb246REFZLGZpbHRlcjpUT1BfR0FJTkVSUyxzb3J0OlBFUkNFTlRfQ0hBTkdFKXtlZGdlc3tub2Rle3V1aWQsLi4uRmVhdHVyZUFzc2V0c1Jvd0ZyYWdtZW50XzJqT0U0TSxpZH19fSxuZXdPbkNvaW5iYXNlOnNlYXJjaEFzc2V0c1YyKGZpcnN0OiRhc3NldExpbWl0LGZpbHRlcjpSRUNFTlRMWV9MSVNURURfM19NT05USFMpe2VkZ2Vze25vZGV7dXVpZCwuLi5GZWF0dXJlQXNzZXRzUm93RnJhZ21lbnRfMmpPRTRNLGlkfX19fWZyYWdtZW50IEZlYXR1cmVBc3NldHNSb3dGcmFnbWVudF8yak9FNE0gb24gQXNzZXR7dXVpZCxuYW1lLHNsdWcsaW1hZ2VVcmwsZGlzcGxheVN5bWJvbCxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRxdW90ZUN1cnJlbmN5KXtwcmljZSxwZXJjZW50Q2hhbmdlc0Bza2lwKGlmOiRzaG91bGRVc2VVQVNGaWVsZHMpe2RheX0scGVyY2VudENoYW5nZXNWMkBpbmNsdWRlKGlmOiRzaG91bGRVc2VVQVNGaWVsZHMpe2RheX0saWR9fWAsIjI3OGM5NjVhZTc2MGMxN2IwZWM2NTI5NTEzYjFhMTc0ODA4ZDMwZDVhYTFkNTkyOTI1YzIzNzMxMjMwMmI1NWMiOmBxdWVyeSBBcnRpY2xlQ29udGVudEh1YlF1ZXJ5ey4uLlBvcHVsYXJBc3NldHNGcmFnbWVudH1mcmFnbWVudCBQb3B1bGFyQXNzZXRzRnJhZ21lbnQgb24gUXVlcnl7YXNzZXRzOnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpMSVNURUQsc29ydDpSQU5LLG9yZGVyOkFTQyxmaXJzdDo1MCxyZXNvbHV0aW9uOkRBWSl7ZWRnZXN7bm9kZXtpZCxuYW1lLHNsdWcsaW1hZ2VVcmx9fX19YCwiMjhjMjQ5ZjViNDNmMmE4ZDUxZWFhNTcyNmRlODZlMmRmMWI3ODgwYzljNjE3N2E4MjI4MjBlZTVmODA1NzM5MyI6YG11dGF0aW9uIHVzZVNlbGVjdENyZWRpdExpbWl0TXV0YXRpb24oJGlucHV0OlNlbGVjdENyZWRpdExpbWl0SW5wdXQhLCRpc1NlY3VyZWRDcmVkaXRDYXJkRW5hYmxlZDpCb29sZWFuISl7c2VsZWN0Q3JlZGl0TGltaXQoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFNlbGVjdENyZWRpdExpbWl0U3VjY2Vzc3thcHBsaWNhdGlvbntzdGF0dXMsaWR9LHZpZXdlcntjcmVkaXRDYXJke29uYm9hcmRpbmd7YXBwbGljYXRpb257b2ZmZXJWMkBpbmNsdWRlKGlmOiRpc1NlY3VyZWRDcmVkaXRDYXJkRW5hYmxlZCl7X190eXBlbmFtZSwuLi5vbiBTZWN1cmVkQ2FyZE9mZmVye3NlbGVjdGVkQ3JlZGl0TGluZUFtb3VudHt2YWx1ZSxjdXJyZW5jeX19fSxpZH19LGlkfSxpZH19LC4uLm9uIENyZWRpdENhcmRBY3Rpb25hYmxlRXJyb3J7ZGVzY3JpcHRpb259fX1gLCIyYTEzMGNjMTBkYjE3NWRjMTExZmFjM2I5ZjJiYzNkMmZlNTEzODAwNzcwN2U5ZGNlNzViNjZmMTk0NGRhOTNlIjpgcXVlcnkgSG93VG9CdXlJbmRleFF1ZXJ5KCRjdXJyZW5jeTpUaWNrZXJTeW1ib2whLCRjb3VudHJ5OlN0cmluZyEsJGxvY2FsZTpTdXBwb3J0ZWRMb2NhbGUhKXsuLi5IdGJJbmRleEhlcm9GcmFnbWVudF80c2t1VWUsLi4uU2VhcmNoRnJhZ21lbnRfMXZSS1JaLC4uLkh0YkNyeXB0b0luZGV4U2VjdGlvbkZyYWdtZW50LC4uLk90aGVyUmVjb21tZW5kZWRHdWlkZXNGcmFnbWVudF8zZjRhNXF9ZnJhZ21lbnQgSHRiQ3J5cHRvSW5kZXhTZWN0aW9uRnJhZ21lbnQgb24gUXVlcnl7Li4uUmVsYXRlZEhvd1RvQnV5RnJhZ21lbnR9ZnJhZ21lbnQgSHRiSW5kZXhIZXJvRnJhZ21lbnRfNHNrdVVlIG9uIFF1ZXJ5e21hcmtldEhlYWx0aFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXttYXJrZXRDYXBTdGF0c3t2YWx1ZSxwZXJjZW50Q2hhbmdlfX19ZnJhZ21lbnQgT3RoZXJSZWNvbW1lbmRlZEd1aWRlc0ZyYWdtZW50XzNmNGE1cSBvbiBRdWVyeXsuLi5UcmVuZGluZ0Fzc2V0c0h0YkluZGV4RnJhZ21lbnRfM2Y0YTVxLC4uLlJlY2VudGx5QWRkZWRBc3NldHNIb3dUb0J1eUluZGV4RnJhZ21lbnQsLi4uUG9wdWxhckNyeXB0b0Fzc2V0c0ZyYWdtZW50LC4uLlN0YWtlQ3J5cHRvQXNzZXRzRnJhZ21lbnR9ZnJhZ21lbnQgUG9wdWxhckNyeXB0b0Fzc2V0c0ZyYWdtZW50IG9uIFF1ZXJ5e3BvcHVsYXJBc3NldHM6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOkxJU1RFRCxzb3J0OlJBTkssb3JkZXI6QVNDLGZpcnN0OjEyLHJlc29sdXRpb246REFZKXtlZGdlc3tub2Rle2lkLG5hbWUsc2x1ZyxpbWFnZVVybCxwbGF0Zm9ybU5hbWV9fX19ZnJhZ21lbnQgUmVjZW50bHlBZGRlZEFzc2V0c0hvd1RvQnV5SW5kZXhGcmFnbWVudCBvbiBRdWVyeXtzZWFyY2hBc3NldHNWMihmaWx0ZXI6UkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTLGZpcnN0OjEyKXtlZGdlc3tub2Rle2lkLG5hbWUsc2x1ZyxpbWFnZVVybH19fX1mcmFnbWVudCBSZWxhdGVkSG93VG9CdXlGcmFnbWVudCBvbiBRdWVyeXthc3NldHM6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOkxJU1RFRCxzb3J0OlJBTkssb3JkZXI6QVNDLGZpcnN0OjI0LHJlc29sdXRpb246REFZKXtlZGdlc3tub2Rle2lkLG5hbWUsc2x1ZyxpbWFnZVVybH19fX1mcmFnbWVudCBTZWFyY2hGcmFnbWVudF8xdlJLUlogb24gUXVlcnl7Z2VuZXJpY1NlYXJjaEFzc2V0cyhjb3VudHJ5OiRjb3VudHJ5LGZpbHRlcjpBTEwpe3RvdGFsQXNzZXRDb3VudH19ZnJhZ21lbnQgU3Rha2VDcnlwdG9Bc3NldHNGcmFnbWVudCBvbiBRdWVyeXtzdGFraW5nQXNzZXRzKGZpbHRlcjpTVVBQT1JURURfT05fQ09JTkJBU0Upe2VkZ2Vze25vZGV7c2x1ZyxuYW1lLGltYWdlVXJsLGlkLHBsYXRmb3JtTmFtZX19fX1mcmFnbWVudCBUcmVuZGluZ0Fzc2V0c0h0YkluZGV4RnJhZ21lbnRfM2Y0YTVxIG9uIFF1ZXJ5e2RhaWx5TW9zdFZpZXdlZEFzc2V0cyhzdXBwb3J0ZWRMb2NhbGU6JGxvY2FsZSl7YXNzZXR7aWQsbmFtZSxzbHVnLGltYWdlVXJsfX19YCwiMmI5Mjc4MGZhYTZiNGRkYmE5OGY4NDM5OGUyZDIzZjdkYThlOGI3N2I4NzUwYjYwYTcyNjFiOGJiZTk1MWFmNSI6YHF1ZXJ5IEFzc2V0Q3VycmVuY3lJY29uUXVlcnkoJHNraXBBc3NldEJ5U3ltYm9sOkJvb2xlYW4hLCRza2lwQXNzZXRCeVV1aWQ6Qm9vbGVhbiEsJHN5bWJvbDpTdHJpbmchLCRhc3NldFV1aWQ6VXVpZCEpe2Fzc2V0QnlTeW1ib2woc3ltYm9sOiRzeW1ib2wpQHNraXAoaWY6JHNraXBBc3NldEJ5U3ltYm9sKXtpbWFnZVVybCxpZH0sYXNzZXRCeVV1aWQodXVpZDokYXNzZXRVdWlkKUBza2lwKGlmOiRza2lwQXNzZXRCeVV1aWQpe2ltYWdlVXJsLGlkfX1gLCIyYmNlMGI1MDY1ZjY1ZjFlMzFmYTNhZTgzMzkyNWYxODc5Yjc2MTg3NjA5MGYxNTk0OTJjYTUzODEzM2U5ODZlIjpgbXV0YXRpb24gdXNlU2NoZWR1bGVGdXR1cmVzTWFudWFsU3dlZXBBVFNNdXRhdGlvbigkaW5wdXQ6U2NoZWR1bGVGdXR1cmVzTWFudWFsU3dlZXBJbnB1dCEpe3NjaGVkdWxlRnV0dXJlc01hbnVhbFN3ZWVwKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZX19YCwiMmMwYTAyOGUzMWEyOTMyNzk4ZTIxNzM3YzlkYmMzODJkNWYzZmIwZGU2ZTdiMzEyOWY0MDBmOTA3ZTZjYzg5NCI6YHF1ZXJ5IENvbnZlcnRlckNvbnRleHRBc3NldEJ5U3ltYm9sUXVlcnkoJGJhc2VTeW1ib2w6U3RyaW5nISwkdGFyZ2V0U3ltYm9sOlN0cmluZyEsJHNraXBCYXNlQXNzZXRRdWVyeTpCb29sZWFuISwkc2tpcFRhcmdldEFzc2V0UXVlcnk6Qm9vbGVhbiEsJHVzZXJDdXJyZW5jeTpUaWNrZXJTeW1ib2whKXtiYXNlQXNzZXQ6YXNzZXRCeVN5bWJvbChzeW1ib2w6JGJhc2VTeW1ib2wpQHNraXAoaWY6JHNraXBCYXNlQXNzZXRRdWVyeSl7c2x1ZyxuYW1lLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JHVzZXJDdXJyZW5jeSl7cHJpY2UsaWR9LGlkfSx0YXJnZXRBc3NldDphc3NldEJ5U3ltYm9sKHN5bWJvbDokdGFyZ2V0U3ltYm9sKUBza2lwKGlmOiRza2lwVGFyZ2V0QXNzZXRRdWVyeSl7c2x1ZyxuYW1lLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JHVzZXJDdXJyZW5jeSl7cHJpY2UsaWR9LGlkfX1gLCIyYzZhM2YzODk2Y2M1NzY1YzllYTg4Yjg0ZTEzYzAwMGE0ZDMwZThlMmYyYTc0MjMwNmFiMDFhMDQxNjVmYTI2IjpgcXVlcnkgVU9CTWV0aG9kU2VsZWN0VjJTdGVwUXVlcnkoJHNraXBBY2NyZWRpdGF0aW9uU3RhdHVzOkJvb2xlYW4hKXt2aWV3ZXJ7YWNjcmVkaXRhdGlvblN0YXR1c0Bza2lwKGlmOiRza2lwQWNjcmVkaXRhdGlvblN0YXR1cyl7YXZhaWxhYmxlTWV0aG9kc3ttZXRob2QsY2FuQXR0ZW1wdCxmYWlsdXJlUmVhc29ufX0saWR9fWAsIjJjYTVlODI3YWYwMDFiNDMyNWZlY2Q4YmZmMDY3ZWY0ZjlhMDYwMzZkNGViOTQyOTViYmQ0NDNkMzczNjY1ODAiOmBtdXRhdGlvbiB1c2VNaW50UGF5bWVudExpbmtGcm9tUGF5bWVudExpbmtQYWdlTXV0YXRpb24oJGlucHV0Ok1pbnRQYXltZW50TGlua0Zyb21QYXltZW50TGlua1BhZ2VJbnB1dCEpe21pbnRQYXltZW50TGlua0Zyb21QYXltZW50TGlua1BhZ2UoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIE1pbnRQYXltZW50TGlua0Zyb21QYXltZW50TGlua1BhZ2VTdWNjZXNze3BheW1lbnRMaW5re3V1aWQsc3RhdHVzLHBheW1lbnRVcmwsc3VjY2Vzc1JlZGlyZWN0VXJsLGZhaWxSZWRpcmVjdFVybCxpZH19LC4uLm9uIE1pbnRQYXltZW50TGlua0Zyb21QYXltZW50TGlua1BhZ2VFcnJvcnt0aXRsZSxkZXNjcmlwdGlvbn19fWAsIjJjZWZjZmQzMzExNzE0MmIxNjJlNTA4ZDkxMzZmNmQ5M2Q2YjZjMzUzNzdhZmU3MDYzZTY0NTQ1YThmMTdkYmEiOmBtdXRhdGlvbiBDaGF0SGVhZGVyRm9yY2VDbG9zZU11dGF0aW9uKCRpbnB1dDpVcGRhdGVDb252ZXJzYXRpb25JbnB1dCEpe3Jlc3VsdDp1cGRhdGVDb252ZXJzYXRpb24oaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFVwZGF0ZUNvbnZlcnNhdGlvblN1Y2Nlc3N7Y29udmVyc2F0aW9ue2lkLHV1aWQsaXNDbG9zZWR9fX19YCwiMmRmNTZmNThlN2YyM2VhZDg1ZjcxYjQ1MWZkMzNjMDU3NmU3OTJhYjYxNzhkYWM5NDRiMGVmMzEyZTA2NzBiMiI6YHF1ZXJ5IHVzZVRyYW5zZmVyU3RhdHVzQVRTUXVlcnkoJHRyYW5zZmVySWQ6VXVpZCEpe3ZpZXdlcntpbnR4VHJhbnNmZXJCeVV1aWQodXVpZDokdHJhbnNmZXJJZCl7dHJhbnNmZXJTdGF0dXMsaWR9LGlkfX1gLCIyZTg0MGQ1ZmU5YTJlN2QyMzFiYzBhMjcyMGVkYzA5YzAwYTYxNWI4NmQzN2UwNzMxOWFkMDU2Y2RkYjRjOTM2IjpgcXVlcnkgQ29pbmJhc2VHcmFwaFFMVHJhbnNwb3J0UHJvZHVjdEJ5U3ltYm9sUXVlcnkoJHN5bWJvbDpTdHJpbmchKXtyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdEJ5U3ltYm9sKHN5bWJvbDokc3ltYm9sKXtwcm9kdWN0SWQsaWR9fX1gLCIyZjY2N2U5MmJjYTYzMWIyNmVjODE3OWIxZTQ4NGIyNDU1M2RhYWFmNjkwYjk0ZWYyNTFmYTRhZWQ5ODhlYTM0IjpgcXVlcnkgdXNlR2V0UHJpY2VDaGFydERhdGFRdWVyeSgkc2tpcDpCb29sZWFuISwkc2x1ZzpTdHJpbmchLCRjdXJyZW5jeTpUaWNrZXJTeW1ib2whKXthc3NldEJ5U2x1ZyhzbHVnOiRzbHVnKUBza2lwKGlmOiRza2lwKXtob3VyOnByaWNlRGF0YUZvckhvdXJWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cXVvdGVze3ByaWNlLHRpbWVzdGFtcH0seUF4aXNTY2FsaW5nRmFjdG9yfSxkYXk6cHJpY2VEYXRhRm9yRGF5VjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3F1b3Rlc3twcmljZSx0aW1lc3RhbXB9LHlBeGlzU2NhbGluZ0ZhY3Rvcn0sd2VlazpwcmljZURhdGFGb3JXZWVrVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3F1b3Rlc3twcmljZSx0aW1lc3RhbXB9LHlBeGlzU2NhbGluZ0ZhY3Rvcn0sbW9udGg6cHJpY2VEYXRhRm9yTW9udGhWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cXVvdGVze3ByaWNlLHRpbWVzdGFtcH0seUF4aXNTY2FsaW5nRmFjdG9yfSx5ZWFyOnByaWNlRGF0YUZvclllYXJWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cXVvdGVze3ByaWNlLHRpbWVzdGFtcH0seUF4aXNTY2FsaW5nRmFjdG9yfSxhbGw6cHJpY2VEYXRhRm9yQWxsVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3F1b3Rlc3twcmljZSx0aW1lc3RhbXB9LHlBeGlzU2NhbGluZ0ZhY3Rvcn0sbGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3ByaWNlLHRpbWVzdGFtcCxpZH0saWR9fWAsIjMwNGU0MWI3NTNkOWVmNjNlMDhiZGQ0N2E4NTNjNzUwNWRhYWIzYjcxMzkxMjg5ODA3MTlmYWFjNzdhYjEyNDIiOmBtdXRhdGlvbiB1c2VVbmF1dGhlZEFwcHJvdmVWYXVsdEFjY291bnRNdXRhdGlvbigkaW5wdXQ6QXBwcm92ZVZhdWx0QWNjb3VudFVuYXV0aGVudGljYXRlZElucHV0ISl7YXBwcm92ZVZhdWx0QWNjb3VudFVuYXV0aGVudGljYXRlZChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gQXBwcm92ZVZhdWx0QWNjb3VudFVuYXV0aGVudGljYXRlZFN1Y2Nlc3N7c3RhdHVzfSwuLi5vbiBCYWRSZXF1ZXN0RXJyb3J7bWVzc2FnZSxjb2RlfX19YCwiMzFhMWVlZmRjNzNhMWEyYTU1NzU1Njc0ZmU2NjMwZmFiMDZhMWRmY2Q5YjAyZTI5ZjFiYzRjM2M3NTBmZmI4NyI6YHF1ZXJ5IEVhcm5QYWdlVjJRdWVyeSgkc3Rha2FibGVUYWJsZVNpemU6SW50ISwkc3Rha2FibGVUYWJsZUN1cnNvcjpTdHJpbmcsJHF1b3RlQ3VycmVuY3k6VGlja2VyU3ltYm9sISl7Li4uRWFyblN0YWtlVGFibGVGcmFnbWVudF8yaFVqbGd9ZnJhZ21lbnQgRWFyblN0YWtlVGFibGVGcmFnbWVudF8yaFVqbGcgb24gUXVlcnl7c3Rha2luZ0Fzc2V0cyhmaXJzdDokc3Rha2FibGVUYWJsZVNpemUsYWZ0ZXI6JHN0YWthYmxlVGFibGVDdXJzb3IsZmlsdGVyOlNVUFBPUlRFRF9PTl9DT0lOQkFTRSl7dG90YWxDb3VudCxwYWdlSW5mb3tzdGFydEN1cnNvcixlbmRDdXJzb3J9LGVkZ2Vze25vZGV7bmFtZSxpbWFnZVVybCxkaXNwbGF5U3ltYm9sLHNsdWcsbWFya2V0Q2FwVjIocXVvdGVDdXJyZW5jeTokcXVvdGVDdXJyZW5jeSksc3Rha2luZ1N0YXRze3BlcmNlbnRhZ2VTdGFrZWQsaXNTdXBwb3J0ZWRPbkNvaW5iYXNlLGhhc1N0YWtpbmdQYWdlLHJld2FyZEFweX0saWR9fX19YCwiMzFjOTU2NjQzZDkxYTU3ZWExZDM1MzQzM2Y0N2JmMDdhNzFkYTdmM2I1MGUzMmIzZmQyY2U5ZjNiZGYxM2JlNCI6YG11dGF0aW9uIHVzZVByb2R1Y3RXYXRjaGxpc3RXYXRjaE11dGF0aW9uKCRwcm9kdWN0SWQ6U3RyaW5nISl7cmV0YWlsQnJva2VyYWdlV2F0Y2hQcm9kdWN0KGlucHV0Ontwcm9kdWN0SWQ6JHByb2R1Y3RJZH0pe19fdHlwZW5hbWUsdmlld2Vye3JldGFpbEJyb2tlcmFnZXtwcm9kdWN0V2F0Y2hsaXN0e3Byb2R1Y3RJZHMsaWR9fSxpZH19fWAsIjMyMmVkZDc0ZWNlNjNlMjVlNWQwMjdkNDkxNzdjOWI4NDgyZDU0MzRjMWEwOWYxODhjM2IwYmQ3YzFmZDU4NzkiOmBtdXRhdGlvbiB1c2VBbm9uVG91Y2hDYXB0dXJlTXV0YXRpb24oJGlucHV0OlVwc2VydEFub255bW91c1RvdWNoSW5wdXQhKXt1cHNlcnRBbm9ueW1vdXNUb3VjaChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gVXBzZXJ0QW5vbnltb3VzVG91Y2hTdWNjZXNze19fdHlwZW5hbWV9LC4uLm9uIFVwc2VydEFub255bW91c1RvdWNoRXJyb3J7X190eXBlbmFtZSxtZXNzYWdlLGNvZGUsY29ycmVsYXRpb25JZH19fWAsIjMyYjc5NzBkMWZiZTQ2NzRhMmNlMjc2ODZkYjFhZWQwOTJjYjg5NDRmZWFmY2I5M2ZhM2NiNjE5M2IwNTA2YTkiOmBxdWVyeSBDb252ZXJ0ZXJMYXlvdXRRdWVyeSgkYmFzZVN5bWJvbDpTdHJpbmchLCRiYXNlRmlhdDpUaWNrZXJTeW1ib2whLCR0YXJnZXRDdXJyZW5jeTpUaWNrZXJTeW1ib2whLCRiYXNlQ3VycmVuY3k6VGlja2VyU3ltYm9sISwkY291bnRyeTpTdHJpbmchLCR0YXJnZXRTeW1ib2w6U3RyaW5nISwkbG9jYWxlOkxvY2FsZSEsJGdlbmVyaWNUYWJsZVBhZ2U6SW50ISwkZ2VuZXJpY1RhYmxlQXNzZXRzUGVyUGFnZTpJbnQhLCRza2lwRmV0Y2hpbmdDdXJyZW5jeTpCb29sZWFuISwkc2tpcEZldGNoaW5nU2Vjb25kQXNzZXQ6Qm9vbGVhbiEsJGNvbnZlcnNpb25Ub29sVGFyZ2V0OlN0cmluZyEsJGlzR2VuZXJpY1BhZ2U6Qm9vbGVhbiEsJHVybDpTdHJpbmchLCRpc0Fzc2V0UGFpcjpCb29sZWFuISwkaXNGaWF0UGFpcjpCb29sZWFuISwkaXNNaXhlZFBhaXI6Qm9vbGVhbiEsJHNob3VsZFVzZVVBU0ZpZWxkczpCb29sZWFuISl7YmFzZUFzc2V0VjI6YXNzZXRCeVN5bWJvbChzeW1ib2w6JGJhc2VTeW1ib2wpe25hbWUsaWQsY29sb3Isc2x1ZyxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSl7cHJpY2UscXVvdGVDdXJyZW5jeU5hbWUscXVvdGVDdXJyZW5jeSxpZH0sc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeSl7aXNUcmFkYWJsZSxpc1dhbGxldH19LHRhcmdldEFzc2V0VjI6YXNzZXRCeVN5bWJvbChzeW1ib2w6JHRhcmdldFN5bWJvbCl7aWQsbmFtZSxjb2xvcixzbHVnLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGJhc2VDdXJyZW5jeSl7cHJpY2UscXVvdGVDdXJyZW5jeSxpZH0sc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeSl7aXNUcmFkYWJsZSxpc1dhbGxldH19LG5hdGl2ZUN1cnJlbmNpZXN7aWQsY3VycmVuY3lDb2RlLG5hbWV9LGV4Y2hhbmdlUmF0ZXNWNChiYXNlQ3VycmVuY3k6JGJhc2VGaWF0LGN1cnJlbmNpZXM6WyR0YXJnZXRTeW1ib2xdKUBpbmNsdWRlKGlmOiRpc0ZpYXRQYWlyKXtwcmljZX0sc2VvTWV0YWRhdGEodXJsOiR1cmwpe3RpdGxlVGFncyxpc1RpdGxlVGFnVG90YWxPdmVycmlkZSxzaG91bGROb0luZGV4LHNob3VsZFJlZGlyZWN0fSwuLi51c2VDb252ZXJzaW9uTWV0YURhdGFGcmFnbWVudCwuLi51c2VBc3NldFRyYWRpbmdQYWlyTWV0YURhdGFGcmFnbWVudCwuLi51c2VGaWF0RmlhdE1ldGFEYXRhRnJhZ21lbnQsLi4uQ29udmVyc2lvblRvb2xDb252ZXJ0ZXJSZWRlc2lnbkZyYWdtZW50XzJTSHl4NCwuLi5HZW5lcmljQ29udmVydGVyUGFnZUZyYWdtZW50Xzh1dnF5LC4uLk92ZXJ2aWV3VjJGcmFnbWVudCwuLi5GYXFTZWN0aW9uQ29udmVydGVyUmVkZXNpZ25GcmFnbWVudCwuLi5Db252ZXJzaW9uVGFibGVWMkZyYWdtZW50LC4uLlJlbGF0ZWRDb252ZXJzaW9uc0ZyYWdtZW50XzR2c20yNSwuLi5Db252ZXJzaW9uVGFibGVGaWF0U2VjdGlvbkZyYWdtZW50fWZyYWdtZW50IEFzc2V0UmVzb3VyY2VzRnJhZ21lbnQgb24gQXNzZXR7b2ZmaWNpYWxXZWJzaXRlLHdoaXRlUGFwZXIsc2x1ZyxtaWNhRGlzY2xvc3VyZXt3aGl0ZVBhcGVyVVJMLHN1c3RhaW5hYmlsaXR5VVJMfX1mcmFnbWVudCBDb252ZXJzaW9uVGFibGVGaWF0U2VjdGlvbkZyYWdtZW50IG9uIFF1ZXJ5e25hdGl2ZUN1cnJlbmNpZXN7Y3VycmVuY3lDb2RlLG5hbWUsaWR9LGV4Y2hhbmdlUmF0ZXNWNChiYXNlQ3VycmVuY3k6JGJhc2VGaWF0LGN1cnJlbmNpZXM6WyR0YXJnZXRTeW1ib2xdKUBpbmNsdWRlKGlmOiRpc0ZpYXRQYWlyKXtxdW90ZUN1cnJlbmN5TmFtZSxxdW90ZUN1cnJlbmN5LHByaWNlLHRpbWVzdGFtcH0sLi4uRmlhdFRvRmlhdEZyYWdtZW50fWZyYWdtZW50IENvbnZlcnNpb25UYWJsZVYyRnJhZ21lbnQgb24gUXVlcnl7YmFzZUFzc2V0OmFzc2V0QnlTeW1ib2woc3ltYm9sOiRiYXNlU3ltYm9sKXtkaXNwbGF5U3ltYm9sLGxhdGVzdDpsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSl7cHJpY2UsdGltZXN0YW1wLGlkfSxkYXk6cHJpY2VEYXRhRm9yRGF5VjIocXVvdGVDdXJyZW5jeTokdGFyZ2V0Q3VycmVuY3kpe2VhcmxpZXN0UXVvdGV7cHJpY2V9fSx3ZWVrOnByaWNlRGF0YUZvcldlZWtWMihxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSl7ZWFybGllc3RRdW90ZXtwcmljZX19LG1vbnRoOnByaWNlRGF0YUZvck1vbnRoVjIocXVvdGVDdXJyZW5jeTokdGFyZ2V0Q3VycmVuY3kpe2VhcmxpZXN0UXVvdGV7cHJpY2V9fSx5ZWFyOnByaWNlRGF0YUZvclllYXJWMihxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSl7ZWFybGllc3RRdW90ZXtwcmljZX19LGlkfSx0YXJnZXRBc3NldDphc3NldEJ5U3ltYm9sKHN5bWJvbDokdGFyZ2V0U3ltYm9sKXtkaXNwbGF5U3ltYm9sLGxhdGVzdDpsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRiYXNlQ3VycmVuY3kpe3ByaWNlLHRpbWVzdGFtcCxpZH0sZGF5OnByaWNlRGF0YUZvckRheVYyKHF1b3RlQ3VycmVuY3k6JGJhc2VDdXJyZW5jeSl7ZWFybGllc3RRdW90ZXtwcmljZX19LHdlZWs6cHJpY2VEYXRhRm9yV2Vla1YyKHF1b3RlQ3VycmVuY3k6JGJhc2VDdXJyZW5jeSl7ZWFybGllc3RRdW90ZXtwcmljZX19LG1vbnRoOnByaWNlRGF0YUZvck1vbnRoVjIocXVvdGVDdXJyZW5jeTokYmFzZUN1cnJlbmN5KXtlYXJsaWVzdFF1b3Rle3ByaWNlfX0seWVhcjpwcmljZURhdGFGb3JZZWFyVjIocXVvdGVDdXJyZW5jeTokYmFzZUN1cnJlbmN5KXtlYXJsaWVzdFF1b3Rle3ByaWNlfX0saWR9fWZyYWdtZW50IENvbnZlcnNpb25Ub29sQ29udmVydGVyUmVkZXNpZ25GcmFnbWVudF8yU0h5eDQgb24gUXVlcnl7YXNzZXRCeVN5bWJvbChzeW1ib2w6JGJhc2VTeW1ib2wpe25hbWUsZGlzcGxheVN5bWJvbCxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSlAc2tpcChpZjokc2tpcEZldGNoaW5nQ3VycmVuY3kpe3ByaWNlLHF1b3RlQ3VycmVuY3ksdGltZXN0YW1wLGlkfSxpbWFnZVVybCxzdXBwb3J0ZWRDb250ZXh0c0ZvckxvY2F0aW9uKGNvdW50cnlDb2RlOiRjb3VudHJ5KXtpc1RyYWRhYmxlLGlzRGV4LGlzV2FsbGV0fSxjb2luTWFya2V0Q2FwSWQsY29pbkdlY2tvSWQsaWR9LGFzc2V0Mjphc3NldEJ5U3ltYm9sKHN5bWJvbDokY29udmVyc2lvblRvb2xUYXJnZXQpQHNraXAoaWY6JHNraXBGZXRjaGluZ1NlY29uZEFzc2V0KXtpbWFnZVVybCxpZH19ZnJhZ21lbnQgQ29udmVydEFzc2V0c0dlbmVyaWNTZWN0aW9uUmVkZXNpZ25GcmFnbWVudCBvbiBRdWVyeXsuLi5Qcm9ncmFtbWF0aWNDb250ZW50Q29udmVydEFzc2V0c0dlbmVyaWNTZWN0aW9uUmVkZXNpZ25GcmFnbWVudH1mcmFnbWVudCBGYXFTZWN0aW9uQ29udmVydGVyUmVkZXNpZ25GcmFnbWVudCBvbiBRdWVyeXsuLi51c2VHZXRDb252ZXJ0ZXJGYXFEYXRhRnJhZ21lbnRfVkw5MiwuLi51c2VHZXRDb252ZXJ0ZXJGaWF0RmFxRGF0YUZyYWdtZW50XzN1TnZven1mcmFnbWVudCBGaWF0VG9GaWF0RnJhZ21lbnQgb24gUXVlcnl7bmF0aXZlQ3VycmVuY2llc3tjdXJyZW5jeUNvZGUsaWR9LGV4Y2hhbmdlUmF0ZXNWNChiYXNlQ3VycmVuY3k6JGJhc2VGaWF0LGN1cnJlbmNpZXM6WyR0YXJnZXRTeW1ib2xdKUBpbmNsdWRlKGlmOiRpc0ZpYXRQYWlyKXtxdW90ZUN1cnJlbmN5LHByaWNlfX1mcmFnbWVudCBHZW5lcmljQ29udmVydGVyUGFnZUZyYWdtZW50Xzh1dnF5IG9uIFF1ZXJ5ey4uLkNvbnZlcnRBc3NldHNHZW5lcmljU2VjdGlvblJlZGVzaWduRnJhZ21lbnQsLi4uVG9wVHJhZGluZ1BhaXJzUmVkZXNpZ25GcmFnbWVudEBpbmNsdWRlKGlmOiRpc0dlbmVyaWNQYWdlKSwuLi5Ub3BBc3NldHNHZW5lcmljU2VjdGlvblJlZGVzaWduRnJhZ21lbnR9ZnJhZ21lbnQgTWFya2V0U3RhdHNGcmFnbWVudCBvbiBRdWVyeXtiYXNlQXNzZXRWMjphc3NldEJ5U3ltYm9sKHN5bWJvbDokYmFzZVN5bWJvbClAc2tpcChpZjokaXNHZW5lcmljUGFnZSl7ZGVzY3JpcHRpb246ZGVzY3JpcHRpb25WMihsb2NhbGU6JGxvY2FsZSksbmFtZSxkaXNwbGF5U3ltYm9sLGNpcmN1bGF0aW5nU3VwcGx5LG1hcmtldENhcDptYXJrZXRDYXBWMihxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSksdm9sdW1lMjRIOnZvbHVtZTI0aFYyKHF1b3RlQ3VycmVuY3k6JHRhcmdldEN1cnJlbmN5KSxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSl7cHJpY2UsaWR9LC4uLkFzc2V0UmVzb3VyY2VzRnJhZ21lbnQsaWR9CiAgdGFyZ2V0QXNzZXRWMjphc3NldEJ5U3ltYm9sKHN5bWJvbDokdGFyZ2V0U3ltYm9sKUBza2lwKGlmOiRpc0dlbmVyaWNQYWdlKXtkZXNjcmlwdGlvbjpkZXNjcmlwdGlvblYyKGxvY2FsZTokbG9jYWxlKSxuYW1lLGRpc3BsYXlTeW1ib2wsY2lyY3VsYXRpbmdTdXBwbHksbWFya2V0Q2FwOm1hcmtldENhcFYyKHF1b3RlQ3VycmVuY3k6JGJhc2VDdXJyZW5jeSksdm9sdW1lMjRIOnZvbHVtZTI0aFYyKHF1b3RlQ3VycmVuY3k6JGJhc2VDdXJyZW5jeSksbGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTokYmFzZUN1cnJlbmN5KXtwcmljZSxpZH0sLi4uQXNzZXRSZXNvdXJjZXNGcmFnbWVudCxpZH0sLi4udXNlSXNNaWNhRWxpZ2libGVGcmFnbWVudH1mcmFnbWVudCBPdmVydmlld1YyRnJhZ21lbnQgb24gUXVlcnl7YmFzZUFzc2V0OmFzc2V0QnlTeW1ib2woc3ltYm9sOiRiYXNlU3ltYm9sKUBza2lwKGlmOiRpc0dlbmVyaWNQYWdlKXtkaXNwbGF5U3ltYm9sLG5hbWUsaWR9CiAgdGFyZ2V0QXNzZXQ6YXNzZXRCeVN5bWJvbChzeW1ib2w6JHRhcmdldFN5bWJvbClAc2tpcChpZjokaXNHZW5lcmljUGFnZSl7ZGlzcGxheVN5bWJvbCxuYW1lLGlkfSwuLi5NYXJrZXRTdGF0c0ZyYWdtZW50LC4uLlByb2dyYW1tYXRpY0NvbnRlbnRWMkZyYWdtZW50fWZyYWdtZW50IFByb2dyYW1tYXRpY0NvbnRlbnRDb252ZXJ0QXNzZXRzR2VuZXJpY1NlY3Rpb25SZWRlc2lnbkZyYWdtZW50IG9uIFF1ZXJ5e2JpdGNvaW46YXNzZXRCeVN5bWJvbChzeW1ib2w6IkJUQyIpe21hcmtldENhcFYyKHF1b3RlQ3VycmVuY3k6JHRhcmdldEN1cnJlbmN5KSxjaXJjdWxhdGluZ1N1cHBseSxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSl7cHJpY2UscXVvdGVDdXJyZW5jeSxwZXJjZW50Q2hhbmdlc0Bza2lwKGlmOiRzaG91bGRVc2VVQVNGaWVsZHMpe2RheSx5ZWFyfSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5LHllYXJ9LGlkfSxpZH0sZXRoZXJldW06YXNzZXRCeVN5bWJvbChzeW1ib2w6IkVUSCIpe21hcmtldENhcFYyKHF1b3RlQ3VycmVuY3k6JHRhcmdldEN1cnJlbmN5KSxjaXJjdWxhdGluZ1N1cHBseSxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSl7cHJpY2UscXVvdGVDdXJyZW5jeSxwZXJjZW50Q2hhbmdlc0Bza2lwKGlmOiRzaG91bGRVc2VVQVNGaWVsZHMpe2RheSx5ZWFyfSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5LHllYXJ9LGlkfSxpZH19ZnJhZ21lbnQgUHJvZ3JhbW1hdGljQ29udGVudFYyRnJhZ21lbnQgb24gUXVlcnl7YmFzZUFzc2V0VjI6YXNzZXRCeVN5bWJvbChzeW1ib2w6JGJhc2VTeW1ib2wpe2Rlc2NyaXB0aW9uOmRlc2NyaXB0aW9uVjIobG9jYWxlOiRsb2NhbGUpLG5hbWUsZGlzcGxheVN5bWJvbCxwcmljZURhdGFGb3JIb3VyVjIocXVvdGVDdXJyZW5jeTokdGFyZ2V0Q3VycmVuY3kpe3BlcmNlbnRDaGFuZ2V9LHByaWNlRGF0YUZvckRheVYyKHF1b3RlQ3VycmVuY3k6JHRhcmdldEN1cnJlbmN5KXtwZXJjZW50Q2hhbmdlLHF1b3RlUHJpY2VzLGVhcmxpZXN0UXVvdGV7cHJpY2V9fSxwcmljZURhdGFGb3JXZWVrVjIocXVvdGVDdXJyZW5jeTokdGFyZ2V0Q3VycmVuY3kpe3BlcmNlbnRDaGFuZ2UsZWFybGllc3RRdW90ZXtwcmljZX19LHByaWNlRGF0YUZvck1vbnRoVjIocXVvdGVDdXJyZW5jeTokdGFyZ2V0Q3VycmVuY3kpe3BlcmNlbnRDaGFuZ2UsZWFybGllc3RRdW90ZXtwcmljZX19LHByaWNlRGF0YUZvclllYXJWMihxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSl7cGVyY2VudENoYW5nZSxlYXJsaWVzdFF1b3Rle3ByaWNlfX0sbGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTokdGFyZ2V0Q3VycmVuY3kpe3ByaWNlLHF1b3RlQ3VycmVuY3lOYW1lLHF1b3RlQ3VycmVuY3ksaWR9LGNpcmN1bGF0aW5nU3VwcGx5LG1hcmtldENhcDptYXJrZXRDYXBWMihxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSksdm9sdW1lUGVyY2VudENoYW5nZTI0aFYyKHF1b3RlQ3VycmVuY3k6JHRhcmdldEN1cnJlbmN5KSx2b2x1bWUyNEg6dm9sdW1lMjRoVjIocXVvdGVDdXJyZW5jeTokdGFyZ2V0Q3VycmVuY3kpLGlkfSx0YXJnZXRBc3NldFYyOmFzc2V0QnlTeW1ib2woc3ltYm9sOiR0YXJnZXRTeW1ib2wpe2Rlc2NyaXB0aW9uOmRlc2NyaXB0aW9uVjIobG9jYWxlOiRsb2NhbGUpLG5hbWUsZGlzcGxheVN5bWJvbCxwcmljZURhdGFGb3JIb3VyVjIocXVvdGVDdXJyZW5jeTokYmFzZUN1cnJlbmN5KXtwZXJjZW50Q2hhbmdlfSxwcmljZURhdGFGb3JEYXlWMihxdW90ZUN1cnJlbmN5OiRiYXNlQ3VycmVuY3kpe3BlcmNlbnRDaGFuZ2UscXVvdGVQcmljZXMsZWFybGllc3RRdW90ZXtwcmljZX19LHByaWNlRGF0YUZvcldlZWtWMihxdW90ZUN1cnJlbmN5OiRiYXNlQ3VycmVuY3kpe3BlcmNlbnRDaGFuZ2UsZWFybGllc3RRdW90ZXtwcmljZX19LHByaWNlRGF0YUZvck1vbnRoVjIocXVvdGVDdXJyZW5jeTokYmFzZUN1cnJlbmN5KXtwZXJjZW50Q2hhbmdlLGVhcmxpZXN0UXVvdGV7cHJpY2V9fSxwcmljZURhdGFGb3JZZWFyVjIocXVvdGVDdXJyZW5jeTokYmFzZUN1cnJlbmN5KXtwZXJjZW50Q2hhbmdlLGVhcmxpZXN0UXVvdGV7cHJpY2V9fSxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRiYXNlQ3VycmVuY3kpe3ByaWNlLHF1b3RlQ3VycmVuY3kscXVvdGVDdXJyZW5jeU5hbWUsaWR9LGNpcmN1bGF0aW5nU3VwcGx5LG1hcmtldENhcDptYXJrZXRDYXBWMihxdW90ZUN1cnJlbmN5OiRiYXNlQ3VycmVuY3kpLHZvbHVtZVBlcmNlbnRDaGFuZ2UyNGhWMihxdW90ZUN1cnJlbmN5OiRiYXNlQ3VycmVuY3kpLHZvbHVtZTI0SDp2b2x1bWUyNGhWMihxdW90ZUN1cnJlbmN5OiRiYXNlQ3VycmVuY3kpLGlkfX1mcmFnbWVudCBSZWxhdGVkQ29udmVyc2lvbnNGcmFnbWVudF80dnNtMjUgb24gUXVlcnl7dG9wMjBBc3NldFRvUmFuZG9tRmlhdDppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToiY29udmVydGVyIixyZXF1ZXN0SW5wdXQ6e2NvbnZlcnRlclJlcXVlc3RJbnB1dDp7YmFzZVN5bWJvbDokYmFzZVN5bWJvbCx0YXJnZXRTeW1ib2w6JHRhcmdldFN5bWJvbCxiYXNlOntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0FTU0VULHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAsdG9wTjoyMH0sdGFyZ2V0OntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0ZJQVR9LHJlcXVlc3RBbW91bnQ6MTJ9fSlAc2tpcChpZjokaXNNaXhlZFBhaXIpe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0NvbnZlcnRlckVudGl0eXtiYXNle25hbWUsaWNvblVybH0sdGFyZ2V0e25hbWV9LHBhZ2VVcmx9fX0scmFuZG9tRmlhdFRvUmFuZG9tRmlhdDppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToiY29udmVydGVyIixyZXF1ZXN0SW5wdXQ6e2NvbnZlcnRlclJlcXVlc3RJbnB1dDp7YmFzZVN5bWJvbDokYmFzZVN5bWJvbCx0YXJnZXRTeW1ib2w6JHRhcmdldFN5bWJvbCxiYXNlOntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0ZJQVR9LHRhcmdldDp7ZW50aXR5VHlwZTpFTlRJVFlfVFlQRV9GSUFUfSxyZXF1ZXN0QW1vdW50OjEyfX0pQHNraXAoaWY6JGlzQXNzZXRQYWlyKXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NDb252ZXJ0ZXJFbnRpdHl7YmFzZXtuYW1lLHN5bWJvbH0sdGFyZ2V0e25hbWV9LHBhZ2VVcmx9fX0scmFuZG9tVG9wMTBBc3NldFRvUmFuZG9tVG9wMTBBc3NldDppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToiY29udmVydGVyIixyZXF1ZXN0SW5wdXQ6e2NvbnZlcnRlclJlcXVlc3RJbnB1dDp7YmFzZVN5bWJvbDokYmFzZVN5bWJvbCx0YXJnZXRTeW1ib2w6JHRhcmdldFN5bWJvbCxiYXNlOntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0FTU0VULHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAsdG9wTjoxMH0sdGFyZ2V0OntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0FTU0VULHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAsdG9wTjoxMH0scmVxdWVzdEFtb3VudDoxMn19KUBza2lwKGlmOiRpc0ZpYXRQYWlyKXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NDb252ZXJ0ZXJFbnRpdHl7YmFzZXtuYW1lLGljb25Vcmx9LHRhcmdldHtuYW1lfSxwYWdlVXJsfX19CiAgcmFuZG9tQXNzZXRUb1JhbmRvbUZpYXQ6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6ImNvbnZlcnRlciIscmVxdWVzdElucHV0Ontjb252ZXJ0ZXJSZXF1ZXN0SW5wdXQ6e2Jhc2VTeW1ib2w6JGJhc2VTeW1ib2wsdGFyZ2V0U3ltYm9sOiR0YXJnZXRTeW1ib2wsYmFzZTp7ZW50aXR5VHlwZTpFTlRJVFlfVFlQRV9BU1NFVH0sdGFyZ2V0OntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0ZJQVR9LHJlcXVlc3RBbW91bnQ6MTJ9fSlAc2tpcChpZjokaXNGaWF0UGFpcil7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzQ29udmVydGVyRW50aXR5e2Jhc2V7bmFtZSxpY29uVXJsfSx0YXJnZXR7bmFtZX0scGFnZVVybH19fSxyYW5kb21Bc3NldFRvUmFuZG9tQXNzZXQ6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6ImNvbnZlcnRlciIscmVxdWVzdElucHV0Ontjb252ZXJ0ZXJSZXF1ZXN0SW5wdXQ6e2Jhc2VTeW1ib2w6JGJhc2VTeW1ib2wsdGFyZ2V0U3ltYm9sOiR0YXJnZXRTeW1ib2wsYmFzZTp7ZW50aXR5VHlwZTpFTlRJVFlfVFlQRV9BU1NFVH0sdGFyZ2V0OntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0FTU0VUfSxyZXF1ZXN0QW1vdW50OjEyfX0pQGluY2x1ZGUoaWY6JGlzQXNzZXRQYWlyKXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NDb252ZXJ0ZXJFbnRpdHl7YmFzZXtuYW1lLGljb25Vcmx9LHRhcmdldHtuYW1lfSxwYWdlVXJsfX19fWZyYWdtZW50IFRvcEFzc2V0c0dlbmVyaWNTZWN0aW9uUmVkZXNpZ25GcmFnbWVudCBvbiBRdWVyeXtnZW5lcmljU2VhcmNoQXNzZXRzKHBhZ2U6JGdlbmVyaWNUYWJsZVBhZ2UsZmlyc3Q6JGdlbmVyaWNUYWJsZUFzc2V0c1BlclBhZ2Upe3RvdGFsQXNzZXRDb3VudCxlZGdlc3tub2Rle25hbWUsaW1hZ2VVcmwscGxhdGZvcm1OYW1lLGlkfX19fWZyYWdtZW50IFRvcFRyYWRpbmdQYWlyc1JlZGVzaWduRnJhZ21lbnQgb24gUXVlcnl7YXNzZXQxUGFpcjphc3NldFRyYWRpbmdQYWlyKGN1cnJlbnRNYXJrZXQ6IkVUSCIsc29ydE9wdGlvbjpERVMsZmlsdGVyT3B0aW9uOkNVUlJFTlRfTUFSS0VULGZpcnN0OjEyKXtiYXNlQXNzZXR7ZGlzcGxheVN5bWJvbCxpZH0scXVvdGVBc3NldHtuYW1lLGRpc3BsYXlTeW1ib2wsaW1hZ2VVcmwsaWR9LHBhaXJOYW1lfSxhc3NldDJQYWlyOmFzc2V0VHJhZGluZ1BhaXIoY3VycmVudE1hcmtldDoiQlRDIixzb3J0T3B0aW9uOkRFUyxmaWx0ZXJPcHRpb246Q1VSUkVOVF9NQVJLRVQsZmlyc3Q6MTIpe2Jhc2VBc3NldHtkaXNwbGF5U3ltYm9sLGlkfSxxdW90ZUFzc2V0e25hbWUsZGlzcGxheVN5bWJvbCxpbWFnZVVybCxpZH0scGFpck5hbWV9LGFzc2V0M1BhaXI6YXNzZXRUcmFkaW5nUGFpcihjdXJyZW50TWFya2V0OiJVU0RDIixzb3J0T3B0aW9uOkRFUyxmaWx0ZXJPcHRpb246Q1VSUkVOVF9NQVJLRVQsZmlyc3Q6MTIpe2Jhc2VBc3NldHtkaXNwbGF5U3ltYm9sLGlkfSxxdW90ZUFzc2V0e25hbWUsZGlzcGxheVN5bWJvbCxpbWFnZVVybCxpZH0scGFpck5hbWV9LGFzc2V0NFBhaXI6YXNzZXRUcmFkaW5nUGFpcihjdXJyZW50TWFya2V0OiJVU0RUIixzb3J0T3B0aW9uOkRFUyxmaWx0ZXJPcHRpb246Q1VSUkVOVF9NQVJLRVQsZmlyc3Q6MTIpe2Jhc2VBc3NldHtkaXNwbGF5U3ltYm9sLGlkfSxxdW90ZUFzc2V0e25hbWUsZGlzcGxheVN5bWJvbCxpbWFnZVVybCxpZH0scGFpck5hbWV9fWZyYWdtZW50IHVzZUFzc2V0VHJhZGluZ1BhaXJNZXRhRGF0YUZyYWdtZW50IG9uIFF1ZXJ5e2Jhc2VBc3NldDphc3NldEJ5U3ltYm9sKHN5bWJvbDokYmFzZVN5bWJvbCl7bmFtZSxkaXNwbGF5U3ltYm9sLGlkfSx0YXJnZXRBc3NldDphc3NldEJ5U3ltYm9sKHN5bWJvbDokdGFyZ2V0U3ltYm9sKXtuYW1lLGRpc3BsYXlTeW1ib2wsaWR9fWZyYWdtZW50IHVzZUNvbnZlcnNpb25NZXRhRGF0YUZyYWdtZW50IG9uIFF1ZXJ5e2Jhc2VBc3NldEJ5U3ltYm9sOmFzc2V0QnlTeW1ib2woc3ltYm9sOiRiYXNlU3ltYm9sKUBza2lwKGlmOiRpc0dlbmVyaWNQYWdlKXtsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSl7cHJpY2UsaWR9LG5hbWUsZGlzcGxheVN5bWJvbCxpZH0KICB0YXJnZXRBc3NldEJ5U3ltYm9sOmFzc2V0QnlTeW1ib2woc3ltYm9sOiR0YXJnZXRTeW1ib2wpQHNraXAoaWY6JGlzR2VuZXJpY1BhZ2Upe2xhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGJhc2VDdXJyZW5jeSl7cHJpY2UsaWR9LG5hbWUsZGlzcGxheVN5bWJvbCxpZH19ZnJhZ21lbnQgdXNlRmlhdEZpYXRNZXRhRGF0YUZyYWdtZW50IG9uIFF1ZXJ5e25hdGl2ZUN1cnJlbmNpZXN7Y3VycmVuY3lDb2RlLG5hbWUsaWR9LGV4Y2hhbmdlUmF0ZXNWNChiYXNlQ3VycmVuY3k6JGJhc2VGaWF0LGN1cnJlbmNpZXM6WyR0YXJnZXRTeW1ib2xdKUBpbmNsdWRlKGlmOiRpc0ZpYXRQYWlyKXtwcmljZSxxdW90ZUN1cnJlbmN5LHF1b3RlQ3VycmVuY3lOYW1lfX1mcmFnbWVudCB1c2VHZXRDb252ZXJ0ZXJGYXFEYXRhRnJhZ21lbnRfVkw5MiBvbiBRdWVyeXtiYXNlOmFzc2V0QnlTeW1ib2woc3ltYm9sOiRiYXNlU3ltYm9sKUBza2lwKGlmOiRpc0dlbmVyaWNQYWdlKXtuYW1lLGRpc3BsYXlTeW1ib2wsc2x1ZyxzdXBwb3J0ZWRDb250ZXh0c0ZvckxvY2F0aW9uKGNvdW50cnlDb2RlOiRjb3VudHJ5KXtpc1RyYWRhYmxlLGlzV2FsbGV0LGlzRGV4fSxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiR0YXJnZXRDdXJyZW5jeSl7cXVvdGVDdXJyZW5jeSxwcmljZSxwZXJjZW50Q2hhbmdlc0Bza2lwKGlmOiRzaG91bGRVc2VVQVNGaWVsZHMpe2RheSxtb250aCx5ZWFyfSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5LG1vbnRoLHllYXJ9LGlkfSxhc3NldHNXaXRoU2ltaWxhck1hcmtldENhcChmaXJzdDoxMil7YXNzZXR7bmFtZSxzbHVnLGlkfX0saWR9CiAgdGFyZ2V0OmFzc2V0QnlTeW1ib2woc3ltYm9sOiR0YXJnZXRTeW1ib2wpQHNraXAoaWY6JGlzR2VuZXJpY1BhZ2Upe25hbWUsZGlzcGxheVN5bWJvbCxzbHVnLHN1cHBvcnRlZENvbnRleHRzRm9yTG9jYXRpb24oY291bnRyeUNvZGU6JGNvdW50cnkpe2lzVHJhZGFibGUsaXNXYWxsZXQsaXNEZXh9LGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGJhc2VDdXJyZW5jeSl7cXVvdGVDdXJyZW5jeSxwcmljZSxwZXJjZW50Q2hhbmdlc0Bza2lwKGlmOiRzaG91bGRVc2VVQVNGaWVsZHMpe2RheSxtb250aCx5ZWFyfSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5LG1vbnRoLHllYXJ9LGlkfSxhc3NldHNXaXRoU2ltaWxhck1hcmtldENhcChmaXJzdDoxMil7YXNzZXR7bmFtZSxzbHVnLGlkfX0saWR9fWZyYWdtZW50IHVzZUdldENvbnZlcnRlckZpYXRGYXFEYXRhRnJhZ21lbnRfM3VOdm96IG9uIFF1ZXJ5e25hdGl2ZUN1cnJlbmNpZXN7Y3VycmVuY3lDb2RlLG5hbWUsaWR9LGV4Y2hhbmdlUmF0ZXNWNChiYXNlQ3VycmVuY3k6JGJhc2VGaWF0LGN1cnJlbmNpZXM6WyR0YXJnZXRTeW1ib2xdKUBpbmNsdWRlKGlmOiRpc0ZpYXRQYWlyKXtxdW90ZUN1cnJlbmN5LHByaWNlfX1mcmFnbWVudCB1c2VJc01pY2FFbGlnaWJsZUZyYWdtZW50IG9uIFF1ZXJ5e2NsaWVudENvbmZpZ1N0cmluZ0FycmF5KG5hbWU6WyJtaWNhX2NvbXBsaWFudF9jb3VudHJpZXMiXSl7dmFsdWV9fWAsIjMzN2M5OWYxMDU5N2NiNWQ3YmIzZTUzM2JkMTUzYWQzNjE3MDE1ZmYyNjhjZTZkMDgwNzVkMzhjN2I0MDhlMTAiOmBxdWVyeSBDb21wbGlhbmNlUXVlc3Rpb25zUXVlcnkoJHF1ZXN0aW9uVHlwZTpHZW5lcmljQ29tcGxpYW5jZVF1ZXN0aW9uVHlwZSEpe3ZpZXdlcntnZW5lcmljQ29tcGxpYW5jZVF1ZXN0aW9uc0J5VHlwZSh0eXBlOiRxdWVzdGlvblR5cGUpe2hlYWRpbmcsYW5zd2VyTWV0YURhdGF7aGFzRXhjZWVkZWRNYXhBdHRlbXB0c30scXVlc3Rpb25ze3V1aWQsdGl0bGUsc3VidGl0bGUsaW5wdXRUeXBlLG9wdGlvbnN7dmFsdWUsdGl0bGUsc3VidGl0bGV9LGxhc3RBdHRlbXB0ZWRBbnN3ZXJze29wdGlvbnt2YWx1ZSx0aXRsZSxzdWJ0aXRsZX19LGlkfX0saWR9fWAsIjMzYThlNDMxNmJkMThmMTc4ODNiYzJlMjZiYTgxMjBmN2EzZDBiOWM4MDk1MmNlYzM1YmM2NDUzYWUwMjEzYzQiOmBxdWVyeSBCYXNlQ3VycmVuY3lTZWxlY3Rpb25Db250YWluZXJRdWVyeSgkcXVlcnk6U3RyaW5nISl7Li4udXNlVHJhbnNmb3JtQ3J5cHRvQ3VycmVuY2llc1RvU2VhcmNoRHJvcGRvd25PcHRpb25zRnJhZ21lbnR9ZnJhZ21lbnQgdXNlVHJhbnNmb3JtQ3J5cHRvQ3VycmVuY2llc1RvU2VhcmNoRHJvcGRvd25PcHRpb25zRnJhZ21lbnQgb24gUXVlcnl7c2VhcmNoQXNzZXRzVjIocXVlcnk6JHF1ZXJ5LHNvcnQ6UkFOSyxyZXNvbHV0aW9uOllFQVIsb3JkZXI6QVNDLGZpbHRlcjpBTEwsZmlyc3Q6MTApe2VkZ2Vze25vZGV7aWQsbmFtZSxsaXN0ZWQsc2x1ZyxzeW1ib2wsZGlzcGxheVN5bWJvbCxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiJVU0QiKXtwcmljZSxpZH19fX19YCwiMzUyNTgzYmJkYjlhYzA2NGZhMzRhZWI5Y2RkYmJjMzdkYzk3YzYzYTYwOTk5MTE1YTBkZWI1ZjVkMGFkNDE0MyI6YHF1ZXJ5IFc5VmVyaWZpY2F0aW9uRmxvd1F1ZXJ5e3ZpZXdlcnt1c2VyUHJvcGVydGllc3toYXNTc24saWR9LGlkfX1gLCIzNmM4OWQyNjE2NGZiZmRhNjFlYWZmNDNjMzIyODJhM2ZkZWExOWNkMWM0NThlOTkyYmU0NjNhNWIzOTVkODM4IjpgbXV0YXRpb24gdXNlU3VibWl0T3ZlcmRyYWZ0UmVwYXltZW50QVRTTXV0YXRpb24oJGlucHV0OlJlcGF5SW50eExvYW5JbnB1dCEpe3JlcGF5SW50eExvYW4oaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFJlcGF5SW50eExvYW5TdWNjZXNze2R1bW15fSwuLi5vbiBSZXBheUludHhMb2FuRXJyb3J7Y29kZX19fWAsIjM3Mjc5MDkzMWY2ZWUwZmNmYTNiMTE0NzY3NWFiMDBhYWUzYjc5MTVmMjNkMTk3MmU4YTJiY2Q2NWEyNDUwMGQiOmBtdXRhdGlvbiB1c2VWaWV3U2VjdXJlZENhcmRPZmZlclByZXNlbnRhdGlvbk11dGF0aW9ue3ZpZXdTZWN1cmVkQ2FyZE9mZmVyUHJlc2VudGF0aW9ue19fdHlwZW5hbWUsLi4ub24gVmlld1NlY3VyZWRDYXJkT2ZmZXJQcmVzZW50YXRpb25TdWNjZXNze2RpZFJlY29yZFZpZXd9LC4uLm9uIENyZWRpdENhcmRBY3Rpb25hYmxlRXJyb3J7ZGVzY3JpcHRpb259fX1gLCIzOWJiNmMzNGNkOTNjYmI2NzRmMTlkNjQyODAzYmY4MDBiMjg4OTBhNWI5YzFhZDM3MmIyOGZkMWM3Yjg2NWU3IjpgcXVlcnkgQ2ZtT25ib2FyZGluZ0Zsb3dDb250ZW50V3JhcHBlclF1ZXJ5ey4uLkNmbU9uYm9hcmRpbmdGbG93Q29udGVudEZyYWdtZW50LHZpZXdlcntkZXJpdmF0aXZlc09uYm9hcmRpbmd7c3RhdHVze3N0YXR1cyxoYXNFeGNlZWRlZE1heEF0dGVtcHRzfSxzaG91bGRSZXF1aXJlRW1wbG95bWVudEluZm9Gb3JGdXR1cmVzT25ib2FyZGluZ30scG9saWN5UmVzdHJpY3Rpb25zKGFjdGlvbjpmdXR1cmVzX3RyYWRpbmcpe3Jlc3RyaWN0aW9uTmFtZSxpZH0saWR9fWZyYWdtZW50IENmbU9uYm9hcmRpbmdGbG93Q29udGVudEZyYWdtZW50IG9uIFF1ZXJ5ey4uLkNmbU9uYm9hcmRpbmdGcmFnbWVudCx2aWV3ZXJ7cG9saWN5UmVzdHJpY3Rpb25zKGFjdGlvbjpmdXR1cmVzX3RyYWRpbmcpe3Jlc3RyaWN0aW9uTmFtZSxpZH0saWR9fWZyYWdtZW50IENmbU9uYm9hcmRpbmdGcmFnbWVudCBvbiBRdWVyeXsuLi5JRFNjcmVlbkZyYWdtZW50LHZpZXdlcntkZXJpdmF0aXZlc09uYm9hcmRpbmd7Li4uUXVlc3Rpb25uYWlyZVNjcmVlbkZyYWdtZW50LGFjY291bnRTdGF0dXNWM3tfX3R5cGVuYW1lLC4uLm9uIERlcml2YXRpdmVzVXNlckFjY291bnRTdGF0dXNWM1N1Y2Nlc3N7c3RhdHVzfX19LGlkfX1mcmFnbWVudCBJRFNjcmVlbkZyYWdtZW50IG9uIFF1ZXJ5e3ZpZXdlcntwb2xpY3lSZXN0cmljdGlvbnMoYWN0aW9uOmZ1dHVyZXNfdHJhZGluZyl7aWR2TWV0YWRhdGF7aWQsc3RhdGUsY3JlYXRlZEF0LGV4cGlyYXRpb25EYXRlfSxpZH0saWR9fWZyYWdtZW50IFF1ZXN0aW9ubmFpcmVTY3JlZW5GcmFnbWVudCBvbiBEZXJpdmF0aXZlc09uYm9hcmRpbmd7ZHVlRGlsaWdlbmNlUXVlc3Rpb25zVjJ7aGVhZGluZyxxdWVzdGlvbnN7cXVlc3Rpb25OdW1iZXIsaGVhZGluZyx0eXBlLG9wdGlvbnN7bGFiZWwsdmFsdWV9fX19YCwiM2E5ODkzMjNiNDljOWU1MjdkNThjNmYwYzE0NzczOTE3MzVkNDhlZThmYjM5Y2YwNTZkNWM0YzdlZDljZTc0MSI6YHF1ZXJ5IEFjY291bnRTZXR1cFF1ZXJ5ey4uLnVzZVRpbWVib3hlZEluY2VudGl2ZUZyYWdtZW50fWZyYWdtZW50IHVzZVRpbWVib3hlZEluY2VudGl2ZUZyYWdtZW50IG9uIFF1ZXJ5e3ZpZXdlcnt1c2VySW5jZW50aXZlU3RhdHVze2lzRWxpZ2libGUsaW5jZW50aXZlRGV0YWlsc3thbW91bnQsc291cmNlQ3VycmVuY3ksdGFyZ2V0Q3VycmVuY3l9LGV4cGlyZXNBdH0saWR9fWAsIjNhZTMyYTVkZWNkZjZlYTgwYzc1ZTIxZjVkYWE3ZjA0M2ViZTFhZmE1ZTk5ZDBhMjliMjk5N2ZlZjllY2E4YWYiOmBxdWVyeSBBY2NvdW50U2V0dXBGbG93UXVlcnl7Li4udXNlVGltZWJveEluY2VudGl2ZX1mcmFnbWVudCB1c2VUaW1lYm94SW5jZW50aXZlIG9uIFF1ZXJ5e3ZpZXdlcnt1c2VySW5jZW50aXZlU3RhdHVze2lzRWxpZ2libGUsaW5jZW50aXZlRGV0YWlsc3thbW91bnQsc291cmNlQ3VycmVuY3ksdGFyZ2V0Q3VycmVuY3l9LGV4cGlyZXNBdH0saWR9fWAsIjNjMWZmNzQ5NzEyOTc2MGE5NTJhOTEwY2I3ZDkxNDc3NWFiZTE1ZTMzZmJkYjNiNjEwYWM0YmRlOTA3ZGU0MWUiOmBxdWVyeSB1c2VDYmZzZUNvbXBsaWFuY2VRdWVzdGlvbnNGZXRjaGVyUXVlcnkoJHF1ZXN0aW9uVHlwZTpHZW5lcmljQ29tcGxpYW5jZVF1ZXN0aW9uVHlwZSEpe3ZpZXdlcntnZW5lcmljQ29tcGxpYW5jZVF1ZXN0aW9uc0J5VHlwZSh0eXBlOiRxdWVzdGlvblR5cGUpe2hlYWRpbmcsYW5zd2VyTWV0YURhdGF7aGFzRXhjZWVkZWRNYXhBdHRlbXB0c30scXVlc3Rpb25ze3V1aWQsdGl0bGUsc3VidGl0bGUsaW5wdXRUeXBlLG9wdGlvbnN7dmFsdWUsdGl0bGUsc3VidGl0bGV9LGxhc3RBdHRlbXB0ZWRBbnN3ZXJze29wdGlvbnt2YWx1ZSx0aXRsZSxzdWJ0aXRsZX19LGlkfX0saWR9fWAsIjNlNmI0ZmM1NjViYTNjMGE5NDgwOWZlNzNjYzdlMGE1ODE0YTQ3NDBjNWRiOTQ0ODI1MWUxYzc0MWZkZmExZGEiOmBxdWVyeSBGaWx0ZXJlZFNlYXJjaFNlY3Rpb25WMlF1ZXJ5KCRxdWVyeTpTdHJpbmchLCR1c2VDYXNlOlNlYXJjaFYyVW5hdXRoU2VhcmNoVXNlQ2FzZSEsJGZpcnN0OkludCEsJHNlY3Rpb25JZDpUaGlyZFBhcnR5SWRTdHJpbmcsJHNraXA6Qm9vbGVhbiEsJHNob3VsZFVzZVVBU0ZpZWxkczpCb29sZWFuISl7c2VhcmNoVjJVbmF1dGhDYW5kaWRhdGVzKHF1ZXJ5OiRxdWVyeSx1c2VDYXNlOiR1c2VDYXNlLGZpcnN0OiRmaXJzdCxzZWN0aW9uSWQ6JHNlY3Rpb25JZClAc2tpcChpZjokc2tpcCl7Li4uRmlsdGVyZWRTZWFyY2hTZWN0aW9uVjJGcmFnbWVudH19ZnJhZ21lbnQgQ3J5cHRvUm93RnJhZ21lbnQgb24gQXNzZXR7bmFtZSxzbHVnLHBsYXRmb3JtTmFtZSxpbWFnZVVybCxjbWNSYW5rLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6IlVTRCIpe3ByaWNlLHBlcmNlbnRDaGFuZ2VzQHNraXAoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxpZH0sbWFya2V0Q2FwVjIocXVvdGVDdXJyZW5jeToiVVNEIiksdm9sdW1lMjRoVjIocXVvdGVDdXJyZW5jeToiVVNEIil9ZnJhZ21lbnQgRXF1aXRpZXNSb3dWMkZyYWdtZW50IG9uIEVxdWl0eVNlYXJjaEVudGl0eXtwcm9kdWN0SWQsbWFya2V0RGF0YXtwcm9kdWN0SWQsZGlzcGxheU5hbWUsc2hvcnROYW1lLHRpY2tlcixwcmljZSxwcmljZVBlcmNlbnRhZ2VDaGFuZ2UyNGgscHJpY2VQZXJjZW50YWdlQ2hhbmdlTWFya2V0SG91cnMsdm9sdW1lMjRoLG1hcmtldENhcH19ZnJhZ21lbnQgRmlsdGVyZWRTZWFyY2hTZWN0aW9uVjJGcmFnbWVudCBvbiBTZWFyY2hWMlVuYXV0aENhbmRpZGF0ZUNvbm5lY3Rpb257ZWRnZXN7bm9kZXtlbnRpdHl7X190eXBlbmFtZSwuLi5vbiBBc3NldHt1dWlkLC4uLkNyeXB0b1Jvd0ZyYWdtZW50fSwuLi5vbiBFcXVpdHlTZWFyY2hFbnRpdHl7Y2Jybixwcm9kdWN0SWQsbWFya2V0RGF0YXtkaXNwbGF5TmFtZSxzaG9ydE5hbWUsdGlja2VyfSwuLi5FcXVpdGllc1Jvd1YyRnJhZ21lbnR9LC4uLm9uIERlcml2YXRpdmVTZWFyY2hFbnRpdHl7Y2Jybixwcm9kdWN0SWQsbWFya2V0RGF0YXtkaXNwbGF5TmFtZX0sLi4uUGVycHNSb3dWMkZyYWdtZW50LC4uLkZ1dHVyZXNSb3dWMkZyYWdtZW50fSwuLi5vbiBQcmVkaWN0aW9uTWFya2V0U2VhcmNoRW50aXR5e2V2ZW50SWQscHJvZHVjdElkLGNicm4sbWFya2V0RGF0YXtldmVudFRpdGxlLHllc1RpdGxlc30sLi4uUHJlZGljdGlvbnNSb3dWMkZyYWdtZW50fSwuLi5vbiBSYmFJbnN0cnVtZW50R3JvdXB7aW5zdHJ1bWVudEdyb3VwSWQsLi4uUHJlZGljdGlvbnNSb3dGcmFnbWVudCxpZH0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfSwuLi5vbiBSZXRhaWxCcm9rZXJhZ2VQcm9kdWN0e2lkfX19fX1mcmFnbWVudCBGdXR1cmVzUm93VjJGcmFnbWVudCBvbiBEZXJpdmF0aXZlU2VhcmNoRW50aXR5e3Byb2R1Y3RJZCxtYXJrZXREYXRhe3Byb2R1Y3RJZCxkaXNwbGF5TmFtZSxwcmljZSxwcmljZVBlcmNlbnRhZ2VDaGFuZ2UyNGgsYXBwcm94aW1hdGVRdW90ZTI0aFZvbHVtZSxpY29uVXJsLHZlbnVlLGV4cGlyeURhdGUsb3BlbkludGVyZXN0fX1mcmFnbWVudCBQZXJwc1Jvd1YyRnJhZ21lbnQgb24gRGVyaXZhdGl2ZVNlYXJjaEVudGl0eXtwcm9kdWN0SWQsbWFya2V0RGF0YXtwcm9kdWN0SWQsZGlzcGxheU5hbWUscHJpY2UscHJpY2VQZXJjZW50YWdlQ2hhbmdlMjRoLGFwcHJveGltYXRlUXVvdGUyNGhWb2x1bWUsaWNvblVybCx2ZW51ZSxmdW5kaW5nUmF0ZX19ZnJhZ21lbnQgUHJlZGljdGlvbnNSb3dGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7aW5zdHJ1bWVudEdyb3VwSWQscHJlZGljdGlvbkltYWdlVXJsOmltYWdlVXJsLHByb2R1Y3RzKG1heFByb2R1Y3RzOjEpe3ByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7ZXZlbnRUaXRsZSx5ZXNUaXRsZXN9LGlkfX1mcmFnbWVudCBQcmVkaWN0aW9uc1Jvd1YyRnJhZ21lbnQgb24gUHJlZGljdGlvbk1hcmtldFNlYXJjaEVudGl0eXtldmVudElkLG1hcmtldERhdGF7ZXZlbnRJZCxpbWFnZVVybCxwcmljZSxwcmljZVBlcmNlbnRDaGFuZ2UyNGgsZXZlbnRUaXRsZSx5ZXNUaXRsZXN9fWAsIjNlODYxMzlmOTM0NmFiMDYwNGFhZjdiZGNlNTRlYzc5NjAzMTJiNmM3ZjlmMDU0ZWZhZTE5YTZmMmVlZTVjNGQiOmBxdWVyeSBDb2luYmFzZUdyYXBoUUxUcmFuc3BvcnRFbXBsb3llZU5vdGlvbmFsTGltaXRRdWVyeSgkcXVvdGVTaXplOlN0cmluZyEpe3ZpZXdlcntyZXRhaWxJbnR4e2VtcGxveWVlTm90aW9uYWxMaW1pdFN0YXR1cyhxdW90ZVNpemU6JHF1b3RlU2l6ZSl7aXNMaW1pdEJyZWFjaGVkfX0saWR9fWAsIjNlYjg0Yzg1NmJmYWMwNjI5YTI5NDg4Yzg5YWY0NTc3YjE0M2M2ZjEyMjhmZTc2ODU4ODdiMjk4NTQ3ZGUxOTMiOmBxdWVyeSBQcmVEaXN0cmlidXRpb25CYW5uZXJRdWVyeSgkaXNMb2dnZWRPdXQ6Qm9vbGVhbiEpe3VpQ29tcG9uZW50c0J5U3VyZmFjZUxvZ2dlZE91dChzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfVE9LRU5fU0FMRVNfUFJFX0RJU1RSSUJVVElPTl9CQU5ORVIiLGZpcnN0OjEpQGluY2x1ZGUoaWY6JGlzTG9nZ2VkT3V0KXtlZGdlc3tub2Rle2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHtyaWNoVGV4dERlc2NyaXB0aW9ue2h0bWxTdHJpbmd9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fSxpZH19LGlkfSx2aWV3ZXJAc2tpcChpZjokaXNMb2dnZWRPdXQpe3VpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfVE9LRU5fU0FMRVNfUFJFX0RJU1RSSUJVVElPTl9CQU5ORVIiLGZpcnN0OjEpe2VkZ2Vze25vZGV7Y29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3JpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ319LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX0saWR9LGlkfX1gLCIzZWRjYjA4MGNkZTgyZTUwZDgxMTI4NTExNGNiMTdiNGEwZDIyZTk4MGYwODhkNDVmMjQzMzE4YzY3NTc5NTRmIjpgbXV0YXRpb24gdXNlU3VibWl0U3VydmV5TXV0YXRpb24oJGlucHV0OlVwZGF0ZUNzYXRTdXJ2ZXlJbnB1dCEpe3VwZGF0ZUNzYXRTdXJ2ZXkoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIEJhZFJlcXVlc3RFcnJvcnttZXNzYWdlLGNvZGV9LC4uLm9uIFVwZGF0ZUNzYXRTdXJ2ZXlTdWNjZXNze2R1bW15fX19YCwiM2ZlNjAzZWZkMTIwODg2NjFkYzUyNmMxNzg1OWVlOGM5MjY3MDg0YjdjZmFlNDQ0ODQxNDg1YjczMzJmYjgxNCI6YHF1ZXJ5IFRheEluZm9TdGVwVGluVmFsaWRhdGlvblJ1bGVzTmV3RnJhZ21lbnRRdWVyeSgkY291bnRyeUNvZGVzOltTdHJpbmchXSEpey4uLlRheEluZm9TdGVwVGluVmFsaWRhdGlvblJ1bGVzTmV3RnJhZ21lbnR9ZnJhZ21lbnQgVGF4SW5mb1N0ZXBUaW5WYWxpZGF0aW9uUnVsZXNOZXdGcmFnbWVudCBvbiBRdWVyeXt0aW5WYWxpZGF0aW9uUnVsZXMoY291bnRyeUNvZGVzOiRjb3VudHJ5Q29kZXMpe3JlZ2V4UGF0dGVybixhbHRlcm5hdGVQYXR0ZXJucyxlcnJvck1lc3NhZ2UsaXNSZXF1aXJlZCx0aW5OYW1lLGlzc3Vlc1Rpbixjb3VudHJ5Q29kZSxjb3VudHJ5TmFtZSxwbGFjZWhvbGRlcnN9fWAsIjNmZTczNGMxMjQxMzFhOGExZWU4ZDFiYjFmM2U5YTY3OTEyMjA5MzE0NzZhMThkMjdhMjUyOTgwNmI5Nzc2MmIiOmBtdXRhdGlvbiBVT0JDb21wbGV0ZVVzZXJBY2NyZWRpdGF0aW9uTXV0YXRpb24oJGlucHV0OkNvbXBsZXRlVXNlckFjY3JlZGl0YXRpb25JbnB1dCEpe2NvbXBsZXRlVXNlckFjY3JlZGl0YXRpb24oaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIENvbXBsZXRlVXNlckFjY3JlZGl0YXRpb25TdWNjZXNze3VzZXJBY2NyZWRpdGF0aW9ue3V1aWQsaWR9fSwuLi5vbiBHZW5lcmljRXJyb3J7bWVzc2FnZX19fWAsIjNmZThkMDhjMmU5NzIwZjcxOTI0ZmRiMGI5NzQ1YzA5Yjc3NmRmYmUzMmI0ZGZmMzMxOWRiYWJiY2E1YmRmYWIiOmBxdWVyeSBXOVZlcmlmaWNhdGlvblNlbnNpdGl2ZURldGFpbHNRdWVyeSgkcHJvb2ZUb2tlbjpTdHJpbmchKXt2aWV3ZXJ7dXNlclByb3BlcnRpZXN7c2Vuc2l0aXZlRGV0YWlscyhyZXF1ZXN0Ontwcm9vZlRva2VuOiRwcm9vZlRva2VufSl7c3NufSxpZH0saWR9fWAsIjQwNDhkZTgzYzRlYTQzYjMxMGQ0MzM3NDZmMzU4YjI3YjVmNTU3YWMzMjcwZjE0YmZjYjg4YzRjYTAxMTg2MmUiOmBxdWVyeSBGdXR1cmVzTDJRdWVyeSgkY291bnRyeUNvZGU6U3RyaW5nISwkcHJvZHVjdElkOlRoaXJkUGFydHlJZFN0cmluZyEsJHNob3VsZFVzZUdxbFByb2R1Y3RTY2hlbWE6Qm9vbGVhbiEsJHNraXBGaWF0QWNjb3VudHNGb3JCYWxhbmNlOkJvb2xlYW4hKXtyZXRhaWxJbnR4VW5hdXRoZWR7Li4uZ2V0SXNQZXJwc0VsaWdpYmxlRnJhZ21lbnR9LC4uLk9yZGVyQm9va0NvbnRhaW5lckZyYWdtZW50fWZyYWdtZW50IEFnZ3JlZ2F0aW9uQ29udHJvbHNGcmFnbWVudCBvbiBRdWVyeXsuLi5DdXJyZW5jeURyb3Bkb3duQ29udGVudEZyYWdtZW50fWZyYWdtZW50IEN1cnJlbmN5RHJvcGRvd25Db250ZW50RnJhZ21lbnQgb24gUXVlcnl7Li4udXNlQ3VycmVuY3lEcm9wZG93bkRhdGFGcmFnbWVudH1mcmFnbWVudCBPcmRlckJvb2tDb250YWluZXJGcmFnbWVudCBvbiBRdWVyeXsuLi5PcmRlckJvb2tDb250ZW50RnJhZ21lbnR9ZnJhZ21lbnQgT3JkZXJCb29rQ29udGVudEZyYWdtZW50IG9uIFF1ZXJ5ey4uLk9yZGVyQm9va0hlYWRlckZyYWdtZW50fWZyYWdtZW50IE9yZGVyQm9va0hlYWRlckZyYWdtZW50IG9uIFF1ZXJ5ey4uLkFnZ3JlZ2F0aW9uQ29udHJvbHNGcmFnbWVudH1mcmFnbWVudCBnZXRJc1BlcnBzRWxpZ2libGVGcmFnbWVudCBvbiBSZXRhaWxJbnR4VW5hdXRoZWR7aW50eENvdW50cnlDbGFzc2lmaWNhdGlvbihpc29Db3VudHJ5Q29kZTokY291bnRyeUNvZGUpfWZyYWdtZW50IHVzZUN1cnJlbmN5RHJvcGRvd25EYXRhRnJhZ21lbnQgb24gUXVlcnl7Li4udXNlU3BvdEF2YWlsYWJsZVF1b3RlUGF5bWVudE1ldGhvZHNGcmFnbWVudH1mcmFnbWVudCB1c2VTcG90QXZhaWxhYmxlUXVvdGVQYXltZW50TWV0aG9kc0ZyYWdtZW50IG9uIFF1ZXJ5e3ZpZXdlcnthbGxQb3J0Zm9saW9GaWF0QWNjb3VudHM6ZmlhdEFjY291bnRzKHBvcnRmb2xpb0NhdGVnb3J5OlBPUlRGT0xJT19DQVRFR09SWV9BTEwpQHNraXAoaWY6JHNraXBGaWF0QWNjb3VudHNGb3JCYWxhbmNlKXthc3NldE9yRmlhdEN1cnJlbmN5e19fdHlwZW5hbWUsLi4ub24gVGllcnNDdXJyZW5jeXtjb2RlLGlkfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIFZpZXdlckVxdWl0eXtpZH19LGlkfSxyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdFYyKHByb2R1Y3RJZDokcHJvZHVjdElkKUBpbmNsdWRlKGlmOiRzaG91bGRVc2VHcWxQcm9kdWN0U2NoZW1hKXtwcm9kdWN0e3F1b3RlQ3VycmVuY3lJZCxpZH0scXVvdGVBc3NldE9yQ3VycmVuY3l7X190eXBlbmFtZSwuLi5vbiBUaWVyc0N1cnJlbmN5e2FjY291bnRzKHBvcnRmb2xpb0NhdGVnb3J5OlBPUlRGT0xJT19DQVRFR09SWV9BTEwpe19fdHlwZW5hbWUsaWR9LGlkfSwuLi5vbiBWaWV3ZXJBc3NldHtfX3R5cGVuYW1lLGFjY291bnRzKHBvcnRmb2xpb0NhdGVnb3J5OlBPUlRGT0xJT19DQVRFR09SWV9BTEwpe19fdHlwZW5hbWUsaWR9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIFZpZXdlckVxdWl0eXtpZH19LGlkfX0saWR9fWAsIjQwODY2MTBiZGU0NGE5YjI3MTgyMDk5MThiNmQ4YjlkMmEwN2YyMzZmOWU1ZGI3YzM5YmU5MTcwMmNmNTM4ODciOmBxdWVyeSBXOFRyZWF0eU9wdGlvbnNTdGVwUXVlcnkoJGZvcm1JZDpUaGlyZFBhcnR5SWRTdHJpbmchKXt3OFRyZWF0eU9wdGlvbnMoZm9ybUlkOiRmb3JtSWQpe2lzVHJlYXR5QXZhaWxhYmxlLHRyZWF0eUNvdW50cnl9fWAsIjQwOTI3Y2ZiMjllYTU0ZjM4ZWQ1MGRmNzQxMGQ1YTY1Y2YxODljYjQ4OGFlMmQzZmE2ZWY2MGVkNmE0NGUyYjYiOmBzdWJzY3JpcHRpb24gUHJvZHVjdFByaWNlU3Vic2NyaXB0aW9uU3Vic2NyaXB0aW9uKCRwcm9kdWN0SWQ6VGhpcmRQYXJ0eUlkU3RyaW5nISl7cHJvZHVjdFN0YXRzKHByb2R1Y3RJZDokcHJvZHVjdElkLHVwZGF0ZUludGVydmFsOlRXT19IVU5EUkVEX0ZJRlRZX01TX1NUQVRTKXtwcm9kdWN0U3RhdHN7cHJpY2UsaWR9fX1gLCI0MGNjMDc4NGI5YTE5MzkwMjE2NGJkYjZmMTJhY2I0YjIzMDQzMGNlZjVkM2MxMTU3NmJlYjkyODU0NzYwYTgwIjpgcXVlcnkgUHJpY2VQcmVkaWN0aW9uUGFnZVF1ZXJ5KCRhc3NldFNsdWc6U3RyaW5nISwkY3VycmVuY3k6VGlja2VyU3ltYm9sISwkY291bnRyeTpTdHJpbmchLCRsb2NhbGU6TG9jYWxlISwkdGFyZ2V0U3ltYm9sOlN0cmluZyEsJHVybDpTdHJpbmchKXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe25hbWUsZGlzcGxheVN5bWJvbCxpZH0sLi4uUHJpY2VQcmVkaWN0aW9uTWV0YURhdGFGcmFnbWVudF80em5qdVQsLi4uUHJpY2VQcmVkaWN0aW9uQ2hhcnRGcmFnbWVudCwuLi5QcmljZVByZWRpY3Rpb25JbnRlcm5hbExpbmtzRnJhZ21lbnQsLi4uUHJpY2VQcmVkaWN0aW9uQ29udGV4dEZyYWdtZW50fWZyYWdtZW50IFByaWNlUHJlZGljdGlvbkNoYXJ0RnJhZ21lbnQgb24gUXVlcnl7Li4udXNlUHJpY2VQcmVkaWN0aW9uQ2hhcnRGcmFnbWVudH1mcmFnbWVudCBQcmljZVByZWRpY3Rpb25Db250ZXh0RnJhZ21lbnQgb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtkaXNwbGF5U3ltYm9sLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtwcmljZSxpZH0sc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeSl7aXNUcmFkYWJsZX0saWR9fWZyYWdtZW50IFByaWNlUHJlZGljdGlvbkludGVybmFsTGlua3NGcmFnbWVudCBvbiBRdWVyeXt0b3BQUFBzOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJwcmljZS1wcmVkaWN0aW9uIixyZXF1ZXN0SW5wdXQ6e2RlZmF1bHRSZXF1ZXN0SW5wdXQ6e2NvdW50cnlDb2RlOiRjb3VudHJ5LHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAscmFuZG9taXplZENvbmZpZzp7cG9vbFNpemU6ODAsc2FtcGxlU2l6ZToxMn19fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzQXNzZXRFbnRpdHl7bmFtZSxpY29uVXJsLHBhZ2VVcmx9fX0scmFuZG9tUFBQczppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToicHJpY2UtcHJlZGljdGlvbiIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0Ontjb3VudHJ5Q29kZTokY291bnRyeSxyYW5kb21pemVkQ29uZmlnOntwb29sU2l6ZTo4MCxzYW1wbGVTaXplOjEyfX19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NBc3NldEVudGl0eXtuYW1lLGljb25VcmwscGFnZVVybH19fSx0b3BBRFBzOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJwcmljZSIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0Ontjb3VudHJ5Q29kZTokY291bnRyeSxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHJhbmRvbWl6ZWRDb25maWc6e3Bvb2xTaXplOjUwLHNhbXBsZVNpemU6MTJ9fX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0Fzc2V0RW50aXR5e25hbWUsaWNvblVybCxwYWdlVXJsfX19LHRvcENvbnZlcnRlcnM6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6ImNvbnZlcnRlciIscmVxdWVzdElucHV0Ontjb252ZXJ0ZXJSZXF1ZXN0SW5wdXQ6e2Jhc2VTeW1ib2w6JGFzc2V0U2x1Zyx0YXJnZXRTeW1ib2w6JHRhcmdldFN5bWJvbCxiYXNlOntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0FTU0VULHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAsdG9wTjoyMH0sdGFyZ2V0OntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0ZJQVR9LHJlcXVlc3RBbW91bnQ6MTJ9fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzQ29udmVydGVyRW50aXR5e2Jhc2V7bmFtZSxpY29uVXJsfSx0YXJnZXR7bmFtZX0scGFnZVVybH19fSx0b3BQcmVkaWN0aW9uTWFya2V0czppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToicHJlZGljdGlvbnMiLHJlcXVlc3RJbnB1dDp7cHJlZGljdGlvbk1hcmtldFJlcXVlc3RJbnB1dDp7c29ydDpTT1JUX1RZUEVfVk9MVU1FLHJlcXVlc3RBbW91bnQ6MTB9fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzUHJlZGljdGlvbk1hcmtldEVudGl0eXtuYW1lOnRpdGxlLGljb25VcmwscGFnZVVybH19fX1mcmFnbWVudCBQcmljZVByZWRpY3Rpb25NZXRhRGF0YUZyYWdtZW50XzR6bmp1VCBvbiBRdWVyeXtzZW9NZXRhZGF0YSh1cmw6JHVybCl7c2hvdWxkTm9JbmRleCxzaG91bGRSZWRpcmVjdCxjYW5vbmljYWxVcmx9fWZyYWdtZW50IHVzZVByaWNlUHJlZGljdGlvbkNoYXJ0RnJhZ21lbnQgb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtjb2xvcixwcmljZURhdGFGb3JBbGxWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cXVvdGVQcmljZXMscXVvdGVUaW1lc3RhbXBzfSxpZH19YCwiNDE2MzExZWM2NmQzZDQ3M2JjYzM1OWZlMDM3ZmE0OTU3ZDNlMTU5ZDE0NTcwNGI3MmNkMzJlYjliN2I4ZWI1MiI6YG11dGF0aW9uIHVzZU9wdEluQ3Jvc3NDb2xsYXRlcmFsQVRTTXV0YXRpb24oJGlucHV0Ok9wdEluSW50eENyb3NzQ29sbGF0ZXJhbElucHV0ISl7b3B0SW5JbnR4Q3Jvc3NDb2xsYXRlcmFsKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBPcHRJbkludHhDcm9zc0NvbGxhdGVyYWxTdWNjZXNze19fdHlwZW5hbWV9LC4uLm9uIE9wdEluSW50eENyb3NzQ29sbGF0ZXJhbEVycm9ye2NvZGUsbWVzc2FnZX19fWAsIjQxZGQ2ZGY5ZDBkZmFkYWE2N2M1ZDFmNDlhY2RlMDg0YzA3MmU0N2ZlYTQxNTY1YjYxY2ZjOTIwZDk2NGE3ZjIiOmBxdWVyeSB1c2VUcmFuc2ZlclN0YXR1c1YyQVRTUXVlcnkoJHRyYW5zZmVySWQ6VXVpZCEpe3ZpZXdlcntpbnR4VHJhbnNmZXJCeVV1aWQodXVpZDokdHJhbnNmZXJJZCl7dHJhbnNmZXJTdGF0dXMsaWR9LGlkfX1gLCI0MWZhMmNjYzc3NWRjYTIwNzJlOWU4Y2Q1NDM3MzY4OTQ4MTQyNDViODFkZmNhYWZjOGM3NDZmNGFmZDM0OThiIjpgcXVlcnkgRGVyaXZhdGl2ZVRNREZsb3dRdWVyeSgkcXVlc3Rpb25UeXBlOkdlbmVyaWNDb21wbGlhbmNlUXVlc3Rpb25UeXBlISl7dmlld2Vye2dlbmVyaWNDb21wbGlhbmNlUXVlc3Rpb25zQnlUeXBlKHR5cGU6JHF1ZXN0aW9uVHlwZSl7YW5zd2VyTWV0YURhdGF7aGFzRXhjZWVkZWRNYXhBdHRlbXB0cyxhdHRlbXB0c0xvY2tlZFVudGlsfX0saWR9fWAsIjQyNjNiMTliMjc1NTM0YTEzMDMwMTlkNGViMjdlNGEwN2U5ODNmMTczNjNiNGY2OWUwMjVlZTE0YzhjZGYwZTkiOmBtdXRhdGlvbiBVc2VySW5wdXRDcmVhdGVDb252ZXJzYXRpb25FdmVudE11dGF0aW9uKCRpbnB1dDpDcmVhdGVDb252ZXJzYXRpb25FdmVudElucHV0ISl7Y3JlYXRlQ29udmVyc2F0aW9uRXZlbnQoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIENyZWF0ZUNvbnZlcnNhdGlvbkV2ZW50U3VjY2Vzc3tjb252ZXJzYXRpb25FdmVudHtub2Rley4uLk1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQsaWR9fX0sLi4ub24gQmFkUmVxdWVzdEVycm9ye2NvZGUsbWVzc2FnZX19fWZyYWdtZW50IE1lc3NhZ2VCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtpZCx1dWlkLHBhcnRpY2lwYW50e2lkLGRpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZX0sY3JlYXRlVGltZSxtZXNzYWdlQ29udGVudHttZXNzYWdlLHJlcGxpZXN7bGFiZWwsbGluayxtZXNzYWdlVG9QdWJsaXNofSxyZWZlcmVuY2VMaW5rc3t0aXRsZSxsaW5rfSxpc1JlYWN0aW9uc0VuYWJsZWQsZXh0cmFFbGVtZW50VHlwZSxleHRyYUVsZW1lbnRQYXlsb2FkfSxmaWxlc01ldGFkYXRhe2ZpbGVze2F0dGFjaG1lbnRJZCxmaWxlTmFtZX19fWZyYWdtZW50IE1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7dHlwZSwuLi5NZXNzYWdlQnViYmxlRnJhZ21lbnQsLi4uUGFydGljaXBhbnRCdWJibGVGcmFnbWVudH1mcmFnbWVudCBQYXJ0aWNpcGFudEJ1YmJsZUZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e3BhcnRpY2lwYW50e2Rpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZSxpZH19YCwiNDMwMjdkNjIyNzk5MGQzNDdmYzU1YmIyYTlkYWUzYTk5ODA4MWE0MGY4NTRmYjU4NzUzNDJmZThlYWU2YTVkZiI6YHF1ZXJ5IFVzZGNQYWdlUXVlcnkoJHNsdWc6U3RyaW5nISwkcXVvdGVDdXJyZW5jeTpUaWNrZXJTeW1ib2whKXthc3NldEJ5U2x1ZyhzbHVnOiRzbHVnKXt0b3RhbFN1cHBseSx2b2x1bWUyNGg6dm9sdW1lMjRoVjIocXVvdGVDdXJyZW5jeTokcXVvdGVDdXJyZW5jeSksaWR9fWAsIjQzMzcyZTFkZDhmZTYzNTdiNjRkNzk4MDhhZWFhN2FhMGJkZDA5NmQ2MjNiNzBhMDhkNThhMDM3OWIzMGU4ZWIiOmBxdWVyeSBIb3dJdFdvcmtzTW9kYWxDb250ZW50UXVlcnkoJHBhZ2VLZXk6U3RyaW5nISwkaXNMb2dnZWRPdXQ6Qm9vbGVhbiEpe3VpQ29tcG9uZW50c0J5U3VyZmFjZUxvZ2dlZE91dChzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfVE9LRU5fU0FMRVNfSE9XX0lUX1dPUktTIixmaXJzdDoxKUBpbmNsdWRlKGlmOiRpc0xvZ2dlZE91dCl7ZWRnZXN7bm9kZXtjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGVUZXh0RmllbGR7dGV4dH19LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGNvbXBvbmVudHN7aWQsY29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3RpdGxlVGV4dEZpZWxke3RleHR9LHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ319LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19fSxpZH19LGlkfSx2aWV3ZXJAc2tpcChpZjokaXNMb2dnZWRPdXQpe3VpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfVE9LRU5fU0FMRVNfSE9XX0lUX1dPUktTIixmaXJzdDoxKXtlZGdlc3tub2Rle2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHt0aXRsZVRleHRGaWVsZHt0ZXh0fX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0sY29tcG9uZW50c3tpZCxjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGVUZXh0RmllbGR7dGV4dH0scmljaFRleHREZXNjcmlwdGlvbntodG1sU3RyaW5nfX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX19LGlkfX0saWR9LGlkfSwuLi5EeW5hbWljRm9vdGVyTGF5b3V0RnJhZ21lbnRfMnVNWnFKfWZyYWdtZW50IER5bmFtaWNGb290ZXJMYXlvdXRGcmFnbWVudF8ydU1acUogb24gUXVlcnl7dW5hdXRoZWRTdXJmYWNlOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlOlVJX0NPTVBPTkVOVF9TVVJGQUNFX0ZPT1RFUl9ESVNDTEFJTUVSLGNhdGVnb3JpZXM6W1VJX0NPTVBPTkVOVF9DQVRFR09SWV9GT09URVJfRElTQ0xBSU1FUl0sZmlsdGVyOntmb290ZXJEaXNjbGFpbWVyRmlsdGVyOntwYWdlS2V5OiRwYWdlS2V5fX0pQGluY2x1ZGUoaWY6JGlzTG9nZ2VkT3V0KXtlZGdlc3tub2Rle2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50Rm9vdGVyRGlzY2xhaW1lcnt0aXRsZXt0ZXh0fSxkZXNjcmlwdGlvbnt0ZXh0fSx0aXRsZUN0YXt0ZXh0LHVybCx0ZXh0Q29sb3J9LGRlc2NyaXB0aW9uQ3Rhe3RleHQsdXJsLHRleHRDb2xvcn0scmljaFRleHRUaXRsZXtodG1sU3RyaW5nfX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH0sdmlld2VyQHNraXAoaWY6JGlzTG9nZ2VkT3V0KXthdXRoZWRTdXJmYWNlOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlOlVJX0NPTVBPTkVOVF9TVVJGQUNFX0ZPT1RFUl9ESVNDTEFJTUVSLGNhdGVnb3JpZXM6W1VJX0NPTVBPTkVOVF9DQVRFR09SWV9GT09URVJfRElTQ0xBSU1FUl0sZmlsdGVyOntmb290ZXJEaXNjbGFpbWVyRmlsdGVyOntwYWdlS2V5OiRwYWdlS2V5fSxyZWxldmFudFRhZ3NGaWx0ZXI6e3JlbGV2YW50VGFnczpbXX19KXtlZGdlc3tub2Rle2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50Rm9vdGVyRGlzY2xhaW1lcnt0aXRsZXt0ZXh0fSxkZXNjcmlwdGlvbnt0ZXh0fSx0aXRsZUN0YXt0ZXh0LHVybCx0ZXh0Q29sb3J9LGRlc2NyaXB0aW9uQ3Rhe3RleHQsdXJsLHRleHRDb2xvcn0scmljaFRleHRUaXRsZXtodG1sU3RyaW5nfX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH0saWR9fWAsIjQ0NjE5NGU2NzcyMzQyMWY5YmIwZDc0MzA5YjQ5MTlkMzBjNTUyZGM4MmExYWFiY2QzM2Q4ZjRmNzYxNzRiMDMiOmBxdWVyeSB1c2VHZXRDb21wYWN0UHJpY2VDaGFydERhdGFRdWVyeSgkcHJvZHVjdElkczpbVGhpcmRQYXJ0eUlkU3RyaW5nIV0hKXtyZXRhaWxCcm9rZXJhZ2V7cHJpY2VDaGFydHMocHJvZHVjdElkczokcHJvZHVjdElkcyxyZXNvbHV0aW9uOlJFU09MVVRJT05fREFZKXtwcm9kdWN0SWQscHJpY2VQb2ludHN7cHJpY2V9fX19YCwiNDVhN2Q0N2ViZGYzNDQ4ZGE3YTRlZjlhYjU1Nzc0OTU2ZWQ5NjBjZDU4ZjhlN2M4NGI5MDZlZjNhMjdmZjQ4MyI6YHF1ZXJ5IFJlbWVkaWF0aW9uQWxlcnRRdWVyeXt2aWV3ZXJ7cmVtZWRpYXRpb25BbGVydChtb2RlOm9uYm9hcmRpbmcpe3RpdGxlLGJ1dHRvblRleHQsYWxlcnROYW1lLHByaW1hcnlDYWxsVG9BY3Rpb25VcmwscHJpbWFyeUNhbGxUb0FjdGlvblRleHQsc2Vjb25kYXJ5Q2FsbFRvQWN0aW9uVXJsLHNlY29uZGFyeUNhbGxUb0FjdGlvblRleHQsYWxlcnRMaXN0e2NvbnRlbnQsaWNvbklkLGNhbGxUb0FjdGlvblRleHQsY2FsbFRvQWN0aW9uVXJsfX0saWR9fWAsIjQ1YzNlZWJhMGU5OGUzNzU1MjNkOWJiNGNiYzlkZWU2MWFmMzQ5MzIzZWFiZjg2ZTdiNGJhNzhjYTNiN2M0M2MiOmBxdWVyeSBQZXJwZXR1YWxzTDJRdWVyeSgkY291bnRyeUNvZGU6U3RyaW5nISwkcHJvZHVjdElkOlRoaXJkUGFydHlJZFN0cmluZyEsJHNob3VsZFVzZUdxbFByb2R1Y3RTY2hlbWE6Qm9vbGVhbiEsJHNraXBGaWF0QWNjb3VudHNGb3JCYWxhbmNlOkJvb2xlYW4hKXtyZXRhaWxJbnR4VW5hdXRoZWR7Li4uZ2V0SXNQZXJwc0VsaWdpYmxlRnJhZ21lbnR9LC4uLk9yZGVyQm9va0NvbnRhaW5lckZyYWdtZW50fWZyYWdtZW50IEFnZ3JlZ2F0aW9uQ29udHJvbHNGcmFnbWVudCBvbiBRdWVyeXsuLi5DdXJyZW5jeURyb3Bkb3duQ29udGVudEZyYWdtZW50fWZyYWdtZW50IEN1cnJlbmN5RHJvcGRvd25Db250ZW50RnJhZ21lbnQgb24gUXVlcnl7Li4udXNlQ3VycmVuY3lEcm9wZG93bkRhdGFGcmFnbWVudH1mcmFnbWVudCBPcmRlckJvb2tDb250YWluZXJGcmFnbWVudCBvbiBRdWVyeXsuLi5PcmRlckJvb2tDb250ZW50RnJhZ21lbnR9ZnJhZ21lbnQgT3JkZXJCb29rQ29udGVudEZyYWdtZW50IG9uIFF1ZXJ5ey4uLk9yZGVyQm9va0hlYWRlckZyYWdtZW50fWZyYWdtZW50IE9yZGVyQm9va0hlYWRlckZyYWdtZW50IG9uIFF1ZXJ5ey4uLkFnZ3JlZ2F0aW9uQ29udHJvbHNGcmFnbWVudH1mcmFnbWVudCBnZXRJc1BlcnBzRWxpZ2libGVGcmFnbWVudCBvbiBSZXRhaWxJbnR4VW5hdXRoZWR7aW50eENvdW50cnlDbGFzc2lmaWNhdGlvbihpc29Db3VudHJ5Q29kZTokY291bnRyeUNvZGUpfWZyYWdtZW50IHVzZUN1cnJlbmN5RHJvcGRvd25EYXRhRnJhZ21lbnQgb24gUXVlcnl7Li4udXNlU3BvdEF2YWlsYWJsZVF1b3RlUGF5bWVudE1ldGhvZHNGcmFnbWVudH1mcmFnbWVudCB1c2VTcG90QXZhaWxhYmxlUXVvdGVQYXltZW50TWV0aG9kc0ZyYWdtZW50IG9uIFF1ZXJ5e3ZpZXdlcnthbGxQb3J0Zm9saW9GaWF0QWNjb3VudHM6ZmlhdEFjY291bnRzKHBvcnRmb2xpb0NhdGVnb3J5OlBPUlRGT0xJT19DQVRFR09SWV9BTEwpQHNraXAoaWY6JHNraXBGaWF0QWNjb3VudHNGb3JCYWxhbmNlKXthc3NldE9yRmlhdEN1cnJlbmN5e19fdHlwZW5hbWUsLi4ub24gVGllcnNDdXJyZW5jeXtjb2RlLGlkfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIFZpZXdlckVxdWl0eXtpZH19LGlkfSxyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdFYyKHByb2R1Y3RJZDokcHJvZHVjdElkKUBpbmNsdWRlKGlmOiRzaG91bGRVc2VHcWxQcm9kdWN0U2NoZW1hKXtwcm9kdWN0e3F1b3RlQ3VycmVuY3lJZCxpZH0scXVvdGVBc3NldE9yQ3VycmVuY3l7X190eXBlbmFtZSwuLi5vbiBUaWVyc0N1cnJlbmN5e2FjY291bnRzKHBvcnRmb2xpb0NhdGVnb3J5OlBPUlRGT0xJT19DQVRFR09SWV9BTEwpe19fdHlwZW5hbWUsaWR9LGlkfSwuLi5vbiBWaWV3ZXJBc3NldHtfX3R5cGVuYW1lLGFjY291bnRzKHBvcnRmb2xpb0NhdGVnb3J5OlBPUlRGT0xJT19DQVRFR09SWV9BTEwpe19fdHlwZW5hbWUsaWR9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIFZpZXdlckVxdWl0eXtpZH19LGlkfX0saWR9fWAsIjQ1YzRlNTcwYmI1NDgyN2ZkNDM0ODUyYTVmMzkyZDM1YTEwODVkMDhlMTI5NGQwMjM4NTlhN2Y1NDdmYjQ3MmIiOmBxdWVyeSBFcXVpdHlFeHBsb3JlQ2F0ZWdvcnlQYWdlUXVlcnkoJGNvdW50OkludCEsJHNvcnRPcHRpb246UmJhUHJvZHVjdHNTb3J0T3B0aW9uLCRzb3J0T3JkZXI6U29ydE9yZGVyLCRza2lwTW9zdEFjdGl2ZTpCb29sZWFuISwkc2tpcFRvcEdhaW5lcnM6Qm9vbGVhbiEsJHNraXBUb3BMb3NlcnM6Qm9vbGVhbiEpe3JldGFpbEJyb2tlcmFnZXthbGxQcm9kdWN0c0Vycm9yQ2hlY2s6YWxsUHJvZHVjdHMoZmlsdGVyOntwcm9kdWN0VHlwZTpFUVVJVFkscXVvdGVDdXJyZW5jeToiVVNEIn0sc29ydE9wdGlvbjokc29ydE9wdGlvbixzb3J0T3JkZXI6JHNvcnRPcmRlcixmaXJzdDoxKXtfX3R5cGVuYW1lfX0sLi4udXNlUGFnaW5hdGVkRXF1aXR5RXhwbG9yZVJvd3NGcmFnbWVudF9LRnc1NCwuLi5FcXVpdHlFeHBsb3JlUHJldmlld3NGcmFnbWVudF8yWUNGWVp9ZnJhZ21lbnQgRXF1aXR5RXhwbG9yZVByZXZpZXdzRnJhZ21lbnRfMllDRllaIG9uIFF1ZXJ5e3JldGFpbEJyb2tlcmFnZXttb3N0QWN0aXZlOmFsbFByb2R1Y3RzKGZpbHRlcjp7cHJvZHVjdFR5cGU6RVFVSVRZfSxzb3J0T3B0aW9uOlZPTFVNRV8yNEgsc29ydE9yZGVyOkRFU0MsZmlyc3Q6NSlAc2tpcChpZjokc2tpcE1vc3RBY3RpdmUpe2VkZ2Vze25vZGV7YmFzZUN1cnJlbmN5U3ltYm9sLGVxdWl0eVByb2R1Y3REZXRhaWxze3Nob3J0TmFtZX0scHJpY2UscHJpY2VQZXJjZW50Q2hhbmdlMjRoLGlkfX19LHRvcEdhaW5lcnM6YWxsUHJvZHVjdHMoZmlsdGVyOntwcm9kdWN0VHlwZTpFUVVJVFl9LHNvcnRPcHRpb246UFJJQ0VfUEVSQ0VOVEFHRV9DSEFOR0VfMjRILHNvcnRPcmRlcjpERVNDLGZpcnN0OjUpQHNraXAoaWY6JHNraXBUb3BHYWluZXJzKXtlZGdlc3tub2Rle2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH19fSx0b3BMb3NlcnM6YWxsUHJvZHVjdHMoZmlsdGVyOntwcm9kdWN0VHlwZTpFUVVJVFl9LHNvcnRPcHRpb246UFJJQ0VfUEVSQ0VOVEFHRV9DSEFOR0VfMjRILHNvcnRPcmRlcjpBU0MsZmlyc3Q6NSlAc2tpcChpZjokc2tpcFRvcExvc2Vycyl7ZWRnZXN7bm9kZXtiYXNlQ3VycmVuY3lTeW1ib2wsZXF1aXR5UHJvZHVjdERldGFpbHN7c2hvcnROYW1lfSxwcmljZSxwcmljZVBlcmNlbnRDaGFuZ2UyNGgsaWR9fX0sU1BZOnByb2R1Y3RCeVN5bWJvbChzeW1ib2w6IlNQWSIpe2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sUVFROnByb2R1Y3RCeVN5bWJvbChzeW1ib2w6IlFRUSIpe2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sVlRJOnByb2R1Y3RCeVN5bWJvbChzeW1ib2w6IlZUSSIpe2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sRElBOnByb2R1Y3RCeVN5bWJvbChzeW1ib2w6IkRJQSIpe2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sVk9POnByb2R1Y3RCeVN5bWJvbChzeW1ib2w6IlZPTyIpe2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sQlRDOnByb2R1Y3RCeVByb2R1Y3RJZChwcm9kdWN0SWQ6IkJJUC0yMERFQzMwLUNERSIpe3Byb2R1Y3RJZCxmdXR1cmVQcm9kdWN0RGV0YWlsc3tkaXNwbGF5TmFtZSxjb250cmFjdERpc3BsYXlOYW1lfSxwcmljZSxwcmljZVBlcmNlbnRDaGFuZ2UyNGgsaWR9LEVUSDpwcm9kdWN0QnlQcm9kdWN0SWQocHJvZHVjdElkOiJFVFAtMjBERUMzMC1DREUiKXtwcm9kdWN0SWQsZnV0dXJlUHJvZHVjdERldGFpbHN7ZGlzcGxheU5hbWUsY29udHJhY3REaXNwbGF5TmFtZX0scHJpY2UscHJpY2VQZXJjZW50Q2hhbmdlMjRoLGlkfSxTT0w6cHJvZHVjdEJ5UHJvZHVjdElkKHByb2R1Y3RJZDoiU0xQLTIwREVDMzAtQ0RFIil7cHJvZHVjdElkLGZ1dHVyZVByb2R1Y3REZXRhaWxze2Rpc3BsYXlOYW1lLGNvbnRyYWN0RGlzcGxheU5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sWFJQOnByb2R1Y3RCeVByb2R1Y3RJZChwcm9kdWN0SWQ6IlhQUC0yMERFQzMwLUNERSIpe3Byb2R1Y3RJZCxmdXR1cmVQcm9kdWN0RGV0YWlsc3tkaXNwbGF5TmFtZSxjb250cmFjdERpc3BsYXlOYW1lfSxwcmljZSxwcmljZVBlcmNlbnRDaGFuZ2UyNGgsaWR9LFBBWEc6cHJvZHVjdEJ5UHJvZHVjdElkKHByb2R1Y3RJZDoiUEFVLTIwREVDMzAtQ0RFIil7cHJvZHVjdElkLGZ1dHVyZVByb2R1Y3REZXRhaWxze2Rpc3BsYXlOYW1lLGNvbnRyYWN0RGlzcGxheU5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH19fWZyYWdtZW50IHVzZVBhZ2luYXRlZEVxdWl0eUV4cGxvcmVSb3dzRnJhZ21lbnRfS0Z3NTQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle2FsbFByb2R1Y3RzKGZpbHRlcjp7cHJvZHVjdFR5cGU6RVFVSVRZLHF1b3RlQ3VycmVuY3k6IlVTRCJ9LHNvcnRPcHRpb246JHNvcnRPcHRpb24sc29ydE9yZGVyOiRzb3J0T3JkZXIsZmlyc3Q6JGNvdW50KXtlZGdlc3tub2Rle2Jhc2VDdXJyZW5jeVN5bWJvbCxwcm9kdWN0SWQsZXF1aXR5UHJvZHVjdERldGFpbHN7c2hvcnROYW1lfSxwcmljZSxwcmljZVBlcmNlbnRDaGFuZ2UyNGgsdm9sdW1lMjRoLG1hcmtldENhcCxpZCxfX3R5cGVuYW1lfSxjdXJzb3J9LHBhZ2VJbmZve2VuZEN1cnNvcixoYXNOZXh0UGFnZX19fX1gLCI0NjM5MGNhNjY2NTU0OGU5MDAwYzMxYjMzZTlkYTZkMmFlNzU4OWQ2ZmM5YmQ3MWE1ZDVlZGJiZjlhZDdmNGI2IjpgbXV0YXRpb24gdXNlVXBkYXRlRGVyaXZhdGl2ZXNPbmJvYXJkaW5nSWR2UHJvZmlsZU11dGF0aW9uKCRpbnB1dDpVcGRhdGVEZXJpdmF0aXZlc09uYm9hcmRpbmdJZHZQcm9maWxlSW5wdXQhKXt1cGRhdGVEZXJpdmF0aXZlc09uYm9hcmRpbmdJZHZQcm9maWxlKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBVcGRhdGVEZXJpdmF0aXZlc09uYm9hcmRpbmdJZHZQcm9maWxlU3VjY2Vzc3tkdW1teX0sLi4ub24gR2VuZXJpY0Vycm9ye2NvZGUsbWVzc2FnZX19fWAsIjQ2NzIxNTJlNGRjZDYwNjdkNThiYmNhYjk0MDI5YjMwNGQ5NzYyYWJkOWI5MTNiZThmMmZiYTVjNTA2YjdlMzAiOmBtdXRhdGlvbiB1c2VIYW5kbGVPcHRJbk11dGF0aW9uKCRpbnB1dDpJbmNlbnRpdmVzT3B0SW5JbnB1dCEpe2luY2VudGl2ZXNPcHRJbihpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gSW5jZW50aXZlc09wdEluU3VjY2Vzc3tzdWNjZXNzLG9wdEluRW50cnl7dXVpZCxpZCxpc09wdGVkSW59fSwuLi5vbiBJbmNlbnRpdmVzT3B0SW5FcnJvcnttZXNzYWdlLGNvZGV9fX1gLCI0NzZjZjkyNTRhZDZlNmY5MTMxYWUzMGZiMGM5NjIxZmM2NDMwZTBlYjAwYjlmMGFiMjQ1YzNjNWI3YjA4YTMwIjpgcXVlcnkgRGVyaXZhdGl2ZXNTdGF0c0luc2lnaHRzUXVlcnkoJGNvbnRyYWN0VGFnOlN0cmluZyEsJGV4cGlyYXRpb25EYXRlOlN0cmluZyEsJG1pbmltdW1PcmRlclNpemU6U3RyaW5nISl7dWlDb21wb25lbnRzQnlTdXJmYWNlTG9nZ2VkT3V0KHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9TSU1QTEVfREVSSVZBVElWRVNfSU5TSUdIVFMiLGNhdGVnb3J5TmFtZXM6IlVJX0NPTVBPTkVOVF9DQVRFR09SWV9TSU1QTEVfREVSSVZBVElWRVNfSU5TSUdIVFMiLGZpbHRlcjp7cmVsZXZhbnRUYWdzRmlsdGVyOntyZWxldmFudFRhZ3M6WyRjb250cmFjdFRhZ119fSx0ZW1wbGF0ZVZhcmlhYmxlczp7ZW50cmllczpbe2tleToiY29udHJhY3RfZXhwaXJhdGlvbl9kYXRlIix2YWx1ZTokZXhwaXJhdGlvbkRhdGV9LHtrZXk6Im1pbmltdW1fb3JkZXJfc2l6ZSIsdmFsdWU6JG1pbmltdW1PcmRlclNpemV9XX0pey4uLnVzZUluc2lnaHRzRnJhZ21lbnQsaWR9fWZyYWdtZW50IHVzZUluc2lnaHRzRnJhZ21lbnQgb24gVUlDb21wb25lbnRzQ29ubmVjdGlvbntlZGdlc3tub2Rle2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHt0ZXh0RmllbGRze2tleSx0ZXh0fX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fX1gLCI0YWUzZjRjYmQ2YjRmZDI5MjJhZDY2ZDIxN2VhN2UwNDllODI2ZGQ5NmFkYmY5MWEyNDVjNmYxOTY2OTI5N2NlIjpgcXVlcnkgRmFxTW9kYWxDb250ZW50UXVlcnkoJGlzTG9nZ2VkT3V0OkJvb2xlYW4hKXt1aUNvbXBvbmVudHNCeVN1cmZhY2VMb2dnZWRPdXQoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX1RPS0VOX1NBTEVTX0ZBUVMiLGZpcnN0OjEpQGluY2x1ZGUoaWY6JGlzTG9nZ2VkT3V0KXtlZGdlc3tub2Rle2NvbXBvbmVudHN7aWQsY29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3RpdGxlVGV4dEZpZWxke3RleHR9LHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ319LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19fSxpZH19LGlkfSx2aWV3ZXJAc2tpcChpZjokaXNMb2dnZWRPdXQpe3VpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfVE9LRU5fU0FMRVNfRkFRUyIsZmlyc3Q6MSl7ZWRnZXN7bm9kZXtjb21wb25lbnRze2lkLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHt0aXRsZVRleHRGaWVsZHt0ZXh0fSxyaWNoVGV4dERlc2NyaXB0aW9ue2h0bWxTdHJpbmd9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fX0saWR9fSxpZH0saWR9fWAsIjRiZGJhMDYyNjgzMzhkYzRkZTFlNDJlM2E4OWY3NGVkMDgwYTFmNjBlMDRlZmEwMWI5ZmFhNTMzMTZjNDQzOWMiOmBxdWVyeSB1c2VQcml6ZXNVcEZvckdyYWJzRGF0YUFUU1F1ZXJ5KCRjb21wZXRpdGlvbklkOlRoaXJkUGFydHlJZFN0cmluZyEpe3RyYWRpbmdDb21wZXRpdGlvblVuYXV0aGVudGljYXRlZChjb21wZXRpdGlvbklkOiRjb21wZXRpdGlvbklkKXtwcml6ZXN7bGVhZGVyYm9hcmRUeXBlLGl0ZW1pemVkUHJpemVze3JhbmssbmFtZSx2YWx1ZSx1cmwsZGVzY3JpcHRpb259LHByaXplRGlzdHJpYnV0aW9ue3Jhbmssc3RhcnRpbmdQcml6ZSxtYXhQcml6ZX19fX1gLCI0YzNhZTA0NDM3NWQ0YWNjOGE2YjQ4NGYzODg2MDQ4NTIyMzcyOWIzMjhjNDk1NWE1YWRjYjUzYmYxMTgyMjY5IjpgcXVlcnkgdXNlUmVmcmVzaEZ1dHVyZXNBY2NvdW50U3RhdHVzQVRTUXVlcnl7dmlld2Vye2Rlcml2YXRpdmVzT25ib2FyZGluZ3thY2NvdW50U3RhdHVzVjN7X190eXBlbmFtZSwuLi5vbiBEZXJpdmF0aXZlc1VzZXJBY2NvdW50U3RhdHVzVjNTdWNjZXNze3N0YXR1c319fSxpZH19YCwiNGM1NDgxYjFjYzQwZjQyZDc3MjFhOGI5MDVjNzFiMTY3ZjVlYmQ3OTZhNWI2ZjZhNTZmNWRmMDNjODZmNDdkZCI6YHF1ZXJ5IFByZWRpY3Rpb25FdmVudERlZmVycmVkQ29udGVudFF1ZXJ5KCRldmVudFRpY2tlcjpUaGlyZFBhcnR5SWRTdHJpbmchLCRwcm9kdWN0c1NvcnRPcHRpb246UmJhUHJvZHVjdHNTb3J0T3B0aW9uISwkcHJvZHVjdHNTb3J0T3JkZXI6U29ydE9yZGVyISwkY291bnRyeUNvZGU6U3RyaW5nISwkbG9jYWxlOkxvY2FsZSEpey4uLlByZWRpY3Rpb25FdmVudFRpbWVsaW5lRnJhZ21lbnQsLi4uUHJlZGljdGlvblRyZW5kaW5nTWFya2V0c0ZyYWdtZW50LC4uLlByZWRpY3Rpb25FdmVudEZBUUZyYWdtZW50LC4uLlByZWRpY3Rpb25FdmVudEludGVybmFsTGlua3NGcmFnbWVudF8ycTBQc1J9ZnJhZ21lbnQgUHJlZGljdGlvbkV2ZW50RGV0YWlsc1RpbWVsaW5lRnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle2luc3RydW1lbnRHcm91cChpbnN0cnVtZW50R3JvdXBJZDokZXZlbnRUaWNrZXIscHJvZHVjdHNTb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24scHJvZHVjdHNTb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtwcm9kdWN0c3twcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze2NhbkNsb3NlRWFybHksY29udHJhY3RFeHBpcnksZWFybHlDbG9zZUNvbmRpdGlvbixzZXR0bGVtZW50UHJpY2Usc2V0dGxlbWVudFRpbWVzdGFtcCxzZXR0bGVtZW50VGltZXJTZWNvbmRzLHRyYWRhYmxlU3RhcnRUaW1lfSxpZH0saWR9fX1mcmFnbWVudCBQcmVkaWN0aW9uRXZlbnRGQVFGcmFnbWVudCBvbiBRdWVyeXt1aUNvbXBvbmVudHNCeVN1cmZhY2VMb2dnZWRPdXQoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX1BSRURJQ1RJT05fRkFRIixmaXJzdDozMCl7ZWRnZXN7bm9kZXtpZCxjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGVUZXh0RmllbGR7dGV4dH0scmljaFRleHREZXNjcmlwdGlvbntodG1sU3RyaW5nfX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX19fSxpZH19ZnJhZ21lbnQgUHJlZGljdGlvbkV2ZW50SW50ZXJuYWxMaW5rc0ZyYWdtZW50XzJxMFBzUiBvbiBRdWVyeXt0b3BQcmVkaWN0aW9uTWFya2V0czppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToicHJlZGljdGlvbnMiLHJlcXVlc3RJbnB1dDp7cHJlZGljdGlvbk1hcmtldFJlcXVlc3RJbnB1dDp7cHJlZGljdGlvbk1hcmtldElkOiRldmVudFRpY2tlcixzb3J0OlNPUlRfVFlQRV9WT0xVTUUscmVxdWVzdEFtb3VudDoxMH19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NQcmVkaWN0aW9uTWFya2V0RW50aXR5e25hbWU6dGl0bGUsaWNvblVybCxwYWdlVXJsfX19LHRvcERlcml2YXRpdmVzOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJmdXR1cmVzIixyZXF1ZXN0SW5wdXQ6e2Rlcml2YXRpdmVSZXF1ZXN0SW5wdXQ6e3NvcnQ6U09SVF9UWVBFX1ZPTFVNRSxyZXF1ZXN0QW1vdW50OjEwfX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0Rlcml2YXRpdmVFbnRpdHl7cGFnZVVybCxpY29uVXJsLG5hbWV9fX0sdG9wQURQOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJwcmljZSIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0Ontjb3VudHJ5Q29kZTokY291bnRyeUNvZGUsc29ydDpTT1JUX1RZUEVfTUFSS0VUX0NBUCxyYW5kb21pemVkQ29uZmlnOntwb29sU2l6ZTo1MCxzYW1wbGVTaXplOjEwfX19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NBc3NldEVudGl0eXtuYW1lLGljb25VcmwscGFnZVVybH19fSx0b3BDb252ZXJ0ZXJzOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJjb252ZXJ0ZXIiLHJlcXVlc3RJbnB1dDp7Y29udmVydGVyUmVxdWVzdElucHV0OntiYXNlOntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0FTU0VULHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAsdG9wTjoxMH0sdGFyZ2V0OntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0FTU0VULHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAsdG9wTjoxMH0scmVxdWVzdEFtb3VudDoxMn19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NDb252ZXJ0ZXJFbnRpdHl7YmFzZXtuYW1lLGljb25Vcmx9LHRhcmdldHtuYW1lfSxwYWdlVXJsfX19LHRvcEhUQjppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToiaG93LXRvLWJ1eSIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0Ontjb3VudHJ5Q29kZTokY291bnRyeUNvZGUsc29ydDpTT1JUX1RZUEVfTUFSS0VUX0NBUCxmaWx0ZXJzOltGSUxURVJfVFJBREFCTEVdLHJhbmRvbWl6ZWRDb25maWc6e3Bvb2xTaXplOjUwLHNhbXBsZVNpemU6MTB9fX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0Fzc2V0RW50aXR5e25hbWUsaWNvblVybCxwYWdlVXJsfX19LHRvcFBQUHM6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6InByaWNlLXByZWRpY3Rpb24iLHJlcXVlc3RJbnB1dDp7ZGVmYXVsdFJlcXVlc3RJbnB1dDp7Y291bnRyeUNvZGU6JGNvdW50cnlDb2RlLHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAscmFuZG9taXplZENvbmZpZzp7cG9vbFNpemU6NTAsc2FtcGxlU2l6ZToxMH19fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzQXNzZXRFbnRpdHl7bmFtZSxpY29uVXJsLHBhZ2VVcmx9fX0scG9wdWxhckVxdWl0eTppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToic3RvY2siLHJlcXVlc3RJbnB1dDp7ZXF1aXR5UmVxdWVzdElucHV0Ontzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHJlcXVlc3RBbW91bnQ6MTAsc2VjdGlvbjpFUVVJVFlfU0VDVElPTl9QT1BVTEFSfX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0VxdWl0eUVudGl0eXtuYW1lLHN5bWJvbCxpY29uVXJsLHBhZ2VVcmx9fX0sZXhwbG9yZUVxdWl0eTppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToic3RvY2siLHJlcXVlc3RJbnB1dDp7ZXF1aXR5UmVxdWVzdElucHV0Ontzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHJlcXVlc3RBbW91bnQ6MTAsc2VjdGlvbjpFUVVJVFlfU0VDVElPTl9FWFBMT1JFfX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0VxdWl0eUVudGl0eXtuYW1lLHN5bWJvbCxpY29uVXJsLHBhZ2VVcmx9fX19ZnJhZ21lbnQgUHJlZGljdGlvbkV2ZW50VGltZWxpbmVGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7aW5zdHJ1bWVudEdyb3VwKGluc3RydW1lbnRHcm91cElkOiRldmVudFRpY2tlcixwcm9kdWN0c1NvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixwcm9kdWN0c1NvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3Rze3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7cHJvaGliaXRpb25zfSxpZH0saWR9fSwuLi5QcmVkaWN0aW9uRXZlbnREZXRhaWxzVGltZWxpbmVGcmFnbWVudCwuLi5QcmVkaWN0aW9uTWFya2V0c1Byb2hpYml0aW9uc0ZyYWdtZW50fWZyYWdtZW50IFByZWRpY3Rpb25NYXJrZXRzUHJvaGliaXRpb25zRnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle2luc3RydW1lbnRHcm91cChpbnN0cnVtZW50R3JvdXBJZDokZXZlbnRUaWNrZXIscHJvZHVjdHNTb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24scHJvZHVjdHNTb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtwcm9kdWN0c3twcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3Byb2hpYml0aW9uc30saWR9LGlkfX19ZnJhZ21lbnQgUHJlZGljdGlvblRyZW5kaW5nTWFya2V0c0ZyYWdtZW50IG9uIFF1ZXJ5e3JldGFpbEJyb2tlcmFnZXtpbnN0cnVtZW50R3JvdXAoaW5zdHJ1bWVudEdyb3VwSWQ6JGV2ZW50VGlja2VyLHByb2R1Y3RzU29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHByb2R1Y3RzU29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cmVsYXRlZEluc3RydW1lbnRHcm91cHN7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaWNrZXIsZXZlbnRUaXRsZSxsaWdodE1vZGVJY29uVXJsfSxwcm9kdWN0c3twcmljZSxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSxpZH0saWR9LGlkfX19YCwiNGM5ODQwM2E5ZDY5OWNhYjU0NWM5MzRlZjljYWY3MjQxZjVhZDdhY2ZmNzEzMmY1Njg0OGE1YmQxZGZkNjA1YSI6YHF1ZXJ5IE5ld3NBcnRpY2xlUmVkaXJlY3RRdWVyeSgkYXJ0aWNsZVV1aWQ6VXVpZCEpe25ld3NBcnRpY2xlKGFydGljbGVVdWlkOiRhcnRpY2xlVXVpZCl7bGlua1VybCxpZH19YCwiNGQ4MWEwZTY5NjM5YTUxMGUwMDkyOThlODY4NDEyZjdhNjhhODI1ZGYwZTFlZWVlYTJlYzk3ZjE4ODYxOGI4NCI6YHF1ZXJ5IFRyYWRpbmdDb21wZXRpdGlvblBhZ2VRdWVyeSgkY29tcGV0aXRpb25JZDpUaGlyZFBhcnR5SWRTdHJpbmcsJGNvdW50cnlDb2RlOlN0cmluZyl7dHJhZGluZ0NvbXBldGl0aW9uVW5hdXRoZW50aWNhdGVkKGNvbXBldGl0aW9uSWQ6JGNvbXBldGl0aW9uSWQsY291bnRyeUNvZGU6JGNvdW50cnlDb2RlKXtzdGF0ZSwuLi5UcmFkaW5nQ29tcGV0aXRpb25Qcml6ZVBvb2xGcmFnbWVudCwuLi5UcmFkaW5nQ29tcGV0aXRpb25Qcml6ZXNVcEZvckdyYWJzRnJhZ21lbnQsLi4uVHJhZGluZ0NvbXBldGl0aW9uTGVhZGVyYm9hcmRGcmFnbWVudH19ZnJhZ21lbnQgVHJhZGluZ0NvbXBldGl0aW9uTGVhZGVyYm9hcmRGcmFnbWVudCBvbiBUcmFkaW5nQ29tcGV0aXRpb25VbmF1dGhlbnRpY2F0ZWR7bGVhZGVyYm9hcmR7bGVhZGVyYm9hcmRUeXBlLHRvdGFsUGFydGljaXBhbnRzLGxhc3RVcGRhdGVkQXQsZW50cmllc3tyYW5rLHVzZXJuYW1lLHNjb3JlLGV4cGVjdGVkUHJpemV9fX1mcmFnbWVudCBUcmFkaW5nQ29tcGV0aXRpb25Qcml6ZVBvb2xGcmFnbWVudCBvbiBUcmFkaW5nQ29tcGV0aXRpb25VbmF1dGhlbnRpY2F0ZWR7cHJpemVQb29se2Jhc2VQb29sLGJhc2VQb29sQW1vdW50e3ZhbHVlLGN1cnJlbmN5fSxtYXhQb29sLG1heFBvb2xBbW91bnR7dmFsdWUsY3VycmVuY3l9LGFnZ3JlZ2F0ZVZvbHVtZSxhZ2dyZWdhdGVWb2x1bWVBbW91bnR7dmFsdWUsY3VycmVuY3l9LHVubG9ja1RpZXJze3RpZXIsdm9sdW1lVGhyZXNob2xkLHZvbHVtZVRocmVzaG9sZEFtb3VudHt2YWx1ZSxjdXJyZW5jeX0sYWRkaXRpb25hbFBvb2wsYWRkaXRpb25hbFBvb2xBbW91bnR7dmFsdWUsY3VycmVuY3l9fX0sbGVhZGVyYm9hcmR7bGVhZGVyYm9hcmRUeXBlLHRvdGFsUGFydGljaXBhbnRzfX1mcmFnbWVudCBUcmFkaW5nQ29tcGV0aXRpb25Qcml6ZXNVcEZvckdyYWJzRnJhZ21lbnQgb24gVHJhZGluZ0NvbXBldGl0aW9uVW5hdXRoZW50aWNhdGVke3ByaXplc3tsZWFkZXJib2FyZFR5cGUsbGVhZGVyYm9hcmROYW1lLGl0ZW1pemVkUHJpemVze3JhbmssbmFtZSx2YWx1ZSx2YWx1ZUFtb3VudHt2YWx1ZSxjdXJyZW5jeX0sZGVzY3JpcHRpb24sdXJsfSxwcml6ZURpc3RyaWJ1dGlvbntyYW5rLHN0YXJ0aW5nUHJpemUsc3RhcnRpbmdQcml6ZUFtb3VudHt2YWx1ZSxjdXJyZW5jeX0sbWF4UHJpemUsbWF4UHJpemVBbW91bnR7dmFsdWUsY3VycmVuY3l9fX19YCwiNGRhMTQyMWMyN2M2NzVhMmJlNTI1OTM2NDI2MzdjMmQyODA3YTA4NWMxODYyNDU5YjQ0ZTNhNGNmMGE3YjE2NiI6YHF1ZXJ5IHVzZUZldGNoTmF0aXZlQ3VycmVuY2llc09uRm9jdXNRdWVyeXtuYXRpdmVDdXJyZW5jaWVze2lkLG5hbWUsY3VycmVuY3lDb2RlfX1gLCI0ZGE0YmY1MWMzOTY3MTE1ZmY1YzJkMThjY2JlNmQ1YTc5OWY1MjNkZmRjN2Q4YTMxNmRmNzZjMTIyODI2MTQzIjpgcXVlcnkgUHJpY2VXaWRnZXRRdWVyeSgkcXVlcnk6U3RyaW5nISwkZmlsdGVyOkFzc2V0U2VhcmNoRmlsdGVyISwkc29ydDpBc3NldFNlYXJjaFNvcnQhLCRvcmRlcjpTb3J0T3JkZXIhLCRmaXJzdDpJbnQhLCRjb3VudHJ5OlN0cmluZyEpey4uLlByaWNlV2lkZ2V0UHJlc2VudGVyRnJhZ21lbnR9ZnJhZ21lbnQgQ3J5cHRvY3VycmVuY3lTZWxlY3RvckZyYWdtZW50XzNQMjdNTCBvbiBRdWVyeXtzZWFyY2hBc3NldHM6c2VhcmNoQXNzZXRzVjIocXVlcnk6JHF1ZXJ5LGZpbHRlcjokZmlsdGVyLHNvcnQ6JHNvcnQsb3JkZXI6JG9yZGVyLGZpcnN0OiRmaXJzdCxjb3VudHJ5OiRjb3VudHJ5KXtlZGdlc3tub2Rle3V1aWQsc2x1ZyxzeW1ib2wsbmFtZSxpZCxfX3R5cGVuYW1lfSxjdXJzb3J9LHBhZ2VJbmZve2VuZEN1cnNvcixoYXNOZXh0UGFnZX19fWZyYWdtZW50IFByaWNlV2lkZ2V0UHJlc2VudGVyRnJhZ21lbnQgb24gUXVlcnl7Li4uQ3J5cHRvY3VycmVuY3lTZWxlY3RvckZyYWdtZW50XzNQMjdNTH1gLCI0ZWM0NzJmNDRmMWQ4NmUyYmI5OTQ2NjJlMjczODMyYzI5NmYxMGI1NTM2NDc1YjAxZGYyOGNkY2EzM2Y2NWE0IjpgcXVlcnkgQ3VycmVuY3lJY29uUXVlcnkoJHN5bWJvbDpTdHJpbmchKXthc3NldEJ5U3ltYm9sKHN5bWJvbDokc3ltYm9sKXtpbWFnZVVybCxjb2xvcixpZH19YCwiNGVmMWRiYWM3YjE0MjZiYTQ5ZGIyODU3ZWY4NmJkOTM4YzlkNTMyY2Q5MzUyYjRmYWYwYjVjMjI3MTU5MjA0YSI6YHF1ZXJ5IFNnUmlza0Fzc2Vzc21lbnRTdGVwc1F1ZXJ5KCRxdWVzdGlvblR5cGU6R2VuZXJpY0NvbXBsaWFuY2VRdWVzdGlvblR5cGUhKXt2aWV3ZXJ7Z2VuZXJpY0NvbXBsaWFuY2VRdWVzdGlvbnNCeVR5cGUodHlwZTokcXVlc3Rpb25UeXBlKXtxdWVzdGlvbnN7dXVpZCx0aXRsZSxjb3JyZWN0QW5zd2VycyxvcHRpb25ze3ZhbHVlLHRpdGxlfSxpZH19LGdlbmVyaWNDb21wbGlhbmNlQW5zd2Vyc0J5UXVlc3Rpb25UeXBlKHR5cGU6JHF1ZXN0aW9uVHlwZSl7bWV0YURhdGF7c3RhdHVzfX0scmVtZWRpYXRpb25BbGVydHt0aXRsZX0saWR9fWAsIjRmYzZiNjYxNDA0ODhiMGNiMDVlMzI3MDg5N2I3NGMyYmYyNDBjYTE1ZjI5MTMyOTljN2Q5MGExMzYzMmRiYzEiOmBxdWVyeSBJbnZvaWNlVmlld2VyQ29udGVudFF1ZXJ5KCR1dWlkOlV1aWQhKXsuLi51c2VHZXRQdWJsaWNJbnZvaWNlQnlVdWlkRnJhZ21lbnRfMjZWU043fWZyYWdtZW50IHVzZUdldFB1YmxpY0ludm9pY2VCeVV1aWRGcmFnbWVudF8yNlZTTjcgb24gUXVlcnl7aW52b2ljZUJ5VXVpZCh1dWlkOiR1dWlkKXtlbnRpdHlJZCxlbnRpdHlOYW1lLGludm9pY2VOdW1iZXIsY29udGFjdE5hbWUsY29udGFjdEVtYWlsLGR1ZURhdGUsY3JlYXRlZEF0LGludm9pY2VEYXRlLHVwZGF0ZWRBdCxwdXJjaGFzZU9yZGVyTnVtYmVyLG1lbW8sc3RhdHVzLHRvdGFsQW1vdW50RHVle3ZhbHVlLGN1cnJlbmN5fSx0YXh7dmFsdWUsY3VycmVuY3l9LGxpbmVJdGVtc3tpdGVtTmFtZSxxdWFudGl0eSx1bml0UHJpY2V7dmFsdWUsY3VycmVuY3l9fSxlbnRpdHlBZGRyZXNze2xpbmUxLGxpbmUyLGNpdHksc3RhdGUscG9zdGFsQ29kZSxjb3VudHJ5fSxwYXltZW50TWV0aG9kRGV0YWlsc3tjcnlwdG97cGF5bWVudExpbmtVcmx9fSxpZH19YCwiNTE3NmZjMWQ4YWRkOTdhZTlkYzRmNWU2MWRhZmRkM2M3YzcwMzBmNzg2YzEyMTk5NTc2YTY5OWQxZmFmNWM4NCI6YHF1ZXJ5IEFzc2V0UGFnZUNvbnRlbnRWMlF1ZXJ5KCRhc3NldFNsdWc6U3RyaW5nISwkbG9jYWxlOkxvY2FsZSEsJGN1cnJlbmN5OlRpY2tlclN5bWJvbCEsJHRhcmdldFN5bWJvbDpTdHJpbmchLCRjb3VudHJ5OkNvdW50cnlDb2RlISwkY291bnRyeUNvZGU6U3RyaW5nISwkc2tpcEZyYW1lczpCb29sZWFuISwkaW50ZXJuYWxMaW5rc0xpbWl0OkludCEsJHBhZ2VLZXk6U3RyaW5nISwkc2tpcE5ld3NBcnRpY2xlczpCb29sZWFuISwkaXNMb2dnZWRPdXREZXhFeHBlcmltZW50OkJvb2xlYW4hLCRpc1VLVXNlcjpCb29sZWFuISwkdXJsOlN0cmluZyEsJHNob3VsZFVzZVVBU0ZpZWxkczpCb29sZWFuISl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtuYW1lLHBsYXRmb3JtTmFtZSxzbHVnLGNvaW5HZWNrb0lkLGNvaW5NYXJrZXRDYXBJZCx1dWlkLHN1cHBvcnRlZENvbnRleHRzRm9yTG9jYXRpb24oY291bnRyeUNvZGU6JGNvdW50cnlDb2RlKXtpc1RyYWRhYmxlLGlzRGV4LGlzV2FsbGV0LGlzRGV4VHJhZGFibGVAaW5jbHVkZShpZjokaXNMb2dnZWRPdXREZXhFeHBlcmltZW50KX0sc3Rha2luZ1N0YXRze2hhc1N0YWtpbmdQYWdlfSxpZH0sLi4uQXNzZXRQYWdlTWV0YURhdGFGcmFnbWVudF80MU5UNjAsLi4uQXNzZXRBYm91dEZyYWdtZW50XzJmNmtZMiwuLi5Bc3NldEZBUUZyYWdtZW50XzJoTk92dywuLi5Bc3NldFN0YXRzRnJhZ21lbnQsLi4uQXNzZXRHdWlkZXNGcmFnbWVudCwuLi5Bc3NldFJlbGF0ZWRGcmFnbWVudF8xQkt2cUUsLi4uQXNzZXRDYWxjdWxhdG9yQURQUmVmcmVzaEZyYWdtZW50LC4uLkFzc2V0Q2hhcnRDRFN2OEZyYWdtZW50LC4uLkFzc2V0TmV3c0ZyYWdtZW50LC4uLkFzc2V0TmF2RnJhZ21lbnQsLi4uQXNzZXRTb2NpYWxGcmFnbWVudCwuLi5Bc3NldEFkZGl0aW9uYWxJbmZvRnJhZ21lbnQsLi4uRHluYW1pY0Zvb3RlckxheW91dEZyYWdtZW50XzQwQk56cCwuLi51c2VJc01pY2FFbGlnaWJsZUZyYWdtZW50LC4uLkFzc2V0SW52ZXN0bWVudFJpc2tGcmFnbWVudCwuLi5Db2luYmFzZUluc2lnaHRzU2VjdGlvbkZyYWdtZW50XzJmNmtZMn1mcmFnbWVudCBBc3NldEFib3V0RnJhZ21lbnRfMmY2a1kyIG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxkaXNwbGF5U3ltYm9sLGRlc2NyaXB0aW9uOmRlc2NyaXB0aW9uVjIobG9jYWxlOiRsb2NhbGUpLG9mZmljaWFsV2Vic2l0ZSx3aGl0ZVBhcGVyLHBsYXRmb3JtTmFtZSxzdXBwb3J0ZWRDb250ZXh0c0ZvckxvY2F0aW9uKGNvdW50cnlDb2RlOiRjb3VudHJ5Q29kZSl7aXNUcmFkYWJsZSxpc0RleCxpc1dhbGxldCxpc0RleFRyYWRhYmxlQGluY2x1ZGUoaWY6JGlzTG9nZ2VkT3V0RGV4RXhwZXJpbWVudCl9LC4uLkFzc2V0UmVzb3VyY2VzRnJhZ21lbnQsaWR9LC4uLnVzZUlzTWljYUVsaWdpYmxlRnJhZ21lbnQsLi4uSGFwcGVuaW5nTm93Q2FyZEZyYWdtZW50XzJmNmtZMn1mcmFnbWVudCBBc3NldEFkZGl0aW9uYWxJbmZvRnJhZ21lbnQgb24gUXVlcnl7Li4uUHJpY2VIaXN0b3J5RnJhZ21lbnQsLi4uTWFya2V0RGV0YWlsc0ZyYWdtZW50LC4uLlJlY2VudFRyZW5kc0ZyYWdtZW50LC4uLk5ldHdvcmtzQW5kQWRkcmVzc2VzRnJhZ21lbnR9ZnJhZ21lbnQgQXNzZXRDYWxjdWxhdG9yQURQUmVmcmVzaEZyYWdtZW50IG9uIFF1ZXJ5ey4uLnVzZUFzc2V0Q2FsY3VsYXRvckZyYWdtZW50fWZyYWdtZW50IEFzc2V0Q2hhcnRDRFN2OEZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7dXVpZCxpc1ByZWZlcnJlZEFzc2V0VG9rZW5AaW5jbHVkZShpZjokaXNMb2dnZWRPdXREZXhFeHBlcmltZW50KSxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cHJpY2UsaWR9LGlkfSwuLi51c2VBc3NldENoYXJ0Q0RTdjhGcmFnbWVudH1mcmFnbWVudCBBc3NldERpc2NsYWltZXJCYW5uZXJWMkZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxjb2luTWFya2V0Q2FwSWQsY29pbkdlY2tvSWQsc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeUNvZGUpe2lzRGV4VHJhZGFibGVAaW5jbHVkZShpZjokaXNMb2dnZWRPdXREZXhFeHBlcmltZW50KX0saWR9fWZyYWdtZW50IEFzc2V0RkFRRnJhZ21lbnRfMmhOT3Z3IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxzdXBwb3J0ZWRDb250ZXh0c0ZvckxvY2F0aW9uKGNvdW50cnlDb2RlOiRjb3VudHJ5Q29kZSl7aXNUcmFkYWJsZX0saWR9LC4uLnVzZUdldEFzc2V0UGFnZUZhcXNGcmFnbWVudF8ya1FhVmN9ZnJhZ21lbnQgQXNzZXRHdWlkZXNGcmFnbWVudCBvbiBRdWVyeXsuLi5Bc3NldFBhZ2VHdWlkZXNGcmFnbWVudF9jTnZ0cX1mcmFnbWVudCBBc3NldEludmVzdG1lbnRSaXNrRnJhZ21lbnQgb24gUXVlcnl7Li4udXNlUmlza0NhdGVnb3JpZXNGcmFnbWVudH1mcmFnbWVudCBBc3NldE5hdkZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7c3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeUNvZGUpe2lzVHJhZGFibGUsaXNEZXhUcmFkYWJsZUBpbmNsdWRlKGlmOiRpc0xvZ2dlZE91dERleEV4cGVyaW1lbnQpfSxpZH0sLi4uQXNzZXREaXNjbGFpbWVyQmFubmVyVjJGcmFnbWVudCwuLi5Bc3NldE5hdlRpdGxlRnJhZ21lbnQsLi4uQXNzZXRUb29sYmFyRnJhZ21lbnR9ZnJhZ21lbnQgQXNzZXROYXZUaXRsZUZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxpbWFnZVVybCxkaXNwbGF5U3ltYm9sLGlkfX1mcmFnbWVudCBBc3NldE5ld3NGcmFnbWVudCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe25hbWUsbmV3c0FydGljbGVzQHNraXAoaWY6JHNraXBOZXdzQXJ0aWNsZXMpe2VkZ2Vze2N1cnNvcn19LGlkfSwuLi5UcmVuZGluZ0FydGljbGVzRnJhZ21lbnR9ZnJhZ21lbnQgQXNzZXRQYWdlR3VpZGVzRnJhZ21lbnRfY052dHEgb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtzbHVnLG5hbWUsaW1hZ2VVcmwsc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeUNvZGUpe2lzVHJhZGFibGUsaXNEZXgsaXNXYWxsZXQsaXNEZXhUcmFkYWJsZUBpbmNsdWRlKGlmOiRpc0xvZ2dlZE91dERleEV4cGVyaW1lbnQpfSxzdGFraW5nU3RhdHN7aGFzU3Rha2luZ1BhZ2UsaXNTdXBwb3J0ZWRPbkNvaW5iYXNlfSxpZH19ZnJhZ21lbnQgQXNzZXRQYWdlTWV0YURhdGFGcmFnbWVudF80MU5UNjAgb24gUXVlcnl7c2VvTWV0YWRhdGEodXJsOiR1cmwpe3RpdGxlVGFncyxpc1RpdGxlVGFnVG90YWxPdmVycmlkZSxtZXRhRGVzY3JpcHRpb24sc2hvdWxkTm9JbmRleCxzaG91bGRSZWRpcmVjdCxjYW5vbmljYWxVcmx9LGFzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxzbHVnLGNvbG9yQHNraXAoaWY6JHNraXBGcmFtZXMpCiAgICBwcmljZURhdGFGb3JEYXlWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSlAc2tpcChpZjokc2tpcEZyYW1lcyl7cGVyY2VudENoYW5nZSxxdW90ZVByaWNlc30sZGlzcGxheVN5bWJvbCxwbGF0Zm9ybU5hbWUsY2lyY3VsYXRpbmdTdXBwbHksaW1hZ2VVcmwsYWxsVGltZUhpZ2g6YWxsVGltZUhpZ2hWNChxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7dmFsdWV9LGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtwcmljZSxwZXJjZW50Q2hhbmdlc0Bza2lwKGlmOiRzaG91bGRVc2VVQVNGaWVsZHMpe2RheSx3ZWVrfSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5LHdlZWt9LGlkfSxsYXRlc3RQcmljZVVzZDpsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiJVU0QiKXtwcmljZSxpZH0scHJpY2VEYXRhRm9yRGF5RWFybGllc3Q6cHJpY2VEYXRhRm9yRGF5VjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe2VhcmxpZXN0UXVvdGV7cHJpY2V9fSxwcmljZURhdGFGb3JXZWVrRWFybGllc3Q6cHJpY2VEYXRhRm9yV2Vla1YyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtlYXJsaWVzdFF1b3Rle3ByaWNlfX0sbWFya2V0Q2FwVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLHZvbHVtZTI0aFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSxpZH19ZnJhZ21lbnQgQXNzZXRSZWxhdGVkRnJhZ21lbnRfMUJLdnFFIG9uIFF1ZXJ5e3RvcEFEUDppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToicHJpY2UiLHJlcXVlc3RJbnB1dDp7ZGVmYXVsdFJlcXVlc3RJbnB1dDp7c2x1ZzokYXNzZXRTbHVnLGNvdW50cnlDb2RlOiRjb3VudHJ5Q29kZSxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHJhbmRvbWl6ZWRDb25maWc6e3Bvb2xTaXplOjUwLHNhbXBsZVNpemU6MTJ9fX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0Fzc2V0RW50aXR5e25hbWUsaWNvblVybCxwYWdlVXJsfX19LHRvcEhUQjppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToiaG93LXRvLWJ1eSIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0OntzbHVnOiRhc3NldFNsdWcsY291bnRyeUNvZGU6JGNvdW50cnlDb2RlLHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAsZmlsdGVyczpbRklMVEVSX1RSQURBQkxFXSxyYW5kb21pemVkQ29uZmlnOntwb29sU2l6ZTo1MCxzYW1wbGVTaXplOjEyfX19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NBc3NldEVudGl0eXtuYW1lLGljb25VcmwscGFnZVVybH19fSx0b3AyMEFzc2V0VG9SYW5kb21GaWF0OmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJjb252ZXJ0ZXIiLHJlcXVlc3RJbnB1dDp7Y29udmVydGVyUmVxdWVzdElucHV0OntiYXNlU3ltYm9sOiRhc3NldFNsdWcsdGFyZ2V0U3ltYm9sOiR0YXJnZXRTeW1ib2wsYmFzZTp7ZW50aXR5VHlwZTpFTlRJVFlfVFlQRV9BU1NFVCxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHRvcE46MjB9LHRhcmdldDp7ZW50aXR5VHlwZTpFTlRJVFlfVFlQRV9GSUFUfSxyZXF1ZXN0QW1vdW50OjEyfX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0NvbnZlcnRlckVudGl0eXtiYXNle25hbWUsaWNvblVybH0sdGFyZ2V0e25hbWV9LHBhZ2VVcmx9fX0sdG9wUFBQczppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToicHJpY2UtcHJlZGljdGlvbiIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0Ontjb3VudHJ5Q29kZTokY291bnRyeUNvZGUsc29ydDpTT1JUX1RZUEVfTUFSS0VUX0NBUCxyYW5kb21pemVkQ29uZmlnOntwb29sU2l6ZTo1MCxzYW1wbGVTaXplOjEyfX19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NBc3NldEVudGl0eXtuYW1lLGljb25VcmwscGFnZVVybH19fSx0b3BQcmVkaWN0aW9uTWFya2V0czppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToicHJlZGljdGlvbnMiLHJlcXVlc3RJbnB1dDp7cHJlZGljdGlvbk1hcmtldFJlcXVlc3RJbnB1dDp7c29ydDpTT1JUX1RZUEVfVk9MVU1FLHJlcXVlc3RBbW91bnQ6MTB9fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzUHJlZGljdGlvbk1hcmtldEVudGl0eXtuYW1lOnRpdGxlLGljb25VcmwscGFnZVVybH19fSxjb21wYXJhYmxlTWFya2V0Q2FwQXNzZXRzOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJwcmljZSIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0OntzbHVnOiRhc3NldFNsdWcsY291bnRyeUNvZGU6JGNvdW50cnlDb2RlLGZpbHRlcnM6W0ZJTFRFUl9DTE9TRVNUX01BUktFVF9DQVBdLHJhbmRvbWl6ZWRDb25maWc6e3Bvb2xTaXplOjEyLHNhbXBsZVNpemU6MTJ9fX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0Fzc2V0RW50aXR5e25hbWUsaWNvblVybCxwYWdlVXJsfX19LGRpc2NvdmVyTW9yZUFzc2V0czppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToicHJpY2UiLHJlcXVlc3RJbnB1dDp7ZGVmYXVsdFJlcXVlc3RJbnB1dDp7c2x1ZzokYXNzZXRTbHVnLGNvdW50cnlDb2RlOiRjb3VudHJ5Q29kZSxyYW5kb21pemVkQ29uZmlnOntzYW1wbGVTaXplOjEyfX19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NBc3NldEVudGl0eXtuYW1lLGljb25VcmwscGFnZVVybH19fX1mcmFnbWVudCBBc3NldFJlc291cmNlc0ZyYWdtZW50IG9uIEFzc2V0e29mZmljaWFsV2Vic2l0ZSx3aGl0ZVBhcGVyLHNsdWcsbWljYURpc2Nsb3N1cmV7d2hpdGVQYXBlclVSTCxzdXN0YWluYWJpbGl0eVVSTH19ZnJhZ21lbnQgQXNzZXRTb2NpYWxGcmFnbWVudCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe3V1aWQsc29jaWFsTWVkaWFNZXRyaWNze3NvY2lhbFZvbHVtZTI0aCxzb2NpYWxWb2x1bWVSYW5rMjRoLHNvY2lhbFZvbHVtZUdsb2JhbCxzb2NpYWxDb250cmlidXRvcnMyNGgsc29jaWFsRG9taW5hbmNlMjRoLGF2ZXJhZ2VTZW50aW1lbnQyNGgsbmV3c0NvdW50LHR3ZWV0U2VudGltZW50QmVhcmlzaCx0d2VldFNlbnRpbWVudE5ldXRyYWwsdHdlZXRTZW50aW1lbnRCdWxsaXNofSxpZH0sLi4uQXNzZXRTb2NpYWxTdGF0c0hlYWRlckZyYWdtZW50LC4uLkFzc2V0U29jaWFsTWV0cmljc0hpZ2hsaWdodHNGcmFnbWVudH1mcmFnbWVudCBBc3NldFNvY2lhbE1ldHJpY3NGcmFnbWVudCBvbiBRdWVyeXsuLi51c2VTb2NpYWxNZWRpYURhdGFGcmFnbWVudH1mcmFnbWVudCBBc3NldFNvY2lhbE1ldHJpY3NIaWdobGlnaHRzRnJhZ21lbnQgb24gUXVlcnl7Li4uU29jaWFsTWVkaWFNZXRyaWNzUHJvZ3JhbW1hdGljQ29udGVudEZyYWdtZW50XzNmSTE4c31mcmFnbWVudCBBc3NldFNvY2lhbFN0YXRzSGVhZGVyRnJhZ21lbnQgb24gUXVlcnl7Li4uQXNzZXRTb2NpYWxNZXRyaWNzRnJhZ21lbnR9ZnJhZ21lbnQgQXNzZXRTdGF0c0ZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7ZGlzcGxheVN5bWJvbCxtYXJrZXRDYXBWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSksY2dNYXJrZXRDYXBDaGFuZ2VQZXJjZW50YWdlMjRILGZ1bGx5RGlsdXRlZE1hcmtldENhcChxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSksY2lyY3VsYXRpbmdTdXBwbHksbWF4U3VwcGx5LHRvdGFsU3VwcGx5LGRvbWluYW5jZSxzaWduYWxze3RyYWRhYmxlTWFya2V0Q2FwUmFuayxob2xkVGltZXt2YWx1ZX19LHZvbHVtZTI0aFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSx2b2x1bWVQZXJjZW50Q2hhbmdlMjRoVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLGNtY1ZvbHVtZTdEKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSxjbWNWb2x1bWUzMEQocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLGFsbFRpbWVIaWdoVjQocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3ZhbHVlfSxjbWNUdmwocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLGNnRnVsbHlEaWx1dGVkVmFsdWF0aW9uKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSxwcmljZURhdGFGb3JZZWFyVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3BlcmNlbnRDaGFuZ2V9LGJ1eWVyU2VsbGVyUmF0aW8yNGgsdW5pcXVlQnV5ZXJzMjRoLHVuaXF1ZVRyYWRlcnMyNGgsdW5pcXVlQnV5ZXJzUGVyY2VudENoYW5nZTI0aCx1bmlxdWVUcmFkZXJzUGVyY2VudENoYW5nZTI0aCx1bmlxdWVTZWxsZXJzMjRoLHVuaXF1ZVNlbGxlcnNQZXJjZW50Q2hhbmdlMjRoLHNlYXJjaFN0YXRze2RheX0saWR9fWZyYWdtZW50IEFzc2V0VG9vbGJhckZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7aWQscGxhdGZvcm1OYW1lLHN1cHBvcnRlZENvbnRleHRzRm9yTG9jYXRpb24oY291bnRyeUNvZGU6JGNvdW50cnlDb2RlKXtpc1RyYWRhYmxlLGlzRGV4LGlzV2FsbGV0fX19ZnJhZ21lbnQgQ29pbmJhc2VJbnNpZ2h0c1NlY3Rpb25GcmFnbWVudF8yZjZrWTIgb24gUXVlcnl7Li4uUmVjZW50VHJlbmRzRnJhZ21lbnQsYXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXt0cmFkaW5nSW5zaWdodEBza2lwKGlmOiRpc1VLVXNlcil7aHRtbENvbnRlbnQsZ2VuZXJhdGVkQXQsaWR9LGlkfX1mcmFnbWVudCBEeW5hbWljRm9vdGVyTGF5b3V0RnJhZ21lbnRfNDBCTnpwIG9uIFF1ZXJ5e3VuYXV0aGVkU3VyZmFjZTp1aUNvbXBvbmVudHNCeVN1cmZhY2Uoc3VyZmFjZTpVSV9DT01QT05FTlRfU1VSRkFDRV9GT09URVJfRElTQ0xBSU1FUixjYXRlZ29yaWVzOltVSV9DT01QT05FTlRfQ0FURUdPUllfRk9PVEVSX0RJU0NMQUlNRVJdLGZpbHRlcjp7Zm9vdGVyRGlzY2xhaW1lckZpbHRlcjp7cGFnZUtleTokcGFnZUtleX19KXtlZGdlc3tub2Rle2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50Rm9vdGVyRGlzY2xhaW1lcnt0aXRsZXt0ZXh0fSxkZXNjcmlwdGlvbnt0ZXh0fSx0aXRsZUN0YXt0ZXh0LHVybCx0ZXh0Q29sb3J9LGRlc2NyaXB0aW9uQ3Rhe3RleHQsdXJsLHRleHRDb2xvcn0scmljaFRleHRUaXRsZXtodG1sU3RyaW5nfX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH19ZnJhZ21lbnQgSGFwcGVuaW5nTm93Q2FyZEZyYWdtZW50XzJmNmtZMiBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe3RyYWRpbmdJbnNpZ2h0QHNraXAoaWY6JGlzVUtVc2VyKXtodG1sQ29udGVudCxnZW5lcmF0ZWRBdCxpZH0saWR9fWZyYWdtZW50IE1hcmtldERldGFpbHNGcmFnbWVudCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe2Rpc3BsYXlTeW1ib2wsbGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3BlcmNlbnRDaGFuZ2VzQHNraXAoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7eWVhcn0scGVyY2VudENoYW5nZXNWMkBpbmNsdWRlKGlmOiRzaG91bGRVc2VVQVNGaWVsZHMpe3llYXJ9LGlkfSxjbWNUYWdzLGlkfSxtYXJrZXRIZWFsdGg6bWFya2V0SGVhbHRoVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kscmVzb2x1dGlvbjpZRUFSKXttYXJrZXRDYXBTdGF0c3twZXJjZW50Q2hhbmdlfX0sdmlld2Vye2J0Y1ZpZXdlckFzc2V0OmFzc2V0QnlTeW1ib2woc3ltYm9sOiJCVEMiKXthc3NldHtsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cGVyY2VudENoYW5nZXNAc2tpcChpZjokc2hvdWxkVXNlVUFTRmllbGRzKXt5ZWFyfSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7eWVhcn0saWR9LGlkfSxpZH0sZXRoVmlld2VyQXNzZXQ6YXNzZXRCeVN5bWJvbChzeW1ib2w6IkVUSCIpe2Fzc2V0e2xhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtwZXJjZW50Q2hhbmdlc0Bza2lwKGlmOiRzaG91bGRVc2VVQVNGaWVsZHMpe3llYXJ9LHBlcmNlbnRDaGFuZ2VzVjJAaW5jbHVkZShpZjokc2hvdWxkVXNlVUFTRmllbGRzKXt5ZWFyfSxpZH0saWR9LGlkfSxpZH19ZnJhZ21lbnQgTWFya2V0UHJvZ3JhbW1hdGljQ29udGVudEZyYWdtZW50X3BpUW9BIG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxkaXNwbGF5U3ltYm9sLGRvbWluYW5jZSxjaXJjdWxhdGluZ1N1cHBseSxtYXhTdXBwbHksdG90YWxTdXBwbHksY21jVm9sdW1lN0QocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLGNtY1ZvbHVtZTMwRChxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSksbWFya2V0Q2FwVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLGZ1bGx5RGlsdXRlZE1hcmtldENhcChxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSksc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeUNvZGUpe2lzVHJhZGFibGV9LHByaWNlRGF0YUZvckhvdXI6cHJpY2VEYXRhRm9ySG91clYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtwZXJjZW50Q2hhbmdlLGVhcmxpZXN0UXVvdGV7cHJpY2V9fSxwcmljZURhdGFGb3JXZWVrOnByaWNlRGF0YUZvcldlZWtWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cGVyY2VudENoYW5nZSxlYXJsaWVzdFF1b3Rle3ByaWNlfX0scHJpY2VEYXRhRm9yRGF5OnByaWNlRGF0YUZvckRheVYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtwZXJjZW50Q2hhbmdlLGVhcmxpZXN0UXVvdGV7cHJpY2V9fSx2b2x1bWUyNGg6dm9sdW1lMjRoVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLGFsbFRpbWVIaWdoOmFsbFRpbWVIaWdoVjQocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3ZhbHVlLGRhdGV9LGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtwcmljZSxpZH0sc2lnbmFsc3twZXJjZW50SG9sZGluZ3tyYW5rfX0sdW5pcXVlQnV5ZXJzMjRoLHVuaXF1ZVRyYWRlcnMyNGgsdW5pcXVlQnV5ZXJzUGVyY2VudENoYW5nZTI0aCx1bmlxdWVTZWxsZXJzMjRoLHVuaXF1ZVNlbGxlcnNQZXJjZW50Q2hhbmdlMjRoLHNlYXJjaFN0YXRze2RheSx3ZWVrfSxpZH19ZnJhZ21lbnQgTmV0d29ya3NBbmRBZGRyZXNzZXNGcmFnbWVudCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe25ldHdvcmtze2Rpc3BsYXlOYW1lLGNvbnRyYWN0QWRkcmVzcyxuZXR3b3JrTmFtZX0saWR9fWZyYWdtZW50IFByaWNlSGlzdG9yeUZyYWdtZW50IG9uIFF1ZXJ5ey4uLnVzZUFzc2V0UHJpY2VIaXN0b3J5RGF0YUZyYWdtZW50fWZyYWdtZW50IFJlY2VudFRyZW5kc0ZyYWdtZW50IG9uIFF1ZXJ5ey4uLk1hcmtldFByb2dyYW1tYXRpY0NvbnRlbnRGcmFnbWVudF9waVFvQX1mcmFnbWVudCBTb2NpYWxNZWRpYU1ldHJpY3NQcm9ncmFtbWF0aWNDb250ZW50RnJhZ21lbnRfM2ZJMThzIG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxwbGF0Zm9ybU5hbWUsbGlzdGVkOmxpc3RlZFYyKGNvdW50cnk6JGNvdW50cnkpLHNvY2lhbE1lZGlhTWV0cmljc3tzb2NpYWxWb2x1bWUyNGgsc29jaWFsVm9sdW1lUmFuazI0aCxzb2NpYWxWb2x1bWVHbG9iYWwsc29jaWFsQ29udHJpYnV0b3JzMjRoLHVwZGF0ZWRBdCxhdmVyYWdlU2VudGltZW50MjRoLG5ld3NDb3VudCx0d2VldFNlbnRpbWVudEJ1bGxpc2gsdHdlZXRTZW50aW1lbnROZXV0cmFsLHR3ZWV0U2VudGltZW50QmVhcmlzaCx0d2VldHNDb3VudCxyZWRkaXRQb3N0Q291bnQscmVkZGl0Q29tbWVudENvdW50fSxpZH19ZnJhZ21lbnQgVHJlbmRpbmdBcnRpY2xlc0ZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1ZylAc2tpcChpZjokc2tpcE5ld3NBcnRpY2xlcyl7bmV3c0FydGljbGVze2VkZ2Vze2N1cnNvcixub2Rle3B1YmxpY2F0aW9uRGF0ZSx0aXRsZSxkZXNjcmlwdGlvbixhdHRyaWJ1dGlvblNvdXJjZSxsaW5rVXJsLGlkfX19LGlkfX1mcmFnbWVudCB1c2VBc3NldENhbGN1bGF0b3JGcmFnbWVudCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe25hbWUsZGlzcGxheVN5bWJvbCx1c2RRdW90ZTpsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiJVU0QiKXtwcmljZSxxdW90ZUN1cnJlbmN5LHF1b3RlQ3VycmVuY3lOYW1lLHRpbWVzdGFtcCxpZH0sY2FkUXVvdGU6bGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeToiQ0FEIil7cHJpY2UscXVvdGVDdXJyZW5jeSxxdW90ZUN1cnJlbmN5TmFtZSxpZH0sZ2JwUXVvdGU6bGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeToiR0JQIil7cHJpY2UscXVvdGVDdXJyZW5jeSxxdW90ZUN1cnJlbmN5TmFtZSxpZH0sanB5UXVvdGU6bGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeToiSlBZIil7cHJpY2UscXVvdGVDdXJyZW5jeSxxdW90ZUN1cnJlbmN5TmFtZSxpZH0saW5yUXVvdGU6bGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeToiSU5SIil7cHJpY2UscXVvdGVDdXJyZW5jeSxxdW90ZUN1cnJlbmN5TmFtZSxpZH0sYnJsUXVvdGU6bGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeToiQlJMIil7cHJpY2UscXVvdGVDdXJyZW5jeSxxdW90ZUN1cnJlbmN5TmFtZSxpZH0sZXVyUXVvdGU6bGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeToiRVVSIil7cHJpY2UscXVvdGVDdXJyZW5jeSxxdW90ZUN1cnJlbmN5TmFtZSxpZH0sbmduUXVvdGU6bGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeToiTkdOIil7cHJpY2UscXVvdGVDdXJyZW5jeSxxdW90ZUN1cnJlbmN5TmFtZSxpZH0sa3J3UXVvdGU6bGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeToiS1JXIil7cHJpY2UscXVvdGVDdXJyZW5jeSxxdW90ZUN1cnJlbmN5TmFtZSxpZH0sc2dkUXVvdGU6bGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeToiU0dEIil7cHJpY2UscXVvdGVDdXJyZW5jeSxxdW90ZUN1cnJlbmN5TmFtZSxpZH0saWR9fWZyYWdtZW50IHVzZUFzc2V0Q2hhcnRDRFN2OEZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7ZGlzcGxheVN5bWJvbCxjb2xvcixsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cHJpY2UsaWR9LHN1cHBvcnRlZENvbnRleHRzRm9yTG9jYXRpb24oY291bnRyeUNvZGU6JGNvdW50cnlDb2RlKXtpc1RyYWRhYmxlLGlzRGV4VHJhZGFibGVAaW5jbHVkZShpZjokaXNMb2dnZWRPdXREZXhFeHBlcmltZW50KX0saWR9fWZyYWdtZW50IHVzZUFzc2V0UHJpY2VIaXN0b3J5RGF0YUZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3ByaWNlLHBlcmNlbnRDaGFuZ2VzQHNraXAoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxpZH0scHJpY2VEYXRhRm9yRGF5VjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3BlcmNlbnRDaGFuZ2UsZWFybGllc3RRdW90ZXtwcmljZX19LHByaWNlRGF0YUZvcldlZWtWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cGVyY2VudENoYW5nZSxlYXJsaWVzdFF1b3Rle3ByaWNlfX0scHJpY2VEYXRhRm9yTW9udGhWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cGVyY2VudENoYW5nZSxlYXJsaWVzdFF1b3Rle3ByaWNlfX0scHJpY2VEYXRhRm9yWWVhclYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtwZXJjZW50Q2hhbmdlLGVhcmxpZXN0UXVvdGV7cHJpY2V9fSxpZH19ZnJhZ21lbnQgdXNlR2V0QXNzZXRQYWdlRmFxc0ZyYWdtZW50XzJrUWFWYyBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe25hbWUsbWFya2V0Q2FwOm1hcmtldENhcFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cHJpY2UsaWR9LGFsbFRpbWVIaWdoOmFsbFRpbWVIaWdoVjQocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3ZhbHVlfSx2b2x1bWUyNEg6dm9sdW1lMjRoVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLHN1cHBvcnRlZENvbnRleHRzRm9yTG9jYXRpb24oY291bnRyeUNvZGU6JGNvdW50cnlDb2RlKXtpc1RyYWRhYmxlLGlzRGV4LGlzV2FsbGV0fSxzbHVnLGFzc2V0c1dpdGhTaW1pbGFyTWFya2V0Q2FwKGZpcnN0OiRpbnRlcm5hbExpbmtzTGltaXQpe2Fzc2V0e25hbWUsaWR9fSxjaXJjdWxhdGluZ1N1cHBseSxzaWduYWxze2hvbGRUaW1le3ZhbHVlfSx0cmFkaW5nQWN0aXZpdHl7dmFsdWV9LHBlcmNlbnRIb2xkaW5ne3Jhbmt9fSxpZH19ZnJhZ21lbnQgdXNlSXNNaWNhRWxpZ2libGVGcmFnbWVudCBvbiBRdWVyeXtjbGllbnRDb25maWdTdHJpbmdBcnJheShuYW1lOlsibWljYV9jb21wbGlhbnRfY291bnRyaWVzIl0pe3ZhbHVlfX1mcmFnbWVudCB1c2VSaXNrQ2F0ZWdvcmllc0ZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7c2x1Zyx1a0ZpbmFuY2lhbFByb21vdGlvbkNhdGVnb3JpZXMsaWR9fWZyYWdtZW50IHVzZVNvY2lhbE1lZGlhRGF0YUZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxzb2NpYWxNZWRpYU1ldHJpY3N7c29jaWFsVm9sdW1lMjRoLHNvY2lhbFZvbHVtZVJhbmsyNGgsc29jaWFsVm9sdW1lR2xvYmFsLHNvY2lhbENvbnRyaWJ1dG9yczI0aCxzb2NpYWxEb21pbmFuY2UyNGgsYXZlcmFnZVNlbnRpbWVudDI0aCxuZXdzQ291bnQsdHdlZXRTZW50aW1lbnRCZWFyaXNoLHR3ZWV0U2VudGltZW50TmV1dHJhbCx0d2VldFNlbnRpbWVudEJ1bGxpc2h9LHNpZ25hbHN7aG9sZFRpbWV7dmFsdWV9fSxpZH19YCwiNTIxYzljYjYwZGRhZDRjNDZjN2MxMmM1OTE4OWY2MTVjNWU2MjVmYTRkNWUxMzAxNmQyYmFlN2Y2MjI2MGY5OCI6YG11dGF0aW9uIHVzZVJlZ2lzdGVyVHJhZGluZ0NvbXBldGl0aW9uQVRTTXV0YXRpb24oJGlucHV0OlJlZ2lzdGVyVHJhZGluZ0NvbXBldGl0aW9uSW5wdXQhLCRjb21wZXRpdGlvbklkOlRoaXJkUGFydHlJZFN0cmluZyEpe3JlZ2lzdGVyVHJhZGluZ0NvbXBldGl0aW9uKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBSZWdpc3RlclRyYWRpbmdDb21wZXRpdGlvblN1Y2Nlc3N7Y29tcGV0aXRpb25Vc2VybmFtZSxpc1JlZ2lzdGVyZWQsYWNjZXNzU3RhdGUsdmlld2Vye3RyYWRpbmdDb21wZXRpdGlvbntjb21wZXRpdGlvbkRldGFpbHMoY29tcGV0aXRpb25JZDokY29tcGV0aXRpb25JZCl7aXNSZWdpc3RlcmVkLGFjY2Vzc1N0YXRlLGNvbXBldGl0aW9uVXNlcm5hbWV9fSxpZH19LC4uLm9uIEdlbmVyaWNFcnJvcntjb2RlLG1lc3NhZ2V9fX1gLCI1MzNlNzMwOGJhYmFlNTEwNGFlMDY3NWRjMWE5YWIyMGU5NjBlOGY5MjI5ZjAzYjBiZTA4OGU2ZmVjZTVkMzhkIjpgcXVlcnkgU3Rha2luZ1BhZ2VRdWVyeSgkYXNzZXRTbHVnOlN0cmluZyEsJGNvdW50cnlDb2RlOlN0cmluZyEsJGN1cnJlbmN5OlRpY2tlclN5bWJvbCEsJHN1cHBvcnRlZExvY2FsZTpTdXBwb3J0ZWRMb2NhbGUhLCRzaW1pbGFyQXNzZXRzTGltaXQ6SW50ISwkaXNEZXhFeHBlcmltZW50OkJvb2xlYW4hLCRsb2NhbGU6TG9jYWxlKXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe25hbWUsc3Rha2luZ1N0YXRze3Jld2FyZEFweSxoYXNTdGFraW5nUGFnZX0saWR9LC4uLlRhYmxlT2ZDb250ZW50c1N0YWtpbmdQYWdlRnJhZ21lbnQsLi4uU3Rha2luZ1BhZ2VTdGFraW5nQ2hhcnRGcmFnbWVudCwuLi5TdGFraW5nUGFnZVN0YWtpbmdTdGF0c0ZyYWdtZW50LC4uLlN0YWtpbmdQYWdlR3VpZGVzRnJhZ21lbnQsLi4uU3Rha2luZ1BhZ2VMZWFybk1vcmVGcmFnbWVudCwuLi5TdGFraW5nUGFnZVJlbGF0ZWRBc3NldHNGcmFnbWVudF8xQlBmcmEsLi4uU3Rha2luZ1BhZ2VGYXFGcmFnbWVudCwuLi5TdGFraW5nUGFnZU1ldGFkYXRhRnJhZ21lbnQsLi4uU3Rha2luZ1BhZ2VSZXdhcmRzRnJhZ21lbnQsLi4uU3Rha2luZ1BhZ2VIZWFkZXJGcmFnbWVudH1mcmFnbWVudCBBc3NldEhlYWRlclRvb2xiYXJGcmFnbWVudF8xaHRLTm8gb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtpZCxwbGF0Zm9ybU5hbWV9fWZyYWdtZW50IERpc2NvdmVyTW9yZUFzc2V0c1NlY3Rpb25TdGFraW5nUGFnZUZyYWdtZW50XzFCUGZyYSBvbiBRdWVyeXtkaXNjb3Zlck1vcmVBc3NldHM6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6InByaWNlIixyZXF1ZXN0SW5wdXQ6e2RlZmF1bHRSZXF1ZXN0SW5wdXQ6e3NsdWc6JGFzc2V0U2x1Zyxjb3VudHJ5Q29kZTokY291bnRyeUNvZGUscmFuZG9taXplZENvbmZpZzp7c2FtcGxlU2l6ZToxMn19fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzQXNzZXRFbnRpdHl7bmFtZSxpY29uVXJsLHBhZ2VVcmx9fX19ZnJhZ21lbnQgUG9wdWxhckFzc2V0c0ZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0czpzZWFyY2hBc3NldHNWMihmaWx0ZXI6TElTVEVELHNvcnQ6UkFOSyxvcmRlcjpBU0MsZmlyc3Q6NTAscmVzb2x1dGlvbjpEQVkpe2VkZ2Vze25vZGV7aWQsbmFtZSxzbHVnLGltYWdlVXJsfX19fWZyYWdtZW50IFN0YWtpbmdQYWdlQXZhaWxhYmxlVG9TdGFrZUZyYWdtZW50IG9uIFF1ZXJ5e3N0YWtpbmdBc3NldHMoZmlyc3Q6JHNpbWlsYXJBc3NldHNMaW1pdCxmaWx0ZXI6U1VQUE9SVEVEX09OX0NPSU5CQVNFKXtlZGdlc3tub2Rle25hbWUsc2x1ZyxpbWFnZVVybCxpZCxzdGFraW5nU3RhdHN7aXNTdXBwb3J0ZWRPbkNvaW5iYXNlfX19fX1mcmFnbWVudCBTdGFraW5nUGFnZUJlbmVmaXRzRnJhZ21lbnQgb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtuYW1lLHN1cHBvcnRlZENvbnRleHRzRm9yTG9jYXRpb24oY291bnRyeUNvZGU6JGNvdW50cnlDb2RlKXtpc1RyYWRhYmxlLGlzRGV4LGlzV2FsbGV0fSxzdGFraW5nU3RhdHN7aXNTdXBwb3J0ZWRPbkNvaW5iYXNlfSxpZH19ZnJhZ21lbnQgU3Rha2luZ1BhZ2VDVEFGcmFnbWVudCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe25hbWUsc3Rha2luZ1N0YXRze2lzU3VwcG9ydGVkT25Db2luYmFzZSxyZXdhcmRBcHl9LGlkfX1mcmFnbWVudCBTdGFraW5nUGFnZUZhcUZyYWdtZW50IG9uIFF1ZXJ5ey4uLnVzZUdldFN0YWtpbmdQYWdlRmFxc0ZyYWdtZW50fWZyYWdtZW50IFN0YWtpbmdQYWdlR3VpZGVzRnJhZ21lbnQgb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtzbHVnLHN1cHBvcnRlZENvbnRleHRzRm9yTG9jYXRpb24oY291bnRyeUNvZGU6JGNvdW50cnlDb2RlKXtpc1RyYWRhYmxlLGlzRGV4VHJhZGFibGVAaW5jbHVkZShpZjokaXNEZXhFeHBlcmltZW50KX0saWR9LC4uLlN0YWtpbmdQYWdlSFRCRnJhZ21lbnQsLi4uU3Rha2luZ1BhZ2VXaGF0SXNBc3NldEZyYWdtZW50fWZyYWdtZW50IFN0YWtpbmdQYWdlSFRCRnJhZ21lbnQgb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtzbHVnLG5hbWUsaW1hZ2VVcmwsc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeUNvZGUpe2lzVHJhZGFibGUsaXNEZXgsaXNXYWxsZXQsaXNEZXhUcmFkYWJsZUBpbmNsdWRlKGlmOiRpc0RleEV4cGVyaW1lbnQpfSxpZH19ZnJhZ21lbnQgU3Rha2luZ1BhZ2VIZWFkZXJGcmFnbWVudCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe25hbWUsY29sb3IsaW1hZ2VVcmwsZGlzcGxheVN5bWJvbCxwbGF0Zm9ybU5hbWUsc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeUNvZGUpe2lzVHJhZGFibGUsaXNEZXgsaXNXYWxsZXR9LHN0YWtpbmdTdGF0c3tpc1N1cHBvcnRlZE9uQ29pbmJhc2V9LGlkfSwuLi5Bc3NldEhlYWRlclRvb2xiYXJGcmFnbWVudF8xaHRLTm99ZnJhZ21lbnQgU3Rha2luZ1BhZ2VIb3dUb1N0YWtlRnJhZ21lbnQgb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtuYW1lLHN0YWtpbmdTdGF0c3tpc1N1cHBvcnRlZE9uQ29pbmJhc2V9LGlkfX1mcmFnbWVudCBTdGFraW5nUGFnZUxlYXJuTW9yZUZyYWdtZW50IG9uIFF1ZXJ5ey4uLlN0YWtpbmdQYWdlSG93VG9TdGFrZUZyYWdtZW50LC4uLlN0YWtpbmdQYWdlQmVuZWZpdHNGcmFnbWVudH1mcmFnbWVudCBTdGFraW5nUGFnZU1ldGFkYXRhRnJhZ21lbnQgb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtuYW1lLGRpc3BsYXlTeW1ib2wsaW1hZ2VVcmwsc3Rha2luZ1N0YXRze3Jld2FyZEFweX0saWR9fWZyYWdtZW50IFN0YWtpbmdQYWdlUmVsYXRlZEFzc2V0c0ZyYWdtZW50XzFCUGZyYSBvbiBRdWVyeXsuLi5UcmVuZGluZ0Fzc2V0c0ZyYWdtZW50XzFaWW44UiwuLi5Qb3B1bGFyQXNzZXRzRnJhZ21lbnQsLi4uU3Rha2luZ1BhZ2VBdmFpbGFibGVUb1N0YWtlRnJhZ21lbnQsLi4uU3Rha2luZ1BhZ2VTaW1pbGFyU3Rha2luZ0NhcEZyYWdtZW50LC4uLkRpc2NvdmVyTW9yZUFzc2V0c1NlY3Rpb25TdGFraW5nUGFnZUZyYWdtZW50XzFCUGZyYX1mcmFnbWVudCBTdGFraW5nUGFnZVJld2FyZHNGcmFnbWVudCBvbiBRdWVyeXsuLi51c2VVU0RDQ3VzdG9tRGF0YX1mcmFnbWVudCBTdGFraW5nUGFnZVNpbWlsYXJTdGFraW5nQ2FwRnJhZ21lbnQgb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtuYW1lLHNpbWlsYXJBc3NldHNCeVN0YWtpbmdNYXJrZXRDYXB7YXNzZXRze25hbWUsc2x1ZyxpbWFnZVVybCxpZH19LGlkfX1mcmFnbWVudCBTdGFraW5nUGFnZVN0YWtpbmdDaGFydEZyYWdtZW50IG9uIFF1ZXJ5ey4uLlN0YWtpbmdQYWdlQ1RBRnJhZ21lbnQsYXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtzdGFraW5nU3RhdHN7cGVyY2VudGFnZVN0YWtlZH0saWR9fWZyYWdtZW50IFN0YWtpbmdQYWdlU3Rha2luZ1N0YXRzRnJhZ21lbnQgb24gUXVlcnl7Li4uU3Rha2luZ1N0YXRzR3JpZFN0YWtpbmdQYWdlRnJhZ21lbnQsLi4uU3Rha2luZ1N0YXRzUHJvZ3JhbW1hdGljQ29udGVudEZyYWdtZW50LGFzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxpZH19ZnJhZ21lbnQgU3Rha2luZ1BhZ2VXaGF0SXNBc3NldEZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxzbHVnLGltYWdlVXJsLGlkfX1mcmFnbWVudCBTdGFraW5nU3RhdHNHcmlkU3Rha2luZ1BhZ2VGcmFnbWVudCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe21hcmtldENhcFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSxjaXJjdWxhdGluZ1N1cHBseSxzdGFraW5nU3RhdHN7cmV3YXJkQXB5LHJld2FyZENoYW5nZTI0aCxyZXdhcmRDaGFuZ2UzMGQscGVyY2VudGFnZVN0YWtlZH0saWR9fWZyYWdtZW50IFN0YWtpbmdTdGF0c1Byb2dyYW1tYXRpY0NvbnRlbnRGcmFnbWVudCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe25hbWUsbWFya2V0Q2FwVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLGNpcmN1bGF0aW5nU3VwcGx5LHN0YWtpbmdTdGF0c3tyZXdhcmRBcHkscmV3YXJkQ2hhbmdlMjRoLHJld2FyZENoYW5nZTMwZCxwZXJjZW50YWdlU3Rha2VkfSxpZH19ZnJhZ21lbnQgVGFibGVPZkNvbnRlbnRzU3Rha2luZ1BhZ2VGcmFnbWVudCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe25hbWUsc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeUNvZGUpe2lzVHJhZGFibGV9LGlkfX1mcmFnbWVudCBUcmVuZGluZ0Fzc2V0c0ZyYWdtZW50XzFaWW44UiBvbiBRdWVyeXtkYWlseU1vc3RWaWV3ZWRBc3NldHMoc3VwcG9ydGVkTG9jYWxlOiRzdXBwb3J0ZWRMb2NhbGUpe2Fzc2V0e2lkLG5hbWUsc2x1ZyxpbWFnZVVybH19fWZyYWdtZW50IHVzZUdldFN0YWtpbmdQYWdlRmFxc0ZyYWdtZW50IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxtYXJrZXRDYXBWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSksY2lyY3VsYXRpbmdTdXBwbHksc3Rha2luZ1N0YXRze2lzRGVmaSxyZXdhcmRBcHkscGVyY2VudGFnZVN0YWtlZCxpc1N1cHBvcnRlZE9uQ29pbmJhc2V9LGlkfX1mcmFnbWVudCB1c2VVU0RDQ3VzdG9tRGF0YSBvbiBRdWVyeXtyZXdhcmRzT3JjaGVzdHJhdGlvblByb2dyYW1SZXdhcmRSYXRlRm9yTG9nb3V0UGFnZShjdXJyZW5jeToiVVNEQyIscGxhdGZvcm06UkVUQUlMLGNvdW50cnlDb2RlOiRjb3VudHJ5Q29kZSl7YmFzZVJhdGUsZ2VvUHJvbW9SYXRlLGNiT25lUmF0ZX19YCwiNTNmZWQzY2EyOWJlMTNlNDM5MWIxOGNmOGZhNzNjNzc3YjgyZjNkY2NjNTJjY2U1YTQxYzRmZWFhZjEwZWRkNyI6YHF1ZXJ5IHVzZVBhZ2luYXRlZFByZWRpY3Rpb25FdmVudENhcmRzUmVmZXRjaFF1ZXJ5KCRjb3VudDpJbnQ9MzIsJGN1cnNvcjpTdHJpbmcsJGZpbHRlcjpSYmFJbnN0cnVtZW50R3JvdXBzU2VhcmNoRmlsdGVySW5wdXQhLCRtYXhQcm9kdWN0czpJbnQsJHByb2R1Y3RzU29ydE9wdGlvbjpSYmFQcm9kdWN0c1NvcnRPcHRpb24sJHByb2R1Y3RzU29ydE9yZGVyOlNvcnRPcmRlciwkc29ydE9wdGlvbjpSYmFJbnN0cnVtZW50R3JvdXBTb3J0T3B0aW9uLCRzb3J0T3JkZXI6U29ydE9yZGVyKXsuLi51c2VQYWdpbmF0ZWRQcmVkaWN0aW9uRXZlbnRDYXJkc0ZyYWdtZW50XzNxZ0RNV31mcmFnbWVudCBCYXNlYmFsbEgySENhcmRGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaWNrZXIsbGl2ZUV2ZW50e3N0YXR1cyxtaWxlc3RvbmVze2VucmljaGVkRGF0YXtfX3R5cGVuYW1lLC4uLm9uIFJiYUJhc2ViYWxsR2FtZUVucmljaGVke2lubmluZyxpbm5pbmdIYWxmLG91dHMsaG9tZVRlYW17dGVhbUlkLHJ1bnMsaXNXaW5uZXJ9LGF3YXlUZWFte3RlYW1JZCxydW5zLGlzV2lubmVyfX19fX19LHByb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tzdWJqZWN0UmVmZXJlbmNlc3tzdWJqZWN0SWR9fSwuLi5CYXNlYmFsbFByb2R1Y3RSb3dGcmFnbWVudCxpZH0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkVm9sdW1lRnJhZ21lbnQsLi4uR2FtZVN0YXR1c0JhZGdlRnJhZ21lbnQsLi4uUHJlZGljdGlvbk1hcmtldHNIMkhUcmFkZUJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncsLi4uRGVmYXVsdEgySENhcmRGcmFnbWVudF9GMVM2d31mcmFnbWVudCBCYXNlYmFsbFByb2R1Y3RSb3dGcmFnbWVudCBvbiBSYmFQcm9kdWN0e3ByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3t5ZXNUaXRsZXN9LC4uLlRlYW1Sb3dGcmFnbWVudH1mcmFnbWVudCBCYXNrZXRiYWxsSDJIQ2FyZEZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tldmVudFRpY2tlcixsaXZlRXZlbnR7c3RhdHVzLG1pbGVzdG9uZXN7ZW5yaWNoZWREYXRhe19fdHlwZW5hbWUsLi4ub24gUmJhQmFza2V0YmFsbEdhbWVFbnJpY2hlZHtwZXJpb2QscGVyaW9kVHlwZSxjbG9jayxob21lVGVhbXt0ZWFtSWQscG9pbnRzfSxhd2F5VGVhbXt0ZWFtSWQscG9pbnRzfX19fX19LHByb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tzdWJqZWN0UmVmZXJlbmNlc3tzdWJqZWN0SWR9fSwuLi5CYXNrZXRiYWxsUHJvZHVjdFJvd0ZyYWdtZW50LGlkfSwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZEhlYWRlclYyRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRWb2x1bWVGcmFnbWVudCwuLi5HYW1lU3RhdHVzQmFkZ2VGcmFnbWVudCwuLi5QcmVkaWN0aW9uTWFya2V0c0gySFRyYWRlQnV0dG9uR3JvdXBGcmFnbWVudF9GMVM2dywuLi5EZWZhdWx0SDJIQ2FyZEZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IEJhc2tldGJhbGxQcm9kdWN0Um93RnJhZ21lbnQgb24gUmJhUHJvZHVjdHtwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5UZWFtUm93RnJhZ21lbnR9ZnJhZ21lbnQgRGVmYXVsdEgySENhcmRGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaWNrZXJ9LHByb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3t5ZXNUaXRsZXN9LC4uLkRlZmF1bHRIMkhDYXJkUHJvZHVjdFJvd0ZyYWdtZW50LGlkfSwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZEhlYWRlclYyRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTY2hlZHVsZUZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkVm9sdW1lRnJhZ21lbnQsLi4uUHJlZGljdGlvbk1hcmtldHNIMkhUcmFkZUJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncsLi4udXNlSGVhZFRvSGVhZFRlYW1EYXRhRnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgRGVmYXVsdEgySENhcmRQcm9kdWN0Um93RnJhZ21lbnQgb24gUmJhUHJvZHVjdHtwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5UZWFtUm93RnJhZ21lbnR9ZnJhZ21lbnQgR2FtZVN0YXR1c0JhZGdlRnJhZ21lbnQgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2xpdmVFdmVudHtzdGF0dXN9fSwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFNjaGVkdWxlRnJhZ21lbnR9ZnJhZ21lbnQgSG9ja2V5SDJIQ2FyZEZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tldmVudFRpY2tlcixsaXZlRXZlbnR7c3RhdHVzLG1pbGVzdG9uZXN7ZW5yaWNoZWREYXRhe19fdHlwZW5hbWUsLi4ub24gUmJhSG9ja2V5R2FtZUVucmljaGVke3BlcmlvZCxjbG9jayxob21lVGVhbXt0ZWFtSWQsZ29hbHMsaXNXaW5uZXJ9LGF3YXlUZWFte3RlYW1JZCxnb2Fscyxpc1dpbm5lcn19fX19fSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7c3ViamVjdFJlZmVyZW5jZXN7c3ViamVjdElkfX0sLi4uSG9ja2V5UHJvZHVjdFJvd0ZyYWdtZW50LGlkfSwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZEhlYWRlclYyRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRWb2x1bWVGcmFnbWVudCwuLi5HYW1lU3RhdHVzQmFkZ2VGcmFnbWVudCwuLi5QcmVkaWN0aW9uTWFya2V0c0gySFRyYWRlQnV0dG9uR3JvdXBGcmFnbWVudF9GMVM2dywuLi5EZWZhdWx0SDJIQ2FyZEZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IEhvY2tleVByb2R1Y3RSb3dGcmFnbWVudCBvbiBSYmFQcm9kdWN0e3ByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3t5ZXNUaXRsZXN9LC4uLlRlYW1Sb3dGcmFnbWVudH1mcmFnbWVudCBQcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZEhlYWRlclYyRnJhZ21lbnQgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGl0bGUsZGFya01vZGVJY29uVXJsLGxpZ2h0TW9kZUljb25Vcmx9fWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkSXRlbUZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tldmVudFRpY2tlcn0scHJvZHVjdHMobWF4UHJvZHVjdHM6JG1heFByb2R1Y3RzLHNvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixzb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtwcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze2NvbnRyYWN0RXhwaXJ5LHNldHRsZW1lbnRQcmljZX0saWR9LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkSGVhZGVyVjJGcmFnbWVudCwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZE11bHRpTWFya2V0VjJGcmFnbWVudF9GMVM2dywuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFNpbmdsZU1hcmtldFYyRnJhZ21lbnRfRjFTNncsLi4uUHJlZGljdGlvbkV4cGxvcmVIMkhFdmVudENhcmRWMkZyYWdtZW50X0YxUzZ3LC4uLnVzZUlzSGVhZFRvSGVhZEV2ZW50RnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRNdWx0aU1hcmtldFYyRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGlja2VyfSx0b3RhbFByb2R1Y3RzLHByb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLHByaWNlLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tpc0ltYWdlT3ZlcndyaXR0ZW4seWVzVGl0bGVzfSwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZE11bHRpTWFya2V0VjJQcm9kdWN0Um93RnJhZ21lbnQsaWR9LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkSGVhZGVyVjJGcmFnbWVudCwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFN0YXRzRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRNdWx0aU1hcmtldFYyUHJvZHVjdFJvd0ZyYWdtZW50IG9uIFJiYVByb2R1Y3R7YmFzZUNicm4scHJvZHVjdElkLHByaWNlLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thc2tQcmljZXN7eWVzQXNrLG5vQXNrfSxzZXR0bGVtZW50UHJpY2UseWVzVGl0bGVzLGxpZ2h0TW9kZUljb25VcmwsZGFya01vZGVJY29uVXJsLGlzSW1hZ2VPdmVyd3JpdHRlbn19ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTY2hlZHVsZUZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tsaXZlRXZlbnR7c3RhcnREYXRlfX0sLi4udXNlUHJlZGljdGlvbk1hcmtldEV2ZW50U2NoZWR1bGVTdGF0ZUZyYWdtZW50fWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkU2luZ2xlTWFya2V0VjJGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJvZHVjdHMobWF4UHJvZHVjdHM6JG1heFByb2R1Y3RzLHNvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixzb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtiYXNlQ2Jybixwcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze2V2ZW50VGlja2VyLGFza1ByaWNlc3t5ZXNBc2ssbm9Bc2t9fSxpZH0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkU3RhdHNGcmFnbWVudH1mcmFnbWVudCBQcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFN0YXRzRnJhZ21lbnQgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2xpdmVFdmVudHtzdGF0dXN9fSwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFNjaGVkdWxlRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRWb2x1bWVGcmFnbWVudH1mcmFnbWVudCBQcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFZvbHVtZUZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3t0b3RhbFZvbHVtZX19ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVIMkhFdmVudENhcmRWMkZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3t0YWdzLGxpdmVFdmVudHttaWxlc3RvbmVze2VucmljaGVkRGF0YXtfX3R5cGVuYW1lfX19fSwuLi5CYXNrZXRiYWxsSDJIQ2FyZEZyYWdtZW50X0YxUzZ3LC4uLkhvY2tleUgySENhcmRGcmFnbWVudF9GMVM2dywuLi5UZW5uaXNIMkhDYXJkRnJhZ21lbnRfRjFTNncsLi4uU29jY2VySDJIQ2FyZEZyYWdtZW50X0YxUzZ3LC4uLkJhc2ViYWxsSDJIQ2FyZEZyYWdtZW50X0YxUzZ3LC4uLkRlZmF1bHRIMkhDYXJkRnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNIMkhDYXNoT3V0QnV0dG9uR3JvdXBGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7Li4uUHJlZGljdGlvbk1hcmtldHNIZWFkVG9IZWFkQnV0dG9uRnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNIMkhUcmFkZUJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3Byb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLGJhc2VDYnJuLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tzZXR0bGVtZW50UHJpY2UsYXNrUHJpY2Vze3llc0Fzayxub0Fza319LGlkfSwuLi5QcmVkaWN0aW9uTWFya2V0c0hlYWRUb0hlYWRCdXR0b25Hcm91cEZyYWdtZW50X0YxUzZ3LC4uLlByZWRpY3Rpb25NYXJrZXRzSDJIQ2FzaE91dEJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNIZWFkVG9IZWFkQnV0dG9uRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3Byb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLGJhc2VDYnJuLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thYmJyZXZpYXRpb24seWVzVGl0bGVzLGFza1ByaWNlc3t5ZXNBc2t9fSxpZH0sLi4udXNlSGVhZFRvSGVhZFRlYW1EYXRhRnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNIZWFkVG9IZWFkQnV0dG9uR3JvdXBGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7Li4uUHJlZGljdGlvbk1hcmtldHNIZWFkVG9IZWFkQnV0dG9uRnJhZ21lbnRfRjFTNncsLi4udXNlSGVhZFRvSGVhZFNldHRsZW1lbnRTdGF0dXNGcmFnbWVudF9GMVM2dywuLi51c2VQcmVkaWN0aW9uTWFya2V0RXZlbnRTY2hlZHVsZVN0YXRlRnJhZ21lbnR9ZnJhZ21lbnQgU29jY2VySDJIQ2FyZEZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tldmVudFRpY2tlcixsaXZlRXZlbnR7c3RhdHVzLG1pbGVzdG9uZXN7ZW5yaWNoZWREYXRhe19fdHlwZW5hbWUsLi4ub24gUmJhU29jY2VyTWF0Y2hFbnJpY2hlZHtoYWxmLHRpbWUsc2hvd1BlbmFsdGllcyxob21lVGVhbXt0ZWFtSWQsc2FtZUdhbWVTY29yZSxwZW5hbHRpZXMsaXNXaW5uZXJ9LGF3YXlUZWFte3RlYW1JZCxzYW1lR2FtZVNjb3JlLHBlbmFsdGllcyxpc1dpbm5lcn19fX19fSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5Tb2NjZXJQcm9kdWN0Um93RnJhZ21lbnQsaWR9LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkSGVhZGVyVjJGcmFnbWVudCwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFZvbHVtZUZyYWdtZW50LC4uLkdhbWVTdGF0dXNCYWRnZUZyYWdtZW50LC4uLlByZWRpY3Rpb25NYXJrZXRzSDJIVHJhZGVCdXR0b25Hcm91cEZyYWdtZW50X0YxUzZ3LC4uLkRlZmF1bHRIMkhDYXJkRnJhZ21lbnRfRjFTNncsLi4udXNlSGVhZFRvSGVhZFRlYW1EYXRhRnJhZ21lbnRfRjFTNncsLi4udXNlU29jY2VySDJITWF0Y2h1cERhdGFGcmFnbWVudH1mcmFnbWVudCBTb2NjZXJQcm9kdWN0Um93RnJhZ21lbnQgb24gUmJhUHJvZHVjdHtwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5UZWFtUm93RnJhZ21lbnR9ZnJhZ21lbnQgVGVhbVJvd0ZyYWdtZW50IG9uIFJiYVByb2R1Y3R7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thYmJyZXZpYXRpb24sZGFya01vZGVJY29uVXJsLGxpZ2h0TW9kZUljb25VcmwsbWFya2V0Q29sb3IsbWFya2V0Q29sb3JEYXJrfX1mcmFnbWVudCBUZW5uaXNIMkhDYXJkRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGlja2VyLGxpdmVFdmVudHtzdGF0dXMsbWlsZXN0b25lc3tlbnJpY2hlZERhdGF7X190eXBlbmFtZSwuLi5vbiBSYmFUZW5uaXNNYXRjaEVucmljaGVke2N1cnJlbnRTZXQscGxheWVyMXtwbGF5ZXJJZCxzZXRzV29uLGN1cnJlbnRHYW1lUG9pbnRzLGlzV2lubmVyLGlzU2VydmluZyxoYXNBZHZhbnRhZ2Usc2NvcmVze3Njb3JlLG91dGNvbWV9fSxwbGF5ZXIye3BsYXllcklkLHNldHNXb24sY3VycmVudEdhbWVQb2ludHMsaXNXaW5uZXIsaXNTZXJ2aW5nLGhhc0FkdmFudGFnZSxzY29yZXN7c2NvcmUsb3V0Y29tZX19fX19fX0scHJvZHVjdHMobWF4UHJvZHVjdHM6JG1heFByb2R1Y3RzLHNvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixzb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtwcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3N1YmplY3RSZWZlcmVuY2Vze3N1YmplY3RJZH19LC4uLlRlbm5pc1Byb2R1Y3RSb3dGcmFnbWVudCxpZH0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkVm9sdW1lRnJhZ21lbnQsLi4uR2FtZVN0YXR1c0JhZGdlRnJhZ21lbnQsLi4uUHJlZGljdGlvbk1hcmtldHNIMkhUcmFkZUJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncsLi4uRGVmYXVsdEgySENhcmRGcmFnbWVudF9GMVM2d31mcmFnbWVudCBUZW5uaXNQcm9kdWN0Um93RnJhZ21lbnQgb24gUmJhUHJvZHVjdHtwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5UZWFtUm93RnJhZ21lbnR9ZnJhZ21lbnQgdXNlSGVhZFRvSGVhZFNldHRsZW1lbnRTdGF0dXNGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJvZHVjdHMobWF4UHJvZHVjdHM6JG1heFByb2R1Y3RzLHNvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixzb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtwcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3NldHRsZW1lbnRQcmljZX0saWR9fWZyYWdtZW50IHVzZUhlYWRUb0hlYWRUZWFtRGF0YUZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tsaXZlRXZlbnR7bWlsZXN0b25lc3tlbnJpY2hlZERhdGF7X190eXBlbmFtZSwuLi5vbiBSYmFCYXNrZXRiYWxsR2FtZUVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFGb290YmFsbEdhbWVFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhU29jY2VyTWF0Y2hFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhQmFzZWJhbGxHYW1lRW5yaWNoZWR7aG9tZVRlYW17dGVhbUlkLHRlYW1OYW1lfSxhd2F5VGVhbXt0ZWFtSWQsdGVhbU5hbWV9LF9fdHlwZW5hbWV9LC4uLm9uIFJiYUhvY2tleUdhbWVFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhQ3JpY2tldE1hdGNoRW5yaWNoZWR7aG9tZVRlYW17dGVhbUlkLHRlYW1OYW1lfSxhd2F5VGVhbXt0ZWFtSWQsdGVhbU5hbWV9LF9fdHlwZW5hbWV9LC4uLm9uIFJiYVRlbm5pc01hdGNoRW5yaWNoZWR7aG9tZVRlYW06cGxheWVyMXt0ZWFtSWQ6cGxheWVySWQsdGVhbU5hbWU6cGxheWVyTmFtZX0sYXdheVRlYW06cGxheWVyMnt0ZWFtSWQ6cGxheWVySWQsdGVhbU5hbWU6cGxheWVyTmFtZX0sX190eXBlbmFtZX19fX19LHByb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thYmJyZXZpYXRpb24sbWFya2V0Q29sb3IsbWFya2V0Q29sb3JEYXJrLHllc1RpdGxlcyxzdWJqZWN0UmVmZXJlbmNlc3tzdWJqZWN0SWR9fSxpZH19ZnJhZ21lbnQgdXNlSXNIZWFkVG9IZWFkRXZlbnRGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7c2VjdG9yLHByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze3Njb3BlfSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3ByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3t5ZXNUaXRsZXN9LGlkfSwuLi51c2VIZWFkVG9IZWFkVGVhbURhdGFGcmFnbWVudF9GMVM2d31mcmFnbWVudCB1c2VQYWdpbmF0ZWRQcmVkaWN0aW9uRXZlbnRDYXJkc0ZyYWdtZW50XzNxZ0RNVyBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7aW5zdHJ1bWVudEdyb3VwcyhmaWx0ZXI6JGZpbHRlcixzb3J0T3B0aW9uOiRzb3J0T3B0aW9uLHNvcnRPcmRlcjokc29ydE9yZGVyLGZpcnN0OiRjb3VudCxhZnRlcjokY3Vyc29yKXtlZGdlc3tub2Rle2lkLGluc3RydW1lbnRHcm91cElkLC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkSXRlbUZyYWdtZW50X0YxUzZ3LF9fdHlwZW5hbWV9LGN1cnNvcn0scGFnZUluZm97ZW5kQ3Vyc29yLGhhc05leHRQYWdlfX19fWZyYWdtZW50IHVzZVByZWRpY3Rpb25NYXJrZXRFdmVudFNjaGVkdWxlU3RhdGVGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7c2hvdWxkVXNlU2VyaWVzLGxpdmVFdmVudHtzdGFydERhdGUsc3RhdHVzfX19ZnJhZ21lbnQgdXNlU29jY2VySDJITWF0Y2h1cERhdGFGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7bGl2ZUV2ZW50e21pbGVzdG9uZXN7ZW5yaWNoZWREYXRhe19fdHlwZW5hbWUsLi4ub24gUmJhU29jY2VyTWF0Y2hFbnJpY2hlZHtoYWxmLHRpbWUsc2hvd1BlbmFsdGllcyxob21lVGVhbXtzYW1lR2FtZVNjb3JlLHBlbmFsdGllcyxpc1dpbm5lcn0sYXdheVRlYW17c2FtZUdhbWVTY29yZSxwZW5hbHRpZXMsaXNXaW5uZXJ9fX19fX19YCwiNTYxY2ZhN2M2OGM2ZjE0NmMyMDJhZjgyMTVkZDZiNTFjODYxZTg4NTc2ZTU2NzM4OWZjZmUyM2Q1OThiOTBkOSI6YHF1ZXJ5IENEWEhvbWVQYWdlUXVlcnkoJHF1b3RlQ3VycmVuY3k6VGlja2VyU3ltYm9sISwkc2hvdWxkVXNlVUFTRmllbGRzOkJvb2xlYW4hLCRhc3NldExpbWl0OkludCEpey4uLkZlYXR1cmVBc3NldHNGcmFnbWVudF80cTVSckR9ZnJhZ21lbnQgRmVhdHVyZUFzc2V0c0ZyYWdtZW50XzRxNVJyRCBvbiBRdWVyeXt0cmFkYWJsZTpzZWFyY2hBc3NldHNWMihmaXJzdDokYXNzZXRMaW1pdCxvcmRlcjpERVNDLHF1ZXJ5OiIiLHJlc29sdXRpb246REFZLGZpbHRlcjpMSVNURUQsc29ydDpNQVJLRVRfQ0FQKXtlZGdlc3tub2Rle3V1aWQsLi4uRmVhdHVyZUFzc2V0c1Jvd0ZyYWdtZW50XzJqT0U0TSxpZH19fSx0b3BHYWluZXJzOnNlYXJjaEFzc2V0c1YyKGZpcnN0OiRhc3NldExpbWl0LG9yZGVyOkRFU0MscXVlcnk6IiIscmVzb2x1dGlvbjpEQVksZmlsdGVyOlRPUF9HQUlORVJTLHNvcnQ6UEVSQ0VOVF9DSEFOR0Upe2VkZ2Vze25vZGV7dXVpZCwuLi5GZWF0dXJlQXNzZXRzUm93RnJhZ21lbnRfMmpPRTRNLGlkfX19LG5ld09uQ29pbmJhc2U6c2VhcmNoQXNzZXRzVjIoZmlyc3Q6JGFzc2V0TGltaXQsZmlsdGVyOlJFQ0VOVExZX0xJU1RFRF8zX01PTlRIUyl7ZWRnZXN7bm9kZXt1dWlkLC4uLkZlYXR1cmVBc3NldHNSb3dGcmFnbWVudF8yak9FNE0saWR9fX19ZnJhZ21lbnQgRmVhdHVyZUFzc2V0c1Jvd0ZyYWdtZW50XzJqT0U0TSBvbiBBc3NldHt1dWlkLG5hbWUsc2x1ZyxpbWFnZVVybCxkaXNwbGF5U3ltYm9sLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JHF1b3RlQ3VycmVuY3kpe3ByaWNlLHBlcmNlbnRDaGFuZ2VzQHNraXAoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxpZH19YCwiNTYyMjYxYTAyZjVkODY5OTdlOTBkMjkwN2FhMzQ0NTE0N2Y5NTdmOGViMTNhNzI0ODdlZTdlMTE0MGRiODVhMiI6YHF1ZXJ5IENyZWRpdENhcmRXYWl0bGlzdE1hcmtldGluZ1F1ZXJ5KCRpc0xvZ2dlZE91dDpCb29sZWFuISwkaXNCb29zdGVkUmV3YXJkRW5hYmxlZDpCb29sZWFuISl7bWFya2V0aW5nVWlDb21wb25lbnRzOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfQ1JFRElUX0NBUkRfV0FJVExJU1QiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfTUVUQV9UQUciXSxmaXJzdDoxKXtlZGdlc3tub2Rle2NhdGVnb3J5TmFtZSxjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGUsZGVzY3JpcHRpb24saW1hZ2VVcmx9LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX0saWR9LC4uLkNyZWRpdENhcmRXZWxjb21lQ29udGVudEZyYWdtZW50XzNDUFlTUH1mcmFnbWVudCBCVENEcm9wc0hlcm9GcmFnbWVudCBvbiBRdWVyeXsuLi51c2VUaW1lUmVtYWluaW5nRnJhZ21lbnQsYWN0aXZlQ3JlZGl0Y2FyZFN3ZWVwc3Rha2V7Z3JhbmRQcml6ZVRpZXJ7ZmlhdFByaXplQW1vdW50e3ZhbHVlLGN1cnJlbmN5fX0sZW50cnlJbmNyZW1lbnRBbW91bnR7dmFsdWUsY3VycmVuY3l9LGlkfSxidGNEcm9wSGVyb1VpQ29tcG9uZW50czp1aUNvbXBvbmVudHNCeVN1cmZhY2Uoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX0JUQ19EUk9QX0lORk8iLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfQlRDX0RST1BfSEVBREVSIiwiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX0JUQ19EUk9QX0hFQURFUl9JTkZPIl0sZmlyc3Q6MTApe2VkZ2Vze25vZGV7Y2F0ZWdvcnlOYW1lLHR5cGVOYW1lLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHtrZXksdGl0bGUsZGVzY3JpcHRpb24sc3VidGl0bGUsaW5mb3JtYXRpb25VcmwscmljaFRleHREZXNjcmlwdGlvbntodG1sU3RyaW5nLG9iamVjdH0scmljaFRleHRTdWJ0aXRsZXtodG1sU3RyaW5nLG9iamVjdH0scHJpbWFyeUNvbXBvbmVudEN0YXt0ZXh0LHVybH0sc2Vjb25kYXJ5Q29tcG9uZW50Q3Rhe3RleHQsdXJsfSx0aXRsZVRleHRGaWVsZHt0ZXh0fSxkZXNjcmlwdGlvblRleHRGaWVsZHt0ZXh0fSxzdWJ0aXRsZVRleHRGaWVsZHt0ZXh0fX0sLi4ub24gVUlDb21wb25lbnRDb250YWluZXJ7Y29tcG9uZW50c3tjYXRlZ29yeSxjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7a2V5LGluZm9ybWF0aW9uVXJsLHRpdGxlLGRlc2NyaXB0aW9uLHN1YnRpdGxlLHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZyxvYmplY3R9LHJpY2hUZXh0U3VidGl0bGV7aHRtbFN0cmluZyxvYmplY3R9LHByaW1hcnlDb21wb25lbnRDdGF7dGV4dCx1cmx9LHRpdGxlVGV4dEZpZWxke3RleHR9LGRlc2NyaXB0aW9uVGV4dEZpZWxke3RleHR9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fSxpZH19LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX0saWR9fWZyYWdtZW50IENyZWRpdENhcmRBcHBRUkNvZGVGcmFnbWVudCBvbiBRdWVyeXt1aUNvbXBvbmVudHM6dWlDb21wb25lbnRzQnlTdXJmYWNlKHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9DUkVESVRfQ0FSRF9XQUlUTElTVCIsY2F0ZWdvcnlOYW1lczpbIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9DUkVESVRfQ0FSRF9IRVJPX1FSX0NPREUiLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfSEVST19RUl9DT0RFX09OQk9BUkRFRCIsIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9DUkVESVRfQ0FSRF9IRVJPX1FSX0NPREVfTE9HR0VEX09VVCIsIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9DUkVESVRfQ0FSRF9IRVJPX1FSX0NPREVfUkVGRVJSQUwiXSl7ZWRnZXN7bm9kZXtjYXRlZ29yeU5hbWUsY29tcG9uZW50ey4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHt0aXRsZSxkZXNjcmlwdGlvbixpbmZvcm1hdGlvblVybH0sX190eXBlbmFtZSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fSxpZH19LGlkfX1mcmFnbWVudCBDcmVkaXRDYXJkQm9vc3RlZFJld2FyZEZyYWdtZW50IG9uIFF1ZXJ5e2Jvb3N0ZWRSZXdhcmRVaUNvbXBvbmVudHM6dWlDb21wb25lbnRzQnlTdXJmYWNlKHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9DUkVESVRfQ0FSRF9XQUlUTElTVCIsY2F0ZWdvcnlOYW1lczpbIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9DQ19CT09TVEVEX1JFV0FSRCJdLGZpcnN0OjEpe2VkZ2Vze25vZGV7aWQsY2F0ZWdvcnlOYW1lLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHtyaWNoVGV4dFRpdGxle2h0bWxTdHJpbmd9LHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ30saW5mb3JtYXRpb25Vcmx9LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19fX0sLi4udXNlTG9nSW5zdWZmaWNpZW50RFBEYXRhRXJyb3JGcmFnbWVudCxpZH19ZnJhZ21lbnQgQ3JlZGl0Q2FyZENCMUJ1dHRvbkZyYWdtZW50XzJ1TVpxSiBvbiBRdWVyeXt2aWV3ZXJAc2tpcChpZjokaXNMb2dnZWRPdXQpe2NiMUZsb2F0aW5nQnV0dG9uVWlDb21wb25lbnRzOnVpQ29tcG9uZW50c0J5U3VyZmFjZShza2lwQ2FjaGU6dHJ1ZSxzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfQ1JFRElUX0NBUkRfV0FJVExJU1QiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfSEVST19ERVRBSUxTX0NCMSJdKXtlZGdlc3tub2Rle2NhdGVnb3J5TmFtZSxjb21wb25lbnR7Li4uUHJlc2VudGF0aW9uQ3RhUHJpbWFyeUZyYWdtZW50LF9fdHlwZW5hbWUsLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH0saWR9fWZyYWdtZW50IENyZWRpdENhcmRHZW5lc2lzQmxvY2tGcmFnbWVudCBvbiBRdWVyeXtnZW5lc2lzQmxvY2tVaUNvbXBvbmVudHM6dWlDb21wb25lbnRzQnlTdXJmYWNlKHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9DUkVESVRfQ0FSRF9XQUlUTElTVCIsY2F0ZWdvcnlOYW1lczpbIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9HRU5FU0lTX0JMT0NLX05VREdFIiwiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX0dFTkVTSVNfQkxPQ0siLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfREVUQUlMUyIsIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9HRU5FU0lTX0JMT0NLX1dFQl9BU1NFVCIsIlVJX0NPTVBPTkVOVF9TVVJGQUNFX0NSRURJVF9DQVJEX0JSQU5ESU5HIl0sZmlyc3Q6MTApe2VkZ2Vze25vZGV7aWQsY2F0ZWdvcnlOYW1lLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLlByZXNlbnRhdGlvbkN0YVByaW1hcnlGcmFnbWVudCwuLi5QcmVzZW50YXRpb25DdGFTZWNvbmRhcnlGcmFnbWVudCwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGUsZGVzY3JpcHRpb24saW1hZ2VVcmx9LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19fX0saWR9LC4uLkNyZWRpdENhcmRBcHBRUkNvZGVGcmFnbWVudH1mcmFnbWVudCBDcmVkaXRDYXJkSW5lbGlnaWJsZUJhbm5lckZyYWdtZW50IG9uIFF1ZXJ5e2luZWxpZ2libGVCYW5uZXJVaUNvbXBvbmVudHM6dWlDb21wb25lbnRzQnlTdXJmYWNlKHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfSU5FTElHSUJMRV9CQU5ORVIiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfSU5FTElHSUJMRV9CQU5ORVJfR0VORVJJQyJdKXtlZGdlc3tub2Rle2NhdGVnb3J5TmFtZSxjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGUscHJpbWFyeUNvbXBvbmVudEN0YXt1cmwsdGV4dH19LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX0saWR9fWZyYWdtZW50IENyZWRpdENhcmRQcm9tb3RlZENhcmRCZW5lZml0c0ZyYWdtZW50IG9uIFF1ZXJ5e3Byb21vdGVkQmVuZWZpdHNVSUNvbXBvbmVudHM6dWlDb21wb25lbnRzQnlTdXJmYWNlKGZpcnN0OjEwLHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9DUkVESVRfQ0FSRF9PTkJPQVJESU5HIixjYXRlZ29yeU5hbWVzOlsiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX0NSRURJVF9DQVJEX1BST01PVEVEX0NBUkRfQkVORUZJVFNfSVRFTSJdKXtlZGdlc3tub2Rle2lkLGNhdGVnb3J5TmFtZSxjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7cGljdG9ncmFtSWQsdGl0bGV9LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19fX0saWR9fWZyYWdtZW50IENyZWRpdENhcmRQcm9tb3RlZENhcmRCZW5lZml0c1VJQ29tcG9uZW50RnJhZ21lbnQgb24gVUlDb21wb25lbnRDb250YWluZXJ7Y29tcG9uZW50c3tpZCxjb250ZW50SWQsY29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3BpY3RvZ3JhbUlkLHRpdGxlLF9fdHlwZW5hbWV9LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19fX1mcmFnbWVudCBDcmVkaXRDYXJkV2FpdGxpc3RBZGRpdGlvbmFsQmVuZWZpdHNEZXRhaWxzRnJhZ21lbnQgb24gVUlDb21wb25lbnRCYXNlVHlwZXtfX2lzVUlDb21wb25lbnRCYXNlVHlwZTpfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHt0aXRsZSxyaWNoVGV4dERlc2NyaXB0aW9ue2h0bWxTdHJpbmd9LHJpY2hUZXh0U3VidGl0bGV7aHRtbFN0cmluZ30sc2Vjb25kYXJ5Q29tcG9uZW50Q3Rhe3RleHQsdXJsfX19ZnJhZ21lbnQgQ3JlZGl0Q2FyZFdhaXRsaXN0QWRkaXRpb25hbEJlbmVmaXRzRnJhZ21lbnQgb24gUXVlcnl7YmVuZWZpdHNVaUNvbXBvbmVudHM6dWlDb21wb25lbnRzQnlTdXJmYWNlKGZpcnN0OjE1LHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9DUkVESVRfQ0FSRF9XQUlUTElTVCIsY2F0ZWdvcnlOYW1lczpbIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9DUkVESVRfQ0FSRF9CRU5FRklUUyIsIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9DUkVESVRfQ0FSRF9CRU5FRklUU19JVEVNIiwiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX0NSRURJVF9DQVJEX0JFTkVGSVRTX09OQk9BUkRJTkciXSl7ZWRnZXN7bm9kZXtpZCxjYXRlZ29yeU5hbWUsY29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50ey4uLkNyZWRpdENhcmRXYWl0bGlzdEFkZGl0aW9uYWxCZW5lZml0c0RldGFpbHNGcmFnbWVudCx0aXRsZSxkZXNjcmlwdGlvbixpbmZvcm1hdGlvblVybCxyaWNoVGV4dERlc2NyaXB0aW9ue2h0bWxTdHJpbmd9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fX19LGlkfX1mcmFnbWVudCBDcmVkaXRDYXJkV2FpdGxpc3RGQVFGcmFnbWVudCBvbiBRdWVyeXtmYXFVaUNvbXBvbmVudHM6dWlDb21wb25lbnRzQnlTdXJmYWNlKHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9DUkVESVRfQ0FSRF9XQUlUTElTVCIsY2F0ZWdvcnlOYW1lczpbIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9DUkVESVRfQ0FSRF9GQVEiLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfRkFRX0lURU0iLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfRkFRX0lURU1fT05CT0FSRElORyJdLGZpcnN0OjE1KXtlZGdlc3tub2Rle2lkLGNhdGVnb3J5TmFtZSxjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGUsZGVzY3JpcHRpb259LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19fX0saWR9fWZyYWdtZW50IENyZWRpdENhcmRXYWl0bGlzdEhlcm9GcmFnbWVudCBvbiBRdWVyeXtoZXJvVWlDb21wb25lbnRzOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfQ1JFRElUX0NBUkRfV0FJVExJU1QiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfSEVST19ERVRBSUxTX0RFU0tUT1AiLCJVSV9DT01QT05FTlRfU1VSRkFDRV9DUkVESVRfQ0FSRF9CUkFORElORyIsIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9DUkVESVRfQ0FSRF9IRVJPX0RFU0tUT1BfVklERU8iLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfSEVST19ERVNLVE9QX0lNQUdFX0xBU1RfRlJBTUUiLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfSEVST19ERVNLVE9QX0lNQUdFX0ZJUlNUX0ZSQU1FIl0pe2VkZ2Vze25vZGV7Y2F0ZWdvcnlOYW1lLGNvbXBvbmVudHsuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGUsaW1hZ2VVcmx9LC4uLlByZXNlbnRhdGlvbkN0YVByaW1hcnlGcmFnbWVudCwuLi5QcmVzZW50YXRpb25DdGFTZWNvbmRhcnlGcmFnbWVudCxfX3R5cGVuYW1lLC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX0saWR9LC4uLkNyZWRpdENhcmRBcHBRUkNvZGVGcmFnbWVudH1mcmFnbWVudCBDcmVkaXRDYXJkV2FpdGxpc3RIZXJvVUlDb21wb25lbnRGcmFnbWVudCBvbiBVSUNvbXBvbmVudENvbnRhaW5lcntjb21wb25lbnRze2NvbnRlbnRJZCxjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7aW1hZ2VVcmwscmljaFRleHRUaXRsZXtodG1sU3RyaW5nfSxyaWNoVGV4dFN1YnRpdGxle2h0bWxTdHJpbmd9LHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ30sdGl0bGUsc3VidGl0bGV9LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX1mcmFnbWVudCBDcmVkaXRDYXJkV2FpdGxpc3RNYWluQmVuZWZpdEZyYWdtZW50XzJ1TVpxSiBvbiBRdWVyeXsuLi5DcmVkaXRDYXJkQ0IxQnV0dG9uRnJhZ21lbnRfMnVNWnFKLC4uLkJUQ0Ryb3BzSGVyb0ZyYWdtZW50LHZpZXdlckBza2lwKGlmOiRpc0xvZ2dlZE91dCl7Y29pbmJhc2VTdWJzY3JpcHRpb257c3RhdHVzLGlkfSxtYWluQmVuZWZpdFVpQ29tcG9uZW50czp1aUNvbXBvbmVudHNCeVN1cmZhY2Uoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX0NSRURJVF9DQVJEX1dBSVRMSVNUIixjYXRlZ29yeU5hbWVzOlsiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX0NSRURJVF9DQVJEX01BSU5fQkVORUZJVF9DQjFfV0VCIiwiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX0NSRURJVF9DQVJEX01BSU5fQkVORUZJVFNfSVRFTSIsIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9DUkVESVRfQ0FSRF9NQUlOX0JFTkVGSVRfV0VCIl0sZmlyc3Q6MTAsc2tpcENhY2hlOnRydWUpe2VkZ2Vze25vZGV7aWQsY2F0ZWdvcnlOYW1lLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHt0aXRsZSxzdWJ0aXRsZSxkZXNjcmlwdGlvbixpbWFnZVVybH0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX19fSxpZH0saWR9LGxvZ2dlZE91dFVJQ29tcG9uZW50czp1aUNvbXBvbmVudHNCeVN1cmZhY2Uoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX0NSRURJVF9DQVJEX1dBSVRMSVNUX0xPR0dFRF9PVVQiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfTUFJTl9CRU5FRklUX1dFQiIsIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9DUkVESVRfQ0FSRF9NQUlOX0JFTkVGSVRTX0lURU0iXSxmaXJzdDoxMCl7ZWRnZXN7bm9kZXtpZCxjYXRlZ29yeU5hbWUsY29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3RpdGxlLHN1YnRpdGxlLGRlc2NyaXB0aW9uLGltYWdlVXJsfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fX19LGlkfX1mcmFnbWVudCBDcmVkaXRDYXJkV2FpdGxpc3RSZXdhcmRGcmFnbWVudCBvbiBRdWVyeXtyZXdhcmRVaUNvbXBvbmVudDp1aUNvbXBvbmVudHNCeVN1cmZhY2Uoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX0NSRURJVF9DQVJEX1dBSVRMSVNUIixjYXRlZ29yeU5hbWVzOlsiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX0NSRURJVF9DQVJEX1JFV0FSRCIsIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9DUkVESVRfQ0FSRF9SRVdBUkRfT05CT0FSRElORyJdLGZpcnN0OjIpe2VkZ2Vze25vZGV7Y2F0ZWdvcnlOYW1lLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHt0aXRsZSxkZXNjcmlwdGlvbn0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH19ZnJhZ21lbnQgQ3JlZGl0Q2FyZFdlbGNvbWVDb250ZW50RnJhZ21lbnRfM0NQWVNQIG9uIFF1ZXJ5ey4uLkNyZWRpdENhcmRXYWl0bGlzdEhlcm9GcmFnbWVudCwuLi5DcmVkaXRDYXJkV2FpdGxpc3RSZXdhcmRGcmFnbWVudCwuLi5DcmVkaXRDYXJkV2FpdGxpc3RNYWluQmVuZWZpdEZyYWdtZW50XzJ1TVpxSiwuLi5DcmVkaXRDYXJkV2FpdGxpc3RBZGRpdGlvbmFsQmVuZWZpdHNGcmFnbWVudCwuLi5DcmVkaXRDYXJkR2VuZXNpc0Jsb2NrRnJhZ21lbnQsLi4uQ3JlZGl0Q2FyZFdhaXRsaXN0RkFRRnJhZ21lbnQsLi4uQ3JlZGl0Q2FyZFdlbGNvbWVEaXNjbGFpbWVyRnJhZ21lbnRfMnVNWnFKLC4uLkNyZWRpdENhcmRQcm9tb3RlZENhcmRCZW5lZml0c0ZyYWdtZW50LC4uLkNyZWRpdENhcmRJbmVsaWdpYmxlQmFubmVyRnJhZ21lbnQsLi4uQ3JlZGl0Q2FyZEJvb3N0ZWRSZXdhcmRGcmFnbWVudEBpbmNsdWRlKGlmOiRpc0Jvb3N0ZWRSZXdhcmRFbmFibGVkKSwuLi5CVENEcm9wc0hlcm9GcmFnbWVudCx2aWV3ZXJAc2tpcChpZjokaXNMb2dnZWRPdXQpe3dlbGNvbWVTY3JlZW5VaUNvbXBvbmVudHM6dWlDb21wb25lbnRzQnlTdXJmYWNlKHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9DUkVESVRfQ0FSRF9XRUxDT01FIixjYXRlZ29yeU5hbWVzOlsiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX1NDUkVFTiJdLGZpcnN0OjEpe2VkZ2Vze25vZGV7Y29udGVudElkLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50Q29udGFpbmVye2NvbXBvbmVudHN7Y29udGVudElkLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50Q29udGFpbmVyey4uLkNyZWRpdENhcmRXYWl0bGlzdEhlcm9VSUNvbXBvbmVudEZyYWdtZW50LC4uLkNyZWRpdENhcmRXZWxjb21lRGlzY2xhaW1lclVJQ29tcG9uZW50RnJhZ21lbnQsLi4uQ3JlZGl0Q2FyZFByb21vdGVkQ2FyZEJlbmVmaXRzVUlDb21wb25lbnRGcmFnbWVudH0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fSxpZH19LGlkfSxpZH19ZnJhZ21lbnQgQ3JlZGl0Q2FyZFdlbGNvbWVEaXNjbGFpbWVyRnJhZ21lbnRfMnVNWnFKIG9uIFF1ZXJ5e3dlbGNvbWVEaXNjbGFpbWVyVWlDb21wb25lbnRzOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfQ1JFRElUX0NBUkRfV0FJVExJU1QiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfRElTQ0xBSU1FUl9PTkJPQVJESU5HIl0pe2VkZ2Vze25vZGV7Y2F0ZWdvcnlOYW1lLGNvbXBvbmVudHsuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7cmljaFRleHREZXNjcmlwdGlvbntodG1sU3RyaW5nfX0sX190eXBlbmFtZSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fSxpZH19LGlkfSx2aWV3ZXJAc2tpcChpZjokaXNMb2dnZWRPdXQpe2NyZWRpdENhcmR7b25ib2FyZGluZyhjYXJkT2ZmZXJpbmc6Q09JTkJBU0VfT05FX0NBUkQpe2NhcmRBcHBsaWNhdGlvbkRvY3VtZW50c3tfX3R5cGVuYW1lLGFncmVlbWVudHN7dXJsLHR5cGV9fX0saWR9LGlkfX1mcmFnbWVudCBDcmVkaXRDYXJkV2VsY29tZURpc2NsYWltZXJVSUNvbXBvbmVudEZyYWdtZW50IG9uIFVJQ29tcG9uZW50Q29udGFpbmVye2NvbXBvbmVudHN7Y29udGVudElkLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHtyaWNoVGV4dERlc2NyaXB0aW9ue2h0bWxTdHJpbmd9LF9fdHlwZW5hbWV9LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX1mcmFnbWVudCBQcmVzZW50YXRpb25DdGFQcmltYXJ5RnJhZ21lbnQgb24gVUlDb21wb25lbnRCYXNlVHlwZXtfX2lzVUlDb21wb25lbnRCYXNlVHlwZTpfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHtwcmltYXJ5Q29tcG9uZW50Q3Rhe2JhY2tncm91bmRDb2xvcix0ZXh0LHRleHRDb2xvcn19LC4uLm9uIFVJQ29tcG9uZW50Q29udGFpbmVye3ByaW1hcnlDb21wb25lbnRDdGE6cHJpbWFyeUN0YXtiYWNrZ3JvdW5kQ29sb3IsdGV4dCx0ZXh0Q29sb3J9fX1mcmFnbWVudCBQcmVzZW50YXRpb25DdGFTZWNvbmRhcnlGcmFnbWVudCBvbiBVSUNvbXBvbmVudEJhc2VUeXBle19faXNVSUNvbXBvbmVudEJhc2VUeXBlOl9fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3NlY29uZGFyeUNvbXBvbmVudEN0YXt0ZXh0LGJhY2tncm91bmRDb2xvcix0ZXh0Q29sb3J9fSwuLi5vbiBVSUNvbXBvbmVudENvbnRhaW5lcntzZWNvbmRhcnlDb21wb25lbnRDdGE6c2Vjb25kYXJ5Q3Rhe3RleHQsYmFja2dyb3VuZENvbG9yLHRleHRDb2xvcn19fWZyYWdtZW50IHVzZUxvZ0luc3VmZmljaWVudERQRGF0YUVycm9yRnJhZ21lbnQgb24gVUlDb21wb25lbnRzQ29ubmVjdGlvbntlbGlnaWJpbGl0eVN0YXR1c3tpbmVsaWdpYmxlUmVhc29uc30sZXJyb3J7X190eXBlbmFtZSxtZXNzYWdlLGNvZGV9fWZyYWdtZW50IHVzZVRpbWVSZW1haW5pbmdGcmFnbWVudCBvbiBRdWVyeXthY3RpdmVDcmVkaXRjYXJkU3dlZXBzdGFrZXtzdGFydHNBdCxlbmRzQXQsc3RhdHVzLGlkfX1gLCI1NmRkZWYzNmVhZGExYzcwNTA1NDUwMjBmYjRkYTMyNDk1ZDRiMGM1NWQ2NGVlYTc5N2ViNDA3YjIyOTY5N2UyIjpgcXVlcnkgQ3VzdG9tZXJDYXRlZ29yaXNhdGlvblF1ZXJ5KCRxdWVzdGlvblR5cGU6R2VuZXJpY0NvbXBsaWFuY2VRdWVzdGlvblR5cGUhKXt2aWV3ZXJ7Z2VuZXJpY0NvbXBsaWFuY2VRdWVzdGlvbnNCeVR5cGUodHlwZTokcXVlc3Rpb25UeXBlKXtxdWVzdGlvbnN7dXVpZCx0aXRsZSxzdWJ0aXRsZSxpbnB1dFR5cGUsb3B0aW9uc3t2YWx1ZSx0aXRsZSxzdWJ0aXRsZX0sZnJlZVRleHRJbnB1dFJlZ2V4LGlkfX0saWR9fWAsIjU5MmQ4OWRjNDhhNGYyOGQyOTIxMWFkYjgzY2QzNTg0MzY2NmVhMzQ4MWEwOGVkNGExYmMwNDgwOGI4OWVjNzYiOmBtdXRhdGlvbiBTb2xhbmFNZXNzYWdlU2lnbk11dGF0aW9uKCRpbnB1dDpXT0FWZXJpZnlBbmRBZGRBZGRyZXNzSW5wdXQhKXt3T0FWZXJpZnlBbmRBZGRBZGRyZXNzKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBXT0FWZXJpZnlBbmRBZGRBZGRyZXNzU3VjY2Vzc3tpc1ZlcmlmaWVkfSwuLi5vbiBXT0FWZXJpZnlBbmRBZGRBZGRyZXNzRXJyb3J7ZXJyb3J9fX1gLCI1YjNhOGZiMjQwOGQ3OThkOTk5YjZmZTIwOTkxMjYyMTdjNmUzMDI5MDRjODliYmZhMTUxNjQ2N2I0NDc3NDg1IjpgbXV0YXRpb24gdXNlRXF1aXR5V2F0Y2hsaXN0UmVtb3ZlTXV0YXRpb24oJGlucHV0OlJlbW92ZVdhdGNobGlzdEl0ZW1JbnB1dCEsJHdhdGNobGlzdFV1aWQ6VXVpZCwkd2F0Y2hsaXN0Q291bnQ6SW50ISl7cmVtb3ZlV2F0Y2hsaXN0SXRlbShpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gUmVtb3ZlV2F0Y2hsaXN0SXRlbVN1Y2Nlc3N7dmlld2Vye3dhdGNobGlzdEJ5VXVpZCh3YXRjaGxpc3RVdWlkOiR3YXRjaGxpc3RVdWlkKXtpZCx1dWlkLGl0ZW1zKGZpcnN0OiR3YXRjaGxpc3RDb3VudCl7ZWRnZXN7bm9kZXtpZCx1dWlkLGl0ZW1NZXRhZGF0YXtfX3R5cGVuYW1lLC4uLm9uIEVxdWl0eXtkYXRhe3Byb2R1Y3RJZCx0aWNrZXIsc2hvcnROYW1lLGltYWdlVXJsLHByaWNlLHByaWNlUGVyY2VudGFnZUNoYW5nZU1hcmtldEhvdXJzLG1hcmtldGNhcCxhcHByb3hpbWF0ZVF1b3RlVm9sdW1lMjRofSxpZH0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfSwuLi5vbiBEZXJpYml0SW5zdHJ1bWVudHtpZH0sLi4ub24gSVBPe2lkfSwuLi5vbiBSYmFJbnN0cnVtZW50R3JvdXB7aWR9LC4uLm9uIFJldGFpbEJyb2tlcmFnZVByb2R1Y3R7aWR9LC4uLm9uIFZpZXdlckVxdWl0eU9wdGlvbntpZH19LF9fdHlwZW5hbWV9LGN1cnNvcn0scGFnZUluZm97ZW5kQ3Vyc29yLGhhc05leHRQYWdlfX19LGlkfX19fWAsIjViNGQzMDRkNDkxOGIzYzRhZWQ3NWNhNmExMDNmNjVhZGNiYjgxMjU1YzNiODUwNTVkOTIzZmFiOWRjODk0NzgiOmBxdWVyeSBDb2luNTBQYWdlVjJRdWVyeSgkY291bnRyeUNvZGU6U3RyaW5nISl7Li4udXNlVVNEQ0N1c3RvbURhdGEsLi4uQ29pbjUwSGVyb0NkeHYyRnJhZ21lbnR9ZnJhZ21lbnQgQ29pbjUwSGVyb0NkeHYyRnJhZ21lbnQgb24gUXVlcnl7Li4uQ29pbjUwUHJpY2VEaXNwbGF5Q2R4djJGcmFnbWVudH1mcmFnbWVudCBDb2luNTBQcmljZURpc3BsYXlDZHh2MkZyYWdtZW50IG9uIFF1ZXJ5e3JldGFpbEludHhVbmF1dGhlZHtpbmRleEJ5U3ltYm9sKHN5bWJvbDoiQ09JTjUwIil7cHJpY2UscHJpY2UyNEhyUGVyY2VudH19fWZyYWdtZW50IHVzZVVTRENDdXN0b21EYXRhIG9uIFF1ZXJ5e3Jld2FyZHNPcmNoZXN0cmF0aW9uUHJvZ3JhbVJld2FyZFJhdGVGb3JMb2dvdXRQYWdlKGN1cnJlbmN5OiJVU0RDIixwbGF0Zm9ybTpSRVRBSUwsY291bnRyeUNvZGU6JGNvdW50cnlDb2RlKXtiYXNlUmF0ZSxnZW9Qcm9tb1JhdGUsY2JPbmVSYXRlfX1gLCI1ZWJjMzBlMmY1ZDQ4MDRjZTIyNWRiMjI0OGZjMzEzYjcxNDQ4OTVhZGYwMmQ2NzNhZWI2YWYxZmM5NGIyOGQ2IjpgbXV0YXRpb24gdXNlQ2FuY2VsRnV0dXJlc01hbnVhbFN3ZWVwQVRTTXV0YXRpb257Y2FuY2VsRnV0dXJlc01hbnVhbFN3ZWVwKGlucHV0Ont9KXtfX3R5cGVuYW1lLC4uLm9uIENhbmNlbEZ1dHVyZXNNYW51YWxTd2VlcFN1Y2Nlc3N7ZHVtbXl9LC4uLm9uIEdlbmVyaWNFcnJvcnttZXNzYWdlLGNvZGV9fX1gLCI1ZWY2ZTA4MzA4ZDdkNDMzZTBjZWIxOTE4MjgwZGVlMGQ3NDViZDVjMmEyYTc3ZDhmZjViZjkwMGQzM2MwZDE3IjpgcXVlcnkgQWRkcmVzc1BlbmRpbmdRdWVyeXt2aWV3ZXJ7dXNlclByb3BlcnRpZXN7bmV4dFJlcXVpcmVtZW50LHJlcXVpcmVtZW50TWV0YWRhdGF7c3RhdHVzfSxpZH0saWR9fWAsIjYwMDExOWQ2ODg5OGI5ZDRjNGYxOTMxMjI5MWQ2YWEzZWJhM2NmNzU1NjE2MTk0N2E3Mzc2MTUxYzI0MjAwMTgiOmBxdWVyeSB1c2VJc0NiZnNlVXNlclF1ZXJ5e3ZpZXdlcntyZXRhaWxEZXJpdmF0aXZlc3tmdXR1cmVzUGVybWlzc2lvbnN7ZW50aXR5fX0saWR9fWAsIjYwMjU1Mjc2ZTU0ZDdmZThjMmM5NGNjMzVjZDNjNTU4OTNlZjVmYWNkMDUxOTdiZWRhOTIzYjIyNjEzYTYyZDIiOmBxdWVyeSBEZXBvc2l0SW5zdHJ1Y3Rpb25zU3RlcFF1ZXJ5e3ZpZXdlcnthdmFpbGFibGVQYXltZW50TWV0aG9kc1YyKHRyYW5zZmVyVHlwZTpkZXBvc2l0cyx3YWxsZXRBcHA6ZmFsc2Upe3R5cGUsYWxsTGltaXRze3RyYW5zZmVyVHlwZXMscmVtYWluaW5nQXZhaWxhYmxlTGltaXR7dmFsdWV9fSxpZH0saWR9fWAsIjYxMDc5NmI0ZmVmZTYzZThiMTBmYzhlYTg3OGI0MTM3NzAzNDVhNTFmNzk1ZmU5YmViMTI4NmVlM2FjM2Q1YWMiOmBxdWVyeSBUYXhPbmJvYXJkaW5nRVVXaXphcmRRdWVyeSgkY291bnRyeUNvZGVzOltTdHJpbmchXSEpey4uLlRheEluZm9TdGVwRnJhZ21lbnQsdmlld2Vye3VzZXJQcm9wZXJ0aWVze3BlcnNvbmFsRGV0YWlsc3tsZWdhbE5hbWV7Zmlyc3ROYW1lLGxhc3ROYW1lfSxkYXRlT2ZCaXJ0aCxhZGRyZXNze2xpbmUxLGxpbmUyLGNpdHkscG9zdGFsQ29kZSxzdGF0ZSxjb3VudHJ5e2NvZGUsbmFtZX19fSxpZH0saWR9fWZyYWdtZW50IFRheEluZm9TdGVwRnJhZ21lbnQgb24gUXVlcnl7Li4uVGF4SW5mb1N0ZXBUaW5WYWxpZGF0aW9uUnVsZXNGcmFnbWVudH1mcmFnbWVudCBUYXhJbmZvU3RlcFRpblZhbGlkYXRpb25SdWxlc0ZyYWdtZW50IG9uIFF1ZXJ5e3RpblZhbGlkYXRpb25SdWxlcyhjb3VudHJ5Q29kZXM6JGNvdW50cnlDb2Rlcyl7cmVnZXhQYXR0ZXJuLGVycm9yTWVzc2FnZSxpc1JlcXVpcmVkfX1gLCI2Mjg4OTYxZmFiYzI4NDEzOTE1ODVkMTZjODNlYWU0ZTc0Y2Y4OGQzNTljZTk3OTZiNTY1N2IwZGI3NDk2YjhjIjpgcXVlcnkgRWR1Y2F0aW9uTW9kYWxRdWVyeSgkc3VyZmFjZU5hbWU6U3RyaW5nISwkdXNlQXV0aGVkU3VyZmFjZTpCb29sZWFuISwkdXNlTG9nZ2VkT3V0U3VyZmFjZTpCb29sZWFuISl7bG9nZ2VkT3V0U3VyZmFjZTp1aUNvbXBvbmVudHNCeVN1cmZhY2VMb2dnZWRPdXQoc3VyZmFjZU5hbWU6JHN1cmZhY2VOYW1lKUBpbmNsdWRlKGlmOiR1c2VMb2dnZWRPdXRTdXJmYWNlKXsuLi5FZHVjYXRpb25Nb2RhbENvbm5lY3Rpb25GcmFnbWVudCxpZH0sdmlld2VyQGluY2x1ZGUoaWY6JHVzZUF1dGhlZFN1cmZhY2Upe2F1dGhlZFN1cmZhY2U6dWlDb21wb25lbnRzQnlTdXJmYWNlKHN1cmZhY2VOYW1lOiRzdXJmYWNlTmFtZSl7Li4uRWR1Y2F0aW9uTW9kYWxDb25uZWN0aW9uRnJhZ21lbnQsaWR9LGlkfX1mcmFnbWVudCBFZHVjYXRpb25Nb2RhbENvbm5lY3Rpb25GcmFnbWVudCBvbiBVSUNvbXBvbmVudHNDb25uZWN0aW9ue2VkZ2Vze25vZGV7dGV4dFZhcmlhYmxlc3tlbnRyaWVze2tleSx2YWx1ZX19LGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50Q29udGFpbmVye3ByaW1hcnlDdGF7dGV4dH19LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGNvbXBvbmVudHN7Y29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3BpY3RvZ3JhbUlkLGltYWdle3VybCxkYXJrTW9kZVVybH0sdGl0bGVUZXh0RmllbGR7dGV4dH0scmljaFRleHREZXNjcmlwdGlvbntodG1sU3RyaW5nfSxzdWJ0aXRsZVRleHRGaWVsZHt0ZXh0fSx0ZXh0RmllbGRze2tleSx0ZXh0fX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9LGlkfX19YCwiNjMzNjU4YWNjYTEyNjdhYzk1NjYzOTQxNzA5YWE4YWZmMThhYzQxNzkzZWI3ZjYxM2MzNjk0ZjgwYjM2MjgxNyI6YHF1ZXJ5IHVzZVJlZnJlc2hBY2NvdW50QmFsYW5jZXNBVFNRdWVyeSgkYmFzZUN1cnJlbmN5SWQ6U3RyaW5nISwkcXVvdGVDdXJyZW5jeUlkOlN0cmluZyEsJHBvcnRmb2xpb1V1aWQ6VXVpZCEsJHNraXBVc2RjOkJvb2xlYW4hLCRoYXNTZWxlY3RlZFBvcnRmb2xpb1V1aWQ6Qm9vbGVhbiEsJGJhc2VBY2NvdW50SWQ6VXVpZCEsJHF1b3RlQWNjb3VudElkOlV1aWQhLCRza2lwRGVmYXVsdFBvcnRmb2xpbzpCb29sZWFuISwkcHJvZHVjdElkOlRoaXJkUGFydHlJZFN0cmluZyEsJHNob3VsZFVzZUdxbFByb2R1Y3RTY2hlbWE6Qm9vbGVhbiEsJHNraXBGaWF0QWNjb3VudHNGb3JCYWxhbmNlOkJvb2xlYW4hLCRza2lwUXVvdGVBc3NldFF1ZXJ5OkJvb2xlYW4hLCRza2lwQmFzZUFzc2V0UXVlcnk6Qm9vbGVhbiEpe3ZpZXdlcntwb3J0Zm9saW9CeVV1aWQodXVpZDokcG9ydGZvbGlvVXVpZClAaW5jbHVkZShpZjokc2tpcERlZmF1bHRQb3J0Zm9saW8pe25hbWUsdHlwZSwuLi51c2VSZWZyZXNoQWNjb3VudEJhbGFuY2VzUG9zaXRpb25zRnJhZ21lbnQsaWR9LGRlZmF1bHRQb3J0Zm9saW9Ac2tpcChpZjokc2tpcERlZmF1bHRQb3J0Zm9saW8pe25hbWUsdHlwZSwuLi51c2VSZWZyZXNoQWNjb3VudEJhbGFuY2VzUG9zaXRpb25zRnJhZ21lbnQsaWR9LGJhc2VBY2NvdW50OmFjY291bnRCeVV1aWRWMyh1dWlkOiRiYXNlQWNjb3VudElkKXthY2NvdW50e2F2YWlsYWJsZUJhbGFuY2V7dmFsdWUsY3VycmVuY3l9LGlkfSxzdGF0dXN9LHF1b3RlQWNjb3VudDphY2NvdW50QnlVdWlkVjModXVpZDokcXVvdGVBY2NvdW50SWQpe2FjY291bnR7YXZhaWxhYmxlQmFsYW5jZXt2YWx1ZSxjdXJyZW5jeX0saWR9LHN0YXR1c30sdXNkY0FjY291bnQ6YWNjb3VudEJ5VXVpZFYzKHV1aWQ6IlVTREMiKUBza2lwKGlmOiRza2lwVXNkYyl7YWNjb3VudHthdmFpbGFibGVCYWxhbmNle3ZhbHVlLGN1cnJlbmN5fSxpZH0sc3RhdHVzfSxpZH0sLi4udXNlQ2VmaUF2YWlsYWJsZVRvVHJhZGVGb3JCYXNlQW5kUXVvdGVBVFNGcmFnbWVudH1mcmFnbWVudCByZWFkQXZhaWxhYmxlVG9UcmFkZUJhbGFuY2VGcm9tQXNzZXRPckN1cnJlbmN5QVRTRnJhZ21lbnQgb24gQXNzZXRPckN1cnJlbmN5e19faXNBc3NldE9yQ3VycmVuY3k6X190eXBlbmFtZSwuLi5vbiBWaWV3ZXJBc3NldHtkZWZhdWx0QXNzZXRDdXJyZW50QmFsYW5jZUBza2lwKGlmOiRoYXNTZWxlY3RlZFBvcnRmb2xpb1V1aWQpe2F2YWlsYWJsZVRvVHJhZGVCYWxhbmNle3ZhbHVlfSxpZH0sYXNzZXRDdXJyZW50QmFsYW5jZVYyKHBvcnRmb2xpb1V1aWQ6JHBvcnRmb2xpb1V1aWQpQGluY2x1ZGUoaWY6JGhhc1NlbGVjdGVkUG9ydGZvbGlvVXVpZCl7YWR2YW5jZWRBdmFpbGFibGVUb1RyYWRlQmFsYW5jZXt2YWx1ZX0saWR9fX1mcmFnbWVudCByZWFkQXZhaWxhYmxlVG9UcmFkZUJhbGFuY2VGcm9tRmlhdEFjY291bnRBVFNGcmFnbWVudCBvbiBBY2NvdW50e2Fzc2V0T3JGaWF0Q3VycmVuY3l7X190eXBlbmFtZSwuLi5vbiBUaWVyc0N1cnJlbmN5e2RlZmF1bHRBc3NldEN1cnJlbnRCYWxhbmNlQHNraXAoaWY6JGhhc1NlbGVjdGVkUG9ydGZvbGlvVXVpZCl7YXZhaWxhYmxlVG9UcmFkZUJhbGFuY2V7dmFsdWV9LGlkfSxhc3NldEN1cnJlbnRCYWxhbmNlVjIocG9ydGZvbGlvVXVpZDokcG9ydGZvbGlvVXVpZClAaW5jbHVkZShpZjokaGFzU2VsZWN0ZWRQb3J0Zm9saW9VdWlkKXthZHZhbmNlZEF2YWlsYWJsZVRvVHJhZGVCYWxhbmNle3ZhbHVlfSxpZH0saWR9LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH0sLi4ub24gVmlld2VyRXF1aXR5e2lkfX19ZnJhZ21lbnQgcmVhZEF2YWlsYWJsZVRvVHJhZGVCYWxhbmNlRnJvbVZpZXdlckFzc2V0QVRTRnJhZ21lbnQgb24gVmlld2VyQXNzZXR7ZGVmYXVsdEFzc2V0Q3VycmVudEJhbGFuY2VAc2tpcChpZjokaGFzU2VsZWN0ZWRQb3J0Zm9saW9VdWlkKXthdmFpbGFibGVUb1RyYWRlQmFsYW5jZXt2YWx1ZX0saWR9LGFzc2V0Q3VycmVudEJhbGFuY2VWMihwb3J0Zm9saW9VdWlkOiRwb3J0Zm9saW9VdWlkKUBpbmNsdWRlKGlmOiRoYXNTZWxlY3RlZFBvcnRmb2xpb1V1aWQpe2FkdmFuY2VkQXZhaWxhYmxlVG9UcmFkZUJhbGFuY2V7dmFsdWV9LGlkfX1mcmFnbWVudCByZWFkQmFzZVByZWNpc2lvbkFUU0ZyYWdtZW50IG9uIFJldGFpbEJyb2tlcmFnZVByb2R1Y3RWMntiYXNlSW5jcmVtZW50fWZyYWdtZW50IHJlYWRRdW90ZVByZWNpc2lvbkFUU0ZyYWdtZW50IG9uIFJldGFpbEJyb2tlcmFnZVByb2R1Y3RWMntxdW90ZUluY3JlbWVudH1mcmFnbWVudCB1c2VCYXNlQ2VmaUF2YWlsYWJsZVRvVHJhZGVBVFNGcmFnbWVudCBvbiBRdWVyeXt2aWV3ZXJ7YmFzZUFzc2V0OmFzc2V0QnlTeW1ib2woc3ltYm9sOiRiYXNlQ3VycmVuY3lJZClAc2tpcChpZjokc2tpcEJhc2VBc3NldFF1ZXJ5KXthc3NldHtkaXNwbGF5U3ltYm9sLGlkfSwuLi5yZWFkQXZhaWxhYmxlVG9UcmFkZUJhbGFuY2VGcm9tVmlld2VyQXNzZXRBVFNGcmFnbWVudCxpZH0scmV0YWlsQnJva2VyYWdle3Byb2R1Y3RWMihwcm9kdWN0SWQ6JHByb2R1Y3RJZClAaW5jbHVkZShpZjokc2hvdWxkVXNlR3FsUHJvZHVjdFNjaGVtYSl7cHJvZHVjdHsuLi5yZWFkQmFzZVByZWNpc2lvbkFUU0ZyYWdtZW50LHByb2R1Y3REZXRhaWxze19fdHlwZW5hbWUsLi4ub24gU3BvdFByb2R1Y3REZXRhaWxze2Jhc2VDdXJyZW5jeUlkfX0saWR9LHByb2R1Y3REZXRhaWxze19fdHlwZW5hbWUsLi4ub24gVmlld2VyU3BvdFByb2R1Y3REZXRhaWxze2Jhc2VBc3NldHsuLi5yZWFkQXZhaWxhYmxlVG9UcmFkZUJhbGFuY2VGcm9tVmlld2VyQXNzZXRBVFNGcmFnbWVudCxpZH19fSxpZH19LGlkfX1mcmFnbWVudCB1c2VDZWZpQXZhaWxhYmxlVG9UcmFkZUZvckJhc2VBbmRRdW90ZUFUU0ZyYWdtZW50IG9uIFF1ZXJ5ey4uLnVzZUJhc2VDZWZpQXZhaWxhYmxlVG9UcmFkZUFUU0ZyYWdtZW50LC4uLnVzZVF1b3RlQ2VmaUF2YWlsYWJsZVRvVHJhZGVBVFNGcmFnbWVudCwuLi51c2VVc2RjQ2VmaUF2YWlsYWJsZVRvVHJhZGVBVFNGcmFnbWVudH1mcmFnbWVudCB1c2VHZXRBbGlhc1F1b3RlQ2VmaUF2YWlsYWJsZVRvVHJhZGVBVFNGcmFnbWVudCBvbiBRdWVyeXt2aWV3ZXJ7cmV0YWlsQnJva2VyYWdle3Byb2R1Y3RWMihwcm9kdWN0SWQ6JHByb2R1Y3RJZClAaW5jbHVkZShpZjokc2hvdWxkVXNlR3FsUHJvZHVjdFNjaGVtYSl7YWxpYXNUb3twcm9kdWN0e3F1b3RlQ3VycmVuY3lJZCxpZH0sLi4udXNlR2V0UXVvdGVCYWxhbmNlRnJvbVZpZXdlclByb2R1Y3RBVFNGcmFnbWVudCxpZH0saWR9fSxpZH19ZnJhZ21lbnQgdXNlR2V0UXVvdGVCYWxhbmNlRnJvbVZpZXdlclByb2R1Y3RBVFNGcmFnbWVudCBvbiBWaWV3ZXJSZXRhaWxCcm9rZXJhZ2VQcm9kdWN0VjJ7cHJvZHVjdHtxdW90ZUN1cnJlbmN5SWQsLi4ucmVhZFF1b3RlUHJlY2lzaW9uQVRTRnJhZ21lbnQsaWR9LHF1b3RlQXNzZXRPckN1cnJlbmN5e19fdHlwZW5hbWUsLi4ub24gVGllcnNDdXJyZW5jeXthY2NvdW50cyhwb3J0Zm9saW9DYXRlZ29yeTpQT1JURk9MSU9fQ0FURUdPUllfQUxMKXsuLi5yZWFkQXZhaWxhYmxlVG9UcmFkZUJhbGFuY2VGcm9tRmlhdEFjY291bnRBVFNGcmFnbWVudCxwb3J0Zm9saW97dHlwZSx1dWlkLGlkfSxhc3NldE9yRmlhdEN1cnJlbmN5e19fdHlwZW5hbWUsLi4ub24gVGllcnNDdXJyZW5jeXtjb2RlLGlkfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIFZpZXdlckVxdWl0eXtpZH19LGlkfSxpZH0sLi4ucmVhZEF2YWlsYWJsZVRvVHJhZGVCYWxhbmNlRnJvbUFzc2V0T3JDdXJyZW5jeUFUU0ZyYWdtZW50LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH0sLi4ub24gVmlld2VyRXF1aXR5e2lkfX19ZnJhZ21lbnQgdXNlUXVvdGVDZWZpQXZhaWxhYmxlVG9UcmFkZUFUU0ZyYWdtZW50IG9uIFF1ZXJ5e3ZpZXdlcntxdW90ZUFzc2V0OmFzc2V0QnlTeW1ib2woc3ltYm9sOiRxdW90ZUN1cnJlbmN5SWQpQHNraXAoaWY6JHNraXBRdW90ZUFzc2V0UXVlcnkpey4uLnJlYWRBdmFpbGFibGVUb1RyYWRlQmFsYW5jZUZyb21WaWV3ZXJBc3NldEFUU0ZyYWdtZW50LGlkfSxhbGxQb3J0Zm9saW9GaWF0QWNjb3VudHM6ZmlhdEFjY291bnRzKHBvcnRmb2xpb0NhdGVnb3J5OlBPUlRGT0xJT19DQVRFR09SWV9BTEwpQHNraXAoaWY6JHNraXBGaWF0QWNjb3VudHNGb3JCYWxhbmNlKXsuLi5yZWFkQXZhaWxhYmxlVG9UcmFkZUJhbGFuY2VGcm9tRmlhdEFjY291bnRBVFNGcmFnbWVudCxwb3J0Zm9saW97dHlwZSx1dWlkLGlkfSxhc3NldE9yRmlhdEN1cnJlbmN5e19fdHlwZW5hbWUsLi4ub24gVGllcnNDdXJyZW5jeXtjb2RlLGlkfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIFZpZXdlckVxdWl0eXtpZH19LGlkfSxyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdFYyKHByb2R1Y3RJZDokcHJvZHVjdElkKUBpbmNsdWRlKGlmOiRzaG91bGRVc2VHcWxQcm9kdWN0U2NoZW1hKXsuLi51c2VHZXRRdW90ZUJhbGFuY2VGcm9tVmlld2VyUHJvZHVjdEFUU0ZyYWdtZW50LHF1b3RlQXNzZXRPckN1cnJlbmN5e19fdHlwZW5hbWUsLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfSwuLi5vbiBUaWVyc0N1cnJlbmN5e2lkfSwuLi5vbiBWaWV3ZXJFcXVpdHl7aWR9fSxpZH19LGlkfX1mcmFnbWVudCB1c2VSZWZyZXNoQWNjb3VudEJhbGFuY2VzUG9zaXRpb25zRnJhZ21lbnQgb24gUG9ydGZvbGlve2Jhc2VQb3NpdGlvbjpzcG90UG9zaXRpb25zKGFzc2V0U3ltYm9sOiRiYXNlQ3VycmVuY3lJZCxmaXJzdDoxKXtlZGdlc3tub2Rle2F2YWlsYWJsZVRvVHJhZGVDcnlwdG97YW1vdW50LGN1cnJlbmN5LGlkfSxpZH19fSxxdW90ZVBvc2l0aW9uOnNwb3RQb3NpdGlvbnMoYXNzZXRTeW1ib2w6JHF1b3RlQ3VycmVuY3lJZCxmaXJzdDoxKXtlZGdlc3tub2Rle2F2YWlsYWJsZVRvVHJhZGVDcnlwdG97YW1vdW50LGN1cnJlbmN5LGlkfSxpZH19fSx1c2RjUG9zaXRpb246c3BvdFBvc2l0aW9ucyhhc3NldFN5bWJvbDoiVVNEQyIsZmlyc3Q6MSlAc2tpcChpZjokc2tpcFVzZGMpe2VkZ2Vze25vZGV7YXZhaWxhYmxlVG9UcmFkZUNyeXB0b3thbW91bnQsY3VycmVuY3ksaWR9LGlkfX19fWZyYWdtZW50IHVzZVVzZGNDZWZpQXZhaWxhYmxlVG9UcmFkZUFUU0ZyYWdtZW50IG9uIFF1ZXJ5ey4uLnVzZUdldEFsaWFzUXVvdGVDZWZpQXZhaWxhYmxlVG9UcmFkZUFUU0ZyYWdtZW50LHZpZXdlcnt1c2RjQXNzZXQ6YXNzZXRCeVN5bWJvbChzeW1ib2w6IlVTREMiKUBza2lwKGlmOiRza2lwVXNkYyl7Li4ucmVhZEF2YWlsYWJsZVRvVHJhZGVCYWxhbmNlRnJvbVZpZXdlckFzc2V0QVRTRnJhZ21lbnQsaWR9LHJldGFpbEJyb2tlcmFnZXtwcm9kdWN0VjIocHJvZHVjdElkOiRwcm9kdWN0SWQpQGluY2x1ZGUoaWY6JHNob3VsZFVzZUdxbFByb2R1Y3RTY2hlbWEpe3Byb2R1Y3R7cHJvZHVjdElkLGlkfSxpZH19LGlkfX1gLCI2MzM3NTM0MTNhZGRmM2FjOWVjYTlkNDNmYzI4Y2RhNjk5NzcxN2MzZTg5ZjExZjJiNzZkMDcxNTg5ZGZhZjQyIjpgcXVlcnkgUHJlZGljdGlvbk1hcmtldHNEeW5hbWljRmVhdHVyZWRFdmVudFF1ZXJ5e3VpQ29tcG9uZW50c0J5U3VyZmFjZUxvZ2dlZE91dChzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfTE9XX1BSRURJQ1RJT05fRkVBVFVSRURfRVZFTlRTIixmaXJzdDozMCl7ZWRnZXN7bm9kZXtleHBpcmF0aW9uVHMsc3RhcnRUcyxjb21wb25lbnRKc29uLGNhdGVnb3J5TmFtZSx0ZXh0VmFyaWFibGVze2VudHJpZXN7a2V5LHZhbHVlfX0saWR9fSxpZH19YCwiNjQzZTNmMjM1YjM5YzM4M2E2NGIxM2Q0MWY3NjE4NzVmYTA2NjAwNmExNGY5ODBjNTI2MDJkZjQ4NDMxZTQxOSI6YHF1ZXJ5IFByb21vQ29kZVF1ZXJ5KCRwcm9tb0NvZGU6U3RyaW5nISwkY291bnRyeUNvZGU6U3RyaW5nISl7cHJvbW9Db2RlRGF0YUZyb21OdXgocmVmZXJDb2RlOiRwcm9tb0NvZGUsY291bnRyeUNvZGU6JGNvdW50cnlDb2RlKXtjb2RlVHlwZSxlcnJvckNvZGV9fWAsIjY5MmQwM2EwNGNjNWQzNTZhN2VhNjVjNDk0ZWUxYjUzMmQ2YjE4MmY2YTc3ZDhkY2E2NWEyYWUzMzhkZTg0MmQiOmBxdWVyeSBUYXhJbmZvRWRpdFN0ZXBRdWVyeSgkY291bnRyeUNvZGVzOltTdHJpbmchXSEpe3RpblZhbGlkYXRpb25SdWxlcyhjb3VudHJ5Q29kZXM6JGNvdW50cnlDb2Rlcyl7cmVnZXhQYXR0ZXJuLGFsdGVybmF0ZVBhdHRlcm5zLGVycm9yTWVzc2FnZSxpc1JlcXVpcmVkLHRpbk5hbWUscGxhY2Vob2xkZXJzfX1gLCI2OTc0ODk3NDdhODE1MTIzMzhlOTkzMTFmZmIzYmQxNWYwNzgzYjY5MDBiYzQ1NGI5NGM1YTNhYmU4NDBlZmFjIjpgcXVlcnkgRnV0dXJlc0NvbnRyYWN0T3ZlcnZpZXdNb2RhbFF1ZXJ5KCRyZWxldmFudFRhZ3M6W1N0cmluZyFdISwkaW5jbHVkZUNiZnNlOkJvb2xlYW4hKXt2aWV3ZXJAaW5jbHVkZShpZjokaW5jbHVkZUNiZnNlKXtyZXRhaWxEZXJpdmF0aXZlc3tmdXR1cmVzUGVybWlzc2lvbnN7ZW50aXR5fX0saWR9LHVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlOlVJX0NPTVBPTkVOVF9TVVJGQUNFX0ZVVFVSRVNfQ09OVFJBQ1RfT1ZFUlZJRVcsZmlsdGVyOntyZWxldmFudFRhZ3NGaWx0ZXI6e3JlbGV2YW50VGFnczokcmVsZXZhbnRUYWdzfX0pe2VkZ2Vze25vZGV7cmVsZXZhbnRUYWdzLGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIEZ1dHVyZXNDb250cmFjdE92ZXJ2aWV3e3VuZGVybHlpbmdBc3NldCxjb250cmFjdE5hbWV7dGV4dH0sYWJvdXRUaXRsZXt0ZXh0fSxhYm91dHt0ZXh0fSxjb250cmFjdFNpemVUaXRsZXt0ZXh0fSxjb250cmFjdFNpemV7dGV4dH0sbWF4UHJpY2VJbmNyZW1lbnRUaXRsZXt0ZXh0fSxtYXhQcmljZUluY3JlbWVudHt0ZXh0fSxtaW5UaWNrVmFsdWVUaXRsZXt0ZXh0fSxtaW5UaWNrVmFsdWV7dGV4dH0sbGlzdGVkQ29udHJhY3RzVGl0bGV7dGV4dH0sbGlzdGVkQ29udHJhY3Rze3RleHR9LGxhc3RUcmFkaW5nRGF0ZVRpdGxle3RleHR9LGxhc3RUcmFkaW5nRGF0ZXt0ZXh0fSxwcm9kdWN0Q29kZVRpdGxle3RleHR9LHByb2R1Y3RDb2Rle3RleHR9LGZ1bmRpbmdTZXR0bGVtZW50VGl0bGV7dGV4dH0sZnVuZGluZ1NldHRsZW1lbnR7dGV4dH0sZGVsaXZlcnlNZXRob2RUaXRsZXt0ZXh0fSxkZWxpdmVyeU1ldGhvZHt0ZXh0fSxyZXNvdXJjZXNUaXRsZXt0ZXh0fSxyZXNvdXJjZXN7dGV4dH0scmVzb3VyY2VzVXJsfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fSxpZH19LGlkfX1gLCI2YTQyNjc3MGMwNTk1N2MwYjVlZDhiMjgyMjEyYjYyOWM1YTM3MjZlNGU0YWZjY2Y3MTQ1ZmUwNzE1ZGQwZDRhIjpgcXVlcnkgVzhGb3JtR1FMTWV0YWRhdGFRdWVyeXt3OEZvcm1NZXRhZGF0YXtmb3JtSWQsc3RhdHVzfX1gLCI2YWI4N2FhNjAyZjhlOTQ3ZDY5MDI4YjVlMmJkNjUyMjgyYzAwMDVlYjNmM2UwODA5MTYzNTFmNmE5MWE2NDg3IjpgbXV0YXRpb24gdXNlVHJpZ2dlckNiZnNlSGlnaFJpc2tFdmFsdWF0aW9uTXV0YXRpb257dHJpZ2dlckNCRlNFSGlnaFJpc2tFdmFsdWF0aW9ue19fdHlwZW5hbWUsLi4ub24gVHJpZ2dlckNCRlNFSGlnaFJpc2tFdmFsdWF0aW9uU3VjY2Vzc3tfX3R5cGVuYW1lLGR1bW15fSwuLi5vbiBHZW5lcmljRXJyb3J7bWVzc2FnZSxjb2RlfX19YCwiNmNiNjIxMGIxMjc4N2ExYmIyOTMwZWZmY2ZjYzlmYTI5MzZkNTk5MDAwMWQwNTYxZWIxMzdkZjM5NTA2Y2M2MyI6YHF1ZXJ5IFVPQkNvbXBsaWFuY2VRdWVzdGlvbnNRdWVyeSgkcXVlc3Rpb25UeXBlOkdlbmVyaWNDb21wbGlhbmNlUXVlc3Rpb25UeXBlISl7dmlld2Vye2dlbmVyaWNDb21wbGlhbmNlUXVlc3Rpb25zQnlUeXBlKHR5cGU6JHF1ZXN0aW9uVHlwZSl7aGVhZGluZyxhbnN3ZXJNZXRhRGF0YXtoYXNFeGNlZWRlZE1heEF0dGVtcHRzfSxxdWVzdGlvbnN7dXVpZCx0aXRsZSxzdWJ0aXRsZSxpbnB1dFR5cGUsb3B0aW9uc3t2YWx1ZSx0aXRsZSxzdWJ0aXRsZX0sbGFzdEF0dGVtcHRlZEFuc3dlcnN7b3B0aW9ue3ZhbHVlLHRpdGxlLHN1YnRpdGxlfX0saWR9fSxpZH19YCwiNmQwNjJkZjA0ZTU2NzJkMDkyMWFkZjFhYmI1N2I2MGM3OTQ2YmU0YzQxNTYwYTQ5NjEzNDlmM2NlY2U0N2M5NyI6YG11dGF0aW9uIHVzZVN1Ym1pdENvbXBsaWFuY2VBbnN3ZXJzTXV0YXRpb24oJGlucHV0OlN1Ym1pdEdlbmVyaWNDb21wbGlhbmNlQW5zd2Vyc0J5VHlwZUlucHV0ISl7c3VibWl0R2VuZXJpY0NvbXBsaWFuY2VBbnN3ZXJzQnlUeXBlKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBTdWJtaXRHZW5lcmljQ29tcGxpYW5jZUFuc3dlcnNCeVR5cGVTdWNjZXNze3R5cGUsYW5zd2Vyc3tvcHRpb257dmFsdWUsdGl0bGUsc3VidGl0bGV9fSxtZXRhRGF0YXtjcmVhdGVkQXQsdXBkYXRlZEF0LHN0YXR1cyxudW1PZkF0dGVtcHRzLGF0dGVtcHRzTG9ja2VkVW50aWwsaGFzRXhjZWVkZWRNYXhBdHRlbXB0c319LC4uLm9uIEdlbmVyaWNFcnJvcnttZXNzYWdlLGNvZGV9fX1gLCI2ZDRkNDEzNGZiOWVjNWY3N2UxNmFmMmFiZWRkMmI5MDVmMzVhZmZhZmVjNjgxZmZlOWQ0Mzk3YmYzZDUwZjdiIjpgbXV0YXRpb24gdXNlVklQU3RhdHVzTWF0Y2hGb3JtQVRTTXV0YXRpb24oJGlucHV0OlJldGFpbEJyb2tlcmFnZUNyZWF0ZVZJUFN0YXR1c01hdGNoSW5xdWlyeUlucHV0ISl7cmV0YWlsQnJva2VyYWdlQ3JlYXRlVklQU3RhdHVzTWF0Y2hJbnF1aXJ5KGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBSZXRhaWxCcm9rZXJhZ2VDcmVhdGVWSVBTdGF0dXNNYXRjaElucXVpcnlTdWNjZXNze3ZpZXdlcntpZH19LC4uLm9uIEVycm9ye19faXNFcnJvcjpfX3R5cGVuYW1lLG1lc3NhZ2UsY29kZX19fWAsIjZkZDk5MTM2NDg3OTJiMDllNmUxNDIzM2ZlMWNlYzc4ZjUyZTYyMTcwOTFmMWYxZDU0OTUxNmU5YTEwODhjZjAiOmBtdXRhdGlvbiBhdXRob3JpemVTZXJ2ZXJXYWxsZXRSZWdpc3RlclR3c011dGF0aW9uKCRpbnB1dDpBdXRob3JpemVTZXJ2ZXJXYWxsZXRSZWdpc3RlclRXU0lucHV0ISl7YXV0aG9yaXplU2VydmVyV2FsbGV0UmVnaXN0ZXJUV1MoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIEF1dGhvcml6ZVNlcnZlcldhbGxldFJlZ2lzdGVyVFdTU3VjY2Vzc3tzaWduZWRQYXlsb2FkfSwuLi5vbiBTZXJ2ZXJXYWxsZXRFcnJvcnttZXNzYWdlLGNvZGV9fX1gLCI2ZTE4NzIwNmU3OWY0MGFhZWJkMGIyNTUxMTllZDhjNDEyYjk4MjQxNjY5MTI2YmU0NzE0MDI5YWEwNzlmZjk2IjpgbXV0YXRpb24gdXNlQ3JlYXRlSW50eFRyYW5zZmVyQVRTTXV0YXRpb24oJGlucHV0OkNyZWF0ZUludHhUcmFuc2ZlcklucHV0ISl7Y3JlYXRlSW50eFRyYW5zZmVyKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBDcmVhdGVJbnR4VHJhbnNmZXJTdWNjZXNze2ludHhUcmFuc2ZlcntpZH19LC4uLm9uIEdlbmVyaWNFcnJvcntjb2RlLG1lc3NhZ2V9fX1gLCI2ZTdkYmZlMTI0MGFiYjcyZTE5Yzc1NmUzZmNjMjhiNjIwZmE5YmZjNjViOWM0MmU4OTJhMDY4NjFiMjM5YjdjIjpgcXVlcnkgVGF4SW5mb1N0ZXBUaW5WYWxpZGF0aW9uUnVsZXNGcmFnbWVudFF1ZXJ5KCRjb3VudHJ5Q29kZXM6W1N0cmluZyFdISl7Li4uVGF4SW5mb1N0ZXBUaW5WYWxpZGF0aW9uUnVsZXNGcmFnbWVudH1mcmFnbWVudCBUYXhJbmZvU3RlcFRpblZhbGlkYXRpb25SdWxlc0ZyYWdtZW50IG9uIFF1ZXJ5e3RpblZhbGlkYXRpb25SdWxlcyhjb3VudHJ5Q29kZXM6JGNvdW50cnlDb2Rlcyl7cmVnZXhQYXR0ZXJuLGVycm9yTWVzc2FnZSxpc1JlcXVpcmVkfX1gLCI2ZjBiMGQyZjM4NzRmOTFiYjg5OTkzMTdmMmM5OWQwOTBkZWJkNTBhNDg2MjY4N2I1NTljYmYyN2ZkYjZjNzUwIjpgcXVlcnkgQ2Jmc2VEdWVEaWxpZ2VuY2VGbG93UXVlcnl7dmlld2Vye2Rlcml2YXRpdmVzT25ib2FyZGluZ3tkdWVEaWxpZ2VuY2VRdWVzdGlvbnNWMntxdWVzdGlvbnN7cXVlc3Rpb25OdW1iZXIsaGVhZGluZyx0eXBlLG9wdGlvbnN7bGFiZWw6dmFsdWUsdmFsdWU6bGFiZWx9fX19LGlkfX1gLCI2ZjkyNGI2OTg0OTExZDVjYmEwYzkyODgzZGRmMWQ0N2FkMTEwYjZiZWUwZTg0NzhjNGUzYjI4ZTdjODE0MGNlIjpgbXV0YXRpb24gdXNlQ29uZmlybURlcml2YXRpdmVzT25ib2FyZGluZ1NTTlZhbGlkaXR5TXV0YXRpb24oJGlucHV0OkNvbmZpcm1EZXJpdmF0aXZlc09uYm9hcmRpbmdTU05WYWxpZGl0eVYzSW5wdXQhKXtjb25maXJtRGVyaXZhdGl2ZXNPbmJvYXJkaW5nU1NOVmFsaWRpdHlWMyhpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gQ29uZmlybURlcml2YXRpdmVzT25ib2FyZGluZ1NTTlZhbGlkaXR5VjNTdWNjZXNze3ZhbGlkaXR5fSwuLi5vbiBHZW5lcmljRXJyb3J7Y29kZSxtZXNzYWdlfX19YCwiNzBjMGRhNTUyM2NiNmViYzVkODAxMDJkOWY1ODZiMDZjYWYyZjk2ZWQ4NWZhYzk0ZTFkZWY2NjgzZWZkMGEyNSI6YG11dGF0aW9uIHVzZVVwZGF0ZURlcml2YXRpdmVzT25ib2FyZGluZ0lkdlByb2ZpbGVVT0JNdXRhdGlvbigkaW5wdXQ6VXBkYXRlRGVyaXZhdGl2ZXNPbmJvYXJkaW5nSWR2UHJvZmlsZUlucHV0ISl7dXBkYXRlRGVyaXZhdGl2ZXNPbmJvYXJkaW5nSWR2UHJvZmlsZShpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gVXBkYXRlRGVyaXZhdGl2ZXNPbmJvYXJkaW5nSWR2UHJvZmlsZVN1Y2Nlc3N7ZHVtbXl9LC4uLm9uIEdlbmVyaWNFcnJvcntjb2RlLG1lc3NhZ2V9fX1gLCI3MmMzOTNmOGQyNGRkYTNkOWNmMzkwYThkYzQxMTFlNzAzZDMxYTYwMDhmYzI2ODk5YjQ2YzQ1ZjMwOGM3YTA4IjpgcXVlcnkgdXNlRXhwb3J0VHJhbnNhY3Rpb25GaWx0ZXJDaGVja1F1ZXJ5KCRhY2NvdW50VXVpZDpVdWlkISwkZmlsdGVyVHlwZTpbVHJhbnNhY3Rpb25GaWx0ZXJUeXBlSW5wdXQhXSwkc3RhdHVzOltUcmFuc2FjdGlvblN0YXR1c0lucHV0IV0sJHN0YXJ0RGF0ZTpUaW1lLCRlbmREYXRlOlRpbWUpe3ZpZXdlcntjcmVkaXRDYXJke3RyYW5zYWN0aW9ucyhmaXJzdDoxLGZpbHRlclR5cGU6JGZpbHRlclR5cGUsc3RhdHVzOiRzdGF0dXMsc3RhcnREYXRlOiRzdGFydERhdGUsZW5kRGF0ZTokZW5kRGF0ZSxhY2NvdW50VXVpZDokYWNjb3VudFV1aWQpe2VkZ2Vze19fdHlwZW5hbWV9fSxpZH0saWR9fWAsIjczYzNmNDBlMWNjZDE3ZmMzOWQ4YWVmMzViMmZlZTM3YmM5M2IxMTlmZDYzZjZkYThiOGUyYmNmZGE4MWMyYjQiOmBtdXRhdGlvbiBXOEZvcm1HUUxNdXRhdGlvbntjcmVhdGVXOHtfX3R5cGVuYW1lLC4uLm9uIENyZWF0ZVc4U3VjY2Vzc3tmb3JtSWQsc3RhdHVzLHByZWZpbGxlZEZvcm1EYXRhe3RheFJlc2lkZW5jeUNvdW50cnksdGluLGZvcmVpZ25UaW4sY2l0aXplbnNoaXAsaXNUcmVhdHlDbGFpbWVkLGZpcnN0TmFtZSxsYXN0TmFtZSxkYXRlT2ZCaXJ0aCxwbGFjZU9mQmlydGgsaXNTaWduZWQsc2lnbkRhdGUscGVybWFuZW50UmVzaWRlbmNlQWRkcmVzc3tsaW5lMSxsaW5lMixjaXR5LHN0YXRlLHBvc3RhbENvZGUsY291bnRyeXtjb2RlLG5hbWV9fSxtYWlsaW5nQWRkcmVzc3tsaW5lMSxsaW5lMixjaXR5LHN0YXRlLHBvc3RhbENvZGUsY291bnRyeXtjb2RlLG5hbWV9fX0sdmlld2Vye19fdHlwZW5hbWUsaWR9fSwuLi5vbiBDcmVhdGVXOEFjdGlvbmFibGVFcnJvcntjb3JyZWxhdGlvbklkLHRpdGxlLGRlc2NyaXB0aW9ufX19YCwiNzQ3YTk3YjNmZmZhNzc3YTBhMjNkMmQwNjE4ZDI4YjM2ZTlhMzA0MjIxN2QxMjA3ZmIyYjBmNTMxNmZiMWVjNSI6YHF1ZXJ5IHVzZVByZWRpY3Rpb25RdWVzdGlvbnNRdWVyeSgkZXZlbnRUaWNrZXI6VGhpcmRQYXJ0eUlkU3RyaW5nISwkcHJvZHVjdHNTb3J0T3B0aW9uOlJiYVByb2R1Y3RzU29ydE9wdGlvbiEsJHByb2R1Y3RzU29ydE9yZGVyOlNvcnRPcmRlciEpe3JldGFpbEJyb2tlcmFnZXtpbnN0cnVtZW50R3JvdXAoaW5zdHJ1bWVudEdyb3VwSWQ6JGV2ZW50VGlja2VyLHByb2R1Y3RzU29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHByb2R1Y3RzU29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaXRsZSxldmVudFN1YnRpdGxlLG1hcmtldFR5cGV9LHByb2R1Y3Rze3ByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3t5ZXNUaXRsZXMseWVzU3VidGl0bGVzfSxpZH0saWR9fX1gLCI3NTE3NTg1M2UyYzRhMmM0ZjgyNTQzZTczNDY0YjVkNDM5ZTFhYWYzYjBhMDI1NWNhNmVlZDcwYzA1M2I5ZTMwIjpgbXV0YXRpb24gdXNlVW5pZmllZFN1Ym1pdENvbXBsaWFuY2VBbnN3ZXJzTXV0YXRpb24oJGlucHV0OlN1Ym1pdEdlbmVyaWNDb21wbGlhbmNlQW5zd2Vyc0J5VHlwZUlucHV0ISl7c3VibWl0R2VuZXJpY0NvbXBsaWFuY2VBbnN3ZXJzQnlUeXBlKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBTdWJtaXRHZW5lcmljQ29tcGxpYW5jZUFuc3dlcnNCeVR5cGVTdWNjZXNze3R5cGUsYW5zd2Vyc3tvcHRpb257dmFsdWUsdGl0bGUsc3VidGl0bGV9fSxtZXRhRGF0YXtjcmVhdGVkQXQsdXBkYXRlZEF0LHN0YXR1cyxudW1PZkF0dGVtcHRzLGF0dGVtcHRzTG9ja2VkVW50aWwsaGFzRXhjZWVkZWRNYXhBdHRlbXB0c319LC4uLm9uIEdlbmVyaWNFcnJvcnttZXNzYWdlLGNvZGV9fX1gLCI3NTIwYjY4M2VkYWRkNzUxZThhODg5MzEyNzVhZDg0OTUyMTcxYTY2NWY0MGUwNGE5ZWFkNGQ3NTNjOTA2NDljIjpgcXVlcnkgdXNlR2V0UHJpY2VDaGFydERhdGFWMlF1ZXJ5KCRwcm9kdWN0SWQ6VGhpcmRQYXJ0eUlkU3RyaW5nISl7Y2hhcnRQcmljZXM6cmV0YWlsQnJva2VyYWdle2xhdGVzdFByaWNlOnByb2R1Y3RTdGF0cyhwcm9kdWN0SWQ6JHByb2R1Y3RJZCl7cHJpY2UsaWR9LGhvdXI6cHJpY2VDaGFydChwcm9kdWN0SWQ6JHByb2R1Y3RJZCxyZXNvbHV0aW9uOlJFU09MVVRJT05fSE9VUil7cHJpY2VQb2ludHN7cHJpY2UsdGltZXN0YW1wfX0sZGF5OnByaWNlQ2hhcnQocHJvZHVjdElkOiRwcm9kdWN0SWQscmVzb2x1dGlvbjpSRVNPTFVUSU9OX0RBWSl7cHJpY2VQb2ludHN7cHJpY2UsdGltZXN0YW1wfX0sd2VlazpwcmljZUNoYXJ0KHByb2R1Y3RJZDokcHJvZHVjdElkLHJlc29sdXRpb246UkVTT0xVVElPTl9XRUVLKXtwcmljZVBvaW50c3twcmljZSx0aW1lc3RhbXB9fSxtb250aDpwcmljZUNoYXJ0KHByb2R1Y3RJZDokcHJvZHVjdElkLHJlc29sdXRpb246UkVTT0xVVElPTl9NT05USCl7cHJpY2VQb2ludHN7cHJpY2UsdGltZXN0YW1wfX0seWVhcjpwcmljZUNoYXJ0KHByb2R1Y3RJZDokcHJvZHVjdElkLHJlc29sdXRpb246UkVTT0xVVElPTl9ZRUFSKXtwcmljZVBvaW50c3twcmljZSx0aW1lc3RhbXB9fSxhbGw6cHJpY2VDaGFydChwcm9kdWN0SWQ6JHByb2R1Y3RJZCxyZXNvbHV0aW9uOlJFU09MVVRJT05fQUxMKXtwcmljZVBvaW50c3twcmljZSx0aW1lc3RhbXB9fX19YCwiNzZlYzdkODVjOGRiZjM4YWNlOTMwNzEyNzQ4ZWYzNmZiOTAyMDIyZGQ3MWZjN2U5Y2EyYmI5NTMyYTE3M2I3OSI6YG11dGF0aW9uIHVzZUV4cG9ydFRyYW5zYWN0aW9uc011dGF0aW9uTXV0YXRpb24oJGlucHV0OkV4cG9ydFRyYW5zYWN0aW9uc0lucHV0ISl7ZXhwb3J0VHJhbnNhY3Rpb25zKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBFeHBvcnRUcmFuc2FjdGlvbnNTdWNjZXNze3dhc0V4cG9ydEluaXRpYXRlZH0sLi4ub24gQ3JlZGl0Q2FyZEFjdGlvbmFibGVFcnJvcnt0aXRsZSxkZXNjcmlwdGlvbixyYXRlTGltaXRSZXNldEF0fX19YCwiNzcwN2MyYjE3NmIyYzdmYzc0OTU0YzhlZDkyMGZhMTM2OTg1ZDU0OTFlYzkxYTgyOWZkMTRmNmI5MzBlYzk2YiI6YG11dGF0aW9uIFVPQlZlcmlmeVVzZXJBY2NyZWRpdGF0aW9uTXV0YXRpb24oJGlucHV0OlZlcmlmeVVzZXJBY2NyZWRpdGF0aW9uSW5wdXQhKXt2ZXJpZnlVc2VyQWNjcmVkaXRhdGlvbihpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gVmVyaWZ5VXNlckFjY3JlZGl0YXRpb25TdWNjZXNze3VzZXJBY2NyZWRpdGF0aW9ue3V1aWQsc3RhdHVzLGV4cGlyZXNBdCxpZH19LC4uLm9uIEdlbmVyaWNFcnJvcnttZXNzYWdlfX19YCwiNzdjMjQwYjlmOGJhMWRjMjVlN2Q2ZGFiZmIwZjVjYTlhYzcyODdhYWZhZGJmNzEyZjY0OWI3YjM1OWE2OGU5NyI6YHF1ZXJ5IFVuaWZpZWRJRFZMYW5kaW5nUXVlcnl7Li4udXNlVGltZWJveEluY2VudGl2ZX1mcmFnbWVudCB1c2VUaW1lYm94SW5jZW50aXZlIG9uIFF1ZXJ5e3ZpZXdlcnt1c2VySW5jZW50aXZlU3RhdHVze2lzRWxpZ2libGUsaW5jZW50aXZlRGV0YWlsc3thbW91bnQsc291cmNlQ3VycmVuY3ksdGFyZ2V0Q3VycmVuY3l9LGV4cGlyZXNBdH0saWR9fWAsIjc5MzI1MTBlMzQ1MmNiZjkzMzFkYjc2YmI5MmM5ZmYxMjJiM2U2MDA0MTY4Mzk0NGQzNzVmYTRiOGJiZDEzN2MiOmBxdWVyeSBDYmZzZU9uYm9hcmRpbmdRdWVyeXt2aWV3ZXJ7cG9saWN5UmVzdHJpY3Rpb25zKGFjdGlvbjpmdXR1cmVzX3RyYWRpbmcpe3Jlc3RyaWN0aW9uTmFtZSxpZH0sZGVyaXZhdGl2ZXNPbmJvYXJkaW5ne2FjY291bnRTdGF0dXNWM3tfX3R5cGVuYW1lLC4uLm9uIERlcml2YXRpdmVzVXNlckFjY291bnRTdGF0dXNWM1N1Y2Nlc3N7c3RhdHVzfX0sLi4uQ2Jmc2VEdWVEaWxpZ2VuY2VTY3JlZW5GcmFnbWVudH0saWR9fWZyYWdtZW50IENiZnNlRHVlRGlsaWdlbmNlU2NyZWVuRnJhZ21lbnQgb24gRGVyaXZhdGl2ZXNPbmJvYXJkaW5ne2R1ZURpbGlnZW5jZVF1ZXN0aW9uc1Yye2hlYWRpbmcscXVlc3Rpb25ze3F1ZXN0aW9uTnVtYmVyLGhlYWRpbmcsdHlwZSxvcHRpb25ze2xhYmVsLHZhbHVlfX19fWAsIjdhNWVmZjk1YTY0ODkxYWM1MDZlNDkwNDMxMTlhM2Q1OTYxMGZhNzFmNThhYWI5ZDI4NDZhYjFmMDU2ZTg0ZGEiOmBtdXRhdGlvbiBDaGF0Qm9keUNyZWF0ZUNvbnZlcnNhdGlvbkV2ZW50TXV0YXRpb24oJGlucHV0OkNyZWF0ZUNvbnZlcnNhdGlvbkV2ZW50SW5wdXQhKXtjcmVhdGVDb252ZXJzYXRpb25FdmVudChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gQ3JlYXRlQ29udmVyc2F0aW9uRXZlbnRTdWNjZXNze2NvbnZlcnNhdGlvbkV2ZW50e25vZGV7Li4uTWVzc2FnZVR5cGVUb1VJUmVuZGVyZXJGcmFnbWVudCxpZH19fSwuLi5vbiBCYWRSZXF1ZXN0RXJyb3J7Y29kZSxtZXNzYWdlfX19ZnJhZ21lbnQgTWVzc2FnZUJ1YmJsZUZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e2lkLHV1aWQscGFydGljaXBhbnR7aWQsZGlzcGxheU5hbWUscGFydGljaXBhbnRUeXBlfSxjcmVhdGVUaW1lLG1lc3NhZ2VDb250ZW50e21lc3NhZ2UscmVwbGllc3tsYWJlbCxsaW5rLG1lc3NhZ2VUb1B1Ymxpc2h9LHJlZmVyZW5jZUxpbmtze3RpdGxlLGxpbmt9LGlzUmVhY3Rpb25zRW5hYmxlZCxleHRyYUVsZW1lbnRUeXBlLGV4dHJhRWxlbWVudFBheWxvYWR9LGZpbGVzTWV0YWRhdGF7ZmlsZXN7YXR0YWNobWVudElkLGZpbGVOYW1lfX19ZnJhZ21lbnQgTWVzc2FnZVR5cGVUb1VJUmVuZGVyZXJGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHt0eXBlLC4uLk1lc3NhZ2VCdWJibGVGcmFnbWVudCwuLi5QYXJ0aWNpcGFudEJ1YmJsZUZyYWdtZW50fWZyYWdtZW50IFBhcnRpY2lwYW50QnViYmxlRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7cGFydGljaXBhbnR7ZGlzcGxheU5hbWUscGFydGljaXBhbnRUeXBlLGlkfX1gLCI3YjhiODJiNzE3MGMwOWE4YTNkMGY0ZjE5NDBkNDcwODAyNTE0N2E3MTcwN2I0M2NjZjk3ZDU3NjQ3ZmFiNTExIjpgbXV0YXRpb24gdXNlVU9CQWNjZXB0RnV0dXJlc0FncmVlbWVudE11dGF0aW9uKCRpbnB1dDpBY2NlcHRGdXR1cmVzQWdyZWVtZW50SW5wdXQhKXthY2NlcHRGdXR1cmVzQWdyZWVtZW50KGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBBY2NlcHRGdXR1cmVzQWdyZWVtZW50U3VjY2Vzc3tkdW1teX19fWAsIjdkOGE2ODliZDdmOGEyNThkNzJmNGMwNjgxMzkwYTcyNjhhYjMzMmE0ZThmNzE2MTVkMDI0ZmEyNmY5YTliNjUiOmBxdWVyeSBTZ1Jpc2tBc3Nlc3NtZW50Rmxvd1F1ZXJ5KCRxdWVzdGlvblR5cGU6R2VuZXJpY0NvbXBsaWFuY2VRdWVzdGlvblR5cGUhKXt2aWV3ZXJ7Z2VuZXJpY0NvbXBsaWFuY2VRdWVzdGlvbnNCeVR5cGUodHlwZTokcXVlc3Rpb25UeXBlKXtxdWVzdGlvbnN7dXVpZCx0aXRsZSxjb3JyZWN0QW5zd2VycyxvcHRpb25ze3ZhbHVlLHRpdGxlfSxpZH19LGdlbmVyaWNDb21wbGlhbmNlQW5zd2Vyc0J5UXVlc3Rpb25UeXBlKHR5cGU6JHF1ZXN0aW9uVHlwZSl7bWV0YURhdGF7c3RhdHVzfX0scmVtZWRpYXRpb25BbGVydHt0aXRsZX0saWR9fWAsIjdkZDM5ZjViN2Q5ZDI1MGEyY2RjZGIwMDYxYWFmYTQyNTY3MDZmM2NhMDU3OTBjMDZiY2E1ZDI4MTU4MzQ5YjQiOmBxdWVyeSB1c2VQcmVkaWN0aW9uTWFya2V0c0NoYXJ0RGF0YVF1ZXJ5KCRjaGFydGVkTWFya2V0UHJvZHVjdElkczpbVGhpcmRQYXJ0eUlkU3RyaW5nIV0hLCRpbmNsdWRlSG91cjpCb29sZWFuISwkaW5jbHVkZURheTpCb29sZWFuISwkaW5jbHVkZVdlZWs6Qm9vbGVhbiEsJGluY2x1ZGVBbGw6Qm9vbGVhbiEpe3JldGFpbEJyb2tlcmFnZXtwcmljZUNoYXJ0c0hvdXI6cHJpY2VDaGFydHMocHJvZHVjdElkczokY2hhcnRlZE1hcmtldFByb2R1Y3RJZHMscmVzb2x1dGlvbjpSRVNPTFVUSU9OX0hPVVIpQGluY2x1ZGUoaWY6JGluY2x1ZGVIb3VyKXtwcm9kdWN0SWQscHJpY2VQb2ludHN7cHJpY2UsdGltZXN0YW1wfX0scHJpY2VDaGFydHNEYXk6cHJpY2VDaGFydHMocHJvZHVjdElkczokY2hhcnRlZE1hcmtldFByb2R1Y3RJZHMscmVzb2x1dGlvbjpSRVNPTFVUSU9OX0RBWSlAaW5jbHVkZShpZjokaW5jbHVkZURheSl7cHJvZHVjdElkLHByaWNlUG9pbnRze3ByaWNlLHRpbWVzdGFtcH19LHByaWNlQ2hhcnRzV2VlazpwcmljZUNoYXJ0cyhwcm9kdWN0SWRzOiRjaGFydGVkTWFya2V0UHJvZHVjdElkcyxyZXNvbHV0aW9uOlJFU09MVVRJT05fV0VFSylAaW5jbHVkZShpZjokaW5jbHVkZVdlZWspe3Byb2R1Y3RJZCxwcmljZVBvaW50c3twcmljZSx0aW1lc3RhbXB9fSxwcmljZUNoYXJ0c0FsbDpwcmljZUNoYXJ0cyhwcm9kdWN0SWRzOiRjaGFydGVkTWFya2V0UHJvZHVjdElkcyxyZXNvbHV0aW9uOlJFU09MVVRJT05fQUxMKUBpbmNsdWRlKGlmOiRpbmNsdWRlQWxsKXtwcm9kdWN0SWQscHJpY2VQb2ludHN7cHJpY2UsdGltZXN0YW1wfX19fWAsIjdlODdkMWI3YmRmNTg0YmQyNzljNmQwMjZlNTdiMDMzNGM3N2NiMjFiMDBiMmIzOGVlODBhOTUzNjhkZTE4Y2MiOmBxdWVyeSBQYXJ0aWNpcGFudEJ1YmJsZVRlc3RRdWVyeSgkY29udmVyc2F0aW9uVXVpZDpVdWlkISl7dmlld2Vye2NvbnZlcnNhdGlvbkJ5VXVpZCh1dWlkOiRjb252ZXJzYXRpb25VdWlkKXtub2Rle2V2ZW50c3tlZGdlc3tub2Rle2lkLC4uLlBhcnRpY2lwYW50QnViYmxlRnJhZ21lbnR9fX0saWR9fSxpZH19ZnJhZ21lbnQgUGFydGljaXBhbnRCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtwYXJ0aWNpcGFudHtkaXNwbGF5TmFtZSxwYXJ0aWNpcGFudFR5cGUsaWR9fWAsIjdmMzEwYjY4OWY3ZjlkZGY5MjUzMTkzZjljNTlhZTExNmIzYjdhYjNkMzkzMjA1YzRlYWEwMGQ1ZmFiNTM5ZDMiOmBtdXRhdGlvbiB1c2VVcGRhdGVOb3RpZmljYXRpb25QcmVmZXJlbmNlTXV0YXRpb24oJGVuYWJsZWQ6Qm9vbGVhbiEpe3VwZGF0ZU5vdGlmaWNhdGlvblByZWZlcmVuY2UoaW5wdXQ6e3R5cGU6Q0ZUQ19GVVRVUkVTX1RZUEUsY2hhbm5lbDpTTVMsZW5hYmxlZDokZW5hYmxlZH0pe3N1Y2Nlc3N9fWAsIjdmNTNmYWQxZTM4MjY3NTM4NjU5YTY1MjdiZDdmMzY4OTU5YjUzNjE4YThiNmNkMDg2MGFlYmQxMzllZjlmOTUiOmBtdXRhdGlvbiB1c2VVT0JUcmlnZ2VyQ2Jmc2VIaWdoUmlza0V2YWx1YXRpb25NdXRhdGlvbnt0cmlnZ2VyQ0JGU0VIaWdoUmlza0V2YWx1YXRpb257X190eXBlbmFtZSwuLi5vbiBUcmlnZ2VyQ0JGU0VIaWdoUmlza0V2YWx1YXRpb25TdWNjZXNze19fdHlwZW5hbWUsZHVtbXl9LC4uLm9uIEdlbmVyaWNFcnJvcntjb2RlLG1lc3NhZ2V9fX1gLCI4MDIwOTgwMzg5NzFkYWU5OWNhMzY5OTA0ZWY2MDE4YzUzMzczNmE2NzhhYjg3NTU1OGNlOWM5YzRkZWE1ZGMwIjpgcXVlcnkgU3RhbmRhcmRKb2luVjJDb250ZW50UXVlcnkoJHJlZmVyQ29kZTpTdHJpbmchLCRza2lwOkJvb2xlYW4hLCRjb3VudHJ5Q29kZTpTdHJpbmcpey4uLnVzZVZhbGlkYXRlUmVmZXJyYWxDb2RlV2l0aENvdW50cnlGcmFnbWVudCwuLi5Kb2luUGFnZVNpZ25VcENvbnRlbnRWMlF1ZXJ5LC4uLnVzZUpvaW5QYWdlVUlDb250ZW50RnJhZ21lbnR9ZnJhZ21lbnQgSm9pblBhZ2VTaWduVXBDb250ZW50VjJRdWVyeSBvbiBRdWVyeXsuLi51c2VKb2luUGFnZVVJQ29udGVudEZyYWdtZW50fWZyYWdtZW50IHVzZUpvaW5QYWdlVUlDb250ZW50RnJhZ21lbnQgb24gUXVlcnl7dWlDb21wb25lbnRzQnlTdXJmYWNlTG9nZ2VkT3V0KHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9SRUZFUlJBTFNfSFVCIixjYXRlZ29yeU5hbWVzOlsiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX1JFRkVSUkFMU19KT0lOIl0sZmlsdGVyOnt2YXJpYWJsZXNGaWx0ZXI6e3RleHRWYXJpYWJsZXM6e2VudHJpZXM6W3trZXk6InJlZmVyX2NvZGUiLHZhbHVlOiRyZWZlckNvZGV9XX19fSxza2lwQ2FjaGU6dHJ1ZSl7ZWRnZXN7bm9kZXtjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGVUZXh0RmllbGR7dGV4dH0sZGVzY3JpcHRpb25UZXh0RmllbGR7dGV4dH0sdGV4dEZpZWxkc3trZXksdGV4dH0scmljaFRleHRUaXRsZXtodG1sU3RyaW5nfSxyaWNoVGV4dERlc2NyaXB0aW9ue2h0bWxTdHJpbmd9LGZvb3RlclJpY2hUZXh0RmllbGR7aHRtbFN0cmluZ319LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX0saWR9fWZyYWdtZW50IHVzZVZhbGlkYXRlUmVmZXJyYWxDb2RlV2l0aENvdW50cnlGcmFnbWVudCBvbiBRdWVyeXt2YWxpZGF0ZVJlZmVycmFsQ29kZShyZWZlckNvZGU6JHJlZmVyQ29kZSxjb3VudHJ5Q29kZTokY291bnRyeUNvZGUpQHNraXAoaWY6JHNraXApe2lzVmFsaWQsaXNDb3VudHJ5RWxpZ2libGV9fWAsIjgwY2MxNjExODhhNjM1ZThmNzhiODgyMmNiMmM4NTM2ZTU0MmMwNzBjZjgzNzRlZjJmNDY1NDA4YWVjMDRlZGMiOmBxdWVyeSB1c2VFeHBhbmRSZWNpcGllbnRTaGFyZWRRdWVyeSgkaWRlbnRpZmllcjpTdHJpbmchLCRzeW1ib2w6VGlja2VyU3ltYm9sISwkaXNMaWdodG5pbmc6Qm9vbGVhbiEpe3ZpZXdlcntfX3R5cGVuYW1lLHAycFJlY2lwaWVudHN7X190eXBlbmFtZSxleHBhbmRSZWNpcGllbnRWMihpZGVudGlmaWVyOiRpZGVudGlmaWVyLHN5bWJvbDokc3ltYm9sKXtfX3R5cGVuYW1lLC4uLm9uIFJlY2lwaWVudHtfX3R5cGVuYW1lLGlkZW50aWZpZXIsaWRlbnRpZmllclR5cGUsbmFtZVNlcnZpY2VEZXRhaWxze2FkZHJlc3MsYXZhdGFyVXJsLG5hbWUsbmFtZVNlcnZpY2V9LHByb2ZpbGV7YXZhdGFyVXJsLGRpc3BsYXlOYW1lLGVtYWlsLHByb2ZpbGVUeXBlfSxibG9ja2NoYWluRGV0YWlsc3thZGRyZXNzLHR5cGUsZGVzdGluYXRpb25UYWcsdmFsaWROZXR3b3Jrc30sY29tcGF0aWJpbGl0eURldGFpbHN7YXNzZXQsaXNDb21wYXRpYmxlfSxpbnZvaWNlQGluY2x1ZGUoaWY6JGlzTGlnaHRuaW5nKXtfX3R5cGVuYW1lLC4uLm9uIExpZ2h0bmluZ0ludm9pY2VEYXRhe3R5cGUsZXhwaXJlc0F0LG1lbW8sbmV0d29yayxpc0V4cGlyZWQsYW1vdW50Q3J5cHRve3ZhbHVlLGN1cnJlbmN5fSxhbW91bnRGaWF0e3ZhbHVlLGN1cnJlbmN5fX19fSwuLi5vbiBFeHBhbmRSZWNpcGllbnRBY3Rpb25hYmxlRXJyb3J7X190eXBlbmFtZSxjb2RlLGRlc2NyaXB0aW9uLHJlY2lwaWVudElkZW50aWZlcixpbnZvaWNlRGV0YWlsc0BpbmNsdWRlKGlmOiRpc0xpZ2h0bmluZyl7X190eXBlbmFtZSwuLi5vbiBMaWdodG5pbmdJbnZvaWNlRGF0YXthbW91bnRDcnlwdG97Y3VycmVuY3ksdmFsdWV9LGFtb3VudEZpYXR7Y3VycmVuY3ksdmFsdWV9LGV4cGlyZXNBdCxpc0V4cGlyZWQsbWVtbyxuZXR3b3JrLHR5cGV9fX19fSxpZH19YCwiODRkYTI2ZDc0ZDM3MWM0OThhYTYyNjlhZTJjYThlYjU2MGExZDM5OTkxYjM2Yzc1ZDk5OGVmMjkzMWMwOTBkMyI6YHF1ZXJ5IEluZGljaWFGYWlsdXJlV3JhcHBlclF1ZXJ5e3ZpZXdlcntzZWxmQ2VydGlmaWNhdGlvbkluZGljaWFDaGVja1Yye19fdHlwZW5hbWUsLi4ub24gU2VsZkNlcnRpZmljYXRpb25JbmRpY2lhQ2hlY2tSZXN1bHR7Zm9ybUlkLGRlY2xhcmVkVGF4SnVyaXNkaWN0aW9uc3tjb3VudHJ5TmFtZX0saW5kaWNpYUZhaWx1cmVze2NvdW50cnlDb2RlLGNvdW50cnlOYW1lLGZpZWxkcywuLi5JbmRpY2lhRmFpbHVyZUxpc3RfZmFpbHVyZX19LC4uLm9uIFNlbGZDZXJ0aWZpY2F0aW9uSW5kaWNpYUNoZWNrRXJyb3J7ZGVzY3JpcHRpb259fSxpZH19ZnJhZ21lbnQgSW5kaWNpYUZhaWx1cmVMaXN0X2ZhaWx1cmUgb24gU2VsZkNlcnRpZmljYXRpb25JbmRpY2lhRmFpbHVyZUluZm97ZmFpbHVyZVR5cGUsY291bnRyeUNvZGUsZmllbGRzLHJlYXNvbk9wdGlvbnN7cmVhc29ufX1gLCI4NmFhNWYzOTEwMzg3ZjFjYWY4NzMzZDhjMjMyZTQ2NGI5YjViNDE2NTEwODIxZjA5ZmEzYzY4YzdmZTNjYTNmIjpgcXVlcnkgUHJlZGljdGlvbk1hcmtldHNGZWF0dXJlZEV2ZW50UGFnZUNhcmRRdWVyeSgkY2FyZEZpbHRlcjpSYmFJbnN0cnVtZW50R3JvdXBzU2VhcmNoRmlsdGVySW5wdXQhLCRzb3J0T3B0aW9uOlJiYUluc3RydW1lbnRHcm91cFNvcnRPcHRpb24sJHNvcnRPcmRlcjpTb3J0T3JkZXIpe3JldGFpbEJyb2tlcmFnZXtpbnN0cnVtZW50R3JvdXBzKGZpbHRlcjokY2FyZEZpbHRlcixzb3J0T3B0aW9uOiRzb3J0T3B0aW9uLHNvcnRPcmRlcjokc29ydE9yZGVyLGZpcnN0OjEpe2VkZ2Vze25vZGV7aW5zdHJ1bWVudEdyb3VwSWQsaWR9fX19fWAsIjg4ZWY5NTdlNjU0NTQyOGM4Mjg1N2VlYTA4MTA2OTc0MTVhYjlhMGQ0ZTM5ZTdlYjljM2RiNGZlMjdlYTQ5MDkiOmBtdXRhdGlvbiBDaGF0SGVhZGVyVW5hdXRoRm9yY2VDbG9zZU11dGF0aW9uKCRpbnB1dDpVcGRhdGVVbmF1dGhlbnRpY2F0ZWRDb252ZXJzYXRpb25JbnB1dCEpe3Jlc3VsdDp1cGRhdGVVbmF1dGhlbnRpY2F0ZWRDb252ZXJzYXRpb24oaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFVwZGF0ZVVuYXV0aGVudGljYXRlZENvbnZlcnNhdGlvblN1Y2Nlc3N7Y29udmVyc2F0aW9ue2lkLHV1aWQsaXNDbG9zZWR9fX19YCwiOGI1MmVkNDc1YTg4MzBlOWM4MWVhN2JlMzM2NjQ3OWNhNTgzNWZjZDg0ZWNhZGU4ZmRkMTU4NGYyZDEyMzM0MCI6YHF1ZXJ5IFc5VmVyaWZpY2F0aW9uUXVlcnl7dmlld2Vye3VzZXJQcm9wZXJ0aWVze2hhc1NzbixpZH0saWR9fWAsIjhiZjEwNTBjZTc2ZjA5YjEzMjUxNjg4YWQyNTA2MjNlYjRhYzMwNzg5MDc0ZGVkZGMxNjgzMTViM2YwYzgyNGUiOmBxdWVyeSBQcmVkaWN0aW9uTWFya2V0c0V4cGxvcmVRdWVyeSgkZmlsdGVyOlJiYUluc3RydW1lbnRHcm91cHNTZWFyY2hGaWx0ZXJJbnB1dCEsJG1heFByb2R1Y3RzOkludCwkcHJvZHVjdHNTb3J0T3B0aW9uOlJiYVByb2R1Y3RzU29ydE9wdGlvbiwkcHJvZHVjdHNTb3J0T3JkZXI6U29ydE9yZGVyLCRzb3J0T3B0aW9uOlJiYUluc3RydW1lbnRHcm91cFNvcnRPcHRpb24sJHNvcnRPcmRlcjpTb3J0T3JkZXIsJGxpdmVQcm9kdWN0SWRzOltUaGlyZFBhcnR5SWRTdHJpbmchXSEsJHNraXBMaXZlUHJvZHVjdFN0YXRzOkJvb2xlYW4hKXsuLi5QcmVkaWN0aW9uRXhwbG9yZUNvbnRyb2xzRnJhZ21lbnQsLi4uUHJlZGljdGlvbk1hcmtldHNFeHBsb3JlRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV4cGxvcmVTdGlja3lOYXZGcmFnbWVudCwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZHNGcmFnbWVudF9GMVM2dywuLi5QcmVkaWN0aW9uTWFya2V0c0xpdmVQcm9kdWN0U3RhdHNFbWl0dGVyRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV4cGxvcmVGZWF0dXJlZEV2ZW50QmFubmVyRnJhZ21lbnR9ZnJhZ21lbnQgQmFzZWJhbGxIMkhDYXJkRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGlja2VyLGxpdmVFdmVudHtzdGF0dXMsbWlsZXN0b25lc3tlbnJpY2hlZERhdGF7X190eXBlbmFtZSwuLi5vbiBSYmFCYXNlYmFsbEdhbWVFbnJpY2hlZHtpbm5pbmcsaW5uaW5nSGFsZixvdXRzLGhvbWVUZWFte3RlYW1JZCxydW5zLGlzV2lubmVyfSxhd2F5VGVhbXt0ZWFtSWQscnVucyxpc1dpbm5lcn19fX19fSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7c3ViamVjdFJlZmVyZW5jZXN7c3ViamVjdElkfX0sLi4uQmFzZWJhbGxQcm9kdWN0Um93RnJhZ21lbnQsaWR9LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkSGVhZGVyVjJGcmFnbWVudCwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFZvbHVtZUZyYWdtZW50LC4uLkdhbWVTdGF0dXNCYWRnZUZyYWdtZW50LC4uLlByZWRpY3Rpb25NYXJrZXRzSDJIVHJhZGVCdXR0b25Hcm91cEZyYWdtZW50X0YxUzZ3LC4uLkRlZmF1bHRIMkhDYXJkRnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgQmFzZWJhbGxQcm9kdWN0Um93RnJhZ21lbnQgb24gUmJhUHJvZHVjdHtwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5UZWFtUm93RnJhZ21lbnR9ZnJhZ21lbnQgQmFza2V0YmFsbEgySENhcmRGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaWNrZXIsbGl2ZUV2ZW50e3N0YXR1cyxtaWxlc3RvbmVze2VucmljaGVkRGF0YXtfX3R5cGVuYW1lLC4uLm9uIFJiYUJhc2tldGJhbGxHYW1lRW5yaWNoZWR7cGVyaW9kLHBlcmlvZFR5cGUsY2xvY2ssaG9tZVRlYW17dGVhbUlkLHBvaW50c30sYXdheVRlYW17dGVhbUlkLHBvaW50c319fX19fSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7c3ViamVjdFJlZmVyZW5jZXN7c3ViamVjdElkfX0sLi4uQmFza2V0YmFsbFByb2R1Y3RSb3dGcmFnbWVudCxpZH0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkVm9sdW1lRnJhZ21lbnQsLi4uR2FtZVN0YXR1c0JhZGdlRnJhZ21lbnQsLi4uUHJlZGljdGlvbk1hcmtldHNIMkhUcmFkZUJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncsLi4uRGVmYXVsdEgySENhcmRGcmFnbWVudF9GMVM2d31mcmFnbWVudCBCYXNrZXRiYWxsUHJvZHVjdFJvd0ZyYWdtZW50IG9uIFJiYVByb2R1Y3R7cHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3llc1RpdGxlc30sLi4uVGVhbVJvd0ZyYWdtZW50fWZyYWdtZW50IERlZmF1bHRIMkhDYXJkRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGlja2VyfSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5EZWZhdWx0SDJIQ2FyZFByb2R1Y3RSb3dGcmFnbWVudCxpZH0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkU2NoZWR1bGVGcmFnbWVudCwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFZvbHVtZUZyYWdtZW50LC4uLlByZWRpY3Rpb25NYXJrZXRzSDJIVHJhZGVCdXR0b25Hcm91cEZyYWdtZW50X0YxUzZ3LC4uLnVzZUhlYWRUb0hlYWRUZWFtRGF0YUZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IERlZmF1bHRIMkhDYXJkUHJvZHVjdFJvd0ZyYWdtZW50IG9uIFJiYVByb2R1Y3R7cHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3llc1RpdGxlc30sLi4uVGVhbVJvd0ZyYWdtZW50fWZyYWdtZW50IEdhbWVTdGF0dXNCYWRnZUZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tsaXZlRXZlbnR7c3RhdHVzfX0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTY2hlZHVsZUZyYWdtZW50fWZyYWdtZW50IEhvY2tleUgySENhcmRGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaWNrZXIsbGl2ZUV2ZW50e3N0YXR1cyxtaWxlc3RvbmVze2VucmljaGVkRGF0YXtfX3R5cGVuYW1lLC4uLm9uIFJiYUhvY2tleUdhbWVFbnJpY2hlZHtwZXJpb2QsY2xvY2ssaG9tZVRlYW17dGVhbUlkLGdvYWxzLGlzV2lubmVyfSxhd2F5VGVhbXt0ZWFtSWQsZ29hbHMsaXNXaW5uZXJ9fX19fX0scHJvZHVjdHMobWF4UHJvZHVjdHM6JG1heFByb2R1Y3RzLHNvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixzb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtwcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3N1YmplY3RSZWZlcmVuY2Vze3N1YmplY3RJZH19LC4uLkhvY2tleVByb2R1Y3RSb3dGcmFnbWVudCxpZH0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkVm9sdW1lRnJhZ21lbnQsLi4uR2FtZVN0YXR1c0JhZGdlRnJhZ21lbnQsLi4uUHJlZGljdGlvbk1hcmtldHNIMkhUcmFkZUJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncsLi4uRGVmYXVsdEgySENhcmRGcmFnbWVudF9GMVM2d31mcmFnbWVudCBIb2NrZXlQcm9kdWN0Um93RnJhZ21lbnQgb24gUmJhUHJvZHVjdHtwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5UZWFtUm93RnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVDb250cm9sc0ZyYWdtZW50IG9uIFF1ZXJ5ey4uLlByZWRpY3Rpb25FeHBsb3JlVHJlbmRpbmdTZWN0b3JDb250cm9sc0ZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlU3BvcnRTZWN0b3JDb250cm9sc0ZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRGVmYXVsdFNlY3RvckNvbnRyb2xzRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVEZWZhdWx0U2VjdG9yQ29udHJvbHNGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7c2VjdG9yTGlzdHtzZWN0b3JJZCx0YWdzfX19ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tldmVudFRpdGxlLGRhcmtNb2RlSWNvblVybCxsaWdodE1vZGVJY29uVXJsfX1mcmFnbWVudCBQcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZEl0ZW1GcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaWNrZXJ9LHByb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tjb250cmFjdEV4cGlyeSxzZXR0bGVtZW50UHJpY2V9LGlkfSwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZEhlYWRlclYyRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRNdWx0aU1hcmtldFYyRnJhZ21lbnRfRjFTNncsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTaW5nbGVNYXJrZXRWMkZyYWdtZW50X0YxUzZ3LC4uLlByZWRpY3Rpb25FeHBsb3JlSDJIRXZlbnRDYXJkVjJGcmFnbWVudF9GMVM2dywuLi51c2VJc0hlYWRUb0hlYWRFdmVudEZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkTXVsdGlNYXJrZXRWMkZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tldmVudFRpY2tlcn0sdG90YWxQcm9kdWN0cyxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmljZSxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7aXNJbWFnZU92ZXJ3cml0dGVuLHllc1RpdGxlc30sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRNdWx0aU1hcmtldFYyUHJvZHVjdFJvd0ZyYWdtZW50LGlkfSwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZEhlYWRlclYyRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTdGF0c0ZyYWdtZW50fWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkTXVsdGlNYXJrZXRWMlByb2R1Y3RSb3dGcmFnbWVudCBvbiBSYmFQcm9kdWN0e2Jhc2VDYnJuLHByb2R1Y3RJZCxwcmljZSxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7YXNrUHJpY2Vze3llc0Fzayxub0Fza30sc2V0dGxlbWVudFByaWNlLHllc1RpdGxlcyxsaWdodE1vZGVJY29uVXJsLGRhcmtNb2RlSWNvblVybCxpc0ltYWdlT3ZlcndyaXR0ZW59fWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkU2NoZWR1bGVGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7bGl2ZUV2ZW50e3N0YXJ0RGF0ZX19LC4uLnVzZVByZWRpY3Rpb25NYXJrZXRFdmVudFNjaGVkdWxlU3RhdGVGcmFnbWVudH1mcmFnbWVudCBQcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFNpbmdsZU1hcmtldFYyRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3Byb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7YmFzZUNicm4scHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tldmVudFRpY2tlcixhc2tQcmljZXN7eWVzQXNrLG5vQXNrfX0saWR9LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkSGVhZGVyVjJGcmFnbWVudCwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFN0YXRzRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTdGF0c0ZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tsaXZlRXZlbnR7c3RhdHVzfX0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTY2hlZHVsZUZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkVm9sdW1lRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRWb2x1bWVGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7dG90YWxWb2x1bWV9fWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkc0ZyYWdtZW50X0YxUzZ3IG9uIFF1ZXJ5ey4uLnVzZVBhZ2luYXRlZFByZWRpY3Rpb25FdmVudENhcmRzRnJhZ21lbnRfMmJWTExTfWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlRmVhdHVyZWRFdmVudEJhbm5lckZyYWdtZW50IG9uIFF1ZXJ5e3VpQ29tcG9uZW50c0J5U3VyZmFjZUxvZ2dlZE91dChzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfTE9XX1BSRURJQ1RJT05fRkVBVFVSRURfRVZFTlRTIixmaXJzdDozMCl7ZWRnZXN7bm9kZXtleHBpcmF0aW9uVHMsc3RhcnRUcyxjb21wb25lbnRKc29uLGNhdGVnb3J5TmFtZSxpZH19LGlkfX1mcmFnbWVudCBQcmVkaWN0aW9uRXhwbG9yZUgySEV2ZW50Q2FyZFYyRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze3RhZ3MsbGl2ZUV2ZW50e21pbGVzdG9uZXN7ZW5yaWNoZWREYXRhe19fdHlwZW5hbWV9fX19LC4uLkJhc2tldGJhbGxIMkhDYXJkRnJhZ21lbnRfRjFTNncsLi4uSG9ja2V5SDJIQ2FyZEZyYWdtZW50X0YxUzZ3LC4uLlRlbm5pc0gySENhcmRGcmFnbWVudF9GMVM2dywuLi5Tb2NjZXJIMkhDYXJkRnJhZ21lbnRfRjFTNncsLi4uQmFzZWJhbGxIMkhDYXJkRnJhZ21lbnRfRjFTNncsLi4uRGVmYXVsdEgySENhcmRGcmFnbWVudF9GMVM2d31mcmFnbWVudCBQcmVkaWN0aW9uRXhwbG9yZVNlY3RvclNlbGVjdG9yRnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle3NlY3Rvckxpc3R7c2VjdG9yLHNlY3RvcklkLGxhYmVsfX19ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVTcG9ydFNlY3RvckNvbnRyb2xzRnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle3Nwb3J0c1N1YmNhdGVnb3JpZXN7c3BvcnRGaWx0ZXJze3Nwb3J0TmFtZSxjb21wZXRpdGlvbnN7Y29tcGV0aXRpb25OYW1lLHNjb3Blc30sc2NvcGVzfSxzcG9ydE9yZGVyaW5nfX19ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVTdGlja3lOYXZGcmFnbWVudCBvbiBRdWVyeXsuLi5QcmVkaWN0aW9uRXhwbG9yZVNlY3RvclNlbGVjdG9yRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVUcmVuZGluZ1NlY3RvckNvbnRyb2xzRnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle2luc3RydW1lbnRHcm91cFRyZW5kaW5nVGFncyhpbmNsdWRlSW1hZ2VzOmZhbHNlKXt0YWd9fX1mcmFnbWVudCBQcmVkaWN0aW9uTWFya2V0c0V4cGxvcmVGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7c2VjdG9yTGlzdHtzZWN0b3Isc2VjdG9ySWQsbGFiZWwsdGFnc30sc3BvcnRzU3ViY2F0ZWdvcmllc3tzcG9ydE9yZGVyaW5nLHNwb3J0RmlsdGVyc3tzcG9ydE5hbWUsY29tcGV0aXRpb25ze2NvbXBldGl0aW9uTmFtZX19fX19ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNIMkhDYXNoT3V0QnV0dG9uR3JvdXBGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7Li4uUHJlZGljdGlvbk1hcmtldHNIZWFkVG9IZWFkQnV0dG9uRnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNIMkhUcmFkZUJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3Byb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLGJhc2VDYnJuLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tzZXR0bGVtZW50UHJpY2UsYXNrUHJpY2Vze3llc0Fzayxub0Fza319LGlkfSwuLi5QcmVkaWN0aW9uTWFya2V0c0hlYWRUb0hlYWRCdXR0b25Hcm91cEZyYWdtZW50X0YxUzZ3LC4uLlByZWRpY3Rpb25NYXJrZXRzSDJIQ2FzaE91dEJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNIZWFkVG9IZWFkQnV0dG9uRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3Byb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLGJhc2VDYnJuLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thYmJyZXZpYXRpb24seWVzVGl0bGVzLGFza1ByaWNlc3t5ZXNBc2t9fSxpZH0sLi4udXNlSGVhZFRvSGVhZFRlYW1EYXRhRnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNIZWFkVG9IZWFkQnV0dG9uR3JvdXBGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7Li4uUHJlZGljdGlvbk1hcmtldHNIZWFkVG9IZWFkQnV0dG9uRnJhZ21lbnRfRjFTNncsLi4udXNlSGVhZFRvSGVhZFNldHRsZW1lbnRTdGF0dXNGcmFnbWVudF9GMVM2dywuLi51c2VQcmVkaWN0aW9uTWFya2V0RXZlbnRTY2hlZHVsZVN0YXRlRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNMaXZlUHJvZHVjdFN0YXRzRW1pdHRlckZyYWdtZW50IG9uIFF1ZXJ5e3JldGFpbEJyb2tlcmFnZUBza2lwKGlmOiRza2lwTGl2ZVByb2R1Y3RTdGF0cyl7cHJvZHVjdHNTdGF0cyhwcm9kdWN0SWRzOiRsaXZlUHJvZHVjdElkcyxwcm9kdWN0VHlwZTpQUkVESUNUSU9OX01BUktFVCxwcm9kdWN0VmVudWU6S0FMU0hJKXtwcm9kdWN0SWQscHJpY2UscHJpY2VQZXJjZW50Q2hhbmdlMjRoLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thc2tQcmljZXN7eWVzQXNrLG5vQXNrfSxjb250cmFjdEV4cGlyeSxzZXR0bGVtZW50UHJpY2V9LGZjbVRyYWRpbmdTZXNzaW9uRGV0YWlsc3tjbG9zZVRpbWUsaXNTZXNzaW9uT3BlbixvcGVuVGltZX0saWR9fX1mcmFnbWVudCBTb2NjZXJIMkhDYXJkRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGlja2VyLGxpdmVFdmVudHtzdGF0dXMsbWlsZXN0b25lc3tlbnJpY2hlZERhdGF7X190eXBlbmFtZSwuLi5vbiBSYmFTb2NjZXJNYXRjaEVucmljaGVke2hhbGYsdGltZSxzaG93UGVuYWx0aWVzLGhvbWVUZWFte3RlYW1JZCxzYW1lR2FtZVNjb3JlLHBlbmFsdGllcyxpc1dpbm5lcn0sYXdheVRlYW17dGVhbUlkLHNhbWVHYW1lU2NvcmUscGVuYWx0aWVzLGlzV2lubmVyfX19fX19LHByb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3t5ZXNUaXRsZXN9LC4uLlNvY2NlclByb2R1Y3RSb3dGcmFnbWVudCxpZH0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkVm9sdW1lRnJhZ21lbnQsLi4uR2FtZVN0YXR1c0JhZGdlRnJhZ21lbnQsLi4uUHJlZGljdGlvbk1hcmtldHNIMkhUcmFkZUJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncsLi4uRGVmYXVsdEgySENhcmRGcmFnbWVudF9GMVM2dywuLi51c2VIZWFkVG9IZWFkVGVhbURhdGFGcmFnbWVudF9GMVM2dywuLi51c2VTb2NjZXJIMkhNYXRjaHVwRGF0YUZyYWdtZW50fWZyYWdtZW50IFNvY2NlclByb2R1Y3RSb3dGcmFnbWVudCBvbiBSYmFQcm9kdWN0e3ByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3t5ZXNUaXRsZXN9LC4uLlRlYW1Sb3dGcmFnbWVudH1mcmFnbWVudCBUZWFtUm93RnJhZ21lbnQgb24gUmJhUHJvZHVjdHtwcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze2FiYnJldmlhdGlvbixkYXJrTW9kZUljb25VcmwsbGlnaHRNb2RlSWNvblVybCxtYXJrZXRDb2xvcixtYXJrZXRDb2xvckRhcmt9fWZyYWdtZW50IFRlbm5pc0gySENhcmRGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaWNrZXIsbGl2ZUV2ZW50e3N0YXR1cyxtaWxlc3RvbmVze2VucmljaGVkRGF0YXtfX3R5cGVuYW1lLC4uLm9uIFJiYVRlbm5pc01hdGNoRW5yaWNoZWR7Y3VycmVudFNldCxwbGF5ZXIxe3BsYXllcklkLHNldHNXb24sY3VycmVudEdhbWVQb2ludHMsaXNXaW5uZXIsaXNTZXJ2aW5nLGhhc0FkdmFudGFnZSxzY29yZXN7c2NvcmUsb3V0Y29tZX19LHBsYXllcjJ7cGxheWVySWQsc2V0c1dvbixjdXJyZW50R2FtZVBvaW50cyxpc1dpbm5lcixpc1NlcnZpbmcsaGFzQWR2YW50YWdlLHNjb3Jlc3tzY29yZSxvdXRjb21lfX19fX19fSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7c3ViamVjdFJlZmVyZW5jZXN7c3ViamVjdElkfX0sLi4uVGVubmlzUHJvZHVjdFJvd0ZyYWdtZW50LGlkfSwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZEhlYWRlclYyRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRWb2x1bWVGcmFnbWVudCwuLi5HYW1lU3RhdHVzQmFkZ2VGcmFnbWVudCwuLi5QcmVkaWN0aW9uTWFya2V0c0gySFRyYWRlQnV0dG9uR3JvdXBGcmFnbWVudF9GMVM2dywuLi5EZWZhdWx0SDJIQ2FyZEZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IFRlbm5pc1Byb2R1Y3RSb3dGcmFnbWVudCBvbiBSYmFQcm9kdWN0e3ByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3t5ZXNUaXRsZXN9LC4uLlRlYW1Sb3dGcmFnbWVudH1mcmFnbWVudCB1c2VIZWFkVG9IZWFkU2V0dGxlbWVudFN0YXR1c0ZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7c2V0dGxlbWVudFByaWNlfSxpZH19ZnJhZ21lbnQgdXNlSGVhZFRvSGVhZFRlYW1EYXRhRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2xpdmVFdmVudHttaWxlc3RvbmVze2VucmljaGVkRGF0YXtfX3R5cGVuYW1lLC4uLm9uIFJiYUJhc2tldGJhbGxHYW1lRW5yaWNoZWR7aG9tZVRlYW17dGVhbUlkLHRlYW1OYW1lfSxhd2F5VGVhbXt0ZWFtSWQsdGVhbU5hbWV9LF9fdHlwZW5hbWV9LC4uLm9uIFJiYUZvb3RiYWxsR2FtZUVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFTb2NjZXJNYXRjaEVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFCYXNlYmFsbEdhbWVFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhSG9ja2V5R2FtZUVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFDcmlja2V0TWF0Y2hFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhVGVubmlzTWF0Y2hFbnJpY2hlZHtob21lVGVhbTpwbGF5ZXIxe3RlYW1JZDpwbGF5ZXJJZCx0ZWFtTmFtZTpwbGF5ZXJOYW1lfSxhd2F5VGVhbTpwbGF5ZXIye3RlYW1JZDpwbGF5ZXJJZCx0ZWFtTmFtZTpwbGF5ZXJOYW1lfSxfX3R5cGVuYW1lfX19fX0scHJvZHVjdHMobWF4UHJvZHVjdHM6JG1heFByb2R1Y3RzLHNvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixzb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtwcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze2FiYnJldmlhdGlvbixtYXJrZXRDb2xvcixtYXJrZXRDb2xvckRhcmsseWVzVGl0bGVzLHN1YmplY3RSZWZlcmVuY2Vze3N1YmplY3RJZH19LGlkfX1mcmFnbWVudCB1c2VJc0hlYWRUb0hlYWRFdmVudEZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtzZWN0b3IscHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7c2NvcGV9LHByb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3llc1RpdGxlc30saWR9LC4uLnVzZUhlYWRUb0hlYWRUZWFtRGF0YUZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IHVzZVBhZ2luYXRlZFByZWRpY3Rpb25FdmVudENhcmRzRnJhZ21lbnRfMmJWTExTIG9uIFF1ZXJ5e3JldGFpbEJyb2tlcmFnZXtpbnN0cnVtZW50R3JvdXBzKGZpbHRlcjokZmlsdGVyLHNvcnRPcHRpb246JHNvcnRPcHRpb24sc29ydE9yZGVyOiRzb3J0T3JkZXIsZmlyc3Q6MzIpe2VkZ2Vze25vZGV7aWQsaW5zdHJ1bWVudEdyb3VwSWQsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRJdGVtRnJhZ21lbnRfRjFTNncsX190eXBlbmFtZX0sY3Vyc29yfSxwYWdlSW5mb3tlbmRDdXJzb3IsaGFzTmV4dFBhZ2V9fX19ZnJhZ21lbnQgdXNlUHJlZGljdGlvbk1hcmtldEV2ZW50U2NoZWR1bGVTdGF0ZUZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tzaG91bGRVc2VTZXJpZXMsbGl2ZUV2ZW50e3N0YXJ0RGF0ZSxzdGF0dXN9fX1mcmFnbWVudCB1c2VTb2NjZXJIMkhNYXRjaHVwRGF0YUZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tsaXZlRXZlbnR7bWlsZXN0b25lc3tlbnJpY2hlZERhdGF7X190eXBlbmFtZSwuLi5vbiBSYmFTb2NjZXJNYXRjaEVucmljaGVke2hhbGYsdGltZSxzaG93UGVuYWx0aWVzLGhvbWVUZWFte3NhbWVHYW1lU2NvcmUscGVuYWx0aWVzLGlzV2lubmVyfSxhd2F5VGVhbXtzYW1lR2FtZVNjb3JlLHBlbmFsdGllcyxpc1dpbm5lcn19fX19fX1gLCI4ZDhjZDFmM2I4ODllNWQ0YzBlODkyY2Q5MmI0NzQ2YzU1MTM1ODMyNTM3OTFhMWZkZDE4YTU2MTU0OWJiZjA1IjpgcXVlcnkgdXNlR2V0UGVycHNBbW91bnRTaG9ydGN1dEFUU1F1ZXJ5KCRwcm9kdWN0SWQ6VGhpcmRQYXJ0eUlkU3RyaW5nISwkbWFyZ2luVHlwZTpQb3J0Zm9saW9NYXJnaW5UeXBlISwkbGV2ZXJhZ2U6U3RyaW5nISwkZmVlUmF0ZTpTdHJpbmchLCRwcmljZTpTdHJpbmcpe3ZpZXdlcntyZXRhaWxCcm9rZXJhZ2V7aW50eE1heFRyYWRhYmxlQW1vdW50Rm9yUHJvZHVjdChwcm9kdWN0SWQ6JHByb2R1Y3RJZCxtYXJnaW5UeXBlOiRtYXJnaW5UeXBlLGxldmVyYWdlOiRsZXZlcmFnZSxmZWVSYXRlOiRmZWVSYXRlLHByaWNlOiRwcmljZSl7cHJvZHVjdElkLG1heFRyYWRhYmxlQW1vdW50e2J1eU5vdGlvbmFsLHNlbGxOb3Rpb25hbH0sbWF4VHJhZGFibGVBbW91bnRSZWR1Y2VPbmx5e2J1eU5vdGlvbmFsLHNlbGxOb3Rpb25hbH0sYnV5UHJpY2Usc2VsbFByaWNlfX0saWR9fWAsIjkxYTM0ODM4YmI2MzVlZjA5MjZmYzU1ZGFiNGY5MTIxYzAyMjVhOTg1Njk1ZjRiYzYxMjM5YzVhZmRmZDdlYWIiOmBxdWVyeSBDaGF0SW50ZXJuYWxRdWVyeSgkY29udmVyc2F0aW9uVXVpZDpVdWlkISwkZmlyc3Q6SW50ISwkYWZ0ZXI6U3RyaW5nLCRiZWZvcmU6U3RyaW5nLCRsYXN0OkludCl7dmlld2Vye2NvbnZlcnNhdGlvbkJ5VXVpZCh1dWlkOiRjb252ZXJzYXRpb25VdWlkKXtub2Rle2lzQ2xvc2VkLGFkZGl0aW9uYWxNZXRhZGF0YXtrZXksdmFsdWV9LHBhcnRpY2lwYW50c3twYXJ0aWNpcGFudFR5cGUsaWR9LGV2ZW50cyhmaXJzdDokZmlyc3QsYWZ0ZXI6JGFmdGVyLGJlZm9yZTokYmVmb3JlLGxhc3Q6JGxhc3Qpe2VkZ2Vze2N1cnNvcixub2Rle3R5cGUsYWRkaXRpb25hbE1ldGFkYXRhe2tleSx2YWx1ZX0sZXJyb3JEYXRhe3R5cGUsbWVzc2FnZSxpc0ZhdGFsfSxwYXJ0aWNpcGFudHtwYXJ0aWNpcGFudFR5cGUsZGlzcGxheU5hbWUsaWR9LGNvbnZlcnNhdGlvbnthZGRpdGlvbmFsTWV0YWRhdGF7a2V5LHZhbHVlfSxpZH0saWQsX190eXBlbmFtZX19LHBhZ2VJbmZve2VuZEN1cnNvcixoYXNOZXh0UGFnZSxoYXNQcmV2aW91c1BhZ2Usc3RhcnRDdXJzb3J9fSxpZH19LC4uLkNoYXRCb2R5Q29udmVyc2F0aW9uVGhyZWFkRnJhZ21lbnRfM0hUWnFjLGlkfX1mcmFnbWVudCBDaGF0Qm9keUNvbnZlcnNhdGlvblRocmVhZEZyYWdtZW50XzNIVFpxYyBvbiBWaWV3ZXJ7Y2hhdFN1cHBvcnRDb25maWdTZXR0aW5nc3twaWlSZWdleExpc3R7bGFiZWwscmVnZXh9LGNvbmZpZ3N7a2V5LHZhbHVlfX0sY29udmVyc2F0aW9uQnlVdWlkKHV1aWQ6JGNvbnZlcnNhdGlvblV1aWQpe25vZGV7dXVpZCxpc0Nsb3NlZCxldmVudHMoZmlyc3Q6JGZpcnN0LGFmdGVyOiRhZnRlcixiZWZvcmU6JGJlZm9yZSxsYXN0OiRsYXN0KXtlZGdlc3tjdXJzb3Isbm9kZXtpZCx1dWlkLHR5cGUsY3JlYXRlVGltZSxwYXJ0aWNpcGFudHtwYXJ0aWNpcGFudFR5cGUsaWR9LGluUmVwbHlUb1V1aWQsbWVzc2FnZUNvbnRlbnR7bWVzc2FnZSxpc0ZyZWVUZXh0RGlzYWJsZWR9LC4uLk1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQsX190eXBlbmFtZX19LHBhZ2VJbmZve2VuZEN1cnNvcixoYXNOZXh0UGFnZSxoYXNQcmV2aW91c1BhZ2Usc3RhcnRDdXJzb3J9fSxpZH19fWZyYWdtZW50IE1lc3NhZ2VCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtpZCx1dWlkLHBhcnRpY2lwYW50e2lkLGRpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZX0sY3JlYXRlVGltZSxtZXNzYWdlQ29udGVudHttZXNzYWdlLHJlcGxpZXN7bGFiZWwsbGluayxtZXNzYWdlVG9QdWJsaXNofSxyZWZlcmVuY2VMaW5rc3t0aXRsZSxsaW5rfSxpc1JlYWN0aW9uc0VuYWJsZWQsZXh0cmFFbGVtZW50VHlwZSxleHRyYUVsZW1lbnRQYXlsb2FkfSxmaWxlc01ldGFkYXRhe2ZpbGVze2F0dGFjaG1lbnRJZCxmaWxlTmFtZX19fWZyYWdtZW50IE1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7dHlwZSwuLi5NZXNzYWdlQnViYmxlRnJhZ21lbnQsLi4uUGFydGljaXBhbnRCdWJibGVGcmFnbWVudH1mcmFnbWVudCBQYXJ0aWNpcGFudEJ1YmJsZUZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e3BhcnRpY2lwYW50e2Rpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZSxpZH19YCwiOTIyYjg0ZTk5YTc2ZDUxMTI2MWViOWNjYmMzMDcwMTM4MTljY2Q2YzVhOTdkY2JiM2RiNDYyOGJmZTRhMTJjYyI6YG11dGF0aW9uIHVzZVN1Ym1pdEZ1dHVyZXNDb250cmFjdFJvbGxBVFNNdXRhdGlvbigkaW5wdXQ6Um9sbEZ1dHVyZXNDb250cmFjdElucHV0ISl7cm9sbEZ1dHVyZXNDb250cmFjdChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gUm9sbEZ1dHVyZXNDb250cmFjdFN1Y2Nlc3N7ZHVtbXl9LC4uLm9uIEdlbmVyaWNFcnJvcntjb2RlLG1lc3NhZ2V9fX1gLCI5MzJkM2JmODBkOTZlZDhjMDA0OTFjMzI4OTQ1N2VlOWRiMDc3MzljYzNmMmI4YWI0YzcyMmJhNzZkMWNjZjA2IjpgcXVlcnkgdXNlVW5pZmllZEtZQ1JlZnJlc2hEYXRhUXVlcnl7dmlld2Vye2t5Y0ZpZWxkc0luZm97a3ljRmllbGRze2t5Y0ZpZWxkTmFtZSxreWNGaWVsZFZhbHVlLGt5Y0ZpZWxkVXBkYXRlQXR0ZW1wdE1ldGFkYXRhe2ZpZWxkVXBkYXRlU3RhdHVzfX0scGVuZGluZ0NvbmZpcm1hdGlvbktZQ0ZpZWxkc30saWR9fWAsIjkzM2UyODIwNDY0MmYxYzhhMGQ5NTlkOTM0M2QzNzEzMmZhNDYyNmFkMjYxN2RmODM4NWEyMmQwZGI5ZDVjYjUiOmBxdWVyeSBSZW1lZGlhdGlvbkFsZXJ0Rmxvd1F1ZXJ5e3ZpZXdlcntyZW1lZGlhdGlvbkFsZXJ0KG1vZGU6b25ib2FyZGluZyl7dGl0bGUsYnV0dG9uVGV4dCxhbGVydE5hbWUscHJpbWFyeUNhbGxUb0FjdGlvblVybCxwcmltYXJ5Q2FsbFRvQWN0aW9uVGV4dCxzZWNvbmRhcnlDYWxsVG9BY3Rpb25Vcmwsc2Vjb25kYXJ5Q2FsbFRvQWN0aW9uVGV4dCxhbGVydExpc3R7Y29udGVudCxpY29uSWQsY2FsbFRvQWN0aW9uVGV4dCxjYWxsVG9BY3Rpb25Vcmx9fSxpZH19YCwiOTQwNmI1NTVlYTE5NTk1MDUyODdkMWIzNmFmZDVmZWQyZmQ0MzgyY2YxNDNjMTg4MDc5ZDU3Y2VlZTBmYzgyYSI6YHF1ZXJ5IFc4VGluUnVsZXNTdGVwUXVlcnkoJGZvcm1JZDpUaGlyZFBhcnR5SWRTdHJpbmchKXt3OFRpblJ1bGVzKGZvcm1JZDokZm9ybUlkKXtyZWdleFBhdHRlcm4sYWx0ZXJuYXRlUGF0dGVybnMsZXJyb3JNZXNzYWdlLGlzUmVxdWlyZWQsdGluTmFtZSxpc3N1ZXNUaW4sY291bnRyeUNvZGUsY291bnRyeU5hbWUscGxhY2Vob2xkZXJzLGRlc2NyaXB0aW9ufX1gLCI5NTQxMzVkZjY2YmFjNzRmNzMyYzQ2MDg0NDk2ZTM4NjU3ZGNjNTIyODk1MDI0MDhlNDAwZWQ2NDA2NzcwOTMyIjpgbXV0YXRpb24gdXNlVU9CQ3JlYXRlRGVyaXZhdGl2ZXNPbmJvYXJkaW5nQXBwbGljYXRpb25WMk11dGF0aW9uKCRpbnB1dDpDcmVhdGVEZXJpdmF0aXZlc09uYm9hcmRpbmdBcHBsaWNhdGlvblYySW5wdXQhKXtjcmVhdGVEZXJpdmF0aXZlc09uYm9hcmRpbmdBcHBsaWNhdGlvblYyKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBDcmVhdGVEZXJpdmF0aXZlc09uYm9hcmRpbmdBcHBsaWNhdGlvblYyU3VjY2Vzc3tzdGF0dXMsbnVtT2ZBdHRlbXB0cyxhdHRlbXB0c0xvY2tlZFVudGlsLGhhc0V4Y2VlZGVkTWF4QXR0ZW1wdHN9LC4uLm9uIEdlbmVyaWNFcnJvcntjb2RlLG1lc3NhZ2V9fX1gLCI5NjI2ZTlmYmYyOTk2YTE5ZWNjMmVhYzdlODEyNWNhZDE1YjAxNGU2Nzc0M2VjZDJlMTVjYjkzOGRjMDBhZjRlIjpgcXVlcnkgUHJlZGljdGlvbk1hcmtldHNMaXZlUHJvZHVjdFN0YXRzRW1pdHRlckZyYWdtZW50UXVlcnkoJGxpdmVQcm9kdWN0SWRzOltUaGlyZFBhcnR5SWRTdHJpbmchXSEsJHNraXBMaXZlUHJvZHVjdFN0YXRzOkJvb2xlYW4hKXsuLi5QcmVkaWN0aW9uTWFya2V0c0xpdmVQcm9kdWN0U3RhdHNFbWl0dGVyRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbk1hcmtldHNMaXZlUHJvZHVjdFN0YXRzRW1pdHRlckZyYWdtZW50IG9uIFF1ZXJ5e3JldGFpbEJyb2tlcmFnZUBza2lwKGlmOiRza2lwTGl2ZVByb2R1Y3RTdGF0cyl7cHJvZHVjdHNTdGF0cyhwcm9kdWN0SWRzOiRsaXZlUHJvZHVjdElkcyxwcm9kdWN0VHlwZTpQUkVESUNUSU9OX01BUktFVCxwcm9kdWN0VmVudWU6S0FMU0hJKXtwcm9kdWN0SWQscHJpY2UscHJpY2VQZXJjZW50Q2hhbmdlMjRoLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thc2tQcmljZXN7eWVzQXNrLG5vQXNrfSxjb250cmFjdEV4cGlyeSxzZXR0bGVtZW50UHJpY2V9LGZjbVRyYWRpbmdTZXNzaW9uRGV0YWlsc3tjbG9zZVRpbWUsaXNTZXNzaW9uT3BlbixvcGVuVGltZX0saWR9fX1gLCI5NjQ3ZTk5MDk1MGQxOWE0NTJkMTY2NTI5NWFlZDM0ODVhODgzMDA2YWQxZGZhZTZiMjM2ZTkwMTk3ZThmNDA3IjpgbXV0YXRpb24gdXNlTGlua1BvaW50c0ludml0ZUNvZGVBVFNNdXRhdGlvbigkaW5wdXQ6TGlua1JldGFpbEJyb2tlcmFnZVBvaW50c0ludml0ZUNvZGVJbnB1dCEpe2xpbmtSZXRhaWxCcm9rZXJhZ2VQb2ludHNJbnZpdGVDb2RlKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBMaW5rUmV0YWlsQnJva2VyYWdlUG9pbnRzSW52aXRlQ29kZVN1Y2Nlc3N7dmlld2Vye3JldGFpbEJyb2tlcmFnZXtwb2ludHNVc2VySW5mb3tudW1Vc2Vyc0ludml0ZWQsaW52aXRlQ29kZSxwb2ludHNCYWxhbmNlfX0saWR9fSwuLi5vbiBHZW5lcmljRXJyb3J7X190eXBlbmFtZSxjb2RlLG1lc3NhZ2V9fX1gLCI5NmNlOGFmMmU5NzNmZDRjYzQ5MjFlMzczZjE1YjMzY2QwODQ3ZTc0NDUzMjQ3MGFjYWY3N2QyNTJjYzZmM2NkIjpgbXV0YXRpb24gQ2hhdFN0ZXBVcEF1dGhFeGVjdXRvck11dGF0aW9uKCRpbnB1dDpVcGdyYWRlQ29udmVyc2F0aW9uSW5wdXQhKXt1cGdyYWRlQ29udmVyc2F0aW9uKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBVcGdyYWRlQ29udmVyc2F0aW9uU3VjY2Vzc3tjb252ZXJzYXRpb257dXVpZCxpZH19LC4uLm9uIEJhZFJlcXVlc3RFcnJvcnttZXNzYWdlLGNvZGV9LC4uLm9uIEVycm9ye19faXNFcnJvcjpfX3R5cGVuYW1lLG1lc3NhZ2UsY29kZX19fWAsIjk3YjkwNmE3NWI4MTc2ZmU1NGY3YTBhZmUzNmM3MzczM2RkNjAxYWExMTFiZmU0MjdhYjU2NDU4YTM4OWQyMTMiOmBxdWVyeSBEZXJpdmF0aXZlc0RldGFpbFBhZ2VRdWVyeSgkY291bnRyeUNvZGU6U3RyaW5nISwkbG9jYWxlOkxvY2FsZSEsJHByb2R1Y3RJZDpUaGlyZFBhcnR5SWRTdHJpbmchKXtyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdEJ5UHJvZHVjdElkKHByb2R1Y3RJZDokcHJvZHVjdElkKXtmdXR1cmVQcm9kdWN0RGV0YWlsc3t0aW1lVG9FeHBpcnlNcyxjb250cmFjdEV4cGlyeVR5cGUsZnVuZGluZ1JhdGV9LGlkfX0sLi4uRGVyaXZhdGl2ZXNNZXRhRGF0YUZyYWdtZW50XzJTV2NxeSwuLi5QcmljZUNoYXJ0RnJhZ21lbnRfMWo3ZXBWLC4uLkRlcml2c05hdkZyYWdtZW50XzJTV2NxeSwuLi5EZXJpdmF0aXZlc0Fib3V0Q29udGVudEZyYWdtZW50XzJTV2NxeSwuLi5EZXJpdmF0aXZlc1N0YXRzRnJhZ21lbnRfMlNXY3F5LC4uLkRlcml2YXRpdmVzSW50ZXJuYWxMaW5rc0ZyYWdtZW50XzN2RFdnYSwuLi5EZXJpdmF0aXZlc1N0aWNreUZvb3RlckZyYWdtZW50XzJTV2NxeX1mcmFnbWVudCBDb250cmFjdERldGFpbHNGcmFnbWVudF8yU1djcXkgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle3Byb2R1Y3RCeVByb2R1Y3RJZChwcm9kdWN0SWQ6JHByb2R1Y3RJZCl7cXVvdGVDdXJyZW5jeVN5bWJvbCxmdXR1cmVQcm9kdWN0RGV0YWlsc3tmdW5kaW5nUmF0ZSxmdW5kaW5nVGltZSxjb250cmFjdFNpemUsY29udHJhY3RSb290VW5pdCxjb250cmFjdEV4cGlyeU5hbWUsY29udHJhY3RFeHBpcnlUaW1lem9uZSx0aW1lVG9FeHBpcnlNc30saWR9fX1mcmFnbWVudCBEZXJpdmF0aXZlc0Fib3V0Q29udGVudEZyYWdtZW50XzJTV2NxeSBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdEJ5UHJvZHVjdElkKHByb2R1Y3RJZDokcHJvZHVjdElkKXtwcm9kdWN0SWQscHJpY2UsZnV0dXJlUHJvZHVjdERldGFpbHN7ZGlzcGxheU5hbWUsY29udHJhY3RDb2RlLGNvbnRyYWN0RXhwaXJ5LGNvbnRyYWN0U2l6ZSxpc1R3ZW50eUZvdXJCeVNldmVuLHRyYWRpbmdIb3Vyc30scHJvZHVjdFN0YXRze2ZjbVRyYWRpbmdTZXNzaW9uRGV0YWlsc3tpc1Nlc3Npb25PcGVufSxpZH0saWR9fX1mcmFnbWVudCBEZXJpdmF0aXZlc0ludGVybmFsTGlua3NGcmFnbWVudF8zdkRXZ2Egb24gUXVlcnl7dG9wQURQOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJwcmljZSIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0Ontjb3VudHJ5Q29kZTokY291bnRyeUNvZGUsc29ydDpTT1JUX1RZUEVfTUFSS0VUX0NBUCxyYW5kb21pemVkQ29uZmlnOntwb29sU2l6ZTo1MCxzYW1wbGVTaXplOjEwfX19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NBc3NldEVudGl0eXtuYW1lLGljb25VcmwscGFnZVVybH19fSx0b3BIVEI6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6Imhvdy10by1idXkiLHJlcXVlc3RJbnB1dDp7ZGVmYXVsdFJlcXVlc3RJbnB1dDp7Y291bnRyeUNvZGU6JGNvdW50cnlDb2RlLHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAsZmlsdGVyczpbRklMVEVSX1RSQURBQkxFXSxyYW5kb21pemVkQ29uZmlnOntwb29sU2l6ZTo1MCxzYW1wbGVTaXplOjEwfX19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NBc3NldEVudGl0eXtuYW1lLGljb25VcmwscGFnZVVybH19fSx0b3BQUFBzOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJwcmljZS1wcmVkaWN0aW9uIixyZXF1ZXN0SW5wdXQ6e2RlZmF1bHRSZXF1ZXN0SW5wdXQ6e2NvdW50cnlDb2RlOiRjb3VudHJ5Q29kZSxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHJhbmRvbWl6ZWRDb25maWc6e3Bvb2xTaXplOjUwLHNhbXBsZVNpemU6MTB9fX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0Fzc2V0RW50aXR5e25hbWUsaWNvblVybCxwYWdlVXJsfX19LHRvcFByZWRpY3Rpb25NYXJrZXRzOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJwcmVkaWN0aW9ucyIscmVxdWVzdElucHV0OntwcmVkaWN0aW9uTWFya2V0UmVxdWVzdElucHV0Ontzb3J0OlNPUlRfVFlQRV9WT0xVTUUscmVxdWVzdEFtb3VudDoxMH19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NQcmVkaWN0aW9uTWFya2V0RW50aXR5e25hbWU6dGl0bGUsaWNvblVybCxwYWdlVXJsfX19LHBvcHVsYXJFcXVpdHk6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6InN0b2NrIixyZXF1ZXN0SW5wdXQ6e2VxdWl0eVJlcXVlc3RJbnB1dDp7c29ydDpTT1JUX1RZUEVfTUFSS0VUX0NBUCxyZXF1ZXN0QW1vdW50OjEwLHNlY3Rpb246RVFVSVRZX1NFQ1RJT05fUE9QVUxBUn19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NFcXVpdHlFbnRpdHl7bmFtZSxzeW1ib2wsaWNvblVybCxwYWdlVXJsfX19LGV4cGxvcmVFcXVpdHk6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6InN0b2NrIixyZXF1ZXN0SW5wdXQ6e2VxdWl0eVJlcXVlc3RJbnB1dDp7c29ydDpTT1JUX1RZUEVfTUFSS0VUX0NBUCxyZXF1ZXN0QW1vdW50OjEwLHNlY3Rpb246RVFVSVRZX1NFQ1RJT05fRVhQTE9SRX19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NFcXVpdHlFbnRpdHl7bmFtZSxzeW1ib2wsaWNvblVybCxwYWdlVXJsfX19LHRvcERlcml2YXRpdmVzOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJmdXR1cmVzIixyZXF1ZXN0SW5wdXQ6e2Rlcml2YXRpdmVSZXF1ZXN0SW5wdXQ6e2Rlcml2YXRpdmVJZDokcHJvZHVjdElkLHNvcnQ6U09SVF9UWVBFX1ZPTFVNRSxyZXF1ZXN0QW1vdW50OjEwfX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0Rlcml2YXRpdmVFbnRpdHl7cGFnZVVybCxpY29uVXJsLG5hbWV9fX19ZnJhZ21lbnQgRGVyaXZhdGl2ZXNNZXRhRGF0YUZyYWdtZW50XzJTV2NxeSBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdEJ5UHJvZHVjdElkKHByb2R1Y3RJZDokcHJvZHVjdElkKXtmdXR1cmVQcm9kdWN0RGV0YWlsc3tkaXNwbGF5TmFtZX0scHJpY2UsaWR9fX1mcmFnbWVudCBEZXJpdmF0aXZlc1N0YXRzRnJhZ21lbnRfMlNXY3F5IG9uIFF1ZXJ5e3JldGFpbEJyb2tlcmFnZXtwcm9kdWN0QnlQcm9kdWN0SWQocHJvZHVjdElkOiRwcm9kdWN0SWQpe3ByaWNlLGZ1dHVyZVByb2R1Y3REZXRhaWxze2Z1bmRpbmdJbnRlcnZhbCxjb250cmFjdENvZGUsY29udHJhY3RFeHBpcnksY29udHJhY3RTaXplfSxpZH19LC4uLlBlcnBzU3RhdHNGcmFnbWVudF8yU1djcXksLi4uRnV0dXJlc1N0YXRzRnJhZ21lbnRfMlNXY3F5fWZyYWdtZW50IERlcml2YXRpdmVzU3RpY2t5Rm9vdGVyRnJhZ21lbnRfMlNXY3F5IG9uIFF1ZXJ5e3JldGFpbEJyb2tlcmFnZXtwcm9kdWN0QnlQcm9kdWN0SWQocHJvZHVjdElkOiRwcm9kdWN0SWQpe2Z1dHVyZVByb2R1Y3REZXRhaWxze2NvbnRyYWN0RGlzcGxheU5hbWUsY29udHJhY3RSb290VW5pdH0saWR9fX1mcmFnbWVudCBEZXJpdnNOYXZGcmFnbWVudF8yU1djcXkgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle3Byb2R1Y3RCeVByb2R1Y3RJZChwcm9kdWN0SWQ6JHByb2R1Y3RJZCl7aW1hZ2VVcmwsZnV0dXJlUHJvZHVjdERldGFpbHN7ZGlzcGxheU5hbWV9LGlkfX19ZnJhZ21lbnQgRnV0dXJlc0NvbnRyYWN0RGV0YWlsc0ZyYWdtZW50XzJTV2NxeSBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdEJ5UHJvZHVjdElkKHByb2R1Y3RJZDokcHJvZHVjdElkKXtuZXdBdCxxdW90ZUN1cnJlbmN5U3ltYm9sLGZ1dHVyZVByb2R1Y3REZXRhaWxze2NvbnRyYWN0U2l6ZSxjb250cmFjdFJvb3RVbml0LGNvbnRyYWN0RXhwaXJ5LGNvbnRyYWN0RXhwaXJ5TmFtZSxjb250cmFjdEV4cGlyeVRpbWV6b25lLHRpbWVUb0V4cGlyeU1zfSxpZH19fWZyYWdtZW50IEZ1dHVyZXNTdGF0c0ZyYWdtZW50XzJTV2NxeSBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdEJ5UHJvZHVjdElkKHByb2R1Y3RJZDokcHJvZHVjdElkKXthcHByb3hpbWF0ZVF1b3RlVm9sdW1lMjRoLHZvbHVtZVBlcmNlbnRDaGFuZ2UyNGgscHJpY2VQZXJjZW50Q2hhbmdlMjRoLGZ1dHVyZVByb2R1Y3REZXRhaWxze29wZW5JbnRlcmVzdH0scHJvZHVjdFN0YXRze2hpZ2gyNGgsbG93MjRoLG1pZE1hcmtldFByaWNlLGZ1dHVyZVByb2R1Y3RTdGF0c3tzZXR0bGVtZW50UHJpY2V9LGlkfSxpZH19LC4uLkZ1dHVyZXNDb250cmFjdERldGFpbHNGcmFnbWVudF8yU1djcXl9ZnJhZ21lbnQgUGVycHNTdGF0c0ZyYWdtZW50XzJTV2NxeSBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdEJ5UHJvZHVjdElkKHByb2R1Y3RJZDokcHJvZHVjdElkKXthcHByb3hpbWF0ZVF1b3RlVm9sdW1lMjRoLHZvbHVtZVBlcmNlbnRDaGFuZ2UyNGgscHJpY2VQZXJjZW50Q2hhbmdlMjRoLGZ1dHVyZVByb2R1Y3REZXRhaWxze29wZW5JbnRlcmVzdH0scHJvZHVjdFN0YXRze2hpZ2gyNGgsaGlnaDUydyxsb3cyNGgsbG93NTJ3LG1pZE1hcmtldFByaWNlLGZ1dHVyZVByb2R1Y3RTdGF0c3tzZXR0bGVtZW50UHJpY2V9LGlkfSxpZH19LC4uLkNvbnRyYWN0RGV0YWlsc0ZyYWdtZW50XzJTV2NxeX1mcmFnbWVudCBQcmljZUNoYXJ0RnJhZ21lbnRfMWo3ZXBWIG9uIFF1ZXJ5e3JldGFpbEJyb2tlcmFnZXtwcm9kdWN0QnlQcm9kdWN0SWQocHJvZHVjdElkOiRwcm9kdWN0SWQpe2lkLHByaWNlLHByb2R1Y3RJZCxiYXNlTmFtZSxxdW90ZU5hbWUsaXNUcmFkaW5nRGlzYWJsZWQsaXNEaXNhYmxlZCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tjdXJyZW50U2Vzc2lvbn19fSwuLi51c2VQcmljZUNoYXJ0RnJhZ21lbnRfMWo3ZXBWfWZyYWdtZW50IHVzZVByaWNlQ2hhcnRGcmFnbWVudF8xajdlcFYgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle3Byb2R1Y3RCeVByb2R1Y3RJZChwcm9kdWN0SWQ6JHByb2R1Y3RJZCl7aWQscHJpY2UsYmFzZU5hbWUscXVvdGVOYW1lLGJhc2VDdXJyZW5jeVN5bWJvbCxmdXR1cmVQcm9kdWN0RGV0YWlsc3tkaXNwbGF5TmFtZX0scHJvZHVjdFN0YXRze3ByaWNlLGlkfSxwcm9kdWN0VHlwZX19fWAsIjk5NTM3MzhhYmE2NjZjZTM0MTkxNWE2OGNhZTJjMGExMmUxYjI2MzFmMjY5MGNjNmExZTE2ZWI3Y2VhODI3MWYiOmBxdWVyeSBFcXVpdHlQYWdlUXVlcnkoJGVxdWl0eVN5bWJvbDpTdHJpbmchLCRjb3VudHJ5Q29kZTpTdHJpbmchLCRsb2NhbGU6TG9jYWxlISl7cmV0YWlsQnJva2VyYWdle3Byb2R1Y3RCeVN5bWJvbChzeW1ib2w6JGVxdWl0eVN5bWJvbCl7aWQscHJpY2UscHJvZHVjdElkLGJhc2VOYW1lLHF1b3RlTmFtZSxlcXVpdHlQcm9kdWN0RGV0YWlsc3t0aWNrZXIsc2hvcnROYW1lfSxwcm9kdWN0U3RhdHN7cHJpY2UsbG93MjRoLGhpZ2gyNGgsaWR9fX0sLi4uRXF1aXR5TmF2RnJhZ21lbnQsLi4uUHJpY2VDaGFydEZyYWdtZW50XzNxbnBSOCwuLi5FcXVpdHlBYm91dEZyYWdtZW50LC4uLkVxdWl0eUluZm9GcmFnbWVudCwuLi5FcXVpdHlJbnRlcm5hbExpbmtzRnJhZ21lbnRfMU5SMlFsLC4uLkVxdWl0eVN0aWNreUZvb3RlckZyYWdtZW50fWZyYWdtZW50IEVxdWl0eUFib3V0RnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle3Byb2R1Y3RCeVN5bWJvbChzeW1ib2w6JGVxdWl0eVN5bWJvbCl7ZXF1aXR5UHJvZHVjdERldGFpbHN7c2hvcnROYW1lLGNvbXBhbnlEZXNjcmlwdGlvbix0aWNrZXIsY29tcGFueVdlYnNpdGUsY2lrfSxpZH19fWZyYWdtZW50IEVxdWl0eUluZm9GcmFnbWVudCBvbiBRdWVyeXsuLi5FcXVpdHlTdGF0c0ZyYWdtZW50LC4uLkVxdWl0eVByaWNlSGlzdG9yeUZyYWdtZW50fWZyYWdtZW50IEVxdWl0eUludGVybmFsTGlua3NGcmFnbWVudF8xTlIyUWwgb24gUXVlcnl7cG9wdWxhckVxdWl0eTppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToic3RvY2siLHJlcXVlc3RJbnB1dDp7ZXF1aXR5UmVxdWVzdElucHV0OntzeW1ib2w6JGVxdWl0eVN5bWJvbCxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHJlcXVlc3RBbW91bnQ6MTAsc2VjdGlvbjpFUVVJVFlfU0VDVElPTl9QT1BVTEFSfX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0VxdWl0eUVudGl0eXtuYW1lLHN5bWJvbCxpY29uVXJsLHBhZ2VVcmx9fX0sZXhwbG9yZUVxdWl0eTppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToic3RvY2siLHJlcXVlc3RJbnB1dDp7ZXF1aXR5UmVxdWVzdElucHV0OntzeW1ib2w6JGVxdWl0eVN5bWJvbCxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHJlcXVlc3RBbW91bnQ6MTAsc2VjdGlvbjpFUVVJVFlfU0VDVElPTl9FWFBMT1JFfX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0VxdWl0eUVudGl0eXtuYW1lLHN5bWJvbCxpY29uVXJsLHBhZ2VVcmx9fX0sdG9wRGVyaXZhdGl2ZXM6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiJlbiIscGFnZVR5cGU6ImZ1dHVyZXMiLHJlcXVlc3RJbnB1dDp7ZGVyaXZhdGl2ZVJlcXVlc3RJbnB1dDp7c29ydDpTT1JUX1RZUEVfVk9MVU1FLHJlcXVlc3RBbW91bnQ6MTB9fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzRGVyaXZhdGl2ZUVudGl0eXtwYWdlVXJsLGljb25VcmwsbmFtZX19fSx0b3BBRFA6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6InByaWNlIixyZXF1ZXN0SW5wdXQ6e2RlZmF1bHRSZXF1ZXN0SW5wdXQ6e2NvdW50cnlDb2RlOiRjb3VudHJ5Q29kZSxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHJhbmRvbWl6ZWRDb25maWc6e3Bvb2xTaXplOjUwLHNhbXBsZVNpemU6MTB9fX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0Fzc2V0RW50aXR5e25hbWUsaWNvblVybCxwYWdlVXJsfX19LHRvcEhUQjppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToiaG93LXRvLWJ1eSIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0Ontjb3VudHJ5Q29kZTokY291bnRyeUNvZGUsc29ydDpTT1JUX1RZUEVfTUFSS0VUX0NBUCxmaWx0ZXJzOltGSUxURVJfVFJBREFCTEVdLHJhbmRvbWl6ZWRDb25maWc6e3Bvb2xTaXplOjUwLHNhbXBsZVNpemU6MTB9fX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0Fzc2V0RW50aXR5e25hbWUsaWNvblVybCxwYWdlVXJsfX19LHRvcFBQUHM6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6InByaWNlLXByZWRpY3Rpb24iLHJlcXVlc3RJbnB1dDp7ZGVmYXVsdFJlcXVlc3RJbnB1dDp7Y291bnRyeUNvZGU6JGNvdW50cnlDb2RlLHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAscmFuZG9taXplZENvbmZpZzp7cG9vbFNpemU6NTAsc2FtcGxlU2l6ZToxMH19fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzQXNzZXRFbnRpdHl7bmFtZSxpY29uVXJsLHBhZ2VVcmx9fX0sdG9wUHJlZGljdGlvbk1hcmtldHM6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6InByZWRpY3Rpb25zIixyZXF1ZXN0SW5wdXQ6e3ByZWRpY3Rpb25NYXJrZXRSZXF1ZXN0SW5wdXQ6e3NvcnQ6U09SVF9UWVBFX1ZPTFVNRSxyZXF1ZXN0QW1vdW50OjEwfX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc1ByZWRpY3Rpb25NYXJrZXRFbnRpdHl7bmFtZTp0aXRsZSxpY29uVXJsLHBhZ2VVcmx9fX0sdG9wQ29udmVydGVyczppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToiY29udmVydGVyIixyZXF1ZXN0SW5wdXQ6e2NvbnZlcnRlclJlcXVlc3RJbnB1dDp7YmFzZVN5bWJvbDoiIix0YXJnZXRTeW1ib2w6IiIsYmFzZTp7ZW50aXR5VHlwZTpFTlRJVFlfVFlQRV9BU1NFVCxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHRvcE46MjB9LHRhcmdldDp7ZW50aXR5VHlwZTpFTlRJVFlfVFlQRV9GSUFUfSxyZXF1ZXN0QW1vdW50OjEyfX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0NvbnZlcnRlckVudGl0eXtiYXNle25hbWUsaWNvblVybH0sdGFyZ2V0e25hbWV9LHBhZ2VVcmx9fX19ZnJhZ21lbnQgRXF1aXR5TmF2RnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle3Byb2R1Y3RCeVN5bWJvbChzeW1ib2w6JGVxdWl0eVN5bWJvbCl7ZXF1aXR5UHJvZHVjdERldGFpbHN7c2hvcnROYW1lLHRpY2tlcn0saWR9fX1mcmFnbWVudCBFcXVpdHlQcmljZUhpc3RvcnlGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdEJ5U3ltYm9sKHN5bWJvbDokZXF1aXR5U3ltYm9sKXtwcmljZSxlcXVpdHlQcm9kdWN0RGV0YWlsc3tvcGVuUHJpY2V9LGlkfSxkYXk6cHJpY2VDaGFydEJ5U3ltYm9sKHN5bWJvbDokZXF1aXR5U3ltYm9sLHJlc29sdXRpb246UkVTT0xVVElPTl9EQVksbWF4RGF0YVBvaW50czoyKXtwcmljZVBvaW50c3twcmljZX19LHdlZWs6cHJpY2VDaGFydEJ5U3ltYm9sKHN5bWJvbDokZXF1aXR5U3ltYm9sLHJlc29sdXRpb246UkVTT0xVVElPTl9XRUVLLG1heERhdGFQb2ludHM6Mil7cHJpY2VQb2ludHN7cHJpY2V9fSxtb250aDpwcmljZUNoYXJ0QnlTeW1ib2woc3ltYm9sOiRlcXVpdHlTeW1ib2wscmVzb2x1dGlvbjpSRVNPTFVUSU9OX01PTlRILG1heERhdGFQb2ludHM6Mil7cHJpY2VQb2ludHN7cHJpY2V9fSx5ZWFyOnByaWNlQ2hhcnRCeVN5bWJvbChzeW1ib2w6JGVxdWl0eVN5bWJvbCxyZXNvbHV0aW9uOlJFU09MVVRJT05fWUVBUixtYXhEYXRhUG9pbnRzOjIpe3ByaWNlUG9pbnRze3ByaWNlfX19fWZyYWdtZW50IEVxdWl0eVN0YXRzRnJhZ21lbnQgb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle3Byb2R1Y3RCeVN5bWJvbChzeW1ib2w6JGVxdWl0eVN5bWJvbCl7ZXF1aXR5UHJvZHVjdERldGFpbHN7b3BlblByaWNlLGN1cnJlbnRTZXNzaW9uLHRyYWRpbmdEYXlJbmZve3RyYWRpbmdTZXNzaW9uc3tzZXNzaW9uVHlwZSxzZXNzaW9uU3RhcnRUaW1lLHNlc3Npb25FbmRUaW1lfX19LHByb2R1Y3RTdGF0c3tuYW1lLHZvbHVtZTI0aCx2b2x1bWVQZXJjZW50Q2hhbmdlMjRoLGhpZ2gyNGgsbG93MjRoLGhpZ2g1MncsbG93NTJ3LG1hcmtldENhcCxpZH0saWR9fX1mcmFnbWVudCBFcXVpdHlTdGlja3lGb290ZXJGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdEJ5U3ltYm9sKHN5bWJvbDokZXF1aXR5U3ltYm9sKXtlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LGlkfX19ZnJhZ21lbnQgUHJpY2VDaGFydEZyYWdtZW50XzNxbnBSOCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7cHJvZHVjdEJ5U3ltYm9sKHN5bWJvbDokZXF1aXR5U3ltYm9sKXtpZCxwcmljZSxwcm9kdWN0SWQsYmFzZU5hbWUscXVvdGVOYW1lLGlzVHJhZGluZ0Rpc2FibGVkLGlzRGlzYWJsZWQsZXF1aXR5UHJvZHVjdERldGFpbHN7Y3VycmVudFNlc3Npb259fX0sLi4udXNlUHJpY2VDaGFydEZyYWdtZW50XzNxbnBSOH1mcmFnbWVudCB1c2VQcmljZUNoYXJ0RnJhZ21lbnRfM3FucFI4IG9uIFF1ZXJ5e3JldGFpbEJyb2tlcmFnZXtwcm9kdWN0QnlTeW1ib2woc3ltYm9sOiRlcXVpdHlTeW1ib2wpe2lkLHByaWNlLGJhc2VOYW1lLHF1b3RlTmFtZSxiYXNlQ3VycmVuY3lTeW1ib2wsZXF1aXR5UHJvZHVjdERldGFpbHN7dGlja2VyLGN1cnJlbnRTZXNzaW9uLHByaWNlUGVyY2VudGFnZUNoYW5nZU1hcmtldEhvdXJzLHByaWNlUGVyY2VudGFnZUNoYW5nZUV4dGVuZGVkSG91cnMsb3BlblByaWNlfSxwcm9kdWN0U3RhdHN7cHJpY2UsaWR9LHByb2R1Y3RUeXBlfX19YCwiOTk2OGMwZWQzNmYxYzlmZThjNTEwZmIzMDRkNDdlODc5OTllNDFjZmIwM2Y4NzcxYjNjZWNlMzYwZjNkYTVlMiI6YG11dGF0aW9uIHVzZVN1Ym1pdFN3ZWVwc3Rha2VzUHJlZGljdGlvbk11dGF0aW9uKCRpbnB1dDpTdWJtaXRTd2VlcHN0YWtlc1ByZWRpY3Rpb25JbnB1dCEpe3N1Ym1pdFN3ZWVwc3Rha2VzUHJlZGljdGlvbihpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gU3VibWl0U3dlZXBzdGFrZXNQcmVkaWN0aW9uU3VjY2Vzc3tzdWJtaXNzaW9uSWQsc3VibWl0dGVkQXQsbWVzc2FnZSxmaXJzdE5hbWUsbGFzdE5hbWUsdmlld2Vye2lkfX0sLi4ub24gU3VibWl0U3dlZXBzdGFrZXNQcmVkaWN0aW9uRXJyb3J7Y29kZSxtZXNzYWdlfX19YCwiOWE0NWM4ZjE4MTc4Yzc5OTBhOWIwY2Q0YzU0NzFlYmRiMWIyYzdiNjE0NTA2OGRjODBmMGRiZDVmZmRlYTJhMCI6YHF1ZXJ5IFByZWRpY3Rpb25NYXJrZXRzQ3J5cHRvRGlzY2xhaW1lckJhbm5lckNvbnRlbnRRdWVyeXt2aWV3ZXJ7dWlDb21wb25lbnRzQnlTdXJmYWNlKHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9QUkVESUNUSU9OX01BUktFVFNfQ1JZUFRPX0RJU0NMQUlNRVIiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfUFJFRElDVElPTl9NQVJLRVRTX0NSWVBUT19ESVNDTEFJTUVSIl0pe2VkZ2Vze25vZGV7Y29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3RpdGxlVGV4dEZpZWxke3RleHR9LHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ319LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX0saWR9LGlkfX1gLCI5YjdjMjZiMjlmZWRmOWQ3YmIzZGI0YTI1MTZmMjYyNzJhZDYxYTQ3OWVmOWY4MjIxMWJlNjc5ODMxM2Q5Yjk3IjpgcXVlcnkgdXNlVU9CQ29tcGxpYW5jZVF1ZXN0aW9uc0ZldGNoZXJRdWVyeSgkcXVlc3Rpb25UeXBlOkdlbmVyaWNDb21wbGlhbmNlUXVlc3Rpb25UeXBlISl7dmlld2Vye2dlbmVyaWNDb21wbGlhbmNlUXVlc3Rpb25zQnlUeXBlKHR5cGU6JHF1ZXN0aW9uVHlwZSl7aGVhZGluZyxhbnN3ZXJNZXRhRGF0YXtoYXNFeGNlZWRlZE1heEF0dGVtcHRzfSxxdWVzdGlvbnN7dXVpZCx0aXRsZSxzdWJ0aXRsZSxpbnB1dFR5cGUsb3B0aW9uc3t2YWx1ZSx0aXRsZSxzdWJ0aXRsZX0sbGFzdEF0dGVtcHRlZEFuc3dlcnN7b3B0aW9ue3ZhbHVlLHRpdGxlLHN1YnRpdGxlfX0saWR9fSxpZH19YCwiOWQ0NTY1ZjM1NmFkYzY1YWY3Y2Y2YmI2N2U0YzM5NTI0MTAyMDU5ZDg4Y2UwYTkwNWU5YWY5MGRiMWE5ODI5ZCI6YHF1ZXJ5IHVzZUF1dGhDaGVja1F1ZXJ5e3ZpZXdlcnt1c2VyUHJvcGVydGllc3t1dWlkLGlkfSxpZH19YCwiOWU1NjU3NWJhMDEyZjE1MzA5NTE1NzQ4NWRmMzg0N2EzNjUxYzlkMGFiNWUzMWMxODcxNDBhODI5NjQ4Yzg5ZSI6YG11dGF0aW9uIHVzZVVwZGF0ZUZ1dHVyZXNBdXRvbWF0aWNDb250cmFjdFJvbGxTZXR0aW5nQVRTTXV0YXRpb24oJGlucHV0OlVwZGF0ZUF1dG9Db250cmFjdFJvbGxFbnJvbGxtZW50SW5wdXQhKXt1cGRhdGVBdXRvQ29udHJhY3RSb2xsRW5yb2xsbWVudChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gVXBkYXRlQXV0b0NvbnRyYWN0Um9sbEVucm9sbG1lbnRTdWNjZXNze2R1bW15LHZpZXdlcntyZXRhaWxEZXJpdmF0aXZlc3thdXRvQ29udHJhY3RSb2xsU2V0dGluZ3tpc0F1dG9Db250cmFjdFJvbGxzRW5hYmxlZCxpc1VzZXJFbmFibGVkfX0saWR9fSwuLi5vbiBHZW5lcmljRXJyb3J7Y29kZSxtZXNzYWdlfX19YCwiOWVhNTgyY2VhMTYwNGJkYmM4MmMwNTUxYTIwODgyMTQ2Y2RlZTkyMGQ3YzdjNTVmMDBmMjI2ZjRkMjQ5MDNhZiI6YHF1ZXJ5IHVzZVBvbGxVc2RjQmFsYW5jZUZvclNlY3VyZWRDQ1F1ZXJ5KCRzaG91bGRJbmNsdWRlUmVzb3VyY2VCeUlkZW50aWZpZXI6Qm9vbGVhbiEsJGNicm46U3RyaW5nKXsuLi51c2VVc2RjQXZhaWxhYmxlQW5kUGVuZGluZ0JhbGFuY2VzRnJhZ21lbnR9ZnJhZ21lbnQgdXNlVXNkY0F2YWlsYWJsZUFuZFBlbmRpbmdCYWxhbmNlc0ZyYWdtZW50IG9uIFF1ZXJ5e3ZpZXdlcnt1c2RjQXNzZXQ6YXNzZXRCeVNsdWcoc2x1ZzoidXNkYyIpQHNraXAoaWY6JHNob3VsZEluY2x1ZGVSZXNvdXJjZUJ5SWRlbnRpZmllcil7YXNzZXRDdXJyZW50QmFsYW5jZVYze2JhbGFuY2V7YXZhaWxhYmxlVG9UcmFkZUJhbGFuY2VGaWF0e3ZhbHVlLGN1cnJlbmN5fSxpZH19LGZ1bGxBc3NldEJhbGFuY2VCcmVha2Rvd257aG9sZHNQZW5kaW5nQmFsYW5jZUZpYXR7dmFsdWUsY3VycmVuY3l9LGF2YWlsYWJsZVRvU2VuZEJhbGFuY2VGaWF0e3ZhbHVlLGN1cnJlbmN5fX0saWR9LHVzZGNSZXNvdXJjZTpyZXNvdXJjZUJ5SWRlbnRpZmllcihjYnJuOiRjYnJuKUBpbmNsdWRlKGlmOiRzaG91bGRJbmNsdWRlUmVzb3VyY2VCeUlkZW50aWZpZXIpe19fdHlwZW5hbWUsLi4ub24gVmlld2VyQXNzZXR7YXNzZXRDdXJyZW50QmFsYW5jZVYze2JhbGFuY2V7YXZhaWxhYmxlVG9UcmFkZUJhbGFuY2VGaWF0e3ZhbHVlLGN1cnJlbmN5fSxpZH19LGZ1bGxBc3NldEJhbGFuY2VCcmVha2Rvd257aG9sZHNQZW5kaW5nQmFsYW5jZUZpYXR7dmFsdWUsY3VycmVuY3l9LGF2YWlsYWJsZVRvU2VuZEJhbGFuY2VGaWF0e3ZhbHVlLGN1cnJlbmN5fX19LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH0sLi4ub24gVGllcnNDdXJyZW5jeXtpZH0sLi4ub24gVmlld2VyRXF1aXR5e2lkfSwuLi5vbiBWaWV3ZXJFcXVpdHlPcHRpb257aWR9LC4uLm9uIFZpZXdlclByZWRpY3Rpb25NYXJrZXR7aWR9fSxpZH19YCxhMGE1MzAyZmJkZjdkNmUyYTFmMWJhNjdjNjI1ZjU0ZDBiMDdhMzQwMjNlYjIwZjgwOTQxNTlkZDI3MGU0ZGZhOmBxdWVyeSB1c2VQYWdpbmF0ZWRFcXVpdHlFeHBsb3JlUm93c1JlZmV0Y2hRdWVyeSgkY291bnQ6SW50PTI1LCRjdXJzb3I6U3RyaW5nLCRlcXVpdHlTdWJUeXBlOlJiYUVxdWl0eVByb2R1Y3RTdWJ0eXBlLCRzb3J0T3B0aW9uOlJiYVByb2R1Y3RzU29ydE9wdGlvbiwkc29ydE9yZGVyOlNvcnRPcmRlcil7Li4udXNlUGFnaW5hdGVkRXF1aXR5RXhwbG9yZVJvd3NGcmFnbWVudF8zSTZqY2h9ZnJhZ21lbnQgdXNlUGFnaW5hdGVkRXF1aXR5RXhwbG9yZVJvd3NGcmFnbWVudF8zSTZqY2ggb24gUXVlcnl7cmV0YWlsQnJva2VyYWdle2FsbFByb2R1Y3RzKGZpbHRlcjp7cHJvZHVjdFR5cGU6RVFVSVRZLHF1b3RlQ3VycmVuY3k6IlVTRCIsZXF1aXR5UHJvZHVjdFN1YnR5cGU6JGVxdWl0eVN1YlR5cGV9LHNvcnRPcHRpb246JHNvcnRPcHRpb24sc29ydE9yZGVyOiRzb3J0T3JkZXIsZmlyc3Q6JGNvdW50LGFmdGVyOiRjdXJzb3Ipe2VkZ2Vze25vZGV7YmFzZUN1cnJlbmN5U3ltYm9sLHByb2R1Y3RJZCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCx2b2x1bWUyNGgsbWFya2V0Q2FwLGlkLF9fdHlwZW5hbWV9LGN1cnNvcn0scGFnZUluZm97ZW5kQ3Vyc29yLGhhc05leHRQYWdlfX19fWAsYTM2OGY3MGRkYmE5ODI2MDU5ZjRjMzNjNzgxYmE4YzYyMzBhNDRjNDQ5M2ViMTkyZmY1NDQ5NTgxMWZiZjY0ODpgcXVlcnkgU2VhcmNoRHJvcGRvd25CYXJRdWVyeSgkc2tpcDpCb29sZWFuISwkcXVlcnk6U3RyaW5nLCRmaWx0ZXI6QXNzZXRTZWFyY2hGaWx0ZXIhLCRzb3J0OkFzc2V0U2VhcmNoU29ydCEsJG9yZGVyOlNvcnRPcmRlciEsJGZpcnN0OkludCEsJGNvdW50cnk6U3RyaW5nISl7c2VhcmNoQXNzZXRzOnNlYXJjaEFzc2V0c1YyKHF1ZXJ5OiRxdWVyeSxmaWx0ZXI6JGZpbHRlcixzb3J0OiRzb3J0LG9yZGVyOiRvcmRlcixmaXJzdDokZmlyc3QsY291bnRyeTokY291bnRyeSlAc2tpcChpZjokc2tpcCl7ZWRnZXN7bm9kZXt1dWlkLHNsdWcsaW1hZ2VVcmwsc3ltYm9sLG5hbWUsaWR9fX19YCxhNDhlNWE4ODYwM2Q3Zjg4YzE1NDM3ZWM5ZjI4NzgzNTc1MzNhY2VlYTZmMWJkZjFjNzJhNTFkMTg1MWExZWE4OmBxdWVyeSBIb3dUb0J1eUFzc2V0UXVlcnkoJGFzc2V0U2x1ZzpTdHJpbmchLCRjb3VudHJ5OlN0cmluZyEsJGlzTG9nZ2VkT3V0RGV4RXhwZXJpbWVudDpCb29sZWFuISwkdXJsOlN0cmluZyEpe2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7c3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeSl7aXNUcmFkYWJsZSxpc0RleFRyYWRhYmxlQGluY2x1ZGUoaWY6JGlzTG9nZ2VkT3V0RGV4RXhwZXJpbWVudCl9LGlkfSwuLi5NZXRhRGF0YUhUQkZyYWdtZW50X0tUdEZufWZyYWdtZW50IE1ldGFEYXRhSFRCRnJhZ21lbnRfS1R0Rm4gb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtuYW1lLGRpc3BsYXlTeW1ib2wsaW1hZ2VVcmwsc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeSl7aXNUcmFkYWJsZSxpc0RleCxpc1dhbGxldCxpc0RleFRyYWRhYmxlQGluY2x1ZGUoaWY6JGlzTG9nZ2VkT3V0RGV4RXhwZXJpbWVudCl9LGlkfSxzZW9NZXRhZGF0YSh1cmw6JHVybCl7dGl0bGVUYWdzLHNob3VsZE5vSW5kZXgsc2hvdWxkUmVkaXJlY3QsY2Fub25pY2FsVXJsfX1gLGE0ZTg5MWQ4OWZiNjNhOWNkOTZkOGExMjk3YTM5Mzg2M2RkOTE1MzNjMjRiYjk5MGQxZDdkNTcxMDE5NzkwYmU6YG11dGF0aW9uIHVzZUFjY2VwdEZ1dHVyZXNBZ3JlZW1lbnRNdXRhdGlvbigkaW5wdXQ6QWNjZXB0RnV0dXJlc0FncmVlbWVudElucHV0ISl7YWNjZXB0RnV0dXJlc0FncmVlbWVudChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gQWNjZXB0RnV0dXJlc0FncmVlbWVudFN1Y2Nlc3N7ZHVtbXl9fX1gLGE1MTVlZDMxOTY3OTQwY2FlZmJiMWM3NjVmNzM2ZWM5MGJmNDQ2ZDY1OThjZjI0ODY5NWEzMTRmZGEwMDUyMjk6YHF1ZXJ5IENvbnNlbnRGbG93UXVlcnkoJGVuZHBvaW50OlN0cmluZyEsJHNraXBJc1N0YWtpbmdBQVJlcXVpcmVkOkJvb2xlYW4hKXsuLi51c2VJc1N0YWtpbmdBQVJlcXVpcmVkVU9CRnJhZ21lbnRfM3JwNjBnLC4uLnVzZUdldFNBQVF1ZXN0aW9uc1VPQkZyYWdtZW50XzNzNHFOYX1mcmFnbWVudCB1c2VHZXRTQUFRdWVzdGlvbnNVT0JGcmFnbWVudF8zczRxTmEgb24gUXVlcnl7dmlld2Vye2dlbmVyaWNDb21wbGlhbmNlUXVlc3Rpb25zQnlUeXBlKHR5cGU6U1RBS0lOR19BUFBST1BSSUFURU5FU1NfQVNTRVNTTUVOVClAc2tpcChpZjokc2tpcElzU3Rha2luZ0FBUmVxdWlyZWQpe3F1ZXN0aW9uc3t1dWlkLHRpdGxlLHN1YnRpdGxlLG9wdGlvbnN7dmFsdWUsdGl0bGUsc3VidGl0bGV9LGlkfX0saWR9fWZyYWdtZW50IHVzZUlzU3Rha2luZ0FBUmVxdWlyZWRVT0JGcmFnbWVudF8zcnA2MGcgb24gUXVlcnl7dmlld2Vye3BvbGljeUV2YWx1YXRpb24oZW5kcG9pbnQ6JGVuZHBvaW50KUBza2lwKGlmOiRza2lwSXNTdGFraW5nQUFSZXF1aXJlZCl7c3RhdHVzLGZhaWx1cmVSZWFzb259LGlkfX1gLGE1NmI2NTgzYjg3MmZiOWM1NzJiNjBlODU0MDhmMTRiODkzMzc3NTcxZjJjMmI3YzJhMmQwMTNlN2Q0YTYxMTc6YG11dGF0aW9uIHVzZVVPQlN1Ym1pdEVtcGxveW1lbnRNdXRhdGlvbigkaW5wdXQ6VXBkYXRlU2VsZlNlcnZpY2VEYXRhSW5wdXQhKXt1cGRhdGVTZWxmU2VydmljZURhdGEoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFVwZGF0ZVNlbGZTZXJ2aWNlRGF0YVN1Y2Nlc3N7X190eXBlbmFtZX0sLi4ub24gQmFkUmVxdWVzdEVycm9ye21lc3NhZ2UsY29kZX19fWAsYTVjYzJmOWVjMDcwNWQ3OTE2MTgyZDA4NGEzNmJiMDkxMWEzYTIxNGI3MTI5M2RkNTZiOWU0NjcxMGEyNDRhOTpgbXV0YXRpb24gdXNlQ2xvc2VBbGxQb3NpdGlvbnNBVFNNdXRhdGlvbigkaW5wdXQ6Q2xvc2VBbGxQb3NpdGlvbnNJbnB1dCEpe2Nsb3NlQWxsUG9zaXRpb25zKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBDbG9zZUFsbFBvc2l0aW9uc1N1Y2Nlc3N7X190eXBlbmFtZSxoYXNBbGxTdWNjZWVkZWQscmVzcG9uc2Vze19fdHlwZW5hbWUsLi4ub24gQ2xvc2VQb3NpdGlvblN1Y2Nlc3N7X190eXBlbmFtZSxvcmRlcnt1dWlkLHByb2R1Y3RJZCxjbGllbnRPcmRlcklkLHNpZGUsaWR9fSwuLi5vbiBQb3NpdGlvbk9wZXJhdGlvbkVycm9ye19fdHlwZW5hbWUsY29ycmVsYXRpb25JZCxtZXNzYWdlLGNvZGUsb3BlcmF0aW9ufX0sdmlld2Vye2lkfX0sLi4ub24gUG9zaXRpb25PcGVyYXRpb25FcnJvcntfX3R5cGVuYW1lLGNvcnJlbGF0aW9uSWQsbWVzc2FnZSxjb2RlLG9wZXJhdGlvbn19fWAsYTYwZWI5NTdkOTlmMDI5OTQwYWEyM2RhMjBhOWIyZGZiNTFlMWIwN2E3MzYzMTJjMTdjZmFiNjM3NDUyYjY4YjpgcXVlcnkgQWR2YW5jZWRKb2luQ29udGVudFF1ZXJ5KCRyZWZlckNvZGU6U3RyaW5nISwkc2tpcDpCb29sZWFuISl7Li4udXNlR2V0UmVmZXJyYWxUZW1wbGF0ZUZyYWdtZW50LC4uLnVzZVZhbGlkYXRlUmVmZXJyYWxDb2RlRnJhZ21lbnR9ZnJhZ21lbnQgdXNlR2V0UmVmZXJyYWxUZW1wbGF0ZUZyYWdtZW50IG9uIFF1ZXJ5e3JlZmVycmFsVGVtcGxhdGUocmVmZXJDb2RlOiRyZWZlckNvZGUpQHNraXAoaWY6JHNraXApe3RlbXBsYXRlSWR9fWZyYWdtZW50IHVzZVZhbGlkYXRlUmVmZXJyYWxDb2RlRnJhZ21lbnQgb24gUXVlcnl7dmFsaWRhdGVSZWZlcnJhbENvZGUocmVmZXJDb2RlOiRyZWZlckNvZGUpQHNraXAoaWY6JHNraXApe2lzVmFsaWR9fWAsYTYxMGIyYzNjYzFmYTgxYzE0ZDdmODMzN2JmODU3MjcxZDFkNjJkNDQ4MzdjMWI5YmUyYWQ5YzBhODUzY2M0NTpgcXVlcnkgSG93VG9CdXlSZWZyZXNoZWRRdWVyeSgkY3VycmVuY3k6VGlja2VyU3ltYm9sISwkYXNzZXRTbHVnOlN0cmluZyEsJGNvdW50cnk6U3RyaW5nISwkaXNMb2dnZWRPdXREZXhFeHBlcmltZW50OkJvb2xlYW4hLCRsb2NhbGU6TG9jYWxlISl7Li4uSGVyb1NlY3Rpb25GcmFnbWVudF8xMFBjaGosLi4uSW50cm9TZWN0aW9uRnJhZ21lbnRfMVd2a05RLC4uLlN0ZXBzU2VjdGlvbkZyYWdtZW50XzFXdmtOUSwuLi5GYXFTZWN0aW9uRnJhZ21lbnRfNGs5aUhuLC4uLlNpbWlsYXJBc3NldHNSZWZyZXNoZWRGcmFnbWVudF9KVThmUywuLi5SZXNlYXJjaEFzc2V0UmVmcmVzaGVkSFRCRnJhZ21lbnR9ZnJhZ21lbnQgRmFxU2VjdGlvbkZyYWdtZW50XzRrOWlIbiBvbiBRdWVyeXsuLi51c2VHZXRIb3dUb0J1eUZhcURhdGFGcmFnbWVudF80azlpSG59ZnJhZ21lbnQgSGVyb1NlY3Rpb25GcmFnbWVudF8xMFBjaGogb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtuYW1lLGRpc3BsYXlTeW1ib2wsaW1hZ2VVcmwsbGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3ByaWNlLGlkfSxpZH19ZnJhZ21lbnQgSW50cm9TZWN0aW9uRnJhZ21lbnRfMVd2a05RIG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxzdXBwb3J0ZWRDb250ZXh0c0ZvckxvY2F0aW9uKGNvdW50cnlDb2RlOiRjb3VudHJ5KXtpc1RyYWRhYmxlLGlzRGV4LGlzV2FsbGV0LGlzRGV4VHJhZGFibGVAaW5jbHVkZShpZjokaXNMb2dnZWRPdXREZXhFeHBlcmltZW50KX0saWR9fWZyYWdtZW50IE1hcmtldFN0YXRzSFRCRnJhZ21lbnRfMWVoQ3B3IG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7ZGlzcGxheVN5bWJvbCxwbGF0Zm9ybU5hbWUsc2x1ZyxwcmljZURhdGFGb3JEYXlWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cXVvdGVze3ByaWNlLHF1b3RlQ3VycmVuY3l9fSxtYXJrZXRDYXA6bWFya2V0Q2FwVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLGNpcmN1bGF0aW5nU3VwcGx5LHZvbHVtZTI0SDp2b2x1bWUyNGhWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSksYWxsVGltZUhpZ2g6YWxsVGltZUhpZ2hWNChxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7dmFsdWV9LHNpZ25hbHN7dHJhZGFibGVNYXJrZXRDYXBSYW5rLGhvbGRUaW1le3ZhbHVlfX0saWR9fWZyYWdtZW50IFByb2dyYW1tYXRpY0NvbnRlbnRSZXNlYXJjaEhUQkZyYWdtZW50XzNJazBuUCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe25hbWUsZGlzcGxheVN5bWJvbCxkb21pbmFuY2UsY2lyY3VsYXRpbmdTdXBwbHksbWF4U3VwcGx5LHRvdGFsU3VwcGx5LGNtY1ZvbHVtZTdEKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSxjbWNWb2x1bWUzMEQocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLG1hcmtldENhcFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSxmdWxseURpbHV0ZWRNYXJrZXRDYXAocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpLHN1cHBvcnRlZENvbnRleHRzRm9yTG9jYXRpb24oY291bnRyeUNvZGU6JGNvdW50cnkpe2lzVHJhZGFibGUsaXNEZXhUcmFkYWJsZUBpbmNsdWRlKGlmOiRpc0xvZ2dlZE91dERleEV4cGVyaW1lbnQpfSxwcmljZURhdGFGb3JIb3VyOnByaWNlRGF0YUZvckhvdXJWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cGVyY2VudENoYW5nZSxlYXJsaWVzdFF1b3Rle3ByaWNlfX0scHJpY2VEYXRhRm9yV2VlazpwcmljZURhdGFGb3JXZWVrVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3BlcmNlbnRDaGFuZ2UsZWFybGllc3RRdW90ZXtwcmljZX19LHByaWNlRGF0YUZvckRheTpwcmljZURhdGFGb3JEYXlWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cGVyY2VudENoYW5nZSxlYXJsaWVzdFF1b3Rle3ByaWNlfX0sdm9sdW1lMjRoOnZvbHVtZTI0aFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KSxhbGxUaW1lSGlnaDphbGxUaW1lSGlnaFY0KHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXt2YWx1ZSxkYXRlfSxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cHJpY2UsaWR9LHNpZ25hbHN7cGVyY2VudEhvbGRpbmd7cmFua319LGlkfX1mcmFnbWVudCBSZXNlYXJjaEFzc2V0UmVmcmVzaGVkSFRCRnJhZ21lbnQgb24gUXVlcnl7Li4uUHJvZ3JhbW1hdGljQ29udGVudFJlc2VhcmNoSFRCRnJhZ21lbnRfM0lrMG5QLC4uLk1hcmtldFN0YXRzSFRCRnJhZ21lbnRfMWVoQ3B3LC4uLlRva2VuUmV0dXJuVG9vbEZyYWdtZW50XzFodEtObyxhc3NldEJ5U2x1ZyhzbHVnOiRhc3NldFNsdWcpe2Rpc3BsYXlTeW1ib2wsaWR9fWZyYWdtZW50IFNpbWlsYXJBc3NldHNSZWZyZXNoZWRGcmFnbWVudF9KVThmUyBvbiBRdWVyeXt0b3BQUFBzOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJwcmljZS1wcmVkaWN0aW9uIixyZXF1ZXN0SW5wdXQ6e2RlZmF1bHRSZXF1ZXN0SW5wdXQ6e2NvdW50cnlDb2RlOiRjb3VudHJ5LHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAscmFuZG9taXplZENvbmZpZzp7cG9vbFNpemU6NTAsc2FtcGxlU2l6ZToxMn19fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzQXNzZXRFbnRpdHl7bmFtZSxpY29uVXJsLHBhZ2VVcmx9fX0sdG9wQURQOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJwcmljZSIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0Ontjb3VudHJ5Q29kZTokY291bnRyeSxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHJhbmRvbWl6ZWRDb25maWc6e3Bvb2xTaXplOjUwLHNhbXBsZVNpemU6MTJ9fX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0Fzc2V0RW50aXR5e25hbWUsaWNvblVybCxwYWdlVXJsfX19LHRvcEhUQjppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToiaG93LXRvLWJ1eSIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0Ontjb3VudHJ5Q29kZTokY291bnRyeSxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLGZpbHRlcnM6W0ZJTFRFUl9UUkFEQUJMRV0scmFuZG9taXplZENvbmZpZzp7cG9vbFNpemU6NTAsc2FtcGxlU2l6ZToxMn19fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzQXNzZXRFbnRpdHl7bmFtZSxpY29uVXJsLHBhZ2VVcmx9fX0sdG9wMjBBc3NldFRvUmFuZG9tRmlhdDppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToiY29udmVydGVyIixyZXF1ZXN0SW5wdXQ6e2NvbnZlcnRlclJlcXVlc3RJbnB1dDp7YmFzZVN5bWJvbDokYXNzZXRTbHVnLHRhcmdldFN5bWJvbDokYXNzZXRTbHVnLGJhc2U6e2VudGl0eVR5cGU6RU5USVRZX1RZUEVfQVNTRVQsc29ydDpTT1JUX1RZUEVfTUFSS0VUX0NBUCx0b3BOOjIwfSx0YXJnZXQ6e2VudGl0eVR5cGU6RU5USVRZX1RZUEVfRklBVH0scmVxdWVzdEFtb3VudDoxMn19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NDb252ZXJ0ZXJFbnRpdHl7YmFzZXtuYW1lLGljb25Vcmx9LHRhcmdldHtuYW1lfSxwYWdlVXJsfX19LHJhbmRvbUZpYXRUb1JhbmRvbUZpYXQ6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6ImNvbnZlcnRlciIscmVxdWVzdElucHV0Ontjb252ZXJ0ZXJSZXF1ZXN0SW5wdXQ6e2Jhc2VTeW1ib2w6JGFzc2V0U2x1Zyx0YXJnZXRTeW1ib2w6JGFzc2V0U2x1ZyxiYXNlOntlbnRpdHlUeXBlOkVOVElUWV9UWVBFX0ZJQVR9LHRhcmdldDp7ZW50aXR5VHlwZTpFTlRJVFlfVFlQRV9GSUFUfSxyZXF1ZXN0QW1vdW50OjEyfX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0NvbnZlcnRlckVudGl0eXtiYXNle25hbWUsc3ltYm9sfSx0YXJnZXR7bmFtZX0scGFnZVVybH19fSxyYW5kb21IVEI6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6Imhvdy10by1idXkiLHJlcXVlc3RJbnB1dDp7ZGVmYXVsdFJlcXVlc3RJbnB1dDp7c2x1ZzokYXNzZXRTbHVnLGNvdW50cnlDb2RlOiRjb3VudHJ5LGZpbHRlcnM6W0ZJTFRFUl9UUkFEQUJMRV0sc29ydDpTT1JUX1RZUEVfTUFSS0VUX0NBUCxyYW5kb21pemVkQ29uZmlnOntzYW1wbGVTaXplOjEyfX19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NBc3NldEVudGl0eXtuYW1lLGljb25VcmwscGFnZVVybH19fSx0b3BQcmVkaWN0aW9uTWFya2V0czppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToicHJlZGljdGlvbnMiLHJlcXVlc3RJbnB1dDp7cHJlZGljdGlvbk1hcmtldFJlcXVlc3RJbnB1dDp7c29ydDpTT1JUX1RZUEVfVk9MVU1FLHJlcXVlc3RBbW91bnQ6MTB9fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzUHJlZGljdGlvbk1hcmtldEVudGl0eXtuYW1lOnRpdGxlLGljb25VcmwscGFnZVVybH19fX1mcmFnbWVudCBTdGVwc1NlY3Rpb25GcmFnbWVudF8xV3ZrTlEgb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtuYW1lLGRpc3BsYXlTeW1ib2wsc3VwcG9ydGVkQ29udGV4dHNGb3JMb2NhdGlvbihjb3VudHJ5Q29kZTokY291bnRyeSl7aXNUcmFkYWJsZSxpc0RleCxpc1dhbGxldCxpc0RleFRyYWRhYmxlQGluY2x1ZGUoaWY6JGlzTG9nZ2VkT3V0RGV4RXhwZXJpbWVudCl9LGlkfX1mcmFnbWVudCBUb2tlblJldHVyblRvb2xGcmFnbWVudF8xaHRLTm8gb24gUXVlcnl7YXNzZXRCeVNsdWcoc2x1ZzokYXNzZXRTbHVnKXtwbGF0Zm9ybU5hbWUsZGlzcGxheVN5bWJvbCxhbGw6cHJpY2VEYXRhRm9yQWxsVjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3F1b3Rlc3twcmljZSx0aW1lc3RhbXB9fSxpZH19ZnJhZ21lbnQgdXNlR2V0SG93VG9CdXlGYXFEYXRhRnJhZ21lbnRfNGs5aUhuIG9uIFF1ZXJ5e2Fzc2V0QnlTbHVnKHNsdWc6JGFzc2V0U2x1Zyl7bmFtZSxzdXBwb3J0ZWRDb250ZXh0c0ZvckxvY2F0aW9uKGNvdW50cnlDb2RlOiRjb3VudHJ5KXtpc1RyYWRhYmxlLGlzV2FsbGV0LGlzRGV4LGlzRGV4VHJhZGFibGV9LGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtxdW90ZUN1cnJlbmN5LHByaWNlLHRpbWVzdGFtcCxpZH0saWR9fWAsYTYzN2RiMzViYTVlZWFlYTgzOWEzNzU2OTNmOTAzYTUzY2EyNDYxMWVkYjhlMDEyM2RlYTQwZGEzMzUyMTQwOTpgbXV0YXRpb24gVzhGb3JtR1FMU3VibWl0TXV0YXRpb24oJGlucHV0OlN1Ym1pdFc4SW5wdXQhKXtzdWJtaXRXOChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gU3VibWl0VzhTdWNjZXNze3N0YXR1cyxtZXNzYWdlLHN1Ym1pdHRlZEF0LHZpZXdlcntfX3R5cGVuYW1lLGlkfX0sLi4ub24gU3VibWl0VzhBY3Rpb25hYmxlRXJyb3J7Y29ycmVsYXRpb25JZCx0aXRsZSxkZXNjcmlwdGlvbn19fWAsYTcyMTU5MmIxYWQxNGNkOGY0M2YwMTM5Y2Y2NjBiMzQxMmRkNzU1NThmYjVlNjM3ZmFiYjM5MzhiMGJkNWM5OTpgcXVlcnkgQ0FBcHByb3ByaWF0ZW5lc3NBc3Nlc3NtZW50Rmxvd1F1ZXJ5KCRxdWVzdGlvblR5cGU6R2VuZXJpY0NvbXBsaWFuY2VRdWVzdGlvblR5cGUhLCRpc0V4aXN0aW5nVXNlclVwZGF0ZTpCb29sZWFuISl7dmlld2Vye2dlbmVyaWNDb21wbGlhbmNlUXVlc3Rpb25zQnlUeXBlKHR5cGU6JHF1ZXN0aW9uVHlwZSl7cXVlc3Rpb25ze3V1aWQsdGl0bGUsc3VidGl0bGUsb3B0aW9uc3t2YWx1ZSx0aXRsZSxzdWJ0aXRsZX0saWR9fSxpZH0sLi4uVW5pZmllZENBQVJldmlld0ZyYWdtZW50XzU3aXUwfWZyYWdtZW50IFVuaWZpZWRDQUFSZXZpZXdGcmFnbWVudF81N2l1MCBvbiBRdWVyeXt2aWV3ZXJ7Z2VuZXJpY0NvbXBsaWFuY2VBbnN3ZXJzQnlRdWVzdGlvblR5cGUodHlwZTokcXVlc3Rpb25UeXBlKUBpbmNsdWRlKGlmOiRpc0V4aXN0aW5nVXNlclVwZGF0ZSl7YW5zd2Vyc3tvcHRpb257dmFsdWUsdGl0bGV9LHF1ZXN0aW9uS2V5fX0saWR9fWAsYTdkNDVkNThkOTNiY2ZmNzJkMzYwMjAwMGZjZjZlMDhmNGE4MmM1OWU4YzA5M2M5MTI1YjExYTllMjI3ODJhZjpgbXV0YXRpb24gVzhGb3JtR1FMVXBkYXRlTXV0YXRpb24oJGlucHV0OlVwZGF0ZVc4SW5wdXQhKXt1cGRhdGVXOChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gVXBkYXRlVzhTdWNjZXNze2Zvcm1EYXRhe3RheFJlc2lkZW5jeUNvdW50cnksdGluLGZvcmVpZ25UaW4sY2l0aXplbnNoaXAsaXNUcmVhdHlDbGFpbWVkLGZpcnN0TmFtZSxsYXN0TmFtZSxkYXRlT2ZCaXJ0aCxwbGFjZU9mQmlydGgsaXNTaWduZWQsc2lnbkRhdGUscGVybWFuZW50UmVzaWRlbmNlQWRkcmVzc3tsaW5lMSxsaW5lMixjaXR5LHN0YXRlLHBvc3RhbENvZGUsY291bnRyeXtjb2RlLG5hbWV9fSxtYWlsaW5nQWRkcmVzc3tsaW5lMSxsaW5lMixjaXR5LHN0YXRlLHBvc3RhbENvZGUsY291bnRyeXtjb2RlLG5hbWV9fX0sZmllbGRFcnJvcnN7ZmllbGQsbWVzc2FnZX0sdmlld2Vye19fdHlwZW5hbWUsaWR9fSwuLi5vbiBVcGRhdGVXOEFjdGlvbmFibGVFcnJvcntjb3JyZWxhdGlvbklkLHRpdGxlLGRlc2NyaXB0aW9ufX19YCxhODJjY2Y3NzM0M2I4MWM3NGM4YzE4OGVjZDllZmQ5M2IzNDVkMzliODY1ZDJmNWE2NzY1NWVhYTc5YjJhOWQzOmBxdWVyeSBFeHBsb3JlQnV0dG9uV2l0aEluY2VudGl2ZU1vZGFsUXVlcnl7Li4udXNlVGltZWJveEluY2VudGl2ZX1mcmFnbWVudCB1c2VUaW1lYm94SW5jZW50aXZlIG9uIFF1ZXJ5e3ZpZXdlcnt1c2VySW5jZW50aXZlU3RhdHVze2lzRWxpZ2libGUsaW5jZW50aXZlRGV0YWlsc3thbW91bnQsc291cmNlQ3VycmVuY3ksdGFyZ2V0Q3VycmVuY3l9LGV4cGlyZXNBdH0saWR9fWAsYTgzZmE5YjQyNWQ0NjFkOGM3NmM0Mzc2M2MyMTUwMWExZmVmYjBlNzljNWI5ZWZjMTEzMTk3YTEyOGMxNDlkMjpgbXV0YXRpb24gdXNlQ29tcGxldGVGdXR1cmVzT25ib2FyZGluZ011dGF0aW9ue2NvbXBsZXRlRnV0dXJlc09uYm9hcmRpbmd7X190eXBlbmFtZSwuLi5vbiBDb21wbGV0ZUZ1dHVyZXNPbmJvYXJkaW5nU3VjY2Vzc3tfX3R5cGVuYW1lfSwuLi5vbiBHZW5lcmljRXJyb3J7bWVzc2FnZSxjb2RlfX19YCxhOTM5N2Q5ZWQ2MThiMGRlYmZkYmYwMWY5NGI3Njk5MzliMmMxOTg5OTY5NDE2NWJiOTJjMGZiZTY1NGQ2ZmNkOmBxdWVyeSBDb2luYmFzZUdyYXBoUUxUcmFuc3BvcnRGdXR1cmVzUXVlcnl7dmlld2Vye2Z1dHVyZXNQb3NpdGlvbnNWM3twb3NpdGlvbnN7aWQscHJvZHVjdE5hbWUsc2lkZSxhbW91bnQsYXZnRW50cnlQcmljZSxjdXJyZW50UHJpY2UsdW5yZWFsaXplZFBubCxjb250cmFjdFNpemUsbm90aW9uYWxWYWx1ZSxmdW5kaW5nUG5sLHJvbGxEYXRlLHZlbnVlLGV4cGlyeVV0YyxwcmVkaWN0ZWRMaXF1aWRhdGlvblByaWNlc3tzdGFuZGFyZExpcXVpZGF0aW9uUHJpY2V7dmFsdWV9LGludHJhZGF5TGlxdWlkYXRpb25QcmljZXt2YWx1ZX0saWR9fX0saWR9fWAsYTlkODc5MzE3ZmE1OTBhM2M2MTM1YmY3NmQyNjY4NWViOWJlMGMyZmE0MGZhMWEwODllNzQxYWFlYjc4MWI5ZjpgbXV0YXRpb24gVzlGb3JtR1FMTXV0YXRpb24oJGlucHV0Olc5Rm9ybURhdGFJbnB1dFYyISl7c3VibWl0VzlGb3JtVjIoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lfX1gLGFiZDY3Y2M1NTgxYTVlZDA4NzM5ZGM3OWQ3NzE5ZjIwNjIyOTFkNzE2MjNjYWYyMzAwMWUzYTdjNzBjZjIzYTA6YHF1ZXJ5IHVzZVJlbWVkaWF0aW9uUHJlZmlsbFF1ZXJ5e3ZpZXdlcntwcmVmaWxsU2VsZkNlcnRpZmljYXRpb257bGVnYWxOYW1lLGRhdGVPZkJpcnRoLHBsYWNlT2ZCaXJ0aCxhZGRyZXNze2xpbmUxLGxpbmUyLGxpbmUzLGNpdHksc3RhdGUscG9zdGFsQ29kZSxjb3VudHJ5e25hbWV9fSxqdXJpc2RpY3Rpb25ze2NvdW50cnlDb2RlLGNvdW50cnlOYW1lLHdhc1RpblByb3ZpZGVkLGlzUmVxdWlyZWQsaXNzdWVzVGluLHRpbn19LGlkfX1gLGFjOGZiMGRmYWY1M2Q5OTc2MzRhNDEzNmZlYzVjYTNlZmE5ZGM2NzI5MjQxYThjY2YzNGUzNDhmOGM0MzE5YTE6YHF1ZXJ5IEN1cnJlbmN5SWNvblV1aWRRdWVyeSgkdXVpZDpVdWlkISl7YXNzZXRCeVV1aWQodXVpZDokdXVpZCl7aW1hZ2VVcmwsY29sb3IsaWR9fWAsYWQzYjcxNTExYjAxNjU3MGEwMzhkYzVkYzIyMTdjMTA5ZjdiYTBlMzhlMjcwZTFlODc0NTYxNzYwOTEwMGM1ODpgbXV0YXRpb24gdXNlU3VibWl0Q29sbGF0ZXJhbEJhbGFuY2VVcGRhdGVBVFNNdXRhdGlvbigkY29sbGF0ZXJhbEN1cnJlbmN5OlRpY2tlclN5bWJvbCEsJHRhcmdldEFtb3VudDpTdHJpbmchLCRpbnB1dEN1cnJlbmN5OlRpY2tlclN5bWJvbCEsJHRhcmdldFBvc2l0aW9uOlN0cmluZyEsJGlkZW06U3RyaW5nISl7dXBkYXRlQ29sbGF0ZXJhbEJhbGFuY2UoaW5wdXQ6e2NvbGxhdGVyYWxDdXJyZW5jeTokY29sbGF0ZXJhbEN1cnJlbmN5LHRhcmdldEFtb3VudDokdGFyZ2V0QW1vdW50LGlucHV0Q3VycmVuY3k6JGlucHV0Q3VycmVuY3ksdGFyZ2V0UG9zaXRpb246JHRhcmdldFBvc2l0aW9uLGlkZW06JGlkZW19KXtfX3R5cGVuYW1lLC4uLm9uIFVwZGF0ZUNvbGxhdGVyYWxCYWxhbmNlU3VjY2Vzc3tpZGVtfSwuLi5vbiBDb2xsYXRlcmFsQmFsYW5jZUVycm9ye2NvZGUsbWluQ29sbGF0ZXJhbEJhbGFuY2UsbWF4Q29sbGF0ZXJhbEJhbGFuY2V9fX1gLGFkM2U5NjdkNjQ4ZmFiYTVlOGRkN2Q2ZTU5MmUyMjMxZjI1NjU1ZmVmYTFmNzU0NTgwNzIwMTIxNzMxODNlZTM6YG11dGF0aW9uIHVzZVVuaWZpZWRVcGRhdGVFbWFpbFByZWZlcmVuY2VNdXRhdGlvbigkaW5wdXQ6VXBkYXRlTWV0YU5vdGlmaWNhdGlvblByZWZlcmVuY2VJbnB1dCEpe3VwZGF0ZU1ldGFOb3RpZmljYXRpb25QcmVmZXJlbmNlKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBVcGRhdGVNZXRhTm90aWZpY2F0aW9uUHJlZmVyZW5jZVN1Y2Nlc3N7X190eXBlbmFtZSxkdW1teX0sLi4ub24gQmFkUmVxdWVzdEVycm9ye19fdHlwZW5hbWUsY29kZSxtZXNzYWdlfX19YCxhZDQ3MzFjMzk3YzQwOWQ4YzNiNTRkMWMwYWZkMWNjNWU1ZGM1NWJlZjY2NmQ5MmYzYjc4YTU4ODM4ZDA3MDZlOmBxdWVyeSBTb2NpYWxQcm9vZkJhbm5lclF1ZXJ5e3VpQ29tcG9uZW50c0J5U3VyZmFjZUxvZ2dlZE91dChzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfUkVGRVJSQUxTX0hVQiIsY2F0ZWdvcnlOYW1lczpbIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9SRUZFUlJBTFNfSk9JTl9TT0NJQUxfUFJPT0YiXSxza2lwQ2FjaGU6dHJ1ZSl7ZWRnZXN7bm9kZXtjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGVUZXh0RmllbGR7dGV4dH19LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX0saWR9fWAsYWRkYzcxYTJkYWJjMDg2ZWVlY2NkOTYwZTZjMzZiNTkwY2IxYTlmMzRlMjEzMjJlNGIyM2UwOWJjMTQ2MWQyMTpgcXVlcnkgQ3J5cHRvY3VycmVuY3lTZWxlY3RvclJlZmV0Y2hhYmxlKCRjb3VudHJ5OlN0cmluZyEsJGN1cnNvcjpTdHJpbmcsJGZpbHRlcjpBc3NldFNlYXJjaEZpbHRlciEsJGZpcnN0OkludCEsJG9yZGVyOlNvcnRPcmRlciEsJHF1ZXJ5OlN0cmluZyEsJHNvcnQ6QXNzZXRTZWFyY2hTb3J0ISl7Li4uQ3J5cHRvY3VycmVuY3lTZWxlY3RvckZyYWdtZW50XzJ2UVYyV31mcmFnbWVudCBDcnlwdG9jdXJyZW5jeVNlbGVjdG9yRnJhZ21lbnRfMnZRVjJXIG9uIFF1ZXJ5e3NlYXJjaEFzc2V0czpzZWFyY2hBc3NldHNWMihxdWVyeTokcXVlcnksZmlsdGVyOiRmaWx0ZXIsc29ydDokc29ydCxvcmRlcjokb3JkZXIsZmlyc3Q6JGZpcnN0LGNvdW50cnk6JGNvdW50cnksYWZ0ZXI6JGN1cnNvcil7ZWRnZXN7bm9kZXt1dWlkLHNsdWcsc3ltYm9sLG5hbWUsaWQsX190eXBlbmFtZX0sY3Vyc29yfSxwYWdlSW5mb3tlbmRDdXJzb3IsaGFzTmV4dFBhZ2V9fX1gLGFkZjQwN2Y4ZmJhNWI2ODNmOThkYWE2NzVlMDkxMTBjMDE2YTgzMjdkMDg0ZmI2YjMzZDY3YTJjYTYxMDIwZDE6YHF1ZXJ5IFdob2xlc2FsZUludmVzdG9yR0JGbG93UXVlcnkoJHF1ZXN0aW9uVHlwZTpHZW5lcmljQ29tcGxpYW5jZVF1ZXN0aW9uVHlwZSEpe3ZpZXdlcntnZW5lcmljQ29tcGxpYW5jZVF1ZXN0aW9uc0J5VHlwZSh0eXBlOiRxdWVzdGlvblR5cGUpe2hlYWRpbmcsYW5zd2VyTWV0YURhdGF7aGFzRXhjZWVkZWRNYXhBdHRlbXB0c30scXVlc3Rpb25ze3V1aWQsdGl0bGUsc3VidGl0bGUsaW5wdXRUeXBlLGZyZWVUZXh0SW5wdXRSZWdleCxzdXBwb3J0c0ZyZWVUZXh0SW5wdXQsb3B0aW9uc3t2YWx1ZSx0aXRsZSxzdWJ0aXRsZX0sbGFzdEF0dGVtcHRlZEFuc3dlcnN7b3B0aW9ue3ZhbHVlLHRpdGxlLHN1YnRpdGxlfX0saWR9fSxpZH19YCxhZjBjZTYyZDI2MGI4OGE3MTFiOTM3MTQyZjRmNGVlYjQ3MjNiMGIzY2I3NTkxOWZlODJiMTA3OWRmODJmNjdhOmBtdXRhdGlvbiBTaWduYXR1cmVSZXF1ZXN0ZWRXYWdtaU11dGF0aW9uKCRpbnB1dDpXT0FWZXJpZnlBbmRBZGRBZGRyZXNzSW5wdXQhKXt3T0FWZXJpZnlBbmRBZGRBZGRyZXNzKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBXT0FWZXJpZnlBbmRBZGRBZGRyZXNzU3VjY2Vzc3tpc1ZlcmlmaWVkfSwuLi5vbiBXT0FWZXJpZnlBbmRBZGRBZGRyZXNzRXJyb3J7ZXJyb3J9fX1gLGFmNTE5NjA5YWZhNTI5MjIwNGJiYTA2NDA4MjQzNzc4MWNkMTJiN2FiY2JhZGEyOTE4MjI0ZjgyZWFiZDNjMzE6YG11dGF0aW9uIHVzZUluZGljaWFGYWlsdXJlU3VibWl0dGVyTXV0YXRpb24oJGlucHV0OlN1Ym1pdFNlbGZDZXJ0aWZpY2F0aW9uSW5kaWNpYVJlYXNvbnNJbnB1dCEpe3N1Ym1pdFNlbGZDZXJ0aWZpY2F0aW9uSW5kaWNpYVJlYXNvbnMoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFN1Ym1pdFNlbGZDZXJ0aWZpY2F0aW9uSW5kaWNpYVJlYXNvbnNTdWNjZXNze21lc3NhZ2V9LC4uLm9uIFN1Ym1pdFNlbGZDZXJ0aWZpY2F0aW9uSW5kaWNpYVJlYXNvbnNBY3Rpb25hYmxlRXJyb3J7Y29ycmVsYXRpb25JZCx0aXRsZSxkZXNjcmlwdGlvbn19fWAsYWZlMzJjMDhkMTI1ZjYwMDNkYzI5ZmQ4MDRjOTc0Y2Y0Yzg0N2NmNGIxYzAyNDcxZTdlMTgyNzM3ZWNhZGQ0Njpgc3Vic2NyaXB0aW9uIHVzZUludHJhZGF5TGV2ZXJhZ2VXaW5kb3dEYXRhU3Vic2NyaXB0aW9uKCRpbnB1dDpGdXR1cmVzQ3VycmVudE1hcmdpbldpbmRvd0lucHV0ISl7ZnV0dXJlc0N1cnJlbnRNYXJnaW5XaW5kb3dVcGRhdGVkKGlucHV0OiRpbnB1dCl7ZnV0dXJlc0N1cnJlbnRNYXJnaW5XaW5kb3d7dHlwZSxlbmRUaW1lLGlzSW50cmFkYXlNYXJnaW5LaWxsU3dpdGNoRW5hYmxlZCxpc0ludHJhZGF5TWFyZ2luRW5yb2xsbWVudEtpbGxTd2l0Y2hFbmFibGVkLGlkfX19YCxiMjIyNWNlNTQxYjRiMTdlMzBmMGI2OTc1Yjk1NDJjMDI0NDlhOWNhOTVkMTA1MWExYWU0OWNiOWY1OTc2NTE0OmBxdWVyeSBQYXlMaW5rQ2xhaW1QYWdlUXVlcnkoJGNsYWltVG9rZW46U3RyaW5nISwkc2tpcFAyUENsYWltRGV0YWlsczpCb29sZWFuISl7cDJwQ2xhaW1EZXRhaWxzKGNsYWltVG9rZW46JGNsYWltVG9rZW4pQHNraXAoaWY6JHNraXBQMlBDbGFpbURldGFpbHMpey4uLlBheUxpbmtDbGFpbUNvbnRlbnRGcmFnbWVudCwuLi5QYXlMaW5rQ2xhaW1NZXRhVGFnc0ZyYWdtZW50LGlkfX1mcmFnbWVudCBQYXlMaW5rQ2xhaW1Db250ZW50RnJhZ21lbnQgb24gUDJQU2VuZENsYWltRGV0YWlsc3tjbGFpbVN0YXR1cyxjbGFpbVRva2VuLGNsYWltRXhwaXJlc0F0LHNlbmREZXRhaWxze25vdGUsc2VuZGVyTmFtZSxzZW5kZXJBdmF0YXJVcmwsZmlhdEFtb3VudHt2YWx1ZSxjdXJyZW5jeX0sY3J5cHRvQW1vdW50e3ZhbHVlLGN1cnJlbmN5fX19ZnJhZ21lbnQgUGF5TGlua0NsYWltTWV0YVRhZ3NGcmFnbWVudCBvbiBQMlBTZW5kQ2xhaW1EZXRhaWxze2NsYWltU3RhdHVzLHNlbmREZXRhaWxze3NlbmRlck5hbWUsZmlhdEFtb3VudHt2YWx1ZSxjdXJyZW5jeX0sY3J5cHRvQW1vdW50e2N1cnJlbmN5fX19YCxiMmMyMThkMGU1YTY1ZDgzNDMwNTIwOTRhYzBiNDc1MzQyYzNlNjc5YjY2ZjNlYjgxZGZiODllYTU3NzM0MTllOmBtdXRhdGlvbiBXOEZvcm1HUUxDdXJlTXV0YXRpb24oJGlucHV0OkN1cmVXOEluZGljaWFJbnB1dCEpe2N1cmVXOEluZGljaWEoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIEN1cmVXOEluZGljaWFTdWNjZXNze3Nlc3Npb25Ub2tlbix3ZWJVcmwsdmlld2Vye19fdHlwZW5hbWUsaWR9fSwuLi5vbiBDdXJlVzhJbmRpY2lhQWN0aW9uYWJsZUVycm9ye2NvcnJlbGF0aW9uSWQsdGl0bGUsZGVzY3JpcHRpb259fX1gLGI0MGMzYzJhOThlYjFmM2U1NzEzZDJmMmY0OGE2NDUxOTBmMDJhMDg5NWU2NzlkNjRkZjYzMzhiYTkyZGRmMjQ6YHF1ZXJ5IHVzZUF2YWlsYWJsZVVzZXJuYW1lQVRTUXVlcnl7dmlld2Vye3RyYWRpbmdDb21wZXRpdGlvbnthdmFpbGFibGVVc2VybmFtZX0saWR9fWAsYjQzZjlmOGI3OWUzMmQzYjM5ZmI5M2NiMzQ0ODJhYTQyZjAxYjQ3NmU5YjI3MjRkNGE0NTZiNmY2N2ZmYjQ3MjpgbXV0YXRpb24gdXNlQ3JlYXRlQ29udmVyc2F0aW9uTXV0YXRpb24oJGlucHV0OkNyZWF0ZUNvbnZlcnNhdGlvbklucHV0ISl7Y3JlYXRlQ29udmVyc2F0aW9uKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBCYWRSZXF1ZXN0RXJyb3J7bWVzc2FnZSxjb2RlfSwuLi5vbiBDcmVhdGVDb252ZXJzYXRpb25TdWNjZXNze2NvbnZlcnNhdGlvbnt1dWlkLGlkfX19fWAsYjQ3MTUzNWEwN2NiZWE3ZjU1OWVmNWM3MTUwMjAyODEwYTAwOGU5OWE5YzIwMDZmZjFhYjhhNGQ4NjNhODdkYjpgcXVlcnkgTWFya2V0U3RhdHNRdWVyeSgkY3VycmVuY3k6VGlja2VyU3ltYm9sISwkY291bnRyeUNvZGU6U3RyaW5nISwkbGlzdENvdW50OkludCEsJHRvcEFzc2V0c1NvcnQ6QXNzZXRTZWFyY2hTb3J0ISwkbW9zdFZvbHVtZVNvcnQ6QXNzZXRTZWFyY2hTb3J0ISwkc2hvdWxkVXNlVUFTRmllbGRzOkJvb2xlYW4hKXsuLi5NYXJrZXRTdGF0c0NvbnRlbnRGcmFnbWVudH1mcmFnbWVudCBBc3NldExpc3RSb3dGcmFnbWVudCBvbiBBc3NldHt1dWlkLHNsdWcsbmFtZSxkaXNwbGF5U3ltYm9sLGltYWdlVXJsLHJlY2VudGx5TGlzdGVkLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtxdW90ZUN1cnJlbmN5LHByaWNlLHBlcmNlbnRDaGFuZ2VzQHNraXAoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxpZH19ZnJhZ21lbnQgQXNzZXRMaXN0U2VjdGlvbkZyYWdtZW50IG9uIFF1ZXJ5e3RvcEFzc2V0czpzZWFyY2hBc3NldHNWMihmaXJzdDokbGlzdENvdW50LHNvcnQ6JHRvcEFzc2V0c1NvcnQsb3JkZXI6REVTQyxmaWx0ZXI6TElTVEVELGNvdW50cnk6JGNvdW50cnlDb2RlKXtlZGdlc3tub2Rle3V1aWQsLi4uQXNzZXRMaXN0Um93RnJhZ21lbnQsaWR9fX0sbW9zdFZvbHVtZTpzZWFyY2hBc3NldHNWMihmaXJzdDokbGlzdENvdW50LHNvcnQ6JG1vc3RWb2x1bWVTb3J0LG9yZGVyOkRFU0MsZmlsdGVyOkxJU1RFRCxjb3VudHJ5OiRjb3VudHJ5Q29kZSl7ZWRnZXN7bm9kZXt1dWlkLC4uLkFzc2V0TGlzdFJvd0ZyYWdtZW50LGlkfX19fWZyYWdtZW50IEluZm9TZWN0aW9uRnJhZ21lbnQgb24gUXVlcnl7aW5mb1NlY3Rpb25TdXJmYWNlOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfTUFSS0VUX1NUQVRTX0xPR0dFRF9PVVQiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfTUFSS0VUX1NUQVRTX0lORk9fU0VDVElPTiJdKXtlZGdlc3tub2Rle2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHtrZXksdGl0bGVUZXh0RmllbGR7dGV4dH0sZGVzY3JpcHRpb25UZXh0RmllbGR7dGV4dH0scHJpbWFyeUNvbXBvbmVudEN0YXt0ZXh0fSxzdWJ0aXRsZVRleHRGaWVsZHt0ZXh0fX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH19ZnJhZ21lbnQgTWFya2V0Q2hhcnRTZWN0aW9uRnJhZ21lbnQgb24gUXVlcnl7bWFya2V0Q2FwU3RhdHM6bWFya2V0U3RhdHMocXVvdGVDdXJyZW5jeTokY3VycmVuY3ksZmlsdGVyOk1BUktFVF9DQVApey4uLk1hcmtldFByaWNlR3JhcGhGcmFnbWVudH0sdHJhZGVWb2x1bWVTdGF0czptYXJrZXRTdGF0cyhxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSxmaWx0ZXI6VFJBREVfVk9MVU1FKXsuLi5NYXJrZXRQcmljZUdyYXBoRnJhZ21lbnR9LGJ1eWVyU2VsbGVyUmF0aW9TdGF0czptYXJrZXRTdGF0cyhxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSxmaWx0ZXI6QlVZRVJfU0VMTEVSX1JBVElPKXsuLi5NYXJrZXRQcmljZUdyYXBoRnJhZ21lbnR9LGJ0Y0RvbWluYW5jZVN0YXRzOm1hcmtldFN0YXRzKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5LGZpbHRlcjpCVENfRE9NSU5BTkNFKXsuLi5NYXJrZXRQcmljZUdyYXBoRnJhZ21lbnR9fWZyYWdtZW50IE1hcmtldFByaWNlR3JhcGhGcmFnbWVudCBvbiBNYXJrZXRTdGF0c3suLi51c2VUcmFuc2Zvcm1NYXJrZXRQcmljZXNMb2dnZWRPdXRGcmFnbWVudCwuLi51c2VNYXJrZXRDaGFydExvZ2dlZE91dEZyYWdtZW50LHN0YXRzQ3VycmVudHt2YWx1ZSxwZXJjZW50Q2hhbmdle2hvdXIsZGF5LHdlZWssbW9udGgseWVhcixhbGx9fX1mcmFnbWVudCBNYXJrZXRTdGF0c0NvbnRlbnRGcmFnbWVudCBvbiBRdWVyeXsuLi5NYXJrZXRTdGF0c1Jvd0ZyYWdtZW50LGluZm9TZWN0aW9uU3VyZmFjZTp1aUNvbXBvbmVudHNCeVN1cmZhY2Uoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX01BUktFVF9TVEFUU19MT0dHRURfT1VUIixjYXRlZ29yeU5hbWVzOlsiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX01BUktFVF9TVEFUU19JTkZPX1NFQ1RJT04iXSl7ZWRnZXN7bm9kZXtjb21wb25lbnR7X190eXBlbmFtZSwuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7a2V5fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fSxpZH19LGlkfX1mcmFnbWVudCBNYXJrZXRTdGF0c1Jvd0ZyYWdtZW50IG9uIFF1ZXJ5ey4uLkluZm9TZWN0aW9uRnJhZ21lbnQsLi4uTWFya2V0Q2hhcnRTZWN0aW9uRnJhZ21lbnQsLi4uQXNzZXRMaXN0U2VjdGlvbkZyYWdtZW50fWZyYWdtZW50IHVzZU1hcmtldENoYXJ0TG9nZ2VkT3V0RnJhZ21lbnQgb24gTWFya2V0U3RhdHN7c3RhdHNDdXJyZW50e3ZhbHVlLHBlcmNlbnRDaGFuZ2V7aG91cixkYXksd2Vlayxtb250aCx5ZWFyLGFsbH19fWZyYWdtZW50IHVzZVRyYW5zZm9ybU1hcmtldFByaWNlc0xvZ2dlZE91dEZyYWdtZW50IG9uIE1hcmtldFN0YXRze3N0YXRzQnlIb3Vye3F1b3RlVmFsdWVzLHF1b3RlVGltZXN0YW1wc30sc3RhdHNCeURheXtxdW90ZVZhbHVlcyxxdW90ZVRpbWVzdGFtcHN9LHN0YXRzQnlXZWVre3F1b3RlVmFsdWVzLHF1b3RlVGltZXN0YW1wc30sc3RhdHNCeU1vbnRoe3F1b3RlVmFsdWVzLHF1b3RlVGltZXN0YW1wc30sc3RhdHNCeVllYXJ7cXVvdGVWYWx1ZXMscXVvdGVUaW1lc3RhbXBzfSxzdGF0c0J5QWxse3F1b3RlVmFsdWVzLHF1b3RlVGltZXN0YW1wc319YCxiNGQ4YTE2NTZiOWNlYTQxY2Q4MWU5Zjc0MDhlNGRlZmZhOWIxNDQ0YmM3NjQ2NzM5NTllYTBlNmE5YTU2MDBhOmBxdWVyeSBBc3NldFBhZ2VUeXBlYWhlYWRRdWVyeSgkc2tpcDpCb29sZWFuISwkcXVlcnk6U3RyaW5nLCRmaWx0ZXI6QXNzZXRTZWFyY2hGaWx0ZXIhLCRzb3J0OkFzc2V0U2VhcmNoU29ydCEsJG9yZGVyOlNvcnRPcmRlciEsJGZpcnN0OkludCEsJGNvdW50cnk6U3RyaW5nISwkY291bnRyeUNvZGU6Q291bnRyeUNvZGUhKXtzZWFyY2hBc3NldHM6c2VhcmNoQXNzZXRzVjIocXVlcnk6JHF1ZXJ5LGZpbHRlcjokZmlsdGVyLHNvcnQ6JHNvcnQsb3JkZXI6JG9yZGVyLGZpcnN0OiRmaXJzdCxjb3VudHJ5OiRjb3VudHJ5KUBza2lwKGlmOiRza2lwKXtlZGdlc3tub2Rle3V1aWQsc2x1ZyxpbWFnZVVybCxkaXNwbGF5U3ltYm9sLG5hbWUsbGlzdGVkOmxpc3RlZFYyKGNvdW50cnk6JGNvdW50cnlDb2RlKSxpZH19fX1gLGI1YjNiMzRiMTczMzM0MGMzYjAyOWY1YjVkMTQ5YWZlNmRkNTUzMmQyYzQ0NjIwMTE4MjlkYWM3ZWFmNWQwN2U6YHF1ZXJ5IFc5Rm9ybUdRTFF1ZXJ5KCRza2lwU1NOOkJvb2xlYW4hKXt2aWV3ZXJ7cHJlZmlsbFc5Rm9ybXtuYW1lLHNzbkBza2lwKGlmOiRza2lwU1NOKSxhZGRyZXNze2xpbmUxLGxpbmUyLGNpdHksc3RhdGUscG9zdGFsQ29kZSxjb3VudHJ5e2NvZGV9fX0saWR9fWAsYjYyNDg5MDU2N2M3N2RjMjU5MGM5MWZhMGYyNWFkMzljYjU1YzA1ZmJmNGY0YTFlYzA4YTllNmQ1MGFjOWQ5MzpgbXV0YXRpb24gU2VydmVyV2FsbGV0U2lnbmluZ0NsaWVudFNpZ25UcmFuc2FjdGlvbk11dGF0aW9uKCRpbnB1dDpNYWdpY1dhbGxldFNpZ25UcmFuc2FjdGlvbklucHV0ISl7bWFnaWNXYWxsZXRTaWduVHJhbnNhY3Rpb24oaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIE1hZ2ljV2FsbGV0U2lnblRyYW5zYWN0aW9uU3VjY2Vzc3t0cmFuc2FjdGlvblJlZmVyZW5jZX0sLi4ub24gR2VuZXJpY0Vycm9ye21lc3NhZ2UsY29kZX19fWAsYjdiZmQzM2U3ODRhMTA0NjA1NjBhNWYxMjQ1ZWQ0MDE3OGE4ZDc1OWQyZTUzN2Q0MmYzNWZlY2Q2OGU1OTllNDpgcXVlcnkgTm90aWNlU2NyZWVuUXVlcnkoJHF1ZXN0aW9uVHlwZTpHZW5lcmljQ29tcGxpYW5jZVF1ZXN0aW9uVHlwZSEpe3ZpZXdlcntnZW5lcmljQ29tcGxpYW5jZVF1ZXN0aW9uc0J5VHlwZSh0eXBlOiRxdWVzdGlvblR5cGUpe3F1ZXN0aW9uc3t1dWlkLHRpdGxlLG9wdGlvbnN7dmFsdWUsdGl0bGV9LGlkfX0saWR9fWAsYjg5ZDZiYjA5NjRjN2RmYjdmNzZjNDg0ZDQ3NjQwMjYxZTdlYjY4N2YzM2M4OGQxNzJhMjA0OGRlNDE2MzEyMTpgbXV0YXRpb24gdXNlVU9CQ3JlYXRlT25ib2FyZGluZ1JlY29yZENCRlNFTXV0YXRpb24oJGlucHV0OkNyZWF0ZU9uYm9hcmRpbmdSZWNvcmRDQkZTRUlucHV0ISl7Y3JlYXRlT25ib2FyZGluZ1JlY29yZENCRlNFKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBDcmVhdGVPbmJvYXJkaW5nUmVjb3JkQ0JGU0VTdWNjZXNze19fdHlwZW5hbWV9LC4uLm9uIEdlbmVyaWNFcnJvcntjb2RlLG1lc3NhZ2V9fX1gLGI5MGIzNmZkYTY4M2E1MDhkNWJlMDk5MTBjY2JkYTZiNTVmOGM3ZDljN2IyNzllNDdhODI2MTcwYjc1ZTRmMTI6YG11dGF0aW9uIHVzZUxvY2tBY2NvdW50TXV0YXRpb24oJGlucHV0OlJlcXVlc3RMb2NrQWNjb3VudFdpdGhUb2tlbklucHV0KXtyZXF1ZXN0TG9ja0FjY291bnRXaXRoVG9rZW4oaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIEJhZFJlcXVlc3RFcnJvcntjb2RlLG1lc3NhZ2V9LC4uLm9uIFJlcXVlc3RMb2NrQWNjb3VudFdpdGhUb2tlblN1Y2Nlc3N7bG9ja0FjY291bnRXaXRoVG9rZW57c3RhdGUscmVkaXJlY3RVcmx9fX19YCxiOTU3NTg2M2QzNzUxODU4ODIxYTRhNzAzZjdkNjc1NzM1MDVmZTdmY2I5NjlkOGEwYWFiMDgzZTFlYjQ0NjFiOmBxdWVyeSBVT0JVc2VyUHJvdmlkZXJRdWVyeXt2aWV3ZXJ7aWQscmV0YWlsQnJva2VyYWdle3VzZXJBdHRyaWJ1dGVze2F0dHJpYnV0ZU5hbWUsYXR0cmlidXRlVmFsdWV9fSx1c2VyUHJvcGVydGllc3t1dWlkLGxvY2FsZSxuYW1lLGVtYWlsLGZlYXR1cmVGbGFncyxjb3VudHJ5e2NvZGUsbmFtZX0scmVnaW9uRmVhdHVyZXN7aXNJbkV1cm9wZX0scGVyc29uYWxEZXRhaWxze2xlZ2FsTmFtZXtmaXJzdE5hbWUsbGFzdE5hbWV9LGFkZHJlc3N7bGluZTEsbGluZTIsbGluZTMsY2l0eSxzdGF0ZSxwb3N0YWxDb2RlLGNvdW50cnl7Y29kZSxuYW1lfX0scHJpbWFyeUFkZHJlc3N7bGluZTEsbGluZTIsbGluZTMsY2l0eSxzdGF0ZSxwb3N0YWxDb2RlLGNvdW50cnl7Y29kZSxuYW1lfX0sZGF0ZU9mQmlydGh9LGlkfX19YCxiOWRiNzcyYTE3ZWY0ZmU5NDFkZjI1ODZlYjIzNWRlYjc2MmM4ODc1MTE5NWU1M2QwYTc1ZjgwYzc0MmY2YTM0OmBxdWVyeSBVbmlmaWVkQXBwcm9wcmlhdGVuZXNzQXNzZXNzbWVudEZsb3dRdWVyeSgkcXVlc3Rpb25UeXBlOkdlbmVyaWNDb21wbGlhbmNlUXVlc3Rpb25UeXBlISl7dmlld2Vye2dlbmVyaWNDb21wbGlhbmNlUXVlc3Rpb25zQnlUeXBlKHR5cGU6JHF1ZXN0aW9uVHlwZSl7YW5zd2VyTWV0YURhdGF7aGFzRXhjZWVkZWRNYXhBdHRlbXB0cyxhdHRlbXB0c0xvY2tlZFVudGlsfSxxdWVzdGlvbnN7dXVpZCx0aXRsZSxzdWJ0aXRsZSxpbnB1dFR5cGUsb3B0aW9uc3t2YWx1ZSx0aXRsZSxzdWJ0aXRsZX0saWR9fSxpZH19YCxiYThlZTg5YmE3MzU2M2ZiZTc2NmNjMjU2NDIzNzdkMDUyYmJjZjgxMWMyODBiYmUwMzBlZmRhNGNmMzA4YjU1OmBtdXRhdGlvbiB1c2VTdWJtaXRFZGl0T3JkZXJBVFNNdXRhdGlvbigkaW5wdXQ6RWRpdFJldGFpbEJyb2tlcmFnZU9yZGVySW5wdXQhKXtlZGl0UmV0YWlsQnJva2VyYWdlT3JkZXIoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIEVkaXRSZXRhaWxCcm9rZXJhZ2VPcmRlclN1Y2Nlc3N7b3JkZXJVdWlkfSwuLi5yZWFkRXJyb3JzRnJvbVN1Ym1pdFJlc3BvbnNlQVRTRnJhZ21lbnR9fWZyYWdtZW50IHJlYWRFcnJvckNvZGVzRnJvbUZhaWx1cmVSZWFzb25BVFNGcmFnbWVudCBvbiBFZGl0T3JkZXJGYWlsdXJlUmVhc29ue19faXNFZGl0T3JkZXJGYWlsdXJlUmVhc29uOl9fdHlwZW5hbWUsX190eXBlbmFtZSwuLi5vbiBFZGl0T3JkZXJQcmV2aWV3RmFpbHVyZVdyYXBwZXJ7cHJldmlld0Vycm9yOnZhbHVlfSwuLi5vbiBFZGl0T3JkZXJGYWlsdXJlV3JhcHBlcntzdWJtaXRFcnJvcjp2YWx1ZX19ZnJhZ21lbnQgcmVhZEVycm9yc0Zyb21TdWJtaXRSZXNwb25zZUFUU0ZyYWdtZW50IG9uIEVkaXRSZXRhaWxCcm9rZXJhZ2VPcmRlclBheWxvYWR7X19pc0VkaXRSZXRhaWxCcm9rZXJhZ2VPcmRlclBheWxvYWQ6X190eXBlbmFtZSxfX3R5cGVuYW1lLC4uLm9uIEVkaXRSZXRhaWxCcm9rZXJhZ2VPcmRlclN1Y2Nlc3N7b3JkZXJVdWlkfSwuLi5vbiBFZGl0UmV0YWlsQnJva2VyYWdlT3JkZXJGYWlsdXJle2Vycm9yUmVhc29uc3tfX3R5cGVuYW1lLC4uLnJlYWRFcnJvckNvZGVzRnJvbUZhaWx1cmVSZWFzb25BVFNGcmFnbWVudH19LC4uLm9uIEJhZFJlcXVlc3RFcnJvcnttZXNzYWdlLGNvZGV9LC4uLm9uIEdlbmVyaWNFcnJvcnttZXNzYWdlLGNvZGV9fWAsYmJjNzE2OGI5NDQwMTlhOTU5OWQ1MmYzNTczODUxYWNmZjIyYTNkZWJhYjgwNDhjNGM5YWVhZjY1NGNmNTlhODpgcXVlcnkgU3RhbmRhcmRKb2luQ29udGVudFF1ZXJ5KCRyZWZlckNvZGU6U3RyaW5nISwkc2tpcDpCb29sZWFuISwkY291bnRyeUNvZGU6U3RyaW5nKXsuLi51c2VHZXRSZWZlcnJhbFRlbXBsYXRlRnJhZ21lbnQsLi4udXNlVmFsaWRhdGVSZWZlcnJhbENvZGVXaXRoQ291bnRyeUZyYWdtZW50fWZyYWdtZW50IHVzZUdldFJlZmVycmFsVGVtcGxhdGVGcmFnbWVudCBvbiBRdWVyeXtyZWZlcnJhbFRlbXBsYXRlKHJlZmVyQ29kZTokcmVmZXJDb2RlKUBza2lwKGlmOiRza2lwKXt0ZW1wbGF0ZUlkfX1mcmFnbWVudCB1c2VWYWxpZGF0ZVJlZmVycmFsQ29kZVdpdGhDb3VudHJ5RnJhZ21lbnQgb24gUXVlcnl7dmFsaWRhdGVSZWZlcnJhbENvZGUocmVmZXJDb2RlOiRyZWZlckNvZGUsY291bnRyeUNvZGU6JGNvdW50cnlDb2RlKUBza2lwKGlmOiRza2lwKXtpc1ZhbGlkLGlzQ291bnRyeUVsaWdpYmxlfX1gLGJlMmJjOWE5ZTM2MDEzZjBjY2FiZDdkNTRjOTAwOThjZTBlYmUzYjgzZTY4ZWExZjcxZjkyZWI0ZDgyMjEwMzI6YG11dGF0aW9uIHVzZUdlbmVyYXRlRmlsZVVwbG9hZFRva2VuTXV0YXRpb24oJGlucHV0OkdlbmVyYXRlRmlsZVVwbG9hZFRva2VuSW5wdXQhKXtnZW5lcmF0ZUZpbGVVcGxvYWRUb2tlbihpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gR2VuZXJhdGVGaWxlVXBsb2FkVG9rZW5TdWNjZXNze3Rva2VuLGV4cGlyZXNBdH0sLi4ub24gQmFkUmVxdWVzdEVycm9ye2NvZGUsbWVzc2FnZX19fWAsYmUzM2FiYTM0MjMzYjBlMDA5N2EwZTNmODg0ZTRlNDQ4ZTI4ODM1NDlhYmYwZWE5NWUxNThiMzgyOWQxNzRmNDpgcXVlcnkgQ29pbmJhc2VHcmFwaFFMVHJhbnNwb3J0UGVycHNRdWVyeXt2aWV3ZXJ7cGVycGV0dWFsRnV0dXJlUG9zaXRpb25zVjJ7cG9zaXRpb25ze2lkLGFzc2V0LG5ldFNpemUsc2lkZSxsZXZlcmFnZSxhdmdFbnRyeXthbW91bnQsaWR9LG1hcmtldFByaWNle2Ftb3VudCxpZH0sbGlxdWlkYXRpb25QcmljZXthbW91bnQsaWR9LGFnZ3JlZ2F0ZWRQbmx7YW1vdW50LGN1cnJlbmN5LGlkfSxpbml0aWFsTWFyZ2lue2Ftb3VudCxjdXJyZW5jeSxpZH0sbWFpbnRlbmFuY2VNYXJnaW57YW1vdW50LGlkfSxtYXJnaW5SYXRpb1BlcmNlbnQsZnVuZGluZ0ZlZXthbW91bnQsaWR9LG1hcmdpblR5cGUsaWNvblVybH0saWR9LGlkfX1gLGJlNGEzZWRhZTY3ODcyYzQ4ZjJlZmRlOWZmZjMxNWRlZjhhNDExZWI2ODVjYmU3ODU0Njc2N2Q2MTk5Y2YzMWU6YHN1YnNjcmlwdGlvbiBDb2luYmFzZUdyYXBoUUxUcmFuc3BvcnRQZXJwc1N1YnNjcmlwdGlvbigkaW5wdXQ6UGVycGV0dWFsRnV0dXJlUG9zaXRpb25zVXBkYXRlZFYySW5wdXQpe3BlcnBldHVhbEZ1dHVyZVBvc2l0aW9uc1VwZGF0ZWRWMihpbnB1dDokaW5wdXQpe3Bvc2l0aW9uc3tpZCxhc3NldCxuZXRTaXplLHNpZGUsbGV2ZXJhZ2UsYXZnRW50cnl7YW1vdW50LGlkfSxtYXJrZXRQcmljZXthbW91bnQsaWR9LGxpcXVpZGF0aW9uUHJpY2V7YW1vdW50LGlkfSxhZ2dyZWdhdGVkUG5se2Ftb3VudCxjdXJyZW5jeSxpZH0saW5pdGlhbE1hcmdpbnthbW91bnQsY3VycmVuY3ksaWR9LG1haW50ZW5hbmNlTWFyZ2lue2Ftb3VudCxpZH0sbWFyZ2luUmF0aW9QZXJjZW50LGZ1bmRpbmdGZWV7YW1vdW50LGlkfSxtYXJnaW5UeXBlLGljb25Vcmx9LGlkfX1gLGJmMmNhMzM2ZjU5Njc0MWU4N2U3MmYyNmUxOWJhMjY2ODlmNzM3MDk0MjQ2MTQwYTY1ZmM3NmY1ZjI4NzBjYmM6YG11dGF0aW9uIHVzZVVhc1Nwb3RNYXJnaW5WZXJpZmljYXRpb25Jbml0aWF0ZU11dGF0aW9uKCRpbnB1dDpJbml0aWF0ZU1hbnVhbEFjY3JlZGl0YXRpb25Eb2N1bWVudFVwbG9hZElucHV0KXtpbml0aWF0ZU1hbnVhbEFjY3JlZGl0YXRpb25Eb2N1bWVudFVwbG9hZChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gSW5pdGlhdGVNYW51YWxBY2NyZWRpdGF0aW9uRG9jdW1lbnRVcGxvYWRTdWNjZXNze3Rva2VufSwuLi5vbiBHZW5lcmljRXJyb3J7bWVzc2FnZX19fWAsYmY4MjFjNjI0NmFkNWQ3NjhlN2Q4NjUzYzAxZjRhNzIxMzljOTgzZWI3YTJhMWUzM2U0NjM5ODRhZjNkYzJhZjpgcXVlcnkgU3dlZXBzdGFrZXNNYWlsZXJDb250ZW50UXVlcnl7dWlDb21wb25lbnRzQnlTdXJmYWNlTG9nZ2VkT3V0KHN1cmZhY2VOYW1lOiJVSV9DT01QT05FTlRfU1VSRkFDRV9TV0VFUFNUQUtFU19NQUlMRVIiLGZpcnN0OjUwLHNraXBDYWNoZTp0cnVlKXtlZGdlc3tub2Rle2NvbXBvbmVudEpzb24sY29tcG9uZW50c3tjb21wb25lbnRKc29uLGlkfSxpZH19LGlkfX1gLGMzNjcxYzdkOGRkMjY4YjRkYTY1NTliZDY0ZGM5ZjJlOTg4YzYxMDdlZTFmMTdmN2IyYTliODU3NDMxMzA3OWI6YHF1ZXJ5IFc5VmVyaWZpY2F0aW9uRmxvd1NlbnNpdGl2ZURldGFpbHNRdWVyeSgkcHJvb2ZUb2tlbjpTdHJpbmchKXt2aWV3ZXJ7dXNlclByb3BlcnRpZXN7c2Vuc2l0aXZlRGV0YWlscyhyZXF1ZXN0Ontwcm9vZlRva2VuOiRwcm9vZlRva2VufSl7c3NufSxpZH0saWR9fWAsYzNiMDkwMTFkZjM5NTljYWMzOGY4MmFkZmU1NGMyOTFkZWY5NTFhZjVkZmMxZmJkZmM0YTY0MjAwYjYzMGY0NjpgcXVlcnkgQ2hhdEJvZHlDb252ZXJzYXRpb25Mb2dnZWRPdXRUaHJlYWRGcmFnbWVudFF1ZXJ5KCRhZnRlcjpTdHJpbmcsJGJlZm9yZTpTdHJpbmcsJGNvbnZlcnNhdGlvblV1aWQ6VXVpZCEsJGZpcnN0OkludCwkZ3Vlc3RVc2VyVXVpZDpVdWlkISwkbGFzdDpJbnQpe3ZpZXdlcnsuLi5DaGF0Qm9keUNvbnZlcnNhdGlvbkxvZ2dlZE91dFRocmVhZEZyYWdtZW50XzNLa28xTSxpZH19ZnJhZ21lbnQgQ2hhdEJvZHlDb252ZXJzYXRpb25Mb2dnZWRPdXRUaHJlYWRGcmFnbWVudF8zS2tvMU0gb24gVmlld2Vye3VuYXV0aGVudGljYXRlZENvbnZlcnNhdGlvbkJ5VXVpZCh1dWlkOiRjb252ZXJzYXRpb25VdWlkLGd1ZXN0VXNlclV1aWQ6JGd1ZXN0VXNlclV1aWQpe25vZGV7dXVpZCxpc0Nsb3NlZCxldmVudHMoZmlyc3Q6JGZpcnN0LGFmdGVyOiRhZnRlcixiZWZvcmU6JGJlZm9yZSxsYXN0OiRsYXN0KXtlZGdlc3tjdXJzb3Isbm9kZXtpZCx1dWlkLHR5cGUsY3JlYXRlVGltZSxwYXJ0aWNpcGFudHtwYXJ0aWNpcGFudFR5cGUsaWR9LGluUmVwbHlUb1V1aWQsbWVzc2FnZUNvbnRlbnR7bWVzc2FnZSxpc0ZyZWVUZXh0RGlzYWJsZWR9LC4uLk1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQsX190eXBlbmFtZX19LHBhZ2VJbmZve2VuZEN1cnNvcixoYXNOZXh0UGFnZSxoYXNQcmV2aW91c1BhZ2Usc3RhcnRDdXJzb3J9fSxpZH19fWZyYWdtZW50IE1lc3NhZ2VCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtpZCx1dWlkLHBhcnRpY2lwYW50e2lkLGRpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZX0sY3JlYXRlVGltZSxtZXNzYWdlQ29udGVudHttZXNzYWdlLHJlcGxpZXN7bGFiZWwsbGluayxtZXNzYWdlVG9QdWJsaXNofSxyZWZlcmVuY2VMaW5rc3t0aXRsZSxsaW5rfSxpc1JlYWN0aW9uc0VuYWJsZWQsZXh0cmFFbGVtZW50VHlwZSxleHRyYUVsZW1lbnRQYXlsb2FkfSxmaWxlc01ldGFkYXRhe2ZpbGVze2F0dGFjaG1lbnRJZCxmaWxlTmFtZX19fWZyYWdtZW50IE1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7dHlwZSwuLi5NZXNzYWdlQnViYmxlRnJhZ21lbnQsLi4uUGFydGljaXBhbnRCdWJibGVGcmFnbWVudH1mcmFnbWVudCBQYXJ0aWNpcGFudEJ1YmJsZUZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e3BhcnRpY2lwYW50e2Rpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZSxpZH19YCxjNmU0NWEwMWQ4ZTdkMmJhNTg2MWQzYTM3ZGNlMjQ0ZGMyNWQyOTEzMGQ0ZDQzMjU4NGMyYjhhOTRjNTY3NDEwOmBxdWVyeSBDQUFwcHJvcHJpYXRlbmVzc0Fzc2Vzc21lbnRRdWVyeSgkcXVlc3Rpb25UeXBlOkdlbmVyaWNDb21wbGlhbmNlUXVlc3Rpb25UeXBlISwkaXNFeGlzdGluZ1VzZXJVcGRhdGU6Qm9vbGVhbiEpe3ZpZXdlcntnZW5lcmljQ29tcGxpYW5jZVF1ZXN0aW9uc0J5VHlwZSh0eXBlOiRxdWVzdGlvblR5cGUpe3F1ZXN0aW9uc3t1dWlkLHRpdGxlLHN1YnRpdGxlLG9wdGlvbnN7dmFsdWUsdGl0bGUsc3VidGl0bGV9LGlkfX0saWR9LC4uLkNBQVJldmlld0ZyYWdtZW50XzU3aXUwfWZyYWdtZW50IENBQVJldmlld0ZyYWdtZW50XzU3aXUwIG9uIFF1ZXJ5e3ZpZXdlcntnZW5lcmljQ29tcGxpYW5jZUFuc3dlcnNCeVF1ZXN0aW9uVHlwZSh0eXBlOiRxdWVzdGlvblR5cGUpQGluY2x1ZGUoaWY6JGlzRXhpc3RpbmdVc2VyVXBkYXRlKXthbnN3ZXJze29wdGlvbnt2YWx1ZSx0aXRsZX0scXVlc3Rpb25LZXl9fSxpZH19YCxjNzY5YjM3MDA4MDg4MTUyNDEyY2Q5YjMyZjk0ZDJmMjA3MGEwNmVmNWM2NTk2NzFjYmU4MWMyMmNjODg2ODg4OmBtdXRhdGlvbiBhdXRob3JpemVTZXJ2ZXJXYWxsZXRPcGVyYXRpb25CeU1hZ2ljVHJhbnNhY3Rpb25JZE11dGF0aW9uKCRpbnB1dDpBdXRob3JpemVTZXJ2ZXJXYWxsZXRPcGVyYXRpb25CeU1hZ2ljVHJhbnNhY3Rpb25JZElucHV0ISl7YXV0aG9yaXplU2VydmVyV2FsbGV0T3BlcmF0aW9uQnlNYWdpY1RyYW5zYWN0aW9uSWQoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIEF1dGhvcml6ZVNlcnZlcldhbGxldE9wZXJhdGlvbkJ5TWFnaWNUcmFuc2FjdGlvbklkU3VjY2Vzc3tzaWduZWRQYXlsb2FkfSwuLi5vbiBTZXJ2ZXJXYWxsZXRFcnJvcnttZXNzYWdlLGNvZGV9fX1gLGM4MzMyODU2MTAwOWE0NzY4Y2U4YzA4YzcyNjk1ZTY1MzZjMDE4OGQ4ZTZlOGM0YzIzOTJiZTllMjE4M2E4MzA6YHF1ZXJ5IFNwb3RMMlF1ZXJ5KCRjb3VudHJ5Q29kZTpTdHJpbmchLCRwcm9kdWN0SWQ6VGhpcmRQYXJ0eUlkU3RyaW5nISwkc2hvdWxkVXNlR3FsUHJvZHVjdFNjaGVtYTpCb29sZWFuISwkc2tpcEZpYXRBY2NvdW50c0ZvckJhbGFuY2U6Qm9vbGVhbiEpe3JldGFpbEludHhVbmF1dGhlZHsuLi5nZXRJc1BlcnBzRWxpZ2libGVGcmFnbWVudH0sLi4uT3JkZXJCb29rQ29udGFpbmVyRnJhZ21lbnR9ZnJhZ21lbnQgQWdncmVnYXRpb25Db250cm9sc0ZyYWdtZW50IG9uIFF1ZXJ5ey4uLkN1cnJlbmN5RHJvcGRvd25Db250ZW50RnJhZ21lbnR9ZnJhZ21lbnQgQ3VycmVuY3lEcm9wZG93bkNvbnRlbnRGcmFnbWVudCBvbiBRdWVyeXsuLi51c2VDdXJyZW5jeURyb3Bkb3duRGF0YUZyYWdtZW50fWZyYWdtZW50IE9yZGVyQm9va0NvbnRhaW5lckZyYWdtZW50IG9uIFF1ZXJ5ey4uLk9yZGVyQm9va0NvbnRlbnRGcmFnbWVudH1mcmFnbWVudCBPcmRlckJvb2tDb250ZW50RnJhZ21lbnQgb24gUXVlcnl7Li4uT3JkZXJCb29rSGVhZGVyRnJhZ21lbnR9ZnJhZ21lbnQgT3JkZXJCb29rSGVhZGVyRnJhZ21lbnQgb24gUXVlcnl7Li4uQWdncmVnYXRpb25Db250cm9sc0ZyYWdtZW50fWZyYWdtZW50IGdldElzUGVycHNFbGlnaWJsZUZyYWdtZW50IG9uIFJldGFpbEludHhVbmF1dGhlZHtpbnR4Q291bnRyeUNsYXNzaWZpY2F0aW9uKGlzb0NvdW50cnlDb2RlOiRjb3VudHJ5Q29kZSl9ZnJhZ21lbnQgdXNlQ3VycmVuY3lEcm9wZG93bkRhdGFGcmFnbWVudCBvbiBRdWVyeXsuLi51c2VTcG90QXZhaWxhYmxlUXVvdGVQYXltZW50TWV0aG9kc0ZyYWdtZW50fWZyYWdtZW50IHVzZVNwb3RBdmFpbGFibGVRdW90ZVBheW1lbnRNZXRob2RzRnJhZ21lbnQgb24gUXVlcnl7dmlld2Vye2FsbFBvcnRmb2xpb0ZpYXRBY2NvdW50czpmaWF0QWNjb3VudHMocG9ydGZvbGlvQ2F0ZWdvcnk6UE9SVEZPTElPX0NBVEVHT1JZX0FMTClAc2tpcChpZjokc2tpcEZpYXRBY2NvdW50c0ZvckJhbGFuY2Upe2Fzc2V0T3JGaWF0Q3VycmVuY3l7X190eXBlbmFtZSwuLi5vbiBUaWVyc0N1cnJlbmN5e2NvZGUsaWR9LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH0sLi4ub24gVmlld2VyRXF1aXR5e2lkfX0saWR9LHJldGFpbEJyb2tlcmFnZXtwcm9kdWN0VjIocHJvZHVjdElkOiRwcm9kdWN0SWQpQGluY2x1ZGUoaWY6JHNob3VsZFVzZUdxbFByb2R1Y3RTY2hlbWEpe3Byb2R1Y3R7cXVvdGVDdXJyZW5jeUlkLGlkfSxxdW90ZUFzc2V0T3JDdXJyZW5jeXtfX3R5cGVuYW1lLC4uLm9uIFRpZXJzQ3VycmVuY3l7YWNjb3VudHMocG9ydGZvbGlvQ2F0ZWdvcnk6UE9SVEZPTElPX0NBVEVHT1JZX0FMTCl7X190eXBlbmFtZSxpZH0saWR9LC4uLm9uIFZpZXdlckFzc2V0e19fdHlwZW5hbWUsYWNjb3VudHMocG9ydGZvbGlvQ2F0ZWdvcnk6UE9SVEZPTElPX0NBVEVHT1JZX0FMTCl7X190eXBlbmFtZSxpZH19LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH0sLi4ub24gVmlld2VyRXF1aXR5e2lkfX0saWR9fSxpZH19YCxjOGJlOGZhYjEzODY5MDA3YmY0NjczODZkYTQ0ODA2NWU4YzAyMjU0YzMyODdiM2RlYWYzMDk3MDQ0ZmFkOWQ4OmBtdXRhdGlvbiB1c2VSZWNvcmRTYXJkaW5lU2Vzc2lvbklkTXV0YXRpb24oJGlucHV0OlJlY29yZFNhcmRpbmVTZXNzaW9uSURJbnB1dCEpe3JlY29yZFNhcmRpbmVTZXNzaW9uSUQoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFJlY29yZFNhcmRpbmVTZXNzaW9uSURTdWNjZXNze19fdHlwZW5hbWUsZHVtbXl9LC4uLm9uIEdlbmVyaWNFcnJvcntfX3R5cGVuYW1lLGNvZGUsbWVzc2FnZX19fWAsYzk1OWQ5YTg4ZTRmYzBjNWQ2YTI1YjNlMDEzM2QwZDBkY2MxZmE1NDdlODJjMjBlOGI4MWUzZmY5OTU2OTJhOTpgcXVlcnkgUHJvb2ZPZlByb2Zlc3Npb25hbFRyYWRlckZsb3dRdWVyeXt2aWV3ZXJ7YWNjcmVkaXRhdGlvblN0YXR1c3tpc0FjY3JlZGl0ZWQsY2FuUmVmcmVzaCxhdmFpbGFibGVNZXRob2Rze21ldGhvZCxjYW5BdHRlbXB0LGZhaWx1cmVSZWFzb259fSxpZH19YCxjOTljOWVkYWQ3MjI1NzkyOGM0ZmVmMzg5YmZiMzZjYWU2YWU2NDFlYzM1OTZlM2JjN2EwMjBlYjgzNjNkNjA2OmBtdXRhdGlvbiB1c2VQcmV2aWV3RWRpdE9yZGVyQVRTTXV0YXRpb24oJGlucHV0OlByZXZpZXdFZGl0UmV0YWlsQnJva2VyYWdlT3JkZXJJbnB1dCEpe3ByZXZpZXdFZGl0UmV0YWlsQnJva2VyYWdlT3JkZXIoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFByZXZpZXdFZGl0UmV0YWlsQnJva2VyYWdlT3JkZXJTdWNjZXNze2NvbW1pc3Npb25Ub3RhbCxvcmRlclRvdGFsLHF1b3RlU2l6ZX0sLi4ucmVhZEVycm9yc0Zyb21QcmV2aWV3RWRpdFN1Y2Nlc3NSZXNwb25zZUFUU0ZyYWdtZW50fX1mcmFnbWVudCByZWFkRXJyb3JDb2Rlc0Zyb21GYWlsdXJlUmVhc29uQVRTRnJhZ21lbnQgb24gRWRpdE9yZGVyRmFpbHVyZVJlYXNvbntfX2lzRWRpdE9yZGVyRmFpbHVyZVJlYXNvbjpfX3R5cGVuYW1lLF9fdHlwZW5hbWUsLi4ub24gRWRpdE9yZGVyUHJldmlld0ZhaWx1cmVXcmFwcGVye3ByZXZpZXdFcnJvcjp2YWx1ZX0sLi4ub24gRWRpdE9yZGVyRmFpbHVyZVdyYXBwZXJ7c3VibWl0RXJyb3I6dmFsdWV9fWZyYWdtZW50IHJlYWRFcnJvcnNGcm9tUHJldmlld0VkaXRTdWNjZXNzUmVzcG9uc2VBVFNGcmFnbWVudCBvbiBQcmV2aWV3RWRpdFJldGFpbEJyb2tlcmFnZU9yZGVyUGF5bG9hZHtfX2lzUHJldmlld0VkaXRSZXRhaWxCcm9rZXJhZ2VPcmRlclBheWxvYWQ6X190eXBlbmFtZSxfX3R5cGVuYW1lLC4uLm9uIFByZXZpZXdFZGl0UmV0YWlsQnJva2VyYWdlT3JkZXJTdWNjZXNze2Vycm9yc3tfX3R5cGVuYW1lLC4uLnJlYWRFcnJvckNvZGVzRnJvbUZhaWx1cmVSZWFzb25BVFNGcmFnbWVudH19LC4uLm9uIEJhZFJlcXVlc3RFcnJvcnttZXNzYWdlLGNvZGV9LC4uLm9uIEdlbmVyaWNFcnJvcnttZXNzYWdlLGNvZGV9fWAsY2NlZWNjNzQxOWRmY2ZmMmUzNGUxNjIwZTZkMjYzOTQ5ZmQyZDZmZjFhNGZjODM4OTc4ZmU5NjdkNDlkNGI3NzpgbXV0YXRpb24gdXNlVW5zdWJzY3JpYmVHbnNNdXRhdGlvbigkaW5wdXQ6VW5zdWJzY3JpYmVHTlNFbWFpbElucHV0ISl7dW5zdWJzY3JpYmVHTlNFbWFpbChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsc3VjY2Vzc319YCxjY2VlZGNiZjBmYWNlMWFmNGZkYWMwN2UzMjZhZmZiZjU3NWI3ZGFlYWZmMGE3ZWY0YWNkZDcyZGY0YWYxYTZiOmBzdWJzY3JpcHRpb24gdXNlSXNVc2RjRW5hYmxlZFN1YnNjcmlwdGlvbntmdXR1cmVzQmFsYW5jZURhdGFVcGRhdGVke2Z1dHVyZXNCYWxhbmNlRGF0YXtzdGFibGVjb2luQ29uZmlne2lzVXNkY0Z1dHVyZXNUcmFkaW5nRW5hYmxlZH0saWR9fX1gLGNkNzU0NDFmN2IxMzMzOTM4OWM5OGFiOTViZjI2ZjAzZDVhZTI1NTVjMjJjNTMzMjkzNTI1NTc3N2FjNjBmZmU6YHF1ZXJ5IEFzc2V0U2VhcmNoRHJvcGRvd25CYXJRdWVyeSgkc2tpcExlZ2FjeTpCb29sZWFuISwkc2tpcFNlYXJjaFYyVW5hdXRoOkJvb2xlYW4hLCRxdWVyeTpTdHJpbmchLCRmaXJzdDpJbnQhLCRlbnRpdHlUeXBlczpbU2VhcmNoRW50aXR5VW5hdXRoSW5wdXQhXSEpe3NlYXJjaEVudGl0aWVzKHF1ZXJ5OiRxdWVyeSxlbnRpdHlUeXBlczokZW50aXR5VHlwZXMsZmlyc3Q6JGZpcnN0KUBza2lwKGlmOiRza2lwTGVnYWN5KXtlZGdlc3tub2Rle19fdHlwZW5hbWUsLi4ub24gQXNzZXR7dXVpZCxzbHVnLGltYWdlVXJsLGRpc3BsYXlTeW1ib2wsbmFtZX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfSwuLi5vbiBSYmFJbnN0cnVtZW50R3JvdXB7aWR9LC4uLm9uIFJldGFpbEJyb2tlcmFnZVByb2R1Y3R7aWR9fX19LHNlYXJjaFYyVW5hdXRoQ2FuZGlkYXRlcyhxdWVyeTokcXVlcnksdXNlQ2FzZTpBU1NFVF9HTE9CQUxfU0VBUkNILGZpcnN0OiRmaXJzdCxzZWN0aW9uSWQ6IkFTU0VUUyIpQHNraXAoaWY6JHNraXBTZWFyY2hWMlVuYXV0aCl7ZWRnZXN7bm9kZXtlbnRpdHl7X190eXBlbmFtZSwuLi5vbiBBc3NldHt1dWlkLHNsdWcsaW1hZ2VVcmwsZGlzcGxheVN5bWJvbCxuYW1lfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIFJiYUluc3RydW1lbnRHcm91cHtpZH0sLi4ub24gUmV0YWlsQnJva2VyYWdlUHJvZHVjdHtpZH19fX19fWAsY2Q5Yzc5MmMzODU3ZjFlMjFkMzhkNWRkMGY4N2QwNzU2NDI0ZTk4MjU5ZTEwZmIzMzVkMDM4MjExOWVlODUzNzpgcXVlcnkgZ3JhcGhxbFBsYWNlaG9sZGVyc1F1ZXJ5KCRjb3VudHJ5Q29kZTpTdHJpbmchLCRza2lwSGlnaGVzdEVhcm5BUFk6Qm9vbGVhbiEsJHNraXBVc2RjOkJvb2xlYW4hKXsuLi5ncmFwaHFsUGxhY2Vob2xkZXJzX2hpZ2hlc3RFYXJuQVBZRnJhZ21lbnRAc2tpcChpZjokc2tpcEhpZ2hlc3RFYXJuQVBZKSwuLi5ncmFwaHFsUGxhY2Vob2xkZXJzX3VzZGNSYXRlc0ZyYWdtZW50QHNraXAoaWY6JHNraXBVc2RjKX1mcmFnbWVudCBncmFwaHFsUGxhY2Vob2xkZXJzX2hpZ2hlc3RFYXJuQVBZRnJhZ21lbnQgb24gUXVlcnl7aGlnaGVzdEVhcm5BUFlBc3NldHthcHl9fWZyYWdtZW50IGdyYXBocWxQbGFjZWhvbGRlcnNfdXNkY1JhdGVzRnJhZ21lbnQgb24gUXVlcnl7cmV3YXJkc09yY2hlc3RyYXRpb25Qcm9ncmFtUmV3YXJkUmF0ZUZvckxvZ291dFBhZ2UoY3VycmVuY3k6IlVTREMiLHBsYXRmb3JtOlJFVEFJTCxjb3VudHJ5Q29kZTokY291bnRyeUNvZGUpe2Jhc2VSYXRlLGdlb1Byb21vUmF0ZSxjYk9uZVJhdGV9fWAsY2RhNzA1M2FmZDE5MzhhOTk3YWUxNTlmNjA5ZjYyNzc0MTJiOTdlYmUzNjUxM2RkYmI1YjdhNGI2ZmEyMTFhODpgbXV0YXRpb24gdXNlUmV2ZXJzZVBvc2l0aW9uQVRTTXV0YXRpb24oJGlucHV0OlJldmVyc2VQb3NpdGlvbklucHV0ISl7cmV2ZXJzZVBvc2l0aW9uKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBSZXZlcnNlUG9zaXRpb25TdWNjZXNze19fdHlwZW5hbWUsb3JkZXJ7dXVpZCxwcm9kdWN0SWQsY2xpZW50T3JkZXJJZCxzaWRlLGlkfSxyZXZlcnNlRGV0YWlsc3tzb3VyY2VBbW91bnQsdGFyZ2V0QW1vdW50LHNvdXJjZVBvc2l0aW9uU2lkZSx0YXJnZXRQb3NpdGlvblNpZGV9fSwuLi5vbiBQb3NpdGlvbk9wZXJhdGlvbkVycm9ye19fdHlwZW5hbWUsY29ycmVsYXRpb25JZCxtZXNzYWdlLGNvZGUsb3BlcmF0aW9ufX19YCxjZWVjYmYyNGIzMjllMDcxOTc3OWM5NjJhNzA0MjkyMjQxY2FhY2I1ODNiMjM3ZDdhMGExNDlhZTNjMGMwM2U3OmBtdXRhdGlvbiBDaGF0Qm9keUNyZWF0ZVVuYXV0aGVudGljYXRlZENvbnZlcnNhdGlvbkV2ZW50TXV0YXRpb24oJGlucHV0OkNyZWF0ZVVuYXV0aGVudGljYXRlZEV2ZW50SW5wdXQhKXtjcmVhdGVVbmF1dGhlbnRpY2F0ZWRFdmVudChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gQ3JlYXRlVW5hdXRoZW50aWNhdGVkRXZlbnRTdWNjZXNze2NvbnZlcnNhdGlvbkV2ZW50e25vZGV7Li4uTWVzc2FnZVR5cGVUb1VJUmVuZGVyZXJGcmFnbWVudCxpZH19fSwuLi5vbiBCYWRSZXF1ZXN0RXJyb3J7bWVzc2FnZX19fWZyYWdtZW50IE1lc3NhZ2VCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtpZCx1dWlkLHBhcnRpY2lwYW50e2lkLGRpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZX0sY3JlYXRlVGltZSxtZXNzYWdlQ29udGVudHttZXNzYWdlLHJlcGxpZXN7bGFiZWwsbGluayxtZXNzYWdlVG9QdWJsaXNofSxyZWZlcmVuY2VMaW5rc3t0aXRsZSxsaW5rfSxpc1JlYWN0aW9uc0VuYWJsZWQsZXh0cmFFbGVtZW50VHlwZSxleHRyYUVsZW1lbnRQYXlsb2FkfSxmaWxlc01ldGFkYXRhe2ZpbGVze2F0dGFjaG1lbnRJZCxmaWxlTmFtZX19fWZyYWdtZW50IE1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7dHlwZSwuLi5NZXNzYWdlQnViYmxlRnJhZ21lbnQsLi4uUGFydGljaXBhbnRCdWJibGVGcmFnbWVudH1mcmFnbWVudCBQYXJ0aWNpcGFudEJ1YmJsZUZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e3BhcnRpY2lwYW50e2Rpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZSxpZH19YCxkMjM1ZTgzOGQ2NWFiNjI3NjcxNjIxOWY1Mjg4ZmViYmJjOTkwNTI3YTE1MWNmNDA2ZGNhYzg5YTBhY2IzZTViOmBtdXRhdGlvbiBVT0JJbml0aWF0ZUFpRmlsZVVwbG9hZE11dGF0aW9uKCRpbnB1dDpJbml0aWF0ZU1hbnVhbEFjY3JlZGl0YXRpb25Eb2N1bWVudFVwbG9hZElucHV0KXtpbml0aWF0ZU1hbnVhbEFjY3JlZGl0YXRpb25Eb2N1bWVudFVwbG9hZChpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gSW5pdGlhdGVNYW51YWxBY2NyZWRpdGF0aW9uRG9jdW1lbnRVcGxvYWRTdWNjZXNze3Rva2VufSwuLi5vbiBHZW5lcmljRXJyb3J7bWVzc2FnZX19fWAsZDI5YWVlZmZkYTA3ZWZmMjkwY2ZhZGNlOGM1YjExMzUyMmI2YWU5NzJmYzA2OTc3NmQ2YWVkZDgxODhmMzExYTpgcXVlcnkgQ2hhdFdpZGdldEludGVybmFsVW5hdXRoZW50aWNhdGVkUXVlcnkoJGNvbnZlcnNhdGlvblV1aWQ6VXVpZCEsJGd1ZXN0VXNlclV1aWQ6VXVpZCEsJGZpcnN0OkludCEsJGFmdGVyOlN0cmluZywkYmVmb3JlOlN0cmluZywkbGFzdDpJbnQpe3ZpZXdlcnt1bmF1dGhlbnRpY2F0ZWRDb252ZXJzYXRpb25CeVV1aWQodXVpZDokY29udmVyc2F0aW9uVXVpZCxndWVzdFVzZXJVdWlkOiRndWVzdFVzZXJVdWlkKXtlcnJvcixub2Rle2lzQ2xvc2VkLHV1aWQsY3JlYXRvcntpZH0sY2xvc2VUaW1lLGFkZGl0aW9uYWxNZXRhZGF0YXt2YWx1ZSxrZXl9LGV2ZW50cyhmaXJzdDokZmlyc3QsYWZ0ZXI6JGFmdGVyLGJlZm9yZTokYmVmb3JlLGxhc3Q6JGxhc3Qpe2VkZ2Vze2N1cnNvcixub2Rle2lkLHV1aWQsdHlwZSxlcnJvckRhdGF7dHlwZSxtZXNzYWdlLGlzRmF0YWx9LHBhcnRpY2lwYW50e3BhcnRpY2lwYW50VHlwZSxkaXNwbGF5TmFtZSxpZH0sbWVzc2FnZUNvbnRlbnR7bWVzc2FnZX0sX190eXBlbmFtZX19LHBhZ2VJbmZve2VuZEN1cnNvcixoYXNOZXh0UGFnZSxoYXNQcmV2aW91c1BhZ2Usc3RhcnRDdXJzb3J9fSxpZH19LC4uLkNoYXRCb2R5Q29udmVyc2F0aW9uTG9nZ2VkT3V0VGhyZWFkRnJhZ21lbnRfM0trbzFNLGlkfSxjaGF0U3VwcG9ydENvbmZpZ1NldHRpbmdzKGNvbnZlcnNhdGlvblV1aWQ6JGNvbnZlcnNhdGlvblV1aWQsZ3Vlc3RVc2VyVXVpZDokZ3Vlc3RVc2VyVXVpZCl7Y29uZmlnc3trZXksdmFsdWV9LHBpaVJlZ2V4TGlzdHtsYWJlbCxyZWdleH19fWZyYWdtZW50IENoYXRCb2R5Q29udmVyc2F0aW9uTG9nZ2VkT3V0VGhyZWFkRnJhZ21lbnRfM0trbzFNIG9uIFZpZXdlcnt1bmF1dGhlbnRpY2F0ZWRDb252ZXJzYXRpb25CeVV1aWQodXVpZDokY29udmVyc2F0aW9uVXVpZCxndWVzdFVzZXJVdWlkOiRndWVzdFVzZXJVdWlkKXtub2Rle3V1aWQsaXNDbG9zZWQsZXZlbnRzKGZpcnN0OiRmaXJzdCxhZnRlcjokYWZ0ZXIsYmVmb3JlOiRiZWZvcmUsbGFzdDokbGFzdCl7ZWRnZXN7Y3Vyc29yLG5vZGV7aWQsdXVpZCx0eXBlLGNyZWF0ZVRpbWUscGFydGljaXBhbnR7cGFydGljaXBhbnRUeXBlLGlkfSxpblJlcGx5VG9VdWlkLG1lc3NhZ2VDb250ZW50e21lc3NhZ2UsaXNGcmVlVGV4dERpc2FibGVkfSwuLi5NZXNzYWdlVHlwZVRvVUlSZW5kZXJlckZyYWdtZW50LF9fdHlwZW5hbWV9fSxwYWdlSW5mb3tlbmRDdXJzb3IsaGFzTmV4dFBhZ2UsaGFzUHJldmlvdXNQYWdlLHN0YXJ0Q3Vyc29yfX0saWR9fX1mcmFnbWVudCBNZXNzYWdlQnViYmxlRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7aWQsdXVpZCxwYXJ0aWNpcGFudHtpZCxkaXNwbGF5TmFtZSxwYXJ0aWNpcGFudFR5cGV9LGNyZWF0ZVRpbWUsbWVzc2FnZUNvbnRlbnR7bWVzc2FnZSxyZXBsaWVze2xhYmVsLGxpbmssbWVzc2FnZVRvUHVibGlzaH0scmVmZXJlbmNlTGlua3N7dGl0bGUsbGlua30saXNSZWFjdGlvbnNFbmFibGVkLGV4dHJhRWxlbWVudFR5cGUsZXh0cmFFbGVtZW50UGF5bG9hZH0sZmlsZXNNZXRhZGF0YXtmaWxlc3thdHRhY2htZW50SWQsZmlsZU5hbWV9fX1mcmFnbWVudCBNZXNzYWdlVHlwZVRvVUlSZW5kZXJlckZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e3R5cGUsLi4uTWVzc2FnZUJ1YmJsZUZyYWdtZW50LC4uLlBhcnRpY2lwYW50QnViYmxlRnJhZ21lbnR9ZnJhZ21lbnQgUGFydGljaXBhbnRCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtwYXJ0aWNpcGFudHtkaXNwbGF5TmFtZSxwYXJ0aWNpcGFudFR5cGUsaWR9fWAsZDNjYTNjNmRiZTdkMzUzMGFhNjc2NDNhYmYzYTMyYmVhMDliYzk0NmQ0Nzc1MDUwYTZmY2Q0N2E2Y2E0NzM5ODpgbXV0YXRpb24gdXNlU3VibWl0RW1wbG95bWVudE11dGF0aW9uKCRpbnB1dDpVcGRhdGVTZWxmU2VydmljZURhdGFJbnB1dCEpe3VwZGF0ZVNlbGZTZXJ2aWNlRGF0YShpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gVXBkYXRlU2VsZlNlcnZpY2VEYXRhU3VjY2Vzc3tfX3R5cGVuYW1lfSwuLi5vbiBCYWRSZXF1ZXN0RXJyb3J7bWVzc2FnZSxjb2RlfX19YCxkNDE5OWRhNmRiZTlmMGE4MzI5MzAxNTBhMDY3ZmI5YWZiN2ExZTk1MzU5M2U1ZWVlNWZkNjNkYjJhZTU1NGUzOmBzdWJzY3JpcHRpb24gQXNzZXRQcmljZVN1YnNjcmlwdGlvblN1YnNjcmlwdGlvbigkaW5wdXQ6TGF0ZXN0QXNzZXRQcmljZVVwZGF0ZWRJbnB1dCEsJHNob3VsZFVzZVVBU0ZpZWxkczpCb29sZWFuISl7bGF0ZXN0QXNzZXRQcmljZVVwZGF0ZWQoaW5wdXQ6JGlucHV0KXtsYXRlc3RQcmljZXtwcmljZSx0aW1lc3RhbXAscGVyY2VudENoYW5nZXNAc2tpcChpZjokc2hvdWxkVXNlVUFTRmllbGRzKXtob3VyLGRheSx3ZWVrLG1vbnRoLHllYXIsYWxsfSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7aG91cixkYXksd2Vlayxtb250aCx5ZWFyLGFsbH0saWR9fX1gLGQ2NWMzZWU3YmVhNmVhM2M0MWU1NTcwNTE5M2I5MjI5YTM3Y2Y1ZTY4YmIxYzM5YjlkMTk5NDg3N2YxMmEyNWU6YHF1ZXJ5IEZpbHRlcmVkU2VhcmNoU2VjdGlvblF1ZXJ5KCRxdWVyeTpTdHJpbmchLCRzZWN0aW9uRW50aXR5TGltaXQ6SW50ISwkZW50aXR5VHlwZXM6W1NlYXJjaEVudGl0eVVuYXV0aElucHV0IV0hLCRza2lwOkJvb2xlYW4hLCRzaG91bGRVc2VVQVNGaWVsZHM6Qm9vbGVhbiEpe211bHRpU2VjdGlvbmFsU2VhcmNoKHF1ZXJ5OiRxdWVyeSxzZWN0aW9uRW50aXR5TGltaXQ6JHNlY3Rpb25FbnRpdHlMaW1pdCxlbnRpdHlUeXBlczokZW50aXR5VHlwZXMpQHNraXAoaWY6JHNraXApe3NlYXJjaFNlY3Rpb25zey4uLkZpbHRlcmVkU2VhcmNoU2VjdGlvbkZyYWdtZW50fX19ZnJhZ21lbnQgQ3J5cHRvUm93RnJhZ21lbnQgb24gQXNzZXR7bmFtZSxzbHVnLHBsYXRmb3JtTmFtZSxpbWFnZVVybCxjbWNSYW5rLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6IlVTRCIpe3ByaWNlLHBlcmNlbnRDaGFuZ2VzQHNraXAoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxpZH0sbWFya2V0Q2FwVjIocXVvdGVDdXJyZW5jeToiVVNEIiksdm9sdW1lMjRoVjIocXVvdGVDdXJyZW5jeToiVVNEIil9ZnJhZ21lbnQgRXF1aXRpZXNSb3dGcmFnbWVudCBvbiBSZXRhaWxCcm9rZXJhZ2VQcm9kdWN0U2VhcmNoRW50aXR5e2Rpc3BsYXlOYW1lLHNob3J0TmFtZSx0aWNrZXIscHJpY2UscHJpY2VQZXJjZW50YWdlQ2hhbmdlMjRoLHByaWNlUGVyY2VudGFnZUNoYW5nZU1hcmtldEhvdXJzLHZvbHVtZTI0aCxtYXJrZXRDYXB9ZnJhZ21lbnQgRmlsdGVyZWRTZWFyY2hTZWN0aW9uRnJhZ21lbnQgb24gTXVsdGlTZWN0aW9uYWxTZWFyY2hVbmF1dGhTZWN0aW9ue3NlYXJjaEVudGl0aWVze19fdHlwZW5hbWUsLi4ub24gQXNzZXR7dXVpZCwuLi5DcnlwdG9Sb3dGcmFnbWVudH0sLi4ub24gUmV0YWlsQnJva2VyYWdlUHJvZHVjdFNlYXJjaEVudGl0eXtwcm9kdWN0SWQsZGlzcGxheU5hbWUsZnVuZGluZ1JhdGUsdGlja2VyLC4uLlBlcnBzUm93RnJhZ21lbnQsLi4uRnV0dXJlc1Jvd0ZyYWdtZW50LC4uLkVxdWl0aWVzUm93RnJhZ21lbnR9LC4uLm9uIFJiYUluc3RydW1lbnRHcm91cHtpbnN0cnVtZW50R3JvdXBJZCwuLi5QcmVkaWN0aW9uc1Jvd0ZyYWdtZW50LGlkfSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9LC4uLm9uIFJldGFpbEJyb2tlcmFnZVByb2R1Y3R7aWR9fX1mcmFnbWVudCBGdXR1cmVzUm93RnJhZ21lbnQgb24gUmV0YWlsQnJva2VyYWdlUHJvZHVjdFNlYXJjaEVudGl0eXtwcm9kdWN0SWQsZGlzcGxheU5hbWUscHJpY2UscHJpY2VQZXJjZW50YWdlQ2hhbmdlMjRoLGFwcHJveGltYXRlUXVvdGUyNGhWb2x1bWUsaWNvblVybCxleHBpcnlEYXRlLHZlbnVlLG9wZW5JbnRlcmVzdH1mcmFnbWVudCBQZXJwc1Jvd0ZyYWdtZW50IG9uIFJldGFpbEJyb2tlcmFnZVByb2R1Y3RTZWFyY2hFbnRpdHl7cHJvZHVjdElkLGRpc3BsYXlOYW1lLHByaWNlLHByaWNlUGVyY2VudGFnZUNoYW5nZTI0aCxhcHByb3hpbWF0ZVF1b3RlMjRoVm9sdW1lLGljb25VcmwsdmVudWUsZnVuZGluZ1JhdGV9ZnJhZ21lbnQgUHJlZGljdGlvbnNSb3dGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7aW5zdHJ1bWVudEdyb3VwSWQscHJlZGljdGlvbkltYWdlVXJsOmltYWdlVXJsLHByb2R1Y3RzKG1heFByb2R1Y3RzOjEpe3ByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7ZXZlbnRUaXRsZSx5ZXNUaXRsZXN9LGlkfX1gLGQ4OTU0YjJiMWUyNTczNDA5MmYzMGZiYzcwMWMxMDM3ZDhkN2M0MmUyOTQ1YjQ3MzIzNDE1YTlhNzc4MzUwMDY6YHF1ZXJ5IElEVkxhbmRpbmdRdWVyeXsuLi51c2VUaW1lYm94ZWRJbmNlbnRpdmVGcmFnbWVudH1mcmFnbWVudCB1c2VUaW1lYm94ZWRJbmNlbnRpdmVGcmFnbWVudCBvbiBRdWVyeXt2aWV3ZXJ7dXNlckluY2VudGl2ZVN0YXR1c3tpc0VsaWdpYmxlLGluY2VudGl2ZURldGFpbHN7YW1vdW50LHNvdXJjZUN1cnJlbmN5LHRhcmdldEN1cnJlbmN5fSxleHBpcmVzQXR9LGlkfX1gLGQ5YTEwOWVmNzQzYmU1Y2ZkNTliNTg1MGRkMzJjNGJlNWFhMjFjN2NiZGZjMzQwMWE5NDFjOWEzNTViMGVlODA6YHF1ZXJ5IER5bmFtaWNGb290ZXJXaXRoV2F0ZXJmYWxsUXVlcnkoJHBhZ2VLZXk6U3RyaW5nISwkcmVsZXZhbnRUYWdzOltTdHJpbmchXSl7Li4uRHluYW1pY0Zvb3RlckxheW91dEZyYWdtZW50XzJtZXNtZn1mcmFnbWVudCBEeW5hbWljRm9vdGVyTGF5b3V0RnJhZ21lbnRfMm1lc21mIG9uIFF1ZXJ5e3ZpZXdlcnthdXRoZWRTdXJmYWNlOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlOlVJX0NPTVBPTkVOVF9TVVJGQUNFX0ZPT1RFUl9ESVNDTEFJTUVSLGNhdGVnb3JpZXM6W1VJX0NPTVBPTkVOVF9DQVRFR09SWV9GT09URVJfRElTQ0xBSU1FUl0sZmlsdGVyOntmb290ZXJEaXNjbGFpbWVyRmlsdGVyOntwYWdlS2V5OiRwYWdlS2V5fSxyZWxldmFudFRhZ3NGaWx0ZXI6e3JlbGV2YW50VGFnczokcmVsZXZhbnRUYWdzfX0pe2VkZ2Vze25vZGV7Y29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRGb290ZXJEaXNjbGFpbWVye3RpdGxle3RleHR9LGRlc2NyaXB0aW9ue3RleHR9LHRpdGxlQ3Rhe3RleHQsdXJsLHRleHRDb2xvcn0sZGVzY3JpcHRpb25DdGF7dGV4dCx1cmwsdGV4dENvbG9yfSxyaWNoVGV4dFRpdGxle2h0bWxTdHJpbmd9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fSxpZH19LGlkfSxpZH19YCxkOWNlZjFjOTZjOGY2YjNmYjIyNTU3Njc4NmRiYTk5Nzk2ZGZkOTZhZmNiNzhkNzA3YTdjZTFmZTM4ZDc1Mjk1OmBxdWVyeSBVT0JNZXRob2RTZWxlY3RTdGVwUXVlcnl7dmlld2Vye2FjY3JlZGl0YXRpb25TdGF0dXN7YXZhaWxhYmxlTWV0aG9kc3ttZXRob2QsY2FuQXR0ZW1wdCxmYWlsdXJlUmVhc29ufX0sdXNlclByb3BlcnRpZXN7ZW1haWwsaWR9LGlkfX1gLGRhMjc2YmEzYTYxOTg2NmFkMjU4NmQwMjZkODQ4MzYwMmQ5MDlkMWFjODg4YzEzMWMwZDYxOGQ4NzE3MzdmMWY6YHF1ZXJ5IEVtYmVkZGVkQ2hhdFF1ZXJ5KCRjb252ZXJzYXRpb25Db3VudDpJbnQpe3ZpZXdlcntjb252ZXJzYXRpb25zKGZpcnN0OiRjb252ZXJzYXRpb25Db3VudCxzdGF0dXM6T1BFTil7ZWRnZXN7bm9kZXt1dWlkLGlkfX19LGlkfX1gLGRhMmVhMzJhZTliNmE3Zjc0YWRjODA2MDZhYmJiZTVmN2E4YjFjZTdiMTE4ZmIxMTQ4MGM0NzIxMDgwNjE5MTM6YG11dGF0aW9uIHVzZUNyZWF0ZURlcml2YXRpdmVzT25ib2FyZGluZ0FwcGxpY2F0aW9uVjJNdXRhdGlvbigkaW5wdXQ6Q3JlYXRlRGVyaXZhdGl2ZXNPbmJvYXJkaW5nQXBwbGljYXRpb25WMklucHV0ISl7Y3JlYXRlRGVyaXZhdGl2ZXNPbmJvYXJkaW5nQXBwbGljYXRpb25WMihpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gQ3JlYXRlRGVyaXZhdGl2ZXNPbmJvYXJkaW5nQXBwbGljYXRpb25WMlN1Y2Nlc3N7c3RhdHVzLG51bU9mQXR0ZW1wdHMsYXR0ZW1wdHNMb2NrZWRVbnRpbCxoYXNFeGNlZWRlZE1heEF0dGVtcHRzfSwuLi5vbiBHZW5lcmljRXJyb3J7Y29kZSxtZXNzYWdlfX19YCxkYWE2ODIwMDI1YTg5NmU2OGNhYTQ1Y2E5MjJjZDllM2VjZjE5ZDU0YTU1OWMyMWJkZjA4ZDJmNDJhZjVmZjA0OmBxdWVyeSBSZWxhdGVkQ29udmVyc2lvbnNHZW5lcmljTGlua3NRdWVyeSgkbG9jYWxlOkxvY2FsZSEsJGNvdW50cnk6U3RyaW5nISl7Li4uUmVsYXRlZENvbnZlcnNpb25zR2VuZXJpY0ZyYWdtZW50fWZyYWdtZW50IFJlbGF0ZWRDb252ZXJzaW9uc0dlbmVyaWNGcmFnbWVudCBvbiBRdWVyeXt0b3BQUFBzOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJwcmljZS1wcmVkaWN0aW9uIixyZXF1ZXN0SW5wdXQ6e2RlZmF1bHRSZXF1ZXN0SW5wdXQ6e2NvdW50cnlDb2RlOiRjb3VudHJ5LHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAscmFuZG9taXplZENvbmZpZzp7cG9vbFNpemU6ODAsc2FtcGxlU2l6ZToxMn19fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzQXNzZXRFbnRpdHl7bmFtZSxpY29uVXJsLHBhZ2VVcmx9fX0sdG9wQURQOmludGVybmFsTGlua3MobG9jYWxlRnJvbVVybDokbG9jYWxlLHBhZ2VUeXBlOiJwcmljZSIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0Ontjb3VudHJ5Q29kZTokY291bnRyeSxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLHJhbmRvbWl6ZWRDb25maWc6e3Bvb2xTaXplOjUwLHNhbXBsZVNpemU6MTJ9fX0pe2VudGl0aWVze19fdHlwZW5hbWUsLi4ub24gSW50ZXJuYWxMaW5rc0Fzc2V0RW50aXR5e25hbWUsaWNvblVybCxwYWdlVXJsfX19LHRvcEhUQjppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToiaG93LXRvLWJ1eSIscmVxdWVzdElucHV0OntkZWZhdWx0UmVxdWVzdElucHV0Ontjb3VudHJ5Q29kZTokY291bnRyeSxzb3J0OlNPUlRfVFlQRV9NQVJLRVRfQ0FQLGZpbHRlcnM6W0ZJTFRFUl9UUkFEQUJMRV0scmFuZG9taXplZENvbmZpZzp7cG9vbFNpemU6NTAsc2FtcGxlU2l6ZToxMn19fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzQXNzZXRFbnRpdHl7bmFtZSxpY29uVXJsLHBhZ2VVcmx9fX0scG9wdWxhckVxdWl0eTppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToic3RvY2siLHJlcXVlc3RJbnB1dDp7ZXF1aXR5UmVxdWVzdElucHV0OntzeW1ib2w6IiIsc29ydDpTT1JUX1RZUEVfTUFSS0VUX0NBUCxyZXF1ZXN0QW1vdW50OjEwLHNlY3Rpb246RVFVSVRZX1NFQ1RJT05fUE9QVUxBUn19KXtlbnRpdGllc3tfX3R5cGVuYW1lLC4uLm9uIEludGVybmFsTGlua3NFcXVpdHlFbnRpdHl7bmFtZSxzeW1ib2wsaWNvblVybCxwYWdlVXJsfX19LGV4cGxvcmVFcXVpdHk6aW50ZXJuYWxMaW5rcyhsb2NhbGVGcm9tVXJsOiRsb2NhbGUscGFnZVR5cGU6InN0b2NrIixyZXF1ZXN0SW5wdXQ6e2VxdWl0eVJlcXVlc3RJbnB1dDp7c3ltYm9sOiIiLHNvcnQ6U09SVF9UWVBFX01BUktFVF9DQVAscmVxdWVzdEFtb3VudDoxMCxzZWN0aW9uOkVRVUlUWV9TRUNUSU9OX0VYUExPUkV9fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzRXF1aXR5RW50aXR5e25hbWUsc3ltYm9sLGljb25VcmwscGFnZVVybH19fSx0b3BQcmVkaWN0aW9uTWFya2V0czppbnRlcm5hbExpbmtzKGxvY2FsZUZyb21Vcmw6JGxvY2FsZSxwYWdlVHlwZToicHJlZGljdGlvbnMiLHJlcXVlc3RJbnB1dDp7cHJlZGljdGlvbk1hcmtldFJlcXVlc3RJbnB1dDp7c29ydDpTT1JUX1RZUEVfVk9MVU1FLHJlcXVlc3RBbW91bnQ6MTB9fSl7ZW50aXRpZXN7X190eXBlbmFtZSwuLi5vbiBJbnRlcm5hbExpbmtzUHJlZGljdGlvbk1hcmtldEVudGl0eXtuYW1lOnRpdGxlLGljb25VcmwscGFnZVVybH19fX1gLGRiZDk3ZDU2NmFhMTA1NDYyZDEzYzg3ZTNmNGEzMGVhMTdmMDlhZDc5NzIyOTFhOTlkYTMxYTYzNzM2OGU1ZjI6YHF1ZXJ5IFByZWRpY3Rpb25NYXJrZXRzRmVhdHVyZWRFdmVudFBhZ2VRdWVyeSgkZmlsdGVyOlJiYUluc3RydW1lbnRHcm91cHNTZWFyY2hGaWx0ZXJJbnB1dCEsJG1heFByb2R1Y3RzOkludCwkcHJvZHVjdHNTb3J0T3B0aW9uOlJiYVByb2R1Y3RzU29ydE9wdGlvbiwkcHJvZHVjdHNTb3J0T3JkZXI6U29ydE9yZGVyLCRzb3J0T3B0aW9uOlJiYUluc3RydW1lbnRHcm91cFNvcnRPcHRpb24sJHNvcnRPcmRlcjpTb3J0T3JkZXIsJGxpdmVQcm9kdWN0SWRzOltUaGlyZFBhcnR5SWRTdHJpbmchXSEsJHNraXBMaXZlUHJvZHVjdFN0YXRzOkJvb2xlYW4hKXsuLi5QcmVkaWN0aW9uTWFya2V0c0xpdmVQcm9kdWN0U3RhdHNFbWl0dGVyRnJhZ21lbnQsLi4uUHJlZGljdGlvbk1hcmtldHNGZWF0dXJlZEV2ZW50UGFnZUlubmVyRnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgQmFzZWJhbGxIMkhDYXJkRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGlja2VyLGxpdmVFdmVudHtzdGF0dXMsbWlsZXN0b25lc3tlbnJpY2hlZERhdGF7X190eXBlbmFtZSwuLi5vbiBSYmFCYXNlYmFsbEdhbWVFbnJpY2hlZHtpbm5pbmcsaW5uaW5nSGFsZixvdXRzLGhvbWVUZWFte3RlYW1JZCxydW5zLGlzV2lubmVyfSxhd2F5VGVhbXt0ZWFtSWQscnVucyxpc1dpbm5lcn19fX19fSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7c3ViamVjdFJlZmVyZW5jZXN7c3ViamVjdElkfX0sLi4uQmFzZWJhbGxQcm9kdWN0Um93RnJhZ21lbnQsaWR9LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkSGVhZGVyVjJGcmFnbWVudCwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFZvbHVtZUZyYWdtZW50LC4uLkdhbWVTdGF0dXNCYWRnZUZyYWdtZW50LC4uLlByZWRpY3Rpb25NYXJrZXRzSDJIVHJhZGVCdXR0b25Hcm91cEZyYWdtZW50X0YxUzZ3LC4uLkRlZmF1bHRIMkhDYXJkRnJhZ21lbnRfRjFTNnd9ZnJhZ21lbnQgQmFzZWJhbGxQcm9kdWN0Um93RnJhZ21lbnQgb24gUmJhUHJvZHVjdHtwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5UZWFtUm93RnJhZ21lbnR9ZnJhZ21lbnQgQmFza2V0YmFsbEgySENhcmRGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaWNrZXIsbGl2ZUV2ZW50e3N0YXR1cyxtaWxlc3RvbmVze2VucmljaGVkRGF0YXtfX3R5cGVuYW1lLC4uLm9uIFJiYUJhc2tldGJhbGxHYW1lRW5yaWNoZWR7cGVyaW9kLHBlcmlvZFR5cGUsY2xvY2ssaG9tZVRlYW17dGVhbUlkLHBvaW50c30sYXdheVRlYW17dGVhbUlkLHBvaW50c319fX19fSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7c3ViamVjdFJlZmVyZW5jZXN7c3ViamVjdElkfX0sLi4uQmFza2V0YmFsbFByb2R1Y3RSb3dGcmFnbWVudCxpZH0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkVm9sdW1lRnJhZ21lbnQsLi4uR2FtZVN0YXR1c0JhZGdlRnJhZ21lbnQsLi4uUHJlZGljdGlvbk1hcmtldHNIMkhUcmFkZUJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncsLi4uRGVmYXVsdEgySENhcmRGcmFnbWVudF9GMVM2d31mcmFnbWVudCBCYXNrZXRiYWxsUHJvZHVjdFJvd0ZyYWdtZW50IG9uIFJiYVByb2R1Y3R7cHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3llc1RpdGxlc30sLi4uVGVhbVJvd0ZyYWdtZW50fWZyYWdtZW50IERlZmF1bHRIMkhDYXJkRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGlja2VyfSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5EZWZhdWx0SDJIQ2FyZFByb2R1Y3RSb3dGcmFnbWVudCxpZH0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkU2NoZWR1bGVGcmFnbWVudCwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFZvbHVtZUZyYWdtZW50LC4uLlByZWRpY3Rpb25NYXJrZXRzSDJIVHJhZGVCdXR0b25Hcm91cEZyYWdtZW50X0YxUzZ3LC4uLnVzZUhlYWRUb0hlYWRUZWFtRGF0YUZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IERlZmF1bHRIMkhDYXJkUHJvZHVjdFJvd0ZyYWdtZW50IG9uIFJiYVByb2R1Y3R7cHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3llc1RpdGxlc30sLi4uVGVhbVJvd0ZyYWdtZW50fWZyYWdtZW50IEdhbWVTdGF0dXNCYWRnZUZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tsaXZlRXZlbnR7c3RhdHVzfX0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTY2hlZHVsZUZyYWdtZW50fWZyYWdtZW50IEhvY2tleUgySENhcmRGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaWNrZXIsbGl2ZUV2ZW50e3N0YXR1cyxtaWxlc3RvbmVze2VucmljaGVkRGF0YXtfX3R5cGVuYW1lLC4uLm9uIFJiYUhvY2tleUdhbWVFbnJpY2hlZHtwZXJpb2QsY2xvY2ssaG9tZVRlYW17dGVhbUlkLGdvYWxzLGlzV2lubmVyfSxhd2F5VGVhbXt0ZWFtSWQsZ29hbHMsaXNXaW5uZXJ9fX19fX0scHJvZHVjdHMobWF4UHJvZHVjdHM6JG1heFByb2R1Y3RzLHNvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixzb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtwcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3N1YmplY3RSZWZlcmVuY2Vze3N1YmplY3RJZH19LC4uLkhvY2tleVByb2R1Y3RSb3dGcmFnbWVudCxpZH0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkVm9sdW1lRnJhZ21lbnQsLi4uR2FtZVN0YXR1c0JhZGdlRnJhZ21lbnQsLi4uUHJlZGljdGlvbk1hcmtldHNIMkhUcmFkZUJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncsLi4uRGVmYXVsdEgySENhcmRGcmFnbWVudF9GMVM2d31mcmFnbWVudCBIb2NrZXlQcm9kdWN0Um93RnJhZ21lbnQgb24gUmJhUHJvZHVjdHtwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5UZWFtUm93RnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tldmVudFRpdGxlLGRhcmtNb2RlSWNvblVybCxsaWdodE1vZGVJY29uVXJsfX1mcmFnbWVudCBQcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZEl0ZW1GcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7ZXZlbnRUaWNrZXJ9LHByb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tjb250cmFjdEV4cGlyeSxzZXR0bGVtZW50UHJpY2V9LGlkfSwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZEhlYWRlclYyRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRNdWx0aU1hcmtldFYyRnJhZ21lbnRfRjFTNncsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTaW5nbGVNYXJrZXRWMkZyYWdtZW50X0YxUzZ3LC4uLlByZWRpY3Rpb25FeHBsb3JlSDJIRXZlbnRDYXJkVjJGcmFnbWVudF9GMVM2dywuLi51c2VJc0hlYWRUb0hlYWRFdmVudEZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkTXVsdGlNYXJrZXRWMkZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tldmVudFRpY2tlcn0sdG90YWxQcm9kdWN0cyxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmljZSxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7aXNJbWFnZU92ZXJ3cml0dGVuLHllc1RpdGxlc30sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRNdWx0aU1hcmtldFYyUHJvZHVjdFJvd0ZyYWdtZW50LGlkfSwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZEhlYWRlclYyRnJhZ21lbnQsLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTdGF0c0ZyYWdtZW50fWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkTXVsdGlNYXJrZXRWMlByb2R1Y3RSb3dGcmFnbWVudCBvbiBSYmFQcm9kdWN0e2Jhc2VDYnJuLHByb2R1Y3RJZCxwcmljZSxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7YXNrUHJpY2Vze3llc0Fzayxub0Fza30sc2V0dGxlbWVudFByaWNlLHllc1RpdGxlcyxsaWdodE1vZGVJY29uVXJsLGRhcmtNb2RlSWNvblVybCxpc0ltYWdlT3ZlcndyaXR0ZW59fWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkU2NoZWR1bGVGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7bGl2ZUV2ZW50e3N0YXJ0RGF0ZX19LC4uLnVzZVByZWRpY3Rpb25NYXJrZXRFdmVudFNjaGVkdWxlU3RhdGVGcmFnbWVudH1mcmFnbWVudCBQcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFNpbmdsZU1hcmtldFYyRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3Byb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7YmFzZUNicm4scHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3tldmVudFRpY2tlcixhc2tQcmljZXN7eWVzQXNrLG5vQXNrfX0saWR9LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkSGVhZGVyVjJGcmFnbWVudCwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFN0YXRzRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTdGF0c0ZyYWdtZW50IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tsaXZlRXZlbnR7c3RhdHVzfX0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRTY2hlZHVsZUZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkVm9sdW1lRnJhZ21lbnR9ZnJhZ21lbnQgUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRWb2x1bWVGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7dG90YWxWb2x1bWV9fWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkc0ZyYWdtZW50X0YxUzZ3IG9uIFF1ZXJ5ey4uLnVzZVBhZ2luYXRlZFByZWRpY3Rpb25FdmVudENhcmRzRnJhZ21lbnRfMmJWTExTfWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlSDJIRXZlbnRDYXJkVjJGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7dGFncyxsaXZlRXZlbnR7bWlsZXN0b25lc3tlbnJpY2hlZERhdGF7X190eXBlbmFtZX19fX0sLi4uQmFza2V0YmFsbEgySENhcmRGcmFnbWVudF9GMVM2dywuLi5Ib2NrZXlIMkhDYXJkRnJhZ21lbnRfRjFTNncsLi4uVGVubmlzSDJIQ2FyZEZyYWdtZW50X0YxUzZ3LC4uLlNvY2NlckgySENhcmRGcmFnbWVudF9GMVM2dywuLi5CYXNlYmFsbEgySENhcmRGcmFnbWVudF9GMVM2dywuLi5EZWZhdWx0SDJIQ2FyZEZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IFByZWRpY3Rpb25FeHBsb3JlU2VjdG9yU2VsZWN0b3JGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7c2VjdG9yTGlzdHtzZWN0b3Isc2VjdG9ySWQsbGFiZWx9fX1mcmFnbWVudCBQcmVkaWN0aW9uRXhwbG9yZVN0aWNreU5hdkZyYWdtZW50IG9uIFF1ZXJ5ey4uLlByZWRpY3Rpb25FeHBsb3JlU2VjdG9yU2VsZWN0b3JGcmFnbWVudH1mcmFnbWVudCBQcmVkaWN0aW9uTWFya2V0c0ZlYXR1cmVkRXZlbnRQYWdlSW5uZXJGcmFnbWVudF9GMVM2dyBvbiBRdWVyeXsuLi5QcmVkaWN0aW9uRXhwbG9yZVN0aWNreU5hdkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkc0ZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IFByZWRpY3Rpb25NYXJrZXRzSDJIQ2FzaE91dEJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwey4uLlByZWRpY3Rpb25NYXJrZXRzSGVhZFRvSGVhZEJ1dHRvbkZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IFByZWRpY3Rpb25NYXJrZXRzSDJIVHJhZGVCdXR0b25Hcm91cEZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxiYXNlQ2JybixwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7c2V0dGxlbWVudFByaWNlLGFza1ByaWNlc3t5ZXNBc2ssbm9Bc2t9fSxpZH0sLi4uUHJlZGljdGlvbk1hcmtldHNIZWFkVG9IZWFkQnV0dG9uR3JvdXBGcmFnbWVudF9GMVM2dywuLi5QcmVkaWN0aW9uTWFya2V0c0gySENhc2hPdXRCdXR0b25Hcm91cEZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IFByZWRpY3Rpb25NYXJrZXRzSGVhZFRvSGVhZEJ1dHRvbkZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxiYXNlQ2JybixwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7YWJicmV2aWF0aW9uLHllc1RpdGxlcyxhc2tQcmljZXN7eWVzQXNrfX0saWR9LC4uLnVzZUhlYWRUb0hlYWRUZWFtRGF0YUZyYWdtZW50X0YxUzZ3fWZyYWdtZW50IFByZWRpY3Rpb25NYXJrZXRzSGVhZFRvSGVhZEJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwey4uLlByZWRpY3Rpb25NYXJrZXRzSGVhZFRvSGVhZEJ1dHRvbkZyYWdtZW50X0YxUzZ3LC4uLnVzZUhlYWRUb0hlYWRTZXR0bGVtZW50U3RhdHVzRnJhZ21lbnRfRjFTNncsLi4udXNlUHJlZGljdGlvbk1hcmtldEV2ZW50U2NoZWR1bGVTdGF0ZUZyYWdtZW50fWZyYWdtZW50IFByZWRpY3Rpb25NYXJrZXRzTGl2ZVByb2R1Y3RTdGF0c0VtaXR0ZXJGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2VAc2tpcChpZjokc2tpcExpdmVQcm9kdWN0U3RhdHMpe3Byb2R1Y3RzU3RhdHMocHJvZHVjdElkczokbGl2ZVByb2R1Y3RJZHMscHJvZHVjdFR5cGU6UFJFRElDVElPTl9NQVJLRVQscHJvZHVjdFZlbnVlOktBTFNISSl7cHJvZHVjdElkLHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7YXNrUHJpY2Vze3llc0Fzayxub0Fza30sY29udHJhY3RFeHBpcnksc2V0dGxlbWVudFByaWNlfSxmY21UcmFkaW5nU2Vzc2lvbkRldGFpbHN7Y2xvc2VUaW1lLGlzU2Vzc2lvbk9wZW4sb3BlblRpbWV9LGlkfX19ZnJhZ21lbnQgU29jY2VySDJIQ2FyZEZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tldmVudFRpY2tlcixsaXZlRXZlbnR7c3RhdHVzLG1pbGVzdG9uZXN7ZW5yaWNoZWREYXRhe19fdHlwZW5hbWUsLi4ub24gUmJhU29jY2VyTWF0Y2hFbnJpY2hlZHtoYWxmLHRpbWUsc2hvd1BlbmFsdGllcyxob21lVGVhbXt0ZWFtSWQsc2FtZUdhbWVTY29yZSxwZW5hbHRpZXMsaXNXaW5uZXJ9LGF3YXlUZWFte3RlYW1JZCxzYW1lR2FtZVNjb3JlLHBlbmFsdGllcyxpc1dpbm5lcn19fX19fSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3Byb2R1Y3RJZCxwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5Tb2NjZXJQcm9kdWN0Um93RnJhZ21lbnQsaWR9LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkSGVhZGVyVjJGcmFnbWVudCwuLi5QcmVkaWN0aW9uRXhwbG9yZUV2ZW50Q2FyZFZvbHVtZUZyYWdtZW50LC4uLkdhbWVTdGF0dXNCYWRnZUZyYWdtZW50LC4uLlByZWRpY3Rpb25NYXJrZXRzSDJIVHJhZGVCdXR0b25Hcm91cEZyYWdtZW50X0YxUzZ3LC4uLkRlZmF1bHRIMkhDYXJkRnJhZ21lbnRfRjFTNncsLi4udXNlSGVhZFRvSGVhZFRlYW1EYXRhRnJhZ21lbnRfRjFTNncsLi4udXNlU29jY2VySDJITWF0Y2h1cERhdGFGcmFnbWVudH1mcmFnbWVudCBTb2NjZXJQcm9kdWN0Um93RnJhZ21lbnQgb24gUmJhUHJvZHVjdHtwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5UZWFtUm93RnJhZ21lbnR9ZnJhZ21lbnQgVGVhbVJvd0ZyYWdtZW50IG9uIFJiYVByb2R1Y3R7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thYmJyZXZpYXRpb24sZGFya01vZGVJY29uVXJsLGxpZ2h0TW9kZUljb25VcmwsbWFya2V0Q29sb3IsbWFya2V0Q29sb3JEYXJrfX1mcmFnbWVudCBUZW5uaXNIMkhDYXJkRnJhZ21lbnRfRjFTNncgb24gUmJhSW5zdHJ1bWVudEdyb3Vwe3ByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze2V2ZW50VGlja2VyLGxpdmVFdmVudHtzdGF0dXMsbWlsZXN0b25lc3tlbnJpY2hlZERhdGF7X190eXBlbmFtZSwuLi5vbiBSYmFUZW5uaXNNYXRjaEVucmljaGVke2N1cnJlbnRTZXQscGxheWVyMXtwbGF5ZXJJZCxzZXRzV29uLGN1cnJlbnRHYW1lUG9pbnRzLGlzV2lubmVyLGlzU2VydmluZyxoYXNBZHZhbnRhZ2Usc2NvcmVze3Njb3JlLG91dGNvbWV9fSxwbGF5ZXIye3BsYXllcklkLHNldHNXb24sY3VycmVudEdhbWVQb2ludHMsaXNXaW5uZXIsaXNTZXJ2aW5nLGhhc0FkdmFudGFnZSxzY29yZXN7c2NvcmUsb3V0Y29tZX19fX19fX0scHJvZHVjdHMobWF4UHJvZHVjdHM6JG1heFByb2R1Y3RzLHNvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixzb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtwcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3N1YmplY3RSZWZlcmVuY2Vze3N1YmplY3RJZH19LC4uLlRlbm5pc1Byb2R1Y3RSb3dGcmFnbWVudCxpZH0sLi4uUHJlZGljdGlvbkV4cGxvcmVFdmVudENhcmRIZWFkZXJWMkZyYWdtZW50LC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkVm9sdW1lRnJhZ21lbnQsLi4uR2FtZVN0YXR1c0JhZGdlRnJhZ21lbnQsLi4uUHJlZGljdGlvbk1hcmtldHNIMkhUcmFkZUJ1dHRvbkdyb3VwRnJhZ21lbnRfRjFTNncsLi4uRGVmYXVsdEgySENhcmRGcmFnbWVudF9GMVM2d31mcmFnbWVudCBUZW5uaXNQcm9kdWN0Um93RnJhZ21lbnQgb24gUmJhUHJvZHVjdHtwcmVkaWN0aW9uTWFya2V0UHJvZHVjdERldGFpbHN7eWVzVGl0bGVzfSwuLi5UZWFtUm93RnJhZ21lbnR9ZnJhZ21lbnQgdXNlSGVhZFRvSGVhZFNldHRsZW1lbnRTdGF0dXNGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJvZHVjdHMobWF4UHJvZHVjdHM6JG1heFByb2R1Y3RzLHNvcnRPcHRpb246JHByb2R1Y3RzU29ydE9wdGlvbixzb3J0T3JkZXI6JHByb2R1Y3RzU29ydE9yZGVyKXtwcm9kdWN0SWQscHJlZGljdGlvbk1hcmtldFByb2R1Y3REZXRhaWxze3NldHRsZW1lbnRQcmljZX0saWR9fWZyYWdtZW50IHVzZUhlYWRUb0hlYWRUZWFtRGF0YUZyYWdtZW50X0YxUzZ3IG9uIFJiYUluc3RydW1lbnRHcm91cHtwcmVkaWN0aW9uTWFya2V0SW5zdHJ1bWVudEdyb3VwRGV0YWlsc3tsaXZlRXZlbnR7bWlsZXN0b25lc3tlbnJpY2hlZERhdGF7X190eXBlbmFtZSwuLi5vbiBSYmFCYXNrZXRiYWxsR2FtZUVucmljaGVke2hvbWVUZWFte3RlYW1JZCx0ZWFtTmFtZX0sYXdheVRlYW17dGVhbUlkLHRlYW1OYW1lfSxfX3R5cGVuYW1lfSwuLi5vbiBSYmFGb290YmFsbEdhbWVFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhU29jY2VyTWF0Y2hFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhQmFzZWJhbGxHYW1lRW5yaWNoZWR7aG9tZVRlYW17dGVhbUlkLHRlYW1OYW1lfSxhd2F5VGVhbXt0ZWFtSWQsdGVhbU5hbWV9LF9fdHlwZW5hbWV9LC4uLm9uIFJiYUhvY2tleUdhbWVFbnJpY2hlZHtob21lVGVhbXt0ZWFtSWQsdGVhbU5hbWV9LGF3YXlUZWFte3RlYW1JZCx0ZWFtTmFtZX0sX190eXBlbmFtZX0sLi4ub24gUmJhQ3JpY2tldE1hdGNoRW5yaWNoZWR7aG9tZVRlYW17dGVhbUlkLHRlYW1OYW1lfSxhd2F5VGVhbXt0ZWFtSWQsdGVhbU5hbWV9LF9fdHlwZW5hbWV9LC4uLm9uIFJiYVRlbm5pc01hdGNoRW5yaWNoZWR7aG9tZVRlYW06cGxheWVyMXt0ZWFtSWQ6cGxheWVySWQsdGVhbU5hbWU6cGxheWVyTmFtZX0sYXdheVRlYW06cGxheWVyMnt0ZWFtSWQ6cGxheWVySWQsdGVhbU5hbWU6cGxheWVyTmFtZX0sX190eXBlbmFtZX19fX19LHByb2R1Y3RzKG1heFByb2R1Y3RzOiRtYXhQcm9kdWN0cyxzb3J0T3B0aW9uOiRwcm9kdWN0c1NvcnRPcHRpb24sc29ydE9yZGVyOiRwcm9kdWN0c1NvcnRPcmRlcil7cHJvZHVjdElkLHByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3thYmJyZXZpYXRpb24sbWFya2V0Q29sb3IsbWFya2V0Q29sb3JEYXJrLHllc1RpdGxlcyxzdWJqZWN0UmVmZXJlbmNlc3tzdWJqZWN0SWR9fSxpZH19ZnJhZ21lbnQgdXNlSXNIZWFkVG9IZWFkRXZlbnRGcmFnbWVudF9GMVM2dyBvbiBSYmFJbnN0cnVtZW50R3JvdXB7c2VjdG9yLHByZWRpY3Rpb25NYXJrZXRJbnN0cnVtZW50R3JvdXBEZXRhaWxze3Njb3BlfSxwcm9kdWN0cyhtYXhQcm9kdWN0czokbWF4UHJvZHVjdHMsc29ydE9wdGlvbjokcHJvZHVjdHNTb3J0T3B0aW9uLHNvcnRPcmRlcjokcHJvZHVjdHNTb3J0T3JkZXIpe3ByZWRpY3Rpb25NYXJrZXRQcm9kdWN0RGV0YWlsc3t5ZXNUaXRsZXN9LGlkfSwuLi51c2VIZWFkVG9IZWFkVGVhbURhdGFGcmFnbWVudF9GMVM2d31mcmFnbWVudCB1c2VQYWdpbmF0ZWRQcmVkaWN0aW9uRXZlbnRDYXJkc0ZyYWdtZW50XzJiVkxMUyBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7aW5zdHJ1bWVudEdyb3VwcyhmaWx0ZXI6JGZpbHRlcixzb3J0T3B0aW9uOiRzb3J0T3B0aW9uLHNvcnRPcmRlcjokc29ydE9yZGVyLGZpcnN0OjMyKXtlZGdlc3tub2Rle2lkLGluc3RydW1lbnRHcm91cElkLC4uLlByZWRpY3Rpb25FeHBsb3JlRXZlbnRDYXJkSXRlbUZyYWdtZW50X0YxUzZ3LF9fdHlwZW5hbWV9LGN1cnNvcn0scGFnZUluZm97ZW5kQ3Vyc29yLGhhc05leHRQYWdlfX19fWZyYWdtZW50IHVzZVByZWRpY3Rpb25NYXJrZXRFdmVudFNjaGVkdWxlU3RhdGVGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7c2hvdWxkVXNlU2VyaWVzLGxpdmVFdmVudHtzdGFydERhdGUsc3RhdHVzfX19ZnJhZ21lbnQgdXNlU29jY2VySDJITWF0Y2h1cERhdGFGcmFnbWVudCBvbiBSYmFJbnN0cnVtZW50R3JvdXB7cHJlZGljdGlvbk1hcmtldEluc3RydW1lbnRHcm91cERldGFpbHN7bGl2ZUV2ZW50e21pbGVzdG9uZXN7ZW5yaWNoZWREYXRhe19fdHlwZW5hbWUsLi4ub24gUmJhU29jY2VyTWF0Y2hFbnJpY2hlZHtoYWxmLHRpbWUsc2hvd1BlbmFsdGllcyxob21lVGVhbXtzYW1lR2FtZVNjb3JlLHBlbmFsdGllcyxpc1dpbm5lcn0sYXdheVRlYW17c2FtZUdhbWVTY29yZSxwZW5hbHRpZXMsaXNXaW5uZXJ9fX19fX19YCxkY2RmY2NiMjIzZWQ2YmIwNDRkNmIzZjM5ZjY3YTY5NjUwNjkwY2E3MjRjMDI2M2M1Zjg4ODk5MjU4N2M5Y2IzOmBxdWVyeSBBcnRpY2xlUXVlcnkoJGN1cnJlbmN5OlRpY2tlclN5bWJvbCEpey4uLlJlY2VudGx5QWRkZWRBc3NldHNGcmFnbWVudF80c2t1VWV9ZnJhZ21lbnQgUmVjZW50bHlBZGRlZEFzc2V0c0ZyYWdtZW50XzRza3VVZSBvbiBRdWVyeXtzZWFyY2hBc3NldHNWMihmaWx0ZXI6UkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTLGZpcnN0Ojgpe2VkZ2Vze25vZGV7bmFtZSxzbHVnLGltYWdlVXJsLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtwcmljZSxpZH0saWR9fX19YCxkY2Y4YzBjYmIwYzdlZDBiZTU1ZGVmMjU0NTdiNGFiZjdjNTBhYjM4MzI4N2IyZjRkNmIyMjM5NjUxOTVjYzY3OmBxdWVyeSBDb2luNTBQcmljZURpc3BsYXlGcmFnbWVudENkeHYyUmVmZXRjaFF1ZXJ5ey4uLkNvaW41MFByaWNlRGlzcGxheUNkeHYyRnJhZ21lbnR9ZnJhZ21lbnQgQ29pbjUwUHJpY2VEaXNwbGF5Q2R4djJGcmFnbWVudCBvbiBRdWVyeXtyZXRhaWxJbnR4VW5hdXRoZWR7aW5kZXhCeVN5bWJvbChzeW1ib2w6IkNPSU41MCIpe3ByaWNlLHByaWNlMjRIclBlcmNlbnR9fX1gLGRkZGM3OTNlMTg4NTA1ZTc0MTBlNmQ0YjY5NTc2ODk1Zjk5ODFmOGJiOWY3ZGE3YTE1MTRlMjBjY2FjODhlYjE6YHN1YnNjcmlwdGlvbiBDaGF0RXZlbnRTdWJzY3JpYmVyU3Vic2NyaXB0aW9uKCRpbnB1dDpTdWJzY3JpYmVFdmVudHNCeUNvbnZlcnNhdGlvbklucHV0ISl7ZXZlbnQ6c3Vic2NyaWJlQ29udmVyc2F0aW9uRXZlbnRzQnlDb252ZXJzYXRpb24oaW5wdXQ6JGlucHV0KXtjdXJzb3Isbm9kZXtpZCx1dWlkLHR5cGUsY3JlYXRlVGltZSxlcnJvckRhdGF7aXNGYXRhbCx0eXBlLG1lc3NhZ2V9LGNvbnZlcnNhdGlvbntpZCx1dWlkLGlzQ2xvc2VkLGFkZGl0aW9uYWxNZXRhZGF0YXtrZXksdmFsdWV9fSxwYXJ0aWNpcGFudHtwYXJ0aWNpcGFudFR5cGUsaWR9LG1lc3NhZ2VDb250ZW50e2lzRnJlZVRleHREaXNhYmxlZH0sLi4uTWVzc2FnZVR5cGVUb1VJUmVuZGVyZXJGcmFnbWVudH19fWZyYWdtZW50IE1lc3NhZ2VCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtpZCx1dWlkLHBhcnRpY2lwYW50e2lkLGRpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZX0sY3JlYXRlVGltZSxtZXNzYWdlQ29udGVudHttZXNzYWdlLHJlcGxpZXN7bGFiZWwsbGluayxtZXNzYWdlVG9QdWJsaXNofSxyZWZlcmVuY2VMaW5rc3t0aXRsZSxsaW5rfSxpc1JlYWN0aW9uc0VuYWJsZWQsZXh0cmFFbGVtZW50VHlwZSxleHRyYUVsZW1lbnRQYXlsb2FkfSxmaWxlc01ldGFkYXRhe2ZpbGVze2F0dGFjaG1lbnRJZCxmaWxlTmFtZX19fWZyYWdtZW50IE1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7dHlwZSwuLi5NZXNzYWdlQnViYmxlRnJhZ21lbnQsLi4uUGFydGljaXBhbnRCdWJibGVGcmFnbWVudH1mcmFnbWVudCBQYXJ0aWNpcGFudEJ1YmJsZUZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e3BhcnRpY2lwYW50e2Rpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZSxpZH19YCxkZTMxMTNiZDM0YWFhODM2MDlmZWY3NzU2NGFlNTA0MzE5YTc2MjJmNzNmY2NjM2I4YTZiZTliYTI3N2M5ODY2OmBxdWVyeSBDbGFzc2lmaWNhdGlvblNlbGVjdFNjcmVlblF1ZXJ5KCRxdWVzdGlvblR5cGU6R2VuZXJpY0NvbXBsaWFuY2VRdWVzdGlvblR5cGUhKXt2aWV3ZXJ7Z2VuZXJpY0NvbXBsaWFuY2VRdWVzdGlvbnNCeVR5cGUodHlwZTokcXVlc3Rpb25UeXBlKXtxdWVzdGlvbnN7dXVpZCx0aXRsZSxvcHRpb25ze3ZhbHVlLHRpdGxlfSxpZH19LGlkfX1gLGRmZTQ5ZGU3NzFhNzZhOGQ4MDUwZTY2YWM1YTNhMmMyY2I4OTY2ODQ5NzJhNzdkMjE3NzAxYWRiYjI5Y2U0OTc6YG11dGF0aW9uIFBheUxpbmtDbGFpbUNvbnRlbnRNdXRhdGlvbigkY2xhaW1Ub2tlbjpTdHJpbmchKXtjb21wbGV0ZVAyUFVzZXJDbGFpbShpbnB1dDp7Y2xhaW1Ub2tlbjokY2xhaW1Ub2tlbn0pe19fdHlwZW5hbWUsLi4ub24gQ29tcGxldGVQMlBVc2VyQ2xhaW1TdWNjZXNze19fdHlwZW5hbWV9LC4uLm9uIENvbXBsZXRlUDJQVXNlckNsYWltRXJyb3J7X190eXBlbmFtZSx0aXRsZSxkZXNjcmlwdGlvbixlcnJvcntjb2RlfX0sLi4ub24gQmFkUmVxdWVzdEVycm9ye21lc3NhZ2UsX190eXBlbmFtZX19fWAsZTA2ODQ2MjY2YzU3OWE4NWRkMTdiYzc2M2FmNGE5ZWVlZmM4Nzk2YWRiMTdkNmY3MTg3YjI4MDVkMzFjMWQ4MDpgc3Vic2NyaXB0aW9uIHVzZUNoYXRFdmVudFN1YnNjcmliZXJUZXN0UXVlcnlTdWJzY3JpcHRpb24oJGlucHV0OlN1YnNjcmliZUV2ZW50c0J5Q29udmVyc2F0aW9uSW5wdXQhKXtldmVudDpzdWJzY3JpYmVDb252ZXJzYXRpb25FdmVudHNCeUNvbnZlcnNhdGlvbihpbnB1dDokaW5wdXQpe2N1cnNvcixub2Rle2lkLHV1aWQsdHlwZSxlcnJvckRhdGF7aXNGYXRhbCx0eXBlLG1lc3NhZ2V9LGNvbnZlcnNhdGlvbntpZCx1dWlkLGlzQ2xvc2VkLGFkZGl0aW9uYWxNZXRhZGF0YXtrZXksdmFsdWV9fSxwYXJ0aWNpcGFudHtwYXJ0aWNpcGFudFR5cGUsaWR9LC4uLk1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnR9fX1mcmFnbWVudCBNZXNzYWdlQnViYmxlRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7aWQsdXVpZCxwYXJ0aWNpcGFudHtpZCxkaXNwbGF5TmFtZSxwYXJ0aWNpcGFudFR5cGV9LGNyZWF0ZVRpbWUsbWVzc2FnZUNvbnRlbnR7bWVzc2FnZSxyZXBsaWVze2xhYmVsLGxpbmssbWVzc2FnZVRvUHVibGlzaH0scmVmZXJlbmNlTGlua3N7dGl0bGUsbGlua30saXNSZWFjdGlvbnNFbmFibGVkLGV4dHJhRWxlbWVudFR5cGUsZXh0cmFFbGVtZW50UGF5bG9hZH0sZmlsZXNNZXRhZGF0YXtmaWxlc3thdHRhY2htZW50SWQsZmlsZU5hbWV9fX1mcmFnbWVudCBNZXNzYWdlVHlwZVRvVUlSZW5kZXJlckZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e3R5cGUsLi4uTWVzc2FnZUJ1YmJsZUZyYWdtZW50LC4uLlBhcnRpY2lwYW50QnViYmxlRnJhZ21lbnR9ZnJhZ21lbnQgUGFydGljaXBhbnRCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtwYXJ0aWNpcGFudHtkaXNwbGF5TmFtZSxwYXJ0aWNpcGFudFR5cGUsaWR9fWAsZTEwZDBlMzAyY2QyM2JiNzEyZDlmMWM1NjNhODgyYzQ1NGY0ODliMzFhZDgwOTNiOGRlZjVhMDc4MzZlY2U3MDpgcXVlcnkgTWVzc2FnZUJ1YmJsZVRlc3RRdWVyeSgkY29udmVyc2F0aW9uVXVpZDpVdWlkISl7dmlld2Vye2NvbnZlcnNhdGlvbkJ5VXVpZCh1dWlkOiRjb252ZXJzYXRpb25VdWlkKXtub2Rle2V2ZW50c3tlZGdlc3tub2Rle2lkLC4uLk1lc3NhZ2VCdWJibGVGcmFnbWVudH19fSxpZH19LGlkfX1mcmFnbWVudCBNZXNzYWdlQnViYmxlRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7aWQsdXVpZCxwYXJ0aWNpcGFudHtpZCxkaXNwbGF5TmFtZSxwYXJ0aWNpcGFudFR5cGV9LGNyZWF0ZVRpbWUsbWVzc2FnZUNvbnRlbnR7bWVzc2FnZSxyZXBsaWVze2xhYmVsLGxpbmssbWVzc2FnZVRvUHVibGlzaH0scmVmZXJlbmNlTGlua3N7dGl0bGUsbGlua30saXNSZWFjdGlvbnNFbmFibGVkLGV4dHJhRWxlbWVudFR5cGUsZXh0cmFFbGVtZW50UGF5bG9hZH0sZmlsZXNNZXRhZGF0YXtmaWxlc3thdHRhY2htZW50SWQsZmlsZU5hbWV9fX1gLGUxNDQ3OWY0NDdmZTQ3YWJkMDQzZmM1Y2I2YWJkMmVmYzM3M2Q1ZGQwNmYwYWU1OTYwYThlODMwNGE2MTk1YzA6YHF1ZXJ5IFVPQkludHJvVjJTdGVwUXVlcnkoJHNraXBBY2NyZWRpdGF0aW9uU3RhdHVzOkJvb2xlYW4hKXt2aWV3ZXJ7cmVtZWRpYXRpb25BbGVydHt0aXRsZX0sYWNjcmVkaXRhdGlvblN0YXR1c0Bza2lwKGlmOiRza2lwQWNjcmVkaXRhdGlvblN0YXR1cyl7aXNBY2NyZWRpdGVkLGNhblJlZnJlc2h9LGlkfSwuLi5VT0JNb3N0UmVjZW50QWNjcmVkaXRhdGlvbkRhdGVGcmFnbWVudH1mcmFnbWVudCBVT0JNb3N0UmVjZW50QWNjcmVkaXRhdGlvbkRhdGVGcmFnbWVudCBvbiBRdWVyeXt2aWV3ZXJ7bWFudWFsQWNjcmVkaXRhdGlvbnM6dXNlckFjY3JlZGl0YXRpb24oc3RhdHVzOkFDQ1JFRElUQVRJT05fU1RBVFVTX0NPTVBMRVRFRCxtZXRob2Q6QUNDUkVESVRBVElPTl9NRVRIT0RfTUFOVUFMKXtleHBpcmVzQXQsaWR9LHNpbmdwYXNzQWNjcmVkaXRhdGlvbnM6dXNlckFjY3JlZGl0YXRpb24oc3RhdHVzOkFDQ1JFRElUQVRJT05fU1RBVFVTX0NPTVBMRVRFRCxtZXRob2Q6QUNDUkVESVRBVElPTl9NRVRIT0RfU0lOR1BBU1Mpe2V4cGlyZXNBdCxpZH0saWR9fWAsZTE1MTcxN2VkZTFkMmQ1NjI1ZTQ2YzQ0M2YwYTQ5YTI2NGIwNmQ3NDMyZWNjNmM3NTM3MzU0NjFmOGMzNjBkYzpgcXVlcnkgdXNlQ3VycmVuY3lDb252ZXJ0ZXJRdWVyeSgkYmFzZUN1cnJlbmN5OlRpY2tlclN5bWJvbCEsJHRhcmdldEN1cnJlbmNpZXM6W1N0cmluZyFdISwkc2tpcEZldGNoOkJvb2xlYW4hKXtleGNoYW5nZVJhdGVzVjQoYmFzZUN1cnJlbmN5OiRiYXNlQ3VycmVuY3ksY3VycmVuY2llczokdGFyZ2V0Q3VycmVuY2llcylAc2tpcChpZjokc2tpcEZldGNoKXtxdW90ZUN1cnJlbmN5LHByaWNlfX1gLGUyNTlmZDhlYzkzOTMwOTk0MzI4NmIzNzJjYTBlYTdmNzI5MzY5ZmVhZmQwYzFiYjIxZmUwZDJiOTMyZDFkZjQ6YHF1ZXJ5IENoYXRXaWRnZXRJbnRlcm5hbFF1ZXJ5KCRjb252ZXJzYXRpb25Db3VudDpJbnQpe3ZpZXdlcnt1c2VyUHJvcGVydGllc3twZXJzb25hbERldGFpbHN7bGVnYWxOYW1le2ZpcnN0TmFtZX19LGlkfSxjb252ZXJzYXRpb25zKGZpcnN0OiRjb252ZXJzYXRpb25Db3VudCxzdGF0dXM6T1BFTil7Li4uQ2hhdFdpZGdldEV4aXN0aW5nRW50cnlGcmFnbWVudCxlZGdlc3tub2Rle3V1aWQsaXNDbG9zZWQsZXZlbnRzKGxhc3Q6MSl7ZWRnZXN7bm9kZXt1dWlkLHR5cGUsaWQsX190eXBlbmFtZX0sY3Vyc29yfSxwYWdlSW5mb3toYXNQcmV2aW91c1BhZ2Usc3RhcnRDdXJzb3J9fSxpZH19fSxpZH19ZnJhZ21lbnQgQ2hhdFdpZGdldEV4aXN0aW5nRW50cnlGcmFnbWVudCBvbiBDb252ZXJzYXRpb25zQ29ubmVjdGlvbnsuLi5DaGF0V2lkZ2V0RXhpc3RpbmdFbnRyeUlubmVyRnJhZ21lbnQsZWRnZXN7bm9kZXt1dWlkLGlzQ2xvc2VkLGV2ZW50cyhsYXN0OjEpe2VkZ2Vze2N1cnNvcixub2Rle3R5cGUsZXJyb3JEYXRhe2lzRmF0YWwsbWVzc2FnZSx0eXBlfSxpZH19fSxpZH19fWZyYWdtZW50IENoYXRXaWRnZXRFeGlzdGluZ0VudHJ5SW5uZXJGcmFnbWVudCBvbiBDb252ZXJzYXRpb25zQ29ubmVjdGlvbntlZGdlc3tub2Rle3V1aWQsaXNDbG9zZWQsZXZlbnRzKGxhc3Q6MSl7ZWRnZXN7bm9kZXt1dWlkLHR5cGUscGFydGljaXBhbnR7cGFydGljaXBhbnRUeXBlLGlkfSxtZXNzYWdlQ29udGVudHttZXNzYWdlfSxpZH19fSxpZH19fWAsZTI2Y2Y0MWJlYzU5ZDA1NjBlZTA2ODhhYzgyYTlkY2ZjNWY2MjY1YTZmYWFhZTA5Y2M0MmVmMWQxY2Y0NGM0ZjpgbXV0YXRpb24gdXNlVGF4SW5mb1N1Ym1pdHRlck11dGF0aW9uTmV3TXV0YXRpb24oJGlucHV0OlN1Ym1pdEVVVGF4UmVzaWRlbmNlSW5wdXQhKXtzdWJtaXRFVVRheFJlc2lkZW5jZShpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gU3VibWl0RVVUYXhSZXNpZGVuY2VTdWNjZXNze2Zvcm1JZCxzdGF0dXMsbWVzc2FnZSxjcmVhdGVkQXQsZGF0YUNvbnNpc3RlbmN5UmVzdWx0e2hhc0luY29uc2lzdGVuY2llc319LC4uLm9uIFN1Ym1pdEVVVGF4UmVzaWRlbmNlQWN0aW9uYWJsZUVycm9ye2NvcnJlbGF0aW9uSWQsdGl0bGUsZGVzY3JpcHRpb24sY3Rhe3VybH19fX1gLGUzYTM0MTBhZmNmMmEwMGNhOTNlYjE2ZWYxNjU5MzBiNzcwNjg5ZDNmZjQ0NWYyMjM0MDllYTBkNWViM2VjMTY6YG11dGF0aW9uIHVzZVNlbGZDZXJ0aWZpY2F0aW9uRm9ybVN1Ym1pdHRlclJlY2VydE11dGF0aW9uKCRpbnB1dDpSZWNlcnRpZnlTZWxmQ2VydGlmaWNhdGlvbkZvcm1JbnB1dCEpe3JlY2VydGlmeVNlbGZDZXJ0aWZpY2F0aW9uRm9ybShpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gUmVjZXJ0aWZ5U2VsZkNlcnRpZmljYXRpb25Gb3JtU3VjY2Vzc3tmb3JtSWQsc3RhdHVzLG1lc3NhZ2UsY3JlYXRlZEF0LHZpZXdlcntpZH19LC4uLm9uIFJlY2VydGlmeVNlbGZDZXJ0aWZpY2F0aW9uRm9ybUFjdGlvbmFibGVFcnJvcntjb3JyZWxhdGlvbklkLHRpdGxlLGRlc2NyaXB0aW9uLGN0YXt1cmx9fX19YCxlM2RkZjg1MjE1MjViNjcwZmE2YmM4NzExYzZjMjBkMGJiNDEzZTkxYjU3MTBjYjZhZTc5MmFjZjkxODM3YmI1OmBtdXRhdGlvbiB0cmlnZ2VyUHJveHlFeHBvcnRNdXRhdGlvbigkaW5wdXQ6VHJpZ2dlclNvbGFuYVByaXZhdGVLZXlFeHBvcnRJbnB1dCEpe3RyaWdnZXJTb2xhbmFQcml2YXRlS2V5RXhwb3J0KGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBUcmlnZ2VyU29sYW5hUHJpdmF0ZUtleUV4cG9ydFN1Y2Nlc3N7ZW5jcnlwdGVkUHJpdmF0ZUtleX0sLi4ub24gR2VuZXJpY0Vycm9ye21lc3NhZ2UsY29kZX19fWAsZTRkNjI0YThmNzFhY2U1ZjAwNWEzZWY1NWI4ZjA3YmI4NWZmYjY2YWI4NDc3MzJjMTU2ODE0N2VjN2M4MzExNzpgbXV0YXRpb24gVU9CTWFudWFsQWNjcmVkaXRhdGlvbk9wdEluTXV0YXRpb257bWFudWFsQWNjcmVkaXRhdGlvbk9wdElue19fdHlwZW5hbWUsLi4ub24gTWFudWFsQWNjcmVkaXRhdGlvbk9wdEluU3VjY2Vzc3ttYW51YWxBY2NyZWRpdGF0aW9uSW50ZXJlc3R7dXVpZCxpZH19LC4uLm9uIEdlbmVyaWNFcnJvcnttZXNzYWdlfX19YCxlNGRhNjRiYTkzODgxYTRlNmRlZmNlYzg1ZjE4YmZhYmYxNWU0MDVmMTAwNzAwMDJmMDVjY2IxZmMwOGEzYmJlOmBxdWVyeSBFcXVpdHlFeHBsb3JlUXVlcnkoJGNvdW50OkludCEsJHNvcnRPcHRpb246UmJhUHJvZHVjdHNTb3J0T3B0aW9uLCRzb3J0T3JkZXI6U29ydE9yZGVyKXtyZXRhaWxCcm9rZXJhZ2V7YWxsUHJvZHVjdHNFcnJvckNoZWNrOmFsbFByb2R1Y3RzKGZpbHRlcjp7cHJvZHVjdFR5cGU6RVFVSVRZLHF1b3RlQ3VycmVuY3k6IlVTRCJ9LHNvcnRPcHRpb246JHNvcnRPcHRpb24sc29ydE9yZGVyOiRzb3J0T3JkZXIsZmlyc3Q6MSl7X190eXBlbmFtZX0sc3B5RXRmOnByb2R1Y3RCeVN5bWJvbChzeW1ib2w6IlNQWSIpe2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH19LC4uLnVzZVBhZ2luYXRlZEVxdWl0eUV4cGxvcmVSb3dzRnJhZ21lbnRfS0Z3NTQsLi4uRXF1aXR5RXhwbG9yZVByZXZpZXdzRnJhZ21lbnRfM0I3Sk5JfWZyYWdtZW50IEVxdWl0eUV4cGxvcmVQcmV2aWV3c0ZyYWdtZW50XzNCN0pOSSBvbiBRdWVyeXtyZXRhaWxCcm9rZXJhZ2V7U1BZOnByb2R1Y3RCeVN5bWJvbChzeW1ib2w6IlNQWSIpe2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sUVFROnByb2R1Y3RCeVN5bWJvbChzeW1ib2w6IlFRUSIpe2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sVlRJOnByb2R1Y3RCeVN5bWJvbChzeW1ib2w6IlZUSSIpe2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sRElBOnByb2R1Y3RCeVN5bWJvbChzeW1ib2w6IkRJQSIpe2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sVk9POnByb2R1Y3RCeVN5bWJvbChzeW1ib2w6IlZPTyIpe2Jhc2VDdXJyZW5jeVN5bWJvbCxlcXVpdHlQcm9kdWN0RGV0YWlsc3tzaG9ydE5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sQlRDOnByb2R1Y3RCeVByb2R1Y3RJZChwcm9kdWN0SWQ6IkJJUC0yMERFQzMwLUNERSIpe3Byb2R1Y3RJZCxmdXR1cmVQcm9kdWN0RGV0YWlsc3tkaXNwbGF5TmFtZSxjb250cmFjdERpc3BsYXlOYW1lfSxwcmljZSxwcmljZVBlcmNlbnRDaGFuZ2UyNGgsaWR9LEVUSDpwcm9kdWN0QnlQcm9kdWN0SWQocHJvZHVjdElkOiJFVFAtMjBERUMzMC1DREUiKXtwcm9kdWN0SWQsZnV0dXJlUHJvZHVjdERldGFpbHN7ZGlzcGxheU5hbWUsY29udHJhY3REaXNwbGF5TmFtZX0scHJpY2UscHJpY2VQZXJjZW50Q2hhbmdlMjRoLGlkfSxTT0w6cHJvZHVjdEJ5UHJvZHVjdElkKHByb2R1Y3RJZDoiU0xQLTIwREVDMzAtQ0RFIil7cHJvZHVjdElkLGZ1dHVyZVByb2R1Y3REZXRhaWxze2Rpc3BsYXlOYW1lLGNvbnRyYWN0RGlzcGxheU5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH0sWFJQOnByb2R1Y3RCeVByb2R1Y3RJZChwcm9kdWN0SWQ6IlhQUC0yMERFQzMwLUNERSIpe3Byb2R1Y3RJZCxmdXR1cmVQcm9kdWN0RGV0YWlsc3tkaXNwbGF5TmFtZSxjb250cmFjdERpc3BsYXlOYW1lfSxwcmljZSxwcmljZVBlcmNlbnRDaGFuZ2UyNGgsaWR9LFBBWEc6cHJvZHVjdEJ5UHJvZHVjdElkKHByb2R1Y3RJZDoiUEFVLTIwREVDMzAtQ0RFIil7cHJvZHVjdElkLGZ1dHVyZVByb2R1Y3REZXRhaWxze2Rpc3BsYXlOYW1lLGNvbnRyYWN0RGlzcGxheU5hbWV9LHByaWNlLHByaWNlUGVyY2VudENoYW5nZTI0aCxpZH19LGNyeXB0b0JpdGNvaW46YXNzZXRCeVNsdWcoc2x1ZzoiYml0Y29pbiIpe3NsdWcsZGlzcGxheVN5bWJvbCxuYW1lLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6IlVTRCIpe3ByaWNlLHBlcmNlbnRDaGFuZ2VzVjJ7ZGF5fSxpZH0saWR9LGNyeXB0b0V0aGVyZXVtOmFzc2V0QnlTbHVnKHNsdWc6ImV0aGVyZXVtIil7c2x1ZyxkaXNwbGF5U3ltYm9sLG5hbWUsbGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeToiVVNEIil7cHJpY2UscGVyY2VudENoYW5nZXNWMntkYXl9LGlkfSxpZH0sY3J5cHRvWHJwOmFzc2V0QnlTbHVnKHNsdWc6InhycCIpe3NsdWcsZGlzcGxheVN5bWJvbCxuYW1lLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6IlVTRCIpe3ByaWNlLHBlcmNlbnRDaGFuZ2VzVjJ7ZGF5fSxpZH0saWR9LGNyeXB0b0JuYjphc3NldEJ5U2x1ZyhzbHVnOiJibmIiKXtzbHVnLGRpc3BsYXlTeW1ib2wsbmFtZSxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiJVU0QiKXtwcmljZSxwZXJjZW50Q2hhbmdlc1Yye2RheX0saWR9LGlkfSxjcnlwdG9Vc2RjOmFzc2V0QnlTbHVnKHNsdWc6InVzZGMiKXtzbHVnLGRpc3BsYXlTeW1ib2wsbmFtZSxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiJVU0QiKXtwcmljZSxwZXJjZW50Q2hhbmdlc1Yye2RheX0saWR9LGlkfX1mcmFnbWVudCB1c2VQYWdpbmF0ZWRFcXVpdHlFeHBsb3JlUm93c0ZyYWdtZW50X0tGdzU0IG9uIFF1ZXJ5e3JldGFpbEJyb2tlcmFnZXthbGxQcm9kdWN0cyhmaWx0ZXI6e3Byb2R1Y3RUeXBlOkVRVUlUWSxxdW90ZUN1cnJlbmN5OiJVU0QifSxzb3J0T3B0aW9uOiRzb3J0T3B0aW9uLHNvcnRPcmRlcjokc29ydE9yZGVyLGZpcnN0OiRjb3VudCl7ZWRnZXN7bm9kZXtiYXNlQ3VycmVuY3lTeW1ib2wscHJvZHVjdElkLGVxdWl0eVByb2R1Y3REZXRhaWxze3Nob3J0TmFtZX0scHJpY2UscHJpY2VQZXJjZW50Q2hhbmdlMjRoLHZvbHVtZTI0aCxtYXJrZXRDYXAsaWQsX190eXBlbmFtZX0sY3Vyc29yfSxwYWdlSW5mb3tlbmRDdXJzb3IsaGFzTmV4dFBhZ2V9fX19YCxlNmYxMzQ4ZmQxMjEzZDRmMTI1YTVkMjE5ZTU0N2NhMzJlZDdkZWNkMGFjZjk3MmEzNTM3OWU0YjBiNmI1MjVlOmBxdWVyeSBDaGF0Qm9keUNvbnZlcnNhdGlvblRocmVhZEZyYWdtZW50UXVlcnkoJGFmdGVyOlN0cmluZywkYmVmb3JlOlN0cmluZywkY29udmVyc2F0aW9uVXVpZDpVdWlkISwkZmlyc3Q6SW50LCRsYXN0OkludCl7dmlld2Vyey4uLkNoYXRCb2R5Q29udmVyc2F0aW9uVGhyZWFkRnJhZ21lbnRfM0hUWnFjLGlkfX1mcmFnbWVudCBDaGF0Qm9keUNvbnZlcnNhdGlvblRocmVhZEZyYWdtZW50XzNIVFpxYyBvbiBWaWV3ZXJ7Y2hhdFN1cHBvcnRDb25maWdTZXR0aW5nc3twaWlSZWdleExpc3R7bGFiZWwscmVnZXh9LGNvbmZpZ3N7a2V5LHZhbHVlfX0sY29udmVyc2F0aW9uQnlVdWlkKHV1aWQ6JGNvbnZlcnNhdGlvblV1aWQpe25vZGV7dXVpZCxpc0Nsb3NlZCxldmVudHMoZmlyc3Q6JGZpcnN0LGFmdGVyOiRhZnRlcixiZWZvcmU6JGJlZm9yZSxsYXN0OiRsYXN0KXtlZGdlc3tjdXJzb3Isbm9kZXtpZCx1dWlkLHR5cGUsY3JlYXRlVGltZSxwYXJ0aWNpcGFudHtwYXJ0aWNpcGFudFR5cGUsaWR9LGluUmVwbHlUb1V1aWQsbWVzc2FnZUNvbnRlbnR7bWVzc2FnZSxpc0ZyZWVUZXh0RGlzYWJsZWR9LC4uLk1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQsX190eXBlbmFtZX19LHBhZ2VJbmZve2VuZEN1cnNvcixoYXNOZXh0UGFnZSxoYXNQcmV2aW91c1BhZ2Usc3RhcnRDdXJzb3J9fSxpZH19fWZyYWdtZW50IE1lc3NhZ2VCdWJibGVGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHtpZCx1dWlkLHBhcnRpY2lwYW50e2lkLGRpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZX0sY3JlYXRlVGltZSxtZXNzYWdlQ29udGVudHttZXNzYWdlLHJlcGxpZXN7bGFiZWwsbGluayxtZXNzYWdlVG9QdWJsaXNofSxyZWZlcmVuY2VMaW5rc3t0aXRsZSxsaW5rfSxpc1JlYWN0aW9uc0VuYWJsZWQsZXh0cmFFbGVtZW50VHlwZSxleHRyYUVsZW1lbnRQYXlsb2FkfSxmaWxlc01ldGFkYXRhe2ZpbGVze2F0dGFjaG1lbnRJZCxmaWxlTmFtZX19fWZyYWdtZW50IE1lc3NhZ2VUeXBlVG9VSVJlbmRlcmVyRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7dHlwZSwuLi5NZXNzYWdlQnViYmxlRnJhZ21lbnQsLi4uUGFydGljaXBhbnRCdWJibGVGcmFnbWVudH1mcmFnbWVudCBQYXJ0aWNpcGFudEJ1YmJsZUZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e3BhcnRpY2lwYW50e2Rpc3BsYXlOYW1lLHBhcnRpY2lwYW50VHlwZSxpZH19YCxlNzJlYjEzNmQ1Mzg0MWY2YTVjOWViMmIwMDExYTQ1YjU5NTFjNGEwMWNiOGFkMmM4ODYzNDE3YzgyNTU3OTUzOmBtdXRhdGlvbiB1c2VVT0JBY2NlcHRDYmZzZUFncmVlbWVudE11dGF0aW9uKCRpbnB1dDpBY2NlcHRGdXR1cmVzQWdyZWVtZW50SW5wdXQhKXthY2NlcHRGdXR1cmVzQWdyZWVtZW50KGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBBY2NlcHRGdXR1cmVzQWdyZWVtZW50U3VjY2Vzc3tkdW1teX19fWAsZThjYzdlODJiYWIxZWNlYzg3ZWE1YTIxZGRkYjMwYTc3NmRlZmNhMTFiYTM3ZjcwODE3N2FhZTNlODQ3MjIyYTpgc3Vic2NyaXB0aW9uIENvaW5iYXNlR3JhcGhRTFRyYW5zcG9ydEZ1dHVyZXNTdWJzY3JpcHRpb257ZnV0dXJlc1Bvc2l0aW9uc1VwZGF0ZXtfX3R5cGVuYW1lLC4uLm9uIEZ1dHVyZXNQb3NpdGlvbkFkZGVkRXZlbnR7cG9zaXRpb257aWQscHJvZHVjdE5hbWUsc2lkZSxhbW91bnQsYXZnRW50cnlQcmljZSxjdXJyZW50UHJpY2UsdW5yZWFsaXplZFBubCxjb250cmFjdFNpemUsbm90aW9uYWxWYWx1ZSxmdW5kaW5nUG5sLHJvbGxEYXRlLHZlbnVlLGV4cGlyeVV0YyxwcmVkaWN0ZWRMaXF1aWRhdGlvblByaWNlc3tzdGFuZGFyZExpcXVpZGF0aW9uUHJpY2V7dmFsdWV9LGludHJhZGF5TGlxdWlkYXRpb25QcmljZXt2YWx1ZX0saWR9fX0sLi4ub24gRnV0dXJlc1Bvc2l0aW9uVXBkYXRlZEV2ZW50e3Bvc2l0aW9ue2lkLHByb2R1Y3ROYW1lLHNpZGUsYW1vdW50LGF2Z0VudHJ5UHJpY2UsY3VycmVudFByaWNlLHVucmVhbGl6ZWRQbmwsY29udHJhY3RTaXplLG5vdGlvbmFsVmFsdWUsZnVuZGluZ1BubCxyb2xsRGF0ZSx2ZW51ZSxleHBpcnlVdGMscHJlZGljdGVkTGlxdWlkYXRpb25QcmljZXN7c3RhbmRhcmRMaXF1aWRhdGlvblByaWNle3ZhbHVlfSxpbnRyYWRheUxpcXVpZGF0aW9uUHJpY2V7dmFsdWV9LGlkfX19LC4uLm9uIEZ1dHVyZXNQb3NpdGlvblJlbW92ZWRFdmVudHtpZH19fWAsZTlmZjQ1NWQzNGQxMTg4Zjc2YWY1NWRjNGM0Mzk2ZTQxZjNiYTIzNWM5ZDRjZTdiZTE1Zjk2YTMzNTVjMjRjZDpgbXV0YXRpb24gSW50eFRyYWRpbmdEdWVEaWxpZ2VuY2VGbG93TXV0YXRpb24oJGlucHV0OlN1Ym1pdEludHhUcmFkaW5nS1lDRHVlRGlsaWdlbmNlSW5wdXQhKXtzdWJtaXRJbnR4VHJhZGluZ0tZQ0R1ZURpbGlnZW5jZShpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gU3VibWl0SW50eFRyYWRpbmdLWUNEdWVEaWxpZ2VuY2VTdWNjZXNze2R1bW15fSwuLi5vbiBHZW5lcmljRXJyb3J7bWVzc2FnZSxjb2RlfX19YCxlYjA2ZjU2ODBjOTczMzAzM2JmYTg2MDZjZTZlOTUyMDJjNjkwYjE5NGJhYThhZTUyMmFiNDdiMmViNjdiZWNiOmBxdWVyeSBEZXJpdmF0aXZlQ0RERmxvd1F1ZXJ5KCRxdWVzdGlvblR5cGU6R2VuZXJpY0NvbXBsaWFuY2VRdWVzdGlvblR5cGUhKXt2aWV3ZXJ7Z2VuZXJpY0NvbXBsaWFuY2VRdWVzdGlvbnNCeVR5cGUodHlwZTokcXVlc3Rpb25UeXBlKXthbnN3ZXJNZXRhRGF0YXtoYXNFeGNlZWRlZE1heEF0dGVtcHRzfSxxdWVzdGlvbnN7dXVpZCx0aXRsZSxvcHRpb25ze3ZhbHVlLHRpdGxlfSxpZH19LGlkfX1gLGViNDZhMTg4MjcwODRjZTYxMDM0OGYyOTkxZDFjZmEzNDY4ZTgwOWJkYmZiZWEwYTY5YzEyMmQ5MDgzYTc5NjQ6YHF1ZXJ5IEJ1eU1vZHVsZVF1ZXJ5KCRzbHVnOlN0cmluZyEsJGN1cnJlbmN5OlRpY2tlclN5bWJvbCEpe21hcmtldEhlYWx0aFYyKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5LHJlc29sdXRpb246REFZKXttYXJrZXRDYXBTdGF0c3twZXJjZW50Q2hhbmdlfX0sLi4uQXNzZXRCdXlQcmV2aWV3RnJhZ21lbnRfMjBKNVBsfWZyYWdtZW50IEFzc2V0QnV5UHJldmlld0ZyYWdtZW50XzIwSjVQbCBvbiBRdWVyeXthc3NldEJ5U2x1ZyhzbHVnOiRzbHVnKXtuYW1lLHBsYXRmb3JtTmFtZSxpbWFnZVVybCxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cHJpY2UscXVvdGVDdXJyZW5jeSxpZH0scHJpY2VEYXRhRm9yRGF5VjIocXVvdGVDdXJyZW5jeTokY3VycmVuY3kpe3BlcmNlbnRDaGFuZ2V9LGlkfSx1c2RjQXNzZXQ6YXNzZXRCeVNsdWcoc2x1ZzoidXNkYyIpe25hbWUscGxhdGZvcm1OYW1lLGltYWdlVXJsLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtwcmljZSxxdW90ZUN1cnJlbmN5LGlkfSxwcmljZURhdGFGb3JEYXlWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cGVyY2VudENoYW5nZX0saWR9LHNlYXJjaEFzc2V0czpzZWFyY2hBc3NldHNWMihmaXJzdDozMCxmaWx0ZXI6TElTVEVEKXtlZGdlc3tub2Rle2lkLHBsYXRmb3JtTmFtZSxuYW1lLGltYWdlVXJsLGxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JGN1cnJlbmN5KXtwcmljZSxxdW90ZUN1cnJlbmN5LGlkfSxwcmljZURhdGFGb3JEYXlWMihxdW90ZUN1cnJlbmN5OiRjdXJyZW5jeSl7cGVyY2VudENoYW5nZX19fX19YCxlYjVhNWM2ZjM0MTViODVkYzBkZmVjOGIyMTYxODgwYWYxNzkxYTE5MTVjNGQ0MTcwMmNjYmRhZjIxNzhkMGRkOmBxdWVyeSBDaGF0Qm9keVRlc3RRdWVyeSgkY29udmVyc2F0aW9uVXVpZDpVdWlkISl7dmlld2Vyey4uLkNoYXRCb2R5Q29udmVyc2F0aW9uVGhyZWFkRnJhZ21lbnRfMmNxSHRZLGlkfX1mcmFnbWVudCBDaGF0Qm9keUNvbnZlcnNhdGlvblRocmVhZEZyYWdtZW50XzJjcUh0WSBvbiBWaWV3ZXJ7Y2hhdFN1cHBvcnRDb25maWdTZXR0aW5nc3twaWlSZWdleExpc3R7bGFiZWwscmVnZXh9LGNvbmZpZ3N7a2V5LHZhbHVlfX0sY29udmVyc2F0aW9uQnlVdWlkKHV1aWQ6JGNvbnZlcnNhdGlvblV1aWQpe25vZGV7dXVpZCxpc0Nsb3NlZCxldmVudHMoZmlyc3Q6MTApe2VkZ2Vze2N1cnNvcixub2Rle2lkLHV1aWQsdHlwZSxjcmVhdGVUaW1lLHBhcnRpY2lwYW50e3BhcnRpY2lwYW50VHlwZSxpZH0saW5SZXBseVRvVXVpZCxtZXNzYWdlQ29udGVudHttZXNzYWdlLGlzRnJlZVRleHREaXNhYmxlZH0sLi4uTWVzc2FnZVR5cGVUb1VJUmVuZGVyZXJGcmFnbWVudCxfX3R5cGVuYW1lfX0scGFnZUluZm97ZW5kQ3Vyc29yLGhhc05leHRQYWdlLGhhc1ByZXZpb3VzUGFnZSxzdGFydEN1cnNvcn19LGlkfX19ZnJhZ21lbnQgTWVzc2FnZUJ1YmJsZUZyYWdtZW50IG9uIENvbnZlcnNhdGlvbkV2ZW50e2lkLHV1aWQscGFydGljaXBhbnR7aWQsZGlzcGxheU5hbWUscGFydGljaXBhbnRUeXBlfSxjcmVhdGVUaW1lLG1lc3NhZ2VDb250ZW50e21lc3NhZ2UscmVwbGllc3tsYWJlbCxsaW5rLG1lc3NhZ2VUb1B1Ymxpc2h9LHJlZmVyZW5jZUxpbmtze3RpdGxlLGxpbmt9LGlzUmVhY3Rpb25zRW5hYmxlZCxleHRyYUVsZW1lbnRUeXBlLGV4dHJhRWxlbWVudFBheWxvYWR9LGZpbGVzTWV0YWRhdGF7ZmlsZXN7YXR0YWNobWVudElkLGZpbGVOYW1lfX19ZnJhZ21lbnQgTWVzc2FnZVR5cGVUb1VJUmVuZGVyZXJGcmFnbWVudCBvbiBDb252ZXJzYXRpb25FdmVudHt0eXBlLC4uLk1lc3NhZ2VCdWJibGVGcmFnbWVudCwuLi5QYXJ0aWNpcGFudEJ1YmJsZUZyYWdtZW50fWZyYWdtZW50IFBhcnRpY2lwYW50QnViYmxlRnJhZ21lbnQgb24gQ29udmVyc2F0aW9uRXZlbnR7cGFydGljaXBhbnR7ZGlzcGxheU5hbWUscGFydGljaXBhbnRUeXBlLGlkfX1gLGVjMGIyZDliM2U0MWE3YjY2MzQyZWU1NmUwODNhNDNjZGM3YzVkYTFhZDFjNDNmNGY4ZjgwNmUyNDE1YTMyYjY6YG11dGF0aW9uIHVzZUNvbmZpcm1EZXJpdmF0aXZlc1NTTlZhbGlkaXR5VU9CTXV0YXRpb24oJGlucHV0OkNvbmZpcm1EZXJpdmF0aXZlc09uYm9hcmRpbmdTU05WYWxpZGl0eVYzSW5wdXQhKXtjb25maXJtRGVyaXZhdGl2ZXNPbmJvYXJkaW5nU1NOVmFsaWRpdHlWMyhpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gQ29uZmlybURlcml2YXRpdmVzT25ib2FyZGluZ1NTTlZhbGlkaXR5VjNTdWNjZXNze3ZhbGlkaXR5fSwuLi5vbiBHZW5lcmljRXJyb3J7Y29kZSxtZXNzYWdlfX19YCxlY2FjZjM1ZmI1NTIxMDhjZTE1ODg2ZmM3ZDI5MTM1YzBlZWRlYjc1ZDI2YjIwZGViYWEwYjIzNGVmMzI3OWY3OmBtdXRhdGlvbiBlbWFpbE9ubHlVc2VyQXBpTXV0YXRpb24oJGlucHV0OlN1YnNjcmliZUVtYWlsT25seVVzZXJJbnB1dCEpe3N1YnNjcmliZUVtYWlsT25seVVzZXIoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFN1YnNjcmliZUVtYWlsT25seVVzZXJTdWNjZXNze2R1bW15fSwuLi5vbiBHZW5lcmljRXJyb3J7bWVzc2FnZX19fWAsZWYwYjg4MTNlNWRiMTBiZTZiMDQ3MmRlMDFiZjQxNmI2M2E4OTQzYzFiMzc5ODNmODkxMDRjMWZmMjI0Nzg5MTpgbXV0YXRpb24gdXNlU3VibWl0U3Rha2luZ0FwcHJvcHJpYXRlbmVzc1VPQk11dGF0aW9uKCRpbnB1dDpTdWJtaXRHZW5lcmljQ29tcGxpYW5jZUFuc3dlcnNCeVR5cGVJbnB1dCEpe3N1Ym1pdEdlbmVyaWNDb21wbGlhbmNlQW5zd2Vyc0J5VHlwZShpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gU3VibWl0R2VuZXJpY0NvbXBsaWFuY2VBbnN3ZXJzQnlUeXBlU3VjY2Vzc3tfX3R5cGVuYW1lfSwuLi5vbiBHZW5lcmljRXJyb3J7X190eXBlbmFtZSxtZXNzYWdlLGNvZGV9fX1gLGVmN2U4MWUzNzJlMzEyYmU4N2IzNzY0YWJiNGUwMGM0MjllYTc4MDk2YWVlOGViM2EzOTU3MjZlYmQ1MWI2N2M6YG11dGF0aW9uIHVzZVN1Ym1pdENiZnNlRHVlRGlsaWdlbmNlTXV0YXRpb24oJGlucHV0OkNyZWF0ZU9uYm9hcmRpbmdSZWNvcmRDQkZTRUlucHV0ISl7Y3JlYXRlT25ib2FyZGluZ1JlY29yZENCRlNFKGlucHV0OiRpbnB1dCl7X190eXBlbmFtZSwuLi5vbiBDcmVhdGVPbmJvYXJkaW5nUmVjb3JkQ0JGU0VTdWNjZXNze19fdHlwZW5hbWV9LC4uLm9uIEdlbmVyaWNFcnJvcnttZXNzYWdlLGNvZGV9fX1gLGYwMDFjOTA1ODQ0ODlkYWIyOTNjNDhiN2MyZDkzY2VmNDUxZGQ3OGNhNzhkZjM1YWQ1ZjY0ZjgxZjIzY2NlNDc6YG11dGF0aW9uIHVzZVByZXZpZXdDb2xsYXRlcmFsQmFsYW5jZVVwZGF0ZUFUU011dGF0aW9uKCRjb2xsYXRlcmFsQ3VycmVuY3k6VGlja2VyU3ltYm9sISwkdGFyZ2V0QW1vdW50OlN0cmluZyEsJGlucHV0Q3VycmVuY3k6VGlja2VyU3ltYm9sISwkdGFyZ2V0UG9zaXRpb246U3RyaW5nISl7cHJldmlld0NvbGxhdGVyYWxCYWxhbmNlKGlucHV0Ontjb2xsYXRlcmFsQ3VycmVuY3k6JGNvbGxhdGVyYWxDdXJyZW5jeSx0YXJnZXRBbW91bnQ6JHRhcmdldEFtb3VudCxpbnB1dEN1cnJlbmN5OiRpbnB1dEN1cnJlbmN5LHRhcmdldFBvc2l0aW9uOiR0YXJnZXRQb3NpdGlvbn0pe19fdHlwZW5hbWUsLi4ub24gUHJldmlld0NvbGxhdGVyYWxCYWxhbmNlU3VjY2Vzc3t0b3RhbEFzc2V0QmFsYW5jZXt2YWx1ZSxjdXJyZW5jeX0sdXNlckN1cnJlbmN5UmF0ZXt2YWx1ZSxjdXJyZW5jeX0sY29sbGF0ZXJhbFdlaWdodCxjdXJyZW50UG9ydGZvbGlvTWFyZ2lue3ZhbHVlLGN1cnJlbmN5fSx1cGRhdGVkUG9ydGZvbGlvTWFyZ2lue3ZhbHVlLGN1cnJlbmN5fSxjdXJyZW50Tm9uQ29sbGF0ZXJhbEFzc2V0QmFsYW5jZXt2YWx1ZSxjdXJyZW5jeX0sdXBkYXRlZE5vbkNvbGxhdGVyYWxBc3NldEJhbGFuY2V7dmFsdWUsY3VycmVuY3l9LGN1cnJlbnRMaXFCdWZmZXJQZXJjZW50LHVwZGF0ZWRMaXFCdWZmZXJQZXJjZW50LGN1cnJlbnRNYXJnaW5SYXRpb1BlcmNlbnQsdXBkYXRlZE1hcmdpblJhdGlvUGVyY2VudH0sLi4ub24gQ29sbGF0ZXJhbEJhbGFuY2VFcnJvcntjb2RlLG1pbkNvbGxhdGVyYWxCYWxhbmNlLG1heENvbGxhdGVyYWxCYWxhbmNlfX19YCxmMDA3NWJlMGZjZjY1MWRkMWVmZWZhZmQ2N2RhYjkwN2QzMmJkZjc4OWY4YWI2MzQ5MWI0OGMyM2RlNjBkZDI2OmBtdXRhdGlvbiB1c2VDcmVhdGVVbmF1dGhlbnRpY2F0ZWRDb252ZXJzYXRpb25NdXRhdGlvbigkaW5wdXQ6Q3JlYXRlVW5hdXRoZW50aWNhdGVkQ29udmVyc2F0aW9uSW5wdXQhKXtjcmVhdGVVbmF1dGhlbnRpY2F0ZWRDb252ZXJzYXRpb24oaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIEJhZFJlcXVlc3RFcnJvcnttZXNzYWdlLGNvZGV9LC4uLm9uIEVycm9ye19faXNFcnJvcjpfX3R5cGVuYW1lLG1lc3NhZ2UsY29kZX0sLi4ub24gQ3JlYXRlVW5hdXRoZW50aWNhdGVkQ29udmVyc2F0aW9uU3VjY2Vzc3tjb252ZXJzYXRpb257dXVpZCxjcmVhdG9ye3V1aWQsaWR9LGlkfX19fWAsZjA5MmM1NzE1MGM2YTE0NzIwYWExODIzMGVlOGZhOGI1YzdhYmMzODRhYzI1ODQxOTFlNTlhZjgwYWYwYTViNDpgbXV0YXRpb24gU2lnbmF0dXJlUmVxdWVzdGVkTXV0YXRpb24oJGlucHV0OldPQVZlcmlmeUFuZEFkZEFkZHJlc3NJbnB1dCEpe3dPQVZlcmlmeUFuZEFkZEFkZHJlc3MoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFdPQVZlcmlmeUFuZEFkZEFkZHJlc3NTdWNjZXNze2lzVmVyaWZpZWR9LC4uLm9uIFdPQVZlcmlmeUFuZEFkZEFkZHJlc3NFcnJvcntlcnJvcn19fWAsZjIxOGFlMGIyMGRlNTQ4ZjlhM2IzZTIxNjYwMmExMTQwZGIzOWE5OWI4YTUyMzE4ZjQwYzM4MWU2Mzk4MTMyMTpgbXV0YXRpb24gdXNlUHJvZHVjdFdhdGNobGlzdFVud2F0Y2hNdXRhdGlvbigkcHJvZHVjdElkOlN0cmluZyEpe3JldGFpbEJyb2tlcmFnZVVud2F0Y2hQcm9kdWN0KGlucHV0Ontwcm9kdWN0SWQ6JHByb2R1Y3RJZH0pe19fdHlwZW5hbWUsdmlld2Vye3JldGFpbEJyb2tlcmFnZXtwcm9kdWN0V2F0Y2hsaXN0e3Byb2R1Y3RJZHMsaWR9fSxpZH19fWAsZjI2ZmFjOGZhMTFlMWZjYWI2NDQ3NmUzZGM2MDU3NTgwODJhY2MxOWIxMzM1Mzg0MWJkNzhmYjU3YTBiYTM0YTpgcXVlcnkgUHJvb2ZPZlJlc2VydmVzUGFnZVF1ZXJ5KCRyZXNlcnZlQXNzZXRUaWNrZXI6U3RyaW5nISwkd3JhcHBlZEFzc2V0VGlja2VyOlRpY2tlclN5bWJvbCEsJG5hdGl2ZUN1cnJlbmN5OlRpY2tlclN5bWJvbCEpey4uLlByb29mT2ZSZXNlcnZlc0ZyYWdtZW50XzREbTRPV31mcmFnbWVudCBIZXJvRnJhZ21lbnRfMmxtclBKIG9uIFF1ZXJ5e2Fzc2V0QnlTeW1ib2woc3ltYm9sOiRyZXNlcnZlQXNzZXRUaWNrZXIpe2xhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6JG5hdGl2ZUN1cnJlbmN5KXtwcmljZSxpZH0scHJpY2VEYXRhRm9yRGF5OnByaWNlRGF0YUZvckRheVYyKHF1b3RlQ3VycmVuY3k6JG5hdGl2ZUN1cnJlbmN5KXtwZXJjZW50Q2hhbmdlfSxpZH19ZnJhZ21lbnQgTGFzdFVwZGF0ZWRBdEZyYWdtZW50XzJmejh5cCBvbiBRdWVyeXtwcm9vZk9mUmVzZXJ2ZXMod3JhcHBlZEFzc2V0VGlja2VyOiR3cmFwcGVkQXNzZXRUaWNrZXIpe2xhc3RVcGRhdGVkQXR9fWZyYWdtZW50IFByb29mT2ZSZXNlcnZlc0ZyYWdtZW50XzREbTRPVyBvbiBRdWVyeXsuLi5IZXJvRnJhZ21lbnRfMmxtclBKLC4uLkxhc3RVcGRhdGVkQXRGcmFnbWVudF8yZno4eXAsLi4uUmVzZXJ2ZXNUb3RhbEJhbGFuY2VGcmFnbWVudF8yZno4eXAsLi4uV3JhcHBlZEFzc2V0c1RvdGFsQmFsYW5jZUZyYWdtZW50XzJmejh5cCwuLi5XcmFwcGVkQXNzZXRzQnlOZXR3b3JrRnJhZ21lbnRfMmZ6OHlwLC4uLlJlc2VydmVBZGRyZXNzTGlzdEZyYWdtZW50XzJmejh5cH1mcmFnbWVudCBSZXNlcnZlQWRkcmVzc0xpc3RGcmFnbWVudF8yZno4eXAgb24gUXVlcnl7cHJvb2ZPZlJlc2VydmVzKHdyYXBwZWRBc3NldFRpY2tlcjokd3JhcHBlZEFzc2V0VGlja2VyKXtyZXNlcnZlc1RvdGFse2N1cnJlbmN5fSxyZXNlcnZlQWRkcmVzc2Vze2FkZHJlc3MsYmFsYW5jZXtuZXR3b3JrLGN1cnJlbmN5LGFtb3VudH19fX1mcmFnbWVudCBSZXNlcnZlc1RvdGFsQmFsYW5jZUZyYWdtZW50XzJmejh5cCBvbiBRdWVyeXtwcm9vZk9mUmVzZXJ2ZXMod3JhcHBlZEFzc2V0VGlja2VyOiR3cmFwcGVkQXNzZXRUaWNrZXIpe3Jlc2VydmVzVG90YWx7Y3VycmVuY3ksYW1vdW50fX19ZnJhZ21lbnQgV3JhcHBlZEFzc2V0c0J5TmV0d29ya0ZyYWdtZW50XzJmejh5cCBvbiBRdWVyeXtwcm9vZk9mUmVzZXJ2ZXMod3JhcHBlZEFzc2V0VGlja2VyOiR3cmFwcGVkQXNzZXRUaWNrZXIpe3dyYXBwZWRBc3NldHNCeU5ldHdvcmt7bmV0d29yayxjdXJyZW5jeSxjb250cmFjdEFkZHJlc3MsYW1vdW50fX19ZnJhZ21lbnQgV3JhcHBlZEFzc2V0c1RvdGFsQmFsYW5jZUZyYWdtZW50XzJmejh5cCBvbiBRdWVyeXtwcm9vZk9mUmVzZXJ2ZXMod3JhcHBlZEFzc2V0VGlja2VyOiR3cmFwcGVkQXNzZXRUaWNrZXIpe3dyYXBwZWRBc3NldHNUb3RhbHthbW91bnR9fX1gLGYzZjYwYzZiODBmMGZhNjRjYzlmMmViYzE5ZmJjNTYwM2M5MTYxOTVhMjRmODBlNWE2NzkzMDM3NDBkZjY3NDY6YHF1ZXJ5IEZBUU1vZGFsUXVlcnkoJHN1cmZhY2VOYW1lOlN0cmluZyEsJHVzZUF1dGhlZFN1cmZhY2U6Qm9vbGVhbiEsJHVzZUxvZ2dlZE91dFN1cmZhY2U6Qm9vbGVhbiEpe2xvZ2dlZE91dFN1cmZhY2U6dWlDb21wb25lbnRzQnlTdXJmYWNlTG9nZ2VkT3V0KHN1cmZhY2VOYW1lOiRzdXJmYWNlTmFtZSlAaW5jbHVkZShpZjokdXNlTG9nZ2VkT3V0U3VyZmFjZSl7Li4uRkFRTW9kYWxDb25uZWN0aW9uRnJhZ21lbnQsaWR9LHZpZXdlckBpbmNsdWRlKGlmOiR1c2VBdXRoZWRTdXJmYWNlKXthdXRoZWRTdXJmYWNlOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlTmFtZTokc3VyZmFjZU5hbWUpey4uLkZBUU1vZGFsQ29ubmVjdGlvbkZyYWdtZW50LGlkfSxpZH19ZnJhZ21lbnQgRkFRTW9kYWxDb25uZWN0aW9uRnJhZ21lbnQgb24gVUlDb21wb25lbnRzQ29ubmVjdGlvbntlZGdlc3tub2Rle2NvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHt0aXRsZVRleHRGaWVsZHt0ZXh0fSx0ZXh0RmllbGRze2tleSx0ZXh0fSxyaWNoVGV4dEZpZWxkc3trZXksaHRtbFN0cmluZ319LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX19YCxmNjg4MGE0YWI0MTMyYmM1ODExOTg5YTM2ODdmMmIwMDVlYzNkODAxZTNhNzYwOTdmM2M4ZmJjNmYwZGQ3YzAxOmBxdWVyeSB1c2VDdXN0b21lckNhdGVnb3JpemF0aW9uUXVlc3Rpb25zUXVlcnkoJHF1ZXN0aW9uVHlwZTpHZW5lcmljQ29tcGxpYW5jZVF1ZXN0aW9uVHlwZSEpe3ZpZXdlcntnZW5lcmljQ29tcGxpYW5jZVF1ZXN0aW9uc0J5VHlwZSh0eXBlOiRxdWVzdGlvblR5cGUpe3F1ZXN0aW9uc3t1dWlkLHRpdGxlLHN1YnRpdGxlLGlucHV0VHlwZSxvcHRpb25ze3ZhbHVlLHRpdGxlLHN1YnRpdGxlfSxmcmVlVGV4dElucHV0UmVnZXgsaWR9fSxpZH19YCxmN2NkMWViMzcxY2Y0ZWY0MjI3MzllM2ViODE5NTY4N2YxODNlMzdjMzVjNjgxZThiYTViYmRlZWM5YWQ3YTdiOmBxdWVyeSBDb2luYmFzZUdyYXBoUUxUcmFuc3BvcnRFcXVpdGllc1F1ZXJ5e3ZpZXdlcntzcG90UG9zaXRpb25zKGNhc2hGaWx0ZXI6Q0FTSF9GSUxURVJfRVFVSVRJRVMpe2VkZ2Vze25vZGV7aWQsY2Jybix0b3RhbEJhbGFuY2VGaWF0e2Ftb3VudCxjdXJyZW5jeSxpZH0sdG90YWxCYWxhbmNlRXF1aXR5e2Ftb3VudCxjdXJyZW5jeSxpZH0saW5zdHJ1bWVudHtfX3R5cGVuYW1lLC4uLm9uIFZpZXdlckVxdWl0eXtlcXVpdHl7aWQsZGF0YXt0aWNrZXIsc2hvcnROYW1lLHByb2R1Y3RJZCxpbWFnZVVybH19LHBlcmZvcm1hbmNlKHRpbWVSYW5nZTpPTkVfREFZKXtyZXR1cm5ze3VucmVhbGl6ZWR7cGVyY2VudCx2YWx1ZXt2YWx1ZSxjdXJyZW5jeX19fSxpZH0saWR9LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH0sLi4ub24gVGllcnNDdXJyZW5jeXtpZH0sLi4ub24gVmlld2VyRXF1aXR5T3B0aW9ue2lkfSwuLi5vbiBWaWV3ZXJQcmVkaWN0aW9uTWFya2V0e2lkfX19fX0saWR9fWAsZjhmZGQ0YmEwZTg3MTUwYTljODJlMmY0MmM0ZTc1NjQ1NTE3OWNlMjI1OGVkODhmMTczZmZlZjYyZTZjNzMwYjpgcXVlcnkgU2hhcmVQb3J0Zm9saW9Db250ZW50UXVlcnkoJHBvcnRmb2xpb1V1aWQ6U3RyaW5nISwkY291bnQ6SW50ISwkY3Vyc29yOlN0cmluZyEsJHNob3VsZFVzZVVBU0ZpZWxkczpCb29sZWFuISl7c2hhcmVQb3J0Zm9saW8odXVpZDokcG9ydGZvbGlvVXVpZCl7Li4uU2hhcmVQb3J0Zm9saW9GcmFnbWVudH19ZnJhZ21lbnQgU2hhcmVQb3J0Zm9saW9GcmFnbWVudCBvbiBTaGFyZVBvcnRmb2xpb3tvd25lcntzaGFyZVBvcnRmb2xpb093bmVye2ZpcnN0TmFtZSxhdmF0YXJVcmx9fSxwZXJtaXNzaW9uLHNoYXJlUG9ydGZvbGlvUm93cyhmaXJzdDokY291bnQsYWZ0ZXI6JGN1cnNvcil7ZWRnZXN7Y3Vyc29yLG5vZGV7YXNzZXR7dXVpZCxzbHVnLG5hbWUsaWR9LGFsbG9jYXRpb259fSwuLi5TaGFyZVBvcnRmb2xpb1RhYmxlRnJhZ21lbnR9LC4uLmV2ZW50aW5nU2hhcmVQb3Jmb2xpb0ZyYWdtZW50fWZyYWdtZW50IFNoYXJlUG9ydGZvbGlvVGFibGVGcmFnbWVudCBvbiBTaGFyZVBvcnRmb2xpb1Jvd0Nvbm5lY3Rpb257ZWRnZXN7bm9kZXthc3NldHt1dWlkLGlkfSwuLi5TaGFyZVBvcnRmb2xpb1RhYmxlUm93RnJhZ21lbnR9fX1mcmFnbWVudCBTaGFyZVBvcnRmb2xpb1RhYmxlUm93RnJhZ21lbnQgb24gU2hhcmVQb3J0Zm9saW9Sb3d7YXNzZXR7c2x1ZyxuYW1lLHN5bWJvbCxpbWFnZVVybCxsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OiJVU0QiKXtwcmljZSxxdW90ZUN1cnJlbmN5LHBlcmNlbnRDaGFuZ2VzQHNraXAoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxwZXJjZW50Q2hhbmdlc1YyQGluY2x1ZGUoaWY6JHNob3VsZFVzZVVBU0ZpZWxkcyl7ZGF5fSxpZH0sY29sb3IsaWR9LGFsbG9jYXRpb259ZnJhZ21lbnQgZXZlbnRpbmdTaGFyZVBvcmZvbGlvRnJhZ21lbnQgb24gU2hhcmVQb3J0Zm9saW97cGVybWlzc2lvbn1gLGY5ZTY2YTNlMWQwNjRlMmFmMjk1MmI4MTk1NjQ2MTU1YmZjOWRjY2E4YWYxMjdjZmY2NDY2ZjFjZjE3Yjk3NDM6YHF1ZXJ5IFRheEluZm9TdGVwUXVlcnkoJGNvdW50cnlDb2RlczpbU3RyaW5nIV0hKXsuLi5UYXhJbmZvU3RlcFRpblZhbGlkYXRpb25SdWxlc05ld0ZyYWdtZW50fWZyYWdtZW50IFRheEluZm9TdGVwVGluVmFsaWRhdGlvblJ1bGVzTmV3RnJhZ21lbnQgb24gUXVlcnl7dGluVmFsaWRhdGlvblJ1bGVzKGNvdW50cnlDb2RlczokY291bnRyeUNvZGVzKXtyZWdleFBhdHRlcm4sYWx0ZXJuYXRlUGF0dGVybnMsZXJyb3JNZXNzYWdlLGlzUmVxdWlyZWQsdGluTmFtZSxpc3N1ZXNUaW4sY291bnRyeUNvZGUsY291bnRyeU5hbWUscGxhY2Vob2xkZXJzfX1gLGZiMjcyNTllOWQ2NmZmMTEwNmE5ZmQ5NmUyNzFkYjZlMjg2MGNjOGFiYTJkZWRiMDJlMjI2ZjEyMmFmZTAxMzg6YHN1YnNjcmlwdGlvbiB1c2VJbnR4T3ZlcmRyYWZ0RGV0YWlsc1N1YnNjcmlwdGlvbntvdmVyZHJhZnREZXRhaWxze2RldGFpbHN7aXNBcHByb2FjaGluZ0xpbWl0LGFtb3VudCxsb2FuTGltaXQsaG91cmx5UmF0ZSxkYWlseUFjY3J1ZWRJbnRlcmVzdCxzeW1ib2wsdXRpbGl6YXRpb25SYXRlLHJlcGF5YWJsZUFtb3VudCxsaXF1aWRhdGlvbkJ1ZmZlcixtYXJnaW5SYXRpb1BlcmNlbnRhZ2UsbWFyZ2luUmF0aW9CYW5uZXJTdGF0dXMsaWR9fX1gLGZiZjJmZjhmZTQ0NzVhMGRkOWE1YzRlNWVmNWY1NmY3OTI2OTJhZTJkNGY0YThhMGI2MTQ5Y2UwZGY4MjVkZGM6YHF1ZXJ5IFNoYXJlZEJ0Y0Ryb3BzUXVlcnl7Li4uQ3JlZGl0Q2FyZEFwcFFSQ29kZUZyYWdtZW50LC4uLkhvd0l0V29ya3NTZWN0aW9uRnJhZ21lbnQsLi4uQlRDRHJvcHNIZXJvRnJhZ21lbnQsLi4uQlRDRHJvcHNQcml6ZXNGcmFnbWVudCwuLi5CVENEcm9wRkFRU2VjdGlvbkZyYWdtZW50LGFjdGl2ZUNyZWRpdGNhcmRTd2VlcHN0YWtle2dyYW5kUHJpemVUaWVye2ZpYXRQcml6ZUFtb3VudHt2YWx1ZX19LGFkZGl0aW9uYWxQcml6ZVRpZXJ7ZmlhdFByaXplQW1vdW50e3ZhbHVlfX0saWR9fWZyYWdtZW50IEJUQ0Ryb3BGQVFTZWN0aW9uRnJhZ21lbnQgb24gUXVlcnl7YnRjRHJvcEZhcVVpQ29tcG9uZW50czp1aUNvbXBvbmVudHNCeVN1cmZhY2Uoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX0JUQ19EUk9QX0ZBUSIsY2F0ZWdvcnlOYW1lczpbIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9CVENfRFJPUF9GQVFfVElUTEUiLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQlRDX0RST1BfRkFRX0lURU0iLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQlRDX0RST1BfRkFRX0RJU0NMQUlNRVIiXSxmaXJzdDoxMCl7ZWRnZXN7bm9kZXtpZCxjYXRlZ29yeU5hbWUsY29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3RpdGxlVGV4dEZpZWxke3RleHR9LGRlc2NyaXB0aW9uVGV4dEZpZWxke3RleHR9LHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ319LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19fX0saWR9fWZyYWdtZW50IEJUQ0Ryb3BzSGVyb0ZyYWdtZW50IG9uIFF1ZXJ5ey4uLnVzZVRpbWVSZW1haW5pbmdGcmFnbWVudCxhY3RpdmVDcmVkaXRjYXJkU3dlZXBzdGFrZXtncmFuZFByaXplVGllcntmaWF0UHJpemVBbW91bnR7dmFsdWUsY3VycmVuY3l9fSxlbnRyeUluY3JlbWVudEFtb3VudHt2YWx1ZSxjdXJyZW5jeX0saWR9LGJ0Y0Ryb3BIZXJvVWlDb21wb25lbnRzOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfQlRDX0RST1BfSU5GTyIsY2F0ZWdvcnlOYW1lczpbIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9CVENfRFJPUF9IRUFERVIiLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQlRDX0RST1BfSEVBREVSX0lORk8iXSxmaXJzdDoxMCl7ZWRnZXN7bm9kZXtjYXRlZ29yeU5hbWUsdHlwZU5hbWUsY29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e2tleSx0aXRsZSxkZXNjcmlwdGlvbixzdWJ0aXRsZSxpbmZvcm1hdGlvblVybCxyaWNoVGV4dERlc2NyaXB0aW9ue2h0bWxTdHJpbmcsb2JqZWN0fSxyaWNoVGV4dFN1YnRpdGxle2h0bWxTdHJpbmcsb2JqZWN0fSxwcmltYXJ5Q29tcG9uZW50Q3Rhe3RleHQsdXJsfSxzZWNvbmRhcnlDb21wb25lbnRDdGF7dGV4dCx1cmx9LHRpdGxlVGV4dEZpZWxke3RleHR9LGRlc2NyaXB0aW9uVGV4dEZpZWxke3RleHR9LHN1YnRpdGxlVGV4dEZpZWxke3RleHR9fSwuLi5vbiBVSUNvbXBvbmVudENvbnRhaW5lcntjb21wb25lbnRze2NhdGVnb3J5LGNvbXBvbmVudHtfX3R5cGVuYW1lLC4uLm9uIFVJQ29tcG9uZW50RWxlbWVudHtrZXksaW5mb3JtYXRpb25VcmwsdGl0bGUsZGVzY3JpcHRpb24sc3VidGl0bGUscmljaFRleHREZXNjcmlwdGlvbntodG1sU3RyaW5nLG9iamVjdH0scmljaFRleHRTdWJ0aXRsZXtodG1sU3RyaW5nLG9iamVjdH0scHJpbWFyeUNvbXBvbmVudEN0YXt0ZXh0LHVybH0sdGl0bGVUZXh0RmllbGR7dGV4dH0sZGVzY3JpcHRpb25UZXh0RmllbGR7dGV4dH19LC4uLm9uIE5vZGV7X19pc05vZGU6X190eXBlbmFtZSxpZH19LGlkfX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH19ZnJhZ21lbnQgQlRDRHJvcHNQcml6ZXNGcmFnbWVudCBvbiBRdWVyeXtidGNEcm9wUHJpemVzSW5mb1VpQ29tcG9uZW50czp1aUNvbXBvbmVudHNCeVN1cmZhY2Uoc3VyZmFjZU5hbWU6IlVJX0NPTVBPTkVOVF9TVVJGQUNFX0JUQ19EUk9QX0lORk8iLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfQlRDX0RST1BfR1JBTkRfUFJJWkUiLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQlRDX0RST1BfQURESVRJT05BTF9QUklaRVMiXSxmaXJzdDoxMCl7ZWRnZXN7bm9kZXtjYXRlZ29yeU5hbWUsY29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e2tleSx0aXRsZSxkZXNjcmlwdGlvbixzdWJ0aXRsZSxpbmZvcm1hdGlvblVybCxyaWNoVGV4dERlc2NyaXB0aW9ue2h0bWxTdHJpbmcsb2JqZWN0fSxyaWNoVGV4dFN1YnRpdGxle2h0bWxTdHJpbmcsb2JqZWN0fX0sLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH0sYWN0aXZlQ3JlZGl0Y2FyZFN3ZWVwc3Rha2V7Z3JhbmRQcml6ZVRpZXJ7Y3J5cHRvUHJpemVBbW91bnR7Y3VycmVuY3l9LGZpYXRQcml6ZUFtb3VudHt2YWx1ZSxjdXJyZW5jeX0sd2lubmVyQ291bnR9LGFkZGl0aW9uYWxQcml6ZVRpZXJ7Y3J5cHRvUHJpemVBbW91bnR7Y3VycmVuY3l9LGZpYXRQcml6ZUFtb3VudHt2YWx1ZSxjdXJyZW5jeX0sd2lubmVyQ291bnR9LGlkfX1mcmFnbWVudCBDcmVkaXRDYXJkQXBwUVJDb2RlRnJhZ21lbnQgb24gUXVlcnl7dWlDb21wb25lbnRzOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfQ1JFRElUX0NBUkRfV0FJVExJU1QiLGNhdGVnb3J5TmFtZXM6WyJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfSEVST19RUl9DT0RFIiwiVUlfQ09NUE9ORU5UX0NBVEVHT1JZX0NSRURJVF9DQVJEX0hFUk9fUVJfQ09ERV9PTkJPQVJERUQiLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfSEVST19RUl9DT0RFX0xPR0dFRF9PVVQiLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQ1JFRElUX0NBUkRfSEVST19RUl9DT0RFX1JFRkVSUkFMIl0pe2VkZ2Vze25vZGV7Y2F0ZWdvcnlOYW1lLGNvbXBvbmVudHsuLi5vbiBVSUNvbXBvbmVudEVsZW1lbnR7dGl0bGUsZGVzY3JpcHRpb24saW5mb3JtYXRpb25Vcmx9LF9fdHlwZW5hbWUsLi4ub24gTm9kZXtfX2lzTm9kZTpfX3R5cGVuYW1lLGlkfX0saWR9fSxpZH19ZnJhZ21lbnQgSG93SXRXb3Jrc1NlY3Rpb25GcmFnbWVudCBvbiBRdWVyeXthY3RpdmVDcmVkaXRjYXJkU3dlZXBzdGFrZXttYXhFbnRyeUNvdW50LGVudHJ5SW5jcmVtZW50QW1vdW50e3ZhbHVlLGN1cnJlbmN5fSxncmFuZFByaXplVGllcntmaWF0UHJpemVBbW91bnR7dmFsdWUsY3VycmVuY3l9fSxhZGRpdGlvbmFsUHJpemVUaWVye3dpbm5lckNvdW50LGZpYXRQcml6ZUFtb3VudHt2YWx1ZSxjdXJyZW5jeX19LGlkfSxob3dJdFdvcmtzVWlDb21wb25lbnRzOnVpQ29tcG9uZW50c0J5U3VyZmFjZShzdXJmYWNlTmFtZToiVUlfQ09NUE9ORU5UX1NVUkZBQ0VfQlRDX0RST1BfSU5GTyIsY2F0ZWdvcnlOYW1lczpbIlVJX0NPTVBPTkVOVF9DQVRFR09SWV9CVENfRFJPUF9IT1dfSVRfV09SS1NfSEVBREVSX0RFU0tUT1AiLCJVSV9DT01QT05FTlRfQ0FURUdPUllfQlRDX0RST1BfSE9XX0lUX1dPUktTX1NURVAiXSxmaXJzdDoxMCl7ZWRnZXN7bm9kZXtjYXRlZ29yeU5hbWUsY29tcG9uZW50e19fdHlwZW5hbWUsLi4ub24gVUlDb21wb25lbnRFbGVtZW50e3RpdGxlLHN1YnRpdGxlLGRlc2NyaXB0aW9uLHJpY2hUZXh0RGVzY3JpcHRpb257aHRtbFN0cmluZ30sc2Vjb25kYXJ5Q29tcG9uZW50Q3Rhe3RleHR9fSwuLi5vbiBOb2Rle19faXNOb2RlOl9fdHlwZW5hbWUsaWR9fSxpZH19LGlkfX1mcmFnbWVudCB1c2VUaW1lUmVtYWluaW5nRnJhZ21lbnQgb24gUXVlcnl7YWN0aXZlQ3JlZGl0Y2FyZFN3ZWVwc3Rha2V7c3RhcnRzQXQsZW5kc0F0LHN0YXR1cyxpZH19YCxmZTZkY2QyNDE1Y2M4MTEyYmVmZWVmOGFiOGRmZTU3YWUyMTI0ZjU0NWRjOTU5NjJhNzEzYjk3Y2Q5YTg5N2RmOmBxdWVyeSBNYXJ0ZWNoTGFuZGluZ1BhZ2VRdWVyeSgkcXVvdGVDdXJyZW5jeTpUaWNrZXJTeW1ib2whLCRzaG91bGRVc2VVQVNGaWVsZHM6Qm9vbGVhbiEsJGFzc2V0TGltaXQ6SW50ISl7Li4uRmVhdHVyZUFzc2V0c0ZyYWdtZW50XzRxNVJyRH1mcmFnbWVudCBGZWF0dXJlQXNzZXRzRnJhZ21lbnRfNHE1UnJEIG9uIFF1ZXJ5e3RyYWRhYmxlOnNlYXJjaEFzc2V0c1YyKGZpcnN0OiRhc3NldExpbWl0LG9yZGVyOkRFU0MscXVlcnk6IiIscmVzb2x1dGlvbjpEQVksZmlsdGVyOkxJU1RFRCxzb3J0Ok1BUktFVF9DQVApe2VkZ2Vze25vZGV7dXVpZCwuLi5GZWF0dXJlQXNzZXRzUm93RnJhZ21lbnRfMmpPRTRNLGlkfX19LHRvcEdhaW5lcnM6c2VhcmNoQXNzZXRzVjIoZmlyc3Q6JGFzc2V0TGltaXQsb3JkZXI6REVTQyxxdWVyeToiIixyZXNvbHV0aW9uOkRBWSxmaWx0ZXI6VE9QX0dBSU5FUlMsc29ydDpQRVJDRU5UX0NIQU5HRSl7ZWRnZXN7bm9kZXt1dWlkLC4uLkZlYXR1cmVBc3NldHNSb3dGcmFnbWVudF8yak9FNE0saWR9fX0sbmV3T25Db2luYmFzZTpzZWFyY2hBc3NldHNWMihmaXJzdDokYXNzZXRMaW1pdCxmaWx0ZXI6UkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTKXtlZGdlc3tub2Rle3V1aWQsLi4uRmVhdHVyZUFzc2V0c1Jvd0ZyYWdtZW50XzJqT0U0TSxpZH19fX1mcmFnbWVudCBGZWF0dXJlQXNzZXRzUm93RnJhZ21lbnRfMmpPRTRNIG9uIEFzc2V0e3V1aWQsbmFtZSxzbHVnLGltYWdlVXJsLGRpc3BsYXlTeW1ib2wsbGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTokcXVvdGVDdXJyZW5jeSl7cHJpY2UscGVyY2VudENoYW5nZXNAc2tpcChpZjokc2hvdWxkVXNlVUFTRmllbGRzKXtkYXl9LHBlcmNlbnRDaGFuZ2VzVjJAaW5jbHVkZShpZjokc2hvdWxkVXNlVUFTRmllbGRzKXtkYXl9LGlkfX1gLGZmMTY2ZmY3ZjhjNzU1MWIzMGMzNTI2MDVhMDg0M2E4OGI2MDU0YWJmNTIzZDY1ZmM0MzAxMzdhYjdiNWVjNzQ6YG11dGF0aW9uIHVzZVVwZGF0ZUVtYWlsUHJlZmVyZW5jZU11dGF0aW9uKCRpbnB1dDpVcGRhdGVNZXRhTm90aWZpY2F0aW9uUHJlZmVyZW5jZUlucHV0ISl7dXBkYXRlTWV0YU5vdGlmaWNhdGlvblByZWZlcmVuY2UoaW5wdXQ6JGlucHV0KXtfX3R5cGVuYW1lLC4uLm9uIFVwZGF0ZU1ldGFOb3RpZmljYXRpb25QcmVmZXJlbmNlU3VjY2Vzc3tfX3R5cGVuYW1lLGR1bW15fSwuLi5vbiBCYWRSZXF1ZXN0RXJyb3J7X190eXBlbmFtZSxjb2RlLG1lc3NhZ2V9fX1gLGZmNTk1NjE4MWNhNzY1ZTg0MWYzNjc2ZDA2NmQ1NTEwM2M5ODVmOWU4M2I4YWZiNGMzOWQ4ZGY1M2MyNWU4MzU6YG11dGF0aW9uIHVzZVVwZGF0ZUZ1dHVyZXNQb3NpdGlvbkxpbWl0VGllclNldHRpbmdzTXV0YXRpb24oJGlucHV0OlVwZGF0ZUZ1dHVyZXNQb3NpdGlvbkxpbWl0VGllclNldHRpbmdzSW5wdXQhKXt1cGRhdGVGdXR1cmVzUG9zaXRpb25MaW1pdFRpZXJTZXR0aW5ncyhpbnB1dDokaW5wdXQpe19fdHlwZW5hbWUsLi4ub24gVXBkYXRlRnV0dXJlc1Bvc2l0aW9uTGltaXRUaWVyU2V0dGluZ3NTdWNjZXNze2R1bW15LHZpZXdlcntyZXRhaWxCcm9rZXJhZ2V7ZnV0dXJlc1Bvc2l0aW9uTGltaXRUaWVyU2V0dGluZ3N7cG9zaXRpb25MaW1pdFRpZXIscG9zaXRpb25MaW1pdFRpZXJEaXNwbGF5TmFtZSxhbm51YWxJbmNvbWVUaWVyLG5ldFdvcnRoVGllcn19LGlkfX0sLi4ub24gR2VuZXJpY0Vycm9ye2NvZGUsbWVzc2FnZX19fWAsZmY5NmJiZjNlOTFiNzVlMzdkNmU0NzJkOGI1YmIyODM5ZTA0ZWQ4MjdjNTBkZjQzODI5N2FhZWQ0Y2RiODY1YzpgcXVlcnkgdXNlTGVhZGVyYm9hcmREYXRhQVRTUXVlcnkoJGNvbXBldGl0aW9uSWQ6VGhpcmRQYXJ0eUlkU3RyaW5nISwkbGVhZGVyYm9hcmRUeXBlOlRyYWRpbmdDb21wZXRpdGlvbkxlYWRlcmJvYXJkTWV0cmljISwkcGFnaW5hdGlvbjpUcmFkaW5nQ29tcGV0aXRpb25QYWdpbmF0aW9uSW5wdXQpe3ZpZXdlcnt0cmFkaW5nQ29tcGV0aXRpb257Y29tcGV0aXRpb25EZXRhaWxzKGNvbXBldGl0aW9uSWQ6JGNvbXBldGl0aW9uSWQpe2NvbXBldGl0aW9uVXNlcm5hbWUsY29tcGV0aXRpb257bGVhZGVyYm9hcmRTdGF0c3tsZWFkZXJib2FyZFR5cGUsdXNlclN0YXR7cmFuayx1c2VybmFtZSxzY29yZSxwcm9qZWN0ZWRQcml6ZUFtb3VudHt2YWx1ZSxjdXJyZW5jeX19fSxsZWFkZXJib2FyZCh0eXBlOiRsZWFkZXJib2FyZFR5cGUscGFnaW5hdGlvbjokcGFnaW5hdGlvbil7bGVhZGVyYm9hcmRJZCx0eXBlLGlzRW5hYmxlZCxyZWZyZXNoQ2FkZW5jZVNlY29uZHMsZW50cmllc3tyYW5rLHVzZXJuYW1lLHNjb3JlLHByb2plY3RlZFByaXplQW1vdW50e3ZhbHVlLGN1cnJlbmN5fX0sdG90YWxQYXJ0aWNpcGFudHMsbGVhZGVyYm9hcmRQb29sLGxlYWRlcmJvYXJkUG9vbEFtb3VudHt2YWx1ZSxjdXJyZW5jeX0scGFnaW5hdGlvbntwYWdlU2l6ZSx0b3RhbEl0ZW1zLGN1cnJlbnRQYWdlLHRvdGFsUGFnZXMsbmV4dFBhZ2VUb2tlbixvZmZzZXR9fSxpZH19fSxpZH19YCxmZmFlNjU2MGQwNTY1NTUxMmQ1MGNjNDUxM2E3M2Q3YjQ2NjY5NmIwYjFlMWUzMWM1MjJmYjg4ZmZlZTZlMGY2OmBtdXRhdGlvbiBnZXRDZHBBdXRoVG9rZW5NdXRhdGlvbntleGNoYW5nZUNEUEF1dGhUb2tlbntfX3R5cGVuYW1lLC4uLm9uIEV4Y2hhbmdlQ0RQQXV0aFRva2VuU3VjY2Vzc3tzaWduZWRQYXlsb2FkfSwuLi5vbiBDZHBJZGVudGl0eUV4Y2hhbmdlckVycm9ye21lc3NhZ2UsY29kZX19fWB9O2V4cG9ydHtlIGFzIGRlZmF1bHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0NNeWhLSnJXMi5qcy5tYXA="}},"time_used":10,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"as.coinbase.com/amp","fqdn":"as.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"beacon","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:05.847Z","timestamp":1785108245847,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /amp HTTP/1.1\r\nHost: as.coinbase.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.coinbase.com/\r\nContent-Type: application/x-www-form-urlencoded; charset=utf-8\r\nContent-Length: 9049\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=6\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":9049,"data":"e=%5B%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108244555%2C%22event_id%22%3A1%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22pageview%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22render%22%2C%22category%22%3A%22automated%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22page%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%2277f38b59-0f00-44f3-b225-03a08a73437f%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A1%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108244716%2C%22event_id%22%3A2%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22perf_first_contentful_paint%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22measurement%22%2C%22duration%22%3A344%2C%22vitalsScore%22%3A%22good%22%2C%22deviceMemory%22%3A0%2C%22hardwareConcurrency%22%3A8%2C%22serviceWorkerStatus%22%3A%22supported%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22page%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%22300a0b92-640b-4ac9-ae9e-e7e6a49f0f4b%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A2%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108244717%2C%22event_id%22%3A3%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22perf_storage_estimate%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22measurement%22%2C%22quota%22%3A6016.7793%2C%22usage%22%3A0%2C%22caches%22%3Anull%2C%22indexedDB%22%3Anull%2C%22serviceWorker%22%3Anull%2C%22deviceMemory%22%3A0%2C%22hardwareConcurrency%22%3A8%2C%22serviceWorkerStatus%22%3A%22supported%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22page%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%2258342391-27f0-4f5e-a98b-469db500885d%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A3%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108245203%2C%22event_id%22%3A4%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22low_search_rendered%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22render%22%2C%22context%22%3A%22global_nav_search%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22search_bar%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%22f39ac475-b6fc-4862-a36d-098446b38230%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A4%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108245206%2C%22event_id%22%3A5%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22adp_footer_link_render%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22render%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22page%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%22e36f5acc-2217-49b2-8142-b8bfd0c5af83%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A5%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%5D\u0026v=2\u0026upload_time=1785108245844\u0026client=132e62b5953ce8d568137d5887b6b7ab"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:05 GMT\r\ncontent-type: text/plain; charset=utf-8\r\ncontent-length: 7\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\naccess-control-allow-origin: *\r\nserver: cloudflare\r\ntrace-id: 3168913225637930355\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=7NJwQIDEAK5AoELSP5bTRi8374YfHD5aPjmqcDaRi74L8RlwvrBdiJBRlFfoCuWiIIIiyLZB6VcgTC7rWFn5cZex9kIIVPqVSK0KtByPgDhzKkuxQUIECooWWRfraVtX3g%3D%3D\"}]}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a21727e88f521525-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":7,"size_decoded":704,"mime_type":"text/plain; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"260ca9dd8a4577fc00b7bd5810298076","sha1":"53a5687cb26dc41f2ab4033e97e13adefd3740d6","sha256":"aee408847d35e44e99430f0979c3357b85fe8dbb4535a494301198adbee85f27","sha512":"51e85deb51c2b909a21ec5b8e83b1cb28da258b1be227620105a345a2bd4c6aea549cd5429670f2df33324667b9f623a420b3a0bdbbd03ad48602211e75478a7","ssdeep":"","tlshash":"c0400003000000c000000000000000003000000000000000c00000000f0000000c3000","first_seen":"2023-04-05T04:46:42Z","last_seen":"2026-07-26T23:32:20.195442Z","times_seen":35925,"resource_available":true,"data":"c3VjY2Vzcw=="}},"time_used":116,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":116,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/scripttemplates/202602.1.0/assets/v2/otPcCenter.json","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:09.013Z","timestamp":1785108249013,"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":"cookielaw.org","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:47:21 GMT","end":"Tue, 20 Oct 2026 23:47:08 GMT"},"fingerprint":{"sha1":"BE:65:35:7C:E3:8D:B8:0C:7D:40:51:C7:4B:EE:56:FE:FD:2D:ED:91","sha256":"D6:A8:FD:24:40:A2:7D:0B:B5:73:08:9C:B2:AC:6E:1F:84:CC:D4:09:7B:BA:22:E8:A5:38:A4:10:29:65:88:5C"}}},"request":{"raw":"GET /scripttemplates/202602.1.0/assets/v2/otPcCenter.json HTTP/1.1\r\nHost: cdn.cookielaw.org\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.coinbase.com/\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:09 GMT\r\ncontent-type: application/json\r\ncontent-length: 13511\r\ncontent-encoding: gzip\r\ncontent-md5: uhBCPRKb8AQPMQuH/8xzIQ==\r\nlast-modified: Thu, 02 Apr 2026 03:17:20 GMT\r\netag: 0x8DE906659C77812\r\nserver: cloudflare\r\nx-ms-request-id: c16b5b98-901e-00ce-6ed9-dcf5c5000000\r\nx-ms-version: 2009-09-19\r\nx-ms-lease-status: unlocked\r\nx-ms-blob-type: BlockBlob\r\naccess-control-expose-headers: x-ms-request-id,Server,x-ms-version,Content-Type,Content-Encoding,ETag,Last-Modified,Content-MD5,x-ms-lease-status,x-ms-blob-type,Content-Length,Date,Transfer-Encoding\r\naccess-control-allow-origin: *\r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\nvary: accept-encoding\r\nage: 74423\r\ncache-control: max-age=86400\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a21727fc5a621525-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":68021,"size_decoded":14450,"mime_type":"application/json","magic":"JSON text data","md5":"2a1206b187db5785680c9cfd65eb02ad","sha1":"73e0d1b8eedf7a1114fbec05704baa19cd36b20f","sha256":"80d6588a74f909eb8b9b94a1f0eed1287daa1acf105901c8e5a7e57de8ebf83d","sha512":"75515a4861490e093e5aaf896df29e8ef1bd24b914a5d2bd40a60c9e39510f1ea68882e4a9478eed3958dc50f69055a58c435469716c40081d91984ec27c8899","ssdeep":"768:IzgP4CUAE6wYifZlpMG+FyV8gmXMazQfhF:IzU4z/nf+FyV8gob4F","tlshash":"f463d99b7aa0530afee3cb19eb926de87124c80fbd335dedf1424678868d7e18d11509","first_seen":"2026-02-13T11:11:49.309763Z","last_seen":"2026-07-26T23:25:46.878437Z","times_seen":4653,"resource_available":false,"data":"CiAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJvdFBjQ2VudGVyIiwKICAgICAgICAgICAgImh0bWwiOiAiUEdScGRpQnBaRDBpYjI1bGRISjFjM1F0Y0dNdGMyUnJJaUJqYkdGemN6MGliM1JRWTBObGJuUmxjaUJ2ZEMxb2FXUmxJRzkwTFdaaFpHVXRhVzRpUGp4a2FYWWdjbTlzWlQwaVpHbGhiRzluSWlCaGNtbGhMVzF2WkdGc1BTSjBjblZsSWo0OElTMHRJRU5zYjNObElFSjFkSFJ2YmlBdExUNDhaR2wySUdOc1lYTnpQU0p2ZEMxd1l5MW9aV0ZrWlhJaVBqd2hMUzBnVEc5bmJ5QlVZV2NnTFMwK1BHUnBkaUJqYkdGemN6MGliM1F0Y0dNdGJHOW5ieUkrUEM5a2FYWStQR0oxZEhSdmJpQnBaRDBpWTJ4dmMyVXRjR010WW5SdUxXaGhibVJzWlhJaUlHTnNZWE56UFNKdmRDMWpiRzl6WlMxcFkyOXVJaUJoY21saExXeGhZbVZzUFNKRGJHOXpaU0krUEM5aWRYUjBiMjQrUEM5a2FYWStQQ0V0TFNCRGJHOXpaU0JDZFhSMGIyNGdMUzArUEdScGRpQnBaRDBpYjNRdGNHTXRZMjl1ZEdWdWRDSWdZMnhoYzNNOUltOTBMWEJqTFhOamNtOXNiR0poY2lJK1BHZ3lJR2xrUFNKdmRDMXdZeTEwYVhSc1pTSStXVzkxY2lCUWNtbDJZV041UEM5b01qNDhaR2wySUdsa1BTSnZkQzF3WXkxa1pYTmpJajQ4TDJScGRqNDhZblYwZEc5dUlHbGtQU0poWTJObGNIUXRjbVZqYjIxdFpXNWtaV1F0WW5SdUxXaGhibVJzWlhJaUlHOTBMV0oxZEhSdmJpMXZjbVJsY2owaU1DSStRV3hzYjNjZ1lXeHNQQzlpZFhSMGIyNCtQSE5sWTNScGIyNGdZMnhoYzNNOUltOTBMWE5rYXkxeWIzY2diM1F0WTJGMExXZHljQ0krUEdneklHbGtQU0p2ZEMxallYUmxaMjl5ZVMxMGFYUnNaU0krVFdGdVlXZGxJRU52YjJ0cFpTQlFjbVZtWlhKbGJtTmxjend2YURNK1BHUnBkaUJqYkdGemN6MGliM1F0Y0d4cExXaGtjaUkrUEhOd1lXNGdZMnhoYzNNOUltOTBMV3hwTFhScGRHeGxJajVEYjI1elpXNTBQQzl6Y0dGdVBpQThjM0JoYmlCamJHRnpjejBpYjNRdGJHa3RkR2wwYkdVaVBreGxaMmwwTGlCSmJuUmxjbVZ6ZER3dmMzQmhiajQ4TDJScGRqNDhJUzB0SUVkeWIzVndjeUJ6WldOMGFXOXVjeUJ6ZEdGeWRITWdMUzArUEdScGRpQmpiR0Z6Y3owaWIzUXRZMkYwTFdsMFpXMGlQandoTFMwZ1IzSnZkWEFnYm1GdFpTQXRMVDQ4YURRZ1kyeGhjM005SW05MExXTmhkQzFvWldGa1pYSWlQbE4wYVdOMGJIa2dUbVZqWlhOellYSjVJRU52YjJ0cFpYTThMMmcwUGp3aExTMGdSM0p2ZFhBZ1pHVnpZM0pwY0hScGIyNGdMUzArUEhBK1ZHaGxjMlVnWTI5dmEybGxjeUJoY21VZ2JtVmpaWE56WVhKNUlHWnZjaUIwYUdVZ2QyVmljMmwwWlNCMGJ5Qm1kVzVqZEdsdmJpQmhibVE4TDNBK1BDOWthWFkrUENFdExTQkhjbTkxY0NCelpXTjBhVzl1SUdWdVpITWdMUzArUENFdExTQkJZMk52Y21ScGIyNGdSM0p2ZFhBZ2MyVmpkR2x2YmlCemRHRnlkSE1nTFMwK1BHUnBkaUJqYkdGemN6MGliM1F0WVdOamIzSmthVzl1TFd4aGVXOTFkQ0J2ZEMxallYUXRhWFJsYlNJK1BHSjFkSFJ2YmlCaGNtbGhMV1Y0Y0dGdVpHVmtQU0ptWVd4elpTSWdiM1F0WVdOamIzSmthVzl1UFNKMGNuVmxJajQ4TDJKMWRIUnZiajQ4SVMwdElFRmpZMjl5WkdsdmJpQm9aV0ZrWlhJZ0xTMCtQR1JwZGlCamJHRnpjejBpYjNRdFlXTmpMV2hrY2lJK1BHZzBJR05zWVhOelBTSnZkQzFqWVhRdGFHVmhaR1Z5SWo1SmJtWnZjbTFoZEdsdmJpQnpkRzl5WVdkbElHRnVaQ0JoWTJObGMzTThMMmcwUGp3dlpHbDJQandoTFMwZ1lXTmpiM0prYVc5dUlHUmxkR0ZwYkNBdExUNDhaR2wySUdOc1lYTnpQU0p2ZEMxaFkyTXRaM0p3WTI1MGNpQnZkQzFoWTJNdGRIaDBJajQ4Y0NCamJHRnpjejBpYjNRdFlXTmpMV2R5Y0dSbGMyTWlQand2Y0Q0OEwyUnBkajQ4TDJScGRqNDhJUzB0SUVGalkyOXlaR2x2YmlCSGNtOTFjQ0J6WldOMGFXOXVJR1Z1WkhNZ0xTMCtQQzl6WldOMGFXOXVQand2WkdsMlBqeHpaV04wYVc5dUlHbGtQU0p2ZEMxd1l5MXNjM1FpSUdOc1lYTnpQU0p2ZEMxb2FXUmxJRzkwTFdodmMzUnpMWFZwSUc5MExYQmpMWE5qY205c2JHSmhjaUkrUEdScGRpQnBaRDBpYjNRdGNHTXRhR1J5SWo0OFpHbDJJR2xrUFNKdmRDMXNjM1F0ZEdsMGJHVWlQanhpZFhSMGIyNGdZMnhoYzNNOUltOTBMV3hwYm1zdFluUnVJR0poWTJzdFluUnVMV2hoYm1Sc1pYSWlJR0Z5YVdFdGJHRmlaV3c5SWtKaFkyc2lQanh6ZG1jZ2FXUTlJbTkwTFdKaFkyc3RZWEozSWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUI0UFNJd2NIZ2lJSGs5SWpCd2VDSWdkbWxsZDBKdmVEMGlNQ0F3SURRME5DNDFNekVnTkRRMExqVXpNU0lnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK1BIUnBkR3hsUGtKaFkyc2dRblYwZEc5dVBDOTBhWFJzWlQ0OFp6NDhjR0YwYUNCbWFXeHNQU0lqTmpVMk5UWTFJaUJrUFNKTk1qRXpMakV6TERJeU1pNDBNRGxNTXpVeExqZzRMRGd6TGpZMU0yTTNMakExTFRjdU1EUXpMREV3TGpVMk55MHhOUzQyTlRjc01UQXVOVFkzTFRJMUxqZzBNV013TFRFd0xqRTRNeTB6TGpVeE9DMHhPQzQzT1RNdE1UQXVOVFkzTFRJMUxqZ3pOUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd3dE1qRXVOREE1TFRJeExqUXhOa016TWpNdU5ETXlMRE11TlRJeExETXhOQzQ0TVRjc01Dd3pNRFF1TmpNM0xEQnpMVEU0TGpjNU1Td3pMalV5TVMweU5TNDROREVzTVRBdU5UWXhURGt5TGpZME9Td3hPVFl1TkRJMUNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZeTAzTGpBME5DdzNMakEwTXkweE1DNDFOallzTVRVdU5qVTJMVEV3TGpVMk5pd3lOUzQ0TkRGek15NDFNakVzTVRndU56a3hMREV3TGpVMk5pd3lOUzQ0TXpkc01UZzJMakUwTml3eE9EVXVPRFkwWXpjdU1EVXNOeTR3TkRNc01UVXVOallzTVRBdU5UWTBMREkxTGpnME1Td3hNQzQxTmpRS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpNVGd1TnprMUxUTXVOVEl4TERJMUxqZ3pOQzB4TUM0MU5qUnNNakV1TkRBNUxUSXhMalF4TW1NM0xqQTFMVGN1TURNNUxERXdMalUyTnkweE5TNDJNRFFzTVRBdU5UWTNMVEkxTGpZNU4yTXdMVEV3TGpBNE5TMHpMalV4T0MweE9DNDNORFl0TVRBdU5UWTNMVEkxTGprM09Bb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRXd5TVRNdU1UTXNNakl5TGpRd09Yb2lMejQ4TDJjK1BDOXpkbWMrUEM5aWRYUjBiMjQrUEdnelBsQmxjbVp2Y20xaGJtTmxJRU52YjJ0cFpYTThMMmd6UGp3dlpHbDJQanhrYVhZZ1kyeGhjM005SW05MExXeHpkQzF6ZFdKb1pISWlQanhrYVhZZ1kyeGhjM005SW05MExYTmxZWEpqYUMxamJuUnlJajQ4Y0NCeWIyeGxQU0p6ZEdGMGRYTWlJR05zWVhOelBTSnZkQzF6WTNKdUxYSmtjaUkrUEM5d1BqeHBibkIxZENCcFpEMGlkbVZ1Wkc5eUxYTmxZWEpqYUMxb1lXNWtiR1Z5SWlCMGVYQmxQU0owWlhoMElpQnVZVzFsUFNKMlpXNWtiM0l0YzJWaGNtTm9MV2hoYm1Sc1pYSWlQaUE4YzNabklIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJaUIyYVdWM1FtOTRQU0l3SUMwek1DQXhNVEFnTVRFd0lpQmhjbWxoTFdocFpHUmxiajBpZEhKMVpTSStQSFJwZEd4bFBsTmxZWEpqYUNCSlkyOXVQQzkwYVhSc1pUNDhjR0YwYUNCbWFXeHNQU0lqTW1Vek5qUTBJaUJrUFNKTk5UVXVNVFEyTERVeExqZzROMHcwTVM0MU9EZ3NNemN1TnpnMll6TXVORGcyTFRRdU1UUTBMRFV1TXprMkxUa3VNelU0TERVdU16azJMVEUwTGpjNE5tTXdMVEV5TGpZNE1pMHhNQzR6TVRndE1qTXRNak10TWpOekxUSXpMREV3TGpNeE9DMHlNeXd5TXdvZ0lDQWdJQ0FnSUNBZ0lDQnpNVEF1TXpFNExESXpMREl6TERJell6UXVOell4TERBc09TNHlPVGd0TVM0ME16WXNNVE11TVRjM0xUUXVNVFl5YkRFekxqWTJNU3d4TkM0eU1EaGpNQzQxTnpFc01DNDFPVE1zTVM0ek16a3NNQzQ1TWl3eUxqRTJNaXd3TGpreUNpQWdJQ0FnSUNBZ0lDQWdJR013TGpjM09Td3dMREV1TlRFNExUQXVNamszTERJdU1EYzVMVEF1T0RNM1F6VTJMakkxTlN3MU5DNDVPRElzTlRZdU1qa3pMRFV6TGpBNExEVTFMakUwTml3MU1TNDRPRGQ2SUUweU15NDVPRFFzTm1NNUxqTTNOQ3d3TERFM0xEY3VOakkyTERFM0xERTNjeTAzTGpZeU5pd3hOeTB4Tnl3eE53b2dJQ0FnSUNBZ0lDQWdJQ0J6TFRFM0xUY3VOakkyTFRFM0xURTNVekUwTGpZeExEWXNNak11T1RnMExEWjZJaTgrUEM5emRtYytQQzlrYVhZK1BHUnBkaUJqYkdGemN6MGliM1F0Wm14MGNpMWpiblJ5SWo0OFluVjBkRzl1SUdsa1BTSm1hV3gwWlhJdFluUnVMV2hoYm1Sc1pYSWlJR0Z5YVdFdGJHRmlaV3c5SWtacGJIUmxjaUlnWVhKcFlTMW9ZWE53YjNCMWNEMGlkSEoxWlNJZ1lYSnBZUzFsZUhCaGJtUmxaRDBpWm1Gc2MyVWlQanh6ZG1jZ2NtOXNaVDBpY0hKbGMyVnVkR0YwYVc5dUlpQmhjbWxoTFdocFpHUmxiajBpZEhKMVpTSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjRiV3h1Y3pwNGJHbHVhejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRiR2x1YXlJZ2VEMGlNSEI0SWlCNVBTSXdjSGdpSUhacFpYZENiM2c5SWpBZ01DQTBNREl1TlRjM0lEUXdNaTQxTnpjaUlIaHRiRHB6Y0dGalpUMGljSEpsYzJWeWRtVWlQangwYVhSc1pUNUdhV3gwWlhJZ1NXTnZiand2ZEdsMGJHVStQR2MrUEhCaGRHZ2dabWxzYkQwaUkyWm1aaUlnWkQwaVRUUXdNQzQ0TlRnc01URXVOREkzWXkwekxqSTBNUzAzTGpReU1TMDRMamcxTFRFeExqRXpNaTB4Tmk0NE5UUXRNVEV1TVRNMlNERTRMalUyTkdNdE55NDVPVE1zTUMweE15NDJNU3d6TGpjeE5TMHhOaTQ0TkRZc01URXVNVE0yQ2lBZ0lDQWdJR010TXk0eU16UXNOeTQ0TURFdE1TNDVNRE1zTVRRdU5EWTNMRE11T1RrNUxERTVMams0Tld3eE5EQXVOelUzTERFME1DNDNOVE4yTVRNNExqYzFOV013TERRdU9UVTFMREV1T0RBNUxEa3VNak15TERVdU5ESTBMREV5TGpnMU5HdzNNeTR3T0RVc056TXVNRGd6Q2lBZ0lDQWdJR016TGpReU9Td3pMall4TkN3M0xqY3hMRFV1TkRJNExERXlMamcxTVN3MUxqUXlPR015TGpJNE1pd3dMRFF1TmpZdE1DNDBOemtzTnk0eE16VXRNUzQwTTJNM0xqUXlOaTB6TGpJek9Dd3hNUzR4TkMwNExqZzFNU3d4TVM0eE5DMHhOaTQ0TkRWV01UY3lMakUyTmt3ek9UWXVPRFl4TERNeExqUXhNd29nSUNBZ0lDQkROREF5TGpjMk5Td3lOUzQ0T1RVc05EQTBMakE1TXl3eE9TNHlNekVzTkRBd0xqZzFPQ3d4TVM0ME1qZDZJaTgrUEM5blBqd3ZjM1puUGp3dlluVjBkRzl1UGp3dlpHbDJQanhrYVhZZ2FXUTlJbTkwTFdGdVkyaHZjaUkrUEM5a2FYWStQSE5sWTNScGIyNGdhV1E5SW05MExXWnNkSEl0Ylc5a1lXd2lQanhrYVhZZ2FXUTlJbTkwTFdac2RISXRZMjUwSWo0OFpHbDJJR2xrUFNKdmRDMW1hV3gwWlhJdGJHbHpkQzFvWldGa1pYSWlQand2WkdsMlBqeGlkWFIwYjI0Z2FXUTlJbU5zWldGeUxXWnBiSFJsY25NdGFHRnVaR3hsY2lJK1EyeGxZWEk4TDJKMWRIUnZiajQ4WkdsMklHTnNZWE56UFNKdmRDMW1iSFJ5TFhOamNteGpiblFnYjNRdGNHTXRjMk55YjJ4c1ltRnlJaUJ5YjJ4bFBTSm5jbTkxY0NJZ1lYSnBZUzFzWVdKbGJHeGxaR0o1UFNKdmRDMW1hV3gwWlhJdGJHbHpkQzFvWldGa1pYSWlQangxYkNCamJHRnpjejBpYjNRdFpteDBjaTF2Y0hSeklqNDhiR2tnWTJ4aGMzTTlJbTkwTFdac2RISXRiM0IwSWo0OEwyeHBQand2ZFd3K1BHUnBkaUJqYkdGemN6MGliM1F0Wm14MGNpMWlkRzV6SWo0OFluVjBkRzl1SUdsa1BTSm1hV3gwWlhJdFlYQndiSGt0YUdGdVpHeGxjaUkrUVhCd2JIazhMMkoxZEhSdmJqNGdQR0oxZEhSdmJpQnBaRDBpWm1sc2RHVnlMV05oYm1ObGJDMW9ZVzVrYkdWeUlqNURZVzVqWld3OEwySjFkSFJ2Ymo0OEwyUnBkajQ4TDJScGRqNDhMMlJwZGo0OEwzTmxZM1JwYjI0K1BDOWthWFkrUEM5a2FYWStQSE5sWTNScGIyNGdhV1E5SW05MExXeHpkQzFqYm5RaUlHTnNZWE56UFNKdmRDMW9iM04wTFdOdWRDQnZkQzF3WXkxelkzSnZiR3hpWVhJaVBqeGthWFlnYVdROUltOTBMWE5sYkMxaWJHc2lQanhrYVhZZ1kyeGhjM005SW05MExYTmxiQzFoYkd3aVBqeGthWFlnWTJ4aGMzTTlJbTkwTFhObGJDMWhiR3d0YUdSeUlqNDhjM0JoYmlCamJHRnpjejBpYjNRdFkyOXVjMlZ1ZEMxb1pISWlQa052Ym5ObGJuUThMM053WVc0K0lEeHpjR0Z1SUdOc1lYTnpQU0p2ZEMxc2FTMW9aSElpUGt4bFp5NUpiblJsY21WemREd3ZjM0JoYmo0OEwyUnBkajQ4WkdsMklHTnNZWE56UFNKdmRDMXpaV3d0WVd4c0xXTm9hMkp2ZUNJK1BDOWthWFkrUEM5a2FYWStQQzlrYVhZK1BHUnBkaUJqYkdGemN6MGliM1F0YzJSckxYSnZkeUkrUEdScGRpQmpiR0Z6Y3owaWIzUXRjMlJyTFdOdmJIVnRiaUkrUEhWc0lHbGtQU0p2ZEMxb2IzTjBMV3h6ZENJK1BHeHBJR05zWVhOelBTSnZkQzFvYjNOMExXbDBaVzBpUGp4aWRYUjBiMjRnWTJ4aGMzTTlJbTkwTFdodmMzUXRZbTk0SWlCaGNtbGhMV1Y0Y0dGdVpHVmtQU0ptWVd4elpTSStQQzlpZFhSMGIyNCtQSE5sWTNScGIyNGdZMnhoYzNNOUltOTBMV0ZqWXkxb1pISWlQanhrYVhZZ1kyeGhjM005SW05MExXaHZjM1F0YUdSeUlqNDhhRFFnWTJ4aGMzTTlJbTkwTFdodmMzUXRibUZ0WlNJK1BDOW9ORDQ4YURRZ1kyeGhjM005SW05MExXaHZjM1F0WkdWell5SStQQzlvTkQ0OGMzQmhiaUJqYkdGemN6MGliM1F0YUc5emRDMWxlSEJoYm1RaVBsWnBaWGNnUTI5dmEybGxjend2YzNCaGJqNDhMMlJwZGo0OElTMHRJSFJ2WjJkc1pYTWdZVzVrSUdGeWNtOTNJQzB0UGp4a2FYWWdZMnhoYzNNOUltOTBMWFJuYkMxamJuUnlJajQ4TDJScGRqNDhMM05sWTNScGIyNCtQR1JwZGlCamJHRnpjejBpYjNRdFlXTmpMWFI0ZENJK1BHUnBkaUJqYkdGemN6MGliM1F0YUc5emRDMXZjSFJ6SWo0OElTMHRJRWhQVTFRZ1RFbFRWQ0JXU1VWWElGVlFSRUZVUlNBcUtpb2dMUzArUEhWc0lHTnNZWE56UFNKdmRDMW9iM04wTFc5d2RDSStQR3hwSUdOc1lYTnpQU0p2ZEMxb2IzTjBMV2x1Wm04aVBqeGtiRDQ4WkdsMlBqeGtkRDVPWVcxbFBDOWtkRDQ4WkdRK1kyOXZhMmxsSUc1aGJXVThMMlJrUGp3dlpHbDJQand2Wkd3K1BDOXNhVDQ4TDNWc1Bqd2hMUzBnU0U5VFZDQk1TVk5VSUZaSlJWY2dWVkJFUVZSRklFVk9SQ0FxS2lvZ0xTMCtQQzlrYVhZK1BDOWthWFkrUEM5c2FUNDhMM1ZzUGp4MWJDQnBaRDBpYjNRdGRtVnVMV3h6ZENJK1BHeHBJR05zWVhOelBTSnZkQzEyWlc0dGFYUmxiU0krUEdKMWRIUnZiaUJqYkdGemN6MGliM1F0ZG1WdUxXSnZlQ0lnWVhKcFlTMWxlSEJoYm1SbFpEMGlabUZzYzJVaVBqd3ZZblYwZEc5dVBqeHpaV04wYVc5dUlHTnNZWE56UFNKdmRDMWhZMk10YUdSeUlqNDhJUzB0SUZabGJtUnZjaUJ1WVcxbElIQnZiR2xqZVNCc2FXNXJJQzB0UGp4a2FYWWdZMnhoYzNNOUltOTBMWFpsYmkxb1pISWlQanhvTkNCamJHRnpjejBpYjNRdGRtVnVMVzVoYldVaVBqd3ZhRFErUEdFZ1kyeGhjM005SW05MExYWmxiaTFzYVc1cklpQm9jbVZtUFNJaklqNVdhV1YzSUZCeWFYWmhZM2tnVG05MGFXTmxQQzloUGp4aWNqNDhZU0JqYkdGemN6MGliM1F0ZG1WdUxXeGxaMk5zWVdsdExXeHBibXNpSUdoeVpXWTlJaU1pUGxacFpYY2dUR1ZuSUVsdWRDQkRiR0ZwYlNCT2IzUnBZMlU4TDJFK1BDOWthWFkrUENFdExTQjBiMmRuYkdWeklHRnVaQ0JoY25KdmR5QXRMVDQ4WkdsMklHTnNZWE56UFNKdmRDMTBaMnd0WTI1MGNpSStQQzlrYVhZK1BDOXpaV04wYVc5dVBqeGthWFlnWTJ4aGMzTTlJbTkwTFdGall5MTBlSFFpUGp4MWJDQmpiR0Z6Y3owaWIzUXRkbVZ1TFdSbGRITWlQanhzYVNCamJHRnpjejBpYjNRdGRtVnVMV1JwYzJNaVBqd3ZiR2srUEd4cElHTnNZWE56UFNKdmRDMTJaVzR0Y0hWeUlqNDhMMnhwUGp3dmRXdytQQzlrYVhZK1BDOXNhVDQ4TDNWc1Bqd3ZaR2wyUGp3dlpHbDJQand2YzJWamRHbHZiajQ4TDNObFkzUnBiMjQrUEdScGRpQmpiR0Z6Y3owaWIzUXRjR010Wm05dmRHVnlJRzkwTFhCakxYTmpjbTlzYkdKaGNpSStQR1JwZGlCamJHRnpjejBpYjNRdFluUnVMV052Ym5SaGFXNWxjaUkrUEdKMWRIUnZiaUJqYkdGemN6MGliM1F0Y0dNdGNtVm1kWE5sTFdGc2JDMW9ZVzVrYkdWeUlpQnZkQzFpZFhSMGIyNHRiM0prWlhJOUlqRWlQbEpsYW1WamRDQkJiR3c4TDJKMWRIUnZiajRnUEdKMWRIUnZiaUJqYkdGemN6MGljMkYyWlMxd2NtVm1aWEpsYm1ObExXSjBiaTFvWVc1a2JHVnlJRzl1WlhSeWRYTjBMV05zYjNObExXSjBiaTFvWVc1a2JHVnlJaUJ2ZEMxaWRYUjBiMjR0YjNKa1pYSTlJaklpUGxOaGRtVWdUWGtnVUhKbFptVnlaVzVqWlR3dlluVjBkRzl1UGp3dlpHbDJQandoTFMwZ1JtOXZkR1Z5SUd4dloyOGdMUzArUEdScGRpQmpiR0Z6Y3owaWIzUXRjR010Wm05dmRHVnlMV3h2WjI4aVBqeGhJR2h5WldZOUltaDBkSEJ6T2k4dmIyNWxkSEoxYzNRdVkyOXRMM0J2ZDJWeVpXUmllVzl1WlhSeWRYTjBJaUIwWVhKblpYUTlJbDlpYkdGdWF5SWdjbVZzUFNKdWIyOXdaVzVsY2lCdWIzSmxabVZ5Y21WeUlqNDhhVzFuSUdGc2REMGlVRzkzWlhKbFpDQmllU0JQYm1WMGNuVnpkQ0krUEM5aFBqd3ZaR2wyUGp3dlpHbDJQandoTFMwZ1EyOXZhMmxsSUhOMVltZHliM1Z3SUdOdmJuUmhhVzVsY2lBdExUNDhaR2wySUdOc1lYTnpQU0p2ZEMxemRXSm5jbkF0WTI1MGNpSStQSFZzSUdOc1lYTnpQU0p2ZEMxemRXSm5jbkJ6SWo0OGJHa2dZMnhoYzNNOUltOTBMWE4xWW1keWNDSStQR2cxUGxSaGNtZGxkR2x1WnlCRGIyOXJhV1Z6UEM5b05UNDhaR2wySUdOc1lYTnpQU0p2ZEMxMFoyd3RZMjUwY2lCdmRDMXpkV0puY25BdGRHZHNJajQ4TDJScGRqNDhjQ0JqYkdGemN6MGliM1F0YzNWaVozSndMV1JsYzJNaVBqd3ZjRDQ4TDJ4cFBqd3ZkV3crUEM5a2FYWStQQ0V0TFNCV1pXNWtiM0lnYkdsemRDQnNhVzVySUMwdFBqeGthWFlnWTJ4aGMzTTlJbTkwTFhac2MzUXRZMjUwY2lJK1BHSjFkSFJ2YmlCamJHRnpjejBpYjNRdGJHbHVheTFpZEc0Z1kyRjBaV2R2Y25rdGRtVnVaRzl5Y3kxc2FYTjBMV2hoYm1Sc1pYSWlQbFpwWlhjZ1ZtVnVaRzl5SUV4cGMzUThMMkoxZEhSdmJqNDhMMlJwZGo0OElTMHRJRU52YjJ0cFpTQnNiM04wSUd4cGJtc2dMUzArUEdScGRpQmpiR0Z6Y3owaWIzUXRhR3h6ZEMxamJuUnlJajQ4WW5WMGRHOXVJR05zWVhOelBTSnZkQzFzYVc1ckxXSjBiaUJqWVhSbFoyOXllUzFvYjNOMExXeHBjM1F0YUdGdVpHeGxjaUkrU0c5emRDQk1hWE4wUEM5aWRYUjBiMjQrUEM5a2FYWStQQ0V0TFNCVWIyZG5iR1VnU0ZSTlRDQmxiR1Z0Wlc1MElDMHRQanhrYVhZZ1kyeGhjM005SW05MExYUm5iQ0krUEdsdWNIVjBJSFI1Y0dVOUltTm9aV05yWW05NElpQnVZVzFsUFNKemQybDBZMmdpSUdsa1BTSnpkMmwwWTJndGFXUWlQaUE4YkdGaVpXd2dZMnhoYzNNOUltOTBMWE4zYVhSamFDSWdabTl5UFNKdmRDMXpkMmwwWTJndGFXUWlQanh6Y0dGdUlHTnNZWE56UFNKdmRDMXpkMmwwWTJndGJtOWlJajQ4TDNOd1lXNCtJRHh6Y0dGdUlHTnNZWE56UFNKdmRDMXNZV0psYkMxMGVIUWlQbE4zYVhSamFDQk1ZV0psYkR3dmMzQmhiajQ4TDJ4aFltVnNQaUE4YzNCaGJpQmpiR0Z6Y3owaWIzUXRiR0ZpWld3dGMzUmhkSFZ6SWo1c1lXSmxiRHd2YzNCaGJqNDhMMlJwZGo0OElTMHRJRU5vWldOclltOTRJRWhVVFV3Z0xTMCtQR1JwZGlCamJHRnpjejBpYjNRdFkyaHJZbTk0SWo0OGFXNXdkWFFnYVdROUltTm9hMkp2ZUMxcFpDSWdkSGx3WlQwaVkyaGxZMnRpYjNnaVBpQThiR0ZpWld3Z1ptOXlQU0pqYUd0aWIzZ3RhV1FpUGp4emNHRnVJR05zWVhOelBTSnZkQzFzWVdKbGJDMTBlSFFpUG1Ob1pXTnJZbTk0SUd4aFltVnNQQzl6Y0dGdVBqd3ZiR0ZpWld3K0lEeHpjR0Z1SUdOc1lYTnpQU0p2ZEMxc1lXSmxiQzF6ZEdGMGRYTWlQbXhoWW1Wc1BDOXpjR0Z1UGp3dlpHbDJQandoTFMwZ2NHeDFjeUJ0YVc1MWN5MHRQanhrYVhZZ1kyeGhjM005SW05MExYQnNkWE10YldsdWRYTWlQanh6Y0dGdVBqd3ZjM0JoYmo0OGMzQmhiajQ4TDNOd1lXNCtQQzlrYVhZK1BDRXRMU0JCY25KdmR5QlRWa2NnWld4bGJXVnVkQ0F0TFQ0OFpHbDJJR05zWVhOelBTSnZkQzFoY25jdFkyNTBjaUkrUEhOMlp5QmpiR0Z6Y3owaWIzUXRZWEozSWlCaGNtbGhMV2hwWkdSbGJqMGlkSEoxWlNJZ1ptOWpkWE5oWW14bFBTSm1ZV3h6WlNJZ1pHRjBZUzF3Y21WbWFYZzlJbVpoY3lJZ1pHRjBZUzFwWTI5dVBTSmpZWEpsZEMxeWFXZG9kQ0lnY205c1pUMGlhVzFuSWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXhPVElnTlRFeUlqNDhjR0YwYUNCbWFXeHNQU0pqZFhKeVpXNTBRMjlzYjNJaUlHUTlJazB4TmpZdU9TQXlOalF1Tld3dE1URTNMamdnTVRFMll5MDBMamNnTkM0M0xURXlMak1nTkM0M0xURTNJREJzTFRjdU1TMDNMakZqTFRRdU55MDBMamN0TkM0M0xURXlMak1nTUMweE4wd3hNamN1TXlBeU5UWWdNalV1TVNBeE5UVXVObU10TkM0M0xUUXVOeTAwTGpjdE1USXVNeUF3TFRFM2JEY3VNUzAzTGpGak5DNDNMVFF1TnlBeE1pNHpMVFF1TnlBeE55QXdiREV4Tnk0NElERXhObU0wTGpZZ05DNDNJRFF1TmlBeE1pNHpMUzR4SURFM2VpSStQQzl3WVhSb1Bqd3ZjM1puUGp3dlpHbDJQandoTFMwZ1FXTmpiM0prYVc5dUlHSmhjMmxqSUdWc1pXMWxiblFnTFMwK1BHUnBkaUJqYkdGemN6MGliM1F0WVdOakxXTnVkSElpUGp4aWRYUjBiMjRnWVhKcFlTMWxlSEJoYm1SbFpEMGlabUZzYzJVaUlHOTBMV0ZqWTI5eVpHbHZiajBpZEhKMVpTSStQQzlpZFhSMGIyNCtQR1JwZGlCamJHRnpjejBpYjNRdFlXTmpMV2hrY2lJK1BDRXRMU0JCWTJOdmNtUnBiMjRnYUdWaFpHVnlJR052Ym5SbGJuUWdMUzArUEM5a2FYWStQR1JwZGlCamJHRnpjejBpYjNRdFlXTmpMWFI0ZENJK1BDRXRMU0JCWTJOdmNtbGtiMjRnWTI5dWRHVnVkQ0F0TFQ0OEwyUnBkajQ4TDJScGRqNDhjM0JoYmlCamJHRnpjejBpYjNRdGMyTnliaTF5WkhJaUlHRnlhV0V0WVhSdmJXbGpQU0owY25WbElpQmhjbWxoTFd4cGRtVTlJbkJ2YkdsMFpTSStQQzl6Y0dGdVBqd2hMUzBnVm1WdVpHOXlJRk5sY25acFkyVWdZMjl1ZEdGcGJtVnlJR0Z1WkNCcGRHVnRJSFJsYlhCc1lYUmxJQzB0UGp4elpXTjBhVzl1SUdOc1lYTnpQU0p2ZEMxelpHc3RjbTkzSUc5MExYWnVaQzF6WlhKMklqNDhaR2wySUdOc1lYTnpQU0p2ZEMxMmJtUXRjMlZ5ZGkxb1pISXRZMjUwY2lJK1BHZzBJR05zWVhOelBTSnZkQzEyYm1RdGMyVnlkaTFvWkhJaVBsWmxibVJ2Y2lCT1lXMWxjend2YURRK1BDOWthWFkrUEdScGRpQmpiR0Z6Y3owaWIzUXRkbTVrTFd4emRDMWpiMjUwSWo0OFpHbDJJR05zWVhOelBTSnZkQzFoWTJOdmNtUnBiMjR0YkdGNWIzVjBJRzkwTFdOaGRDMXBkR1Z0SUc5MExYWnVaQzFwZEdWdElqNDhZblYwZEc5dUlHRnlhV0V0Wlhod1lXNWtaV1E5SW1aaGJITmxJaUJ2ZEMxaFkyTnZjbVJwYjI0OUluUnlkV1VpUGp3dlluVjBkRzl1UGp3aExTMGdRV05qYjNKa2FXOXVJR2hsWVdSbGNpQXRMVDQ4WkdsMklHTnNZWE56UFNKdmRDMWhZMk10YUdSeUlqNDhhRFFnWTJ4aGMzTTlJbTkwTFdOaGRDMW9aV0ZrWlhJaVBrbHVabTl5YldGMGFXOXVJSE4wYjNKaFoyVWdZVzVrSUdGalkyVnpjeUIwWlhOMFBDOW9ORDQ4TDJScGRqNDhJUzB0SUdGalkyOXlaR2x2YmlCa1pYUmhhV3dnTFMwK1BHUnBkaUJqYkdGemN6MGliM1F0WVdOakxXZHljR051ZEhJZ2IzUXRZV05qTFhSNGRDQnZkQzEyYm1RdGFXNW1ieTFqYm5SeUlqNDhaR2wySUdOc1lYTnpQU0p2ZEMxMmJtUXRhVzVtYnlJK1BHZzFJR05zWVhOelBTSnZkQzEyYm1RdGJHSnNJajVUWlhKMmFXTmxJRTVoYldVOEwyZzFQanhvTmlCamJHRnpjejBpYjNRdGRtNWtMV051ZENJK1IyOXZaMnhsSUUxaGNITThMMmcyUGp3dlpHbDJQand2WkdsMlBqd3ZaR2wyUGp3dlpHbDJQand2YzJWamRHbHZiajQ4TDJScGRqNDhMMlJwZGo0PSIsCiAgICAgICAgICAgICJjc3MiOiAiI29uZXRydXN0LXBjLXNkay5vdFBjQ2VudGVyey0tb3QtZm9vdGVyLXNwYWNlOiAxNjBweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246Zml4ZWQ7bWFyZ2luOjAgYXV0bzt0b3A6NSU7cmlnaHQ6MDtsZWZ0OjA7d2lkdGg6NDAlO21heC13aWR0aDo1NzVweDttaW4td2lkdGg6NTc1cHg7Ym9yZGVyLXJhZGl1czoyLjVweDt6LWluZGV4OjIxNDc0ODM2NDc7YmFja2dyb3VuZC1jb2xvcjojZmZmOy13ZWJraXQtYm94LXNoYWRvdzowcHggMnB4IDEwcHggLTNweCAjOTk5Oy1tb3otYm94LXNoYWRvdzowcHggMnB4IDEwcHggLTNweCAjOTk5O2JveC1zaGFkb3c6MHB4IDJweCAxMHB4IC0zcHggIzk5OX0jb25ldHJ1c3QtcGMtc2RrLm90UGNDZW50ZXJbZGlyPXJ0bF17cmlnaHQ6MDtsZWZ0OjB9I29uZXRydXN0LXBjLXNkay5vdFJlbEZvbnR7Zm9udC1zaXplOjFyZW19I29uZXRydXN0LXBjLXNkayAub3Qtb3B0b3V0LXNpZ25hbHttYXJnaW4tdG9wOi42MjVyZW19I29uZXRydXN0LXBjLXNkayAjb3QtYWRkdGwtdmVubHN0IC5vdC1hcnctY250ciwjb25ldHJ1c3QtcGMtc2RrICNvdC1hZGR0bC12ZW5sc3QgLm90LXBsdXMtbWludXMsI29uZXRydXN0LXBjLXNkayAub3QtaGlkZS10Z2x7dmlzaWJpbGl0eTpoaWRkZW59I29uZXRydXN0LXBjLXNkayAjb3QtYWRkdGwtdmVubHN0IC5vdC1hcnctY250ciAqLCNvbmV0cnVzdC1wYy1zZGsgI290LWFkZHRsLXZlbmxzdCAub3QtcGx1cy1taW51cyAqLCNvbmV0cnVzdC1wYy1zZGsgLm90LWhpZGUtdGdsICp7dmlzaWJpbGl0eTpoaWRkZW59I29uZXRydXN0LXBjLXNkayAjb3QtZ24tdmVubHN0IC5vdC12ZW4taXRlbSAub3QtYWNjLWhkcnttaW4taGVpZ2h0OjQwcHh9I29uZXRydXN0LXBjLXNkayAub3QtcGMtaGVhZGVye2hlaWdodDozOXB4O3BhZGRpbmc6MTBweCAwIDEwcHggMzBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTllOWU5fSNvbmV0cnVzdC1wYy1zZGsgI290LXBjLXRpdGxlLCNvbmV0cnVzdC1wYy1zZGsgI290LWNhdGVnb3J5LXRpdGxlLCNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1oZWFkZXIsI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LXRpdGxlLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1oZHIgLm90LXZlbi1uYW1lLCNvbmV0cnVzdC1wYy1zZGsgLm90LWFsd2F5cy1hY3RpdmV7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjpkaW1ncmF5fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFsd2F5cy1hY3RpdmUtZ3JvdXAgLm90LWNhdC1oZWFkZXJ7d2lkdGg6NTUlO2ZvbnQtd2VpZ2h0OjcwMH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1jYXQtaXRlbSBwOm5vdChbcm9sZT1oZWFkaW5nXSl7Y2xlYXI6Ym90aDtmbG9hdDpsZWZ0O21hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjVweDtsaW5lLWhlaWdodDoxLjU7Zm9udC1zaXplOi44MTJlbTtjb2xvcjpkaW1ncmF5fSNvbmV0cnVzdC1wYy1zZGsgLm90LWNsb3NlLWljb257aGVpZ2h0OjQ0cHg7d2lkdGg6NDRweDtiYWNrZ3JvdW5kLXNpemU6MTBweH0jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy10aXRsZXtmbG9hdDpsZWZ0O2ZvbnQtc2l6ZToxZW07bGluZS1oZWlnaHQ6MS41O21hcmdpbi1ib3R0b206MTBweDttYXJnaW4tdG9wOjEwcHg7d2lkdGg6MTAwJX0jb25ldHJ1c3QtcGMtc2RrICNhY2NlcHQtcmVjb21tZW5kZWQtYnRuLWhhbmRsZXJ7cG9zaXRpb246cmVsYXRpdmU7b3V0bGluZS1vZmZzZXQ6LTFweH0jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1kZXNje2NsZWFyOmJvdGg7d2lkdGg6MTAwJTtmb250LXNpemU6LjgxMmVtO2xpbmUtaGVpZ2h0OjEuNTttYXJnaW4tYm90dG9tOjI1cHh9I29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyAqe2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXR9I29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyB1bCBsaXtwYWRkaW5nOjEwcHggMHB4fSNvbmV0cnVzdC1wYy1zZGsgYXtjb2xvcjojNjU2NTY1O2N1cnNvcjpwb2ludGVyfSNvbmV0cnVzdC1wYy1zZGsgYTpob3Zlcntjb2xvcjojMzg2MGJlfSNvbmV0cnVzdC1wYy1zZGsgbGFiZWx7bWFyZ2luLWJvdHRvbTowfSNvbmV0cnVzdC1wYy1zZGsgI3Zkci1sc3QtZHNje2ZvbnQtc2l6ZTouODEyZW07bGluZS1oZWlnaHQ6MS41O3BhZGRpbmc6MTBweCAxNXB4IDVweCAxNXB4fSNvbmV0cnVzdC1wYy1zZGsgYnV0dG9ue21heC13aWR0aDozOTRweDtwYWRkaW5nOjEycHggMzBweDtsaW5lLWhlaWdodDoxO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpub3JtYWw7Zm9udC13ZWlnaHQ6Ym9sZDtoZWlnaHQ6YXV0b30jb25ldHJ1c3QtcGMtc2RrIC5vdC1saW5rLWJ0bntwYWRkaW5nOjA7bWFyZ2luLWJvdHRvbTowO2JvcmRlcjowO2ZvbnQtd2VpZ2h0Om5vcm1hbDtsaW5lLWhlaWdodDpub3JtYWw7d2lkdGg6YXV0bztoZWlnaHQ6YXV0b30jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1jb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93LXk6c2Nyb2xsO3BhZGRpbmctbGVmdDoycHg7cGFkZGluZy1yaWdodDozMHB4O3RvcDo2MHB4O2JvdHRvbToxMTBweDttYXJnaW46MXB4IDNweCAwIDMwcHg7d2lkdGg6Y2FsYygxMDAlIC0gNjNweCl9I29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3QtYWx3YXlzLWFjdGl2ZSwjb25ldHJ1c3QtcGMtc2RrIC5vdC1jYXQtZ3JwIC5vdC1hbHdheXMtYWN0aXZle2Zsb2F0OnJpZ2h0O2NsZWFyOm5vbmU7Y29sb3I6IzM4NjBiZTttYXJnaW46MDtmb250LXNpemU6LjgxM2VtO2xpbmUtaGVpZ2h0OjEuM30jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre21hcmdpbi1yaWdodDoyMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLXNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6MTFweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOiNkOGQ4ZDh9I29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cysub3QtYWNjLWhkcntvdXRsaW5lOiMwMDAgMXB4IHNvbGlkfSNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLXNjcm9sbGJhcntzY3JvbGxiYXItYXJyb3ctY29sb3I6I2Q4ZDhkODtzY3JvbGxiYXItZGFya3NoYWRvdy1jb2xvcjojZDhkOGQ4O3Njcm9sbGJhci1mYWNlLWNvbG9yOiNkOGQ4ZDg7c2Nyb2xsYmFyLXNoYWRvdy1jb2xvcjojZDhkOGQ4fSNvbmV0cnVzdC1wYy1zZGsgLnNhdmUtcHJlZmVyZW5jZS1idG4taGFuZGxlcnttYXJnaW4tcmlnaHQ6MjBweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1yZWZ1c2UtYWxsLWhhbmRsZXJ7bWFyZ2luLXJpZ2h0OjEwcHh9I29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyAucHJpdmFjeS1ub3RpY2UtbGlua3ttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo4cHh9I29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyAub3QtaW1wcmludC1oYW5kbGVye21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjhweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250cntkaXNwbGF5OmlubGluZS1ibG9jaztjbGVhcjpib3RoO3dpZHRoOjEwMCU7cGFkZGluZy10b3A6MTVweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1zd2l0Y2grLm90LXN1YmdycC1jbnRye3BhZGRpbmctdG9wOjEwcHh9I29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBze21hcmdpbjowO2ZvbnQtc2l6ZTppbml0aWFsfSNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyBsaSBwLCNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyBsaSBoNXtmb250LXNpemU6LjgxM2VtO2xpbmUtaGVpZ2h0OjEuNDtjb2xvcjpkaW1ncmF5fSNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3Qtc3dpdGNoe21pbi1oZWlnaHQ6YXV0b30jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LXN3aXRjaC1ub2J7dG9wOjB9I29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCV9I29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1hY2MtdHh0e21hcmdpbjowfSNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyBsaXtwYWRkaW5nOjA7Ym9yZGVyOm5vbmV9I29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIGxpIGg1LCNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyBsaSBwW2FyaWEtbGV2ZWw9XCI1XCJde3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDo1cHg7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW4tYm90dG9tOjA7ZmxvYXQ6bGVmdH0jb25ldHJ1c3QtcGMtc2RrIGxpLm90LXN1YmdycHttYXJnaW4tbGVmdDoyMHB4O292ZXJmbG93OmF1dG99I29uZXRydXN0LXBjLXNkayBsaS5vdC1zdWJncnA+aDUsI29uZXRydXN0LXBjLXNkayBsaS5vdC1zdWJncnA+cFthcmlhLWxldmVsPVwiNVwiXXt3aWR0aDpjYWxjKDEwMCUgLSAxMDBweCl9I29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gcD51bCwjb25ldHJ1c3QtcGMtc2RrIGxpLm90LXN1YmdycCBwPnVse21hcmdpbjowcHg7bGlzdC1zdHlsZTpkaXNjO21hcmdpbi1sZWZ0OjE1cHg7Zm9udC1zaXplOmluaGVyaXR9I29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gcD51bCBsaSwjb25ldHJ1c3QtcGMtc2RrIGxpLm90LXN1YmdycCBwPnVsIGxpe2ZvbnQtc2l6ZTppbmhlcml0O3BhZGRpbmctdG9wOjEwcHg7cGFkZGluZy1sZWZ0OjBweDtwYWRkaW5nLXJpZ2h0OjBweDtib3JkZXI6bm9uZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1jYXQtaXRlbSBwPnVsIGxpOmxhc3QtY2hpbGQsI29uZXRydXN0LXBjLXNkayBsaS5vdC1zdWJncnAgcD51bCBsaTpsYXN0LWNoaWxke3BhZGRpbmctYm90dG9tOjEwcHh9I29uZXRydXN0LXBjLXNkayAub3QtcGMtbG9nb3toZWlnaHQ6NDBweDt3aWR0aDoxMjBweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjBweDt3aWR0aDoxMDAlO21heC1oZWlnaHQ6dmFyKC0tb3QtZm9vdGVyLXNwYWNlKTtib3JkZXItdG9wOjFweCBzb2xpZCAjZDhkOGQ4fSNvbmV0cnVzdC1wYy1zZGsub3QtZnRyLXN0YWNrZWQgI290LXBjLWxzdHtib3R0b206dmFyKC0tb3QtZm9vdGVyLXNwYWNlKX0jb25ldHJ1c3QtcGMtc2RrLm90LWZ0ci1zdGFja2VkICNvdC1wYy1jb250ZW50e2JvdHRvbTp2YXIoLS1vdC1mb290ZXItc3BhY2UpfSNvbmV0cnVzdC1wYy1zZGsub3QtZnRyLXN0YWNrZWQgLm90LXBjLWZvb3RlciBidXR0b257bWFyZ2luLWxlZnQ6MTVweCAhaW1wb3J0YW50O21hcmdpbi1yaWdodDoxNXB4ICFpbXBvcnRhbnQ7d2lkdGg6Y2FsYygxMDAlIC0gMzNweCk7bWF4LXdpZHRoOm5vbmV9I29uZXRydXN0LXBjLXNkay5vdC1mdHItc3RhY2tlZCAub3QtcGMtZm9vdGVyIGJ1dHRvbjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXItbG9nb3toZWlnaHQ6MzBweDt3aWR0aDoxMDAlO3RleHQtYWxpZ246cmlnaHQ7YmFja2dyb3VuZDojZjRmNGY0fSNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLWZvb3Rlci1sb2dvIGF7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDoycHg7bWFyZ2luLXJpZ2h0OjEwcHh9I29uZXRydXN0LXBjLXNkayAub3QtcGMtZm9vdGVyLWxvZ28gaW1nLCNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLWZvb3Rlci1sb2dvIHN2Z3ttYXJnaW4tdG9wOjNweH0jb25ldHJ1c3QtcGMtc2RrW2Rpcj1ydGxdIC5vdC1wYy1mb290ZXItbG9nb3tkaXJlY3Rpb246cnRsfSNvbmV0cnVzdC1wYy1zZGtbZGlyPXJ0bF0gLm90LXBjLWZvb3Rlci1sb2dvIGF7bWFyZ2luLXJpZ2h0OjI1cHh9I29uZXRydXN0LXBjLXNkayAub3QtdGdse2Zsb2F0OnJpZ2h0O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0jb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wgaW5wdXQ6Y2hlY2tlZCsub3Qtc3dpdGNoIC5vdC1zd2l0Y2gtbm9ie2JhY2tncm91bmQtY29sb3I6IzQ2ODI1NDtib3JkZXI6MXB4IHNvbGlkICNmZmZ9I29uZXRydXN0LXBjLXNkayAub3QtdGdsIGlucHV0OmNoZWNrZWQrLm90LXN3aXRjaCAub3Qtc3dpdGNoLW5vYjpiZWZvcmV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjBweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjBweCk7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmfSNvbmV0cnVzdC1wYy1zZGsgLm90LXRnbCBpbnB1dDpmb2N1cysub3Qtc3dpdGNoe291dGxpbmU6IzAwMCBzb2xpZCAxcHh9I29uZXRydXN0LXBjLXNkayAub3Qtc3dpdGNoe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjQ1cHg7aGVpZ2h0OjI1cHh9I29uZXRydXN0LXBjLXNkayAub3Qtc3dpdGNoLW5vYntwb3NpdGlvbjphYnNvbHV0ZTtjdXJzb3I6cG9pbnRlcjt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtiYWNrZ3JvdW5kLWNvbG9yOiM3Njc2NzY7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO3RyYW5zaXRpb246YWxsIC4ycyBlYXNlLWluIDBzOy1tb3otdHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4gMHM7LW8tdHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4gMHM7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbiAwcztib3JkZXItcmFkaXVzOjIwcHh9I29uZXRydXN0LXBjLXNkayAub3Qtc3dpdGNoLW5vYjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDpcIlwiO2hlaWdodDoxOHB4O3dpZHRoOjE4cHg7Ym90dG9tOjNweDtsZWZ0OjNweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LXdlYmtpdC10cmFuc2l0aW9uOi40czt0cmFuc2l0aW9uOi40cztib3JkZXItcmFkaXVzOjIwcHh9I29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGlucHV0e3dpZHRoOjI4cHggIWltcG9ydGFudDtoZWlnaHQ6MjhweCAhaW1wb3J0YW50fSNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBpbnB1dDpjaGVja2VkfmxhYmVsOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojMzg2MGJlfSNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBpbnB1dCtsYWJlbDo6YWZ0ZXJ7Y29udGVudDpub25lO2NvbG9yOiNmZmZ9I29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGlucHV0OmNoZWNrZWQrbGFiZWw6OmFmdGVye2NvbnRlbnQ6XCJcIn0jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXQ6Zm9jdXMrbGFiZWw6OmJlZm9yZXtvdXRsaW5lLXN0eWxlOnNvbGlkO291dGxpbmUtd2lkdGg6MnB4O291dGxpbmUtc3R5bGU6YXV0b30jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXRbYXJpYS1jaGVja2VkPW1peGVkXX5sYWJlbDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzM4NjBiZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXRbYXJpYS1jaGVja2VkPW1peGVkXStsYWJlbDo6YWZ0ZXJ7Y29udGVudDpcIlwifSNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBsYWJlbHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctbGVmdDozMHB4O2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjUwMDttaW4taGVpZ2h0OjI4cHh9I29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OlwiXCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czozcHh9I29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmV7aGVpZ2h0OjE4cHg7d2lkdGg6MThweDtib3JkZXI6MXB4IHNvbGlkICMzODYwYmU7bGVmdDo0cHg7dG9wOjRweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggbGFiZWw6OmFmdGVye2hlaWdodDo1cHg7d2lkdGg6OXB4O2JvcmRlci1sZWZ0OjNweCBzb2xpZDtib3JkZXItYm90dG9tOjNweCBzb2xpZDt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7bGVmdDo4cHg7dG9wOjhweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1sYWJlbC10eHR7ZGlzcGxheTpub25lfSNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBpbnB1dCwjb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wgaW5wdXR7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3dpZHRoOjA7aGVpZ2h0OjB9I29uZXRydXN0LXBjLXNkayAub3QtYXJ3LWNudHJ7ZmxvYXQ6cmlnaHQ7cG9zaXRpb246cmVsYXRpdmU7cG9pbnRlci1ldmVudHM6bm9uZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hcnctY250ciAub3QtYXJ3e3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7bWFyZ2luLWxlZnQ6NXB4O2NvbG9yOmRpbWdyYXk7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMTUwbXMgZWFzZS1pbiAwczstbW96LXRyYW5zaXRpb246YWxsIDE1MG1zIGVhc2UtaW4gMHM7LW8tdHJhbnNpdGlvbjphbGwgMTUwbXMgZWFzZS1pbiAwczt0cmFuc2l0aW9uOmFsbCAxNTBtcyBlYXNlLWluIDBzfSNvbmV0cnVzdC1wYy1zZGsgaW5wdXQ6Y2hlY2tlZH4ub3QtYWNjLWhkciAub3QtYXJ3LCNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV1+Lm90LWFjYy1oZHIgLm90LWFydy1jbnRyIHN2Z3t0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTstby10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzKy5vdC1hY2MtaGRye291dGxpbmU6IzAwMCAxcHggc29saWR9I29uZXRydXN0LXBjLXNkayAub3QtdGdsLWNudHIsI29uZXRydXN0LXBjLXNkayAub3QtYXJ3LWNudHJ7ZGlzcGxheTppbmxpbmUtYmxvY2t9I29uZXRydXN0LXBjLXNkayAub3QtdGdsLWNudHJ7ZmxvYXQ6cmlnaHQ7bWFyZ2luLXRvcDoycHh9I29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3QtdGdsLWNudHJ7bWFyZ2luLXRvcDoxMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFsd2F5cy1hY3RpdmUtc3ViZ3JvdXB7d2lkdGg6YXV0bztwYWRkaW5nLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7dG9wOjNweDtwb3NpdGlvbjpyZWxhdGl2ZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1sYWJlbC1zdGF0dXN7Zm9udC1zaXplOi43NWVtO2Rpc3BsYXk6bm9uZTtmb250LXNpemU6Ljc1ZW07cG9zaXRpb246cmVsYXRpdmU7dG9wOjJweDtwYWRkaW5nLXJpZ2h0OjVweDtmbG9hdDpsZWZ0fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFydy1jbnRye21hcmdpbi10b3A6LTFweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hcnctY250ciBzdmd7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlLWluIDBzOy1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZS1pbiAwczstby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlLWluIDBzO3RyYW5zaXRpb246YWxsIDMwMG1zIGVhc2UtaW4gMHM7aGVpZ2h0OjEwcHg7d2lkdGg6MTBweH0jb25ldHJ1c3QtcGMtc2RrIGlucHV0OmNoZWNrZWR+Lm90LWFjYy1oZHIgLm90LWFyd3t0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTstby10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hcnd7d2lkdGg6MTBweDttYXJnaW4tbGVmdDoxNXB4O3RyYW5zaXRpb246YWxsIDMwMG1zIGVhc2UtaW4gMHM7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlLWluIDBzOy1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZS1pbiAwczstby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlLWluIDBzfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZsc3QtY250cnttYXJnaW4tYm90dG9tOjB9I29uZXRydXN0LXBjLXNkayAub3QtaGxzdC1jbnRye21hcmdpbi10b3A6NXB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCV9I29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktdmVuZG9ycy1saXN0LWhhbmRsZXIsI29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktdmVuZG9ycy1saXN0LWhhbmRsZXIrYSwjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1ob3N0LWxpc3QtaGFuZGxlcntjbGVhcjpib3RoO2NvbG9yOiMzODYwYmU7bWFyZ2luLWxlZnQ6MDtmb250LXNpemU6LjgxM2VtO3RleHQtZGVjb3JhdGlvbjpub25lO2Zsb2F0OmxlZnQ7b3ZlcmZsb3c6aGlkZGVufSNvbmV0cnVzdC1wYy1zZGsgLmNhdGVnb3J5LXZlbmRvcnMtbGlzdC1oYW5kbGVyOmhvdmVyLCNvbmV0cnVzdC1wYy1zZGsgLmNhdGVnb3J5LXZlbmRvcnMtbGlzdC1oYW5kbGVyK2E6aG92ZXIsI29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktaG9zdC1saXN0LWhhbmRsZXI6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lfSNvbmV0cnVzdC1wYy1zZGsgLmNhdGVnb3J5LXZlbmRvcnMtbGlzdC1oYW5kbGVyK2F7Y2xlYXI6bm9uZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12bHN0LWNudHIgc3ZnLm90LWV4dC1sbmssI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWhkciBzdmcub3QtZXh0LWxuaywjb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWhkciBzdmcub3QtZXh0LWxuaywjb25ldHJ1c3QtcGMtc2RrIC5vdC1jYXQtZ3JwIHN2Zy5vdC1leHQtbG5re2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxM3B4O3dpZHRoOjEzcHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O21hcmdpbi1sZWZ0OjFweDtjdXJzb3I6cG9pbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9I29uZXRydXN0LXBjLXNkayAub3QtdmVuLWhkciBzdmcub3QtZXh0LWxua3ttYXJnaW4tYm90dG9tOi0xcHh9I29uZXRydXN0LXBjLXNkayAuYmFjay1idG4taGFuZGxlcntmb250LXNpemU6MWVtO3RleHQtZGVjb3JhdGlvbjpub25lfSNvbmV0cnVzdC1wYy1zZGsgLmJhY2stYnRuLWhhbmRsZXI6aG92ZXJ7b3BhY2l0eTouNn0jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtdGl0bGUgaDMsI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LXRpdGxlIHBbYXJpYS1sZXZlbD1cIjNcIl17ZGlzcGxheTppbmxpbmUtYmxvY2s7d29yZC1icmVhazpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkO21hcmdpbi1ib3R0b206MDtjb2xvcjojNjU2NTY1O2ZvbnQtc2l6ZToxZW07Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW4tbGVmdDoxNXB4fSNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC10aXRsZXttYXJnaW46MTBweCAwIDEwcHggMHB4O2ZvbnQtc2l6ZToxZW07dGV4dC1hbGlnbjpsZWZ0fSNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWhkcnttYXJnaW46MCAwIDAgMzBweDtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvfSNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWhkciBpbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6IzcwNzA3MDtmb250LXN0eWxlOml0YWxpY30jb25ldHJ1c3QtcGMtc2RrICN2ZW5kb3Itc2VhcmNoLWhhbmRsZXJ7aGVpZ2h0OjMxcHg7d2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjUwcHg7Zm9udC1zaXplOi44ZW07cGFkZGluZy1yaWdodDozNXB4O3BhZGRpbmctbGVmdDoxNXB4O2Zsb2F0OmxlZnQ7bWFyZ2luLWxlZnQ6MTVweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbmFtZXtkaXNwbGF5OmJsb2NrO3dpZHRoOmF1dG87cGFkZGluZy1yaWdodDo1cHh9I29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudHtvdmVyZmxvdy15OmF1dG87bWFyZ2luLWxlZnQ6MjBweDttYXJnaW4tcmlnaHQ6N3B4O3dpZHRoOmNhbGMoMTAwJSAtIDI3cHgpO21heC1oZWlnaHQ6Y2FsYygxMDAlIC0gODBweCk7aGVpZ2h0OjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApfSNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdHt3aWR0aDoxMDAlO2JvdHRvbToxMDBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NjBweH0jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3Q6bm90KC5vdC1lbmJsLWNocikgLm90LXRnbC1jbnRyIC5vdC1hcnctY250ciwjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3Q6bm90KC5vdC1lbmJsLWNocikgLm90LXRnbC1jbnRyIC5vdC1hcnctY250ciAqe3Zpc2liaWxpdHk6aGlkZGVufSNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtdGdsLWNudHJ7cmlnaHQ6MTJweDtwb3NpdGlvbjphYnNvbHV0ZX0jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LWFydy1jbnRye2Zsb2F0OnJpZ2h0O3Bvc2l0aW9uOnJlbGF0aXZlfSNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtYXJ3e21hcmdpbi1sZWZ0OjEwcHh9I29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC1hY2MtaGRye292ZXJmbG93OmhpZGRlbjtjdXJzb3I6cG9pbnRlcn0jb25ldHJ1c3QtcGMtc2RrIC5vdC12bHN0LWNudHJ7b3ZlcmZsb3c6aGlkZGVufSNvbmV0cnVzdC1wYy1zZGsgI290LXNlbC1ibGt7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCU7cG9zaXRpb246c3RpY2t5O3Bvc2l0aW9uOi13ZWJraXQtc3RpY2t5O3RvcDowO3otaW5kZXg6M30jb25ldHJ1c3QtcGMtc2RrICNvdC1iYWNrLWFyd3toZWlnaHQ6MTJweDt3aWR0aDoxMnB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWxzdC1zdWJoZHJ7d2lkdGg6MTAwJTtkaXNwbGF5OmlubGluZS1ibG9ja30jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWFyY2gtY250cntmbG9hdDpsZWZ0O3dpZHRoOjc4JTtwb3NpdGlvbjpyZWxhdGl2ZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWFyY2gtY250cj5zdmd7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtwb3NpdGlvbjphYnNvbHV0ZTtmbG9hdDpsZWZ0O3JpZ2h0Oi0xNXB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWZsdHItY250cntmbG9hdDpyaWdodDtyaWdodDo1MHB4O3Bvc2l0aW9uOnJlbGF0aXZlfSNvbmV0cnVzdC1wYy1zZGsgI290LWZpbHRlci1saXN0LWhlYWRlcnttYXJnaW4tdG9wOjIwcHg7bWFyZ2luLWJvdHRvbToxMHB4O2Zsb2F0OmxlZnQ7bWF4LXdpZHRoOjE1MHB4O3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMzODYwYmU7Zm9udC1zaXplOi45ZW07Zm9udC13ZWlnaHQ6Ym9sZDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7cGFkZGluZzoxcHggMXB4IDFweCAxNXB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0jb25ldHJ1c3QtcGMtc2RrICNmaWx0ZXItYnRuLWhhbmRsZXJ7YmFja2dyb3VuZC1jb2xvcjojMzg2MGJlO2JvcmRlci1yYWRpdXM6MTdweDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMnB4O2hlaWdodDozMnB4Oy1tb3otdHJhbnNpdGlvbjouMXMgZWFzZTstby10cmFuc2l0aW9uOi4xcyBlYXNlOy13ZWJraXQtdHJhbnNpdGlvbjoxcyBlYXNlO3RyYW5zaXRpb246LjFzIGVhc2U7cGFkZGluZzowO21hcmdpbjowfSNvbmV0cnVzdC1wYy1zZGsgI2ZpbHRlci1idG4taGFuZGxlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzODYwYmV9I29uZXRydXN0LXBjLXNkayAjZmlsdGVyLWJ0bi1oYW5kbGVyIHN2Z3t3aWR0aDoxMnB4O2hlaWdodDoxMnB4O21hcmdpbjozcHggMTBweCAwIDEwcHg7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpzdGF0aWM7cmlnaHQ6YXV0bzt0b3A6YXV0b30jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbGluaywjb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbGVnY2xhaW0tbGlua3tjb2xvcjojMzg2MGJlO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0OjEwMDtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXRvcDoxMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMSUpOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMSUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDElKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMSUpO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6Mn0jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbGluayAqLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1sZWdjbGFpbS1saW5rICp7Zm9udC1zaXplOmluaGVyaXR9I29uZXRydXN0LXBjLXNkayAub3QtdmVuLWxpbms6aG92ZXIsI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWxlZ2NsYWltLWxpbms6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4taGRye3dpZHRoOmNhbGMoMTAwJSAtIDE2MHB4KTtoZWlnaHQ6YXV0bztmbG9hdDpsZWZ0O3dvcmQtYnJlYWs6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZy1ib3R0b206M3B4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1saW5rLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1sZWdjbGFpbS1saW5re2xldHRlci1zcGFjaW5nOi4wM2VtO2ZvbnQtc2l6ZTouNzVlbTtmb250LXdlaWdodDo0MDB9I29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHN7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZC1jb2xvcjojZjhmOGY4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIGxpOmZpcnN0LWNoaWxkIHA6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcDpub25lfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYzpub3QoOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkICFpbXBvcnRhbnR9I29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgLm90LXZlbi1kaXNjOm50aC1jaGlsZChuKzMpIHB7ZGlzcGxheTppbmxpbmUtYmxvY2t9I29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgLm90LXZlbi1kaXNjOm50aC1jaGlsZChuKzMpIHA6bnRoLW9mLXR5cGUob2RkKXt3aWR0aDozMCV9I29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgLm90LXZlbi1kaXNjOm50aC1jaGlsZChuKzMpIHA6bnRoLW9mLXR5cGUoZXZlbil7d2lkdGg6NTAlO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZH0jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyAub3QtdmVuLWRpc2MgcCwjb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyAub3QtdmVuLWRpc2MgaDV7cGFkZGluZy10b3A6NXB4O3BhZGRpbmctYm90dG9tOjVweDtkaXNwbGF5OmJsb2NrfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYyBoNSwjb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyAub3QtdmVuLWRpc2MgcFthcmlhLWxldmVsPVwiNVwiXXtkaXNwbGF5OmlubGluZS1ibG9ja30jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyAub3QtdmVuLWRpc2MgcDpudGgtbGFzdC1jaGlsZCgtbisxKXtwYWRkaW5nLWJvdHRvbToxMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYyBwOm50aC1jaGlsZCgtbisyKTpub3QoLmRpc2MtcHVyKTpub3QoW3JvbGU9aGVhZGluZ10pe3BhZGRpbmctdG9wOjEwcHh9I29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgLm90LXZlbi1kaXNjIC5kaXNjLXB1ci1jb250e2Rpc3BsYXk6aW5saW5lfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYyAuZGlzYy1wdXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NTAlICFpbXBvcnRhbnQ7d29yZC1icmVhazpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkO2xlZnQ6Y2FsYygzMCUgKyAxN3B4KX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyAub3QtdmVuLWRpc2MgLmRpc2MtcHVyOm50aC1jaGlsZCgtbisxKXtwb3NpdGlvbjpzdGF0aWN9I29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgcCwjb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyBoNSwjb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyBzcGFue2ZvbnQtc2l6ZTouNjllbTt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ246bWlkZGxlO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZDttYXJnaW46MDtwYWRkaW5nLWJvdHRvbToxMHB4O3BhZGRpbmctbGVmdDoxNXB4O2NvbG9yOiMyZTM2NDR9I29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgaDUsI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgcFthcmlhLWxldmVsPVwiNVwiXXtwYWRkaW5nLXRvcDo1cHg7bGluZS1oZWlnaHQ6MS41fSNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIHNwYW57Y29sb3I6ZGltZ3JheTtwYWRkaW5nOjA7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9I29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgLm90LXZlbi1wdXIgaDUsI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgLm90LXZlbi1wdXIgcFthcmlhLWxldmVsPVwiNVwiXXtib3JkZXItdG9wOjFweCBzb2xpZCAjZTllOWU5O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOWU5ZTk7cGFkZGluZy1ib3R0b206NXB4O21hcmdpbi1ib3R0b206NXB4O2ZvbnQtd2VpZ2h0OmJvbGR9I29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LXNlbC1hbGx7ZmxvYXQ6cmlnaHQ7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXJpZ2h0OjQycHg7dG9wOjEwcHh9I29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LXNlbC1hbGwgaW5wdXRbdHlwZT1jaGVja2JveF17d2lkdGg6YXV0bztoZWlnaHQ6YXV0b30jb25ldHJ1c3QtcGMtc2RrICNvdC1ob3N0LWxzdCAub3Qtc2VsLWFsbCBsYWJlbHtoZWlnaHQ6MjBweDt3aWR0aDoyMHB4O3BhZGRpbmctbGVmdDowcHh9I29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LWFjYy10eHR7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjk1JX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWhkcntwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDpjYWxjKDEwMCUgLSAxMjVweCk7ZmxvYXQ6bGVmdH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUsI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1kZXNje2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjkwJX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWV7cG9pbnRlci1ldmVudHM6bm9uZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWhkcj5he3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Zm9udC1zaXplOi44MmVtO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjttYXJnaW4tYm90dG9tOjVweDtwb2ludGVyLWV2ZW50czppbml0aWFsfSNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtbmFtZSthe21hcmdpbi10b3A6NXB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtbmFtZSwjb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUgYSwjb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWRlc2MsI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1pbmZve2NvbG9yOmRpbWdyYXk7d29yZC1icmVhazpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkfSNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtbmFtZSwjb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUgYXtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZTouODJlbTtsaW5lLWhlaWdodDoxLjN9I29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1uYW1lIGF7Zm9udC1zaXplOjFlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWV4cGFuZHttYXJnaW4tdG9wOjNweDttYXJnaW4tYm90dG9tOjNweDtjbGVhcjpib3RoO2Rpc3BsYXk6YmxvY2s7Y29sb3I6IzM4NjBiZTtmb250LXNpemU6LjcyZW07Zm9udC13ZWlnaHQ6bm9ybWFsfSNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtZXhwYW5kICp7Zm9udC1zaXplOmluaGVyaXR9I29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1kZXNjLCNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtaW5mb3tmb250LXNpemU6LjY4OGVtO2xpbmUtaGVpZ2h0OjEuNDtmb250LXdlaWdodDpub3JtYWx9I29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1kZXNje21hcmdpbi10b3A6MTBweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW9wdHttYXJnaW46MDtmb250LXNpemU6aW5oZXJpdDtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlfSNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3Qtb3B0IGxpPmRse2ZvbnQtc2l6ZTouOGVtO21hcmdpbjo1cHggMH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW9wdCBsaT5kbD5kaXZ7cGFkZGluZzo1cHggMDtkaXNwbGF5OmZsZXh9I29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1vcHQgbGk+ZGw+ZGl2IGR0e3dpZHRoOjMwJTtmbG9hdDpsZWZ0fSNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3Qtb3B0IGxpPmRsPmRpdiBkZHt3aWR0aDo3MCU7ZmxvYXQ6bGVmdDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d29yZC13cmFwOmJyZWFrLXdvcmR9I29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1pbmZve2JvcmRlcjpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOmNhbGMoMTAwJSAtIDEwcHgpO3BhZGRpbmc6MTBweDttYXJnaW4tYm90dG9tOjEwcHg7YmFja2dyb3VuZC1jb2xvcjojZjhmOGY4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtaW5mbz5kaXZ7b3ZlcmZsb3c6YXV0b30jb25ldHJ1c3QtcGMtc2RrICNuby1yZXN1bHRze3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6MzBweH0jb25ldHJ1c3QtcGMtc2RrICNuby1yZXN1bHRzIHB7Zm9udC1zaXplOjFlbTtjb2xvcjojMmUzNjQ0O3dvcmQtYnJlYWs6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZH0jb25ldHJ1c3QtcGMtc2RrICNuby1yZXN1bHRzIHAgc3Bhbntmb250LXdlaWdodDpib2xkfSNvbmV0cnVzdC1wYy1zZGsgI290LWZsdHItbW9kYWx7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0bztkaXNwbGF5Om5vbmU7LW1vei10cmFuc2l0aW9uOi4ycyBlYXNlOy1vLXRyYW5zaXRpb246LjJzIGVhc2U7LXdlYmtpdC10cmFuc2l0aW9uOjJzIGVhc2U7dHJhbnNpdGlvbjouMnMgZWFzZTtvdmVyZmxvdzpoaWRkZW47b3BhY2l0eToxO3JpZ2h0OjB9I29uZXRydXN0LXBjLXNkayAjb3QtZmx0ci1tb2RhbCAub3QtbGFiZWwtdHh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZTouODVlbTtjb2xvcjpkaW1ncmF5fSNvbmV0cnVzdC1wYy1zZGsgI290LWZsdHItY250e3otaW5kZXg6MjE0NzQ4MzY0NjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjkwJTttYXgtaGVpZ2h0OjMwMHB4O3dpZHRoOjMyNXB4O2xlZnQ6MjEwcHg7bWFyZ2luLXRvcDoxMHB4O21hcmdpbi1ib3R0b206MjBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7Ym9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3gtc2hhZG93OjBweCAwcHggMTJweCAycHggI2M3YzVjNzstbW96LWJveC1zaGFkb3c6MHB4IDBweCAxMnB4IDJweCAjYzdjNWM3O2JveC1zaGFkb3c6MHB4IDBweCAxMnB4IDJweCAjYzdjNWM3fSNvbmV0cnVzdC1wYy1zZGsgLm90LWZsdHItc2NybGNudHtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47Y2xlYXI6Ym90aDttYXgtaGVpZ2h0OmNhbGMoMTAwJSAtIDYwcHgpfSNvbmV0cnVzdC1wYy1zZGsgI290LWFuY2hvcntib3JkZXI6MTJweCBzb2xpZCByZ2JhKDAsMCwwLDApO2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjIxNDc0ODM2NDc7cmlnaHQ6NTVweDt0b3A6NzVweDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstby10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LXdlYmtpdC1ib3gtc2hhZG93Oi0zcHggLTNweCA1cHggLTJweCAjYzdjNWM3Oy1tb3otYm94LXNoYWRvdzotM3B4IC0zcHggNXB4IC0ycHggI2M3YzVjNztib3gtc2hhZG93Oi0zcHggLTNweCA1cHggLTJweCAjYzdjNWM3fSNvbmV0cnVzdC1wYy1zZGsgLm90LWZsdHItYnRuc3ttYXJnaW4tbGVmdDoxNXB4fSNvbmV0cnVzdC1wYy1zZGsgI2ZpbHRlci1hcHBseS1oYW5kbGVye21hcmdpbi1yaWdodDoxNXB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWZsdHItb3B0e21hcmdpbi1ib3R0b206NXB4O21hcmdpbi1sZWZ0OjE1cHg7bWluLWhlaWdodDoyMHB4O3dpZHRoOjc1JTtwb3NpdGlvbjpyZWxhdGl2ZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1mbHRyLW9wdCBwe2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowO2ZvbnQtc2l6ZTouOWVtO2NvbG9yOiMyZTM2NDR9I29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsIHNwYW57Zm9udC1zaXplOi44NWVtO2NvbG9yOmRpbWdyYXl9I29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVsOjphZnRlcntjb250ZW50Om5vbmU7Y29sb3I6I2ZmZn0jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDo6YWZ0ZXJ7Y29udGVudDpcIlwifSNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XVthcmlhLWNoZWNrZWQ9bWl4ZWRdK2xhYmVsOjphZnRlcntjb250ZW50OlwiXCJ9I29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzK2xhYmVsOjpiZWZvcmV7b3V0bGluZS1zdHlsZTpzb2xpZDtvdXRsaW5lLXdpZHRoOjJweDtvdXRsaW5lLXN0eWxlOmF1dG99I29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLXZlbmNudHIsI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWFkdGx2ZW5jbnRyLCNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1ob3N0Y250ciwjb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtbGljbnRyLCNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1nbnZlbmNudHJ7cmlnaHQ6MTVweDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2Zsb2F0OnJpZ2h0fSNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC12ZW5jbnRyIGxhYmVsLCNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1hZHRsdmVuY250ciBsYWJlbCwjb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtaG9zdGNudHIgbGFiZWwsI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWxpY250ciBsYWJlbCwjb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtZ252ZW5jbnRyIGxhYmVse2Zsb2F0OmxlZnQ7cGFkZGluZy1sZWZ0OjB9I29uZXRydXN0LXBjLXNkayAjb3QtdmVuLWxzdDpmaXJzdC1jaGlsZHtib3JkZXItdG9wOjFweCBzb2xpZCAjZTJlMmUyfSNvbmV0cnVzdC1wYy1zZGsgdWx7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MH0jb25ldHJ1c3QtcGMtc2RrIHVsIGxpOm5vdCgub3QtZmx0ci1vcHQpe3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjowO3BhZGRpbmc6MTVweCAxNXB4IDE1cHggMTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTJlMmUyfSNvbmV0cnVzdC1wYy1zZGsgdWwgbGkgaDMsI29uZXRydXN0LXBjLXNkayB1bCBsaSBoNCwjb25ldHJ1c3QtcGMtc2RrIHVsIGxpIHBbYXJpYS1sZXZlbD1cIjNcIl06bm90KC5vdC1ob3N0LW5hbWUsLm90LWhvc3QtZGVzYyksI29uZXRydXN0LXBjLXNkayB1bCBsaSBwW2FyaWEtbGV2ZWw9XCI0XCJdOm5vdCgub3QtaG9zdC1uYW1lLC5vdC1ob3N0LWRlc2Mpe2ZvbnQtc2l6ZTouNzVlbTtjb2xvcjojNjU2NTY1O21hcmdpbjowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjcwJTtoZWlnaHQ6YXV0bzt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d29yZC13cmFwOmJyZWFrLXdvcmR9I29uZXRydXN0LXBjLXNkayB1bCBsaSBwOm5vdChbcm9sZT1oZWFkaW5nXSl7bWFyZ2luOjA7Zm9udC1zaXplOi43ZW19I29uZXRydXN0LXBjLXNkayB1bCBsaSBpbnB1dFt0eXBlPWNoZWNrYm94XXtwb3NpdGlvbjphYnNvbHV0ZTtjdXJzb3I6cG9pbnRlcjt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29wYWNpdHk6MDttYXJnaW46MDt0b3A6MDtsZWZ0OjB9I29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0+YnV0dG9uOmZvY3VzLCNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyPmJ1dHRvbjpmb2N1cywjb25ldHJ1c3QtcGMtc2RrIGxpPmJ1dHRvbjpmb2N1c3tvdXRsaW5lOiMwMDAgc29saWQgMnB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1pdGVtPmJ1dHRvbiwjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250cj5idXR0b24sI29uZXRydXN0LXBjLXNkayBsaT5idXR0b257cG9zaXRpb246YWJzb2x1dGU7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttYXJnaW46MDt0b3A6MDtsZWZ0OjA7ei1pbmRleDoxO21heC13aWR0aDpub25lO2JvcmRlcjpub25lfSNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1pdGVtPmJ1dHRvblthcmlhLWV4cGFuZGVkPWZhbHNlXX4ub3QtYWNjLXR4dCwjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250cj5idXR0b25bYXJpYS1leHBhbmRlZD1mYWxzZV1+Lm90LWFjYy10eHQsI29uZXRydXN0LXBjLXNkayBsaT5idXR0b25bYXJpYS1leHBhbmRlZD1mYWxzZV1+Lm90LWFjYy10eHR7bWFyZ2luLXRvcDowO21heC1oZWlnaHQ6MDtvcGFjaXR5OjA7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCU7dHJhbnNpdGlvbjouMjVzIGVhc2Utb3V0O2Rpc3BsYXk6bm9uZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1jYXQtaXRlbT5idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXX4ub3QtYWNjLXR4dCwjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250cj5idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXX4ub3QtYWNjLXR4dCwjb25ldHJ1c3QtcGMtc2RrIGxpPmJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdfi5vdC1hY2MtdHh0e3RyYW5zaXRpb246LjFzIGVhc2UtaW47bWFyZ2luLXRvcDoxMHB4O3dpZHRoOjEwMCU7b3ZlcmZsb3c6YXV0bztkaXNwbGF5OmJsb2NrfSNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1pdGVtPmJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdfi5vdC1hY2MtZ3JwY250ciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250cj5idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXX4ub3QtYWNjLWdycGNudHIsI29uZXRydXN0LXBjLXNkayBsaT5idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXX4ub3QtYWNjLWdycGNudHJ7d2lkdGg6YXV0bzttYXJnaW4tdG9wOjBweDtwYWRkaW5nLWJvdHRvbToxMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtaXRlbT5idXR0b246Zm9jdXMsI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWl0ZW0+YnV0dG9uOmZvY3Vze291dGxpbmU6MDtib3JkZXI6MnB4IHNvbGlkICMwMDB9I29uZXRydXN0LXBjLXNkayAub3QtaGlkZS1hY2M+YnV0dG9ue3BvaW50ZXItZXZlbnRzOm5vbmV9I29uZXRydXN0LXBjLXNkayAub3QtaGlkZS1hY2MgLm90LXBsdXMtbWludXM+Kiwjb25ldHJ1c3QtcGMtc2RrIC5vdC1oaWRlLWFjYyAub3QtYXJ3LWNudHI+Knt2aXNpYmlsaXR5OmhpZGRlbn0jb25ldHJ1c3QtcGMtc2RrIC5vdC1oaWRlLWFjYyAub3QtYWNjLWhkcnttaW4taGVpZ2h0OjMwcHh9I29uZXRydXN0LXBjLXNkay5vdC1hZGR0bC12ZW5kb3JzICNvdC1sc3QtY250Om5vdCgub3QtaG9zdC1jbnQpe3BhZGRpbmctcmlnaHQ6MTBweDt3aWR0aDpjYWxjKDEwMCUgLSAzN3B4KTttYXJnaW4tdG9wOjEwcHg7bWF4LWhlaWdodDpjYWxjKDEwMCUgLSA5MHB4KX0jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudCkgI290LXNlbC1ibGt7YmFja2dyb3VuZC1jb2xvcjojZjlmOWZjO2JvcmRlcjoxcHggc29saWQgI2UyZTJlMjt3aWR0aDpjYWxjKDEwMCUgLSAycHgpO3BhZGRpbmctYm90dG9tOjVweDtwYWRkaW5nLXRvcDo1cHh9I29uZXRydXN0LXBjLXNkay5vdC1hZGR0bC12ZW5kb3JzICNvdC1sc3QtY250Om5vdCgub3QtaG9zdC1jbnQpICNvdC1zZWwtYmxrLm90LXZuZC1saXN0LWNudHtib3JkZXI6dW5zZXQ7YmFja2dyb3VuZC1jb2xvcjp1bnNldH0jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudCkgI290LXNlbC1ibGsub3Qtdm5kLWxpc3QtY250IC5vdC1zZWwtYWxsLWhkcntkaXNwbGF5Om5vbmV9I29uZXRydXN0LXBjLXNkay5vdC1hZGR0bC12ZW5kb3JzICNvdC1sc3QtY250Om5vdCgub3QtaG9zdC1jbnQpICNvdC1zZWwtYmxrLm90LXZuZC1saXN0LWNudCAub3Qtc2VsLWFsbHtwYWRkaW5nLXJpZ2h0Oi41cmVtfSNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KSAjb3Qtc2VsLWJsay5vdC12bmQtbGlzdC1jbnQgLm90LXNlbC1hbGwgLm90LWNoa2JveHtyaWdodDowfSNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KSAub3Qtc2VsLWFsbHtwYWRkaW5nLXJpZ2h0OjM0cHh9I29uZXRydXN0LXBjLXNkay5vdC1hZGR0bC12ZW5kb3JzICNvdC1sc3QtY250Om5vdCgub3QtaG9zdC1jbnQpIC5vdC1zZWwtYWxsLWNoa2JveHt3aWR0aDphdXRvfSNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KSB1bCBsaXtib3JkZXI6MXB4IHNvbGlkICNlMmUyZTI7bWFyZ2luLWJvdHRvbToxMHB4fSNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KSAub3QtYWNjLWNudHI+Lm90LWFjYy1oZHJ7cGFkZGluZzoxMHB4IDAgMTBweCAxNXB4fSNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAub3Qtc2VsLWFsbC1jaGtib3h7ZmxvYXQ6cmlnaHR9I29uZXRydXN0LXBjLXNkay5vdC1hZGR0bC12ZW5kb3JzIC5vdC1wbHVzLW1pbnVzfi5vdC1zZWwtYWxsLWNoa2JveHtyaWdodDozNHB4fSNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAjb3QtdmVuLWxzdDpmaXJzdC1jaGlsZHtib3JkZXItdG9wOm5vbmV9I29uZXRydXN0LXBjLXNkayAub3QtYWNjLWNudHJ7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlMmUyZTI7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZTJlMmUyO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMmUyZTJ9I29uZXRydXN0LXBjLXNkayAub3QtYWNjLWNudHIgaW5wdXR7ei1pbmRleDoxfSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyPi5vdC1hY2MtaGRye2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmYztwYWRkaW5nOjVweCAwIDVweCAxNXB4O3dpZHRoOmF1dG99I29uZXRydXN0LXBjLXNkayAub3QtYWNjLWNudHI+Lm90LWFjYy1oZHIgLm90LXBsdXMtbWludXN7dmVydGljYWwtYWxpZ246bWlkZGxlO3RvcDphdXRvfSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyPi5vdC1hY2MtaGRyIC5vdC1hcnctY250cntyaWdodDoxMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyPi5vdC1hY2MtaGRyIGlucHV0e3otaW5kZXg6Mn0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ci5vdC1hZGQtdGVjaCAub3QtYWNjLWhkcntwYWRkaW5nOjEwcHggMCAxMHB4IDE1cHh9I29uZXRydXN0LXBjLXNkayAub3QtYWNjLWNudHI+aW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZH4ub3QtYWNjLWhkcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTJlMmUyfSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyPi5vdC1hY2MtdHh0e3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciBidXR0b25bYXJpYS1leHBhbmRlZD10cnVlXX4ub3QtYWNjLXR4dHt3aWR0aDphdXRvfSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyIC5vdC1hZGR0bC12ZW5ib3h7ZGlzcGxheTpub25lfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZsc3QtY250cnttYXJnaW4tYm90dG9tOjA7d2lkdGg6MTAwJX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW5zZWMtdGl0bGV7Zm9udC1zaXplOi44MTNlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmUtYmxvY2t9I29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktdmVuZG9ycy1saXN0LWhhbmRsZXIsI29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktdmVuZG9ycy1saXN0LWhhbmRsZXIrYXttYXJnaW4tbGVmdDowO21hcmdpbi10b3A6MTBweH0jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtdmVuY250ci5saW5lLXRocm91Z2ggbGFiZWw6OmFmdGVyLCNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1hZHRsdmVuY250ci5saW5lLXRocm91Z2ggbGFiZWw6OmFmdGVyLCNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1saWNudHIubGluZS10aHJvdWdoIGxhYmVsOjphZnRlciwjb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtaG9zdGNudHIubGluZS10aHJvdWdoIGxhYmVsOjphZnRlciwjb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtZ252ZW5jbnRyLmxpbmUtdGhyb3VnaCBsYWJlbDo6YWZ0ZXJ7aGVpZ2h0OmF1dG87Ym9yZGVyLWxlZnQ6MDt0cmFuc2Zvcm06bm9uZTstby10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTtsZWZ0OjlweDt0b3A6MTJweH0jb25ldHJ1c3QtcGMtc2RrICNvdC1jYXRlZ29yeS10aXRsZXtmbG9hdDpsZWZ0O3BhZGRpbmctYm90dG9tOjEwcHg7Zm9udC1zaXplOjFlbTt3aWR0aDoxMDAlfSNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1ncnB7bWFyZ2luLXRvcDoxMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1pdGVte2xpbmUtaGVpZ2h0OjEuMTttYXJnaW4tdG9wOjEwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1idG4tY29udGFpbmVye3RleHQtYWxpZ246cmlnaHR9I29uZXRydXN0LXBjLXNkayAub3QtYnRuLWNvbnRhaW5lciBidXR0b257ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOi43NWVtO21hcmdpbi10b3A6MTVweDttaW4taGVpZ2h0OjQwcHh9I29uZXRydXN0LXBjLXNkayAub3QtYnRuLWNvbnRhaW5lci5vdC1idXR0b24tb3JkZXItY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9I29uZXRydXN0LXBjLXNkayAub3QtYnRuLWNvbnRhaW5lci5vdC1idXR0b24tb3JkZXItY29udGFpbmVyICpbY2xhc3MqPW90LWJ1dHRvbi1vcmRlci1dOm50aC1vZi10eXBlKDEpe21hcmdpbi1yaWdodDphdXRvO21hcmdpbi1sZWZ0OjE1cHh9I29uZXRydXN0LXBjLXNkayAub3QtYnRuLWNvbnRhaW5lci5vdC1idXR0b24tb3JkZXItY29udGFpbmVyICpbY2xhc3MqPW90LWJ1dHRvbi1vcmRlci1dOm50aC1vZi10eXBlKDIpLCNvbmV0cnVzdC1wYy1zZGsgLm90LWJ0bi1jb250YWluZXIub3QtYnV0dG9uLW9yZGVyLWNvbnRhaW5lciAqW2NsYXNzKj1vdC1idXR0b24tb3JkZXItXTpudGgtb2YtdHlwZSgzKXttYXJnaW4tcmlnaHQ6MTVweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1idG4tY29udGFpbmVyLm90LWJ1dHRvbi1vcmRlci1jb250YWluZXIub3Qtc3RhY2stYnV0dG9uc3tmbGV4OjE7d2lkdGg6YXV0bztnYXA6LjVyZW07aGVpZ2h0OjEwMCU7cGFkZGluZzowIDMwcHg7ZmxleC13cmFwOm5vd3JhcDttYXJnaW4tdG9wOi43NXJlbTthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbTouNzVyZW07ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9I29uZXRydXN0LXBjLXNkayAub3QtYnRuLWNvbnRhaW5lci5vdC1idXR0b24tb3JkZXItY29udGFpbmVyLm90LXN0YWNrLWJ1dHRvbnMgLm90LXBjLXJlZnVzZS1hbGwtaGFuZGxlciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1idG4tY29udGFpbmVyLm90LWJ1dHRvbi1vcmRlci1jb250YWluZXIub3Qtc3RhY2stYnV0dG9ucyAuc2F2ZS1wcmVmZXJlbmNlLWJ0bi1oYW5kbGVyLCNvbmV0cnVzdC1wYy1zZGsgLm90LWJ0bi1jb250YWluZXIub3QtYnV0dG9uLW9yZGVyLWNvbnRhaW5lci5vdC1zdGFjay1idXR0b25zICNhY2NlcHQtcmVjb21tZW5kZWQtYnRuLWhhbmRsZXJ7d2lkdGg6MTAwJTttYXJnaW46MCAhaW1wb3J0YW50fSNvbmV0cnVzdC1wYy1zZGsgI2Nsb3NlLXBjLWJ0bi1oYW5kbGVyLm90LWNsb3NlLWljb257cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7cmlnaHQ6NHB4O3otaW5kZXg6MTtwYWRkaW5nOjA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlcjpub25lfSNvbmV0cnVzdC1wYy1zZGsgI2Nsb3NlLXBjLWJ0bi1oYW5kbGVyLm90LWNsb3NlLWljb24gc3Zne2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwcHg7d2lkdGg6MTBweH0jb25ldHJ1c3QtcGMtc2RrICNjbGVhci1maWx0ZXJzLWhhbmRsZXJ7bWFyZ2luLXRvcDoyMHB4O21hcmdpbi1ib3R0b206MTBweDtmbG9hdDpyaWdodDttYXgtd2lkdGg6MjAwcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6IzM4NjBiZTtmb250LXNpemU6LjllbTtmb250LXdlaWdodDpib2xkO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtwYWRkaW5nOjFweH0jb25ldHJ1c3QtcGMtc2RrICNjbGVhci1maWx0ZXJzLWhhbmRsZXI6aG92ZXJ7Y29sb3I6IzIyODVmN30jb25ldHJ1c3QtcGMtc2RrICNjbGVhci1maWx0ZXJzLWhhbmRsZXI6Zm9jdXN7b3V0bGluZTojMDAwIHNvbGlkIDFweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1lbmJsLWNociBoNH4ub3QtdGdsLCNvbmV0cnVzdC1wYy1zZGsgLm90LWVuYmwtY2hyIGg0fi5vdC1hbHdheXMtYWN0aXZle3JpZ2h0OjQ1cHh9I29uZXRydXN0LXBjLXNkayAub3QtZW5ibC1jaHIgaDR+Lm90LXRnbCsub3QtdGdse3JpZ2h0OjEyMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWVuYmwtY2hyIC5vdC1wbGktaGRyLm90LWxlZy1ib3JkZXItY29sb3Igc3BhbjpmaXJzdC1jaGlsZHt3aWR0aDo5MHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWVuYmwtY2hyIGxpLm90LXN1YmdycD5oNSsub3QtdGdsLWNudHIsI29uZXRydXN0LXBjLXNkayAub3QtZW5ibC1jaHIgbGkub3Qtc3ViZ3JwPnBbYXJpYS1sZXZlbD1cIjVcIl0rLm90LXRnbC1jbnRye3BhZGRpbmctcmlnaHQ6MjVweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbHVzLW1pbnVze3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjEuNWVtO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo1cHg7dG9wOjNweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbHVzLW1pbnVzIHNwYW57cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDojMjc0NTVjO2JvcmRlci1yYWRpdXM6MXB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXBsdXMtbWludXMgc3BhbjpmaXJzdC1vZi10eXBle3RvcDoyNSU7Ym90dG9tOjI1JTt3aWR0aDoxMCU7bGVmdDo0NSV9I29uZXRydXN0LXBjLXNkayAub3QtcGx1cy1taW51cyBzcGFuOmxhc3Qtb2YtdHlwZXtsZWZ0OjI1JTtyaWdodDoyNSU7aGVpZ2h0OjEwJTt0b3A6NDUlfSNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV1+Lm90LWFjYy1oZHIgLm90LWFydywjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdfi5vdC1hY2MtaGRyIC5vdC1wbHVzLW1pbnVzIHNwYW46Zmlyc3Qtb2YtdHlwZSwjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdfi5vdC1hY2MtaGRyIC5vdC1wbHVzLW1pbnVzIHNwYW46bGFzdC1vZi10eXBle3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfSNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV1+Lm90LWFjYy1oZHIgLm90LXBsdXMtbWludXMgc3BhbjpsYXN0LW9mLXR5cGV7bGVmdDo1MCU7cmlnaHQ6NTAlfSNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC12ZW5jbnRyIGxhYmVsLCNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1hZHRsdmVuY250ciBsYWJlbCwjb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtaG9zdGNudHIgbGFiZWwsI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWxpY250ciBsYWJlbHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoyMHB4O2hlaWdodDoyMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtaXRlbSAub3QtcGx1cy1taW51cywjb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4taXRlbSAub3QtcGx1cy1taW51c3tmbG9hdDpsZWZ0O21hcmdpbi1yaWdodDo4cHg7dG9wOjEwcHh9I29uZXRydXN0LXBjLXNkayAub3QtdmVuLWl0ZW0gdWx7bGlzdC1zdHlsZTpub25lIGluc2lkZTtmb250LXNpemU6MTAwJTttYXJnaW46MH0jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4taXRlbSB1bCBsaXttYXJnaW46MCAhaW1wb3J0YW50O3BhZGRpbmc6MDtib3JkZXI6bm9uZSAhaW1wb3J0YW50fSNvbmV0cnVzdC1wYy1zZGsgLm90LXBsaS1oZHJ7Y29sb3I6Izc3ODA4ZTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy10b3A6Ny41cHg7cGFkZGluZy1ib3R0b206Ny41cHg7d2lkdGg6Y2FsYygxMDAlIC0gMnB4KTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHh9I29uZXRydXN0LXBjLXNkayAub3QtcGxpLWhkciBzcGFuOmZpcnN0LWNoaWxke3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNTAlKTttYXgtd2lkdGg6OTBweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyIHNwYW46bGFzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0OjEwcHg7bWF4LXdpZHRoOjk1cHg7dGV4dC1hbGlnbjpjZW50ZXJ9I29uZXRydXN0LXBjLXNkayAub3QtbGktdGl0bGV7ZmxvYXQ6cmlnaHQ7Zm9udC1zaXplOi44MTNlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyLm90LWxlZy1ib3JkZXItY29sb3J7YmFja2dyb3VuZC1jb2xvcjojZjRmNGY0O2JvcmRlcjoxcHggc29saWQgI2Q4ZDhkOH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyLm90LWxlZy1ib3JkZXItY29sb3Igc3BhbjpmaXJzdC1jaGlsZHt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6NzBweH0jb25ldHJ1c3QtcGMtc2RrIGxpLm90LXN1YmdycD5oNSwjb25ldHJ1c3QtcGMtc2RrIGxpLm90LXN1YmdycD5wW2FyaWEtbGV2ZWw9XCI1XCJdLCNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1oZWFkZXJ7d2lkdGg6Y2FsYygxMDAlIC0gMTMwcHgpfSNvbmV0cnVzdC1wYy1zZGsgbGkub3Qtc3ViZ3JwPmg1Ky5vdC10Z2wtY250cntwYWRkaW5nLWxlZnQ6MTNweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtZ3JwY250ciAub3QtYWNjLWdycGRlc2N7bWFyZ2luLWJvdHRvbTo1cHh9I29uZXRydXN0LXBjLXNkayAub3QtYWNjLWdycGNudHIgLm90LXN1YmdycC1jbnRye2JvcmRlci10b3A6MXB4IHNvbGlkICNkOGQ4ZDh9I29uZXRydXN0LXBjLXNkayAub3QtYWNjLWdycGNudHIgLm90LXZsc3QtY250cisub3Qtc3ViZ3JwLWNudHJ7Ym9yZGVyLXRvcDpub25lfSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1oZHIgLm90LWFydy1jbnRyKy5vdC10Z2wtY250ciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtdHh0IGg0Ky5vdC10Z2wtY250ciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtdHh0IHBbYXJpYS1sZXZlbD1cIjRcIl0rLm90LXRnbC1jbnRye3BhZGRpbmctbGVmdDoxM3B4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXBsaS1oZHJ+Lm90LWNhdC1pdGVtIC5vdC1zdWJncnA+aDUsI29uZXRydXN0LXBjLXNkayAub3QtcGxpLWhkcn4ub3QtY2F0LWl0ZW0gLm90LXN1YmdycD5wW2FyaWEtbGV2ZWw9XCI1XCJdLCNvbmV0cnVzdC1wYy1zZGsgLm90LXBsaS1oZHJ+Lm90LWNhdC1pdGVtIC5vdC1jYXQtaGVhZGVye3dpZHRoOmNhbGMoMTAwJSAtIDE0NXB4KX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyfi5vdC1jYXQtaXRlbSBoNSsub3QtdGdsLWNudHIsI29uZXRydXN0LXBjLXNkayAub3QtcGxpLWhkcn4ub3QtY2F0LWl0ZW0gLm90LWNhdC1oZWFkZXIrLm90LXRnbHtwYWRkaW5nLWxlZnQ6MjhweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWwtYWxsLWhkciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWwtYWxsLWNoa2JveHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlfSNvbmV0cnVzdC1wYy1zZGsgLm90LXNlbC1hbGwtY2hrYm94e3otaW5kZXg6MX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWwtYWxse21hcmdpbjowO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctcmlnaHQ6MjNweDtmbG9hdDpyaWdodH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1jb25zZW50LWhkciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1saS1oZHJ7ZmxvYXQ6cmlnaHQ7Zm9udC1zaXplOi44MTJlbTtsaW5lLWhlaWdodDpub3JtYWw7dGV4dC1hbGlnbjpjZW50ZXI7d29yZC1icmVhazpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkfSNvbmV0cnVzdC1wYy1zZGsgLm90LWxpLWhkcnttYXgtd2lkdGg6MTAwcHg7cGFkZGluZy1yaWdodDoxMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWNvbnNlbnQtaGRye21heC13aWR0aDo1NXB4fSNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1saWNudHJ7ZGlzcGxheTpibG9jazt3aWR0aDoyMXB4O2hlaWdodDphdXRvO2Zsb2F0OnJpZ2h0O3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjgwcHh9I29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWxpY250ciBsYWJlbHtwb3NpdGlvbjphYnNvbHV0ZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tY3RnbHttYXJnaW4tbGVmdDo2NnB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1saXRnbCsub3QtYXJ3LWNudHJ7bWFyZ2luLWxlZnQ6ODFweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1lbmJsLWNociAub3QtaG9zdC1jbnQgLm90LXRnbC1jbnRye3dpZHRoOmF1dG99I29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KSAub3QtdGdsLWNudHJ7d2lkdGg6YXV0bzt0b3A6YXV0bztoZWlnaHQ6MjBweH0jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC1jaGtib3h7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MjhweDtoZWlnaHQ6MjhweH0jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC1jaGtib3ggbGFiZWx7cG9zaXRpb246YWJzb2x1dGU7cGFkZGluZzowO3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHh9I29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm8tY250cntib3JkZXI6MXB4IHNvbGlkICNkOGQ4ZDg7cGFkZGluZzouNzVyZW0gMnJlbTtwYWRkaW5nLWJvdHRvbTowO3dpZHRoOmF1dG87bWFyZ2luLXRvcDouNXJlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtZ3JwZGVzYysub3QtbGVnLWJ0bi1jb250YWluZXJ7cGFkZGluZy1sZWZ0OjIwcHg7cGFkZGluZy1yaWdodDoyMHB4O3dpZHRoOmNhbGMoMTAwJSAtIDQwcHgpO21hcmdpbi1ib3R0b206NXB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycCAub3QtbGVnLWJ0bi1jb250YWluZXJ7bWFyZ2luLWJvdHRvbTo1cHh9I29uZXRydXN0LXBjLXNkayAjb3QtdmVuLWxzdCAub3QtbGVnLWJ0bi1jb250YWluZXJ7bWFyZ2luLXRvcDoxMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWxlZy1idG4tY29udGFpbmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbToxMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWxlZy1idG4tY29udGFpbmVyIGJ1dHRvbntoZWlnaHQ6YXV0bztwYWRkaW5nOjYuNXB4IDhweDttYXJnaW4tYm90dG9tOjA7bGV0dGVyLXNwYWNpbmc6MDtmb250LXNpemU6Ljc1ZW07bGluZS1oZWlnaHQ6bm9ybWFsfSNvbmV0cnVzdC1wYy1zZGsgLm90LWxlZy1idG4tY29udGFpbmVyIHN2Z3tkaXNwbGF5Om5vbmU7aGVpZ2h0OjE0cHg7d2lkdGg6MTRweDtwYWRkaW5nLXJpZ2h0OjVweDt2ZXJ0aWNhbC1hbGlnbjpzdWJ9I29uZXRydXN0LXBjLXNkayAub3QtYWN0aXZlLWxlZy1idG57Y3Vyc29yOmRlZmF1bHQ7cG9pbnRlci1ldmVudHM6bm9uZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY3RpdmUtbGVnLWJ0biBzdmd7ZGlzcGxheTppbmxpbmUtYmxvY2t9I29uZXRydXN0LXBjLXNkayAub3QtcmVtb3ZlLW9iamVjdGlvbi1oYW5kbGVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7cGFkZGluZzowO2ZvbnQtc2l6ZTouNzVlbTtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MTtwYWRkaW5nLWxlZnQ6MTBweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1vYmotbGVnLWJ0bi1oYW5kbGVyIHNwYW57Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDoxLjV9I29uZXRydXN0LXBjLXNkay5vdC1jbG9zZS1idG4tbGluayAjY2xvc2UtcGMtYnRuLWhhbmRsZXJ7Ym9yZGVyOm5vbmU7aGVpZ2h0OmF1dG87bGluZS1oZWlnaHQ6MS41O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Zm9udC1zaXplOi42OWVtO2JhY2tncm91bmQ6bm9uZTtyaWdodDoxNXB4O3RvcDoxNXB4O3dpZHRoOmF1dG87Zm9udC13ZWlnaHQ6bm9ybWFsfSNvbmV0cnVzdC1wYy1zZGsgLm90LXBncGgtbGlua3tmb250LXNpemU6LjgxM2VtICFpbXBvcnRhbnQ7bWFyZ2luLXRvcDoxMHB4O3Bvc2l0aW9uOnJlbGF0aXZlfSNvbmV0cnVzdC1wYy1zZGsgLm90LXBncGgtbGluay5vdC1wZ3BoLWxpbmstc3ViZ3JvdXB7bWFyZ2luLWJvdHRvbToxcmVtfSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LXBncGgtbGlua3ttYXJnaW4tdG9wOjVweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wZ3BoLWNvbnRye21hcmdpbjowIDIuNXJlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wZ3BoLXRpdGxle2ZvbnQtc2l6ZToxLjE4cmVtO21hcmdpbi1ib3R0b206MnJlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wZ3BoLWRlc2N7Zm9udC1zaXplOjFyZW07Zm9udC13ZWlnaHQ6NDAwO21hcmdpbi1ib3R0b206MnJlbTtsaW5lLWhlaWdodDoxLjVyZW19I29uZXRydXN0LXBjLXNkayAub3QtcGdwaC1kZXNjOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXJ7Y29udGVudDpcIlwiO3dpZHRoOjk2JTtkaXNwbGF5OmJsb2NrO21hcmdpbjowIGF1dG87cGFkZGluZy1ib3R0b206MnJlbTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTllOWU5fSNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1oZWFkZXJ7ZmxvYXQ6bGVmdDtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi44NzVlbTtsaW5lLWhlaWdodDoxLjU7bWF4LXdpZHRoOjkwJTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9I29uZXRydXN0LXBjLXNkayAub3Qtdm5kLWl0ZW0+YnV0dG9uOmZvY3Vze291dGxpbmU6IzAwMCBzb2xpZCAycHh9I29uZXRydXN0LXBjLXNkayAub3Qtdm5kLWl0ZW0+YnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO2N1cnNvcjpwb2ludGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7dG9wOjA7bGVmdDowO3otaW5kZXg6MTttYXgtd2lkdGg6bm9uZTtib3JkZXI6bm9uZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtaXRlbT5idXR0b25bYXJpYS1leHBhbmRlZD1mYWxzZV1+Lm90LWFjYy10eHR7bWFyZ2luLXRvcDowO21heC1oZWlnaHQ6MDtvcGFjaXR5OjA7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCU7dHJhbnNpdGlvbjouMjVzIGVhc2Utb3V0O2Rpc3BsYXk6bm9uZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtaXRlbT5idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXX4ub3QtYWNjLXR4dHt0cmFuc2l0aW9uOi4xcyBlYXNlLWluO21hcmdpbi10b3A6MTBweDt3aWR0aDoxMDAlO292ZXJmbG93OmF1dG87ZGlzcGxheTpibG9ja30jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtaXRlbT5idXR0b25bYXJpYS1leHBhbmRlZD10cnVlXX4ub3QtYWNjLWdycGNudHJ7d2lkdGg6YXV0bzttYXJnaW4tdG9wOjBweDtwYWRkaW5nLWJvdHRvbToxMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2F0LWl0ZW17cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czoycHg7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjoxcHggc29saWQgI2Q4ZDhkODtib3JkZXItdG9wOm5vbmU7d2lkdGg6Y2FsYygxMDAlIC0gMnB4KTtmbG9hdDpsZWZ0fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2F0LWl0ZW06Zmlyc3Qtb2YtdHlwZXttYXJnaW4tdG9wOjEwcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2Q4ZDhkOH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1hY2MtZ3JwZGVzY3twYWRkaW5nLWxlZnQ6MjBweDtwYWRkaW5nLXJpZ2h0OjIwcHg7d2lkdGg6Y2FsYygxMDAlIC0gNDBweCk7Zm9udC1zaXplOi44MTJlbTttYXJnaW4tYm90dG9tOjEwcHg7bWFyZ2luLXRvcDoxNXB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWFjYy1ncnBkZXNjPnVse3BhZGRpbmctdG9wOjEwcHh9I29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtYWNjLWdycGRlc2M+dWwgbGl7cGFkZGluZy10b3A6MDtsaW5lLWhlaWdodDoxLjU7cGFkZGluZy1ib3R0b206MTBweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IGRpdisub3QtYWNjLWdycGRlc2N7bWFyZ2luLXRvcDo1cHh9I29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtdmxzdC1jbnRyOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MTBweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC12bHN0LWNudHI6bGFzdC1jaGlsZCwjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1obHN0LWNudHI6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjVweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1hY2MtaGRye3BhZGRpbmctdG9wOjExLjVweDtwYWRkaW5nLWJvdHRvbToxMS41cHg7cGFkZGluZy1sZWZ0OjIwcHg7cGFkZGluZy1yaWdodDoyMHB4O3dpZHRoOmNhbGMoMTAwJSAtIDQwcHgpO2Rpc3BsYXk6aW5saW5lLWJsb2NrfSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWFjYy10eHR7d2lkdGg6MTAwJTtwYWRkaW5nOjB9I29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3Qtc3ViZ3JwLWNudHJ7cGFkZGluZy1sZWZ0OjIwcHg7cGFkZGluZy1yaWdodDoxNXB4O3BhZGRpbmctYm90dG9tOjA7d2lkdGg6Y2FsYygxMDAlIC0gMzVweCl9I29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3Qtc3ViZ3Jwe3BhZGRpbmctcmlnaHQ6NXB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWFjYy1ncnBjbnRye3otaW5kZXg6MTtwb3NpdGlvbjpyZWxhdGl2ZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1jYXQtaGVhZGVyKy5vdC1hcnctY250cntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3JpZ2h0OjIwcHg7bWFyZ2luLXRvcDotMnB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWNhdC1oZWFkZXIrLm90LWFydy1jbnRyIC5vdC1hcnd7d2lkdGg6MTVweDtoZWlnaHQ6MjBweDttYXJnaW4tbGVmdDo1cHg7Y29sb3I6ZGltZ3JheX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1jYXQtaGVhZGVye2Zsb2F0Om5vbmU7Y29sb3I6IzJlMzY0NDttYXJnaW46MDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6YXV0bzt3b3JkLXdyYXA6YnJlYWstd29yZDttaW4taGVpZ2h0OmluaGVyaXR9I29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtdmxzdC1jbnRyLCNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWhsc3QtY250cntwYWRkaW5nLWxlZnQ6MjBweDt3aWR0aDpjYWxjKDEwMCUgLSAyMHB4KTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOjA7cGFkZGluZy1ib3R0b206MnB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWFjYy1oZHJ7cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDoyNXB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgaDR+Lm90LXRnbCwjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IGg0fi5vdC1hbHdheXMtYWN0aXZle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7cmlnaHQ6MjBweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IGg0fi5vdC10Z2wrLm90LXRnbHtyaWdodDo5NXB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLmNhdGVnb3J5LXZlbmRvcnMtbGlzdC1oYW5kbGVyLCNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLmNhdGVnb3J5LXZlbmRvcnMtbGlzdC1oYW5kbGVyK2F7bWFyZ2luLXRvcDo1cHh9I29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59I29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudHttYXJnaW4tdG9wOjFyZW07bWF4LWhlaWdodDpjYWxjKDEwMCUgLSAxMDBweCl9I29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm8tY250cntib3JkZXI6MXB4IHNvbGlkICNkOGQ4ZDg7cGFkZGluZzouNzVyZW0gMnJlbTtwYWRkaW5nLWJvdHRvbTowO3dpZHRoOmF1dG87bWFyZ2luLXRvcDouNXJlbX0jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC12bmQtaW5mb3ttYXJnaW4tYm90dG9tOjFyZW07cGFkZGluZy1sZWZ0Oi43NXJlbTtwYWRkaW5nLXJpZ2h0Oi43NXJlbTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufSNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC1jbnQgLm90LXZuZC1pbmZvPmRpdntkaXNwbGF5OmZsZXh9I29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm9bZGF0YS12bmQtaW5mby1rZXkqPURQT0VtYWlsXXtib3JkZXItdG9wOjFweCBzb2xpZCAjZDhkOGQ4O3BhZGRpbmctdG9wOjFyZW19I29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm9bZGF0YS12bmQtaW5mby1rZXkqPURQT0xpbmtde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkOGQ4ZDg7cGFkZGluZy1ib3R0b206MXJlbX0jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC12bmQtaW5mbyAub3Qtdm5kLWxibHtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZTouODVlbTttYXJnaW4tYm90dG9tOi41cmVtfSNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC1jbnQgLm90LXZuZC1pbmZvIC5vdC12bmQtY250e21hcmdpbi1sZWZ0Oi41cmVtO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6Ljg1cmVtfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QsI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnZ7d2lkdGg6YXV0bztwYWRkaW5nOjFyZW0gMS4yNXJlbTtwYWRkaW5nLWJvdHRvbTowfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1zZXJ2LWhkci1jbnRyLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtc2Vydi1oZHItY250cntwYWRkaW5nLWJvdHRvbTouNzVyZW07Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2Q4ZDhkOH0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtc2Vydi1oZHItY250ciAub3Qtdm5kLXNlcnYtaGRyLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtc2Vydi1oZHItY250ciAub3Qtdm5kLXNlcnYtaGRye2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6Ljk1ZW07bGluZS1oZWlnaHQ6MjttYXJnaW4tbGVmdDouNXJlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSwjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW17Ym9yZGVyOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIGJ1dHRvbiwjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gYnV0dG9ue291dGxpbmU6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZDhkOGQ4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIGJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSBidXR0b25bYXJpYS1leHBhbmRlZD10cnVlXXtib3JkZXItYm90dG9tOm5vbmV9I29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW06Zmlyc3QtY2hpbGQsI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtOmZpcnN0LWNoaWxke21hcmdpbi10b3A6LjI1cmVtO2JvcmRlci10b3A6dW5zZXR9I29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW06bGFzdC1jaGlsZCwjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW06bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOi41cmVtfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtOmxhc3QtY2hpbGQgYnV0dG9uLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbTpsYXN0LWNoaWxkIGJ1dHRvbntib3JkZXItYm90dG9tOm5vbmV9I29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvLWNudHIsI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mby1jbnRye2JvcmRlcjoxcHggc29saWQgI2Q4ZDhkODtwYWRkaW5nOi43NXJlbSAxLjc1cmVtO3BhZGRpbmctYm90dG9tOjA7d2lkdGg6YXV0bzttYXJnaW4tdG9wOi41cmVtfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mbywjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZve21hcmdpbi1ib3R0b206MXJlbTtwYWRkaW5nLWxlZnQ6Ljc1cmVtO3BhZGRpbmctcmlnaHQ6Ljc1cmVtO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59I29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvPmRpdiwjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvPmRpdntkaXNwbGF5OmZsZXh9I29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvW2RhdGEtdm5kLWluZm8ta2V5Kj1EUE9FbWFpbF0sI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mb1tkYXRhLXZuZC1pbmZvLWtleSo9RFBPRW1haWxde2JvcmRlci10b3A6MXB4IHNvbGlkICNkOGQ4ZDg7cGFkZGluZy10b3A6MXJlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm9bZGF0YS12bmQtaW5mby1rZXkqPURQT0xpbmtdLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm9bZGF0YS12bmQtaW5mby1rZXkqPURQT0xpbmtde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkOGQ4ZDg7cGFkZGluZy1ib3R0b206MXJlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8gLm90LXZuZC1sYmwsI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mbyAub3Qtdm5kLWxibHtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZTouODVlbTttYXJnaW4tYm90dG9tOi41cmVtfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mbyAub3Qtdm5kLWNudCwjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvIC5vdC12bmQtY250e21hcmdpbi1sZWZ0Oi41cmVtO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6Ljg1cmVtfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3Qub3Qtdm5kLXN1YmdycC1jbnQsI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYub3Qtdm5kLXN1YmdycC1jbnR7cGFkZGluZy1sZWZ0OjQwcHh9I29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdC5vdC12bmQtc3ViZ3JwLWNudCAub3Qtdm5kLXNlcnYtaGRyLWNudHIgLm90LXZuZC1zZXJ2LWhkciwjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2Vydi5vdC12bmQtc3ViZ3JwLWNudCAub3Qtdm5kLXNlcnYtaGRyLWNudHIgLm90LXZuZC1zZXJ2LWhkcntmb250LXNpemU6LjhlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0Lm90LXZuZC1zdWJncnAtY250IC5vdC1jYXQtaGVhZGVyLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2Lm90LXZuZC1zdWJncnAtY250IC5vdC1jYXQtaGVhZGVye2ZvbnQtc2l6ZTouOGVtfSNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIC5vdC12bmQtc2VydnttYXJnaW4tYm90dG9tOjFyZW07cGFkZGluZzoxcmVtIC45NXJlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciAub3Qtdm5kLXNlcnYgLm90LXZuZC1zZXJ2LWhkci1jbnRye3BhZGRpbmctYm90dG9tOi43NXJlbTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZDhkOGQ4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIC5vdC12bmQtc2VydiAub3Qtdm5kLXNlcnYtaGRyLWNudHIgLm90LXZuZC1zZXJ2LWhkcntmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOi44ZW07bGluZS1oZWlnaHQ6MjBweDttYXJnaW4tbGVmdDouODJyZW19I29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgLm90LWNhdC1oZWFkZXJ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouOGVtO2xpbmUtaGVpZ2h0OjIwcHh9I29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3Qtdm5kLXNlcnYgLm90LXZuZC1sc3QtY29udCAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtYWNjLWhkciBkaXYub3QtY2hrYm94e21hcmdpbi1sZWZ0Oi44MnJlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIsI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyLCNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIsI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIsI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyLCNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIsI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRye3BhZGRpbmc6LjdyZW0gMDttYXJnaW46MDtkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59I29uZXRydXN0LXBjLXNkayAub3QtdnMtY29uZmlnIC5vdC1hY2MtaGRyIGRpdjpmaXJzdC1jaGlsZCwjb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgZGl2OmZpcnN0LWNoaWxkLCNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgZGl2OmZpcnN0LWNoaWxkLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIGRpdjpmaXJzdC1jaGlsZCwjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgZGl2OmZpcnN0LWNoaWxkLCNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgZGl2OmZpcnN0LWNoaWxkLCNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2hlY2tib3gtY29uc2VudCAub3QtYWNjLWhkciBkaXY6Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6LjVyZW19I29uZXRydXN0LXBjLXNkayAub3QtdnMtY29uZmlnIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLCNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciBkaXY6bGFzdC1jaGlsZCwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciBkaXY6bGFzdC1jaGlsZCwjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLCNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2hlY2tib3gtY29uc2VudCAub3QtYWNjLWhkciBkaXY6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6LjVyZW07bWFyZ2luLWxlZnQ6LjVyZW19I29uZXRydXN0LXBjLXNkayAub3QtdnMtY29uZmlnIC5vdC1hY2MtaGRyIC5vdC1hbHdheXMtYWN0aXZlLCNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtYWx3YXlzLWFjdGl2ZSwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1hbHdheXMtYWN0aXZlLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1hbHdheXMtYWN0aXZlLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtYWx3YXlzLWFjdGl2ZSwjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1hbHdheXMtYWN0aXZlLCNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2hlY2tib3gtY29uc2VudCAub3QtYWNjLWhkciAub3QtYWx3YXlzLWFjdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDp1bnNldDt0b3A6dW5zZXQ7dHJhbnNmb3JtOnVuc2V0fSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cywjb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LXBsdXMtbWludXMsI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cywjb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cywjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LXBsdXMtbWludXMsI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cywjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LXBsdXMtbWludXN7dG9wOjB9I29uZXRydXN0LXBjLXNkayAub3QtdnMtY29uZmlnIC5vdC1hY2MtaGRyIC5vdC1hcnctY250ciwjb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWFydy1jbnRyLCNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWFydy1jbnRyLCNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1hcnctY250ciwjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWFydy1jbnRyLCNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWFydy1jbnRyLCNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2hlY2tib3gtY29uc2VudCAub3QtYWNjLWhkciAub3QtYXJ3LWNudHJ7ZmxvYXQ6bm9uZTt0b3A6dW5zZXQ7cmlnaHQ6dW5zZXQ7dHJhbnNmb3JtOnVuc2V0O21hcmdpbi10b3A6LTJweDtwb3NpdGlvbjpyZWxhdGl2ZX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1jYXQtaGVhZGVyLCNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1jYXQtaGVhZGVyLCNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRyIC5vdC1jYXQtaGVhZGVye2ZsZXg6MTttYXJnaW46MCAuNXJlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIgLm90LXRnbCwjb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LXRnbCwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC10Z2wsI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LXRnbCwjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LXRnbCwjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC10Z2wsI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRyIC5vdC10Z2x7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNmb3JtOm5vbmU7cmlnaHQ6MDt0b3A6MDtmbG9hdDpub25lfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtY2hrYm94LCNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94LCNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWNoa2JveCwjb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94LCNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94LCNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNoa2JveCwjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LWNoa2JveHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MCAuNXJlbX0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbCwjb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbCwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWwsI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbCwjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbCwjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWwsI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWx7cGFkZGluZzowfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWw6OmJlZm9yZSwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWw6OmJlZm9yZSwjb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWw6OmJlZm9yZSwjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWw6OmJlZm9yZSwjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbDo6YmVmb3Jle3Bvc2l0aW9uOnJlbGF0aXZlfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LCNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LCNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWNoa2JveCBpbnB1dCwjb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LCNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LCNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNoa2JveCBpbnB1dCwjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LWNoa2JveCBpbnB1dHtwb3NpdGlvbjphYnNvbHV0ZTtjdXJzb3I6cG9pbnRlcjt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29wYWNpdHk6MDttYXJnaW46MDt0b3A6MDtsZWZ0OjA7ei1pbmRleDoxfSNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgbGkub3Qtc3ViZ3JwIC5vdC1hY2MtaGRyIGg1Lm90LWNhdC1oZWFkZXIsI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyBsaS5vdC1zdWJncnAgLm90LWFjYy1oZHIgaDQub3QtY2F0LWhlYWRlciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIGxpLm90LXN1YmdycCAub3QtYWNjLWhkciBwW2FyaWEtbGV2ZWw9XCI1XCJdLm90LWNhdC1oZWFkZXIsI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyBsaS5vdC1zdWJncnAgLm90LWFjYy1oZHIgcFthcmlhLWxldmVsPVwiNFwiXS5vdC1jYXQtaGVhZGVye21hcmdpbjowfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyBsaS5vdC1zdWJncnAgaDUsI29uZXRydXN0LXBjLXNkayAub3QtdnMtY29uZmlnIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIGxpLm90LXN1YmdycCBwW2FyaWEtbGV2ZWw9XCI1XCJde3RvcDowO2xpbmUtaGVpZ2h0OjIwcHh9I29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6MDttYXJnaW46LjVyZW0gNHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLXNlbGMtYWxse2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjA7ZmxvYXQ6dW5zZXQ7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLXNlbGMtYWxsLm90LXRvZ2dsZS1jb25me2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbC5vdC10b2dnbGUtY29uZi5vdC1jYXJldC1jb25mIC5vdC1zZWwtYWxsLWNoa2JveHttYXJnaW4tcmlnaHQ6NDhweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbC5vdC10b2dnbGUtY29uZiAub3Qtc2VsLWFsbC1jaGtib3h7bWFyZ2luOjA7cGFkZGluZzowO21hcmdpbi1yaWdodDoxNHB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbC5vdC10b2dnbGUtY29uZiAjb3Qtc2VsYWxsLXZlbmNudHIub3QtY2hrYm94LCNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLXNlbGMtYWxsLm90LXRvZ2dsZS1jb25mICNvdC1zZWxhbGwtdmVuY250ci5vdC10Z2x7ZGlzcGxheTppbmxpbmUtYmxvY2s7cmlnaHQ6dW5zZXQ7d2lkdGg6YXV0bztoZWlnaHQ6YXV0bztmbG9hdDpub25lfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLXNlbGMtYWxsLm90LXRvZ2dsZS1jb25mICNvdC1zZWxhbGwtdmVuY250ciBsYWJlbHt3aWR0aDo0NXB4O2hlaWdodDoyNXB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLXNlbGMtYWxsIC5vdC1zZWwtYWxsLWNoa2JveHttYXJnaW4tcmlnaHQ6MTFweDttYXJnaW4tbGVmdDouNzVyZW07ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbCAuc2VsLWFsbC1oZHJ7bWFyZ2luOjAgMS4yNXJlbTtmb250LXNpemU6LjgxMmVtO2xpbmUtaGVpZ2h0Om5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d29yZC13cmFwOmJyZWFrLXdvcmR9I29uZXRydXN0LXBjLXNkayAub3Qtdm5kLWxpc3QtY250ICNvdC1zZWxhbGwtdmVuY250ci5vdC1jaGtib3h7ZmxvYXQ6dW5zZXQ7cmlnaHQ6MH0jb25ldHJ1c3QtcGMtc2RrW2Rpcj1ydGxdICNvdC1iYWNrLWFydywjb25ldHJ1c3QtcGMtc2RrW2Rpcj1ydGxdIGlucHV0fi5vdC1hY2MtaGRyIC5vdC1hcnd7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOy1vLXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfSNvbmV0cnVzdC1wYy1zZGtbZGlyPXJ0bF0gaW5wdXQ6Y2hlY2tlZH4ub3QtYWNjLWhkciAub3QtYXJ3e3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTstby10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0jb25ldHJ1c3QtcGMtc2RrW2Rpcj1ydGxdIC5vdC1jaGtib3ggbGFiZWw6OmFmdGVye3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO2JvcmRlci1sZWZ0OjA7Ym9yZGVyLXJpZ2h0OjNweCBzb2xpZH0jb25ldHJ1c3QtcGMtc2RrW2Rpcj1ydGxdIC5vdC1zZWFyY2gtY250cj5zdmd7cmlnaHQ6MH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KXsjb25ldHJ1c3QtcGMtc2RrLm90UGNDZW50ZXJ7bGVmdDowO21pbi13aWR0aDoxMDAlO2hlaWdodDoxMDAlICFpbXBvcnRhbnQ7dG9wOjA7Ym9yZGVyLXJhZGl1czowfSNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWNvbnRlbnQub3QtYnV0dG9uLW9yZGVyLWNvbnRhaW5lciwjb25ldHJ1c3QtcGMtc2RrLm90LWZ0ci1zdGFja2VkIC5vdC1idG4tY29udGFpbmVyLm90LWJ1dHRvbi1vcmRlci1jb250YWluZXJ7bWFyZ2luOjA7d2lkdGg6MTAwJTtwYWRkaW5nOi41ZW0gMWVtO2dhcDouNXJlbTtmbGV4LXdyYXA6bm93cmFwO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDpjYWxjKDEwMCUgLSAzMHB4KTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfSNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWNvbnRlbnQub3QtYnV0dG9uLW9yZGVyLWNvbnRhaW5lciAqW2NsYXNzKj1vdC1idXR0b24tb3JkZXItXSwjb25ldHJ1c3QtcGMtc2RrLm90LWZ0ci1zdGFja2VkIC5vdC1idG4tY29udGFpbmVyLm90LWJ1dHRvbi1vcmRlci1jb250YWluZXIgKltjbGFzcyo9b3QtYnV0dG9uLW9yZGVyLV17bWFyZ2luOjAgIWltcG9ydGFudH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1idG4tY29udGFpbmVyIGJ1dHRvbnttYXgtd2lkdGg6bm9uZTtsZXR0ZXItc3BhY2luZzouMDFlbX0jb25ldHJ1c3QtcGMtc2RrICNjbG9zZS1wYy1idG4taGFuZGxlcnt0b3A6MTBweDtyaWdodDoxN3B4fSNvbmV0cnVzdC1wYy1zZGsgcHtmb250LXNpemU6LjdlbX0jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1oZHJ7bWFyZ2luOjEwcHggMTBweCAwIDVweDt3aWR0aDpjYWxjKDEwMCUgLSAxNXB4KX0jb25ldHJ1c3QtcGMtc2RrIC52ZW5kb3Itc2VhcmNoLWhhbmRsZXJ7Zm9udC1zaXplOjFlbX0jb25ldHJ1c3QtcGMtc2RrICNvdC1iYWNrLWFyd3ttYXJnaW4tbGVmdDoxMnB4fSNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC1jbnR7bWFyZ2luOjA7cGFkZGluZzowIDVweCAwIDEwcHg7bWluLXdpZHRoOjk1JX0jb25ldHJ1c3QtcGMtc2RrIC5zd2l0Y2grcHttYXgtd2lkdGg6ODAlfSNvbmV0cnVzdC1wYy1zZGsgLm90LWZ0ci1zdGFja2VkIGJ1dHRvbnt3aWR0aDoxMDAlfSNvbmV0cnVzdC1wYy1zZGsgI290LWZsdHItY250e21heC13aWR0aDozMjBweDt3aWR0aDo5MCU7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO21hcmdpbjowO21hcmdpbi1sZWZ0OjE1cHg7bGVmdDphdXRvO3JpZ2h0OjQwcHg7dG9wOjg1cHh9I29uZXRydXN0LXBjLXNkayAub3QtZmx0ci1vcHR7bWFyZ2luLWxlZnQ6MjVweDttYXJnaW4tYm90dG9tOjEwcHh9I29uZXRydXN0LXBjLXNkayAjb3QtZmx0ci1jbnR7cmlnaHQ6NDBweH19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MDBweCl7I29uZXRydXN0LXBjLXNkayAub3QtZmx0ci1jbnRyLCNvbmV0cnVzdC1wYy1zZGsgI290LWZsdHItY250e3JpZ2h0OjEwcHh9I29uZXRydXN0LXBjLXNkayAjb3QtYW5jaG9ye3JpZ2h0OjI1cHh9I29uZXRydXN0LXBjLXNkayBidXR0b257d2lkdGg6MTAwJX0jb25ldHJ1c3QtcGMtc2RrOm5vdCgub3QtYWRkdGwtdmVuZG9ycykgI290LXBjLWxzdDpub3QoLm90LWVuYmwtY2hyKSAub3Qtc2VsLWFsbHtwYWRkaW5nLXJpZ2h0OjlweH0jb25ldHJ1c3QtcGMtc2RrOm5vdCgub3QtYWRkdGwtdmVuZG9ycykgI290LXBjLWxzdDpub3QoLm90LWVuYmwtY2hyKSAub3QtdGdsLWNudHJ7cmlnaHQ6MH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1idG4tY29udGFpbmVyLm90LWJ1dHRvbi1vcmRlci1jb250YWluZXIgLm90LXBjLXJlZnVzZS1hbGwtaGFuZGxlciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1idG4tY29udGFpbmVyLm90LWJ1dHRvbi1vcmRlci1jb250YWluZXIgLnNhdmUtcHJlZmVyZW5jZS1idG4taGFuZGxlciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1idG4tY29udGFpbmVyLm90LWJ1dHRvbi1vcmRlci1jb250YWluZXIgI2FjY2VwdC1yZWNvbW1lbmRlZC1idG4taGFuZGxlcnt3aWR0aDoxMDAlfX1AbWVkaWEobWluLXdpZHRoOiA3NjhweCl7I29uZXRydXN0LXBjLXNkay5vdC10Z2wtd2l0aC1sYWJlbCAub3QtbGFiZWwtc3RhdHVze2Rpc3BsYXk6aW5saW5lfSNvbmV0cnVzdC1wYy1zZGsub3QtdGdsLXdpdGgtbGFiZWwgI290LXBjLWxzdCAub3QtbGFiZWwtc3RhdHVze2Rpc3BsYXk6bm9uZX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTZweClhbmQgKG1heC1oZWlnaHQ6IDQyNXB4KWFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSl7I29uZXRydXN0LXBjLXNkay5vdFBjQ2VudGVye2xlZnQ6MDt0b3A6MDttaW4td2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXItcmFkaXVzOjB9I29uZXRydXN0LXBjLXNkayAub3QtcGMtaGVhZGVye2hlaWdodDphdXRvO21pbi1oZWlnaHQ6MjBweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1oZWFkZXIgLm90LXBjLWxvZ297bWF4LWhlaWdodDozMHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLWZvb3RlcnttYXgtaGVpZ2h0OjkwcHg7aGVpZ2h0OjEwMCUgIWltcG9ydGFudH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXIgLm90LWJ0bi1jb250YWluZXJ7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO21heC1oZWlnaHQ6Y2FsYygxMDAlIC0gMzBweCl9I29uZXRydXN0LXBjLXNkayAjb3QtcGMtY29udGVudCwjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3R7Ym90dG9tOjEwMHB4fSNvbmV0cnVzdC1wYy1zZGsub3QtZnRyLXN0YWNrZWQgI290LXBjLWNvbnRlbnQsI29uZXRydXN0LXBjLXNkay5vdC1mdHItc3RhY2tlZCAjb3QtcGMtbHN0e2JvdHRvbToxMDBweH0jb25ldHJ1c3QtcGMtc2RrICNvdC1hbmNob3J7bGVmdDppbml0aWFsO3JpZ2h0OjUwcHh9I29uZXRydXN0LXBjLXNkayAjb3QtbHN0LXRpdGxle21hcmdpbi10b3A6MTJweH0jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtdGl0bGUgKntmb250LXNpemU6aW5oZXJpdH0jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1oZHIgaW5wdXR7bWFyZ2luLXJpZ2h0OjA7cGFkZGluZy1yaWdodDo0NXB4fSNvbmV0cnVzdC1wYy1zZGsgLnN3aXRjaCtwe21heC13aWR0aDo4NSV9I29uZXRydXN0LXBjLXNkayAjb3Qtc2VsLWJsa3twb3NpdGlvbjpzdGF0aWN9I29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0e292ZXJmbG93OmF1dG99I29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudHttYXgtaGVpZ2h0Om5vbmU7b3ZlcmZsb3c6aW5pdGlhbH0jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250Lm5vLXJlc3VsdHN7aGVpZ2h0OmF1dG99I29uZXRydXN0LXBjLXNkayBpbnB1dHtmb250LXNpemU6MWVtICFpbXBvcnRhbnR9I29uZXRydXN0LXBjLXNkayBwe2ZvbnQtc2l6ZTouNmVtfSNvbmV0cnVzdC1wYy1zZGsgI290LWZsdHItbW9kYWx7d2lkdGg6MTAwJTt0b3A6MH0jb25ldHJ1c3QtcGMtc2RrIHVsIGxpIHAsI29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktdmVuZG9ycy1saXN0LWhhbmRsZXIsI29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktdmVuZG9ycy1saXN0LWhhbmRsZXIrYSwjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1ob3N0LWxpc3QtaGFuZGxlcntmb250LXNpemU6LjZlbX0jb25ldHJ1c3QtcGMtc2RrLm90LXNody1mbHRyICNvdC1hbmNob3J7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9I29uZXRydXN0LXBjLXNkay5vdC1zaHctZmx0ciAjb3QtcGMtbHN0e2hlaWdodDoxMDAlICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuO3RvcDowcHh9I29uZXRydXN0LXBjLXNkay5vdC1zaHctZmx0ciAjb3QtZmx0ci1jbnR7bWFyZ2luOjA7aGVpZ2h0OjEwMCU7bWF4LWhlaWdodDpub25lO3BhZGRpbmc6MTBweDt0b3A6MDt3aWR0aDpjYWxjKDEwMCUgLSAyMHB4KTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2xlZnQ6MDttYXgtd2lkdGg6bm9uZX0jb25ldHJ1c3QtcGMtc2RrLm90LXNody1mbHRyIC5vdC1mbHRyLXNjcmxjbnR7bWF4LWhlaWdodDpjYWxjKDEwMCUgLSA2NXB4KX19IgogICAgICAgIH0="}},"time_used":8,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DwNE4IkG2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.703Z","timestamp":1785108244703,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DwNE4IkG2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 2331\r\nlast-modified: Sun, 26 Jul 2026 22:31:27 GMT\r\netag: \"804298eee4928ab1f52394647703133a\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 b0380453c1d490e0143b23fb633d7e7c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: N8lt9DdqDX-wiiU_nIeFuUN1kSL0AxfnMdASGPVIw1w_3PQJ04d09A==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=wah34xMQzoVBJKetzIf9S99rSE6lvDhJIilfly785Zw4oeg1UaiL9Sor2RE3R2l0m3X%2B41F4lN%2Bj6GODyIldtxpBddf2Vu3WbmnqebBNaiwI8PaM0Bum0oLQthbNNIczDbvOjU%2FlXmrKnVRHI9Xi\"}]}\r\ncf-ray: a21727e16f4a0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":6068,"size_decoded":3475,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (5205)","md5":"f42098f045fa46f968c60c96715bc921","sha1":"8f3beed52370269a97e7d6b4be1537ea2b0e7a00","sha256":"1dd5d27a4713b3c097e789c19f9b3dd3da96b856e743f5f9aea2b117486e21cc","sha512":"9560915f59f06ee85990a80295dd1dc0ad6e28dc21da6f1b69bb2c4777167f9fdd056f70bc1fe5161c71176463c562ea00d33fe97db00376872d9af72088607c","ssdeep":"96:xFs6sBpPyihEKcuVhhH2LJrnNNpl8BAWvABaoCPxXPX1YVY:Ds6sBpPyih5bWdrnNNpl8BA+ABfCEY","tlshash":"49c1e8b24fa134abc21747d66163951d263fb101a6060738f32d9c5e1bf616a72e3fa3","first_seen":"2026-07-26T23:24:50.207743Z","last_seen":"2026-07-26T23:25:46.784708Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDM1MTAzYjJhLWI2YWQtNDZlMS04OTc2LTMzMDQ0YmI3YjI0YmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTM1MTAzYjJhLWI2YWQtNDZlMS04OTc2LTMzMDQ0YmI3YjI0YmApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsX2EgYXMgdCxiYSBhcyBuLGJsIGFzIHIsY2QgYXMgaSxmZiBhcyBhLGhmIGFzIG8seGEgYXMgc31mcm9tIi4vZV9DcnFSVzF3UC5qcyI7aW1wb3J0e3QgYXMgY31mcm9tIi4vY19CSWlhRXgzVi5qcyI7aW1wb3J0e3QgYXMgbH1mcm9tIi4vY19DUC1jZ0hmWS5qcyI7aW1wb3J0e3QgYXMgdX1mcm9tIi4vY19CYS1faVBOUy5qcyI7aW1wb3J0e3QgYXMgZH1mcm9tIi4vY19Wbk81SkQ4ODIuanMiO3ZhciBmPWEoKSxwPWUobygpKSxtPVtgOWAsYDhgLGA3YCxgNmAsYDVgLGA0YCxgM2AsYDJgLGAxYCxgMGAsYCBgLGAuYCxgLGBdLGg9MTtmdW5jdGlvbiBnKHt3aWR0aDplLHN0cmlwVmFsdWVJbmRleDp0LGNoYXI6bix0cmFuc2l0aW9uOmk9YDAuM3MgZWFzZS1pbi1vdXRgLGNoYXJPdmVyZmxvdzphPWBoaWRkZW5gfSl7cmV0dXJuIHQ9PT0tMT8oMCxmLmpzeCkocix7aGVpZ2h0OmAke2h9ZW1gLG92ZXJmbG93OmEsc3R5bGU6e3RyYW5zaXRpb246YHdpZHRoICR7aX1gLHdpZHRoOmV9LGNoaWxkcmVuOigwLGYuanN4KShyLHtzdHlsZTp7aGVpZ2h0OmAke2h9ZW1gLGxpbmVIZWlnaHQ6aCx0ZXh0QWxpZ246YGNlbnRlcmB9LCJhcmlhLWhpZGRlbiI6ITAsY2hpbGRyZW46bn0pfSk6KDAsZi5qc3gpKHIse2hlaWdodDpgJHtofWVtYCxvdmVyZmxvdzpgaGlkZGVuYCxzdHlsZTp7dHJhbnNpdGlvbjpgd2lkdGggJHtpfWAsd2lkdGg6ZX0sY2hpbGRyZW46KDAsZi5qc3gpKF8seyJhcmlhLWhpZGRlbiI6ITAsdHJhbnNpdGlvbjppLHN0eWxlOnt0cmFuc2Zvcm06YHRyYW5zbGF0ZVkoLSR7dCpofWVtKWB9LGNoaWxkcmVuOm0ubWFwKChlLG4pPT4oMCxmLmpzeCkocix7c3R5bGU6e3VzZXJTZWxlY3Q6bj09PXQ/YGF1dG9gOmBub25lYCxoZWlnaHQ6YCR7aH1lbWAsbGluZUhlaWdodDpoLHRleHRBbGlnbjpgY2VudGVyYH0sImFyaWEtaGlkZGVuIjohMCxjaGlsZHJlbjplfSxlKSl9KX0pfXZhciBfPXQuZGl2LndpdGhDb25maWcoe3Nob3VsZEZvcndhcmRQcm9wOmU9PiFbYHRyYW5zaXRpb25gXS5pbmNsdWRlcyhlKX0pLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBQcmljZVRpY2tlckNoYXJfX1ZhbHVlc2AsY29tcG9uZW50SWQ6YHNjLWY2MzM0ZTUyLTBgfSkoW2B0cmFuc2l0aW9uOnRyYW5zZm9ybSBgLGA7dHJhbnNmb3JtLW9yaWdpbjp0b3A7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtO2BdLGU9PmMoZS50cmFuc2l0aW9uKSksdj0oMCxwLm1lbW8pKGcpLHk9dC5zcGFuLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBQcmljZVRpY2tlcl9fU3Vic2NyaXB0VG9rZW5gLGNvbXBvbmVudElkOmBzYy0xZDBjYTMyMC0wYH0pKFtgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpmbGV4LWVuZDtoZWlnaHQ6MTAwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSg4JSk7YF0pLGI9dC5zdWIud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YFByaWNlVGlja2VyX19TdWJzY3JpcHRDb3VudGAsY29tcG9uZW50SWQ6YHNjLTFkMGNhMzIwLTFgfSkoW2BkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTo1NSU7bGluZS1oZWlnaHQ6MTtgXSk7ZnVuY3Rpb24geChlLHQpe3JldHVybiBlLnNwbGl0KGBgKS5tYXAoKGUsbik9Pih7Y2hhcjplLHN0cmlwVmFsdWVJbmRleDptLmluZGV4T2YoZSksa2V5OmAke3R9LSR7bn0tJHtlfWB9KSl9ZnVuY3Rpb24gUyhlLHQpe2xldCBuPXQ/dShlKTpudWxsO3JldHVybiBuP1suLi54KG4ucHJlZml4LGBwcmVmaXhgKSx7Y2hhcjooMCxmLmpzeCkoeSx7ImFyaWEtaGlkZGVuIjpgdHJ1ZWAsY2hpbGRyZW46KDAsZi5qc3gpKGIse2NoaWxkcmVuOm4uemVyb0NvdW50fSl9KSxzdHJpcFZhbHVlSW5kZXg6LTEsa2V5OmB6ZXJvLWNvdW50LSR7bi56ZXJvQ291bnR9YCxjaGFyT3ZlcmZsb3c6YHZpc2libGVgfSwuLi54KG4uc2lnbmlmaWNhbmQsYHNpZ25pZmljYW5kYCldOngoZSxgdmFsdWVgKX12YXIgQz0uMDIsdz0uNTtmdW5jdGlvbiBUKGUsdCxuKXtyZXR1cm4gZS5oZWlnaHQ9PT12b2lkIDA/ITE6TWF0aC5hYnMoZS5zY2FsZS10KTxDJiZNYXRoLmFicyhlLmhlaWdodC1uKTx3fWZ1bmN0aW9uIEUoe3ZhbHVlOmUsZm9udFNpemU6dCx0cmFuc2l0aW9uOm4sY29sb3I6cixzaG91bGRDaGFuZ2VDb2xvcjphPSExLGZvbnRXZWlnaHQ6bz1gcmVndWxhcmAsZm9udEZhbWlseTpzPWBzYW5zYCx0YWJ1bGFyTnVtYmVyczpjPSExLHRlc3RJRDpsLGVuYWJsZVN1YnNjcmlwdEZvcm1hdHRpbmc6dT0hMSxlbmFibGVBdXRvU2NhbGluZzpoPSExfSl7bGV0IGc9KDAscC51c2VNZW1vKSgoKT0+UyhlLHUpLFtlLHVdKSxfPSgwLHAudXNlUmVmKShlKSxbeSxiXT0oMCxwLnVzZVN0YXRlKShyKSxbeCxDXT0oMCxwLnVzZVN0YXRlKShudWxsKSx3PWQoKSxFPSgwLHAudXNlTWVtbykoKCk9Pm0ubWFwKChlLG4pPT5NKG4seCx3LG8scyx0LGMpKSxbeCx3LG8scyx0LGNdKSxEPSgwLHAudXNlUmVmKShudWxsKTsoMCxwLnVzZUVmZmVjdCkoKCk9PntpZighYSlyZXR1cm47bGV0IHQ9TnVtYmVyKChfLmN1cnJlbnQubWF0Y2goL1xkL2cpPz9bXSkuam9pbihgYCkpLG49TnVtYmVyKChlLm1hdGNoKC9cZC9nKT8/W10pLmpvaW4oYGApKTtpZihOdW1iZXIuaXNOYU4odCl8fE51bWJlci5pc05hTihuKXx8dD09PW4pe0QuY3VycmVudCYmKGNsZWFyVGltZW91dChELmN1cnJlbnQpLEQuY3VycmVudD1udWxsLGIocikpO3JldHVybn1yZXR1cm4gXy5jdXJyZW50PWUsRC5jdXJyZW50JiZjbGVhclRpbWVvdXQoRC5jdXJyZW50KSxiKHQ8bj9gcG9zaXRpdmVgOmBuZWdhdGl2ZWApLEQuY3VycmVudD1zZXRUaW1lb3V0KCgpPT57YihyKSxELmN1cnJlbnQ9bnVsbH0sMWUzKSwoKT0+e0QuY3VycmVudCYmY2xlYXJUaW1lb3V0KEQuY3VycmVudCl9fSxbcixlLGFdKTtsZXQgTz0oMCxwLnVzZVJlZikobnVsbCksW0Esal09KDAscC51c2VTdGF0ZSkoe3NjYWxlOjEsaGVpZ2h0OnZvaWQgMH0pOygwLHAudXNlTGF5b3V0RWZmZWN0KSgoKT0+e2lmKCFoKXJldHVybjtsZXQgZT1PLmN1cnJlbnQsdD14O2lmKCFlfHwhdClyZXR1cm47bGV0IG49KCk9PntsZXQgbj10Lm9mZnNldFdpZHRoLHI9ZS5jbGllbnRXaWR0aDtpZihuPjAmJnI+MCYmbj5yKXtsZXQgZT1NYXRoLm1heCguNSxyL24pLGk9dC5vZmZzZXRIZWlnaHQqZTtqKHQ9PlQodCxlLGkpP3Q6e3NjYWxlOmUsaGVpZ2h0Oml9KX1lbHNlIGooZT0+ZS5zY2FsZT09PTEmJmUuaGVpZ2h0PT09dm9pZCAwP2U6e3NjYWxlOjEsaGVpZ2h0OnZvaWQgMH0pfSxyPW5ldyBSZXNpemVPYnNlcnZlcihuKTtyZXR1cm4gci5vYnNlcnZlKGUpLHIub2JzZXJ2ZSh0KSxuKCksKCk9PnIuZGlzY29ubmVjdCgpfSxbaCx4XSk7bGV0IE49KDAscC51c2VNZW1vKSgoKT0+aD97b3ZlcmZsb3c6YGhpZGRlbmAsLi4uQS5oZWlnaHQ9PW51bGw/e306e2hlaWdodDpBLmhlaWdodH19OnZvaWQgMCxbaCxBLmhlaWdodF0pLFA9KDAsZi5qc3gpKGsse2ZvbnRTaXplOnQscmVmOkMsdGhlbWU6dyxjb250YWluZXJSZWY6eCxmb250RmFtaWx5OnMsZm9udFdlaWdodDpvLGNvbG9yS2V5OnIsY2hhbmdlZENvbG9yS2V5OnksdGFidWxhck51bWJlcnM6YywiZGF0YS12YWx1ZSI6ZSwiZGF0YS10ZXN0aWQiOmwsc3R5bGU6KDAscC51c2VNZW1vKSgoKT0+aD97d2lkdGg6YG1heC1jb250ZW50YCwuLi5BLnNjYWxlPDE/e3RyYW5zZm9ybTpgc2NhbGUoJHtBLnNjYWxlfSlgLHRyYW5zZm9ybU9yaWdpbjpgbGVmdCB0b3BgfTp7fX06dm9pZCAwLFtoLEEuc2NhbGVdKSxjaGlsZHJlbjpnLm1hcChlPT57bGV0e2NoYXI6dCxjaGFyT3ZlcmZsb3c6cixrZXk6aSxzdHJpcFZhbHVlSW5kZXg6YX09ZSxvPUVbYV07cmV0dXJuIGE9PT0tMXx8dHlwZW9mIG89PWBudW1iZXJgJiZvPjA/KDAsZi5qc3gpKHYse3RyYW5zaXRpb246bixzdHJpcFZhbHVlSW5kZXg6YSx3aWR0aDpvLGNoYXI6dCxjaGFyT3ZlcmZsb3c6cn0saSk6bnVsbH0pfSk7cmV0dXJuIGg/KDAsZi5qc3gpKGkse3JlZjpPLHN0eWxlOk4sImRhdGEtdGVzdGlkIjpsP2Ake2x9LXNjYWxlLXdyYXBwZXJgOnZvaWQgMCxjaGlsZHJlbjpQfSk6UH12YXIgRD1lPT5zKFtgMCV7Y29sb3I6YCxgO301MCV7Y29sb3I6YCxgO30xMDAle2NvbG9yOmAsYDt9YF0sZS5jb2xvcktleT9lLnRoZW1lLmNvbG9yW2UuY29sb3JLZXldOmB1bnNldGAsZS5jaGFuZ2VkQ29sb3JLZXk/ZS50aGVtZS5jb2xvcltlLmNoYW5nZWRDb2xvcktleV06YHVuc2V0YCxlLmNvbG9yS2V5P2UudGhlbWUuY29sb3JbZS5jb2xvcktleV06YHVuc2V0YCksTz1uKFtgZm9udC12YXJpYW50LW51bWVyaWM6YCxgO2ZvbnQtc2l6ZTpgLGA7Zm9udC1mYW1pbHk6YCxgO2ZvbnQtd2VpZ2h0OmAsYDtjb2xvcjpgLGA7YW5pbWF0aW9uOmAsYCAxcyBlYXNlLWluLW91dDtgXSxlPT5lLnRhYnVsYXJOdW1iZXJzP2B0YWJ1bGFyLW51bXNgOmBub3JtYWxgLGU9PmUudGhlbWUuZm9udFNpemVbZS5mb250U2l6ZXx8YG1lZGl1bWBdLGU9PmUudGhlbWUuZm9udEZhbWlseVtlLmZvbnRGYW1pbHldLGU9PmUudGhlbWUuZm9udFdlaWdodFtlLmZvbnRXZWlnaHRdLGU9PmUuY29sb3JLZXk/ZS50aGVtZS5jb2xvcltlLmNvbG9yS2V5XTpgdW5zZXRgLGU9PkQoZSkpLGs9dChsKS53aXRoQ29uZmlnKHtzaG91bGRGb3J3YXJkUHJvcDplPT4hW2Bjb250YWluZXJSZWZgLGBmb250U2l6ZWAsYGNoYW5nZWRDb2xvcktleWAsYGNvbG9yS2V5YCxgdGFidWxhck51bWJlcnNgLGBmb250RmFtaWx5YCxgZm9udFdlaWdodGBdLmluY2x1ZGVzKGUpfSkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YFByaWNlVGlja2VyX19QcmljZVRpY2tlckNvbnRhaW5lcmAsY29tcG9uZW50SWQ6YHNjLTFkMGNhMzIwLTJgfSkoW2BgLGBgXSxlPT5lLmZvbnRTaXplP086IWUuZm9udFNpemUmJiFlLmNvbnRhaW5lclJlZj9gCiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgIGA6YGApLEE9bS5pbmRleE9mKGAuYCksaj1bLjEyNywuMTA1LC4yNjgsLjEyNywuMTQzLC4wOCwuMTUzLC4xOTQsLjcyLC4xMDUsMCwwLDBdO2Z1bmN0aW9uIE0oZSx0LG4scixpLGEsbyl7bGV0IHM9ZT49QTtpZighKHR5cGVvZiB3aW5kb3c8YHVgJiZ0eXBlb2YgZG9jdW1lbnQ8YHVgKSl7bGV0IHQ9e25vcm1hbDouNixzZXBhcmF0b3I6LjJ9O2lmKCFhKXJldHVybiBzP2Ake3Quc2VwYXJhdG9yfWNoYDpgJHt0Lm5vcm1hbH1jaGA7bGV0IHI9bi5mb250U2l6ZVthXT9wYXJzZUZsb2F0KG4uZm9udFNpemVbYV0pOjEsaT1zP3Quc2VwYXJhdG9yOnQubm9ybWFsLGM9bz9qW2VdOjE7cmV0dXJuIGkqcipjfWxldCBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYGNhbnZhc2ApLmdldENvbnRleHQoYDJkYCk7aWYoIWMpcmV0dXJuIHM/YDAuNWNoYDpgMWNoYDtpZihhKXtjLmZvbnQ9YCR7bi5mb250V2VpZ2h0W3JdfSAke24uZm9udFNpemVbYV19ICR7bi5mb250RmFtaWx5W2ldfWA7bGV0IHQ9Yy5tZWFzdXJlVGV4dChtW2VdKSxzPW8/dC53aWR0aCpqW2VdOjA7cmV0dXJuIHQud2lkdGgrc31pZih0KXtsZXR7Zm9udFdlaWdodDpuLGZvbnRTaXplOnIsZm9udEZhbWlseTppfT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTtyZXR1cm4gYy5mb250PWAke259ICR7cn0gJHtpfWAsYy5tZWFzdXJlVGV4dChtW2VdKS53aWR0aH1yZXR1cm4gMH12YXIgTj0oMCxwLm1lbW8pKEUpO2V4cG9ydHtOIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0R3TkU0SWtHMi5qcy5tYXA="}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_B_R_VgWn.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.708Z","timestamp":1785108244708,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_B_R_VgWn.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:18 GMT\r\nvary: accept-encoding\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=qQw8YRny4k2wLZrZvK9rQjZebWtJQ6NdtEt41F7TaVOYMDqaTVVGCqabXxjFkrjBSeNvW5Y7I2l7N83Lsn%2FRoNLK0H55L8cYbr3ekzWXPXKLxyNJrVgXPjO2VcyX55J4ssQQp2fUYM71ZVyoucxb\"}]}\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 6afc1e2f2cc07cf231f656b15f1430cc.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: eOjtCvg7igvE8LWyGl46QMse4RHuL_QqMRyjaUiCo9Wdlpbpz_lM1g==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 2633\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\netag: W/\"4c0263bcfd30de78973f4afa0d88043c\"\r\ncontent-encoding: gzip\r\ncf-ray: a21727e16f5f0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":921,"size_decoded":1637,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (882)","md5":"4c0263bcfd30de78973f4afa0d88043c","sha1":"75aed3559a957c817157a3a50d1ee2c4beb50144","sha256":"35b9cdd90e146c52d5c89c4c8f43c7042f1d75f2bccb14f3174e75c2932e1a6a","sha512":"cf6ea3f9c244e196822526db1b90f4c394de4a8a9c76c914f5e7c33a0019b788d47dfa6c46246a1dfc754aa842398a62a8cad80583d069c9ced04bd7f206546a","ssdeep":"","tlshash":"3911e3c28af23e56f298975e853b0503233e5135958e4e55b33a5e6d173c885bb8cb83","first_seen":"2026-07-26T23:24:50.209528Z","last_seen":"2026-07-26T23:25:46.886198Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGEwODMzMTc5LTcxNjgtNGNjOC1iZDNhLWU2MmNhMzA0NWIwMWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWEwODMzMTc5LTcxNjgtNGNjOC1iZDNhLWU2MmNhMzA0NWIwMWApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsaGYgYXMgdH1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIG49ZSh0KCkpLHI9KHtzaG91bGRTZXRUaW1lb3V0OmUsY2FsbGJhY2s6dCx0aW1lb3V0OnJ9KT0+eygwLG4udXNlRWZmZWN0KSgoKT0+e2lmKGUpe2xldCBlPXNldFRpbWVvdXQodCxyKTtyZXR1cm4oKT0+Y2xlYXJUaW1lb3V0KGUpfX0sW2UsdCxyXSl9LGk9KHtjYW5EaXNwbGF5OmUsZGVsYXlUaW1lOnQsdHJhbnNpdGlvblRpbWU6aSxieXBhc3NEZWxheTphfSk9PntsZXRbbyxzXT0oMCxuLnVzZVN0YXRlKShlKSxjPSgwLG4udXNlQ2FsbGJhY2spKCgpPT5zKCEwKSxbXSksbD0oMCxuLnVzZUNhbGxiYWNrKSgoKT0+cyghMSksW10pO3JldHVybiByKHtzaG91bGRTZXRUaW1lb3V0OmUmJiFvLGNhbGxiYWNrOmMsdGltZW91dDp0Pz8xMH0pLHIoe3Nob3VsZFNldFRpbWVvdXQ6IWUmJm8sY2FsbGJhY2s6bCx0aW1lb3V0Oml9KSxhP3tjYW5SZW5kZXI6byxpc1Zpc2libGU6b306e2NhblJlbmRlcjplfHxvLGlzVmlzaWJsZTplJiZvfX07ZXhwb3J0e2kgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQl9SX1ZnV24uanMubWFw"}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/googlesans/v62/4UaRrENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iq2vgCIhMl07v0x.woff2","fqdn":"fonts.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":"font","requested_by":"https://accounts.google.com/gsi/iframe/select?client_id=1080018929571-t143o72j7g4a93rio80higse5c127qlt.apps.googleusercontent.com\u0026ux_mode=popup\u0026ui_mode=card\u0026as=P4YV9BuuJfbPkhgedIgHB68Ic8tZeptD9W32v2w9bj8\u0026bs=Ipbn%2F3QC3VM9I38GIrtJVmLS5Dk1IjofnbHBYLgAhPQ\u0026is_itp=true\u0026channel_id=812f53114c3fe45c26c43b93689aef793f17c7859e69e0ece104b435922a6230\u0026origin=https%3A%2F%2Fwww.coinbase.com\u0026oauth2_auth_url=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Fv2%2Fauth","date":"2026-07-26T23:24:06.749Z","timestamp":1785108246749,"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/googlesans/v62/4UaRrENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iq2vgCIhMl07v0x.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://accounts.google.com\r\nSec-GPC: 1\r\nConnection: keep-alive\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: 55216\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:22 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:22 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 29 Oct 2024 18:37:59 GMT\r\ncontent-type: font/woff2\r\nage: 382424\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":55216,"size_decoded":56029,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 55216, version 1.0","md5":"79a898c4178c1c3da9702e53272b28f4","sha1":"47039421fbe12912a6ec8731181f20b0d084eda9","sha256":"d1f470e35f02537a3290ad9015b7c81fe9ca3295f6e691ef564520bcb6314501","sha512":"0a7894f91f314ada88b69e8e710e42fc3c69e5abba5149a52a3ae7aacbc09bcd6332626c1c5bf9f7637d5d1ced6fac7e3a0cffeb780b733b879b71fc7322813a","ssdeep":"768:GM5rYySQ4HdDApsqID60V1GIchzku+4/Asgjo4f7vmyKjrE7iE7RvJ80cDrATlkO:HIe0mxoNkAY4fFK07vM0cDrqzAhHSTf","tlshash":"f04301ebb01a1189e6a2207112261979609b84e19f3fa118717f638d8cd7bfd75d8374","first_seen":"2025-03-21T06:19:09.564073Z","last_seen":"2026-07-27T01:58:24.314391Z","times_seen":119729,"resource_available":false,"data":"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"}},"time_used":85,"timings":{"blocked":-1,"dns":2,"connect":34,"send":0,"wait":16,"receive":33,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/logos/static/ot_close.svg","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:09.059Z","timestamp":1785108249059,"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":"cookielaw.org","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:47:21 GMT","end":"Tue, 20 Oct 2026 23:47:08 GMT"},"fingerprint":{"sha1":"BE:65:35:7C:E3:8D:B8:0C:7D:40:51:C7:4B:EE:56:FE:FD:2D:ED:91","sha256":"D6:A8:FD:24:40:A2:7D:0B:B5:73:08:9C:B2:AC:6E:1F:84:CC:D4:09:7B:BA:22:E8:A5:38:A4:10:29:65:88:5C"}}},"request":{"raw":"GET /logos/static/ot_close.svg HTTP/1.1\r\nHost: cdn.cookielaw.org\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\nReferer: https://www.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:09 GMT\r\ncontent-type: image/svg+xml\r\ncontent-md5: pcXWFGpuVeSg/jVnYCseRg==\r\nlast-modified: Thu, 23 Jul 2026 17:59:41 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nserver: cloudflare\r\nx-ms-request-id: ae223a1b-d01e-0027-192a-1b09c3000000\r\nx-ms-version: 2009-09-19\r\nx-ms-lease-status: unlocked\r\nx-ms-blob-type: BlockBlob\r\naccess-control-expose-headers: x-ms-request-id,Server,x-ms-version,Content-Type,ETag,Last-Modified,Content-MD5,x-ms-lease-status,x-ms-blob-type,Content-Length,Date,Transfer-Encoding\r\naccess-control-allow-origin: *\r\nx-content-type-options: nosniff\r\ncross-origin-resource-policy: cross-origin\r\nage: 65633\r\ncache-control: max-age=86400\r\ncf-cache-status: HIT\r\ncontent-encoding: gzip\r\ncf-ray: a21727fcaa2432fa-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":651,"size_decoded":1164,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"a5c5d6146a6e55e4a0fe3567602b1e46","sha1":"c75ff1b713378aec779fb248e22daa513aca725b","sha256":"901bb0e03b8c3c0a1cf4c487a177417328bb7d8c94106ecefceedd7d7f6c4ddc","sha512":"d21d979974542243a4d70036f87bfc0549b6793b809ed09044946be2a25c47811a99e20fdb1f3044082a5509664101d4bca241a1ca7b09fe80084ceafa092368","ssdeep":"","tlshash":"a3f0f9ea9b7464f56a6987f8f7250d823477886868198764c83d171eb4c384c6d1ce06","first_seen":"2023-05-04T08:49:37Z","last_seen":"2026-07-27T01:42:32.747408Z","times_seen":44526,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNDguMzMzIiBoZWlnaHQ9IjM0OC4zMzMiIHZpZXdCb3g9IjAgMCAzNDguMzMzIDM0OC4zMzQiPjxwYXRoIGZpbGw9IiM1NjU2NTYiIGQ9Ik0zMzYuNTU5IDY4LjYxMUwyMzEuMDE2IDE3NC4xNjVsMTA1LjU0MyAxMDUuNTQ5YzE1LjY5OSAxNS43MDUgMTUuNjk5IDQxLjE0NSAwIDU2Ljg1LTcuODQ0IDcuODQ0LTE4LjEyOCAxMS43NjktMjguNDA3IDExLjc2OS0xMC4yOTYgMC0yMC41ODEtMy45MTktMjguNDE5LTExLjc2OUwxNzQuMTY3IDIzMS4wMDMgNjguNjA5IDMzNi41NjNjLTcuODQzIDcuODQ0LTE4LjEyOCAxMS43NjktMjguNDE2IDExLjc2OS0xMC4yODUgMC0yMC41NjMtMy45MTktMjguNDEzLTExLjc2OS0xNS42OTktMTUuNjk4LTE1LjY5OS00MS4xMzkgMC01Ni44NWwxMDUuNTQtMTA1LjU0OUwxMS43NzQgNjguNjExYy0xNS42OTktMTUuNjk5LTE1LjY5OS00MS4xNDUgMC01Ni44NDQgMTUuNjk2LTE1LjY4NyA0MS4xMjctMTUuNjg3IDU2LjgyOSAwbDEwNS41NjMgMTA1LjU1NEwyNzkuNzIxIDExLjc2N2MxNS43MDUtMTUuNjg3IDQxLjEzOS0xNS42ODcgNTYuODMyIDAgMTUuNzA1IDE1LjY5OSAxNS43MDUgNDEuMTQ1LjAwNiA1Ni44NDR6Ii8+PC9zdmc+"}},"time_used":7,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":7,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CoOOoLEB.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.601Z","timestamp":1785108244601,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CoOOoLEB.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 636\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\netag: \"ffde134e23ffdeabe0874a4472f65bf7\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 989f99ee395e1518e57a7f379f85a526.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: BOS50-P6\r\nx-amz-cf-id: k7Q7WnMiEw_UdbWEAIv2HtWBCxxFI3vUySLHFxQy6hJKdVmfI9u1Cg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=G9Twlbf4BdsWQ6X9HyWKo04QTeXJw4CK10r65Wmw4rFDKgDQ2iqr%2FFETbJoNslUXYX51E2yhYUkD3r6NDsFYdGAYBNcEJO3C66Kufr861G7ueetUQz7VRhhG45qigEu4gbsWA86FxkEb5StfwLHf\"}]}\r\ncf-ray: a21727e0cdcc0883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1410,"size_decoded":1774,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1371)","md5":"a1280bd648677f4d249347380f2a2064","sha1":"e876d98c4539c15762fab498234a9291773df239","sha256":"64491ce3c83bf5472ffe295b318f922ab79757a13e30b09042400f6b0863158b","sha512":"decf3d743f3e08e209d8ab8c70a1fcced5873c2e44b8c1e2564221c67b2e8e4600e515676245f54daffb2ce1ddf69e9473a92f2aa224dfa964ea8cf73d6265e7","ssdeep":"","tlshash":"d7217642dffd3c0a9433295cd185e2422158313ef14e8738f6315a3696fe5bb2514b43","first_seen":"2026-07-26T23:24:50.212829Z","last_seen":"2026-07-26T23:25:46.916534Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGZmZjc1OTliLWJkODUtNGM4ZC05ZWYyLWQ3YWFjYjUzM2IzOWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWZmZjc1OTliLWJkODUtNGM4ZC05ZWYyLWQ3YWFjYjUzM2IzOWApfSkoKX1jYXRjaHt9aW1wb3J0e19hIGFzIGUsZmYgYXMgdH1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIG49dCgpO2Z1bmN0aW9uIHIoe3dlaWdodDplPWBtZWRpdW1gLHNpemU6dD1gbWVkaXVtYCxjb2xvcjpyPWBzbGF0ZURhcmtgLG1vbm9zcGFjZTphPSExLG5vd3JhcDpvPSExLGlubGluZTpzPSExLC4uLmN9KXtyZXR1cm4oMCxuLmpzeCkoaSx7d2VpZ2h0OmUsc2l6ZTp0LGNvbG9yOnIsbW9ub3NwYWNlOmEsbm93cmFwOm8saW5saW5lOnMsLi4uY30pfXZhciBpPWUuc3Bhbi53aXRoQ29uZmlnKHtzaG91bGRGb3J3YXJkUHJvcDplPT4hW2Bub3dyYXBgLGBpdGFsaWNgLGBjZW50ZXJgLGBjb2xvcmAsYHNpemVgLGB3ZWlnaHRgLGBtb25vc3BhY2VgLGBpbmxpbmVgXS5pbmNsdWRlcyhlKX0pLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBUZXh0X19Gb250YCxjb21wb25lbnRJZDpgc2MtYTUwNzI2YzEtMGB9KShbYGRpc3BsYXk6YCxgO2ZvbnQtZmFtaWx5OmAsYDtmb250LXdlaWdodDpgLGA7bGluZS1oZWlnaHQ6MS41O2ZvbnQtc2l6ZTpgLGA7Y29sb3I6YCxgO2AsYDtgLGA7YCxgO3dvcmQtYnJlYWs6YnJlYWstYWxsO3dvcmQtYnJlYWs6YnJlYWstd29yZDtgXSwoe2lubGluZTplfSk9PmU/YGlubGluZWA6YGlubGluZS1ibG9ja2AsKHttb25vc3BhY2U6ZSx0aGVtZTp0fSk9PmU/dC5mb250RmFtaWx5Lm1vbm9zcGFjZTp0LmZvbnRGYW1pbHkucmVndWxhciwoe3RoZW1lOmUsd2VpZ2h0OnR9KT0+ZS5mb250V2VpZ2h0W3RdLCh7dGhlbWU6ZSxzaXplOnR9KT0+ZS5mb250U2l6ZVt0XSwoe3RoZW1lOmUsY29sb3I6dH0pPT50PT09YGxpZ2h0YD9lLmNvbG9yLnRleHRMaWdodDp0PT09YGFjY2VudGA/ZS5jb2xvci50ZXh0QWNjZW50OmUuY29sb3JbdF0/ZS5jb2xvclt0XTplLmNvbG9yLnRleHQsKHtjZW50ZXI6ZX0pPT5lJiZgdGV4dC1hbGlnbjogY2VudGVyO2AsKHtpdGFsaWM6ZX0pPT5lJiZgZm9udC1zdHlsZTogaXRhbGljYCwoe25vd3JhcDplfSk9PmUmJmB3aGl0ZS1zcGFjZTogbm93cmFwYCk7ZXhwb3J0e3IgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQ29PT29MRUIuanMubWFw"}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CnAYB1FP.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.605Z","timestamp":1785108244605,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CnAYB1FP.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:23 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"2744eb12079e896f11cd7f499d3494de\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 06cacd0422733e64f8afbe400dd4457c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: SWMgQsAPGvsxvd0YCFw9eljYIfc4M-vmBXREdUcrwPA2HQqFfwM-Cw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=IYgF2MbhpLqLd4bLJXk9O9hrTXTTxBlFIXnZFEBJ%2BRLidj7b2QFoOFHo4BukYF5Q1e4ZBmZHDnqEyWS39cljzBTKdvJLJo5ToXy2WHRyofWaQVF%2B7Mp08f9F8tJQhxKLTnUdsOtspA7gxPsyZZa2\"}]}\r\ncf-ray: a21727e0cddf0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":1282,"size_decoded":1783,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1243)","md5":"2744eb12079e896f11cd7f499d3494de","sha1":"9dfd538caf3145f50c61a4293270055869dfccb5","sha256":"a9f1bf40360c9c99f4ccd66ade7597166353a876d79ee981c0768cb6f188053b","sha512":"e2ccb1c88d05bf3d14573ec96e48059260c2afdd389a033b1eb7e52a4addf256456fb435b3ee5abb3ebc621c5a3361e5f1e78cb27ca2d857bae4653a57975e4e","ssdeep":"","tlshash":"9421e2d18ff51d30a2d8d73ee25b93123e1e14b6a04d1514e13dade51365dcb44e8683","first_seen":"2026-07-26T23:24:50.214386Z","last_seen":"2026-07-26T23:25:46.821891Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGViNjIzNTRjLTM3NDktNDc2ZC1hMWJiLTQxNjU4OWMwN2IwZWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWViNjIzNTRjLTM3NDktNDc2ZC1hMWJiLTQxNjU4OWMwN2IwZWApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsaGYgYXMgdH1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIG49ZSh0KCkpO2Z1bmN0aW9uIHIoZSl7bGV0IHQ9dHlwZW9mIHdpbmRvdzxgdWAmJndpbmRvdy5tYXRjaE1lZGlhP3dpbmRvdy5tYXRjaE1lZGlhKGUpOnZvaWQgMDtyZXR1cm4gdCYmdC5hZGRFdmVudExpc3RlbmVyJiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXI/dDp2b2lkIDB9dmFyIGk9ZT0+e2xldCB0PWU9PnthJiYocy5wdXNoKGUpLHMubGVuZ3RoPT09MSYmYS5hZGRFdmVudExpc3RlbmVyKGBjaGFuZ2VgLG8pKX0sbj1lPT57YSYmKHM9cy5maWx0ZXIodD0+dCE9PWUpLHMubGVuZ3RoPT09MCYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGBjaGFuZ2VgLG8pKX0saT0oKT0+cy5sZW5ndGg+MCxhPXIoZSksbz0oe21hdGNoZXM6ZX0pPT57cy5mb3JFYWNoKHQ9PnQoZSkpfSxzPVtdO3JldHVybnthZGRMaXN0ZW5lcjp0LHJlbW92ZUxpc3RlbmVyOm4saGFzTGlzdGVuZXJzOml9fSxhPSgoKT0+e2xldCBlPShlLG4pPT57dFtlXXx8KHRbZV09aShlKSk7bGV0IHI9dFtlXTtyZXR1cm4gci5hZGRMaXN0ZW5lcihuKSwoKT0+e3IucmVtb3ZlTGlzdGVuZXIobiksci5oYXNMaXN0ZW5lcnMoKXx8ZGVsZXRlIHRbZV19fSx0PXt9O3JldHVybiBlfSkoKSxvPSh7cXVlcnk6ZSxpbml0aWFsVmFsdWU6dH0pPT57bGV0W2ldPSgwLG4udXNlU3RhdGUpKCgpPT57dmFyIHQ7cmV0dXJuKCh0PXIoZSkpPT1udWxsP3ZvaWQgMDp0Lm1hdGNoZXMpfHwhMX0pLFtvXT0oMCxuLnVzZVN0YXRlKSgoKT0+dD09PXZvaWQgMD9pOnQpLFtzLGNdPSgwLG4udXNlU3RhdGUpKG8pO3JldHVybigwLG4udXNlRWZmZWN0KSgoKT0+e2MoaSl9LFtdKSwoMCxuLnVzZUVmZmVjdCkoKCk9PmEoZSxjKSxbZV0pLHN9O2V4cG9ydHtvIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0NuQVlCMUZQLmpzLm1hcA=="}},"time_used":114,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":114,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CkMdy1_k2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.624Z","timestamp":1785108244624,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CkMdy1_k2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 455\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\netag: \"abbd54860fb71f8f708e07dba7c1ee80\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 575693ca51d2d9242d8177dfeb274d24.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: IAD12-P5\r\nx-amz-cf-id: QNHGvM8v8LnGu6xkDfjMYSrNWe7AjdNrEbIXBpBA6rSf1TfRpEUUGQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Jt3wK3y1uQh%2FznUrhIC0LkNlqBhdGGJKZiD6aJmh4EjYCzvC5vMzXWujGnrrsvx39NrVKgVcDd3%2FOgzQPfR%2FWeTISnMBti3cZOtsXxtcJjWFeABXopdS1is5UTYEk1wGyhPsWzKEIPoDrx8408gV\"}]}\r\ncf-ray: a21727e0ee300883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":823,"size_decoded":1597,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (783)","md5":"17c689be543616a18c457c8372b014f3","sha1":"1cc695912265649b05b2abb52b79f2da361f0faa","sha256":"2376bc4e17127a42bce1a84ef297361d67fa5d93f75afa7f6c28b540cdb1c660","sha512":"30c4fbdbf9c287b0ac13d4d4e76a865ba87eccc20b93df9f5e784c9322dd175d24c3698cc89ece91ca5e732231e9f1fab047f1324186b83fb178aa857769f59c","ssdeep":"","tlshash":"d201f1c6c6f837a9d15433adc241404132686127c34e8aa8f729192c67a9dc7d255653","first_seen":"2026-07-26T23:24:50.215924Z","last_seen":"2026-07-26T23:25:46.851403Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDQ2ZDZjOTAyLTljNzQtNDcyZi1iODU5LWZiMWE2NDViMWU4OGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTQ2ZDZjOTAyLTljNzQtNDcyZi1iODU5LWZiMWE2NDViMWU4OGApfSkoKX1jYXRjaHt9aW1wb3J0e09pIGFzIGUsUXMgYXMgdCxXcCBhcyBuLGhmIGFzIHJ9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBpPW4ocigpKSxhPShlLHQpPT4hZXx8ZS5sZW5ndGg9PT0wPyEwOmUuc29tZShlPT5lLnRvTG93ZXJDYXNlKCk9PT10LnRvTG93ZXJDYXNlKCkpLG89KHtleHBlcmltZW50TmFtZTpuLGluY2x1ZGVkQ291bnRyaWVzOnIsaW5jbHVkZWRMYW5ndWFnZXM6byxzZWxlY3RlZFZhcmlhbnRzOnN9KT0+e2xldHtjb3VudHJ5RnJvbUlwOmMsbG9jYWxlQ29kZTpsfT1lKCksdT0oMCxpLnVzZU1lbW8pKCgpPT5hKHIsYyksW2Mscl0pLGQ9KDAsaS51c2VNZW1vKSgoKT0+YShvLGwpLFtsLG9dKSxmPXUmJmQscD10KHtuYW1lOm4sZ3JvdXBzOnMubWFwKGU9PmUubmFtZSl9LHtza2lwVHJhY2tpbmc6IWZ9KTtyZXR1cm4gZj9wOmBjb250cm9sYH07ZXhwb3J0e28gYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQ2tNZHkxX2syLmpzLm1hcA=="}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_COJwGqnl2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.648Z","timestamp":1785108244648,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_COJwGqnl2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"5e5dc03b5a87072c3c9b171c7ad60a04\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 da0d6aa5f636a59073949bb9b7c3478a.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: MMj_yRuX0Pa9Y-e8Sl8X2d4W55C5EmeKdn3iDjNOODTqZ9qHO3bDoA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=zgRzN7EneXxAG5oWQSBtU%2FMVB%2FHbTHOozGtoRI7XxHj52aPumgiBI%2F8BMNtmgcIHlqJGqdd3Hpz7v2REtUMSZeP3kCI49NOwg1SFpcUdSZheEkqk0T%2FpnYv552zjksRSfB5hgz5X6VfY%2FH9I1nDN\"}]}\r\ncf-ray: a21727e10e7a0883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":4897,"size_decoded":2743,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (4857)","md5":"5e5dc03b5a87072c3c9b171c7ad60a04","sha1":"5d63314e077f887cf7d3cce84ee7655b60eccdf6","sha256":"17f5d2df2ce90b95de262b7578b9e39eaca13ea5bcfb2aea4229c49dcfbc34a0","sha512":"6420f66047a223f847df07a38129a3b9e3c52ce684e2aae39e6da24c1bd29c939480f1b95a3b60dfcb796b3b14dc9f81eaae0fac294975bdb2318713975195dd","ssdeep":"96:xEhtyUzdoK6+DUXF0nxayWGASzURoKjsDGXFiq6ay0xfPAK:0zdov+o1JGpURomsa1/nAK","tlshash":"9ba1a5c1b3f8bfb060e1c75880bfa906f11471125879b050f771acb05aa485ba5e5f13","first_seen":"2026-07-26T23:24:50.217609Z","last_seen":"2026-07-26T23:25:46.815784Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGYyM2M1MDFhLTI1MzQtNGYzNy05NzM5LWIyYTQzMjAwZTI5NmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWYyM2M1MDFhLTI1MzQtNGYzNy05NzM5LWIyYTQzMjAwZTI5NmApfSkoKX1jYXRjaHt9aW1wb3J0e3QgYXMgZX1mcm9tIi4vY19EQ3FlM2JxZi5qcyI7aW1wb3J0e1dwIGFzIHQsYmwgYXMgbixmZCBhcyByLGZmIGFzIGksaGYgYXMgYSxvZCBhcyBvLHhsIGFzIHN9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBjPXQoYSgpKSxsPWkoKSx1PVtgYXNgLGB0ZXN0SURgLGBjaGlsZHJlbmAsYG1heFdpZHRoYCxgbWluV2lkdGhgLGBib3JkZXJSYWRpdXNgLGBwYWRkaW5nYCxgZ2FwYF07ZnVuY3Rpb24gZChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGYoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/ZChPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7cChlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpkKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBwKGUsdCxuKXtyZXR1cm4odD1tKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIG0oZSl7dmFyIHQ9aChlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBoKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gZyhlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG4scixpPV8oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIF8oZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmRleE9mKHIpIT09LTEpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufXZhciB2PWBhcnRpY2xlYCx5PSgwLGMubWVtbykoKDAsYy5mb3J3YXJkUmVmKSgoZSx0KT0+e2xldHthczpyLHRlc3RJRDppLGNoaWxkcmVuOmEsbWF4V2lkdGg6bz04MDAsbWluV2lkdGg6cz0yODAsYm9yZGVyUmFkaXVzOmM9NTAwLHBhZGRpbmc6ZD0yLGdhcDpwPTJ9PWUsbT1nKGUsdSk7cmV0dXJuKDAsbC5qc3gpKG4sZihmKHtyZWY6dCxhczpyPz92LGJvcmRlclJhZGl1czpjLGdhcDpwLG1heFdpZHRoOm8sbWluV2lkdGg6cyxwYWRkaW5nOmQsdGVzdElEOml9LG0pLHt9LHtjaGlsZHJlbjphfSkpfSkpLGI9W2Bhc2AsYGF2YXRhcmAsYHRpdGxlYCxgbWV0YWAsYGVuZGAsYHN1YnRpdGxlYCxgYWN0aW9uc2AsYHRodW1ibmFpbGAsYHN0eWxlc2AsYHN0eWxlYCxgY2xhc3NOYW1lc2AsYGNsYXNzTmFtZWAsYGdhcGBdO2Z1bmN0aW9uIHgoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBTKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP3goT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe0MoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6eChPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gQyhlLHQsbil7cmV0dXJuKHQ9dyh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiB3KGUpe3ZhciB0PVQoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gVChlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIEUoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT1EKGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1mdW5jdGlvbiBEKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgTz1gaGVhZGVyYCxrPSgwLGMubWVtbykoKDAsYy5mb3J3YXJkUmVmKSgodCxpKT0+e2xldHthczphLGF2YXRhcjp1LHRpdGxlOmQsbWV0YTpmLGVuZDpwLHN1YnRpdGxlOm09ZixhY3Rpb25zOmg9cCx0aHVtYm5haWw6ZyxzdHlsZXM6XyxzdHlsZTp2LGNsYXNzTmFtZXM6eSxjbGFzc05hbWU6eCxnYXA6Qz0xLjV9PXQsdz1FKHQsYiksVD1hPz9PLEQ9KDAsYy51c2VNZW1vKSgoKT0+dHlwZW9mIGQ9PWBzdHJpbmdgPygwLGwuanN4KShvLHthczpgZGl2YCxmb250OmBsYWJlbDFgLG51bWJlck9mTGluZXM6MSxjaGlsZHJlbjpkfSk6ZCxbZF0pLGs9KDAsYy51c2VNZW1vKSgoKT0+dHlwZW9mIG09PWBzdHJpbmdgPygwLGwuanN4KShvLHthczpgZGl2YCxjb2xvcjpgZmdNdXRlZGAsZm9udDpgbGVnYWxgLG51bWJlck9mTGluZXM6MSxjaGlsZHJlbjptfSk6bSxbbV0pLEE9KDAsYy51c2VNZW1vKSgoKT0+Z3x8KHR5cGVvZiB1PT1gc3RyaW5nYD8oMCxsLmpzeCkoZSx7YWx0OnR5cGVvZiBkPT1gc3RyaW5nYD9kOnZvaWQgMCxuYW1lOnR5cGVvZiBkPT1gc3RyaW5nYD9kOnZvaWQgMCxzaGFwZTpgY2lyY2xlYCxzaXplOmBsYCxzcmM6dX0pOnUpLFtnLHUsZF0pO3JldHVybigwLGwuanN4cykocyxTKFMoe3JlZjppLGFsaWduSXRlbXM6YGNlbnRlcmAsYXM6VCxjbGFzc05hbWU6cih5PT1udWxsP3ZvaWQgMDp5LnJvb3QseCksZ2FwOkMsanVzdGlmeUNvbnRlbnQ6YHNwYWNlLWJldHdlZW5gLHN0eWxlOlMoUyh7fSx2KSxfPT1udWxsP3ZvaWQgMDpfLnJvb3QpfSx3KSx7fSx7Y2hpbGRyZW46WygwLGwuanN4cykocyx7YWxpZ25JdGVtczpgY2VudGVyYCxjbGFzc05hbWU6eT09bnVsbD92b2lkIDA6eS5jb250ZW50Q29udGFpbmVyLGdhcDoxLjUsc3R5bGU6Xz09bnVsbD92b2lkIDA6Xy5jb250ZW50Q29udGFpbmVyLGNoaWxkcmVuOltBLCgwLGwuanN4cykobix7Y2xhc3NOYW1lOnk9PW51bGw/dm9pZCAwOnkudGV4dENvbnRhaW5lcixmbGV4R3JvdzoxLGp1c3RpZnlDb250ZW50OmBmbGV4LXN0YXJ0YCxzdHlsZTpfPT1udWxsP3ZvaWQgMDpfLnRleHRDb250YWluZXIsY2hpbGRyZW46W0Qsa119KV19KSxoXX0pKX0pKTtleHBvcnR7eSBhcyBuLGsgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQ09Kd0dxbmwyLmpzLm1hcA=="}},"time_used":108,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":108,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_s0Lq3TNF.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.712Z","timestamp":1785108244712,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_s0Lq3TNF.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 410\r\nlast-modified: Sun, 26 Jul 2026 22:31:31 GMT\r\netag: \"ae092c57c873a2cae3602a187c499bea\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 d6b9aa181ba5a92d5b44b5660b83ef38.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: aSvWU4uX6C5IQVRINafef3CVUNpENVUWb_um99QPWb3t9NMpMyEV1w==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=JtBdPhFzzregpL6%2Fg2fb5XDOrS3WlB%2BGSJePUiuYYgK2y3xwcM%2FjRX7q7f767GQzYzCAddUjQEDamSgaiiPHo6lvmF%2FKQwGgXIk7pBdOM7sBI%2FKul6JRVPaPCwnIl9rby0WIvvRCokl%2FuMduUM%2Ff\"}]}\r\ncf-ray: a21727e17f6b0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":723,"size_decoded":1561,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (684)","md5":"d1a99311849270e6ab4b22992278d383","sha1":"1e86f70f7ba49376efc2e252624aad66076c2ecb","sha256":"3d461764c0bfa6610a305ea1fbbe3a95b13cf87d4ef3276259a5890fdc81d5b8","sha512":"3b5d469a1e79969d6436d698f50ce484e447fdf42d0731ebf40619879bc339f67a29e1083e38da6c05989af687767798c9d60c251fa04a450654e6a397be5e81","ssdeep":"","tlshash":"d80115c575f03fb5d06506add01552073327616b539d4b24d015073c176cec9eb54f47","first_seen":"2026-07-26T23:24:50.219286Z","last_seen":"2026-07-26T23:25:46.812702Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGI3ZGU2ZDdhLWY4YjgtNDZhNi05MTlkLTE0ZGM0N2YxNjlhMmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWI3ZGU2ZDdhLWY4YjgtNDZhNi05MTlkLTE0ZGM0N2YxNjlhMmApfSkoKX1jYXRjaHt9aW1wb3J0e09pIGFzIGUsUG8gYXMgdCxZYyBhcyBuLGZmIGFzIHJ9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO2ltcG9ydHt0IGFzIGl9ZnJvbSIuL2NfTHVWMVpMWHUuanMiO3ZhciBhPXIoKTtmdW5jdGlvbiBvKHtjaGlsZHJlbjpyLGlzQ2xpZW50U2lkZU5hdmlnYXRpb246bz0hMSwuLi5zfSl7bGV0e2hyZWY6YyxvbkNsaWNrOmwsLi4udX09cyx7bG9jYWxlRnJvbVVybDpkfT1lKCksZj1pKGQsYyk7cmV0dXJuIWMmJiFsP251bGw6YyYmbyYmIWw/KDAsYS5qc3gpKHQse3RvOmY/P2BgfSk6KDAsYS5qc3gpKG4se2hyZWY6ZixvbkNsaWNrOmwsLi4udSxjaGlsZHJlbjpyfSl9ZXhwb3J0e28gYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfczBMcTNUTkYuanMubWFw"}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"as.coinbase.com/amp","fqdn":"as.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"beacon","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:05.908Z","timestamp":1785108245908,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /amp HTTP/1.1\r\nHost: as.coinbase.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.coinbase.com/\r\nContent-Type: application/x-www-form-urlencoded; charset=utf-8\r\nContent-Length: 9068\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB; cb_consent_preferences=%7B%22strictlyNecessary%22%3Afalse%2C%22performance%22%3Afalse%2C%22functional%22%3Afalse%2C%22targeting%22%3Afalse%7D\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=6\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":9068,"data":"e=%5B%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108245206%2C%22event_id%22%3A6%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22equity_low_footer_link_render%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22render%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22page%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%224a6c7932-84f4-4e29-9231-36cdccc01c3a%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A6%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108245206%2C%22event_id%22%3A7%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22adp_footer_link_render%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22render%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22page%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%222d911629-3df4-489f-8443-17002f807112%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A7%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108245206%2C%22event_id%22%3A8%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22equity_low_footer_link_render%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22render%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22page%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%22ffa6a9cc-d621-4825-a8a5-30f4e293f082%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A8%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108245826%2C%22event_id%22%3A9%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22perf_time_to_first_byte%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22measurement%22%2C%22duration%22%3A145%2C%22vitalsScore%22%3A%22good%22%2C%22deviceMemory%22%3A0%2C%22hardwareConcurrency%22%3A8%2C%22serviceWorkerStatus%22%3A%22supported%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22page%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22trace_id%22%3A%2214592905212061344081%22%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%2262f8c683-7e74-49dc-807e-71bef2e4726f%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A9%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108245860%2C%22event_id%22%3A10%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22google_auth_rendered%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22render%22%2C%22context%22%3A%22homepage%22%2C%22oneTap%22%3Atrue%2C%22auth%22%3A0%2C%22component_type%22%3A%22button%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22trace_id%22%3A%2214592905212061344081%22%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%22eae8fc24-c666-4662-a40c-feb4ca03e2d1%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A10%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%5D\u0026v=2\u0026upload_time=1785108245905\u0026client=132e62b5953ce8d568137d5887b6b7ab"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:06 GMT\r\ncontent-type: text/plain; charset=utf-8\r\ncontent-length: 7\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\naccess-control-allow-origin: *\r\nserver: cloudflare\r\ntrace-id: 5320389068995222570\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=V%2BbFjuluC7waqlbHRLxOe6pvvNf6cJ1JnzjQ2mGxr4dGjM37WVpnh%2FeVw0IXaOtR5aWrpP%2FTTu1aQNIWuH7PlJrR0xxxuzcEYebjwcTmnC0qVjfbIXbF3UmOGqCWVnaoQQ%3D%3D\"}]}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a21727e8e8221525-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":7,"size_decoded":710,"mime_type":"text/plain; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"260ca9dd8a4577fc00b7bd5810298076","sha1":"53a5687cb26dc41f2ab4033e97e13adefd3740d6","sha256":"aee408847d35e44e99430f0979c3357b85fe8dbb4535a494301198adbee85f27","sha512":"51e85deb51c2b909a21ec5b8e83b1cb28da258b1be227620105a345a2bd4c6aea549cd5429670f2df33324667b9f623a420b3a0bdbbd03ad48602211e75478a7","ssdeep":"","tlshash":"c0400003000000c000000000000000003000000000000000c00000000f0000000c3000","first_seen":"2023-04-05T04:46:42Z","last_seen":"2026-07-26T23:32:20.195442Z","times_seen":35925,"resource_available":true,"data":"c3VjY2Vzcw=="}},"time_used":113,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":113,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Bwhk33wU.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.701Z","timestamp":1785108244701,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_Bwhk33wU.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 648\r\nlast-modified: Sun, 26 Jul 2026 22:31:19 GMT\r\netag: \"857a18c003fa22079d2ebe0b3e2bb91f\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 d5718175f872fe6d7c3488e3658ff35a.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: DiHvn-zJPdwlTi1xkIP9nqxAlnIauwXr1fd4UsDBwiMlc-BgeS_zhA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=rHuLkMKWMZlcHn2GLmqwlQg2ilYdjn27e9gJitcn9q69R0DX4nC3FDiXwBFq8nRO8KU8hIenhVV6dssJW9rCk3OH3CY9Iu0yKPQR2WbnYnwwYJJ24YMvL6vTj8HelIf6I8cJNwLiMWLSaZuljvQU\"}]}\r\ncf-ray: a21727e16f420883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":1608,"size_decoded":1785,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1569)","md5":"dc6c97cff56ea646eae1692ac9471a21","sha1":"3ada7bf2fbc448051467c657559335916935a1ca","sha256":"c7e42cd4a6294a1e85e6ef15291d12d163a300012e0d3abab77b17d17acf410c","sha512":"ecdf6a47df86cf4a9849571e8bd70211ca589264d4cb0c0ad19346818d64be2d88d9896430920d75fcc9ba29bd6e81aeac53c0bc021fca350e325f8b9e6681a3","ssdeep":"","tlshash":"a431169575f43baab2175a5d40b3471c321e804de72c09a4e965383c13b8b95b943fcb","first_seen":"2026-07-26T23:24:50.22112Z","last_seen":"2026-07-26T23:25:46.811393Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDlhMDAzMWYyLThmMzMtNGUzMi1hMThlLWM5NzFjN2NmZjZiMWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTlhMDAzMWYyLThmMzMtNGUzMi1hMThlLWM5NzFjN2NmZjZiMWApfSkoKX1jYXRjaHt9aW1wb3J0e1VpIGFzIGUsV3AgYXMgdCxZYyBhcyBuLGJsIGFzIHIsY2QgYXMgaSxmZiBhcyBhLGhmIGFzIG8saWEgYXMgcyxqaSBhcyBjLHBhIGFzIGwseGwgYXMgdX1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIGQ9YSgpLGY9KDAsdChvKCkpLm1lbW8pKGZ1bmN0aW9uKHtjb250ZW50OnQsYWR2YW5jZWRDb25maWd1cmF0aW9uOmEsc2VjdGlvblNldHRpbmdzOm99KXtsZXR7aGVhZGVyOmYsc3ViaGVhZDpwLGFwcFN0b3JlQmFkZ2U6bSxnb29nbGVQbGF5QmFkZ2U6aH09dCx7YXBwU3RvcmVVcmw6Zyxnb29nbGVQbGF5VXJsOl99PWE7cmV0dXJuKDAsZC5qc3gpKHMse3NlY3Rpb25TZXR0aW5nczpvLGNoaWxkcmVuOigwLGQuanN4cykodSx7Z2FwOmxbYGNvbnRlbnQtZWxlbWVudC1nYXBgXSxmbGV4RGlyZWN0aW9uOntiYXNlOmBjb2x1bW5gLHRhYmxldDpgcm93YCxkZXNrdG9wOmByb3dgfSxjaGlsZHJlbjpbKDAsZC5qc3gpKGkse2ZsZXhHcm93OjEsZmxleEJhc2lzOjAsbWluV2lkdGg6YDBgLGNoaWxkcmVuOigwLGQuanN4KShjLHthczpgaDJgLGZvbnQ6YGRpc3BsYXkzYCxjb250ZW50OmZ9KX0pLCgwLGQuanN4cykocix7ZmxleEdyb3c6MSxmbGV4QmFzaXM6MCxtaW5XaWR0aDpgMGAsanVzdGlmeUNvbnRlbnQ6YHNwYWNlLWJldHdlZW5gLGdhcDpsW2Bjb250ZW50LWVsZW1lbnQtZ2FwYF0sY2hpbGRyZW46WygwLGQuanN4KShjLHthczpgcGAsZm9udDpgYm9keWAsY29udGVudDpwfSksKDAsZC5qc3hzKSh1LHtnYXA6bFtgY29udGVudC1lbGVtZW50LWdhcGBdLGNoaWxkcmVuOlsoMCxkLmpzeCkobix7aHJlZjpnLHRhcmdldDpgX2JsYW5rYCxyZWw6YG5vb3BlbmVyIG5vcmVmZXJyZXJgLGNoaWxkcmVuOigwLGQuanN4KShpLHtoZWlnaHQ6YDUwcHhgLGFzcGVjdFJhdGlvOmAzLzFgLGNoaWxkcmVuOigwLGQuanN4KShlLHttZWRpYTptLGJvcmRlclJhZGl1czowLHN0eWxlOntiYWNrZ3JvdW5kQ29sb3I6YHRyYW5zcGFyZW50YH19KX0pfSksKDAsZC5qc3gpKG4se2hyZWY6Xyx0YXJnZXQ6YF9ibGFua2AscmVsOmBub29wZW5lciBub3JlZmVycmVyYCxjaGlsZHJlbjooMCxkLmpzeCkoaSx7aGVpZ2h0OmA1MHB4YCxhc3BlY3RSYXRpbzpgMjcvOGAsY2hpbGRyZW46KDAsZC5qc3gpKGUse21lZGlhOmgsYm9yZGVyUmFkaXVzOjAsc3R5bGU6e2JhY2tncm91bmRDb2xvcjpgdHJhbnNwYXJlbnRgfX0pfSl9KV19KV19KV19KX0pfSk7ZXhwb3J0e2YgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQndoazMzd1UuanMubWFw"}},"time_used":119,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":119,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_VnO5JD882.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.706Z","timestamp":1785108244706,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_VnO5JD882.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 289\r\nlast-modified: Sun, 26 Jul 2026 22:31:29 GMT\r\netag: \"1d0c8dff6a47114c4574f81231618331\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 c9dfe01ff817aaa5d7026e2556d7e676.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: -NT2YhvHuhLveQ8lse1_FJdky2nz-EqrxuABm97HsOWfa62cRjo0sQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=UIJlGeFpVdR9HEzrXwAZY5ACHd0252lKqQeXD21YrSzjErH1zmG6rkQsOhsJy2dzgVjVw6gR1Lok78JBNwfnPyrcqo6hiygQAS7wRzXkjAXcnlwsUO10By6P%2FrAve%2BWSxSGBbPMqzclBIhmSVqh6\"}]}\r\ncf-ray: a21727e16f5c0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":492,"size_decoded":1430,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (452)","md5":"25d7f91c9500d0c19dd0b1bf7173312a","sha1":"716b9a062950a798a218ee554e17f414ab83cf87","sha256":"f7e5b7e30795b583d2ac73c763aba7585c0731c24d6120bad48c935434b096a5","sha512":"88a73a7b7ffd4d20e5e0447a2d4415569ed3e263ca5fe2085736b3436928f377c85b72e771431761edbea7fe6d06a96cacc4b6e289dd9c8a6ad54a157fb5499c","ssdeep":"","tlshash":"65f09e858af52bb15441227ec24e29923698102a93dedf30f1366a7c13bddce80147c3","first_seen":"2026-07-26T23:24:50.223106Z","last_seen":"2026-07-26T23:25:46.895743Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDZjZjFiZWZiLWFmNDctNDUwYy1hYmY0LTM5OWMyOWU5MTQzZWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTZjZjFiZWZiLWFmNDctNDUwYy1hYmY0LTM5OWMyOWU5MTQzZWApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsaGYgYXMgdCx2YSBhcyBufWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgcj1lKHQoKSksaT0oKT0+KDAsci51c2VDb250ZXh0KShuKTtleHBvcnR7aSBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19Wbk81SkQ4ODIuanMubWFw"}},"time_used":105,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":105,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"dynamic-assets.coinbase.com/3c15df5e2ac7d4abbe9499ed9335041f00c620f28e8de2f93474a9f432058742cdf4674bd43f309e69778a26969372310135be97eb183d91c492154176d455b8/asset_icons/9d67b728b6c8f457717154b3a35f9ddc702eae7e76c4684ee39302c4d7fd0bb8.png","fqdn":"dynamic-assets.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.059Z","timestamp":1785108244059,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /3c15df5e2ac7d4abbe9499ed9335041f00c620f28e8de2f93474a9f432058742cdf4674bd43f309e69778a26969372310135be97eb183d91c492154176d455b8/asset_icons/9d67b728b6c8f457717154b3a35f9ddc702eae7e76c4684ee39302c4d7fd0bb8.png HTTP/1.1\r\nHost: dynamic-assets.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-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\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: image/png\r\ncontent-length: 10079\r\nlast-modified: Thu, 28 Feb 2019 18:38:48 GMT\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\netag: \"89aeed5b171004ec55cb4f066bcbfb0e\"\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 476fd70bdb0e3f01a7cdbc322ceae0d8.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: FRA60-P14\r\nx-amz-cf-id: iReiPVMHnld2anbYXXjoNhmTYny8WpuczcgdQeooi-pymynVHtluWQ==\r\ncache-control: public, max-age=7200\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=66%2BzmNhusKq9etaqxBvEaLuGHddx8hwn3QTHeb8AgMzsZPzZVcMH6yPvwrj7o%2FIWUHHNfbHTQBEF9Elvy8%2FBy3SyXznh%2F6A%2BfrS%2FUpR4pkUX3hSF0i7ol9IVnn2oA73a99kMT1Qh5s6nBbpHkWRR\"}]}\r\npriority: u=4;i=?0,cf-chb=(37;u=2;i=?0 557;u=5;i=?0)\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nx-content-type-options: nosniff\r\ncf-bgj: h2pri,imgq:100\r\ncf-polished: ok, orig_size=25374\r\nage: 1852\r\nexpires: Mon, 27 Jul 2026 01:24:04 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\ncf-ray: a21727dd680c0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":10079,"size_decoded":11275,"mime_type":"image/png","magic":"PNG image data, 600 x 600, 8-bit colormap, non-interlaced","md5":"44943758c2322f35a8ea3e2bf0a4f17b","sha1":"e124c72a151dcc521976f30aab4d1acb186a8610","sha256":"8bb3b0e152c3d429437d74f2dec419d08a891bcd44c18a591d28851dc99987df","sha512":"680d0e6b4868a4e3b5e6728d035242b505b12c26b398e63f19fd798675cc0c19d1b30190f1085c2ffb4aac5441fc17b5e6ef7a3ce10cd90ab7b02338a0ba2f41","ssdeep":"192:xHNahOGe5RXsk3Zne2jduhSt/Jqq88hnhwwZR/2dc8508EsWa:f6cRcwRewduEUrGhjR0508FX","tlshash":"7822bfabd663717a4a1a0d5fee84029134be5c1dca9fe42817047bb894b0adf478f3c1","first_seen":"2024-07-29T18:53:15Z","last_seen":"2026-07-26T23:25:46.894085Z","times_seen":119,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"images.ctfassets.net/o10es7wu5gm1/67upNlpt3s3S3CzdLnoZtJ/537ebeaf8595e2cf40c87e1023abf94d/Nav_Thumbnail__1_.png?fm=avif\u0026w=416\u0026h=416\u0026q=65","fqdn":"images.ctfassets.net","domain":"ctfassets.net","tld":"net"},"ip":{"addr":"108.157.229.92","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.170Z","timestamp":1785108244170,"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":"images.ctfassets.net","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Sat, 18 Oct 2025 00:00:00 GMT","end":"Sun, 15 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"3E:39:C1:37:7A:6B:60:8A:D5:73:9E:D7:C4:F9:3A:11:9B:BD:94:2B","sha256":"AC:EA:37:10:54:C2:91:B5:04:B8:B4:CA:CD:35:48:4D:D0:92:78:F6:E2:8B:D9:57:78:20:D6:74:FE:14:16:A9"}}},"request":{"raw":"GET /o10es7wu5gm1/67upNlpt3s3S3CzdLnoZtJ/537ebeaf8595e2cf40c87e1023abf94d/Nav_Thumbnail__1_.png?fm=avif\u0026w=416\u0026h=416\u0026q=65 HTTP/1.1\r\nHost: images.ctfassets.net\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\nReferer: https://www.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\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\ncontent-type: image/avif\r\ncontent-length: 4556\r\nlast-modified: Wed, 01 Jul 2026 13:25:34 GMT\r\nserver: Contentful Images API\r\naccess-control-allow-origin: *\r\ndate: Sun, 26 Jul 2026 08:20:10 GMT\r\ncache-control: max-age=31536000\r\netag: \"c3caa0d3acde82e2dd7f44bcf56901d4\"\r\nvary: Accept-Encoding\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 3346055bb53a57ebf02828b88e1ee87c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN56-P2\r\nx-amz-cf-id: As5JRcuDk4VH1iLVzN9x-23tGRrSUo0afc7GqJg-Y3ihM6fsNGDN6g==\r\nage: 61032\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":4556,"size_decoded":5091,"mime_type":"image/avif","magic":"ISO Media, AVIF Image","md5":"c3caa0d3acde82e2dd7f44bcf56901d4","sha1":"29add8ff1c38129904f87aad32da8ee9fce84ad7","sha256":"9c6e7705f041e6bbfc0c52f6f13523b5d1172fe2e6c945b31dbb41854af741f4","sha512":"55350105792cc88070a18b49c3b0a1c814aedf757bc0d47d952eb7834fef168a6ff101851f88484ed02502ce5be9aee8326dcddb5087fba167aee60322dd2b8e","ssdeep":"96:+cLj106rqKvIVKH5yU+gUOU3Zyr8GVPtNKRV2PJFhU0AqL4MaZ1ZIs6rfs:+WB0hKIVKZH+lnw8G9tNKOUDN1ifs","tlshash":"7b915c4ed775b061dc5e8dfa74bb27412223e2186614a24f4225b75430185acae7cf55","first_seen":"2026-06-04T15:35:28.543701Z","last_seen":"2026-07-26T23:25:46.853995Z","times_seen":14,"resource_available":false,"data":"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"}},"time_used":18,"timings":{"blocked":-1,"dns":5,"connect":9,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/global-experiments","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.911Z","timestamp":1785108244911,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /global-experiments HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:05 GMT\r\ncontent-type: application/json; charset=utf-8\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\ncache-control: no-store, no-cache, must-revalidate, proxy-revalidate\r\ncontent-security-policy: default-src 'self' https://*.coinbase.com https://sdk.onfido.com https://assets.onfido.com https://*.withpersona.com; child-src 'self' https://*.coinbase.com https://accounts.google.com/ https://www.googletagmanager.com/ https://paywithmybank.com/start/ https://cdn1.paywithmybank.com/frontend/build/index.html https://fast.wistia.net https://ui.solaris-p.finleap.cloud https://fts-payment-initiation-wizard.solarisbank.de/ https://payment.truelayer.com https://*.sardine.ai https://sdk.onfido.com/ https://*.cb-device-intelligence.com https://*.wpstn.com https://platform.twitter.com https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/ https://recaptcha.net https://www.recaptcha.net https://cdn.plaid.com/link/ https://*.doubleclick.net/ blob: https://www.youtube.com https://player.vimeo.com/video/ https://datawrapper.dwcdn.net/ https://widgets.marqeta.com https://*.paypal.com https://pay.google.com/ https://transact.atomicfi.com/ https://centinelapi.cardinalcommerce.com/V1/Cruise/Collect https://p2a.co/ https://docs.google.com/forms/ https://a.sprig.com/SmJKcmh5cDRYZX5zaWQ6YWE3ZDJhZjYtMjYxYS00NjkwLWE3ZWMtMGRjMGQyMGY2ZDk5 https://calendly.com/ https://link.tink.com/ https://jsv3.recruitics.com/ https://js.stripe.com/ https://*.withpersona.com https://embedded.cardless.com/; connect-src 'self' https://browser-intake-datadoghq.com/ https://accounts.google.com/gsi/ https://*.coinbase.com wss://*.coinbase.com https://www.tradingview.com/snapshot/ https://beacon.riskified.com https://c.riskified.com https://player.vimeo.com/api/player.js https://api.web3modal.org https://d1dwhf283nul1c.cloudfront.net/ https://cdnjs.cloudflare.com/ https://analytics.google.com https://*.google-analytics.com https://maps.googleapis.com https://www.googletagmanager.com/gtag/js https://www.googletagmanager.com/gtm.js https://www.googleadservices.com https://googleads.g.doubleclick.net https://*.braintree-api.com https://api.braintreegateway.com https://cdn.contentful.com/ https://api.userleap.com/ https://api.sprig.com/ https://widgets.marqeta.com/client/api/v1/ https://assets.ctfassets.net/ https://images.ctfassets.net/ https://pay.google.com/ https://google.com/pay https://c.tvpixel.com/ https://p.tvpixel.com/ https://*.salesforce.com https://pulse.walletconnect.org https://verify.walletconnect.org https://mempool.space wss://relay.walletconnect.com wss://relay.walletconnect.org https://rpc.walletconnect.org https://explorer-api.walletconnect.com wss://www.walletlink.org https://metamask-sdk.api.cx.metamask.io/evt https://api.onfido.com wss://sync.onfido.com https://sdk.onfido.com/ https://cdn.sprig.com/session-replay/ https://www.google.com/pay https://api2.branch.io https://pixel-config.reddit.com/pixels/a2_gn0ni8qm85z4/config https://www.redditstatic.com/ads/conversions-config/v1/pixel/config/a2_gn0ni8qm85z4_telemetry https://conversions-config.reddit.com/v1/pixel/error https://px.ads.linkedin.com/attribution_trigger https://www.google.com/ccm/collect https://px.ads.linkedin.com/wa/ https://cdn.cookielaw.org/ https://geolocation.onetrust.com/ https://privacyportal.onetrust.com/ https://consent-api.onetrust.com/ https://*.withpersona.com https://inquiry.withpersona.com https://wa.appsflyer.com https://websdk.appsflyer.com https://api-secure.amplitude.com https://sr-client-cfg.amplitude.com https://api-sr.amplitude.com https://api.amplitude.com/ https://rba-authed-278491357830-production.s3.us-east-1.amazonaws.com wss://www.deribit.com https://history.deribit.com https://www.deribit.com; font-src * data: blob:; img-src * data: blob:; media-src * data: blob:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.coinbase.com https://www.googletagmanager.com/ https://accounts.google.com/gsi/client https://accounts.google.com/gsi/ https://*.sardine.ai https://beacon.riskified.com https://*.cb-device-intelligence.com https://player.vimeo.com/api/player.js https://sdk.onfido.com/ https://www.youtube.com/iframe_api https://*.google-analytics.com https://www.google.com https://www.gstatic.com https://maps.googleapis.com https://cdn.plaid.com/link/ https://www.googletagmanager.com/gtag/js https://www.googletagmanager.com/gtm.js https://www.googleadservices.com https://googleads.g.doubleclick.net https://connect.facebook.net/en_US/fbevents.js https://connect.facebook.net/signals/config/ https://*.paypal.com https://images.ctfassets.net/ https://pay.google.com/ https://c.tvpixel.com/ https://p.tvpixel.com/ https://jsv3.recruitics.com/0778138b-cc59-11ef-a514-fd1759833eec.js https://static.ads-twitter.com/oct.js https://platform.twitter.com/uwt.js https://static.ads-twitter.com/uwt.js https://redditstatic.com/ads/pixel.js https://www.redditstatic.com/ads/pixel.js https://snap.licdn.com/li.lms-analytics/insight.min.js https://cdn.cookielaw.org/ https://js.stripe.com/ https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/ https://recaptcha.net https://www.recaptcha.net https://*.withpersona.com https://wa.appsflyer.com https://websdk.appsflyer.com; style-src * data: blob: 'unsafe-inline'; frame-ancestors 'self' https://*.coinbase.com https://coinbase.com https://*.withpersona.com; report-uri /csp-logging\r\netag: W/\"9d5-hFbo2XVmIf+mLKGx0vzZ4mmn2fA\"\r\nexpect-ct: enforce, max-age=86400, report-uri=\"https://coinbase.report-uri.io/r/default/ct/reportOnly\"\r\nexpires: 0\r\nreferrer-policy: strict-origin-when-cross-origin\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nsurrogate-control: no-store\r\ntrace-id: 7723307667112772831\r\nx-content-type-options: nosniff\r\nx-dns-prefetch-control: off\r\nx-download-options: noopen\r\nx-frame-options: SAMEORIGIN\r\nx-xss-protection: 0\r\nserver: cloudflare\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=tgGq0yCKn7Ibp5u1AGFCKQ9QqGEp09W43kBOGrAec4WTdod3WU9Cs1TdptHf2p2ECU%2BTbFpijI2I4gQo4zgM2EXd00AAb%2F%2FIIQBCnLCFH9lguWz%2BNTjY0840mytDHJB%2BiRc%3D\"}]}\r\ncf-cache-status: DYNAMIC\r\ncontent-encoding: gzip\r\ncf-ray: a21727e2b9b30883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plaid","description":"Plaid is a fintech company that facilitates communication between financial services apps and users' banks and credit card providers.","website":"https://plaid.com","common_platform_enumeration":"","icon":"Plaid.svg","categories":["Payment processors","Miscellaneous"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Linkedin Ads","description":"Linkedin Ads is a paid marketing tool that offers access to Linkedin social networks through various sponsored posts and other methods.","website":"https://business.linkedin.com/marketing-solutions/ads","common_platform_enumeration":"","icon":"Linkedin.svg","categories":["Advertising"]},{"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":"PayPal","description":"PayPal is an online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders.","website":"https://paypal.com","common_platform_enumeration":"cpe:2.3:a:paypal:paypal:*:*:*:*:*:*:*:*","icon":"PayPal.svg","categories":["Payment processors"]},{"name":"Onfido","description":"Onfido is a technology company that helps businesses verify people's identities using a photo-based identity document, a selfie and artificial intelligence algorithms.","website":"https://onfido.com","common_platform_enumeration":"","icon":"Onfido.svg","categories":["Security","Authentication"]},{"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"]}],"data":{"size":2517,"size_decoded":6877,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"37d08d25703e96cc41492b81ae763029","sha1":"8456e8d9756621ffa62ca1b1d2fcd9e269a7d9f0","sha256":"6b2db5b7f5cd7eedbbf2dedac678019058cfab6c921b986cb8854357c0d1246d","sha512":"a76d1dd50c65f69ae06746ed46209071dedf1eedc617a32d681d70532af193ea07f27eba6b66872b48202cd6f2b6d9f2c3b8ea08fab07608581ffd159f617b1b","ssdeep":"","tlshash":"975184ae3a3a26ef75daa8cf27cf5993a5c6d0bcf024201dea0ddd4919f264011731d9","first_seen":"2026-07-26T23:24:50.227352Z","last_seen":"2026-07-26T23:24:50.227352Z","times_seen":1,"resource_available":false,"data":"eyJleHBlcmltZW50cyI6W3sidGVzdCI6Imp1bF8yMDI0X21hcnRlY2hfYnV5X2NyeXB0b19scF9yZWRpcmVjdCIsImdyb3VwIjoidHJlYXRtZW50IiwiZm9yY2VkIjp0cnVlfSx7InRlc3QiOiJvY3RfMjAyNF9sb2dnZWRfb3V0X2FkcF9kZWVwbGluayIsImdyb3VwIjoiY29udHJvbCIsImZvcmNlZCI6dHJ1ZX0seyJ0ZXN0IjoiZGVjXzIwMjVfZ29vZ2xlX29uZXRhcF9pbnRsX2hvbWUiLCJncm91cCI6InRyZWF0bWVudCIsImZvcmNlZCI6dHJ1ZX0seyJ0ZXN0IjoibWF5XzIwMjVfY2JsdGNfcHJvb2Zfb2ZfcmVzZXJ2ZXMiLCJncm91cCI6InRyZWF0bWVudCIsImZvcmNlZCI6ZmFsc2V9LHsidGVzdCI6Im1heV8yMDI1X2NiYWRhX3Byb29mX29mX3Jlc2VydmVzIiwiZ3JvdXAiOiJ0cmVhdG1lbnQiLCJmb3JjZWQiOmZhbHNlfSx7InRlc3QiOiJ0MDAyMF9lN2Y5OGVhZSIsImdyb3VwIjoidHJlYXRtZW50IiwiZm9yY2VkIjpmYWxzZX0seyJ0ZXN0IjoidDAwMjBfZDc3MGJiZmYiLCJncm91cCI6InRyZWF0bWVudCIsImZvcmNlZCI6ZmFsc2V9LHsidGVzdCI6InQwMDIwXzAxODU5NDZiIiwiZ3JvdXAiOiJ0cmVhdG1lbnQiLCJmb3JjZWQiOmZhbHNlfSx7InRlc3QiOiJqdW5lXzIwMjVfd2FpdGxpc3RfbWFya2V0aW5nX3JvdXRlX2VuYWJsZWQiLCJncm91cCI6InRyZWF0bWVudCIsImZvcmNlZCI6dHJ1ZX0seyJ0ZXN0Ijoib2N0XzIwMjVfaW5kaWFfcm9sbG91dF93ZWJfc2lnbnVwX2VuYWJsZSIsImdyb3VwIjoidHJlYXRtZW50IiwiZm9yY2VkIjp0cnVlfSx7InRlc3QiOiJvY3RfMjAyNV9yZWZlcnJhbHNfcGF5b3V0X2Rlc2NyaXB0aW9uX2pvaW4iLCJncm91cCI6ImNvbnRyb2wiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6ImRlY18yMDI1XzEweF92ZWxvY2l0eV92MV9qb2luIiwiZ3JvdXAiOiJ0cmVhdG1lbnQiLCJmb3JjZWQiOmZhbHNlfSx7InRlc3QiOiJkZWNfMjAyNV9pbmRpdmlkdWFsc19kZXJpdl91cHNlbGwiLCJncm91cCI6InRyZWF0bWVudCIsImZvcmNlZCI6ZmFsc2V9LHsidGVzdCI6Imphbl8yMDI2X3ByZWRpY3Rpb25zX2pvaW5fcGFnZSIsImdyb3VwIjoidHJlYXRtZW50IiwiZm9yY2VkIjpmYWxzZX0seyJ0ZXN0IjoidDAwMjBfMWJlNjY1ZWUiLCJncm91cCI6ImNvbnRyb2wiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6InQwMDEzXzEwNTQ2YWU5IiwiZ3JvdXAiOiJ0cmVhdG1lbnQiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6InQwMDAyXzYxZjdlZTJkIiwiZ3JvdXAiOiJ0cmVhdG1lbnQiLCJmb3JjZWQiOmZhbHNlfSx7InRlc3QiOiJ0MDAyMF8yZjU2MjBkOCIsImdyb3VwIjoiY29udHJvbCIsImZvcmNlZCI6ZmFsc2V9LHsidGVzdCI6InQwMDIwXzY5MDI2M2EyIiwiZ3JvdXAiOiJjb250cm9sIiwiZm9yY2VkIjpmYWxzZX0seyJ0ZXN0IjoidDAwMjlfMTAyNTAxNmUiLCJncm91cCI6InRyZWF0bWVudCIsImZvcmNlZCI6ZmFsc2V9LHsidGVzdCI6InQwMDI5XzI2NDhmNmIxIiwiZ3JvdXAiOiJjb250cm9sIiwiZm9yY2VkIjpmYWxzZX0seyJ0ZXN0IjoidDAwMjlfODIzMzE2NTkiLCJncm91cCI6ImNvbnRyb2wiLCJmb3JjZWQiOmZhbHNlfSx7InRlc3QiOiJ0MDAyMF9kN2YxZjUyMiIsImdyb3VwIjoidHJlYXRtZW50IiwiZm9yY2VkIjpmYWxzZX0seyJ0ZXN0IjoidDAwMTJfZmVmYjRkMzIiLCJncm91cCI6InRyZWF0bWVudCIsImZvcmNlZCI6dHJ1ZX0seyJ0ZXN0IjoiZmViXzIwMjRfbmxfaG9tZXBhZ2VfMTVldXJfZnQiLCJncm91cCI6ImNvbnRyb2wiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6Im5vdl8yMDIzX2VtYWlsX3Vuc3Vic2NyaWJlIiwiZ3JvdXAiOiJ0cmVhdG1lbnQiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6InQwMDI5XzEwMjUwMTZlIiwiZ3JvdXAiOiJ0cmVhdG1lbnQiLCJmb3JjZWQiOmZhbHNlfSx7InRlc3QiOiJqYW5fMjAyNl91c19ob21lcGFnZV9oZXJvIiwiZ3JvdXAiOiJjb250cm9sIiwiZm9yY2VkIjp0cnVlfSx7InRlc3QiOiJqYW5fMjAyNl9oZXJvX3ZpZGVvX3YyX3VrX2V4cGVyaW1lbnQiLCJncm91cCI6ImNvbnRyb2wiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6Imphbl8yMDI2X2hlcm9fdmlkZW9fbmxfZXhwZXJpbWVudCIsImdyb3VwIjoiY29udHJvbCIsImZvcmNlZCI6dHJ1ZX0seyJ0ZXN0IjoiamFuXzIwMjZfaGVyb192aWRlb19lc19leHBlcmltZW50IiwiZ3JvdXAiOiJjb250cm9sIiwiZm9yY2VkIjp0cnVlfSx7InRlc3QiOiJqYW5fMjAyNl9oZXJvX3ZpZGVvX2ZyX2V4cGVyaW1lbnQiLCJncm91cCI6ImNvbnRyb2wiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6Imphbl8yMDI2X2hlcm9fdmlkZW9faXRfZXhwZXJpbWVudCIsImdyb3VwIjoiY29udHJvbCIsImZvcmNlZCI6dHJ1ZX0seyJ0ZXN0IjoiZGVjXzIwMjVfaGVyb192aWRlb19kZV9leHBlcmltZW50IiwiZ3JvdXAiOiJjb250cm9sIiwiZm9yY2VkIjp0cnVlfSx7InRlc3QiOiJkZWNfMjAyNV9jYW5kaWRhdGVfc3RvcmVfbmV3c19hYV9leHBlcmltZW50IiwiZ3JvdXAiOiJ0cmVhdG1lbnQiLCJmb3JjZWQiOmZhbHNlfV19"}},"time_used":118,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":118,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BEjatgdP2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.635Z","timestamp":1785108244635,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_BEjatgdP2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 1427\r\nlast-modified: Sun, 26 Jul 2026 22:31:16 GMT\r\netag: \"6bc440fd3095cb3f7768681cda07686e\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 9e3f2a0cefb5c155e35c053a89bbe146.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: Jtf75qF7uQICSA8lwnxdhxBmgWEh44f50gW45URxI3DkqaYgD1k8qg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=1csEDmRcp%2BAUcC8OPorA%2Fqjz8882mMdVWfgsy56Xv7aKGmhqDvHwj3wNakaX%2BGWoaspNj5do4P8hNNqGnc%2FT9TXJtqGyC9cXtwep5htyOEckj0%2B015%2F0eXlMaOoECrf%2BBc%2BPowiyNI9DcUwHDVV1\"}]}\r\ncf-ray: a21727e0fe500883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":4208,"size_decoded":2581,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (4168)","md5":"09d71f393c1e1e805c9cbd70902fa208","sha1":"29491ca90f85b8e33fbeba78f25b052fbbf3efed","sha256":"0d10a7967f6ea4baf5311f8eef8f4a604507500f8756b30b2cd199bd479bec0a","sha512":"b562d9f2919f0e5f6710da059c0d29aaf1ec3025c8a5838f11771ead96a3278c5d8183b746d21af45b70562c091cc3f8f455c6bac2cd8715fca155d6a096649c","ssdeep":"96:xWtFzqP8nipwvE1K3oUAVNiS7nwQmQ7oPiHGLXdZE0xiEKwEtLe:QtIP8nievE5NlDwtgojLjEAiEKP1e","tlshash":"a291c4a36275f23a5309027ef0020116fb70c174ed1e94abf6f34e486e54a4862a3f59","first_seen":"2026-07-26T23:24:50.229464Z","last_seen":"2026-07-26T23:25:46.828661Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDgwMGVlZDlmLWEyMTItNDNhYS05NGI4LWI0NTZhYmM3MjA0MWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTgwMGVlZDlmLWEyMTItNDNhYS05NGI4LWI0NTZhYmM3MjA0MWApfSkoKX1jYXRjaHt9aW1wb3J0e0JyIGFzIGUsRnIgYXMgdCxHciBhcyBuLElyIGFzIHIsSnIgYXMgaSxMciBhcyBhLFVyIGFzIG8sVnIgYXMgcyxXciBhcyBjLFhyIGFzIGwsWnIgYXMgdSxxciBhcyBkfWZyb20iLi9lX0NycVJXMXdQLmpzIjtpbXBvcnR7aSBhcyBmLG4gYXMgcCxyIGFzIG19ZnJvbSIuL2NfQkdlQmlVSnguanMiO3ZhciBoPXtbdV06YGtpbGxfdWtfaG9tZV9wYWdlX3dlYmAsW25dOmBraWxsX25sX2hvbWVfcGFnZV93ZWJgLFthXTpga2lsbF9jYV9ob21lX3BhZ2Vfd2ViYCxbc106YGtpbGxfZGVfaG9tZV9wYWdlX3dlYmAsW2VdOmBraWxsX2ZyX2hvbWVfcGFnZV93ZWJgLFtjXTpga2lsbF9pdF9ob21lX3BhZ2Vfd2ViYCxbcl06YGtpbGxfYnJfaG9tZV9wYWdlX3dlYmAsW2RdOmBraWxsX3NnX2hvbWVfcGFnZV93ZWJgLFt0XTpga2lsbF9hdV9ob21lX3BhZ2Vfd2ViYCxbaV06YGtpbGxfZXNfaG9tZV9wYWdlX3dlYmAsW29dOmBraWxsX2luX2hvbWVfcGFnZV93ZWJgfSxnPXtbbl06YG5sX3JlZGlyZWN0aW9uX2tpbGxlZGAsW2FdOmBjYV9yZWRpcmVjdGlvbl9raWxsZWRgLFtzXTpgZGVfcmVkaXJlY3Rpb25fa2lsbGVkYCxbZV06YGZyX3JlZGlyZWN0aW9uX2tpbGxlZGAsW3JdOmBicl9yZWRpcmVjdGlvbl9raWxsZWRgLFtjXTpgaXRfcmVkaXJlY3Rpb25fa2lsbGVkYCxbaV06YGVzX3JlZGlyZWN0aW9uX2tpbGxlZGAsW29dOmBpbl9yZWRpcmVjdGlvbl9raWxsZWRgfSxfPXtbdV06e3RlbXBsYXRlOmAvZW4tZ2JgLHN3aXRjaGVzOntjb250ZW50OmhbdV19LHN1cHBvcnRlZExvY2FsZXM6W2wuRW5nbGlzaF19LFtuXTp7dGVtcGxhdGU6YC9lbi1ubGAsc3dpdGNoZXM6e2NvbnRlbnQ6aFtuXSxyZWRpcmVjdGlvbjpnW25dfSxzdXBwb3J0ZWRMb2NhbGVzOltsLkVuZ2xpc2gsbC5EdXRjaF19LFthXTp7dGVtcGxhdGU6YC9lbi1jYWAsc3dpdGNoZXM6e2NvbnRlbnQ6aFthXSxyZWRpcmVjdGlvbjpnW2FdfSxzdXBwb3J0ZWRMb2NhbGVzOltsLkVuZ2xpc2gsbC5GcmVuY2hdfSxbc106e3RlbXBsYXRlOmAvZW4tZGVgLHN3aXRjaGVzOntjb250ZW50Omhbc10scmVkaXJlY3Rpb246Z1tzXX0sc3VwcG9ydGVkTG9jYWxlczpbbC5FbmdsaXNoLGwuR2VybWFuXX0sW2VdOnt0ZW1wbGF0ZTpgL2VuLWZyYCxzd2l0Y2hlczp7Y29udGVudDpoW2VdLHJlZGlyZWN0aW9uOmdbZV19LHN1cHBvcnRlZExvY2FsZXM6W2wuRW5nbGlzaCxsLkZyZW5jaF19LFtjXTp7dGVtcGxhdGU6YC9lbi1pdGAsc3dpdGNoZXM6e2NvbnRlbnQ6aFtjXSxyZWRpcmVjdGlvbjpnW2NdfSxzdXBwb3J0ZWRMb2NhbGVzOltsLkVuZ2xpc2gsbC5JdGFsaWFuXX0sW3JdOnt0ZW1wbGF0ZTpgL2VuLWJyYCxzd2l0Y2hlczp7Y29udGVudDpoW3JdLHJlZGlyZWN0aW9uOmdbcl19LHN1cHBvcnRlZExvY2FsZXM6W2wuRW5nbGlzaCxsLkJyYXppbGlhblBvcnR1Z3Vlc2VdfSxbZF06e3RlbXBsYXRlOmAvc2dgLHN3aXRjaGVzOntjb250ZW50OmhbZF19LHN1cHBvcnRlZExvY2FsZXM6W2wuRW5nbGlzaF19LFt0XTp7dGVtcGxhdGU6YC9hdWAsc3dpdGNoZXM6e2NvbnRlbnQ6aFt0XX0sc3VwcG9ydGVkTG9jYWxlczpbbC5FbmdsaXNoXX0sW2ldOnt0ZW1wbGF0ZTpgL2VuLWVzYCxzd2l0Y2hlczp7Y29udGVudDpoW2ldLHJlZGlyZWN0aW9uOmdbaV19LHN1cHBvcnRlZExvY2FsZXM6W2wuRW5nbGlzaCxsLlNwYW5pc2hdfSxbb106e3RlbXBsYXRlOmAvZW4taW5gLHN3aXRjaGVzOntjb250ZW50Omhbb10scmVkaXJlY3Rpb246Z1tvXX0sc3VwcG9ydGVkTG9jYWxlczpbbC5FbmdsaXNoXX19O2Z1bmN0aW9uIHYoZSl7bGV0IHQ9W10sbj1lLnN0YXJ0c1dpdGgoYC9gKT9lOmAvJHtlfWA7cmV0dXJuIGU9PT1gYHx8ZT09PWAvYHx8ZT09PWBpbnRsLWhvbWVgfHxuPT09YC9pbnRsLWhvbWVgfHxPYmplY3QudmFsdWVzKF8pLnNvbWUoZT0+ZS50ZW1wbGF0ZT09PW4pPyh0LnB1c2goe3NsdWc6YC9gLGxhYmVsOmBCYXNlIC0gLyAoVVMpYH0pLHQucHVzaCh7c2x1ZzpgL2ludGwtaG9tZWAsbGFiZWw6YEludGVybmF0aW9uYWwgSG9tZSAtIC9pbnRsLWhvbWVgfSksT2JqZWN0LmVudHJpZXMoXykuZm9yRWFjaCgoW2Usbl0pPT57bGV0e3RlbXBsYXRlOnIsc3VwcG9ydGVkTG9jYWxlczppfT1uO2kubGVuZ3RoPjAmJnQucHVzaCh7Y291bnRyeTplLHNsdWc6cixsYWJlbDpgJHtlLnRvVXBwZXJDYXNlKCl9IC0gJHtyfWB9KX0pLHQpOih0LnB1c2goe3NsdWc6YC8ke2V9YCxsYWJlbDpgQmFzZSAtIC8ke2V9YH0pLE9iamVjdC5lbnRyaWVzKG0pLmZvckVhY2goKFtuLHJdKT0+e2xldCBpPXI9PW51bGw/dm9pZCAwOnJbZV07aSYmdC5wdXNoKHtjb3VudHJ5Om4udG9VcHBlckNhc2UoKSxzbHVnOmAvJHtpfWAsbGFiZWw6YCR7bi50b1VwcGVyQ2FzZSgpfSAtIC8ke2l9YH0pfSksT2JqZWN0LmVudHJpZXMoZikuZm9yRWFjaCgoW24scl0pPT57bGV0IGk9cltlXTtpZihpKXtsZXQgZT1wW25dO3QucHVzaCh7cmVnaW9uOm4scmVnaW9uQ291bnRyaWVzOmUsc2x1ZzpgLyR7aX1gLGxhYmVsOmAke24udG9VcHBlckNhc2UoKX0gLSAvJHtpfWB9KX19KSx0KX1mdW5jdGlvbiB5KGUsdD1gYCl7bGV0IG49W107cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goKFtlLHJdKT0+e2xldCBpPXQ/YCR7dH0uJHtlfWA6ZTtpZihyIT1udWxsKXtpZihBcnJheS5pc0FycmF5KHIpKXtyLmxlbmd0aD4wJiZuLnB1c2goe3BhdGg6aSx2YWx1ZTpKU09OLnN0cmluZ2lmeShyKX0pO3JldHVybn1pZih0eXBlb2Ygcj09YG9iamVjdGApe2lmKE9iamVjdC5rZXlzKHIpLmxlbmd0aD09PTApcmV0dXJuO24ucHVzaCguLi55KHIsaSkpO3JldHVybn1uLnB1c2goe3BhdGg6aSx2YWx1ZTpyfSl9fSksbn12YXIgYj1hc3luYyBlPT57dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjb3B5OmAsZSl9fSx4PWU9PntpZighZSlyZXR1cm5gVW5rbm93bmA7bGV0IHQ9bmV3IERhdGUoZSk7cmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGBlbi1VU2Ase3llYXI6YG51bWVyaWNgLG1vbnRoOmBzaG9ydGAsZGF5OmBudW1lcmljYCxob3VyOmAyLWRpZ2l0YCxtaW51dGU6YDItZGlnaXRgfSkuZm9ybWF0KHQpfSxTPShlLHQpPT57bGV0IG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtdGVzdGlkPSIke2V9Il1gKTtpZihuKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBbc3R5bGUqPSJib3gtc2hhZG93Il1gKS5mb3JFYWNoKGU9PntsZXQgdD1lLG49dC5zdHlsZS5ib3hTaGFkb3cudG9Mb3dlckNhc2UoKTsobi5pbmNsdWRlcyhgIzAwNTJmZmApfHxuLmluY2x1ZGVzKGByZ2IoMCwgODIsIDI1NSlgKSkmJih0LnN0eWxlLnJlbW92ZVByb3BlcnR5KGBib3gtc2hhZG93YCksdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShgcG9zaXRpb25gKSl9KTtsZXQgZT1uLmNsb3Nlc3QoYHNlY3Rpb25gKXx8bixyPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5zY3JvbGxZLTEyMDt3aW5kb3cuc2Nyb2xsVG8oe3RvcDpyLGJlaGF2aW9yOmBzbW9vdGhgfSksdC5jdXJyZW50PXtlbGVtZW50OmUsb3JpZ2luYWxCb3hTaGFkb3c6ZS5zdHlsZS5ib3hTaGFkb3csb3JpZ2luYWxQb3NpdGlvbjplLnN0eWxlLnBvc2l0aW9ufSxlLnN0eWxlLmJveFNoYWRvdz1gMCAwIDAgMC4yNXJlbSAjMDA1MkZGYCxlLnN0eWxlLnBvc2l0aW9uPWByZWxhdGl2ZWB9ZWxzZSBjb25zb2xlLndhcm4oYENvbXBvbmVudCB3aXRoIGlkICR7ZX0gbm90IGZvdW5kIGluIERPTWApfTtleHBvcnR7UyBhcyBhLHggYXMgaSx2IGFzIG4sXyBhcyBvLHkgYXMgcixiIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0JFamF0Z2RQMi5qcy5tYXA="}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BrJM5Nld2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.675Z","timestamp":1785108244675,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_BrJM5Nld2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 371\r\nlast-modified: Sun, 26 Jul 2026 22:31:18 GMT\r\netag: \"245e9187b20b400f324cbd0f5faa48d8\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 c15a4538e5e519d8bde63ab6a2bb976e.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: c9k_8ux7rijjrHCCkTUT_wx0IltRytNN77LAD94XYMuaIUxe9qVhAg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=nIJ5DFaO94z5KhH%2F3zdWG3nIl45KpdYMLsrq92hn%2BH4JELMLUz8MFzB0Zau0BnVdjFDHp0BnuGcoeS%2FMepFbbv0m1rRDw89ceoVjCdgbBxJesPWJVyIzm95onK7I8AmAbxR9SiN6DVow5X65onKM\"}]}\r\ncf-ray: a21727e13ee60883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":706,"size_decoded":1514,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (666)","md5":"4387987c159082786fdaaeba62fbc6a1","sha1":"75cca9c1fcecb895c814c229a9989c40c9395193","sha256":"5c0096d4ed7949273f32f92a3e9e26473ad6684f85d25ddab652ec6f2f21cca2","sha512":"6d563b78665198aac85b6b3b42f51ad3a46b22243200294be05e32b3ce686e6ccee30e9ba74312d825a33054c8bb8e1cc3b26e9ca60032437d28bbe85bf451d0","ssdeep":"","tlshash":"3c01dccdfaf01a72422716bdd05320017bb6a18283ce4e24c11c023853e1ae98982f87","first_seen":"2026-07-26T23:24:50.231603Z","last_seen":"2026-07-26T23:25:46.823165Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGFmYzQxNmFmLWU2MDItNGZlZS04YTk4LTk3MzY3ZTFhNTNlNWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWFmYzQxNmFmLWU2MDItNGZlZS04YTk4LTk3MzY3ZTFhNTNlNWApfSkoKX1jYXRjaHt9aW1wb3J0e2VzIGFzIGV9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO2Z1bmN0aW9uIHQodCxuKXtpZih0IGluc3RhbmNlb2YgRXJyb3IpZSh0LHtvd25lcjpgYWNxdWlzaXRpb25gLGNvbnRleHQ6YGNvbnRlbnRmdWxgLC4uLm59KTtlbHNle2xldCByPUVycm9yKGBDb250ZW50ZnVsIGVycm9yYCk7ci5jYXVzZT10LGUocix7b3duZXI6YGFjcXVpc2l0aW9uYCxjb250ZXh0OmBjb250ZW50ZnVsYCwuLi5ufSl9fWZ1bmN0aW9uIG4oZSl7c3dpdGNoKGUudHlwZSl7Y2FzZWBFUlJPUmA6dGhyb3cgZS5lcnJvcjtkZWZhdWx0OnJldHVybiBlLnJlc3VsdH19ZXhwb3J0e24sdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQnJKTTVObGQyLmpzLm1hcA=="}},"time_used":107,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":107,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CobAleV62.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.698Z","timestamp":1785108244698,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CobAleV62.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 1589\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\netag: \"fa229c812a777b7ed382bf63cb80d0b2\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 c9dfe01ff817aaa5d7026e2556d7e676.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: mkHCGxaN8dbK2ILXVDqDORefVny3_PKK-aIGSOsviq6x-Eachyl2xA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=9htE17SOG4stqbPo8Er0zncL%2B3g7%2Bj2gjRdGWqbw%2FJUmujmcXII1iomclpcik9azSv6zRf3bsMeiQuJ5dP9H1acKsgK6TriFYr9WKn7o3GNqEGd4VnQyd0pPCXZbdzcuaOp3OTgKxqdE6GLq%2FTnT\"}]}\r\ncf-ray: a21727e15f380883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":3946,"size_decoded":2735,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (3906)","md5":"a37ae0e963df8fec1a0e6f096d0d36d0","sha1":"c070cba19d8e0447259ad82d4a73cc2bda1f950a","sha256":"b4f8a13717fed801a9f27d206402ba450ae6415bc24ed64f28def8a6b86a2e21","sha512":"db3c1db2a1bb5a7161c3211147674ec50d832aedd15f0b996c9d7f1a76f083ccc016e30fcb3e8f47ab0962502b9481099c2b6dadaa6a6e570bc2f4fca8d29411","ssdeep":"","tlshash":"7181dac17ae47a7110dec34780af5e45b22c2531a92e9799f7306efc03a4993c7e4a4b","first_seen":"2026-07-26T23:24:50.233384Z","last_seen":"2026-07-26T23:25:46.832356Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDUwNWQ4ZWQzLTRkY2UtNGY1Yy1iZTBjLWE2MWE4MzZjMzg0Y2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTUwNWQ4ZWQzLTRkY2UtNGY1Yy1iZTBjLWE2MWE4MzZjMzg0Y2ApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsX3MgYXMgdCxkZCBhcyBuLGZmIGFzIHIsZ3MgYXMgaSxoZiBhcyBhLG1zIGFzIG8sb3MgYXMgcyx1cyBhcyBjLHhsIGFzIGx9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciB1PWUoYSgpKSxkPXIoKSxmPVtgbGFiZWxgLGBpZGBdLHA9W2B0YWJzYCxgdmFsdWVgLGBvbkNoYW5nZWAsYENvbXBvbmVudGAsYHBhZGRsZVN0eWxlYCxgdGVzdElEYCxgYmFja2dyb3VuZGAsYGdhcGAsYHJvbGVgLGBwcmV2aW91c0Fycm93QWNjZXNzaWJpbGl0eUxhYmVsYCxgbmV4dEFycm93QWNjZXNzaWJpbGl0eUxhYmVsYCxgd2lkdGhgLGBjb2xvcmBdO2Z1bmN0aW9uIG0oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBoKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP20oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2coZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6bShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gZyhlLHQsbil7cmV0dXJuKHQ9Xyh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBfKGUpe3ZhciB0PXYoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gdihlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIHkoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT1iKGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1mdW5jdGlvbiBiKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgeD1gc2Nyb2xsQ29udGFpbmVyQ3NzLXMxOWw3c3B2YCxTPWU9PntsZXR7bGFiZWw6bj1gYCxpZDpyfT1lLGE9eShlLGYpLHthY3RpdmVUYWI6byx1cGRhdGVBY3RpdmVUYWI6c309aSgpLGM9KDAsdS51c2VNZW1vKSgoKT0+KG89PW51bGw/dm9pZCAwOm8uaWQpPT09cixbbyxyXSksbD0oMCx1LnVzZVJlZikobnVsbCkscD0oMCx1LnVzZUNhbGxiYWNrKSgoKT0+cyhyKSxbcixzXSk7cmV0dXJuKDAsdS51c2VFZmZlY3QpKCgpPT57YyYmbC5jdXJyZW50JiZsLmN1cnJlbnQuZm9jdXMoKX0sW2NdKSwoMCxkLmpzeCkodCxoKGgoe3JlZjpsLCJhcmlhLXNlbGVjdGVkIjpjLGludmVydGVkOmMsb25DbGljazpwLHJvbGU6YHRhYmAsd2lkdGg6YG1heC1jb250ZW50YH0sYSkse30se2NoaWxkcmVuOm59KSl9LEM9KCk9Pm51bGwsdz0oMCx1Lm1lbW8pKCgwLHUuZm9yd2FyZFJlZikoZnVuY3Rpb24oZSx0KXtsZXQgcj1uKGBUYWJiZWRDaGlwc2AsZSkse3RhYnM6aSx2YWx1ZTphLG9uQ2hhbmdlOmYsQ29tcG9uZW50Om09UyxwYWRkbGVTdHlsZTpnLHRlc3RJRDpfLGJhY2tncm91bmQ6dj1gYmdgLGdhcDpiPTEscm9sZTp3LHByZXZpb3VzQXJyb3dBY2Nlc3NpYmlsaXR5TGFiZWw6VD1gUHJldmlvdXNgLG5leHRBcnJvd0FjY2Vzc2liaWxpdHlMYWJlbDpFPWBOZXh0YCx3aWR0aDpEPWAxMDAlYCxjb2xvcjpPfT1yLGs9eShyLHApLFtBLGpdPSgwLHUudXNlU3RhdGUpKG51bGwpLHtzY3JvbGxSZWY6TSxpc1Njcm9sbENvbnRlbnRPZmZzY3JlZW5MZWZ0Ok4saXNTY3JvbGxDb250ZW50T2Zmc2NyZWVuUmlnaHQ6UCxoYW5kbGVTY3JvbGw6Rn09byh7YWN0aXZlVGFyZ2V0OkEsYXV0b1Njcm9sbE9mZnNldDo1MH0pLEk9KDAsdS51c2VNZW1vKSgoKT0+aS5maW5kKGU9PmUuaWQ9PT1hKSxbaSxhXSksTD0oMCx1LnVzZUNhbGxiYWNrKShlPT57ZSYmKGY9PW51bGx8fGYoZS5pZCkpfSxbZl0pLFI9KDAsdS51c2VDYWxsYmFjaykoKCk9Pnt2YXIgZTtNPT1udWxsfHwoZT1NLmN1cnJlbnQpPT1udWxsfHxlLnNjcm9sbFRvKHtsZWZ0OjAsYmVoYXZpb3I6YHNtb290aGB9KX0sW01dKSx6PSgwLHUudXNlQ2FsbGJhY2spKCgpPT57aWYoIU0uY3VycmVudClyZXR1cm47bGV0IGU9TS5jdXJyZW50LnNjcm9sbFdpZHRoLU0uY3VycmVudC5jbGllbnRXaWR0aDtNLmN1cnJlbnQuc2Nyb2xsVG8oe2xlZnQ6ZSxiZWhhdmlvcjpgc21vb3RoYH0pfSxbTV0pO3JldHVybigwLGQuanN4cykobCxoKGgoe2FsaWduSXRlbXM6YGNlbnRlcmAscG9zaXRpb246YHJlbGF0aXZlYCx0ZXN0SUQ6Xyx3aWR0aDpEfSxrKSx7fSx7Y2hpbGRyZW46WygwLGQuanN4KShjLHthY2Nlc3NpYmlsaXR5TGFiZWw6VCxiYWNrZ3JvdW5kOnYsZGlyZWN0aW9uOmBsZWZ0YCxvbkNsaWNrOlIscGFkZGxlU3R5bGU6ZyxzaG93Ok4sdmFyaWFudDpgc2Vjb25kYXJ5YH0pLCgwLGQuanN4KShsLHtyZWY6TSxhbGlnbkl0ZW1zOmBjZW50ZXJgLGNsYXNzTmFtZTp4LG9uU2Nyb2xsOkYsb3ZlcmZsb3c6YGF1dG9gLGNoaWxkcmVuOigwLGQuanN4KShzLGgoe3JlZjp0LFRhYkNvbXBvbmVudDptLFRhYnNBY3RpdmVJbmRpY2F0b3JDb21wb25lbnQ6QyxhY3RpdmVUYWI6SXx8bnVsbCxiYWNrZ3JvdW5kOnYsY29sb3I6TyxnYXA6YixvbkFjdGl2ZVRhYkVsZW1lbnRDaGFuZ2U6aixvbkNoYW5nZTpMLHJvbGU6dyx0YWJzOml9LGspKX0pLCgwLGQuanN4KShjLHthY2Nlc3NpYmlsaXR5TGFiZWw6RSxiYWNrZ3JvdW5kOnYsZGlyZWN0aW9uOmByaWdodGAsb25DbGljazp6LHBhZGRsZVN0eWxlOmcsc2hvdzpQLHZhcmlhbnQ6YHNlY29uZGFyeWB9KV19KSl9KSk7dy5kaXNwbGF5TmFtZT1gVGFiYmVkQ2hpcHNgO3ZhciBUPXc7ZXhwb3J0e1QgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQ29iQWxlVjYyLmpzLm1hcA=="}},"time_used":106,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":106,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"as.coinbase.com/metrics","fqdn":"as.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:05.922Z","timestamp":1785108245922,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /metrics HTTP/1.1\r\nHost: as.coinbase.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.coinbase.com/\r\nContent-Type: text/plain;charset=UTF-8\r\nContent-Length: 9913\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":9913,"data":"{\"metrics\":[{\"metric_name\":\"boundary_render\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"owner\":\"infra\",\"cds_version\":\"7.x\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"route_render\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"path\":\"/\",\"cds_version\":\"7.x\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"global_experiments\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"status\":\"success\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"boundary_render\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"owner\":\"home\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"cb.react.data_layer.ttl.refresh.skip\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"type\":\"useLazyLoadQuery\",\"operation_name\":\"CDXHomePageQuery\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"kill_switches_enabled\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"kill_switch\":\"kill_service_worker\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"kill_switches_enabled\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"kill_switch\":\"kill_service_worker_cache_fonts\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"kill_switches_enabled\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"kill_switch\":\"kill_service_worker_html_cache\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"kill_switches_enabled\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"kill_switch\":\"kill_service_worker_proxy_font\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"accessibility_zoom_scale\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"zoom_scale\":\"1.0\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"accessibility_contrast_mode\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"contrast_mode_enabled\":\"false\",\"forced_colors_mode_enabled\":\"false\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"accessibility_reduced_motion\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"reduced_motion_enabled\":\"false\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"cb.react.data_layer.request.start\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operationName\":\"useAnonTouchCaptureMutation\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"cb.react.data_layer.request.wait_for_network.timeout\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operationName\":\"useAnonTouchCaptureMutation\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"perf_time_to_first_byte\",\"page_path\":\"/\",\"value\":145,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"page_key\":\"homepage\",\"save_data\":false,\"service_worker\":\"supported\",\"is_perf_metric\":true,\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"histogram\"},{\"metric_name\":\"perf_web_vitals_ttfb_good\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"page_key\":\"homepage\",\"save_data\":false,\"service_worker\":\"supported\",\"is_perf_metric\":true,\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"user_journey_step.consumer.web.load_homepage_screen_vitals_good\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"page_key\":\"homepage\",\"save_data\":false,\"service_worker\":\"supported\",\"is_perf_metric\":true,\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"user_journey_step.consumer.web.load_homepage_screen\",\"page_path\":\"/\",\"value\":260,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"page_key\":\"homepage\",\"save_data\":false,\"service_worker\":\"supported\",\"is_perf_metric\":true,\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"distribution\"},{\"metric_name\":\"user_journey_step.consumer.web.duration_vitals_good\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"page_key\":\"homepage\",\"save_data\":false,\"service_worker\":\"supported\",\"is_perf_metric\":true,\"step_name\":\"load_homepage_screen\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"user_journey_step.consumer.web.duration\",\"page_path\":\"/\",\"value\":260,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"page_key\":\"homepage\",\"save_data\":false,\"service_worker\":\"supported\",\"is_perf_metric\":true,\"step_name\":\"load_homepage_screen\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"distribution\"}]}"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:06 GMT\r\ncontent-length: 0\r\naccess-control-allow-origin: *\r\nserver: cloudflare\r\nx-content-type-options: nosniff\r\ntrace-id: 8880769261136141743\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nset-cookie: cb_dm=b3903412-50d2-4eb3-a594-5ec1fb5c0466; Path=/; Domain=coinbase.com; Expires=Sat, 26 Jul 2036 23:24:05 GMT; HttpOnly; Secure\n__cf_bm=kNbIWM63wALQB4be4BplL.IcGWqKnAC0cEWeyUxUYsQ-1785108245.924546-1.0.1.1-xhrC5zhEMOdyhMyBom3rC4lkGARjlkOoH3fXsS4q1OYkv5y1zQDuunW7MRnPN9jHQRFLndYzYKATvST0MRgXyMxLTBgjpWUfIxSB7woSlXoH3yWjTcddvLHZKifYPRsn; HttpOnly; SameSite=None; Secure; Path=/; Domain=coinbase.com; Expires=Sun, 26 Jul 2026 23:54:06 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=3dolIzI5BsqLAer3tPUM1a6CmA5ajdj%2B839aaCrIPWATZTZ9NYX5rfCC%2FiEpWoNC5BKSqkH2JLcEzvQ7jo%2BYlP8q6R2z5unfOIyiN11Zg%2F9e%2Fu8pMO%2FZdMKLhDwcyJCG6A%3D%3D\"}]}\r\ncf-ray: a21727e9085c1525-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":0,"size_decoded":11563,"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-27T02:51:03.003348Z","times_seen":17554215,"resource_available":true,"data":""}},"time_used":112,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":112,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/node_modules/.vite/deps/react-router-dom.js?v=08eb349e","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.515Z","timestamp":1785108243515,"http_version":"HTTP/1.1","security_state":"secure","security_info":null,"request":{"raw":"GET /node_modules/.vite/deps/react-router-dom.js?v=08eb349e HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/src/App.tsx\r\nSec-Fetch-Dest: script\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":"","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T02:51:03.003348Z","times_seen":17554215,"resource_available":true,"data":null}},"time_used":0,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":0,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DO4TPcwe.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.614Z","timestamp":1785108244614,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DO4TPcwe.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 353\r\nlast-modified: Sun, 26 Jul 2026 22:31:25 GMT\r\netag: \"0e1a677e91706aa242f094bfbe14519c\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 3cee1b61334bd8139fe0ff6d7079a1e4.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: mCYH9qQYNdDhyYsVW5NFXWR5cwZP6aXXPD9UCv0uNXgFdMIyo7m5mA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=dXbxzEWMASk8BJz%2BDqtnpndGhnHFFI2tIo1PPtI0gY75BiGBpCkta9y1QF3Q8iqFZVKfSYNlSBU1CphUg2Nb%2FnnmEWsr621Nmd94jshM1LyEr28G7AJlRuP7TCNOdoX0g3TlmNLTH3vldOqp%2FuFk\"}]}\r\ncf-ray: a21727e0de040883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":639,"size_decoded":1496,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (600)","md5":"5d95e209938f315f914f277170675b47","sha1":"c85684227dfdbf83b02be05c8f21bab9d838595a","sha256":"d9801346431fe6acb765f8630eb298adfec314b79ef6fd9bf3d044d299705795","sha512":"d8fbd278df822c6e702059e1acc0f1afdbb9b4892eec22e07ef269c7ed5bd622d84c913a2a8a79dd0f09748aded11e61932ef0904e8b9eff5c601beb180616cc","ssdeep":"","tlshash":"a8f0dd464bf02ba9cd23323cc1a6678637285112a39e8b11d03a4a7d2b7e4c68519253","first_seen":"2026-07-26T23:24:50.23629Z","last_seen":"2026-07-26T23:25:46.836158Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGVlZWZjNTg1LTMxMDEtNDQ1NC05NGM2LTc4ZDU4YTAwNTQ4YWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWVlZWZjNTg1LTMxMDEtNDQ1NC05NGM2LTc4ZDU4YTAwNTQ4YWApfSkoKX1jYXRjaHt9aW1wb3J0e19hIGFzIGUsb3QgYXMgdH1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIG49ZS5zZWN0aW9uLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBTdGF0aWNMYXlvdXRfX1NlY3Rpb25gLGNvbXBvbmVudElkOmBzYy03Y2YzZDM3LTBgfSkoW2BkaXNwbGF5OmZsZXg7ZmxleC1zaHJpbms6MDt3aWR0aDoxMDAlO21heC13aWR0aDpgLGBweDttYXJnaW46MCBhdXRvO3BhZGRpbmc6MjRweDtgXSx0LmxheW91dC53aWR0aCk7ZXhwb3J0e24gYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfRE80VFBjd2UuanMubWFw"}},"time_used":112,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":112,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_j0SAF0un.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.619Z","timestamp":1785108244619,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_j0SAF0un.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 3230\r\nlast-modified: Sun, 26 Jul 2026 22:31:30 GMT\r\netag: \"01a473121f70117618fe56fc5f5c2710\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 11050e7a710fa6deb5ade87dc71fe9d8.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: VKIYUWAR-SPGIPT9W1Sboualo4bBDdtfkt-ZRrUPSRMdhxAGur_xrQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=5VLzzP6vwy3xHZeBhLuj93vJDx45KTGo5Gy6bjhcuNniUN9HDEwbTJyFeru1Qr%2FBHtVCy8TFIaZ3JGJvXQRSSNyOM1anTAJAWdpf5vW%2Fg33RMmJQmKpOsIMwXLk1NUMpRtZIDG%2BUZvCxP4hUgSMm\"}]}\r\ncf-ray: a21727e0ee170883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":9945,"size_decoded":4374,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (4923)","md5":"d2fbe1d0b3592b0c3ef3e87603d9ace6","sha1":"70812f9624b62abd51ea68c272f233b54dccec87","sha256":"0051052d5b941e93543ef1ad6b00c420a1477243893d04799c5d79a5827c458c","sha512":"88faed74dd49e59c3b41c8285ca5f83b39d998199340b4bb3acc851e5db36b8d7abc83b0d2a461ca4d7da4cd157767dc1d10ef26529fce6de1be601d69bf268f","ssdeep":"192:ib26y8LP2qaunv4Xa19z13KgKu2o/AP/+4AP/+rSX/:ib2boj3AMz9TKu2omSP","tlshash":"af22c5d8a2753026329bd9a8d233741f225ce1b2ec4616e47067dc1e1bd12d593e2fa7","first_seen":"2026-07-26T23:24:50.23812Z","last_seen":"2026-07-26T23:25:46.822556Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDAyZDRmNDgyLWI3OTYtNDg0Yy1hYWFkLTlmMWM3OTc1NjA5ZWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTAyZDRmNDgyLWI3OTYtNDg0Yy1hYWFkLTlmMWM3OTc1NjA5ZWApfSkoKX1jYXRjaHt9aW1wb3J0e24gYXMgZX1mcm9tIi4vY19DZlQwX1RtbzIuanMiO2ltcG9ydHt0fWZyb20iLi9jX0IybC1tWjJyLmpzIjtpbXBvcnR7aSBhcyBuLHJ9ZnJvbSIuL2NfRHQya1hjczIuanMiO2ltcG9ydHtGaSBhcyBpLEppIGFzIGEsUW8gYXMgbyxUaSBhcyBzLFVpIGFzIGMsVnMgYXMgbCxXcCBhcyB1LFlpIGFzIGQsX2EgYXMgZixiYSBhcyBwLGJsIGFzIG0sY2QgYXMgaCxmZiBhcyBnLGhmIGFzIF8saHIgYXMgdixpYSBhcyB5LGppIGFzIGIscGEgYXMgeCxyciBhcyBlZSxzciBhcyBTLHRpIGFzIEMsdG8gYXMgdyx4bCBhcyBULHphIGFzIEUsemkgYXMgRH1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7aW1wb3J0e3QgYXMgT31mcm9tIi4vY19EY1pBcld0OTIuanMiO2ltcG9ydHt0IGFzIGt9ZnJvbSIuL2NfQnJKTTVObGQyLmpzIjtpbXBvcnR7dCBhcyBBfWZyb20iLi9jX0NrTWR5MV9rMi5qcyI7aW1wb3J0e24gYXMgaixyIGFzIHRlfWZyb20iLi9jX0NEY1hYdHlxMi5qcyI7dmFyIE09ZygpLE49dShfKCkpLFA9e1RpdGxlTGluazpgdGl0bGVMaW5rYCxDb250ZW50TGluazpgY29udGVudExpbmtgfSxGPUUoZnVuY3Rpb24oe3RpdGxlOmUsY29udGVudDp0LGlzRXhwYW5kZWQ6bj0hMSxzZXRJc0V4cGFuZGVkOnIsY29tcG9uZW50SWQ6aSxjb250ZW50VHlwZUlkOm8sdGVzdElEOnM9YGFjY29yZGlvbi1pdGVtYH0pe2xldFtjLHVdPSgwLE4udXNlU3RhdGUpKCExKSxmPXI/bjpjLHA9KDAsTi51c2VDYWxsYmFjaykoKCk9PnI/cihlPT4hZSk6dShlPT4hZSksW3IsdV0pLGg9KDAsTi51c2VDYWxsYmFjaykoZT0+eyhlLmtleT09PWBFbnRlcmB8fGUua2V5PT09YCBgKSYmKGUucHJldmVudERlZmF1bHQoKSxwKCkpfSxbcF0pLGc9dyhQLlRpdGxlTGluayksXz13KFAuQ29udGVudExpbmspLHY9ZiYmISF0LHk9ZCh0KSYmYSh0KSYmdC5jb250ZW50LnNvbWUoZT0+ZS5ub2RlVHlwZT09PWB0YWJsZWApO3JldHVybigwLE0uanN4cykobSx7cm9sZTpgZ3JvdXBgLCJkYXRhLXRlc3RpZCI6cyxiYWNrZ3JvdW5kOmBiZ1NlY29uZGFyeVdhc2hgLGJvcmRlclJhZGl1czo0MDAsd2lkdGg6YDEwMCVgLHBvc2l0aW9uOmByZWxhdGl2ZWAsY2hpbGRyZW46WygwLE0uanN4cykoSSx7b25DbGljazpwLG9uS2V5RG93bjpoLHJvbGU6YGJ1dHRvbmAsdGFiSW5kZXg6MCwiYXJpYS1leHBhbmRlZCI6ZiwiZGF0YS10ZXN0aWQiOmBhY2NvcmRpb24taXRlbS1oZWFkZXJgLHBhZGRpbmdZOjMscGFkZGluZ1N0YXJ0OnhbYGNhcmQtcGFkZGluZ2BdLHBhZGRpbmdFbmQ6OSxwb3NpdGlvbjpgcmVsYXRpdmVgLGJvcmRlclJhZGl1czo0MDAsY2hpbGRyZW46WygwLE0uanN4KShtLHtnYXA6MS41LGFsaWduSXRlbXM6YGZsZXgtc3RhcnRgLGp1c3RpZnlDb250ZW50OmBjZW50ZXJgLHBhZGRpbmc6MCx3aWR0aDpgMTAwJWAsY2hpbGRyZW46YShlKSYmKDAsTS5qc3gpKG0se2p1c3RpZnlDb250ZW50OmBjZW50ZXJgLHdpZHRoOmAxMDAlYCwiZGF0YS10ZXN0aWQiOmBhY2NvcmRpb24taXRlbS10aXRsZWAsY2hpbGRyZW46KDAsTS5qc3gpKGIse21heFdpZHRoOmA5MDBweGAsZm9udDpgaGVhZGxpbmVgLGNvbG9yOmBmZ2AsY29udGVudDplLG9uUmljaFRleHRMaW5rQ2xpY2s6Z30pfSl9KSwoMCxNLmpzeHMpKFQse2FsaWduSXRlbXM6YGNlbnRlcmAsanVzdGlmeUNvbnRlbnQ6YGNlbnRlcmAscG9zaXRpb246YGFic29sdXRlYCxyaWdodDpgdmFyKC0tc3BhY2UtMilgLGNvbG9yOmBmZ2AscGFkZGluZzoyLGNoaWxkcmVuOlsoMCxNLmpzeCkoTCx7bmFtZTpgYWRkYCxzaXplOmBzYCxjb2xvcjpgZmdgLCR2aXNpYmxlOiFmfSksKDAsTS5qc3gpKEwse25hbWU6YG1pbnVzYCxzaXplOmBzYCxjb2xvcjpgZmdgLCR2aXNpYmxlOmZ9KV19KV19KSwoMCxNLmpzeCkobCx7Y29sbGFwc2VkOiF2LGNoaWxkcmVuOigwLE0uanN4KShSLHskdmlzaWJsZTp2LCJkYXRhLXRlc3RpZCI6YGFjY29yZGlvbi1pdGVtLWNvbnRlbnRgLHdpZHRoOmAxMDAlYCxwYWRkaW5nU3RhcnQ6eFtgY2FyZC1wYWRkaW5nYF0scGFkZGluZ0VuZDo5LHBhZGRpbmdCb3R0b206NixjaGlsZHJlbjooMCxNLmpzeCkobSx7bWF4V2lkdGg6eT9gMTAwJWA6YDkwMHB4YCwiZGF0YS10ZXN0aWQiOmBhY2NvcmRpb24taXRlbS1jb250ZW50LXRleHRgLGNoaWxkcmVuOigwLE0uanN4KShiLHtmb250OmBjYXB0aW9uYCxjb2xvcjpgZmdgLGNvbnRlbnQ6dCxvblJpY2hUZXh0TGlua0NsaWNrOl99KX0pfSl9KV19KX0pLEk9ZihUKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgQ0RYQWNjb3JkaW9uSXRlbV9fSGVhZGVyYCxjb21wb25lbnRJZDpgc2MtZGU5NmEwY2ItMGB9KShbYGN1cnNvcjpwb2ludGVyOyY6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy00MDApO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdUZXJ0aWFyeSk7b3BhY2l0eTowO30mOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnkpO30mOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeSk7b3V0bGluZTp2YXIoLS1ib3JkZXJXaWR0aC0yMDApIHNvbGlkIHZhcigtLWNvbG9yLWZnUHJpbWFyeSk7b3V0bGluZS1vZmZzZXQ6dmFyKC0tYm9yZGVyV2lkdGgtMjAwKTt9JjphY3RpdmU6YmVmb3Jle29wYWNpdHk6MC4xMjU7fWBdKSxMPWYoRCkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YENEWEFjY29yZGlvbkl0ZW1fX0ljb25gLGNvbXBvbmVudElkOmBzYy1kZTk2YTBjYi0xYH0pKFtgZGlzcGxheTpibG9jazt0cmFuc2l0aW9uOm9wYWNpdHkgMC4ycztwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7YCxgYF0sKHskdmlzaWJsZTplfSk9PmUmJnAoW2BvcGFjaXR5OjE7YF0pKSxSPWYobSkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YENEWEFjY29yZGlvbkl0ZW1fX0NvbnRlbnRXcmFwcGVyYCxjb21wb25lbnRJZDpgc2MtZGU5NmEwY2ItMmB9KShbYG9wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBlYXNlLWluO2AsYGBdLCh7JHZpc2libGU6ZX0pPT5lJiZwKFtgb3BhY2l0eToxO3RyYW5zaXRpb246b3BhY2l0eSAwLjJzIGVhc2Utb3V0O2BdKSksej1FKGZ1bmN0aW9uKHt0aXRsZTplLHBhcmFncmFwaDpuLGN0YUdyb3VwOnIsc2VjdGlvbnM6aT1bXSxjb21wb25lbnRJZDpvLGNvbnRlbnRUeXBlSWQ6cyxjbGFzc05hbWU6YyxpZDpsLHRlc3RJRDp1PWBhY2NvcmRpb25gLGxlZ2FsOmQsc2VjdGlvblNldHRpbmdzOmYsbm9TcGFjaW5nOnB9KXtsZXRbaCxnXT0oMCxOLnVzZVN0YXRlKSgoKT0+e2xldCBlPW5ldyBTZXQ7cmV0dXJuIGkuZm9yRWFjaCgodCxuKT0+e3QuaXNFeHBhbmRlZCYmZS5hZGQobil9KSxlfSksXz0oMCxOLnVzZU1lbW8pKCgpPT5pLm1hcCgoZSx0KT0+ZT0+ZyhuPT57bGV0IHI9dHlwZW9mIGU9PWBmdW5jdGlvbmA/ZShuLmhhcyh0KSk6ZSxpPW5ldyBTZXQobik7cmV0dXJuIGlbcj9gYWRkYDpgZGVsZXRlYF0odCksaX0pKSxbZyxpXSk7cmV0dXJuKDAsTS5qc3hzKSh5LHtjbGFzc05hbWU6Yyx0ZXN0SUQ6dSxzZWN0aW9uU2V0dGluZ3M6Zixub1NwYWNpbmc6cCxjaGlsZHJlbjpbKDAsTS5qc3gpKHQse3RpdGxlOmUscGFyYWdyYXBoOm4sY3RhczpyLGxheW91dDpgSG9yaXpvbnRhbGB9KSxpLmxlbmd0aD4wJiYoMCxNLmpzeCkobSx7Z2FwOi41LCJkYXRhLXRlc3RpZCI6YGFjY29yZGlvbi1zZWN0aW9uc2AsY2hpbGRyZW46aS5tYXAoKGUsdCk9PigwLE0uanN4KShGLHtjb21wb25lbnRJZDplLmNvbXBvbmVudElkLHRpdGxlOmUudGl0bGUsY29udGVudDplLmNvbnRlbnQsaXNFeHBhbmRlZDpoLmhhcyh0KSxzZXRJc0V4cGFuZGVkOl9bdF0sY29udGVudFR5cGVJZDplLmNvbnRlbnRUeXBlSWR9LGUuY29tcG9uZW50SWQpKX0pLGEoZCkmJigwLE0uanN4KShtLHttYXhXaWR0aDpgOTAwcHhgLGNoaWxkcmVuOigwLE0uanN4KShiLHtmb250OmBsZWdhbGAsY29sb3I6YGZnTXV0ZWRgLGNvbnRlbnQ6ZH0pfSldfSl9KTtmdW5jdGlvbiBCKGUpe3JldHVybigwLE4ubWVtbykoRShmdW5jdGlvbih0KXtsZXR7Y3VzdG9tQ29tcG9uZW50S2V5Om4sY29udGVudDpyfT10O2lmKCFlW25dKXJldHVybiBudWxsO2xldCBpPXI9PW51bGw/dm9pZCAwOnIucmVkdWNlKChlLHQpPT4oZVt0LmtleV09dC52YWx1ZSxlKSx7fSksYT1lW25dO3JldHVybigwLE0uanN4KShhLHsuLi50LGNvbnRlbnQ6aX0pfSkpfXZhciBWPShlLHQpPT57aWYoTylrKGUsdCk7ZWxzZSB0aHJvdyBjb25zb2xlLndhcm4oYFx4MUJbMzNtJXNceDFCWzBtYCxlLGBceDFCWzBtYCksZX07ZnVuY3Rpb24gSCgpe2xldCBlPVMoKTtyZXR1cm4oMCxOLnVzZUNhbGxiYWNrKSgodCxuKT0+IXR8fCEodC5zdGFydHNXaXRoKGAvYCl8fHYodCkhPT12b2lkIDApP3Q6ZWUodCxPYmplY3QuZnJvbUVudHJpZXMobmV3IFVSTFNlYXJjaFBhcmFtcyhuKS5lbnRyaWVzKCkpLGUpLFtlXSl9ZnVuY3Rpb24gVSgpe2xldCBlPUMoKTtyZXR1cm4oMCxNLmpzeCkocyx7Y2hpbGRyZW46KDAsTS5qc3gpKGBzdHlsZWAse3R5cGU6YHRleHQvY3NzYCxjaGlsZHJlbjpgCiAgICAgICAgICBodG1sIHsKICAgICAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CiAgICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLXRvcDogJHsoZT09bnVsbD92b2lkIDA6ZS5mdWxsKT8/MH1weDsKICAgICAgICAgIH0KICAgICAgICBgfSl9KX12YXIgVz1bYENEWFYyX0hlcm9Ib21lYCxgQ0RYVjJfSGVyb2AsYENEWFYyX1Byb21vQ2Fyb3VzZWxgLGBDRFhWMl9GZWF0dXJlSGlnaGxpZ2h0c2BdO2Z1bmN0aW9uIEcoZSl7cmV0dXJuIFcuc29tZSh0PT50PT09ZS5jb250ZW50VHlwZUlkKX1mdW5jdGlvbiBLKGUpe2lmKChlPT1udWxsP3ZvaWQgMDplLmNvbnRlbnRUeXBlSWQpPT09YENEWFYyX0ltYWdlYCl7dmFyIHQ7cmV0dXJuKCh0PWUuZGVmYXVsdEltYWdlKT09bnVsbD92b2lkIDA6dC51cmwpPz9udWxsfXJldHVybiBudWxsfWZ1bmN0aW9uIHEoZSl7dmFyIHQ7bGV0e3NlbzpuLGNvbnRlbnQ6cn09ZT8/e30saT0obj09bnVsbHx8KHQ9bi5pbWFnZSk9PW51bGw/dm9pZCAwOnQudXJsKT8/bnVsbDtpZighaSl7dmFyIGE7bGV0IGU9KHI9PW51bGx8fChhPXIuY29tcG9uZW50cyk9PW51bGw/dm9pZCAwOmEuZmlsdGVyKEcpKT8/W107Zm9yKGxldCB0IG9mIGUpe3N3aXRjaCh0LmNvbnRlbnRUeXBlSWQpe2Nhc2VgQ0RYVjJfSGVyb0hvbWVgOmk9Syh0Lm1lZGlhKTticmVhaztjYXNlYENEWFYyX0hlcm9gOmk9Syh0Lm1lZGlhKTticmVhaztjYXNlYENEWFYyX0ZlYXR1cmVIaWdobGlnaHRzYDppPXQuc2VjdGlvbnMubWFwKGU9PksoZS5tZWRpYSkpLmZpbHRlcihCb29sZWFuKS5hdCgwKT8/bnVsbDticmVhaztjYXNlYENEWFYyX1Byb21vQ2Fyb3VzZWxgOmk9dC5pdGVtcy5tYXAoZT0+SyhlLm1lZGlhKSkuZmlsdGVyKEJvb2xlYW4pLmF0KDApPz9udWxsO2JyZWFrfWlmKGkpYnJlYWt9fXJldHVybnt0aXRsZToobj09bnVsbD92b2lkIDA6bi50aXRsZSl8fChlPT1udWxsP3ZvaWQgMDplLnRpdGxlKSxpbWFnZTppPz92b2lkIDAsb2dUaXRsZTpuPT1udWxsP3ZvaWQgMDpuLm9nVGl0bGUsZGVzY3JpcHRpb246bj09bnVsbD92b2lkIDA6bi5kZXNjcmlwdGlvbix0d2l0dGVyQ2FyZDpuPT1udWxsP3ZvaWQgMDpuLnR3aXR0ZXJDYXJkLHR3aXR0ZXJJbWFnZTpuPT1udWxsP3ZvaWQgMDpuLnR3aXR0ZXJJbWFnZSxub0luZGV4OihuPT1udWxsP3ZvaWQgMDpuLm5vX2luZGV4KXx8KG49PW51bGw/dm9pZCAwOm4ubm9fZm9sbG93KSxpbmNsdWRlSHJlZkxhbmdzOiEwfX12YXIgSj1vKGBDT0lOQkFTRV9QVUJMSUNfREVQTE9ZTUVOVF9UQVJHRVRgKTtmdW5jdGlvbiBZKHtjb21wb25lbnRzOnQsZ3FsUXVlcnlSZWY6bixvbkVycm9yOnIsY29tcG9uZW50TWFwOmksd3JhcHBlcnNDb21wb25lbnRNYXA6YX0pe3JldHVybih0PT1udWxsP3ZvaWQgMDp0Lm1hcCgoe2NvbnRlbnRUeXBlSWQ6dCwuLi5vfSk9PntpZighdHx8IWlbdF0mJiFhW3RdKXJldHVybiBudWxsO2xldCBzPWFbdF0sYz1zP2FbdF06aVt0XTtyZXR1cm4gYz8oMCxNLmpzeCkoZSx7b25FcnJvcjpyLGNoaWxkcmVuOigwLE4uY3JlYXRlRWxlbWVudCkoYyx7a2V5Om8uaWQsLi4ubyx0ZXN0SUQ6Sj09PWBwcm9kdWN0aW9uYD92b2lkIDA6by5pZCxncWxRdWVyeVJlZjpuLGNvbXBvbmVudE1hcDpzP2k6dm9pZCAwLHdyYXBwZXJzQ29tcG9uZW50TWFwOnM/YTp2b2lkIDB9KX0sby5pZCk6bnVsbH0pLmZpbHRlcihlPT5lIT09bnVsbCkpPz9bXX1mdW5jdGlvbiBYKHtleHBlcmltZW50TmFtZTplLGluY2x1ZGVkQ291bnRyaWVzOnQsaW5jbHVkZWRMYW5ndWFnZXM6bix2YXJpYW50czpyLGdxbFF1ZXJ5UmVmOmksY29tcG9uZW50TWFwOmEsd3JhcHBlcnNDb21wb25lbnRNYXA6b30pe2xldCBzPSgwLE4udXNlTWVtbykoKCk9PnJ8fFtdLFtyXSksYz1BKHtleHBlcmltZW50TmFtZTplLGluY2x1ZGVkQ291bnRyaWVzOnQsaW5jbHVkZWRMYW5ndWFnZXM6bixzZWxlY3RlZFZhcmlhbnRzOnN9KSxsPSgwLE4udXNlTWVtbykoKCk9PnRlKHMpLFtzXSksdT0oMCxOLnVzZU1lbW8pKCgpPT5qKGwsYyksW2wsY10pLGQ9KDAsTi51c2VDYWxsYmFjaykoZT0+Vih0eXBlb2YgZT09YHN0cmluZ2A/RXJyb3IoZSk6ZSksW10pO3JldHVybiB1P1koe2NvbXBvbmVudHM6dS5jb250ZW50LGdxbFF1ZXJ5UmVmOmksb25FcnJvcjpkLGNvbXBvbmVudE1hcDphLHdyYXBwZXJzQ29tcG9uZW50TWFwOm99KTpudWxsfXZhciBaPSgwLE4ubWVtbykoWCk7ZnVuY3Rpb24gUSh7dGVzdElEOmU9YGVkaXRvcmlhbC1hY2NvcmRpb25gLC4uLnR9KXtyZXR1cm4oMCxNLmpzeCkoaCx7dGVzdElEOmUsY2hpbGRyZW46KDAsTS5qc3gpKHose25vU3BhY2luZzohMCwuLi50fSl9KX1mdW5jdGlvbiBuZSh7ZGVmYXVsdEltYWdlOmUsaW1hZ2VBbHRUZXh0OnQsaGlkZUJhY2tncm91bmQ6bixkZWZhdWx0SW1hZ2VGaXQ6cixkYXJrTW9kZUltYWdlOmksZGVza3RvcEltYWdlOmEsZGVza3RvcEltYWdlRml0Om8sZGFya01vZGVEZXNrdG9wSW1hZ2U6cyx0YWJsZXRJbWFnZTpsLHRhYmxldEltYWdlRml0OnUsZGFya01vZGVUYWJsZXRJbWFnZTpkLG1vYmlsZUltYWdlOmYsbW9iaWxlSW1hZ2VGaXQ6cCxkYXJrTW9kZU1vYmlsZUltYWdlOm0sdGVzdElEOmc9YGVkaXRvcmlhbC1pbWFnZWAsLi4uX30pe2xldCB2PShlPT1udWxsP3ZvaWQgMDplLndpZHRoKT8/YG5vbmVgO3JldHVybigwLE0uanN4KShoLHt0ZXN0SUQ6ZyxwYWRkaW5nWTp4W2Bjb250ZW50LWVsZW1lbnQtZ2FwYF0sc3R5bGU6e21heFdpZHRoOnZ9LGNoaWxkcmVuOigwLE0uanN4KShjLHttZWRpYTp7ZGVmYXVsdEltYWdlOmUsaW1hZ2VBbHRUZXh0OnQsaGlkZUJhY2tncm91bmQ6bixkZWZhdWx0SW1hZ2VGaXQ6cixkYXJrTW9kZUltYWdlOmksZGVza3RvcEltYWdlOmEsZGVza3RvcEltYWdlRml0Om8sZGFya01vZGVEZXNrdG9wSW1hZ2U6cyx0YWJsZXRJbWFnZTpsLHRhYmxldEltYWdlRml0OnUsZGFya01vZGVUYWJsZXRJbWFnZTpkLG1vYmlsZUltYWdlOmYsbW9iaWxlSW1hZ2VGaXQ6cCxkYXJrTW9kZU1vYmlsZUltYWdlOm19LGFzcGVjdFJhdGlvOmBhdXRvYCwuLi5ffSl9KX1mdW5jdGlvbiByZSh7Y29tcG9uZW50SWQ6ZSx2aWRlb0FsdFRleHQ6dCxoaWRlQmFja2dyb3VuZDpuLGRlZmF1bHRFeHRlcm5hbFZpZGVvVXJsOnIsZGVmYXVsdFRodW1ibmFpbDphLGV4dGVybmFsTW9iaWxlVmlkZW9Vcmw6byxtb2JpbGVUaHVtYm5haWw6cyxsb29wRW5hYmxlZDpjLGF1dG9wbGF5RW5hYmxlZDpsLGF1ZGlvRW5hYmxlZDp1LHZpZGVvQ29udHJvbHM6ZCxleHRlcm5hbERlc2t0b3BWaWRlb1VybDpmLGRlc2t0b3BUaHVtYm5haWw6cCxleHRlcm5hbFRhYmxldFZpZGVvVXJsOm0sdGFibGV0VGh1bWJuYWlsOmcsdGVzdElEOl89YGVkaXRvcmlhbC12aWRlb2AsLi4udn0pe3JldHVybigwLE0uanN4KShoLHtwYWRkaW5nWTp4W2Bjb250ZW50LWVsZW1lbnQtZ2FwYF0sdGVzdElEOl8sY2hpbGRyZW46KDAsTS5qc3gpKGkse21lZGlhOntjb21wb25lbnRJZDplLHZpZGVvQWx0VGV4dDp0LGhpZGVCYWNrZ3JvdW5kOm4sZGVmYXVsdEV4dGVybmFsVmlkZW9Vcmw6cixkZWZhdWx0VGh1bWJuYWlsOmEsZXh0ZXJuYWxNb2JpbGVWaWRlb1VybDpvLG1vYmlsZVRodW1ibmFpbDpzLGxvb3BFbmFibGVkOmMsYXV0b3BsYXlFbmFibGVkOmwsYXVkaW9FbmFibGVkOnUsdmlkZW9Db250cm9sczpkLGV4dGVybmFsRGVza3RvcFZpZGVvVXJsOmYsZGVza3RvcFRodW1ibmFpbDpwLGV4dGVybmFsVGFibGV0VmlkZW9Vcmw6bSx0YWJsZXRUaHVtYm5haWw6Z30sLi4udn0pfSl9dmFyIGllPXtDRFhWMl9JbWFnZTpuZSxDRFhWMl9WaWRlbzpyZSxleHBlcmltZW50Olp9LGFlPXtDRFhWMl9BY2NvcmRpb246UX07ZnVuY3Rpb24gb2Uoe2NvbXBvbmVudHM6ZSxvbkVycm9yOnQsY29tcG9uZW50TWFwOm4sb3ZlcnJpZGVDb21wb25lbnRNYXA6cj17fSxjdXN0b21Db21wb25lbnRNYXA6aT17fSx3cmFwcGVyc0NvbXBvbmVudE1hcDphPXt9LGdxbFF1ZXJ5UmVmOm99KXtsZXQgcz0oMCxOLnVzZU1lbW8pKCgpPT5CKGkpLFtpXSksYz0oMCxOLnVzZU1lbW8pKCgpPT4oey4uLm4sLi4ucixDRFhWMl9DdXN0b21Db21wb25lbnQ6c30pLFtuLHIsc10pLGw9KDAsTi51c2VNZW1vKSgoKT0+ZT9BcnJheS5pc0FycmF5KGUpP2U6W2VdOltdLFtlXSk7cmV0dXJuIGU/WSh7Y29tcG9uZW50czpsLGdxbFF1ZXJ5UmVmOm8sb25FcnJvcjp0LGNvbXBvbmVudE1hcDpjLHdyYXBwZXJzQ29tcG9uZW50TWFwOnsuLi5pZSwuLi5hfX0pOm51bGx9dmFyICQ9KDAsTi5tZW1vKShvZSk7ZnVuY3Rpb24gc2Uoe3BhZ2VEYXRhOmUsb25FcnJvcjp0LGNvbXBvbmVudE1hcDpuLG92ZXJyaWRlQ29tcG9uZW50TWFwOnIsY3VzdG9tQ29tcG9uZW50TWFwOmksZ3FsUXVlcnlSZWY6YX0pe2xldHtjb21wb25lbnRzOm99PWUuY29udGVudDtyZXR1cm4oMCxNLmpzeCkoYG1haW5gLHsiZGF0YS10ZXN0aWQiOmBjZHh2Mi1tYWluYCxzdHlsZTp7YmFja2dyb3VuZENvbG9yOmB2YXIoLS1jb2xvci1iZylgfSxjaGlsZHJlbjooMCxNLmpzeCkoJCx7Y29tcG9uZW50czpvPz9bXSxvbkVycm9yOnQsY29tcG9uZW50TWFwOm4sb3ZlcnJpZGVDb21wb25lbnRNYXA6cixjdXN0b21Db21wb25lbnRNYXA6aSxncWxRdWVyeVJlZjphfSl9KX1mdW5jdGlvbiBjZSh7cGFnZURhdGE6dCxvbkVycm9yOnIsYWN0aXZlQ29sb3JTY2hlbWU6aX0pe3JldHVybigwLE0uanN4KShlLHtvbkVycm9yOnIsY2hpbGRyZW46KDAsTS5qc3gpKG4se3BhZ2VTZXR0aW5nczp0LmNvbnRlbnQucGFnZVNldHRpbmdzLGFjdGl2ZUNvbG9yU2NoZW1lOml9KX0pfWZ1bmN0aW9uIGxlKHtwYWdlRGF0YTp0LG9uRXJyb3I6bn0pe3JldHVybigwLE0uanN4KShlLHtvbkVycm9yOm4sY2hpbGRyZW46KDAsTS5qc3gpKHIse3BhZ2VTZXR0aW5nczp0LmNvbnRlbnQucGFnZVNldHRpbmdzfSl9KX1leHBvcnR7YWUgYXMgYSxIIGFzIGMsJCBhcyBpLFYgYXMgbCxjZSBhcyBuLHEgYXMgbyxsZSBhcyByLFUgYXMgcyxzZSBhcyB0LHogYXMgdX07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfajBTQUYwdW4uanMubWFw"}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CI52bQ1Q2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.688Z","timestamp":1785108244688,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CI52bQ1Q2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 806\r\nlast-modified: Sun, 26 Jul 2026 22:31:20 GMT\r\netag: \"c17de15ca05e114da6fd6c597feb46ca\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 236fbed8f1be57bca7880d295ff3916c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: tzxsFDUrBhCoD55ftchFFTXSJ7mQBO3OdmkUDa98RWKV-KtNKnGZQg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Sc2CicaZPOeZJiJXGu6a6mcIKHlneKCkYsLrh%2F4WUzqTb9jUXPDyi244Yvpuu1ZZYuketmL5K7yFz1rrCmWl7NZQ9kCySQHkEAH8TDYHrfOVLpwFU%2Bm%2FRF5gHD6pXZlw0vlNNFh9bwECGRFIDDxL\"}]}\r\ncf-ray: a21727e14f160883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":1803,"size_decoded":1949,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1763)","md5":"265d7a0df74013db0bb8293dfcc7e1c2","sha1":"131e42aa597d152cc30bd60dc69b44c8b51320d3","sha256":"3253f1b317c5e3d4f7ee1745c2b9de8191a723cd1f662b3010d5367d72ef7356","sha512":"8a5e8971f9274e6d853dc5d80b8bad70c1cb3cee06c55098140d8505ec00842d75a70d6c4f4b6a233038d477c4494e284a7d40a04634894e9fd4911effd1e29d","ssdeep":"","tlshash":"2a31660ea7b576d59296107840769c6a771b904631de0652b238059b13f15387a23f97","first_seen":"2026-07-26T23:24:50.239962Z","last_seen":"2026-07-26T23:25:46.884706Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDFiZjQwNGU4LTRhNDAtNDlhNC05OTIwLTY1OTNkNjA4OWI4ZmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTFiZjQwNGU4LTRhNDAtNDlhNC05OTIwLTY1OTNkNjA4OWI4ZmApfSkoKX1jYXRjaHt9aW1wb3J0e0xvIGFzIGUsTW8gYXMgdCxXcCBhcyBuLFh0IGFzIHIsZmYgYXMgaSxoZiBhcyBhLGtpIGFzIG8sbCBhcyBzLG5pIGFzIGN9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBsPWkoKSx1PW4oYSgpKSxkPW5ldyBTZXQoW2AvYnl0ZXMvYXJjaGl2ZWAsYC9jdXN0b2R5L2Fzc2V0c2AsYC9kZXJpdmF0aXZlcy9mdW5kaW5nLXJhdGVzLWRhdGFgLGAvZGVyaXZhdGl2ZXMvaGlzdG9yaWNhbC1kYXRhYCxgL2luc3RpdHV0aW9uYWwvcmVzZWFyY2gtaW5zaWdodHNgLGAvaW52b2ljZS8qYCxgL2xlYXJuYCxgL2xlZ2FsLypgLGAvdmVudHVyZXMvcG9ydGZvbGlvYCxgL2Ryb3BzL3dpbm5lcnNgXSksZj1uZXcgU2V0KFtgL2Rlcml2YXRpdmVzL21hcmtldC1ub3RpY2VzYCxgL2xlYXJuL21hcmtldC11cGRhdGVzYF0pLHA9e2N1c3RvZHlfYXNzZXQ6YENvaW5iYXNlIEN1c3RvZHlgLGludm9pY2U6YEludm9pY2UgfCBDb2luYmFzZWAsbGVhcm46YENvaW5iYXNlIExlYXJuOiBZb3VyIGNyeXB0byBxdWVzdGlvbnMsIGFuc3dlcmVkYCxsZWFybl9tYXJrZXRfdXBkYXRlczpgTWFya2V0IHVwZGF0ZXMgfCBDb2luYmFzZWAsdmVudHVyZXM6YENvaW5iYXNlIFZlbnR1cmVzOiBBZHZhbmNpbmcgY3J5cHRvICYgV2ViM2AsZGVyaXZhdGl2ZXM6YENvaW5iYXNlIERlcml2YXRpdmVzIEV4Y2hhbmdlYCxieXRlczpgQ29pbmJhc2UgQnl0ZXMgTmV3c2xldHRlcmAsaW5zdGl0dXRpb25hbDpgQ3J5cHRvIFJlc2VhcmNoICYgSW5zaWdodHMgSHViIHwgQ29pbmJhc2UgSW5zdGl0dXRpb25hbGAsbGVnYWw6YENvaW5iYXNlIExlZ2FsYH07ZnVuY3Rpb24gbSgpe2xldHtwYXRobmFtZTp0fT1lKCk7cmV0dXJuKDAsdS51c2VNZW1vKSgoKT0+e2xldCBlPXIodCkucmVwbGFjZSgvXC8kLyxgYCk7cmV0dXJuIGQuaGFzKGUpP2Bza2lwX3NlcnZlcl9yZW5kZXJgOmYuaGFzKGUpP2Bza2lwX3NlcnZlcl9odG1sYDohMX0sW3RdKX1mdW5jdGlvbiBoKHtjaGlsZHJlbjplfSl7bGV0IHQ9KDAsdS51c2VDb250ZXh0KShzKTtpZih0PT09bnVsbCl0aHJvdyBFcnJvcihgU2VydmVyUmVuZGVyU2tpcHBlciBtdXN0IGJlIHVzZWQgd2l0aGluIGEgU1NSQ29udGV4dFByb3ZpZGVyYCk7cmV0dXJuIHQuc2tpcFNlcnZlckh0bWw9ITAsZX1mdW5jdGlvbiBnKHtjaGlsZHJlbjpufSl7bGV0IHI9bygpLHtwYXRobmFtZTppfT1lKCksYT0oMCx1LnVzZU1lbW8pKCgpPT5wW3QoaSwhMSl8fGBgXSxbaV0pO3JldHVybiByP246KDAsbC5qc3gpKGMse3RpdGxlOmF9KX1mdW5jdGlvbiBfKHtjaGlsZHJlbjplfSl7bGV0IHQ9bSgpO3JldHVybiB0PT09YHNraXBfc2VydmVyX3JlbmRlcmA/KDAsbC5qc3gpKGcse2NoaWxkcmVuOmV9KTp0PT09YHNraXBfc2VydmVyX2h0bWxgPygwLGwuanN4KShoLHtjaGlsZHJlbjplfSk6ZX1leHBvcnR7XyBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19DSTUyYlExUTIuanMubWFw"}},"time_used":124,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":124,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DG5Q2Qcx2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.702Z","timestamp":1785108244702,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DG5Q2Qcx2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 2722\r\nlast-modified: Sun, 26 Jul 2026 22:31:25 GMT\r\netag: \"5aaa9266e32a7299ad0b96eeb5585384\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 3cee1b61334bd8139fe0ff6d7079a1e4.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: qNfwUlSX-C7n5VgyXgxOqoN1jMcEkpgw5rsxjqbAUGJLJkMyb3C5fg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=w4Pht5yuY85I85NLyafcF%2BHdkH37mHXp9XK2fOYnC7PXxbt5ohkYNztUF84HoN2pe1KKZxv4JLXuQXQBBBFyWsqQFQ5Al0PajWZhJus8mlmTDq1bqhlpmYcHUPslUH2%2B5CpS8SmmnPpIS5emZ9U2\"}]}\r\ncf-ray: a21727e16f450883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":8827,"size_decoded":3864,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (6522)","md5":"5a90f4bc938f28e74924dbe99181d60b","sha1":"f4ff7104ab2136305a22b49256d2116b69260336","sha256":"951841bf45305cfb9e408022b9eb7b723b837b1181fdd378f3e28873cf97941a","sha512":"213c5830d5db25d66965226d830a716d35f446ee60dbf2fd9eb98e6d3e08788ef9c22deb49affbc8dce87b68fe7787578df40991da31e16244962d0d5d659d96","ssdeep":"192:kcXDiwbDK3TgSw4wbrIpfC6Wa2C7Nwm9s6EemaoSwvbu7jFyiA/KFl2DFo/x7x:1Dg3TgVMpfC26TRZbWkiA7Yx7x","tlshash":"26028697e8503ee8341fcc6d6073504d27fef1abb6c9c2b8b2616f7907466586112b8a","first_seen":"2026-07-26T23:24:50.241919Z","last_seen":"2026-07-26T23:25:46.912332Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGI1NGMwZGRkLWI5MTYtNGVkOC04Mzk3LWNhMDc1ZjBkMjViZmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWI1NGMwZGRkLWI5MTYtNGVkOC04Mzk3LWNhMDc1ZjBkMjViZmApfSkoKX1jYXRjaHt9aW1wb3J0e3QgYXMgZX1mcm9tIi4vY19Db2JBbGVWNjIuanMiO2ltcG9ydHtuIGFzIHR9ZnJvbSIuL2NfQlNRX21QU2kuanMiO2ltcG9ydHtKcyBhcyBuLExpIGFzIHIsT2kgYXMgaSxTbCBhcyBhLFdwIGFzIG8sWGQgYXMgcyxZdSBhcyBjLF9hIGFzIGwsX2QgYXMgdSxfbiBhcyBkLGJsIGFzIGYsY2QgYXMgcCxmYSBhcyBtLGZmIGFzIGgsaGYgYXMgZyxpYSBhcyBfLGppIGFzIHYsa2kgYXMgeSxtZCBhcyBiLHBhIGFzIHgsc2wgYXMgUyx3bCBhcyBDLHhsIGFzIHd9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO2ltcG9ydHt0IGFzIFR9ZnJvbSIuL2NfQ1FEdWxzZE8yLmpzIjtpbXBvcnR7dCBhcyBFfWZyb20iLi9jX3MwTHEzVE5GLmpzIjtpbXBvcnQiLi9jX0NmV055dTRnLmpzIjtpbXBvcnR7dCBhcyBEfWZyb20iLi9jX0JfUl9WZ1duLmpzIjtpbXBvcnR7dCBhcyBPfWZyb20iLi9jX0N0MF9XTXdQMi5qcyI7aW1wb3J0e3QgYXMga31mcm9tIi4vY19Ed05FNElrRzIuanMiO3ZhciBBPWgoKSxqPWZ1bmN0aW9uKCl7dmFyIGU9e2tpbmQ6YFZhcmlhYmxlYCxuYW1lOmBmaXJzdGAsdmFyaWFibGVOYW1lOmBhc3NldExpbWl0YH0sdD17a2luZDpgTGl0ZXJhbGAsbmFtZTpgb3JkZXJgLHZhbHVlOmBERVNDYH0sbj17a2luZDpgTGl0ZXJhbGAsbmFtZTpgcXVlcnlgLHZhbHVlOmBgfSxyPXtraW5kOmBMaXRlcmFsYCxuYW1lOmByZXNvbHV0aW9uYCx2YWx1ZTpgREFZYH0saT1be2FsaWFzOm51bGwsYXJnczpudWxsLGNvbmNyZXRlVHlwZTpgQXNzZXRFZGdlYCxraW5kOmBMaW5rZWRGaWVsZGAsbmFtZTpgZWRnZXNgLHBsdXJhbDohMCxzZWxlY3Rpb25zOlt7YWxpYXM6bnVsbCxhcmdzOm51bGwsY29uY3JldGVUeXBlOmBBc3NldGAsa2luZDpgTGlua2VkRmllbGRgLG5hbWU6YG5vZGVgLHBsdXJhbDohMSxzZWxlY3Rpb25zOlt7YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YHV1aWRgLHN0b3JhZ2VLZXk6bnVsbH0se2FyZ3M6W3traW5kOmBWYXJpYWJsZWAsbmFtZTpgcXVvdGVDdXJyZW5jeWAsdmFyaWFibGVOYW1lOmBxdW90ZUN1cnJlbmN5YH1dLGtpbmQ6YEZyYWdtZW50U3ByZWFkYCxuYW1lOmBGZWF0dXJlQXNzZXRzUm93RnJhZ21lbnRgfV0sc3RvcmFnZUtleTpudWxsfV0sc3RvcmFnZUtleTpudWxsfV07cmV0dXJue2FyZ3VtZW50RGVmaW5pdGlvbnM6W3tkZWZhdWx0VmFsdWU6bnVsbCxraW5kOmBMb2NhbEFyZ3VtZW50YCxuYW1lOmBhc3NldExpbWl0YH0se2RlZmF1bHRWYWx1ZTpudWxsLGtpbmQ6YExvY2FsQXJndW1lbnRgLG5hbWU6YHF1b3RlQ3VycmVuY3lgfV0sa2luZDpgRnJhZ21lbnRgLG1ldGFkYXRhOm51bGwsbmFtZTpgRmVhdHVyZUFzc2V0c0ZyYWdtZW50YCxzZWxlY3Rpb25zOlt7YWxpYXM6YHRyYWRhYmxlYCxhcmdzOlt7a2luZDpgTGl0ZXJhbGAsbmFtZTpgZmlsdGVyYCx2YWx1ZTpgTElTVEVEYH0sZSx0LG4scix7a2luZDpgTGl0ZXJhbGAsbmFtZTpgc29ydGAsdmFsdWU6YE1BUktFVF9DQVBgfV0sY29uY3JldGVUeXBlOmBBc3NldENvbm5lY3Rpb25gLGtpbmQ6YExpbmtlZEZpZWxkYCxuYW1lOmBzZWFyY2hBc3NldHNWMmAscGx1cmFsOiExLHNlbGVjdGlvbnM6aSxzdG9yYWdlS2V5Om51bGx9LHthbGlhczpgdG9wR2FpbmVyc2AsYXJnczpbe2tpbmQ6YExpdGVyYWxgLG5hbWU6YGZpbHRlcmAsdmFsdWU6YFRPUF9HQUlORVJTYH0sZSx0LG4scix7a2luZDpgTGl0ZXJhbGAsbmFtZTpgc29ydGAsdmFsdWU6YFBFUkNFTlRfQ0hBTkdFYH1dLGNvbmNyZXRlVHlwZTpgQXNzZXRDb25uZWN0aW9uYCxraW5kOmBMaW5rZWRGaWVsZGAsbmFtZTpgc2VhcmNoQXNzZXRzVjJgLHBsdXJhbDohMSxzZWxlY3Rpb25zOmksc3RvcmFnZUtleTpudWxsfSx7YWxpYXM6YG5ld09uQ29pbmJhc2VgLGFyZ3M6W3traW5kOmBMaXRlcmFsYCxuYW1lOmBmaWx0ZXJgLHZhbHVlOmBSRUNFTlRMWV9MSVNURURfM19NT05USFNgfSxlXSxjb25jcmV0ZVR5cGU6YEFzc2V0Q29ubmVjdGlvbmAsa2luZDpgTGlua2VkRmllbGRgLG5hbWU6YHNlYXJjaEFzc2V0c1YyYCxwbHVyYWw6ITEsc2VsZWN0aW9uczppLHN0b3JhZ2VLZXk6bnVsbH1dLHR5cGU6YFF1ZXJ5YCxhYnN0cmFjdEtleTpudWxsfX0oKTtqLmhhc2g9YDI1NDkyZWI0MGQzMDg2OWI4MDZiYTBmOGIwMjU0MjhmYDt2YXIgTT1vKGcoKSksTj1mdW5jdGlvbigpe3ZhciBlPVt7YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YGRheWAsc3RvcmFnZUtleTpudWxsfV07cmV0dXJue2FyZ3VtZW50RGVmaW5pdGlvbnM6W3tkZWZhdWx0VmFsdWU6bnVsbCxraW5kOmBMb2NhbEFyZ3VtZW50YCxuYW1lOmBxdW90ZUN1cnJlbmN5YH0se2tpbmQ6YFJvb3RBcmd1bWVudGAsbmFtZTpgc2hvdWxkVXNlVUFTRmllbGRzYH1dLGtpbmQ6YEZyYWdtZW50YCxtZXRhZGF0YTpudWxsLG5hbWU6YEZlYXR1cmVBc3NldHNSb3dGcmFnbWVudGAsc2VsZWN0aW9uczpbe2FsaWFzOm51bGwsYXJnczpudWxsLGtpbmQ6YFNjYWxhckZpZWxkYCxuYW1lOmB1dWlkYCxzdG9yYWdlS2V5Om51bGx9LHthbGlhczpudWxsLGFyZ3M6bnVsbCxraW5kOmBTY2FsYXJGaWVsZGAsbmFtZTpgbmFtZWAsc3RvcmFnZUtleTpudWxsfSx7YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YHNsdWdgLHN0b3JhZ2VLZXk6bnVsbH0se2FsaWFzOm51bGwsYXJnczpudWxsLGtpbmQ6YFNjYWxhckZpZWxkYCxuYW1lOmBpbWFnZVVybGAsc3RvcmFnZUtleTpudWxsfSx7YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YGRpc3BsYXlTeW1ib2xgLHN0b3JhZ2VLZXk6bnVsbH0se2FsaWFzOm51bGwsYXJnczpbe2tpbmQ6YFZhcmlhYmxlYCxuYW1lOmBxdW90ZUN1cnJlbmN5YCx2YXJpYWJsZU5hbWU6YHF1b3RlQ3VycmVuY3lgfV0sY29uY3JldGVUeXBlOmBMYXRlc3RBc3NldFByaWNlYCxraW5kOmBMaW5rZWRGaWVsZGAsbmFtZTpgbGF0ZXN0UHJpY2VgLHBsdXJhbDohMSxzZWxlY3Rpb25zOlt7YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YHByaWNlYCxzdG9yYWdlS2V5Om51bGx9LHtjb25kaXRpb246YHNob3VsZFVzZVVBU0ZpZWxkc2Asa2luZDpgQ29uZGl0aW9uYCxwYXNzaW5nVmFsdWU6ITEsc2VsZWN0aW9uczpbe2FsaWFzOm51bGwsYXJnczpudWxsLGNvbmNyZXRlVHlwZTpgUGVyY2VudENoYW5nZXNgLGtpbmQ6YExpbmtlZEZpZWxkYCxuYW1lOmBwZXJjZW50Q2hhbmdlc2AscGx1cmFsOiExLHNlbGVjdGlvbnM6ZSxzdG9yYWdlS2V5Om51bGx9XX0se2NvbmRpdGlvbjpgc2hvdWxkVXNlVUFTRmllbGRzYCxraW5kOmBDb25kaXRpb25gLHBhc3NpbmdWYWx1ZTohMCxzZWxlY3Rpb25zOlt7YWxpYXM6bnVsbCxhcmdzOm51bGwsY29uY3JldGVUeXBlOmBQZXJjZW50Q2hhbmdlc1YyYCxraW5kOmBMaW5rZWRGaWVsZGAsbmFtZTpgcGVyY2VudENoYW5nZXNWMmAscGx1cmFsOiExLHNlbGVjdGlvbnM6ZSxzdG9yYWdlS2V5Om51bGx9XX1dLHN0b3JhZ2VLZXk6bnVsbH1dLHR5cGU6YEFzc2V0YCxhYnN0cmFjdEtleTpudWxsfX0oKTtOLmhhc2g9YDg0YjVlMzNjNDE3MzU0YWFmOTEwZGUyMDk5ZDk2NDAwYDt2YXIgUD0wLEY9MmUzLEk9YDJiOTIzMTVkLWVhYjctNWJlZi04NGZhLTA4OWExMzEzMzNmNWA7ZnVuY3Rpb24gTChlKXtyZXR1cm4oMCxBLmpzeCkodix7Li4uZSxzdHlsZTp7bGluZUhlaWdodDpgMWVtYH0sY2hpbGRyZW46ZS5jaGlsZHJlbn0pfXZhciBSPSgwLE0ubWVtbykoZnVuY3Rpb24oe2Fzc2V0UmVmOmV9KXt2YXIgdCxyLG87bGV0e2Zvcm1hdE51bWJlcjpjfT11KCkse2N1cnJlbmN5Omx9PWkoKSx7aXNQaG9uZTptfT1uKCksaD15KCkse2luVmlldzpnLHJlZjpffT1UKHt0aHJlc2hvbGQ6MSxmb3JjZU9ic2VydmU6ITB9KSx7Y2FuUmVuZGVyOmJ9PUQoe2NhbkRpc3BsYXk6ZyxieXBhc3NEZWxheTpnLGRlbGF5VGltZTpQLHRyYW5zaXRpb25UaW1lOkZ9KSx4PXMoTixlKSxDPSh4PT1udWxsP3ZvaWQgMDp4LnV1aWQpPT09SSxqPXg9PW51bGx8fCh0PXgubGF0ZXN0UHJpY2UpPT1udWxsP3ZvaWQgMDp0LnByaWNlLFI9aj9jKE51bWJlcihqKSx7c3R5bGU6YGN1cnJlbmN5YCxjdXJyZW5jeTpsLC4uLmQoTnVtYmVyKGopKX0pOmAtLWAsQj0oeD09bnVsbHx8KHI9eC5sYXRlc3RQcmljZSk9PW51bGx8fChyPXIucGVyY2VudENoYW5nZXNWMik9PW51bGw/dm9pZCAwOnIuZGF5KT8/KHg9PW51bGx8fChvPXgubGF0ZXN0UHJpY2UpPT1udWxsfHwobz1vLnBlcmNlbnRDaGFuZ2VzKT09bnVsbD92b2lkIDA6by5kYXkpPz8wLFY9YyhCLHtzdHlsZTpgcGVyY2VudGAsbWluaW11bUZyYWN0aW9uRGlnaXRzOjIsbWF4aW11bUZyYWN0aW9uRGlnaXRzOjIsc2lnbkRpc3BsYXk6YG5ldmVyYH0pLHtwZXJjZW50Q2hhbmdlQ29sb3I6SCxwZXJjZW50Q2hhbmdlSWNvbjpVfT0oMCxNLnVzZU1lbW8pKCgpPT5CPjA/e3BlcmNlbnRDaGFuZ2VDb2xvcjpgZmdQb3NpdGl2ZWAscGVyY2VudENoYW5nZUljb246YGRpYWdvbmFsVXBBcnJvd2B9OkI8MD97cGVyY2VudENoYW5nZUNvbG9yOmBmZ05lZ2F0aXZlYCxwZXJjZW50Q2hhbmdlSWNvbjpgZGlhZ29uYWxEb3duQXJyb3dgfTp7cGVyY2VudENoYW5nZUNvbG9yOmBmZ011dGVkYCxwZXJjZW50Q2hhbmdlSWNvbjpgZG90YH0sW0JdKSxXPW0/eD09bnVsbD92b2lkIDA6eC5kaXNwbGF5U3ltYm9sOng9PW51bGw/dm9pZCAwOngubmFtZTtyZXR1cm4oMCxBLmpzeCkoRSx7aHJlZjpgL3ByaWNlLyR7eC5zbHVnfWAsc3R5bGU6e3RleHREZWNvcmF0aW9uOmBub25lYH0sY2hpbGRyZW46KDAsQS5qc3gpKFMse3dpZHRoOmAxMDAlYCxhbGlnbkl0ZW1zOmBjZW50ZXJgLGp1c3RpZnlDb250ZW50OmBjZW50ZXJgLGNoaWxkcmVuOigwLEEuanN4cykoeix7cmVmOl8scGFkZGluZzoyLGJvcmRlclJhZGl1czo1MDAsd2lkdGg6YDEwMCVgLGNoaWxkcmVuOltiJiYoMCxBLmpzeCkoTyx7YXNzZXRVdWlkOih4PT1udWxsP3ZvaWQgMDp4LnV1aWQpPz9gYCxxdW90ZUN1cnJlbmN5Omx9KSwoMCxBLmpzeHMpKHcse2p1c3RpZnlDb250ZW50OmBzcGFjZS1iZXR3ZWVuYCxnYXA6Mix3aWR0aDpgMTAwJWAsY2hpbGRyZW46WygwLEEuanN4cykodyx7Z2FwOjIsYWxpZ25JdGVtczpgY2VudGVyYCxmbGV4R3JvdzoxLG1pbldpZHRoOjAsY2hpbGRyZW46WygwLEEuanN4KShgaW1nYCx7c3JjOng9PW51bGw/dm9pZCAwOnguaW1hZ2VVcmwsYWx0Oih4PT1udWxsP3ZvaWQgMDp4Lm5hbWUpfHxgYCx3aWR0aDozMixoZWlnaHQ6MzIsc3R5bGU6e2ZsZXhTaHJpbms6MH19KSwoMCxBLmpzeCkocCx7ZmxleEdyb3c6MSxtaW5XaWR0aDowLGNoaWxkcmVuOigwLEEuanN4KSh2LHthczpgcGAsZm9udDpgdGl0bGUzYCxzdHlsZTp7b3ZlcmZsb3c6YGhpZGRlbmAsdGV4dE92ZXJmbG93OmBlbGxpcHNpc2Asd2hpdGVTcGFjZTpgbm93cmFwYH0sY2hpbGRyZW46V30pfSldfSksKDAsQS5qc3hzKShmLHthbGlnbkl0ZW1zOmBmbGV4LWVuZGAsY2hpbGRyZW46WygwLEEuanN4KShMLHthczpgZGl2YCxmb250OmB0aXRsZTVgLGNoaWxkcmVuOmg/KDAsQS5qc3gpKGsse3ZhbHVlOlIsc2hvdWxkQ2hhbmdlQ29sb3I6ITB9KTpSfSksKDAsQS5qc3gpKHcse2FsaWduSXRlbXM6YGNlbnRlcmAsZ2FwOjEsY2hpbGRyZW46Qz8oMCxBLmpzeCkoTCx7YXM6YHNwYW5gLGZvbnQ6YGJvZHlgLGNvbG9yOmBmZ011dGVkYCxjaGlsZHJlbjpgLS1gfSk6KDAsQS5qc3hzKShBLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsQS5qc3gpKGEse25hbWU6VSxzaXplOmBzYCxjb2xvcjpIfSksKDAsQS5qc3gpKEwse2FzOmBzcGFuYCxmb250OmBib2R5YCxjb2xvcjpILGNoaWxkcmVuOmg/KDAsQS5qc3gpKGsse3ZhbHVlOlZ9KTpWfSldfSl9KV19KV19KV19KX0pfSl9KSx6PWwocCkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YEZlYXR1cmVBc3NldHNSb3dfX1Jvd0NvbnRhaW5lcmAsY29tcG9uZW50SWQ6YHNjLWQ2YWJjNmM4LTBgfSkoW2AmOmhvdmVye2JhY2tncm91bmQ6cmdiKHZhcigtLWdyYXkxMCkpO30mOmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYih2YXIoLS1ncmF5MTUpKTt9YF0pLEI9YEZlYXR1cmVBc3NldHNgLFY9Yih7dHJhZGFibGU6e2lkOmAke0J9LnRyYWRhYmxlYCxkZWZhdWx0TWVzc2FnZTpgVHJhZGFibGVgLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBGZWF0dXJlQXNzZXRzCiAgICAjQ2hhckxpbWl0OiAzNQogICAgI0NvbnRleHQ6IEZpbHRlciB0ZXh0IGZvciB0cmFkYWJsZSBhc3NldHNgfSx0b3BHYWluZXJzOntpZDpgJHtCfS50b3BHYWluZXJzYCxkZWZhdWx0TWVzc2FnZTpgVG9wIGdhaW5lcnNgLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBGZWF0dXJlQXNzZXRzCiAgICAjQ2hhckxpbWl0OiAzNQogICAgI0NvbnRleHQ6IEZpbHRlciB0ZXh0IGZvciB0b3AgZ2FpbmVyc2B9LG5ld09uQ29pbmJhc2U6e2lkOmAke0J9Lm5ld09uQ29pbmJhc2VgLGRlZmF1bHRNZXNzYWdlOmBOZXcgb24gQ29pbmJhc2VgLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBGZWF0dXJlQXNzZXRzCiAgICAjQ2hhckxpbWl0OiAzNQogICAgI0NvbnRleHQ6IEZpbHRlciB0ZXh0IGZvciBuZXcgb24gQ29pbmJhc2VgfX0pO2Z1bmN0aW9uIEgoZSl7cmV0dXJuIHR5cGVvZiBlPT1gc3RyaW5nYCYmZSBpbiBjLmxpZ2h0Q29sb3J9ZnVuY3Rpb24gVShlKXtyZXR1cm4hIWUmJnR5cGVvZiBlPT1gb2JqZWN0YCYmIUFycmF5LmlzQXJyYXkoZSl9dmFyIFc9KDAsTS5tZW1vKShmdW5jdGlvbih7Y29udGVudDpuLGFkdmFuY2VkQ29uZmlndXJhdGlvbjppLGdxbFF1ZXJ5UmVmOmEsc2VjdGlvblNldHRpbmdzOm8sdGVzdElEOmN9KXt2YXIgbDtsZXR7Zm9ybWF0TWVzc2FnZTpkfT11KCksW2gsZ109KDAsTS51c2VTdGF0ZSkoYHRyYWRhYmxlYCkseT0oMCxNLnVzZUNhbGxiYWNrKShlPT57ZyhlKX0sW10pLGI9KDAsTS51c2VNZW1vKSgoKT0+dCh7YWN0aXZlQ29sb3I6YHNlY29uZGFyeWB9KSxbXSkse3RpdGxlOlMsc3ViaGVhZDp3LGN0YUJ1dHRvbjpUfT1uLEU9cyhqLGEpLEQ9KEU9PW51bGx8fChsPUVbaF0pPT1udWxsfHwobD1sLmVkZ2VzKT09bnVsbD92b2lkIDA6bC5zbGljZSgwLDYpKT8/W107cmV0dXJuKDAsQS5qc3gpKF8se2JhY2tncm91bmQ6KDAsTS51c2VNZW1vKSgoKT0+VShpKSYmSChpPT1udWxsP3ZvaWQgMDppLmJhY2tncm91bmRPdmVycmlkZSk/aT09bnVsbD92b2lkIDA6aS5iYWNrZ3JvdW5kT3ZlcnJpZGU6YGJnQWx0ZXJuYXRlYCxbaV0pLHNlY3Rpb25TZXR0aW5nczpvLHRlc3RJRDpjLGNoaWxkcmVuOigwLEEuanN4KShwLHtqdXN0aWZ5Q29udGVudDpgY2VudGVyYCxjaGlsZHJlbjooMCxBLmpzeHMpKHAse2Rpc3BsYXk6YGZsZXhgLGZsZXhEaXJlY3Rpb246e2Jhc2U6YGNvbHVtbmAsZGVza3RvcDpgcm93YH0sYWxpZ25JdGVtczpgY2VudGVyYCxnYXA6eFtgY29udGFpbmVyLWdhcGBdLHdpZHRoOmAxMDAlYCxjaGlsZHJlbjpbKDAsQS5qc3gpKHAse2ZsZXhHcm93OjEsZmxleEJhc2lzOjAsbWluV2lkdGg6MCx3aWR0aDpgMTAwJWAsY2hpbGRyZW46KDAsQS5qc3hzKShmLHthbGlnbkl0ZW1zOmBmbGV4LXN0YXJ0YCxnYXA6eFtgY29udGVudC1lbGVtZW50LWdhcGBdLGNoaWxkcmVuOlsoMCxBLmpzeCkodix7YXM6YGgxYCxmb250OmB0aXRsZTFgLGNvbnRlbnQ6UyxzdHlsZTp7bWFyZ2luOjB9fSksKDAsQS5qc3gpKHYse2FzOmBwYCxmb250OmBjYXB0aW9uYCxjb2xvcjpgZmdNdXRlZGAsY29udGVudDp3fSksKDAsQS5qc3gpKHIsey4uLlR9KV19KX0pLCgwLEEuanN4KShwLHtmbGV4R3JvdzoxLGZsZXhCYXNpczowLG1pbldpZHRoOjAsd2lkdGg6YDEwMCVgLGRpc3BsYXk6YGJsb2NrYCxjaGlsZHJlbjooMCxBLmpzeCkoQyx7Y2hpbGRyZW46KDAsQS5qc3gpKHAse2JvcmRlclJhZGl1czptW2BjYXJkLW1lZGlhLWNvcm5lcmBdLHBhZGRpbmc6eFtgY2FyZC1wYWRkaW5nYF0sYmFja2dyb3VuZDpgYmdgLG1pbkhlaWdodDp7ZGVza3RvcDo2NDAsdGFibGV0OjU4NixwaG9uZTo1Mzh9LGNoaWxkcmVuOigwLEEuanN4cykoZix7Z2FwOnhbYGNhcmQtZ2FwYF0sd2lkdGg6YDEwMCVgLGNoaWxkcmVuOlsoMCxBLmpzeCkocCx7cGFkZGluZ1g6MixwYWRkaW5nWToxLGNoaWxkcmVuOigwLEEuanN4KShlLHtDb21wb25lbnQ6Yix2YWx1ZTpoLG9uQ2hhbmdlOnkscm9sZTpgdGFibGlzdGAsdGFiczpbe2lkOmB0cmFkYWJsZWAsbGFiZWw6ZChWLnRyYWRhYmxlKX0se2lkOmB0b3BHYWluZXJzYCxsYWJlbDpkKFYudG9wR2FpbmVycyl9LHtpZDpgbmV3T25Db2luYmFzZWAsbGFiZWw6ZChWLm5ld09uQ29pbmJhc2UpfV19KX0pLCgwLEEuanN4KShmLHtnYXA6MCxjaGlsZHJlbjpEPT1udWxsP3ZvaWQgMDpELm1hcChlPT5lIT1udWxsJiZlLm5vZGU/KDAsQS5qc3gpKFIse2Fzc2V0UmVmOmUubm9kZX0sZS5ub2RlLnV1aWQpOm51bGwpfSldfSl9KX0pfSldfSl9KX0pfSk7ZXhwb3J0e1cgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfREc1UTJRY3gyLmpzLm1hcA=="}},"time_used":108,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":108,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_CcvONSrV.png","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.871Z","timestamp":1785108244871,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_CcvONSrV.png HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:05 GMT\r\ncontent-type: image/png\r\ncontent-length: 3208\r\nlast-modified: Wed, 20 May 2026 20:13:14 GMT\r\netag: \"8bf0b89343ce0803d57d6e81d143d091\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 ce8e6743d554e4a06f002d7d57f0a5f8.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: AMS56-P1\r\nx-amz-cf-id: RPe2p9x4gS58YTlm4p_ux0V9DSJUC4Ba4Qn1ioaZzn1A-UlETPbFzg==\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=iaMGZ31Iqc7jb5I6Ua1yLF%2F0425aCmkifdDKn5ymQ4lA%2FtJHrH5nXf5BwAkVZ%2BsOmKSsayUMTMNdTiJ0sQlLzUB21SFWyX8mGptlad4xuHHvMhQL8hb9ZjqSCFC5zp94fxXmvks8TbBkKaWefYrP\"}]}\r\nexpires: Tue, 27 Jul 2027 05:12:51 GMT\r\ncf-bgj: h2pri,imgq:100\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nx-content-type-options: nosniff\r\npriority: u=4;i=?0,cf-chb=(37;u=2;i=?0 485;u=5;i=?0)\r\ncf-polished: ok, orig_size=6512\r\nage: 5800077\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\ncf-ray: a21727e37af20883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":3208,"size_decoded":4441,"mime_type":"image/png","magic":"PNG image data, 228 x 228, 8-bit colormap, non-interlaced","md5":"5f5eff9b4632e7632085bbb81bfda6d6","sha1":"97c80b6ec80268a879947223ea4ea657e8a03070","sha256":"7f777a0500c18064de9cbb976e098363ad6969fe43552dd7e297c68570c0f7bd","sha512":"3ce8c6631a7caad6e1e61a24483bb1a2e86b0a276ce245e579049849fdf122193c3f99ad51578ff0b37b65d0597e72b78fd059f5407cad6f382d5c8d2bc8c3dd","ssdeep":"","tlshash":"2e613c75e27deff2e209fbba992481a84a1cbc477d6b53142f41fc02843ba948e15814","first_seen":"2025-04-08T12:07:32.115644Z","last_seen":"2026-07-26T23:25:46.856302Z","times_seen":515,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAOQAAADkCAMAAAC/iXi/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFfUExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///7+/+/0/+7z/9/p/97p/97o/93o/8/f/87f/8/e/87e/87d/83d/7/U/7/T/77T/77S/7DJ/6/J/6/I/67I/6C//6C+/5++/56+/5+9/5C1/5G0/5Cz/4+z/46z/4+y/4Cq/4Gp/4Cp/4Go/3+p/4Co/3+o/3+n/3Gf/3Cf/3Ge/3Ce/2+e/3Cd/2+c/2GU/2GT/2CT/2GS/1+T/2CS/16S/1GJ/1GI/1CI/0+I/0F+/0F9/0B9/zF0/zFz/zBz/zFy/zBy/yJp/yFp/yFo/yBo/xJe/xFe/xFd/xBd/xFc/xBc/wFT/wFS/wBS/03lf0EAAAAkdFJOUwAQIDBATk9QXl9gbm9wf4COj5Cen6Cur76/zc7P3d7f7e7v/jYqYzkAAAqXSURBVHja3JrNattAFIUjyVTYuLbjKDgiRkPkAaFFycJaeBFttCpokzrQUC9MEQ2lGVovfN+fQigMhfpWM6P5kb83+LhnztwRujCAH4zG02gRE0LoHwhZxotoOg4H3kXf8UfTaJlSlHS5mIZBX/3mXK8F8bxnpv44SqkEZDH0eyHoDeaEKkCi0HXDUZxSdRZDz1nDEDEU93RRcTBHDOVyGzg2xHFMNZA4FFtvklJNkMh3I6cx1Urkn7EiJx6csSLnxt40A0TxTELrXVLOmWryRjUFmZg+jIRaIHlnMqnXlHOmmR2l1BrJ0MwYeaee7TDDlFomGbp6b2R5UZZ1vd29sa3rclN8oJLMPJ2OPqHC5GW9eznAPzk0+3oj4ZpojOw4FfXbcj2EZrvJqRB373U5CkU1K3cMBGDPYqIzPVFdCoywbkCCphLwvNUQ2YBoNOS8tPdMfFs3R1Y1oEjzkLU8mGHHlUNbsd4eoAPYc7txrjpd2SftFBvojKYwbXlpTpHDHoxaRgKKxjWvNDiaUOS8FgKWeh3zBrTRooKuDDhmNWilzlQt1R3X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"}},"time_used":11,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/scripttemplates/202602.1.0/assets/otCommonStyles.css","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:09.014Z","timestamp":1785108249014,"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":"cookielaw.org","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:47:21 GMT","end":"Tue, 20 Oct 2026 23:47:08 GMT"},"fingerprint":{"sha1":"BE:65:35:7C:E3:8D:B8:0C:7D:40:51:C7:4B:EE:56:FE:FD:2D:ED:91","sha256":"D6:A8:FD:24:40:A2:7D:0B:B5:73:08:9C:B2:AC:6E:1F:84:CC:D4:09:7B:BA:22:E8:A5:38:A4:10:29:65:88:5C"}}},"request":{"raw":"GET /scripttemplates/202602.1.0/assets/otCommonStyles.css HTTP/1.1\r\nHost: cdn.cookielaw.org\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.coinbase.com/\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:09 GMT\r\ncontent-type: text/css\r\ncontent-md5: /JvU+J3LtLbxQIG9SQymoQ==\r\nlast-modified: Thu, 02 Apr 2026 03:17:28 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nserver: cloudflare\r\nx-ms-request-id: c952bbd3-901e-0081-289c-dd31dd000000\r\nx-ms-version: 2009-09-19\r\nx-ms-lease-status: unlocked\r\nx-ms-blob-type: BlockBlob\r\naccess-control-expose-headers: x-ms-request-id,Server,x-ms-version,Content-Type,ETag,Last-Modified,Content-MD5,x-ms-lease-status,x-ms-blob-type,Content-Length,Date,Transfer-Encoding\r\naccess-control-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ncache-control: max-age=86400\r\nx-content-type-options: nosniff\r\nage: 76193\r\ncf-cache-status: HIT\r\ncontent-encoding: gzip\r\ncf-ray: a21727fc5a651525-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":27608,"size_decoded":5378,"mime_type":"text/css","magic":"ASCII text, with very long lines (27608), with no line terminators","md5":"fc9bd4f89dcbb4b6f14081bd490ca6a1","sha1":"e40157b16284a74ba7fe4a9a57cc729087a319a4","sha256":"de45c59da3e4dad94aad246fc9cc415f9ddfaa039256fec0a795b65ff0cda828","sha512":"aa56f4549bbb79ee764244f65671640668b2d860854452888c0757fbebcc9d4e90f52e1ceb6a51463ae9d8c8476ad4679acf5beb44220741c0897efd82cff13a","ssdeep":"384:3G8CQWGI09YzbHDouelC774jlIhHLnwGfg4xqsQ4PNE:fYnpWN","tlshash":"0ec2459b38512b1ae7d7c719952139827d11aceffd739ceee009a3784adc3e24c1464a","first_seen":"2026-02-11T04:22:00.416822Z","last_seen":"2026-07-26T23:25:46.857887Z","times_seen":9472,"resource_available":false,"data":"I29uZXRydXN0LWJhbm5lci1zZGsgLm9uZXRydXN0LXZlbmRvcnMtbGlzdC1oYW5kbGVye2N1cnNvcjpwb2ludGVyO2NvbG9yOiMxZjk2ZGI7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWRlY29yYXRpb246bm9uZTttYXJnaW4tbGVmdDo1cHg7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtd3JhcDpicmVhay13b3JkO3RleHQtYWxpZ246bGVmdH0jb25ldHJ1c3QtYmFubmVyLXNkayAub25ldHJ1c3QtdmVuZG9ycy1saXN0LWhhbmRsZXI6aG92ZXJ7Y29sb3I6IzFmOTZkYn0jb25ldHJ1c3QtYmFubmVyLXNkazpmb2N1c3tvdXRsaW5lOjJweCBzb2xpZCAjMDAwO291dGxpbmUtb2Zmc2V0Oi0ycHh9I29uZXRydXN0LWJhbm5lci1zZGsgYTpmb2N1c3tvdXRsaW5lOjJweCBzb2xpZCAjMDAwfSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIsI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlciwjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXJ7b3V0bGluZS1vZmZzZXQ6MXB4fSNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gLm90LWJuci1sb2dve2hlaWdodDo2NHB4O3dpZHRoOjY0cHh9I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeSBzdmcsI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24gc3Zne2hlaWdodDoxM3B4O3dpZHRoOjEzcHg7bWFyZ2luLWxlZnQ6MXB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtdGNmMi12ZW5kb3ItY291bnQub3QtdGV4dC1ib2xke2ZvbnQtd2VpZ2h0OmJvbGR9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LWJ1dHRvbi1vcmRlci0we29yZGVyOjB9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LWJ1dHRvbi1vcmRlci0xe29yZGVyOjF9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LWJ1dHRvbi1vcmRlci0ye29yZGVyOjJ9I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWNsb3NlLWJ0bi1jb250YWluZXIgc3Zne2hlaWdodDoxMHB4O3dpZHRoOjEwcHg7cG9pbnRlci1ldmVudHM6bm9uZX0jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtY2xvc2UtaWNvbiwjb25ldHJ1c3QtcGMtc2RrIC5vdC1jbG9zZS1pY29uLCNvdC1zeW5jLW50ZnkgLm90LWNsb3NlLWljb257YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyO2hlaWdodDoxMnB4O3dpZHRoOjEycHh9I29uZXRydXN0LWJhbm5lci1zZGsgLnBvd2VyZWQtYnktbG9nbywjb25ldHJ1c3QtYmFubmVyLXNkayAub3QtcGMtZm9vdGVyLWxvZ28gYSwjb25ldHJ1c3QtcGMtc2RrIC5wb3dlcmVkLWJ5LWxvZ28sI29uZXRydXN0LXBjLXNkayAub3QtcGMtZm9vdGVyLWxvZ28gYSwjb3Qtc3luYy1udGZ5IC5wb3dlcmVkLWJ5LWxvZ28sI290LXN5bmMtbnRmeSAub3QtcGMtZm9vdGVyLWxvZ28gYXtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7aGVpZ2h0OjI1cHg7d2lkdGg6MTUycHg7ZGlzcGxheTpibG9jazt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXNpemU6Ljc1ZW19I29uZXRydXN0LWJhbm5lci1zZGsgLnBvd2VyZWQtYnktbG9nbzpob3Zlciwjb25ldHJ1c3QtYmFubmVyLXNkayAub3QtcGMtZm9vdGVyLWxvZ28gYTpob3Zlciwjb25ldHJ1c3QtcGMtc2RrIC5wb3dlcmVkLWJ5LWxvZ286aG92ZXIsI29uZXRydXN0LXBjLXNkayAub3QtcGMtZm9vdGVyLWxvZ28gYTpob3Zlciwjb3Qtc3luYy1udGZ5IC5wb3dlcmVkLWJ5LWxvZ286aG92ZXIsI290LXN5bmMtbnRmeSAub3QtcGMtZm9vdGVyLWxvZ28gYTpob3Zlcntjb2xvcjojNTY1NjU2fSNvbmV0cnVzdC1iYW5uZXItc2RrIGgzICosI29uZXRydXN0LWJhbm5lci1zZGsgaDQgKiwjb25ldHJ1c3QtYmFubmVyLXNkayBoNiAqLCNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbiAqLCNvbmV0cnVzdC1iYW5uZXItc2RrIGFbZGF0YS1wYXJlbnQtaWRdICosI29uZXRydXN0LWJhbm5lci1zZGsgcFtyb2xlPWhlYWRpbmddICosI29uZXRydXN0LXBjLXNkayBoMyAqLCNvbmV0cnVzdC1wYy1zZGsgaDQgKiwjb25ldHJ1c3QtcGMtc2RrIGg2ICosI29uZXRydXN0LXBjLXNkayBidXR0b24gKiwjb25ldHJ1c3QtcGMtc2RrIGFbZGF0YS1wYXJlbnQtaWRdICosI29uZXRydXN0LXBjLXNkayBwW3JvbGU9aGVhZGluZ10gKiwjb3Qtc3luYy1udGZ5IGgzICosI290LXN5bmMtbnRmeSBoNCAqLCNvdC1zeW5jLW50ZnkgaDYgKiwjb3Qtc3luYy1udGZ5IGJ1dHRvbiAqLCNvdC1zeW5jLW50ZnkgYVtkYXRhLXBhcmVudC1pZF0gKiwjb3Qtc3luYy1udGZ5IHBbcm9sZT1oZWFkaW5nXSAqe2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OmluaGVyaXQ7Y29sb3I6aW5oZXJpdH0jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtaGlkZSwjb25ldHJ1c3QtcGMtc2RrIC5vdC1oaWRlLCNvdC1zeW5jLW50ZnkgLm90LWhpZGV7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9I29uZXRydXN0LWJhbm5lci1zZGsgYnV0dG9uLm90LWxpbmstYnRuOmhvdmVyLCNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uLm90LWxpbmstYnRuOmhvdmVyLCNvdC1zeW5jLW50ZnkgYnV0dG9uLm90LWxpbmstYnRuOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7b3BhY2l0eToxfSNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1yb3cgLm90LXNkay1jb2x1bW57cGFkZGluZzowfSNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb250YWluZXJ7cGFkZGluZy1yaWdodDowfSNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1yb3d7ZmxleC1kaXJlY3Rpb246aW5pdGlhbDt3aWR0aDoxMDAlfSNvbmV0cnVzdC1wYy1zZGsgW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQsI29uZXRydXN0LXBjLXNkayBbdHlwZT1jaGVja2JveF06bm90KDpjaGVja2VkKXtwb2ludGVyLWV2ZW50czppbml0aWFsfSNvbmV0cnVzdC1wYy1zZGsgW3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkK2xhYmVsOjpiZWZvcmUsI29uZXRydXN0LXBjLXNkayBbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQrbGFiZWw6YWZ0ZXIsI29uZXRydXN0LXBjLXNkayBbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQrbGFiZWwsI29uZXRydXN0LXBjLXNkayBbdHlwZT1jaGVja2JveF1bYXJpYS1kaXNhYmxlZD10cnVlXStsYWJlbDo6YmVmb3JlLCNvbmV0cnVzdC1wYy1zZGsgW3R5cGU9Y2hlY2tib3hdW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0rbGFiZWw6YWZ0ZXIsI29uZXRydXN0LXBjLXNkayBbdHlwZT1jaGVja2JveF1bYXJpYS1kaXNhYmxlZD10cnVlXStsYWJlbHtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6Ljh9I29uZXRydXN0LXBjLXNkayAjdmVuZG9yLWxpc3QtY29udGVudHt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCl9I29uZXRydXN0LXBjLXNkayBsaSBpbnB1dFt0eXBlPWNoZWNrYm94XXt6LWluZGV4OjF9I29uZXRydXN0LXBjLXNkayBsaSAub3QtY2hlY2tib3ggbGFiZWx7ei1pbmRleDoyfSNvbmV0cnVzdC1wYy1zZGsgbGkgLm90LWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hde2hlaWdodDphdXRvO3dpZHRoOmF1dG99I29uZXRydXN0LXBjLXNkayBsaSAuaG9zdC10aXRsZSBhLCNvbmV0cnVzdC1wYy1zZGsgbGkgLm90LWhvc3QtbmFtZSBhLCNvbmV0cnVzdC1wYy1zZGsgbGkgLmFjY29yZGlvbi10ZXh0LCNvbmV0cnVzdC1wYy1zZGsgbGkgLm90LWFjYy10eHR7ei1pbmRleDoyO3Bvc2l0aW9uOnJlbGF0aXZlfSNvbmV0cnVzdC1wYy1zZGsgaW5wdXR7bWFyZ2luOjNweCAuMWV4fSNvbmV0cnVzdC1wYy1zZGsgLnBjLWxvZ28sI29uZXRydXN0LXBjLXNkayAub3QtcGMtbG9nb3toZWlnaHQ6NjBweDt3aWR0aDoxODBweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0jb25ldHJ1c3QtcGMtc2RrIC5wYy1sb2dvIGltZywjb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1sb2dvIGltZ3ttYXgtaGVpZ2h0OjEwMCU7bWF4LXdpZHRoOjEwMCV9I29uZXRydXN0LXBjLXNkayAucGMtbG9nbyBzdmcsI29uZXRydXN0LXBjLXNkayAub3QtcGMtbG9nbyBzdmd7aGVpZ2h0OjYwcHg7d2lkdGg6MTgwcHh9I29uZXRydXN0LXBjLXNkayAjY2xvc2UtcGMtYnRuLWhhbmRsZXI+c3Zne21hcmdpbjphdXRvO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEycHg7d2lkdGg6MTJweH0jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1kZXNjIHN2Zywjb25ldHJ1c3QtcGMtc2RrIC5vdC1kZXNjLWNudHIgc3ZnLCNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1ncnAgc3Zne2hlaWdodDoxM3B4O3dpZHRoOjEzcHg7bWFyZ2luLWxlZnQ6LTdweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjVweH0jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWhkcj5he2Rpc3BsYXk6aW5saW5lLWJsb2NrfSNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbYXJpYS1kaXNhYmxlZD10cnVlXSwjb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFthcmlhLWRpc2FibGVkPXRydWVde3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTouNn0jb25ldHJ1c3QtcGMtc2RrIGlucHV0W2FyaWEtZGlzYWJsZWQ9dHJ1ZV0rbGFiZWwsI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbYXJpYS1kaXNhYmxlZD10cnVlXStsYWJlbHtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6LjY7Y3Vyc29yOm5vdC1hbGxvd2VkfSNvbmV0cnVzdC1wYy1zZGsgLnNjcmVlbi1yZWFkZXItb25seSwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zY3JuLXJkciwub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLnNjcmVlbi1yZWFkZXItb25seSwub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNjcm4tcmRye2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fSNvbmV0cnVzdC1wYy1zZGsub3QtZmFkZS1pbiwub25ldHJ1c3QtcGMtZGFyay1maWx0ZXIub3QtZmFkZS1pbiwjb25ldHJ1c3QtYmFubmVyLXNkay5vdC1mYWRlLWluLC5vdC1jb25maXJtLWRpYWxvZy1vdmVybGF5Lm90LWZhZGUtaW57YW5pbWF0aW9uLW5hbWU6b25ldHJ1c3QtZmFkZS1pbjthbmltYXRpb24tZHVyYXRpb246NDAwbXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dH0jb25ldHJ1c3QtcGMtc2RrLm90LWhpZGV7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9Lm9uZXRydXN0LXBjLWRhcmstZmlsdGVyLm90LWhpZGV7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9I290LXNkay1idG4ub3Qtc2RrLXNob3ctc2V0dGluZ3MsI290LXNkay1idG4ub3B0YW5vbi1zaG93LXNldHRpbmdze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNDY4MjU0O2hlaWdodDphdXRvO3doaXRlLXNwYWNlOm5vcm1hbDt3b3JkLXdyYXA6YnJlYWstd29yZDtwYWRkaW5nOi44ZW0gMmVtO2ZvbnQtc2l6ZTouOGVtO2xpbmUtaGVpZ2h0OjEuMjtjdXJzb3I6cG9pbnRlcjstbW96LXRyYW5zaXRpb246LjFzIGVhc2U7LW8tdHJhbnNpdGlvbjouMXMgZWFzZTstd2Via2l0LXRyYW5zaXRpb246MXMgZWFzZTt0cmFuc2l0aW9uOi4xcyBlYXNlfSNvdC1zZGstYnRuLm90LXNkay1zaG93LXNldHRpbmdzOmhvdmVyLCNvdC1zZGstYnRuLm9wdGFub24tc2hvdy1zZXR0aW5nczpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzJjNjQxNX0jb3Qtc2RrLWJ0bi5vdC1zZGstc2hvdy1zZXR0aW5nczphY3RpdmUsI290LXNkay1idG4ub3B0YW5vbi1zaG93LXNldHRpbmdzOmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzJjNjQxNTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTYyLDE5MiwxNjksLjUpfS5vbmV0cnVzdC1wYy1kYXJrLWZpbHRlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjUpO3otaW5kZXg6MjE0NzQ4MzY0Njt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpmaXhlZDt0b3A6MDtib3R0b206MDtsZWZ0OjB9QGtleWZyYW1lcyBvbmV0cnVzdC1mYWRlLWluezAle29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19Lm90LWNvb2tpZS1sYWJlbHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDI2cHgpYW5kIChtYXgtd2lkdGg6IDg5NnB4KWFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSl7I29uZXRydXN0LXBjLXNkayBwe2ZvbnQtc2l6ZTouNzVlbX19I29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taW5wdXQ6Zm9jdXMrbGFiZWx7b3V0bGluZToxcHggc29saWQgIzAwMDtvdXRsaW5lLXN0eWxlOmF1dG99LmNhdGVnb3J5LXZlbmRvcnMtbGlzdC1oYW5kbGVyK2E6Zm9jdXMsLmNhdGVnb3J5LXZlbmRvcnMtbGlzdC1oYW5kbGVyK2E6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCAjMDAwfSNvbmV0cnVzdC1wYy1zZGsgLm90LXVzZXJpZC10aXRsZXttYXJnaW4tdG9wOjEwcHh9I29uZXRydXN0LXBjLXNkayAub3QtdXNlcmlkLXRpdGxlPnNwYW4sI29uZXRydXN0LXBjLXNkayAub3QtdXNlcmlkLXRpbWVzdGFtcD5zcGFue2ZvbnQtd2VpZ2h0OjcwMH0jb25ldHJ1c3QtcGMtc2RrIC5vdC11c2VyaWQtZGVzY3tmb250LXN0eWxlOml0YWxpY30jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWRlc2MgYXtwb2ludGVyLWV2ZW50czppbml0aWFsfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1oZHI+cCBhe3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6Mjtwb2ludGVyLWV2ZW50czppbml0aWFsfSNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8gYSwjb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8gYXttYXJnaW4tcmlnaHQ6OHB4fSNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1pdGVtIHN2Zy5vdC1leHQtbG5re2FsaWduLXNlbGY6Y2VudGVyfSNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLWZvb3Rlci1sb2dvIHN2Zywjb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXItbG9nbyBpbWd7d2lkdGg6MTM2cHg7aGVpZ2h0OjE2cHh9I29uZXRydXN0LXBjLXNkayAub3QtcHVyLXZkci1jb3VudHtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOi44ZW07cGFkZGluZy10b3A6M3B4O2Rpc3BsYXk6YmxvY2t9I29uZXRydXN0LXBjLXNkayBwW3JvbGU9aGVhZGluZ10gLm90LXB1ci12ZHItY291bnR7Zm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnQ7Zm9udC1zaXplOi44ZW0gIWltcG9ydGFudH0jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5IC5vdC1vcHRvdXQtc2lnbmFsLCNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWNvbnRlbnQgLm90LW9wdG91dC1zaWduYWx7Ym9yZGVyOjFweCBzb2xpZCAjMzJhZTg4O2JvcmRlci1yYWRpdXM6M3B4O3BhZGRpbmc6NXB4O21hcmdpbi1ib3R0b206MTBweDtiYWNrZ3JvdW5kLWNvbG9yOiNmOWZmZmE7Zm9udC1zaXplOi44NXJlbTtsaW5lLWhlaWdodDoyfSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3kgLm90LW9wdG91dC1zaWduYWwgLm90LW9wdG91dC1pY29uLCNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWNvbnRlbnQgLm90LW9wdG91dC1zaWduYWwgLm90LW9wdG91dC1pY29ue2Rpc3BsYXk6aW5saW5lO21hcmdpbi1yaWdodDo1cHh9I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeSAub3Qtb3B0b3V0LXNpZ25hbCBzdmcsI29uZXRydXN0LXBjLXNkayAjb3QtcGMtY29udGVudCAub3Qtb3B0b3V0LXNpZ25hbCBzdmd7aGVpZ2h0OjIwcHg7d2lkdGg6MzBweH0jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5IC5vdC1vcHRvdXQtc2lnbmFsIHN2Zy5vdC1zb3VyY2Utc3ByaXRlLCNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWNvbnRlbnQgLm90LW9wdG91dC1zaWduYWwgc3ZnLm90LXNvdXJjZS1zcHJpdGV7cG9zaXRpb246cmVsYXRpdmU7Ym90dG9tOi0zcHh9I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeSAub3Qtb3B0b3V0LXNpZ25hbCBzdmc6bm90KC5vdC1zb3VyY2Utc3ByaXRlKSwjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1jb250ZW50IC5vdC1vcHRvdXQtc2lnbmFsIHN2Zzpub3QoLm90LXNvdXJjZS1zcHJpdGUpe3RyYW5zZm9ybTpzY2FsZSgwLjUpfSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3kgLm90LW9wdG91dC1zaWduYWwgc3ZnOm5vdCgub3Qtc291cmNlLXNwcml0ZSkgcGF0aCwjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1jb250ZW50IC5vdC1vcHRvdXQtc2lnbmFsIHN2Zzpub3QoLm90LXNvdXJjZS1zcHJpdGUpIHBhdGh7ZmlsbDojMzJhZTg4fSNvbmV0cnVzdC1jb25zZW50LXNkayAub3QtZ2VuZXJhbC1tb2RhbHtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246Zml4ZWQ7bWFyZ2luOjAgYXV0bzt0b3A6NTAlO2xlZnQ6NTAlO3dpZHRoOjQwJTtwYWRkaW5nOjEuNXJlbTttYXgtd2lkdGg6NTc1cHg7bWluLXdpZHRoOjU3NXB4O3otaW5kZXg6MjE0NzQ4MzY0Nztib3JkZXItcmFkaXVzOjIuNXB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSl9I29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1zaWduYXR1cmUtaGVhbHRoLWdyb3Vwe21hcmdpbi10b3A6MXJlbTtwYWRkaW5nLWxlZnQ6MS4yNXJlbTtwYWRkaW5nLXJpZ2h0OjEuMjVyZW07bWFyZ2luLWJvdHRvbTouNjI1cmVtO3dpZHRoOmNhbGMoMTAwJSAtIDIuNXJlbSl9I29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1zaWduYXR1cmUtaGVhbHRoLWdyb3VwIC5vdC1zaWduYXR1cmUtaGVhbHRoLWZvcm17Z2FwOi41cmVtfSNvbmV0cnVzdC1jb25zZW50LXNkayAub3Qtc2lnbmF0dXJlLWhlYWx0aCAub3Qtc2lnbmF0dXJlLWhlYWx0aC1mb3Jte3dpZHRoOjcwJTtnYXA6LjM1cmVtfSNvbmV0cnVzdC1jb25zZW50LXNkayAub3Qtc2lnbmF0dXJlLWhlYWx0aCAub3Qtc2lnbmF0dXJlLWlucHV0e2hlaWdodDozOHB4O3BhZGRpbmc6NnB4IDEwcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2QxZDFkMTtib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93Om5vbmU7Ym94LXNpemluZzpib3JkZXItYm94fSNvbmV0cnVzdC1jb25zZW50LXNkayAub3Qtc2lnbmF0dXJlLWhlYWx0aCAub3Qtc2lnbmF0dXJlLXN1YnRpdGxle2ZvbnQtc2l6ZToxLjEyNXJlbX0jb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LXNpZ25hdHVyZS1oZWFsdGggLm90LXNpZ25hdHVyZS1ncm91cC10aXRsZXtmb250LXNpemU6MS4yNXJlbTtmb250LXdlaWdodDpib2xkfSNvbmV0cnVzdC1jb25zZW50LXNkayAub3Qtc2lnbmF0dXJlLWhlYWx0aCwjb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LXNpZ25hdHVyZS1oZWFsdGgtZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MXJlbX0jb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LXNpZ25hdHVyZS1oZWFsdGggLm90LXNpZ25hdHVyZS1jb250LCNvbmV0cnVzdC1jb25zZW50LXNkayAub3Qtc2lnbmF0dXJlLWhlYWx0aC1ncm91cCAub3Qtc2lnbmF0dXJlLWNvbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6LjI1cmVtfSNvbmV0cnVzdC1jb25zZW50LXNkayAub3Qtc2lnbmF0dXJlLWhlYWx0aCAub3Qtc2lnbmF0dXJlLXBhcmFncmFwaCwjb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LXNpZ25hdHVyZS1oZWFsdGgtZ3JvdXAgLm90LXNpZ25hdHVyZS1wYXJhZ3JhcGh7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MjBweDtmb250LXNpemU6bWF4KDE0cHgsLjg3NXJlbSl9I29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1zaWduYXR1cmUtaGVhbHRoIC5vdC1oZWFsdGgtc2lnbmF0dXJlLWVycm9yLCNvbmV0cnVzdC1jb25zZW50LXNkayAub3Qtc2lnbmF0dXJlLWhlYWx0aC1ncm91cCAub3QtaGVhbHRoLXNpZ25hdHVyZS1lcnJvcntjb2xvcjojNGQ0ZDRkO2ZvbnQtc2l6ZTptaW4oMTJweCwuNzVyZW0pfSNvbmV0cnVzdC1jb25zZW50LXNkayAub3Qtc2lnbmF0dXJlLWhlYWx0aCAub3Qtc2lnbmF0dXJlLWJ1dHRvbnMtY29udCwjb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LXNpZ25hdHVyZS1oZWFsdGgtZ3JvdXAgLm90LXNpZ25hdHVyZS1idXR0b25zLWNvbnR7bWFyZ2luLXRvcDptYXgoLjc1cmVtLDIlKTtnYXA6MXJlbTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfSNvbmV0cnVzdC1jb25zZW50LXNkayAub3Qtc2lnbmF0dXJlLWhlYWx0aCAub3Qtc2lnbmF0dXJlLWJ1dHRvbiwjb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LXNpZ25hdHVyZS1oZWFsdGgtZ3JvdXAgLm90LXNpZ25hdHVyZS1idXR0b257ZmxleDoxO2hlaWdodDphdXRvO2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MS4yO21pbi13aWR0aDoxMjVweDtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi44MTNlbTtib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nOjEycHggMTBweDt3aGl0ZS1zcGFjZTpub3JtYWw7d29yZC13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkO2JhY2tncm91bmQtY29sb3I6IzY4YjYzMTtib3JkZXI6MnB4IHNvbGlkICM2OGI2MzF9I29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1zaWduYXR1cmUtaGVhbHRoIC5vdC1zaWduYXR1cmUtYnV0dG9uLnJlamVjdCwjb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LXNpZ25hdHVyZS1oZWFsdGgtZ3JvdXAgLm90LXNpZ25hdHVyZS1idXR0b24ucmVqZWN0e2JhY2tncm91bmQtY29sb3I6I2ZmZn0jb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LWlucHV0LWZpZWxkLWNvbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6LjVyZW19I29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1pbnB1dC1maWVsZC1jb250IC5vdC1zaWduYXR1cmUtaW5wdXR7d2lkdGg6NjUlfSNvbmV0cnVzdC1jb25zZW50LXNkayAub3Qtc2lnbmF0dXJlLWhlYWx0aC1mb3Jte2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59I29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1zaWduYXR1cmUtaGVhbHRoLWZvcm0gLm90LXNpZ25hdHVyZS1sYWJlbHttYXJnaW4tYm90dG9tOjA7bGluZS1oZWlnaHQ6MjBweDtmb250LXNpemU6bWF4KDE0cHgsLjg3NXJlbSl9I29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1zcHJpdGUtc3Zne2Rpc3BsYXk6bm9uZX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KXsjb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LWdlbmVyYWwtbW9kYWx7bWluLXdpZHRoOjEwMCV9I29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1zaWduYXR1cmUtaGVhbHRoIC5vdC1zaWduYXR1cmUtaGVhbHRoLWZvcm17d2lkdGg6MTAwJX0jb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LWlucHV0LWZpZWxkLWNvbnQgLm90LXNpZ25hdHVyZS1pbnB1dHt3aWR0aDoxMDAlfX0jb25ldHJ1c3QtYmFubmVyLXNkaywjb25ldHJ1c3QtcGMtc2RrLCNvdC1zZGstY29va2llLXBvbGljeSwjb3Qtc3luYy1udGZ5e2ZvbnQtc2l6ZToxNnB4fSNvbmV0cnVzdC1iYW5uZXItc2RrICosI29uZXRydXN0LWJhbm5lci1zZGsgOjphZnRlciwjb25ldHJ1c3QtYmFubmVyLXNkayA6OmJlZm9yZSwjb25ldHJ1c3QtcGMtc2RrICosI29uZXRydXN0LXBjLXNkayA6OmFmdGVyLCNvbmV0cnVzdC1wYy1zZGsgOjpiZWZvcmUsI290LXNkay1jb29raWUtcG9saWN5ICosI290LXNkay1jb29raWUtcG9saWN5IDo6YWZ0ZXIsI290LXNkay1jb29raWUtcG9saWN5IDo6YmVmb3JlLCNvdC1zeW5jLW50ZnkgKiwjb3Qtc3luYy1udGZ5IDo6YWZ0ZXIsI290LXN5bmMtbnRmeSA6OmJlZm9yZXstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3h9I29uZXRydXN0LWJhbm5lci1zZGsgZGl2LCNvbmV0cnVzdC1iYW5uZXItc2RrIHNwYW4sI29uZXRydXN0LWJhbm5lci1zZGsgaDEsI29uZXRydXN0LWJhbm5lci1zZGsgaDIsI29uZXRydXN0LWJhbm5lci1zZGsgaDMsI29uZXRydXN0LWJhbm5lci1zZGsgaDQsI29uZXRydXN0LWJhbm5lci1zZGsgaDUsI29uZXRydXN0LWJhbm5lci1zZGsgaDYsI29uZXRydXN0LWJhbm5lci1zZGsgcCwjb25ldHJ1c3QtYmFubmVyLXNkayBpbWcsI29uZXRydXN0LWJhbm5lci1zZGsgc3ZnLCNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbiwjb25ldHJ1c3QtYmFubmVyLXNkayBzZWN0aW9uLCNvbmV0cnVzdC1iYW5uZXItc2RrIGEsI29uZXRydXN0LWJhbm5lci1zZGsgbGFiZWwsI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXQsI29uZXRydXN0LWJhbm5lci1zZGsgdWwsI29uZXRydXN0LWJhbm5lci1zZGsgbGksI29uZXRydXN0LWJhbm5lci1zZGsgbmF2LCNvbmV0cnVzdC1iYW5uZXItc2RrIHRhYmxlLCNvbmV0cnVzdC1iYW5uZXItc2RrIHRoZWFkLCNvbmV0cnVzdC1iYW5uZXItc2RrIHRyLCNvbmV0cnVzdC1iYW5uZXItc2RrIHRkLCNvbmV0cnVzdC1iYW5uZXItc2RrIHRib2R5LCNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1tYWluLWNvbnRlbnQsI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXRvZ2dsZSwjb25ldHJ1c3QtYmFubmVyLXNkayAjb3QtY29udGVudCwjb25ldHJ1c3QtYmFubmVyLXNkayAjb3QtcGMtY29udGVudCwjb25ldHJ1c3QtYmFubmVyLXNkayAuY2hlY2tib3gsI29uZXRydXN0LXBjLXNkayBkaXYsI29uZXRydXN0LXBjLXNkayBzcGFuLCNvbmV0cnVzdC1wYy1zZGsgaDEsI29uZXRydXN0LXBjLXNkayBoMiwjb25ldHJ1c3QtcGMtc2RrIGgzLCNvbmV0cnVzdC1wYy1zZGsgaDQsI29uZXRydXN0LXBjLXNkayBoNSwjb25ldHJ1c3QtcGMtc2RrIGg2LCNvbmV0cnVzdC1wYy1zZGsgcCwjb25ldHJ1c3QtcGMtc2RrIGltZywjb25ldHJ1c3QtcGMtc2RrIHN2Zywjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbiwjb25ldHJ1c3QtcGMtc2RrIHNlY3Rpb24sI29uZXRydXN0LXBjLXNkayBhLCNvbmV0cnVzdC1wYy1zZGsgbGFiZWwsI29uZXRydXN0LXBjLXNkayBpbnB1dCwjb25ldHJ1c3QtcGMtc2RrIHVsLCNvbmV0cnVzdC1wYy1zZGsgbGksI29uZXRydXN0LXBjLXNkayBuYXYsI29uZXRydXN0LXBjLXNkayB0YWJsZSwjb25ldHJ1c3QtcGMtc2RrIHRoZWFkLCNvbmV0cnVzdC1wYy1zZGsgdHIsI29uZXRydXN0LXBjLXNkayB0ZCwjb25ldHJ1c3QtcGMtc2RrIHRib2R5LCNvbmV0cnVzdC1wYy1zZGsgLm90LW1haW4tY29udGVudCwjb25ldHJ1c3QtcGMtc2RrIC5vdC10b2dnbGUsI29uZXRydXN0LXBjLXNkayAjb3QtY29udGVudCwjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1jb250ZW50LCNvbmV0cnVzdC1wYy1zZGsgLmNoZWNrYm94LCNvdC1zZGstY29va2llLXBvbGljeSBkaXYsI290LXNkay1jb29raWUtcG9saWN5IHNwYW4sI290LXNkay1jb29raWUtcG9saWN5IGgxLCNvdC1zZGstY29va2llLXBvbGljeSBoMiwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDMsI290LXNkay1jb29raWUtcG9saWN5IGg0LCNvdC1zZGstY29va2llLXBvbGljeSBoNSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDYsI290LXNkay1jb29raWUtcG9saWN5IHAsI290LXNkay1jb29raWUtcG9saWN5IGltZywjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgc3ZnLCNvdC1zZGstY29va2llLXBvbGljeSBidXR0b24sI290LXNkay1jb29raWUtcG9saWN5IHNlY3Rpb24sI290LXNkay1jb29raWUtcG9saWN5IGEsI290LXNkay1jb29raWUtcG9saWN5IGxhYmVsLCNvdC1zZGstY29va2llLXBvbGljeSBpbnB1dCwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgdWwsI290LXNkay1jb29raWUtcG9saWN5IGxpLCNvdC1zZGstY29va2llLXBvbGljeSBuYXYsI290LXNkay1jb29raWUtcG9saWN5IHRhYmxlLCNvdC1zZGstY29va2llLXBvbGljeSB0aGVhZCwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgdHIsI290LXNkay1jb29raWUtcG9saWN5IHRkLCNvdC1zZGstY29va2llLXBvbGljeSB0Ym9keSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LW1haW4tY29udGVudCwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXRvZ2dsZSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgI290LWNvbnRlbnQsI290LXNkay1jb29raWUtcG9saWN5ICNvdC1wYy1jb250ZW50LCNvdC1zZGstY29va2llLXBvbGljeSAuY2hlY2tib3gsI290LXN5bmMtbnRmeSBkaXYsI290LXN5bmMtbnRmeSBzcGFuLCNvdC1zeW5jLW50ZnkgaDEsI290LXN5bmMtbnRmeSBoMiwjb3Qtc3luYy1udGZ5IGgzLCNvdC1zeW5jLW50ZnkgaDQsI290LXN5bmMtbnRmeSBoNSwjb3Qtc3luYy1udGZ5IGg2LCNvdC1zeW5jLW50ZnkgcCwjb3Qtc3luYy1udGZ5IGltZywjb3Qtc3luYy1udGZ5IHN2Zywjb3Qtc3luYy1udGZ5IGJ1dHRvbiwjb3Qtc3luYy1udGZ5IHNlY3Rpb24sI290LXN5bmMtbnRmeSBhLCNvdC1zeW5jLW50ZnkgbGFiZWwsI290LXN5bmMtbnRmeSBpbnB1dCwjb3Qtc3luYy1udGZ5IHVsLCNvdC1zeW5jLW50ZnkgbGksI290LXN5bmMtbnRmeSBuYXYsI290LXN5bmMtbnRmeSB0YWJsZSwjb3Qtc3luYy1udGZ5IHRoZWFkLCNvdC1zeW5jLW50ZnkgdHIsI290LXN5bmMtbnRmeSB0ZCwjb3Qtc3luYy1udGZ5IHRib2R5LCNvdC1zeW5jLW50ZnkgLm90LW1haW4tY29udGVudCwjb3Qtc3luYy1udGZ5IC5vdC10b2dnbGUsI290LXN5bmMtbnRmeSAjb3QtY29udGVudCwjb3Qtc3luYy1udGZ5ICNvdC1wYy1jb250ZW50LCNvdC1zeW5jLW50ZnkgLmNoZWNrYm94e2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6bm9ybWFsOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YXV0bztsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6bm9ybWFsO3BhZGRpbmc6MDttYXJnaW46MDtoZWlnaHQ6YXV0bzttaW4taGVpZ2h0OjA7bWF4LWhlaWdodDpub25lO3dpZHRoOmF1dG87bWluLXdpZHRoOjA7bWF4LXdpZHRoOm5vbmU7Ym9yZGVyLXJhZGl1czowO2JvcmRlcjpub25lO2NsZWFyOm5vbmU7ZmxvYXQ6bm9uZTtwb3NpdGlvbjpzdGF0aWM7Ym90dG9tOmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG87dG9wOmF1dG87dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtaW5kZW50OjA7dGV4dC1zaGFkb3c6bm9uZTt0ZXh0LXRyYW5zZm9ybTpub25lO3doaXRlLXNwYWNlOm5vcm1hbDtiYWNrZ3JvdW5kOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt2aXNpYmlsaXR5OnZpc2libGU7ei1pbmRleDphdXRvO2JveC1zaGFkb3c6bm9uZX0jb25ldHJ1c3QtYmFubmVyLXNkayBpbWcsI29uZXRydXN0LXBjLXNkayBpbWcsI290LXNkay1jb29raWUtcG9saWN5IGltZywjb3Qtc3luYy1udGZ5IGltZ3tvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH0jb25ldHJ1c3QtYmFubmVyLXNkayBsYWJlbDpiZWZvcmUsI29uZXRydXN0LWJhbm5lci1zZGsgbGFiZWw6YWZ0ZXIsI29uZXRydXN0LWJhbm5lci1zZGsgLmNoZWNrYm94OmFmdGVyLCNvbmV0cnVzdC1iYW5uZXItc2RrIC5jaGVja2JveDpiZWZvcmUsI29uZXRydXN0LXBjLXNkayBsYWJlbDpiZWZvcmUsI29uZXRydXN0LXBjLXNkayBsYWJlbDphZnRlciwjb25ldHJ1c3QtcGMtc2RrIC5jaGVja2JveDphZnRlciwjb25ldHJ1c3QtcGMtc2RrIC5jaGVja2JveDpiZWZvcmUsI290LXNkay1jb29raWUtcG9saWN5IGxhYmVsOmJlZm9yZSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgbGFiZWw6YWZ0ZXIsI290LXNkay1jb29raWUtcG9saWN5IC5jaGVja2JveDphZnRlciwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLmNoZWNrYm94OmJlZm9yZSwjb3Qtc3luYy1udGZ5IGxhYmVsOmJlZm9yZSwjb3Qtc3luYy1udGZ5IGxhYmVsOmFmdGVyLCNvdC1zeW5jLW50ZnkgLmNoZWNrYm94OmFmdGVyLCNvdC1zeW5jLW50ZnkgLmNoZWNrYm94OmJlZm9yZXtjb250ZW50OiIiO2NvbnRlbnQ6bm9uZX0jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbnRhaW5lciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyLCNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21hcmdpbjowIGF1dG87cGFkZGluZzowIDIwcHg7Ym94LXNpemluZzpib3JkZXItYm94fSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29sdW1uLCNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29sdW1ucywjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29sdW1uLCNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb2x1bW5zLCNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvbHVtbiwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1jb2x1bW5ze3dpZHRoOjEwMCU7ZmxvYXQ6bGVmdDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowO2Rpc3BsYXk6aW5pdGlhbH1AbWVkaWEobWluLXdpZHRoOiA0MDBweCl7I29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb250YWluZXIsI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWNvbnRhaW5lciwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1jb250YWluZXJ7d2lkdGg6OTAlO3BhZGRpbmc6MH19QG1lZGlhKG1pbi13aWR0aDogNTUwcHgpeyNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyLCNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb250YWluZXIsI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstY29udGFpbmVye3dpZHRoOjEwMCV9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb2x1bW4sI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb2x1bW5zLCNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb2x1bW4sI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWNvbHVtbnMsI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstY29sdW1uLCNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvbHVtbnN7bWFyZ2luLWxlZnQ6NCV9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb2x1bW46Zmlyc3QtY2hpbGQsI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb2x1bW5zOmZpcnN0LWNoaWxkLCNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb2x1bW46Zmlyc3QtY2hpbGQsI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWNvbHVtbnM6Zmlyc3QtY2hpbGQsI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstY29sdW1uOmZpcnN0LWNoaWxkLCNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvbHVtbnM6Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6MH0jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLXR3by5vdC1zZGstY29sdW1ucywjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstdHdvLm90LXNkay1jb2x1bW5zLCNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLXR3by5vdC1zZGstY29sdW1uc3t3aWR0aDoxMy4zMzMzMzMzMzMzJX0jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLXRocmVlLm90LXNkay1jb2x1bW5zLCNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay10aHJlZS5vdC1zZGstY29sdW1ucywjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay10aHJlZS5vdC1zZGstY29sdW1uc3t3aWR0aDoyMiV9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1mb3VyLm90LXNkay1jb2x1bW5zLCNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1mb3VyLm90LXNkay1jb2x1bW5zLCNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWZvdXIub3Qtc2RrLWNvbHVtbnN7d2lkdGg6MzAuNjY2NjY2NjY2NyV9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1laWdodC5vdC1zZGstY29sdW1ucywjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstZWlnaHQub3Qtc2RrLWNvbHVtbnMsI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstZWlnaHQub3Qtc2RrLWNvbHVtbnN7d2lkdGg6NjUuMzMzMzMzMzMzMyV9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1uaW5lLm90LXNkay1jb2x1bW5zLCNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1uaW5lLm90LXNkay1jb2x1bW5zLCNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLW5pbmUub3Qtc2RrLWNvbHVtbnN7d2lkdGg6NzQlfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstdGVuLm90LXNkay1jb2x1bW5zLCNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay10ZW4ub3Qtc2RrLWNvbHVtbnMsI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstdGVuLm90LXNkay1jb2x1bW5ze3dpZHRoOjgyLjY2NjY2NjY2NjclfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstZWxldmVuLm90LXNkay1jb2x1bW5zLCNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1lbGV2ZW4ub3Qtc2RrLWNvbHVtbnMsI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstZWxldmVuLm90LXNkay1jb2x1bW5ze3dpZHRoOjkxLjMzMzMzMzMzMzMlfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstdHdlbHZlLm90LXNkay1jb2x1bW5zLCNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay10d2VsdmUub3Qtc2RrLWNvbHVtbnMsI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstdHdlbHZlLm90LXNkay1jb2x1bW5ze3dpZHRoOjEwMCU7bWFyZ2luLWxlZnQ6MH19I29uZXRydXN0LWJhbm5lci1zZGsgaDEsI29uZXRydXN0LWJhbm5lci1zZGsgaDIsI29uZXRydXN0LWJhbm5lci1zZGsgaDMsI29uZXRydXN0LWJhbm5lci1zZGsgaDQsI29uZXRydXN0LWJhbm5lci1zZGsgaDUsI29uZXRydXN0LWJhbm5lci1zZGsgaDYsI29uZXRydXN0LWJhbm5lci1zZGsgcFtyb2xlPWhlYWRpbmddLCNvbmV0cnVzdC1wYy1zZGsgaDEsI29uZXRydXN0LXBjLXNkayBoMiwjb25ldHJ1c3QtcGMtc2RrIGgzLCNvbmV0cnVzdC1wYy1zZGsgaDQsI29uZXRydXN0LXBjLXNkayBoNSwjb25ldHJ1c3QtcGMtc2RrIGg2LCNvbmV0cnVzdC1wYy1zZGsgcFtyb2xlPWhlYWRpbmddLCNvdC1zZGstY29va2llLXBvbGljeSBoMSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDIsI290LXNkay1jb29raWUtcG9saWN5IGgzLCNvdC1zZGstY29va2llLXBvbGljeSBoNCwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDUsI290LXNkay1jb29raWUtcG9saWN5IGg2LCNvdC1zZGstY29va2llLXBvbGljeSBwW3JvbGU9aGVhZGluZ117bWFyZ2luLXRvcDowO2ZvbnQtd2VpZ2h0OjYwMDtmb250LWZhbWlseTppbmhlcml0fSNvbmV0cnVzdC1iYW5uZXItc2RrIGgxLCNvbmV0cnVzdC1wYy1zZGsgaDEsI290LXNkay1jb29raWUtcG9saWN5IGgxe2ZvbnQtc2l6ZToxLjVyZW07bGluZS1oZWlnaHQ6MS4yfSNvbmV0cnVzdC1iYW5uZXItc2RrIGgyLCNvbmV0cnVzdC1wYy1zZGsgaDIsI290LXNkay1jb29raWUtcG9saWN5IGgye2ZvbnQtc2l6ZToxLjVyZW07bGluZS1oZWlnaHQ6MS4yNX0jb25ldHJ1c3QtYmFubmVyLXNkayBoMywjb25ldHJ1c3QtcGMtc2RrIGgzLCNvdC1zZGstY29va2llLXBvbGljeSBoM3tmb250LXNpemU6MS41cmVtO2xpbmUtaGVpZ2h0OjEuM30jb25ldHJ1c3QtYmFubmVyLXNkayBoNCwjb25ldHJ1c3QtcGMtc2RrIGg0LCNvdC1zZGstY29va2llLXBvbGljeSBoNHtmb250LXNpemU6MS41cmVtO2xpbmUtaGVpZ2h0OjEuMzV9I29uZXRydXN0LWJhbm5lci1zZGsgaDUsI29uZXRydXN0LXBjLXNkayBoNSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDV7Zm9udC1zaXplOjEuNXJlbTtsaW5lLWhlaWdodDoxLjV9I29uZXRydXN0LWJhbm5lci1zZGsgaDYsI29uZXRydXN0LXBjLXNkayBoNiwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDZ7Zm9udC1zaXplOjEuNXJlbTtsaW5lLWhlaWdodDoxLjZ9QG1lZGlhKG1pbi13aWR0aDogNTUwcHgpeyNvbmV0cnVzdC1iYW5uZXItc2RrIGgxLCNvbmV0cnVzdC1wYy1zZGsgaDEsI290LXNkay1jb29raWUtcG9saWN5IGgxe2ZvbnQtc2l6ZToxLjVyZW19I29uZXRydXN0LWJhbm5lci1zZGsgaDIsI29uZXRydXN0LXBjLXNkayBoMiwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDJ7Zm9udC1zaXplOjEuNXJlbX0jb25ldHJ1c3QtYmFubmVyLXNkayBoMywjb25ldHJ1c3QtcGMtc2RrIGgzLCNvdC1zZGstY29va2llLXBvbGljeSBoM3tmb250LXNpemU6MS41cmVtfSNvbmV0cnVzdC1iYW5uZXItc2RrIGg0LCNvbmV0cnVzdC1wYy1zZGsgaDQsI290LXNkay1jb29raWUtcG9saWN5IGg0e2ZvbnQtc2l6ZToxLjVyZW19I29uZXRydXN0LWJhbm5lci1zZGsgaDUsI29uZXRydXN0LXBjLXNkayBoNSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDV7Zm9udC1zaXplOjEuNXJlbX0jb25ldHJ1c3QtYmFubmVyLXNkayBoNiwjb25ldHJ1c3QtcGMtc2RrIGg2LCNvdC1zZGstY29va2llLXBvbGljeSBoNntmb250LXNpemU6MS41cmVtfX0jb25ldHJ1c3QtYmFubmVyLXNkayBwOm5vdChbcm9sZT1oZWFkaW5nXSksI29uZXRydXN0LXBjLXNkayBwOm5vdChbcm9sZT1oZWFkaW5nXSksI290LXNkay1jb29raWUtcG9saWN5IHA6bm90KFtyb2xlPWhlYWRpbmddKXttYXJnaW46MCAwIDFlbSAwO2ZvbnQtZmFtaWx5OmluaGVyaXQ7bGluZS1oZWlnaHQ6bm9ybWFsfSNvbmV0cnVzdC1iYW5uZXItc2RrIGEsI29uZXRydXN0LXBjLXNkayBhLCNvdC1zZGstY29va2llLXBvbGljeSBhe2NvbG9yOiM1NjU2NTY7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0jb25ldHJ1c3QtYmFubmVyLXNkayBhOmhvdmVyLCNvbmV0cnVzdC1wYy1zZGsgYTpob3Zlciwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgYTpob3Zlcntjb2xvcjojNTY1NjU2O3RleHQtZGVjb3JhdGlvbjpub25lfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstYnV0dG9uLCNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbiwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uLCNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uLCNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWJ1dHRvbiwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgYnV0dG9ue21hcmdpbi1ib3R0b206MXJlbTtmb250LWZhbWlseTppbmhlcml0fSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstYnV0dG9uLCNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbiwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uLCNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uLCNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWJ1dHRvbiwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDozOHB4O3BhZGRpbmc6MCAzMHB4O2NvbG9yOiM1NTU7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOi45ZW07Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjM4cHg7bGV0dGVyLXNwYWNpbmc6LjAxZW07dGV4dC1kZWNvcmF0aW9uOm5vbmU7d2hpdGUtc3BhY2U6bm93cmFwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItcmFkaXVzOjJweDtib3JkZXI6MXB4IHNvbGlkICNiYmI7Y3Vyc29yOnBvaW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94fSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstYnV0dG9uOmhvdmVyLCNvbmV0cnVzdC1iYW5uZXItc2RrIDpub3QoLm90LWxlZy1idG4tY29udGFpbmVyKTpub3QoLm90LWNvbmZpcm0tZGlhbG9nLWJ1dHRvbnMpPmJ1dHRvbjpub3QoLm90LWxpbmstYnRuKTpob3Zlciwjb25ldHJ1c3QtYmFubmVyLXNkayA6bm90KC5vdC1sZWctYnRuLWNvbnRhaW5lcik6bm90KC5vdC1jb25maXJtLWRpYWxvZy1idXR0b25zKT5idXR0b246bm90KC5vdC1saW5rLWJ0bik6Zm9jdXMsI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWJ1dHRvbjpob3Zlciwjb25ldHJ1c3QtcGMtc2RrIDpub3QoLm90LWxlZy1idG4tY29udGFpbmVyKTpub3QoLm90LWNvbmZpcm0tZGlhbG9nLWJ1dHRvbnMpPmJ1dHRvbjpub3QoLm90LWxpbmstYnRuKTpob3Zlciwjb25ldHJ1c3QtcGMtc2RrIDpub3QoLm90LWxlZy1idG4tY29udGFpbmVyKTpub3QoLm90LWNvbmZpcm0tZGlhbG9nLWJ1dHRvbnMpPmJ1dHRvbjpub3QoLm90LWxpbmstYnRuKTpmb2N1cywjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1idXR0b246aG92ZXIsI290LXNkay1jb29raWUtcG9saWN5IDpub3QoLm90LWxlZy1idG4tY29udGFpbmVyKTpub3QoLm90LWNvbmZpcm0tZGlhbG9nLWJ1dHRvbnMpPmJ1dHRvbjpub3QoLm90LWxpbmstYnRuKTpob3Zlciwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgOm5vdCgub3QtbGVnLWJ0bi1jb250YWluZXIpOm5vdCgub3QtY29uZmlybS1kaWFsb2ctYnV0dG9ucyk+YnV0dG9uOm5vdCgub3QtbGluay1idG4pOmZvY3Vze2NvbG9yOiMzMzM7Ym9yZGVyLWNvbG9yOiM4ODg7b3BhY2l0eTouOX0jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWJ1dHRvbjpmb2N1cywjb25ldHJ1c3QtYmFubmVyLXNkayA6bm90KC5vdC1sZWctYnRuLWNvbnRhaW5lcik+YnV0dG9uOmZvY3VzLCNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1idXR0b246Zm9jdXMsI29uZXRydXN0LXBjLXNkayA6bm90KC5vdC1sZWctYnRuLWNvbnRhaW5lcik+YnV0dG9uOmZvY3VzLCNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWJ1dHRvbjpmb2N1cywjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgOm5vdCgub3QtbGVnLWJ0bi1jb250YWluZXIpPmJ1dHRvbjpmb2N1c3tvdXRsaW5lOjJweCBzb2xpZCAjMDAwfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeSwjb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5LCNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9c3VibWl0XS5vdC1zZGstYnV0dG9uLXByaW1hcnksI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT1yZXNldF0ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5LCNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9YnV0dG9uXS5vdC1zZGstYnV0dG9uLXByaW1hcnksI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnksI29uZXRydXN0LXBjLXNkayBidXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5LCNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT1zdWJtaXRdLm90LXNkay1idXR0b24tcHJpbWFyeSwjb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9cmVzZXRdLm90LXNkay1idXR0b24tcHJpbWFyeSwjb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9YnV0dG9uXS5vdC1zZGstYnV0dG9uLXByaW1hcnksI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaW5wdXRbdHlwZT1zdWJtaXRdLm90LXNkay1idXR0b24tcHJpbWFyeSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaW5wdXRbdHlwZT1yZXNldF0ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5LCNvdC1zZGstY29va2llLXBvbGljeSBpbnB1dFt0eXBlPWJ1dHRvbl0ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzNjM2YwO2JvcmRlci1jb2xvcjojMzNjM2YwfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeTpob3Zlciwjb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLCNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9c3VibWl0XS5vdC1zZGstYnV0dG9uLXByaW1hcnk6aG92ZXIsI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT1yZXNldF0ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLCNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9YnV0dG9uXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6aG92ZXIsI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1idXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmZvY3VzLCNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT1zdWJtaXRdLm90LXNkay1idXR0b24tcHJpbWFyeTpmb2N1cywjb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPXJlc2V0XS5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT1idXR0b25dLm90LXNkay1idXR0b24tcHJpbWFyeTpmb2N1cywjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeTpob3Zlciwjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnk6aG92ZXIsI29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPXN1Ym1pdF0ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLCNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT1yZXNldF0ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLCNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT1idXR0b25dLm90LXNkay1idXR0b24tcHJpbWFyeTpob3Zlciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeTpmb2N1cywjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsI29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPXN1Ym1pdF0ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmZvY3VzLCNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT1yZXNldF0ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmZvY3VzLCNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT1idXR0b25dLm90LXNkay1idXR0b24tcHJpbWFyeTpmb2N1cywjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1idXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLCNvdC1zZGstY29va2llLXBvbGljeSBidXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLCNvdC1zZGstY29va2llLXBvbGljeSBpbnB1dFt0eXBlPXN1Ym1pdF0ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLCNvdC1zZGstY29va2llLXBvbGljeSBpbnB1dFt0eXBlPXJlc2V0XS5vdC1zZGstYnV0dG9uLXByaW1hcnk6aG92ZXIsI290LXNkay1jb29raWUtcG9saWN5IGlucHV0W3R5cGU9YnV0dG9uXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6aG92ZXIsI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeTpmb2N1cywjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeTpmb2N1cywjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaW5wdXRbdHlwZT1zdWJtaXRdLm90LXNkay1idXR0b24tcHJpbWFyeTpmb2N1cywjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaW5wdXRbdHlwZT1yZXNldF0ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmZvY3VzLCNvdC1zZGstY29va2llLXBvbGljeSBpbnB1dFt0eXBlPWJ1dHRvbl0ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMWVhZWRiO2JvcmRlci1jb2xvcjojMWVhZWRifSNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9dGV4dF0sI29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPXRleHRdLCNvdC1zZGstY29va2llLXBvbGljeSBpbnB1dFt0eXBlPXRleHRde2hlaWdodDozOHB4O3BhZGRpbmc6NnB4IDEwcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgIzcwNzA3MDtib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93Om5vbmU7Ym94LXNpemluZzpib3JkZXItYm94fSNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9dGV4dF0sI29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPXRleHRdLCNvdC1zZGstY29va2llLXBvbGljeSBpbnB1dFt0eXBlPXRleHRdey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX0jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLCNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT10ZXh0XTpmb2N1cywjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaW5wdXRbdHlwZT10ZXh0XTpmb2N1c3tib3JkZXI6MXB4IHNvbGlkICMwMDA7b3V0bGluZTowfSNvbmV0cnVzdC1iYW5uZXItc2RrIGxhYmVsLCNvbmV0cnVzdC1wYy1zZGsgbGFiZWwsI290LXNkay1jb29raWUtcG9saWN5IGxhYmVse2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTouNXJlbTtmb250LXdlaWdodDo2MDB9I29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT1jaGVja2JveF0sI29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPWNoZWNrYm94XSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgaW5wdXRbdHlwZT1jaGVja2JveF17ZGlzcGxheTppbmxpbmV9I29uZXRydXN0LWJhbm5lci1zZGsgdWwsI29uZXRydXN0LXBjLXNkayB1bCwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgdWx7bGlzdC1zdHlsZTpjaXJjbGUgaW5zaWRlfSNvbmV0cnVzdC1iYW5uZXItc2RrIHVsLCNvbmV0cnVzdC1wYy1zZGsgdWwsI290LXNkay1jb29raWUtcG9saWN5IHVse3BhZGRpbmctbGVmdDowO21hcmdpbi10b3A6MH0jb25ldHJ1c3QtYmFubmVyLXNkayB1bCB1bCwjb25ldHJ1c3QtcGMtc2RrIHVsIHVsLCNvdC1zZGstY29va2llLXBvbGljeSB1bCB1bHttYXJnaW46MS41cmVtIDAgMS41cmVtIDNyZW07Zm9udC1zaXplOjkwJX0jb25ldHJ1c3QtYmFubmVyLXNkayBsaSwjb25ldHJ1c3QtcGMtc2RrIGxpLCNvdC1zZGstY29va2llLXBvbGljeSBsaXttYXJnaW4tYm90dG9tOjFyZW19I29uZXRydXN0LWJhbm5lci1zZGsgdGgsI29uZXRydXN0LWJhbm5lci1zZGsgdGQsI29uZXRydXN0LXBjLXNkayB0aCwjb25ldHJ1c3QtcGMtc2RrIHRkLCNvdC1zZGstY29va2llLXBvbGljeSB0aCwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGR7cGFkZGluZzoxMnB4IDE1cHg7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMWUxZTF9I29uZXRydXN0LWJhbm5lci1zZGsgYnV0dG9uLCNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uLCNvdC1zZGstY29va2llLXBvbGljeSBidXR0b257bWFyZ2luLWJvdHRvbToxcmVtO2ZvbnQtZmFtaWx5OmluaGVyaXR9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb250YWluZXI6YWZ0ZXIsI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1yb3c6YWZ0ZXIsI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWNvbnRhaW5lcjphZnRlciwjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstcm93OmFmdGVyLCNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvbnRhaW5lcjphZnRlciwjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1yb3c6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2NsZWFyOmJvdGh9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1yb3csI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLXJvdywjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1yb3d7bWFyZ2luOjA7bWF4LXdpZHRoOm5vbmU7ZGlzcGxheTpibG9ja30="}},"time_used":6,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/src/gemini-theme.css","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.440Z","timestamp":1785108243440,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /src/gemini-theme.css HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/src/main.tsx\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 1894\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: no-cache\r\nEtag: W/\"766-U/xShzH8LOXDtWh+2w8qqjQJuVY\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Nginx:1.18.0","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":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":1894,"size_decoded":2140,"mime_type":"text/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (1447)","md5":"49b2c7151822eff2b91be7f7ee1b0c75","sha1":"53fc528731fc2ce5c3b5687edb0f2aaa3409b956","sha256":"665f6020620fe86e3d9eb17533f791850b857ffbd0da727068264ec63ca740b1","sha512":"1ab4bcdff21179cac4ac8495634c30f486b3e3b6e8310aca19a75f39bbf6386eea7bb34be5cbd6ef044baa561576051c6df1277a3e8e986cfd609ffa1114d389","ssdeep":"","tlshash":"8b41c812bd5f9375a9120f9bfbcef020e7b4bc78c5282b199b6c813166d81f68a25354","first_seen":"2026-07-26T23:24:50.245848Z","last_seen":"2026-07-26T23:25:46.914335Z","times_seen":3,"resource_available":true,"data":"aW1wb3J0IHsgY3JlYXRlSG90Q29udGV4dCBhcyBfX3ZpdGVfX2NyZWF0ZUhvdENvbnRleHQgfSBmcm9tICIvQHZpdGUvY2xpZW50IjtpbXBvcnQubWV0YS5ob3QgPSBfX3ZpdGVfX2NyZWF0ZUhvdENvbnRleHQoIi9zcmMvZ2VtaW5pLXRoZW1lLmNzcyIpO2ltcG9ydCB7IHVwZGF0ZVN0eWxlIGFzIF9fdml0ZV9fdXBkYXRlU3R5bGUsIHJlbW92ZVN0eWxlIGFzIF9fdml0ZV9fcmVtb3ZlU3R5bGUgfSBmcm9tICIvQHZpdGUvY2xpZW50Igpjb25zdCBfX3ZpdGVfX2lkID0gIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvZ2VtaW5pLXRoZW1lLmNzcyIKY29uc3QgX192aXRlX19jc3MgPSAiLyogR2VtaW5pIGJyYW5kIOKAlCBhY3RpdmUgd2hlbiBib2R5IGhhcyAudGhlbWUtZ2VtaW5pICovXG4udGhlbWUtZ2VtaW5pIHtcbiAgLS1nZW1pbmktaGVybzogIzNhM2E1MjtcbiAgLS1nZW1pbmktaGVyby1mZzogI2ZmZmZmZjtcbiAgLS1nZW1pbmktcHJpbWFyeTogIzBkNmI2ZjtcbiAgLS1nZW1pbmktcHJpbWFyeS1mZzogI2ZmZmZmZjtcbiAgLS1nZW1pbmktc2Vjb25kYXJ5OiAjZjRmNGY4O1xuICAtLWdlbWluaS1tdXRlZDogIzZiNmI3YjtcbiAgLS1nZW1pbmktYm9yZGVyOiAjZThlOGVmO1xuICAtLWdlbWluaS1iYW5uZXI6ICNmMGY0ZmM7XG4gIC0tZ2VtaW5pLXNlY3Rpb24tZGFyazogIzJhMmEzODtcbiAgLS1nZW1pbmktY3RhOiAjNWVlYWQ0O1xuICAtLWdlbWluaS1jdGEtZmc6ICMxYTFhMjQ7XG4gIC0tZ2VtaW5pLXdhcm5pbmc6ICNlYWIzMDg7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgc2Fucy1zZXJpZjtcbn1cblxuLyogU2VsZi1jb250YWluZWQgdXRpbGl0aWVzIOKAlCB3b3JrIGV2ZW4gYmVmb3JlIGJvZHkudGhlbWUtZ2VtaW5pIGlzIGFwcGxpZWQgKi9cbi5nZW1pbmktYmctaGVybyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdlbWluaS1oZXJvLCAjM2EzYTUyKTtcbiAgY29sb3I6IHZhcigtLWdlbWluaS1oZXJvLWZnLCAjZmZmZmZmKTtcbn1cblxuLmdlbWluaS1iZy1iYW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nZW1pbmktYmFubmVyLCAjZjBmNGZjKTtcbn1cblxuLmdlbWluaS1idG4tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdlbWluaS1wcmltYXJ5LCAjMGQ2YjZmKTtcbiAgY29sb3I6IHZhcigtLWdlbWluaS1wcmltYXJ5LWZnLCAjZmZmZmZmKTtcbn1cblxuLmdlbWluaS1idG4tcHJpbWFyeTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuLmdlbWluaS10ZXh0LXByaW1hcnkge1xuICBjb2xvcjogdmFyKC0tZ2VtaW5pLXByaW1hcnksICMwZDZiNmYpO1xufVxuXG4uZ2VtaW5pLWJvcmRlci1mb2N1czpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ2VtaW5pLXByaW1hcnksICMwZDZiNmYpO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHhcbiAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ2VtaW5pLXByaW1hcnksICMwZDZiNmYpIDIwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uZ2VtaW5pLXNlY3Rpb24tZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdlbWluaS1zZWN0aW9uLWRhcmssICMyYTJhMzgpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmdlbWluaS1jdGEtYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2VtaW5pLWN0YSwgIzVlZWFkNCk7XG4gIGNvbG9yOiB2YXIoLS1nZW1pbmktY3RhLWZnLCAjMWExYTI0KTtcbn1cbiIKX192aXRlX191cGRhdGVTdHlsZShfX3ZpdGVfX2lkLCBfX3ZpdGVfX2NzcykKaW1wb3J0Lm1ldGEuaG90LmFjY2VwdCgpCmltcG9ydC5tZXRhLmhvdC5wcnVuZSgoKSA9PiBfX3ZpdGVfX3JlbW92ZVN0eWxlKF9fdml0ZV9faWQpKQ=="}},"time_used":49,"timings":{"blocked":-1,"dns":0,"connect":15,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-26T23:24:03.841Z","timestamp":1785108243841,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://830129coinbase.com/\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: cross-site\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\ndate: Sun, 26 Jul 2026 23:24:03 GMT\r\ncontent-type: text/html; charset=utf-8\r\ncontent-length: 60226\r\ncontent-security-policy-report-only: script-src 'unsafe-inline' 'unsafe-eval'; report-uri https://csp-reporting.cloudflare.com/cdn-cgi/script_monitor/report?m=XN65P03I2_7CwUgqqm.qTWeX4UaKtYEAm6z6IYq4KaQ-1785108243.857654-1.0.1.1-2KRfxuRs6S8B7EW5BycUWdMRAo0vSfksKE5lh76uPJjfphpMEzhKyodUJ4UUdaOrO686mMm3qVqieAKSkuDduf.vwaDlB500n0QlCXyfSBAU9HjWVj_k.qL4aC12moxS7p0K0He7cqZQJjMPFlhCWupCxRcTdFRD8HCw0usvXSCq9E8.HXE3ThWigidFBxjs; report-to cf-csp-endpoint\r\ncache-control: no-store, no-cache, must-revalidate, max-age=0,no-store, no-cache, must-revalidate, proxy-revalidate\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self' https://*.coinbase.com https://sdk.onfido.com https://assets.onfido.com https://*.withpersona.com; child-src 'self' https://*.coinbase.com https://accounts.google.com/ https://www.googletagmanager.com/ https://paywithmybank.com/start/ https://cdn1.paywithmybank.com/frontend/build/index.html https://fast.wistia.net https://ui.solaris-p.finleap.cloud https://fts-payment-initiation-wizard.solarisbank.de/ https://payment.truelayer.com https://*.sardine.ai https://sdk.onfido.com/ https://*.cb-device-intelligence.com https://*.wpstn.com https://platform.twitter.com https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/ https://recaptcha.net https://www.recaptcha.net https://cdn.plaid.com/link/ https://*.doubleclick.net/ blob: https://www.youtube.com https://player.vimeo.com/video/ https://datawrapper.dwcdn.net/ https://widgets.marqeta.com https://*.paypal.com https://pay.google.com/ https://transact.atomicfi.com/ https://centinelapi.cardinalcommerce.com/V1/Cruise/Collect https://p2a.co/ https://docs.google.com/forms/ https://a.sprig.com/SmJKcmh5cDRYZX5zaWQ6YWE3ZDJhZjYtMjYxYS00NjkwLWE3ZWMtMGRjMGQyMGY2ZDk5 https://calendly.com/ https://link.tink.com/ https://jsv3.recruitics.com/ https://js.stripe.com/ https://*.withpersona.com https://embedded.cardless.com/; connect-src 'self' https://browser-intake-datadoghq.com/ https://accounts.google.com/gsi/ https://*.coinbase.com wss://*.coinbase.com https://www.tradingview.com/snapshot/ https://beacon.riskified.com https://c.riskified.com https://player.vimeo.com/api/player.js https://api.web3modal.org https://d1dwhf283nul1c.cloudfront.net/ https://cdnjs.cloudflare.com/ https://analytics.google.com https://*.google-analytics.com https://maps.googleapis.com https://www.googletagmanager.com/gtag/js https://www.googletagmanager.com/gtm.js https://www.googleadservices.com https://googleads.g.doubleclick.net https://*.braintree-api.com https://api.braintreegateway.com https://cdn.contentful.com/ https://api.userleap.com/ https://api.sprig.com/ https://widgets.marqeta.com/client/api/v1/ https://assets.ctfassets.net/ https://images.ctfassets.net/ https://pay.google.com/ https://google.com/pay https://c.tvpixel.com/ https://p.tvpixel.com/ https://*.salesforce.com https://pulse.walletconnect.org https://verify.walletconnect.org https://mempool.space wss://relay.walletconnect.com wss://relay.walletconnect.org https://rpc.walletconnect.org https://explorer-api.walletconnect.com wss://www.walletlink.org https://metamask-sdk.api.cx.metamask.io/evt https://api.onfido.com wss://sync.onfido.com https://sdk.onfido.com/ https://cdn.sprig.com/session-replay/ https://www.google.com/pay https://api2.branch.io https://pixel-config.reddit.com/pixels/a2_gn0ni8qm85z4/config https://www.redditstatic.com/ads/conversions-config/v1/pixel/config/a2_gn0ni8qm85z4_telemetry https://conversions-config.reddit.com/v1/pixel/error https://px.ads.linkedin.com/attribution_trigger https://www.google.com/ccm/collect https://px.ads.linkedin.com/wa/ https://cdn.cookielaw.org/ https://geolocation.onetrust.com/ https://privacyportal.onetrust.com/ https://consent-api.onetrust.com/ https://*.withpersona.com https://inquiry.withpersona.com https://wa.appsflyer.com https://websdk.appsflyer.com https://api-secure.amplitude.com https://sr-client-cfg.amplitude.com https://api-sr.amplitude.com https://api.amplitude.com/ https://rba-authed-278491357830-production.s3.us-east-1.amazonaws.com wss://www.deribit.com https://history.deribit.com https://www.deribit.com; font-src * data: blob:; img-src * data: blob:; media-src * data: blob:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.coinbase.com https://www.googletagmanager.com/ https://accounts.google.com/gsi/client https://accounts.google.com/gsi/ https://*.sardine.ai https://beacon.riskified.com https://*.cb-device-intelligence.com https://player.vimeo.com/api/player.js https://sdk.onfido.com/ https://www.youtube.com/iframe_api https://*.google-analytics.com https://www.google.com https://www.gstatic.com https://maps.googleapis.com https://cdn.plaid.com/link/ https://www.googletagmanager.com/gtag/js https://www.googletagmanager.com/gtm.js https://www.googleadservices.com https://googleads.g.doubleclick.net https://connect.facebook.net/en_US/fbevents.js https://connect.facebook.net/signals/config/ https://*.paypal.com https://images.ctfassets.net/ https://pay.google.com/ https://c.tvpixel.com/ https://p.tvpixel.com/ https://jsv3.recruitics.com/0778138b-cc59-11ef-a514-fd1759833eec.js https://static.ads-twitter.com/oct.js https://platform.twitter.com/uwt.js https://static.ads-twitter.com/uwt.js https://redditstatic.com/ads/pixel.js https://www.redditstatic.com/ads/pixel.js https://snap.licdn.com/li.lms-analytics/insight.min.js https://cdn.cookielaw.org/ https://js.stripe.com/ https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/ https://recaptcha.net https://www.recaptcha.net https://*.withpersona.com https://wa.appsflyer.com https://websdk.appsflyer.com; style-src * data: blob: 'unsafe-inline'; frame-ancestors 'self' https://*.coinbase.com https://coinbase.com https://*.withpersona.com; report-uri /csp-logging\r\nexpect-ct: enforce, max-age=86400, report-uri=\"https://coinbase.report-uri.io/r/default/ct/reportOnly\"\r\nexpires: 0,0\r\nlink: \u003c/llms.txt\u003e; rel=\"service-doc\"; type=\"text/plain; charset=utf-8\"\r\nreferrer-policy: strict-origin-when-cross-origin\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nsurrogate-control: no-store\r\ntrace-id: 5556907281643796016\r\nx-content-type-options: nosniff\r\nx-dns-prefetch-control: off\r\nx-download-options: noopen\r\nx-frame-options: SAMEORIGIN\r\nx-xss-protection: 0\r\nserver: cloudflare\r\nvary: accept-encoding\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\ncf-cache-status: DYNAMIC\r\nset-cookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; Path=/; Domain=coinbase.com; Expires=Sat, 26 Jul 2036 23:24:03 GMT; HttpOnly; Secure\ncoinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; domain=.coinbase.com; expires=Wed, 23 Jul 2036 23:24:03 GMT; SameSite=Lax; path=/; secure;\n__cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB; HttpOnly; SameSite=None; Secure; Path=/; Domain=coinbase.com; Expires=Sun, 26 Jul 2026 23:54:03 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=c9ZzG5SltklEG8Y9iYYm6lNNSdnqh1dh2o5eCmtFhW0ZglALyOH66PzQ1bnhdDK3Q4mluxYFOiZDFHLhrH3fE4pSn1%2F98G3Tj9XKIlBsDAl%2B2j9sIsut1BhWu2z%2Fp9Y%2BFvI%3D\"}]}, {\"group\":\"cf-csp-endpoint\",\"max_age\":86400,\"endpoints\":[{\"url\":\"https://csp-reporting.cloudflare.com/cdn-cgi/script_monitor/report?m=XN65P03I2_7CwUgqqm.qTWeX4UaKtYEAm6z6IYq4KaQ-1785108243.857654-1.0.1.1-2KRfxuRs6S8B7EW5BycUWdMRAo0vSfksKE5lh76uPJjfphpMEzhKyodUJ4UUdaOrO686mMm3qVqieAKSkuDduf.vwaDlB500n0QlCXyfSBAU9HjWVj_k.qL4aC12moxS7p0K0He7cqZQJjMPFlhCWupCxRcTdFRD8HCw0usvXSCq9E8.HXE3ThWigidFBxjs\"}]}\r\ncf-ray: a21727dc1d970883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Contentful","description":"Contentful is an API-first content management platform to create, manage and publish content on any digital channel.","website":"https://www.contentful.com","common_platform_enumeration":"","icon":"Contentful.svg","categories":["CMS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Onfido","description":"Onfido is a technology company that helps businesses verify people's identities using a photo-based identity document, a selfie and artificial intelligence algorithms.","website":"https://onfido.com","common_platform_enumeration":"","icon":"Onfido.svg","categories":["Security","Authentication"]},{"name":"PayPal","description":"PayPal is an online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders.","website":"https://paypal.com","common_platform_enumeration":"cpe:2.3:a:paypal:paypal:*:*:*:*:*:*:*:*","icon":"PayPal.svg","categories":["Payment processors"]},{"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":"Plaid","description":"Plaid is a fintech company that facilitates communication between financial services apps and users' banks and credit card providers.","website":"https://plaid.com","common_platform_enumeration":"","icon":"Plaid.svg","categories":["Payment processors","Miscellaneous"]},{"name":"Linkedin Ads","description":"Linkedin Ads is a paid marketing tool that offers access to Linkedin social networks through various sponsored posts and other methods.","website":"https://business.linkedin.com/marketing-solutions/ads","common_platform_enumeration":"","icon":"Linkedin.svg","categories":["Advertising"]},{"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":352072,"size_decoded":68105,"mime_type":"text/html; charset=utf-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (30135)","md5":"4a43f1bd12970891946f708d3271a3d0","sha1":"b72d633f5e1dac99490623d0002b458c1fdaae92","sha256":"4563fc60a9c8109eed790c4f2d31b5d92f17ee3c5d77fd868ebb4cf8e6ef6d9d","sha512":"81d27d63d3656dc4a7f24ac9338b39eb7c6482925a49064b0eafbbadf9103cf754abfe62bde8ff16ea9a96c8ae9ec8e0bda1e57701d8e45a42b6ec6c881dab6e","ssdeep":"3072:SzG5iduB+tVw4mvXHycwhDN+PqTV9MYMFo1cE:3B+tVw4mvXycwhDN+PqTVSucE","tlshash":"14745c74f021983a42034ecdd5b02f2ef25bd202da19f898da7857aa33c7df67b51259","first_seen":"2026-07-26T23:24:50.247754Z","last_seen":"2026-07-26T23:24:50.247754Z","times_seen":1,"resource_available":false,"data":"PCFkb2N0eXBlIGh0bWw+CiAgPGh0bWwgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+CiAgPGhlYWQ+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiIC8+CiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogICAgCiAgICA8dGl0bGUgZGF0YS1yaD0idHJ1ZSI+Q29pbmJhc2UgLSBCdXkgYW5kIFNlbGwgQml0Y29pbiwgRXRoZXJldW0sIGFuZCBtb3JlIHdpdGggdHJ1c3Q8L3RpdGxlPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIG5hbWU9Im9nOnR5cGUiIGNvbnRlbnQ9IndlYnNpdGUiIC8+CiAgICA8bWV0YSBkYXRhLXJoPSJ0cnVlIiBwcm9wZXJ0eT0idHdpdHRlcjphcHA6aWQ6Z29vZ2xlcGxheSIgbmFtZT0idHdpdHRlcjphcHA6aWQ6Z29vZ2xlcGxheSIgY29udGVudD0iY29tLmNvaW5iYXNlLmFuZHJvaWQiLz48bWV0YSBkYXRhLXJoPSJ0cnVlIiBwcm9wZXJ0eT0idHdpdHRlcjphcHA6aWQ6aXBob25lIiBuYW1lPSJ0d2l0dGVyOmFwcDppZDppcGhvbmUiIGNvbnRlbnQ9Ijg4NjQyNzczMCIvPjxtZXRhIGRhdGEtcmg9InRydWUiIHByb3BlcnR5PSJ0d2l0dGVyOmFwcDppZDppcGFkIiBuYW1lPSJ0d2l0dGVyOmFwcDppZDppcGFkIiBjb250ZW50PSI4ODY0Mjc3MzAiLz48bWV0YSBkYXRhLXJoPSJ0cnVlIiBwcm9wZXJ0eT0idHdpdHRlcjpjcmVhdG9yIiBuYW1lPSJ0d2l0dGVyOmNyZWF0b3IiIGNvbnRlbnQ9IkBjb2luYmFzZSIvPjxtZXRhIGRhdGEtcmg9InRydWUiIHByb3BlcnR5PSJ0d2l0dGVyOnNpdGUiIG5hbWU9InR3aXR0ZXI6c2l0ZSIgY29udGVudD0iQGNvaW5iYXNlIi8+PG1ldGEgZGF0YS1yaD0idHJ1ZSIgbmFtZT0idHdpdHRlcjpjYXJkIiBjb250ZW50PSJzdW1tYXJ5Ii8+PG1ldGEgZGF0YS1yaD0idHJ1ZSIgcHJvcGVydHk9Im9nOnRpdGxlIiBuYW1lPSJvZzp0aXRsZSIgY29udGVudD0iQ29pbmJhc2UgLSBCdXkgYW5kIFNlbGwgQml0Y29pbiwgRXRoZXJldW0sIGFuZCBtb3JlIHdpdGggdHJ1c3QiLz48bWV0YSBkYXRhLXJoPSJ0cnVlIiBwcm9wZXJ0eT0ib2c6dXJsIiBuYW1lPSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS8iLz48bWV0YSBkYXRhLXJoPSJ0cnVlIiBuYW1lPSJ0d2l0dGVyOnRpdGxlIiBjb250ZW50PSJDb2luYmFzZSAtIEJ1eSBhbmQgU2VsbCBCaXRjb2luLCBFdGhlcmV1bSwgYW5kIG1vcmUgd2l0aCB0cnVzdCIvPjxtZXRhIGRhdGEtcmg9InRydWUiIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJDb2luYmFzZSBVbml0ZWQgU3RhdGVzIGlzIGEgc2VjdXJlIG9ubGluZSBwbGF0Zm9ybSBmb3IgYnV5aW5nLCBzZWxsaW5nLCB0cmFuc2ZlcnJpbmcsIGFuZCBzdG9yaW5nIGNyeXB0b2N1cnJlbmN5LiIvPjxtZXRhIGRhdGEtcmg9InRydWUiIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgbmFtZT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkNvaW5iYXNlIFVuaXRlZCBTdGF0ZXMgaXMgYSBzZWN1cmUgb25saW5lIHBsYXRmb3JtIGZvciBidXlpbmcsIHNlbGxpbmcsIHRyYW5zZmVycmluZywgYW5kIHN0b3JpbmcgY3J5cHRvY3VycmVuY3kuIi8+PG1ldGEgZGF0YS1yaD0idHJ1ZSIgbmFtZT0idHdpdHRlcjpkZXNjcmlwdGlvbiIgY29udGVudD0iQ29pbmJhc2UgVW5pdGVkIFN0YXRlcyBpcyBhIHNlY3VyZSBvbmxpbmUgcGxhdGZvcm0gZm9yIGJ1eWluZywgc2VsbGluZywgdHJhbnNmZXJyaW5nLCBhbmQgc3RvcmluZyBjcnlwdG9jdXJyZW5jeS4iLz48bWV0YSBkYXRhLXJoPSJ0cnVlIiBwcm9wZXJ0eT0ib2c6aW1hZ2UiIG5hbWU9Im9nOmltYWdlIiBjb250ZW50PSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS82alBwMFc3eEgyUGU4a3dVUzc5WlNtLzZiNTg2MTg5Mjg2YzQ2ZTU0NTMyOWRiZTY0M2Y3NGQ2L0NCX2Jsb2dfaW1hZ2UucG5nIi8+PG1ldGEgZGF0YS1yaD0idHJ1ZSIgbmFtZT0idHdpdHRlcjppbWFnZSIgY29udGVudD0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvNmpQcDBXN3hIMlBlOGt3VVM3OVpTbS82YjU4NjE4OTI4NmM0NmU1NDUzMjlkYmU2NDNmNzRkNi9DQl9ibG9nX2ltYWdlLnBuZyIvPgogICAgPHN0eWxlPkBsYXllciBiYXNlLCBjZHM7PC9zdHlsZT4KICAgIDxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iaWNvbiIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2Fzc2V0cy9zdy1jYWNoZS9hXzZ6M09mWGU5LnBuZyIgc2l6ZXM9IjMyeDMyIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJpY29uIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vYXNzZXRzL3N3LWNhY2hlL2FfQ19UNFJsbl8ucG5nIiBzaXplcz0iNTd4NTciLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9Imljb24iIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9hc3NldHMvc3ctY2FjaGUvYV9CRzFJNlRSXy5wbmciIHNpemVzPSI3Nng3NiIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iaWNvbiIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2Fzc2V0cy9zdy1jYWNoZS9hX0RWQTBoMktOLnBuZyIgc2l6ZXM9Ijk2eDk2Ii8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJpY29uIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vYXNzZXRzL3N3LWNhY2hlL2FfQ0RXX0JxVjIucG5nIiBzaXplcz0iMTI4eDEyOCIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iaWNvbiIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2Fzc2V0cy9zdy1jYWNoZS9hXzRmRmhFbFVqLnBuZyIgc2l6ZXM9IjE5MngxOTIiLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9Imljb24iIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9hc3NldHMvc3ctY2FjaGUvYV9DY3ZPTlNyVi5wbmciIHNpemVzPSIyMjh4MjI4Ii8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vYXNzZXRzL3N3LWNhY2hlL2FfQjRhRFlvLUcucG5nIiBzaXplcz0iMTk2eDE5NiIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2Fzc2V0cy9zdy1jYWNoZS9hX0dSS21QSnQ1LnBuZyIgc2l6ZXM9IjEyMHgxMjAiLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9hc3NldHMvc3ctY2FjaGUvYV9DdDFka0RzQS5wbmciIHNpemVzPSIxNTJ4MTUyIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vYXNzZXRzL3N3LWNhY2hlL2FfQklhYU1WOVMucG5nIiBzaXplcz0iMTgweDE4MCIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0ibWFuaWZlc3QiIGhyZWY9Ii9tYW5pZmVzdC5qc29uIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9ImVzLXVzIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vZXMtdXMvIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJlbi1kZSIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2VuLWRlLyIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYWx0ZXJuYXRlIiBocmVmTGFuZz0iZW4tZ2IiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9lbi1nYi8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9ImVuLWZyIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vZW4tZnIvIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJmci1mciIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2ZyLWZyLyIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYWx0ZXJuYXRlIiBocmVmTGFuZz0iZW4tY2EiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9lbi1jYS8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9ImZyLWNhIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vZnItY2EvIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJlcy1lcyIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2VzLWVzLyIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYWx0ZXJuYXRlIiBocmVmTGFuZz0iZW4tZXMiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9lbi1lcy8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9InB0LWJyIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vcHQtYnIvIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJlbi1iciIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2VuLWJyLyIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYWx0ZXJuYXRlIiBocmVmTGFuZz0icHQtcHQiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9wdC1wdC8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9ImVuLXB0IiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vZW4tcHQvIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJlbi1hdSIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2VuLWF1LyIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYWx0ZXJuYXRlIiBocmVmTGFuZz0iZW4tc2ciIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9lbi1zZy8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9InpoLXNnIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vemgtc2cvIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJlbi1pdCIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2VuLWl0LyIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYWx0ZXJuYXRlIiBocmVmTGFuZz0iZW4tbmwiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9lbi1ubC8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9ImVzLWFyIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vZXMtYXIvIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJlbi1hciIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2VuLWFyLyIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYWx0ZXJuYXRlIiBocmVmTGFuZz0iZW4taW4iIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9lbi1pbi8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9ImVzLW14IiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vZXMtbXgvIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJlbi1teCIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2VuLW14LyIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYWx0ZXJuYXRlIiBocmVmTGFuZz0iZXMtbGEiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9lcy1sYS8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9InpoLWNuIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vemgtY24vIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJ6aC10dyIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL3poLXR3LyIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYWx0ZXJuYXRlIiBocmVmTGFuZz0iZGUiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZS8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9Iml0IiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vaXQvIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJubCIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL25sLyIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYWx0ZXJuYXRlIiBocmVmTGFuZz0iZnIiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9mci8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9InBsIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vcGwvIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJydSIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL3J1LyIvPjxsaW5rIGRhdGEtcmg9InRydWUiIHJlbD0iYWx0ZXJuYXRlIiBocmVmTGFuZz0idGgiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS90aC8iLz48bGluayBkYXRhLXJoPSJ0cnVlIiByZWw9ImFsdGVybmF0ZSIgaHJlZkxhbmc9ImVuIiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vIi8+PGxpbmsgZGF0YS1yaD0idHJ1ZSIgcmVsPSJhbHRlcm5hdGUiIGhyZWZMYW5nPSJ4LWRlZmF1bHQiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS8iLz4KICAgIDxsaW5rIHJlbD0ibW9kdWxlcHJlbG9hZCIgY3Jvc3NvcmlnaW4gaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2Fzc2V0cy9zdy1jYWNoZS9lX0NycVJXMXdQLmpzIj4KICAgIAogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBjcm9zc29yaWdpbiBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vYXNzZXRzL3N3LWNhY2hlL2FfbTNtN0dYQW4uY3NzIj4KICAgIDxzdHlsZSBkYXRhLXN0eWxlZD0idHJ1ZSIgZGF0YS1zdHlsZWQtdmVyc2lvbj0iNi4yLjAiPi5kMS1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTt9Lyohc2MqLwouZDEtZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi5kMS1mc3tmb250LXNpemU6NjRweDstLWNkeC1zdXBlcnNjcmlwdC1mb250LXNpemU6MjUlO30vKiFzYyovCi5kMS1saHtsaW5lLWhlaWdodDo2NHB4O30vKiFzYyovCi5kMi1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTt9Lyohc2MqLwouZDItZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi5kMi1mc3tmb250LXNpemU6NTJweDstLWNkeC1zdXBlcnNjcmlwdC1mb250LXNpemU6MjUlO30vKiFzYyovCi5kMi1saHtsaW5lLWhlaWdodDo1MnB4O30vKiFzYyovCi5kMy1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTt9Lyohc2MqLwouZDMtZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi5kMy1mc3tmb250LXNpemU6NDRweDstLWNkeC1zdXBlcnNjcmlwdC1mb250LXNpemU6MjUlO30vKiFzYyovCi5kMy1saHtsaW5lLWhlaWdodDo0NHB4O30vKiFzYyovCi5kNC1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTt9Lyohc2MqLwouZDQtZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi5kNC1mc3tmb250LXNpemU6NDBweDstLWNkeC1zdXBlcnNjcmlwdC1mb250LXNpemU6MjUlO30vKiFzYyovCi5kNC1saHtsaW5lLWhlaWdodDo0MHB4O30vKiFzYyovCi50MS1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTt9Lyohc2MqLwoudDEtZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi50MS1mc3tmb250LXNpemU6MzZweDstLWNkeC1zdXBlcnNjcmlwdC1mb250LXNpemU6MzAlO30vKiFzYyovCi50MS1saHtsaW5lLWhlaWdodDo0MHB4O30vKiFzYyovCi50Mi1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTt9Lyohc2MqLwoudDItZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi50Mi1mc3tmb250LXNpemU6MzJweDstLWNkeC1zdXBlcnNjcmlwdC1mb250LXNpemU6MzAlO30vKiFzYyovCi50Mi1saHtsaW5lLWhlaWdodDozNnB4O30vKiFzYyovCi50My1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1zYW5zKTt9Lyohc2MqLwoudDMtZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi50My1mc3tmb250LXNpemU6MjhweDstLWNkeC1zdXBlcnNjcmlwdC1mb250LXNpemU6MzAlO30vKiFzYyovCi50My1saHtsaW5lLWhlaWdodDozMnB4O30vKiFzYyovCi50NC1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1zYW5zKTt9Lyohc2MqLwoudDQtZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi50NC1mc3tmb250LXNpemU6MjRweDstLWNkeC1zdXBlcnNjcmlwdC1mb250LXNpemU6MzAlO30vKiFzYyovCi50NC1saHtsaW5lLWhlaWdodDoyOHB4O30vKiFzYyovCi50NS1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1zYW5zKTt9Lyohc2MqLwoudDUtZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi50NS1mc3tmb250LXNpemU6MjBweDstLWNkeC1zdXBlcnNjcmlwdC1mb250LXNpemU6MzAlO30vKiFzYyovCi50NS1saHtsaW5lLWhlaWdodDoyNHB4O30vKiFzYyovCi5oLWZme2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1mb250LXNhbnMpO30vKiFzYyovCi5oLWZ3e2ZvbnQtd2VpZ2h0OjYwMDt9Lyohc2MqLwouaC1mc3tmb250LXNpemU6MjBweDstLWNkeC1zdXBlcnNjcmlwdC1mb250LXNpemU6NTAlO30vKiFzYyovCi5oLWxoe2xpbmUtaGVpZ2h0OjI4cHg7fS8qIXNjKi8KLmItZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtdGV4dCk7fS8qIXNjKi8KLmItZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi5iLWZze2ZvbnQtc2l6ZToxOHB4O30vKiFzYyovCi5iLWxoe2xpbmUtaGVpZ2h0OjI4cHg7fS8qIXNjKi8KLmwxLWZme2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1mb250LXNhbnMpO30vKiFzYyovCi5sMS1md3tmb250LXdlaWdodDo2MDA7fS8qIXNjKi8KLmwxLWZze2ZvbnQtc2l6ZToxOHB4O30vKiFzYyovCi5sMS1saHtsaW5lLWhlaWdodDoyNHB4O30vKiFzYyovCi5sMi1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1zYW5zKTt9Lyohc2MqLwoubDItZnd7Zm9udC13ZWlnaHQ6NjAwO30vKiFzYyovCi5sMi1mc3tmb250LXNpemU6MTZweDt9Lyohc2MqLwoubDItbGh7bGluZS1oZWlnaHQ6MjBweDt9Lyohc2MqLwoubDMtZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtc2Fucyk7fS8qIXNjKi8KLmwzLWZ3e2ZvbnQtd2VpZ2h0OjYwMDt9Lyohc2MqLwoubDMtZnN7Zm9udC1zaXplOjEzcHg7fS8qIXNjKi8KLmwzLWxoe2xpbmUtaGVpZ2h0OjE2cHg7fS8qIXNjKi8KLmMtZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtdGV4dCk7fS8qIXNjKi8KLmMtZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi5jLWZze2ZvbnQtc2l6ZToxNnB4O30vKiFzYyovCi5jLWxoe2xpbmUtaGVpZ2h0OjI0cHg7fS8qIXNjKi8KLmwtZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtdGV4dCk7fS8qIXNjKi8KLmwtZnd7Zm9udC13ZWlnaHQ6NDAwO30vKiFzYyovCi5sLWZze2ZvbnQtc2l6ZToxM3B4O30vKiFzYyovCi5sLWxoe2xpbmUtaGVpZ2h0OjIwcHg7fS8qIXNjKi8KQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCl7LmQxLWZzLWR7Zm9udC1zaXplOjk2cHg7fS5kMi1mcy1ke2ZvbnQtc2l6ZTo4MHB4O30uZDMtZnMtZHtmb250LXNpemU6NjRweDt9LmQ0LWZzLWR7Zm9udC1zaXplOjUycHg7fS50MS1mcy1ke2ZvbnQtc2l6ZTo0NHB4O30udDItZnMtZHtmb250LXNpemU6NDBweDt9LnQzLWZzLWR7Zm9udC1zaXplOjM2cHg7fS50NC1mcy1ke2ZvbnQtc2l6ZTozMnB4O30udDUtZnMtZHtmb250LXNpemU6MjhweDt9LmQxLWxoLWR7bGluZS1oZWlnaHQ6OTZweDt9LmQyLWxoLWR7bGluZS1oZWlnaHQ6ODBweDt9LmQzLWxoLWR7bGluZS1oZWlnaHQ6NjRweDt9LmQ0LWxoLWR7bGluZS1oZWlnaHQ6NTJweDt9LnQxLWxoLWR7bGluZS1oZWlnaHQ6NDhweDt9LnQyLWxoLWR7bGluZS1oZWlnaHQ6NDRweDt9LnQzLWxoLWR7bGluZS1oZWlnaHQ6NDBweDt9LnQ0LWxoLWR7bGluZS1oZWlnaHQ6MzZweDt9LnQ1LWxoLWR7bGluZS1oZWlnaHQ6MzJweDt9fS8qIXNjKi8KQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTI3OXB4KXsuZDEtZnMtdHtmb250LXNpemU6ODBweDt9LmQyLWZzLXR7Zm9udC1zaXplOjY0cHg7fS5kMy1mcy10e2ZvbnQtc2l6ZTo1MnB4O30uZDQtZnMtdHtmb250LXNpemU6NDRweDt9LnQxLWZzLXR7Zm9udC1zaXplOjQwcHg7fS50Mi1mcy10e2ZvbnQtc2l6ZTozNnB4O30udDMtZnMtdHtmb250LXNpemU6MzJweDt9LnQ0LWZzLXR7Zm9udC1zaXplOjI4cHg7fS50NS1mcy10e2ZvbnQtc2l6ZToyNHB4O30uZDEtbGgtdHtsaW5lLWhlaWdodDo4MHB4O30uZDItbGgtdHtsaW5lLWhlaWdodDo2NHB4O30uZDMtbGgtdHtsaW5lLWhlaWdodDo1MnB4O30uZDQtbGgtdHtsaW5lLWhlaWdodDo0NHB4O30udDEtbGgtdHtsaW5lLWhlaWdodDo0NHB4O30udDItbGgtdHtsaW5lLWhlaWdodDo0MHB4O30udDMtbGgtdHtsaW5lLWhlaWdodDozNnB4O30udDQtbGgtdHtsaW5lLWhlaWdodDozMnB4O30udDUtbGgtdHtsaW5lLWhlaWdodDoyOHB4O319Lyohc2MqLwpAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpey5kMS1mcy1te2ZvbnQtc2l6ZTo2NHB4O30uZDItZnMtbXtmb250LXNpemU6NTJweDt9LmQzLWZzLW17Zm9udC1zaXplOjQ0cHg7fS5kNC1mcy1te2ZvbnQtc2l6ZTo0MHB4O30udDEtZnMtbXtmb250LXNpemU6MzZweDt9LnQyLWZzLW17Zm9udC1zaXplOjMycHg7fS50My1mcy1te2ZvbnQtc2l6ZToyOHB4O30udDQtZnMtbXtmb250LXNpemU6MjRweDt9LnQ1LWZzLW17Zm9udC1zaXplOjIwcHg7fS5kMS1saC1te2xpbmUtaGVpZ2h0OjY0cHg7fS5kMi1saC1te2xpbmUtaGVpZ2h0OjUycHg7fS5kMy1saC1te2xpbmUtaGVpZ2h0OjQ0cHg7fS5kNC1saC1te2xpbmUtaGVpZ2h0OjQwcHg7fS50MS1saC1te2xpbmUtaGVpZ2h0OjQwcHg7fS50Mi1saC1te2xpbmUtaGVpZ2h0OjM2cHg7fS50My1saC1te2xpbmUtaGVpZ2h0OjMycHg7fS50NC1saC1te2xpbmUtaGVpZ2h0OjI4cHg7fS50NS1saC1te2xpbmUtaGVpZ2h0OjI0cHg7fX0vKiFzYyovCmRhdGEtc3R5bGVkLmcxW2lkPSJzYy1nbG9iYWwtanR1a0JpMSJde2NvbnRlbnQ6InNjLWdsb2JhbC1qdHVrQmkxLCJ9Lyohc2MqLwouakFsYUZ0e2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1mb250LXRleHQpO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjp2YXIoLS1jb2xvci1mZ011dGVkKTt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nMltpZD0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIl17Y29udGVudDoiakFsYUZ0LCJ9Lyohc2MqLwouQ3ZjQlN7ZGlzcGxheTpjb250ZW50czt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nM1tpZD0iQ0RYU2VjdGlvbkNvbnRhaW5lcl9fRGl2RGlzcGxheUNvbnRlbnRzLXNjLThhNGYzNTdlLTAiXXtjb250ZW50OiJDdmNCUywifS8qIXNjKi8KLmVWbXZDWHtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O292ZXJmbG93LXdyYXA6YnJlYWstd29yZDttYXJnaW46aW5oZXJpdDt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nNltpZD0icmljaFRleHRFbGVtZW50c19fSW5oZXJpdGVkRWxlbWVudC1zYy1lNjBhZDg4OS0yIl17Y29udGVudDoiZVZtdkNYLCJ9Lyohc2MqLwoua3VIRE5Ze3RleHQtd3JhcDpiYWxhbmNlO30vKiFzYyovCmRhdGEtc3R5bGVkLmc4W2lkPSJyaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRIMS1zYy1lNjBhZDg4OS00Il17Y29udGVudDoia3VIRE5ZLCJ9Lyohc2MqLwouZHFRdmhXe3RleHQtd3JhcDpiYWxhbmNlO30vKiFzYyovCmRhdGEtc3R5bGVkLmc5W2lkPSJyaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRIMi1zYy1lNjBhZDg4OS01Il17Y29udGVudDoiZHFRdmhXLCJ9Lyohc2MqLwouYkVLV3BJe3RleHQtd3JhcDpiYWxhbmNlO30vKiFzYyovCmRhdGEtc3R5bGVkLmcxMFtpZD0icmljaFRleHRFbGVtZW50c19fU3R5bGVkSDMtc2MtZTYwYWQ4ODktNiJde2NvbnRlbnQ6ImJFS1dwSSwifS8qIXNjKi8KLmlWTnd4YXt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nMTZbaWQ9IkNEWEltYWdlX19JbWFnZUNvbnRhaW5lci1zYy00YTRkZDE1ZS0wIl17Y29udGVudDoiaVZOd3hhLCJ9Lyohc2MqLwouaVNRVE5oe3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzE3W2lkPSJDRFhJbWFnZV9fU3R5bGVkUGljdHVyZS1zYy00YTRkZDE1ZS0xIl17Y29udGVudDoiaVNRVE5oLCJ9Lyohc2MqLwouaGRNcFdse2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OnZhcigtLW9iamVjdC1maXQtYmFzZSk7fS8qIXNjKi8KQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KXsuaGRNcFdse29iamVjdC1maXQ6dmFyKC0tb2JqZWN0LWZpdC1waG9uZSx2YXIoLS1vYmplY3QtZml0LWJhc2UpKTt9fS8qIXNjKi8KQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTI3OXB4KXsuaGRNcFdse29iamVjdC1maXQ6dmFyKC0tb2JqZWN0LWZpdC10YWJsZXQsdmFyKC0tb2JqZWN0LWZpdC1iYXNlKSk7fX0vKiFzYyovCkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpey5oZE1wV2x7b2JqZWN0LWZpdDp2YXIoLS1vYmplY3QtZml0LWRlc2t0b3AsdmFyKC0tb2JqZWN0LWZpdC1iYXNlKSk7fX0vKiFzYyovCmRhdGEtc3R5bGVkLmcxOFtpZD0iQ0RYSW1hZ2VfX1N0eWxlZEltYWdlLXNjLTRhNGRkMTVlLTIiXXtjb250ZW50OiJoZE1wV2wsIn0vKiFzYyovCi5jYUVYWE4gc3Bhbntmb250LXNpemU6MjBweDtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvO30vKiFzYyovCi5jYUVZYkEgc3Bhbntmb250LXNpemU6MTZweDtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvO30vKiFzYyovCmRhdGEtc3R5bGVkLmcxOVtpZD0iQ0RYSWNvbi1zYy1iNjJmYjQ1My0wIl17Y29udGVudDoiY2FFWFhOLGNhRVliQSwifS8qIXNjKi8KLmhqeUhrcXt3aWR0aDphdXRvO30vKiFzYyovCi5oanlIa3EgLmNkeC1idXR0b257aGVpZ2h0OjEwMCU7d2hpdGUtc3BhY2U6bm9ybWFsO30vKiFzYyovCi5oanlIa3EgLmNkeC1idXR0b24gc3BhbiwuaGp5SGtxIC5jZHgtYnV0dG9uIGRpdntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDp2YXIoLS1zcGFjZS0xXzUpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7fS8qIXNjKi8KLmhqeUhrcSAuY2R4LWJ1dHRvblthcmlhLWRpc2FibGVkPSd0cnVlJ117b3BhY2l0eTowLjU7fS8qIXNjKi8KLmhqeUhrcSAuY2R4LWJ1dHRvbnttaW4td2lkdGg6NDRweDt3aWR0aDo0NHB4O21pbi1oZWlnaHQ6NDRweDt9Lyohc2MqLwouaGp5SGtxIC5jZHgtYnV0dG9ue3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MDttaW4taGVpZ2h0OjQ0cHg7fS8qIXNjKi8KLmhqeUhrcSAuY2R4LWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnU2Vjb25kYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnkpO30vKiFzYyovCi5oanlIa3EgOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlIb3ZlcmVkKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlIb3ZlcmVkKTt9Lyohc2MqLwouaGp5SGtxIDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeVByZXNzZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeVByZXNzZWQpO30vKiFzYyovCi5rUnhJYXt3aWR0aDphdXRvO30vKiFzYyovCi5rUnhJYSAuY2R4LWJ1dHRvbntoZWlnaHQ6MTAwJTt3aGl0ZS1zcGFjZTpub3JtYWw7fS8qIXNjKi8KLmtSeElhIC5jZHgtYnV0dG9uIHNwYW4sLmtSeElhIC5jZHgtYnV0dG9uIGRpdntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDp2YXIoLS1zcGFjZS0xXzUpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7fS8qIXNjKi8KLmtSeElhIC5jZHgtYnV0dG9uW2FyaWEtZGlzYWJsZWQ9J3RydWUnXXtvcGFjaXR5OjAuNTt9Lyohc2MqLwoua1J4SWEgLmNkeC1idXR0b257cGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlLTMpO3BhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2UtMyk7bWluLWhlaWdodDo0NHB4O30vKiFzYyovCi5rUnhJYSAuY2R4LWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnU2Vjb25kYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnkpO30vKiFzYyovCi5rUnhJYSA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeUhvdmVyZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeUhvdmVyZWQpO30vKiFzYyovCi5rUnhJYSA6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlQcmVzc2VkKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlQcmVzc2VkKTt9Lyohc2MqLwouYnFXaUtJe3dpZHRoOmF1dG87fS8qIXNjKi8KLmJxV2lLSSAuY2R4LWJ1dHRvbntoZWlnaHQ6MTAwJTt3aGl0ZS1zcGFjZTpub3JtYWw7fS8qIXNjKi8KLmJxV2lLSSAuY2R4LWJ1dHRvbiBzcGFuLC5icVdpS0kgLmNkeC1idXR0b24gZGl2e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOnZhcigtLXNwYWNlLTFfNSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt9Lyohc2MqLwouYnFXaUtJIC5jZHgtYnV0dG9uW2FyaWEtZGlzYWJsZWQ9J3RydWUnXXtvcGFjaXR5OjAuNTt9Lyohc2MqLwouYnFXaUtJIC5jZHgtYnV0dG9ue3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjZS0zKTtwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNlLTMpO21pbi1oZWlnaHQ6NDRweDt9Lyohc2MqLwouYnFXaUtJIC5jZHgtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdQcmltYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdQcmltYXJ5KTt9Lyohc2MqLwouYnFXaUtJIDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnQnJhbmRIb3ZlcmVkKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdCcmFuZEhvdmVyZWQpO30vKiFzYyovCi5icVdpS0kgOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnQnJhbmRQcmVzc2VkKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdCcmFuZFByZXNzZWQpO30vKiFzYyovCi5idUpDQXV7d2lkdGg6YXV0bzt9Lyohc2MqLwouYnVKQ0F1IC5jZHgtYnV0dG9ue2hlaWdodDoxMDAlO3doaXRlLXNwYWNlOm5vcm1hbDt9Lyohc2MqLwouYnVKQ0F1IC5jZHgtYnV0dG9uIHNwYW4sLmJ1SkNBdSAuY2R4LWJ1dHRvbiBkaXZ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6dmFyKC0tc3BhY2UtMik7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt9Lyohc2MqLwouYnVKQ0F1IC5jZHgtYnV0dG9uW2FyaWEtZGlzYWJsZWQ9J3RydWUnXXtvcGFjaXR5OjAuNTt9Lyohc2MqLwouYnVKQ0F1IC5jZHgtYnV0dG9ue21pbi1oZWlnaHQ6NTZweDtwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2UtNCk7cGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZS00KTtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0yKTt9Lyohc2MqLwouYnVKQ0F1IC5jZHgtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdQcmltYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdQcmltYXJ5KTt9Lyohc2MqLwouYnVKQ0F1IDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnQnJhbmRIb3ZlcmVkKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdCcmFuZEhvdmVyZWQpO30vKiFzYyovCi5idUpDQXUgOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnQnJhbmRQcmVzc2VkKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdCcmFuZFByZXNzZWQpO30vKiFzYyovCi5lTEVtUEl7d2lkdGg6YXV0bzt9Lyohc2MqLwouZUxFbVBJIC5jZHgtYnV0dG9ue2hlaWdodDoxMDAlO3doaXRlLXNwYWNlOm5vcm1hbDt9Lyohc2MqLwouZUxFbVBJIC5jZHgtYnV0dG9uIHNwYW4sLmVMRW1QSSAuY2R4LWJ1dHRvbiBkaXZ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6dmFyKC0tc3BhY2UtMik7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt9Lyohc2MqLwouZUxFbVBJIC5jZHgtYnV0dG9uW2FyaWEtZGlzYWJsZWQ9J3RydWUnXXtvcGFjaXR5OjAuNTt9Lyohc2MqLwouZUxFbVBJIC5jZHgtYnV0dG9ue21pbi1oZWlnaHQ6NTZweDtwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2UtNCk7cGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZS00KTtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0yKTt9Lyohc2MqLwouZUxFbVBJIC5jZHgtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdJbnZlcnNlKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdJbnZlcnNlKTt9Lyohc2MqLwouZUxFbVBJIDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeUhvdmVyZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1ByaW1hcnlIb3ZlcmVkKTt9Lyohc2MqLwouZUxFbVBJIDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1ByaW1hcnlQcmVzc2VkKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdQcmltYXJ5UHJlc3NlZCk7fS8qIXNjKi8KLmJZSVVvZ3t3aWR0aDphdXRvO30vKiFzYyovCi5iWUlVb2cgLmNkeC1idXR0b257aGVpZ2h0OjEwMCU7d2hpdGUtc3BhY2U6bm93cmFwO30vKiFzYyovCi5iWUlVb2cgLmNkeC1idXR0b24gc3BhbiwuYllJVW9nIC5jZHgtYnV0dG9uIGRpdntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDp2YXIoLS1zcGFjZS0xXzUpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7fS8qIXNjKi8KLmJZSVVvZyAuY2R4LWJ1dHRvblthcmlhLWRpc2FibGVkPSd0cnVlJ117b3BhY2l0eTowLjU7fS8qIXNjKi8KLmJZSVVvZyAuY2R4LWJ1dHRvbntwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2UtMyk7cGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZS0zKTttaW4taGVpZ2h0OjQ0cHg7fS8qIXNjKi8KLmJZSVVvZyAuY2R4LWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnU2Vjb25kYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnkpO30vKiFzYyovCi5iWUlVb2cgOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlIb3ZlcmVkKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlIb3ZlcmVkKTt9Lyohc2MqLwouYllJVW9nIDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeVByZXNzZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeVByZXNzZWQpO30vKiFzYyovCi5nZ3dHS1J7d2lkdGg6YXV0bzt9Lyohc2MqLwouZ2d3R0tSIC5jZHgtYnV0dG9ue2hlaWdodDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcDt9Lyohc2MqLwouZ2d3R0tSIC5jZHgtYnV0dG9uIHNwYW4sLmdnd0dLUiAuY2R4LWJ1dHRvbiBkaXZ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6dmFyKC0tc3BhY2UtMV81KTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O30vKiFzYyovCi5nZ3dHS1IgLmNkeC1idXR0b25bYXJpYS1kaXNhYmxlZD0ndHJ1ZSdde29wYWNpdHk6MC41O30vKiFzYyovCi5nZ3dHS1IgLmNkeC1idXR0b257cGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlLTMpO3BhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2UtMyk7bWluLWhlaWdodDo0NHB4O30vKiFzYyovCi5nZ3dHS1IgLmNkeC1idXR0b257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnKTt9Lyohc2MqLwouZ2d3R0tSIDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnVGVydGlhcnlIb3ZlcmVkKTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdUZXJ0aWFyeUhvdmVyZWQpO30vKiFzYyovCi5nZ3dHS1IgOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnVGVydGlhcnlQcmVzc2VkKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzIwW2lkPSJDRFhCdXR0b25fX0NEWEJ1dHRvbkNvbnRhaW5lci1zYy02NDBjOTYyMi0wIl17Y29udGVudDoiaGp5SGtxLGtSeElhLGJxV2lLSSxidUpDQXUsZUxFbVBJLGJZSVVvZyxnZ3dHS1IsIn0vKiFzYyovCi5kU0hlQ2ssLmRTSGVDayBzcGFue3dpZHRoOjY0cHg7aGVpZ2h0OjEwMCU7Zm9udC1zaXplOjY0cHg7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzQ3W2lkPSJMb2dvSWNvbl9fU3R5bGVkSWNvbi1zYy1lZWI5YzA0NS0wIl17Y29udGVudDoiZFNIZUNrLCJ9Lyohc2MqLwouZ25kRFJ1e3dpZHRoOjA7aGVpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzQ4W2lkPSJGb290ZXJfX0Zvb3RlckFuY2hvci1zYy1mODlmNTlkNy0wIl17Y29udGVudDoiZ25kRFJ1LCJ9Lyohc2MqLwouakprSmtIe3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO30vKiFzYyovCmRhdGEtc3R5bGVkLmc0OVtpZD0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIl17Y29udGVudDoiakprSmtILCJ9Lyohc2MqLwouY3N0SXJ4e2ZsZXg6MTttYXgtd2lkdGg6MzAwcHg7fS8qIXNjKi8KQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCl7LmNzdElyeHttYXgtd2lkdGg6NjAwcHg7fX0vKiFzYyovCkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpey5jc3RJcnh7bWF4LXdpZHRoOjY3NnB4O319Lyohc2MqLwpkYXRhLXN0eWxlZC5nNTBbaWQ9IlRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX0Rlc2NyaXB0aW9uQ29sdW1uLXNjLTQ4NTVjMDM1LTAiXXtjb250ZW50OiJjc3RJcngsIn0vKiFzYyovCi5kd1Rhbkh7dHJhbnNpdGlvbjphbGwgMjAwbXMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0ZXh0LWRlY29yYXRpb24tY29sb3I7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSB0cmFuc3BhcmVudDt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nNTFbaWQ9IlRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX1RleHQtc2MtNDg1NWMwMzUtMSJde2NvbnRlbnQ6ImR3VGFuSCwifS8qIXNjKi8KLmhLR1lZVntib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy05MDApO3RyYW5zaXRpb246YWxsIDIwMG1zIGVhc2UtaW4tb3V0O3RyYW5zaXRpb24tcHJvcGVydHk6YmFja2dyb3VuZC1jb2xvcjt9Lyohc2MqLwouaEtHWVlWOmhvdmVyLC5oS0dZWVYuZm9jdXMtdmlzaWJsZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnVGVydGlhcnlIb3ZlcmVkKTt9Lyohc2MqLwouaEtHWVlWOmhvdmVyIC5UcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19UZXh0LXNjLTQ4NTVjMDM1LTEsLmhLR1lZVi5mb2N1cy12aXNpYmxlIC5UcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19UZXh0LXNjLTQ4NTVjMDM1LTF7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOmN1cnJlbnRDb2xvcjt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nNTJbaWQ9IlRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX1N0eWxlZExpbmstc2MtNDg1NWMwMzUtMiJde2NvbnRlbnQ6ImhLR1lZViwifS8qIXNjKi8KLmlocEpEZXt3aWR0aDoxMDAlO2FsaWduLWl0ZW1zOmNlbnRlcjt9Lyohc2MqLwpAbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KXsuaWhwSkRle3dpZHRoOjE1NnB4O319Lyohc2MqLwpAbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KXsuaWhwSkRle3dpZHRoOjIwOHB4O319Lyohc2MqLwpkYXRhLXN0eWxlZC5nNTNbaWQ9IlRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX0ltYWdlV3JhcHBlci1zYy00ODU1YzAzNS0zIl17Y29udGVudDoiaWhwSkRlLCJ9Lyohc2MqLwouaVBjaE9Qe2ZsZXg6MTt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nNTRbaWQ9IlRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX1RleHRXcmFwcGVyLXNjLTQ4NTVjMDM1LTQiXXtjb250ZW50OiJpUGNoT1AsIn0vKiFzYyovCi5zZmpOQXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtdW5kZXJsaW5lLW9mZnNldDoycHg7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzU1W2lkPSJUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19VbmRlcmxpbmVkVGV4dC1zYy00ODU1YzAzNS01Il17Y29udGVudDoic2ZqTkEsIn0vKiFzYyovCi5iaUp6T2V7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTQwMCk7dHJhbnNpdGlvbjphbGwgMjAwbXMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbi1wcm9wZXJ0eTpiYWNrZ3JvdW5kLWNvbG9yO30vKiFzYyovCi5iaUp6T2U6aG92ZXIsLmJpSnpPZS5mb2N1cy12aXNpYmxle2JhY2tncm91bmQ6dmFyKC0tY29sb3ItYmdUZXJ0aWFyeUhvdmVyZWQpO30vKiFzYyovCmRhdGEtc3R5bGVkLmc1NltpZD0iQ29sdW1uSGVhZGVyX19TdHlsZWRMaW5rLXNjLTk0MzcxZGRiLTAiXXtjb250ZW50OiJiaUp6T2UsIn0vKiFzYyovCi5nZW9tR2l7cGFkZGluZzp2YXIoLS1zcGFjZS0yKTt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nNTdbaWQ9IkNvbHVtbkhlYWRlcl9fQ29udGVudC1zYy05NDM3MWRkYi0xIl17Y29udGVudDoiZ2VvbUdpLCJ9Lyohc2MqLwouZnJKY2Nwe3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnQWx0ZXJuYXRlKTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApO30vKiFzYyovCmRhdGEtc3R5bGVkLmc1OFtpZD0iU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAiXXtjb250ZW50OiJmckpjY3AsIn0vKiFzYyovCi5pYXVobVp7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXgtd2lkdGg6MzE2cHg7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzU5W2lkPSJTdWJtZW51TGlua19fVGV4dFdyYXBwZXItc2MtNDUyZGMyYjAtMCJde2NvbnRlbnQ6ImlhdWhtWiwifS8qIXNjKi8KLmh6dU9QVXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nNjBbaWQ9IlN1Ym1lbnVMaW5rX19JY29uV3JhcHBlci1zYy00NTJkYzJiMC0xIl17Y29udGVudDoiaHp1T1BVLCJ9Lyohc2MqLwouZXBaRG9te2NvbG9yOnZhcigtLWNvbG9yLWZnKTt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nNjFbaWQ9IlN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIl17Y29udGVudDoiZXBaRG9tLCJ9Lyohc2MqLwouYlhPUGZRe2NvbG9yOnZhcigtLWNvbG9yLWZnTXV0ZWQpO30vKiFzYyovCmRhdGEtc3R5bGVkLmc2MltpZD0iU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMiXXtjb250ZW50OiJiWE9QZlEsIn0vKiFzYyovCi5qTEJ4UkZ7Y29sb3I6dmFyKC0tY29sb3ItZmdQcmltYXJ5KTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZy1ib3R0b206M3B4O30vKiFzYyovCi5qTEJ4UkY6YmVmb3Jle2NvbnRlbnQ6Jyc7d2lkdGg6NHB4O2hlaWdodDo0cHg7YmFja2dyb3VuZDp2YXIoLS1jb2xvci1mZyk7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMTAwMCk7bWFyZ2luLWlubGluZTo3cHg7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzYzW2lkPSJTdWJtZW51TGlua19fTmV3VGFnLXNjLTQ1MmRjMmIwLTQiXXtjb250ZW50OiJqTEJ4UkYsIn0vKiFzYyovCi5ieFp1WGh7ZGlzcGxheTppbmxpbmUtZmxleDtjb2xvcjppbmhlcml0O3dpZHRoOjEwMCU7bWluLWhlaWdodDo4MHB4O3BhZGRpbmc6dmFyKC0tc3BhY2UtMF81KSB2YXIoLS1zcGFjZS0yKTtmb250LXNpemU6MTRweDtnYXA6dmFyKC0tc3BhY2UtMik7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNDAwKTt0cmFuc2l0aW9uOmFsbCAyMDBtcyBlYXNlLWluLW91dDt0cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQtY29sb3I7fS8qIXNjKi8KLmJ4WnVYaDpob3ZlciwuYnhadVhoLmZvY3VzLXZpc2libGV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1RlcnRpYXJ5SG92ZXJlZCk7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzY1W2lkPSJTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiJde2NvbnRlbnQ6ImJ4WnVYaCwifS8qIXNjKi8KLmRsaE5JTXtmbGV4OjE7bWF4LXdpZHRoOjg0NHB4O2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDMwMHB4LDFmcikpO2dhcDp2YXIoLS1zcGFjZS0yKTtncmlkLWF1dG8tZmxvdzpyb3c7YWxpZ24taXRlbXM6ZmxleC1zdGFydDthbGlnbi1zZWxmOnN0YXJ0O30vKiFzYyovCkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpey5kbGhOSU17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgzNjBweCwxZnIpKTt9fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzY2W2lkPSJUcmFwZG9vclByb2R1Y3RMaXN0Q29sdW1uX19Db2x1bW5XcmFwcGVyLXNjLTVjOGZhY2ZkLTAiXXtjb250ZW50OiJkbGhOSU0sIn0vKiFzYyovCi5iQUhldGt7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpzdGFydDt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nNjdbaWQ9IkFjY2Vzc2liaWxpdHlXcmFwcGVyLXNjLWQyZTUwZDQ5LTAiXXtjb250ZW50OiJiQUhldGssIn0vKiFzYyovCi5jZldUUFV7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTYwMHB4O21hcmdpbjowIGF1dG87fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzc1W2lkPSJDRFhDb250YWluZXItc2MtZGViNmFkMTUtMCJde2NvbnRlbnQ6ImNmV1RQVSwifS8qIXNjKi8KLmRvR0FJa3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6bm9uZTt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nODRbaWQ9IkxvZ29XcmFwcGVyX19XcmFwcGVyLXNjLTEwYTNhODJhLTAiXXtjb250ZW50OiJkb0dBSWssIn0vKiFzYyovCi5CSm5OUntkaXNwbGF5OmlubGluZS1mbGV4O30vKiFzYyovCmRhdGEtc3R5bGVkLmc4NVtpZD0iTG9nb1dyYXBwZXJfX1N0eWxlZExpbmstc2MtMTBhM2E4MmEtMSJde2NvbnRlbnQ6IkJKbk5SLCJ9Lyohc2MqLwouZXBlV0pHe2hlaWdodDo0NHB4O3BhZGRpbmc6dmFyKC0tc3BhY2UtMV81KSB2YXIoLS1zcGFjZS0zKTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtjdXJzb3I6ZGVmYXVsdDtib3gtc2hhZG93Om5vbmU7cG9zaXRpb246cmVsYXRpdmU7fS8qIXNjKi8KQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkgYW5kIChtYXgtd2lkdGg6IDE0MzlweCl7LmVwZVdKR3twYWRkaW5nLWlubGluZTp2YXIoLS1zcGFjZS0xXzUpO319Lyohc2MqLwpkYXRhLXN0eWxlZC5nODhbaWQ9Ik5hdkxpbmtJdGVtX19JdGVtV3JhcHBlci1zYy04YjAzNTc0Ni0wIl17Y29udGVudDoiZXBlV0pHLCJ9Lyohc2MqLwoua0dhRkVNe2N1cnNvcjpwb2ludGVyO30vKiFzYyovCmRhdGEtc3R5bGVkLmc4OVtpZD0iTmF2TGlua0l0ZW1fX0xpbmtJdGVtV3JhcHBlci1zYy04YjAzNTc0Ni0xIl17Y29udGVudDoia0dhRkVNLCJ9Lyohc2MqLwouY2hySGpie2xpbmUtaGVpZ2h0OjE1cHg7ZGlzcGxheTppbmxpbmUtZmxleDtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDAwKTt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nOTBbaWQ9Ik5hdkxpbmtJdGVtX19TdHlsZWRMaW5rLXNjLThiMDM1NzQ2LTIiXXtjb250ZW50OiJjaHJIamIsIn0vKiFzYyovCi5qeHN3dGx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZyk7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjQ7bGVmdDowO3JpZ2h0OjA7b3BhY2l0eTowO292ZXJmbG93OmF1dG87fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzk2W2lkPSJUcmFwZG9vckNvbnRlbnRXcmFwcGVyX19XcmFwcGVyLXNjLTU5OTY3NGRhLTAiXXtjb250ZW50OiJqeHN3dGwsIn0vKiFzYyovCi5qUFJNUHd7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ092ZXJsYXkpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDVweCk7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxO30vKiFzYyovCmRhdGEtc3R5bGVkLmc5N1tpZD0iVHJhcGRvb3JDb250ZW50V3JhcHBlcl9fT3ZlcmxheS1zYy01OTk2NzRkYS0xIl17Y29udGVudDoialBSTVB3LCJ9Lyohc2MqLwouZ1dVc1hke3BhZGRpbmc6dmFyKC0tc3BhY2UtNCkgdmFyKC0tc3BhY2UtNCkgdmFyKC0tc3BhY2UtMykgdmFyKC0tc3BhY2UtMik7bWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjZS0zKTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nOThbaWQ9IlRyYXBkb29yQ29udGVudFdyYXBwZXJfX0NvbnRlbnQtc2MtNTk5Njc0ZGEtMiJde2NvbnRlbnQ6ImdXVXNYZCwifS8qIXNjKi8KLmpBLURhd2N7d2lkdGg6MTAwJTtkaXNwbGF5OmNvbnRlbnRzO30vKiFzYyovCmRhdGEtc3R5bGVkLmc5OVtpZD0iTWFpbk5hdl9fT3V0ZXJXcmFwcGVyLXNjLTEzZWFiMTktMCJde2NvbnRlbnQ6ImpBLURhd2MsIn0vKiFzYyovCi5iRWF2Wld7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWJnKTtwb3NpdGlvbjpzdGlja3k7ei1pbmRleDo1O3RvcDowO30vKiFzYyovCmRhdGEtc3R5bGVkLmcxMDBbaWQ9Ik1haW5OYXZfX1N0aWNreVdyYXBwZXItc2MtMTNlYWIxOS0xIl17Y29udGVudDoiYkVhdlpXLCJ9Lyohc2MqLwouampDQXRWe2Rpc3BsYXk6ZmxleDtmbGV4OjE7Z2FwOnZhcigtLXNwYWNlLTBfNSk7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzEwMVtpZD0iTWFpbk5hdl9fTGlua3NXcmFwcGVyLXNjLTEzZWFiMTktMiJde2NvbnRlbnQ6ImpqQ0F0ViwifS8qIXNjKi8KLmdDa1hMdHtkaXNwbGF5OmdyaWQ7Z3JpZC1hdXRvLWZsb3c6Y29sdW1uO2dyaWQtYXV0by1jb2x1bW5zOm1pbm1heCgwLDFmcikgYXV0byBhdXRvIGF1dG87anVzdGlmeS1jb250ZW50OmVuZDtqdXN0aWZ5LWl0ZW1zOmVuZDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOnZhcigtLXNwYWNlLTEpO2ZsZXg6MTt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nMTAyW2lkPSJNYWluTmF2X19MYW5ndWFnZVNlbGVjdG9yQnV0dG9uV3JhcHBlci1zYy0xM2VhYjE5LTMiXXtjb250ZW50OiJnQ2tYTHQsIn0vKiFzYyovCi5ndGhxaHV7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6Ym9sZDt3aGl0ZS1zcGFjZTpub3dyYXA7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzEwM1tpZD0iTWFpbk5hdl9fTmF2TGlua0l0ZW1UZXh0LXNjLTEzZWFiMTktNCJde2NvbnRlbnQ6Imd0aHFodSwifS8qIXNjKi8KLmV1UlZyT3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi05OTk5cHg7ei1pbmRleDoyMTQ3NDgzNjQ3O3dpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czowO3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjZS0xXzUpIC0gMnB4KSB2YXIoLS1zcGFjZS0yKTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7b3V0bGluZS1vZmZzZXQ6LTFweDt9Lyohc2MqLwouZXVSVnJPOmZvY3Vze3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6MDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnVGVydGlhcnlIb3ZlcmVkKTt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nMTA0W2lkPSJNYWluTmF2X19Ta2lwTmF2LXNjLTEzZWFiMTktNSJde2NvbnRlbnQ6ImV1UlZyTywifS8qIXNjKi8KLmdhSUdvVXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2Rpc3BsYXk6YmxvY2s7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzEwNVtpZD0iTWFpbk5hdl9fU2tpcE5hdlRleHQtc2MtMTNlYWIxOS02Il17Y29udGVudDoiZ2FJR29VLCJ9Lyohc2MqLwouZkJ4UXJEe3dpZHRoOjA7aGVpZ2h0OjA7dmlzaWJpbGl0eTpoaWRkZW47fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzEwNltpZD0iTWFpbk5hdl9fTmF2QW5jaG9yLXNjLTEzZWFiMTktNyJde2NvbnRlbnQ6ImZCeFFyRCwifS8qIXNjKi8KLmp0Wk5tantoZWlnaHQ6MTAwdmg7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzEzNVtpZD0iUGFnZUJvdW5kYXJ5X19Db250YWluZXItc2MtNTJiZjA4YWItMCJde2NvbnRlbnQ6Imp0Wk5taiwifS8qIXNjKi8KLkpkS0lPe3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7bWFyZ2luOmF1dG87fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzEzNltpZD0iUGFnZUJvdW5kYXJ5X19Mb2FkZXJDb250YWluZXItc2MtNTJiZjA4YWItMSJde2NvbnRlbnQ6IkpkS0lPLCJ9Lyohc2MqLwpAbGF5ZXIgYmFzZXtodG1se2xpbmUtaGVpZ2h0OjEuMTU7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCU7fW1haW57ZGlzcGxheTpibG9jazt9aDF7Zm9udC1zaXplOjJlbTttYXJnaW46MC42N2VtIDA7fWhye2JveC1zaXppbmc6Y29udGVudC1ib3g7aGVpZ2h0OjA7b3ZlcmZsb3c6dmlzaWJsZTt9cHJle2ZvbnQtZmFtaWx5Om1vbm9zcGFjZSxtb25vc3BhY2U7Zm9udC1zaXplOjFlbTt9YXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O31iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXI7fWNvZGUsa2JkLHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlLG1vbm9zcGFjZTtmb250LXNpemU6MWVtO31zbWFsbHtmb250LXNpemU6ODAlO31zdWIsc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt9c3Vie2JvdHRvbTotMC4yNWVtO31zdXB7dG9wOi0wLjVlbTt9aW1ne2JvcmRlci1zdHlsZTpub25lO31idXR0b24saW5wdXQsb3B0Z3JvdXAsc2VsZWN0LHRleHRhcmVhe2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjEwMCU7bGluZS1oZWlnaHQ6MS4xNTttYXJnaW46MDt9YnV0dG9uLGlucHV0e292ZXJmbG93OnZpc2libGU7fWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZTt9YnV0dG9uLFt0eXBlPSJidXR0b24iXSxbdHlwZT0icmVzZXQiXSxbdHlwZT0ic3VibWl0Il17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjt9YnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPSJidXR0b24iXTo6LW1vei1mb2N1cy1pbm5lcixbdHlwZT0icmVzZXQiXTo6LW1vei1mb2N1cy1pbm5lcixbdHlwZT0ic3VibWl0Il06Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyLXN0eWxlOm5vbmU7cGFkZGluZzowO31idXR0b246LW1vei1mb2N1c3JpbmcsW3R5cGU9ImJ1dHRvbiJdOi1tb3otZm9jdXNyaW5nLFt0eXBlPSJyZXNldCJdOi1tb3otZm9jdXNyaW5nLFt0eXBlPSJzdWJtaXQiXTotbW96LWZvY3VzcmluZ3tvdXRsaW5lOjFweCBkb3R0ZWQgQnV0dG9uVGV4dDt9ZmllbGRzZXR7cGFkZGluZzowLjM1ZW0gMC43NWVtIDAuNjI1ZW07fWxlZ2VuZHtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJpdDtkaXNwbGF5OnRhYmxlO21heC13aWR0aDoxMDAlO3BhZGRpbmc6MDt3aGl0ZS1zcGFjZTpub3JtYWw7fXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO310ZXh0YXJlYXtvdmVyZmxvdzphdXRvO31bdHlwZT0iY2hlY2tib3giXSxbdHlwZT0icmFkaW8iXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowO31bdHlwZT0ibnVtYmVyIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sW3R5cGU9Im51bWJlciJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvO31bdHlwZT0ic2VhcmNoIl17LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDtvdXRsaW5lLW9mZnNldDotMnB4O31bdHlwZT0ic2VhcmNoIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7fTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtmb250OmluaGVyaXQ7fWRldGFpbHN7ZGlzcGxheTpibG9jazt9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbTt9dGVtcGxhdGV7ZGlzcGxheTpub25lO31baGlkZGVuXXtkaXNwbGF5Om5vbmU7fWh0bWx7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDotd2Via2l0LWZpbGwtYXZhaWxhYmxlO31ib2R5e21pbi1oZWlnaHQ6MTAwdmg7bWluLWhlaWdodDotd2Via2l0LWZpbGwtYXZhaWxhYmxlO292ZXJmbG93LXg6aGlkZGVuO31odG1sLGJvZHl7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7Zm9udC1mYW1pbHk6J0NvaW5iYXNlU2FucycsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsIlNlZ29lIFVJIiwiUm9ib3RvIiwiT3h5Z2VuIiwiVWJ1bnR1IiwiQ2FudGFyZWxsIiwiRmlyYSBTYW5zIiwiRHJvaWQgU2FucyIsIkhlbHZldGljYSBOZXVlIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjQwMDstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO31odG1sLmxvY2stc2Nyb2xse3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7fSp7Ym94LXNpemluZzpib3JkZXItYm94O31he2NvbG9yOiMwNjY3ZDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fX0vKiFzYyovCmRhdGEtc3R5bGVkLmcxNDBbaWQ9InNjLWdsb2JhbC1rd3N4dXExIl17Y29udGVudDoic2MtZ2xvYmFsLWt3c3h1cTEsIn0vKiFzYyovCi5qcm9ueFUgZGl2LC5qcm9ueFUgaW5wdXR7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO30vKiFzYyovCi5qcm9ueFUgW2RhdGEtdGVzdGlkPSdpbnB1dC1pbnRlcmFjdGFibGUtYXJlYSdde2JvcmRlcjp2YXIoLS1ib3JkZXJXaWR0aC0xMDApIHNvbGlkIHZhcigtLWJvcmRlci1jb2xvci11bmZvY3VzZWQpO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTIwMCk7fS8qIXNjKi8KLmpyb254VSBbZGF0YS10ZXN0aWQ9J2lucHV0LWludGVyYWN0YWJsZS1hcmVhJ106aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1pbnRlcmFjdGFibGUtaG92ZXJlZC1iYWNrZ3JvdW5kKTt9Lyohc2MqLwouanJvbnhVIGlucHV0e3BhZGRpbmc6dmFyKC0tc3BhY2UtMik7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzE4M1tpZD0iQ0RYVGV4dElucHV0X19JbnB1dENvbnRhaW5lci1zYy1kZTI2NjA5LTAiXXtjb250ZW50OiJqcm9ueFUsIn0vKiFzYyovCi5ralNsZ2Z7aXNvbGF0aW9uOmlzb2xhdGU7fS8qIXNjKi8KLmtqU2xnZjpob3Zlcjpub3QoOmhhcygudGFnOmhvdmVyKSkgaDN7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9Lyohc2MqLwpkYXRhLXN0eWxlZC5nMTg1W2lkPSJDRFhDYXJkQXJ0aWNsZV9fQXJ0aWNsZUNhcmRDb250YWluZXItc2MtMWM1YjczNjQtMCJde2NvbnRlbnQ6ImtqU2xnZiwifS8qIXNjKi8KLmVNdEphUXtnYXA6dmFyKC0tc3BhY2UtMik7ZGlzcGxheTpncmlkOy0tZ2FwLWNvdW50OmNhbGModmFyKC0tbWF4LWNvbHVtbi1jb3VudCkgLSAxKTstLXRvdGFsLWdhcC13aWR0aDpjYWxjKHZhcigtLWdhcC1jb3VudCkgKiB2YXIoLS1zcGFjZS0yKSk7LS1pdGVtLW1heC13aWR0aDpjYWxjKCAoMTAwJSAtIHZhcigtLXRvdGFsLWdhcC13aWR0aCkpIC8gdmFyKC0tbWF4LWNvbHVtbi1jb3VudCkgKTtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KCBhdXRvLWZpbGwsbWlubWF4KG1heCh2YXIoLS1pdGVtLW1pbi13aWR0aCksdmFyKC0taXRlbS1tYXgtd2lkdGgpKSwxZnIpICk7fS8qIXNjKi8KZGF0YS1zdHlsZWQuZzIwOFtpZD0iQ0RYR2FsbGVyeUdyaWRfX1N0eWxlZEdyaWQtc2MtZDhiOTgzYzgtMCJde2NvbnRlbnQ6ImVNdEphUSwifS8qIXNjKi8KLmdRV2VkVnt3aWR0aDphdXRvO2hlaWdodDoxMDAlO30vKiFzYyovCmRhdGEtc3R5bGVkLmcyMTBbaWQ9IkNEWEJhc2VIZXJvX19TdHlsZWRDRFhJbWFnZS1zYy04NWY5ZjJmZC0wIl17Y29udGVudDoiZ1FXZWRWLCJ9Lyohc2MqLwouaERyVEhmIHArcHttYXJnaW4tdG9wOnZhcigtLXNwYWNlLTIpO30vKiFzYyovCmRhdGEtc3R5bGVkLmcyMTRbaWQ9IkNEWEZlYXR1cmVIaWdobGlnaHRzSXRlbV9fUGFyYWdyYXBoV3JhcHBlci1zYy1kMmE5ZTQ5OS0xIl17Y29udGVudDoiaERyVEhmLCJ9Lyohc2MqLwouZDEtZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7fS8qIXNjKi8KLmQxLWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwouZDEtZnN7Zm9udC1zaXplOjY0cHg7LS1jZHgtc3VwZXJzY3JpcHQtZm9udC1zaXplOjI1JTt9Lyohc2MqLwouZDEtbGh7bGluZS1oZWlnaHQ6NjRweDt9Lyohc2MqLwouZDItZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7fS8qIXNjKi8KLmQyLWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwouZDItZnN7Zm9udC1zaXplOjUycHg7LS1jZHgtc3VwZXJzY3JpcHQtZm9udC1zaXplOjI1JTt9Lyohc2MqLwouZDItbGh7bGluZS1oZWlnaHQ6NTJweDt9Lyohc2MqLwouZDMtZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7fS8qIXNjKi8KLmQzLWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwouZDMtZnN7Zm9udC1zaXplOjQ0cHg7LS1jZHgtc3VwZXJzY3JpcHQtZm9udC1zaXplOjI1JTt9Lyohc2MqLwouZDMtbGh7bGluZS1oZWlnaHQ6NDRweDt9Lyohc2MqLwouZDQtZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7fS8qIXNjKi8KLmQ0LWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwouZDQtZnN7Zm9udC1zaXplOjQwcHg7LS1jZHgtc3VwZXJzY3JpcHQtZm9udC1zaXplOjI1JTt9Lyohc2MqLwouZDQtbGh7bGluZS1oZWlnaHQ6NDBweDt9Lyohc2MqLwoudDEtZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7fS8qIXNjKi8KLnQxLWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwoudDEtZnN7Zm9udC1zaXplOjM2cHg7LS1jZHgtc3VwZXJzY3JpcHQtZm9udC1zaXplOjMwJTt9Lyohc2MqLwoudDEtbGh7bGluZS1oZWlnaHQ6NDBweDt9Lyohc2MqLwoudDItZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7fS8qIXNjKi8KLnQyLWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwoudDItZnN7Zm9udC1zaXplOjMycHg7LS1jZHgtc3VwZXJzY3JpcHQtZm9udC1zaXplOjMwJTt9Lyohc2MqLwoudDItbGh7bGluZS1oZWlnaHQ6MzZweDt9Lyohc2MqLwoudDMtZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtc2Fucyk7fS8qIXNjKi8KLnQzLWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwoudDMtZnN7Zm9udC1zaXplOjI4cHg7LS1jZHgtc3VwZXJzY3JpcHQtZm9udC1zaXplOjMwJTt9Lyohc2MqLwoudDMtbGh7bGluZS1oZWlnaHQ6MzJweDt9Lyohc2MqLwoudDQtZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtc2Fucyk7fS8qIXNjKi8KLnQ0LWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwoudDQtZnN7Zm9udC1zaXplOjI0cHg7LS1jZHgtc3VwZXJzY3JpcHQtZm9udC1zaXplOjMwJTt9Lyohc2MqLwoudDQtbGh7bGluZS1oZWlnaHQ6MjhweDt9Lyohc2MqLwoudDUtZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtc2Fucyk7fS8qIXNjKi8KLnQ1LWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwoudDUtZnN7Zm9udC1zaXplOjIwcHg7LS1jZHgtc3VwZXJzY3JpcHQtZm9udC1zaXplOjMwJTt9Lyohc2MqLwoudDUtbGh7bGluZS1oZWlnaHQ6MjRweDt9Lyohc2MqLwouaC1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1zYW5zKTt9Lyohc2MqLwouaC1md3tmb250LXdlaWdodDo2MDA7fS8qIXNjKi8KLmgtZnN7Zm9udC1zaXplOjIwcHg7LS1jZHgtc3VwZXJzY3JpcHQtZm9udC1zaXplOjUwJTt9Lyohc2MqLwouaC1saHtsaW5lLWhlaWdodDoyOHB4O30vKiFzYyovCi5iLWZme2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1mb250LXRleHQpO30vKiFzYyovCi5iLWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwouYi1mc3tmb250LXNpemU6MThweDt9Lyohc2MqLwouYi1saHtsaW5lLWhlaWdodDoyOHB4O30vKiFzYyovCi5sMS1mZntmb250LWZhbWlseTp2YXIoLS1jZHMtZm9udC1zYW5zKTt9Lyohc2MqLwoubDEtZnd7Zm9udC13ZWlnaHQ6NjAwO30vKiFzYyovCi5sMS1mc3tmb250LXNpemU6MThweDt9Lyohc2MqLwoubDEtbGh7bGluZS1oZWlnaHQ6MjRweDt9Lyohc2MqLwoubDItZmZ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWZvbnQtc2Fucyk7fS8qIXNjKi8KLmwyLWZ3e2ZvbnQtd2VpZ2h0OjYwMDt9Lyohc2MqLwoubDItZnN7Zm9udC1zaXplOjE2cHg7fS8qIXNjKi8KLmwyLWxoe2xpbmUtaGVpZ2h0OjIwcHg7fS8qIXNjKi8KLmwzLWZme2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1mb250LXNhbnMpO30vKiFzYyovCi5sMy1md3tmb250LXdlaWdodDo2MDA7fS8qIXNjKi8KLmwzLWZze2ZvbnQtc2l6ZToxM3B4O30vKiFzYyovCi5sMy1saHtsaW5lLWhlaWdodDoxNnB4O30vKiFzYyovCi5jLWZme2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1mb250LXRleHQpO30vKiFzYyovCi5jLWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwouYy1mc3tmb250LXNpemU6MTZweDt9Lyohc2MqLwouYy1saHtsaW5lLWhlaWdodDoyNHB4O30vKiFzYyovCi5sLWZme2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1mb250LXRleHQpO30vKiFzYyovCi5sLWZ3e2ZvbnQtd2VpZ2h0OjQwMDt9Lyohc2MqLwoubC1mc3tmb250LXNpemU6MTNweDt9Lyohc2MqLwoubC1saHtsaW5lLWhlaWdodDoyMHB4O30vKiFzYyovCkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpey5kMS1mcy1ke2ZvbnQtc2l6ZTo5NnB4O30uZDItZnMtZHtmb250LXNpemU6ODBweDt9LmQzLWZzLWR7Zm9udC1zaXplOjY0cHg7fS5kNC1mcy1ke2ZvbnQtc2l6ZTo1MnB4O30udDEtZnMtZHtmb250LXNpemU6NDRweDt9LnQyLWZzLWR7Zm9udC1zaXplOjQwcHg7fS50My1mcy1ke2ZvbnQtc2l6ZTozNnB4O30udDQtZnMtZHtmb250LXNpemU6MzJweDt9LnQ1LWZzLWR7Zm9udC1zaXplOjI4cHg7fS5kMS1saC1ke2xpbmUtaGVpZ2h0Ojk2cHg7fS5kMi1saC1ke2xpbmUtaGVpZ2h0OjgwcHg7fS5kMy1saC1ke2xpbmUtaGVpZ2h0OjY0cHg7fS5kNC1saC1ke2xpbmUtaGVpZ2h0OjUycHg7fS50MS1saC1ke2xpbmUtaGVpZ2h0OjQ4cHg7fS50Mi1saC1ke2xpbmUtaGVpZ2h0OjQ0cHg7fS50My1saC1ke2xpbmUtaGVpZ2h0OjQwcHg7fS50NC1saC1ke2xpbmUtaGVpZ2h0OjM2cHg7fS50NS1saC1ke2xpbmUtaGVpZ2h0OjMycHg7fX0vKiFzYyovCkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEyNzlweCl7LmQxLWZzLXR7Zm9udC1zaXplOjgwcHg7fS5kMi1mcy10e2ZvbnQtc2l6ZTo2NHB4O30uZDMtZnMtdHtmb250LXNpemU6NTJweDt9LmQ0LWZzLXR7Zm9udC1zaXplOjQ0cHg7fS50MS1mcy10e2ZvbnQtc2l6ZTo0MHB4O30udDItZnMtdHtmb250LXNpemU6MzZweDt9LnQzLWZzLXR7Zm9udC1zaXplOjMycHg7fS50NC1mcy10e2ZvbnQtc2l6ZToyOHB4O30udDUtZnMtdHtmb250LXNpemU6MjRweDt9LmQxLWxoLXR7bGluZS1oZWlnaHQ6ODBweDt9LmQyLWxoLXR7bGluZS1oZWlnaHQ6NjRweDt9LmQzLWxoLXR7bGluZS1oZWlnaHQ6NTJweDt9LmQ0LWxoLXR7bGluZS1oZWlnaHQ6NDRweDt9LnQxLWxoLXR7bGluZS1oZWlnaHQ6NDRweDt9LnQyLWxoLXR7bGluZS1oZWlnaHQ6NDBweDt9LnQzLWxoLXR7bGluZS1oZWlnaHQ6MzZweDt9LnQ0LWxoLXR7bGluZS1oZWlnaHQ6MzJweDt9LnQ1LWxoLXR7bGluZS1oZWlnaHQ6MjhweDt9fS8qIXNjKi8KQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KXsuZDEtZnMtbXtmb250LXNpemU6NjRweDt9LmQyLWZzLW17Zm9udC1zaXplOjUycHg7fS5kMy1mcy1te2ZvbnQtc2l6ZTo0NHB4O30uZDQtZnMtbXtmb250LXNpemU6NDBweDt9LnQxLWZzLW17Zm9udC1zaXplOjM2cHg7fS50Mi1mcy1te2ZvbnQtc2l6ZTozMnB4O30udDMtZnMtbXtmb250LXNpemU6MjhweDt9LnQ0LWZzLW17Zm9udC1zaXplOjI0cHg7fS50NS1mcy1te2ZvbnQtc2l6ZToyMHB4O30uZDEtbGgtbXtsaW5lLWhlaWdodDo2NHB4O30uZDItbGgtbXtsaW5lLWhlaWdodDo1MnB4O30uZDMtbGgtbXtsaW5lLWhlaWdodDo0NHB4O30uZDQtbGgtbXtsaW5lLWhlaWdodDo0MHB4O30udDEtbGgtbXtsaW5lLWhlaWdodDo0MHB4O30udDItbGgtbXtsaW5lLWhlaWdodDozNnB4O30udDMtbGgtbXtsaW5lLWhlaWdodDozMnB4O30udDQtbGgtbXtsaW5lLWhlaWdodDoyOHB4O30udDUtbGgtbXtsaW5lLWhlaWdodDoyNHB4O319Lyohc2MqLwpkYXRhLXN0eWxlZC5nMjE5W2lkPSJzYy1nbG9iYWwtanR1a0JpMiJde2NvbnRlbnQ6InNjLWdsb2JhbC1qdHVrQmkyLCJ9Lyohc2MqLwouY0lxUW55OmhvdmVye2JhY2tncm91bmQ6cmdiKHZhcigtLWdyYXkxMCkpO30vKiFzYyovCi5jSXFRbnk6YWN0aXZle2JhY2tncm91bmQ6cmdiKHZhcigtLWdyYXkxNSkpO30vKiFzYyovCmRhdGEtc3R5bGVkLmc0OTZbaWQ9IkZlYXR1cmVBc3NldHNSb3dfX1Jvd0NvbnRhaW5lci1zYy1kNmFiYzZjOC0wIl17Y29udGVudDoiY0lxUW55LCJ9Lyohc2MqLwo8L3N0eWxlPgogICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj57IkBjb250ZXh0IjoiaHR0cDovL3NjaGVtYS5vcmciLCJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsInVybCI6Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbSIsImxvZ28iOiJodHRwczovL3d3dy5jb2luYmFzZS5jb20vaW1hZ2VzL2xvZ28ucG5nIiwiY29udGFjdFBvaW50IjpbeyJAdHlwZSI6IkNvbnRhY3RQb2ludCIsInRlbGVwaG9uZSI6IisxLTg4OC05MDjigJM3OTMwIiwiY29udGFjdFR5cGUiOiJDdXN0b21lciBzdXBwb3J0In1dfTwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiIGNyb3Nzb3JpZ2luIHNyYz0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2Fzc2V0cy9zdy1jYWNoZS9lX0NycVJXMXdQLmpzIj48L3NjcmlwdD4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8ZGl2IGlkPSJyb290Ij48bGluayByZWw9InByZWxvYWQiIGFzPSJpbWFnZSIgaHJlZj0iaHR0cHM6Ly9zdGF0aWMtYXNzZXRzLmNvaW5iYXNlLmNvbS91aS1pbmZyYS9pbGx1c3RyYXRpb24vdjEvcGljdG9ncmFtL3N2Zy9saWdodC9jb2luYmFzZUxvZ29OYXZpZ2F0aW9uLTQuc3ZnIi8+PGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0iaW1hZ2UiIGhyZWY9Imh0dHBzOi8vZHluYW1pYy1hc3NldHMuY29pbmJhc2UuY29tL2U3ODVlMDE4MWYxYTIzYTMwZDk0NzYwMzhkOWJlOTFlOWY2YzYzOTU5YjUzOGVhYmJjNTFhMWFiYzg4OTg5NDAzODMyOTFlZWRlNjk1YzNiOGRmYWExODI5YTliNTdmNWEyZDBhMTZiMDUyMzU4MDM0NmM2YjhmYWI2N2FmMTRiL2Fzc2V0X2ljb25zL2I1N2FjNjczZjA2YTRiMDMzOGE1OTY4MTdlYjBhNTBjZTE2ZTIwNTlmMzI3ZGMxMTc3NDQ0NDlhNDc5MTVjYjIucG5nIi8+PGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0iaW1hZ2UiIGhyZWY9Imh0dHBzOi8vZHluYW1pYy1hc3NldHMuY29pbmJhc2UuY29tL2RiYjRiNDk4M2JkZTgxMzA5ZGRhYjgzZWI1OTgzNThlYjQ0Mzc1YjkzMGI5NDY4N2ViZTM4YmMyMmU1MmMzYjIxMjUyNThmZmI4NDc3YTVlZjIyZTMzZDZiZDcyZTMyYTUwNmMzOTFjYWExM2FmNjRjMDBlNDY2MTNjM2U1ODA2L2Fzc2V0X2ljb25zLzQxMTNiMDgyZDIxY2M1ZmFiMTdmYzhmMmQxOWZiOTk2MTY1YmNjZTYzNWU2OTAwZjdmYzJkNTdjNGVmMzNhZTkucG5nIi8+PGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0iaW1hZ2UiIGhyZWY9Imh0dHBzOi8vZHluYW1pYy1hc3NldHMuY29pbmJhc2UuY29tLzQxZjZhOTNhM2EyMjIwNzhjOTM5MTE1ZmMzMDRhNjdjMzg0ODg2YjdhOWU2YzE1ZGNiZmE2NTE5ZGM0NWY2YmI0YTU4NmU5YzQ4NTM1ZDA5OWVmYTU5NmRiZjhhOWRkNzJiMDU4MTViY2QzMmFjNjUwYzUwYWJiNTM5MWE1YmQwL2Fzc2V0X2ljb25zLzFmODQ4OWJiMjgwZmIwYTBmZDY0M2MxMTYxMzEyYmE0OTY1NTA0MGU5YWFhY2VkNWY5YWQzZWVhZjg2OGVhZGMucG5nIi8+PGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0iaW1hZ2UiIGhyZWY9Imh0dHBzOi8vYXNzZXQtbWV0YWRhdGEtc2VydmljZS1wcm9kdWN0aW9uLnMzLmFtYXpvbmF3cy5jb20vYXNzZXRfaWNvbnMvYzM0N2I2ZDFhNzYyNGUyNGM0ZTkwMDg5YTY5ZGZjOGZiNzU1MjNkYWY4ZWViODgwMDczNzJhMGMzYTMwZDQyOC5wbmciLz48bGluayByZWw9InByZWxvYWQiIGFzPSJpbWFnZSIgaHJlZj0iaHR0cHM6Ly9keW5hbWljLWFzc2V0cy5jb2luYmFzZS5jb20vM2MxNWRmNWUyYWM3ZDRhYmJlOTQ5OWVkOTMzNTA0MWYwMGM2MjBmMjhlOGRlMmY5MzQ3NGE5ZjQzMjA1ODc0MmNkZjQ2NzRiZDQzZjMwOWU2OTc3OGEyNjk2OTM3MjMxMDEzNWJlOTdlYjE4M2Q5MWM0OTIxNTQxNzZkNDU1YjgvYXNzZXRfaWNvbnMvOWQ2N2I3MjhiNmM4ZjQ1NzcxNzE1NGIzYTM1ZjlkZGM3MDJlYWU3ZTc2YzQ2ODRlZTM5MzAyYzRkN2ZkMGJiOC5wbmciLz48bGluayByZWw9InByZWxvYWQiIGFzPSJpbWFnZSIgaHJlZj0iaHR0cHM6Ly9keW5hbWljLWFzc2V0cy5jb2luYmFzZS5jb20vZTgxNTA5ZDIzMDdmNzA2ZjNhNmY4OTk5OTY4ODc0YjUwYjYyODYzNGFiZjUxNTRmYzkxYTdlNWY3Njg1ZDQ5NmEzM2FjYjRjZGUwMjI2NWVkNmY1NGIwYTA4ZmE1NDkxMjIwODUxNmU5NTZiYzVmMGZmZDFjOWMyNjM0MDk5YWUvYXNzZXRfaWNvbnMvM2FmNGIzM2JkZTMwMTJmZDI5ZGQxMzY2YjBhZDczNzY2MGYyNGFjYzkxNzUwZWUzMGEwMzRhMDY3OTI1NmQwYi5wbmciLz48IS0tJC0tPjxkaXYgY2xhc3M9ImNvaW5iYXNlIGxpZ2h0IiBzdHlsZT0iLS1saWdodC1ibHVlMDoyNDUsMjQ4LDI1NTstLWxpZ2h0LWJsdWU1OjIxMSwyMjUsMjU1Oy0tbGlnaHQtYmx1ZTEwOjE3NiwyMDIsMjU1Oy0tbGlnaHQtYmx1ZTE1OjE0NiwxODIsMjU1Oy0tbGlnaHQtYmx1ZTIwOjExNSwxNjIsMjU1Oy0tbGlnaHQtYmx1ZTMwOjcwLDEzMiwyNTU7LS1saWdodC1ibHVlNDA6MzgsMTEwLDI1NTstLWxpZ2h0LWJsdWU1MDoxNiw5NCwyNTU7LS1saWdodC1ibHVlNjA6MCw4MiwyNTU7LS1saWdodC1ibHVlNzA6MCw3NSwyMzU7LS1saWdodC1ibHVlODA6MCw2MiwxOTM7LS1saWdodC1ibHVlOTA6MCw0MSwxMzA7LS1saWdodC1ibHVlMTAwOjAsMjQsNzc7LS1saWdodC1ncmVlbjA6MjQ1LDI1NSwyNTE7LS1saWdodC1ncmVlbjU6MjAzLDI0NSwyMjc7LS1saWdodC1ncmVlbjEwOjE2MywyMzUsMjA1Oy0tbGlnaHQtZ3JlZW4xNToxMzEsMjI0LDE4NjstLWxpZ2h0LWdyZWVuMjA6MTAxLDIxNCwxNjc7LS1saWdodC1ncmVlbjMwOjYwLDE5NCwxMzg7LS1saWdodC1ncmVlbjQwOjM0LDE3MywxMTU7LS1saWdodC1ncmVlbjUwOjE4LDE1Myw5NzstLWxpZ2h0LWdyZWVuNjA6OSwxMzMsODE7LS1saWdodC1ncmVlbjcwOjQsMTEyLDY3Oy0tbGlnaHQtZ3JlZW44MDoyLDgzLDUwOy0tbGlnaHQtZ3JlZW45MDowLDU3LDM1Oy0tbGlnaHQtZ3JlZW4xMDA6MCwzMSwxODstLWxpZ2h0LW9yYW5nZTA6MjU1LDI1MCwyNDU7LS1saWdodC1vcmFuZ2U1OjI1NCwyMzIsMjEwOy0tbGlnaHQtb3JhbmdlMTA6MjUzLDIxMywxNzY7LS1saWdodC1vcmFuZ2UxNToyNTEsMTk0LDE0NzstLWxpZ2h0LW9yYW5nZTIwOjI0OSwxNzQsMTE4Oy0tbGlnaHQtb3JhbmdlMzA6MjQ0LDE0MCw3NjstLWxpZ2h0LW9yYW5nZTQwOjIzNywxMTIsNDc7LS1saWdodC1vcmFuZ2U1MDoyMjUsODksMjc7LS1saWdodC1vcmFuZ2U2MDoyMDcsNzEsMTQ7LS1saWdodC1vcmFuZ2U3MDoxODEsNTQsNjstLWxpZ2h0LW9yYW5nZTgwOjE0NSwzOSwyOy0tbGlnaHQtb3JhbmdlOTA6MTAwLDI2LDA7LS1saWdodC1vcmFuZ2UxMDA6NTEsMTMsMDstLWxpZ2h0LWdyYXkwOjI1NSwyNTUsMjU1Oy0tbGlnaHQtZ3JheTU6MjQ3LDI0OCwyNDk7LS1saWdodC1ncmF5MTA6MjM4LDI0MCwyNDM7LS1saWdodC1ncmF5MTU6MjIyLDIyNSwyMzE7LS1saWdodC1ncmF5MjA6MjA2LDIxMCwyMTk7LS1saWdodC1ncmF5MzA6MTc3LDE4MywxOTU7LS1saWdodC1ncmF5NDA6MTM3LDE0NCwxNTg7LS1saWdodC1ncmF5NTA6MTEzLDEyMCwxMzQ7LS1saWdodC1ncmF5NjA6OTEsOTcsMTEwOy0tbGlnaHQtZ3JheTcwOjcwLDc1LDg1Oy0tbGlnaHQtZ3JheTgwOjUwLDUzLDYxOy0tbGlnaHQtZ3JheTkwOjMwLDMyLDM3Oy0tbGlnaHQtZ3JheTEwMDoxMCwxMSwxMzstLWxpZ2h0LWluZGlnbzA6MjQ2LDI0NywyNTU7LS1saWdodC1pbmRpZ281OjIzMCwyMzIsMjU1Oy0tbGlnaHQtaW5kaWdvMTA6MjE0LDIxOCwyNTQ7LS1saWdodC1pbmRpZ28xNToxOTgsMjA0LDI1MzstLWxpZ2h0LWluZGlnbzIwOjE4MSwxODksMjUzOy0tbGlnaHQtaW5kaWdvMzA6MTQ4LDE2MSwyNTE7LS1saWdodC1pbmRpZ280MDoxMTYsMTM1LDI0NzstLWxpZ2h0LWluZGlnbzUwOjg5LDExMSwyNDI7LS1saWdodC1pbmRpZ282MDo2Niw5MSwyMzM7LS1saWdodC1pbmRpZ283MDo0Nyw3NCwyMTU7LS1saWdodC1pbmRpZ284MDozMSw1NCwxNzM7LS1saWdodC1pbmRpZ285MDoxNywzMiwxMDc7LS1saWdodC1pbmRpZ28xMDA6OCwxNSw1MTstLWxpZ2h0LXBpbmswOjI1NSwyNDUsMjU1Oy0tbGlnaHQtcGluazU6MjUzLDIyOCwyNTM7LS1saWdodC1waW5rMTA6MjUxLDIxMiwyNTA7LS1saWdodC1waW5rMTU6MjQ4LDE5NSwyNDU7LS1saWdodC1waW5rMjA6MjQ0LDE3OCwyNDA7LS1saWdodC1waW5rMzA6MjM1LDE0MywyMjc7LS1saWdodC1waW5rNDA6MjIxLDExMCwyMDk7LS1saWdodC1waW5rNTA6MjAzLDgxLDE4NzstLWxpZ2h0LXBpbms2MDoxNzksNTgsMTYyOy0tbGlnaHQtcGluazcwOjE0OSwzOSwxMzM7LS1saWdodC1waW5rODA6MTE2LDI2LDEwMjstLWxpZ2h0LXBpbms5MDo4MywxNyw3MjstLWxpZ2h0LXBpbmsxMDA6NTEsMTAsNDQ7LS1saWdodC1wdXJwbGUwOjI1MSwyNDcsMjU1Oy0tbGlnaHQtcHVycGxlNToyNDQsMjMyLDI1NTstLWxpZ2h0LXB1cnBsZTEwOjIzNywyMTcsMjU1Oy0tbGlnaHQtcHVycGxlMTU6MjMwLDIwMSwyNTU7LS1saWdodC1wdXJwbGUyMDoyMjIsMTg0LDI1NTstLWxpZ2h0LXB1cnBsZTMwOjIwNSwxNTMsMjUzOy0tbGlnaHQtcHVycGxlNDA6MTg4LDEyMywyNTE7LS1saWdodC1wdXJwbGU1MDoxNTcsMTA3LDI0MjstLWxpZ2h0LXB1cnBsZTYwOjEzOCw4NSwyMzM7LS1saWdodC1wdXJwbGU3MDoxMTksNjcsMjE1Oy0tbGlnaHQtcHVycGxlODA6OTAsNDgsMTczOy0tbGlnaHQtcHVycGxlOTA6NTQsMjcsMTA3Oy0tbGlnaHQtcHVycGxlMTAwOjI1LDEzLDUxOy0tbGlnaHQtcmVkMDoyNTUsMjQ1LDI0NjstLWxpZ2h0LXJlZDU6MjU0LDIyNSwyMjg7LS1saWdodC1yZWQxMDoyNTMsMjA2LDIxMDstLWxpZ2h0LXJlZDE1OjI1MSwxODYsMTkxOy0tbGlnaHQtcmVkMjA6MjQ5LDE2NiwxNzM7LS1saWdodC1yZWQzMDoyNDQsMTI3LDEzNjstLWxpZ2h0LXJlZDQwOjIzNyw4OSwxMDI7LS1saWdodC1yZWQ1MDoyMjUsNTcsNzE7LS1saWdodC1yZWQ2MDoyMDcsMzIsNDc7LS1saWdodC1yZWQ3MDoxODEsMTUsMjk7LS1saWdodC1yZWQ4MDoxNDUsNSwxNjstLWxpZ2h0LXJlZDkwOjEwMCwxLDk7LS1saWdodC1yZWQxMDA6NTEsMCw0Oy0tbGlnaHQtdGVhbDA6MjQwLDI1NCwyNTU7LS1saWdodC10ZWFsNToxODgsMjQ2LDI1MzstLWxpZ2h0LXRlYWwxMDoxMzYsMjM3LDI1MTstLWxpZ2h0LXRlYWwxNTo5MywyMjYsMjQ4Oy0tbGlnaHQtdGVhbDIwOjUxLDIxMywyNDQ7LS1saWdodC10ZWFsMzA6MCwxODgsMjM1Oy0tbGlnaHQtdGVhbDQwOjAsMTY5LDIyMTstLWxpZ2h0LXRlYWw1MDowLDE0NywyMDM7LS1saWdodC10ZWFsNjA6MCwxMjMsMTc5Oy0tbGlnaHQtdGVhbDcwOjAsOTcsMTQ5Oy0tbGlnaHQtdGVhbDgwOjAsNzEsMTE2Oy0tbGlnaHQtdGVhbDkwOjAsNDcsODM7LS1saWdodC10ZWFsMTAwOjAsMjcsNTE7LS1saWdodC15ZWxsb3cwOjI1NSwyNTIsMjQxOy0tbGlnaHQteWVsbG93NToyNTUsMjQ0LDE5MjstLWxpZ2h0LXllbGxvdzEwOjI1NSwyNDAsMTQ1Oy0tbGlnaHQteWVsbG93MTU6MjU1LDIzNCwxMDA7LS1saWdodC15ZWxsb3cyMDoyNTUsMjI4LDU0Oy0tbGlnaHQteWVsbG93MzA6MjQ3LDIxMCwyNjstLWxpZ2h0LXllbGxvdzQwOjIzNSwxODYsMDstLWxpZ2h0LXllbGxvdzUwOjIwNywxNTEsMDstLWxpZ2h0LXllbGxvdzYwOjE3NCwxMTMsMDstLWxpZ2h0LXllbGxvdzcwOjEzNiw3NiwwOy0tbGlnaHQteWVsbG93ODA6OTYsNDgsMDstLWxpZ2h0LXllbGxvdzkwOjU4LDIwLDA7LS1saWdodC15ZWxsb3cxMDA6MjcsNiwwOy0tbGlnaHQtY2hhcnRyZXVzZTA6MjQ1LDI1NSwyNTA7LS1saWdodC1jaGFydHJldXNlNToyMjEsMjUxLDIzMjstLWxpZ2h0LWNoYXJ0cmV1c2UxMDoxOTgsMjQ3LDIwOTstLWxpZ2h0LWNoYXJ0cmV1c2UxNToxNzYsMjQyLDE4MjstLWxpZ2h0LWNoYXJ0cmV1c2UyMDoxNTksMjM4LDE1NTstLWxpZ2h0LWNoYXJ0cmV1c2UzMDoxMzcsMjIzLDExNzstLWxpZ2h0LWNoYXJ0cmV1c2U0MDoxMjcsMjA4LDg3Oy0tbGlnaHQtY2hhcnRyZXVzZTUwOjg2LDE3OSw2NDstLWxpZ2h0LWNoYXJ0cmV1c2U2MDo1MywxNTEsNDg7LS1saWdodC1jaGFydHJldXNlNzA6MzUsMTIyLDQzOy0tbGlnaHQtY2hhcnRyZXVzZTgwOjI1LDkzLDQxOy0tbGlnaHQtY2hhcnRyZXVzZTkwOjE3LDY0LDM1Oy0tbGlnaHQtY2hhcnRyZXVzZTEwMDo3LDI2LDE3Oy0tZGFyay1ibHVlMDowLDE2LDUxOy0tZGFyay1ibHVlNToxLDI5LDkxOy0tZGFyay1ibHVlMTA6MSw0MiwxMzA7LS1kYXJrLWJsdWUxNTozLDUxLDE1NDstLWRhcmstYmx1ZTIwOjUsNTksMTc3Oy0tZGFyay1ibHVlMzA6MTAsNzIsMjA2Oy0tZGFyay1ibHVlNDA6MTksODQsMjI1Oy0tZGFyay1ibHVlNTA6MzMsOTgsMjM4Oy0tZGFyay1ibHVlNjA6NTUsMTE1LDI0NTstLWRhcmstYmx1ZTcwOjg3LDEzOSwyNTA7LS1kYXJrLWJsdWU4MDoxMzIsMTcwLDI1MzstLWRhcmstYmx1ZTkwOjE4NSwyMDcsMjU1Oy0tZGFyay1ibHVlMTAwOjI0NSwyNDgsMjU1Oy0tZGFyay1ncmVlbjA6MCwzMSwxODstLWRhcmstZ3JlZW41OjAsNDgsMjk7LS1kYXJrLWdyZWVuMTA6MSw3MCw0MjstLWRhcmstZ3JlZW4xNToyLDgyLDQ4Oy0tZGFyay1ncmVlbjIwOjIsOTIsNTU7LS1kYXJrLWdyZWVuMzA6NiwxMTIsNjg7LS1kYXJrLWdyZWVuNDA6MTEsMTMzLDgyOy0tZGFyay1ncmVlbjUwOjIxLDE1Myw5ODstLWRhcmstZ3JlZW42MDozOSwxNzMsMTE3Oy0tZGFyay1ncmVlbjcwOjY4LDE5NCwxNDE7LS1kYXJrLWdyZWVuODA6MTExLDIxNCwxNzE7LS1kYXJrLWdyZWVuOTA6MTcxLDIzNSwyMDg7LS1kYXJrLWdyZWVuMTAwOjI0NSwyNTUsMjUxOy0tZGFyay1vcmFuZ2UwOjUxLDEzLDA7LS1kYXJrLW9yYW5nZTU6NzksMjAsMDstLWRhcmstb3JhbmdlMTA6MTA3LDI4LDE7LS1kYXJrLW9yYW5nZTE1OjEzMSwzNiwyOy0tZGFyay1vcmFuZ2UyMDoxNTUsNDQsNDstLWRhcmstb3JhbmdlMzA6MTg5LDU5LDk7LS1kYXJrLW9yYW5nZTQwOjIxMyw3NiwxODstLWRhcmstb3JhbmdlNTA6MjMwLDk2LDMyOy0tZGFyay1vcmFuZ2U2MDoyNDAsMTIwLDU0Oy0tZGFyay1vcmFuZ2U3MDoyNDgsMTUwLDg2Oy0tZGFyay1vcmFuZ2U4MDoyNTIsMTg1LDEzMTstLWRhcmstb3JhbmdlOTA6MjU0LDIxOSwxODU7LS1kYXJrLW9yYW5nZTEwMDoyNTUsMjUwLDI0NTstLWRhcmstZ3JheTA6MTAsMTEsMTM7LS1kYXJrLWdyYXk1OjIwLDIxLDI1Oy0tZGFyay1ncmF5MTA6MzAsMzIsMzc7LS1kYXJrLWdyYXkxNTo0MCw0Myw0OTstLWRhcmstZ3JheTIwOjUwLDUzLDYxOy0tZGFyay1ncmF5MzA6NzAsNzUsODU7LS1kYXJrLWdyYXk0MDo5MSw5NywxMTA7LS1kYXJrLWdyYXk1MDoxMTQsMTIwLDEzNDstLWRhcmstZ3JheTYwOjEzOCwxNDUsMTU4Oy0tZGFyay1ncmF5NzA6MTY1LDE3MCwxODI7LS1kYXJrLWdyYXk4MDoxOTMsMTk4LDIwNzstLWRhcmstZ3JheTkwOjIyNCwyMjYsMjMxOy0tZGFyay1ncmF5MTAwOjI1NSwyNTUsMjU1Oy0tZGFyay1pbmRpZ28wOjgsMTUsNTE7LS1kYXJrLWluZGlnbzU6MTQsMjcsOTE7LS1kYXJrLWluZGlnbzEwOjIxLDM5LDEzMDstLWRhcmstaW5kaWdvMTU6MjcsNDcsMTU0Oy0tZGFyay1pbmRpZ28yMDozMyw1NiwxNzc7LS1kYXJrLWluZGlnbzMwOjQ4LDczLDIwNjstLWRhcmstaW5kaWdvNDA6NjgsOTIsMjI1Oy0tZGFyay1pbmRpZ281MDo5MiwxMTMsMjM4Oy0tZGFyay1pbmRpZ282MDoxMjEsMTM4LDI0NTstLWRhcmstaW5kaWdvNzA6MTUzLDE2NSwyNTA7LS1kYXJrLWluZGlnbzgwOjE4NywxOTQsMjUzOy0tZGFyay1pbmRpZ285MDoyMTksMjIzLDI1NTstLWRhcmstaW5kaWdvMTAwOjI0NiwyNDcsMjU1Oy0tZGFyay1waW5rMDo1MSwxMCw0NDstLWRhcmstcGluazU6NzAsMTQsNjE7LS1kYXJrLXBpbmsxMDo4OSwxOSw3ODstLWRhcmstcGluazE1OjEwOCwyNCw5NDstLWRhcmstcGluazIwOjEyNiwzMCwxMTE7LS1kYXJrLXBpbmszMDoxNTksNDQsMTQyOy0tZGFyay1waW5rNDA6MTg3LDY0LDE3MDstLWRhcmstcGluazUwOjIwOCw4OCwxOTM7LS1kYXJrLXBpbms2MDoyMjUsMTE3LDIxNDstLWRhcmstcGluazcwOjIzNywxNDksMjMwOy0tZGFyay1waW5rODA6MjQ2LDE4NCwyNDM7LS1kYXJrLXBpbms5MDoyNTIsMjE3LDI1MTstLWRhcmstcGluazEwMDoyNTUsMjQ1LDI1NTstLWRhcmstcHVycGxlMDoyNSwxMyw1MTstLWRhcmstcHVycGxlNTo0MywyMiw4OTstLWRhcmstcHVycGxlMTA6NzMsMzAsMTM3Oy0tZGFyay1wdXJwbGUxNTo5NywzNywxNzU7LS1kYXJrLXB1cnBsZTIwOjEyMyw0NSwyMTE7LS1kYXJrLXB1cnBsZTMwOjE0Miw1MSwyMzQ7LS1kYXJrLXB1cnBsZTQwOjE2NCw4NCwyNDQ7LS1kYXJrLXB1cnBsZTUwOjE4OCwxMjMsMjUxOy0tZGFyay1wdXJwbGU2MDoyMDUsMTUzLDI1MzstLWRhcmstcHVycGxlNzA6MjE3LDE3NiwyNTQ7LS1kYXJrLXB1cnBsZTgwOjIzMCwyMDEsMjU1Oy0tZGFyay1wdXJwbGU5MDoyMzcsMjE3LDI1NTstLWRhcmstcHVycGxlMTAwOjI1MSwyNDcsMjU1Oy0tZGFyay1yZWQwOjUxLDAsNDstLWRhcmstcmVkNTo3OSwwLDc7LS1kYXJrLXJlZDEwOjEwNywxLDEwOy0tZGFyay1yZWQxNToxMzEsNCwxNDstLWRhcmstcmVkMjA6MTU1LDcsMTk7LS1kYXJrLXJlZDMwOjE4OSwxOSwzMzstLWRhcmstcmVkNDA6MjEzLDM4LDUyOy0tZGFyay1yZWQ1MDoyMzAsNjQsNzg7LS1kYXJrLXJlZDYwOjI0MCw5NywxMDk7LS1kYXJrLXJlZDcwOjI0OCwxMzQsMTQ0Oy0tZGFyay1yZWQ4MDoyNTIsMTc0LDE4MTstLWRhcmstcmVkOTA6MjU0LDIxMywyMTY7LS1kYXJrLXJlZDEwMDoyNTUsMjQ1LDI0NjstLWRhcmstdGVhbDA6MCwyMCwzODstLWRhcmstdGVhbDU6MCwzMiw1OTstLWRhcmstdGVhbDEwOjAsNDUsNzk7LS1kYXJrLXRlYWwxNTowLDU4LDk5Oy0tZGFyay10ZWFsMjA6MCw3MiwxMTg7LS1kYXJrLXRlYWwzMDowLDk5LDE1MzstLWRhcmstdGVhbDQwOjAsMTI1LDE4MjstLWRhcmstdGVhbDUwOjAsMTQ5LDIwNTstLWRhcmstdGVhbDYwOjAsMTcwLDIyMzstLWRhcmstdGVhbDcwOjYsMTkwLDIzNjstLWRhcmstdGVhbDgwOjY5LDIxNywyNDU7LS1kYXJrLXRlYWw5MDoxNDksMjM5LDI1MTstLWRhcmstdGVhbDEwMDoyNDAsMjU0LDI1NTstLWRhcmsteWVsbG93MDoyNyw2LDA7LS1kYXJrLXllbGxvdzU6NDksMTcsMDstLWRhcmsteWVsbG93MTA6ODEsNDAsMDstLWRhcmsteWVsbG93MTU6OTYsNDgsMDstLWRhcmsteWVsbG93MjA6MTE1LDY0LDA7LS1kYXJrLXllbGxvdzMwOjE0Nyw5NiwwOy0tZGFyay15ZWxsb3c0MDoxNzUsMTI4LDA7LS1kYXJrLXllbGxvdzUwOjE5OSwxNTgsMDstLWRhcmsteWVsbG93NjA6MjIyLDE4OSwyMzstLWRhcmsteWVsbG93NzA6MjI5LDIwNSw0ODstLWRhcmsteWVsbG93ODA6MjQyLDIyMiw5NDstLWRhcmsteWVsbG93OTA6MjU1LDI0MCwxNDU7LS1kYXJrLXllbGxvdzEwMDoyNTUsMjUyLDI0MTstLWRhcmstY2hhcnRyZXVzZTA6NSwyMiwxNDstLWRhcmstY2hhcnRyZXVzZTU6MTQsNTQsMjk7LS1kYXJrLWNoYXJ0cmV1c2UxMDoyMSw3OSwzNDstLWRhcmstY2hhcnRyZXVzZTE1OjI5LDEwMywzNjstLWRhcmstY2hhcnRyZXVzZTIwOjQ1LDEyOCw0MDstLWRhcmstY2hhcnRyZXVzZTMwOjczLDE1Miw1NDstLWRhcmstY2hhcnRyZXVzZTQwOjEwNywxNzYsNzM7LS1kYXJrLWNoYXJ0cmV1c2U1MDoxMjMsMjAwLDEwNTstLWRhcmstY2hhcnRyZXVzZTYwOjE0MCwyMDksMTM2Oy0tZGFyay1jaGFydHJldXNlNzA6MTU4LDIxNywxNjM7LS1kYXJrLWNoYXJ0cmV1c2U4MDoxNzgsMjIyLDE4ODstLWRhcmstY2hhcnRyZXVzZTkwOjIwOSwyMzgsMjIwOy0tZGFyay1jaGFydHJldXNlMTAwOjI0NSwyNTUsMjUwOy0tbGlnaHRDb2xvci1mZzpyZ2IoMTAsMTEsMTMpOy0tbGlnaHRDb2xvci1mZ011dGVkOnJnYig5MSw5NywxMTApOy0tbGlnaHRDb2xvci1mZ0ludmVyc2U6cmdiKDI1NSwyNTUsMjU1KTstLWxpZ2h0Q29sb3ItZmdQcmltYXJ5OnJnYigwLDgyLDI1NSk7LS1saWdodENvbG9yLWZnV2FybmluZzpyZ2IoMjA3LDcxLDE0KTstLWxpZ2h0Q29sb3ItZmdQb3NpdGl2ZTpyZ2IoOSwxMzMsODEpOy0tbGlnaHRDb2xvci1mZ05lZ2F0aXZlOnJnYigyMDcsMzIsNDcpOy0tbGlnaHRDb2xvci1iZzpyZ2IoMjU1LDI1NSwyNTUpOy0tbGlnaHRDb2xvci1iZ0FsdGVybmF0ZTpyZ2IoMjM4LDI0MCwyNDMpOy0tbGlnaHRDb2xvci1iZ0ludmVyc2U6cmdiKDEwLDExLDEzKTstLWxpZ2h0Q29sb3ItYmdPdmVybGF5OnJnYmEoNTAsNTMsNjEsMC4zMyk7LS1saWdodENvbG9yLWJnUHJpbWFyeTpyZ2IoMCw4MiwyNTUpOy0tbGlnaHRDb2xvci1iZ1ByaW1hcnlXYXNoOnJnYigyNDUsMjQ4LDI1NSk7LS1saWdodENvbG9yLWJnU2Vjb25kYXJ5OnJnYigyMzgsMjQwLDI0Myk7LS1saWdodENvbG9yLWJnVGVydGlhcnk6cmdiKDIwNiwyMTAsMjE5KTstLWxpZ2h0Q29sb3ItYmdTZWNvbmRhcnlXYXNoOnJnYigyNDcsMjQ4LDI0OSk7LS1saWdodENvbG9yLWJnTmVnYXRpdmU6cmdiKDIwNywzMiw0Nyk7LS1saWdodENvbG9yLWJnTmVnYXRpdmVXYXNoOnJnYigyNTUsMjQ1LDI0Nik7LS1saWdodENvbG9yLWJnUG9zaXRpdmU6cmdiKDksMTMzLDgxKTstLWxpZ2h0Q29sb3ItYmdQb3NpdGl2ZVdhc2g6cmdiKDI0NSwyNTUsMjUxKTstLWxpZ2h0Q29sb3ItYmdXYXJuaW5nOnJnYigyMDcsNzEsMTQpOy0tbGlnaHRDb2xvci1iZ1dhcm5pbmdXYXNoOnJnYigyNTUsMjUwLDI0NSk7LS1saWdodENvbG9yLWN1cnJlbnRDb2xvcjpjdXJyZW50Q29sb3I7LS1saWdodENvbG9yLWJnTGluZTpyZ2JhKDkxLDk3LDExMCwwLjIpOy0tbGlnaHRDb2xvci1iZ0xpbmVIZWF2eTpyZ2JhKDkxLDk3LDExMCwwLjY2KTstLWxpZ2h0Q29sb3ItYmdMaW5lSW52ZXJzZTpyZ2IoMjU1LDI1NSwyNTUpOy0tbGlnaHRDb2xvci1iZ0xpbmVQcmltYXJ5OnJnYigwLDgyLDI1NSk7LS1saWdodENvbG9yLWJnTGluZVByaW1hcnlTdWJ0bGU6cmdiKDExNSwxNjIsMjU1KTstLWxpZ2h0Q29sb3ItYmdFbGV2YXRpb24xOnJnYigyNTUsMjU1LDI1NSk7LS1saWdodENvbG9yLWJnRWxldmF0aW9uMjpyZ2IoMjU1LDI1NSwyNTUpOy0tbGlnaHRDb2xvci1hY2NlbnRTdWJ0bGVHcmVlbjpyZ2IoMjQ1LDI1NSwyNTEpOy0tbGlnaHRDb2xvci1hY2NlbnRCb2xkR3JlZW46cmdiKDksMTMzLDgxKTstLWxpZ2h0Q29sb3ItYWNjZW50U3VidGxlQmx1ZTpyZ2IoMjQ1LDI0OCwyNTUpOy0tbGlnaHRDb2xvci1hY2NlbnRCb2xkQmx1ZTpyZ2IoMCw4MiwyNTUpOy0tbGlnaHRDb2xvci1hY2NlbnRTdWJ0bGVQdXJwbGU6cmdiKDI1MSwyNDcsMjU1KTstLWxpZ2h0Q29sb3ItYWNjZW50Qm9sZFB1cnBsZTpyZ2IoOTAsNDgsMTczKTstLWxpZ2h0Q29sb3ItYWNjZW50U3VidGxlWWVsbG93OnJnYigyNTUsMjUyLDI0MSk7LS1saWdodENvbG9yLWFjY2VudEJvbGRZZWxsb3c6cmdiKDI0NywyMTAsMjYpOy0tbGlnaHRDb2xvci1hY2NlbnRTdWJ0bGVSZWQ6cmdiKDI1NSwyNDUsMjQ2KTstLWxpZ2h0Q29sb3ItYWNjZW50Qm9sZFJlZDpyZ2IoMjA3LDMyLDQ3KTstLWxpZ2h0Q29sb3ItYWNjZW50U3VidGxlR3JheTpyZ2IoMjM4LDI0MCwyNDMpOy0tbGlnaHRDb2xvci1hY2NlbnRCb2xkR3JheTpyZ2IoNTAsNTMsNjEpOy0tbGlnaHRDb2xvci10cmFuc3BhcmVudDpyZ2JhKDI1NSwyNTUsMjU1LDApOy0tbGlnaHRDb2xvci1iZ0JyYW5kSG92ZXJlZDpyZ2JhKDAsIDcyLCAyMjQsIDAuODgpOy0tbGlnaHRDb2xvci1iYWNrZ3JvdW5kQWx0SG92ZXJlZDpyZ2JhKDIyOSwgMjMxLCAyMzQsIDAuODgpOy0tbGlnaHRDb2xvci1iYWNrZ3JvdW5kQWx0UHJlc3NlZDpyZ2JhKDIyNSwgMjI2LCAyMjksIDAuODIpOy0tbGlnaHRDb2xvci1iZ0JyYW5kUHJlc3NlZDpyZ2JhKDAsIDY3LCAyMDksIDAuODIpOy0tbGlnaHRDb2xvci1iZ1ByaW1hcnlIb3ZlcmVkOnJnYmEoMTcsIDE4LCAyMCwgMC44OCk7LS1saWdodENvbG9yLWJnUHJpbWFyeVByZXNzZWQ6cmdiYSgyMSwgMjIsIDI0LCAwLjgyKTstLWxpZ2h0Q29sb3ItYmdTZWNvbmRhcnlIb3ZlcmVkOnJnYmEoMjI5LCAyMzEsIDIzNCwgMC44OCk7LS1saWdodENvbG9yLWJnU2Vjb25kYXJ5UHJlc3NlZDpyZ2JhKDI0MiwgMjQ0LCAyNDYsIDAuODIpOy0tbGlnaHRDb2xvci1iZ1RlcnRpYXJ5SG92ZXJlZDpyZ2JhKDI0NywgMjQ3LCAyNDcsIDAuODgpOy0tbGlnaHRDb2xvci1iZ1RlcnRpYXJ5UHJlc3NlZDpyZ2JhKDI0NCwgMjQ0LCAyNDQsIDAuODIpOy0tbGlnaHRDb2xvci1iYWNrZ3JvdW5kSW52ZXJzZURpc2FibGVkOnJnYigxNzcsMTgzLDE5NSk7LS1kYXJrQ29sb3ItZmc6cmdiKDI1NSwyNTUsMjU1KTstLWRhcmtDb2xvci1mZ0ludmVyc2U6cmdiKDEwLDExLDEzKTstLWRhcmtDb2xvci1mZ011dGVkOnJnYigxMzgsMTQ1LDE1OCk7LS1kYXJrQ29sb3ItZmdQcmltYXJ5OnJnYig4NywxMzksMjUwKTstLWRhcmtDb2xvci1mZ1Bvc2l0aXZlOnJnYigzOSwxNzMsMTE3KTstLWRhcmtDb2xvci1mZ05lZ2F0aXZlOnJnYigyNDAsOTcsMTA5KTstLWRhcmtDb2xvci1mZ1dhcm5pbmc6cmdiKDI0OCwxNTAsODYpOy0tZGFya0NvbG9yLWJnOnJnYigxMCwxMSwxMyk7LS1kYXJrQ29sb3ItYmdBbHRlcm5hdGU6cmdiKDIwLDIxLDI1KTstLWRhcmtDb2xvci1iZ0ludmVyc2U6cmdiKDI1NSwyNTUsMjU1KTstLWRhcmtDb2xvci1iZ092ZXJsYXk6cmdiYSgxMCwxMSwxMywwLjMzKTstLWRhcmtDb2xvci1iZ1ByaW1hcnk6cmdiKDg3LDEzOSwyNTApOy0tZGFya0NvbG9yLWJnUHJpbWFyeVdhc2g6cmdiKDAsMTYsNTEpOy0tZGFya0NvbG9yLWJnU2Vjb25kYXJ5OnJnYig0MCw0Myw0OSk7LS1kYXJrQ29sb3ItYmdUZXJ0aWFyeTpyZ2IoNTAsNTMsNjEpOy0tZGFya0NvbG9yLWJnU2Vjb25kYXJ5V2FzaDpyZ2IoMjAsMjEsMjUpOy0tZGFya0NvbG9yLWJnTmVnYXRpdmU6cmdiKDI0MCw5NywxMDkpOy0tZGFya0NvbG9yLWJnTmVnYXRpdmVXYXNoOnJnYig1MSwwLDQpOy0tZGFya0NvbG9yLWJnUG9zaXRpdmU6cmdiKDM5LDE3MywxMTcpOy0tZGFya0NvbG9yLWJnUG9zaXRpdmVXYXNoOnJnYigwLDMxLDE4KTstLWRhcmtDb2xvci1iZ1dhcm5pbmc6cmdiKDI0MCwxMjAsNTQpOy0tZGFya0NvbG9yLWJnV2FybmluZ1dhc2g6cmdiKDUxLDEzLDApOy0tZGFya0NvbG9yLWN1cnJlbnRDb2xvcjpjdXJyZW50Q29sb3I7LS1kYXJrQ29sb3ItYmdMaW5lOnJnYmEoMTM4LDE0NSwxNTgsMC4yKTstLWRhcmtDb2xvci1iZ0xpbmVJbnZlcnNlOnJnYigxMCwxMSwxMyk7LS1kYXJrQ29sb3ItYmdMaW5lSGVhdnk6cmdiYSgxMzgsMTQ1LDE1OCwwLjY2KTstLWRhcmtDb2xvci1iZ0xpbmVQcmltYXJ5OnJnYig4NywxMzksMjUwKTstLWRhcmtDb2xvci1iZ0xpbmVQcmltYXJ5U3VidGxlOnJnYig1LDU5LDE3Nyk7LS1kYXJrQ29sb3ItYmdFbGV2YXRpb24xOnJnYigyMCwyMSwyNSk7LS1kYXJrQ29sb3ItYmdFbGV2YXRpb24yOnJnYigzMCwzMiwzNyk7LS1kYXJrQ29sb3ItYWNjZW50U3VidGxlR3JlZW46cmdiKDAsMzEsMTgpOy0tZGFya0NvbG9yLWFjY2VudEJvbGRHcmVlbjpyZ2IoMzksMTczLDExNyk7LS1kYXJrQ29sb3ItYWNjZW50U3VidGxlQmx1ZTpyZ2IoMCwxNiw1MSk7LS1kYXJrQ29sb3ItYWNjZW50Qm9sZEJsdWU6cmdiKDU1LDExNSwyNDUpOy0tZGFya0NvbG9yLWFjY2VudFN1YnRsZVB1cnBsZTpyZ2IoMjUsMTMsNTEpOy0tZGFya0NvbG9yLWFjY2VudEJvbGRQdXJwbGU6cmdiKDIzMCwyMDEsMjU1KTstLWRhcmtDb2xvci1hY2NlbnRTdWJ0bGVZZWxsb3c6cmdiKDI3LDYsMCk7LS1kYXJrQ29sb3ItYWNjZW50Qm9sZFllbGxvdzpyZ2IoMTQ3LDk2LDApOy0tZGFya0NvbG9yLWFjY2VudFN1YnRsZVJlZDpyZ2IoNTEsMCw0KTstLWRhcmtDb2xvci1hY2NlbnRCb2xkUmVkOnJnYigyNDAsOTcsMTA5KTstLWRhcmtDb2xvci1hY2NlbnRTdWJ0bGVHcmF5OnJnYigzMCwzMiwzNyk7LS1kYXJrQ29sb3ItYWNjZW50Qm9sZEdyYXk6cmdiKDE5MywxOTgsMjA3KTstLWRhcmtDb2xvci10cmFuc3BhcmVudDpyZ2JhKDEwLDExLDEzLDApOy0tZGFya0NvbG9yLWJhY2tncm91bmRBbHRIb3ZlcmVkOnJnYmEoMjcsIDI4LCAzMiwgMC44OCk7LS1kYXJrQ29sb3ItYmFja2dyb3VuZEFsdFByZXNzZWQ6cmdiYSgzMSwgMzIsIDM1LCAwLjgyKTstLWRhcmtDb2xvci1iZ0JyYW5kSG92ZXJlZDpyZ2JhKDk1LCAxNDQsIDI1MCwgMC44OCk7LS1kYXJrQ29sb3ItYmdCcmFuZFByZXNzZWQ6cmdiYSg5OSwgMTQ3LCAyNTAsIDAuODIpOy0tZGFya0NvbG9yLWJnUHJpbWFyeUhvdmVyZWQ6cmdiYSgyNDcsIDI0NywgMjQ3LCAwLjg4KTstLWRhcmtDb2xvci1iZ1ByaW1hcnlQcmVzc2VkOnJnYmEoMjQ0LCAyNDQsIDI0NCwgMC44Mik7LS1kYXJrQ29sb3ItYmdTZWNvbmRhcnlIb3ZlcmVkOnJnYmEoNDcsIDUwLCA1NSwgMC44OCk7LS1kYXJrQ29sb3ItYmdTZWNvbmRhcnlQcmVzc2VkOnJnYmEoNTAsIDUzLCA1OSwgMC44Mik7LS1kYXJrQ29sb3ItYmdUZXJ0aWFyeUhvdmVyZWQ6cmdiYSgxNywgMTgsIDIwLCAwLjg4KTstLWRhcmtDb2xvci1iZ1RlcnRpYXJ5UHJlc3NlZDpyZ2JhKDIxLCAyMiwgMjQsIDAuODIpOy0tZGFya0NvbG9yLWJhY2tncm91bmRJbnZlcnNlRGlzYWJsZWQ6cmdiKDcwLDc1LDg1KTstLXNwYWNlLTA6MHB4Oy0tc3BhY2UtMTo4cHg7LS1zcGFjZS0yOjE2cHg7LS1zcGFjZS0zOjI0cHg7LS1zcGFjZS00OjMycHg7LS1zcGFjZS01OjQwcHg7LS1zcGFjZS02OjQ4cHg7LS1zcGFjZS03OjU2cHg7LS1zcGFjZS04OjY0cHg7LS1zcGFjZS05OjcycHg7LS1zcGFjZS0xMDo4MHB4Oy0tc3BhY2UtMF8yNToycHg7LS1zcGFjZS0wXzU6NHB4Oy0tc3BhY2UtMF83NTo2cHg7LS1zcGFjZS0xXzU6MTJweDstLWJvcmRlcldpZHRoLTA6MHB4Oy0tYm9yZGVyV2lkdGgtMTAwOjFweDstLWJvcmRlcldpZHRoLTIwMDoycHg7LS1ib3JkZXJXaWR0aC0zMDA6NHB4Oy0tYm9yZGVyV2lkdGgtNDAwOjZweDstLWJvcmRlcldpZHRoLTUwMDo4cHg7LS1ib3JkZXJSYWRpdXMtMDowcHg7LS1ib3JkZXJSYWRpdXMtMTAwOjRweDstLWJvcmRlclJhZGl1cy0yMDA6OHB4Oy0tYm9yZGVyUmFkaXVzLTMwMDoxMnB4Oy0tYm9yZGVyUmFkaXVzLTQwMDoxNnB4Oy0tYm9yZGVyUmFkaXVzLTUwMDoyNHB4Oy0tYm9yZGVyUmFkaXVzLTYwMDozMnB4Oy0tYm9yZGVyUmFkaXVzLTcwMDo0MHB4Oy0tYm9yZGVyUmFkaXVzLTgwMDo0OHB4Oy0tYm9yZGVyUmFkaXVzLTkwMDo1NnB4Oy0tYm9yZGVyUmFkaXVzLTEwMDA6MTAwMDAwcHg7LS1pY29uU2l6ZS14czoxMnB4Oy0taWNvblNpemUtczoxNnB4Oy0taWNvblNpemUtbToyNHB4Oy0taWNvblNpemUtbDozMnB4Oy0tYXZhdGFyU2l6ZS1zOjE2cHg7LS1hdmF0YXJTaXplLW06MjRweDstLWF2YXRhclNpemUtbDozMnB4Oy0tYXZhdGFyU2l6ZS14bDo0MHB4Oy0tYXZhdGFyU2l6ZS14eGw6NDhweDstLWF2YXRhclNpemUteHh4bDo1NnB4Oy0tY29udHJvbFNpemUtY2hlY2tib3hTaXplOjIwcHg7LS1jb250cm9sU2l6ZS1yYWRpb1NpemU6MjBweDstLWNvbnRyb2xTaXplLXN3aXRjaFdpZHRoOjUycHg7LS1jb250cm9sU2l6ZS1zd2l0Y2hIZWlnaHQ6MzJweDstLWNvbnRyb2xTaXplLXN3aXRjaFRodW1iU2l6ZTozMHB4Oy0tY29udHJvbFNpemUtdGlsZVNpemU6MTA2cHg7LS1mb250RmFtaWx5LWRpc3BsYXkxOnZhcigtLWNkcy1mb250LWRpc3BsYXkpOy0tZm9udEZhbWlseS1kaXNwbGF5Mjp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRGYW1pbHktZGlzcGxheTM6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1mb250RmFtaWx5LXRpdGxlMTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRGYW1pbHktdGl0bGUyOnZhcigtLWNkcy1mb250LWRpc3BsYXkpOy0tZm9udEZhbWlseS10aXRsZTM6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1mb250RmFtaWx5LXRpdGxlNDp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRGYW1pbHktaGVhZGxpbmU6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1mb250RmFtaWx5LWJvZHk6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1mb250RmFtaWx5LWxhYmVsMTp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRGYW1pbHktbGFiZWwyOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udEZhbWlseS1jYXB0aW9uOnZhcigtLWNkcy1mb250LXRleHQpOy0tZm9udEZhbWlseS1sZWdhbDp2YXIoLS1jZHMtZm9udC10ZXh0KTstLWZvbnRGYW1pbHktbGFiZWwzOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udEZhbWlseS1kaXNwbGF5NDp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRGYW1pbHktdGl0bGU1OnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udEZhbWlseS1jZHhEaXNwbGF5MTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRGYW1pbHktY2R4RGlzcGxheTI6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1mb250RmFtaWx5LWNkeERpc3BsYXkzOnZhcigtLWNkcy1mb250LWRpc3BsYXkpOy0tZm9udEZhbWlseS1jZHhEaXNwbGF5NDp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRGYW1pbHktY2R4VGl0bGUxOnZhcigtLWNkcy1mb250LWRpc3BsYXkpOy0tZm9udEZhbWlseS1jZHhUaXRsZTI6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1mb250RmFtaWx5LWNkeFRpdGxlMzp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRGYW1pbHktY2R4VGl0bGU0OnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udEZhbWlseS1jZHhUaXRsZTU6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1mb250RmFtaWx5LWNkeEhlYWRsaW5lOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udEZhbWlseS1jZHhMYWJlbDE6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1mb250RmFtaWx5LWNkeExhYmVsMjp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRGYW1pbHktY2R4TGFiZWwzOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udEZhbWlseS1jZHhCb2R5OnZhcigtLWNkcy1mb250LXRleHQpOy0tZm9udEZhbWlseS1jZHhDYXB0aW9uOnZhcigtLWNkcy1mb250LXRleHQpOy0tZm9udEZhbWlseS1jZHhMZWdhbDp2YXIoLS1jZHMtZm9udC10ZXh0KTstLWZvbnRGYW1pbHlNb25vLWRpc3BsYXkxOnZhcigtLWNkcy1mb250LW1vbm8pOy0tZm9udEZhbWlseU1vbm8tZGlzcGxheTI6dmFyKC0tY2RzLWZvbnQtbW9ubyk7LS1mb250RmFtaWx5TW9uby1kaXNwbGF5Mzp2YXIoLS1jZHMtZm9udC1tb25vKTstLWZvbnRGYW1pbHlNb25vLXRpdGxlMTp2YXIoLS1jZHMtZm9udC1tb25vKTstLWZvbnRGYW1pbHlNb25vLXRpdGxlMjp2YXIoLS1jZHMtZm9udC1tb25vKTstLWZvbnRGYW1pbHlNb25vLXRpdGxlMzp2YXIoLS1jZHMtZm9udC1tb25vKTstLWZvbnRGYW1pbHlNb25vLXRpdGxlNDp2YXIoLS1jZHMtZm9udC1tb25vKTstLWZvbnRGYW1pbHlNb25vLWhlYWRsaW5lOnZhcigtLWNkcy1mb250LW1vbm8pOy0tZm9udEZhbWlseU1vbm8tYm9keTp2YXIoLS1jZHMtZm9udC1tb25vKTstLWZvbnRGYW1pbHlNb25vLWxhYmVsMTp2YXIoLS1jZHMtZm9udC1tb25vKTstLWZvbnRGYW1pbHlNb25vLWxhYmVsMjp2YXIoLS1jZHMtZm9udC1tb25vKTstLWZvbnRGYW1pbHlNb25vLWNhcHRpb246dmFyKC0tY2RzLWZvbnQtbW9ubyk7LS1mb250RmFtaWx5TW9uby1sZWdhbDp2YXIoLS1jZHMtZm9udC1tb25vKTstLWZvbnRGYW1pbHlNb25vLWxhYmVsMzp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRGYW1pbHlNb25vLWRpc3BsYXk0OnZhcigtLWNkcy1mb250LWRpc3BsYXkpOy0tZm9udEZhbWlseU1vbm8tdGl0bGU1OnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udEZhbWlseU1vbm8tY2R4RGlzcGxheTE6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1mb250RmFtaWx5TW9uby1jZHhEaXNwbGF5Mjp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRGYW1pbHlNb25vLWNkeERpc3BsYXkzOnZhcigtLWNkcy1mb250LWRpc3BsYXkpOy0tZm9udEZhbWlseU1vbm8tY2R4RGlzcGxheTQ6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1mb250RmFtaWx5TW9uby1jZHhUaXRsZTE6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1mb250RmFtaWx5TW9uby1jZHhUaXRsZTI6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1mb250RmFtaWx5TW9uby1jZHhUaXRsZTM6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1mb250RmFtaWx5TW9uby1jZHhUaXRsZTQ6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1mb250RmFtaWx5TW9uby1jZHhUaXRsZTU6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1mb250RmFtaWx5TW9uby1jZHhIZWFkbGluZTp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRGYW1pbHlNb25vLWNkeExhYmVsMTp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRGYW1pbHlNb25vLWNkeExhYmVsMjp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRGYW1pbHlNb25vLWNkeExhYmVsMzp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRGYW1pbHlNb25vLWNkeEJvZHk6dmFyKC0tY2RzLWZvbnQtdGV4dCk7LS1mb250RmFtaWx5TW9uby1jZHhDYXB0aW9uOnZhcigtLWNkcy1mb250LXRleHQpOy0tZm9udEZhbWlseU1vbm8tY2R4TGVnYWw6dmFyKC0tY2RzLWZvbnQtdGV4dCk7LS1mb250U2l6ZS1kaXNwbGF5MTo0cmVtOy0tZm9udFNpemUtZGlzcGxheTI6M3JlbTstLWZvbnRTaXplLWRpc3BsYXkzOjIuNXJlbTstLWZvbnRTaXplLXRpdGxlMToxLjc1cmVtOy0tZm9udFNpemUtdGl0bGUyOjEuNzVyZW07LS1mb250U2l6ZS10aXRsZTM6MS4yNXJlbTstLWZvbnRTaXplLXRpdGxlNDoxLjI1cmVtOy0tZm9udFNpemUtaGVhZGxpbmU6MXJlbTstLWZvbnRTaXplLWJvZHk6MXJlbTstLWZvbnRTaXplLWxhYmVsMTowLjg3NXJlbTstLWZvbnRTaXplLWxhYmVsMjowLjg3NXJlbTstLWZvbnRTaXplLWNhcHRpb246MC44MTI1cmVtOy0tZm9udFNpemUtbGVnYWw6MC44MTI1cmVtOy0tZm9udFNpemUtbGFiZWwzOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udFNpemUtZGlzcGxheTQ6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1mb250U2l6ZS10aXRsZTU6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1mb250U2l6ZS1jZHhEaXNwbGF5MTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRTaXplLWNkeERpc3BsYXkyOnZhcigtLWNkcy1mb250LWRpc3BsYXkpOy0tZm9udFNpemUtY2R4RGlzcGxheTM6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1mb250U2l6ZS1jZHhEaXNwbGF5NDp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRTaXplLWNkeFRpdGxlMTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRTaXplLWNkeFRpdGxlMjp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRTaXplLWNkeFRpdGxlMzp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRTaXplLWNkeFRpdGxlNDp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRTaXplLWNkeFRpdGxlNTp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRTaXplLWNkeEhlYWRsaW5lOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udFNpemUtY2R4TGFiZWwxOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udFNpemUtY2R4TGFiZWwyOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udFNpemUtY2R4TGFiZWwzOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udFNpemUtY2R4Qm9keTp2YXIoLS1jZHMtZm9udC10ZXh0KTstLWZvbnRTaXplLWNkeENhcHRpb246dmFyKC0tY2RzLWZvbnQtdGV4dCk7LS1mb250U2l6ZS1jZHhMZWdhbDp2YXIoLS1jZHMtZm9udC10ZXh0KTstLWZvbnRXZWlnaHQtZGlzcGxheTE6NDAwOy0tZm9udFdlaWdodC1kaXNwbGF5Mjo0MDA7LS1mb250V2VpZ2h0LWRpc3BsYXkzOjQwMDstLWZvbnRXZWlnaHQtdGl0bGUxOjYwMDstLWZvbnRXZWlnaHQtdGl0bGUyOjQwMDstLWZvbnRXZWlnaHQtdGl0bGUzOjYwMDstLWZvbnRXZWlnaHQtdGl0bGU0OjQwMDstLWZvbnRXZWlnaHQtaGVhZGxpbmU6NjAwOy0tZm9udFdlaWdodC1ib2R5OjQwMDstLWZvbnRXZWlnaHQtbGFiZWwxOjYwMDstLWZvbnRXZWlnaHQtbGFiZWwyOjQwMDstLWZvbnRXZWlnaHQtY2FwdGlvbjo2MDA7LS1mb250V2VpZ2h0LWxlZ2FsOjQwMDstLWZvbnRXZWlnaHQtbGFiZWwzOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udFdlaWdodC1kaXNwbGF5NDp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRXZWlnaHQtdGl0bGU1OnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udFdlaWdodC1jZHhEaXNwbGF5MTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRXZWlnaHQtY2R4RGlzcGxheTI6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1mb250V2VpZ2h0LWNkeERpc3BsYXkzOnZhcigtLWNkcy1mb250LWRpc3BsYXkpOy0tZm9udFdlaWdodC1jZHhEaXNwbGF5NDp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWZvbnRXZWlnaHQtY2R4VGl0bGUxOnZhcigtLWNkcy1mb250LWRpc3BsYXkpOy0tZm9udFdlaWdodC1jZHhUaXRsZTI6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1mb250V2VpZ2h0LWNkeFRpdGxlMzp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRXZWlnaHQtY2R4VGl0bGU0OnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udFdlaWdodC1jZHhUaXRsZTU6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1mb250V2VpZ2h0LWNkeEhlYWRsaW5lOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udFdlaWdodC1jZHhMYWJlbDE6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1mb250V2VpZ2h0LWNkeExhYmVsMjp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWZvbnRXZWlnaHQtY2R4TGFiZWwzOnZhcigtLWNkcy1mb250LXNhbnMpOy0tZm9udFdlaWdodC1jZHhCb2R5OnZhcigtLWNkcy1mb250LXRleHQpOy0tZm9udFdlaWdodC1jZHhDYXB0aW9uOnZhcigtLWNkcy1mb250LXRleHQpOy0tZm9udFdlaWdodC1jZHhMZWdhbDp2YXIoLS1jZHMtZm9udC10ZXh0KTstLWxpbmVIZWlnaHQtZGlzcGxheTE6NC41cmVtOy0tbGluZUhlaWdodC1kaXNwbGF5MjozLjVyZW07LS1saW5lSGVpZ2h0LWRpc3BsYXkzOjNyZW07LS1saW5lSGVpZ2h0LXRpdGxlMToyLjI1cmVtOy0tbGluZUhlaWdodC10aXRsZTI6Mi4yNXJlbTstLWxpbmVIZWlnaHQtdGl0bGUzOjEuNzVyZW07LS1saW5lSGVpZ2h0LXRpdGxlNDoxLjc1cmVtOy0tbGluZUhlaWdodC1oZWFkbGluZToxLjVyZW07LS1saW5lSGVpZ2h0LWJvZHk6MS41cmVtOy0tbGluZUhlaWdodC1sYWJlbDE6MS4yNXJlbTstLWxpbmVIZWlnaHQtbGFiZWwyOjEuMjVyZW07LS1saW5lSGVpZ2h0LWNhcHRpb246MXJlbTstLWxpbmVIZWlnaHQtbGVnYWw6MXJlbTstLWxpbmVIZWlnaHQtbGFiZWwzOnZhcigtLWNkcy1mb250LXNhbnMpOy0tbGluZUhlaWdodC1kaXNwbGF5NDp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWxpbmVIZWlnaHQtdGl0bGU1OnZhcigtLWNkcy1mb250LXNhbnMpOy0tbGluZUhlaWdodC1jZHhEaXNwbGF5MTp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWxpbmVIZWlnaHQtY2R4RGlzcGxheTI6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1saW5lSGVpZ2h0LWNkeERpc3BsYXkzOnZhcigtLWNkcy1mb250LWRpc3BsYXkpOy0tbGluZUhlaWdodC1jZHhEaXNwbGF5NDp2YXIoLS1jZHMtZm9udC1kaXNwbGF5KTstLWxpbmVIZWlnaHQtY2R4VGl0bGUxOnZhcigtLWNkcy1mb250LWRpc3BsYXkpOy0tbGluZUhlaWdodC1jZHhUaXRsZTI6dmFyKC0tY2RzLWZvbnQtZGlzcGxheSk7LS1saW5lSGVpZ2h0LWNkeFRpdGxlMzp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWxpbmVIZWlnaHQtY2R4VGl0bGU0OnZhcigtLWNkcy1mb250LXNhbnMpOy0tbGluZUhlaWdodC1jZHhUaXRsZTU6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1saW5lSGVpZ2h0LWNkeEhlYWRsaW5lOnZhcigtLWNkcy1mb250LXNhbnMpOy0tbGluZUhlaWdodC1jZHhMYWJlbDE6dmFyKC0tY2RzLWZvbnQtc2Fucyk7LS1saW5lSGVpZ2h0LWNkeExhYmVsMjp2YXIoLS1jZHMtZm9udC1zYW5zKTstLWxpbmVIZWlnaHQtY2R4TGFiZWwzOnZhcigtLWNkcy1mb250LXNhbnMpOy0tbGluZUhlaWdodC1jZHhCb2R5OnZhcigtLWNkcy1mb250LXRleHQpOy0tbGluZUhlaWdodC1jZHhDYXB0aW9uOnZhcigtLWNkcy1mb250LXRleHQpOy0tbGluZUhlaWdodC1jZHhMZWdhbDp2YXIoLS1jZHMtZm9udC10ZXh0KTstLXRleHRUcmFuc2Zvcm0tZGlzcGxheTE6bm9uZTstLXRleHRUcmFuc2Zvcm0tZGlzcGxheTI6bm9uZTstLXRleHRUcmFuc2Zvcm0tZGlzcGxheTM6bm9uZTstLXRleHRUcmFuc2Zvcm0tdGl0bGUxOm5vbmU7LS10ZXh0VHJhbnNmb3JtLXRpdGxlMjpub25lOy0tdGV4dFRyYW5zZm9ybS10aXRsZTM6bm9uZTstLXRleHRUcmFuc2Zvcm0tdGl0bGU0Om5vbmU7LS10ZXh0VHJhbnNmb3JtLWhlYWRsaW5lOm5vbmU7LS10ZXh0VHJhbnNmb3JtLWJvZHk6bm9uZTstLXRleHRUcmFuc2Zvcm0tbGFiZWwxOm5vbmU7LS10ZXh0VHJhbnNmb3JtLWxhYmVsMjpub25lOy0tdGV4dFRyYW5zZm9ybS1jYXB0aW9uOnVwcGVyY2FzZTstLXRleHRUcmFuc2Zvcm0tbGVnYWw6bm9uZTstLXNoYWRvdy1lbGV2YXRpb24xOjBweCA4cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTIpOy0tc2hhZG93LWVsZXZhdGlvbjI6MHB4IDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7LS1hY3RpdmVDb2xvclNjaGVtZTpsaWdodDstLWJsdWUwOjI0NSwyNDgsMjU1Oy0tYmx1ZTU6MjExLDIyNSwyNTU7LS1ibHVlMTA6MTc2LDIwMiwyNTU7LS1ibHVlMTU6MTQ2LDE4MiwyNTU7LS1ibHVlMjA6MTE1LDE2MiwyNTU7LS1ibHVlMzA6NzAsMTMyLDI1NTstLWJsdWU0MDozOCwxMTAsMjU1Oy0tYmx1ZTUwOjE2LDk0LDI1NTstLWJsdWU2MDowLDgyLDI1NTstLWJsdWU3MDowLDc1LDIzNTstLWJsdWU4MDowLDYyLDE5MzstLWJsdWU5MDowLDQxLDEzMDstLWJsdWUxMDA6MCwyNCw3NzstLWdyZWVuMDoyNDUsMjU1LDI1MTstLWdyZWVuNToyMDMsMjQ1LDIyNzstLWdyZWVuMTA6MTYzLDIzNSwyMDU7LS1ncmVlbjE1OjEzMSwyMjQsMTg2Oy0tZ3JlZW4yMDoxMDEsMjE0LDE2NzstLWdyZWVuMzA6NjAsMTk0LDEzODstLWdyZWVuNDA6MzQsMTczLDExNTstLWdyZWVuNTA6MTgsMTUzLDk3Oy0tZ3JlZW42MDo5LDEzMyw4MTstLWdyZWVuNzA6NCwxMTIsNjc7LS1ncmVlbjgwOjIsODMsNTA7LS1ncmVlbjkwOjAsNTcsMzU7LS1ncmVlbjEwMDowLDMxLDE4Oy0tb3JhbmdlMDoyNTUsMjUwLDI0NTstLW9yYW5nZTU6MjU0LDIzMiwyMTA7LS1vcmFuZ2UxMDoyNTMsMjEzLDE3NjstLW9yYW5nZTE1OjI1MSwxOTQsMTQ3Oy0tb3JhbmdlMjA6MjQ5LDE3NCwxMTg7LS1vcmFuZ2UzMDoyNDQsMTQwLDc2Oy0tb3JhbmdlNDA6MjM3LDExMiw0NzstLW9yYW5nZTUwOjIyNSw4OSwyNzstLW9yYW5nZTYwOjIwNyw3MSwxNDstLW9yYW5nZTcwOjE4MSw1NCw2Oy0tb3JhbmdlODA6MTQ1LDM5LDI7LS1vcmFuZ2U5MDoxMDAsMjYsMDstLW9yYW5nZTEwMDo1MSwxMywwOy0tZ3JheTA6MjU1LDI1NSwyNTU7LS1ncmF5NToyNDcsMjQ4LDI0OTstLWdyYXkxMDoyMzgsMjQwLDI0MzstLWdyYXkxNToyMjIsMjI1LDIzMTstLWdyYXkyMDoyMDYsMjEwLDIxOTstLWdyYXkzMDoxNzcsMTgzLDE5NTstLWdyYXk0MDoxMzcsMTQ0LDE1ODstLWdyYXk1MDoxMTMsMTIwLDEzNDstLWdyYXk2MDo5MSw5NywxMTA7LS1ncmF5NzA6NzAsNzUsODU7LS1ncmF5ODA6NTAsNTMsNjE7LS1ncmF5OTA6MzAsMzIsMzc7LS1ncmF5MTAwOjEwLDExLDEzOy0taW5kaWdvMDoyNDYsMjQ3LDI1NTstLWluZGlnbzU6MjMwLDIzMiwyNTU7LS1pbmRpZ28xMDoyMTQsMjE4LDI1NDstLWluZGlnbzE1OjE5OCwyMDQsMjUzOy0taW5kaWdvMjA6MTgxLDE4OSwyNTM7LS1pbmRpZ28zMDoxNDgsMTYxLDI1MTstLWluZGlnbzQwOjExNiwxMzUsMjQ3Oy0taW5kaWdvNTA6ODksMTExLDI0MjstLWluZGlnbzYwOjY2LDkxLDIzMzstLWluZGlnbzcwOjQ3LDc0LDIxNTstLWluZGlnbzgwOjMxLDU0LDE3MzstLWluZGlnbzkwOjE3LDMyLDEwNzstLWluZGlnbzEwMDo4LDE1LDUxOy0tcGluazA6MjU1LDI0NSwyNTU7LS1waW5rNToyNTMsMjI4LDI1MzstLXBpbmsxMDoyNTEsMjEyLDI1MDstLXBpbmsxNToyNDgsMTk1LDI0NTstLXBpbmsyMDoyNDQsMTc4LDI0MDstLXBpbmszMDoyMzUsMTQzLDIyNzstLXBpbms0MDoyMjEsMTEwLDIwOTstLXBpbms1MDoyMDMsODEsMTg3Oy0tcGluazYwOjE3OSw1OCwxNjI7LS1waW5rNzA6MTQ5LDM5LDEzMzstLXBpbms4MDoxMTYsMjYsMTAyOy0tcGluazkwOjgzLDE3LDcyOy0tcGluazEwMDo1MSwxMCw0NDstLXB1cnBsZTA6MjUxLDI0NywyNTU7LS1wdXJwbGU1OjI0NCwyMzIsMjU1Oy0tcHVycGxlMTA6MjM3LDIxNywyNTU7LS1wdXJwbGUxNToyMzAsMjAxLDI1NTstLXB1cnBsZTIwOjIyMiwxODQsMjU1Oy0tcHVycGxlMzA6MjA1LDE1MywyNTM7LS1wdXJwbGU0MDoxODgsMTIzLDI1MTstLXB1cnBsZTUwOjE1NywxMDcsMjQyOy0tcHVycGxlNjA6MTM4LDg1LDIzMzstLXB1cnBsZTcwOjExOSw2NywyMTU7LS1wdXJwbGU4MDo5MCw0OCwxNzM7LS1wdXJwbGU5MDo1NCwyNywxMDc7LS1wdXJwbGUxMDA6MjUsMTMsNTE7LS1yZWQwOjI1NSwyNDUsMjQ2Oy0tcmVkNToyNTQsMjI1LDIyODstLXJlZDEwOjI1MywyMDYsMjEwOy0tcmVkMTU6MjUxLDE4NiwxOTE7LS1yZWQyMDoyNDksMTY2LDE3MzstLXJlZDMwOjI0NCwxMjcsMTM2Oy0tcmVkNDA6MjM3LDg5LDEwMjstLXJlZDUwOjIyNSw1Nyw3MTstLXJlZDYwOjIwNywzMiw0NzstLXJlZDcwOjE4MSwxNSwyOTstLXJlZDgwOjE0NSw1LDE2Oy0tcmVkOTA6MTAwLDEsOTstLXJlZDEwMDo1MSwwLDQ7LS10ZWFsMDoyNDAsMjU0LDI1NTstLXRlYWw1OjE4OCwyNDYsMjUzOy0tdGVhbDEwOjEzNiwyMzcsMjUxOy0tdGVhbDE1OjkzLDIyNiwyNDg7LS10ZWFsMjA6NTEsMjEzLDI0NDstLXRlYWwzMDowLDE4OCwyMzU7LS10ZWFsNDA6MCwxNjksMjIxOy0tdGVhbDUwOjAsMTQ3LDIwMzstLXRlYWw2MDowLDEyMywxNzk7LS10ZWFsNzA6MCw5NywxNDk7LS10ZWFsODA6MCw3MSwxMTY7LS10ZWFsOTA6MCw0Nyw4MzstLXRlYWwxMDA6MCwyNyw1MTstLXllbGxvdzA6MjU1LDI1MiwyNDE7LS15ZWxsb3c1OjI1NSwyNDQsMTkyOy0teWVsbG93MTA6MjU1LDI0MCwxNDU7LS15ZWxsb3cxNToyNTUsMjM0LDEwMDstLXllbGxvdzIwOjI1NSwyMjgsNTQ7LS15ZWxsb3czMDoyNDcsMjEwLDI2Oy0teWVsbG93NDA6MjM1LDE4NiwwOy0teWVsbG93NTA6MjA3LDE1MSwwOy0teWVsbG93NjA6MTc0LDExMywwOy0teWVsbG93NzA6MTM2LDc2LDA7LS15ZWxsb3c4MDo5Niw0OCwwOy0teWVsbG93OTA6NTgsMjAsMDstLXllbGxvdzEwMDoyNyw2LDA7LS1jaGFydHJldXNlMDoyNDUsMjU1LDI1MDstLWNoYXJ0cmV1c2U1OjIyMSwyNTEsMjMyOy0tY2hhcnRyZXVzZTEwOjE5OCwyNDcsMjA5Oy0tY2hhcnRyZXVzZTE1OjE3NiwyNDIsMTgyOy0tY2hhcnRyZXVzZTIwOjE1OSwyMzgsMTU1Oy0tY2hhcnRyZXVzZTMwOjEzNywyMjMsMTE3Oy0tY2hhcnRyZXVzZTQwOjEyNywyMDgsODc7LS1jaGFydHJldXNlNTA6ODYsMTc5LDY0Oy0tY2hhcnRyZXVzZTYwOjUzLDE1MSw0ODstLWNoYXJ0cmV1c2U3MDozNSwxMjIsNDM7LS1jaGFydHJldXNlODA6MjUsOTMsNDE7LS1jaGFydHJldXNlOTA6MTcsNjQsMzU7LS1jaGFydHJldXNlMTAwOjcsMjYsMTc7LS1jb2xvci1mZzpyZ2IoMTAsMTEsMTMpOy0tY29sb3ItZmdNdXRlZDpyZ2IoOTEsOTcsMTEwKTstLWNvbG9yLWZnSW52ZXJzZTpyZ2IoMjU1LDI1NSwyNTUpOy0tY29sb3ItZmdQcmltYXJ5OnJnYigwLDgyLDI1NSk7LS1jb2xvci1mZ1dhcm5pbmc6cmdiKDIwNyw3MSwxNCk7LS1jb2xvci1mZ1Bvc2l0aXZlOnJnYig5LDEzMyw4MSk7LS1jb2xvci1mZ05lZ2F0aXZlOnJnYigyMDcsMzIsNDcpOy0tY29sb3ItYmc6cmdiKDI1NSwyNTUsMjU1KTstLWNvbG9yLWJnQWx0ZXJuYXRlOnJnYigyMzgsMjQwLDI0Myk7LS1jb2xvci1iZ0ludmVyc2U6cmdiKDEwLDExLDEzKTstLWNvbG9yLWJnT3ZlcmxheTpyZ2JhKDUwLDUzLDYxLDAuMzMpOy0tY29sb3ItYmdQcmltYXJ5OnJnYigwLDgyLDI1NSk7LS1jb2xvci1iZ1ByaW1hcnlXYXNoOnJnYigyNDUsMjQ4LDI1NSk7LS1jb2xvci1iZ1NlY29uZGFyeTpyZ2IoMjM4LDI0MCwyNDMpOy0tY29sb3ItYmdUZXJ0aWFyeTpyZ2IoMjA2LDIxMCwyMTkpOy0tY29sb3ItYmdTZWNvbmRhcnlXYXNoOnJnYigyNDcsMjQ4LDI0OSk7LS1jb2xvci1iZ05lZ2F0aXZlOnJnYigyMDcsMzIsNDcpOy0tY29sb3ItYmdOZWdhdGl2ZVdhc2g6cmdiKDI1NSwyNDUsMjQ2KTstLWNvbG9yLWJnUG9zaXRpdmU6cmdiKDksMTMzLDgxKTstLWNvbG9yLWJnUG9zaXRpdmVXYXNoOnJnYigyNDUsMjU1LDI1MSk7LS1jb2xvci1iZ1dhcm5pbmc6cmdiKDIwNyw3MSwxNCk7LS1jb2xvci1iZ1dhcm5pbmdXYXNoOnJnYigyNTUsMjUwLDI0NSk7LS1jb2xvci1jdXJyZW50Q29sb3I6Y3VycmVudENvbG9yOy0tY29sb3ItYmdMaW5lOnJnYmEoOTEsOTcsMTEwLDAuMik7LS1jb2xvci1iZ0xpbmVIZWF2eTpyZ2JhKDkxLDk3LDExMCwwLjY2KTstLWNvbG9yLWJnTGluZUludmVyc2U6cmdiKDI1NSwyNTUsMjU1KTstLWNvbG9yLWJnTGluZVByaW1hcnk6cmdiKDAsODIsMjU1KTstLWNvbG9yLWJnTGluZVByaW1hcnlTdWJ0bGU6cmdiKDExNSwxNjIsMjU1KTstLWNvbG9yLWJnRWxldmF0aW9uMTpyZ2IoMjU1LDI1NSwyNTUpOy0tY29sb3ItYmdFbGV2YXRpb24yOnJnYigyNTUsMjU1LDI1NSk7LS1jb2xvci1hY2NlbnRTdWJ0bGVHcmVlbjpyZ2IoMjQ1LDI1NSwyNTEpOy0tY29sb3ItYWNjZW50Qm9sZEdyZWVuOnJnYig5LDEzMyw4MSk7LS1jb2xvci1hY2NlbnRTdWJ0bGVCbHVlOnJnYigyNDUsMjQ4LDI1NSk7LS1jb2xvci1hY2NlbnRCb2xkQmx1ZTpyZ2IoMCw4MiwyNTUpOy0tY29sb3ItYWNjZW50U3VidGxlUHVycGxlOnJnYigyNTEsMjQ3LDI1NSk7LS1jb2xvci1hY2NlbnRCb2xkUHVycGxlOnJnYig5MCw0OCwxNzMpOy0tY29sb3ItYWNjZW50U3VidGxlWWVsbG93OnJnYigyNTUsMjUyLDI0MSk7LS1jb2xvci1hY2NlbnRCb2xkWWVsbG93OnJnYigyNDcsMjEwLDI2KTstLWNvbG9yLWFjY2VudFN1YnRsZVJlZDpyZ2IoMjU1LDI0NSwyNDYpOy0tY29sb3ItYWNjZW50Qm9sZFJlZDpyZ2IoMjA3LDMyLDQ3KTstLWNvbG9yLWFjY2VudFN1YnRsZUdyYXk6cmdiKDIzOCwyNDAsMjQzKTstLWNvbG9yLWFjY2VudEJvbGRHcmF5OnJnYig1MCw1Myw2MSk7LS1jb2xvci10cmFuc3BhcmVudDpyZ2JhKDI1NSwyNTUsMjU1LDApOy0tY29sb3ItYmdCcmFuZEhvdmVyZWQ6cmdiYSgwLCA3MiwgMjI0LCAwLjg4KTstLWNvbG9yLWJhY2tncm91bmRBbHRIb3ZlcmVkOnJnYmEoMjI5LCAyMzEsIDIzNCwgMC44OCk7LS1jb2xvci1iYWNrZ3JvdW5kQWx0UHJlc3NlZDpyZ2JhKDIyNSwgMjI2LCAyMjksIDAuODIpOy0tY29sb3ItYmdCcmFuZFByZXNzZWQ6cmdiYSgwLCA2NywgMjA5LCAwLjgyKTstLWNvbG9yLWJnUHJpbWFyeUhvdmVyZWQ6cmdiYSgxNywgMTgsIDIwLCAwLjg4KTstLWNvbG9yLWJnUHJpbWFyeVByZXNzZWQ6cmdiYSgyMSwgMjIsIDI0LCAwLjgyKTstLWNvbG9yLWJnU2Vjb25kYXJ5SG92ZXJlZDpyZ2JhKDIyOSwgMjMxLCAyMzQsIDAuODgpOy0tY29sb3ItYmdTZWNvbmRhcnlQcmVzc2VkOnJnYmEoMjQyLCAyNDQsIDI0NiwgMC44Mik7LS1jb2xvci1iZ1RlcnRpYXJ5SG92ZXJlZDpyZ2JhKDI0NywgMjQ3LCAyNDcsIDAuODgpOy0tY29sb3ItYmdUZXJ0aWFyeVByZXNzZWQ6cmdiYSgyNDQsIDI0NCwgMjQ0LCAwLjgyKTstLWNvbG9yLWJhY2tncm91bmRJbnZlcnNlRGlzYWJsZWQ6cmdiKDE3NywxODMsMTk1KTstLWlsbHVzdHJhdGlvbi1wcmltYXJ5OnJnYigwLDgyLDI1NSk7LS1pbGx1c3RyYXRpb24tYmxhY2s6cmdiKDEwLDExLDEzKTstLWlsbHVzdHJhdGlvbi13aGl0ZTpyZ2IoMjU1LDI1NSwyNTUpOy0taWxsdXN0cmF0aW9uLWdyYXk6cmdiKDIwNiwyMTAsMjE5KTstLWlsbHVzdHJhdGlvbi1ncmF5LTI6cmdiKDEwLCAxMSwgMTUpOy0taWxsdXN0cmF0aW9uLWdyYXktMzpyZ2IoMjA2LCAyMTAsIDIyMCk7LS1pbGx1c3RyYXRpb24tZ3JheS00OnJnYigyMDAsIDIwMywgMjEwKTstLWlsbHVzdHJhdGlvbi1wb3NpdGl2ZTpyZ2IoNjAsMTk0LDEzOCk7LS1pbGx1c3RyYXRpb24tbmVnYXRpdmU6cmdiKDIyNSw1Nyw3MSk7LS1pbGx1c3RyYXRpb24tYWNjZW50LTE6cmdiKDI1NSwgMjEwLCAwKTstLWlsbHVzdHJhdGlvbi1hY2NlbnQtMjpyZ2IoOTMsMjI2LDI0OCk7LS1pbGx1c3RyYXRpb24tYWNjZW50LTM6cmdiKDIzNywxMTIsNDcpOy0taWxsdXN0cmF0aW9uLWFjY2VudC00OnJnYigxMTUsMTYyLDI1NSk7LS1pbGx1c3RyYXRpb24taW52ZXJ0OnJnYigxMCwgMTEsIDE0KTstLWlsbHVzdHJhdGlvbi1pbnZlcnQtMjpyZ2IoMjU1LCAyNTUsIDI1NCkiPjwhLS0kLS0+PCEtLS8kLS0+PCEtLSQtLT48IS0tJC0tPjxoZWFkZXIgZGF0YS10ZXN0aWQ9Im1haW4tbmF2IiBjbGFzcz0iTWFpbk5hdl9fT3V0ZXJXcmFwcGVyLXNjLTEzZWFiMTktMCBqQS1EYXdjIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGNvbHVtbi1jMWZrNmFvaCBiZy1icDdnZzMxIiB0YWJpbmRleD0iLTEiPjxhIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnUHJpbWFyeS1mMXZpYWhpZiBfMC1fMTlpbjYwNiBib2R5LWIxNGE4ZWdkIF8wLV9zaWtneDYgXzAtXzFkdDdnYnAgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgYmFzZUNzcy1iNjc4bXg5IE1haW5OYXZfX1NraXBOYXYtc2MtMTNlYWIxOS01IGV1UlZyTyIgc3R5bGU9Ii0taW50ZXItYmc6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnkpOy0taW50ZXItYm9yZGVyQ29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnkpOy0taW50ZXItaG92ZXItYmc6cmdiKDIyOSwgMjMxLCAyMzQpOy0taW50ZXItaG92ZXItYm9yZGVyQ29sb3I6cmdiKDIyOSwgMjMxLCAyMzQpOy0taW50ZXItaG92ZXItb3BhY2l0eTowLjg4Oy0taW50ZXItcHJlc3MtYmc6cmdiKDIyNSwgMjI2LCAyMjkpOy0taW50ZXItcHJlc3MtYm9yZGVyQ29sb3I6cmdiKDIyNSwgMjI2LCAyMjkpOy0taW50ZXItcHJlc3Mtb3BhY2l0eTowLjgyOy0taW50ZXItZGlzYWJsZS1iZzpyZ2IoMjQyLCAyNDQsIDI0Nik7LS1pbnRlci1kaXNhYmxlLWJvcmRlckNvbG9yOnJnYigyNDIsIDI0NCwgMjQ2KSIgaHJlZj0iI3NraXAtbmF2LWNvbnRlbnQiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGN1cnJlbnRDb2xvci1jMXVsNjc5cSBpbmhlcml0LWk4Y2Vram4gaW5oZXJpdC1pNXlmd2p1IGluaGVyaXQtaTE5amQ4Nm4gaW5oZXJpdC1pMXEyem00biBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSItLXRleHQtdGV4dFRyYW5zZm9ybTp2YXIoLS10ZXh0VHJhbnNmb3JtLWluaGVyaXQpIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMy1mZiBsMy1mcyBsMy1mdyBsMy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgTWFpbk5hdl9fU2tpcE5hdlRleHQtc2MtMTNlYWIxOS02IGdhSUdvVSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlNraXAgdG8gY29udGVudDwvc3Bhbj48L3NwYW4+PC9hPjxhIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnUHJpbWFyeS1mMXZpYWhpZiBfMC1fMTlpbjYwNiBib2R5LWIxNGE4ZWdkIF8wLV9zaWtneDYgXzAtXzFkdDdnYnAgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgYmFzZUNzcy1iNjc4bXg5IE1haW5OYXZfX1NraXBOYXYtc2MtMTNlYWIxOS01IGV1UlZyTyIgc3R5bGU9Ii0taW50ZXItYmc6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnkpOy0taW50ZXItYm9yZGVyQ29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnkpOy0taW50ZXItaG92ZXItYmc6cmdiKDIyOSwgMjMxLCAyMzQpOy0taW50ZXItaG92ZXItYm9yZGVyQ29sb3I6cmdiKDIyOSwgMjMxLCAyMzQpOy0taW50ZXItaG92ZXItb3BhY2l0eTowLjg4Oy0taW50ZXItcHJlc3MtYmc6cmdiKDIyNSwgMjI2LCAyMjkpOy0taW50ZXItcHJlc3MtYm9yZGVyQ29sb3I6cmdiKDIyNSwgMjI2LCAyMjkpOy0taW50ZXItcHJlc3Mtb3BhY2l0eTowLjgyOy0taW50ZXItZGlzYWJsZS1iZzpyZ2IoMjQyLCAyNDQsIDI0Nik7LS1pbnRlci1kaXNhYmxlLWJvcmRlckNvbG9yOnJnYigyNDIsIDI0NCwgMjQ2KSIgaHJlZj0iI2Zvb3Rlci1zaXRlLWluZGV4Ij48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBjdXJyZW50Q29sb3ItYzF1bDY3OXEgaW5oZXJpdC1pOGNla2puIGluaGVyaXQtaTV5ZndqdSBpbmhlcml0LWkxOWpkODZuIGluaGVyaXQtaTFxMnptNG4gc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0iLS10ZXh0LXRleHRUcmFuc2Zvcm06dmFyKC0tdGV4dFRyYW5zZm9ybS1pbmhlcml0KSI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDMtZmYgbDMtZnMgbDMtZncgbDMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIE1haW5OYXZfX1NraXBOYXZUZXh0LXNjLTEzZWFiMTktNiBnYUlHb1UiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5Ta2lwIHRvIHNpdGUgaW5kZXg8L3NwYW4+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IiBzdHlsZT0ibWFyZ2luLXRvcDowIj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGNvbHVtbi1jMWZrNmFvaCBNYWluTmF2X19TdGlja3lXcmFwcGVyLXNjLTEzZWFiMTktMSBiRWF2WlciIHN0eWxlPSJwYWRkaW5nLXRvcDowO3RvcDowIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGJvcmRlcmVkQm90dG9tLWIxb2FjM2JvIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8yLV9zM3MzdnggXzItXzFkNTZ2azMgXzQtXzFvbmZhaXQgXzFfNS1fMXYyYXhleiBDRFhDb250YWluZXItc2MtZGViNmFkMTUtMCBjZldUUFUiPjxkaXYgY2xhc3M9IkxvZ29XcmFwcGVyX19XcmFwcGVyLXNjLTEwYTNhODJhLTAgZG9HQUlrIj48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBMb2dvV3JhcHBlcl9fU3R5bGVkTGluay1zYy0xMGEzYTgyYS0xIEJKbk5SIiB0aXRsZT0iSG9tZSIgZGF0YS10ZXN0aWQ9ImhlYWRlci1ob21lLWxpbmsiIGhyZWY9Ii8iPjxpbWcgYWx0PSJDb2luYmFzZSBMb2dvIiBoZWlnaHQ9IjQ0IiBzcmM9Imh0dHBzOi8vc3RhdGljLWFzc2V0cy5jb2luYmFzZS5jb20vdWktaW5mcmEvaWxsdXN0cmF0aW9uL3YxL3BpY3RvZ3JhbS9zdmcvbGlnaHQvY29pbmJhc2VMb2dvTmF2aWdhdGlvbi00LnN2ZyIgd2lkdGg9IjQ0Ii8+PC9hPjwvZGl2PjxuYXYgY2xhc3M9Ik1haW5OYXZfX0xpbmtzV3JhcHBlci1zYy0xM2VhYjE5LTIgampDQXRWIj48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBOYXZMaW5rSXRlbV9fU3R5bGVkTGluay1zYy04YjAzNTc0Ni0yIGNockhqYiIgdGl0bGU9IkNyeXB0b2N1cnJlbmNpZXMiIGRhdGEtdGVzdGlkPSJtYWluLW5hdi1saW5rLXByaWNlcyIgaHJlZj0iL2V4cGxvcmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEwMDAtX3RxaHJyOSBOYXZMaW5rSXRlbV9fSXRlbVdyYXBwZXItc2MtOGIwMzU3NDYtMCBOYXZMaW5rSXRlbV9fTGlua0l0ZW1XcmFwcGVyLXNjLThiMDM1NzQ2LTEgZXBlV0pHIGtHYUZFTSI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgYm9keS1iMTJpcHM5ayBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgTWFpbk5hdl9fTmF2TGlua0l0ZW1UZXh0LXNjLTEzZWFiMTktNCBndGhxaHUiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIiBkYXRhLXN5bnRoZXRpYy1pZD0iaGVhZGVyLXByaWNlLWxpbmsiPkNyeXB0b2N1cnJlbmNpZXM8L3NwYW4+PC9kaXY+PC9hPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEwMDAtX3RxaHJyOSBOYXZMaW5rSXRlbV9fSXRlbVdyYXBwZXItc2MtOGIwMzU3NDYtMCBlcGVXSkciIGRhdGEtdGVzdGlkPSJtYWluLW5hdi1saW5rLWluZGl2aWR1YWxzIiB0YWJpbmRleD0iMCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9Imdsb2JhbC1uYXYtZHJvcGRvd24taW5kaXZpZHVhbHMiIHJvbGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgYm9keS1iMTJpcHM5ayBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgTWFpbk5hdl9fTmF2TGlua0l0ZW1UZXh0LXNjLTEzZWFiMTktNCBndGhxaHUiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5JbmRpdmlkdWFsczwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFRyYXBkb29yQ29udGVudFdyYXBwZXJfX092ZXJsYXktc2MtNTk5Njc0ZGEtMSBqUFJNUHciIHN0eWxlPSJ0b3A6Y2FsYygxMDAlIC0gMHB4KTtoZWlnaHQ6MTAwdmgiPjwvZGl2PjxzZWN0aW9uIHN0eWxlPSJ0b3A6Y2FsYygxMDAlIC0gMHB4KTttYXgtaGVpZ2h0OjEwMHZoIiBjbGFzcz0iVHJhcGRvb3JDb250ZW50V3JhcHBlcl9fV3JhcHBlci1zYy01OTk2NzRkYS0wIGp4c3d0bCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fMWQ1NnZrMyBfNC1fMW9uZmFpdCBDRFhDb250YWluZXItc2MtZGViNmFkMTUtMCBUcmFwZG9vckNvbnRlbnRXcmFwcGVyX19Db250ZW50LXNjLTU5OTY3NGRhLTIgY2ZXVFBVIGdXVXNYZCI+PGRpdiBpZD0iZ2xvYmFsLW5hdi1kcm9wZG93bi1pbmRpdmlkdWFscyIgY2xhc3M9IkFjY2Vzc2liaWxpdHlXcmFwcGVyLXNjLWQyZTUwZDQ5LTAgYkFIZXRrIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8yLV9oMmxleXkgXzQtXzEwZXFvYzkgVHJhcGRvb3JQcm9kdWN0TGlzdENvbHVtbl9fQ29sdW1uV3JhcHBlci1zYy01YzhmYWNmZC0wIGRsaE5JTSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgQ29sdW1uSGVhZGVyX19Db250ZW50LXNjLTk0MzcxZGRiLTEgZ2VvbUdpIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+VHJhZGU8L3NwYW4+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggU3VibWVudUxpbmtfX0xpbmtXcmFwcGVyLXNjLTQ1MmRjMmIwLTYgYnhadVhoIiB0aXRsZT0iQnV5IGFuZCBzZWxsIGNyeXB0b2N1cnJlbmNpZXMiIGhyZWY9Ii9leHBsb3JlIj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fSWNvbldyYXBwZXItc2MtNDUyZGMyYjAtMSBoenVPUFUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAgZnJKY2NwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24iIGRhdGEtdGVzdGlkPSJjcnlwdG8taWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImNvaW5zQ3J5cHRvIiBkYXRhLXRlc3RpZD0iY3J5cHRvLWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwqII8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Q3J5cHRvPC9zcGFuPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19EZXNjcmlwdGlvbi1zYy00NTJkYzJiMC0zIGJYT1BmUSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkJ1eSBhbmQgc2VsbCBjcnlwdG9jdXJyZW5jaWVzPC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJBbXBsaWZ5IHlvdXIgdHJhZGVzIHdpdGggZnV0dXJlcyBhbmQgcGVycGV0dWFsLXN0eWxlIGZ1dHVyZXMiIGhyZWY9Ii9hZHZhbmNlZC10cmFkZS9ldS1kZXJpdmF0aXZlcyI+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX0ljb25XcmFwcGVyLXNjLTQ1MmRjMmIwLTEgaHp1T1BVIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFN1YmxpbmtJY29uX19JY29uV3JhcHBlci1zYy1iMjc5MTY3Yy0wIGZySmNjcCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIiBkYXRhLXRlc3RpZD0iZGVyaXZhdGl2ZXMtaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImFycm93c1VwRG93biIgZGF0YS10ZXN0aWQ9ImRlcml2YXRpdmVzLWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwp7Y8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+RGVyaXZhdGl2ZXM8c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX05ld1RhZy1zYy00NTJkYzJiMC00IGpMQnhSRiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPk5ldzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMgYlhPUGZRIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+QW1wbGlmeSB5b3VyIHRyYWRlcyB3aXRoIGZ1dHVyZXMgYW5kIHBlcnBldHVhbC1zdHlsZSBmdXR1cmVzPC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJDb2luYmFzZSBBZHZhbmNlZCDigJMgUHJvZmVzc2lvbmFsLWdyYWRlIHRyYWRpbmcgdG9vbHMiIGhyZWY9Ii9hZHZhbmNlZC10cmFkZSI+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX0ljb25XcmFwcGVyLXNjLTQ1MmRjMmIwLTEgaHp1T1BVIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFN1YmxpbmtJY29uX19JY29uV3JhcHBlci1zYy1iMjc5MTY3Yy0wIGZySmNjcCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIiBkYXRhLXRlc3RpZD0iYWR2YW5jZWRUcmFkZS1pY29uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBtLW0xajdiNDY1IiBkYXRhLWljb24tbmFtZT0iYWR2YW5jZWRUcmFkZVByb2R1Y3QiIGRhdGEtdGVzdGlkPSJhZHZhbmNlZFRyYWRlLWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwgKQ8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+QWR2YW5jZWQ8L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMgYlhPUGZRIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+UHJvZmVzc2lvbmFsLWdyYWRlIHRyYWRpbmcgdG9vbHM8L3NwYW4+PC9kaXY+PC9hPjxhIGNsYXNzPSJHbG9iYWxOYXZMaW5rX19TdHlsZWRMaW5rLXNjLTFhNWRiODVjLTAgakprSmtIIFN1Ym1lbnVMaW5rX19MaW5rV3JhcHBlci1zYy00NTJkYzJiMC02IGJ4WnVYaCIgdGl0bGU9IkNvaW5iYXNlIE9uZSAtIEdldCB6ZXJvIHRyYWRpbmcgZmVlcyBhbmQgbW9yZSIgaHJlZj0iL29uZSI+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX0ljb25XcmFwcGVyLXNjLTQ1MmRjMmIwLTEgaHp1T1BVIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFN1YmxpbmtJY29uX19JY29uV3JhcHBlci1zYy1iMjc5MTY3Yy0wIGZySmNjcCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIiBkYXRhLXRlc3RpZD0iY29pbmJhc2VPbmUtaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImNvaW5iYXNlT25lTG9nbyIgZGF0YS10ZXN0aWQ9ImNvaW5iYXNlT25lLWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwibw8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Q29pbmJhc2UgT25lPC9zcGFuPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19EZXNjcmlwdGlvbi1zYy00NTJkYzJiMC0zIGJYT1BmUSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkdldCB6ZXJvIHRyYWRpbmcgZmVlcyBhbmQgbW9yZTwvc3Bhbj48L2Rpdj48L2E+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggU3VibWVudUxpbmtfX0xpbmtXcmFwcGVyLXNjLTQ1MmRjMmIwLTYgYnhadVhoIiB0aXRsZT0iQ29pbmJhc2UgTGVhcm4gLSBDcnlwdG8gdGlwcyBhbmQgZ3VpZGVzIiBocmVmPSIvbGVhcm4iPjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19JY29uV3JhcHBlci1zYy00NTJkYzJiMC0xIGh6dU9QVSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBTdWJsaW5rSWNvbl9fSWNvbldyYXBwZXItc2MtYjI3OTE2N2MtMCBmckpjY3AiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZy1mMXNvcmFnNCBjZHMtSWNvbiIgZGF0YS10ZXN0aWQ9ImxlYXJuLWljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJsaWdodGJ1bGIiIGRhdGEtdGVzdGlkPSJsZWFybi1pY29uLWdseXBoIiByb2xlPSJpbWciIHN0eWxlPSJ3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4IiB0cmFuc2xhdGU9Im5vIj7zsJWSPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19UZXh0V3JhcHBlci1zYy00NTJkYzJiMC0wIGlhdWhtWiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIGVwWkRvbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkxlYXJuPC9zcGFuPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19EZXNjcmlwdGlvbi1zYy00NTJkYzJiMC0zIGJYT1BmUSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkNyeXB0byB0aXBzIGFuZCBndWlkZXM8L3NwYW4+PC9kaXY+PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEtXzR3ZjY2IGNvbHVtbi1jMWZrNmFvaCI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIENvbHVtbkhlYWRlcl9fQ29udGVudC1zYy05NDM3MWRkYi0xIGdlb21HaSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkVhcm48L3NwYW4+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggU3VibWVudUxpbmtfX0xpbmtXcmFwcGVyLXNjLTQ1MmRjMmIwLTYgYnhadVhoIiB0aXRsZT0iRWFybiBjcnlwdG8gcmV3YXJkcyBpbiBWaXNhIGRlYml0IiBocmVmPSIvY2FyZCI+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX0ljb25XcmFwcGVyLXNjLTQ1MmRjMmIwLTEgaHp1T1BVIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFN1YmxpbmtJY29uX19JY29uV3JhcHBlci1zYy1iMjc5MTY3Yy0wIGZySmNjcCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIiBkYXRhLXRlc3RpZD0iY3lEZWJpdENhcmQtaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9InBheW1lbnRDYXJkIiBkYXRhLXRlc3RpZD0iY3lEZWJpdENhcmQtaWNvbi1nbHlwaCIgcm9sZT0iaW1nIiBzdHlsZT0id2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LXNpemU6MjBweCIgdHJhbnNsYXRlPSJubyI+87CZjjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fVGV4dFdyYXBwZXItc2MtNDUyZGMyYjAtMCBpYXVobVoiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fVGl0bGUtc2MtNDUyZGMyYjAtMiBlcFpEb20iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5EZWJpdCBjYXJkPC9zcGFuPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19EZXNjcmlwdGlvbi1zYy00NTJkYzJiMC0zIGJYT1BmUSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkVhcm4gY3J5cHRvIHJld2FyZHMgaW4gVmlzYSBkZWJpdDwvc3Bhbj48L2Rpdj48L2E+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggU3VibWVudUxpbmtfX0xpbmtXcmFwcGVyLXNjLTQ1MmRjMmIwLTYgYnhadVhoIiB0aXRsZT0iU3Rha2UgeW91ciBjcnlwdG8gYW5kIGVhcm4gcmV3YXJkcyIgaHJlZj0iL2Vhcm4iPjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19JY29uV3JhcHBlci1zYy00NTJkYzJiMC0xIGh6dU9QVSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBTdWJsaW5rSWNvbl9fSWNvbldyYXBwZXItc2MtYjI3OTE2N2MtMCBmckpjY3AiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZy1mMXNvcmFnNCBjZHMtSWNvbiIgZGF0YS10ZXN0aWQ9InN0YWtpbmctaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9InBlcmNlbnRhZ2UiIGRhdGEtdGVzdGlkPSJzdGFraW5nLWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwmbg8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+U3Rha2luZzwvc3Bhbj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fRGVzY3JpcHRpb24tc2MtNDUyZGMyYjAtMyBiWE9QZlEiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5TdGFrZSB5b3VyIGNyeXB0byBhbmQgZWFybiByZXdhcmRzPC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJQb3N0LCBlYXJuLCB0cmFkZSwgZGlzY292ZXIgYXBwcywgYW5kIGNoYXQgd2l0aCBmcmllbmRzLCBhbGwgaW4gb25lIHBsYWNlIiBocmVmPSJodHRwczovL2Jhc2UuYXBwIj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fSWNvbldyYXBwZXItc2MtNDUyZGMyYjAtMSBoenVPUFUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAgZnJKY2NwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24iIGRhdGEtdGVzdGlkPSJjeUJhc2VBcHAtaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImJhc2VTcXVhcmUiIGRhdGEtdGVzdGlkPSJjeUJhc2VBcHAtaWNvbi1nbHlwaCIgcm9sZT0iaW1nIiBzdHlsZT0id2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LXNpemU6MjBweCIgdHJhbnNsYXRlPSJubyI+87CDjDwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fVGV4dFdyYXBwZXItc2MtNDUyZGMyYjAtMCBpYXVobVoiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fVGl0bGUtc2MtNDUyZGMyYjAtMiBlcFpEb20iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5CYXNlIEFwcDwvc3Bhbj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fRGVzY3JpcHRpb24tc2MtNDUyZGMyYjAtMyBiWE9QZlEiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5Qb3N0LCBlYXJuLCB0cmFkZSwgZGlzY292ZXIgYXBwcywgYW5kIGNoYXQgd2l0aCBmcmllbmRzLCBhbGwgaW4gb25lIHBsYWNlPC9zcGFuPjwvZGl2PjwvYT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHN0YXJ0LXMxNHhndGsyIHJvdy1yMWZqdjJjMCBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19EZXNjcmlwdGlvbkNvbHVtbi1zYy00ODU1YzAzNS0wIGNzdElyeCI+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggVHJhcGRvb3JEZXNjcmlwdGlvbkNvbHVtbl9fU3R5bGVkTGluay1zYy00ODU1YzAzNS0yIGhLR1lZViIgdGl0bGU9IlN0YXJ0IHRyYWRpbmciIGhyZWY9Ii9hZHZhbmNlZC10cmFkZS9ldS1kZXJpdmF0aXZlcyI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfNC1faDhxdnExIF8yLV9udTNoNW0gY29sdW1uLWMxZms2YW9oIHJvdy1yMWNwYnV4NiBfMi1fMTVpem1vZyI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19JbWFnZVdyYXBwZXItc2MtNDg1NWMwMzUtMyBpaHBKRGUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgYmdBbHRlcm5hdGUtYnR4dnRncyBfNjAwLV9ncWswdzEgYXNwZWN0UmF0aW8tYTg0c2J3ZiBDRFhJbWFnZV9fSW1hZ2VDb250YWluZXItc2MtNGE0ZGQxNWUtMCBpVk53eGEiIGRhdGEtdGVzdGlkPSJpbWFnZS1jb250YWluZXIiIHN0eWxlPSItLWFzcGVjdFJhdGlvOjEvMTstLW9iamVjdC1maXQtYmFzZTpjb3ZlcjstLW9iamVjdC1maXQtcGhvbmU6Y292ZXI7LS1vYmplY3QtZml0LXRhYmxldDpjb3ZlcjstLW9iamVjdC1maXQtZGVza3RvcDpjb3ZlciI+PHBpY3R1cmUgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlIiBjbGFzcz0iQ0RYSW1hZ2VfX1N0eWxlZFBpY3R1cmUtc2MtNGE0ZGQxNWUtMSBpU1FUTmgiPjxzb3VyY2UgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLXNvdXJjZS1hdmlmLWJhc2UiIHNyY1NldD0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvN3UyODhZZTNWcXF1bHJYbkFrcGVnNi8xZGFlYWMxNDY4YmYwZjIyNzk0NzM0MjJjNTRiODhjYy9HVE0yNTc2NV9QcmVkaWN0aW9uX01hcmtldHNfR2xvYmFsTmF2VXBzZWxsXzE3NXgxNzVfXzJfLnBuZz9mbT1hdmlmJmFtcDt3PTQ5NSZhbXA7aD00OTUmYW1wO3E9NjUiIHR5cGU9ImltYWdlL2F2aWYiIHdpZHRoPSI0OTUiIGhlaWdodD0iNDk1Ii8+PHNvdXJjZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2Utc291cmNlLXdlYnAtYmFzZSIgc3JjU2V0PSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS83dTI4OFllM1ZxcXVsclhuQWtwZWc2LzFkYWVhYzE0NjhiZjBmMjI3OTQ3MzQyMmM1NGI4OGNjL0dUTTI1NzY1X1ByZWRpY3Rpb25fTWFya2V0c19HbG9iYWxOYXZVcHNlbGxfMTc1eDE3NV9fMl8ucG5nP2ZtPXdlYnAmYW1wO3c9NDk1JmFtcDtoPTQ5NSZhbXA7cT03NSIgdHlwZT0iaW1hZ2Uvd2VicCIgd2lkdGg9IjQ5NSIgaGVpZ2h0PSI0OTUiLz48aW1nIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1pbWciIHNyYz0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvN3UyODhZZTNWcXF1bHJYbkFrcGVnNi8xZGFlYWMxNDY4YmYwZjIyNzk0NzM0MjJjNTRiODhjYy9HVE0yNTc2NV9QcmVkaWN0aW9uX01hcmtldHNfR2xvYmFsTmF2VXBzZWxsXzE3NXgxNzVfXzJfLnBuZyIgYWx0PSJQcmVkaWN0aW9ucyBuYXZpZ2F0aW9uIHVwc2VsbCIgbG9hZGluZz0ibGF6eSIgaGVpZ2h0PSI0OTUiIHdpZHRoPSI0OTUiIGNsYXNzPSJDRFhJbWFnZV9fU3R5bGVkSW1hZ2Utc2MtNGE0ZGQxNWUtMiBoZE1wV2wiLz48L3BpY3R1cmU+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIF8xLV9qOWo5MXkgVHJhcGRvb3JEZXNjcmlwdGlvbkNvbHVtbl9fVGV4dFdyYXBwZXItc2MtNDg1NWMwMzUtNCBpUGNoT1AiPjxwIGNsYXNzPSIgYmxvY2stYnZtYmZsaiBjb2x1bW4tYzFmazZhb2ggXzAtX3ZiejN3YSBfMi1fcWg1MG92IGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWZsZXhHcm93OjEiPjxzcGFuIGNsYXNzPSIgYmxvY2stYnZtYmZsaiBmZy1mMXNvcmFnNCBiLWZmIGItZnMgYi1mdyBiLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19UZXh0LXNjLTQ4NTVjMDM1LTEgZHdUYW5IIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+TmV3OiBQZXJwLVN0eWxlIEZ1dHVyZXM8L3NwYW4+PHNwYW4gY2xhc3M9IiBibG9jay1idm1iZmxqIGZnTXV0ZWQtZnFyYXFwbyBiLWZmIGItZnMgYi1mdyBiLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19UZXh0LXNjLTQ4NTVjMDM1LTEgZHdUYW5IIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+R28gbG9uZyBvciBzaG9ydCB3aXRoIHVwIHRvIDEweCBsZXZlcmFnZS4gSGlnaCBSaXNrLCBDYXBpdGFsIGF0IFJpc2suPC9zcGFuPjwvcD48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgVHJhcGRvb3JEZXNjcmlwdGlvbkNvbHVtbl9fVW5kZXJsaW5lZFRleHQtc2MtNDg1NWMwMzUtNSBzZmpOQSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlN0YXJ0IHRyYWRpbmc8L3NwYW4+PC9kaXY+PC9kaXY+PC9hPjwvZGl2PjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xMDAwLV90cWhycjkgTmF2TGlua0l0ZW1fX0l0ZW1XcmFwcGVyLXNjLThiMDM1NzQ2LTAgZXBlV0pHIiBkYXRhLXRlc3RpZD0ibWFpbi1uYXYtbGluay1idXNpbmVzc2VzIiB0YWJpbmRleD0iMCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9Imdsb2JhbC1uYXYtZHJvcGRvd24tYnVzaW5lc3NlcyIgcm9sZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBib2R5LWIxMmlwczlrIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBNYWluTmF2X19OYXZMaW5rSXRlbVRleHQtc2MtMTNlYWIxOS00IGd0aHFodSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkJ1c2luZXNzZXM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBUcmFwZG9vckNvbnRlbnRXcmFwcGVyX19PdmVybGF5LXNjLTU5OTY3NGRhLTEgalBSTVB3IiBzdHlsZT0idG9wOmNhbGMoMTAwJSAtIDBweCk7aGVpZ2h0OjEwMHZoIj48L2Rpdj48c2VjdGlvbiBzdHlsZT0idG9wOmNhbGMoMTAwJSAtIDBweCk7bWF4LWhlaWdodDoxMDB2aCIgY2xhc3M9IlRyYXBkb29yQ29udGVudFdyYXBwZXJfX1dyYXBwZXItc2MtNTk5Njc0ZGEtMCBqeHN3dGwiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzItXzFkNTZ2azMgXzQtXzFvbmZhaXQgQ0RYQ29udGFpbmVyLXNjLWRlYjZhZDE1LTAgVHJhcGRvb3JDb250ZW50V3JhcHBlcl9fQ29udGVudC1zYy01OTk2NzRkYS0yIGNmV1RQVSBnV1VzWGQiPjxkaXYgaWQ9Imdsb2JhbC1uYXYtZHJvcGRvd24tYnVzaW5lc3MiIGNsYXNzPSJBY2Nlc3NpYmlsaXR5V3JhcHBlci1zYy1kMmU1MGQ0OS0wIGJBSGV0ayI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1faDJsZXl5IF80LV8xMGVxb2M5IFRyYXBkb29yUHJvZHVjdExpc3RDb2x1bW5fX0NvbHVtbldyYXBwZXItc2MtNWM4ZmFjZmQtMCBkbGhOSU0iPjxhIGNsYXNzPSJHbG9iYWxOYXZMaW5rX19TdHlsZWRMaW5rLXNjLTFhNWRiODVjLTAgakprSmtIIFN1Ym1lbnVMaW5rX19MaW5rV3JhcHBlci1zYy00NTJkYzJiMC02IGJ4WnVYaCIgdGl0bGU9IkNvaW5iYXNlIEJ1c2luZXNzIC0gQ3J5cHRvIHRyYWRpbmcgYW5kIHBheW1lbnRzIGZvciBzdGFydHVwcyBhbmQgU01CcyIgaHJlZj0iL2J1c2luZXNzIj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fSWNvbldyYXBwZXItc2MtNDUyZGMyYjAtMSBoenVPUFUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAgZnJKY2NwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24iIGRhdGEtdGVzdGlkPSJjb2luYmFzZUJ1c2luZXNzLWljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJicmllZmNhc2UiIGRhdGEtdGVzdGlkPSJjb2luYmFzZUJ1c2luZXNzLWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwhJQ8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+QnVzaW5lc3M8L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMgYlhPUGZRIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Q3J5cHRvIHRyYWRpbmcgYW5kIHBheW1lbnRzIGZvciBzdGFydHVwcyBhbmQgU01Cczwvc3Bhbj48L2Rpdj48L2E+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggU3VibWVudUxpbmtfX0xpbmtXcmFwcGVyLXNjLTQ1MmRjMmIwLTYgYnhadVhoIiB0aXRsZT0iR28gdG8gQXNzZXQgTGlzdGluZ3MiIGhyZWY9Ii9saXN0aW5ncyI+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX0ljb25XcmFwcGVyLXNjLTQ1MmRjMmIwLTEgaHp1T1BVIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFN1YmxpbmtJY29uX19JY29uV3JhcHBlci1zYy1iMjc5MTY3Yy0wIGZySmNjcCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIiBkYXRhLXRlc3RpZD0iYXNzZXRMaXN0aW5ncy1pY29uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBtLW0xajdiNDY1IiBkYXRhLWljb24tbmFtZT0iYXNzZXRIdWJQcm9kdWN0IiBkYXRhLXRlc3RpZD0iYXNzZXRMaXN0aW5ncy1pY29uLWdseXBoIiByb2xlPSJpbWciIHN0eWxlPSJ3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4IiB0cmFuc2xhdGU9Im5vIj7zsIKEPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19UZXh0V3JhcHBlci1zYy00NTJkYzJiMC0wIGlhdWhtWiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIGVwWkRvbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkFzc2V0IExpc3RpbmdzPC9zcGFuPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19EZXNjcmlwdGlvbi1zYy00NTJkYzJiMC0zIGJYT1BmUSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkxpc3QgeW91ciBhc3NldCBvbiBDb2luYmFzZTwvc3Bhbj48L2Rpdj48L2E+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggU3VibWVudUxpbmtfX0xpbmtXcmFwcGVyLXNjLTQ1MmRjMmIwLTYgYnhadVhoIiB0aXRsZT0iR28gdG8gVG9rZW4gTWFuYWdlciIgaHJlZj0iL3Rva2VubWFuYWdlciI+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX0ljb25XcmFwcGVyLXNjLTQ1MmRjMmIwLTEgaHp1T1BVIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFN1YmxpbmtJY29uX19JY29uV3JhcHBlci1zYy1iMjc5MTY3Yy0wIGZySmNjcCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIiBkYXRhLXRlc3RpZD0idG9rZW5NYW5hZ2VyLWljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJhc3NldE1hbmFnZW1lbnRQcm9kdWN0IiBkYXRhLXRlc3RpZD0idG9rZW5NYW5hZ2VyLWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwgoo8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+VG9rZW4gTWFuYWdlcjwvc3Bhbj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fRGVzY3JpcHRpb24tc2MtNDUyZGMyYjAtMyBiWE9QZlEiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5UaGUgcGxhdGZvcm0gZm9yIHRva2VuIGRpc3RyaWJ1dGlvbnMsIHZlc3RpbmcsIGFuZCBsb2NrdXBzPC9zcGFuPjwvZGl2PjwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHN0YXJ0LXMxNHhndGsyIHJvdy1yMWZqdjJjMCBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19EZXNjcmlwdGlvbkNvbHVtbi1zYy00ODU1YzAzNS0wIGNzdElyeCI+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggVHJhcGRvb3JEZXNjcmlwdGlvbkNvbHVtbl9fU3R5bGVkTGluay1zYy00ODU1YzAzNS0yIGhLR1lZViIgdGl0bGU9IkxlYXJuIG1vcmUiIGhyZWY9Ii9idXNpbmVzcyI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfNC1faDhxdnExIF8yLV9udTNoNW0gY29sdW1uLWMxZms2YW9oIHJvdy1yMWNwYnV4NiBfMi1fMTVpem1vZyI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19JbWFnZVdyYXBwZXItc2MtNDg1NWMwMzUtMyBpaHBKRGUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgYmdBbHRlcm5hdGUtYnR4dnRncyBfNjAwLV9ncWswdzEgYXNwZWN0UmF0aW8tYTg0c2J3ZiBDRFhJbWFnZV9fSW1hZ2VDb250YWluZXItc2MtNGE0ZGQxNWUtMCBpVk53eGEiIGRhdGEtdGVzdGlkPSJpbWFnZS1jb250YWluZXIiIHN0eWxlPSItLWFzcGVjdFJhdGlvOjEvMTstLW9iamVjdC1maXQtYmFzZTpjb3ZlcjstLW9iamVjdC1maXQtcGhvbmU6Y292ZXI7LS1vYmplY3QtZml0LXRhYmxldDpjb3ZlcjstLW9iamVjdC1maXQtZGVza3RvcDpjb3ZlciI+PHBpY3R1cmUgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlIiBjbGFzcz0iQ0RYSW1hZ2VfX1N0eWxlZFBpY3R1cmUtc2MtNGE0ZGQxNWUtMSBpU1FUTmgiPjxzb3VyY2UgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLXNvdXJjZS1hdmlmLWJhc2UiIHNyY1NldD0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvNjd1cE5scHQzczNTM0N6ZExub1p0Si81MzdlYmVhZjg1OTVlMmNmNDBjODdlMTAyM2FiZjk0ZC9OYXZfVGh1bWJuYWlsX18xXy5wbmc/Zm09YXZpZiZhbXA7dz00MTYmYW1wO2g9NDE2JmFtcDtxPTY1IiB0eXBlPSJpbWFnZS9hdmlmIiB3aWR0aD0iNDE2IiBoZWlnaHQ9IjQxNiIvPjxzb3VyY2UgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLXNvdXJjZS13ZWJwLWJhc2UiIHNyY1NldD0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvNjd1cE5scHQzczNTM0N6ZExub1p0Si81MzdlYmVhZjg1OTVlMmNmNDBjODdlMTAyM2FiZjk0ZC9OYXZfVGh1bWJuYWlsX18xXy5wbmc/Zm09d2VicCZhbXA7dz00MTYmYW1wO2g9NDE2JmFtcDtxPTc1IiB0eXBlPSJpbWFnZS93ZWJwIiB3aWR0aD0iNDE2IiBoZWlnaHQ9IjQxNiIvPjxpbWcgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLWltZyIgc3JjPSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS82N3VwTmxwdDNzM1MzQ3pkTG5vWnRKLzUzN2ViZWFmODU5NWUyY2Y0MGM4N2UxMDIzYWJmOTRkL05hdl9UaHVtYm5haWxfXzFfLnBuZyIgYWx0PSJDb2luYmFzZSBidXNpbmVzcyIgbG9hZGluZz0ibGF6eSIgaGVpZ2h0PSI0MTYiIHdpZHRoPSI0MTYiIGNsYXNzPSJDRFhJbWFnZV9fU3R5bGVkSW1hZ2Utc2MtNGE0ZGQxNWUtMiBoZE1wV2wiLz48L3BpY3R1cmU+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIF8xLV9qOWo5MXkgVHJhcGRvb3JEZXNjcmlwdGlvbkNvbHVtbl9fVGV4dFdyYXBwZXItc2MtNDg1NWMwMzUtNCBpUGNoT1AiPjxwIGNsYXNzPSIgYmxvY2stYnZtYmZsaiBjb2x1bW4tYzFmazZhb2ggXzAtX3ZiejN3YSBfMi1fcWg1MG92IGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWZsZXhHcm93OjEiPjxzcGFuIGNsYXNzPSIgYmxvY2stYnZtYmZsaiBmZy1mMXNvcmFnNCBiLWZmIGItZnMgYi1mdyBiLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19UZXh0LXNjLTQ4NTVjMDM1LTEgZHdUYW5IIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Q29pbmJhc2UgQnVzaW5lc3M8L3NwYW4+PHNwYW4gY2xhc3M9IiBibG9jay1idm1iZmxqIGZnTXV0ZWQtZnFyYXFwbyBiLWZmIGItZnMgYi1mdyBiLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19UZXh0LXNjLTQ4NTVjMDM1LTEgZHdUYW5IIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+QWxsLWluLW9uZSBjcnlwdG8gYWNjb3VudCBmb3IgYnVzaW5lc3Nlcy48L3NwYW4+PC9wPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19VbmRlcmxpbmVkVGV4dC1zYy00ODU1YzAzNS01IHNmak5BIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+TGVhcm4gbW9yZTwvc3Bhbj48L2Rpdj48L2Rpdj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEwMDAtX3RxaHJyOSBOYXZMaW5rSXRlbV9fSXRlbVdyYXBwZXItc2MtOGIwMzU3NDYtMCBlcGVXSkciIGRhdGEtdGVzdGlkPSJtYWluLW5hdi1saW5rLWluc3RpdHV0aW9ucyIgdGFiaW5kZXg9IjAiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJnbG9iYWwtbmF2LWRyb3Bkb3duLWluc3RpdHV0aW9ucyIgcm9sZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBib2R5LWIxMmlwczlrIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBNYWluTmF2X19OYXZMaW5rSXRlbVRleHQtc2MtMTNlYWIxOS00IGd0aHFodSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkluc3RpdHV0aW9uczwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFRyYXBkb29yQ29udGVudFdyYXBwZXJfX092ZXJsYXktc2MtNTk5Njc0ZGEtMSBqUFJNUHciIHN0eWxlPSJ0b3A6Y2FsYygxMDAlIC0gMHB4KTtoZWlnaHQ6MTAwdmgiPjwvZGl2PjxzZWN0aW9uIHN0eWxlPSJ0b3A6Y2FsYygxMDAlIC0gMHB4KTttYXgtaGVpZ2h0OjEwMHZoIiBjbGFzcz0iVHJhcGRvb3JDb250ZW50V3JhcHBlcl9fV3JhcHBlci1zYy01OTk2NzRkYS0wIGp4c3d0bCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fMWQ1NnZrMyBfNC1fMW9uZmFpdCBDRFhDb250YWluZXItc2MtZGViNmFkMTUtMCBUcmFwZG9vckNvbnRlbnRXcmFwcGVyX19Db250ZW50LXNjLTU5OTY3NGRhLTIgY2ZXVFBVIGdXVXNYZCI+PGRpdiBpZD0iZ2xvYmFsLW5hdi1kcm9wZG93bi1pbnN0aXR1dGlvbnMiIGNsYXNzPSJBY2Nlc3NpYmlsaXR5V3JhcHBlci1zYy1kMmU1MGQ0OS0wIGJBSGV0ayI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1faDJsZXl5IF80LV8xMGVxb2M5IFRyYXBkb29yUHJvZHVjdExpc3RDb2x1bW5fX0NvbHVtbldyYXBwZXItc2MtNWM4ZmFjZmQtMCBkbGhOSU0iPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEtXzR3ZjY2IGNvbHVtbi1jMWZrNmFvaCI+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggQ29sdW1uSGVhZGVyX19TdHlsZWRMaW5rLXNjLTk0MzcxZGRiLTAgYmlKek9lIiBocmVmPSIvcHJpbWUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY2VudGVyLWNjMWJhZncgcm93LXIxZmp2MmMwIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgQ29sdW1uSGVhZGVyX19Db250ZW50LXNjLTk0MzcxZGRiLTEgZ2VvbUdpIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+UHJpbWU8L3NwYW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBtLW0xajdiNDY1IiBkYXRhLWljb24tbmFtZT0iY2FyZXRSaWdodCIgZGF0YS10ZXN0aWQ9Imljb24tYmFzZS1nbHlwaCIgcm9sZT0iaW1nIiBzdHlsZT0id2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LXNpemU6MjBweCIgdHJhbnNsYXRlPSJubyI+87CFljwvc3Bhbj48L2Rpdj48L2Rpdj48L2E+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggU3VibWVudUxpbmtfX0xpbmtXcmFwcGVyLXNjLTQ1MmRjMmIwLTYgYnhadVhoIiB0aXRsZT0iVHJhZGluZyBhbmQgRmluYW5jaW5nIC0gUHJvZmVzc2lvbmFsIHByaW1lIGJyb2tlcmFnZSBzZXJ2aWNlcyIgaHJlZj0iL3ByaW1lL2ZpbmFuY2luZyI+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX0ljb25XcmFwcGVyLXNjLTQ1MmRjMmIwLTEgaHp1T1BVIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFN1YmxpbmtJY29uX19JY29uV3JhcHBlci1zYy1iMjc5MTY3Yy0wIGZySmNjcCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIiBkYXRhLXRlc3RpZD0idHJhZGluZ0FuZEZpbmFuY2luZy1pY29uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBtLW0xajdiNDY1IiBkYXRhLWljb24tbmFtZT0icHJpbWVQb2R1Y3QiIGRhdGEtdGVzdGlkPSJ0cmFkaW5nQW5kRmluYW5jaW5nLWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwmqg8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+VHJhZGluZyBhbmQgRmluYW5jaW5nPC9zcGFuPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19EZXNjcmlwdGlvbi1zYy00NTJkYzJiMC0zIGJYT1BmUSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlByb2Zlc3Npb25hbCBwcmltZSBicm9rZXJhZ2Ugc2VydmljZXM8L3NwYW4+PC9kaXY+PC9hPjxhIGNsYXNzPSJHbG9iYWxOYXZMaW5rX19TdHlsZWRMaW5rLXNjLTFhNWRiODVjLTAgakprSmtIIFN1Ym1lbnVMaW5rX19MaW5rV3JhcHBlci1zYy00NTJkYzJiMC02IGJ4WnVYaCIgdGl0bGU9IkN1c3RvZHkgLSBTZWN1cmVseSBzdG9yZSBhbGwgeW91ciBkaWdpdGFsIGFzc2V0cyIgaHJlZj0iL3ByaW1lL2N1c3RvZHkiPjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19JY29uV3JhcHBlci1zYy00NTJkYzJiMC0xIGh6dU9QVSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBTdWJsaW5rSWNvbl9fSWNvbldyYXBwZXItc2MtYjI3OTE2N2MtMCBmckpjY3AiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZy1mMXNvcmFnNCBjZHMtSWNvbiIgZGF0YS10ZXN0aWQ9ImN1c3RvZHktaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImN1c3RvZHlQcm9kdWN0IiBkYXRhLXRlc3RpZD0iY3VzdG9keS1pY29uLWdseXBoIiByb2xlPSJpbWciIHN0eWxlPSJ3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4IiB0cmFuc2xhdGU9Im5vIj7zsIuuPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19UZXh0V3JhcHBlci1zYy00NTJkYzJiMC0wIGlhdWhtWiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIGVwWkRvbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkN1c3RvZHk8L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMgYlhPUGZRIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+U2VjdXJlbHkgc3RvcmUgYWxsIHlvdXIgZGlnaXRhbCBhc3NldHM8L3NwYW4+PC9kaXY+PC9hPjxhIGNsYXNzPSJHbG9iYWxOYXZMaW5rX19TdHlsZWRMaW5rLXNjLTFhNWRiODVjLTAgakprSmtIIFN1Ym1lbnVMaW5rX19MaW5rV3JhcHBlci1zYy00NTJkYzJiMC02IGJ4WnVYaCIgdGl0bGU9IlN0YWtpbmcgLSBFeHBsb3JlIHN0YWtpbmcgYWNyb3NzIG91ciBwcm9kdWN0cyIgaHJlZj0iL3N0YWtpbmciPjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19JY29uV3JhcHBlci1zYy00NTJkYzJiMC0xIGh6dU9QVSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBTdWJsaW5rSWNvbl9fSWNvbldyYXBwZXItc2MtYjI3OTE2N2MtMCBmckpjY3AiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZy1mMXNvcmFnNCBjZHMtSWNvbiIgZGF0YS10ZXN0aWQ9InN0YWtpbmctaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9InBlcmNlbnRhZ2UiIGRhdGEtdGVzdGlkPSJzdGFraW5nLWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwmbg8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+U3Rha2luZzwvc3Bhbj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fRGVzY3JpcHRpb24tc2MtNDUyZGMyYjAtMyBiWE9QZlEiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5FeHBsb3JlIHN0YWtpbmcgYWNyb3NzIG91ciBwcm9kdWN0czwvc3Bhbj48L2Rpdj48L2E+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggU3VibWVudUxpbmtfX0xpbmtXcmFwcGVyLXNjLTQ1MmRjMmIwLTYgYnhadVhoIiB0aXRsZT0iT25jaGFpbiBXYWxsZXQgLSBJbnN0aXR1dGlvbmFsLWdyYWRlIHdhbGxldCB0byBnZXQgb25jaGFpbiIgaHJlZj0iL3ByaW1lL29uY2hhaW4td2FsbGV0Ij48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fSWNvbldyYXBwZXItc2MtNDUyZGMyYjAtMSBoenVPUFUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAgZnJKY2NwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24iIGRhdGEtdGVzdGlkPSJvbmNoYWluV2FsbGV0LWljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJibG9ja2NoYWluIiBkYXRhLXRlc3RpZD0ib25jaGFpbldhbGxldC1pY29uLWdseXBoIiByb2xlPSJpbWciIHN0eWxlPSJ3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4IiB0cmFuc2xhdGU9Im5vIj7zsIOwPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19UZXh0V3JhcHBlci1zYy00NTJkYzJiMC0wIGlhdWhtWiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIGVwWkRvbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPk9uY2hhaW4gV2FsbGV0PC9zcGFuPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19EZXNjcmlwdGlvbi1zYy00NTJkYzJiMC0zIGJYT1BmUSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkluc3RpdHV0aW9uYWwtZ3JhZGUgd2FsbGV0IHRvIGdldCBvbmNoYWluPC9zcGFuPjwvZGl2PjwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjb2x1bW4tYzFmazZhb2giPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBDb2x1bW5IZWFkZXJfX0NvbnRlbnQtc2MtOTQzNzFkZGItMSBnZW9tR2kiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5NYXJrZXRzPC9zcGFuPjxhIGNsYXNzPSJHbG9iYWxOYXZMaW5rX19TdHlsZWRMaW5rLXNjLTFhNWRiODVjLTAgakprSmtIIFN1Ym1lbnVMaW5rX19MaW5rV3JhcHBlci1zYy00NTJkYzJiMC02IGJ4WnVYaCIgdGl0bGU9IkNvaW5iYXNlIEV4Y2hhbmdlIC0gU3BvdCBtYXJrZXRzIGZvciBoaWdoLWZyZXF1ZW5jeSB0cmFkaW5nIiBocmVmPSIvZXhjaGFuZ2UiPjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19JY29uV3JhcHBlci1zYy00NTJkYzJiMC0xIGh6dU9QVSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBTdWJsaW5rSWNvbl9fSWNvbldyYXBwZXItc2MtYjI3OTE2N2MtMCBmckpjY3AiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZy1mMXNvcmFnNCBjZHMtSWNvbiIgZGF0YS10ZXN0aWQ9ImV4Y2hhbmdlLWljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJleGNoYW5nZVByb2R1Y3QiIGRhdGEtdGVzdGlkPSJleGNoYW5nZS1pY29uLWdseXBoIiByb2xlPSJpbWciIHN0eWxlPSJ3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4IiB0cmFuc2xhdGU9Im5vIj7zsI66PC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19UZXh0V3JhcHBlci1zYy00NTJkYzJiMC0wIGlhdWhtWiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIGVwWkRvbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkV4Y2hhbmdlPC9zcGFuPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19EZXNjcmlwdGlvbi1zYy00NTJkYzJiMC0zIGJYT1BmUSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlNwb3QgbWFya2V0cyBmb3IgaGlnaC1mcmVxdWVuY3kgdHJhZGluZzwvc3Bhbj48L2Rpdj48L2E+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggU3VibWVudUxpbmtfX0xpbmtXcmFwcGVyLXNjLTQ1MmRjMmIwLTYgYnhadVhoIiB0aXRsZT0iQ29pbmJhc2UgRGVyaXZhdGl2ZXMgRXhjaGFuZ2UgLSBUcmFkZSBhbiBhY2Nlc3NpYmxlIGZ1dHVyZXMgbWFya2V0IiBocmVmPSIvZGVyaXZhdGl2ZXMiPjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19JY29uV3JhcHBlci1zYy00NTJkYzJiMC0xIGh6dU9QVSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBTdWJsaW5rSWNvbl9fSWNvbldyYXBwZXItc2MtYjI3OTE2N2MtMCBmckpjY3AiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZy1mMXNvcmFnNCBjZHMtSWNvbiIgZGF0YS10ZXN0aWQ9ImRlcml2YXRpdmVzRXhjaGFuZ2UtaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImRlcml2YXRpdmVzUHJvZHVjdCIgZGF0YS10ZXN0aWQ9ImRlcml2YXRpdmVzRXhjaGFuZ2UtaWNvbi1nbHlwaCIgcm9sZT0iaW1nIiBzdHlsZT0id2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LXNpemU6MjBweCIgdHJhbnNsYXRlPSJubyI+87CMmDwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fVGV4dFdyYXBwZXItc2MtNDUyZGMyYjAtMCBpYXVobVoiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fVGl0bGUtc2MtNDUyZGMyYjAtMiBlcFpEb20iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5EZXJpdmF0aXZlcyBFeGNoYW5nZTwvc3Bhbj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fRGVzY3JpcHRpb24tc2MtNDUyZGMyYjAtMyBiWE9QZlEiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5UcmFkZSBhbiBhY2Nlc3NpYmxlIGZ1dHVyZXMgbWFya2V0PC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJWZXJpZmllZCBQb29scyAtIEFjY2VzcyB2ZXJpZmllZCBwb29scyIgaHJlZj0iL3ZlcmlmaWVkLXBvb2xzIj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fSWNvbldyYXBwZXItc2MtNDUyZGMyYjAtMSBoenVPUFUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAgZnJKY2NwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24iIGRhdGEtdGVzdGlkPSJ2ZXJpZmllZFBvb2xzLWljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJ2ZXJpZmllZFBvb2xzIiBkYXRhLXRlc3RpZD0idmVyaWZpZWRQb29scy1pY29uLWdseXBoIiByb2xlPSJpbWciIHN0eWxlPSJ3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4IiB0cmFuc2xhdGU9Im5vIj7zsKOQPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19UZXh0V3JhcHBlci1zYy00NTJkYzJiMC0wIGlhdWhtWiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIGVwWkRvbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlZlcmlmaWVkIFBvb2xzPC9zcGFuPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19EZXNjcmlwdGlvbi1zYy00NTJkYzJiMC0zIGJYT1BmUSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlRyYW5zcGFyZW50LCB2ZXJpZmllZCBsaXF1aWRpdHkgcG9vbHM8L3NwYW4+PC9kaXY+PC9hPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgc3RhcnQtczE0eGd0azIgcm93LXIxZmp2MmMwIFRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX0Rlc2NyaXB0aW9uQ29sdW1uLXNjLTQ4NTVjMDM1LTAgY3N0SXJ4Ij48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19TdHlsZWRMaW5rLXNjLTQ4NTVjMDM1LTIgaEtHWVlWIiB0aXRsZT0iTGVhcm4gbW9yZSIgaHJlZj0iL2luc3RpdHV0aW9uYWwvY2xpZW50cy9nb3Zlcm5tZW50Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF80LV9oOHF2cTEgXzItX251M2g1bSBjb2x1bW4tYzFmazZhb2ggcm93LXIxY3BidXg2IF8yLV8xNWl6bW9nIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX0ltYWdlV3JhcHBlci1zYy00ODU1YzAzNS0zIGlocEpEZSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBiZ0FsdGVybmF0ZS1idHh2dGdzIF82MDAtX2dxazB3MSBhc3BlY3RSYXRpby1hODRzYndmIENEWEltYWdlX19JbWFnZUNvbnRhaW5lci1zYy00YTRkZDE1ZS0wIGlWTnd4YSIgZGF0YS10ZXN0aWQ9ImltYWdlLWNvbnRhaW5lciIgc3R5bGU9Ii0tYXNwZWN0UmF0aW86MS8xOy0tb2JqZWN0LWZpdC1iYXNlOmNvdmVyOy0tb2JqZWN0LWZpdC1waG9uZTpjb3ZlcjstLW9iamVjdC1maXQtdGFibGV0OmNvdmVyOy0tb2JqZWN0LWZpdC1kZXNrdG9wOmNvdmVyIj48cGljdHVyZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2UiIGNsYXNzPSJDRFhJbWFnZV9fU3R5bGVkUGljdHVyZS1zYy00YTRkZDE1ZS0xIGlTUVROaCI+PHNvdXJjZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2Utc291cmNlLWJhc2UiIHNyY1NldD0iaHR0cHM6Ly9zdGF0aWMtYXNzZXRzLmNvaW5iYXNlLmNvbS9ncm93dGgvYWNxdWlzaXRpb24vZ2xvYmFsLW5hdi91cHNlbGwvaW5zdGl0dXRpb25zX3Vwc2VsbC5wbmciIHR5cGU9ImltYWdlL3BuZyIgd2lkdGg9IjIwOCIgaGVpZ2h0PSIyMDgiLz48aW1nIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1pbWciIHNyYz0iaHR0cHM6Ly9zdGF0aWMtYXNzZXRzLmNvaW5iYXNlLmNvbS9ncm93dGgvYWNxdWlzaXRpb24vZ2xvYmFsLW5hdi91cHNlbGwvaW5zdGl0dXRpb25zX3Vwc2VsbC5wbmciIGFsdD0iIiBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjIwOCIgd2lkdGg9IjIwOCIgY2xhc3M9IkNEWEltYWdlX19TdHlsZWRJbWFnZS1zYy00YTRkZDE1ZS0yIGhkTXBXbCIvPjwvcGljdHVyZT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjb2x1bW4tYzFmazZhb2ggXzEtX2o5ajkxeSBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19UZXh0V3JhcHBlci1zYy00ODU1YzAzNS00IGlQY2hPUCI+PHAgY2xhc3M9IiBibG9jay1idm1iZmxqIGNvbHVtbi1jMWZrNmFvaCBfMC1fdmJ6M3dhIF8yLV9xaDUwb3YgZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0tZmxleEdyb3c6MSI+PHNwYW4gY2xhc3M9IiBibG9jay1idm1iZmxqIGZnLWYxc29yYWc0IGItZmYgYi1mcyBiLWZ3IGItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX1RleHQtc2MtNDg1NWMwMzUtMSBkd1RhbkgiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5PdXIgY2xpZW50czwvc3Bhbj48c3BhbiBjbGFzcz0iIGJsb2NrLWJ2bWJmbGogZmdNdXRlZC1mcXJhcXBvIGItZmYgYi1mcyBiLWZ3IGItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX1RleHQtc2MtNDg1NWMwMzUtMSBkd1RhbkgiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5UcnVzdGVkIGJ5IGluc3RpdHV0aW9ucyBhbmQgZ292ZXJubWVudC48L3NwYW4+PC9wPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19VbmRlcmxpbmVkVGV4dC1zYy00ODU1YzAzNS01IHNmak5BIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+TGVhcm4gbW9yZTwvc3Bhbj48L2Rpdj48L2Rpdj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEwMDAtX3RxaHJyOSBOYXZMaW5rSXRlbV9fSXRlbVdyYXBwZXItc2MtOGIwMzU3NDYtMCBlcGVXSkciIGRhdGEtdGVzdGlkPSJtYWluLW5hdi1saW5rLWRldmVsb3BlcnMiIHRhYmluZGV4PSIwIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0iZ2xvYmFsLW5hdi1kcm9wZG93bi1kZXZlbG9wZXJzIiByb2xlPSJidXR0b24iPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGJvZHktYjEyaXBzOWsgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIE1haW5OYXZfX05hdkxpbmtJdGVtVGV4dC1zYy0xM2VhYjE5LTQgZ3RocWh1IiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+RGV2ZWxvcGVyczwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFRyYXBkb29yQ29udGVudFdyYXBwZXJfX092ZXJsYXktc2MtNTk5Njc0ZGEtMSBqUFJNUHciIHN0eWxlPSJ0b3A6Y2FsYygxMDAlIC0gMHB4KTtoZWlnaHQ6MTAwdmgiPjwvZGl2PjxzZWN0aW9uIHN0eWxlPSJ0b3A6Y2FsYygxMDAlIC0gMHB4KTttYXgtaGVpZ2h0OjEwMHZoIiBjbGFzcz0iVHJhcGRvb3JDb250ZW50V3JhcHBlcl9fV3JhcHBlci1zYy01OTk2NzRkYS0wIGp4c3d0bCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fMWQ1NnZrMyBfNC1fMW9uZmFpdCBDRFhDb250YWluZXItc2MtZGViNmFkMTUtMCBUcmFwZG9vckNvbnRlbnRXcmFwcGVyX19Db250ZW50LXNjLTU5OTY3NGRhLTIgY2ZXVFBVIGdXVXNYZCI+PGRpdiBpZD0iZ2xvYmFsLW5hdi1kcm9wZG93bi1kZXZlbG9wZXJzIiBjbGFzcz0iQWNjZXNzaWJpbGl0eVdyYXBwZXItc2MtZDJlNTBkNDktMCBiQUhldGsiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzItX2gybGV5eSBfNC1fMTBlcW9jOSBUcmFwZG9vclByb2R1Y3RMaXN0Q29sdW1uX19Db2x1bW5XcmFwcGVyLXNjLTVjOGZhY2ZkLTAgZGxoTklNIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjb2x1bW4tYzFmazZhb2giPjxhIGNsYXNzPSJHbG9iYWxOYXZMaW5rX19TdHlsZWRMaW5rLXNjLTFhNWRiODVjLTAgakprSmtIIENvbHVtbkhlYWRlcl9fU3R5bGVkTGluay1zYy05NDM3MWRkYi0wIGJpSnpPZSIgaHJlZj0iL2RldmVsb3Blci1wbGF0Zm9ybSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjZW50ZXItY2MxYmFmdyByb3ctcjFmanYyYzAiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBDb2x1bW5IZWFkZXJfX0NvbnRlbnQtc2MtOTQzNzFkZGItMSBnZW9tR2kiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5Db2luYmFzZSBEZXZlbG9wZXIgUGxhdGZvcm08L3NwYW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBtLW0xajdiNDY1IiBkYXRhLWljb24tbmFtZT0iY2FyZXRSaWdodCIgZGF0YS10ZXN0aWQ9Imljb24tYmFzZS1nbHlwaCIgcm9sZT0iaW1nIiBzdHlsZT0id2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LXNpemU6MjBweCIgdHJhbnNsYXRlPSJubyI+87CFljwvc3Bhbj48L2Rpdj48L2Rpdj48L2E+PGEgY2xhc3M9Ikdsb2JhbE5hdkxpbmtfX1N0eWxlZExpbmstc2MtMWE1ZGI4NWMtMCBqSmtKa0ggU3VibWVudUxpbmtfX0xpbmtXcmFwcGVyLXNjLTQ1MmRjMmIwLTYgYnhadVhoIiB0aXRsZT0iUGF5bWVudHMgLSBGYXN0IGFuZCBnbG9iYWwgc3RhYmxlY29pbiBwYXltZW50cyIgaHJlZj0iL3BheW1lbnRzIj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fSWNvbldyYXBwZXItc2MtNDUyZGMyYjAtMSBoenVPUFUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAgZnJKY2NwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24iIGRhdGEtdGVzdGlkPSJwYXltZW50cy1pY29uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBtLW0xajdiNDY1IiBkYXRhLWljb24tbmFtZT0icGF5IiBkYXRhLXRlc3RpZD0icGF5bWVudHMtaWNvbi1nbHlwaCIgcm9sZT0iaW1nIiBzdHlsZT0id2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LXNpemU6MjBweCIgdHJhbnNsYXRlPSJubyI+87CZgjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fVGV4dFdyYXBwZXItc2MtNDUyZGMyYjAtMCBpYXVobVoiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fVGl0bGUtc2MtNDUyZGMyYjAtMiBlcFpEb20iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5QYXltZW50czwvc3Bhbj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fRGVzY3JpcHRpb24tc2MtNDUyZGMyYjAtMyBiWE9QZlEiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5GYXN0IGFuZCBnbG9iYWwgc3RhYmxlY29pbiBwYXltZW50cyB3aXRoIGEgc2luZ2xlIGludGVncmF0aW9uPC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJUcmFkaW5nIC0gTGF1bmNoIGNyeXB0byB0cmFkaW5nIGFuZCBjdXN0b2R5IGZvciB5b3VyIHVzZXJzIiBocmVmPSIvZGV2ZWxvcGVyLXBsYXRmb3JtL3RyYWRpbmciPjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19JY29uV3JhcHBlci1zYy00NTJkYzJiMC0xIGh6dU9QVSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBTdWJsaW5rSWNvbl9fSWNvbldyYXBwZXItc2MtYjI3OTE2N2MtMCBmckpjY3AiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZy1mMXNvcmFnNCBjZHMtSWNvbiIgZGF0YS10ZXN0aWQ9InRyYWRpbmctaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImFkdmFuY2VkVHJhZGVQcm9kdWN0IiBkYXRhLXRlc3RpZD0idHJhZGluZy1pY29uLWdseXBoIiByb2xlPSJpbWciIHN0eWxlPSJ3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4IiB0cmFuc2xhdGU9Im5vIj7zsICkPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19UZXh0V3JhcHBlci1zYy00NTJkYzJiMC0wIGlhdWhtWiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIGVwWkRvbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlRyYWRpbmc8L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMgYlhPUGZRIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+TGF1bmNoIGNyeXB0byB0cmFkaW5nIGFuZCBjdXN0b2R5IGZvciB5b3VyIHVzZXJzPC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJXYWxsZXRzIC0gRGVwbG95IGN1c3RvbWl6YWJsZSBhbmQgc2NhbGFibGUgd2FsbGV0cyBmb3IgeW91ciBidXNpbmVzcyIgaHJlZj0iL2RldmVsb3Blci1wbGF0Zm9ybS93YWxsZXRzIj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fSWNvbldyYXBwZXItc2MtNDUyZGMyYjAtMSBoenVPUFUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAgZnJKY2NwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24iIGRhdGEtdGVzdGlkPSJ3YWFzLWljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJ3YWxsZXQiIGRhdGEtdGVzdGlkPSJ3YWFzLWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwo6g8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+V2FsbGV0czwvc3Bhbj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fRGVzY3JpcHRpb24tc2MtNDUyZGMyYjAtMyBiWE9QZlEiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5EZXBsb3kgY3VzdG9taXphYmxlIGFuZCBzY2FsYWJsZSB3YWxsZXRzIGZvciB5b3VyIGJ1c2luZXNzPC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJTdGFibGVjb2lucyAtIEFjY2VzcyBVU0RDIGFuZCBDb2luYmFzZSBDdXN0b20gU3RhYmxlY29pbnMiIGhyZWY9Ii9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvc3RhYmxlY29pbi1hcy1hLXNlcnZpY2UiPjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19JY29uV3JhcHBlci1zYy00NTJkYzJiMC0xIGh6dU9QVSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBTdWJsaW5rSWNvbl9fSWNvbldyYXBwZXItc2MtYjI3OTE2N2MtMCBmckpjY3AiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZy1mMXNvcmFnNCBjZHMtSWNvbiIgZGF0YS10ZXN0aWQ9InN0YWJsZWNvaW5zLWljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJjdXJyZW5jaWVzIiBkYXRhLXRlc3RpZD0ic3RhYmxlY29pbnMtaWNvbi1nbHlwaCIgcm9sZT0iaW1nIiBzdHlsZT0id2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LXNpemU6MjBweCIgdHJhbnNsYXRlPSJubyI+87CLqDwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fVGV4dFdyYXBwZXItc2MtNDUyZGMyYjAtMCBpYXVobVoiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fVGl0bGUtc2MtNDUyZGMyYjAtMiBlcFpEb20iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5TdGFibGVjb2luczwvc3Bhbj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fRGVzY3JpcHRpb24tc2MtNDUyZGMyYjAtMyBiWE9QZlEiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5BY2Nlc3MgVVNEQyBhbmQgQ29pbmJhc2UgQ3VzdG9tIFN0YWJsZWNvaW5zPC9zcGFuPjwvZGl2PjwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjb2x1bW4tYzFmazZhb2giPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBDb2x1bW5IZWFkZXJfX0NvbnRlbnQtc2MtOTQzNzFkZGItMSBnZW9tR2kiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5Tb2x1dGlvbnMgZm9yIGFueSBjb21wYW55PC9zcGFuPjxhIGNsYXNzPSJHbG9iYWxOYXZMaW5rX19TdHlsZWRMaW5rLXNjLTFhNWRiODVjLTAgakprSmtIIFN1Ym1lbnVMaW5rX19MaW5rV3JhcHBlci1zYy00NTJkYzJiMC02IGJ4WnVYaCIgdGl0bGU9IkJhbmtzICZhbXA7IEJyb2tlcmFnZXMgLSBTZWN1cmUsIHJlZ3VsYXRlZCBvZmZlcmluZ3MgZm9yIGJhbmtpbmcgY2xpZW50cyIgaHJlZj0iL2RldmVsb3Blci1wbGF0Zm9ybS9iYW5rcyI+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX0ljb25XcmFwcGVyLXNjLTQ1MmRjMmIwLTEgaHp1T1BVIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFN1YmxpbmtJY29uX19JY29uV3JhcHBlci1zYy1iMjc5MTY3Yy0wIGZySmNjcCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIiBkYXRhLXRlc3RpZD0iYmFua3MtaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImJhbmsiIGRhdGEtdGVzdGlkPSJiYW5rcy1pY29uLWdseXBoIiByb2xlPSJpbWciIHN0eWxlPSJ3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4IiB0cmFuc2xhdGU9Im5vIj7zsIKoPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19UZXh0V3JhcHBlci1zYy00NTJkYzJiMC0wIGlhdWhtWiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIGVwWkRvbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkJhbmtzICZhbXA7IEJyb2tlcmFnZXM8L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMgYlhPUGZRIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+U2VjdXJlLCByZWd1bGF0ZWQgb2ZmZXJpbmdzIGZvciByZXRhaWwsIHByaXZhdGUgYmFua2luZywgJmFtcDsgaW5zdGl0dXRpb25hbCBjbGllbnRzPC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJQYXltZW50IEZpcm1zIC0gR2xvYmFsIHBheW1lbnQgcmFpbHMgZm9yIG1vZGVybiBwcm92aWRlcnMiIGhyZWY9Ii9kZXZlbG9wZXItcGxhdGZvcm0vcGF5bWVudGZpcm1zIj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fSWNvbldyYXBwZXItc2MtNDUyZGMyYjAtMSBoenVPUFUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAgZnJKY2NwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24iIGRhdGEtdGVzdGlkPSJwYXltZW50RmlybXMtaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImNhcmQiIGRhdGEtdGVzdGlkPSJwYXltZW50RmlybXMtaWNvbi1nbHlwaCIgcm9sZT0iaW1nIiBzdHlsZT0id2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LXNpemU6MjBweCIgdHJhbnNsYXRlPSJubyI+87CEvjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fVGV4dFdyYXBwZXItc2MtNDUyZGMyYjAtMCBpYXVobVoiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fVGl0bGUtc2MtNDUyZGMyYjAtMiBlcFpEb20iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5QYXltZW50IEZpcm1zPC9zcGFuPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19EZXNjcmlwdGlvbi1zYy00NTJkYzJiMC0zIGJYT1BmUSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPk5lYXItaW5zdGFudCwgbG93LWNvc3QsIGdsb2JhbCBwYXltZW50IHJhaWxzIGZvciBtb2Rlcm4gcHJvdmlkZXJzPC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJTdGFydHVwcyAtIExhdW5jaCB5b3VyIGJ1c2luZXNzIHdpdGggdGhlIHdvcmxkJiN4Mjc7cyBsZWFkZXIgaW4gY3J5cHRvIiBocmVmPSIvZGV2ZWxvcGVyLXBsYXRmb3JtL3N0YXJ0dXBzIj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fSWNvbldyYXBwZXItc2MtNDUyZGMyYjAtMSBoenVPUFUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAgZnJKY2NwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24iIGRhdGEtdGVzdGlkPSJzdGFydHVwcy1pY29uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBtLW0xajdiNDY1IiBkYXRhLWljb24tbmFtZT0iYXBpIiBkYXRhLXRlc3RpZD0ic3RhcnR1cHMtaWNvbi1nbHlwaCIgcm9sZT0iaW1nIiBzdHlsZT0id2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LXNpemU6MjBweCIgdHJhbnNsYXRlPSJubyI+87CBgjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fVGV4dFdyYXBwZXItc2MtNDUyZGMyYjAtMCBpYXVobVoiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fVGl0bGUtc2MtNDUyZGMyYjAtMiBlcFpEb20iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5TdGFydHVwczwvc3Bhbj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fRGVzY3JpcHRpb24tc2MtNDUyZGMyYjAtMyBiWE9QZlEiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5MYXVuY2ggeW91ciBidXNpbmVzcyB3aXRoIHRoZSB3b3JsZCYjeDI3O3MgbGVhZGVyIGluIGNyeXB0bzwvc3Bhbj48L2Rpdj48L2E+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBzdGFydC1zMTR4Z3RrMiByb3ctcjFmanYyYzAgVHJhcGRvb3JEZXNjcmlwdGlvbkNvbHVtbl9fRGVzY3JpcHRpb25Db2x1bW4tc2MtNDg1NWMwMzUtMCBjc3RJcngiPjxhIGNsYXNzPSJHbG9iYWxOYXZMaW5rX19TdHlsZWRMaW5rLXNjLTFhNWRiODVjLTAgakprSmtIIFRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX1N0eWxlZExpbmstc2MtNDg1NWMwMzUtMiBoS0dZWVYiIHRpdGxlPSJMZWFybiBtb3JlIiBocmVmPSIvZGV2ZWxvcGVyLXBsYXRmb3JtIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF80LV9oOHF2cTEgXzItX251M2g1bSBjb2x1bW4tYzFmazZhb2ggcm93LXIxY3BidXg2IF8yLV8xNWl6bW9nIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX0ltYWdlV3JhcHBlci1zYy00ODU1YzAzNS0zIGlocEpEZSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBiZ0FsdGVybmF0ZS1idHh2dGdzIF82MDAtX2dxazB3MSBhc3BlY3RSYXRpby1hODRzYndmIENEWEltYWdlX19JbWFnZUNvbnRhaW5lci1zYy00YTRkZDE1ZS0wIGlWTnd4YSIgZGF0YS10ZXN0aWQ9ImltYWdlLWNvbnRhaW5lciIgc3R5bGU9Ii0tYXNwZWN0UmF0aW86MS8xOy0tb2JqZWN0LWZpdC1iYXNlOmNvdmVyOy0tb2JqZWN0LWZpdC1waG9uZTpjb3ZlcjstLW9iamVjdC1maXQtdGFibGV0OmNvdmVyOy0tb2JqZWN0LWZpdC1kZXNrdG9wOmNvdmVyIj48cGljdHVyZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2UiIGNsYXNzPSJDRFhJbWFnZV9fU3R5bGVkUGljdHVyZS1zYy00YTRkZDE1ZS0xIGlTUVROaCI+PHNvdXJjZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2Utc291cmNlLWJhc2UiIHNyY1NldD0iaHR0cHM6Ly9zdGF0aWMtYXNzZXRzLmNvaW5iYXNlLmNvbS9ncm93dGgvYWNxdWlzaXRpb24vZ2xvYmFsLW5hdi91cHNlbGwvZGV2ZWxvcGVyc191cHNlbGxfY2R4djJfMi5qcGciIHR5cGU9ImltYWdlL3BuZyIgd2lkdGg9IjIwOCIgaGVpZ2h0PSIyMDgiLz48aW1nIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1pbWciIHNyYz0iaHR0cHM6Ly9zdGF0aWMtYXNzZXRzLmNvaW5iYXNlLmNvbS9ncm93dGgvYWNxdWlzaXRpb24vZ2xvYmFsLW5hdi91cHNlbGwvZGV2ZWxvcGVyc191cHNlbGxfY2R4djJfMi5qcGciIGFsdD0iIiBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjIwOCIgd2lkdGg9IjIwOCIgY2xhc3M9IkNEWEltYWdlX19TdHlsZWRJbWFnZS1zYy00YTRkZDE1ZS0yIGhkTXBXbCIvPjwvcGljdHVyZT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjb2x1bW4tYzFmazZhb2ggXzEtX2o5ajkxeSBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19UZXh0V3JhcHBlci1zYy00ODU1YzAzNS00IGlQY2hPUCI+PHAgY2xhc3M9IiBibG9jay1idm1iZmxqIGNvbHVtbi1jMWZrNmFvaCBfMC1fdmJ6M3dhIF8yLV9xaDUwb3YgZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0tZmxleEdyb3c6MSI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYi1mZiBiLWZzIGItZncgYi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgVHJhcGRvb3JEZXNjcmlwdGlvbkNvbHVtbl9fVGV4dC1zYy00ODU1YzAzNS0xIGR3VGFuSCIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPldvcmxkIGNsYXNzIGNyeXB0byBpbmZyYXN0cnVjdHVyZS48IS0tIC0tPiA8L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmdNdXRlZC1mcXJhcXBvIGItZmYgYi1mcyBiLWZ3IGItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX1RleHQtc2MtNDg1NWMwMzUtMSBkd1RhbkgiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5EaXNjb3ZlciBDb2luYmFzZSYjeDI3O3MgY29tcGxldGUgY3J5cHRvLWFzLWEtc2VydmljZSBwbGF0Zm9ybS48L3NwYW4+PC9wPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19VbmRlcmxpbmVkVGV4dC1zYy00ODU1YzAzNS01IHNmak5BIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+TGVhcm4gbW9yZTwvc3Bhbj48L2Rpdj48L2Rpdj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEwMDAtX3RxaHJyOSBOYXZMaW5rSXRlbV9fSXRlbVdyYXBwZXItc2MtOGIwMzU3NDYtMCBlcGVXSkciIGRhdGEtdGVzdGlkPSJtYWluLW5hdi1saW5rLWNvbXBhbnkiIHRhYmluZGV4PSIwIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0iZ2xvYmFsLW5hdi1kcm9wZG93bi1jb21wYW55IiByb2xlPSJidXR0b24iPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGJvZHktYjEyaXBzOWsgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIE1haW5OYXZfX05hdkxpbmtJdGVtVGV4dC1zYy0xM2VhYjE5LTQgZ3RocWh1IiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Q29tcGFueTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFRyYXBkb29yQ29udGVudFdyYXBwZXJfX092ZXJsYXktc2MtNTk5Njc0ZGEtMSBqUFJNUHciIHN0eWxlPSJ0b3A6Y2FsYygxMDAlIC0gMHB4KTtoZWlnaHQ6MTAwdmgiPjwvZGl2PjxzZWN0aW9uIHN0eWxlPSJ0b3A6Y2FsYygxMDAlIC0gMHB4KTttYXgtaGVpZ2h0OjEwMHZoIiBjbGFzcz0iVHJhcGRvb3JDb250ZW50V3JhcHBlcl9fV3JhcHBlci1zYy01OTk2NzRkYS0wIGp4c3d0bCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fMWQ1NnZrMyBfNC1fMW9uZmFpdCBDRFhDb250YWluZXItc2MtZGViNmFkMTUtMCBUcmFwZG9vckNvbnRlbnRXcmFwcGVyX19Db250ZW50LXNjLTU5OTY3NGRhLTIgY2ZXVFBVIGdXVXNYZCI+PGRpdiBpZD0iZ2xvYmFsLW5hdi1kcm9wZG93bi1jb21wYW55IiBjbGFzcz0iQWNjZXNzaWJpbGl0eVdyYXBwZXItc2MtZDJlNTBkNDktMCBiQUhldGsiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzItX2gybGV5eSBfNC1fMTBlcW9jOSBUcmFwZG9vclByb2R1Y3RMaXN0Q29sdW1uX19Db2x1bW5XcmFwcGVyLXNjLTVjOGZhY2ZkLTAgZGxoTklNIj48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJQb3dlcmluZyB0aGUgY3J5cHRvIGVjb25vbXkiIGhyZWY9Ii9hYm91dCI+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX0ljb25XcmFwcGVyLXNjLTQ1MmRjMmIwLTEgaHp1T1BVIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFN1YmxpbmtJY29uX19JY29uV3JhcHBlci1zYy1iMjc5MTY3Yy0wIGZySmNjcCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIiBkYXRhLXRlc3RpZD0iY29tcGFueUFib3V0LWljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJpbmZvIiBkYXRhLXRlc3RpZD0iY29tcGFueUFib3V0LWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwlIQ8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+QWJvdXQ8L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMgYlhPUGZRIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+UG93ZXJpbmcgdGhlIGNyeXB0byBlY29ub215PC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJDYXJlZXJzIC0gV29yayB3aXRoIHVzIiBocmVmPSIvY2FyZWVycyI+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX0ljb25XcmFwcGVyLXNjLTQ1MmRjMmIwLTEgaHp1T1BVIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFN1YmxpbmtJY29uX19JY29uV3JhcHBlci1zYy1iMjc5MTY3Yy0wIGZySmNjcCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIiBkYXRhLXRlc3RpZD0iY2FyZWVycy1pY29uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBtLW0xajdiNDY1IiBkYXRhLWljb24tbmFtZT0iYnJpZWZjYXNlIiBkYXRhLXRlc3RpZD0iY2FyZWVycy1pY29uLWdseXBoIiByb2xlPSJpbWciIHN0eWxlPSJ3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4IiB0cmFuc2xhdGU9Im5vIj7zsISUPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19UZXh0V3JhcHBlci1zYy00NTJkYzJiMC0wIGlhdWhtWiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIGVwWkRvbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkNhcmVlcnM8L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMgYlhPUGZRIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+V29yayB3aXRoIHVzPC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJBZmZpbGlhdGVzIC0gSGVscCBpbnRyb2R1Y2UgdGhlIHdvcmxkIHRvIGNyeXB0byIgaHJlZj0iL2FmZmlsaWF0ZXMiPjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19JY29uV3JhcHBlci1zYy00NTJkYzJiMC0xIGh6dU9QVSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBTdWJsaW5rSWNvbl9fSWNvbldyYXBwZXItc2MtYjI3OTE2N2MtMCBmckpjY3AiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZy1mMXNvcmFnNCBjZHMtSWNvbiIgZGF0YS10ZXN0aWQ9ImFmZmlsaWF0ZXMtaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImFmZmlsaWF0ZXMiIGRhdGEtdGVzdGlkPSJhZmZpbGlhdGVzLWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwgKo8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+QWZmaWxpYXRlczwvc3Bhbj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBTdWJtZW51TGlua19fRGVzY3JpcHRpb24tc2MtNDUyZGMyYjAtMyBiWE9QZlEiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5IZWxwIGludHJvZHVjZSB0aGUgd29ybGQgdG8gY3J5cHRvPC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJTdXBwb3J0IC0gRmluZCBhbnN3ZXJzIHRvIHlvdXIgcXVlc3Rpb25zIiBocmVmPSJodHRwczovL2hlbHAuY29pbmJhc2UuY29tIj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fSWNvbldyYXBwZXItc2MtNDUyZGMyYjAtMSBoenVPUFUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAgZnJKY2NwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24iIGRhdGEtdGVzdGlkPSJzdXBwb3J0LWljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJjaGF0QnViYmxlIiBkYXRhLXRlc3RpZD0ic3VwcG9ydC1pY29uLWdseXBoIiByb2xlPSJpbWciIHN0eWxlPSJ3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4IiB0cmFuc2xhdGU9Im5vIj7zsIiKPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19UZXh0V3JhcHBlci1zYy00NTJkYzJiMC0wIGlhdWhtWiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIGVwWkRvbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlN1cHBvcnQ8L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMgYlhPUGZRIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+RmluZCBhbnN3ZXJzIHRvIHlvdXIgcXVlc3Rpb25zPC9zcGFuPjwvZGl2PjwvYT48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBTdWJtZW51TGlua19fTGlua1dyYXBwZXItc2MtNDUyZGMyYjAtNiBieFp1WGgiIHRpdGxlPSJCbG9nIC0gUmVhZCB0aGUgbGF0ZXN0IGZyb20gQ29pbmJhc2UiIGhyZWY9Ii9ibG9nIj48ZGl2IGNsYXNzPSJTdWJtZW51TGlua19fSWNvbldyYXBwZXItc2MtNDUyZGMyYjAtMSBoenVPUFUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgU3VibGlua0ljb25fX0ljb25XcmFwcGVyLXNjLWIyNzkxNjdjLTAgZnJKY2NwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24iIGRhdGEtdGVzdGlkPSJibG9nLWljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJibG9nIiBkYXRhLXRlc3RpZD0iYmxvZy1pY29uLWdseXBoIiByb2xlPSJpbWciIHN0eWxlPSJ3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtc2l6ZToyMHB4IiB0cmFuc2xhdGU9Im5vIj7zsIO2PC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IlN1Ym1lbnVMaW5rX19UZXh0V3JhcHBlci1zYy00NTJkYzJiMC0wIGlhdWhtWiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFN1Ym1lbnVMaW5rX19UaXRsZS1zYy00NTJkYzJiMC0yIGVwWkRvbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkJsb2c8L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMgYlhPUGZRIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+UmVhZCB0aGUgbGF0ZXN0IGZyb20gQ29pbmJhc2U8L3NwYW4+PC9kaXY+PC9hPjxhIGNsYXNzPSJHbG9iYWxOYXZMaW5rX19TdHlsZWRMaW5rLXNjLTFhNWRiODVjLTAgakprSmtIIFN1Ym1lbnVMaW5rX19MaW5rV3JhcHBlci1zYy00NTJkYzJiMC02IGJ4WnVYaCIgdGl0bGU9IlNlY3VyaXR5IC0gVGhlIG1vc3QgdHJ1c3RlZCAmYW1wOyBzZWN1cmUiIGhyZWY9Ii9zZWN1cml0eSI+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX0ljb25XcmFwcGVyLXNjLTQ1MmRjMmIwLTEgaHp1T1BVIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IFN1YmxpbmtJY29uX19JY29uV3JhcHBlci1zYy1iMjc5MTY3Yy0wIGZySmNjcCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIiBkYXRhLXRlc3RpZD0ic2VjdXJpdHktaWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9InNoaWVsZCIgZGF0YS10ZXN0aWQ9InNlY3VyaXR5LWljb24tZ2x5cGgiIHJvbGU9ImltZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Zm9udC1zaXplOjIwcHgiIHRyYW5zbGF0ZT0ibm8iPvOwnbo8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iU3VibWVudUxpbmtfX1RleHRXcmFwcGVyLXNjLTQ1MmRjMmIwLTAgaWF1aG1aIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX1RpdGxlLXNjLTQ1MmRjMmIwLTIgZXBaRG9tIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+U2VjdXJpdHk8L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgU3VibWVudUxpbmtfX0Rlc2NyaXB0aW9uLXNjLTQ1MmRjMmIwLTMgYlhPUGZRIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+VGhlIG1vc3QgdHJ1c3RlZCAmYW1wOyBzZWN1cmU8L3NwYW4+PC9kaXY+PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgc3RhcnQtczE0eGd0azIgcm93LXIxZmp2MmMwIFRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX0Rlc2NyaXB0aW9uQ29sdW1uLXNjLTQ4NTVjMDM1LTAgY3N0SXJ4Ij48YSBjbGFzcz0iR2xvYmFsTmF2TGlua19fU3R5bGVkTGluay1zYy0xYTVkYjg1Yy0wIGpKa0prSCBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19TdHlsZWRMaW5rLXNjLTQ4NTVjMDM1LTIgaEtHWVlWIiB0aXRsZT0iQ3JlYXRlIHlvdXIgYWNjb3VudCIgaHJlZj0iL3NpZ251cCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfNC1faDhxdnExIF8yLV9udTNoNW0gY29sdW1uLWMxZms2YW9oIHJvdy1yMWNwYnV4NiBfMi1fMTVpem1vZyI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19JbWFnZVdyYXBwZXItc2MtNDg1NWMwMzUtMyBpaHBKRGUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgYmdBbHRlcm5hdGUtYnR4dnRncyBfNjAwLV9ncWswdzEgYXNwZWN0UmF0aW8tYTg0c2J3ZiBDRFhJbWFnZV9fSW1hZ2VDb250YWluZXItc2MtNGE0ZGQxNWUtMCBpVk53eGEiIGRhdGEtdGVzdGlkPSJpbWFnZS1jb250YWluZXIiIHN0eWxlPSItLWFzcGVjdFJhdGlvOjQvMzstLW9iamVjdC1maXQtYmFzZTpjb3ZlcjstLW9iamVjdC1maXQtcGhvbmU6Y292ZXI7LS1vYmplY3QtZml0LXRhYmxldDpjb3ZlcjstLW9iamVjdC1maXQtZGVza3RvcDpjb3ZlciI+PHBpY3R1cmUgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlIiBjbGFzcz0iQ0RYSW1hZ2VfX1N0eWxlZFBpY3R1cmUtc2MtNGE0ZGQxNWUtMSBpU1FUTmgiPjxzb3VyY2UgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLXNvdXJjZS1iYXNlIiBzcmNTZXQ9Imh0dHBzOi8vc3RhdGljLWFzc2V0cy5jb2luYmFzZS5jb20vZ3Jvd3RoL2FjcXVpc2l0aW9uL2dsb2JhbC1uYXYvdXBzZWxsL2NvbXBhbnlfdXBzZWxsLnBuZyIgdHlwZT0iaW1hZ2UvcG5nIiB3aWR0aD0iMjA4IiBoZWlnaHQ9IjIwOCIvPjxpbWcgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLWltZyIgc3JjPSJodHRwczovL3N0YXRpYy1hc3NldHMuY29pbmJhc2UuY29tL2dyb3d0aC9hY3F1aXNpdGlvbi9nbG9iYWwtbmF2L3Vwc2VsbC9jb21wYW55X3Vwc2VsbC5wbmciIGFsdD0iIiBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjIwOCIgd2lkdGg9IjIwOCIgY2xhc3M9IkNEWEltYWdlX19TdHlsZWRJbWFnZS1zYy00YTRkZDE1ZS0yIGhkTXBXbCIvPjwvcGljdHVyZT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjb2x1bW4tYzFmazZhb2ggXzEtX2o5ajkxeSBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19UZXh0V3JhcHBlci1zYy00ODU1YzAzNS00IGlQY2hPUCI+PHAgY2xhc3M9IiBibG9jay1idm1iZmxqIGNvbHVtbi1jMWZrNmFvaCBfMC1fdmJ6M3dhIF8yLV9xaDUwb3YgZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0tZmxleEdyb3c6MSI+PHNwYW4gY2xhc3M9IiBibG9jay1idm1iZmxqIGZnLWYxc29yYWc0IGItZmYgYi1mcyBiLWZ3IGItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIFRyYXBkb29yRGVzY3JpcHRpb25Db2x1bW5fX1RleHQtc2MtNDg1NWMwMzUtMSBkd1RhbkgiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5MZWFybiBhbGwgYWJvdXQgQ29pbmJhc2U6PC9zcGFuPjxzcGFuIGNsYXNzPSIgYmxvY2stYnZtYmZsaiBmZ011dGVkLWZxcmFxcG8gYi1mZiBiLWZzIGItZncgYi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgVHJhcGRvb3JEZXNjcmlwdGlvbkNvbHVtbl9fVGV4dC1zYy00ODU1YzAzNS0xIGR3VGFuSCIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPldlJiN4Mjc7cmUgYnVpbGRpbmcgdGhlIG9wZW4gZmluYW5jaWFsIHN5c3RlbS48L3NwYW4+PC9wPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBUcmFwZG9vckRlc2NyaXB0aW9uQ29sdW1uX19VbmRlcmxpbmVkVGV4dC1zYy00ODU1YzAzNS01IHNmak5BIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Q3JlYXRlIHlvdXIgYWNjb3VudDwvc3Bhbj48L2Rpdj48L2Rpdj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjwvbmF2PjxkaXYgY2xhc3M9Ik1haW5OYXZfX0xhbmd1YWdlU2VsZWN0b3JCdXR0b25XcmFwcGVyLXNjLTEzZWFiMTktMyBnQ2tYTHQiPjxkaXYgY2xhc3M9IkNEWEJ1dHRvbl9fQ0RYQnV0dG9uQ29udGFpbmVyLXNjLTY0MGM5NjIyLTAgaGp5SGtxIj48YnV0dG9uIGFyaWEtbGFiZWw9InNlYXJjaCIgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmdJbnZlcnNlLWYxc2Rsd2puIF8wLV8xOWluNjA2IF85MDAtXzFpMW5sbXogXzAtX3Npa2d4NiBfNC1fc203cmF1IF8wLV8xbzZiNXNmIF8wLV8xZHQ3Z2JwIG1pbldpZHRoLW1xcHFvN2wgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgc2NhbGVkRG93bkNzcy1zMW82YWx4ZCBjZHMtQnV0dG9uIGJhc2VDc3MtYjk5enF1aCBjZHgtYnV0dG9uICIgZGF0YS10ZXN0aWQ9ImJ1dHRvbiIgc3R5bGU9Ii0tbWluV2lkdGg6YXV0bzstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MiIgdHlwZT0iYnV0dG9uIiBkYXRhLXZhcmlhbnQ9InByaW1hcnkiPjxzcGFuIGNsYXNzPSJtaWRkbGVOb2RlQ3NzLW0xYXZwcTUyIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBjdXJyZW50Q29sb3ItYzF1bDY3OXEgaGVhZGxpbmUtaDE1dTB3ZTAgaGVhZGxpbmUtaDFjejE4NHkgaGVhZGxpbmUtaDFheGU2OGggaGVhZGxpbmUtaDFkOHhoM3cgY2VudGVyLWNmejk3ajkgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgc3R5bGU9Ii0tdGV4dC10ZXh0VHJhbnNmb3JtOnZhcigtLXRleHRUcmFuc2Zvcm0taGVhZGxpbmUpIj48c3BhbiBjbGFzcz0iIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmctZjFzb3JhZzQgY2RzLUljb24gQ0RYSWNvbi1zYy1iNjJmYjQ1My0wIGNhRVhYTiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9InNlYXJjaCIgZGF0YS10ZXN0aWQ9Imljb24tYmFzZS1nbHlwaCIgcm9sZT0iaW1nIiB0cmFuc2xhdGU9Im5vIj7zsJ2KPC9zcGFuPjwvZGl2Pjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9IkNEWEJ1dHRvbl9fQ0RYQnV0dG9uQ29udGFpbmVyLXNjLTY0MGM5NjIyLTAgaGp5SGtxIj48YnV0dG9uIGFyaWEtbGFiZWw9Im9wZW4gbGFuZ3VhZ2Ugc2VsZWN0b3IiIGNsYXNzPSIgZmxleC1mZjVyZnk2IGZnSW52ZXJzZS1mMXNkbHdqbiBfMC1fMTlpbjYwNiBfOTAwLV8xaTFubG16IF8wLV9zaWtneDYgXzQtX3NtN3JhdSBfMC1fMW82YjVzZiBfMC1fMWR0N2dicCBtaW5XaWR0aC1tcXBxbzdsIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIHNjYWxlZERvd25Dc3MtczFvNmFseGQgY2RzLUJ1dHRvbiBiYXNlQ3NzLWI5OXpxdWggY2R4LWJ1dHRvbiAiIGRhdGEtdGVzdGlkPSJidXR0b24iIHN0eWxlPSItLW1pbldpZHRoOmF1dG87LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODIiIHR5cGU9ImJ1dHRvbiIgZGF0YS12YXJpYW50PSJwcmltYXJ5Ij48c3BhbiBjbGFzcz0ibWlkZGxlTm9kZUNzcy1tMWF2cHE1MiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgY3VycmVudENvbG9yLWMxdWw2NzlxIGhlYWRsaW5lLWgxNXUwd2UwIGhlYWRsaW5lLWgxY3oxODR5IGhlYWRsaW5lLWgxYXhlNjhoIGhlYWRsaW5lLWgxZDh4aDN3IGNlbnRlci1jZno5N2o5IG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSItLXRleHQtdGV4dFRyYW5zZm9ybTp2YXIoLS10ZXh0VHJhbnNmb3JtLWhlYWRsaW5lKSI+PHNwYW4gY2xhc3M9IiI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnLWYxc29yYWc0IGNkcy1JY29uIENEWEljb24tc2MtYjYyZmI0NTMtMCBjYUVYWE4iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIG0tbTFqN2I0NjUiIGRhdGEtaWNvbi1uYW1lPSJnbG9iZSIgZGF0YS10ZXN0aWQ9Imljb24tYmFzZS1nbHlwaCIgcm9sZT0iaW1nIiB0cmFuc2xhdGU9Im5vIj7zsJKwPC9zcGFuPjwvZGl2Pjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9IkNEWEJ1dHRvbl9fQ0RYQnV0dG9uQ29udGFpbmVyLXNjLTY0MGM5NjIyLTAga1J4SWEiPjxhIGNsYXNzPSIgZmxleC1mZjVyZnk2IGZnSW52ZXJzZS1mMXNkbHdqbiBfMC1fMTlpbjYwNiBfOTAwLV8xaTFubG16IF8wLV9zaWtneDYgXzQtX3NtN3JhdSBfMC1fMW82YjVzZiBfMC1fMWR0N2dicCBtaW5XaWR0aC1tcXBxbzdsIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIHNjYWxlZERvd25Dc3MtczFvNmFseGQgY2RzLUJ1dHRvbiBiYXNlQ3NzLWI5OXpxdWggY2R4LWJ1dHRvbiAiIGRhdGEtdGVzdGlkPSJoZWFkZXItc2lnbi1pbi1idXR0b24iIHN0eWxlPSItLW1pbldpZHRoOmF1dG87LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODIiIGRhdGEtdmFyaWFudD0icHJpbWFyeSIgaHJlZj0iL3NpZ25pbj9sb2NhbGU9ZW4iIHRpdGxlPSJTaWduIGluIj48c3BhbiBjbGFzcz0ibWlkZGxlTm9kZUNzcy1tMWF2cHE1MiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgY3VycmVudENvbG9yLWMxdWw2NzlxIGhlYWRsaW5lLWgxNXUwd2UwIGhlYWRsaW5lLWgxY3oxODR5IGhlYWRsaW5lLWgxYXhlNjhoIGhlYWRsaW5lLWgxZDh4aDN3IGNlbnRlci1jZno5N2o5IG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSItLXRleHQtdGV4dFRyYW5zZm9ybTp2YXIoLS10ZXh0VHJhbnNmb3JtLWhlYWRsaW5lKSI+PHNwYW4gY2xhc3M9IiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtYmxvY2staTF3OGFmbzkgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+U2lnbiBpbjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0iQ0RYQnV0dG9uX19DRFhCdXR0b25Db250YWluZXItc2MtNjQwYzk2MjItMCBicVdpS0kiPjxhIGNsYXNzPSIgZmxleC1mZjVyZnk2IGZnSW52ZXJzZS1mMXNkbHdqbiBfMC1fMTlpbjYwNiBfOTAwLV8xaTFubG16IF8wLV9zaWtneDYgXzQtX3NtN3JhdSBfMC1fMW82YjVzZiBfMC1fMWR0N2dicCBtaW5XaWR0aC1tcXBxbzdsIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIHNjYWxlZERvd25Dc3MtczFvNmFseGQgY2RzLUJ1dHRvbiBiYXNlQ3NzLWI5OXpxdWggY2R4LWJ1dHRvbiAiIGRhdGEtdGVzdGlkPSJoZWFkZXItZ2V0LXN0YXJ0ZWQtYnV0dG9uIiBzdHlsZT0iLS1taW5XaWR0aDphdXRvOy0taW50ZXItaG92ZXItb3BhY2l0eTowLjg4Oy0taW50ZXItcHJlc3Mtb3BhY2l0eTowLjgyIiBkYXRhLXZhcmlhbnQ9InByaW1hcnkiIGhyZWY9Ii9zaWdudXA/dHlwZT1waWNrZXIiIHRpdGxlPSJTaWduIHVwIj48c3BhbiBjbGFzcz0ibWlkZGxlTm9kZUNzcy1tMWF2cHE1MiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgY3VycmVudENvbG9yLWMxdWw2NzlxIGhlYWRsaW5lLWgxNXUwd2UwIGhlYWRsaW5lLWgxY3oxODR5IGhlYWRsaW5lLWgxYXhlNjhoIGhlYWRsaW5lLWgxZDh4aDN3IGNlbnRlci1jZno5N2o5IG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSItLXRleHQtdGV4dFRyYW5zZm9ybTp2YXIoLS10ZXh0VHJhbnNmb3JtLWhlYWRsaW5lKSI+PHNwYW4gY2xhc3M9IiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtYmxvY2staTF3OGFmbzkgYmdMaW5lSW52ZXJzZS1iMXFhMWozcyBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5TaWduIHVwPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJza2lwLW5hdi1jb250ZW50IiBjbGFzcz0iTWFpbk5hdl9fTmF2QW5jaG9yLXNjLTEzZWFiMTktNyBmQnhRckQiPjwvZGl2PjwvZGl2PjwvaGVhZGVyPjxtYWluIGRhdGEtdGVzdGlkPSJjZHh2Mi1tYWluIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZykiPjxkaXYgY2xhc3M9IkNEWFNlY3Rpb25Db250YWluZXJfX0RpdkRpc3BsYXlDb250ZW50cy1zYy04YTRmMzU3ZS0wIEN2Y0JTIj48c2VjdGlvbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjZW50ZXItY2MxYmFmdyBjb2x1bW4tYzFmazZhb2ggYmctYnA3Z2czMSB3aWR0aC13czUxZXVmIiBzdHlsZT0iLS13aWR0aDoxMDAlIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gXzMtXzFkMnFmZjUgXzQtXzFzdTFnaTQgXzYtXzF5b2YweDcgY29sdW1uLWMxZms2YW9oIGJnLWJwN2dnMzEgXzItXzFkNTZ2azMgXzMtXzFkczZnYjUgXzQtXzFvbmZhaXQgXzQtX2V2dnpvaiBfNS1fMW1pYWpsdiBfOC1fMWxvMXY2cyB3aWR0aC13czUxZXVmIG1heFdpZHRoLW1hdnh0Mm0gbWF4V2lkdGgtbTEwZGswN28iIGRhdGEtdGVzdGlkPSJjZHgtc2VjdGlvbi1jb250YWluZXIiIHN0eWxlPSItLXdpZHRoOjEwMCU7LS10YWJsZXQtbWF4V2lkdGg6MTIyOHB4Oy0tZGVza3RvcC1tYXhXaWR0aDoxNjAwcHgiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMtXzFkMnFmZjUgXzQtXzFzdTFnaTQgXzYtXzF5b2YweDcgY29sdW1uLWMxZms2YW9oIHJvdy1yZXZlcnNlLXIxdnBiazF0IG1heEhlaWdodC1tb2xudmkiIHN0eWxlPSItLWRlc2t0b3AtbWF4SGVpZ2h0Ojc1dmgiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgY2VudGVyLWNqcHVqY2QgY29sdW1uLWMxZms2YW9oIGZsZXhCYXNpcy1mOTVia3BvIGZsZXhCYXNpcy1mMjl0MG5zIiBzdHlsZT0iLS1mbGV4QmFzaXM6MTAwJTstLWRlc2t0b3AtZmxleEJhc2lzOjUwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMy1fMWQycWZmNSBfMi1fMWQ1bHQ3OSBmbGV4LXN0YXJ0LWZhaTJ1ZmEgY29sdW1uLWMxZms2YW9oIj48ZGl2IGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGQyLWZmIGQyLWZzIGQyLWZzLW0gZDItZnMtdCBkMi1mcy1kIGQyLWZ3IGQyLWxoIGQyLWxoLW0gZDItbGgtdCBkMi1saC1kIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPjxoMSBjbGFzcz0icmljaFRleHRFbGVtZW50c19fSW5oZXJpdGVkRWxlbWVudC1zYy1lNjBhZDg4OS0yIHJpY2hUZXh0RWxlbWVudHNfX1N0eWxlZEgxLXNjLWU2MGFkODg5LTQgZVZtdkNYIGt1SEROWSI+VGhlIGZ1dHVyZSBvZiBmaW5hbmNlIGlzIGhlcmUuPGJyLz48L2gxPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgZmxleC1zdGFydC1mYWkydWZhIGNvbHVtbi1jMWZrNmFvaCB3aWR0aC13czUxZXVmIG1heFdpZHRoLW1scXg2dm4iIHN0eWxlPSItLXdpZHRoOjEwMCU7LS1tYXhXaWR0aDo5MDBweCI+PGRpdiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBiLWZmIGItZnMgYi1mdyBiLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPjxwIGNsYXNzPSJyaWNoVGV4dEVsZW1lbnRzX19Jbmhlcml0ZWRFbGVtZW50LXNjLWU2MGFkODg5LTIgcmljaFRleHRFbGVtZW50c19fU3R5bGVkUC1zYy1lNjBhZDg4OS0zIGVWbXZDWCBFRmNFUiI+VHJhZGUgY3J5cHRvIGFuZCBtb3JlIG9uIGEgcGxhdGZvcm0geW91IGNhbiB0cnVzdC48L3A+PC9kaXY+PGZvcm0gbm9WYWxpZGF0ZT0iIiBzdHlsZT0id2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fczNzM3Z4IGZsZXgtc3RhcnQtZjFlZ2doZ2sgY29sdW1uLWMxZGNkNDU5IHJvdy1yMXlxNXRtNiByb3ctcjFjcGJ1eDYgd2lkdGgtd3M1MWV1ZiIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiB3aWR0aC13czUxZXVmIG1heFdpZHRoLW0xb2NqYjMyIG1heFdpZHRoLW1hdnh0Mm0gbWF4V2lkdGgtbTEwZGswN28iIHN0eWxlPSItLXdpZHRoOjEwMCU7LS1waG9uZS1tYXhXaWR0aDoxMDAlOy0tdGFibGV0LW1heFdpZHRoOjQwMHB4Oy0tZGVza3RvcC1tYXhXaWR0aDo0MDBweCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMjAwLV90djdldGEgd2lkdGgtd3M1MWV1ZiBDRFhUZXh0SW5wdXRfX0lucHV0Q29udGFpbmVyLXNjLWRlMjY2MDktMCBqcm9ueFUiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzBfNS1fMWZ4N20wbyBjb2x1bW4tYzFmazZhb2ggd2lkdGgtd3M1MWV1ZiBvcGFjaXR5LW8xeG5lc2hhIiBkYXRhLXRlc3RpZD0iIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0tb3BhY2l0eToxIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJvdy1yMWZqdjJjMCI+PGRpdiBjbGFzcz0iaW5wdXRBcmVhQ29udGFpbmVyQ3NzLWlwb2ZleDYiPjxzcGFuIGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xMDAtX3g0NGdzNCBfMjAwLV90djdldGEgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjE2enc0YTUiIGRhdGEtdGVzdGlkPSJpbnB1dC1pbnRlcmFjdGFibGUtYXJlYSIgc3R5bGU9Ii0taW50ZXItYmc6dmFyKC0tY29sb3ItYmcpOy0taW50ZXItYm9yZGVyQ29sb3I6dmFyKC0tY29sb3ItYmcpOy0taW50ZXItaG92ZXItYmc6cmdiKDI0NywgMjQ3LCAyNDcpOy0taW50ZXItaG92ZXItYm9yZGVyQ29sb3I6cmdiKDI0NywgMjQ3LCAyNDcpOy0taW50ZXItaG92ZXItb3BhY2l0eTowLjg4Oy0taW50ZXItcHJlc3MtYmc6cmdiKDI0NCwgMjQ0LCAyNDQpOy0taW50ZXItcHJlc3MtYm9yZGVyQ29sb3I6cmdiKDI0NCwgMjQ0LCAyNDQpOy0taW50ZXItcHJlc3Mtb3BhY2l0eTowLjgyOy0taW50ZXItZGlzYWJsZS1iZzpyZ2IoMjU1LCAyNTUsIDI1NSk7LS1pbnRlci1kaXNhYmxlLWJvcmRlckNvbG9yOnJnYigyNTUsIDI1NSwgMjU1KTstLWJvcmRlci1jb2xvci11bmZvY3VzZWQ6dmFyKC0tY29sb3ItYmdMaW5lSGVhdnkpOy0tYm9yZGVyLWNvbG9yLWZvY3VzZWQ6dmFyKC0tY29sb3ItYmdQcmltYXJ5KTstLWJvcmRlci13aWR0aC1mb2N1c2VkOnZhcigtLWJvcmRlcldpZHRoLTEwMCkiIGRhdGEtZGlzYWJsZWQ9ImZhbHNlIj48aW5wdXQgYXJpYS1sYWJlbD0iRW1haWwgYWRkcmVzcyIgY2xhc3M9IiBmbGV4LWZmNXJmeTYgYm9keS1iMTRhOGVnZCBib2R5LWIxMmlwczlrIGJvZHktYjFtcWNnNXIgYm9keS1iMWI2MXEzeSBiYXNlQ3NzLWJnYmE4eHQgbmF0aXZlSW5wdXRDb250YWluZXJDc3MtbnZmazI0IiBkYXRhLXRlc3RpZD0iZW1haWwtZm9ybS1pbnB1dCIgc3R5bGU9InRleHQtYWxpZ246c3RhcnQ7Y29sb3Itc2NoZW1lOmxpZ2h0O2NhcmV0LWNvbG9yOnZhcigtLWNvbG9yLWZnTXV0ZWQpIiB0YWJpbmRleD0iMCIgYXJpYS1pbnZhbGlkPSJmYWxzZSIgZGF0YS1jb21wYWN0PSJmYWxzZSIgZGF0YS1sYWJlbHZhcmlhbnQ9Im91dHNpZGUiIGRhdGEtc3RhcnQ9ImZhbHNlIiBpZD0iZW1haWwtZm9ybS1pbnB1dCIgYXV0b0NvbXBsZXRlPSJlbWFpbCIgcGxhY2Vob2xkZXI9InNhdG9zaGlAbmFrYW1vdG8uY29tIiB0eXBlPSJlbWFpbCIgbmFtZT0iZW1haWwiLz48L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iQ0RYQnV0dG9uX19DRFhCdXR0b25Db250YWluZXItc2MtNjQwYzk2MjItMCBidUpDQXUiPjxidXR0b24gY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmdJbnZlcnNlLWYxc2Rsd2puIF8wLV8xOWluNjA2IF85MDAtXzFpMW5sbXogXzAtX3Npa2d4NiBfNC1fc203cmF1IF8yLV8xdWJ2d2Q5IF8wLV8xZHQ3Z2JwIHdpZHRoLXc3ZDQ1Ymcgd2lkdGgtd3F0cThhbyB3aWR0aC13NTdlcTV4IG1pbldpZHRoLW1xcHFvN2wgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgc2NhbGVkRG93bkNzcy1zMW82YWx4ZCBjZHMtQnV0dG9uIGJhc2VDc3MtYjk5enF1aCBjZHgtYnV0dG9uICIgZGF0YS10ZXN0aWQ9ImVtYWlsLWZvcm0tc3VibWl0LWJ1dHRvbiIgc3R5bGU9Ii0tcGhvbmUtd2lkdGg6MTAwJTstLXRhYmxldC13aWR0aDphdXRvOy0tZGVza3RvcC13aWR0aDphdXRvOy0tbWluV2lkdGg6YXV0bzstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MiIgdHlwZT0ic3VibWl0IiBkYXRhLXZhcmlhbnQ9InByaW1hcnkiPjxzcGFuIGNsYXNzPSJtaWRkbGVOb2RlQ3NzLW0xYXZwcTUyIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBjdXJyZW50Q29sb3ItYzF1bDY3OXEgaGVhZGxpbmUtaDE1dTB3ZTAgaGVhZGxpbmUtaDFjejE4NHkgaGVhZGxpbmUtaDFheGU2OGggaGVhZGxpbmUtaDFkOHhoM3cgY2VudGVyLWNmejk3ajkgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgc3R5bGU9Ii0tdGV4dC10ZXh0VHJhbnNmb3JtOnZhcigtLXRleHRUcmFuc2Zvcm0taGVhZGxpbmUpIj48c3BhbiBjbGFzcz0iIj48c3BhbiBjbGFzcz0iIGlubGluZS1ibG9jay1pMXc4YWZvOSBiZ0xpbmVJbnZlcnNlLWIxcWExajNzIGwxLWZmIGwxLWZzIGwxLWZ3IGwxLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlNpZ24gdXA8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9mb3JtPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEtXzR3ZjY2IGNlbnRlci1janB1amNkIGNvbHVtbi1jMWZrNmFvaCB3aWR0aC13czUxZXVmIGZsZXhCYXNpcy1mOTVia3BvIGZsZXhCYXNpcy1mMjl0MG5zIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0tZmxleEJhc2lzOjEwMCU7LS1kZXNrdG9wLWZsZXhCYXNpczo1MCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY2VudGVyLWNjMWJhZncgY29sdW1uLWMxZms2YW9oIHdpZHRoLXdzNTFldWYgaGVpZ2h0LWhsbHRtZ2sgYXNwZWN0UmF0aW8tYTg0c2J3ZiBDRFhCYXNlSGVyb19fTWVkaWFXcmFwcGVyLXNjLTg1ZjlmMmZkLTIgY3BZYmJaIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0taGVpZ2h0OjEwMCU7LS1hc3BlY3RSYXRpbzoxLzEiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzcwMC1fcWIxaDZiIF83MDAtXzF3NjBrMWcgXzgwMC1fMTU3cGZreiBfOTAwLV9iMzRjdHEgYXNwZWN0UmF0aW8tYTg0c2J3ZiBDRFhJbWFnZV9fSW1hZ2VDb250YWluZXItc2MtNGE0ZGQxNWUtMCBpVk53eGEgQ0RYQmFzZUhlcm9fX1N0eWxlZENEWEltYWdlLXNjLTg1ZjlmMmZkLTAgZ1FXZWRWIiBkYXRhLXRlc3RpZD0iaW1hZ2UtY29udGFpbmVyIiBzdHlsZT0iLS1hc3BlY3RSYXRpbzoxLzE7LS1vYmplY3QtZml0LWJhc2U6Y292ZXI7LS1vYmplY3QtZml0LXBob25lOmNvdmVyOy0tb2JqZWN0LWZpdC10YWJsZXQ6Y292ZXI7LS1vYmplY3QtZml0LWRlc2t0b3A6Y292ZXIiPjxwaWN0dXJlIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZSIgY2xhc3M9IkNEWEltYWdlX19TdHlsZWRQaWN0dXJlLXNjLTRhNGRkMTVlLTEgaVNRVE5oIj48c291cmNlIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1zb3VyY2UtYXZpZi1iYXNlIiBzcmNTZXQ9Imh0dHBzOi8vaW1hZ2VzLmN0ZmFzc2V0cy5uZXQvbzEwZXM3d3U1Z20xLzRsYlNyZnZGMzMzWGtQejdXeWNpeFEvYWZiZWVmYjY4ZWFiOTQwNTU5NGIyZTliZmJiOWExNTIvSGVyb19fNF8ucG5nP2ZtPWF2aWYmYW1wO3c9MTgwMCZhbXA7aD0xODAwJmFtcDtxPTY1IiB0eXBlPSJpbWFnZS9hdmlmIiB3aWR0aD0iMTgwMCIgaGVpZ2h0PSIxODAwIi8+PHNvdXJjZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2Utc291cmNlLXdlYnAtYmFzZSIgc3JjU2V0PSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS80bGJTcmZ2RjMzM1hrUHo3V3ljaXhRL2FmYmVlZmI2OGVhYjk0MDU1OTRiMmU5YmZiYjlhMTUyL0hlcm9fXzRfLnBuZz9mbT13ZWJwJmFtcDt3PTE4MDAmYW1wO2g9MTgwMCZhbXA7cT03NSIgdHlwZT0iaW1hZ2Uvd2VicCIgd2lkdGg9IjE4MDAiIGhlaWdodD0iMTgwMCIvPjxpbWcgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLWltZyIgc3JjPSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS80bGJTcmZ2RjMzM1hrUHo3V3ljaXhRL2FmYmVlZmI2OGVhYjk0MDU1OTRiMmU5YmZiYjlhMTUyL0hlcm9fXzRfLnBuZyIgYWx0PSJDb2luYmFzZSIgbG9hZGluZz0iZWFnZXIiIGhlaWdodD0iMTgwMCIgd2lkdGg9IjE4MDAiIGNsYXNzPSJDRFhJbWFnZV9fU3R5bGVkSW1hZ2Utc2MtNGE0ZGQxNWUtMiBoZE1wV2wiLz48L3BpY3R1cmU+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjb2x1bW4tYzFmazZhb2ggbWF4V2lkdGgtbWxxeDZ2biIgc3R5bGU9Ii0tbWF4V2lkdGg6OTAwcHgiPjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmdNdXRlZC1mcXJhcXBvIGwtZmYgbC1mcyBsLWZ3IGwtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+PHAgY2xhc3M9InJpY2hUZXh0RWxlbWVudHNfX0luaGVyaXRlZEVsZW1lbnQtc2MtZTYwYWQ4ODktMiByaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRQLXNjLWU2MGFkODg5LTMgZVZtdkNYIEVGY0VSIj5TdG9ja3MgYW5kIHByZWRpY3Rpb24gbWFya2V0cyBub3QgYXZhaWxhYmxlIGluIHlvdXIganVyaXNkaWN0aW9uLjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PGRpdiBjbGFzcz0iQ0RYU2VjdGlvbkNvbnRhaW5lcl9fRGl2RGlzcGxheUNvbnRlbnRzLXNjLThhNGYzNTdlLTAgQ3ZjQlMiPjxzZWN0aW9uIGNsYXNzPSIgZmxleC1mZjVyZnk2IGNlbnRlci1jYzFiYWZ3IGNvbHVtbi1jMWZrNmFvaCBiZ0FsdGVybmF0ZS1idHh2dGdzIHdpZHRoLXdzNTFldWYiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBfMy1fMWQycWZmNSBfNC1fMXN1MWdpNCBfNi1fMXlvZjB4NyBjb2x1bW4tYzFmazZhb2ggYmdBbHRlcm5hdGUtYnR4dnRncyBfMi1fMWQ1NnZrMyBfMy1fMWRzNmdiNSBfNC1fMW9uZmFpdCBfNi1fb3VzcGV5IF84LV8xbWhxYTczIF8xMC1fZnNvY2p6IHdpZHRoLXdzNTFldWYgbWF4V2lkdGgtbWF2eHQybSBtYXhXaWR0aC1tMTBkazA3byIgZGF0YS10ZXN0aWQ9ImNkeC1zZWN0aW9uLWNvbnRhaW5lciIgc3R5bGU9Ii0td2lkdGg6MTAwJTstLXRhYmxldC1tYXhXaWR0aDoxMjI4cHg7LS1kZXNrdG9wLW1heFdpZHRoOjE2MDBweCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjZW50ZXItY2pwdWpjZCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMy1fMWQycWZmNSBfNC1fMXN1MWdpNCBfNi1fMXlvZjB4NyBjZW50ZXItY2MxYmFmdyBjb2x1bW4tYzFmazZhb2ggcm93LXIxY3BidXg2IHdpZHRoLXdzNTFldWYiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgd2lkdGgtd3M1MWV1ZiBtaW5XaWR0aC1tcXBxbzdsIGZsZXhCYXNpcy1mOTVia3BvIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLXdpZHRoOjEwMCU7LS1taW5XaWR0aDowOy0tZmxleEJhc2lzOjA7LS1mbGV4R3JvdzoxIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8zLV8xZDJxZmY1IF8yLV8xZDVsdDc5IGZsZXgtc3RhcnQtZmFpMnVmYSBjb2x1bW4tYzFmazZhb2giPjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgdDEtZmYgdDEtZnMgdDEtZnMtbSB0MS1mcy10IHQxLWZzLWQgdDEtZncgdDEtbGggdDEtbGgtbSB0MS1saC10IHQxLWxoLWQgc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0ibWFyZ2luOjAiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj48aDIgY2xhc3M9InJpY2hUZXh0RWxlbWVudHNfX0luaGVyaXRlZEVsZW1lbnQtc2MtZTYwYWQ4ODktMiByaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRIMi1zYy1lNjBhZDg4OS01IGVWbXZDWCBkcVF2aFciPkV4cGxvcmUgY3J5cHRvIGxpa2UgQml0Y29pbiwgRXRoZXJldW0sIGFuZCBEb2dlY29pbi48L2gyPjwvZGl2PjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmdNdXRlZC1mcXJhcXBvIGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+PHAgY2xhc3M9InJpY2hUZXh0RWxlbWVudHNfX0luaGVyaXRlZEVsZW1lbnQtc2MtZTYwYWQ4ODktMiByaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRQLXNjLWU2MGFkODg5LTMgZVZtdkNYIEVGY0VSIj5TaW1wbHkgYW5kIHNlY3VyZWx5IGJ1eSwgc2VsbCwgYW5kIG1hbmFnZSBodW5kcmVkcyBvZiBjcnlwdG9jdXJyZW5jaWVzLjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJDRFhCdXR0b25fX0NEWEJ1dHRvbkNvbnRhaW5lci1zYy02NDBjOTYyMi0wIGVMRW1QSSI+PGEgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmdJbnZlcnNlLWYxc2Rsd2puIF8wLV8xOWluNjA2IF85MDAtXzFpMW5sbXogXzAtX3Npa2d4NiBfNC1fc203cmF1IF8yLV8xdWJ2d2Q5IF8wLV8xZHQ3Z2JwIG1pbldpZHRoLW1xcHFvN2wgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgc2NhbGVkRG93bkNzcy1zMW82YWx4ZCBjZHMtQnV0dG9uIGJhc2VDc3MtYjk5enF1aCBjZHgtYnV0dG9uICIgZGF0YS10ZXN0aWQ9ImJ1dHRvbiIgc3R5bGU9Ii0tbWluV2lkdGg6YXV0bzstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MiIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiBkYXRhLXZhcmlhbnQ9InByaW1hcnkiIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9leHBsb3JlIiB0YXJnZXQ9Il9ibGFuayIgaWQ9InppckVNR3FLMzNnYXRoR1VGN2xHcSI+PHNwYW4gY2xhc3M9Im1pZGRsZU5vZGVDc3MtbTFhdnBxNTIiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGN1cnJlbnRDb2xvci1jMXVsNjc5cSBoZWFkbGluZS1oMTV1MHdlMCBoZWFkbGluZS1oMWN6MTg0eSBoZWFkbGluZS1oMWF4ZTY4aCBoZWFkbGluZS1oMWQ4eGgzdyBjZW50ZXItY2Z6OTdqOSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0iLS10ZXh0LXRleHRUcmFuc2Zvcm06dmFyKC0tdGV4dFRyYW5zZm9ybS1oZWFkbGluZSkiPjxzcGFuIGNsYXNzPSIiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWJsb2NrLWkxdzhhZm85IGZnSW52ZXJzZS1mMXNkbHdqbiBsMS1mZiBsMS1mcyBsMS1mdyBsMS1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5TZWUgbW9yZSBhc3NldHM8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBibG9jay1idm1iZmxqIHdpZHRoLXdzNTFldWYgbWluV2lkdGgtbXFwcW83bCBmbGV4QmFzaXMtZjk1YmtwbyBmbGV4R3Jvdy1mYXY5aHlsIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0tbWluV2lkdGg6MDstLWZsZXhCYXNpczowOy0tZmxleEdyb3c6MSI+PGRpdiBjbGFzcz0iY29pbmJhc2UgZGFyayIgc3R5bGU9Ii0tYWN0aXZlQ29sb3JTY2hlbWU6ZGFyazstLWJsdWUwOjAsMTYsNTE7LS1ibHVlNToxLDI5LDkxOy0tYmx1ZTEwOjEsNDIsMTMwOy0tYmx1ZTE1OjMsNTEsMTU0Oy0tYmx1ZTIwOjUsNTksMTc3Oy0tYmx1ZTMwOjEwLDcyLDIwNjstLWJsdWU0MDoxOSw4NCwyMjU7LS1ibHVlNTA6MzMsOTgsMjM4Oy0tYmx1ZTYwOjU1LDExNSwyNDU7LS1ibHVlNzA6ODcsMTM5LDI1MDstLWJsdWU4MDoxMzIsMTcwLDI1MzstLWJsdWU5MDoxODUsMjA3LDI1NTstLWJsdWUxMDA6MjQ1LDI0OCwyNTU7LS1ncmVlbjA6MCwzMSwxODstLWdyZWVuNTowLDQ4LDI5Oy0tZ3JlZW4xMDoxLDcwLDQyOy0tZ3JlZW4xNToyLDgyLDQ4Oy0tZ3JlZW4yMDoyLDkyLDU1Oy0tZ3JlZW4zMDo2LDExMiw2ODstLWdyZWVuNDA6MTEsMTMzLDgyOy0tZ3JlZW41MDoyMSwxNTMsOTg7LS1ncmVlbjYwOjM5LDE3MywxMTc7LS1ncmVlbjcwOjY4LDE5NCwxNDE7LS1ncmVlbjgwOjExMSwyMTQsMTcxOy0tZ3JlZW45MDoxNzEsMjM1LDIwODstLWdyZWVuMTAwOjI0NSwyNTUsMjUxOy0tb3JhbmdlMDo1MSwxMywwOy0tb3JhbmdlNTo3OSwyMCwwOy0tb3JhbmdlMTA6MTA3LDI4LDE7LS1vcmFuZ2UxNToxMzEsMzYsMjstLW9yYW5nZTIwOjE1NSw0NCw0Oy0tb3JhbmdlMzA6MTg5LDU5LDk7LS1vcmFuZ2U0MDoyMTMsNzYsMTg7LS1vcmFuZ2U1MDoyMzAsOTYsMzI7LS1vcmFuZ2U2MDoyNDAsMTIwLDU0Oy0tb3JhbmdlNzA6MjQ4LDE1MCw4NjstLW9yYW5nZTgwOjI1MiwxODUsMTMxOy0tb3JhbmdlOTA6MjU0LDIxOSwxODU7LS1vcmFuZ2UxMDA6MjU1LDI1MCwyNDU7LS1ncmF5MDoxMCwxMSwxMzstLWdyYXk1OjIwLDIxLDI1Oy0tZ3JheTEwOjMwLDMyLDM3Oy0tZ3JheTE1OjQwLDQzLDQ5Oy0tZ3JheTIwOjUwLDUzLDYxOy0tZ3JheTMwOjcwLDc1LDg1Oy0tZ3JheTQwOjkxLDk3LDExMDstLWdyYXk1MDoxMTQsMTIwLDEzNDstLWdyYXk2MDoxMzgsMTQ1LDE1ODstLWdyYXk3MDoxNjUsMTcwLDE4MjstLWdyYXk4MDoxOTMsMTk4LDIwNzstLWdyYXk5MDoyMjQsMjI2LDIzMTstLWdyYXkxMDA6MjU1LDI1NSwyNTU7LS1pbmRpZ28wOjgsMTUsNTE7LS1pbmRpZ281OjE0LDI3LDkxOy0taW5kaWdvMTA6MjEsMzksMTMwOy0taW5kaWdvMTU6MjcsNDcsMTU0Oy0taW5kaWdvMjA6MzMsNTYsMTc3Oy0taW5kaWdvMzA6NDgsNzMsMjA2Oy0taW5kaWdvNDA6NjgsOTIsMjI1Oy0taW5kaWdvNTA6OTIsMTEzLDIzODstLWluZGlnbzYwOjEyMSwxMzgsMjQ1Oy0taW5kaWdvNzA6MTUzLDE2NSwyNTA7LS1pbmRpZ284MDoxODcsMTk0LDI1MzstLWluZGlnbzkwOjIxOSwyMjMsMjU1Oy0taW5kaWdvMTAwOjI0NiwyNDcsMjU1Oy0tcGluazA6NTEsMTAsNDQ7LS1waW5rNTo3MCwxNCw2MTstLXBpbmsxMDo4OSwxOSw3ODstLXBpbmsxNToxMDgsMjQsOTQ7LS1waW5rMjA6MTI2LDMwLDExMTstLXBpbmszMDoxNTksNDQsMTQyOy0tcGluazQwOjE4Nyw2NCwxNzA7LS1waW5rNTA6MjA4LDg4LDE5MzstLXBpbms2MDoyMjUsMTE3LDIxNDstLXBpbms3MDoyMzcsMTQ5LDIzMDstLXBpbms4MDoyNDYsMTg0LDI0MzstLXBpbms5MDoyNTIsMjE3LDI1MTstLXBpbmsxMDA6MjU1LDI0NSwyNTU7LS1wdXJwbGUwOjI1LDEzLDUxOy0tcHVycGxlNTo0MywyMiw4OTstLXB1cnBsZTEwOjczLDMwLDEzNzstLXB1cnBsZTE1Ojk3LDM3LDE3NTstLXB1cnBsZTIwOjEyMyw0NSwyMTE7LS1wdXJwbGUzMDoxNDIsNTEsMjM0Oy0tcHVycGxlNDA6MTY0LDg0LDI0NDstLXB1cnBsZTUwOjE4OCwxMjMsMjUxOy0tcHVycGxlNjA6MjA1LDE1MywyNTM7LS1wdXJwbGU3MDoyMTcsMTc2LDI1NDstLXB1cnBsZTgwOjIzMCwyMDEsMjU1Oy0tcHVycGxlOTA6MjM3LDIxNywyNTU7LS1wdXJwbGUxMDA6MjUxLDI0NywyNTU7LS1yZWQwOjUxLDAsNDstLXJlZDU6NzksMCw3Oy0tcmVkMTA6MTA3LDEsMTA7LS1yZWQxNToxMzEsNCwxNDstLXJlZDIwOjE1NSw3LDE5Oy0tcmVkMzA6MTg5LDE5LDMzOy0tcmVkNDA6MjEzLDM4LDUyOy0tcmVkNTA6MjMwLDY0LDc4Oy0tcmVkNjA6MjQwLDk3LDEwOTstLXJlZDcwOjI0OCwxMzQsMTQ0Oy0tcmVkODA6MjUyLDE3NCwxODE7LS1yZWQ5MDoyNTQsMjEzLDIxNjstLXJlZDEwMDoyNTUsMjQ1LDI0NjstLXRlYWwwOjAsMjAsMzg7LS10ZWFsNTowLDMyLDU5Oy0tdGVhbDEwOjAsNDUsNzk7LS10ZWFsMTU6MCw1OCw5OTstLXRlYWwyMDowLDcyLDExODstLXRlYWwzMDowLDk5LDE1MzstLXRlYWw0MDowLDEyNSwxODI7LS10ZWFsNTA6MCwxNDksMjA1Oy0tdGVhbDYwOjAsMTcwLDIyMzstLXRlYWw3MDo2LDE5MCwyMzY7LS10ZWFsODA6NjksMjE3LDI0NTstLXRlYWw5MDoxNDksMjM5LDI1MTstLXRlYWwxMDA6MjQwLDI1NCwyNTU7LS15ZWxsb3cwOjI3LDYsMDstLXllbGxvdzU6NDksMTcsMDstLXllbGxvdzEwOjgxLDQwLDA7LS15ZWxsb3cxNTo5Niw0OCwwOy0teWVsbG93MjA6MTE1LDY0LDA7LS15ZWxsb3czMDoxNDcsOTYsMDstLXllbGxvdzQwOjE3NSwxMjgsMDstLXllbGxvdzUwOjE5OSwxNTgsMDstLXllbGxvdzYwOjIyMiwxODksMjM7LS15ZWxsb3c3MDoyMjksMjA1LDQ4Oy0teWVsbG93ODA6MjQyLDIyMiw5NDstLXllbGxvdzkwOjI1NSwyNDAsMTQ1Oy0teWVsbG93MTAwOjI1NSwyNTIsMjQxOy0tY2hhcnRyZXVzZTA6NSwyMiwxNDstLWNoYXJ0cmV1c2U1OjE0LDU0LDI5Oy0tY2hhcnRyZXVzZTEwOjIxLDc5LDM0Oy0tY2hhcnRyZXVzZTE1OjI5LDEwMywzNjstLWNoYXJ0cmV1c2UyMDo0NSwxMjgsNDA7LS1jaGFydHJldXNlMzA6NzMsMTUyLDU0Oy0tY2hhcnRyZXVzZTQwOjEwNywxNzYsNzM7LS1jaGFydHJldXNlNTA6MTIzLDIwMCwxMDU7LS1jaGFydHJldXNlNjA6MTQwLDIwOSwxMzY7LS1jaGFydHJldXNlNzA6MTU4LDIxNywxNjM7LS1jaGFydHJldXNlODA6MTc4LDIyMiwxODg7LS1jaGFydHJldXNlOTA6MjA5LDIzOCwyMjA7LS1jaGFydHJldXNlMTAwOjI0NSwyNTUsMjUwOy0tY29sb3ItZmc6cmdiKDI1NSwyNTUsMjU1KTstLWNvbG9yLWZnSW52ZXJzZTpyZ2IoMTAsMTEsMTMpOy0tY29sb3ItZmdNdXRlZDpyZ2IoMTM4LDE0NSwxNTgpOy0tY29sb3ItZmdQcmltYXJ5OnJnYig4NywxMzksMjUwKTstLWNvbG9yLWZnUG9zaXRpdmU6cmdiKDM5LDE3MywxMTcpOy0tY29sb3ItZmdOZWdhdGl2ZTpyZ2IoMjQwLDk3LDEwOSk7LS1jb2xvci1mZ1dhcm5pbmc6cmdiKDI0OCwxNTAsODYpOy0tY29sb3ItYmc6cmdiKDEwLDExLDEzKTstLWNvbG9yLWJnQWx0ZXJuYXRlOnJnYigyMCwyMSwyNSk7LS1jb2xvci1iZ0ludmVyc2U6cmdiKDI1NSwyNTUsMjU1KTstLWNvbG9yLWJnT3ZlcmxheTpyZ2JhKDEwLDExLDEzLDAuMzMpOy0tY29sb3ItYmdQcmltYXJ5OnJnYig4NywxMzksMjUwKTstLWNvbG9yLWJnUHJpbWFyeVdhc2g6cmdiKDAsMTYsNTEpOy0tY29sb3ItYmdTZWNvbmRhcnk6cmdiKDQwLDQzLDQ5KTstLWNvbG9yLWJnVGVydGlhcnk6cmdiKDUwLDUzLDYxKTstLWNvbG9yLWJnU2Vjb25kYXJ5V2FzaDpyZ2IoMjAsMjEsMjUpOy0tY29sb3ItYmdOZWdhdGl2ZTpyZ2IoMjQwLDk3LDEwOSk7LS1jb2xvci1iZ05lZ2F0aXZlV2FzaDpyZ2IoNTEsMCw0KTstLWNvbG9yLWJnUG9zaXRpdmU6cmdiKDM5LDE3MywxMTcpOy0tY29sb3ItYmdQb3NpdGl2ZVdhc2g6cmdiKDAsMzEsMTgpOy0tY29sb3ItYmdXYXJuaW5nOnJnYigyNDAsMTIwLDU0KTstLWNvbG9yLWJnV2FybmluZ1dhc2g6cmdiKDUxLDEzLDApOy0tY29sb3ItYmdMaW5lOnJnYmEoMTM4LDE0NSwxNTgsMC4yKTstLWNvbG9yLWJnTGluZUludmVyc2U6cmdiKDEwLDExLDEzKTstLWNvbG9yLWJnTGluZUhlYXZ5OnJnYmEoMTM4LDE0NSwxNTgsMC42Nik7LS1jb2xvci1iZ0xpbmVQcmltYXJ5OnJnYig4NywxMzksMjUwKTstLWNvbG9yLWJnTGluZVByaW1hcnlTdWJ0bGU6cmdiKDUsNTksMTc3KTstLWNvbG9yLWJnRWxldmF0aW9uMTpyZ2IoMjAsMjEsMjUpOy0tY29sb3ItYmdFbGV2YXRpb24yOnJnYigzMCwzMiwzNyk7LS1jb2xvci1hY2NlbnRTdWJ0bGVHcmVlbjpyZ2IoMCwzMSwxOCk7LS1jb2xvci1hY2NlbnRCb2xkR3JlZW46cmdiKDM5LDE3MywxMTcpOy0tY29sb3ItYWNjZW50U3VidGxlQmx1ZTpyZ2IoMCwxNiw1MSk7LS1jb2xvci1hY2NlbnRCb2xkQmx1ZTpyZ2IoNTUsMTE1LDI0NSk7LS1jb2xvci1hY2NlbnRTdWJ0bGVQdXJwbGU6cmdiKDI1LDEzLDUxKTstLWNvbG9yLWFjY2VudEJvbGRQdXJwbGU6cmdiKDIzMCwyMDEsMjU1KTstLWNvbG9yLWFjY2VudFN1YnRsZVllbGxvdzpyZ2IoMjcsNiwwKTstLWNvbG9yLWFjY2VudEJvbGRZZWxsb3c6cmdiKDE0Nyw5NiwwKTstLWNvbG9yLWFjY2VudFN1YnRsZVJlZDpyZ2IoNTEsMCw0KTstLWNvbG9yLWFjY2VudEJvbGRSZWQ6cmdiKDI0MCw5NywxMDkpOy0tY29sb3ItYWNjZW50U3VidGxlR3JheTpyZ2IoMzAsMzIsMzcpOy0tY29sb3ItYWNjZW50Qm9sZEdyYXk6cmdiKDE5MywxOTgsMjA3KTstLWNvbG9yLXRyYW5zcGFyZW50OnJnYmEoMTAsMTEsMTMsMCk7LS1jb2xvci1iYWNrZ3JvdW5kQWx0SG92ZXJlZDpyZ2JhKDI3LCAyOCwgMzIsIDAuODgpOy0tY29sb3ItYmFja2dyb3VuZEFsdFByZXNzZWQ6cmdiYSgzMSwgMzIsIDM1LCAwLjgyKTstLWNvbG9yLWJnQnJhbmRIb3ZlcmVkOnJnYmEoOTUsIDE0NCwgMjUwLCAwLjg4KTstLWNvbG9yLWJnQnJhbmRQcmVzc2VkOnJnYmEoOTksIDE0NywgMjUwLCAwLjgyKTstLWNvbG9yLWJnUHJpbWFyeUhvdmVyZWQ6cmdiYSgyNDcsIDI0NywgMjQ3LCAwLjg4KTstLWNvbG9yLWJnUHJpbWFyeVByZXNzZWQ6cmdiYSgyNDQsIDI0NCwgMjQ0LCAwLjgyKTstLWNvbG9yLWJnU2Vjb25kYXJ5SG92ZXJlZDpyZ2JhKDQ3LCA1MCwgNTUsIDAuODgpOy0tY29sb3ItYmdTZWNvbmRhcnlQcmVzc2VkOnJnYmEoNTAsIDUzLCA1OSwgMC44Mik7LS1jb2xvci1iZ1RlcnRpYXJ5SG92ZXJlZDpyZ2JhKDE3LCAxOCwgMjAsIDAuODgpOy0tY29sb3ItYmdUZXJ0aWFyeVByZXNzZWQ6cmdiYSgyMSwgMjIsIDI0LCAwLjgyKTstLWNvbG9yLWJhY2tncm91bmRJbnZlcnNlRGlzYWJsZWQ6cmdiKDcwLDc1LDg1KTstLWlsbHVzdHJhdGlvbi1wcmltYXJ5OnJnYig4NywxMzksMjUwKTstLWlsbHVzdHJhdGlvbi1ncmF5OnJnYig3MCw3NSw4NSk7LS1pbGx1c3RyYXRpb24tZ3JheS0yOnJnYig3MCw3NSw4NSk7LS1pbGx1c3RyYXRpb24tZ3JheS0zOnJnYigyNTUsMjU1LDI1NSk7LS1pbGx1c3RyYXRpb24tZ3JheS00OnJnYigyNTUsMjU1LDI1NSk7LS1pbGx1c3RyYXRpb24tcG9zaXRpdmU6cmdiKDY4LDE5NCwxNDEpOy0taWxsdXN0cmF0aW9uLW5lZ2F0aXZlOnJnYigyNDAsOTcsMTA5KTstLWlsbHVzdHJhdGlvbi1hY2NlbnQtMTpyZ2IoMjM2LCAyMDgsIDEwNSk7LS1pbGx1c3RyYXRpb24tYWNjZW50LTI6cmdiKDY5LDIxNywyNDUpOy0taWxsdXN0cmF0aW9uLWFjY2VudC0zOnJnYigyNDAsMTIwLDU0KTstLWlsbHVzdHJhdGlvbi1hY2NlbnQtNDpyZ2IoMTMyLDE3MCwyNTMpOy0taWxsdXN0cmF0aW9uLWludmVydDpyZ2IoMjU1LDI1NSwyNTUpOy0taWxsdXN0cmF0aW9uLWludmVydC0yOnJnYigxMTQsMTIwLDEzNCkiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgYmctYnA3Z2czMSBfNTAwLV9taWxidzIgXzUwMC1fMTI2ZG9kciBfNjAwLV8xaWtxbjdwIF83MDAtXzF5b3l5bnIgXzItXzE1aXptb2cgXzMtX2VpZng3diBfNC1fbG82c3ZmIG1pbkhlaWdodC1tZTJwemp0IG1pbkhlaWdodC1tMXRrdGEzYyBtaW5IZWlnaHQtbTE5aGk2OHgiIHN0eWxlPSItLXBob25lLW1pbkhlaWdodDo1MzhweDstLXRhYmxldC1taW5IZWlnaHQ6NTg2cHg7LS1kZXNrdG9wLW1pbkhlaWdodDo2NDBweCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMy1fMWQycWZmNSBfMi1fMWQ1bHQ3OSBjb2x1bW4tYzFmazZhb2ggd2lkdGgtd3M1MWV1ZiIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fMWQ1NnZrMyBfMS1fajlqOTF5Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gY2VudGVyLWNjMWJhZncgcm93LXIxZmp2MmMwIHdpZHRoLXdzNTFldWYiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgYXV0by1hMXZ0Ymc5dyBjZW50ZXItY2MxYmFmdyByb3ctcjFmanYyYzAgc2Nyb2xsQ29udGFpbmVyQ3NzLXMxOWw3c3B2Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gXzEtXzR3ZjY2IHJvdy1yMWZqdjJjMCBiZy1icDdnZzMxIHdpZHRoLXdzNTFldWYgb3BhY2l0eS1vMXhuZXNoYSIgc3R5bGU9Ii0td2lkdGg6Zml0LWNvbnRlbnQ7LS1vcGFjaXR5OjEiIHJvbGU9InRhYmxpc3QiPjxkaXY+PGRpdiBjbGFzcz0iQ0RYQnV0dG9uX19DRFhCdXR0b25Db250YWluZXItc2MtNjQwYzk2MjItMCBiWUlVb2ciPjxidXR0b24gY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmdJbnZlcnNlLWYxc2Rsd2puIF8wLV8xOWluNjA2IF85MDAtXzFpMW5sbXogXzAtX3Npa2d4NiBfNC1fc203cmF1IF8wLV8xbzZiNXNmIF8wLV8xZHQ3Z2JwIG1pbldpZHRoLW1xcHFvN2wgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgc2NhbGVkRG93bkNzcy1zMW82YWx4ZCBjZHMtQnV0dG9uIGJhc2VDc3MtYjk5enF1aCBjZHgtYnV0dG9uICIgZGF0YS10ZXN0aWQ9ImNoaXAiIHN0eWxlPSItLW1pbldpZHRoOmF1dG87LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODIiIHR5cGU9ImJ1dHRvbiIgZGF0YS12YXJpYW50PSJwcmltYXJ5IiBhcmlhLXNlbGVjdGVkPSJ0cnVlIiByb2xlPSJ0YWIiPjxzcGFuIGNsYXNzPSJtaWRkbGVOb2RlQ3NzLW0xYXZwcTUyIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBjdXJyZW50Q29sb3ItYzF1bDY3OXEgaGVhZGxpbmUtaDE1dTB3ZTAgaGVhZGxpbmUtaDFjejE4NHkgaGVhZGxpbmUtaDFheGU2OGggaGVhZGxpbmUtaDFkOHhoM3cgY2VudGVyLWNmejk3ajkgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgc3R5bGU9Ii0tdGV4dC10ZXh0VHJhbnNmb3JtOnZhcigtLXRleHRUcmFuc2Zvcm0taGVhZGxpbmUpIj48c3BhbiBjbGFzcz0iIj48c3BhbiBjbGFzcz0iIGlubGluZS1ibG9jay1pMXc4YWZvOSBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBsMi1mdyBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5UcmFkYWJsZTwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2PjxkaXYgY2xhc3M9IkNEWEJ1dHRvbl9fQ0RYQnV0dG9uQ29udGFpbmVyLXNjLTY0MGM5NjIyLTAgZ2d3R0tSIj48YnV0dG9uIGNsYXNzPSIgZmxleC1mZjVyZnk2IGZnSW52ZXJzZS1mMXNkbHdqbiBfMC1fMTlpbjYwNiBfOTAwLV8xaTFubG16IF8wLV9zaWtneDYgXzQtX3NtN3JhdSBfMC1fMW82YjVzZiBfMC1fMWR0N2dicCBtaW5XaWR0aC1tcXBxbzdsIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIHNjYWxlZERvd25Dc3MtczFvNmFseGQgY2RzLUJ1dHRvbiBiYXNlQ3NzLWI5OXpxdWggY2R4LWJ1dHRvbiAiIGRhdGEtdGVzdGlkPSJjaGlwIiBzdHlsZT0iLS1taW5XaWR0aDphdXRvOy0taW50ZXItaG92ZXItb3BhY2l0eTowLjg4Oy0taW50ZXItcHJlc3Mtb3BhY2l0eTowLjgyIiB0eXBlPSJidXR0b24iIGRhdGEtdmFyaWFudD0icHJpbWFyeSIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIHJvbGU9InRhYiI+PHNwYW4gY2xhc3M9Im1pZGRsZU5vZGVDc3MtbTFhdnBxNTIiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGN1cnJlbnRDb2xvci1jMXVsNjc5cSBoZWFkbGluZS1oMTV1MHdlMCBoZWFkbGluZS1oMWN6MTg0eSBoZWFkbGluZS1oMWF4ZTY4aCBoZWFkbGluZS1oMWQ4eGgzdyBjZW50ZXItY2Z6OTdqOSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0iLS10ZXh0LXRleHRUcmFuc2Zvcm06dmFyKC0tdGV4dFRyYW5zZm9ybS1oZWFkbGluZSkiPjxzcGFuIGNsYXNzPSIiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWJsb2NrLWkxdzhhZm85IGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGwyLWZ3IGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlRvcCBnYWluZXJzPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXY+PGRpdiBjbGFzcz0iQ0RYQnV0dG9uX19DRFhCdXR0b25Db250YWluZXItc2MtNjQwYzk2MjItMCBnZ3dHS1IiPjxidXR0b24gY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmdJbnZlcnNlLWYxc2Rsd2puIF8wLV8xOWluNjA2IF85MDAtXzFpMW5sbXogXzAtX3Npa2d4NiBfNC1fc203cmF1IF8wLV8xbzZiNXNmIF8wLV8xZHQ3Z2JwIG1pbldpZHRoLW1xcHFvN2wgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgc2NhbGVkRG93bkNzcy1zMW82YWx4ZCBjZHMtQnV0dG9uIGJhc2VDc3MtYjk5enF1aCBjZHgtYnV0dG9uICIgZGF0YS10ZXN0aWQ9ImNoaXAiIHN0eWxlPSItLW1pbldpZHRoOmF1dG87LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODIiIHR5cGU9ImJ1dHRvbiIgZGF0YS12YXJpYW50PSJwcmltYXJ5IiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgcm9sZT0idGFiIj48c3BhbiBjbGFzcz0ibWlkZGxlTm9kZUNzcy1tMWF2cHE1MiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgY3VycmVudENvbG9yLWMxdWw2NzlxIGhlYWRsaW5lLWgxNXUwd2UwIGhlYWRsaW5lLWgxY3oxODR5IGhlYWRsaW5lLWgxYXhlNjhoIGhlYWRsaW5lLWgxZDh4aDN3IGNlbnRlci1jZno5N2o5IG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSItLXRleHQtdGV4dFRyYW5zZm9ybTp2YXIoLS10ZXh0VHJhbnNmb3JtLWhlYWRsaW5lKSI+PHNwYW4gY2xhc3M9IiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtYmxvY2staTF3OGFmbzkgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgbDItZncgbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+TmV3IG9uIENvaW5iYXNlPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzAtX2d1bGNxZyBjb2x1bW4tYzFmazZhb2giPjxhIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnUHJpbWFyeS1mMXZpYWhpZiBfMC1fMTlpbjYwNiBfMC1fc2lrZ3g2IF8wLV8xZHQ3Z2JwIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIGJhc2VDc3MtYjY3OG14OSIgc3R5bGU9Ii0taW50ZXItYmc6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItYm9yZGVyQ29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItaG92ZXItYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3MtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODI7LS1pbnRlci1kaXNhYmxlLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItZGlzYWJsZS1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDt0ZXh0LWRlY29yYXRpb246bm9uZSIgaHJlZj0iL3ByaWNlL2JpdGNvaW4iPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGN1cnJlbnRDb2xvci1jMXVsNjc5cSBpbmhlcml0LWk4Y2Vram4gaW5oZXJpdC1pNXlmd2p1IGluaGVyaXQtaTE5amQ4Nm4gaW5oZXJpdC1pMXEyem00biBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSItLXRleHQtdGV4dFRyYW5zZm9ybTp2YXIoLS10ZXh0VHJhbnNmb3JtLWluaGVyaXQpIj48YnV0dG9uIGNsYXNzPSIgZmxleC1mZjVyZnk2IGNlbnRlci1janB1amNkIGNlbnRlci1jYzFiYWZ3IF8xMDAtX3g0NGdzNCBfMC1fc2lrZ3g2IHdpZHRoLXdzNTFldWYgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgc2NhbGVkRG93bkNzcy1zMW82YWx4ZCIgc3R5bGU9Ii0td2lkdGg6MTAwJTstLWludGVyLWJnOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWhvdmVyLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItaG92ZXItYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1iZzp0cmFuc3BhcmVudDstLWludGVyLXByZXNzLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3Mtb3BhY2l0eTowLjgyOy0taW50ZXItZGlzYWJsZS1iZzp0cmFuc3BhcmVudDstLWludGVyLWRpc2FibGUtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQiIHR5cGU9ImJ1dHRvbiI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfNTAwLV9taWxidzIgXzItXzE1aXptb2cgd2lkdGgtd3M1MWV1ZiBGZWF0dXJlQXNzZXRzUm93X19Sb3dDb250YWluZXItc2MtZDZhYmM2YzgtMCBjSXFRbnkiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzItX3MzczN2eCBzcGFjZS1iZXR3ZWVuLXMxOWdvZm80IHJvdy1yMWZqdjJjMCB3aWR0aC13czUxZXVmIiBzdHlsZT0iLS13aWR0aDoxMDAlIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8yLV9zM3MzdnggY2VudGVyLWNjMWJhZncgcm93LXIxZmp2MmMwIG1pbldpZHRoLW1xcHFvN2wgZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0tbWluV2lkdGg6MDstLWZsZXhHcm93OjEiPjxpbWcgc3JjPSJodHRwczovL2R5bmFtaWMtYXNzZXRzLmNvaW5iYXNlLmNvbS9lNzg1ZTAxODFmMWEyM2EzMGQ5NDc2MDM4ZDliZTkxZTlmNmM2Mzk1OWI1MzhlYWJiYzUxYTFhYmM4ODk4OTQwMzgzMjkxZWVkZTY5NWMzYjhkZmFhMTgyOWE5YjU3ZjVhMmQwYTE2YjA1MjM1ODAzNDZjNmI4ZmFiNjdhZjE0Yi9hc3NldF9pY29ucy9iNTdhYzY3M2YwNmE0YjAzMzhhNTk2ODE3ZWIwYTUwY2UxNmUyMDU5ZjMyN2RjMTE3NzQ0NDQ5YTQ3OTE1Y2IyLnBuZyIgYWx0PSJCaXRjb2luIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHN0eWxlPSJmbGV4LXNocmluazowIi8+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBtaW5XaWR0aC1tcXBxbzdsIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLW1pbldpZHRoOjA7LS1mbGV4R3JvdzoxIj48cCBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCB0My1mZiB0My1mcyB0My1mcy1tIHQzLWZzLXQgdDMtZnMtZCB0My1mdyB0My1saCB0My1saC1tIHQzLWxoLXQgdDMtbGgtZCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSJvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXAiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5CaXRjb2luPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmxleC1lbmQtZnRxZmR0ZiBjb2x1bW4tYzFmazZhb2giPjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgdDUtZmYgdDUtZnMgdDUtZnMtbSB0NS1mcy10IHQ1LWZzLWQgdDUtZncgdDUtbGggdDUtbGgtbSB0NS1saC10IHQ1LWxoLWQgc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0ibGluZS1oZWlnaHQ6MWVtIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Tk9LwqA2MjYsMTI0LjQxPC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY2VudGVyLWNjMWJhZncgcm93LXIxZmp2MmMwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmdQb3NpdGl2ZS1mYnB5b3BiIGNkcy1JY29uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBzLXNtcHZwZG0iIGRhdGEtaWNvbi1uYW1lPSJkaWFnb25hbFVwQXJyb3ciIGRhdGEtdGVzdGlkPSJpY29uLWJhc2UtZ2x5cGgiIHJvbGU9ImltZyIgdHJhbnNsYXRlPSJubyI+87CNgDwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZ1Bvc2l0aXZlLWZicHlvcGIgYi1mZiBiLWZzIGItZncgYi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSJsaW5lLWhlaWdodDoxZW0iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj4xLjY5JTwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2J1dHRvbj48L3NwYW4+PC9hPjxhIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnUHJpbWFyeS1mMXZpYWhpZiBfMC1fMTlpbjYwNiBfMC1fc2lrZ3g2IF8wLV8xZHQ3Z2JwIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIGJhc2VDc3MtYjY3OG14OSIgc3R5bGU9Ii0taW50ZXItYmc6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItYm9yZGVyQ29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItaG92ZXItYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3MtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODI7LS1pbnRlci1kaXNhYmxlLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItZGlzYWJsZS1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDt0ZXh0LWRlY29yYXRpb246bm9uZSIgaHJlZj0iL3ByaWNlL2V0aGVyZXVtIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBjdXJyZW50Q29sb3ItYzF1bDY3OXEgaW5oZXJpdC1pOGNla2puIGluaGVyaXQtaTV5ZndqdSBpbmhlcml0LWkxOWpkODZuIGluaGVyaXQtaTFxMnptNG4gc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0iLS10ZXh0LXRleHRUcmFuc2Zvcm06dmFyKC0tdGV4dFRyYW5zZm9ybS1pbmhlcml0KSI+PGJ1dHRvbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjZW50ZXItY2pwdWpjZCBjZW50ZXItY2MxYmFmdyBfMTAwLV94NDRnczQgXzAtX3Npa2d4NiB3aWR0aC13czUxZXVmIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIHNjYWxlZERvd25Dc3MtczFvNmFseGQiIHN0eWxlPSItLXdpZHRoOjEwMCU7LS1pbnRlci1iZzp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1pbnRlci1ib3JkZXJDb2xvcjp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1pbnRlci1ob3Zlci1iZzp0cmFuc3BhcmVudDstLWludGVyLWhvdmVyLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50Oy0taW50ZXItaG92ZXItb3BhY2l0eTowLjg4Oy0taW50ZXItcHJlc3MtYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1wcmVzcy1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MjstLWludGVyLWRpc2FibGUtYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1kaXNhYmxlLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50IiB0eXBlPSJidXR0b24iPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzUwMC1fbWlsYncyIF8yLV8xNWl6bW9nIHdpZHRoLXdzNTFldWYgRmVhdHVyZUFzc2V0c1Jvd19fUm93Q29udGFpbmVyLXNjLWQ2YWJjNmM4LTAgY0lxUW55IiBzdHlsZT0iLS13aWR0aDoxMDAlIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8yLV9zM3Mzdnggc3BhY2UtYmV0d2Vlbi1zMTlnb2ZvNCByb3ctcjFmanYyYzAgd2lkdGgtd3M1MWV1ZiIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fczNzM3Z4IGNlbnRlci1jYzFiYWZ3IHJvdy1yMWZqdjJjMCBtaW5XaWR0aC1tcXBxbzdsIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLW1pbldpZHRoOjA7LS1mbGV4R3JvdzoxIj48aW1nIHNyYz0iaHR0cHM6Ly9keW5hbWljLWFzc2V0cy5jb2luYmFzZS5jb20vZGJiNGI0OTgzYmRlODEzMDlkZGFiODNlYjU5ODM1OGViNDQzNzViOTMwYjk0Njg3ZWJlMzhiYzIyZTUyYzNiMjEyNTI1OGZmYjg0NzdhNWVmMjJlMzNkNmJkNzJlMzJhNTA2YzM5MWNhYTEzYWY2NGMwMGU0NjYxM2MzZTU4MDYvYXNzZXRfaWNvbnMvNDExM2IwODJkMjFjYzVmYWIxN2ZjOGYyZDE5ZmI5OTYxNjViY2NlNjM1ZTY5MDBmN2ZjMmQ1N2M0ZWYzM2FlOS5wbmciIGFsdD0iRXRoZXJldW0iIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgc3R5bGU9ImZsZXgtc2hyaW5rOjAiLz48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IG1pbldpZHRoLW1xcHFvN2wgZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0tbWluV2lkdGg6MDstLWZsZXhHcm93OjEiPjxwIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IHQzLWZmIHQzLWZzIHQzLWZzLW0gdDMtZnMtdCB0My1mcy1kIHQzLWZ3IHQzLWxoIHQzLWxoLW0gdDMtbGgtdCB0My1saC1kIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgc3R5bGU9Im92ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcCIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkV0aGVyZXVtPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmxleC1lbmQtZnRxZmR0ZiBjb2x1bW4tYzFmazZhb2giPjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgdDUtZmYgdDUtZnMgdDUtZnMtbSB0NS1mcy10IHQ1LWZzLWQgdDUtZncgdDUtbGggdDUtbGgtbSB0NS1saC10IHQ1LWxoLWQgc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0ibGluZS1oZWlnaHQ6MWVtIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Tk9LwqAxOCw3MzMuMjM8L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjZW50ZXItY2MxYmFmdyByb3ctcjFmanYyYzAiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZ1Bvc2l0aXZlLWZicHlvcGIgY2RzLUljb24iPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iaWNvbkNzcy1pamd4bjFwIHMtc21wdnBkbSIgZGF0YS1pY29uLW5hbWU9ImRpYWdvbmFsVXBBcnJvdyIgZGF0YS10ZXN0aWQ9Imljb24tYmFzZS1nbHlwaCIgcm9sZT0iaW1nIiB0cmFuc2xhdGU9Im5vIj7zsI2APC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnUG9zaXRpdmUtZmJweW9wYiBiLWZmIGItZnMgYi1mdyBiLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgc3R5bGU9ImxpbmUtaGVpZ2h0OjFlbSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPjQuNjAlPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYnV0dG9uPjwvc3Bhbj48L2E+PGEgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmdQcmltYXJ5LWYxdmlhaGlmIF8wLV8xOWluNjA2IF8wLV9zaWtneDYgXzAtXzFkdDdnYnAgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgYmFzZUNzcy1iNjc4bXg5IiBzdHlsZT0iLS1pbnRlci1iZzp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1pbnRlci1ib3JkZXJDb2xvcjp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1pbnRlci1ob3Zlci1iZzp0cmFuc3BhcmVudDstLWludGVyLWhvdmVyLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50Oy0taW50ZXItaG92ZXItb3BhY2l0eTowLjg4Oy0taW50ZXItcHJlc3MtYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1wcmVzcy1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MjstLWludGVyLWRpc2FibGUtYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1kaXNhYmxlLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50O3RleHQtZGVjb3JhdGlvbjpub25lIiBocmVmPSIvcHJpY2UvdGV0aGVyIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBjdXJyZW50Q29sb3ItYzF1bDY3OXEgaW5oZXJpdC1pOGNla2puIGluaGVyaXQtaTV5ZndqdSBpbmhlcml0LWkxOWpkODZuIGluaGVyaXQtaTFxMnptNG4gc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0iLS10ZXh0LXRleHRUcmFuc2Zvcm06dmFyKC0tdGV4dFRyYW5zZm9ybS1pbmhlcml0KSI+PGJ1dHRvbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjZW50ZXItY2pwdWpjZCBjZW50ZXItY2MxYmFmdyBfMTAwLV94NDRnczQgXzAtX3Npa2d4NiB3aWR0aC13czUxZXVmIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIHNjYWxlZERvd25Dc3MtczFvNmFseGQiIHN0eWxlPSItLXdpZHRoOjEwMCU7LS1pbnRlci1iZzp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1pbnRlci1ib3JkZXJDb2xvcjp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1pbnRlci1ob3Zlci1iZzp0cmFuc3BhcmVudDstLWludGVyLWhvdmVyLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50Oy0taW50ZXItaG92ZXItb3BhY2l0eTowLjg4Oy0taW50ZXItcHJlc3MtYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1wcmVzcy1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MjstLWludGVyLWRpc2FibGUtYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1kaXNhYmxlLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50IiB0eXBlPSJidXR0b24iPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzUwMC1fbWlsYncyIF8yLV8xNWl6bW9nIHdpZHRoLXdzNTFldWYgRmVhdHVyZUFzc2V0c1Jvd19fUm93Q29udGFpbmVyLXNjLWQ2YWJjNmM4LTAgY0lxUW55IiBzdHlsZT0iLS13aWR0aDoxMDAlIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8yLV9zM3Mzdnggc3BhY2UtYmV0d2Vlbi1zMTlnb2ZvNCByb3ctcjFmanYyYzAgd2lkdGgtd3M1MWV1ZiIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fczNzM3Z4IGNlbnRlci1jYzFiYWZ3IHJvdy1yMWZqdjJjMCBtaW5XaWR0aC1tcXBxbzdsIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLW1pbldpZHRoOjA7LS1mbGV4R3JvdzoxIj48aW1nIHNyYz0iaHR0cHM6Ly9keW5hbWljLWFzc2V0cy5jb2luYmFzZS5jb20vNDFmNmE5M2EzYTIyMjA3OGM5MzkxMTVmYzMwNGE2N2MzODQ4ODZiN2E5ZTZjMTVkY2JmYTY1MTlkYzQ1ZjZiYjRhNTg2ZTljNDg1MzVkMDk5ZWZhNTk2ZGJmOGE5ZGQ3MmIwNTgxNWJjZDMyYWM2NTBjNTBhYmI1MzkxYTViZDAvYXNzZXRfaWNvbnMvMWY4NDg5YmIyODBmYjBhMGZkNjQzYzExNjEzMTJiYTQ5NjU1MDQwZTlhYWFjZWQ1ZjlhZDNlZWFmODY4ZWFkYy5wbmciIGFsdD0iVGV0aGVyIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHN0eWxlPSJmbGV4LXNocmluazowIi8+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBtaW5XaWR0aC1tcXBxbzdsIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLW1pbldpZHRoOjA7LS1mbGV4R3JvdzoxIj48cCBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCB0My1mZiB0My1mcyB0My1mcy1tIHQzLWZzLXQgdDMtZnMtZCB0My1mdyB0My1saCB0My1saC1tIHQzLWxoLXQgdDMtbGgtZCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSJvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXAiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5UZXRoZXI8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBmbGV4LWVuZC1mdHFmZHRmIGNvbHVtbi1jMWZrNmFvaCI+PGRpdiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCB0NS1mZiB0NS1mcyB0NS1mcy1tIHQ1LWZzLXQgdDUtZnMtZCB0NS1mdyB0NS1saCB0NS1saC1tIHQ1LWxoLXQgdDUtbGgtZCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSJsaW5lLWhlaWdodDoxZW0iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5OT0vCoDkuNTg8L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjZW50ZXItY2MxYmFmdyByb3ctcjFmanYyYzAiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZ05lZ2F0aXZlLWYxbTF0eTR1IGNkcy1JY29uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBzLXNtcHZwZG0iIGRhdGEtaWNvbi1uYW1lPSJkaWFnb25hbERvd25BcnJvdyIgZGF0YS10ZXN0aWQ9Imljb24tYmFzZS1nbHlwaCIgcm9sZT0iaW1nIiB0cmFuc2xhdGU9Im5vIj7zsIy0PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnTmVnYXRpdmUtZjFtMXR5NHUgYi1mZiBiLWZzIGItZncgYi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSJsaW5lLWhlaWdodDoxZW0iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj4wLjAyJTwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2J1dHRvbj48L3NwYW4+PC9hPjxhIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnUHJpbWFyeS1mMXZpYWhpZiBfMC1fMTlpbjYwNiBfMC1fc2lrZ3g2IF8wLV8xZHQ3Z2JwIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIGJhc2VDc3MtYjY3OG14OSIgc3R5bGU9Ii0taW50ZXItYmc6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItYm9yZGVyQ29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItaG92ZXItYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3MtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODI7LS1pbnRlci1kaXNhYmxlLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItZGlzYWJsZS1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDt0ZXh0LWRlY29yYXRpb246bm9uZSIgaHJlZj0iL3ByaWNlL2JuYiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgY3VycmVudENvbG9yLWMxdWw2NzlxIGluaGVyaXQtaThjZWtqbiBpbmhlcml0LWk1eWZ3anUgaW5oZXJpdC1pMTlqZDg2biBpbmhlcml0LWkxcTJ6bTRuIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgc3R5bGU9Ii0tdGV4dC10ZXh0VHJhbnNmb3JtOnZhcigtLXRleHRUcmFuc2Zvcm0taW5oZXJpdCkiPjxidXR0b24gY2xhc3M9IiBmbGV4LWZmNXJmeTYgY2VudGVyLWNqcHVqY2QgY2VudGVyLWNjMWJhZncgXzEwMC1feDQ0Z3M0IF8wLV9zaWtneDYgd2lkdGgtd3M1MWV1ZiBjZHMtSW50ZXJhY3RhYmxlIGJhc2VDc3MtYjE3d21rOGYgYmFzZUNzcy1iMW5ybW9kcCBzY2FsZWREb3duQ3NzLXMxbzZhbHhkIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0taW50ZXItYmc6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItYm9yZGVyQ29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItaG92ZXItYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3MtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODI7LS1pbnRlci1kaXNhYmxlLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItZGlzYWJsZS1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudCIgdHlwZT0iYnV0dG9uIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF81MDAtX21pbGJ3MiBfMi1fMTVpem1vZyB3aWR0aC13czUxZXVmIEZlYXR1cmVBc3NldHNSb3dfX1Jvd0NvbnRhaW5lci1zYy1kNmFiYzZjOC0wIGNJcVFueSIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fczNzM3Z4IHNwYWNlLWJldHdlZW4tczE5Z29mbzQgcm93LXIxZmp2MmMwIHdpZHRoLXdzNTFldWYiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzItX3MzczN2eCBjZW50ZXItY2MxYmFmdyByb3ctcjFmanYyYzAgbWluV2lkdGgtbXFwcW83bCBmbGV4R3Jvdy1mYXY5aHlsIiBzdHlsZT0iLS1taW5XaWR0aDowOy0tZmxleEdyb3c6MSI+PGltZyBzcmM9Imh0dHBzOi8vYXNzZXQtbWV0YWRhdGEtc2VydmljZS1wcm9kdWN0aW9uLnMzLmFtYXpvbmF3cy5jb20vYXNzZXRfaWNvbnMvYzM0N2I2ZDFhNzYyNGUyNGM0ZTkwMDg5YTY5ZGZjOGZiNzU1MjNkYWY4ZWViODgwMDczNzJhMGMzYTMwZDQyOC5wbmciIGFsdD0iQk5CIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHN0eWxlPSJmbGV4LXNocmluazowIi8+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBtaW5XaWR0aC1tcXBxbzdsIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLW1pbldpZHRoOjA7LS1mbGV4R3JvdzoxIj48cCBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCB0My1mZiB0My1mcyB0My1mcy1tIHQzLWZzLXQgdDMtZnMtZCB0My1mdyB0My1saCB0My1saC1tIHQzLWxoLXQgdDMtbGgtZCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSJvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXAiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5CTkI8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBmbGV4LWVuZC1mdHFmZHRmIGNvbHVtbi1jMWZrNmFvaCI+PGRpdiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCB0NS1mZiB0NS1mcyB0NS1mcy1tIHQ1LWZzLXQgdDUtZnMtZCB0NS1mdyB0NS1saCB0NS1saC1tIHQ1LWxoLXQgdDUtbGgtZCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSJsaW5lLWhlaWdodDoxZW0iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5OT0vCoDUsNTA4Ljc3PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY2VudGVyLWNjMWJhZncgcm93LXIxZmp2MmMwIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmdQb3NpdGl2ZS1mYnB5b3BiIGNkcy1JY29uIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBzLXNtcHZwZG0iIGRhdGEtaWNvbi1uYW1lPSJkaWFnb25hbFVwQXJyb3ciIGRhdGEtdGVzdGlkPSJpY29uLWJhc2UtZ2x5cGgiIHJvbGU9ImltZyIgdHJhbnNsYXRlPSJubyI+87CNgDwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZ1Bvc2l0aXZlLWZicHlvcGIgYi1mZiBiLWZzIGItZncgYi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSJsaW5lLWhlaWdodDoxZW0iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj4xLjAyJTwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2J1dHRvbj48L3NwYW4+PC9hPjxhIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnUHJpbWFyeS1mMXZpYWhpZiBfMC1fMTlpbjYwNiBfMC1fc2lrZ3g2IF8wLV8xZHQ3Z2JwIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIGJhc2VDc3MtYjY3OG14OSIgc3R5bGU9Ii0taW50ZXItYmc6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItYm9yZGVyQ29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItaG92ZXItYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3MtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODI7LS1pbnRlci1kaXNhYmxlLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItZGlzYWJsZS1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDt0ZXh0LWRlY29yYXRpb246bm9uZSIgaHJlZj0iL3ByaWNlL3VzZGMiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGN1cnJlbnRDb2xvci1jMXVsNjc5cSBpbmhlcml0LWk4Y2Vram4gaW5oZXJpdC1pNXlmd2p1IGluaGVyaXQtaTE5amQ4Nm4gaW5oZXJpdC1pMXEyem00biBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSItLXRleHQtdGV4dFRyYW5zZm9ybTp2YXIoLS10ZXh0VHJhbnNmb3JtLWluaGVyaXQpIj48YnV0dG9uIGNsYXNzPSIgZmxleC1mZjVyZnk2IGNlbnRlci1janB1amNkIGNlbnRlci1jYzFiYWZ3IF8xMDAtX3g0NGdzNCBfMC1fc2lrZ3g2IHdpZHRoLXdzNTFldWYgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgc2NhbGVkRG93bkNzcy1zMW82YWx4ZCIgc3R5bGU9Ii0td2lkdGg6MTAwJTstLWludGVyLWJnOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWhvdmVyLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItaG92ZXItYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1iZzp0cmFuc3BhcmVudDstLWludGVyLXByZXNzLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3Mtb3BhY2l0eTowLjgyOy0taW50ZXItZGlzYWJsZS1iZzp0cmFuc3BhcmVudDstLWludGVyLWRpc2FibGUtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQiIHR5cGU9ImJ1dHRvbiI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfNTAwLV9taWxidzIgXzItXzE1aXptb2cgd2lkdGgtd3M1MWV1ZiBGZWF0dXJlQXNzZXRzUm93X19Sb3dDb250YWluZXItc2MtZDZhYmM2YzgtMCBjSXFRbnkiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzItX3MzczN2eCBzcGFjZS1iZXR3ZWVuLXMxOWdvZm80IHJvdy1yMWZqdjJjMCB3aWR0aC13czUxZXVmIiBzdHlsZT0iLS13aWR0aDoxMDAlIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8yLV9zM3MzdnggY2VudGVyLWNjMWJhZncgcm93LXIxZmp2MmMwIG1pbldpZHRoLW1xcHFvN2wgZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0tbWluV2lkdGg6MDstLWZsZXhHcm93OjEiPjxpbWcgc3JjPSJodHRwczovL2R5bmFtaWMtYXNzZXRzLmNvaW5iYXNlLmNvbS8zYzE1ZGY1ZTJhYzdkNGFiYmU5NDk5ZWQ5MzM1MDQxZjAwYzYyMGYyOGU4ZGUyZjkzNDc0YTlmNDMyMDU4NzQyY2RmNDY3NGJkNDNmMzA5ZTY5Nzc4YTI2OTY5MzcyMzEwMTM1YmU5N2ViMTgzZDkxYzQ5MjE1NDE3NmQ0NTViOC9hc3NldF9pY29ucy85ZDY3YjcyOGI2YzhmNDU3NzE3MTU0YjNhMzVmOWRkYzcwMmVhZTdlNzZjNDY4NGVlMzkzMDJjNGQ3ZmQwYmI4LnBuZyIgYWx0PSJVU0RDIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHN0eWxlPSJmbGV4LXNocmluazowIi8+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBtaW5XaWR0aC1tcXBxbzdsIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLW1pbldpZHRoOjA7LS1mbGV4R3JvdzoxIj48cCBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCB0My1mZiB0My1mcyB0My1mcy1tIHQzLWZzLXQgdDMtZnMtZCB0My1mdyB0My1saCB0My1saC1tIHQzLWxoLXQgdDMtbGgtZCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSJvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXAiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5VU0RDPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmxleC1lbmQtZnRxZmR0ZiBjb2x1bW4tYzFmazZhb2giPjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgdDUtZmYgdDUtZnMgdDUtZnMtbSB0NS1mcy10IHQ1LWZzLWQgdDUtZncgdDUtbGggdDUtbGgtbSB0NS1saC10IHQ1LWxoLWQgc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0ibGluZS1oZWlnaHQ6MWVtIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Tk9LwqA5LjU5PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY2VudGVyLWNjMWJhZncgcm93LXIxZmp2MmMwIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZ011dGVkLWZxcmFxcG8gYi1mZiBiLWZzIGItZncgYi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSJsaW5lLWhlaWdodDoxZW0iIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj4tLTwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2J1dHRvbj48L3NwYW4+PC9hPjxhIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnUHJpbWFyeS1mMXZpYWhpZiBfMC1fMTlpbjYwNiBfMC1fc2lrZ3g2IF8wLV8xZHQ3Z2JwIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIGJhc2VDc3MtYjY3OG14OSIgc3R5bGU9Ii0taW50ZXItYmc6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItYm9yZGVyQ29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItaG92ZXItYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3MtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODI7LS1pbnRlci1kaXNhYmxlLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItZGlzYWJsZS1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDt0ZXh0LWRlY29yYXRpb246bm9uZSIgaHJlZj0iL3ByaWNlL3hycCI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgY3VycmVudENvbG9yLWMxdWw2NzlxIGluaGVyaXQtaThjZWtqbiBpbmhlcml0LWk1eWZ3anUgaW5oZXJpdC1pMTlqZDg2biBpbmhlcml0LWkxcTJ6bTRuIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgc3R5bGU9Ii0tdGV4dC10ZXh0VHJhbnNmb3JtOnZhcigtLXRleHRUcmFuc2Zvcm0taW5oZXJpdCkiPjxidXR0b24gY2xhc3M9IiBmbGV4LWZmNXJmeTYgY2VudGVyLWNqcHVqY2QgY2VudGVyLWNjMWJhZncgXzEwMC1feDQ0Z3M0IF8wLV9zaWtneDYgd2lkdGgtd3M1MWV1ZiBjZHMtSW50ZXJhY3RhYmxlIGJhc2VDc3MtYjE3d21rOGYgYmFzZUNzcy1iMW5ybW9kcCBzY2FsZWREb3duQ3NzLXMxbzZhbHhkIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0taW50ZXItYmc6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItYm9yZGVyQ29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpOy0taW50ZXItaG92ZXItYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3MtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODI7LS1pbnRlci1kaXNhYmxlLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItZGlzYWJsZS1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudCIgdHlwZT0iYnV0dG9uIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF81MDAtX21pbGJ3MiBfMi1fMTVpem1vZyB3aWR0aC13czUxZXVmIEZlYXR1cmVBc3NldHNSb3dfX1Jvd0NvbnRhaW5lci1zYy1kNmFiYzZjOC0wIGNJcVFueSIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fczNzM3Z4IHNwYWNlLWJldHdlZW4tczE5Z29mbzQgcm93LXIxZmp2MmMwIHdpZHRoLXdzNTFldWYiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzItX3MzczN2eCBjZW50ZXItY2MxYmFmdyByb3ctcjFmanYyYzAgbWluV2lkdGgtbXFwcW83bCBmbGV4R3Jvdy1mYXY5aHlsIiBzdHlsZT0iLS1taW5XaWR0aDowOy0tZmxleEdyb3c6MSI+PGltZyBzcmM9Imh0dHBzOi8vZHluYW1pYy1hc3NldHMuY29pbmJhc2UuY29tL2U4MTUwOWQyMzA3ZjcwNmYzYTZmODk5OTk2ODg3NGI1MGI2Mjg2MzRhYmY1MTU0ZmM5MWE3ZTVmNzY4NWQ0OTZhMzNhY2I0Y2RlMDIyNjVlZDZmNTRiMGEwOGZhNTQ5MTIyMDg1MTZlOTU2YmM1ZjBmZmQxYzljMjYzNDA5OWFlL2Fzc2V0X2ljb25zLzNhZjRiMzNiZGUzMDEyZmQyOWRkMTM2NmIwYWQ3Mzc2NjBmMjRhY2M5MTc1MGVlMzBhMDM0YTA2NzkyNTZkMGIucG5nIiBhbHQ9IlhSUCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBzdHlsZT0iZmxleC1zaHJpbms6MCIvPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgbWluV2lkdGgtbXFwcW83bCBmbGV4R3Jvdy1mYXY5aHlsIiBzdHlsZT0iLS1taW5XaWR0aDowOy0tZmxleEdyb3c6MSI+PHAgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgdDMtZmYgdDMtZnMgdDMtZnMtbSB0My1mcy10IHQzLWZzLWQgdDMtZncgdDMtbGggdDMtbGgtbSB0My1saC10IHQzLWxoLWQgc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0ib3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+WFJQPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmxleC1lbmQtZnRxZmR0ZiBjb2x1bW4tYzFmazZhb2giPjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgdDUtZmYgdDUtZnMgdDUtZnMtbSB0NS1mcy10IHQ1LWZzLWQgdDUtZncgdDUtbGggdDUtbGgtbSB0NS1saC10IHQ1LWxoLWQgc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0ibGluZS1oZWlnaHQ6MWVtIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Tk9LwqAxMC42NTwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEtXzR3ZjY2IGNlbnRlci1jYzFiYWZ3IHJvdy1yMWZqdjJjMCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnUG9zaXRpdmUtZmJweW9wYiBjZHMtSWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgcy1zbXB2cGRtIiBkYXRhLWljb24tbmFtZT0iZGlhZ29uYWxVcEFycm93IiBkYXRhLXRlc3RpZD0iaWNvbi1iYXNlLWdseXBoIiByb2xlPSJpbWciIHRyYW5zbGF0ZT0ibm8iPvOwjYA8L3NwYW4+PC9kaXY+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmdQb3NpdGl2ZS1mYnB5b3BiIGItZmYgYi1mcyBiLWZ3IGItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0ibGluZS1oZWlnaHQ6MWVtIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+MS4yNSU8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9idXR0b24+PC9zcGFuPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjb2x1bW4tYzFmazZhb2ggYmctYnA3Z2czMSB3aWR0aC13czUxZXVmIiBkYXRhLXRlc3RpZD0iZmVhdHVyZS1oaWdobGlnaHQiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY29sdW1uLWMxZms2YW9oIGJnLWJwN2dnMzEgd2lkdGgtd3M1MWV1ZiIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iQ0RYU2VjdGlvbkNvbnRhaW5lcl9fRGl2RGlzcGxheUNvbnRlbnRzLXNjLThhNGYzNTdlLTAgQ3ZjQlMiPjxzZWN0aW9uIGNsYXNzPSIgZmxleC1mZjVyZnk2IGNlbnRlci1jYzFiYWZ3IGNvbHVtbi1jMWZrNmFvaCBiZy1icDdnZzMxIHdpZHRoLXdzNTFldWYiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBfMy1fMWQycWZmNSBfNC1fMXN1MWdpNCBfNi1fMXlvZjB4NyBjb2x1bW4tYzFmazZhb2ggYmctYnA3Z2czMSBfMi1fMWQ1NnZrMyBfMy1fMWRzNmdiNSBfNC1fMW9uZmFpdCBfNi1fb3VzcGV5IF84LV8xbWhxYTczIF8xMC1fZnNvY2p6IHdpZHRoLXdzNTFldWYgbWF4V2lkdGgtbWF2eHQybSBtYXhXaWR0aC1tMTBkazA3byIgZGF0YS10ZXN0aWQ9ImZlYXR1cmUtaGlnaGxpZ2h0cy1pdGVtIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0tdGFibGV0LW1heFdpZHRoOjEyMjhweDstLWRlc2t0b3AtbWF4V2lkdGg6MTIwMHB4Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8zLV8xZDJxZmY1IF80LV8xc3UxZ2k0IF82LV8xeW9mMHg3IGNlbnRlci1jYzFiYWZ3IHN0cmV0Y2gtc3RtZDZ2dyByb3ctcjFmanYyYzAgY29sdW1uLWMxZGNkNDU5Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjb2x1bW4tYzFmazZhb2ggZmxleEJhc2lzLWY5NWJrcG8gZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0tZmxleEJhc2lzOjA7LS1mbGV4R3JvdzoxIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGhpZGRlbi1oMTQ3anVubyB0cmFuc3BhcmVudC10MTl4bnlpNyBfMTAwLV94NDRnczQgXzcwMC1fcWIxaDZiIF83MDAtXzF3NjBrMWcgXzgwMC1fMTU3cGZreiBfOTAwLV9iMzRjdHEiIGRhdGEtdGVzdGlkPSJmZWF0dXJlLWhpZ2hsaWdodHMtaXRlbS1tZWRpYSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfNzAwLV9xYjFoNmIgXzcwMC1fMXc2MGsxZyBfODAwLV8xNTdwZmt6IF85MDAtX2IzNGN0cSBhc3BlY3RSYXRpby1hODRzYndmIENEWEltYWdlX19JbWFnZUNvbnRhaW5lci1zYy00YTRkZDE1ZS0wIGlWTnd4YSIgZGF0YS10ZXN0aWQ9ImZlYXR1cmUtaGlnaGxpZ2h0cy1pdGVtLWltYWdlIiBzdHlsZT0iLS1hc3BlY3RSYXRpbzo1LzQ7LS1vYmplY3QtZml0LWJhc2U6Y292ZXI7LS1vYmplY3QtZml0LXBob25lOmNvdmVyOy0tb2JqZWN0LWZpdC10YWJsZXQ6Y292ZXI7LS1vYmplY3QtZml0LWRlc2t0b3A6Y292ZXIiPjxwaWN0dXJlIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZSIgY2xhc3M9IkNEWEltYWdlX19TdHlsZWRQaWN0dXJlLXNjLTRhNGRkMTVlLTEgaVNRVE5oIj48c291cmNlIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1zb3VyY2UtYXZpZi1iYXNlIiBzcmNTZXQ9Imh0dHBzOi8vaW1hZ2VzLmN0ZmFzc2V0cy5uZXQvbzEwZXM3d3U1Z20xLzNGd2lHdnU1ZllWc2x1ZGk4amdPWTcvMTRlNzAzOTU1ODc4NmYxODIxMjNlNjU4YzY5NDAxNTEvQWR2YW5jZWQucG5nP2ZtPWF2aWYmYW1wO3c9MjAxNCZhbXA7aD0xNjEyJmFtcDtxPTY1IiB0eXBlPSJpbWFnZS9hdmlmIiB3aWR0aD0iMjAxNCIgaGVpZ2h0PSIxNjEyIi8+PHNvdXJjZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2Utc291cmNlLXdlYnAtYmFzZSIgc3JjU2V0PSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS8zRndpR3Z1NWZZVnNsdWRpOGpnT1k3LzE0ZTcwMzk1NTg3ODZmMTgyMTIzZTY1OGM2OTQwMTUxL0FkdmFuY2VkLnBuZz9mbT13ZWJwJmFtcDt3PTIwMTQmYW1wO2g9MTYxMiZhbXA7cT03NSIgdHlwZT0iaW1hZ2Uvd2VicCIgd2lkdGg9IjIwMTQiIGhlaWdodD0iMTYxMiIvPjxpbWcgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLWltZyIgc3JjPSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS8zRndpR3Z1NWZZVnNsdWRpOGpnT1k3LzE0ZTcwMzk1NTg3ODZmMTgyMTIzZTY1OGM2OTQwMTUxL0FkdmFuY2VkLnBuZyIgYWx0PSJBZHZhbmNlZCBUcmFkZSBNb2JpbGUgVUkiIGxvYWRpbmc9ImxhenkiIGhlaWdodD0iMTYxMiIgd2lkdGg9IjIwMTQiIGNsYXNzPSJDRFhJbWFnZV9fU3R5bGVkSW1hZ2Utc2MtNGE0ZGQxNWUtMiBoZE1wV2wiLz48L3BpY3R1cmU+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMy1fMWQycWZmNSBfMi1fMWQ1bHQ3OSBjb2x1bW4tYzFmazZhb2ggZmxleEJhc2lzLWY5NWJrcG8gZmxleFNocmluay1mMTc0aHUyMiBmbGV4R3Jvdy1mYXY5aHlsIiBzdHlsZT0iLS1mbGV4QmFzaXM6MDstLWZsZXhTaHJpbms6MTstLWZsZXhHcm93OjEiPjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgdDEtZmYgdDEtZnMgdDEtZnMtbSB0MS1mcy10IHQxLWZzLWQgdDEtZncgdDEtbGggdDEtbGgtbSB0MS1saC10IHQxLWxoLWQgc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLXRlc3RpZD0iZmVhdHVyZS1oaWdobGlnaHRzLWl0ZW0tdGl0bGUiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj48aDIgY2xhc3M9InJpY2hUZXh0RWxlbWVudHNfX0luaGVyaXRlZEVsZW1lbnQtc2MtZTYwYWQ4ODktMiByaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRIMi1zYy1lNjBhZDg4OS01IGVWbXZDWCBkcVF2aFciPlBvd2VyZnVsIHRvb2xzLCBkZXNpZ25lZCBmb3IgdGhlIGFkdmFuY2VkIHRyYWRlci48L2gyPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY29sdW1uLWMxZms2YW9oIENEWEZlYXR1cmVIaWdobGlnaHRzSXRlbV9fUGFyYWdyYXBoV3JhcHBlci1zYy1kMmE5ZTQ5OS0xIGhEclRIZiI+PGRpdiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZ011dGVkLWZxcmFxcG8gYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtdGVzdGlkPSJmZWF0dXJlLWhpZ2hsaWdodHMtaXRlbS1wYXJhZ3JhcGgiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj48cCBjbGFzcz0icmljaFRleHRFbGVtZW50c19fSW5oZXJpdGVkRWxlbWVudC1zYy1lNjBhZDg4OS0yIHJpY2hUZXh0RWxlbWVudHNfX1N0eWxlZFAtc2MtZTYwYWQ4ODktMyBlVm12Q1ggRUZjRVIiPlBvd2VyZnVsIGFuYWx5dGljYWwgdG9vbHMgd2l0aCB0aGUgc2FmZXR5IGFuZCBzZWN1cml0eSBvZiBDb2luYmFzZSBkZWxpdmVyIHRoZSB1bHRpbWF0ZSB0cmFkaW5nIGV4cGVyaWVuY2UuIFRhcCBpbnRvIHNvcGhpc3RpY2F0ZWQgY2hhcnRpbmcgY2FwYWJpbGl0aWVzLCByZWFsLXRpbWUgb3JkZXIgYm9va3MsIGFuZCBkZWVwIGxpcXVpZGl0eSBhY3Jvc3MgaHVuZHJlZHMgb2YgbWFya2V0cy48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fczNzM3Z4IHJvdy1yMWZqdjJjMCBjb2x1bW4tYzFkY2Q0NTkgbm93cmFwLW4xZTB2MjBnIHdpZHRoLXc3ZDQ1YmciIGRhdGEtdGVzdGlkPSJmZWF0dXJlLWhpZ2hsaWdodHMtaXRlbS1jdGFzIiBzdHlsZT0iLS1waG9uZS13aWR0aDoxMDAlIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGZsZXgtc3RhcnQtZjFlZ2doZ2sgd2lkdGgtdzdkNDViZyIgc3R5bGU9Ii0tcGhvbmUtd2lkdGg6YXV0byI+PGRpdiBjbGFzcz0iQ0RYQnV0dG9uX19DRFhCdXR0b25Db250YWluZXItc2MtNjQwYzk2MjItMCBlTEVtUEkiPjxhIGNsYXNzPSIgZmxleC1mZjVyZnk2IGZnSW52ZXJzZS1mMXNkbHdqbiBfMC1fMTlpbjYwNiBfOTAwLV8xaTFubG16IF8wLV9zaWtneDYgXzQtX3NtN3JhdSBfMi1fMXVidndkOSBfMC1fMWR0N2dicCBtaW5XaWR0aC1tcXBxbzdsIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIHNjYWxlZERvd25Dc3MtczFvNmFseGQgY2RzLUJ1dHRvbiBiYXNlQ3NzLWI5OXpxdWggY2R4LWJ1dHRvbiAiIGRhdGEtdGVzdGlkPSJmZWF0dXJlLWhpZ2hsaWdodHMtaXRlbS1jdGFzLTEiIHN0eWxlPSItLW1pbldpZHRoOmF1dG87LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODIiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciIgZGF0YS12YXJpYW50PSJwcmltYXJ5IiBocmVmPSIvYWR2YW5jZWQtdHJhZGUiIHRhcmdldD0iX2JsYW5rIiBpZD0iMlB0Y3ZaSWU2R2czWENpQkpybTJqVCI+PHNwYW4gY2xhc3M9Im1pZGRsZU5vZGVDc3MtbTFhdnBxNTIiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGN1cnJlbnRDb2xvci1jMXVsNjc5cSBoZWFkbGluZS1oMTV1MHdlMCBoZWFkbGluZS1oMWN6MTg0eSBoZWFkbGluZS1oMWF4ZTY4aCBoZWFkbGluZS1oMWQ4eGgzdyBjZW50ZXItY2Z6OTdqOSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0iLS10ZXh0LXRleHRUcmFuc2Zvcm06dmFyKC0tdGV4dFRyYW5zZm9ybS1oZWFkbGluZSkiPjxzcGFuIGNsYXNzPSIiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWJsb2NrLWkxdzhhZm85IGZnSW52ZXJzZS1mMXNkbHdqbiBsMS1mZiBsMS1mcyBsMS1mdyBsMS1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5TdGFydCB0cmFkaW5nPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjb2x1bW4tYzFmazZhb2ggYmctYnA3Z2czMSB3aWR0aC13czUxZXVmIiBzdHlsZT0iLS13aWR0aDoxMDAlIj48ZGl2IGNsYXNzPSJDRFhTZWN0aW9uQ29udGFpbmVyX19EaXZEaXNwbGF5Q29udGVudHMtc2MtOGE0ZjM1N2UtMCBDdmNCUyI+PHNlY3Rpb24gY2xhc3M9IiBmbGV4LWZmNXJmeTYgY2VudGVyLWNjMWJhZncgY29sdW1uLWMxZms2YW9oIGJnLWJwN2dnMzEgd2lkdGgtd3M1MWV1ZiIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIF8zLV8xZDJxZmY1IF80LV8xc3UxZ2k0IF82LV8xeW9mMHg3IGNvbHVtbi1jMWZrNmFvaCBiZy1icDdnZzMxIF8yLV8xZDU2dmszIF8zLV8xZHM2Z2I1IF80LV8xb25mYWl0IF82LV9vdXNwZXkgXzgtXzFtaHFhNzMgXzEwLV9mc29janogd2lkdGgtd3M1MWV1ZiBtYXhXaWR0aC1tYXZ4dDJtIG1heFdpZHRoLW0xMGRrMDdvIiBkYXRhLXRlc3RpZD0iZmVhdHVyZS1oaWdobGlnaHRzLWl0ZW0iIHN0eWxlPSItLXdpZHRoOjEwMCU7LS10YWJsZXQtbWF4V2lkdGg6MTIyOHB4Oy0tZGVza3RvcC1tYXhXaWR0aDoxMjAwcHgiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMtXzFkMnFmZjUgXzQtXzFzdTFnaTQgXzYtXzF5b2YweDcgY2VudGVyLWNjMWJhZncgc3RyZXRjaC1zdG1kNnZ3IHJvdy1yZXZlcnNlLXJ1Nng4ZHEgY29sdW1uLWMxZGNkNDU5Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjb2x1bW4tYzFmazZhb2ggZmxleEJhc2lzLWY5NWJrcG8gZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0tZmxleEJhc2lzOjA7LS1mbGV4R3JvdzoxIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGhpZGRlbi1oMTQ3anVubyBiZ0xpbmUtYjFrbGs2aCBfMTAwLV94NDRnczQgXzcwMC1fcWIxaDZiIF83MDAtXzF3NjBrMWcgXzgwMC1fMTU3cGZreiBfOTAwLV9iMzRjdHEiIGRhdGEtdGVzdGlkPSJmZWF0dXJlLWhpZ2hsaWdodHMtaXRlbS1tZWRpYSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBiZ0FsdGVybmF0ZS1idHh2dGdzIF83MDAtX3FiMWg2YiBfNzAwLV8xdzYwazFnIF84MDAtXzE1N3Bma3ogXzkwMC1fYjM0Y3RxIGFzcGVjdFJhdGlvLWE4NHNid2YgQ0RYSW1hZ2VfX0ltYWdlQ29udGFpbmVyLXNjLTRhNGRkMTVlLTAgaVZOd3hhIiBkYXRhLXRlc3RpZD0iZmVhdHVyZS1oaWdobGlnaHRzLWl0ZW0taW1hZ2UiIHN0eWxlPSItLWFzcGVjdFJhdGlvOjUvNDstLW9iamVjdC1maXQtYmFzZTpjb250YWluOy0tb2JqZWN0LWZpdC1waG9uZTpjb250YWluOy0tb2JqZWN0LWZpdC10YWJsZXQ6Y29udGFpbjstLW9iamVjdC1maXQtZGVza3RvcDpjb250YWluIj48cGljdHVyZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2UiIGNsYXNzPSJDRFhJbWFnZV9fU3R5bGVkUGljdHVyZS1zYy00YTRkZDE1ZS0xIGlTUVROaCI+PHNvdXJjZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2Utc291cmNlLWF2aWYtYmFzZSIgc3JjU2V0PSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS80Q3lmRmo4TTBYOHRLbnpoOEFnZHhUL2YwZmE1Mjc1MDQ5OWQ5YjE2OTFmNjI4ODA5MDZmZjNlL3plcm9fZmVlc191cy5wbmc/Zm09YXZpZiZhbXA7dz0xMzIwJmFtcDtoPTEzMjAmYW1wO3E9NjUiIHR5cGU9ImltYWdlL2F2aWYiIHdpZHRoPSIxMzIwIiBoZWlnaHQ9IjEzMjAiLz48c291cmNlIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1zb3VyY2Utd2VicC1iYXNlIiBzcmNTZXQ9Imh0dHBzOi8vaW1hZ2VzLmN0ZmFzc2V0cy5uZXQvbzEwZXM3d3U1Z20xLzRDeWZGajhNMFg4dEtuemg4QWdkeFQvZjBmYTUyNzUwNDk5ZDliMTY5MWY2Mjg4MDkwNmZmM2UvemVyb19mZWVzX3VzLnBuZz9mbT13ZWJwJmFtcDt3PTEzMjAmYW1wO2g9MTMyMCZhbXA7cT03NSIgdHlwZT0iaW1hZ2Uvd2VicCIgd2lkdGg9IjEzMjAiIGhlaWdodD0iMTMyMCIvPjxpbWcgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLWltZyIgc3JjPSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS80Q3lmRmo4TTBYOHRLbnpoOEFnZHhUL2YwZmE1Mjc1MDQ5OWQ5YjE2OTFmNjI4ODA5MDZmZjNlL3plcm9fZmVlc191cy5wbmciIGFsdD0iTm8gdHJhZGluZyBmZWVzIiBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjEzMjAiIHdpZHRoPSIxMzIwIiBjbGFzcz0iQ0RYSW1hZ2VfX1N0eWxlZEltYWdlLXNjLTRhNGRkMTVlLTIgaGRNcFdsIi8+PC9waWN0dXJlPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgY29sdW1uLWMxZms2YW9oIGZsZXhCYXNpcy1mOTVia3BvIGZsZXhTaHJpbmstZjE3NGh1MjIgZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0tZmxleEJhc2lzOjA7LS1mbGV4U2hyaW5rOjE7LS1mbGV4R3JvdzoxIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8zMDAtXzF5emE1MnYgXzFfNS1femw0YjE1IF8wXzc1LV9kbXJ1eGsgXzAtXzFkdDdnYnAgd2lkdGgtd3M1MWV1ZiBib3JkZXJlZC1id2hlOW10IiBzdHlsZT0iLS13aWR0aDpmaXQtY29udGVudDtib3JkZXItd2lkdGg6MXB4Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gY2VudGVyLWNjMWJhZncgZmctZjFzb3JhZzQgXzEtXzFuNTdzanMgY2RzLUljb24gQ0RYSWNvbi1zYy1iNjJmYjQ1My0wIGNhRVliQSI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImNvaW5iYXNlIiBkYXRhLXRlc3RpZD0iaWNvbi1iYXNlLWdseXBoIiByb2xlPSJpbWciIHRyYW5zbGF0ZT0ibm8iPvOwiaQ8L3NwYW4+PC9kaXY+PHAgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmdNdXRlZC1mcXJhcXBvIGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Q09JTkJBU0UgT05FPC9wPjwvZGl2PjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgdDEtZmYgdDEtZnMgdDEtZnMtbSB0MS1mcy10IHQxLWZzLWQgdDEtZncgdDEtbGggdDEtbGgtbSB0MS1saC10IHQxLWxoLWQgc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLXRlc3RpZD0iZmVhdHVyZS1oaWdobGlnaHRzLWl0ZW0tdGl0bGUiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj48aDIgY2xhc3M9InJpY2hUZXh0RWxlbWVudHNfX0luaGVyaXRlZEVsZW1lbnQtc2MtZTYwYWQ4ODktMiByaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRIMi1zYy1lNjBhZDg4OS01IGVWbXZDWCBkcVF2aFciPlplcm8gdHJhZGluZyBmZWVzLCBtb3JlIHJld2FyZHMuPC9oMj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGNvbHVtbi1jMWZrNmFvaCBDRFhGZWF0dXJlSGlnaGxpZ2h0c0l0ZW1fX1BhcmFncmFwaFdyYXBwZXItc2MtZDJhOWU0OTktMSBoRHJUSGYiPjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmdNdXRlZC1mcXJhcXBvIGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLXRlc3RpZD0iZmVhdHVyZS1oaWdobGlnaHRzLWl0ZW0tcGFyYWdyYXBoIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+PHAgY2xhc3M9InJpY2hUZXh0RWxlbWVudHNfX0luaGVyaXRlZEVsZW1lbnQtc2MtZTYwYWQ4ODktMiByaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRQLXNjLWU2MGFkODg5LTMgZVZtdkNYIEVGY0VSIj5HZXQgbW9yZSBvdXQgb2YgY3J5cHRvIHdpdGggb25lIG1lbWJlcnNoaXA6IHplcm8gdHJhZGluZyBmZWVzLCBib29zdGVkIHJld2FyZHMsIHByaW9yaXR5IHN1cHBvcnQsIGFuZCBtb3JlLjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8yLV9zM3Mzdnggcm93LXIxZmp2MmMwIGNvbHVtbi1jMWRjZDQ1OSBub3dyYXAtbjFlMHYyMGcgd2lkdGgtdzdkNDViZyIgZGF0YS10ZXN0aWQ9ImZlYXR1cmUtaGlnaGxpZ2h0cy1pdGVtLWN0YXMiIHN0eWxlPSItLXBob25lLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmxleC1zdGFydC1mMWVnZ2hnayB3aWR0aC13N2Q0NWJnIiBzdHlsZT0iLS1waG9uZS13aWR0aDphdXRvIj48ZGl2IGNsYXNzPSJDRFhCdXR0b25fX0NEWEJ1dHRvbkNvbnRhaW5lci1zYy02NDBjOTYyMi0wIGVMRW1QSSI+PGEgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmdJbnZlcnNlLWYxc2Rsd2puIF8wLV8xOWluNjA2IF85MDAtXzFpMW5sbXogXzAtX3Npa2d4NiBfNC1fc203cmF1IF8yLV8xdWJ2d2Q5IF8wLV8xZHQ3Z2JwIG1pbldpZHRoLW1xcHFvN2wgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgc2NhbGVkRG93bkNzcy1zMW82YWx4ZCBjZHMtQnV0dG9uIGJhc2VDc3MtYjk5enF1aCBjZHgtYnV0dG9uICIgZGF0YS10ZXN0aWQ9ImZlYXR1cmUtaGlnaGxpZ2h0cy1pdGVtLWN0YXMtMSIgc3R5bGU9Ii0tbWluV2lkdGg6YXV0bzstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MiIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiBkYXRhLXZhcmlhbnQ9InByaW1hcnkiIGhyZWY9Imh0dHBzOi8vY29pbmJhc2UuY29tL29uZT9yZWZlcnJlcj1sb2dnZWRfb3V0IiB0YXJnZXQ9Il9ibGFuayIgaWQ9IjZrNnhBTkpVM2dNQnBBZUVOWWVySGoiPjxzcGFuIGNsYXNzPSJtaWRkbGVOb2RlQ3NzLW0xYXZwcTUyIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBjdXJyZW50Q29sb3ItYzF1bDY3OXEgaGVhZGxpbmUtaDE1dTB3ZTAgaGVhZGxpbmUtaDFjejE4NHkgaGVhZGxpbmUtaDFheGU2OGggaGVhZGxpbmUtaDFkOHhoM3cgY2VudGVyLWNmejk3ajkgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgc3R5bGU9Ii0tdGV4dC10ZXh0VHJhbnNmb3JtOnZhcigtLXRleHRUcmFuc2Zvcm0taGVhZGxpbmUpIj48c3BhbiBjbGFzcz0iIj48c3BhbiBjbGFzcz0iIGlubGluZS1ibG9jay1pMXc4YWZvOSBmZ0ludmVyc2UtZjFzZGx3am4gbDEtZmYgbDEtZnMgbDEtZncgbDEtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Q2xhaW0gZnJlZSB0cmlhbDwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY29sdW1uLWMxZms2YW9oIGJnLWJwN2dnMzEgd2lkdGgtd3M1MWV1ZiIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iQ0RYU2VjdGlvbkNvbnRhaW5lcl9fRGl2RGlzcGxheUNvbnRlbnRzLXNjLThhNGYzNTdlLTAgQ3ZjQlMiPjxzZWN0aW9uIGNsYXNzPSIgZmxleC1mZjVyZnk2IGNlbnRlci1jYzFiYWZ3IGNvbHVtbi1jMWZrNmFvaCBiZy1icDdnZzMxIHdpZHRoLXdzNTFldWYiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBfMy1fMWQycWZmNSBfNC1fMXN1MWdpNCBfNi1fMXlvZjB4NyBjb2x1bW4tYzFmazZhb2ggYmctYnA3Z2czMSBfMi1fMWQ1NnZrMyBfMy1fMWRzNmdiNSBfNC1fMW9uZmFpdCBfNi1fb3VzcGV5IF84LV8xbWhxYTczIF8xMC1fZnNvY2p6IHdpZHRoLXdzNTFldWYgbWF4V2lkdGgtbWF2eHQybSBtYXhXaWR0aC1tMTBkazA3byIgZGF0YS10ZXN0aWQ9ImZlYXR1cmUtaGlnaGxpZ2h0cy1pdGVtIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0tdGFibGV0LW1heFdpZHRoOjEyMjhweDstLWRlc2t0b3AtbWF4V2lkdGg6MTIwMHB4Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8zLV8xZDJxZmY1IF80LV8xc3UxZ2k0IF82LV8xeW9mMHg3IGNlbnRlci1jYzFiYWZ3IHN0cmV0Y2gtc3RtZDZ2dyByb3ctcjFmanYyYzAgY29sdW1uLWMxZGNkNDU5Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjb2x1bW4tYzFmazZhb2ggZmxleEJhc2lzLWY5NWJrcG8gZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0tZmxleEJhc2lzOjA7LS1mbGV4R3JvdzoxIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGhpZGRlbi1oMTQ3anVubyBiZ0xpbmUtYjFrbGs2aCBfMTAwLV94NDRnczQgXzcwMC1fcWIxaDZiIF83MDAtXzF3NjBrMWcgXzgwMC1fMTU3cGZreiBfOTAwLV9iMzRjdHEiIGRhdGEtdGVzdGlkPSJmZWF0dXJlLWhpZ2hsaWdodHMtaXRlbS1tZWRpYSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBiZ0FsdGVybmF0ZS1idHh2dGdzIF83MDAtX3FiMWg2YiBfNzAwLV8xdzYwazFnIF84MDAtXzE1N3Bma3ogXzkwMC1fYjM0Y3RxIGFzcGVjdFJhdGlvLWE4NHNid2YgQ0RYSW1hZ2VfX0ltYWdlQ29udGFpbmVyLXNjLTRhNGRkMTVlLTAgaVZOd3hhIiBkYXRhLXRlc3RpZD0iZmVhdHVyZS1oaWdobGlnaHRzLWl0ZW0taW1hZ2UiIHN0eWxlPSItLWFzcGVjdFJhdGlvOjUvNDstLW9iamVjdC1maXQtYmFzZTpzY2FsZS1kb3duOy0tb2JqZWN0LWZpdC1waG9uZTpzY2FsZS1kb3duOy0tb2JqZWN0LWZpdC10YWJsZXQ6c2NhbGUtZG93bjstLW9iamVjdC1maXQtZGVza3RvcDpzY2FsZS1kb3duIj48cGljdHVyZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2UiIGNsYXNzPSJDRFhJbWFnZV9fU3R5bGVkUGljdHVyZS1zYy00YTRkZDE1ZS0xIGlTUVROaCI+PHNvdXJjZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2Utc291cmNlLWF2aWYtYmFzZSIgc3JjU2V0PSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS8xdjN0ZmJWdWJaZk9QeEIyN21vaXJyLzUxY2ExNTBjMzNhNTBjN2E4ZTZkOWFhNGYzMTAzNDc4L2Jhc2UtYXBwLWNvaW5iYXNlLWNvbS5wbmc/Zm09YXZpZiZhbXA7dz05NzUmYW1wO2g9OTc1JmFtcDtxPTY1IiB0eXBlPSJpbWFnZS9hdmlmIiB3aWR0aD0iOTc1IiBoZWlnaHQ9Ijk3NSIvPjxzb3VyY2UgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLXNvdXJjZS13ZWJwLWJhc2UiIHNyY1NldD0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvMXYzdGZiVnViWmZPUHhCMjdtb2lyci81MWNhMTUwYzMzYTUwYzdhOGU2ZDlhYTRmMzEwMzQ3OC9iYXNlLWFwcC1jb2luYmFzZS1jb20ucG5nP2ZtPXdlYnAmYW1wO3c9OTc1JmFtcDtoPTk3NSZhbXA7cT03NSIgdHlwZT0iaW1hZ2Uvd2VicCIgd2lkdGg9Ijk3NSIgaGVpZ2h0PSI5NzUiLz48aW1nIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1pbWciIHNyYz0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvMXYzdGZiVnViWmZPUHhCMjdtb2lyci81MWNhMTUwYzMzYTUwYzdhOGU2ZDlhYTRmMzEwMzQ3OC9iYXNlLWFwcC1jb2luYmFzZS1jb20ucG5nIiBhbHQ9IkJhc2UgQXBwIHNjcmVlbiIgbG9hZGluZz0ibGF6eSIgaGVpZ2h0PSI5NzUiIHdpZHRoPSI5NzUiIGNsYXNzPSJDRFhJbWFnZV9fU3R5bGVkSW1hZ2Utc2MtNGE0ZGQxNWUtMiBoZE1wV2wiLz48L3BpY3R1cmU+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMy1fMWQycWZmNSBfMi1fMWQ1bHQ3OSBjb2x1bW4tYzFmazZhb2ggZmxleEJhc2lzLWY5NWJrcG8gZmxleFNocmluay1mMTc0aHUyMiBmbGV4R3Jvdy1mYXY5aHlsIiBzdHlsZT0iLS1mbGV4QmFzaXM6MDstLWZsZXhTaHJpbms6MTstLWZsZXhHcm93OjEiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMwMC1fMXl6YTUydiBfMV81LV96bDRiMTUgXzBfNzUtX2RtcnV4ayBfMC1fMWR0N2dicCB3aWR0aC13czUxZXVmIGJvcmRlcmVkLWJ3aGU5bXQiIHN0eWxlPSItLXdpZHRoOmZpdC1jb250ZW50O2JvcmRlci13aWR0aDoxcHgiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBjZW50ZXItY2MxYmFmdyBmZy1mMXNvcmFnNCBfMS1fMW41N3NqcyBjZHMtSWNvbiBDRFhJY29uLXNjLWI2MmZiNDUzLTAgY2FFWWJBIj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBtLW0xajdiNDY1IiBkYXRhLWljb24tbmFtZT0iYmFzZSIgZGF0YS10ZXN0aWQ9Imljb24tYmFzZS1nbHlwaCIgcm9sZT0iaW1nIiB0cmFuc2xhdGU9Im5vIj7zsIK0PC9zcGFuPjwvZGl2PjxwIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnTXV0ZWQtZnFyYXFwbyBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkJBU0UgQVBQPC9wPjwvZGl2PjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgdDEtZmYgdDEtZnMgdDEtZnMtbSB0MS1mcy10IHQxLWZzLWQgdDEtZncgdDEtbGggdDEtbGgtbSB0MS1saC10IHQxLWxoLWQgc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLXRlc3RpZD0iZmVhdHVyZS1oaWdobGlnaHRzLWl0ZW0tdGl0bGUiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj48aDIgY2xhc3M9InJpY2hUZXh0RWxlbWVudHNfX0luaGVyaXRlZEVsZW1lbnQtc2MtZTYwYWQ4ODktMiByaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRIMi1zYy1lNjBhZDg4OS01IGVWbXZDWCBkcVF2aFciPlRyYWRlLCBzdGFrZSwgYW5kIGVhcm4uIEFsbCBvbmNoYWluLjwvaDI+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjb2x1bW4tYzFmazZhb2ggQ0RYRmVhdHVyZUhpZ2hsaWdodHNJdGVtX19QYXJhZ3JhcGhXcmFwcGVyLXNjLWQyYTllNDk5LTEgaERyVEhmIj48ZGl2IGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnTXV0ZWQtZnFyYXFwbyBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS10ZXN0aWQ9ImZlYXR1cmUtaGlnaGxpZ2h0cy1pdGVtLXBhcmFncmFwaCIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPjxwIGNsYXNzPSJyaWNoVGV4dEVsZW1lbnRzX19Jbmhlcml0ZWRFbGVtZW50LXNjLWU2MGFkODg5LTIgcmljaFRleHRFbGVtZW50c19fU3R5bGVkUC1zYy1lNjBhZDg4OS0zIGVWbXZDWCBFRmNFUiI+QWNjZXNzIG1pbGxpb25zIG9mIGFzc2V0cywgZWFybiBVU0RDIHJld2FyZHMsIGFuZCB0YXAgaW50byB0aGUgb25jaGFpbiBlY29ub215LiBBbGwgaW4gdGhlIEJhc2UgQXBwLjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8yLV9zM3Mzdnggcm93LXIxZmp2MmMwIGNvbHVtbi1jMWRjZDQ1OSBub3dyYXAtbjFlMHYyMGcgd2lkdGgtdzdkNDViZyIgZGF0YS10ZXN0aWQ9ImZlYXR1cmUtaGlnaGxpZ2h0cy1pdGVtLWN0YXMiIHN0eWxlPSItLXBob25lLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmxleC1zdGFydC1mMWVnZ2hnayB3aWR0aC13N2Q0NWJnIiBzdHlsZT0iLS1waG9uZS13aWR0aDphdXRvIj48ZGl2IGNsYXNzPSJDRFhCdXR0b25fX0NEWEJ1dHRvbkNvbnRhaW5lci1zYy02NDBjOTYyMi0wIGVMRW1QSSI+PGEgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmdJbnZlcnNlLWYxc2Rsd2puIF8wLV8xOWluNjA2IF85MDAtXzFpMW5sbXogXzAtX3Npa2d4NiBfNC1fc203cmF1IF8yLV8xdWJ2d2Q5IF8wLV8xZHQ3Z2JwIG1pbldpZHRoLW1xcHFvN2wgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgc2NhbGVkRG93bkNzcy1zMW82YWx4ZCBjZHMtQnV0dG9uIGJhc2VDc3MtYjk5enF1aCBjZHgtYnV0dG9uICIgZGF0YS10ZXN0aWQ9ImZlYXR1cmUtaGlnaGxpZ2h0cy1pdGVtLWN0YXMtMSIgc3R5bGU9Ii0tbWluV2lkdGg6YXV0bzstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MiIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiBkYXRhLXZhcmlhbnQ9InByaW1hcnkiIGhyZWY9Imh0dHBzOi8vam9pbi5iYXNlLmFwcC8iIHRhcmdldD0iX2JsYW5rIiBpZD0iMjJnZVNVNGpSRkdlWmFqdnBVSE1TRyI+PHNwYW4gY2xhc3M9Im1pZGRsZU5vZGVDc3MtbTFhdnBxNTIiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGN1cnJlbnRDb2xvci1jMXVsNjc5cSBoZWFkbGluZS1oMTV1MHdlMCBoZWFkbGluZS1oMWN6MTg0eSBoZWFkbGluZS1oMWF4ZTY4aCBoZWFkbGluZS1oMWQ4eGgzdyBjZW50ZXItY2Z6OTdqOSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0iLS10ZXh0LXRleHRUcmFuc2Zvcm06dmFyKC0tdGV4dFRyYW5zZm9ybS1oZWFkbGluZSkiPjxzcGFuIGNsYXNzPSIiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWJsb2NrLWkxdzhhZm85IGZnSW52ZXJzZS1mMXNkbHdqbiBsMS1mZiBsMS1mcyBsMS1mdyBsMS1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5MZWFybiBtb3JlPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2R4djItc2Vjb25kYXJ5IGxpZ2h0IiBzdHlsZT0iLS1hY3RpdmVDb2xvclNjaGVtZTpsaWdodDstLWxpZ2h0Q29sb3ItYmc6cmdiKDIzOCwyNDAsMjQzKTstLWxpZ2h0Q29sb3ItYmdTZWNvbmRhcnk6cmdiKDI1NSwyNTUsMjU1KTstLWxpZ2h0Q29sb3ItYmdBbHRlcm5hdGU6cmdiKDI1NSwyNTUsMjU1KTstLWRhcmtDb2xvci1iZzpyZ2IoNDAsNDMsNDkpOy0tZGFya0NvbG9yLWJnU2Vjb25kYXJ5OnJnYigxMCwxMSwxMyk7LS1jb2xvci1iZzpyZ2IoMjM4LDI0MCwyNDMpOy0tY29sb3ItYmdTZWNvbmRhcnk6cmdiKDI1NSwyNTUsMjU1KTstLWNvbG9yLWJnQWx0ZXJuYXRlOnJnYigyNTUsMjU1LDI1NSk7ZGlzcGxheTpjb250ZW50cyI+PHNlY3Rpb24gY2xhc3M9IiBmbGV4LWZmNXJmeTYgY2VudGVyLWNjMWJhZncgY29sdW1uLWMxZms2YW9oIGJnLWJwN2dnMzEgd2lkdGgtd3M1MWV1ZiIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIF8zLV8xZDJxZmY1IF80LV8xc3UxZ2k0IF82LV8xeW9mMHg3IGNvbHVtbi1jMWZrNmFvaCBiZy1icDdnZzMxIF8yLV8xZDU2dmszIF8zLV8xZHM2Z2I1IF80LV8xb25mYWl0IF82LV9vdXNwZXkgXzgtXzFtaHFhNzMgXzEwLV9mc29janogd2lkdGgtd3M1MWV1ZiBtYXhXaWR0aC1tYXZ4dDJtIG1heFdpZHRoLW0xMGRrMDdvIiBkYXRhLXRlc3RpZD0iZ2FsbGVyeS1ncmlkIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0tdGFibGV0LW1heFdpZHRoOjEyMjhweDstLWRlc2t0b3AtbWF4V2lkdGg6MTIwMHB4IiBpZD0iZ2FsbGVyeS1ncmlkLXNlY29uZGFyeS1lYWEtcGhhc2UyIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8zLV8xZDJxZmY1IF8yLV8xZDVsdDc5IHNwYWNlLWJldHdlZW4tczE5Z29mbzQgZmxleC1zdGFydC1mYWkydWZhIHJvdy1yMWZqdjJjMCBjb2x1bW4tYzFkY2Q0NTkgd2lkdGgtd3M1MWV1ZiIgZGF0YS10ZXN0aWQ9ImNkeC1zZWN0aW9uLWhlYWRlciIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiB3aWR0aC13czUxZXVmIG1heFdpZHRoLW1scXg2dm4iIHN0eWxlPSItLXdpZHRoOjEwMCU7LS1tYXhXaWR0aDo4MDBweCI+PGRpdiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBkMy1mZiBkMy1mcyBkMy1mcy1tIGQzLWZzLXQgZDMtZnMtZCBkMy1mdyBkMy1saCBkMy1saC1tIGQzLWxoLXQgZDMtbGgtZCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCB3aWR0aC13czUxZXVmIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS10ZXN0aWQ9ImNkeC1zZWN0aW9uLWhlYWRlci10aXRsZSIgc3R5bGU9Ii0td2lkdGg6MTAwJSIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPjxoMiBjbGFzcz0icmljaFRleHRFbGVtZW50c19fSW5oZXJpdGVkRWxlbWVudC1zYy1lNjBhZDg4OS0yIHJpY2hUZXh0RWxlbWVudHNfX1N0eWxlZEgyLXNjLWU2MGFkODg5LTUgZVZtdkNYIGRxUXZoVyI+TmV3IHRvIGNyeXB0bz8gTGVhcm4gc29tZSBjcnlwdG8gYmFzaWNzPC9oMj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGZsZXgtZW5kLWZ0cWZkdGYgZmxleC1zdGFydC1maDNjbmh1IGNvbHVtbi1jMWZrNmFvaCB3aWR0aC13czUxZXVmIG1heFdpZHRoLW1scXg2dm4gbWF4V2lkdGgtbTFvY2piMzIiIHN0eWxlPSItLXdpZHRoOjEwMCU7LS1tYXhXaWR0aDo1MTJweDstLXBob25lLW1heFdpZHRoOm5vbmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgZmxleC1zdGFydC1mYWkydWZhIGNvbHVtbi1jMWZrNmFvaCB3aWR0aC13czUxZXVmIiBzdHlsZT0iLS13aWR0aDoxMDAlIj48ZGl2IGNsYXNzPSIgYmxvY2stYnZtYmZsaiBmZ011dGVkLWZxcmFxcG8gYi1mZiBiLWZzIGItZncgYi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCB3aWR0aC13czUxZXVmIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS10ZXN0aWQ9ImNkeC1zZWN0aW9uLWhlYWRlci1wYXJhZ3JhcGgiIHN0eWxlPSItLXdpZHRoOjEwMCUiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj48cCBjbGFzcz0icmljaFRleHRFbGVtZW50c19fSW5oZXJpdGVkRWxlbWVudC1zYy1lNjBhZDg4OS0yIHJpY2hUZXh0RWxlbWVudHNfX1N0eWxlZFAtc2MtZTYwYWQ4ODktMyBlVm12Q1ggRUZjRVIiPkJlZ2lubmVyIGd1aWRlcywgcHJhY3RpY2FsIHRpcHMsIGFuZCBtYXJrZXQgdXBkYXRlcyBmb3IgZmlyc3QtdGltZXJzLCBleHBlcmllbmNlZCBpbnZlc3RvcnMsIGFuZCBldmVyeW9uZSBpbiBiZXR3ZWVuPC9wPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzItX3MzczN2eCByb3ctcjFmanYyYzAgY29sdW1uLWMxZGNkNDU5IG5vd3JhcC1uMWUwdjIwZyB3aWR0aC13N2Q0NWJnIiBkYXRhLXRlc3RpZD0iY2R4LXNlY3Rpb24taGVhZGVyLWN0YXMiIHN0eWxlPSItLXBob25lLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmxleC1zdGFydC1mMWVnZ2hnayB3aWR0aC13N2Q0NWJnIiBzdHlsZT0iLS1waG9uZS13aWR0aDphdXRvIj48ZGl2IGNsYXNzPSJDRFhCdXR0b25fX0NEWEJ1dHRvbkNvbnRhaW5lci1zYy02NDBjOTYyMi0wIGVMRW1QSSI+PGEgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmdJbnZlcnNlLWYxc2Rsd2puIF8wLV8xOWluNjA2IF85MDAtXzFpMW5sbXogXzAtX3Npa2d4NiBfNC1fc203cmF1IF8yLV8xdWJ2d2Q5IF8wLV8xZHQ3Z2JwIG1pbldpZHRoLW1xcHFvN2wgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgc2NhbGVkRG93bkNzcy1zMW82YWx4ZCBjZHMtQnV0dG9uIGJhc2VDc3MtYjk5enF1aCBjZHgtYnV0dG9uICIgZGF0YS10ZXN0aWQ9ImNkeC1zZWN0aW9uLWhlYWRlci1jdGFzLTEiIHN0eWxlPSItLW1pbldpZHRoOmF1dG87LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODIiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciIgZGF0YS1ibG9jaz0iZmFsc2UiIGRhdGEtdmFyaWFudD0icHJpbWFyeSIgaHJlZj0iL2xlYXJuIiB0YXJnZXQ9Il9ibGFuayIgaWQ9IjRaUnFTQWp3OTkySjc1WUZFbkNreTUiPjxzcGFuIGNsYXNzPSJtaWRkbGVOb2RlQ3NzLW0xYXZwcTUyIj48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBjdXJyZW50Q29sb3ItYzF1bDY3OXEgaGVhZGxpbmUtaDE1dTB3ZTAgaGVhZGxpbmUtaDFjejE4NHkgaGVhZGxpbmUtaDFheGU2OGggaGVhZGxpbmUtaDFkOHhoM3cgY2VudGVyLWNmejk3ajkgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgc3R5bGU9Ii0tdGV4dC10ZXh0VHJhbnNmb3JtOnZhcigtLXRleHRUcmFuc2Zvcm0taGVhZGxpbmUpIj48c3BhbiBjbGFzcz0iIj48c3BhbiBjbGFzcz0iIGlubGluZS1ibG9jay1pMXc4YWZvOSBmZ0ludmVyc2UtZjFzZGx3am4gbDEtZmYgbDEtZnMgbDEtZncgbDEtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+UmVhZCBNb3JlPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZ3JpZC1nb3Z2dnBmIF8yLV9zM3MzdnggQ0RYR2FsbGVyeUdyaWRfX1N0eWxlZEdyaWQtc2MtZDhiOTgzYzgtMCBlTXRKYVEiIGRhdGEtdGVzdGlkPSJnYWxsZXJ5LWdyaWQtaW5uZXItZ3JpZCIgc3R5bGU9Ii0tbWF4LWNvbHVtbi1jb3VudDozOy0taXRlbS1taW4td2lkdGg6MjYwcHgiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBfMy1fMWQycWZmNSBfMi1fMWQ1bHQ3OSBmbGV4LXN0YXJ0LWZhaTJ1ZmEgZmxleC1zdGFydC1maDNjbmh1IGNvbHVtbi1jMWZrNmFvaCBjb2x1bW4tYzFkY2Q0NTkgdHJhbnNwYXJlbnQtdDFybWs2dWkgXzAtXzk4YjF3NiBfMi1fdTN0eWFmIF8zLV9sdzcydGcgXzQtXzEwYjIzODMgd2lkdGgtd3M1MWV1ZiBtaW5XaWR0aC1tcXBxbzdsIG1pbkhlaWdodC1tNHNrY3QxIENEWENhcmRBcnRpY2xlX19BcnRpY2xlQ2FyZENvbnRhaW5lci1zYy0xYzViNzM2NC0wIGtqU2xnZiIgZGF0YS10ZXN0aWQ9ImNhcmQtYXJ0aWNsZSIgc3R5bGU9Ii0td2lkdGg6MTAwJTstLW1pbldpZHRoOjI2MHB4Oy0tbWluSGVpZ2h0OjMyMHB4IiBpZD0iNjAzT2daM3VyRWJhUTY3YllLM0tYRyI+PGEgYXJpYS1sYWJlbD0iVVNEQzogVGhlIGRpZ2l0YWwgZG9sbGFyIGZvciB0aGUgZ2xvYmFsIGNyeXB0byBlY29ub215IiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBhYnNvbHV0ZS1hNXF3YmhrIHpJbmRleC16MXExeGszYiBjZW50ZXItY2pwdWpjZCBjZW50ZXItY2MxYmFmdyBiZ1ByaW1hcnktYjFhbGp1b2wgXzAtXzE5aW42MDYgXzEwMC1fMzd5em0zIF8wLV9zaWtneDYgdG9wLXRkZzdqaWogYm90dG9tLWIxYmU4NmFiIGxlZnQtbG03OGp5bSByaWdodC1yNmM1MXVzIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIGhvdmVyYWJsZS1vdmVybGF5IiBkYXRhLXRlc3RpZD0iY2FyZC1hcnRpY2xlLWxpbmstb3ZlcmxheSIgc3R5bGU9Ii0tekluZGV4OjE7LS10b3A6MDstLWJvdHRvbTowOy0tbGVmdDowOy0tcmlnaHQ6MDstLWludGVyLWJnOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MiIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiBocmVmPSIvdXNkYyIgdGFyZ2V0PSJfYmxhbmsiPjwvYT48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmxleC1lbmQtZmF4NzhzcSBiZ0xpbmUtYjFrbGs2aCBfMTAwLV94NDRnczQgXzUwMC1fbWlsYncyIF81MDAtXzEyNmRvZHIgXzYwMC1fMWlrcW43cCBfNzAwLV8xeW95eW5yIHdpZHRoLXdzNTFldWYgd2lkdGgtdzdkNDViZyBmbGV4U2hyaW5rLWYxNzRodTIyIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0tcGhvbmUtd2lkdGg6MTAwJTstLWZsZXhTaHJpbms6MCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBiZ0FsdGVybmF0ZS1idHh2dGdzIF81MDAtX21pbGJ3MiBfNTAwLV8xMjZkb2RyIF82MDAtXzFpa3FuN3AgXzcwMC1fMXlveXluciBhc3BlY3RSYXRpby1hODRzYndmIENEWEltYWdlX19JbWFnZUNvbnRhaW5lci1zYy00YTRkZDE1ZS0wIGlWTnd4YSIgZGF0YS10ZXN0aWQ9ImltYWdlLWNvbnRhaW5lciIgc3R5bGU9Ii0tYXNwZWN0UmF0aW86MTYvOTstLW9iamVjdC1maXQtYmFzZTpjb3ZlcjstLW9iamVjdC1maXQtcGhvbmU6Y292ZXI7LS1vYmplY3QtZml0LXRhYmxldDpjb3ZlcjstLW9iamVjdC1maXQtZGVza3RvcDpjb3ZlciI+PHBpY3R1cmUgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlIiBjbGFzcz0iQ0RYSW1hZ2VfX1N0eWxlZFBpY3R1cmUtc2MtNGE0ZGQxNWUtMSBpU1FUTmgiPjxzb3VyY2UgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLXNvdXJjZS1hdmlmLWJhc2UiIHNyY1NldD0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvMnRJMEQ3Y1gzMGdYdWRnZ3pRYzN0ci9iNjE4MTEwNzUzM2Y5OGY5ZGNjNjRkYTk2ZWZhY2ZmOC8wXzRtVnlWYVU2eUxhLS1HUl8/Zm09YXZpZiZhbXA7dz0xNDAwJmFtcDtoPTgwMiZhbXA7cT02NSIgdHlwZT0iaW1hZ2UvYXZpZiIgd2lkdGg9IjE0MDAiIGhlaWdodD0iODAyIi8+PHNvdXJjZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2Utc291cmNlLXdlYnAtYmFzZSIgc3JjU2V0PSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS8ydEkwRDdjWDMwZ1h1ZGdnelFjM3RyL2I2MTgxMTA3NTMzZjk4ZjlkY2M2NGRhOTZlZmFjZmY4LzBfNG1WeVZhVTZ5TGEtLUdSXz9mbT13ZWJwJmFtcDt3PTE0MDAmYW1wO2g9ODAyJmFtcDtxPTc1IiB0eXBlPSJpbWFnZS93ZWJwIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSI4MDIiLz48aW1nIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1pbWciIHNyYz0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvMnRJMEQ3Y1gzMGdYdWRnZ3pRYzN0ci9iNjE4MTEwNzUzM2Y5OGY5ZGNjNjRkYTk2ZWZhY2ZmOC8wXzRtVnlWYVU2eUxhLS1HUl8iIGFsdD0iYmx1ZSBjaXJjbGUgd2l0aCBtb25leSBzeW1ib2wgaW4gcGFyZW50aGVzaXMiIGxvYWRpbmc9ImxhenkiIGhlaWdodD0iODAyIiB3aWR0aD0iMTQwMCIgY2xhc3M9IkNEWEltYWdlX19TdHlsZWRJbWFnZS1zYy00YTRkZDE1ZS0yIGhkTXBXbCIvPjwvcGljdHVyZT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8zLV8xZDJxZmY1IF8yLV8xZDVsdDc5IHNwYWNlLWJldHdlZW4tczE5Z29mbzQgc3BhY2UtYmV0d2Vlbi1zeGV5N2oxIGNvbHVtbi1jMWZrNmFvaCB3aWR0aC13czUxZXVmIGhlaWdodC1obGx0bWdrIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLXdpZHRoOjEwMCU7LS1oZWlnaHQ6MTAwJTstLWZsZXhHcm93OjEiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgY29sdW1uLWMxZms2YW9oIj48ZGl2IGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IHQ0LWZmIHQ0LWZzIHQ0LWZzLW0gdDQtZnMtdCB0NC1mcy1kIHQ0LWZ3IHQ0LWxoIHQ0LWxoLW0gdDQtbGgtdCB0NC1saC1kIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBudW1iZXJPZkxpbmVzQ3NzLW4xM25obnVxIiBkYXRhLXRlc3RpZD0iY2FyZC1hcnRpY2xlLXRpdGxlIiBzdHlsZT0iLS10ZXh0LW51bWJlck9mTGluZXM6MyIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPjxoMyBjbGFzcz0icmljaFRleHRFbGVtZW50c19fSW5oZXJpdGVkRWxlbWVudC1zYy1lNjBhZDg4OS0yIHJpY2hUZXh0RWxlbWVudHNfX1N0eWxlZEgzLXNjLWU2MGFkODg5LTYgZVZtdkNYIGJFS1dwSSI+VVNEQzogVGhlIGRpZ2l0YWwgZG9sbGFyIGZvciB0aGUgZ2xvYmFsIGNyeXB0byBlY29ub215PC9oMz48L2Rpdj48ZGl2IGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnTXV0ZWQtZnFyYXFwbyBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBudW1iZXJPZkxpbmVzQ3NzLW4xM25obnVxIiBkYXRhLXRlc3RpZD0iY2FyZC1hcnRpY2xlLXBhcmFncmFwaCIgc3R5bGU9Ii0tdGV4dC1udW1iZXJPZkxpbmVzOjMiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj48cCBjbGFzcz0icmljaFRleHRFbGVtZW50c19fSW5oZXJpdGVkRWxlbWVudC1zYy1lNjBhZDg4OS0yIHJpY2hUZXh0RWxlbWVudHNfX1N0eWxlZFAtc2MtZTYwYWQ4ODktMyBlVm12Q1ggRUZjRVIiPkNvaW5iYXNlIGJlbGlldmVzIGNyeXB0byB3aWxsIGJlIHBhcnQgb2YgdGhlIHNvbHV0aW9uIGZvciBjcmVhdGluZyBhbiBvcGVuIGZpbmFuY2lhbCBzeXN0ZW0gdGhhdCBpcyBib3RoIG1vcmUgZWZmaWNpZW50IGFuZCBtb3JlIGVxdWl0YWJsZS4gV2UgY28tZm91bmRlZCB0aGUgQ2VudHJlIENvbnNvcnRpdW0gaW4gMjAxOCB0byBpbnZlc3QgaW4gdGhlIGJ1aWxkIG9mIFVTREMsIGFuZCBzaW5jZSB0aGVuIGl0IGhhcyBiZWNvbWUgdGhlIHNlY29uZCBsYXJnZXN0IHN0YWJsZWNvaW4gYnkgbWFya2V0IGNhcGl0YWxpemF0aW9uLjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgZmxleC1zdGFydC1mYWkydWZhIGZsZXgtc3RhcnQtZmgzY25odSBjb2x1bW4tYzFmazZhb2ggY29sdW1uLWMxZGNkNDU5IHRyYW5zcGFyZW50LXQxcm1rNnVpIF8wLV85OGIxdzYgXzItX3UzdHlhZiBfMy1fbHc3MnRnIF80LV8xMGIyMzgzIHdpZHRoLXdzNTFldWYgbWluV2lkdGgtbXFwcW83bCBtaW5IZWlnaHQtbTRza2N0MSBDRFhDYXJkQXJ0aWNsZV9fQXJ0aWNsZUNhcmRDb250YWluZXItc2MtMWM1YjczNjQtMCBralNsZ2YiIGRhdGEtdGVzdGlkPSJjYXJkLWFydGljbGUiIHN0eWxlPSItLXdpZHRoOjEwMCU7LS1taW5XaWR0aDoyNjBweDstLW1pbkhlaWdodDozMjBweCIgaWQ9IjZpendabVhzY0tDeXRpWHFYaG1JTzYiPjxhIGFyaWEtbGFiZWw9IkNhbiBjcnlwdG8gcmVhbGx5IHJlcGxhY2UgeW91ciBiYW5rIGFjY291bnQ/IiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBhYnNvbHV0ZS1hNXF3YmhrIHpJbmRleC16MXExeGszYiBjZW50ZXItY2pwdWpjZCBjZW50ZXItY2MxYmFmdyBiZ1ByaW1hcnktYjFhbGp1b2wgXzAtXzE5aW42MDYgXzEwMC1fMzd5em0zIF8wLV9zaWtneDYgdG9wLXRkZzdqaWogYm90dG9tLWIxYmU4NmFiIGxlZnQtbG03OGp5bSByaWdodC1yNmM1MXVzIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIGhvdmVyYWJsZS1vdmVybGF5IiBkYXRhLXRlc3RpZD0iY2FyZC1hcnRpY2xlLWxpbmstb3ZlcmxheSIgc3R5bGU9Ii0tekluZGV4OjE7LS10b3A6MDstLWJvdHRvbTowOy0tbGVmdDowOy0tcmlnaHQ6MDstLWludGVyLWJnOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MiIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiBocmVmPSIvbGVhcm4vY3J5cHRvLWJhc2ljcy9jYW4tY3J5cHRvLXJlYWxseS1yZXBsYWNlLXlvdXItYmFuayIgdGFyZ2V0PSJfYmxhbmsiPjwvYT48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmxleC1lbmQtZmF4NzhzcSBiZ0xpbmUtYjFrbGs2aCBfMTAwLV94NDRnczQgXzUwMC1fbWlsYncyIF81MDAtXzEyNmRvZHIgXzYwMC1fMWlrcW43cCBfNzAwLV8xeW95eW5yIHdpZHRoLXdzNTFldWYgd2lkdGgtdzdkNDViZyBmbGV4U2hyaW5rLWYxNzRodTIyIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0tcGhvbmUtd2lkdGg6MTAwJTstLWZsZXhTaHJpbms6MCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBiZ0FsdGVybmF0ZS1idHh2dGdzIF81MDAtX21pbGJ3MiBfNTAwLV8xMjZkb2RyIF82MDAtXzFpa3FuN3AgXzcwMC1fMXlveXluciBhc3BlY3RSYXRpby1hODRzYndmIENEWEltYWdlX19JbWFnZUNvbnRhaW5lci1zYy00YTRkZDE1ZS0wIGlWTnd4YSIgZGF0YS10ZXN0aWQ9ImltYWdlLWNvbnRhaW5lciIgc3R5bGU9Ii0tYXNwZWN0UmF0aW86MTYvOTstLW9iamVjdC1maXQtYmFzZTpjb3ZlcjstLW9iamVjdC1maXQtcGhvbmU6Y292ZXI7LS1vYmplY3QtZml0LXRhYmxldDpjb3ZlcjstLW9iamVjdC1maXQtZGVza3RvcDpjb3ZlciI+PHBpY3R1cmUgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlIiBjbGFzcz0iQ0RYSW1hZ2VfX1N0eWxlZFBpY3R1cmUtc2MtNGE0ZGQxNWUtMSBpU1FUTmgiPjxzb3VyY2UgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLXNvdXJjZS1hdmlmLWJhc2UiIHNyY1NldD0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvMmhxdHlRenRydnJCS3ZJaXpQWnhhSi80MmFkNDg3MTEwNjdjN2QwZWE0NTQ3NjMzMWMyMDc5OC9SZXBsYWNlX0JhbmsucG5nP2ZtPWF2aWYmYW1wO3c9MTQ0MCZhbXA7aD0xNDQwJmFtcDtxPTY1IiB0eXBlPSJpbWFnZS9hdmlmIiB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSIxNDQwIi8+PHNvdXJjZSBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2Utc291cmNlLXdlYnAtYmFzZSIgc3JjU2V0PSJodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L28xMGVzN3d1NWdtMS8yaHF0eVF6dHJ2ckJLdklpelBaeGFKLzQyYWQ0ODcxMTA2N2M3ZDBlYTQ1NDc2MzMxYzIwNzk4L1JlcGxhY2VfQmFuay5wbmc/Zm09d2VicCZhbXA7dz0xNDQwJmFtcDtoPTE0NDAmYW1wO3E9NzUiIHR5cGU9ImltYWdlL3dlYnAiIHdpZHRoPSIxNDQwIiBoZWlnaHQ9IjE0NDAiLz48aW1nIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1pbWciIHNyYz0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvMmhxdHlRenRydnJCS3ZJaXpQWnhhSi80MmFkNDg3MTEwNjdjN2QwZWE0NTQ3NjMzMWMyMDc5OC9SZXBsYWNlX0JhbmsucG5nIiBhbHQ9IlBob25lIHdpdGggYSBiYW5rIHNob3dpbmcgaW4gdGhlIGJhY2tncm91bmQiIGxvYWRpbmc9ImxhenkiIGhlaWdodD0iMTQ0MCIgd2lkdGg9IjE0NDAiIGNsYXNzPSJDRFhJbWFnZV9fU3R5bGVkSW1hZ2Utc2MtNGE0ZGQxNWUtMiBoZE1wV2wiLz48L3BpY3R1cmU+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMy1fMWQycWZmNSBfMi1fMWQ1bHQ3OSBzcGFjZS1iZXR3ZWVuLXMxOWdvZm80IHNwYWNlLWJldHdlZW4tc3hleTdqMSBjb2x1bW4tYzFmazZhb2ggd2lkdGgtd3M1MWV1ZiBoZWlnaHQtaGxsdG1nayBmbGV4R3Jvdy1mYXY5aHlsIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0taGVpZ2h0OjEwMCU7LS1mbGV4R3JvdzoxIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8zLV8xZDJxZmY1IF8yLV8xZDVsdDc5IGNvbHVtbi1jMWZrNmFvaCI+PGRpdiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCB0NC1mZiB0NC1mcyB0NC1mcy1tIHQ0LWZzLXQgdDQtZnMtZCB0NC1mdyB0NC1saCB0NC1saC1tIHQ0LWxoLXQgdDQtbGgtZCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIgbnVtYmVyT2ZMaW5lc0Nzcy1uMTNuaG51cSIgZGF0YS10ZXN0aWQ9ImNhcmQtYXJ0aWNsZS10aXRsZSIgc3R5bGU9Ii0tdGV4dC1udW1iZXJPZkxpbmVzOjMiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj48aDMgY2xhc3M9InJpY2hUZXh0RWxlbWVudHNfX0luaGVyaXRlZEVsZW1lbnQtc2MtZTYwYWQ4ODktMiByaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRIMy1zYy1lNjBhZDg4OS02IGVWbXZDWCBiRUtXcEkiPkNhbiBjcnlwdG8gcmVhbGx5IHJlcGxhY2UgeW91ciBiYW5rIGFjY291bnQ/PC9oMz48L2Rpdj48ZGl2IGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnTXV0ZWQtZnFyYXFwbyBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBudW1iZXJPZkxpbmVzQ3NzLW4xM25obnVxIiBkYXRhLXRlc3RpZD0iY2FyZC1hcnRpY2xlLXBhcmFncmFwaCIgc3R5bGU9Ii0tdGV4dC1udW1iZXJPZkxpbmVzOjMiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj48cCBjbGFzcz0icmljaFRleHRFbGVtZW50c19fSW5oZXJpdGVkRWxlbWVudC1zYy1lNjBhZDg4OS0yIHJpY2hUZXh0RWxlbWVudHNfX1N0eWxlZFAtc2MtZTYwYWQ4ODktMyBlVm12Q1ggRUZjRVIiPklmIHlvdeKAmXJlIGEgYmlnIGVub3VnaCBmYW4gb2YgY3J5cHRvLCB5b3XigJl2ZSBwcm9iYWJseSBoZWFyZCB0aGUgcGhyYXNlIOKAnGJlIHlvdXIgb3duIGJhbmvigJ0gb3IgdGhlIHRlcm0g4oCcYmFua2xlc3PigJ0g4oCUIHRoZSBpZGVhIGJlaW5nIHRoYXQgY3J5cHRvIGNhbiBvZmZlciBtb3JlIGNvbnRyb2wgb3ZlciB5b3VyIGZpbmFuY2lhbCBmdXR1cmUgdGhhbiB0cmFkaXRpb25hbCBmaW5hbmNlLiBCdXQgaG93IG11Y2ggb2YgeW91ciBmaW5hbmNpYWwgbGlmZSByZWFsbHkgY2FuIGJlIGFjY29tcGxpc2hlZCB2aWEgY3J5cHRvPzwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgZmxleC1zdGFydC1mYWkydWZhIGZsZXgtc3RhcnQtZmgzY25odSBjb2x1bW4tYzFmazZhb2ggY29sdW1uLWMxZGNkNDU5IHRyYW5zcGFyZW50LXQxcm1rNnVpIF8wLV85OGIxdzYgXzItX3UzdHlhZiBfMy1fbHc3MnRnIF80LV8xMGIyMzgzIHdpZHRoLXdzNTFldWYgbWluV2lkdGgtbXFwcW83bCBtaW5IZWlnaHQtbTRza2N0MSBDRFhDYXJkQXJ0aWNsZV9fQXJ0aWNsZUNhcmRDb250YWluZXItc2MtMWM1YjczNjQtMCBralNsZ2YiIGRhdGEtdGVzdGlkPSJjYXJkLWFydGljbGUiIHN0eWxlPSItLXdpZHRoOjEwMCU7LS1taW5XaWR0aDoyNjBweDstLW1pbkhlaWdodDozMjBweCIgaWQ9IjJVdzQzNzBYUzFwTzM0cWRLcW1EUjkiPjxhIGFyaWEtbGFiZWw9IldoZW4gaXMgdGhlIGJlc3QgdGltZSB0byBpbnZlc3QgaW4gY3J5cHRvPyIgY2xhc3M9IiBmbGV4LWZmNXJmeTYgYWJzb2x1dGUtYTVxd2JoayB6SW5kZXgtejFxMXhrM2IgY2VudGVyLWNqcHVqY2QgY2VudGVyLWNjMWJhZncgYmdQcmltYXJ5LWIxYWxqdW9sIF8wLV8xOWluNjA2IF8xMDAtXzM3eXptMyBfMC1fc2lrZ3g2IHRvcC10ZGc3amlqIGJvdHRvbS1iMWJlODZhYiBsZWZ0LWxtNzhqeW0gcmlnaHQtcjZjNTF1cyBjZHMtSW50ZXJhY3RhYmxlIGJhc2VDc3MtYjE3d21rOGYgYmFzZUNzcy1iMW5ybW9kcCBob3ZlcmFibGUtb3ZlcmxheSIgZGF0YS10ZXN0aWQ9ImNhcmQtYXJ0aWNsZS1saW5rLW92ZXJsYXkiIHN0eWxlPSItLXpJbmRleDoxOy0tdG9wOjA7LS1ib3R0b206MDstLWxlZnQ6MDstLXJpZ2h0OjA7LS1pbnRlci1iZzp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1pbnRlci1ib3JkZXJDb2xvcjp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODIiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciIgaHJlZj0iL2xlYXJuL3RpcHMtYW5kLXR1dG9yaWFscy9kb2xsYXItY29zdC1hdmVyYWdpbmciIHRhcmdldD0iX2JsYW5rIj48L2E+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZsZXgtZW5kLWZheDc4c3EgYmdMaW5lLWIxa2xrNmggXzEwMC1feDQ0Z3M0IF81MDAtX21pbGJ3MiBfNTAwLV8xMjZkb2RyIF82MDAtXzFpa3FuN3AgXzcwMC1fMXlveXluciB3aWR0aC13czUxZXVmIHdpZHRoLXc3ZDQ1YmcgZmxleFNocmluay1mMTc0aHUyMiIgc3R5bGU9Ii0td2lkdGg6MTAwJTstLXBob25lLXdpZHRoOjEwMCU7LS1mbGV4U2hyaW5rOjAiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgYmdBbHRlcm5hdGUtYnR4dnRncyBfNTAwLV9taWxidzIgXzUwMC1fMTI2ZG9kciBfNjAwLV8xaWtxbjdwIF83MDAtXzF5b3l5bnIgYXNwZWN0UmF0aW8tYTg0c2J3ZiBDRFhJbWFnZV9fSW1hZ2VDb250YWluZXItc2MtNGE0ZGQxNWUtMCBpVk53eGEiIGRhdGEtdGVzdGlkPSJpbWFnZS1jb250YWluZXIiIHN0eWxlPSItLWFzcGVjdFJhdGlvOjE2Lzk7LS1vYmplY3QtZml0LWJhc2U6Y292ZXI7LS1vYmplY3QtZml0LXBob25lOmNvdmVyOy0tb2JqZWN0LWZpdC10YWJsZXQ6Y292ZXI7LS1vYmplY3QtZml0LWRlc2t0b3A6Y292ZXIiPjxwaWN0dXJlIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZSIgY2xhc3M9IkNEWEltYWdlX19TdHlsZWRQaWN0dXJlLXNjLTRhNGRkMTVlLTEgaVNRVE5oIj48c291cmNlIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1zb3VyY2UtYXZpZi1iYXNlIiBzcmNTZXQ9Imh0dHBzOi8vaW1hZ2VzLmN0ZmFzc2V0cy5uZXQvbzEwZXM3d3U1Z20xLzVtdWZqS01IODRJRGViOEEwRUdydEgvMDQzOGVlYWU4MjdmZmVmNDA0YjkzNTQwN2FlN2Q3ODAvTGVhcm5fSWxsdXN0cmF0aW9uX1VsdGltYXRlX0d1aWRlX0JpdGNvaW4ucG5nP2ZtPWF2aWYmYW1wO3c9NzY4JmFtcDtoPTQzOSZhbXA7cT02NSIgdHlwZT0iaW1hZ2UvYXZpZiIgd2lkdGg9Ijc2OCIgaGVpZ2h0PSI0MzkiLz48c291cmNlIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1zb3VyY2Utd2VicC1iYXNlIiBzcmNTZXQ9Imh0dHBzOi8vaW1hZ2VzLmN0ZmFzc2V0cy5uZXQvbzEwZXM3d3U1Z20xLzVtdWZqS01IODRJRGViOEEwRUdydEgvMDQzOGVlYWU4MjdmZmVmNDA0YjkzNTQwN2FlN2Q3ODAvTGVhcm5fSWxsdXN0cmF0aW9uX1VsdGltYXRlX0d1aWRlX0JpdGNvaW4ucG5nP2ZtPXdlYnAmYW1wO3c9NzY4JmFtcDtoPTQzOSZhbXA7cT03NSIgdHlwZT0iaW1hZ2Uvd2VicCIgd2lkdGg9Ijc2OCIgaGVpZ2h0PSI0MzkiLz48aW1nIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1pbWciIHNyYz0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvNW11ZmpLTUg4NElEZWI4QTBFR3J0SC8wNDM4ZWVhZTgyN2ZmZWY0MDRiOTM1NDA3YWU3ZDc4MC9MZWFybl9JbGx1c3RyYXRpb25fVWx0aW1hdGVfR3VpZGVfQml0Y29pbi5wbmciIGFsdD0iSGFuZCBob2xkaW5nIGJpdGNvaW4gIiBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjQzOSIgd2lkdGg9Ijc2OCIgY2xhc3M9IkNEWEltYWdlX19TdHlsZWRJbWFnZS1zYy00YTRkZDE1ZS0yIGhkTXBXbCIvPjwvcGljdHVyZT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8zLV8xZDJxZmY1IF8yLV8xZDVsdDc5IHNwYWNlLWJldHdlZW4tczE5Z29mbzQgc3BhY2UtYmV0d2Vlbi1zeGV5N2oxIGNvbHVtbi1jMWZrNmFvaCB3aWR0aC13czUxZXVmIGhlaWdodC1obGx0bWdrIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLXdpZHRoOjEwMCU7LS1oZWlnaHQ6MTAwJTstLWZsZXhHcm93OjEiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgY29sdW1uLWMxZms2YW9oIj48ZGl2IGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IHQ0LWZmIHQ0LWZzIHQ0LWZzLW0gdDQtZnMtdCB0NC1mcy1kIHQ0LWZ3IHQ0LWxoIHQ0LWxoLW0gdDQtbGgtdCB0NC1saC1kIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBudW1iZXJPZkxpbmVzQ3NzLW4xM25obnVxIiBkYXRhLXRlc3RpZD0iY2FyZC1hcnRpY2xlLXRpdGxlIiBzdHlsZT0iLS10ZXh0LW51bWJlck9mTGluZXM6MyIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPjxoMyBjbGFzcz0icmljaFRleHRFbGVtZW50c19fSW5oZXJpdGVkRWxlbWVudC1zYy1lNjBhZDg4OS0yIHJpY2hUZXh0RWxlbWVudHNfX1N0eWxlZEgzLXNjLWU2MGFkODg5LTYgZVZtdkNYIGJFS1dwSSI+V2hlbiBpcyB0aGUgYmVzdCB0aW1lIHRvIGludmVzdCBpbiBjcnlwdG8/PC9oMz48L2Rpdj48ZGl2IGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnTXV0ZWQtZnFyYXFwbyBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiBudW1iZXJPZkxpbmVzQ3NzLW4xM25obnVxIiBkYXRhLXRlc3RpZD0iY2FyZC1hcnRpY2xlLXBhcmFncmFwaCIgc3R5bGU9Ii0tdGV4dC1udW1iZXJPZkxpbmVzOjMiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj48cCBjbGFzcz0icmljaFRleHRFbGVtZW50c19fSW5oZXJpdGVkRWxlbWVudC1zYy1lNjBhZDg4OS0yIHJpY2hUZXh0RWxlbWVudHNfX1N0eWxlZFAtc2MtZTYwYWQ4ODktMyBlVm12Q1ggRUZjRVIiPkNyeXB0b2N1cnJlbmNpZXMgbGlrZSBCaXRjb2luIGNhbiBleHBlcmllbmNlIGRhaWx5IChvciBldmVuIGhvdXJseSkgcHJpY2Ugdm9sYXRpbGl0eS4gQXMgd2l0aCBhbnkga2luZCBvZiBpbnZlc3RtZW50LCB2b2xhdGlsaXR5IG1heSBjYXVzZSB1bmNlcnRhaW50eSwgZmVhciBvZiBtaXNzaW5nIG91dCwgb3IgZmVhciBvZiBwYXJ0aWNpcGF0aW5nIGF0IGFsbC4gV2hlbiBwcmljZXMgYXJlIGZsdWN0dWF0aW5nLCBob3cgZG8geW91IGtub3cgd2hlbiB0byBidXk/PC9wPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj48L2Rpdj48ZGl2IGNsYXNzPSJDRFhTZWN0aW9uQ29udGFpbmVyX19EaXZEaXNwbGF5Q29udGVudHMtc2MtOGE0ZjM1N2UtMCBDdmNCUyI+PHNlY3Rpb24gY2xhc3M9IiBmbGV4LWZmNXJmeTYgY2VudGVyLWNjMWJhZncgY29sdW1uLWMxZms2YW9oIGJnLWJwN2dnMzEgd2lkdGgtd3M1MWV1ZiIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIF8zLV8xZDJxZmY1IF80LV8xc3UxZ2k0IF82LV8xeW9mMHg3IGNvbHVtbi1jMWZrNmFvaCBiZy1icDdnZzMxIF8yLV8xZDU2dmszIF8zLV8xZHM2Z2I1IF80LV8xb25mYWl0IF80LV9ldnZ6b2ogXzUtXzFtaWFqbHYgXzgtXzFsbzF2NnMgd2lkdGgtd3M1MWV1ZiBtYXhXaWR0aC1tYXZ4dDJtIG1heFdpZHRoLW0xMGRrMDdvIiBkYXRhLXRlc3RpZD0iY2R4LXNlY3Rpb24tY29udGFpbmVyIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0tdGFibGV0LW1heFdpZHRoOjEyMjhweDstLWRlc2t0b3AtbWF4V2lkdGg6MTYwMHB4Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8zLV8xZDJxZmY1IF80LV8xc3UxZ2k0IF82LV8xeW9mMHg3IGNvbHVtbi1jMWZrNmFvaCByb3ctcjFjcGJ1eDYgbWF4SGVpZ2h0LW1vbG52aSIgc3R5bGU9Ii0tZGVza3RvcC1tYXhIZWlnaHQ6NzV2aCI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMy1fMWQycWZmNSBfMi1fMWQ1bHQ3OSBjZW50ZXItY2pwdWpjZCBjb2x1bW4tYzFmazZhb2ggZmxleEJhc2lzLWY5NWJrcG8gZmxleEJhc2lzLWYyOXQwbnMiIHN0eWxlPSItLWZsZXhCYXNpczoxMDAlOy0tZGVza3RvcC1mbGV4QmFzaXM6NTAlIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8zLV8xZDJxZmY1IF8yLV8xZDVsdDc5IGZsZXgtc3RhcnQtZmFpMnVmYSBjb2x1bW4tYzFmazZhb2giPjxkaXYgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgZDItZmYgZDItZnMgZDItZnMtbSBkMi1mcy10IGQyLWZzLWQgZDItZncgZDItbGggZDItbGgtbSBkMi1saC10IGQyLWxoLWQgc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+PGgyIGNsYXNzPSJyaWNoVGV4dEVsZW1lbnRzX19Jbmhlcml0ZWRFbGVtZW50LXNjLWU2MGFkODg5LTIgcmljaFRleHRFbGVtZW50c19fU3R5bGVkSDItc2MtZTYwYWQ4ODktNSBlVm12Q1ggZHFRdmhXIj5UYWtlIGNvbnRyb2wgb2YgeW91ciBtb25leTwvaDI+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMy1fMWQycWZmNSBfMi1fMWQ1bHQ3OSBmbGV4LXN0YXJ0LWZhaTJ1ZmEgY29sdW1uLWMxZms2YW9oIHdpZHRoLXdzNTFldWYgbWF4V2lkdGgtbWxxeDZ2biIgc3R5bGU9Ii0td2lkdGg6MTAwJTstLW1heFdpZHRoOjkwMHB4Ij48ZGl2IGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGItZmYgYi1mcyBiLWZ3IGItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+PHAgY2xhc3M9InJpY2hUZXh0RWxlbWVudHNfX0luaGVyaXRlZEVsZW1lbnQtc2MtZTYwYWQ4ODktMiByaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRQLXNjLWU2MGFkODg5LTMgZVZtdkNYIEVGY0VSIj5TdGFydCB5b3VyIHBvcnRmb2xpbyB0b2RheSBhbmQgZGlzY292ZXIgY3J5cHRvPC9wPjwvZGl2Pjxmb3JtIG5vVmFsaWRhdGU9IiIgc3R5bGU9IndpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzItX3MzczN2eCBmbGV4LXN0YXJ0LWYxZWdnaGdrIGNvbHVtbi1jMWRjZDQ1OSByb3ctcjF5cTV0bTYgcm93LXIxY3BidXg2IHdpZHRoLXdzNTFldWYiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgd2lkdGgtd3M1MWV1ZiBtYXhXaWR0aC1tMW9jamIzMiBtYXhXaWR0aC1tYXZ4dDJtIG1heFdpZHRoLW0xMGRrMDdvIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0tcGhvbmUtbWF4V2lkdGg6MTAwJTstLXRhYmxldC1tYXhXaWR0aDo0MDBweDstLWRlc2t0b3AtbWF4V2lkdGg6NDAwcHgiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzIwMC1fdHY3ZXRhIHdpZHRoLXdzNTFldWYgQ0RYVGV4dElucHV0X19JbnB1dENvbnRhaW5lci1zYy1kZTI2NjA5LTAganJvbnhVIiBzdHlsZT0iLS13aWR0aDoxMDAlIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8wXzUtXzFmeDdtMG8gY29sdW1uLWMxZms2YW9oIHdpZHRoLXdzNTFldWYgb3BhY2l0eS1vMXhuZXNoYSIgZGF0YS10ZXN0aWQ9IiIgc3R5bGU9Ii0td2lkdGg6MTAwJTstLW9wYWNpdHk6MSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByb3ctcjFmanYyYzAiPjxkaXYgY2xhc3M9ImlucHV0QXJlYUNvbnRhaW5lckNzcy1pcG9mZXg2Ij48c3BhbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMTAwLV94NDRnczQgXzIwMC1fdHY3ZXRhIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxNnp3NGE1IiBkYXRhLXRlc3RpZD0iaW5wdXQtaW50ZXJhY3RhYmxlLWFyZWEiIHN0eWxlPSItLWludGVyLWJnOnZhcigtLWNvbG9yLWJnKTstLWludGVyLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yLWJnKTstLWludGVyLWhvdmVyLWJnOnJnYigyNDcsIDI0NywgMjQ3KTstLWludGVyLWhvdmVyLWJvcmRlckNvbG9yOnJnYigyNDcsIDI0NywgMjQ3KTstLWludGVyLWhvdmVyLW9wYWNpdHk6MC44ODstLWludGVyLXByZXNzLWJnOnJnYigyNDQsIDI0NCwgMjQ0KTstLWludGVyLXByZXNzLWJvcmRlckNvbG9yOnJnYigyNDQsIDI0NCwgMjQ0KTstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MjstLWludGVyLWRpc2FibGUtYmc6cmdiKDI1NSwgMjU1LCAyNTUpOy0taW50ZXItZGlzYWJsZS1ib3JkZXJDb2xvcjpyZ2IoMjU1LCAyNTUsIDI1NSk7LS1ib3JkZXItY29sb3ItdW5mb2N1c2VkOnZhcigtLWNvbG9yLWJnTGluZUhlYXZ5KTstLWJvcmRlci1jb2xvci1mb2N1c2VkOnZhcigtLWNvbG9yLWJnUHJpbWFyeSk7LS1ib3JkZXItd2lkdGgtZm9jdXNlZDp2YXIoLS1ib3JkZXJXaWR0aC0xMDApIiBkYXRhLWRpc2FibGVkPSJmYWxzZSI+PGlucHV0IGFyaWEtbGFiZWw9IkVtYWlsIGFkZHJlc3MiIGNsYXNzPSIgZmxleC1mZjVyZnk2IGJvZHktYjE0YThlZ2QgYm9keS1iMTJpcHM5ayBib2R5LWIxbXFjZzVyIGJvZHktYjFiNjFxM3kgYmFzZUNzcy1iZ2JhOHh0IG5hdGl2ZUlucHV0Q29udGFpbmVyQ3NzLW52ZmsyNCIgZGF0YS10ZXN0aWQ9ImVtYWlsLWZvcm0taW5wdXQiIHN0eWxlPSJ0ZXh0LWFsaWduOnN0YXJ0O2NvbG9yLXNjaGVtZTpsaWdodDtjYXJldC1jb2xvcjp2YXIoLS1jb2xvci1mZ011dGVkKSIgdGFiaW5kZXg9IjAiIGFyaWEtaW52YWxpZD0iZmFsc2UiIGRhdGEtY29tcGFjdD0iZmFsc2UiIGRhdGEtbGFiZWx2YXJpYW50PSJvdXRzaWRlIiBkYXRhLXN0YXJ0PSJmYWxzZSIgaWQ9ImVtYWlsLWZvcm0taW5wdXQiIGF1dG9Db21wbGV0ZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJzYXRvc2hpQG5ha2Ftb3RvLmNvbSIgdHlwZT0iZW1haWwiIG5hbWU9ImVtYWlsIi8+PC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IkNEWEJ1dHRvbl9fQ0RYQnV0dG9uQ29udGFpbmVyLXNjLTY0MGM5NjIyLTAgYnVKQ0F1Ij48YnV0dG9uIGNsYXNzPSIgZmxleC1mZjVyZnk2IGZnSW52ZXJzZS1mMXNkbHdqbiBfMC1fMTlpbjYwNiBfOTAwLV8xaTFubG16IF8wLV9zaWtneDYgXzQtX3NtN3JhdSBfMi1fMXVidndkOSBfMC1fMWR0N2dicCB3aWR0aC13N2Q0NWJnIHdpZHRoLXdxdHE4YW8gd2lkdGgtdzU3ZXE1eCBtaW5XaWR0aC1tcXBxbzdsIGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIHNjYWxlZERvd25Dc3MtczFvNmFseGQgY2RzLUJ1dHRvbiBiYXNlQ3NzLWI5OXpxdWggY2R4LWJ1dHRvbiAiIGRhdGEtdGVzdGlkPSJlbWFpbC1mb3JtLXN1Ym1pdC1idXR0b24iIHN0eWxlPSItLXBob25lLXdpZHRoOjEwMCU7LS10YWJsZXQtd2lkdGg6YXV0bzstLWRlc2t0b3Atd2lkdGg6YXV0bzstLW1pbldpZHRoOmF1dG87LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1vcGFjaXR5OjAuODIiIHR5cGU9InN1Ym1pdCIgZGF0YS12YXJpYW50PSJwcmltYXJ5Ij48c3BhbiBjbGFzcz0ibWlkZGxlTm9kZUNzcy1tMWF2cHE1MiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgY3VycmVudENvbG9yLWMxdWw2NzlxIGhlYWRsaW5lLWgxNXUwd2UwIGhlYWRsaW5lLWgxY3oxODR5IGhlYWRsaW5lLWgxYXhlNjhoIGhlYWRsaW5lLWgxZDh4aDN3IGNlbnRlci1jZno5N2o5IG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSItLXRleHQtdGV4dFRyYW5zZm9ybTp2YXIoLS10ZXh0VHJhbnNmb3JtLWhlYWRsaW5lKSI+PHNwYW4gY2xhc3M9IiI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtYmxvY2staTF3OGFmbzkgYmdMaW5lSW52ZXJzZS1iMXFhMWozcyBsMS1mZiBsMS1mcyBsMS1mdyBsMS1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5TaWduIHVwPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjwvZm9ybT48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjZW50ZXItY2pwdWpjZCBjb2x1bW4tYzFmazZhb2ggd2lkdGgtd3M1MWV1ZiBmbGV4QmFzaXMtZjk1YmtwbyBmbGV4QmFzaXMtZjI5dDBucyIgc3R5bGU9Ii0td2lkdGg6MTAwJTstLWZsZXhCYXNpczoxMDAlOy0tZGVza3RvcC1mbGV4QmFzaXM6NTAlIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGNlbnRlci1jYzFiYWZ3IGNvbHVtbi1jMWZrNmFvaCB3aWR0aC13czUxZXVmIGhlaWdodC1obGx0bWdrIGFzcGVjdFJhdGlvLWE4NHNid2YgQ0RYQmFzZUhlcm9fX01lZGlhV3JhcHBlci1zYy04NWY5ZjJmZC0yIGNwWWJiWiIgc3R5bGU9Ii0td2lkdGg6MTAwJTstLWhlaWdodDoxMDAlOy0tYXNwZWN0UmF0aW86MS8xIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF83MDAtX3FiMWg2YiBfNzAwLV8xdzYwazFnIF84MDAtXzE1N3Bma3ogXzkwMC1fYjM0Y3RxIGFzcGVjdFJhdGlvLWE4NHNid2YgQ0RYSW1hZ2VfX0ltYWdlQ29udGFpbmVyLXNjLTRhNGRkMTVlLTAgaVZOd3hhIENEWEJhc2VIZXJvX19TdHlsZWRDRFhJbWFnZS1zYy04NWY5ZjJmZC0wIGdRV2VkViIgZGF0YS10ZXN0aWQ9ImltYWdlLWNvbnRhaW5lciIgc3R5bGU9Ii0tYXNwZWN0UmF0aW86MS8xOy0tb2JqZWN0LWZpdC1iYXNlOmNvbnRhaW47LS1vYmplY3QtZml0LXBob25lOmNvbnRhaW47LS1vYmplY3QtZml0LXRhYmxldDpjb250YWluOy0tb2JqZWN0LWZpdC1kZXNrdG9wOmNvbnRhaW4iPjxwaWN0dXJlIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZSIgY2xhc3M9IkNEWEltYWdlX19TdHlsZWRQaWN0dXJlLXNjLTRhNGRkMTVlLTEgaVNRVE5oIj48c291cmNlIGRhdGEtdGVzdGlkPSJuZXh0LWdlbi1pbWFnZS1zb3VyY2UtYXZpZi1iYXNlIiBzcmNTZXQ9Imh0dHBzOi8vaW1hZ2VzLmN0ZmFzc2V0cy5uZXQvbzEwZXM3d3U1Z20xLzNJYjFsbnVrdDhNdlY0YkRqSDJqbTcvMDBiZDU1YTg4MGNlMjY0ZjNiNzcyNTNiODM3NzYwYjIvaW1hZ2UucG5nP2ZtPWF2aWYmYW1wO2g9MzIwMCZhbXA7cT02NSIgdHlwZT0iaW1hZ2UvYXZpZiIgd2lkdGg9IjQyNTYiIGhlaWdodD0iMzIwMCIvPjxzb3VyY2UgZGF0YS10ZXN0aWQ9Im5leHQtZ2VuLWltYWdlLXNvdXJjZS13ZWJwLWJhc2UiIHNyY1NldD0iaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9vMTBlczd3dTVnbTEvM0liMWxudWt0OE12VjRiRGpIMmptNy8wMGJkNTVhODgwY2UyNjRmM2I3NzI1M2I4Mzc3NjBiMi9pbWFnZS5wbmc/Zm09d2VicCZhbXA7aD0zMjAwJmFtcDtxPTc1IiB0eXBlPSJpbWFnZS93ZWJwIiB3aWR0aD0iNDI1NiIgaGVpZ2h0PSIzMjAwIi8+PGltZyBkYXRhLXRlc3RpZD0ibmV4dC1nZW4taW1hZ2UtaW1nIiBzcmM9Imh0dHBzOi8vaW1hZ2VzLmN0ZmFzc2V0cy5uZXQvbzEwZXM3d3U1Z20xLzNJYjFsbnVrdDhNdlY0YkRqSDJqbTcvMDBiZDU1YTg4MGNlMjY0ZjNiNzcyNTNiODM3NzYwYjIvaW1hZ2UucG5nIiBhbHQ9IkNvaW5iYXNlIEhvbWVwYWdlIENyeXB0byBDaXJjbGUiIGxvYWRpbmc9ImVhZ2VyIiBoZWlnaHQ9IjMyMDAiIHdpZHRoPSI0MjU2IiBjbGFzcz0iQ0RYSW1hZ2VfX1N0eWxlZEltYWdlLXNjLTRhNGRkMTVlLTIgaGRNcFdsIi8+PC9waWN0dXJlPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj48L2Rpdj48ZGl2IGNsYXNzPSJDRFhTZWN0aW9uQ29udGFpbmVyX19EaXZEaXNwbGF5Q29udGVudHMtc2MtOGE0ZjM1N2UtMCBDdmNCUyI+PHNlY3Rpb24gY2xhc3M9IiBmbGV4LWZmNXJmeTYgY2VudGVyLWNjMWJhZncgY29sdW1uLWMxZms2YW9oIGJnLWJwN2dnMzEgd2lkdGgtd3M1MWV1ZiIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIF8zLV8xZDJxZmY1IF80LV8xc3UxZ2k0IF82LV8xeW9mMHg3IGNvbHVtbi1jMWZrNmFvaCBiZy1icDdnZzMxIF8yLV8xZDU2dmszIF8zLV8xZHM2Z2I1IF80LV8xb25mYWl0IF82LV9vdXNwZXkgXzgtXzFtaHFhNzMgXzEwLV9mc29janogd2lkdGgtd3M1MWV1ZiBtYXhXaWR0aC1tYXZ4dDJtIG1heFdpZHRoLW0xMGRrMDdvIiBkYXRhLXRlc3RpZD0iY2R4LXNlY3Rpb24tY29udGFpbmVyIiBzdHlsZT0iLS13aWR0aDoxMDAlOy0tdGFibGV0LW1heFdpZHRoOjEyMjhweDstLWRlc2t0b3AtbWF4V2lkdGg6MTYwMHB4Ij48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGNlbnRlci1jMWxsYThlciBtYXhXaWR0aC1tbHF4NnZuIiBzdHlsZT0iLS1tYXhXaWR0aDo5MDBweCI+PGRpdiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZ011dGVkLWZxcmFxcG8gbC1mZiBsLWZzIGwtZncgbC1saCBjZW50ZXItY2Z6OTdqOSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+PHAgY2xhc3M9InJpY2hUZXh0RWxlbWVudHNfX0luaGVyaXRlZEVsZW1lbnQtc2MtZTYwYWQ4ODktMiByaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRQLXNjLWU2MGFkODg5LTMgZVZtdkNYIEVGY0VSIj5ERVggdHJhZGluZyBpcyBvZmZlcmVkIGJ5IENvaW5iYXNlIEJlcm11ZGEgVGVjaG5vbG9naWVzIEx0ZC48L3A+PHAgY2xhc3M9InJpY2hUZXh0RWxlbWVudHNfX0luaGVyaXRlZEVsZW1lbnQtc2MtZTYwYWQ4ODktMiByaWNoVGV4dEVsZW1lbnRzX19TdHlsZWRQLXNjLWU2MGFkODg5LTMgZVZtdkNYIEVGY0VSIj48YnIvPlByb2R1Y3RzIGFuZCBmZWF0dXJlcyBtYXkgbm90IGJlIGF2YWlsYWJsZSBpbiBhbGwgcmVnaW9ucy4gSW5mb3JtYXRpb24gaXMgZm9yIG9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSwgYW5kIGlzIG5vdCAoaSkgYW4gb2ZmZXIsIG9yIHNvbGljaXRhdGlvbiBvZiBhbiBvZmZlciwgdG8gaW52ZXN0IGluLCBvciB0byBidXkgb3Igc2VsbCwgYW55IGludGVyZXN0cyBvciBzaGFyZXMsIG9yIHRvIHBhcnRpY2lwYXRlIGluIGFueSBpbnZlc3RtZW50IG9yIHRyYWRpbmcgc3RyYXRlZ3kgb3IgKGlpKSBpbnRlbmRlZCB0byBwcm92aWRlIGFjY291bnRpbmcsIGxlZ2FsLCBvciB0YXggYWR2aWNlLCBvciBpbnZlc3RtZW50IHJlY29tbWVuZGF0aW9ucy4gVHJhZGluZyBjcnlwdG9jdXJyZW5jeSBjb21lcyB3aXRoIHJpc2suPC9wPjwvZGl2PjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj48L2Rpdj48L21haW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjb2x1bW4tYzFmazZhb2giPjxkaXYgY2xhc3M9IiBibG9jay1idm1iZmxqIHpJbmRleC16MXExeGszYiBiZ1NlY29uZGFyeS1iMWdyc2hiaiBfMC1fMXhsajhmbiB3aWR0aC13czUxZXVmIiBzdHlsZT0iLS16SW5kZXg6MTstLXdpZHRoOjEwMCUiPjxmb290ZXIgcm9sZT0iY29udGVudGluZm8iPjxkaXYgY2xhc3M9IkNEWFNlY3Rpb25Db250YWluZXJfX0RpdkRpc3BsYXlDb250ZW50cy1zYy04YTRmMzU3ZS0wIEN2Y0JTIj48c2VjdGlvbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjZW50ZXItY2MxYmFmdyBjb2x1bW4tYzFmazZhb2ggYmdTZWNvbmRhcnktYjFncnNoYmogd2lkdGgtd3M1MWV1ZiIgc3R5bGU9Ii0td2lkdGg6MTAwJSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIF8zLV8xZDJxZmY1IF80LV8xc3UxZ2k0IF82LV8xeW9mMHg3IGNvbHVtbi1jMWZrNmFvaCBiZ1NlY29uZGFyeS1iMWdyc2hiaiBfMi1fMWQ1NnZrMyBfMy1fMWRzNmdiNSBfNC1fMW9uZmFpdCBfNi1fb3VzcGV5IF84LV8xbWhxYTczIF8xMC1fZnNvY2p6IHdpZHRoLXdzNTFldWYgbWF4V2lkdGgtbWF2eHQybSBtYXhXaWR0aC1tMTBkazA3byIgZGF0YS10ZXN0aWQ9ImNkeC1zZWN0aW9uLWNvbnRhaW5lciIgc3R5bGU9Ii0td2lkdGg6MTAwJTstLXRhYmxldC1tYXhXaWR0aDoxMjI4cHg7LS1kZXNrdG9wLW1heFdpZHRoOjE2MDBweCIgaWQ9ImZvb3Rlci1zaXRlLWluZGV4LWlubmVyIj48ZGl2IGlkPSJmb290ZXItc2l0ZS1pbmRleCIgc3R5bGU9InNjcm9sbC1tYXJnaW4tYmxvY2stc3RhcnQ6MjEwcHgiIGNsYXNzPSJGb290ZXJfX0Zvb3RlckFuY2hvci1zYy1mODlmNTlkNy0wIGduZERSdSI+PC9kaXY+PGRpdiBjbGFzcz0iIGJsb2NrLWJ2bWJmbGoiPjxkaXYgY2xhc3M9IiBibG9jay1idm1iZmxqIGJsb2NrLWJxcjAyY20gbm9uZS1uMWhsc3l2diBfMy1fMWp1ZnlkZyBfNC1fMXFtZWlqdyBfNi1fZmJ3cDF0IHdpZHRoLXdzNTFldWYiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgcmVsYXRpdmUtcm1kazRpbyBmZ1ByaW1hcnktZjF2aWFoaWYgY2RzLUljb24gTG9nb0ljb25fX1N0eWxlZEljb24tc2MtZWViOWMwNDUtMCBkU0hlQ2siPjxzcGFuIGFyaWEtaGlkZGVuPSJmYWxzZSIgYXJpYS1sYWJlbD0iQ29pbmJhc2UgTG9nbyIgY2xhc3M9Imljb25Dc3MtaWpneG4xcCBsLWwxYnJpODY0IiBkYXRhLWljb24tbmFtZT0iY29pbmJhc2UiIGRhdGEtdGVzdGlkPSJpY29uLWJhc2UtZ2x5cGgiIHJvbGU9ImltZyIgdGl0bGU9IkNvaW5iYXNlIExvZ28iIHRyYW5zbGF0ZT0ibm8iPvOwiaQ8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMi1fczNzM3Z4IGNvbHVtbi1jMWZrNmFvaCByb3ctcjF5cTV0bTYgcm93LXIxY3BidXg2IHdpZHRoLXdzNTFldWYiIHN0eWxlPSItLXdpZHRoOjEwMCUiPjxkaXYgY2xhc3M9IiBub25lLW54czNia2sgbm9uZS1ucnJwNXU0IGJsb2NrLWIxc3oyMTZhIGZsZXgtc3RhcnQtZmFpMnVmYSBmbGV4QmFzaXMtZjk1YmtwbyBmbGV4R3Jvdy1mYXY5aHlsIiBzdHlsZT0iLS1mbGV4QmFzaXM6MCU7LS1mbGV4R3JvdzoxIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IHJlbGF0aXZlLXJtZGs0aW8gZmdQcmltYXJ5LWYxdmlhaGlmIGNkcy1JY29uIExvZ29JY29uX19TdHlsZWRJY29uLXNjLWVlYjljMDQ1LTAgZFNIZUNrIj48c3BhbiBhcmlhLWhpZGRlbj0iZmFsc2UiIGFyaWEtbGFiZWw9IkNvaW5iYXNlIExvZ28iIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbC1sMWJyaTg2NCIgZGF0YS1pY29uLW5hbWU9ImNvaW5iYXNlIiBkYXRhLXRlc3RpZD0iaWNvbi1iYXNlLWdseXBoIiByb2xlPSJpbWciIHRpdGxlPSJDb2luYmFzZSBMb2dvIiB0cmFuc2xhdGU9Im5vIj7zsImkPC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmxleEJhc2lzLWY5NWJrcG8gZmxleEJhc2lzLWYyYnNpcHQgZmxleEJhc2lzLWYyOXQwbnMgZmxleEdyb3ctZmF2OWh5bCBmbGV4R3Jvdy1mMWlhc2N3byBmbGV4R3Jvdy1mMXk5Zjh2MiIgc3R5bGU9Ii0tZmxleEJhc2lzOjEwMCU7LS10YWJsZXQtZmxleEJhc2lzOjAlOy0tZGVza3RvcC1mbGV4QmFzaXM6MCU7LS1mbGV4R3JvdzowOy0tdGFibGV0LWZsZXhHcm93OjE7LS1kZXNrdG9wLWZsZXhHcm93OjEiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgY29sdW1uLWMxZms2YW9oIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGNvbHVtbi1jMWZrNmFvaCBfMF81LV9wZWpwencgXzBfNS1fMWE2dml6dCI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgaGVhZGxpbmUtaDFheGU2OGggbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+Q29tcGFueTwvc3Bhbj48c3BhbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBoZWlnaHQtaGxsdG1nayBmbGV4U2hyaW5rLWYxNzRodTIyIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWhlaWdodDpjYWxjKDEgKiB2YXIoLS1zcGFjZS0xKSk7LS1mbGV4U2hyaW5rOjA7LS1mbGV4R3JvdzowIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIj48L3NwYW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIF8wLV8xbzZiNXNmIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9hYm91dCIgYXJpYS1sYWJlbD0iTGVhcm4gbW9yZSBhYm91dCB0aGUgY29tcGFueSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkFib3V0PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9jYXJlZXJzIiBhcmlhLWxhYmVsPSJXb3JrIGF0IENvaW5iYXNlIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+Q2FyZWVyczwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvYWZmaWxpYXRlcyIgYXJpYS1sYWJlbD0iRWFybiBtb25leSBiZWNvbWluZyBhbiBhZmZpbGlhdGUiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5BZmZpbGlhdGVzPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9ibG9nIiBhcmlhLWxhYmVsPSJUaGUgQ29pbmJhc2UgQmxvZyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkJsb2c8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL3ByZXNzIiBhcmlhLWxhYmVsPSJJbiB0aGUgbmV3cyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPlByZXNzPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9zZWN1cml0eSIgYXJpYS1sYWJlbD0iU2VjdXJpdHkiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5TZWN1cml0eTwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSJodHRwczovL2ludmVzdG9yLmNvaW5iYXNlLmNvbS8iIGFyaWEtbGFiZWw9IkludmVzdG9ycyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkludmVzdG9yczwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvdmVuZG9ycy92ZW5kb3JzLWF0LWNvaW5iYXNlIiBhcmlhLWxhYmVsPSJWZW5kb3JzIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+VmVuZG9yczwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvbGVnYWwiIGFyaWEtbGFiZWw9Ik91ciBwcml2YWN5IGFuZCBsZWdhbCBwb2xpY2llcyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkxlZ2FsICZhbXA7IHByaXZhY3k8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL2xlZ2FsL2Nvb2tpZSIgYXJpYS1sYWJlbD0iT3VyIGNvb2tpZSBwb2xpY3kiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5Db29raWUgcG9saWN5PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9IiMiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5Db29raWUgcHJlZmVyZW5jZXM8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL2xlZ2FsL2RpZ2l0YWwtYXNzZXQtZGlzY2xvc3VyZXMiIGFyaWEtbGFiZWw9IkRpZ2l0YWwgQXNzZXQgRGlzY2xvc3VyZXMiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5EaWdpdGFsIEFzc2V0IERpc2Nsb3N1cmVzPC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY29sdW1uLWMxZms2YW9oIF8wXzUtX3BlanB6dyBfMF81LV8xYTZ2aXp0Ij48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBoZWFkbGluZS1oMWF4ZTY4aCBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5MZWFybjwvc3Bhbj48c3BhbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBoZWlnaHQtaGxsdG1nayBmbGV4U2hyaW5rLWYxNzRodTIyIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWhlaWdodDpjYWxjKDEgKiB2YXIoLS1zcGFjZS0xKSk7LS1mbGV4U2hyaW5rOjA7LS1mbGV4R3JvdzowIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIj48L3NwYW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIF8wLV8xbzZiNXNmIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9leHBsb3JlIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+RXhwbG9yZSBjcnlwdG88L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL3N0b2NrL2V4cGxvcmUiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5FeHBsb3JlIHN0b2NrczwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvbWFya2V0LXN0YXRzIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+TWFya2V0IHN0YXRpc3RpY3M8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL2J5dGVzIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+Q29pbmJhc2UgQnl0ZXMgbmV3c2xldHRlcjwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvbGVhcm4vY3J5cHRvLWJhc2ljcyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkNyeXB0byBiYXNpY3M8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL2xlYXJuL3RpcHMtYW5kLXR1dG9yaWFscyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPlRpcHMgJmFtcDsgdHV0b3JpYWxzPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9sZWFybi9jcnlwdG8tZ2xvc3NhcnkiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5DcnlwdG8gZ2xvc3Nhcnk8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL2xlYXJuL21hcmtldC11cGRhdGVzIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+TWFya2V0IHVwZGF0ZXM8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL2xlYXJuL2NyeXB0by1iYXNpY3Mvd2hhdC1pcy1iaXRjb2luIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+V2hhdCBpcyBCaXRjb2luPzwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvbGVhcm4vY3J5cHRvLWJhc2ljcy93aGF0LWlzLWNyeXB0b2N1cnJlbmN5IiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+V2hhdCBpcyBjcnlwdG8/PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9sZWFybi9jcnlwdG8tYmFzaWNzL3doYXQtaXMtYS1ibG9ja2NoYWluIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+V2hhdCBpcyBhIGJsb2NrY2hhaW4/PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9sZWFybi90aXBzLWFuZC10dXRvcmlhbHMvaG93LXRvLXNldC11cC1hLWNyeXB0by13YWxsZXQiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5Ib3cgdG8gc2V0IHVwIGEgY3J5cHRvIHdhbGxldD88L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL2xlYXJuL3RpcHMtYW5kLXR1dG9yaWFscy9ob3ctdG8tc2VuZC1jcnlwdG8iIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5Ib3cgdG8gc2VuZCBjcnlwdG8/PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9sZWFybi9jcnlwdG8tYmFzaWNzL3VuZGVyc3RhbmRpbmctY3J5cHRvLXRheGVzIiBhcmlhLWxhYmVsPSIyMDE5IENyeXB0byBUYXggR3VpZGUiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5UYXhlczwvYT48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSIgYmxvY2stYnZtYmZsaiBibG9jay1icXIwMmNtIG5vbmUtbjFobHN5dnYiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY29sdW1uLWMxZms2YW9oIF8wXzUtX3BlanB6dyBfMF81LV8xYTZ2aXp0Ij48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBoZWFkbGluZS1oMWF4ZTY4aCBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5TdXBwb3J0PC9zcGFuPjxzcGFuIGNsYXNzPSIgZmxleC1mZjVyZnk2IGhlaWdodC1obGx0bWdrIGZsZXhTaHJpbmstZjE3NGh1MjIgZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0taGVpZ2h0OmNhbGMoMSAqIHZhcigtLXNwYWNlLTEpKTstLWZsZXhTaHJpbms6MDstLWZsZXhHcm93OjAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJwcmVzZW50YXRpb24iPjwvc3Bhbj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjb2x1bW4tYzFmazZhb2ggXzAtXzFvNmI1c2YiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6bm9uZSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly9oZWxwLmNvaW5iYXNlLmNvbSIgYXJpYS1sYWJlbD0iT3VyIGhlbHAgY2VudGVyIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+SGVscCBjZW50ZXI8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly9oZWxwLmNvaW5iYXNlLmNvbS9jb250YWN0LXVzLyIgYXJpYS1sYWJlbD0iQ29udGFjdCB1cyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkNvbnRhY3QgdXM8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly9oZWxwLmNvaW5iYXNlLmNvbS9jb2luYmFzZS9nZXR0aW5nLXN0YXJ0ZWQvZ2V0dGluZy1zdGFydGVkLXdpdGgtY29pbmJhc2UvY3JlYXRlLWEtY29pbmJhc2UtYWNjb3VudC8iIGFyaWEtbGFiZWw9IkNvaW5iYXNlIHN1cHBvcnQgYXJ0aWNsZSBmb3IgY3JlYXRpbmcgYW4gYWNjb3VudCIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkNyZWF0ZSBhY2NvdW50PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vaGVscC5jb2luYmFzZS5jb20vY29pbmJhc2UvbWFuYWdpbmctbXktYWNjb3VudCNpZGVudGl0eS12ZXJpZmljYXRpb24vIiBhcmlhLWxhYmVsPSJDb2luYmFzZSBzdXBwb3J0IGFydGljbGUgZm9yIElEIHZlcmlmaWNhdGlvbiIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPklEIHZlcmlmaWNhdGlvbjwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSJodHRwczovL2hlbHAuY29pbmJhc2UuY29tL2NvaW5iYXNlL21hbmFnaW5nLW15LWFjY291bnQvIiBhcmlhLWxhYmVsPSJDb2luYmFzZSBzdXBwb3J0IGFydGljbGUgZm9yIGFjY291bnQgaW5mb3JtYXRpb24iIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5BY2NvdW50IGluZm9ybWF0aW9uPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vaGVscC5jb2luYmFzZS5jb20vY29pbmJhc2UvZ2V0dGluZy1zdGFydGVkI2FkZC1hLXBheW1lbnQtbWV0aG9kLyIgYXJpYS1sYWJlbD0iQ29pbmJhc2Ugc3VwcG9ydCBhcnRpY2xlIGZvciBwYXltZW50IG1ldGhvZHMiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5QYXltZW50IG1ldGhvZHM8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly9oZWxwLmNvaW5iYXNlLmNvbS9jb2luYmFzZS9tYW5hZ2luZy1teS1hY2NvdW50LyIgYXJpYS1sYWJlbD0iQ29pbmJhc2Ugc3VwcG9ydCBhcnRpY2xlIGZvciBhY2NvdW50IGFjY2VzcyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkFjY291bnQgYWNjZXNzPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vaGVscC5jb2luYmFzZS5jb20vc3VwcG9ydGVkLWNyeXB0by5odG1sIiBhcmlhLWxhYmVsPSJDb2luYmFzZSBzdXBwb3J0IGFydGljbGUgZm9yIHN1cHBvcnRlZCBjcnlwdG9jdXJyZW5jaWVzIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+U3VwcG9ydGVkIGNyeXB0bzwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSJodHRwczovL3N0YXR1cy5jb2luYmFzZS5jb20iIGFyaWEtbGFiZWw9IkNoZWNrIHRoZSBvcGVyYXRpb25hbCBzdGF0dXMgb2YgQ29pbmJhc2Ugc2VydmljZXMiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5TdGF0dXM8L2E+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBmbGV4QmFzaXMtZjk1YmtwbyBmbGV4QmFzaXMtZjJic2lwdCBmbGV4QmFzaXMtZjI5dDBucyBmbGV4R3Jvdy1mYXY5aHlsIGZsZXhHcm93LWYxaWFzY3dvIGZsZXhHcm93LWYxeTlmOHYyIiBzdHlsZT0iLS1mbGV4QmFzaXM6MTAwJTstLXRhYmxldC1mbGV4QmFzaXM6MCU7LS1kZXNrdG9wLWZsZXhCYXNpczowJTstLWZsZXhHcm93OjA7LS10YWJsZXQtZmxleEdyb3c6MTstLWRlc2t0b3AtZmxleEdyb3c6MSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMy1fMWQycWZmNSBfMi1fMWQ1bHQ3OSBjb2x1bW4tYzFmazZhb2giPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY29sdW1uLWMxZms2YW9oIF8wXzUtX3BlanB6dyBfMF81LV8xYTZ2aXp0Ij48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBoZWFkbGluZS1oMWF4ZTY4aCBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5JbmRpdmlkdWFsczwvc3Bhbj48c3BhbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBoZWlnaHQtaGxsdG1nayBmbGV4U2hyaW5rLWYxNzRodTIyIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWhlaWdodDpjYWxjKDEgKiB2YXIoLS1zcGFjZS0xKSk7LS1mbGV4U2hyaW5rOjA7LS1mbGV4R3JvdzowIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIj48L3NwYW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIF8wLV8xbzZiNXNmIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9leHBsb3JlIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+QnV5ICZhbXA7IHNlbGw8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly9iYXNlLmFwcCIgYXJpYS1sYWJlbD0iQmFzZSBBcHAgLSBQb3N0LCBlYXJuLCB0cmFkZSwgYW5kIGNoYXQsIGFsbCBpbiBvbmUgcGxhY2UiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5CYXNlIEFwcDwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvb25lIiBhcmlhLWxhYmVsPSJDb2luYmFzZSBPbmUiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5Db2luYmFzZSBPbmU8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL2NhcmQiIGFyaWEtbGFiZWw9IkRlYml0IENhcmQiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5EZWJpdCBDYXJkPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9kZXJpdmF0aXZlcy10cmFkaW5nIiBhcmlhLWxhYmVsPSJEZXJpdmF0aXZlcyAtIFRyYWRlIGNyeXB0byBkZXJpdmF0aXZlcyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkRlcml2YXRpdmVzPC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY29sdW1uLWMxZms2YW9oIF8wXzUtX3BlanB6dyBfMF81LV8xYTZ2aXp0Ij48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBoZWFkbGluZS1oMWF4ZTY4aCBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5CdXNpbmVzc2VzPC9zcGFuPjxzcGFuIGNsYXNzPSIgZmxleC1mZjVyZnk2IGhlaWdodC1obGx0bWdrIGZsZXhTaHJpbmstZjE3NGh1MjIgZmxleEdyb3ctZmF2OWh5bCIgc3R5bGU9Ii0taGVpZ2h0OmNhbGMoMSAqIHZhcigtLXNwYWNlLTEpKTstLWZsZXhTaHJpbms6MDstLWZsZXhHcm93OjAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJwcmVzZW50YXRpb24iPjwvc3Bhbj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IF8xLV80d2Y2NiBjb2x1bW4tYzFmazZhb2ggXzAtXzFvNmI1c2YiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6bm9uZSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2xpc3RpbmdzIiBhcmlhLWxhYmVsPSJBc3NldCBMaXN0aW5ncyAtIExpc3QgeW91ciBhc3NldCBvbiBDb2luYmFzZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkFzc2V0IExpc3RpbmdzPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9idXNpbmVzcyIgYXJpYS1sYWJlbD0iQ29pbmJhc2UgQnVzaW5lc3MgLSBDcnlwdG8gdHJhZGluZyBhbmQgcGF5bWVudHMgZm9yIHN0YXJ0dXBzIGFuZCBTTUJzIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+Q29pbmJhc2UgQnVzaW5lc3M8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL3BheW1lbnRzIiBhcmlhLWxhYmVsPSJQYXltZW50cyAtIFRoZSBzdGFibGVjb2luIHBheW1lbnRzIHN0YWNrIGZvciBjb21tZXJjZSBwbGF0Zm9ybXMiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5QYXltZW50czwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vdG9rZW5tYW5hZ2VyIiBhcmlhLWxhYmVsPSJUb2tlbiBNYW5hZ2VyIC0gVGhlIHBsYXRmb3JtIGZvciB0b2tlbiBkaXN0cmlidXRpb25zLCB2ZXN0aW5nLCBhbmQgbG9ja3VwcyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPlRva2VuIE1hbmFnZXI8L2E+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjb2x1bW4tYzFmazZhb2ggXzBfNS1fcGVqcHp3IF8wXzUtXzFhNnZpenQiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGhlYWRsaW5lLWgxYXhlNjhoIGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPkluc3RpdHV0aW9uczwvc3Bhbj48c3BhbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBoZWlnaHQtaGxsdG1nayBmbGV4U2hyaW5rLWYxNzRodTIyIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWhlaWdodDpjYWxjKDEgKiB2YXIoLS1zcGFjZS0xKSk7LS1mbGV4U2hyaW5rOjA7LS1mbGV4R3JvdzowIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIj48L3NwYW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIF8wLV8xbzZiNXNmIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9wcmltZSIgYXJpYS1sYWJlbD0iUHJpbWUgLSBJbnRlZ3JhdGVkIHRyYWRpbmcsIGZpbmFuY2UsIGFuZCBjdXN0b2R5IiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+UHJpbWU8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL3N0YWtpbmciIGFyaWEtbGFiZWw9IlN0YWtpbmcgLSBFeHBsb3JlIHN0YWtpbmcgYWNyb3NzIG91ciBwcm9kdWN0cyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPlN0YWtpbmc8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL2V4Y2hhbmdlIiBhcmlhLWxhYmVsPSJDb2luYmFzZSBFeGNoYW5nZSAtIFNwb3QgbWFya2V0cyBmb3IgaGlnaC1mcmVxdWVuY3kgdHJhZGluZyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkV4Y2hhbmdlPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9kZXJpdmF0aXZlcyIgYXJpYS1sYWJlbD0iRGVyaXZhdGl2ZXMgRXhjaGFuZ2UgLSBTcG90IG1hcmtldHMgZm9yIGhpZ2gtZnJlcXVlbmN5IHRyYWRpbmciIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5EZXJpdmF0aXZlcyBFeGNoYW5nZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvdmVyaWZpZWQtcG9vbHMiIGFyaWEtbGFiZWw9IlZlcmlmaWVkIFBvb2xzIC0gVHJhbnNwYXJlbnQsIHZlcmlmaWVkIGxpcXVpZGl0eSBwb29scyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPlZlcmlmaWVkIFBvb2xzPC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgZmxleC1md3Rxb2JtIG5vbmUtbjFobHN5dnYgXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgY29sdW1uLWMxZms2YW9oIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGNvbHVtbi1jMWZrNmFvaCBfMF81LV9wZWpwencgXzBfNS1fMWE2dml6dCI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgaGVhZGxpbmUtaDFheGU2OGggbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+RGV2ZWxvcGVyczwvc3Bhbj48c3BhbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBoZWlnaHQtaGxsdG1nayBmbGV4U2hyaW5rLWYxNzRodTIyIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWhlaWdodDpjYWxjKDEgKiB2YXIoLS1zcGFjZS0xKSk7LS1mbGV4U2hyaW5rOjA7LS1mbGV4R3JvdzowIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIj48L3NwYW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIF8wLV8xbzZiNXNmIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0iIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5EZXZlbG9wZXIgUGxhdGZvcm08L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly9iYXNlLm9yZyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkJhc2U8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy93YWxsZXRzIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+U2VydmVyIFdhbGxldHM8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9lbWJlZGRlZHdhbGxldHMiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5FbWJlZGRlZCBXYWxsZXRzPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmJhc2Uub3JnL2J1aWxkL2Jhc2UtYWNjb3VudCIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkJhc2UgQWNjb3VudHMgKFNtYXJ0IFdhbGxldHMpPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvb25yYW1wIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+T25yYW1wICZhbXA7IE9mZnJhbXA8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cueDQwMi5vcmciIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij54NDAyPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvdHJhZGUtYXBpIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+VHJhZGUgQVBJPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvcGF5bWFzdGVyIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+UGF5bWFzdGVyPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmJhc2Uub3JnL2J1aWxkL29uY2hhaW5raXQiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5PbmNoYWluS2l0PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvZGF0YS1hcGkiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5EYXRhIEFQSTwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vZGV2ZWxvcGVyLXBsYXRmb3JtL3Byb2R1Y3RzL3ZlcmlmaWNhdGlvbnMiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5WZXJpZmljYXRpb25zPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvbm9kZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPk5vZGU8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9hZ2VudGtpdCIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkFnZW50S2l0PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvc3Rha2luZyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPlN0YWtpbmc8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9mYXVjZXQiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5GYXVjZXQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9leGNoYW5nZS1hcGkiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5FeGNoYW5nZSBBUEk8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly9kb2NzLmNkcC5jb2luYmFzZS5jb20vaW50ZXJuYXRpb25hbC1leGNoYW5nZS9pbnRyb2R1Y3Rpb24vd2VsY29tZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkludGVybmF0aW9uYWwgRXhjaGFuZ2UgQVBJPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5jZHAuY29pbmJhc2UuY29tL3ByaW1lL2ludHJvZHVjdGlvbi93ZWxjb21lIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+UHJpbWUgQVBJPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5jZHAuY29pbmJhc2UuY29tL2Rlcml2YXRpdmVzL2ludHJvZHVjdGlvbi93ZWxjb21lIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+RGVyaXZhdGl2ZXMgQVBJPC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY29sdW1uLWMxZms2YW9oIF8wXzUtX3BlanB6dyBfMF81LV8xYTZ2aXp0Ij48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBoZWFkbGluZS1oMWF4ZTY4aCBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5Bc3NldCBwcmljZXM8L3NwYW4+PHNwYW4gY2xhc3M9IiBmbGV4LWZmNXJmeTYgaGVpZ2h0LWhsbHRtZ2sgZmxleFNocmluay1mMTc0aHUyMiBmbGV4R3Jvdy1mYXY5aHlsIiBzdHlsZT0iLS1oZWlnaHQ6Y2FsYygxICogdmFyKC0tc3BhY2UtMSkpOy0tZmxleFNocmluazowOy0tZmxleEdyb3c6MCIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9InByZXNlbnRhdGlvbiI+PC9zcGFuPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEtXzR3ZjY2IGNvbHVtbi1jMWZrNmFvaCBfMC1fMW82YjVzZiIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTpub25lIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvcHJpY2UvYml0Y29pbiIgYXJpYS1sYWJlbD0iQml0Y29pbiBwcmljZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkJpdGNvaW4gcHJpY2U8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL3ByaWNlL2V0aGVyZXVtIiBhcmlhLWxhYmVsPSJFdGhlcmV1bSBwcmljZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkV0aGVyZXVtIHByaWNlPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9wcmljZS9zb2xhbmEiIGFyaWEtbGFiZWw9IlNvbGFuYSBwcmljZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPlNvbGFuYSBwcmljZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvcHJpY2UveHJwIiBhcmlhLWxhYmVsPSJYUlAgcHJpY2UiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5YUlAgcHJpY2U8L2E+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjb2x1bW4tYzFmazZhb2ggXzBfNS1fcGVqcHp3IF8wXzUtXzFhNnZpenQiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGhlYWRsaW5lLWgxYXhlNjhoIGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlN0b2NrIHByaWNlczwvc3Bhbj48c3BhbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBoZWlnaHQtaGxsdG1nayBmbGV4U2hyaW5rLWYxNzRodTIyIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWhlaWdodDpjYWxjKDEgKiB2YXIoLS1zcGFjZS0xKSk7LS1mbGV4U2hyaW5rOjA7LS1mbGV4R3JvdzowIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIj48L3NwYW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIF8wLV8xbzZiNXNmIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9zdG9jay9udmRhIiBhcmlhLWxhYmVsPSJOVklESUEgcHJpY2UiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5OVklESUEgcHJpY2U8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL3N0b2NrL2FhcGwiIGFyaWEtbGFiZWw9IkFwcGxlIHByaWNlIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+QXBwbGUgcHJpY2U8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL3N0b2NrL21zZnQiIGFyaWEtbGFiZWw9Ik1pY3Jvc29mdCBwcmljZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPk1pY3Jvc29mdCBwcmljZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvc3RvY2svYW16biIgYXJpYS1sYWJlbD0iQW1hem9uIHByaWNlIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+QW1hem9uIHByaWNlPC9hPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBub25lLW54czNia2sgbm9uZS1ucnJwNXU0IGJsb2NrLWIxc3oyMTZhIGZsZXhCYXNpcy1mOTVia3BvIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWZsZXhCYXNpczowJTstLWZsZXhHcm93OjEiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgY29sdW1uLWMxZms2YW9oIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGNvbHVtbi1jMWZrNmFvaCBfMF81LV9wZWpwencgXzBfNS1fMWE2dml6dCI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgaGVhZGxpbmUtaDFheGU2OGggbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+RGV2ZWxvcGVyczwvc3Bhbj48c3BhbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBoZWlnaHQtaGxsdG1nayBmbGV4U2hyaW5rLWYxNzRodTIyIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWhlaWdodDpjYWxjKDEgKiB2YXIoLS1zcGFjZS0xKSk7LS1mbGV4U2hyaW5rOjA7LS1mbGV4R3JvdzowIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIj48L3NwYW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIF8wLV8xbzZiNXNmIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0iIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5EZXZlbG9wZXIgUGxhdGZvcm08L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly9iYXNlLm9yZyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkJhc2U8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy93YWxsZXRzIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+U2VydmVyIFdhbGxldHM8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9lbWJlZGRlZHdhbGxldHMiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5FbWJlZGRlZCBXYWxsZXRzPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmJhc2Uub3JnL2J1aWxkL2Jhc2UtYWNjb3VudCIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkJhc2UgQWNjb3VudHMgKFNtYXJ0IFdhbGxldHMpPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvb25yYW1wIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+T25yYW1wICZhbXA7IE9mZnJhbXA8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cueDQwMi5vcmciIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij54NDAyPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvdHJhZGUtYXBpIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+VHJhZGUgQVBJPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvcGF5bWFzdGVyIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+UGF5bWFzdGVyPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmJhc2Uub3JnL2J1aWxkL29uY2hhaW5raXQiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5PbmNoYWluS2l0PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvZGF0YS1hcGkiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5EYXRhIEFQSTwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSJodHRwczovL3d3dy5jb2luYmFzZS5jb20vZGV2ZWxvcGVyLXBsYXRmb3JtL3Byb2R1Y3RzL3ZlcmlmaWNhdGlvbnMiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5WZXJpZmljYXRpb25zPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvbm9kZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPk5vZGU8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9hZ2VudGtpdCIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkFnZW50S2l0PC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvaW5iYXNlLmNvbS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvc3Rha2luZyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPlN0YWtpbmc8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9mYXVjZXQiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5GYXVjZXQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9leGNoYW5nZS1hcGkiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5FeGNoYW5nZSBBUEk8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly9kb2NzLmNkcC5jb2luYmFzZS5jb20vaW50ZXJuYXRpb25hbC1leGNoYW5nZS9pbnRyb2R1Y3Rpb24vd2VsY29tZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkludGVybmF0aW9uYWwgRXhjaGFuZ2UgQVBJPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5jZHAuY29pbmJhc2UuY29tL3ByaW1lL2ludHJvZHVjdGlvbi93ZWxjb21lIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+UHJpbWUgQVBJPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5jZHAuY29pbmJhc2UuY29tL2Rlcml2YXRpdmVzL2ludHJvZHVjdGlvbi93ZWxjb21lIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+RGVyaXZhdGl2ZXMgQVBJPC9hPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBub25lLW54czNia2sgbm9uZS1ucnJwNXU0IGJsb2NrLWIxc3oyMTZhIGZsZXhCYXNpcy1mOTVia3BvIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWZsZXhCYXNpczowJTstLWZsZXhHcm93OjEiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzMtXzFkMnFmZjUgXzItXzFkNWx0NzkgY29sdW1uLWMxZms2YW9oIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGNvbHVtbi1jMWZrNmFvaCBfMF81LV9wZWpwencgXzBfNS1fMWE2dml6dCI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgbDItZmYgbDItZnMgaGVhZGxpbmUtaDFheGU2OGggbDItbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+U3VwcG9ydDwvc3Bhbj48c3BhbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBoZWlnaHQtaGxsdG1nayBmbGV4U2hyaW5rLWYxNzRodTIyIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWhlaWdodDpjYWxjKDEgKiB2YXIoLS1zcGFjZS0xKSk7LS1mbGV4U2hyaW5rOjA7LS1mbGV4R3JvdzowIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIj48L3NwYW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIF8wLV8xbzZiNXNmIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vaGVscC5jb2luYmFzZS5jb20iIGFyaWEtbGFiZWw9Ik91ciBoZWxwIGNlbnRlciIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkhlbHAgY2VudGVyPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vaGVscC5jb2luYmFzZS5jb20vY29udGFjdC11cy8iIGFyaWEtbGFiZWw9IkNvbnRhY3QgdXMiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5Db250YWN0IHVzPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vaGVscC5jb2luYmFzZS5jb20vY29pbmJhc2UvZ2V0dGluZy1zdGFydGVkL2dldHRpbmctc3RhcnRlZC13aXRoLWNvaW5iYXNlL2NyZWF0ZS1hLWNvaW5iYXNlLWFjY291bnQvIiBhcmlhLWxhYmVsPSJDb2luYmFzZSBzdXBwb3J0IGFydGljbGUgZm9yIGNyZWF0aW5nIGFuIGFjY291bnQiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5DcmVhdGUgYWNjb3VudDwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSJodHRwczovL2hlbHAuY29pbmJhc2UuY29tL2NvaW5iYXNlL21hbmFnaW5nLW15LWFjY291bnQjaWRlbnRpdHktdmVyaWZpY2F0aW9uLyIgYXJpYS1sYWJlbD0iQ29pbmJhc2Ugc3VwcG9ydCBhcnRpY2xlIGZvciBJRCB2ZXJpZmljYXRpb24iIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5JRCB2ZXJpZmljYXRpb248L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly9oZWxwLmNvaW5iYXNlLmNvbS9jb2luYmFzZS9tYW5hZ2luZy1teS1hY2NvdW50LyIgYXJpYS1sYWJlbD0iQ29pbmJhc2Ugc3VwcG9ydCBhcnRpY2xlIGZvciBhY2NvdW50IGluZm9ybWF0aW9uIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+QWNjb3VudCBpbmZvcm1hdGlvbjwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSJodHRwczovL2hlbHAuY29pbmJhc2UuY29tL2NvaW5iYXNlL2dldHRpbmctc3RhcnRlZCNhZGQtYS1wYXltZW50LW1ldGhvZC8iIGFyaWEtbGFiZWw9IkNvaW5iYXNlIHN1cHBvcnQgYXJ0aWNsZSBmb3IgcGF5bWVudCBtZXRob2RzIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+UGF5bWVudCBtZXRob2RzPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8vaGVscC5jb2luYmFzZS5jb20vY29pbmJhc2UvbWFuYWdpbmctbXktYWNjb3VudC8iIGFyaWEtbGFiZWw9IkNvaW5iYXNlIHN1cHBvcnQgYXJ0aWNsZSBmb3IgYWNjb3VudCBhY2Nlc3MiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5BY2NvdW50IGFjY2VzczwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSJodHRwczovL2hlbHAuY29pbmJhc2UuY29tL3N1cHBvcnRlZC1jcnlwdG8uaHRtbCIgYXJpYS1sYWJlbD0iQ29pbmJhc2Ugc3VwcG9ydCBhcnRpY2xlIGZvciBzdXBwb3J0ZWQgY3J5cHRvY3VycmVuY2llcyIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPlN1cHBvcnRlZCBjcnlwdG88L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly9zdGF0dXMuY29pbmJhc2UuY29tIiBhcmlhLWxhYmVsPSJDaGVjayB0aGUgb3BlcmF0aW9uYWwgc3RhdHVzIG9mIENvaW5iYXNlIHNlcnZpY2VzIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+U3RhdHVzPC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY29sdW1uLWMxZms2YW9oIF8wXzUtX3BlanB6dyBfMF81LV8xYTZ2aXp0Ij48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBsMi1mZiBsMi1mcyBoZWFkbGluZS1oMWF4ZTY4aCBsMi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj5Bc3NldCBwcmljZXM8L3NwYW4+PHNwYW4gY2xhc3M9IiBmbGV4LWZmNXJmeTYgaGVpZ2h0LWhsbHRtZ2sgZmxleFNocmluay1mMTc0aHUyMiBmbGV4R3Jvdy1mYXY5aHlsIiBzdHlsZT0iLS1oZWlnaHQ6Y2FsYygxICogdmFyKC0tc3BhY2UtMSkpOy0tZmxleFNocmluazowOy0tZmxleEdyb3c6MCIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9InByZXNlbnRhdGlvbiI+PC9zcGFuPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEtXzR3ZjY2IGNvbHVtbi1jMWZrNmFvaCBfMC1fMW82YjVzZiIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTpub25lIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvcHJpY2UvYml0Y29pbiIgYXJpYS1sYWJlbD0iQml0Y29pbiBwcmljZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkJpdGNvaW4gcHJpY2U8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL3ByaWNlL2V0aGVyZXVtIiBhcmlhLWxhYmVsPSJFdGhlcmV1bSBwcmljZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPkV0aGVyZXVtIHByaWNlPC9hPjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9wcmljZS9zb2xhbmEiIGFyaWEtbGFiZWw9IlNvbGFuYSBwcmljZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPlNvbGFuYSBwcmljZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvcHJpY2UveHJwIiBhcmlhLWxhYmVsPSJYUlAgcHJpY2UiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5YUlAgcHJpY2U8L2E+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBjb2x1bW4tYzFmazZhb2ggXzBfNS1fcGVqcHp3IF8wXzUtXzFhNnZpenQiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnLWYxc29yYWc0IGwyLWZmIGwyLWZzIGhlYWRsaW5lLWgxYXhlNjhoIGwyLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPlN0b2NrIHByaWNlczwvc3Bhbj48c3BhbiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBoZWlnaHQtaGxsdG1nayBmbGV4U2hyaW5rLWYxNzRodTIyIGZsZXhHcm93LWZhdjloeWwiIHN0eWxlPSItLWhlaWdodDpjYWxjKDEgKiB2YXIoLS1zcGFjZS0xKSk7LS1mbGV4U2hyaW5rOjA7LS1mbGV4R3JvdzowIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIj48L3NwYW4+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY29sdW1uLWMxZms2YW9oIF8wLV8xbzZiNXNmIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Ii9zdG9jay9udmRhIiBhcmlhLWxhYmVsPSJOVklESUEgcHJpY2UiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij5OVklESUEgcHJpY2U8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL3N0b2NrL2FhcGwiIGFyaWEtbGFiZWw9IkFwcGxlIHByaWNlIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+QXBwbGUgcHJpY2U8L2E+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iL3N0b2NrL21zZnQiIGFyaWEtbGFiZWw9Ik1pY3Jvc29mdCBwcmljZSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPk1pY3Jvc29mdCBwcmljZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2Ij48YSBocmVmPSIvc3RvY2svYW16biIgYXJpYS1sYWJlbD0iQW1hem9uIHByaWNlIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+QW1hem9uIHByaWNlPC9hPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY29sdW1uLWMxZms2YW9oIF8zLV8xanVmeWRnIj48ZGl2IGNsYXNzPSIgZmxleC1mZjVyZnk2IGNlbnRlci1jYzFiYWZ3IHJvdy1yMWZqdjJjMCI+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYi1mZiBiLWZzIGItZncgYi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBfMC1fMTFkOW9ubSBfMy1feHd3ZDViIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYiPjxhIGhyZWY9Imh0dHBzOi8veC5jb20vY29pbmJhc2UiIHRpdGxlPSJDb2luYmFzZSBYIGFjY291bnQiIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0iY29sb3I6dmFyKC0tY29sb3ItZmcpIiBjbGFzcz0iQ0RTRm9vdGVyTGlua19fTGluay1zYy05YWMyNGY4NS0wIGpBbGFGdCI+PGltZyBsb2FkaW5nPSJsYXp5IiBzcmM9Imh0dHBzOi8vc3RhdGljLWFzc2V0cy5jb2luYmFzZS5jb20vbWFya2V0aW5nL2NkeC94LWxpZ2h0LnN2ZyIgYWx0PSJYIGxvZ28iIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPjwvYT48L2Rpdj48L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYi1mZiBiLWZzIGItZncgYi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBfMy1faW4xeTBrIF8zLV94d3dkNWIgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvY29pbmJhc2UiIHRpdGxlPSJDb2luYmFzZSBMaW5rZWRJbiBwYWdlIiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9ImNvbG9yOnZhcigtLWNvbG9yLWZnKSIgY2xhc3M9IkNEU0Zvb3RlckxpbmtfX0xpbmstc2MtOWFjMjRmODUtMCBqQWxhRnQiPjxpbWcgbG9hZGluZz0ibGF6eSIgc3JjPSJodHRwczovL3N0YXRpYy1hc3NldHMuY29pbmJhc2UuY29tL21hcmtldGluZy9jZHgvbGlua2VkaW4tbGlnaHQuc3ZnIiBhbHQ9IkxpbmtlZEluIGxvZ28iIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPjwvYT48L2Rpdj48L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYi1mZiBiLWZzIGItZncgYi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBfMy1faW4xeTBrIF8zLV94d3dkNWIgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9jb2luYmFzZS8iIHRpdGxlPSJDb2luYmFzZSBJbnN0YWdyYW0gcGFnZSIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJjb2xvcjp2YXIoLS1jb2xvci1mZykiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij48aW1nIGxvYWRpbmc9ImxhenkiIHNyYz0iaHR0cHM6Ly9zdGF0aWMtYXNzZXRzLmNvaW5iYXNlLmNvbS9tYXJrZXRpbmcvY2R4L2luc3RhZ3JhbS1saWdodC5zdmciIGFsdD0iSW5zdGFncmFtIGxvZ28iIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPjwvYT48L2Rpdj48L3NwYW4+PHNwYW4gY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmctZjFzb3JhZzQgYi1mZiBiLWZzIGItZncgYi1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBfMy1faW4xeTBrIF8wLV92Ynozd2EgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cudGlrdG9rLmNvbS9AY29pbmJhc2UiIHRpdGxlPSJDb2luYmFzZSBUaWt0b2sgcGFnZSIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJjb2xvcjp2YXIoLS1jb2xvci1mZykiIGNsYXNzPSJDRFNGb290ZXJMaW5rX19MaW5rLXNjLTlhYzI0Zjg1LTAgakFsYUZ0Ij48aW1nIGxvYWRpbmc9ImxhenkiIHNyYz0iaHR0cHM6Ly9zdGF0aWMtYXNzZXRzLmNvaW5iYXNlLmNvbS9tYXJrZXRpbmcvY2R4L3Rpa3Rvay1saWdodC5zdmciIGFsdD0iVGlrdG9rIGxvZ28iIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPjwvYT48L2Rpdj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBzdHJldGNoLXNhMWRwajAgc3RyZXRjaC1zMTV6ZmZsaiBfMy1fb3lkb2sgXzItX20xY2owYiI+PGhyIGNsYXNzPSIgZmxleC1mZjVyZnk2IGJnTGluZS1iMWFkdDl0NiBfMC1fMXlxc3NlayBmbGV4R3Jvdy1mYXY5aHlsIGhvcml6b250YWwtaGI0MG43byIgc3R5bGU9Ii0tZmxleEdyb3c6MSIgYXJpYS1vcmllbnRhdGlvbj0iaG9yaXpvbnRhbCIgcm9sZT0ic2VwYXJhdG9yIi8+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgc3BhY2UtYmV0d2Vlbi1zMTlnb2ZvNCBjZW50ZXItY2MxYmFmdyBmbGV4LXN0YXJ0LWZoM2NuaHUgcm93LXIxZmp2MmMwIGNvbHVtbi1jMWRjZDQ1OSB3cmFwLXdnNnB5c3QiPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgY2VudGVyLWNqcHVqY2QgY2VudGVyLWNjMWJhZnciPjxkaXYgY2xhc3M9IiBmbGV4LWZmNXJmeTYgXzEtXzR3ZjY2IGNlbnRlci1jYzFiYWZ3IGZsZXgtc3RhcnQtZmgzY25odSByb3ctcjFmanYyYzAgY29sdW1uLWMxZGNkNDU5Ij48cCBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZy1mMXNvcmFnNCBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPsKpIDwhLS0gLS0+MjAyNjwhLS0gLS0+IDwhLS0gLS0+Q29pbmJhc2U8L3A+PHNwYW4gY2xhc3M9IiBmbGV4LWZmNXJmeTYgbm9uZS1udm55NjExIGZnTXV0ZWQtZnFyYXFwbyBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPuKAojwvc3Bhbj48cCBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZ011dGVkLWZxcmFxcG8gYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj48YSBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBmZ011dGVkLWZxcmFxcG8gXzAtXzE5aW42MDYgXzAtX3Npa2d4NiBfMC1fMWR0N2dicCBjZHMtSW50ZXJhY3RhYmxlIGJhc2VDc3MtYjE3d21rOGYgYmFzZUNzcy1iMW5ybW9kcCBiYXNlQ3NzLWI2NzhteDkiIHN0eWxlPSItLWludGVyLWJnOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWhvdmVyLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItaG92ZXItYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1iZzp0cmFuc3BhcmVudDstLWludGVyLXByZXNzLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3Mtb3BhY2l0eTowLjgyOy0taW50ZXItZGlzYWJsZS1iZzp0cmFuc3BhcmVudDstLWludGVyLWRpc2FibGUtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQiIGhyZWY9Ii9sZWdhbC9wcml2YWN5Ij48c3BhbiBjbGFzcz0iIGlubGluZS1pMWQ1eHQyZyBjdXJyZW50Q29sb3ItYzF1bDY3OXEgaW5oZXJpdC1pOGNla2puIGluaGVyaXQtaTV5ZndqdSBpbmhlcml0LWkxOWpkODZuIGluaGVyaXQtaTFxMnptNG4gc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBzdHlsZT0iLS10ZXh0LXRleHRUcmFuc2Zvcm06dmFyKC0tdGV4dFRyYW5zZm9ybS1pbmhlcml0KSI+UHJpdmFjeTwvc3Bhbj48L2E+PC9wPjxzcGFuIGNsYXNzPSIgZmxleC1mZjVyZnk2IG5vbmUtbnZueTYxMSBmZ011dGVkLWZxcmFxcG8gYy1mZiBjLWZzIGMtZncgYy1saCBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIGRhdGEtbGluay1zdHlsZT0iY3VycmVudENvbG9yVW5kZXJsaW5lIj7igKI8L3NwYW4+PHAgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmdNdXRlZC1mcXJhcXBvIGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+PGEgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmdNdXRlZC1mcXJhcXBvIF8wLV8xOWluNjA2IF8wLV9zaWtneDYgXzAtXzFkdDdnYnAgY2RzLUludGVyYWN0YWJsZSBiYXNlQ3NzLWIxN3dtazhmIGJhc2VDc3MtYjFucm1vZHAgYmFzZUNzcy1iNjc4bXg5IiBzdHlsZT0iLS1pbnRlci1iZzp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1pbnRlci1ib3JkZXJDb2xvcjp2YXIoLS1jb2xvci10cmFuc3BhcmVudCk7LS1pbnRlci1ob3Zlci1iZzp0cmFuc3BhcmVudDstLWludGVyLWhvdmVyLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50Oy0taW50ZXItaG92ZXItb3BhY2l0eTowLjg4Oy0taW50ZXItcHJlc3MtYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1wcmVzcy1ib3JkZXJDb2xvcjp0cmFuc3BhcmVudDstLWludGVyLXByZXNzLW9wYWNpdHk6MC44MjstLWludGVyLWRpc2FibGUtYmc6dHJhbnNwYXJlbnQ7LS1pbnRlci1kaXNhYmxlLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50IiBocmVmPSIvbGVnYWwvdXNlcl9hZ3JlZW1lbnQiPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGN1cnJlbnRDb2xvci1jMXVsNjc5cSBpbmhlcml0LWk4Y2Vram4gaW5oZXJpdC1pNXlmd2p1IGluaGVyaXQtaTE5amQ4Nm4gaW5oZXJpdC1pMXEyem00biBzdGFydC1zemc5b2VxIG5vbmUtbmc3a3JlZCBiYXNlQ3NzLWJjM2wxdzIiIHN0eWxlPSItLXRleHQtdGV4dFRyYW5zZm9ybTp2YXIoLS10ZXh0VHJhbnNmb3JtLWluaGVyaXQpIj5UZXJtcyAmYW1wOyBDb25kaXRpb25zPC9zcGFuPjwvYT48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiBfMS1fNHdmNjYgY2VudGVyLWNqcHVqY2QgY2VudGVyLWNjMWJhZnciPjxidXR0b24gYXJpYS1sYWJlbD0iT3BlbiBnbG9iYWwgcHJlZmVyZW5jZXMiIGNsYXNzPSIgZmxleC1mZjVyZnk2IGNlbnRlci1janB1amNkIGNlbnRlci1jYzFiYWZ3IF8xMDAtX3g0NGdzNCBfMC1fc2lrZ3g2IGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIHNjYWxlZERvd25Dc3MtczFvNmFseGQiIHN0eWxlPSItLWludGVyLWJnOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWhvdmVyLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItaG92ZXItYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1iZzp0cmFuc3BhcmVudDstLWludGVyLXByZXNzLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3Mtb3BhY2l0eTowLjgyOy0taW50ZXItZGlzYWJsZS1iZzp0cmFuc3BhcmVudDstLWludGVyLWRpc2FibGUtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQiIHR5cGU9ImJ1dHRvbiI+PGRpdiBjbGFzcz0iIGZsZXgtZmY1cmZ5NiByZWxhdGl2ZS1ybWRrNGlvIGZnTXV0ZWQtZnFyYXFwbyBjZHMtSWNvbiI+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJpY29uQ3NzLWlqZ3huMXAgbS1tMWo3YjQ2NSIgZGF0YS1pY29uLW5hbWU9ImJyb3dzZXIiIGRhdGEtdGVzdGlkPSJpY29uLWJhc2UtZ2x5cGgiIHJvbGU9ImltZyIgdHJhbnNsYXRlPSJubyI+87CEmjwvc3Bhbj48L2Rpdj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSIgZmxleC1mZjVyZnk2IGNlbnRlci1janB1amNkIGNlbnRlci1jYzFiYWZ3IF8xMDAtX3g0NGdzNCBfMC1fc2lrZ3g2IGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIHNjYWxlZERvd25Dc3MtczFvNmFseGQiIHN0eWxlPSItLWludGVyLWJnOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWhvdmVyLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItaG92ZXItYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1iZzp0cmFuc3BhcmVudDstLWludGVyLXByZXNzLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3Mtb3BhY2l0eTowLjgyOy0taW50ZXItZGlzYWJsZS1iZzp0cmFuc3BhcmVudDstLWludGVyLWRpc2FibGUtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQiIHR5cGU9ImJ1dHRvbiI+PHAgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmdNdXRlZC1mcXJhcXBvIGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+R2xvYmFsPC9wPjwvYnV0dG9uPjxzcGFuIGNsYXNzPSIgaW5saW5lLWkxZDV4dDJnIGZnTXV0ZWQtZnFyYXFwbyBjLWZmIGMtZnMgYy1mdyBjLWxoIHN0YXJ0LXN6ZzlvZXEgbm9uZS1uZzdrcmVkIGJhc2VDc3MtYmMzbDF3MiIgZGF0YS1saW5rLXN0eWxlPSJjdXJyZW50Q29sb3JVbmRlcmxpbmUiPuKAojwvc3Bhbj48YnV0dG9uIGNsYXNzPSIgZmxleC1mZjVyZnk2IGNlbnRlci1janB1amNkIGNlbnRlci1jYzFiYWZ3IF8xMDAtX3g0NGdzNCBfMC1fc2lrZ3g2IGNkcy1JbnRlcmFjdGFibGUgYmFzZUNzcy1iMTd3bWs4ZiBiYXNlQ3NzLWIxbnJtb2RwIHNjYWxlZERvd25Dc3MtczFvNmFseGQiIHN0eWxlPSItLWludGVyLWJnOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWJvcmRlckNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTstLWludGVyLWhvdmVyLWJnOnRyYW5zcGFyZW50Oy0taW50ZXItaG92ZXItYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQ7LS1pbnRlci1ob3Zlci1vcGFjaXR5OjAuODg7LS1pbnRlci1wcmVzcy1iZzp0cmFuc3BhcmVudDstLWludGVyLXByZXNzLWJvcmRlckNvbG9yOnRyYW5zcGFyZW50Oy0taW50ZXItcHJlc3Mtb3BhY2l0eTowLjgyOy0taW50ZXItZGlzYWJsZS1iZzp0cmFuc3BhcmVudDstLWludGVyLWRpc2FibGUtYm9yZGVyQ29sb3I6dHJhbnNwYXJlbnQiIHR5cGU9ImJ1dHRvbiI+PHAgY2xhc3M9IiBpbmxpbmUtaTFkNXh0MmcgZmdNdXRlZC1mcXJhcXBvIGMtZmYgYy1mcyBjLWZ3IGMtbGggc3RhcnQtc3pnOW9lcSBub25lLW5nN2tyZWQgYmFzZUNzcy1iYzNsMXcyIiBkYXRhLWxpbmstc3R5bGU9ImN1cnJlbnRDb2xvclVuZGVybGluZSI+RW5nbGlzaDwvcD48L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PC9mb290ZXI+PC9kaXY+PC9kaXY+PCEtLS8kLS0+PCEtLS8kLS0+PCEtLSQtLT48IS0tLyQtLT48IS0tJC0tPjwhLS0vJC0tPjxzdmcgaGVpZ2h0PSIwIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIwIj48ZGVmcz48Y2xpcFBhdGggY2xpcFBhdGhVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJjZHMtaGV4YWdvbi1hdmF0YXItY2xpcHBlciIgdHJhbnNmb3JtPSJzY2FsZSgwLjA2MjUgMC4wNjI1KSI+PHBhdGggZD0iTTE1LjQ4NTUgNi4wMjQyQzE2LjE3MTUgNy4yNDg1MiAxNi4xNzE1IDguNzUxNDggMTUuNDg1NSA5Ljk3NTgxTDEzLjQyMTMgMTMuNjU5OEMxMi43MjU5IDE0LjkwMDggMTEuNDMxNyAxNS42NjY3IDEwLjAzMDEgMTUuNjY2N0g1Ljk2OTk0QzQuNTY4MjggMTUuNjY2NyAzLjI3NDEgMTQuOTAwOCAyLjU3ODc0IDEzLjY1OThMMC41MTQ1MTUgOS45NzU4MUMtMC4xNzE1MDQgOC43NTE0OCAtMC4xNzE1MDUgNy4yNDg1MiAwLjUxNDUxNCA2LjAyNDJMMi41Nzg3NCAyLjM0MDIyQzMuMjc0MSAxLjA5OTIyIDQuNTY4MjggMC4zMzMzMzYgNS45Njk5NCAwLjMzMzMzNkgxMC4wMzAxQzExLjQzMTcgMC4zMzMzMzYgMTIuNzI1OSAxLjA5OTIyIDEzLjQyMTMgMi4zNDAyMkwxNS40ODU1IDYuMDI0MloiPjwvcGF0aD48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz48L2Rpdj48IS0tLyQtLT48L2Rpdj4KICAgIAogICAgPHNjcmlwdCBpZD0ic2VydmVyLWFwcC1zdGF0ZSIgdHlwZT0iYXBwbGljYXRpb24vanNvbiI+eyJpc0xvZ2dlZEluIjpmYWxzZSwibG9jYWxlSW5mbyI6eyJjb3VudHJ5IjoiTk8iLCJjb3VudHJ5RnJvbUlwIjoiTk8iLCJjb3VudHJ5RnJvbVVybCI6IlVTIiwibG9jYWxlQ29kZSI6ImVuIiwibG9jYWxlRnJvbVVybCI6IiIsImxhbmd1YWdlRnJvbVVybCI6ImVuIiwiY3VycmVuY3kiOiJOT0sifSwiaXNFbWJlZCI6ZmFsc2UsInNlcnZlckRldGVybWluZWRNb2JpbGVVc2VyQWdlbnQiOmZhbHNlLCJjb250ZW50ZnVsU3RhdGUiOnsia2lsbGVkIjpmYWxzZX0sImRlZmF1bHRDbGllbnRLaWxsU3dpdGNoQ29uZmlnIjp7ImtpbGxfaWFoX2ltcHJvdmVkX3N0cmVhbV9yZXRyeV9sb2dpY193ZWIiOnRydWUsImtpbGxfZmlsbHNfdGFibGVfZmlsdGVyc193ZWIiOmZhbHNlLCJraWxsX2ZpbGxfdGFibGVfZmlsdGVyc19mYXN0X2ZvbGxvd193ZWIiOmZhbHNlLCJraWxsX3NlcnZpY2Vfd29ya2VyX2FkdmFuY2VkX2FwaV9jYWNoaW5nIjpmYWxzZSwia2lsbF9vcmRlcl9mb3JtX21haW50YWluX2N1cnNvcl9wb3NpdGlvbiI6ZmFsc2UsInQwMDE2XzNjZDI4YjcxIjpmYWxzZSwia2lsbF9hZHZfcmVmZXJyYWxzX3JlZnJlc2hfd2ViIjpmYWxzZSwia2lsbF9yYXRfd3RjZF9kaXNjb3ZlcmFiaWxpdHlfYWRwX3dlYiI6ZmFsc2UsImtpbGxfcmF0X3d0Y2RfZGlzY292ZXJhYmlsaXR5X3BvcnRmb2xpb193ZWIiOmZhbHNlLCJraWxsX3JhdF93dGNkX2Rpc2NvdmVyYWJpbGl0eV9uYXZfd2ViIjpmYWxzZSwia2lsbF9yYXRfc3BvdF9hbW91bnRfc2xpZGVyX3dlYiI6ZmFsc2UsImtpbGxfcmF0X3NtYXJ0X29yZGVyX3JvdXRpbmdfZXhwZXJpbWVudF93ZWIiOmZhbHNlLCJraWxsX3VzZV9nZXRfcHJvZHVjdHNfZm9yX3Nwb3RfbWFya2V0X3NlbGVjdG9yX3dlYiI6ZmFsc2UsImtpbGxfcmF0X3NjYWxlZF9vcmRlcnNfc3BvdF93ZWIiOmZhbHNlLCJraWxsX25vdl8yMDI1X3JhdF9jb3N0X2Jhc2lzX21ldGhvZF93ZWIiOmZhbHNlLCJraWxsX25vdl8yMDI1X2NvbnZlcnRfZm9ybV9jb3N0X2Jhc2lzX21ldGhvZF93ZWIiOmZhbHNlLCJraWxsX29yZGVyYm9va19vcmRlcl9zdHJlYW1fdjJfd2ViIjpmYWxzZSwidDAwMTZfZDY4ODc4OTkiOmZhbHNlLCJ0MDAxNl9iMGQzMmI1NCI6ZmFsc2UsInQwMDE2X2RmMTRkMzI4IjpmYWxzZSwidDAwMTZfMDg3MTkwZTkiOmZhbHNlLCJ0MDAxNl9kOGIyZTRmNiI6ZmFsc2UsInQwMDE2Xzk4ZTZkNWYwIjpmYWxzZSwidDAwMTZfNDA5NjY2YjYiOmZhbHNlLCJ0MDAxNl82ZDBhYTQ0YSI6dHJ1ZSwidDAwMTZfY2E0ZWIzZjEiOnRydWUsInQwMDE2XzYwNmU3YWVjIjpmYWxzZSwidDAwMTZfM2ZiYTI4ODEiOmZhbHNlLCJ0MDAxNl80YThjMmU5MSI6ZmFsc2UsInQwMDE2XzViOWQzZjEyIjpmYWxzZSwidDAwMTZfNmMwZTRhMjMiOmZhbHNlLCJ0MDAxNl83ZDFmNWIzNCI6ZmFsc2UsInQwMDE2Xzk5OGVmZTZkIjpmYWxzZSwidDAwMTZfNzg5MDUwY2QiOmZhbHNlLCJ0MDAxNl9lZjQ4NzVkNiI6ZmFsc2UsInQwMDE2XzcyZWRhNmIyIjpmYWxzZSwia2lsbF9mY21fcmV2ZXJzZV9wb3NpdGlvbl93ZWIiOmZhbHNlLCJraWxsX2ZjbV9jbG9zZV9ieV9tYXJrZXRfbGltaXRfd2ViIjpmYWxzZSwia2lsbF9iYWxhbmNlX2Vycm9yX2Jhbm5lcl9vbl9mdXR1cmVzX3dlYiI6ZmFsc2UsImtpbGxfYmFsYW5jZV9lcnJvcl9iYW5uZXJfb25fcGVycGV0dWFsc193ZWIiOmZhbHNlLCJraWxsX2JhbGFuY2VfZXJyb3JfYmFubmVyX29uX2Rlcml2YXRpdmVzX3N1bW1hcnlfd2ViIjpmYWxzZSwidDAwMTZfNTY2NjA3ZjkiOmZhbHNlLCJraWxsX2ludHhfcHJlX2xhdW5jaF9jb250cmFjdHNfd2ViIjpmYWxzZSwia2lsbF9pbnR4X29yZGVyX2ZpbGxfdHlwZV93ZWIiOmZhbHNlLCJraWxsX2ludHhfc2ltcGxpZmllZF9vbmJvYXJkaW5nX3dlYiI6ZmFsc2UsImtpbGxfdW5pZmllZF90cmFkaW5nX3BvcnRmb2xpb193ZWIiOmZhbHNlLCJraWxsX3BlcnBzX2ltcHJvdmVkX21pbl9xdW90ZV9lcnJvciI6ZmFsc2UsImtpbGxfcmF0X2ludHhfb3Blbl9pbnRlcmVzdF9yZXdhcmRzX3dlYiI6ZmFsc2UsImtpbGxfcmF0X2ludHhfb3Blbl9pbnRlcmVzdF9saWZldGltZV9yZXdhcmRzX3dlYiI6dHJ1ZSwia2lsbF9vaV9zaG93X3RpZXJfY2hhbmdlX21vZGFsIjp0cnVlLCJraWxsX3RyYW5zZmVyX21vZGFsX3RvX3RyYXlfd2ViIjpmYWxzZSwia2lsbF91c2RjX3JlY3VycmluZ19kZXBvc2l0X3dlYiI6ZmFsc2UsImtpbGxfbGltaXRfZXJyb3JfdG9fd2lyZV90cmFuc2Zlcl93ZWIiOmZhbHNlLCJraWxsX3ZpZXdfcmV3YXJkc19icmVha2Rvd24iOmZhbHNlLCJraWxsX2RlcG9zaXRfdjJfd2ViIjpmYWxzZSwidDAwMTZfMWIzZmNiOTIiOmZhbHNlLCJ0MDAxNl8yMjRhMDU1NyI6ZmFsc2UsImtpbGxfaW50eF9yZXZlcnNlX3Bvc2l0aW9uX3dlYiI6ZmFsc2UsImtpbGxfaW50eF9jbG9zZV9ieV9tYXJrZXRfbGltaXRfd2ViIjpmYWxzZSwia2lsbF9pbnR4X2Nsb3NlX2FsbF9wb3NpdGlvbnNfd2ViIjpmYWxzZSwia2lsbF9mY21fY2xvc2VfYWxsX3Bvc2l0aW9uc193ZWIiOmZhbHNlLCJraWxsX21hcmdpbl9yYXRpb19nbG9iYWxfaWNvbiI6dHJ1ZSwia2lsbF91c2RjX3dpdGhkcmF3X3RyYW5zZmVyX3dpZGdldF93ZWIiOmZhbHNlLCJraWxsX3Rwc2xfcGVyY2VudGFnZV9wcmVjaXNpb25fd2ViIjpmYWxzZSwia2lsbF9pbnR4X2Z1bmRpbmdfcmF0ZV9jaGFydF93ZWIiOmZhbHNlLCJ0MDAxNl8wYWFlM2EyNiI6ZmFsc2UsInQwMDA1X2NkZmZhYWYyIjpmYWxzZSwidDAwMDVfYTFiZTM0MmQiOmZhbHNlLCJ0MDAwNV9iN2U0YTJmMSI6ZmFsc2UsInQwMDE2X2VmYzc5MzdjIjpmYWxzZSwidDAwMTZfYzhmM2EyOTEiOmZhbHNlLCJ0MDAxNl8wYTcxZDlhMiI6ZmFsc2UsInQwMDE2X2I0OTk4ZWY1IjpmYWxzZSwidDAwMTZfMTAxMmIwYmUiOmZhbHNlLCJ0MDAxNl81MzcwM2RmMCI6ZmFsc2UsImtpbGxfcmF0X3ByZWRpY3Rpb25fbWFya2V0c193ZWIiOmZhbHNlLCJraWxsX3ByZWRpY3Rpb25fbWFya2V0c19sb2dnZWRfb3V0X3dlYiI6ZmFsc2UsImtpbGxfcHJlZGljdGlvbl9tYXJrZXRzX2hlYWRfdG9faGVhZF93ZWIiOmZhbHNlLCJraWxsX3ByZWRpY3Rpb25fbWFya2V0c19jYXJvdXNlbF93ZWIiOmZhbHNlLCJ0MDAyNl8xMDI0MjJiMSI6ZmFsc2UsInQwMDI2Xzk5NGY0Mzg3IjpmYWxzZSwidDAwMjZfZjlhMmIzYzQiOnRydWUsInQwMDI2X2EzZjhiMmUxIjpmYWxzZSwidDAwMjZfYzlkNGU3ZjAiOmZhbHNlLCJ0MDAyNl84ZTBkMWEyMCI6ZmFsc2UsInQwMDEwX2E5OTlhYTQ1IjpmYWxzZSwidDAwMTZfYTFiMmMzZDQiOmZhbHNlLCJ0MDAxNl9kM2IxdDByZCI6ZmFsc2UsInQwMDE2XzI4MDYxMTIyIjpmYWxzZSwidDAwMTZfNTQ5OThlNjAiOmZhbHNlLCJ0MDAxNl9mOGUyZDFjMyI6dHJ1ZSwidDAwMTZfODdhYjIzZjgiOmZhbHNlLCJ0MDAxNl83YWIzNGU1OCI6ZmFsc2UsInQwMDE2X2JhOWUwYzAwIjpmYWxzZSwidDAwMTZfNjQxNzQ3N2EiOmZhbHNlLCJ0MDAxNl84MDI3ZjBkMiI6ZmFsc2UsInQwMDE2X2NlYmIzZTk0IjpmYWxzZSwia2lsbF91c2R0X3NlbmRfZmVlX3dlYiI6ZmFsc2UsImtpbGxfbmJhX3N3ZWVwc3Rha2VzX2Zvcm1fd2ViIjp0cnVlLCJraWxsX3BhcnRpYWxfcGVyZm9ybWFuY2VfcGF1c2VkX3d3dyI6ZmFsc2UsImtpbGxfc3lzdGVtX2FsZXJ0X2NhY2hlX2V2aWN0aW9uX3dlYiI6ZmFsc2UsImVuYWJsZV9ib3VudHl2Ml93ZWIiOnRydWUsImVuYWJsZV9jZG5fY2FjaGUiOmZhbHNlLCJraWxsX3JldGFyZ2V0aW5nX3RyYWNraW5nX3dlYiI6ZmFsc2UsInQwMDIwXzNlMjhmNjk3IjpmYWxzZSwia2lsbF9zZW9fdG91Y2hwb2ludF90cmFja2luZ193ZWIiOmZhbHNlLCJraWxsX2FwcHNmbHllcl9wYmFfd2ViIjp0cnVlLCJ0MDAyMF83ODkwZWUxYSI6dHJ1ZSwidDAwMjBfZTgzNWUyMzEiOmZhbHNlLCJ0MDAyMF85MTZhYWJhZCI6ZmFsc2UsInQwMDIwXzVjMmY5ZDQxIjpmYWxzZSwia2lsbF9zZXJ2aWNlX3dvcmtlciI6dHJ1ZSwia2lsbF9zZXJ2aWNlX3dvcmtlcl9jYWNoZV9mb250cyI6dHJ1ZSwia2lsbF9zZXJ2aWNlX3dvcmtlcl9jZG5fY2FjaGUiOmZhbHNlLCJraWxsX3NlcnZpY2Vfd29ya2VyX2h0bWxfY2FjaGUiOnRydWUsImtpbGxfc2VydmljZV93b3JrZXJfaHRtbF9jYWNoZV9hdXRoZWQiOmZhbHNlLCJraWxsX3NlcnZpY2Vfd29ya2VyX2h0bWxfY2FjaGVfY29uZGl0aW9uYWwiOmZhbHNlLCJraWxsX3NlcnZpY2Vfd29ya2VyX3Byb3h5X2ZvbnQiOnRydWUsImtpbGxfc2VydmljZV93b3JrZXJfcHJveHlfaHRtbCI6ZmFsc2UsImtpbGxfY29udGVudGZ1bF9ob21lcGFnZSI6ZmFsc2UsImtpbGxfaG9tZV9zd2VlcHN0YWtlX3Vwc2VsbCI6ZmFsc2UsImtpbGxfaG9tZV9leHBsb3JlX2NyeXB0byI6ZmFsc2UsImtpbGxfaG9tZV9jYXNoX2FweV93ZWIiOmZhbHNlLCJraWxsX25ld19wbV9iYWRnZSI6ZmFsc2UsImtpbGxfY2FzaF9vdXRfYnV0dG9uIjpmYWxzZSwia2lsbF9ieXRlc19zdWJzY3JpYmUiOmZhbHNlLCJraWxsX3NoYXJlX3BvcnRmb2xpbyI6ZmFsc2UsImtpbGxfY2FyZF9kaXNwbGF5X2V4cGVyaWVuY2VzX3d3dyI6ZmFsc2UsImtpbGxfcmV3YXJkc19wcmljZV9wZXJjZW50YWdlX2NoYW5nZSI6dHJ1ZSwia2lsbF9zdWJzY3JpcHRpb25fc2lnbnVwX3dlYiI6ZmFsc2UsImtpbGxfc3Vic2NyaXB0aW9uX21hbmFnZW1lbnRfd2ViIjpmYWxzZSwia2lsbF9zdWJzY3JpcHRpb25fZ3JhY2VfcGVyaW9kX3dlYiI6ZmFsc2UsImtpbGxfY2IxX3N1YnNjcmlwdGlvbl9hY3RpdmF0aW9uX3BvbGxpbmdfd2ViIjpmYWxzZSwia2lsbF9jdXJyZW5jeV9jb252ZXJ0ZXJfcGFnZSI6ZmFsc2UsImtpbGxfZXRoMl91cHNlbGxfd3d3IjpmYWxzZSwia2lsbF8zZHMyIjpmYWxzZSwia2lsbF9hZHZhbmNlZF90cmFkZV9sb2dnZWRfb3V0X3dlYiI6ZmFsc2UsImtpbGxfYWR2YW5jZWRfdHJhZGVfbG9nZ2VkX291dF9mdXR1cmVzX3dlYiI6ZmFsc2UsImtpbGxfZmlmdHlfbXNfZGVwdGhfdXBkYXRlc193ZWIiOmZhbHNlLCJraWxsX3NlbGZfc2VydmVfbG9ja19hY2NvdW50IjpmYWxzZSwia2lsbF9naWZ0X2NhcmQiOmZhbHNlLCJraWxsX2NyeXB0b19zZW5kc191bmlmaWVkX3R3b19mYWN0b3IiOmZhbHNlLCJraWxsX3c5X3ZlcmlmeV9hY2Nlc3Nfd2ViIjpmYWxzZSwia2lsbF91Ym9fc2lnbnVwX3BpY2tlciI6ZmFsc2UsImtpbGxfZ2xvYmFsX2FjdGlvbnNfYWRwX3dlYiI6ZmFsc2UsImtpbGxfZGFwcF93YWxsZXRfcm4iOnRydWUsImtpbGxfc29sYXJpc2Jhbmtfc2tpcF93ZWIiOmZhbHNlLCJraWxsX3dlYl9kYXBwIjpmYWxzZSwia2lsbF91cHNlbGxfZnJhbWV3b3JrX3JldGFpbF93ZWIiOnRydWUsImtpbGxfY29udGVudGZ1bF9hcGkiOnRydWUsImtpbGxfdG9rZW5fcmV0dXJuX3Rvb2xfYXNzZXRfcGFnZV93ZWIiOmZhbHNlLCJraWxsX3ByZXNldF9idXlzX2luX3RyYWRlX3dlYiI6ZmFsc2UsImtpbGxfZ2FtaWZpY2F0aW9uX25hdl9iYW5uZXJfbG9nZ2VkX291dCI6ZmFsc2UsImtpbGxfZnJlZV90cmFkZV9wcm9tb19jb2RlIjpmYWxzZSwia2lsbF9yZXRhaWxfY2hhdF9zdXBwb3J0X3NlcnZpY2UiOmZhbHNlLCJraWxsX2Rlcml2YXRpdmVzX29uYm9hcmRpbmdfd2ViIjpmYWxzZSwia2lsbF9kZXJpdmF0aXZlc19mdXR1cmVzX3dlYiI6ZmFsc2UsImtpbGxfY3lfd2F0Y2hsaXN0X2Rlcml2YXRpdmVzX3JuIjpmYWxzZSwia2lsbF9kZXJpdmF0aXZlc19mZWVfZGF0YV93ZWIiOmZhbHNlLCJraWxsX2RhcHBfbGlzdGluZ3Nfd2ViIjpmYWxzZSwia2lsbF9leHBsb3JlX2Z1dHVyZXNfdGFiX3dlYiI6ZmFsc2UsImtpbGxfZXhwbG9yZV9wZXJwZXR1YWxfZnV0dXJlcyI6ZmFsc2UsImtpbGxfYnJfZnVsbF9uYW1lIjpmYWxzZSwia2lsbF9kYXBwX21lZGlhX3dlYiI6ZmFsc2UsImtpbGxfZGFwcF9zdGF0aXN0aWNzX3dlYiI6ZmFsc2UsImtpbGxfc3BvbnNvcmVkX2RhcHBzX3dlYiI6ZmFsc2UsImtpbGxfYXNzZXRfcGVyZm9ybWFuY2Vfd2ViIjpmYWxzZSwia2lsbF95Y19uZXh0X2Zvcl95b3Vfd2ViIjp0cnVlLCJraWxsX3NpZGViYXJfdGF4X2VudHJ5X3BvaW50IjpmYWxzZSwia2lsbF9wMnBfYXNzZXRfcmVjb3ZlcnkiOmZhbHNlLCJraWxsX2VmdF9idXlfZXhwb3N1cmVfd2ViIjpmYWxzZSwia2lsbF9sb2dnZWRfb3V0X2RhcHBfbGlzdGluZ3Nfd2ViIjpmYWxzZSwia2lsbF9saXZlX2JhbGFuY2Vfd2ViIjpmYWxzZSwia2lsbF9jaGVja2xpc3RfcG9saWN5X3Jlc3RyaWN0aW9uX2ZldGNoZXIiOmZhbHNlLCJraWxsX3BheXBhbF9icmFpbnRyZWVfcmVhdXRoX3dlYiI6ZmFsc2UsImtpbGxfdXNkY19hc3NldF90YWJsZV9idXR0b25zIjpmYWxzZSwia2lsbF9zaW1wbGVfdHJhZGVfZWl0cmlfd2ViIjpmYWxzZSwia2lsbF91a19iYW5rX2FjY291bnRfcmVzdHJpY3Rpb25fd2ViIjpmYWxzZSwidDAwMDJfNzI5ZTJiYjQiOmZhbHNlLCJraWxsX3NpbXBsZV90cmFkZV9saW1pdF9vcmRlcl93ZWIiOmZhbHNlLCJraWxsX3NpbXBsZV90cmFkZV9saW1pdF9vcmRlcl9mdW5kX2Zsb3dfd2ViIjpmYWxzZSwidDAwMDhfNjY5OWM5NzQiOmZhbHNlLCJraWxsX2FwcmlsXzIwMjNfcHJlZmlsbF9lZHBfd2ViIjpmYWxzZSwia2lsbF9mdXR1cmVzX3BlcmZvcm1hbmNlX3dlYiI6ZmFsc2UsImtpbGxfZGVwb3NpdF9mbG93X2luX3NpbXBsZV90cmFkZV9idXlfd2ViIjpmYWxzZSwia2lsbF9zdGFibGVfYXNzZXRfc2NyZWVuX3dlYiI6ZmFsc2UsImtpbGxfcmVjdXJyaW5nX2J1eXNfdXNkY193ZWIiOmZhbHNlLCJraWxsX2FkZF9jYXNoX3VzZGNfd2ViIjpmYWxzZSwia2lsbF9pYWhfc3RyZWFtX3Rocm90dGxpbmdfd2ViIjpmYWxzZSwia2lsbF9mYXN0ZXJfbWlzc2luZ19oZWFydGJlYXRfcmVjb25uZWN0X3dlYiI6ZmFsc2UsImtpbGxfY2FzaF9vdXRfdXNkY193ZWIiOmZhbHNlLCJraWxsX2Nhc2hfdHJhbnNmZXJfdXNkY193ZWIiOmZhbHNlLCJraWxsX2J1eV9zZWxsX3dpdGhfY3J5cHRvX3dlYiI6ZmFsc2UsImtpbGxfYnV5X3NlbGxfd2l0aF9jcnlwdG9faW50bF93ZWIiOmZhbHNlLCJraWxsX3BheW1lbnRzX3Jpc2tfc2FyZGluZV9zZGtfaW50ZWdyYXRpb25fd2ViIjpmYWxzZSwia2lsbF9zaW1wbGVfdHJhZGVfYnV5X3dlYiI6ZmFsc2UsImtpbGxfc2ltcGxlX3RyYWRlX3NlbGxfd2ViIjpmYWxzZSwia2lsbF9kaXJlY3RfbGlua190b193YWxsZXRfdHJhZGVfd2ViIjpmYWxzZSwia2lsbF9zaW1wbGVfdHJhZGVfc3dhcF93ZWIiOmZhbHNlLCJraWxsX3NpbXBsZV90cmFkZV93ZWIiOmZhbHNlLCJraWxsX3NpbXBsZV90cmFkZV9mZWVfZGlzY2xvc3VyZV93ZWIiOmZhbHNlLCJraWxsX3VrX2hvbWVfcGFnZV93ZWIiOmZhbHNlLCJraWxsX25sX2hvbWVfcGFnZV93ZWIiOmZhbHNlLCJraWxsX2NhX2hvbWVfcGFnZV93ZWIiOmZhbHNlLCJraWxsX2RlX2hvbWVfcGFnZV93ZWIiOmZhbHNlLCJraWxsX2ZyX2hvbWVfcGFnZV93ZWIiOmZhbHNlLCJraWxsX2l0X2hvbWVfcGFnZV93ZWIiOmZhbHNlLCJraWxsX2JyX2hvbWVfcGFnZV93ZWIiOmZhbHNlLCJraWxsX3NnX2hvbWVfcGFnZV93ZWIiOmZhbHNlLCJraWxsX2F1X2hvbWVfcGFnZV93ZWIiOmZhbHNlLCJraWxsX2VzX2hvbWVfcGFnZV93ZWIiOmZhbHNlLCJraWxsX2FyX2hvbWVfcGFnZV93ZWIiOmZhbHNlLCJraWxsX3NpbXBsZV90cmFkZV91cGRhdGVyX3dlYiI6ZmFsc2UsImtpbGxfbm90aWZpY2F0aW9uX2Ryb3Bkb3duX2h1Yl93ZWIiOmZhbHNlLCJraWxsX2V1X2xvY2FsaXplZF9pbnB1dF93ZWIiOmZhbHNlLCJraWxsX2NiZXRoX3N0YXRlX3JlZ3VsYXRvcnlfd2ViIjpmYWxzZSwia2lsbF9wZXJwZXR1YWxzX3BlcmZvcm1hbmNlX3dlYiI6ZmFsc2UsImtpbGxfbGltaXRfb3JkZXJfY2FsbG91dF90b29sdGlwX3dlYiI6ZmFsc2UsImtpbGxfbmxfZWlkX29uYm9hcmRpbmdfd2ViIjpmYWxzZSwiZW5hYmxlX3BlcnNpc3RhbnRfZGlzY2xhaW1lcl9iYW5uZXJfd2ViIjp0cnVlLCJraWxsX2dsb2JhbF9vbmZpZG9fc2RrX2ludGVncmF0aW9uX3dlYiI6ZmFsc2UsImtpbGxfcmF0X2wyX2ZpbnByb21fZGlzY2xhaW1lcl93ZWIiOmZhbHNlLCJraWxsX3BlcnNpc3RlbnRfYnV5X3N0YWtlX3dlYiI6ZmFsc2UsImVuYWJsZV9hc3NldHNfdWtfZmluX3Byb21fd2ViIjp0cnVlLCJraWxsX2Rlcml2YXRpdmVzX2Z1dHVyZXNfZ3Jvd3RoX3dlYiI6ZmFsc2UsImtpbGxfcGVycGV0dWFsX2Z1dHVyZXNfd2ViIjpmYWxzZSwia2lsbF9vbGRfb25ib2FyZGluZ19iaXJ0aHBsYWNlX3RpdGxlX3dlYiI6dHJ1ZSwia2lsbF9wZXJwZXR1YWxzX2dyb3d0aF93ZWIiOmZhbHNlLCJraWxsX21pc3NlZF9lYXJuaW5nc19iYW5uZXJfd2ViIjpmYWxzZSwia2lsbF9lYXJuX2FweV9kYXRhX3NvdXJjZV93ZWIiOmZhbHNlLCJraWxsX3RyYWRlX2Ryb3BvZmZfd2ViIjpmYWxzZSwidDAwMTBfMGQ2MTlmYjMiOmZhbHNlLCJraWxsX2dldHByZWZpbGxfdmFsaWRhdGVfc3NuX3dlYiI6dHJ1ZSwia2lsbF9taXNzZWRfZWFybmluZ3NfcHJvbW9jYXJkX3dlYiI6ZmFsc2UsImtpbGxfcmVkZXNpZ25lZF9zaW5nbGVfdG9fbXVsdGlfYXNzZXRfc3Rha2luZ191cHNlbGxfd2ViIjpmYWxzZSwia2lsbF9jYjFfY3J5cHRvX2JhY2t1cHNfd2ViIjpmYWxzZSwia2lsbF91bmJsb2NrX2RlbGF5ZWRfdHJhbnNhY3Rpb25fc2NyZWVuX3dlYiI6ZmFsc2UsImtpbGxfZnJhbWVfYXNzZXRfc2VydmljZV93ZWIiOnRydWUsImtpbGxfYmFuY29tYXRfZGVwb3NpdHNfZXhwb3N1cmUiOmZhbHNlLCJraWxsX2RlZmF1bHRfdHJhZGluZ192Ml9idXlfd2ViIjpmYWxzZSwia2lsbF9zZW9fZmFxX3dlYiI6dHJ1ZSwia2lsbF9jYV9hcHByb3ByaWF0ZW5lc3NfYXNzZXNzbWVudCI6ZmFsc2UsImtpbGxfY2FfZGVwb3NpdF9jb25maXJtX2ltcHJvdmVtZW50X3dlYiI6ZmFsc2UsImtpbGxfZGVmYXVsdF90cmFkaW5nX3YyX3NlbGxfYWRkY2FzaF93ZWIiOmZhbHNlLCJraWxsX3N0YWtlX2Ryb3BvZmZfd2ViIjpmYWxzZSwia2lsbF93YXRjaGxpc3Rfd2ViIjpmYWxzZSwia2lsbF9hZHZhbmNlZF90cmFkZV9hY2NvdW50X2JhbGFuY2VfZXJyb3IiOmZhbHNlLCJraWxsX2JhbGFuY2VfZXJyb3JfYmFubmVyX29uX2Fzc2V0c193ZWIiOmZhbHNlLCJraWxsX2FkdmFuY2VkX3BvcnRmb2xpb19lcnJvcl9iYW5uZXJfd2ViIjpmYWxzZSwia2lsbF92aWV3X3ByZXZpZXdfd2ViIjpmYWxzZSwia2lsbF92aWV3X2NvbmZpcm1fd2ViIjpmYWxzZSwiZW5hYmxlX2ludHhfcGxtX2Zvcl9jYmN5X3dlYiI6ZmFsc2UsImtpbGxfaW50eF9pbmRleF9wZXJwc193ZWIiOmZhbHNlLCJraWxsX2ludHhfcGVycHNfYW1vdW50X3NsaWRlcl93ZWIiOmZhbHNlLCJraWxsX2Jyb2tlcmFnZV9iYXNlX2Fzc2V0c19wcmVsb2FkX3dlYiI6ZmFsc2UsImVuYWJsZV9mb3JjZV9vcGVuX2Z1dHVyZXNfdHJhZGluZ19zZXNzaW9uIjpmYWxzZSwia2lsbF9wMnBfdmVyaWZpZWRfd2FsbGV0c193ZWIiOmZhbHNlLCJraWxsX3ZhdWx0X3dlYiI6ZmFsc2UsImtpbGxfZWFybl9kZWdyYWRlZF9iYW5uZXJfd2ViIjpmYWxzZSwia2lsbF9hY2NvdW50X3Byb3RlY3Rpb25fcDFfd2ViIjpmYWxzZSwia2lsbF9hc3NldF9yZWNvbW1lbmRhdGlvbnNfd2ViIjpmYWxzZSwia2lsbF9wb3J0Zm9saW9fb3JkZXJzX2ZpbHRlcl93ZWIiOmZhbHNlLCJraWxsX3RpbWVzdGFtcF9nbG9iYWxfYmFubmVyX3dlYiI6dHJ1ZSwia2lsbF9nbG9iYWxfYWN0aW9uc19hc3NldHNfd2ViIjpmYWxzZSwia2lsbF9teV9hc3NldHNfc3Rha2luZ19zdW1tYXJ5X3dlYiI6ZmFsc2UsImtpbGxfd29ybGRfY2FyZF9leHBpcmF0aW9uX3dlYiI6ZmFsc2UsImtpbGxfc3Rha2luZ19zdW1tYXJ5X2NhcmRfd2ViIjpmYWxzZSwia2lsbF9zdGFraW5nX2FuaW1hdGlvbnNfd2ViIjpmYWxzZSwia2lsbF9zaW1wbGVfdHJhZGVfZXF1aXR5X3NlbGxfd2ViIjpmYWxzZSwia2lsbF9zaW1wbGVfdHJhZGVfZXF1aXR5X2J1eV93ZWIiOmZhbHNlLCJraWxsX2NiMV9hdHRlc3RhdGlvbl93ZWIiOmZhbHNlLCJraWxsX2ludHhfdHBzbF93ZWIiOmZhbHNlLCJraWxsX2Fzc2V0X3N0YWtpbmdfc3VtbWFyeV93ZWIiOmZhbHNlLCJraWxsX3JhdjRfdHJhbnNhY3Rfd2ViIjpmYWxzZSwia2lsbF9hc3NldF9zdGFraW5nX3N1bW1hcnlfY2FyZF93ZWIiOmZhbHNlLCJraWxsX3BlcnNpc3RlZF9iYWxhbmNlX2Vycm9yX3N0YXRlX3dlYiI6ZmFsc2UsImtpbGxfaG53aV9yZXN0cmljdGlvbl93ZWIiOnRydWUsImtpbGxfZHluZXRpX2NhcmRfc2Nhbl9pbl93ZWJ2aWV3X2Zvcl9saW5rX2NhcmRfd2ViIjp0cnVlLCJraWxsX3NpbXBsZV90cmFkZV9idXlfc2VsbF93aXRoX2NyeXB0b193ZWIiOmZhbHNlLCJraWxsX3JhdjRfaGlkZV9lYXJuX3dlYiI6ZmFsc2UsImtpbGxfcHNfY29udGVudF9jb252ZXJ0ZXJfcGFnZV93ZWIiOmZhbHNlLCJraWxsX25vdGlmX2h1Yl9kaXNtaXNzX3dlYiI6ZmFsc2UsImtpbGxfZGVyaXZhdGl2ZV9yaXNrX2Fja192Ml93ZWIiOmZhbHNlLCJraWxsX25vdGlmaWNhdGlvbl9odWJfbW9kYWxfd2ViIjpmYWxzZSwidDAwMTZfMDdmZjE5NDciOmZhbHNlLCJraWxsX3N0YWtpbmdfcmVmcmVzaF9vbl90cmFkZXNfd2ViIjpmYWxzZSwia2lsbF9reWNfcmVmcmVzaF9yZXZpZXdfcHJvbXB0X3dlYiI6ZmFsc2UsImtpbGxfYWNjb3VudHNfa3ljX3JlZnJlc2hfcmV2aWV3X3Byb21wdF93ZWIiOmZhbHNlLCJraWxsX3VzZF91c2RjX3VuaWZpY2F0aW9uX3BoYXNlXzFfd2ViIjpmYWxzZSwia2lsbF91c2RfdXNkY191bmlmaWNhdGlvbl9waGFzZV8zX3dlYiI6ZmFsc2UsImtpbGxfdXNkY19ydHBfc2VsbF93ZWIiOmZhbHNlLCJraWxsX2dsb2JhbF9hY3Rpb25zX3RyYW5zYWN0X3dlYiI6ZmFsc2UsImtpbGxfYnJfZGVsYXlfYWxlcnRpbmdfd2ViIjpmYWxzZSwia2lsbF9pdF90YXhfaWRfd2ViIjpmYWxzZSwia2lsbF91bmlmeV9oZWxwbGlua3Nfd2ViIjpmYWxzZSwia2lsbF9mdXR1cmVzX2FmdGVyX2hvdXJzX29yZGVyc193ZWIiOmZhbHNlLCJraWxsX2RlZmlfYm9ycm93X3dlYiI6ZmFsc2UsImtpbGxfZGVmaV9ib3Jyb3dfc3VwcGx5X2Zsb3dfd2ViIjpmYWxzZSwia2lsbF9kZWZpX2JvcnJvd19yZXBheV9mbG93X3dlYiI6ZmFsc2UsImtpbGxfZGVmaV9ib3Jyb3dfYWRkX2NvbGxhdGVyYWxfZmxvd193ZWIiOmZhbHNlLCJraWxsX2RlZmlfYm9ycm93X3dpdGhkcmF3X2NvbGxhdGVyYWxfZmxvd193ZWIiOmZhbHNlLCJraWxsX2RlZmlfYm9ycm93X2luY3JlYXNlX2RlYnRfZmxvd193ZWIiOmZhbHNlLCJ0MDAyMl83ZDNmOWEyMSI6ZmFsc2UsInQwMDIyXzlmZTJjZDcwIjpmYWxzZSwidDAwMjJfMGY2NTA1ZGUiOmZhbHNlLCJ0MDAyMl8wNzlmYjM4ZiI6ZmFsc2UsInQwMDIyXzI4ZmQ2NjA3IjpmYWxzZSwidDAwMjJfYjI0ZjM0MzgiOmZhbHNlLCJ0MDAyMl8zZDlmMWE1YyI6ZmFsc2UsInQwMDIyXzNiNDlkMjMzIjpmYWxzZSwidDAwMjJfazduMng5cjUiOmZhbHNlLCJ0MDAyMl8wNmNiMDZlMyI6ZmFsc2UsImtpbGxfcmF0X2ludHhfY2JjeV9vbmJvYXJkaW5nX3dlYiI6ZmFsc2UsImVuYWJsZV9yYXRfaW50eF9vdmVyZHJhZnRfbnV4X3dlYiI6dHJ1ZSwia2lsbF92aXNhX2RlYWxfdXhfY2hhbmdlc193ZWIiOmZhbHNlLCJraWxsX3VzZGNfcmV3YXJkc19yYXRlX21vZGFsX3dlYiI6ZmFsc2UsImtpbGxfdXNkY19yZXdhcmRzX2JyZWFrZG93bl93ZWIiOmZhbHNlLCJraWxsX3VzZGNfcmV3YXJkc19icmVha2Rvd25fY2IxX3dlYiI6ZmFsc2UsImtpbGxfdHJhbnNmZXJvX3dlYiI6dHJ1ZSwia2lsbF91c2RjX2FzX2Nhc2hfZXF1aXZhbGVudF9pbl91a193ZWIiOmZhbHNlLCJraWxsX25ld19wdXNoX3BheW1lbnRfbWV0aG9kc19yZXF1aXJlbWVudHNfaGFuZGxpbmdfd2ViIjpmYWxzZSwia2lsbF9wbV9jZWxsX2NvbXBvbmVudF93ZWIiOmZhbHNlLCJraWxsX3NjYW1fcmVwb3J0aW5nX3YyX3dlYiI6ZmFsc2UsImtpbGxfcmV3YXJkX3BheW91dF9jZWxlYnJhdGlvbl93ZWIiOmZhbHNlLCJraWxsX3NlcGFfdjJfcmVkZXNpZ25fd2ViIjpmYWxzZSwia2lsbF9yYXRfYXR0YWNoZWRfdHBzbF9pbnR4IjpmYWxzZSwia2lsbF9yYXRfYXR0YWNoZWRfdHBzbF9zcG90IjpmYWxzZSwia2lsbF9yYXRfYXR0YWNoZWRfdHBzbF9mdXR1cmVzIjpmYWxzZSwia2lsbF9yYXRfdHBzbF9zcG90X2Zhc3RfZm9sbG93c193ZWIiOmZhbHNlLCJraWxsX3JhdF90cHNsX2Z1dHVyZXNfZmFzdF9mb2xsb3dzX3dlYiI6ZmFsc2UsImtpbGxfaG9tZV9wb3J0Zm9saW9fb3B0aW1pemF0aW9uX3dlYiI6ZmFsc2UsImtpbGxfYnJhY2tldF90b190cHNsX3dlYiI6ZmFsc2UsImtpbGxfY2IxX2ludGVybmF0aW9uYWxfYmlsbGluZ193ZWIiOmZhbHNlLCJraWxsX2Nkdl9zdGF0dXNfY2hlY2tfd2ViIjpmYWxzZSwidDAwMjZfY2UwM2RhMjMiOmZhbHNlLCJraWxsX2ludHhfb25ib2FyZGluZ19pbmNlbnRpdmVzX3dlYiI6dHJ1ZSwia2lsbF9pbnR4X2Nkc19vbmJvYXJkaW5nX3dlYiI6ZmFsc2UsImtpbGxfYWR2X2xpdmVfYmFsYW5jZXNfd2ViIjpmYWxzZSwia2lsbF9jZHNfY29tcG9uZW50c192ZW5kb3JfdmVyaWZpY2F0aW9uIjpmYWxzZSwia2lsbF9yYXRfaW5maW5pdGVfbG9hZF9hbHRlcm5hdGl2ZV9leHBlcmllbmNlX3dlYiI6ZmFsc2UsImtpbGxfY2JzZ19kaXNjbG9zdXJlc193ZWIiOmZhbHNlLCJraWxsX3Bvc2l0aW9uc19jdXJyZW50X3ByaWNlIjp0cnVlLCJraWxsX2NsYXdiYWNrX2RlY29tcF93ZWIiOmZhbHNlLCJraWxsX2RlZmF1bHRfcGF5bWVudF9idXlfbG9naWNfd2ViIjpmYWxzZSwia2lsbF9kZWZhdWx0X3BheW1lbnRfc2VsbF9sb2dpY193ZWIiOmZhbHNlLCJraWxsX3VzZGNfZnhfc3ByZWFkX3JlZHVjdGlvbl93ZWIiOmZhbHNlLCJraWxsX2lubGluZV9xdWlja19hY3Rpb25fd2ViIjpmYWxzZSwia2lsbF9jZHZfdXhfaW1wcm92ZW1lbnRzX3dlYiI6ZmFsc2UsImtpbGxfc2ltcGxlX3RyYWRlX3BheW1lbnRfcGFja2FnZV9taWdyYXRpb25fd2ViIjpmYWxzZSwia2lsbF9hY2NyZWRpdGVkX2ludmVzdG9yX2NhcmRfd2ViIjpmYWxzZSwia2lsbF9hZHBfbGl2ZV9iYWxhbmNlX3dlYiI6ZmFsc2UsImtpbGxfd2ViY2FtX2JsdXJyaW5lc3NfY2hlY2siOmZhbHNlLCJraWxsX2NhcHR1cmVfZnVsbF9zc25fZWRwX2FuZF9wcm92ZV93ZWIiOmZhbHNlLCJraWxsX2NiMV9jb25jaWVyZ2Vfd2ViIjpmYWxzZSwia2lsbF9wZXJmb3JtYW5jZV9jaGFydGluZ193d3ciOmZhbHNlLCJraWxsX2FkdmFuY2VkX2NoYXJ0X3RyYWRpbmdfd2ViIjpmYWxzZSwia2lsbF9jYjFfZnJlZV93aXJlc193ZWIiOmZhbHNlLCJraWxsX2FjdGlvbmFibGVfZmlsdGVyaW5nX2J5X2Vycm9yX2NvZGUiOnRydWUsImtpbGxfc3dlZXBzdGFrZXNfc2lnbnVwX2V4cGVyaW1lbnQiOnRydWUsImtpbGxfZnV0dXJlc19tYW51YWxfY29udHJhY3Rfcm9sbGluZ193ZWIiOmZhbHNlLCJraWxsX2FjdGlvbl9saXN0X2l0ZW1fY3J5cHRvX3Jlc291cmNlc193ZWIiOmZhbHNlLCJraWxsX2FjdGlvbl9saXN0X2l0ZW1fc2V0X3VwX3BheW1lbnRfbWV0aG9kX3dlYiI6ZmFsc2UsImtpbGxfYWN0aW9uX2xpc3RfaXRlbV9idWlsZF95b3VyX3dhdGNobGlzdF93ZWIiOmZhbHNlLCJraWxsX3AycF91a19ldV90cmF2ZWxfcnVsZXNfd2ViIjpmYWxzZSwia2lsbF9zdGFraW5nX3Bvc3RfYnV5X3Vwc2VsbCI6ZmFsc2UsImtpbGxfYXR0YWNoX2F1dG9maWxsX2FkZHJlc3Nfd2ViIjpmYWxzZSwia2lsbF9pbmNvbWVfdmVyaWZpY2F0aW9uX2luY3JlYXNlX2xpbWl0X3YxX3dlYiI6ZmFsc2UsImtpbGxfbWFya2V0X3N0YXRzX3BhZ2Vfd2ViX2xvIjpmYWxzZSwia2lsbF9ub3ZfMjAyNF90eHNfcGFnZV9lbXB0eV9zdGF0ZXNfd2ViIjpmYWxzZSwiZW5hYmxlX21pY2FfZGlzY2xvc3VyZXNfd2ViIjp0cnVlLCJraWxsX2NhX2ludGVyYWNfcGF5aW5fcmV2YW1wX3dlYiI6ZmFsc2UsImtpbGxfYWRkcmVzc19ldmFsdWF0b3Jfd2ViIjp0cnVlLCJraWxsX2pvaW5fcGFnZV9jb250ZW50IjpmYWxzZSwia2lsbF9wcmVkaWN0aW9uc19qb2luX3BhZ2UiOmZhbHNlLCJ0MDAyOV8yNjQ4ZjZiMSI6ZmFsc2UsInQwMDI5XzgyMzMxNjU5IjpmYWxzZSwia2lsbF9zaW1wbGVfdHJhZGVfZGV4X2J1eV9jbGllbnRfd2ViIjpmYWxzZSwia2lsbF9pZGVhbF9wbV9pbXByb3ZlbWVudF93ZWIiOmZhbHNlLCJraWxsX3NpbXBsZV90cmFkZV9kZXhfc3dhcF9jbGllbnRfd2ViIjpmYWxzZSwia2lsbF9zdXBwb3J0X3NjYW1fcXVpel92MV93ZWIiOnRydWUsImtpbGxfc3VwcG9ydF9zY2FtX3dhcm5pbmdfdjFfd2ViIjpmYWxzZSwia2lsbF9zY2FtX3Byb3RlY3Rpb25fdjFfd2ViIjpmYWxzZSwia2lsbF9yYXRfY29tbWFuZF9wYWxldHRlIjpmYWxzZSwia2lsbF9wb2FfaW1wcm92ZW1lbnRzX3dlYiI6ZmFsc2UsImtpbGxfdXNfcmVmZXJyYWxfcmVzdHJpY3Rpb25zX3dlYiI6ZmFsc2UsImtpbGxfZm9yY2VfYmFzZV9mb3JfbmV3X21hcmtldHMiOmZhbHNlLCJraWxsX3JhdF9lYXJudGFiX2RlcHJlY2F0aW9uIjpmYWxzZSwia2lsbF9jYjFfc2lnbnVwX29uY2hhaW5fcGFydG5lcl9vbmJvYXJkaW5nX3dlYiI6ZmFsc2UsImtpbGxfY2IxX3Rva2VuX3NhbGVzX3dlYiI6ZmFsc2UsImtpbGxfY2IxX3Vwc2VsbF90b2tlbl9zYWxlc19hbGxvY2F0aW9uX3dlYiI6ZmFsc2UsImtpbGxfY2IxX3Vwc2VsbF90b2tlbl9zYWxlc19kZXRhaWxfd2ViIjpmYWxzZSwia2lsbF90b2tlbl9zYWxlc19jYW5jZWxfb3JkZXJfd2ViIjpmYWxzZSwia2lsbF90b2tlbl9zYWxlc19wcm9ncmVzc19iYXJfd2ViIjp0cnVlLCJraWxsX3Rva2VuX3NhbGVzX2xvZ2dlZF9vdXRfd2ViIjpmYWxzZSwidDAwMDJfYzZjNTMyNDEiOmZhbHNlLCJ0MDAwMl82OWZhNjc0NCI6ZmFsc2UsInQwMDAyXzk4N2M0ZDYxIjpmYWxzZSwidDAwMDJfMzZkOTVkNmEiOmZhbHNlLCJ0MDAwMl8xMzNmNTc0OSI6ZmFsc2UsInQwMDAyX2M5MmI3ZjRhIjpmYWxzZSwiZW5hYmxlX2V1X3BlcnBzX2Jhbm5lcl93ZWIiOnRydWUsImtpbGxfdGltZWJveGVkX2luY2VudGl2ZV93ZWIiOmZhbHNlLCJraWxsX3VrX3JlZGVzaWduX3dlYiI6ZmFsc2UsImVuYWJsZV9zd2Nfc3Rha2luZ191cHNlbGxzX3dlYiI6dHJ1ZSwia2lsbF9zdGFraW5nX3N1bW1hcnlfZHluYW1pY19jYXJkX3dlYiI6ZmFsc2UsInQwMDAwX2U5YzE2NWNkIjpmYWxzZSwia2lsbF9hc3NldF9maWx0ZXJfc29ydF93ZWIiOmZhbHNlLCJraWxsX3BlbmRpbmdfY2R2X3ZlcmlmaWNhdGlvbiI6ZmFsc2UsInQwMDAzX2M0ZDhmOWU2IjpmYWxzZSwidDAwMjlfNzc4YWE3ZjMiOmZhbHNlLCJ0MDAyOV8xMTRlMzJlZSI6ZmFsc2UsImtpbGxfaG53aV9jb25jaWVyZ2VfY2FsZW5kbHlfd2ViIjpmYWxzZSwia2lsbF9yZXdhcmRzX2h1Yl93ZWIiOmZhbHNlLCJraWxsX2lkdl9wZXJzb25hX3Nka193ZWIiOmZhbHNlLCJraWxsX2lkdl9wZXJzb25hX2ZhY2VtYXRjaF9ldV93ZWIiOmZhbHNlLCJraWxsX3NnX2JhbmtfZGlmZmVyZW50aWF0ZWRfZGlfcm4iOmZhbHNlLCJraWxsX21pc3NpbmdfcG1fY2VsbF93ZWIiOmZhbHNlLCJraWxsX25ld19wb2xpY3lfcmVzdHJpY3Rpb25fc291cmNlX3dlYiI6ZmFsc2UsImtpbGxfcmVzdHJpY3RlZF91c2VyX2NsYWltc193ZWIiOmZhbHNlLCJraWxsX2NhbmNlbF92aXBfY2IxX3N1YnNjcmlwdGlvbl9mbG93X3dlYiI6ZmFsc2UsImtpbGxfZGVfc3Bpbl90aGVfd2hlZWxfbG9nZ2VkX291dF93ZWIiOmZhbHNlLCJraWxsX2ZyX3NwaW5fdGhlX3doZWVsX2xvZ2dlZF9vdXRfd2ViIjpmYWxzZSwia2lsbF9lc19zcGluX3RoZV93aGVlbF9sb2dnZWRfb3V0X3dlYiI6ZmFsc2UsImtpbGxfY2Ffc3Bpbl90aGVfd2hlZWxfbG9nZ2VkX291dF93ZWIiOmZhbHNlLCJraWxsX2F1X3NwaW5fdGhlX3doZWVsX2xvZ2dlZF9vdXRfd2ViIjpmYWxzZSwia2lsbF9sb3dfYWRwX25ld3NfYXJ0aWNsZXNfd2ViIjpmYWxzZSwia2lsbF9zdGFibGVjb2luX3VzZHRfY29udmVyc2lvbl9yZWJhdGUiOmZhbHNlLCJraWxsX3N0YWtpbmdfb3B0X2luX3dlYiI6ZmFsc2UsImtpbGxfaG53aV9jb25jaWVyZ2VfaWRlbnRpdHlfbmF2aWdhdGlvbl9pbnRlcmNlcHQiOmZhbHNlLCJraWxsX2hud2lfY29uY2llcmdlX2F1dG9tYXRpb25fZnVubmVsX3dlYiI6ZmFsc2UsImtpbGxfaG53aV9jb25jaWVyZ2VfY2hhdF9waWlfbWFza2luZ193ZWIiOmZhbHNlLCJraWxsX2ludHhfYm9vc3RlZF9yZXdhcmRzX3dlYiI6ZmFsc2UsImtpbGxfbGF0X2FtX29uYm9hcmRpbmdfd2ViIjpmYWxzZSwia2lsbF9kZV9nb29nbGVfc2lnbl91cF9idXR0b24iOmZhbHNlLCJraWxsX2ZpbnByb21fcmVzdHJpY3Rpb25fbW9kYWxfbWlncmF0aW9uIjp0cnVlLCJraWxsX3NpbXBsZV90cmFkZV9kZXhfc2VsbF9jbGllbnRfd2ViIjpmYWxzZSwia2lsbF9jYjFfbWVtYmVyeF9ib29zdGVkX3N0YWtpbmdfdGllcl9yZXdhcmRfd2ViIjpmYWxzZSwia2lsbF9leHBlcmllbmNlX21hbmFnZXJfd2ViIjpmYWxzZSwia2lsbF9zaWRlYmFyX2VsaWdpYmlsaXR5X2NoZWNrX3dlYiI6ZmFsc2UsImtpbGxfdGF4X2NlbnRlcl9lbGlnaWJpbGl0eV9jaGVja193ZWIiOmZhbHNlLCJraWxsX2NvaW5iYXNlX2NhcmRfZWxpZ2liaWxpdHlfY2hlY2tfd2ViIjpmYWxzZSwia2lsbF9jb3VudHJ5X2NoYW5nZV9lbGlnaWJpbGl0eV9jaGVja193ZWIiOmZhbHNlLCJraWxsX2NhX3N0YWtpbmdfYXBwcm9wcmlhdGVuZXNzX3dlYiI6ZmFsc2UsImtpbGxfcGF5bWVudF9tZXRob2RzX2ludmFsaWRhdGlvbiI6ZmFsc2UsImtpbGxfdHJ1c3RseV9idXlfZXhwb3N1cmVfd2ViIjpmYWxzZSwia2lsbF9ibGlrX2J1eV9leHBvc3VyZV93ZWIiOmZhbHNlLCJraWxsX21iX3dheV9wdF9kaXJlY3RfYnV5X2V4cG9zdXJlX3dlYiI6ZmFsc2UsImtpbGxfYnJfd2l0aGRyYXdhbF91eF9taWdyYXRpb25fd2ViIjpmYWxzZSwia2lsbF9kaXNwbGF5X3BlcnBzX2ZlZV90aWVyc193ZWIiOmZhbHNlLCJraWxsX2Fzc2V0X3RyYW5zZmVyX2luY2VudGl2ZV93ZWIiOmZhbHNlLCJ0MDAwNF85YzIwYmU4MyI6ZmFsc2UsImtpbGxfZGVwb3NpdF91c2RjX2ludG9fcG9ydGZvbGlvc193ZWIiOmZhbHNlLCJraWxsX2V4cGlyZWRfaWRfZmxvd19jdGFfZWRpdCI6ZmFsc2UsImtpbGxfdHJhZGVfbWFuYWdlbWVudF9oZWlnaHRfZXhwZXJpbWVudF93ZWIiOmZhbHNlLCJraWxsX2Z1dHVyZXNfZWxpZ2liaWxpdHlfY2hlY2tfd2ViIjpmYWxzZSwia2lsbF9hZHZhbmNlZF90cmFkZV9lbGlnaWJpbGl0eV9jaGVja193ZWIiOmZhbHNlLCJraWxsX3VzZGNfcmV3YXJkc190cmFuc2FjdGlvbnNfYnJlYWtkb3duX3dlYiI6ZmFsc2UsImtpbGxfb25jaGFpbl92ZXJpZnlfZWxpZ2liaWxpdHlfY2hlY2tfd2ViIjpmYWxzZSwia2lsbF93ZWIzX3dhbGxldF9lbGlnaWJpbGl0eV9jaGVja193ZWIiOmZhbHNlLCJraWxsX3ZhdWx0X2VsaWdpYmlsaXR5X2NoZWNrX3dlYiI6ZmFsc2UsImtpbGxfbG9jYWxfY3VycmVuY2llc19jYXJkc19ldSI6ZmFsc2UsImtpbGxfaW5faG9tZV9wYWdlX3dlYiI6ZmFsc2UsImluX3JlZGlyZWN0aW9uX2tpbGxlZCI6ZmFsc2UsImVuYWJsZV9sZWFybmluZ19yZXdhcmRzX3JlZGlyZWN0X3dlYiI6dHJ1ZSwia2lsbF90aWZfb3B0X2JyYWNrZXRfd2ViIjpmYWxzZSwia2lsbF9sZW5kX3N1bW1hcnlfd2ViIjpmYWxzZSwia2lsbF9sZW5kX2Fzc2V0X3N1bW1hcnlfd2ViIjpmYWxzZSwia2lsbF9kZWZpX2xlbmRfZGVwb3NpdF9mbG93X3dlYiI6ZmFsc2UsImtpbGxfZGVmaV9sZW5kX3dpdGhkcmF3X2Zsb3dfd2ViIjpmYWxzZSwia2lsbF9kZWZpX2xlbmRfY2xhaW1fZmxvd193ZWIiOmZhbHNlLCJraWxsX2RlZmlfbGVuZF9mbG93c193ZWIiOmZhbHNlLCJ0MDAxMV85YjRlMmE3MyI6ZmFsc2UsInQwMDExXzVmOGUyYTE0IjpmYWxzZSwia2lsbF9kZXBvc2l0c19zY2hlZHVsZWRfbWFpbnRlbmFuY2Vfd2ViIjpmYWxzZSwia2lsbF93aXRoZHJhd2Fsc19zY2hlZHVsZWRfbWFpbnRlbmFuY2Vfd2ViIjpmYWxzZSwia2lsbF9hdGlfb2ZmZXJfYmFubmVyX3dlYiI6ZmFsc2UsImtpbGxfcDJwX2luZGlhX3RyYXZlbF9ydWxlc193ZWIiOmZhbHNlLCJraWxsX3NlbmRfY29udGFjdHNfZWxpZ2liaWxpdHlfY2hlY2tfd2ViIjpmYWxzZSwia2lsbF9hdGlfaW50ZXJydXB0aW9uX3NjcmVlbiI6ZmFsc2UsImtpbGxfYWR2YW5jZWRfdmlwX251eF9iYWNrZmlsbF93ZWIiOmZhbHNlLCJraWxsX3NpbXBsZV90cmFkZV9mZWVfc3BsaXRfd2ViIjpmYWxzZSwiZW5hYmxlX25ldHdvcmtfcmVzcG9uc2VfZGVidWdnZXJfd3d3Ijp0cnVlLCJraWxsX2F0aV9idXlfaW5wdXRfYmFubmVyX3JuIjpmYWxzZSwiZW5hYmxlX21pY2FfYXNzZXRfZGlzY2xvc3VyZXNfd2ViIjpmYWxzZSwia2lsbF9pbnZpdGVfY29udHJvbHNfdjJfcm4iOmZhbHNlLCJraWxsX3VzZGNfYXB5X2Rpc2NyZXBhbmN5X3YyX3dlYiI6ZmFsc2UsImtpbGxfY29pbmJpel9mZWF0dXJlc193ZWIiOmZhbHNlLCJraWxsX2NvaW5iaXpfcGxhaWRfb3ZlcnJpZGVfd2ViIjpmYWxzZSwia2lsbF9wbXNfY29udHJvbF9wbGFuZV9yb2xsb3V0X2J1eV93ZWIiOmZhbHNlLCJraWxsX3Btc19jb250cm9sX3BsYW5lX3JvbGxvdXRfZGVwb3NpdF93ZWIiOmZhbHNlLCJ0MDAyNl84NjQwOThiNiI6ZmFsc2UsInQwMDM3XzFkYzEwOTY4Ijp0cnVlLCJraWxsX21heV8yMDI1X21lbW9fd2FybmluZ190cmF5X3dlYiI6ZmFsc2UsImtpbGxfcDJwX3BheV9saW5rX3dlYiI6ZmFsc2UsImtpbGxfanVuXzIwMjVfd2Vla2x5X3BheW91dHNfd2ViIjpmYWxzZSwia2lsbF9ncmFjZWZ1bF9kZWdyYWRhdGlvbl9leHBhbnNpb25fd3d3IjpmYWxzZSwia2lsbF9obndpX2NvbmNpZXJnZV9nb29nbGVfbWVldF9pbnRlZ3JhdGlvbl93ZWIiOmZhbHNlLCJraWxsX3JldGFpbF93ZWJfY2hhdCI6dHJ1ZSwia2lsbF9hc3NldF9sZW5kX3N1bW1hcnlfd2ViIjpmYWxzZSwia2lsbF9yZXN0cmljdGVkX3BtX3NlbGZfc2VydmVfYnV5X3dlYiI6ZmFsc2UsImtpbGxfcmVzdHJpY3RlZF9wbV9zZWxmX3NlcnZlX2RlcG9zaXRfd2ViIjpmYWxzZSwiZW5hYmxlX2NyZWRpdF9jYXJkX3dhaXRsaXN0X21hcmtldGluZ19yb3V0ZV93ZWIiOnRydWUsImtpbGxfcmF0X29yZGVyc19ibG90dGVyX292ZXJoYXVsX3dlYiI6ZmFsc2UsImtpbGxfZGVyaXZhdGl2ZXNfcG9zaXRpb25zX2Jsb3R0ZXJfcmV2YW1wX3dlYiI6ZmFsc2UsImtpbGxfcmVjdXJyaW5nX2J1eV9lbnRyeV9wb2ludHNfd2ViIjpmYWxzZSwia2lsbF9yYXRfc3BvdF9hc3NldHNfYmxvdHRlcl93ZWIiOmZhbHNlLCJraWxsX3JhdF9kZXJpdmF0aXZlc19hc3NldHNfYmxvdHRlcl93ZWIiOmZhbHNlLCJraWxsX2FjY291bnRfc2VsZWN0b3JfdXBzZWxsX3N1cmZhY2Vfd2ViIjpmYWxzZSwia2lsbF9jb2luYml6X3BheW1lbnRzX3dlYiI6ZmFsc2UsImtpbGxfY29pbmJpel9pbnZvaWNpbmdfd2ViIjpmYWxzZSwia2lsbF9jb2luYml6X3BheW1lbnRfbGlua3Nfd2ViIjpmYWxzZSwia2lsbF9taWNhX3NpbXBsZV90cmFkZV9wYXNzYmFja19iZW5lZml0X3dlYiI6ZmFsc2UsImtpbGxfcmVmZXRjaF90cmFkZV9pbnB1dF9kYXRhX3dlYiI6ZmFsc2UsImtpbGxfbXVsdGlfdXNlcl93d3ciOmZhbHNlLCJraWxsX3VuaWZpZWRfb25ib2FyZGluZ19yaXNrX2Rpc2Nsb3VzZXIiOmZhbHNlLCJraWxsX3VzZGNfYXB5X2Rpc2NyZXBhbmN5X3YyX2xpZmV0aW1lX3Jld2FyZHNfd2ViIjpmYWxzZSwia2lsbF9vcmRlcl9mb3JtX251bWVyaWNfZmllbGRfZ3JvdXBfc2VwYXJhdG9yIjpmYWxzZSwia2lsbF9nZW5pZV9jaGF0Ym90IjpmYWxzZSwia2lsbF91bmlmaWVkX29uYm9hcmRpbmdfdmlydHVhbF9hY2NvdW50X2FncmVlbWVudCI6ZmFsc2UsImtpbGxfdW5pZmllZF9vbmJvYXJkaW5nX2NvbnNlbnQiOmZhbHNlLCJraWxsX2RleF9zZW5kX3dlYiI6ZmFsc2UsImtpbGxfZmlhdF9pbnRlcmVzdF9ybiI6ZmFsc2UsImtpbGxfZnNjc19pY29uX3JuIjp0cnVlLCJraWxsX3JhdF9tZXJnZV90YWJzX3hsIjpmYWxzZSwia2lsbF9tYXJrZXRfc2VsZWN0b3JfZGVza3RvcF92NCI6ZmFsc2UsImtpbGxfanVseV8yMDI1X2xpbWl0X29yZGVyX3BhcnRpYWxfZmVlc193ZWIiOmZhbHNlLCJraWxsX3VzZGNfYXB5X2Rpc2NyZXBhbmN5X3YyX2Vucm9sbG1lbnRfd2ViIjpmYWxzZSwia2lsbF9qdWxfMjAyNV9jYXNoX2JyZWFrZG93bl90cmF5X3dlYiI6ZmFsc2UsImtpbGxfZGV4X2Fzc2V0X3N3ZWVwaW5nX3dlYiI6ZmFsc2UsInQwMDIxXzY0YjRjNjA3IjpmYWxzZSwia2lsbF9zdGFraW5nX2dyb3d0aF9jYV9leHBlcmltZW50X3dlYiI6ZmFsc2UsImtpbGxfanVsXzIwMjVfZGV4X2RlYml0IjpmYWxzZSwia2lsbF9qdWxfMjAyNV9kZXhfYWNoIjpmYWxzZSwia2lsbF9iYWxhbmNlX2Vycm9yX2Jhbm5lcl9lcnJvcl9yYXRlX3dlYiI6ZmFsc2UsImtpbGxfcmFpc2Vfd2ViIjpmYWxzZSwidDAwMjdfZTRmMmE4YjEiOmZhbHNlLCJ0MDAyN18wZGQ0OTllZiI6dHJ1ZSwia2lsbF9iYWxhbmNlX2NoYXJ0X25ldF9pbnZlc3RlZF93ZWIiOmZhbHNlLCJraWxsX2xpdmVfaG9tZV9iYWxhbmNlX2NoYXJ0X3dlYiI6ZmFsc2UsImtpbGxfcmF0X3JlZHVjZV9vbmx5X3dlYiI6ZmFsc2UsImtpbGxfYXVnXzIwMjVfcmF0X3BvcnRmb2xpb19wZXJmb3JtYW5jZV90YWJfd2ViIjpmYWxzZSwia2lsbF9kZXhfZ3RtX2ZzdG9fZGVlcGxpbmtfd2ViIjpmYWxzZSwia2lsbF9zaW1wbGVfcHJlZGljdGlvbnNfd2ViIjpmYWxzZSwiZW5hYmxlX2xvZ2dlZF9vdXRfd2ViX2RleCI6dHJ1ZSwia2lsbF9zaG93X3BlbmRpbmdfdmVyaWZpY2F0aW9uX3Btc193ZWIiOmZhbHNlLCJraWxsX3ByaWNlX3ByZWRpY3Rpb25fcGFnZXNfd2ViIjpmYWxzZSwia2lsbF9kZWZhdWx0X3BheW1lbnRfZGV4X3dlYiI6ZmFsc2UsImtpbGxfZGVjb2Rlcl9sb2dnZWRfaW4iOmZhbHNlLCJraWxsX3NlcGFfZGlyZWN0X2RlYml0X2J1eV9leHBvc3VyZV93ZWIiOmZhbHNlLCJraWxsX2RlYml0X2NhcmRfc3ByZWFkX3BlcmNlbnRhZ2Vfd3d3IjpmYWxzZSwia2lsbF91b2JfY3VzdG9tZXJfY2F0ZWdvcml6YXRpb24iOmZhbHNlLCJraWxsX2RleF9jc2F0X3N1cnZleV93ZWIiOmZhbHNlLCJraWxsX3RyYW5zZmVyX3NldHRpbmdzX3dlYiI6ZmFsc2UsImtpbGxfdW5pZmllZF9vbmJvYXJkaW5nX2V4dGVuZGVkX2NkZCI6ZmFsc2UsImtpbGxfc2ltcGxlX3RyYWRlX2Z1dHVyZXNfbG9uZ193ZWIiOmZhbHNlLCJraWxsX3NpbXBsZV90cmFkZV9mdXR1cmVzX3Nob3J0X3dlYiI6ZmFsc2UsImtpbGxfc2ltcGxlX3RyYWRlX2Z1dHVyZXNfd2ViIjpmYWxzZSwia2lsbF91bmlmaWVkX29uYm9hcmRpbmdfbm90aWZpY2F0aW9uX3ByZWZlcmVuY2VzIjpmYWxzZSwia2lsbF91bmlmaWVkX29uYm9hcmRpbmdfdG9zIjpmYWxzZSwia2lsbF9iYWxhbmNlX3N1bW1hcnlfbWFuYWdlX3VuYXZhaWxhYmxlX3dlYiI6ZmFsc2UsImtpbGxfcmVjZWl2ZV9hY2NvdW50c19mb3JfZmxvd192Ml93ZWIiOmZhbHNlLCJraWxsX3VuaWZpZWRfb25ib2FyZGluZ19sZWdhbF9lbnRpdHkiOmZhbHNlLCJraWxsX2RvYl9maWVsZF9zZXBhcmF0ZV93ZWIiOmZhbHNlLCJraWxsX3BvcnRmb2xpb19iYWxhbmNlX2xhc3RfdXBkYXRlZF90aW1lc3RhbXBfd3d3IjpmYWxzZSwia2lsbF9wcmVfY2hhbmdlX2NiMV91c2RjX2dhdGluZ192Ml93ZWIiOmZhbHNlLCJraWxsX2NiMV91c2RjX2dhdGluZ193ZWIiOmZhbHNlLCJraWxsX2NiMV91c2RjX2dhdGluZ19yZXdhcmRfYXB5X21lc3NhZ2VfZXhwb3N1cmVfZmlyaW5nX3dlYiI6ZmFsc2UsImtpbGxfdXNkY19jYnNnX2FpX3JlZHVjZWRfc3ByZWFkX3dlYiI6ZmFsc2UsImtpbGxfdXNlcl9sZXZlbF9iYWxhbmNlX3N1bW1hcnlfY2xlYW51cF93d3ciOmZhbHNlLCJraWxsX3VuaWZpZWRfb25ib2FyZGluZ19pZHZfZm0iOmZhbHNlLCJraWxsX29jdF8yMDI1X3JhdF90cmFkZV9oaXN0b3J5X2Jsb3R0ZXJfd2ViIjpmYWxzZSwia2lsbF9vY3RfMjAyNV9yYXRfcGVyZm9ybWFuY2VfZ2FpbnNfc2VjdGlvbl9ibG90dGVyc193ZWIiOmZhbHNlLCJraWxsX29jdF8yMDI1X3JhdF9wZXJmb3JtYW5jZV9kZXJpdmF0aXZlc19nYWluc193ZWIiOmZhbHNlLCJraWxsX2FwcGxlX3BheV91a19lZWFfZGVwb3NpdCI6ZmFsc2UsImtpbGxfYXBheV9tY2NfZW5hYmxlZF93ZWIiOmZhbHNlLCJlbmFibGVfY29kZV95ZWxsb3dfbTJfd2ViIjp0cnVlLCJlbmFibGVfdHJlbmRpbmdfMWhfcmVzb2x1dGlvbl93ZWIiOnRydWUsImtpbGxfZnV0dXJlc19vbmJvYXJkaW5nX3RheF9pbnB1dF9hdXRvZm9ybWF0X3d3dyI6ZmFsc2UsImtpbGxfaG53aV9jb25jaWVyZ2VfY3JlYXRlX25ld19jb252ZXJzYXRpb25fd2l0aF9tZXNzYWdlX3dlYiI6ZmFsc2UsImtpbGxfaW5jZW50aXZlX2ZyYW1ld29ya193ZWIiOmZhbHNlLCJraWxsX2NiMV9mZWVfc2F2aW5nc19jYWxjdWxhdGlvbl93ZWIiOmZhbHNlLCJraWxsX29yZGVyX2Zvcm1fZGVjaW1hbF9wcmVjaXNpb25fY2hlY2tfd2ViIjp0cnVlLCJraWxsX3JlYXV0aGVudGljYXRlX25hdmJhcl93ZWIiOmZhbHNlLCJraWxsX3ByZWRpY3Rpb25fZXZlbnRfZGV0YWlsc19saXZlX2RhdGFfd2ViIjpmYWxzZSwia2lsbF9wcmVkaWN0aW9uX2V4cGxvcmVfbGl2ZV9kYXRhX3dlYiI6ZmFsc2UsImtpbGxfc2VhcmNoX2Rvd25yYW5rX2dhdGluZ193ZWIiOmZhbHNlLCJraWxsX3N0YWtlX3dyYXBfcm4iOmZhbHNlLCJraWxsX2ludHhfY291bnRyeV9jaGFuZ2VfYmxvY2tlZF93ZWIiOmZhbHNlLCJraWxsX25vdl8yMDI1X21vbnNvb25fb3JkZXJfYm9va19yZWNlbnRfdHJhZGVzX3JldmFtcCI6ZmFsc2UsImtpbGxfY2FkX3dpcmVfZGVwb3NpdF9leHBvc3VyZV93ZWIiOmZhbHNlLCJraWxsX3NwZWN1bGF0b3JfaW5jZW50aXZlc193ZWIiOmZhbHNlLCJraWxsX3VuaWZpZWRfcmVmZXJyYWxzX3dlYiI6ZmFsc2UsImtpbGxfZXF1aXR5X2RldGFpbHNfcGFnZSI6ZmFsc2UsImtpbGxfc2ltcGxlX2Rlcml2YXRpdmVzX29yZGVyX2Zvcm1fbWFya2V0c193ZWIiOmZhbHNlLCJraWxsX3NlbmRfdHJhbnNmZXJfc2V0dGluZ3Nfd2ViIjpmYWxzZSwia2lsbF9vY3RfMjAyNV9kZXhfaW50bF9maWF0Ijp0cnVlLCJlbmFibGVfd2F0Y2hsaXN0X2xpdmVfcHJpY2VzX3dlYiI6dHJ1ZSwia2lsbF9jYXNoX2RlcG9zaXRfaW5jZW50aXZlX3dlYiI6ZmFsc2UsInQwMDI1XzRmZWRiMGFkIjpmYWxzZSwia2lsbF9wcmljZV9zdWJzY3JpcHRpb25fZGV4X2NoZWNrX3dlYiI6ZmFsc2UsImtpbGxfYXNzZXRfcHJpY2Vfc3Vic2NyaXB0aW9uX2Nicm5fd2ViIjpmYWxzZSwia2lsbF9oaWRlX3dhdGNobGlzdF9zdGFyX3dlYiI6dHJ1ZSwia2lsbF9pbnRlcmFjX2Vycm9yX2ltcHJvdmVtZW50X3dlYiI6ZmFsc2UsImtpbGxfc3Rha2luZ19zdW1tYXJ5X2luZWxpZ2libGVfd2ViIjpmYWxzZSwia2lsbF9hc3NldF9zdGFraW5nX3N1bW1hcnlfaW5lbGlnaWJsZV93ZWIiOmZhbHNlLCJraWxsX3N0YWtpbmdfbnV4X3NjcmVlbl92Ml93d3ciOmZhbHNlLCJraWxsX3N0YWtpbmdfbnV4X2Rpc2NsYWltZXJfZGVlcGxpbmtfd2ViIjpmYWxzZSwia2lsbF9zdGFraW5nX2Vycm9yX2Jhbm5lcl92Ml93ZWIiOmZhbHNlLCJ0MDAwMF8yM2VjZGZmMyI6ZmFsc2UsInQwMDAwXzk1YTg2MmRlIjpmYWxzZSwia2lsbF9jYjFfYnJhbmRpbmdfaW5fdHJhbnNhY3Rpb25fc2NyZWVuX3dlYiI6dHJ1ZSwia2lsbF9pbnN0YW50X3Vuc3Rha2luZ19kZWZhdWx0X2F2YWlsYWJsZV93ZWIiOmZhbHNlLCJraWxsX2luc3RhbnRfdW5zdGFraW5nX2Jhbm5lcl93ZWIiOmZhbHNlLCJraWxsX3N0YWtpbmdfaXNfdHJhZGFibGVfY2hlY2tfcm4iOmZhbHNlLCJraWxsX2luc3RhbnRfdW5zdGFraW5nX2VsaWdpYmxlX3ZhbGlkYXRpb25fd2ViIjpmYWxzZSwidDAwMDBfMmQxOTlhZGIiOmZhbHNlLCJ0MDAwMF9iN2M0ZTFkOSI6ZmFsc2UsInQwMDAwXzdlMmI5MWEzIjpmYWxzZSwia2lsbF9hc3NldF9yZXdhcmRfY2VudGVyX3dlYiI6ZmFsc2UsImtpbGxfY2FfaG9saWRheV9yZWZlcnJhbF9yZXdhcmRzX3dlYiI6ZmFsc2UsImtpbGxfcmVtb3ZlX3ZhbGlkX2NoZWNrX2VkcF93ZWIiOmZhbHNlLCJraWxsX2NhX2lkdl9pbXByb3ZlbWVudF93ZWIiOmZhbHNlLCJraWxsX2d1aWRhbmNlX3BvbGxpbmdfc2NyZWVuX3VwZGF0ZV93ZWIiOmZhbHNlLCJraWxsX3ByZWRpY3Rpb25fZXZlbnRfZGV0YWlsc19jaGFydF9yZWZyZXNoX3dlYiI6ZmFsc2UsImtpbGxfcHJlZGljdGlvbl9ldmVudF9kZXRhaWxzX2NoYXJ0X3JlZnJlc2hfd2ViX2xvZ2dlZF9vdXQiOmZhbHNlLCJraWxsX3ByZWRpY3Rpb25fZXZlbnRfZGV0YWlsc19saXZlX2RhdGFfd2ViX2xvZ2dlZF9vdXQiOmZhbHNlLCJraWxsX2NvaW5iaXpfYmF0Y2hfcGF5b3V0c193ZWIiOmZhbHNlLCJraWxsX2xpdmVfdHJhbnNhY3Rpb25zIjpmYWxzZSwia2lsbF9tYl93YXlfcHRfcHVsbF9kZXBvc2l0X2V4cG9zdXJlX3dlYiI6ZmFsc2UsImtpbGxfcmlza19zZWxmX3NlcnZlX2Zsb3dfd2ViIjpmYWxzZSwia2lsbF9zZWFyY2hfaW1wcmVzc2lvbnNfd2ViIjpmYWxzZSwia2lsbF9zaW1wbGVfcHJlZGljdGlvbnNfdHJhZGVfd2ViIjpmYWxzZSwia2lsbF9jb3N0X2Jhc2lzX21ldGhvZF9vcmRlcl9zZWxlY3Rfd2ViIjpmYWxzZSwia2lsbF9lcXVpdGllc19iYWxhbmNlX3N1bW1hcnlfcmVmcmVzaF93ZWIiOmZhbHNlLCJ0MDAwM184N2Q4MDEzZiI6ZmFsc2UsInQwMDAzX2I5MDJmOWU0IjpmYWxzZSwia2lsbF9wcmVkaWN0aW9uc19iYWxhbmNlX3N1bW1hcnlfcmVmcmVzaF93ZWIiOmZhbHNlLCJraWxsX2hud2lfY29uY2llcmdlX2NyZWF0ZV9jb252b19vbl9lcnJvcl93ZWIiOmZhbHNlLCJraWxsX29jdF8yMDI1X2NhcmRfdW5pZmljYXRpb25fd3d3IjpmYWxzZSwia2lsbF9lZWFfbW9vbl9zaG90X3BoYXNlX3R3b19ybiI6ZmFsc2UsImtpbGxfZXF1aXR5X2xpdmVfYmFsYW5jZV93ZWIiOmZhbHNlLCJraWxsX2VxdWl0eV9saXZlX3ByaWNlX3dlYiI6ZmFsc2UsImtpbGxfbG93X2Rlcml2YXRpdmVzX2RldGFpbF9wYWdlIjpmYWxzZSwia2lsbF9zb3VyY2VfYXNzZXRfc2VsZWN0b3JfY2VsbF93d3ciOmZhbHNlLCJlbmFibGVfcGVyZm9ybWFuY2VfdGFiX2Jhbm5lcl93ZWIiOmZhbHNlLCJraWxsX2FpX2ZpbGVfdXBsb2FkX3dlYiI6ZmFsc2UsImtpbGxfcG9zdF9vbmJvYXJkaW5nX2d1aWRhbmNlX2VkcF93ZWIiOmZhbHNlLCJraWxsX3NjYW1fcHJvdGVjdGlvbl9jaGF0X3dlYiI6dHJ1ZSwidDAwMzdfMmYzcTR3NWEiOmZhbHNlLCJ0MDAzN19hNmYxYjRkMyI6ZmFsc2UsImtpbGxfY3J5cHRvX3NlbmRfbGltaXRfc3NfZmxvd193ZWIiOmZhbHNlLCJraWxsX251eF9wYWNrc193ZWIiOmZhbHNlLCJraWxsX3Rva2VuX3NsdWdfcmVkaXJlY3Rfd3d3IjpmYWxzZSwia2lsbF9jYjFfc2lnbnVwX3BsYW5fcmVjb21tZW5kYXRpb25fd2ViIjpmYWxzZSwidDAwMTRfOWM0ZjdhMjEiOmZhbHNlLCJ0MDAxNF9mM2E4YzI5MSI6ZmFsc2UsInQwMDE0X2NjMjcyZTdlIjpmYWxzZSwidDAwMTRfYjhkM2U3YTEiOmZhbHNlLCJ0MDAxNF9kYjdkYWJhZiI6ZmFsc2UsInQwMDE0XzNvb2psdWRqIjpmYWxzZSwidDAwMTRfYzAzNTcwYzciOmZhbHNlLCJ0MDAxNF84OGVhOTgwZiI6ZmFsc2UsInQwMDE0X2EzYzdlMWI5IjpmYWxzZSwidDAwMTRfZTZhODEwNjciOmZhbHNlLCJ0MDAxNF83NWVlNmJlZCI6ZmFsc2UsInQwMDE0X2EzZTkxZDcyIjpmYWxzZSwidDAwMTZfNmRjM2QwMDYiOmZhbHNlLCJraWxsX2hvbGRfY2FzaF9lYXJuX2J0Y193ZWIiOmZhbHNlLCJraWxsXzEweF92ZWxvY2l0eV92MV93ZWIiOmZhbHNlLCJraWxsX2Z1dHVyZXNfdW5pZmllZF9zZWxlY3Rvcl93ZWIiOmZhbHNlLCJlbmFibGVfbWFya2V0X2RhdGFfZGVyaXZhdGl2ZXMiOnRydWUsInQwMDA5XzdhZDEyNDRhIjpmYWxzZSwia2lsbF9wcmVkaWN0aW9uX21hcmtldHNfcG9zaXRpb25fbGl2ZV9kYXRhX3dlYiI6ZmFsc2UsImtpbGxfbnV4X2NhcmRfcGVuZGluZ19zdGF0ZV93ZWIiOmZhbHNlLCJraWxsX2Nvb2tpZV9iYW5uZXJfbWFya2V0aW5nX3dlYiI6ZmFsc2UsImtpbGxfYmFsYW5jZV9lcnJvcl9iYW5uZXJfZGVkdXBpbmdfd2ViIjpmYWxzZSwia2lsbF9jb29raWVfYmFubmVyX2FwcF93ZWIiOmZhbHNlLCJraWxsX3AycF9icmF6aWxfdHJhdmVsX3J1bGVzX3dlYiI6ZmFsc2UsImtpbGxfamFuXzIwMjVfdHhuc19wcm9kdWN0X2ZpbHRlcl93ZWIiOmZhbHNlLCJraWxsX2phbl8yMDI1X2NyeXB0b190eG5zX3Byb2R1Y3RfZmlsdGVyX3dlYiI6ZmFsc2UsImtpbGxfamFuXzIwMjVfY2FzaF90eG5zX3Byb2R1Y3RfZmlsdGVyX3dlYiI6ZmFsc2UsImtpbGxfamFuXzIwMjVfc3RvY2tzX3R4bnNfcHJvZHVjdF9maWx0ZXJfd2ViIjpmYWxzZSwia2lsbF9qYW5fMjAyNV9wcmVkaWN0aW9uc190eG5zX3Byb2R1Y3RfZmlsdGVyX3dlYiI6ZmFsc2UsImtpbGxfamFuXzIwMjVfZGVyaXZhdGl2ZXNfdHhuc19wcm9kdWN0X2ZpbHRlcl93ZWIiOmZhbHNlLCJraWxsX3ByZWRpY3Rpb25fbWFya2V0c190cmFuc2FjdGlvbnNfbGl2ZV9kYXRhX3dlYiI6ZmFsc2UsImtpbGxfaW5kaWFfaW5yX2Fzc2V0X3Jlc3RyaWN0aW9uX3dlYiI6ZmFsc2UsImtpbGxfcm9sbGluZ19udW1iZXJzX3dlYiI6ZmFsc2UsImtpbGxfZGViaXRjYXJkX2xvY2tfdW5sb2NrX2NhcmRfd2ViIjpmYWxzZSwia2lsbF9kZWJpdGNhcmRfc2hvd19udW1iZXJzX3dlYiI6ZmFsc2UsImtpbGxfZGViaXRjYXJkX2FjdGl2YXRlX2NhcmRfd2ViIjpmYWxzZSwia2lsbF9kZWJpdGNhcmRfY2xvc2VfYWNjb3VudF93ZWIiOnRydWUsImtpbGxfZGViaXRjYXJkX3JlcGxhY2VfY2FyZF93ZWIiOmZhbHNlLCJraWxsX2RlYml0Y2FyZF9vcmRlcl9waHlzaWNhbF9jYXJkX3dlYiI6ZmFsc2UsImtpbGxfZGViaXRjYXJkX2NoYW5nZV9zcGVuZGFibGVfYXNzZXRfd2ViIjpmYWxzZSwia2lsbF9kZWJpdGNhcmRfdHJhbnNhY3Rpb25zX3dlYiI6ZmFsc2UsImtpbGxfZGViaXRjYXJkX3Jld2FyZHNfd2ViIjpmYWxzZSwia2lsbF9kZWJpdGNhcmRfYWNjb3VudF9tYW5hZ2VtZW50X3dlYiI6ZmFsc2UsImtpbGxfZGViaXRjYXJkX21hbmFnZV9waW5fd2ViIjpmYWxzZSwia2lsbF91cGRhdGVkX25ldHdvcmtfaWNvbl93ZWIiOmZhbHNlLCJraWxsX3lpZWxkX2NlbnRlcl9jb25maWdfd2ViIjpmYWxzZSwia2lsbF9zaW1wbGVfZGVyaXZhdGl2ZXNfZm9ybV9yZWZhY3Rvcl93ZWIiOmZhbHNlLCJraWxsX3ByZWRpY3Rpb25fZmlhdF90cmFkaW5nX3dlYiI6ZmFsc2UsImtpbGxfYXJjX3N0YWtpbmdfaG9tZV93ZWIiOmZhbHNlLCJraWxsX2dxbF9wcm92aWRlcl9mb3JfdW9iIjpmYWxzZSwia2lsbF9ndWlkYW5jZV90cnlfYWdhaW5fY3RhIjpmYWxzZSwia2lsbF9pbmRpYV92ZW5kb3JfaWR2X2Zsb3dfd2ViIjpmYWxzZSwidDAwMTdfZTlkNGM4ZjIiOmZhbHNlLCJraWxsX3ByZWRpY3Rpb25faW5wdXRfbG9hZGluZ193ZWIiOmZhbHNlLCJ0MDAxMl84YmYyNGI1ZiI6dHJ1ZSwidDAwMTJfODUwMzdiOTgiOnRydWUsInQwMDEyXzVkMWFkY2QxIjp0cnVlLCJ0MDAxMl9mNjBmOWQ0YSI6ZmFsc2UsInQwMDAzXzJjMjI2ZTBhIjpmYWxzZSwidDAwMDNfMWZiN2RhNDMiOmZhbHNlLCJ0MDAwM18yZWM2Y2E5YyI6ZmFsc2UsInQwMDAzXzUyOWI0MDMwIjpmYWxzZSwia2lsbF9wcmVkaWN0aW9uX3Bvc2l0aW9uX2xpbWl0X3RpZXJfd2ViIjpmYWxzZSwidDAwMDNfZDllNGYxYTciOmZhbHNlLCJ0MDAwMl8yZGI5ZWIwNiI6ZmFsc2UsInQwMDAyX2ZlNTlhYmRjIjpmYWxzZSwidDAwMDJfNmUzNDljMTEiOmZhbHNlLCJ0MDAxN183YjNmOWMyYSI6ZmFsc2UsInQwMDE3X2Y4ZTBmNGI5IjpmYWxzZSwidDAwMDVfOWE4YjkwMWYiOnRydWUsInQwMDA1XzdhMzA1OGJkIjpmYWxzZSwidDAwMDVfMGQ4NGFiMDYiOmZhbHNlLCJ0MDAwNV84NmEwNjY1YSI6ZmFsc2UsInQwMDA1XzQzMTZmODI3IjpmYWxzZSwidDAwMDVfZTRiOWExZDciOmZhbHNlLCJ0MDAwNV9kODI3OTkzYiI6ZmFsc2UsInQwMDA1XzA2Y2U1YTZhIjpmYWxzZSwidDAwMDVfMzcxODk0YjUiOmZhbHNlLCJ0MDAwNV81ZjJmMzZiMyI6ZmFsc2UsInQwMDA1X2VhYWZkMjU4IjpmYWxzZSwidDAwMDVfNjM4ZDdmNjkiOmZhbHNlLCJ0MDAwNV8wYTNhZGQxZiI6ZmFsc2UsInQwMDA5X2YzYTFiNmM4IjpmYWxzZSwidDAwMDlfYzdmM2E4ZDMiOmZhbHNlLCJ0MDAwOV81ZDVmMzc0MyI6ZmFsc2UsInQwMDA5Xzg3MDE2NjE1IjpmYWxzZSwidDAwMDlfM2I2NjRjYzciOmZhbHNlLCJ0MDAwOV81OGM2ZGU0MSI6ZmFsc2UsInQwMDE5X2EwOWViZTMzIjpmYWxzZSwidDAwMDNfMzFlNmU2NzYiOmZhbHNlLCJ0MDAxMl81OWU0NzhhNSI6ZmFsc2UsInQwMDI4XzBiNjFmNGE5IjpmYWxzZSwidDAwMjhfMjNkNzViN2YiOmZhbHNlLCJ0MDAyOF8yNmVhZmFjYSI6ZmFsc2UsInQwMDI4XzBhY2U2ODA2Ijp0cnVlLCJ0MDAyOF85MTMwOWM0ZSI6ZmFsc2UsInQwMDI4X2NiMWUwZjQ2IjpmYWxzZSwidDAwMjhfODFiZDc5MmIiOmZhbHNlLCJ0MDAyOF9mZmQ5M2ZiOCI6ZmFsc2UsInQwMDI4XzVjMTliNGRlIjpmYWxzZSwidDAwMjFfYTc0MzM3NzUiOmZhbHNlLCJ0MDAwOF9lYjRmN2EyYyI6ZmFsc2UsInQwMDA4Xzk4Y2RmYzUxIjpmYWxzZSwidDAwMDhfM2QwOWQ4MmEiOmZhbHNlLCJ0MDAwOF9kMzgwMzljYyI6dHJ1ZSwidDAwMDhfMWE3ZTRlZTEiOmZhbHNlLCJ0MDAwOF81MDBkM2VjOCI6ZmFsc2UsInQwMDA4X2U3ZjNhMWI1IjpmYWxzZSwidDAwMDhfMGUyMGIwODciOmZhbHNlLCJ0MDAwOF82ODg1NmNlOSI6ZmFsc2UsInQwMDA4X2Y1MTlhM2FjIjpmYWxzZSwidDAwMDJfN2UzYTljNGIiOmZhbHNlLCJ0MDAxNV9iYmFhMTEzMiI6ZmFsc2UsInQwMDE1XzJmMjAzODZlIjpmYWxzZSwidDAwMTVfY2Q3MDViNDgiOmZhbHNlLCJ0MDAxNV9iMzBkZmNhZSI6ZmFsc2UsInQwMDE1XzMyN2RiZTBkIjpmYWxzZSwidDAwMjlfZTFmMmEzYjQiOnRydWUsInQwMDI5XzBiMGEwN2Q4Ijp0cnVlLCJ0MDAyOV9kNmJmZGNiMiI6ZmFsc2UsInQwMDI5XzUyYjI0ODUxIjpmYWxzZSwidDAwMDlfZDRlN2YxYTIiOmZhbHNlLCJ0MDAxMl8wODZmM2I0MiI6ZmFsc2UsInQwMDEyXzA5YWYzN2RjIjpmYWxzZSwidDAwMTJfOTQxMTRhOGIiOmZhbHNlLCJ0MDAxOV8yNzZjMDhmZCI6ZmFsc2UsInQwMDE5XzZlZGFkNTg3IjpmYWxzZSwidDAwMTlfYzRkMWUyZjMiOmZhbHNlLCJ0MDAxOV9hNWI2YzdkOCI6ZmFsc2UsInQwMDE5X2YzODUyMmE5IjpmYWxzZSwidDAwMTlfZDYyM2ZlOWQiOmZhbHNlLCJ0MDAzMF9iNDMzYjdmOSI6ZmFsc2UsInQwMDAzX2E2MDIwMTZmIjpmYWxzZSwidDAwMDVfNzcyZDNlOWUiOmZhbHNlLCJ0MDAwNV8wYzk1NjRlNSI6ZmFsc2UsInQwMDA1X2IzZDllMWE0IjpmYWxzZSwidDAwMDVfYzdlNGE5YjIiOmZhbHNlLCJ0MDAwNV9kM2U3ZjFhOCI6ZmFsc2UsInQwMDA1X2M5YTJiNGU2IjpmYWxzZSwidDAwMDVfZWExMDNiMmEiOmZhbHNlLCJ0MDAwNV9kYzdmNWVhNiI6dHJ1ZSwidDAwMDVfOWRhZDE5NWUiOmZhbHNlLCJ0MDAxN19iM2M5YTFmNSI6ZmFsc2UsInQwMDE3X2Y3ZTNjNWQ5IjpmYWxzZSwidDAwMDJfYzMyMjNiOWMiOmZhbHNlLCJ0MDAwMl84MzgzZDU4NiI6ZmFsc2UsInQwMDAwX2NlMmJmMTc4IjpmYWxzZSwidDAwMThfYjFlNGI2MDQiOmZhbHNlLCJ0MDAxOF9kNWYxYzNlOCI6ZmFsc2UsInQwMDE4XzQ2MGYwMDE2IjpmYWxzZSwidDAwMThfOTg4MDk1YzEiOnRydWUsInQwMDAwX2Q3YzEwMGY2IjpmYWxzZSwidDAwMDBfNWU4YzJmMWEiOmZhbHNlLCJ0MDAwMF81ZjRlM2QyYyI6ZmFsc2UsInQwMDAwX2Y3MmQxY2E0IjpmYWxzZSwidDAwMDBfZTVjNzJmM2EiOmZhbHNlLCJ0MDAwMF9jOWE4ZDM2MiI6ZmFsc2UsInQwMDEzXzExNjEzMDZmIjpmYWxzZSwidDAwMTNfMTA1NDZhZTkiOmZhbHNlLCJ0MDAxM18yNDZiMTM4YiI6ZmFsc2UsInQwMDEzXzNjYzA0Y2I3Ijp0cnVlLCJ0MDAxM19hMjk3YjhkYiI6ZmFsc2UsInQwMDEzXzgyZTJmN2MyIjpmYWxzZSwidDAwMTNfNWU5YTFjNzQiOnRydWUsInQwMDEzXzFkODM2NGVhIjpmYWxzZSwidDAwMjBfYWVjMzA4N2QiOmZhbHNlLCJ0MDAyMF82ODc0OGRjMiI6dHJ1ZSwidDAwMjBfYzFkMTBmZmIiOnRydWUsInQwMDAzXzgzczZmN2Q4IjpmYWxzZSwidDAwMzZfNWFlYTZmZjIiOmZhbHNlLCJ0MDAzNl8yYzIyMjdjZCI6ZmFsc2UsInQwMDM2XzAyYjZiZmU0Ijp0cnVlLCJ0MDAzNl83ZDNlOWYxYSI6ZmFsc2UsInQwMDM2XzdkNGUxYTkzIjpmYWxzZSwidDAwMDVfMmFkNDNlODMiOmZhbHNlLCJ0MDAwNV9mODQxN2Y0MiI6ZmFsc2UsInQwMDAzX2U0MGExNGM4IjpmYWxzZSwidDAwMTJfMTFiYjIyOTciOmZhbHNlLCJ0MDAxMl9lMzVkNDk1YyI6ZmFsc2UsInQwMDAyX2FmZWVlZDMxIjpmYWxzZSwidDAwMTRfNGM2ZDlhMmUiOmZhbHNlLCJ0MDAxNF84MTc0ZDU5ZCI6ZmFsc2UsInQwMDAwX2syN2ZqMjlmIjpmYWxzZSwidDAwMDBfZThoMnIxdzAiOmZhbHNlLCJ0MDAwMl80ZTk1NjMyOCI6ZmFsc2UsInQwMDAyX2EzeDlrMm03IjpmYWxzZSwidDAwMDJfZWFkOTEyZDQiOnRydWUsInQwMDAzX2M1MjY2YTJiIjpmYWxzZSwidDAwMDNfOTdkNmVlYTQiOmZhbHNlLCJ0MDAwM19hOWU0Y2U1MyI6ZmFsc2UsInQwMDE2X2Y1NTJjY2NmIjpmYWxzZSwidDAwMTZfMGY0ZWQ5NzMiOmZhbHNlLCJ0MDAxNl83NWZlMWVkYyI6ZmFsc2UsInQwMDE2XzJkOTQxM2E0IjpmYWxzZSwidDAwMTZfYzhiNDYxMTkiOmZhbHNlLCJ0MDAzMV8zNzJhMWU5NCI6ZmFsc2UsInQwMDMxX2M5MTY4OTQ3IjpmYWxzZSwidDAwMzJfNTYxZTUxMTIiOmZhbHNlLCJ0MDAzMl85NDEyZjY5YSI6ZmFsc2UsInQwMDE5X2U4MmE3OGI5IjpmYWxzZSwidDAwMjVfYzllZjFmYmIiOmZhbHNlLCJ0MDAzM18xZWEwNGZhMSI6ZmFsc2UsInQwMDIxXzI0YThlNDQ1IjpmYWxzZSwidDAwMjFfNTFhNzQzM2YiOmZhbHNlLCJ0MDAyMF85YzRhZTdkOCI6ZmFsc2UsInQwMDIwX2FmOWQzMWY2IjpmYWxzZSwidDAwMjBfNTZlY2QyM2YiOmZhbHNlLCJ0MDAzOF9mMDlkMDNhYiI6dHJ1ZSwidDAwNDBfMzViN2M1OGEiOmZhbHNlLCJ0MDAxMl8zOWJlMWE0ZiI6ZmFsc2UsInQwMDEyX2MyZTU4ZTEzIjpmYWxzZSwidDAwMTJfZDdlYzViMmEiOmZhbHNlLCJ0MDAwNV85MGQ3ZWU1ZCI6ZmFsc2UsInQwMDIxXzE0YThlNDQ1IjpmYWxzZSwidDAwMzdfOGUxNTFmMjIiOmZhbHNlLCJ0MDAwNV8xN2I4NzM0ZCI6ZmFsc2UsInQwMDE0XzY5MTQ4NDBlIjpmYWxzZSwidDAwMTZfZDkyMmI0ODAiOnRydWUsImtpbGxfb3B0aW1pemVkX3JlbmRlcmluZ193ZWIiOnRydWUsInQwMDA1X2VmNDBhY2E4IjpmYWxzZSwia2lsbF9zZW5kX3dibF9ob2xkc19mbG93X3dlYiI6ZmFsc2UsImtpbGxfYnV5X2FuZF9zZW5kX3d3dyI6ZmFsc2UsImtpbGxfY29udmVydF9hbmRfc2VuZF93d3ciOmZhbHNlLCJ0MDAxNF9hYjBmZWJkNiI6dHJ1ZSwidDAwMTRfODNjYjFiNTMiOnRydWUsInQwMDE2XzEyOGE5YzdkIjpmYWxzZSwidDAwMDVfNjkyZjc5YjMiOmZhbHNlLCJ0MDAwNV83NzIzZWU3MiI6ZmFsc2UsImtpbGxfZXF1aXRpZXNfc3BhcmtsaW5lX3dlYiI6ZmFsc2UsInQwMDM3XzM4ZWNhZTNlIjpmYWxzZSwidDAwMzBfYjdlMmM0YTEiOnRydWUsInQwMDMwXzlkM2Y2ZTgyIjpmYWxzZSwia2lsbF9pbmRpYV9yYWlsc19kZXBvc2l0X3dpdGhkcmF3YWxfZXhwb3N1cmVfd2ViIjpmYWxzZSwia2lsbF9jb21iaW5lZF9mZWVfdGFibGVzX3dlYiI6ZmFsc2UsImtpbGxfaWR2X3BkZl9sb2NrZWRfd2ViIjpmYWxzZSwidDAwMDNfMjYxNTY4ZTEiOmZhbHNlLCJraWxsX2NiMV90aWVyaW5nX2F0X3NpZ251cF93ZWIiOmZhbHNlLCJraWxsX2NyZWRpdF9jYXJkX3dhaXRsaXN0X2NiMV91cHNlbGxfd2ViIjpmYWxzZSwia2lsbF93YXJtdXBzX3JlZGVzaWduX3dlYiI6ZmFsc2UsImtpbGxfc3Rha2VfbWF4X2RlZmF1bHRfd2ViIjpmYWxzZSwia2lsbF90b3BfdXBfc2FtZV9hc19hZGRfcGF5bWVudF9tZXRob2Rfd2ViIjpmYWxzZSwia2lsbF9pbnR4X21hcmdpbl9yYXRpb19mZWF0dXJlIjpmYWxzZSwia2lsbF9oaWRlX3NjYW1fd2FybmluZ19hZGRfcGF5bWVudF9tZXRob2Rfd2ViIjpmYWxzZSwidDAwMDhfZjNhMWI1ZTciOmZhbHNlLCJraWxsX3ZhdWx0X2RlcHJlY2F0aW9uX3dlYiI6ZmFsc2UsInQwMDA5X2M4ZDVlMmYxIjpmYWxzZSwidDAwMDhfOWJkNTVhZGMiOmZhbHNlLCJ0MDAwOF9iNDRjMDg3MCI6ZmFsc2UsInQwMDAwX2IwNDU3NjUzIjpmYWxzZSwia2lsbF9jb2luYmFzZV9vbmVfZWxpZ2liaWxpdHlfY2hlY2tfd2ViIjp0cnVlLCJraWxsX2Vhcm5fZWxpZ2liaWxpdHlfY2hlY2tfd2ViIjp0cnVlLCJraWxsX2hvbWVfZGV4X3RyZW5kaW5nX2xpc3Rfd2ViIjpmYWxzZSwia2lsbF9jb2RlX3llbGxvd19kZW5zZV9saXN0X2NlbGxfd2ViIjpmYWxzZSwia2lsbF9wMnBfY2JidGNfc3VwcG9ydF93ZWIiOmZhbHNlLCJraWxsX2NyeXB0b19zY2FtX3JlcG9ydGluZ192MV93ZWIiOnRydWUsInQwMDE1XzVmZGU2MzM0IjpmYWxzZSwia2lsbF91b2JfdHJhbnNhY3RfaW50eF93ZWIiOmZhbHNlLCJraWxsX3NpbXBsZV9kZXJpdmF0aXZlc19vcmRlcl9mb3JtX3dlYiI6ZmFsc2UsInQwMDA1X2IwNTU0MDA2IjpmYWxzZSwidDAwMjZfNTIyN2UyMGMiOmZhbHNlLCJ0MDAyMV82ZWRiMTA3NyI6dHJ1ZSwidDAwMjlfYWFmNWRjYWEiOmZhbHNlLCJraWxsX3VvX3Bvc3Rfb25ib2FyZGluZ193ZWIiOmZhbHNlLCJraWxsX2NoYXJ0X3RyYWRpbmdfb3JkZXJfYWRkX3RwX3NsX2VuYWJsZWRfd2ViIjpmYWxzZSwia2lsbF9jaGFydF90cmFkaW5nX29yZGVyX2FkZF90cF9zbF9mdXR1cmVzX3dlYiI6ZmFsc2UsImtpbGxfY2hhcnRfdHJhZGluZ19lZGl0X3RwX3NsX2VuYWJsZWRfd2ViIjpmYWxzZSwiZW5hYmxlX3NlbnRpbWVudF9zdXJ2ZXlfZXhwZXJpbWVudF93ZWIiOmZhbHNlLCJraWxsX3VzZGNfcmVhY3RpdmF0aW9uX2Jhbm5lcl93ZWIiOmZhbHNlLCJ0MDAxNF9hNTk5MjRhMiI6ZmFsc2UsImtpbGxfaW50eF91cGRhdGVfbGV2ZXJhZ2Vfd2ViIjpmYWxzZSwidDAwMTRfZjEwNzA2OWIiOmZhbHNlLCJ0MDAwM181Y2RjNTUxZiI6ZmFsc2UsInQwMDAzX2M1ZTlhMmI2IjpmYWxzZSwia2lsbF9jYjFfdXBncmFkZV9vZmZlcnNfd2ViIjpmYWxzZSwidDAwMDNfYTdjM2UxZjkiOmZhbHNlLCJ0MDAwM18wZDBkMzYxYyI6dHJ1ZSwidDAwMDNfMjcyMGQ4ZjMiOmZhbHNlLCJraWxsX2Z1dHVyZXNfdHJhbnNhY3Rpb25fZGV0YWlsc19yZWZyZXNoX3dlYiI6ZmFsc2UsImtpbGxfZmNtX2Z1dHVyZXNfdHJhbnNhY3Rpb25fZGV0YWlsc19yZWZyZXNoX3dlYiI6ZmFsc2UsInQwMDAzX2ZhNmIzYzcwIjpmYWxzZSwia2lsbF90cmFuc2FjdGlvbl9kZXRhaWxzX3JlZnJlc2hfZ3JvdXBfb25lIjpmYWxzZSwia2lsbF9jYjFfcHJldHJhZGVfdXBzZWxsX2wzMGRfc2F2aW5nc193ZWIiOmZhbHNlLCJraWxsX3VuaWZpZWRfY29uY2llcmdlX21lc3NhZ2VzX2FwaV93ZWIiOmZhbHNlLCJ0MDAwNV9lOWExYjUzZCI6ZmFsc2UsInQwMDA1X2QwZTUwZjMyIjp0cnVlLCJ0MDAwNV9lYjYwNjIwNCI6ZmFsc2UsInQwMDAzXzcyZGUyZWFhIjpmYWxzZSwia2lsbF90aWVyZWRfcmVmZXJyYWxfcmV3YXJkc193ZWIiOmZhbHNlLCJraWxsX3BheW1lbnRzX3Nka193ZWIiOmZhbHNlLCJraWxsX2FjaF9oYW5kbGVyX2NsZWFudXBfd2ViIjpmYWxzZSwidDAwMDVfODI5YWIzYTgiOmZhbHNlLCJ0MDAxNl80YzU0NzA2MyI6ZmFsc2UsImtpbGxfcmF0X3Nwb3Rfb3JkZXJfZm9ybV9wcmV2aWV3X3Bvc3RfZ3FsX21pZ3JhdGlvbl93ZWIiOmZhbHNlLCJraWxsX2xpdmVfcHJvZHVjdF9wcmljZV9yZWZfd2ViIjpmYWxzZSwia2lsbF9hZHZhbmNlZF90aGVtZV93ZWIiOmZhbHNlLCJraWxsX2VsZWlnaWJsZV9yZWRpcmVjdF90b193aXJlX3RyYW5zZmVyIjpmYWxzZSwia2lsbF9hZGRfcG1fY2R1X3BoYXNlXzFfd2ViIjpmYWxzZSwia2lsbF9yYXRfdHBzbF9pbnR4X2Zhc3RfZm9sbG93c19ybiI6ZmFsc2UsImtpbGxfbmV3X3RyYXZlbF9ydWxlX3NhbmN0aW9uX3VpX3dlYiI6ZmFsc2UsInQwMDA1XzZjZTU4ZTJjIjpmYWxzZSwidDAwMDVfOTRjMjU4NTYiOmZhbHNlLCJ0MDAwOV9lNWIyZDdmNCI6ZmFsc2UsImtpbGxfYXNzZXRzX2xpdmVfcHJpY2VzX3dlYiI6ZmFsc2UsImtpbGxfc2ltcGxlX3RyYWRlX2RlZmF1bHRfdGFyZ2V0X2Fzc2V0X2J1eV93ZWIiOmZhbHNlLCJraWxsX3NpbXBsZV90cmFkZV9kZWZhdWx0X3RhcmdldF9hc3NldF9zZWxsX3dlYiI6ZmFsc2UsImtpbGxfc2ltcGxlX3RyYWRlX2RlZmF1bHRfdGFyZ2V0X2Fzc2V0X2NvbnZlcnRfd2ViIjpmYWxzZSwia2lsbF9kZXJpdmF0aXZlc19xdWlja19hY3Rpb25zX3dlYiI6ZmFsc2UsInQwMDE2XzA3ZmMxODU4IjpmYWxzZSwia2lsbF9wZXJzb25hbF9pbmZvX2Zvcm1fZm9yX25vbl9iYXNpY19reWNfd2ViIjpmYWxzZSwidDAwMTdfYzhmMmU5ZDQiOmZhbHNlLCJraWxsX2RlY29kZXJfaW50bF9yb2xsb3V0IjpmYWxzZSwia2lsbF91c2RjX2NvbnZlcnNpb25fZmVlX2V4cGVyaW1lbnRfd2ViIjpmYWxzZSwidDAwMDVfNmM3MmMwNTYiOmZhbHNlLCJ0MDAwNV8wNmZhNjEzMyI6ZmFsc2UsImtpbGxfZWVhX29uYm9hcmRpbmdfZW5oYW5jZW1lbnRfd2ViIjpmYWxzZSwidDAwMDVfNzcwYzFlNjAiOmZhbHNlLCJraWxsX2JhbGFuY2Vfc3VtbWFyeV9yZWZyZXNoX3d3dyI6ZmFsc2UsImtpbGxfdHJ1c3RseV9kZXBvc2l0X2V4cG9zdXJlX3dlYiI6ZmFsc2UsInQwMDAzXzEzN2E2ZjI0IjpmYWxzZSwia2lsbF9obndpX2NvbmNpZXJnZV9vbmJvYXJkaW5nX3dlYiI6ZmFsc2UsInQwMDEyX2JkNWYxYjE3Ijp0cnVlLCJraWxsX2luY2VudGl2ZXNfc2Jfc3dlZXBzdGFrZXNfZm9ybV93ZWIiOnRydWUsInQwMDI2XzRmZTI3NGFlIjpmYWxzZSwia2lsbF9za2lwX2lkX3NlbGVjdGlvbl9vbmJvYXJkaW5nX3dlYiI6ZmFsc2UsInQwMDM0X2Q0ZTVmNmE3IjpmYWxzZSwidDAwMTJfZWY5NWRjMGYiOmZhbHNlLCJraWxsX3RyYW5zYWN0aW9uX2RldGFpbHNfcmVmcmVzaCI6ZmFsc2UsInQwMDIxXzhhZmZkNTMzIjpmYWxzZSwidDAwMDBfYjJkNGY2YTgiOmZhbHNlLCJ0MDAwMF9jM2U1ZzdiOSI6ZmFsc2UsImVuYWJsZV9jb2RlX3llbGxvd19tMV93ZWIiOnRydWUsImVuYWJsZV9jb2RlX3llbGxvd19tMV9pbnRsX3dlYiI6dHJ1ZSwidDAwMjZfMzdiOGVmNGEiOnRydWUsInQwMDE5X2M3ZTRhOWYzIjpmYWxzZSwia2lsbF9yYXRfZml4ZWRfaGVpZ2h0X3RyYWRpbmdfbGF5b3V0IjpmYWxzZSwidDAwMDdfYTdmM2UyYTEiOmZhbHNlLCJraWxsX3VuYmFuX3NlbGZfc2VydmVfd2ViIjpmYWxzZSwia2lsbF9jcnlwdG9fYWR2b2NhY3lfZWxpZ2liaWxpdHlfY2hlY2tfd2ViIjpmYWxzZSwia2lsbF9jYV9vbmJvYXJkaW5nX2ltcHJvdmVtZW50X3dlYiI6ZmFsc2UsImtpbGxfbGl2ZV9mY21fcG9zaXRpb25zX3dlYiI6ZmFsc2UsImtpbGxfY2FfcmVsYXhlZF9lZHBfb25ib2FyZGluZ193ZWIiOmZhbHNlLCJraWxsX2NiMV9wcm9tb19leHBhbnNpb25fbTNfd2ViIjpmYWxzZSwidDAwMDRfYTkzMTI5MmYiOmZhbHNlLCJraWxsX29uY2hhaW5fYXBwc19lbGlnaWJpbGl0eV9jaGVja193ZWIiOmZhbHNlLCJ0MDAwOF8zZTExMzJjMiI6ZmFsc2UsImtpbGxfcHJvZ3Jlc3NpdmVfZGF0YV9lbnJpY2htZW50X3dlYiI6dHJ1ZSwia2lsbF9mZWVfdmlzaWJpbGl0eV93ZWIiOmZhbHNlLCJ0MDAwMF9hNDA2NDQ2MSI6ZmFsc2UsImtpbGxfcmF0X3RyYWRpbmdfdmlld191cGdyYWRlX3dlYiI6ZmFsc2UsImtpbGxfZGV4X3JlY2VpdmVfd2ViIjp0cnVlLCJ0MDAwNV81Yzg3NDdlNyI6ZmFsc2UsInQwMDMxXzFlY2E2ZDcwIjpmYWxzZSwidDAwMTRfN2Q0ZTlmMmMiOmZhbHNlLCJraWxsX2RlX25ld19wbV9zZWxlY3Rpb25fc2NyZWVuX3dlYiI6ZmFsc2UsImtpbGxfbmV3X3BtX3NlbGVjdGlvbl9zY3JlZW5fY2IxX3dlYiI6ZmFsc2UsInQwMDE1X2EyMTMzYmE4IjpmYWxzZSwidDAwMTJfNjEwZmQzNGYiOnRydWUsImtpbGxfY2IxX3BhcnRuZXJzaGlwX21hcmtldGluZ19yZXZhbXAiOmZhbHNlLCJraWxsX21hcmtldF9zdGF0c193ZWIiOmZhbHNlLCJraWxsX3VrX25ld19wbV9zZWxlY3Rpb25fc2NyZWVuX3dlYiI6dHJ1ZSwia2lsbF91c19uZXdfcG1fc2VsZWN0aW9uX3NjcmVlbl93ZWIiOnRydWUsImtpbGxfcGF5cGFsX2Rpc2NsYWltZXJfdHJheV93ZWIiOmZhbHNlLCJraWxsX3NlcF8yMDI1X2NyaF9wMnBfd2ViX29ubHlfdjEiOmZhbHNlLCJ0MDAxNl9iYWViMmE0OSI6ZmFsc2UsInQwMDA4X2ExYjJjM2Q0IjpmYWxzZSwia2lsbF9tb25zb29uX29yZGVyX2Zvcm1fcmV2YW1wIjpmYWxzZSwia2lsbF9yZW1vdmVfZW1haWxfdGV4dF9mcm9tX2ludGVyYWNfY2FzaF9pbl9vdXRfd2ViIjpmYWxzZSwidDAwMTRfZTEwMjBkZjMiOmZhbHNlLCJraWxsX3N0YWtpbmdfY2IxX3Byb21vY29kZV9pbnRlZ3JhdGlvbl93ZWIiOnRydWUsInQwMDMwX2ExYjJjM2Q0Ijp0cnVlLCJ0MDAzMF9lNWY2YTdiOCI6ZmFsc2UsInQwMDE3X2U0ZDFnOGI3IjpmYWxzZSwia2lsbF9teV9hc3NldHNfbGl2ZV9hcHBlbmRfd3d3IjpmYWxzZSwidDAwMTZfZDRlNWY2YTciOmZhbHNlLCJ0MDAxNl9kNGViODk0ZSI6ZmFsc2UsInQwMDE2X2EyNTZhOGUwIjp0cnVlLCJraWxsX2VxdWl0aWVzX3NwYXJrbGluZV9ybiI6ZmFsc2UsImtpbGxfaXRfZWlkX29uYm9hcmRpbmdfd2ViIjpmYWxzZSwidDAwMTRfYzNkOGE5ZjIiOmZhbHNlLCJlbmFibGVfY3lfd2F0Y2hsaXN0X3dlYiI6dHJ1ZSwia2lsbF9hZHZfdW5pZmllZF90eF93ZWIiOmZhbHNlLCJ0MDAxN19lNGQxZjhiNyI6ZmFsc2UsImtpbGxfaGlkZV91a190cmFkZV93aXRoX3VzZGNfd2ViIjpmYWxzZSwia2lsbF9zaW1wbGVfdHJhZGVfY3JlYXRlY29udmVydF9jb21taXRjb252ZXJ0X211dGF0aW9uX3dlYiI6ZmFsc2UsImtpbGxfc2ltcGxlX3RyYWRlX3ByZXZpZXdfcmVmcmVzaF93ZWIiOmZhbHNlLCJraWxsX2xpbmVfY2hhcnRfdHJlYXRtZW50X3dlYiI6ZmFsc2UsImtpbGxfZGV4X2RvbmVfYnV0dG9uX2V4cGVyaW1lbnRfd2ViIjpmYWxzZSwia2lsbF9jcmVhdGVfY29tbWl0X2J1eV9tdXRhdGlvbnNfd2ViIjpmYWxzZSwiZW5hYmxlX2FkdmFuY2VkX3RyYWRpbmdfY29tcGV0aXRpb25fd2ViIjpmYWxzZSwiZW5hYmxlX2VxdWl0eV9pbnN0YW50X2Jhc2VfYnV5IjpmYWxzZSwia2lsbF9zcGxpdF9vcmRlcnNfdGFic193ZWIiOmZhbHNlLCJraWxsX2hud2lfY29uY2llcmdlX3ByaW9yaXR5X3N1cHBvcnRfcm91dGluZ193ZWIiOnRydWUsImtpbGxfbWljYV9wcmV2aWV3X2Zvb3Rlcl9zcHJlYWRfcGVyY2VudGFnZV93ZWIiOmZhbHNlLCJraWxsX3NpbXBsZV90cmFkZV9saW1pdF9vcmRlcl9hY2Nlc3Nfd2ViIjpmYWxzZSwia2lsbF90eG5faGlzdG9yeV9pbXByb3ZlbWVudHNfcm4iOmZhbHNlLCJraWxsX21pY2FfYzJjX2ZlYXR1cmVfd2ViIjpmYWxzZSwia2lsbF9kZWZhdWx0X3BheW1lbnRfbG9naWNfd2ViIjpmYWxzZSwia2lsbF9kZWZhdWx0X3BheW1lbnRfd2l0aGRyYXdfbG9naWMiOmZhbHNlLCJraWxsX251eF9jaGVja2xpc3RfYWRkX2Nhc2hfd2ViIjpmYWxzZSwia2lsbF9ob21lX2ZlZWRfY29udGVudF9kZXNrdG9wX2R5YW5taWNfZmVlZF9zZWN0aW9uX2RlZmVyX3dlYiI6ZmFsc2UsImtpbGxfb2N0XzIwMjRfc3Rha2luZ19ob21lX2NhcmRfd2ViIjpmYWxzZSwia2lsbF9sZWFybmluZ19yZXdhcmRzX2VsaWdpYmlsaXR5X2NoZWNrX3dlYiI6ZmFsc2UsImtpbGxfc2luZ2xlX3N0ZXBfY2hlY2tsaXN0X2NhcmRzX3dlYiI6ZmFsc2UsImtpbGxfY2IxX2V4cGFuZGVkX2FwX3dlYiI6ZmFsc2UsImtpbGxfcmF0X29yZGVyX2hpc3RvcnlfZ3FsX2Z1dHVyZXNfd2ViIjpmYWxzZSwia2lsbF9obndpX2NvbmNpZXJnZV9jaGF0X3JuIjpmYWxzZSwia2lsbF9obndpX2NvbmNpZXJnZV9jaGF0X3dlYiI6ZmFsc2UsImtpbGxfc2ltcGxlX3RyYWRlX2RleF9zb2xfd2ViIjpmYWxzZSwia2lsbF9obndpX2NvbmNpZXJnZV9uYXZfaW5ncmVzc193ZWIiOmZhbHNlLCJraWxsX3JhdF9vcmRlcl9oaXN0b3J5X2dxbF9zcG90X3dlYiI6ZmFsc2UsImtpbGxfcmF0X29yZGVyX2hpc3RvcnlfZ3FsX2ludHhfd2ViIjpmYWxzZSwia2lsbF9yYXRfb3JkZXJfaGlzdG9yeV9ncWxfaG9va3Nfd2ViIjpmYWxzZSwia2lsbF9yYXRfb3JkZXJfaGlzdG9yeV9ncWxfbW9iaWxlX3dlYiI6ZmFsc2UsImtpbGxfYXVnXzIwMjVfbGl2ZV9wcmljZV9jaGFydHNfd2ViIjpmYWxzZSwia2lsbF91b19idXlzX2VuYWJsZWRfd2ViIjpmYWxzZSwia2lsbF9ub3ZfMjAyNV9kZXhfZmVlX3dlYiI6ZmFsc2UsImtpbGxfZGVjXzIwMjVfdW9fc2VsbF9jb252ZXJ0X3dlYiI6ZmFsc2UsImtpbGxfb2N0XzIwMjVfZGV4X2VlYV9kZWJpdCI6dHJ1ZSwia2lsbF9ub3ZfMjAyNV9kZXhfbGF0YW1fZGViaXQiOnRydWUsImtpbGxfbm92XzIwMjVfZGV4X2Jlcm11ZGFfZGViaXQiOmZhbHNlLCJraWxsX2NiMV9zcGVjdWxhdG9yX2luY3R2X3dlYiI6ZmFsc2UsImtpbGxfYXNzZXRfcmVjb3ZlcnlfcmVkZXNpZ25fd2ViIjpmYWxzZSwia2lsbF9kaXNhYmxlX2ZvcmNlX2Nyb3NzX2RldmljZV9pZHZfd2ViIjp0cnVlLCJraWxsX2RleF9zZW5kX29wdGltaXN0aWNfc2lnbmluZ193ZWIiOmZhbHNlLCJraWxsX3JhdF90cHNsX2ludHhfZmFzdF9mb2xsb3dzX3dlYiI6ZmFsc2UsImtpbGxfY2IxX2RwX2Zvcl95b3VfY2FyZHNfd2ViIjpmYWxzZSwia2lsbF9hdGlfZm9yX3lvdV9jYXJkX3dlYiI6ZmFsc2UsImtpbGxfaW50ZW50X2RyaXZlbl9hc3NldF9yZWNvbW1lbmRhdGlvbl93ZWIiOnRydWUsImtpbGxfY2IxX3RpZXJfbmFtZV9jaGFuZ2VzX3dlYiI6ZmFsc2UsImtpbGxfZHluYW1pY19jb3VudHJ5X2NoYW5nZV9sb2FkZXIiOmZhbHNlLCJraWxsX2NiMV9kcF9taWdyYXRpb25fd2ViIjpmYWxzZSwia2lsbF9jYV9pbnRlcmFjX3JlbW92ZV9lbWFpbF9jdGFfd2ViIjpmYWxzZSwia2lsbF9pZHZfY2FtZXJhX3Blcm1pc3Npb25fZXJyb3Jfd2ViIjpmYWxzZSwia2lsbF9pZHZfY2FtZXJhX3Blcm1pc3Npb25fZ3VpZGVfd2ViIjpmYWxzZSwia2lsbF9jYjFfcHJvbW9fZXhwYW5zaW9uX20yX3dlYiI6ZmFsc2UsImtpbGxfY2IxX3JvbGxvdmVyX2NyZWRpdHNfd2ViIjpmYWxzZSwia2lsbF9jYjFfaG9tZV9vbmNoYWluX3dlYiI6ZmFsc2UsImtpbGxfY2IxX3NpZ251cF9vbmNoYWluX3dlYiI6ZmFsc2V9LCJleHBlcmltZW50R3JvdXBzIjpbeyJ0ZXN0IjoianVsXzIwMjRfbWFydGVjaF9idXlfY3J5cHRvX2xwX3JlZGlyZWN0IiwiZ3JvdXAiOiJ0cmVhdG1lbnQiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6Im9jdF8yMDI0X2xvZ2dlZF9vdXRfYWRwX2RlZXBsaW5rIiwiZ3JvdXAiOiJjb250cm9sIiwiZm9yY2VkIjp0cnVlfSx7InRlc3QiOiJkZWNfMjAyNV9nb29nbGVfb25ldGFwX2ludGxfaG9tZSIsImdyb3VwIjoidHJlYXRtZW50IiwiZm9yY2VkIjp0cnVlfSx7InRlc3QiOiJqdW5lXzIwMjVfd2FpdGxpc3RfbWFya2V0aW5nX3JvdXRlX2VuYWJsZWQiLCJncm91cCI6InRyZWF0bWVudCIsImZvcmNlZCI6dHJ1ZX0seyJ0ZXN0Ijoib2N0XzIwMjVfaW5kaWFfcm9sbG91dF93ZWJfc2lnbnVwX2VuYWJsZSIsImdyb3VwIjoidHJlYXRtZW50IiwiZm9yY2VkIjp0cnVlfSx7InRlc3QiOiJvY3RfMjAyNV9yZWZlcnJhbHNfcGF5b3V0X2Rlc2NyaXB0aW9uX2pvaW4iLCJncm91cCI6ImNvbnRyb2wiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6ImRlY18yMDI1X2luZGl2aWR1YWxzX2Rlcml2X3Vwc2VsbCIsImdyb3VwIjoidHJlYXRtZW50IiwiZm9yY2VkIjpmYWxzZX0seyJ0ZXN0IjoidDAwMjBfMWJlNjY1ZWUiLCJncm91cCI6ImNvbnRyb2wiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6InQwMDEzXzEwNTQ2YWU5IiwiZ3JvdXAiOiJ0cmVhdG1lbnQiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6InQwMDIwX2Q3ZjFmNTIyIiwiZ3JvdXAiOiJ0cmVhdG1lbnQiLCJmb3JjZWQiOmZhbHNlfSx7InRlc3QiOiJ0MDAxMl9mZWZiNGQzMiIsImdyb3VwIjoidHJlYXRtZW50IiwiZm9yY2VkIjp0cnVlfSx7InRlc3QiOiJmZWJfMjAyNF9ubF9ob21lcGFnZV8xNWV1cl9mdCIsImdyb3VwIjoiY29udHJvbCIsImZvcmNlZCI6dHJ1ZX0seyJ0ZXN0Ijoibm92XzIwMjNfZW1haWxfdW5zdWJzY3JpYmUiLCJncm91cCI6InRyZWF0bWVudCIsImZvcmNlZCI6dHJ1ZX0seyJ0ZXN0IjoiamFuXzIwMjZfdXNfaG9tZXBhZ2VfaGVybyIsImdyb3VwIjoiY29udHJvbCIsImZvcmNlZCI6dHJ1ZX0seyJ0ZXN0IjoiamFuXzIwMjZfaGVyb192aWRlb192Ml91a19leHBlcmltZW50IiwiZ3JvdXAiOiJjb250cm9sIiwiZm9yY2VkIjp0cnVlfSx7InRlc3QiOiJqYW5fMjAyNl9oZXJvX3ZpZGVvX25sX2V4cGVyaW1lbnQiLCJncm91cCI6ImNvbnRyb2wiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6Imphbl8yMDI2X2hlcm9fdmlkZW9fZXNfZXhwZXJpbWVudCIsImdyb3VwIjoiY29udHJvbCIsImZvcmNlZCI6dHJ1ZX0seyJ0ZXN0IjoiamFuXzIwMjZfaGVyb192aWRlb19mcl9leHBlcmltZW50IiwiZ3JvdXAiOiJjb250cm9sIiwiZm9yY2VkIjp0cnVlfSx7InRlc3QiOiJqYW5fMjAyNl9oZXJvX3ZpZGVvX2l0X2V4cGVyaW1lbnQiLCJncm91cCI6ImNvbnRyb2wiLCJmb3JjZWQiOnRydWV9LHsidGVzdCI6ImRlY18yMDI1X2hlcm9fdmlkZW9fZGVfZXhwZXJpbWVudCIsImdyb3VwIjoiY29udHJvbCIsImZvcmNlZCI6dHJ1ZX1dLCJxdWVyeVBhcmFtcyI6e30sInVybCI6Ilx1MDAyRiIsInJlbGF5U3RvcmVEYXRhIjoie1widHlwZVwiOlwiUEVSU0lTVEVEX0NBQ0hFX1YzXCIsXCJyZWNvcmRNYXBcIjp7XCJjbGllbnQ6cm9vdFwiOntcIl9faWRcIjpcImNsaWVudDpyb290XCIsXCJfX3R5cGVuYW1lXCI6XCJfX1Jvb3RcIixcImhpZ2hlc3RFYXJuQVBZQXNzZXRcIjp7XCJfX3JlZlwiOlwiY2xpZW50OnJvb3Q6aGlnaGVzdEVhcm5BUFlBc3NldFwifSxcInJld2FyZHNPcmNoZXN0cmF0aW9uUHJvZ3JhbVJld2FyZFJhdGVGb3JMb2dvdXRQYWdlKGNvdW50cnlDb2RlOlxcXCJOT1xcXCIsY3VycmVuY3k6XFxcIlVTRENcXFwiLHBsYXRmb3JtOlxcXCJSRVRBSUxcXFwiKVwiOntcIl9fcmVmXCI6XCJjbGllbnQ6cm9vdDpyZXdhcmRzT3JjaGVzdHJhdGlvblByb2dyYW1SZXdhcmRSYXRlRm9yTG9nb3V0UGFnZShjb3VudHJ5Q29kZTpcXFwiTk9cXFwiLGN1cnJlbmN5OlxcXCJVU0RDXFxcIixwbGF0Zm9ybTpcXFwiUkVUQUlMXFxcIilcIn0sXCJzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIkxJU1RFRFxcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJNQVJLRVRfQ0FQXFxcIilcIjp7XCJfX3JlZlwiOlwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJMSVNURURcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiTUFSS0VUX0NBUFxcXCIpXCJ9LFwic2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJUT1BfR0FJTkVSU1xcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJQRVJDRU5UX0NIQU5HRVxcXCIpXCI6e1wiX19yZWZcIjpcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiVE9QX0dBSU5FUlNcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiUEVSQ0VOVF9DSEFOR0VcXFwiKVwifSxcInNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiUkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTXFxcIixmaXJzdDo2KVwiOntcIl9fcmVmXCI6XCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIlJFQ0VOVExZX0xJU1RFRF8zX01PTlRIU1xcXCIsZmlyc3Q6NilcIn19LFwiY2xpZW50OnJvb3Q6aGlnaGVzdEVhcm5BUFlBc3NldFwiOntcIl9faWRcIjpcImNsaWVudDpyb290OmhpZ2hlc3RFYXJuQVBZQXNzZXRcIixcIl9fdHlwZW5hbWVcIjpcIkhpZ2hlc3RFYXJuQVBZQXNzZXRcIixcImFweVwiOlwiMTMuMjNcIn0sXCJjbGllbnQ6cm9vdDpyZXdhcmRzT3JjaGVzdHJhdGlvblByb2dyYW1SZXdhcmRSYXRlRm9yTG9nb3V0UGFnZShjb3VudHJ5Q29kZTpcXFwiTk9cXFwiLGN1cnJlbmN5OlxcXCJVU0RDXFxcIixwbGF0Zm9ybTpcXFwiUkVUQUlMXFxcIilcIjp7XCJfX2lkXCI6XCJjbGllbnQ6cm9vdDpyZXdhcmRzT3JjaGVzdHJhdGlvblByb2dyYW1SZXdhcmRSYXRlRm9yTG9nb3V0UGFnZShjb3VudHJ5Q29kZTpcXFwiTk9cXFwiLGN1cnJlbmN5OlxcXCJVU0RDXFxcIixwbGF0Zm9ybTpcXFwiUkVUQUlMXFxcIilcIixcIl9fdHlwZW5hbWVcIjpcIlJld2FyZHNPcmNoZXN0cmF0aW9uUHJvZ3JhbVJld2FyZFJhdGVGb3JMb2dvdXRQYWdlXCIsXCJiYXNlUmF0ZVwiOlwiXCIsXCJnZW9Qcm9tb1JhdGVcIjpcIlwiLFwiY2JPbmVSYXRlXCI6XCJcIn0sXCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIkxJU1RFRFxcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJNQVJLRVRfQ0FQXFxcIilcIjp7XCJfX2lkXCI6XCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIkxJU1RFRFxcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJNQVJLRVRfQ0FQXFxcIilcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0Q29ubmVjdGlvblwiLFwiZWRnZXNcIjp7XCJfX3JlZnNcIjpbXCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIkxJU1RFRFxcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJNQVJLRVRfQ0FQXFxcIik6ZWRnZXM6MFwiLFwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJMSVNURURcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiTUFSS0VUX0NBUFxcXCIpOmVkZ2VzOjFcIixcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiTElTVEVEXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIk1BUktFVF9DQVBcXFwiKTplZGdlczoyXCIsXCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIkxJU1RFRFxcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJNQVJLRVRfQ0FQXFxcIik6ZWRnZXM6M1wiLFwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJMSVNURURcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiTUFSS0VUX0NBUFxcXCIpOmVkZ2VzOjRcIixcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiTElTVEVEXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIk1BUktFVF9DQVBcXFwiKTplZGdlczo1XCJdfX0sXCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIkxJU1RFRFxcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJNQVJLRVRfQ0FQXFxcIik6ZWRnZXM6MFwiOntcIl9faWRcIjpcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiTElTVEVEXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIk1BUktFVF9DQVBcXFwiKTplZGdlczowXCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldEVkZ2VcIixcIm5vZGVcIjp7XCJfX3JlZlwiOlwiUVhOelpYUTZkakU2Wm5WdVoybGlhV3hwZEhrNlkyOXBibUpoYzJVNmRYVnBaRG8xWWpjeFptTTBPQzB6WkdRekxUVTBNR010T0RBNVlpMW1PR001TkdRd1pUWTRZalU2XCJ9fSxcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRvMVlqY3habU0wT0MwelpHUXpMVFUwTUdNdE9EQTVZaTFtT0dNNU5HUXdaVFk0WWpVNlwiOntcIl9faWRcIjpcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRvMVlqY3habU0wT0MwelpHUXpMVFUwTUdNdE9EQTVZaTFtT0dNNU5HUXdaVFk0WWpVNlwiLFwiX190eXBlbmFtZVwiOlwiQXNzZXRcIixcInV1aWRcIjpcIjViNzFmYzQ4LTNkZDMtNTQwYy04MDliLWY4Yzk0ZDBlNjhiNVwiLFwibmFtZVwiOlwiQml0Y29pblwiLFwic2x1Z1wiOlwiYml0Y29pblwiLFwiaW1hZ2VVcmxcIjpcImh0dHBzOlx1MDAyRlx1MDAyRmR5bmFtaWMtYXNzZXRzLmNvaW5iYXNlLmNvbVx1MDAyRmU3ODVlMDE4MWYxYTIzYTMwZDk0NzYwMzhkOWJlOTFlOWY2YzYzOTU5YjUzOGVhYmJjNTFhMWFiYzg4OTg5NDAzODMyOTFlZWRlNjk1YzNiOGRmYWExODI5YTliNTdmNWEyZDBhMTZiMDUyMzU4MDM0NmM2YjhmYWI2N2FmMTRiXHUwMDJGYXNzZXRfaWNvbnNcdTAwMkZiNTdhYzY3M2YwNmE0YjAzMzhhNTk2ODE3ZWIwYTUwY2UxNmUyMDU5ZjMyN2RjMTE3NzQ0NDQ5YTQ3OTE1Y2IyLnBuZ1wiLFwiZGlzcGxheVN5bWJvbFwiOlwiQlRDXCIsXCJsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OlxcXCJOT0tcXFwiKVwiOntcIl9fcmVmXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUbzFZamN4Wm1NME9DMHpaR1F6TFRVME1HTXRPREE1WWkxbU9HTTVOR1F3WlRZNFlqVTZUazlMXCJ9LFwiaWRcIjpcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRvMVlqY3habU0wT0MwelpHUXpMVFUwTUdNdE9EQTVZaTFtT0dNNU5HUXdaVFk0WWpVNlwifSxcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvMVlqY3habU0wT0MwelpHUXpMVFUwTUdNdE9EQTVZaTFtT0dNNU5HUXdaVFk0WWpVNlRrOUxcIjp7XCJfX2lkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUbzFZamN4Wm1NME9DMHpaR1F6TFRVME1HTXRPREE1WWkxbU9HTTVOR1F3WlRZNFlqVTZUazlMXCIsXCJfX3R5cGVuYW1lXCI6XCJMYXRlc3RBc3NldFByaWNlXCIsXCJwcmljZVwiOlwiNjI2MTI0LjQwOTAyNjIxNjY1MTMyODk1OVwiLFwicGVyY2VudENoYW5nZXNcIjp7XCJfX3JlZlwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvMVlqY3habU0wT0MwelpHUXpMVFUwTUdNdE9EQTVZaTFtT0dNNU5HUXdaVFk0WWpVNlRrOUw6cGVyY2VudENoYW5nZXNcIn0sXCJpZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVG8xWWpjeFptTTBPQzB6WkdRekxUVTBNR010T0RBNVlpMW1PR001TkdRd1pUWTRZalU2VGs5TFwifSxcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUbzFZamN4Wm1NME9DMHpaR1F6TFRVME1HTXRPREE1WWkxbU9HTTVOR1F3WlRZNFlqVTZUazlMOnBlcmNlbnRDaGFuZ2VzXCI6e1wiX19pZFwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvMVlqY3habU0wT0MwelpHUXpMVFUwTUdNdE9EQTVZaTFtT0dNNU5HUXdaVFk0WWpVNlRrOUw6cGVyY2VudENoYW5nZXNcIixcIl9fdHlwZW5hbWVcIjpcIlBlcmNlbnRDaGFuZ2VzXCIsXCJkYXlcIjowLjAxNjkyNjY4ODg1NTY3NTd9LFwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJMSVNURURcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiTUFSS0VUX0NBUFxcXCIpOmVkZ2VzOjFcIjp7XCJfX2lkXCI6XCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIkxJU1RFRFxcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJNQVJLRVRfQ0FQXFxcIik6ZWRnZXM6MVwiLFwiX190eXBlbmFtZVwiOlwiQXNzZXRFZGdlXCIsXCJub2RlXCI6e1wiX19yZWZcIjpcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRwa09EVmtZMlU1WWkwMVlqY3pMVFZqTTJNdE9EazNPQzAxTWpKalpURmtNV014WWpRNlwifX0sXCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEcGtPRFZrWTJVNVlpMDFZamN6TFRWak0yTXRPRGszT0MwMU1qSmpaVEZrTVdNeFlqUTZcIjp7XCJfX2lkXCI6XCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEcGtPRFZrWTJVNVlpMDFZamN6TFRWak0yTXRPRGszT0MwMU1qSmpaVEZrTVdNeFlqUTZcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0XCIsXCJ1dWlkXCI6XCJkODVkY2U5Yi01YjczLTVjM2MtODk3OC01MjJjZTFkMWMxYjRcIixcIm5hbWVcIjpcIkV0aGVyZXVtXCIsXCJzbHVnXCI6XCJldGhlcmV1bVwiLFwiaW1hZ2VVcmxcIjpcImh0dHBzOlx1MDAyRlx1MDAyRmR5bmFtaWMtYXNzZXRzLmNvaW5iYXNlLmNvbVx1MDAyRmRiYjRiNDk4M2JkZTgxMzA5ZGRhYjgzZWI1OTgzNThlYjQ0Mzc1YjkzMGI5NDY4N2ViZTM4YmMyMmU1MmMzYjIxMjUyNThmZmI4NDc3YTVlZjIyZTMzZDZiZDcyZTMyYTUwNmMzOTFjYWExM2FmNjRjMDBlNDY2MTNjM2U1ODA2XHUwMDJGYXNzZXRfaWNvbnNcdTAwMkY0MTEzYjA4MmQyMWNjNWZhYjE3ZmM4ZjJkMTlmYjk5NjE2NWJjY2U2MzVlNjkwMGY3ZmMyZDU3YzRlZjMzYWU5LnBuZ1wiLFwiZGlzcGxheVN5bWJvbFwiOlwiRVRIXCIsXCJsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OlxcXCJOT0tcXFwiKVwiOntcIl9fcmVmXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGtPRFZrWTJVNVlpMDFZamN6TFRWak0yTXRPRGszT0MwMU1qSmpaVEZrTVdNeFlqUTZUazlMXCJ9LFwiaWRcIjpcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRwa09EVmtZMlU1WWkwMVlqY3pMVFZqTTJNdE9EazNPQzAxTWpKalpURmtNV014WWpRNlwifSxcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwa09EVmtZMlU1WWkwMVlqY3pMVFZqTTJNdE9EazNPQzAxTWpKalpURmtNV014WWpRNlRrOUxcIjp7XCJfX2lkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGtPRFZrWTJVNVlpMDFZamN6TFRWak0yTXRPRGszT0MwMU1qSmpaVEZrTVdNeFlqUTZUazlMXCIsXCJfX3R5cGVuYW1lXCI6XCJMYXRlc3RBc3NldFByaWNlXCIsXCJwcmljZVwiOlwiMTg3MzMuMjI2MjY1NDgyMTM3NzA0MzYzXCIsXCJwZXJjZW50Q2hhbmdlc1wiOntcIl9fcmVmXCI6XCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVHBrT0RWa1kyVTVZaTAxWWpjekxUVmpNMk10T0RrM09DMDFNakpqWlRGa01XTXhZalE2VGs5TDpwZXJjZW50Q2hhbmdlc1wifSxcImlkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGtPRFZrWTJVNVlpMDFZamN6TFRWak0yTXRPRGszT0MwMU1qSmpaVEZrTVdNeFlqUTZUazlMXCJ9LFwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwa09EVmtZMlU1WWkwMVlqY3pMVFZqTTJNdE9EazNPQzAxTWpKalpURmtNV014WWpRNlRrOUw6cGVyY2VudENoYW5nZXNcIjp7XCJfX2lkXCI6XCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVHBrT0RWa1kyVTVZaTAxWWpjekxUVmpNMk10T0RrM09DMDFNakpqWlRGa01XTXhZalE2VGs5TDpwZXJjZW50Q2hhbmdlc1wiLFwiX190eXBlbmFtZVwiOlwiUGVyY2VudENoYW5nZXNcIixcImRheVwiOjAuMDQ2MDI1NTA2NTY4NzgyMX0sXCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIkxJU1RFRFxcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJNQVJLRVRfQ0FQXFxcIik6ZWRnZXM6MlwiOntcIl9faWRcIjpcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiTElTVEVEXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIk1BUktFVF9DQVBcXFwiKTplZGdlczoyXCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldEVkZ2VcIixcIm5vZGVcIjp7XCJfX3JlZlwiOlwiUVhOelpYUTZkakU2WVhOelpYUTZZMjlwYm1KaGMyVTZkWFZwWkRwaU1qWXpNamRqTVMwNVlUTTBMVFV4WkRrdFlqazRNaTA1WWpJNVpUWXdNVEkyTkRnNlwifX0sXCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRHBpTWpZek1qZGpNUzA1WVRNMExUVXhaRGt0WWprNE1pMDVZakk1WlRZd01USTJORGc2XCI6e1wiX19pZFwiOlwiUVhOelpYUTZkakU2WVhOelpYUTZZMjlwYm1KaGMyVTZkWFZwWkRwaU1qWXpNamRqTVMwNVlUTTBMVFV4WkRrdFlqazRNaTA1WWpJNVpUWXdNVEkyTkRnNlwiLFwiX190eXBlbmFtZVwiOlwiQXNzZXRcIixcInV1aWRcIjpcImIyNjMyN2MxLTlhMzQtNTFkOS1iOTgyLTliMjllNjAxMjY0OFwiLFwibmFtZVwiOlwiVGV0aGVyXCIsXCJzbHVnXCI6XCJ0ZXRoZXJcIixcImltYWdlVXJsXCI6XCJodHRwczpcdTAwMkZcdTAwMkZkeW5hbWljLWFzc2V0cy5jb2luYmFzZS5jb21cdTAwMkY0MWY2YTkzYTNhMjIyMDc4YzkzOTExNWZjMzA0YTY3YzM4NDg4NmI3YTllNmMxNWRjYmZhNjUxOWRjNDVmNmJiNGE1ODZlOWM0ODUzNWQwOTllZmE1OTZkYmY4YTlkZDcyYjA1ODE1YmNkMzJhYzY1MGM1MGFiYjUzOTFhNWJkMFx1MDAyRmFzc2V0X2ljb25zXHUwMDJGMWY4NDg5YmIyODBmYjBhMGZkNjQzYzExNjEzMTJiYTQ5NjU1MDQwZTlhYWFjZWQ1ZjlhZDNlZWFmODY4ZWFkYy5wbmdcIixcImRpc3BsYXlTeW1ib2xcIjpcIlVTRFRcIixcImxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6XFxcIk5PS1xcXCIpXCI6e1wiX19yZWZcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwaU1qWXpNamRqTVMwNVlUTTBMVFV4WkRrdFlqazRNaTA1WWpJNVpUWXdNVEkyTkRnNlRrOUxcIn0sXCJpZFwiOlwiUVhOelpYUTZkakU2WVhOelpYUTZZMjlwYm1KaGMyVTZkWFZwWkRwaU1qWXpNamRqTVMwNVlUTTBMVFV4WkRrdFlqazRNaTA1WWpJNVpUWXdNVEkyTkRnNlwifSxcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwaU1qWXpNamRqTVMwNVlUTTBMVFV4WkRrdFlqazRNaTA1WWpJNVpUWXdNVEkyTkRnNlRrOUxcIjp7XCJfX2lkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGlNall6TWpkak1TMDVZVE0wTFRVeFpEa3RZams0TWkwNVlqSTVaVFl3TVRJMk5EZzZUazlMXCIsXCJfX3R5cGVuYW1lXCI6XCJMYXRlc3RBc3NldFByaWNlXCIsXCJwcmljZVwiOlwiOS41NzUzMDc1MTQyODA2Mzc0ODUzNjdcIixcInBlcmNlbnRDaGFuZ2VzXCI6e1wiX19yZWZcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGlNall6TWpkak1TMDVZVE0wTFRVeFpEa3RZams0TWkwNVlqSTVaVFl3TVRJMk5EZzZUazlMOnBlcmNlbnRDaGFuZ2VzXCJ9LFwiaWRcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwaU1qWXpNamRqTVMwNVlUTTBMVFV4WkRrdFlqazRNaTA1WWpJNVpUWXdNVEkyTkRnNlRrOUxcIn0sXCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVHBpTWpZek1qZGpNUzA1WVRNMExUVXhaRGt0WWprNE1pMDVZakk1WlRZd01USTJORGc2VGs5TDpwZXJjZW50Q2hhbmdlc1wiOntcIl9faWRcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGlNall6TWpkak1TMDVZVE0wTFRVeFpEa3RZams0TWkwNVlqSTVaVFl3TVRJMk5EZzZUazlMOnBlcmNlbnRDaGFuZ2VzXCIsXCJfX3R5cGVuYW1lXCI6XCJQZXJjZW50Q2hhbmdlc1wiLFwiZGF5XCI6LTAuMDAwMjIwMTkxNTY2NjYzfSxcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiTElTVEVEXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIk1BUktFVF9DQVBcXFwiKTplZGdlczozXCI6e1wiX19pZFwiOlwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJMSVNURURcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiTUFSS0VUX0NBUFxcXCIpOmVkZ2VzOjNcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0RWRnZVwiLFwibm9kZVwiOntcIl9fcmVmXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRHBsWWpoaFlqVmpZaTFrTW1FMUxUVXdOamd0T0RoaFppMHlNV016WldRNU1qYzFOMkU2XCJ9fSxcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEcGxZamhoWWpWallpMWtNbUUxTFRVd05qZ3RPRGhoWmkweU1XTXpaV1E1TWpjMU4yRTZcIjp7XCJfX2lkXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRHBsWWpoaFlqVmpZaTFrTW1FMUxUVXdOamd0T0RoaFppMHlNV016WldRNU1qYzFOMkU2XCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldFwiLFwidXVpZFwiOlwiZWI4YWI1Y2ItZDJhNS01MDY4LTg4YWYtMjFjM2VkOTI3NTdhXCIsXCJuYW1lXCI6XCJCTkJcIixcInNsdWdcIjpcImJuYlwiLFwiaW1hZ2VVcmxcIjpcImh0dHBzOlx1MDAyRlx1MDAyRmFzc2V0LW1ldGFkYXRhLXNlcnZpY2UtcHJvZHVjdGlvbi5zMy5hbWF6b25hd3MuY29tXHUwMDJGYXNzZXRfaWNvbnNcdTAwMkZjMzQ3YjZkMWE3NjI0ZTI0YzRlOTAwODlhNjlkZmM4ZmI3NTUyM2RhZjhlZWI4ODAwNzM3MmEwYzNhMzBkNDI4LnBuZ1wiLFwiZGlzcGxheVN5bWJvbFwiOlwiQk5CXCIsXCJsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OlxcXCJOT0tcXFwiKVwiOntcIl9fcmVmXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGxZamhoWWpWallpMWtNbUUxTFRVd05qZ3RPRGhoWmkweU1XTXpaV1E1TWpjMU4yRTZUazlMXCJ9LFwiaWRcIjpcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEcGxZamhoWWpWallpMWtNbUUxTFRVd05qZ3RPRGhoWmkweU1XTXpaV1E1TWpjMU4yRTZcIn0sXCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGxZamhoWWpWallpMWtNbUUxTFRVd05qZ3RPRGhoWmkweU1XTXpaV1E1TWpjMU4yRTZUazlMXCI6e1wiX19pZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVHBsWWpoaFlqVmpZaTFrTW1FMUxUVXdOamd0T0RoaFppMHlNV016WldRNU1qYzFOMkU2VGs5TFwiLFwiX190eXBlbmFtZVwiOlwiTGF0ZXN0QXNzZXRQcmljZVwiLFwicHJpY2VcIjpcIjU1MDguNzc0NDM5NjE0Nzk3ODg4MjE3XCIsXCJwZXJjZW50Q2hhbmdlc1wiOntcIl9fcmVmXCI6XCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVHBsWWpoaFlqVmpZaTFrTW1FMUxUVXdOamd0T0RoaFppMHlNV016WldRNU1qYzFOMkU2VGs5TDpwZXJjZW50Q2hhbmdlc1wifSxcImlkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGxZamhoWWpWallpMWtNbUUxTFRVd05qZ3RPRGhoWmkweU1XTXpaV1E1TWpjMU4yRTZUazlMXCJ9LFwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbFlqaGhZalZqWWkxa01tRTFMVFV3TmpndE9EaGhaaTB5TVdNelpXUTVNamMxTjJFNlRrOUw6cGVyY2VudENoYW5nZXNcIjp7XCJfX2lkXCI6XCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVHBsWWpoaFlqVmpZaTFrTW1FMUxUVXdOamd0T0RoaFppMHlNV016WldRNU1qYzFOMkU2VGs5TDpwZXJjZW50Q2hhbmdlc1wiLFwiX190eXBlbmFtZVwiOlwiUGVyY2VudENoYW5nZXNcIixcImRheVwiOjAuMDEwMTc2NDYyMzE3MjEwM30sXCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIkxJU1RFRFxcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJNQVJLRVRfQ0FQXFxcIik6ZWRnZXM6NFwiOntcIl9faWRcIjpcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiTElTVEVEXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIk1BUktFVF9DQVBcXFwiKTplZGdlczo0XCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldEVkZ2VcIixcIm5vZGVcIjp7XCJfX3JlZlwiOlwiUVhOelpYUTZkakU2Wm5WdVoybGlhV3hwZEhrNlkyOXBibUpoYzJVNmRYVnBaRG95WWpreU16RTFaQzFsWVdJM0xUVmlaV1l0T0RSbVlTMHdPRGxoTVRNeE16TXpaalU2XCJ9fSxcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRveVlqa3lNekUxWkMxbFlXSTNMVFZpWldZdE9EUm1ZUzB3T0RsaE1UTXhNek16WmpVNlwiOntcIl9faWRcIjpcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRveVlqa3lNekUxWkMxbFlXSTNMVFZpWldZdE9EUm1ZUzB3T0RsaE1UTXhNek16WmpVNlwiLFwiX190eXBlbmFtZVwiOlwiQXNzZXRcIixcInV1aWRcIjpcIjJiOTIzMTVkLWVhYjctNWJlZi04NGZhLTA4OWExMzEzMzNmNVwiLFwibmFtZVwiOlwiVVNEQ1wiLFwic2x1Z1wiOlwidXNkY1wiLFwiaW1hZ2VVcmxcIjpcImh0dHBzOlx1MDAyRlx1MDAyRmR5bmFtaWMtYXNzZXRzLmNvaW5iYXNlLmNvbVx1MDAyRjNjMTVkZjVlMmFjN2Q0YWJiZTk0OTllZDkzMzUwNDFmMDBjNjIwZjI4ZThkZTJmOTM0NzRhOWY0MzIwNTg3NDJjZGY0Njc0YmQ0M2YzMDllNjk3NzhhMjY5NjkzNzIzMTAxMzViZTk3ZWIxODNkOTFjNDkyMTU0MTc2ZDQ1NWI4XHUwMDJGYXNzZXRfaWNvbnNcdTAwMkY5ZDY3YjcyOGI2YzhmNDU3NzE3MTU0YjNhMzVmOWRkYzcwMmVhZTdlNzZjNDY4NGVlMzkzMDJjNGQ3ZmQwYmI4LnBuZ1wiLFwiZGlzcGxheVN5bWJvbFwiOlwiVVNEQ1wiLFwibGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTpcXFwiTk9LXFxcIilcIjp7XCJfX3JlZlwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVG95WWpreU16RTFaQzFsWVdJM0xUVmlaV1l0T0RSbVlTMHdPRGxoTVRNeE16TXpaalU2VGs5TFwifSxcImlkXCI6XCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEb3lZamt5TXpFMVpDMWxZV0kzTFRWaVpXWXRPRFJtWVMwd09EbGhNVE14TXpNelpqVTZcIn0sXCJUR0YwWlhOMFFYTnpaWFJRY21salpUb3lZamt5TXpFMVpDMWxZV0kzTFRWaVpXWXRPRFJtWVMwd09EbGhNVE14TXpNelpqVTZUazlMXCI6e1wiX19pZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVG95WWpreU16RTFaQzFsWVdJM0xUVmlaV1l0T0RSbVlTMHdPRGxoTVRNeE16TXpaalU2VGs5TFwiLFwiX190eXBlbmFtZVwiOlwiTGF0ZXN0QXNzZXRQcmljZVwiLFwicHJpY2VcIjpcIjkuNTg1MjI4MjI1NDk0MDIzOFwiLFwicGVyY2VudENoYW5nZXNcIjp7XCJfX3JlZlwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRveVlqa3lNekUxWkMxbFlXSTNMVFZpWldZdE9EUm1ZUzB3T0RsaE1UTXhNek16WmpVNlRrOUw6cGVyY2VudENoYW5nZXNcIn0sXCJpZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVG95WWpreU16RTFaQzFsWVdJM0xUVmlaV1l0T0RSbVlTMHdPRGxoTVRNeE16TXpaalU2VGs5TFwifSxcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUb3lZamt5TXpFMVpDMWxZV0kzTFRWaVpXWXRPRFJtWVMwd09EbGhNVE14TXpNelpqVTZUazlMOnBlcmNlbnRDaGFuZ2VzXCI6e1wiX19pZFwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRveVlqa3lNekUxWkMxbFlXSTNMVFZpWldZdE9EUm1ZUzB3T0RsaE1UTXhNek16WmpVNlRrOUw6cGVyY2VudENoYW5nZXNcIixcIl9fdHlwZW5hbWVcIjpcIlBlcmNlbnRDaGFuZ2VzXCIsXCJkYXlcIjowfSxcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiTElTVEVEXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIk1BUktFVF9DQVBcXFwiKTplZGdlczo1XCI6e1wiX19pZFwiOlwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJMSVNURURcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiTUFSS0VUX0NBUFxcXCIpOmVkZ2VzOjVcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0RWRnZVwiLFwibm9kZVwiOntcIl9fcmVmXCI6XCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEcGxNVGRoTkRSak9DMDJaV0V4TFRVMk5HWXRZVEF5WXkweVlUbGpZVEZrT0dWbFl6UTZcIn19LFwiUVhOelpYUTZkakU2Wm5WdVoybGlhV3hwZEhrNlkyOXBibUpoYzJVNmRYVnBaRHBsTVRkaE5EUmpPQzAyWldFeExUVTJOR1l0WVRBeVl5MHlZVGxqWVRGa09HVmxZelE2XCI6e1wiX19pZFwiOlwiUVhOelpYUTZkakU2Wm5WdVoybGlhV3hwZEhrNlkyOXBibUpoYzJVNmRYVnBaRHBsTVRkaE5EUmpPQzAyWldFeExUVTJOR1l0WVRBeVl5MHlZVGxqWVRGa09HVmxZelE2XCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldFwiLFwidXVpZFwiOlwiZTE3YTQ0YzgtNmVhMS01NjRmLWEwMmMtMmE5Y2ExZDhlZWM0XCIsXCJuYW1lXCI6XCJYUlBcIixcInNsdWdcIjpcInhycFwiLFwiaW1hZ2VVcmxcIjpcImh0dHBzOlx1MDAyRlx1MDAyRmR5bmFtaWMtYXNzZXRzLmNvaW5iYXNlLmNvbVx1MDAyRmU4MTUwOWQyMzA3ZjcwNmYzYTZmODk5OTk2ODg3NGI1MGI2Mjg2MzRhYmY1MTU0ZmM5MWE3ZTVmNzY4NWQ0OTZhMzNhY2I0Y2RlMDIyNjVlZDZmNTRiMGEwOGZhNTQ5MTIyMDg1MTZlOTU2YmM1ZjBmZmQxYzljMjYzNDA5OWFlXHUwMDJGYXNzZXRfaWNvbnNcdTAwMkYzYWY0YjMzYmRlMzAxMmZkMjlkZDEzNjZiMGFkNzM3NjYwZjI0YWNjOTE3NTBlZTMwYTAzNGEwNjc5MjU2ZDBiLnBuZ1wiLFwiZGlzcGxheVN5bWJvbFwiOlwiWFJQXCIsXCJsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OlxcXCJOT0tcXFwiKVwiOntcIl9fcmVmXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGxNVGRoTkRSak9DMDJaV0V4TFRVMk5HWXRZVEF5WXkweVlUbGpZVEZrT0dWbFl6UTZUazlMXCJ9LFwiaWRcIjpcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRwbE1UZGhORFJqT0MwMlpXRXhMVFUyTkdZdFlUQXlZeTB5WVRsallURmtPR1ZsWXpRNlwifSxcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbE1UZGhORFJqT0MwMlpXRXhMVFUyTkdZdFlUQXlZeTB5WVRsallURmtPR1ZsWXpRNlRrOUxcIjp7XCJfX2lkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGxNVGRoTkRSak9DMDJaV0V4TFRVMk5HWXRZVEF5WXkweVlUbGpZVEZrT0dWbFl6UTZUazlMXCIsXCJfX3R5cGVuYW1lXCI6XCJMYXRlc3RBc3NldFByaWNlXCIsXCJwcmljZVwiOlwiMTAuNjUwMTQ3MDgxMzQ2NDA5ODQ0MThcIixcInBlcmNlbnRDaGFuZ2VzXCI6e1wiX19yZWZcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGxNVGRoTkRSak9DMDJaV0V4TFRVMk5HWXRZVEF5WXkweVlUbGpZVEZrT0dWbFl6UTZUazlMOnBlcmNlbnRDaGFuZ2VzXCJ9LFwiaWRcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbE1UZGhORFJqT0MwMlpXRXhMVFUyTkdZdFlUQXlZeTB5WVRsallURmtPR1ZsWXpRNlRrOUxcIn0sXCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVHBsTVRkaE5EUmpPQzAyWldFeExUVTJOR1l0WVRBeVl5MHlZVGxqWVRGa09HVmxZelE2VGs5TDpwZXJjZW50Q2hhbmdlc1wiOntcIl9faWRcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGxNVGRoTkRSak9DMDJaV0V4TFRVMk5HWXRZVEF5WXkweVlUbGpZVEZrT0dWbFl6UTZUazlMOnBlcmNlbnRDaGFuZ2VzXCIsXCJfX3R5cGVuYW1lXCI6XCJQZXJjZW50Q2hhbmdlc1wiLFwiZGF5XCI6MC4wMTI1MDkwOTc1MjU0NzMxfSxcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiVE9QX0dBSU5FUlNcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiUEVSQ0VOVF9DSEFOR0VcXFwiKVwiOntcIl9faWRcIjpcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiVE9QX0dBSU5FUlNcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiUEVSQ0VOVF9DSEFOR0VcXFwiKVwiLFwiX190eXBlbmFtZVwiOlwiQXNzZXRDb25uZWN0aW9uXCIsXCJlZGdlc1wiOntcIl9fcmVmc1wiOltcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiVE9QX0dBSU5FUlNcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiUEVSQ0VOVF9DSEFOR0VcXFwiKTplZGdlczowXCIsXCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIlRPUF9HQUlORVJTXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIlBFUkNFTlRfQ0hBTkdFXFxcIik6ZWRnZXM6MVwiLFwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJUT1BfR0FJTkVSU1xcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJQRVJDRU5UX0NIQU5HRVxcXCIpOmVkZ2VzOjJcIixcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiVE9QX0dBSU5FUlNcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiUEVSQ0VOVF9DSEFOR0VcXFwiKTplZGdlczozXCIsXCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIlRPUF9HQUlORVJTXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIlBFUkNFTlRfQ0hBTkdFXFxcIik6ZWRnZXM6NFwiLFwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJUT1BfR0FJTkVSU1xcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJQRVJDRU5UX0NIQU5HRVxcXCIpOmVkZ2VzOjVcIl19fSxcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiVE9QX0dBSU5FUlNcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiUEVSQ0VOVF9DSEFOR0VcXFwiKTplZGdlczowXCI6e1wiX19pZFwiOlwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJUT1BfR0FJTkVSU1xcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJQRVJDRU5UX0NIQU5HRVxcXCIpOmVkZ2VzOjBcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0RWRnZVwiLFwibm9kZVwiOntcIl9fcmVmXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRHBtTWpsak1tUTVNeTFqTldFeUxUUmpaR1l0T0dFek1DMWtOMkZpWWpVd05HSmpOR1U2XCJ9fSxcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEcG1NamxqTW1RNU15MWpOV0V5TFRSalpHWXRPR0V6TUMxa04yRmlZalV3TkdKak5HVTZcIjp7XCJfX2lkXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRHBtTWpsak1tUTVNeTFqTldFeUxUUmpaR1l0T0dFek1DMWtOMkZpWWpVd05HSmpOR1U2XCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldFwiLFwidXVpZFwiOlwiZjI5YzJkOTMtYzVhMi00Y2RmLThhMzAtZDdhYmI1MDRiYzRlXCIsXCJuYW1lXCI6XCJFc3ByZXNzb1wiLFwic2x1Z1wiOlwiZXNwcmVzc29cIixcImltYWdlVXJsXCI6XCJodHRwczpcdTAwMkZcdTAwMkZhc3NldC1tZXRhZGF0YS1zZXJ2aWNlLXByb2R1Y3Rpb24uczMuYW1hem9uYXdzLmNvbVx1MDAyRmFzc2V0X2ljb25zXHUwMDJGMDUzMzA2NWM1Y2M3ZmVhNzEwNjUyNDRhNzBiNDE3NDA3OGE1MGE1ZGFiZDMxYmEzODQ3YTk4YmZiZTMwNmU4NC5wbmdcIixcImRpc3BsYXlTeW1ib2xcIjpcIkVTUFwiLFwibGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTpcXFwiTk9LXFxcIilcIjp7XCJfX3JlZlwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVHBtTWpsak1tUTVNeTFqTldFeUxUUmpaR1l0T0dFek1DMWtOMkZpWWpVd05HSmpOR1U2VGs5TFwifSxcImlkXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRHBtTWpsak1tUTVNeTFqTldFeUxUUmpaR1l0T0dFek1DMWtOMkZpWWpVd05HSmpOR1U2XCJ9LFwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVHBtTWpsak1tUTVNeTFqTldFeUxUUmpaR1l0T0dFek1DMWtOMkZpWWpVd05HSmpOR1U2VGs5TFwiOntcIl9faWRcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbU1qbGpNbVE1TXkxak5XRXlMVFJqWkdZdE9HRXpNQzFrTjJGaVlqVXdOR0pqTkdVNlRrOUxcIixcIl9fdHlwZW5hbWVcIjpcIkxhdGVzdEFzc2V0UHJpY2VcIixcInByaWNlXCI6XCIxLjA1NDk1MDIxODQ5Nzg3MjI1OTQyOFwiLFwicGVyY2VudENoYW5nZXNcIjp7XCJfX3JlZlwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbU1qbGpNbVE1TXkxak5XRXlMVFJqWkdZdE9HRXpNQzFrTjJGaVlqVXdOR0pqTkdVNlRrOUw6cGVyY2VudENoYW5nZXNcIn0sXCJpZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVHBtTWpsak1tUTVNeTFqTldFeUxUUmpaR1l0T0dFek1DMWtOMkZpWWpVd05HSmpOR1U2VGs5TFwifSxcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcG1NamxqTW1RNU15MWpOV0V5TFRSalpHWXRPR0V6TUMxa04yRmlZalV3TkdKak5HVTZUazlMOnBlcmNlbnRDaGFuZ2VzXCI6e1wiX19pZFwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbU1qbGpNbVE1TXkxak5XRXlMVFJqWkdZdE9HRXpNQzFrTjJGaVlqVXdOR0pqTkdVNlRrOUw6cGVyY2VudENoYW5nZXNcIixcIl9fdHlwZW5hbWVcIjpcIlBlcmNlbnRDaGFuZ2VzXCIsXCJkYXlcIjowLjQ3MzU3ODg2MzA5MDQ3MjR9LFwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJUT1BfR0FJTkVSU1xcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJQRVJDRU5UX0NIQU5HRVxcXCIpOmVkZ2VzOjFcIjp7XCJfX2lkXCI6XCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIlRPUF9HQUlORVJTXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIlBFUkNFTlRfQ0hBTkdFXFxcIik6ZWRnZXM6MVwiLFwiX190eXBlbmFtZVwiOlwiQXNzZXRFZGdlXCIsXCJub2RlXCI6e1wiX19yZWZcIjpcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEcG1PRFkzTVRjME1DMHdZalF6TFRRMVltVXRZVFU1WlMwNVlUVXdNbUk1TUROa09EQTZcIn19LFwiUVhOelpYUTZkakU2WVhOelpYUTZZMjlwYm1KaGMyVTZkWFZwWkRwbU9EWTNNVGMwTUMwd1lqUXpMVFExWW1VdFlUVTVaUzA1WVRVd01tSTVNRE5rT0RBNlwiOntcIl9faWRcIjpcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEcG1PRFkzTVRjME1DMHdZalF6TFRRMVltVXRZVFU1WlMwNVlUVXdNbUk1TUROa09EQTZcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0XCIsXCJ1dWlkXCI6XCJmODY3MTc0MC0wYjQzLTQ1YmUtYTU5ZS05YTUwMmI5MDNkODBcIixcIm5hbWVcIjpcIkV1bGVyXCIsXCJzbHVnXCI6XCJldWxlci1maW5hbmNlXCIsXCJpbWFnZVVybFwiOlwiaHR0cHM6XHUwMDJGXHUwMDJGYXNzZXQtbWV0YWRhdGEtc2VydmljZS1wcm9kdWN0aW9uLnMzLmFtYXpvbmF3cy5jb21cdTAwMkZhc3NldF9pY29uc1x1MDAyRjU5NzhlMGIzMDU2OTZhMWRjMWI2YTZiNDQ3YTUxNjkxNTE4MWUyYzY0NTgxNmU3ZDc1ZjZkYjkyNDQ4MGZmZjgucG5nXCIsXCJkaXNwbGF5U3ltYm9sXCI6XCJFVUxcIixcImxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6XFxcIk5PS1xcXCIpXCI6e1wiX19yZWZcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbU9EWTNNVGMwTUMwd1lqUXpMVFExWW1VdFlUVTVaUzA1WVRVd01tSTVNRE5rT0RBNlRrOUxcIn0sXCJpZFwiOlwiUVhOelpYUTZkakU2WVhOelpYUTZZMjlwYm1KaGMyVTZkWFZwWkRwbU9EWTNNVGMwTUMwd1lqUXpMVFExWW1VdFlUVTVaUzA1WVRVd01tSTVNRE5rT0RBNlwifSxcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbU9EWTNNVGMwTUMwd1lqUXpMVFExWW1VdFlUVTVaUzA1WVRVd01tSTVNRE5rT0RBNlRrOUxcIjp7XCJfX2lkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcG1PRFkzTVRjME1DMHdZalF6TFRRMVltVXRZVFU1WlMwNVlUVXdNbUk1TUROa09EQTZUazlMXCIsXCJfX3R5cGVuYW1lXCI6XCJMYXRlc3RBc3NldFByaWNlXCIsXCJwcmljZVwiOlwiMjIuMjYxNjkyNTUzNzA5ODcwMjc1NVwiLFwicGVyY2VudENoYW5nZXNcIjp7XCJfX3JlZlwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbU9EWTNNVGMwTUMwd1lqUXpMVFExWW1VdFlUVTVaUzA1WVRVd01tSTVNRE5rT0RBNlRrOUw6cGVyY2VudENoYW5nZXNcIn0sXCJpZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVHBtT0RZM01UYzBNQzB3WWpRekxUUTFZbVV0WVRVNVpTMDVZVFV3TW1JNU1ETmtPREE2VGs5TFwifSxcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcG1PRFkzTVRjME1DMHdZalF6TFRRMVltVXRZVFU1WlMwNVlUVXdNbUk1TUROa09EQTZUazlMOnBlcmNlbnRDaGFuZ2VzXCI6e1wiX19pZFwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbU9EWTNNVGMwTUMwd1lqUXpMVFExWW1VdFlUVTVaUzA1WVRVd01tSTVNRE5rT0RBNlRrOUw6cGVyY2VudENoYW5nZXNcIixcIl9fdHlwZW5hbWVcIjpcIlBlcmNlbnRDaGFuZ2VzXCIsXCJkYXlcIjowLjMzMjQ4Mjk5MzE5NzI3ODl9LFwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJUT1BfR0FJTkVSU1xcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJQRVJDRU5UX0NIQU5HRVxcXCIpOmVkZ2VzOjJcIjp7XCJfX2lkXCI6XCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIlRPUF9HQUlORVJTXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIlBFUkNFTlRfQ0hBTkdFXFxcIik6ZWRnZXM6MlwiLFwiX190eXBlbmFtZVwiOlwiQXNzZXRFZGdlXCIsXCJub2RlXCI6e1wiX19yZWZcIjpcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRveU16STFPV0UwTnkwMk9XSTNMVFExTURVdFlUWXhPQzAwWkdKaFltSTBabUZqWldZNlwifX0sXCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEb3lNekkxT1dFME55MDJPV0kzTFRRMU1EVXRZVFl4T0MwMFpHSmhZbUkwWm1GalpXWTZcIjp7XCJfX2lkXCI6XCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEb3lNekkxT1dFME55MDJPV0kzTFRRMU1EVXRZVFl4T0MwMFpHSmhZbUkwWm1GalpXWTZcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0XCIsXCJ1dWlkXCI6XCIyMzI1OWE0Ny02OWI3LTQ1MDUtYTYxOC00ZGJhYmI0ZmFjZWZcIixcIm5hbWVcIjpcIlRST0xMXCIsXCJzbHVnXCI6XCJzb2xhbmEtdHJvbGwtaGdoMlwiLFwiaW1hZ2VVcmxcIjpcImh0dHBzOlx1MDAyRlx1MDAyRmFzc2V0LW1ldGFkYXRhLXNlcnZpY2UtcHJvZHVjdGlvbi5zMy5hbWF6b25hd3MuY29tXHUwMDJGYXNzZXRfaWNvbnNcdTAwMkYzZWUxN2E0NWUyM2YwMzhhNGRkMTA4YTdlNzcyZjI1NzIzNjFhN2U2YmNhZGRmZjVlODNkNmUyNWU2N2QxY2ZiLnBuZ1wiLFwiZGlzcGxheVN5bWJvbFwiOlwiVFJPTExcIixcImxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6XFxcIk5PS1xcXCIpXCI6e1wiX19yZWZcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRveU16STFPV0UwTnkwMk9XSTNMVFExTURVdFlUWXhPQzAwWkdKaFltSTBabUZqWldZNlRrOUxcIn0sXCJpZFwiOlwiUVhOelpYUTZkakU2Wm5WdVoybGlhV3hwZEhrNlkyOXBibUpoYzJVNmRYVnBaRG95TXpJMU9XRTBOeTAyT1dJM0xUUTFNRFV0WVRZeE9DMDBaR0poWW1JMFptRmpaV1k2XCJ9LFwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVG95TXpJMU9XRTBOeTAyT1dJM0xUUTFNRFV0WVRZeE9DMDBaR0poWW1JMFptRmpaV1k2VGs5TFwiOntcIl9faWRcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRveU16STFPV0UwTnkwMk9XSTNMVFExTURVdFlUWXhPQzAwWkdKaFltSTBabUZqWldZNlRrOUxcIixcIl9fdHlwZW5hbWVcIjpcIkxhdGVzdEFzc2V0UHJpY2VcIixcInByaWNlXCI6XCIwLjQ4MzE0MzQyODcwNjAyNjI2OTYzOVwiLFwicGVyY2VudENoYW5nZXNcIjp7XCJfX3JlZlwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRveU16STFPV0UwTnkwMk9XSTNMVFExTURVdFlUWXhPQzAwWkdKaFltSTBabUZqWldZNlRrOUw6cGVyY2VudENoYW5nZXNcIn0sXCJpZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVG95TXpJMU9XRTBOeTAyT1dJM0xUUTFNRFV0WVRZeE9DMDBaR0poWW1JMFptRmpaV1k2VGs5TFwifSxcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUb3lNekkxT1dFME55MDJPV0kzTFRRMU1EVXRZVFl4T0MwMFpHSmhZbUkwWm1GalpXWTZUazlMOnBlcmNlbnRDaGFuZ2VzXCI6e1wiX19pZFwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRveU16STFPV0UwTnkwMk9XSTNMVFExTURVdFlUWXhPQzAwWkdKaFltSTBabUZqWldZNlRrOUw6cGVyY2VudENoYW5nZXNcIixcIl9fdHlwZW5hbWVcIjpcIlBlcmNlbnRDaGFuZ2VzXCIsXCJkYXlcIjowLjI5MTQ4OTM2MTcwMjEyNzd9LFwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJUT1BfR0FJTkVSU1xcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJQRVJDRU5UX0NIQU5HRVxcXCIpOmVkZ2VzOjNcIjp7XCJfX2lkXCI6XCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIlRPUF9HQUlORVJTXFxcIixmaXJzdDo2LG9yZGVyOlxcXCJERVNDXFxcIixxdWVyeTpcXFwiXFxcIixyZXNvbHV0aW9uOlxcXCJEQVlcXFwiLHNvcnQ6XFxcIlBFUkNFTlRfQ0hBTkdFXFxcIik6ZWRnZXM6M1wiLFwiX190eXBlbmFtZVwiOlwiQXNzZXRFZGdlXCIsXCJub2RlXCI6e1wiX19yZWZcIjpcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEcGtPR1E1WkdVNFlTMWtNVE5pTFRVM1ltTXRPVGxqWWkxaU1XUTFORFptT0RJd1pEWTZcIn19LFwiUVhOelpYUTZkakU2WVhOelpYUTZZMjlwYm1KaGMyVTZkWFZwWkRwa09HUTVaR1U0WVMxa01UTmlMVFUzWW1NdE9UbGpZaTFpTVdRMU5EWm1PREl3WkRZNlwiOntcIl9faWRcIjpcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEcGtPR1E1WkdVNFlTMWtNVE5pTFRVM1ltTXRPVGxqWWkxaU1XUTFORFptT0RJd1pEWTZcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0XCIsXCJ1dWlkXCI6XCJkOGQ5ZGU4YS1kMTNiLTU3YmMtOTljYi1iMWQ1NDZmODIwZDZcIixcIm5hbWVcIjpcIkRJQVwiLFwic2x1Z1wiOlwiZGlhXCIsXCJpbWFnZVVybFwiOlwiaHR0cHM6XHUwMDJGXHUwMDJGYXNzZXQtbWV0YWRhdGEtc2VydmljZS1wcm9kdWN0aW9uLnMzLmFtYXpvbmF3cy5jb21cdTAwMkZhc3NldF9pY29uc1x1MDAyRjc4MjcyMDI5NmY4OWFjNTkxZDZlMzBmMTRkYWY0NzY2ZTVhZmIyMTBiMzgxYjJhZjI1MDVlYWEzOTA4M2Y2ZTUucG5nXCIsXCJkaXNwbGF5U3ltYm9sXCI6XCJESUFcIixcImxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6XFxcIk5PS1xcXCIpXCI6e1wiX19yZWZcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwa09HUTVaR1U0WVMxa01UTmlMVFUzWW1NdE9UbGpZaTFpTVdRMU5EWm1PREl3WkRZNlRrOUxcIn0sXCJpZFwiOlwiUVhOelpYUTZkakU2WVhOelpYUTZZMjlwYm1KaGMyVTZkWFZwWkRwa09HUTVaR1U0WVMxa01UTmlMVFUzWW1NdE9UbGpZaTFpTVdRMU5EWm1PREl3WkRZNlwifSxcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwa09HUTVaR1U0WVMxa01UTmlMVFUzWW1NdE9UbGpZaTFpTVdRMU5EWm1PREl3WkRZNlRrOUxcIjp7XCJfX2lkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGtPR1E1WkdVNFlTMWtNVE5pTFRVM1ltTXRPVGxqWWkxaU1XUTFORFptT0RJd1pEWTZUazlMXCIsXCJfX3R5cGVuYW1lXCI6XCJMYXRlc3RBc3NldFByaWNlXCIsXCJwcmljZVwiOlwiMS4zNzIzMTcxMjUwNDM5NzkzODc0NDZcIixcInBlcmNlbnRDaGFuZ2VzXCI6e1wiX19yZWZcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGtPR1E1WkdVNFlTMWtNVE5pTFRVM1ltTXRPVGxqWWkxaU1XUTFORFptT0RJd1pEWTZUazlMOnBlcmNlbnRDaGFuZ2VzXCJ9LFwiaWRcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwa09HUTVaR1U0WVMxa01UTmlMVFUzWW1NdE9UbGpZaTFpTVdRMU5EWm1PREl3WkRZNlRrOUxcIn0sXCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVHBrT0dRNVpHVTRZUzFrTVROaUxUVTNZbU10T1RsallpMWlNV1ExTkRabU9ESXdaRFk2VGs5TDpwZXJjZW50Q2hhbmdlc1wiOntcIl9faWRcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGtPR1E1WkdVNFlTMWtNVE5pTFRVM1ltTXRPVGxqWWkxaU1XUTFORFptT0RJd1pEWTZUazlMOnBlcmNlbnRDaGFuZ2VzXCIsXCJfX3R5cGVuYW1lXCI6XCJQZXJjZW50Q2hhbmdlc1wiLFwiZGF5XCI6MC4yODUwNDQ4NTIwNTUxNjEzfSxcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiVE9QX0dBSU5FUlNcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiUEVSQ0VOVF9DSEFOR0VcXFwiKTplZGdlczo0XCI6e1wiX19pZFwiOlwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJUT1BfR0FJTkVSU1xcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJQRVJDRU5UX0NIQU5HRVxcXCIpOmVkZ2VzOjRcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0RWRnZVwiLFwibm9kZVwiOntcIl9fcmVmXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRHBoWXpNM016aGpNaTFrTURVeExUUXdORGt0T1dZM01TMDJOell3TkRZM1lqRXpNV002XCJ9fSxcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEcGhZek0zTXpoak1pMWtNRFV4TFRRd05Ea3RPV1kzTVMwMk56WXdORFkzWWpFek1XTTZcIjp7XCJfX2lkXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRHBoWXpNM016aGpNaTFrTURVeExUUXdORGt0T1dZM01TMDJOell3TkRZM1lqRXpNV002XCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldFwiLFwidXVpZFwiOlwiYWMzNzM4YzItZDA1MS00MDQ5LTlmNzEtNjc2MDQ2N2IxMzFjXCIsXCJuYW1lXCI6XCJTYWZlXCIsXCJzbHVnXCI6XCJzYWZlLXRva2VuXCIsXCJpbWFnZVVybFwiOlwiaHR0cHM6XHUwMDJGXHUwMDJGYXNzZXQtbWV0YWRhdGEtc2VydmljZS1wcm9kdWN0aW9uLnMzLmFtYXpvbmF3cy5jb21cdTAwMkZhc3NldF9pY29uc1x1MDAyRjU2Zjg0MGZlMTI2NTRjMmRlNzQ0N2QzMTkzODJjNzdjOGY5MTUxMGFkYTVhYTIyM2MyYTgzYmZjNTBjZDhmM2IucG5nXCIsXCJkaXNwbGF5U3ltYm9sXCI6XCJTQUZFXCIsXCJsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OlxcXCJOT0tcXFwiKVwiOntcIl9fcmVmXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGhZek0zTXpoak1pMWtNRFV4TFRRd05Ea3RPV1kzTVMwMk56WXdORFkzWWpFek1XTTZUazlMXCJ9LFwiaWRcIjpcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEcGhZek0zTXpoak1pMWtNRFV4TFRRd05Ea3RPV1kzTVMwMk56WXdORFkzWWpFek1XTTZcIn0sXCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGhZek0zTXpoak1pMWtNRFV4TFRRd05Ea3RPV1kzTVMwMk56WXdORFkzWWpFek1XTTZUazlMXCI6e1wiX19pZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVHBoWXpNM016aGpNaTFrTURVeExUUXdORGt0T1dZM01TMDJOell3TkRZM1lqRXpNV002VGs5TFwiLFwiX190eXBlbmFtZVwiOlwiTGF0ZXN0QXNzZXRQcmljZVwiLFwicHJpY2VcIjpcIjAuOTg1ODQwNzIyOTkyMDYwMzQ3ODNcIixcInBlcmNlbnRDaGFuZ2VzXCI6e1wiX19yZWZcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGhZek0zTXpoak1pMWtNRFV4TFRRd05Ea3RPV1kzTVMwMk56WXdORFkzWWpFek1XTTZUazlMOnBlcmNlbnRDaGFuZ2VzXCJ9LFwiaWRcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwaFl6TTNNemhqTWkxa01EVXhMVFF3TkRrdE9XWTNNUzAyTnpZd05EWTNZakV6TVdNNlRrOUxcIn0sXCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVHBoWXpNM016aGpNaTFrTURVeExUUXdORGt0T1dZM01TMDJOell3TkRZM1lqRXpNV002VGs5TDpwZXJjZW50Q2hhbmdlc1wiOntcIl9faWRcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGhZek0zTXpoak1pMWtNRFV4TFRRd05Ea3RPV1kzTVMwMk56WXdORFkzWWpFek1XTTZUazlMOnBlcmNlbnRDaGFuZ2VzXCIsXCJfX3R5cGVuYW1lXCI6XCJQZXJjZW50Q2hhbmdlc1wiLFwiZGF5XCI6MC4yNTIxMTA5NzcwODA4MjAzfSxcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiVE9QX0dBSU5FUlNcXFwiLGZpcnN0OjYsb3JkZXI6XFxcIkRFU0NcXFwiLHF1ZXJ5OlxcXCJcXFwiLHJlc29sdXRpb246XFxcIkRBWVxcXCIsc29ydDpcXFwiUEVSQ0VOVF9DSEFOR0VcXFwiKTplZGdlczo1XCI6e1wiX19pZFwiOlwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJUT1BfR0FJTkVSU1xcXCIsZmlyc3Q6NixvcmRlcjpcXFwiREVTQ1xcXCIscXVlcnk6XFxcIlxcXCIscmVzb2x1dGlvbjpcXFwiREFZXFxcIixzb3J0OlxcXCJQRVJDRU5UX0NIQU5HRVxcXCIpOmVkZ2VzOjVcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0RWRnZVwiLFwibm9kZVwiOntcIl9fcmVmXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRG8xWlRoa056VmtZeTAzWkRBNExUUm1aRGt0WWpRNE15MW1OakF6WlRJNE5qTXdPRGM2XCJ9fSxcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEbzFaVGhrTnpWa1l5MDNaREE0TFRSbVpEa3RZalE0TXkxbU5qQXpaVEk0TmpNd09EYzZcIjp7XCJfX2lkXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRG8xWlRoa056VmtZeTAzWkRBNExUUm1aRGt0WWpRNE15MW1OakF6WlRJNE5qTXdPRGM2XCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldFwiLFwidXVpZFwiOlwiNWU4ZDc1ZGMtN2QwOC00ZmQ5LWI0ODMtZjYwM2UyODYzMDg3XCIsXCJuYW1lXCI6XCJUaGVvcmlxXCIsXCJzbHVnXCI6XCJ0aGVvcmlxXCIsXCJpbWFnZVVybFwiOlwiaHR0cHM6XHUwMDJGXHUwMDJGYXNzZXQtbWV0YWRhdGEtc2VydmljZS1wcm9kdWN0aW9uLnMzLmFtYXpvbmF3cy5jb21cdTAwMkZhc3NldF9pY29uc1x1MDAyRmE2Yjk5OTMwZjEyYzc4YWNiZjIxZWRlNzRlZWRhNTMyMzdhODRmMmE0ZWEzNjc3NzY2YmM3N2VhODkwZmI3YjgucG5nXCIsXCJkaXNwbGF5U3ltYm9sXCI6XCJUSFFcIixcImxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6XFxcIk5PS1xcXCIpXCI6e1wiX19yZWZcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvMVpUaGtOelZrWXkwM1pEQTRMVFJtWkRrdFlqUTRNeTFtTmpBelpUSTROak13T0RjNlRrOUxcIn0sXCJpZFwiOlwiUVhOelpYUTZkakU2WVhOelpYUTZZMjlwYm1KaGMyVTZkWFZwWkRvMVpUaGtOelZrWXkwM1pEQTRMVFJtWkRrdFlqUTRNeTFtTmpBelpUSTROak13T0RjNlwifSxcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvMVpUaGtOelZrWXkwM1pEQTRMVFJtWkRrdFlqUTRNeTFtTmpBelpUSTROak13T0RjNlRrOUxcIjp7XCJfX2lkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUbzFaVGhrTnpWa1l5MDNaREE0TFRSbVpEa3RZalE0TXkxbU5qQXpaVEk0TmpNd09EYzZUazlMXCIsXCJfX3R5cGVuYW1lXCI6XCJMYXRlc3RBc3NldFByaWNlXCIsXCJwcmljZVwiOlwiMC4xMTQ4MzEwMzQxNDE0MTg0MDUxMjRcIixcInBlcmNlbnRDaGFuZ2VzXCI6e1wiX19yZWZcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUbzFaVGhrTnpWa1l5MDNaREE0TFRSbVpEa3RZalE0TXkxbU5qQXpaVEk0TmpNd09EYzZUazlMOnBlcmNlbnRDaGFuZ2VzXCJ9LFwiaWRcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvMVpUaGtOelZrWXkwM1pEQTRMVFJtWkRrdFlqUTRNeTFtTmpBelpUSTROak13T0RjNlRrOUxcIn0sXCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVG8xWlRoa056VmtZeTAzWkRBNExUUm1aRGt0WWpRNE15MW1OakF6WlRJNE5qTXdPRGM2VGs5TDpwZXJjZW50Q2hhbmdlc1wiOntcIl9faWRcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUbzFaVGhrTnpWa1l5MDNaREE0TFRSbVpEa3RZalE0TXkxbU5qQXpaVEk0TmpNd09EYzZUazlMOnBlcmNlbnRDaGFuZ2VzXCIsXCJfX3R5cGVuYW1lXCI6XCJQZXJjZW50Q2hhbmdlc1wiLFwiZGF5XCI6MC4xOTA1NDY1Mjg4MDM1NDUxfSxcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiUkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTXFxcIixmaXJzdDo2KVwiOntcIl9faWRcIjpcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiUkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTXFxcIixmaXJzdDo2KVwiLFwiX190eXBlbmFtZVwiOlwiQXNzZXRDb25uZWN0aW9uXCIsXCJlZGdlc1wiOntcIl9fcmVmc1wiOltcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiUkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTXFxcIixmaXJzdDo2KTplZGdlczowXCIsXCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIlJFQ0VOVExZX0xJU1RFRF8zX01PTlRIU1xcXCIsZmlyc3Q6Nik6ZWRnZXM6MVwiLFwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJSRUNFTlRMWV9MSVNURURfM19NT05USFNcXFwiLGZpcnN0OjYpOmVkZ2VzOjJcIixcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiUkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTXFxcIixmaXJzdDo2KTplZGdlczozXCIsXCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIlJFQ0VOVExZX0xJU1RFRF8zX01PTlRIU1xcXCIsZmlyc3Q6Nik6ZWRnZXM6NFwiLFwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJSRUNFTlRMWV9MSVNURURfM19NT05USFNcXFwiLGZpcnN0OjYpOmVkZ2VzOjVcIl19fSxcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiUkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTXFxcIixmaXJzdDo2KTplZGdlczowXCI6e1wiX19pZFwiOlwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJSRUNFTlRMWV9MSVNURURfM19NT05USFNcXFwiLGZpcnN0OjYpOmVkZ2VzOjBcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0RWRnZVwiLFwibm9kZVwiOntcIl9fcmVmXCI6XCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEcGpPR1E1WlRjd05DMHhNVFkyTFRSa05ESXRPV1EwTWkwNE5qUXhNemN5TUdGa09HTTZcIn19LFwiUVhOelpYUTZkakU2Wm5WdVoybGlhV3hwZEhrNlkyOXBibUpoYzJVNmRYVnBaRHBqT0dRNVpUY3dOQzB4TVRZMkxUUmtOREl0T1dRME1pMDROalF4TXpjeU1HRmtPR002XCI6e1wiX19pZFwiOlwiUVhOelpYUTZkakU2Wm5WdVoybGlhV3hwZEhrNlkyOXBibUpoYzJVNmRYVnBaRHBqT0dRNVpUY3dOQzB4TVRZMkxUUmtOREl0T1dRME1pMDROalF4TXpjeU1HRmtPR002XCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldFwiLFwidXVpZFwiOlwiYzhkOWU3MDQtMTE2Ni00ZDQyLTlkNDItODY0MTM3MjBhZDhjXCIsXCJuYW1lXCI6XCJWaXJ0dWFscyBQcm90b2NvbFwiLFwic2x1Z1wiOlwidmlydHVhbC1wcm90b2NvbFwiLFwiaW1hZ2VVcmxcIjpcImh0dHBzOlx1MDAyRlx1MDAyRmFzc2V0LW1ldGFkYXRhLXNlcnZpY2UtcHJvZHVjdGlvbi5zMy5hbWF6b25hd3MuY29tXHUwMDJGYXNzZXRfaWNvbnNcdTAwMkZmZjYxOWU1NWNjNDg3ZTRmODRmYzc1YTU2YmQxZjA1OTVlZGQ4N2E2NzYyZTc4ZDc2YzZiNDY1ZWVhNTYzYjU4LnBuZ1wiLFwiZGlzcGxheVN5bWJvbFwiOlwiVklSVFVBTFwiLFwibGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTpcXFwiTk9LXFxcIilcIjp7XCJfX3JlZlwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVHBqT0dRNVpUY3dOQzB4TVRZMkxUUmtOREl0T1dRME1pMDROalF4TXpjeU1HRmtPR002VGs5TFwifSxcImlkXCI6XCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEcGpPR1E1WlRjd05DMHhNVFkyTFRSa05ESXRPV1EwTWkwNE5qUXhNemN5TUdGa09HTTZcIn0sXCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGpPR1E1WlRjd05DMHhNVFkyTFRSa05ESXRPV1EwTWkwNE5qUXhNemN5TUdGa09HTTZUazlMXCI6e1wiX19pZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVHBqT0dRNVpUY3dOQzB4TVRZMkxUUmtOREl0T1dRME1pMDROalF4TXpjeU1HRmtPR002VGs5TFwiLFwiX190eXBlbmFtZVwiOlwiTGF0ZXN0QXNzZXRQcmljZVwiLFwicHJpY2VcIjpcIjUuNzQ3NzgyMTA1NDE3NDkxMzcxNjdcIixcInBlcmNlbnRDaGFuZ2VzXCI6e1wiX19yZWZcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGpPR1E1WlRjd05DMHhNVFkyTFRSa05ESXRPV1EwTWkwNE5qUXhNemN5TUdGa09HTTZUazlMOnBlcmNlbnRDaGFuZ2VzXCJ9LFwiaWRcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwak9HUTVaVGN3TkMweE1UWTJMVFJrTkRJdE9XUTBNaTA0TmpReE16Y3lNR0ZrT0dNNlRrOUxcIn0sXCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVHBqT0dRNVpUY3dOQzB4TVRZMkxUUmtOREl0T1dRME1pMDROalF4TXpjeU1HRmtPR002VGs5TDpwZXJjZW50Q2hhbmdlc1wiOntcIl9faWRcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGpPR1E1WlRjd05DMHhNVFkyTFRSa05ESXRPV1EwTWkwNE5qUXhNemN5TUdGa09HTTZUazlMOnBlcmNlbnRDaGFuZ2VzXCIsXCJfX3R5cGVuYW1lXCI6XCJQZXJjZW50Q2hhbmdlc1wiLFwiZGF5XCI6MC4wMjc4Nzc1NDQwMzk2Nzg1fSxcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiUkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTXFxcIixmaXJzdDo2KTplZGdlczoxXCI6e1wiX19pZFwiOlwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJSRUNFTlRMWV9MSVNURURfM19NT05USFNcXFwiLGZpcnN0OjYpOmVkZ2VzOjFcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0RWRnZVwiLFwibm9kZVwiOntcIl9fcmVmXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRG8xWVdRM01tRTBNUzFsTXpnMExUUTBOMlV0T1dFMk55MWhNV1ZsTWpZNFlUYzBPV1E2XCJ9fSxcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEbzFZV1EzTW1FME1TMWxNemcwTFRRME4yVXRPV0UyTnkxaE1XVmxNalk0WVRjME9XUTZcIjp7XCJfX2lkXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRG8xWVdRM01tRTBNUzFsTXpnMExUUTBOMlV0T1dFMk55MWhNV1ZsTWpZNFlUYzBPV1E2XCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldFwiLFwidXVpZFwiOlwiNWFkNzJhNDEtZTM4NC00NDdlLTlhNjctYTFlZTI2OGE3NDlkXCIsXCJuYW1lXCI6XCJOZXh1c1wiLFwic2x1Z1wiOlwibmV4dXMtZXRoXCIsXCJpbWFnZVVybFwiOlwiaHR0cHM6XHUwMDJGXHUwMDJGYXNzZXQtbWV0YWRhdGEtc2VydmljZS1wcm9kdWN0aW9uLnMzLmFtYXpvbmF3cy5jb21cdTAwMkZhc3NldF9pY29uc1x1MDAyRjQ1YzM1NjI0N2M4ODA1M2ViMDUxMTQ1ZTZkY2M2MTk3OWRiZDBmYzJmMDc0ZDE3YjVhMjcxNjRhNzRiYTA2ODgucG5nXCIsXCJkaXNwbGF5U3ltYm9sXCI6XCJORVhcIixcImxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6XFxcIk5PS1xcXCIpXCI6e1wiX19yZWZcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvMVlXUTNNbUUwTVMxbE16ZzBMVFEwTjJVdE9XRTJOeTFoTVdWbE1qWTRZVGMwT1dRNlRrOUxcIn0sXCJpZFwiOlwiUVhOelpYUTZkakU2WVhOelpYUTZZMjlwYm1KaGMyVTZkWFZwWkRvMVlXUTNNbUUwTVMxbE16ZzBMVFEwTjJVdE9XRTJOeTFoTVdWbE1qWTRZVGMwT1dRNlwifSxcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvMVlXUTNNbUUwTVMxbE16ZzBMVFEwTjJVdE9XRTJOeTFoTVdWbE1qWTRZVGMwT1dRNlRrOUxcIjp7XCJfX2lkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUbzFZV1EzTW1FME1TMWxNemcwTFRRME4yVXRPV0UyTnkxaE1XVmxNalk0WVRjME9XUTZUazlMXCIsXCJfX3R5cGVuYW1lXCI6XCJMYXRlc3RBc3NldFByaWNlXCIsXCJwcmljZVwiOlwiMC4wMDAwMTUwOTY3MzQ0NTUxNTMwODc0ODVcIixcInBlcmNlbnRDaGFuZ2VzXCI6e1wiX19yZWZcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUbzFZV1EzTW1FME1TMWxNemcwTFRRME4yVXRPV0UyTnkxaE1XVmxNalk0WVRjME9XUTZUazlMOnBlcmNlbnRDaGFuZ2VzXCJ9LFwiaWRcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvMVlXUTNNbUUwTVMxbE16ZzBMVFEwTjJVdE9XRTJOeTFoTVdWbE1qWTRZVGMwT1dRNlRrOUxcIn0sXCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVG8xWVdRM01tRTBNUzFsTXpnMExUUTBOMlV0T1dFMk55MWhNV1ZsTWpZNFlUYzBPV1E2VGs5TDpwZXJjZW50Q2hhbmdlc1wiOntcIl9faWRcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUbzFZV1EzTW1FME1TMWxNemcwTFRRME4yVXRPV0UyTnkxaE1XVmxNalk0WVRjME9XUTZUazlMOnBlcmNlbnRDaGFuZ2VzXCIsXCJfX3R5cGVuYW1lXCI6XCJQZXJjZW50Q2hhbmdlc1wiLFwiZGF5XCI6MC4wMDYzODk3NzYzNTc4Mjc1fSxcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiUkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTXFxcIixmaXJzdDo2KTplZGdlczoyXCI6e1wiX19pZFwiOlwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJSRUNFTlRMWV9MSVNURURfM19NT05USFNcXFwiLGZpcnN0OjYpOmVkZ2VzOjJcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0RWRnZVwiLFwibm9kZVwiOntcIl9fcmVmXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRHBsTXpsa1pqTmxZaTFqTldJM0xUUmpOR1V0T1RjeVl5MDFOV00wT0Rjd05UUmlOakU2XCJ9fSxcIlFYTnpaWFE2ZGpFNllYTnpaWFE2WTI5cGJtSmhjMlU2ZFhWcFpEcGxNemxrWmpObFlpMWpOV0kzTFRSak5HVXRPVGN5WXkwMU5XTTBPRGN3TlRSaU5qRTZcIjp7XCJfX2lkXCI6XCJRWE56WlhRNmRqRTZZWE56WlhRNlkyOXBibUpoYzJVNmRYVnBaRHBsTXpsa1pqTmxZaTFqTldJM0xUUmpOR1V0T1RjeVl5MDFOV00wT0Rjd05UUmlOakU2XCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldFwiLFwidXVpZFwiOlwiZTM5ZGYzZWItYzViNy00YzRlLTk3MmMtNTVjNDg3MDU0YjYxXCIsXCJuYW1lXCI6XCJSRVwiLFwic2x1Z1wiOlwicmUtZXRoXCIsXCJpbWFnZVVybFwiOlwiaHR0cHM6XHUwMDJGXHUwMDJGYXNzZXQtbWV0YWRhdGEtc2VydmljZS1wcm9kdWN0aW9uLnMzLmFtYXpvbmF3cy5jb21cdTAwMkZhc3NldF9pY29uc1x1MDAyRjJjODBhOTFmMzFkZmQ2MWQyMzg0YjJhNGVlYzAwYmY0YWQ0ZTU0ZWY1ZDk5NjUyNDg2OTZhNzhkMmQ3NmVhNWQuanBlZ1wiLFwiZGlzcGxheVN5bWJvbFwiOlwiUkVcIixcImxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6XFxcIk5PS1xcXCIpXCI6e1wiX19yZWZcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbE16bGtaak5sWWkxak5XSTNMVFJqTkdVdE9UY3lZeTAxTldNME9EY3dOVFJpTmpFNlRrOUxcIn0sXCJpZFwiOlwiUVhOelpYUTZkakU2WVhOelpYUTZZMjlwYm1KaGMyVTZkWFZwWkRwbE16bGtaak5sWWkxak5XSTNMVFJqTkdVdE9UY3lZeTAxTldNME9EY3dOVFJpTmpFNlwifSxcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbE16bGtaak5sWWkxak5XSTNMVFJqTkdVdE9UY3lZeTAxTldNME9EY3dOVFJpTmpFNlRrOUxcIjp7XCJfX2lkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUcGxNemxrWmpObFlpMWpOV0kzTFRSak5HVXRPVGN5WXkwMU5XTTBPRGN3TlRSaU5qRTZUazlMXCIsXCJfX3R5cGVuYW1lXCI6XCJMYXRlc3RBc3NldFByaWNlXCIsXCJwcmljZVwiOlwiNC42MTk2MDA3NDMyNzY4NDQ3NzA0MVwiLFwicGVyY2VudENoYW5nZXNcIjp7XCJfX3JlZlwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbE16bGtaak5sWWkxak5XSTNMVFJqTkdVdE9UY3lZeTAxTldNME9EY3dOVFJpTmpFNlRrOUw6cGVyY2VudENoYW5nZXNcIn0sXCJpZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVHBsTXpsa1pqTmxZaTFqTldJM0xUUmpOR1V0T1RjeVl5MDFOV00wT0Rjd05UUmlOakU2VGs5TFwifSxcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGxNemxrWmpObFlpMWpOV0kzTFRSak5HVXRPVGN5WXkwMU5XTTBPRGN3TlRSaU5qRTZUazlMOnBlcmNlbnRDaGFuZ2VzXCI6e1wiX19pZFwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbE16bGtaak5sWWkxak5XSTNMVFJqTkdVdE9UY3lZeTAxTldNME9EY3dOVFJpTmpFNlRrOUw6cGVyY2VudENoYW5nZXNcIixcIl9fdHlwZW5hbWVcIjpcIlBlcmNlbnRDaGFuZ2VzXCIsXCJkYXlcIjotMC4xMjY1MjUwNzkwNzgxNzQ0fSxcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiUkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTXFxcIixmaXJzdDo2KTplZGdlczozXCI6e1wiX19pZFwiOlwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJSRUNFTlRMWV9MSVNURURfM19NT05USFNcXFwiLGZpcnN0OjYpOmVkZ2VzOjNcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0RWRnZVwiLFwibm9kZVwiOntcIl9fcmVmXCI6XCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEbzROREpsTXpjNU1DMDBOR0k1TFRSa056QXRPRE14WWkxaE9EWTROek5rTlRVd016TTZcIn19LFwiUVhOelpYUTZkakU2Wm5WdVoybGlhV3hwZEhrNlkyOXBibUpoYzJVNmRYVnBaRG80TkRKbE16YzVNQzAwTkdJNUxUUmtOekF0T0RNeFlpMWhPRFk0TnpOa05UVXdNek02XCI6e1wiX19pZFwiOlwiUVhOelpYUTZkakU2Wm5WdVoybGlhV3hwZEhrNlkyOXBibUpoYzJVNmRYVnBaRG80TkRKbE16YzVNQzAwTkdJNUxUUmtOekF0T0RNeFlpMWhPRFk0TnpOa05UVXdNek02XCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldFwiLFwidXVpZFwiOlwiODQyZTM3OTAtNDRiOS00ZDcwLTgzMWItYTg2ODczZDU1MDMzXCIsXCJuYW1lXCI6XCJvMS5leGNoYW5nZVwiLFwic2x1Z1wiOlwiby1iYXNlXCIsXCJpbWFnZVVybFwiOlwiaHR0cHM6XHUwMDJGXHUwMDJGYXNzZXQtbWV0YWRhdGEtc2VydmljZS1wcm9kdWN0aW9uLnMzLmFtYXpvbmF3cy5jb21cdTAwMkZhc3NldF9pY29uc1x1MDAyRmIyMTAwZTI1NTQzNzQwMzUyYjJiMWY3Mjc1ZGQxZDQ1OGVmOGE0OGQyMzQ2M2Q0ZjFmMzlmMGY5N2Q0MTU0MjEucG5nXCIsXCJkaXNwbGF5U3ltYm9sXCI6XCJPXCIsXCJsYXRlc3RQcmljZShxdW90ZUN1cnJlbmN5OlxcXCJOT0tcXFwiKVwiOntcIl9fcmVmXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUbzROREpsTXpjNU1DMDBOR0k1TFRSa056QXRPRE14WWkxaE9EWTROek5rTlRVd016TTZUazlMXCJ9LFwiaWRcIjpcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRvNE5ESmxNemM1TUMwME5HSTVMVFJrTnpBdE9ETXhZaTFoT0RZNE56TmtOVFV3TXpNNlwifSxcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvNE5ESmxNemM1TUMwME5HSTVMVFJrTnpBdE9ETXhZaTFoT0RZNE56TmtOVFV3TXpNNlRrOUxcIjp7XCJfX2lkXCI6XCJUR0YwWlhOMFFYTnpaWFJRY21salpUbzROREpsTXpjNU1DMDBOR0k1TFRSa056QXRPRE14WWkxaE9EWTROek5rTlRVd016TTZUazlMXCIsXCJfX3R5cGVuYW1lXCI6XCJMYXRlc3RBc3NldFByaWNlXCIsXCJwcmljZVwiOlwiNC41OTM3Njg1NTMyMDkxMzgzNzYyNjlcIixcInBlcmNlbnRDaGFuZ2VzXCI6e1wiX19yZWZcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUbzROREpsTXpjNU1DMDBOR0k1TFRSa056QXRPRE14WWkxaE9EWTROek5rTlRVd016TTZUazlMOnBlcmNlbnRDaGFuZ2VzXCJ9LFwiaWRcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvNE5ESmxNemM1TUMwME5HSTVMVFJrTnpBdE9ETXhZaTFoT0RZNE56TmtOVFV3TXpNNlRrOUxcIn0sXCJjbGllbnQ6VEdGMFpYTjBRWE56WlhSUWNtbGpaVG80TkRKbE16YzVNQzAwTkdJNUxUUmtOekF0T0RNeFlpMWhPRFk0TnpOa05UVXdNek02VGs5TDpwZXJjZW50Q2hhbmdlc1wiOntcIl9faWRcIjpcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUbzROREpsTXpjNU1DMDBOR0k1TFRSa056QXRPRE14WWkxaE9EWTROek5rTlRVd016TTZUazlMOnBlcmNlbnRDaGFuZ2VzXCIsXCJfX3R5cGVuYW1lXCI6XCJQZXJjZW50Q2hhbmdlc1wiLFwiZGF5XCI6LTAuMDUzMDY2MTMwNjg0OTUzMX0sXCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIlJFQ0VOVExZX0xJU1RFRF8zX01PTlRIU1xcXCIsZmlyc3Q6Nik6ZWRnZXM6NFwiOntcIl9faWRcIjpcImNsaWVudDpyb290OnNlYXJjaEFzc2V0c1YyKGZpbHRlcjpcXFwiUkVDRU5UTFlfTElTVEVEXzNfTU9OVEhTXFxcIixmaXJzdDo2KTplZGdlczo0XCIsXCJfX3R5cGVuYW1lXCI6XCJBc3NldEVkZ2VcIixcIm5vZGVcIjp7XCJfX3JlZlwiOlwiUVhOelpYUTZkakU2Wm5WdVoybGlhV3hwZEhrNlkyOXBibUpoYzJVNmRYVnBaRG8yTnpSak56QXdZUzB6TlRVMkxUUXpZVGd0WWpNeE9DMWxPR00xT1dSak56a3hNRGs2XCJ9fSxcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRvMk56UmpOekF3WVMwek5UVTJMVFF6WVRndFlqTXhPQzFsT0dNMU9XUmpOemt4TURrNlwiOntcIl9faWRcIjpcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRvMk56UmpOekF3WVMwek5UVTJMVFF6WVRndFlqTXhPQzFsT0dNMU9XUmpOemt4TURrNlwiLFwiX190eXBlbmFtZVwiOlwiQXNzZXRcIixcInV1aWRcIjpcIjY3NGM3MDBhLTM1NTYtNDNhOC1iMzE4LWU4YzU5ZGM3OTEwOVwiLFwibmFtZVwiOlwiR2VvZG5ldFwiLFwic2x1Z1wiOlwiZ2VvZG5ldFwiLFwiaW1hZ2VVcmxcIjpcImh0dHBzOlx1MDAyRlx1MDAyRmFzc2V0LW1ldGFkYXRhLXNlcnZpY2UtcHJvZHVjdGlvbi5zMy5hbWF6b25hd3MuY29tXHUwMDJGYXNzZXRfaWNvbnNcdTAwMkY1YWJlZTJjMGNjYjAxODMxMjQ2ZDgzMjY4Y2Y1ZDMxZjU0NDQ1M2EyZTBmNTU4NjM1OTQ5YTIzMzQzOGQ2MWVjLnBuZ1wiLFwiZGlzcGxheVN5bWJvbFwiOlwiR0VPRFwiLFwibGF0ZXN0UHJpY2UocXVvdGVDdXJyZW5jeTpcXFwiTk9LXFxcIilcIjp7XCJfX3JlZlwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVG8yTnpSak56QXdZUzB6TlRVMkxUUXpZVGd0WWpNeE9DMWxPR00xT1dSak56a3hNRGs2VGs5TFwifSxcImlkXCI6XCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEbzJOelJqTnpBd1lTMHpOVFUyTFRRellUZ3RZak14T0MxbE9HTTFPV1JqTnpreE1EazZcIn0sXCJUR0YwWlhOMFFYTnpaWFJRY21salpUbzJOelJqTnpBd1lTMHpOVFUyTFRRellUZ3RZak14T0MxbE9HTTFPV1JqTnpreE1EazZUazlMXCI6e1wiX19pZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVG8yTnpSak56QXdZUzB6TlRVMkxUUXpZVGd0WWpNeE9DMWxPR00xT1dSak56a3hNRGs2VGs5TFwiLFwiX190eXBlbmFtZVwiOlwiTGF0ZXN0QXNzZXRQcmljZVwiLFwicHJpY2VcIjpcIjIuMDg0Nzg3MTM5MDQ0OTUwMTc2NVwiLFwicGVyY2VudENoYW5nZXNcIjp7XCJfX3JlZlwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvMk56UmpOekF3WVMwek5UVTJMVFF6WVRndFlqTXhPQzFsT0dNMU9XUmpOemt4TURrNlRrOUw6cGVyY2VudENoYW5nZXNcIn0sXCJpZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVG8yTnpSak56QXdZUzB6TlRVMkxUUXpZVGd0WWpNeE9DMWxPR00xT1dSak56a3hNRGs2VGs5TFwifSxcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUbzJOelJqTnpBd1lTMHpOVFUyTFRRellUZ3RZak14T0MxbE9HTTFPV1JqTnpreE1EazZUazlMOnBlcmNlbnRDaGFuZ2VzXCI6e1wiX19pZFwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRvMk56UmpOekF3WVMwek5UVTJMVFF6WVRndFlqTXhPQzFsT0dNMU9XUmpOemt4TURrNlRrOUw6cGVyY2VudENoYW5nZXNcIixcIl9fdHlwZW5hbWVcIjpcIlBlcmNlbnRDaGFuZ2VzXCIsXCJkYXlcIjowLjA1MDg0MzM3MzQ5Mzk3NTl9LFwiY2xpZW50OnJvb3Q6c2VhcmNoQXNzZXRzVjIoZmlsdGVyOlxcXCJSRUNFTlRMWV9MSVNURURfM19NT05USFNcXFwiLGZpcnN0OjYpOmVkZ2VzOjVcIjp7XCJfX2lkXCI6XCJjbGllbnQ6cm9vdDpzZWFyY2hBc3NldHNWMihmaWx0ZXI6XFxcIlJFQ0VOVExZX0xJU1RFRF8zX01PTlRIU1xcXCIsZmlyc3Q6Nik6ZWRnZXM6NVwiLFwiX190eXBlbmFtZVwiOlwiQXNzZXRFZGdlXCIsXCJub2RlXCI6e1wiX19yZWZcIjpcIlFYTnpaWFE2ZGpFNlpuVnVaMmxpYVd4cGRIazZZMjlwYm1KaGMyVTZkWFZwWkRwbFlqUXdaRGM1TUMxbE5qSTRMVFE0TjJRdFlqRmtNeTA1TXpaaE1EZzJPVGd5Tm1JNlwifX0sXCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEcGxZalF3WkRjNU1DMWxOakk0TFRRNE4yUXRZakZrTXkwNU16WmhNRGcyT1RneU5tSTZcIjp7XCJfX2lkXCI6XCJRWE56WlhRNmRqRTZablZ1WjJsaWFXeHBkSGs2WTI5cGJtSmhjMlU2ZFhWcFpEcGxZalF3WkRjNU1DMWxOakk0TFRRNE4yUXRZakZrTXkwNU16WmhNRGcyT1RneU5tSTZcIixcIl9fdHlwZW5hbWVcIjpcIkFzc2V0XCIsXCJ1dWlkXCI6XCJlYjQwZDc5MC1lNjI4LTQ4N2QtYjFkMy05MzZhMDg2OTgyNmJcIixcIm5hbWVcIjpcIkRlcml2ZVwiLFwic2x1Z1wiOlwiZGVyaXZlXCIsXCJpbWFnZVVybFwiOlwiaHR0cHM6XHUwMDJGXHUwMDJGYXNzZXQtbWV0YWRhdGEtc2VydmljZS1wcm9kdWN0aW9uLnMzLmFtYXpvbmF3cy5jb21cdTAwMkZhc3NldF9pY29uc1x1MDAyRjExNDA4MmIxYmMxODVhZDc2ZWQyOGY5OTgyZDI2YmEzMzllMmQ4NmZlMDMxYTdiMzUzZTNjZDEzOTg0ZTE5ZGUucG5nXCIsXCJkaXNwbGF5U3ltYm9sXCI6XCJEUlZcIixcImxhdGVzdFByaWNlKHF1b3RlQ3VycmVuY3k6XFxcIk5PS1xcXCIpXCI6e1wiX19yZWZcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbFlqUXdaRGM1TUMxbE5qSTRMVFE0TjJRdFlqRmtNeTA1TXpaaE1EZzJPVGd5Tm1JNlRrOUxcIn0sXCJpZFwiOlwiUVhOelpYUTZkakU2Wm5WdVoybGlhV3hwZEhrNlkyOXBibUpoYzJVNmRYVnBaRHBsWWpRd1pEYzVNQzFsTmpJNExUUTROMlF0WWpGa015MDVNelpoTURnMk9UZ3lObUk2XCJ9LFwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVHBsWWpRd1pEYzVNQzFsTmpJNExUUTROMlF0WWpGa015MDVNelpoTURnMk9UZ3lObUk2VGs5TFwiOntcIl9faWRcIjpcIlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbFlqUXdaRGM1TUMxbE5qSTRMVFE0TjJRdFlqRmtNeTA1TXpaaE1EZzJPVGd5Tm1JNlRrOUxcIixcIl9fdHlwZW5hbWVcIjpcIkxhdGVzdEFzc2V0UHJpY2VcIixcInByaWNlXCI6XCIxLjA5ODI3NTQ1MDA3NzEwNTI0NzAwNFwiLFwicGVyY2VudENoYW5nZXNcIjp7XCJfX3JlZlwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbFlqUXdaRGM1TUMxbE5qSTRMVFE0TjJRdFlqRmtNeTA1TXpaaE1EZzJPVGd5Tm1JNlRrOUw6cGVyY2VudENoYW5nZXNcIn0sXCJpZFwiOlwiVEdGMFpYTjBRWE56WlhSUWNtbGpaVHBsWWpRd1pEYzVNQzFsTmpJNExUUTROMlF0WWpGa015MDVNelpoTURnMk9UZ3lObUk2VGs5TFwifSxcImNsaWVudDpUR0YwWlhOMFFYTnpaWFJRY21salpUcGxZalF3WkRjNU1DMWxOakk0TFRRNE4yUXRZakZrTXkwNU16WmhNRGcyT1RneU5tSTZUazlMOnBlcmNlbnRDaGFuZ2VzXCI6e1wiX19pZFwiOlwiY2xpZW50OlRHRjBaWE4wUVhOelpYUlFjbWxqWlRwbFlqUXdaRGM1TUMxbE5qSTRMVFE0TjJRdFlqRmtNeTA1TXpaaE1EZzJPVGd5Tm1JNlRrOUw6cGVyY2VudENoYW5nZXNcIixcIl9fdHlwZW5hbWVcIjpcIlBlcmNlbnRDaGFuZ2VzXCIsXCJkYXlcIjowLjAxMzY3NTEzODUxMDI0NTR9fSxcInF1ZXJ5TWV0YWRhdGFcIjp7XCI1NjFjZmE3YzY4YzZmMTQ2YzIwMmFmODIxNWRkNmI1MWM4NjFlODg1NzZlNTY3Mzg5ZmNmZTIzZDU5OGI5MGQ5e1xcXCJhc3NldExpbWl0XFxcIjo2LFxcXCJxdW90ZUN1cnJlbmN5XFxcIjpcXFwiTk9LXFxcIixcXFwic2hvdWxkVXNlVUFTRmllbGRzXFxcIjpmYWxzZX1cIjp7XCJvcGVyYXRpb25OYW1lXCI6XCJDRFhIb21lUGFnZVF1ZXJ5XCIsXCJsYXN0U3RhcnRFcG9jaFwiOjE3ODUxMDc5ODQ5NDksXCJsYXN0U3VjY2Vzc0Vwb2NoXCI6MTc4NTEwNzk4NTAzNixcImxhc3RDb21wbGV0ZUVwb2NoXCI6MTc4NTEwNzk4NTAzNn0sXCJjZDljNzkyYzM4NTdmMWUyMWQzOGQ1ZGQwZjg3ZDA3NTY0MjRlOTgyNTllMTBmYjMzNWQwMzgyMTE5ZWU4NTM3e1xcXCJjb3VudHJ5Q29kZVxcXCI6XFxcIk5PXFxcIixcXFwic2tpcEhpZ2hlc3RFYXJuQVBZXFxcIjpmYWxzZSxcXFwic2tpcFVzZGNcXFwiOmZhbHNlfVwiOntcIm9wZXJhdGlvbk5hbWVcIjpcImdyYXBocWxQbGFjZWhvbGRlcnNRdWVyeVwiLFwibGFzdFN0YXJ0RXBvY2hcIjoxNzg1MTA3OTg0OTUwLFwibGFzdFN1Y2Nlc3NFcG9jaFwiOjE3ODUxMDc5ODQ5NzUsXCJsYXN0Q29tcGxldGVFcG9jaFwiOjE3ODUxMDc5ODQ5NzV9fX0iLCJzdXNwZW5zZUJyaWRnZURhdGEiOiJbe1wia2V5XCI6XCJDRFhIb21lUGFnZV9ob21lcGFnZVwiLFwicGFyYW1zXCI6e1wiY21zUGFyYW1zXCI6e1wibG9jYWxlQ29kZVwiOlwiZW5cIixcInBhcmFtc1wiOnt9LFwicGF0aG5hbWVcIjpcIlx1MDAyRmludGwtaG9tZVwiLFwiY2FjaGVWZXJzaW9uXCI6XCJcIn0sXCJjb3VudHJ5RnJvbVVybFwiOlwiVVNcIixcImNvdW50cnlGcm9tSXBcIjpcIk5PXCJ9LFwic3RhdHVzXCI6XCJmZXRjaGVkXCIsXCJkYXRhXCI6e1wiY29udGVudFR5cGVJZFwiOlwicGFnZVwiLFwiaWRcIjpcIjJXdzZPTVQ3RUFUWDAxMzZ6WlowWnRcIixcInVwZGF0ZWRBdFwiOlwiMjAyNi0wNC0zMFQxMzozNDo1MS4yOTZaXCIsXCJuYW1lXCI6XCJETyBOT1QgUFVCTElTSCBVTlRJTCA0XHUwMDJGMjdcdTAwMkYyNiEhIEludGVybmF0aW9uYWwgSG9tZSBQYWdlIC0gQ0IxIE1lbWJlciBNb250aCBvdmVycmlkZVwiLFwidGl0bGVcIjpcIkNvaW5iYXNlIC0gQnV5IGFuZCBTZWxsIEJpdGNvaW4sIEV0aGVyZXVtLCBhbmQgbW9yZSB3aXRoIHRydXN0XCIsXCJzbHVnXCI6XCJcdTAwMkZtZW1iZXItbW9udGgtb3ZlcnJpZGVcdTAwMkZpbnRsLWhvbWVcIixcInNlb1wiOntcImNvbnRlbnRUeXBlSWRcIjpcInNlb1wiLFwiaWRcIjpcIjFiSFh0MmxUemhrb2FBRklybU5LbG9cIixcIm5hbWVcIjpcIkludGVybmF0aW9uYWwgSG9tZSBQYWdlIChHZW5lcmljIHRlbXBsYXRlIGFsc28gdXNlZCBvbiBcdTAwMkZzdG9jay1wZXJwcy1sb2NhbGVzXHUwMDJGaG9tZXBhZ2UsIFx1MDAyRmVlYS1waGFzZS0yXHUwMDJGaG9tZXBhZ2UsIFx1MDAyRmVlYS1waGFzZS0yXHUwMDJGaG9tZXBhZ2UsIFx1MDAyRmJlcm11ZGEtZW50aXRpZXNcdTAwMkZob21lcGFnZSkgLSBDb21wb3NlOiBTRU9cIixcInRpdGxlXCI6XCJDb2luYmFzZSAtIEJ1eSBhbmQgU2VsbCBCaXRjb2luLCBFdGhlcmV1bSwgYW5kIG1vcmUgd2l0aCB0cnVzdFwiLFwibm9faW5kZXhcIjpmYWxzZSxcIm5vX2ZvbGxvd1wiOmZhbHNlLFwiaW1hZ2VcIjp7XCJjb250ZW50VHlwZUlkXCI6XCJBc3NldFwiLFwiaWRcIjpcIjZqUHAwVzd4SDJQZThrd1VTNzlaU21cIixcImRlc2NyaXB0aW9uXCI6XCJcIixcInVybFwiOlwiXHUwMDJGXHUwMDJGaW1hZ2VzLmN0ZmFzc2V0cy5uZXRcdTAwMkZvMTBlczd3dTVnbTFcdTAwMkY2alBwMFc3eEgyUGU4a3dVUzc5WlNtXHUwMDJGNmI1ODYxODkyODZjNDZlNTQ1MzI5ZGJlNjQzZjc0ZDZcdTAwMkZDQl9ibG9nX2ltYWdlLnBuZ1wiLFwid2lkdGhcIjo0MDAwLFwiaGVpZ2h0XCI6MjI0OCxcImNvbnRlbnRUeXBlXCI6XCJpbWFnZVx1MDAyRmpwZWdcIn19LFwiY29udGVudFwiOntcImNvbnRlbnRUeXBlSWRcIjpcIkNEWFYyX0dlbmVyaWNUZW1wbGF0ZVwiLFwiaWRcIjpcIjFEVmRhVmZOMktmS1VyaHFhakZRUTVcIixcImNvbXBvbmVudHNcIjpbe1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfSGVyb0hvbWVcIixcImlkXCI6XCI1TUxIOWVKTEdIMk1DRmVzandPMFBXXCIsXCJjb21wb25lbnRJZFwiOlwiaGVyby1pbnRsLWhvbWUtY2R4djJcIixcImxheW91dFwiOlwiU3RhbmRhcmQ6IE1lZGlhIC0gVGV4dFwiLFwiaGVhZGxpbmVcIjp7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwibWFya3NcIjpbXSxcInZhbHVlXCI6XCJUaGUgZnV0dXJlIG9mIGZpbmFuY2UgaXMgaGVyZS5cXG5cIixcIm5vZGVUeXBlXCI6XCJ0ZXh0XCJ9XSxcIm5vZGVUeXBlXCI6XCJwYXJhZ3JhcGhcIn1dLFwibm9kZVR5cGVcIjpcImRvY3VtZW50XCJ9LFwic3ViaGVhZFwiOntcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJtYXJrc1wiOltdLFwidmFsdWVcIjpcIlRyYWRlIGNyeXB0byBhbmQgbW9yZSBvbiBhIHBsYXRmb3JtIHlvdSBjYW4gdHJ1c3QuXCIsXCJub2RlVHlwZVwiOlwidGV4dFwifV0sXCJub2RlVHlwZVwiOlwicGFyYWdyYXBoXCJ9XSxcIm5vZGVUeXBlXCI6XCJkb2N1bWVudFwifSxcIm1lZGlhXCI6e1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfSW1hZ2VcIixcImlkXCI6XCIyZzJwRHpWOTZZa2hqS0V2czdGNDN3XCIsXCJpbWFnZUFsdFRleHRcIjpcIkNvaW5iYXNlXCIsXCJoaWRlQmFja2dyb3VuZFwiOnRydWUsXCJkZWZhdWx0SW1hZ2VcIjp7XCJjb250ZW50VHlwZUlkXCI6XCJBc3NldFwiLFwiaWRcIjpcIjRsYlNyZnZGMzMzWGtQejdXeWNpeFFcIixcImRlc2NyaXB0aW9uXCI6XCJcIixcInVybFwiOlwiXHUwMDJGXHUwMDJGaW1hZ2VzLmN0ZmFzc2V0cy5uZXRcdTAwMkZvMTBlczd3dTVnbTFcdTAwMkY0bGJTcmZ2RjMzM1hrUHo3V3ljaXhRXHUwMDJGYWZiZWVmYjY4ZWFiOTQwNTU5NGIyZTliZmJiOWExNTJcdTAwMkZIZXJvX180Xy5wbmdcIixcIndpZHRoXCI6MTgwMCxcImhlaWdodFwiOjE4MDAsXCJjb250ZW50VHlwZVwiOlwiaW1hZ2VcdTAwMkZwbmdcIn0sXCJkZWZhdWx0SW1hZ2VGaXRcIjpcImNvdmVyXCJ9LFwiY3RhVHlwZVwiOlwiRW1haWwgRm9ybVwiLFwiY3RhTGFiZWxcIjpcIlNpZ24gdXBcIixcImN0YVBsYWNlaG9sZGVyXCI6XCJzYXRvc2hpQG5ha2Ftb3RvLmNvbVwiLFwibGVnYWxcIjp7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwibWFya3NcIjpbXSxcInZhbHVlXCI6XCJTdG9ja3MgYW5kIHByZWRpY3Rpb24gbWFya2V0cyBub3QgYXZhaWxhYmxlIGluIHlvdXIganVyaXNkaWN0aW9uLlwiLFwibm9kZVR5cGVcIjpcInRleHRcIn1dLFwibm9kZVR5cGVcIjpcInBhcmFncmFwaFwifV0sXCJub2RlVHlwZVwiOlwiZG9jdW1lbnRcIn19LHtcImNvbnRlbnRUeXBlSWRcIjpcIkNEWFYyX0N1c3RvbUNvbXBvbmVudFwiLFwiaWRcIjpcImlRZ2FnRXJUcHZ3ZlR2VEF3dGlnV1wiLFwiY29tcG9uZW50SWRcIjpcImludGwtaG9tZXBhZ2UtZmVhdHVyZS1hc3NldHNcIixcImN1c3RvbUNvbXBvbmVudEtleVwiOlwiRmVhdHVyZUFzc2V0c1wiLFwiY29udGVudFwiOlt7XCJjb250ZW50VHlwZUlkXCI6XCJDRFhWMl9DdXN0b21Db21wb25lbnRUZXh0XCIsXCJpZFwiOlwiNDBrWVJGTlhhNjNobGtDOG50MXNRZFwiLFwia2V5XCI6XCJ0aXRsZVwiLFwidmFsdWVcIjp7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwibWFya3NcIjpbXSxcInZhbHVlXCI6XCJFeHBsb3JlIGNyeXB0byBsaWtlIEJpdGNvaW4sIEV0aGVyZXVtLCBhbmQgRG9nZWNvaW4uXCIsXCJub2RlVHlwZVwiOlwidGV4dFwifV0sXCJub2RlVHlwZVwiOlwiaGVhZGluZy0yXCJ9LHtcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwibWFya3NcIjpbXSxcInZhbHVlXCI6XCJcIixcIm5vZGVUeXBlXCI6XCJ0ZXh0XCJ9XSxcIm5vZGVUeXBlXCI6XCJwYXJhZ3JhcGhcIn1dLFwibm9kZVR5cGVcIjpcImRvY3VtZW50XCJ9fSx7XCJjb250ZW50VHlwZUlkXCI6XCJDRFhWMl9DdXN0b21Db21wb25lbnRUZXh0XCIsXCJpZFwiOlwiM0RleU92RFVacld3OFdHQW00NWJhdFwiLFwia2V5XCI6XCJzdWJoZWFkXCIsXCJ2YWx1ZVwiOntcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJtYXJrc1wiOltdLFwidmFsdWVcIjpcIlNpbXBseSBhbmQgc2VjdXJlbHkgYnV5LCBzZWxsLCBhbmQgbWFuYWdlIGh1bmRyZWRzIG9mIGNyeXB0b2N1cnJlbmNpZXMuXCIsXCJub2RlVHlwZVwiOlwidGV4dFwifV0sXCJub2RlVHlwZVwiOlwicGFyYWdyYXBoXCJ9XSxcIm5vZGVUeXBlXCI6XCJkb2N1bWVudFwifX0se1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfQ3VzdG9tQ29tcG9uZW50UmVmZXJlbmNlXCIsXCJpZFwiOlwiMVd2MllJTXdTRGFUZ05reHJNV0R4R1wiLFwia2V5XCI6XCJjdGFCdXR0b25cIixcInZhbHVlXCI6e1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfQnV0dG9uXCIsXCJpZFwiOlwiemlyRU1HcUszM2dhdGhHVUY3bEdxXCIsXCJjb21wb25lbnRJZFwiOlwiY2R4LXYyLWN1c3RvbS1jb21wb25lbnQtZmVhdHVyZS1hc3NldHMtY3RhLXJlZmVyZW5jZS1jdGFcIixcImxhYmVsXCI6XCJTZWUgbW9yZSBhc3NldHNcIixcImxpbmtcIjpcImh0dHBzOlx1MDAyRlx1MDAyRnd3dy5jb2luYmFzZS5jb21cdTAwMkZleHBsb3JlXCIsXCJ2YXJpYW50XCI6XCJwcmltYXJ5XCIsXCJvcGVuSW5OZXdUYWJcIjp0cnVlfX1dfSx7XCJjb250ZW50VHlwZUlkXCI6XCJDRFhWMl9GZWF0dXJlSGlnaGxpZ2h0c1wiLFwiaWRcIjpcIjM1NEhneHVheVlraHBCZVRSc05RVEJcIixcImNvbXBvbmVudElkXCI6XCJpbnRsLWhvbWVwYWdlLWZlYXR1cmUtaGlnaGxpZ2h0c1wiLFwic3RhcnRQb3NpdGlvblwiOlwiSW1hZ2UgTGVmdFwiLFwic2VjdGlvbnNcIjpbe1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfRmVhdHVyZUhpZ2hsaWdodHNJdGVtXCIsXCJpZFwiOlwieWN4M0pzYW41N0liODNUTGZFZWREXCIsXCJjb21wb25lbnRJZFwiOlwiZmVhdHVyZS1oaWdobGlnaHQtYWR2YW5jZWQtdXMtaG9tZXBhZ2VcIixcIm1lZGlhXCI6e1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfSW1hZ2VcIixcImlkXCI6XCJjUmxKVHdwUjltaTFKRXpnM3p5elpcIixcImltYWdlQWx0VGV4dFwiOlwiQWR2YW5jZWQgVHJhZGUgTW9iaWxlIFVJXCIsXCJoaWRlQmFja2dyb3VuZFwiOnRydWUsXCJkZWZhdWx0SW1hZ2VcIjp7XCJjb250ZW50VHlwZUlkXCI6XCJBc3NldFwiLFwiaWRcIjpcIjNGd2lHdnU1ZllWc2x1ZGk4amdPWTdcIixcImRlc2NyaXB0aW9uXCI6XCJcIixcInVybFwiOlwiXHUwMDJGXHUwMDJGaW1hZ2VzLmN0ZmFzc2V0cy5uZXRcdTAwMkZvMTBlczd3dTVnbTFcdTAwMkYzRndpR3Z1NWZZVnNsdWRpOGpnT1k3XHUwMDJGMTRlNzAzOTU1ODc4NmYxODIxMjNlNjU4YzY5NDAxNTFcdTAwMkZBZHZhbmNlZC5wbmdcIixcIndpZHRoXCI6MjAxNCxcImhlaWdodFwiOjE2MTIsXCJjb250ZW50VHlwZVwiOlwiaW1hZ2VcdTAwMkZwbmdcIn0sXCJkZWZhdWx0SW1hZ2VGaXRcIjpcImNvdmVyXCIsXCJtb2JpbGVJbWFnZUZpdFwiOlwiY292ZXJcIn0sXCJ0aXRsZVwiOntcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJtYXJrc1wiOltdLFwidmFsdWVcIjpcIlBvd2VyZnVsIHRvb2xzLCBkZXNpZ25lZCBmb3IgdGhlIGFkdmFuY2VkIHRyYWRlci5cIixcIm5vZGVUeXBlXCI6XCJ0ZXh0XCJ9XSxcIm5vZGVUeXBlXCI6XCJwYXJhZ3JhcGhcIn1dLFwibm9kZVR5cGVcIjpcImRvY3VtZW50XCJ9LFwicGFyYWdyYXBoXCI6e1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcIm1hcmtzXCI6W10sXCJ2YWx1ZVwiOlwiUG93ZXJmdWwgYW5hbHl0aWNhbCB0b29scyB3aXRoIHRoZSBzYWZldHkgYW5kIHNlY3VyaXR5IG9mIENvaW5iYXNlIGRlbGl2ZXIgdGhlIHVsdGltYXRlIHRyYWRpbmcgZXhwZXJpZW5jZS4gVGFwIGludG8gc29waGlzdGljYXRlZCBjaGFydGluZyBjYXBhYmlsaXRpZXMsIHJlYWwtdGltZSBvcmRlciBib29rcywgYW5kIGRlZXAgbGlxdWlkaXR5IGFjcm9zcyBodW5kcmVkcyBvZiBtYXJrZXRzLlwiLFwibm9kZVR5cGVcIjpcInRleHRcIn1dLFwibm9kZVR5cGVcIjpcInBhcmFncmFwaFwifV0sXCJub2RlVHlwZVwiOlwiZG9jdW1lbnRcIn0sXCJjdGFHcm91cFwiOlt7XCJjb250ZW50VHlwZUlkXCI6XCJDRFhWMl9CdXR0b25cIixcImlkXCI6XCIyUHRjdlpJZTZHZzNYQ2lCSnJtMmpUXCIsXCJjb21wb25lbnRJZFwiOlwic3RhcnQtdHJhZGluZy1mZWF0dXJlLWhpZ2hsaWdodC11cy1ob21lcGFnZVwiLFwibGFiZWxcIjpcIlN0YXJ0IHRyYWRpbmdcIixcImxpbmtcIjpcIlx1MDAyRmFkdmFuY2VkLXRyYWRlXCIsXCJ2YXJpYW50XCI6XCJwcmltYXJ5XCIsXCJvcGVuSW5OZXdUYWJcIjp0cnVlfV19LHtcImNvbnRlbnRUeXBlSWRcIjpcIkNEWFYyX0ZlYXR1cmVIaWdobGlnaHRzSXRlbVwiLFwiaWRcIjpcIjdGSlczakhFZ2tBckU4Q2hDbkxxTXVcIixcImNvbXBvbmVudElkXCI6XCJmZWF0dXJlLWhpZ2hsaWdodC1jb2luYmFzZS1vbmUtdXMtaG9tZXBhZ2VcIixcIm1lZGlhXCI6e1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfSW1hZ2VcIixcImlkXCI6XCIybVZmR2tWbmlGWWVFVGtNUzh4bDgwXCIsXCJpbWFnZUFsdFRleHRcIjpcIk5vIHRyYWRpbmcgZmVlc1wiLFwiaGlkZUJhY2tncm91bmRcIjpmYWxzZSxcImRlZmF1bHRJbWFnZVwiOntcImNvbnRlbnRUeXBlSWRcIjpcIkFzc2V0XCIsXCJpZFwiOlwiNEN5ZkZqOE0wWDh0S256aDhBZ2R4VFwiLFwiZGVzY3JpcHRpb25cIjpcIlwiLFwidXJsXCI6XCJcdTAwMkZcdTAwMkZpbWFnZXMuY3RmYXNzZXRzLm5ldFx1MDAyRm8xMGVzN3d1NWdtMVx1MDAyRjRDeWZGajhNMFg4dEtuemg4QWdkeFRcdTAwMkZmMGZhNTI3NTA0OTlkOWIxNjkxZjYyODgwOTA2ZmYzZVx1MDAyRnplcm9fZmVlc191cy5wbmdcIixcIndpZHRoXCI6MTMyMCxcImhlaWdodFwiOjEzMjAsXCJjb250ZW50VHlwZVwiOlwiaW1hZ2VcdTAwMkZwbmdcIn0sXCJkZWZhdWx0SW1hZ2VGaXRcIjpcImNvbnRhaW5cIn0sXCJleWVicm93VGV4dFwiOlwiQ09JTkJBU0UgT05FXCIsXCJleWVicm93SWNvblwiOlwiY29pbmJhc2VcIixcInRpdGxlXCI6e1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcIm1hcmtzXCI6W10sXCJ2YWx1ZVwiOlwiWmVybyB0cmFkaW5nIGZlZXMsIG1vcmUgcmV3YXJkcy5cIixcIm5vZGVUeXBlXCI6XCJ0ZXh0XCJ9XSxcIm5vZGVUeXBlXCI6XCJwYXJhZ3JhcGhcIn1dLFwibm9kZVR5cGVcIjpcImRvY3VtZW50XCJ9LFwicGFyYWdyYXBoXCI6e1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcIm1hcmtzXCI6W10sXCJ2YWx1ZVwiOlwiR2V0IG1vcmUgb3V0IG9mIGNyeXB0byB3aXRoIG9uZSBtZW1iZXJzaGlwOiB6ZXJvIHRyYWRpbmcgZmVlcywgYm9vc3RlZCByZXdhcmRzLCBwcmlvcml0eSBzdXBwb3J0LCBhbmQgbW9yZS5cIixcIm5vZGVUeXBlXCI6XCJ0ZXh0XCJ9XSxcIm5vZGVUeXBlXCI6XCJwYXJhZ3JhcGhcIn1dLFwibm9kZVR5cGVcIjpcImRvY3VtZW50XCJ9LFwiY3RhR3JvdXBcIjpbe1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfQnV0dG9uXCIsXCJpZFwiOlwiNms2eEFOSlUzZ01CcEFlRU5ZZXJIalwiLFwiY29tcG9uZW50SWRcIjpcImNsYWltLWZyZWUtdHJpYWwtYnV0dG9uLWNvaW5iYXNlLW9uZS11cy1ob21lcGFnZVwiLFwibGFiZWxcIjpcIkNsYWltIGZyZWUgdHJpYWxcIixcImxpbmtcIjpcImh0dHBzOlx1MDAyRlx1MDAyRmNvaW5iYXNlLmNvbVx1MDAyRm9uZT9yZWZlcnJlcj1sb2dnZWRfb3V0XCIsXCJ2YXJpYW50XCI6XCJwcmltYXJ5XCIsXCJvcGVuSW5OZXdUYWJcIjp0cnVlfV19LHtcImNvbnRlbnRUeXBlSWRcIjpcIkNEWFYyX0ZlYXR1cmVIaWdobGlnaHRzSXRlbVwiLFwiaWRcIjpcIjJLTkZIS3FkWHkwVnRDVEhqaDRIaHBcIixcImNvbXBvbmVudElkXCI6XCJmZWF0dXJlLWhpZ2hsaWdodC13YWxsZXQtdXMtaG9tZXBhZ2VcIixcIm1lZGlhXCI6e1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfSW1hZ2VcIixcImlkXCI6XCIxaDNnR05vbm56bUE0YVlGM3ZqdkZHXCIsXCJpbWFnZUFsdFRleHRcIjpcIkJhc2UgQXBwIHNjcmVlblwiLFwiaGlkZUJhY2tncm91bmRcIjpmYWxzZSxcImRlZmF1bHRJbWFnZVwiOntcImNvbnRlbnRUeXBlSWRcIjpcIkFzc2V0XCIsXCJpZFwiOlwiMXYzdGZiVnViWmZPUHhCMjdtb2lyclwiLFwiZGVzY3JpcHRpb25cIjpcIlwiLFwidXJsXCI6XCJcdTAwMkZcdTAwMkZpbWFnZXMuY3RmYXNzZXRzLm5ldFx1MDAyRm8xMGVzN3d1NWdtMVx1MDAyRjF2M3RmYlZ1YlpmT1B4QjI3bW9pcnJcdTAwMkY1MWNhMTUwYzMzYTUwYzdhOGU2ZDlhYTRmMzEwMzQ3OFx1MDAyRmJhc2UtYXBwLWNvaW5iYXNlLWNvbS5wbmdcIixcIndpZHRoXCI6OTc1LFwiaGVpZ2h0XCI6OTc1LFwiY29udGVudFR5cGVcIjpcImltYWdlXHUwMDJGcG5nXCJ9LFwiZGVmYXVsdEltYWdlRml0XCI6XCJzY2FsZS1kb3duXCJ9LFwiZXllYnJvd1RleHRcIjpcIkJBU0UgQVBQXCIsXCJleWVicm93SWNvblwiOlwiYmFzZVwiLFwidGl0bGVcIjp7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwibWFya3NcIjpbXSxcInZhbHVlXCI6XCJUcmFkZSwgc3Rha2UsIGFuZCBlYXJuLiBBbGwgb25jaGFpbi5cIixcIm5vZGVUeXBlXCI6XCJ0ZXh0XCJ9XSxcIm5vZGVUeXBlXCI6XCJwYXJhZ3JhcGhcIn1dLFwibm9kZVR5cGVcIjpcImRvY3VtZW50XCJ9LFwicGFyYWdyYXBoXCI6e1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcIm1hcmtzXCI6W10sXCJ2YWx1ZVwiOlwiQWNjZXNzIG1pbGxpb25zIG9mIGFzc2V0cywgZWFybiBVU0RDIHJld2FyZHMsIGFuZCB0YXAgaW50byB0aGUgb25jaGFpbiBlY29ub215LiBBbGwgaW4gdGhlIEJhc2UgQXBwLlwiLFwibm9kZVR5cGVcIjpcInRleHRcIn1dLFwibm9kZVR5cGVcIjpcInBhcmFncmFwaFwifV0sXCJub2RlVHlwZVwiOlwiZG9jdW1lbnRcIn0sXCJjdGFHcm91cFwiOlt7XCJjb250ZW50VHlwZUlkXCI6XCJDRFhWMl9CdXR0b25cIixcImlkXCI6XCIyMmdlU1U0alJGR2VaYWp2cFVITVNHXCIsXCJjb21wb25lbnRJZFwiOlwibGVhcm4tbW9yZS13YWxsZXQtdXMtaG9tZXBhZ2UtZmVhdHVyZS1oaWdobGlnaHRcIixcImxhYmVsXCI6XCJMZWFybiBtb3JlXCIsXCJsaW5rXCI6XCJodHRwczpcdTAwMkZcdTAwMkZqb2luLmJhc2UuYXBwXHUwMDJGXCIsXCJ2YXJpYW50XCI6XCJwcmltYXJ5XCIsXCJvcGVuSW5OZXdUYWJcIjp0cnVlfV19XX0se1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfR2FsbGVyeUdyaWRcIixcImlkXCI6XCIyVkc2bzdlMzVpbXR2eE9sbTJWVzF4XCIsXCJjb21wb25lbnRJZFwiOlwiaW50ZXJuYXRpb25hbC1ob21lLWxlYXJuLWNyeXB0b1wiLFwibGF5b3V0XCI6XCJIb3Jpem9udGFsXCIsXCJ0aXRsZVwiOntcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJtYXJrc1wiOltdLFwidmFsdWVcIjpcIk5ldyB0byBjcnlwdG8/IExlYXJuIHNvbWUgY3J5cHRvIGJhc2ljc1wiLFwibm9kZVR5cGVcIjpcInRleHRcIn1dLFwibm9kZVR5cGVcIjpcInBhcmFncmFwaFwifV0sXCJub2RlVHlwZVwiOlwiZG9jdW1lbnRcIn0sXCJwYXJhZ3JhcGhcIjp7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwibWFya3NcIjpbXSxcInZhbHVlXCI6XCJCZWdpbm5lciBndWlkZXMsIHByYWN0aWNhbCB0aXBzLCBhbmQgbWFya2V0IHVwZGF0ZXMgZm9yIGZpcnN0LXRpbWVycywgZXhwZXJpZW5jZWQgaW52ZXN0b3JzLCBhbmQgZXZlcnlvbmUgaW4gYmV0d2VlblwiLFwibm9kZVR5cGVcIjpcInRleHRcIn1dLFwibm9kZVR5cGVcIjpcInBhcmFncmFwaFwifV0sXCJub2RlVHlwZVwiOlwiZG9jdW1lbnRcIn0sXCJjdGFHcm91cFwiOlt7XCJjb250ZW50VHlwZUlkXCI6XCJDRFhWMl9CdXR0b25cIixcImlkXCI6XCI0WlJxU0Fqdzk5Mko3NVlGRW5Da3k1XCIsXCJjb21wb25lbnRJZFwiOlwibGVhcm4tbW9yZS1sZWFyblwiLFwibGFiZWxcIjpcIlJlYWQgTW9yZVwiLFwibGlua1wiOlwiXHUwMDJGbGVhcm5cIixcInZhcmlhbnRcIjpcInByaW1hcnlcIixcIm9wZW5Jbk5ld1RhYlwiOnRydWV9XSxcImNvbHVtbnNcIjozLFwiY2FyZFR5cGVcIjpcIkFydGljbGVcIixcImNhcmRzXCI6W3tcImNvbnRlbnRUeXBlSWRcIjpcIkNEWFYyX0NhcmRcIixcImlkXCI6XCI2MDNPZ1ozdXJFYmFRNjdiWUszS1hHXCIsXCJjb21wb25lbnRJZFwiOlwiaW50ZXJuYXRpb25hbC1ob21lLXVzZGMtYXJ0aWNsZVwiLFwidGl0bGVcIjp7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwibWFya3NcIjpbXSxcInZhbHVlXCI6XCJVU0RDOiBUaGUgZGlnaXRhbCBkb2xsYXIgZm9yIHRoZSBnbG9iYWwgY3J5cHRvIGVjb25vbXlcIixcIm5vZGVUeXBlXCI6XCJ0ZXh0XCJ9XSxcIm5vZGVUeXBlXCI6XCJwYXJhZ3JhcGhcIn1dLFwibm9kZVR5cGVcIjpcImRvY3VtZW50XCJ9LFwicGFyYWdyYXBoXCI6e1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcIm1hcmtzXCI6W10sXCJ2YWx1ZVwiOlwiQ29pbmJhc2UgYmVsaWV2ZXMgY3J5cHRvIHdpbGwgYmUgcGFydCBvZiB0aGUgc29sdXRpb24gZm9yIGNyZWF0aW5nIGFuIG9wZW4gZmluYW5jaWFsIHN5c3RlbSB0aGF0IGlzIGJvdGggbW9yZSBlZmZpY2llbnQgYW5kIG1vcmUgZXF1aXRhYmxlLiBXZSBjby1mb3VuZGVkIHRoZSBDZW50cmUgQ29uc29ydGl1bSBpbiAyMDE4IHRvIGludmVzdCBpbiB0aGUgYnVpbGQgb2YgVVNEQywgYW5kIHNpbmNlIHRoZW4gaXQgaGFzIGJlY29tZSB0aGUgc2Vjb25kIGxhcmdlc3Qgc3RhYmxlY29pbiBieSBtYXJrZXQgY2FwaXRhbGl6YXRpb24uXCIsXCJub2RlVHlwZVwiOlwidGV4dFwifV0sXCJub2RlVHlwZVwiOlwicGFyYWdyYXBoXCJ9XSxcIm5vZGVUeXBlXCI6XCJkb2N1bWVudFwifSxcImxpbmtcIjpcIlx1MDAyRnVzZGNcIixcImNhcmRBcnRpY2xlSW1hZ2VcIjp7XCJjb250ZW50VHlwZUlkXCI6XCJDRFhWMl9JbWFnZVwiLFwiaWRcIjpcIjRWSWF1cGhmdEJjOGhEaWc2ZDdOSzRcIixcImltYWdlQWx0VGV4dFwiOlwiYmx1ZSBjaXJjbGUgd2l0aCBtb25leSBzeW1ib2wgaW4gcGFyZW50aGVzaXNcIixcImhpZGVCYWNrZ3JvdW5kXCI6ZmFsc2UsXCJkZWZhdWx0SW1hZ2VcIjp7XCJjb250ZW50VHlwZUlkXCI6XCJBc3NldFwiLFwiaWRcIjpcIjJ0STBEN2NYMzBnWHVkZ2d6UWMzdHJcIixcImRlc2NyaXB0aW9uXCI6XCJ1c2RjIGljb24gXCIsXCJ1cmxcIjpcIlx1MDAyRlx1MDAyRmltYWdlcy5jdGZhc3NldHMubmV0XHUwMDJGbzEwZXM3d3U1Z20xXHUwMDJGMnRJMEQ3Y1gzMGdYdWRnZ3pRYzN0clx1MDAyRmI2MTgxMTA3NTMzZjk4ZjlkY2M2NGRhOTZlZmFjZmY4XHUwMDJGMF80bVZ5VmFVNnlMYS0tR1JfXCIsXCJ3aWR0aFwiOjE0MDAsXCJoZWlnaHRcIjo4MDIsXCJjb250ZW50VHlwZVwiOlwiaW1hZ2VcdTAwMkZwbmdcIn0sXCJkZWZhdWx0SW1hZ2VGaXRcIjpcImNvdmVyXCJ9LFwiY2FyZEF2YXRhckhpZGVMaW5rZWRpbkxvZ29cIjpmYWxzZX0se1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfQ2FyZFwiLFwiaWRcIjpcIjZpendabVhzY0tDeXRpWHFYaG1JTzZcIixcImNvbXBvbmVudElkXCI6XCJpbnRlcm5hdGlvbmFsLWhvbWUtY2FuLWNyeXB0by1yZWFsbHktcmVwbGFjZS15b3VyLWJhbmstYWNjb3VudFwiLFwidGl0bGVcIjp7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwibWFya3NcIjpbXSxcInZhbHVlXCI6XCJDYW4gY3J5cHRvIHJlYWxseSByZXBsYWNlIHlvdXIgYmFuayBhY2NvdW50P1wiLFwibm9kZVR5cGVcIjpcInRleHRcIn1dLFwibm9kZVR5cGVcIjpcInBhcmFncmFwaFwifV0sXCJub2RlVHlwZVwiOlwiZG9jdW1lbnRcIn0sXCJwYXJhZ3JhcGhcIjp7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwibWFya3NcIjpbXSxcInZhbHVlXCI6XCJJZiB5b3XigJlyZSBhIGJpZyBlbm91Z2ggZmFuIG9mIGNyeXB0bywgeW914oCZdmUgcHJvYmFibHkgaGVhcmQgdGhlIHBocmFzZSDigJxiZSB5b3VyIG93biBiYW5r4oCdIG9yIHRoZSB0ZXJtIOKAnGJhbmtsZXNz4oCdIOKAlCB0aGUgaWRlYSBiZWluZyB0aGF0IGNyeXB0byBjYW4gb2ZmZXIgbW9yZSBjb250cm9sIG92ZXIgeW91ciBmaW5hbmNpYWwgZnV0dXJlIHRoYW4gdHJhZGl0aW9uYWwgZmluYW5jZS4gQnV0IGhvdyBtdWNoIG9mIHlvdXIgZmluYW5jaWFsIGxpZmUgcmVhbGx5IGNhbiBiZSBhY2NvbXBsaXNoZWQgdmlhIGNyeXB0bz9cIixcIm5vZGVUeXBlXCI6XCJ0ZXh0XCJ9XSxcIm5vZGVUeXBlXCI6XCJwYXJhZ3JhcGhcIn1dLFwibm9kZVR5cGVcIjpcImRvY3VtZW50XCJ9LFwibGlua1wiOlwiXHUwMDJGbGVhcm5cdTAwMkZjcnlwdG8tYmFzaWNzXHUwMDJGY2FuLWNyeXB0by1yZWFsbHktcmVwbGFjZS15b3VyLWJhbmtcIixcImNhcmRBcnRpY2xlSW1hZ2VcIjp7XCJjb250ZW50VHlwZUlkXCI6XCJDRFhWMl9JbWFnZVwiLFwiaWRcIjpcIjRkNFB4aGpzRHhHNmNMcXZiOWRxNWRcIixcImltYWdlQWx0VGV4dFwiOlwiUGhvbmUgd2l0aCBhIGJhbmsgc2hvd2luZyBpbiB0aGUgYmFja2dyb3VuZFwiLFwiaGlkZUJhY2tncm91bmRcIjpmYWxzZSxcImRlZmF1bHRJbWFnZVwiOntcImNvbnRlbnRUeXBlSWRcIjpcIkFzc2V0XCIsXCJpZFwiOlwiMmhxdHlRenRydnJCS3ZJaXpQWnhhSlwiLFwiZGVzY3JpcHRpb25cIjpcInBob25lIHNob3dpbmcgYSBwZWVyIHRvIHBlZXIgdHJhbnNhY3Rpb24gd2l0aCBhbiBpY29uIG9mIGEgYmFuayBpbiB0aGUgYmFja2dyb3VuZFwiLFwidXJsXCI6XCJcdTAwMkZcdTAwMkZpbWFnZXMuY3RmYXNzZXRzLm5ldFx1MDAyRm8xMGVzN3d1NWdtMVx1MDAyRjJocXR5UXp0cnZyQkt2SWl6UFp4YUpcdTAwMkY0MmFkNDg3MTEwNjdjN2QwZWE0NTQ3NjMzMWMyMDc5OFx1MDAyRlJlcGxhY2VfQmFuay5wbmdcIixcIndpZHRoXCI6MTQ0MCxcImhlaWdodFwiOjE0NDAsXCJjb250ZW50VHlwZVwiOlwiaW1hZ2VcdTAwMkZwbmdcIn0sXCJkZWZhdWx0SW1hZ2VGaXRcIjpcImNvdmVyXCJ9LFwiY2FyZEF2YXRhckhpZGVMaW5rZWRpbkxvZ29cIjpmYWxzZX0se1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfQ2FyZFwiLFwiaWRcIjpcIjJVdzQzNzBYUzFwTzM0cWRLcW1EUjlcIixcImNvbXBvbmVudElkXCI6XCJpbnRlcm5hdGlvbmFsLWhvbWUtYmVzdC10aW1lLXRvLWludmVzdC1pbi1jcnlwdG9cIixcInRpdGxlXCI6e1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcIm1hcmtzXCI6W10sXCJ2YWx1ZVwiOlwiV2hlbiBpcyB0aGUgYmVzdCB0aW1lIHRvIGludmVzdCBpbiBjcnlwdG8/XCIsXCJub2RlVHlwZVwiOlwidGV4dFwifV0sXCJub2RlVHlwZVwiOlwicGFyYWdyYXBoXCJ9XSxcIm5vZGVUeXBlXCI6XCJkb2N1bWVudFwifSxcInBhcmFncmFwaFwiOntcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJtYXJrc1wiOltdLFwidmFsdWVcIjpcIkNyeXB0b2N1cnJlbmNpZXMgbGlrZSBCaXRjb2luIGNhbiBleHBlcmllbmNlIGRhaWx5IChvciBldmVuIGhvdXJseSkgcHJpY2Ugdm9sYXRpbGl0eS4gQXMgd2l0aCBhbnkga2luZCBvZiBpbnZlc3RtZW50LCB2b2xhdGlsaXR5IG1heSBjYXVzZSB1bmNlcnRhaW50eSwgZmVhciBvZiBtaXNzaW5nIG91dCwgb3IgZmVhciBvZiBwYXJ0aWNpcGF0aW5nIGF0IGFsbC4gV2hlbiBwcmljZXMgYXJlIGZsdWN0dWF0aW5nLCBob3cgZG8geW91IGtub3cgd2hlbiB0byBidXk/XCIsXCJub2RlVHlwZVwiOlwidGV4dFwifV0sXCJub2RlVHlwZVwiOlwicGFyYWdyYXBoXCJ9XSxcIm5vZGVUeXBlXCI6XCJkb2N1bWVudFwifSxcImxpbmtcIjpcIlx1MDAyRmxlYXJuXHUwMDJGdGlwcy1hbmQtdHV0b3JpYWxzXHUwMDJGZG9sbGFyLWNvc3QtYXZlcmFnaW5nXCIsXCJjYXJkQXJ0aWNsZUltYWdlXCI6e1wiY29udGVudFR5cGVJZFwiOlwiQ0RYVjJfSW1hZ2VcIixcImlkXCI6XCIybjNDa01rY1lVcjNhbVFhbUJFZ1hBXCIsXCJpbWFnZUFsdFRleHRcIjpcIkhhbmQgaG9sZGluZyBiaXRjb2luIFwiLFwiaGlkZUJhY2tncm91bmRcIjpmYWxzZSxcImRlZmF1bHRJbWFnZVwiOntcImNvbnRlbnRUeXBlSWRcIjpcIkFzc2V0XCIsXCJpZFwiOlwiNW11ZmpLTUg4NElEZWI4QTBFR3J0SFwiLFwiZGVzY3JpcHRpb25cIjpcImhhbmQgaG9sZGluZyBiaXRjb2luXCIsXCJ1cmxcIjpcIlx1MDAyRlx1MDAyRmltYWdlcy5jdGZhc3NldHMubmV0XHUwMDJGbzEwZXM3d3U1Z20xXHUwMDJGNW11ZmpLTUg4NElEZWI4QTBFR3J0SFx1MDAyRjA0MzhlZWFlODI3ZmZlZjQwNGI5MzU0MDdhZTdkNzgwXHUwMDJGTGVhcm5fSWxsdXN0cmF0aW9uX1VsdGltYXRlX0d1aWRlX0JpdGNvaW4ucG5nXCIsXCJ3aWR0aFwiOjc2OCxcImhlaWdodFwiOjQzOSxcImNvbnRlbnRUeXBlXCI6XCJpbWFnZVx1MDAyRnBuZ1wifSxcImRlZmF1bHRJbWFnZUZpdFwiOlwiY292ZXJcIn0sXCJjYXJkQXZhdGFySGlkZUxpbmtlZGluTG9nb1wiOmZhbHNlfV0sXCJhdXRvbWF0aWNDYXJkR2VuZXJhdGlvblwiOmZhbHNlLFwiYXV0b21hdGljR2VuZXJhdGlvbkNhcmRzTGltaXRcIjoyMCxcInNlY3Rpb25TZXR0aW5nc1wiOntcImNvbnRlbnRUeXBlSWRcIjpcIkNEWFYyX1NlY3Rpb25TZXR0aW5nc1wiLFwiaWRcIjpcIjNBa0Z4VWFGekRWTWZpNE1ZdHZBNVVcIixcImFuY2hvclwiOlwiZ2FsbGVyeS1ncmlkLXNlY29uZGFyeS1lYWEtcGhhc2UyXCIsXCJzZWN0aW9uQmFja2dyb3VuZFwiOlwiU2Vjb25kYXJ5XCIsXCJjb2xvck1vZGVcIjpcIkRlZmF1bHRcIn0sXCJmb290ZXJMYXlvdXRcIjpcIkNlbnRlciBTdGFja2VkXCJ9LHtcImNvbnRlbnRUeXBlSWRcIjpcIkNEWFYyX0hlcm9Ib21lXCIsXCJpZFwiOlwiMDc0Q2hKQ3RkZDMzNkJmblpFZk1DXCIsXCJjb21wb25lbnRJZFwiOlwidGFrZS1jb250cm9sLW9mLXlvdXItbW9uZXktaW50bC1ob21lXCIsXCJsYXlvdXRcIjpcIlN0YW5kYXJkOiBUZXh0IC0gTWVkaWFcIixcImhlYWRsaW5lXCI6e1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcIm1hcmtzXCI6W10sXCJ2YWx1ZVwiOlwiVGFrZSBjb250cm9sIG9mIHlvdXIgbW9uZXlcIixcIm5vZGVUeXBlXCI6XCJ0ZXh0XCJ9XSxcIm5vZGVUeXBlXCI6XCJoZWFkaW5nLTJcIn0se1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJtYXJrc1wiOltdLFwidmFsdWVcIjpcIlwiLFwibm9kZVR5cGVcIjpcInRleHRcIn1dLFwibm9kZVR5cGVcIjpcInBhcmFncmFwaFwifV0sXCJub2RlVHlwZVwiOlwiZG9jdW1lbnRcIn0sXCJzdWJoZWFkXCI6e1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcIm1hcmtzXCI6W10sXCJ2YWx1ZVwiOlwiU3RhcnQgeW91ciBwb3J0Zm9saW8gdG9kYXkgYW5kIGRpc2NvdmVyIGNyeXB0b1wiLFwibm9kZVR5cGVcIjpcInRleHRcIn1dLFwibm9kZVR5cGVcIjpcInBhcmFncmFwaFwifV0sXCJub2RlVHlwZVwiOlwiZG9jdW1lbnRcIn0sXCJtZWRpYVwiOntcImNvbnRlbnRUeXBlSWRcIjpcIkNEWFYyX0ltYWdlXCIsXCJpZFwiOlwiQnhTMGNEb1czeTlmQUlXTUxLY2N3XCIsXCJpbWFnZUFsdFRleHRcIjpcIkNvaW5iYXNlIEhvbWVwYWdlIENyeXB0byBDaXJjbGVcIixcImhpZGVCYWNrZ3JvdW5kXCI6dHJ1ZSxcImRlZmF1bHRJbWFnZVwiOntcImNvbnRlbnRUeXBlSWRcIjpcIkFzc2V0XCIsXCJpZFwiOlwiM0liMWxudWt0OE12VjRiRGpIMmptN1wiLFwiZGVzY3JpcHRpb25cIjpcIkNvaW5iYXNlIEhvbWVwYWdlIENyeXB0byBDaXJjbGVcIixcInVybFwiOlwiXHUwMDJGXHUwMDJGaW1hZ2VzLmN0ZmFzc2V0cy5uZXRcdTAwMkZvMTBlczd3dTVnbTFcdTAwMkYzSWIxbG51a3Q4TXZWNGJEakgyam03XHUwMDJGMDBiZDU1YTg4MGNlMjY0ZjNiNzcyNTNiODM3NzYwYjJcdTAwMkZpbWFnZS5wbmdcIixcIndpZHRoXCI6NDI1NixcImhlaWdodFwiOjMyMDAsXCJjb250ZW50VHlwZVwiOlwiaW1hZ2VcdTAwMkZwbmdcIn0sXCJkZWZhdWx0SW1hZ2VGaXRcIjpcImNvbnRhaW5cIn0sXCJjdGFUeXBlXCI6XCJFbWFpbCBGb3JtXCIsXCJjdGFMYWJlbFwiOlwiU2lnbiB1cFwiLFwiY3RhUGxhY2Vob2xkZXJcIjpcInNhdG9zaGlAbmFrYW1vdG8uY29tXCJ9LHtcImNvbnRlbnRUeXBlSWRcIjpcIkNEWFYyX0xlZ2FsXCIsXCJpZFwiOlwiMjlPckFHMHpRUEs1N2hhVzJOUWE3b1wiLFwiY29tcG9uZW50SWRcIjpcImludGwtaG9tZXBhZ2UtbGVnYWxcIixcImJvZHlcIjp7XCJkYXRhXCI6e30sXCJjb250ZW50XCI6W3tcImRhdGFcIjp7fSxcImNvbnRlbnRcIjpbe1wiZGF0YVwiOnt9LFwibWFya3NcIjpbXSxcInZhbHVlXCI6XCJERVggdHJhZGluZyBpcyBvZmZlcmVkIGJ5IENvaW5iYXNlIEJlcm11ZGEgVGVjaG5vbG9naWVzIEx0ZC5cIixcIm5vZGVUeXBlXCI6XCJ0ZXh0XCJ9XSxcIm5vZGVUeXBlXCI6XCJwYXJhZ3JhcGhcIn0se1wiZGF0YVwiOnt9LFwiY29udGVudFwiOlt7XCJkYXRhXCI6e30sXCJtYXJrc1wiOltdLFwidmFsdWVcIjpcIlxcblByb2R1Y3RzIGFuZCBmZWF0dXJlcyBtYXkgbm90IGJlIGF2YWlsYWJsZSBpbiBhbGwgcmVnaW9ucy4gSW5mb3JtYXRpb24gaXMgZm9yIG9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSwgYW5kIGlzIG5vdCAoaSkgYW4gb2ZmZXIsIG9yIHNvbGljaXRhdGlvbiBvZiBhbiBvZmZlciwgdG8gaW52ZXN0IGluLCBvciB0byBidXkgb3Igc2VsbCwgYW55IGludGVyZXN0cyBvciBzaGFyZXMsIG9yIHRvIHBhcnRpY2lwYXRlIGluIGFueSBpbnZlc3RtZW50IG9yIHRyYWRpbmcgc3RyYXRlZ3kgb3IgKGlpKSBpbnRlbmRlZCB0byBwcm92aWRlIGFjY291bnRpbmcsIGxlZ2FsLCBvciB0YXggYWR2aWNlLCBvciBpbnZlc3RtZW50IHJlY29tbWVuZGF0aW9ucy4gVHJhZGluZyBjcnlwdG9jdXJyZW5jeSBjb21lcyB3aXRoIHJpc2suXCIsXCJub2RlVHlwZVwiOlwidGV4dFwifV0sXCJub2RlVHlwZVwiOlwicGFyYWdyYXBoXCJ9XSxcIm5vZGVUeXBlXCI6XCJkb2N1bWVudFwifSxcInNob3dEaXZpZGVyXCI6ZmFsc2UsXCJ0ZXh0QWxpZ25cIjpcImNlbnRlclwifV19fX0se1wia2V5XCI6XCJwbGFjZWhvbGRlci1pbmNlbnRpdmVzXCIsXCJwYXJhbXNcIjp7fSxcInN0YXR1c1wiOlwiZmV0Y2hlZFwifV0iLCJkaXNhYmxlZFNlcnZpY2VzRnJvbVF1ZXJ5UGFyYW1zIjoiIiwiY2xpZW50Q29uZmlnIjp7ImV4YW1wbGVfcGFyYW1ldGVyIjp7InN0cmluZ01hcCI6eyJzdHJpbmdNYXAiOnsiaGVsbG8iOiJ3b3JsZCJ9fX0sImV4YWFzLWdhdGVkLWV4cGVyaW1lbnRzIjp7InN0cmluZ0FycmF5Ijp7InN0cmluZ0FycmF5IjpbInQwMDAyXzYxZjdlZTJkIl19fSwibWFsaWNpb3VzX2NyeXB0b19hc3NldHMiOnsic3RyaW5nQXJyYXkiOnsic3RyaW5nQXJyYXkiOlsic29sYW5hLWgtMWItdmlzYSJdfX0sImNiMV9hbGxvd2VkX2NvdW50cmllcyI6eyJzdHJpbmdBcnJheSI6eyJzdHJpbmdBcnJheSI6WyJVUyIsIkNBIiwiQVUiLCJJRSIsIkRFIiwiTkwiLCJCRSIsIk5PIiwiQVQiLCJFUyIsIkZSIiwiTFUiLCJDSCIsIkxJIiwiU00iLCJJVCIsIlNFIiwiR0IiLCJQTCIsIlBUIiwiREsiLCJDWiIsIkZJIiwiU0siLCJIVSIsIlJPIiwiR1IiLCJMVCIsIkJHIiwiU0kiLCJFRSIsIkhSIiwiTFYiLCJDWSIsIk1UIiwiSkUiLCJJTSIsIkFEIiwiR0ciLCJHSSIsIlNHIiwiQlIiXX19LCJjZm1fY29udHJhY3Rfcm9vdF91bml0X3RvX2xvZ2dlZF9vdXRfbGFiZWwiOnsic3RyaW5nTWFwIjp7InN0cmluZ01hcCI6eyJDREVBSSI6IkFJIiwiQ0RFQ0hOIjoiQ0hJTkEiLCJDREVDVSI6IkNPUFIiLCJDREVERUYiOiJERk5TRSIsIkNERUdMRCI6IkdMRCIsIkNERU1DIjoiTUFHN0MiLCJDREVOR1MiOiJOR1MiLCJDREVPSUwiOiJPSUwiLCJDREVQVCI6IlBMQVQiLCJDREVTSUwiOiJTTFZSIiwiQ0RFVEVLIjoiVEVDSCJ9fX0sImNmbV9jZGVfY29udHJhY3RfY29kZV90b19yb290X3VuaXQiOnsic3RyaW5nTWFwIjp7InN0cmluZ01hcCI6eyJBREEiOiJBREEiLCJBSVAiOiJDREVBSSIsIkFWQSI6IkFWQVgiLCJBVkUiOiJBQVZFIiwiQkNIIjoiQkNIIiwiQklQIjoiQlRDIiwiQklUIjoiQlRDIiwiQk5GIjoiQk5CIiwiQzUwIjoiQ09JTjUwIiwiQ0hOIjoiQ0RFQ0hOIiwiQ1UiOiJDREVDVSIsIkRFRiI6IkNERURFRiIsIkRPRyI6IkRPR0UiLCJET1QiOiJET1QiLCJFTkEiOiJFTkEiLCJFVCI6IkVUSCIsIkVUUCI6IkVUSCIsIkdMRCI6IkNERUdMRCIsIkhFRCI6IkhCQVIiLCJIWUYiOiJIWVBFIiwiSFlQIjoiSFlQRSIsIkxDIjoiTFRDIiwiTE5LIjoiTElOSyIsIk1DIjoiQ0RFTUMiLCJORVIiOiJORUFSIiwiTkdTIjoiQ0RFTkdTIiwiT0lMIjoiQ0RFT0lMIiwiT05EIjoiT05ETyIsIlBBVSI6IlBBWEciLCJQRVAiOiJQRVBFIiwiUFQiOiJDREVQVCIsIlNIQiI6IlNISUIiLCJTTFIiOiJDREVTSUwiLCJTT0wiOiJTT0wiLCJURUsiOiJDREVURUsiLCJYTE0iOiJYTE0iLCJYUlAiOiJYUlAiLCJaRUMiOiJaRUMifX19LCJldmVudF9wYWdlX3YyX2VuYWJsZWQiOnsiYm9vbGVhbiI6dHJ1ZX19LCJnbG9iYWxOYXZDb25maWciOnsiaW5kaXZpZHVhbHNUaXRsZSI6Ik5ldzogUGVycC1TdHlsZSBGdXR1cmVzIiwiaW5kaXZpZHVhbHNEZXNjcmlwdGlvbiI6IkdvIGxvbmcgb3Igc2hvcnQgd2l0aCB1cCB0byAxMHggbGV2ZXJhZ2UuIEhpZ2ggUmlzaywgQ2FwaXRhbCBhdCBSaXNrLiIsImluZGl2aWR1YWxzSW1hZ2UiOnsiY29udGVudFR5cGVJZCI6IkNEWFYyX0ltYWdlIiwiaWQiOiIxZ3JyeDV6WHp6Tk1LaDRWdWNNdGYwIiwiaW1hZ2VBbHRUZXh0IjoiUHJlZGljdGlvbnMgbmF2aWdhdGlvbiB1cHNlbGwiLCJoaWRlQmFja2dyb3VuZCI6ZmFsc2UsImRlZmF1bHRJbWFnZSI6eyJjb250ZW50VHlwZUlkIjoiQXNzZXQiLCJpZCI6Ijd1Mjg4WWUzVnFxdWxyWG5Ba3BlZzYiLCJkZXNjcmlwdGlvbiI6IiIsInVybCI6Ilx1MDAyRlx1MDAyRmltYWdlcy5jdGZhc3NldHMubmV0XHUwMDJGbzEwZXM3d3U1Z20xXHUwMDJGN3UyODhZZTNWcXF1bHJYbkFrcGVnNlx1MDAyRjFkYWVhYzE0NjhiZjBmMjI3OTQ3MzQyMmM1NGI4OGNjXHUwMDJGR1RNMjU3NjVfUHJlZGljdGlvbl9NYXJrZXRzX0dsb2JhbE5hdlVwc2VsbF8xNzV4MTc1X18yXy5wbmciLCJ3aWR0aCI6NDk1LCJoZWlnaHQiOjQ5NSwiY29udGVudFR5cGUiOiJpbWFnZVx1MDAyRnBuZyJ9LCJkZWZhdWx0SW1hZ2VGaXQiOiJjb3ZlciJ9LCJpbmRpdmlkdWFsc0N0YSI6eyJjb250ZW50VHlwZUlkIjoiQ0RYVjJfQnV0dG9uIiwiaWQiOiIxYW1sTG95cDdkbWRmbUZoRWZNWVZpIiwiY29tcG9uZW50SWQiOiJjYjEtbmF2LXVwc2VsbC1saW5rIiwibGFiZWwiOiJTdGFydCB0cmFkaW5nIiwibGluayI6Imh0dHBzOlx1MDAyRlx1MDAyRnd3dy5jb2luYmFzZS5jb21cdTAwMkZhZHZhbmNlZC10cmFkZVx1MDAyRmV1LWRlcml2YXRpdmVzIiwidmFyaWFudCI6InByaW1hcnkiLCJvcGVuSW5OZXdUYWIiOnRydWV9LCJpbmRpdmlkdWFsc0NvdW50cmllcyI6WyJERSIsIkZSIiwiTkwiLCJMUCIsIklUIiwiU0siLCJTTCIsIlNFIiwiUk8iLCJNVCIsIkxWIiwiTFUiLCJIVSIsIkhSIiwiR1IiLCJGSSIsIkVFIiwiREsiLCJDWiIsIkNZIiwiQkciLCJBVCIsIk5PIiwiTEkiLCJQTCIsIklFIl0sImJ1c2luZXNzZXNUaXRsZSI6IkNvaW5iYXNlIEJ1c2luZXNzIiwiYnVzaW5lc3Nlc0Rlc2NyaXB0aW9uIjoiQWxsLWluLW9uZSBjcnlwdG8gYWNjb3VudCBmb3IgYnVzaW5lc3Nlcy4iLCJidXNpbmVzc2VzSW1hZ2UiOnsiY29udGVudFR5cGVJZCI6IkNEWFYyX0ltYWdlIiwiaWQiOiIxOVVLYVZna1RIVEM0Uk5OSHhZQUc1IiwiaW1hZ2VBbHRUZXh0IjoiQ29pbmJhc2UgYnVzaW5lc3MiLCJoaWRlQmFja2dyb3VuZCI6ZmFsc2UsImRlZmF1bHRJbWFnZSI6eyJjb250ZW50VHlwZUlkIjoiQXNzZXQiLCJpZCI6IjY3dXBObHB0M3MzUzNDemRMbm9adEoiLCJkZXNjcmlwdGlvbiI6IiIsInVybCI6Ilx1MDAyRlx1MDAyRmltYWdlcy5jdGZhc3NldHMubmV0XHUwMDJGbzEwZXM3d3U1Z20xXHUwMDJGNjd1cE5scHQzczNTM0N6ZExub1p0Slx1MDAyRjUzN2ViZWFmODU5NWUyY2Y0MGM4N2UxMDIzYWJmOTRkXHUwMDJGTmF2X1RodW1ibmFpbF9fMV8ucG5nIiwid2lkdGgiOjQxNiwiaGVpZ2h0Ijo0MTYsImNvbnRlbnRUeXBlIjoiaW1hZ2VcdTAwMkZwbmcifSwiZGVmYXVsdEltYWdlRml0IjoiY292ZXIifSwiYnVzaW5lc3Nlc0N0YSI6eyJjb250ZW50VHlwZUlkIjoiQ0RYVjJfQnV0dG9uIiwiaWQiOiI0WmpOYkJweVR3RzF2a0xwckhEMkVEIiwiY29tcG9uZW50SWQiOiJjb2luYmFzZS1idXNpbmVzcy1uYXYtdXBzZWxsLWN0YS1saW5rIiwibGFiZWwiOiJMZWFybiBtb3JlIiwibGluayI6Ilx1MDAyRmJ1c2luZXNzIiwidmFyaWFudCI6InByaW1hcnkiLCJvcGVuSW5OZXdUYWIiOnRydWV9LCJidXNpbmVzc2VzQ291bnRyaWVzIjpudWxsLCJpbnN0aXR1dGlvbnNUaXRsZSI6bnVsbCwiaW5zdGl0dXRpb25zRGVzY3JpcHRpb24iOm51bGwsImluc3RpdHV0aW9uc0ltYWdlIjpudWxsLCJpbnN0aXR1dGlvbnNDdGEiOm51bGwsImluc3RpdHV0aW9uc0NvdW50cmllcyI6bnVsbCwiZGV2ZWxvcGVyc1RpdGxlIjpudWxsLCJkZXZlbG9wZXJzRGVzY3JpcHRpb24iOm51bGwsImRldmVsb3BlcnNJbWFnZSI6bnVsbCwiZGV2ZWxvcGVyc0N0YSI6bnVsbCwiZGV2ZWxvcGVyc0NvdW50cmllcyI6bnVsbCwiY29tcGFueVRpdGxlIjpudWxsLCJjb21wYW55RGVzY3JpcHRpb24iOm51bGwsImNvbXBhbnlJbWFnZSI6bnVsbCwiY29tcGFueUN0YSI6bnVsbCwiY29tcGFueUNvdW50cmllcyI6bnVsbH0sInNraXBTZXJ2ZXJIdG1sIjpmYWxzZX08L3NjcmlwdD4KICAgIAogICAgCiAgICA8c2NyaXB0IGlkPSJlbnZpcm9ubWVudHNfanNvbiIgdHlwZT0iYXBwbGljYXRpb24vanNvbiI+eyJDT0lOQkFTRV9QVUJMSUNfQUdfR1JJRF9MSUNFTlNFX0tFWSI6IlVzaW5nX3RoaXNfe0FHX0dyaWR9X0VudGVycHJpc2Vfa2V5X3tBRy0xMjU3MzR9X2luX2V4Y2Vzc19vZl90aGVfbGljZW5jZV9ncmFudGVkX2lzX25vdF9wZXJtaXR0ZWRfX19QbGVhc2VfcmVwb3J0X21pc3VzZV90b19sZWdhbEBhZy1ncmlkLmNvbV9fX0Zvcl9oZWxwX3dpdGhfY2hhbmdpbmdfdGhpc19rZXlfcGxlYXNlX2NvbnRhY3RfaW5mb0BhZy1ncmlkLmNvbV9fX3tDb2luYmFzZSxfSW5jLn1faXNfZ3JhbnRlZF9hX3tTaW5nbGVfQXBwbGljYXRpb259X0RldmVsb3Blcl9MaWNlbnNlX2Zvcl90aGVfYXBwbGljYXRpb25fe0FkdmFuY2VkX1RyYWRlfV9vbmx5X2Zvcl97MTB9X0Zyb250LUVuZF9KYXZhU2NyaXB0X2RldmVsb3BlcnNfX19BbGxfRnJvbnQtRW5kX0phdmFTY3JpcHRfZGV2ZWxvcGVyc193b3JraW5nX29uX3tBZHZhbmNlZF9UcmFkZX1fbmVlZF90b19iZV9saWNlbnNlZF9fX3tBZHZhbmNlZF9UcmFkZX1faGFzX2JlZW5fZ3JhbnRlZF9hX0RlcGxveW1lbnRfTGljZW5zZV9BZGQtb25fZm9yX3sxfV9Qcm9kdWN0aW9uX0Vudmlyb25tZW50X19fVGhpc19rZXlfd29ya3Nfd2l0aF97QUdfR3JpZH1fRW50ZXJwcmlzZV92ZXJzaW9uc19yZWxlYXNlZF9iZWZvcmVfezhfQXByaWxfMjAyN31fX19fW3YzXV9bMDFdX01UZ3dOekV6T0Rnd01EQXdNQT09ZmM3NDQ5YTA4YTgxYjc1OTRmZTJjOWJmZDFlZWI4MDAiLCJDT0lOQkFTRV9QVUJMSUNfQU1QTElUVURFX0FQSV9LRVkiOiIxMzJlNjJiNTk1M2NlOGQ1NjgxMzdkNTg4N2I2YjdhYiIsIkNPSU5CQVNFX1BVQkxJQ19BTVBMSVRVREVfUkVBTF9USU1FX0FQSSI6ImV2ZW50cy1zZXJ2aWNlLmNvaW5iYXNlLmNvbVx1MDAyRmFtcCIsIkNPSU5CQVNFX1BVQkxJQ19BTVBMSVRVREVfUkVBTF9USU1FX0FQSV9LRVkiOiI1ZTIxZThhMTBkN2MxNTUzYmM3NWNlMWZmNmQ0OWEzZiIsIkNPSU5CQVNFX1BVQkxJQ19ET01BSU4iOiJodHRwczpcdTAwMkZcdTAwMkZ3d3cuY29pbmJhc2UuY29tIiwiQ09JTkJBU0VfUFVCTElDX0FDQ09VTlRTX0RPTUFJTiI6Imh0dHBzOlx1MDAyRlx1MDAyRmFjY291bnRzLmNvaW5iYXNlLmNvbSIsIkNPSU5CQVNFX1BVQkxJQ19SRUNBUFRDSEFfUFVCTElDX0tFWSI6IjZMZWpXMXNVQUFBQUFHQ3JRYlVidnlSVUtPZTJZLTBjNEdEeDhqZkMiLCJDT0lOQkFTRV9QVUJMSUNfUkVDQVBUQ0hBX0VOVEVSUFJJU0VfUFVCTElDX0tFWSI6IjZMZkFNODRaQUFBQUFHTGlRejVGQmVBRHFxOTRkVjQ4Zk10aVJxSWoiLCJDT0lOQkFTRV9QVUJMSUNfSU5WSVNJQkxFX1JFQ0FQVENIQV9LRVkiOiI2TGZBTTg0WkFBQUFBR0xpUXo1RkJlQURxcTk0ZFY0OGZNdGlScUlqIiwiQ09JTkJBU0VfUFVCTElDX1ZJU0lCTEVfUkVDQVBUQ0hBX0tFWSI6IjZMZGpodzhhQUFBQUFHdGRlYnh2TlIxQ3A3NXN5bFlnYVUxZktzY1giLCJDT0lOQkFTRV9QVUJMSUNfQVBJX0hPU1QiOiJodHRwczpcdTAwMkZcdTAwMkZ3d3cuY29pbmJhc2UuY29tXHUwMDJGYXBpIiwiQ09JTkJBU0VfUFVCTElDX0dSQVBIUUxfSE9TVCI6Imh0dHBzOlx1MDAyRlx1MDAyRmdyYXBocWwuY29pbmJhc2UuY29tIiwiQ09JTkJBU0VfUFVCTElDX1NFTlRSWV9BUElfS0VZIjoiaHR0cHM6XHUwMDJGXHUwMDJGNDljMThlZWU0MjdlNTc0OWVmZTY4OGQwYmFlY2UyMDZAbzQ1MDkxMTMxNzkxMTE0MjUuaW5nZXN0LnVzLnNlbnRyeS5pb1x1MDAyRjQ1MDkxNTgzNzU4MTcyMTYiLCJDT0lOQkFTRV9QVUJMSUNfQ0FTVExFX1BVQkxJU0hBQkxFX0tFWSI6InBrX1huU3c4OVNyYTlkTmk5dm5ibnh4VDJwS2dleDRRWW9jIiwiQ09JTkJBU0VfUFVCTElDX0RFUExPWU1FTlRfVEFSR0VUIjoicHJvZHVjdGlvbiIsIkNPSU5CQVNFX1BVQkxJQ19HT09HTEVfVEFHX01BTkFHRVJfSUQiOiJHVE0tTTNIVkxCQyIsIkNPSU5CQVNFX1BVQkxJQ19BUFBTRkxZRVJfV0VCX0RFVl9LRVkiOiIzMTQyYTFjMi0wODQ0LTQyZDMtOGFmYS01MzMyNjAyYTI4YTAiLCJOT0RFX0VOViI6InByb2R1Y3Rpb24iLCJCVUlMRF9UQVJHRVQiOiJzZXJ2ZXIiLCJDT0lOQkFTRV9QVUJMSUNfSTE4Tl9CQVNFX1VSTCI6Imh0dHBzOlx1MDAyRlx1MDAyRnRyYW5zbGF0aW9ucy5jb2luYmFzZS5jb21cdTAwMkY0MmNhZDk5ZTlcdTAwMkZsYXRlc3QiLCJDT0lOQkFTRV9QVUJMSUNfVE9LRU5FWF9QVUJMSUNfS0VZIjoiTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUE4Z0dQTXdCUlB1VnlKUmVaR0lrV0hcdTAwMkYrQmY1cG5wRE4xYlNSMmNMWUxYVlQ4Q2FTblR3NzRxZWJvU25rdGdZQ2kxRDlSM0JqMmZZelRJd0dHWmI4S2luTGR4d2JxWm1Id3JFOWNGaENhSGJHXHUwMDJGRTBQYnFRR2hYUDJ2Ym5pWlRUNE0waTBDYmk3RVMzQnc1enFOYklaWm5YMDQxUUVweEx2SXlXUEtaQ1grZkJvZ05NaFdmQ0Y3NzlhY2xDaGpIa3daTXN1ZlRoVldFOXhrbFdHeFhpeXR4NWFMNEk1SlB4cTBJN2NBa1pHR3M0YUZcdTAwMkZHeFd3UGFxN1Izd1Bpa0pRMFlIbkNNZmNVUnpsMkhud1x1MDAyRmlucXlNeStKQjZkalRxMlx1MDAyRkJkek1BaFdUaDNjRFdxOVh1K2dFa2JcdTAwMkZRQ2QwbjF5WUlkS3VESVNsa1x1MDAyRkFmSGRXZTM0SXZ6aFZ5UUlEQVFBQiIsIkRZTkFNSUNfQVNTRVRTX0hPU1QiOiJodHRwczpcdTAwMkZcdTAwMkZkeW5hbWljLWFzc2V0cy5jb2luYmFzZS5jb20iLCJDT0lOQkFTRV9QVUJMSUNfUFJJQ0VfV0lER0VUX0hPU1QiOiJodHRwczpcdTAwMkZcdTAwMkZ3aWRnZXQuY29pbmJhc2UuY29tIiwiQ09JTkJBU0VfUFVCTElDX1NNQVJUX0NPTlRFTlRfQ0FDSEVfQVBJIjoiaHR0cHM6XHUwMDJGXHUwMDJGbzJkemJ5NTk0MS5leGVjdXRlLWFwaS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVx1MDAyRmFwaVx1MDAyRmNvaW5iYXNlLnNtYXJ0X2NvbnRlbnRfY2FjaGUuU21hcnRDb250ZW50XHUwMDJGR2V0Q29udGVudCIsIkNPSU5CQVNFX1BVQkxJQ19TTUFSVF9DT05URU5UX0NBQ0hFX0FQSV9NQVJLRVRfQ0FQIjoiaHR0cHM6XHUwMDJGXHUwMDJGbzJkemJ5NTk0MS5leGVjdXRlLWFwaS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVx1MDAyRmFwaVx1MDAyRmNvaW5iYXNlLnNtYXJ0X2NvbnRlbnRfY2FjaGUuU21hcnRDb250ZW50XHUwMDJGR2V0QXNzZXRzQnlNYXJrZXRDYXAiLCJDT0lOQkFTRV9QVUJMSUNfQ09OVEVOVEZVTF9TUEFDRV9MRUFSTiI6InE1dWxrNGJwNjVyNyIsIkNPSU5CQVNFX1BVQkxJQ19DT05URU5URlVMX1NQQUNFX01BUktFVElORyI6Im8xMGVzN3d1NWdtMSIsIkNPSU5CQVNFX1BVQkxJQ19DT05URU5URlVMX0FDQ0VTU19UT0tFTl9MRUFSTiI6IkJHMTlkazktdGhpc2lzZHVtbXl0b2tlbi1NOUJoazdTdEtRRkpFYnNndXYiLCJDT0lOQkFTRV9QVUJMSUNfQ09OVEVOVEZVTF9BQ0NFU1NfVE9LRU5fTUFSS0VUSU5HIjoiQkcxOWRrOS10aGlzaXNkdW1teXRva2VuLU05QmhrN1N0S1FGSkVic2d1diIsIkNPSU5CQVNFX1BVQkxJQ19DT05URU5URlVMX0FDQ0VTU19UT0tFTl9MT0dHRURfT1VUX1YyIjoiQkcxOWRrOS10aGlzaXNkdW1teXRva2VuLU05QmhrN1N0S1FGSkVic2d1diIsIkNPSU5CQVNFX1BVQkxJQ19DT05URU5URlVMX0FDQ0VTU19UT0tFTl9MRUFSTl9QUk9EIjoiQkcxOWRrOS10aGlzaXNkdW1teXRva2VuLU05QmhrN1N0S1FGSkVic2d1diIsIkNPSU5CQVNFX1BVQkxJQ19DT05URU5URlVMX0FDQ0VTU19UT0tFTl9NQVJLRVRJTkdfUFJPRCI6IkJHMTlkazktdGhpc2lzZHVtbXl0b2tlbi1NOUJoazdTdEtRRkpFYnNndXYiLCJDT0lOQkFTRV9QVUJMSUNfQ09OVEVOVEZVTF9BQ0NFU1NfVE9LRU5fTE9HR0VEX09VVF9WMl9QUk9EIjoiQkcxOWRrOS10aGlzaXNkdW1teXRva2VuLU05QmhrN1N0S1FGSkVic2d1diIsIkNPSU5CQVNFX1BVQkxJQ19DT05URU5URlVMX0hPU1QiOiJjb250ZW50ZnVsLmNvaW5iYXNlLmNvbSIsIkNPSU5CQVNFX1BVQkxJQ19DT05URU5URlVMX1BST0RfSE9TVCI6ImNvbnRlbnRmdWwuY29pbmJhc2UuY29tIiwiQ09JTkJBU0VfUFVCTElDX0NPTlRFTlRGVUxfUFJFVklFV19IT1NUIjoiY29udGVudGZ1bC5jb2luYmFzZS5jb20iLCJDT0lOQkFTRV9QVUJMSUNfQ09OVEVOVEZVTF9BUEkiOiJjb250ZW50ZnVsLmNvaW5iYXNlLmNvbSIsIkNPSU5CQVNFX1BVQkxJQ19VU0VSX0xFQVBfRU5WX0lEIjoiSmJKcmh5cDRYZSIsIkNPSU5CQVNFX1BVQkxJQ19VU0VSX0xFQVBfTUFSS0VUSU5HX0VOVl9JRCI6IjJCRm0tcUxwSi1vdiIsIkNPSU5CQVNFX1BVQkxJQ19FQVJOX0xBVU5DSCI6IiIsIkNPSU5CQVNFX1BVQkxJQ19QUklNRV9SRVNPVVJDRVNfRk9STV9VUkwiOiJcdTAwMkZhcGlcdTAwMkZ2Mlx1MDAyRnByaW1lXHUwMDJGcmVzb3VyY2VzXHUwMDJGZm9ybSIsIkNPSU5CQVNFX1BVQkxJQ19DT05UQUNUX0ZPUk1fQ1JFQVRFX0xFQURfVVJMIjoiXHUwMDJGYXBpXHUwMDJGdjJcdTAwMkZjb2luYmFzZS5jeF9hcGkuYXBpLnYxLkNvbnRhY3RTZXJ2aWNlXHUwMDJGQ3JlYXRlTGVhZCIsIkNPSU5CQVNFX1BVQkxJQ19MSVNUSU5HX0ZPUk1fQ1JFQVRFX1NBTEVTRk9SQ0VfT0JKRUNUIjoiXHUwMDJGYXBpXHUwMDJGdjJcdTAwMkZjb2luYmFzZS5jeF9hcGkuYXBpLnYxLkNvbnRhY3RTZXJ2aWNlXHUwMDJGQ3JlYXRlU2FsZXNmb3JjZU9iamVjdFB1YmxpYyIsIkNPSU5CQVNFX1BVQkxJQ19MSVNUSU5HU19JTlZJU0lCTEVfUkVDQVBUQ0hBX0tFWSI6IjZMZDItdE1yQUFBQUFMc29pbEtxZ1pXRGJlWXRBZXlodm8tbENhNVkiLCJDT0lOQkFTRV9QVUJMSUNfTElTVElOR1NfVklTSUJMRV9SRUNBUFRDSEFfS0VZIjoiNkxjaUF0UXJBQUFBQU81eE1fbzVkQUlSNEJJQmY4TnROZzViY05yNyIsIkNPSU5CQVNFX1BVQkxJQ19LSUxMU1dJVENIX0FQSV9IT1NUIjoiIiwiQ09JTkJBU0VfRUFBX1NQQUNFX0lEIjoiN2NhOHFmbjkwN3V2IiwiQ09JTkJBU0VfRUFBX0NPTlRFTlRfREVMSVZFUllfQVBJX0tFWSI6IkJHMTlkazktdGhpc2lzZHVtbXl0b2tlbi1NOUJoazdTdEtRRkpFYnNndXYiLCJDT0lOQkFTRV9FQUFfQ09OVEVOVF9QUkVWSUVXX0FQSV9LRVkiOiJCRzE5ZGs5LXRoaXNpc2R1bW15dG9rZW4tTTlCaGs3U3RLUUZKRWJzZ3V2IiwiQ09JTkJBU0VfRUFBX0NMSUVOVF9LRVkiOiJFQUEiLCJDT0lOQkFTRV9QVUJMSUNfUkVDQVBUQ0hBX0NMT1VEX1BVQkxJQ19LRVkiOiI2TGRQbXg4ZUFBQUFBRFY5cml0dWEydGNyMmNmaHlKNTVwSmo1MUkwIiwiQ09JTkJBU0VfUFVCTElDX09BVVRIX0NMSUVOVF9JRCI6IjI1ODY2MGUxLTljZmUtNDIwMi05ZWRhLWQzYmVlZGIzZTExOCIsIkNPSU5CQVNFX1BVQkxJQ19MT0dJTl9ET01BSU4iOiJodHRwczpcdTAwMkZcdTAwMkZsb2dpbi5jb2luYmFzZS5jb20iLCJDT0lOQkFTRV9QVUJMSUNfVU5TQUZFX0dSQVBIUUxfRU5EUE9JTlQiOiIiLCJDT0lOQkFTRV9QVUJMSUNfVU5TQUZFX0lBSF9FTkRQT0lOVCI6IiIsIkNPSU5CQVNFX0lEX05BVklHQVRJT05fQkFSX1BST0pFQ1RfSUQiOiIyWlBnTmhMZExtVzZyYnhONUNpQVlVOThwT2QiLCJDT0lOQkFTRV9QVUJMSUNfVFJVU1RMWV9BQ0NFU1NfSUQiOiJwRGxQRzVGV3JkRWZnUTZpeW1SMyIsIkNPSU5CQVNFX1BVQkxJQ19UUlVTVExZX01FUkNIQU5UX0lEIjoiMjU3OSIsIkNPSU5CQVNFX1BVQkxJQ19HUkVFTkhPVVNFX0JPQVJEX0lEIjoiY29pbmJhc2UiLCJDT0lOQkFTRV9QVUJMSUNfV0FMTEVUX0JSQU5DSF9BUElfS0VZIjoia2V5X2xpdmVfcG14NzBGZm5DWVUwcW1QTVJjYVNXbG5qQUFpWDI4SU4iLCJDT0lOQkFTRV9QVUJMSUNfRVhDRVBUSU9OU19IT1NUIjoiZXhjZXB0aW9ucy5jb2luYmFzZS5jb20iLCJDT0lOQkFTRV9QVUJMSUNfREVSSUJJVF9QVUJMSUNfSE9TVCI6Ind3dy5kZXJpYml0LmNvbSIsIkNPSU5CQVNFX1BVQkxJQ19ERVJJQklUX0dBVEVXQVlfSE9TVCI6ImRyYi5jb2luYmFzZS5jb20iLCJDT0lOQkFTRV9QVUJMSUNfREVSSUJJVF9NRVRSSUNTX0hPU1QiOiJtZXRyaWNzLmRlcmliaXQuY29tIiwiQ09JTkJBU0VfUFVCTElDX0RFUklCSVRfREFUQV9IT1NUIjoiZGF0YS5kZXJpYml0LmNvbSIsIkNPSU5CQVNFX1BVQkxJQ19ERVJJQklUX0hJU1RPUllfSE9TVCI6Imhpc3RvcnkuZGVyaWJpdC5jb20iLCJDT0lOQkFTRV9QVUJMSUNfUkVUQUlMX1dTX1VSTCI6IndzLXJldGFpbC5jb2luYmFzZS5jb21cdTAwMkZ2MVx1MDAyRndzIiwiQ09JTkJBU0VfUFVCTElDX0FQUF9WRVJTSU9OIjoiZGU4OTQ3MmYwNDE4NTdjOTJkMzljNTE3YjQ5YzM2MGI3ZTA4ZTU3OCIsIkNPSU5CQVNFX1BVQkxJQ19BTVBMSVRVREVfUFJPSkVDVF9JRCI6IjEzMmU2MmI1OTUzY2U4ZDU2ODEzN2Q1ODg3YjZiN2FiIiwiQ09JTkJBU0VfUFVCTElDX0VUSERFTlZFUl9FTkFCTEVEIjoiMSIsIkNPSU5CQVNFX1BVQkxJQ19DT05URU5URlVMX0hPU1RfUFJPWFkiOiJjb250ZW50ZnVsLmNvaW5iYXNlLmNvbSJ9PC9zY3JpcHQ+CiAgPC9ib2R5Pgo8L2h0bWw+CjwhLS0gdmVyc2lvbiBkZTg5NDcyZjA0MTg1N2M5MmQzOWM1MTdiNDljMzYwYjdlMDhlNTc4IC0tPg=="}},"time_used":156,"timings":{"blocked":-1,"dns":3,"connect":1,"send":0,"wait":119,"receive":22,"ssl":10},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_kdeVV4Pp.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.593Z","timestamp":1785108244593,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_kdeVV4Pp.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 5204\r\nlast-modified: Sun, 26 Jul 2026 22:31:30 GMT\r\netag: \"c0e1711caa691a88ff6a602a47e14c3e\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 cd4031e4934b88564efbd54a91cf8d24.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: XmTYJmcEvxZg1dVEILfCRNS_DUz5xRG9b6YmcovbrvXtUZKxJw1LGw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=P8khnKiQ8sqa1skfNYcJ9CsdDFkjrjh4MUM9lj%2B2%2BhAeXlVYapTbbomkrBmAEoYz5HCU%2FVJuqwMkm2NwNiQUL1e2l7t3DW25s7fn9gi0VfbS4kBziu1CcEcCIsC%2FYXIOyYhOjuKFCxSmp3Y2gNnB\"}]}\r\ncf-ray: a21727e0bdb40883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":16519,"size_decoded":6350,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (14739)","md5":"d1db637c3ce769a7c90a566a70d613a8","sha1":"462ab16cb8de0e2effd3024531f3dd8c62a002c3","sha256":"3cd0b6f8cb9da76da5e40a9ebe26286947f6a89f75f63cd318c66e2f00f91e1c","sha512":"fdc35d689c036984e0a93024c4666b554b2c3d87baf69644001e84e77234485166e6f86856060dd511dc497fda3817918fb09e7711ede051fd60c6b99b2a97ad","ssdeep":"192:dSibRpRff0HJLXS02gEKl3ie0Q7v2EYvKnlKU0jxm0T9jH/y7Nhm:dlMC8E23ttvnYv66xLT9Gxhm","tlshash":"6c720cd1b7b43ae35adbead790e3852673397210e85de220f13664332971c5022a7f2d","first_seen":"2026-07-26T23:24:50.24964Z","last_seen":"2026-07-26T23:25:46.821218Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDBjZTU3ZGY4LWVjNzgtNGYwNS1hNzJmLTg0NGJhM2Y4NGU2NmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTBjZTU3ZGY4LWVjNzgtNGYwNS1hNzJmLTg0NGJhM2Y4NGU2NmApfSkoKX1jYXRjaHt9aW1wb3J0e0hhIGFzIGUsV3AgYXMgdCxfYSBhcyBuLGFzIGFzIHIsYmEgYXMgaSxmZiBhcyBhLGhmIGFzIG8saXMgYXMgc31mcm9tIi4vZV9DcnFSVzF3UC5qcyI7aW1wb3J0e3QgYXMgY31mcm9tIi4vY19CSWlhRXgzVi5qcyI7aW1wb3J0e3QgYXMgbH1mcm9tIi4vY19DUC1jZ0hmWS5qcyI7aW1wb3J0e3QgYXMgdX1mcm9tIi4vY19GZ2ZERk1Ibi5qcyI7aW1wb3J0e3QgYXMgZH1mcm9tIi4vY19Db09Pb0xFQi5qcyI7dmFyIGY9KGU9PnQ9PmUudGVzdCh0KSkoL14oKFtePD4oKVxbXF1cXC4sOzpcc0AiXSsoXC5bXjw+KClcW1xdXFwuLDs6XHNAIl0rKSopfCgiLisiKSlAKChcW1swLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31dKXwoKFthLXpBLVpcLTAtOV0rXC4pK1thLXpBLVpdezIsfSkpJC8pLHA9KGU9PnR5cGVvZiBlPT1gYm9vbGVhbmA/ZTp0eXBlb2YgZT09YHN0cmluZ2A/ISFlLnRyaW0oKTohIWUpLG09YSgpLGg9dChlKCkpLGc9dChvKCkpO2Z1bmN0aW9uIF8oZSx0KXtyZXR1cm4oMCxnLnVzZUNhbGxiYWNrKShuPT57ZS5jdXJyZW50PW4sdHlwZW9mIHQ9PWBmdW5jdGlvbmA/dChuKTp0eXBlb2YgdD09YG9iamVjdGAmJnQmJih0LmN1cnJlbnQ9bil9LFtlLHRdKX1mdW5jdGlvbiB2KGUsdCl7cmV0dXJuIG5ldyBQcm94eShlLHtzZXQobixyLGkpe3JldHVybiByPT09YGN1cnJlbnRgPyhpIT09ZS5jdXJyZW50JiYoZS5jdXJyZW50IT09bnVsbCYmdC51bnJlZ2lzdGVyKGUuY3VycmVudCksaSE9PW51bGwmJnQucmVnaXN0ZXIoaSkpLG5bcl09aSwhMCk6ITF9fSl9dmFyIHk9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9YFN5bnRoZXRpY0NoYW5nZUVycm9yYH19O3IoKTt2YXIgYix4PVtgdGV4dGAsYGVtYWlsYCxgdGVsYCxgc2VhcmNoYCxgdXJsYF0sUz1jbGFzc3tjb25zdHJ1Y3Rvcih7aW5pdDplLHRyYWNraW5nOnR9KXtzKHRoaXMsYHJlZ2lzdGVyYCx2b2lkIDApLHModGhpcyxgdW5yZWdpc3RlcmAsdm9pZCAwKTtsZXQgbj1uZXcgV2Vha01hcDt0aGlzLnJlZ2lzdGVyPXI9PntpZigheC5pbmNsdWRlcyhyLnR5cGUpKXJldHVybjtsZXR7aW5pdGlhbFZhbHVlOmk9YGAsY29udHJvbGxlZDphPSExfT1yLl93cmFwcGVyU3RhdGU/P3t9LHt2YWx1ZTpvLG9wdGlvbnM6c309ZSh7aW5pdGlhbFZhbHVlOnIudmFsdWV8fGksY29udHJvbGxlZDphfSksYz17dmFsdWU6byxvcHRpb25zOnMsZmFsbGJhY2tPcHRpb25zOnN9LGw9e2lkOi0xLGNhY2hlZElkOi0xfSx1PXt2YWx1ZTpgYCxzZWxlY3Rpb25TdGFydDowLHNlbGVjdGlvbkVuZDowfSxkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYF92YWx1ZVRyYWNrZXJgaW4gcj9yOkhUTUxJbnB1dEVsZW1lbnQucHJvdG90eXBlLGB2YWx1ZWApO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGB2YWx1ZWAsey4uLmQsc2V0OmU9Pnt2YXIgdDt1LnZhbHVlPWUsZD09bnVsbHx8KHQ9ZC5zZXQpPT1udWxsfHx0LmNhbGwocixlKX19KSxyLnZhbHVlPW87bGV0IGY9KCk9PntsZXQgZT0oKT0+e3Uuc2VsZWN0aW9uU3RhcnQ9ci5zZWxlY3Rpb25TdGFydD8/MCx1LnNlbGVjdGlvbkVuZD1yLnNlbGVjdGlvbkVuZD8/MCxsLmlkPXdpbmRvdy5zZXRUaW1lb3V0KGUpfTtsLmlkPXdpbmRvdy5zZXRUaW1lb3V0KGUpfSxwPSgpPT57d2luZG93LmNsZWFyVGltZW91dChsLmlkKSxsLmlkPS0xLGwuY2FjaGVkSWQ9LTF9LG09ZT0+e3RyeXt2YXIgbixpO2lmKGwuY2FjaGVkSWQ9PT1sLmlkKXRocm93IG5ldyB5KGBUaGUgaW5wdXQgc2VsZWN0aW9uIGhhcyBub3QgYmVlbiB1cGRhdGVkLmApO2wuY2FjaGVkSWQ9bC5pZDtsZXR7dmFsdWU6YSxzZWxlY3Rpb25TdGFydDpvLHNlbGVjdGlvbkVuZDpzfT1yO2lmKG89PT1udWxsfHxzPT09bnVsbCl0aHJvdyBuZXcgeShgVGhlIHNlbGVjdGlvbiBhdHRyaWJ1dGVzIGhhdmUgbm90IGJlZW4gaW5pdGlhbGl6ZWQuYCk7bGV0IGQ9dS52YWx1ZSxmO2lmKGUuaW5wdXRUeXBlPT09dm9pZCAwJiYodS5zZWxlY3Rpb25TdGFydD0wLHUuc2VsZWN0aW9uRW5kPWQubGVuZ3RoKSxvPnUuc2VsZWN0aW9uU3RhcnQ/Zj1gaW5zZXJ0YDpvPD11LnNlbGVjdGlvblN0YXJ0JiZvPHUuc2VsZWN0aW9uRW5kP2Y9YGRlbGV0ZUJhY2t3YXJkYDpvPT09dS5zZWxlY3Rpb25FbmQmJmEubGVuZ3RoPGQubGVuZ3RoJiYoZj1gZGVsZXRlRm9yd2FyZGApLGY9PT12b2lkIDB8fChmPT09YGRlbGV0ZUJhY2t3YXJkYHx8Zj09PWBkZWxldGVGb3J3YXJkYCkmJmEubGVuZ3RoPmQubGVuZ3RoKXRocm93IG5ldyB5KGBJbnB1dCB0eXBlIGRldGVjdGlvbiBlcnJvci5gKTtsZXQgcD1gYCxtPXUuc2VsZWN0aW9uU3RhcnQsaD11LnNlbGVjdGlvbkVuZDtpZihmPT09YGluc2VydGApcD1hLnNsaWNlKHUuc2VsZWN0aW9uU3RhcnQsbyk7ZWxzZXtsZXQgZT1kLmxlbmd0aC1hLmxlbmd0aDttPW8saD1vK2V9Yy52YWx1ZT09PWQ/Yy5mYWxsYmFja09wdGlvbnM9Yy5vcHRpb25zOmMub3B0aW9ucz1jLmZhbGxiYWNrT3B0aW9ucztsZXQgZz1jLm9wdGlvbnMse29wdGlvbnM6XywuLi52fT10KHtpbnB1dFR5cGU6ZixwcmV2aW91c1ZhbHVlOmQscHJldmlvdXNPcHRpb25zOmcsdmFsdWU6YSxhZGRlZFZhbHVlOnAsY2hhbmdlU3RhcnQ6bSxjaGFuZ2VFbmQ6aCxzZWxlY3Rpb25TdGFydDpvLHNlbGVjdGlvbkVuZDpzfSk7ci52YWx1ZT12LnZhbHVlLHIuc2V0U2VsZWN0aW9uUmFuZ2Uodi5zZWxlY3Rpb25TdGFydCx2LnNlbGVjdGlvbkVuZCksYy52YWx1ZT12LnZhbHVlLGMub3B0aW9ucz1fLHUuc2VsZWN0aW9uU3RhcnQ9di5zZWxlY3Rpb25TdGFydCx1LnNlbGVjdGlvbkVuZD12LnNlbGVjdGlvbkVuZCwobj1yLl92YWx1ZVRyYWNrZXIpPT1udWxsfHwoaT1uLnNldFZhbHVlKT09bnVsbHx8aS5jYWxsKG4sZCl9Y2F0Y2godCl7aWYoci52YWx1ZT11LnZhbHVlLHIuc2V0U2VsZWN0aW9uUmFuZ2UodS5zZWxlY3Rpb25TdGFydCx1LnNlbGVjdGlvbkVuZCksZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksdC5uYW1lIT09YFN5bnRoZXRpY0NoYW5nZUVycm9yYCl0aHJvdyB0fX07ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXImJmYoKSxyLmFkZEV2ZW50TGlzdGVuZXIoYGZvY3VzYCxmKSxyLmFkZEV2ZW50TGlzdGVuZXIoYGJsdXJgLHApLHIuYWRkRXZlbnRMaXN0ZW5lcihgaW5wdXRgLG0pLG4uc2V0KHIse29uRm9jdXM6ZixvbkJsdXI6cCxvbklucHV0Om19KX0sdGhpcy51bnJlZ2lzdGVyPWU9PntsZXQgdD1uLmdldChlKTt0IT09dm9pZCAwJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKGBmb2N1c2AsdC5vbkZvY3VzKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoYGJsdXJgLHQub25CbHVyKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoYGlucHV0YCx0Lm9uSW5wdXQpLG4uZGVsZXRlKGUpKX19fTtiPVMsT2JqZWN0LmRlZmluZVByb3BlcnR5KGIucHJvdG90eXBlLFN5bWJvbC50b1N0cmluZ1RhZyx7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsdmFsdWU6YElucHV0YH0pO2Z1bmN0aW9uIEMoZSx7cmVwbGFjZW1lbnRDaGFyczp0LHJlcGxhY2VtZW50Om4sc2VwYXJhdGU6cn0pe2xldCBpPXQsYT1gYDtmb3IobGV0IHQgb2YgZSl7dmFyIG87bGV0IGU9IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHQpJiYoKG89bltpWzBdXSk9PW51bGw/dm9pZCAwOm8udGVzdCh0KSk7KHImJnQ9PT1pWzBdfHxlKSYmKGk9aS5zbGljZSgxKSxhKz10KX1yZXR1cm4gYX1mdW5jdGlvbiB3KGUse21hc2s6dCxyZXBsYWNlbWVudDpuLHNlcGFyYXRlOnIsc2hvd01hc2s6aX0pe2xldCBhPTAsbz1gYDtmb3IobGV0IHIgb2YgdCl7aWYoIWkmJmVbYV09PT12b2lkIDApYnJlYWs7T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJmVbYV0hPT12b2lkIDA/bys9ZVthKytdOm8rPXJ9aWYociYmIWkpe2xldCBlPXQubGVuZ3RoLTE7Zm9yKDtlPj0wJiZvW2VdPT09dFtlXTtlLS0pO289by5zbGljZSgwLGUrMSl9cmV0dXJuIG99ZnVuY3Rpb24gVChlLHttYXNrOnQscmVwbGFjZW1lbnQ6bn0pe2xldCByPVtdO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXtsZXQgYT1lW2ldPz90W2ldLG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sYSk/YHJlcGxhY2VtZW50YDplW2ldIT09dm9pZCAwJiZlW2ldIT09dFtpXT9gaW5wdXRgOmBtYXNrYDtyLnB1c2goe3R5cGU6byx2YWx1ZTphLGluZGV4Oml9KX1yZXR1cm4gcn1mdW5jdGlvbiBFKGUpe3JldHVybiBlLmxlbmd0aD4wP3tbZV06Ly4vfTp7fX1mdW5jdGlvbiBEKGUse3N0YXJ0OnQ9MCxlbmQ6bixtYXNrOnIscmVwbGFjZW1lbnQ6aSxzZXBhcmF0ZTphfSl7bGV0IG89ZS5zbGljZSh0LG4pLHM9ci5zbGljZSh0LG4pLGM9YGA7Zm9yKGxldCBlPTA7ZTxzLmxlbmd0aDtlKyspe2xldCB0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLHNbZV0pO3QmJm9bZV0hPT12b2lkIDAmJm9bZV0hPT1zW2VdP2MrPW9bZV06dCYmYSYmKGMrPXNbZV0pfXJldHVybiBjfWZ1bmN0aW9uIE8oZSx7bWFzazp0LHJlcGxhY2VtZW50Om59KXtsZXQgcj10eXBlb2Ygbj09YHN0cmluZ2A/RShuKTpuLGk9UmVnRXhwKGBbXiR7T2JqZWN0LmtleXMocikuam9pbihgYCl9XWAsYGdgKTtyZXR1cm4gdyhDKGUse3JlcGxhY2VtZW50Q2hhcnM6dC5yZXBsYWNlKGksYGApLHJlcGxhY2VtZW50OnIsc2VwYXJhdGU6ITF9KSx7bWFzazp0LHJlcGxhY2VtZW50OnIsc2VwYXJhdGU6ITEsc2hvd01hc2s6ITF9KX1mdW5jdGlvbiBrKGUse21hc2s6dCxyZXBsYWNlbWVudDpufSl7bGV0IHI9dHlwZW9mIG49PWBzdHJpbmdgP0Uobik6bixpPUQoZSx7bWFzazp0LHJlcGxhY2VtZW50OnIsc2VwYXJhdGU6ITF9KSxhPVJlZ0V4cChgW14ke09iamVjdC5rZXlzKHIpLmpvaW4oYGApfV1gLGBnYCk7cmV0dXJuIEMoaSx7cmVwbGFjZW1lbnRDaGFyczp0LnJlcGxhY2UoYSxgYCkscmVwbGFjZW1lbnQ6cixzZXBhcmF0ZTohMX0pfWZ1bmN0aW9uIEEoZSx7bWFzazp0LHJlcGxhY2VtZW50Om59KXtsZXQgcj10eXBlb2Ygbj09YHN0cmluZ2A/RShuKTpuO3JldHVybiBUKE8oZSx7bWFzazp0LHJlcGxhY2VtZW50OnJ9KSx7bWFzazp0LHJlcGxhY2VtZW50OnJ9KX12YXIgaj1bYFtgLGBdYCxgXFxgLGAvYCxgXmAsYCRgLGAuYCxgfGAsYD9gLGAqYCxgK2AsYChgLGApYCxge2AsYH1gXTtmdW5jdGlvbiBNKGUpe3JldHVybiBqLmluY2x1ZGVzKGUpP2BcXCR7ZX1gOmV9ZnVuY3Rpb24gTihlLHttYXNrOnQscmVwbGFjZW1lbnQ6bn0pe2lmKGUhPT1gZnVsbGAmJmUhPT1gZnVsbC1pbmV4YWN0YCYmZSE9PWBwYXJ0aWFsYCYmZSE9PWBwYXJ0aWFsLWluZXhhY3RgKXRocm93IFR5cGVFcnJvcihgVGhlIG92ZXJsYXAgdmFsdWUgY2FuIGJlICJmdWxsIiwgImZ1bGwtaW5leGFjdCIsICJwYXJ0aWFsIiBvciAicGFydGlhbC1pbmV4YWN0Ii5gKTtsZXQgcj10eXBlb2Ygbj09YHN0cmluZ2A/RShuKTpuLGk9ZT09PWBwYXJ0aWFsYHx8ZT09PWBwYXJ0aWFsLWluZXhhY3RgLGE9ZT09PWBmdWxsYHx8ZT09PWBwYXJ0aWFsYCxvPWBgO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbj10W2VdLHM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsbik7ZT09PTAmJihvPWBeYCksaSYmKG8rPWAoYCksbys9cz9gJHthP2AoPyEke00obil9KWA6YGB9KCR7cltuXS5zb3VyY2V9KWA6TShuKSxlPT09dC5sZW5ndGgtMSYmKGkmJihvKz1gKT9gLnJlcGVhdCh0Lmxlbmd0aCkpLG8rPWAkYCl9cmV0dXJuIG99ZnVuY3Rpb24gUCh7aW5wdXRUeXBlOmUsdmFsdWU6dCxhZGRlZFZhbHVlOm4sYmVmb3JlQ2hhbmdlVmFsdWU6cixtYXNrOmkscmVwbGFjZW1lbnQ6YSxzZXBhcmF0ZTpvfSl7dmFyIHMsYyxsO2xldCB1PVQodCx7bWFzazppLHJlcGxhY2VtZW50OmF9KS5maWx0ZXIoKHt0eXBlOmV9KT0+ZT09PWBpbnB1dGB8fG8mJmU9PT1gcmVwbGFjZW1lbnRgKSxkPShzPXVbci5sZW5ndGgrbi5sZW5ndGgtMV0pPT1udWxsP3ZvaWQgMDpzLmluZGV4LGY9KGM9dVtyLmxlbmd0aC0xXSk9PW51bGw/dm9pZCAwOmMuaW5kZXgscD0obD11W3IubGVuZ3RoK24ubGVuZ3RoXSk9PW51bGw/dm9pZCAwOmwuaW5kZXg7aWYoZT09PWBpbnNlcnRgKXtpZihkIT09dm9pZCAwKXJldHVybiBkKzE7aWYocCE9PXZvaWQgMClyZXR1cm4gcDtpZihmIT09dm9pZCAwKXJldHVybiBmKzF9aWYoZT09PWBkZWxldGVGb3J3YXJkYCl7aWYocCE9PXZvaWQgMClyZXR1cm4gcDtpZihmIT09dm9pZCAwKXJldHVybiBmKzF9aWYoZT09PWBkZWxldGVCYWNrd2FyZGApe2lmKGYhPT12b2lkIDApcmV0dXJuIGYrMTtpZihwIT09dm9pZCAwKXJldHVybiBwfWxldCBtPXQuc3BsaXQoYGApLmZpbmRJbmRleChlPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxlKSk7cmV0dXJuIG09PT0tMT90Lmxlbmd0aDptfXIoKTt2YXIgRjtmdW5jdGlvbiBJKGUpe3JldHVybnttYXNrOmUubWFzaz8/YGAscmVwbGFjZW1lbnQ6dHlwZW9mIGUucmVwbGFjZW1lbnQ9PWBzdHJpbmdgP0UoZS5yZXBsYWNlbWVudCk6ZS5yZXBsYWNlbWVudD8/e30sc2hvd01hc2s6ZS5zaG93TWFzaz8/ITEsc2VwYXJhdGU6ZS5zZXBhcmF0ZT8/ITEsdHJhY2s6ZS50cmFjayxtb2RpZnk6ZS5tb2RpZnl9fXZhciBMPWNsYXNzIGV4dGVuZHMgU3tjb25zdHJ1Y3RvcihlPXt9KXtzdXBlcih7aW5pdDooe2luaXRpYWxWYWx1ZTp0LGNvbnRyb2xsZWQ6bn0pPT57bGV0e21hc2s6cixyZXBsYWNlbWVudDppLHNlcGFyYXRlOmEsc2hvd01hc2s6b309SShlKTtyZXR1cm4gdD1ufHx0P3Q6bz9yOmBgLHt2YWx1ZTp0LG9wdGlvbnM6e21hc2s6cixyZXBsYWNlbWVudDppLHNlcGFyYXRlOmF9fX0sdHJhY2tpbmc6KHtpbnB1dFR5cGU6dCxwcmV2aW91c1ZhbHVlOm4scHJldmlvdXNPcHRpb25zOnIsYWRkZWRWYWx1ZTppLGNoYW5nZVN0YXJ0OmEsY2hhbmdlRW5kOm99KT0+e2xldHt0cmFjazpzLG1vZGlmeTpjLC4uLmx9PUkoZSkse21hc2s6dSxyZXBsYWNlbWVudDpkLHNob3dNYXNrOmYsc2VwYXJhdGU6cH09bCxtPXsuLi50PT09YGluc2VydGA/e2lucHV0VHlwZTp0LGRhdGE6aX06e2lucHV0VHlwZTp0LGRhdGE6bnVsbH0sdmFsdWU6bixzZWxlY3Rpb25TdGFydDphLHNlbGVjdGlvbkVuZDpvfSxoPXM9PW51bGw/dm9pZCAwOnMobSk7aWYoaD09PSExKXRocm93IG5ldyB5KGBDdXN0b20gdHJhY2tpbmcgc3RvcC5gKTtoPT09bnVsbD9pPWBgOmghPT0hMCYmaCE9PXZvaWQgMCYmKGk9aCk7bGV0IGc9Yz09bnVsbD92b2lkIDA6YyhtKTsoZz09bnVsbD92b2lkIDA6Zy5tYXNrKSE9PXZvaWQgMCYmKHU9Zy5tYXNrKSwoZz09bnVsbD92b2lkIDA6Zy5yZXBsYWNlbWVudCkhPT12b2lkIDAmJihkPXR5cGVvZihnPT1udWxsP3ZvaWQgMDpnLnJlcGxhY2VtZW50KT09YHN0cmluZ2A/RShnPT1udWxsP3ZvaWQgMDpnLnJlcGxhY2VtZW50KTpnLnJlcGxhY2VtZW50KSwoZz09bnVsbD92b2lkIDA6Zy5zaG93TWFzaykhPT12b2lkIDAmJihmPWcuc2hvd01hc2spLChnPT1udWxsP3ZvaWQgMDpnLnNlcGFyYXRlKSE9PXZvaWQgMCYmKHA9Zy5zZXBhcmF0ZSk7bGV0IF89RChuLHtlbmQ6YSwuLi5yfSksdj1EKG4se3N0YXJ0Om8sLi4ucn0pLGI9UmVnRXhwKGBbXiR7T2JqZWN0LmtleXMoZCkuam9pbihgYCl9XWAsYGdgKSx4PXUucmVwbGFjZShiLGBgKTtpZihfJiYoXz1DKF8se3JlcGxhY2VtZW50Q2hhcnM6eCxyZXBsYWNlbWVudDpkLHNlcGFyYXRlOnB9KSx4PXguc2xpY2UoXy5sZW5ndGgpKSxpJiYoaT1DKGkse3JlcGxhY2VtZW50Q2hhcnM6eCxyZXBsYWNlbWVudDpkLHNlcGFyYXRlOiExfSkseD14LnNsaWNlKGkubGVuZ3RoKSksdD09PWBpbnNlcnRgJiZpPT09YGApdGhyb3cgbmV3IHkoIlRoZSBjaGFyYWN0ZXIgZG9lcyBub3QgbWF0Y2ggdGhlIGtleSB2YWx1ZSBvZiB0aGUgYHJlcGxhY2VtZW50YCBvYmplY3QuIik7aWYocCl7bGV0IGU9dS5zbGljZShhLG8pLnJlcGxhY2UoYixgYCksdD1lLmxlbmd0aC1pLmxlbmd0aDt0PDA/dj12LnNsaWNlKC10KTp0PjAmJih2PWUuc2xpY2UoLXQpK3YpfXYmJih2PUModix7cmVwbGFjZW1lbnRDaGFyczp4LHJlcGxhY2VtZW50OmQsc2VwYXJhdGU6cH0pKTtsZXQgUz13KF8raSt2LHttYXNrOnUscmVwbGFjZW1lbnQ6ZCxzZXBhcmF0ZTpwLHNob3dNYXNrOmZ9KSxUPVAoe2lucHV0VHlwZTp0LHZhbHVlOlMsYWRkZWRWYWx1ZTppLGJlZm9yZUNoYW5nZVZhbHVlOl8sbWFzazp1LHJlcGxhY2VtZW50OmQsc2VwYXJhdGU6cH0pO3JldHVybnt2YWx1ZTpTLHNlbGVjdGlvblN0YXJ0OlQsc2VsZWN0aW9uRW5kOlQsb3B0aW9uczp7bWFzazp1LHJlcGxhY2VtZW50OmQsc2VwYXJhdGU6cH19fX0pLHModGhpcyxgZm9ybWF0YCx2b2lkIDApLHModGhpcyxgZm9ybWF0VG9QYXJ0c2Asdm9pZCAwKSxzKHRoaXMsYHVuZm9ybWF0YCx2b2lkIDApLHModGhpcyxgZ2VuZXJhdGVQYXR0ZXJuYCx2b2lkIDApLHRoaXMuZm9ybWF0PXQ9Pk8odCxJKGUpKSx0aGlzLmZvcm1hdFRvUGFydHM9dD0+QSh0LEkoZSkpLHRoaXMudW5mb3JtYXQ9dD0+ayh0LEkoZSkpLHRoaXMuZ2VuZXJhdGVQYXR0ZXJuPXQ9Pk4odCxJKGUpKX19O0Y9TCxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5wcm90b3R5cGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt3cml0YWJsZTohMSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpgTWFza2B9KTtmdW5jdGlvbiBSKHttYXNrOmUscmVwbGFjZW1lbnQ6dCxzaG93TWFzazpuLHNlcGFyYXRlOnIsdHJhY2s6aSxtb2RpZnk6YX09e30pe2xldCBvPSgwLGcudXNlUmVmKShudWxsKSxzPSgwLGcudXNlUmVmKSh7bWFzazplLHJlcGxhY2VtZW50OnQsc2hvd01hc2s6bixzZXBhcmF0ZTpyLHRyYWNrOmksbW9kaWZ5OmF9KTtyZXR1cm4gcy5jdXJyZW50Lm1hc2s9ZSxzLmN1cnJlbnQucmVwbGFjZW1lbnQ9dCxzLmN1cnJlbnQuc2hvd01hc2s9bixzLmN1cnJlbnQuc2VwYXJhdGU9cixzLmN1cnJlbnQudHJhY2s9aSxzLmN1cnJlbnQubW9kaWZ5PWEsKDAsZy51c2VNZW1vKSgoKT0+dihvLG5ldyBMKHMuY3VycmVudCkpLFtdKX1mdW5jdGlvbiB6KHtjb21wb25lbnQ6ZSxtYXNrOnQscmVwbGFjZW1lbnQ6bixzaG93TWFzazpyLHNlcGFyYXRlOmksdHJhY2s6YSxtb2RpZnk6bywuLi5zfSxjKXtsZXQgbD1fKFIoe21hc2s6dCxyZXBsYWNlbWVudDpuLHNob3dNYXNrOnIsc2VwYXJhdGU6aSx0cmFjazphLG1vZGlmeTpvfSksYyk7cmV0dXJuIGU/KDAsZy5jcmVhdGVFbGVtZW50KShlLHtyZWY6bCwuLi5zfSk6KDAsZy5jcmVhdGVFbGVtZW50KShgaW5wdXRgLHtyZWY6bCwuLi5zfSl9dmFyIEI9KDAsZy5mb3J3YXJkUmVmKSh6KSxWPWkoW2B6LWluZGV4OmAsYDtmbGV4OjEgMSAwcHg7d2lkdGg6MTAwJTttYXJnaW46MDtwYWRkaW5nOjIwcHg7Ym9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZDpgLGA7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6YCxgO2NvbG9yOmAsYDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2hlaWdodDpgLGA7Jjpmb2N1c3tib3JkZXI6MXB4IHNvbGlkIGAsYDt9YF0sZT0+ZS50aGVtZS56SW5kZXgubm9ybWFsLGU9PmUuZGlzYWJsZWQ/ZS50aGVtZS5jb2xvci5kaXNhYmxlZDpgbm9uZWAsKHt0aGVtZTplfSk9PmUuZm9udFdlaWdodC5tZWRpdW0sKHtkaXNhYmxlZDplLHRoZW1lOnR9KT0+ZT90LmNvbG9yLnNsYXRlOnQuY29sb3Iuc2xhdGVEYXJrLCh7aGVpZ2h0OmV9KT0+YyhlKSxlPT5lLnRoZW1lLmNvbG9yLmJvcmRlckFjY2VudCksZWU9bi5pbnB1dC53aXRoQ29uZmlnKHtzaG91bGRGb3J3YXJkUHJvcDplPT4hW2BhbGxvd1Nocmlua2AsYGNkc1ZlcnNpb25gXS5pbmNsdWRlcyhlKX0pLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBJbnB1dF9fSW5wdXRGaWVsZGAsY29tcG9uZW50SWQ6YHNjLTczMDU5NWQzLTBgfSkoW2BgLGA7Zm9udC1mYW1pbHk6YCxgO2AsYDtgLGA7YF0sViwoe3RoZW1lOmV9KT0+ZS5mb250RmFtaWx5LnJlZ3VsYXIsKHtjZHNWZXJzaW9uOmV9KT0+ZSYmYGJvcmRlcjogbm9uZTtgLCh7YWxsb3dTaHJpbms6ZX0pPT5lJiZgd2lkdGg6IDA7YCksSD1uLnRleHRhcmVhLndpdGhDb25maWcoe3Nob3VsZEZvcndhcmRQcm9wOmU9PiFbYGFsbG93U2hyaW5rYF0uaW5jbHVkZXMoZSl9KS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgSW5wdXRfX1RleHRhcmVhRmllbGRgLGNvbXBvbmVudElkOmBzYy03MzA1OTVkMy0xYH0pKFtgYCxgO2ZvbnQtZmFtaWx5OmAsYDtgLGA7YF0sViwoe3RoZW1lOmV9KT0+ZS5mb250RmFtaWx5LnJlZ3VsYXIsKHthbGxvd1NocmluazplfSk9PmUmJmB3aWR0aDogMDtgKSx0ZT1uKEIpLndpdGhDb25maWcoe3Nob3VsZEZvcndhcmRQcm9wOmU9PiFbYGNkc1ZlcnNpb25gXS5pbmNsdWRlcyhlKX0pLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBJbnB1dF9fTWFza2VkRmllbGRgLGNvbXBvbmVudElkOmBzYy03MzA1OTVkMy0yYH0pKFtgYCxgO2ZvbnQtZmFtaWx5OmAsYDtib3JkZXI6YCxgOyY6Zm9jdXN7Ym9yZGVyOmAsYDtvdXRsaW5lOmAsYDt9YF0sViwoe3RoZW1lOmV9KT0+ZS5mb250RmFtaWx5Lm1vbm9zcGFjZSwoe2Nkc1ZlcnNpb246ZX0pPT5lJiZgbm9uZWAsKHtjZHNWZXJzaW9uOmV9KT0+ZSYmYG5vbmVgLCh7Y2RzVmVyc2lvbjplfSk9PmUmJmBub25lYCk7ZnVuY3Rpb24gVSh7aWQ6ZSxzaXplOnQsdHlwZTpuLGlucHV0TW9kZTpyLGF1dG9Db21wbGV0ZTppLGFubm90YXRpb246YSxjbGFzc05hbWU6byxyZXBsYWNlbWVudDpzLHNob3dNYXNrOmMscGxhY2Vob2xkZXI6bCxtYXhMZW5ndGg6dSxoZWlnaHQ6Zj1gYXV0b2AsaWNvbjpwLHZhbGlkYXRvcnM6XyxvbkFjdGlvbkNsaWNrOnYsb25CbHVyOnksb25DaGFuZ2U6YixvbkVudGVyOngsb25Fc2NhcGU6UyxvbkZvY3VzOkMsb25QYXN0ZTp3LG9uVG91Y2hTdGFydDpULGxhYmVsOkUsbWFzazpELGFkZEVycm9yOk8scmVtb3ZlRXJyb3I6ayxyZXNldFN0YXRlOkEsYWN0aW9uTGFiZWw6aixmb3JjZVNob3dBY3Rpb246TSx2YWx1ZTpOLHJlZkNhbGxiYWNrOlAsbmFtZTpGLGNvbnRhaW5lclN0eWxlczpJPXt9LGxhYmVsU3R5bGVzOkw9e30saW5wdXRTdHlsZXM6Uj17fSxpY29uU3R5bGVzOno9e30sZXJyb3JCb3JkZXI6Qj1gbmVnYXRpdmVgLGZvY3VzQm9yZGVyOlY9YGJvcmRlckFjY2VudGAsZXJyb3JJRDpVLGludmFsaWQ6VyxkaXNhYmxlZDpHPSExLHNob3dFcnJvcjpLPSExLGF1dG9Gb2N1czpxPSExLGNvbXBvbmVudDpjZT1gaW5wdXRgLGFubm90YXRpb25Qb3NpdGlvbjpKPWBsZWZ0YCxyb3dzOmxlPTEsYWxsb3dTaHJpbms6dWU9ITEsY2RzVmVyc2lvbjpZPSExLGF1dG9DYXBpdGFsaXplOlg9YG9mZmAsYXJpYUxhYmVsOlosLi4uUX0pe2xldFskLGRlXT0oMCxnLnVzZVN0YXRlKSghMSksZmU9KDAsZy51c2VDYWxsYmFjaykoZT0+IV98fCFfLnNvbWUodD0+IXRbMF18fCF0WzBdKGUpKSxbX10pLHBlPSgwLGcudXNlQ2FsbGJhY2spKGU9PntsZXQgdD1lLnRhcmdldC52YWx1ZTt3JiZEJiZlLnR5cGU9PT1gcGFzdGVgJiZ3KGUpLGImJmIodCk7bGV0IG49ZmUodCk7IW4mJk8/TygpOm4mJmsmJmsoKX0sW3csRCxiLGZlLE8sa10pLG1lPSgwLGcudXNlQ2FsbGJhY2spKGU9PntkZSghMSksSyYmKGsmJmsoKSxBJiZBKCkpLHkmJnkoZSl9LFtLLGssQSx5XSksaGU9KDAsZy51c2VDYWxsYmFjaykoZT0+e2RlKCEwKSxDJiZDKGUpfSxbQ10pLGdlPSgwLGcudXNlQ2FsbGJhY2spKGU9PntlLmtleUNvZGU9PT0yNyYmUz9TKGUpOmUua2V5Q29kZT09PTEzJiZ4JiZ4KGUpfSxbUyx4XSksX2U9KDAsZy51c2VDYWxsYmFjaykoZT0+e3YmJihlLnByZXZlbnREZWZhdWx0KCksdigpKX0sW3ZdKSx2ZT0oMCxnLnVzZUNhbGxiYWNrKShlPT57UCYmUChlKX0sW1BdKSx5ZT0oMCxnLnVzZU1lbW8pKCgpPT5FJiYoMCxtLmpzeCkoYWUse3N0eWxlOkwsYWxpZ246YGNlbnRlcmAsanVzdGlmeTpgY2VudGVyYCwkY2RzVmVyc2lvbjpZLGRpc2FibGVkOkcsY2hpbGRyZW46RX0pLFtFLEwsRyxZXSksYmU9KDAsZy51c2VNZW1vKSgoKT0+ISgwLGguZGVmYXVsdCkoaikmJnYmJihNfHwkJiYhTikmJigwLG0uanN4KShzZSx7b25Nb3VzZURvd246X2UsY2hpbGRyZW46an0pLFtqLHYsJCxOLF9lLE1dKSx4ZT0oMCxnLnVzZU1lbW8pKCgpPT57aWYoSylyZXR1cm4gQjtpZigkKXJldHVybiBWfSxbSywkLEIsVl0pLFNlPWNlPT09YGlucHV0YD9lZTpILENlPWEmJigwLG0uanN4KShvZSx7JHBvc2l0aW9uOkosY2VudGVyOiEwLGNoaWxkcmVuOigwLG0uanN4KShkLHtjb2xvcjpgbGlnaHRgLGNoaWxkcmVuOmF9KX0pLHdlPSgwLG0uanN4cykoaWUseyRib3JkZXJDb2xvcjp4ZSxjbGFzc05hbWU6byxkaXNhYmxlZDpHLHN0eWxlOkksYXV0bzohMCwkYW5ub3RhdGlvblBvc2l0aW9uOmE/Sjp2b2lkIDAsJGNkc1ZlcnNpb246WSxjaGlsZHJlbjpbRD8oMCxtLmpzeCkodGUse2lkOmUsImFyaWEtZGVzY3JpYmVkYnkiOlUsImFyaWEtaW52YWxpZCI6Vz9gdHJ1ZWA6YGZhbHNlYCxtYXNrOkQscmVwbGFjZW1lbnQ6cyxzaG93TWFzazpjLGF1dG9DYXBpdGFsaXplOlgsYXV0b0ZvY3VzOnEscGxhY2Vob2xkZXI6bHx8YGAsImFyaWEtbGFiZWwiOlp8fGx8fGBgLHZhbHVlOk4sb25DaGFuZ2U6cGUsb25CbHVyOm1lLG9uRm9jdXM6aGUsb25LZXlEb3duOmdlLG9uVG91Y2hTdGFydDpULHNpemU6dCx0eXBlOm4saW5wdXRNb2RlOnIsYXV0b0NvbXBsZXRlOmksbmFtZTpGLGRpc2FibGVkOkcsaGVpZ2h0OmYsImRhdGEtdGVzdGlkIjpRW2BkYXRhLXRlc3RpZGBdLGNkc1ZlcnNpb246WX0pOigwLG0uanN4KShTZSx7aWQ6ZSwiYXJpYS1kZXNjcmliZWRieSI6VSwiYXJpYS1pbnZhbGlkIjpXP2B0cnVlYDpgZmFsc2VgLCJkYXRhLXRlc3RpZCI6UVtgZGF0YS10ZXN0aWRgXSxyZWY6dmUsY2RzVmVyc2lvbjpZLGF1dG9Gb2N1czpxLHBsYWNlaG9sZGVyOmx8fGBgLCJhcmlhLWxhYmVsIjpafHxsfHxgYCx2YWx1ZTpOLG9uQ2hhbmdlOnBlLG9uQmx1cjptZSxvbkZvY3VzOmhlLG9uUGFzdGU6dyxvbktleURvd246Z2UsbWF4TGVuZ3RoOnUscm93czpTZT09PUg/bGU6dm9pZCAwLGF1dG9Db21wbGV0ZTpgb2ZmYCxhdXRvQ29ycmVjdDpgb2ZmYCxhdXRvQ2FwaXRhbGl6ZTpYLHNwZWxsQ2hlY2s6YGZhbHNlYCxzaXplOnQsYWxsb3dTaHJpbms6dWUsdHlwZTpuLGRpc2FibGVkOkcsaW5wdXRNb2RlOnIsbmFtZTpGLGhlaWdodDpmLHN0eWxlOlJ9LGBmaWVsZGApLHllLGJlLHAmJigwLG0uanN4KShyZSx7c3R5bGU6eixpZDpgaWNvbi1jb250YWluZXJgLGNoaWxkcmVuOnB9KV19KTtyZXR1cm4gYT8oMCxtLmpzeHMpKG5lLHthdXRvOiEwLCRwb3NpdGlvbjpKLGNoaWxkcmVuOltDZSx3ZV19KTp3ZX12YXIgVz0oMCxnLm1lbW8pKGZ1bmN0aW9uKGUpe2xldHtuYW1lOnQscmVmQ2FsbGJhY2s6bix2YWxpZGF0b3JzOnIsYXV0b0ZvY3VzOml9PWUse3JlZkNhbGxiYWNrOmF9PXUoe25hbWU6dHx8YGlucHV0YCx2YWxpZGF0b3JzOnIsYXV0b0ZvY3VzOml9KSxvPW58fGE7cmV0dXJuKDAsbS5qc3gpKFUsey4uLmUscmVmQ2FsbGJhY2s6b30pfSksbmU9bihsKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgSW5wdXRfX1dyYXBwZXJgLGNvbXBvbmVudElkOmBzYy03MzA1OTVkMy0zYH0pKFtgb3ZlcmZsb3c6aGlkZGVuO2ZsZXgtZGlyZWN0aW9uOmAsYDtgXSwoeyRwb3NpdGlvbjplfSk9PmU9PT1gbGVmdGA/YHJvd2A6YHJvdy1yZXZlcnNlYCkscmU9bihsKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgSW5wdXRfX0ljb25Db250YWluZXJgLGNvbXBvbmVudElkOmBzYy03MzA1OTVkMy00YH0pKFtgYWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctcmlnaHQ6MjBweDtgXSksaWU9bihsKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgSW5wdXRfX0NvbnRhaW5lcmAsY29tcG9uZW50SWQ6YHNjLTczMDU5NWQzLTVgfSkoW2Bwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6YCxgO2JvcmRlci1yYWRpdXM6YCxgO3RyYW5zaXRpb246YWxsIDAuMTVzIGVhc2U7YmFja2dyb3VuZDpgLGA7YCxgO2AsYDsmOmhvdmVye2JvcmRlci1jb2xvcjpgLGA7dHJhbnNpdGlvbjphbGwgMC4yNXMgZWFzZTtgLGA7fWBdLCh7JGNkc1ZlcnNpb246ZSwkYm9yZGVyQ29sb3I6dCx0aGVtZTpufSk9Pm4uY29sb3JbdHx8ZT9gYm9yZGVySGVhdnlgOmBib3JkZXJgXSwoeyRjZHNWZXJzaW9uOmUsdGhlbWU6dH0pPT5lP3QuYm9yZGVyLm1lZGl1bUJvcmRlclJhZGl1czp0LmJvcmRlci5ib3JkZXJSYWRpdXMsKHtkaXNhYmxlZDplLHRoZW1lOnR9KT0+ZT90LmNvbG9yLmRpc2FibGVkOnQuY29sb3IuYmFja2dyb3VuZCwoeyRhbm5vdGF0aW9uUG9zaXRpb246ZX0pPT5lPT09YGxlZnRgJiZgCiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7CiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7CiAgICBgLCh7JGFubm90YXRpb25Qb3NpdGlvbjplfSk9PmU9PT1gcmlnaHRgJiZgCiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOwogICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsKICAgIGAsKHskY2RzVmVyc2lvbjplLGRpc2FibGVkOnQsJGJvcmRlckNvbG9yOm4sdGhlbWU6cn0pPT5jKHQ/ZT9yLmNvbG9yLmJvcmRlckhlYXZ5OnIuY29sb3IuYm9yZGVyOnIuY29sb3Jbbnx8YGJvcmRlckhvdmVyYF0pLCh7JGNkc1ZlcnNpb246ZSx0aGVtZTp0LGRpc2FibGVkOm59KT0+ZSYmIW4mJmAKICAgICAgYm94LXNoYWRvdzogJHtlP2Bub25lYDpgMCAwIDAgMXB4ICR7dC5jb2xvci5iYWNrZ3JvdW5kQWNjZW50fWB9OwogICAgYCksYWU9bihsKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgSW5wdXRfX0xhYmVsYCxjb21wb25lbnRJZDpgc2MtNzMwNTk1ZDMtNmB9KShbYG1hcmdpbi1yaWdodDoyMHB4O2ZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDpgLGA7Y29sb3I6YCxgO2BdLCh7JGNkc1ZlcnNpb246ZX0pPT5lPzcwMDo1MDAsKHt0aGVtZTplfSk9PmUuY29sb3IudGV4dExpZ2h0KSxvZT1uKGwpLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBJbnB1dF9fQW5ub3RhdGlvbmAsY29tcG9uZW50SWQ6YHNjLTczMDU5NWQzLTdgfSkoW2BmbGV4OjAgMCBhdXRvO3BhZGRpbmc6MCAxOHB4O2JvcmRlcjoxcHggc29saWQgYCxgO2JhY2tncm91bmQ6YCxgO2AsYDtgXSwoe3RoZW1lOmV9KT0+ZS5jb2xvci5ib3JkZXIsKHt0aGVtZTplfSk9PmUuY29sb3IuYWNjZXNzb3J5QmFja2dyb3VuZCwoeyRwb3NpdGlvbjplfSk9PmkoZT09PWBsZWZ0YD9bYGJvcmRlci1yaWdodDpub25lO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6YCxgO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6YCxgO2BdOltgYm9yZGVyLWxlZnQ6bm9uZTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czpgLGA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6YCxgO2BdLCh7dGhlbWU6ZX0pPT5lLmJvcmRlci5ib3JkZXJSYWRpdXMsKHt0aGVtZTplfSk9PmUuYm9yZGVyLmJvcmRlclJhZGl1cykpLHNlPW4uZGl2LndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBJbnB1dF9fQWN0aW9uYCxjb21wb25lbnRJZDpgc2MtNzMwNTk1ZDMtOGB9KShbYHBvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6YCxgO3RvcDoxNnB4O3JpZ2h0OjE2cHg7cGFkZGluZzo2cHggOHB4O2JvcmRlcjoxcHggc29saWQgYCxgO2JvcmRlci1yYWRpdXM6YCxgO2JhY2tncm91bmQtY29sb3I6YCxgO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OmAsYDtjb2xvcjpgLGA7Y3Vyc29yOnBvaW50ZXI7Jjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmAsYDtjb2xvcjpgLGA7fWBdLGU9PmUudGhlbWUuekluZGV4LmVsZXZhdGVkLCh7dGhlbWU6ZX0pPT5lLmNvbG9yLmJvcmRlckFjY2VudCwoe3RoZW1lOmV9KT0+ZS5ib3JkZXIuYm9yZGVyUmFkaXVzLCh7dGhlbWU6ZX0pPT5lLmNvbG9yLmJhY2tncm91bmQsKHt0aGVtZTplfSk9PmUuZm9udFdlaWdodC5tZWRpdW0sKHt0aGVtZTplfSk9PmUuY29sb3IudGV4dEFjY2VudCwoe3RoZW1lOmV9KT0+ZS5jb2xvci5iYWNrZ3JvdW5kQWNjZW50LCh7dGhlbWU6ZX0pPT5lLmNvbG9yLndoaXRlKTtleHBvcnR7cCBhcyBuLGYgYXMgcixXIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX2tkZVZWNFBwLmpzLm1hcA=="}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_lSRSIGb_2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.680Z","timestamp":1785108244680,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_lSRSIGb_2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 523\r\nlast-modified: Sun, 26 Jul 2026 22:31:30 GMT\r\netag: \"5d518a6ce2ae019f0ec2e2182159f8f2\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 6259f104262c746229991b7649181424.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: jTKTTbrVGZY2g3Jg-rQEz4UmmReqZPSLZZMKn0feik0bgF2FalDUxQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=3Vqvo9TozNoU9p9xwFzgyf0NaPiT1g54oCNQw7QQhVV9UvMrRyt%2Bj%2BLSoCzYsFymFROKUCZVJ%2BkCEh1VTjt4qnFm%2F8mPmRevBh4fj1azQMDYMAeZZoC8qZaS%2BRNpfvOOGcItMhidaWzflgikmQqH\"}]}\r\ncf-ray: a21727e14efa0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":1326,"size_decoded":1670,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1286)","md5":"882e0a3d4f846819370d51b589bf334f","sha1":"e26eaaa6cc193b3b720b645d58fe89b567cb5ab9","sha256":"51a4dfe6a4620a0553ca21389b1adabd1f12d5ebb0fbe2be387964fe469adeeb","sha512":"da728017670f570de10cdd107a0cfc1197712c983706a690ae1370a3a97df7dd52bd2e53c3459281a5fae02c0543ccb9e9ca849f5a1c008811b6eb1cb7d1fdbf","ssdeep":"","tlshash":"1c214287d0742462e48703ed9279014b2e3c61b683ba4b6eb1387d3c5f2ad9a9980f17","first_seen":"2026-07-26T23:24:50.251614Z","last_seen":"2026-07-26T23:25:46.86846Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGRhNTkwZDE4LTUyMTgtNGExOC1iOTIzLTY5ZjA5MTQ0MDkzNWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWRhNTkwZDE4LTUyMTgtNGExOC1iOTIzLTY5ZjA5MTQ0MDkzNWApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsX2QgYXMgdCxoZiBhcyBufWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgcj1lKG4oKSk7ZnVuY3Rpb24gaShlKXtyZXR1cm5gJHtlfStgfWZ1bmN0aW9uIGEoKXtsZXR7Zm9ybWF0TnVtYmVyOmV9PXQoKSxuPTExZTcsYT0oMCxyLnVzZU1lbW8pKCgpPT5pKGUobix7bm90YXRpb246YGNvbXBhY3RgLG1heGltdW1TaWduaWZpY2FudERpZ2l0czozfSkpLFtlXSksbz0oMCxyLnVzZU1lbW8pKCgpPT5lKG4se25vdGF0aW9uOmBjb21wYWN0YCxjb21wYWN0RGlzcGxheTpgbG9uZ2B9KSxbZV0pLHM9KDAsci51c2VNZW1vKSgoKT0+aShlKG4se25vdGF0aW9uOmBjb21wYWN0YCxjb21wYWN0RGlzcGxheTpgbG9uZ2B9KSksW2VdKSxjPSgwLHIudXNlTWVtbykoKCk9PmkoZSgxMDApKSxbZV0pLGw9KDAsci51c2VNZW1vKSgoKT0+aShlKDM1MDApKSxbZV0pO3JldHVybntudW1iZXJPZkN1c3RvbWVyc0Zvcm1hdHRlZDphLG51bWJlck9mQ291bnRyaWVzRm9ybWF0dGVkOmMscXVhcnRlcmx5VHJhZGluZ1ZvbHVtZUZvcm1hdHRlZDooMCxyLnVzZU1lbW8pKCgpPT5lKDE0NWU5LHtzdHlsZTpgY3VycmVuY3lgLGN1cnJlbmN5OmBVU0RgLG5vdGF0aW9uOmBjb21wYWN0YH0pLFtlXSksbnVtYmVyT2ZFbXBsb3llZXNGb3JtYXR0ZWQ6bCxudW1iZXJPZkFzc2V0c0Zvcm1hdHRlZDooMCxyLnVzZU1lbW8pKCgpPT5lKDEzZTEwLHtzdHlsZTpgY3VycmVuY3lgLGN1cnJlbmN5OmBVU0RgLG5vdGF0aW9uOmBjb21wYWN0YH0pLFtlXSksbnVtYmVyT2ZDdXN0b21lcnNGb3JtYXR0ZWRMb25nOm8sYXBwcm94aW1hdGVQYXJ0bmVyc0NvdW50Rm9ybWF0dGVkOmUoMjQ1ZTMpLGFwcHJveGltYXRlU3VwcG9ydGVkQ291bnRyeUNvdW50Rm9ybWF0dGVkOmUoMTAwKSxudW1iZXJPZkN1c3RvbWVyc0Zvcm1hdHRlZExvbmdXaXRoUGx1czpzfX1leHBvcnR7YSBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19sU1JTSUdiXzIuanMubWFw"}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"wss","addr":"wss://830129coinbase.com/?token=bj3YVUTWZcmW","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"websocket","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.505Z","timestamp":1785108243505,"http_version":"HTTP/1.1","security_state":"secure","security_info":null,"request":{"raw":"GET /?token=bj3YVUTWZcmW HTTP/1.1\r\nHost: 830129coinbase.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-WebSocket-Version: 13\r\nOrigin: https://830129coinbase.com\r\nSec-WebSocket-Protocol: vite-hmr\r\nSec-WebSocket-Extensions: permessage-deflate\r\nSec-WebSocket-Key: TKYni2tzpD6sQd7gjXgbZQ==\r\nSec-GPC: 1\r\nConnection: Upgrade\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: websocket\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nUpgrade: websocket\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"","headers":null,"cookies":null,"status_code":"101","status_text":"Switching Protocols","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T02:51:03.003348Z","times_seen":17554215,"resource_available":true,"data":null}},"time_used":0,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":0,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_QjO-s296.css","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.663Z","timestamp":1785108244663,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_QjO-s296.css HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 102\r\nlast-modified: Tue, 05 May 2026 15:04:56 GMT\r\netag: \"b3c3dcfd85ff5911aec8b26665ba17e4\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 67b26e58a581719aff39a51e79faf096.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: WAW51-P2\r\nx-amz-cf-id: vh-9lXXHNGcl2p8BsjZp5RERgJEZqfH0YBxgRKHK1Wg8xKPJkI50sw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 7017534\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=UdGd3nv26iUeoMJRV7jy8cglShcrFnR1MV0Rs18jlPEJMsUhEuVkp273zccgdmPOY%2BlDDD4r%2F2h39y2t3wJxsS%2BlWAmnloT0wn7EEuvzj2p3kEJb4j2UwiHCj2FhmwRxIlwZ8fzVkimjaf2laxif\"}]}\r\ncf-ray: a21727e12ec00883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":161,"size_decoded":1258,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"e5da8faa98096bbf0d42af220bd97419","sha1":"a423500d5501384152cd2dfb2853308e2c58d578","sha256":"9b605ebd9ce24e139626d2550885fb6f0af26380a01df5f5ede4c65b880ec584","sha512":"e83565bf980b45c248fc4ee6e8ebf72039de24c5b0a1c972d425a3020c65ce5dc9fce5ad754af731627edbebecf3bf74fd4392421cba4d475fd0026861b3185c","ssdeep":"","tlshash":"e7c08cf076b0f07d0328c0c1d265bc90af842359ed0416dfc6041a2e2f8a2cc8480e6c","first_seen":"2025-10-10T21:56:24.739122Z","last_seen":"2026-07-26T23:25:46.909471Z","times_seen":99,"resource_available":false,"data":"QGxheWVyIGNkc3sucHJlc3NhYmxlT3ZlcnJpZGVzQ3NzLXBvNXk4NGR7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO3BhZGRpbmctaW5saW5lLWVuZDowfS5wcmVzc2FibGVPdmVycmlkZXNDc3MtcG81eTg0ZC5mb2N1cy12aXNpYmxlOmJlZm9yZXtjb250ZW50Om5vbmV9fQo="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"accounts.google.com/gsi/iframe/select?client_id=1080018929571-t143o72j7g4a93rio80higse5c127qlt.apps.googleusercontent.com\u0026ux_mode=popup\u0026ui_mode=card\u0026as=P4YV9BuuJfbPkhgedIgHB68Ic8tZeptD9W32v2w9bj8\u0026bs=Ipbn%2F3QC3VM9I38GIrtJVmLS5Dk1IjofnbHBYLgAhPQ\u0026is_itp=true\u0026channel_id=812f53114c3fe45c26c43b93689aef793f17c7859e69e0ece104b435922a6230\u0026origin=https%3A%2F%2Fwww.coinbase.com\u0026oauth2_auth_url=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Fv2%2Fauth","fqdn":"accounts.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"subdocument","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:06.535Z","timestamp":1785108246535,"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 /gsi/iframe/select?client_id=1080018929571-t143o72j7g4a93rio80higse5c127qlt.apps.googleusercontent.com\u0026ux_mode=popup\u0026ui_mode=card\u0026as=P4YV9BuuJfbPkhgedIgHB68Ic8tZeptD9W32v2w9bj8\u0026bs=Ipbn%2F3QC3VM9I38GIrtJVmLS5Dk1IjofnbHBYLgAhPQ\u0026is_itp=true\u0026channel_id=812f53114c3fe45c26c43b93689aef793f17c7859e69e0ece104b435922a6230\u0026origin=https%3A%2F%2Fwww.coinbase.com\u0026oauth2_auth_url=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Fv2%2Fauth HTTP/1.1\r\nHost: accounts.google.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\nReferer: https://www.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\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/3 200 \r\ncontent-type: text/html; charset=utf-8\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: Sun, 26 Jul 2026 23:24:06 GMT\r\ncross-origin-embedder-policy: require-corp\r\ncross-origin-resource-policy: cross-origin\r\nreport-to: {\"group\":\"coop_dd7de8473bddc59c6b748810a67a39b1\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/dd7de8473bddc59c6b748810a67a39b1\"}]}\r\ncontent-security-policy: require-trusted-types-for 'script';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http, script-src 'nonce-jNZUltrjoi-p2rRU-jQ4iQ' 'unsafe-inline' 'strict-dynamic' https: http: 'unsafe-eval';object-src 'none';base-uri 'self';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"coop_dd7de8473bddc59c6b748810a67a39b1\"\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\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":265389,"size_decoded":78340,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (65536), with no line terminators","md5":"29fe75c7c9f5f90cd7ef62af7ef42e07","sha1":"24892eebdc7c28c3f6784e26b9b2f3fb129fb712","sha256":"b68fb296a0237cd08d25ead1b8a52fa72d1fe6daeff6b7d60153fec2e774a4e9","sha512":"d2692aba6c6d38ae3f04ad2e6994b7bb44a533cc37124c30fea96f50ec0f223c13b08d9125996def716f580ad33c438480e9613fe9917936e99020d40823736d","ssdeep":"3072:CdLu+DK9BXxA7hxy5uFALKNSZZ++ft2vB:CdFv7hxy5SAux+fOB","tlshash":"23446ce4b3a270339263e8b2906f400ab53f94a5f1495dadf254e8d4cef2959017bf39","first_seen":"2026-07-26T23:24:50.254168Z","last_seen":"2026-07-26T23:24:50.254168Z","times_seen":1,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0ibm8iPjxoZWFkPjx0aXRsZT5TaWduIEluIC0gR29vZ2xlIEFjY291bnRzPC90aXRsZT48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+PG1ldGEgbmFtZT0icmVmZXJyZXIiIGNvbnRlbnQ9Im5vLXJlZmVycmVyIj48c3R5bGUgbm9uY2U9IkRmbEdkcnVNOUZHWXdlNFZQN09PUWciPkBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM0dVQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzA0NjAtMDUyRixVKzFDODAtMUM4QSxVKzIwQjQsVSsyREUwLTJERkYsVStBNjQwLUE2OUYsVStGRTJFLUZFMkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM2lVQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAzMDEsVSswNDAwLTA0NUYsVSswNDkwLTA0OTEsVSswNEIwLTA0QjEsVSsyMTE2O31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNDVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSsxRjAwLTFGRkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hMy1VQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAzNzAtMDM3NyxVKzAzN0EtMDM3RixVKzAzODQtMDM4QSxVKzAzOEMsVSswMzhFLTAzQTEsVSswM0EzLTAzRkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hd0NVQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAzMDItMDMwMyxVKzAzMDUsVSswMzA3LTAzMDgsVSswMzEwLFUrMDMxMixVKzAzMTUsVSswMzFBLFUrMDMyNi0wMzI3LFUrMDMyQyxVKzAzMkYtMDMzMCxVKzAzMzItMDMzMyxVKzAzMzgsVSswMzNBLFUrMDM0NixVKzAzNEQsVSswMzkxLTAzQTEsVSswM0EzLTAzQTksVSswM0IxLTAzQzksVSswM0QxLFUrMDNENS0wM0Q2LFUrMDNGMC0wM0YxLFUrMDNGNC0wM0Y1LFUrMjAxNi0yMDE3LFUrMjAzNC0yMDM4LFUrMjAzQyxVKzIwNDAsVSsyMDQzLFUrMjA0NyxVKzIwNTAsVSsyMDU3LFUrMjA1RixVKzIwNzAtMjA3MSxVKzIwNzQtMjA4RSxVKzIwOTAtMjA5QyxVKzIwRDAtMjBEQyxVKzIwRTEsVSsyMEU1LTIwRUYsVSsyMTAwLTIxMTIsVSsyMTE0LTIxMTUsVSsyMTE3LTIxMjEsVSsyMTIzLTIxNEYsVSsyMTkwLFUrMjE5MixVKzIxOTQtMjFBRSxVKzIxQjAtMjFFNSxVKzIxRjEtMjFGMixVKzIxRjQtMjIxMSxVKzIyMTMtMjIxNCxVKzIyMTYtMjJGRixVKzIzMDgtMjMwQixVKzIzMTAsVSsyMzE5LFUrMjMxQy0yMzIxLFUrMjMzNi0yMzdBLFUrMjM3QyxVKzIzOTUsVSsyMzlCLTIzQjcsVSsyM0QwLFUrMjNEQy0yM0UxLFUrMjQ3NC0yNDc1LFUrMjVBRixVKzI1QjMsVSsyNUI3LFUrMjVCRCxVKzI1QzEsVSsyNUNBLFUrMjVDQyxVKzI1RkIsVSsyNjZELTI2NkYsVSsyN0MwLTI3RkYsVSsyOTAwLTJBRkYsVSsyQjBFLTJCMTEsVSsyQjMwLTJCNEMsVSsyQkZFLFUrMzAzMCxVK0ZGNUIsVStGRjVELFUrMUQ0MDAtMUQ3RkYsVSsxRUUwMC0xRUVGRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWF4S1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDAwMS0wMDBDLFUrMDAwRS0wMDFGLFUrMDA3Ri0wMDlGLFUrMjBERC0yMEUwLFUrMjBFMi0yMEU0LFUrMjE1MC0yMThGLFUrMjE5MCxVKzIxOTIsVSsyMTk0LTIxOTksVSsyMUFGLFUrMjFFNi0yMUYwLFUrMjFGMyxVKzIyMTgtMjIxOSxVKzIyOTksVSsyMkM0LTIyQzYsVSsyMzAwLTI0M0YsVSsyNDQwLTI0NEEsVSsyNDYwLTI0RkYsVSsyNUEwLTI3QkYsVSsyODAwLTI4RkYsVSsyOTIxLTI5MjIsVSsyOTgxLFUrMjlCRixVKzI5RUIsVSsyQjAwLTJCRkYsVSs0REMwLTRERkYsVStGRkY5LUZGRkIsVSsxMDE0MC0xMDE4RSxVKzEwMTkwLTEwMTlDLFUrMTAxQTAsVSsxMDFEMC0xMDFGRCxVKzEwMkUwLTEwMkZCLFUrMTBFNjAtMTBFN0UsVSsxRDJDMC0xRDJEMyxVKzFEMkUwLTFEMzdGLFUrMUYwMDAtMUYwRkYsVSsxRjEwMC0xRjFBRCxVKzFGMUU2LTFGMUZGLFUrMUYzMEQtMUYzMEYsVSsxRjMxNSxVKzFGMzFDLFUrMUYzMUUsVSsxRjMyMC0xRjMyQyxVKzFGMzM2LFUrMUYzNzgsVSsxRjM3RCxVKzFGMzgyLFUrMUYzOTMtMUYzOUYsVSsxRjNBNy0xRjNBOCxVKzFGM0FDLTFGM0FGLFUrMUYzQzIsVSsxRjNDNC0xRjNDNixVKzFGM0NBLTFGM0NFLFUrMUYzRDQtMUYzRTAsVSsxRjNFRCxVKzFGM0YxLTFGM0YzLFUrMUYzRjUtMUYzRjcsVSsxRjQwOCxVKzFGNDE1LFUrMUY0MUYsVSsxRjQyNixVKzFGNDNGLFUrMUY0NDEtMUY0NDIsVSsxRjQ0NCxVKzFGNDQ2LTFGNDQ5LFUrMUY0NEMtMUY0NEUsVSsxRjQ1MyxVKzFGNDZBLFUrMUY0N0QsVSsxRjRBMyxVKzFGNEIwLFUrMUY0QjMsVSsxRjRCOSxVKzFGNEJCLFUrMUY0QkYsVSsxRjRDOC0xRjRDQixVKzFGNEQ2LFUrMUY0REEsVSsxRjRERixVKzFGNEUzLTFGNEU2LFUrMUY0RUEtMUY0RUQsVSsxRjRGNyxVKzFGNEY5LTFGNEZCLFUrMUY0RkQtMUY0RkUsVSsxRjUwMyxVKzFGNTA3LTFGNTBCLFUrMUY1MEQsVSsxRjUxMi0xRjUxMyxVKzFGNTNFLTFGNTRBLFUrMUY1NEYtMUY1RkEsVSsxRjYxMCxVKzFGNjUwLTFGNjdGLFUrMUY2ODcsVSsxRjY4RCxVKzFGNjkxLFUrMUY2OTQsVSsxRjY5OCxVKzFGNkFELFUrMUY2QjIsVSsxRjZCOS0xRjZCQSxVKzFGNkJDLFUrMUY2QzYtMUY2Q0YsVSsxRjZEMy0xRjZENyxVKzFGNkUwLTFGNkVBLFUrMUY2RjAtMUY2RjMsVSsxRjZGNy0xRjZGQyxVKzFGNzAwLTFGN0ZGLFUrMUY4MDAtMUY4MEIsVSsxRjgxMC0xRjg0NyxVKzFGODUwLTFGODU5LFUrMUY4NjAtMUY4ODcsVSsxRjg5MC0xRjhBRCxVKzFGOEIwLTFGOEJCLFUrMUY4QzAtMUY4QzEsVSsxRjkwMC0xRjkwQixVKzFGOTNCLFUrMUY5NDYsVSsxRjk4NCxVKzFGOTk2LFUrMUY5RTksVSsxRkEwMC0xRkE2RixVKzFGQTcwLTFGQTdDLFUrMUZBODAtMUZBODksVSsxRkE4Ri0xRkFDNixVKzFGQUNFLTFGQURDLFUrMUZBREYtMUZBRTksVSsxRkFGMC0xRkFGOCxVKzFGQjAwLTFGQkZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNPVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMTAyLTAxMDMsVSswMTEwLTAxMTEsVSswMTI4LTAxMjksVSswMTY4LTAxNjksVSswMUEwLTAxQTEsVSswMUFGLTAxQjAsVSswMzAwLTAzMDEsVSswMzAzLTAzMDQsVSswMzA4LTAzMDksVSswMzIzLFUrMDMyOSxVKzFFQTAtMUVGOSxVKzIwQUI7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM0tVQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAxMDAtMDJCQSxVKzAyQkQtMDJDNSxVKzAyQzctMDJDQyxVKzAyQ0UtMDJENyxVKzAyREQtMDJGRixVKzAzMDQsVSswMzA4LFUrMDMyOSxVKzFEMDAtMURCRixVKzFFMDAtMUU5RixVKzFFRjItMUVGRixVKzIwMjAsVSsyMEEwLTIwQUIsVSsyMEFELTIwQzAsVSsyMTEzLFUrMkM2MC0yQzdGLFUrQTcyMC1BN0ZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTN5VUJBLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDAwMC0wMEZGLFUrMDEzMSxVKzAxNTItMDE1MyxVKzAyQkItMDJCQyxVKzAyQzYsVSswMkRBLFUrMDJEQyxVKzAzMDQsVSswMzA4LFUrMDMyOSxVKzIwMDAtMjA2RixVKzIwQUMsVSsyMTIyLFUrMjE5MSxVKzIxOTMsVSsyMjEyLFUrMjIxNSxVK0ZFRkYsVStGRkZEO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNHVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswNDYwLTA1MkYsVSsxQzgwLTFDOEEsVSsyMEI0LFUrMkRFMC0yREZGLFUrQTY0MC1BNjlGLFUrRkUyRS1GRTJGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNpVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzAxLFUrMDQwMC0wNDVGLFUrMDQ5MC0wNDkxLFUrMDRCMC0wNEIxLFUrMjExNjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzQ1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMUYwMC0xRkZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTMtVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzcwLTAzNzcsVSswMzdBLTAzN0YsVSswMzg0LTAzOEEsVSswMzhDLFUrMDM4RS0wM0ExLFUrMDNBMy0wM0ZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYXdDVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzAyLTAzMDMsVSswMzA1LFUrMDMwNy0wMzA4LFUrMDMxMCxVKzAzMTIsVSswMzE1LFUrMDMxQSxVKzAzMjYtMDMyNyxVKzAzMkMsVSswMzJGLTAzMzAsVSswMzMyLTAzMzMsVSswMzM4LFUrMDMzQSxVKzAzNDYsVSswMzRELFUrMDM5MS0wM0ExLFUrMDNBMy0wM0E5LFUrMDNCMS0wM0M5LFUrMDNEMSxVKzAzRDUtMDNENixVKzAzRjAtMDNGMSxVKzAzRjQtMDNGNSxVKzIwMTYtMjAxNyxVKzIwMzQtMjAzOCxVKzIwM0MsVSsyMDQwLFUrMjA0MyxVKzIwNDcsVSsyMDUwLFUrMjA1NyxVKzIwNUYsVSsyMDcwLTIwNzEsVSsyMDc0LTIwOEUsVSsyMDkwLTIwOUMsVSsyMEQwLTIwREMsVSsyMEUxLFUrMjBFNS0yMEVGLFUrMjEwMC0yMTEyLFUrMjExNC0yMTE1LFUrMjExNy0yMTIxLFUrMjEyMy0yMTRGLFUrMjE5MCxVKzIxOTIsVSsyMTk0LTIxQUUsVSsyMUIwLTIxRTUsVSsyMUYxLTIxRjIsVSsyMUY0LTIyMTEsVSsyMjEzLTIyMTQsVSsyMjE2LTIyRkYsVSsyMzA4LTIzMEIsVSsyMzEwLFUrMjMxOSxVKzIzMUMtMjMyMSxVKzIzMzYtMjM3QSxVKzIzN0MsVSsyMzk1LFUrMjM5Qi0yM0I3LFUrMjNEMCxVKzIzREMtMjNFMSxVKzI0NzQtMjQ3NSxVKzI1QUYsVSsyNUIzLFUrMjVCNyxVKzI1QkQsVSsyNUMxLFUrMjVDQSxVKzI1Q0MsVSsyNUZCLFUrMjY2RC0yNjZGLFUrMjdDMC0yN0ZGLFUrMjkwMC0yQUZGLFUrMkIwRS0yQjExLFUrMkIzMC0yQjRDLFUrMkJGRSxVKzMwMzAsVStGRjVCLFUrRkY1RCxVKzFENDAwLTFEN0ZGLFUrMUVFMDAtMUVFRkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1heEtVQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAwMDEtMDAwQyxVKzAwMEUtMDAxRixVKzAwN0YtMDA5RixVKzIwREQtMjBFMCxVKzIwRTItMjBFNCxVKzIxNTAtMjE4RixVKzIxOTAsVSsyMTkyLFUrMjE5NC0yMTk5LFUrMjFBRixVKzIxRTYtMjFGMCxVKzIxRjMsVSsyMjE4LTIyMTksVSsyMjk5LFUrMjJDNC0yMkM2LFUrMjMwMC0yNDNGLFUrMjQ0MC0yNDRBLFUrMjQ2MC0yNEZGLFUrMjVBMC0yN0JGLFUrMjgwMC0yOEZGLFUrMjkyMS0yOTIyLFUrMjk4MSxVKzI5QkYsVSsyOUVCLFUrMkIwMC0yQkZGLFUrNERDMC00REZGLFUrRkZGOS1GRkZCLFUrMTAxNDAtMTAxOEUsVSsxMDE5MC0xMDE5QyxVKzEwMUEwLFUrMTAxRDAtMTAxRkQsVSsxMDJFMC0xMDJGQixVKzEwRTYwLTEwRTdFLFUrMUQyQzAtMUQyRDMsVSsxRDJFMC0xRDM3RixVKzFGMDAwLTFGMEZGLFUrMUYxMDAtMUYxQUQsVSsxRjFFNi0xRjFGRixVKzFGMzBELTFGMzBGLFUrMUYzMTUsVSsxRjMxQyxVKzFGMzFFLFUrMUYzMjAtMUYzMkMsVSsxRjMzNixVKzFGMzc4LFUrMUYzN0QsVSsxRjM4MixVKzFGMzkzLTFGMzlGLFUrMUYzQTctMUYzQTgsVSsxRjNBQy0xRjNBRixVKzFGM0MyLFUrMUYzQzQtMUYzQzYsVSsxRjNDQS0xRjNDRSxVKzFGM0Q0LTFGM0UwLFUrMUYzRUQsVSsxRjNGMS0xRjNGMyxVKzFGM0Y1LTFGM0Y3LFUrMUY0MDgsVSsxRjQxNSxVKzFGNDFGLFUrMUY0MjYsVSsxRjQzRixVKzFGNDQxLTFGNDQyLFUrMUY0NDQsVSsxRjQ0Ni0xRjQ0OSxVKzFGNDRDLTFGNDRFLFUrMUY0NTMsVSsxRjQ2QSxVKzFGNDdELFUrMUY0QTMsVSsxRjRCMCxVKzFGNEIzLFUrMUY0QjksVSsxRjRCQixVKzFGNEJGLFUrMUY0QzgtMUY0Q0IsVSsxRjRENixVKzFGNERBLFUrMUY0REYsVSsxRjRFMy0xRjRFNixVKzFGNEVBLTFGNEVELFUrMUY0RjcsVSsxRjRGOS0xRjRGQixVKzFGNEZELTFGNEZFLFUrMUY1MDMsVSsxRjUwNy0xRjUwQixVKzFGNTBELFUrMUY1MTItMUY1MTMsVSsxRjUzRS0xRjU0QSxVKzFGNTRGLTFGNUZBLFUrMUY2MTAsVSsxRjY1MC0xRjY3RixVKzFGNjg3LFUrMUY2OEQsVSsxRjY5MSxVKzFGNjk0LFUrMUY2OTgsVSsxRjZBRCxVKzFGNkIyLFUrMUY2QjktMUY2QkEsVSsxRjZCQyxVKzFGNkM2LTFGNkNGLFUrMUY2RDMtMUY2RDcsVSsxRjZFMC0xRjZFQSxVKzFGNkYwLTFGNkYzLFUrMUY2RjctMUY2RkMsVSsxRjcwMC0xRjdGRixVKzFGODAwLTFGODBCLFUrMUY4MTAtMUY4NDcsVSsxRjg1MC0xRjg1OSxVKzFGODYwLTFGODg3LFUrMUY4OTAtMUY4QUQsVSsxRjhCMC0xRjhCQixVKzFGOEMwLTFGOEMxLFUrMUY5MDAtMUY5MEIsVSsxRjkzQixVKzFGOTQ2LFUrMUY5ODQsVSsxRjk5NixVKzFGOUU5LFUrMUZBMDAtMUZBNkYsVSsxRkE3MC0xRkE3QyxVKzFGQTgwLTFGQTg5LFUrMUZBOEYtMUZBQzYsVSsxRkFDRS0xRkFEQyxVKzFGQURGLTFGQUU5LFUrMUZBRjAtMUZBRjgsVSsxRkIwMC0xRkJGRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzT1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDEwMi0wMTAzLFUrMDExMC0wMTExLFUrMDEyOC0wMTI5LFUrMDE2OC0wMTY5LFUrMDFBMC0wMUExLFUrMDFBRi0wMUIwLFUrMDMwMC0wMzAxLFUrMDMwMy0wMzA0LFUrMDMwOC0wMzA5LFUrMDMyMyxVKzAzMjksVSsxRUEwLTFFRjksVSsyMEFCO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNLVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMTAwLTAyQkEsVSswMkJELTAyQzUsVSswMkM3LTAyQ0MsVSswMkNFLTAyRDcsVSswMkRELTAyRkYsVSswMzA0LFUrMDMwOCxVKzAzMjksVSsxRDAwLTFEQkYsVSsxRTAwLTFFOUYsVSsxRUYyLTFFRkYsVSsyMDIwLFUrMjBBMC0yMEFCLFUrMjBBRC0yMEMwLFUrMjExMyxVKzJDNjAtMkM3RixVK0E3MjAtQTdGRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzeVVCQS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAwMDAtMDBGRixVKzAxMzEsVSswMTUyLTAxNTMsVSswMkJCLTAyQkMsVSswMkM2LFUrMDJEQSxVKzAyREMsVSswMzA0LFUrMDMwOCxVKzAzMjksVSsyMDAwLTIwNkYsVSsyMEFDLFUrMjEyMixVKzIxOTEsVSsyMTkzLFUrMjIxMixVKzIyMTUsVStGRUZGLFUrRkZGRDt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEycmdDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDMwOCxVKzA1MzAtMDU4RixVKzIwMTAsVSsyMDI0LFUrMjVDQyxVK0ZCMTMtRkIxNzt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEyckFDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDk1MS0wOTUyLFUrMDk2NC0wOTY1LFUrMDk4MC0wOUZFLFUrMUNEMCxVKzFDRDIsVSsxQ0Q1LTFDRDYsVSsxQ0Q4LFUrMUNFMSxVKzFDRUEsVSsxQ0VELFUrMUNGMixVKzFDRjUtMUNGNyxVKzIwMEMtMjAwRCxVKzIwQjksVSsyNUNDLFUrQThGMTt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEya1FDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDJDNyxVKzAyRDgtMDJEOSxVKzAyREIsVSswMzA3LFUrMTQwMC0xNjdGLFUrMThCMC0xOEY1LFUrMjVDQyxVKzExQUIwLTExQUJGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJzd0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswNDYwLTA1MkYsVSsxQzgwLTFDOEEsVSsyMEI0LFUrMkRFMC0yREZGLFUrQTY0MC1BNjlGLFUrRkUyRS1GRTJGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJ1Z0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzAxLFUrMDQwMC0wNDVGLFUrMDQ5MC0wNDkxLFUrMDRCMC0wNEIxLFUrMjExNjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEydndDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDkwMC0wOTdGLFUrMUNEMC0xQ0Y5LFUrMjAwQy0yMDBELFUrMjBBOCxVKzIwQjksVSsyMEYwLFUrMjVDQyxVK0E4MzAtQTgzOSxVK0E4RTAtQThGRixVKzExQjAwLTExQjA5O31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJyd0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzBFLFUrMTIwMC0xMzk5LFUrMkQ4MC0yRERFLFUrQUIwMS1BQjJFLFUrMUU3RTAtMUU3RTYsVSsxRTdFOC0xRTdFQixVKzFFN0VELTFFN0VFLFUrMUU3RjAtMUU3RkU7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0dvb2dsZSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3MvZ29vZ2xlc2Fucy92NjIvNFVhUnJFTkhzeEpsR0R1R28xT0lsSmZDNmxfMjRybENLMVlvX0lxMm9RQ0loTWwwN3YweHZlNC53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzA1ODksVSsxMEEwLTEwRkYsVSsxQzkwLTFDQkEsVSsxQ0JELTFDQkYsVSsyMDVBLFUrMkQwMC0yRDJGLFUrMkUzMTt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEyc2dDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMUYwMC0xRkZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJ2UUNJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzcwLTAzNzcsVSswMzdBLTAzN0YsVSswMzg0LTAzOEEsVSswMzhDLFUrMDM4RS0wM0ExLFUrMDNBMy0wM0ZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJwUUNJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswOTUxLTA5NTIsVSswOTY0LTA5NjUsVSswQTgwLTBBRkYsVSsyMDBDLTIwMEQsVSsyMEI5LFUrMjVDQyxVK0E4MzAtQTgzOTt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEyblFDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDk1MS0wOTUyLFUrMDk2NC0wOTY1LFUrMEEwMS0wQTc2LFUrMjAwQy0yMDBELFUrMjBCOSxVKzI1Q0MsVSsyNjJDLFUrQTgzMC1BODM5O31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJ2QUNJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzA3LTAzMDgsVSswNTkwLTA1RkYsVSsyMDBDLTIwMTAsVSsyMEFBLFUrMjVDQyxVK0ZCMUQtRkI0Rjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEydFFDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMTc4MC0xN0ZGLFUrMTlFMC0xOUZGLFUrMjAwQy0yMDBELFUrMjVDQzt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEydHdDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMEU4MS0wRURGLFUrMjAwQy0yMDBELFUrMjVDQzt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEycGdDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDMwNyxVKzAzMjMsVSswOTUxLTA5NTIsVSswOTY0LTA5NjUsVSswRDAwLTBEN0YsVSsxQ0RBLFUrMUNGMixVKzIwMEMtMjAwRCxVKzIwQjksVSsyNUNDLFUrQTgzMC1BODMyO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJwd0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswOTUxLTA5NTIsVSswOTY0LTA5NjUsVSswQjAxLTBCNzcsVSsxQ0RBLFUrMUNGMixVKzIwMEMtMjAwRCxVKzIwQjksVSsyNUNDO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJvd0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswOTY0LTA5NjUsVSswRDgxLTBERjQsVSsxQ0YyLFUrMjAwQy0yMDBELFUrMjVDQyxVKzExMUUxLTExMUY0O31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTIwQUNJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMDAxLTAwMEMsVSswMDBFLTAwMUYsVSswMDdGLTAwOUYsVSsyMERELTIwRTAsVSsyMEUyLTIwRTQsVSsyMTUwLTIxOEYsVSsyMTkwLFUrMjE5MixVKzIxOTQtMjE5OSxVKzIxQUYsVSsyMUU2LTIxRjAsVSsyMUYzLFUrMjIxOC0yMjE5LFUrMjI5OSxVKzIyQzQtMjJDNixVKzIzMDAtMjQzRixVKzI0NDAtMjQ0QSxVKzI0NjAtMjRGRixVKzI1QTAtMjdCRixVKzI4MDAtMjhGRixVKzI5MjEtMjkyMixVKzI5ODEsVSsyOUJGLFUrMjlFQixVKzJCMDAtMkJGRixVKzREQzAtNERGRixVK0ZGRjktRkZGQixVKzEwMTQwLTEwMThFLFUrMTAxOTAtMTAxOUMsVSsxMDFBMCxVKzEwMUQwLTEwMUZELFUrMTAyRTAtMTAyRkIsVSsxMEU2MC0xMEU3RSxVKzFEMkMwLTFEMkQzLFUrMUQyRTAtMUQzN0YsVSsxRjAwMC0xRjBGRixVKzFGMTAwLTFGMUFELFUrMUYxRTYtMUYxRkYsVSsxRjMwRC0xRjMwRixVKzFGMzE1LFUrMUYzMUMsVSsxRjMxRSxVKzFGMzIwLTFGMzJDLFUrMUYzMzYsVSsxRjM3OCxVKzFGMzdELFUrMUYzODIsVSsxRjM5My0xRjM5RixVKzFGM0E3LTFGM0E4LFUrMUYzQUMtMUYzQUYsVSsxRjNDMixVKzFGM0M0LTFGM0M2LFUrMUYzQ0EtMUYzQ0UsVSsxRjNENC0xRjNFMCxVKzFGM0VELFUrMUYzRjEtMUYzRjMsVSsxRjNGNS0xRjNGNyxVKzFGNDA4LFUrMUY0MTUsVSsxRjQxRixVKzFGNDI2LFUrMUY0M0YsVSsxRjQ0MS0xRjQ0MixVKzFGNDQ0LFUrMUY0NDYtMUY0NDksVSsxRjQ0Qy0xRjQ0RSxVKzFGNDUzLFUrMUY0NkEsVSsxRjQ3RCxVKzFGNEEzLFUrMUY0QjAsVSsxRjRCMyxVKzFGNEI5LFUrMUY0QkIsVSsxRjRCRixVKzFGNEM4LTFGNENCLFUrMUY0RDYsVSsxRjREQSxVKzFGNERGLFUrMUY0RTMtMUY0RTYsVSsxRjRFQS0xRjRFRCxVKzFGNEY3LFUrMUY0RjktMUY0RkIsVSsxRjRGRC0xRjRGRSxVKzFGNTAzLFUrMUY1MDctMUY1MEIsVSsxRjUwRCxVKzFGNTEyLTFGNTEzLFUrMUY1M0UtMUY1NEEsVSsxRjU0Ri0xRjVGQSxVKzFGNjEwLFUrMUY2NTAtMUY2N0YsVSsxRjY4NyxVKzFGNjhELFUrMUY2OTEsVSsxRjY5NCxVKzFGNjk4LFUrMUY2QUQsVSsxRjZCMixVKzFGNkI5LTFGNkJBLFUrMUY2QkMsVSsxRjZDNi0xRjZDRixVKzFGNkQzLTFGNkQ3LFUrMUY2RTAtMUY2RUEsVSsxRjZGMC0xRjZGMyxVKzFGNkY3LTFGNkZDLFUrMUY3MDAtMUY3RkYsVSsxRjgwMC0xRjgwQixVKzFGODEwLTFGODQ3LFUrMUY4NTAtMUY4NTksVSsxRjg2MC0xRjg4NyxVKzFGODkwLTFGOEFELFUrMUY4QjAtMUY4QkIsVSsxRjhDMC0xRjhDMSxVKzFGOTAwLTFGOTBCLFUrMUY5M0IsVSsxRjk0NixVKzFGOTg0LFUrMUY5OTYsVSsxRjlFOSxVKzFGQTAwLTFGQTZGLFUrMUZBNzAtMUZBN0MsVSsxRkE4MC0xRkE4OSxVKzFGQThGLTFGQUM2LFUrMUZBQ0UtMUZBREMsVSsxRkFERi0xRkFFOSxVKzFGQUYwLTFGQUY4LFUrMUZCMDAtMUZCRkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0dvb2dsZSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3MvZ29vZ2xlc2Fucy92NjIvNFVhUnJFTkhzeEpsR0R1R28xT0lsSmZDNmxfMjRybENLMVlvX0lxMnFBQ0loTWwwN3YweHZlNC53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzA5NjQtMDk2NSxVKzBCODItMEJGQSxVKzIwMEMtMjAwRCxVKzIwQjksVSsyNUNDO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJvZ0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswOTUxLTA5NTIsVSswOTY0LTA5NjUsVSswQzAwLTBDN0YsVSsxQ0RBLFUrMUNGMixVKzIwMEMtMjAwRCxVKzI1Q0M7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0dvb2dsZSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3MvZ29vZ2xlc2Fucy92NjIvNFVhUnJFTkhzeEpsR0R1R28xT0lsSmZDNmxfMjRybENLMVlvX0lxMnFnQ0loTWwwN3YweHZlNC53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAyRDcsVSswMzAzLFUrMDMzMSxVKzBFMDEtMEU1QixVKzIwMEMtMjAwRCxVKzI1Q0M7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0dvb2dsZSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3MvZ29vZ2xlc2Fucy92NjIvNFVhUnJFTkhzeEpsR0R1R28xT0lsSmZDNmxfMjRybENLMVlvX0lxMnNRQ0loTWwwN3YweHZlNC53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAxMDItMDEwMyxVKzAxMTAtMDExMSxVKzAxMjgtMDEyOSxVKzAxNjgtMDE2OSxVKzAxQTAtMDFBMSxVKzAxQUYtMDFCMCxVKzAzMDAtMDMwMSxVKzAzMDMtMDMwNCxVKzAzMDgtMDMwOSxVKzAzMjMsVSswMzI5LFUrMUVBMC0xRUY5LFUrMjBBQjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEyc0FDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDEwMC0wMkJBLFUrMDJCRC0wMkM1LFUrMDJDNy0wMkNDLFUrMDJDRS0wMkQ3LFUrMDJERC0wMkZGLFUrMDMwNCxVKzAzMDgsVSswMzI5LFUrMUQwMC0xREJGLFUrMUUwMC0xRTlGLFUrMUVGMi0xRUZGLFUrMjAyMCxVKzIwQTAtMjBBQixVKzIwQUQtMjBDMCxVKzIxMTMsVSsyQzYwLTJDN0YsVStBNzIwLUE3RkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0dvb2dsZSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3MvZ29vZ2xlc2Fucy92NjIvNFVhUnJFTkhzeEpsR0R1R28xT0lsSmZDNmxfMjRybENLMVlvX0lxMnZnQ0loTWwwN3YweC53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAwMDAtMDBGRixVKzAxMzEsVSswMTUyLTAxNTMsVSswMkJCLTAyQkMsVSswMkM2LFUrMDJEQSxVKzAyREMsVSswMzA0LFUrMDMwOCxVKzAzMjksVSsyMDAwLTIwNkYsVSsyMEFDLFUrMjEyMixVKzIxOTEsVSsyMTkzLFUrMjIxMixVKzIyMTUsVStGRUZGLFUrRkZGRDt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEycmdDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDMwOCxVKzA1MzAtMDU4RixVKzIwMTAsVSsyMDI0LFUrMjVDQyxVK0ZCMTMtRkIxNzt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEyckFDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDk1MS0wOTUyLFUrMDk2NC0wOTY1LFUrMDk4MC0wOUZFLFUrMUNEMCxVKzFDRDIsVSsxQ0Q1LTFDRDYsVSsxQ0Q4LFUrMUNFMSxVKzFDRUEsVSsxQ0VELFUrMUNGMixVKzFDRjUtMUNGNyxVKzIwMEMtMjAwRCxVKzIwQjksVSsyNUNDLFUrQThGMTt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEya1FDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDJDNyxVKzAyRDgtMDJEOSxVKzAyREIsVSswMzA3LFUrMTQwMC0xNjdGLFUrMThCMC0xOEY1LFUrMjVDQyxVKzExQUIwLTExQUJGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJzd0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswNDYwLTA1MkYsVSsxQzgwLTFDOEEsVSsyMEI0LFUrMkRFMC0yREZGLFUrQTY0MC1BNjlGLFUrRkUyRS1GRTJGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJ1Z0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzAxLFUrMDQwMC0wNDVGLFUrMDQ5MC0wNDkxLFUrMDRCMC0wNEIxLFUrMjExNjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEydndDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDkwMC0wOTdGLFUrMUNEMC0xQ0Y5LFUrMjAwQy0yMDBELFUrMjBBOCxVKzIwQjksVSsyMEYwLFUrMjVDQyxVK0E4MzAtQTgzOSxVK0E4RTAtQThGRixVKzExQjAwLTExQjA5O31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJyd0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzBFLFUrMTIwMC0xMzk5LFUrMkQ4MC0yRERFLFUrQUIwMS1BQjJFLFUrMUU3RTAtMUU3RTYsVSsxRTdFOC0xRTdFQixVKzFFN0VELTFFN0VFLFUrMUU3RjAtMUU3RkU7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0dvb2dsZSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3MvZ29vZ2xlc2Fucy92NjIvNFVhUnJFTkhzeEpsR0R1R28xT0lsSmZDNmxfMjRybENLMVlvX0lxMm9RQ0loTWwwN3YweHZlNC53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzA1ODksVSsxMEEwLTEwRkYsVSsxQzkwLTFDQkEsVSsxQ0JELTFDQkYsVSsyMDVBLFUrMkQwMC0yRDJGLFUrMkUzMTt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEyc2dDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMUYwMC0xRkZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJ2UUNJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzcwLTAzNzcsVSswMzdBLTAzN0YsVSswMzg0LTAzOEEsVSswMzhDLFUrMDM4RS0wM0ExLFUrMDNBMy0wM0ZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJwUUNJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswOTUxLTA5NTIsVSswOTY0LTA5NjUsVSswQTgwLTBBRkYsVSsyMDBDLTIwMEQsVSsyMEI5LFUrMjVDQyxVK0E4MzAtQTgzOTt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEyblFDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDk1MS0wOTUyLFUrMDk2NC0wOTY1LFUrMEEwMS0wQTc2LFUrMjAwQy0yMDBELFUrMjBCOSxVKzI1Q0MsVSsyNjJDLFUrQTgzMC1BODM5O31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJ2QUNJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzA3LTAzMDgsVSswNTkwLTA1RkYsVSsyMDBDLTIwMTAsVSsyMEFBLFUrMjVDQyxVK0ZCMUQtRkI0Rjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEydFFDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMTc4MC0xN0ZGLFUrMTlFMC0xOUZGLFUrMjAwQy0yMDBELFUrMjVDQzt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEydHdDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMEU4MS0wRURGLFUrMjAwQy0yMDBELFUrMjVDQzt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEycGdDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDMwNyxVKzAzMjMsVSswOTUxLTA5NTIsVSswOTY0LTA5NjUsVSswRDAwLTBEN0YsVSsxQ0RBLFUrMUNGMixVKzIwMEMtMjAwRCxVKzIwQjksVSsyNUNDLFUrQTgzMC1BODMyO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJwd0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswOTUxLTA5NTIsVSswOTY0LTA5NjUsVSswQjAxLTBCNzcsVSsxQ0RBLFUrMUNGMixVKzIwMEMtMjAwRCxVKzIwQjksVSsyNUNDO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJvd0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswOTY0LTA5NjUsVSswRDgxLTBERjQsVSsxQ0YyLFUrMjAwQy0yMDBELFUrMjVDQyxVKzExMUUxLTExMUY0O31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTIwQUNJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMDAxLTAwMEMsVSswMDBFLTAwMUYsVSswMDdGLTAwOUYsVSsyMERELTIwRTAsVSsyMEUyLTIwRTQsVSsyMTUwLTIxOEYsVSsyMTkwLFUrMjE5MixVKzIxOTQtMjE5OSxVKzIxQUYsVSsyMUU2LTIxRjAsVSsyMUYzLFUrMjIxOC0yMjE5LFUrMjI5OSxVKzIyQzQtMjJDNixVKzIzMDAtMjQzRixVKzI0NDAtMjQ0QSxVKzI0NjAtMjRGRixVKzI1QTAtMjdCRixVKzI4MDAtMjhGRixVKzI5MjEtMjkyMixVKzI5ODEsVSsyOUJGLFUrMjlFQixVKzJCMDAtMkJGRixVKzREQzAtNERGRixVK0ZGRjktRkZGQixVKzEwMTQwLTEwMThFLFUrMTAxOTAtMTAxOUMsVSsxMDFBMCxVKzEwMUQwLTEwMUZELFUrMTAyRTAtMTAyRkIsVSsxMEU2MC0xMEU3RSxVKzFEMkMwLTFEMkQzLFUrMUQyRTAtMUQzN0YsVSsxRjAwMC0xRjBGRixVKzFGMTAwLTFGMUFELFUrMUYxRTYtMUYxRkYsVSsxRjMwRC0xRjMwRixVKzFGMzE1LFUrMUYzMUMsVSsxRjMxRSxVKzFGMzIwLTFGMzJDLFUrMUYzMzYsVSsxRjM3OCxVKzFGMzdELFUrMUYzODIsVSsxRjM5My0xRjM5RixVKzFGM0E3LTFGM0E4LFUrMUYzQUMtMUYzQUYsVSsxRjNDMixVKzFGM0M0LTFGM0M2LFUrMUYzQ0EtMUYzQ0UsVSsxRjNENC0xRjNFMCxVKzFGM0VELFUrMUYzRjEtMUYzRjMsVSsxRjNGNS0xRjNGNyxVKzFGNDA4LFUrMUY0MTUsVSsxRjQxRixVKzFGNDI2LFUrMUY0M0YsVSsxRjQ0MS0xRjQ0MixVKzFGNDQ0LFUrMUY0NDYtMUY0NDksVSsxRjQ0Qy0xRjQ0RSxVKzFGNDUzLFUrMUY0NkEsVSsxRjQ3RCxVKzFGNEEzLFUrMUY0QjAsVSsxRjRCMyxVKzFGNEI5LFUrMUY0QkIsVSsxRjRCRixVKzFGNEM4LTFGNENCLFUrMUY0RDYsVSsxRjREQSxVKzFGNERGLFUrMUY0RTMtMUY0RTYsVSsxRjRFQS0xRjRFRCxVKzFGNEY3LFUrMUY0RjktMUY0RkIsVSsxRjRGRC0xRjRGRSxVKzFGNTAzLFUrMUY1MDctMUY1MEIsVSsxRjUwRCxVKzFGNTEyLTFGNTEzLFUrMUY1M0UtMUY1NEEsVSsxRjU0Ri0xRjVGQSxVKzFGNjEwLFUrMUY2NTAtMUY2N0YsVSsxRjY4NyxVKzFGNjhELFUrMUY2OTEsVSsxRjY5NCxVKzFGNjk4LFUrMUY2QUQsVSsxRjZCMixVKzFGNkI5LTFGNkJBLFUrMUY2QkMsVSsxRjZDNi0xRjZDRixVKzFGNkQzLTFGNkQ3LFUrMUY2RTAtMUY2RUEsVSsxRjZGMC0xRjZGMyxVKzFGNkY3LTFGNkZDLFUrMUY3MDAtMUY3RkYsVSsxRjgwMC0xRjgwQixVKzFGODEwLTFGODQ3LFUrMUY4NTAtMUY4NTksVSsxRjg2MC0xRjg4NyxVKzFGODkwLTFGOEFELFUrMUY4QjAtMUY4QkIsVSsxRjhDMC0xRjhDMSxVKzFGOTAwLTFGOTBCLFUrMUY5M0IsVSsxRjk0NixVKzFGOTg0LFUrMUY5OTYsVSsxRjlFOSxVKzFGQTAwLTFGQTZGLFUrMUZBNzAtMUZBN0MsVSsxRkE4MC0xRkE4OSxVKzFGQThGLTFGQUM2LFUrMUZBQ0UtMUZBREMsVSsxRkFERi0xRkFFOSxVKzFGQUYwLTFGQUY4LFUrMUZCMDAtMUZCRkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0dvb2dsZSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3MvZ29vZ2xlc2Fucy92NjIvNFVhUnJFTkhzeEpsR0R1R28xT0lsSmZDNmxfMjRybENLMVlvX0lxMnFBQ0loTWwwN3YweHZlNC53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzA5NjQtMDk2NSxVKzBCODItMEJGQSxVKzIwMEMtMjAwRCxVKzIwQjksVSsyNUNDO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHb29nbGUgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL2dvb2dsZXNhbnMvdjYyLzRVYVJyRU5Ic3hKbEdEdUdvMU9JbEpmQzZsXzI0cmxDSzFZb19JcTJvZ0NJaE1sMDd2MHh2ZTQud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswOTUxLTA5NTIsVSswOTY0LTA5NjUsVSswQzAwLTBDN0YsVSsxQ0RBLFUrMUNGMixVKzIwMEMtMjAwRCxVKzI1Q0M7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0dvb2dsZSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3MvZ29vZ2xlc2Fucy92NjIvNFVhUnJFTkhzeEpsR0R1R28xT0lsSmZDNmxfMjRybENLMVlvX0lxMnFnQ0loTWwwN3YweHZlNC53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAyRDcsVSswMzAzLFUrMDMzMSxVKzBFMDEtMEU1QixVKzIwMEMtMjAwRCxVKzI1Q0M7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0dvb2dsZSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3MvZ29vZ2xlc2Fucy92NjIvNFVhUnJFTkhzeEpsR0R1R28xT0lsSmZDNmxfMjRybENLMVlvX0lxMnNRQ0loTWwwN3YweHZlNC53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAxMDItMDEwMyxVKzAxMTAtMDExMSxVKzAxMjgtMDEyOSxVKzAxNjgtMDE2OSxVKzAxQTAtMDFBMSxVKzAxQUYtMDFCMCxVKzAzMDAtMDMwMSxVKzAzMDMtMDMwNCxVKzAzMDgtMDMwOSxVKzAzMjMsVSswMzI5LFUrMUVBMC0xRUY5LFUrMjBBQjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonR29vZ2xlIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9nb29nbGVzYW5zL3Y2Mi80VWFSckVOSHN4SmxHRHVHbzFPSWxKZkM2bF8yNHJsQ0sxWW9fSXEyc0FDSWhNbDA3djB4dmU0LndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDEwMC0wMkJBLFUrMDJCRC0wMkM1LFUrMDJDNy0wMkNDLFUrMDJDRS0wMkQ3LFUrMDJERC0wMkZGLFUrMDMwNCxVKzAzMDgsVSswMzI5LFUrMUQwMC0xREJGLFUrMUUwMC0xRTlGLFUrMUVGMi0xRUZGLFUrMjAyMCxVKzIwQTAtMjBBQixVKzIwQUQtMjBDMCxVKzIxMTMsVSsyQzYwLTJDN0YsVStBNzIwLUE3RkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0dvb2dsZSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3MvZ29vZ2xlc2Fucy92NjIvNFVhUnJFTkhzeEpsR0R1R28xT0lsSmZDNmxfMjRybENLMVlvX0lxMnZnQ0loTWwwN3YweC53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAwMDAtMDBGRixVKzAxMzEsVSswMTUyLTAxNTMsVSswMkJCLTAyQkMsVSswMkM2LFUrMDJEQSxVKzAyREMsVSswMzA0LFUrMDMwOCxVKzAzMjksVSsyMDAwLTIwNkYsVSsyMEFDLFUrMjEyMixVKzIxOTEsVSsyMTkzLFUrMjIxMixVKzIyMTUsVStGRUZGLFUrRkZGRDt9PC9zdHlsZT48c3R5bGUgbm9uY2U9IkRmbEdkcnVNOUZHWXdlNFZQN09PUWciPi5tZGwtYnV0dG9ue2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6IzAwMDtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MzZweDttYXJnaW46MDttaW4td2lkdGg6NjRweDtwYWRkaW5nOjAgMTZweDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTpSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsaW5lLWhlaWdodDoxO2xldHRlci1zcGFjaW5nOjA7b3ZlcmZsb3c6aGlkZGVuO3dpbGwtY2hhbmdlOmJveC1zaGFkb3c7LXdlYmtpdC10cmFuc2l0aW9uOmJveC1zaGFkb3cgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSksYmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksY29sb3IgLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxjb2xvciAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7b3V0bGluZTpub25lO2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjM2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tZGwtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tZGwtYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDYyJSwuMil9Lm1kbC1idXR0b246Zm9jdXM6bm90KDphY3RpdmUpe2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tZGwtYnV0dG9uOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSw2MiUsLjQpfS5tZGwtYnV0dG9uLm1kbC1idXR0b24tLWNvbG9yZWR7Y29sb3I6IzNmNTFiNX0ubWRsLWJ1dHRvbi5tZGwtYnV0dG9uLS1jb2xvcmVkOmZvY3VzOm5vdCg6YWN0aXZlKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX1pbnB1dC5tZGwtYnV0dG9uW3R5cGU9c3VibWl0XXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0ubWRsLWJ1dHRvbi0tcmFpc2Vke2JhY2tncm91bmQ6aHNsYSgwLDAlLDYyJSwuMik7Ym94LXNoYWRvdzowIDJweCAycHggMCByZ2JhKDAsMCwwLC4xNCksMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAxcHggNXB4IDAgcmdiYSgwLDAsMCwuMTIpfS5tZGwtYnV0dG9uLS1yYWlzZWQ6YWN0aXZle2JveC1zaGFkb3c6MCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMiksMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMik7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsNjIlLC40KX0ubWRsLWJ1dHRvbi0tcmFpc2VkOmZvY3VzOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCA4cHggcmdiYSgwLDAsMCwuMTgpLDAgOHB4IDE2cHggcmdiYSgwLDAsMCwuMzYpO2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDYyJSwuNCl9Lm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVke2JhY2tncm91bmQ6IzNmNTFiNTtjb2xvcjojZmZmfS5tZGwtYnV0dG9uLS1yYWlzZWQubWRsLWJ1dHRvbi0tY29sb3JlZDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjV9Lm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjV9Lm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkOmZvY3VzOm5vdCg6YWN0aXZlKXtiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjV9Lm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkIC5tZGwtcmlwcGxle2JhY2tncm91bmQ6I2ZmZn0ubWRsLWJ1dHRvbi0tZmFie2JvcmRlci1yYWRpdXM6NTAlO2ZvbnQtc2l6ZToyNHB4O2hlaWdodDo1NnB4O21hcmdpbjphdXRvO21pbi13aWR0aDo1NnB4O3dpZHRoOjU2cHg7cGFkZGluZzowO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOmhzbGEoMCwwJSw2MiUsLjIpO2JveC1zaGFkb3c6MCAxcHggMS41cHggMCByZ2JhKDAsMCwwLC4xMiksMCAxcHggMXB4IDAgcmdiYSgwLDAsMCwuMjQpO3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0Om5vcm1hbH0ubWRsLWJ1dHRvbi0tZmFiIC5tYXRlcmlhbC1pY29uc3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTJweCwtMTJweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTJweCwtMTJweCk7bGluZS1oZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tbWluaS1mYWJ7aGVpZ2h0OjQwcHg7bWluLXdpZHRoOjQwcHg7d2lkdGg6NDBweH0ubWRsLWJ1dHRvbi0tZmFiIC5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVye2JvcmRlci1yYWRpdXM6NTAlOy13ZWJraXQtbWFzay1pbWFnZTotd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsI2ZmZiwjMDAwKX0ubWRsLWJ1dHRvbi0tZmFiOmFjdGl2ZXtib3gtc2hhZG93OjAgNHB4IDVweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpLDAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsLjIpO2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDYyJSwuNCl9Lm1kbC1idXR0b24tLWZhYjpmb2N1czpub3QoOmFjdGl2ZSl7Ym94LXNoYWRvdzowIDAgOHB4IHJnYmEoMCwwLDAsLjE4KSwwIDhweCAxNnB4IHJnYmEoMCwwLDAsLjM2KTtiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSw2MiUsLjQpfS5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tY29sb3JlZHtiYWNrZ3JvdW5kOiNmZjQwODE7Y29sb3I6I2ZmZn0ubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWNvbG9yZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmY0MDgxfS5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tY29sb3JlZDpmb2N1czpub3QoOmFjdGl2ZSl7YmFja2dyb3VuZC1jb2xvcjojZmY0MDgxfS5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tY29sb3JlZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZmY0MDgxfS5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tY29sb3JlZCAubWRsLXJpcHBsZXtiYWNrZ3JvdW5kOiNmZmZ9Lm1kbC1idXR0b24tLWljb257Ym9yZGVyLXJhZGl1czo1MCU7Zm9udC1zaXplOjI0cHg7aGVpZ2h0OjMycHg7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDttaW4td2lkdGg6MzJweDt3aWR0aDozMnB4O3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW47Y29sb3I6aW5oZXJpdDtsaW5lLWhlaWdodDpub3JtYWx9Lm1kbC1idXR0b24tLWljb24gLm1hdGVyaWFsLWljb25ze3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC0xMnB4LC0xMnB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMnB4LC0xMnB4KTtsaW5lLWhlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lm1kbC1idXR0b24tLWljb24ubWRsLWJ1dHRvbi0tbWluaS1pY29ue2hlaWdodDoyNHB4O21pbi13aWR0aDoyNHB4O3dpZHRoOjI0cHh9Lm1kbC1idXR0b24tLWljb24ubWRsLWJ1dHRvbi0tbWluaS1pY29uIC5tYXRlcmlhbC1pY29uc3t0b3A6MDtsZWZ0OjB9Lm1kbC1idXR0b24tLWljb24gLm1kbC1idXR0b25fX3JpcHBsZS1jb250YWluZXJ7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC1tYXNrLWltYWdlOi13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjZmZmLCMwMDApfS5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVye2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDowO292ZXJmbG93OmhpZGRlbn0ubWRsLWJ1dHRvbi5tZGwtYnV0dG9uLS1kaXNhYmxlZCAubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSwubWRsLWJ1dHRvbltkaXNhYmxlZF0gLm1kbC1idXR0b25fX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1wcmltYXJ5e2NvbG9yOiMzZjUxYjV9Lm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcHJpbWFyeSAubWRsLXJpcHBsZXtiYWNrZ3JvdW5kOiNmZmZ9Lm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1mYWIsLm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1yYWlzZWR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjV9Lm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1hY2NlbnR7Y29sb3I6I2ZmNDA4MX0ubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLWFjY2VudCAubWRsLXJpcHBsZXtiYWNrZ3JvdW5kOiNmZmZ9Lm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1hY2NlbnQubWRsLWJ1dHRvbi0tZmFiLC5tZGwtYnV0dG9uLS1hY2NlbnQubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLXJhaXNlZHtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2ZmNDA4MX0ubWRsLWJ1dHRvbi5tZGwtYnV0dG9uLS1kaXNhYmxlZC5tZGwtYnV0dG9uLS1kaXNhYmxlZCwubWRsLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRde2NvbG9yOnJnYmEoMCwwLDAsLjI2KTtjdXJzb3I6ZGVmYXVsdDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tZGlzYWJsZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWQsLm1kbC1idXR0b24tLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRde2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMTIpO2NvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkLC5tZGwtYnV0dG9uLS1yYWlzZWRbZGlzYWJsZWRdW2Rpc2FibGVkXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKTtjb2xvcjpyZ2JhKDAsMCwwLC4yNik7Ym94LXNoYWRvdzpub25lfS5tZGwtYnV0dG9uLS1jb2xvcmVkLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkLC5tZGwtYnV0dG9uLS1jb2xvcmVkW2Rpc2FibGVkXVtkaXNhYmxlZF17Y29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tZGwtYnV0dG9uIC5tYXRlcmlhbC1pY29uc3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1kbC1zcGlubmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHh9Lm1kbC1zcGlubmVyOm5vdCguaXMtdXBncmFkZWQpLmlzLWFjdGl2ZTphZnRlcntjb250ZW50OiJMb2FkaW5nLi4uIn0ubWRsLXNwaW5uZXIuaXMtdXBncmFkZWQuaXMtYWN0aXZley13ZWJraXQtYW5pbWF0aW9uOm1kbC1zcGlubmVyX19jb250YWluZXItcm90YXRlIDEuNTY4MjM1Mjk0MTE3NnMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjptZGwtc3Bpbm5lcl9fY29udGFpbmVyLXJvdGF0ZSAxLjU2ODIzNTI5NDExNzZzIGxpbmVhciBpbmZpbml0ZX1ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2NvbnRhaW5lci1yb3RhdGV7dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTt0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19QGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fY29udGFpbmVyLXJvdGF0ZXt0b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pO3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX0ubWRsLXNwaW5uZXJfX2xheWVye3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3BhY2l0eTowfS5tZGwtc3Bpbm5lcl9fbGF5ZXItMXtib3JkZXItY29sb3I6IzQyYTVmNX0ubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAubWRsLXNwaW5uZXJfX2xheWVyLTF7Ym9yZGVyLWNvbG9yOiMzZjUxYjV9Lm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xheWVyLTF7LXdlYmtpdC1hbmltYXRpb246bWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aCxtZGwtc3Bpbm5lcl9fbGF5ZXItMS1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aDthbmltYXRpb246bWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aCxtZGwtc3Bpbm5lcl9fbGF5ZXItMS1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aH0ubWRsLXNwaW5uZXJfX2xheWVyLTJ7Ym9yZGVyLWNvbG9yOiNmNDQzMzZ9Lm1kbC1zcGlubmVyLS1zaW5nbGUtY29sb3IgLm1kbC1zcGlubmVyX19sYXllci0ye2JvcmRlci1jb2xvcjojM2Y1MWI1fS5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgLm1kbC1zcGlubmVyX19sYXllci0yey13ZWJraXQtYW5pbWF0aW9uOm1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllciguNCwwLC4yLDEpIGluZmluaXRlIGJvdGgsbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllciguNCwwLC4yLDEpIGluZmluaXRlIGJvdGg7YW5pbWF0aW9uOm1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllciguNCwwLC4yLDEpIGluZmluaXRlIGJvdGgsbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllciguNCwwLC4yLDEpIGluZmluaXRlIGJvdGh9Lm1kbC1zcGlubmVyX19sYXllci0ze2JvcmRlci1jb2xvcjojZmRkODM1fS5tZGwtc3Bpbm5lci0tc2luZ2xlLWNvbG9yIC5tZGwtc3Bpbm5lcl9fbGF5ZXItM3tib3JkZXItY29sb3I6IzNmNTFiNX0ubWRsLXNwaW5uZXIuaXMtYWN0aXZlIC5tZGwtc3Bpbm5lcl9fbGF5ZXItM3std2Via2l0LWFuaW1hdGlvbjptZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSBpbmZpbml0ZSBib3RoLG1kbC1zcGlubmVyX19sYXllci0zLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSBpbmZpbml0ZSBib3RoO2FuaW1hdGlvbjptZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSBpbmZpbml0ZSBib3RoLG1kbC1zcGlubmVyX19sYXllci0zLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSBpbmZpbml0ZSBib3RofS5tZGwtc3Bpbm5lcl9fbGF5ZXItNHtib3JkZXItY29sb3I6IzRjYWY1MH0ubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAubWRsLXNwaW5uZXJfX2xheWVyLTR7Ym9yZGVyLWNvbG9yOiMzZjUxYjV9Lm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xheWVyLTR7LXdlYmtpdC1hbmltYXRpb246bWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aCxtZGwtc3Bpbm5lcl9fbGF5ZXItNC1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aDthbmltYXRpb246bWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aCxtZGwtc3Bpbm5lcl9fbGF5ZXItNC1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aH1ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZXsxMi41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyl9MjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0zNy41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDA1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQwNWRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg1NDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNTQwZGVnKX02Mi41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNjc1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDY3NWRlZyl9NzUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg4MTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoODEwZGVnKX04Ny41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDk0NWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDN0dXJuKTt0cmFuc2Zvcm06cm90YXRlKDN0dXJuKX19QGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlezEyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX0yNSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0MDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDA1ZGVnKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDU0MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg1NDBkZWcpfTYyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg2NzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNjc1ZGVnKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDgxMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg4MTBkZWcpfTg3LjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5NDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTQ1ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoM3R1cm4pO3RyYW5zZm9ybTpyb3RhdGUoM3R1cm4pfX1ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTEtZmFkZS1pbi1vdXR7MCV7b3BhY2l0eTouOTl9MjUle29wYWNpdHk6Ljk5fTI2JXtvcGFjaXR5OjB9ODkle29wYWNpdHk6MH05MCV7b3BhY2l0eTouOTl9dG97b3BhY2l0eTouOTl9fUBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTEtZmFkZS1pbi1vdXR7MCV7b3BhY2l0eTouOTl9MjUle29wYWNpdHk6Ljk5fTI2JXtvcGFjaXR5OjB9ODkle29wYWNpdHk6MH05MCV7b3BhY2l0eTouOTl9dG97b3BhY2l0eTouOTl9fUAtd2Via2l0LWtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fbGF5ZXItMi1mYWRlLWluLW91dHswJXtvcGFjaXR5OjB9MTUle29wYWNpdHk6MH0yNSV7b3BhY2l0eTouOTl9NTAle29wYWNpdHk6Ljk5fTUxJXtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXR7MCV7b3BhY2l0eTowfTE1JXtvcGFjaXR5OjB9MjUle29wYWNpdHk6Ljk5fTUwJXtvcGFjaXR5Oi45OX01MSV7b3BhY2l0eTowfX1ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTMtZmFkZS1pbi1vdXR7MCV7b3BhY2l0eTowfTQwJXtvcGFjaXR5OjB9NTAle29wYWNpdHk6Ljk5fTc1JXtvcGFjaXR5Oi45OX03NiV7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sYXllci0zLWZhZGUtaW4tb3V0ezAle29wYWNpdHk6MH00MCV7b3BhY2l0eTowfTUwJXtvcGFjaXR5Oi45OX03NSV7b3BhY2l0eTouOTl9NzYle29wYWNpdHk6MH19QC13ZWJraXQta2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sYXllci00LWZhZGUtaW4tb3V0ezAle29wYWNpdHk6MH02NSV7b3BhY2l0eTowfTc1JXtvcGFjaXR5Oi45OX05MCV7b3BhY2l0eTouOTl9dG97b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sYXllci00LWZhZGUtaW4tb3V0ezAle29wYWNpdHk6MH02NSV7b3BhY2l0eTowfTc1JXtvcGFjaXR5Oi45OX05MCV7b3BhY2l0eTouOTl9dG97b3BhY2l0eTowfX0ubWRsLXNwaW5uZXJfX2dhcC1wYXRjaHtwb3NpdGlvbjphYnNvbHV0ZTstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dG9wOjA7bGVmdDo0NSU7d2lkdGg6MTAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtib3JkZXItY29sb3I6aW5oZXJpdH0ubWRsLXNwaW5uZXJfX2dhcC1wYXRjaCAubWRsLXNwaW5uZXJfX2NpcmNsZXt3aWR0aDoxMDAwJTtsZWZ0Oi00NTAlfS5tZGwtc3Bpbm5lcl9fY2lyY2xlLWNsaXBwZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NTAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtib3JkZXItY29sb3I6aW5oZXJpdH0ubWRsLXNwaW5uZXJfX2NpcmNsZS1jbGlwcGVyLm1kbC1zcGlubmVyX19sZWZ0e2Zsb2F0OmxlZnR9Lm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlci5tZGwtc3Bpbm5lcl9fcmlnaHR7ZmxvYXQ6cmlnaHR9Lm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlciAubWRsLXNwaW5uZXJfX2NpcmNsZXt3aWR0aDoyMDAlfS5tZGwtc3Bpbm5lcl9fY2lyY2xley1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MTAwJTtib3JkZXItd2lkdGg6M3B4O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6aW5oZXJpdDtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50IWltcG9ydGFudDtib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LWFuaW1hdGlvbjpub25lO2FuaW1hdGlvbjpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowfS5tZGwtc3Bpbm5lcl9fbGVmdCAubWRsLXNwaW5uZXJfX2NpcmNsZXtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50Oy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMjlkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTI5ZGVnKX0ubWRsLXNwaW5uZXIuaXMtYWN0aXZlIC5tZGwtc3Bpbm5lcl9fbGVmdCAubWRsLXNwaW5uZXJfX2NpcmNsZXstd2Via2l0LWFuaW1hdGlvbjptZGwtc3Bpbm5lcl9fbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSBpbmZpbml0ZSBib3RoO2FuaW1hdGlvbjptZGwtc3Bpbm5lcl9fbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSBpbmZpbml0ZSBib3RofS5tZGwtc3Bpbm5lcl9fcmlnaHQgLm1kbC1zcGlubmVyX19jaXJjbGV7bGVmdDotMTAwJTtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudCFpbXBvcnRhbnQ7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMjlkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTEyOWRlZyl9Lm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX3JpZ2h0IC5tZGwtc3Bpbm5lcl9fY2lyY2xley13ZWJraXQtYW5pbWF0aW9uOm1kbC1zcGlubmVyX19yaWdodC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSBpbmZpbml0ZSBib3RoO2FuaW1hdGlvbjptZGwtc3Bpbm5lcl9fcmlnaHQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aH1ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xlZnQtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTMwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDEzMGRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpfX1Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sZWZ0LXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTMwZGVnKX19QC13ZWJraXQta2V5ZnJhbWVzIG1kbC1zcGlubmVyX19yaWdodC1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg1ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKX19QGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fcmlnaHQtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTEzMGRlZyl9fS5tZGwtcHJvZ3Jlc3N7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6NHB4O3dpZHRoOjUwMHB4O21heC13aWR0aDoxMDAlfS5tZGwtcHJvZ3Jlc3M+LmJhcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO3dpZHRoOjA7LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOndpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ubWRsLXByb2dyZXNzPi5wcm9ncmVzc2JhcntiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjU7ei1pbmRleDoxO2xlZnQ6MH0ubWRsLXByb2dyZXNzPi5idWZmZXJiYXJ7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxyaWdodCB0b3AsZnJvbShoc2xhKDAsMCUsMTAwJSwuNykpLHRvKGhzbGEoMCwwJSwxMDAlLC43KSkpLC13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLHJpZ2h0IHRvcCxmcm9tKCMzZjUxYjUpLHRvKCMzZjUxYjUpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsaHNsYSgwLDAlLDEwMCUsLjcpLGhzbGEoMCwwJSwxMDAlLC43KSksLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwjM2Y1MWI1LCMzZjUxYjUpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDkwZGVnLGhzbGEoMCwwJSwxMDAlLC43KSxoc2xhKDAsMCUsMTAwJSwuNykpLGxpbmVhci1ncmFkaWVudCg5MGRlZywjM2Y1MWI1LCMzZjUxYjUpO3otaW5kZXg6MDtsZWZ0OjB9Lm1kbC1wcm9ncmVzcz4uYXV4YmFye3JpZ2h0OjB9QHN1cHBvcnRzICgtd2Via2l0LWFwcGVhcmFuY2U6bm9uZSl7Lm1kbC1wcm9ncmVzczpub3QoLm1kbC1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZSk6bm90KC5tZGwtcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUpPi5hdXhiYXIsLm1kbC1wcm9ncmVzczpub3QoLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZSk6bm90KC5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUpPi5hdXhiYXJ7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxyaWdodCB0b3AsZnJvbShoc2xhKDAsMCUsMTAwJSwuNykpLHRvKGhzbGEoMCwwJSwxMDAlLC43KSkpLC13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLHJpZ2h0IHRvcCxmcm9tKCMzZjUxYjUpLHRvKCMzZjUxYjUpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsaHNsYSgwLDAlLDEwMCUsLjcpLGhzbGEoMCwwJSwxMDAlLC43KSksLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwjM2Y1MWI1LCMzZjUxYjUpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDkwZGVnLGhzbGEoMCwwJSwxMDAlLC43KSxoc2xhKDAsMCUsMTAwJSwuNykpLGxpbmVhci1ncmFkaWVudCg5MGRlZywjM2Y1MWI1LCMzZjUxYjUpOy13ZWJraXQtbWFzazp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeE1pSWdhR1ZwWjJoMFBTSTBJajQ4WTJseVkyeGxJR040UFNJeUlpQmplVDBpTWlJZ2NqMGlNaUkrUEdGdWFXMWhkR1VnWVhSMGNtbGlkWFJsVG1GdFpUMGlZM2dpSUdSMWNqMGlNQzQyY3lJZ1puSnZiVDBpTWlJZ2NtVndaV0YwUTI5MWJuUTlJbWx1WkdWbWFXNXBkR1VpSUhSdlBTSXRNVEFpTHo0OEwyTnBjbU5zWlQ0OFkybHlZMnhsSUdONFBTSXhOQ0lnWTNrOUlqSWlJSEk5SWpJaUlHTnNZWE56UFNKc2IyRmtaWElpUGp4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbU40SWlCa2RYSTlJakF1Tm5NaUlHWnliMjA5SWpFMElpQnlaWEJsWVhSRGIzVnVkRDBpYVc1a1pXWnBibWwwWlNJZ2RHODlJaklpTHo0OEwyTnBjbU5zWlQ0OEwzTjJaejQ9Iik7bWFzazp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeE1pSWdhR1ZwWjJoMFBTSTBJajQ4WTJseVkyeGxJR040UFNJeUlpQmplVDBpTWlJZ2NqMGlNaUkrUEdGdWFXMWhkR1VnWVhSMGNtbGlkWFJsVG1GdFpUMGlZM2dpSUdSMWNqMGlNQzQyY3lJZ1puSnZiVDBpTWlJZ2NtVndaV0YwUTI5MWJuUTlJbWx1WkdWbWFXNXBkR1VpSUhSdlBTSXRNVEFpTHo0OEwyTnBjbU5zWlQ0OFkybHlZMnhsSUdONFBTSXhOQ0lnWTNrOUlqSWlJSEk5SWpJaUlHTnNZWE56UFNKc2IyRmtaWElpUGp4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbU40SWlCa2RYSTlJakF1Tm5NaUlHWnliMjA5SWpFMElpQnlaWEJsWVhSRGIzVnVkRDBpYVc1a1pXWnBibWwwWlNJZ2RHODlJaklpTHo0OEwyTnBjbU5zWlQ0OEwzTjJaejQ9Iil9fS5tZGwtcHJvZ3Jlc3M6bm90KC5tZGwtcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUpPi5hdXhiYXIsLm1kbC1wcm9ncmVzczpub3QoLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZSk+LmF1eGJhcntiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLHJpZ2h0IHRvcCxmcm9tKGhzbGEoMCwwJSwxMDAlLC45KSksdG8oaHNsYSgwLDAlLDEwMCUsLjkpKSksLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AscmlnaHQgdG9wLGZyb20oIzNmNTFiNSksdG8oIzNmNTFiNSkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCxoc2xhKDAsMCUsMTAwJSwuOSksaHNsYSgwLDAlLDEwMCUsLjkpKSwtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCMzZjUxYjUsIzNmNTFiNSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcsaHNsYSgwLDAlLDEwMCUsLjkpLGhzbGEoMCwwJSwxMDAlLC45KSksbGluZWFyLWdyYWRpZW50KDkwZGVnLCMzZjUxYjUsIzNmNTFiNSl9Lm1kbC1wcm9ncmVzcy5tZGwtcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGU+LmJhcjEsLm1kbC1wcm9ncmVzcy5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGU+LmJhcjF7YmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1Oy13ZWJraXQtYW5pbWF0aW9uLW5hbWU6aW5kZXRlcm1pbmF0ZTE7YW5pbWF0aW9uLW5hbWU6aW5kZXRlcm1pbmF0ZTE7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MnM7YW5pbWF0aW9uLWR1cmF0aW9uOjJzOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXJ9Lm1kbC1wcm9ncmVzcy5tZGwtcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGU+LmJhcjMsLm1kbC1wcm9ncmVzcy5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGU+LmJhcjN7YmFja2dyb3VuZC1pbWFnZTpub25lO2JhY2tncm91bmQtY29sb3I6IzNmNTFiNTstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmluZGV0ZXJtaW5hdGUyO2FuaW1hdGlvbi1uYW1lOmluZGV0ZXJtaW5hdGUyOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjJzO2FuaW1hdGlvbi1kdXJhdGlvbjoyczstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyfUAtd2Via2l0LWtleWZyYW1lcyBpbmRldGVybWluYXRlMXswJXtsZWZ0OjA7d2lkdGg6MH01MCV7bGVmdDoyNSU7d2lkdGg6NzUlfTc1JXtsZWZ0OjEwMCU7d2lkdGg6MH19QGtleWZyYW1lcyBpbmRldGVybWluYXRlMXswJXtsZWZ0OjA7d2lkdGg6MH01MCV7bGVmdDoyNSU7d2lkdGg6NzUlfTc1JXtsZWZ0OjEwMCU7d2lkdGg6MH19QC13ZWJraXQta2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUyezAle2xlZnQ6MDt3aWR0aDowfTUwJXtsZWZ0OjA7d2lkdGg6MH03NSV7bGVmdDowO3dpZHRoOjI1JX10b3tsZWZ0OjEwMCU7d2lkdGg6MH19QGtleWZyYW1lcyBpbmRldGVybWluYXRlMnswJXtsZWZ0OjA7d2lkdGg6MH01MCV7bGVmdDowO3dpZHRoOjB9NzUle2xlZnQ6MDt3aWR0aDoyNSV9dG97bGVmdDoxMDAlO3dpZHRoOjB9fTwvc3R5bGU+PHN0eWxlIG5vbmNlPSJEZmxHZHJ1TTlGR1l3ZTRWUDdPT1FnIj4ucUpUSE17LW1vei11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTtjb2xvcjojMjAyMTI0O2RpcmVjdGlvbjpsdHI7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7Zm9udC1mYW1pbHk6Um9ib3RvLVJlZ3VsYXIsYXJpYWwsc2Fucy1zZXJpZjstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW46MDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCV9LnluUkxuY3tsZWZ0Oi05OTk5cHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOi05OTk5cHh9Lkw2Y1RjZXtkaXNwbGF5Om5vbmV9LmJsdFdCYntvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkfS5oU1JHUGR7Y29sb3I6IzFhNzNlODtjdXJzb3I6cG9pbnRlcjtmb250LXdlaWdodDo1MDA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LkJ6MTEyYy1XM2xHcHtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4fS5CejExMmMtRTNEeVlke2hlaWdodDoyMHB4O3dpZHRoOjIwcHh9LkJ6MTEyYy1yOW9QaWZ7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0uQnoxMTJjLXUyejVLe2hlaWdodDozNnB4O3dpZHRoOjM2cHh9LkJ6MTEyYy11YXhMNGV7Ym9yZGVyLXJhZGl1czoxMHB4fS5MZ2JzU2UtQnoxMTJje2Rpc3BsYXk6YmxvY2t9LlM5Z1VyZi1Zb1o0amZ7Ym9yZGVyOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfS5TOWdVcmYtWW9aNGpmICp7Ym9yZGVyOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfS5mRlc3d2MtaWJuQzZiPi5hWjJ3RWU+ZGl2e2JvcmRlci1jb2xvcjojNDI4NWY0fS5QMWVrU2UtWk12M3V7dHJhbnNpdGlvbjpoZWlnaHQgLjJzIGxpbmVhcn0uUDFla1NlLVpNdjN1PmRpdjpmaXJzdC1jaGlsZHtiYWNrZ3JvdW5kLWNvbG9yOiMxYTczZTghaW1wb3J0YW50O3RyYW5zaXRpb246d2lkdGggLjNzIGxpbmVhcn0uUDFla1NlLVpNdjN1PmRpdjpudGgtY2hpbGQoMil7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSgyNTUsMjU1LDI1NSwuNykscmdiYSgyNTUsMjU1LDI1NSwuNykpLGxpbmVhci1ncmFkaWVudCg5MGRlZywjMWE3M2U4LCMxYTczZTgpIWltcG9ydGFudH0uUDFla1NlLVpNdjN1PmRpdjpudGgtY2hpbGQoMyl7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSgyNTUsMjU1LDI1NSwuNykscmdiYSgyNTUsMjU1LDI1NSwuNykpLGxpbmVhci1ncmFkaWVudCg5MGRlZywjMWE3M2U4LCMxYTczZTgpIWltcG9ydGFudH0uTVB1NTNjLC5mRlc3d2MsLmZGVzd3Yy1pYm5DNmItSzRlZmZmLC5mRlc3d2MtaWJuQzZiLXI0bTJyZiwuZkZXN3djLWlibkM2Yi1zc0pSSWZ7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5mRlc3d2MtaWJuQzZiLXNNNU1OYnt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpO21pbi1oZWlnaHQ6NjBweDtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKX0uZkZXN3djLWlibkM2Yi1zTTVNTmIud2RlcHJiLWlqVU1HLW16TnBzZntoZWlnaHQ6NDhweH0uZkZXN3djLWlibkM2Yi1zTTVNTmI6bm90KC5PV0I2TWUpOmZvY3VzLC5mRlc3d2MtaWJuQzZiLXNNNU1OYjpub3QoLk9XQjZNZSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjMyLDI0MCwyNTQpO2N1cnNvcjpwb2ludGVyO291dGxpbmU6MH0uZkZXN3djLWlibkM2Yi1zTTVNTmI6bm90KC5PV0I2TWUpOmZvY3VzLXdpdGhpbjpiZWZvcmV7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjNweDtsZWZ0OjNweDtyaWdodDozcHg7Ym90dG9tOjNweDtvdXRsaW5lOjNweCBzb2xpZCAjMDA2MzliO2JvcmRlci1yYWRpdXM6MnB4O3BvaW50ZXItZXZlbnRzOm5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspezpub3QoLkNaalg0ZS1LVFlKSmMpIC5mRlc3d2MtaWJuQzZiLXNNNU1OYjpub3QoLk9XQjZNZSk6Zm9jdXMsOm5vdCguQ1pqWDRlLUtUWUpKYykgLmZGVzd3Yy1pYm5DNmItc001TU5iOm5vdCguT1dCNk1lKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzNjM2MzZ9fS50bzkxNS1LVFlKSmMgLmZGVzd3Yy1pYm5DNmItc001TU5iOm5vdCguT1dCNk1lKTpmb2N1cywudG85MTUtS1RZSkpjIC5mRlc3d2MtaWJuQzZiLXNNNU1OYjpub3QoLk9XQjZNZSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMzYzNjM2fS5DTnVzbWItaGFEbm5jIC5mRlc3d2MtaWJuQzZiLXNNNU1OYjpub3QoLk9XQjZNZSk6Zm9jdXMsLkNOdXNtYi1oYURubmMgLmZGVzd3Yy1pYm5DNmItc001TU5iOm5vdCguT1dCNk1lKTpob3ZlcntvdXRsaW5lOmF1dG99LmZGVzd3Yy1pYm5DNmJ7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3g7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6c3RhcnQ7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDttaW4taGVpZ2h0OjM2cHg7bWFyZ2luOjAgMTZweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzoxNHB4IDAgMTBweCAwfS5mRlc3d2MtaWJuQzZiLXNNNU1OYi53ZGVwcmItaWpVTUctbXpOcHNmPi5mRlc3d2MtaWJuQzZie2hlaWdodDoyM3B4fS5mRlc3d2MtaWJuQzZiPi5mRlc3d2MtaWJuQzZiLUhpYVl2Zntib3JkZXItcmFkaXVzOjUwJTstbW96LWJveC1mbGV4OjA7ZmxleC1ncm93OjA7ZmxleC1zaHJpbms6MDtoZWlnaHQ6MjhweDttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXJpZ2h0OjEycHg7bWFyZ2luLXRvcDoycHg7d2lkdGg6MjhweDt6LWluZGV4OjQwMH0uZkZXN3djLWlibkM2Yj4uZkZXN3djLWlibkM2Yi1IaWFZdmYuelRFVGFlLW16TnBzZi1CejExMmN7aGVpZ2h0OjMwcHg7bWFyZ2luLWxlZnQ6MXB4O21hcmdpbi1yaWdodDoxMXB4O21hcmdpbi10b3A6MXB4O3dpZHRoOjMwcHh9LmZGVzd3Yy1pYm5DNmI+LmZGVzd3Yy1pYm5DNmItSGlhWXZmLndkZXByYi1palVNRy1tek5wc2YtQnoxMTJje2hlaWdodDoyMHB4O21hcmdpbjowIDE3cHggMCA1cHg7d2lkdGg6MjBweH0uZkZXN3djLWlibkM2Yj4uYVoyd0Vle2RpcmVjdGlvbjpsdHI7Zm9yY2VkLWNvbG9yLWFkanVzdDpub25lO2hlaWdodDozMnB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMycHg7ei1pbmRleDozMDB9LmZGVzd3Yy1pYm5DNmIgLk1QdTUzY3tib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOiM0Mjg1ZjQ7Zm9yY2VkLWNvbG9yLWFkanVzdDpub25lO2hlaWdodDoyOHB4O21hcmdpbi1sZWZ0OjJweDttYXJnaW4tdG9wOjJweDtvcGFjaXR5OjA7cGFkZGluZzo0cHg7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MjhweDt6LWluZGV4OjUwMH0uZkZXN3djLWlibkM2YiAuTVB1NTNjLmlpYjVrY3t0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cztvcGFjaXR5OjF9LmZGVzd3Yy1pYm5DNmIgLk1QdTUzYz4uQnoxMTJje3RyYW5zZm9ybTpzY2FsZSgwKX0uZkZXN3djLWlibkM2YiAuTVB1NTNjLmlpYjVrYz4uQnoxMTJje3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgZWFzZS1vdXQ7dHJhbnNmb3JtOnNjYWxlKDEpfS5mRlc3d2MtaWJuQzZiPi5mRlc3d2MtaWJuQzZiLXI0bTJyZntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLWhlaWdodDozNnB4O21pbi13aWR0aDowfS5mRlc3d2MtaWJuQzZiLXNNNU1OYi53ZGVwcmItaWpVTUctbXpOcHNmIC5mRlc3d2MtaWJuQzZiLXI0bTJyZntoZWlnaHQ6MjNweH0uZkZXN3djLWlibkM2Yj4uZkZXN3djLWlibkM2Yi1yNG0ycmY+LmZGVzd3Yy1pYm5DNmItc3NKUklme2NvbG9yOiMzYzQwNDM7Zm9udC1mYW1pbHk6R29vZ2xlIFNhbnM7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO21pbi1oZWlnaHQ6MjBweDtsZXR0ZXItc3BhY2luZzouMjVweDtsaW5lLWhlaWdodDoxOHB4fS5mRlc3d2MtaWJuQzZiPi5mRlc3d2MtaWJuQzZiLXI0bTJyZj4uZkZXN3djLWlibkM2Yi1LNGVmZmZ7Y29sb3I6IzVmNjM2ODtmb250LXNpemU6MTJweDtoZWlnaHQ6MTZweH1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Om5vdCguQ1pqWDRlLUtUWUpKYykgLmZGVzd3Yy1pYm5DNmI+LmZGVzd3Yy1pYm5DNmItcjRtMnJmPi5mRlc3d2MtaWJuQzZiLXNzSlJJZntjb2xvcjojZTNlM2UzfTpub3QoLkNaalg0ZS1LVFlKSmMpIC5mRlc3d2MtaWJuQzZiPi5mRlc3d2MtaWJuQzZiLXI0bTJyZj4uZkZXN3djLWlibkM2Yi1LNGVmZmZ7Y29sb3I6I2M0YzdjNX19QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspIGFuZCAocHJlZmVycy1jb250cmFzdDptb3JlKXs6bm90KC5DWmpYNGUtS1RZSkpjKSAuZkZXN3djLWlibkM2Yj4uZkZXN3djLWlibkM2Yi1yNG0ycmY+LmZGVzd3Yy1pYm5DNmItSzRlZmZmLDpub3QoLkNaalg0ZS1LVFlKSmMpIC5mRlc3d2MtaWJuQzZiPi5mRlc3d2MtaWJuQzZiLXI0bTJyZj4uZkZXN3djLWlibkM2Yi1zc0pSSWZ7Y29sb3I6I2ZmZn19LnRvOTE1LUtUWUpKYyAuZkZXN3djLWlibkM2Yj4uZkZXN3djLWlibkM2Yi1yNG0ycmY+LmZGVzd3Yy1pYm5DNmItc3NKUklme2NvbG9yOiNlM2UzZTN9LnRvOTE1LUtUWUpKYyAuZkZXN3djLWlibkM2Yj4uZkZXN3djLWlibkM2Yi1yNG0ycmY+LmZGVzd3Yy1pYm5DNmItSzRlZmZme2NvbG9yOiNjNGM3YzV9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29udHJhc3Q6bW9yZSl7LmZGVzd3Yy1pYm5DNmI+LmZGVzd3Yy1pYm5DNmItcjRtMnJmPi5mRlc3d2MtaWJuQzZiLUs0ZWZmZiwuZkZXN3djLWlibkM2Yj4uZkZXN3djLWlibkM2Yi1yNG0ycmY+LmZGVzd3Yy1pYm5DNmItc3NKUklme2NvbG9yOiMwMDB9LnRvOTE1LUtUWUpKYyAuZkZXN3djLWlibkM2Yj4uZkZXN3djLWlibkM2Yi1yNG0ycmY+LmZGVzd3Yy1pYm5DNmItSzRlZmZmLC50bzkxNS1LVFlKSmMgLmZGVzd3Yy1pYm5DNmI+LmZGVzd3Yy1pYm5DNmItcjRtMnJmPi5mRlc3d2MtaWJuQzZiLXNzSlJJZntjb2xvcjojZmZmfX0jYW5pbWF0ZWQtY29udGFpbmVyIC5JYkUwUy1MZ2JzU2V7Y29sb3I6IzFhNzNlODtkaXNwbGF5Om5vbmU7Zm9udC1mYW1pbHk6R29vZ2xlIFNhbnM7bGV0dGVyLXNwYWNpbmc6LjI1cHg7bWFyZ2luLWxlZnQ6YXV0bztwYWRkaW5nOjAgOHB4O3RleHQtdHJhbnNmb3JtOm5vbmV9I2FuaW1hdGVkLWNvbnRhaW5lciAuSWJFMFMtTGdic1NlOmRpc2FibGVke2NvbG9yOiMzYzQwNDM7b3BhY2l0eTouMzh9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspezpub3QoLkNaalg0ZS1LVFlKSmMpICNhbmltYXRlZC1jb250YWluZXIgLkliRTBTLUxnYnNTZXtjb2xvcjojYThjN2ZhfTpub3QoLkNaalg0ZS1LVFlKSmMpICNhbmltYXRlZC1jb250YWluZXIgLkliRTBTLUxnYnNTZTpkaXNhYmxlZHtjb2xvcjojODA4NjhifX1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyaykgYW5kIChwcmVmZXJzLWNvbnRyYXN0Om1vcmUpezpub3QoLkNaalg0ZS1LVFlKSmMpICNhbmltYXRlZC1jb250YWluZXIgLkliRTBTLUxnYnNTZTpkaXNhYmxlZHtjb2xvcjojZmZmfX0udG85MTUtS1RZSkpjICNhbmltYXRlZC1jb250YWluZXIgLkliRTBTLUxnYnNTZXtjb2xvcjojYThjN2ZhfS50bzkxNS1LVFlKSmMgI2FuaW1hdGVkLWNvbnRhaW5lciAuSWJFMFMtTGdic1NlOmRpc2FibGVke2NvbG9yOiM4MDg2OGJ9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29udHJhc3Q6bW9yZSl7I2FuaW1hdGVkLWNvbnRhaW5lciAuSWJFMFMtTGdic1NlOmRpc2FibGVke2NvbG9yOiMwMDB9LnRvOTE1LUtUWUpKYyAjYW5pbWF0ZWQtY29udGFpbmVyIC5JYkUwUy1MZ2JzU2U6ZGlzYWJsZWR7Y29sb3I6I2ZmZn19LkNOdXNtYi1oYURubmMgI2FuaW1hdGVkLWNvbnRhaW5lciAuSWJFMFMtTGdic1NlOmZvY3VzOmVuYWJsZWR7b3V0bGluZS1zdHlsZTphdXRvfSNhbmltYXRlZC1jb250YWluZXIgLkliRTBTLUxnYnNTZTphY3RpdmU6ZW5hYmxlZCwjYW5pbWF0ZWQtY29udGFpbmVyIC5JYkUwUy1MZ2JzU2U6Zm9jdXM6ZW5hYmxlZCwjYW5pbWF0ZWQtY29udGFpbmVyIC5JYkUwUy1MZ2JzU2U6aG92ZXI6ZW5hYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMzIsMjQwLDI1NCl9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspezpub3QoLkNaalg0ZS1LVFlKSmMpICNhbmltYXRlZC1jb250YWluZXIgLkliRTBTLUxnYnNTZTphY3RpdmU6ZW5hYmxlZCw6bm90KC5DWmpYNGUtS1RZSkpjKSAjYW5pbWF0ZWQtY29udGFpbmVyIC5JYkUwUy1MZ2JzU2U6Zm9jdXM6ZW5hYmxlZCw6bm90KC5DWmpYNGUtS1RZSkpjKSAjYW5pbWF0ZWQtY29udGFpbmVyIC5JYkUwUy1MZ2JzU2U6aG92ZXI6ZW5hYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiMzNjM2MzZ9fS50bzkxNS1LVFlKSmMgI2FuaW1hdGVkLWNvbnRhaW5lciAuSWJFMFMtTGdic1NlOmFjdGl2ZTplbmFibGVkLC50bzkxNS1LVFlKSmMgI2FuaW1hdGVkLWNvbnRhaW5lciAuSWJFMFMtTGdic1NlOmZvY3VzOmVuYWJsZWQsLnRvOTE1LUtUWUpKYyAjYW5pbWF0ZWQtY29udGFpbmVyIC5JYkUwUy1MZ2JzU2U6aG92ZXI6ZW5hYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiMzNjM2MzZ9I2FuaW1hdGVkLWNvbnRhaW5lciAuZ2s2U01kIC5JYkUwUy1MZ2JzU2UsI2FuaW1hdGVkLWNvbnRhaW5lci5YSGdQNmItbUtaeXBmLWJFRFRjYy1MWU5jd2MgLkliRTBTLUxnYnNTZXtkaXNwbGF5OmJsb2NrfSNwcm9ncmVzcy1iYXJ7dHJhbnNpdGlvbjpoZWlnaHQgLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTtoZWlnaHQ6MH0uWEhnUDZiLW1LWnlwZi1iRURUY2MtTFlOY3djICNwcm9ncmVzcy1iYXJ7aGVpZ2h0OjRweH0uckYzYzItR012aEd7YmFja2dyb3VuZDojZmVmN2UwO2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtZmFtaWx5OnJvYm90byxOb3RvIFNhbnMgTXlhbm1hciBVSSxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNDI4NjttYXJnaW46NHB4IDE2cHg7cGFkZGluZzo4cHh9LnJGM2MyLUdNdmhHIGF7Y29sb3I6IzFhNzNlODtmb250LXdlaWdodDo3MDA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LkttU0FaZS11MHBqb2V7Ym9yZGVyLXJhZGl1czo4cHg7Y29sb3I6IzVmNjM2ODtmb250LWZhbWlseTpyb2JvdG8sTm90byBTYW5zIE15YW5tYXIgVUksYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjQyODY7cGFkZGluZzowIDE2cHg7bWFyZ2luLWJvdHRvbToxMnB4O21hcmdpbi10b3A6MH1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Om5vdCguQ1pqWDRlLUtUWUpKYykgLnJGM2MyLUdNdmhHIGF7Y29sb3I6I2E4YzdmYX06bm90KC5DWmpYNGUtS1RZSkpjKSAuS21TQVplLXUwcGpvZXtjb2xvcjojYzRjN2M1fX1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyaykgYW5kIChwcmVmZXJzLWNvbnRyYXN0Om1vcmUpezpub3QoLkNaalg0ZS1LVFlKSmMpIC5LbVNBWmUtdTBwam9le2NvbG9yOiNmZmZ9fS50bzkxNS1LVFlKSmMgLnJGM2MyLUdNdmhHIGF7Y29sb3I6I2E4YzdmYX0udG85MTUtS1RZSkpjIC5LbVNBWmUtdTBwam9le2NvbG9yOiNjNGM3YzV9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29udHJhc3Q6bW9yZSl7LkttU0FaZS11MHBqb2V7Y29sb3I6IzAwMH0udG85MTUtS1RZSkpjIC5LbVNBWmUtdTBwam9le2NvbG9yOiNmZmZ9fUBrZXlmcmFtZXMgc2xpZGUtaW57MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgc2xpZGUtb3V0ezAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpfX0uU3g5S3djLWhhQWNsZiwuV3NqWXdjLWhhQWNsZiAuWUxFSElmLWhhQWNsZiwuY0dNSTJiLXZPRThMYi1oYUFjbGYsLnI0bmtley1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uV3NqWXdjLWhhQWNsZiwuY0dNSTJiLXZPRThMYi1oYUFjbGZ7b3ZlcmZsb3c6aGlkZGVufS5Xc2pZd2MtaGFBY2xmIC5ZTEVISWYtaGFBY2xme3BhZGRpbmc6NnB4IDhweCAxMHB4IDhweH0uY0dNSTJiLXZPRThMYi1oYUFjbGZ7Ym90dG9tOjA7cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJX0uY0dNSTJiLXZPRThMYi1oYUFjbGYuaE9lZFFkLVFGbFcyLUhRa2N3Zntib3R0b206MXB4fS5jR01JMmItdk9FOExiLWhhQWNsZi5oT2VkUWQtUUZsVzItSFFrY3dmOmhhcygubGdLWUdiLXYwaDVPZS1xQVdBMil7Ym90dG9tOjB9LmNHTUkyYi12T0U4TGItaGFBY2xmIC5ZTEVISWYtaGFBY2xme3BhZGRpbmctdG9wOjhweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTt3aWxsLWNoYW5nZTp0cmFuc2Zvcm19Lldzall3Yy1oYUFjbGYgLllMRUhJZi1oYUFjbGYueFRNZU97dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXM7b3BhY2l0eTowfS5jR01JMmItdk9FOExiLWhhQWNsZiAuWUxFSElmLWhhQWNsZi5NalI2dWZ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7YW5pbWF0aW9uOnNsaWRlLWluIDIyNW1zIGN1YmljLWJlemllcigwLDAsLjIsMSl9LmNHTUkyYi12T0U4TGItaGFBY2xmIC5ZTEVISWYtaGFBY2xmLnhUTWVPe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpO2FuaW1hdGlvbjpzbGlkZS1vdXQgLjI1c30uWUxFSElmLWhhQWNsZi5GblNlZSAuWllJZkZkLWFHeHBIZi1GblNlZXtkaXNwbGF5Om5vbmV9LllMRUhJZi1oYUFjbGYuRm5TZWUgLnRpNmhHYy1hR3hwSGYtRm5TZWV7ZGlzcGxheTpibG9ja30uU3g5S3djLWhhQWNsZntib3gtc2hhZG93OjAgMCAwIDFweCByZ2IoMjE4LDIyMCwyMjQpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtwYWRkaW5nLWJvdHRvbToxNHB4O3RyYW5zaXRpb246Ym9yZGVyIC4yOHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksYm94LXNoYWRvdyAuMjhzIGN1YmljLWJlemllciguNCwwLC4yLDEpfUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXs6bm90KC5DWmpYNGUtS1RZSkpjKSAuU3g5S3djLWhhQWNsZntib3gtc2hhZG93OjAgMCAwIDFweCAjNWU1ZTVlO2JhY2tncm91bmQ6IzEzMTMxNDtjb2xvcjojYzRjN2M1fX1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyaykgYW5kIChwcmVmZXJzLWNvbnRyYXN0Om1vcmUpezpub3QoLkNaalg0ZS1LVFlKSmMpIC5TeDlLd2MtaGFBY2xme2NvbG9yOiNmZmZ9fS50bzkxNS1LVFlKSmMgLlN4OUt3Yy1oYUFjbGZ7Ym94LXNoYWRvdzowIDAgMCAxcHggIzVlNWU1ZTtiYWNrZ3JvdW5kOiMxMzEzMTQ7Y29sb3I6I2M0YzdjNX1AbWVkaWEgKHByZWZlcnMtY29udHJhc3Q6bW9yZSl7LlN4OUt3Yy1oYUFjbGZ7Y29sb3I6IzAwMH0udG85MTUtS1RZSkpjIC5TeDlLd2MtaGFBY2xme2NvbG9yOiNmZmZ9fS5DTnVzbWItaGFEbm5jLUphUFYyYiAuU3g5S3djLWhhQWNsZntvdXRsaW5lOjFweCBzb2xpZCAjZmZmfS5DTnVzbWItaGFEbm5jLUhMdmx2ZCAuU3g5S3djLWhhQWNsZntvdXRsaW5lOjFweCBzb2xpZCAjMDAwfS5TeDlLd2MtaGFBY2xmOmZvY3VzLXdpdGhpbntib3gtc2hhZG93OjAgMXB4IDJweCAwIHJnYmEoNjAsNjQsNjcsLjMpLDAgMnB4IDZweCAycHggcmdiYSg2MCw2NCw2NywuMTUpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtvdXRsaW5lOm5vbmV9LkNOdXNtYi1oYURubmMtSmFQVjJiIC5TeDlLd2MtaGFBY2xmOmZvY3VzLXdpdGhpbntvdXRsaW5lOjFweCBzb2xpZCAjZmZmfS5DTnVzbWItaGFEbm5jLUhMdmx2ZCAuU3g5S3djLWhhQWNsZjpmb2N1cy13aXRoaW57b3V0bGluZToxcHggc29saWQgIzAwMH0uU3g5S3djLWhhQWNsZi5sZ0tZR2ItdjBoNU9lLXFBV0Eye2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYigyMTgsMjIwLDIyNCl9LlN4OUt3Yy1oYUFjbGYubGdLWUdiLXYwaDVPZS1xQVdBMjpmb2N1cy13aXRoaW57Ym94LXNoYWRvdzowIDRweCA4cHggM3B4IHJnYmEoMCwwLDAsLjE1KSwwIDFweCAzcHggMCByZ2JhKDAsMCwwLC4zKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7b3V0bGluZTpub25lfS5Xc2pZd2MtaGFBY2xmIC5TeDlLd2MtaGFBY2xme2JvcmRlci1yYWRpdXM6OHB4fS5Xc2pZd2MtaGFBY2xmIC5TeDlLd2MtaGFBY2xmLmxnS1lHYi12MGg1T2UtcUFXQTJ7Ym9yZGVyLXJhZGl1czoyNHB4O3BhZGRpbmc6MThweCAyNHB4IDEycHggMjRweH0uV3NqWXdjLWhhQWNsZiAuU3g5S3djLWhhQWNsZi5sZ0tZR2ItdjBoNU9lLXFBV0EyOmZvY3VzLXdpdGhpbntib3gtc2hhZG93OjAgMXB4IDJweCAwIHJnYmEoMCwwLDAsLjMpLDAgMnB4IDZweCAycHggcmdiYSgwLDAsMCwuMTUpfS5jR01JMmItdk9FOExiLWhhQWNsZiAuU3g5S3djLWhhQWNsZntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHg7bWFyZ2luOjAgLTFweH0uY0dNSTJiLXZPRThMYi1oYUFjbGYgLlN4OUt3Yy1oYUFjbGYubGdLWUdiLXYwaDVPZS1xQVdBMntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjI0cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MjRweDttYXJnaW46MCAtMXB4O3BhZGRpbmc6MThweCAyNHB4IDEycHggMjRweH0uU3g5S3djLWhhQWNsZj4ucjRua2V7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uU3g5S3djLWhhQWNsZj4ucjRua2V7LW1vei1ib3gtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDttaW4taGVpZ2h0OjQ4cHh9LlN4OUt3Yy1oYUFjbGYubGdLWUdiLXYwaDVPZS1xQVdBMj4ucjRua2V7LW1vei1ib3gtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6c3RhcnQ7cGFkZGluZy1ib3R0b206OHB4fS5TeDlLd2MtaGFBY2xmPi5yNG5rZSAuamNKenllLUJ6MTEyY3toZWlnaHQ6MjBweDttYXJnaW4tbGVmdDoxNnB4O21hcmdpbi1yaWdodDoxMnB4fS5TeDlLd2MtaGFBY2xmLmxnS1lHYi12MGg1T2UtcUFXQTI+LnI0bmtlIC5qY0p6eWUtQnoxMTJje2hlaWdodDozNnB4O21hcmdpbjowIDEwcHggMCAwO3BhZGRpbmc6MnB4IDB9LlN4OUt3Yy1oYUFjbGY+LnI0bmtlPi5yNG5rZS1MUzgxeWJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjF9LlN4OUt3Yy1oYUFjbGYubGdLWUdiLXYwaDVPZS1xQVdBMj4ucjRua2U+LnI0bmtlLUxTODF5YnstbW96LWJveC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpzdGFydH1AbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKXsuWHBuRENle291dGxpbmUtY29sb3I6LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtc3R5bGU6YXV0b319LlN4OUt3Yy1oYUFjbGYgLlR2RDlQYy1CejExMmN7aGVpZ2h0OjI0cHg7bWFyZ2luLWxlZnQ6NHB4O3BhZGRpbmc6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZX0uU3g5S3djLWhhQWNsZi5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5UdkQ5UGMtQnoxMTJje21hcmdpbjotMThweCAtMjBweCAwIDRweH0uU3g5S3djLWhhQWNsZiAuVHZEOVBjLUJ6MTEyYz4uQnoxMTJje3Bvc2l0aW9uOnJlbGF0aXZlfS5HMGpnWWQtYllIcFRiLkcwamdZZC1iWUhwVGItbkgyY0tmLWliTDFyZSAuU3g5S3djLWhhQWNsZiAuVHZEOVBjLUJ6MTEyY3ttYXJnaW46MDtwb3NpdGlvbjpmaXhlZDtyaWdodDo4cHg7dG9wOjZweH0uQ051c21iLWhhRG5uYy1KYVBWMmIgLlN4OUt3Yy1oYUFjbGYgLlR2RDlQYy1CejExMmM+LkJ6MTEyY3tmaWxsOiNmZmZ9LkNOdXNtYi1oYURubmMtSEx2bHZkIC5TeDlLd2MtaGFBY2xmIC5UdkQ5UGMtQnoxMTJjPi5CejExMmN7ZmlsbDojMDAwfS5TeDlLd2MtaGFBY2xmIC5UdkQ5UGMtQnoxMTJjPi5CejExMmMtWm1ka0V7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjA1cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtiYWNrZ3JvdW5kLWNvbG9yOiMyMDIxMjQ7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjQwcHg7bGVmdDo0cHg7dG9wOjRweDtvcGFjaXR5Oi4wNDtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2Zvcm06c2NhbGUoMCk7d2lkdGg6NDBweH0uU3g5S3djLWhhQWNsZiAuVHZEOVBjLUJ6MTEyYzphY3RpdmUsLlN4OUt3Yy1oYUFjbGYgLlR2RDlQYy1CejExMmM6Zm9jdXMsLlN4OUt3Yy1oYUFjbGYgLlR2RDlQYy1CejExMmM6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTpub25lfS5TeDlLd2MtaGFBY2xmIC5UdkQ5UGMtQnoxMTJjOmZvY3VzLXdpdGhpbjpiZWZvcmV7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjZweDtsZWZ0OjZweDtyaWdodDo2cHg7Ym90dG9tOjZweDtvdXRsaW5lOjNweCBzb2xpZCAjMDA2MzliO2JvcmRlci1yYWRpdXM6MTAwJX0uU3g5S3djLWhhQWNsZiAuVHZEOVBjLUJ6MTEyYzphY3RpdmU+LkJ6MTEyYy1abWRrRSwuU3g5S3djLWhhQWNsZiAuVHZEOVBjLUJ6MTEyYzpmb2N1cz4uQnoxMTJjLVptZGtFLC5TeDlLd2MtaGFBY2xmIC5UdkQ5UGMtQnoxMTJjOmhvdmVyPi5CejExMmMtWm1ka0V7dHJhbnNmb3JtOnNjYWxlKDEpfS5DTnVzbWItaGFEbm5jIC5TeDlLd2MtaGFBY2xmIC5UdkQ5UGMtQnoxMTJjPi5CejExMmMtWm1ka0V7dHJhbnNpdGlvbjpub25lO29wYWNpdHk6MX0uQ051c21iLWhhRG5uYy1KYVBWMmIgLlN4OUt3Yy1oYUFjbGYgLlR2RDlQYy1CejExMmM+LkJ6MTEyYy1abWRrRXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LkNOdXNtYi1oYURubmMtSEx2bHZkIC5TeDlLd2MtaGFBY2xmIC5UdkQ5UGMtQnoxMTJjPi5CejExMmMtWm1ka0V7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5DTnVzbWItaGFEbm5jIC5TeDlLd2MtaGFBY2xmIC5UdkQ5UGMtQnoxMTJjOmZvY3Vze291dGxpbmUtc3R5bGU6YXV0b30uQ051c21iLWhhRG5uYy1KYVBWMmIgLlN4OUt3Yy1oYUFjbGYgLlR2RDlQYy1CejExMmM6YWN0aXZlPi5CejExMmMsLkNOdXNtYi1oYURubmMtSmFQVjJiIC5TeDlLd2MtaGFBY2xmIC5UdkQ5UGMtQnoxMTJjOmZvY3VzPi5CejExMmMsLkNOdXNtYi1oYURubmMtSmFQVjJiIC5TeDlLd2MtaGFBY2xmPi5yNG5rZT4uVHZEOVBjLUJ6MTEyYzpob3Zlcj4uQnoxMTJje2ZpbGw6I2ZmZn0uQ051c21iLWhhRG5uYy1ITHZsdmQgLlN4OUt3Yy1oYUFjbGYgLlR2RDlQYy1CejExMmM6YWN0aXZlPi5CejExMmMsLkNOdXNtYi1oYURubmMtSEx2bHZkIC5TeDlLd2MtaGFBY2xmIC5UdkQ5UGMtQnoxMTJjOmZvY3VzPi5CejExMmMsLkNOdXNtYi1oYURubmMtSEx2bHZkIC5TeDlLd2MtaGFBY2xmIC5UdkQ5UGMtQnoxMTJjOmhvdmVyPi5CejExMmN7ZmlsbDojMDAwfUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXs6bm90KC5DWmpYNGUtS1RZSkpjKSAuU3g5S3djLWhhQWNsZiAuVHZEOVBjLUJ6MTEyYz4uQnoxMTJjLVptZGtFe2JhY2tncm91bmQtY29sb3I6I2ZmZn19LnRvOTE1LUtUWUpKYyAuU3g5S3djLWhhQWNsZiAuVHZEOVBjLUJ6MTEyYz4uQnoxMTJjLVptZGtFe2JhY2tncm91bmQtY29sb3I6I2ZmZn0uU3g5S3djLWhhQWNsZj4ucjRua2UgLnRKSEpqey1tb3otYm94LWZsZXg6MTtmbGV4LWdyb3c6MTtjb2xvcjojNWY2MzY4O2ZvbnQtZmFtaWx5Okdvb2dsZSBTYW5zO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTRweDtsZXR0ZXItc3BhY2luZzouMjVweDttYXJnaW46MDtwYWRkaW5nOjE2cHggMCAxNXB4IDB9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspezpub3QoLkNaalg0ZS1LVFlKSmMpIC5TeDlLd2MtaGFBY2xmPi5yNG5rZSAudEpISmp7Y29sb3I6I2M0YzdjNX19QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspIGFuZCAocHJlZmVycy1jb250cmFzdDptb3JlKXs6bm90KC5DWmpYNGUtS1RZSkpjKSAuU3g5S3djLWhhQWNsZj4ucjRua2UgLnRKSEpqe2NvbG9yOiNmZmZ9fS50bzkxNS1LVFlKSmMgLlN4OUt3Yy1oYUFjbGY+LnI0bmtlIC50SkhKantjb2xvcjojYzRjN2M1fUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbnRyYXN0Om1vcmUpey5TeDlLd2MtaGFBY2xmPi5yNG5rZSAudEpISmp7Y29sb3I6IzAwMH0udG85MTUtS1RZSkpjIC5TeDlLd2MtaGFBY2xmPi5yNG5rZSAudEpISmp7Y29sb3I6I2ZmZn19LlN4OUt3Yy1oYUFjbGY+LnI0bmtlIC50SkhKajpmb2N1c3tib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmV9LlN4OUt3Yy1oYUFjbGYubGdLWUdiLXYwaDVPZS1xQVdBMj4ucjRua2UgLnRKSEpqe2NvbG9yOiMxZjFmMWY7Zm9udC1mYW1pbHk6R29vZ2xlIFNhbnMsQXJpYWw7Zm9udC1vcHRpY2FsLXNpemluZzphdXRvO2xpbmUtaGVpZ2h0OjQwcHg7bWFyZ2luOjA7cGFkZGluZzowO3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMDAlfUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXs6bm90KC5DWmpYNGUtS1RZSkpjKSAuU3g5S3djLWhhQWNsZi5sZ0tZR2ItdjBoNU9lLXFBV0EyPi5yNG5rZSAudEpISmp7Y29sb3I6I2M0YzdjNX19QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspIGFuZCAocHJlZmVycy1jb250cmFzdDptb3JlKXs6bm90KC5DWmpYNGUtS1RZSkpjKSAuU3g5S3djLWhhQWNsZi5sZ0tZR2ItdjBoNU9lLXFBV0EyPi5yNG5rZSAudEpISmp7Y29sb3I6I2ZmZn19LnRvOTE1LUtUWUpKYyAuU3g5S3djLWhhQWNsZi5sZ0tZR2ItdjBoNU9lLXFBV0EyPi5yNG5rZSAudEpISmp7Y29sb3I6I2M0YzdjNX1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb250cmFzdDptb3JlKXsuU3g5S3djLWhhQWNsZi5sZ0tZR2ItdjBoNU9lLXFBV0EyPi5yNG5rZSAudEpISmp7Y29sb3I6IzAwMH0udG85MTUtS1RZSkpjIC5TeDlLd2MtaGFBY2xmLmxnS1lHYi12MGg1T2UtcUFXQTI+LnI0bmtlIC50SkhKantjb2xvcjojZmZmfX0uU3g5S3djLWhhQWNsZi5sZ0tZR2ItdjBoNU9lLXFBV0EyPi5yNG5rZSAudEpISmogLnRKSEpqLXI0bmtle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjI0cHg7Zm9udC13ZWlnaHQ6NTAwO21heC1oZWlnaHQ6MTYwcHg7b3ZlcmZsb3cteTphdXRvO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uU3g5S3djLWhhQWNsZj4uazc3SWlme2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYigyMTgsMjIwLDIyNCk7b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nLXRvcDo0cHh9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXs6bm90KC5DWmpYNGUtS1RZSkpjKSAuU3g5S3djLWhhQWNsZj4uazc3SWlme2JvcmRlci1jb2xvcjojNWU1ZTVlfX0udG85MTUtS1RZSkpjIC5TeDlLd2MtaGFBY2xmPi5rNzdJaWZ7Ym9yZGVyLWNvbG9yOiM1ZTVlNWV9LkcwamdZZC1iWUhwVGIuRzBqZ1lkLWJZSHBUYi1uSDJjS2YtYzVSVEVmIC5rNzdJaWYsLkcwamdZZC1iWUhwVGIuRzBqZ1lkLWJZSHBUYi1uSDJjS2YtaWJMMXJlIC5rNzdJaWZ7Ym9yZGVyLXRvcDpub25lO3BhZGRpbmctdG9wOjB9Lldzall3Yy1oYUFjbGYgLms3N0lpZnt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjI1czttYXgtaGVpZ2h0OjEyMnB4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0uV3NqWXdjLWhhQWNsZiAuTWNmTmxmIC5rNzdJaWYsLldzall3Yy1oYUFjbGYgLmxnS1lHYi12MGg1T2UgLms3N0lpZiwuV3NqWXdjLWhhQWNsZiAudTBwam9lLURBUlVjZiAuazc3SWlme21heC1oZWlnaHQ6bm9uZX0uV3NqWXdjLWhhQWNsZiAubGdLWUdiLXYwaDVPZS5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5rNzdJaWZ7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItdG9wOm5vbmU7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7Z2FwOjEycHg7aGVpZ2h0OjQ4cHg7cGFkZGluZy10b3A6MDtvdmVyZmxvdzp2aXNpYmxlfS5jR01JMmItdk9FOExiLWhhQWNsZiAuazc3SWlme21heC1oZWlnaHQ6MTUwcHg7b3ZlcmZsb3cteTphdXRvfS5jR01JMmItdk9FOExiLWhhQWNsZiAuTWNmTmxmIC5rNzdJaWZ7bWF4LWhlaWdodDoxOTZweDtvdmVyZmxvdy15OmF1dG99LmNHTUkyYi12T0U4TGItaGFBY2xmIC5sZ0tZR2ItdjBoNU9lIC5rNzdJaWZ7bWF4LWhlaWdodDoyNjBweDtvdmVyZmxvdy15OmF1dG99LmNHTUkyYi12T0U4TGItaGFBY2xmIC5sZ0tZR2ItdjBoNU9lLmxnS1lHYi12MGg1T2UtcUFXQTIgLms3N0lpZnstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci10b3A6bm9uZTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtnYXA6MTJweDtoZWlnaHQ6NDhweDtwYWRkaW5nLXRvcDowO292ZXJmbG93OnZpc2libGV9LmNHTUkyYi12T0U4TGItaGFBY2xmIC5sZ0tZR2ItdjBoNU9lIC5QMWVrU2UtWk12M3V7dHJhbnNpdGlvbjpoZWlnaHQgLjJzIGxpbmVhcjtoZWlnaHQ6MH0uWUxFSElmLWhhQWNsZi5GblNlZSAuZkZXN3djLWlibkM2Yi1zTTVNTmI6bm90KC5PV0I2TWUpOmZvY3VzLC5ZTEVISWYtaGFBY2xmLkZuU2VlIC5mRlc3d2MtaWJuQzZiLXNNNU1OYjpub3QoLk9XQjZNZSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjdXJzb3I6ZGVmYXVsdDtvdXRsaW5lOm5vbmV9LllMRUhJZi1oYUFjbGYuWEhnUDZiLW1LWnlwZi1iRURUY2MtTFlOY3djIC5mRlc3d2MtaWJuQzZiLXNNNU1OYjpub3QoLk9XQjZNZSk6Zm9jdXMsLllMRUhJZi1oYUFjbGYuWEhnUDZiLW1LWnlwZi1iRURUY2MtTFlOY3djIC5mRlc3d2MtaWJuQzZiLXNNNU1OYjpub3QoLk9XQjZNZSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjdXJzb3I6ZGVmYXVsdDtvdXRsaW5lOm5vbmV9LllMRUhJZi1oYUFjbGYgLmZGVzd3Yy1pYm5DNmItc001TU5iOm5vdCguZ2s2U01kKSwuWUxFSElmLWhhQWNsZiAuZkZXN3djLWlibkM2Yi1zTTVNTmI6bm90KC5nazZTTWQpPi5mRlc3d2MtaWJuQzZiLC5ZTEVISWYtaGFBY2xmIC5rNzdJaWYtdjNwWmJmLUxnYnNTZSwuWUxFSElmLWhhQWNsZiAueWVQZTVjLXNNNU1OYnt0cmFuc2l0aW9uOmFsbCAuNXN9LllMRUhJZi1oYUFjbGYuRm5TZWUgLmZGVzd3Yy1pYm5DNmItc001TU5iOm5vdCguZ2s2U01kKSwuWUxFSElmLWhhQWNsZi5GblNlZSAuZkZXN3djLWlibkM2Yi1zTTVNTmI6bm90KC5nazZTTWQpPi5mRlc3d2MtaWJuQzZiLC5ZTEVISWYtaGFBY2xmLkZuU2VlIC5rNzdJaWYtdjNwWmJmLUxnYnNTZSwuWUxFSElmLWhhQWNsZi5GblNlZSAueWVQZTVjLXNNNU1OYntoZWlnaHQ6MDttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowO29wYWNpdHk6MDtwYWRkaW5nLWJvdHRvbTowO3BhZGRpbmctdG9wOjB9LllMRUhJZi1oYUFjbGY6bm90KC5GblNlZSkgLmZGVzd3Yy1pYm5DNmItc001TU5iOm50aC1jaGlsZChuKzIpe2hlaWdodDo2MXB4fS5ZTEVISWYtaGFBY2xmOm5vdCguRm5TZWUpIC5mRlc3d2M+LmZGVzd3Yy1pYm5DNmItc001TU5iOm50aC1jaGlsZChuKzIpPi5mRlc3d2MtaWJuQzZie2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYigyMTgsMjIwLDIyNCl9LlN4OUt3Yy1oYUFjbGY+LnllUGU1Yy1zTTVNTmJ7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo4cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6OHB4O3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7aGVpZ2h0OjQycHg7bWFyZ2luLWJvdHRvbTotMTRweH0uU3g5S3djLWhhQWNsZj4ueWVQZTVjLXNNNU1OYiAueWVQZTVje2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItdG9wOjFweCBzb2xpZCByZ2IoMjE4LDIyMCwyMjQpO2NvbG9yOiM1ZjYzNjg7Zm9udC1zaXplOjEycHg7aGVpZ2h0OjQycHg7bWFyZ2luOjAgMTZweH1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Om5vdCguQ1pqWDRlLUtUWUpKYykgLllMRUhJZi1oYUFjbGY6bm90KC5GblNlZSkgOm5vdCguQ1pqWDRlLUtUWUpKYykgLmZGVzd3Yz4uZkZXN3djLWlibkM2Yi1zTTVNTmI6bnRoLWNoaWxkKG4rMik+LmZGVzd3Yy1pYm5DNmJ7Ym9yZGVyLWNvbG9yOiM1ZTVlNWV9Om5vdCguQ1pqWDRlLUtUWUpKYykgLlN4OUt3Yy1oYUFjbGY+LnllUGU1Yy1zTTVNTmIgLnllUGU1Y3tib3JkZXItY29sb3I6IzVlNWU1ZTtjb2xvcjojYzRjN2M1fX1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyaykgYW5kIChwcmVmZXJzLWNvbnRyYXN0Om1vcmUpezpub3QoLkNaalg0ZS1LVFlKSmMpIC5TeDlLd2MtaGFBY2xmPi55ZVBlNWMtc001TU5iIC55ZVBlNWN7Y29sb3I6I2ZmZn19LnRvOTE1LUtUWUpKYyAuWUxFSElmLWhhQWNsZjpub3QoLkZuU2VlKSAudG85MTUtS1RZSkpjIC5mRlc3d2M+LmZGVzd3Yy1pYm5DNmItc001TU5iOm50aC1jaGlsZChuKzIpPi5mRlc3d2MtaWJuQzZie2JvcmRlci1jb2xvcjojNWU1ZTVlfS50bzkxNS1LVFlKSmMgLlN4OUt3Yy1oYUFjbGY+LnllUGU1Yy1zTTVNTmIgLnllUGU1Y3tib3JkZXItY29sb3I6IzVlNWU1ZTtjb2xvcjojYzRjN2M1fUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbnRyYXN0Om1vcmUpey5TeDlLd2MtaGFBY2xmPi55ZVBlNWMtc001TU5iIC55ZVBlNWN7Y29sb3I6IzAwMH0udG85MTUtS1RZSkpjIC5TeDlLd2MtaGFBY2xmPi55ZVBlNWMtc001TU5iIC55ZVBlNWN7Y29sb3I6I2ZmZn19LlN4OUt3Yy1oYUFjbGY+LnllUGU1Yy1zTTVNTmI6Zm9jdXMsLlN4OUt3Yy1oYUFjbGY+LnllUGU1Yy1zTTVNTmI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjMyLDI0MCwyNTQpO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZX0uazc3SWlmLXYzcFpiZi1MZ2JzU2V7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjM2cHh9LkcwamdZZC1iWUhwVGIgLms3N0lpZi12M3BaYmYtTGdic1Nle2hlaWdodDo0MHB4fS5rNzdJaWYtdjNwWmJmLUxnYnNTZXstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWJveC1wYWNrOnN0YXJ0O2p1c3RpZnktY29udGVudDpzdGFydDttYXJnaW4tdG9wOjRweDtwYWRkaW5nOjAgMTZweH0ubGdLWUdiLXYwaDVPZS1xQVdBMiAuazc3SWlmLXYzcFpiZi1MZ2JzU2V7LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO2hlaWdodDozMnB4O21hcmdpbjowO3BhZGRpbmc6MH0uazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZXtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojNDI4NWY0O2ZvbnQtZmFtaWx5Okdvb2dsZSBTYW5zO2hlaWdodDozNnB4O2xldHRlci1zcGFjaW5nOi4yNXB4O3RleHQtdHJhbnNmb3JtOm5vbmV9LkcwamdZZC1iWUhwVGIgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2V7Ym9yZGVyLXJhZGl1czoyMHB4O2hlaWdodDo0MHB4fS5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1Nle2JvcmRlci1yYWRpdXM6MjBweDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7aGVpZ2h0OjMycHg7cGFkZGluZzowIDE2cHh9Lms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2Utc3NKUklme2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMWE3M2U4fS5HMGpnWWQtYllIcFRiIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLXNzSlJJZntiYWNrZ3JvdW5kLWNvbG9yOiMwYjU3ZDB9LkcwamdZZC1iWUhwVGIuRzBqZ1lkLWJZSHBUYi1uSDJjS2YtaWJMMXJlIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLXNzSlJJZntiYWNrZ3JvdW5kOiMxMzEzMTQ7Ym9yZGVyOjFweCBzb2xpZCAjOGU5MThmO2JvcmRlci1zaXppbmc6Ym9yZGVyLWJveH0uRzBqZ1lkLWJZSHBUYi5HMGpnWWQtYllIcFRiLW5IMmNLZi1pYkwxcmUgLms3N0lpZi12M3BaYmYtTGdic1NlLWJOOTdQYy1zTTVNTmJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleC13cmFwOm5vd3JhcDtoZWlnaHQ6MTAwJTttYXJnaW46MCAtMnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LmxnS1lHYi12MGg1T2UtcUFXQTIgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2Utc3NKUklme2JhY2tncm91bmQtY29sb3I6IzBiNTdkMH0ubGdLWUdiLXYwaDVPZS1xQVdBMiAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1DWmpYNGV7Ym9yZGVyOjFweCBzb2xpZCAjYzRjN2M1O2NvbG9yOiM0NDQ3NDZ9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspezpub3QoLkNaalg0ZS1LVFlKSmMpIC5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLUNaalg0ZXtjb2xvcjojYzRjN2M1fX1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyaykgYW5kIChwcmVmZXJzLWNvbnRyYXN0Om1vcmUpezpub3QoLkNaalg0ZS1LVFlKSmMpIC5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLUNaalg0ZXtjb2xvcjojZmZmfX0udG85MTUtS1RZSkpjIC5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLUNaalg0ZXtjb2xvcjojYzRjN2M1fUBtZWRpYSAocHJlZmVycy1jb250cmFzdDptb3JlKXsubGdLWUdiLXYwaDVPZS1xQVdBMiAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1DWmpYNGV7Y29sb3I6IzAwMH0udG85MTUtS1RZSkpjIC5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLUNaalg0ZXtjb2xvcjojZmZmfX0uazc3SWlmLXYzcFpiZi1MZ2JzU2UgLkxnYnNTZS1RQ1oyUmUtQnoxMTJje2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MjBweDt3aWR0aDoyMHB4O21hcmdpbi1sZWZ0Oi01cHg7bWFyZ2luLXJpZ2h0Oi0yMHB4fS5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLXNzSlJJZjphY3RpdmUsLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2Utc3NKUklmOmZvY3VzLC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLXNzSlJJZjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMxYTczZTg7b3V0bGluZTpub25lfS5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLXNzSlJJZjpmb2N1cy13aXRoaW57b3ZlcmZsb3c6dmlzaWJsZX0uazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1zc0pSSWY6Zm9jdXMtd2l0aGluOmJlZm9yZXtjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTJweDtsZWZ0Oi0ycHg7cmlnaHQ6LTJweDtib3R0b206LTJweDtvdXRsaW5lOjNweCBzb2xpZCAjMDA2MzliO2JvcmRlci1yYWRpdXM6NHB4fS5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlOmZvY3VzLXdpdGhpbjpiZWZvcmV7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0ycHg7bGVmdDotMnB4O3JpZ2h0Oi0ycHg7Ym90dG9tOi0ycHg7b3V0bGluZTozcHggc29saWQgIzAwNjM5Yjtib3JkZXItcmFkaXVzOjE2cHh9LmxnS1lHYi12MGg1T2UtcUFXQTIgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2Utc3NKUklmOmFjdGl2ZSwubGdLWUdiLXYwaDVPZS1xQVdBMiAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1zc0pSSWY6Zm9jdXMsLmxnS1lHYi12MGg1T2UtcUFXQTIgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2Utc3NKUklmOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzBiNTdkMDtvdXRsaW5lOm5vbmV9LkcwamdZZC1iWUhwVGIgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2Utc3NKUklmOmFjdGl2ZSwuRzBqZ1lkLWJZSHBUYiAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1zc0pSSWY6Zm9jdXMsLkcwamdZZC1iWUhwVGIgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2Utc3NKUklmOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzBiNTdkMH0uRzBqZ1lkLWJZSHBUYi5HMGpnWWQtYllIcFRiLW5IMmNLZi1pYkwxcmUgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2Utc3NKUklmOmFjdGl2ZSwuRzBqZ1lkLWJZSHBUYi5HMGpnWWQtYllIcFRiLW5IMmNLZi1pYkwxcmUgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2Utc3NKUklmOmZvY3VzLC5HMGpnWWQtYllIcFRiLkcwamdZZC1iWUhwVGItbkgyY0tmLWliTDFyZSAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1zc0pSSWY6aG92ZXJ7YmFja2dyb3VuZDojMTMxMzE0fS5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLXNzSlJJZjpmb2N1c3tib3gtc2hhZG93OjAgMXB4IDJweCAwIHJnYmEoMjYsMTE1LDIzMiwuMzAyKSwwIDFweCAzcHggMXB4IHJnYmEoMjYsMTE1LDIzMiwuMTQ5KX0uazc3SWlmLXYzcFpiZi1MZ2JzU2UgLkxnYnNTZS1NSm9CVmV7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4yMThzO2JhY2tncm91bmQtY29sb3I6IzIwMjEyNDtib3R0b206MDtsZWZ0OjA7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjB9LmxnS1lHYi12MGg1T2UtcUFXQTIgLms3N0lpZi12M3BaYmYtTGdic1NlIC5MZ2JzU2UtTUpvQlZle2JhY2tncm91bmQtY29sb3I6IzQ0NDc0Njtib3JkZXItcmFkaXVzOjIwcHh9LmxnS1lHYi12MGg1T2UtcUFXQTIgLms3N0lpZi12M3BaYmYtTGdic1NlIC5MZ2JzU2Utc3NKUklmIC5MZ2JzU2UtTUpvQlZle2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubGdLWUdiLXYwaDVPZS1xQVdBMiAuazc3SWlmLXYzcFpiZi1MZ2JzU2UgLkxnYnNTZS1DWmpYNGUgLkxnYnNTZS1NSm9CVmV7YmFja2dyb3VuZC1jb2xvcjojNDQ0NzQ2fS5HMGpnWWQtYllIcFRiLkcwamdZZC1iWUhwVGItbkgyY0tmLWliTDFyZSAuazc3SWlmLXYzcFpiZi1MZ2JzU2UgLkxnYnNTZS1NSm9CVmV7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZX0uazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZTpob3Zlcj4uTGdic1NlLU1Kb0JWZXtvcGFjaXR5Oi4xNn0ubGdLWUdiLXYwaDVPZS1xQVdBMiAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZTpob3Zlcj4uTGdic1NlLU1Kb0JWZXtvcGFjaXR5Oi4wOH0ubGdLWUdiLXYwaDVPZS1xQVdBMiAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS5MZ2JzU2UtQ1pqWDRlOmZvY3VzLC5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLkxnYnNTZS1DWmpYNGU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uRzBqZ1lkLWJZSHBUYi5HMGpnWWQtYllIcFRiLW5IMmNLZi1pYkwxcmUgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2U6aG92ZXI+LkxnYnNTZS1NSm9CVmV7b3BhY2l0eTouMDh9Lms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2U6Zm9jdXM+LkxnYnNTZS1NSm9CVmV7b3BhY2l0eTouMjR9Lms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2U6YWN0aXZlPi5MZ2JzU2UtTUpvQlZle29wYWNpdHk6LjJ9LkcwamdZZC1iWUhwVGIuRzBqZ1lkLWJZSHBUYi1uSDJjS2YtaWJMMXJlIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlOmZvY3VzPi5MZ2JzU2UtTUpvQlZle29wYWNpdHk6LjEyfS5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlOmZvY3VzPi5MZ2JzU2UtTUpvQlZle29wYWNpdHk6LjA4fS5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlPi5MZ2JzU2UtYk45N1Bje3Bvc2l0aW9uOnJlbGF0aXZlfS5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlPi5MZ2JzU2UtYk45N1Bje2xpbmUtaGVpZ2h0OjIwcHh9LkcwamdZZC1iWUhwVGIuRzBqZ1lkLWJZSHBUYi1uSDJjS2YtaWJMMXJlIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlIC5MZ2JzU2UtYk45N1Bjey1tb3otYm94LWZsZXg6MTtmbGV4LWdyb3c6MX0uazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1Lb1RvUGN7d2lkdGg6MTAwJX0uRzBqZ1lkLWJZSHBUYi5HMGpnWWQtYllIcFRiLW5IMmNLZi1jNVJURWYgLlR2RDlQYy1MZ2JzU2UtaGFBY2xmey1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW46NHB4IDAgMCAwfS5HMGpnWWQtYllIcFRiLkcwamdZZC1iWUhwVGItbkgyY0tmLWM1UlRFZiAuVHZEOVBjLUxnYnNTZXtjb2xvcjojMGI1N2QwO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIwcHg7cGFkZGluZzoxMnB4IDEycHggNHB4IDEycHh9LkNOdXNtYi1oYURubmMtSmFQVjJiIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLXNzSlJJZntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7b3V0bGluZToycHggc29saWQgI2ZmZjtjb2xvcjojZmZmfS5DTnVzbWItaGFEbm5jLUhMdmx2ZCAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1zc0pSSWZ7YmFja2dyb3VuZC1jb2xvcjojZmZmO291dGxpbmU6MnB4IHNvbGlkICMwMDA7Y29sb3I6IzAwMH0uQ051c21iLWhhRG5uYyAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1zc0pSSWY6Zm9jdXN7b3V0bGluZS1zdHlsZTphdXRvfS5DTnVzbWItaGFEbm5jLUphUFYyYiAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1zc0pSSWY6YWN0aXZlLC5DTnVzbWItaGFEbm5jLUphUFYyYiAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1zc0pSSWY6Zm9jdXMsLkNOdXNtYi1oYURubmMtSmFQVjJiIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1NlLXNzSlJJZjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzAwMH0uQ051c21iLWhhRG5uYy1ITHZsdmQgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2Utc3NKUklmOmFjdGl2ZSwuQ051c21iLWhhRG5uYy1ITHZsdmQgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2Utc3NKUklmOmZvY3VzLC5DTnVzbWItaGFEbm5jLUhMdmx2ZCAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZS1zc0pSSWY6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmZ9LmNHTUkyYi12T0U4TGItaGFBY2xmIC5ZTEVISWYtaGFBY2xmOm5vdCguRm5TZWUpIC5rNzdJaWYtdjNwWmJmLUxnYnNTZXtoZWlnaHQ6NDJweH0uY0dNSTJiLXZPRThMYi1oYUFjbGYgLllMRUhJZi1oYUFjbGYuRzBqZ1lkLWJZSHBUYjpub3QoLkZuU2VlKSAuazc3SWlmLXYzcFpiZi1MZ2JzU2V7aGVpZ2h0OjQwcHh9LmNHTUkyYi12T0U4TGItaGFBY2xmIC5ZTEVISWYtaGFBY2xmOm5vdCguRm5TZWUpIC5sZ0tZR2ItdjBoNU9lLXFBV0EyIC5rNzdJaWYtdjNwWmJmLUxnYnNTZXtoZWlnaHQ6MzJweDtwYWRkaW5nOjhweCAwfS5jR01JMmItdk9FOExiLWhhQWNsZiAuWUxFSElmLWhhQWNsZjpub3QoLkZuU2VlKSAuazc3SWlmLXYzcFpiZi1MZ2JzU2U+LkxnYnNTZXtvdmVyZmxvdzp2aXNpYmxlfS5jR01JMmItdk9FOExiLWhhQWNsZiAuWUxFSElmLWhhQWNsZi5HMGpnWWQtYllIcFRiOm5vdCguRm5TZWUpIC5rNzdJaWYtdjNwWmJmLUxnYnNTZT4uTGdic1Nle292ZXJmbG93OmhpZGRlbn0uY0dNSTJiLXZPRThMYi1oYUFjbGYgLllMRUhJZi1oYUFjbGY6bm90KC5GblNlZSkgLms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2U6YWZ0ZXJ7Ym90dG9tOi02cHg7Y29udGVudDoiICI7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOi02cHh9QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSl7Lms3N0lpZi12M3BaYmYtTGdic1NlPi5MZ2JzU2V7Ym9yZGVyOjJweCBzb2xpZCB3aW5kb3dUZXh0fX0ud2s0TEhmLWhhQWNsZntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LkcwamdZZC1iWUhwVGIuRzBqZ1lkLWJZSHBUYi1uSDJjS2YtYzVSVEVmIC53azRMSGYtaGFBY2xmey1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246cmV2ZXJzZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0ud2s0TEhme2NvbG9yOiMyMDIxMjQ7Zm9udC1zaXplOjE0cHg7bGV0dGVyLXNwYWNpbmc6LjI1cHg7bGluZS1oZWlnaHQ6MjBweDttYXJnaW4tdG9wOjhweDtwYWRkaW5nOjAgMTZweH1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Om5vdCguQ1pqWDRlLUtUWUpKYykgLndrNExIZntjb2xvcjojYzRjN2M1fTpub3QoLkNaalg0ZS1LVFlKSmMpIC53azRMSGYgLm9ZeHRRZC1QUWJMR2V7Y29sb3I6I2E4YzdmYX19QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspIGFuZCAocHJlZmVycy1jb250cmFzdDptb3JlKXs6bm90KC5DWmpYNGUtS1RZSkpjKSAud2s0TEhme2NvbG9yOiNmZmZ9fS50bzkxNS1LVFlKSmMgLndrNExIZntjb2xvcjojYzRjN2M1fS50bzkxNS1LVFlKSmMgLndrNExIZiAub1l4dFFkLVBRYkxHZXtjb2xvcjojYThjN2ZhfUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbnRyYXN0Om1vcmUpey53azRMSGZ7Y29sb3I6IzAwMH0udG85MTUtS1RZSkpjIC53azRMSGZ7Y29sb3I6I2ZmZn19LllMRUhJZi1oYUFjbGYuRm5TZWUgLndrNExIZntkaXNwbGF5Om5vbmV9LmZGVzd3YyAudTBwam9lLU5lM3NGZiwuZkZXN3djIC51MHBqb2UtcjRua2V7Y29sb3I6IzVmNjM2ODtmb250LXNpemU6MTRweDtsZXR0ZXItc3BhY2luZzouMjVweDtsaW5lLWhlaWdodDoyMHB4O21hcmdpbi1ib3R0b206MTZweDttYXJnaW4tdG9wOjhweDtwYWRkaW5nOjAgMTZweH0uZkZXN3djIC51MHBqb2UtcjRua2V7Y29sb3I6IzNjNDA0Mztmb250LWZhbWlseTpHb29nbGUgU2Fucztmb250LXdlaWdodDo1MDA7bWFyZ2luLWJvdHRvbToxMnB4O21hcmdpbi10b3A6MTJweH0udTBwam9le2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW4tdG9wOjRweDtwYWRkaW5nOjAgMTZweH0udTBwam9lPi5MZ2JzU2V7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgcmdiKDIxOCwyMjAsMjI0KTtjb2xvcjojMWE3M2U4O2ZvbnQtZmFtaWx5Okdvb2dsZSBTYW5zO2hlaWdodDozNnB4O2xldHRlci1zcGFjaW5nOi4yNXB4O21pbi13aWR0aDo3NnB4O3RleHQtdHJhbnNmb3JtOm5vbmV9LnUwcGpvZT4uTGdic1NlLXNzSlJJZjphY3RpdmUsLnUwcGpvZT4uTGdic1NlLXNzSlJJZjpmb2N1cywudTBwam9lPi5MZ2JzU2Utc3NKUklmOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiKDIzMiwyNDAsMjU0KTtvdXRsaW5lOm5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspezpub3QoLkNaalg0ZS1LVFlKSmMpIC5mRlc3d2MgLnUwcGpvZS1OZTNzRmZ7Y29sb3I6I2M0YzdjNX06bm90KC5DWmpYNGUtS1RZSkpjKSAuZkZXN3djIC51MHBqb2UtcjRua2V7Y29sb3I6I2UzZTNlM306bm90KC5DWmpYNGUtS1RZSkpjKSAudTBwam9lPi5MZ2JzU2V7YmFja2dyb3VuZC1jb2xvcjojMTMxMzE0O2JvcmRlci1jb2xvcjojNWU1ZTVlO2NvbG9yOiNhOGM3ZmF9Om5vdCguQ1pqWDRlLUtUWUpKYykgLnUwcGpvZT4uTGdic1NlLXNzSlJJZjphY3RpdmUsOm5vdCguQ1pqWDRlLUtUWUpKYykgLnUwcGpvZT4uTGdic1NlLXNzSlJJZjpmb2N1cyw6bm90KC5DWmpYNGUtS1RZSkpjKSAudTBwam9lPi5MZ2JzU2Utc3NKUklmOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzM2MzYzNn19QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspIGFuZCAocHJlZmVycy1jb250cmFzdDptb3JlKXs6bm90KC5DWmpYNGUtS1RZSkpjKSAuZkZXN3djIC51MHBqb2UtTmUzc0ZmLDpub3QoLkNaalg0ZS1LVFlKSmMpIC5mRlc3d2MgLnUwcGpvZS1yNG5rZSw6bm90KC5DWmpYNGUtS1RZSkpjKSAudTBwam9lPi5MZ2JzU2V7Y29sb3I6I2ZmZn19LnRvOTE1LUtUWUpKYyAuZkZXN3djIC51MHBqb2UtTmUzc0Zme2NvbG9yOiNjNGM3YzV9LnRvOTE1LUtUWUpKYyAuZkZXN3djIC51MHBqb2UtcjRua2V7Y29sb3I6I2UzZTNlM30udG85MTUtS1RZSkpjIC51MHBqb2U+LkxnYnNTZXtiYWNrZ3JvdW5kLWNvbG9yOiMxMzEzMTQ7Ym9yZGVyLWNvbG9yOiM1ZTVlNWU7Y29sb3I6I2E4YzdmYX0udG85MTUtS1RZSkpjIC51MHBqb2U+LkxnYnNTZS1zc0pSSWY6YWN0aXZlLC50bzkxNS1LVFlKSmMgLnUwcGpvZT4uTGdic1NlLXNzSlJJZjpmb2N1cywudG85MTUtS1RZSkpjIC51MHBqb2U+LkxnYnNTZS1zc0pSSWY6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMzYzNjM2fUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbnRyYXN0Om1vcmUpey5mRlc3d2MgLnUwcGpvZS1OZTNzRmYsLmZGVzd3YyAudTBwam9lLXI0bmtlLC51MHBqb2U+LkxnYnNTZXtjb2xvcjojMDAwfS50bzkxNS1LVFlKSmMgLmZGVzd3YyAudTBwam9lLU5lM3NGZiwudG85MTUtS1RZSkpjIC5mRlc3d2MgLnUwcGpvZS1yNG5rZSwudG85MTUtS1RZSkpjIC51MHBqb2U+LkxnYnNTZXtjb2xvcjojZmZmfX0udTBwam9lPi5MZ2JzU2Utc3NKUklmOmZvY3Vze2JveC1zaGFkb3c6MCAxcHggMnB4IDAgcmdiYSgyNiwxMTUsMjMyLC4zMDIpLDAgMXB4IDNweCAxcHggcmdiYSgyNiwxMTUsMjMyLC4xNDkpfS5Xc2pZd2MtaGFBY2xmIC5ZTEVISWYtaGFBY2xmOm5vdCguWDlHM0spIC5mRlc3d2MtaWJuQzZiLXNNNU1OYjpudGgtY2hpbGQobiszKXtkaXNwbGF5Om5vbmV9Lldzall3Yy1oYUFjbGYgLllMRUhJZi1oYUFjbGYuWDlHM0sgLnllUGU1Yy1zTTVNTmJ7ZGlzcGxheTpub25lfS5Xc2pZd2MtaGFBY2xmIC5ZTEVISWYtaGFBY2xmLlg5RzNLIC5rNzdJaWZ7bWF4LWhlaWdodDoyNzQuNXB4O292ZXJmbG93LXk6YXV0b30uV3NqWXdjLWhhQWNsZiAuWUxFSElmLWhhQWNsZi5YOUczSy5GblNlZSAuazc3SWlme292ZXJmbG93LXk6aGlkZGVufS5sZ0tZR2ItdjBoNU9lLU5lM3NGZnttYXJnaW46MTJweCAwO3BhZGRpbmc6MCAxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0uRzBqZ1lkLWJZSHBUYiAubGdLWUdiLXYwaDVPZS1OZTNzRmZ7bWluLWhlaWdodDoxMzJweH0uRzBqZ1lkLWJZSHBUYi5HMGpnWWQtYllIcFRiLW5IMmNLZi1pYkwxcmUgLmxnS1lHYi12MGg1T2UtTmUzc0Zme3BvaW50ZXItZXZlbnRzOm5vbmV9LmxnS1lHYi12MGg1T2UtTmUzc0ZmIC5rNzdJaWYtdjBoNU9le2ZvbnQtZmFtaWx5Okdvb2dsZSBTYW5zO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjI4cHg7bWFyZ2luOjA7d2lkdGg6NzAlfS5HMGpnWWQtYllIcFRiIC5sZ0tZR2ItdjBoNU9lLU5lM3NGZiAuazc3SWlmLXYwaDVPZXt3aWR0aDo3NiV9LmxnS1lHYi12MGg1T2UtTmUzc0ZmIC51NllPai12MGg1T2V7Y29sb3I6IzVmNjM2ODtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4O21hcmdpbjoxMHB4IDAgMCAwO3dpZHRoOjYwJTt0ZXh0LXdyYXA6d3JhcH1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Om5vdCguQ1pqWDRlLUtUWUpKYykgLmxnS1lHYi12MGg1T2UtTmUzc0ZmIC51NllPai12MGg1T2V7Y29sb3I6I2M0YzdjNX19QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspIGFuZCAocHJlZmVycy1jb250cmFzdDptb3JlKXs6bm90KC5DWmpYNGUtS1RZSkpjKSAubGdLWUdiLXYwaDVPZS1OZTNzRmYgLnU2WU9qLXYwaDVPZXtjb2xvcjojZmZmfX0udG85MTUtS1RZSkpjIC5sZ0tZR2ItdjBoNU9lLU5lM3NGZiAudTZZT2otdjBoNU9le2NvbG9yOiNjNGM3YzV9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29udHJhc3Q6bW9yZSl7LmxnS1lHYi12MGg1T2UtTmUzc0ZmIC51NllPai12MGg1T2V7Y29sb3I6IzAwMH0udG85MTUtS1RZSkpjIC5sZ0tZR2ItdjBoNU9lLU5lM3NGZiAudTZZT2otdjBoNU9le2NvbG9yOiNmZmZ9fS5HMGpnWWQtYllIcFRiLkcwamdZZC1iWUhwVGItbkgyY0tmLVI2UG9VYiAubGdLWUdiLXYwaDVPZS1OZTNzRmYgLnU2WU9qLXYwaDVPZSwuRzBqZ1lkLWJZSHBUYi5HMGpnWWQtYllIcFRiLW5IMmNLZi1pYkwxcmUgLmxnS1lHYi12MGg1T2UtTmUzc0ZmIC51NllPai12MGg1T2V7d2lkdGg6NTUlfS5HMGpnWWQtYllIcFRiLkcwamdZZC1iWUhwVGItbkgyY0tmLWM1UlRFZiAubGdLWUdiLXYwaDVPZS1OZTNzRmYgLnU2WU9qLXYwaDVPZXt3aWR0aDo2MiV9LkcwamdZZC1iWUhwVGIuRzBqZ1lkLWJZSHBUYi1uSDJjS2YtSUk1bXpiIC5sZ0tZR2ItdjBoNU9lLU5lM3NGZiAudTZZT2otdjBoNU9lLC5HMGpnWWQtYllIcFRiLkcwamdZZC1iWUhwVGItbkgyY0tmLXdOZlBjIC5sZ0tZR2ItdjBoNU9lLU5lM3NGZiAudTZZT2otdjBoNU9le3dpZHRoOjY1JX0ubGdLWUdiLXYwaDVPZS1OZTNzRmYgLmxnS1lHYi12MGg1T2UtSGlhWXZme2JvdHRvbToycHg7cmlnaHQ6MjhweDtwb3NpdGlvbjphYnNvbHV0ZX0uRzBqZ1lkLWJZSHBUYi5HMGpnWWQtYllIcFRiLW5IMmNLZi1jNVJURWYgLmxnS1lHYi12MGg1T2UtTmUzc0ZmIC5sZ0tZR2ItdjBoNU9lLUhpYVl2Zntib3R0b206MH0uRzBqZ1lkLWJZSHBUYi5HMGpnWWQtYllIcFRiLW5IMmNLZi1JSTVtemIgLmxnS1lHYi12MGg1T2UtTmUzc0ZmIC5sZ0tZR2ItdjBoNU9lLUhpYVl2ZiwuRzBqZ1lkLWJZSHBUYi5HMGpnWWQtYllIcFRiLW5IMmNLZi13TmZQYyAubGdLWUdiLXYwaDVPZS1OZTNzRmYgLmxnS1lHYi12MGg1T2UtSGlhWXZme2JvdHRvbTowO3JpZ2h0OjE2cHh9Lldzall3Yy1oYUFjbGYgLmxnS1lHYi12MGg1T2UtTmUzc0ZmIC5sZ0tZR2ItdjBoNU9lLUhpYVl2ZiAuT0FVN1ZkLVBRYkxHZXt3aWR0aDoxMjBweDtoZWlnaHQ6NzRweH0uRzBqZ1lkLWJZSHBUYi5HMGpnWWQtYllIcFRiLW5IMmNLZi1jNVJURWYgLmxnS1lHYi12MGg1T2UtTmUzc0ZmIC5sZ0tZR2ItdjBoNU9lLUhpYVl2ZiAuT0FVN1ZkLVBRYkxHZXt3aWR0aDo5N3B4O2hlaWdodDo5NHB4fS5HMGpnWWQtYllIcFRiLkcwamdZZC1iWUhwVGItbkgyY0tmLUlJNW16YiAubGdLWUdiLXYwaDVPZS1OZTNzRmYgLmxnS1lHYi12MGg1T2UtSGlhWXZmIC5PQVU3VmQtUFFiTEdlLC5HMGpnWWQtYllIcFRiLkcwamdZZC1iWUhwVGItbkgyY0tmLXdOZlBjIC5sZ0tZR2ItdjBoNU9lLU5lM3NGZiAubGdLWUdiLXYwaDVPZS1IaWFZdmYgLk9BVTdWZC1QUWJMR2V7d2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4fXNlbnRpbmVse30KLyojIHNvdXJjZVVSTD0vXy9nc2kvXy9zcy9rPWdzaS5nc2kudHNBSjFhbmdPWTAuTC5GNC5PL2FtPUFBQUFBZ1FCMkNRRS9kPTEvcnM9QUYwS090WENLRkZIc2JUZVJjMGRLMHZWMmJ0Qi1scUswUS9tPWNyZWRlbnRpYWxfc2VydmVyX2xpYnJhcnkgKi88L3N0eWxlPjxzY3JpcHQgbm9uY2U9ImpOWlVsdHJqb2ktcDJyUlUtalE0aVEiPiJ1c2Ugc3RyaWN0Ijt0aGlzLmRlZmF1bHRfZ3NpPXRoaXMuZGVmYXVsdF9nc2l8fHt9OyhmdW5jdGlvbihfKXt2YXIgd2luZG93PXRoaXM7CnRyeXsKXy5fRl90b2dnbGVzX2luaXRpYWxpemU9ZnVuY3Rpb24oYSl7KHR5cGVvZiBnbG9iYWxUaGlzIT09InVuZGVmaW5lZCI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZiE9PSJ1bmRlZmluZWQiP3NlbGY6dGhpcykuX0ZfdG9nZ2xlc19kZWZhdWx0X2dzaT1hfHxbXX07KDAsXy5fRl90b2dnbGVzX2luaXRpYWxpemUpKFsweDAsIDB4MTM2MDA0MTAsIDB4NDIsIF0pOwp2YXIgYmEsY2EsZGEsdCxlYSxsYSxtYSxvYTtfLmFhPXR5cGVvZiBPYmplY3QuY3JlYXRlPT0iZnVuY3Rpb24iP09iamVjdC5jcmVhdGU6ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oKXt9O2IucHJvdG90eXBlPWE7cmV0dXJuIG5ldyBifTtiYT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9PSJmdW5jdGlvbiI/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfTsKY2E9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBjPWFbYl07aWYoYyYmYy5NYXRoPT1NYXRoKXJldHVybiBjfXRocm93IEVycm9yKCJhIik7fTtkYT1jYSh0aGlzKTt0PWZ1bmN0aW9uKGEsYil7aWYoYilhOnt2YXIgYz1kYTthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoLTE7ZCsrKXt2YXIgZT1hW2RdO2lmKCEoZSBpbiBjKSlicmVhayBhO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZiIT1udWxsJiZiYShjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9fTsKaWYodHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj09ImZ1bmN0aW9uIillYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZWxzZXt2YXIgZmE7YTp7dmFyIGhhPXthOiEwfSxpYT17fTt0cnl7aWEuX19wcm90b19fPWhhO2ZhPWlhLmE7YnJlYWsgYX1jYXRjaChhKXt9ZmE9ITF9ZWE9ZmE/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKCJiYCIrYSk7cmV0dXJuIGF9Om51bGx9Xy5qYT1lYTtsYT1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07Cl8udT1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07aWYoYilyZXR1cm4gYi5jYWxsKGEpO2lmKHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6bGEoYSl9O3Rocm93IEVycm9yKCJjYCIrU3RyaW5nKGEpKTt9O21hPWZ1bmN0aW9uKGEsYil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGIpfTtvYT10eXBlb2YgT2JqZWN0LmFzc2lnbj09ImZ1bmN0aW9uIj9PYmplY3QuYXNzaWduOmZ1bmN0aW9uKGEsYil7aWYoYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJkIik7YT1PYmplY3QoYSk7Zm9yKHZhciBjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7dmFyIGQ9YXJndW1lbnRzW2NdO2lmKGQpZm9yKHZhciBlIGluIGQpbWEoZCxlKSYmKGFbZV09ZFtlXSl9cmV0dXJuIGF9Owp0KCJPYmplY3QuYXNzaWduIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8b2F9KTtfLnBhPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZWAiK2EpO307Xy52PWZ1bmN0aW9uKCl7dGhpcy5DPSExO3RoaXMudj1udWxsO3RoaXMuaT12b2lkIDA7dGhpcy5nPTE7dGhpcy5vPXRoaXMuQj0wO3RoaXMuRz10aGlzLmo9bnVsbH07Xy52LnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3RoaXMuaT1hfTtfLnYucHJvdG90eXBlLmdldE5leHRBZGRyZXNzSnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ307Xy52LnByb3RvdHlwZS5nZXRZaWVsZFJlc3VsdEpzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLml9O18udi5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuaj17cmV0dXJuOmF9O3RoaXMuZz10aGlzLm99O18udi5wcm90b3R5cGVbInJldHVybiJdPV8udi5wcm90b3R5cGUucmV0dXJuOwpfLnYucHJvdG90eXBlLlY9ZnVuY3Rpb24oYSl7dGhpcy5qPXtXOmF9O3RoaXMuZz10aGlzLm99O18udi5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPV8udi5wcm90b3R5cGUuVjtfLnYucHJvdG90eXBlLmg9ZnVuY3Rpb24oYSxiKXt0aGlzLmc9YjtyZXR1cm57dmFsdWU6YX19O18udi5wcm90b3R5cGUueWllbGQ9Xy52LnByb3RvdHlwZS5oO18udi5wcm90b3R5cGUuYmE9ZnVuY3Rpb24oYSxiKXthPV8udShhKTt2YXIgYz1hLm5leHQoKTtfLnBhKGMpO2lmKGMuZG9uZSl0aGlzLmk9Yy52YWx1ZSx0aGlzLmc9YjtlbHNlIHJldHVybiB0aGlzLnY9YSx0aGlzLmgoYy52YWx1ZSxiKX07Xy52LnByb3RvdHlwZS55aWVsZEFsbD1fLnYucHJvdG90eXBlLmJhO18udi5wcm90b3R5cGUuVz1mdW5jdGlvbihhKXt0aGlzLmc9YX07Xy52LnByb3RvdHlwZS5qdW1wVG89Xy52LnByb3RvdHlwZS5XO18udi5wcm90b3R5cGUuSj1mdW5jdGlvbigpe3RoaXMuZz0wfTsKXy52LnByb3RvdHlwZS5qdW1wVG9FbmQ9Xy52LnByb3RvdHlwZS5KO18udi5wcm90b3R5cGUudT1mdW5jdGlvbihhLGIpe3RoaXMuQj1hO2IhPXZvaWQgMCYmKHRoaXMubz1iKX07Xy52LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9Xy52LnByb3RvdHlwZS51O18udi5wcm90b3R5cGUuZ2E9ZnVuY3Rpb24oYSl7dGhpcy5CPTA7dGhpcy5vPWF8fDB9O18udi5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPV8udi5wcm90b3R5cGUuZ2E7Xy52LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7dGhpcy5nPWE7dGhpcy5CPWJ8fDB9O18udi5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1fLnYucHJvdG90eXBlLkg7Xy52LnByb3RvdHlwZS5sPWZ1bmN0aW9uKGEpe3RoaXMuQj1hfHwwO2E9dGhpcy5qLk5iO3RoaXMuaj1udWxsO3JldHVybiBhfTtfLnYucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1fLnYucHJvdG90eXBlLmw7Cl8udi5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLkdbY109dGhpcy5qOnRoaXMuRz1bdGhpcy5qXTt0aGlzLkI9YXx8MDt0aGlzLm89Ynx8MH07Xy52LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1fLnYucHJvdG90eXBlLks7Xy52LnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEsYil7Yj10aGlzLkcuc3BsaWNlKGJ8fDApWzBdOyhiPXRoaXMuaj10aGlzLmp8fGIpP2IuWWM/dGhpcy5nPXRoaXMuQnx8dGhpcy5vOmIuVyE9dm9pZCAwJiZ0aGlzLm88Yi5XPyh0aGlzLmc9Yi5XLHRoaXMuaj1udWxsKTp0aGlzLmc9dGhpcy5vOnRoaXMuZz1hfTtfLnYucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPV8udi5wcm90b3R5cGUuUjtfLnYucHJvdG90eXBlLlA9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBxYShhKX07Xy52LnByb3RvdHlwZS5mb3JJbj1fLnYucHJvdG90eXBlLlA7CnZhciBxYT1mdW5jdGlvbihhKXt0aGlzLmk9YTt0aGlzLmc9W107Zm9yKHZhciBiIGluIGEpdGhpcy5nLnB1c2goYik7dGhpcy5nLnJldmVyc2UoKX07cWEucHJvdG90eXBlLmg9ZnVuY3Rpb24oKXtmb3IoO3RoaXMuZy5sZW5ndGg+MDspe3ZhciBhPXRoaXMuZy5wb3AoKTtpZihhIGluIHRoaXMuaSlyZXR1cm4gYX1yZXR1cm4gbnVsbH07cWEucHJvdG90eXBlLmdldE5leHQ9cWEucHJvdG90eXBlLmg7dCgiZ2xvYmFsVGhpcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGF8fGRhfSk7dCgiUmVmbGVjdC5zZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpfLmphP2Z1bmN0aW9uKGIsYyl7dHJ5e3JldHVybigwLF8uamEpKGIsYyksITB9Y2F0Y2goZCl7cmV0dXJuITF9fTpudWxsfSk7CnQoIlN5bWJvbCIsZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gYTt2YXIgYj1mdW5jdGlvbihmLGcpe3RoaXMuZz1mO2JhKHRoaXMsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KX07Yi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nfTt2YXIgYz0ianNjb21wX3N5bWJvbF8iKyhNYXRoLnJhbmRvbSgpKjFFOT4+PjApKyJfIixkPTAsZT1mdW5jdGlvbihmKXtpZih0aGlzIGluc3RhbmNlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJnIik7cmV0dXJuIG5ldyBiKGMrKGZ8fCIiKSsiXyIrZCsrLGYpfTtyZXR1cm4gZX0pO3QoIlN5bWJvbC5pdGVyYXRvciIsZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gYTthPVN5bWJvbCgiaCIpO2JhKEFycmF5LnByb3RvdHlwZSxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gcmEobGEodGhpcykpfX0pO3JldHVybiBhfSk7CnZhciByYT1mdW5jdGlvbihhKXthPXtuZXh0OmF9O2FbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfTtyZXR1cm4gYX07CnQoIlByb21pc2UiLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXt0aGlzLmc9bnVsbH1mdW5jdGlvbiBjKGcpe3JldHVybiBnIGluc3RhbmNlb2YgZT9nOm5ldyBlKGZ1bmN0aW9uKGgpe2goZyl9KX1pZihhKXJldHVybiBhO2IucHJvdG90eXBlLmg9ZnVuY3Rpb24oZyl7aWYodGhpcy5nPT1udWxsKXt0aGlzLmc9W107dmFyIGg9dGhpczt0aGlzLmkoZnVuY3Rpb24oKXtoLmwoKX0pfXRoaXMuZy5wdXNoKGcpfTt2YXIgZD1kYS5zZXRUaW1lb3V0O2IucHJvdG90eXBlLmk9ZnVuY3Rpb24oZyl7ZChnLDApfTtiLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmcmJnRoaXMuZy5sZW5ndGg7KXt2YXIgZz10aGlzLmc7dGhpcy5nPVtdO2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7KytoKXt2YXIgaz1nW2hdO2dbaF09bnVsbDt0cnl7aygpfWNhdGNoKG0pe3RoaXMuaihtKX19fXRoaXMuZz1udWxsfTtiLnByb3RvdHlwZS5qPWZ1bmN0aW9uKGcpe3RoaXMuaShmdW5jdGlvbigpe3Rocm93IGc7Cn0pfTt2YXIgZT1mdW5jdGlvbihnKXt0aGlzLmc9MDt0aGlzLmk9dm9pZCAwO3RoaXMuaD1bXTt0aGlzLnU9ITE7dmFyIGg9dGhpcy5qKCk7dHJ5e2coaC5yZXNvbHZlLGgucmVqZWN0KX1jYXRjaChrKXtoLnJlamVjdChrKX19O2UucHJvdG90eXBlLmo9ZnVuY3Rpb24oKXtmdW5jdGlvbiBnKG0pe3JldHVybiBmdW5jdGlvbihuKXtrfHwoaz0hMCxtLmNhbGwoaCxuKSl9fXZhciBoPXRoaXMsaz0hMTtyZXR1cm57cmVzb2x2ZTpnKHRoaXMuRCkscmVqZWN0OmcodGhpcy5sKX19O2UucHJvdG90eXBlLkQ9ZnVuY3Rpb24oZyl7aWYoZz09PXRoaXMpdGhpcy5sKG5ldyBUeXBlRXJyb3IoImkiKSk7ZWxzZSBpZihnIGluc3RhbmNlb2YgZSl0aGlzLkooZyk7ZWxzZXthOnN3aXRjaCh0eXBlb2YgZyl7Y2FzZSAib2JqZWN0Ijp2YXIgaD1nIT1udWxsO2JyZWFrIGE7Y2FzZSAiZnVuY3Rpb24iOmg9ITA7YnJlYWsgYTtkZWZhdWx0Omg9ITF9aD90aGlzLkgoZyk6dGhpcy5vKGcpfX07ZS5wcm90b3R5cGUuSD0KZnVuY3Rpb24oZyl7dmFyIGg9dm9pZCAwO3RyeXtoPWcudGhlbn1jYXRjaChrKXt0aGlzLmwoayk7cmV0dXJufXR5cGVvZiBoPT0iZnVuY3Rpb24iP3RoaXMuSyhoLGcpOnRoaXMubyhnKX07ZS5wcm90b3R5cGUubD1mdW5jdGlvbihnKXt0aGlzLnYoMixnKX07ZS5wcm90b3R5cGUubz1mdW5jdGlvbihnKXt0aGlzLnYoMSxnKX07ZS5wcm90b3R5cGUudj1mdW5jdGlvbihnLGgpe2lmKHRoaXMuZyE9MCl0aHJvdyBFcnJvcigiamAiK2crImAiK2grImAiK3RoaXMuZyk7dGhpcy5nPWc7dGhpcy5pPWg7dGhpcy5nPT09MiYmdGhpcy5HKCk7dGhpcy5CKCl9O2UucHJvdG90eXBlLkc9ZnVuY3Rpb24oKXt2YXIgZz10aGlzO2QoZnVuY3Rpb24oKXtpZihnLkMoKSl7dmFyIGg9ZGEuY29uc29sZTt0eXBlb2YgaCE9PSJ1bmRlZmluZWQiJiZoLmVycm9yKGcuaSl9fSwxKX07ZS5wcm90b3R5cGUuQz1mdW5jdGlvbigpe2lmKHRoaXMudSlyZXR1cm4hMTt2YXIgZz1kYS5DdXN0b21FdmVudCxoPWRhLkV2ZW50LAprPWRhLmRpc3BhdGNoRXZlbnQ7aWYodHlwZW9mIGs9PT0idW5kZWZpbmVkIilyZXR1cm4hMDt0eXBlb2YgZz09PSJmdW5jdGlvbiI/Zz1uZXcgZygidW5oYW5kbGVkcmVqZWN0aW9uIix7Y2FuY2VsYWJsZTohMH0pOnR5cGVvZiBoPT09ImZ1bmN0aW9uIj9nPW5ldyBoKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHtjYW5jZWxhYmxlOiEwfSk6KGc9ZGEuZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkN1c3RvbUV2ZW50IiksZy5pbml0Q3VzdG9tRXZlbnQoInVuaGFuZGxlZHJlamVjdGlvbiIsITEsITAsZykpO2cucHJvbWlzZT10aGlzO2cucmVhc29uPXRoaXMuaTtyZXR1cm4gayhnKX07ZS5wcm90b3R5cGUuQj1mdW5jdGlvbigpe2lmKHRoaXMuaCE9bnVsbCl7Zm9yKHZhciBnPTA7Zzx0aGlzLmgubGVuZ3RoOysrZylmLmgodGhpcy5oW2ddKTt0aGlzLmg9bnVsbH19O3ZhciBmPW5ldyBiO2UucHJvdG90eXBlLko9ZnVuY3Rpb24oZyl7dmFyIGg9dGhpcy5qKCk7Zy5xYihoLnJlc29sdmUsaC5yZWplY3QpfTsKZS5wcm90b3R5cGUuSz1mdW5jdGlvbihnLGgpe3ZhciBrPXRoaXMuaigpO3RyeXtnLmNhbGwoaCxrLnJlc29sdmUsay5yZWplY3QpfWNhdGNoKG0pe2sucmVqZWN0KG0pfX07ZS5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihnLGgpe2Z1bmN0aW9uIGsocCxyKXtyZXR1cm4gdHlwZW9mIHA9PSJmdW5jdGlvbiI/ZnVuY3Rpb24oeCl7dHJ5e20ocCh4KSl9Y2F0Y2goeSl7bih5KX19OnJ9dmFyIG0sbixxPW5ldyBlKGZ1bmN0aW9uKHAscil7bT1wO249cn0pO3RoaXMucWIoayhnLG0pLGsoaCxuKSk7cmV0dXJuIHF9O2UucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnRoZW4odm9pZCAwLGcpfTtlLnByb3RvdHlwZS5xYj1mdW5jdGlvbihnLGgpe2Z1bmN0aW9uIGsoKXtzd2l0Y2gobS5nKXtjYXNlIDE6ZyhtLmkpO2JyZWFrO2Nhc2UgMjpoKG0uaSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigia2AiK20uZyk7fX12YXIgbT10aGlzO3RoaXMuaD09bnVsbD9mLmgoayk6CnRoaXMuaC5wdXNoKGspO3RoaXMudT0hMH07ZS5yZXNvbHZlPWM7ZS5yZWplY3Q9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBlKGZ1bmN0aW9uKGgsayl7ayhnKX0pfTtlLnJhY2U9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBlKGZ1bmN0aW9uKGgsayl7Zm9yKHZhciBtPV8udShnKSxuPW0ubmV4dCgpOyFuLmRvbmU7bj1tLm5leHQoKSljKG4udmFsdWUpLnFiKGgsayl9KX07ZS5hbGw9ZnVuY3Rpb24oZyl7dmFyIGg9Xy51KGcpLGs9aC5uZXh0KCk7cmV0dXJuIGsuZG9uZT9jKFtdKTpuZXcgZShmdW5jdGlvbihtLG4pe2Z1bmN0aW9uIHEoeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3BbeF09eTtyLS07cj09MCYmbShwKX19dmFyIHA9W10scj0wO2RvIHAucHVzaCh2b2lkIDApLHIrKyxjKGsudmFsdWUpLnFiKHEocC5sZW5ndGgtMSksbiksaz1oLm5leHQoKTt3aGlsZSghay5kb25lKX0pfTtyZXR1cm4gZX0pOwp2YXIgc2E9ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigibGAiK2MpO2lmKGIgaW5zdGFuY2VvZiBSZWdFeHApdGhyb3cgbmV3IFR5cGVFcnJvcigibWAiK2MpO3JldHVybiBhKyIifTt0KCJTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGgiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXt2YXIgZD1zYSh0aGlzLGIsInN0YXJ0c1dpdGgiKSxlPWQubGVuZ3RoLGY9Yi5sZW5ndGg7Yz1NYXRoLm1heCgwLE1hdGgubWluKGN8MCxkLmxlbmd0aCkpO2Zvcih2YXIgZz0wO2c8ZiYmYzxlOylpZihkW2MrK10hPWJbZysrXSlyZXR1cm4hMTtyZXR1cm4gZz49Zn19KTt0KCJPYmplY3Quc2V0UHJvdG90eXBlT2YiLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxfLmphfSk7dCgiU3ltYm9sLmRpc3Bvc2UiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6U3ltYm9sKCJuIil9KTsKdCgiQXJyYXkucHJvdG90eXBlLmZpbmQiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXthOnt2YXIgZD10aGlzO2QgaW5zdGFuY2VvZiBTdHJpbmcmJihkPVN0cmluZyhkKSk7Zm9yKHZhciBlPWQubGVuZ3RoLGY9MDtmPGU7ZisrKXt2YXIgZz1kW2ZdO2lmKGIuY2FsbChjLGcsZixkKSl7Yj1nO2JyZWFrIGF9fWI9dm9pZCAwfXJldHVybiBifX0pOwp0KCJXZWFrTWFwIixmdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7fWZ1bmN0aW9uIGMoayl7dmFyIG09dHlwZW9mIGs7cmV0dXJuIG09PT0ib2JqZWN0IiYmayE9PW51bGx8fG09PT0iZnVuY3Rpb24ifWZ1bmN0aW9uIGQoayl7aWYoIW1hKGssZikpe3ZhciBtPW5ldyBiO2JhKGssZix7dmFsdWU6bX0pfX1mdW5jdGlvbiBlKGspe3ZhciBtPU9iamVjdFtrXTttJiYoT2JqZWN0W2tdPWZ1bmN0aW9uKG4pe2lmKG4gaW5zdGFuY2VvZiBiKXJldHVybiBuO09iamVjdC5pc0V4dGVuc2libGUobikmJmQobik7cmV0dXJuIG0obil9KX1pZihmdW5jdGlvbigpe2lmKCFhfHwhT2JqZWN0LnNlYWwpcmV0dXJuITE7dHJ5e3ZhciBrPU9iamVjdC5zZWFsKHt9KSxtPU9iamVjdC5zZWFsKHt9KSxuPW5ldyBhKFtbaywyXSxbbSwzXV0pO2lmKG4uZ2V0KGspIT0yfHxuLmdldChtKSE9MylyZXR1cm4hMTtuLmRlbGV0ZShrKTtuLnNldChtLDQpO3JldHVybiFuLmhhcyhrKSYmbi5nZXQobSk9PTR9Y2F0Y2gocSl7cmV0dXJuITF9fSgpKXJldHVybiBhOwp2YXIgZj0iJGpzY29tcF9oaWRkZW5fIitNYXRoLnJhbmRvbSgpO2UoImZyZWV6ZSIpO2UoInByZXZlbnRFeHRlbnNpb25zIik7ZSgic2VhbCIpO3ZhciBnPTAsaD1mdW5jdGlvbihrKXt0aGlzLmc9KGcrPU1hdGgucmFuZG9tKCkrMSkudG9TdHJpbmcoKTtpZihrKXtrPV8udShrKTtmb3IodmFyIG07IShtPWsubmV4dCgpKS5kb25lOyltPW0udmFsdWUsdGhpcy5zZXQobVswXSxtWzFdKX19O2gucHJvdG90eXBlLnNldD1mdW5jdGlvbihrLG0pe2lmKCFjKGspKXRocm93IEVycm9yKCJvIik7ZChrKTtpZighbWEoayxmKSl0aHJvdyBFcnJvcigicGAiK2spO2tbZl1bdGhpcy5nXT1tO3JldHVybiB0aGlzfTtoLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oayl7cmV0dXJuIGMoaykmJm1hKGssZik/a1tmXVt0aGlzLmddOnZvaWQgMH07aC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGspe3JldHVybiBjKGspJiZtYShrLGYpJiZtYShrW2ZdLHRoaXMuZyl9O2gucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbihrKXtyZXR1cm4gYyhrKSYmCm1hKGssZikmJm1hKGtbZl0sdGhpcy5nKT9kZWxldGUga1tmXVt0aGlzLmddOiExfTtyZXR1cm4gaH0pOwp0KCJNYXAiLGZ1bmN0aW9uKGEpe2lmKGZ1bmN0aW9uKCl7aWYoIWF8fHR5cGVvZiBhIT0iZnVuY3Rpb24ifHwhYS5wcm90b3R5cGUuZW50cmllc3x8dHlwZW9mIE9iamVjdC5zZWFsIT0iZnVuY3Rpb24iKXJldHVybiExO3RyeXt2YXIgaD1PYmplY3Quc2VhbCh7eDo0fSksaz1uZXcgYShfLnUoW1toLCJzIl1dKSk7aWYoay5nZXQoaCkhPSJzInx8ay5zaXplIT0xfHxrLmdldCh7eDo0fSl8fGsuc2V0KHt4OjR9LCJ0IikhPWt8fGsuc2l6ZSE9MilyZXR1cm4hMTt2YXIgbT1rLmVudHJpZXMoKSxuPW0ubmV4dCgpO2lmKG4uZG9uZXx8bi52YWx1ZVswXSE9aHx8bi52YWx1ZVsxXSE9InMiKXJldHVybiExO249bS5uZXh0KCk7cmV0dXJuIG4uZG9uZXx8bi52YWx1ZVswXS54IT00fHxuLnZhbHVlWzFdIT0idCJ8fCFtLm5leHQoKS5kb25lPyExOiEwfWNhdGNoKHEpe3JldHVybiExfX0oKSlyZXR1cm4gYTt2YXIgYj1uZXcgV2Vha01hcCxjPWZ1bmN0aW9uKGgpe3RoaXNbMF09e307dGhpc1sxXT0KZigpO3RoaXMuc2l6ZT0wO2lmKGgpe2g9Xy51KGgpO2Zvcih2YXIgazshKGs9aC5uZXh0KCkpLmRvbmU7KWs9ay52YWx1ZSx0aGlzLnNldChrWzBdLGtbMV0pfX07Yy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGgsayl7aD1oPT09MD8wOmg7dmFyIG09ZCh0aGlzLGgpO20ubGlzdHx8KG0ubGlzdD10aGlzWzBdW20uaWRdPVtdKTttLmVudHJ5P20uZW50cnkudmFsdWU9azoobS5lbnRyeT17bmV4dDp0aGlzWzFdLHBhOnRoaXNbMV0ucGEsaGVhZDp0aGlzWzFdLGtleTpoLHZhbHVlOmt9LG0ubGlzdC5wdXNoKG0uZW50cnkpLHRoaXNbMV0ucGEubmV4dD1tLmVudHJ5LHRoaXNbMV0ucGE9bS5lbnRyeSx0aGlzLnNpemUrKyk7cmV0dXJuIHRoaXN9O2MucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbihoKXtoPWQodGhpcyxoKTtyZXR1cm4gaC5lbnRyeSYmaC5saXN0PyhoLmxpc3Quc3BsaWNlKGguaW5kZXgsMSksaC5saXN0Lmxlbmd0aHx8ZGVsZXRlIHRoaXNbMF1baC5pZF0saC5lbnRyeS5wYS5uZXh0PQpoLmVudHJ5Lm5leHQsaC5lbnRyeS5uZXh0LnBhPWguZW50cnkucGEsaC5lbnRyeS5oZWFkPW51bGwsdGhpcy5zaXplLS0sITApOiExfTtjLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXNbMF09e307dGhpc1sxXT10aGlzWzFdLnBhPWYoKTt0aGlzLnNpemU9MH07Yy5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGgpe3JldHVybiEhZCh0aGlzLGgpLmVudHJ5fTtjLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oaCl7cmV0dXJuKGg9ZCh0aGlzLGgpLmVudHJ5KSYmaC52YWx1ZX07Yy5wcm90b3R5cGUuZW50cmllcz1mdW5jdGlvbigpe3JldHVybiBlKHRoaXMsZnVuY3Rpb24oaCl7cmV0dXJuW2gua2V5LGgudmFsdWVdfSl9O2MucHJvdG90eXBlLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLGZ1bmN0aW9uKGgpe3JldHVybiBoLmtleX0pfTtjLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLGZ1bmN0aW9uKGgpe3JldHVybiBoLnZhbHVlfSl9O2MucHJvdG90eXBlLmZvckVhY2g9CmZ1bmN0aW9uKGgsayl7Zm9yKHZhciBtPXRoaXMuZW50cmllcygpLG47IShuPW0ubmV4dCgpKS5kb25lOyluPW4udmFsdWUsaC5jYWxsKGssblsxXSxuWzBdLHRoaXMpfTtjLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWMucHJvdG90eXBlLmVudHJpZXM7dmFyIGQ9ZnVuY3Rpb24oaCxrKXt2YXIgbT1rJiZ0eXBlb2YgazttPT0ib2JqZWN0Inx8bT09ImZ1bmN0aW9uIj9iLmhhcyhrKT9tPWIuZ2V0KGspOihtPSIiKyArK2csYi5zZXQoayxtKSk6bT0icF8iK2s7dmFyIG49aFswXVttXTtpZihuJiZtYShoWzBdLG0pKWZvcihoPTA7aDxuLmxlbmd0aDtoKyspe3ZhciBxPW5baF07aWYoayE9PWsmJnEua2V5IT09cS5rZXl8fGs9PT1xLmtleSlyZXR1cm57aWQ6bSxsaXN0Om4saW5kZXg6aCxlbnRyeTpxfX1yZXR1cm57aWQ6bSxsaXN0Om4saW5kZXg6LTEsZW50cnk6dm9pZCAwfX0sZT1mdW5jdGlvbihoLGspe3ZhciBtPWhbMV07cmV0dXJuIHJhKGZ1bmN0aW9uKCl7aWYobSl7Zm9yKDttLmhlYWQhPQpoWzFdOyltPW0ucGE7Zm9yKDttLm5leHQhPW0uaGVhZDspcmV0dXJuIG09bS5uZXh0LHtkb25lOiExLHZhbHVlOmsobSl9O209bnVsbH1yZXR1cm57ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fSl9LGY9ZnVuY3Rpb24oKXt2YXIgaD17fTtyZXR1cm4gaC5wYT1oLm5leHQ9aC5oZWFkPWh9LGc9MDtyZXR1cm4gY30pOwp0KCJTZXQiLGZ1bmN0aW9uKGEpe2lmKGZ1bmN0aW9uKCl7aWYoIWF8fHR5cGVvZiBhIT0iZnVuY3Rpb24ifHwhYS5wcm90b3R5cGUuZW50cmllc3x8dHlwZW9mIE9iamVjdC5zZWFsIT0iZnVuY3Rpb24iKXJldHVybiExO3RyeXt2YXIgYz1PYmplY3Quc2VhbCh7eDo0fSksZD1uZXcgYShfLnUoW2NdKSk7aWYoIWQuaGFzKGMpfHxkLnNpemUhPTF8fGQuYWRkKGMpIT1kfHxkLnNpemUhPTF8fGQuYWRkKHt4OjR9KSE9ZHx8ZC5zaXplIT0yKXJldHVybiExO3ZhciBlPWQuZW50cmllcygpLGY9ZS5uZXh0KCk7aWYoZi5kb25lfHxmLnZhbHVlWzBdIT1jfHxmLnZhbHVlWzFdIT1jKXJldHVybiExO2Y9ZS5uZXh0KCk7cmV0dXJuIGYuZG9uZXx8Zi52YWx1ZVswXT09Y3x8Zi52YWx1ZVswXS54IT00fHxmLnZhbHVlWzFdIT1mLnZhbHVlWzBdPyExOmUubmV4dCgpLmRvbmV9Y2F0Y2goZyl7cmV0dXJuITF9fSgpKXJldHVybiBhO3ZhciBiPWZ1bmN0aW9uKGMpe3RoaXMuZz1uZXcgTWFwO2lmKGMpe2M9Cl8udShjKTtmb3IodmFyIGQ7IShkPWMubmV4dCgpKS5kb25lOyl0aGlzLmFkZChkLnZhbHVlKX10aGlzLnNpemU9dGhpcy5nLnNpemV9O2IucHJvdG90eXBlLmFkZD1mdW5jdGlvbihjKXtjPWM9PT0wPzA6Yzt0aGlzLmcuc2V0KGMsYyk7dGhpcy5zaXplPXRoaXMuZy5zaXplO3JldHVybiB0aGlzfTtiLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oYyl7Yz10aGlzLmcuZGVsZXRlKGMpO3RoaXMuc2l6ZT10aGlzLmcuc2l6ZTtyZXR1cm4gY307Yi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmcuY2xlYXIoKTt0aGlzLnNpemU9MH07Yi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLmcuaGFzKGMpfTtiLnByb3RvdHlwZS5lbnRyaWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZy5lbnRyaWVzKCl9O2IucHJvdG90eXBlLnZhbHVlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcudmFsdWVzKCl9O2IucHJvdG90eXBlLmtleXM9Yi5wcm90b3R5cGUudmFsdWVzOwpiLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWIucHJvdG90eXBlLnZhbHVlcztiLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGMsZCl7dmFyIGU9dGhpczt0aGlzLmcuZm9yRWFjaChmdW5jdGlvbihmKXtyZXR1cm4gYy5jYWxsKGQsZixmLGUpfSl9O3JldHVybiBifSk7dCgiT2JqZWN0LnZhbHVlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGIpbWEoYixkKSYmYy5wdXNoKGJbZF0pO3JldHVybiBjfX0pO3QoIk9iamVjdC5pcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybiBiPT09Yz9iIT09MHx8MS9iPT09MS9jOmIhPT1iJiZjIT09Y319KTsKdCgiQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9dGhpcztkIGluc3RhbmNlb2YgU3RyaW5nJiYoZD1TdHJpbmcoZCkpO3ZhciBlPWQubGVuZ3RoO2M9Y3x8MDtmb3IoYzwwJiYoYz1NYXRoLm1heChjK2UsMCkpO2M8ZTtjKyspe3ZhciBmPWRbY107aWYoZj09PWJ8fE9iamVjdC5pcyhmLGIpKXJldHVybiEwfXJldHVybiExfX0pO3QoIlN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtyZXR1cm4gc2EodGhpcyxiLCJpbmNsdWRlcyIpLmluZGV4T2YoYixjfHwwKSE9PS0xfX0pOwp0KCJBcnJheS5mcm9tIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyxkKXtjPWMhPW51bGw/YzpmdW5jdGlvbihoKXtyZXR1cm4gaH07dmFyIGU9W10sZj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07aWYodHlwZW9mIGY9PSJmdW5jdGlvbiIpe2I9Zi5jYWxsKGIpO2Zvcih2YXIgZz0wOyEoZj1iLm5leHQoKSkuZG9uZTspZS5wdXNoKGMuY2FsbChkLGYudmFsdWUsZysrKSl9ZWxzZSBmb3IoZj1iLmxlbmd0aCxnPTA7ZzxmO2crKyllLnB1c2goYy5jYWxsKGQsYltnXSxnKSk7cmV0dXJuIGV9fSk7dCgiT2JqZWN0LmVudHJpZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7dmFyIGM9W10sZDtmb3IoZCBpbiBiKW1hKGIsZCkmJmMucHVzaChbZCxiW2RdXSk7cmV0dXJuIGN9fSk7CnQoIk51bWJlci5pc0Zpbml0ZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGIhPT0ibnVtYmVyIj8hMTohaXNOYU4oYikmJmIhPT1JbmZpbml0eSYmYiE9PS1JbmZpbml0eX19KTt0KCJOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiIsZnVuY3Rpb24oKXtyZXR1cm4gOTAwNzE5OTI1NDc0MDk5MX0pO3QoIk51bWJlci5NSU5fU0FGRV9JTlRFR0VSIixmdW5jdGlvbigpe3JldHVybi05MDA3MTk5MjU0NzQwOTkxfSk7dCgiTnVtYmVyLmlzSW50ZWdlciIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGIpP2I9PT1NYXRoLmZsb29yKGIpOiExfX0pO3QoIk51bWJlci5pc1NhZmVJbnRlZ2VyIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGIpJiZNYXRoLmFicyhiKTw9TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJ9fSk7CnQoIlN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGgiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXt2YXIgZD1zYSh0aGlzLGIsImVuZHNXaXRoIik7Yz09PXZvaWQgMCYmKGM9ZC5sZW5ndGgpO2M9TWF0aC5tYXgoMCxNYXRoLm1pbihjfDAsZC5sZW5ndGgpKTtmb3IodmFyIGU9Yi5sZW5ndGg7ZT4wJiZjPjA7KWlmKGRbLS1jXSE9YlstLWVdKXJldHVybiExO3JldHVybiBlPD0wfX0pO3ZhciB0YT1mdW5jdGlvbihhLGIpe2EgaW5zdGFuY2VvZiBTdHJpbmcmJihhKz0iIik7dmFyIGM9MCxkPSExLGU9e25leHQ6ZnVuY3Rpb24oKXtpZighZCYmYzxhLmxlbmd0aCl7dmFyIGY9YysrO3JldHVybnt2YWx1ZTpiKGYsYVtmXSksZG9uZTohMX19ZD0hMDtyZXR1cm57ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fX07ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBlfTsKdCgiQXJyYXkucHJvdG90eXBlLmVudHJpZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4gdGEodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybltiLGNdfSl9fSk7dCgiTWF0aC50cnVuYyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtiPU51bWJlcihiKTtpZihpc05hTihiKXx8Yj09PUluZmluaXR5fHxiPT09LUluZmluaXR5fHxiPT09MClyZXR1cm4gYjt2YXIgYz1NYXRoLmZsb29yKE1hdGguYWJzKGIpKTtyZXR1cm4gYjwwPy1jOmN9fSk7dCgiTnVtYmVyLmlzTmFOIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiB0eXBlb2YgYj09PSJudW1iZXIiJiZpc05hTihiKX19KTt0KCJBcnJheS5wcm90b3R5cGUua2V5cyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybiB0YSh0aGlzLGZ1bmN0aW9uKGIpe3JldHVybiBifSl9fSk7CnQoIkFycmF5LnByb3RvdHlwZS52YWx1ZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4gdGEodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBjfSl9fSk7dCgiU3RyaW5nLnByb3RvdHlwZS5jb2RlUG9pbnRBdCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXt2YXIgYz1zYSh0aGlzLG51bGwsImNvZGVQb2ludEF0IiksZD1jLmxlbmd0aDtiPU51bWJlcihiKXx8MDtpZihiPj0wJiZiPGQpe2J8PTA7dmFyIGU9Yy5jaGFyQ29kZUF0KGIpO2lmKGU8NTUyOTZ8fGU+NTYzMTl8fGIrMT09PWQpcmV0dXJuIGU7Yj1jLmNoYXJDb2RlQXQoYisxKTtyZXR1cm4gYjw1NjMyMHx8Yj41NzM0Mz9lOihlLTU1Mjk2KSoxMDI0K2IrOTIxNn19fSk7CnQoIlN0cmluZy5mcm9tQ29kZVBvaW50IixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe2Zvcih2YXIgYz0iIixkPTA7ZDxhcmd1bWVudHMubGVuZ3RoO2QrKyl7dmFyIGU9TnVtYmVyKGFyZ3VtZW50c1tkXSk7aWYoZTwwfHxlPjExMTQxMTF8fGUhPT1NYXRoLmZsb29yKGUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJxYCIrZSk7ZTw9NjU1MzU/Yys9U3RyaW5nLmZyb21DaGFyQ29kZShlKTooZS09NjU1MzYsYys9U3RyaW5nLmZyb21DaGFyQ29kZShlPj4+MTAmMTAyM3w1NTI5NiksYys9U3RyaW5nLmZyb21DaGFyQ29kZShlJjEwMjN8NTYzMjApKX1yZXR1cm4gY319KTsKdCgiUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtyZXR1cm4gdGhpcy50aGVuKGZ1bmN0aW9uKGMpe3JldHVybiBQcm9taXNlLnJlc29sdmUoYigpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGN9KX0sZnVuY3Rpb24oYyl7cmV0dXJuIFByb21pc2UucmVzb2x2ZShiKCkpLnRoZW4oZnVuY3Rpb24oKXt0aHJvdyBjO30pfSl9fSk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Ci8qCgogQ29weXJpZ2h0IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0aG9ycy4KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCl8udWE9Xy51YXx8e307Xy53PXRoaXN8fHNlbGY7Xy52YT1fLncuX0ZfdG9nZ2xlc19kZWZhdWx0X2dzaXx8W107Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Ci8qCgogQ29weXJpZ2h0IEdvb2dsZSBMTEMKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciBGYSxNYSxRYSxUYSxYYSxoYixkYixsYixCYixIYixSYixXYixaYixhYyxmYyxoYyxrYyxwYyx3YyxBYyx4YyxQYyxRYyxVYyxiZCxkZCxnZCxxZCxzZCx0ZCxLZCxMZCxOZCxRZCxPZCxQZCxSZCxTZCxWZCxXZCxYZDsKXy56YT1mdW5jdGlvbihhKXt2YXIgYj0hMTtiPWI9PT12b2lkIDA/ITE6YjtpZih3YSl7aWYoYiYmKHhhPyFhLmlzV2VsbEZvcm1lZCgpOi8oPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdfFtcdUQ4MDAtXHVEQkZGXSg/IVtcdURDMDAtXHVERkZGXSkvLnRlc3QoYSkpKXRocm93IEVycm9yKCJzIik7YT0oeWF8fCh5YT1uZXcgVGV4dEVuY29kZXIpKS5lbmNvZGUoYSl9ZWxzZXtmb3IodmFyIGM9MCxkPW5ldyBVaW50OEFycmF5KDMqYS5sZW5ndGgpLGU9MDtlPGEubGVuZ3RoO2UrKyl7dmFyIGY9YS5jaGFyQ29kZUF0KGUpO2lmKGY8MTI4KWRbYysrXT1mO2Vsc2V7aWYoZjwyMDQ4KWRbYysrXT1mPj42fDE5MjtlbHNle2lmKGY+PTU1Mjk2JiZmPD01NzM0Myl7aWYoZjw9NTYzMTkmJmU8YS5sZW5ndGgpe3ZhciBnPWEuY2hhckNvZGVBdCgrK2UpO2lmKGc+PTU2MzIwJiZnPD01NzM0Myl7Zj0oZi01NTI5NikqMTAyNCtnLTU2MzIwKzY1NTM2O2RbYysrXT1mPj4xOHwyNDA7CmRbYysrXT1mPj4xMiY2M3wxMjg7ZFtjKytdPWY+PjYmNjN8MTI4O2RbYysrXT1mJjYzfDEyODtjb250aW51ZX1lbHNlIGUtLX1pZihiKXRocm93IEVycm9yKCJzIik7Zj02NTUzM31kW2MrK109Zj4+MTJ8MjI0O2RbYysrXT1mPj42JjYzfDEyOH1kW2MrK109ZiY2M3wxMjh9fWE9Yz09PWQubGVuZ3RoP2Q6ZC5zdWJhcnJheSgwLGMpfXJldHVybiBhfTtfLkJhPWZ1bmN0aW9uKGEpe18udy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgYTt9LDApfTtfLkNhPWZ1bmN0aW9uKCl7dmFyIGE9Xy53Lm5hdmlnYXRvcjtyZXR1cm4gYSYmKGE9YS51c2VyQWdlbnQpP2E6IiJ9O0ZhPWZ1bmN0aW9uKGEpe2lmKCFEYXx8IV8uRWEpcmV0dXJuITE7Zm9yKHZhciBiPTA7YjxfLkVhLmJyYW5kcy5sZW5ndGg7YisrKXt2YXIgYz1fLkVhLmJyYW5kc1tiXS5icmFuZDtpZihjJiZjLmluZGV4T2YoYSkhPS0xKXJldHVybiEwfXJldHVybiExfTsKXy56PWZ1bmN0aW9uKGEpe3JldHVybiBfLkNhKCkuaW5kZXhPZihhKSE9LTF9O18uR2E9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVJlZ0V4cCgiKFtBLVpdW1xcdyBdKykvKFteXFxzXSspXFxzKig/OlxcKCguKj8pXFwpKT8iLCJnIiksYz1bXSxkO2Q9Yi5leGVjKGEpOyljLnB1c2goW2RbMV0sZFsyXSxkWzNdfHx2b2lkIDBdKTtyZXR1cm4gY307Xy5IYT1mdW5jdGlvbigpe3JldHVybiBEYT8hIV8uRWEmJl8uRWEuYnJhbmRzLmxlbmd0aD4wOiExfTtfLklhPWZ1bmN0aW9uKCl7cmV0dXJuIF8uSGEoKT8hMTpfLnooIk9wZXJhIil9O18uSmE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5IYSgpPyExOl8ueigiVHJpZGVudCIpfHxfLnooIk1TSUUiKX07Xy5LYT1mdW5jdGlvbigpe3JldHVybiBfLkhhKCk/ITE6Xy56KCJFZGdlIil9O18uTGE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5IYSgpP0ZhKCJNaWNyb3NvZnQgRWRnZSIpOl8ueigiRWRnLyIpfTsKTWE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5IYSgpP0ZhKCJPcGVyYSIpOl8ueigiT1BSIil9O18uTmE9ZnVuY3Rpb24oKXtyZXR1cm4gXy56KCJGaXJlZm94Iil8fF8ueigiRnhpT1MiKX07Xy5QYT1mdW5jdGlvbigpe3JldHVybiBfLnooIlNhZmFyaSIpJiYhKF8uT2EoKXx8KF8uSGEoKT8wOl8ueigiQ29hc3QiKSl8fF8uSWEoKXx8Xy5LYSgpfHxfLkxhKCl8fE1hKCl8fF8uTmEoKXx8Xy56KCJTaWxrIil8fF8ueigiQW5kcm9pZCIpKX07Xy5PYT1mdW5jdGlvbigpe3JldHVybiBfLkhhKCk/RmEoIkNocm9taXVtIik6KF8ueigiQ2hyb21lIil8fF8ueigiQ3JpT1MiKSkmJiFfLkthKCl8fF8ueigiU2lsayIpfTtRYT1mdW5jdGlvbigpe3JldHVybiBfLnooIkFuZHJvaWQiKSYmIShfLk9hKCl8fF8uTmEoKXx8Xy5JYSgpfHxfLnooIlNpbGsiKSl9OwpfLlJhPWZ1bmN0aW9uKGEpe3ZhciBiPXt9O2EuZm9yRWFjaChmdW5jdGlvbihjKXtiW2NbMF1dPWNbMV19KTtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIGJbYy5maW5kKGZ1bmN0aW9uKGQpe3JldHVybiBkIGluIGJ9KV18fCIifX07Xy5TYT1mdW5jdGlvbihhKXt2YXIgYj0vcnY6ICooW1xkXC5dKikvLmV4ZWMoYSk7aWYoYiYmYlsxXSlyZXR1cm4gYlsxXTtiPSIiO3ZhciBjPS9NU0lFICsoW1xkXC5dKykvLmV4ZWMoYSk7aWYoYyYmY1sxXSlpZihhPS9UcmlkZW50XC8oXGQuXGQpLy5leGVjKGEpLGNbMV09PSI3LjAiKWlmKGEmJmFbMV0pc3dpdGNoKGFbMV0pe2Nhc2UgIjQuMCI6Yj0iOC4wIjticmVhaztjYXNlICI1LjAiOmI9IjkuMCI7YnJlYWs7Y2FzZSAiNi4wIjpiPSIxMC4wIjticmVhaztjYXNlICI3LjAiOmI9IjExLjAifWVsc2UgYj0iNy4wIjtlbHNlIGI9Y1sxXTtyZXR1cm4gYn07ClRhPWZ1bmN0aW9uKGEpe3ZhciBiPV8uQ2EoKTtpZihhPT09IkludGVybmV0IEV4cGxvcmVyIilyZXR1cm4gXy5KYSgpP18uU2EoYik6IiI7Yj1fLkdhKGIpO3ZhciBjPV8uUmEoYik7c3dpdGNoKGEpe2Nhc2UgIk9wZXJhIjppZihfLklhKCkpcmV0dXJuIGMoWyJWZXJzaW9uIiwiT3BlcmEiXSk7aWYoTWEoKSlyZXR1cm4gYyhbIk9QUiJdKTticmVhaztjYXNlICJNaWNyb3NvZnQgRWRnZSI6aWYoXy5LYSgpKXJldHVybiBjKFsiRWRnZSJdKTtpZihfLkxhKCkpcmV0dXJuIGMoWyJFZGciXSk7YnJlYWs7Y2FzZSAiQ2hyb21pdW0iOmlmKF8uT2EoKSlyZXR1cm4gYyhbIkNocm9tZSIsIkNyaU9TIiwiSGVhZGxlc3NDaHJvbWUiXSl9cmV0dXJuIGE9PT0iRmlyZWZveCImJl8uTmEoKXx8YT09PSJTYWZhcmkiJiZfLlBhKCl8fGE9PT0iQW5kcm9pZCBCcm93c2VyIiYmUWEoKXx8YT09PSJTaWxrIiYmXy56KCJTaWxrIik/KGE9YlsyXSkmJmFbMV18fCIiOiIifTsKXy5VYT1mdW5jdGlvbihhKXtpZihfLkhhKCkmJmEhPT0iU2lsayIpe3ZhciBiPV8uRWEuYnJhbmRzLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuYnJhbmQ9PT1hfSk7aWYoIWJ8fCFiLnZlcnNpb24pcmV0dXJuIE5hTjtiPWIudmVyc2lvbi5zcGxpdCgiLiIpfWVsc2V7Yj1UYShhKTtpZihiPT09IiIpcmV0dXJuIE5hTjtiPWIuc3BsaXQoIi4iKX1yZXR1cm4gYi5sZW5ndGg9PT0wP05hTjpOdW1iZXIoYlswXSl9O18uVmE9ZnVuY3Rpb24oKXtyZXR1cm4gRGE/ISFfLkVhJiYhIV8uRWEucGxhdGZvcm06ITF9O18uV2E9ZnVuY3Rpb24oKXtyZXR1cm4gXy5WYSgpP18uRWEucGxhdGZvcm09PT0iQW5kcm9pZCI6Xy56KCJBbmRyb2lkIil9O1hhPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueigiaVBob25lIikmJiFfLnooImlQb2QiKSYmIV8ueigiaVBhZCIpfTtfLllhPWZ1bmN0aW9uKCl7cmV0dXJuIFhhKCl8fF8ueigiaVBhZCIpfHxfLnooImlQb2QiKX07Cl8uWmE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5WYSgpP18uRWEucGxhdGZvcm09PT0ibWFjT1MiOl8ueigiTWFjaW50b3NoIil9O18uJGE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5WYSgpP18uRWEucGxhdGZvcm09PT0iQ2hyb21lIE9TIjpfLnooIkNyT1MiKX07Xy5iYj1mdW5jdGlvbihhLGIpe2I9KDAsXy5hYikoYSxiKTt2YXIgYzsoYz1iPj0wKSYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGEsYiwxKTtyZXR1cm4gY307Xy5jYj1mdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aDtpZihiPjApe2Zvcih2YXIgYz1BcnJheShiKSxkPTA7ZDxiO2QrKyljW2RdPWFbZF07cmV0dXJuIGN9cmV0dXJuW119OwpfLmZiPWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMCYmKGI9MCk7ZGIoKTtiPWViW2JdO2Zvcih2YXIgYz1BcnJheShNYXRoLmZsb29yKGEubGVuZ3RoLzMpKSxkPWJbNjRdfHwiIixlPTAsZj0wO2U8YS5sZW5ndGgtMjtlKz0zKXt2YXIgZz1hW2VdLGg9YVtlKzFdLGs9YVtlKzJdLG09YltnPj4yXTtnPWJbKGcmMyk8PDR8aD4+NF07aD1iWyhoJjE1KTw8MnxrPj42XTtrPWJbayY2M107Y1tmKytdPW0rZytoK2t9bT0wO2s9ZDtzd2l0Y2goYS5sZW5ndGgtZSl7Y2FzZSAyOm09YVtlKzFdLGs9YlsobSYxNSk8PDJdfHxkO2Nhc2UgMTphPWFbZV0sY1tmXT1iW2E+PjJdK2JbKGEmMyk8PDR8bT4+NF0raytkfXJldHVybiBjLmpvaW4oIiIpfTsKaGI9ZnVuY3Rpb24oYSl7dmFyIGI9YS5sZW5ndGgsYz1iKjMvNDtjJTM/Yz1NYXRoLmZsb29yKGMpOiI9LiIuaW5kZXhPZihhW2ItMV0pIT0tMSYmKGM9Ij0uIi5pbmRleE9mKGFbYi0yXSkhPS0xP2MtMjpjLTEpO3ZhciBkPW5ldyBVaW50OEFycmF5KGMpLGU9MDtfLmdiKGEsZnVuY3Rpb24oZil7ZFtlKytdPWZ9KTtyZXR1cm4gZSE9PWM/ZC5zdWJhcnJheSgwLGUpOmR9OwpfLmdiPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhrKXtmb3IoO2Q8YS5sZW5ndGg7KXt2YXIgbT1hLmNoYXJBdChkKyspLG49aWJbbV07aWYobiE9bnVsbClyZXR1cm4gbjtpZighL15bXHNceGEwXSokLy50ZXN0KG0pKXRocm93IEVycm9yKCJ1YCIrbSk7fXJldHVybiBrfWRiKCk7Zm9yKHZhciBkPTA7Oyl7dmFyIGU9YygtMSksZj1jKDApLGc9Yyg2NCksaD1jKDY0KTtpZihoPT09NjQmJmU9PT0tMSlicmVhaztiKGU8PDJ8Zj4+NCk7ZyE9NjQmJihiKGY8PDQmMjQwfGc+PjIpLGghPTY0JiZiKGc8PDYmMTkyfGgpKX19OwpkYj1mdW5jdGlvbigpe2lmKCFpYil7aWI9e307Zm9yKHZhciBhPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpLGI9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl0sYz0wO2M8NTtjKyspe3ZhciBkPWEuY29uY2F0KGJbY10uc3BsaXQoIiIpKTtlYltjXT1kO2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7ZSsrKXt2YXIgZj1kW2VdO2liW2ZdPT09dm9pZCAwJiYoaWJbZl09ZSl9fX19O2xiPWZ1bmN0aW9uKGEpe3JldHVybiBqYlthXXx8IiJ9O18ub2I9ZnVuY3Rpb24oYSl7aWYoIW1iKXJldHVybiBoYihhKTthPW5iLnRlc3QoYSk/YS5yZXBsYWNlKG5iLGxiKTphO2E9YXRvYihhKTtmb3IodmFyIGI9bmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGgpLGM9MDtjPGEubGVuZ3RoO2MrKyliW2NdPWEuY2hhckNvZGVBdChjKTtyZXR1cm4gYn07Cl8ucGI9ZnVuY3Rpb24oYSxiKXthLl9fY2xvc3VyZV9fZXJyb3JfX2NvbnRleHRfXzk4NDM4Mnx8KGEuX19jbG9zdXJlX19lcnJvcl9fY29udGV4dF9fOTg0MzgyPXt9KTthLl9fY2xvc3VyZV9fZXJyb3JfX2NvbnRleHRfXzk4NDM4Mi5zZXZlcml0eT1ifTtfLnJiPWZ1bmN0aW9uKGEsYil7aWYoYSE9bnVsbCl7dmFyIGM7dmFyIGQ9KGM9cWIpIT1udWxsP2M6cWI9e307Yz1kW2FdfHwwO2M+PWJ8fChkW2FdPWMrMSxhPUVycm9yKCksXy5wYihhLCJpbmNpZGVudCIpLF8uQmEoYSkpfX07Xy5zYj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIHR5cGVvZiBTeW1ib2w9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sKCk9PT0ic3ltYm9sIj8oYz09PXZvaWQgMD8wOmMpJiZTeW1ib2wuZm9yJiZhP1N5bWJvbC5mb3IoYSk6YSE9bnVsbD9TeW1ib2woYSk6U3ltYm9sKCk6Yn07Xy53Yj1mdW5jdGlvbihhLGIpe18udGJ8fF8uQSBpbiBhfHx1YihhLHZiKTthW18uQV18PWJ9OwpfLnhiPWZ1bmN0aW9uKGEsYil7Xy50Ynx8Xy5BIGluIGF8fHViKGEsdmIpO2FbXy5BXT1ifTtfLnpiPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGI9PT12b2lkIDA/YS5nIT09eWImJiEhKDImKGEuQVtfLkFdfDApKTohISgyJmIpJiZhLmchPT15Yn07Xy5BYj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YiYxMjg/MDotMSxlPWEubGVuZ3RoLGY7aWYoZj0hIWUpZj1hW2UtMV0sZj1mIT1udWxsJiZ0eXBlb2YgZj09PSJvYmplY3QiJiZmLmNvbnN0cnVjdG9yPT09T2JqZWN0O3ZhciBnPWUrKGY/LTE6MCk7Zm9yKGI9YiYxMjg/MTowO2I8ZztiKyspYyhiLWQsYVtiXSk7aWYoZil7YT1hW2UtMV07Zm9yKHZhciBoIGluIGEpIWlzTmFOKGgpJiZjKCtoLGFbaF0pfX07QmI9ZnVuY3Rpb24oYSl7YS5aZT0hMDtyZXR1cm4gYX07Cl8uR2I9ZnVuY3Rpb24oYSl7dmFyIGI9YTtpZihDYihiKSl7aWYoIS9eXHMqKD86LT9bMS05XVxkKnwwKT9ccyokLy50ZXN0KGIpKXRocm93IEVycm9yKFN0cmluZyhiKSk7fWVsc2UgaWYoRGIoYikmJiFOdW1iZXIuaXNTYWZlSW50ZWdlcihiKSl0aHJvdyBFcnJvcihTdHJpbmcoYikpO3JldHVybiBFYj9CaWdJbnQoYSk6YT1GYihhKT9hPyIxIjoiMCI6Q2IoYSk/YS50cmltKCl8fCIwIjpTdHJpbmcoYSl9O0hiPWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg+Yi5sZW5ndGgpcmV0dXJuITE7aWYoYS5sZW5ndGg8Yi5sZW5ndGh8fGE9PT1iKXJldHVybiEwO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLGU9YltjXTtpZihkPmUpcmV0dXJuITE7aWYoZDxlKXJldHVybiEwfX07Xy5JYj1mdW5jdGlvbihhKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYSl9OwpfLkpiPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGx8fHR5cGVvZiBhPT09ImJvb2xlYW4iKXJldHVybiBhO2lmKHR5cGVvZiBhPT09Im51bWJlciIpcmV0dXJuISFhfTtfLkxiPWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsP2E6KDAsXy5LYikoYSk/YXwwOnZvaWQgMH07Xy5NYj1mdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBhO2lmKHR5cGVvZiBhPT09InN0cmluZyImJmEpYT0rYTtlbHNlIGlmKHR5cGVvZiBhIT09Im51bWJlciIpcmV0dXJuO3JldHVybigwLF8uS2IpKGEpP2F8MDp2b2lkIDB9O18uTmI9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PW51bGx8fHR5cGVvZiBhPT09InN0cmluZyI/YTp2b2lkIDB9O18uUWI9ZnVuY3Rpb24oYSxiLGMpe2lmKGEhPW51bGwmJmFbT2JdPT09UGIpcmV0dXJuIGE7aWYoQXJyYXkuaXNBcnJheShhKSl7dmFyIGQ9YVtfLkFdfDA7Yz1kfGMmMzJ8YyYyO2MhPT1kJiZfLnhiKGEsYyk7cmV0dXJuIG5ldyBiKGEpfX07UmI9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9OwpfLlViPWZ1bmN0aW9uKGEpe3ZhciBiPV8uU2IoXy5UYik7cmV0dXJuIGI/YVtiXTp2b2lkIDB9O1diPWZ1bmN0aW9uKGEsYil7YjwxMDB8fF8ucmIoVmIsMSl9OwpaYj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1kIT09dm9pZCAwO2Q9ISFkO3ZhciBmPV8uU2IoXy5UYiksZzshZSYmXy50YiYmZiYmKGc9YVtmXSkmJmcuc2IoV2IpO2Y9W107dmFyIGg9YS5sZW5ndGg7Zz00Mjk0OTY3Mjk1O3ZhciBrPSExLG09ISEoYiY2NCksbj1tP2ImMTI4PzA6LTE6dm9pZCAwO2lmKCEoYiYxKSl7dmFyIHE9aCYmYVtoLTFdO3EhPW51bGwmJnR5cGVvZiBxPT09Im9iamVjdCImJnEuY29uc3RydWN0b3I9PT1PYmplY3Q/KGgtLSxnPWgpOnE9dm9pZCAwO2lmKG0mJiEoYiYxMjgpJiYhZSl7az0hMDt2YXIgcDtnPSgocD1YYikhPW51bGw/cDpSYikoZy1uLG4sYSxxLHZvaWQgMCkrbn19Yj12b2lkIDA7Zm9yKHA9MDtwPGg7cCsrKXt2YXIgcj1hW3BdO2lmKHIhPW51bGwmJihyPWMocixkKSkhPW51bGwpaWYobSYmcD49Zyl7dmFyIHg9cC1uLHk9dm9pZCAwOygoeT1iKSE9bnVsbD95OmI9e30pW3hdPXJ9ZWxzZSBmW3BdPXJ9aWYocSlmb3IodmFyIEMgaW4gcSloPXFbQ10sCmghPW51bGwmJihoPWMoaCxkKSkhPW51bGwmJihwPStDLHI9dm9pZCAwLG0mJiFOdW1iZXIuaXNOYU4ocCkmJihyPXArbik8Zz9mW3JdPWg6KHA9dm9pZCAwLCgocD1iKSE9bnVsbD9wOmI9e30pW0NdPWgpKTtiJiYoaz9mLnB1c2goYik6ZltnXT1iKTtlJiZfLlNiKF8uVGIpJiYoYT1fLlViKGEpKSYmImZ1bmN0aW9uIj09dHlwZW9mIF8uWWImJmEgaW5zdGFuY2VvZiBfLlliJiYoZltfLlRiXT1hLmcoKSk7cmV0dXJuIGZ9OwphYz1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgIm51bWJlciI6cmV0dXJuIE51bWJlci5pc0Zpbml0ZShhKT9hOiIiK2E7Y2FzZSAiYmlnaW50IjpyZXR1cm4oMCxfLiRiKShhKT9OdW1iZXIoYSk6IiIrYTtjYXNlICJib29sZWFuIjpyZXR1cm4gYT8xOjA7Y2FzZSAib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGEpKXt2YXIgYj1hW18uQV18MDtyZXR1cm4gYS5sZW5ndGg9PT0wJiZiJjE/dm9pZCAwOlpiKGEsYixhYyl9aWYoYSE9bnVsbCYmYVtPYl09PT1QYilyZXR1cm4gXy5iYyhhKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgXy5jYyYmYSBpbnN0YW5jZW9mIF8uY2Mpe2I9YS5nO2lmKGI9PW51bGwpYT0iIjtlbHNlIGlmKHR5cGVvZiBiPT09InN0cmluZyIpYT1iO2Vsc2V7aWYobWIpe2Zvcih2YXIgYz0iIixkPTAsZT1iLmxlbmd0aC0xMDI0MDtkPGU7KWMrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxiLnN1YmFycmF5KGQsZCs9MTAyNDApKTtjKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsCmQ/Yi5zdWJhcnJheShkKTpiKTtiPWJ0b2EoYyl9ZWxzZSBiPV8uZmIoYik7YT1hLmc9Yn1yZXR1cm4gYX1yZXR1cm59cmV0dXJuIGF9O18uYmM9ZnVuY3Rpb24oYSl7YT1hLkE7cmV0dXJuIFpiKGEsYVtfLkFdfDAsYWMpfTtmYz1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgImJvb2xlYW4iOnJldHVybiBkY3x8KGRjPVswLHZvaWQgMCwhMF0pO2Nhc2UgIm51bWJlciI6cmV0dXJuIGE+MD92b2lkIDA6YT09PTA/ZWN8fChlYz1bMCx2b2lkIDBdKTpbLWEsdm9pZCAwXTtjYXNlICJzdHJpbmciOnJldHVyblswLGFdO2Nhc2UgIm9iamVjdCI6cmV0dXJuIGF9fTtfLmljPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGhjKGEsYlswXSxiWzFdKX07Xy5CPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gaGMoYSxiLGMsMjA0OCl9OwpoYz1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/MDpkO2lmKGE9PW51bGwpe3ZhciBlPTMyO2M/KGE9W2NdLGV8PTEyOCk6YT1bXTtiJiYoZT1lJi0xNjc2MDgzM3woYiYxMDIzKTw8MTQpfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkoYSkpdGhyb3cgRXJyb3IoInkiKTtlPWFbXy5BXXwwO2lmKGpjJiYxJmUpdGhyb3cgRXJyb3IoInoiKTsyMDQ4JmUmJiEoMiZlKSYma2MoKTtpZihlJjI1Nil0aHJvdyBFcnJvcigiQSIpO2lmKGUmNjQpcmV0dXJuKGV8ZCkhPT1lJiZfLnhiKGEsZXxkKSxhO2lmKGMmJihlfD0xMjgsYyE9PWFbMF0pKXRocm93IEVycm9yKCJCIik7YTp7Yz1hO2V8PTY0O3ZhciBmPWMubGVuZ3RoO2lmKGYpe3ZhciBnPWYtMSxoPWNbZ107aWYoaCE9bnVsbCYmdHlwZW9mIGg9PT0ib2JqZWN0IiYmaC5jb25zdHJ1Y3Rvcj09PU9iamVjdCl7Yj1lJjEyOD8wOi0xO2ctPWI7aWYoZz49MTAyNCl0aHJvdyBFcnJvcigiRCIpO2Zvcih2YXIgayBpbiBoKWY9K2ssZjxnJiYKKGNbZitiXT1oW2tdLGRlbGV0ZSBoW2tdKTtlPWUmLTE2NzYwODMzfChnJjEwMjMpPDwxNDticmVhayBhfX1pZihiKXtrPU1hdGgubWF4KGIsZi0oZSYxMjg/MDotMSkpO2lmKGs+MTAyNCl0aHJvdyBFcnJvcigiRSIpO2U9ZSYtMTY3NjA4MzN8KGsmMTAyMyk8PDE0fX19Xy54YihhLGV8NjR8ZCk7cmV0dXJuIGF9O2tjPWZ1bmN0aW9uKCl7aWYoamMpdGhyb3cgRXJyb3IoIkMiKTtfLnJiKGxjLDUpfTsKcGM9ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiBhO2lmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBjPWFbXy5BXXwwO2EubGVuZ3RoPT09MCYmYyYxP2E9dm9pZCAwOmMmMnx8KCFifHw0MDk2JmN8fDE2JmM/YT1fLm1jKGEsYywhMSxiJiYhKGMmMTYpKTooXy53YihhLDM0KSxjJjQmJk9iamVjdC5mcmVlemUoYSkpKTtyZXR1cm4gYX1pZihhIT1udWxsJiZhW09iXT09PVBiKXJldHVybiBiPWEuQSxjPWJbXy5BXXwwLF8uemIoYSxjKT9hOl8ubmMoYSxiLGMpP18ub2MoYSxiKTpfLm1jKGIsYyk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIF8uY2MmJmEgaW5zdGFuY2VvZiBfLmNjKXJldHVybiBhfTtfLm9jPWZ1bmN0aW9uKGEsYixjKXthPW5ldyBhLmNvbnN0cnVjdG9yKGIpO2MmJihhLmc9eWIpO2EuaT15YjtyZXR1cm4gYX07Cl8ubWM9ZnVuY3Rpb24oYSxiLGMsZCl7ZCE9bnVsbHx8KGQ9ISEoMzQmYikpO2E9WmIoYSxiLHBjLGQpO2Q9MzI7YyYmKGR8PTIpO2I9YiYxNjc2OTIxN3xkO18ueGIoYSxiKTtyZXR1cm4gYX07Xy5xYz1mdW5jdGlvbihhKXt2YXIgYj1hLkEsYz1iW18uQV18MDtyZXR1cm4gXy56YihhLGMpP18ubmMoYSxiLGMpP18ub2MoYSxiLCEwKTpuZXcgYS5jb25zdHJ1Y3RvcihfLm1jKGIsYywhMSkpOmF9O18ucmM9ZnVuY3Rpb24oYSl7aWYoYS5nIT09eWIpcmV0dXJuITE7dmFyIGI9YS5BO2I9Xy5tYyhiLGJbXy5BXXwwKTtfLndiKGIsMjA0OCk7YS5BPWI7YS5nPXZvaWQgMDthLmk9dm9pZCAwO3JldHVybiEwfTtfLnNjPWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMCYmKGI9YVtfLkFdfDApO2ImMzImJiEoYiY0MDk2KSYmXy54YihhLGJ8NDA5Nil9O18ubmM9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjJjI/ITA6YyYzMiYmIShjJjQwOTYpPyhfLnhiKGIsY3wyKSxhLmc9eWIsITApOiExfTsKXy50Yz1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWMrKGU/MDotMSksZz1hLmxlbmd0aC0xO2lmKGc+PTErKGU/MDotMSkmJmY+PWcpe3ZhciBoPWFbZ107aWYoaCE9bnVsbCYmdHlwZW9mIGg9PT0ib2JqZWN0IiYmaC5jb25zdHJ1Y3Rvcj09PU9iamVjdClyZXR1cm4gaFtjXT1kLGJ9aWYoZjw9ZylyZXR1cm4gYVtmXT1kLGI7aWYoZCE9PXZvaWQgMCl7dmFyIGs7Zz0oKGs9YikhPW51bGw/azpiPWFbXy5BXXwwKT4+MTQmMTAyM3x8NTM2ODcwOTEyO2M+PWc/ZCE9bnVsbCYmKGY9e30sYVtnKyhlPzA6LTEpXT0oZltjXT1kLGYpKTphW2ZdPWR9cmV0dXJuIGJ9O18udmM9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0hMTtkPV8udWMoYSxkLGUsZnVuY3Rpb24oZyl7dmFyIGg9Xy5RYihnLGMsYik7Zj1oIT09ZyYmaCE9bnVsbDtyZXR1cm4gaH0pO2lmKGQhPW51bGwpcmV0dXJuIGYmJiFfLnpiKGQpJiZfLnNjKGEsYiksZH07CndjPWZ1bmN0aW9uKCl7dmFyIGE9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpO307T2JqZWN0LnNldFByb3RvdHlwZU9mKGEsYS5wcm90b3R5cGUpO3JldHVybiBhfTtBYz1mdW5jdGlvbihhKXt2YXIgYj14Yzt2YXIgYz1jPT09dm9pZCAwP18ueWM6YztyZXR1cm4gbmV3IF8uemMoYSxiLGMpfTt4Yz1mdW5jdGlvbihhLGIsYyxkLGUpe2I9Xy5CYyhiLGQpO2IhPW51bGwmJihjPV8uQ2MoYSxjKSxlKGIsYSksXy5EYyhhLGMpKX07Cl8uSGM9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ZFthXTtpZihlKXJldHVybiBlO2U9e307ZS5IZD1kO2UuWWE9ZmMoZFswXSk7dmFyIGY9ZFsxXSxnPTE7ZiYmZi5jb25zdHJ1Y3Rvcj09PU9iamVjdCYmKGUuT2I9ZixmPWRbKytnXSx0eXBlb2YgZj09PSJmdW5jdGlvbiImJihlLlpjPSEwLF8uRWMhPW51bGx8fChfLkVjPWYpLF8uRmMhPW51bGx8fChfLkZjPWRbZysxXSksZj1kW2crPTJdKSk7Zm9yKHZhciBoPXt9O2YmJkFycmF5LmlzQXJyYXkoZikmJmYubGVuZ3RoJiZ0eXBlb2YgZlswXT09PSJudW1iZXIiJiZmWzBdPjA7KXtmb3IodmFyIGs9MDtrPGYubGVuZ3RoO2srKyloW2Zba11dPWY7Zj1kWysrZ119Zm9yKGs9MTtmIT09dm9pZCAwOyl7dHlwZW9mIGY9PT0ibnVtYmVyIiYmKGsrPWYsZj1kWysrZ10pO3ZhciBtPXZvaWQgMDtpZihmIGluc3RhbmNlb2YgXy56Yyl2YXIgbj1mO2Vsc2Ugbj1HYyxnLS07Zj12b2lkIDA7aWYoKGY9bik9PW51bGw/MDpmLmkpe2Y9ZFsrK2ddOwptPWQ7dmFyIHE9Zzt0eXBlb2YgZj09PSJmdW5jdGlvbiImJihmPWYoKSxtW3FdPWYpO209Zn1mPWRbKytnXTtxPWsrMTt0eXBlb2YgZj09PSJudW1iZXIiJiZmPDAmJihxLT1mLGY9ZFsrK2ddKTtmb3IoO2s8cTtrKyspe3ZhciBwPWhba107bT9jKGUsayxuLG0scCk6YihlLGssbixwKX19cmV0dXJuIGRbYV09ZX07Xy5KYz1mdW5jdGlvbihhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hWzBdaW5zdGFuY2VvZiBfLnpjP2E6W0ljLGFdOlthLHZvaWQgMF19O18uQmM9ZnVuY3Rpb24oYSxiKXtpZihhIGluc3RhbmNlb2YgXy5EKXJldHVybiBhLkE7aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gXy5pYyhhLGIpfTtfLktjPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbmV3IF8uemMoYSxiLGMpfTtfLk1jPWZ1bmN0aW9uKGEsYixjKXtfLnRjKGEsYVtfLkFdfDAsYixjLChhW18uQV18MCkmMTI4P18uTGM6dm9pZCAwKX07ClBjPWZ1bmN0aW9uKGEpe2E9TmMuZ2V0KGEpO3ZhciBiPU5jLmdldChfLk9jKTtyZXR1cm4gYT09PXZvaWQgMHx8Yj09PXZvaWQgMD8hMTphPj1ifTtRYz1mdW5jdGlvbihhKXtyZXR1cm4gYT8iW0dTSV9MT0dHRVItIithKyJdOiAiOiJbR1NJX0xPR0dFUl06ICJ9O18uRT1mdW5jdGlvbihhLGIpe3RyeXtQYygiZGVidWciKSYmd2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLmxvZyYmd2luZG93LmNvbnNvbGUubG9nKFFjKGIpK2EpfWNhdGNoKGMpe319O18uRj1mdW5jdGlvbihhLGIpe3RyeXtQYygiaW5mbyIpJiZ3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUuaW5mbyYmd2luZG93LmNvbnNvbGUuaW5mbyhRYyhiKSthKX1jYXRjaChjKXt9fTtfLkc9ZnVuY3Rpb24oYSxiKXt0cnl7UGMoIndhcm4iKSYmd2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLndhcm4mJndpbmRvdy5jb25zb2xlLndhcm4oUWMoYikrYSl9Y2F0Y2goYyl7fX07Cl8uSD1mdW5jdGlvbihhLGIpe3RyeXtQYygiZXJyb3IiKSYmd2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLmVycm9yJiZ3aW5kb3cuY29uc29sZS5lcnJvcihRYyhiKSthKX1jYXRjaChjKXt9fTtfLlNjPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLlJjKXJldHVybiBhLmc7dGhyb3cgRXJyb3IoIkciKTt9O1VjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgXy5UYyhmdW5jdGlvbihiKXtyZXR1cm4gYi5zdWJzdHIoMCxhLmxlbmd0aCsxKS50b0xvd2VyQ2FzZSgpPT09YSsiOiJ9KX07Xy5XYz1mdW5jdGlvbihhKXthIGluc3RhbmNlb2YgXy5SYz9hPV8uU2MoYSk6YT1WYy50ZXN0KGEpP2E6dm9pZCAwO3JldHVybiBhfTtfLlhjPWZ1bmN0aW9uKGEpe3ZhciBiPXdpbmRvdy5sb2NhdGlvbjthPV8uV2MoYSk7YSE9PXZvaWQgMCYmYi5hc3NpZ24oYSl9O18uWWM9ZnVuY3Rpb24oYSl7dGhpcy5nPWF8fHtjb29raWU6IiJ9fTsKXy5JPWZ1bmN0aW9uKGEpe3JldHVybiEhXy5aYy5nW2FdfHxfLiRjLmluY2x1ZGVzKGEpJiZfLmFkLmdldCgiZ2VfIithKT09PSIxIn07YmQ9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCBpbiBhKWIuY2FsbChjLGFbZF0sZCxhKX07ZGQ9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZCxlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7ZD1hcmd1bWVudHNbZV07Zm9yKGMgaW4gZClhW2NdPWRbY107Zm9yKHZhciBmPTA7ZjxjZC5sZW5ndGg7ZisrKWM9Y2RbZl0sT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsYykmJihhW2NdPWRbY10pfX07Xy5mZD1mdW5jdGlvbihhKXt2YXIgYj1hLm1hdGNoKF8uZWQpO2E9YlsxXTt2YXIgYz1iWzNdO2I9Yls0XTt2YXIgZD0iIjthJiYoZCs9YSsiOiIpO2MmJihkPWQrIi8vIitjLGImJihkKz0iOiIrYikpO3JldHVybiBkfTsKZ2Q9ZnVuY3Rpb24oYSxiKXtpZihhKXthPWEuc3BsaXQoIiYiKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXS5pbmRleE9mKCI9IiksZT1udWxsO2lmKGQ+PTApe3ZhciBmPWFbY10uc3Vic3RyaW5nKDAsZCk7ZT1hW2NdLnN1YnN0cmluZyhkKzEpfWVsc2UgZj1hW2NdO2IoZixlP2RlY29kZVVSSUNvbXBvbmVudChlLnJlcGxhY2UoL1wrL2csIiAiKSk6IiIpfX19OwpfLmhkPWZ1bmN0aW9uKGEpe3RoaXMuZz10aGlzLnY9dGhpcy5oPSIiO3RoaXMudT1udWxsO3RoaXMubz10aGlzLmk9IiI7dGhpcy5sPSExO3ZhciBiO2EgaW5zdGFuY2VvZiBfLmhkPyh0aGlzLmw9YS5sLF8uaWQodGhpcyxhLmgpLHRoaXMudj1hLmdldFVzZXJJbmZvKCksdGhpcy5nPWEuZyxfLmpkKHRoaXMsYS51KSx0aGlzLmk9YS5pLF8ua2QodGhpcyxsZChhLmopKSx0aGlzLm89YS5vKTphJiYoYj1TdHJpbmcoYSkubWF0Y2goXy5lZCkpPyh0aGlzLmw9ITEsXy5pZCh0aGlzLGJbMV18fCIiLCEwKSx0aGlzLnY9bWQoYlsyXXx8IiIpLHRoaXMuZz1tZChiWzNdfHwiIiwhMCksXy5qZCh0aGlzLGJbNF0pLHRoaXMuaT1tZChiWzVdfHwiIiwhMCksXy5rZCh0aGlzLGJbNl18fCIiLCEwKSx0aGlzLm89bWQoYls3XXx8IiIpKToodGhpcy5sPSExLHRoaXMuaj1uZXcgXy5uZChudWxsLHRoaXMubCkpfTtfLm9kPWZ1bmN0aW9uKCl7dGhpcy51PXRoaXMudTt0aGlzLm89dGhpcy5vfTsKcWQ9ZnVuY3Rpb24oYSxiKXtwZC5jYWxsKHRoaXMsYT9hLnR5cGU6IiIpO3RoaXMucmVsYXRlZFRhcmdldD10aGlzLmg9dGhpcy50YXJnZXQ9bnVsbDt0aGlzLmJ1dHRvbj10aGlzLnNjcmVlblk9dGhpcy5zY3JlZW5YPXRoaXMuY2xpZW50WT10aGlzLmNsaWVudFg9dGhpcy5sPXRoaXMuaj0wO3RoaXMua2V5PSIiO3RoaXMuY2hhckNvZGU9dGhpcy5rZXlDb2RlPTA7dGhpcy5tZXRhS2V5PXRoaXMuc2hpZnRLZXk9dGhpcy5hbHRLZXk9dGhpcy5jdHJsS2V5PSExO3RoaXMuc3RhdGU9bnVsbDt0aGlzLnBvaW50ZXJJZD0wO3RoaXMucG9pbnRlclR5cGU9IiI7dGhpcy5nPW51bGw7YSYmdGhpcy5pbml0KGEsYil9O3NkPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5saXN0ZW5lcj1hO3RoaXMucHJveHk9bnVsbDt0aGlzLnNyYz1iO3RoaXMudHlwZT1jO3RoaXMuY2FwdHVyZT0hIWQ7dGhpcy55YT1lO3RoaXMua2V5PSsrcmQ7dGhpcy5hYj10aGlzLnBiPSExfTsKdGQ9ZnVuY3Rpb24oYSl7dGhpcy5zcmM9YTt0aGlzLmc9e307dGhpcy5oPTB9O18udWQ9ZnVuY3Rpb24oKXtfLm9kLmNhbGwodGhpcyk7dGhpcy5pYT1uZXcgdGQodGhpcyk7dGhpcy5DPXRoaXM7dGhpcy5sPW51bGx9O18ud2Q9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgVWludDMyQXJyYXkoMik7KHdpbmRvdy5jcnlwdG98fF8udmQubXNDcnlwdG8pLmdldFJhbmRvbVZhbHVlcyhhKTtyZXR1cm4gYVswXS50b1N0cmluZygxNikrYVsxXS50b1N0cmluZygxNil9O18ueWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRGEmJl8uRWE/Xy5FYS5tb2JpbGU6IV8ueGQoKSYmKF8ueigiaVBvZCIpfHxfLnooImlQaG9uZSIpfHxfLnooIkFuZHJvaWQiKXx8Xy56KCJJRU1vYmlsZSIpKX07Cl8ueGQ9ZnVuY3Rpb24oKXtyZXR1cm4gRGEmJl8uRWE/IV8uRWEubW9iaWxlJiYoXy56KCJpUGFkIil8fF8ueigiQW5kcm9pZCIpfHxfLnooIlNpbGsiKSk6Xy56KCJpUGFkIil8fF8ueigiQW5kcm9pZCIpJiYhXy56KCJNb2JpbGUiKXx8Xy56KCJTaWxrIil9O18uemQ9ZnVuY3Rpb24oKXtyZXR1cm4gXy5JKCJkaXNhYmxlX2ZlZGNtX29uX3NhbXN1bmdfYnJvd3NlcnMiKSYmbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiU2Ftc3VuZ0Jyb3dzZXIiKT8hMTpfLk9hKCkmJiEoXy5MYSgpfHxuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCJFZGdBIil8fG5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoIkVkZ2lPUyIpKSYmIU1hKCl9O18uQWQ9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3c7cmV0dXJuIklkZW50aXR5Q3JlZGVudGlhbCJpbiB3aW5kb3d8fCJGZWRlcmF0ZWRDcmVkZW50aWFsImluIHdpbmRvdyYmYS5GZWRlcmF0ZWRDcmVkZW50aWFsLnByb3RvdHlwZS5sb2dpbn07Cl8uQmQ9ZnVuY3Rpb24oYSl7c3dpdGNoKGEudXhfbW9kZSl7Y2FzZSAicmVkaXJlY3QiOnJldHVybiJyZWRpcmVjdCI7ZGVmYXVsdDpyZXR1cm4icG9wdXAifX07Cl8uRGQ9ZnVuY3Rpb24oYSxiKXtpZighYi5jbGllbnRfaWQpdGhyb3cgbmV3IF8uQ2QoIk1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyIGNsaWVudF9pZC4iLCJtaXNzaW5nX3JlcXVpcmVkX3BhcmFtZXRlciIpO2lmKCFiLnNjb3BlKXRocm93IG5ldyBfLkNkKCJNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlciBzY29wZS4iLCJtaXNzaW5nX3JlcXVpcmVkX3BhcmFtZXRlciIpO3ZhciBjPXtjbGllbnRfaWQ6Yi5jbGllbnRfaWQsc2NvcGU6Yi5zY29wZSxsb2dpbl9oaW50OmIubG9naW5faGludHx8Yi5oaW50LHN0YXRlOmIuc3RhdGUsaGQ6Yi5oZHx8Yi5ob3N0ZWRfZG9tYWluLGluY2x1ZGVfZ3JhbnRlZF9zY29wZXM6Yi5pbmNsdWRlX2dyYW50ZWRfc2NvcGVzLGVuYWJsZV9ncmFudWxhcl9jb25zZW50OmIuZW5hYmxlX2dyYW51bGFyX2NvbnNlbnQ9PT12b2lkIDA/Yi5lbmFibGVfc2VyaWFsX2NvbnNlbnQ6Yi5lbmFibGVfZ3JhbnVsYXJfY29uc2VudCx0cmlnZ2VyX29uZXBpY2s6Yi50cmlnZ2VyX29uZXBpY2ssCmFsbG93X211bHRpcGxlOmIuYWxsb3dfbXVsdGlwbGUsYWxsb3dfZm9sZGVyX3NlbGVjdGlvbjpiLmFsbG93X2ZvbGRlcl9zZWxlY3Rpb24sZmlsZV9pZHM6Yi5maWxlX2lkcyxtaW1ldHlwZXM6Yi5taW1ldHlwZXMsaW5jbHVkZV9pZF90b2tlbjpiLmluY2x1ZGVfaWRfdG9rZW4sbm9uY2U6Yi5ub25jZX07aWYoYy5pbmNsdWRlX2lkX3Rva2VuKXtpZighYy5ub25jZSl0aHJvdyBuZXcgXy5DZCgiTWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXIgbm9uY2UuIiwibWlzc2luZ19yZXF1aXJlZF9wYXJhbWV0ZXIiKTtmb3IodmFyIGQ9Yy5zY29wZS5zcGxpdCgiICIpLGU9Xy51KFsib3BlbmlkIiwiZW1haWwiLCJwcm9maWxlIl0pLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWY9Zi52YWx1ZSxkLmluY2x1ZGVzKGYpfHxkLnB1c2goZik7Yy5zY29wZT1kLmpvaW4oIiAiKX1hPT09ImNvZGUiPyhjLnNlbGVjdF9hY2NvdW50PWIuc2VsZWN0X2FjY291bnQsYy51eF9tb2RlPWIudXhfbW9kZSwKYi5jbGFpbXMhPT12b2lkIDAmJihjLmNsYWltcz1iLmNsYWltcyksYy51eF9tb2RlPT09InJlZGlyZWN0IiYmKGMucmVkaXJlY3RfdXJpPWIucmVkaXJlY3RfdXJpfHxbbG9jYXRpb24ucHJvdG9jb2wsIi8vIixsb2NhdGlvbi5ob3N0LGxvY2F0aW9uLnBhdGhuYW1lXS5qb2luKCIiKSkpOmE9PT0idG9rZW4iJiYoYy5wcm9tcHQ9Yi5wcm9tcHQpO3JldHVybiBjfTtfLkVkPWZ1bmN0aW9uKGEpe18ub2QuY2FsbCh0aGlzKTt0aGlzLmg9YTt0aGlzLmc9e319O18uR2Q9ZnVuY3Rpb24oYSxiKXtfLnVkLmNhbGwodGhpcyk7dGhpcy5qPWF8fDE7dGhpcy5pPWJ8fF8udzt0aGlzLnY9KDAsXy5GZCkodGhpcy5ILHRoaXMpO3RoaXMuQj1EYXRlLm5vdygpfTsKXy5IZD1mdW5jdGlvbihhLGIsYyl7YT1hPT09dm9pZCAwP18uSSgiZW5hYmxlX2xhcmdlX3BvcHVwX2hlaWdodCIpPzU5MDo1MDA6YTtiPWI9PT12b2lkIDA/Xy5JKCJlbmFibGVfbGFyZ2VfcG9wdXBfaGVpZ2h0Iik/ODMwOjU1MDpiO2E9TWF0aC5taW4oYSxzY3JlZW4ud2lkdGgtNDApO2I9TWF0aC5taW4oYixzY3JlZW4uaGVpZ2h0LTQwKTt2YXIgZD1zY3JlZW4ud2lkdGgvMi1hLzIsZT1zY3JlZW4uaGVpZ2h0LzItYi8yO2MhPT12b2lkIDAmJmM+PWQmJmM8PWQrYSYmKGQ9Yy1kPGQrYS1jP2MrODpjLWEtOCk7cmV0dXJuWyJ0b29sYmFyPW5vLGxvY2F0aW9uPW5vLGRpcmVjdG9yaWVzPW5vLHN0YXR1cz1ubyxtZW51YmFyPW5vLHNjcm9sbGJhcnM9bm8scmVzaXphYmxlPW5vLGNvcHloaXN0b3J5PW5vIiwid2lkdGg9IithLCJoZWlnaHQ9IitiLCJ0b3A9IitlLCJsZWZ0PSIrZF0uam9pbigpfTsKXy5KZD1mdW5jdGlvbihhLGIsYyl7Yj1iLnRvU3RyaW5nKCkrIl8iK0lkO3ZhciBkPXdpbmRvdyxlPV8uV2MoYSk7Yz1lIT09dm9pZCAwP2Qub3BlbihlLGIsYyk6bnVsbDtpZighY3x8Yy5jbG9zZWR8fHR5cGVvZiBjLmNsb3NlZD09PSJ1bmRlZmluZWQiKXJldHVybiBfLkgoIkZhaWxlZCB0byBvcGVuIHBvcHVwIHdpbmRvdyBvbiB1cmw6ICIrYSsiLiBNYXliZSBibG9ja2VkIGJ5IHRoZSBicm93c2VyPyIpLG51bGw7Yy5mb2N1cygpO3JldHVybiBjfTtLZD1mdW5jdGlvbihhKXtpZihhLkMpdGhyb3cgbmV3IFR5cGVFcnJvcigiZiIpO2EuQz0hMH07TGQ9ZnVuY3Rpb24oYSxiKXthLmo9e05iOmIsWWM6ITB9O2EuZz1hLkJ8fGEub307Cl8uSj1mdW5jdGlvbihhLGIpe2EucHJvdG90eXBlPSgwLF8uYWEpKGIucHJvdG90eXBlKTthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2lmKF8uamEpKDAsXy5qYSkoYSxiKTtlbHNlIGZvcih2YXIgYyBpbiBiKWlmKGMhPSJwcm90b3R5cGUiKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKXt2YXIgZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsYyk7ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYyxkKX1lbHNlIGFbY109YltjXTthLnVhPWIucHJvdG90eXBlfTtfLk1kPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIEFycmF5KSl7YT1fLnUoYSk7Zm9yKHZhciBiLGM9W107IShiPWEubmV4dCgpKS5kb25lOyljLnB1c2goYi52YWx1ZSk7YT1jfXJldHVybiBhfTtOZD1mdW5jdGlvbihhKXt0aGlzLmc9bmV3IF8udjt0aGlzLmg9YX07ClFkPWZ1bmN0aW9uKGEsYil7S2QoYS5nKTt2YXIgYz1hLmcudjtpZihjKXJldHVybiBPZChhLCJyZXR1cm4iaW4gYz9jWyJyZXR1cm4iXTpmdW5jdGlvbihkKXtyZXR1cm57dmFsdWU6ZCxkb25lOiEwfX0sYixhLmcucmV0dXJuKTthLmcucmV0dXJuKGIpO3JldHVybiBQZChhKX07T2Q9ZnVuY3Rpb24oYSxiLGMsZCl7dHJ5e3ZhciBlPWIuY2FsbChhLmcudixjKTtfLnBhKGUpO2lmKCFlLmRvbmUpcmV0dXJuIGEuZy5DPSExLGU7dmFyIGY9ZS52YWx1ZX1jYXRjaChnKXtyZXR1cm4gYS5nLnY9bnVsbCxMZChhLmcsZyksUGQoYSl9YS5nLnY9bnVsbDtkLmNhbGwoYS5nLGYpO3JldHVybiBQZChhKX07ClBkPWZ1bmN0aW9uKGEpe2Zvcig7YS5nLmc7KXRyeXt2YXIgYj1hLmgoYS5nKTtpZihiKXJldHVybiBhLmcuQz0hMSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChjKXthLmcuaT12b2lkIDAsTGQoYS5nLGMpfWEuZy5DPSExO2lmKGEuZy5qKXtiPWEuZy5qO2EuZy5qPW51bGw7aWYoYi5ZYyl0aHJvdyBiLk5iO3JldHVybnt2YWx1ZTpiLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKUmQ9ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe0tkKGEuZyk7YS5nLnY/Yj1PZChhLGEuZy52Lm5leHQsYixhLmcuRCk6KGEuZy5EKGIpLGI9UGQoYSkpO3JldHVybiBifTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe0tkKGEuZyk7YS5nLnY/Yj1PZChhLGEuZy52WyJ0aHJvdyJdLGIsYS5nLkQpOihMZChhLmcsYiksYj1QZChhKSk7cmV0dXJuIGJ9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBRZChhLGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319O1NkPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGYoZyl7Zy5kb25lP2QoZy52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUpLnRoZW4oYixjKS50aGVuKGYsZSl9ZihhLm5leHQoKSl9KX07Xy5UZD1mdW5jdGlvbihhKXtyZXR1cm4gU2QobmV3IFJkKG5ldyBOZChhKSkpfTsKXy5VZD1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtyZXR1cm4gYj09Im9iamVjdCImJmEhPW51bGx8fGI9PSJmdW5jdGlvbiJ9O1ZkPWZ1bmN0aW9uKGEsYil7YTp7dmFyIGM9WyJXSVpfZ2xvYmFsX2RhdGEiLCJveE4zbmIiXTtmb3IodmFyIGQ9Xy53LGU9MDtlPGMubGVuZ3RoO2UrKylpZihkPWRbY1tlXV0sZD09bnVsbCl7Yz1udWxsO2JyZWFrIGF9Yz1kfWE9YyYmY1thXTtyZXR1cm4gYSE9bnVsbD9hOmJ9O1dkPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5jYWxsLmFwcGx5KGEuYmluZCxhcmd1bWVudHMpfTsKWGQ9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhKXRocm93IEVycm9yKCk7aWYoYXJndW1lbnRzLmxlbmd0aD4yKXt2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseShlLGQpO3JldHVybiBhLmFwcGx5KGIsZSl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGIsYXJndW1lbnRzKX19O18uRmQ9ZnVuY3Rpb24oYSxiLGMpe18uRmQ9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQmJkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLnRvU3RyaW5nKCkuaW5kZXhPZigibmF0aXZlIGNvZGUiKSE9LTE/V2Q6WGQ7cmV0dXJuIF8uRmQuYXBwbHkobnVsbCxhcmd1bWVudHMpfTsKXy5LPWZ1bmN0aW9uKGEsYil7YT1hLnNwbGl0KCIuIik7Zm9yKHZhciBjPV8udyxkO2EubGVuZ3RoJiYoZD1hLnNoaWZ0KCkpOylhLmxlbmd0aHx8Yj09PXZvaWQgMD9jW2RdJiZjW2RdIT09T2JqZWN0LnByb3RvdHlwZVtkXT9jPWNbZF06Yz1jW2RdPXt9OmNbZF09Yn07Xy5TYj1mdW5jdGlvbihhKXtyZXR1cm4gYX07Xy5ZZD1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS51YT1iLnByb3RvdHlwZTthLnByb3RvdHlwZT1uZXcgYzthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2EuV2U9ZnVuY3Rpb24oZCxlLGYpe2Zvcih2YXIgZz1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGg9MjtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWdbaC0yXT1hcmd1bWVudHNbaF07cmV0dXJuIGIucHJvdG90eXBlW2VdLmFwcGx5KGQsZyl9fTsKXy5DZD1mdW5jdGlvbihhLGIpe2E9RXJyb3IuY2FsbCh0aGlzLGEpO3RoaXMubWVzc2FnZT1hLm1lc3NhZ2U7InN0YWNrImluIGEmJih0aGlzLnN0YWNrPWEuc3RhY2spO09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLF8uQ2QucHJvdG90eXBlKTt0aGlzLnR5cGU9Ynx8InVua25vd24ifTtfLkooXy5DZCxFcnJvcik7dmFyIHlhLHhhLHdhO18uWmQ9dHlwZW9mIFRleHREZWNvZGVyIT09InVuZGVmaW5lZCI7eGE9dHlwZW9mIFN0cmluZy5wcm90b3R5cGUuaXNXZWxsRm9ybWVkPT09ImZ1bmN0aW9uIjt3YT10eXBlb2YgVGV4dEVuY29kZXIhPT0idW5kZWZpbmVkIjtfLiRkPVN0cmluZy5wcm90b3R5cGUudHJpbT9mdW5jdGlvbihhKXtyZXR1cm4gYS50cmltKCl9OmZ1bmN0aW9uKGEpe3JldHVybi9eW1xzXHhhMF0qKFtcc1xTXSo/KVtcc1x4YTBdKiQvLmV4ZWMoYSlbMV19O3ZhciBhZT0hIShfLnZhWzBdPj4yNSYxKSxiZT0hIShfLnZhWzBdPj4yMCYxKSxjZT0hIShfLnZhWzBdPj4yNyYxKSxkZT0hIShfLnZhWzBdJjgxOTIpO3ZhciBEYT1hZT9jZTpWZCg2MTA0MDEzMDEsITEpLGpjPWFlP2JlfHwhZGU6VmQoNzQ4NDAyMTQ3LCEwKTt2YXIgZWU7ZWU9Xy53Lm5hdmlnYXRvcjtfLkVhPWVlP2VlLnVzZXJBZ2VudERhdGF8fG51bGw6bnVsbDtfLmFiPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gdHlwZW9mIGIhPT0ic3RyaW5nInx8Yi5sZW5ndGghPTE/LTE6YS5pbmRleE9mKGIsMCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYyBpbiBhJiZhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX07Xy5mZT1BcnJheS5wcm90b3R5cGUuZm9yRWFjaD9mdW5jdGlvbihhLGIpe0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEubGVuZ3RoLGQ9dHlwZW9mIGE9PT0ic3RyaW5nIj9hLnNwbGl0KCIiKTphLGU9MDtlPGM7ZSsrKWUgaW4gZCYmYi5jYWxsKHZvaWQgMCxkW2VdLGUsYSl9OwpfLmdlPUFycmF5LnByb3RvdHlwZS5zb21lP2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEubGVuZ3RoLGQ9dHlwZW9mIGE9PT0ic3RyaW5nIj9hLnNwbGl0KCIiKTphLGU9MDtlPGM7ZSsrKWlmKGUgaW4gZCYmYi5jYWxsKHZvaWQgMCxkW2VdLGUsYSkpcmV0dXJuITA7cmV0dXJuITF9O18uaGU9QXJyYXkucHJvdG90eXBlLmV2ZXJ5P2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aCxkPXR5cGVvZiBhPT09InN0cmluZyI/YS5zcGxpdCgiIik6YSxlPTA7ZTxjO2UrKylpZihlIGluIGQmJiFiLmNhbGwodm9pZCAwLGRbZV0sZSxhKSlyZXR1cm4hMTtyZXR1cm4hMH07Xy5pZT1mdW5jdGlvbihhKXtfLmllWyIgIl0oYSk7cmV0dXJuIGF9O18uaWVbIiAiXT1mdW5jdGlvbigpe307dmFyIGplLGxlLG9lO2plPV8uSWEoKTtfLmtlPV8uSmEoKTtsZT1fLnooIkVkZ2UiKTtfLm1lPV8ueigiR2Vja28iKSYmIShfLkNhKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiFfLnooIkVkZ2UiKSkmJiEoXy56KCJUcmlkZW50Iil8fF8ueigiTVNJRSIpKSYmIV8ueigiRWRnZSIpO18ubmU9Xy5DYSgpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhXy56KCJFZGdlIik7CmE6e3ZhciBwZT0iIixxZT1mdW5jdGlvbigpe3ZhciBhPV8uQ2EoKTtpZihfLm1lKXJldHVybi9ydjooW15cKTtdKykoXCl8OykvLmV4ZWMoYSk7aWYobGUpcmV0dXJuL0VkZ2VcLyhbXGRcLl0rKS8uZXhlYyhhKTtpZihfLmtlKXJldHVybi9cYig/Ok1TSUV8cnYpWzogXShbXlwpO10rKShcKXw7KS8uZXhlYyhhKTtpZihfLm5lKXJldHVybi9XZWJLaXRcLyhcUyspLy5leGVjKGEpO2lmKGplKXJldHVybi8oPzpWZXJzaW9uKVsgXC9dPyhcUyspLy5leGVjKGEpfSgpO3FlJiYocGU9cWU/cWVbMV06IiIpO2lmKF8ua2Upe3ZhciByZSxzZT1fLncuZG9jdW1lbnQ7cmU9c2U/c2UuZG9jdW1lbnRNb2RlOnZvaWQgMDtpZihyZSE9bnVsbCYmcmU+cGFyc2VGbG9hdChwZSkpe29lPVN0cmluZyhyZSk7YnJlYWsgYX19b2U9cGV9dmFyIHRlPW9lO3ZhciB1ZT1fLk5hKCksdmU9WGEoKXx8Xy56KCJpUG9kIiksd2U9Xy56KCJpUGFkIikseGU9UWEoKSx5ZT1fLk9hKCksemU9Xy5QYSgpJiYhXy5ZYSgpO3ZhciBlYj17fSxpYj1udWxsO3ZhciBtYixuYixqYjtfLkFlPXR5cGVvZiBVaW50OEFycmF5IT09InVuZGVmaW5lZCI7bWI9IV8ua2UmJnR5cGVvZiBidG9hPT09ImZ1bmN0aW9uIjtuYj0vWy1fLl0vZztqYj17Ii0iOiIrIixfOiIvIiwiLiI6Ij0ifTtfLkJlPXt9O18uQ2U9ZnVuY3Rpb24oYSl7aWYoXy5CZSE9PV8uQmUpdGhyb3cgRXJyb3IoInciKTt2YXIgYj1hLmc7Yj1iPT1udWxsfHxfLkFlJiZiIT1udWxsJiZiIGluc3RhbmNlb2YgVWludDhBcnJheT9iOnR5cGVvZiBiPT09InN0cmluZyI/Xy5vYihiKTpudWxsO3JldHVybiBiPT1udWxsP2I6YS5nPWJ9O3ZhciBxYj12b2lkIDA7dmFyIERlLFZiLGxjLE9iO18udGI9dHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woKT09PSJzeW1ib2wiO0RlPV8uc2IoImphcyIsdm9pZCAwLCEwKTtfLkVlPV8uc2Iodm9pZCAwLCIwZGkiKTtfLlRiPV8uc2Iodm9pZCAwLFN5bWJvbCgpKTtfLkZlPV8uc2Iodm9pZCAwLCIwdWIiKTtWYj1fLnNiKHZvaWQgMCwiMHVicyIpO18uR2U9Xy5zYih2b2lkIDAsIjB1YnNiIik7bGM9Xy5zYih2b2lkIDAsIjBhY3RrIik7T2I9Xy5zYigibV9tIiwiYmYiLCEwKTtfLkhlPV8uc2IoKTt2YXIgdmIsdWIsSmU7dmI9e1hkOnt2YWx1ZTowLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiExfX07dWI9T2JqZWN0LmRlZmluZVByb3BlcnRpZXM7Xy5BPV8udGI/RGU6IlhkIjtKZT1bXTtfLnhiKEplLDcpO18uSWU9T2JqZWN0LmZyZWV6ZShKZSk7dmFyIFBiLHliO1BiPXt9O3liPXt9O18uS2U9T2JqZWN0LmZyZWV6ZSh7fSk7Xy5MYz17fTt2YXIgRGI9QmIoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9KSxDYj1CYihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn0pLEZiPUJiKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIn0pO3ZhciBFYj10eXBlb2YgXy53LkJpZ0ludD09PSJmdW5jdGlvbiImJnR5cGVvZiBfLncuQmlnSW50KDApPT09ImJpZ2ludCI7dmFyIE5lLExlLE9lLE1lO18uJGI9QmIoZnVuY3Rpb24oYSl7cmV0dXJuIEViP2E+PUxlJiZhPD1NZTphWzBdPT09Ii0iP0hiKGEsTmUpOkhiKGEsT2UpfSk7TmU9TnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIudG9TdHJpbmcoKTtMZT1FYj9CaWdJbnQoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpOnZvaWQgMDtPZT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUi50b1N0cmluZygpO01lPUViP0JpZ0ludChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik6dm9pZCAwO18uUGU9dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNsaWNlPT09ImZ1bmN0aW9uIjtfLlFlPXR5cGVvZiBCaWdJbnQ9PT0iZnVuY3Rpb24iP0JpZ0ludC5hc0ludE46dm9pZCAwO18uUmU9TnVtYmVyLmlzU2FmZUludGVnZXI7Xy5LYj1OdW1iZXIuaXNGaW5pdGU7Xy5TZT1NYXRoLnRydW5jO3ZhciBYYjt2YXIgZGMsZWM7dmFyIFdlO18uVGU9Xy5HYigwKTtfLlVlPXt9O18uTD1mdW5jdGlvbihhLGIsYyxkLGUpe2I9Xy51YyhhLkEsYixjLGUpO2lmKGIhPT1udWxsfHxkJiZhLmkhPT15YilyZXR1cm4gYn07Xy51Yz1mdW5jdGlvbihhLGIsYyxkKXtpZihiPT09LTEpcmV0dXJuIG51bGw7dmFyIGU9YisoYz8wOi0xKSxmPWEubGVuZ3RoLTE7aWYoIShmPDErKGM/MDotMSkpKXtpZihlPj1mKXt2YXIgZz1hW2ZdO2lmKGchPW51bGwmJnR5cGVvZiBnPT09Im9iamVjdCImJmcuY29uc3RydWN0b3I9PT1PYmplY3Qpe2M9Z1tiXTt2YXIgaD0hMH1lbHNlIGlmKGU9PT1mKWM9ZztlbHNlIHJldHVybn1lbHNlIGM9YVtlXTtpZihkJiZjIT1udWxsKXtkPWQoYyk7aWYoZD09bnVsbClyZXR1cm4gZDtpZighT2JqZWN0LmlzKGQsYykpcmV0dXJuIGg/Z1tiXT1kOmFbZV09ZCxkfXJldHVybiBjfX07Xy5WZT1mdW5jdGlvbihhLGIsYyl7YT1hLkE7cmV0dXJuIF8udmMoYSxhW18uQV18MCxiLGMpIT09dm9pZCAwfTsKV2U9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWFbXy5BXXwwLGU9ZCYxMjg/Xy5MYzp2b2lkIDAsZj1fLnVjKGEsYyxlKTtpZihmIT1udWxsJiZmW09iXT09PVBiKXtpZighXy56YihmKSlyZXR1cm4gXy5yYyhmKSxmLkE7dmFyIGc9Zi5BfWVsc2UgQXJyYXkuaXNBcnJheShmKSYmKGc9Zik7aWYoZyl7dmFyIGg9Z1tfLkFdfDA7aCYyJiYoZz1fLm1jKGcsaCkpfWc9Xy5pYyhnLGIpO2chPT1mJiZfLnRjKGEsZCxjLGcsZSk7cmV0dXJuIGd9O18uTT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLkEsZj1lW18uQV18MDtiPV8udmMoZSxmLGIsYyxkKTtpZihiPT1udWxsKXJldHVybiBiO2Y9ZVtfLkFdfDA7aWYoIV8uemIoYSxmKSl7dmFyIGc9Xy5xYyhiKTtnIT09YiYmKF8ucmMoYSkmJihlPWEuQSxmPWVbXy5BXXwwKSxiPWcsZj1fLnRjKGUsZixjLGIsZCksXy5zYyhlLGYpKX1yZXR1cm4gYn07Cl8uWGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1jPT09dm9pZCAwPyIiOmM7dmFyIGQ7cmV0dXJuKGQ9Xy5OYihfLkwoYSxiKSkpIT1udWxsP2Q6Y307Xy5OPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uTmIoXy5MKGEsYix2b2lkIDAsXy5VZSkpfTtfLk89ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5MYihfLkwoYSxiLHZvaWQgMCxfLlVlKSl9O18uWWU9ZnVuY3Rpb24oYSxiKXtmb3IoO2I+MTI3OylhLmcucHVzaChiJjEyN3wxMjgpLGI+Pj49NzthLmcucHVzaChiKX07Xy5aZT1mdW5jdGlvbihhLGIpe2lmKGI+PTApXy5ZZShhLGIpO2Vsc2V7Zm9yKHZhciBjPTA7Yzw5O2MrKylhLmcucHVzaChiJjEyN3wxMjgpLGI+Pj03O2EuZy5wdXNoKDEpfX07Xy4kZT1mdW5jdGlvbihhLGIpe2IubGVuZ3RoIT09MCYmKGEuaS5wdXNoKGIpLGEuaCs9Yi5sZW5ndGgpfTtfLkNjPWZ1bmN0aW9uKGEsYil7Xy5ZZShhLmcsYio4KzIpO2I9YS5nLmVuZCgpO18uJGUoYSxiKTtiLnB1c2goYS5oKTtyZXR1cm4gYn07Xy5EYz1mdW5jdGlvbihhLGIpe3ZhciBjPWIucG9wKCk7Zm9yKGM9YS5oK2EuZy5sZW5ndGgoKS1jO2M+MTI3OyliLnB1c2goYyYxMjd8MTI4KSxjPj4+PTcsYS5oKys7Yi5wdXNoKGMpO2EuaCsrfTtfLmFmPWZ1bmN0aW9uKGEsYixjKXtfLlllKGEuZyxiKjgrMik7Xy5ZZShhLmcsYy5sZW5ndGgpO18uJGUoYSxhLmcuZW5kKCkpO18uJGUoYSxjKX07dmFyIGJmLGVmO18ueWM9d2MoKTtiZj13YygpO18uY2Y9d2MoKTtfLmRmPXdjKCk7ZWY9d2MoKTtfLkQ9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuQT1fLkIoYSxiLGMpfTtfLkQucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiBfLmJjKHRoaXMpfTtfLkQucHJvdG90eXBlW09iXT1QYjtfLkQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQS50b1N0cmluZygpfTt2YXIgR2MsSWM7Xy56Yz1mdW5jdGlvbihhLGIsYyl7dGhpcy5nPWE7dGhpcy5oPWI7YT1fLlNiKF8ueWMpO3RoaXMuaT0hIWEmJmM9PT1hfHwhMX07R2M9QWMoZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihhLmghPT0yKXJldHVybiExO2EubChXZShiLGQsYyksZSk7cmV0dXJuITB9KTtJYz1BYyhmdW5jdGlvbihhLGIsYyxkLGUpe2lmKGEuaCE9PTIpcmV0dXJuITE7YS5sKFdlKGIsZCxjKSxlKTtyZXR1cm4hMH0pO18uZmY9U3ltYm9sKCk7Xy5nZj1fLktjKGZ1bmN0aW9uKGEsYixjKXtpZihhLmghPT0wKXJldHVybiExO18uTWMoYixjLGEudSgpKTtyZXR1cm4hMH0sZnVuY3Rpb24oYSxiLGMpe2I9Xy5KYihiKTtiIT1udWxsJiYoXy5ZZShhLmcsYyo4KSxhLmcuZy5wdXNoKGI/MTowKSl9LGJmKTtfLmhmPV8uS2MoZnVuY3Rpb24oYSxiLGMpe2lmKGEuaCE9PTIpcmV0dXJuITE7Xy5NYyhiLGMsYS5vKCkpO3JldHVybiEwfSxmdW5jdGlvbihhLGIsYyl7Yj1fLk5iKGIpO2IhPW51bGwmJl8uYWYoYSxjLF8uemEoYikpfSxfLmNmKTtfLmpmPV8uS2MoZnVuY3Rpb24oYSxiLGMpe2lmKGEuaCE9PTApcmV0dXJuITE7Xy5NYyhiLGMsYS52KCkpO3JldHVybiEwfSxmdW5jdGlvbihhLGIsYyl7Yj1fLk1iKGIpO2IhPW51bGwmJihiPXBhcnNlSW50KGIsMTApLF8uWWUoYS5nLGMqOCksXy5aZShhLmcsYikpfSxlZik7dmFyIE5jPW5ldyBNYXA7TmMuc2V0KCJkZWJ1ZyIsMCk7TmMuc2V0KCJpbmZvIiwxKTtOYy5zZXQoIndhcm4iLDIpO05jLnNldCgiZXJyb3IiLDMpO18uT2M9Indhcm4iO18ua2Y9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXM7Xy5SYz1mdW5jdGlvbihhKXt0aGlzLmc9YX07Xy5SYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nfTtfLmxmPW5ldyBfLlJjKCJhYm91dDppbnZhbGlkI3pDbG9zdXJleiIpO3ZhciBWYztfLlRjPWZ1bmN0aW9uKGEpe3RoaXMuYWU9YX07Xy5tZj1bVWMoImRhdGEiKSxVYygiaHR0cCIpLFVjKCJodHRwcyIpLFVjKCJtYWlsdG8iKSxVYygiZnRwIiksbmV3IF8uVGMoZnVuY3Rpb24oYSl7cmV0dXJuL15bXjpdKihbLz8jXXwkKS8udGVzdChhKX0pXTtWYz0vXlxzKig/IWphdmFzY3JpcHQ6KSg/OltcdysuLV0rOnxbXjovPyNdKig/OlsvPyNdfCQpKS9pO18ubmY9U3RyaW5nLnByb3RvdHlwZS5yZXBlYXQ/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5yZXBlYXQoYil9OmZ1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5KGIrMSkuam9pbihhKX07dmFyIG9mO18ubD1fLlljLnByb3RvdHlwZTtfLmwuc2V0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0hMTtpZih0eXBlb2YgYz09PSJvYmplY3QiKXt2YXIgZT1jLnNhbWVTaXRlO2Q9Yy5zZWN1cmV8fCExO3ZhciBmPWMuZG9tYWlufHx2b2lkIDA7dmFyIGc9Yy5wYXRofHx2b2lkIDA7dmFyIGg9Yy5XYn1pZigvWzs9XHNdLy50ZXN0KGEpKXRocm93IEVycm9yKCJKYCIrYSk7aWYoL1s7XHJcbl0vLnRlc3QoYikpdGhyb3cgRXJyb3IoIktgIitiKTtoPT09dm9pZCAwJiYoaD0tMSk7dGhpcy5nLmNvb2tpZT1hKyI9IitiKyhmPyI7ZG9tYWluPSIrZjoiIikrKGc/IjtwYXRoPSIrZzoiIikrKGg8MD8iIjpoPT0wPyI7ZXhwaXJlcz0iKyhuZXcgRGF0ZSgxOTcwLDEsMSkpLnRvVVRDU3RyaW5nKCk6IjtleHBpcmVzPSIrKG5ldyBEYXRlKERhdGUubm93KCkraCoxRTMpKS50b1VUQ1N0cmluZygpKSsoZD8iO3NlY3VyZSI6IiIpKyhlIT1udWxsPyI7c2FtZXNpdGU9IitlOiIiKX07Cl8ubC5nZXQ9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YSsiPSIsZD0odGhpcy5nLmNvb2tpZXx8IiIpLnNwbGl0KCI7IiksZT0wLGY7ZTxkLmxlbmd0aDtlKyspe2Y9Xy4kZChkW2VdKTtpZihmLmxhc3RJbmRleE9mKGMsMCk9PTApcmV0dXJuIGYuc2xpY2UoYy5sZW5ndGgpO2lmKGY9PWEpcmV0dXJuIiJ9cmV0dXJuIGJ9O18ubC5VYT1mdW5jdGlvbigpe3JldHVybiBvZih0aGlzKS5rZXlzfTtfLmwubmE9ZnVuY3Rpb24oKXtyZXR1cm4gb2YodGhpcykudmFsdWVzfTtfLmwuY2xlYXI9ZnVuY3Rpb24oKXtmb3IodmFyIGE9b2YodGhpcykua2V5cyxiPWEubGVuZ3RoLTE7Yj49MDtiLS0pe3ZhciBjPWFbYl07dGhpcy5nZXQoYyk7dGhpcy5zZXQoYywiIix7V2I6MCxwYXRoOnZvaWQgMCxkb21haW46dm9pZCAwfSl9fTsKb2Y9ZnVuY3Rpb24oYSl7YT0oYS5nLmNvb2tpZXx8IiIpLnNwbGl0KCI7Iik7Zm9yKHZhciBiPVtdLGM9W10sZCxlLGY9MDtmPGEubGVuZ3RoO2YrKyllPV8uJGQoYVtmXSksZD1lLmluZGV4T2YoIj0iKSxkPT0tMT8oYi5wdXNoKCIiKSxjLnB1c2goZSkpOihiLnB1c2goZS5zdWJzdHJpbmcoMCxkKSksYy5wdXNoKGUuc3Vic3RyaW5nKGQrMSkpKTtyZXR1cm57a2V5czpiLHZhbHVlczpjfX07Xy5hZD1uZXcgXy5ZYyh0eXBlb2YgZG9jdW1lbnQ9PSJ1bmRlZmluZWQiP251bGw6ZG9jdW1lbnQpO18uJGM9WyJ0ZXN0X29ubHkiLCJlbmFibGVfd2FybV93ZWxjb21lX3BhZ2VfdHlwZSIsImVuYWJsZV9pdHBfb3B0aW1pemF0aW9uIiwiZW5hYmxlX2l0cF9zdXBwb3J0X2luX29hdXRoIiwiZGlzYWJsZV9mZWRjbV9vcHRfb3V0Il07Xy5QPWZ1bmN0aW9uKGEpe18uWmMuZ1thXT0hMDtfLkUoIkV4cGVyaW1lbnQgIithKyIgdHVybmVkIG9uLiIpfTtfLnBmPWZ1bmN0aW9uKGEsYil7Xy5aYy5nW2FdPWI7Xy5FKCJFeHBlcmltZW50ICIrYSsiIHNldCB0byAiK2IrIi4iKX07Xy5aYz1uZXcgZnVuY3Rpb24oKXt0aGlzLmc9e319O3ZhciBjZD0iY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpO18ucmY9ZnVuY3Rpb24oYSl7dGhpcy5nPXFmPT09cWYmJmF8fCIifTtfLnJmLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O3ZhciBxZj17fTtfLlE9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQ7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/Yi5nZXRFbGVtZW50QnlJZChhKTphfTtfLnNmPWZ1bmN0aW9uKGEsYil7Yj1TdHJpbmcoYik7YS5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiJiYoYj1iLnRvTG93ZXJDYXNlKCkpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoYil9O18uZWQ9UmVnRXhwKCJeKD86KFteOi8/Iy5dKyk6KT8oPzovLyg/OihbXlxcXFwvPyNdKilAKT8oW15cXFxcLz8jXSo/KSg/OjooWzAtOV0rKSk/KD89W1xcXFwvPyNdfCQpKT8oW14/I10rKT8oPzpcXD8oW14jXSopKT8oPzojKFtcXHNcXFNdKikpPyQiKTt2YXIgbWQsdGYsQmYsdWYsd2YsdmYsemYseGYsQ2Y7Xy5oZC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPXRoaXMuaDtiJiZhLnB1c2godGYoYix1ZiwhMCksIjoiKTt2YXIgYz10aGlzLmc7aWYoY3x8Yj09ImZpbGUiKWEucHVzaCgiLy8iKSwoYj10aGlzLmdldFVzZXJJbmZvKCkpJiZhLnB1c2godGYoYix1ZiwhMCksIkAiKSxhLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhjKSkucmVwbGFjZSgvJTI1KFswLTlhLWZBLUZdezJ9KS9nLCIlJDEiKSksYz10aGlzLnUsYyE9bnVsbCYmYS5wdXNoKCI6IixTdHJpbmcoYykpO2lmKGM9dGhpcy5pKXRoaXMuZyYmYy5jaGFyQXQoMCkhPSIvIiYmYS5wdXNoKCIvIiksYS5wdXNoKHRmKGMsYy5jaGFyQXQoMCk9PSIvIj92Zjp3ZiwhMCkpOyhjPXRoaXMuai50b1N0cmluZygpKSYmYS5wdXNoKCI/IixjKTsoYz10aGlzLm8pJiZhLnB1c2goIiMiLHRmKGMseGYpKTtyZXR1cm4gYS5qb2luKCIiKX07Cl8uaGQucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IF8uaGQodGhpcyksYz0hIWEuaDtjP18uaWQoYixhLmgpOmM9ISFhLnY7aWYoYyl7dmFyIGQ9YS5nZXRVc2VySW5mbygpO2Iudj1kfWVsc2UgYz0hIWEuZztjP2IuZz1hLmc6Yz1hLnUhPW51bGw7ZD1hLmk7aWYoYylfLmpkKGIsYS51KTtlbHNlIGlmKGM9ISFhLmkpe2lmKGQuY2hhckF0KDApIT0iLyIpaWYodGhpcy5nJiYhdGhpcy5pKWQ9Ii8iK2Q7ZWxzZXt2YXIgZT1iLmkubGFzdEluZGV4T2YoIi8iKTtlIT0tMSYmKGQ9Yi5pLnNsaWNlKDAsZSsxKStkKX1lPWQ7aWYoZT09Ii4uInx8ZT09Ii4iKWQ9IiI7ZWxzZSBpZihlLmluZGV4T2YoIi4vIikhPS0xfHxlLmluZGV4T2YoIi8uIikhPS0xKXtkPWUubGFzdEluZGV4T2YoIi8iLDApPT0wO2U9ZS5zcGxpdCgiLyIpO2Zvcih2YXIgZj1bXSxnPTA7ZzxlLmxlbmd0aDspe3ZhciBoPWVbZysrXTtoPT0iLiI/ZCYmZz09ZS5sZW5ndGgmJmYucHVzaCgiIik6aD09CiIuLiI/KChmLmxlbmd0aD4xfHxmLmxlbmd0aD09MSYmZlswXSE9IiIpJiZmLnBvcCgpLGQmJmc9PWUubGVuZ3RoJiZmLnB1c2goIiIpKTooZi5wdXNoKGgpLGQ9ITApfWQ9Zi5qb2luKCIvIil9ZWxzZSBkPWV9Yz9iLmk9ZDpjPWEuai50b1N0cmluZygpIT09IiI7Yz9fLmtkKGIsbGQoYS5qKSk6Yz0hIWEubztjJiYoYi5vPWEubyk7cmV0dXJuIGJ9O18uaWQ9ZnVuY3Rpb24oYSxiLGMpe2EuaD1jP21kKGIsITApOmI7YS5oJiYoYS5oPWEuaC5yZXBsYWNlKC86JC8sIiIpKX07Xy5oZC5wcm90b3R5cGUuZ2V0VXNlckluZm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52fTtfLmpkPWZ1bmN0aW9uKGEsYil7aWYoYil7Yj1OdW1iZXIoYik7aWYoaXNOYU4oYil8fGI8MCl0aHJvdyBFcnJvcigiTGAiK2IpO2EudT1ifWVsc2UgYS51PW51bGx9OwpfLmtkPWZ1bmN0aW9uKGEsYixjKXtiIGluc3RhbmNlb2YgXy5uZD8oYS5qPWIseWYoYS5qLGEubCkpOihjfHwoYj10ZihiLHpmKSksYS5qPW5ldyBfLm5kKGIsYS5sKSl9O18uQWY9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLmhkP25ldyBfLmhkKGEpOm5ldyBfLmhkKGEpfTttZD1mdW5jdGlvbihhLGIpe3JldHVybiBhP2I/ZGVjb2RlVVJJKGEucmVwbGFjZSgvJTI1L2csIiUyNTI1IikpOmRlY29kZVVSSUNvbXBvbmVudChhKToiIn07dGY9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmciPyhhPWVuY29kZVVSSShhKS5yZXBsYWNlKGIsQmYpLGMmJihhPWEucmVwbGFjZSgvJTI1KFswLTlhLWZBLUZdezJ9KS9nLCIlJDEiKSksYSk6bnVsbH07QmY9ZnVuY3Rpb24oYSl7YT1hLmNoYXJDb2RlQXQoMCk7cmV0dXJuIiUiKyhhPj40JjE1KS50b1N0cmluZygxNikrKGEmMTUpLnRvU3RyaW5nKDE2KX07dWY9L1sjXC9cP0BdL2c7d2Y9L1sjXD86XS9nOwp2Zj0vWyNcP10vZzt6Zj0vWyNcP0BdL2c7eGY9LyMvZztfLm5kPWZ1bmN0aW9uKGEsYil7dGhpcy5oPXRoaXMuZz1udWxsO3RoaXMuaT1hfHxudWxsO3RoaXMuaj0hIWJ9O0NmPWZ1bmN0aW9uKGEpe2EuZ3x8KGEuZz1uZXcgTWFwLGEuaD0wLGEuaSYmZ2QoYS5pLGZ1bmN0aW9uKGIsYyl7YS5hZGQoZGVjb2RlVVJJQ29tcG9uZW50KGIucmVwbGFjZSgvXCsvZywiICIpKSxjKX0pKX07Xy5uZC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7Q2YodGhpcyk7dGhpcy5pPW51bGw7YT1EZih0aGlzLGEpO3ZhciBjPXRoaXMuZy5nZXQoYSk7Y3x8dGhpcy5nLnNldChhLGM9W10pO2MucHVzaChiKTt0aGlzLmgrPTE7cmV0dXJuIHRoaXN9O18uRWY9ZnVuY3Rpb24oYSxiKXtDZihhKTtiPURmKGEsYik7YS5nLmhhcyhiKSYmKGEuaT1udWxsLGEuaC09YS5nLmdldChiKS5sZW5ndGgsYS5nLmRlbGV0ZShiKSl9OwpfLm5kLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuZz10aGlzLmk9bnVsbDt0aGlzLmg9MH07dmFyIEZmPWZ1bmN0aW9uKGEsYil7Q2YoYSk7Yj1EZihhLGIpO3JldHVybiBhLmcuaGFzKGIpfTtfLmw9Xy5uZC5wcm90b3R5cGU7Xy5sLmZvckVhY2g9ZnVuY3Rpb24oYSxiKXtDZih0aGlzKTt0aGlzLmcuZm9yRWFjaChmdW5jdGlvbihjLGQpe2MuZm9yRWFjaChmdW5jdGlvbihlKXthLmNhbGwoYixlLGQsdGhpcyl9LHRoaXMpfSx0aGlzKX07Xy5sLlVhPWZ1bmN0aW9uKCl7Q2YodGhpcyk7Zm9yKHZhciBhPUFycmF5LmZyb20odGhpcy5nLnZhbHVlcygpKSxiPUFycmF5LmZyb20odGhpcy5nLmtleXMoKSksYz1bXSxkPTA7ZDxiLmxlbmd0aDtkKyspZm9yKHZhciBlPWFbZF0sZj0wO2Y8ZS5sZW5ndGg7ZisrKWMucHVzaChiW2RdKTtyZXR1cm4gY307Cl8ubC5uYT1mdW5jdGlvbihhKXtDZih0aGlzKTt2YXIgYj1bXTtpZih0eXBlb2YgYT09PSJzdHJpbmciKUZmKHRoaXMsYSkmJihiPWIuY29uY2F0KHRoaXMuZy5nZXQoRGYodGhpcyxhKSkpKTtlbHNle2E9QXJyYXkuZnJvbSh0aGlzLmcudmFsdWVzKCkpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWI9Yi5jb25jYXQoYVtjXSl9cmV0dXJuIGJ9O18ubC5zZXQ9ZnVuY3Rpb24oYSxiKXtDZih0aGlzKTt0aGlzLmk9bnVsbDthPURmKHRoaXMsYSk7RmYodGhpcyxhKSYmKHRoaXMuaC09dGhpcy5nLmdldChhKS5sZW5ndGgpO3RoaXMuZy5zZXQoYSxbYl0pO3RoaXMuaCs9MTtyZXR1cm4gdGhpc307Xy5sLmdldD1mdW5jdGlvbihhLGIpe2lmKCFhKXJldHVybiBiO2E9dGhpcy5uYShhKTtyZXR1cm4gYS5sZW5ndGg+MD9TdHJpbmcoYVswXSk6Yn07Cl8uR2Y9ZnVuY3Rpb24oYSxiLGMpe18uRWYoYSxiKTtjLmxlbmd0aD4wJiYoYS5pPW51bGwsYS5nLnNldChEZihhLGIpLF8uY2IoYykpLGEuaCs9Yy5sZW5ndGgpfTtfLm5kLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe2lmKHRoaXMuaSlyZXR1cm4gdGhpcy5pO2lmKCF0aGlzLmcpcmV0dXJuIiI7Zm9yKHZhciBhPVtdLGI9QXJyYXkuZnJvbSh0aGlzLmcua2V5cygpKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY10sZT1lbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGQpKTtkPXRoaXMubmEoZCk7Zm9yKHZhciBmPTA7ZjxkLmxlbmd0aDtmKyspe3ZhciBnPWU7ZFtmXSE9PSIiJiYoZys9Ij0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZFtmXSkpKTthLnB1c2goZyl9fXJldHVybiB0aGlzLmk9YS5qb2luKCImIil9Owp2YXIgbGQ9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IF8ubmQ7Yi5pPWEuaTthLmcmJihiLmc9bmV3IE1hcChhLmcpLGIuaD1hLmgpO3JldHVybiBifSxEZj1mdW5jdGlvbihhLGIpe2I9U3RyaW5nKGIpO2EuaiYmKGI9Yi50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gYn0seWY9ZnVuY3Rpb24oYSxiKXtiJiYhYS5qJiYoQ2YoYSksYS5pPW51bGwsYS5nLmZvckVhY2goZnVuY3Rpb24oYyxkKXt2YXIgZT1kLnRvTG93ZXJDYXNlKCk7ZCE9ZSYmKF8uRWYodGhpcyxkKSxfLkdmKHRoaXMsZSxjKSl9LGEpKTthLmo9Yn07Xy5IZj10eXBlb2YgQXN5bmNDb250ZXh0IT09InVuZGVmaW5lZCImJnR5cGVvZiBBc3luY0NvbnRleHQuU25hcHNob3Q9PT0iZnVuY3Rpb24iP2Z1bmN0aW9uKGEpe3JldHVybiBhJiZBc3luY0NvbnRleHQuU25hcHNob3Qud3JhcChhKX06ZnVuY3Rpb24oYSl7cmV0dXJuIGF9O18ub2QucHJvdG90eXBlLnU9ITE7Xy5vZC5wcm90b3R5cGUuWGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51fTtfLm9kLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy51fHwodGhpcy51PSEwLHRoaXMuaGEoKSl9O18ub2QucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTtfLm9kLnByb3RvdHlwZS5oYT1mdW5jdGlvbigpe2lmKHRoaXMubylmb3IoO3RoaXMuby5sZW5ndGg7KXRoaXMuby5zaGlmdCgpKCl9O3ZhciBwZD1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT1hO3RoaXMuaD10aGlzLnRhcmdldD1iO3RoaXMuZGVmYXVsdFByZXZlbnRlZD10aGlzLmk9ITF9O3BkLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXt0aGlzLmk9ITB9O3BkLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMH07dmFyIElmPWZ1bmN0aW9uKCl7aWYoIV8udy5hZGRFdmVudExpc3RlbmVyfHwhT2JqZWN0LmRlZmluZVByb3BlcnR5KXJldHVybiExO3ZhciBhPSExLGI9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7YT0hMH19KTt0cnl7dmFyIGM9ZnVuY3Rpb24oKXt9O18udy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixjLGIpO18udy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixjLGIpfWNhdGNoKGQpe31yZXR1cm4gYX0oKTtfLllkKHFkLHBkKTsKcWQucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLnR5cGU9YS50eXBlLGQ9YS5jaGFuZ2VkVG91Y2hlcyYmYS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg/YS5jaGFuZ2VkVG91Y2hlc1swXTpudWxsO3RoaXMudGFyZ2V0PWEudGFyZ2V0fHxhLnNyY0VsZW1lbnQ7dGhpcy5oPWI7Yj1hLnJlbGF0ZWRUYXJnZXQ7Ynx8KGM9PSJtb3VzZW92ZXIiP2I9YS5mcm9tRWxlbWVudDpjPT0ibW91c2VvdXQiJiYoYj1hLnRvRWxlbWVudCkpO3RoaXMucmVsYXRlZFRhcmdldD1iO2Q/KHRoaXMuY2xpZW50WD1kLmNsaWVudFghPT12b2lkIDA/ZC5jbGllbnRYOmQucGFnZVgsdGhpcy5jbGllbnRZPWQuY2xpZW50WSE9PXZvaWQgMD9kLmNsaWVudFk6ZC5wYWdlWSx0aGlzLnNjcmVlblg9ZC5zY3JlZW5YfHwwLHRoaXMuc2NyZWVuWT1kLnNjcmVlbll8fDApOih0aGlzLmo9Xy5uZXx8YS5vZmZzZXRYIT09dm9pZCAwP2Eub2Zmc2V0WDphLmxheWVyWCx0aGlzLmw9Xy5uZXx8YS5vZmZzZXRZIT09CnZvaWQgMD9hLm9mZnNldFk6YS5sYXllclksdGhpcy5jbGllbnRYPWEuY2xpZW50WCE9PXZvaWQgMD9hLmNsaWVudFg6YS5wYWdlWCx0aGlzLmNsaWVudFk9YS5jbGllbnRZIT09dm9pZCAwP2EuY2xpZW50WTphLnBhZ2VZLHRoaXMuc2NyZWVuWD1hLnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPWEuc2NyZWVuWXx8MCk7dGhpcy5idXR0b249YS5idXR0b247dGhpcy5rZXlDb2RlPWEua2V5Q29kZXx8MDt0aGlzLmtleT1hLmtleXx8IiI7dGhpcy5jaGFyQ29kZT1hLmNoYXJDb2RlfHwoYz09ImtleXByZXNzIj9hLmtleUNvZGU6MCk7dGhpcy5jdHJsS2V5PWEuY3RybEtleTt0aGlzLmFsdEtleT1hLmFsdEtleTt0aGlzLnNoaWZ0S2V5PWEuc2hpZnRLZXk7dGhpcy5tZXRhS2V5PWEubWV0YUtleTt0aGlzLnBvaW50ZXJJZD1hLnBvaW50ZXJJZHx8MDt0aGlzLnBvaW50ZXJUeXBlPWEucG9pbnRlclR5cGU7dGhpcy5zdGF0ZT1hLnN0YXRlO3RoaXMuZz1hO2EuZGVmYXVsdFByZXZlbnRlZCYmcWQudWEucHJldmVudERlZmF1bHQuY2FsbCh0aGlzKX07CnFkLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXtxZC51YS5zdG9wUHJvcGFnYXRpb24uY2FsbCh0aGlzKTt0aGlzLmcuc3RvcFByb3BhZ2F0aW9uP3RoaXMuZy5zdG9wUHJvcGFnYXRpb24oKTp0aGlzLmcuY2FuY2VsQnViYmxlPSEwfTtxZC5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXtxZC51YS5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuZzthLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExfTtxZC5wcm90b3R5cGUubz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O3ZhciBKZjtKZj0iY2xvc3VyZV9saXN0ZW5hYmxlXyIrKE1hdGgucmFuZG9tKCkqMUU2fDApO18uS2Y9ZnVuY3Rpb24oYSl7cmV0dXJuISghYXx8IWFbSmZdKX07dmFyIHJkPTA7dmFyIExmPWZ1bmN0aW9uKGEpe2EuYWI9ITA7YS5saXN0ZW5lcj1udWxsO2EucHJveHk9bnVsbDthLnNyYz1udWxsO2EueWE9bnVsbH07dmFyIE5mO3RkLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1hLnRvU3RyaW5nKCk7YT10aGlzLmdbZl07YXx8KGE9dGhpcy5nW2ZdPVtdLHRoaXMuaCsrKTt2YXIgZz1NZihhLGIsZCxlKTtnPi0xPyhiPWFbZ10sY3x8KGIucGI9ITEpKTooYj1uZXcgc2QoYix0aGlzLnNyYyxmLCEhZCxlKSxiLnBiPWMsYS5wdXNoKGIpKTtyZXR1cm4gYn07TmY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnR5cGU7aWYoIShjIGluIGEuZykpcmV0dXJuITE7dmFyIGQ9Xy5iYihhLmdbY10sYik7ZCYmKExmKGIpLGEuZ1tjXS5sZW5ndGg9PTAmJihkZWxldGUgYS5nW2NdLGEuaC0tKSk7cmV0dXJuIGR9O18uT2Y9ZnVuY3Rpb24oYSxiKXtiPWImJmIudG9TdHJpbmcoKTt2YXIgYz0wLGQ7Zm9yKGQgaW4gYS5nKWlmKCFifHxkPT1iKXtmb3IodmFyIGU9YS5nW2RdLGY9MDtmPGUubGVuZ3RoO2YrKykrK2MsTGYoZVtmXSk7ZGVsZXRlIGEuZ1tkXTthLmgtLX19Owp0ZC5wcm90b3R5cGUuVmE9ZnVuY3Rpb24oYSxiLGMsZCl7YT10aGlzLmdbYS50b1N0cmluZygpXTt2YXIgZT0tMTthJiYoZT1NZihhLGIsYyxkKSk7cmV0dXJuIGU+LTE/YVtlXTpudWxsfTt2YXIgTWY9ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPTA7ZTxhLmxlbmd0aDsrK2Upe3ZhciBmPWFbZV07aWYoIWYuYWImJmYubGlzdGVuZXI9PWImJmYuY2FwdHVyZT09ISFjJiZmLnlhPT1kKXJldHVybiBlfXJldHVybi0xfTt2YXIgUGYsUWYsVmYsWmYsYWcsZGcsYmcsY2csZmcsWWY7UGY9ImNsb3N1cmVfbG1fIisoTWF0aC5yYW5kb20oKSoxRTZ8MCk7UWY9e307VmY9MDtfLlhmPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoZCYmZC5vbmNlKXJldHVybiBfLldmKGEsYixjLGQsZSk7aWYoQXJyYXkuaXNBcnJheShiKSl7Zm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspXy5YZihhLGJbZl0sYyxkLGUpO3JldHVybiBudWxsfWM9WWYoYyk7cmV0dXJuIF8uS2YoYSk/YS5NKGIsYyxfLlVkKGQpPyEhZC5jYXB0dXJlOiEhZCxlKTpaZihhLGIsYywhMSxkLGUpfTsKWmY9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2lmKCFiKXRocm93IEVycm9yKCJPIik7dmFyIGc9Xy5VZChlKT8hIWUuY2FwdHVyZTohIWUsaD1fLiRmKGEpO2h8fChhW1BmXT1oPW5ldyB0ZChhKSk7Yz1oLmFkZChiLGMsZCxnLGYpO2lmKGMucHJveHkpcmV0dXJuIGM7ZD1hZygpO2MucHJveHk9ZDtkLnNyYz1hO2QubGlzdGVuZXI9YztpZihhLmFkZEV2ZW50TGlzdGVuZXIpSWZ8fChlPWcpLGU9PT12b2lkIDAmJihlPSExKSxhLmFkZEV2ZW50TGlzdGVuZXIoYi50b1N0cmluZygpLGQsZSk7ZWxzZSBpZihhLmF0dGFjaEV2ZW50KWEuYXR0YWNoRXZlbnQoYmcoYi50b1N0cmluZygpKSxkKTtlbHNlIGlmKGEuYWRkTGlzdGVuZXImJmEucmVtb3ZlTGlzdGVuZXIpYS5hZGRMaXN0ZW5lcihkKTtlbHNlIHRocm93IEVycm9yKCJQIik7VmYrKztyZXR1cm4gY307YWc9ZnVuY3Rpb24oKXt2YXIgYT1jZyxiPWZ1bmN0aW9uKGMpe3JldHVybiBhLmNhbGwoYi5zcmMsYi5saXN0ZW5lcixjKX07cmV0dXJuIGJ9OwpfLldmPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShiKSl7Zm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspXy5XZihhLGJbZl0sYyxkLGUpO3JldHVybiBudWxsfWM9WWYoYyk7cmV0dXJuIF8uS2YoYSk/YS5WYihiLGMsXy5VZChkKT8hIWQuY2FwdHVyZTohIWQsZSk6WmYoYSxiLGMsITAsZCxlKX07ZGc9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGIpKWZvcih2YXIgZj0wO2Y8Yi5sZW5ndGg7ZisrKWRnKGEsYltmXSxjLGQsZSk7ZWxzZSBkPV8uVWQoZCk/ISFkLmNhcHR1cmU6ISFkLGM9WWYoYyksXy5LZihhKT9hLkVhKGIsYyxkLGUpOmEmJihhPV8uJGYoYSkpJiYoYj1hLlZhKGIsYyxkLGUpKSYmXy5lZyhiKX07Cl8uZWc9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PT0ibnVtYmVyInx8IWF8fGEuYWIpcmV0dXJuITE7dmFyIGI9YS5zcmM7aWYoXy5LZihiKSlyZXR1cm4gTmYoYi5pYSxhKTt2YXIgYz1hLnR5cGUsZD1hLnByb3h5O2IucmVtb3ZlRXZlbnRMaXN0ZW5lcj9iLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyxkLGEuY2FwdHVyZSk6Yi5kZXRhY2hFdmVudD9iLmRldGFjaEV2ZW50KGJnKGMpLGQpOmIuYWRkTGlzdGVuZXImJmIucmVtb3ZlTGlzdGVuZXImJmIucmVtb3ZlTGlzdGVuZXIoZCk7VmYtLTsoYz1fLiRmKGIpKT8oTmYoYyxhKSxjLmg9PTAmJihjLnNyYz1udWxsLGJbUGZdPW51bGwpKTpMZihhKTtyZXR1cm4hMH07Ymc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW4gUWY/UWZbYV06UWZbYV09Im9uIithfTsKY2c9ZnVuY3Rpb24oYSxiKXtpZihhLmFiKWE9ITA7ZWxzZXtiPW5ldyBxZChiLHRoaXMpO3ZhciBjPWEubGlzdGVuZXIsZD1hLnlhfHxhLnNyYzthLnBiJiZfLmVnKGEpO2E9Yy5jYWxsKGQsYil9cmV0dXJuIGF9O18uJGY9ZnVuY3Rpb24oYSl7YT1hW1BmXTtyZXR1cm4gYSBpbnN0YW5jZW9mIHRkP2E6bnVsbH07Zmc9Il9fY2xvc3VyZV9ldmVudHNfZm5fIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTtZZj1mdW5jdGlvbihhKXtpZih0eXBlb2YgYT09PSJmdW5jdGlvbiIpcmV0dXJuIGE7YVtmZ118fChhW2ZnXT1mdW5jdGlvbihiKXtyZXR1cm4gYS5oYW5kbGVFdmVudChiKX0pO3JldHVybiBhW2ZnXX07Xy5ZZChfLnVkLF8ub2QpO18udWQucHJvdG90eXBlW0pmXT0hMDtfLmw9Xy51ZC5wcm90b3R5cGU7Xy5sLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5YZih0aGlzLGEsYixjLGQpfTtfLmwucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyxkKXtkZyh0aGlzLGEsYixjLGQpfTsKXy5sLmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz10aGlzLmw7aWYoYylmb3IoYj1bXTtjO2M9Yy5sKWIucHVzaChjKTtjPXRoaXMuQzt2YXIgZD1hLnR5cGV8fGE7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilhPW5ldyBwZChhLGMpO2Vsc2UgaWYoYSBpbnN0YW5jZW9mIHBkKWEudGFyZ2V0PWEudGFyZ2V0fHxjO2Vsc2V7dmFyIGU9YTthPW5ldyBwZChkLGMpO2RkKGEsZSl9ZT0hMDt2YXIgZjtpZihiKWZvcihmPWIubGVuZ3RoLTE7IWEuaSYmZj49MDtmLS0pe3ZhciBnPWEuaD1iW2ZdO2U9Z2coZyxkLCEwLGEpJiZlfWEuaXx8KGc9YS5oPWMsZT1nZyhnLGQsITAsYSkmJmUsYS5pfHwoZT1nZyhnLGQsITEsYSkmJmUpKTtpZihiKWZvcihmPTA7IWEuaSYmZjxiLmxlbmd0aDtmKyspZz1hLmg9YltmXSxlPWdnKGcsZCwhMSxhKSYmZTtyZXR1cm4gZX07Cl8ubC5oYT1mdW5jdGlvbigpe18udWQudWEuaGEuY2FsbCh0aGlzKTt0aGlzLmlhJiZfLk9mKHRoaXMuaWEpO3RoaXMubD1udWxsfTtfLmwuTT1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5pYS5hZGQoU3RyaW5nKGEpLGIsITEsYyxkKX07Xy5sLlZiPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmlhLmFkZChTdHJpbmcoYSksYiwhMCxjLGQpfTtfLmwuRWE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcy5pYTthPVN0cmluZyhhKS50b1N0cmluZygpO2lmKGEgaW4gZS5nKXt2YXIgZj1lLmdbYV07Yj1NZihmLGIsYyxkKTtiPi0xJiYoTGYoZltiXSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGYsYiwxKSxmLmxlbmd0aD09MCYmKGRlbGV0ZSBlLmdbYV0sZS5oLS0pKX19Owp2YXIgZ2c9ZnVuY3Rpb24oYSxiLGMsZCl7Yj1hLmlhLmdbU3RyaW5nKGIpXTtpZighYilyZXR1cm4hMDtiPWIuY29uY2F0KCk7Zm9yKHZhciBlPSEwLGY9MDtmPGIubGVuZ3RoOysrZil7dmFyIGc9YltmXTtpZihnJiYhZy5hYiYmZy5jYXB0dXJlPT1jKXt2YXIgaD1nLmxpc3RlbmVyLGs9Zy55YXx8Zy5zcmM7Zy5wYiYmTmYoYS5pYSxnKTtlPWguY2FsbChrLGQpIT09ITEmJmV9fXJldHVybiBlJiYhZC5kZWZhdWx0UHJldmVudGVkfTtfLnVkLnByb3RvdHlwZS5WYT1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5pYS5WYShTdHJpbmcoYSksYixjLGQpfTtfLmhnPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxMDApO2Zvcih2YXIgaWc9W10samc9MDtqZzw2MztqZysrKWlnW2pnXT0wO18ua2c9W10uY29uY2F0KDEyOCxpZyk7dmFyIGxnO2xnPWZ1bmN0aW9uKGEpe3JldHVybihhPWEuZXhlYyhfLkNhKCkpKT9hWzFdOiIifTtfLm1nPWZ1bmN0aW9uKCl7aWYodWUpcmV0dXJuIGxnKC9GaXJlZm94XC8oWzAtOS5dKykvKTtpZihfLmtlfHxsZXx8amUpcmV0dXJuIHRlO2lmKHllKXtpZihfLllhKCl8fF8uWmEoKSl7dmFyIGE9bGcoL0NyaU9TXC8oWzAtOS5dKykvKTtpZihhKXJldHVybiBhfXJldHVybiBsZygvQ2hyb21lXC8oWzAtOS5dKykvKX1pZih6ZSYmIV8uWWEoKSlyZXR1cm4gbGcoL1ZlcnNpb25cLyhbMC05Ll0rKS8pO2lmKHZlfHx3ZSl7aWYoYT0vVmVyc2lvblwvKFxTKykuKk1vYmlsZVwvKFxTKykvLmV4ZWMoXy5DYSgpKSlyZXR1cm4gYVsxXSsiLiIrYVsyXX1lbHNlIGlmKHhlKXJldHVybihhPWxnKC9BbmRyb2lkXHMrKFswLTkuXSspLykpP2E6bGcoL1ZlcnNpb25cLyhbMC05Ll0rKS8pO3JldHVybiIifSgpO18udmQ9d2luZG93O18uWWQoXy5FZCxfLm9kKTt2YXIgbmc9W107Xy5FZC5wcm90b3R5cGUuTT1mdW5jdGlvbihhLGIsYyxkKXtBcnJheS5pc0FycmF5KGIpfHwoYiYmKG5nWzBdPWIudG9TdHJpbmcoKSksYj1uZyk7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDtlKyspe3ZhciBmPV8uWGYoYSxiW2VdLGN8fHRoaXMuaGFuZGxlRXZlbnQsZHx8ITEsdGhpcy5ofHx0aGlzKTtpZighZilicmVhazt0aGlzLmdbZi5rZXldPWZ9cmV0dXJuIHRoaXN9O18uRWQucHJvdG90eXBlLlZiPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBvZyh0aGlzLGEsYixjLGQpfTt2YXIgb2c9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2lmKEFycmF5LmlzQXJyYXkoYykpZm9yKHZhciBnPTA7ZzxjLmxlbmd0aDtnKyspb2coYSxiLGNbZ10sZCxlLGYpO2Vsc2V7Yj1fLldmKGIsYyxkfHxhLmhhbmRsZUV2ZW50LGUsZnx8YS5ofHxhKTtpZighYilyZXR1cm4gYTthLmdbYi5rZXldPWJ9cmV0dXJuIGF9OwpfLkVkLnByb3RvdHlwZS5FYT1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspdGhpcy5FYShhLGJbZl0sYyxkLGUpO2Vsc2UgYz1jfHx0aGlzLmhhbmRsZUV2ZW50LGQ9Xy5VZChkKT8hIWQuY2FwdHVyZTohIWQsZT1lfHx0aGlzLmh8fHRoaXMsYz1ZZihjKSxkPSEhZCxiPV8uS2YoYSk/YS5WYShiLGMsZCxlKTphPyhhPV8uJGYoYSkpP2EuVmEoYixjLGQsZSk6bnVsbDpudWxsLGImJihfLmVnKGIpLGRlbGV0ZSB0aGlzLmdbYi5rZXldKX07dmFyIHBnPWZ1bmN0aW9uKGEpe2JkKGEuZyxmdW5jdGlvbihiLGMpe3RoaXMuZy5oYXNPd25Qcm9wZXJ0eShjKSYmXy5lZyhiKX0sYSk7YS5nPXt9fTtfLkVkLnByb3RvdHlwZS5oYT1mdW5jdGlvbigpe18uRWQudWEuaGEuY2FsbCh0aGlzKTtwZyh0aGlzKX07Xy5FZC5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiVSIpO307Xy5ZZChfLkdkLF8udWQpO18uR2QucHJvdG90eXBlLmg9ITE7Xy5HZC5wcm90b3R5cGUuZz1udWxsO18uR2QucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtpZih0aGlzLmgpe3ZhciBhPURhdGUubm93KCktdGhpcy5CO2E+MCYmYTx0aGlzLmoqLjg/dGhpcy5nPXRoaXMuaS5zZXRUaW1lb3V0KHRoaXMudix0aGlzLmotYSk6KHRoaXMuZyYmKHRoaXMuaS5jbGVhclRpbWVvdXQodGhpcy5nKSx0aGlzLmc9bnVsbCksdGhpcy5kaXNwYXRjaEV2ZW50KCJ0aWNrIiksdGhpcy5oJiYoXy5xZyh0aGlzKSx0aGlzLnN0YXJ0KCkpKX19O18uR2QucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7dGhpcy5oPSEwO3RoaXMuZ3x8KHRoaXMuZz10aGlzLmkuc2V0VGltZW91dCh0aGlzLnYsdGhpcy5qKSx0aGlzLkI9RGF0ZS5ub3coKSl9O18ucWc9ZnVuY3Rpb24oYSl7YS5oPSExO2EuZyYmKGEuaS5jbGVhclRpbWVvdXQoYS5nKSxhLmc9bnVsbCl9OwpfLkdkLnByb3RvdHlwZS5oYT1mdW5jdGlvbigpe18uR2QudWEuaGEuY2FsbCh0aGlzKTtfLnFnKHRoaXMpO2RlbGV0ZSB0aGlzLml9O18ucmc9ZnVuY3Rpb24oYSxiKXt0aGlzLmw9Yi5hdXRoX3VybHx8Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi92Mi9hdXRoIjt0aGlzLnU9Xy5EZChhLGIpO3RoaXMuZXJyb3JfY2FsbGJhY2s9Yi5lcnJvcl9jYWxsYmFjazt0aGlzLm89dm9pZCAwO3RoaXMuaj1hO3RoaXMudj0hMX07Xy5yZy5wcm90b3R5cGUuaT1mdW5jdGlvbigpe3RoaXMuaCYmKF8ucWcodGhpcy5oKSxfLkUoIlBvcHVwIHRpbWVyIHN0b3BwZWQuIiwiT0FVVEgyX0NMSUVOVCIpLHRoaXMuaD12b2lkIDAsdGhpcy5CPSEwKX07Cl8uc2c9ZnVuY3Rpb24oYSl7YS52fHwoYS52PSEwLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbihiKXt0cnl7aWYoYi5kYXRhKWlmKGIub3JpZ2luIT09Xy5mZChhLmwpKV8uRigiTWVzc2FnZSBpZ25vcmVkLiBEaWZmZXJlbnQgb3JpZ2luLiIsIk9BVVRIMl9DTElFTlQiKTtlbHNle3ZhciBjPUpTT04ucGFyc2UoYi5kYXRhKS5wYXJhbXM7Yz9hLm8mJmMuaWQ9PT1hLm8/Yy5jbGllbnRJZCE9PWEudS5jbGllbnRfaWQ/Xy5GKCJNZXNzYWdlIGlnbm9yZWQuIENsaWVudCBpZCBkb2VzIG5vdCBtYXRjaC4iLCJPQVVUSDJfQ0xJRU5UIik6Yy50eXBlIT09ImF1dGhSZXN1bHQiP18uRigiTWVzc2FnZSBpZ25vcmVkLiBJbnZhbGlkIGV2ZW50IHR5cGUuIiwiT0FVVEgyX0NMSUVOVCIpOihhLm89dm9pZCAwLGEuaShjLmF1dGhSZXN1bHQpKTpfLkYoIk1lc3NhZ2UgaWdub3JlZC4gUmVxdWVzdCBpZCBkb2VzIG5vdCBtYXRjaC4iLCJPQVVUSDJfQ0xJRU5UIik6Xy5GKCJNZXNzYWdlIGlnbm9yZWQuIE5vIHBhcmFtcyBpbiBtZXNzYWdlLiIsCiJPQVVUSDJfQ0xJRU5UIil9ZWxzZSBfLkYoIk1lc3NhZ2UgaWdub3JlZC4gTm8gZXZlbnQgZGF0YS4iLCJPQVVUSDJfQ0xJRU5UIil9Y2F0Y2goZCl7Xy5GKCJNZXNzYWdlIGlnbm9yZWQuIEVycm9yIGluIHBhcnNpbmcgZXZlbnQgZGF0YS4iLCJPQVVUSDJfQ0xJRU5UIil9fSwhMSkpfTtfLnRnPWZ1bmN0aW9uKGEsYil7YS5vPSJhdXRoIitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMUU2KzEpO3ZhciBjPWxvY2F0aW9uLnByb3RvY29sLGQ9bG9jYXRpb24uaG9zdCxlPWMuaW5kZXhPZigiOiIpO2U+MCYmKGM9Yy5zdWJzdHJpbmcoMCxlKSk7Yz1bInN0b3JhZ2VyZWxheTovLyIsYywiLyIsZCwiPyJdO2MucHVzaCgiaWQ9IithLm8pO2IucmVkaXJlY3RfdXJpPWMuam9pbigiIil9OwpfLnVnPWZ1bmN0aW9uKGEpe2EuZXJyb3JfY2FsbGJhY2smJmEuZyYmIWEuaCYmKF8uRigiU3RhcnRpbmcgcG9wdXAgdGltZXIuIiwiT0FVVEgyX0NMSUVOVCIpLGEuQj0hMSxhLmg9bmV3IF8uR2QoNTAwKSwobmV3IF8uRWQoYSkpLk0oYS5oLCJ0aWNrIixhLkMpLGEuaC5zdGFydCgpKX07Xy5yZy5wcm90b3R5cGUuQz1mdW5jdGlvbigpe18uRSgiQ2hlY2tpbmcgcG9wdXAgY2xvc2VkLiIsIk9BVVRIMl9DTElFTlQiKTshdGhpcy5ofHx0aGlzLkJ8fHRoaXMuZyYmIXRoaXMuZy5jbG9zZWR8fChfLkYoIlBvcHVwIHdpbmRvdyBjbG9zZWQuIiwiT0FVVEgyX0NMSUVOVCIpLHRoaXMuZXJyb3JfY2FsbGJhY2smJnRoaXMuZXJyb3JfY2FsbGJhY2sobmV3IF8uQ2QoIlBvcHVwIHdpbmRvdyBjbG9zZWQiLCJwb3B1cF9jbG9zZWQiKSksXy5xZyh0aGlzLmgpLHRoaXMuZz10aGlzLmg9dm9pZCAwKX07dmFyIElkPV8ud2QoKTsKXy5QKCJkaXNhYmxlX2ZlZGNtX29wdF9vdXQiKTsKXy5QKCJlbmFibGVfYnJvd3Npbmdfc2Vzc2lvbl9pZCIpOwpfLlAoImVuYWJsZV9naXNfb2F1dGhfYnV0dG9uX2Zsb3dfcG9wdXAiKTsKXy5QKCJlbmFibGVfZ2lzX29hdXRoX2J1dHRvbl9mbG93X3JlZGlyZWN0Iik7Cl8uUCgiZW5hYmxlX2hlbHBfY2VudGVyX3VybCIpOwpfLlAoImVuYWJsZV9pbnRlcm1lZGlhdGVfaWZyYW1lIik7Cl8uUCgiZW5hYmxlX2l0cF9zdXBwb3J0X2luX29hdXRoIik7Cl8ucGYoImVuYWJsZV9pdHBfb3B0aW1pemF0aW9uIiwyNCk7Cl8uUCgiZW5hYmxlX3RyYW5zZm9ybV9mbG93X2Zvcl9hdXRoeiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgVmcsV2csWGcsWWcsY2gsZGgsZWgsaGgsb2gsVWcscGgscWgsc2gsa2gsbGgsd2gseWgseGgsYmgsYWgsWmcsJGc7ClZnPWZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gbmV3IFVnKF8ub2IoYSksYik7aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gbmV3IFVnKG5ldyBVaW50OEFycmF5KGEpLGIpO2lmKGEuY29uc3RydWN0b3I9PT1VaW50OEFycmF5KXJldHVybiBuZXcgVWcoYSwhMSk7aWYoYS5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyKXJldHVybiBhPW5ldyBVaW50OEFycmF5KGEpLG5ldyBVZyhhLCExKTtpZihhLmNvbnN0cnVjdG9yPT09Xy5jYylyZXR1cm4gYj1fLkNlKGEpfHxuZXcgVWludDhBcnJheSgwKSxuZXcgVWcoYiwhMCxhKTtpZihhIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gYT1hLmNvbnN0cnVjdG9yPT09VWludDhBcnJheT9hOm5ldyBVaW50OEFycmF5KGEuYnVmZmVyLGEuYnl0ZU9mZnNldCxhLmJ5dGVMZW5ndGgpLG5ldyBVZyhhLCExKTt0aHJvdyBFcnJvcigpO307V2c9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiciIpO307ClhnPWZ1bmN0aW9uKGEsYil7Yj1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYik7cmV0dXJuIGE9PW51bGw/YjphK2J9O1lnPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWMuZzthW2JdPWQ/ZnVuY3Rpb24oZixnLGgpe3JldHVybiBlKGYsZyxoLGQpfTplfTsKY2g9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpc1taZ10sZj10aGlzWyRnXSxnPV8uaWModm9pZCAwLGUuWWEpLGg9Xy5VYihhKTtpZihoKXt2YXIgaz0hMSxtPWUuT2I7aWYobSl7ZT1mdW5jdGlvbih4LHksQyl7aWYoQy5sZW5ndGghPT0wKWlmKG1beV0pZm9yKHg9Xy51KEMpLHk9eC5uZXh0KCk7IXkuZG9uZTt5PXgubmV4dCgpKXt5PWFoKHkudmFsdWUpO3RyeXtrPSEwLGYoZyx5KX1maW5hbGx5e2JoKHkpfX1lbHNlIGQ9PW51bGx8fGQoYSx5LEMpfTtpZihiPT1udWxsKWguc2IoZSk7ZWxzZSBpZihoIT1udWxsKXt2YXIgbj1oW2JdO24mJmUoaCxiLG4pfWlmKGspe3ZhciBxPWFbXy5BXXwwO2lmKHEmMiYmcSYyMDQ4JiYoYz09bnVsbHx8IWMudmUpKXRocm93IEVycm9yKCk7dmFyIHA9cSYxMjg/Xy5MYzp2b2lkIDAscj1mdW5jdGlvbih4LHkpe2lmKF8udWMoYSx4LHApIT1udWxsKXN3aXRjaChjPT1udWxsP3ZvaWQgMDpjLmVmKXtjYXNlIDE6cmV0dXJuO2RlZmF1bHQ6dGhyb3cgRXJyb3IoKTsKfXkhPW51bGwmJihxPV8udGMoYSxxLHgseSxwKSk7ZGVsZXRlIGhbeF19O2I9PW51bGw/Xy5BYihnLGdbXy5BXXwwLGZ1bmN0aW9uKHgseSl7cih4LHkpfSk6cihiLF8udWMoZyxiLHApKX19fX07ZGg9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1jLmcsZyxoO2FbYl09ZnVuY3Rpb24oayxtLG4pe3JldHVybiBmKGssbSxuLGh8fChoPV8uSGMoWmcsWWcsZGgsZCkuWWEpLGd8fChnPWVoKGQpKSxlKX19OwplaD1mdW5jdGlvbihhKXt2YXIgYj1hWyRnXTtpZihiIT1udWxsKXJldHVybiBiO3ZhciBjPV8uSGMoWmcsWWcsZGgsYSk7Yj1jLlpjP2Z1bmN0aW9uKGQsZSl7cmV0dXJuKDAsXy5FYykoZCxlLGMpfTpmdW5jdGlvbihkLGUpe2E6e2ZoKCk7dHJ5e2Zvcig7Z2goZSkmJmUuaCE9NDspe3ZhciBmPWUuaSxnPWNbZl07aWYoZz09bnVsbCl7dmFyIGg9Yy5PYjtpZihoKXt2YXIgaz1oW2ZdO2lmKGspe3ZhciBtPWhoKGspO20hPW51bGwmJihnPWNbZl09bSl9fX1pZihnPT1udWxsfHwhZyhlLGQsZikpe3ZhciBuPWUscT1uLmo7aWgobik7dmFyIHA9bjtpZihwLkpiKXZhciByPXZvaWQgMDtlbHNle3ZhciB4PXAuZy5nLXE7cC5nLmc9cTtuPXZvaWQgMDt2YXIgeT1wLmc7cD14O2lmKHA9PTApcj1fLmpoKCk7ZWxzZXt2YXIgQz1raCh5LHApO2lmKHkubGImJnkubCluPXkuaC5zdWJhcnJheShDLEMrcCk7ZWxzZXt2YXIga2E9eS5oO3A9QytwO249Qz09PXA/bmV3IFVpbnQ4QXJyYXkoMCk6Xy5QZT8Ka2Euc2xpY2UoQyxwKTpuZXcgVWludDhBcnJheShrYS5zdWJhcnJheShDLHApKX1yPW4ubGVuZ3RoPT0wP18uamgoKTpuZXcgXy5jYyhuLF8uQmUpfX12YXIgbmE9cD1uPXZvaWQgMCxBYT1kLGtiPWYsUmY9cjtSZiYmKChuPShwPShuYT1BYVtfLlRiXSkhPW51bGw/bmE6QWFbXy5UYl09bmV3IF8uWWIpW2tiXSkhPW51bGw/bjpwW2tiXT1bXSkucHVzaChSZil9fXZhciBTZj1fLlViKGQpO1NmJiYoU2YuY2M9Yy5IZFtfLmZmXSk7dmFyIFRmPSEwO2JyZWFrIGF9Y2F0Y2goVWYpe2lmKFVmIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7dGhyb3cgVWY7fWZpbmFsbHl7bGg+MCYmbGgtLX1UZj12b2lkIDB9cmV0dXJuIFRmfTthWyRnXT1iO2FbXy5mZl09Y2guYmluZChhKTtyZXR1cm4gYn07CmhoPWZ1bmN0aW9uKGEpe2E9Xy5KYyhhKTt2YXIgYj1hWzBdLmc7aWYoYT1hWzFdKXt2YXIgYz1laChhKSxkPV8uSGMoWmcsWWcsZGgsYSkuWWE7cmV0dXJuIGZ1bmN0aW9uKGUsZixnKXtyZXR1cm4gYihlLGYsZyxkLGMpfX1yZXR1cm4gYn07Xy5taD1mdW5jdGlvbihhLGIpe3JldHVybiBmdW5jdGlvbihjLGQpe2E6e3ZhciBlPXt4YjohMH07ZCYmT2JqZWN0LmFzc2lnbihlLGQpO2M9YWgoYyx2b2lkIDAsdm9pZCAwLGUpO3RyeXt2YXIgZj1uZXcgYSxnPWYuQTtlaChiKShnLGMpO3ZhciBoPWY7YnJlYWsgYX1jYXRjaChrKXtpZihrIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7dGhyb3cgazt9ZmluYWxseXtiaChjKX1oPXZvaWQgMH1yZXR1cm4gaH19OwpfLm5oPWZ1bmN0aW9uKGEpe3N3aXRjaChfLk8oYSwxKSl7Y2FzZSAxOl8uSCgiVGhlIHNwZWNpZmllZCB1c2VyIGlzIG5vdCBzaWduZWQgaW4uIik7YnJlYWs7Y2FzZSAyOl8uSCgiVXNlciBoYXMgb3B0ZWQgb3V0IG9mIHVzaW5nIEdvb2dsZSBTaWduIEluLiIpO2JyZWFrO2Nhc2UgMzpfLkgoIlRoZSBnaXZlbiBjbGllbnQgSUQgaXMgbm90IGZvdW5kLiIpO2JyZWFrO2Nhc2UgNDpfLkgoIlRoZSBnaXZlbiBjbGllbnQgSUQgaXMgbm90IGFsbG93ZWQgdG8gdXNlIEdvb2dsZSBTaWduIEluLiIpO2JyZWFrO2Nhc2UgNTpfLkgoIlRoZSBnaXZlbiBvcmlnaW4gaXMgbm90IGFsbG93ZWQgZm9yIHRoZSBnaXZlbiBjbGllbnQgSUQuIik7YnJlYWs7Y2FzZSAyMDpfLkgoIlRoZSBnaXZlbiBsb2dpbl91cmkgaXMgbm90IGFsbG93ZWQgZm9yIHRoZSBnaXZlbiBjbGllbnQgSUQuIik7YnJlYWs7Y2FzZSA2Ol8uSCgiUmVxdWVzdCBmcm9tIHRoZSBzYW1lIG9yaWdpbiBpcyBleHBlY3RlZC4iKTsKYnJlYWs7Y2FzZSA3Ol8uSCgiR29vZ2xlIFNpZ24gSW4gaXMgb25seSBhbGxvd2VkIHdpdGggSFRUUFMuIik7YnJlYWs7Y2FzZSA4Ol8uSCgiUGFyYW1ldGVyICIrXy5OKGEsMikrIiBpcyBub3Qgc2V0IGNvcnJlY3RseS4iKTticmVhaztjYXNlIDk6Xy5IKCJUaGUgYnJvd3NlciBpcyBub3Qgc3VwcG9ydGVkLiIpO2JyZWFrO2Nhc2UgMTI6Xy5IKCJHb29nbGUgU2lnbiBJbiBkb2VzIG5vdCBzdXBwb3J0IHdlYiB2aWV3LiIpO2JyZWFrO2Nhc2UgMTQ6Xy5IKCJUaGUgY2xpZW50IGlzIHJlc3RyaWN0ZWQgdG8gYWNjb3VudHMgd2l0aGluIGl0cyBvcmdhbml6YXRpb24uIik7YnJlYWs7ZGVmYXVsdDpfLkgoIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQuIil9fTtfLmNjPWZ1bmN0aW9uKGEsYil7aWYoYiE9PV8uQmUpdGhyb3cgRXJyb3IoInciKTt0aGlzLmc9YTtpZihhIT1udWxsJiZhLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoInYiKTt9OwpfLmpoPWZ1bmN0aW9uKCl7cmV0dXJuIG9ofHwob2g9bmV3IF8uY2MobnVsbCxfLkJlKSl9O1VnPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmJ1ZmZlcj1hO2lmKGMmJiFiKXRocm93IEVycm9yKCk7dGhpcy5nPWJ9O3BoPXZvaWQgMDtfLlliPWZ1bmN0aW9uKCl7fTtfLlliLnByb3RvdHlwZS5zYj1mdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gdGhpcykhaXNOYU4oYikmJmEodGhpcywrYix0aGlzW2JdKX07Xy5ZYi5wcm90b3R5cGUuZz1mdW5jdGlvbigpe3ZhciBhPW5ldyBfLlliO3RoaXMuc2IoZnVuY3Rpb24oYixjLGQpe2FbY109Xy5JYihkKX0pO2EuY2M9dGhpcy5jYztyZXR1cm4gYX07CnZhciByaD1bXSx0aD1mdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPWEuZyxkPWMrMTAsZT1hLmg7YzxkOyl7dmFyIGY9ZVtjKytdO2J8PWY7aWYoKGYmMTI4KT09PTApcmV0dXJuIHNoKGEsYyksISEoYiYxMjcpfXRocm93IEVycm9yKCk7fSx1aD1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLmg9bnVsbDt0aGlzLmw9ITE7dGhpcy5nPXRoaXMuaT10aGlzLmo9MDt0aGlzLmluaXQoYSxiLGMsZCl9O3VoLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWQ9PT12b2lkIDA/e306ZDtkPWUubGI9PT12b2lkIDA/ITE6ZS5sYjtlPWUueGI9PT12b2lkIDA/ITE6ZS54Yjt0aGlzLmxiPWQ7dGhpcy54Yj1lO2EmJihhPVZnKGEsdGhpcy54YiksdGhpcy5oPWEuYnVmZmVyLHRoaXMubD1hLmcsdGhpcy5qPWJ8fDAsdGhpcy5pPWMhPT12b2lkIDA/dGhpcy5qK2M6dGhpcy5oLmxlbmd0aCx0aGlzLmc9dGhpcy5qKX07CnVoLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuaD1udWxsO3RoaXMubD0hMTt0aGlzLmc9dGhpcy5pPXRoaXMuaj0wO3RoaXMubGI9ITF9O3VoLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZz10aGlzLmp9O3NoPWZ1bmN0aW9uKGEsYil7YS5nPWI7aWYoYj5hLmkpdGhyb3cgRXJyb3IoKTt9O2toPWZ1bmN0aW9uKGEsYil7aWYoYjwwKXRocm93IEVycm9yKCk7dmFyIGM9YS5nO2I9YytiO2lmKGI+YS5pKXRocm93IEVycm9yKCk7YS5nPWI7cmV0dXJuIGN9OwpfLnZoPWZ1bmN0aW9uKGEpe3ZhciBiPWEuaCxjPWEuZyxkPWJbYysrXSxlPWQmMTI3O2lmKGQmMTI4JiYoZD1iW2MrK10sZXw9KGQmMTI3KTw8NyxkJjEyOCYmKGQ9YltjKytdLGV8PShkJjEyNyk8PDE0LGQmMTI4JiYoZD1iW2MrK10sZXw9KGQmMTI3KTw8MjEsZCYxMjgmJihkPWJbYysrXSxlfD1kPDwyOCxkJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCkpKSkpdGhyb3cgRXJyb3IoKTtzaChhLGMpO3JldHVybiBlfTtsaD0wO3doPVtdO3loPWZ1bmN0aW9uKGEsYixjLGQpe2lmKHJoLmxlbmd0aCl7dmFyIGU9cmgucG9wKCk7ZS5pbml0KGEsYixjLGQpO2E9ZX1lbHNlIGE9bmV3IHVoKGEsYixjLGQpO3RoaXMuZz1hO3RoaXMuaj10aGlzLmcuZzt0aGlzLmg9dGhpcy5pPS0xO3hoKHRoaXMsZCl9O3hoPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7YS5KYj1iLkpiPT09dm9pZCAwPyExOmIuSmJ9OwpiaD1mdW5jdGlvbihhKXthLmcuY2xlYXIoKTthLmk9LTE7YS5oPS0xO3doLmxlbmd0aDwxMDAmJndoLnB1c2goYSl9O3loLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZy5yZXNldCgpO3RoaXMuaj10aGlzLmcuZzt0aGlzLmg9dGhpcy5pPS0xfTsKdmFyIGdoPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZztpZihiLmc9PWIuaSlyZXR1cm4hMTthLmo9YS5nLmc7dmFyIGM9Xy52aChhLmcpPj4+MDtiPWM+Pj4zO2MmPTc7aWYoIShjPj0wJiZjPD01KSl0aHJvdyBFcnJvcigpO2lmKGI8MSl0aHJvdyBFcnJvcigpO2EuaT1iO2EuaD1jO3JldHVybiEwfSxmaD1mdW5jdGlvbigpe2lmKGxoPj0xMDApdGhyb3cgbmV3IFN5bnRheEVycm9yO2xoKyt9LGloPWZ1bmN0aW9uKGEpe3RyeXtzd2l0Y2goYS5oKXtjYXNlIDA6YS5oIT0wP2loKGEpOnRoKGEuZyk7YnJlYWs7Y2FzZSAxOnZhciBiPWEuZztzaChiLGIuZys4KTticmVhaztjYXNlIDI6aWYoYS5oIT0yKWloKGEpO2Vsc2V7dmFyIGM9Xy52aChhLmcpPj4+MCxkPWEuZztzaChkLGQuZytjKX1icmVhaztjYXNlIDU6dmFyIGU9YS5nO3NoKGUsZS5nKzQpO2JyZWFrO2Nhc2UgMzpmaCgpO3ZhciBmPWEuaTt0cnl7ZG97aWYoIWdoKGEpKXRocm93IEVycm9yKCk7aWYoYS5oPT00KXtpZihhLmkhPWYpdGhyb3cgRXJyb3IoKTsKYnJlYWt9aWgoYSl9d2hpbGUoMSl9Y2F0Y2goZyl7aWYoZyBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IGc7fWZpbmFsbHl7bGg+MCYmbGgtLX1icmVhaztkZWZhdWx0OnRocm93IEVycm9yKCk7fX1jYXRjaChnKXtpZihnIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7dGhyb3cgZzt9fTt5aC5wcm90b3R5cGUubD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZy5pLGQ9Xy52aCh0aGlzLmcpPj4+MDtkPXRoaXMuZy5nK2Q7dmFyIGU9ZC1jO2U8PTAmJih0aGlzLmcuaT1kLGIoYSx0aGlzLHZvaWQgMCx2b2lkIDAsdm9pZCAwKSxlPWQtdGhpcy5nLmcpO2lmKGUpdGhyb3cgRXJyb3IoKTt0aGlzLmcuZz1kO3RoaXMuZy5pPWN9O3loLnByb3RvdHlwZS51PWZ1bmN0aW9uKCl7cmV0dXJuIHRoKHRoaXMuZyl9O3loLnByb3RvdHlwZS52PWZ1bmN0aW9uKCl7cmV0dXJuIF8udmgodGhpcy5nKX07CnloLnByb3RvdHlwZS5vPWZ1bmN0aW9uKCl7dmFyIGE9Xy52aCh0aGlzLmcpPj4+MCxiPXRoaXMuZyxjPWtoKGIsYSk7Yj1iLmg7aWYoXy5aZCl7dmFyIGQ9YixlOyhlPXFoKXx8KGU9cWg9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIse2ZhdGFsOiEwfSkpO2I9YythO2Q9Yz09PTAmJmI9PT1kLmxlbmd0aD9kOmQuc3ViYXJyYXkoYyxiKTt0cnl7dmFyIGY9ZS5kZWNvZGUoZCl9Y2F0Y2gobSl7aWYocGg9PT12b2lkIDApe3RyeXtlLmRlY29kZShuZXcgVWludDhBcnJheShbMTI4XSkpfWNhdGNoKG4pe310cnl7ZS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzk3XSkpLHBoPSEwfWNhdGNoKG4pe3BoPSExfX0hcGgmJihxaD12b2lkIDApO3Rocm93IG07fX1lbHNle2E9YythO2Y9W107Zm9yKHZhciBnPW51bGwsaCxrO2M8YTspaD1iW2MrK10saDwxMjg/Zi5wdXNoKGgpOmg8MjI0P2M+PWE/V2coKTooaz1iW2MrK10saDwxOTR8fChrJjE5MikhPT0xMjg/KGMtLSxXZygpKTpmLnB1c2goKGgmMzEpPDwKNnxrJjYzKSk6aDwyNDA/Yz49YS0xP1dnKCk6KGs9YltjKytdLChrJjE5MikhPT0xMjh8fGg9PT0yMjQmJms8MTYwfHxoPT09MjM3JiZrPj0xNjB8fCgoZT1iW2MrK10pJjE5MikhPT0xMjg/KGMtLSxXZygpKTpmLnB1c2goKGgmMTUpPDwxMnwoayY2Myk8PDZ8ZSY2MykpOmg8PTI0ND9jPj1hLTI/V2coKTooaz1iW2MrK10sKGsmMTkyKSE9PTEyOHx8KGg8PDI4KSsoay0xNDQpPj4zMCE9PTB8fCgoZT1iW2MrK10pJjE5MikhPT0xMjh8fCgoZD1iW2MrK10pJjE5MikhPT0xMjg/KGMtLSxXZygpKTooaD0oaCY3KTw8MTh8KGsmNjMpPDwxMnwoZSY2Myk8PDZ8ZCY2MyxoLT02NTUzNixmLnB1c2goKGg+PjEwJjEwMjMpKzU1Mjk2LChoJjEwMjMpKzU2MzIwKSkpOldnKCksZi5sZW5ndGg+PTgxOTImJihnPVhnKGcsZiksZi5sZW5ndGg9MCk7Zj1YZyhnLGYpfXJldHVybiBmfTsKYWg9ZnVuY3Rpb24oYSxiLGMsZCl7aWYod2gubGVuZ3RoKXt2YXIgZT13aC5wb3AoKTt4aChlLGQpO2UuZy5pbml0KGEsYixjLGQpO3JldHVybiBlfXJldHVybiBuZXcgeWgoYSxiLGMsZCl9O1pnPVN5bWJvbCgpOyRnPVN5bWJvbCgpO18uemg9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKF8uemgsXy5EKTtfLkFoPWZ1bmN0aW9uKCl7fTtfLkFoLnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy5nYSYmd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLmdhJiZiLmdhKGEpfSwxMDApfTtfLkJoPWZ1bmN0aW9uKGEsYixjKXtjIT09dm9pZCAwJiYoYi5kZXRhaWw9Yyk7YS5SKGIpfTtfLkNoPWZ1bmN0aW9uKGEsYixjKXtfLkJoKGEse3RpbWVzdGFtcDoobmV3IERhdGUpLmdldFRpbWUoKSx0eXBlOiJ1aV9jaGFuZ2UiLHVpQWN0aXZpdHlUeXBlOmJ9LGMpfTtfLkRoPWZ1bmN0aW9uKGEsYixjKXtfLkJoKGEse3RpbWVzdGFtcDoobmV3IERhdGUpLmdldFRpbWUoKSx0eXBlOiJlcnJvciIsZXJyb3JUeXBlOmJ9LGMpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEZoLEloLEpoLEtoLExoLE1oLE5oLFBoLFJoLFNoLFVoLFZoLFdoLGtpLG5pLHBpLHNpLEdoLEhoLHppLEFpLFFoLFRoLFhoLGxpLG1pO18uRWg9ZnVuY3Rpb24oYSl7YT1FcnJvcihhKTtfLnBiKGEsIndhcm5pbmciKTtyZXR1cm4gYX07Rmg9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiJ9O0loPWZ1bmN0aW9uKGEpe3ZhciBiPWE+Pj4wO0doPWI7SGg9KGEtYikvNDI5NDk2NzI5Nj4+PjB9O0poPWZ1bmN0aW9uKGEsYil7Yj1+YjthP2E9fmErMTpiKz0xO3JldHVyblthLGJdfTtLaD1mdW5jdGlvbihhKXtpZihhPDApe0loKC1hKTt2YXIgYj1fLnUoSmgoR2gsSGgpKTthPWIubmV4dCgpLnZhbHVlO2I9Yi5uZXh0KCkudmFsdWU7R2g9YT4+PjA7SGg9Yj4+PjB9ZWxzZSBJaChhKX07TGg9ZnVuY3Rpb24oYSl7YT1TdHJpbmcoYSk7cmV0dXJuIjAwMDAwMDAiLnNsaWNlKGEubGVuZ3RoKSthfTsKTWg9ZnVuY3Rpb24oYSxiKXtiPj4+PTA7YT4+Pj0wO2lmKGI8PTIwOTcxNTEpdmFyIGM9IiIrKDQyOTQ5NjcyOTYqYithKTtlbHNlIEZoKCk/Yz0iIisoQmlnSW50KGIpPDxCaWdJbnQoMzIpfEJpZ0ludChhKSk6KGM9KGE+Pj4yNHxiPDw4KSYxNjc3NzIxNSxiPWI+PjE2JjY1NTM1LGE9KGEmMTY3NzcyMTUpK2MqNjc3NzIxNitiKjY3MTA2NTYsYys9Yio4MTQ3NDk3LGIqPTIsYT49MUU3JiYoYys9YS8xRTc+Pj4wLGElPTFFNyksYz49MUU3JiYoYis9Yy8xRTc+Pj4wLGMlPTFFNyksYz1iK0xoKGMpK0xoKGEpKTtyZXR1cm4gY307Tmg9ZnVuY3Rpb24oKXt2YXIgYT1HaCxiPUhoO2ImMjE0NzQ4MzY0OD9GaCgpP2E9IiIrKEJpZ0ludChifDApPDxCaWdJbnQoMzIpfEJpZ0ludChhPj4+MCkpOihiPV8udShKaChhLGIpKSxhPWIubmV4dCgpLnZhbHVlLGI9Yi5uZXh0KCkudmFsdWUsYT0iLSIrTWgoYSxiKSk6YT1NaChhLGIpO3JldHVybiBhfTsKXy5PaD1mdW5jdGlvbihhKXtpZighXy5yYyhhKSYmXy56YihhLGEuQVtfLkFdfDApKXRocm93IEVycm9yKCk7fTtQaD1mdW5jdGlvbihhLGIsYyl7YVtiXT1jLmh9O1JoPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZz1jLmg7YVtiXT1mdW5jdGlvbihoLGssbSl7cmV0dXJuIGcoaCxrLG0sZnx8KGY9Xy5IYyhRaCxQaCxSaCxkKS5ZYSksZXx8KGU9U2goZCkpKX19O1NoPWZ1bmN0aW9uKGEpe3ZhciBiPWFbVGhdO2lmKCFiKXt2YXIgYz1fLkhjKFFoLFBoLFJoLGEpO2I9ZnVuY3Rpb24oZCxlKXtyZXR1cm4gVWgoZCxlLGMpfTthW1RoXT1ifXJldHVybiBifTsKVWg9ZnVuY3Rpb24oYSxiLGMpe18uQWIoYSxhW18uQV18MCxmdW5jdGlvbihkLGUpe2lmKGUhPW51bGwpe3ZhciBmPVZoKGMsZCk7Zj9mKGIsZSxkKTpkPDUwMHx8Xy5yYihfLkdlLDMpfX0pOyhhPV8uVWIoYSkpJiZhLnNiKGZ1bmN0aW9uKGQsZSxmKXtfLiRlKGIsYi5nLmVuZCgpKTtmb3IoZD0wO2Q8Zi5sZW5ndGg7ZCsrKV8uJGUoYixfLkNlKGZbZF0pfHxuZXcgVWludDhBcnJheSgwKSl9KX07Vmg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hW2JdO2lmKGMpcmV0dXJuIGM7aWYoYz1hLk9iKWlmKGM9Y1tiXSl7Yz1fLkpjKGMpO3ZhciBkPWNbMF0uaDtpZihjPWNbMV0pe3ZhciBlPVNoKGMpLGY9Xy5IYyhRaCxQaCxSaCxjKS5ZYTtjPWEuWmM/KDAsXy5GYykoZixlKTpmdW5jdGlvbihnLGgsayl7cmV0dXJuIGQoZyxoLGssZixlKX19ZWxzZSBjPWQ7cmV0dXJuIGFbYl09Y319OwpXaD1mdW5jdGlvbihhKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGEsZnVuY3Rpb24oYil7Yj1iLnRvU3RyaW5nKDE2KTtyZXR1cm4gYi5sZW5ndGg+MT9iOiIwIitifSkuam9pbigiIil9O18uWWg9ZnVuY3Rpb24oYSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlICJiaWdpbnQiOnJldHVybiEwO2Nhc2UgIm51bWJlciI6cmV0dXJuKDAsXy5LYikoYSk7Y2FzZSAic3RyaW5nIjpyZXR1cm4gWGgudGVzdChhKTtkZWZhdWx0OnJldHVybiExfX07Cl8uWmg9ZnVuY3Rpb24oYSl7dmFyIGI9YS5sZW5ndGg7aWYoYVswXT09PSItIj9iPDIwfHxiPT09MjAmJmE8PSItOTIyMzM3MjAzNjg1NDc3NTgwOCI6YjwxOXx8Yj09PTE5JiZhPD0iOTIyMzM3MjAzNjg1NDc3NTgwNyIpcmV0dXJuIGE7aWYoYS5sZW5ndGg8MTYpS2goTnVtYmVyKGEpKTtlbHNlIGlmKEZoKCkpYT1CaWdJbnQoYSksR2g9TnVtYmVyKGEmQmlnSW50KDQyOTQ5NjcyOTUpKT4+PjAsSGg9TnVtYmVyKGE+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKTtlbHNle2I9KyhhWzBdPT09Ii0iKTtIaD1HaD0wO2Zvcih2YXIgYz1hLmxlbmd0aCxkPWIsZT0oYy1iKSU2K2I7ZTw9YztkPWUsZSs9NilkPU51bWJlcihhLnNsaWNlKGQsZSkpLEhoKj0xRTYsR2g9R2gqMUU2K2QsR2g+PTQyOTQ5NjcyOTYmJihIaCs9TWF0aC50cnVuYyhHaC80Mjk0OTY3Mjk2KSxIaD4+Pj0wLEdoPj4+PTApO2ImJihiPV8udShKaChHaCxIaCkpLGE9Yi5uZXh0KCkudmFsdWUsYj1iLm5leHQoKS52YWx1ZSwKR2g9YSxIaD1iKX1yZXR1cm4gTmgoKX07Xy4kaD1mdW5jdGlvbihhKXt2YXIgYj0oMCxfLlNlKShOdW1iZXIoYSkpO2lmKCgwLF8uUmUpKGIpKXJldHVybiBfLkdiKGIpO2I9YS5pbmRleE9mKCIuIik7YiE9PS0xJiYoYT1hLnN1YnN0cmluZygwLGIpKTtyZXR1cm4gRmgoKT9fLkdiKCgwLF8uUWUpKDY0LEJpZ0ludChhKSkpOl8uR2IoXy5aaChhKSl9O18uYWk9ZnVuY3Rpb24oYSl7YT0oMCxfLlNlKShhKTtpZighKDAsXy5SZSkoYSkpe0toKGEpO3ZhciBiPUdoLGM9SGg7aWYoYT1jJjIxNDc0ODM2NDgpYj1+YisxPj4+MCxjPX5jPj4+MCxiPT0wJiYoYz1jKzE+Pj4wKTt2YXIgZD1jKjQyOTQ5NjcyOTYrKGI+Pj4wKTtiPU51bWJlci5pc1NhZmVJbnRlZ2VyKGQpP2Q6TWgoYixjKTthPXR5cGVvZiBiPT09Im51bWJlciI/YT8tYjpiOmE/Ii0iK2I6Yn1yZXR1cm4gYX07Cl8uYmk9ZnVuY3Rpb24oYSl7YT0oMCxfLlNlKShhKTsoMCxfLlJlKShhKT9hPVN0cmluZyhhKTooS2goYSksYT1OaCgpKTtyZXR1cm4gYX07Xy5jaT1mdW5jdGlvbihhKXtyZXR1cm4oMCxfLlJlKShhKT9fLkdiKF8uYWkoYSkpOl8uR2IoXy5iaShhKSl9O18uZGk9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7aWYoYT09bnVsbClyZXR1cm4gYTtpZihiPT09ImJpZ2ludCIpcmV0dXJuIF8uR2IoKDAsXy5RZSkoNjQsYSkpO2lmKF8uWWgoYSkpcmV0dXJuIGI9PT0ic3RyaW5nIj9fLiRoKGEpOl8uY2koYSl9O18uZWk9ZnVuY3Rpb24oYSl7cmV0dXJuISEoMiZhKSYmISEoNCZhKXx8ISEoMjU2JmEpfTtfLmZpPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9KDImYj9hfDI6YSYtMykmLTI3M307Xy5naT1mdW5jdGlvbihhLGIsYyl7YT1fLnVjKGEsYixjKTtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hOl8uSWV9O18uaGk9ZnVuY3Rpb24oYSxiKXsyJmImJihhfD0yKTtyZXR1cm4gYXwxfTsKXy5paT1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7aWYoYj09bnVsbHx8Yj09IiIpYj1uZXcgYTtlbHNle2I9SlNPTi5wYXJzZShiKTtpZighQXJyYXkuaXNBcnJheShiKSl0aHJvdyBFcnJvcigiRiIpO18ud2IoYiwzMik7Yj1uZXcgYShiKX1yZXR1cm4gYn19O18uamk9ZnVuY3Rpb24oYSl7dmFyIGI9dG9wLmxvY2F0aW9uO2E9Xy5XYyhhKTthIT09dm9pZCAwJiZiLnJlcGxhY2UoYSl9O2tpPWZ1bmN0aW9uKCl7dGhpcy5ibG9ja1NpemU9LTF9OwpuaT1mdW5jdGlvbihhLGIpe3RoaXMuYmxvY2tTaXplPS0xO3RoaXMuYmxvY2tTaXplPTY0O3RoaXMuaT1fLncuVWludDhBcnJheT9uZXcgVWludDhBcnJheSh0aGlzLmJsb2NrU2l6ZSk6QXJyYXkodGhpcy5ibG9ja1NpemUpO3RoaXMuaj10aGlzLmg9MDt0aGlzLmc9W107dGhpcy5vPWE7dGhpcy5sPWI7dGhpcy51PV8udy5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KDY0KTpBcnJheSg2NCk7bGk9PT12b2lkIDAmJihfLncuSW50MzJBcnJheT9saT1uZXcgSW50MzJBcnJheShtaSk6bGk9bWkpO3RoaXMucmVzZXQoKX07cGk9ZnVuY3Rpb24oKXtuaS5jYWxsKHRoaXMsOCxvaSl9O18ucWk9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IHBpO2IudXBkYXRlKGEsYS5sZW5ndGgpO3JldHVybiBXaChiLmRpZ2VzdCgpKX07Cl8ucmk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIik7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKTtjLm1ldGhvZD0icG9zdCI7YT1fLldjKGEpO2EhPT12b2lkIDAmJihjLmFjdGlvbj1hKTtpZihiKXthPU9iamVjdC5rZXlzKGIpO2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hW2RdLGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtmLnR5cGU9ImhpZGRlbiI7Zi5uYW1lPWU7Zi52YWx1ZT1iW2VdLnRvU3RyaW5nKCk7Yy5hcHBlbmRDaGlsZChmKX19Yy5zdWJtaXQoKX07c2k9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7cmV0dXJuIGIhPSJvYmplY3QiP2I6YT9BcnJheS5pc0FycmF5KGEpPyJhcnJheSI6YjoibnVsbCJ9O18udGk9ZnVuY3Rpb24oYSl7dmFyIGI9c2koYSk7cmV0dXJuIGI9PSJhcnJheSJ8fGI9PSJvYmplY3QiJiZ0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIifTtHaD0wO0hoPTA7Cl8udWk9ZnVuY3Rpb24oYSxiLGMpe18uT2goYSk7dmFyIGQ9YS5BO18udGMoZCxkW18uQV18MCxiLGMpO3JldHVybiBhfTtfLnZpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yz09PXZvaWQgMD8hMTpjO3ZhciBkO3JldHVybihkPV8uSmIoXy5MKGEsYikpKSE9bnVsbD9kOmN9O18ud2k9ZnVuY3Rpb24oYSxiKXt2YXIgYz1jPT09dm9pZCAwPzA6Yzt2YXIgZDtyZXR1cm4oZD1fLkxiKF8uTChhLGIpKSkhPW51bGw/ZDpjfTtfLnhpPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uTmIoXy5MKGEsYikpfTtfLnlpPWZ1bmN0aW9uKGEsYixjKXtpZihjIT1udWxsJiZ0eXBlb2YgYyE9PSJib29sZWFuIil0aHJvdyBFcnJvcigieGAiK3NpKGMpKyJgIitjKTtyZXR1cm4gXy51aShhLGIsYyl9O18uUj1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbCYmdHlwZW9mIGMhPT0ic3RyaW5nIil0aHJvdyBFcnJvcigpO3JldHVybiBfLnVpKGEsYixjKX07Cl8uUz1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbCl7aWYoISgwLF8uS2IpKGMpKXRocm93IF8uRWgoImVudW0iKTtjfD0wfXJldHVybiBfLnVpKGEsYixjKX07emk9ZnVuY3Rpb24oKXt0aGlzLmc9W119O3ppLnByb3RvdHlwZS5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLmxlbmd0aH07emkucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuZzt0aGlzLmc9W107cmV0dXJuIGF9O0FpPWZ1bmN0aW9uKCl7dGhpcy5pPVtdO3RoaXMuaD0wO3RoaXMuZz1uZXcgeml9O1FoPVN5bWJvbCgpO1RoPVN5bWJvbCgpO18uQmk9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uWGUoYSw0KX07Xy5DaT1bMCwyLF8uamYsXy5oZiwtMSwxLF8uamYsXy5oZiwxLF8uaGYsLTIsXy5nZl07Xy5EaT1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooXy5EaSxfLkQpOwpfLkRpLnByb3RvdHlwZS5oPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe3ZhciBiPW5ldyBBaTtVaCh0aGlzLkEsYixfLkhjKFFoLFBoLFJoLGEpKTtfLiRlKGIsYi5nLmVuZCgpKTtmb3IodmFyIGM9bmV3IFVpbnQ4QXJyYXkoYi5oKSxkPWIuaSxlPWQubGVuZ3RoLGY9MCxnPTA7ZzxlO2crKyl7dmFyIGg9ZFtnXTtjLnNldChoLGYpO2YrPWgubGVuZ3RofWIuaT1bY107cmV0dXJuIGN9fShfLkNpKTtfLkVpPV8uc2Iodm9pZCAwLCIxb2EiKTtYaD0vXi0/KFsxLTldWzAtOV0qfDApKFwuWzAtOV0rKT8kLzsKXy5GaT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLkEsZj1lLGc9ZVtfLkFdfDAsaD1fLnpiKGEsZyk7ZT1oPzE6ZDtkPWU9PT0zO3ZhciBrPSFoOyhlPT09Mnx8aykmJl8ucmMoYSkmJihmPWEuQSxnPWZbXy5BXXwwKTtoPV8uZ2koZixjKTt2YXIgbT1oPT09Xy5JZT83OmhbXy5BXXwwLG49Xy5oaShtLGcpO2lmKGE9ISg0Jm4pKXt2YXIgcT1oLHA9ZyxyPSEhKDImbik7ciYmKHB8PTIpO2Zvcih2YXIgeD0hcix5PSEwLEM9MCxrYT0wO0M8cS5sZW5ndGg7QysrKXt2YXIgbmE9Xy5RYihxW0NdLGIscCk7aWYobmEgaW5zdGFuY2VvZiBiKXtpZighcil7dmFyIEFhPV8uemIobmEpO3gmJih4PSFBYSk7eSYmKHk9QWEpfXFba2ErK109bmF9fWthPEMmJihxLmxlbmd0aD1rYSk7bnw9NDtuPXk/biYtNDA5NzpufDQwOTY7bj14P258ODpuJi05fW4hPT1tJiYoXy54YihoLG4pLDImbiYmT2JqZWN0LmZyZWV6ZShoKSk7aWYoayYmISg4Jm58fCFoLmxlbmd0aCYmKGU9PT0xfHwoZSE9PTQ/MDoyJgpufHwhKDE2Jm4pJiYzMiZnKSkpKXtfLmVpKG4pJiYoaD1fLkliKGgpLG49Xy5maShuLGcpLGc9Xy50YyhmLGcsYyxoKSk7Yj1oO2s9bjtmb3IobT0wO208Yi5sZW5ndGg7bSsrKXE9YlttXSxuPV8ucWMocSkscSE9PW4mJihiW21dPW4pO2t8PTg7bj1rPWIubGVuZ3RoP2t8NDA5NjprJi00MDk3O18ueGIoaCxuKX1rPWI9bjtlPT09MXx8KGUhPT00PzA6MiZifHwhKDE2JmIpJiYzMiZnKT9fLmVpKGIpfHwoYnw9IWgubGVuZ3RofHxhJiYhKDQwOTYmYil8fDMyJmcmJiEoNDA5NiZifHwxNiZiKT8yOjI1NixiIT09ayYmXy54YihoLGIpLE9iamVjdC5mcmVlemUoaCkpOihlPT09MiYmXy5laShiKSYmKGg9Xy5JYihoKSxrPTAsYj1fLmZpKGIsZyksZz1fLnRjKGYsZyxjLGgpKSxfLmVpKGIpfHwoZHx8KGJ8PTE2KSxiIT09ayYmXy54YihoLGIpKSk7MiZifHwhKDQwOTYmYnx8MTYmYil8fF8uc2MoZixnKTtyZXR1cm4gaH07Cl8uR2k9ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD9fLlRlOmM7YT1fLkwoYSxiLHZvaWQgMCx2b2lkIDAsXy5kaSk7cmV0dXJuIGEhPW51bGw/YTpjfTtfLkhpPWZ1bmN0aW9uKGEsYixjKXtpZihjIT1udWxsKXtpZih0eXBlb2YgYyE9PSJudW1iZXIiKXRocm93IF8uRWgoImludDMyIik7aWYoISgwLF8uS2IpKGMpKXRocm93IF8uRWgoImludDMyIik7Y3w9MH1yZXR1cm4gXy51aShhLGIsYyl9O18uSWk9ZnVuY3Rpb24oYSxiKXtpZihhKWlmKF8uS2YoYSkpYS5pYSYmXy5PZihhLmlhLGIpO2Vsc2UgaWYoYT1fLiRmKGEpKXt2YXIgYz0wO2I9YiYmYi50b1N0cmluZygpO2Zvcih2YXIgZCBpbiBhLmcpaWYoIWJ8fGQ9PWIpZm9yKHZhciBlPWEuZ1tkXS5jb25jYXQoKSxmPTA7ZjxlLmxlbmd0aDsrK2YpXy5lZyhlW2ZdKSYmKytjfX07Cm1pPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwKMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XTtfLllkKG5pLGtpKTtuaS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmo9dGhpcy5oPTA7dGhpcy5nPV8udy5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KHRoaXMubCk6Xy5jYih0aGlzLmwpfTsKdmFyIEppPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1hLmksYz1hLnUsZD0wLGU9MDtlPGIubGVuZ3RoOyljW2QrK109YltlXTw8MjR8YltlKzFdPDwxNnxiW2UrMl08PDh8YltlKzNdLGU9ZCo0O2ZvcihiPTE2O2I8NjQ7YisrKWQ9Y1tiLTE1XXwwLGU9Y1tiLTJdfDAsY1tiXT0oKGNbYi0xNl18MCkrKChkPj4+N3xkPDwyNSleKGQ+Pj4xOHxkPDwxNCleZD4+PjMpfDApKygoY1tiLTddfDApKygoZT4+PjE3fGU8PDE1KV4oZT4+PjE5fGU8PDEzKV5lPj4+MTApfDApfDA7Yj1hLmdbMF18MDtkPWEuZ1sxXXwwO2U9YS5nWzJdfDA7Zm9yKHZhciBmPWEuZ1szXXwwLGc9YS5nWzRdfDAsaD1hLmdbNV18MCxrPWEuZ1s2XXwwLG09YS5nWzddfDAsbj0wO248NjQ7bisrKXt2YXIgcT0oKGI+Pj4yfGI8PDMwKV4oYj4+PjEzfGI8PDE5KV4oYj4+PjIyfGI8PDEwKSkrKGImZF5iJmVeZCZlKXwwLHA9KG0rKChnPj4+NnxnPDwyNileKGc+Pj4xMXxnPDwyMSleKGc+Pj4yNXxnPDw3KSl8MCkrKCgoZyZoXgp+ZyZrKSsobGlbbl18MCl8MCkrKGNbbl18MCl8MCl8MDttPWs7az1oO2g9ZztnPWYrcHwwO2Y9ZTtlPWQ7ZD1iO2I9cCtxfDB9YS5nWzBdPWEuZ1swXStifDA7YS5nWzFdPWEuZ1sxXStkfDA7YS5nWzJdPWEuZ1syXStlfDA7YS5nWzNdPWEuZ1szXStmfDA7YS5nWzRdPWEuZ1s0XStnfDA7YS5nWzVdPWEuZ1s1XStofDA7YS5nWzZdPWEuZ1s2XStrfDA7YS5nWzddPWEuZ1s3XSttfDB9OwpuaS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMCYmKGI9YS5sZW5ndGgpO3ZhciBjPTAsZD10aGlzLmg7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilmb3IoO2M8YjspdGhpcy5pW2QrK109YS5jaGFyQ29kZUF0KGMrKyksZD09dGhpcy5ibG9ja1NpemUmJihKaSh0aGlzKSxkPTApO2Vsc2UgaWYoXy50aShhKSlmb3IoO2M8Yjspe3ZhciBlPWFbYysrXTtpZighKCJudW1iZXIiPT10eXBlb2YgZSYmMDw9ZSYmMjU1Pj1lJiZlPT0oZXwwKSkpdGhyb3cgRXJyb3IoIlMiKTt0aGlzLmlbZCsrXT1lO2Q9PXRoaXMuYmxvY2tTaXplJiYoSmkodGhpcyksZD0wKX1lbHNlIHRocm93IEVycm9yKCJUIik7dGhpcy5oPWQ7dGhpcy5qKz1ifTsKbmkucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbigpe3ZhciBhPVtdLGI9dGhpcy5qKjg7dGhpcy5oPDU2P3RoaXMudXBkYXRlKF8ua2csNTYtdGhpcy5oKTp0aGlzLnVwZGF0ZShfLmtnLHRoaXMuYmxvY2tTaXplLSh0aGlzLmgtNTYpKTtmb3IodmFyIGM9NjM7Yz49NTY7Yy0tKXRoaXMuaVtjXT1iJjI1NSxiLz0yNTY7SmkodGhpcyk7Zm9yKGM9Yj0wO2M8dGhpcy5vO2MrKylmb3IodmFyIGQ9MjQ7ZD49MDtkLT04KWFbYisrXT10aGlzLmdbY10+PmQmMjU1O3JldHVybiBhfTt2YXIgb2k9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XTtfLllkKHBpLG5pKTtfLktpPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmc9dGhpcy5oPW51bGw7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGIsYyl7YS5oPWI7YS5nPWN9KX07Xy5LaS5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbihhKXtpZighdGhpcy5oKXRocm93IEVycm9yKCJuYSIpO3RoaXMuaChhKTt0aGlzLmRpc3Bvc2UoKX07Xy5LaS5wcm90b3R5cGUucmVqZWN0PWZ1bmN0aW9uKGEpe2lmKCF0aGlzLmcpdGhyb3cgRXJyb3IoIm5hIik7dGhpcy5nKGEpO3RoaXMuZGlzcG9zZSgpfTtfLktpLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5nPXRoaXMuaD1udWxsfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5MaT1bMCxfLmpmLF8uaGYsLTNdO3ZhciBNaT1mdW5jdGlvbigpe307Xy5KKE1pLF8uQWgpO18uTmk9ZnVuY3Rpb24oYSl7dGhpcy5jb250YWluZXI9YTt0aGlzLmc9bnVsbH07Xy5KKF8uTmksTWkpO18uTmkucHJvdG90eXBlLmg9ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCl9O18uTmkucHJvdG90eXBlLmk9ZnVuY3Rpb24oYSl7dGhpcy5nJiYodGhpcy5nLmRpc3Bvc2UoKSx0aGlzLmc9bnVsbCk7dGhpcy5nPWE7cmV0dXJuIHRoaXMuZy5VKCl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgT2ksUWksUmksU2ksVGksJGksYWosYmosY2osWmksZ2osaWo7T2k9ZnVuY3Rpb24oYSl7dmFyIGI9YS5BLGM9YltfLkFdfDA7cmV0dXJuIF8ubmMoYSxiLGMpP18ub2MoYSxiLCEwKTpuZXcgYS5jb25zdHJ1Y3RvcihfLm1jKGIsYywhMSkpfTtfLlBpPWZ1bmN0aW9uKGEpe2E9PW51bGwmJihhPXZvaWQgMCk7cmV0dXJuIGF9O1FpPWZ1bmN0aW9uKGEpe2EmJnR5cGVvZiBhLmRpc3Bvc2U9PSJmdW5jdGlvbiImJmEuZGlzcG9zZSgpfTtSaT1mdW5jdGlvbihhKXt2YXIgYj0oMCxfLlNlKShOdW1iZXIoYSkpO2lmKCgwLF8uUmUpKGIpKXJldHVybiBTdHJpbmcoYik7Yj1hLmluZGV4T2YoIi4iKTtiIT09LTEmJihhPWEuc3Vic3RyaW5nKDAsYikpO3JldHVybiBfLlpoKGEpfTsKU2k9ZnVuY3Rpb24oYSl7dmFyIGI9dm9pZCAwO2IhPW51bGx8fChiPTEwMjQpO2lmKCFfLlloKGEpKXRocm93IF8uRWgoImludDY0Iik7dmFyIGM9dHlwZW9mIGE7c3dpdGNoKGIpe2Nhc2UgNTEyOnN3aXRjaChjKXtjYXNlICJzdHJpbmciOnJldHVybiBSaShhKTtjYXNlICJiaWdpbnQiOnJldHVybiBTdHJpbmcoKDAsXy5RZSkoNjQsYSkpO2RlZmF1bHQ6cmV0dXJuIF8uYmkoYSl9Y2FzZSAxMDI0OnN3aXRjaChjKXtjYXNlICJzdHJpbmciOnJldHVybiBfLiRoKGEpO2Nhc2UgImJpZ2ludCI6cmV0dXJuIF8uR2IoKDAsXy5RZSkoNjQsYSkpO2RlZmF1bHQ6cmV0dXJuIF8uY2koYSl9Y2FzZSAwOnN3aXRjaChjKXtjYXNlICJzdHJpbmciOnJldHVybiBSaShhKTtjYXNlICJiaWdpbnQiOnJldHVybiBfLkdiKCgwLF8uUWUpKDY0LGEpKTtkZWZhdWx0OnJldHVybiBfLmFpKGEpfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVua25vd24gZm9ybWF0IHJlcXVlc3RlZCB0eXBlIGZvciBpbnQ2NCIpOwp9fTsKVGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7ZVswXT0xNzMyNTg0MTkzO2VbMV09NDAyMzIzMzQxNztlWzJdPTI1NjIzODMxMDI7ZVszXT0yNzE3MzM4Nzg7ZVs0XT0zMjg1Mzc3NTIwO249bT0wfWZ1bmN0aW9uIGIocSl7Zm9yKHZhciBwPWcscj0wO3I8NjQ7cis9NClwW3IvNF09cVtyXTw8MjR8cVtyKzFdPDwxNnxxW3IrMl08PDh8cVtyKzNdO2ZvcihyPTE2O3I8ODA7cisrKXE9cFtyLTNdXnBbci04XV5wW3ItMTRdXnBbci0xNl0scFtyXT0ocTw8MXxxPj4+MzEpJjQyOTQ5NjcyOTU7cT1lWzBdO3ZhciB4PWVbMV0seT1lWzJdLEM9ZVszXSxrYT1lWzRdO2ZvcihyPTA7cjw4MDtyKyspe2lmKHI8NDApaWYocjwyMCl7dmFyIG5hPUNeeCYoeV5DKTt2YXIgQWE9MTUxODUwMDI0OX1lbHNlIG5hPXheeV5DLEFhPTE4NTk3NzUzOTM7ZWxzZSByPDYwPyhuYT14Jnl8QyYoeHx5KSxBYT0yNDAwOTU5NzA4KToobmE9eF55XkMsQWE9MzM5NTQ2OTc4Mik7bmE9KChxPDw1fHE+Pj4yNykmNDI5NDk2NzI5NSkrCm5hK2thK0FhK3Bbcl0mNDI5NDk2NzI5NTtrYT1DO0M9eTt5PSh4PDwzMHx4Pj4+MikmNDI5NDk2NzI5NTt4PXE7cT1uYX1lWzBdPWVbMF0rcSY0Mjk0OTY3Mjk1O2VbMV09ZVsxXSt4JjQyOTQ5NjcyOTU7ZVsyXT1lWzJdK3kmNDI5NDk2NzI5NTtlWzNdPWVbM10rQyY0Mjk0OTY3Mjk1O2VbNF09ZVs0XStrYSY0Mjk0OTY3Mjk1fWZ1bmN0aW9uIGMocSxwKXtpZih0eXBlb2YgcT09PSJzdHJpbmciKXtxPXVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChxKSk7Zm9yKHZhciByPVtdLHg9MCx5PXEubGVuZ3RoO3g8eTsrK3gpci5wdXNoKHEuY2hhckNvZGVBdCh4KSk7cT1yfXB8fChwPXEubGVuZ3RoKTtyPTA7aWYobT09MClmb3IoO3IrNjQ8cDspYihxLnNsaWNlKHIscis2NCkpLHIrPTY0LG4rPTY0O2Zvcig7cjxwOylpZihmW20rK109cVtyKytdLG4rKyxtPT02NClmb3IobT0wLGIoZik7cis2NDxwOyliKHEuc2xpY2UocixyKzY0KSkscis9NjQsbis9NjR9ZnVuY3Rpb24gZCgpe3ZhciBxPQpbXSxwPW4qODttPDU2P2MoaCw1Ni1tKTpjKGgsNjQtKG0tNTYpKTtmb3IodmFyIHI9NjM7cj49NTY7ci0tKWZbcl09cCYyNTUscD4+Pj04O2IoZik7Zm9yKHI9cD0wO3I8NTtyKyspZm9yKHZhciB4PTI0O3g+PTA7eC09OClxW3ArK109ZVtyXT4+eCYyNTU7cmV0dXJuIHF9Zm9yKHZhciBlPVtdLGY9W10sZz1bXSxoPVsxMjhdLGs9MTtrPDY0OysrayloW2tdPTA7dmFyIG0sbjthKCk7cmV0dXJue3Jlc2V0OmEsdXBkYXRlOmMsZGlnZXN0OmQsTWQ6ZnVuY3Rpb24oKXtmb3IodmFyIHE9ZCgpLHA9IiIscj0wO3I8cS5sZW5ndGg7cisrKXArPSIwMTIzNDU2Nzg5QUJDREVGIi5jaGFyQXQoTWF0aC5mbG9vcihxW3JdLzE2KSkrIjAxMjM0NTY3ODlBQkNERUYiLmNoYXJBdChxW3JdJTE2KTtyZXR1cm4gcH19fTsKJGk9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/VWk6YjtpZighVmkpe3ZhciBjO2E9KGM9YS5uYXZpZ2F0b3IpPT1udWxsP3ZvaWQgMDpjLnVzZXJBZ2VudERhdGE7aWYoIWF8fHR5cGVvZiBhLmdldEhpZ2hFbnRyb3B5VmFsdWVzIT09ImZ1bmN0aW9uInx8YS5icmFuZHMmJnR5cGVvZiBhLmJyYW5kcy5tYXAhPT0iZnVuY3Rpb24iKXJldHVybiBQcm9taXNlLnJlamVjdChFcnJvcigicmEiKSk7V2koKGEuYnJhbmRzfHxbXSkubWFwKGZ1bmN0aW9uKGUpe3ZhciBmPW5ldyBYaTtmPV8uUihmLDEsZS5icmFuZCk7cmV0dXJuIF8uUihmLDIsZS52ZXJzaW9uKX0pKTt0eXBlb2YgYS5tb2JpbGU9PT0iYm9vbGVhbiImJl8ueWkoWWksMixhLm1vYmlsZSk7Vmk9YS5nZXRIaWdoRW50cm9weVZhbHVlcyhiKX12YXIgZD1uZXcgU2V0KGIpO3JldHVybiBWaS50aGVuKGZ1bmN0aW9uKGUpe3ZhciBmPU9pKFlpKTtkLmhhcygicGxhdGZvcm0iKSYmXy5SKGYsMyxlLnBsYXRmb3JtKTtkLmhhcygicGxhdGZvcm1WZXJzaW9uIikmJgpfLlIoZiw0LGUucGxhdGZvcm1WZXJzaW9uKTtkLmhhcygiYXJjaGl0ZWN0dXJlIikmJl8uUihmLDUsZS5hcmNoaXRlY3R1cmUpO2QuaGFzKCJtb2RlbCIpJiZfLlIoZiw2LGUubW9kZWwpO2QuaGFzKCJ1YUZ1bGxWZXJzaW9uIikmJl8uUihmLDcsZS51YUZ1bGxWZXJzaW9uKTtyZXR1cm4gWmkoZil9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBaaShZaSl9KX07YWo9ZnVuY3Rpb24oYSl7dGhpcy5oPXRoaXMuZz10aGlzLmk9YX07Ymo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGQ9Yy5zbGljZSgpO2QucHVzaC5hcHBseShkLGFyZ3VtZW50cyk7cmV0dXJuIGEuYXBwbHkodGhpcyxkKX19O2NqPXt2ZTohMH07Xy5kaj1mdW5jdGlvbihhLGIsYyl7Yz1fLlBpKGMpO18udWkoYSxiLGMpO2MmJiFfLnpiKGMpJiZfLnNjKGEuQSk7cmV0dXJuIGF9O1ppPWZ1bmN0aW9uKGEpe3JldHVybiBKU09OLnN0cmluZ2lmeShfLmJjKGEpKX07CmdqPWZ1bmN0aW9uKCl7dmFyIGE9ZWosYj1majt0aGlzLmc9MTc1MjM3Mzc1O3RoaXMuY3Rvcj1iO3RoaXMuaD1fLk07dGhpcy5kZWZhdWx0VmFsdWU9dm9pZCAwO3RoaXMuaT1hLmFmIT1udWxsP18uTGM6dm9pZCAwfTtnai5wcm90b3R5cGUucmVnaXN0ZXI9ZnVuY3Rpb24oKXtfLmllKHRoaXMpfTtfLmhqPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/MDpjO3ZhciBkO3JldHVybihkPV8uTWIoXy5MKGEsYikpKSE9bnVsbD9kOmN9Owppaj1mdW5jdGlvbihhLGIsYyl7Xy5PaChhKTt2YXIgZD1hLkEsZT1kW18uQV18MDtpZihjPT1udWxsKXJldHVybiBfLnRjKGQsZSxiKSxhO2Zvcih2YXIgZj1jPT09Xy5JZT83OmNbXy5BXXwwLGc9ZixoPV8uZWkoZiksaz1ofHxPYmplY3QuaXNGcm96ZW4oYyksbT0hMCxuPSEwLHE9MDtxPGMubGVuZ3RoO3ErKyl7dmFyIHA9Y1txXTtofHwocD1fLnpiKHApLG0mJihtPSFwKSxuJiYobj1wKSl9aHx8KGY9bT8xMzo1LGY9bj9mJi00MDk3OmZ8NDA5Nik7ayYmZj09PWd8fChjPV8uSWIoYyksZz0wLGY9Xy5maShmLGUpKTtmIT09ZyYmXy54YihjLGYpO2U9Xy50YyhkLGUsYixjKTsyJmZ8fCEoNDA5NiZmfHwxNiZmKXx8Xy5zYyhkLGUpO3JldHVybiBhfTtfLmpqPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy51aShhLGIsYz09bnVsbD9jOlNpKGMpKX07dmFyIGtqPWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiIiO2lmKC9eYWJvdXQ6KD86Ymxhbmt8c3JjZG9jKSQvLnRlc3QoYSkpcmV0dXJuIHdpbmRvdy5vcmlnaW58fCIiO2EuaW5kZXhPZigiYmxvYjoiKT09PTAmJihhPWEuc3Vic3RyaW5nKDUpKTthPWEuc3BsaXQoIiMiKVswXS5zcGxpdCgiPyIpWzBdO2E9YS50b0xvd2VyQ2FzZSgpO2EuaW5kZXhPZigiLy8iKT09MCYmKGE9d2luZG93LmxvY2F0aW9uLnByb3RvY29sK2EpOy9eW1x3XC1dKjpcL1wvLy50ZXN0KGEpfHwoYT13aW5kb3cubG9jYXRpb24uaHJlZik7dmFyIGI9YS5zdWJzdHJpbmcoYS5pbmRleE9mKCI6Ly8iKSszKSxjPWIuaW5kZXhPZigiLyIpO2MhPS0xJiYoYj1iLnN1YnN0cmluZygwLGMpKTtjPWEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCI6Ly8iKSk7aWYoIWMpdGhyb3cgRXJyb3IoInBhYCIrYSk7aWYoYyE9PSJodHRwIiYmYyE9PSJodHRwcyImJmMhPT0iY2hyb21lLWV4dGVuc2lvbiImJmMhPT0ibW96LWV4dGVuc2lvbiImJgpjIT09ImZpbGUiJiZjIT09ImFuZHJvaWQtYXBwIiYmYyE9PSJjaHJvbWUtc2VhcmNoIiYmYyE9PSJjaHJvbWUtdW50cnVzdGVkIiYmYyE9PSJjaHJvbWUiJiZjIT09ImFwcCImJmMhPT0iZGV2dG9vbHMiKXRocm93IEVycm9yKCJxYWAiK2MpO2E9IiI7dmFyIGQ9Yi5pbmRleE9mKCI6Iik7aWYoZCE9LTEpe3ZhciBlPWIuc3Vic3RyaW5nKGQrMSk7Yj1iLnN1YnN0cmluZygwLGQpO2lmKGM9PT0iaHR0cCImJmUhPT0iODAifHxjPT09Imh0dHBzIiYmZSE9PSI0NDMiKWE9IjoiK2V9cmV0dXJuIGMrIjovLyIrYithfTt2YXIgbWo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVN0cmluZyhfLncubG9jYXRpb24uaHJlZik7cmV0dXJuIGQmJmEmJmI/W2IsbGooa2ooZCksYSxjfHxudWxsKV0uam9pbigiICIpOm51bGx9LGxqPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPVtdO2lmKChBcnJheS5pc0FycmF5KGMpPzI6MSk9PTEpcmV0dXJuIGU9W2IsYV0sXy5mZShkLGZ1bmN0aW9uKGgpe2UucHVzaChoKX0pLG5qKGUuam9pbigiICIpKTt2YXIgZj1bXSxnPVtdO18uZmUoYyxmdW5jdGlvbihoKXtnLnB1c2goaC5rZXkpO2YucHVzaChoLnZhbHVlKX0pO2M9TWF0aC5mbG9vcigobmV3IERhdGUpLmdldFRpbWUoKS8xRTMpO2U9Zi5sZW5ndGg9PTA/W2MsYixhXTpbZi5qb2luKCI6IiksYyxiLGFdO18uZmUoZCxmdW5jdGlvbihoKXtlLnB1c2goaCl9KTthPW5qKGUuam9pbigiICIpKTthPVtjLGFdO2cubGVuZ3RoPT0wfHxhLnB1c2goZy5qb2luKCIiKSk7cmV0dXJuIGEuam9pbigiXyIpfSxuaj1mdW5jdGlvbihhKXt2YXIgYj0KVGkoKTtiLnVwZGF0ZShhKTtyZXR1cm4gYi5NZCgpLnRvTG93ZXJDYXNlKCl9O3ZhciBvaj1mdW5jdGlvbihhLGIsYyxkKXsoYT1fLndbYV0pfHx0eXBlb2YgZG9jdW1lbnQ9PT0idW5kZWZpbmVkInx8KGE9KG5ldyBfLlljKGRvY3VtZW50KSkuZ2V0KGIpKTtyZXR1cm4gYT9taihhLGMsZCk6bnVsbH0scGo9ZnVuY3Rpb24oYSl7dmFyIGI9a2ooXy53PT1udWxsP3ZvaWQgMDpfLncubG9jYXRpb24uaHJlZiksYz1bXSxkOyhkPV8udy5fX1NBUElTSUR8fF8udy5fX0FQSVNJRHx8Xy53Ll9fM1BTQVBJU0lEfHxfLncuX18xUFNBUElTSUR8fF8udy5fX09WRVJSSURFX1NJRCk/ZD0hMDoodHlwZW9mIGRvY3VtZW50IT09InVuZGVmaW5lZCImJihkPW5ldyBfLlljKGRvY3VtZW50KSxkPWQuZ2V0KCJTQVBJU0lEIil8fGQuZ2V0KCJBUElTSUQiKXx8ZC5nZXQoIl9fU2VjdXJlLTNQQVBJU0lEIil8fGQuZ2V0KCJfX1NlY3VyZS0xUEFQSVNJRCIpKSxkPSEhZCk7ZCYmKGQ9KGI9Yi5pbmRleE9mKCJodHRwczoiKT09MHx8Yi5pbmRleE9mKCJjaHJvbWUtZXh0ZW5zaW9uOiIpPT0KMHx8Yi5pbmRleE9mKCJjaHJvbWUtdW50cnVzdGVkOi8vbmV3LXRhYi1wYWdlIik9PTB8fGIuaW5kZXhPZigibW96LWV4dGVuc2lvbjoiKT09MCk/Xy53Ll9fU0FQSVNJRDpfLncuX19BUElTSUQsZHx8dHlwZW9mIGRvY3VtZW50PT09InVuZGVmaW5lZCJ8fChkPW5ldyBfLlljKGRvY3VtZW50KSxkPWQuZ2V0KGI/IlNBUElTSUQiOiJBUElTSUQiKXx8ZC5nZXQoIl9fU2VjdXJlLTNQQVBJU0lEIikpLChkPWQ/bWooZCxiPyJTQVBJU0lESEFTSCI6IkFQSVNJREhBU0giLGEpOm51bGwpJiZjLnB1c2goZCksYiYmKChiPW9qKCJfXzFQU0FQSVNJRCIsIl9fU2VjdXJlLTFQQVBJU0lEIiwiU0FQSVNJRDFQSEFTSCIsYSkpJiZjLnB1c2goYiksKGE9b2ooIl9fM1BTQVBJU0lEIiwiX19TZWN1cmUtM1BBUElTSUQiLCJTQVBJU0lEM1BIQVNIIixhKSkmJmMucHVzaChhKSkpO3JldHVybiBjLmxlbmd0aD09MD9udWxsOmMuam9pbigiICIpfTt2YXIgcWo9ZnVuY3Rpb24oKXt0aGlzLmZlPTEwMjR9LHJqPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO3JldHVybiBfLlRkKGZ1bmN0aW9uKGYpe3N3aXRjaChmLmcpe2Nhc2UgMTpyZXR1cm4gYj1uZXcgQ29tcHJlc3Npb25TdHJlYW0oImd6aXAiKSxjPShuZXcgUmVzcG9uc2UoYi5yZWFkYWJsZSkpLmFycmF5QnVmZmVyKCksZD1iLndyaXRhYmxlLmdldFdyaXRlcigpLGYuaChkLndyaXRlKChuZXcgVGV4dEVuY29kZXIpLmVuY29kZShhKSksMik7Y2FzZSAyOnJldHVybiBmLmgoZC5jbG9zZSgpLDMpO2Nhc2UgMzpyZXR1cm4gZT1VaW50OEFycmF5LGYuaChjLDQpO2Nhc2UgNDpyZXR1cm4gZi5yZXR1cm4obmV3IGUoZi5pKSl9fSl9O3ZhciBzaj1mdW5jdGlvbihhLGIpe3RoaXMuaT1hO3RoaXMuY2FsbGJhY2s9Yjt0aGlzLmg9ITE7dGhpcy5qPWZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93KCl9O3RoaXMubD10aGlzLmooKX0sdWo9ZnVuY3Rpb24oYSxiKXthLmk9YjthLmcmJmEuaD8odGooYSksYS5zdGFydCgpKTphLmcmJnRqKGEpfTtzai5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuaD0hMDt0aGlzLmd8fCh0aGlzLmc9c2V0VGltZW91dChmdW5jdGlvbigpe3ZqKGEpfSx0aGlzLmkpLHRoaXMubD10aGlzLmooKSl9Owp2YXIgdGo9ZnVuY3Rpb24oYSl7YS5oPSExO2EuZyYmKGNsZWFyVGltZW91dChhLmcpLGEuZz12b2lkIDApfSx2aj1mdW5jdGlvbihhKXtpZihhLmgpe3ZhciBiPU1hdGgubWF4KGEuaigpLWEubCwwKTtiPGEuaSouOD9hLmc9c2V0VGltZW91dChmdW5jdGlvbigpe3ZqKGEpfSxhLmktYik6KGEuZyYmKGNsZWFyVGltZW91dChhLmcpLGEuZz12b2lkIDApLGEuY2FsbGJhY2soKSxhLmgmJih0aihhKSxhLnN0YXJ0KCkpKX1lbHNlIGEuZz12b2lkIDB9O3ZhciB3aj1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkood2osXy5EKTt2YXIgeGo9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKHhqLF8uRCk7dmFyIHlqPWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSih5aixfLkQpO3lqLnByb3RvdHlwZS5RYj1mdW5jdGlvbigpe3JldHVybiBfLndpKHRoaXMsMSl9O3ZhciBYaT1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooWGksXy5EKTt2YXIgemo9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKHpqLF8uRCk7dmFyIFdpPWZ1bmN0aW9uKGEpe2lqKFlpLDEsYSl9LEFqPV8uaWkoemopO3ZhciBCaj1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooQmosXy5EKTt2YXIgVWk9WyJwbGF0Zm9ybSIsInBsYXRmb3JtVmVyc2lvbiIsImFyY2hpdGVjdHVyZSIsIm1vZGVsIiwidWFGdWxsVmVyc2lvbiJdLFlpPW5ldyB6aixWaT1udWxsO3ZhciBDaj1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooQ2osXy5EKTt2YXIgRGo9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uUyhhLDEsMSl9O3ZhciBFaj1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEsNCl9O18uSihFaixfLkQpO3ZhciBGaj1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEsMzcpfTtfLkooRmosXy5EKTt2YXIgR2o9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhLDE5KX07Xy5KKEdqLF8uRCk7R2oucHJvdG90eXBlLmJiPWZ1bmN0aW9uKGEpe3JldHVybiBfLlModGhpcywyLGEpfTt2YXIgSWo9ZnVuY3Rpb24oYSxiKXt0aGlzLm9hPWI9Yj09PXZvaWQgMD8hMTpiO3RoaXMuaT10aGlzLmxvY2FsZT1udWxsO3RoaXMuaD0wO3RoaXMuaj0hMTt0aGlzLmc9bmV3IEdqO051bWJlci5pc0ludGVnZXIoYSkmJnRoaXMuZy5iYihhKTtifHwodGhpcy5sb2NhbGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgibGFuZyIpKTtIaih0aGlzLG5ldyBDail9O0lqLnByb3RvdHlwZS5iYj1mdW5jdGlvbihhKXt0aGlzLmcuYmIoYSk7cmV0dXJuIHRoaXN9Owp2YXIgSGo9ZnVuY3Rpb24oYSxiKXtfLmRqKGEuZywxLGIpO18ud2koYiwxKXx8RGooYik7YS5vYXx8KGI9SmooYSksXy5YZShiLDUpfHxfLlIoYiw1LGEubG9jYWxlKSk7YS5pJiYoYj1KaihhKSxfLk0oYix6aiw5KXx8Xy5kaihiLDksYS5pKSl9LEtqPWZ1bmN0aW9uKGEsYil7YS5oPWJ9LExqPWZ1bmN0aW9uKGEpe3ZhciBiPWI9PT12b2lkIDA/VWk6Yjt2YXIgYz1hLm9hP3ZvaWQgMDp3aW5kb3c7Yz8kaShjLGIpLnRoZW4oZnVuY3Rpb24oZCl7YS5pPUFqKGQhPW51bGw/ZDoiW10iKTtkPUpqKGEpO18uZGooZCw5LGEuaSk7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSk6UHJvbWlzZS5yZXNvbHZlKCExKX0sSmo9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5NKGEuZyxDaiwxKTtifHwoYj1uZXcgQ2osSGooYSxiKSk7YT1iO2I9Xy5NKGEsQmosMTEpO2J8fChiPW5ldyBCaixfLmRqKGEsMTEsYikpO3JldHVybiBifSxNaj1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXtjPWM9PT0Kdm9pZCAwPzA6YztkPWQ9PT12b2lkIDA/MDpkO2U9ZT09PXZvaWQgMD9udWxsOmU7Zj1mPT09dm9pZCAwPzA6ZjtnPWc9PT12b2lkIDA/MDpnO2lmKCFhLm9hKXt2YXIgaD1KaihhKTt2YXIgaz1uZXcgeWo7az1fLlMoaywxLGEuaCk7az1fLnlpKGssMixhLmopO2Q9Xy5IaShrLDMsZD4wP2Q6dm9pZCAwKTtkPV8uSGkoZCw0LGY+MD9mOnZvaWQgMCk7ZD1fLkhpKGQsNSxnPjA/Zzp2b2lkIDApO2Y9ZC5BO2c9ZltfLkFdfDA7ZD1fLnpiKGQsZyk/ZDpfLm5jKGQsZixnKT9fLm9jKGQsZik6bmV3IGQuY29uc3RydWN0b3IoXy5tYyhmLGcsITApKTtfLmRqKGgsMTAsZCl9YT1PaShhLmcpO2g9RGF0ZS5ub3coKS50b1N0cmluZygpO2E9Xy51aShhLDQsaD09bnVsbD9oOlNpKGgpKTtiPWlqKGEsMyxiLnNsaWNlKCkpO2UmJihhPW5ldyB3aixlPV8uSGkoYSwxMyxlKSxhPW5ldyB4aixlPV8uZGooYSwyLGUpLGE9bmV3IEVqLGU9Xy5kaihhLDEsZSksZT1fLlMoZSwyLDkpLF8uZGooYiwxOCxlKSk7CmMmJl8uamooYiwxNCxjKTtyZXR1cm4gYn07YWoucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5oPXRoaXMuZz10aGlzLml9O3ZhciBlaj1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEsOCl9O18uSihlaixfLkQpO3ZhciBOaj1fLmlpKGVqKTt2YXIgZmo9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKGZqLF8uRCk7dmFyIE9qO09qPW5ldyBnajt2YXIgU2o9ZnVuY3Rpb24oYSl7Xy5vZC5jYWxsKHRoaXMpO3ZhciBiPXRoaXM7dGhpcy5nPVtdO3RoaXMuZ2E9IiI7dGhpcy5GPW51bGw7dGhpcy5LPSExO3RoaXMuYmE9dGhpcy5KPS0xO3RoaXMuSD1udWxsO3RoaXMudj10aGlzLmo9MDt0aGlzLkM9bnVsbDt0aGlzLkQ9dGhpcy5HPTA7dGhpcy5sYT0xO3RoaXMuZmI9MDt0aGlzLkxhPWEuTGE7dGhpcy54YT1hLnhhfHxmdW5jdGlvbigpe307dGhpcy5pPW5ldyBJaihhLkxhLGEub2EpO3RoaXMuWD1hLlh8fG51bGw7dGhpcy5CYT1hLkJhfHxudWxsO3RoaXMuQj1hLkllfHxudWxsO3RoaXMudGE9YS50YXx8bnVsbDt0aGlzLlFhPWEuUWF8fCExO3RoaXMud2l0aENyZWRlbnRpYWxzPSFhLkliO3RoaXMub2E9YS5vYXx8ITE7dGhpcy5WPSF0aGlzLm9hJiYhIXdpbmRvdyYmISF3aW5kb3cubmF2aWdhdG9yJiZ3aW5kb3cubmF2aWdhdG9yLnNlbmRCZWFjb24hPT12b2lkIDA7dGhpcy5QPXR5cGVvZiBVUkxTZWFyY2hQYXJhbXMhPT0idW5kZWZpbmVkIiYmCiEhKG5ldyBVUkwoUGooKSkpLnNlYXJjaFBhcmFtcyYmISEobmV3IFVSTChQaigpKSkuc2VhcmNoUGFyYW1zLnNldDt2YXIgYz1EaihuZXcgQ2opO0hqKHRoaXMuaSxjKTt0aGlzLmw9bmV3IGFqKDFFNCk7YT1Raih0aGlzLGEuQWMpO3RoaXMuaD1uZXcgc2oodGhpcy5sLmcsYSk7dGhpcy5SPW5ldyBzaig2RTUsYSk7dGhpcy5RYXx8dGhpcy5SLnN0YXJ0KCk7dGhpcy5vYXx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlPT09ImhpZGRlbiIpe1JqKGIpO3ZhciBkOyhkPWIuQyk9PW51bGx8fGQuZmx1c2goKX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsZnVuY3Rpb24oKXtSaihiKTt2YXIgZDsoZD1iLkMpPT1udWxsfHxkLmZsdXNoKCl9KSl9O18uSihTaixfLm9kKTsKdmFyIFFqPWZ1bmN0aW9uKGEsYil7aWYoIWEuUClyZXR1cm4gZnVuY3Rpb24oKXt9O3ZhciBjPWZ1bmN0aW9uKCl7YS5mbHVzaCgpfTtyZXR1cm4gYj9mdW5jdGlvbigpe2IoKS50aGVuKGMpfTpjfTtTai5wcm90b3R5cGUuaGE9ZnVuY3Rpb24oKXtSaih0aGlzKTt0aih0aGlzLmgpO3RqKHRoaXMuUik7Xy5vZC5wcm90b3R5cGUuaGEuY2FsbCh0aGlzKX07dmFyIFRqPWZ1bmN0aW9uKGEpe2EuQnx8KGEuQj1QaigpKTt0cnl7cmV0dXJuKG5ldyBVUkwoYS5CKSkudG9TdHJpbmcoKX1jYXRjaChiKXtyZXR1cm4obmV3IFVSTChhLkIsd2luZG93LmxvY2F0aW9uLm9yaWdpbikpLnRvU3RyaW5nKCl9fSxVaj1mdW5jdGlvbihhLGIsYyl7YS5DJiZhLkMuWWUoYixjKX07ClNqLnByb3RvdHlwZS5sb2c9ZnVuY3Rpb24oYSl7VWoodGhpcywyLDEpO2lmKHRoaXMuUCl7YT1PaShhKTt2YXIgYj10aGlzLmxhKys7Yj1hPV8uamooYSwyMSxiKTt2YXIgYz1fLkwoYiwxKTt2YXIgZD1kPT09dm9pZCAwPyExOmQ7dmFyIGU9dHlwZW9mIGM7ZD1jPT1udWxsP2M6ZT09PSJiaWdpbnQiP1N0cmluZygoMCxfLlFlKSg2NCxjKSk6Xy5ZaChjKT9lPT09InN0cmluZyI/UmkoYyk6ZD9fLmJpKGMpOl8uYWkoYyk6dm9pZCAwO2Q9PW51bGwmJihkPURhdGUubm93KCksZD1OdW1iZXIuaXNGaW5pdGUoZCk/ZC50b1N0cmluZygpOiIwIixfLnVpKGIsMSxkPT1udWxsP2Q6U2koZCkpKTtkPV8uTChiLDE1LHZvaWQgMCx2b2lkIDAsXy5kaSk7ZCE9bnVsbCYmKHR5cGVvZiBkPT09ImJpZ2ludCI/KDAsXy4kYikoZCk/ZD1OdW1iZXIoZCk6KGQ9KDAsXy5RZSkoNjQsZCksZD0oMCxfLiRiKShkKT9OdW1iZXIoZCk6U3RyaW5nKGQpKTpkPV8uWWgoZCk/dHlwZW9mIGQ9PT0ibnVtYmVyIj8KXy5haShkKTpSaShkKTp2b2lkIDApO2QhPW51bGx8fF8uamooYiwxNSwobmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCkqNjApO1VqKHRoaXMsMSwxKTtiPXRoaXMuZy5sZW5ndGgtMUUzKzE7Yj4wJiYodGhpcy5nLnNwbGljZSgwLGIpLHRoaXMuais9YixVaih0aGlzLDMsYikpO3RoaXMuZy5wdXNoKGEpO3RoaXMuUWF8fHRoaXMuaC5ofHx0aGlzLmguc3RhcnQoKX19OwpTai5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzO2lmKHRoaXMuZy5sZW5ndGg9PT0wKWEmJmEoKTtlbHNle3ZhciBkPURhdGUubm93KCk7aWYodGhpcy5iYT5kJiZ0aGlzLko8ZCliJiZiKCJ0aHJvdHRsZWQiKTtlbHNle3RoaXMuWCYmKHR5cGVvZiB0aGlzLlguUWI9PT0iZnVuY3Rpb24iP0tqKHRoaXMuaSx0aGlzLlguUWIoKSk6dGhpcy5pLmg9MCk7dmFyIGU9dGhpcy5nLmxlbmd0aCxmPU1qKHRoaXMuaSx0aGlzLmcsdGhpcy5qLHRoaXMudix0aGlzLkJhLHRoaXMuRyx0aGlzLkQpLGc9dGhpcy54YSgpO2lmKGcmJnRoaXMuZ2E9PT1nKWImJmIoInN0YWxlLWF1dGgtdG9rZW4iKTtlbHNle3RoaXMuZz1bXTt0aGlzLmguaCYmdGoodGhpcy5oKTt0aGlzLmo9MDtkPVppKGYpO3ZhciBoO3RoaXMuSCYmKGQubGVuZ3RoPHRoaXMuSC5mZT8wOnR5cGVvZiBDb21wcmVzc2lvblN0cmVhbSE9PSJ1bmRlZmluZWQiKSYmKGg9cmooZCkpO3ZhciBrPVZqKHRoaXMsZCwKZyksbT1mdW5jdGlvbihwKXtjLmwucmVzZXQoKTt1aihjLmgsYy5sLmcpO2lmKHApe3ZhciByPW51bGw7dHJ5e3ZhciB4PUpTT04uc3RyaW5naWZ5KEpTT04ucGFyc2UocC5yZXBsYWNlKCIpXX0nXG4iLCIiKSkpO3I9TmooeCl9Y2F0Y2goa2Epe31pZihyKXtwPU51bWJlcihfLkdpKHIsMSxfLkdiKCItMSIpKSk7cD4wJiYoYy5KPURhdGUubm93KCksYy5iYT1jLkorcCk7cD1Pai5nO3g9Xy5TYihfLlRiKTt2YXIgeTtfLnRiJiZ4JiYoKHk9ci5BW3hdKT09bnVsbD92b2lkIDA6eVtwXSkhPW51bGwmJl8ucmIoXy5GZSwzKTthOnt5PU9qLmc7dmFyIEM9Qz09PXZvaWQgMD8hMTpDO2lmKF8uU2IoXy5IZSkmJl8uU2IoXy5UYikmJnZvaWQgMD09PV8uSGUpe3A9ci5BO3g9cFtfLlRiXTtpZigheClicmVhayBhO2lmKHg9eC5jYyl0cnl7eChwLHksY2opO2JyZWFrIGF9Y2F0Y2goa2Epe18uQmEoa2EpfX1DJiYoQz1yLkEsKHA9Xy5TYihfLlRiKSkmJnAgaW4gQyYmKEM9Q1twXSkmJmRlbGV0ZSBDW3ldKX1DPQpPai5jdG9yP09qLmgocixPai5jdG9yLE9qLmcsT2ouaSk6T2ouaChyLE9qLmcsbnVsbCxPai5pKTtpZihDPUM9PT1udWxsP3ZvaWQgMDpDKUM9Xy5oaihDLDEsLTEpLEMhPT0tMSYmKGMubD1uZXcgYWooQzwxPzE6QyksdWooYy5oLGMubC5nKSl9fWEmJmEoKTtjLnY9MH0sbj1mdW5jdGlvbihwLHIpe3ZhciB4PV8uRmkoZixGaiwzLHZvaWQgMD09PV8uS2U/Mjo0KTt2YXIgeT1OdW1iZXIoXy5HaShmLDE0KSksQz1jLmw7Qy5oPU1hdGgubWluKDNFNSxDLmgqMik7Qy5nPU1hdGgubWluKDNFNSxDLmgrTWF0aC5yb3VuZCguMSooTWF0aC5yYW5kb20oKS0uNSkqMipDLmgpKTt1aihjLmgsYy5sLmcpO3A9PT00MDEmJmcmJihjLmdhPWcpO3kmJihjLmorPXkpO3I9PT12b2lkIDAmJihyPTUwMDw9cCYmcDw2MDB8fHA9PT00MDF8fHA9PT0wKTtyJiYoYy5nPXguY29uY2F0KGMuZyksYy5RYXx8Yy5oLmh8fGMuaC5zdGFydCgpKTtVaihjLDcsMSk7YiYmYigibmV0LXNlbmQtZmFpbGVkIixwKTsKKytjLnZ9LHE9ZnVuY3Rpb24oKXtjLlgmJmMuWC5zZW5kKGssbSxuKX07aD9oLnRoZW4oZnVuY3Rpb24ocCl7VWooYyw1LGUpO2suYmNbIkNvbnRlbnQtRW5jb2RpbmciXT0iZ3ppcCI7ay5iY1siQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2JpbmFyeSI7ay5ib2R5PXA7ay5JZD0yO3EoKX0sZnVuY3Rpb24oKXtVaihjLDYsZSk7cSgpfSk6cSgpfX19fTsKdmFyIFZqPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/bnVsbDpjO3ZhciBkPWQ9PT12b2lkIDA/YS53aXRoQ3JlZGVudGlhbHM6ZDt2YXIgZT17fSxmPW5ldyBVUkwoVGooYSkpO2MmJihlLkF1dGhvcml6YXRpb249Yyk7YS50YSYmKGVbIlgtR29vZy1BdXRoVXNlciJdPWEudGEsZi5zZWFyY2hQYXJhbXMuc2V0KCJhdXRodXNlciIsYS50YSkpO2EuRiYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJYLUdvb2ctUGFnZUlkIix7dmFsdWU6YS5GfSksZi5zZWFyY2hQYXJhbXMuc2V0KCJwYWdlSWQiLGEuRikpO3JldHVybnt1cmw6Zi50b1N0cmluZygpLGJvZHk6YixJZDoxLGJjOmUsdWU6IlBPU1QiLHdpdGhDcmVkZW50aWFsczpkLGZiOmEuZmJ9fSxSaj1mdW5jdGlvbihhKXthLmkuaj0hMDthLksmJihhLmkuaD0zLFdqKGEpKTthLmZsdXNoKCk7YS5pLmo9ITF9LFdqPWZ1bmN0aW9uKGEpe1hqKGEsZnVuY3Rpb24oYixjKXtiPW5ldyBVUkwoYik7Yi5zZWFyY2hQYXJhbXMuc2V0KCJmb3JtYXQiLAoianNvbiIpO3ZhciBkPSExO3RyeXtkPXdpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbihiLnRvU3RyaW5nKCksWmkoYykpfWNhdGNoKGUpe31kfHwoYS5WPSExKTtyZXR1cm4gZH0pfSxYaj1mdW5jdGlvbihhLGIpe2lmKGEuZy5sZW5ndGghPT0wKXt2YXIgYz1uZXcgVVJMKFRqKGEpKTtjLnNlYXJjaFBhcmFtcy5kZWxldGUoImZvcm1hdCIpO3ZhciBkPWEueGEoKTtkJiZjLnNlYXJjaFBhcmFtcy5zZXQoImF1dGgiLGQpO2Muc2VhcmNoUGFyYW1zLnNldCgiYXV0aHVzZXIiLGEudGF8fCIwIik7Zm9yKGQ9MDtkPDEwJiZhLmcubGVuZ3RoOysrZCl7dmFyIGU9YS5nLnNsaWNlKDAsMzIpLGY9TWooYS5pLGUsYS5qLGEudixhLkJhLGEuRyxhLkQpO2lmKCFiKGMudG9TdHJpbmcoKSxmKSl7KythLnY7YnJlYWt9YS5qPTA7YS52PTA7YS5HPTA7YS5EPTA7YS5nPWEuZy5zbGljZShlLmxlbmd0aCl9YS5oLmgmJnRqKGEuaCl9fSxQaj1mdW5jdGlvbigpe3JldHVybiJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9sb2c/Zm9ybWF0PWpzb24maGFzZmFzdD10cnVlIn07dmFyIFlqPWZ1bmN0aW9uKCl7dGhpcy5HZD10eXBlb2YgQWJvcnRDb250cm9sbGVyIT09InVuZGVmaW5lZCJ9OwpZai5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcyxlLGYsZyxoLGssbSxuLHEscCxyO3JldHVybiBfLlRkKGZ1bmN0aW9uKHgpe3N3aXRjaCh4Lmcpe2Nhc2UgMTpyZXR1cm4gZj0oZT1kLkdkP25ldyBBYm9ydENvbnRyb2xsZXI6dm9pZCAwKSYmYS5mYj4wP3NldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmFib3J0KCl9LGEuZmIpOnZvaWQgMCx4LnUoMiwzKSxnPU9iamVjdC5hc3NpZ24oe30se21ldGhvZDphLnVlLGhlYWRlcnM6T2JqZWN0LmFzc2lnbih7fSxhLmJjKX0sYS5ib2R5JiZ7Ym9keTphLmJvZHl9LGEud2l0aENyZWRlbnRpYWxzJiZ7Y3JlZGVudGlhbHM6ImluY2x1ZGUifSx7c2lnbmFsOmEuZmImJmU/ZS5zaWduYWw6bnVsbH0pLHguaChmZXRjaChhLnVybCxnKSw1KTtjYXNlIDU6aD14Lmk7aWYoaC5zdGF0dXMhPT0yMDApeyhrPWMpPT1udWxsfHxrKGguc3RhdHVzKTt4LlcoMyk7YnJlYWt9aWYoKG09Yik9PW51bGwpe3guVyg3KTticmVha31yZXR1cm4geC5oKGgudGV4dCgpLAo4KTtjYXNlIDg6bSh4LmkpO2Nhc2UgNzpjYXNlIDM6eC5LKCk7Y2xlYXJUaW1lb3V0KGYpO3guUigwKTticmVhaztjYXNlIDI6bj14LmwoKTtzd2l0Y2goKHE9bik9PW51bGw/dm9pZCAwOnEubmFtZSl7Y2FzZSAiQWJvcnRFcnJvciI6KHA9Yyk9PW51bGx8fHAoNDA4KTticmVhaztkZWZhdWx0OihyPWMpPT1udWxsfHxyKDQwMCl9eC5XKDMpfX0pfTtZai5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oKXtyZXR1cm4gNH07dmFyIFpqPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwPyIwIjpiO18ub2QuY2FsbCh0aGlzKTt0aGlzLkxhPWE7dGhpcy50YT1iO3RoaXMuQmE9dGhpcy5YPW51bGw7dGhpcy5nPSExO3RoaXMuRj1udWxsfTtfLkooWmosXy5vZCk7dmFyIGFrPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBaaigxMTEyLCIwIik7Yi5nPSEwO2I9Yi5JYigpO2IueGE9YTtyZXR1cm4gYn07WmoucHJvdG90eXBlLkliPWZ1bmN0aW9uKCl7dGhpcy5oPSEwO3JldHVybiB0aGlzfTsKdmFyIGJrPWZ1bmN0aW9uKGEpe2EuWHx8KGEuWD1uZXcgWWopO3ZhciBiPW5ldyBTaih7TGE6YS5MYSx4YTphLnhhP2EueGE6cGosdGE6YS50YSxJZToiaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vbG9nP2Zvcm1hdD1qc29uJmhhc2Zhc3Q9dHJ1ZSIsb2E6ITEsUWE6ITEsSWI6YS5oLEFjOmEuQWMsWDphLlh9KSxjPWJqKFFpLGIpO2EudT9jKCk6KGEub3x8KGEubz1bXSksYS5vLnB1c2goYykpO2IuSD1uZXcgcWo7YS5CYSYmKGIuQmE9YS5CYSk7YS5GJiYoYi5GPWEuRik7YS5nJiYoYi5LPWEuZyYmYi5WKTtMaihiLmkpO2EuWC5iYiYmYS5YLmJiKGEuTGEpO2EuWC56ZSYmYS5YLnplKGIpO3JldHVybiBifTt2YXIgY2s9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKGNrLF8uRCk7dmFyIGRrPWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSihkayxfLkQpO18uZWs9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKF8uZWssXy5EKTt2YXIgZms9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKGZrLF8uRCk7dmFyIGdrPWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSihnayxfLkQpO18uaGs9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5TKGEsMixiKX07dmFyIGlrPWZ1bmN0aW9uKCl7dGhpcy5pPXBlcmZvcm1hbmNlLm5vdygpfSxqazsKaWsucHJvdG90eXBlLmxvZz1mdW5jdGlvbihhKXtfLmpqKGEsMTQscGVyZm9ybWFuY2Uubm93KCktdGhpcy5pfDApO2lmKHRoaXMuZyl7dmFyIGI9Xy5SKGEsMSx0aGlzLmcuc2Vzc2lvbklkKTtiPV8uUihiLDYsdGhpcy5nLmFhKTtiPV8uUihiLDUsdGhpcy5nLmNsaWVudElkKTtiPV8uUyhiLDksdGhpcy5nLkwpO2I9Xy5TKGIsMTcsdGhpcy5nLlQpO18uUyhiLDE1LHRoaXMuZy5jb250ZXh0KTtpZih0aGlzLmcuSGEpe2I9dGhpcy5nLkhhO2lmKGIpe3ZhciBjPW5ldyBkazt2YXIgZD1iLnRkKCk7ZD1fLlMoYywxLGQpO3ZhciBlPWIudmQoKTtkPV8uUyhkLDIsZSk7ZT1iLnNkKCk7ZD1fLlMoZCwzLGUpO2U9Yi54ZCgpO2Q9Xy5IaShkLDQsZSk7ZT1iLnVkKCk7ZD1fLlMoZCw1LGUpO2U9Yi5xZCgpO2Q9Xy5TKGQsNixlKTtlPWIud2QoKTtfLlMoZCw3LGUpfWVsc2UgYz12b2lkIDA7Yz1fLmRqKGEsMTgsYyk7ZD1uZXcgXy5laztiPWIucmQoKTtiPV8uamooZCwxLGIpO18uZGooYyw3LApiKX10aGlzLmcuTD09PTImJnNjcmVlbiYmc2NyZWVuLmhlaWdodCYmc2NyZWVuLndpZHRoJiZfLnlpKGEsMTAsc2NyZWVuLndpZHRoPnNjcmVlbi5oZWlnaHQpfWI9bmV3IEZqO2M9Xy5MYihfLkwoYSwyKSk7Yj1fLkhpKGIsMTEsYyk7YT1aaShhKTthPV8uUihiLDgsYSk7Yj1qayh0aGlzKTtpZihhIGluc3RhbmNlb2YgRmopYi5sb2coYSk7ZWxzZSB0cnl7dmFyIGY9bmV3IEZqLGc9WmkoYSk7dmFyIGg9Xy5SKGYsOCxnKTtiLmxvZyhoKX1jYXRjaChrKXtVaihiLDQsMSl9Xy5FKCJsb2dnZWQgZXZlbnQ6ICIrWmkoYSkpfTtpay5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtqayh0aGlzKS5mbHVzaCgpfTsKXy5saz1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPW5ldyBmaztiPV8uUyhmLDEsYik7ZD1fLnlpKGIsMyxkKTtlPV8uUyhkLDE3LGUpO2lmKGMmJmMudHlwZSYmKGMudHlwZT09PSJjbGljayJ8fGMudHlwZT09PSJ0b3VjaGVuZCIpKXthOntkPW5ldyBjazt0cnl7dmFyIGc9Xy5qaihkLDEsYy5oLm9mZnNldFdpZHRoKTt2YXIgaD1fLmpqKGcsMixjLmgub2Zmc2V0SGVpZ2h0KTt2YXIgaz1fLmpqKGgsMyxjLmopO18uamooayw0LGMubCl9Y2F0Y2gobSl7Yz12b2lkIDA7YnJlYWsgYX1jPWR9Xy5kaihlLDIsYyl9YT1fLmtrKDgsITEsYSk7cmV0dXJuIF8uZGooYSwxMixlKX07Xy5raz1mdW5jdGlvbihhLGIsYyl7YT1fLmhrKG5ldyBnayxhKTtiPV8ueWkoYSwzLGIpO3JldHVybiBfLlMoYiwxMyxjKX07CmprPWZ1bmN0aW9uKGEpe2lmKGEuaClyZXR1cm4gYS5oO2EuaD1iayhhayhmdW5jdGlvbigpe3JldHVybiBudWxsfSkpO18uRSgiQ2xlYXJjdXQgdHJhbnNwb3J0IGluaXRpYWxpemVkIHdpdGggKDExMTIsIDApIik7cmV0dXJuIGEuaH07Xy5UPW5ldyBpazsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIHBrLHNrLEFrLEJrLENrLERrLEVrLEZrLEdrLEhrLElrLEprLEtrLExrLFRrLFZrLFdrO18ubWs9ZnVuY3Rpb24oYSl7aWYoXy50Yil7dmFyIGI7cmV0dXJuKGI9YVtfLkVpXSkhPW51bGw/YjphW18uRWldPW5ldyBNYXB9aWYoXy5FaSBpbiBhKXJldHVybiBhW18uRWldO2I9bmV3IE1hcDtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxfLkVpLHt2YWx1ZTpifSk7cmV0dXJuIGJ9O18ubms9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1hLmdldChkKTtpZihmIT1udWxsKXJldHVybiBmO2Zvcih2YXIgZz1mPTA7ZzxkLmxlbmd0aDtnKyspe3ZhciBoPWRbZ107Xy51YyhiLGgsZSkhPW51bGwmJihmIT09MCYmKGM9Xy50YyhiLGMsZix2b2lkIDAsZSkpLGY9aCl9YS5zZXQoZCxmKTtyZXR1cm4gZn07Cl8ub2s9ZnVuY3Rpb24oYSl7aWYoIWEuc3RhcnRzV2l0aCgiKV19J1xuIikpdGhyb3cgY29uc29sZS5lcnJvcigibWFsZm9ybWVkIEpTT04gcmVzcG9uc2U6IixhKSxFcnJvcigib2EiKTthPWEuc3Vic3RyaW5nKDUpO3JldHVybiBKU09OLnBhcnNlKGEpfTtwaz1mdW5jdGlvbihhLGIpe3JldHVybiBhPGI/LTE6YT5iPzE6MH07Cl8ucWs9ZnVuY3Rpb24oYSxiKXt2YXIgYz0wO2E9KDAsXy4kZCkoU3RyaW5nKGEpKS5zcGxpdCgiLiIpO2I9KDAsXy4kZCkoU3RyaW5nKGIpKS5zcGxpdCgiLiIpO2Zvcih2YXIgZD1NYXRoLm1heChhLmxlbmd0aCxiLmxlbmd0aCksZT0wO2M9PTAmJmU8ZDtlKyspe3ZhciBmPWFbZV18fCIiLGc9YltlXXx8IiI7ZG97Zj0vKFxkKikoXEQqKSguKikvLmV4ZWMoZil8fFsiIiwiIiwiIiwiIl07Zz0vKFxkKikoXEQqKSguKikvLmV4ZWMoZyl8fFsiIiwiIiwiIiwiIl07aWYoZlswXS5sZW5ndGg9PTAmJmdbMF0ubGVuZ3RoPT0wKWJyZWFrO2M9cGsoZlsxXS5sZW5ndGg9PTA/MDpwYXJzZUludChmWzFdLDEwKSxnWzFdLmxlbmd0aD09MD8wOnBhcnNlSW50KGdbMV0sMTApKXx8cGsoZlsyXS5sZW5ndGg9PTAsZ1syXS5sZW5ndGg9PTApfHxwayhmWzJdLGdbMl0pO2Y9ZlszXTtnPWdbM119d2hpbGUoYz09MCl9cmV0dXJuIGN9OwpfLnJrPWZ1bmN0aW9uKCl7dmFyIGE9Xy5DYSgpO2lmKF8uSmEoKSlyZXR1cm4gXy5TYShhKTthPV8uR2EoYSk7dmFyIGI9Xy5SYShhKTtyZXR1cm4gXy5JYSgpP2IoWyJWZXJzaW9uIiwiT3BlcmEiXSk6Xy5LYSgpP2IoWyJFZGdlIl0pOl8uTGEoKT9iKFsiRWRnIl0pOl8ueigiU2lsayIpP2IoWyJTaWxrIl0pOl8uT2EoKT9iKFsiQ2hyb21lIiwiQ3JpT1MiLCJIZWFkbGVzc0Nocm9tZSJdKTooYT1hWzJdKSYmYVsxXXx8IiJ9O3NrPWZ1bmN0aW9uKGEsYixjKXtpZihiJjIpdGhyb3cgRXJyb3IoKTt2YXIgZD1iJjEyOD9fLkxjOnZvaWQgMCxlPV8uZ2koYSxjLGQpLGY9ZT09PV8uSWU/NzplW18uQV18MCxnPV8uaGkoZixiKTtpZigyJmd8fF8uZWkoZyl8fDE2JmcpZz09PWZ8fF8uZWkoZyl8fF8ueGIoZSxnKSxlPV8uSWIoZSksZj0wLGc9Xy5maShnLGIpLF8udGMoYSxiLGMsZSxkKTtnJj0tMTM7ZyE9PWYmJl8ueGIoZSxnKTtyZXR1cm4gZX07Cl8udGs9ZnVuY3Rpb24oYSl7Xy5PYz1hPT09dm9pZCAwPyJ3YXJuIjphfTtfLnVrPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlICJhdXRvIjpyZXR1cm4gMTtjYXNlICJ1c2VyXzJ0YXAiOnJldHVybiA2O2Nhc2UgInVzZXJfMXRhcCI6cmV0dXJuIDU7Y2FzZSAiYnRuIjpyZXR1cm4gNztjYXNlICJidG5fY29uZmlybSI6cmV0dXJuIDg7Y2FzZSAiYnRuX2FkZF9zZXNzaW9uIjpyZXR1cm4gOTtjYXNlICJidG5fY29uZmlybV9hZGRfc2Vzc2lvbiI6cmV0dXJuIDEwO2Nhc2UgIml0cCI6cmV0dXJuIDExO2RlZmF1bHQ6cmV0dXJuIDJ9fTtfLnZrPWZ1bmN0aW9uKGEpe3ZhciBiPXt9O2lmKGEpZm9yKHZhciBjPV8udShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZD1kLnZhbHVlLGFbZF0hPT12b2lkIDAmJmFbZF0hPT0iIiYmKGJbZF09YVtkXSk7cmV0dXJuIGJ9OwpfLnhrPWZ1bmN0aW9uKGEsYil7YT1uZXcgXy5oZChhKTtiJiZfLmtkKGEsXy53ayhfLnZrKGIpKSk7cmV0dXJuIGEudG9TdHJpbmcoKX07Cl8ueWs9ZnVuY3Rpb24oKXt2YXIgYTtpZighKGE9Xy5QYSgpfHwoXy56KCJpUGFkIil8fF8ueigiaVBob25lIikpJiYhXy5QYSgpJiYhXy5PYSgpJiYhKF8uSGEoKT8wOl8ueigiQ29hc3QiKSkmJiFfLk5hKCkmJl8ueigiQXBwbGVXZWJLaXQiKSkmJihhPV8uWWEoKSkpe2E9Xy5DYSgpO3ZhciBiPSIiOyhfLlZhKCk/Xy5FYS5wbGF0Zm9ybT09PSJXaW5kb3dzIjpfLnooIldpbmRvd3MiKSk/KGI9L1dpbmRvd3MgKD86TlR8UGhvbmUpIChbMC05Ll0rKS8sYj0oYT1iLmV4ZWMoYSkpP2FbMV06IjAuMCIpOl8uWWEoKT8oYj0vKD86aVBob25lfGlQb2R8aVBhZHxDUFUpXHMrT1NccysoXFMrKS8sYj0oYT1iLmV4ZWMoYSkpJiZhWzFdLnJlcGxhY2UoL18vZywiLiIpKTpfLlphKCk/KGI9L01hYyBPUyBYIChbMC05Xy5dKykvLGI9KGE9Yi5leGVjKGEpKT9hWzFdLnJlcGxhY2UoL18vZywiLiIpOiIxMCIpOl8uQ2EoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImthaW9zIikhPS0xPyhiPS8oPzpLYWlPUylcLyhcUyspL2ksCmI9KGE9Yi5leGVjKGEpKSYmYVsxXSk6Xy5XYSgpPyhiPS9BbmRyb2lkXHMrKFteXCk7XSspKFwpfDspLyxiPShhPWIuZXhlYyhhKSkmJmFbMV0pOl8uJGEoKSYmKGI9Lyg/OkNyT1NccysoPzppNjg2fHg4Nl82NClccysoWzAtOS5dKykpLyxiPShhPWIuZXhlYyhhKSkmJmFbMV0pO2E9Xy5xayhifHwiIiwiMTQuNCIpPj0wfXJldHVybiBhfHxfLk5hKCkmJl8ucWsoXy5yaygpLCIxMDAiKT49MH07Xy56az1mdW5jdGlvbihhLGIpe3JldHVybiBfLlMoYSwzLGIpfTsKQWs9ZnVuY3Rpb24oYSl7aWYoYS5uYSYmdHlwZW9mIGEubmE9PSJmdW5jdGlvbiIpcmV0dXJuIGEubmEoKTtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXB8fHR5cGVvZiBTZXQhPT0idW5kZWZpbmVkIiYmYSBpbnN0YW5jZW9mIFNldClyZXR1cm4gQXJyYXkuZnJvbShhLnZhbHVlcygpKTtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiBhLnNwbGl0KCIiKTtpZihfLnRpKGEpKXtmb3IodmFyIGI9W10sYz1hLmxlbmd0aCxkPTA7ZDxjO2QrKyliLnB1c2goYVtkXSk7cmV0dXJuIGJ9Yj1bXTtjPTA7Zm9yKGQgaW4gYSliW2MrK109YVtkXTtyZXR1cm4gYn07CkJrPWZ1bmN0aW9uKGEpe2lmKGEuVWEmJnR5cGVvZiBhLlVhPT0iZnVuY3Rpb24iKXJldHVybiBhLlVhKCk7aWYoIWEubmF8fHR5cGVvZiBhLm5hIT0iZnVuY3Rpb24iKXtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXApcmV0dXJuIEFycmF5LmZyb20oYS5rZXlzKCkpO2lmKCEodHlwZW9mIFNldCE9PSJ1bmRlZmluZWQiJiZhIGluc3RhbmNlb2YgU2V0KSl7aWYoXy50aShhKXx8dHlwZW9mIGE9PT0ic3RyaW5nIil7dmFyIGI9W107YT1hLmxlbmd0aDtmb3IodmFyIGM9MDtjPGE7YysrKWIucHVzaChjKTtyZXR1cm4gYn1iPVtdO2M9MDtmb3IodmFyIGQgaW4gYSliW2MrK109ZDtyZXR1cm4gYn19fTtDaz0vXmh0dHBzPyQvaTtEaz1bIlBPU1QiLCJQVVQiXTtFaz1bXTtGaz1mdW5jdGlvbihhKXthLk1ifHwoYS5NYj0hMCxhLmRpc3BhdGNoRXZlbnQoImNvbXBsZXRlIiksYS5kaXNwYXRjaEV2ZW50KCJlcnJvciIpKX07CkdrPWZ1bmN0aW9uKGEsYil7aWYoYS5JKXthLkRhJiYoY2xlYXJUaW1lb3V0KGEuRGEpLGEuRGE9bnVsbCk7dmFyIGM9YS5JO2EuST1udWxsO2J8fGEuZGlzcGF0Y2hFdmVudCgicmVhZHkiKTt0cnl7Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbH1jYXRjaChkKXt9fX07SGs9ZnVuY3Rpb24oYSl7YS5xYT0hMTthLkkmJihhLkFhPSEwLGEuSS5hYm9ydCgpLGEuQWE9ITEpO0ZrKGEpO0drKGEpfTtJaz1mdW5jdGlvbihhKXtyZXR1cm4gYS5JP2EuSS5yZWFkeVN0YXRlOjB9OwpKaz1mdW5jdGlvbihhKXtpZihhLnFhJiZ0eXBlb2YgXy51YSE9InVuZGVmaW5lZCIpaWYoYS51YiYmSWsoYSk9PTQpc2V0VGltZW91dChhLmpkLmJpbmQoYSksMCk7ZWxzZSBpZihhLmRpc3BhdGNoRXZlbnQoInJlYWR5c3RhdGVjaGFuZ2UiKSxJayhhKT09NCl7YS5xYT0hMTt0cnl7dmFyIGI9YS5TYygpO2E6c3dpdGNoKGIpe2Nhc2UgMjAwOmNhc2UgMjAxOmNhc2UgMjAyOmNhc2UgMjA0OmNhc2UgMjA2OmNhc2UgMzA0OmNhc2UgMTIyMzp2YXIgYz0hMDticmVhayBhO2RlZmF1bHQ6Yz0hMX12YXIgZDtpZighKGQ9Yykpe3ZhciBlO2lmKGU9Yj09PTApe3ZhciBmPVN0cmluZyhhLlViKS5tYXRjaChfLmVkKVsxXXx8bnVsbDshZiYmXy53LnNlbGYmJl8udy5zZWxmLmxvY2F0aW9uJiYoZj1fLncuc2VsZi5sb2NhdGlvbi5wcm90b2NvbC5zbGljZSgwLC0xKSk7ZT0hQ2sudGVzdChmP2YudG9Mb3dlckNhc2UoKToiIil9ZD1lfWQ/KGEuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSxhLmRpc3BhdGNoRXZlbnQoInN1Y2Nlc3MiKSk6CkZrKGEpfWZpbmFsbHl7R2soYSl9fX07S2s9ZnVuY3Rpb24oYSxiKXtyZXR1cm57dHlwZTpiLGxlbmd0aENvbXB1dGFibGU6YS5sZW5ndGhDb21wdXRhYmxlLGxvYWRlZDphLmxvYWRlZCx0b3RhbDphLnRvdGFsfX07TGs9ZnVuY3Rpb24oKXtfLnVkLmNhbGwodGhpcyk7dGhpcy5oZWFkZXJzPW5ldyBNYXA7dGhpcy5xYT0hMTt0aGlzLkk9bnVsbDt0aGlzLlViPSIiO3RoaXMuQWE9dGhpcy5SYj10aGlzLnViPXRoaXMuTWI9ITE7dGhpcy5tZD0wO3RoaXMuRGE9bnVsbDt0aGlzLmxkPSIiO3RoaXMucmU9dGhpcy5mYz0hMTt0aGlzLkZiPXRoaXMuZWM9bnVsbH07Xy5ZZChMayxfLnVkKTtfLmw9TGsucHJvdG90eXBlO18ubC5LZD1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpO18uYmIoRWssdGhpcyl9O18ubC5zZXRUcnVzdFRva2VuPWZ1bmN0aW9uKGEpe3RoaXMuZWM9YX07Xy5sLnNldEF0dHJpYnV0aW9uUmVwb3J0aW5nPWZ1bmN0aW9uKGEpe3RoaXMuRmI9YX07Cl8ubC5zZW5kPWZ1bmN0aW9uKGEsYixjLGQpe2lmKHRoaXMuSSl0aHJvdyBFcnJvcigiUWAiK3RoaXMuVWIrImAiK2EpO2I9Yj9iLnRvVXBwZXJDYXNlKCk6IkdFVCI7dGhpcy5VYj1hO3RoaXMuTWI9ITE7dGhpcy5xYT0hMDt0aGlzLkk9bmV3IFhNTEh0dHBSZXF1ZXN0O3RoaXMuSS5vbnJlYWR5c3RhdGVjaGFuZ2U9KDAsXy5IZikoKDAsXy5GZCkodGhpcy5qZCx0aGlzKSk7dGhpcy5yZSYmIm9ucHJvZ3Jlc3MiaW4gdGhpcy5JJiYodGhpcy5JLm9ucHJvZ3Jlc3M9KDAsXy5IZikoKDAsXy5GZCkoZnVuY3Rpb24oZyl7dGhpcy5nZChnLCEwKX0sdGhpcykpLHRoaXMuSS51cGxvYWQmJih0aGlzLkkudXBsb2FkLm9ucHJvZ3Jlc3M9KDAsXy5IZikoKDAsXy5GZCkodGhpcy5nZCx0aGlzKSkpKTt0cnl7dGhpcy5SYj0hMCx0aGlzLkkub3BlbihiLFN0cmluZyhhKSwhMCksdGhpcy5SYj0hMX1jYXRjaChnKXtIayh0aGlzKTtyZXR1cm59YT1jfHwiIjtjPW5ldyBNYXAodGhpcy5oZWFkZXJzKTsKaWYoZClpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZCk9PT1PYmplY3QucHJvdG90eXBlKWZvcih2YXIgZSBpbiBkKWMuc2V0KGUsZFtlXSk7ZWxzZSBpZih0eXBlb2YgZC5rZXlzPT09ImZ1bmN0aW9uIiYmdHlwZW9mIGQuZ2V0PT09ImZ1bmN0aW9uIil7ZT1fLnUoZC5rZXlzKCkpO2Zvcih2YXIgZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZj1mLnZhbHVlLGMuc2V0KGYsZC5nZXQoZikpfWVsc2UgdGhyb3cgRXJyb3IoIlJgIitTdHJpbmcoZCkpO2Q9QXJyYXkuZnJvbShjLmtleXMoKSkuZmluZChmdW5jdGlvbihnKXtyZXR1cm4iY29udGVudC10eXBlIj09Zy50b0xvd2VyQ2FzZSgpfSk7ZT1fLncuRm9ybURhdGEmJmEgaW5zdGFuY2VvZiBfLncuRm9ybURhdGE7ISgoMCxfLmFiKShEayxiKT49MCl8fGR8fGV8fGMuc2V0KCJDb250ZW50LVR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIpO2I9Xy51KGMpO2ZvcihkPWIubmV4dCgpOyFkLmRvbmU7ZD0KYi5uZXh0KCkpYz1fLnUoZC52YWx1ZSksZD1jLm5leHQoKS52YWx1ZSxjPWMubmV4dCgpLnZhbHVlLHRoaXMuSS5zZXRSZXF1ZXN0SGVhZGVyKGQsYyk7dGhpcy5sZCYmKHRoaXMuSS5yZXNwb25zZVR5cGU9dGhpcy5sZCk7IndpdGhDcmVkZW50aWFscyJpbiB0aGlzLkkmJnRoaXMuSS53aXRoQ3JlZGVudGlhbHMhPT10aGlzLmZjJiYodGhpcy5JLndpdGhDcmVkZW50aWFscz10aGlzLmZjKTtpZigic2V0VHJ1c3RUb2tlbiJpbiB0aGlzLkkmJnRoaXMuZWMpdHJ5e3RoaXMuSS5zZXRUcnVzdFRva2VuKHRoaXMuZWMpfWNhdGNoKGcpe31pZigic2V0QXR0cmlidXRpb25SZXBvcnRpbmciaW4gdGhpcy5JJiZ0aGlzLkZiKXRyeXt0aGlzLkkuc2V0QXR0cmlidXRpb25SZXBvcnRpbmcodGhpcy5GYil9Y2F0Y2goZyl7fXRyeXt0aGlzLkRhJiYoY2xlYXJUaW1lb3V0KHRoaXMuRGEpLHRoaXMuRGE9bnVsbCksdGhpcy5tZD4wJiYodGhpcy5EYT1zZXRUaW1lb3V0KHRoaXMuRmUuYmluZCh0aGlzKSwKdGhpcy5tZCkpLHRoaXMudWI9ITAsdGhpcy5JLnNlbmQoYSksdGhpcy51Yj0hMX1jYXRjaChnKXtIayh0aGlzKX19O18ubC5GZT1mdW5jdGlvbigpe3R5cGVvZiBfLnVhIT0idW5kZWZpbmVkIiYmdGhpcy5JJiYodGhpcy5kaXNwYXRjaEV2ZW50KCJ0aW1lb3V0IiksdGhpcy5hYm9ydCg4KSl9O18ubC5hYm9ydD1mdW5jdGlvbigpe3RoaXMuSSYmdGhpcy5xYSYmKHRoaXMucWE9ITEsdGhpcy5BYT0hMCx0aGlzLkkuYWJvcnQoKSx0aGlzLkFhPSExLHRoaXMuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSx0aGlzLmRpc3BhdGNoRXZlbnQoImFib3J0IiksR2sodGhpcykpfTtfLmwuaGE9ZnVuY3Rpb24oKXt0aGlzLkkmJih0aGlzLnFhJiYodGhpcy5xYT0hMSx0aGlzLkFhPSEwLHRoaXMuSS5hYm9ydCgpLHRoaXMuQWE9ITEpLEdrKHRoaXMsITApKTtMay51YS5oYS5jYWxsKHRoaXMpfTsKXy5sLmpkPWZ1bmN0aW9uKCl7dGhpcy5YYygpfHwodGhpcy5SYnx8dGhpcy51Ynx8dGhpcy5BYT9Kayh0aGlzKTp0aGlzLnBlKCkpfTtfLmwucGU9ZnVuY3Rpb24oKXtKayh0aGlzKX07Xy5sLmdkPWZ1bmN0aW9uKGEsYil7dGhpcy5kaXNwYXRjaEV2ZW50KEtrKGEsInByb2dyZXNzIikpO3RoaXMuZGlzcGF0Y2hFdmVudChLayhhLGI/ImRvd25sb2FkcHJvZ3Jlc3MiOiJ1cGxvYWRwcm9ncmVzcyIpKX07Xy5sLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLkl9O18ubC5TYz1mdW5jdGlvbigpe3RyeXtyZXR1cm4gSWsodGhpcyk+Mj90aGlzLkkuc3RhdHVzOi0xfWNhdGNoKGEpe3JldHVybi0xfX07Xy5sLmdldFJlc3BvbnNlSGVhZGVyPWZ1bmN0aW9uKGEpe2lmKHRoaXMuSSYmSWsodGhpcyk9PTQpcmV0dXJuIGE9dGhpcy5JLmdldFJlc3BvbnNlSGVhZGVyKGEpLGE9PT1udWxsP3ZvaWQgMDphfTsKXy5sLmdldEFsbFJlc3BvbnNlSGVhZGVycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkkmJklrKHRoaXMpPj0yP3RoaXMuSS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKXx8IiI6IiJ9O18uTWs9ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBhLkk/YS5JLnJlc3BvbnNlVGV4dDoiIn1jYXRjaChiKXtyZXR1cm4iIn19O18uTms9ZnVuY3Rpb24oYSxiKXthPWEuQTtyZXR1cm4gXy5uayhfLm1rKGEpLGEsdm9pZCAwLGIpfTtfLk9rPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5OayhhLGIpPT09Yz9jOi0xfTtfLlBrPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uSmIoXy5MKGEsYix2b2lkIDAsXy5VZSkpfTsKXy53az1mdW5jdGlvbihhKXt2YXIgYj1CayhhKTtpZih0eXBlb2YgYj09InVuZGVmaW5lZCIpdGhyb3cgRXJyb3IoIk4iKTt2YXIgYz1uZXcgXy5uZChudWxsKTthPUFrKGEpO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdLGY9YVtkXTtBcnJheS5pc0FycmF5KGYpP18uR2YoYyxlLGYpOmMuYWRkKGUsZil9cmV0dXJuIGN9O18uUWs9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPW5ldyBMaztFay5wdXNoKGcpO2ImJmcuTSgiY29tcGxldGUiLGIpO2cuVmIoInJlYWR5IixnLktkKTtmJiYoZy5mYz1mKTtnLnNlbmQoYSxjLGQsZSl9O18uUms9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKF8uUmssXy5EKTtfLlNrPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uTWIoXy5MKGEsYix2b2lkIDAsXy5VZSkpfTsKVGs9bmV3IF8uemMoZnVuY3Rpb24oYSxiLGMpe2lmKGEuaCE9PTIpcmV0dXJuITE7YT1hLm8oKTtzayhiLGJbXy5BXXwwLGMpLnB1c2goYSk7cmV0dXJuITB9LGZ1bmN0aW9uKGEsYixjKXtpZihBcnJheS5pc0FycmF5KGIpKXt2YXIgZD1iW18uQV18MDtpZighKGQmNCkpe2Zvcih2YXIgZT0wLGY9MDtlPGIubGVuZ3RoO2UrKyl7dmFyIGc9Xy5OYihiW2VdKTtnIT1udWxsJiYoYltmKytdPWcpfWY8ZSYmKGIubGVuZ3RoPWYpO2U9KGR8NSkmLTE1Mzc7ZSE9PWQmJl8ueGIoYixlKTtlJjImJk9iamVjdC5mcmVlemUoYil9fWVsc2UgYj12b2lkIDA7aWYoYiE9bnVsbClmb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKWU9YSxmPWMsZz1iW2RdLGchPW51bGwmJl8uYWYoZSxmLF8uemEoZykpfSxfLmNmKTtWaz12b2lkIDA7Vms9Vms9PT12b2lkIDA/Xy55YzpWazsKXy5Vaz1uZXcgXy56YyhmdW5jdGlvbihhLGIsYyxkLGUpe2lmKGEuaCE9PTIpcmV0dXJuITE7dmFyIGY9YS5sO2Q9Xy5pYyh2b2lkIDAsZCk7c2soYixiW18uQV18MCxjKS5wdXNoKGQpO2YuY2FsbChhLGQsZSk7cmV0dXJuITB9LGZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShiKSl7Zm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBnPWEsaD1jLGs9ZSxtPV8uQmMoYltmXSxkKTttIT1udWxsJiYoaD1fLkNjKGcsaCksayhtLGcpLF8uRGMoZyxoKSl9YT1iW18uQV18MDthJjF8fF8ueGIoYixhfDEpfX0sVmspO1drPVswLF8uaGZdO18uWGs9WzAsXy5oZiwtMl07Xy5Zaz1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooXy5ZayxfLkQpO18ubD1fLllrLnByb3RvdHlwZTtfLmwudGI9ZnVuY3Rpb24oKXtyZXR1cm4gXy5OKHRoaXMsMSl9O18ubC5QYj1mdW5jdGlvbigpe3JldHVybiBfLnhpKHRoaXMsMSl9OwpfLmwuTmM9ZnVuY3Rpb24oKXtyZXR1cm4gXy5OKHRoaXMsMyl9O18ubC5SZD1mdW5jdGlvbigpe3JldHVybiBfLnhpKHRoaXMsMyl9O18ubC5QYz1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcyw0KX07Xy5sLlNkPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueGkodGhpcyw0KX07Xy5sLlRkPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueGkodGhpcyw2KX07Xy5sLmRhPWZ1bmN0aW9uKCl7cmV0dXJuIF8uUGsodGhpcyw3KX07Xy5aaz1bMCxfLmhmLC01LF8uZ2YsV2ssVGssXy5oZixfLmdmLFRrLF8uZ2YsLTEsVGssLTFdOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnNtPWZ1bmN0aW9uKGEpe3ZhciBiPV8uWGUoYSwzKTtpZihiJiYoYj1iLnRyaW0oKSxiLmxlbmd0aCE9PTApKXJldHVybiBiO2E9Xy5OKGEsMik7YT1fLkFmKGEpLmc7YS5zdGFydHNXaXRoKCJ3d3cuIikmJihhPWEuc3Vic3RyKDQpKTtyZXR1cm4gYX07Xy50bT1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooXy50bSxfLkQpO18udW09ZnVuY3Rpb24oYSl7cmV0dXJuIF8uWGUoYSwxKX07Xy5sPV8udG0ucHJvdG90eXBlO18ubC5tYT1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcywzKX07Xy5sLlFjPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTih0aGlzLDQpfTtfLmwuUmM9ZnVuY3Rpb24oKXtyZXR1cm4gXy5OKHRoaXMsNSl9O18ubC5UYz1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcyw2KX07Xy5sLlVkPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTih0aGlzLDcpfTtfLnZtPVswLF8uaGYsLTYsXy5nZl07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciB3bSx5bSxBbSx6bSxFbTt3bT1mdW5jdGlvbihhLGIpe2EuZ2E9ZnVuY3Rpb24oYyl7Yi5sKGMpfX07Xy54bT1fLktjKGZ1bmN0aW9uKGEsYixjKXtpZihhLmghPT0wKXJldHVybiExO18uTWMoYixjLF8udmgoYS5nKSk7cmV0dXJuITB9LGZ1bmN0aW9uKGEsYixjKXtiPV8uTWIoYik7YiE9bnVsbCYmYiE9bnVsbCYmKF8uWWUoYS5nLGMqOCksXy5aZShhLmcsYikpfSxfLmRmKTt5bT1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLmFhPWE7dGhpcy5jaGFubmVsSWQ9Yjt0aGlzLmk9Yz09PXZvaWQgMD8icGlja2VyX2lmcmFtZSI6Yzt0aGlzLnNlc3Npb25JZD1kO3RoaXMuaj0hMTt0aGlzLmg9dGhpcy5nPW51bGx9OwpBbT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgXy5LaTtpZihhLmopcmV0dXJuIGIucmVqZWN0KCJTZXR1cCBwcm9jZXNzIGhhcyBhbHJlYWR5IHN0YXJ0ZWQgYmVmb3JlLiIpLGIucHJvbWlzZTthLmo9ITA7YS5oPWI7Xy5YZih3aW5kb3csIm1lc3NhZ2UiLGZ1bmN0aW9uKGQpe2E6aWYoZD1kLmcsIWEuZyYmYS5oJiZkLm9yaWdpbj09PWEuYWEmJmQuZGF0YSYmZC5kYXRhLnR5cGU9PT0iY2hhbm5lbENvbm5lY3QiKXt2YXIgZT1hLmg7YS5oPW51bGw7aWYoYS5pIT09ImJ1dHRvbl9pZnJhbWUiKXt2YXIgZj1kLmRhdGEubm9uY2U7aWYoIWYpe2UucmVqZWN0KCJJbnZhbGlkIGNoYW5uZWwgc2V0dXAgbWVzc2FnZSBmcm9tIGNsaWVudC4iKTticmVhayBhfWlmKChmJiZfLnFpKGYpKSE9PWEuY2hhbm5lbElkKXtlLnJlamVjdCgiTm9uY2UgbWlzbWF0Y2ggd2hlbiBzZXR0aW5nIHVwIGNoYW5uZWwuIik7YnJlYWsgYX19YS5nPWQucG9ydHNbMF07Xy5JaSh3aW5kb3csIm1lc3NhZ2UiKTtlLnJlc29sdmUoKX19LAohMSk7dmFyIGM9e3R5cGU6InJlYWR5Rm9yQ29ubmVjdCJ9O2EuaT09PSJidXR0b25faWZyYW1lIj8oYy5pZnJhbWVJZD1hLmNoYW5uZWxJZCxjLnNlc3Npb25JZD1hLnNlc3Npb25JZCk6Yy5jaGFubmVsSWQ9YS5jaGFubmVsSWQ7em0oYSxjKTtyZXR1cm4gYi5wcm9taXNlfTt6bT1mdW5jdGlvbihhLGIpe2EuaT09PSJwaWNrZXJfcG9wdXAiP3dpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoYixhLmFhKTp3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGIsYS5hYSl9O18uQm09ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgXy5LaTthLmc/KGEuZy5wb3N0TWVzc2FnZShiKSxjLnJlc29sdmUoKSk6Yy5yZWplY3QoIklsbGVnYWwgc3RhdGU6IHRyeSB0byBzZW5kIG1lc3NhZ2UgYmVmb3JlIG1lc3NhZ2UgY2hhbm5lbCBzZXQgdXAuIik7cmV0dXJuIGMucHJvbWlzZX07Xy5DbT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uQm0oYSx7dHlwZToicmVzcG9uc2UiLHJlc3BvbnNlOmIsYW5ub3VuY2VtZW50OmN9KX07Cl8uRG09ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2I9e3R5cGU6ImNvbW1hbmQiLGNvbW1hbmQ6InJlc2l6ZSIsaGVpZ2h0OmJ9O2MmJmQmJihiLndpZHRoPWMsYi5pZnJhbWVJZD1kLGIudmVydGljYWxNYXJnaW49ZSxiLmhvcml6b250YWxNYXJnaW49Zik7cmV0dXJuIF8uQm0oYSxiKX07eW0ucHJvdG90eXBlLmw9ZnVuY3Rpb24oYSl7Xy5CbSh0aGlzLHt0eXBlOiJhY3Rpdml0eSIsYWN0aXZpdHk6YX0pfTtFbT1mdW5jdGlvbihhLGIpe3RoaXMuY2xpZW50SWQ9YTt0aGlzLmFhPWJ9OwpfLkZtPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtlPWU9PT12b2lkIDA/InBpY2tlcl9pZnJhbWUiOmU7Xy5OaS5jYWxsKHRoaXMsYSk7dGhpcy5CPWU7dGhpcy5KPSh0aGlzLkQ9ZT09PSJkaXJlY3RfbWVzc2FnZSJ8fGU9PT0icGlja2VyX3JlZGlyZWN0Inx8ZT09PSJwaWNrZXJfcmVsYXkiKT92b2lkIDA6bmV3IHltKGMsZCxlLGYpO3RoaXMuaGI9bmV3IEVtKGIsYyk7dGhpcy5pZnJhbWVJZD1lPT09ImJ1dHRvbl9pZnJhbWUiP2Q6bnVsbDt0aGlzLmJhPXRoaXMuSz0hMX07Xy5KKF8uRm0sXy5OaSk7Xy5GbS5wcm90b3R5cGUuaD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIHRoaXMuRHx8dGhpcy5LP1Byb21pc2UucmVzb2x2ZSh2b2lkIDApOkFtKHRoaXMuSikudGhlbihmdW5jdGlvbigpe3dtKGEsYS5KKTthLks9ITA7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh2b2lkIDApfSxmdW5jdGlvbihiKXtfLkgoIkZhaWxlZCB0byBpbml0aWFsaXplIGNvbXBvbmVudC4gIitiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCl9KX07Cl8uR209ZnVuY3Rpb24oYSl7aWYoYS5EfHwhYS5LKXRocm93IEVycm9yKCJHYSIpO3JldHVybiBhLkp9O18uRm0ucHJvdG90eXBlLm89ZnVuY3Rpb24oYSxiKXtpZih0aGlzLkR8fHRoaXMuQj09PSJwaWNrZXJfcG9wdXAiKXJldHVybiBQcm9taXNlLnJlc29sdmUodm9pZCAwKTthPT09dm9pZCAwJiYoYT10aGlzLmc/dGhpcy5nLk5hKCk6dGhpcy5jb250YWluZXIub2Zmc2V0SGVpZ2h0KTtpZih0aGlzLkI9PT0icGlja2VyX2lmcmFtZSIpcmV0dXJuIF8uRG0oXy5HbSh0aGlzKSxhKTtpZighdGhpcy5pZnJhbWVJZClyZXR1cm4gXy5IKCJUcnlpbmcgdG8gcmVzaXplIGlmcmFtZSBpbiB0aGUgd3JvbmcgY29udGV4dC4iKSxQcm9taXNlLnJlamVjdCgpO2I9PT12b2lkIDAmJihiPXRoaXMuZz90aGlzLmcuQmIoKTp0aGlzLmNvbnRhaW5lci5vZmZzZXRXaWR0aCk7cmV0dXJuIF8uRG0oXy5HbSh0aGlzKSxhLGIsdGhpcy5pZnJhbWVJZCl9OwpfLkZtLnByb3RvdHlwZS5pPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7cmV0dXJuIF8uTmkucHJvdG90eXBlLmkuY2FsbCh0aGlzLGEpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYi5CPT09InBpY2tlcl9pZnJhbWUifHxiLkI9PT0iYnV0dG9uX2lmcmFtZSI/KCFiLmJhJiZkb2N1bWVudC5mb250cyYmZG9jdW1lbnQuZm9udHMucmVhZHkmJmRvY3VtZW50LmZvbnRzLnJlYWR5LnRoZW4oZnVuY3Rpb24oKXtiLmJhPSEwO2IubygpfSksYi5vKCkpOlByb21pc2UucmVzb2x2ZSh2b2lkIDApfSl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewovKgogQ29weXJpZ2h0IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0aG9ycy4KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciAkayxnbCxpbCxsbCxhbCxmbDskaz1mdW5jdGlvbigpe3ZhciBhPW51bGw7aWYoIV8ua2YpcmV0dXJuIGE7dHJ5e3ZhciBiPWZ1bmN0aW9uKGMpe3JldHVybiBjfTthPV8ua2YuY3JlYXRlUG9saWN5KCJnb29nI2h0bWwiLHtjcmVhdGVIVE1MOmIsY3JlYXRlU2NyaXB0OmIsY3JlYXRlU2NyaXB0VVJMOmJ9KX1jYXRjaChjKXt9cmV0dXJuIGF9O18uYmw9ZnVuY3Rpb24oKXthbD09PXZvaWQgMCYmKGFsPSRrKCkpO3JldHVybiBhbH07Xy5kbD1mdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgXy5jbCYmYSBpbnN0YW5jZW9mIF8uY2x9O18uZWw9ZnVuY3Rpb24oYSl7aWYoXy5kbChhKSlyZXR1cm4gYS5nO3Rocm93IEVycm9yKCJHIik7fTtnbD1mdW5jdGlvbihhKXt2YXIgYj1fLmJsKCk7YT1iP2IuY3JlYXRlSFRNTChhKTphO3JldHVybiBuZXcgZmwoYSl9OwpfLmhsPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBmbClyZXR1cm4gYS5nO3Rocm93IEVycm9yKCJHIik7fTtpbD1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGZsP2E6Z2woU3RyaW5nKGEpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJmFwb3M7IikpfTsKbGw9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD1hLmxlbmd0aCxlPTAsZj1bXSxnLGgsaz0wO2s8ZDspe3N3aXRjaChlKXtjYXNlIDA6dmFyIG09YS5pbmRleE9mKCI8IixrKTtpZihtPDApe2lmKGMubGVuZ3RoPT09MClyZXR1cm4gYTtjLnB1c2goYS5zdWJzdHJpbmcoaykpO2s9ZH1lbHNlIGMucHVzaChhLnN1YnN0cmluZyhrLG0pKSxoPW0saz1tKzEsamw/KGtsLmxhc3RJbmRleD1rLG09a2wuZXhlYyhhKSk6KGtsLmxhc3RJbmRleD0wLG09a2wuZXhlYyhhLnN1YnN0cmluZyhrKSkpLG0/KGY9WyI8IixtWzBdXSxnPW1bMV0sZT0xLGsrPW1bMF0ubGVuZ3RoKTpjLnB1c2goIjwiKTticmVhaztjYXNlIDE6bT1hLmNoYXJBdChrKyspO3N3aXRjaChtKXtjYXNlICInIjpjYXNlICciJzp2YXIgbj1hLmluZGV4T2YobSxrKTtuPDA/az1kOihmLnB1c2gobSxhLnN1YnN0cmluZyhrLG4rMSkpLGs9bisxKTticmVhaztjYXNlICI+IjpmLnB1c2gobSk7Yy5wdXNoKGIoZi5qb2luKCIiKSwKZykpO2U9MDtmPVtdO2g9Zz1udWxsO2JyZWFrO2RlZmF1bHQ6Zi5wdXNoKG0pfWJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoKTt9ZT09PTEmJms+PWQmJihrPWgrMSxjLnB1c2goIjwiKSxlPTAsZj1bXSxoPWc9bnVsbCl9cmV0dXJuIGMuam9pbigiIil9O18ub2w9ZnVuY3Rpb24oYSxiLGMsZCl7KGI9YihjfHxtbCxkKSkmJmIuaSYmYT9iLmkoYSk6KGI9Xy5ubChiKSxhLmlubmVySFRNTD1fLmhsKGIpKX07Xy5ubD1mdW5jdGlvbihhKXtyZXR1cm4gXy5VZChhKT9hLm5kJiYoYT1hLm5kKCksYSBpbnN0YW5jZW9mIGZsKT9hOmlsKCJ6U295eiIpOmlsKFN0cmluZyhhKSl9O18ucGw9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGU7cmV0dXJue2lkOihiPWEuUGIoKSkhPW51bGw/YjpudWxsLGdpdmVuTmFtZTooYz1hLlNkKCkpIT1udWxsP2M6bnVsbCxkaXNwbGF5TmFtZTooZD1hLlJkKCkpIT1udWxsP2Q6bnVsbCxwcm9maWxlUGljdHVyZTooZT1hLlRkKCkpIT1udWxsP2U6bnVsbH19OwpmbD1mdW5jdGlvbihhKXt0aGlzLmc9YX07ZmwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZysiIn07Xy5ybD1mdW5jdGlvbihhLGIpe3JldHVybihifHxkb2N1bWVudCkucXVlcnlTZWxlY3RvckFsbCgiLiIrYSl9O18uc2w9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHxkb2N1bWVudDtjLmdldEVsZW1lbnRzQnlDbGFzc05hbWU/YT1jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYSlbMF06KGM9ZG9jdW1lbnQsYT9hPShifHxjKS5xdWVyeVNlbGVjdG9yKGE/Ii4iK2E6IiIpOihiPWJ8fGMsYT0oYT9iLnF1ZXJ5U2VsZWN0b3JBbGwoYT8iLiIrYToiIik6Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKVswXXx8bnVsbCkpO3JldHVybiBhfHxudWxsfTtfLnRsPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYjtiPWEuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChiKX07Cl8udWw9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEucGFyZW50Tm9kZT9hLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSk6bnVsbH07Xy52bD1mdW5jdGlvbihhLGIpe2lmKCFhfHwhYilyZXR1cm4hMTtpZihhLmNvbnRhaW5zJiZiLm5vZGVUeXBlPT0xKXJldHVybiBhPT1ifHxhLmNvbnRhaW5zKGIpO2lmKHR5cGVvZiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIT0idW5kZWZpbmVkIilyZXR1cm4gYT09Ynx8ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik7Zm9yKDtiJiZhIT1iOyliPWIucGFyZW50Tm9kZTtyZXR1cm4gYj09YX07Xy53bD1mdW5jdGlvbigpe3RoaXMuZz1fLncuZG9jdW1lbnR8fGRvY3VtZW50fTtfLndsLnByb3RvdHlwZS5hcHBlbmRDaGlsZD1mdW5jdGlvbihhLGIpe2EuYXBwZW5kQ2hpbGQoYil9O18ud2wucHJvdG90eXBlLmg9Xy51bDtfLndsLnByb3RvdHlwZS5jb250YWlucz1fLnZsO3ZhciBBbDtfLnhsPXt9O18ueWw9e307Xy56bD17fTtBbD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJzYSIpO307QWwucHJvdG90eXBlLkVjPW51bGw7QWwucHJvdG90eXBlLlRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07QWwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07QWwucHJvdG90eXBlLm5kPWZ1bmN0aW9uKCl7aWYodGhpcy5GYyE9PV8ueGwpdGhyb3cgRXJyb3IoInRhIik7cmV0dXJuIGdsKHRoaXMudG9TdHJpbmcoKSl9O3ZhciBCbD1mdW5jdGlvbigpe0FsLmNhbGwodGhpcyl9O18uWWQoQmwsQWwpO0JsLnByb3RvdHlwZS5GYz1fLnhsO3ZhciBIbCxqbCxrbCxPbCxQbCxGbCxRbCxFbCxSbCxNbCxHbDtfLkNsPWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwpc3dpdGNoKGEuRWMpe2Nhc2UgMTpyZXR1cm4gMTtjYXNlIC0xOnJldHVybi0xO2Nhc2UgMDpyZXR1cm4gMH1yZXR1cm4gbnVsbH07Xy5WPWZ1bmN0aW9uKGEpe3JldHVybiBfLkRsKGEsXy54bCk/YTphIGluc3RhbmNlb2YgZmw/KDAsXy5VKShfLmhsKGEpLnRvU3RyaW5nKCkpOigwLF8uVSkoU3RyaW5nKFN0cmluZyhhKSkucmVwbGFjZShFbCxGbCksXy5DbChhKSl9O18uVT1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGMpe3RoaXMuY29udGVudD1jfWIucHJvdG90eXBlPWEucHJvdG90eXBlO3JldHVybiBmdW5jdGlvbihjLGQpe2M9bmV3IGIoU3RyaW5nKGMpKTtkIT09dm9pZCAwJiYoYy5FYz1kKTtyZXR1cm4gY319KEJsKTtIbD1mdW5jdGlvbihhKXtyZXR1cm4gbGwoU3RyaW5nKGEpLGZ1bmN0aW9uKCl7cmV0dXJuIiJ9KS5yZXBsYWNlKEdsLCImbHQ7Iil9O2psPVJlZ0V4cC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInN0aWNreSIpOwprbD1uZXcgUmVnRXhwKChqbD8iIjoiXiIpKyIoPzohfC8/KFthLXpBLVpdW2EtekEtWjAtOTotXSopKSIsamw/Imd5IjoiZyIpO18uVz1mdW5jdGlvbihhKXtyZXR1cm4gXy5EbChhLF8ueGwpP18uSWwoSGwoYS5UYSgpKSk6U3RyaW5nKGEpLnJlcGxhY2UoRWwsRmwpfTtfLkxsPWZ1bmN0aW9uKGEpe3JldHVybiBTdHJpbmcoYSkucmVwbGFjZShfLkpsLF8uS2wpfTtfLk5sPWZ1bmN0aW9uKGEpe18uRGwoYSxfLnlsKXx8Xy5EbChhLF8uemwpP2E9U3RyaW5nKGEpLnJlcGxhY2UoXy5KbCxfLktsKTphIGluc3RhbmNlb2YgXy5SYz9hPV8uTGwoXy5TYyhhKSk6ImZ1bmN0aW9uIj09dHlwZW9mIF8uY2wmJmEgaW5zdGFuY2VvZiBfLmNsP2E9Xy5MbChfLmVsKGEpLnRvU3RyaW5nKCkpOihhPVN0cmluZyhhKSxhPU1sLnRlc3QoYSk/YS5yZXBsYWNlKF8uSmwsXy5LbCk6ImFib3V0OmludmFsaWQjelNveXoiKTtyZXR1cm4gYX07Cl8uRGw9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSE9bnVsbCYmYS5GYz09PWJ9O09sPWZ1bmN0aW9uKCl7QWwuY2FsbCh0aGlzKX07Xy5KKE9sLEJsKTtfLlg9ZnVuY3Rpb24oYSxiKXthLmchPT12b2lkIDA/YS5nLnB1c2goYik6YS5jb250ZW50Kz1iO3JldHVybiBhfTtfLlk9ZnVuY3Rpb24oYSxiKXthLmchPT12b2lkIDA/YS5nLnB1c2goYik6YiBpbnN0YW5jZW9mIE9sP2IuY29udGVudCE9PXZvaWQgMD9hLmNvbnRlbnQrPWIuVGEoKTooYS5nPVthLmNvbnRlbnQsYl0sYS5jb250ZW50PXZvaWQgMCk6YS5jb250ZW50Kz1iO3JldHVybiBhfTtPbC5wcm90b3R5cGUuVGE9ZnVuY3Rpb24oKXtpZih0aGlzLmNvbnRlbnQhPT12b2lkIDApcmV0dXJuIHRoaXMuY29udGVudDtmb3IodmFyIGE9IiIsYj1fLnUodGhpcy5nKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlhKz1jLnZhbHVlO3JldHVybiBhfTtPbC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UYSgpfTsKXy5aPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3RoaXMuY29udGVudD0iIn1hLnByb3RvdHlwZT1PbC5wcm90b3R5cGU7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBhfX0oKTtQbD17Ilx4MDAiOiImIzA7IiwiXHQiOiImIzk7IiwiXG4iOiImIzEwOyIsIlx2IjoiJiMxMTsiLCJcZiI6IiYjMTI7IiwiXHIiOiImIzEzOyIsIiAiOiImIzMyOyIsJyInOiImcXVvdDsiLCImIjoiJmFtcDsiLCInIjoiJiMzOTsiLCItIjoiJiM0NTsiLCIvIjoiJiM0NzsiLCI8IjoiJmx0OyIsIj0iOiImIzYxOyIsIj4iOiImZ3Q7IiwiYCI6IiYjOTY7IiwiXHUwMDg1IjoiJiMxMzM7IiwiXHUwMGEwIjoiJiMxNjA7IiwiXHUyMDI4IjoiJiM4MjMyOyIsIlx1MjAyOSI6IiYjODIzMzsifTtGbD1mdW5jdGlvbihhKXtyZXR1cm4gUGxbYV19OwpRbD17Ilx4MDAiOiIlMDAiLCJcdTAwMDEiOiIlMDEiLCJcdTAwMDIiOiIlMDIiLCJcdTAwMDMiOiIlMDMiLCJcdTAwMDQiOiIlMDQiLCJcdTAwMDUiOiIlMDUiLCJcdTAwMDYiOiIlMDYiLCJcdTAwMDciOiIlMDciLCJcYiI6IiUwOCIsIlx0IjoiJTA5IiwiXG4iOiIlMEEiLCJcdiI6IiUwQiIsIlxmIjoiJTBDIiwiXHIiOiIlMEQiLCJcdTAwMGUiOiIlMEUiLCJcdTAwMGYiOiIlMEYiLCJcdTAwMTAiOiIlMTAiLCJcdTAwMTEiOiIlMTEiLCJcdTAwMTIiOiIlMTIiLCJcdTAwMTMiOiIlMTMiLCJcdTAwMTQiOiIlMTQiLCJcdTAwMTUiOiIlMTUiLCJcdTAwMTYiOiIlMTYiLCJcdTAwMTciOiIlMTciLCJcdTAwMTgiOiIlMTgiLCJcdTAwMTkiOiIlMTkiLCJcdTAwMWEiOiIlMUEiLCJcdTAwMWIiOiIlMUIiLCJcdTAwMWMiOiIlMUMiLCJcdTAwMWQiOiIlMUQiLCJcdTAwMWUiOiIlMUUiLCJcdTAwMWYiOiIlMUYiLCIgIjoiJTIwIiwnIic6IiUyMiIsIiciOiIlMjciLCIoIjoiJTI4IiwiKSI6IiUyOSIsCiI8IjoiJTNDIiwiPiI6IiUzRSIsIlxcIjoiJTVDIiwieyI6IiU3QiIsIn0iOiIlN0QiLCJcdTAwN2YiOiIlN0YiLCJcdTAwODUiOiIlQzIlODUiLCJcdTAwYTAiOiIlQzIlQTAiLCJcdTIwMjgiOiIlRTIlODAlQTgiLCJcdTIwMjkiOiIlRTIlODAlQTkiLCJcdWZmMDEiOiIlRUYlQkMlODEiLCJcdWZmMDMiOiIlRUYlQkMlODMiLCJcdWZmMDQiOiIlRUYlQkMlODQiLCJcdWZmMDYiOiIlRUYlQkMlODYiLCJcdWZmMDciOiIlRUYlQkMlODciLCJcdWZmMDgiOiIlRUYlQkMlODgiLCJcdWZmMDkiOiIlRUYlQkMlODkiLCJcdWZmMGEiOiIlRUYlQkMlOEEiLCJcdWZmMGIiOiIlRUYlQkMlOEIiLCJcdWZmMGMiOiIlRUYlQkMlOEMiLCJcdWZmMGYiOiIlRUYlQkMlOEYiLCJcdWZmMWEiOiIlRUYlQkMlOUEiLCJcdWZmMWIiOiIlRUYlQkMlOUIiLCJcdWZmMWQiOiIlRUYlQkMlOUQiLCJcdWZmMWYiOiIlRUYlQkMlOUYiLCJcdWZmMjAiOiIlRUYlQkMlQTAiLCJcdWZmM2IiOiIlRUYlQkMlQkIiLAoiXHVmZjNkIjoiJUVGJUJDJUJEIn07Xy5LbD1mdW5jdGlvbihhKXtyZXR1cm4gUWxbYV19O0VsPS9bXHgwMFx4MjJceDI2XHgyN1x4M2NceDNlXS9nO1JsPS9bXHgwMFx4MjJceDI3XHgzY1x4M2VdL2c7Xy5KbD0vW1x4MDAtIFx4MjJceDI3LVx4MjlceDNjXHgzZVxcXHg3Ylx4N2RceDdmXHg4NVx4YTBcdTIwMjhcdTIwMjlcdWZmMDFcdWZmMDNcdWZmMDRcdWZmMDYtXHVmZjBjXHVmZjBmXHVmZjFhXHVmZjFiXHVmZjFkXHVmZjFmXHVmZjIwXHVmZjNiXHVmZjNkXS9nO01sPS9eW14mOlwvPyNdKig/OltcLz8jXXwkKXxeaHR0cHM/OnxeZmlsZXN5c3RlbTpodHRwcz86fF5mdHA6fF5kYXRhOmltYWdlXC9bYS16MC05Ky1dKztiYXNlNjQsW2EtejAtOStcL10rPSokfF5ibG9iOi9pO18uSWw9ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKS5yZXBsYWNlKFJsLEZsKX07R2w9LzwvZztfLlNsPSIwIi5jb2RlUG9pbnRBdCgwKTt2YXIgVGw7VGw9ZnVuY3Rpb24oYSl7cmV0dXJuIGElMTA9PTEmJmElMTAwIT0xMT8ib25lIjphJTEwPT0yJiZhJTEwMCE9MTI/InR3byI6YSUxMD09MyYmYSUxMDAhPTEzPyJmZXciOiJvdGhlciJ9O18uVWw9VGw9ZnVuY3Rpb24oKXtyZXR1cm4ib3RoZXIifTt2YXIgVmw7Vmw9ZnVuY3Rpb24oYSxiKXtpZih2b2lkIDA9PT1iKXtiPWErIiI7dmFyIGM9Yi5pbmRleE9mKCIuIik7Yj1NYXRoLm1pbihjPT09LTE/MDpiLmxlbmd0aC1jLTEsMyl9Yz1NYXRoLnBvdygxMCxiKTtiPXtLZTpiLGY6KGEqY3wwKSVjfTtyZXR1cm4oYXwwKT09MSYmYi5LZT09MD8ib25lIjoib3RoZXIifTtfLldsPVZsPWZ1bmN0aW9uKGEpe3JldHVybiBhPT0xPyJvbmUiOiJvdGhlciJ9O18uWGw9UmVnRXhwKCInKFt7fSNdLio/KSciLCJnIik7Xy5ZbD1SZWdFeHAoIicnIiwiZyIpO3ZhciBtbD17fTtfLlpsPWZ1bmN0aW9uKGEpe2E9YXx8e307cmV0dXJuKGE9YS5pZGVudGlmaWVyKT8iTG9nZ2V0IHBcdTAwZTUgc29tICIrYToiUFx1MDBlNWxvZ2dldCJ9O18uJGw9ZnVuY3Rpb24oYSl7cmV0dXJuKDAsXy5VKSgoYT8nPHN2ZyBjbGFzcz0iJytfLlcoIkJ6MTEyYyIpKyIgIitfLlcoIkJ6MTEyYy1FM0R5WWQiKSsiICIrXy5XKCJCejExMmMtdWF4TDRlIikrJyIgYXJpYS1oaWRkZW49dHJ1ZSB2aWV3Qm94PSIwIDAgMTkyIDE5MiI+JzonPHN2ZyBjbGFzcz0iJytfLlcoImZGVzd3Yy1pYm5DNmItSGlhWXZmIikrIiAiK18uVygielRFVGFlLW16TnBzZi1CejExMmMiKSsiICIrXy5XKCJuMVV1WC1Ea2ZqWSIpKyciIGFyaWEtaGlkZGVuPXRydWUgdmlld0JveD0iMCAwIDE5MiAxOTIiPicpKyc8cGF0aCBmaWxsPSIjMzE4NUZGIiBkPSJNOTYgOEM0Ny40MiA4IDggNDcuNDIgOCA5NnMzOS40MiA4OCA4OCA4OCA4OC0zOS40MiA4OC04OFMxNDQuNTggOCA5NiA4eiIvPjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik05NiA4NmMxMi4xNyAwIDIyLTkuODMgMjItMjJzLTkuODMtMjItMjItMjItMjIgOS44My0yMiAyMiA5LjgzIDIyIDIyIDIyek05NiA5OWMtMjYuODkgMC00OCAxMy00OCAyNSAxMC4xNyAxNS42NCAyNy45NyAyNiA0OCAyNnMzNy44My0xMC4zNiA0OC0yNmMwLTEyLTIxLjExLTI1LTQ4LTI1eiIvPjwvc3ZnPicpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5IbT1mdW5jdGlvbihhLGIpe3RoaXMuRj1hO3RoaXMuY29udGFpbmVyPWIuY29udGFpbmVyO3RoaXMudj1uZXcgU2V0O3RoaXMuSD0hMX07Xy5IbS5wcm90b3R5cGUuWGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTtfLkhtLnByb3RvdHlwZS5NPWZ1bmN0aW9uKGEsYixjKXthPV8uWGYoYSxiLGMpO3RoaXMudi5hZGQoYSk7cmV0dXJuIGF9O18uSG0ucHJvdG90eXBlLkVhPWZ1bmN0aW9uKGEpe18uZWcoYSk7dGhpcy52LmRlbGV0ZShhKX07Xy5JbT1mdW5jdGlvbihhLGIsYyl7YS5NKGIsImNsaWNrIixjKTthLk0oYiwia2V5ZG93biIsZnVuY3Rpb24oZCl7dmFyIGU9ZC5jaGFyQ29kZXx8ZC5rZXlDb2RlO2UhPT0xMyYmZSE9PTMmJmUhPT0zMnx8YyhkKX0pfTtfLkptPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD81MDphO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihiKXtzZXRUaW1lb3V0KGIsYSl9KX07Xy5LbT1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihhKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXthKHZvaWQgMCl9KX0pfSl9OwpfLkxtPWZ1bmN0aW9uKCl7cmV0dXJuIF8uSm0oKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIF8uS20oKX0pfTtfLmw9Xy5IbS5wcm90b3R5cGU7Xy5sLlU9ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCl9O18ubC5jbG9zZT1mdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUodm9pZCAwKX07Xy5sLkphPWZ1bmN0aW9uKCl7fTtfLmwuTmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250YWluZXIub2Zmc2V0SGVpZ2h0fTtfLmwuQmI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250YWluZXIub2Zmc2V0V2lkdGh9O18ubC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5IfHwodGhpcy52LmZvckVhY2goZnVuY3Rpb24oYSl7Xy5lZyhhKX0pLHRoaXMudi5jbGVhcigpLF8udGwodGhpcy5jb250YWluZXIpLHRoaXMuSD0hMCl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgTW09ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMTpyZXR1cm4ibm90LXN1cHBvcnRlZCI7Y2FzZSAyOnJldHVybiJub3QtaW5pdGlhbGl6ZWQiO2Nhc2UgMzpyZXR1cm4iaW5pdGlhbGl6YXRpb24gdGltZWQgb3V0IjtjYXNlIDQ6cmV0dXJuInN0b3BwZWQiO2Nhc2UgNTpyZXR1cm4ibm90LXZpc2libGUiO2Nhc2UgNjpyZXR1cm4ibm90LWFjdGl2YXRlZCI7Y2FzZSA3OnJldHVybiJzYWZlbHktdmlzaWJsZSI7ZGVmYXVsdDpyZXR1cm4idW5rbm93bi1zdGF0dXMifX0sTm09ZnVuY3Rpb24oKXt0aGlzLmg9bnVsbDt0aGlzLmo9dm9pZCAwO3RoaXMudj0hMTt0aGlzLmw9dm9pZCAwO3RoaXMudT0hMTt0aGlzLmc9Mn0sUG07Tm0ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7Xy5FKCJSZXNldC4iLCJWSVNJQklMSVRZX09CU0VSVkVSIik7dmFyIGE9cGVyZm9ybWFuY2Uubm93KCk7dGhpcy5qPXZvaWQgMDt0aGlzLmw9YX07Tm0ucHJvdG90eXBlLlNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ307Cl8uT209ZnVuY3Rpb24oYSl7YS5oJiZhLmchPT0zJiZhLmchPT0xJiZhLmchPT0yJiZhLmchPT00JiYoYS5nPWEudj9hLmw9PT12b2lkIDB8fHBlcmZvcm1hbmNlLm5vdygpLWEubDw3MDA/NjpwZXJmb3JtYW5jZS5ub3coKS1hLmw8MkUzPzg6Nzo1KTtfLkUoIkV2YWx1YXRlIHN0YXR1czogIitNbShhLmcpLCJWSVNJQklMSVRZX09CU0VSVkVSIik7cmV0dXJuIGEuZ307UG09ZnVuY3Rpb24oYSl7YS5vJiYoYS5vLnJlc29sdmUoYS5pKSxhLm89dm9pZCAwKX07Cl8uUW09ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IE5tO3dpbmRvdy5JbnRlcnNlY3Rpb25PYnNlcnZlciYmXy5VYSgiQ2hyb21pdW0iKT49Nzc/KGIuaD1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYyl7YTp7Yz1jW2MubGVuZ3RoLTFdO2lmKCFiLnUpe2IudT0hMDtiLmk9Yy5pc1Zpc2libGUhPT12b2lkIDA7aWYoYi5pKWIuZz01LFBtKGIpO2Vsc2V7Yi5oJiYoXy5FKCJTdG9wcGVkLiIsIlZJU0lCSUxJVFlfT0JTRVJWRVIiKSxiLmguZGlzY29ubmVjdCgpLGIuaD1udWxsLGIuZz00KTtiLmc9MTtQbShiKTtfLkUoIk5vdCBpbml0aWFsaXplZC4gSU92MiBub3Qgc3VwcG9ydGVkIiwiVklTSUJJTElUWV9PQlNFUlZFUiIpO2JyZWFrIGF9Xy5FKCJJbml0aWFsaXplZCIsIlZJU0lCSUxJVFlfT0JTRVJWRVIiKX12YXIgZD1jLmlzVmlzaWJsZSYmYy5pc0ludGVyc2VjdGluZzshYi52JiZkJiYoYi5sPWMudGltZSk7Yi52PWQ7Xy5FKCJJT3YyIGV2ZW50IHJlY2VpdmVkLiBWaXNpYmlsaXR5IFN0YXRlOiAiKwpkKyIuIFN0YXR1czogIitNbShfLk9tKGIpKSwiVklTSUJJTElUWV9PQlNFUlZFUiIpfX0se3RocmVzaG9sZDoxLGRlbGF5OjEwMCx0cmFja1Zpc2liaWxpdHk6ITB9KSxiLmgub2JzZXJ2ZShhKSxfLkUoIkluaXRpYWxpemVkLiIsIlZJU0lCSUxJVFlfT0JTRVJWRVIiKSk6KGIudT0hMCxiLmk9ITEsYi5nPTEsUG0oYiksXy5FKCJOb3QgaW5pdGlhbGl6ZWQuIE5vdCBzdXBwb3J0ZWQuIiwiVklTSUJJTElUWV9PQlNFUlZFUiIpKTtyZXR1cm4gYn07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBhbj1mdW5jdGlvbihhKXtyZXR1cm4gXy5WKGEpfSxibj17eWI6ezFFMzp7b3RoZXI6IjBLIn0sMUU0OntvdGhlcjoiMDBLIn0sMUU1OntvdGhlcjoiMDAwSyJ9LDFFNjp7b3RoZXI6IjBNIn0sMUU3OntvdGhlcjoiMDBNIn0sMUU4OntvdGhlcjoiMDAwTSJ9LDFFOTp7b3RoZXI6IjBCIn0sMUUxMDp7b3RoZXI6IjAwQiJ9LDFFMTE6e290aGVyOiIwMDBCIn0sMUUxMjp7b3RoZXI6IjBUIn0sMUUxMzp7b3RoZXI6IjAwVCJ9LDFFMTQ6e290aGVyOiIwMDBUIn19LGhjOnsxRTM6e290aGVyOiIwIHRob3VzYW5kIn0sMUU0OntvdGhlcjoiMDAgdGhvdXNhbmQifSwxRTU6e290aGVyOiIwMDAgdGhvdXNhbmQifSwxRTY6e290aGVyOiIwIG1pbGxpb24ifSwxRTc6e290aGVyOiIwMCBtaWxsaW9uIn0sMUU4OntvdGhlcjoiMDAwIG1pbGxpb24ifSwxRTk6e290aGVyOiIwIGJpbGxpb24ifSwxRTEwOntvdGhlcjoiMDAgYmlsbGlvbiJ9LDFFMTE6e290aGVyOiIwMDAgYmlsbGlvbiJ9LDFFMTI6e290aGVyOiIwIHRyaWxsaW9uIn0sCjFFMTM6e290aGVyOiIwMCB0cmlsbGlvbiJ9LDFFMTQ6e290aGVyOiIwMDAgdHJpbGxpb24ifX19LGRuLGZuLGduLGhuLGpuLGxuLG9uLHBuLHFuLGtuLG1uLG5uLHJuLHNuLHRuLHVuLHZuLHduLHhuLHpuLERuLEVuLEJuLEZuLENuLEduLEhuLEluLExuOwpibj17eWI6ezFFMzp7b3RoZXI6IjBrIn0sMUU0OntvdGhlcjoiMDBrIn0sMUU1OntvdGhlcjoiMDAwayJ9LDFFNjp7b3RoZXI6IjBcdTAwYTBtaWxsLiJ9LDFFNzp7b3RoZXI6IjAwXHUwMGEwbWlsbC4ifSwxRTg6e290aGVyOiIwMDBcdTAwYTBtaWxsLiJ9LDFFOTp7b3RoZXI6IjBcdTAwYTBtcmQuIn0sMUUxMDp7b3RoZXI6IjAwXHUwMGEwbXJkLiJ9LDFFMTE6e290aGVyOiIwMDBcdTAwYTBtcmQuIn0sMUUxMjp7b3RoZXI6IjBcdTAwYTBiaWxsLiJ9LDFFMTM6e290aGVyOiIwMFx1MDBhMGJpbGwuIn0sMUUxNDp7b3RoZXI6IjAwMFx1MDBhMGJpbGwuIn19LGhjOnsxRTM6e290aGVyOiIwIHR1c2VuIn0sMUU0OntvdGhlcjoiMDAgdHVzZW4ifSwxRTU6e290aGVyOiIwMDAgdHVzZW4ifSwxRTY6e290aGVyOiIwIG1pbGxpb25lciJ9LDFFNzp7b3RoZXI6IjAwIG1pbGxpb25lciJ9LDFFODp7b3RoZXI6IjAwMCBtaWxsaW9uZXIifSwxRTk6e290aGVyOiIwIG1pbGxpYXJkZXIifSwxRTEwOntvdGhlcjoiMDAgbWlsbGlhcmRlciJ9LAoxRTExOntvdGhlcjoiMDAwIG1pbGxpYXJkZXIifSwxRTEyOntvdGhlcjoiMCBiaWxsaW9uZXIifSwxRTEzOntvdGhlcjoiMDAgYmlsbGlvbmVyIn0sMUUxNDp7b3RoZXI6IjAwMCBiaWxsaW9uZXIifX19O3ZhciBjbj17a2M6Ii4iLEFiOiIsIixyYzoiJSIsRGI6IjAiLHRjOiIrIixDYjoiLSIsbGM6IkUiLHNjOiJcdTIwMzAiLG1jOiJcdTIyMWUiLHFjOiJOYU4iLGpjOiIjLCMjMC4jIyMiLEVkOiIjRTAiLERkOiIjLCMjMCUiLG9kOiJcdTAwYTQjLCMjMC4wMCIsemI6IlVTRCJ9O2NuPXtrYzoiLCIsQWI6Ilx1MDBhMCIscmM6IiUiLERiOiIwIix0YzoiKyIsQ2I6Ilx1MjIxMiIsbGM6IkUiLHNjOiJcdTIwMzAiLG1jOiJcdTIyMWUiLHFjOiJOYU4iLGpjOiIjLCMjMC4jIyMiLEVkOiIjRTAiLERkOiIjLCMjMFx1MDBhMCUiLG9kOiIjLCMjMC4wMFx1MDBhMFx1MDBhNDstIywjIzAuMDBcdTAwYTBcdTAwYTQiLHpiOiJOT0sifTtkbj0vXig/IWphdmFzY3JpcHQ6KSg/OlthLXowLTkrLi1dKzp8W14mOlwvPyNdKig/OltcLz8jXXwkKSkvaTsKXy5lbj1mdW5jdGlvbihhKXtfLkRsKGEsXy55bCl8fF8uRGwoYSxfLnpsKT9hPVN0cmluZyhhKS5yZXBsYWNlKF8uSmwsXy5LbCk6YSBpbnN0YW5jZW9mIF8uUmM/YT1fLkxsKF8uU2MoYSkpOiJmdW5jdGlvbiI9PXR5cGVvZiBfLmNsJiZhIGluc3RhbmNlb2YgXy5jbD9hPV8uTGwoXy5lbChhKS50b1N0cmluZygpKTooYT1TdHJpbmcoYSksYT1kbi50ZXN0KGEpP2EucmVwbGFjZShfLkpsLF8uS2wpOiJhYm91dDppbnZhbGlkI3pTb3l6Iik7cmV0dXJuIGF9Owpmbj17QUVEOlsyLCJkaCIsIlx1MDYyZi5cdTA2MjUuIl0sQUxMOlswLCJMZWsiLCJMZWsiXSxBVUQ6WzIsIiQiLCJBVSQiXSxCRFQ6WzIsIlx1MDlmMyIsIlRrIl0sQkdOOlsyLCJsZXYiLCJsZXYiXSxCUkw6WzIsIlIkIiwiUiQiXSxDQUQ6WzIsIiQiLCJDJCJdLENERjpbMiwiRnJDRCIsIkNERiJdLENIRjpbMiwiQ0hGIiwiQ0hGIl0sQ0xQOlswLCIkIiwiQ0wkIl0sQ05ZOlsyLCJcdTAwYTUiLCJSTUJcdTAwYTUiXSxDT1A6WzMyLCIkIiwiQ09MJCJdLENSQzpbMCwiXHUyMGExIiwiQ1JcdTIwYTEiXSxDWks6WzUwLCJLXHUwMTBkIiwiS1x1MDEwZCJdLERLSzpbNTAsImtyLiIsImtyLiJdLERPUDpbMiwiUkQkIiwiUkQkIl0sRUdQOlsyLCJcdTAwYTMiLCJMRSJdLEVUQjpbMiwiQmlyciIsIkJpcnIiXSxFVVI6WzIsIlx1MjBhYyIsIlx1MjBhYyJdLEdCUDpbMiwiXHUwMGEzIiwiR0JcdTAwYTMiXSxIS0Q6WzIsIiQiLCJISyQiXSxIUks6WzIsImtuIiwia24iXSxIVUY6WzM0LCJGdCIsCiJGdCJdLElEUjpbMCwiUnAiLCJScCJdLElMUzpbMzQsIlx1MjBhYSIsIklMXHUyMGFhIl0sSU5SOlsyLCJcdTIwYjkiLCJScyJdLElSUjpbMCwiUmlhbCIsIklSUiJdLElTSzpbMCwia3IiLCJrciJdLEpNRDpbMiwiJCIsIkpBJCJdLEpQWTpbMCwiXHUwMGE1IiwiSlBcdTAwYTUiXSxLUlc6WzAsIlx1MjBhOSIsIktSXHUyMGE5Il0sTEtSOlsyLCJScyIsIlNMUnMiXSxMVEw6WzIsIkx0IiwiTHQiXSxNTlQ6WzAsIlx1MjBhZSIsIk1OXHUyMGFlIl0sTVZSOlsyLCJSZiIsIk1WUiJdLE1YTjpbMiwiJCIsIk1leCQiXSxNWVI6WzIsIlJNIiwiUk0iXSxOT0s6WzUwLCJrciIsIk5Pa3IiXSxQQUI6WzIsIkIvLiIsIkIvLiJdLFBFTjpbMiwiUy8uIiwiUy8uIl0sUEhQOlsyLCJcdTIwYjEiLCJQSFAiXSxQS1I6WzAsIlJzIiwiUEtScy4iXSxQTE46WzUwLCJ6XHUwMTQyIiwielx1MDE0MiJdLFJPTjpbMiwiUk9OIiwiUk9OIl0sUlNEOlswLCJkaW4iLCJSU0QiXSxSVUI6WzUwLCJcdTIwYmQiLAoiUlVCIl0sU0FSOlsyLCJTQVIiLCJTQVIiXSxTRUs6WzUwLCJrciIsImtyIl0sU0dEOlsyLCIkIiwiUyQiXSxUSEI6WzIsIlx1MGUzZiIsIlRIQiJdLFRSWTpbMiwiXHUyMGJhIiwiVFJZIl0sVFdEOlsyLCIkIiwiTlQkIl0sVFpTOlswLCJUU2giLCJUU2giXSxVQUg6WzIsIlx1MDQzM1x1MDQ0MFx1MDQzZC4iLCJVQUgiXSxVU0Q6WzIsIiQiLCJVUyQiXSxVWVU6WzIsIiQiLCIkVSJdLFZORDpbNDgsIlx1MjBhYiIsIlZOXHUyMGFiIl0sWUVSOlswLCJSaWFsIiwiUmlhbCJdLFpBUjpbMiwiUiIsIlpBUiJdfTtnbj1mdW5jdGlvbihhLGIpe2lmKCFhfHwhaXNGaW5pdGUoYSl8fGI9PTApcmV0dXJuIGE7YT1TdHJpbmcoYSkuc3BsaXQoImUiKTtyZXR1cm4gcGFyc2VGbG9hdChhWzBdKyJlIisocGFyc2VJbnQoYVsxXXx8MCwxMCkrYikpfTtobj17TGI6MCxYYjoiIixZYjoiIixwcmVmaXg6IiIsc3VmZml4OiIifTsKam49ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSYmaXNGaW5pdGUoYSk/Z24oTWF0aC5yb3VuZChnbihhLGIpKSwtYik6YX07CmxuPWZ1bmN0aW9uKCl7dGhpcy51PTQwO3RoaXMuaD0xO3RoaXMuSj0wO3RoaXMuZz0zO3RoaXMudj10aGlzLmk9MDt0aGlzLlA9ITE7dGhpcy5HPXRoaXMuRD0iIjt0aGlzLkI9Y24uQ2I7dGhpcy5DPSIiO3RoaXMuaj0xO3RoaXMubz0hMTt0aGlzLmw9W107dGhpcy5IPXRoaXMuUj0hMTt0aGlzLks9MDt2YXIgYT1jbi5qYyxiPVswXTt0aGlzLkQ9a24odGhpcyxhLGIpO2Zvcih2YXIgYz1iWzBdLGQ9LTEsZT0wLGY9MCxnPTAsaD0tMSxrPWEubGVuZ3RoLG09ITA7YlswXTxrJiZtO2JbMF0rKylzd2l0Y2goYS5jaGFyQXQoYlswXSkpe2Nhc2UgIiMiOmY+MD9nKys6ZSsrO2g+PTAmJmQ8MCYmaCsrO2JyZWFrO2Nhc2UgIjAiOmlmKGc+MCl0aHJvdyBFcnJvcigiQmFgIithKTtmKys7aD49MCYmZDwwJiZoKys7YnJlYWs7Y2FzZSAiLCI6aD4wJiZ0aGlzLmwucHVzaChoKTtoPTA7YnJlYWs7Y2FzZSAiLiI6aWYoZD49MCl0aHJvdyBFcnJvcigiQ2FgIithKTtkPWUrZitnO2JyZWFrO2Nhc2UgIkUiOmlmKHRoaXMuSCl0aHJvdyBFcnJvcigiRGFgIisKYSk7dGhpcy5IPSEwO3RoaXMudj0wO2JbMF0rMTxrJiZhLmNoYXJBdChiWzBdKzEpPT0iKyImJihiWzBdKyssdGhpcy5QPSEwKTtmb3IoO2JbMF0rMTxrJiZhLmNoYXJBdChiWzBdKzEpPT0iMCI7KWJbMF0rKyx0aGlzLnYrKztpZihlK2Y8MXx8dGhpcy52PDEpdGhyb3cgRXJyb3IoIkVhYCIrYSk7bT0hMTticmVhaztkZWZhdWx0OmJbMF0tLSxtPSExfWY9PTAmJmU+MCYmZD49MCYmKGY9ZCxmPT0wJiZmKyssZz1lLWYsZT1mLTEsZj0xKTtpZihkPDAmJmc+MHx8ZD49MCYmKGQ8ZXx8ZD5lK2YpfHxoPT0wKXRocm93IEVycm9yKCJGYWAiK2EpO2c9ZStmK2c7dGhpcy5nPWQ+PTA/Zy1kOjA7ZD49MCYmKHRoaXMuaT1lK2YtZCx0aGlzLmk8MCYmKHRoaXMuaT0wKSk7dGhpcy5oPShkPj0wP2Q6ZyktZTt0aGlzLkgmJih0aGlzLnU9ZSt0aGlzLmgsdGhpcy5nPT0wJiZ0aGlzLmg9PTAmJih0aGlzLmg9MSkpO3RoaXMubC5wdXNoKE1hdGgubWF4KDAsaCkpO3RoaXMuUj1kPT0wfHxkPT1nO2M9CmJbMF0tYzt0aGlzLkc9a24odGhpcyxhLGIpO2JbMF08YS5sZW5ndGgmJmEuY2hhckF0KGJbMF0pPT0iOyI/KGJbMF0rKyx0aGlzLmohPTEmJih0aGlzLm89ITApLHRoaXMuQj1rbih0aGlzLGEsYiksYlswXSs9Yyx0aGlzLkM9a24odGhpcyxhLGIpKToodGhpcy5CKz10aGlzLkQsdGhpcy5DKz10aGlzLkcpfTsKbG4ucHJvdG90eXBlLmZvcm1hdD1mdW5jdGlvbihhKXtpZih0aGlzLmk+dGhpcy5nKXRocm93IEVycm9yKCJ5YSIpO2lmKGlzTmFOKGEpKXJldHVybiBjbi5xYzt2YXIgYj1bXTt2YXIgYz1hO2lmKHRoaXMuSz09MCljPWhuO2Vsc2V7Yz1NYXRoLmFicyhjKTt2YXIgZD1tbih0aGlzLGM8PTE/MDpubihjKSkuTGI7Yz1tbih0aGlzLGQrbm4ob24odGhpcyxnbihjLC1kKSkuV2MpKX1hPWduKGEsLWMuTGIpOyhkPWE8MHx8YT09MCYmMS9hPDApP2MuWGI/Yi5wdXNoKGMuWGIpOihiLnB1c2goYy5wcmVmaXgpLGIucHVzaCh0aGlzLkIpKTooYi5wdXNoKGMucHJlZml4KSxiLnB1c2godGhpcy5EKSk7aWYoaXNGaW5pdGUoYSkpaWYoYSo9ZD8tMToxLGEqPXRoaXMuaix0aGlzLkgpe3ZhciBlPWE7aWYoZT09MClwbih0aGlzLGUsdGhpcy5oLGIpLHFuKHRoaXMsMCxiKTtlbHNle3ZhciBmPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2coMTApKzJFLTE1KTtlPWduKGUsLWYpO3ZhciBnPQp0aGlzLmg7dGhpcy51PjEmJnRoaXMudT50aGlzLmg/KGc9ZiV0aGlzLnUsZzwwJiYoZz10aGlzLnUrZyksZT1nbihlLGcpLGYtPWcsZz0xKTp0aGlzLmg8MT8oZisrLGU9Z24oZSwtMSkpOihmLT10aGlzLmgtMSxlPWduKGUsdGhpcy5oLTEpKTtwbih0aGlzLGUsZyxiKTtxbih0aGlzLGYsYil9fWVsc2UgcG4odGhpcyxhLHRoaXMuaCxiKTtlbHNlIGIucHVzaChjbi5tYyk7ZD9jLlliP2IucHVzaChjLlliKTooaXNGaW5pdGUoYSkmJmIucHVzaChjLnN1ZmZpeCksYi5wdXNoKHRoaXMuQykpOihpc0Zpbml0ZShhKSYmYi5wdXNoKGMuc3VmZml4KSxiLnB1c2godGhpcy5HKSk7cmV0dXJuIGIuam9pbigiIil9Owpvbj1mdW5jdGlvbihhLGIpe3ZhciBjPWduKGIsYS5nKTthLko+MCYmKGM9cm4oYyxhLkosYS5nKSk7Yz1NYXRoLnJvdW5kKGMpO2lmKGlzRmluaXRlKGMpKXt2YXIgZD1NYXRoLmZsb29yKGduKGMsLWEuZykpO2M9TWF0aC5mbG9vcihjLWduKGQsYS5nKSk7aWYoYzwwfHxjPj1nbigxLGEuZykpZD1NYXRoLnJvdW5kKGIpLGM9MH1lbHNlIGQ9YixjPTA7cmV0dXJue1djOmQsUWQ6Y319Owpwbj1mdW5jdGlvbihhLGIsYyxkKXtpZihhLmk+YS5nKXRocm93IEVycm9yKCJ5YSIpO2R8fChkPVtdKTtiPW9uKGEsYik7dmFyIGU9Yi5XYyxmPWIuUWQsZz1hLmk+MHx8Zj4wfHwhMTtiPWEuaTtnJiYoYj1hLmkpO2Zvcih2YXIgaD0iIixrPWU7az4xRTIwOyloPSIwIitoLGs9TWF0aC5yb3VuZChnbihrLC0xKSk7aD1rK2g7dmFyIG09Y24ua2M7az1jbi5EYi5jb2RlUG9pbnRBdCgwKTt2YXIgbj1oLmxlbmd0aCxxPTA7aWYoZT4wfHxjPjApe2ZvcihlPW47ZTxjO2UrKylkLnB1c2goU3RyaW5nLmZyb21Db2RlUG9pbnQoaykpO2lmKGEubC5sZW5ndGg+PTIpZm9yKGM9MTtjPGEubC5sZW5ndGg7YysrKXErPWEubFtjXTtjPW4tcTtpZihjPjApe2U9YS5sO3E9bj0wO2Zvcih2YXIgcCxyPWNuLkFiLHg9aC5sZW5ndGgseT0wO3k8eDt5KyspaWYoZC5wdXNoKFN0cmluZy5mcm9tQ29kZVBvaW50KGsrTnVtYmVyKGguY2hhckF0KHkpKSkpLHgteT4xKWlmKHA9ZVtxXSx5PGMpe3ZhciBDPWMtCnk7KHA9PT0xfHxwPjAmJkMlcD09PTEpJiZkLnB1c2gocil9ZWxzZSBxPGUubGVuZ3RoJiYoeT09PWM/cSs9MTpwPT09eS1jLW4rMSYmKGQucHVzaChyKSxuKz1wLHErPTEpKX1lbHNle2M9aDtoPWEubDtlPWNuLkFiO3A9Yy5sZW5ndGg7cj1bXTtmb3Iobj1oLmxlbmd0aC0xO24+PTAmJnA+MDtuLS0pe3E9aFtuXTtmb3IoeD0wO3g8cSYmcC14LTE+PTA7eCsrKXIucHVzaChTdHJpbmcuZnJvbUNvZGVQb2ludChrK051bWJlcihjLmNoYXJBdChwLXgtMSkpKSk7cC09cTtwPjAmJnIucHVzaChlKX1kLnB1c2guYXBwbHkoZCxyLnJldmVyc2UoKSl9fWVsc2UgZ3x8ZC5wdXNoKFN0cmluZy5mcm9tQ29kZVBvaW50KGspKTsoYS5SfHxnKSYmZC5wdXNoKG0pO2Y9U3RyaW5nKGYpO2c9Zi5zcGxpdCgiZSsiKTtnLmxlbmd0aD09MiYmKGY9U3RyaW5nKHJuKHBhcnNlRmxvYXQoZ1swXSksYS5KLDEpKSxmPWYucmVwbGFjZSgiLiIsIiIpLGYrPSgwLF8ubmYpKCIwIixwYXJzZUludChnWzFdLDEwKS0KZi5sZW5ndGgrMSkpO2EuZysxPmYubGVuZ3RoJiYoZj0iMSIrKDAsXy5uZikoIjAiLGEuZy1mLmxlbmd0aCkrZik7Zm9yKGE9Zi5sZW5ndGg7Zi5jaGFyQXQoYS0xKT09IjAiJiZhPmIrMTspYS0tO2ZvcihiPTE7YjxhO2IrKylkLnB1c2goU3RyaW5nLmZyb21Db2RlUG9pbnQoaytOdW1iZXIoZi5jaGFyQXQoYikpKSl9O3FuPWZ1bmN0aW9uKGEsYixjKXtjLnB1c2goY24ubGMpO2I8MD8oYj0tYixjLnB1c2goY24uQ2IpKTphLlAmJmMucHVzaChjbi50Yyk7Yj0iIitiO2Zvcih2YXIgZD1jbi5EYixlPWIubGVuZ3RoO2U8YS52O2UrKyljLnB1c2goZCk7YT1kLmNvZGVQb2ludEF0KDApLV8uU2w7Zm9yKGQ9MDtkPGIubGVuZ3RoO2QrKyljLnB1c2goU3RyaW5nLmZyb21Db2RlUG9pbnQoYStiLmNvZGVQb2ludEF0KGQpKSl9Owprbj1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPSIiLGU9ITEsZj1iLmxlbmd0aDtjWzBdPGY7Y1swXSsrKXt2YXIgZz1iLmNoYXJBdChjWzBdKTtpZihnPT0iJyIpY1swXSsxPGYmJmIuY2hhckF0KGNbMF0rMSk9PSInIj8oY1swXSsrLGQrPSInIik6ZT0hZTtlbHNlIGlmKGUpZCs9ZztlbHNlIHN3aXRjaChnKXtjYXNlICIjIjpjYXNlICIwIjpjYXNlICIsIjpjYXNlICIuIjpjYXNlICI7IjpyZXR1cm4gZDtjYXNlICJcdTAwYTQiOmNbMF0rMTxmJiZiLmNoYXJBdChjWzBdKzEpPT0iXHUwMGE0Ij8oY1swXSsrLGQrPWNuLnpiKTooZz1jbi56YixkKz1nIGluIGZuP2ZuW2ddWzFdOmcpO2JyZWFrO2Nhc2UgIiUiOmlmKCFhLm8mJmEuaiE9MSl0aHJvdyBFcnJvcigiemEiKTtpZihhLm8mJmEuaiE9MTAwKXRocm93IEVycm9yKCJBYSIpO2Euaj0xMDA7YS5vPSExO2QrPWNuLnJjO2JyZWFrO2Nhc2UgIlx1MjAzMCI6aWYoIWEubyYmYS5qIT0xKXRocm93IEVycm9yKCJ6YSIpO2lmKGEubyYmCmEuaiE9MUUzKXRocm93IEVycm9yKCJBYSIpO2Euaj0xRTM7YS5vPSExO2QrPWNuLnNjO2JyZWFrO2RlZmF1bHQ6ZCs9Z319cmV0dXJuIGR9O21uPWZ1bmN0aW9uKGEsYil7YT1hLks9PTE/Ym4ueWI6Ym4uaGM7YT09bnVsbCYmKGE9Ym4ueWIpO2lmKGI8MylyZXR1cm4gaG47Yj1NYXRoLm1pbigxNCxiKTt2YXIgYz1hW2duKDEsYildO2ZvcigtLWI7IWMmJmI+PTM7KWM9YVtnbigxLGIpXSxiLS07aWYoIWMpcmV0dXJuIGhuO2M9Yy5vdGhlcjt2YXIgZD1hPSIiLGU9Yy5pbmRleE9mKCI7Iik7ZT49MCYmKGM9Yy5zdWJzdHJpbmcoMCxlKSxlPWMuc3Vic3RyaW5nKGUrMSkpJiYoZD0vKFteMF0qKSgwKykoLiopLy5leGVjKGUpLGE9ZFsxXSxkPWRbM10pO3JldHVybiBjJiZjIT0iMCI/KGM9LyhbXjBdKikoMCspKC4qKS8uZXhlYyhjKSk/e0xiOmIrMS0oY1syXS5sZW5ndGgtMSksWGI6YSxZYjpkLHByZWZpeDpjWzFdLHN1ZmZpeDpjWzNdfTpobjpobn07Cm5uPWZ1bmN0aW9uKGEpe2lmKCFpc0Zpbml0ZShhKSlyZXR1cm4gYT4wP2E6MDtmb3IodmFyIGI9MDsoYS89MTApPj0xOyliKys7cmV0dXJuIGJ9O3JuPWZ1bmN0aW9uKGEsYixjKXtpZighYSlyZXR1cm4gYTtiPWItbm4oYSktMTtyZXR1cm4gYjwtYz9qbihhLC1jKTpqbihhLGIpfTtzbj1udWxsO3RuPW51bGw7dW49bnVsbDt2bj0vXlxzKihcdyspXHMqLFxzKnBsdXJhbFxzKiwoPzpccypvZmZzZXQ6KFxkKykpPy87d249L15ccyooXHcrKVxzKixccypzZWxlY3RvcmRpbmFsXHMqLC87eG49L15ccyooXHcrKVxzKixccypzZWxlY3RccyosLztfLnluPWZ1bmN0aW9uKGEpe3RoaXMuaT1hO3RoaXMuaD10aGlzLmc9dGhpcy5sPW51bGw7YT1jbjt2YXIgYj1ibjtpZihzbiE9PWF8fHRuIT09Yilzbj1hLHRuPWIsdW49bmV3IGxuO3RoaXMubz11bn07Xy55bi5wcm90b3R5cGUuZm9ybWF0PWZ1bmN0aW9uKGEpe3JldHVybiB6bih0aGlzLGEsITEpfTsKXy5Bbj1mdW5jdGlvbihhLGIpe3JldHVybiB6bihhLGIsITApfTt6bj1mdW5jdGlvbihhLGIsYyl7aWYoYS5pKXthLmw9W107dmFyIGQ9Qm4oYSxhLmkpO2EuaD1DbihhLGQpO2EuaT1udWxsfWlmKCFhLmh8fGEuaC5sZW5ndGg9PTApcmV0dXJuIiI7YS5nPV8uY2IoYS5sKTtkPVtdO0RuKGEsYS5oLGIsYyxkKTtmb3IoYj1kLmpvaW4oIiIpO2EuZy5sZW5ndGg+MDspYj1iLnJlcGxhY2UoYS5qKGEuZyksU3RyaW5nKGEuZy5wb3AoKSkucmVwbGFjZSgiJCIsIiQkJCQiKSk7cmV0dXJuIGJ9OwpEbj1mdW5jdGlvbihhLGIsYyxkLGUpe2Zvcih2YXIgZj0wO2Y8Yi5sZW5ndGg7ZisrKXN3aXRjaChiW2ZdLnR5cGUpe2Nhc2UgNDplLnB1c2goYltmXS52YWx1ZSk7YnJlYWs7Y2FzZSAzOnZhciBnPWJbZl0udmFsdWU7dmFyIGg9YSxrPWUsbT1jW2ddO209PT12b2lkIDA/ay5wdXNoKCJVbmRlZmluZWQgcGFyYW1ldGVyIC0gIitnKTooaC5nLnB1c2gobSksay5wdXNoKGguaihoLmcpKSk7YnJlYWs7Y2FzZSAyOmc9YltmXS52YWx1ZTtoPWE7az1jO209ZDt2YXIgbj1lLHE9Zy5uYjtrW3FdPT09dm9pZCAwP24ucHVzaCgiVW5kZWZpbmVkIHBhcmFtZXRlciAtICIrcSk6KHE9Z1trW3FdXSxxPT09dm9pZCAwJiYocT1nLm90aGVyKSxEbihoLHEsayxtLG4pKTticmVhaztjYXNlIDA6Zz1iW2ZdLnZhbHVlO0VuKGEsZyxjLF8uV2wsZCxlKTticmVhaztjYXNlIDE6Zz1iW2ZdLnZhbHVlLEVuKGEsZyxjLF8uVWwsZCxlKX19OwpFbj1mdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9Yi5uYixoPWIueWMsaz0rY1tnXTtpc05hTihrKT9mLnB1c2goIlVuZGVmaW5lZCBvciBpbnZhbGlkIHBhcmFtZXRlciAtICIrZyk6KGg9ay1oLGc9YltjW2ddXSxnPT09dm9pZCAwJiYoZD1kKE1hdGguYWJzKGgpKSxnPWJbZF0sZz09PXZvaWQgMCYmKGc9Yi5vdGhlcikpLGI9W10sRG4oYSxnLGMsZSxiKSxjPWIuam9pbigiIiksZT9mLnB1c2goYyk6KGE9YS5vLmZvcm1hdChoKSxmLnB1c2goYy5yZXBsYWNlKC8jL2csYSkpKSl9O0JuPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5sLGQ9YS5qLmJpbmQoYSk7Yj1iLnJlcGxhY2UoXy5ZbCxmdW5jdGlvbigpe2MucHVzaCgiJyIpO3JldHVybiBkKGMpfSk7cmV0dXJuIGI9Yi5yZXBsYWNlKF8uWGwsZnVuY3Rpb24oZSxmKXtjLnB1c2goZik7cmV0dXJuIGQoYyl9KX07CkZuPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz1bXSxkPVtdLGU9L1t7fV0vZztlLmxhc3RJbmRleD0wO2Zvcih2YXIgZjtmPWUuZXhlYyhhKTspe3ZhciBnPWYuaW5kZXg7ZlswXT09In0iPyhjLnBvcCgpLGMubGVuZ3RoPT0wJiYoZj17dHlwZToxfSxmLnZhbHVlPWEuc3Vic3RyaW5nKGIsZyksZC5wdXNoKGYpLGI9ZysxKSk6KGMubGVuZ3RoPT0wJiYoYj1hLnN1YnN0cmluZyhiLGcpLGIhPSIiJiZkLnB1c2goe3R5cGU6MCx2YWx1ZTpifSksYj1nKzEpLGMucHVzaCgieyIpKX1hPWEuc3Vic3RyaW5nKGIpO2EhPSIiJiZkLnB1c2goe3R5cGU6MCx2YWx1ZTphfSk7cmV0dXJuIGR9OwpDbj1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO2I9Rm4oYik7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPXt9O2lmKDA9PWJbZF0udHlwZSllLnR5cGU9NCxlLnZhbHVlPWJbZF0udmFsdWU7ZWxzZSBpZigxPT1iW2RdLnR5cGUpe3ZhciBmPWJbZF0udmFsdWU7c3dpdGNoKHZuLnRlc3QoZik/MDp3bi50ZXN0KGYpPzE6eG4udGVzdChmKT8yOi9eXHMqXHcrXHMqLy50ZXN0KGYpPzM6NSl7Y2FzZSAyOmUudHlwZT0yO2UudmFsdWU9R24oYSxiW2RdLnZhbHVlKTticmVhaztjYXNlIDA6ZS50eXBlPTA7ZS52YWx1ZT1IbihhLGJbZF0udmFsdWUpO2JyZWFrO2Nhc2UgMTplLnR5cGU9MTtlLnZhbHVlPUluKGEsYltkXS52YWx1ZSk7YnJlYWs7Y2FzZSAzOmUudHlwZT0zLGUudmFsdWU9YltkXS52YWx1ZX19Yy5wdXNoKGUpfXJldHVybiBjfTsKR249ZnVuY3Rpb24oYSxiKXt2YXIgYz0iIjtiPWIucmVwbGFjZSh4bixmdW5jdGlvbihoLGspe2M9aztyZXR1cm4iIn0pO3ZhciBkPXt9O2QubmI9YztiPUZuKGIpO2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7KXt2YXIgZj1iW2VdLnZhbHVlO2UrKzt2YXIgZz12b2lkIDA7MT09YltlXS50eXBlJiYoZz1DbihhLGJbZV0udmFsdWUpKTtkW2YucmVwbGFjZSgvXHMvZywiIildPWc7ZSsrfXJldHVybiBkfTtIbj1mdW5jdGlvbihhLGIpe3ZhciBjPSIiLGQ9MDtiPWIucmVwbGFjZSh2bixmdW5jdGlvbihrLG0sbil7Yz1tO24mJihkPXBhcnNlSW50KG4sMTApKTtyZXR1cm4iIn0pO3ZhciBlPXt9O2UubmI9YztlLnljPWQ7Yj1GbihiKTtmb3IodmFyIGY9MDtmPGIubGVuZ3RoOyl7dmFyIGc9YltmXS52YWx1ZTtmKys7dmFyIGg9dm9pZCAwOzE9PWJbZl0udHlwZSYmKGg9Q24oYSxiW2ZdLnZhbHVlKSk7ZVtnLnJlcGxhY2UoL1xzKig/Oj0pPyhcdyspXHMqLywiJDEiKV09aDtmKyt9cmV0dXJuIGV9OwpJbj1mdW5jdGlvbihhLGIpe3ZhciBjPSIiO2I9Yi5yZXBsYWNlKHduLGZ1bmN0aW9uKGgsayl7Yz1rO3JldHVybiIifSk7dmFyIGQ9e307ZC5uYj1jO2QueWM9MDtiPUZuKGIpO2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7KXt2YXIgZj1iW2VdLnZhbHVlO2UrKzt2YXIgZz12b2lkIDA7MT09YltlXS50eXBlJiYoZz1DbihhLGJbZV0udmFsdWUpKTtkW2YucmVwbGFjZSgvXHMqKD86PSk/KFx3KylccyovLCIkMSIpXT1nO2UrK31yZXR1cm4gZH07Xy55bi5wcm90b3R5cGUuaj1mdW5jdGlvbihhKXtyZXR1cm4iXHVmZGRmXyIrKGEubGVuZ3RoLTEpLnRvU3RyaW5nKDEwKSsiXyJ9O18uSm49ZnVuY3Rpb24oKXtyZXR1cm4iTG9nZyBwXHUwMGU1IG1lZCBHb29nbGUifTsKXy5Lbj1mdW5jdGlvbihhKXt2YXIgYj1fLlooKTtzd2l0Y2goYSl7Y2FzZSAxODphPSgwLF8uVSkoIlRpbGdhbmdlbiBlciBibG9ra2VydDogQWRtaW5pc3RyYXRvcmVuIGZvciBpbnN0aXR1c2pvbmVuIGRpbiBtXHUwMGU1IGdqZW5ub21nXHUwMGU1IGRlbm5lIGFwcGVuIik7Xy5ZKGIsYSk7YnJlYWs7Y2FzZSAxOTphPSgwLF8uVSkoIlRpbGdhbmdlbiBlciBibG9ra2VydDogRm9yZXNwXHUwMGY4cnNlbGVuIG1pc2x5a3RlcyIpO18uWShiLGEpO2JyZWFrO2RlZmF1bHQ6Xy5ZKGIsIkRldCBoYXIgb3Bwc3RcdTAwZTV0dCBlbiBmZWlsLiIpfXJldHVybiBifTsKTG49ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSc8ZGl2IGNsYXNzPSInK18uVygiS21TQVplLXUwcGpvZSIpKyciPicrKGE/Xy5WKGEpOiIiKTtiJiYoZCs9YT8iICI6IiIsYT0nPGEgaHJlZj0iJytfLlcoXy5lbihiKSkrJyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSInK18uVygiaFNSR1BkIikrJyI+RmlubiB1dCBtZXI8L2E+JyxkKz1hKTtjJiYoZCs9IjxwPiIsYz0iRmVpbGtvZGU6ICIrXy5WKGMpLGQ9ZCtjKyI8L3A+Iik7cmV0dXJuKDAsXy5VKShkKyI8L2Rpdj4iKX07Cl8uTW49ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Xy5aKCk7aWYoYilzd2l0Y2goYSl7Y2FzZSAxODphPSIiKyhiP18uVihiKToiIik7YyYmKGM9JyA8YSBocmVmPSInKyhfLlcoXy5lbihjKSkrJyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSInK18uVygiaFNSR1BkIikrJyI+YmUgb20gdGlsZ2FuZy48L2E+JyksYSs9Yyk7Yz0oMCxfLlUpKGEpO18uWShlLGMpO2JyZWFrO2Nhc2UgMTk6Xy5ZKGUsTG4oYixjLGQpKTticmVhaztkZWZhdWx0OmM9Xy5WKGIpLGE9U3RyaW5nKGMpLnJlcGxhY2UoLyhcclxufFxyfFxuKS9nLCI8YnI+IiksYz1fLkRsKGMsXy54bCk/KDAsXy5VKShhLF8uQ2woYykpOmEsXy5YKGUsYyl9ZWxzZSBzd2l0Y2goYSl7Y2FzZSAxOmM9KDAsXy5VKSgiR29vZ2xlLWtvbnRvZW4gZHUgdmFsZ3RlLCBoYXIgbG9nZ2V0IGF2LiBMb2dnIHBcdTAwZTUgR29vZ2xlIG9nIHByXHUwMGY4diBpZ2plbi4iKTtfLlkoZSxjKTticmVhaztjYXNlIDU6Yz0nRGVuIG5cdTAwZTV2XHUwMGU2cmVuZGUgb3BwcmlubmVsc2VuIGVyIGlra2UgcmVnaXN0cmVydCBtZWQgR29vZ2xlIE9BdXRoLWtsaWVudGVuLiA8YSBocmVmPSJodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9pZGVudGl0eS9vbmUtdGFwL3dlYi9ndWlkZXMvZ2V0LWdvb2dsZS1hcGktY2xpZW50aWQiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iJysKKF8uVygiaFNSR1BkIikrJyI+RmlubiB1dCBtZXI8L2E+Jyk7Yz0oMCxfLlUpKGMpO18uWShlLGMpO2JyZWFrO2Nhc2UgMTQ6Yz0oMCxfLlUpKCJCYXJlIGtvbnRvZXIgZnJhIG9yZ2FuaXNhc2pvbmVuIGhhciB0aWxnYW5nIHRpbCBkZXR0ZSBuZXR0c3RlZGV0LiBMb2dnIHBcdTAwZTUgbWVkIGVuIGFubmVuIGtvbnRvIGVsbGVyIGJlIGFkbWluaXN0cmF0b3JlbiBkaW4gb20gXHUwMGU1IG9wcGRhdGVyZSBpbm5zdGlsbGluZ2VuZSBmb3IgR29vZ2xlIE9BdXRoLWtsaWVudGVuLiIpO18uWShlLGMpO2JyZWFrO2Nhc2UgMTU6Yz0oMCxfLlUpKCJUaWxnYW5nIHRpbCBrb250b2RhdGFlbmUgZGluZSBiZWdyZW5zZXMgYXYgcmV0bmluZ3NsaW5qZW5lIGkgb3JnYW5pc2Fzam9uZW4gZGluLiBUYSBrb250YWt0IG1lZCBhZG1pbmlzdHJhdG9yZW4gZm9yIG9yZ2FuaXNhc2pvbmVuIGZvciBcdTAwZTUgZlx1MDBlNSBtZXIgaW5mb3JtYXNqb24uIik7Xy5ZKGUsYyk7YnJlYWs7Y2FzZSAyMDpjPQonRGVuIGdqZWxkZW5kZSBVUkktZW4gZm9yIHBcdTAwZTVsb2dnaW5nIGVyIGlra2UgcmVnaXN0cmVydCBpIEdvb2dsZSBPQXV0aC1rbGllbnRlbi4gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vaWRlbnRpdHkvb25lLXRhcC93ZWIvZ3VpZGVzL2dldC1nb29nbGUtYXBpLWNsaWVudGlkIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IicrKF8uVygiaFNSR1BkIikrJyI+RmlubiB1dCBtZXI8L2E+Jyk7Yz0oMCxfLlUpKGMpO18uWShlLGMpO2JyZWFrO2Nhc2UgMTk6Xy5ZKGUsTG4oYixjLGQpKTticmVhaztkZWZhdWx0OmM9KDAsXy5VKSgiRGV0IGVyIGFsdCB2aSB2ZXQuIiksXy5ZKGUsYyl9cmV0dXJuIGV9OwpfLk5uPWZ1bmN0aW9uKGEsYil7cmV0dXJuKDAsXy5VKSgoYj8nPHN2ZyBjbGFzcz0iJysoYT9fLlcoIkJ6MTEyYy11Mno1SyIpOl8uVygiQnoxMTJjLUUzRHlZZCIpKSsiICIrXy5XKCJCejExMmMtdWF4TDRlIikrJyIgeG1sbnM9Imh0dHBzOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4IDQ4Ij4nOic8c3ZnIGNsYXNzPSInKyhhP18uVygiQnoxMTJjLXUyejVLIik6Xy5XKCJCejExMmMtRTNEeVlkIikpKyciIHhtbG5zPSJodHRwczovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCI+JykrJzxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00NS4xMiAyNC41YzAtMS41Ni0uMTQtMy4wNi0uNC00LjVIMjR2OC41MWgxMS44NGMtLjUxIDIuNzUtMi4wNiA1LjA4LTQuMzkgNi42NHY1LjUyaDcuMTFjNC4xNi0zLjgzIDYuNTYtOS40NyA2LjU2LTE2LjE3eiIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Ik0yNCA0NmM1Ljk0IDAgMTAuOTItMS45NyAxNC41Ni01LjMzbC03LjExLTUuNTJjLTEuOTcgMS4zMi00LjQ5IDIuMS03LjQ1IDIuMS01LjczIDAtMTAuNTgtMy44Ny0xMi4zMS05LjA3SDQuMzR2NS43QzcuOTYgNDEuMDcgMTUuNCA0NiAyNCA0NnoiLz48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMTEuNjkgMjguMThDMTEuMjUgMjYuODYgMTEgMjUuNDUgMTEgMjRzLjI1LTIuODYuNjktNC4xOHYtNS43SDQuMzRDMi44NSAxNy4wOSAyIDIwLjQ1IDIgMjRjMCAzLjU1Ljg1IDYuOTEgMi4zNCA5Ljg4bDcuMzUtNS43eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Ik0yNCAxMC43NWMzLjIzIDAgNi4xMyAxLjExIDguNDEgMy4yOWw2LjMxLTYuMzFDMzQuOTEgNC4xOCAyOS45MyAyIDI0IDIgMTUuNCAyIDcuOTYgNi45MyA0LjM0IDE0LjEybDcuMzUgNS43YzEuNzMtNS4yIDYuNTgtOS4wNyAxMi4zMS05LjA3eiIvPjxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0yIDJoNDR2NDRIMnoiLz48L3N2Zz4nKX07Xy5Qbj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iPT09dm9pZCAwPyExOmI7Yz1jPT09dm9pZCAwPyExOmM7Yj1kPT09dm9pZCAwPyExOmQ7ZD1fLlgoXy5aKCksJzxkaXYgaWQ9ImNyZWRlbnRpYWxzLXBpY2tlciIgY2xhc3M9IicrXy5XKCJmRlc3d2MiKSsnIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWxsZWRieT0iJysoZT8ibGlzdC1jb2xsYXBzZWQtbGFiZWwiOiJsaXN0LWV4dGVuZGVkLWxhYmVsIikrJyI+Jyk7ZT1hLmxlbmd0aDtmb3IodmFyIGY9MDtmPGU7ZisrKV8uWShkLF8uT24oYVtmXSxmLHZvaWQgMCxiLGEubGVuZ3RoKSk7Yz8oYz1fLlgoXy5ZKF8uWChfLlooKSwnPGRpdiBjbGFzcz0iJytfLlcoImZGVzd3Yy1pYm5DNmItc001TU5iIikrIiAiK18uVygid2RlcHJiLWlqVU1HLW16TnBzZiIpKyciIGlkPSJ1c2Utb3RoZXIiIHRhYmluZGV4PSIwIiByb2xlPSJsaW5rIj48ZGl2IGNsYXNzPSInK18uVygiZkZXN3djLWlibkM2Yi1NSm9CVmUiKSsnIj48L2Rpdj48ZGl2IGNsYXNzPSInKwpfLlcoImZGVzd3Yy1pYm5DNmIiKSsnIj4nKSwoMCxfLlUpKCc8c3ZnIGNsYXNzPSInK18uVygiZkZXN3djLWlibkM2Yi1IaWFZdmYiKSsiICIrXy5XKCJ3ZGVwcmItaWpVTUctbXpOcHNmLUJ6MTEyYyIpKyciIHhtbG5zPSJodHRwczovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzc1NzU3NSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xMiwyQzYuNDgsMiwyLDYuNDgsMiwxMmMwLDUuNTIsNC40OCwxMCwxMCwxMGM1LjUyLDAsMTAtNC40OCwxMC0xMEMyMiw2LjQ4LDE3LjUyLDIsIDEyLDJ6IE03LjA3LDE4LjI4IGMwLjQzLTAuOSwzLjA1LTEuNzgsNC45My0xLjc4czQuNTEsMC44OCw0LjkzLDEuNzhDMTUuNTcsMTkuMzYsMTMuODYsIDIwLDEyLDIwUzguNDMsMTkuMzYsNy4wNywxOC4yOHogTTE4LjM2LDE2LjgzIGMtMS40My0xLjc0LTQuOS0yLjMzLTYuMzYtMi4zM3MtNC45MywgMC41OS02LjM2LDIuMzNDNC42MiwxNS40OSw0LDEzLjgyLDQsMTJjMC00LjQxLDMuNTktOCw4LThjNC40MSwwLDgsMy41OSw4LDggQzIwLCAxMy44MiwxOS4zOCwxNS40OSwxOC4zNiwxNi44M3oiLz48cGF0aCBkPSJNMTIsNmMtMS45NCwwLTMuNSwxLjU2LTMuNSwzLjVTMTAuMDYsMTMsMTIsMTNjMS45NCwwLDMuNS0xLjU2LDMuNS0zLjVTMTMuOTQsNiwxMiw2eiBNMTIsMTFjLTAuODMsMC0xLjUtMC42Ny0xLjUtMS41IEMxMC41LDguNjcsMTEuMTcsOCwxMiw4YzAuODMsMCwxLjUsMC42NywxLjUsMS41QzEzLjUsIDEwLjMzLDEyLjgzLDExLDEyLDExeiIvPjxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0wLDBoMjR2MjRIMFYweiIvPjwvc3ZnPicpKSwKJzxkaXYgY2xhc3M9IicrXy5XKCJmRlc3d2MtaWJuQzZiLXI0bTJyZiIpKyciPjxkaXYgY2xhc3M9IicrXy5XKCJmRlc3d2MtaWJuQzZiLXNzSlJJZiIpKyciPicpLF8uWShjLCJCcnVrIGVuIGFubmVuIGtvbnRvIiksXy5YKGMsIjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PiIpKTpjPSIiO18uWChfLlkoZCxjKSwnPC9kaXY+PGRpdiBpZD0ibGlzdC1jb2xsYXBzZWQtbGFiZWwiIGNsYXNzPSInK18uVygiTDZjVGNlIikrJyI+Jyk7Xy5ZKGQsIkxpc3RlIG92ZXIgR29vZ2xlLWtvbnRvZXIgbWVkIHRvIGVsZW1lbnRlci4iKTtfLlgoZCwnPC9kaXY+PGRpdiBpZD0ibGlzdC1leHRlbmRlZC1sYWJlbCIgY2xhc3M9IicrXy5XKCJMNmNUY2UiKSsnIj4nKTthPV8uQW4obmV3IF8ueW4oIntOVU0scGx1cmFsLCA9MXtMaXN0ZSBvdmVyIEdvb2dsZS1rb250b2VyIG1lZCAxIGVsZW1lbnQufW90aGVye0xpc3RlIG92ZXIgR29vZ2xlLWtvbnRvZXIgbWVkIHtYWFh9IGVsZW1lbnRlci59fSIpLHtOVU06YS5sZW5ndGgsClhYWDpfLlYoYS5sZW5ndGgpfSk7Xy5ZKGQsYSk7Xy5YKGQsIjwvZGl2PiIpO3JldHVybiBkfTsKXy5Pbj1mdW5jdGlvbihhLGIsYyxkLGUpe2M9Yz09PXZvaWQgMD8hMTpjO2Q9ZD09PXZvaWQgMD8hMTpkO2M9Xy5YKF8uWigpLCc8ZGl2IGNsYXNzPSInK18uVygiZkZXN3djLWlibkM2Yi1zTTVNTmIiKSsiICIrXy5XKCJUQUtCeGIiKSsiICIrKGM/Xy5XKCJPV0I2TWUiKToiIikrJyIgYXJpYS1sYWJlbGxlZGJ5PSJwaWNrZXItaXRlbS1sYWJlbC0nK18uVyhiKSsnIicrKGM/JyByb2xlPSJ0ZXh0Iic6JyByb2xlPSJsaW5rIiB0YWJpbmRleD0iMCInKSsnPjxkaXYgY2xhc3M9IicrXy5XKCJmRlc3d2MtaWJuQzZiIikrJyI+PGRpdiBjbGFzcz0iJytfLlcoImFaMndFZSIpKycgbWRsLXNwaW5uZXIgbWRsLWpzLXNwaW5uZXIgbWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciIgYXJpYS1oaWRkZW49dHJ1ZT48L2Rpdj48ZGl2IGNsYXNzPSInK18uVygiTVB1NTNjIikrJyIgYXJpYS1oaWRkZW49dHJ1ZT4nKTt2YXIgZj0oMCxfLlUpKCc8c3ZnIGNsYXNzPSInK18uVygiQnoxMTJjIikrIiAiKwpfLlcoIkJ6MTEyYy1FM0R5WWQiKSsnIiBmaWxsPSIjRkZGRkZGIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwczovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiLz48cGF0aCBkPSJNOSAxNi4yTDQuOCAxMmwtMS40IDEuNEw5IDE5IDIxIDdsLTEuNC0xLjRMOSAxNi4yeiIvPjwvc3ZnPicpO2M9Xy5YKF8uWShjLGYpLCI8L2Rpdj4iKTthLnByb2ZpbGVQaWN0dXJlPyhhLmRpc3BsYXlOYW1lPyhfLlgoYywnPGltZyBjbGFzcz0iJytfLlcoImZGVzd3Yy1pYm5DNmItSGlhWXZmIikrJyIgc3JjPSInK18uVyhfLk5sKGEucHJvZmlsZVBpY3R1cmUpKSsnIiBhbHQ9IicpLGY9IlByb2ZpbGJpbGRldCB0aWwgIitfLlcoYS5kaXNwbGF5TmFtZSksXy5ZKGMsXy5JbChmKSkpOihfLlgoYywnPGltZyBjbGFzcz0iJytfLlcoImZGVzd3Yy1pYm5DNmItSGlhWXZmIikrJyIgc3JjPSInK18uVyhfLk5sKGEucHJvZmlsZVBpY3R1cmUpKSsKJyIgYWx0PSInKSxmPSJQcm9maWxiaWxkZXQgdGlsICIrXy5XKGEuaWQpLF8uWShjLF8uSWwoZikpKSxfLlgoYywnIiBhcmlhLWhpZGRlbj10cnVlPicpKTpfLlkoYyxfLiRsKCkpO18uWChjLCc8ZGl2IGNsYXNzPSInK18uVygiZkZXN3djLWlibkM2Yi1yNG0ycmYiKSsnIiBhcmlhLWhpZGRlbj10cnVlPicrKGEuZGlzcGxheU5hbWU/JzxkaXYgY2xhc3M9IicrXy5XKCJmRlc3d2MtaWJuQzZiLXNzSlJJZiIpKyciPicrXy5WKGEuZGlzcGxheU5hbWUpKyc8L2Rpdj48ZGl2IGNsYXNzPSInK18uVygiZkZXN3djLWlibkM2Yi1LNGVmZmYiKSsnIj4nK18uVihhLmlkKSsiPC9kaXY+IjonPGRpdiBjbGFzcz0iJytfLlcoImZGVzd3Yy1pYm5DNmItc3NKUklmIikrJyI+JytfLlYoYS5pZCkrIjwvZGl2PiIpKyI8L2Rpdj4iKyhkPyc8YnV0dG9uIGlkPSJjYW5jZWwtYnV0dG9uIiBjbGFzcz0ibWRsLWJ1dHRvbiBtZGwtanMtYnV0dG9uIG1kbC1idXR0b24tLXByaW1hcnkgJytfLlcoIkliRTBTLUxnYnNTZSIpKwonIj5DYW5jZWw8L2J1dHRvbj4nOiIiKSsnPC9kaXY+PGRpdiBpZD0icGlja2VyLWl0ZW0tbGFiZWwtJytfLlcoYikrJyIgY2xhc3M9IicrXy5XKCJMNmNUY2UiKSsnIj4nKTtpZihhLnByb2ZpbGVQaWN0dXJlKXt2YXIgZyxoLGs9Ikdvb2dsZS1rb250bywgcHJvZmlsYmlsZGV0IHRpbCAiK2FuKChnPWEuZGlzcGxheU5hbWUpIT1udWxsP2c6YS5pZCkrIiwgIithbigoaD1hLmRpc3BsYXlOYW1lKSE9bnVsbD9oOiIiKSsiLCAiK18uVihhLmlkKStfLlYoZT4xPyIsICIrKGIrMSkrIiBvZiAiK2U6IiIpO18uWShjLGspfWVsc2UgZz0iR29vZ2xlLWtvbnRvLCAiK2FuKChrPWEuZGlzcGxheU5hbWUpIT1udWxsP2s6IiIpKyIsICIrXy5WKGEuaWQpK18uVihlPjE/IiwgIisoYisxKSsiIG9mICIrZToiIiksXy5ZKGMsZyk7Xy5YKGMsIjwvZGl2PjwvZGl2PiIpO3JldHVybiBjfTsKXy5Rbj1mdW5jdGlvbigpe3ZhciBhPSc8ZGl2IGNsYXNzPSInK18uVygickYzYzItR012aEciKSsnIj4nO3JldHVybigwLF8uVSkoYSsnRm9yIFx1MDBlNSBiZXNreXR0ZSBrb250b2VuIGRpbiBibG9ra2VyZXIgR29vZ2xlIHNuYXJ0IGFwcGVyIHNvbSBpa2tlIG92ZXJob2xkZXIgR29vZ2xlcyByZXRuaW5nc2xpbmplciBmb3Igc2lrcmUgbmV0dGxlc2VyZS4gRHUga2FuIGxvZ2dlIHBcdTAwZTUgZGV0dGUgbmV0dHN0ZWRldCBmcmEgZW4gbmV0dGxlc2VyIHNvbSBzdFx1MDBmOHR0ZXMuIDxhIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL2FjY291bnRzL2Fuc3dlci83Njc1NDI4IiB0YXJnZXQ9Il9ibGFuayI+RmlubiB1dCBtZXI8L2E+PC9kaXY+Jyl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgVG47Xy5Sbj1mdW5jdGlvbihhKXt2YXIgYj1bXTthLmZvckVhY2goZnVuY3Rpb24oYyl7Yi5wdXNoKF8ucGwoYykpfSk7cmV0dXJuIGJ9O18uU249ZnVuY3Rpb24oKXt2YXIgYT1uZXcgXy56aDtyZXR1cm4gXy5TKGEsMSwwKX07VG49ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKFRuLF8uRCk7dmFyIFVuPVszXSxWbj1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooVm4sXy5EKTsKdmFyIFduPV8uaWkoVm4pLFhuPWZ1bmN0aW9uKGEpe3ZhciBiO2EmJihiPV8ud2soYSkpO2E9bmV3IF8uaGQoIi9nc2kvaXNzdWUiKTtfLmtkKGEsYik7dmFyIGM9bmV3IF8uS2k7Xy5RayhhLnRvU3RyaW5nKCksZnVuY3Rpb24oZCl7Yy5yZXNvbHZlKF8uTWsoZC50YXJnZXQpKX0sIlBPU1QiLG51bGwseyJYLVJlcXVlc3RlZC1XaXRoIjoiWG1sSHR0cFJlcXVlc3QifSwhMCk7cmV0dXJuIGMucHJvbWlzZX0sWW49ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGssbSl7YT17dXNlcl9pZDpiLGNsaWVudF9pZDphLmNsaWVudElkLG9yaWdpbjphLmFhLHNlbGVjdF9ieTpjLGNvbnNlbnRfYWNxdWlyZWQ6ZCx0b2tlbjplLGF0OmV9O2YmJihhLm5vbmNlPWYpO2cmJihhLmFzPWcpO2gmJihhLnVpX21vZGU9aCk7ayYmKGEuYXBwcm92YWxfc3RhdGU9ayk7bSYmKGEubGlicmFyeV9uYW1lPW0pO3ZhciBuPW5ldyBfLktpO1huKGEpLnRoZW4oZnVuY3Rpb24ocSl7cSYmcSE9PSJudWxsIj8ocT1XbihKU09OLnN0cmluZ2lmeShfLm9rKHEpKSksCm4ucmVzb2x2ZShxKSk6KF8uSCgiSXNzdWUgY3JlZGVudGlhbCByZXR1cm5zIGludmFsaWQgcmVzcG9uc2UuIiksbi5yZXNvbHZlKG51bGwpKX0sZnVuY3Rpb24ocSl7bi5yZWplY3QocSl9KTtyZXR1cm4gbi5wcm9taXNlfSxabj1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooWm4sXy5EKTtfLiRuPV8ubWgoWm4sWzAsXy5YayxfLkxpLF8udm0sXy5VayxfLlprLF8uaGYsLTIsXy54bSxfLmhmLC01LF8uZ2YsLTEsXy5qZixfLmdmLF8ueG0sXy5nZixfLmhmLC0xLF8uamYsXy5oZiwtMSxfLmpmLC0xLF8ueG0sXy5oZiwtMV0pO18uYW89ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD8icGlja2VyX2lmcmFtZSI6Yzt2YXIgZD1fLk0oYixfLnRtLDMpO18uRm0uY2FsbCh0aGlzLGEsXy51bShkKSxfLlhlKGQsMiksXy54aShiLDUpLGMpO3RoaXMuaj1iO3RoaXMuY2xpZW50RGF0YT1kO3RoaXMuY3JlZGVudGlhbHM9Xy5GaShiLF8uWWssNCxfLktlPT09Xy5LZT8yOjQpO3RoaXMuamI9Xy5OKGIsMTApO3RoaXMuY29udGV4dD1fLk4oYiw5KXx8InNpZ25pbiI7dGhpcy5sYT1fLk1iKF8uTChiLDgpKT09PTA/MDpfLlNrKGIsOCl8fC0xO3RoaXMubm9uY2U9Xy5OKGIsNyl8fHZvaWQgMDtpZihhPV8uTShiLF8uUmssMSkpdGhpcy5zZXNzaW9uSWQ9Xy5OKGEsMSl8fHZvaWQgMCx0aGlzLkM9Xy5OKGEsMyl8fHZvaWQgMDthPV8uc20odGhpcy5jbGllbnREYXRhKTtfLlIodGhpcy5jbGllbnREYXRhLDMsYSl9O18uSihfLmFvLF8uRm0pO18uYW8ucHJvdG90eXBlLmg9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3JldHVybiBfLkZtLnByb3RvdHlwZS5oLmNhbGwodGhpcykudGhlbihmdW5jdGlvbigpe3JldHVybiBhLlAoKX0pfTsKXy5hby5wcm90b3R5cGUubD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzO2M9Yz09PXZvaWQgMD8hMTpjO3ZhciBmPXRoaXMuZztmJiZmLmdhKGQ9PT12b2lkIDA/ITE6ZCk7cmV0dXJuIGJvKHRoaXMsYSxiLGMpLnRoZW4oZnVuY3Rpb24oZyl7aWYoIWcpcmV0dXJuIGUuSCgpLF8uSCgiRmFpbGVkIHRvIGlzc3VlIGNyZWRlbnRpYWwgZHVlIHRvIGFuIHVua25vd24gZXJyb3IiKSxfLkRoKGUsImlzc3VlX2NyZWRlbnRpYWxfZmFpbGVkIix7Y2F1c2U6IkVycm9yIGVuY291bnRlcmVkIHdoaWxlIGlzc3VpbmcgY3JlZGVudGlhbC4ifSksUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCk7aWYoXy5WZShnLF8uemgsMikpe3ZhciBoPV8uTShnLF8uemgsMik7ZS5IKGgpO18ubmgoaCk7Xy5EaChlLCJpc3N1ZV9jcmVkZW50aWFsX2ZhaWxlZCIse2NhdXNlOiJFcnJvciBlbmNvdW50ZXJlZCB3aGlsZSBpc3N1aW5nIGNyZWRlbnRpYWwuIn0pO3JldHVybiBQcm9taXNlLnJlc29sdmUodm9pZCAwKX1yZXR1cm4oZj8KZi5WKHtlYjpfLk4oZS5qLDYpPT09ImJvdHRvbV9zaGVldCImJihfLlBrKGcsNCl8fCExKX0pOlByb21pc2UucmVzb2x2ZSgpKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGs9Xy5abCh7aWRlbnRpZmllcjpfLk4oYSwxKX0pLG09Zj9mLkY6dm9pZCAwLG49Yj09PSJhdXRvIixxPV8udWsoYikscD1jLHI9Xy5UO3A9cD09PXZvaWQgMD8hMTpwO209Xy5rayg0LG4sbSk7cT1fLlMobSw4LHEpO3A9Xy55aShxLDQscCk7ci5sb2cocCk7Xy5ULmZsdXNoKCk7cj1fLk0oZyxUbixfLk9rKGcsVW4sMyksdm9pZCAwKTtyPXtjbGllbnRJZDpfLk4oZS5jbGllbnREYXRhLDEpLGNsaWVudF9pZDpfLk4oZS5jbGllbnREYXRhLDEpLGNyZWRlbnRpYWw6ciE9PXZvaWQgMD9fLk4ociwxKTp2b2lkIDAsc2VsZWN0X2J5OmJ9O3JldHVybiBlLkcocixrKX0pfSxmdW5jdGlvbihnKXtlLkgoKTtfLkgoIiIrZyk7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh2b2lkIDApfSl9OwpfLmFvLnByb3RvdHlwZS5HPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uQ20oXy5HbSh0aGlzKSxhLGIpfTsKdmFyIGJvPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuaGI7aWYoYz09PSJhdXRvIiYmXy5WZShiLFRuLDgpKXtjPW5ldyBWbjthPV8uTShhLmosXy5SaywxKTtfLmRqKGMsMSxhKTthPV8uTShiLFRuLDgpO2E9Xy5QaShhKTthOntiPWE7Xy5PaChjKTtkPWMuQTtlPWRbXy5BXXwwO2lmKGI9PW51bGwpe3ZhciBmPV8ubWsoZCk7aWYoXy5uayhmLGQsZSxVbik9PT0zKWYuc2V0KFVuLDApO2Vsc2UgYnJlYWsgYX1lbHNle2Y9Xy5tayhkKTt2YXIgZz1fLm5rKGYsZCxlLFVuKTtnIT09MyYmKGcmJihlPV8udGMoZCxlLGcpKSxmLnNldChVbiwzKSl9Xy50YyhkLGUsMyxiKX1hJiYhXy56YihhKSYmXy5zYyhjLkEpO18ueWkoYyw0LCEwKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGMpfWY9Xy5OKGIsMik7Zz1fLk4oYS5qLDYpfHx2b2lkIDA7Yj1fLk4oYiwxMCl8fHZvaWQgMDt2YXIgaD1fLnhpKGEuaiwyNSk7cmV0dXJuIFluKGUsZixjLGQsYS5qYixhLm5vbmNlLGEuc2Vzc2lvbklkLGcsCmIsaCl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgbW8sb28sY28saG8sc287Xy5lbz1mdW5jdGlvbihhLGIsYyxkKXtpZihhLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoIkciKTthPWEubWFwKGZ1bmN0aW9uKGYpe2lmKGYgaW5zdGFuY2VvZiBjbylmPWYuZztlbHNlIHRocm93IEVycm9yKCJHIik7cmV0dXJuIGZ9KTt2YXIgZT1jLnRvTG93ZXJDYXNlKCk7aWYoYS5ldmVyeShmdW5jdGlvbihmKXtyZXR1cm4gZS5pbmRleE9mKGYpIT09MH0pKXRocm93IEVycm9yKCJIYCIrYyk7Yi5zZXRBdHRyaWJ1dGUoYyxkKX07Xy5mbz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IGNvKGFbMF0udG9Mb3dlckNhc2UoKSl9O18uZ289ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgInNpZ251cCI6cmV0dXJuIDI7Y2FzZSAidXNlIjpyZXR1cm4gMztkZWZhdWx0OnJldHVybiAxfX07Cl8uaW89ZnVuY3Rpb24oYSl7aWYoaG89PW51bGwpe3ZhciBiPV8ucWx8fChfLnFsPW5ldyBfLndsKTt2YXIgYz1iLmcsZD1fLnNmKGIuZywiZGl2Iik7ZC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9InJnYigxLCAyLCAzKSI7Yi5hcHBlbmRDaGlsZChjLmJvZHksZCk7YTp7Yz1kLm5vZGVUeXBlPT05P2Q6ZC5vd25lckRvY3VtZW50fHxkLmRvY3VtZW50O2lmKGMuZGVmYXVsdFZpZXcmJmMuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSYmKGM9Yy5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGQsbnVsbCkpKXtjPWMuYmFja2dyb3VuZENvbG9yfHxjLmdldFByb3BlcnR5VmFsdWUoImJhY2tncm91bmRDb2xvciIpfHwiIjticmVhayBhfWM9IiJ9Yz1jLnJlcGxhY2UoLyAvZywiIik7Yz1jPT09InJnYigwLDAsMCkiPyJibGFjayI6Yz09PSJyZ2IoMjU1LDI1NSwyNTUpIj8id2hpdGUiOiJub25lIjtiLmgoZCk7aG89Y31iPWhvO18uRSgiSGlnaCBDb250cmFzdCBNb2RlOiAiK2IrIi4gVXBkYXRpbmcgY2xhc3NlcyBmb3IgIisKYSk7c3dpdGNoKGIpe2Nhc2UgImJsYWNrIjphLmNsYXNzTGlzdC5hZGQoIkNOdXNtYi1oYURubmMiKTthLmNsYXNzTGlzdC5hZGQoIkNOdXNtYi1oYURubmMtSmFQVjJiIik7YS5jbGFzc0xpc3QucmVtb3ZlKCJDTnVzbWItaGFEbm5jLUhMdmx2ZCIpO2JyZWFrO2Nhc2UgIndoaXRlIjphLmNsYXNzTGlzdC5hZGQoIkNOdXNtYi1oYURubmMiKTthLmNsYXNzTGlzdC5hZGQoIkNOdXNtYi1oYURubmMtSEx2bHZkIik7YS5jbGFzc0xpc3QucmVtb3ZlKCJDTnVzbWItaGFEbm5jLUphUFYyYiIpO2JyZWFrO2RlZmF1bHQ6YS5jbGFzc0xpc3QucmVtb3ZlKCJDTnVzbWItaGFEbm5jIiksYS5jbGFzc0xpc3QucmVtb3ZlKCJDTnVzbWItaGFEbm5jLUphUFYyYiIpLGEuY2xhc3NMaXN0LnJlbW92ZSgiQ051c21iLWhhRG5uYy1ITHZsdmQiKX19O18uam89ZnVuY3Rpb24oKXtfLlQuaT1wZXJmb3JtYW5jZS5ub3coKX07Cl8ua289ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Xy5UO2E9Xy5raygyLGI9PT12b2lkIDA/ITE6YixhKTtpZihjKXtiPW5ldyBfLmVrO2Zvcih2YXIgZj0wLGc9MDtnPGMubGVuZ3RoO2crKyljW2ddLmRhKCkmJmYrKztjPV8uamooYiwxLGMubGVuZ3RoKTtfLmpqKGMsMixmKTtfLmRqKGEsNyxiKX1kJiZfLlMoYSwyMyxkKTtlLmxvZyhhKX07Xy5sbz1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPV8uVDtiIT09MiYmZi5sb2coXy5sayhhLGIsYyxkLGUpKX07bW89ZnVuY3Rpb24oYSl7dmFyIGI9YS5ZZDtyZXR1cm4oMCxfLlUpKCI8c3BhbiIrKChiPT09dm9pZCAwPzA6Yik/JyByb2xlPSJhbGVydCInOiIiKSsiPiIrXy5WKGEubWVzc2FnZSkrIjwvc3Bhbj4iKX07Cl8ubm89ZnVuY3Rpb24oYSl7dmFyIGI9Xy5RKCJzY3JlZW4tcmVhZGVyLWxpdmUiKTtiPyhfLm9sKGIsbW8se21lc3NhZ2U6YSxZZDohMH0pLF8uS20oKS50aGVuKGZ1bmN0aW9uKCl7Yi5zZXRBdHRyaWJ1dGUoImhpZGRlbiIsInRydWUiKTtyZXR1cm4gXy5LbSgpfSkudGhlbihmdW5jdGlvbigpe18udGwoYik7Yi5yZW1vdmVBdHRyaWJ1dGUoImhpZGRlbiIpO3JldHVybiBQcm9taXNlLnJlc29sdmUodm9pZCAwKX0pKTpQcm9taXNlLnJlc29sdmUodm9pZCAwKX07b289ZnVuY3Rpb24oYSxiKXthLnJhdz1iO09iamVjdC5mcmVlemUmJihPYmplY3QuZnJlZXplKGEpLE9iamVjdC5mcmVlemUoYikpO3JldHVybiBhfTtfLnBvPWZ1bmN0aW9uKGEpe3JldHVybiBvbyhhLGEpfTtjbz1mdW5jdGlvbihhKXt0aGlzLmc9YX07Y28ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ307aG89bnVsbDsKXy5xbz1mdW5jdGlvbihhLGIpe3RoaXMuQz10aGlzLnU9bnVsbDt0aGlzLko9YTt0aGlzLkg9Yjt0aGlzLkQ9dGhpcy5CPXRoaXMudj0hMTt0aGlzLmg9bnVsbH07Xy5xby5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52P1Byb21pc2UucmVqZWN0KCJBbmltYXRpb24gaGFzIGFscmVhZHkgc3RhcnRlZC4iKTp0aGlzLkQ/KHRoaXMudT1EYXRlLm5vdygpLHRoaXMuQz10aGlzLnUrdGhpcy5ILHRoaXMuaigpLHRoaXMudj0hMCx0aGlzLko/Xy5ybyh0aGlzLCExKTpQcm9taXNlLnJlc29sdmUodm9pZCAwKSk6UHJvbWlzZS5yZWplY3QoIkFuaW1hdGlvbiBpcyBub3QgeWV0IHJlYWR5LiIpfTsKXy5ybz1mdW5jdGlvbihhLGIpe2lmKGEudil7aWYoYS5CKXJldHVybiBQcm9taXNlLnJlc29sdmUodm9pZCAwKTtpZihiKXJldHVybiBhLmwoKSxhLkI9ITAsYS5oJiYoYS5oLnJlc29sdmUoKSxjbGVhclRpbWVvdXQoYS5HKSksUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCk7YS5ofHwoYS5oPW5ldyBfLktpLHNvKGEpKTtyZXR1cm4gYS5oLnByb21pc2V9cmV0dXJuIFByb21pc2UucmVqZWN0KCJBbmltYXRpb24gd2FzIG5vdCBzdGFydGVkLiIpfTtzbz1mdW5jdGlvbihhKXt2YXIgYj1hLkMtRGF0ZS5ub3coKTtiPjA/YS5HPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gc28oYSl9LE1hdGgubWluKGIsMTAwKSk6KGEubCgpLGEuQj0hMCxhLmgucmVzb2x2ZSgpKX07Xy5xby5wcm90b3R5cGUucmVhZHk9ZnVuY3Rpb24oKXt0aGlzLkQ9ITB9O18ucW8ucHJvdG90eXBlLmo9ZnVuY3Rpb24oKXt9O18ucW8ucHJvdG90eXBlLmw9ZnVuY3Rpb24oKXt9O3ZhciB0bz1mdW5jdGlvbihhLGIsYyl7Xy5xby5jYWxsKHRoaXMsYj09PXZvaWQgMD8hMTpiLGM9PT12b2lkIDA/OTUwOmMpO3RoaXMuZz1hO3RoaXMucmVhZHkoKX07Xy5KKHRvLF8ucW8pO3RvLnByb3RvdHlwZS5qPWZ1bmN0aW9uKCl7dGhpcy5nLmNsYXNzTGlzdC5hZGQoImlpYjVrYyIpfTsvKgoKIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoqLwpfLnVvPXt1cGdyYWRlRG9tOmZ1bmN0aW9uKCl7fSx1cGdyYWRlRWxlbWVudDpmdW5jdGlvbigpe30sdXBncmFkZUVsZW1lbnRzOmZ1bmN0aW9uKCl7fSx1cGdyYWRlQWxsUmVnaXN0ZXJlZDpmdW5jdGlvbigpe30scmVnaXN0ZXJVcGdyYWRlZENhbGxiYWNrOmZ1bmN0aW9uKCl7fSxyZWdpc3RlcjpmdW5jdGlvbigpe30sZG93bmdyYWRlRWxlbWVudHM6ZnVuY3Rpb24oKXt9fTsKXy51bz1mdW5jdGlvbigpe2Z1bmN0aW9uIGEobixxKXtmb3IodmFyIHA9MDtwPGsubGVuZ3RoO3ArKylpZihrW3BdLmNsYXNzTmFtZT09PW4pcmV0dXJuIHR5cGVvZiBxIT09InVuZGVmaW5lZCImJihrW3BdPXEpLGtbcF07cmV0dXJuIG51bGx9ZnVuY3Rpb24gYihuKXtuPW4uZ2V0QXR0cmlidXRlKCJkYXRhLXVwZ3JhZGVkIik7cmV0dXJuIG49PT1udWxsP1siIl06bi5zcGxpdCgiLCIpfWZ1bmN0aW9uIGMobixxKXtyZXR1cm4gYihuKS5pbmRleE9mKHEpIT09LTF9ZnVuY3Rpb24gZChuLHEscCl7aWYoIkN1c3RvbUV2ZW50ImluIHdpbmRvdyYmdHlwZW9mIHdpbmRvdy5DdXN0b21FdmVudD09PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBDdXN0b21FdmVudChuLHtidWJibGVzOnEsY2FuY2VsYWJsZTpwfSk7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50cyIpO3IuaW5pdEV2ZW50KG4scSxwKTtyZXR1cm4gcn1mdW5jdGlvbiBlKG4scSl7aWYodHlwZW9mIG49PT0idW5kZWZpbmVkIiYmCnR5cGVvZiBxPT09InVuZGVmaW5lZCIpZm9yKG49MDtuPGsubGVuZ3RoO24rKyllKGtbbl0uY2xhc3NOYW1lLGtbbl0uY3NzQ2xhc3MpO2Vsc2V7aWYodHlwZW9mIHE9PT0idW5kZWZpbmVkIil7dmFyIHA9YShuKTtwJiYocT1wLmNzc0NsYXNzKX1xPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK3EpO2ZvcihwPTA7cDxxLmxlbmd0aDtwKyspZihxW3BdLG4pfX1mdW5jdGlvbiBmKG4scSl7aWYoISh0eXBlb2Ygbj09PSJvYmplY3QiJiZuIGluc3RhbmNlb2YgRWxlbWVudCkpdGhyb3cgRXJyb3IoIklhIik7dmFyIHA9ZCgibWRsLWNvbXBvbmVudHVwZ3JhZGluZyIsITAsITApO24uZGlzcGF0Y2hFdmVudChwKTtpZighcC5kZWZhdWx0UHJldmVudGVkKXtwPWIobik7dmFyIHI9W107aWYocSljKG4scSl8fHIucHVzaChhKHEpKTtlbHNle3ZhciB4PW4uY2xhc3NMaXN0O2suZm9yRWFjaChmdW5jdGlvbihrYil7eC5jb250YWlucyhrYi5jc3NDbGFzcykmJnIuaW5kZXhPZihrYik9PT0KLTEmJiFjKG4sa2IuY2xhc3NOYW1lKSYmci5wdXNoKGtiKX0pfXE9MDtmb3IodmFyIHk9ci5sZW5ndGgsQztxPHk7cSsrKXtpZihDPXJbcV0pe3AucHVzaChDLmNsYXNzTmFtZSk7bi5zZXRBdHRyaWJ1dGUoImRhdGEtdXBncmFkZWQiLHAuam9pbigiLCIpKTt2YXIga2E9bmV3IEMuSmQobik7a2EubWRsQ29tcG9uZW50Q29uZmlnSW50ZXJuYWxfPUM7bS5wdXNoKGthKTtmb3IodmFyIG5hPTAsQWE9Qy5HYi5sZW5ndGg7bmE8QWE7bmErKylDLkdiW25hXShuKTtDLndpZGdldCYmKG5bQy5jbGFzc05hbWVdPWthKX1lbHNlIHRocm93IEVycm9yKCJKYSIpO0M9ZCgibWRsLWNvbXBvbmVudHVwZ3JhZGVkIiwhMCwhMSk7bi5kaXNwYXRjaEV2ZW50KEMpfX19ZnVuY3Rpb24gZyhuKXtBcnJheS5pc0FycmF5KG4pfHwobj1uIGluc3RhbmNlb2YgRWxlbWVudD9bbl06QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobikpO2Zvcih2YXIgcT0wLHA9bi5sZW5ndGgscjtxPHA7cSsrKXI9bltxXSxyIGluc3RhbmNlb2YKSFRNTEVsZW1lbnQmJihmKHIpLHIuY2hpbGRyZW4ubGVuZ3RoPjAmJmcoci5jaGlsZHJlbikpfWZ1bmN0aW9uIGgobil7aWYobil7bS5zcGxpY2UobS5pbmRleE9mKG4pLDEpO3ZhciBxPW4uUy5nZXRBdHRyaWJ1dGUoImRhdGEtdXBncmFkZWQiKS5zcGxpdCgiLCIpO3Euc3BsaWNlKHEuaW5kZXhPZihuLm1kbENvbXBvbmVudENvbmZpZ0ludGVybmFsXy5jbGFzc0FzU3RyaW5nKSwxKTtuLlMuc2V0QXR0cmlidXRlKCJkYXRhLXVwZ3JhZGVkIixxLmpvaW4oIiwiKSk7cT1kKCJtZGwtY29tcG9uZW50ZG93bmdyYWRlZCIsITAsITEpO24uUy5kaXNwYXRjaEV2ZW50KHEpfX12YXIgaz1bXSxtPVtdO3JldHVybnt1cGdyYWRlRG9tOmUsdXBncmFkZUVsZW1lbnQ6Zix1cGdyYWRlRWxlbWVudHM6Zyx1cGdyYWRlQWxsUmVnaXN0ZXJlZDpmdW5jdGlvbigpe2Zvcih2YXIgbj0wO248ay5sZW5ndGg7bisrKWUoa1tuXS5jbGFzc05hbWUpfSxyZWdpc3RlclVwZ3JhZGVkQ2FsbGJhY2s6ZnVuY3Rpb24obiwKcSl7KG49YShuKSkmJm4uR2IucHVzaChxKX0scmVnaXN0ZXI6ZnVuY3Rpb24obil7dmFyIHE9ITA7aWYodHlwZW9mIG4ud2lkZ2V0IT09InVuZGVmaW5lZCJ8fHR5cGVvZiBuLndpZGdldCE9PSJ1bmRlZmluZWQiKXE9bi53aWRnZXR8fG4ud2lkZ2V0O3ZhciBwPXtKZDpuLmNvbnN0cnVjdG9yfHxuLmNvbnN0cnVjdG9yLGNsYXNzTmFtZTpuLmNsYXNzQXNTdHJpbmd8fG4uY2xhc3NBc1N0cmluZyxjc3NDbGFzczpuLmNzc0NsYXNzfHxuLmNzc0NsYXNzLHdpZGdldDpxLEdiOltdfTtrLmZvckVhY2goZnVuY3Rpb24ocil7aWYoci5jc3NDbGFzcz09PXAuY3NzQ2xhc3MpdGhyb3cgRXJyb3IoIkthYCIrci5jc3NDbGFzcyk7aWYoci5jbGFzc05hbWU9PT1wLmNsYXNzTmFtZSl0aHJvdyBFcnJvcigiTGEiKTt9KTtpZihuLmNvbnN0cnVjdG9yLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgibWRsQ29tcG9uZW50Q29uZmlnSW50ZXJuYWxfIikpdGhyb3cgRXJyb3IoIk1hIik7YShuLmNsYXNzQXNTdHJpbmcsCnApfHxrLnB1c2gocCl9LGRvd25ncmFkZUVsZW1lbnRzOmZ1bmN0aW9uKG4pe3ZhciBxPWZ1bmN0aW9uKHIpe20uZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiB4LlM9PT1yfSkuZm9yRWFjaChoKX07aWYobiBpbnN0YW5jZW9mIEFycmF5fHxuIGluc3RhbmNlb2YgTm9kZUxpc3QpZm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspcShuW3BdKTtlbHNlIGlmKG4gaW5zdGFuY2VvZiBOb2RlKXEobik7ZWxzZSB0aHJvdyBFcnJvcigiTmEiKTt9fX0oKTtfLnVvLnVwZ3JhZGVEb209Xy51by51cGdyYWRlRG9tO18udW8udXBncmFkZUVsZW1lbnQ9Xy51by51cGdyYWRlRWxlbWVudDtfLnVvLnVwZ3JhZGVFbGVtZW50cz1fLnVvLnVwZ3JhZGVFbGVtZW50cztfLnVvLnVwZ3JhZGVBbGxSZWdpc3RlcmVkPV8udW8udXBncmFkZUFsbFJlZ2lzdGVyZWQ7Xy51by5yZWdpc3RlclVwZ3JhZGVkQ2FsbGJhY2s9Xy51by5yZWdpc3RlclVwZ3JhZGVkQ2FsbGJhY2s7Xy51by5yZWdpc3Rlcj1fLnVvLnJlZ2lzdGVyOwpfLnVvLmRvd25ncmFkZUVsZW1lbnRzPV8udW8uZG93bmdyYWRlRWxlbWVudHM7d2luZG93LmNvbXBvbmVudEhhbmRsZXI9Xy51bzt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXsiY2xhc3NMaXN0ImluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpJiYicXVlcnlTZWxlY3RvciJpbiBkb2N1bWVudCYmImFkZEV2ZW50TGlzdGVuZXIiaW4gd2luZG93JiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaCYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJtZGwtanMiKSxfLnVvLnVwZ3JhZGVBbGxSZWdpc3RlcmVkKCkpfSk7CihmdW5jdGlvbigpe3ZhciBhPWZ1bmN0aW9uKGIpe3RoaXMuUz1iO3RoaXMuaW5pdCgpfTt3aW5kb3cuTWF0ZXJpYWxTcGlubmVyPWE7YS5wcm90b3R5cGUuaT17QWQ6NH07YS5wcm90b3R5cGUuZz17b2M6Im1kbC1zcGlubmVyX19sYXllciIsbmM6Im1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlciIseWQ6Im1kbC1zcGlubmVyX19jaXJjbGUiLHpkOiJtZGwtc3Bpbm5lcl9fZ2FwLXBhdGNoIixCZDoibWRsLXNwaW5uZXJfX2xlZnQiLENkOiJtZGwtc3Bpbm5lcl9fcmlnaHQifTthLnByb3RvdHlwZS5oPWZ1bmN0aW9uKGIpe3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2MuY2xhc3NMaXN0LmFkZCh0aGlzLmcub2MpO2MuY2xhc3NMaXN0LmFkZCh0aGlzLmcub2MrIi0iK2IpO2I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5jbGFzc0xpc3QuYWRkKHRoaXMuZy5uYyk7Yi5jbGFzc0xpc3QuYWRkKHRoaXMuZy5CZCk7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CmQuY2xhc3NMaXN0LmFkZCh0aGlzLmcuemQpO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LmFkZCh0aGlzLmcubmMpO2UuY2xhc3NMaXN0LmFkZCh0aGlzLmcuQ2QpO2Zvcih2YXIgZj1bYixkLGVdLGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5jbGFzc0xpc3QuYWRkKHRoaXMuZy55ZCk7ZltnXS5hcHBlbmRDaGlsZChoKX1jLmFwcGVuZENoaWxkKGIpO2MuYXBwZW5kQ2hpbGQoZCk7Yy5hcHBlbmRDaGlsZChlKTt0aGlzLlMuYXBwZW5kQ2hpbGQoYyl9O2EucHJvdG90eXBlLmNyZWF0ZUxheWVyPWEucHJvdG90eXBlLmg7YS5wcm90b3R5cGUuaj1mdW5jdGlvbigpe3RoaXMuUy5jbGFzc0xpc3QucmVtb3ZlKCJpcy1hY3RpdmUiKX07YS5wcm90b3R5cGUuc3RvcD1hLnByb3RvdHlwZS5qO2EucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7dGhpcy5TLmNsYXNzTGlzdC5hZGQoImlzLWFjdGl2ZSIpfTsKYS5wcm90b3R5cGUuc3RhcnQ9YS5wcm90b3R5cGUuc3RhcnQ7YS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe2lmKHRoaXMuUyl7Zm9yKHZhciBiPTE7Yjw9dGhpcy5pLkFkO2IrKyl0aGlzLmgoYik7dGhpcy5TLmNsYXNzTGlzdC5hZGQoImlzLXVwZ3JhZGVkIil9fTtfLnVvLnJlZ2lzdGVyKHtjb25zdHJ1Y3RvcjphLGNsYXNzQXNTdHJpbmc6Ik1hdGVyaWFsU3Bpbm5lciIsY3NzQ2xhc3M6Im1kbC1qcy1zcGlubmVyIix3aWRnZXQ6ITB9KX0pKCk7CihmdW5jdGlvbigpe3ZhciBhPWZ1bmN0aW9uKGIpe3RoaXMuUz1iO3RoaXMuZz10aGlzLmg9dGhpcy5pPW51bGw7dGhpcy5pbml0KCl9O3dpbmRvdy5NYXRlcmlhbFByb2dyZXNzPWE7YS5wcm90b3R5cGUuaj17cGQ6Im1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZSJ9O2EucHJvdG90eXBlLnNldFByb2dyZXNzPWZ1bmN0aW9uKGIpe3RoaXMuUy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5qLnBkKXx8KHRoaXMuaS5zdHlsZS53aWR0aD1iKyIlIil9O2EucHJvdG90eXBlLnNldFByb2dyZXNzPWEucHJvdG90eXBlLnNldFByb2dyZXNzO2EucHJvdG90eXBlLmw9ZnVuY3Rpb24oYil7dGhpcy5oLnN0eWxlLndpZHRoPWIrIiUiO3RoaXMuZy5zdHlsZS53aWR0aD0xMDAtYisiJSJ9O2EucHJvdG90eXBlLnNldEJ1ZmZlcj1hLnByb3RvdHlwZS5sO2EucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtpZih0aGlzLlMpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2IuY2xhc3NOYW1lPQoicHJvZ3Jlc3NiYXIgYmFyIGJhcjEiO3RoaXMuUy5hcHBlbmRDaGlsZChiKTt0aGlzLmk9YjtiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2IuY2xhc3NOYW1lPSJidWZmZXJiYXIgYmFyIGJhcjIiO3RoaXMuUy5hcHBlbmRDaGlsZChiKTt0aGlzLmg9YjtiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2IuY2xhc3NOYW1lPSJhdXhiYXIgYmFyIGJhcjMiO3RoaXMuUy5hcHBlbmRDaGlsZChiKTt0aGlzLmc9Yjt0aGlzLmkuc3R5bGUud2lkdGg9IjAlIjt0aGlzLmguc3R5bGUud2lkdGg9IjEwMCUiO3RoaXMuZy5zdHlsZS53aWR0aD0iMCUiO3RoaXMuUy5jbGFzc0xpc3QuYWRkKCJpcy11cGdyYWRlZCIpfX07Xy51by5yZWdpc3Rlcih7Y29uc3RydWN0b3I6YSxjbGFzc0FzU3RyaW5nOiJNYXRlcmlhbFByb2dyZXNzIixjc3NDbGFzczoibWRsLWpzLXByb2dyZXNzIix3aWRnZXQ6ITB9KX0pKCk7dmFyIHZvPWZ1bmN0aW9uKGEsYixjKXtfLnFvLmNhbGwodGhpcyxiPT09dm9pZCAwPyExOmIsYz09PXZvaWQgMD8xRTM6Yyk7dGhpcy5nPWE7Xy51by51cGdyYWRlRWxlbWVudCh0aGlzLmcpO3RoaXMucmVhZHkoKX07Xy5KKHZvLF8ucW8pO3ZvLnByb3RvdHlwZS5qPWZ1bmN0aW9uKCl7dGhpcy5nLmNsYXNzTGlzdC5hZGQoImlzLWFjdGl2ZSIpfTt2by5wcm90b3R5cGUubD1mdW5jdGlvbigpe3RoaXMuZy5jbGFzc0xpc3QucmVtb3ZlKCJpcy1hY3RpdmUiKX07Xy53bz1mdW5jdGlvbihhLGIpe18uSG0uY2FsbCh0aGlzLGEsYik7dGhpcy5jcmVkZW50aWFscz1iLkNhO3RoaXMuY2xpZW50RGF0YT1iLmNsaWVudERhdGE7dGhpcy5qPSExO3RoaXMuQj10aGlzLmc9dGhpcy5vPW51bGw7dGhpcy5PPWIuT307Xy5KKF8ud28sXy5IbSk7Xy53by5wcm90b3R5cGUuZ2E9ZnVuY3Rpb24oYSl7dGhpcy5nJiYodGhpcy5qPSEwLChhPT09dm9pZCAwPzA6YSl8fHRoaXMuUigpKX07Xy53by5wcm90b3R5cGUuVj1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2E9YT09PXZvaWQgMD97ZWI6ITEsd2I6ITF9OmE7cmV0dXJuIHRoaXMuaj90aGlzLnUoYSkudGhlbihmdW5jdGlvbigpe2Iuaj0hMTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCl9KTpQcm9taXNlLnJlc29sdmUodm9pZCAwKX07Cl8ud28ucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtpZih0aGlzLmcpe3ZhciBhPV8uVCxiPV8ua2soMTMsITEsdGhpcy5GKTthLmxvZyhiKTthPXRoaXMuRj09PTMmJl8uSSgiY2FuY2VsYWJsZV9hdXRvX3NlbGVjdCIpO3RoaXMuQj1uZXcgdm8oXy5zbCgiYVoyd0VlIix0aGlzLmcpLCExLGE/MDp2b2lkIDApO3RoaXMuQi5zdGFydCgpO3RoaXMuZy5ibHVyKCk7dGhpcy5nLmNsYXNzTGlzdC5hZGQoImdrNlNNZCIpO18ueG8oKS5jbGFzc0xpc3QuYWRkKCJGblNlZSIpO2E9dGhpcy5vLnRiKCk7Xy5ubygoIkJla3JlZnRlci4gTG9nZ2VyIHBcdTAwZTUgc29tICIrYSkudG9TdHJpbmcoKSl9fTsKXy53by5wcm90b3R5cGUudT1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2E9YT09PXZvaWQgMD97ZWI6ITEsd2I6ITF9OmE7cmV0dXJuIHRoaXMuQj9fLnJvKHRoaXMuQixhLmViKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGM9bmV3IHRvKF8uc2woIk1QdTUzYyIsYi5nKSwhMCk7cmV0dXJuIGEud2I/UHJvbWlzZS5yZXNvbHZlKHZvaWQgMCk6Yy5zdGFydCgpfSk6UHJvbWlzZS5yZXNvbHZlKHZvaWQgMCl9O18ueG89ZnVuY3Rpb24oKXtyZXR1cm4gXy5RKCJhbmltYXRlZC1jb250YWluZXIiKX07Xy53by5wcm90b3R5cGUuaT1mdW5jdGlvbigpe3JldHVybiBfLnJsKCJUQUtCeGIiLF8ueG8oKSl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgRHA9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXthPXtjbGllbnRfaWQ6YSxzY29wZToib3BlbmlkIGVtYWlsIHByb2ZpbGUiLHJlc3BvbnNlX3R5cGU6ImlkX3Rva2VuIixub25jZTpiLGdzaXdlYnNkazoiZ2lzX2F0dHJpYnV0ZXMiLHJlZGlyZWN0X3VyaToiZ2lzX3RyYW5zZm9ybSIscmVzcG9uc2VfbW9kZToiZm9ybV9wb3N0IixvcmlnaW46YyxkaXNwbGF5Omg9PT12b2lkIDA/InBvcHVwIjpoLGFzOmR9O2cmJihhLmxvZ2luX2hpbnQ9Zyk7ZiE9PXZvaWQgMCYmZnx8KGEucHJvbXB0PSJzZWxlY3RfYWNjb3VudCIpO2U9Xy56ayhuZXcgXy5EaSxfLnVrKGUpKTtkPV8uUihlLDUsZCk7ZD1fLlMoZCw3LDEpO2EuZ2lzX3BhcmFtcz1fLmZiKGQuaCgpLDQpO3JldHVybiBhfSxFcD1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gRHAoYSxiLGMsZCwiaXRwIiwhMSx2b2lkIDAsXy5JKCJlbmFibGVfaXRwX3N1cHBvcnRfaW5fb2F1dGgiKT8iaXRwIjoicG9wdXAiKX0sRnA9ZnVuY3Rpb24oYSwKYil7Xy5CaChhLHt0aW1lc3RhbXA6KG5ldyBEYXRlKS5nZXRUaW1lKCksdHlwZToidXNlcl9hY3Rpb24iLHVzZXJBY3Rpdml0eVR5cGU6Yn0pfSxHcD1mdW5jdGlvbihhKXt2YXIgYj1fLlQ7YT1fLmhrKF8ua2soNiwhMSxhKSw2KTthPV8ueWkoYSwzLCExKTtiLmxvZyhhKX0sSHA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLlQ7YT1fLmhrKF8ubGsoYSwyLGIpLDkpO2MubG9nKGEpfSxJcD1mdW5jdGlvbihhKXtfLkJtKGEse3R5cGU6ImNvbW1hbmQiLGNvbW1hbmQ6ImNhbmNlbF9wcm90ZWN0X3N0YXJ0In0pfSxKcD1mdW5jdGlvbihhKXtyZXR1cm4gYS5qPT09dm9pZCAwfHxwZXJmb3JtYW5jZS5ub3coKS1hLmo8NzAwfSxLcD1mdW5jdGlvbigpe3JldHVybiJMb2dnIHBcdTAwZTUgbWVkIEdvb2dsZSJ9LExwPWZ1bmN0aW9uKGEpe3ZhciBiPWEuYXBwTmFtZTthPWEuSGM7cmV0dXJuIF8uQW4obmV3IF8ueW4oIntDUkVERU5USUFMU19MRU5HVEhfMSxwbHVyYWwsID0xe0xvZ2cgcFx1MDBlNSB7QVBQX05BTUV9IG1lZCBHb29nbGUuIEFjY291bnQgQ2hvb3NlciBmcmEgR29vZ2xlLXBcdTAwZTVsb2dnaW5nLiAxIGtvbnRvIGR1IGthbiB2ZWxnZS59b3RoZXJ7TG9nZyBwXHUwMGU1IHtBUFBfTkFNRX0gbWVkIEdvb2dsZS4gQWNjb3VudCBDaG9vc2VyIGZyYSBHb29nbGUtcFx1MDBlNWxvZ2dpbmcuIHtDUkVERU5USUFMU19MRU5HVEhfMn0ga29udG9lciBkdSBrYW4gdmVsZ2UgbWVsbG9tLn19IiksCntDUkVERU5USUFMU19MRU5HVEhfMTphLEFQUF9OQU1FOmIsQ1JFREVOVElBTFNfTEVOR1RIXzI6IiIrYX0pfSxNcD1mdW5jdGlvbihhKXthPSdMb2dnIHBcdTAwZTUgPHNwYW4gY2xhc3M9IicrKF8uVygiYmx0V0JiIikrJyI+JykrXy5WKGEpKyI8L3NwYW4+IG1lZCBHb29nbGUiO3JldHVybigwLF8uVSkoYSl9LE5wPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1fLlooKTtzd2l0Y2goXy5VZChjKT9jLnRvU3RyaW5nKCk6Yyl7Y2FzZSAic2lnbnVwIjpjPSIiO2E9J09wcHJldHQgZW4gPHNwYW4gY2xhc3M9IicrKF8uVygiYmx0V0JiIikrJyI+JykrXy5WKGEpKyI8L3NwYW4+LWtvbnRvIG1lZCBHb29nbGUiLGMrPWE7Yz0oMCxfLlUpKGMpO18uWShkLGMpO2JyZWFrO2Nhc2UgInVzZSI6Yz0nQnJ1ayA8c3BhbiBjbGFzcz0iJysoXy5XKCJibHRXQmIiKSsnIj4nKStfLlYoYSkrIjwvc3Bhbj4gbWVkIEdvb2dsZSI7Yz0oMCxfLlUpKGMpO18uWShkLGMpO2JyZWFrO2RlZmF1bHQ6Xy5ZKGQsTXAoYSkpfXJldHVybiBkfSwKT3A9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5xby5jYWxsKHRoaXMsYz09PXZvaWQgMD8hMTpjLGQ9PT12b2lkIDA/NTAwOmQpO3RoaXMuUz1hO3RoaXMuZz1iO3RoaXMucmVhZHkoKX07Xy5KKE9wLF8ucW8pO09wLnByb3RvdHlwZS5qPWZ1bmN0aW9uKCl7dGhpcy5TLmNsYXNzTGlzdC5hZGQodGhpcy5nKX07dmFyIFBwPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO18ucW8uY2FsbCh0aGlzLChiPT09dm9pZCAwPyExOmIpJiYhZCxjPT09dm9pZCAwPzA6Yyk7dGhpcy5vPXRoaXMuZz1udWxsO3RoaXMuUj1kO3RoaXMuaT1hO18udW8udXBncmFkZUVsZW1lbnQodGhpcy5pKTt0aGlzLnJlYWR5KCl9O18uSihQcCxfLnFvKTtQcC5wcm90b3R5cGUuaj1mdW5jdGlvbigpe3RoaXMuUiYmKHRoaXMuaS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiaGVpZ2h0OiA0cHg7IiksdGhpcy5pLk1hdGVyaWFsUHJvZ3Jlc3Muc2V0UHJvZ3Jlc3MoMTAwKSx0aGlzLmc9bmV3IF8uR2QoMzAwKSx0aGlzLm89KG5ldyBfLkVkKHRoaXMpKS5NKHRoaXMuZywidGljayIsdGhpcy5LKSx0aGlzLmcuc3RhcnQoKSl9O1BwLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7UXAodGhpcyk7dGhpcy5pLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJoZWlnaHQ6IDA7Iil9OwpQcC5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3ZhciBhPXRoaXMsYj0xMDAtKERhdGUubm93KCktdGhpcy51KS90aGlzLkgqMTAwO3RoaXMuaS5NYXRlcmlhbFByb2dyZXNzLnNldFByb2dyZXNzKE1hdGgubWF4KGIsMCkpO2I8PTAmJihRcCh0aGlzKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Xy5ybyhhKX0sMzAwKSl9O3ZhciBRcD1mdW5jdGlvbihhKXthLmcmJl8ucWcoYS5nKTthLm8mJmEuby5kaXNwb3NlKCk7YS5nPW51bGw7YS5vPW51bGx9O3ZhciBScD1mdW5jdGlvbihhLGIpe18ud28uY2FsbCh0aGlzLGEsYik7dGhpcy5DPWIuTDt0aGlzLk49Yi5OO3RoaXMuWT1iLlk7dGhpcy5aPWIuWn07Xy5KKFJwLF8ud28pO1JwLnByb3RvdHlwZS5VPWZ1bmN0aW9uKCl7dGhpcy5DPT09ImNhcmQiP3RoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIldzall3Yy1oYUFjbGYiKToodGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgiY0dNSTJiLXZPRThMYi1oYUFjbGYiKSx0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoT2VkUWQtUUZsVzItSFFrY3dmIikpO3JldHVybiBQcm9taXNlLnJlc29sdmUodm9pZCAwKX07UnAucHJvdG90eXBlLk5hPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5DPT09ImJvdHRvbV9zaGVldCI7cmV0dXJuIF8ueG8oKS5vZmZzZXRIZWlnaHQrKGE/MjowKX07ClJwLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5DPT09ImNhcmQiP3RoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIldzall3Yy1oYUFjbGYiKToodGhpcy5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgiY0dNSTJiLXZPRThMYi1oYUFjbGYiKSx0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJoT2VkUWQtUUZsVzItSFFrY3dmIikpO18ud28ucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX07UnAucHJvdG90eXBlLnU9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP3tlYjohMSx3YjohMX06YTtyZXR1cm4gU3AodGhpcywhMCxhKX07CnZhciBTcD1mdW5jdGlvbihhLGIsYyl7Yz1jPT09dm9pZCAwP3tlYjohMSx3YjohMX06YzthPShiPT09dm9pZCAwPzA6Yik/Xy53by5wcm90b3R5cGUudS5jYWxsKGEsYyk6UHJvbWlzZS5yZXNvbHZlKCk7dmFyIGQ9bmV3IE9wKF8ueG8oKSwieFRNZU8iLCEwLDI1MCk7cmV0dXJuIGEudGhlbihmdW5jdGlvbigpe3JldHVybiBkLnN0YXJ0KCl9KX0sVnA9ZnVuY3Rpb24oYSl7VHAoYSk7VXAoYSl9LFRwPWZ1bmN0aW9uKGEpe2lmKGEuWSl7dmFyIGI9Xy5RKCJjbG9zZSIpLGM9Xy5RKCJub3Qtbm93Iik7aWYoYnx8YyliJiZfLkltKGEsYixmdW5jdGlvbihkKXtIcChhLkYsZCk7YS5ZKCJVc2VyIGNsb3NlZCB0aGUgZW1iZWRkZWQgY3JlZGVudGlhbHMgcGlja2VyIil9KSxjJiZfLkltKGEsYyxmdW5jdGlvbihkKXt2YXIgZT1fLlQ7ZD1fLmhrKF8ubGsoYS5GLDE2LGQpLDkpO2UubG9nKGQpO2EuWSgiVXNlciBjbG9zZWQgdGhlIGVtYmVkZGVkIGNyZWRlbnRpYWxzIHBpY2tlciIpfSksYS5NKGEuY29udGFpbmVyLAoia2V5ZG93biIsZnVuY3Rpb24oZCl7KGQuY2hhckNvZGV8fGQua2V5Q29kZSk9PT0yNyYmKEhwKGEuRixkKSxhLlkoIlVzZXIgY2xvc2VkIHRoZSBlbWJlZGRlZCBjcmVkZW50aWFscyBwaWNrZXIiKSl9KX19LFVwPWZ1bmN0aW9uKGEpe2EuWiYmKGEuTShhLmNvbnRhaW5lciwiY2xpY2siLGZ1bmN0aW9uKCl7YS5aKCl9KSxhLk0oYS5jb250YWluZXIsInRvdWNoZW5kIixmdW5jdGlvbigpe2EuWigpfSksYS5NKGEuY29udGFpbmVyLCJmb2N1c2luIixmdW5jdGlvbihiKXt2YXIgYz1iO2IubyYmKGM9Yi5nKTtfLnZsKGEuY29udGFpbmVyLGMucmVsYXRlZFRhcmdldCkmJmEuWigpfSkpfTtScC5wcm90b3R5cGUuaT1mdW5jdGlvbigpe3JldHVybiBfLnJsKCJUQUtCeGIiLF8ueG8oKSl9Owp2YXIgV3A9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuQz09PSJjYXJkIn0sWXA9ZnVuY3Rpb24oYSl7aWYoXy5ZYSgpKXtpZihhLlkpe3ZhciBiPWZ1bmN0aW9uKGQpe0hwKGEuRixkKTthLlkoIlVzZXIgY2xvc2VkIHRoZSBlbWJlZGRlZCBjcmVkZW50aWFscyBwaWNrZXIiKX0sYz1fLlEoImNsb3NlIik7YyYmYS5NKGMsInRvdWNoZW5kIixiKTsoYz1fLlEoIm5vdC1ub3ciKSkmJmEuTShjLCJ0b3VjaGVuZCIsYil9WHAoYSl9cmV0dXJuIF8uSm0oNTApLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4obmV3IE9wKF8ueG8oKSwiTWpSNnVmIiwhMCwyNTApKS5zdGFydCgpfSl9LFhwPWZ1bmN0aW9uKGEpe2lmKGEuY3JlZGVudGlhbHMubGVuZ3RoPD0yKWEuTShkb2N1bWVudCwidG91Y2htb3ZlIixmdW5jdGlvbihoKXtoLnByZXZlbnREZWZhdWx0KCl9KTtlbHNle3ZhciBiPV8uUSgiY3JlZGVudGlhbHMtcGlja2VyIiksYz0oYS5jcmVkZW50aWFscy5sZW5ndGgtMi41KSo2MCxkPW51bGwsZT1udWxsLApmPWZ1bmN0aW9uKCl7ZSYmYS5FYShlKTtlPWEuTShkb2N1bWVudCwidG91Y2htb3ZlIixmdW5jdGlvbihoKXt2YXIgaz1oLmc7ZCYmay50b3VjaGVzJiYoaz1rLnRvdWNoZXNbMF0uY2xpZW50WS1kLGs+MCYmYi5zY3JvbGxUb3A9PT0wP2gucHJldmVudERlZmF1bHQoKTprPDAmJmIuc2Nyb2xsVG9wPj1jP2gucHJldmVudERlZmF1bHQoKTpnKCkpfSl9LGc9ZnVuY3Rpb24oKXtlJiZhLkVhKGUpO2Q9bnVsbH07YS5NKGIsInRvdWNoc3RhcnQiLGZ1bmN0aW9uKGgpe2guc3RvcFByb3BhZ2F0aW9uKCk7aD1oLmc7aC50b3VjaGVzJiYoYi5zY3JvbGxUb3A9PT0wfHxiLnNjcm9sbFRvcD49YykmJihkPWgudG91Y2hlc1swXS5jbGllbnRZLGYoKSl9KTthLk0oZG9jdW1lbnQsInRvdWNoZW5kIixnKTthLk0oZG9jdW1lbnQsInRvdWNoY2FuY2VsIixnKTthLk0oZG9jdW1lbnQsInRvdWNoc3RhcnQiLGZ1bmN0aW9uKGgpe2gucHJldmVudERlZmF1bHQoKX0pfX07dmFyICRwPWZ1bmN0aW9uKGEpe3JldHVybiBfLlgoXy5ZKF8uWChfLlkoXy5YKF8uWShfLlgoXy5aKCksJzxkaXYgY2xhc3M9IicrXy5XKCJyNG5rZSIpKyciIGlkPSJwaWNrZXItaGVhZGVyIj48ZGl2IGNsYXNzPSInK18uVygicjRua2UtTFM4MXliIikrJyIgaWQ9InBpY2tlci10aXRsZS1zZWN0aW9uIj48ZGl2IGNsYXNzPSInK18uVygiamNKenllLUJ6MTEyYyIpKyciIGFyaWEtaGlkZGVuPXRydWU+JyksXy5ObigpKSwnPC9kaXY+PGgxIGNsYXNzPSInK18uVygidEpISmoiKSsiICIrXy5XKCJaWUlmRmQtYUd4cEhmLUZuU2VlIikrJyIgaWQ9InBpY2tlci10aXRsZSI+PHNwYW4gcm9sZT0idGV4dCI+JyksXy5WKGEpKSwnPC9zcGFuPjwvaDE+PGRpdiBjbGFzcz0iJytfLlcoInRKSEpqIikrIiAiK18uVygiTDZjVGNlIikrIiAiK18uVygidGk2aEdjLWFHeHBIZi1GblNlZSIpKyciIGlkPSJzaWduaW5nLWluIj4nK18uVigiQmVrcmVmdGVyIFx1MjAyNiIpKyI8L2Rpdj48L2Rpdj4iKSwKWnAoKSksIjwvZGl2PiIpfSxacD1mdW5jdGlvbigpe3ZhciBhPV8uWChfLlooKSwnPGRpdiBpZD0iY2xvc2UiIGNsYXNzPSInK18uVygiVHZEOVBjLUJ6MTEyYyIpKyIgIitfLlcoIlpZSWZGZC1hR3hwSGYtRm5TZWUiKSsnIiByb2xlPSJidXR0b24iIGFyaWEtbGFiZWw9IicpO18uWShhLF8uSWwoIkx1a2siKSk7dmFyIGI9Xy5YKGEsJyIgdGFiaW5kZXg9IjAiPjxkaXYgY2xhc3M9IicrXy5XKCJCejExMmMtWm1ka0UiKSsnIj48L2Rpdj4nKTt2YXIgYz0oMCxfLlUpKCc8c3ZnIGNsYXNzPSInK18uVygiQnoxMTJjIikrIiAiK18uVygiQnoxMTJjLXI5b1BpZiIpKyciIHhtbG5zPSJodHRwczovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzVmNjM2OCI+PHBhdGggZD0iTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+Jyk7Cl8uWChfLlkoYixjKSwiPC9kaXY+Iik7cmV0dXJuIGF9LGFxPWZ1bmN0aW9uKGEsYil7Yj0nPGRpdiBjbGFzcz0iJytfLlcoIms3N0lpZi12M3BaYmYtTGdic1NlIikrJyI+PGJ1dHRvbiBjbGFzcz0iJytfLlcoIkxnYnNTZSIpKyIgIitfLlcoIkxnYnNTZS1zc0pSSWYiKSsiICIrXy5XKCJMZ2JzU2UtS29Ub1BjIikrJyBtZGwtYnV0dG9uIG1kbC1qcy1idXR0b24iIGlkPSJjb250aW51ZS1hcyInKyhiPycgYXJpYS1kZXNjcmliZWRieT0iJytfLlcoYikrJyInOiIiKSsnPjxkaXYgY2xhc3M9IicrXy5XKCJMZ2JzU2UtTUpvQlZlIikrJyI+PC9kaXY+PGRpdiBjbGFzcz0iJytfLlcoIkxnYnNTZS1iTjk3UGMiKSsnIj4nO2E9IkZvcnRzZXR0IHNvbSAiK18uVihhKTtyZXR1cm4oMCxfLlUpKGIrYSsiPC9kaXY+PC9idXR0b24+PC9kaXY+Iil9LGJxPWZ1bmN0aW9uKCl7cmV0dXJuKDAsXy5VKSgnPGRpdiBpZD0icHJvZ3Jlc3MtYmFyIiBjbGFzcz0iJytfLlcoIlAxZWtTZS1aTXYzdSIpKwonIG1kbC1wcm9ncmVzcyBtZGwtanMtcHJvZ3Jlc3MgbWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlIj48L2Rpdj4nKX07dmFyIGNxPWZ1bmN0aW9uKGEpe3ZhciBiPWEuY2FuY2VsYWJsZSxjPWEuY29udGV4dCxkPWEuY3JlZGVudGlhbHMsZT1hLmVlLGY9YS5hcHBOYW1lLGc9YS5tYixoPWEuQWU7Yj1iPT09dm9pZCAwPyExOmI7YT1hLk87Yz1fLlkoXy5YKF8uWShfLlgoXy5ZKF8uWShfLlgoXy5aKCksJzxkaXYgaWQ9ImFuaW1hdGVkLWNvbnRhaW5lciIgY2xhc3M9IicrXy5XKCJZTEVISWYtaGFBY2xmIikrIiAiK18uVygiZkZXN3djLUxZTmN3YyIpKyciPjxkaXYgaWQ9ImNyZWRlbnRpYWxzLXBpY2tlci1jb250YWluZXIiIGNsYXNzPSInK18uVygiU3g5S3djLWhhQWNsZiIpKyciIHJvbGU9ImRpYWxvZyIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSInK18uVyhLcCgpKSsnIj4nKSwkcChfLlkoXy5aKCksTnAoZixnLGMpKSkpLGJxKCkpLCc8ZGl2IGNsYXNzPSInK18uVygiazc3SWlmIikrJyI+JyksXy5QbihkLGgsdm9pZCAwLGIpKSwiPC9kaXY+IiksYSYmYT09PTE/Xy5RbigpOiIiKTtoPyhlPWQubGVuZ3RoLQplLGQ9JzxkaXYgY2xhc3M9IicrXy5XKCJ5ZVBlNWMtc001TU5iIikrJyIgcm9sZT0iYnV0dG9uIiBpZD0ic2hvdy1tb3JlLWFjY291bnRzIiB0YWJpbmRleD0iMCIgYXJpYS1sYWJlbGxlZGJ5PSJmb290ZXItbGFiZWwiPjxkaXYgY2xhc3M9IicrXy5XKCJ5ZVBlNWMiKSsnIj4nLGg9Xy5BbihuZXcgXy55bigie0NSRURFTlRJQUxTX0NPVU5UXzEscGx1cmFsLCA9MHtJbmdlbiBhbmRyZSBrb250b2VyfT0xezEga29udG8gdGlsfW90aGVye3tDUkVERU5USUFMU19DT1VOVF8yfSBrb250b2VyIHRpbH19Iikse0NSRURFTlRJQUxTX0NPVU5UXzE6ZSxDUkVERU5USUFMU19DT1VOVF8yOl8uVihlKX0pLGQ9ZCtoKygnPC9kaXY+PGRpdiBpZD0iZm9vdGVyLWxhYmVsIiBjbGFzcz0iJytfLlcoIkw2Y1RjZSIpKyciPicpLGU9Xy5BbihuZXcgXy55bigie0NSRURFTlRJQUxTX0NPVU5UXzEscGx1cmFsLCA9MXtTamVrayAxIGtvbnRvIHRpbH1vdGhlcntTamVrayB7Q1JFREVOVElBTFNfQ09VTlRfMn0ga29udG9lciB0aWx9fSIpLAp7Q1JFREVOVElBTFNfQ09VTlRfMTplLENSRURFTlRJQUxTX0NPVU5UXzI6Xy5WKGUpfSksZD1kK2UrIjwvZGl2PjwvZGl2PiIsZD0oMCxfLlUpKGQpKTpkPSIiO3JldHVybiBfLlgoXy5ZKGMsZCksJzwvZGl2PjwvZGl2PjxkaXYgaWQ9InNjcmVlbi1yZWFkZXItbGl2ZSIgY2xhc3M9IicrXy5XKCJ5blJMbmMiKSsnIj48L2Rpdj4nKX0sZHE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5jYW5jZWxhYmxlLGM9YS5jb250ZXh0LGQ9YS5jcmVkZW50aWFsLGU9YS5hcHBOYW1lLGY9YS5tYixnPWEuTGQsaD1hLmFjLGs9YS5HZSxtPWEuTmQ7Yj1iPT09dm9pZCAwPyExOmI7YT1hLk87Yz1fLlkoXy5YKF8uWShfLlgoXy5ZKF8uWShfLlgoXy5aKCksJzxkaXYgaWQ9ImFuaW1hdGVkLWNvbnRhaW5lciIgY2xhc3M9IicrXy5XKCJZTEVISWYtaGFBY2xmIikrIiAiK18uVygiZkZXN3djLUxZTmN3YyIpKyciPjxkaXYgaWQ9ImNyZWRlbnRpYWxzLXBpY2tlci1jb250YWluZXIiIGNsYXNzPSInK18uVygiU3g5S3djLWhhQWNsZiIpKwoiICIrKG0/Xy5XKCJNY2ZObGYiKToiIikrJyIgcm9sZT0iZGlhbG9nIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9IicrXy5XKEtwKCkpKyciPicpLCRwKF8uWShfLlooKSxOcChlLGYsYykpKSksYnEoKSksJzxkaXYgY2xhc3M9IicrXy5XKCJrNzdJaWYiKSsnIj4nKSxfLk9uKGQsMCwhMCxiKSksJzxkaXYgY2xhc3M9IicrXy5XKCJ3azRMSGYtaGFBY2xmIikrJyI+JyksbT9hcShnLCJnZHByLW1lc3NhZ2UiKTphcShnKSk7bT8obT0nPGRpdiBjbGFzcz0iJytfLlcoIndrNExIZiIpKyciIGlkPSJnZHByLW1lc3NhZ2UiIHRhYmluZGV4PSItMSI+JyxkPSJGb3IgXHUwMGU1IG9wcHJldHRlIGtvbnRvZW4gZGluIGRlbGVyIEdvb2dsZSBuYXZuZXQgZGl0dCwgZS1wb3N0YWRyZXNzZW4gZGluIG9nIHByb2ZpbGJpbGRldCBkaXR0IG1lZCAiK18uVihlKSsiLiIsbT1tK2QrIiAiLGgmJms/KGg9JzxhIGhyZWY9IicrXy5XKF8uZW4oaCkpLGg9aCsnIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IicrCl8uVygiaFNSR1BkIiksaD1oKyIgIitfLlcoIm9ZeHRRZC1QUWJMR2UiKSxoKz0nIiBpZD0icHJpdmFjeS1wb2xpY3ktbGluayIgYXJpYS1sYWJlbD0iJyxkPSJMaW5rIHRpbCBwZXJzb252ZXJucmVnbGVuZSBmb3IgIitfLlcoZSkrIiBcdTIwMTMgXHUwMGU1cG5lcyBpIGVuIG55IGZhbmUiLGgrPV8uSWwoZCksaCs9JyIgdGl0bGU9IicsZD0iUGVyc29udmVybnJlZ2xlbmUgdGlsICIrXy5XKGUpLGgrPV8uSWwoZCksaCs9JyI+JyxrPSc8YSBocmVmPSInK18uVyhfLmVuKGspKSxrPWsrJyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSInK18uVygiaFNSR1BkIiksaz1rKyIgIitfLlcoIm9ZeHRRZC1QUWJMR2UiKSxrKz0nIiBpZD0idGVybXMtb2Ytc2VydmljZS1saW5rIiBhcmlhLWxhYmVsPSInLGQ9IkxpbmsgdGlsIHZpbGtcdTAwZTVyZW5lIGZvciBicnVrIGZvciAiK18uVyhlKSsiIFx1MjAxMyBcdTAwZTVwbmVzIGkgZW4gbnkgZmFuZSIsays9Xy5JbChkKSxrKz0nIiB0aXRsZT0iJywKZD0iVmlsa1x1MDBlNXJlbmUgZm9yIGJydWsgYXYgIitfLlcoZSksays9Xy5JbChkKSxlPSJTZSAiK2grInBlcnNvbnZlcm5yZWdsZW5lPC9hPiBvZyAiKyhrKyciPmJydWtzdmlsa1x1MDBlNXJlbmU8L2E+IHRpbCAnKStfLlYoZSkrIi4iLG0rPWUpOmg/KGs9JzxhIGhyZWY9IicrXy5XKF8uZW4oaCkpLGs9aysnIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IicrXy5XKCJoU1JHUGQiKSxrPWsrIiAiK18uVygib1l4dFFkLVBRYkxHZSIpLGsrPSciIGlkPSJwcml2YWN5LXBvbGljeS1saW5rIiBhcmlhLWxhYmVsPSInLGg9IkxpbmsgdGlsIHBlcnNvbnZlcm5yZWdsZW5lIGZvciAiK18uVyhlKSsiIFx1MjAxMyBcdTAwZTVwbmVzIGkgZW4gbnkgZmFuZSIsays9Xy5JbChoKSxrKz0nIiB0aXRsZT0iJyxoPSJQZXJzb252ZXJucmVnbGVuZSB0aWwgIitfLlcoZSksays9Xy5JbChoKSxlPSJTZSAiKyhrKyciPnBlcnNvbnZlcm5yZWdsZW5lPC9hPiBvZyBicnVrc3ZpbGtcdTAwZTVyZW5lIHRpbCAnKSsKXy5WKGUpKyIuIixtKz1lKTprJiYoaz0nPGEgaHJlZj0iJytfLlcoXy5lbihrKSksaz1rKyciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iJytfLlcoImhTUkdQZCIpLGs9aysiICIrXy5XKCJvWXh0UWQtUFFiTEdlIiksays9JyIgaWQ9InRlcm1zLW9mLXNlcnZpY2UtbGluayIgYXJpYS1sYWJlbD0iJyxoPSJMaW5rIHRpbCB2aWxrXHUwMGU1cmVuZSBmb3IgYnJ1ayBmb3IgIitfLlcoZSkrIiBcdTIwMTMgXHUwMGU1cG5lcyBpIGVuIG55IGZhbmUiLGsrPV8uSWwoaCksays9JyIgdGl0bGU9IicsaD0iVmlsa1x1MDBlNXJlbmUgZm9yIGJydWsgYXYgIitfLlcoZSksays9Xy5JbChoKSxlPSJTZSBwZXJzb252ZXJucmVnbGVuZSBvZyAiKyhrKyciPmJydWtzdmlsa1x1MDBlNXJlbmU8L2E+IHRpbCAnKStfLlYoZSkrIi4iLG0rPWUpLGU9KDAsXy5VKShtKyI8L2Rpdj4iKSk6ZT0iIjtyZXR1cm4gXy5YKF8uWShfLlgoXy5ZKGMsZSksIjwvZGl2PjwvZGl2PiIpLGEmJmE9PT0xP18uUW4oKToiIiksCic8L2Rpdj48L2Rpdj48ZGl2IGlkPSJzY3JlZW4tcmVhZGVyLWxpdmUiIGNsYXNzPSInK18uVygieW5STG5jIikrJyI+PC9kaXY+Jyl9LGVxPWZ1bmN0aW9uKGEpe3ZhciBiPWEuY2FuY2VsYWJsZTthPWEuY3JlZGVudGlhbDtiPWI9PT12b2lkIDA/ITE6YjtyZXR1cm4gXy5YKF8uWShfLlgoXy5ZKF8uWChfLlkoXy5YKF8uWigpLCc8ZGl2IGlkPSJhbmltYXRlZC1jb250YWluZXIiIGNsYXNzPSInK18uVygiWUxFSElmLWhhQWNsZiIpKyIgIitfLlcoIlhIZ1A2Yi1tS1p5cGYtYkVEVGNjLUxZTmN3YyIpKyciPjxkaXYgaWQ9ImNyZWRlbnRpYWxzLXBpY2tlci1jb250YWluZXIiIGNsYXNzPSInK18uVygiU3g5S3djLWhhQWNsZiIpKyciIHJvbGU9ImRpYWxvZyIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSInK18uVyhLcCgpKSsnIj48ZGl2IGNsYXNzPSInK18uVygicjRua2UiKSsnIj48ZGl2IGNsYXNzPSInK18uVygiamNKenllLUJ6MTEyYyIpKyciIGFyaWEtaGlkZGVuPXRydWU+JyksCl8uTm4oKSksJzwvZGl2PjxoMSBjbGFzcz0iJytfLlcoInRKSEpqIikrJyIgaWQ9InNpZ25pbmctaW4iPicrKGI/Xy5WKCJMb2dnZXIgcFx1MDBlNSIpOl8uVigiQmVrcmVmdGVyIFx1MjAyNiIpKSsiPC9oMT48L2Rpdj4iKSxicSgpKSwnPGRpdiBjbGFzcz0iJytfLlcoIms3N0lpZiIpKyciPjxkaXYgaWQ9ImNyZWRlbnRpYWxzLXBpY2tlciIgY2xhc3M9IicrXy5XKCJmRlc3d2MiKSsnIj4nKSxfLk9uKGEsMCx2b2lkIDAsYikpLCc8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJzY3JlZW4tcmVhZGVyLWxpdmUiIGNsYXNzPSInK18uVygieW5STG5jIikrJyI+PC9kaXY+PC9kaXY+Jyl9LGZxPWZ1bmN0aW9uKGEpe3ZhciBiPWEuYXBwTmFtZSxjPWEuTyxkPWEuWmQsZT1hLkplO2E9Xy5aKCk7ZHx8ZT8oYz1fLlgoXy5ZKF8uWChfLlkoXy5YKF8uWShfLlgoXy5aKCksJzxkaXYgaWQ9ImFuaW1hdGVkLWNvbnRhaW5lciIgY2xhc3M9IicrXy5XKCJZTEVISWYtaGFBY2xmIikrJyI+PGRpdiBpZD0iY3JlZGVudGlhbHMtcGlja2VyLWNvbnRhaW5lciIgY2xhc3M9IicrCl8uVygiU3g5S3djLWhhQWNsZiIpKyIgIitfLlcoImxnS1lHYi12MGg1T2UiKSsiICIrXy5XKCJsZ0tZR2ItdjBoNU9lLXFBV0EyIikrJyIgcm9sZT0iZGlhbG9nIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9IicrXy5XKEtwKCkpKyciPjxkaXYgY2xhc3M9IicrXy5XKCJyNG5rZSIpKyciIGlkPSJwaWNrZXItaGVhZGVyIj48ZGl2IGNsYXNzPSInK18uVygicjRua2UtTFM4MXliIikrJyIgaWQ9InBpY2tlci10aXRsZS1zZWN0aW9uIj48ZGl2IGNsYXNzPSInK18uVygiamNKenllLUJ6MTEyYyIpKyciIGFyaWEtaGlkZGVuPXRydWU+JyksXy5ObighMCkpLCc8L2Rpdj48ZGl2IGNsYXNzPSInK18uVygidEpISmoiKSsnIiBpZD0icGlja2VyLXRpdGxlIj48ZGl2IGNsYXNzPSInK18uVygidEpISmotcjRua2UiKSsnIj4nKSxNcChiKSksIjwvZGl2PjwvZGl2PjwvZGl2PiIpLFpwKCkpLCc8L2Rpdj48ZGl2IGNsYXNzPSInK18uVygiazc3SWlmIikrJyI+PGRpdiBjbGFzcz0iJytfLlcoIms3N0lpZi12M3BaYmYtTGdic1NlIikrCiciPjxidXR0b24gY2xhc3M9IicrXy5XKCJMZ2JzU2UiKSsiICIrXy5XKCJMZ2JzU2Utc3NKUklmIikrIiAiK18uVygiTGdic1NlLUtvVG9QYyIpKycgbWRsLWJ1dHRvbiBtZGwtanMtYnV0dG9uIiBpZD0iY29udGludWUiIGFyaWEtbGFiZWw9IicpLF8uWShjLF8uSWwoIkZvcnRzZXR0LiBcdTAwYzVwbmVzIGkgZW4gbnkgZmFuZS4iKSksXy5YKGMsJyI+PGRpdiBjbGFzcz0iJytfLlcoIkxnYnNTZS1NSm9CVmUiKSsnIj48L2Rpdj48ZGl2IGNsYXNzPSInK18uVygiTGdic1NlLWJOOTdQYyIpKyciPicpLF8uWShjLCJGb3J0c2V0dCIpLF8uWChjLCc8L2Rpdj48L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJzY3JlZW4tcmVhZGVyLWxpdmUiIGNsYXNzPSInK18uVygieW5STG5jIikrJyI+PC9kaXY+JykpOihkPV8uWChfLlkoXy5YKF8uWigpLCc8ZGl2IGlkPSJhbmltYXRlZC1jb250YWluZXIiIGNsYXNzPSInK18uVygiWUxFSElmLWhhQWNsZiIpKyciPjxkaXYgaWQ9ImNyZWRlbnRpYWxzLXBpY2tlci1jb250YWluZXIiIGNsYXNzPSInKwpfLlcoIlN4OUt3Yy1oYUFjbGYiKSsiICIrXy5XKCJsZ0tZR2ItdjBoNU9lIikrJyIgcm9sZT0iZGlhbG9nIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9IicrXy5XKEtwKCkpKyciPicpLCRwKCgwLF8uVSkoIiIrXy5WKF8uSm4oKSkpKSksJzxkaXYgY2xhc3M9IicrXy5XKCJrNzdJaWYiKSsnIj48ZGl2IGNsYXNzPSInK18uVygibGdLWUdiLXYwaDVPZS1OZTNzRmYiKSsnIj48cCBjbGFzcz0iJytfLlcoIms3N0lpZi12MGg1T2UiKSsnIj4nKSxiPSJCcnVrIEdvb2dsZS1rb250b2VuIHRpbCBcdTAwZTUgbG9nZ2UgcFx1MDBlNSAiK18uVihiKSxfLlkoZCxiKSxfLlgoZCwnPC9wPjxwIGNsYXNzPSInK18uVygidTZZT2otdjBoNU9lIikrJyI+JyksXy5ZKGQsIkR1IHRyZW5nZXIgaWtrZSBcdTAwZTUgaHVza2UgcGFzc29yZCBsZW5nZXIuIERldCBlciByYXNrdCwgZW5rZWx0IG9nIHRyeWd0IFx1MDBlNSBsb2dnZSBwXHUwMGU1LiIpLGI9Xy5YKGQsJzwvcD48ZGl2IGNsYXNzPSInK18uVygibGdLWUdiLXYwaDVPZS1IaWFZdmYiKSsKJyI+JyksZT0oMCxfLlUpKCc8c3ZnIGNsYXNzPSInK18uVygiT0FVN1ZkLVBRYkxHZSIpKyciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwOSIgaGVpZ2h0PSI2OCIgdmlld0JveD0iMCAwIDEwOSA2OCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTc2Ljk5MzkgNDUuNjA5N0M4My42MzE1IDQ1LjYwOTcgODkuMDEyMyA0MC4yNTg3IDg5LjAxMjMgMzMuNjU3OUM4OS4wMTIzIDI3LjA1NzEgODMuNjMxNSAyMS43MDYxIDc2Ljk5MzkgMjEuNzA2MUM3MC4zNTYzIDIxLjcwNjEgNjQuOTc1NCAyNy4wNTcxIDY0Ljk3NTQgMzMuNjU3OUM2NC45NzU0IDQwLjI1ODcgNzAuMzU2MyA0NS42MDk3IDc2Ljk5MzkgNDUuNjA5N1oiIGZpbGw9IiNGMUYzRjQiLz48cGF0aCBvcGFjaXR5PSIwLjA0IiBkPSJNNjYuMjkyNCAyOC4yNDJDNjguMjggMjguMDI4NiA3MC4xODI3IDI3LjMyNTMgNzEuODI3OSAyNi4xOTU3QzczLjQ3MzEgMjUuMDY2MiA3NC44MDg4IDIzLjU0NjEgNzUuNzEzOSAyMS43NzM0QzczLjcyNjQgMjEuOTg3NCA3MS44MjQgMjIuNjkwOSA3MC4xNzg4IDIzLjgyMDRDNjguNTMzNyAyNC45NDk5IDY3LjE5NzkgMjYuNDY5NiA2Ni4yOTI0IDI4LjI0MloiIGZpbGw9IiMyMDIxMjQiLz48cGF0aCBkPSJNODkuMDEyMyA2Mi4zNDE3Qzk0LjMyMTEgNjIuMzQxNyA5OC42MjQ2IDU4LjA2MiA5OC42MjQ2IDUyLjc4MjdDOTguNjI0NiA0Ny41MDM0IDk0LjMyMTEgNDMuMjIzNiA4OS4wMTIzIDQzLjIyMzZDODMuNzAzNiA0My4yMjM2IDc5LjQgNDcuNTAzNCA3OS40IDUyLjc4MjdDNzkuNCA1OC4wNjIgODMuNzAzNiA2Mi4zNDE3IDg5LjAxMjMgNjIuMzQxN1oiIGZpbGw9IiNGOEY5RkEiLz48cGF0aCBkPSJNNS43NDQ2NCAzNC40NTM5QzguODQwODMgMzQuNDUzOSAxMS4zNTA4IDMxLjk1NzggMTEuMzUwOCAyOC44Nzg4QzExLjM1MDggMjUuNzk5OCA4Ljg0MDgzIDIzLjMwMzcgNS43NDQ2NCAyMy4zMDM3QzIuNjQ4NDUgMjMuMzAzNyAwLjEzODQ4OSAyNS43OTk4IDAuMTM4NDg5IDI4Ljg3ODhDMC4xMzg0ODkgMzEuOTU3OCAyLjY0ODQ1IDM0LjQ1MzkgNS43NDQ2NCAzNC40NTM5WiIgZmlsbD0iI0Y4RjlGQSIvPjxwYXRoIGQ9Ik00MC45Mzg1IDY0LjczNDdDNDcuNTc2MSA2NC43MzQ3IDUyLjk1NyA1OS4zODM3IDUyLjk1NyA1Mi43ODI5QzUyLjk1NyA0Ni4xODIxIDQ3LjU3NjEgNDAuODMxMSA0MC45Mzg1IDQwLjgzMTFDMzQuMzAwOSA0MC44MzExIDI4LjkyIDQ2LjE4MjEgMjguOTIgNTIuNzgyOUMyOC45MiA1OS4zODM3IDM0LjMwMDkgNjQuNzM0NyA0MC45Mzg1IDY0LjczNDdaIiBmaWxsPSIjRjhGOUZBIi8+PHBhdGggb3BhY2l0eT0iMC4wNCIgZD0iTTQwLjkzODUgNDAuODMxMUMzOS4xNDY3IDQwLjgzMjMgMzcuMzc4IDQxLjIzMzkgMzUuNzYzMSA0Mi4wMDZDMzYuNTkwOSA0NS43MjY5IDM4LjY3MDIgNDkuMDU1NiA0MS42NTc3IDUxLjQ0MjNDNDQuNjQ1MSA1My44MjkgNDguMzYxOCA1NS4xMzA5IDUyLjE5MzkgNTUuMTMyOUg1Mi43MjMxQzUyLjg3OTIgNTQuMzYzMyA1Mi45NTc1IDUzLjU4MDIgNTIuOTU3IDUyLjc5NTFDNTIuOTU4NiA1MS4yMjQ2IDUyLjY0ODkgNDkuNjY5MSA1Mi4wNDU3IDQ4LjIxNzZDNTEuNDQyNCA0Ni43NjYxIDUwLjU1NzQgNDUuNDQ3MSA0OS40NDEyIDQ0LjMzNkM0OC4zMjUgNDMuMjI0OSA0Ni45OTk2IDQyLjM0MzQgNDUuNTQwNiA0MS43NDJDNDQuMDgxNyA0MS4xNDA2IDQyLjUxNzggNDAuODMxMSA0MC45Mzg1IDQwLjgzMTFaIiBmaWxsPSIjMjAyMTI0Ii8+PHBhdGggb3BhY2l0eT0iMC4wNCIgZD0iTTI5Ljk5MDggNDcuODYyM0MzMi4yMDcgNDcuNzczOCAzNC4zNTQ0IDQ3LjA3MTUgMzYuMTkwOCA0NS44MzQ1QzM4LjAyNzIgNDQuNTk3NiAzOS40Nzk3IDQyLjg3NTEgNDAuMzg0NiA0MC44NjEzQzM4LjE3MTQgNDAuOTYxNiAzNi4wMjkyIDQxLjY2ODYgMzQuMTk0OSA0Mi45MDQxQzMyLjM2MDYgNDQuMTM5NyAzMC45MDU2IDQ1Ljg1NTcgMjkuOTkwOCA0Ny44NjIzWiIgZmlsbD0iIzIwMjEyNCIvPjxwYXRoIG9wYWNpdHk9IjAuNiIgZD0iTTE2LjkwMTUgMjQuMDk5QzIyLjIxMzcgMjQuMDk5IDI2LjUyIDE5LjgxNjYgMjYuNTIgMTQuNTMzOUMyNi41MiA5LjI1MTIxIDIyLjIxMzcgNC45Njg3NSAxNi45MDE1IDQuOTY4NzVDMTEuNTg5NCA0Ljk2ODc1IDcuMjgzMDggOS4yNTEyMSA3LjI4MzA4IDE0LjUzMzlDNy4yODMwOCAxOS44MTY2IDExLjU4OTQgMjQuMDk5IDE2LjkwMTUgMjQuMDk5WiIgZmlsbD0id2hpdGUiIHN0cm9rZT0iI0YxRjNGNCIgc3Ryb2tlLXdpZHRoPSIwLjYzIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz48cGF0aCBkPSJNNjQuOTc1NCAyNi40ODU3QzcxLjYxMyAyNi40ODU3IDc2Ljk5MzkgMjEuMTM0NyA3Ni45OTM5IDE0LjUzMzlDNzYuOTkzOSA3LjkzMzA1IDcxLjYxMyAyLjU4MjAzIDY0Ljk3NTQgMi41ODIwM0M1OC4zMzc4IDIuNTgyMDMgNTIuOTU3IDcuOTMzMDUgNTIuOTU3IDE0LjUzMzlDNTIuOTU3IDIxLjEzNDcgNTguMzM3OCAyNi40ODU3IDY0Ljk3NTQgMjYuNDg1N1oiIGZpbGw9IiNGOEY5RkEiLz48cGF0aCBvcGFjaXR5PSIwLjYiIGQ9Ik04OC45ODc3IDI0LjAzOEM5NC4yOTY1IDI0LjAzOCA5OC42IDE5Ljc1ODIgOTguNiAxNC40Nzg5Qzk4LjYgOS4xOTk2NCA5NC4yOTY1IDQuOTE5OTIgODguOTg3NyA0LjkxOTkyQzgzLjY3OSA0LjkxOTkyIDc5LjM3NTQgOS4xOTk2NCA3OS4zNzU0IDE0LjQ3ODlDNzkuMzc1NCAxOS43NTgyIDgzLjY3OSAyNC4wMzggODguOTg3NyAyNC4wMzhaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjRjFGM0Y0IiBzdHJva2Utd2lkdGg9IjAuNjMiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPjxwYXRoIGQ9Ik0yOC45MiA0NS42MDk3QzM1LjU1NzYgNDUuNjA5NyA0MC45Mzg1IDQwLjI1ODcgNDAuOTM4NSAzMy42NTc5QzQwLjkzODUgMjcuMDU3MSAzNS41NTc2IDIxLjcwNjEgMjguOTIgMjEuNzA2MUMyMi4yODI0IDIxLjcwNjEgMTYuOTAxNiAyNy4wNTcxIDE2LjkwMTYgMzMuNjU3OUMxNi45MDE2IDQwLjI1ODcgMjIuMjgyNCA0NS42MDk3IDI4LjkyIDQ1LjYwOTdaIiBmaWxsPSIjRjFGM0Y0Ii8+PHBhdGggb3BhY2l0eT0iMC4wNCIgZD0iTTQwLjY5ODUgMzEuMjU5QzQwLjEzODMgMjguNTYzIDM4LjY2MTMgMjYuMTQxMiAzNi41MTYxIDI0LjQwMTNDMzQuMzcwOCAyMi42NjE0IDMxLjY4ODMgMjEuNzA5NiAyOC45MiAyMS43MDYxQzI4LjQwMzcgMjEuNzA3NiAyNy44ODc4IDIxLjc0MDMgMjcuMzc1NCAyMS44MDRDMjguMTQwOSAyMy45MDI2IDI5LjM4NzYgMjUuNzk0OSAzMS4wMTY2IDI3LjMzMDlDMzIuNjQ1NiAyOC44NjcgMzQuNjEyIDMwLjAwNDQgMzYuNzYgMzAuNjUzMUMzNS4zNjkyIDM0LjUyMTIgMzUuNDE3MiAzOC43NTY4IDM2Ljg5NTQgNDIuNTkyN0MzOC4xNjc3IDQxLjQ3MzUgMzkuMTg2MSA0MC4wOTgxIDM5Ljg4MzIgMzguNTU3N0M0MC41ODAyIDM3LjAxNzMgNDAuOTQgMzUuMzQ3MSA0MC45Mzg1IDMzLjY1NzlDNDAuOTM3IDMyLjg1MjQgNDAuODU2NiAzMi4wNDkgNDAuNjk4NSAzMS4yNTlaIiBmaWxsPSIjMjAyMTI0Ii8+PHBhdGggZD0iTTE2LjkwMTUgNjcuMTI2OEMyNC44NjggNjcuMTI2OCAzMS4zMjYyIDYwLjcwNDUgMzEuMzI2MiA1Mi43ODIyQzMxLjMyNjIgNDQuODU5OCAyNC44NjggMzguNDM3NSAxNi45MDE1IDM4LjQzNzVDOC45MzUwNSAzOC40Mzc1IDIuNDc2OTMgNDQuODU5OCAyLjQ3NjkzIDUyLjc4MjJDMi40NzY5MyA2MC43MDQ1IDguOTM1MDUgNjcuMTI2OCAxNi45MDE1IDY3LjEyNjhaIiBmaWxsPSIjRkVFRkMzIi8+PHBhdGggZD0iTTY0Ljk3NTQgNjcuMTI2OEM3Mi45NDE5IDY3LjEyNjggNzkuNCA2MC43MDQ1IDc5LjQgNTIuNzgyMkM3OS40IDQ0Ljg1OTggNzIuOTQxOSAzOC40Mzc1IDY0Ljk3NTQgMzguNDM3NUM1Ny4wMDg5IDM4LjQzNzUgNTAuNTUwOCA0NC44NTk4IDUwLjU1MDggNTIuNzgyMkM1MC41NTA4IDYwLjcwNDUgNTcuMDA4OSA2Ny4xMjY4IDY0Ljk3NTQgNjcuMTI2OFoiIGZpbGw9IiNDRUVBRDYiLz48cGF0aCBkPSJNNzAuNDg5MiA1OC43MDY2SDYyLjQ4OTNMNzAuNDg5MiA1MC43NTFWNTguNzA2NloiIGZpbGw9IiM4MUM5OTUiLz48cGF0aCBkPSJNNDAuOTM4NSAyOC44Nzg4QzQ4LjkwNSAyOC44Nzg4IDU1LjM2MzEgMjIuNDU2NCA1NS4zNjMxIDE0LjUzNDFDNTUuMzYzMSA2LjYxMTc3IDQ4LjkwNSAwLjE4OTQ1MyA0MC45Mzg1IDAuMTg5NDUzQzMyLjk3MiAwLjE4OTQ1MyAyNi41MTM5IDYuNjExNzcgMjYuNTEzOSAxNC41MzQxQzI2LjUxMzkgMjIuNDU2NCAzMi45NzIgMjguODc4OCA0MC45Mzg1IDI4Ljg3ODhaIiBmaWxsPSIjRDJFM0ZDIi8+PHBhdGggZD0iTTM1LjQgMTQuNDU1QzM1LjQgMTIuOTk0MyAzNS45ODM1IDExLjU5MzQgMzcuMDIyMiAxMC41NjA1QzM4LjA2MDkgOS41Mjc1NSAzOS40Njk2IDguOTQ3MjcgNDAuOTM4NSA4Ljk0NzI3QzQyLjQwNzQgOC45NDcyNyA0My44MTYxIDkuNTI3NTUgNDQuODU0OCAxMC41NjA1QzQ1Ljg5MzQgMTEuNTkzNCA0Ni40NzcgMTIuOTk0MyA0Ni40NzcgMTQuNDU1SDM1LjRaIiBmaWxsPSIjOEFCNEY4Ii8+PHBhdGggb3BhY2l0eT0iMC4yIiBkPSJNNjkuNjY0NiAzOS4yMjE2QzY3LjQ5MjcgMzguNDc2MiA2NS4xNzMxIDM4LjI1OCA2Mi44OTkxIDM4LjU4NTJDNjAuNjI1MiAzOC45MTI0IDU4LjQ2MjkgMzkuNzc1NSA1Ni41OTI1IDQxLjEwMjZDNTQuNzIyMiA0Mi40Mjk2IDUzLjE5NzkgNDQuMTgyMSA1Mi4xNDcgNDYuMjEzOUM1MS4wOTYgNDguMjQ1OCA1MC41NDg3IDUwLjQ5OCA1MC41NTA4IDUyLjc4MjlDNTAuNTUwOCA1My4xNzQ1IDUwLjU1MDggNTMuNTYwMSA1MC42MDYyIDUzLjk0NTZDNTEuMzgxIDU0LjA1MzQgNTIuMTYyMyA1NC4xMDg2IDUyLjk0NDYgNTQuMTEwOUM1Ny4wODU3IDU0LjExMDMgNjEuMDgxIDUyLjU5MSA2NC4xNjYgNDkuODQzOUM2Ny4yNTA5IDQ3LjA5NjcgNjkuMjA4NyA0My4zMTQ2IDY5LjY2NDYgMzkuMjIxNloiIGZpbGw9IiMzNEE4NTMiLz48cGF0aCBkPSJNNTIuOTU2OSA1MC4zODk1QzYyLjI0ODkgNTAuMzg5NSA2OS43ODE1IDQyLjg5ODYgNjkuNzgxNSAzMy42NTgxQzY5Ljc4MTUgMjQuNDE3NiA2Mi4yNDg5IDE2LjkyNjggNTIuOTU2OSAxNi45MjY4QzQzLjY2NSAxNi45MjY4IDM2LjEzMjMgMjQuNDE3NiAzNi4xMzIzIDMzLjY1ODFDMzYuMTMyMyA0Mi44OTg2IDQzLjY2NSA1MC4zODk1IDUyLjk1NjkgNTAuMzg5NVoiIGZpbGw9IndoaXRlIi8+PHBhdGggZD0iTTIxLjg0MzEgNTcuMDM1N0gxMS45NkwxNi44ODMxIDQ4LjUyOTNMMjEuODQzMSA1Ny4wMzU3WiIgZmlsbD0iI0ZERDY2MyIvPjxwYXRoIG9wYWNpdHk9IjAuMDQiIGQ9Ik05Ny43ODc4IDQ4Ljg4NDFDOTcuMjU1NyA0Ny42OTIxIDk2LjQ4MzUgNDYuNjIxNCA5NS41MTg3IDQ1LjczOEM5NC41NTQgNDQuODU0NyA5My40MTczIDQ0LjE3NzYgOTIuMTc4OSA0My43NDg2QzkwLjk0MDUgNDMuMzE5NSA4OS42MjY4IDQzLjE0NzcgODguMzE5IDQzLjI0MzZDODcuMDExMiA0My4zMzk2IDg1LjczNzEgNDMuNzAxNCA4NC41NzU0IDQ0LjMwNjVDODUuNzg3MSA0NS44NDY4IDg3LjMzNTYgNDcuMDkyNiA4OS4xMDM0IDQ3Ljk0OTNDOTAuODcxMiA0OC44MDYxIDkyLjgxMiA0OS4yNTEzIDk0Ljc3ODUgNDkuMjUxM0M5NS43OTI3IDQ5LjI0ODMgOTYuODAyOSA0OS4xMjUgOTcuNzg3OCA0OC44ODQxWiIgZmlsbD0iIzIwMjEyNCIvPjxwYXRoIG9wYWNpdHk9IjAuMDQiIGQ9Ik04MS44MDAxIDM2LjMzODZDODEuNzk5MyAzOC44NTIyIDgyLjUzNzIgNDEuMzExMSA4My45MjMxIDQzLjQxMzFDODUuMjQ3OCA0Mi40ODc5IDg2LjM3MDUgNDEuMzA1NyA4Ny4yMjM2IDM5LjkzNzdDODguMDc2NiAzOC41Njk2IDg4LjY0MjQgMzcuMDQ0IDg4Ljg4NjcgMzUuNDUyN0M4OS4xMzExIDMzLjg2MTQgODkuMDQ5IDMyLjIzNzMgODguNjQ1NSAzMC42Nzg0Qzg4LjI0MTkgMjkuMTE5NSA4Ny41MjUyIDI3LjY1OCA4Ni41Mzg1IDI2LjM4MThDODUuMDU1OSAyNy41ODg0IDgzLjg2MTcgMjkuMTA3NyA4My4wNDIxIDMwLjgyOThDODIuMjIyNiAzMi41NTE4IDgxLjc5ODQgMzQuNDMzNSA4MS44MDAxIDM2LjMzODZaIiBmaWxsPSIjMjAyMTI0Ii8+PHBhdGggZD0iTTk1LjUyOTIgNDYuOTM4QzEwMi42OTcgNDYuOTM4IDEwOC41MDggNDEuMTU5NiAxMDguNTA4IDM0LjAzMTVDMTA4LjUwOCAyNi45MDM0IDEwMi42OTcgMjEuMTI1IDk1LjUyOTIgMjEuMTI1Qzg4LjM2MTQgMjEuMTI1IDgyLjU1MDggMjYuOTAzNCA4Mi41NTA4IDM0LjAzMTVDODIuNTUwOCA0MS4xNTk2IDg4LjM2MTQgNDYuOTM4IDk1LjUyOTIgNDYuOTM4WiIgZmlsbD0iI0ZBRDJDRiIvPjxwYXRoIGQ9Ik05OS4xNDQ2IDM0LjMwNjdMOTUuMjU0NCAzMC40MzgxQzk0LjMzMTYgMjkuNTIwMyA5Mi44MzY0IDI5LjUxOTQgOTEuOTE0NyAzMC40MzU5QzkwLjk5MzEgMzEuMzUyNCA5MC45OTQxIDMyLjgzOTQgOTEuOTE2OSAzMy43NTcxTDk1LjgwNzEgMzcuNjI1N0M5Ni43Mjk5IDM4LjU0MzQgOTguMjI1MiAzOC41NDQ0IDk5LjE0NjggMzcuNjI3OUMxMDAuMDY4IDM2LjcxMTMgMTAwLjA2NyAzNS4yMjQ0IDk5LjE0NDYgMzQuMzA2N1oiIGZpbGw9IiNGMjhCODIiLz48cGF0aCBkPSJNNjQuMjk4NSAzMi41ODY4QzYzLjg5NzYgMzMuMTc2MyA2My4yODU5IDMzLjU5MTcgNjIuNTg3OSAzMy43NDgzQzYxLjg4OTggMzMuOTA1IDYxLjE1OCAzMy43OTExIDYwLjU0MTQgMzMuNDI5OUM1OS45MjQ4IDMzLjA2ODcgNTkuNDY5OSAzMi40ODc0IDU5LjI2OTMgMzEuODA0M0M1OS4wNjg2IDMxLjEyMTIgNTkuMTM3NCAzMC4zODc4IDU5LjQ2MTUgMjkuNzUzNEM1OS41NjczIDI5LjUzMTQgNTkuNzA0MSAyOS4zMjU0IDU5Ljg2NzcgMjkuMTQxNEw1Ni44OTU0IDI2LjgyODFMNTEuNzA3NyAzMy40Mzc0TDYxLjU1MzkgNDEuMDk5M0w2Ni43NDE1IDM0LjQ5NjJMNjQuMjk4NSAzMi41ODY4WiIgZmlsbD0iI0ZCQkMwNCIvPjxwYXRoIGQ9Ik02My44NSA0MC44NTUxTDQzLjMyODYgMjQuODk5NEw0MC4wMzQ3IDI5LjA4OUw2MC41NTYyIDQ1LjA0NDdMNjMuODUgNDAuODU1MVoiIGZpbGw9IiNGQ0M5MzQiLz48cGF0aCBkPSJNNDMuMzMyMyAyNC45MDE0TDQwLjAzMzkgMjkuMDkzNEw0Mi4yMzA4IDMwLjgwNjlDNDMuMDY5NiAzMC4xNzQgNDMuODI0NCAyOS40Mzc4IDQ0LjQ3NjkgMjguNjE2QzQ0Ljk0MTYgMjguMDI2OCA0NS4zNTM1IDI3LjM5ODEgNDUuNzA3NyAyNi43MzczTDQzLjMzMjMgMjQuOTAxNFoiIGZpbGw9IiNGQkJDMDQiLz48cGF0aCBkPSJNNDAuNjkyNCAxMy40NjM1QzM5LjExOTUgMTIuMjM3MyAzNy4yMTYyIDExLjUwMjcgMzUuMjIzMyAxMS4zNTI4QzMzLjIzMDQgMTEuMjAyOSAzMS4yMzc2IDExLjY0NDUgMjkuNDk3MiAxMi42MjE2QzI3Ljc1NjggMTMuNTk4NyAyNi4zNDcxIDE1LjA2NzQgMjUuNDQ2NSAxNi44NDE3QzI0LjU0NiAxOC42MTYgMjQuMTk1MSAyMC42MTYxIDI0LjQzODMgMjIuNTg4OUMyNC42ODE2IDI0LjU2MTYgMjUuNTA3OSAyNi40MTgyIDI2LjgxMjkgMjcuOTIzNkMyOC4xMTc4IDI5LjQyOSAyOS44NDI1IDMwLjUxNTUgMzEuNzY4NyAzMS4wNDU1QzMzLjY5NDkgMzEuNTc1NSAzNS43MzYgMzEuNTI1MyAzNy42MzM0IDMwLjkwMUMzOS41MzA5IDMwLjI3NjggNDEuMTk5NCAyOS4xMDY3IDQyLjQyNzcgMjcuNTM4OUM0NC4wNzA2IDI1LjQ0MjEgNDQuODEwNSAyMi43ODMgNDQuNDg1MiAyMC4xNDQ2QzQ0LjE1OTkgMTcuNTA2MSA0Mi43OTU5IDE1LjEwMzYgNDAuNjkyNCAxMy40NjM1Wk0zOC4yOTg1IDI0LjM2MjhDMzcuNzA3IDI1LjExNDkgMzYuOTA0NiAyNS42NzU3IDM1Ljk5MjcgMjUuOTc0NEMzNS4wODA3IDI2LjI3MyAzNC4xMDAyIDI2LjI5NjEgMzMuMTc1MSAyNi4wNDA3QzMyLjI1IDI1Ljc4NTMgMzEuNDIxNyAyNS4yNjI5IDMwLjc5NTEgMjQuNTM5NUMzMC4xNjg1IDIzLjgxNjEgMjkuNzcxNiAyMi45MjQxIDI5LjY1NDcgMjEuOTc2NUMyOS41Mzc3IDIxLjAyODggMjkuNzA1OSAyMC4wNjc5IDMwLjEzOCAxOS4yMTUyQzMwLjU3IDE4LjM2MjYgMzEuMjQ2NiAxNy42NTY1IDMyLjA4MjIgMTcuMTg2MkMzMi45MTc3IDE2LjcxNTggMzMuODc0OCAxNi41MDI0IDM0LjgzMjMgMTYuNTcyOUMzNS43ODk4IDE2LjY0MzQgMzYuNzA0OCAxNi45OTQ2IDM3LjQ2MTYgMTcuNTgyMUMzOC40NzU5IDE4LjM3MTUgMzkuMTMzNyAxOS41MjkgMzkuMjkwNiAyMC44MDAzQzM5LjQ0NzUgMjIuMDcxNiAzOS4wOTA3IDIzLjM1MjggMzguMjk4NSAyNC4zNjI4WiIgZmlsbD0iI0ZDQzkzNCIvPjxwYXRoIGQ9Ik0yNy40NjE1IDIyLjIzODNDMjcuMTk3MSAyMC4wOTU3IDI3LjU4MzIgMTcuOTIzNCAyOC41NzAyIDE2LjAwMDdDMjkuNTU3MSAxNC4wNzgxIDMxLjA5OTkgMTIuNDkzIDMzIDExLjQ0OTJDMzAuMzQzIDExLjc3MzggMjcuOTI0NCAxMy4xMzQ4IDI2LjI3NjQgMTUuMjMyOEMyNC42Mjg0IDE3LjMzMDcgMjMuODg1OSAxOS45OTM4IDI0LjIxMjMgMjIuNjM2MUMyNC41Mzg3IDI1LjI3ODQgMjUuOTA3MyAyNy42ODM2IDI4LjAxNjkgMjkuMzIyNUMzMC4xMjY2IDMwLjk2MTMgMzIuODA0NSAzMS42OTk3IDM1LjQ2MTYgMzEuMzc1MUMzMy4zNjM2IDMwLjgxOTcgMzEuNDgwNyAyOS42NTI4IDMwLjA1NTEgMjguMDI0NkMyOC42Mjk0IDI2LjM5NjMgMjcuNzI2MiAyNC4zODEyIDI3LjQ2MTUgMjIuMjM4M1oiIGZpbGw9IiNGQkJDMDQiLz48L3N2Zz4nKSwKYj1fLlgoXy5ZKGIsZSksJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrXy5XKCJ3azRMSGYtaGFBY2xmIikrJyI+JyksZT1fLlgoXy5aKCksJzxkaXYgY2xhc3M9IicrXy5XKCJrNzdJaWYtdjNwWmJmLUxnYnNTZSIpKyciPjxidXR0b24gY2xhc3M9IicrXy5XKCJMZ2JzU2UiKSsiICIrXy5XKCJMZ2JzU2Utc3NKUklmIikrIiAiK18uVygiTGdic1NlLUtvVG9QYyIpKycgbWRsLWJ1dHRvbiBtZGwtanMtYnV0dG9uIiBpZD0iY29udGludWUiPjxkaXYgY2xhc3M9IicrXy5XKCJMZ2JzU2UtTUpvQlZlIikrJyI+PC9kaXY+JyksXy5YKGUsJzxkaXYgY2xhc3M9IicrXy5XKCJMZ2JzU2UtYk45N1BjIikrJyI+JyksXy5ZKGUsIkZvcnRzZXR0IiksXy5YKGUsIjwvZGl2PiIpLF8uWChlLCI8L2J1dHRvbj48L2Rpdj4iKSxfLlgoXy5ZKF8uWChfLlkoYixlKSwiPC9kaXY+PC9kaXY+IiksYyYmYz09PTE/Xy5RbigpOiIiKSwnPC9kaXY+PC9kaXY+PGRpdiBpZD0ic2NyZWVuLXJlYWRlci1saXZlIiBjbGFzcz0iJysKXy5XKCJ5blJMbmMiKSsnIj48L2Rpdj4nKSxjPWQpO3JldHVybiBfLlkoYSxjKX0sZ3E9ZnVuY3Rpb24oYSl7dmFyIGI9YS5lcnJvclR5cGUsYz1hLnJhLGQ9YS5jYTthPWEuZXJyb3JDb2RlO2I9Xy5YKF8uWShfLlgoXy5ZKF8uWChfLlkoXy5YKF8uWigpLCc8ZGl2IGlkPSJhbmltYXRlZC1jb250YWluZXIiIGNsYXNzPSInK18uVygiWUxFSElmLWhhQWNsZiIpKyIgIitfLlcoIlhIZ1A2Yi1tS1p5cGYtYkVEVGNjLUxZTmN3YyIpKyciPjxkaXYgaWQ9ImNyZWRlbnRpYWxzLXBpY2tlci1jb250YWluZXIiIGNsYXNzPSInK18uVygiU3g5S3djLWhhQWNsZiIpKyIgIitfLlcoInUwcGpvZS1EQVJVY2YiKSsnIiByb2xlPSJkaWFsb2ciIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iJytfLlcoS3AoKSkrJyI+JyksJHAoKDAsXy5VKSgiIitfLlYoXy5KbigpKSkpKSwnPGRpdiBjbGFzcz0iJytfLlcoIms3N0lpZiIpKyciPjxkaXYgaWQ9ImNyZWRlbnRpYWxzLXBpY2tlciIgY2xhc3M9IicrCl8uVygiZkZXN3djIikrJyI+PHAgY2xhc3M9IicrXy5XKCJ1MHBqb2UtcjRua2UiKSsnIj4nKSxfLktuKGIpKSwnPC9wPjxwIGNsYXNzPSInK18uVygidTBwam9lLU5lM3NGZiIpKyciPicpLF8uTW4oYixjLGQsYSkpLCI8L3A+Iik7Yz0nPGRpdiBjbGFzcz0iJytfLlcoInUwcGpvZSIpKyciPjxidXR0b24gY2xhc3M9IicrXy5XKCJMZ2JzU2UiKSsiICIrXy5XKCJMZ2JzU2Utc3NKUklmIikrJyBtZGwtYnV0dG9uIG1kbC1qcy1idXR0b24iIGlkPSJlcnJvci1jbG9zZSI+JztjPSgwLF8uVSkoYysiT0s8L2J1dHRvbj48L2Rpdj4iKTtyZXR1cm4gXy5YKF8uWShiLGMpLCc8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJzY3JlZW4tcmVhZGVyLWxpdmUiIGNsYXNzPSInK18uVygieW5STG5jIikrJyI+PC9kaXY+PC9kaXY+Jyl9O3ZhciBocT1mdW5jdGlvbihhKXthLkNhPVthLnNlc3Npb25EYXRhXTtScC5jYWxsKHRoaXMsMyxhKTt0aGlzLkQ9bnVsbDt0aGlzLks9ITE7dGhpcy5oPWEuc2Vzc2lvbkRhdGE7dGhpcy5KPWEub25BdXRvU2VsZWN0ZWRIYW5kbGVyO3RoaXMuUD1hLm9uQXV0b1NlbGVjdENhbmNlbGVkSGFuZGxlcjt0aGlzLkc9Xy5JKCJjYW5jZWxhYmxlX2F1dG9fc2VsZWN0Iil8fF8uSSgicnBfY2FuY2VsYWJsZV9hdXRvX3NlbGVjdCIpfTtfLkooaHEsUnApO2hxLnByb3RvdHlwZS5VPWZ1bmN0aW9uKCl7UnAucHJvdG90eXBlLlUuY2FsbCh0aGlzKTt2YXIgYT10aGlzLmNvbnRhaW5lcixiPXRoaXMuRyxjPV8ucGwodGhpcy5oKTtfLm9sKGEsZXEse2NyZWRlbnRpYWw6YyxjYW5jZWxhYmxlOmJ9KTthPV8uTG0oKTtXcCh0aGlzKXx8KGE9WXAodGhpcykpO3RoaXMuRz9pcSh0aGlzKTpqcSh0aGlzKTtyZXR1cm4gYX07CnZhciBqcT1mdW5jdGlvbihhKXt2YXIgYj1hLmgsYz1hLmkoKVswXTthLm89YjthLmc9YzthLkomJmEuSihhLmgpfTtocS5wcm90b3R5cGUubD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuaC50YigpO18ubm8oKCJCZWtyZWZ0ZXIuIExvZ2dlciBwXHUwMGU1IHNvbSAiK2EpLnRvU3RyaW5nKCkpfTt2YXIgaXE9ZnVuY3Rpb24oYSl7YS5aJiZhLlooKTtrcShhKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGI9Xy5RKCJjYW5jZWwtYnV0dG9uIik7YiYmYi5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwiIik7YS5LP2EuUCgpOmpxKGEpfSk7bHEoYSl9LGxxPWZ1bmN0aW9uKGEpe3ZhciBiPV8uUSgiY2FuY2VsLWJ1dHRvbiIpO2ImJl8uSW0oYSxiLGZ1bmN0aW9uKGMpe18ubG8oYS5GLDEyLGMpO2EuSz0hMDtfLnJvKGEuRCwhMCl9KX0sa3E9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5RKCJwcm9ncmVzcy1iYXIiKTthLkQ9bmV3IFBwKGIsITAsM0UzKTtyZXR1cm4gYS5ELnN0YXJ0KCl9O3ZhciBtcT1mdW5jdGlvbihhKXthLkNhPVthLnNlc3Npb25EYXRhXTtScC5jYWxsKHRoaXMsMixhKTt0aGlzLmg9YS5zZXNzaW9uRGF0YTt0aGlzLko9YS5jb250ZXh0O3RoaXMuRD1hLm1lO3RoaXMuRz1hLkJlfTtfLkoobXEsUnApOwptcS5wcm90b3R5cGUuVT1mdW5jdGlvbigpe1JwLnByb3RvdHlwZS5VLmNhbGwodGhpcyk7dmFyIGE9dGhpcy5oLlBjKCl8fHRoaXMuaC5OYygpfHx0aGlzLmgudGIoKSxiPXRoaXMuRyxjPXRoaXMuTyxkPXRoaXMuY29udGFpbmVyLGU9dGhpcy5KLGY9dGhpcy5oLGc9dGhpcy5jbGllbnREYXRhLm1hKCksaD10aGlzLmNsaWVudERhdGEuUmMoKSxrPXRoaXMuY2xpZW50RGF0YS5UYygpLG09ITE7bT1tPT09dm9pZCAwPyExOm07Zj1fLnBsKGYpO18ub2woZCxkcSx7Y29udGV4dDplLGNyZWRlbnRpYWw6ZixhcHBOYW1lOmcsbWI6L15bYWVpb3V5XS4rL2kudGVzdChnKSxMZDphLGFjOmgsR2U6ayxOZDpiLGNhbmNlbGFibGU6bSxPOmN9KTtucSh0aGlzKTtyZXR1cm4gV3AodGhpcyk/Xy5MbSgpOllwKHRoaXMpfTsKdmFyIG5xPWZ1bmN0aW9uKGEpe3ZhciBiPV8uUSgiY29udGludWUtYXMiKTtfLkltKGEsYixmdW5jdGlvbihjKXt2YXIgZD1fLk9tKGEuTiksZT1KcChhLk4pO18ubG8oYS5GLDMsYyxlLGQpO2lmKGUpXy5HKCJDbGljayBpZ25vcmVkLiBDbGlja2VkIHRvbyBzb29uLCB3YWl0IDcwMG1zLiIpO2Vsc2V7ZT1hLmg7dmFyIGY9YS5pKClbMF07YS5vPWU7YS5nPWY7YS5EJiZhLkQoYS5oLGQsYyl9fSk7KGI9Xy5RKCJwcml2YWN5LXBvbGljeS1saW5rIikpJiZfLkltKGEsYixmdW5jdGlvbihjKXtfLmxvKGEuRiw2LGMpfSk7KGI9Xy5RKCJ0ZXJtcy1vZi1zZXJ2aWNlLWxpbmsiKSkmJl8uSW0oYSxiLGZ1bmN0aW9uKGMpe18ubG8oYS5GLDcsYyl9KTtWcChhKX07bXEucHJvdG90eXBlLkphPWZ1bmN0aW9uKCl7dmFyIGE9Xy5RKCJjb250aW51ZS1hcyIpO2EmJmEuZm9jdXMoKX07Cm1xLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7dmFyIGE9THAoe2FwcE5hbWU6dGhpcy5jbGllbnREYXRhLm1hKCksSGM6dGhpcy5jcmVkZW50aWFscy5sZW5ndGh9KTtfLm5vKGEudG9TdHJpbmcoKSl9O3ZhciBvcT1mdW5jdGlvbihhKXtScC5jYWxsKHRoaXMsNSxhKTt0aGlzLmg9YS5lcnJvclR5cGU7dGhpcy5EPWEucmE7dGhpcy5jYT1hLmNhO3RoaXMuZXJyb3JDb2RlPWEuZXJyb3JDb2RlfTtfLkoob3EsUnApO29xLnByb3RvdHlwZS5VPWZ1bmN0aW9uKCl7UnAucHJvdG90eXBlLlUuY2FsbCh0aGlzKTtfLm9sKHRoaXMuY29udGFpbmVyLGdxLHtlcnJvclR5cGU6dGhpcy5oLHJhOnRoaXMuRCxjYTp0aGlzLmNhLGVycm9yQ29kZTp0aGlzLmVycm9yQ29kZX0pO3BxKHRoaXMpO3ZhciBhPV8uTG0oKTtXcCh0aGlzKXx8KGE9WXAodGhpcykpO3JldHVybiBhfTt2YXIgcHE9ZnVuY3Rpb24oYSl7aWYoYS5ZKXt2YXIgYj1fLlEoImVycm9yLWNsb3NlIik7YiYmXy5JbShhLGIsZnVuY3Rpb24oYyl7SHAoYS5GLGMpO2EuWSgiVXNlciBjbG9zZWQgdGhlIGVycm9yIG1lc3NhZ2UiKX0pfX07b3EucHJvdG90eXBlLmw9ZnVuY3Rpb24oKXt2YXIgYT1fLktuKHRoaXMuaCk7Xy5ubyhhLnRvU3RyaW5nKCkpfTt2YXIgcXE9Xy5wbyhbImFyaWEiXSkscnE9ZnVuY3Rpb24oYSl7UnAuY2FsbCh0aGlzLDEsYSk7dGhpcy5KPWEuY29udGV4dDt0aGlzLmg9YS5aYjt0aGlzLkQ9YS5rZTt0aGlzLkc9YS5uZX07Xy5KKHJxLFJwKTtycS5wcm90b3R5cGUuVT1mdW5jdGlvbigpe1JwLnByb3RvdHlwZS5VLmNhbGwodGhpcyk7dmFyIGE9V3AodGhpcykmJnRoaXMuY3JlZGVudGlhbHMubGVuZ3RoPjIsYj10aGlzLk8sYz10aGlzLmNvbnRhaW5lcixkPXRoaXMuSixlPXRoaXMuY3JlZGVudGlhbHMsZj10aGlzLmNsaWVudERhdGEubWEoKSxnPSExO2c9Zz09PXZvaWQgMD8hMTpnO2U9Xy5SbihlKTtfLm9sKGMsY3Ese2NvbnRleHQ6ZCxjcmVkZW50aWFsczplLGVlOjIsYXBwTmFtZTpmLG1iOi9eW2FlaW91eV0uKy9pLnRlc3QoZiksQWU6YSxjYW5jZWxhYmxlOmcsTzpifSk7c3EodGhpcyk7cmV0dXJuIFdwKHRoaXMpP18uTG0oKTpZcCh0aGlzKX07CnZhciBzcT1mdW5jdGlvbihhKXt2YXIgYj1hLmkoKTtfLmZlKGIsZnVuY3Rpb24oYyxkKXt2YXIgZT1hLmNyZWRlbnRpYWxzW2RdO18uSW0oYSxjLGZ1bmN0aW9uKGYpe2lmKGEuailfLkcoIkNsaWNrIGlnbm9yZWQuIEEgY3JlZGVudGlhbCBpcyBhbHJlYWR5IGJlaW5nIHByb2Nlc3NlZC4iKTtlbHNle3ZhciBnPV8uT20oYS5OKSxoPUpwKGEuTiksaz1fLlQ7dmFyIG09Xy5sayhhLkYsMSxmLGgpO209Xy5IaShtLDExLGQpO2subG9nKG0pO2g/Xy5HKCJDbGljayBpZ25vcmVkLiBDbGlja2VkIHRvbyBzb29uLCB3YWl0IDcwMG1zLiIpOihhLm89ZSxhLmc9YyxhLmgmJmEuaChlLGcsZikpfX0pfSk7KGI9Xy5RKCJzaG93LW1vcmUtYWNjb3VudHMiKSkmJl8uSW0oYSxiLGZ1bmN0aW9uKGMpe18ubG8oYS5GLDgsYyk7dHEoYSl9KTtWcChhKX07CnJxLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7dmFyIGE9THAoe2FwcE5hbWU6dGhpcy5jbGllbnREYXRhLm1hKCksSGM6dGhpcy5jcmVkZW50aWFscy5sZW5ndGh9KTtfLm5vKGEudG9TdHJpbmcoKSl9O3ZhciB0cT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgT3AoXy54bygpLCJYOUczSyIsITAsMjUwKTsoYS5EP2EuRCgpOlByb21pc2UucmVzb2x2ZSh2b2lkIDApKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGIuc3RhcnQoKS50aGVuKGZ1bmN0aW9uKCl7YS5HJiZhLkcoKTthLmkoKVsyXS5mb2N1cygpO3ZhciBjPV8uUSgiY3JlZGVudGlhbHMtcGlja2VyIik7YyE9bnVsbCYmXy5lbyhbXy5mbyhxcSldLGMsImFyaWEtbGFiZWxsZWRCeSIsImxpc3QtZXh0ZW5kZWQtbGFiZWwiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCl9KX0pfTt2YXIgdXE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5aO2EuWj1mdW5jdGlvbigpe2I9PW51bGx8fGIoKX07UnAuY2FsbCh0aGlzLDksYSk7dGhpcy5jb250ZXh0PWEuY29udGV4dDt0aGlzLm9uQ29udGludWVIYW5kbGVyPWEub25Db250aW51ZUhhbmRsZXJ9O18uSih1cSxScCk7dXEucHJvdG90eXBlLlU9ZnVuY3Rpb24oKXtScC5wcm90b3R5cGUuVS5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuY29udGFpbmVyLGI9dGhpcy5jb250ZXh0LGM9dGhpcy5jbGllbnREYXRhLGQ9dGhpcy5PLGU9IVdwKHRoaXMpO2U9ZT09PXZvaWQgMD8hMTplO3ZhciBmPS9eW2FlaW91eV0uKy9pLnRlc3QoYy5tYSgpKTtfLm9sKGEsZnEse2NvbnRleHQ6YixhcHBOYW1lOmMubWEoKSxtYjpmLE86ZCxaZDplLEplOl8uSSgiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb25fdWlfZGVza3RvcCIpfSk7dnEodGhpcyk7cmV0dXJuIFdwKHRoaXMpP18uTG0oKTpZcCh0aGlzKX07CnZhciB2cT1mdW5jdGlvbihhKXt2YXIgYj1fLlEoImNvbnRpbnVlIik7Xy5JbShhLGIsZnVuY3Rpb24oYyl7Xy5sbyhhLkYsMTMpO2lmKGEub25Db250aW51ZUhhbmRsZXIpYS5vbkNvbnRpbnVlSGFuZGxlcihjKX0pO1ZwKGEpfTt1cS5wcm90b3R5cGUuSmE9ZnVuY3Rpb24oKXt2YXIgYT1fLlEoImNvbnRpbnVlIik7YSYmYS5mb2N1cygpfTt1cS5wcm90b3R5cGUubD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuY2xpZW50RGF0YS5tYSgpO18ubm8oKCJMb2dnIHBcdTAwZTUgIithKyIgbWVkIEdvb2dsZS4iKS50b1N0cmluZygpKX07dmFyIHdxPW5ldyBfLnJmKCJnaXNQb3B1cFdpbmRvdyIpLHhxPWZ1bmN0aW9uKGEsYil7Xy5hby5jYWxsKHRoaXMsYSxiKTt0aGlzLkw9Xy5OKGIsNil8fCJjYXJkIjt0aGlzLk49Xy5RbShhKTt0aGlzLlY9Xy5KYihfLkwoYiwxNikpIT1udWxsJiZfLlBrKGIsMTYpPT09ITA7dGhpcy5vYj1fLk1iKF8uTChiLDI4KSk7dGhpcy51PW51bGw7YS5zdHlsZS5tYXhIZWlnaHQ9IjEwMHZoIjthLnN0eWxlLm1heFdpZHRoPSIxMDB2dyJ9O18uSih4cSxfLmFvKTt4cS5wcm90b3R5cGUuaD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIF8uYW8ucHJvdG90eXBlLmguY2FsbCh0aGlzKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGI9YS5OLGM9bmV3IF8uS2k7aWYoYi5pIT09dm9pZCAwKWMucmVzb2x2ZShiLmkpO2Vsc2V7aWYoYi5vKXRocm93IEVycm9yKCJIYSIpO2Iubz1jfX0pLnRoZW4oZnVuY3Rpb24oKXthLm9iJiYoYS52PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt5cShhKX0sYS5vYikpO3JldHVybiBQcm9taXNlLnJlc29sdmUodm9pZCAwKX0pfTsKeHEucHJvdG90eXBlLlA9ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5sYT09PSJ1bmRlZmluZWQiKXZhciBhPW51bGw7ZWxzZSBhPXRoaXMubGEsYT1hPj0wJiZhPHRoaXMuY3JlZGVudGlhbHMubGVuZ3RoP3RoaXMuY3JlZGVudGlhbHNbYV06bnVsbDt2YXIgYj1fLk8odGhpcy5qLDIzKTtyZXR1cm4gYSYmYS5kYSgpPyhfLmpvKCksXy5rbyh2b2lkIDAsITAsdGhpcy5jcmVkZW50aWFscyksenEodGhpcyxhKSk6dGhpcy5jcmVkZW50aWFscy5sZW5ndGg+MT8oXy5qbygpLF8ua28odm9pZCAwLCExLHRoaXMuY3JlZGVudGlhbHMsYiksQXEodGhpcyx0aGlzLmNyZWRlbnRpYWxzKSk6dGhpcy5jcmVkZW50aWFscy5sZW5ndGg9PT0xPyhfLmpvKCksXy5rbyh2b2lkIDAsITEsdGhpcy5jcmVkZW50aWFscyxiKSxCcSh0aGlzLHRoaXMuY3JlZGVudGlhbHNbMF0pKTpDcSh0aGlzKX07CnZhciBBcT1mdW5jdGlvbihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7Yj1uZXcgcnEoe2NvbnRhaW5lcjphLmNvbnRhaW5lcixDYTpiLGNsaWVudERhdGE6YS5jbGllbnREYXRhLEw6YS5MLE46YS5OLE86Xy5PKGEuaiwyMyksWTpmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBEcShhLGQpfSxaOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgRXEoYSl9LGNvbnRleHQ6YS5jb250ZXh0LFpiOmZ1bmN0aW9uKGQsZSxmKXtGcChhLCJzZWxlY3RfY3JlZGVudGlhbCIpO0ZxKGEsZCwidXNlciIsZSxmKX0sa2U6ZnVuY3Rpb24oKXt2YXIgZD1hLmc7cmV0dXJuIGQ/YS5vKGQuTmEoKSsxNTApOlByb21pc2UucmVzb2x2ZSgpfSxuZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIGEubygpfX0pO3JldHVybiBHcShhLGIsYyl9LEJxPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yzt2YXIgZD0hYi5kYSgpO2I9bmV3IG1xKHtjb250YWluZXI6YS5jb250YWluZXIsc2Vzc2lvbkRhdGE6YixjbGllbnREYXRhOmEuY2xpZW50RGF0YSwKTDphLkwsTjphLk4sTzpfLk8oYS5qLDIzKSxZOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIERxKGEsZSl9LFo6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBFcShhKX0sY29udGV4dDphLmNvbnRleHQsQmU6ZCxtZTpmdW5jdGlvbihlLGYsZyl7RnAoYSwiY29uZmlybV9jcmVkZW50aWFsIik7Zj1mPT09dm9pZCAwPzU6ZjthLmcmJihJcChfLkdtKGEpKSxfLkpiKF8uTChlLDE0KSk/KGc9Xy54aShhLmNsaWVudERhdGEsMik/Xy54aShhLmNsaWVudERhdGEsMik6bG9jYXRpb24ub3JpZ2luLGY9YS5zZXNzaW9uSWQ/YS5zZXNzaW9uSWQ6IiIsZT1EcChfLnhpKGEuY2xpZW50RGF0YSwxKSxhLm5vbmNlLGcsZiwidXNlcl8ydGFwIiwhMCxlLlBiKCksInBvcHVwIiksSHEoYSxlKSk6ZS5kYSgpfHxmPT09Nz9hLmwoZSxlLmRhKCk/InVzZXIiOiJ1c2VyXzF0YXAiLCFlLmRhKCkpOklxKGEsZSxnKSl9fSk7cmV0dXJuIEdxKGEsYixjKX0senE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1jPT09dm9pZCAwPwohMTpjO2I9bmV3IGhxKHtjb250YWluZXI6YS5jb250YWluZXIsc2Vzc2lvbkRhdGE6YixjbGllbnREYXRhOmEuY2xpZW50RGF0YSxMOmEuTCxOOmEuTixZOmZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIERxKGEsZCl9LFo6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBFcShhKX0sb25BdXRvU2VsZWN0ZWRIYW5kbGVyOmZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIEZxKGEsZCwiYXV0byIpfSxvbkF1dG9TZWxlY3RDYW5jZWxlZEhhbmRsZXI6ZnVuY3Rpb24oKXthLmNyZWRlbnRpYWxzLmxlbmd0aD4xP0FxKGEsYS5jcmVkZW50aWFscywhMCk6QnEoYSxhLmNyZWRlbnRpYWxzWzBdLCEwKTt2YXIgZD1fLkdtKGEpO18uQm0oZCx7dHlwZToiY29tbWFuZCIsY29tbWFuZDoiY2FuY2VsX2F1dG9fc2VsZWN0In0pfX0pO3JldHVybiBHcShhLGIsYykudGhlbihmdW5jdGlvbigpe3ZhciBkPV8uR20oYSk7Xy5CbShkLHt0eXBlOiJjb21tYW5kIixjb21tYW5kOiJzdGFydF9hdXRvX3NlbGVjdCJ9KX0pfSwKQ3E9ZnVuY3Rpb24oYSl7dmFyIGI9Xy54aShhLmNsaWVudERhdGEsMik/Xy54aShhLmNsaWVudERhdGEsMik6bG9jYXRpb24ub3JpZ2luLGM9YS5zZXNzaW9uSWQ/YS5zZXNzaW9uSWQ6IiIsZD1FcChfLnhpKGEuY2xpZW50RGF0YSwxKSxhLm5vbmNlLGIsYyk7Yj1uZXcgdXEoe2NvbnRhaW5lcjphLmNvbnRhaW5lcixDYTphLmNyZWRlbnRpYWxzLGNsaWVudERhdGE6YS5jbGllbnREYXRhLEw6YS5MLE46YS5OLE86Xy5PKGEuaiwyMyksWTpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCBEcShhLGUpfSxaOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgRXEoYSl9LGNvbnRleHQ6YS5jb250ZXh0LG9uQ29udGludWVIYW5kbGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgSHEoYSxkKX0sb2I6YS5vYn0pO3JldHVybiBHcShhLGIpfTsKeHEucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczthPWE9PT12b2lkIDA/Xy5TbigpOmE7YT1uZXcgb3Eoe2NvbnRhaW5lcjp0aGlzLmNvbnRhaW5lcixDYTp0aGlzLmNyZWRlbnRpYWxzLGNsaWVudERhdGE6dGhpcy5jbGllbnREYXRhLEw6dGhpcy5MLFk6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBKcShiKX0sWjpmdW5jdGlvbigpe3JldHVybiB2b2lkIEVxKGIpfSxlcnJvclR5cGU6Xy5PKGEsMSkscmE6Xy5OKGEsMyksY2E6Xy5OKGEsNCksZXJyb3JDb2RlOl8uTihhLDUpfSk7R3EodGhpcyxhKX07CnZhciBLcT1mdW5jdGlvbihhLGIpe2lmKGEuTCE9PSJib3R0b21fc2hlZXQiKXJldHVybiAzNjA7c3dpdGNoKGIuRil7Y2FzZSA5OnJldHVybiAyNTQ7Y2FzZSAxOnJldHVybiBfLkZpKGEuaixfLllrLDQsdm9pZCAwPT09Xy5LZT8yOjQpLmxlbmd0aDwzPzE5ODoyMjc7Y2FzZSAyOnJldHVybiBiLkc/MjcxOjE4MztjYXNlIDM6cmV0dXJuIDE0MTtkZWZhdWx0OnJldHVybiAzNjB9fSxHcT1mdW5jdGlvbihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7cmV0dXJuIGEubyhLcShhLGIpKS50aGVuKGZ1bmN0aW9uKCl7YS5OLnJlc2V0KCk7cmV0dXJuIF8uYW8ucHJvdG90eXBlLmkuY2FsbChhLGIpfSkudGhlbihmdW5jdGlvbigpe18ua28oYi5GKTt2YXIgZD1hLk47ZC5qPXBlcmZvcm1hbmNlLm5vdygpO18uRSgiUmVuZGVyIHRpbWUgc2V0IHRvICIrZC5qLCJWSVNJQklMSVRZX09CU0VSVkVSIik7Yz9iLkphKCk6KGIubCgpLGEuVnx8KGQ9Xy5RKCJjcmVkZW50aWFscy1waWNrZXItY29udGFpbmVyIikpJiYKZC5mb2N1cygpLGIgaW5zdGFuY2VvZiBocXx8KGQ9Xy5HbShhKSxfLkJtKGQse3R5cGU6ImNvbW1hbmQiLGNvbW1hbmQ6ImNhbmNlbF9wcm90ZWN0X2VuZCJ9KSkpO18uaW8oYS5jb250YWluZXIpO2Q9YS5jb250YWluZXI7c3dpdGNoKF8uTGIoXy5MKGEuaiwyNykpKXtjYXNlIDI6ZC5jbGFzc0xpc3QuYWRkKCJDWmpYNGUtS1RZSkpjIik7YnJlYWs7Y2FzZSAzOmQuY2xhc3NMaXN0LmFkZCgidG85MTUtS1RZSkpjIik7YnJlYWs7ZGVmYXVsdDpkLmNsYXNzTGlzdC5yZW1vdmUoIkNaalg0ZS1LVFlKSmMiKSxkLmNsYXNzTGlzdC5yZW1vdmUoInRvOTE1LUtUWUpKYyIpfX0pfSxKcT1mdW5jdGlvbihhKXtfLkUoIkNsb3NpbmcgY3VycmVudCBwYWdlLiIpO3JldHVybiBhLmc/U3AoYS5nKS50aGVuKGZ1bmN0aW9uKCl7YS5nJiYoYS5nLmRpc3Bvc2UoKSxhLmc9bnVsbCl9KTpQcm9taXNlLnJlc29sdmUodm9pZCAwKX0sRnE9ZnVuY3Rpb24oYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/NTpkOwphLmcmJihJcChfLkdtKGEpKSxfLkpiKF8uTChiLDE0KSk/KGM9Xy54aShhLmNsaWVudERhdGEsMik/Xy54aShhLmNsaWVudERhdGEsMik6bG9jYXRpb24ub3JpZ2luLGQ9YS5zZXNzaW9uSWQ/YS5zZXNzaW9uSWQ6IiIsYj1EcChfLnhpKGEuY2xpZW50RGF0YSwxKSxhLm5vbmNlLGMsZCwidXNlcl8ydGFwIiwhMCxiLlBiKCksInBvcHVwIiksSHEoYSxiKSk6Yi5kYSgpP2EubChiLGMpOmQ9PT0xP0lxKGEsYixlKTpCcShhLGIsITApKX0sRXE9ZnVuY3Rpb24oYSl7YS52JiYoY2xlYXJUaW1lb3V0KGEudiksZGVsZXRlIGEudik7SXAoXy5HbShhKSl9LERxPWZ1bmN0aW9uKGEsYil7Xy5FKCJDYW5jZWxlZCBieSB1c2VyOiAoIitiKyIsIHRydWUpLiIpO2EuZyYmKEdwKGEuZy5GKSxfLlQuZmx1c2goKSk7THEoYSk7cmV0dXJuIEpxKGEpLnRoZW4oZnVuY3Rpb24oKXt2YXIgYz1fLkdtKGEpO18uQm0oYyx7dHlwZToiY29tbWFuZCIsY29tbWFuZDoiY2xvc2UiLHN1cHByZXNzOiEwfSk7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh2b2lkIDApfSl9LAp5cT1mdW5jdGlvbihhKXtfLkUoIlBpY2tlciBhdXRvIGRpc21pc3NlZC4iKTtMcShhKTtKcShhKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGI9Xy5HbShhKTtfLkJtKGIse3R5cGU6ImNvbW1hbmQiLGNvbW1hbmQ6ImF1dG9fZGlzbWlzcyJ9KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCl9KX07eHEucHJvdG90eXBlLmw9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1jPT09dm9pZCAwPyExOmM7ZD1kPT09dm9pZCAwPyExOmQ7THEodGhpcyk7cmV0dXJuIF8uYW8ucHJvdG90eXBlLmwuY2FsbCh0aGlzLGEsYixjLGQpfTsKdmFyIElxPWZ1bmN0aW9uKGEsYixjKXtpZihiLmRhKCkpYS5sKGIsInVzZXIiKTtlbHNle3ZhciBkPV8uTihhLmNsaWVudERhdGEsMSk7dmFyIGU9Xy5OKGEuY2xpZW50RGF0YSwyKTtiPV8uTihiLDIpO3ZhciBmPWEubm9uY2UsZz1hLnNlc3Npb25JZCxoPWxvY2F0aW9uLnByb3RvY29sKyIvLyIrbG9jYXRpb24uaG9zdCsiL2dzaS9jb25maXJtPyI7aCs9ImNsaWVudF9pZD0iK2QrIiZvcmlnaW49IitlKyImdXNlcl9pZD0iK2IrIiZjb250ZXh0PSIrYS5jb250ZXh0O18uT2MhPT0id2FybiImJihoKz0iJmxvZ19sZXZlbD0iK18uT2MpO2YmJihoKz0iJm5vbmNlPSIrZik7ZyYmKGgrPSImYXM9IitnKTtkPWg7TXEoYSk7YS51PV8uSmQoZCx3cSxfLkhkKHZvaWQgMCx2b2lkIDAsYz9jLnNjcmVlblg6dm9pZCAwKSk7Xy5DaChhLCJkaWFsb2dfZGlzcGxheWVkIil9fSxIcT1mdW5jdGlvbihhLGIpe2E9Xy54aShhLmosMjQpP18ueGkoYS5qLDI0KToiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL3YyL2F1dGgiOwpfLkkoImVuYWJsZV9sYXJnZV9wb3B1cF9oZWlnaHQiKT8oYi5naXNscD0iMSIsYi51cHN0cmVhbV9leHBlcmltZW50X2lkPSIxMTc3ODg2MzYiKTpfLkkoImVuYWJsZV9sYXJnZV9wb3B1cF9oZWlnaHRfY29udHJvbCIpJiYoYi5naXNscD0iMCIsYi51cHN0cmVhbV9leHBlcmltZW50X2lkPSIxMTc3ODg2MzUiKTtfLkpkKF8ueGsoYSxiKSx3cSxfLkhkKCkpfHxfLkgoIkZhaWxlZCB0byBvcGVuIE9BdXRoIHBvcHVwIGZyb20gd2FybSB3ZWxjb21lIHBhZ2UuIil9LExxPWZ1bmN0aW9uKGEpe2lmKGEudSl7TXEoYSk7aWYoIWEudS5jbG9zZWQpdHJ5e2EudS5jbG9zZSgpLF8uQ2goYSwiZGlhbG9nX2Nsb3NlZCIpfWNhdGNoKGIpe31hLnU9bnVsbH19LE1xPWZ1bmN0aW9uKGEpeyhhPWEudSkmJmEuZ2lzJiZhLmdpcy5wcm92aWRlciYmYS5naXMucHJvdmlkZXIucG9wdXAmJmEuZ2lzLnByb3ZpZGVyLnBvcHVwLnVubGlzdGVuVG9QYWdlSGlkZSYmYS5naXMucHJvdmlkZXIucG9wdXAudW5saXN0ZW5Ub1BhZ2VIaWRlKCl9O3ZhciBOcT13aW5kb3c7Cl8uSygiZ2lzLnByb3ZpZGVyLmJvb3RzdHJhcCIsZnVuY3Rpb24oYSxiLGMpe2I9Yj09PXZvaWQgMD8iY29udGFpbmVyLWRpdiI6YjtpZihhfHxjKWlmKGEmJmMpXy5IKCJPbmx5IG9uZSBvZiBjcmVkUGlja2VyRGF0YVByb3RvQXNCYXNlNjQgb3IgY3JlZFBpY2tlckRhdGFQcm90byBzaG91bGQgYmUgcHJvdmlkZWQuIik7ZWxzZXtpZihhKXtpZihhPT09Im51bGwiKXtfLkgoIk5vIGNyZWRlbnRpYWwgcGlja2VyIGRhdGEgcmVjZWl2ZWQgZnJvbSBzZXJ2ZXIuIik7cmV0dXJufWE9KDAsXy4kbikoYSl9ZWxzZSBhPWM7aWYoXy5WZShhLF8uemgsMikpXy5uaChfLk0oYSxfLnpoLDIpKTtlbHNle3ZhciBkPV8uTShhLF8uUmssMSk7ZCYmXy5OKGQsMikmJl8udGsoXy5OKGQsMikpO2lmKGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYikpaWYoYj1fLk0oYSxfLnRtLDMpKWlmKF8uTihhLDUpKXt2YXIgZT1fLnlrKCksZj1fLkZpKGEsXy5Zayw0LHZvaWQgMD09PV8uS2U/Mjo0KTtpZighZSl7aWYoIWYpe18uSCgiRmFpbGVkIHRvIGRpc3BsYXkgcGlja2VyLiBObyBsaXN0IG9mIHNlc3Npb25zIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlci4iKTsKcmV0dXJufWlmKGYubGVuZ3RoPT09MCl7Xy5IKCJGYWlsZWQgdG8gZGlzcGxheSBwaWNrZXIuIFRoZSBsaXN0IG9mIHNlc3Npb25zIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlciB3YXMgZW1wdHkuIFBlcmhhcHMgdGhlcmUgYXJlIG5vIGFjdGl2ZSBzZXNzaW9ucyBvbiB0aGUgYnJvd3Nlci4iKTtyZXR1cm59fWU9Xy5OKGEsNik9PT0iYm90dG9tX3NoZWV0Ij8iYm90dG9tX3NoZWV0IjoiY2FyZCI7dmFyIGc9Xy5OKGEsOSk7Z3x8KGc9InNpZ25pbiIpOyFfLk4oYSwxMCkmJmYmJmYubGVuZ3RoPjA/Xy5IKCJGYWlsZWQgdG8gZGlzcGxheSBwaWNrZXIuIE5vIFhTUkYgdG9rZW4gcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLiIpOihkPXtzZXNzaW9uSWQ6ZCYmXy5OKGQsMSl8fHZvaWQgMCxhYTpfLk4oYiwyKSxjbGllbnRJZDpfLk4oYiwxKSxjb250ZXh0Ol8uZ28oZyksTDplPT09ImNhcmQiPzE6Mn0sXy5ULmc9ZCxhPW5ldyB4cShjLGEpLE5xLl9fR19DUkVERU5USUFMX1BST1ZJREVSX189CmEsYS5oKCkpfWVsc2UgXy5IKCJGYWlsZWQgdG8gZGlzcGxheSBwaWNrZXIuIE5vIGNoYW5uZWwgaWQgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLiIpO2Vsc2UgXy5IKCJGYWlsZWQgdG8gZGlzcGxheSBwaWNrZXIuIE5vIGNsaWVudCBkYXRhIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlci4iKTtlbHNlIF8uSCgiRmFpbGVkIHRvIGRpc3BsYXkgcGlja2VyLiBDYW5ub3QgZmluZCBjb250YWluZXIgZWxlbWVudCB3aXRoIHRoZSBwcm92aWRlZCBpZDogIitiKyIuIil9fWVsc2UgXy5IKCJObyBjcmVkZW50aWFsIHBpY2tlciBkYXRhIHJlY2VpdmVkLiIpfSk7Cl8uSygiZ2lzLnByb3ZpZGVyLm9uUG9wdXBDb25maXJtIixmdW5jdGlvbihhKXt2YXIgYj1OcS5fX0dfQ1JFREVOVElBTF9QUk9WSURFUl9fO2lmKGIpe18uRSgiUG9wdXAgY29uZmlybWVkIik7RnAoYiwiY29uZmlybV9kaWFsb2ciKTt2YXIgYz1iLmw7YTp7Zm9yKHZhciBkPTA7ZDxiLmNyZWRlbnRpYWxzLmxlbmd0aDtkKyspaWYoXy5OKGIuY3JlZGVudGlhbHNbZF0sMik9PT1hKXthPWIuY3JlZGVudGlhbHNbZF07YnJlYWsgYX1hPW51bGx9Yy5jYWxsKGIsYSwidXNlcl8ydGFwIiwhMCl9ZWxzZSBfLkgoIlBpY2tlciBjb21wb25lbnQgaW5zdGFuY2Ugbm90IGZvdW5kLiIpfSk7Xy5LKCJnaXMucHJvdmlkZXIub25Qb3B1cENhbmNlbCIsZnVuY3Rpb24oKXt2YXIgYT1OcS5fX0dfQ1JFREVOVElBTF9QUk9WSURFUl9fO2E/KF8uRSgiUG9wdXAgY2FuY2VsZWQiKSxGcChhLCJjYW5jZWxfZGlhbG9nIiksTHEoYSkpOl8uSCgiUGlja2VyIGNvbXBvbmVudCBpbnN0YW5jZSBub3QgZm91bmQuIil9KTsKXy5LKCJnaXMucHJvdmlkZXIub25Qb3B1cENsb3NlIixmdW5jdGlvbigpe3ZhciBhPU5xLl9fR19DUkVERU5USUFMX1BST1ZJREVSX187YT8oXy5FKCJQb3B1cCBjbG9zZWQiKSxGcChhLCJjbG9zZV9kaWFsb2ciKSk6Xy5IKCJQaWNrZXIgY29tcG9uZW50IGluc3RhbmNlIG5vdCBmb3VuZC4iKX0pO18uSygiZ2lzLnByb3ZpZGVyLm9uUHVibGlzaEFjdGl2aXR5IixmdW5jdGlvbihhKXt2YXIgYj1OcS5fX0dfQ1JFREVOVElBTF9QUk9WSURFUl9fO2I/Yi5SKGEpOl8uSCgiUGlja2VyIGNvbXBvbmVudCBpbnN0YW5jZSBub3QgZm91bmQuIil9KTtfLksoImdpcy5wcm92aWRlci5yZWxheUNyZWRlbnRpYWxSZXNwb25zZSIsZnVuY3Rpb24oYSl7dmFyIGI9TnEuX19HX0NSRURFTlRJQUxfUFJPVklERVJfXztiPyhjb25zb2xlLmxvZygiY3JlZGVudGlhbCByZWxheWVkIiksYi5HKGEpLExxKGIpKTpfLkgoIlBpY2tlciBjb21wb25lbnQgaW5zdGFuY2Ugbm90IGZvdW5kLiIpfSk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp9KS5jYWxsKHRoaXMsdGhpcy5kZWZhdWx0X2dzaSk7Ci8vIEdvb2dsZSBJbmMuCgovLyMgc291cmNlVVJMPS9fL2dzaS9fL2pzL2s9Z3NpLmdzaS5uby5iTXRjM1JwaEpQUS5PL2FtPUFBQUFBQVFCMkNRRS9kPTEvcnM9QUYwS090WGY2Q2xULUZHblI2NUdlY0thUGNXV1dSaU4yQS9tPWNyZWRlbnRpYWxfc2VydmVyX2xpYnJhcnk8L3NjcmlwdD48L2hlYWQ+PGJvZHkgY2xhc3M9InFKVEhNIj48ZGl2IGlkPSJjb250YWluZXItZGl2IiBjbGFzcz0iaGFBY2xmIj48L2Rpdj48c2NyaXB0IG5vbmNlPSJqTlpVbHRyam9pLXAyclJVLWpRNGlRIj5naXMucHJvdmlkZXIuYm9vdHN0cmFwKCdDak1LSzFBMFdWWTVRblYxU21aaVVHdG9aMlZrU1dkSVFqWTRTV000ZEZwbGNIUkVPVmN6TW5ZeWR6bGlhamdTQkhkaGNtNGEwUUVLU1RFd09EQXdNVGc1TWprMU56RXRkREUwTTI4M01tbzNaelJoT1ROeWFXODRNR2hwWjNObE5XTXhNamR4YkhRdVlYQndjeTVuYjI5bmJHVjFjMlZ5WTI5dWRHVnVkQzVqYjIwU0dHaDBkSEJ6T2k4dmQzZDNMbU52YVc1aVlYTmxMbU52YlJvTVkyOXBibUpoYzJVdVkyOXRLaVpvZEhSd2N6b3ZMM2QzZHk1amIybHVZbUZ6WlM1amIyMHZiR1ZuWVd3dmNISnBkbUZqZVRJZWFIUjBjSE02THk5M2QzY3VZMjlwYm1KaGMyVXVZMjl0TDJ4bFoyRnNPaFJ6ZFhCd2IzSjBRR052YVc1aVlYTmxMbU52YlNwQU9ERXlaalV6TVRFMFl6Tm1aVFExWXpJMll6UXpZamt6TmpnNVlXVm1Oemt6WmpFM1l6YzROVGxsTmpsbE1HVmpaVEV3TkdJME16VTVNakpoTmpJek1ESUVZMkZ5WkVvR2MybG5ibWx1d2dFc2FIUjBjSE02THk5aFkyTnZkVzUwY3k1bmIyOW5iR1V1WTI5dEwyOHZiMkYxZEdneUwzWXlMMkYxZEdnXHgzZCcpOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+"}},"time_used":104,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":76,"receive":28,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"as.coinbase.com/metrics","fqdn":"as.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:06.906Z","timestamp":1785108246906,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /metrics HTTP/1.1\r\nHost: as.coinbase.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.coinbase.com/\r\nContent-Type: text/plain;charset=UTF-8\r\nContent-Length: 6545\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":6545,"data":"{\"metrics\":[{\"metric_name\":\"cb.react.data_layer.request.time_until_first_byte.gauge\",\"page_path\":\"/\",\"value\":140,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operationName\":\"useAnonTouchCaptureMutation\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"gauge\"},{\"metric_name\":\"cb.react.data_layer.total_request.duration.gauge\",\"page_path\":\"/\",\"value\":141,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operationName\":\"useAnonTouchCaptureMutation\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"gauge\"},{\"metric_name\":\"cb.react.data_layer.total_request.duration_perf.gauge\",\"page_path\":\"/\",\"value\":141,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operationName\":\"useAnonTouchCaptureMutation\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"gauge\"},{\"metric_name\":\"cb.react.data_layer.total_request.complete\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operationName\":\"useAnonTouchCaptureMutation\",\"status_code\":\"200\",\"response_source\":\"service\",\"content_type\":\"application/json\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"cb.react.data_layer.relay_fetcher.performance\",\"page_path\":\"/\",\"value\":142,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operationName\":\"useAnonTouchCaptureMutation\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"histogram\"},{\"metric_name\":\"perf_network.duration\",\"page_path\":\"/\",\"value\":138,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operation_name\":\"useAnonTouchCaptureMutation\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"distribution\"},{\"metric_name\":\"perf_network.blocked\",\"page_path\":\"/\",\"value\":2,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operation_name\":\"useAnonTouchCaptureMutation\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"distribution\"},{\"metric_name\":\"perf_network.waiting_for_server\",\"page_path\":\"/\",\"value\":136,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operation_name\":\"useAnonTouchCaptureMutation\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"distribution\"},{\"metric_name\":\"perf_network.content_download\",\"page_path\":\"/\",\"value\":0,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operation_name\":\"useAnonTouchCaptureMutation\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"distribution\"},{\"metric_name\":\"cb.react.data_layer.relay_fetcher.response.count\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operationName\":\"useAnonTouchCaptureMutation\",\"deliveryType\":\"whole\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"cb.react.data_layer.relay_fetcher.response.total_duration\",\"page_path\":\"/\",\"value\":492,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operationName\":\"useAnonTouchCaptureMutation\",\"deliveryType\":\"whole\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"histogram\"},{\"metric_name\":\"cb.react.data_layer.relay_fetcher.response.data_size\",\"page_path\":\"/\",\"value\":0.0673828125,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"operationName\":\"useAnonTouchCaptureMutation\",\"deliveryType\":\"whole\",\"cds_version\":\"7.x\",\"ujs\":[\"ujs_load_homepage_screen\"],\"trace_id\":\"14592905212061344081\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"distribution\"}]}"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:07 GMT\r\ncontent-length: 0\r\naccess-control-allow-origin: *\r\nserver: cloudflare\r\nx-content-type-options: nosniff\r\ntrace-id: 6437440541168007173\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nset-cookie: cb_dm=c39d2825-808e-49a8-878c-7fdfad42a437; Path=/; Domain=coinbase.com; Expires=Sat, 26 Jul 2036 23:24:06 GMT; HttpOnly; Secure\n__cf_bm=pkgasD18sj0CWIPsQW3W9SkbdB0ImYRcjINu5CFJ90g-1785108246.907956-1.0.1.1-mItAowQrqHtV.fIsAePPNEPAcPQHxoJvoom8Ol7P4zl0dY3ToAmTvuljJvelMUrceiLCU8LCwSV7yEMTF9z_2XGDlDaryjskHmOpXG07SIgjEbAuDcBNEUSiO_sNnbbK; HttpOnly; SameSite=None; Secure; Path=/; Domain=coinbase.com; Expires=Sun, 26 Jul 2026 23:54:07 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=FgJKKHcphgVkcQp0T2mdJUYHgE1iI7sVa%2FNj0s5Y6R6%2FWZdcsPFB76UEuBfxTUdGTku%2FKi9K%2BRm7EkdfuXSohbRz%2B6clQ%2FMjWbd3X8gYreDWzxT%2Bb%2B4kWxTNBauFraY7qg%3D%3D\"}]}\r\ncf-ray: a21727ef2ac71525-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":0,"size_decoded":8199,"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-27T02:51:03.003348Z","times_seen":17554215,"resource_available":true,"data":""}},"time_used":117,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":117,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/scripttemplates/202602.1.0/otBannerSdk.js","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:08.910Z","timestamp":1785108248910,"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":"cookielaw.org","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:47:21 GMT","end":"Tue, 20 Oct 2026 23:47:08 GMT"},"fingerprint":{"sha1":"BE:65:35:7C:E3:8D:B8:0C:7D:40:51:C7:4B:EE:56:FE:FD:2D:ED:91","sha256":"D6:A8:FD:24:40:A2:7D:0B:B5:73:08:9C:B2:AC:6E:1F:84:CC:D4:09:7B:BA:22:E8:A5:38:A4:10:29:65:88:5C"}}},"request":{"raw":"GET /scripttemplates/202602.1.0/otBannerSdk.js HTTP/1.1\r\nHost: cdn.cookielaw.org\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.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:08 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 131754\r\ncontent-encoding: gzip\r\ncontent-md5: kJGpBqnUpKAuRkLeef6O5A==\r\nlast-modified: Thu, 02 Apr 2026 03:17:23 GMT\r\netag: 0x8DE90665C04F9F4\r\nserver: cloudflare\r\nx-ms-request-id: 623e74db-f01e-003b-5a5f-c2d1d4000000\r\nx-ms-version: 2009-09-19\r\nx-ms-lease-status: unlocked\r\nx-ms-blob-type: BlockBlob\r\naccess-control-expose-headers: x-ms-request-id,Server,x-ms-version,Content-Type,Content-Encoding,ETag,Last-Modified,Content-MD5,x-ms-lease-status,x-ms-blob-type,Content-Length,Date,Transfer-Encoding\r\naccess-control-allow-origin: *\r\nvary: accept-encoding\r\ncache-control: max-age=86400\r\ncross-origin-resource-policy: cross-origin\r\naccept-ranges: bytes\r\nage: 77742\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a21727fbbff932fa-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":543890,"size_decoded":132700,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (65451)","md5":"426179abc347fbf70943f183b4268ef5","sha1":"855aee6515f79465f8ca33506ad3a86a4b37ea83","sha256":"b7171dca698ca454704426d1ff6c7514c6e0d6c415931b37da63d4c7b77ed8c6","sha512":"5eb93f12557ff3f9db314c809c37c2e470f812b260cf511782546b6b930b6c3ecef0328a88cf1f2a66c925892f39d1237874f0fe8d262be43011bcd5b463ed06","ssdeep":"6144:K+3VFPgLTJxzoxlG0L3m1WjUluxBDWwSmijHaxGPWukkx1v6oR3m3hoJXV:KRLTJxUxlG0L3m1WjfGPRN6cvF","tlshash":"98c43a4e7590793547e762b8c027514ab63574acac95806cf41cc4f90bf9f822aa3fbb","first_seen":"2026-03-17T20:58:36.209726Z","last_seen":"2026-07-26T23:25:46.886982Z","times_seen":2456,"resource_available":true,"data":"LyoqIAogKiBvbmV0cnVzdC1iYW5uZXItc2RrCiAqIHYyMDI2MDIuMS4wCiAqIGJ5IE9uZVRydXN0IExMQwogKiBDb3B5cmlnaHQgMjAyNiAKICovCigoKT0+e3ZhciBwPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKHA9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoe19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5P2Z1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH06ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG8gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKSYmKGVbb109dFtvXSl9KSkoZSx0KX07ZnVuY3Rpb24geChlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKHQpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIG8oKXt0aGlzLmNvbnN0cnVjdG9yPWV9cChlLHQpLGUucHJvdG90eXBlPW51bGw9PT10P09iamVjdC5jcmVhdGUodCk6KG8ucHJvdG90eXBlPXQucHJvdG90eXBlLG5ldyBvKX12YXIgSCxSPWZ1bmN0aW9uKCl7cmV0dXJuKFI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG89MSxuPWFyZ3VtZW50cy5sZW5ndGg7bzxuO28rKylmb3IodmFyIHIgaW4gdD1hcmd1bWVudHNbb10pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJihlW3JdPXRbcl0pO3JldHVybiBlfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBQKGUscyxhLGwpe3JldHVybiBuZXcoYT1hfHxQcm9taXNlKShmdW5jdGlvbihvLHQpe2Z1bmN0aW9uIG4oZSl7dHJ5e2kobC5uZXh0KGUpKX1jYXRjaChlKXt0KGUpfX1mdW5jdGlvbiByKGUpe3RyeXtpKGwudGhyb3coZSkpfWNhdGNoKGUpe3QoZSl9fWZ1bmN0aW9uIGkoZSl7dmFyIHQ7ZS5kb25lP28oZS52YWx1ZSk6KCh0PWUudmFsdWUpaW5zdGFuY2VvZiBhP3Q6bmV3IGEoZnVuY3Rpb24oZSl7ZSh0KX0pKS50aGVuKG4scil9aSgobD1sLmFwcGx5KGUsc3x8W10pKS5uZXh0KCkpfSl9ZnVuY3Rpb24gQShuLHIpe3ZhciBpLHMsYSxsPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmFbMF0pdGhyb3cgYVsxXTtyZXR1cm4gYVsxXX0sdHJ5czpbXSxvcHM6W119LGM9T2JqZWN0LmNyZWF0ZSgoImZ1bmN0aW9uIj09dHlwZW9mIEl0ZXJhdG9yP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gYy5uZXh0PWUoMCksYy50aHJvdz1lKDEpLGMucmV0dXJuPWUoMiksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksYztmdW5jdGlvbiBlKG8pe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD1bbyxlXTtpZihpKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2w9YyYmdFtjPTBdPzA6bDspdHJ5e2lmKGk9MSxzJiYoYT0yJnRbMF0/cy5yZXR1cm46dFswXT9zLnRocm93fHwoKGE9cy5yZXR1cm4pJiZhLmNhbGwocyksMCk6cy5uZXh0KSYmIShhPWEuY2FsbChzLHRbMV0pKS5kb25lKXJldHVybiBhO3N3aXRjaChzPTAsKHQ9YT9bMiZ0WzBdLGEudmFsdWVdOnQpWzBdKXtjYXNlIDA6Y2FzZSAxOmE9dDticmVhaztjYXNlIDQ6cmV0dXJuIGwubGFiZWwrKyx7dmFsdWU6dFsxXSxkb25lOiExfTtjYXNlIDU6bC5sYWJlbCsrLHM9dFsxXSx0PVswXTtjb250aW51ZTtjYXNlIDc6dD1sLm9wcy5wb3AoKSxsLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKGE9MDwoYT1sLnRyeXMpLmxlbmd0aCYmYVthLmxlbmd0aC0xXSkmJig2PT09dFswXXx8Mj09PXRbMF0pKXtsPTA7Y29udGludWV9aWYoMz09PXRbMF0mJighYXx8dFsxXT5hWzBdJiZ0WzFdPGFbM10pKWwubGFiZWw9dFsxXTtlbHNlIGlmKDY9PT10WzBdJiZsLmxhYmVsPGFbMV0pbC5sYWJlbD1hWzFdLGE9dDtlbHNle2lmKCEoYSYmbC5sYWJlbDxhWzJdKSl7YVsyXSYmbC5vcHMucG9wKCksbC50cnlzLnBvcCgpO2NvbnRpbnVlfWwubGFiZWw9YVsyXSxsLm9wcy5wdXNoKHQpfX10PXIuY2FsbChuLGwpfWNhdGNoKGUpe3Q9WzYsZV0scz0wfWZpbmFsbHl7aT1hPTB9aWYoNSZ0WzBdKXRocm93IHRbMV07cmV0dXJue3ZhbHVlOnRbMF0/dFsxXTp2b2lkIDAsZG9uZTohMH19fX1mdW5jdGlvbiBGKCl7Zm9yKHZhciBlPTAsdD0wLG89YXJndW1lbnRzLmxlbmd0aDt0PG87dCsrKWUrPWFyZ3VtZW50c1t0XS5sZW5ndGg7Zm9yKHZhciBuPUFycmF5KGUpLHI9MCx0PTA7dDxvO3QrKylmb3IodmFyIGk9YXJndW1lbnRzW3RdLHM9MCxhPWkubGVuZ3RoO3M8YTtzKysscisrKW5bcl09aVtzXTtyZXR1cm4gbn0oZT1IPUh8fHt9KVtlLkFDVElWRT0wXT0iQUNUSVZFIixlW2UuQUxXQVlTX0FDVElWRT0xXT0iQUxXQVlTX0FDVElWRSIsZVtlLkVYUElSRUQ9Ml09IkVYUElSRUQiLGVbZS5OT19DT05TRU5UPTNdPSJOT19DT05TRU5UIixlW2UuT1BUX09VVD00XT0iT1BUX09VVCIsZVtlLlBFTkRJTkc9NV09IlBFTkRJTkciLGVbZS5XSVRIRFJBV049Nl09IldJVEhEUkFXTiI7dmFyIE09c2V0VGltZW91dDtmdW5jdGlvbiBVKGUpe3JldHVybiBCb29sZWFuKGUmJnZvaWQgMCE9PWUubGVuZ3RoKX1mdW5jdGlvbiBxKCl7fWZ1bmN0aW9uIGooZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgaikpdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJvbWlzZXMgbXVzdCBiZSBjb25zdHJ1Y3RlZCB2aWEgbmV3Iik7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigibm90IGEgZnVuY3Rpb24iKTt0aGlzLl9zdGF0ZT0wLHRoaXMuX2hhbmRsZWQ9ITEsdGhpcy5fdmFsdWU9dm9pZCAwLHRoaXMuX2RlZmVycmVkcz1bXSxYKGUsdGhpcyl9ZnVuY3Rpb24gSyhvLG4pe2Zvcig7Mz09PW8uX3N0YXRlOylvPW8uX3ZhbHVlOzA9PT1vLl9zdGF0ZT9vLl9kZWZlcnJlZHMucHVzaChuKTooby5faGFuZGxlZD0hMCxqLl9pbW1lZGlhdGVGbihmdW5jdGlvbigpe3ZhciBlLHQ9MT09PW8uX3N0YXRlP24ub25GdWxmaWxsZWQ6bi5vblJlamVjdGVkO2lmKG51bGw9PT10KSgxPT09by5fc3RhdGU/ejpXKShuLnByb21pc2Usby5fdmFsdWUpO2Vsc2V7dHJ5e2U9dChvLl92YWx1ZSl9Y2F0Y2goZSl7cmV0dXJuIHZvaWQgVyhuLnByb21pc2UsZSl9eihuLnByb21pc2UsZSl9fSkpfWZ1bmN0aW9uIHoodCxlKXt0cnl7aWYoZT09PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQSBwcm9taXNlIGNhbm5vdCBiZSByZXNvbHZlZCB3aXRoIGl0c2VsZi4iKTtpZihlJiYoIm9iamVjdCI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZSkpe3ZhciBvPWUudGhlbjtpZihlIGluc3RhbmNlb2YgailyZXR1cm4gdC5fc3RhdGU9Myx0Ll92YWx1ZT1lLHZvaWQgWSh0KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgbylyZXR1cm4gdm9pZCBYKChuPW8scj1lLGZ1bmN0aW9uKCl7bi5hcHBseShyLGFyZ3VtZW50cyl9KSx0KX10Ll9zdGF0ZT0xLHQuX3ZhbHVlPWUsWSh0KX1jYXRjaChlKXtXKHQsZSl9dmFyIG4scn1mdW5jdGlvbiBXKGUsdCl7ZS5fc3RhdGU9MixlLl92YWx1ZT10LFkoZSl9ZnVuY3Rpb24gWShlKXsyPT09ZS5fc3RhdGUmJjA9PT1lLl9kZWZlcnJlZHMubGVuZ3RoJiZqLl9pbW1lZGlhdGVGbihmdW5jdGlvbigpe2UuX2hhbmRsZWR8fGouX3VuaGFuZGxlZFJlamVjdGlvbkZuKGUuX3ZhbHVlKX0pO2Zvcih2YXIgdD0wLG89ZS5fZGVmZXJyZWRzLmxlbmd0aDt0PG87dCsrKUsoZSxlLl9kZWZlcnJlZHNbdF0pO2UuX2RlZmVycmVkcz1udWxsfWZ1bmN0aW9uIEooZSx0LG8pe3RoaXMub25GdWxmaWxsZWQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpudWxsLHRoaXMub25SZWplY3RlZD0iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGwsdGhpcy5wcm9taXNlPW99ZnVuY3Rpb24gWChlLHQpe3ZhciBvPSExO3RyeXtlKGZ1bmN0aW9uKGUpe298fChvPSEwLHoodCxlKSl9LGZ1bmN0aW9uKGUpe298fChvPSEwLFcodCxlKSl9KX1jYXRjaChlKXtvfHwobz0hMCxXKHQsZSkpfX1mdW5jdGlvbiBRKCl7fWoucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnRoZW4obnVsbCxlKX0sai5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihlLHQpe3ZhciBvPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHEpO3JldHVybiBLKHRoaXMsbmV3IEooZSx0LG8pKSxvfSxqLnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKHQpe3ZhciBvPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gby5yZXNvbHZlKHQoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlfSl9LGZ1bmN0aW9uKGUpe3JldHVybiBvLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG8ucmVqZWN0KGUpfSl9KX0sai5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBqKGZ1bmN0aW9uKHIsaSl7aWYoIVUodCkpcmV0dXJuIGkobmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbGwgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgcz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09cy5sZW5ndGgpcmV0dXJuIHIoW10pO3ZhciBhPXMubGVuZ3RoO2Zvcih2YXIgZT0wO2U8cy5sZW5ndGg7ZSsrKSFmdW5jdGlvbiB0KG8sZSl7dHJ5e2lmKGUmJigib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSl7dmFyIG49ZS50aGVuO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBuKXJldHVybiB2b2lkIG4uY2FsbChlLGZ1bmN0aW9uKGUpe3QobyxlKX0saSl9c1tvXT1lLDA9PS0tYSYmcihzKX1jYXRjaChlKXtpKGUpfX0oZSxzW2VdKX0pfSxqLnJlc29sdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvcj09PWo/dDpuZXcgaihmdW5jdGlvbihlKXtlKHQpfSl9LGoucmVqZWN0PWZ1bmN0aW9uKG8pe3JldHVybiBuZXcgaihmdW5jdGlvbihlLHQpe3Qobyl9KX0sai5yYWNlPWZ1bmN0aW9uKHIpe3JldHVybiBuZXcgaihmdW5jdGlvbihlLHQpe2lmKCFVKHIpKXJldHVybiB0KG5ldyBUeXBlRXJyb3IoIlByb21pc2UucmFjZSBhY2NlcHRzIGFuIGFycmF5IikpO2Zvcih2YXIgbz0wLG49ci5sZW5ndGg7bzxuO28rKylqLnJlc29sdmUocltvXSkudGhlbihlLHQpfSl9LGouX2ltbWVkaWF0ZUZuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRJbW1lZGlhdGU/ZnVuY3Rpb24oZSl7c2V0SW1tZWRpYXRlKGUpfTpmdW5jdGlvbihlKXtNKGUsMCl9LGouX3VuaGFuZGxlZFJlamVjdGlvbkZuPWZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZSYmY29uc29sZS53YXJuKCJQb3NzaWJsZSBVbmhhbmRsZWQgUHJvbWlzZSBSZWplY3Rpb246IixlKX0sUS5wcm90b3R5cGUuaW5pdFBvbHlmaWxsPWZ1bmN0aW9uKCl7dGhpcy5pbml0QXJyYXlJbmNsdWRlc1BvbHlmaWxsKCksdGhpcy5pbml0T2JqZWN0QXNzaWduUG9seWZpbGwoKSx0aGlzLmluaXRBcnJheUZpbGxQb2x5ZmlsbCgpLHRoaXMuaW5pdENsb3Nlc3RQb2x5ZmlsbCgpLHRoaXMuaW5pdEluY2x1ZGVzUG9seWZpbGwoKSx0aGlzLmluaXRFbmRzV2l0aFBvbHkoKSx0aGlzLmluaXRDdXN0b21FdmVudFBvbHlmaWxsKCksdGhpcy5wcm9taXNlc1BvbHlmaWwoKX0sUS5wcm90b3R5cGUuaW5pdEFycmF5SW5jbHVkZXNQb2x5ZmlsbD1mdW5jdGlvbigpe0FycmF5LnByb3RvdHlwZS5pbmNsdWRlc3x8T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwiaW5jbHVkZXMiLHt2YWx1ZTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspdFtvLTFdPWFyZ3VtZW50c1tvXTtpZihudWxsPT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5pbmNsdWRlcyBjYWxsZWQgb24gbnVsbCBvciB1bmRlZmluZWQiKTt2YXIgbj1PYmplY3QodGhpcykscj1wYXJzZUludChuLmxlbmd0aCwxMCl8fDA7aWYoMCE9PXIpe3ZhciBpLHMsYT10WzFdfHwwO2ZvcigwPD1hP2k9YTooaT1yK2EpPDAmJihpPTApO2k8cjspe2lmKGU9PT0ocz1uW2ldKXx8ZSE9ZSYmcyE9cylyZXR1cm4hMDtpKyt9fXJldHVybiExfSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KX0sUS5wcm90b3R5cGUuaW5pdEVuZHNXaXRoUG9seT1mdW5jdGlvbigpe1N0cmluZy5wcm90b3R5cGUuZW5kc1dpdGh8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJvdG90eXBlLCJlbmRzV2l0aCIse3ZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKHZvaWQgMD09PXR8fHQ+dGhpcy5sZW5ndGgpJiYodD10aGlzLmxlbmd0aCksdGhpcy5zdWJzdHJpbmcodC1lLmxlbmd0aCx0KT09PWV9LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pfSxRLnByb3RvdHlwZS5pbml0Q2xvc2VzdFBvbHlmaWxsPWZ1bmN0aW9uKCl7RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlc3x8KEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXM9RWxlbWVudC5wcm90b3R5cGUubXNNYXRjaGVzU2VsZWN0b3J8fEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3RvciksRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdHx8T2JqZWN0LmRlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCJjbG9zZXN0Iix7dmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztkb3tpZih0Lm1hdGNoZXMoZSkpcmV0dXJuIHR9d2hpbGUobnVsbCE9PSh0PXQucGFyZW50RWxlbWVudHx8dC5wYXJlbnROb2RlKSYmMT09PXQubm9kZVR5cGUpO3JldHVybiBudWxsfSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KX0sUS5wcm90b3R5cGUuaW5pdEluY2x1ZGVzUG9seWZpbGw9ZnVuY3Rpb24oKXtTdHJpbmcucHJvdG90eXBlLmluY2x1ZGVzfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwiaW5jbHVkZXMiLHt2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiEoKHQ9Im51bWJlciIhPXR5cGVvZiB0PzA6dCkrZS5sZW5ndGg+dGhpcy5sZW5ndGgpJiYtMSE9PXRoaXMuaW5kZXhPZihlLHQpfSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KX0sUS5wcm90b3R5cGUuaW5pdE9iamVjdEFzc2lnblBvbHlmaWxsPWZ1bmN0aW9uKCl7ImZ1bmN0aW9uIiE9dHlwZW9mIE9iamVjdC5hc3NpZ24mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QsImFzc2lnbiIse3ZhbHVlOmZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCB1bmRlZmluZWQgb3IgbnVsbCB0byBvYmplY3QiKTtmb3IodmFyIG89T2JqZWN0KGUpLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgcj1hcmd1bWVudHNbbl07aWYobnVsbCE9cilmb3IodmFyIGkgaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixpKSYmKG9baV09cltpXSl9cmV0dXJuIG99LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pfSxRLnByb3RvdHlwZS5pbml0QXJyYXlGaWxsUG9seWZpbGw9ZnVuY3Rpb24oKXtBcnJheS5wcm90b3R5cGUuZmlsbHx8T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwiZmlsbCIse3ZhbHVlOmZ1bmN0aW9uKGUpe2lmKG51bGw9PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigidGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkIik7Zm9yKHZhciB0PU9iamVjdCh0aGlzKSxvPXQubGVuZ3RoPj4+MCxuPWFyZ3VtZW50c1sxXT4+MCxyPW48MD9NYXRoLm1heChvK24sMCk6TWF0aC5taW4obixvKSxuPWFyZ3VtZW50c1syXSxuPXZvaWQgMD09PW4/bzpuPj4wLGk9bjwwP01hdGgubWF4KG8rbiwwKTpNYXRoLm1pbihuLG8pO3I8aTspdFtyXT1lLHIrKztyZXR1cm4gdH19KX0sUS5wcm90b3R5cGUuaW5pdEN1c3RvbUV2ZW50UG9seWZpbGw9ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LkN1c3RvbUV2ZW50KXJldHVybiExO2Z1bmN0aW9uIGUoZSx0KXt0PXR8fHtidWJibGVzOiExLGNhbmNlbGFibGU6ITEsZGV0YWlsOnZvaWQgMH07dmFyIG89ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkN1c3RvbUV2ZW50Iik7cmV0dXJuIG8uaW5pdEN1c3RvbUV2ZW50KGUsdC5idWJibGVzLHQuY2FuY2VsYWJsZSx0LmRldGFpbCksb31lLnByb3RvdHlwZT13aW5kb3cuRXZlbnQucHJvdG90eXBlLHdpbmRvdy5DdXN0b21FdmVudD1lfSxRLnByb3RvdHlwZS5pbnNlcnRWaWV3UG9ydFRhZz1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT0idmlld3BvcnQiXScpLHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO3QubmFtZT0idmlld3BvcnQiLHQuY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiLGV8fGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCl9LFEucHJvdG90eXBlLnByb21pc2VzUG9seWZpbD1mdW5jdGlvbigpeyJ1bmRlZmluZWQiPT10eXBlb2YgUHJvbWlzZSYmKHdpbmRvdy5Qcm9taXNlPWopfTt2YXIgWiwkLGVlLHRlLG9lLG5lLHJlLGllLHNlLGFlLGxlLGNlLGRlLHVlLHBlLENlLGdlLGhlLHllLGZlLFNlLG1lLHZlLFRlLFBlLEFlLEllLGtlLGJlLExlLEVlLF9lLE9lLERlLE5lLHdlLFZlLEJlPW5ldyBRLEdlPSgoZT1aPVp8fHt9KVtlLlVua25vd249MF09IlVua25vd24iLGVbZS5CYW5uZXJDbG9zZUJ1dHRvbj0xXT0iQmFubmVyQ2xvc2VCdXR0b24iLGVbZS5Db25maXJtQ2hvaWNlQnV0dG9uPTJdPSJDb25maXJtQ2hvaWNlQnV0dG9uIixlW2UuQWNjZXB0QWxsPTNdPSJBY2NlcHRBbGwiLGVbZS5SZWplY3RBbGw9NF09IlJlamVjdEFsbCIsZVtlLkJhbm5lclNhdmVTZXR0aW5ncz01XT0iQmFubmVyU2F2ZVNldHRpbmdzIixlW2UuQ29udGludWVXaXRob3V0QWNjZXB0aW5nQnV0dG9uPTZdPSJDb250aW51ZVdpdGhvdXRBY2NlcHRpbmdCdXR0b24iLChlPSQ9JHx8e30pW2UuQmFubmVyPTFdPSJCYW5uZXIiLGVbZS5QQz0yXT0iUEMiLGVbZS5BUEk9M109IkFQSSIsKGU9ZWU9ZWV8fHt9KS5BY2NlcHRBbGw9IkFjY2VwdEFsbCIsZS5SZWplY3RBbGw9IlJlamVjdEFsbCIsZS5VcGRhdGVDb25zZW50PSJVcGRhdGVDb25zZW50IiwoZT10ZT10ZXx8e30pW2UuUHVycG9zZT0xXT0iUHVycG9zZSIsZVtlLlNwZWNpYWxGZWF0dXJlPTJdPSJTcGVjaWFsRmVhdHVyZSIsKGU9b2U9b2V8fHt9KS5MZWdhbD0ibGVnYWwiLGUuVXNlckZyaWVuZGx5PSJ1c2VyX2ZyaWVuZGx5IiwoZT1uZT1uZXx8e30pLlRvcD0idG9wIixlLkJvdHRvbT0iYm90dG9tIiwoZT1yZT1yZXx8e30pW2UuQmFubmVyPTBdPSJCYW5uZXIiLGVbZS5QcmVmQ2VudGVySG9tZT0xXT0iUHJlZkNlbnRlckhvbWUiLGVbZS5WZW5kb3JMaXN0PTJdPSJWZW5kb3JMaXN0IixlW2UuQ29va2llTGlzdD0zXT0iQ29va2llTGlzdCIsZVtlLklhYklsbHVzdHJhdGlvbnM9NF09IklhYklsbHVzdHJhdGlvbnMiLChlPWllPWllfHx7fSlbZS5SaWdodEFycm93PTM5XT0iUmlnaHRBcnJvdyIsZVtlLkxlZnRBcnJvdz0zN109IkxlZnRBcnJvdyIsZVtlLlVwQXJyb3c9MzhdPSJVcEFycm93IixlW2UuRG93bkFycm93PTQwXT0iRG93bkFycm93IiwoZT1zZT1zZXx8e30pLkFmdGVyVGl0bGU9IkFmdGVyVGl0bGUiLGUuQWZ0ZXJEZXNjcmlwdGlvbj0iQWZ0ZXJEZXNjcmlwdGlvbiIsZS5BZnRlckRQRD0iQWZ0ZXJEUEQiLChlPWFlPWFlfHx7fSkuUGx1c01pbnVzPSJQbHVzbWludXMiLGUuQ2FyZXQ9IkNhcmV0IixlLk5vQWNjb3JkaW9uPSJOb0FjY29yZGlvbiIsKGU9bGU9bGV8fHt9KS5Db25zZW50PSJDb25zZW50IixlLkxJPSJMSSIsZS5BZGR0bENvbnNlbnQ9IkFkZHRsQ29uc2VudCIsKGU9Y2U9Y2V8fHt9KS5JYWIxUHViPSJldXB1YmNvbnNlbnQiLGUuSWFiMlB1Yj0iZXVwdWJjb25zZW50LXYyIixlLklhYjFFdT0iZXVjb25zZW50IixlLklhYjJFdT0iZXVjb25zZW50LXYyIiwoZT1kZT1kZXx8e30pW2UuRGlzYWJsZWQ9MF09IkRpc2FibGVkIixlW2UuQ29uc2VudD0xXT0iQ29uc2VudCIsZVtlLkxlZ0ludD0yXT0iTGVnSW50IiwoZT11ZT11ZXx8e30pW2VbIkJhbm5lciAtIEFsbG93IEFsbCJdPTFdPSJCYW5uZXIgLSBBbGxvdyBBbGwiLGVbZVsiQmFubmVyIC0gUmVqZWN0IEFsbCJdPTJdPSJCYW5uZXIgLSBSZWplY3QgQWxsIixlW2VbIkJhbm5lciAtIENsb3NlIl09M109IkJhbm5lciAtIENsb3NlIixlW2VbIk5vIEJhbm5lciAtIENsb3NlIl09MTNdPSJObyBCYW5uZXIgLSBDbG9zZSIsZVtlWyJCYW5uZXIgLSBDb250aW51ZSB3aXRob3V0IEFjY2VwdGluZyJdPThdPSJCYW5uZXIgLSBDb250aW51ZSB3aXRob3V0IEFjY2VwdGluZyIsZVtlWyJQcmVmZXJlbmNlIENlbnRlciAtIEFsbG93IEFsbCJdPTRdPSJQcmVmZXJlbmNlIENlbnRlciAtIEFsbG93IEFsbCIsZVtlWyJQcmVmZXJlbmNlIENlbnRlciAtIFJlamVjdCBBbGwiXT01XT0iUHJlZmVyZW5jZSBDZW50ZXIgLSBSZWplY3QgQWxsIixlW2VbIlByZWZlcmVuY2UgQ2VudGVyIC0gQ29uZmlybSJdPTZdPSJQcmVmZXJlbmNlIENlbnRlciAtIENvbmZpcm0iLGVbZVsiR1BDIHZhbHVlIGNoYW5nZWQiXT03XT0iR1BDIHZhbHVlIGNoYW5nZWQiLGVbZVsiQVBJIC0gQWxsb3cgQWxsIl09OV09IkFQSSAtIEFsbG93IEFsbCIsZVtlWyJBUEkgLSBSZWplY3QgQWxsIl09MTBdPSJBUEkgLSBSZWplY3QgQWxsIixlW2VbIkFQSSAtIFVwZGF0ZUNvbnNlbnQiXT0xMV09IkFQSSAtIFVwZGF0ZUNvbnNlbnQiLGVbZVsiQW5vbnltb3VzIC0gTG9nZ2VkIE91dCBDb25zZW50Il09MTJdPSJBbm9ueW1vdXMgLSBMb2dnZWQgT3V0IENvbnNlbnQiLChlPXBlPXBlfHx7fSkuQWN0aXZlPSIxIixlLkluQWN0aXZlPSIwIiwoZT1DZT1DZXx8e30pLkhvc3Q9Ikhvc3QiLGUuR2VuVmVuZG9yPSJHZW5WZW4iLChlPWdlPWdlfHx7fSlbZS5Ib3N0PTFdPSJIb3N0IixlW2UuR2VuVmVuPTJdPSJHZW5WZW4iLGVbZS5Ib3N0QW5kR2VuVmVuPTNdPSJIb3N0QW5kR2VuVmVuIiwoZT1oZT1oZXx8e30pW2UubWluRGF5cz0xXT0ibWluRGF5cyIsZVtlLm1heERheXM9MzBdPSJtYXhEYXlzIixlW2UubWF4WWVhcj0zMTUzNmUzXT0ibWF4WWVhciIsZVtlLm1heFNlY1RvRGF5cz04NjQwMF09Im1heFNlY1RvRGF5cyIsKGU9eWU9eWV8fHt9KVtlLlJUTD0wXT0iUlRMIixlW2UuTFRSPTFdPSJMVFIiLChlPWZlPWZlfHx7fSlbZS5Hb29nbGVWZW5kb3I9MV09Ikdvb2dsZVZlbmRvciIsZVtlLkdlbmVyYWxWZW5kb3I9Ml09IkdlbmVyYWxWZW5kb3IiLChlPUd0PUd0fHx7fSlbZS5EYXlzPTFdPSJEYXlzIixlW2UuV2Vla3M9N109IldlZWtzIixlW2UuTW9udGhzPTMwXT0iTW9udGhzIixlW2UuWWVhcnM9MzY1XT0iWWVhcnMiLChlPVNlPVNlfHx7fSkuQ2hlY2tib3g9IkNoZWNrYm94IixlLlRvZ2dsZT0iVG9nZ2xlIiwoZT1tZT1tZXx8e30pLlNsaWRlSW49IlNsaWRlX0luIixlLkZhZGVJbj0iRmFkZV9JbiIsZS5SZW1vdmVBbmltYXRpb249IlJlbW92ZV9BbmltYXRpb24iLChlPXZlPXZlfHx7fSkuTGluaz0iTGluayIsZS5JY29uPSJJY29uIiwoZT1UZT1UZXx8e30pLmNvbnNlbnQ9ImNvbnNlbnQiLGUuc2V0PSJzZXQiLChlPVBlPVBlfHx7fSkudXBkYXRlPSJ1cGRhdGUiLGUuZGVmYXVsdD0iZGVmYXVsdCIsZS5hZHNfZGF0YV9yZWRhY3Rpb249ImFkc19kYXRhX3JlZGFjdGlvbiIsKGU9QWU9QWV8fHt9KS5hbmFseXRpY3Nfc3RvcmFnZT0iYW5hbHl0aWNzX3N0b3JhZ2UiLGUuYWRfc3RvcmFnZT0iYWRfc3RvcmFnZSIsZS5mdW5jdGlvbmFsaXR5X3N0b3JhZ2U9ImZ1bmN0aW9uYWxpdHlfc3RvcmFnZSIsZS5wZXJzb25hbGl6YXRpb25fc3RvcmFnZT0icGVyc29uYWxpemF0aW9uX3N0b3JhZ2UiLGUuc2VjdXJpdHlfc3RvcmFnZT0ic2VjdXJpdHlfc3RvcmFnZSIsZS5hZF91c2VyX2RhdGE9ImFkX3VzZXJfZGF0YSIsZS5hZF9wZXJzb25hbGl6YXRpb249ImFkX3BlcnNvbmFsaXphdGlvbiIsZS5yZWdpb249InJlZ2lvbiIsZS53YWl0X2Zvcl91cGRhdGU9IndhaXRfZm9yX3VwZGF0ZSIsKGU9SWU9SWV8fHt9KS5ncmFudGVkPSJncmFudGVkIixlLmRlbmllZD0iZGVuaWVkIiwwLChlPWtlPWtlfHx7fSkuT0JKRUNUX1RPX0xJPSJPYmplY3RUb0xJIixlLkxJX0FDVElWRV9JRl9MRUdBTF9CQVNJUz0iTElBY3RpdmVJZkxlZ2FsQmFzaXMiLChlPWJlPWJlfHx7fSkuY29va2llcz0iY29va2llcyIsZS52ZW5kb3JzPSJ2ZW5kb3JzIiwoZT1MZT1MZXx8e30pLkdEUFI9IkdEUFIiLGUuQ0NQQT0iQ0NQQSIsZS5JQUIyPSJJQUIyIixlLklBQjJWMj0iSUFCMlYyIixlLkdFTkVSSUM9IkdFTkVSSUMiLGUuTEdQRD0iTEdQRCIsZS5HRU5FUklDX1BST01QVD0iR0VORVJJQ19QUk9NUFQiLGUuQ1BSQT0iQ1BSQSIsZS5DRFBBPSJDRFBBIixlLkRFTEFXQVJFPSJERUxBV0FSRSIsZS5JT1dBPSJJT1dBIixlLk5FQlJBU0tBPSJORUJSQVNLQSIsZS5VU05BVElPTkFMPSJVU05BVElPTkFMIixlLkNVU1RPTT0iQ1VTVE9NIixlLkZMT1JJREE9IkZMT1JJREEiLGUuQ09MT1JBRE89IkNPTE9SQURPIixlLkNPTk5FQ1RJQ1VUPSJDVERQQSIsZS5NT05UQU5BPSJNT05UQU5BIixlLlRFWEFTPSJURVhBUyIsZS5PUkVHT049Ik9SRUdPTiIsZS5URU5ORVNTRUU9IlRFTk5FU1NFRSIsZS5ORVdKRVJTRVk9Ik5FV0pFUlNFWSIsZS5ORVdIQU1QU0hJUkU9Ik5FV0hBTVBTSElSRSIsZS5VQ1BBPSJVQ1BBIixlLlZJUkdJTklBPSJWSVJHSU5JQSIse2NhOkxlLkNQUkEsdmE6TGUuQ0RQQSxjbzpMZS5DT0xPUkFETyxvcjpMZS5PUkVHT04sY3Q6TGUuQ09OTkVDVElDVVQsZmw6TGUuRkxPUklEQSxtdDpMZS5NT05UQU5BLHR4OkxlLlRFWEFTLGRlOkxlLkRFTEFXQVJFLGlhOkxlLklPV0EsbmU6TGUuTkVCUkFTS0EsdG46TGUuVEVOTkVTU0VFLG5qOkxlLk5FV0pFUlNFWSxuaDpMZS5ORVdIQU1QU0hJUkUsdXQ6TGUuVUNQQX0pLEk9KChlPUVlPUVlfHx7fSkuQUNDRVBUX0FMTD0iQUNDRVBUX0FMTCIsZS5SRUpFQ1RfQUxMPSJSRUpFQ1RfQUxMIixlLlNBVkVfUFJFRkVSRU5DRT0iU0FWRV9QUkVGRVJFTkNFIiwoZT1fZT1fZXx8e30pLk5hbWU9Ik9UR1BQQ29uc2VudCIsZVtlLkNodW5rU2l6ZT00ZTNdPSJDaHVua1NpemUiLGUuQ2h1bmtDb3VudFBhcmFtPSJHUFBDb29raWVzQ291bnQiLGUuZ3BwU2lkPSJncHBTaWQiLChlPU9lPU9lfHx7fSkuTXNwYUNvdmVyZWRUcmFuc2FjdGlvbj0iSXNNU1BBRW5hYmxlZCIsZS5Nc3BhT3B0T3V0T3B0aW9uTW9kZT0iT3B0LU91dCIsZS5Nc3BhU2VydmljZVByb3ZpZGVyTW9kZT0iU2VydmljZSBQcm92aWRlciIsMCwoZT1EZT1EZXx8e30pLkdwY1NlZ21lbnRUeXBlPSJHcGNTZWdtZW50VHlwZSIsZS5HcGM9IkdwYyIsKGU9TmU9TmV8fHt9KS5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZz0iU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmciLGUuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50cz0iS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50cyIsKGU9d2U9d2V8fHt9KS5DUFJBPSJ1c2NhIixlLkNDUEE9InVzY2EiLGUuQ0RQQT0idXN2YSIsZS5PUkVHT049InVzb3IiLGUuVVNOQVRJT05BTD0idXNuYXQiLGUuQ09MT1JBRE89InVzY28iLGUuRkxPUklEQT0idXNmbCIsZS5DVERQQT0idXNjdCIsZS5NT05UQU5BPSJ1c210IixlLlRFWEFTPSJ1c3R4IixlLkRFTEFXQVJFPSJ1c2RlIixlLklPV0E9InVzaWEiLGUuTkVCUkFTS0E9InVzbmUiLGUuVEVOTkVTU0VFPSJ1c3RuIixlLk5FV0pFUlNFWT0idXNuaiIsZS5ORVdIQU1QU0hJUkU9InVzbmgiLGUuVUNQQT0idXN1dCIsZS5WSVJHSU5JQT0idXN2YSIsZS5JQUIyVjI9InRjZmV1djIiLChlPVZlPVZlfHx7fSlbZS5DUFJBPThdPSJDUFJBIixlW2UuQ0NQQT04XT0iQ0NQQSIsZVtlLkNEUEE9OV09IkNEUEEiLGVbZS5PUkVHT049MTVdPSJPUkVHT04iLGVbZS5VU05BVElPTkFMPTddPSJVU05BVElPTkFMIixlW2UuQ09MT1JBRE89MTBdPSJDT0xPUkFETyIsZVtlLkZMT1JJREE9MTNdPSJGTE9SSURBIixlW2UuTU9OVEFOQT0xNF09Ik1PTlRBTkEiLGVbZS5URVhBUz0xNl09IlRFWEFTIixlW2UuREVMQVdBUkU9MTddPSJERUxBV0FSRSIsZVtlLklPV0E9MThdPSJJT1dBIixlW2UuTkVCUkFTS0E9MTldPSJORUJSQVNLQSIsZVtlLk5FV0hBTVBTSElSRT0yMF09Ik5FV0hBTVBTSElSRSIsZVtlLk5FV0pFUlNFWT0yMV09Ik5FV0pFUlNFWSIsZVtlLlRFTk5FU1NFRT0yMl09IlRFTk5FU1NFRSIsZVtlLlVDUEE9MTFdPSJVQ1BBIixlW2UuVklSR0lOSUE9OV09IlZJUkdJTklBIixlW2UuQ1REUEE9MTJdPSJDVERQQSIsZVtlLklBQjJWMj0yXT0iSUFCMlYyIiwwLDAsMCwwLDAse0FXQUlUSU5HX1JFX0NPTlNFTlQ6IkF3YWl0aW5nUmVjb25zZW50IixDT05TRU5UX0lEOiJjb25zZW50SWQiLEdFT19MT0NBVElPTjoiZ2VvbG9jYXRpb24iLElOVEVSQUNUSU9OX0NPVU5UOiJpbnRlcmFjdGlvbkNvdW50IixJU19JQUJfR0xPQkFMOiJpc0lBQkdsb2JhbCIsTk9UX0xBTkRJTkdfUEFHRToiTm90TGFuZGluZ1BhZ2UiLEdFTzoiZ2VvIixHUENfRU5BQkxFRDoiaXNHcGNFbmFibGVkIixHUENfQnJvd3Nlcl9GbGFnOiJicm93c2VyR3BjRmxhZyIsSVNfQU5PTllNT1VTX0NPTlNFTlQ6ImlzQW5vblVzZXIiLElERU5USUZJRVJfVFlQRToiaWRlbnRpZmllclR5cGUiLFBSRVZfVVNFUl9DT05TRU5UOiJpVHlwZSIsSU5URVJBQ1RJT05fVFlQRToiaW50VHlwZSIsR1JPVVBTOiJncm91cHMiLEhFQUxUSF9TSUdOQVRVUkVfQVVUSE9SSVpBVElPTjoiaGVhbHRoQXV0aCIsTEFTVF9DT05TRU5UX1JFQ0VJUFQ6ImNyVGltZSIsUFJFVl9VU0VSX0hBRF9UT0tFTjoicHJldkhhZFRva2VuIn0pLGs9e0FERElUSU9OQUxfQ09OU0VOVF9TVFJJTkc6Ik9UQWRkaXRpb25hbENvbnNlbnRTdHJpbmciLEFMRVJUX0JPWF9DTE9TRUQ6Ik9wdGFub25BbGVydEJveENsb3NlZCIsT1BUQU5PTl9DT05TRU5UOiJPcHRhbm9uQ29uc2VudCIsRVVfUFVCX0NPTlNFTlQ6ImV1cHViY29uc2VudC12MiIsRVVfQ09OU0VOVDoiZXVjb25zZW50LXYyIixTRUxFQ1RFRF9WQVJJQU5UOiJPVFZhcmlhbnQiLE9UX1BSRVZJRVc6Im90cHJldmlldyIsR1BQX0NPTlNFTlQ6X2UuTmFtZSxTRVNTSU9OX1RSQUNLSU5HOiJPVFNlc3Npb25UcmFja2luZyJ9LHhlPSJDT05GSVJNRUQiLEhlPSJPUFRfT1VUIixSZT0iTk9fQ0hPSUNFIixGZT0iTk9UR0lWRU4iLE1lPSJOT19PUFRfT1VUIixmPXtBTFdBWVNfSU5BQ1RJVkU6ImFsd2F5cyBpbmFjdGl2ZSIsQUxXQVlTX0FDVElWRToiYWx3YXlzIGFjdGl2ZSIsQUNUSVZFOiJhY3RpdmUiLElOQUNUSVZFX0xBTkRJTkdfUEFHRToiaW5hY3RpdmUgbGFuZGluZ3BhZ2UiLElOQUNUSVZFOiJpbmFjdGl2ZSIsSU1QTElFRF9DT05TRU5UOiJpbXBsaWVkIGNvbnNlbnQiLEdQQzoiZ3BjIixETlQ6ImRudCJ9LFVlPXtMT0NBTDoiTE9DQUwiLFRFU1Q6IlRFU1QiLExPQ0FMX1RFU1Q6IkxPQ0FMX1RFU1QiLFBST0RVQ1RJT046IlBST0RVQ1RJT04ifSxxZT0iZGF0YS1kb2N1bWVudC1sYW5ndWFnZSIsamU9ImRhdGEtbGFuZ3VhZ2UiLEtlPSJvdENvb2tpZVNldHRpbmdzQnV0dG9uLmpzb24iLHplPSJvdENvb2tpZVNldHRpbmdzQnV0dG9uUnRsLmpzb24iLFdlPSJvdENlbnRlclJvdW5kZWQiLFllPSJvdEZsYXQiLEplPSJvdEZsb2F0aW5nUm91bmRlZENvcm5lciIsWGU9Im90RmxvYXRpbmdGbGF0IixRZT0ib3RGbG9hdGluZ1JvdW5kZWRJY29uIixaZT0ib3RGbG9hdGluZ1JvdW5kZWQiLCRlPSJvdENob2ljZXNCYW5uZXIiLGV0PSJvdE5vQmFubmVyIix0dD0ib3RQY0NlbnRlciIsb3Q9Im90UGNMaXN0IixudD0ib3RQY1BhbmVsIixydD0ib3RQY1BvcHVwIixpdD0ib3RQY1RhYiIsc3Q9ImhpZGViYW5uZXIiLGF0PTIxMCxsdD0xNjAsY3Q9MTA1LGR0PTMwLHV0PSItLW90LWZvb3Rlci1zcGFjZSIscHQ9KChlPXt9KVtHdC5EYXlzXT0iUENlbnRlclZlbmRvckxpc3RMaWZlc3BhbkRheSIsZVtHdC5XZWVrc109IkxmU3BuV2siLGVbR3QuTW9udGhzXT0iUENlbnRlclZlbmRvckxpc3RMaWZlc3Bhbk1vbnRoIixlW0d0LlllYXJzXT0iTGZTcG5ZciIsZSksQ3Q9IkROQUMiLGd0PSJDYXRlZ29yeSIsaHQ9Ikhvc3QiLHl0PSJHZW5lcmFsIFZlbmRvciIsZnQ9IlZlbmRvclNlcnZpY2UiLFN0PSJhcmlhLWxhYmVsIixtdD0iYXJpYS1oaWRkZW4iLHZ0PSJhZF9zdG9yYWdlIixUdD0idXNlcl9kYXRhIixQdD0iQlJBTkNIIixBdD0iQ09PS0lFIixJdD0iSUFCMlYyX1NQTF9QVVJQT1NFIixrdD0iSUFCMlYyX0ZFQVRVUkUiLGJ0PSJJQUIyVjJfU1BMX0ZFQVRVUkUiLEx0PVsiSUFCMl9QVVJQT1NFIiwiSUFCMl9TVEFDSyIsIklBQjJfRkVBVFVSRSIsIklBQjJfU1BMX1BVUlBPU0UiLCJJQUIyX1NQTF9GRUFUVVJFIiwiSUFCMlYyX1BVUlBPU0UiLCJJQUIyVjJfU1BMX1BVUlBPU0UiLCJJQUIyVjJfRkVBVFVSRSIsIklBQjJWMl9TUExfRkVBVFVSRSIsIklBQjJWMl9TVEFDSyJdLEV0PVsiQ09PS0lFIiwiQlJBTkNIIiwiSUFCMl9TVEFDSyIsIklBQjJWMl9TVEFDSyJdLF90PVsiSUFCMl9QVVJQT1NFIiwiSUFCMl9TUExfRkVBVFVSRSIsIklBQjJWMl9QVVJQT1NFIiwiSUFCMlYyX1NQTF9GRUFUVVJFIl0sT3Q9WyJJQUIyX0ZFQVRVUkUiLCJJQUIyX1NQTF9QVVJQT1NFIiwiSUFCMlYyX0ZFQVRVUkUiLCJJQUIyVjJfU1BMX1BVUlBPU0UiXSxEdD1bIklBQjJfUFVSUE9TRSIsIklBQjJfU1BMX1BVUlBPU0UiLCJJQUIyX0ZFQVRVUkUiLCJJQUIyX1NQTF9GRUFUVVJFIl0sTnQ9e0lBQjJWMjoicHVyIixJRkUyVjI6ImZ0IixJU1AyVjI6InNwbF9wdXIiLElTRjJWMjoic3BsX2Z0In0sd3Q9e3B1cjoicHVycG9zZXMiLGZ0OiJmZWF0dXJlcyIsc3BsX3B1cjoic3BlY2lhbFB1cnBvc2VzIixzcGxfZnQ6InNwZWNpYWxGZWF0dXJlcyJ9LGI9bmV3IGZ1bmN0aW9uKCl7fTtmdW5jdGlvbiBkKGUsdCxvKXt2b2lkIDA9PT1vJiYobz0hMSk7ZnVuY3Rpb24gbihlKXtyZXR1cm4gZT8oIjsiIT09KGU9ZS50cmltKCkpLmNoYXJBdChlLmxlbmd0aC0xKSYmKGUrPSI7IiksZS50cmltKCkpOm51bGx9dmFyIGk9bihlLmdldEF0dHJpYnV0ZSgic3R5bGUiKSkscz1uKHQpLHQ9IiIsdD1vJiZpPygoKT0+e2Zvcih2YXIgZT1pLnNwbGl0KCI7IikuY29uY2F0KHMuc3BsaXQoIjsiKSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiAwIT09ZS5sZW5ndGh9KSx0PSIiLG89IiIsbj1lLmxlbmd0aC0xOzA8PW47bi0tKXt2YXIgcj1lW25dLnN1YnN0cmluZygwLGVbbl0uaW5kZXhPZigiOiIpKzEpLnRyaW0oKTt0LmluZGV4T2Yocik8MCYmKHQrPXIsbys9ZVtuXSsiOyIpfXJldHVybiBvfSkoKTpzO2Uuc2V0QXR0cmlidXRlKCJzdHlsZSIsdCl9YS5pbnNlcnRBZnRlcj1mdW5jdGlvbihlLHQpe3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0Lm5leHRTaWJsaW5nKX0sYS5pbnNlcnRCZWZvcmU9ZnVuY3Rpb24oZSx0KXt0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdCl9LGEuaW5BcnJheT1mdW5jdGlvbihlLHQpe3JldHVybiB0LmluZGV4T2YoZSl9LGEuYWpheD1mdW5jdGlvbihlKXt2YXIgdD1udWxsLG89bmV3IFhNTEh0dHBSZXF1ZXN0LG49ZS50eXBlLHI9ZS5jb250ZW50VHlwZSxpPWUuZGF0YSxzPWUuc3VjY2VzcyxhPWUudG9rZW4sdD1lLmVycm9yO28ub3BlbihuLGUudXJsLCFlLnN5bmMpLG8uc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixyKSxhJiZvLnNldFJlcXVlc3RIZWFkZXIoIkF1dGhvcml6YXRpb24iLGEpLG8ud2l0aENyZWRlbnRpYWxzPSExLG8ub25sb2FkPWZ1bmN0aW9uKCl7dmFyIGU7MjAwPD10aGlzLnN0YXR1cyYmdGhpcy5zdGF0dXM8NDAwPyhlPUpTT04ucGFyc2UodGhpcy5yZXNwb25zZVRleHQpLHMoZSkpOnQoe21lc3NhZ2U6IkVycm9yIExvYWRpbmcgRGF0YSIsc3RhdHVzQ29kZTp0aGlzLnN0YXR1c30pfSxvLm9uZXJyb3I9ZnVuY3Rpb24oZSl7dChlKX0sInBvc3QiPT09bi50b0xvd2VyQ2FzZSgpfHwicHV0Ij09PW4udG9Mb3dlckNhc2UoKT9vLnNlbmQoaSk6by5zZW5kKCl9LGEucHJldk5leHRIZWxwZXI9ZnVuY3Rpb24obyxlLG4pe3ZhciByPVtdO2Z1bmN0aW9uIGkoZSx0LG8pe3RbZV0mJm8/by5pbmNsdWRlcygiLiIpPyh0W2VdLmNsYXNzTGlzdFswXXx8dFtlXS5jbGFzc0xpc3QudmFsdWUmJnRbZV0uY2xhc3NMaXN0LnZhbHVlLmluY2x1ZGVzKG8uc3BsaXQoIi4iKVsxXSkpJiZyLnB1c2godFtlXSk6by5pbmNsdWRlcygiIyIpP3RbZV0uaWQ9PT1vLnNwbGl0KCIjIilbMV0mJnIucHVzaCh0W2VdKTp0W2VdLnRhZ05hbWU9PT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KG8udHJpbSgpKS50YWdOYW1lJiZyLnB1c2godFtlXSk6dFtlXSYmci5wdXNoKHRbZV0pfXJldHVybiJzdHJpbmciPT10eXBlb2YgZT9BcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSksZnVuY3Rpb24oZSx0KXtpKG8sZSxuKX0pOmkobyxlLG4pLHJ9LGEuYnJvd3Nlcj1mdW5jdGlvbigpe3ZhciBlLHQsbztyZXR1cm4gbmF2aWdhdG9yLnNheXN3aG89KG89KHQ9bmF2aWdhdG9yLnVzZXJBZ2VudCkubWF0Y2goLyhvcGVyYXxjaHJvbWV8c2FmYXJpfGZpcmVmb3h8bXNpZXx0cmlkZW50KD89XC8pKVwvP1xzKihcZCspL2kpfHxbXSwvdHJpZGVudC9pLnRlc3Qob1sxXSk/IklFICIrKChlPS9cYnJ2WyA6XSsoXGQrKS9nLmV4ZWModCl8fFtdKVsxXXx8IiIpOiJDaHJvbWUiPT09b1sxXSYmbnVsbCE9KGU9dC5tYXRjaCgvXGIoT1BSfEVkZ2UpXC8oXGQrKS8pKT9lLnNsaWNlKDEpLmpvaW4oIiAiKS5yZXBsYWNlKCJPUFIiLCJPcGVyYSIpOihvPW9bMl0/W29bMV0sb1syXV06W25hdmlnYXRvci5hcHBOYW1lLG5hdmlnYXRvci5hcHBWZXJzaW9uLCItPyJdLG51bGwhPShlPXQubWF0Y2goL3ZlcnNpb25cLyhcZCspL2kpKSYmby5zcGxpY2UoMSwxLGVbMV0pLG8uam9pbigiICIpKSkse3ZlcnNpb246cGFyc2VJbnQobmF2aWdhdG9yLnNheXN3aG8uc3BsaXQoIiAiKVsxXSksdHlwZTpuYXZpZ2F0b3Iuc2F5c3doby5zcGxpdCgiICIpWzBdLHVzZXJBZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50fX0sYS5pc05vZGVMaXN0PWZ1bmN0aW9uKGUpe2U9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpO3JldHVybiJbb2JqZWN0IE5vZGVMaXN0XSI9PT1lfHwiW29iamVjdCBBcnJheV0iPT09ZX0sYS5nZXRJbm5lckh0bWxDb250ZW50PWZ1bmN0aW9uKGUpe3JldHVybiBhLmlzQ3NwVHJ1c3RlZFR5cGUoKT93aW5kb3cuT3RUcnVzdGVkVHlwZS5UcnVzdGVkVHlwZVBvbGljeS5jcmVhdGVIVE1MKGUpOmV9LGEuZ2V0U2NyaXB0VXJsPWZ1bmN0aW9uKGUpe3JldHVybiBhLmlzQ3NwVHJ1c3RlZFR5cGUoKT93aW5kb3cuT3RUcnVzdGVkVHlwZS5UcnVzdGVkVHlwZVBvbGljeS5jcmVhdGVTY3JpcHRVUkwoZSk6ZX0sYS5pc0NzcFRydXN0ZWRUeXBlPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuKG51bGw9PShlPXdpbmRvdy5PdFRydXN0ZWRUeXBlKT92b2lkIDA6ZS5pc0NzcFRydXN0ZWRUeXBlRW5hYmxlZCkmJihudWxsPT0oZT13aW5kb3cuT3RUcnVzdGVkVHlwZSk/dm9pZCAwOmUuVHJ1c3RlZFR5cGVQb2xpY3kpfSxhLnByb3RvdHlwZS5mYWRlT3V0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYodm9pZCAwPT09ZSYmKGU9NjApLDE8PXRoaXMuZWwubGVuZ3RoKWZvcih2YXIgbz0wO288dGhpcy5lbC5sZW5ndGg7bysrKWQodGhpcy5lbFtvXSwiXG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyAiK2UrIm1zLCBvcGFjaXR5ICIrZSsibXMgbGluZWFyO1xuICAgICAgICAgICAgICAgICIsITApO3ZhciBuPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoMTw9dC5lbC5sZW5ndGgpZm9yKHZhciBlPTA7ZTx0LmVsLmxlbmd0aDtlKyspdC5lbFtlXS5zdHlsZS5vcGFjaXR5PD0wJiYoZCh0LmVsW2VdLCJkaXNwbGF5OiBub25lOyIsITApLGNsZWFySW50ZXJ2YWwobiksIm9wdGFub24tcG9wdXAtYmciPT09dC5lbFtlXS5pZCkmJnQuZWxbZV0ucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpfSxlKTtyZXR1cm4gdGhpc30sYS5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbigpe2lmKDE8PXRoaXMuZWwubGVuZ3RoKWZvcih2YXIgZT0wO2U8dGhpcy5lbC5sZW5ndGg7ZSsrKWQodGhpcy5lbFtlXSwiZGlzcGxheTogbm9uZTsiLCEwKSx0aGlzLmVsW2VdLnNldEF0dHJpYnV0ZShtdCwhMCk7ZWxzZSBhLmlzTm9kZUxpc3QodGhpcy5lbCl8fChkKHRoaXMuZWwsImRpc3BsYXk6IG5vbmU7IiwhMCksdGhpcy5lbC5zZXRBdHRyaWJ1dGUobXQsITApKTtyZXR1cm4gdGhpc30sYS5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lJiYoZT0iYmxvY2siKSwxPD10aGlzLmVsLmxlbmd0aClmb3IodmFyIHQ9MDt0PHRoaXMuZWwubGVuZ3RoO3QrKylkKHRoaXMuZWxbdF0sImRpc3BsYXk6ICIrZSsiOyIsITApLHRoaXMuZWxbdF0ucmVtb3ZlQXR0cmlidXRlKG10KTtlbHNlIGEuaXNOb2RlTGlzdCh0aGlzLmVsKXx8KGQodGhpcy5lbCwiZGlzcGxheTogIitlKyI7IiwhMCksdGhpcy5lbC5yZW1vdmVBdHRyaWJ1dGUobXQpKTtyZXR1cm4gdGhpc30sYS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7aWYoMTw9dGhpcy5lbC5sZW5ndGgpZm9yKHZhciBlPTA7ZTx0aGlzLmVsLmxlbmd0aDtlKyspdGhpcy5lbFtlXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWxbZV0pO2Vsc2UgdGhpcy5lbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWwpO3JldHVybiB0aGlzfSxhLnByb3RvdHlwZS5jc3M9ZnVuY3Rpb24oZSl7aWYoZSlpZigxPD10aGlzLmVsLmxlbmd0aCl7aWYoIWUuaW5jbHVkZXMoIjoiKSlyZXR1cm4gdGhpcy5lbFswXS5zdHlsZVtlXTtmb3IodmFyIHQ9MDt0PHRoaXMuZWwubGVuZ3RoO3QrKylkKHRoaXMuZWxbdF0sZSl9ZWxzZXtpZighZS5pbmNsdWRlcygiOiIpKXJldHVybiB0aGlzLmVsLnN0eWxlW2VdO2QodGhpcy5lbCxlKX1yZXR1cm4gdGhpc30sYS5wcm90b3R5cGUucmVtb3ZlQ2xhc3M9ZnVuY3Rpb24oZSl7aWYoMTw9dGhpcy5lbC5sZW5ndGgpZm9yKHZhciB0PTA7dDx0aGlzLmVsLmxlbmd0aDt0KyspdGhpcy5lbFt0XS5jbGFzc0xpc3Q/dGhpcy5lbFt0XS5jbGFzc0xpc3QucmVtb3ZlKGUpOnRoaXMuZWxbdF0uY2xhc3NOYW1lPXRoaXMuZWxbdF0uY2xhc3NOYW1lLnJlcGxhY2UobmV3IFJlZ0V4cCgiKF58XFxiKSIrZS5zcGxpdCgiICIpLmpvaW4oInwiKSsiKFxcYnwkKSIsImdpIiksIiAiKTtlbHNlIHRoaXMuZWwuY2xhc3NMaXN0P3RoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZShlKTp0aGlzLmVsLmNsYXNzTmFtZT10aGlzLmVsLmNsYXNzTmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoIihefFxcYikiK2Uuc3BsaXQoIiAiKS5qb2luKCJ8IikrIihcXGJ8JCkiLCJnaSIpLCIgIik7cmV0dXJuIHRoaXN9LGEucHJvdG90eXBlLmFkZENsYXNzPWZ1bmN0aW9uKGUpe2lmKDE8PXRoaXMuZWwubGVuZ3RoKWZvcih2YXIgdD0wO3Q8dGhpcy5lbC5sZW5ndGg7dCsrKXRoaXMuZWxbdF0uY2xhc3NMaXN0P3RoaXMuZWxbdF0uY2xhc3NMaXN0LmFkZChlKTp0aGlzLmVsW3RdLmNsYXNzTmFtZSs9IiAiK2U7ZWxzZSB0aGlzLmVsLmNsYXNzTGlzdD90aGlzLmVsLmNsYXNzTGlzdC5hZGQoZSk6dGhpcy5lbC5jbGFzc05hbWUrPSIgIitlO3JldHVybiB0aGlzfSxhLnByb3RvdHlwZS5vbj1mdW5jdGlvbihyLGkscyl7dmFyIGU9dGhpcztpZigic3RyaW5nIiE9dHlwZW9mIGkpaWYodGhpcy5lbCYmIkhUTUwiPT09dGhpcy5lbC5ub2RlTmFtZSYmImxvYWQiPT09cnx8InJlc2l6ZSI9PT1yfHwic2Nyb2xsIj09PXIpc3dpdGNoKHIpe2Nhc2UibG9hZCI6d2luZG93Lm9ubG9hZD1pO2JyZWFrO2Nhc2UicmVzaXplIjp3aW5kb3cub25yZXNpemU9aTticmVhaztjYXNlInNjcm9sbCI6d2luZG93Lm9uc2Nyb2xsPWl9ZWxzZSBpZih0aGlzLmVsJiYxPD10aGlzLmVsLmxlbmd0aClmb3IodmFyIHQ9MDt0PHRoaXMuZWwubGVuZ3RoO3QrKyl0aGlzLmVsW3RdLmFkZEV2ZW50TGlzdGVuZXIocixpKTtlbHNlIHRoaXMuZWwmJnRoaXMuZWwgaW5zdGFuY2VvZiBFbGVtZW50JiZ0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIocixpKTtlbHNlIGlmKHRoaXMuZWwmJiJIVE1MIj09PXRoaXMuZWwubm9kZU5hbWUmJiJsb2FkIj09PXJ8fCJyZXNpemUiPT09cnx8InNjcm9sbCI9PT1yKXN3aXRjaChyKXtjYXNlImxvYWQiOndpbmRvdy5vbmxvYWQ9czticmVhaztjYXNlInJlc2l6ZSI6d2luZG93Lm9ucmVzaXplPXM7YnJlYWs7Y2FzZSJzY3JvbGwiOndpbmRvdy5vbnNjcm9sbD1zfWVsc2V7dmFyIGE9ZnVuY3Rpb24obyl7dmFyIG49by50YXJnZXQ7ZS5lbC5ldmVudEV4ZWN1dGVkPSEwLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChpKSxmdW5jdGlvbihlLHQpe1Z0WyIiK3IraV0mJmRlbGV0ZSBWdFsiIityK2ldLGUuYWRkRXZlbnRMaXN0ZW5lcihyLHMpLGU9PT1uJiZzJiZzLmNhbGwoZSxvKX0pLGUuZWwmJmUuZWxbMF0/ZS5lbFswXS5yZW1vdmVFdmVudExpc3RlbmVyKHIsYSk6ZS5lbCYmZS5lbCBpbnN0YW5jZW9mIEVsZW1lbnQmJmUuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihyLGEpfTtpZih0aGlzLmVsJiYxPD10aGlzLmVsLmxlbmd0aClmb3IodD0wO3Q8dGhpcy5lbC5sZW5ndGg7dCsrKXRoaXMuZWxbdF0uZXZlbnRFeGVjdXRlZD0hMSx0aGlzLmVsW3RdLmV2ZW50RXhlY3V0ZWR8fHRoaXMuZWxbdF0uYWRkRXZlbnRMaXN0ZW5lcihyLGEpO2Vsc2UgdGhpcy5lbCYmKHRoaXMuZWwuZXZlbnRFeGVjdXRlZD0hMSwhdGhpcy5lbC5ldmVudEV4ZWN1dGVkKSYmdGhpcy5lbCBpbnN0YW5jZW9mIEVsZW1lbnQmJihWdFsiIityK2ldfHwoVnRbIiIrcitpXT0hMCx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIocixhKSkpfXJldHVybiB0aGlzfSxhLnByb3RvdHlwZS5vZmY9ZnVuY3Rpb24oZSx0KXtpZigxPD10aGlzLmVsLmxlbmd0aClmb3IodmFyIG89MDtvPHRoaXMuZWwubGVuZ3RoO28rKyl0aGlzLmVsW29dLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0KTtlbHNlIHRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHQpO3JldHVybiB0aGlzfSxhLnByb3RvdHlwZS5vbmU9ZnVuY3Rpb24odCxvKXt2YXIgbj10aGlzO2lmKDE8PXRoaXMuZWwubGVuZ3RoKWZvcih2YXIgZT0wO2U8dGhpcy5lbC5sZW5ndGg7ZSsrKXRoaXMuZWxbZV0uYWRkRXZlbnRMaXN0ZW5lcih0LGZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCksZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQudHJpZ2dlcmVkfHwobygpLGUuY3VycmVudFRhcmdldC5kYXRhc2V0LnRyaWdnZXJlZD0hMCl9KTtlbHNle3ZhciByPWZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCksbygpLG4ub2ZmKHQscil9O3RoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcih0LHIpfXJldHVybiB0aGlzfSxhLnByb3RvdHlwZS50cmlnZ2VyPWZ1bmN0aW9uKGUpe2U9bmV3IEN1c3RvbUV2ZW50KGUse2N1c3RvbUV2ZW50OiJ5ZXMifSk7cmV0dXJuIHRoaXMuZWwuZGlzcGF0Y2hFdmVudChlKSx0aGlzfSxhLnByb3RvdHlwZS5mb2N1cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsJiYoMTw9dGhpcy5lbC5sZW5ndGg/dGhpcy5lbFswXS5mb2N1cygpOnRoaXMuZWwuZm9jdXMmJnRoaXMuZWwuZm9jdXMoKSksdGhpc30sYS5wcm90b3R5cGUuYXR0cj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmVsJiYxPD10aGlzLmVsLmxlbmd0aD90PygiY2xhc3MiPT09ZT90aGlzLmFkZENsYXNzKHQpOnRoaXMuZWxbMF0uc2V0QXR0cmlidXRlKGUsdCksdGhpcyk6dGhpcy5lbFswXS5nZXRBdHRyaWJ1dGUoZSk6dCYmdGhpcy5lbD8oImNsYXNzIj09PWU/dGhpcy5hZGRDbGFzcyh0KTp0aGlzLmVsLnNldEF0dHJpYnV0ZShlLHQpLHRoaXMpOnRoaXMuZWwmJnRoaXMuZWwuZ2V0QXR0cmlidXRlKGUpfSxhLnByb3RvdHlwZS5odG1sPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWUpcmV0dXJuKDE8PXRoaXMuZWwubGVuZ3RoP3RoaXMuZWxbMF06dGhpcy5lbCkuaW5uZXJIVE1MO3ZhciB0PWEuZ2V0SW5uZXJIdG1sQ29udGVudChlKTtpZigxPD10aGlzLmVsLmxlbmd0aClmb3IodmFyIG89MDtvPHRoaXMuZWwubGVuZ3RoO28rKyl0aGlzLmVsW29dLmlubmVySFRNTD10O2Vsc2UgdGhpcy5lbC5pbm5lckhUTUw9dDtyZXR1cm4gdGhpc30sYS5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZXx8ZS5pbmNsdWRlcygiPCIpfHxlLmluY2x1ZGVzKCI+IikpaWYoQXJyYXkuaXNBcnJheShlKSl7dmFyIG89dGhpcztBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUsZnVuY3Rpb24oZSx0KXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKG8uc2VsZWN0b3IpLmFwcGVuZENoaWxkKG5ldyBhKGUsImNlIikuZWwpfSl9ZWxzZXtpZigic3RyaW5nIj09dHlwZW9mIGV8fEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHRoaXMuYXBwZW5kSHRtbEVsZW1lbnQoZSk7aWYoInN0cmluZyI9PXR5cGVvZiB0aGlzLnNlbGVjdG9yKWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3RvcikuYXBwZW5kQ2hpbGQoZSk7ZWxzZSBpZigxPD1lLmxlbmd0aClmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl0aGlzLnNlbGVjdG9yLmFwcGVuZENoaWxkKGVbdF0pO2Vsc2UgdGhpcy5zZWxlY3Rvci5hcHBlbmRDaGlsZChlKX1lbHNlIHRoaXMuZWwuaW5zZXJ0QWRqYWNlbnRUZXh0KCJiZWZvcmVlbmQiLGUpO3JldHVybiB0aGlzfSxhLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKG8pe2lmKHRoaXMuZWwpe2lmKDE8PXRoaXMuZWwubGVuZ3RoKXtpZighbylyZXR1cm4gdGhpcy5lbFswXS50ZXh0Q29udGVudDtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHRoaXMuZWwsZnVuY3Rpb24oZSx0KXtlLnRleHRDb250ZW50PW99KX1lbHNle2lmKCFvKXJldHVybiB0aGlzLmVsLnRleHRDb250ZW50O3RoaXMuZWwudGV4dENvbnRlbnQ9b31yZXR1cm4gdGhpc319LGEucHJvdG90eXBlLmRhdGE9ZnVuY3Rpb24obyxuKXtpZighKHRoaXMuZWwubGVuZ3RoPDEpKXtpZighKDE8PXRoaXMuZWwubGVuZ3RoKSlyZXR1cm4gcih0aGlzLmVsLG4pO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodGhpcy5lbCxmdW5jdGlvbihlLHQpe3IoZSxuKX0pfXJldHVybiB0aGlzO2Z1bmN0aW9uIHIoZSx0KXtpZighdClyZXR1cm4gSlNPTi5wYXJzZShlLmdldEF0dHJpYnV0ZSgiZGF0YS0iK28pKTsib2JqZWN0Ij09dHlwZW9mIHQ/ZS5zZXRBdHRyaWJ1dGUoImRhdGEtIitvLEpTT04uc3RyaW5naWZ5KHQpKTplLnNldEF0dHJpYnV0ZSgiZGF0YS0iK28sdCl9fSxhLnByb3RvdHlwZS5oZWlnaHQ9ZnVuY3Rpb24oZSl7dGhpcy5lbC5sZW5ndGgmJih0aGlzLmVsPXRoaXMuZWxbMF0pO2Zvcih2YXIgdD1wYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsLG51bGwpLmdldFByb3BlcnR5VmFsdWUoInBhZGRpbmctdG9wIikuc3BsaXQoInB4IilbMF0pLG89cGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbCxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLWJvdHRvbSIpLnNwbGl0KCJweCIpWzBdKSxuPXBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWwsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLXRvcCIpLnNwbGl0KCJweCIpWzBdKSxyPXBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWwsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLWJvdHRvbSIpLnNwbGl0KCJweCIpWzBdKSxpPXBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWwsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgiaGVpZ2h0Iikuc3BsaXQoInB4IilbMF0pLHM9W3QsbyxuLHJdLGE9MCxsPTA7bDxzLmxlbmd0aDtsKyspMDxzW2xdJiYoYSs9c1tsXSk7cmV0dXJuIGU/KHQ9ZS50b1N0cmluZygpLnNwbGl0KHBhcnNlSW50KGUpKVsxXT9lLnRvU3RyaW5nKCkuc3BsaXQocGFyc2VJbnQoZSkpWzFdOiJweCIsbz0ibnVtYmVyIj09dHlwZW9mIGU/ZTpwYXJzZUludChlLnRvU3RyaW5nKCkuc3BsaXQodClbMF0pLCh0JiYicHgiPT09dHx8IiUiPT09dHx8ImVtIj09PXR8fCJyZW0iPT09dCkmJigwPG8/ZCh0aGlzLmVsLCJoZWlnaHQ6ICIrKGErbyt0KSsiOyIsITApOiJhdXRvIj09PWUmJmQodGhpcy5lbCwiaGVpZ2h0OiAiK2UrIjsiLCEwKSksdGhpcyk6dGhpcy5zZWxlY3Rvcj09PWRvY3VtZW50P2k6dGhpcy5lbC5jbGllbnRIZWlnaHQtYX0sYS5wcm90b3R5cGUuZWFjaD1mdW5jdGlvbihlKXt2YXIgdD0hMTtyZXR1cm4gdm9pZCAwPT09dGhpcy5lbC5sZW5ndGgmJih0aGlzLmVsPVt0aGlzLmVsXSx0PSEwKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHRoaXMuZWwsZSksdCYmKHRoaXMuZWw9dGhpcy5lbFswXSksdGhpc30sYS5wcm90b3R5cGUuaXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWwubGVuZ3RoPyh0aGlzLmVsWzBdLm1hdGNoZXN8fHRoaXMuZWxbMF0ubWF0Y2hlc1NlbGVjdG9yfHx0aGlzLmVsWzBdLm1zTWF0Y2hlc1NlbGVjdG9yfHx0aGlzLmVsWzBdLm1vek1hdGNoZXNTZWxlY3Rvcnx8dGhpcy5lbFswXS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHRoaXMuZWxbMF0ub01hdGNoZXNTZWxlY3RvcikuY2FsbCh0aGlzLmVsWzBdLGUpOih0aGlzLmVsLm1hdGNoZXN8fHRoaXMuZWwubWF0Y2hlc1NlbGVjdG9yfHx0aGlzLmVsLm1zTWF0Y2hlc1NlbGVjdG9yfHx0aGlzLmVsLm1vek1hdGNoZXNTZWxlY3Rvcnx8dGhpcy5lbC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHRoaXMuZWwub01hdGNoZXNTZWxlY3RvcikuY2FsbCh0aGlzLmVsLGUpfSxhLnByb3RvdHlwZS5maWx0ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWw9QXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5zZWxlY3RvciksZSksdGhpc30sYS5wcm90b3R5cGUuYW5pbWF0ZT1mdW5jdGlvbihlLHQpe3ZhciBvLG4scixpLHM9dGhpczt0aGlzLmVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3Rvcik7Zm9yKG8gaW4gZSluPW8saT1yPXZvaWQgMCxyPXBhcnNlSW50KGVbbl0pLGk9ZVtuXS5zcGxpdChwYXJzZUludChlW25dKSlbMV0/ZVtuXS5zcGxpdChwYXJzZUludChlW25dKSlbMV06InB4IixyPXMuY3JlYXRlS2V5RnJhbWVBbmltYXRpb24obixzLmVsLHIsaSksKGk9ZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3Qtc3R5bGUiKSk/aS5pbm5lckhUTUw9YS5nZXRJbm5lckh0bWxDb250ZW50KGkuaW5uZXJIVE1MK3IpOigoaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5pZD0ib25ldHJ1c3QtbGVnYWN5LXN0eWxlIixpLnR5cGU9InRleHQvY3NzIixpLmlubmVySFRNTD1hLmdldElubmVySHRtbENvbnRlbnQociksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpKSkscy5hZGRXZWJLaXRBbmltYXRpb24obix0KTtyZXR1cm4gdGhpc30sYS5wcm90b3R5cGUuc2Nyb2xsVG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWwuc2Nyb2xsVG9wfSxhLnByb3RvdHlwZS5hcHBlbmRIdG1sRWxlbWVudD1mdW5jdGlvbihvKXt2YXIgbixyLGU7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0aGlzLnNlbGVjdG9yP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3RvcikuYXBwZW5kQ2hpbGQobmV3IGEobywiY2UiKS5lbCk6dGhpcy51c2VFbD8obj1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksKHI9ISghby5pbmNsdWRlcygiPHRoIikmJiFvLmluY2x1ZGVzKCI8dGQiKSkpJiYoZT1vLnNwbGl0KCIgIilbMF0uc3BsaXQoIjwiKVsxXSxuLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZSkpLG4uZmlyc3RDaGlsZC5pbm5lckhUTUw9YS5nZXRJbm5lckh0bWxDb250ZW50KG8pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHRoaXMuZWwsZnVuY3Rpb24oZSx0KXtyP2UuYXBwZW5kQ2hpbGQobi5maXJzdENoaWxkKTplLmFwcGVuZENoaWxkKG5ldyBhKG8sImNlIikuZWwpfSkpOnRoaXMuc2VsZWN0b3IuYXBwZW5kQ2hpbGQobmV3IGEobywiY2UiKS5lbCksdGhpc30sYS5wcm90b3R5cGUuY3JlYXRlS2V5RnJhbWVBbmltYXRpb249ZnVuY3Rpb24oZSx0LG8sbil7cmV0dXJuIlxuICAgICAgICBAa2V5ZnJhbWVzIHNsaWRlLSIrKCJ0b3AiPT09ZT8idXAiOiJkb3duIikrIi1jdXN0b20ge1xuICAgICAgICAgICAgMCUge1xuICAgICAgICAgICAgICAgICIrKCJ0b3AiPT09ZT8idG9wIjoiYm90dG9tIikrIjogIisoInRvcCI9PT1lP3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wOndpbmRvdy5pbm5lckhlaWdodCkrInB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgICAgICAiKygidG9wIj09PWU/InRvcCI6ImJvdHRvbSIpKyI6ICIrKG8rbikrIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGUtIisoInRvcCI9PT1lPyJ1cCI6ImRvd24iKSsiLWN1c3RvbSB7XG4gICAgICAgICAgICAwJSB7XG4gICAgICAgICAgICAgICAgIisoInRvcCI9PT1lPyJ0b3AiOiJib3R0b20iKSsiOiAiKygidG9wIj09PWU/dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A6d2luZG93LmlubmVySGVpZ2h0KSsicHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDEwMCUge1xuICAgICAgICAgICAgICAgICIrKCJ0b3AiPT09ZT8idG9wIjoiYm90dG9tIikrIjogIisobytuKSsiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEAtbW96LWtleWZyYW1lcyBzbGlkZS0iKygidG9wIj09PWU/InVwIjoiZG93biIpKyItY3VzdG9tIHtcbiAgICAgICAgICAgIDAlIHtcbiAgICAgICAgICAgICAgICAiKygidG9wIj09PWU/InRvcCI6ImJvdHRvbSIpKyI6ICIrKCJ0b3AiPT09ZT90LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDp3aW5kb3cuaW5uZXJIZWlnaHQpKyJweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICAgICAgIisoInRvcCI9PT1lPyJ0b3AiOiJib3R0b20iKSsiOiAiKyhvK24pKyI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgIn0sYS5wcm90b3R5cGUuYWRkV2ViS2l0QW5pbWF0aW9uPWZ1bmN0aW9uKGUsdCl7KGEuYnJvd3NlcigpLnR5cGU9YS5icm93c2VyKCkudmVyc2lvbjw9OCk/ZCh0aGlzLmVsLCJ0b3AiPT09ZT8iLXdlYmtpdC1hbmltYXRpb246IHNsaWRlLXVwLWN1c3RvbSAiOiItd2Via2l0LWFuaW1hdGlvbjogc2xpZGUtZG93bi1jdXN0b20gIit0KyJtcyBlYXNlLW91dCBmb3J3YXJkczsiKTpkKHRoaXMuZWwsIlxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiAiKygidG9wIj09PWU/InNsaWRlLXVwLWN1c3RvbSI6InNsaWRlLWRvd24tY3VzdG9tIikrIjtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246ICIrdCsibXM7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgICAgICAgICAiLCEwKX07dmFyIFM9YTtmdW5jdGlvbiBhKGUsdCl7c3dpdGNoKHZvaWQgMD09PXQmJih0PSIiKSx0aGlzLnNlbGVjdG9yPWUsdGhpcy51c2VFbD0hMSx0KXtjYXNlImNlIjp2YXIgbz1hLmJyb3dzZXIoKS50eXBlLnRvTG93ZXJDYXNlKCksbj1hLmJyb3dzZXIoKS52ZXJzaW9uO248MTAmJiJzYWZhcmkiPT09b3x8ImNocm9tZSI9PT1vJiZuPD00NHx8bjw9NDAmJiJmaXJlZm94Ij09PW8/KChuPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpKS5ib2R5LmlubmVySFRNTD1hLmdldElubmVySHRtbENvbnRlbnQoZSksdGhpcy5lbD1uLmJvZHkuY2hpbGRyZW5bMF0pOihvPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGEuZ2V0SW5uZXJIdG1sQ29udGVudChlKSksdGhpcy5lbD1vLmZpcnN0Q2hpbGQpLHRoaXMubGVuZ3RoPTE7YnJlYWs7Y2FzZSIiOnRoaXMuZWw9ZT09PWRvY3VtZW50fHxlPT09d2luZG93P2RvY3VtZW50LmRvY3VtZW50RWxlbWVudDoic3RyaW5nIiE9dHlwZW9mIGU/ZTpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGUpLHRoaXMubGVuZ3RoPWU9PT1kb2N1bWVudHx8ZT09PXdpbmRvd3x8InN0cmluZyIhPXR5cGVvZiBlPzE6dGhpcy5lbC5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp0aGlzLmxlbmd0aD0wfX1mdW5jdGlvbiBtKGUsdCl7cmV0dXJuIG5ldyBTKGUsdD12b2lkIDA9PT10PyIiOnQpfXZhciBWdD17fTtmdW5jdGlvbiBCdCgpe31CdC5wcm90b3R5cGUuY29udmVydEtleVZhbHVlTG93ZXJDYXNlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiBlKWVbdC50b0xvd2VyQ2FzZSgpXT9lW3QudG9Mb3dlckNhc2UoKV09ZVt0XS50b0xvd2VyQ2FzZSgpOihlW3RdJiYoZVt0LnRvTG93ZXJDYXNlKCldPWVbdF0udG9Mb3dlckNhc2UoKSksZGVsZXRlIGVbdF0pO3JldHVybiBlfSxCdC5wcm90b3R5cGUuYXJyVG9TdHI9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9TdHJpbmcoKX0sQnQucHJvdG90eXBlLnN0clRvQXJyPWZ1bmN0aW9uKGUpe3JldHVybiBlP2Uuc3BsaXQoIiwiKTpbXX0sQnQucHJvdG90eXBlLnN0clRvTWFwPWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiBuZXcgTWFwO2Zvcih2YXIgdD1uZXcgTWFwLG89MCxuPXRoaXMuc3RyVG9BcnIoZSk7bzxuLmxlbmd0aDtvKyspe3ZhciByPW5bb10uc3BsaXQoIjoiKTt0LnNldChyWzBdLCIxIj09PXJbMV0pfXJldHVybiB0fSxCdC5wcm90b3R5cGUuZW1wdHk9ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSk7aWYodClmb3IoO3QuaGFzQ2hpbGROb2RlcygpOyl0LnJlbW92ZUNoaWxkKHQubGFzdENoaWxkKX0sQnQucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oZSl7ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChlKTtlJiZkKGUsImRpc3BsYXk6IGJsb2NrOyIsITApfSxCdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGUpe2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSk7ZSYmZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9LEJ0LnByb3RvdHlwZS5hcHBlbmRUbz1mdW5jdGlvbihlLHQpe3ZhciBvLGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSk7ZSYmKChvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KHQpLGUuYXBwZW5kQ2hpbGQobykpfSxCdC5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rPTEpaWYoZVtvXS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk9PT10LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSlyZXR1cm4hMDtyZXR1cm4hMX0sQnQucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rPTEpaWYoZVtvXT09PXQpcmV0dXJuIG87cmV0dXJuLTF9LEJ0LnByb3RvdHlwZS5lbmRzV2l0aD1mdW5jdGlvbihlLHQpe3JldHVybi0xIT09ZS5pbmRleE9mKHQsZS5sZW5ndGgtdC5sZW5ndGgpfSxCdC5wcm90b3R5cGUuZ2VuZXJhdGVVVUlEPWZ1bmN0aW9uKCl7dmFyIG89KG5ldyBEYXRlKS5nZXRUaW1lKCk7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBwZXJmb3JtYW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIHBlcmZvcm1hbmNlLm5vdyYmKG8rPXBlcmZvcm1hbmNlLm5vdygpKSwieHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csZnVuY3Rpb24oZSl7dmFyIHQ9KG8rMTYqTWF0aC5yYW5kb20oKSklMTZ8MDtyZXR1cm4gbz1NYXRoLmZsb29yKG8vMTYpLCgieCI9PT1lP3Q6MyZ0fDgpLnRvU3RyaW5nKDE2KX0pfSxCdC5wcm90b3R5cGUuZ2V0QWN0aXZlSWRBcnJheT1mdW5jdGlvbihlKXtyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuInRydWUiPT09ZS5zcGxpdCgiOiIpWzFdfSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlLnNwbGl0KCI6IilbMF0pfSl9LEJ0LnByb3RvdHlwZS5kaXN0aW5jdEFycmF5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBBcnJheTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuaW5kZXhPZihlKTwwJiZ0LnB1c2goZSl9KSx0fSxCdC5wcm90b3R5cGUuZmluZEluZGV4PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvPS0xLG49MDtuPGUubGVuZ3RoO24rKylpZih2b2lkIDAhPT1lW25dJiZ0KGVbbl0sbikpe289bjticmVha31yZXR1cm4gb30sQnQucHJvdG90eXBlLmdldFVSTD1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7cmV0dXJuIHQuaHJlZj1lLHR9LEJ0LnByb3RvdHlwZS5yZW1vdmVVUkxQcmVmaXhlcz1mdW5jdGlvbihlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyheXHcrOnxeKVwvXC8vLCIiKS5yZXBsYWNlKCJ3d3cuIiwiIil9LEJ0LnByb3RvdHlwZS5yZW1vdmVDaGlsZD1mdW5jdGlvbihlKXtpZihlKWlmKGUgaW5zdGFuY2VvZiBOb2RlTGlzdHx8ZSBpbnN0YW5jZW9mIEFycmF5KWZvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0ucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChlW3RdKTtlbHNlIGUucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChlKX0sQnQucHJvdG90eXBlLmdldFJlbGF0aXZlVVJMPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gdm9pZCAwPT09byYmKG89ITEpLHQ/KHQ9Ii4vIitlLnJlcGxhY2UoL14oaHR0cHxodHRwcyk6XC9cLy8sIiIpLnNwbGl0KCIvIikuc2xpY2UoMSkuam9pbigiLyIpLnJlcGxhY2UoIi5qc29uIiwiIiksbz90OnQrIi5qcyIpOmV9LEJ0LnByb3RvdHlwZS5zZXRDaGVja2VkQXR0cmlidXRlPWZ1bmN0aW9uKGUsdCxvKXsodD1lP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk6dCkmJihvP3Quc2V0QXR0cmlidXRlKCJjaGVja2VkIiwiIik6dC5yZW1vdmVBdHRyaWJ1dGUoImNoZWNrZWQiKSx0LmNoZWNrZWQ9byl9LEJ0LnByb3RvdHlwZS5zZXRBcmlhQ2hlY2tlZEF0dHJpYnV0ZT1mdW5jdGlvbihlLHQsbyl7KHQ9ZT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGUpOnQpJiZ0LnNldEF0dHJpYnV0ZSgiYXJpYS1jaGVja2VkIixvKX0sQnQucHJvdG90eXBlLnNldERpc2FibGVkQXR0cmlidXRlPWZ1bmN0aW9uKGUsdCxvKXsodD1lP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk6dCkmJihvP3Quc2V0QXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpOnQucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIikpfSxCdC5wcm90b3R5cGUuc2V0SHRtbEF0dHJpYnV0ZXM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG8gaW4gdCllLnNldEF0dHJpYnV0ZShvLHRbb10pLGVbb109dFtvXX0sQnQucHJvdG90eXBlLmNhbGN1bGF0ZUNvb2tpZUxpZmVzcGFuPWZ1bmN0aW9uKGUpe3JldHVybiBlPDA/Ty5MaWZlc3BhblR5cGVUZXh0OihlPU1hdGguZmxvb3IoZS9oZS5tYXhTZWNUb0RheXMpKTxoZS5taW5EYXlzPyI8IDEgIitPLlBDZW50ZXJWZW5kb3JMaXN0TGlmZXNwYW5EYXk6ZTxoZS5tYXhEYXlzP2UrIiAiK08uUENlbnRlclZlbmRvckxpc3RMaWZlc3BhbkRheXM6MT09PShlPU1hdGguZmxvb3IoZS9oZS5tYXhEYXlzKSk/ZSsiICIrTy5QQ2VudGVyVmVuZG9yTGlzdExpZmVzcGFuTW9udGg6ZSsiICIrTy5QQ2VudGVyVmVuZG9yTGlzdExpZmVzcGFuTW9udGhzfSxCdC5wcm90b3R5cGUuaW5zZXJ0RWxlbWVudD1mdW5jdGlvbihlLHQsbyl7ZSYmdCYmZS5pbnNlcnRBZGphY2VudEVsZW1lbnQobyx0KX0sQnQucHJvdG90eXBlLmN1c3RvbVF1ZXJ5U2VsZWN0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LnF1ZXJ5U2VsZWN0b3IoZSl9fSxCdC5wcm90b3R5cGUuY3VzdG9tUXVlcnlTZWxlY3RvckFsbD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQucXVlcnlTZWxlY3RvckFsbChlKX19O3ZhciBMLHY9bmV3IEJ0LEd0PSh4dC5wcm90b3R5cGUucmVtb3ZlQWxlcnRCb3g9ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5nZXRDb29raWUoay5BTEVSVF9CT1hfQ0xPU0VEKSYmdGhpcy5zZXRDb29raWUoay5BTEVSVF9CT1hfQ0xPU0VELCIiLDAsITApfSx4dC5wcm90b3R5cGUucmVtb3ZlSWFiMT1mdW5jdGlvbigpe251bGwhPT10aGlzLmdldENvb2tpZShjZS5JYWIxUHViKSYmdGhpcy5zZXRDb29raWUoY2UuSWFiMVB1YiwiIiwwLCEwKX0seHQucHJvdG90eXBlLnJlbW92ZUlhYjI9ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5nZXRDb29raWUoY2UuSWFiMlB1YikmJnRoaXMuc2V0Q29va2llKGNlLklhYjJQdWIsIiIsMCwhMCl9LHh0LnByb3RvdHlwZS5yZW1vdmVBZGR0bFN0cj1mdW5jdGlvbigpe251bGwhPT10aGlzLmdldENvb2tpZShrLkFERElUSU9OQUxfQ09OU0VOVF9TVFJJTkcpJiZ0aGlzLnNldENvb2tpZShrLkFERElUSU9OQUxfQ09OU0VOVF9TVFJJTkcsIiIsMCwhMCl9LHh0LnByb3RvdHlwZS5yZW1vdmVWYXJpYW50PWZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuZ2V0Q29va2llKGsuU0VMRUNURURfVkFSSUFOVCkmJnRoaXMuc2V0Q29va2llKGsuU0VMRUNURURfVkFSSUFOVCwiIiwwLCEwKX0seHQucHJvdG90eXBlLnJlbW92ZU9wdGFub249ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5nZXRDb29raWUoay5PUFRBTk9OX0NPTlNFTlQpJiZ0aGlzLnNldENvb2tpZShrLk9QVEFOT05fQ09OU0VOVCwiIiwwLCEwKX0seHQucHJvdG90eXBlLnJlbW92ZVByZXZpZXc9ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5nZXRDb29raWUoay5PVF9QUkVWSUVXKSYmdGhpcy5zZXRDb29raWUoay5PVF9QUkVWSUVXLCIiLDAsITApfSx4dC5wcm90b3R5cGUucmVtb3ZlQWxsQ29va2llcz1mdW5jdGlvbigpe3RoaXMucmVtb3ZlSWFiMSgpLHRoaXMucmVtb3ZlSWFiMigpLHRoaXMucmVtb3ZlUHJldmlldygpLHRoaXMucmVtb3ZlT3B0YW5vbigpLHRoaXMucmVtb3ZlVmFyaWFudCgpLHRoaXMucmVtb3ZlQWxlcnRCb3goKSx0aGlzLnJlbW92ZUFkZHRsU3RyKCksdGhpcy5yZW1vdmVBbXBTdG9yYWdlKCl9LHh0LnByb3RvdHlwZS53cml0ZUNvb2tpZVBhcmFtPWZ1bmN0aW9uKGUsdCxvLG4pe3ZhciByLGkscyxhPXt9LGw9dGhpcy5nZXRDb29raWUoZSk7aWYobClmb3IoaT1sLnNwbGl0KCImIikscj0wO3I8aS5sZW5ndGg7cis9MSlzPWlbcl0uc3BsaXQoIj0iKSxhW2RlY29kZVVSSUNvbXBvbmVudChzWzBdKV09c1swXT09PXQmJm4/ZGVjb2RlVVJJQ29tcG9uZW50KHNbMV0pOmRlY29kZVVSSUNvbXBvbmVudChzWzFdKS5yZXBsYWNlKC9cKy9nLCIgIik7YVt0XT1vO2w9Yi5tb2R1bGVJbml0aWFsaXplci5UZW5hbnRGZWF0dXJlcztsJiZsLkNvb2tpZVYyQ29va2llRGF0ZVRpbWVJbklTTz9hLmRhdGVzdGFtcD0obmV3IERhdGUpLnRvSVNPU3RyaW5nKCk6YS5kYXRlc3RhbXA9KG5ldyBEYXRlKS50b1N0cmluZygpLGEudmVyc2lvbj1ELm90U0RLVmVyc2lvbixvPXRoaXMucGFyYW0oYSksdGhpcy5zZXRDb29raWUoZSxvLE8uUmVjb25zZW50RnJlcXVlbmN5RGF5cyl9LHh0LnByb3RvdHlwZS5yZWFkQ29va2llUGFyYW09ZnVuY3Rpb24oZSx0LG8pe3ZhciBuLHIsaSxzLGU9dGhpcy5nZXRDb29raWUoZSk7aWYoZSl7Zm9yKHI9e30saT1lLnNwbGl0KCImIiksbj0wO248aS5sZW5ndGg7bis9MSlzPWlbbl0uc3BsaXQoIj0iKSxyW2RlY29kZVVSSUNvbXBvbmVudChzWzBdKV09bz9kZWNvZGVVUklDb21wb25lbnQoc1sxXSk6ZGVjb2RlVVJJQ29tcG9uZW50KHNbMV0pLnJlcGxhY2UoL1wrL2csIiAiKTtyZXR1cm4gdCYmclt0XT9yW3RdOnQmJiFyW3RdPyIiOnJ9cmV0dXJuIiJ9LHh0LnByb3RvdHlwZS5nZXRDb29raWU9ZnVuY3Rpb24oZSl7dmFyIHQ9bnVsbD09KHQ9Yik/dm9pZCAwOnQubW9kdWxlSW5pdGlhbGl6ZXI7aWYodCYmdC5Nb2JpbGVTREspe3ZhciBvPWUrdGhpcy5nZXRDb29raWVOYW1lU3VmZml4KGUpLG89dGhpcy5nZXRDb29raWVEYXRhT2JqKG8pO2lmKG8pcmV0dXJuIG8udmFsdWU7aWYoIXQuU3ViRG9tYWluRW5hYmxlZCl7bz10aGlzLmdldENvb2tpZURhdGFPYmooZSk7aWYobylyZXR1cm4gby52YWx1ZX19ZWxzZXtpZihELmlzQU1QJiYoRC5hbXBEYXRhPUpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oRC5kYXRhRG9tYWluSWQpKXx8e30sRC5hbXBEYXRhKSlyZXR1cm4gRC5hbXBEYXRhW2VdfHxudWxsO2Zvcih2YXIgbj0iIitlK3RoaXMuZ2V0Q29va2llTmFtZVN1ZmZpeChlKSsiPSIscj0wLGk9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iik7cjxpLmxlbmd0aDtyKyspe3ZhciBzPWlbcl0udHJpbSgpO2lmKDA9PT1zLmluZGV4T2YobikpcmV0dXJuIHMuc3Vic3RyaW5nKG4ubGVuZ3RoKX19cmV0dXJuIG51bGx9LHh0LnByb3RvdHlwZS5zZXRBbXBTdG9yYWdlPWZ1bmN0aW9uKCl7d2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKEQuZGF0YURvbWFpbklkLEpTT04uc3RyaW5naWZ5KEQuYW1wRGF0YSkpfSx4dC5wcm90b3R5cGUucmVtb3ZlQW1wU3RvcmFnZT1mdW5jdGlvbigpe3dpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShELmRhdGFEb21haW5JZCl9LHh0LnByb3RvdHlwZS5oYW5kbGVBbXA9ZnVuY3Rpb24oZSx0KXsiIiE9PXQ/RC5hbXBEYXRhW2VdPXQ6ZGVsZXRlIEQuYW1wRGF0YVtlXSwwPT09T2JqZWN0LmtleXMoRC5hbXBEYXRhKS5sZW5ndGg/dGhpcy5yZW1vdmVBbXBTdG9yYWdlKCk6dGhpcy5zZXRBbXBTdG9yYWdlKCl9LHh0LnByb3RvdHlwZS5nZXRFeHBpcnlWYWx1ZT1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSExKSx2b2lkIDA9PT1vJiYobz1uZXcgRGF0ZSksZT8oby5zZXRUaW1lKG8uZ2V0VGltZSgpKzI0KmUqNjAqNjAqMWUzKSwiOyBleHBpcmVzPSIrby50b1VUQ1N0cmluZygpKTp0PyI7IGV4cGlyZXM9IituZXcgRGF0ZSgwKS50b1VUQ1N0cmluZygpOiIifSx4dC5wcm90b3R5cGUuZ2V0RG9tYWluVXJsPWZ1bmN0aW9uKCl7dmFyIGUsdD1iLm1vZHVsZUluaXRpYWxpemVyO3JldHVybiB0JiZ0LlJvb3REb21haW5Db25zZW50RW5hYmxlZD9lPXQuUm9vdERvbWFpblVybDp0JiZ0LkRvbWFpbiYmKGU9dC5Eb21haW4pLGV9LHh0LnByb3RvdHlwZS5nZXRDb29raWVOYW1lU3VmZml4PWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBlIT09ay5PVF9QUkVWSUVXJiYobnVsbD09KHQ9ZT1iLm1vZHVsZUluaXRpYWxpemVyKT92b2lkIDA6dC5TY3JpcHRUeXBlKT09PVVlLlBST0RVQ1RJT04mJmUuU3ViRG9tYWluRW5hYmxlZCYmZS5Eb21haW5IYXNoVmFsdWU/Il8iK2UuRG9tYWluSGFzaFZhbHVlOiIifSx4dC5wcm90b3R5cGUuc2V0Q29va2llPWZ1bmN0aW9uKGUsdCxvLG4scil7dmFyIGkscyxhLGwsYyxkO3ZvaWQgMD09PW4mJihuPSExKSx2b2lkIDA9PT1yJiYocj1uZXcgRGF0ZSksRC5pc0FNUD90aGlzLmhhbmRsZUFtcChlLHQpOihvPXRoaXMuZ2V0RXhwaXJ5VmFsdWUobyxuLHIpLG49Yi5tb2R1bGVJbml0aWFsaXplcixzPSIiLChpPShpPXRoaXMuZ2V0RG9tYWluVXJsKCkpP2kuc3BsaXQoIi8iKTpbXSkubGVuZ3RoPD0xP2lbMV09IiI6cz1pLnNsaWNlKDEpLmpvaW4oIi8iKSxhPSJTYW1lc2l0ZT1MYXgiLG4uQ29va2llU2FtZVNpdGVOb25lRW5hYmxlZCYmKGE9IlNhbWVzaXRlPU5vbmU7IFNlY3VyZSIsbi5QYXJ0aXRpb25lZENvb2tpZUVuYWJsZWQpJiYoYSs9IjsgUGFydGl0aW9uZWQiKSxsPWIubW9kdWxlSW5pdGlhbGl6ZXIuVGVuYW50RmVhdHVyZXMsYz1uLlNjcmlwdFR5cGU9PT1VZS5URVNUfHxuLlNjcmlwdFR5cGU9PT1VZS5MT0NBTF9URVNULGU9ZSt0aGlzLmdldENvb2tpZU5hbWVTdWZmaXgoZSksRC5pc1ByZXZpZXd8fCFjJiYhbi5Nb2JpbGVTREs/KGQ9dCtvKyI7IHBhdGg9LyIrcysiOyBkb21haW49LiIraVswXSsiOyAiK2EsbCYmbC5Db29raWVWMkNvb2tpZVByaW9yaXR5JiYoZCs9IjtQcmlvcml0eT1IaWdoOyIpLGRvY3VtZW50LmNvb2tpZT1lKyI9IitkKTooZD10K28rIjsgcGF0aD0vOyAiK2EsbCYmbC5Db29raWVWMkNvb2tpZVByaW9yaXR5JiYoZCs9IjtQcmlvcml0eT1IaWdoOyIpLG4uTW9iaWxlU0RLP3RoaXMuc2V0Q29va2llRGF0YU9iaih7bmFtZTplLHZhbHVlOnQsZXhwaXJlczpvLGRhdGU6cixkb21haW5BbmRQYXRoOml9KTpkb2N1bWVudC5jb29raWU9ZSsiPSIrZCkpfSx4dC5wcm90b3R5cGUuc2V0Q29va2llRGF0YU9iaj1mdW5jdGlvbih0KXt2YXIgZTt0JiYoRC5vdENvb2tpZURhdGF8fCh3aW5kb3cuT25lVHJ1c3QmJndpbmRvdy5PbmVUcnVzdC5vdENvb2tpZURhdGE/RC5vdENvb2tpZURhdGE9d2luZG93Lk9uZVRydXN0Lm90Q29va2llRGF0YTpELm90Q29va2llRGF0YT1bXSksLTE8KGU9di5maW5kSW5kZXgoRC5vdENvb2tpZURhdGEsZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZT09PXQubmFtZX0pKT9ELm90Q29va2llRGF0YVtlXT10OkQub3RDb29raWVEYXRhLnB1c2godCkpfSx4dC5wcm90b3R5cGUuZ2V0Q29va2llRGF0YU9iaj1mdW5jdGlvbih0KXtELm90Q29va2llRGF0YSYmMCE9PUQub3RDb29raWVEYXRhLmxlbmd0aHx8KHdpbmRvdy5PbmVUcnVzdCYmd2luZG93Lk9uZVRydXN0Lm90Q29va2llRGF0YT9ELm90Q29va2llRGF0YT13aW5kb3cuT25lVHJ1c3Qub3RDb29raWVEYXRhOkQub3RDb29raWVEYXRhPVtdKTt2YXIgZT12LmZpbmRJbmRleChELm90Q29va2llRGF0YSxmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09dH0pO2lmKDA8PWUpe3ZhciBvPUQub3RDb29raWVEYXRhW2VdO2lmKG8uZGF0ZSlyZXR1cm4gbmV3IERhdGUoby5kYXRlKTxuZXcgRGF0ZT8oRC5vdENvb2tpZURhdGEuc3BsaWNlKGUsMSksbnVsbCk6b31yZXR1cm4gbnVsbH0seHQucHJvdG90eXBlLmdldENvb2tpZXNDaHVuaz1mdW5jdGlvbihlLHQpe3ZhciBvPXt9O2lmKGUubGVuZ3RoPD00ZTMpb1t0XT1lO2Vsc2UgZm9yKHZhciBuPTAscj0wO248ZS5sZW5ndGg7KXt2YXIgaT1lLnNsaWNlKG4sbis0ZTMpOzA9PT1yP29bdF09aTpvW3QrIl8iK3JdPWksbis9NGUzLHIrK31yZXR1cm4gb30seHQucHJvdG90eXBlLmdldE1lcmdlZENvb2tpZUJ5TmFtZT1mdW5jdGlvbihlKXt2YXIgdD0iIixvPXRoaXMuZ2V0Q29va2llKGUpO2lmKCFvKXJldHVybiIiO3QrPW87Zm9yKHZhciBuPTE7Oyl7dmFyIHI9dGhpcy5nZXRDb29raWUoZSsiXyIrbik7aWYoIXIpYnJlYWs7dCs9cixuKyt9cmV0dXJuIHR9LHh0LnByb3RvdHlwZS5wYXJhbT1mdW5jdGlvbihlKXt2YXIgdCxvPSIiO2Zvcih0IGluIGUpZS5oYXNPd25Qcm9wZXJ0eSh0KSYmKCIiIT09byYmKG8rPSImIiksbys9dCsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGVbdF0pLnJlcGxhY2UoLyUyMC9nLCIrIikpO3JldHVybiBvfSx4dCk7ZnVuY3Rpb24geHQoKXt9dmFyIFQsRSxIdD17UF9Db250ZW50OiIjb3QtcGMtY29udGVudCIsUF9Mb2dvOiIub3QtcGMtbG9nbyIsUF9UaXRsZToiI290LXBjLXRpdGxlIixQX1RpdGxlX01vYmlsZToiI290LXBjLXRpdGxlLW1vYmlsZSIsUF9Qb2xpY3lfVHh0OiIjb3QtcGMtZGVzYyIsUF9WZW5kb3JfVGl0bGVfRWxtOiIjb3QtbHN0LXRpdGxlIixQX1ZlbmRvcl9UaXRsZToiI290LWxzdC10aXRsZSBoMyIsUF9NYW5hZ2VfQ29va2llc19UeHQ6IiNvdC1jYXRlZ29yeS10aXRsZSIsUF9MYWJlbF9UeHQ6Ii5vdC1sYWJlbC10eHQiLFBfQ2F0ZWdvcnlfSGVhZGVyOiIub3QtY2F0LWhlYWRlciIsUF9DYXRlZ29yeV9HcnA6Ii5vdC1jYXQtZ3JwIixQX0NhdGVnb3J5X0l0ZW06Ii5vdC1jYXQtaXRlbSIsUF9WZW5kb3JfTGlzdDoiI290LXBjLWxzdCIsUF9WZW5kb3JfQ29udGVudDoiI290LWxzdC1jbnQiLFBfVmVuZG9yX0NvbnRhaW5lcjoiI290LXZlbi1sc3QiLFBfVmVuX0J4OiJvdC12ZW4tYm94IixQX1Zlbl9OYW1lOiIub3QtdmVuLW5hbWUiLFBfVmVuX0xpbms6Ii5vdC12ZW4tbGluayIsUF9WZW5fTGVnX0NsYWltOiIub3QtdmVuLWxlZ2NsYWltLWxpbmsiLFBfVmVuX0N0Z2w6Im90LXZlbi1jdGdsIixQX1Zlbl9MdGdsOiJvdC12ZW4tbGl0Z2wiLFBfVmVuX0x0Z2xfT25seToib3QtdmVuLWxpdGdsLW9ubHkiLFBfVmVuX09wdHM6Ii5vdC12ZW4tb3B0cyIsUF9UcmlhbmdsZToiI290LWFuY2hvciIsUF9GbHRyX01vZGFsOiIjb3QtZmx0ci1tb2RhbCIsUF9GbHRyX09wdGlvbnM6Ii5vdC1mbHRyLW9wdHMiLFBfRmx0cl9PcHRpb246Ii5vdC1mbHRyLW9wdCIsUF9TZWxlY3RfQ250cjoiI290LXNlbC1ibGsiLFBfSG9zdF9DbnRyOiIjb3QtaG9zdC1sc3QiLFBfSG9zdF9IZHI6Ii5vdC1ob3N0LWhkciIsUF9Ib3N0X0Rlc2M6Ii5vdC1ob3N0LWRlc2MiLFBfTGlfSGRyOiIub3QtcGxpLWhkciIsUF9MaV9UaXRsZToiLm90LWxpLXRpdGxlIixQX1NlbF9BbGxfVmVuZG9yX0NvbnNlbnRfSGFuZGxlcjoiI3NlbGVjdC1hbGwtdmVuZG9yLWxlZy1oYW5kbGVyIixQX1NlbF9BbGxfVmVuZG9yX0xlZ19IYW5kbGVyOiIjc2VsZWN0LWFsbC12ZW5kb3ItZ3JvdXBzLWhhbmRsZXIiLFBfU2VsX0FsbF9Ib3N0X0hhbmRsZXI6IiNzZWxlY3QtYWxsLWhvc3RzLWdyb3Vwcy1oYW5kbGVyIixQX0hvc3RfVGl0bGU6Ii5vdC1ob3N0LW5hbWUiLFBfTGVnX1NlbGVjdF9BbGw6Ii5vdC1zZWwtYWxsLWhkciIsUF9MZWdfSGVhZGVyOiIub3QtbGktaGRyIixQX0FjY19IZWFkZXI6Ii5vdC1hY2MtaGRyIixQX0Nuc250X0hlYWRlcjoiLm90LWNvbnNlbnQtaGRyIixQX1RnbF9DbnRyOiIub3QtdGdsLWNudHIiLFBfQ0J4X0NudHI6Ii5vdC1jaGtib3giLFBfU2VsX0FsbF9Ib3N0X0VsOiJvdC1zZWxhbGwtaG9zdGNudHIiLFBfU2VsX0FsbF9WZW5kb3JfQ29uc2VudF9FbDoib3Qtc2VsYWxsLXZlbmNudHIiLFBfU2VsX0FsbF9WZW5kb3JfTGVnX0VsOiJvdC1zZWxhbGwtbGljbnRyIixQX2NfTmFtZToib3QtYy1uYW1lIixQX2NfSG9zdDoib3QtYy1ob3N0IixQX2NfRHVyYXRpb246Im90LWMtZHVyYXRpb24iLFBfY19UeXBlOiJvdC1jLXR5cGUiLFBfY19DYXRlZ29yeToib3QtYy1jYXRlZ29yeSIsUF9jX0Rlc2M6Im90LWMtZGVzY3JpcHRpb24iLFBfSG9zdF9WaWV3X0Nvb2tpZXM6Ii5vdC1ob3N0LWV4cGFuZCIsUF9Ib3N0X09wdDoiLm90LWhvc3Qtb3B0IixQX0hvc3RfSW5mbzoiLm90LWhvc3QtaW5mbyIsUF9BcnJ3X0NudHI6Ii5vdC1hcnctY250ciIsUF9BY2NfVHh0OiIub3QtYWNjLXR4dCIsUF9WZW5kb3JfQ2hlY2tCeDoib3QtdmVuLWNoa2JveCIsUF9WZW5kb3JfTGVnQ2hlY2tCeDoib3QtdmVuLWxlZy1jaGtib3giLFBfSG9zdF9VSToib3QtaG9zdHMtdWkiLFBfSG9zdF9DbnQ6Im90LWhvc3QtY250IixQX0hvc3RfQng6Im90LWhvc3QtYm94IixQX1Zlbl9EZXRzOiIub3QtdmVuLWRldHMiLFBfVmVuX0Rpc2M6Ii5vdC12ZW4tZGlzYyIsUF9HdmVuX0xpc3Q6IiNvdC1nbi12ZW5sc3QiLFBfQ2xvc2VfQnRuOiIub3QtY2xvc2UtaWNvbiIsUF9WZW5fTHN0X0NudHI6Ii5vdC12bHN0LWNudHIiLFBfSG9zdF9Mc3RfY250cjoiLm90LWhsc3QtY250ciIsUF9TdWJfR3JwX0NudHI6Ii5vdC1zdWJncnAtY250ciIsUF9TdWJncnBfRGVzYzoiLm90LXN1YmdycC1kZXNjIixQX1N1YmdwX3VsOiIub3Qtc3ViZ3JwcyIsUF9TdWJncnBfbGk6Ii5vdC1zdWJncnAiLFBfU3ViZ3JwX1RnbF9DbnRyOiIub3Qtc3ViZ3JwLXRnbCIsUF9HcnBfQ29udGFpbmVyOiIub3QtZ3Jwcy1jbnRyIixQX1ByaXZhY3lfVHh0OiIjb3QtcHZjeS10eHQiLFBfUHJpdmFjeV9IZHI6IiNvdC1wdmN5LWhkciIsUF9BY3RpdmVfTWVudToib3QtYWN0aXZlLW1lbnUiLFBfRGVzY19Db250YWluZXI6Ii5vdC1kZXNjLWNudHIiLFBfVGFiX0dycF9IZHI6Im90LWdycC1oZHIxIixQX1NlYXJjaF9DbnRyOiIjb3Qtc2VhcmNoLWNudHIiLFBfQ2xyX0ZsdHJfVHh0OiIjY2xlYXItZmlsdGVycy1oYW5kbGVyIixQX0FjY19HcnBfRGVzYzoiLm90LWFjYy1ncnBkZXNjIixQX0FjY19Db250YWluZXI6Ii5vdC1hY2MtZ3JwY250ciIsUF9MaW5lX1Rocm91Z2g6ImxpbmUtdGhyb3VnaCIsUF9WZW5kb3JfU2VhcmNoX0lucHV0OiIjdmVuZG9yLXNlYXJjaC1oYW5kbGVyIn0sUnQ9e1BfR3JwX0NvbnRhaW5lcjoiLmdyb3Vwcy1jb250YWluZXIiLFBfQ29udGVudDoiI290LWNvbnRlbnQiLFBfQ2F0ZWdvcnlfSGVhZGVyOiIuY2F0ZWdvcnktaGVhZGVyIixQX0Rlc2NfQ29udGFpbmVyOiIuZGVzY3JpcHRpb24tY29udGFpbmVyIixQX0xhYmVsX1R4dDoiLmxhYmVsLXRleHQiLFBfQWNjX0dycF9EZXNjOiIub3QtYWNjb3JkaW9uLWdyb3VwLXBjLWNvbnRhaW5lciIsUF9MZWdfSW50X0hkcjoiLmxlZy1pbnQtaGVhZGVyIixQX05vdF9BbHdheXNfQWN0aXZlOiJwOm5vdCgub3QtYWx3YXlzLWFjdGl2ZSkiLFBfQ2F0ZWdvcnlfR3JwOiIuY2F0ZWdvcnktZ3JvdXAiLFBfQ2F0ZWdvcnlfSXRlbToiLmNhdGVnb3J5LWl0ZW0iLFBfU3ViX0dycF9DbnRyOiIuY29va2llLXN1Ymdyb3Vwcy1jb250YWluZXIiLFBfQWNjX0NvbnRhaW5lcjoiLm90LWFjY29yZGlvbi1wYy1jb250YWluZXIiLFBfQ2xvc2VfQnRuOiIucGMtY2xvc2UtYnV0dG9uIixQX0xvZ286Ii5wYy1sb2dvIixQX1RpdGxlOiIjcGMtdGl0bGUiLFBfVGl0bGVfTW9iaWxlOiIjcGMtdGl0bGUtbW9iaWxlIixQX1ByaXZhY3lfVHh0OiIjcHJpdmFjeS10ZXh0IixQX1ByaXZhY3lfSGRyOiIjcGMtcHJpdmFjeS1oZWFkZXIiLFBfUG9saWN5X1R4dDoiI3BjLXBvbGljeS10ZXh0IixQX01hbmFnZV9Db29raWVzX1R4dDoiI21hbmFnZS1jb29raWVzLXRleHQiLFBfVmVuZG9yX1RpdGxlOiIjdmVuZG9ycy1saXN0LXRpdGxlIixQX1ZlbmRvcl9UaXRsZV9FbG06IiN2ZW5kb3JzLWxpc3QtdGl0bGUiLFBfVmVuZG9yX0xpc3Q6IiN2ZW5kb3JzLWxpc3QiLFBfVmVuZG9yX0NvbnRlbnQ6IiN2ZW5kb3ItbGlzdC1jb250ZW50IixQX1ZlbmRvcl9Db250YWluZXI6IiN2ZW5kb3JzLWxpc3QtY29udGFpbmVyIixQX1Zlbl9CeDoidmVuZG9yLWJveCIsUF9WZW5fTmFtZToiLnZlbmRvci10aXRsZSIsUF9WZW5fTGluazoiLnZlbmRvci1wcml2YWN5LW5vdGljZSIsUF9WZW5fTGVnX0NsYWltOiIudmVuZG9yLWxlZ2NsYWltLWxpbmsiLFBfVmVuX0N0Z2w6Im90LXZlbmRvci1jb25zZW50LXRnbCIsUF9WZW5fTHRnbDoib3QtbGVnLWludC10Z2wiLFBfVmVuX0x0Z2xfT25seToib3QtbGVnLWludC10Z2wtb25seSIsUF9WZW5fT3B0czoiLnZlbmRvci1vcHRpb25zIixQX1RyaWFuZ2xlOiIjb3QtdHJpYW5nbGUiLFBfRmx0cl9Nb2RhbDoiI290LWZpbHRlci1tb2RhbCIsUF9GbHRyX09wdGlvbnM6Ii5vdC1ncm91cC1vcHRpb25zIixQX0ZsdHJfT3B0aW9uOiIub3QtZ3JvdXAtb3B0aW9uIixQX1NlbGVjdF9DbnRyOiIjc2VsZWN0LWFsbC1jb250YWluZXIiLFBfSG9zdF9DbnRyOiIjaG9zdHMtbGlzdC1jb250YWluZXIiLFBfSG9zdF9IZHI6Ii5ob3N0LWluZm8iLFBfSG9zdF9EZXNjOiIuaG9zdC1kZXNjcmlwdGlvbiIsUF9Ib3N0X09wdDoiLmhvc3Qtb3B0aW9uLWdyb3VwIixQX0hvc3RfSW5mbzoiLnZlbmRvci1ob3N0IixQX1Zlbl9EZXRzOiIudmVuZG9yLXB1cnBvc2UtZ3JvdXBzIixQX1Zlbl9EaXNjOiIub3QtdmVuLWRpc2MiLFBfR3Zlbl9MaXN0OiIjb3QtZ24tdmVubHN0IixQX0FycndfQ250cjoiLm90LWFycm93LWNvbnRhaW5lciIsUF9MaV9IZHI6Ii5sZWctaW50LWhlYWRlciIsUF9MaV9UaXRsZToiLmxlZy1pbnQtdGl0bGUiLFBfQWNjX1R4dDoiLmFjY29yZGlvbi10ZXh0IixQX1RnbF9DbnRyOiIub3QtdG9nZ2xlLWdyb3VwIixQX0NCeF9DbnRyOiIub3QtY2hrYm94LWNvbnRhaW5lciIsUF9Ib3N0X1RpdGxlOiIuaG9zdC10aXRsZSIsUF9MZWdfU2VsZWN0X0FsbDoiLmxlZy1pbnQtc2VsLWFsbC1oZHIiLFBfTGVnX0hlYWRlcjoiLmxlZy1pbnQtaGRyIixQX0Nuc250X0hlYWRlcjoiLmNvbnNlbnQtaGRyIixQX0FjY19IZWFkZXI6Ii5hY2NvcmRpb24taGVhZGVyIixQX1NlbF9BbGxfVmVuZG9yX0NvbnNlbnRfSGFuZGxlcjoiI3NlbGVjdC1hbGwtdmVuZG9yLWxlZy1oYW5kbGVyIixQX1NlbF9BbGxfVmVuZG9yX0xlZ19IYW5kbGVyOiIjc2VsZWN0LWFsbC12ZW5kb3ItZ3JvdXBzLWhhbmRsZXIiLFBfU2VsX0FsbF9Ib3N0X0hhbmRsZXI6IiNzZWxlY3QtYWxsLWhvc3RzLWdyb3Vwcy1oYW5kbGVyIixQX1NlbF9BbGxfSG9zdF9FbDoic2VsZWN0LWFsbC1ob3N0cy1pbnB1dC1jb250YWluZXIiLFBfU2VsX0FsbF9WZW5kb3JfQ29uc2VudF9FbDoic2VsZWN0LWFsbC12ZW5kb3JzLWlucHV0LWNvbnRhaW5lciIsUF9TZWxfQWxsX1ZlbmRvcl9MZWdfRWw6InNlbGVjdC1hbGwtdmVuZG9ycy1sZWctaW5wdXQtY29udGFpbmVyIixQX2NfTmFtZToiY29va2llLW5hbWUtY29udGFpbmVyIixQX2NfSG9zdDoiY29va2llLWhvc3QtY29udGFpbmVyIixQX2NfRHVyYXRpb246ImNvb2tpZS1kdXJhdGlvbi1jb250YWluZXIiLFBfY19UeXBlOiJjb29raWUtdHlwZS1jb250YWluZXIiLFBfY19DYXRlZ29yeToiY29va2llLWNhdGVnb3J5LWNvbnRhaW5lciIsUF9jX0Rlc2M6ImNvb2tpZS1kZXNjcmlwdGlvbi1jb250YWluZXIiLFBfSG9zdF9WaWV3X0Nvb2tpZXM6Ii5ob3N0LXZpZXctY29va2llcyIsUF9WZW5kb3JfQ2hlY2tCeDoidmVuZG9yLWNoa2JveCIsUF9WZW5kb3JfTGVnQ2hlY2tCeDoidmVuZG9yLWxlZy1jaGtib3giLFBfSG9zdF9VSToiaG9zdHMtbGlzdCIsUF9Ib3N0X0NudDoiaG9zdC1saXN0LWNvbnRlbnQiLFBfSG9zdF9CeDoiaG9zdC1ib3giLFBfVmVuX0xzdF9DbnRyOiIuY2F0ZWdvcnktdmVuZG9ycy1saXN0LWNvbnRhaW5lciIsUF9Ib3N0X0xzdF9jbnRyOiIuY2F0ZWdvcnktaG9zdC1saXN0LWNvbnRhaW5lciIsUF9TdWJncnBfRGVzYzoiLmNvb2tpZS1zdWJncm91cHMtZGVzY3JpcHRpb24tbGVnYWwiLFBfU3ViZ3BfdWw6Ii5jb29raWUtc3ViZ3JvdXBzIixQX1N1YmdycF9saToiLmNvb2tpZS1zdWJncm91cCIsUF9TdWJncnBfVGdsX0NudHI6Ii5jb29raWUtc3ViZ3JvdXAtdG9nZ2xlIixQX0FjdGl2ZV9NZW51OiJhY3RpdmUtZ3JvdXAiLFBfVGFiX0dycF9IZHI6Imdyb3VwLXRvZ2dsZSIsUF9TZWFyY2hfQ250cjoiI3NlYXJjaC1jb250YWluZXIiLFBfQ2xyX0ZsdHJfVHh0OiIjY2xlYXItZmlsdGVycy1oYW5kbGVyIHAiLFBfVmVuZG9yX1NlYXJjaF9JbnB1dDoiI3ZlbmRvci1zZWFyY2gtaGFuZGxlciJ9LEZ0PXtHcm91cFR5cGVzOntDb29raWU6IkNPT0tJRSIsQnVuZGxlOiJCUkFOQ0giLEZ0OiJJQUIyX0ZFQVRVUkUiLFB1cjoiSUFCMl9QVVJQT1NFIixTcGxfRnQ6IklBQjJfU1BMX0ZFQVRVUkUiLFNwbF9QdXI6IklBQjJfU1BMX1BVUlBPU0UiLFN0YWNrOiJJQUIyX1NUQUNLIn0sSWRQYXR0ZXJuczp7UHVyOiJJQUJWMl8iLEZ0OiJJRkVWMl8iLFNwbF9QdXI6IklTUFYyXyIsU3BsX0Z0OiJJU0ZWMl8ifX0sTXQ9e0dyb3VwVHlwZXM6e0Nvb2tpZToiQ09PS0lFIixCdW5kbGU6IkJSQU5DSCIsRnQ6IklBQjJWMl9GRUFUVVJFIixQdXI6IklBQjJWMl9QVVJQT1NFIixTcGxfRnQ6IklBQjJWMl9TUExfRkVBVFVSRSIsU3BsX1B1cjoiSUFCMlYyX1NQTF9QVVJQT1NFIixTdGFjazoiSUFCMlYyX1NUQUNLIn0sSWRQYXR0ZXJuczp7UHVyOiJJQUIyVjJfIixGdDoiSUZFMlYyXyIsU3BsX1B1cjoiSVNQMlYyXyIsU3BsX0Z0OiJJU0YyVjJfIn19O3F0LnByb3RvdHlwZS5nZXREYXRhTGFuZ3VhZ2VDdWx0dXJlPWZ1bmN0aW9uKCl7dmFyIGU9aC5nZXRTdHViQXR0cihqZSl8fGIubW9kdWxlSW5pdGlhbGl6ZXIuRGF0YUxhbmd1YWdlO3JldHVybiBlP3RoaXMuY2hlY2tBbmRUYW5zZm9ybUxhbmdDb2RlV2l0aFVuZGVyZHNjb3JlKGUudG9Mb3dlckNhc2UoKSk6dGhpcy5kZXRlY3REb2N1bWVudE9yQnJvd3Nlckxhbmd1YWdlKCkudG9Mb3dlckNhc2UoKX0scXQucHJvdG90eXBlLmNoZWNrQW5kVGFuc2Zvcm1MYW5nQ29kZVdpdGhVbmRlcmRzY29yZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9cXy8sIi0iKX0scXQucHJvdG90eXBlLmRldGVjdERvY3VtZW50T3JCcm93c2VyTGFuZ3VhZ2U9ZnVuY3Rpb24oKXt2YXIgZSx0PSIiO2lmKF8ubGFuZ1N3aXRjaGVyUGxkcil7dmFyIG89di5jb252ZXJ0S2V5VmFsdWVMb3dlckNhc2UoXy5sYW5nU3dpdGNoZXJQbGRyKSxuPXRoaXMuZ2V0VXNlckxhbmd1YWdlKCkudG9Mb3dlckNhc2UoKTtpZighKHQ9b1tuXXx8b1tuKyItIituXXx8KG8uZGVmYXVsdD09PW58fG8uZGVmYXVsdD09PShudWxsPT0oZT1uKT92b2lkIDA6ZS5zcGxpdCgiLSIpWzBdKT9vLmRlZmF1bHQ6bnVsbCl8fG9bbnVsbD09KGU9bik/dm9pZCAwOmUuc3BsaXQoIi0iKVswXV0pKWZvcih2YXIgcj1PYmplY3Qua2V5cyhvKSxpPS0xPT09bi5pbmRleE9mKCItIik/bjpuLnN1YnN0cmluZygwLG4uaW5kZXhPZigiLSIpKSxzPTA7czxyLmxlbmd0aDtzKz0xKXt2YXIgYT1yW3NdO2lmKCgtMT09PWEuaW5kZXhPZigiLSIpP2E6YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIi0iKSkpPT09aSl7dD1vW2FdO2JyZWFrfX10PXR8fG8uZGVmYXVsdH1yZXR1cm4gdH0scXQucHJvdG90eXBlLmdldFVzZXJMYW5ndWFnZT1mdW5jdGlvbigpe3JldHVybiBfLnVzZURvY3VtZW50TGFuZ3VhZ2U/dGhpcy5jaGVja0FuZFRhbnNmb3JtTGFuZ0NvZGVXaXRoVW5kZXJkc2NvcmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcpOm5hdmlnYXRvci5sYW5ndWFnZXMmJm5hdmlnYXRvci5sYW5ndWFnZXMubGVuZ3RoP25hdmlnYXRvci5sYW5ndWFnZXNbMF06bmF2aWdhdG9yLmxhbmd1YWdlfHxuYXZpZ2F0b3IudXNlckxhbmd1YWdlfSxxdC5wcm90b3R5cGUuaXNWYWxpZExhbmd1YWdlPWZ1bmN0aW9uKGUsdCl7dmFyIG89di5jb252ZXJ0S2V5VmFsdWVMb3dlckNhc2UoXy5sYW5nU3dpdGNoZXJQbGRyKTtyZXR1cm4hKCFvfHwhb1t0XSYmIW9bdCsiLSIrdF0mJm8uZGVmYXVsdCE9PXQpfSxxdC5wcm90b3R5cGUuZ2V0TGFuZ0pzb25Vcmw9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9bnVsbCk7dmFyIHQsbz1fLmdldFJlZ2lvblJ1bGUoKTtpZihlKXtpZihlPWUudG9Mb3dlckNhc2UoKSwhdGhpcy5pc1ZhbGlkTGFuZ3VhZ2UobyxlKSlyZXR1cm4gbnVsbH1lbHNlIGU9dGhpcy5nZXREYXRhTGFuZ3VhZ2VDdWx0dXJlKCk7cmV0dXJuIGwubGFuZz1lLGwuY29uc2VudExhbmd1YWdlPS0xPT09ZS5pbmRleE9mKCItIik/ZTplLnN1YnN0cmluZygwLGUuaW5kZXhPZigiLSIpKSx0PV8uY2FuVXNlQ29uZGl0aW9uYWxMb2dpYz9fLmJhbm5lckRhdGFQYXJlbnRVUkwrIi8iK28uSWQrIi8iK18uQ29uZGl0aW9uLklkKyIvIitlOl8uYmFubmVyRGF0YVBhcmVudFVSTCsiLyIrby5JZCsiLyIrZSx0PV8ubXVsdGlWYXJpYW50VGVzdGluZ0VuYWJsZWQ/Xy5iYW5uZXJEYXRhUGFyZW50VVJMKyIvIitvLklkKyIvdmFyaWFudHMvIitfLnNlbGVjdGVkVmFyaWFudC5JZCsiLyIrZTp0fSxxdC5wcm90b3R5cGUucG9wdWxhdGVMYW5nU3dpdGNoZXJQbGhkcj1mdW5jdGlvbigpe3ZhciBlLHQsbyxuPV8uZ2V0UmVnaW9uUnVsZSgpO24mJihlPW4uVmFyaWFudHMsXy5tdWx0aVZhcmlhbnRUZXN0aW5nRW5hYmxlZCYmZT8obz12b2lkIDAsKHQ9TC5nZXRDb29raWUoay5TRUxFQ1RFRF9WQVJJQU5UKSkmJihvPWVbdi5maW5kSW5kZXgoZSxmdW5jdGlvbihlKXtyZXR1cm4gZS5JZD09PXR9KV0pLHQmJm98fChvPWVbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmUubGVuZ3RoKV0pLF8ubGFuZ1N3aXRjaGVyUGxkcj1vLkxhbmd1YWdlU3dpdGNoZXJQbGFjZWhvbGRlcixfLnNlbGVjdGVkVmFyaWFudD1vKTpfLmNhblVzZUNvbmRpdGlvbmFsTG9naWM/Xy5sYW5nU3dpdGNoZXJQbGRyPV8uQ29uZGl0aW9uLkxhbmd1YWdlU3dpdGNoZXJQbGFjZWhvbGRlcjpfLmxhbmdTd2l0Y2hlclBsZHI9bi5MYW5ndWFnZVN3aXRjaGVyUGxhY2Vob2xkZXIpfTt2YXIgVXQsZT1xdDtmdW5jdGlvbiBxdCgpe316dC5wcm90b3R5cGUuZ2V0TGFuZ0pzb249ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIHZvaWQgMD09PWUmJihlPW51bGwpLF8ucHJldmlld01vZGU/KHQ9SlNPTi5wYXJzZSh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgib3RQcmV2aWV3RGF0YSIpKSxQcm9taXNlLnJlc29sdmUodC5sYW5nSnNvbikpOih0PVV0LmdldExhbmdKc29uVXJsKGUpKT9qdC5vdEZldGNoKHQrIi5qc29uIiwhMSwhMSwhMCk6UHJvbWlzZS5yZXNvbHZlKG51bGwpfSx6dC5wcm90b3R5cGUuZ2V0UGVyc2lzdGVudENvb2tpZVN2Zz1mdW5jdGlvbihlKXtlPWV8fE8uY29va2llUGVyc2lzdGVudExvZ287cmV0dXJuIGU/anQub3RGZXRjaChlLCEwKTpQcm9taXNlLnJlc29sdmUobnVsbCl9LHp0LnByb3RvdHlwZS5nZXRTcHJpdGVTdmc9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/anQub3RGZXRjaChlLCEwKTpQcm9taXNlLnJlc29sdmUobnVsbCl9LHp0LnByb3RvdHlwZS5mZXRjaEd2bE9iaj1mdW5jdGlvbigpe3ZhciBlPWIubW9kdWxlSW5pdGlhbGl6ZXIuSWFiVjJEYXRhLmdsb2JhbFZlbmRvckxpc3RVcmw7cmV0dXJuIklBQjJWMiI9PT1fLmdldFJlZ2lvblJ1bGVUeXBlKCkmJihlPWIubW9kdWxlSW5pdGlhbGl6ZXIuSWFiMlYyRGF0YS5nbG9iYWxWZW5kb3JMaXN0VXJsKSx0aGlzLm90RmV0Y2goZSl9LHp0LnByb3RvdHlwZS5mZXRjaEdvb2dsZVZlbmRvcnM9ZnVuY3Rpb24oKXt2YXIgZT1oLnVwZGF0ZUNvcnJlY3RJQUJVcmwoYi5tb2R1bGVJbml0aWFsaXplci5Hb29nbGVEYXRhLmdvb2dsZVZlbmRvckxpc3RVcmwpO3JldHVybiBoLmNoZWNrTW9iaWxlT2ZmbGluZVJlcXVlc3QoaC5nZXRCYW5uZXJWZXJzaW9uVXJsKCkpP2gub3RGZXRjaE9mZmxpbmVGaWxlKHYuZ2V0UmVsYXRpdmVVUkwoZSwhMCkpOihfLm1vYmlsZU9ubGluZVVSTC5wdXNoKGUpLHRoaXMub3RGZXRjaChlKSl9LHp0LnByb3RvdHlwZS5nZXRTdG9yYWdlRGlzY2xvc3VyZT1mdW5jdGlvbih0KXtyZXR1cm4gUCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQSh0aGlzLGZ1bmN0aW9uKGUpe3JldHVyblsyLHRoaXMub3RGZXRjaCh0LCExLCEwKV19KX0pfSx6dC5wcm90b3R5cGUubG9hZENNUD1mdW5jdGlvbigpe3ZhciBvPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3ZhciB0PW8uY2hlY2tJZlJlcXVpcmVzUG9sbHlmaWxsKCk/Im90VENGLWllIjoib3RUQ0YiO2guanNvbnAoaC5nZXRCYW5uZXJWZXJzaW9uVXJsKCkrIi8iK3QrIi5qcyIsZSxlKX0pfSx6dC5wcm90b3R5cGUubG9hZEdQUD1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtoLmpzb25wKGguZ2V0QmFubmVyVmVyc2lvblVybCgpKyIvb3RHUFAuanMiLGUsZSl9KX0senQucHJvdG90eXBlLmxvYWRDb25maXJtRGlhbG9nPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO3JldHVybiBlLnJlbD0ic3R5bGVzaGVldCIsZS5ocmVmPWguZ2V0QmFubmVyU0RLQXNzZXN0c1VybCgpKyIvb3RDb25maXJtRGlhbG9nIisoTy51c2VSVEw/IlJ0bCI6IiIpKyIuY3NzIixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGUpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe2guanNvbnAoaC5nZXRCYW5uZXJWZXJzaW9uVXJsKCkrIi9vdENvbmZpcm1EaWFsb2cuanMiLGUsZSl9KX0senQucHJvdG90eXBlLmdldENTQnRuQ29udGVudD1mdW5jdGlvbigpe3JldHVybiBQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0LG8sbixyO3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4odD1PLnVzZVJUTD95ZS5SVEw6eWUuTFRSLGwuY3NCdG5Bc3NldFt0XSk/WzMsMl06KG89aC5nZXRCYW5uZXJTREtBc3Nlc3RzVXJsKCkrIi8iKyhPLnVzZVJUTD96ZTpLZSksbj1sLmNzQnRuQXNzZXQscj10LFs0LHRoaXMub3RGZXRjaChvKV0pO2Nhc2UgMTpuW3JdPWUuc2VudCgpLGUubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzIsbC5jc0J0bkFzc2V0W3RdXX19KX0pfSx6dC5wcm90b3R5cGUuZ2V0UGNDb250ZW50PWZ1bmN0aW9uKGkpe3JldHVybiB2b2lkIDA9PT1pJiYoaT0hMSksUCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdCxvLG4scjtyZXR1cm4gQSh0aGlzLGZ1bmN0aW9uKGUpe3N3aXRjaChlLmxhYmVsKXtjYXNlIDA6cmV0dXJuKHQ9Ty51c2VSVEw/eWUuUlRMOnllLkxUUixsLnBjQXNzZXRbdF0mJiFpKT9bMywyXToobz1oLmdldEJhbm5lclNES0Fzc2VzdHNVcmwoKSxPLlBDVGVtcGxhdGVVcGdyYWRlJiYobys9Ii92MiIpLG89bysiLyIrXy5wY05hbWUrKE8udXNlUlRMPyJSdGwiOiIiKSsiLmpzb24iLG49bC5wY0Fzc2V0LHI9dCxbNCx0aGlzLm90RmV0Y2gobyldKTtjYXNlIDE6bltyXT1lLnNlbnQoKSxlLmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyLGwucGNBc3NldFt0XV19fSl9KX0senQucHJvdG90eXBlLmdldEJhbm5lckNvbnRlbnQ9ZnVuY3Rpb24ocyxhKXtyZXR1cm4gdm9pZCAwPT09cyYmKHM9ITEpLHZvaWQgMD09PWEmJihhPW51bGwpLFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHQsbyxuLHIsaTtyZXR1cm4gQSh0aGlzLGZ1bmN0aW9uKGUpe3N3aXRjaChlLmxhYmVsKXtjYXNlIDA6aWYodD1PLnVzZVJUTD95ZS5SVEw6eWUuTFRSLG89YXx8VXQuZ2V0RGF0YUxhbmd1YWdlQ3VsdHVyZSgpLGwuYkFzc2V0W3RdJiYhcylyZXR1cm5bMywyXTtpZihpPV8uZ2V0UmVnaW9uUnVsZSgpLG49dm9pZCAwLGIuZnAuQ29va2llVjJTU1Ipe2lmKF8ucHJldmlld01vZGUpcmV0dXJuIHI9SlNPTi5wYXJzZSh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgib3RQcmV2aWV3RGF0YSIpKSxbMixQcm9taXNlLnJlc29sdmUoci5iTGF5b3V0KV07bj1fLmJhbm5lckRhdGFQYXJlbnRVUkwrIi8iK2kuSWQsXy5jYW5Vc2VDb25kaXRpb25hbExvZ2ljJiYobis9Ii8iK18uQ29uZGl0aW9uLklkKSxuKz0iL2JMYXlvdXQtIitvKyIuanNvbiJ9ZWxzZSBuPWguZ2V0QmFubmVyU0RLQXNzZXN0c1VybCgpKygiLyIrXy5iYW5uZXJOYW1lKyhPLnVzZVJUTD8iUnRsIjoiIikpKyIuanNvbiI7cmV0dXJuIHI9bC5iQXNzZXQsaT10LFs0LHRoaXMub3RGZXRjaChuKV07Y2FzZSAxOnJbaV09ZS5zZW50KCksZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMixsLmJBc3NldFt0XV19fSl9KX0senQucHJvdG90eXBlLmdldENvbW1vblN0eWxlcz1mdW5jdGlvbihpKXtyZXR1cm4gdm9pZCAwPT09aSYmKGk9ITEpLFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHQsbyxuLHI7cmV0dXJuIEEodGhpcyxmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybih0PU8udXNlUlRMP3llLlJUTDp5ZS5MVFIsbC5jU3R5bGVzW3RdJiYhaSk/WzMsMl06KG89aC5nZXRCYW5uZXJTREtBc3Nlc3RzVXJsKCkrIi9vdENvbW1vblN0eWxlcyIrKE8udXNlUlRMPyJSdGwiOiIiKSsiLmNzcyIsbj1sLmNTdHlsZXMscj10LFs0LHRoaXMub3RGZXRjaChvLCEwKV0pO2Nhc2UgMTpuW3JdPWUuc2VudCgpLGUubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzIsbC5jU3R5bGVzW3RdXX19KX0pfSx6dC5wcm90b3R5cGUuZ2V0U3luY050ZnlDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHQsbyxuLHI7cmV0dXJuIEEodGhpcyxmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybih0PU8udXNlUlRMP3llLlJUTDp5ZS5MVFIsbC5zeW5jTnRmeUNvbnRlbnRbdF0pP1szLDJdOihvPWguZ2V0QmFubmVyU0RLQXNzZXN0c1VybCgpKyIvb3RTeW5jTm90aWZpY2F0aW9uIisoTy51c2VSVEw/IlJ0bCI6IiIpKyIuanNvbiIsbj1sLnN5bmNOdGZ5Q29udGVudCxyPXQsWzQsdGhpcy5vdEZldGNoKG8pXSk7Y2FzZSAxOm5bcl09ZS5zZW50KCksZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMixsLnN5bmNOdGZ5Q29udGVudFt0XV19fSl9KX0senQucHJvdG90eXBlLmdldENvbnNlbnRQcm9maWxlPWZ1bmN0aW9uKGUsdCl7dmFyIG89dGhpcyxuPXtJZGVudGlmaWVyOmUsVGVuYW50SWQ6bC50ZW5hbnRJZCxBdXRob3JpemF0aW9uOnR9O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtvLmdldEpTT04obC5jb25zZW50QXBpLG4sZSxlKX0pfSx6dC5wcm90b3R5cGUuY2hlY2tJZlJlcXVpcmVzUG9sbHlmaWxsPWZ1bmN0aW9uKCl7dmFyIGU9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7cmV0dXJuIDA8ZS5pbmRleE9mKCJNU0lFICIpfHwwPGUuaW5kZXhPZigiVHJpZGVudC8iKXx8InVuZGVmaW5lZCI9PXR5cGVvZiBTZXR9LHp0LnByb3RvdHlwZS5vdEZldGNoPWZ1bmN0aW9uKHIsaSxzLGEpe3JldHVybiB2b2lkIDA9PT1pJiYoaT0hMSksdm9pZCAwPT09cyYmKHM9ITEpLHZvaWQgMD09PWEmJihhPSExKSxQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0LG8sbj10aGlzO3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gaC5jaGVja01vYmlsZU9mZmxpbmVSZXF1ZXN0KHIpP1s0LGgub3RGZXRjaE9mZmxpbmVGaWxlKHIpXTpbMywyXTtjYXNlIDE6cmV0dXJuWzIsZS5zZW50KCldO2Nhc2UgMjpyZXR1cm4gZS50cnlzLnB1c2goWzIsOSwsMTBdKSxfLm1vYmlsZU9ubGluZVVSTC5wdXNoKHIpLCJ1bmRlZmluZWQiIT10eXBlb2YgZmV0Y2g/WzMsM106WzIsbmV3IFByb21pc2UoZnVuY3Rpb24oZSl7bi5nZXRKU09OKHIsbnVsbCxlLGUsaSl9KV07Y2FzZSAzOnJldHVybls0LGZldGNoKHIpXTtjYXNlIDQ6cmV0dXJuKHQ9ZS5zZW50KCkscyYmdC5oZWFkZXJzLmdldCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMiKSk/WzIsUHJvbWlzZS5yZXNvbHZlKCldOihhJiZ0LmhlYWRlcnMuZ2V0KCJYLU9uZVRydXN0LUlzQm90IikmJihsLmlzQm90SGVhZGVyPSJ0cnVlIj09PXQuaGVhZGVycy5nZXQoIlgtT25lVHJ1c3QtSXNCb3QiKS50b0xvd2VyQ2FzZSgpKSxpP1s0LHQudGV4dCgpXTpbMyw2XSk7Y2FzZSA1OnJldHVyblsyLGUuc2VudCgpXTtjYXNlIDY6cmV0dXJuWzQsdC5qc29uKCldO2Nhc2UgNzpyZXR1cm5bMixlLnNlbnQoKV07Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6cmV0dXJuIG89ZS5zZW50KCksY29uc29sZS5sb2coIkVycm9yIGluIGZldGNoIFVSTCA6ICIrcisiIEV4Y2VwdGlvbiA6IitvKSxbMywxMF07Y2FzZSAxMDpyZXR1cm5bMl19fSl9KX0senQucHJvdG90eXBlLmdldEpTT049ZnVuY3Rpb24oZSx0LG8sbixyKXt2b2lkIDA9PT10JiYodD1udWxsKSx2b2lkIDA9PT1yJiYocj0hMSk7dmFyIGk9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKGkub3BlbigiR0VUIixlLCEwKSxpLndpdGhDcmVkZW50aWFscz0hMSx0KWZvcih2YXIgcyBpbiB0KWkuc2V0UmVxdWVzdEhlYWRlcihzLHRbc10pO2kub25sb2FkPWZ1bmN0aW9uKCl7dmFyIGU7MjAwPD10aGlzLnN0YXR1cyYmdGhpcy5zdGF0dXM8NDAwJiZ0aGlzLnJlc3BvbnNlVGV4dD8oZT12b2lkIDAsZT1yP3RoaXMucmVzcG9uc2VUZXh0OkpTT04ucGFyc2UodGhpcy5yZXNwb25zZVRleHQpLG8oZSkpOm4oe21lc3NhZ2U6IkVycm9yIExvYWRpbmcgRGF0YSIsc3RhdHVzQ29kZTp0aGlzLnN0YXR1c30pfSxpLm9uZXJyb3I9ZnVuY3Rpb24oZSl7bihlKX0saS5zZW5kKCl9LHp0LnByb3RvdHlwZS5nZXRHZW9sb2NhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gUCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbyxuPXRoaXM7cmV0dXJuIEEodGhpcyxmdW5jdGlvbihlKXtyZXR1cm4gbz10aGlzLmdldEdlb2xvY2F0aW9uVVJMKHQpLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7bi5nZXRKU09OKG8se2FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9LGUsdCl9KV19KX0pfSx6dC5wcm90b3R5cGUuZ2V0R2VvbG9jYXRpb25VUkw9ZnVuY3Rpb24oZSl7dmFyIHQ9bC5zdG9yYWdlQmFzZVVSTCsiL3NjcmlwdHRlbXBsYXRlcy8iK2UuVmVyc2lvbjtyZXR1cm4gbmV3IFJlZ0V4cCgiXmZpbGU6Ly8iLCJpIikudGVzdCh0KSYmZS5Nb2JpbGVTREs/Ii4vIitlLkdlb2xvY2F0aW9uVXJsLnJlcGxhY2UoL14oaHR0cHxodHRwcyk6XC9cLy8sIiIpLnNwbGl0KCIvIikuc2xpY2UoMSkuam9pbigiLyIpKyIuanMiOmUuR2VvbG9jYXRpb25Vcmx9O3ZhciBqdCxLdD16dDtmdW5jdGlvbiB6dCgpe312YXIgaCxXdD0iZ3JvdXBzIixZdD0iaG9zdHMiLEp0PSJnZW5WZW5kb3JzIixYdD0idnMiLFF0PShadC5wcm90b3R5cGUuYWRkTG9nb1VybHM9ZnVuY3Rpb24oKXtoLmNoZWNrTW9iaWxlT2ZmbGluZVJlcXVlc3QoaC5nZXRCYW5uZXJWZXJzaW9uVXJsKCkpfHwoXy5tb2JpbGVPbmxpbmVVUkwucHVzaChoLnVwZGF0ZUNvcnJlY3RVcmwoTy5vcHRhbm9uTG9nbykpLF8ubW9iaWxlT25saW5lVVJMLnB1c2goaC51cGRhdGVDb3JyZWN0VXJsKE8ub25lVHJ1c3RGdHJMb2dvKSkpfSxadC5wcm90b3R5cGUuZ2V0Q29va2llTGFiZWw9ZnVuY3Rpb24oZSx0LG8pe3ZhciBuO3JldHVybiB2b2lkIDA9PT1vJiYobz0hMCksZT8obj1lLk5hbWUsdD8nXG4gICAgICAgICAgICAgICAgPGEgIGNsYXNzPSJjb29raWUtbGFiZWwiXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9IicrKG8/Imh0dHBzOi8vY29va2llcGVkaWEuY28udWsvY29va2llcy8iOiJodHRwczovL2Nvb2tpZXBlZGlhLmNvLnVrL2hvc3QvIikrZS5OYW1lKyciXG4gICAgICAgICAgICAgICAgICAgIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAnK2UuTmFtZSsnJm5ic3A7PHNwYW4gY2xhc3M9Im90LXNjcm4tcmRyIj4nK08uTmV3V2luVHh0KyI8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgIjpuKToiIn0sWnQucHJvdG90eXBlLmdldEJhbm5lclNES0Fzc2VzdHNVcmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCYW5uZXJWZXJzaW9uVXJsKCkrIi9hc3NldHMifSxadC5wcm90b3R5cGUuZ2V0QmFubmVyVmVyc2lvblVybD1mdW5jdGlvbigpe3ZhciBlPV8uYmFubmVyU2NyaXB0RWxlbWVudC5nZXRBdHRyaWJ1dGUoInNyYyIpO3JldHVybiIiKygtMSE9PWUuaW5kZXhPZigiL2NvbnNlbnQvIik/ZS5zcGxpdCgiY29uc2VudC8iKVswXSsic2NyaXB0dGVtcGxhdGVzLyI6ZS5zcGxpdCgib3RTREtTdHViIilbMF0pK2IubW9kdWxlSW5pdGlhbGl6ZXIuVmVyc2lvbn0sWnQucHJvdG90eXBlLmNoZWNrTW9iaWxlT2ZmbGluZVJlcXVlc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGIubW9kdWxlSW5pdGlhbGl6ZXIuTW9iaWxlU0RLJiZuZXcgUmVnRXhwKCJeZmlsZTovLyIsImkiKS50ZXN0KGUpfSxadC5wcm90b3R5cGUudXBkYXRlQ29ycmVjdElBQlVybD1mdW5jdGlvbihlKXt2YXIgdCxvPWIubW9kdWxlSW5pdGlhbGl6ZXIuU2NyaXB0VHlwZTtyZXR1cm4gbyE9PVVlLkxPQ0FMJiZvIT09VWUuTE9DQUxfVEVTVHx8KG89di5nZXRVUkwoZSksKHQ9KHQ9Xy5iYW5uZXJTY3JpcHRFbGVtZW50KSYmdC5nZXRBdHRyaWJ1dGUoInNyYyIpP3YuZ2V0VVJMKHQuZ2V0QXR0cmlidXRlKCJzcmMiKSk6bnVsbCkmJm8mJnQuaG9zdG5hbWUhPT1vLmhvc3RuYW1lJiYoZT0oZT0odD0iIitfLmJhbm5lckRhdGFQYXJlbnRVUkwpK28ucGF0aG5hbWUuc3BsaXQoIi8iKS5wb3AoKS5yZXBsYWNlKC8oXlwvPykvLCIvIikpLnJlcGxhY2Uoby5ob3N0bmFtZSx0Lmhvc3RuYW1lKSkpLGV9LFp0LnByb3RvdHlwZS51cGRhdGVDb3JyZWN0VXJsPWZ1bmN0aW9uKGUsdCl7aWYoKHZvaWQgMD09PXQmJih0PSExKSxfLnByZXZpZXdNb2RlKSYmbmV3IFJlZ0V4cCgiXmRhdGE6aW1hZ2UvIikudGVzdChlKSlyZXR1cm4gZTt2YXIgbz12LmdldFVSTChlKSxuPV8uYmFubmVyU2NyaXB0RWxlbWVudCxuPW4mJm4uZ2V0QXR0cmlidXRlKCJzcmMiKT92LmdldFVSTChuLmdldEF0dHJpYnV0ZSgic3JjIikpOm51bGw7aWYobiYmbyYmbi5ob3N0bmFtZSE9PW8uaG9zdG5hbWUpe3ZhciByPWIubW9kdWxlSW5pdGlhbGl6ZXIuU2NyaXB0VHlwZTtpZihyPT09VWUuTE9DQUx8fHI9PT1VZS5MT0NBTF9URVNUKXtpZih0KXJldHVybiBlO249Xy5iYW5uZXJEYXRhUGFyZW50VVJMKyIvIitfLmdldFJlZ2lvblJ1bGUoKS5JZCxfLmNhblVzZUNvbmRpdGlvbmFsTG9naWMmJihuKz0iLyIrXy5Db25kaXRpb24uSWQpLGU9bisobnVsbD09KHI9bnVsbD09KHI9ZSk/dm9pZCAwOnIucmVwbGFjZShudWxsPT0odD1iLm1vZHVsZUluaXRpYWxpemVyKT92b2lkIDA6dC5DRE5Mb2NhdGlvbiwiIikpP3ZvaWQgMDpyLnJlcGxhY2UoLyheXC8/KS8sIi8iKSl9ZWxzZSBlPW51bGw9PSh0PWUpP3ZvaWQgMDp0LnJlcGxhY2Uoby5ob3N0bmFtZSxuLmhvc3RuYW1lKX1yZXR1cm4gZX0sWnQucHJvdG90eXBlLmlzQnVuZGxlT3JTdGFja0FjdGl2ZT1mdW5jdGlvbihuLHIpe3ZvaWQgMD09PXImJihyPW51bGwpO2Zvcih2YXIgaT1ELm9uZVRydXN0SUFCQ29uc2VudCxzPSEwLGE9KHI9cnx8RC5ncm91cHNDb25zZW50LDApOygoKT0+e3ZhciBlLHQsbz1uLlN1Ykdyb3Vwc1thXTtvJiZvLlN0YXR1cyE9PWYuQUxXQVlTX0FDVElWRSYmKG8uVHlwZT09PUF0PygtMTwodD12LmZpbmRJbmRleChyLGZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCI6IilbMF09PT1vLkN1c3RvbUdyb3VwSWR9KSkmJiIwIj09PXJbdF0uc3BsaXQoIjoiKVsxXXx8IXIubGVuZ3RoKSYmKHM9ITEpOihlPW8uVHlwZT09PUUuR3JvdXBUeXBlcy5TcGxfRnQ/aS5zcGVjaWFsRmVhdHVyZXM6aS5wdXJwb3NlLCgtMTwodD12LmZpbmRJbmRleChlLGZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCI6IilbMF09PT1vLklhYkdycElkfSkpJiYiZmFsc2UiPT09ZVt0XS5zcGxpdCgiOiIpWzFdfHwhZS5sZW5ndGgpJiYocz0hMSkpKSxhKyt9KSgpLHMmJmE8bi5TdWJHcm91cHMubGVuZ3RoOyk7cmV0dXJuIHN9LFp0LnByb3RvdHlwZS5vdEZldGNoT2ZmbGluZUZpbGU9ZnVuY3Rpb24obil7cmV0dXJuIFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHQsbztyZXR1cm4gQSh0aGlzLGZ1bmN0aW9uKGUpe3N3aXRjaChlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIG49bi5yZXBsYWNlKCIuanNvbiIsIi5qcyIpLHQ9bi5zcGxpdCgiLyIpLHQ9dFt0Lmxlbmd0aC0xXSxvPXQuc3BsaXQoIi5qcyIpWzBdLFs0LG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtlKHdpbmRvd1tvXSl9aC5qc29ucChuLHQsdCl9KV07Y2FzZSAxOnJldHVyblsyLGUuc2VudCgpXX19KX0pfSxadC5wcm90b3R5cGUuanNvbnA9ZnVuY3Rpb24oZSx0LG8sbil7dm9pZCAwPT09biYmKG49IiIpLGguY2hlY2tNb2JpbGVPZmZsaW5lUmVxdWVzdChlKXx8Xy5tb2JpbGVPbmxpbmVVUkwucHVzaChlKTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxpPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07ZnVuY3Rpb24gcygpe3QoKX1yLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyJsb2FkZWQiIT09dGhpcy5yZWFkeVN0YXRlJiYiY29tcGxldGUiIT09dGhpcy5yZWFkeVN0YXRlfHxzKCl9LHIuaWQ9bixyLm9ubG9hZD1zLHIub25lcnJvcj1mdW5jdGlvbigpe28oKX0sci50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLF8uc3JpSGFzaCYmKGUuaW5jbHVkZXMoIm90VENGIikmJm51bGwhPShuPV8uc3JpSGFzaCkmJm5bIm90VENGLmpzIl0mJihyLmludGVncml0eT1fLnNyaUhhc2hbIm90VENGLmpzIl0pLGUuaW5jbHVkZXMoIm90R1BQIikmJm51bGwhPShuPV8uc3JpSGFzaCkmJm5bIm90R1BQLmpzIl0mJihyLmludGVncml0eT1fLnNyaUhhc2hbIm90R1BQLmpzIl0pLGUuaW5jbHVkZXMoIm90Q29uZmlybURpYWxvZyIpKSYmbnVsbCE9KG49Xy5zcmlIYXNoKSYmblsib3RDb25maXJtRGlhbG9nLmpzIl0mJihyLmludGVncml0eT1fLnNyaUhhc2hbIm90Q29uZmlybURpYWxvZy5qcyJdKSxyLmFzeW5jPSEwLHIuc3JjPVMuZ2V0U2NyaXB0VXJsKGUpLEQuY3Jvc3NPcmlnaW4mJnIuc2V0QXR0cmlidXRlKCJjcm9zc29yaWdpbiIsRC5jcm9zc09yaWdpbiksaS5hcHBlbmRDaGlsZChyKX0sWnQucHJvdG90eXBlLmlzQ29va2llUG9saWN5UGFnZT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9ITEsbz12LnJlbW92ZVVSTFByZWZpeGVzKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxuPW0oIjxkaXY+PC9kaXY+IiwiY2UiKS5lbCxyPShtKG4pLmh0bWwoZSksbi5xdWVyeVNlbGVjdG9yQWxsKCJhIikpLGk9MDtpPHIubGVuZ3RoO2krKylpZih2LnJlbW92ZVVSTFByZWZpeGVzKHJbaV0uaHJlZik9PT1vKXt0PSEwO2JyZWFrfXJldHVybiB0fSxadC5wcm90b3R5cGUuaXNCYW5uZXJWaXNpYmxlPWZ1bmN0aW9uKCl7dmFyIGU9ITEsdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25ldHJ1c3QtYmFubmVyLXNkayIpO3JldHVybiBlPXQ/dC5nZXRBdHRyaWJ1dGUoInN0eWxlIik/LTE9PT10LmdldEF0dHJpYnV0ZSgic3R5bGUiKS5yZXBsYWNlKC9ccy9nLCIiKS5pbmRleE9mKCJkaXNwbGF5Om5vbmUiKToibm9uZSIhPT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5kaXNwbGF5OmV9LFp0LnByb3RvdHlwZS5oaWRlQmFubmVyPWZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzO0QuYm5yQW5pbWF0aW9uSW5Qcm9nP3NldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdC5oaWRlQmFubmVyKCl9LDEwMCk6KG0oIiNvbmV0cnVzdC1iYW5uZXItc2RrIikuZmFkZU91dCg0MDApLG51bGwhPShlPW51bGw9PShlPXdpbmRvdy5PbmVUcnVzdF9Db25maXJtRGlhbG9nKT92b2lkIDA6ZS5nZXRJbnN0YW5jZSgpKSYmZS5jbG9zZSgpKX0sWnQucHJvdG90eXBlLnJlc2V0Rm9jdXNUb0JvZHk9ZnVuY3Rpb24oKXtkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKX0sWnQucHJvdG90eXBlLmdldER1cmF0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0LG89ZS5MZW5ndGgsZT1lLkR1cmF0aW9uVHlwZTtyZXR1cm4gbyYmMCE9PXBhcnNlSW50KG8pPyhvPXBhcnNlSW50KG8pLGU/KHQ9MTwobz10aGlzLnJvdW5kX3RvX3ByZWNpc2lvbihvL2UsLjUpKT9wdFtlXSsicyI6cHRbZV0sTy5MaWZlc3BhbkR1cmF0aW9uVGV4dCYmMT09PWUmJih0PSJMaWZlc3BhbkR1cmF0aW9uVGV4dCIpLG8rIiAiK09bdF0pOnRoaXMuZ2V0RHVyYXRpb25UZXh0KG8pKTpPLkxmU3BhblNlY3N9LFp0LnByb3RvdHlwZS5pc0RhdGVDdXJyZW50PWZ1bmN0aW9uKGUpe3ZhciBlPWUuc3BsaXQoIi8iKSx0PXBhcnNlSW50KGVbMV0pLG89cGFyc2VJbnQoZVswXSksZT1wYXJzZUludChlWzJdKSxuPW5ldyBEYXRlLHI9bi5nZXREYXRlKCksaT1uLmdldEZ1bGxZZWFyKCksbj1uLmdldE1vbnRoKCkrMTtyZXR1cm4gaTxlfHxlPT09aSYmbjxvfHxlPT09aSYmbz09PW4mJnI8PXR9LFp0LnByb3RvdHlwZS5pbnNlcnRGb290ZXJMb2dvPWZ1bmN0aW9uKGUpe3ZhciB0PW0oZSkuZWw7aWYodC5sZW5ndGgmJk8ub25lVHJ1c3RGdHJMb2dvKXt2YXIgbz1oLnVwZGF0ZUNvcnJlY3RVcmwoTy5vbmVUcnVzdEZ0ckxvZ28pO2guY2hlY2tNb2JpbGVPZmZsaW5lUmVxdWVzdChoLmdldEJhbm5lclZlcnNpb25VcmwoKSkmJihvPXYuZ2V0UmVsYXRpdmVVUkwobywhMCwhMCkpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcixpLHM9IlBvd2VyZWQgYnkgT25lVHJ1c3QgIitPLk5ld1dpblR4dCxhPShtKHRbbl0pLmF0dHIoImhyZWYiLE8ucENGb290ZXJMb2dvVXJsKSxtKHRbbl0pLmF0dHIoImFyaWEtbGFiZWwiLHMpLHRbbl0ucXVlcnlTZWxlY3RvcigiaW1nIikpO2IuZnAuQ01QSWNvblNwcml0ZT8odFtuXS5yZW1vdmVDaGlsZChhKSxyPSIjIituZXcgVVJMKG8sd2luZG93LmxvY2F0aW9uLm9yaWdpbikucGF0aG5hbWUuc3BsaXQoIi8iKS5wb3AoKS5zcGxpdCgiLiIpLnNoaWZ0KCksKGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpKS5jbGFzc0xpc3QuYWRkKCJvdC1mb290ZXItc3ZnLWxvZ28iKSxpLmlubmVySFRNTD0iPHVzZT48L3VzZT4iLGkuc2V0QXR0cmlidXRlKCJ0aXRsZSIscyksaS5xdWVyeVNlbGVjdG9yKCJ1c2UiKS5zZXRBdHRyaWJ1dGUoImhyZWYiLHIpLHRbbl0uYXBwZW5kQ2hpbGQoaSkpOihhLnNldEF0dHJpYnV0ZSgic3JjIixvKSxhLnNldEF0dHJpYnV0ZSgidGl0bGUiLHMpKX19fSxadC5wcm90b3R5cGUucmVtb3ZlRm9vdGVyTG9nbz1mdW5jdGlvbihlKXtlJiZ2LnJlbW92ZUNoaWxkKGUpfSxadC5wcm90b3R5cGUuZ2V0VVRDRm9ybWF0dGVkRGF0ZT1mdW5jdGlvbihlKXtlPW5ldyBEYXRlKGUpO3JldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCkrIi0iKyhlLmdldFVUQ01vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIikrIi0iK2UuZ2V0VVRDRGF0ZSgpLnRvU3RyaW5nKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIikrIiAiK2UuZ2V0VVRDSG91cnMoKSsiOiIrZS5nZXRVVENNaW51dGVzKCkudG9TdHJpbmcoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSsiOiIrZS5nZXRVVENTZWNvbmRzKCkudG9TdHJpbmcoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0sWnQucHJvdG90eXBlLmdldER1cmF0aW9uVGV4dD1mdW5jdGlvbihlKXtyZXR1cm4gMzY1PD1lPyhlPXRoaXMucm91bmRfdG9fcHJlY2lzaW9uKGUvPTM2NSwuNSkpKyIgIisoMTxlP08uTGZTcG5ZcnM6Ty5MZlNwbllyKTpPLkxpZmVzcGFuRHVyYXRpb25UZXh0P2UrIiAiK08uTGlmZXNwYW5EdXJhdGlvblRleHQ6ZSsiICIrKDE8ZT9PLlBDZW50ZXJWZW5kb3JMaXN0TGlmZXNwYW5EYXlzOk8uUENlbnRlclZlbmRvckxpc3RMaWZlc3BhbkRheSl9LFp0LnByb3RvdHlwZS5yb3VuZF90b19wcmVjaXNpb249ZnVuY3Rpb24oZSx0KXtlPStlKyh2b2lkIDA9PT10Py41OnQvMik7cmV0dXJuIGUtZSUodm9pZCAwPT09dD8xOit0KX0sWnQucHJvdG90eXBlLmlzT3B0T3V0RW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiBPLlBDVGVtcGxhdGVVcGdyYWRlP0QuZ2VuVmVuT3B0T3V0RW5hYmxlZDpPLmFsbG93SG9zdE9wdE91dH0sWnQucHJvdG90eXBlLmZpbmRVc2VyVHlwZT1mdW5jdGlvbihlKXtELmlzS2V5Ym9hcmRVc2VyPSEoIWV8fDAhPT1lLmRldGFpbCl9LFp0LnByb3RvdHlwZS5nZXRDU1NQcm9wc0Zyb21TdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHQsbztyZXR1cm4gZT8odD1lLmxlbmd0aCxvPXt9LChlPWUuZW5kc1dpdGgoIjsiKT9lLnN1YnN0cmluZygwLHQtMSk6ZSkudHJpbSgpLnNwbGl0KCI7IikuZm9yRWFjaChmdW5jdGlvbihlKXtlPWUudHJpbSgpLnRvU3RyaW5nKCkuc3BsaXQoIjoiKSxlPUpTT04ucGFyc2UoJ3sgIicrZVswXS50cmltKCkrJyIgOiAiJytlWzFdLnRyaW0oKSsnIiB9Jyk7bz1PYmplY3QuYXNzaWduKG8sZSl9KSxvKTp7fX0sWnQucHJvdG90eXBlLnNldENsb3NlSWNvbj1mdW5jdGlvbihlKXt2YXIgdCxvLG49aC51cGRhdGVDb3JyZWN0VXJsKE8uT1RDbG9zZUJ0bkxvZ28pLHI9bShlKTtyLmxlbmd0aCYmKHQ9ZS5xdWVyeVNlbGVjdG9yKCJzdmciKSxiLmZwLkNNUEljb25TcHJpdGUmJm4mJiF0Pyh0PW5ldyBVUkwobix3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5wYXRobmFtZS5zcGxpdCgiLyIpLnBvcCgpLnNwbGl0KCIuIikuc2hpZnQoKSwobz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIikpLmNsYXNzTGlzdC5hZGQoIm90LXN2Zy1pY29uIiksby5pbm5lckhUTUw9Ijx1c2U+PC91c2U+IixvLnF1ZXJ5U2VsZWN0b3IoInVzZSIpLnNldEF0dHJpYnV0ZSgiaHJlZiIsIiMiK3QpLGUuYXBwZW5kQ2hpbGQobykpOmQoci5lbCwnYmFja2dyb3VuZC1pbWFnZTogdXJsKCInK24rJyIpJywhMCkpfSxadC5wcm90b3R5cGUuY3JlYXRlT3B0T3V0U2lnbmFsRWxlbWVudD1mdW5jdGlvbihlLHQpe3ZhciBvPWUodD8iI290LXBjLWNvbnRlbnQiOiIjb25ldHJ1c3QtcG9saWN5Iiksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxyPShuLmNsYXNzTGlzdC5hZGQoIm90LW9wdG91dC1zaWduYWwiKSxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSksaT0oci5jbGFzc0xpc3QuYWRkKCJvdC1vcHRvdXQtaWNvbiIpLGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7cmV0dXJuIGkuaW5uZXJUZXh0PXRoaXMuZ2V0T3B0T3V0U2lnbmFsVGV4dCh0KSxuLmFwcGVuZChyKSxuLmFwcGVuZChpKSxudWxsIT0odD1vKSYmdC5wcmVwZW5kKG4pLHRoaXMuYXBwbHlHdWFyZExvZ28oZSksbn0sWnQucHJvdG90eXBlLmdldE9wdE91dFNpZ25hbFRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/Ty5QQ09wdE91dFNpZ25hbFRleHQ6Ty5CT3B0T3V0U2lnbmFsVGV4dH0sWnQucHJvdG90eXBlLnNob3VsZFNob3dEb3VibGVPcHRJblNpZ25hbD1mdW5jdGlvbihvKXt2YXIgZSx0LG4scixpO3JldHVybiB2b2lkIDA9PT1vJiYobz0hMSksISghTy5QQ1Nob3dEb3VibGVPcHRJblNpZ25hbHx8KHQ9ISEoZT1ELmlzUENWaXNpYmxlP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmV0cnVzdC1wYy1zZGsiKTpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25ldHJ1c3QtYmFubmVyLXNkayIpKSYmIm5vbmUiIT09d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSkuZGlzcGxheSwhZSl8fCF0KSYmKGU9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsV3QpLHQ9di5zdHJUb0FycihlKSxuPWguZ2V0R3JvdXBDb25zZW50TWFwKHQpLHI9aC5nZXRHcm91cENvbnNlbnRNYXAoRC5ncm91cHNDb25zZW50KSxpPW51bGwhPT13LmFsZXJ0Qm94Q2xvc2VEYXRlKCksbnVsbD09KGU9Ty5Hcm91cHMpP3ZvaWQgMDplLnNvbWUoZnVuY3Rpb24oZSl7dmFyIHQ9Xy5ncGNFbmFibGVkJiZlLklzR3BjRW5hYmxlZDtpZihpfHx0KXt0PWUuQ3VzdG9tR3JvdXBJZDtpZigiMCI9PT1uW3RdJiYoIjEiPT09clt0XXx8bykpcmV0dXJuITB9cmV0dXJuITF9KSl9LFp0LnByb3RvdHlwZS5nZXRHcm91cENvbnNlbnRNYXA9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PShlPWUpP3ZvaWQgMDplLnJlZHVjZShmdW5jdGlvbihlLHQpe3Q9dC5zcGxpdCgiOiIpO3JldHVybiBlW3RbMF1dPXRbMV0sZX0se30pfSxadC5wcm90b3R5cGUuY3JlYXRlRG91YmxlT3B0SW5Db25maXJtRGlhbG9nPWZ1bmN0aW9uKGUsdCxvKXt2YXIgbj1udWxsPT0obj13aW5kb3cuT25lVHJ1c3RfQ29uZmlybURpYWxvZyk/dm9pZCAwOm4uZ2V0SW5zdGFuY2UoKTtuJiYobi5jcmVhdGUoe3RleHQ6Ty5QQ0RvdWJsZU9wdEluU2lnbmFsVGV4dCxkZXNjcmlwdGlvbjpPLlBDRG91YmxlT3B0SW5TaWduYWxEZXNjcmlwdGlvbixjYW5jZWxUZXh0Ok8uUENEb3VibGVPcHRJblNpZ25hbENhbmNlbFRleHQsY29uZmlybVRleHQ6Ty5QQ0RvdWJsZU9wdEluU2lnbmFsQ29uZmlybVRleHQsb25Db25maXJtOnQsb25DYW5jZWw6b30pLm9wZW4oZT8iI29uZXRydXN0LXBjLXNkayI6IiNvbmV0cnVzdC1iYW5uZXItc2RrIiksaC5zZXRDbG9zZUljb24oZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm90LWNvbmZpcm0tZGlhbG9nIC5vdC1jbG9zZS1pY29uIikpKX0sWnQucHJvdG90eXBlLmFwcGx5R3VhcmRMb2dvPWZ1bmN0aW9uKGkpe3JldHVybiBQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0LG8sbixyO3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gYi5mcC5DTVBJY29uU3ByaXRlPyhuPSI8c3ZnIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHVzZSBocmVmPScjb3Rfb3B0X291dF9zaWduYWwnPjwvdXNlPlxuICAgICAgICAgICAgPC9zdmc+IixtKGkoIi5vdC1vcHRvdXQtaWNvbiIpKS5odG1sKG4pLG0oaSgiLm90LW9wdG91dC1pY29uIHN2ZyIpKS5hdHRyKCJjbGFzcyIsIm90LXNvdXJjZS1zcHJpdGUiKSxbMywzXSk6WzMsMV07Y2FzZSAxOnJldHVybih0PU8uY29va2llUGVyc2lzdGVudExvZ28pLmluY2x1ZGVzKCJvdF9ndWFyZF9sb2dvLnN2ZyIpfHwobz1PLk9UQ2xvc2VCdG5Mb2dvLHI9by5pbmRleE9mKCJzdGF0aWMvIiksdD1vLnJlcGxhY2Uoby5zbGljZShyKzcpLCJvdF9ndWFyZF9sb2dvLnN2ZyIpKSwobz1iLm1vZHVsZUluaXRpYWxpemVyLlNjcmlwdFR5cGUpIT09VWUuTE9DQUwmJm8hPT1VZS5MT0NBTF9URVNUfHwodD1oLnVwZGF0ZUNvcnJlY3RVcmwodCkpLFs0LGp0LmdldFBlcnNpc3RlbnRDb29raWVTdmcodCldO2Nhc2UgMjpuPWUuc2VudCgpLHI9KHI9bikmJm4ucmVwbGFjZSgvPHN2ZyhbXHNcU10qPyk+L2ksJzxzdmckMSBhcmlhLWhpZGRlbj0idHJ1ZSI+JyksbSgiLm90LW9wdG91dC1pY29uIikuaHRtbChyKSxlLmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfSxadC5wcm90b3R5cGUudXBkYXRlVENTdHJpbmc9ZnVuY3Rpb24oKXt2YXIgZT13LmlhYlN0cmluZ1NESygpLnRjU3RyaW5nKCkuZW5jb2RlKEQudGNNb2RlbCk7RC5jbXBBcGkudXBkYXRlKGUsITEpfSxadC5wcm90b3R5cGUucmVwbGFjZVRleHRGcm9tU3RyaW5nPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gdC5zcGxpdChlKS5qb2luKG8pfSxadC5wcm90b3R5cGUuZ2V0U3R1YlF1ZXJ5UGFyYW09ZnVuY3Rpb24oZSl7dmFyIHQ9Xy5zdHViVXJsfHx3aW5kb3cub3RTdHViRGF0YSYmd2luZG93Lm90U3R1YkRhdGEuc3R1YlVybDtyZXR1cm4hdHx8KHQ9dC5zcGxpdCgiPyIpKS5sZW5ndGg8Mj9udWxsOm5ldyBVUkxTZWFyY2hQYXJhbXModFsxXSkuZ2V0KGUpfSxadC5wcm90b3R5cGUudXBkYXRlSW50VHlwZUZyb21Db29raWU9ZnVuY3Rpb24oKXt2YXIgZTtELmNvbnNlbnRJbnRlcmFjdGlvblR5cGV8fChlPUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULCJpbnRUeXBlIikpJiYoRC5jb25zZW50SW50ZXJhY3Rpb25UeXBlPXVlW2VdKX0sWnQucHJvdG90eXBlLmdldFN0dWJBdHRyPWZ1bmN0aW9uKGUpe3ZhciB0PV8uYmFubmVyU2NyaXB0RWxlbWVudCx0PXQmJnQuZ2V0QXR0cmlidXRlKGUpO3JldHVybiB0fHxoLmdldFN0dWJRdWVyeVBhcmFtKGUpfSxadC5wcm90b3R5cGUuZ2V0VmVuZG9yUGFnZUhlYWRlclRleHQ9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9UaXRsZSsnLCAjb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtdGl0bGUgcFthcmlhLWxldmVsPSIzIl0nKTtyZXR1cm4gZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50P2UuaW5uZXJUZXh0OiIifSxadC5wcm90b3R5cGUucmVwbGFjZUhlYWRpbmdzPWZ1bmN0aW9uKGUpe3ZhciB0O2lmKG51bGwhPSh0PWIubW9kdWxlSW5pdGlhbGl6ZXIpJiZ0LlNFT09wdGltaXphdGlvbilmb3IodmFyIG89MTtvPD02O28rKykobj0+e2UucXVlcnlTZWxlY3RvckFsbCgiaCIrbikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTtvLnNldEF0dHJpYnV0ZSgicm9sZSIsImhlYWRpbmciKSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1sZXZlbCIsbi50b1N0cmluZygpKSxvLmlubmVySFRNTD1lLmlubmVySFRNTCxlLmNsYXNzTmFtZSYmKG8uY2xhc3NOYW1lPWUuY2xhc3NOYW1lKSxlLmlkJiYoby5pZD1lLmlkKSxlLnRpdGxlJiYoby50aXRsZT1lLnRpdGxlKSxudWxsIT0odD1lLnBhcmVudE5vZGUpJiZ0LnJlcGxhY2VDaGlsZChvLGUpfSl9KShvKX0sWnQucHJvdG90eXBlLmhhc0FkamFjZW50RXh0ZXJuYWxMaW5rU3ZnPWZ1bmN0aW9uKGUpe2U9ZS5uZXh0RWxlbWVudFNpYmxpbmc7cmV0dXJuISghZXx8IlNWRyIhPT1lLnRhZ05hbWUudG9VcHBlckNhc2UoKXx8IWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJvdC1leHQtbG5rIikpfSxadC5wcm90b3R5cGUuYWRkRXh0ZXJuYWxJY29uRm9yTGlua3M9ZnVuY3Rpb24oZSl7dmFyIG8sbj10aGlzO08uQmFubmVyUmVxdWlyZUV4dGVybmFsTGlua3MmJihvPWIuZnAuQ01QSWNvblNwcml0ZSYmTy5PVEV4dGVybmFsTGlua0xvZ28mJiFPLkJhbm5lckV4dGVybmFsTGlua3NMb2dvLGUoJ2FbdGFyZ2V0PSJfYmxhbmsiXScpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnRFbGVtZW50O3QmJiJESVYiPT09dC50YWdOYW1lJiYodC5jbGFzc0xpc3QuY29udGFpbnMoIm90LXBjLWZvb3Rlci1sb2dvIil8fHQuY2xhc3NMaXN0LmNvbnRhaW5zKCJvdC1ibnItZm9vdGVyLWxvZ28iKSl8fChvP24uaGFzQWRqYWNlbnRFeHRlcm5hbExpbmtTdmcoZSl8fCh0PWgudXBkYXRlQ29ycmVjdFVybChPLk9URXh0ZXJuYWxMaW5rTG9nbyksdD1PLkJhbm5lckV4dGVybmFsTGlua3NMb2dvP2gudXBkYXRlQ29ycmVjdFVybChPLkJhbm5lckV4dGVybmFsTGlua3NMb2dvKTp0LHQ9bmV3IFVSTCh0LHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pLnBhdGhuYW1lLnNwbGl0KCIvIikucG9wKCkuc3BsaXQoIi4iKS5zaGlmdCgpLGUuaW5zZXJ0QWRqYWNlbnRIVE1MKCJhZnRlcmVuZCIsUy5nZXRJbm5lckh0bWxDb250ZW50KCI8c3ZnIGNsYXNzPSdvdC1leHQtbG5rJz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPScjIit0KyInPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4iKSkpOmUuY2xhc3NMaXN0LmFkZCgib3QtZXh0LWxuayIpKX0pKX0sWnQpO2Z1bmN0aW9uIFp0KCl7fXQucHJvdG90eXBlLmdldFB1cnBvc2VPbmVHcnBJZD1mdW5jdGlvbigpe3JldHVybiBFLklkUGF0dGVybnMuUHVyKyIxIn0sdC5wcm90b3R5cGUuc2V0UmVnaW9uUnVsZT1mdW5jdGlvbihlKXt0aGlzLnJ1bGU9ZX0sdC5wcm90b3R5cGUuZ2V0UmVnaW9uUnVsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJ1bGV9LHQucHJvdG90eXBlLmdldFJlZ2lvblJ1bGVUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsdGlWYXJpYW50VGVzdGluZ0VuYWJsZWQmJnRoaXMuc2VsZWN0ZWRWYXJpYW50P3RoaXMuc2VsZWN0ZWRWYXJpYW50LlRlbXBsYXRlVHlwZTp0aGlzLmNvbmRpdGlvbmFsTG9naWNFbmFibGVkJiYhdGhpcy5hbGxDb25kaXRpb25zRmFpbGVkP3RoaXMuQ29uZGl0aW9uLlRlbXBsYXRlVHlwZTp0aGlzLnJ1bGUuVHlwZX0sdC5wcm90b3R5cGUuZ2V0VGVtcGxhdGVOYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsdGlWYXJpYW50VGVzdGluZ0VuYWJsZWQmJnRoaXMuc2VsZWN0ZWRWYXJpYW50P3RoaXMuc2VsZWN0ZWRWYXJpYW50Lk5hbWU6KHRoaXMuY2FuVXNlQ29uZGl0aW9uYWxMb2dpYz90aGlzLkNvbmRpdGlvbjp0aGlzLnJ1bGUpLlRlbXBsYXRlTmFtZX0sdC5wcm90b3R5cGUuaXNHcm91cEV4aXN0SW5JbXBsaWVkQ29uc2VudGFibGVHcm91cD1mdW5jdGlvbih0KXtyZXR1cm4gXy5jb25zZW50YWJsZUltcGxpZWRDb25zZW50R3JvdXAuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5DdXN0b21Hcm91cElkPT09dC5DdXN0b21Hcm91cElkfSl9LHQucHJvdG90eXBlLnJlbW92ZUdyb3VwRnJvbUltcGxpZWRDb25zZW50YWJsZUdyb3VwPWZ1bmN0aW9uKHQpe3RoaXMuY29uc2VudGFibGVJbXBsaWVkQ29uc2VudEdyb3VwPXRoaXMuY29uc2VudGFibGVJbXBsaWVkQ29uc2VudEdyb3VwLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5DdXN0b21Hcm91cElkIT09dC5DdXN0b21Hcm91cElkfSl9LHQucHJvdG90eXBlLmluaXRDb25zZW50YWJsZUltcGxpZWRDb25zZW50R3JvdXA9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztlLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5TdGF0dXM9PT1mLklOQUNUSVZFX0xBTkRJTkdfUEFHRSYmdC5jb25zZW50YWJsZUltcGxpZWRDb25zZW50R3JvdXAucHVzaChlKX0pfSx0LnByb3RvdHlwZS5yZXNldEltcGxpZWRDb25zZW50YWJsZUdyb3Vwcz1mdW5jdGlvbigpe3RoaXMuY29uc2VudGFibGVJbXBsaWVkQ29uc2VudEdyb3VwPXRoaXMuY29uc2VudGFibGVHcnBzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5TdGF0dXM9PT1mLklOQUNUSVZFX0xBTkRJTkdfUEFHRX0pfSx0LnByb3RvdHlwZS5jYW5Vc2VHb29nbGVWZW5kb3JzPWZ1bmN0aW9uKGUpe3JldHVybiEhZSYmKHRoaXMuY29uZGl0aW9uYWxMb2dpY0VuYWJsZWQmJiF0aGlzLmFsbENvbmRpdGlvbnNGYWlsZWQ/dGhpcy5Db25kaXRpb246dGhpcy5ydWxlKS5Vc2VHb29nbGVWZW5kb3JzfSx0LnByb3RvdHlwZS5pbml0VmFyaWFibGVzPWZ1bmN0aW9uKCl7dGhpcy5jb25zZW50YWJsZUdycHM9W10sdGhpcy5jb25zZW50YWJsZUltcGxpZWRDb25zZW50R3JvdXA9W10sdGhpcy5jb25zZW50YWJsZUlhYkdycHM9W10sdGhpcy5pYWJHcnBzPVtdLHRoaXMuaWFiR3JwSWRNYXA9e30sdGhpcy5kb21haW5HcnBzPXt9LHRoaXMuaWFiR3JvdXBzPXtwdXJwb3Nlczp7fSxsZWdJbnRQdXJwb3Nlczp7fSxzcGVjaWFsUHVycG9zZXM6e30sZmVhdHVyZXM6e30sc3BlY2lhbEZlYXR1cmVzOnt9fX0sdC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihlKXt0aGlzLmdldEdQQ1NpZ25hbCgpLHRoaXMuaW5pdFZhcmlhYmxlcygpO3ZhciB0PWUuRG9tYWluRGF0YTt0aGlzLnNldFB1YmxpY0RvbWFpbkRhdGEoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0KSkpLHRoaXMuZG9tYWluRGF0YU1hcHBlcih0KSx0aGlzLmNvbW1vbkRhdGFNYXBwZXIoZS5Db21tb25EYXRhKSxPLk50ZnlDb25maWc9ZS5OdGZ5Q29uZmlnfHx7fSx0aGlzLnNldEJhbm5lck5hbWUoKSx0aGlzLnNldFBjTmFtZSgpLHRoaXMucG9wdWxhdGVHUENTaWduYWwoKSx0aGlzLnBvcHVsYXRlR1BDQnJvd3NlclNpZ25hbCgpLE8uR29vZ2xlQ29uc2VudC5HQ0VuYWJsZSYmdGhpcy5pbml0R0NNKCl9LHQucHJvdG90eXBlLmdldEdQQ1NpZ25hbD1mdW5jdGlvbigpe25hdmlnYXRvci5nbG9iYWxQcml2YWN5Q29udHJvbD90aGlzLmdwY0VuYWJsZWQ9ITA6dGhpcy5ncGNFbmFibGVkPSExfSx0LnByb3RvdHlwZS5pc1ZhbGlkQ29uc2VudE5vdGljZUdyb3VwPWZ1bmN0aW9uKGUsdCl7dmFyIG8sbixyLGkscyxhO3JldHVybiEhZS5TaG93SW5Qb3B1cCYmKG89dGhpcy5pc0dyb3VwSGFzQ29va2llcyhlKSxzPWk9cj1uPSExLG51bGwhPShhPWUpJiZhLlBhcmVudHx8KGUuU3ViR3JvdXBzLmxlbmd0aCYmKG49ZS5TdWJHcm91cHMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5Hcm91cE5hbWUmJmUuU2hvd0luUG9wdXAmJmUuRmlyc3RQYXJ0eUNvb2tpZXMubGVuZ3RofSkscj1lLlN1Ykdyb3Vwcy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLkdyb3VwTmFtZSYmZS5TaG93SW5Qb3B1cCYmKGUuSG9zdHMubGVuZ3RofHxlLkdlbmVyYWxWZW5kb3JzSWRzJiZlLkdlbmVyYWxWZW5kb3JzSWRzLmxlbmd0aCl9KSxpPWUuU3ViR3JvdXBzLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUuR3JvdXBOYW1lJiZlLkFsd2F5c1Nob3dDYXRlZ29yeX0pLCF0fHxlLkZpcnN0UGFydHlDb29raWVzLmxlbmd0aCYmZS5Ib3N0cy5sZW5ndGh8fChzPSFlLlN1Ykdyb3Vwcy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybi0xPT09THQuaW5kZXhPZihlLlR5cGUpfSkpKSxhPWUuU3ViR3JvdXBzLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuLTE8THQuaW5kZXhPZihlLlR5cGUpfSksKC0xPEx0LmluZGV4T2YoZS5UeXBlKXx8YSkmJihlLlNob3dWZW5kb3JMaXN0PSEwKSwoZS5Ib3N0cy5sZW5ndGh8fHJ8fG4pJiYoZS5TaG93SG9zdExpc3Q9ITApKSx0aGlzLmlzVmFsaWRHcm91cChvLGUsbixyLHMsaSkpfSx0LnByb3RvdHlwZS5pc1ZhbGlkR3JvdXA9ZnVuY3Rpb24oZSx0LG8sbixyLGkpe3ZhciBzPWwuc2hvd1ZlbmRvclNlcnZpY2UmJnQuVmVuZG9yU2VydmljZXMmJnQuVmVuZG9yU2VydmljZXMubGVuZ3RoO3JldHVybiEhdC5BbHdheXNTaG93Q2F0ZWdvcnl8fGV8fC0xPEx0LmluZGV4T2YodC5UeXBlKXx8b3x8bnx8aXx8cnx8c30sdC5wcm90b3R5cGUuaXNHcm91cEhhc0Nvb2tpZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuRmlyc3RQYXJ0eUNvb2tpZXMubGVuZ3RofHxlLkhvc3RzLmxlbmd0aHx8ZS5HZW5lcmFsVmVuZG9yc0lkcyYmZS5HZW5lcmFsVmVuZG9yc0lkcy5sZW5ndGh8fGUuVmVuZG9yU2VydmljZXMmJmUuVmVuZG9yU2VydmljZXMubGVuZ3RofSx0LnByb3RvdHlwZS5leHRyYWN0R3JvdXBJZEZvcklhYkdyb3VwPWZ1bmN0aW9uKGUpe3JldHVybi0xPGUuaW5kZXhPZihFLklkUGF0dGVybnMuU3BsX1B1cik/ZT1lLnJlcGxhY2UoRS5JZFBhdHRlcm5zLlNwbF9QdXIsIiIpOi0xPGUuaW5kZXhPZihFLklkUGF0dGVybnMuUHVyKT9lPWUucmVwbGFjZShFLklkUGF0dGVybnMuUHVyLCIiKTotMTxlLmluZGV4T2YoRS5JZFBhdHRlcm5zLkZ0KT9lPWUucmVwbGFjZShFLklkUGF0dGVybnMuRnQsIiIpOi0xPGUuaW5kZXhPZihFLklkUGF0dGVybnMuU3BsX0Z0KSYmKGU9ZS5yZXBsYWNlKEUuSWRQYXR0ZXJucy5TcGxfRnQsIiIpKSxlfSx0LnByb3RvdHlwZS5pc0lhYkdycEFuZE5vbkNvbnNlbnRhYmxlPWZ1bmN0aW9uKGUpe3ZhciB0PUUuR3JvdXBUeXBlcztyZXR1cm4hdGhpcy5pc0lhYjJvcnYyVGVtcGxhdGUmJi0xPEx0LmluZGV4T2YoZS5UeXBlKXx8dGhpcy5pc0lhYjJvcnYyVGVtcGxhdGUmJihlLlR5cGU9PT10LlB1cnx8ZS5UeXBlPT09dC5TdGFjaykmJiFlLkhhc0NvbnNlbnRPcHRPdXQmJiFlLkhhc0xlZ0ludE9wdE91dHx8ZS5UeXBlPT09dC5TcGxfRnQmJiFlLkhhc0NvbnNlbnRPcHRPdXR9LHQucHJvdG90eXBlLnNldFRjZlB1cnBvc2VQYXJlbnRNYXBGb3JHcnA9ZnVuY3Rpb24oZSl7dmFyIHQ9RS5Hcm91cFR5cGVzO2lmKHRoaXMuaXNUY2ZWMlRlbXBsYXRlJiZlLlBhcmVudClzd2l0Y2goZS5UeXBlKXtjYXNlIHQuUHVyOnRoaXMudGNmUGFyZW50TWFwLnB1ci5zZXQocGFyc2VJbnQoZS5JYWJHcnBJZCksZS5QYXJlbnQpO2JyZWFrO2Nhc2UgdC5TcGxfUHVyOnRoaXMudGNmUGFyZW50TWFwLnNwbF9wdXIuc2V0KHBhcnNlSW50KGUuSWFiR3JwSWQpLGUuUGFyZW50KTticmVhaztjYXNlIHQuRnQ6dGhpcy50Y2ZQYXJlbnRNYXAuZnQuc2V0KHBhcnNlSW50KGUuSWFiR3JwSWQpLGUuUGFyZW50KTticmVhaztjYXNlIHQuU3BsX0Z0OnRoaXMudGNmUGFyZW50TWFwLnNwbF9mdC5zZXQocGFyc2VJbnQoZS5JYWJHcnBJZCksZS5QYXJlbnQpfX0sdC5wcm90b3R5cGUucG9wdWxhdGVHcm91cHM9ZnVuY3Rpb24oZSxyKXt2YXIgaT10aGlzLHM9e30sYT1bXSxsPUUuR3JvdXBUeXBlcyx0PShlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5DdXN0b21Hcm91cElkO2lmKGkuc2V0SGVhbHRoU2lnbmF0dXJlRGF0YUludG9Hcm91cChyLGUpLHZvaWQgMCE9PWUuSGFzQ29uc2VudE9wdE91dCYmZS5Jc0lhYlB1cnBvc2V8fChlLkhhc0NvbnNlbnRPcHRPdXQ9ITApLCFpLmlzSWFiR3JwQW5kTm9uQ29uc2VudGFibGUoZSkpe2lmKHQhPT1fLmdldFB1cnBvc2VPbmVHcnBJZCgpfHxlLlNob3dJblBvcHVwfHwoaS5wdXJwb3NlT25lVHJlYXRtZW50PSEwKSxpLmdycENvbnRhaW5MZWdhbE9wdE91dD1lLkhhc0xlZ0ludE9wdE91dHx8aS5ncnBDb250YWluTGVnYWxPcHRPdXQsZS5TdWJHcm91cHM9W10sZS5QYXJlbnQ/YS5wdXNoKGUpOnNbdF09ZSxpLmlzSWFiMm9ydjJUZW1wbGF0ZSYmLTE8THQuaW5kZXhPZihlLlR5cGUpKXt2YXIgbz1pLmV4dHJhY3RHcm91cElkRm9ySWFiR3JvdXAodCksbj0oaS5pYWJHcnBJZE1hcFt0XT1vLGUuSWFiR3JwSWQ9byx7ZGVzY3JpcHRpb246ZS5Hcm91cERlc2NyaXB0aW9uLGRlc2NyaXB0aW9uTGVnYWw6ZS5EZXNjcmlwdGlvbkxlZ2FsLGlkOk51bWJlcihvKSxuYW1lOmUuR3JvdXBOYW1lfSk7c3dpdGNoKGUuVHlwZSl7Y2FzZSBsLlB1cjppLmlhYkdyb3Vwcy5wdXJwb3Nlc1tvXT1uO2JyZWFrO2Nhc2UgbC5TcGxfUHVyOmkuaWFiR3JvdXBzLnNwZWNpYWxQdXJwb3Nlc1tvXT1uO2JyZWFrO2Nhc2UgbC5GdDppLmlhYkdyb3Vwcy5mZWF0dXJlc1tvXT1uO2JyZWFrO2Nhc2UgbC5TcGxfRnQ6aS5pYWJHcm91cHMuc3BlY2lhbEZlYXR1cmVzW29dPW59fWkuc2V0VGNmUHVycG9zZVBhcmVudE1hcEZvckdycChlKX19KSxhLmZvckVhY2goZnVuY3Rpb24oZSl7c1tlLlBhcmVudF0mJmUuU2hvd0luUG9wdXAmJihlLkFsd2F5c1Nob3dDYXRlZ29yeXx8ZS5GaXJzdFBhcnR5Q29va2llcy5sZW5ndGh8fGUuSG9zdHMubGVuZ3RofHxlLkdlbmVyYWxWZW5kb3JzSWRzJiZlLkdlbmVyYWxWZW5kb3JzSWRzLmxlbmd0aHx8LTE8THQuaW5kZXhPZihlLlR5cGUpKSYmc1tlLlBhcmVudF0uU3ViR3JvdXBzLnB1c2goZSl9KSxbXSk7cmV0dXJuIE9iamVjdC5rZXlzKHMpLmZvckVhY2goZnVuY3Rpb24oZSl7aS5pc1ZhbGlkQ29uc2VudE5vdGljZUdyb3VwKHNbZV0sci5Jc0lhYkVuYWJsZWQpJiYoc1tlXS5TdWJHcm91cHMuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLk9yZGVyLXQuT3JkZXJ9KSx0LnB1c2goc1tlXSkpfSksdGhpcy5pbml0R3JwVmFyKHQpLHQuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLk9yZGVyLXQuT3JkZXJ9KX0sdC5wcm90b3R5cGUuc2V0SGVhbHRoU2lnbmF0dXJlRGF0YUludG9Hcm91cD1mdW5jdGlvbihlLHQpe3RoaXMucmVxdWlyZVNpZ25hdHVyZUVuYWJsZWQmJmUuUmVxdWlyZVNpZ25hdHVyZUNJRD09PXQuQ3VzdG9tR3JvdXBJZCYmKHQubmVlZHNIZWFsdGhTaWduYXR1cmU9ITAsIjEiPT09TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5IRUFMVEhfU0lHTkFUVVJFX0FVVEhPUklaQVRJT04pKSYmKHQuaGVhbHRoU2lnbmF0dXJlSWQ9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5DT05TRU5UX0lEKSl9LHQucHJvdG90eXBlLmlzR3JwQ29uc2VudGFibGU9ZnVuY3Rpb24oZSl7dmFyIHQ9RS5Hcm91cFR5cGVzO3JldHVybiBlLlR5cGU9PT10LkNvb2tpZXx8ZS5UeXBlPT09dC5QdXJ8fGUuVHlwZT09PXQuU3BsX0Z0fSx0LnByb3RvdHlwZS5pbml0R3JwVmFyPWZ1bmN0aW9uKGUpe3ZhciBvPXRoaXMsbj0hMCxyPSEwO2UuZm9yRWFjaChmdW5jdGlvbihlKXtGKFtlXSxlLlN1Ykdyb3VwcykuZm9yRWFjaChmdW5jdGlvbihlKXtvLmlzR3JwQ29uc2VudGFibGUoZSkmJihvLmRvbWFpbkdycHNbZS5QdXJwb3NlSWQudG9Mb3dlckNhc2UoKV09ZS5DdXN0b21Hcm91cElkKSwtMTxFdC5pbmRleE9mKGUuVHlwZSkmJm8uY29uc2VudGFibGVHcnBzLnB1c2goZSksLTE8X3QuaW5kZXhPZihlLlR5cGUpJiZvLmNvbnNlbnRhYmxlSWFiR3Jwcy5wdXNoKGUpLC0xPT09RXQuaW5kZXhPZihlLlR5cGUpJiZvLmlhYkdycHMucHVzaChlKSxvLmFwcGx5R3BjU3RhdHVzT3ZlcnJpZGUoZSk7dmFyIHQ9by5hcHBseUROVFN0YXR1c092ZXJyaWRlKGUpO3QhPT1mLkFDVElWRSYmdCE9PWYuSU5BQ1RJVkVfTEFORElOR19QQUdFJiZ0IT09Zi5ETlR8fChuPSExKSx0IT09Zi5JTkFDVElWRV9MQU5ESU5HX1BBR0UmJnQhPT1mLkFMV0FZU19BQ1RJVkUmJihyPSExKSxvLmdwY0ZvckFHcnBFbmFibGVkfHwoby5ncGNGb3JBR3JwRW5hYmxlZD1lLklzR3BjRW5hYmxlZCl9KX0pLHRoaXMuaXNPcHRJbk1vZGU9bix0aGlzLmlzU29mdE9wdEluTW9kZT1yfSx0LnByb3RvdHlwZS5hcHBseUdwY1N0YXR1c092ZXJyaWRlPWZ1bmN0aW9uKGUpe3ZhciB0O3RoaXMuZ3BjRW5hYmxlZCYmZS5Jc0dwY0VuYWJsZWQmJihudWxsPT0odD1udWxsPT0odD1lLlN0YXR1cyk/dm9pZCAwOnQudG9Mb3dlckNhc2UoKSk/dm9pZCAwOnQudHJpbSgpKSE9PWYuQUxXQVlTX0lOQUNUSVZFLnRvTG93ZXJDYXNlKCkmJihlLlN0YXR1cz1mLklOQUNUSVZFKX0sdC5wcm90b3R5cGUuYXBwbHlETlRTdGF0dXNPdmVycmlkZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLkROVEVuYWJsZWQmJmUuSXNEbnRFbmFibGVkJiYobnVsbD09KHQ9bnVsbD09KHQ9ZS5TdGF0dXMpP3ZvaWQgMDp0LnRvTG93ZXJDYXNlKCkpP3ZvaWQgMDp0LnRyaW0oKSkhPT1mLkFMV0FZU19JTkFDVElWRS50b0xvd2VyQ2FzZSgpP2YuRE5UOmUuU3RhdHVzLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQudHJpbSgpfSx0LnByb3RvdHlwZS5kb21haW5EYXRhTWFwcGVyPWZ1bmN0aW9uKGUpe3RoaXMucmVxdWlyZVNpZ25hdHVyZUVuYWJsZWQ9KG51bGw9PSh0PWIuZnApP3ZvaWQgMDp0LkNvb2tpZVYyU3VibWl0UHVycG9zZSkmJmUuSXNSZXF1aXJlU2lnbmF0dXJlRW5hYmxlZCYmZS5QQ1RlbXBsYXRlVXBncmFkZTt2YXIgdD17QXJpYUNsb3NlUHJlZmVyZW5jZXM6ZS5BcmlhQ2xvc2VQcmVmZXJlbmNlcyxBcmlhT3BlblByZWZlcmVuY2VzOmUuQXJpYU9wZW5QcmVmZXJlbmNlcyxBcmlhUHJpdmFjeTplLkFyaWFQcml2YWN5LENlbnRlclJvdW5kZWQ6ZS5DZW50ZXJSb3VuZGVkLEZsYXQ6ZS5GbGF0LEZsb2F0aW5nRmxhdDplLkZsb2F0aW5nRmxhdCxGbG9hdGluZ1JvdW5kZWQ6ZS5GbG9hdGluZ1JvdW5kZWQsRmxvYXRpbmdSb3VuZGVkQ29ybmVyOmUuRmxvYXRpbmdSb3VuZGVkQ29ybmVyLEZsb2F0aW5nUm91bmRlZEljb246ZS5GbG9hdGluZ1JvdW5kZWRJY29uLFZlbmRvckxldmVsT3B0T3V0OmUuSXNJYWJFbmFibGVkLEFib3V0Q29va2llc1RleHQ6ZS5BYm91dENvb2tpZXNUZXh0LEFib3V0TGluazplLkFib3V0TGluayxBYm91dFRleHQ6ZS5BYm91dFRleHQsQWN0aXZlVGV4dDplLkFjdGl2ZVRleHQsQWRkTGlua3NUb0Nvb2tpZXBlZGlhOmUuQWRkTGlua3NUb0Nvb2tpZXBlZGlhLEFsZXJ0QWxsb3dDb29raWVzVGV4dDplLkFsZXJ0QWxsb3dDb29raWVzVGV4dCxBbGVydENsb3NlVGV4dDplLkFsZXJ0Q2xvc2VUZXh0LEFsZXJ0TGF5b3V0OmUuQWxlcnRMYXlvdXQsQWxlcnRNb3JlSW5mb1RleHQ6ZS5BbGVydE1vcmVJbmZvVGV4dCxBbGVydE1vcmVJbmZvVGV4dERpYWxvZzplLkFsZXJ0TW9yZUluZm9UZXh0RGlhbG9nLEFsZXJ0Tm90aWNlVGV4dDplLkFsZXJ0Tm90aWNlVGV4dCxBbGxvd0FsbFRleHQ6ZS5QcmVmZXJlbmNlQ2VudGVyQ29uZmlybVRleHQsQWx3YXlzQWN0aXZlVGV4dDplLkFsd2F5c0FjdGl2ZVRleHQsQWx3YXlzSW5hY3RpdmVUZXh0OmUuQWx3YXlzSW5hY3RpdmVUZXh0LEJhbm5lckFkZGl0aW9uYWxEZXNjUGxhY2VtZW50OmUuQmFubmVyQWRkaXRpb25hbERlc2NQbGFjZW1lbnQsQmFubmVyQWRkaXRpb25hbERlc2NyaXB0aW9uOmUuQmFubmVyQWRkaXRpb25hbERlc2NyaXB0aW9uLEJhbm5lckNsb3NlQnV0dG9uVGV4dDplLkJhbm5lckNsb3NlQnV0dG9uVGV4dCxCYW5uZXJGZWF0dXJlRGVzY3JpcHRpb246ZS5CYW5uZXJGZWF0dXJlRGVzY3JpcHRpb24sQmFubmVyRmVhdHVyZVRpdGxlOmUuQmFubmVyRmVhdHVyZVRpdGxlLEJhbm5lcklBQlBhcnRuZXJzTGluazplLkJhbm5lcklBQlBhcnRuZXJzTGluayxCYW5uZXJJbmZvcm1hdGlvbkRlc2NyaXB0aW9uOmUuQmFubmVySW5mb3JtYXRpb25EZXNjcmlwdGlvbixCYW5uZXJJbmZvcm1hdGlvblRpdGxlOmUuQmFubmVySW5mb3JtYXRpb25UaXRsZSxCYW5uZXJOb25JQUJWZW5kb3JMaXN0VGV4dDplLkJhbm5lck5vbklBQlZlbmRvckxpc3RUZXh0LEJhbm5lclBvc2l0aW9uOmUuQmFubmVyUG9zaXRpb24sQmFubmVyUHVycG9zZURlc2NyaXB0aW9uOmUuQmFubmVyUHVycG9zZURlc2NyaXB0aW9uLEJhbm5lclB1cnBvc2VUaXRsZTplLkJhbm5lclB1cnBvc2VUaXRsZSxCYW5uZXJSZWplY3RBbGxCdXR0b25UZXh0OmUuQmFubmVyUmVqZWN0QWxsQnV0dG9uVGV4dCxCYW5uZXJSZWxhdGl2ZUZvbnRTaXplc1RvZ2dsZTplLkJhbm5lclJlbGF0aXZlRm9udFNpemVzVG9nZ2xlLEJhbm5lclNldHRpbmdzQnV0dG9uRGlzcGxheUxpbms6ZS5CYW5uZXJTZXR0aW5nc0J1dHRvbkRpc3BsYXlMaW5rLEJhbm5lclNob3dSZWplY3RBbGxCdXR0b246ZS5CYW5uZXJTaG93UmVqZWN0QWxsQnV0dG9uLEJTaG93T3B0T3V0U2lnbmFsOmUuQlNob3dPcHRPdXRTaWduYWwsQk9wdE91dFNpZ25hbFRleHQ6ZS5CT3B0T3V0U2lnbmFsVGV4dCxCUmVnaW9uQXJpYUxhYmVsOmUuQlJlZ2lvbkFyaWFMYWJlbCxCYW5uZXJUaXRsZTplLkJhbm5lclRpdGxlLEJDbG9zZUJ1dHRvblR5cGU6ZS5CQ2xvc2VCdXR0b25UeXBlLEJDb250aW51ZVRleHQ6ZS5CQ29udGludWVUZXh0LEJDb29raWVQb2xpY3lMaW5rU2NyZWVuUmVhZGVyOmUuQkNvb2tpZVBvbGljeUxpbmtTY3JlZW5SZWFkZXIsQm5yTG9nb0FyaWE6ZS5CbnJMb2dvQXJpYSxCSW1wcmludExpbmtTY3JlZW5SZWFkZXI6ZS5CSW1wcmludExpbmtTY3JlZW5SZWFkZXIsQkluaXRpYWxGb2N1czplLkJJbml0aWFsRm9jdXMsQkluaXRpYWxGb2N1c0xpbmtBbmRCdXR0b246ZS5CSW5pdGlhbEZvY3VzTGlua0FuZEJ1dHRvbixCUmVqZWN0Q29uc2VudFR5cGU6ZS5CUmVqZWN0Q29uc2VudFR5cGUsQlNhdmVCdG5UeHQ6ZS5CU2F2ZUJ0blRleHQsQlNob3dJbXByaW50TGluazplLkJTaG93SW1wcmludExpbmssQlNob3dQb2xpY3lMaW5rOmUuQlNob3dQb2xpY3lMaW5rLEJTaG93U2F2ZUJ0bjplLkJTaG93U2F2ZUJ0bixjY3RJZDplLmNjdElkLENhbkdlbmVyYXRlTm90R2l2ZW5SZWNlaXB0czplLkNhbkdlbmVyYXRlTm90R2l2ZW5SZWNlaXB0cyxDaG9pY2VzQmFubmVyOmUuQ2hvaWNlc0Jhbm5lcixDbG9zZVNob3VsZEFjY2VwdEFsbENvb2tpZXM6ZS5DbG9zZVNob3VsZEFjY2VwdEFsbENvb2tpZXMsQ2xvc2VUZXh0OmUuQ2xvc2VUZXh0LENvbmZpcm1UZXh0OmUuQ29uZmlybVRleHQsQ29uc2VudE1vZGVsOntOYW1lOmUuQ29uc2VudE1vZGVsfSxDb29raWVMaXN0RGVzY3JpcHRpb246ZS5Db29raWVMaXN0RGVzY3JpcHRpb24sQ29va2llTGlzdFRpdGxlOmUuQ29va2llTGlzdFRpdGxlLENvb2tpZVNldHRpbmdCdXR0b25UZXh0OmUuQ29va2llU2V0dGluZ0J1dHRvblRleHQsQ29va2llc1VzZWRUZXh0OmUuQ29va2llc1VzZWRUZXh0LEN1c3RvbUpzOmUuQ3VzdG9tSnMsZmlyc3RQYXJ0eVR4dDplLkNvb2tpZUZpcnN0UGFydHlUZXh0LEZvb3RlckRlc2NyaXB0aW9uVGV4dDplLkZvb3RlckRlc2NyaXB0aW9uVGV4dCxGb3JjZUNvbnNlbnQ6ZS5Gb3JjZUNvbnNlbnQsR2VuZXJhbFZlbmRvcnM6ZS5HZW5lcmFsVmVuZG9ycyxHZW5lcmFsVmVuZG9yc0VuYWJsZWQ6ZS5QQ2VudGVyVXNlR2VuZXJhbFZlbmRvcnNUb2dnbGUsR2VuVmVuT3B0T3V0OmUuUENlbnRlckFsbG93VmVuZG9yT3B0b3V0LEdsb2JhbFJlc3RyaWN0aW9uRW5hYmxlZDplLkdsb2JhbFJlc3RyaWN0aW9uRW5hYmxlZCxHbG9iYWxSZXN0cmljdGlvbnM6ZS5HbG9iYWxSZXN0cmljdGlvbnMsR29vZ2xlQ29uc2VudDp7R0NBZFN0b3JhZ2U6ZS5HQ0FkU3RvcmFnZSxHQ0FuYWx5dGljc1N0b3JhZ2U6ZS5HQ0FuYWx5dGljc1N0b3JhZ2UsR0NFbmFibGU6ZS5HQ0VuYWJsZSxHQ0Z1bmN0aW9uYWxpdHlTdG9yYWdlOmUuR0NGdW5jdGlvbmFsaXR5U3RvcmFnZSxHQ1BlcnNvbmFsaXphdGlvblN0b3JhZ2U6ZS5HQ1BlcnNvbmFsaXphdGlvblN0b3JhZ2UsR0NSZWRhY3RFbmFibGU6ZS5HQ1JlZGFjdEVuYWJsZSxHQ1NlY3VyaXR5U3RvcmFnZTplLkdDU2VjdXJpdHlTdG9yYWdlLEdDV2FpdFRpbWU6ZS5HQ1dhaXRUaW1lLEdDQWRVc2VyRGF0YTplLkdDQWRVc2VyRGF0YSxHQ0FkUGVyc29uYWxpemF0aW9uOmUuR0NBZFBlcnNvbmFsaXphdGlvbn0sTUNNRGF0YTplLk1DTURhdGEsQUNNRGF0YTplLkFDTURhdGEsR3JvdXBHZW5WZW5MaXN0TGFiZWw6ZS5QQ2VudGVyR2VuZXJhbFZlbmRvclRoaXJkUGFydHlDb29raWVzVGV4dCxHcm91cHM6dGhpcy5wb3B1bGF0ZUdyb3VwcyhlLkdyb3VwcyxlKSxIaWRlVG9vbGJhckNvb2tpZUxpc3Q6ZS5IaWRlVG9vbGJhckNvb2tpZUxpc3QsSWFiVHlwZTplLklhYlR5cGUsSW5hY3RpdmVUZXh0OmUuSW5hY3RpdmVUZXh0LElzQ29uc2VudExvZ2dpbmdFbmFibGVkOmUuSXNDb25zZW50TG9nZ2luZ0VuYWJsZWQsSXNJYWJFbmFibGVkOmUuSXNJYWJFbmFibGVkLElzSWFiVGhpcmRQYXJ0eUNvb2tpZUVuYWJsZWQ6ZS5Jc0lhYlRoaXJkUGFydHlDb29raWVFbmFibGVkLElzTGlmZXNwYW5FbmFibGVkOmUuSXNMaWZlc3BhbkVuYWJsZWQsTGFuZ3VhZ2U6ZS5MYW5ndWFnZSxMYXN0UmVjb25zZW50RGF0ZTplLkxhc3RSZWNvbnNlbnREYXRlLExmU3BhblNlY3M6ZS5QQ0xpZmVTcGFuU2VjcyxMZlNwbldrOmUuUENMaWZlU3BhbldrLExmU3BuV2tzOmUuUENMaWZlU3BhbldrcyxMZlNwbllyOmUuUENMaWZlU3BhbllyLExmU3BuWXJzOmUuUENMaWZlU3BhbllycyxMaWZlc3BhbkR1cmF0aW9uVGV4dDplLkxpZmVzcGFuRHVyYXRpb25UZXh0LE1haW5JbmZvVGV4dDplLk1haW5JbmZvVGV4dCxNYWluVGV4dDplLk1haW5UZXh0LE1hbmFnZVByZWZlcmVuY2VUZXh0OmUuUHJlZmVyZW5jZUNlbnRlck1hbmFnZVByZWZlcmVuY2VzVGV4dCxOZXdWZW5kb3JzSW5hY3RpdmVFbmFibGVkOmUuTmV3VmVuZG9yc0luYWN0aXZlRW5hYmxlZCxOZXdXaW5UeHQ6ZS5QcmVmZXJlbmNlQ2VudGVyTW9yZUluZm9TY3JlZW5SZWFkZXIsTmV4dFBhZ2VBY2NlcHRBbGxDb29raWVzOmUuTmV4dFBhZ2VBY2NlcHRBbGxDb29raWVzLE5leHRQYWdlQ2xvc2VCYW5uZXI6ZS5OZXh0UGFnZUNsb3NlQmFubmVyLE5vQmFubmVyOmUuTm9CYW5uZXIsT25DbGlja0FjY2VwdEFsbENvb2tpZXM6ZS5PbkNsaWNrQWNjZXB0QWxsQ29va2llcyxPbkNsaWNrQ2xvc2VCYW5uZXI6ZS5PbkNsaWNrQ2xvc2VCYW5uZXIsT3ZlcnJpZGRlblZlbmRvcnM6bnVsbCE9KHQ9ZS5PdmVycmlkZGVuVmVuZG9ycyk/dDp7fSxPdmVycmlkZW5Hb29nbGVWZW5kb3JzOm51bGwhPSh0PWUuT3ZlcnJpZGVuR29vZ2xlVmVuZG9ycyk/dDp7fSxQdWJsaXNoZXI6ZS5wdWJsaXNoZXIsUHVibGlzaGVyQ0M6ZS5QdWJsaXNoZXJDQyxSZWNvbnNlbnRGcmVxdWVuY3lEYXlzOmUuUmVjb25zZW50RnJlcXVlbmN5RGF5cyxTY3JvbGxBY2NlcHRBbGxDb29raWVzOmUuU2Nyb2xsQWNjZXB0QWxsQ29va2llcyxTY3JvbGxDbG9zZUJhbm5lcjplLlNjcm9sbENsb3NlQmFubmVyLFNob3dBbGVydE5vdGljZTplLlNob3dBbGVydE5vdGljZSxzaG93QmFubmVyQ2xvc2VCdXR0b246ZS5zaG93QmFubmVyQ2xvc2VCdXR0b24sU2hvd1ByZWZlcmVuY2VDZW50ZXJDbG9zZUJ1dHRvbjplLlNob3dQcmVmZXJlbmNlQ2VudGVyQ2xvc2VCdXR0b24sVGhpcmRQYXJ0eUNvb2tpZUxpc3RUZXh0OmUuVGhpcmRQYXJ0eUNvb2tpZUxpc3RUZXh0LHRoaXJkUGFydHlUeHQ6ZS5Db29raWVUaGlyZFBhcnR5VGV4dCxVc2VHb29nbGVWZW5kb3JzOnRoaXMuY2FuVXNlR29vZ2xlVmVuZG9ycyhlLlBDVGVtcGxhdGVVcGdyYWRlKSxWZW5kb3JDb25zZW50TW9kZWw6ZS5WZW5kb3JDb25zZW50TW9kZWwsVmVuZG9yTGlzdFRleHQ6ZS5WZW5kb3JMaXN0VGV4dCxWZW5kb3JzOmUuVmVuZG9ycyxQQ0NhdGVnb3J5U3R5bGU6ZS5QQ0NhdGVnb3J5U3R5bGV8fFNlLkNoZWNrYm94LFBDU2hvd0Fsd2F5c0FjdGl2ZVRvZ2dsZTplLlBDU2hvd0Fsd2F5c0FjdGl2ZVRvZ2dsZSxQQ2VudGVySW1wcmludExpbmtTY3JlZW5SZWFkZXI6ZS5QQ2VudGVySW1wcmludExpbmtTY3JlZW5SZWFkZXIsUENlbnRlckltcHJpbnRMaW5rVGV4dDplLlBDZW50ZXJJbXByaW50TGlua1RleHQsUENlbnRlckltcHJpbnRMaW5rVXJsOmUuUENlbnRlckltcHJpbnRMaW5rVXJsLFBDU2hvd09wdE91dFNpZ25hbDplLlBDU2hvd09wdE91dFNpZ25hbCxQQ1Nob3dEb3VibGVPcHRJblNpZ25hbDplLlBDU2hvd0RvdWJsZU9wdEluU2lnbmFsLFBDRG91YmxlT3B0SW5TaWduYWxUZXh0OmUuUENEb3VibGVPcHRJblNpZ25hbFRleHQsUENEb3VibGVPcHRJblNpZ25hbERlc2NyaXB0aW9uOmUuUENEb3VibGVPcHRJblNpZ25hbERlc2NyaXB0aW9uLFBDRG91YmxlT3B0SW5TaWduYWxDb25maXJtVGV4dDplLlBDRG91YmxlT3B0SW5TaWduYWxDb25maXJtVGV4dCxQQ0RvdWJsZU9wdEluU2lnbmFsQ2FuY2VsVGV4dDplLlBDRG91YmxlT3B0SW5TaWduYWxDYW5jZWxUZXh0LFBDT3B0T3V0U2lnbmFsVGV4dDplLlBDT3B0T3V0U2lnbmFsVGV4dCxQQ1JlZ2lvbkFyaWFMYWJlbDplLlBDUmVnaW9uQXJpYUxhYmVsLFBDSG9zdE5vdEZvdW5kOmUuUENIb3N0Tm90Rm91bmQsUENWZW5kb3JOb3RGb3VuZDplLlBDVmVuZG9yTm90Rm91bmQsUENUZWNoTm90Rm91bmQ6ZS5QQ1RlY2hOb3RGb3VuZCxVc2VOb25TdGFuZGFyZFN0YWNrczplLlVzZU5vblN0YW5kYXJkU3RhY2tzLFJlcXVpcmVTaWduYXR1cmVDSUQ6ZS5SZXF1aXJlU2lnbmF0dXJlQ0lELElzUmVxdWlyZVNpZ25hdHVyZUVuYWJsZWQ6ZS5Jc1JlcXVpcmVTaWduYXR1cmVFbmFibGVkLFBDUmVxdWlyZVNpZ25hdHVyZUhlbHBUZXh0OmUuUENSZXF1aXJlU2lnbmF0dXJlSGVscFRleHQsUENSZXF1aXJlU2lnbmF0dXJlRmllbGRMYWJlbDplLlBDUmVxdWlyZVNpZ25hdHVyZUZpZWxkTGFiZWwsUENSZXF1aXJlU2lnbmF0dXJlSGVhZGVyVGV4dDplLlBDUmVxdWlyZVNpZ25hdHVyZUhlYWRlclRleHQsUENSZXF1aXJlU2lnbmF0dXJlSGVhZGVyRGVzYzplLlBDUmVxdWlyZVNpZ25hdHVyZUhlYWRlckRlc2MsUENSZXF1aXJlU2lnbmF0dXJlUmVqZWN0QnRuVGV4dDplLlBDUmVxdWlyZVNpZ25hdHVyZVJlamVjdEJ0blRleHQsUENSZXF1aXJlU2lnbmF0dXJlQ29uZmlybUJ0blRleHQ6ZS5QQ1JlcXVpcmVTaWduYXR1cmVDb25maXJtQnRuVGV4dCxQQ0Nvb2tpZUxpc3RGaWx0ZXJzVGV4dDplLlBDQ29va2llTGlzdEZpbHRlcnNUZXh0LEdQQ09wdE91dE5vdGVUZXh0OmUuR1BDT3B0T3V0Tm90ZVRleHQsRE5UT3B0T3V0Tm90ZVRleHQ6ZS5ETlRPcHRPdXROb3RlVGV4dH07dGhpcy5zZXRCdXR0b25zT3JkZXIodCxlKSx0aGlzLnNldFBDRG9tYWluRGF0YSh0LGUpLHRoaXMuc2V0QWRkaXRpb25hbFRlY2hub2xvZ2llcyh0LGUpLHRoaXMuc2V0VmVuZG9yU2VydmljZUNvbmZpZ0RhdGEodCxlKSx0aGlzLnNldERvbWFpbkNvbW1vbkRhdGFEZWZhdWx0cyh0LGUpLHRoaXMuc2V0RG9tYWluUENEYXRhRGVmYXVsdHModCxlKSx0aGlzLnNldEdwcERhdGEodCxlKSxlLlBDVGVtcGxhdGVVcGdyYWRlJiYoZS5DZW50ZXJ8fGUuUGFuZWwpJiYodC5QQ0FjY29yZGlvblN0eWxlPWUuUENBY2NvcmRpb25TdHlsZSksdC5QQ2VudGVyRW5hYmxlQWNjb3JkaW9uPWUuUENBY2NvcmRpb25TdHlsZSE9PWFlLk5vQWNjb3JkaW9uLHRoaXMubGVnSW50U2V0dGluZ3M9ZS5MZWdJbnRTZXR0aW5nc3x8e30sdm9pZCAwPT09dGhpcy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMSSYmKHRoaXMubGVnSW50U2V0dGluZ3MuUEFsbG93TEk9ITApLGIubW9kdWxlSW5pdGlhbGl6ZXIuTW9iaWxlU0RLfHwodGhpcy5wYWdlUHVzaGVkRG93bj1lLkJhbm5lclB1c2hlc0Rvd25QYWdlKSxPPVIoUih7fSxPKSx0KX0sdC5wcm90b3R5cGUuc2V0QnV0dG9uc09yZGVyPWZ1bmN0aW9uKGUsdCl7Yi5mcC5XZWJCdXR0b25DdXN0b21pc2F0aW9ucyYmKGUuUGNCTz17MDp0LlBDQlBPRmlyc3RQb3NpdGlvbiwxOnQuUENCUE9TZWNvbmRQb3NpdGlvbiwyOnQuUENCUE9UaGlyZFBvc2l0aW9ufSxlLkJhbm5lckJPPSgoZT17fSlbdC5CYW5uZXJCUE9GaXJzdFBvc2l0aW9uXT0wLGVbdC5CYW5uZXJCUE9TZWNvbmRQb3NpdGlvbl09MSxlW3QuQmFubmVyQlBPVGhpcmRQb3NpdGlvbl09MixlW3QuQmFubmVyQlBPRm91cnRoUG9zaXRpb25dPTMsZSkpfSx0LnByb3RvdHlwZS5zZXRHcHBEYXRhPWZ1bmN0aW9uKGUsdCl7ZS5HUFBQdXJwb3Nlcz1SKHt9LHQuR1BQUHVycG9zZXMpLGUuSXNHUFBEYXRhUHJvY2Vzc2luZ0FwcGxpY2FibGU9dC5Jc0dQUERhdGFQcm9jZXNzaW5nQXBwbGljYWJsZSxlLklzR1BQRW5hYmxlZD10LklzR1BQRW5hYmxlZCxlLklzR1BQS25vd25DaGlsZEFwcGxpY2FibGU9dC5Jc0dQUEtub3duQ2hpbGRBcHBsaWNhYmxlLGUuSXNNU1BBRW5hYmxlZD10LklzTVNQQUVuYWJsZWQsZS5NU1BBT3B0aW9uTW9kZT10Lk1TUEFPcHRpb25Nb2RlLGUuVXNlR1BQVVNOYXRpb25hbD10LlVzZUdQUFVTTmF0aW9uYWx9LHQucHJvdG90eXBlLnNldFBDRG9tYWluRGF0YT1mdW5jdGlvbihlLHQpe2UuUENBY2NvcmRpb25TdHlsZT1hZS5DYXJldCxlLlBDQWN0aXZlVGV4dD10LlBDQWN0aXZlVGV4dCxlLlBDQ2xvc2VCdXR0b25UeXBlPXQuUENDbG9zZUJ1dHRvblR5cGUsZS5QQ0NvbnRpbnVlVGV4dD10LlBDQ29udGludWVUZXh0LGUuUENDb29raWVQb2xpY3lMaW5rU2NyZWVuUmVhZGVyPXQuUENDb29raWVQb2xpY3lMaW5rU2NyZWVuUmVhZGVyLGUuUENDb29raWVQb2xpY3lUZXh0PXQuUENDb29raWVQb2xpY3lUZXh0LGUuUENlbnRlckFsbG93QWxsQ29uc2VudFRleHQ9dC5QQ2VudGVyQWxsb3dBbGxDb25zZW50VGV4dCxlLlBDZW50ZXJBcHBseUZpbHRlcnNUZXh0PXQuUENlbnRlckFwcGx5RmlsdGVyc1RleHQsZS5QQ2VudGVyQXBwbHlGaWx0ZXJzQXJpYUxhYmVsPXQuUENlbnRlckFwcGx5RmlsdGVyc0FyaWFMYWJlbCxlLkFtYXpvbkNvbnNlbnRTcmNVcmw9dC5BbWF6b25Db25zZW50U3JjVXJsLGUuUENlbnRlclRvZ2dsZUFjdGl2ZUNvbG9yPXQuUENlbnRlclRvZ2dsZUFjdGl2ZUNvbG9yLGUuUENlbnRlclRvZ2dsZUluQWN0aXZlQ29sb3I9dC5QQ2VudGVyVG9nZ2xlSW5BY3RpdmVDb2xvcixlLlBDZW50ZXJCYWNrVGV4dD10LlBDZW50ZXJCYWNrVGV4dCxlLlBDZW50ZXJDYW5jZWxGaWx0ZXJzVGV4dD10LlBDZW50ZXJDYW5jZWxGaWx0ZXJzVGV4dCxlLlBDZW50ZXJDYW5jZWxGaWx0ZXJBcmlhTGFiZWw9dC5QQ2VudGVyQ2FuY2VsRmlsdGVyQXJpYUxhYmVsLGUuUENlbnRlckNsZWFyRmlsdGVyc0FyaWFMYWJlbD10LlBDZW50ZXJDbGVhckZpbHRlcnNBcmlhTGFiZWwsZS5QQ2VudGVyQ2xlYXJGaWx0ZXJzVGV4dD10LlBDZW50ZXJDbGVhckZpbHRlcnNUZXh0LGUuUENlbnRlckNvb2tpZXNMaXN0VGV4dD10LlBDZW50ZXJDb29raWVzTGlzdFRleHQsZS5QQ2VudGVyRW5hYmxlQWNjb3JkaW9uPXQuUENlbnRlckVuYWJsZUFjY29yZGlvbixlLlBDZW50ZXJGaWx0ZXJUZXh0PXQuUENlbnRlckZpbHRlclRleHQsZS5QQ2VudGVyR2VuZXJhbFZlbmRvcnNUZXh0PXQuUENlbnRlckdlbmVyYWxWZW5kb3JzVGV4dCxlLlBDZW50ZXJSZWplY3RBbGxCdXR0b25UZXh0PXQuUENlbnRlclJlamVjdEFsbEJ1dHRvblRleHQsZS5QQ2VudGVyU2VsZWN0QWxsVmVuZG9yc1RleHQ9dC5QQ2VudGVyU2VsZWN0QWxsVmVuZG9yc1RleHQsZS5QQ2VudGVyU2hvd1JlamVjdEFsbEJ1dHRvbj10LlBDZW50ZXJTaG93UmVqZWN0QWxsQnV0dG9uLGUuUENlbnRlclVzZXJJZERlc2NyaXB0aW9uVGV4dD10LlBDZW50ZXJVc2VySWREZXNjcmlwdGlvblRleHQsZS5QQ2VudGVyVXNlcklkTm90WWV0Q29uc2VudGVkVGV4dD10LlBDZW50ZXJVc2VySWROb3RZZXRDb25zZW50ZWRUZXh0LGUuUENlbnRlclVzZXJJZFRpbWVzdGFtcFRpdGxlVGV4dD10LlBDZW50ZXJVc2VySWRUaW1lc3RhbXBUaXRsZVRleHQsZS5QQ2VudGVyVXNlcklkVGl0bGVUZXh0PXQuUENlbnRlclVzZXJJZFRpdGxlVGV4dCxlLlBDZW50ZXJWZW5kb3JMaXN0RGVzY1RleHQ9dC5QQ2VudGVyVmVuZG9yTGlzdERlc2NUZXh0LGUuUENlbnRlclZlbmRvckxpc3REaXNjbG9zdXJlPXQuUENlbnRlclZlbmRvckxpc3REaXNjbG9zdXJlLGUuUENlbnRlclZlbmRvckxpc3RMaWZlc3Bhbj10LlBDZW50ZXJWZW5kb3JMaXN0TGlmZXNwYW4sZS5QQ2VudGVyVmVuZG9yTGlzdExpZmVzcGFuRGF5PXQuUENlbnRlclZlbmRvckxpc3RMaWZlc3BhbkRheSxlLlBDZW50ZXJWZW5kb3JMaXN0TGlmZXNwYW5EYXlzPXQuUENlbnRlclZlbmRvckxpc3RMaWZlc3BhbkRheXMsZS5QQ2VudGVyVmVuZG9yTGlzdExpZmVzcGFuTW9udGg9dC5QQ2VudGVyVmVuZG9yTGlzdExpZmVzcGFuTW9udGgsZS5QQ2VudGVyVmVuZG9yTGlzdExpZmVzcGFuTW9udGhzPXQuUENlbnRlclZlbmRvckxpc3RMaWZlc3Bhbk1vbnRocyxlLlBDZW50ZXJWZW5kb3JMaXN0Tm9uQ29va2llVXNhZ2U9dC5QQ2VudGVyVmVuZG9yTGlzdE5vbkNvb2tpZVVzYWdlLGUuUENlbnRlclZlbmRvckxpc3RTdG9yYWdlRG9tYWluPXQuUENlbnRlclZlbmRvckxpc3RTdG9yYWdlRG9tYWluLGUuUENWTFNEb21haW5zVXNlZD10LlBDVkxTRG9tYWluc1VzZWQsZS5QQ1ZMU1VzZT10LlBDVkxTVXNlLGUuUENlbnRlclZlbmRvckxpc3RTdG9yYWdlSWRlbnRpZmllcj10LlBDZW50ZXJWZW5kb3JMaXN0U3RvcmFnZUlkZW50aWZpZXIsZS5QQ2VudGVyVmVuZG9yTGlzdFN0b3JhZ2VQdXJwb3Nlcz10LlBDZW50ZXJWZW5kb3JMaXN0U3RvcmFnZVB1cnBvc2VzLGUuUENlbnRlclZlbmRvckxpc3RTdG9yYWdlVHlwZT10LlBDZW50ZXJWZW5kb3JMaXN0U3RvcmFnZVR5cGUsZS5QQ2VudGVyVmVuZG9yc0xpc3RUZXh0PXQuUENlbnRlclZlbmRvcnNMaXN0VGV4dCxlLlBDZW50ZXJWaWV3UHJpdmFjeVBvbGljeVRleHQ9dC5QQ2VudGVyVmlld1ByaXZhY3lQb2xpY3lUZXh0LGUuUENHb29nbGVWZW5kb3JzVGV4dD10LlBDR29vZ2xlVmVuZG9yc1RleHQsZS5QQ0dycERlc2NMaW5rUG9zaXRpb249dC5QQ0dycERlc2NMaW5rUG9zaXRpb24sZS5QQ0dycERlc2NUeXBlPXQuUENHcnBEZXNjVHlwZSxlLlBDR1ZlblBvbGljeVR4dD10LlBDR2VuZXJhbFZlbmRvcnNQb2xpY3lUZXh0LGUuUENJQUJWZW5kb3JzVGV4dD10LlBDSUFCVmVuZG9yc1RleHQsZS5QQ0lBQlZlbmRvckxlZ0ludENsYWltVGV4dD10LlBDSUFCVmVuZG9yTGVnSW50Q2xhaW1UZXh0LGUuUENWTGlzdERhdGFEZWNsYXJhdGlvblRleHQ9dC5QQ1ZMaXN0RGF0YURlY2xhcmF0aW9uVGV4dCxlLlBDVkxpc3REYXRhUmV0ZW50aW9uVGV4dD10LlBDVkxpc3REYXRhUmV0ZW50aW9uVGV4dCxlLlBDVkxpc3RTdGRSZXRlbnRpb25UZXh0PXQuUENWTGlzdFN0ZFJldGVudGlvblRleHQsZS5JQUJEYXRhQ2F0ZWdvcmllcz10LklBQkRhdGFDYXRlZ29yaWVzLGUuUENJbmFjdGl2ZVRleHQ9dC5QQ0luYWN0aXZlVGV4dCxlLlBDSWxsdXNUZXh0PXQuUENJbGx1c1RleHQsZS5QQ0xvZ29BcmlhPXQuUENMb2dvU2NyZWVuUmVhZGVyLGUuUENPcGVuc0Nvb2tpZXNEZXRhaWxzQWxlcnQ9dC5QQ09wZW5zQ29va2llc0RldGFpbHNBbGVydCxlLlBDZW50ZXJWZW5kb3JMaXN0U2NyZWVuUmVhZGVyPXQuUENlbnRlclZlbmRvckxpc3RTY3JlZW5SZWFkZXIsZS5QQ09wZW5zVmVuZG9yRGV0YWlsc0FsZXJ0PXQuUENPcGVuc1ZlbmRvckRldGFpbHNBbGVydCxlLlBDZW50ZXJEeW5hbWljUmVuZGVyaW5nRW5hYmxlPXQuUENlbnRlckR5bmFtaWNSZW5kZXJpbmdFbmFibGUsZS5QQ1RlbXBsYXRlVXBncmFkZT10LlBDVGVtcGxhdGVVcGdyYWRlLGUuUENWZW5kb3JGdWxsTGVnYWxUZXh0PXQuUENWZW5kb3JGdWxsTGVnYWxUZXh0LGUuUENWaWV3Q29va2llc1RleHQ9dC5QQ1ZpZXdDb29raWVzVGV4dCxlLlBDTGF5b3V0PXtDZW50ZXI6dC5DZW50ZXIsTGlzdDp0Lkxpc3QsUGFuZWw6dC5QYW5lbCxQb3B1cDp0LlBvcHVwLFRhYjp0LlRhYn0sZS5QQ2VudGVyVmVuZG9yTGlzdExpbmtUZXh0PXQuUENlbnRlclZlbmRvckxpc3RMaW5rVGV4dCxlLlBDZW50ZXJWZW5kb3JMaXN0TGlua0FyaWFMYWJlbD10LlBDZW50ZXJWZW5kb3JMaXN0TGlua0FyaWFMYWJlbCxlLlByZWZlcmVuY2VDZW50ZXJQb3NpdGlvbj10LlByZWZlcmVuY2VDZW50ZXJQb3NpdGlvbixlLlBDVmVuZG9yc0NvdW50VGV4dD10LlBDVmVuZG9yc0NvdW50VGV4dCxlLlBDVmVuZG9yc0NvdW50RmVhdHVyZVRleHQ9dC5QQ1ZlbmRvcnNDb3VudEZlYXR1cmVUZXh0LGUuUENWZW5kb3JzQ291bnRTcGNGZWF0dXJlVGV4dD10LlBDVmVuZG9yc0NvdW50U3BjRmVhdHVyZVRleHQsZS5QQ1ZlbmRvcnNDb3VudFNwY1B1cnBvc2VUZXh0PXQuUENWZW5kb3JzQ291bnRTcGNQdXJwb3NlVGV4dH0sdC5wcm90b3R5cGUuc2V0VmVuZG9yU2VydmljZUNvbmZpZ0RhdGE9ZnVuY3Rpb24oZSx0KXtlLlZlbmRvclNlcnZpY2VDb25maWc9e1BDVlNPcHRPdXQ6dC5QQ1ZTT3B0T3V0LFBDVlNFbmFibGU6dC5QQ1ZTRW5hYmxlLFBDVlNFeHBhbmRDYXRlZ29yeTp0LlBDVlNFeHBhbmRDYXRlZ29yeSxQQ1ZTRXhwYW5kR3JvdXA6dC5QQ1ZTRXhwYW5kR3JvdXAsUENWU0NhdGVnb3J5Vmlldzp0LlBDVlNDYXRlZ29yeVZpZXcsUENWU05hbWVUZXh0OnQuUENWU05hbWVUZXh0LFBDVlNBbGxvd0FsbFRleHQ6dC5QQ1ZTQWxsb3dBbGxUZXh0LFBDVlNMaXN0VGl0bGU6dC5QQ1ZTTGlzdFRpdGxlLFBDVlNQYXJlbnRDb21wYW55VGV4dDp0LlBDVlNQYXJlbnRDb21wYW55VGV4dCxQQ1ZTQWRkcmVzc1RleHQ6dC5QQ1ZTQWRkcmVzc1RleHQsUENWU0RlZmF1bHRDYXRlZ29yeVRleHQ6dC5QQ1ZTRGVmYXVsdENhdGVnb3J5VGV4dCxQQ1ZTRGVmYXVsdERlc2NyaXB0aW9uVGV4dDp0LlBDVlNEZWZhdWx0RGVzY3JpcHRpb25UZXh0LFBDVlNEUE9FbWFpbFRleHQ6dC5QQ1ZTRFBPRW1haWxUZXh0LFBDVlNEUE9MaW5rVGV4dDp0LlBDVlNEUE9MaW5rVGV4dCxQQ1ZTUHJpdmFjeVBvbGljeUxpbmtUZXh0OnQuUENWU1ByaXZhY3lQb2xpY3lMaW5rVGV4dCxQQ1ZTQ29va2llUG9saWN5TGlua1RleHQ6dC5QQ1ZTQ29va2llUG9saWN5TGlua1RleHQsUENWU09wdE91dExpbmtUZXh0OnQuUENWU09wdE91dExpbmtUZXh0LFBDVlNMZWdhbEJhc2lzVGV4dDp0LlBDVlNMZWdhbEJhc2lzVGV4dH19LHQucHJvdG90eXBlLnNldEFkZGl0aW9uYWxUZWNobm9sb2dpZXM9ZnVuY3Rpb24oZSx0KXtlLkFkZGl0aW9uYWxUZWNobm9sb2dpZXNDb25maWc9e1BDU2hvd1RyYWNraW5nVGVjaDp0LlBDU2hvd1RyYWNraW5nVGVjaCxQQ0Nvb2tpZXNMYWJlbDp0LlBDQ29va2llc0xhYmVsLFBDVGVjaERldGFpbHNUZXh0OnQuUENUZWNoRGV0YWlsc1RleHQsUENUcmFja2luZ1RlY2hUaXRsZTp0LlBDVHJhY2tpbmdUZWNoVGl0bGUsUENMb2NhbFN0b3JhZ2VMYWJlbDp0LlBDTG9jYWxTdG9yYWdlTGFiZWwsUENTZXNzaW9uU3RvcmFnZUxhYmVsOnQuUENTZXNzaW9uU3RvcmFnZUxhYmVsLFBDVGVjaERldGFpbHNBcmlhTGFiZWw6dC5QQ1RlY2hEZXRhaWxzQXJpYUxhYmVsLFBDTG9jYWxTdG9yYWdlRHVyYXRpb25UZXh0OnQuUENMb2NhbFN0b3JhZ2VEdXJhdGlvblRleHQsUENTZXNzaW9uU3RvcmFnZUR1cmF0aW9uVGV4dDp0LlBDU2Vzc2lvblN0b3JhZ2VEdXJhdGlvblRleHR9fSx0LnByb3RvdHlwZS5zZXREb21haW5Db21tb25EYXRhRGVmYXVsdHM9ZnVuY3Rpb24oZSx0KXtlLkFkdmFuY2VkQW5hbHl0aWNzQ2F0ZWdvcnk9dC5BZHZhbmNlZEFuYWx5dGljc0NhdGVnb3J5fHwiIixlLkJhbm5lckRQRERlc2NyaXB0aW9uPXQuQmFubmVyRFBERGVzY3JpcHRpb258fFtdLGUuQmFubmVyRFBERGVzY3JpcHRpb25Gb3JtYXQ9dC5CYW5uZXJEUEREZXNjcmlwdGlvbkZvcm1hdHx8IiIsZS5CYW5uZXJEUERUaXRsZT10LkJhbm5lckRQRFRpdGxlfHwiIixlLkNhdGVnb3JpZXNUZXh0PXQuQ2F0ZWdvcmllc1RleHR8fCJDYXRlZ29yaWVzIixlLkNvb2tpZXNUZXh0PXQuQ29va2llc1RleHR8fCJDb29raWVzIixlLkNvb2tpZXNEZXNjVGV4dD10LkNvb2tpZXNEZXNjVGV4dHx8IkRlc2NyaXB0aW9uIixlLkxpZmVzcGFuVGV4dD10LkxpZmVzcGFuVGV4dHx8IkxpZmVzcGFuIixlLkxpZmVzcGFuVHlwZVRleHQ9dC5MaWZlc3BhblR5cGVUZXh0fHwiU2Vzc2lvbiIsZS5QQ2VudGVyQ29uc2VudFRleHQ9dC5QQ2VudGVyQ29uc2VudFRleHR8fCJDb25zZW50In0sdC5wcm90b3R5cGUuc2V0RG9tYWluUENEYXRhRGVmYXVsdHM9ZnVuY3Rpb24oZSx0KXtlLlBDZW50ZXJDb29raWVMaXN0RmlsdGVyQXJpYT10LlBDZW50ZXJDb29raWVMaXN0RmlsdGVyQXJpYXx8IkZpbHRlciIsZS5QQ2VudGVyQ29va2llTGlzdFNlYXJjaD10LlBDZW50ZXJDb29raWVMaXN0U2VhcmNofHwiU2VhcmNoIixlLlBDZW50ZXJDb29raWVTZWFyY2hBcmlhTGFiZWw9dC5QQ2VudGVyQ29va2llU2VhcmNoQXJpYUxhYmVsfHwiQ29va2llIGxpc3Qgc2VhcmNoIixlLlBDZW50ZXJDb29raWVDYXRlZ29yaWVzQXJpYUxhYmVsPXQuUENlbnRlckNvb2tpZUNhdGVnb3JpZXNBcmlhTGFiZWx8fCJDb29raWUgQ2F0ZWdvcmllcyIsZS5QQ2VudGVyRmlsdGVyQXBwbGllZEFyaWE9dC5QQ2VudGVyRmlsdGVyQXBwbGllZEFyaWF8fCJBcHBsaWVkIixlLlBDZW50ZXJGaWx0ZXJDbGVhcmVkQXJpYT10LlBDZW50ZXJGaWx0ZXJDbGVhcmVkQXJpYXx8IkZpbHRlcnMgQ2xlYXJlZCIsZS5QQ2VudGVyTGVnSW50Q29sdW1uSGVhZGVyPXQuUENlbnRlckxlZ0ludENvbHVtbkhlYWRlcnx8IkxlZ2l0aW1hdGUgSW50ZXJlc3QiLGUuUENlbnRlckxlZ2l0SW50ZXJlc3RUZXh0PXQuUENlbnRlckxlZ2l0SW50ZXJlc3RUZXh0fHwiTGVnaXRpbWF0ZSBJbnRlcmVzdCIsZS5QQ2VudGVyVmVuZG9yTGlzdEZpbHRlckFyaWE9dC5QQ2VudGVyVmVuZG9yTGlzdEZpbHRlckFyaWF8fCJGaWx0ZXIiLGUuUENlbnRlclZlbmRvckxpc3RTZWFyY2g9dC5QQ2VudGVyVmVuZG9yTGlzdFNlYXJjaHx8IlNlYXJjaCIsZS5QQ2VudGVyVmVuZG9yU2VhcmNoQXJpYUxhYmVsPXQuUENlbnRlclZlbmRvclNlYXJjaEFyaWFMYWJlbHx8IlZlbmRvciBsaXN0IHNlYXJjaCIsZS5QQ0ZpcnN0UGFydHlDb29raWVMaXN0VGV4dD10LlBDRmlyc3RQYXJ0eUNvb2tpZUxpc3RUZXh0fHwiRmlyc3QgUGFydHkgQ29va2llcyIsZS5QQ1Nob3dDb25zZW50TGFiZWxzPSEhdC5QQ1RlbXBsYXRlVXBncmFkZSYmdC5QQ1Nob3dDb25zZW50TGFiZWxzLGUuUENTaG93UGVyc2lzdGVudENvb2tpZXNIb3ZlckJ1dHRvbj10LlBDU2hvd1BlcnNpc3RlbnRDb29raWVzSG92ZXJCdXR0b258fCExfSx0LnByb3RvdHlwZS5jb21tb25EYXRhTWFwcGVyPWZ1bmN0aW9uKGUpe3ZhciB0PXtpYWJUaGlyZFBhcnR5Q29uc2VudFVybDplLklhYlRoaXJkUGFydHlDb29raWVVcmwsb3B0YW5vbkhpZGVBY2NlcHRCdXR0b246ZS5PcHRhbm9uSGlkZUFjY2VwdEJ1dHRvbixvcHRhbm9uSGlkZUNvb2tpZVNldHRpbmdCdXR0b246ZS5PcHRhbm9uSGlkZUNvb2tpZVNldHRpbmdCdXR0b24sb3B0YW5vblN0eWxlOmUuT3B0YW5vblN0eWxlLG9wdGFub25TdGF0aWNDb250ZW50TG9jYXRpb246ZS5PcHRhbm9uU3RhdGljQ29udGVudExvY2F0aW9uLGJhbm5lckN1c3RvbUNTUzplLkJhbm5lckN1c3RvbUNTUy5yZXBsYWNlKC9cXG4vZywiIikscGNDdXN0b21DU1M6ZS5QQ0N1c3RvbUNTUy5yZXBsYWNlKC9cXG4vZywiIiksdGV4dENvbG9yOmUuVGV4dENvbG9yLGJ1dHRvbkNvbG9yOmUuQnV0dG9uQ29sb3IsYnV0dG9uVGV4dENvbG9yOmUuQnV0dG9uVGV4dENvbG9yLGJhbm5lck1QQnV0dG9uQ29sb3I6ZS5CYW5uZXJNUEJ1dHRvbkNvbG9yLGJhbm5lck1QQnV0dG9uVGV4dENvbG9yOmUuQmFubmVyTVBCdXR0b25UZXh0Q29sb3IsYmFja2dyb3VuZENvbG9yOmUuQmFja2dyb3VuZENvbG9yLGJhbm5lckFjY29yZGlvbkJhY2tncm91bmRDb2xvcjplLkJhbm5lckFjY29yZGlvbkJhY2tncm91bmRDb2xvcixCQ29udGludWVDb2xvcjplLkJDb250aW51ZUNvbG9yLFBDQ29udGludWVDb2xvcjplLlBDQ29udGludWVDb2xvcixwY1RleHRDb2xvcjplLlBjVGV4dENvbG9yLHBjQnV0dG9uQ29sb3I6ZS5QY0J1dHRvbkNvbG9yLHBjQnV0dG9uVGV4dENvbG9yOmUuUGNCdXR0b25UZXh0Q29sb3IscGNBY2NvcmRpb25CYWNrZ3JvdW5kQ29sb3I6ZS5QY0FjY29yZGlvbkJhY2tncm91bmRDb2xvcixwY0xpbmtzVGV4dENvbG9yOmUuUGNMaW5rc1RleHRDb2xvcixiYW5uZXJMaW5rc1RleHRDb2xvcjplLkJhbm5lckxpbmtzVGV4dENvbG9yLHBjRW5hYmxlVG9nZ2xlczplLlBjRW5hYmxlVG9nZ2xlcyxwY0JhY2tncm91bmRDb2xvcjplLlBjQmFja2dyb3VuZENvbG9yLHBjTWVudUNvbG9yOmUuUGNNZW51Q29sb3IscGNNZW51SGlnaExpZ2h0Q29sb3I6ZS5QY01lbnVIaWdoTGlnaHRDb2xvcixsZWdhY3lCYW5uZXJMYXlvdXQ6ZS5MZWdhY3lCYW5uZXJMYXlvdXQsb3B0YW5vbkxvZ286ZS5PcHRhbm9uTG9nbyxvbmVUcnVzdEZ0ckxvZ286ZS5PbmVUcnVzdEZvb3RlckxvZ28sb3B0YW5vbkNvb2tpZURvbWFpbjplLk9wdGFub25Db29raWVEb21haW4sY29va2llUGVyc2lzdGVudExvZ286ZS5Db29raWVQZXJzaXN0ZW50TG9nbyxvcHRhbm9uR3JvdXBJZFBlcmZvcm1hbmNlQ29va2llczplLk9wdGFub25Hcm91cElkUGVyZm9ybWFuY2VDb29raWVzLG9wdGFub25Hcm91cElkRnVuY3Rpb25hbGl0eUNvb2tpZXM6ZS5PcHRhbm9uR3JvdXBJZEZ1bmN0aW9uYWxpdHlDb29raWVzLG9wdGFub25Hcm91cElkVGFyZ2V0aW5nQ29va2llczplLk9wdGFub25Hcm91cElkVGFyZ2V0aW5nQ29va2llcyxvcHRhbm9uR3JvdXBJZFNvY2lhbENvb2tpZXM6ZS5PcHRhbm9uR3JvdXBJZFNvY2lhbENvb2tpZXMsb3B0YW5vblNob3dTdWJHcm91cENvb2tpZXM6ZS5TaG93U3ViR3JvdXBDb29raWVzLHVzZVJUTDplLlVzZVJUTCxzaG93QmFubmVyQ29va2llU2V0dGluZ3M6ZS5TaG93QmFubmVyQ29va2llU2V0dGluZ3Msc2hvd0Jhbm5lckFjY2VwdEJ1dHRvbjplLlNob3dCYW5uZXJBY2NlcHRCdXR0b24sc2hvd0Nvb2tpZUxpc3Q6ZS5TaG93Q29va2llTGlzdCxhbGxvd0hvc3RPcHRPdXQ6ZS5BbGxvd0hvc3RPcHRPdXQsQ29va2llc1YyTmV3Q29va2llUG9saWN5OmUuQ29va2llc1YyTmV3Q29va2llUG9saWN5LGNvb2tpZUxpc3RUaXRsZUNvbG9yOmUuQ29va2llTGlzdFRpdGxlQ29sb3IsY29va2llTGlzdEdyb3VwTmFtZUNvbG9yOmUuQ29va2llTGlzdEdyb3VwTmFtZUNvbG9yLGNvb2tpZUxpc3RUYWJsZUhlYWRlckNvbG9yOmUuQ29va2llTGlzdFRhYmxlSGVhZGVyQ29sb3IsQ29va2llTGlzdFRhYmxlSGVhZGVyQmFja2dyb3VuZENvbG9yOmUuQ29va2llTGlzdFRhYmxlSGVhZGVyQmFja2dyb3VuZENvbG9yLGNvb2tpZUxpc3RQcmltYXJ5Q29sb3I6ZS5Db29raWVMaXN0UHJpbWFyeUNvbG9yLGNvb2tpZUxpc3RDdXN0b21Dc3M6ZS5Db29raWVMaXN0Q3VzdG9tQ3NzLHBjU2hvd0Nvb2tpZUhvc3Q6ZS5QQ1Nob3dDb29raWVIb3N0LHBjU2hvd0Nvb2tpZUR1cmF0aW9uOmUuUENTaG93Q29va2llRHVyYXRpb24scGNTaG93Q29va2llVHlwZTplLlBDU2hvd0Nvb2tpZVR5cGUscGNTaG93Q29va2llQ2F0ZWdvcnk6ZS5QQ1Nob3dDb29raWVDYXRlZ29yeSxwY1Nob3dDb29raWVEZXNjcmlwdGlvbjplLlBDU2hvd0Nvb2tpZURlc2NyaXB0aW9uLENvbnNlbnRJbnRlZ3JhdGlvbjplLkNvbnNlbnRJbnRlZ3JhdGlvbixDb25zZW50UHVycG9zZXNUZXh0OmUuQkNvbnNlbnRQdXJwb3Nlc1RleHR8fCJDb25zZW50IFB1cnBvc2VzIixGZWF0dXJlc1RleHQ6ZS5CRmVhdHVyZXNUZXh0fHwiRmVhdHVyZXMiLExlZ2l0aW1hdGVJbnRlcmVzdFB1cnBvc2VzVGV4dDplLkJMZWdpdGltYXRlSW50ZXJlc3RQdXJwb3Nlc1RleHR8fCJMZWdpdGltYXRlIEludGVyZXN0IFB1cnBvc2VzIixDb25zZW50VGV4dDplLkJDb25zZW50VGV4dHx8IkNvbnNlbnQiLExlZ2l0SW50ZXJlc3RUZXh0OmUuQkxlZ2l0SW50ZXJlc3RUZXh0fHwiTGVnaXQuIEludGVyZXN0IixwY0RpYWxvZ0Nsb3NlOmUuUENEaWFsb2dDbG9zZXx8ImRpYWxvZyBjbG9zZWQiLHBDRm9vdGVyTG9nb1VybDplLlBDRm9vdGVyTG9nb1VybCxTcGVjaWFsRmVhdHVyZXNUZXh0OmUuQlNwZWNpYWxGZWF0dXJlc1RleHR8fCJTcGVjaWFsIEZlYXR1cmVzIixTcGVjaWFsUHVycG9zZXNUZXh0OmUuQlNwZWNpYWxQdXJwb3Nlc1RleHR8fCJTcGVjaWFsIFB1cnBvc2VzIixwY0NMaXN0TmFtZTplLlBDQ0xpc3ROYW1lfHwiTmFtZSIscGNDTGlzdEhvc3Q6ZS5QQ0NMaXN0SG9zdHx8Ikhvc3QiLHBjQ0xpc3REdXJhdGlvbjplLlBDQ0xpc3REdXJhdGlvbnx8IkR1cmF0aW9uIixwY0NMaXN0VHlwZTplLlBDQ0xpc3RUeXBlfHwiVHlwZSIscGNDTGlzdENhdGVnb3J5OmUuUENDTGlzdENhdGVnb3J5fHwiQ2F0ZWdvcnkiLHBjQ0xpc3REZXNjcmlwdGlvbjplLlBDQ0xpc3REZXNjcmlwdGlvbnx8IkRlc2NyaXB0aW9uIixJYWJMZWdhbFRleHRVcmw6ZS5JYWJMZWdhbFRleHRVcmwscGNMZWdJbnRCdXR0b25Db2xvcjplLlBjTGVnSW50QnV0dG9uQ29sb3IscGNMZWdJbnRCdXR0b25UZXh0Q29sb3I6ZS5QY0xlZ0ludEJ1dHRvblRleHRDb2xvcixQQ2VudGVyRXhwYW5kVG9WaWV3VGV4dDplLlBDZW50ZXJFeHBhbmRUb1ZpZXdUZXh0LEJDYXRlZ29yeUNvbnRhaW5lckNvbG9yOmUuQkNhdGVnb3J5Q29udGFpbmVyQ29sb3IsQkNhdGVnb3J5U3R5bGVDb2xvcjplLkJDYXRlZ29yeVN0eWxlQ29sb3IsQkxpbmVCcmVha0NvbG9yOmUuQkxpbmVCcmVha0NvbG9yLEJTYXZlQnRuQ29sb3I6ZS5CU2F2ZUJ0bkNvbG9yLEJDYXRlZ29yeVN0eWxlOmUuQkNhdGVnb3J5U3R5bGUsQkFuaW1hdGlvbjplLkJBbmltYXRpb24sQkZvY3VzQm9yZGVyQ29sb3I6ZS5CRm9jdXNCb3JkZXJDb2xvcixQQ0ZvY3VzQm9yZGVyQ29sb3I6ZS5QQ0ZvY3VzQm9yZGVyQ29sb3IsQm5yTG9nbzplLkJuckxvZ28sT1RDbG9zZUJ0bkxvZ286ZS5PVENsb3NlQnRuTG9nbyxPVFNwcml0ZUxvZ286ZS5PVFNwcml0ZUxvZ28sT1RFeHRlcm5hbExpbmtMb2dvOmUuT1RFeHRlcm5hbExpbmtMb2dvLEJhbm5lckV4dGVybmFsTGlua3NMb2dvOnRoaXMuY3VzdG9tRXh0ZXJuYWxMaW5rTG9nbyhlKSxCYW5uZXJSZXF1aXJlRXh0ZXJuYWxMaW5rczplLkJhbm5lclJlcXVpcmVFeHRlcm5hbExpbmtzLEJhbm5lclJlcXVpcmVFeHRlcm5hbExpbmtzQ3VzdG9tTG9nbzplLkJhbm5lclJlcXVpcmVFeHRlcm5hbExpbmtzQ3VzdG9tTG9nb307dGhpcy5jb29raWVMaXN0TWFwcGVyKHQsZSksTz1SKFIoe30sTyksdCksdGhpcy5wdWJEb21haW5EYXRhLkNvb2tpZXNWMk5ld0Nvb2tpZVBvbGljeT1lLkNvb2tpZXNWMk5ld0Nvb2tpZVBvbGljeX0sdC5wcm90b3R5cGUuY3VzdG9tRXh0ZXJuYWxMaW5rTG9nbz1mdW5jdGlvbihlKXtyZXR1cm4gZS5CYW5uZXJSZXF1aXJlRXh0ZXJuYWxMaW5rc0N1c3RvbUxvZ28/ZS5CYW5uZXJFeHRlcm5hbExpbmtzTG9nbzoiIn0sdC5wcm90b3R5cGUuY29va2llTGlzdE1hcHBlcj1mdW5jdGlvbihlLHQpe2UuVFRMR3JvdXBCeVRlY2g9dC5UVExHcm91cEJ5VGVjaCxlLlRUTFNob3dUZWNoRGVzYz10LlRUTFNob3dUZWNoRGVzY30sdC5wcm90b3R5cGUuc2V0UHVibGljRG9tYWluRGF0YT1mdW5jdGlvbihuKXt0aGlzLnB1YkRvbWFpbkRhdGE9e0Fib3V0Q29va2llc1RleHQ6bi5BYm91dENvb2tpZXNUZXh0LEFib3V0TGluazpuLkFib3V0TGluayxBYm91dFRleHQ6bi5BYm91dFRleHQsQWN0aXZlVGV4dDpuLkFjdGl2ZVRleHQsQWRkTGlua3NUb0Nvb2tpZXBlZGlhOm4uQWRkTGlua3NUb0Nvb2tpZXBlZGlhLEFsZXJ0QWxsb3dDb29raWVzVGV4dDpuLkFsZXJ0QWxsb3dDb29raWVzVGV4dCxBbGVydENsb3NlVGV4dDpuLkFsZXJ0Q2xvc2VUZXh0LEFsZXJ0TGF5b3V0Om4uQWxlcnRMYXlvdXQsQWxlcnRNb3JlSW5mb1RleHQ6bi5BbGVydE1vcmVJbmZvVGV4dCxBbGVydE1vcmVJbmZvVGV4dERpYWxvZzpuLkFsZXJ0TW9yZUluZm9BcmlhTGFiZWwsQWxlcnROb3RpY2VUZXh0Om4uQWxlcnROb3RpY2VUZXh0LEFsbG93QWxsVGV4dDpuLlByZWZlcmVuY2VDZW50ZXJDb25maXJtVGV4dCxBbHdheXNBY3RpdmVUZXh0Om4uQWx3YXlzQWN0aXZlVGV4dCxBbHdheXNJbmFjdGl2ZVRleHQ6bi5BbHdheXNJbmFjdGl2ZVRleHQsQkFuaW1hdGlvbjpuLkJBbmltYXRpb24sQmFubmVyQ2xvc2VCdXR0b25UZXh0Om4uQmFubmVyQ2xvc2VCdXR0b25UZXh0LEJhbm5lckRQRERlc2NyaXB0aW9uOm4uQmFubmVyRFBERGVzY3JpcHRpb258fFtdLEJhbm5lckRQRERlc2NyaXB0aW9uRm9ybWF0Om4uQmFubmVyRFBERGVzY3JpcHRpb25Gb3JtYXR8fCIiLEJhbm5lckRQRFRpdGxlOm4uQmFubmVyRFBEVGl0bGV8fCIiLEJhbm5lckZlYXR1cmVEZXNjcmlwdGlvbjpuLkJhbm5lckZlYXR1cmVEZXNjcmlwdGlvbixCYW5uZXJGZWF0dXJlVGl0bGU6bi5CYW5uZXJGZWF0dXJlVGl0bGUsQmFubmVySUFCUGFydG5lcnNMaW5rOm4uQmFubmVySUFCUGFydG5lcnNMaW5rLEJhbm5lckluZm9ybWF0aW9uRGVzY3JpcHRpb246bi5CYW5uZXJJbmZvcm1hdGlvbkRlc2NyaXB0aW9uLEJhbm5lckluZm9ybWF0aW9uVGl0bGU6bi5CYW5uZXJJbmZvcm1hdGlvblRpdGxlLEJhbm5lclBvc2l0aW9uOm4uQmFubmVyUG9zaXRpb24sQmFubmVyUHVycG9zZURlc2NyaXB0aW9uOm4uQmFubmVyUHVycG9zZURlc2NyaXB0aW9uLEJhbm5lclB1cnBvc2VUaXRsZTpuLkJhbm5lclB1cnBvc2VUaXRsZSxCYW5uZXJSZWplY3RBbGxCdXR0b25UZXh0Om4uQmFubmVyUmVqZWN0QWxsQnV0dG9uVGV4dCxCYW5uZXJSZWxhdGl2ZUZvbnRTaXplc1RvZ2dsZTpuLkJhbm5lclJlbGF0aXZlRm9udFNpemVzVG9nZ2xlLEJhbm5lclNldHRpbmdzQnV0dG9uRGlzcGxheUxpbms6bi5CYW5uZXJTZXR0aW5nc0J1dHRvbkRpc3BsYXlMaW5rLEJhbm5lclNob3dSZWplY3RBbGxCdXR0b246bi5CYW5uZXJTaG93UmVqZWN0QWxsQnV0dG9uLEJhbm5lclRpdGxlOm4uQmFubmVyVGl0bGUsQkNhdGVnb3J5Q29udGFpbmVyQ29sb3I6bi5CQ2F0ZWdvcnlDb250YWluZXJDb2xvcixCQ2F0ZWdvcnlTdHlsZTpuLkJDYXRlZ29yeVN0eWxlLEJDYXRlZ29yeVN0eWxlQ29sb3I6bi5CQ2F0ZWdvcnlTdHlsZUNvbG9yLEJDbG9zZUJ1dHRvblR5cGU6bi5CQ2xvc2VCdXR0b25UeXBlLEJDb250aW51ZVRleHQ6bi5CQ29udGludWVUZXh0LEJJbml0aWFsRm9jdXM6bi5CSW5pdGlhbEZvY3VzLEJJbml0aWFsRm9jdXNMaW5rQW5kQnV0dG9uOm4uQkluaXRpYWxGb2N1c0xpbmtBbmRCdXR0b24sQkxpbmVCcmVha0NvbG9yOm4uQkxpbmVCcmVha0NvbG9yLEJSZWplY3RDb25zZW50VHlwZTpuLkJSZWplY3RDb25zZW50VHlwZSxCU2F2ZUJ0bkNvbG9yOm4uQlNhdmVCdG5Db2xvcixCU2F2ZUJ0blR4dDpuLkJTYXZlQnRuVGV4dCxCU2hvd1NhdmVCdG46bi5CU2hvd1NhdmVCdG4sQ2F0ZWdvcmllc1RleHQ6bi5DYXRlZ29yaWVzVGV4dCxjY3RJZDpuLmNjdElkLENob2ljZXNCYW5uZXI6bi5DaG9pY2VzQmFubmVyLENsb3NlU2hvdWxkQWNjZXB0QWxsQ29va2llczpuLkNsb3NlU2hvdWxkQWNjZXB0QWxsQ29va2llcyxDbG9zZVRleHQ6bi5DbG9zZVRleHQsQ29uZmlybVRleHQ6bi5Db25maXJtVGV4dCxDb25zZW50SW50ZWdyYXRpb25EYXRhOm51bGwsQ29uc2VudE1vZGVsOntOYW1lOm4uQ29uc2VudE1vZGVsfSxDb29raWVMaXN0RGVzY3JpcHRpb246bi5Db29raWVMaXN0RGVzY3JpcHRpb24sQ29va2llTGlzdFRpdGxlOm4uQ29va2llTGlzdFRpdGxlLENvb2tpZVNldHRpbmdCdXR0b25UZXh0Om4uQ29va2llU2V0dGluZ0J1dHRvblRleHQsQ29va2llc1RleHQ6bi5Db29raWVzVGV4dCxDb29raWVzRGVzY1RleHQ6bi5Db29raWVzRGVzY1RleHQsQ29va2llc1VzZWRUZXh0Om4uQ29va2llc1VzZWRUZXh0LEN1c3RvbUpzOm4uQ3VzdG9tSnMsRG9tYWluOmIubW9kdWxlSW5pdGlhbGl6ZXIuRG9tYWluLEZvb3RlckRlc2NyaXB0aW9uVGV4dDpuLkZvb3RlckRlc2NyaXB0aW9uVGV4dCxGb3JjZUNvbnNlbnQ6bi5Gb3JjZUNvbnNlbnQsR2VuZXJhbFZlbmRvcnM6bi5HZW5lcmFsVmVuZG9ycyxHb29nbGVDb25zZW50OntHQ0FkU3RvcmFnZTpuLkdDQWRTdG9yYWdlLEdDQW5hbHl0aWNzU3RvcmFnZTpuLkdDQW5hbHl0aWNzU3RvcmFnZSxHQ0VuYWJsZTpuLkdDRW5hYmxlLEdDRnVuY3Rpb25hbGl0eVN0b3JhZ2U6bi5HQ0Z1bmN0aW9uYWxpdHlTdG9yYWdlLEdDUGVyc29uYWxpemF0aW9uU3RvcmFnZTpuLkdDUGVyc29uYWxpemF0aW9uU3RvcmFnZSxHQ1JlZGFjdEVuYWJsZTpuLkdDUmVkYWN0RW5hYmxlLEdDU2VjdXJpdHlTdG9yYWdlOm4uR0NTZWN1cml0eVN0b3JhZ2UsR0NXYWl0VGltZTpuLkdDV2FpdFRpbWUsR0NBZFVzZXJEYXRhOm4uR0NBZFVzZXJEYXRhLEdDQWRQZXJzb25hbGl6YXRpb246bi5HQ0FkUGVyc29uYWxpemF0aW9ufSxNQ01EYXRhOm4uTUNNRGF0YSxBQ01EYXRhOm4uQUNNRGF0YSxHcm91cHM6bnVsbCxIaWRlVG9vbGJhckNvb2tpZUxpc3Q6bi5IaWRlVG9vbGJhckNvb2tpZUxpc3QsSWFiVHlwZTpuLklhYlR5cGUsSW5hY3RpdmVUZXh0Om4uSW5hY3RpdmVUZXh0LElzQmFubmVyTG9hZGVkOiExLElzQ29uc2VudExvZ2dpbmdFbmFibGVkOm4uSXNDb25zZW50TG9nZ2luZ0VuYWJsZWQsSXNJQUJFbmFibGVkOm4uSXNJYWJFbmFibGVkLElzSWFiVGhpcmRQYXJ0eUNvb2tpZUVuYWJsZWQ6bi5Jc0lhYlRoaXJkUGFydHlDb29raWVFbmFibGVkLElzTGlmZXNwYW5FbmFibGVkOm4uSXNMaWZlc3BhbkVuYWJsZWQsTGFuZ3VhZ2U6bi5MYW5ndWFnZSxMYXN0UmVjb25zZW50RGF0ZTpuLkxhc3RSZWNvbnNlbnREYXRlLExpZmVzcGFuRHVyYXRpb25UZXh0Om4uTGlmZXNwYW5EdXJhdGlvblRleHQsTGlmZXNwYW5UZXh0Om4uTGlmZXNwYW5UZXh0LExpZmVzcGFuVHlwZVRleHQ6bi5MaWZlc3BhblR5cGVUZXh0LE1haW5JbmZvVGV4dDpuLk1haW5JbmZvVGV4dCxNYWluVGV4dDpuLk1haW5UZXh0LE1hbmFnZVByZWZlcmVuY2VUZXh0Om4uUHJlZmVyZW5jZUNlbnRlck1hbmFnZVByZWZlcmVuY2VzVGV4dCxOZXh0UGFnZUFjY2VwdEFsbENvb2tpZXM6bi5OZXh0UGFnZUFjY2VwdEFsbENvb2tpZXMsTmV4dFBhZ2VDbG9zZUJhbm5lcjpuLk5leHRQYWdlQ2xvc2VCYW5uZXIsTm9CYW5uZXI6bi5Ob0Jhbm5lcixPbkNsaWNrQWNjZXB0QWxsQ29va2llczpuLk9uQ2xpY2tBY2NlcHRBbGxDb29raWVzLE9uQ2xpY2tDbG9zZUJhbm5lcjpuLk9uQ2xpY2tDbG9zZUJhbm5lcixPdmVycmlkZW5Hb29nbGVWZW5kb3JzOm4uT3ZlcnJpZGVuR29vZ2xlVmVuZG9ycyxQQ0FjY29yZGlvblN0eWxlOmFlLkNhcmV0LFBDQ2xvc2VCdXR0b25UeXBlOm4uUENDbG9zZUJ1dHRvblR5cGUsUENDb250aW51ZVRleHQ6bi5QQ0NvbnRpbnVlVGV4dCxQQ2VudGVyQWxsb3dBbGxDb25zZW50VGV4dDpuLlBDZW50ZXJBbGxvd0FsbENvbnNlbnRUZXh0LFBDZW50ZXJBcHBseUZpbHRlcnNUZXh0Om4uUENlbnRlckFwcGx5RmlsdGVyc1RleHQsUENlbnRlckJhY2tUZXh0Om4uUENlbnRlckJhY2tUZXh0LFBDZW50ZXJDYW5jZWxGaWx0ZXJzVGV4dDpuLlBDZW50ZXJDYW5jZWxGaWx0ZXJzVGV4dCxQQ2VudGVyQ2xlYXJGaWx0ZXJzVGV4dDpuLlBDZW50ZXJDbGVhckZpbHRlcnNUZXh0LFBDZW50ZXJDb29raWVTZWFyY2hBcmlhTGFiZWw6bi5QQ2VudGVyQ29va2llU2VhcmNoQXJpYUxhYmVsfHwiQ29va2llIGxpc3Qgc2VhcmNoIixQQ2VudGVyQ29va2llQ2F0ZWdvcmllc0FyaWFMYWJlbDpuLlBDZW50ZXJDb29raWVDYXRlZ29yaWVzQXJpYUxhYmVsfHwiQ29va2llIENhdGVnb3JpZXMiLFBDZW50ZXJDb29raWVzTGlzdFRleHQ6bi5QQ2VudGVyQ29va2llc0xpc3RUZXh0LFBDZW50ZXJFbmFibGVBY2NvcmRpb246bi5QQ2VudGVyRW5hYmxlQWNjb3JkaW9uLFBDZW50ZXJFeHBhbmRUb1ZpZXdUZXh0Om4uUENlbnRlckV4cGFuZFRvVmlld1RleHQsUENlbnRlckZpbHRlckFwcGxpZWRBcmlhOm4uUENlbnRlckZpbHRlckFwcGxpZWRBcmlhfHwiQXBwbGllZCIsUENlbnRlckZpbHRlckNsZWFyZWRBcmlhOm4uUENlbnRlckZpbHRlckNsZWFyZWRBcmlhfHwiRmlsdGVycyBDbGVhcmVkIixQQ2VudGVyRmlsdGVyVGV4dDpuLlBDZW50ZXJGaWx0ZXJUZXh0LFBDZW50ZXJSZWplY3RBbGxCdXR0b25UZXh0Om4uUENlbnRlclJlamVjdEFsbEJ1dHRvblRleHQsUENlbnRlclNlbGVjdEFsbFZlbmRvcnNUZXh0Om4uUENlbnRlclNlbGVjdEFsbFZlbmRvcnNUZXh0LFBDZW50ZXJTaG93UmVqZWN0QWxsQnV0dG9uOm4uUENlbnRlclNob3dSZWplY3RBbGxCdXR0b24sUENlbnRlclVzZXJJZERlc2NyaXB0aW9uVGV4dDpuLlBDZW50ZXJVc2VySWREZXNjcmlwdGlvblRleHQsUENlbnRlclVzZXJJZE5vdFlldENvbnNlbnRlZFRleHQ6bi5QQ2VudGVyVXNlcklkTm90WWV0Q29uc2VudGVkVGV4dCxQQ2VudGVyVXNlcklkVGltZXN0YW1wVGl0bGVUZXh0Om4uUENlbnRlclVzZXJJZFRpbWVzdGFtcFRpdGxlVGV4dCxQQ2VudGVyVXNlcklkVGl0bGVUZXh0Om4uUENlbnRlclVzZXJJZFRpdGxlVGV4dCxQQ2VudGVyVmVuZG9yTGlzdERlc2NUZXh0Om4uUENlbnRlclZlbmRvckxpc3REZXNjVGV4dCxQQ2VudGVyVmVuZG9yU2VhcmNoQXJpYUxhYmVsOm4uUENlbnRlclZlbmRvclNlYXJjaEFyaWFMYWJlbHx8IlZlbmRvciBsaXN0IHNlYXJjaCIsUENlbnRlclZlbmRvcnNMaXN0VGV4dDpuLlBDZW50ZXJWZW5kb3JzTGlzdFRleHQsUENlbnRlclZpZXdQcml2YWN5UG9saWN5VGV4dDpuLlBDZW50ZXJWaWV3UHJpdmFjeVBvbGljeVRleHQsUENGaXJzdFBhcnR5Q29va2llTGlzdFRleHQ6bi5QQ0ZpcnN0UGFydHlDb29raWVMaXN0VGV4dCxQQ0dvb2dsZVZlbmRvcnNUZXh0Om4uUENHb29nbGVWZW5kb3JzVGV4dCxQQ0dycERlc2NMaW5rUG9zaXRpb246bi5QQ0dycERlc2NMaW5rUG9zaXRpb24sUENHcnBEZXNjVHlwZTpuLlBDR3JwRGVzY1R5cGUsUENJQUJWZW5kb3JzVGV4dDpuLlBDSUFCVmVuZG9yc1RleHQsUENJQUJWZW5kb3JMZWdJbnRDbGFpbVRleHQ6bi5QQ0lBQlZlbmRvckxlZ0ludENsYWltVGV4dCxQQ1ZMaXN0RGF0YURlY2xhcmF0aW9uVGV4dDpuLlBDVkxpc3REYXRhRGVjbGFyYXRpb25UZXh0LFBDVkxpc3REYXRhUmV0ZW50aW9uVGV4dDpuLlBDVkxpc3REYXRhUmV0ZW50aW9uVGV4dCxQQ1ZMaXN0U3RkUmV0ZW50aW9uVGV4dDpuLlBDVkxpc3RTdGRSZXRlbnRpb25UZXh0LElBQkRhdGFDYXRlZ29yaWVzOm4uSUFCRGF0YUNhdGVnb3JpZXMsUENMb2dvQXJpYTpuLlBDTG9nb1NjcmVlblJlYWRlcixQQ09wZW5zQ29va2llc0RldGFpbHNBbGVydDpuLlBDT3BlbnNDb29raWVzRGV0YWlsc0FsZXJ0LFBDZW50ZXJWZW5kb3JMaXN0U2NyZWVuUmVhZGVyOm4uUENlbnRlclZlbmRvckxpc3RTY3JlZW5SZWFkZXIsUENPcGVuc1ZlbmRvckRldGFpbHNBbGVydDpuLlBDT3BlbnNWZW5kb3JEZXRhaWxzQWxlcnQsUENTaG93UGVyc2lzdGVudENvb2tpZXNIb3ZlckJ1dHRvbjpuLlBDU2hvd1BlcnNpc3RlbnRDb29raWVzSG92ZXJCdXR0b24sUENlbnRlckR5bmFtaWNSZW5kZXJpbmdFbmFibGU6bi5QQ2VudGVyRHluYW1pY1JlbmRlcmluZ0VuYWJsZSxQQ1RlbXBsYXRlVXBncmFkZTpuLlBDVGVtcGxhdGVVcGdyYWRlLFBDVmVuZG9yRnVsbExlZ2FsVGV4dDpuLlBDVmVuZG9yRnVsbExlZ2FsVGV4dCxQQ1ZpZXdDb29raWVzVGV4dDpuLlBDVmlld0Nvb2tpZXNUZXh0LFBDTGF5b3V0OntDZW50ZXI6bi5DZW50ZXIsTGlzdDpuLkxpc3QsUGFuZWw6bi5QYW5lbCxQb3B1cDpuLlBvcHVwLFRhYjpuLlRhYn0sUENlbnRlclZlbmRvckxpc3RMaW5rVGV4dDpuLlBDZW50ZXJWZW5kb3JMaXN0TGlua1RleHQsUENlbnRlclZlbmRvckxpc3RMaW5rQXJpYUxhYmVsOm4uUENlbnRlclZlbmRvckxpc3RMaW5rQXJpYUxhYmVsLFBDZW50ZXJJbXByaW50TGlua1NjcmVlblJlYWRlcjpuLlBDZW50ZXJJbXByaW50TGlua1NjcmVlblJlYWRlcixQQ2VudGVySW1wcmludExpbmtUZXh0Om4uUENlbnRlckltcHJpbnRMaW5rVGV4dCxQQ2VudGVySW1wcmludExpbmtVcmw6bi5QQ2VudGVySW1wcmludExpbmtVcmwsUHJlZmVyZW5jZUNlbnRlclBvc2l0aW9uOm4uUHJlZmVyZW5jZUNlbnRlclBvc2l0aW9uLFNjcm9sbEFjY2VwdEFsbENvb2tpZXM6bi5TY3JvbGxBY2NlcHRBbGxDb29raWVzLFNjcm9sbENsb3NlQmFubmVyOm4uU2Nyb2xsQ2xvc2VCYW5uZXIsU2hvd0FsZXJ0Tm90aWNlOm4uU2hvd0FsZXJ0Tm90aWNlLHNob3dCYW5uZXJDbG9zZUJ1dHRvbjpuLnNob3dCYW5uZXJDbG9zZUJ1dHRvbixTaG93UHJlZmVyZW5jZUNlbnRlckNsb3NlQnV0dG9uOm4uU2hvd1ByZWZlcmVuY2VDZW50ZXJDbG9zZUJ1dHRvbixUaGlyZFBhcnR5Q29va2llTGlzdFRleHQ6bi5UaGlyZFBhcnR5Q29va2llTGlzdFRleHQsVXNlR29vZ2xlVmVuZG9yczp0aGlzLmNhblVzZUdvb2dsZVZlbmRvcnMobi5QQ1RlbXBsYXRlVXBncmFkZSksVmVuZG9yQ29uc2VudE1vZGVsOm4uVmVuZG9yQ29uc2VudE1vZGVsLFZlbmRvckxldmVsT3B0T3V0Om4uSXNJYWJFbmFibGVkLFZlbmRvckxpc3RUZXh0Om4uVmVuZG9yTGlzdFRleHQsQ29va2llc1YyTmV3Q29va2llUG9saWN5OiExfSxuLlBDVGVtcGxhdGVVcGdyYWRlJiYobi5DZW50ZXJ8fG4uUGFuZWwpJiZuLlBDQWNjb3JkaW9uU3R5bGUhPT1hZS5Ob0FjY29yZGlvbiYmKHRoaXMucHViRG9tYWluRGF0YS5QQ0FjY29yZGlvblN0eWxlPW4uUENBY2NvcmRpb25TdHlsZSksdGhpcy5wdWJEb21haW5EYXRhLlBDZW50ZXJFbmFibGVBY2NvcmRpb249bi5QQ0FjY29yZGlvblN0eWxlIT09YWUuTm9BY2NvcmRpb247dmFyIHI9W107bi5Hcm91cHMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxvOyFuLklzSWFiRW5hYmxlZCYmZS5Jc0lhYlB1cnBvc2V8fChlLkNvb2tpZXM9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlLkZpcnN0UGFydHlDb29raWVzKSksbz1udWxsPT0obz1lLkhvc3RzKT92b2lkIDA6by5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5jb25jYXQoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0LkNvb2tpZXMpKSl9LFtdKSwodD1lLkNvb2tpZXMpLnB1c2guYXBwbHkodCxvKSxyLnB1c2goZSkpfSksdGhpcy5wdWJEb21haW5EYXRhLkdyb3Vwcz1yfSx0LnByb3RvdHlwZS5zZXRCYW5uZXJTY3JpcHRFbGVtZW50PWZ1bmN0aW9uKGUpe3RoaXMuYmFubmVyU2NyaXB0RWxlbWVudD1lLHRoaXMuc2V0RG9tYWluRWxlbWVudEF0dHJpYnV0ZXMoKX0sdC5wcm90b3R5cGUuc2V0R0NNY2FsbGJhY2s9ZnVuY3Rpb24oKXt3aW5kb3cub3RFdmVudExpc3RlbmVycyYmd2luZG93Lm90RXZlbnRMaXN0ZW5lcnMubGVuZ3RoJiZ3aW5kb3cub3RFdmVudExpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UmJiJjb25zZW50LmNoYW5nZWQiPT09ZS5ldmVudCYmKF8uZ2NtVXBkYXRlQ2FsbGJhY2s9ZS5saXN0ZW5lcil9KX0sdC5wcm90b3R5cGUuc2V0RG9tYWluRWxlbWVudEF0dHJpYnV0ZXM9ZnVuY3Rpb24oKXt2YXIgZTt0aGlzLmJhbm5lclNjcmlwdEVsZW1lbnQmJigoZT0idHJ1ZSI9PT1oLmdldFN0dWJBdHRyKHFlKXx8Yi5tb2R1bGVJbml0aWFsaXplci5MYW5ndWFnZURldGVjdGlvbkVuYWJsZWQmJmIubW9kdWxlSW5pdGlhbGl6ZXIuTGFuZ3VhZ2VEZXRlY3Rpb25CeUh0bWwpJiZ0aGlzLnNldFVzZURvY3VtZW50TGFuZ3VhZ2UoZSksdGhpcy5iYW5uZXJTY3JpcHRFbGVtZW50Lmhhc0F0dHJpYnV0ZSgiZGF0YS1pZ25vcmUtZ2EiKSYmKHRoaXMuaWdub3JlR29vZ2xlQW5seXRpY3NDYWxsPSJ0cnVlIj09PXRoaXMuYmFubmVyU2NyaXB0RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtaWdub3JlLWdhIikpLHRoaXMuYmFubmVyU2NyaXB0RWxlbWVudC5oYXNBdHRyaWJ1dGUoImRhdGEtaWdub3JlLWh0bWwiKSkmJih0aGlzLmlnbm9yZUluamVjdGluZ0h0bWxDc3M9InRydWUiPT09dGhpcy5iYW5uZXJTY3JpcHRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS1pZ25vcmUtaHRtbCIpKX0sdC5wcm90b3R5cGUuc2V0VXNlRG9jdW1lbnRMYW5ndWFnZT1mdW5jdGlvbihlKXt0aGlzLnVzZURvY3VtZW50TGFuZ3VhZ2U9ZX0sdC5wcm90b3R5cGUuc2V0UGNOYW1lPWZ1bmN0aW9uKCl7dmFyIGU9Ty5QQ0xheW91dDtlLkNlbnRlcj90aGlzLnBjTmFtZT10dDplLlBhbmVsP3RoaXMucGNOYW1lPW50OmUuUG9wdXA/dGhpcy5wY05hbWU9cnQ6ZS5MaXN0P3RoaXMucGNOYW1lPW90OmUuVGFiJiYodGhpcy5wY05hbWU9aXQpfSx0LnByb3RvdHlwZS5zZXRCYW5uZXJOYW1lPWZ1bmN0aW9uKCl7Ty5GbGF0P3RoaXMuYmFubmVyTmFtZT1ZZTpPLkZsb2F0aW5nUm91bmRlZENvcm5lcj90aGlzLmJhbm5lck5hbWU9SmU6Ty5GbG9hdGluZ0ZsYXQ/dGhpcy5iYW5uZXJOYW1lPVhlOk8uRmxvYXRpbmdSb3VuZGVkP3RoaXMuYmFubmVyTmFtZT1aZTpPLkZsb2F0aW5nUm91bmRlZEljb24/dGhpcy5iYW5uZXJOYW1lPVFlOk8uQ2VudGVyUm91bmRlZD90aGlzLmJhbm5lck5hbWU9V2U6Ty5DaG9pY2VzQmFubmVyP3RoaXMuYmFubmVyTmFtZT0kZTpPLk5vQmFubmVyJiYodGhpcy5iYW5uZXJOYW1lPWV0KX0sdC5wcm90b3R5cGUucG9wdWxhdGVHUENTaWduYWw9ZnVuY3Rpb24oKXt2YXIgZT1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLkdQQ19FTkFCTEVEKSx0PXRoaXMuZ3BjRm9yQUdycEVuYWJsZWQmJnRoaXMuZ3BjRW5hYmxlZD8iMSI6IjAiO3RoaXMuZ3BjVmFsdWVDaGFuZ2VkPWU/ZSE9dDp0aGlzLmdwY0ZvckFHcnBFbmFibGVkLEwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLkdQQ19FTkFCTEVELHQpfSx0LnByb3RvdHlwZS5wb3B1bGF0ZUdQQ0Jyb3dzZXJTaWduYWw9ZnVuY3Rpb24oKXt2YXIgZT1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLkdQQ19Ccm93c2VyX0ZsYWcpLHQ9dGhpcy5ncGNFbmFibGVkPyIxIjoiMCI7dGhpcy5ncGNCcm93c2VyVmFsdWVDaGFuZ2VkPWUhPT10LEwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLkdQQ19Ccm93c2VyX0ZsYWcsdCl9LHQucHJvdG90eXBlLmluaXRHQ009ZnVuY3Rpb24oKXt2YXIgbz1bXSxlPShPYmplY3Qua2V5cyh0aGlzLnJ1bGUuU3RhdGVzKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe18ucnVsZS5TdGF0ZXNbdF0uZm9yRWFjaChmdW5jdGlvbihlKXtvLnB1c2goKHQrIi0iK2UpLnRvVXBwZXJDYXNlKCkpfSl9KSxfLnJ1bGUuQ291bnRyaWVzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS50b1VwcGVyQ2FzZSgpfSkpO18uZ2NtQ291bnRyaWVzPWUuY29uY2F0KG8pfSx0LnByb3RvdHlwZS5nZXRSZWdpb25EZXRhaWxzT25SdWxlU2V0PWZ1bmN0aW9uKGUsdCl7dmFyIG8sbjt0JiYxPHQubGVuZ3RoJiYobz1bImNvIiwidmEiLCJ1dCJdLDE8PShuPXQuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFvLmluY2x1ZGVzKGUpfSkpLmxlbmd0aCkmJm4ubGVuZ3RoPHQubGVuZ3RoJiYoZS5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzPTIpfTt2YXIgJHQ9dDtmdW5jdGlvbiB0KCl7dmFyIHQ9dGhpczt0aGlzLkROVEVuYWJsZWQ9InllcyI9PT1uYXZpZ2F0b3IuZG9Ob3RUcmFja3x8IjEiPT09bmF2aWdhdG9yLmRvTm90VHJhY2ssdGhpcy5ncGNFbmFibGVkPSExLHRoaXMuZ3BjRm9yQUdycEVuYWJsZWQ9ITEsdGhpcy5wYWdlUHVzaGVkRG93bj0hMSx0aGlzLmlhYkdyb3Vwcz17cHVycG9zZXM6e30sbGVnSW50UHVycG9zZXM6e30sc3BlY2lhbFB1cnBvc2VzOnt9LGZlYXR1cmVzOnt9LHNwZWNpYWxGZWF0dXJlczp7fX0sdGhpcy5pYWJUeXBlPW51bGwsdGhpcy5ncnBDb250YWluTGVnYWxPcHRPdXQ9ITEsdGhpcy5wdXJwb3NlT25lVHJlYXRtZW50PSExLHRoaXMuaWdub3JlSW5qZWN0aW5nSHRtbENzcz0hMSx0aGlzLmlnbm9yZUdvb2dsZUFubHl0aWNzQ2FsbD0hMSx0aGlzLm1vYmlsZU9ubGluZVVSTD1bXSx0aGlzLmlhYkdycElkTWFwPXt9LHRoaXMuaWFiR3Jwcz1bXSx0aGlzLmNvbnNlbnRhYmxlR3Jwcz1bXSx0aGlzLmNvbnNlbnRhYmxlSW1wbGllZENvbnNlbnRHcm91cD1bXSx0aGlzLmNvbnNlbnRhYmxlSWFiR3Jwcz1bXSx0aGlzLmRvbWFpbkdycHM9e30sdGhpcy50aGlyZFBhcnR5aUZyYW1lTG9hZGVkPSExLHRoaXMudGhpcmRQYXJ0eWlGcmFtZVJlc29sdmU9bnVsbCx0aGlzLnRoaXJkUGFydHlpRnJhbWVQcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3QudGhpcmRQYXJ0eWlGcmFtZVJlc29sdmU9ZX0pLHRoaXMuaXNPcHRJbk1vZGU9ITEsdGhpcy5pc1NvZnRPcHRJbk1vZGU9ITEsdGhpcy5ncGNWYWx1ZUNoYW5nZWQ9ITEsdGhpcy5ncGNCcm93c2VyVmFsdWVDaGFuZ2VkPSExLHRoaXMuY29uZGl0aW9uYWxMb2dpY0VuYWJsZWQ9ITEsdGhpcy5hbGxDb25kaXRpb25zRmFpbGVkPSExLHRoaXMuY2FuVXNlQ29uZGl0aW9uYWxMb2dpYz0hMSx0aGlzLmd0bVVwZGF0ZWRpblN0dWI9ITEsdGhpcy5nY21EZXZJZFNldD0hMSx0aGlzLm1ha2VHUENPckROVENvbnNlbnRDYWxsPSEwLHRoaXMudGNmMkFjdGl2ZVZlbmRvcnM9e2FsbDowLHB1cjpuZXcgTWFwLGZ0Om5ldyBNYXAsc3BsX3B1cjpuZXcgTWFwLHNwbF9mdDpuZXcgTWFwLHN0YWNrOm5ldyBNYXB9LHRoaXMudGNmUGFyZW50TWFwPXtwdXI6bmV3IE1hcCxmdDpuZXcgTWFwLHNwbF9wdXI6bmV3IE1hcCxzcGxfZnQ6bmV3IE1hcH19dmFyIF8sTz17fTtmdW5jdGlvbiBlbygpe3RoaXMub3RTREtWZXJzaW9uPSIyMDI2MDIuMS4wIix0aGlzLmlzQU1QPSExLHRoaXMuYW1wRGF0YT17fSx0aGlzLm90Q29va2llRGF0YT13aW5kb3cuT25lVHJ1c3QmJndpbmRvdy5PbmVUcnVzdC5vdENvb2tpZURhdGF8fFtdLHRoaXMuc3luY1JlcXVpcmVkPSExLHRoaXMuaXNJYWJTeW5jZWQ9ITEsdGhpcy5pc0dhY1N5bmNlZD0hMSx0aGlzLmdycHNTeW5jZWQ9W10sdGhpcy5zeW5jZWRWYWxpZEdycD0hMSx0aGlzLmdyb3Vwc0NvbnNlbnQ9W10sdGhpcy5pbml0aWFsR3JvdXBzQ29uc2VudD1bXSx0aGlzLmhvc3RzQ29uc2VudD1bXSx0aGlzLmluaXRpYWxIb3N0Q29uc2VudD1bXSx0aGlzLmdlblZlbmRvcnNDb25zZW50PXt9LHRoaXMudnNDb25zZW50PW5ldyBNYXAsdGhpcy5pbml0aWFsR2VuVmVuZG9yc0NvbnNlbnQ9e30sdGhpcy52ZW5kb3JzPXtsaXN0OltdLHNlYXJjaFBhcmFtOiIiLHZlbmRvclRlbXBsYXRlOm51bGwsc2VsZWN0ZWRWZW5kb3JzOltdLHNlbGVjdGVkUHVycG9zZTpbXSxzZWxlY3RlZExlZ0ludDpbXSxzZWxlY3RlZExlZ0ludFZlbmRvcnM6W10sc2VsZWN0ZWRTcGVjaWFsRmVhdHVyZXM6W119LHRoaXMuaW5pdGlhbFZlbmRvcnM9e2xpc3Q6W10sc2VhcmNoUGFyYW06IiIsdmVuZG9yVGVtcGxhdGU6bnVsbCxzZWxlY3RlZFZlbmRvcnM6W10sc2VsZWN0ZWRQdXJwb3NlOltdLHNlbGVjdGVkTGVnSW50OltdLHNlbGVjdGVkTGVnSW50VmVuZG9yczpbXSxzZWxlY3RlZFNwZWNpYWxGZWF0dXJlczpbXX0sdGhpcy5vbmVUcnVzdElBQkNvbnNlbnQ9e3B1cnBvc2U6W10sbGVnaW1hdGVJbnRlcmVzdDpbXSxmZWF0dXJlczpbXSxzcGVjaWFsRmVhdHVyZXM6W10sc3BlY2lhbFB1cnBvc2VzOltdLHZlbmRvcnM6W10sbGVnSW50VmVuZG9yczpbXSx2ZW5kb3JMaXN0Om51bGwsSUFCQ29va2llVmFsdWU6IiJ9LHRoaXMuaW5pdGlhbE9uZVRydXN0SUFCQ29uc2VudD17cHVycG9zZTpbXSxsZWdpbWF0ZUludGVyZXN0OltdLGZlYXR1cmVzOltdLHNwZWNpYWxGZWF0dXJlczpbXSxzcGVjaWFsUHVycG9zZXM6W10sdmVuZG9yczpbXSxsZWdJbnRWZW5kb3JzOltdLHZlbmRvckxpc3Q6bnVsbCxJQUJDb29raWVWYWx1ZToiIn0sdGhpcy5hZGR0bFZlbmRvcnM9e3ZlbmRvckNvbnNlbnQ6W10sdmVuZG9yU2VsZWN0ZWQ6e319LHRoaXMuaW5pdGlhbEFkZHRsVmVuZG9ycz17dmVuZG9yQ29uc2VudDpbXSx2ZW5kb3JTZWxlY3RlZDp7fX0sdGhpcy5hZGR0bENvbnNlbnRWZXJzaW9uPSIyfiIsdGhpcy5kZWxldGVkR29vZ2xlVmVuZG9ycz17fSx0aGlzLmluaXRpYWxBZGR0bFZlbmRvcnNMaXN0PXt9LHRoaXMuaXNBZGR0bENvbnNlbnQ9ITEsdGhpcy5jdXJyZW50R2xvYmFsRmlsdGVyZWRMaXN0PVtdLHRoaXMuZmlsdGVyQnlJQUJDYXRlZ29yaWVzPVtdLHRoaXMuZmlsdGVyQnlDYXRlZ29yaWVzPVtdLHRoaXMuaG9zdHM9e2hvc3RUZW1wbGF0ZTpudWxsLGhvc3RDb29raWVUZW1wbGF0ZTpudWxsfSx0aGlzLmdlbmVyYWxWZW5kb3JzPXtndlRlbXBsYXRlOm51bGwsZ3ZDb29raWVUZW1wbGF0ZTpudWxsfSx0aGlzLm9uZVRydXN0QWx3YXlzQWN0aXZlSG9zdHM9W10sdGhpcy5hbHdheXNBY3RpdmVHZW5WZW5kb3JzPVtdLHRoaXMuc29mdE9wdEluR2VuVmVuZG9ycz1bXSx0aGlzLm9wdEluR2VuVmVuZG9ycz1bXSx0aGlzLm9wdGFub25Ib3N0TGlzdD1bXSx0aGlzLnNyY0V4ZWNHcnBzPVtdLHRoaXMuaHRtbEV4ZWNHcnBzPVtdLHRoaXMuc3JjRXhlY0dycHNUZW1wPVtdLHRoaXMuaHRtbEV4ZWNHcnBzVGVtcD1bXSx0aGlzLmlzUENWaXNpYmxlPSExLHRoaXMud2FzQmFubmVyVmlzaWJsZT0hMSx0aGlzLnBjQ2xvc2VkRnJvbUNsb3NlQnRuPSExLHRoaXMuZGF0YUdyb3VwU3RhdGU9W10sdGhpcy5tYWtlSW5pdGlhbFR4bkNhbGw9ITEsdGhpcy51c2VyTG9jYXRpb249e2NvdW50cnk6IiIsc3RhdGU6IiIsc3RhdGVOYW1lOiIifSx0aGlzLnZlbmRvcnNTZXR0aW5nPXt9LHRoaXMuZHNQYXJhbXM9e30sdGhpcy5pc1YyU3R1Yj0hMSx0aGlzLmZpcmVPbmV0cnVzdEdycD0hMSx0aGlzLnNob3dWZW5kb3JTZXJ2aWNlPSExLHRoaXMuc2hvd0dlbmVyYWxWZW5kb3JzPSExLHRoaXMuZ2VuVmVuT3B0T3V0RW5hYmxlZD0hMSx0aGlzLmdwY0NvbnNlbnRUeG49ITEsdGhpcy5kbnRDb25zZW50VHhuPSExLHRoaXMudnNJc0FjdGl2ZUFuZE9wdE91dD0hMSx0aGlzLmJBc3NldD17fSx0aGlzLnBjQXNzZXQ9e30sdGhpcy5jc0J0bkFzc2V0PXt9LHRoaXMuY1N0eWxlcz17fSx0aGlzLnZlbmRvckRvbUluaXQ9ITEsdGhpcy5nZW5WZW5kb3JEb21Jbml0PSExLHRoaXMuc3luY050ZnlDb250ZW50PXt9LHRoaXMubnRmeVJlcXVpcmVkPSExLHRoaXMuc2tpcEFkZGluZ0hUTUw9ITEsdGhpcy5ibnJBbmltYXRpb25JblByb2c9ITEsdGhpcy5pc1ByZXZpZXc9ITEsdGhpcy5nZW9Gcm9tVXJsPSIiLHRoaXMuaGlkZUJhbm5lcj0hMSx0aGlzLnNldEF0dHJpYnV0ZVBvbHlmaWxsSXNBY3RpdmU9ITEsdGhpcy5zdG9yYWdlQmFzZVVSTD0iIix0aGlzLmlzS2V5Ym9hcmRVc2VyPSExLHRoaXMuaXNCb3RIZWFkZXI9ITEsdGhpcy5jdXN0b21lclN0eWxlcz1uZXcgTWFwLHRoaXMuc2hvd1RyYWNraW5nVGVjaD0hMSx0aGlzLmN1cnJlbnRUcmFja2luZ1RlY2g9e319ZW8ucHJvdG90eXBlLmdldFZlbmRvcnNJbkRvbWFpbj1mdW5jdGlvbigpe3ZhciBlLHQ7cmV0dXJuIEQuX3ZlbmRvcnNJbkRvbWFpbnx8KGU9bmV3IE1hcCx0PW51bGwhPSh0PU8uR3JvdXBzKT90OltdLEQuc2V0VmVuZG9yU2VydmljZXNNYXAodCxlKSxELl92ZW5kb3JzSW5Eb21haW49ZSksRC5fdmVuZG9yc0luRG9tYWlufSxlby5wcm90b3R5cGUuc2V0VmVuZG9yU2VydmljZXNNYXA9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG8sbj0wLHI9ZTtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXTtpLlN1Ykdyb3VwcyYmMDxpLlN1Ykdyb3Vwcy5sZW5ndGgmJkQuc2V0VmVuZG9yU2VydmljZXNNYXAoaS5TdWJHcm91cHMsdCk7Zm9yKHZhciBzPTAsYT1udWxsIT0obz1pLlZlbmRvclNlcnZpY2VzKT9vOltdO3M8YS5sZW5ndGg7cysrKXt2YXIgbD1hW3NdLGM9T2JqZWN0LmFzc2lnbih7fSxpKTtkZWxldGUgYy5WZW5kb3JTZXJ2aWNlcyxsLmdyb3VwUmVmPWMsdC5zZXQobC5DdXN0b21WZW5kb3JTZXJ2aWNlSWQsbCl9fX0sZW8ucHJvdG90eXBlLmNsZWFyVmVuZG9yc0luRG9tYWluPWZ1bmN0aW9uKCl7RC5fdmVuZG9yc0luRG9tYWluPW51bGx9LGVvLnByb3RvdHlwZS5jaGVja1ZlbmRvckNvbnNlbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIEQudmVuZG9yc1NldHRpbmdbZV0mJkQudmVuZG9yc1NldHRpbmdbZV0uY29uc2VudH07dmFyIEQ9bmV3IGVvLGw9RDtmdW5jdGlvbiB0byhlLHQpe3ZhciBlPWV8fFtdLHQ9dHx8W10sbz1uZXcgU2V0KGUpO3JldHVybiB0LnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIG8uaGFzKGUpfSk/b28oZSx0LmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hby5oYXMoZSl9KSk6b28oZSx0KX1mdW5jdGlvbiBvbyhlLHQpe2U9MDxlLmxlbmd0aD9lLmpvaW4oIi4iKToiIix0PTA8dC5sZW5ndGg/dC5qb2luKCIuIik6IiI7cmV0dXJuIjJ+IitlKyJ+IisodD8iZHYuIit0OiJkdiIpfWZ1bmN0aW9uIG5vKGUpe3ZhciB0LG87aWYoKGU9PntpZihlJiYic3RyaW5nIj09dHlwZW9mIGUmJmUuc3RhcnRzV2l0aCgiMn4iKSYmZS5pbmNsdWRlcygifmR2Iikpe2U9ZS5zcGxpdCgifiIpO2lmKDM9PT1lLmxlbmd0aCl7dmFyIHQ9ZVswXSxvPWVbMV0sZT1lWzJdO2lmKCIyIj09PXQpaWYoZS5zdGFydHNXaXRoKCJkdiIpKXJldHVybih0PWZ1bmN0aW9uKGUpe3JldHVybiIiPT09ZXx8ZS5zcGxpdCgiLiIpLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVybi9eXGQrJC8udGVzdChlKSYmMDxwYXJzZUludChlLDEwKX0pfSkobykmJigiZHYiPT09ZXx8ZS5zdGFydHNXaXRoKCJkdi4iKSYmISF0KGUuc3Vic3RyaW5nKDMpKSl9fX0pKGUpKXJldHVybiBvPSh0PWUuc3BsaXQoIn4iKSlbMV0sdD10WzJdLG89IiI9PT1vP1tdOm8uc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfSksImR2Ij09PXQ/e2NvbnNlbnRlZDpvLGRpc2Nsb3NlZDpbXX06e2NvbnNlbnRlZDpvLGRpc2Nsb3NlZDoiIj09PShvPXQuc3Vic3RyaW5nKDMpKT9bXTpvLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlLDEwKX0pfTt0aHJvdyBuZXcgRXJyb3IoIltBQyB2Ml0gSW52YWxpZCBBQyB2MiBzdHJpbmcgZm9ybWF0OiAiK2UpfWZ1bmN0aW9uIG8oKXt0aGlzLklBQlRDRl9ERUZBVUxUX0xBTkdVQUdFPSJFTiIsdGhpcy5JQUJUQ0ZfREVGQVVMVF9TRVJCSUFOPSJTUi1DWVJMIix0aGlzLklBQlRDRl9ERUZBVUxUX1BPUlRVR1VFU0U9IlBULVBUIix0aGlzLklBQlRDRl9TVVBQT1JURURfTEFOR1VBR0VTPW5ldyBTZXQoWyJBUiIsIkJHIiwiQlMiLCJDQSIsIkNTIiwiQ1kiLCJEQSIsIkRFIiwiRUwiLCJFTiIsIkVTIiwiRVQiLCJFVSIsIkZJIiwiRlIiLCJHTCIsIkhFIiwiSFIiLCJIVSIsIkhJIiwiSUQiLCJJVCIsIkpBIiwiS0EiLCJLTyIsIkxUIiwiTFYiLCJNSyIsIk1TIiwiTVQiLCJOTCIsIk5PIiwiUEwiLCJQVC1CUiIsIlBULVBUIiwiUk8iLCJSVSIsIlNLIiwiU0wiLCJTUSIsIlNSLUxBVE4iLCJTUi1DWVJMIiwiU1YiLCJTVyIsIlRIIiwiVEwiLCJUUiIsIlVLIiwiVkkiLCJaSCIsIlpILUhBTlQiXSl9by5wcm90b3R5cGUuaW5pdGlhbGl6ZUJhbm5lclZhcmlhYmxlcz1mdW5jdGlvbihlKXt2YXIgdD1lLkRvbWFpbkRhdGE7Xy5pYWJUeXBlPXQuSWFiVHlwZSxUPXQuUENUZW1wbGF0ZVVwZ3JhZGU/SHQ6UnQsRT0iSUFCMiI9PT1fLmlhYlR5cGU/RnQ6TXQsXy5pbml0KGUpLEQuc2hvd0dlbmVyYWxWZW5kb3JzPU8uR2VuZXJhbFZlbmRvcnNFbmFibGVkJiZPLlBDVGVtcGxhdGVVcGdyYWRlLEQuc2hvd1ZlbmRvclNlcnZpY2U9Yi5mcC5Db29raWVWMlZlbmRvclNlcnZpY2VTY3JpcHQmJk8uVmVuZG9yU2VydmljZUNvbmZpZy5QQ1ZTRW5hYmxlJiYhXy5pc0lhYjJvcnYyVGVtcGxhdGUmJk8uUENUZW1wbGF0ZVVwZ3JhZGUsRC52c0lzQWN0aXZlQW5kT3B0T3V0PUQuc2hvd1ZlbmRvclNlcnZpY2UmJk8uVmVuZG9yU2VydmljZUNvbmZpZy5QQ1ZTT3B0T3V0LEQuc2hvd1RyYWNraW5nVGVjaD1iLmZwLkNvb2tpZVYyVHJhY2tpbmdUZWNoUHJlZkNlbnRlciYmTy5BZGRpdGlvbmFsVGVjaG5vbG9naWVzQ29uZmlnLlBDU2hvd1RyYWNraW5nVGVjaCxELmdlblZlbk9wdE91dEVuYWJsZWQ9RC5zaG93R2VuZXJhbFZlbmRvcnMmJk8uR2VuVmVuT3B0T3V0LGguYWRkTG9nb1VybHMoKSx0aGlzLmVuc3VyZUFtYXpvbkNvbnNlbnQodCksdGhpcy5zZXRHZW9sb2NhdGlvbkluQ29va2llcygpLHRoaXMuc2V0T3JVcGRhdGUzcmRQYXJ0eUlBQkNvbnNlbnRGbGFnKCl9LG8ucHJvdG90eXBlLmVuc3VyZUFtYXpvbkNvbnNlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbyxuLHIsaTt0cnl7d2luZG93JiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LmFtem5Db25zZW50fHxudWxsIT0odD1PKSYmdC5BQ01EYXRhJiZPLkFDTURhdGEuRW5hYmxlZCYmKG89ZS5BbWF6b25Db25zZW50U3JjVXJsKSYmIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmM9IicrbysnIl0nKSYmKChuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKS5zcmM9byxuLmFzeW5jPSEwLG4udHlwZT0idGV4dC9qYXZhc2NyaXB0Iiwocj13aW5kb3cub3RTdHViRGF0YXx8e30pLm5vbmNlJiZuLnNldEF0dHJpYnV0ZSgibm9uY2UiLHIubm9uY2UpLChpPXIuY3Jvc3NPcmlnaW58fEQuY3Jvc3NPcmlnaW4pJiZuLnNldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iLGkpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobikpfWNhdGNoKGUpe3RyeXtjb25zb2xlLmluZm8oIk9UIC0gRmFpbGVkIHRvIGVuc3VyZSBBbWF6b24gQ29uc2VudCBzY3JpcHQiLGUpfWNhdGNoKGUpe319fSxvLnByb3RvdHlwZS5pbml0aWFsaXplVmVuZG9ySW5PdmVycmlkZGVuVmVuZG9ycz1mdW5jdGlvbihlLHQpe08uT3ZlcnJpZGRlblZlbmRvcnNbZV09e2Rpc2FibGVkQ1A6W10sZGlzYWJsZWRMSVA6W10sYWN0aXZlOnQsbGVnSW50OiExLGNvbnNlbnQ6ITF9fSxvLnByb3RvdHlwZS5hcHBseUdsb2JhbFJlc3RyaWN0aW9uc29uTmV3VmVuZG9yPWZ1bmN0aW9uKGUsdCxvLG4pe3ZhciByPU8uR2xvYmFsUmVzdHJpY3Rpb25zLGk9Ty5PdmVycmlkZGVuVmVuZG9ycztzd2l0Y2goTy5QdWJsaXNoZXIucmVzdHJpY3Rpb25zW29dfHwoTy5QdWJsaXNoZXIucmVzdHJpY3Rpb25zW29dPXt9KSxpW3RdfHx0aGlzLmluaXRpYWxpemVWZW5kb3JJbk92ZXJyaWRkZW5WZW5kb3JzKHQsITApLGlbdF0uZGlzYWJsZWRDUHx8KGlbdF0uZGlzYWJsZWRDUD1bXSksaVt0XS5kaXNhYmxlZExJUHx8KGlbdF0uZGlzYWJsZWRMSVA9W10pLHJbb10pe2Nhc2UgZGUuRGlzYWJsZWQ6KG4/aVt0XS5kaXNhYmxlZENQOmlbdF0uZGlzYWJsZWRMSVApLnB1c2gobyksTy5QdWJsaXNoZXIucmVzdHJpY3Rpb25zW29dW3RdPWRlLkRpc2FibGVkO2JyZWFrO2Nhc2UgZGUuQ29uc2VudDpuPyhpW3RdLmNvbnNlbnQ9ITAsTy5QdWJsaXNoZXIucmVzdHJpY3Rpb25zW29dW3RdPWRlLkNvbnNlbnQpOihpW3RdLmRpc2FibGVkTElQLnB1c2gobyksdGhpcy5jaGVja0ZsZXhpYmxlUHVycG9zZShlLHQsbywhMSkpO2JyZWFrO2Nhc2UgZGUuTGVnSW50Om4/KGlbdF0uZGlzYWJsZWRDUC5wdXNoKG8pLHRoaXMuY2hlY2tGbGV4aWJsZVB1cnBvc2UoZSx0LG8sITApKTooaVt0XS5sZWdJbnQ9ITAsTy5QdWJsaXNoZXIucmVzdHJpY3Rpb25zW29dW3RdPWRlLkxlZ0ludCk7YnJlYWs7Y2FzZSB2b2lkIDA6bj9pW3RdLmNvbnNlbnQ9ITA6aVt0XS5sZWdJbnQ9ITB9fSxvLnByb3RvdHlwZS5jaGVja0ZsZXhpYmxlUHVycG9zZT1mdW5jdGlvbihlLHQsbyxuKXtlLmZsZXhpYmxlUHVycG9zZXMuaW5jbHVkZXMobyk/KG4/Ty5PdmVycmlkZGVuVmVuZG9yc1t0XS5sZWdJbnQ9ITA6Ty5PdmVycmlkZGVuVmVuZG9yc1t0XS5jb25zZW50PSEwLE8uUHVibGlzaGVyLnJlc3RyaWN0aW9uc1tvXVt0XT1uP2RlLkxlZ0ludDpkZS5Db25zZW50KTpPLlB1Ymxpc2hlci5yZXN0cmljdGlvbnNbb11bdF09ZGUuRGlzYWJsZWR9LG8ucHJvdG90eXBlLmdldEFjdGl2ZVB1cnBvc2VzRm9yVmVuZG9yPWZ1bmN0aW9uKGUsdCl7dmFyIG89Ty5PdmVycmlkZGVuVmVuZG9yc1t0XSYmTy5PdmVycmlkZGVuVmVuZG9yc1t0XS5kaXNhYmxlZENQLG49Ty5PdmVycmlkZGVuVmVuZG9yc1t0XSYmTy5PdmVycmlkZGVuVmVuZG9yc1t0XS5kaXNhYmxlZExJUCxvPW8/dGhpcy5yZW1vdmVFbGVtZW50c0Zyb21BcnJheShlLnB1cnBvc2VzLE8uT3ZlcnJpZGRlblZlbmRvcnNbdF0uZGlzYWJsZWRDUCl8fFtdOmUucHVycG9zZXN8fFtdLG49bj90aGlzLnJlbW92ZUVsZW1lbnRzRnJvbUFycmF5KGUubGVnSW50UHVycG9zZXMsTy5PdmVycmlkZGVuVmVuZG9yc1t0XS5kaXNhYmxlZExJUCl8fFtdOmUubGVnSW50UHVycG9zZXN8fFtdLHQ9RihvLG4sZS5mbGV4aWJsZVB1cnBvc2VzfHxbXSk7cmV0dXJuIG5ldyBTZXQodCl9LG8ucHJvdG90eXBlLmNhbkluZmVyR0NNU2V0dGluZ3NGcm9tVENTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gXy5pc1RjZlYyVGVtcGxhdGUmJk8uR29vZ2xlQ29uc2VudC5HQ0VuYWJsZX0sby5wcm90b3R5cGUuc2hvdWxkT3ZlcnJpZGVUQ0RhdGE9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNhbkluZmVyR0NNU2V0dGluZ3NGcm9tVENTdHJpbmcoKTtyZXR1cm4gTy5Vc2VHb29nbGVWZW5kb3JzfHxlfSxvLnByb3RvdHlwZS5zZXRBY3RpdmVWZW5kb3JDb3VudD1mdW5jdGlvbihvLGUpe3ZhciBuLHIsaSxzPXRoaXMsYT1bXTsiSUFCMlYyIj09PV8uZ2V0UmVnaW9uUnVsZVR5cGUoKSYmKG49bmV3IFNldCxyPV8udGNmMkFjdGl2ZVZlbmRvcnMsKGk9dGhpcy5nZXRBY3RpdmVQdXJwb3Nlc0ZvclZlbmRvcihvLGUpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXIucHVyLmdldChlKXx8MDtyLnB1ci5zZXQoZSx0KzEpLF8udGNmUGFyZW50TWFwLnB1ci5nZXQoZSkmJm4uYWRkKF8udGNmUGFyZW50TWFwLnB1ci5nZXQoZSkpfSksby5zcGVjaWFsUHVycG9zZXMmJm8uc3BlY2lhbFB1cnBvc2VzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ci5zcGxfcHVyLmdldChlKXx8MDtyLnNwbF9wdXIuc2V0KGUsdCsxKSxfLnRjZlBhcmVudE1hcC5zcGxfcHVyLmdldChlKSYmKG4uYWRkKF8udGNmUGFyZW50TWFwLnNwbF9wdXIuZ2V0KGUpKSx0PV8udGNmUGFyZW50TWFwLnNwbF9wdXIuZ2V0KGUpLHMudXBkYXRlUGFyZW50Q291bnRCeVR5cGUodCxyLG8sYSxpKSl9KSxvLmZlYXR1cmVzJiZvLmZlYXR1cmVzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ci5mdC5nZXQoZSl8fDA7ci5mdC5zZXQoZSx0KzEpLF8udGNmUGFyZW50TWFwLmZ0LmdldChlKSYmKG4uYWRkKF8udGNmUGFyZW50TWFwLmZ0LmdldChlKSksdD1fLnRjZlBhcmVudE1hcC5mdC5nZXQoZSkscy51cGRhdGVQYXJlbnRDb3VudEJ5VHlwZSh0LHIsbyxhLGkpKX0pLG8uc3BlY2lhbEZlYXR1cmVzJiZvLnNwZWNpYWxGZWF0dXJlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXIuc3BsX2Z0LmdldChlKXx8MDtyLnNwbF9mdC5zZXQoZSx0KzEpLF8udGNmUGFyZW50TWFwLnNwbF9mdC5nZXQoZSkmJihuLmFkZChfLnRjZlBhcmVudE1hcC5zcGxfZnQuZ2V0KGUpKSx0PV8udGNmUGFyZW50TWFwLnNwbF9mdC5nZXQoZSkscy51cGRhdGVQYXJlbnRDb3VudEJ5VHlwZSh0LHIsbyxhLGkpKX0pLG4uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1yLnN0YWNrLmdldChlKXx8MDtyLnN0YWNrLnNldChlLHQrMSl9KSl9LG8ucHJvdG90eXBlLnVwZGF0ZVBhcmVudENvdW50QnlUeXBlPWZ1bmN0aW9uKGUsdCxvLG4scil7dmFyIGkscyxhLGw7ZSYmIW4uaW5jbHVkZXMoZSkmJihpPSExLGE9ZS5zcGxpdCgiXyIpLHM9WyJJQUIyVjIiLCJJRkUyVjIiLCJJU1AyVjIiLCJJU0YyVjIiXS5pbmNsdWRlcyhhWzBdKSwxPGEubGVuZ3RoKSYmcyYmKHM9dGhpcy5yZWFkUHJvcChOdCxhWzBdKSxhPXBhcnNlSW50KGFbMV0pLGw9dm9pZCAwLChzPT09TnQuSUFCMlYyJiYhci5oYXMoYSl8fHMhPT1OdC5JQUIyVjImJihsPW9bdGhpcy5yZWFkUHJvcCh3dCxzKV0pJiYhbC5pbmNsdWRlcyhhKSkmJihpPSEwKSxzKSYmaSYmKChyPXRbc10uZ2V0KGEpKT90W3NdLnNldChhLHIrMSk6KHRbc10uc2V0KGEsMSksbi5wdXNoKGUpKSl9LG8ucHJvdG90eXBlLnJlYWRQcm9wPWZ1bmN0aW9uKGUsdCl7dmFyIG8sbj0iIjtmb3IobyBpbiBlKWlmKHQ9PT1vKXtuPWVbb107YnJlYWt9cmV0dXJuIG59LG8ucHJvdG90eXBlLmlzVmVuZG9ySW52YWxpZD1mdW5jdGlvbihlLHQpe3ZhciBvPSExLG49IWUucHVycG9zZXMubGVuZ3RoJiYhZS5mbGV4aWJsZVB1cnBvc2VzLmxlbmd0aCxyPShPLk92ZXJyaWRkZW5WZW5kb3JzW3RdJiYhTy5PdmVycmlkZGVuVmVuZG9yc1t0XS5jb25zZW50JiYobj0hMCksITApO3JldHVybiBfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJJiZlLmxlZ0ludFB1cnBvc2VzLmxlbmd0aCYmKCFPLk92ZXJyaWRkZW5WZW5kb3JzW3RdfHxPLk92ZXJyaWRkZW5WZW5kb3JzW3RdLmxlZ0ludCkmJihyPSExKSxvPSFufHwhcnx8ZS5zcGVjaWFsUHVycG9zZXMubGVuZ3RofHxlLmZlYXR1cmVzLmxlbmd0aHx8ZS5zcGVjaWFsRmVhdHVyZXMubGVuZ3RoP286ITB9LG8ucHJvdG90eXBlLnJlbW92ZUluQWN0aXZlVmVuZG9yc0ZvclRjZj1mdW5jdGlvbihyKXt2YXIgaT10aGlzLHM9RC5pYWJEYXRhLnZlbmRvckxpc3RWZXJzaW9uLGU9Ty5QdWJsaXNoZXIsYT1PLkdsb2JhbFJlc3RyaWN0aW9uRW5hYmxlZDswIT09T2JqZWN0LmtleXMoZSkubGVuZ3RoJiZlJiZPYmplY3Qua2V5cyhlLnJlc3RyaWN0aW9ucykubGVuZ3RoLE9iamVjdC5rZXlzKHIudmVuZG9ycykuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbz1yLnZlbmRvcnNbdF0sZT0hMSxuPWkuZ2V0VmVuZG9yR1ZMVmVyc2lvbihvKSxuPShzPG4mJihPLk5ld1ZlbmRvcnNJbmFjdGl2ZUVuYWJsZWQ/KGkuaW5pdGlhbGl6ZVZlbmRvckluT3ZlcnJpZGRlblZlbmRvcnModCwhMSksZT0hMCk6YSYmKG8ucHVycG9zZXMuZm9yRWFjaChmdW5jdGlvbihlKXtpLmFwcGx5R2xvYmFsUmVzdHJpY3Rpb25zb25OZXdWZW5kb3Iobyx0LGUsITApfSksby5sZWdJbnRQdXJwb3Nlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kuYXBwbHlHbG9iYWxSZXN0cmljdGlvbnNvbk5ld1ZlbmRvcihvLHQsZSwhMSl9KSkpLE8uT3ZlcnJpZGRlblZlbmRvcnNbdF0mJiFPLk92ZXJyaWRkZW5WZW5kb3JzW3RdLmFjdGl2ZSYmKGU9ITApLC0xPE8uVmVuZG9ycy5pbmRleE9mKE51bWJlcih0KSkmJihlPSEwKSxpLmlzVmVuZG9ySW52YWxpZChvLHQpKTsoZT1lfHxuKSYmZGVsZXRlIHIudmVuZG9yc1t0XSxlfHxpLnNldEFjdGl2ZVZlbmRvckNvdW50KG8sdCl9KX0sby5wcm90b3R5cGUuZ2V0VmVuZG9yR1ZMVmVyc2lvbj1mdW5jdGlvbihlKXtyZXR1cm4gXy5pc1RjZlYyVGVtcGxhdGU/ZS5pYWIyVjJHVkxWZXJzaW9uOmUuaWFiMkdWTFZlcnNpb259LG8ucHJvdG90eXBlLnJlbW92ZUVsZW1lbnRzRnJvbUFycmF5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiF0LmluY2x1ZGVzKGUpfSl9LG8ucHJvdG90eXBlLnNldFB1Ymxpc2hlclJlc3RyaWN0aW9ucz1mdW5jdGlvbigpe3ZhciBpLHQscyxhLGU9Ty5QdWJsaXNoZXI7ZSYmZS5yZXN0cmljdGlvbnMmJihpPXRoaXMuaWFiU3RyaW5nU0RLKCksdD1lLnJlc3RyaWN0aW9ucyxzPUQuaWFiRGF0YSxhPUQub25lVHJ1c3RJQUJDb25zZW50LnZlbmRvckxpc3QudmVuZG9ycyxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBuLHI9dFtvXSxlPV8uaWFiR3JvdXBzLnB1cnBvc2VzW29dO2UmJihuPXtkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLHB1cnBvc2VJZDplLmlkLHB1cnBvc2VOYW1lOmUubmFtZX0pLE9iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ7RC52ZW5kb3JzU2V0dGluZ1tlXSYmKHQ9RC52ZW5kb3JzU2V0dGluZ1tlXS5hcnJJbmRleCwxPT09cltlXSYmLTE9PT1hW2VdLnB1cnBvc2VzLmluZGV4T2YoTnVtYmVyKG8pKT9zLnZlbmRvcnNbdF0ucHVycG9zZXMucHVzaChuKToyPT09cltlXSYmLTE9PT1hW2VdLmxlZ0ludFB1cnBvc2VzLmluZGV4T2YoTnVtYmVyKG8pKSYmcy52ZW5kb3JzW3RdLmxlZ0ludFB1cnBvc2VzLnB1c2gobiksdD1pLnB1cnBvc2VSZXN0cmljdGlvbihOdW1iZXIobykscltlXSksRC50Y01vZGVsLnB1Ymxpc2hlclJlc3RyaWN0aW9ucy5hZGQoTnVtYmVyKGUpLHQpKX0pfSkpfSxvLnByb3RvdHlwZS5wb3B1bGF0ZVZlbmRvckxpc3RUQ0Y9ZnVuY3Rpb24oKXt2YXIgcDtyZXR1cm4gUCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdCxvLG4scixpLHMsYSxsLGMsZCx1O3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4odD10aGlzLmlhYlN0cmluZ1NESygpLG89RC5pYWJEYXRhLG49aC51cGRhdGVDb3JyZWN0SUFCVXJsKG8uZ2xvYmFsVmVuZG9yTGlzdFVybCkscj0hdGhpcy5pc0lBQkNyb3NzQ29uc2VudEVuYWJsZWQoKSxzPXRoaXMuZ2V0Q29uc2VudExhbmd1YWdlKCksaC5jaGVja01vYmlsZU9mZmxpbmVSZXF1ZXN0KGguZ2V0QmFubmVyVmVyc2lvblVybCgpKSk/WzMsMV06KF8ubW9iaWxlT25saW5lVVJMLnB1c2gobiksaT10Lmd2bChzLG4sRC5ndmxPYmopLFszLDNdKTtjYXNlIDE6cmV0dXJuIGw9KGE9dCkuZ3ZsLGM9W3MsbnVsbF0sWzQsaC5vdEZldGNoT2ZmbGluZUZpbGUodi5nZXRSZWxhdGl2ZVVSTChuLCEwKSldO2Nhc2UgMjppPWwuYXBwbHkoYSxjLmNvbmNhdChbZS5zZW50KCldKSksZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gdGhpcy5yZW1vdmVJbkFjdGl2ZVZlbmRvcnNGb3JUY2YoaSksXy50Y2YyQWN0aXZlVmVuZG9ycy5hbGw9T2JqZWN0LmtleXMoaS52ZW5kb3JzKS5sZW5ndGgsRC5vbmVUcnVzdElBQkNvbnNlbnQudmVuZG9yTGlzdD1pLHRoaXMuYXNzaWduSUFCRGF0YVdpdGhHbG9iYWxWZW5kb3JMaXN0KGkpLGQ9RCxbNCx0LnRjTW9kZWwoaSldO2Nhc2UgNDpkLnRjTW9kZWw9ZS5zZW50KCksciYmdGhpcy5zZXRQdWJsaXNoZXJSZXN0cmljdGlvbnMoKSxELnRjTW9kZWwuY21wSWQ9cGFyc2VJbnQoby5jbXBJZCksXy5pc1RjZlYyVGVtcGxhdGUmJihELnRjTW9kZWwudXNlTm9uU3RhbmRhcmRUZXh0cz1PLlVzZU5vblN0YW5kYXJkU3RhY2tzKSxELnRjTW9kZWwuY21wVmVyc2lvbj1wYXJzZUludChvLmNtcFZlcnNpb24pLDA8KHU9T2JqZWN0LmtleXMoaS52ZW5kb3JzKS5tYXAoTnVtYmVyKSkubGVuZ3RoJiZudWxsIT0ocD1udWxsPT0ocD1ELnRjTW9kZWwpP3ZvaWQgMDpwLnZlbmRvcnNEaXNjbG9zZWQpJiZwLnNldCh1KTt0cnl7RC50Y01vZGVsLmNvbnNlbnRMYW5ndWFnZT1ELmNvbnNlbnRMYW5ndWFnZX1jYXRjaChlKXtELnRjTW9kZWwuY29uc2VudExhbmd1YWdlPSJFTiJ9cmV0dXJuIEQudGNNb2RlbC5jb25zZW50U2NyZWVuPXBhcnNlSW50KG8uY29uc2VudFNjcmVlbiksRC50Y01vZGVsLmlzU2VydmljZVNwZWNpZmljPXIsRC50Y01vZGVsLnB1cnBvc2VPbmVUcmVhdG1lbnQ9Xy5wdXJwb3NlT25lVHJlYXRtZW50LE8uUHVibGlzaGVyQ0M/RC50Y01vZGVsLnB1Ymxpc2hlckNvdW50cnlDb2RlPU8uUHVibGlzaGVyQ0M6RC51c2VyTG9jYXRpb24uY291bnRyeSYmKEQudGNNb2RlbC5wdWJsaXNoZXJDb3VudHJ5Q29kZT1ELnVzZXJMb2NhdGlvbi5jb3VudHJ5KSxELmNtcEFwaT10LmNtcEFwaShELnRjTW9kZWwuY21wSWQsRC50Y01vZGVsLmNtcFZlcnNpb24scix0aGlzLnNob3VsZE92ZXJyaWRlVENEYXRhKCk/e2dldFRDRGF0YTp0aGlzLm92ZXJyaWRlVENEYXRhLGdldEluQXBwVENEYXRhOnRoaXMub3ZlcnJpZGVUQ0RhdGF9OnZvaWQgMCksbnVsbCE9PXRoaXMuYWxlcnRCb3hDbG9zZURhdGUoKSYmIXRoaXMubmVlZFJlY29uc2VudCgpfHx0aGlzLnJlc2V0VENNb2RlbCgpLFsyXX19KX0pfSxvLnByb3RvdHlwZS5yZXNldFRDTW9kZWw9ZnVuY3Rpb24oKXt2YXIgZSx0LG89dGhpcy5pYWJTdHJpbmdTREsoKSxuPUQudGNNb2RlbC5jbG9uZSgpO24udW5zZXRBbGwoKSxfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJJiYoZT1fLmNvbnNlbnRhYmxlSWFiR3Jwcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuSGFzTGVnSW50T3B0T3V0JiZlLlR5cGU9PT1FLkdyb3VwVHlwZXMuUHVyfSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChfLmlhYkdycElkTWFwW2UuQ3VzdG9tR3JvdXBJZF0pfSksdD1PYmplY3Qua2V5cyhELnZlbmRvcnNTZXR0aW5nKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIEQudmVuZG9yc1NldHRpbmdbZV0ubGVnSW50fSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlKX0pLG4ucHVycG9zZUxlZ2l0aW1hdGVJbnRlcmVzdHMuc2V0KGUpLG4udmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cy5zZXQodCksbi5pc1NlcnZpY2VTcGVjaWZpYykmJm4ucHVibGlzaGVyTGVnaXRpbWF0ZUludGVyZXN0cy5zZXQoZSk7dHJ5e3ZhciByLGk9RC5vbmVUcnVzdElBQkNvbnNlbnQmJkQub25lVHJ1c3RJQUJDb25zZW50LnZlbmRvckxpc3Qscz1pJiZpLnZlbmRvcnM7cyYmbiYmbi52ZW5kb3JzRGlzY2xvc2VkJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi52ZW5kb3JzRGlzY2xvc2VkLnNldCYmKHI9T2JqZWN0LmtleXMocykubWFwKE51bWJlcikpLmxlbmd0aCYmbi52ZW5kb3JzRGlzY2xvc2VkLnNldChyKX1jYXRjaChlKXtjb25zb2xlLmluZm8oZSl9RC5jbXBBcGkudXBkYXRlKG8udGNTdHJpbmcoKS5lbmNvZGUobiksITApfSxvLnByb3RvdHlwZS5vdmVycmlkZVRDRGF0YT1mdW5jdGlvbihlLHQsbyl7dmFyIG4scj13LmNhbkluZmVyR0NNU2V0dGluZ3NGcm9tVENTdHJpbmcoKTt0JiZ0LnRjU3RyaW5nJiYoTy5Vc2VHb29nbGVWZW5kb3JzJiYoKG49TC5nZXRDb29raWUoay5BRERJVElPTkFMX0NPTlNFTlRfU1RSSU5HKSk/dC5hZGR0bENvbnNlbnQ9bjoobj10byhbXSxbXSksdC5hZGR0bENvbnNlbnQ9bikpLHIpJiYodC5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9ITApLCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UodCxvKTpjb25zb2xlLmVycm9yKCJfX3RjZmFwaSByZWNlaXZlZCBpbnZhbGlkIHBhcmFtZXRlcnMuIil9LG8ucHJvdG90eXBlLnNldElhYkRhdGE9ZnVuY3Rpb24oKXtELmlhYkRhdGE9Xy5pc1RjZlYyVGVtcGxhdGU/Yi5tb2R1bGVJbml0aWFsaXplci5JYWIyVjJEYXRhOmIubW9kdWxlSW5pdGlhbGl6ZXIuSWFiVjJEYXRhLEQuaWFiRGF0YS5jb25zZW50TGFuZ3VhZ2U9RC5jb25zZW50TGFuZ3VhZ2V9LG8ucHJvdG90eXBlLmFzc2lnbklBQkRhdGFXaXRoR2xvYmFsVmVuZG9yTGlzdD1mdW5jdGlvbihvKXt2YXIgcj10aGlzLGk9Ty5PdmVycmlkZGVuVmVuZG9ycyxzPShELmlhYkRhdGEudmVuZG9yTGlzdFZlcnNpb249by52ZW5kb3JMaXN0VmVyc2lvbixELmlhYkRhdGEudmVuZG9ycz1bXSxPLklBQkRhdGFDYXRlZ29yaWVzKTtPYmplY3Qua2V5cyhvLnZlbmRvcnMpLmZvckVhY2goZnVuY3Rpb24obil7RC52ZW5kb3JzU2V0dGluZ1tuXT17Y29uc2VudDohMCxsZWdJbnQ6ITAsYXJySW5kZXg6MCxzcGVjaWFsUHVycG9zZXNPbmx5OiExfTt2YXIgZT17fSx0PW8udmVuZG9yc1tuXTtlLnZlbmRvcklkPW4sZS52ZW5kb3JOYW1lPXQubmFtZSxlLnBvbGljeVVybD10LnBvbGljeVVybCxyLnNldElBQjJWZW5kb3JEYXRhKHQsZSksZS5jb29raWVNYXhBZ2U9dC5jb29raWVNYXhBZ2VTZWNvbmRzP3YuY2FsY3VsYXRlQ29va2llTGlmZXNwYW4odC5jb29raWVNYXhBZ2VTZWNvbmRzKTpudWxsLGUudXNlc05vbkNvb2tpZUFjY2Vzcz10LnVzZXNOb25Db29raWVBY2Nlc3MsZS5kZXZpY2VTdG9yYWdlRGlzY2xvc3VyZVVybD10LmRldmljZVN0b3JhZ2VEaXNjbG9zdXJlVXJsfHxudWxsLF8ubGVnSW50U2V0dGluZ3MuUEFsbG93TEkmJiFyLnNob3VsZEhhdmVWZW5kb3JMSVVuc2V0KGksdCxuKXx8KEQudmVuZG9yc1NldHRpbmdbbl0ubGVnSW50PSExKSxfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJJiZyLnZlbmRvckhhc05vTElBbmRQdXJDb25zZW50KGksdCxuKSYmdC5zcGVjaWFsUHVycG9zZXMubGVuZ3RoJiYoRC52ZW5kb3JzU2V0dGluZ1tuXS5zcGVjaWFsUHVycG9zZXNPbmx5PSEwLEQuYW55VmVuZG9ySGFzT25seVNwbFB1cj0hMCksci5jYW5TaG93Q29uc2VudFRvZ2dsZShpLHQsbiksZS5mZWF0dXJlcz10LmZlYXR1cmVzLnJlZHVjZShmdW5jdGlvbihlLHQpe3Q9Xy5pYWJHcm91cHMuZmVhdHVyZXNbdF07cmV0dXJuIHQmJmUucHVzaCh7ZGVzY3JpcHRpb246dC5kZXNjcmlwdGlvbixmZWF0dXJlSWQ6dC5pZCxmZWF0dXJlTmFtZTp0Lm5hbWV9KSxlfSxbXSksZS5zcGVjaWFsRmVhdHVyZXM9by52ZW5kb3JzW25dLnNwZWNpYWxGZWF0dXJlcy5yZWR1Y2UoZnVuY3Rpb24oZSx0KXt0PV8uaWFiR3JvdXBzLnNwZWNpYWxGZWF0dXJlc1t0XTtyZXR1cm4gdCYmZS5wdXNoKHtkZXNjcmlwdGlvbjp0LmRlc2NyaXB0aW9uLGZlYXR1cmVJZDp0LmlkLGZlYXR1cmVOYW1lOnQubmFtZX0pLGV9LFtdKSxyLm1hcERhdGFEZWNsYXJhdGlvbkZvclZlbmRvcihvLnZlbmRvcnNbbl0sZSxzKSxyLm1hcERhdGFSZXRlbnRpb25Gb3JWZW5kb3Ioby52ZW5kb3JzW25dLGUpLGUucHVycG9zZXM9by52ZW5kb3JzW25dLnB1cnBvc2VzLnJlZHVjZShmdW5jdGlvbihlLHQpe3ZhciBvPV8uaWFiR3JvdXBzLnB1cnBvc2VzW3RdO3JldHVybiFvfHxpW25dJiZpW25dLmRpc2FibGVkQ1AmJi0xIT09aVtuXS5kaXNhYmxlZENQLmluZGV4T2YodCl8fGUucHVzaCh7ZGVzY3JpcHRpb246by5kZXNjcmlwdGlvbixwdXJwb3NlSWQ6by5pZCxwdXJwb3NlTmFtZTpvLm5hbWV9KSxlfSxbXSksZS5sZWdJbnRQdXJwb3Nlcz1vLnZlbmRvcnNbbl0ubGVnSW50UHVycG9zZXMucmVkdWNlKGZ1bmN0aW9uKGUsdCl7dmFyIG89Xy5pYWJHcm91cHMucHVycG9zZXNbdF07cmV0dXJuIW98fGlbbl0mJmlbbl0uZGlzYWJsZWRMSVAmJi0xIT09aVtuXS5kaXNhYmxlZExJUC5pbmRleE9mKHQpfHxlLnB1c2goe2Rlc2NyaXB0aW9uOm8uZGVzY3JpcHRpb24scHVycG9zZUlkOm8uaWQscHVycG9zZU5hbWU6by5uYW1lfSksZX0sW10pLGUuc3BlY2lhbFB1cnBvc2VzPXQuc3BlY2lhbFB1cnBvc2VzLnJlZHVjZShmdW5jdGlvbihlLHQpe3Q9Xy5pYWJHcm91cHMuc3BlY2lhbFB1cnBvc2VzW3RdO3JldHVybiB0JiZlLnB1c2goe2Rlc2NyaXB0aW9uOnQuZGVzY3JpcHRpb24scHVycG9zZUlkOnQuaWQscHVycG9zZU5hbWU6dC5uYW1lfSksZX0sW10pLEQuaWFiRGF0YS52ZW5kb3JzLnB1c2goZSksRC52ZW5kb3JzU2V0dGluZ1tuXS5hcnJJbmRleD1ELmlhYkRhdGEudmVuZG9ycy5sZW5ndGgtMX0pfSxvLnByb3RvdHlwZS5jYW5TaG93Q29uc2VudFRvZ2dsZT1mdW5jdGlvbihlLHQsbyl7dmFyIG49ISFfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJJiZ0LmZsZXhpYmxlUHVycG9zZXMuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuIHQubGVnSW50UHVycG9zZXMuaW5jbHVkZXMoZSl9KSxyPSEhXy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMSSYmKGVbb10/IWVbb10uY29uc2VudDpuKTsoIWVbb118fGVbb10uY29uc2VudCkmJihlW29dfHx0LnB1cnBvc2VzLmxlbmd0aHx8dC5mbGV4aWJsZVB1cnBvc2VzLmxlbmd0aCYmKHQuZmxleGlibGVQdXJwb3Nlcy5sZW5ndGgsIW4pKSYmKHQucHVycG9zZXMubGVuZ3RofHx0LmZsZXhpYmxlUHVycG9zZXMubGVuZ3RoJiYodC5mbGV4aWJsZVB1cnBvc2VzLmxlbmd0aCwhcikpfHwoRC52ZW5kb3JzU2V0dGluZ1tvXS5jb25zZW50PSExKX0sby5wcm90b3R5cGUudmVuZG9ySGFzTm9MSUFuZFB1ckNvbnNlbnQ9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBlW29dJiYhZVtvXS5sZWdJbnQmJiFlW29dLmNvbnNlbnR8fCFlW29dJiYhdC5sZWdJbnRQdXJwb3Nlcy5sZW5ndGgmJiF0LnB1cnBvc2VzLmxlbmd0aH0sby5wcm90b3R5cGUuc2hvdWxkSGF2ZVZlbmRvckxJVW5zZXQ9ZnVuY3Rpb24oZSx0LG8pe3ZhciBuPSExLHI9ITEsaT10LnNwZWNpYWxQdXJwb3Nlcy5sZW5ndGg7cmV0dXJuKGVbb10mJiFlW29dLmxlZ0ludHx8IWVbb10mJiF0LmxlZ0ludFB1cnBvc2VzLmxlbmd0aCkmJihuPSEwKSwoZVtvXSYmIWVbb10uY29uc2VudHx8IWVbb10mJiF0LnB1cnBvc2VzLmxlbmd0aCkmJihyPSEwKSwhKCFufHxyPT09Qm9vbGVhbihpKSYmKHJ8fGkpKX0sby5wcm90b3R5cGUubWFwRGF0YURlY2xhcmF0aW9uRm9yVmVuZG9yPWZ1bmN0aW9uKGUsdCxuKXt2YXIgbztfLmlzVGNmVjJUZW1wbGF0ZSYmbnVsbCE9KG89ZS5kYXRhRGVjbGFyYXRpb24pJiZvLmxlbmd0aCYmKHQuZGF0YURlY2xhcmF0aW9uPWUuZGF0YURlY2xhcmF0aW9uLnJlZHVjZShmdW5jdGlvbihlLHQpe3ZhciBvPW4uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5JZD09PXR9KTtyZXR1cm4gbyYmZS5wdXNoKHtEZXNjcmlwdGlvbjpvLkRlc2NyaXB0aW9uLElkOm8uSWQsTmFtZTpvLk5hbWV9KSxlfSxbXSkpfSxvLnByb3RvdHlwZS5tYXBEYXRhUmV0ZW50aW9uRm9yVmVuZG9yPWZ1bmN0aW9uKG8sbil7dmFyIGU7bi5kYXRhUmV0ZW50aW9uPXt9LF8uaXNUY2ZWMlRlbXBsYXRlJiZvLmRhdGFSZXRlbnRpb24mJihudWxsIT09KG51bGw9PShlPW8uZGF0YVJldGVudGlvbik/dm9pZCAwOmUuc3RkUmV0ZW50aW9uKSYmdm9pZCAwIT09KG51bGw9PShlPW8uZGF0YVJldGVudGlvbik/dm9pZCAwOmUuc3RkUmV0ZW50aW9uKSYmKG4uZGF0YVJldGVudGlvbj17c3RkUmV0ZW50aW9uOm8uZGF0YVJldGVudGlvbi5zdGRSZXRlbnRpb259KSxPYmplY3Qua2V5cyhudWxsPT0oZT1vLmRhdGFSZXRlbnRpb24pP3ZvaWQgMDplLnB1cnBvc2VzKS5sZW5ndGgmJihuLmRhdGFSZXRlbnRpb24ucHVycG9zZXM9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvLmRhdGFSZXRlbnRpb24ucHVycG9zZXMpKSxPYmplY3Qua2V5cyhvLmRhdGFSZXRlbnRpb24ucHVycG9zZXMpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9Xy5pYWJHcm91cHMucHVycG9zZXNbZV07dCYmKG4uZGF0YVJldGVudGlvbi5wdXJwb3Nlc1tlXT17bmFtZTp0Lm5hbWUsaWQ6dC5pZCxyZXRlbnRpb246by5kYXRhUmV0ZW50aW9uLnB1cnBvc2VzW2VdfSl9KSksT2JqZWN0LmtleXMobnVsbD09KGU9by5kYXRhUmV0ZW50aW9uKT92b2lkIDA6ZS5zcGVjaWFsUHVycG9zZXMpLmxlbmd0aCkmJihuLmRhdGFSZXRlbnRpb24uc3BlY2lhbFB1cnBvc2VzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoby5kYXRhUmV0ZW50aW9uLnNwZWNpYWxQdXJwb3NlcykpLE9iamVjdC5rZXlzKG8uZGF0YVJldGVudGlvbi5zcGVjaWFsUHVycG9zZXMpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9Xy5pYWJHcm91cHMuc3BlY2lhbFB1cnBvc2VzW2VdO3QmJihuLmRhdGFSZXRlbnRpb24uc3BlY2lhbFB1cnBvc2VzW2VdPXtuYW1lOnQubmFtZSxpZDp0LmlkLHJldGVudGlvbjpvLmRhdGFSZXRlbnRpb24uc3BlY2lhbFB1cnBvc2VzW2VdfSl9KSl9LG8ucHJvdG90eXBlLnNldElBQjJWZW5kb3JEYXRhPWZ1bmN0aW9uKGUsdCl7dmFyIG8sbixyO18uaXNUY2ZWMlRlbXBsYXRlJiYobj1ELmxhbmcscj0ocj1lLnVybHMuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5sYW5nSWQ9PT1ufSkpfHxlLnVybHNbMF0sdC52ZW5kb3JQcml2YWN5VXJsPShudWxsPT0obz1yKT92b2lkIDA6by5wcml2YWN5KXx8IiIsdC5sZWdJbnRDbGFpbT0obnVsbD09KG89cik/dm9pZCAwOm8ubGVnSW50Q2xhaW0pfHwiIixudWxsIT0ocj1lLmRhdGFEZWNsYXJhdGlvbikmJnIubGVuZ3RoJiYodC5kYXRhRGVjbGFyYXRpb249ZS5kYXRhRGVjbGFyYXRpb24pLGUuRGF0YVJldGVudGlvbikmJih0LkRhdGFSZXRlbnRpb249ZS5EYXRhUmV0ZW50aW9uKX0sby5wcm90b3R5cGUucG9wdWxhdGVJQUJDb29raWVzPWZ1bmN0aW9uKCl7cmV0dXJuIFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEEodGhpcyxmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOmlmKCF0aGlzLmlzSUFCQ3Jvc3NDb25zZW50RW5hYmxlZCgpKXJldHVyblszLDVdO2UubGFiZWw9MTtjYXNlIDE6cmV0dXJuIGUudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCx0aGlzLnNldElBQjNyZFBhcnR5Q29va2llKGsuRVVfQ09OU0VOVCwiIiwwLCEwKV07Y2FzZSAyOnJldHVybiBlLnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGUuc2VudCgpLHRoaXMuc2V0SUFCQ29va2llRGF0YSgpLHRoaXMudXBkYXRlQ3Jvc3NDb25zZW50Q29va2llKCExKSxbMyw0XTtjYXNlIDQ6cmV0dXJuWzMsNl07Y2FzZSA1OncubmVlZFJlY29uc2VudCgpfHx0aGlzLnNldElBQkNvb2tpZURhdGEoKSxlLmxhYmVsPTY7Y2FzZSA2OnJldHVyblsyXX19KX0pfSxvLnByb3RvdHlwZS5zZXRJQUIzcmRQYXJ0eUNvb2tpZT1mdW5jdGlvbihlLHQsbyxuKXt2YXIgcj1PLmlhYlRoaXJkUGFydHlDb25zZW50VXJsO3RyeXtpZihyJiZkb2N1bWVudC5ib2R5KXJldHVybiB0aGlzLnVwZGF0ZVRoaXJkUGFydHlDb25zZW50KHIsZSx0LG8sbik7dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yfWNhdGNoKGUpe3Rocm93IGV9fSxvLnByb3RvdHlwZS5zZXRJQUJDb29raWVEYXRhPWZ1bmN0aW9uKCl7RC5vbmVUcnVzdElBQkNvbnNlbnQuSUFCQ29va2llVmFsdWU9TC5nZXRNZXJnZWRDb29raWVCeU5hbWUoay5FVV9QVUJfQ09OU0VOVCl9LG8ucHJvdG90eXBlLnVwZGF0ZVRoaXJkUGFydHlDb25zZW50PWZ1bmN0aW9uKG4scixpLHMsYSl7cmV0dXJuIFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHQsbztyZXR1cm4gQSh0aGlzLGZ1bmN0aW9uKGUpe3JldHVybiB0PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK24rIi8/bmFtZT0iK3IrIiZ2YWx1ZT0iK2krIiZleHBpcmU9IitzKyImaXNGaXJzdFJlcXVlc3Q9IithLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmV0cnVzdElhYkNvb2tpZSIpPyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25ldHJ1c3RJYWJDb29raWUiKS5jb250ZW50V2luZG93LmxvY2F0aW9uLnJlcGxhY2UodCksWzJdKTooZChvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLCJkaXNwbGF5OiBub25lOyIsITApLG8uaWQ9Im9uZXRydXN0SWFiQ29va2llIixvLnNldEF0dHJpYnV0ZSgidGl0bGUiLCJPbmVUcnVzdCBJQUIgQ29va2llIiksby5zcmM9dCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG8pLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe28ub25sb2FkPWZ1bmN0aW9uKCl7Xy50aGlyZFBhcnR5aUZyYW1lUmVzb2x2ZSgpLF8udGhpcmRQYXJ0eWlGcmFtZUxvYWRlZD0hMCxlKCl9LG8ub25lcnJvcj1mdW5jdGlvbigpe3Rocm93IF8udGhpcmRQYXJ0eWlGcmFtZVJlc29sdmUoKSxfLnRoaXJkUGFydHlpRnJhbWVMb2FkZWQ9ITAsZSgpLG5ldyBVUklFcnJvcn19KV0pfSl9KX0sby5wcm90b3R5cGUuc2V0SUFCVmVuZG9yPWZ1bmN0aW9uKG4scixpKXt2YXIgdCxzPXRoaXM7dm9pZCAwPT09biYmKG49ITApLHZvaWQgMD09PXImJihyPSExKSx2b2lkIDA9PT1pJiYoaT0hMSksRC5pYWJEYXRhLnZlbmRvcnMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxvLGU9ZS52ZW5kb3JJZDtfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJPyhvPXZvaWQgMCxyP289bjoodD1ELnZlbmRvcnNTZXR0aW5nW2VdLGkmJnQubGVnSW50JiYhdC5zcGVjaWFsUHVycG9zZXNPbmx5P3MudXBkYXRlVmVuZG9yUHVycG9zZU9yTEkoITAsZSwhMSk6KG89ISFELnZlbmRvcnNTZXR0aW5nW2VdLmNvbnNlbnQmJm4scy51cGRhdGVWZW5kb3JQdXJwb3NlT3JMSSghMCxlLEQudmVuZG9yc1NldHRpbmdbZV0ubGVnSW50KSkpLHMudXBkYXRlVmVuZG9yUHVycG9zZU9yTEkoITEsZSxvKSk6KEQub25lVHJ1c3RJQUJDb25zZW50LmxlZ0ludFZlbmRvcnM9W10scy51cGRhdGVWZW5kb3JQdXJwb3NlT3JMSSghMSxlLG4pKX0pLE8uVXNlR29vZ2xlVmVuZG9ycyYmKHQ9RC5hZGR0bFZlbmRvcnMsT2JqZWN0LmtleXMoRC5hZGR0bFZlbmRvcnNMaXN0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe24/KHQudmVuZG9yU2VsZWN0ZWRbIiIrZS50b1N0cmluZygpXT0hMCx0LnZlbmRvckNvbnNlbnQucHVzaCgiIitlLnRvU3RyaW5nKCkpKTpyJiYodC52ZW5kb3JTZWxlY3RlZFsiIitlLnRvU3RyaW5nKCldPSExLGU9dC52ZW5kb3JDb25zZW50LmluZGV4T2YoIiIrZS50b1N0cmluZygpKSx0LnZlbmRvckNvbnNlbnQuc3BsaWNlKGUsMSkpfSkpfSxvLnByb3RvdHlwZS51cGRhdGVWZW5kb3JQdXJwb3NlT3JMST1mdW5jdGlvbihlLHQsbyl7dm9pZCAwPT09byYmKG89ITEpLChlPXZvaWQgMD09PWU/ITE6ZSk/LTE8KGU9RC5vbmVUcnVzdElBQkNvbnNlbnQubGVnSW50VmVuZG9ycy5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5jbHVkZXModC50b1N0cmluZygpKyI6dHJ1ZSIpfHxlLmluY2x1ZGVzKHQudG9TdHJpbmcoKSsiOmZhbHNlIil9KSk/RC5vbmVUcnVzdElBQkNvbnNlbnQubGVnSW50VmVuZG9yc1tlXT10LnRvU3RyaW5nKCkrIjoiK286RC5vbmVUcnVzdElBQkNvbnNlbnQubGVnSW50VmVuZG9ycy5wdXNoKHQudG9TdHJpbmcoKSsiOiIrbyk6LTE8KGU9RC5vbmVUcnVzdElBQkNvbnNlbnQudmVuZG9ycy5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5jbHVkZXModC50b1N0cmluZygpKyI6dHJ1ZSIpfHxlLmluY2x1ZGVzKHQudG9TdHJpbmcoKSsiOmZhbHNlIil9KSk/RC5vbmVUcnVzdElBQkNvbnNlbnQudmVuZG9yc1tlXT10LnRvU3RyaW5nKCkrIjoiK286RC5vbmVUcnVzdElBQkNvbnNlbnQudmVuZG9ycy5wdXNoKHQudG9TdHJpbmcoKSsiOiIrbyl9LG8ucHJvdG90eXBlLnNldE9yVXBkYXRlM3JkUGFydHlJQUJDb25zZW50RmxhZz1mdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0SUFCQ3Jvc3NDb25zZW50ZmxhZ0RhdGEoKTtPLklzSWFiRW5hYmxlZD9lJiYhdGhpcy5uZWVkUmVjb25zZW50KCl8fHRoaXMudXBkYXRlQ3Jvc3NDb25zZW50Q29va2llKE8uSXNJYWJUaGlyZFBhcnR5Q29va2llRW5hYmxlZCk6ZSYmIXRoaXMucmVjb25zZW50UmVxdWlyZWQoKSYmInRydWUiIT09ZXx8dGhpcy51cGRhdGVDcm9zc0NvbnNlbnRDb29raWUoITEpfSxvLnByb3RvdHlwZS5pc0lBQkNyb3NzQ29uc2VudEVuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4idHJ1ZSI9PT10aGlzLmdldElBQkNyb3NzQ29uc2VudGZsYWdEYXRhKCl9LG8ucHJvdG90eXBlLmdldElBQkNyb3NzQ29uc2VudGZsYWdEYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIEwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuSVNfSUFCX0dMT0JBTCl9LG8ucHJvdG90eXBlLnNldEdlb2xvY2F0aW9uSW5Db29raWVzPWZ1bmN0aW9uKCl7dmFyIGUsdD1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLkdFT19MT0NBVElPTik7RC51c2VyTG9jYXRpb24mJiF0JiZ0aGlzLmlzQWxlcnRCb3hDbG9zZWRBbmRWYWxpZCgpPyhlPUQudXNlckxvY2F0aW9uLmNvdW50cnkrIjsiK0QudXNlckxvY2F0aW9uLnN0YXRlLHRoaXMuc2V0VXBkYXRlR2VvbG9jYXRpb25Db29raWVzRGF0YShlKSk6dGhpcy5yZWNvbnNlbnRSZXF1aXJlZCgpJiZ0JiZ0aGlzLnNldFVwZGF0ZUdlb2xvY2F0aW9uQ29va2llc0RhdGEoIiIpfSxvLnByb3RvdHlwZS5pYWJTdHJpbmdTREs9ZnVuY3Rpb24oKXt2YXIgZT1iLm1vZHVsZUluaXRpYWxpemVyLm90SUFCTW9kdWxlRGF0YTtpZihPLklzSWFiRW5hYmxlZCYmZSlyZXR1cm57Z3ZsOmUudGNmU2RrUmVmLmd2bCx0Y01vZGVsOmUudGNmU2RrUmVmLnRjTW9kZWwsdGNTdHJpbmc6ZS50Y2ZTZGtSZWYudGNTdHJpbmcsY21wQXBpOmUudGNmU2RrUmVmLmNtcEFwaSxwdXJwb3NlUmVzdHJpY3Rpb246ZS50Y2ZTZGtSZWYucHVycG9zZVJlc3RyaWN0aW9ufX0sby5wcm90b3R5cGUuc2V0VXBkYXRlR2VvbG9jYXRpb25Db29raWVzRGF0YT1mdW5jdGlvbihlKXtMLndyaXRlQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5HRU9fTE9DQVRJT04sZSl9LG8ucHJvdG90eXBlLmNhbGN1bGF0ZURheXNGcm9tRGF0ZVRvVG9kYXk9ZnVuY3Rpb24oZSl7dmFyIGU9bmV3IERhdGUoZSksdD1uZXcgRGF0ZSx0PShlLnNldFVUQ0hvdXJzKDAsMCwwLDApLHQuc2V0VVRDSG91cnMoMCwwLDAsMCksTWF0aC5hYnModC5nZXRUaW1lKCktZS5nZXRUaW1lKCkpKTtyZXR1cm4gTWF0aC5jZWlsKHQvODY0ZTUpfSxvLnByb3RvdHlwZS5yZWNvbnNlbnRSZXF1aXJlZD1mdW5jdGlvbigpe3JldHVybihiLm1vZHVsZUluaXRpYWxpemVyLk1vYmlsZVNES3x8dGhpcy5hd2FpdGluZ1JlY29uc2VudCgpKSYmdGhpcy5uZWVkUmVjb25zZW50KCl9LG8ucHJvdG90eXBlLmF3YWl0aW5nUmVjb25zZW50PWZ1bmN0aW9uKCl7cmV0dXJuInRydWUiPT09TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5BV0FJVElOR19SRV9DT05TRU5UKX0sby5wcm90b3R5cGUubmVlZFJlY29uc2VudD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuYWxlcnRCb3hDbG9zZURhdGUoKSx0PU8uTGFzdFJlY29uc2VudERhdGU7cmV0dXJuISEoZSYmdCYmbmV3IERhdGUodCk+bmV3IERhdGUoZSkpfHwoRC5pc0FNUCYmZT90aGlzLmNhbGN1bGF0ZURheXNGcm9tRGF0ZVRvVG9kYXkoZSk+PU8uUmVjb25zZW50RnJlcXVlbmN5RGF5czp2b2lkIDApfSxvLnByb3RvdHlwZS51cGRhdGVDcm9zc0NvbnNlbnRDb29raWU9ZnVuY3Rpb24oZSl7TC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuSVNfSUFCX0dMT0JBTCxlKX0sby5wcm90b3R5cGUuYWxlcnRCb3hDbG9zZURhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gTC5nZXRDb29raWUoay5BTEVSVF9CT1hfQ0xPU0VEKX0sby5wcm90b3R5cGUuaXNBbGVydEJveENsb3NlZEFuZFZhbGlkPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLmFsZXJ0Qm94Q2xvc2VEYXRlKCkmJiF0aGlzLnJlY29uc2VudFJlcXVpcmVkKCl9LG8ucHJvdG90eXBlLmdlbmVyYXRlTGVnSW50QnV0dG9uRWxlbWVudHM9ZnVuY3Rpb24oZSx0LG8sbil7cmV0dXJuIFMuZ2V0SW5uZXJIdG1sQ29udGVudCgnPGRpdiBjbGFzcz0ib3QtbGVnLWJ0bi1jb250YWluZXIiIGRhdGEtZ3JvdXAtaWQ9IicrdCsnIiBkYXRhLWVsLWlkPSInK3QrJy1sZWctb3V0IiBpcy12ZW5kb3I9IicrKG89dm9pZCAwPT09bz8hMTpvKSsnIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ib3Qtb2JqLWxlZy1idG4taGFuZGxlciAnKyhlPyJvdC1sZWctaW50LWVuYWJsZWQgb3QtaW5hY3RpdmUtbGVnLWJ0biI6Im90LWFjdGl2ZS1sZWctYnRuIikrJyIgYXJpYS1sYWJlbD0iJysobj12b2lkIDA9PT1uPyIiOm4pKyIsICIrKGU/Xy5sZWdJbnRTZXR0aW5ncy5QT2JqZWN0TGVnSW50VGV4dDpfLmxlZ0ludFNldHRpbmdzLlBPYmplY3Rpb25BcHBsaWVkVGV4dCkrJyI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD0iJytPLnBjQnV0dG9uVGV4dENvbG9yKyciIGQ9Ik0xNzMuODk4IDQzOS40MDRsLTE2Ni40LTE2Ni40Yy05Ljk5Ny05Ljk5Ny05Ljk5Ny0yNi4yMDYgMC0zNi4yMDRsMzYuMjAzLTM2LjIwNGM5Ljk5Ny05Ljk5OCAyNi4yMDctOS45OTggMzYuMjA0IDBMMTkyIDMxMi42OSA0MzIuMDk1IDcyLjU5NmM5Ljk5Ny05Ljk5NyAyNi4yMDctOS45OTcgMzYuMjA0IDBsMzYuMjAzIDM2LjIwNGM5Ljk5NyA5Ljk5NyA5Ljk5NyAyNi4yMDYgMCAzNi4yMDRsLTI5NC40IDI5NC40MDFjLTkuOTk4IDkuOTk3LTI2LjIwNyA5Ljk5Ny0zNi4yMDQtLjAwMXoiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JysoZT9fLmxlZ0ludFNldHRpbmdzLlBPYmplY3RMZWdJbnRUZXh0Ol8ubGVnSW50U2V0dGluZ3MuUE9iamVjdGlvbkFwcGxpZWRUZXh0KSsnXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3QtcmVtb3ZlLW9iamVjdGlvbi1oYW5kbGVyIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3R5bGU9ImNvbG9yOicrTy5wY0J1dHRvbkNvbG9yKyI7ICIrKGU/ImRpc3BsYXk6bm9uZTsiOiIiKSsnIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IicrbisiLCAiK18ubGVnSW50U2V0dGluZ3MuUFJlbW92ZU9iamVjdGlvblRleHQrJyJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgJytfLmxlZ0ludFNldHRpbmdzLlBSZW1vdmVPYmplY3Rpb25UZXh0KyJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+Iil9LG8ucHJvdG90eXBlLnN5bmNBbGVydEJveENvb2tpZT1mdW5jdGlvbihlKXt2YXIgdD1PLlJlY29uc2VudEZyZXF1ZW5jeURheXM7TC5zZXRDb29raWUoay5BTEVSVF9CT1hfQ0xPU0VELGU9ZXx8IiIsdCwhMSxuZXcgRGF0ZShlKSl9LG8ucHJvdG90eXBlLnN5bmNDb29raWVFeHBpcnk9ZnVuY3Rpb24oKXtpZihELnN5bmNSZXF1aXJlZCl7dmFyIGU9Ty5SZWNvbnNlbnRGcmVxdWVuY3lEYXlzLHQ9TC5nZXRDb29raWUoay5BTEVSVF9CT1hfQ0xPU0VEKSxvPUwuZ2V0Q29va2llKGsuT1BUQU5PTl9DT05TRU5UKSxvPShMLnNldENvb2tpZShrLk9QVEFOT05fQ09OU0VOVCxvLGUsITEsbmV3IERhdGUodCkpLHcubmVlZFJlY29uc2VudCgpJiZMLnJlbW92ZUFsZXJ0Qm94KCksTC5nZXRNZXJnZWRDb29raWVCeU5hbWUoay5FVV9QVUJfQ09OU0VOVCkpO2lmKG8paWYody5pc0lBQkNyb3NzQ29uc2VudEVuYWJsZWQoKSlMLnJlbW92ZUlhYjIoKTtlbHNlIGZvcih2YXIgbj1MLmdldENvb2tpZXNDaHVuayhvLGsuRVVfUFVCX0NPTlNFTlQpLHI9MCxpPU9iamVjdC5rZXlzKG4pO3I8aS5sZW5ndGg7cisrKXt2YXIgcz1pW3JdO0wuc2V0Q29va2llKHMsbltzXSxlLCExLG5ldyBEYXRlKHQpKX1vPUwuZ2V0Q29va2llKGsuQURESVRJT05BTF9DT05TRU5UX1NUUklORyk7byYmTC5zZXRDb29raWUoay5BRERJVElPTkFMX0NPTlNFTlRfU1RSSU5HLG8sZSwhMSxuZXcgRGF0ZSh0KSl9fSxvLnByb3RvdHlwZS5zeW5jT3RQcmV2aWV3Q29va2llPWZ1bmN0aW9uKCl7dmFyIGU9TC5nZXRDb29raWUoay5PVF9QUkVWSUVXKTtlJiZMLnNldENvb2tpZShrLk9UX1BSRVZJRVcsZSwxLCExKX0sby5wcm90b3R5cGUuZGlzcGF0Y2hDb25zZW50RXZlbnQ9ZnVuY3Rpb24oKXt3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIk9UQ29uc2VudEFwcGxpZWQiLHtPVENvbnNlbnRBcHBsaWVkOiJ5ZXMifSkpfSxvLnByb3RvdHlwZS5nZXRDb25zZW50TGFuZ3VhZ2U9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gRC5sYW5nPyhlPUQubGFuZy50b1VwcGVyQ2FzZSgpLHRoaXMuSUFCVENGX1NVUFBPUlRFRF9MQU5HVUFHRVMuaGFzKGUpfHwoZT1lLnN1YnN0cigwLDIpLHRoaXMuSUFCVENGX1NVUFBPUlRFRF9MQU5HVUFHRVMuaGFzKGUpKT9lOiJQVCI9PT1lP3RoaXMuSUFCVENGX0RFRkFVTFRfUE9SVFVHVUVTRToiU1IiPT09ZT90aGlzLklBQlRDRl9ERUZBVUxUX1NFUkJJQU46dGhpcy5JQUJUQ0ZfREVGQVVMVF9MQU5HVUFHRSk6dGhpcy5JQUJUQ0ZfREVGQVVMVF9MQU5HVUFHRX07dmFyIE4sdz1uZXcgbyxybz1mdW5jdGlvbigpe307dW8ucHJvdG90eXBlLmlzQWx3YXlzQWN0aXZlR3JvdXA9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIXRoaXMuZ2V0R3JwU3RhdHVzKGUpfHwodD10aGlzLmdldEdycFN0YXR1cyhlKS50b0xvd2VyQ2FzZSgpLCh0PWUuUGFyZW50JiZ0IT09Zi5BTFdBWVNfQUNUSVZFP3RoaXMuZ2V0R3JwU3RhdHVzKHRoaXMuZ2V0UGFyZW50R3JvdXAoZS5QYXJlbnQpKS50b0xvd2VyQ2FzZSgpOnQpPT09Zi5BTFdBWVNfQUNUSVZFKX0sdW8ucHJvdG90eXBlLmdldEdycFN0YXR1cz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5TdGF0dXM/Xy5ETlRFbmFibGVkJiZlLklzRG50RW5hYmxlZCYmZS5TdGF0dXMudG9Mb3dlckNhc2UoKSE9PWYuQUxXQVlTX0lOQUNUSVZFLnRvTG93ZXJDYXNlKCk/Zi5ETlQ6ZS5TdGF0dXM6IiJ9LHVvLnByb3RvdHlwZS5nZXRQYXJlbnRHcm91cD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdCYmMDwoZT1PLkdyb3Vwcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuT3B0YW5vbkdyb3VwSWQ9PT10fSkpLmxlbmd0aD9lWzBdOm51bGx9LHVvLnByb3RvdHlwZS5jaGVja0lmR3JvdXBIYXNDb25zZW50PWZ1bmN0aW9uKHQpe3ZhciBlPWwuZ3JvdXBzQ29uc2VudCxvPXYuZmluZEluZGV4KGUsZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoIjoiKVswXT09PXQuQ3VzdG9tR3JvdXBJZH0pO3JldHVybi0xPG8mJiIxIj09PWVbb10uc3BsaXQoIjoiKVsxXX0sdW8ucHJvdG90eXBlLmNoZWNrSXNBY3RpdmVCeURlZmF1bHQ9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIXRoaXMuZ2V0R3JwU3RhdHVzKGUpfHwodD10aGlzLmdldEdycFN0YXR1cyhlKS50b0xvd2VyQ2FzZSgpLCh0PWUuUGFyZW50JiZ0IT09Zi5BTFdBWVNfQUNUSVZFP3RoaXMuZ2V0R3JwU3RhdHVzKHRoaXMuZ2V0UGFyZW50R3JvdXAoZS5QYXJlbnQpKS50b0xvd2VyQ2FzZSgpOnQpPT09Zi5BTFdBWVNfQUNUSVZFKXx8dD09PWYuSU5BQ1RJVkVfTEFORElOR19QQUdFfHx0PT09Zi5BQ1RJVkV8fHQ9PT1mLkROVCYmIV8uRE5URW5hYmxlZH0sdW8ucHJvdG90eXBlLmdldEdyb3VwQnlJZD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9bnVsbCxvPTAsbj1PLkdyb3VwcztvPG4ubGVuZ3RoO28rKyl7Zm9yKHZhciByPW5bb10saT0wLHM9RihyLlN1Ykdyb3Vwcyxbcl0pO2k8cy5sZW5ndGg7aSsrKXt2YXIgYT1zW2ldO2lmKGEuQ3VzdG9tR3JvdXBJZD09PWUpe3Q9YTticmVha319aWYodClicmVha31yZXR1cm4gdH0sdW8ucHJvdG90eXBlLmlzU29mdE9wdEluR3JwPWZ1bmN0aW9uKGUpe3JldHVybiEhZSYmKGU9ZSYmIWUuUGFyZW50P2U6eS5nZXRQYXJlbnRHcm91cChlLlBhcmVudCksImluYWN0aXZlIGxhbmRpbmdwYWdlIj09PXkuZ2V0R3JwU3RhdHVzKGUpLnRvTG93ZXJDYXNlKCkpfSx1by5wcm90b3R5cGUuaXNPcHRJbkdycD1mdW5jdGlvbihlKXtyZXR1cm4hIWUmJiJpbmFjdGl2ZSI9PT15LmdldEdycFN0YXR1cyhlKS50b0xvd2VyQ2FzZSgpfSx1by5wcm90b3R5cGUuZ2V0UGFyZW50QnlHcnA9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuUGFyZW50P3RoaXMuZ2V0R3JvdXBCeUlkKGUuUGFyZW50KTpudWxsfSx1by5wcm90b3R5cGUuZ2V0VlNCeUlkPWZ1bmN0aW9uKGUpe3JldHVybiBsLmdldFZlbmRvcnNJbkRvbWFpbigpLmdldChlKX0sdW8ucHJvdG90eXBlLmdldEdycEJ5VmVuZG9ySWQ9ZnVuY3Rpb24oZSl7dmFyIHQ9bnVsbDtyZXR1cm4gdD1sLmdldFZlbmRvcnNJbkRvbWFpbigpLmhhcyhlKT9sLmdldFZlbmRvcnNJbkRvbWFpbigpLmdldChlKS5ncm91cFJlZjp0fTt2YXIgeSxpbyxzbyxhbyxsbyxjbz11bztmdW5jdGlvbiB1bygpe30oT3I9aW89aW98fHt9KS5TYWxlT3B0T3V0PSJTYWxlT3B0T3V0Q0lEIixPci5TaGFyaW5nT3B0T3V0PSJTaGFyaW5nT3B0T3V0Q0lEIixPci5QZXJzb25hbERhdGFDb25zZW50cz0iUGVyc29uYWxEYXRhQ0lEIiwoT3I9c289c298fHt9KS5TaGFyaW5nT3B0T3V0Tm90aWNlPSJTaGFyaW5nT3B0T3V0Q0lEIixPci5TYWxlT3B0T3V0Tm90aWNlPSJTYWxlT3B0T3V0Q0lEIixPci5TZW5zaXRpdmVEYXRhTGltaXRVc2VOb3RpY2U9IlNlbnNpdGl2ZVBJQ0lEIHx8IFNlbnNpdGl2ZVNJQ0lEIHx8IEdlb2xvY2F0aW9uQ0lEIHx8IFJSRVBJbmZvQ0lEIHx8IENvbW11bmljYXRpb25DSUQgfHwgR2VuZXRpY0NJRHx8IEJpb21ldHJpY0NJRCB8fCBIZWFsdGhDSUQgfHwgU2V4dWFsT3JpZW50YXRpb25DSUQiLChPcj1hbz1hb3x8e30pLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHMxPSJLbm93bkNoaWxkU2VsbFBJQ0lEIixPci5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzMj0iS25vd25DaGlsZFNoYXJlUElDSUQiLChPcj1sbz1sb3x8e30pLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMT0iU2Vuc2l0aXZlUElDSUQiLE9yLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMj0iU2Vuc2l0aXZlU0lDSUQiLE9yLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMz0iR2VvbG9jYXRpb25DSUQiLE9yLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nND0iUlJFUEluZm9DSUQiLE9yLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNT0iQ29tbXVuaWNhdGlvbkNJRCIsT3IuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc2PSJHZW5ldGljQ0lEIixPci5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzc9IkJpb21ldHJpY0NJRCIsT3IuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc4PSJIZWFsdGhDSUQiLE9yLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nOT0iU2V4dWFsT3JpZW50YXRpb25DSUQiLGdvLnByb3RvdHlwZS5pbml0aWFsaXNlQ3NzUmVmZXJlbmNlcz1mdW5jdGlvbigpe3ZhciBlLHQ9IiI7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9uZXRydXN0LXN0eWxlIik/ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25ldHJ1c3Qtc3R5bGUiKTooKGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSkuaWQ9Im9uZXRydXN0LXN0eWxlIixiLm1vZHVsZUluaXRpYWxpemVyLkNvb2tpZVYyQ1NQRW5hYmxlZCYmRC5ub25jZSYmZS5zZXRBdHRyaWJ1dGUoIm5vbmNlIixELm5vbmNlKSksRnMuY29tbW9uU3R5bGVzJiYodCs9RnMuY29tbW9uU3R5bGVzKSxGcy5iYW5uZXJHcm91cCYmKHQrPUZzLmJhbm5lckdyb3VwLmNzcyxiLmZwLkNvb2tpZVYyU1NSfHwodCs9dGhpcy5hZGRDdXN0b21CYW5uZXJDU1MoKSksTy5iYW5uZXJDdXN0b21DU1MpJiYodCs9Ty5iYW5uZXJDdXN0b21DU1MpLEZzLnByZWZlcmVuY2VDZW50ZXJHcm91cCYmKHQ9KHQrPUZzLnByZWZlcmVuY2VDZW50ZXJHcm91cC5jc3MpK3RoaXMuYWRkQ3VzdG9tUHJlZmVyZW5jZUNlbnRlckNTUygpKSxGcy5jb29raWVMaXN0R3JvdXAmJiFiLmZwLkNvb2tpZVYyVHJhY2tpbmdUZWNobm9sb2dpZXMmJih0PSh0Kz1Gcy5jb29raWVMaXN0R3JvdXAuY3NzKSt0aGlzLmFkZEN1c3RvbUNvb2tpZUxpc3RDU1MoKSksdCs9dGhpcy5hZGRQZXJzaXN0ZW50TG9nb0NTUygpLHRoaXMucHJvY2Vzc2VkQ1NTPXQsXy5pZ25vcmVJbmplY3RpbmdIdG1sQ3NzfHwoZS50ZXh0Q29udGVudD10LG0oZG9jdW1lbnQuaGVhZCkuYXBwZW5kKGUpKX0sZ28ucHJvdG90eXBlLmFkZFBlcnNpc3RlbnRMb2dvQ1NTPWZ1bmN0aW9uKCl7aWYoTy5jb29raWVQZXJzaXN0ZW50TG9nbyl7dmFyIGU9aC51cGRhdGVDb3JyZWN0VXJsKE8uY29va2llUGVyc2lzdGVudExvZ28pLHQ9bmV3IFVSTChlLHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pLnBhdGhuYW1lO2lmKCEoYi5mcC5DTVBJY29uU3ByaXRlJiYoYi5mcC5DTVBJY29uU3ByaXRlLHQuaW5jbHVkZXMoIi9sb2dvcy9zdGF0aWMvIikpJiYodC5pbmNsdWRlcygic3JjL2Fzc2V0cy9pbWFnZXMvIil8fG5ldyBVUkwoZSx3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5ob3N0LmluY2x1ZGVzKCJsb2NhbGhvc3QiKSl8fE8uY29va2llUGVyc2lzdGVudExvZ28uaW5jbHVkZXMoIm90X2d1YXJkX2xvZ28uc3ZnIikpKXJldHVybiIub3QtZmxvYXRpbmctYnV0dG9uX19mcm9udHtiYWNrZ3JvdW5kLWltYWdlOnVybCgnIitlKyInKX0ifXJldHVybiIifSxnby5wcm90b3R5cGUuc2hvdWxkQWRkRXh0SWNvbkNzcz1mdW5jdGlvbigpe3JldHVybiBPLkJhbm5lclJlcXVpcmVFeHRlcm5hbExpbmtzJiYoIWIuZnAuQ01QSWNvblNwcml0ZXx8KGIuZnAuQ01QSWNvblNwcml0ZSxPLkJhbm5lckV4dGVybmFsTGlua3NMb2dvKSl9LGdvLnByb3RvdHlwZS5zZXRUb2dnbGVDb2xvcj1mdW5jdGlvbigpe3ZhciBlPU8uUENlbnRlclRvZ2dsZUluQWN0aXZlQ29sb3IsdD1PLlBDZW50ZXJUb2dnbGVBY3RpdmVDb2xvcix0PXQ/IiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wgaW5wdXQ6Y2hlY2tlZCsub3Qtc3dpdGNoIC5vdC1zd2l0Y2gtbm9iIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiK3QrIjtcbiAgICAgICAgICAgIH0iOiIiO3JldHVybiBlJiYodCs9IlxuICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zd2l0Y2gtbm9iIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIitlKyI7XG4gICAgICAgICAgICAgICAgfSIpLHR9LGdvLnByb3RvdHlwZS5zZXRCdXRvbkNvbG9yPWZ1bmN0aW9uKCl7dmFyIGUsdD1PLnBjQnV0dG9uQ29sb3Isbz1PLnBjQnV0dG9uVGV4dENvbG9yLG49Ty5wY0xlZ0ludEJ1dHRvbkNvbG9yLHI9Ty5wY0xlZ0ludEJ1dHRvblRleHRDb2xvcixpPSIiO3JldHVybih0fHxvKSYmKGU9Xy5wY05hbWU9PT1vdD8iI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfQ2F0ZWdvcnlfSXRlbSsiLFxuICAgICAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkay5vdC1sZWctb3B0LW91dCAiK1QuUF9MaV9IZHIrIntcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAiK3QrIjtcbiAgICAgICAgICAgICAgICB9IjoiIixpPSIjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNka1xuICAgICAgICAgICAgYnV0dG9uOm5vdCgjY2xlYXItZmlsdGVycy1oYW5kbGVyKTpub3QoLm90LWNsb3NlLWljb24pOm5vdCgjZmlsdGVyLWJ0bi1oYW5kbGVyKTpub3QoLm90LXJlbW92ZS1vYmplY3Rpb24taGFuZGxlcik6bm90KC5vdC1vYmotbGVnLWJ0bi1oYW5kbGVyKTpub3QoW2FyaWEtZXhwYW5kZWRdKTpub3QoLm90LWxpbmstYnRuKSxcbiAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1sZWctYnRuLWNvbnRhaW5lciAub3QtYWN0aXZlLWxlZy1idG4ge1xuICAgICAgICAgICAgICAgICIrKHQ/ImJhY2tncm91bmQtY29sb3I6ICIrdCsiO2JvcmRlci1jb2xvcjogIit0KyI7IjoiIikrIlxuICAgICAgICAgICAgICAgICIrKG8/ImNvbG9yOiAiK28rIjsiOiIiKSsiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAuIitULlBfQWN0aXZlX01lbnUrIiB7XG4gICAgICAgICAgICAgICAgIisodD8iYm9yZGVyLWNvbG9yOiAiK3QrIjsiOiIiKSsiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAiK2UrIlxuICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWxlZy1idG4tY29udGFpbmVyIC5vdC1yZW1vdmUtb2JqZWN0aW9uLWhhbmRsZXJ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtbGVnLWJ0bi1jb250YWluZXIgLm90LWluYWN0aXZlLWxlZy1idG4ge1xuICAgICAgICAgICAgICAgICIrKG4/ImJhY2tncm91bmQtY29sb3I6ICIrbisiOyI6IiIpKyJcbiAgICAgICAgICAgICAgICAiKyhyPyJjb2xvcjogIityKyI7IGJvcmRlci1jb2xvcjogIityKyI7IjoiIikrIlxuICAgICAgICAgICAgfSIpLGl9LGdvLnByb3RvdHlwZS5zZXRGb2N1c0JvcmRlckNvbG9yPWZ1bmN0aW9uKCl7dmFyIGU9IiIsdD1PLlBDRm9jdXNCb3JkZXJDb2xvcjtyZXR1cm4gdCYmKGUrPSdcbiAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wgaW5wdXQ6Zm9jdXMgKyAub3Qtc3dpdGNoLCAub3Qtc3dpdGNoIC5vdC1zd2l0Y2gtbm9iLCAub3Qtc3dpdGNoIC5vdC1zd2l0Y2gtbm9iOmJlZm9yZSxcbiAgICAgICAgICAgICNvbmV0cnVzdC1wYy1zZGsgLm90LWNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il06Zm9jdXMgKyBsYWJlbDo6YmVmb3JlLFxuICAgICAgICAgICAgI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il06Zm9jdXMgKyBsYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiAnK3QrIjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLXdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtaXRlbSA+IGJ1dHRvbjpmb2N1cywgI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWl0ZW0gPiBidXR0b246Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICIrdCsiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgKjpmb2N1cyxcbiAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC12bHN0LWNudHIgPiBhOmZvY3VzIHtcbiAgICAgICAgICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCAiK3QrIjtcbiAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICAgICAgICB9IiksZX0sZ28ucHJvdG90eXBlLnNldENsb3NlSWNvbkNvbG9yPWZ1bmN0aW9uKCl7dmFyIGU9IiI7cmV0dXJuIE8uUENDbG9zZUJ1dHRvblR5cGU9PT12ZS5MaW5rJiYoZSs9IiNvbmV0cnVzdC1wYy1zZGsub3QtY2xvc2UtYnRuLWxpbmsgLm90LWNsb3NlLWljb24ge2NvbG9yOiAiK08uUENDb250aW51ZUNvbG9yKyJ9IiksZX0sZ28ucHJvdG90eXBlLnNldFRhYkxheW91dFN0eWxlcz1mdW5jdGlvbigpe3ZhciBlPSIiLHQ9Ty5wY01lbnVDb2xvcixvPU8ucGNNZW51SGlnaExpZ2h0Q29sb3I7cmV0dXJuIF8ucGNOYW1lPT09aXQmJih0JiYoZSs9IiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1tZW51LXN3aXRjaC1oYW5kbGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIit0KyJcbiAgICAgICAgICAgICAgICB9IiksbykmJihlKz0iI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLiIrVC5QX0FjdGl2ZV9NZW51KyIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiK28rIlxuICAgICAgICAgICAgICAgIH0iKSxlfSxnby5wcm90b3R5cGUuc2V0Rm9jdXNJZlRlbXBsYXRlVXBncmFkZT1mdW5jdGlvbigpe3ZhciBlPSIiLHQ9Ty5QQ0ZvY3VzQm9yZGVyQ29sb3I7cmV0dXJuIU8uUENUZW1wbGF0ZVVwZ3JhZGUmJnQmJihlKz0nXG4gICAgICAgICAgICAjb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9ImNoZWNrYm94Il06Zm9jdXMgKyAuYWNjb3JkaW9uLWhlYWRlcixcbiAgICAgICAgICAgICNvbmV0cnVzdC1wYy1zZGsgLmNhdGVnb3J5LWl0ZW0gLm90LXN3aXRjaC5vdC10b2dnbGUgaW5wdXQ6Zm9jdXMgKyAub3Qtc3dpdGNoLWxhYmVsLFxuICAgICAgICAgICAgI29uZXRydXN0LXBjLXNkayAuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgKyBsYWJlbDo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG91dGxpbmUtY29sb3I6ICcrdCsiO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtd2lkdGg6IDFweDtcbiAgICAgICAgICAgIH0iKSxlfSxnby5wcm90b3R5cGUuc2V0RXh0TG5rVXJsPWZ1bmN0aW9uKCl7dmFyIGU9IiIsdD1oLnVwZGF0ZUNvcnJlY3RVcmwoTy5PVEV4dGVybmFsTGlua0xvZ28pO3JldHVybiB0JiYoZSs9ImEub3QtZXh0LWxuazphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyIrKE8uQmFubmVyRXh0ZXJuYWxMaW5rc0xvZ28/aC51cGRhdGVDb3JyZWN0VXJsKE8uQmFubmVyRXh0ZXJuYWxMaW5rc0xvZ28pOnQpKyInKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0ycHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgIiksZX0sZ28ucHJvdG90eXBlLnNldEJhbm5lckxpbmtNYXJnaW5zPWZ1bmN0aW9uKCl7cmV0dXJuIiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3ktdGV4dCBhLm90LWNvb2tpZS1wb2xpY3ktbGluayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5LXRleHQgYS5vdC1pbXByaW50LWxpbmsge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICAgICAgICAgIH0ifSxnby5wcm90b3R5cGUuc2V0Q3VzdG9tQ3NzPWZ1bmN0aW9uKCl7dmFyIGU9IiI7cmV0dXJuIE8ucGNDdXN0b21DU1MmJihlKz1PLnBjQ3VzdG9tQ1NTKSxlfTt2YXIgcG8sQ289Z287ZnVuY3Rpb24gZ28oKXt0aGlzLnByb2Nlc3NlZENTUz0iIix0aGlzLmFkZEN1c3RvbUJhbm5lckNTUz1mdW5jdGlvbigpe3ZhciBlPU8uYmFja2dyb3VuZENvbG9yLHQ9Ty5idXR0b25Db2xvcixvPU8udGV4dENvbG9yLG49Ty5idXR0b25UZXh0Q29sb3Iscj1PLmJhbm5lck1QQnV0dG9uQ29sb3IsaT1PLmJhbm5lck1QQnV0dG9uVGV4dENvbG9yLHM9Ty5iYW5uZXJBY2NvcmRpb25CYWNrZ3JvdW5kQ29sb3IsYT1PLkJTYXZlQnRuQ29sb3IsbD1PLkJDYXRlZ29yeUNvbnRhaW5lckNvbG9yLGM9Ty5CTGluZUJyZWFrQ29sb3IsZD1PLkJDYXRlZ29yeVN0eWxlQ29sb3IsdT1PLmJhbm5lckxpbmtzVGV4dENvbG9yLHA9Ty5CRm9jdXNCb3JkZXJDb2xvcixvPSJcbiAgICAgICAgIisoXy5iYW5uZXJOYW1lPT09WGU/ZT8iI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIitlKyI7fSI6IiI6ZT8iI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIHtiYWNrZ3JvdW5kLWNvbG9yOiAiK2UrIjt9IjoiIikrIlxuICAgICAgICAgICAgIisobz8iI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wb2xpY3ktdGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcG9saWN5LXRleHQsXG4gICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAub3QtYi1hZGRsLWRlc2MsXG4gICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAub3QtZHBkLWRlc2MsXG4gICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAub3QtZHBkLXRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0ICo6bm90KC5vbmV0cnVzdC12ZW5kb3JzLWxpc3QtaGFuZGxlciksXG4gICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAub3QtZHBkLWRlc2MgKjpub3QoLm9uZXRydXN0LXZlbmRvcnMtbGlzdC1oYW5kbGVyKSxcbiAgICAgICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrICNiYW5uZXItb3B0aW9ucyAqLFxuICAgICAgICAgICAgICAgICAgICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3QtY2F0LWhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LW9wdG91dC1zaWduYWxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICIrbysiO1xuICAgICAgICAgICAgICAgICAgICB9IjoiIikrIlxuICAgICAgICAgICAgIisocz8iI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWRldGFpbHMge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiK3MrIjt9IjoiIikrIlxuICAgICAgICAgICAgIisodT8iICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtYmFubmVyLXNkayBhW2hyZWZdLFxuICAgICAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgYVtocmVmXSBmb250LFxuICAgICAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWxpbmstYnRuXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICIrdSsiO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSI6IiIpO3JldHVybih0fHxuKSYmKG8rPSIjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1iYW5uZXItc2RrICNvdC1kaWFsb2ctY29uZmlybS1oYW5kbGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKyh0PyJiYWNrZ3JvdW5kLWNvbG9yOiAiK3QrIjtib3JkZXItY29sb3I6ICIrdCsiOyI6IiIpKyJcbiAgICAgICAgICAgICAgICAiKyhuPyJjb2xvcjogIituKyI7IjoiIikrIlxuICAgICAgICAgICAgfSIpLHAmJihvKz0iXG4gICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgKjpmb2N1cyxcbiAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtYmFubmVyLXNkazpmb2N1cyB7XG4gICAgICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiAiK3ArIjtcbiAgICAgICAgICAgICAgIG91dGxpbmUtd2lkdGg6IDFweDtcbiAgICAgICAgICAgIH0iKSwoaXx8cikmJihvKz0iXG4gICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyLFxuICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1idG4taGFuZGxlci5jb29raWUtc2V0dGluZy1saW5rLFxuICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvdC1kaWFsb2ctY2FuY2VsLWhhbmRsZXIge1xuICAgICAgICAgICAgICAgICIrKGk/ImNvbG9yOiAiK2krIjsgYm9yZGVyLWNvbG9yOiAiK2krIjsiOiIiKSsiXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjpcbiAgICAgICAgICAgICAgICAiKyhyJiYhTy5CYW5uZXJTZXR0aW5nc0J1dHRvbkRpc3BsYXlMaW5rP3I6ZSkrIjtcbiAgICAgICAgICAgIH0iKSxfLmJhbm5lck5hbWU9PT0kZSYmKHI9aT10PXU9cz12b2lkIDAsZCYmKGk9ImJhY2tncm91bmQtY29sb3I6ICIrZCsiOyIscj0iYm9yZGVyLWNvbG9yOiAiK2QrIjsiKSxwJiYobys9IlxuICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtYmFubmVyLXNkayAub3QtdGdsIGlucHV0OmZvY3VzKy5vdC1zd2l0Y2ggLm90LXN3aXRjaC1ub2IsXG4gICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1jaGtib3ggaW5wdXQ6Zm9jdXMgKyBsYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogIitwKyI7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmUtd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICB9Iiksbys9IiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1ibnItc2F2ZS1oYW5kbGVyIHsiKyhzPWE/ImNvbG9yOiAiK24rIjtib3JkZXItY29sb3I6ICIrbisiO2JhY2tncm91bmQtY29sb3I6ICIrYSsiOyI6cykrIn0jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtY2F0LWxzdCB7IisodT1sPyJiYWNrZ3JvdW5kLWNvbG9yOiAiK2wrIjsiOnUpKyJ9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LWNhdC1iZHIgeyIrKHQ9Yz8iYm9yZGVyLWNvbG9yOiAiK2MrIjsiOnQpKyJ9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LXRnbCBpbnB1dDpjaGVja2VkKy5vdC1zd2l0Y2ggLm90LXN3aXRjaC1ub2I6YmVmb3JlLCNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1jaGtib3ggaW5wdXQ6Y2hlY2tlZH5sYWJlbDo6YmVmb3JlIHsiK2krIn0jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXRnbCBpbnB1dDpjaGVja2VkKy5vdC1zd2l0Y2ggLm90LXN3aXRjaC1ub2IgeyIrcisifSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wYy1idG4taGFuZGxlci5jb29raWUtc2V0dGluZy1saW5rIHtiYWNrZ3JvdW5kOiBpbmhlcml0fSIpLE8uQkNsb3NlQnV0dG9uVHlwZT09PXZlLkxpbmsmJihvKz0iI29uZXRydXN0LWJhbm5lci1zZGsub3QtY2xvc2UtYnRuLWxpbmsgLmJhbm5lci1jbG9zZS1idXR0b24ge2NvbG9yOiAiK08uQkNvbnRpbnVlQ29sb3IrIn0iKSxvKz1wby5zZXRCYW5uZXJMaW5rTWFyZ2lucygpfSx0aGlzLmFkZEN1c3RvbVByZWZlcmVuY2VDZW50ZXJDU1M9ZnVuY3Rpb24oKXt2YXIgZT1PLnBjQmFja2dyb3VuZENvbG9yLHQ9Ty5wY1RleHRDb2xvcixvPU8ucGNMaW5rc1RleHRDb2xvcixuPU8uUENlbnRlckVuYWJsZUFjY29yZGlvbixyPU8ucGNBY2NvcmRpb25CYWNrZ3JvdW5kQ29sb3IsZT0iXG4gICAgICAgICAgICAiKyhlPyhfLnBjTmFtZT09PW90PyIjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAuZ3JvdXAtcGFyZW50LWNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5tYW5hZ2UtcGMtY29udGFpbmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfTGlzdDoiI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsiKSsiLFxuICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAiK1QuUF9TZWFyY2hfQ250cisiLFxuICAgICAgICAgICAgICAgICIrKG4mJl8ucGNOYW1lPT09b3Q/IiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IitULlBfQ2F0ZWdvcnlfSXRlbToiI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXN3aXRjaC5vdC10b2dnbGUiKSsiLFxuICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1RhYl9HcnBfSGRyKyIgLmNoZWNrYm94LFxuICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1RpdGxlKyI6YWZ0ZXJcbiAgICAgICAgICAgICAgICAiKyhiLmlzVjJUZW1wbGF0ZT8iLCNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1zZWwtYmxrLFxuICAgICAgICAgICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LWZsdHItY250LFxuICAgICAgICAgICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfVHJpYW5nbGU6IiIpKyIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiK2UrIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAiOiIiKSsiXG4gICAgICAgICAgICAiKyh0PyIjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBoMyxcbiAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBoNCxcbiAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBoNSxcbiAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBoNixcbiAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBwLFxuICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9Db250YWluZXIrIiAiK1QuUF9WZW5fT3B0cysiIHAsXG4gICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfUG9saWN5X1R4dCsiLFxuICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1RpdGxlKyIsXG4gICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfTGlfVGl0bGUrIixcbiAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAiK1QuUF9MZWdfU2VsZWN0X0FsbCsiIHNwYW4sXG4gICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfSG9zdF9DbnRyKyIgIitULlBfSG9zdF9JbmZvKyIsXG4gICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfRmx0cl9Nb2RhbCsiICNtb2RhbC1oZWFkZXIsXG4gICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWNoZWNrYm94IGxhYmVsIHNwYW4sXG4gICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX0xpc3QrIiAiK1QuUF9TZWxlY3RfQ250cisiIHAsXG4gICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX0xpc3QrIiAiK1QuUF9WZW5kb3JfVGl0bGUrIixcbiAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfTGlzdCsnICNvdC1sc3QtdGl0bGUgcFthcmlhLWxldmVsPSIzIl0sXG4gICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgJytULlBfVmVuZG9yX0xpc3QrIiAuYmFjay1idG4taGFuZGxlciBwLFxuICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9MaXN0KyIgIitULlBfVmVuX05hbWUrIixcbiAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfTGlzdCsiICIrVC5QX1ZlbmRvcl9Db250YWluZXIrIiAuY29uc2VudC1jYXRlZ29yeSxcbiAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtbGVnLWJ0bi1jb250YWluZXIgLm90LWluYWN0aXZlLWxlZy1idG4sXG4gICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWxhYmVsLXN0YXR1cyxcbiAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsIHNwYW4sXG4gICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI2NsZWFyLWZpbHRlcnMtaGFuZGxlcixcbiAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3Qtb3B0b3V0LXNpZ25hbFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICIrdCsiO1xuICAgICAgICAgICAgICAgIH0iOiIiKSsiXG4gICAgICAgICAgICAiKyhvPyIgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLnByaXZhY3ktbm90aWNlLWxpbmssXG4gICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1wZ3BoLWxpbmssXG4gICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS12ZW5kb3JzLWxpc3QtaGFuZGxlcixcbiAgICAgICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLmNhdGVnb3J5LXZlbmRvcnMtbGlzdC1oYW5kbGVyICsgYSxcbiAgICAgICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLmNhdGVnb3J5LWhvc3QtbGlzdC1oYW5kbGVyLFxuICAgICAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5fTGluaysiLFxuICAgICAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5fTGVnX0NsYWltKyIsXG4gICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0hvc3RfQ250cisiICIrVC5QX0hvc3RfVGl0bGUrIiBhLFxuICAgICAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAiK1QuUF9Ib3N0X0NudHIrIiAiK1QuUF9BY2NfSGVhZGVyKyIgIitULlBfSG9zdF9WaWV3X0Nvb2tpZXMrIixcbiAgICAgICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfSG9zdF9DbnRyKyIgIitULlBfSG9zdF9JbmZvKyIgYSxcbiAgICAgICAgICAgICAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfQ29udGVudCsiICIrVC5QX1BvbGljeV9UeHQrIiAub3QtbGluay1idG4sXG4gICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvIGEsXG4gICAgICAgICAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC12bmQtaW5mbyBhLFxuICAgICAgICAgICAgICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyBhXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAiK28rIjtcbiAgICAgICAgICAgICAgICAgICAgfSI6IiIpKyJcbiAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS12ZW5kb3JzLWxpc3QtaGFuZGxlcjpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICAgICAgICAgICIrKG4mJnI/IiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0FjY19Db250YWluZXIrVC5QX0FjY19UeHQrIixcbiAgICAgICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0FjY19UeHQrIiAiK1QuUF9TdWJncnBfVGdsX0NudHIrIiAub3Qtc3dpdGNoLm90LXRvZ2dsZVxuICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiK3IrIjtcbiAgICAgICAgICAgIH0iOiIiKSsiXG4gICAgICAgICAgICAiKyhyPyIgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfSG9zdF9DbnRyKyIgIitULlBfSG9zdF9JbmZvKyIsXG4gICAgICAgICAgICAgICAgICAgICIrKGIuaXNWMlRlbXBsYXRlPyIjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAiK1QuUF9BY2NfVHh0KyIgLm90LXZlbi1kZXRzIjoiI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgIitULlBfQWNjX1R4dCsiICIrVC5QX1Zlbl9PcHRzKSsiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiK3IrIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IjoiIikrIlxuICAgICAgICAiLGU9KGU9KGU9KGU9KGU9KGU9KGUrPXBvLnNldEJ1dG9uQ29sb3IoKSkrcG8uc2V0VG9nZ2xlQ29sb3IoKSkrcG8uc2V0Rm9jdXNCb3JkZXJDb2xvcigpKStwby5zZXRDbG9zZUljb25Db2xvcigpKStwby5zZXRUYWJMYXlvdXRTdHlsZXMoKSkrcG8uc2V0VGFiTGF5b3V0U3R5bGVzKCkpK3BvLnNldEZvY3VzSWZUZW1wbGF0ZVVwZ3JhZGUoKTtyZXR1cm4gcG8uc2hvdWxkQWRkRXh0SWNvbkNzcygpJiYoZSs9cG8uc2V0RXh0TG5rVXJsKCkpLGUrPXBvLnNldEN1c3RvbUNzcygpfSx0aGlzLmFkZEN1c3RvbUNvb2tpZUxpc3RDU1M9ZnVuY3Rpb24oKXt2YXIgZT1PLkNvb2tpZXNWMk5ld0Nvb2tpZVBvbGljeT8iLXYyLm90LXNkay1jb29raWUtcG9saWN5IjoiIixlPSJcbiAgICAgICAgICAgICAgICAiKyhPLmNvb2tpZUxpc3RQcmltYXJ5Q29sb3I/IlxuICAgICAgICAgICAgICAgICAgICAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kiK2UrIiBoNSxcbiAgICAgICAgICAgICAgICAgICAgI290LXNkay1jb29raWUtcG9saWN5IitlKyIgaDYsXG4gICAgICAgICAgICAgICAgICAgICNvdC1zZGstY29va2llLXBvbGljeSIrZSsiIGxpLFxuICAgICAgICAgICAgICAgICAgICAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kiK2UrIiBwLFxuICAgICAgICAgICAgICAgICAgICAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kiK2UrIiBhLFxuICAgICAgICAgICAgICAgICAgICAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kiK2UrIiBzcGFuLFxuICAgICAgICAgICAgICAgICAgICAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kiK2UrIiB0ZCxcbiAgICAgICAgICAgICAgICAgICAgI290LXNkay1jb29raWUtcG9saWN5IitlKyIgI2Nvb2tpZS1wb2xpY3ktZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICIrTy5jb29raWVMaXN0UHJpbWFyeUNvbG9yKyI7XG4gICAgICAgICAgICAgICAgICAgIH0iOiIiKSsiXG4gICAgICAgICAgICAgICAgICAgICIrKE8uY29va2llTGlzdFRhYmxlSGVhZGVyQ29sb3I/IiNvdC1zZGstY29va2llLXBvbGljeSIrZSsiIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAiK08uY29va2llTGlzdFRhYmxlSGVhZGVyQ29sb3IrIjtcbiAgICAgICAgICAgICAgICAgICAgfSI6IiIpKyJcbiAgICAgICAgICAgICAgICAgICAgIisoTy5jb29raWVMaXN0R3JvdXBOYW1lQ29sb3I/IiNvdC1zZGstY29va2llLXBvbGljeSIrZSsiIC5vdC1zZGstY29va2llLXBvbGljeS1ncm91cCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIitPLmNvb2tpZUxpc3RHcm91cE5hbWVDb2xvcisiO1xuICAgICAgICAgICAgICAgICAgICB9IjoiIikrIlxuICAgICAgICAgICAgICAgICAgICAiKyhPLmNvb2tpZUxpc3RUaXRsZUNvbG9yPyJcbiAgICAgICAgICAgICAgICAgICAgI290LXNkay1jb29raWUtcG9saWN5IitlKyIgI2Nvb2tpZS1wb2xpY3ktdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAiK08uY29va2llTGlzdFRpdGxlQ29sb3IrIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgIjoiIikrIlxuICAgICAgICAgICAgIisoZSYmTy5Db29raWVMaXN0VGFibGVIZWFkZXJCYWNrZ3JvdW5kQ29sb3I/IlxuICAgICAgICAgICAgICAgICAgICAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kiK2UrIiB0YWJsZSB0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIitPLkNvb2tpZUxpc3RUYWJsZUhlYWRlckJhY2tncm91bmRDb2xvcisiO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAiOiIiKSsiXG4gICAgICAgICAgICAiO3JldHVybiBPLmNvb2tpZUxpc3RDdXN0b21Dc3MmJihlKz1PLmNvb2tpZUxpc3RDdXN0b21Dc3MpLGV9fWZvLnByb3RvdHlwZS5nZXRBbGxvd0FsbEJ1dHRvbj1mdW5jdGlvbigpe3JldHVybiBtKCIjb25ldHJ1c3QtcGMtc2RrICNhY2NlcHQtcmVjb21tZW5kZWQtYnRuLWhhbmRsZXIiKX0sZm8ucHJvdG90eXBlLmdldFNlbGVjdGVkVmVuZG9ycz1mdW5jdGlvbigpe3JldHVybiBtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1RnbF9DbnRyKyIgLm90LWNoZWNrYm94IGlucHV0OmNoZWNrZWQiKX07dmFyIGhvLHlvPWZvO2Z1bmN0aW9uIGZvKCl7fXZvLnByb3RvdHlwZS5pc0lhYkNvb2tpZVZhbGlkPWZ1bmN0aW9uKCl7dmFyIGU9bnVsbDtyZXR1cm4gbnVsbCE9PShlPV8uaXNJYWIyb3J2MlRlbXBsYXRlP0wuZ2V0Q29va2llKCJldXB1YmNvbnNlbnQtdjIiKTplKX0sdm8ucHJvdG90eXBlLmlhYlR5cGVJc0NoYW5nZWQ9ZnVuY3Rpb24oKXt0aGlzLmlzSWFiQ29va2llVmFsaWQoKXx8KEwucmVtb3ZlQWxlcnRCb3goKSxMLnJlbW92ZUlhYjEoKSl9LHZvLnByb3RvdHlwZS5pbml0aWFsaXplSUFCTW9kdWxlPWZ1bmN0aW9uKCl7cmV0dXJuIFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEEodGhpcyxmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBPLklzSWFiRW5hYmxlZD8oYi5tb2R1bGVJbml0aWFsaXplci5vdElBQk1vZHVsZURhdGE9d2luZG93Lm90SWFiTW9kdWxlLHcuc2V0SWFiRGF0YSgpLFs0LHcucG9wdWxhdGVWZW5kb3JMaXN0VENGKCldKTpbMywyXTtjYXNlIDE6cmV0dXJuIGUuc2VudCgpLHcuaXNJQUJDcm9zc0NvbnNlbnRFbmFibGVkKCl8fHRoaXMuaWFiVHlwZUlzQ2hhbmdlZCgpLHcucG9wdWxhdGVJQUJDb29raWVzKCksTy5Vc2VHb29nbGVWZW5kb3JzJiYoTy5OZXdWZW5kb3JzSW5hY3RpdmVFbmFibGVkJiZ0aGlzLnJlbW92ZUFUUExpc3RWZW5kb3JzKCksdGhpcy5yZW1vdmVJbkFjdGl2ZUFkZHRsVmVuZG9ycygpKSxbMywzXTtjYXNlIDI6TC5yZW1vdmVJYWIxKCksZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0sdm8ucHJvdG90eXBlLnJlbW92ZUFUUExpc3RWZW5kb3JzPWZ1bmN0aW9uKCl7dmFyIGUsdCxvPWIubW9kdWxlSW5pdGlhbGl6ZXIuR29vZ2xlRGF0YS52ZW5kb3JMaXN0VmVyc2lvbjtmb3IodCBpbiBELmFkZHRsVmVuZG9yc0xpc3QpKG51bGw9PShlPUQuYWRkdGxWZW5kb3JzTGlzdFt0XSk/dm9pZCAwOmUuZ3ZsVmVyc2lvbik+byYmKEQuZGVsZXRlZEdvb2dsZVZlbmRvcnNbdF09RC5hZGR0bFZlbmRvcnNMaXN0W3RdLGRlbGV0ZSBELmFkZHRsVmVuZG9yc0xpc3RbdF0pfSx2by5wcm90b3R5cGUucmVtb3ZlSW5BY3RpdmVBZGR0bFZlbmRvcnM9ZnVuY3Rpb24oKXt2YXIgZSx0PU8uT3ZlcnJpZGVuR29vZ2xlVmVuZG9ycztmb3IoZSBpbiB0KXRbZV0uYWN0aXZlfHxkZWxldGUgRC5hZGR0bFZlbmRvcnNMaXN0W2VdfSx2by5wcm90b3R5cGUuZ2V0SUFCQ29uc2VudERhdGE9ZnVuY3Rpb24oKXt2YXIgZT1ELm9uZVRydXN0SUFCQ29uc2VudCx0PXcuaWFiU3RyaW5nU0RLKCkudGNTdHJpbmcoKSxvPShELnRjTW9kZWwudW5zZXRBbGxQdXJwb3NlQ29uc2VudHMoKSxELnRjTW9kZWwudW5zZXRBbGxWZW5kb3JDb25zZW50cygpLEQudGNNb2RlbC51bnNldEFsbFZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdHMoKSxELnRjTW9kZWwudW5zZXRBbGxTcGVjaWFsRmVhdHVyZU9wdGlucygpLEQudGNNb2RlbC51bnNldEFsbFB1cnBvc2VMZWdpdGltYXRlSW50ZXJlc3RzKCksRC50Y01vZGVsLnB1Ymxpc2hlckNvbnNlbnRzLmVtcHR5KCksRC50Y01vZGVsLnB1Ymxpc2hlckxlZ2l0aW1hdGVJbnRlcmVzdHMuZW1wdHkoKSxELnRjTW9kZWwucHVycG9zZUNvbnNlbnRzLnNldCh2LmdldEFjdGl2ZUlkQXJyYXkoZS5wdXJwb3NlKSksRC50Y01vZGVsLnB1Ymxpc2hlckNvbnNlbnRzLnNldCh2LmdldEFjdGl2ZUlkQXJyYXkoZS5wdXJwb3NlKSksXy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMST92LmdldEFjdGl2ZUlkQXJyYXkoZS5sZWdpbWF0ZUludGVyZXN0KTpbXSksbz0oRC50Y01vZGVsLnB1cnBvc2VMZWdpdGltYXRlSW50ZXJlc3RzLnNldChvKSxELnRjTW9kZWwucHVibGlzaGVyTGVnaXRpbWF0ZUludGVyZXN0cy5zZXQobyksRC50Y01vZGVsLnZlbmRvckNvbnNlbnRzLnNldCh2LmdldEFjdGl2ZUlkQXJyYXkodi5kaXN0aW5jdEFycmF5KGUudmVuZG9ycykpKSxfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJJiZ0aGlzLnNob3VsZFNldFZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdChlKSYmKGUubGVnSW50VmVuZG9ycz1bXSksRC50Y01vZGVsLnZlbmRvckxlZ2l0aW1hdGVJbnRlcmVzdHMuc2V0KHYuZ2V0QWN0aXZlSWRBcnJheSh2LmRpc3RpbmN0QXJyYXkoZS5sZWdJbnRWZW5kb3JzKSkpLEQudGNNb2RlbC5zcGVjaWFsRmVhdHVyZU9wdGlucy5zZXQodi5nZXRBY3RpdmVJZEFycmF5KGUuc3BlY2lhbEZlYXR1cmVzKSksbmV3IERhdGUpLGU9bmV3IERhdGUoby5nZXRVVENGdWxsWWVhcigpLG8uZ2V0VVRDTW9udGgoKSxvLmdldFVUQ0RhdGUoKSwwLDAsMCksbz0oRC50Y01vZGVsLmxhc3RVcGRhdGVkPWUsRC50Y01vZGVsLmNyZWF0ZWQ9ZSx0LmVuY29kZShELnRjTW9kZWwpKTtyZXR1cm4gRC5jbXBBcGkudXBkYXRlKG8sITEpLG99LHZvLnByb3RvdHlwZS5zaG91bGRTZXRWZW5kb3JMZWdpdGltYXRlSW50ZXJlc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIUQuYW55VmVuZG9ySGFzT25seVNwbFB1ciYmIXYuZ2V0QWN0aXZlSWRBcnJheShlLmxlZ2ltYXRlSW50ZXJlc3QpfSx2by5wcm90b3R5cGUuZGVjb2RlVENTdHJpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuIHcuaWFiU3RyaW5nU0RLKCkudGNTdHJpbmcoKS5kZWNvZGUoZSl9LHZvLnByb3RvdHlwZS5nZXRWZW5kb3JDb25zZW50c1JlcXVlc3RWMj1mdW5jdGlvbihlKXt2YXIgbztyZXR1cm4gd2luZG93Ll9fdGNmYXBpKCJnZXRJbkFwcFRDRGF0YSIsMixmdW5jdGlvbihlLHQpe289W2UsdF19KSxlLmFwcGx5KHRoaXMsbyl9LHZvLnByb3RvdHlwZS5nZXRQaW5nUmVxdWVzdEZvclRjZj1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gd2luZG93Ll9fdGNmYXBpKCJwaW5nIiwyLGZ1bmN0aW9uKGUpe3Q9W2VdfSksZS5hcHBseSh0aGlzLHQpfSx2by5wcm90b3R5cGUucG9wdWxhdGVWZW5kb3JBbmRQdXJwb3NlRnJvbUNvb2tpZURhdGE9ZnVuY3Rpb24oKXt2YXIgbj1ELm9uZVRydXN0SUFCQ29uc2VudCxlPVNvLmRlY29kZVRDU3RyaW5nKG4uSUFCQ29va2llVmFsdWUpLHQ9RS5Hcm91cFR5cGVzLHI9e30saT17fSxzPShfLmlhYkdycHMuZm9yRWFjaChmdW5jdGlvbihlKXtlLlR5cGU9PT10LlB1cj9yW18uaWFiR3JwSWRNYXBbZS5DdXN0b21Hcm91cElkXV09ZTplLlR5cGU9PT10LlNwbF9GdCYmKGlbXy5pYWJHcnBJZE1hcFtlLkN1c3RvbUdyb3VwSWRdXT1lKX0pLFtdKTt0aGlzLnN5bmNWZW5kb3JDb25zZW50KGUpLHM9W10sZS52ZW5kb3JMZWdpdGltYXRlSW50ZXJlc3RzLmZvckVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbz1lO0QudmVuZG9yc1NldHRpbmdbdF0mJkQudmVuZG9yc1NldHRpbmdbdF0ubGVnSW50fHwhZXx8KHMucHVzaCh0KSxvPSExKSxuLmxlZ0ludFZlbmRvcnMucHVzaCh0KyI6IitvKX0pLGUudmVuZG9yTGVnaXRpbWF0ZUludGVyZXN0cy51bnNldChzKSxzPVtdLGUucHVycG9zZUNvbnNlbnRzLmZvckVhY2goZnVuY3Rpb24oZSxvKXt2YXIgdD1lLGU9KCEocltvXSYmcltvXS5IYXNDb25zZW50T3B0T3V0KSYmZSYmKHMucHVzaChvKSx0PSExKSx2LmZpbmRJbmRleChuLnB1cnBvc2UsZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5zcGxpdCgiOiIpWzBdPT09by50b1N0cmluZygpfSkpOy0xPT09ZT9uLnB1cnBvc2UucHVzaChvKyI6Iit0KTpuLnB1cnBvc2VbZV09bysiOiIrdH0pLGUucHVycG9zZUNvbnNlbnRzLnVuc2V0KHMpLGUucHVibGlzaGVyQ29uc2VudHMudW5zZXQocykscz1bXSxlLnNwZWNpYWxGZWF0dXJlT3B0aW5zLmZvckVhY2goZnVuY3Rpb24oZSxvKXt2YXIgdD1lLGU9KCEoaVtvXSYmaVtvXS5IYXNDb25zZW50T3B0T3V0KSYmZSYmKHMucHVzaChvKSx0PSExKSx2LmZpbmRJbmRleChuLnNwZWNpYWxGZWF0dXJlcyxmdW5jdGlvbihlLHQpe3JldHVybiBlLnNwbGl0KCI6IilbMF09PT1vLnRvU3RyaW5nKCl9KSk7LTE9PT1lP24uc3BlY2lhbEZlYXR1cmVzLnB1c2gobysiOiIrdCk6bi5zcGVjaWFsRmVhdHVyZXNbZV09bysiOiIrdH0pLGUuc3BlY2lhbEZlYXR1cmVPcHRpbnMudW5zZXQocyksdGhpcy5zeW5jUHVyQW5kUHViTGVnSW50KGUsciksdGhpcy5zeW5jQnVuZGxlQW5kU3RhY2soKSxlLmd2bD1ELnRjTW9kZWwuZ3ZsLGUuaXNTZXJ2aWNlU3BlY2lmaWM9IXcuaXNJQUJDcm9zc0NvbnNlbnRFbmFibGVkKCksRC50Y01vZGVsPWUsdy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKT9ELmNtcEFwaS51cGRhdGUobi5JQUJDb29raWVWYWx1ZSwhMSk6dy5yZXNldFRDTW9kZWwoKX0sdm8ucHJvdG90eXBlLnN5bmNWZW5kb3JDb25zZW50PWZ1bmN0aW9uKGUpe3ZhciBuPVtdLHI9W107ZS52ZW5kb3JDb25zZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7dmFyIG89ZTtELnZlbmRvcnNTZXR0aW5nW3RdJiZELnZlbmRvcnNTZXR0aW5nW3RdLmNvbnNlbnR8fCFlfHwobi5wdXNoKHQpLG89ITEpLHIucHVzaCh0KyI6IitvKX0pLEQub25lVHJ1c3RJQUJDb25zZW50LnZlbmRvcnM9cixlLnZlbmRvckNvbnNlbnRzLnVuc2V0KG4pfSx2by5wcm90b3R5cGUuc3luY1B1ckFuZFB1YkxlZ0ludD1mdW5jdGlvbihlLG4pe3ZhciByPVtdLGk9RC5vbmVUcnVzdElBQkNvbnNlbnQ7ZS5wdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKGUsbyl7dmFyIHQ9ZSxlPSghKG5bb10mJm5bb10uSGFzTGVnSW50T3B0T3V0JiZfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJKSYmZSYmKHIucHVzaChvKSx0PSExKSx2LmZpbmRJbmRleChpLmxlZ2ltYXRlSW50ZXJlc3QsZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5zcGxpdCgiOiIpWzBdPT09by50b1N0cmluZygpfSkpOy0xPT09ZT9pLmxlZ2ltYXRlSW50ZXJlc3QucHVzaChvKyI6Iit0KTppLmxlZ2ltYXRlSW50ZXJlc3RbZV09bysiOiIrdH0pLGUucHVycG9zZUxlZ2l0aW1hdGVJbnRlcmVzdHMudW5zZXQociksZS5wdWJsaXNoZXJMZWdpdGltYXRlSW50ZXJlc3RzLnVuc2V0KHIpfSx2by5wcm90b3R5cGUuc3luY0J1bmRsZUFuZFN0YWNrPWZ1bmN0aW9uKCl7dmFyIGU9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsImdyb3VwcyIpLG49KEQuZ3JvdXBzQ29uc2VudD12LnN0clRvQXJyKGUpLEUuR3JvdXBUeXBlcyk7Ty5Hcm91cHMuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZSxvO3QuVHlwZSE9PW4uQnVuZGxlJiZ0LlR5cGUhPT1uLlN0YWNrfHwobz1oLmlzQnVuZGxlT3JTdGFja0FjdGl2ZSh0KSxlPXYuZmluZEluZGV4KEQuZ3JvdXBzQ29uc2VudCxmdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdCgiOiIpWzBdPT09dC5DdXN0b21Hcm91cElkfSksbz10LkN1c3RvbUdyb3VwSWQrIjoiK051bWJlcihvKSwtMTxlP0QuZ3JvdXBzQ29uc2VudFtlXT1vOkQuZ3JvdXBzQ29uc2VudC5wdXNoKG8pKX0pLEwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCwiZ3JvdXBzIixELmdyb3Vwc0NvbnNlbnQuam9pbigiLCIpKX0sdm8ucHJvdG90eXBlLnBvcHVsYXRlR29vZ2xlQ29uc2VudD1mdW5jdGlvbigpe2lmKE8uVXNlR29vZ2xlVmVuZG9ycyl7dmFyIHQ9TC5nZXRDb29raWUoay5BRERJVElPTkFMX0NPTlNFTlRfU1RSSU5HKTtpZih0KXtpZihELmlzQWRkdGxDb25zZW50PSEwLDI9PT0oKG89dCkmJiJzdHJpbmciPT10eXBlb2Ygbz9vLnN0YXJ0c1dpdGgoIjF+Iik/MTpvLnN0YXJ0c1dpdGgoIjJ+IikmJm8uaW5jbHVkZXMoIn5kdiIpPzI6bnVsbDpudWxsKSl0cnl7dmFyIGU9bm8odCkuY29uc2VudGVkO0QuYWRkdGxWZW5kb3JzLnZlbmRvckNvbnNlbnQ9ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9TdHJpbmcoKX0pfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoIltBQyB2Ml0gRmFpbGVkIHRvIHBhcnNlIEFDIHN0cmluZywgZmFsbGluZyBiYWNrIHRvIGxlZ2FjeSBwYXJzaW5nOiIsZSksRC5hZGR0bFZlbmRvcnMudmVuZG9yQ29uc2VudD10LnJlcGxhY2UoRC5hZGR0bENvbnNlbnRWZXJzaW9uLCIiKS5zcGxpdCgifiIpWzBdLnNwbGl0KCIuIil9ZWxzZXtvPXQuc3BsaXQoIn4iKSxlPTE8by5sZW5ndGg/b1sxXTpvWzBdO0QuYWRkdGxWZW5kb3JzLnZlbmRvckNvbnNlbnQ9ZS5zcGxpdCgiLiIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4iIiE9PWV9KX1ELmFkZHRsVmVuZG9ycy52ZW5kb3JTZWxlY3RlZD17fSxELmFkZHRsVmVuZG9ycy52ZW5kb3JDb25zZW50LmZvckVhY2goZnVuY3Rpb24oZSl7RC5hZGR0bFZlbmRvcnMudmVuZG9yU2VsZWN0ZWRbZV09ITB9KX19dmFyIG99LHZvLnByb3RvdHlwZS5pc0luaXRJQUJDb29raWVEYXRhPWZ1bmN0aW9uKGUpe3JldHVybiJpbml0Ij09PWV8fHcubmVlZFJlY29uc2VudCgpfSx2by5wcm90b3R5cGUudXBkYXRlRnJvbUdsb2JhbENvbnNlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9RC5vbmVUcnVzdElBQkNvbnNlbnQ7dC5JQUJDb29raWVWYWx1ZT1lLHQucHVycG9zZT10LnB1cnBvc2V8fFtdLHQuc3BlY2lhbEZlYXR1cmVzPXQuc3BlY2lhbEZlYXR1cmVzfHxbXSx0LmxlZ0ludFZlbmRvcnM9W10sdC5sZWdpbWF0ZUludGVyZXN0PXQubGVnaW1hdGVJbnRlcmVzdHx8W10sdC52ZW5kb3JzPVtdLFNvLnBvcHVsYXRlVmVuZG9yQW5kUHVycG9zZUZyb21Db29raWVEYXRhKCksTC5zZXRDb29raWUoay5FVV9QVUJfQ09OU0VOVCwiIiwtMSl9O3ZhciBTbyxtbz12bztmdW5jdGlvbiB2bygpe31Bby5wcm90b3R5cGUubG9hZEJhbm5lcj1mdW5jdGlvbigpe2IubW9kdWxlSW5pdGlhbGl6ZXIuU2NyaXB0RHluYW1pY0xvYWRFbmFibGVkPyJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP20od2luZG93KS50cmlnZ2VyKCJvdGxvYWRiYW5uZXIiKTp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oZSl7bSh3aW5kb3cpLnRyaWdnZXIoIm90bG9hZGJhbm5lciIpfSk6ImxvYWRpbmciIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT9tKHdpbmRvdykudHJpZ2dlcigib3Rsb2FkYmFubmVyIik6d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKGUpe20od2luZG93KS50cmlnZ2VyKCJvdGxvYWRiYW5uZXIiKX0pLF8ucHViRG9tYWluRGF0YS5Jc0Jhbm5lckxvYWRlZD0hMH0sQW8ucHJvdG90eXBlLk9uQ29uc2VudENoYW5nZWQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50b1N0cmluZygpO1RvLmNvbnNlbnRDaGFuZ2VkRXZlbnRNYXBbdF18fChUby5jb25zZW50Q2hhbmdlZEV2ZW50TWFwW3RdPSEwLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJjb25zZW50Lm9uZXRydXN0IixlKSl9LEFvLnByb3RvdHlwZS50cmlnZ2VyR29vZ2xlQW5hbHl0aWNzRXZlbnQ9ZnVuY3Rpb24oZSx0LG8sbil7dmFyIHI9ITE7Yi5tb2R1bGVJbml0aWFsaXplci5HQVRyYWNrVG9nZ2xlJiYoIkFTIj09PWIubW9kdWxlSW5pdGlhbGl6ZXIuR0FUcmFja0Fzc2lnbmVkQ2F0ZWdvcnl8fCIiPT09Yi5tb2R1bGVJbml0aWFsaXplci5HQVRyYWNrQXNzaWduZWRDYXRlZ29yeXx8d2luZG93Lk9uZXRydXN0QWN0aXZlR3JvdXBzLmluY2x1ZGVzKCIsIitiLm1vZHVsZUluaXRpYWxpemVyLkdBVHJhY2tBc3NpZ25lZENhdGVnb3J5KyIsIikpJiYocj0hMCksIV8uaWdub3JlR29vZ2xlQW5seXRpY3NDYWxsJiZyJiYodm9pZCAwIT09d2luZG93Ll9nYXEmJndpbmRvdy5fZ2FxLnB1c2goWyJfdHJhY2tFdmVudCIsZSx0LG8sbl0pLCJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuZ2EmJndpbmRvdy5nYSgic2VuZCIsImV2ZW50IixlLHQsbyxuKSxyPXdpbmRvd1tfLm90RGF0YUxheWVyLm5hbWVdLCFfLm90RGF0YUxheWVyLmlnbm9yZSkmJnZvaWQgMCE9PXImJnImJnIuY29uc3RydWN0b3I9PT1BcnJheSYmKCJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuZ3RhZz93aW5kb3cuZ3RhZygiZXZlbnQiLCJ0cmFja09wdGFub25FdmVudCIse29wdGFub25DYXRlZ29yeTplLG9wdGFub25BY3Rpb246dCxvcHRhbm9uTGFiZWw6byxvcHRhbm9uVmFsdWU6bn0pOnIucHVzaCh7ZXZlbnQ6InRyYWNrT3B0YW5vbkV2ZW50IixvcHRhbm9uQ2F0ZWdvcnk6ZSxvcHRhbm9uQWN0aW9uOnQsb3B0YW5vbkxhYmVsOm8sb3B0YW5vblZhbHVlOm59KSl9LEFvLnByb3RvdHlwZS5zZXRBbGVydEJveENsb3NlZD1mdW5jdGlvbihlKXt2YXIgdD0obmV3IERhdGUpLnRvSVNPU3RyaW5nKCksZT0oZT9MLnNldENvb2tpZShrLkFMRVJUX0JPWF9DTE9TRUQsdCxPLlJlY29uc2VudEZyZXF1ZW5jeURheXMpOkwuc2V0Q29va2llKGsuQUxFUlRfQk9YX0NMT1NFRCx0LDApLG0oIi5vbmV0cnVzdC1wYy1kYXJrLWZpbHRlciIpLmVsWzBdKTtlJiYibm9uZSIhPT1nZXRDb21wdXRlZFN0eWxlKGUpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKSYmbSgiLm9uZXRydXN0LXBjLWRhcmstZmlsdGVyIikuZmFkZU91dCg0MDApfSxBby5wcm90b3R5cGUudXBkYXRlQ29uc2VudEZyb21Db29raWU9ZnVuY3Rpb24odCl7cmV0dXJuIFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEEodGhpcyxmdW5jdGlvbihlKXtyZXR1cm4gdD8oU28uaXNJbml0SUFCQ29va2llRGF0YSh0KXx8U28udXBkYXRlRnJvbUdsb2JhbENvbnNlbnQodCksImluaXQiPT09dCYmKEwucmVtb3ZlSWFiMSgpLHcuaXNBbGVydEJveENsb3NlZEFuZFZhbGlkKCkmJncucmVzZXRUQ01vZGVsKCksTC5yZW1vdmVBbGVydEJveCgpKSk6KHcucmVzZXRUQ01vZGVsKCksdy51cGRhdGVDcm9zc0NvbnNlbnRDb29raWUoITEpLHcuc2V0SUFCQ29va2llRGF0YSgpKSxUby5hc3NldFByb21pc2UudGhlbihmdW5jdGlvbigpe1RvLmxvYWRCYW5uZXIoKX0pLFsyXX0pfSl9O3ZhciBUbyxQbz1BbztmdW5jdGlvbiBBbygpe3ZhciB0PXRoaXM7dGhpcy5jb25zZW50Q2hhbmdlZEV2ZW50TWFwPXt9LHRoaXMuYXNzZXRSZXNvbHZlPW51bGwsdGhpcy5hc3NldFByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dC5hc3NldFJlc29sdmU9ZX0pfWJvLnByb3RvdHlwZS53cml0ZUhzdFBhcmFtPWZ1bmN0aW9uKGUsdCl7TC53cml0ZUNvb2tpZVBhcmFtKGUsImhvc3RzIix2LmFyclRvU3RyKCh0PXZvaWQgMD09PXQ/bnVsbDp0KXx8RC5ob3N0c0NvbnNlbnQpKX0sYm8ucHJvdG90eXBlLndyaXRlR2VuVmVuQ29va2llUGFyYW09ZnVuY3Rpb24oZSl7dmFyIHQ9Ty5HZW5lcmFsVmVuZG9ycyxvPUQuZ2VuVmVuZG9yc0NvbnNlbnQsbj0iIjt0LmZvckVhY2goZnVuY3Rpb24oZSl7bis9ZS5WZW5kb3JDdXN0b21JZCsiOiIrKG9bZS5WZW5kb3JDdXN0b21JZF0/IjEiOiIwIikrIiwifSksTC53cml0ZUNvb2tpZVBhcmFtKGUsImdlblZlbmRvcnMiLG4pfSxiby5wcm90b3R5cGUud3JpdGVWU0NvbnNlbnRDb29raWVQYXJhbT1mdW5jdGlvbihlKXt2YXIgbz0iIjtELnZzQ29uc2VudC5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8rPXQrIjoiKyhlPyIxIjoiMCIpKyIsIn0pLG89by5zbGljZSgwLC0xKSxMLndyaXRlQ29va2llUGFyYW0oZSxYdCxvKX0sYm8ucHJvdG90eXBlLnVwZGF0ZUdyb3Vwc0luQ29va2llPWZ1bmN0aW9uKGUsdCl7TC53cml0ZUNvb2tpZVBhcmFtKGUsImdyb3VwcyIsdi5hcnJUb1N0cigodD12b2lkIDA9PT10P251bGw6dCl8fEQuZ3JvdXBzQ29uc2VudCkpfSxiby5wcm90b3R5cGUud3JpdGVHcnBQYXJhbT1mdW5jdGlvbihlLHQpe3RoaXMudXBkYXRlR3JvdXBzSW5Db29raWUoZSx0PXZvaWQgMD09PXQ/bnVsbDp0KSxPLklzSWFiRW5hYmxlZCYmdy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKSYmdGhpcy5pbnNlcnRPclVwZGF0ZUlhYkNvb2tpZXMoKX0sYm8ucHJvdG90eXBlLmluc2VydE9yVXBkYXRlSWFiQ29va2llcz1mdW5jdGlvbigpe3ZhciBlPUQub25lVHJ1c3RJQUJDb25zZW50O2lmKGUucHVycG9zZSYmZS52ZW5kb3JzKXtELmlzQWRkdGxDb25zZW50PU8uVXNlR29vZ2xlVmVuZG9ycyxlLklBQkNvb2tpZVZhbHVlPVNvLmdldElBQkNvbnNlbnREYXRhKCk7dmFyIHQ9Ty5SZWNvbnNlbnRGcmVxdWVuY3lEYXlzO2lmKHcuaXNJQUJDcm9zc0NvbnNlbnRFbmFibGVkKCkpdy5zZXRJQUIzcmRQYXJ0eUNvb2tpZShrLkVVX0NPTlNFTlQsZS5JQUJDb29raWVWYWx1ZSx0LCExKTtlbHNle2Zvcih2YXIgbyxuPUwuZ2V0Q29va2llc0NodW5rKGUuSUFCQ29va2llVmFsdWUsay5FVV9QVUJfQ09OU0VOVCkscj0wLGk9T2JqZWN0LmtleXMobik7cjxpLmxlbmd0aDtyKyspe3ZhciBzPWlbcl07TC5zZXRDb29raWUocyxuW3NdLHQpfU8uVXNlR29vZ2xlVmVuZG9ycyYmKG89RC5hZGR0bFZlbmRvcnMudmVuZG9yQ29uc2VudC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfSksZT1PYmplY3Qua2V5cyhELmFkZHRsVmVuZG9yc0xpc3R8fHt9KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFvLmluY2x1ZGVzKGUpfSksZT10byhvLGUpLEwuc2V0Q29va2llKGsuQURESVRJT05BTF9DT05TRU5UX1NUUklORyxlLHQpKX19fTt2YXIgSW8sa289Ym87ZnVuY3Rpb24gYm8oKXt9X28ucHJvdG90eXBlLmluaXRHZW5WZW5kb3JDb25zZW50PWZ1bmN0aW9uKCl7dmFyIGUsdCxuPXRoaXM7Ty5HZW5WZW5PcHRPdXQ/KGU9Xy5jb25zZW50YWJsZUdycHMsKHQ9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsImdlblZlbmRvcnMiKSk/KEQuZ2VuVmVuZG9yc0NvbnNlbnQ9e30sdC5zcGxpdCgiLCIpLmZvckVhY2goZnVuY3Rpb24oZSl7ZSYmIjEiPT09KGU9ZS5zcGxpdCgiOiIpKVsxXSYmKEQuZ2VuVmVuZG9yc0NvbnNlbnRbZVswXV09ITApfSkpOihELmdlblZlbmRvcnNDb25zZW50PXt9LGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgbz1ELnN5bmNSZXF1aXJlZD95LmNoZWNrSWZHcm91cEhhc0NvbnNlbnQoZSk6eS5jaGVja0lzQWN0aXZlQnlEZWZhdWx0KGUpO2UuR2VuZXJhbFZlbmRvcnNJZHMmJmUuR2VuZXJhbFZlbmRvcnNJZHMubGVuZ3RoJiZlLkdlbmVyYWxWZW5kb3JzSWRzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bi5pc0dlblZlblBhcnRPZkFsd2F5c0FjdGl2ZUdyb3VwKGUpO0QuZ2VuVmVuZG9yc0NvbnNlbnRbZV09dHx8b30pfSkpKTooRC5nZW5WZW5kb3JzQ29uc2VudD17fSxJby53cml0ZUdlblZlbkNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5UKSl9LF9vLnByb3RvdHlwZS5wb3B1bGF0ZUdlblZlbmRvckxpc3RzPWZ1bmN0aW9uKCl7Xy5jb25zZW50YWJsZUdycHMuZm9yRWFjaChmdW5jdGlvbihlKXtlLkdlbmVyYWxWZW5kb3JzSWRzJiYoeS5pc0Fsd2F5c0FjdGl2ZUdyb3VwKGUpP2UuR2VuZXJhbFZlbmRvcnNJZHMuZm9yRWFjaChmdW5jdGlvbihlKXtELmFsd2F5c0FjdGl2ZUdlblZlbmRvcnMucHVzaChlKX0pOnkuaXNPcHRJbkdycChlKT9lLkdlbmVyYWxWZW5kb3JzSWRzLmZvckVhY2goZnVuY3Rpb24oZSl7RC5vcHRJbkdlblZlbmRvcnMucHVzaChlKX0pOnkuaXNTb2Z0T3B0SW5HcnAoZSkmJmUuR2VuZXJhbFZlbmRvcnNJZHMuZm9yRWFjaChmdW5jdGlvbihlKXtELm9wdEluR2VuVmVuZG9ycy5pbmNsdWRlcyhlKXx8RC5zb2Z0T3B0SW5HZW5WZW5kb3JzLnB1c2goZSl9KSl9KX0sX28ucHJvdG90eXBlLnVwZGF0ZUdlblZlbmRvclN0YXR1cz1mdW5jdGlvbihlLHQpe0QuZ2VuVmVuZG9yc0NvbnNlbnRbZV09dHx8dGhpcy5pc0dlblZlblBhcnRPZkFsd2F5c0FjdGl2ZUdyb3VwKGUpfSxfby5wcm90b3R5cGUuaXNHZW5WZW5QYXJ0T2ZBbHdheXNBY3RpdmVHcm91cD1mdW5jdGlvbihlKXtyZXR1cm4gRC5hbHdheXNBY3RpdmVHZW5WZW5kb3JzLmluY2x1ZGVzKGUpfTt2YXIgTG8sRW89X287ZnVuY3Rpb24gX28oKXt9Tm8ucHJvdG90eXBlLmlzTGFuZGluZ1BhZ2U9ZnVuY3Rpb24oKXt2YXIgZT1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCwibGFuZGluZ1BhdGgiKSx0PXRoaXMuc2FuaXRpemVMYW5kaW5nUGF0aChsb2NhdGlvbi5ocmVmKTtyZXR1cm4hZXx8ZT09PXR9LE5vLnByb3RvdHlwZS5zYW5pdGl6ZUxhbmRpbmdQYXRoPWZ1bmN0aW9uKGUpe3RyeXt2YXIgdCxvO3JldHVybiBlPT09SS5OT1RfTEFORElOR19QQUdFP0kuTk9UX0xBTkRJTkdfUEFHRToic3RyaW5nIj09dHlwZW9mIGUmJmUubGVuZ3RoPygodD1uZXcgVVJMKGUsd2luZG93LmxvY2F0aW9uLmhyZWYpKS5vcmlnaW4hPT13aW5kb3cubG9jYXRpb24ub3JpZ2luJiYodC5ocmVmPXdpbmRvdy5sb2NhdGlvbi5ocmVmKSwobz0iIit0Lm9yaWdpbit0LnBhdGhuYW1lKS5sZW5ndGg+dGhpcy5NQVhfTEVOP28uc2xpY2UoMCx0aGlzLk1BWF9MRU4pOm8pOiIifWNhdGNoKGUpe3JldHVybiIifX0sTm8ucHJvdG90eXBlLnNldExhbmRpbmdQYXRoUGFyYW09ZnVuY3Rpb24oZSl7ZT10aGlzLnNhbml0aXplTGFuZGluZ1BhdGgoZSk7ZSYmTC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULCJsYW5kaW5nUGF0aCIsZSl9O3ZhciBPbyxEbz1ObztmdW5jdGlvbiBObygpe3RoaXMuTUFYX0xFTj0xMDI0fUJvLnByb3RvdHlwZS5zeW5jaHJvbmlzZUNvb2tpZUdyb3VwRGF0YT1mdW5jdGlvbihlKXt2YXIgcj10aGlzLHQ9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsImdyb3VwcyIpLGk9di5zdHJUb0Fycih0KSxzPXYuc3RyVG9BcnIodC5yZXBsYWNlKC86MHw6MS9nLCIiKSksdD13Lm5lZWRSZWNvbnNlbnQoKSxhPSExLGw9ITEsYz1FLkdyb3VwVHlwZXM7ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0LG8sbj1lLkN1c3RvbUdyb3VwSWQ7ZS5UeXBlIT09Yy5CdW5kbGUmJmUuVHlwZSE9PWMuU3RhY2smJigtMT09PXYuaW5kZXhPZihzLG4pPyhhPSEwLHQ9eS5jaGVja0lzQWN0aXZlQnlEZWZhdWx0KGUpLGw9ITAsaS5wdXNoKG4rKHQ/IjoxIjoiOjAiKSkpOmw9ci51cGRhdGVJbXBsaWVkQ29uc2VudEdyb3VwKGUsaSxuLGwpLF8uRE5URW5hYmxlZCYmZS5Jc0RudEVuYWJsZWQmJihudWxsPT0odD1lLlN0YXR1cyk/dm9pZCAwOnQudG9Mb3dlckNhc2UoKSkhPT1mLkFMV0FZU19JTkFDVElWRSYmKG51bGw9PSh0PWUuU3RhdHVzKT92b2lkIDA6dC50b0xvd2VyQ2FzZSgpKSE9PWYuQUxXQVlTX0FDVElWRSYmLTE8aS5pbmRleE9mKG4rIjoxIikmJihvPWkuaW5kZXhPZihuKyI6MSIpLGw9ITAsRC5kbnRDb25zZW50VHhuPSEwLGlbb109bisiOjAiLGUuaXNEZW5pZWRCeUROVD0hMCksXy5ncGNFbmFibGVkJiZlLklzR3BjRW5hYmxlZCYmXy5ncGNWYWx1ZUNoYW5nZWQmJi0xPChvPWkuaW5kZXhPZihuKyI6MSIpKSkmJihsPSEwLEQuZ3BjQ29uc2VudFR4bj0hMCxpW29dPW4rIjowIixlLmlzRGVuaWVkQnlHUEM9ITApfSksbD10aGlzLnVwZGF0ZUNvbnNlbnRGb3JCdW5kbGVHcnBzKGUsaSxzLGwsdCksKGw9dGhpcy5yZW1vdmVSZWR1bmRhbnRHcnBzRnJvbUNvb2tpZShpLHQsbCkpJiYoRC5maXJlT25ldHJ1c3RHcnA9ITAsSW8udXBkYXRlR3JvdXBzSW5Db29raWUoay5PUFRBTk9OX0NPTlNFTlQsaSksRC5zeW5jUmVxdWlyZWQpJiZhJiZMLnJlbW92ZUFsZXJ0Qm94KCl9LEJvLnByb3RvdHlwZS51cGRhdGVJbXBsaWVkQ29uc2VudEdyb3VwPWZ1bmN0aW9uKGUsdCxvLG4pe3JldHVybiBlLlN0YXR1cyE9PWYuSU5BQ1RJVkVfTEFORElOR19QQUdFfHx3LmlzQWxlcnRCb3hDbG9zZWRBbmRWYWxpZCgpfHxPby5pc0xhbmRpbmdQYWdlKCl8fDA8PShlPXQuaW5kZXhPZihvKyI6MCIpKSYmKG49ITAsdFtlXT1vKyI6MSIpLG59LEJvLnByb3RvdHlwZS5yZW1vdmVSZWR1bmRhbnRHcnBzRnJvbUNvb2tpZT1mdW5jdGlvbihlLG8sdCl7Zm9yKHZhciBuPWUubGVuZ3RoLHI9dDtuLS07KSgoKT0+e3ZhciB0PWVbbl0ucmVwbGFjZSgvOjB8OjEvZywiIik7Ty5Hcm91cHMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4oIW98fGUuVHlwZSE9PUUuR3JvdXBUeXBlcy5TdGFjaykmJihlLkN1c3RvbUdyb3VwSWQ9PT10fHxlLlN1Ykdyb3Vwcy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLkN1c3RvbUdyb3VwSWQ9PT10fSkpfSl8fChyPSEwLGUuc3BsaWNlKG4sMSkpfSkoKTtyZXR1cm4gcn0sQm8ucHJvdG90eXBlLnVwZGF0ZUNvbnNlbnRGb3JCdW5kbGVHcnBzPWZ1bmN0aW9uKGUscixpLHQscyl7dmFyIGE9dGhpcyxsPXQsYz1FLkdyb3VwVHlwZXM7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxvPWUuVHlwZT09PWMuQnVuZGxlfHxlLlR5cGU9PT1jLlN0YWNrLG49ZS5DdXN0b21Hcm91cElkO28mJigtMT09PXYuaW5kZXhPZihpLG4pPyhvPWguaXNCdW5kbGVPclN0YWNrQWN0aXZlKGUsciksbD0hMCxyLnB1c2gobisobz8iOjEiOiI6MCIpKSk6cyYmImZhbHNlIj09PXcuZ2V0SUFCQ3Jvc3NDb25zZW50ZmxhZ0RhdGEoKXx8Xy5ncGNFbmFibGVkJiZfLmdwY1ZhbHVlQ2hhbmdlZHx8RC5zeW5jUmVxdWlyZWQ/KG89aC5pc0J1bmRsZU9yU3RhY2tBY3RpdmUoZSxyKSwtMTwodD1yLmluZGV4T2YobisiOiIrKG8/IjAiOiIxIikpKSYmKGw9ITAsclt0XT1uKyhvPyI6MSI6IjowIikpKTpsPWEudXBkYXRlSW1wbGllZENvbnNlbnRHcm91cChlLHIsbixsKSl9KSxsfSxCby5wcm90b3R5cGUuZ3JvdXBIYXNDb25zZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXYuc3RyVG9BcnIoTC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsImdyb3VwcyIpKSxvPXYuZmluZEluZGV4KGUsZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoIjoiKVswXT09PXQuQ3VzdG9tR3JvdXBJZH0pO3JldHVybi0xPG8mJiIxIj09PWVbb10uc3BsaXQoIjoiKVsxXX0sQm8ucHJvdG90eXBlLnN5bmNocm9uaXNlQ29va2llSG9zdERhdGE9ZnVuY3Rpb24oKXtmb3IodmFyIG49dGhpcyxlPUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULCJob3N0cyIpLHI9di5zdHJUb0FycihlKSxpPXYuc3RyVG9BcnIoZS5yZXBsYWNlKC86MHw6MS9nLCIiKSkscz0hMSxvPShPLkdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe0YoZS5TdWJHcm91cHMsW2VdKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe28uSG9zdHMubGVuZ3RoJiZvLkhvc3RzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ7LTE9PT12LmluZGV4T2YoaSxlLkhvc3RJZCkmJihzPSEwLHQ9RC5zeW5jUmVxdWlyZWQ/bi5ncm91cEhhc0NvbnNlbnQobyk6eS5jaGVja0lzQWN0aXZlQnlEZWZhdWx0KG8pLHIucHVzaChlLkhvc3RJZCsodD8iOjEiOiI6MCIpKSl9KX0pfSksci5sZW5ndGgpO28tLTspKCgpPT57dmFyIHQ9cltvXS5yZXBsYWNlKC86MHw6MS9nLCIiKTtPLkdyb3Vwcy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBGKGUuU3ViR3JvdXBzLFtlXSkuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5Ib3N0cy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLkhvc3RJZD09PXR9KX0pfSl8fChzPSEwLHIuc3BsaWNlKG8sMSkpfSkoKTtzJiYoRC5maXJlT25ldHJ1c3RHcnA9ITAsSW8ud3JpdGVIc3RQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxyKSl9LEJvLnByb3RvdHlwZS50b2dnbGVHcm91cEhvc3RzPWZ1bmN0aW9uKGUsdCl7dmFyIG89dGhpcztlLkhvc3RzLmZvckVhY2goZnVuY3Rpb24oZSl7by51cGRhdGVIb3N0U3RhdHVzKGUsdCl9KX0sQm8ucHJvdG90eXBlLnRvZ2dsZUdyb3VwR2VuVmVuZG9ycz1mdW5jdGlvbihlLHQpe2UuR2VuZXJhbFZlbmRvcnNJZHMuZm9yRWFjaChmdW5jdGlvbihlKXtMby51cGRhdGVHZW5WZW5kb3JTdGF0dXMoZSx0KX0pfSxCby5wcm90b3R5cGUudXBkYXRlSG9zdFN0YXR1cz1mdW5jdGlvbih0LGUpe3ZhciBvPXYuZmluZEluZGV4KEQuaG9zdHNDb25zZW50LGZ1bmN0aW9uKGUpe3JldHVybiF0LmlzQWN0aXZlJiZ0Lkhvc3RJZD09PWUucmVwbGFjZSgvOjB8OjEvZywiIil9KTstMTxvJiYoZT1lfHx0aGlzLmlzSG9zdFBhcnRPZkFsd2F5c0FjdGl2ZUdyb3VwKHQuSG9zdElkKSxELmhvc3RzQ29uc2VudFtvXT10Lkhvc3RJZCsiOiIrKGU/IjEiOiIwIikpfSxCby5wcm90b3R5cGUuaXNIb3N0UGFydE9mQWx3YXlzQWN0aXZlR3JvdXA9ZnVuY3Rpb24oZSl7cmV0dXJuIEQub25lVHJ1c3RBbHdheXNBY3RpdmVIb3N0cy5pbmNsdWRlcyhlKX07dmFyIHdvLFZvPUJvO2Z1bmN0aW9uIEJvKCl7fXZhciBHbyx4bz0iT25lVHJ1c3QgQ29va2llIENvbnNlbnQiLEhvPSJCYW5uZXIgQXV0byBDbG9zZSIsUm89IkJhbm5lciBDbG9zZSBCdXR0b24iLEZvPSJCYW5uZXIgLSBDb250aW51ZSB3aXRob3V0IEFjY2VwdGluZyIsTW89IkJhbm5lciAtIENvbmZpcm0iLFVvPSJQcmVmZXJlbmNlcyBDbG9zZSBCdXR0b24iLHFvPSJQcmVmZXJlbmNlIENlbnRlciBPcGVuZWQgRnJvbSBCYW5uZXIiLGpvPSJQcmVmZXJlbmNlIENlbnRlciBPcGVuZWQgRnJvbSBCdXR0b24iLEtvPSJQcmVmZXJlbmNlIENlbnRlciBPcGVuZWQgRnJvbSBGdW5jdGlvbiIsem89IlByZWZlcmVuY2VzIFNhdmUgU2V0dGluZ3MiLFdvPSJWZW5kb3JzIExpc3QgT3BlbmVkIEZyb20gRnVuY3Rpb24iLFlvPSJGbG9hdGluZyBDb29raWUgU2V0dGluZ3MgT3BlbiBCdXR0b24iLEpvPSJGbG9hdGluZyBDb29raWUgU2V0dGluZ3MgQ2xvc2UgQnV0dG9uIixYbz0iUHJlZmVyZW5jZXMgVG9nZ2xlIE9uIixRbz0iUHJlZmVyZW5jZXMgVG9nZ2xlIE9mZiIsWm89IkdlbmVyYWwgVmVuZG9yIFRvZ2dsZSBPbiIsJG89IkdlbmVyYWwgVmVuZG9yIFRvZ2dsZSBPZmYiLGVuPSJIb3N0IFRvZ2dsZSBPbiIsdG49Ikhvc3QgVG9nZ2xlIE9mZiIsb249IlByZWZlcmVuY2VzIExlZ2l0aW1hdGUgSW50ZXJlc3QgT2JqZWN0aW9uIixubj0iUHJlZmVyZW5jZXMgTGVnaXRpbWF0ZSBJbnRlcmVzdCBSZW1vdmUgT2JqZWN0aW9uIixybj0iSUFCIFZlbmRvciBUb2dnbGUgT04iLHNuPSJJQUIgVmVuZG9yIFRvZ2dsZSBPZmYiLGFuPSJJQUIgVmVuZG9yIExlZ2l0aW1hdGUgSW50ZXJlc3QgT2JqZWN0aW9uIixsbj0iSUFCIFZlbmRvciBMZWdpdGltYXRlIEludGVyZXN0IFJlbW92ZSBPYmplY3Rpb24iLGNuPSJWZW5kb3IgU2VydmljZSBUb2dnbGUgT24iLGRuPSJWZW5kb3IgU2VydmljZSBUb2dnbGUgT2ZmIix1bj0ocG4ucHJvdG90eXBlLnNldEJhbm5lckZvY3VzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG0oIiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vbmV0cnVzdC12ZW5kb3JzLWxpc3QtaGFuZGxlciIpLmVsKSxvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG0oJyNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3ktdGV4dCBhLCNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3ktdGV4dCBidXR0b24sI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0IFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknKS5lbCksbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChtKCIjb25ldHJ1c3QtYmFubmVyLXNkayAub3QtYm5yLXNhdmUtaGFuZGxlciIpLmVsKSxyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG0oIiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wYy1idG4taGFuZGxlciIpLmVsKSxpPUFycmF5LnByb3RvdHlwZS5jb25jYXQuY2FsbChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChtKCIjb25ldHJ1c3QtYmFubmVyLXNkayAuY2F0ZWdvcnktc3dpdGNoLWhhbmRsZXI6bm90KFtkaXNhYmxlZF0pIikuZWwpLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG0oIiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1jYXQtbHN0IGJ1dHRvbiIpLmVsKSx0KSxpPUFycmF5LnByb3RvdHlwZS5jb25jYXQuY2FsbChvLGkpLHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobSgiI29uZXRydXN0LWJhbm5lci1zZGsgLm9uZXRydXN0LWNsb3NlLWJ0bi1oYW5kbGVyIikuZWwpLHQ9KF8uYmFubmVyTmFtZT09PVhlJiYoaT1BcnJheS5wcm90b3R5cGUuY29uY2F0LmNhbGwodCxvKSksQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobSgiI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlciIpLmVsKSksbz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChtKCIjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyIikuZWwpLG49QXJyYXkucHJvdG90eXBlLmNvbmNhdC5jYWxsKG4sdCxvLHIpLHI9KChfLmJhbm5lck5hbWUhPT1ZZXx8Ty5Jc0lhYkVuYWJsZWQpJiZfLmJhbm5lck5hbWUhPT1XZSYmXy5iYW5uZXJOYW1lIT09WmV8fChuPUFycmF5LnByb3RvdHlwZS5jb25jYXQuY2FsbChyLG8sdCkpLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG0oIiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1ndi1saXN0LWhhbmRsZXIiKS5lbCkpLG89KF8uYmFubmVyTmFtZT09PSRlPyhpPUFycmF5LnByb3RvdHlwZS5jb25jYXQuY2FsbChyLGkpLG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobSgiI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cCBidXR0b24iKS5lbCkpOmk9QXJyYXkucHJvdG90eXBlLmNvbmNhdC5jYWxsKGksciksdGhpcy5yZWFycmFuZ2VJbkJ1dHRvbk9yZGVyKG4pLG0oIiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1iLWFkZGwtZGVzYyIpLmVsWzBdKSx0PXRoaXMuZ2V0VGFiYmFibGVFbGVtZW50cyhvKSxpPU8uQmFubmVyQWRkaXRpb25hbERlc2NQbGFjZW1lbnQ9PT1zZS5BZnRlclRpdGxlP0FycmF5LnByb3RvdHlwZS5jb25jYXQuY2FsbCh0LGkpOkFycmF5LnByb3RvdHlwZS5jb25jYXQuY2FsbChpLHQpLHI9bmV3IFNldChBcnJheS5wcm90b3R5cGUuY29uY2F0LmNhbGwoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobSgiI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWNvb2tpZS1idG4iKS5lbCksaSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChtKCIjb25ldHJ1c3QtYmFubmVyLXNkayAuYmFubmVyLW9wdGlvbi1pbnB1dCIpLmVsKSxuLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG0oIiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1ibnItZm9vdGVyLWxvZ28gYSIpLmVsKSxzKSk7dGhpcy5iYW5uZXJFbD1BcnJheS5mcm9tKHIpLHRoaXMuYmFubmVyPW0oIiNvbmV0cnVzdC1iYW5uZXItc2RrIikuZWxbMF0sKE8uQkluaXRpYWxGb2N1c3x8Ty5CSW5pdGlhbEZvY3VzTGlua0FuZEJ1dHRvbnx8Ty5Gb3JjZUNvbnNlbnQpJiYoTy5CSW5pdGlhbEZvY3VzP3NldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmJhbm5lci5mb2N1cygpfSwxZTMpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmJhbm5lckVsWzBdLmZvY3VzKCl9LDFlMykpfSxwbi5wcm90b3R5cGUuaGFuZGxlQmFubmVyRm9jdXM9ZnVuY3Rpb24oZSx0KXt2YXIgbz1lLnRhcmdldCxuPUdvLmJhbm5lckVsLHI9bi5pbmRleE9mKG8pLGk9bi5sZW5ndGgtMSxzPW51bGw7aWYodGhpcy5oYW5kbGVCYW5uZXJGb2N1c0JvZHlSZXNldCh0LHIsaSkpaC5yZXNldEZvY3VzVG9Cb2R5KCk7ZWxzZSBpZih0aGlzLmJhbm5lcj09PW8pcz10aGlzLmhhbmRsZUluaXRpYWxCYW5uZXJGb2N1cyh0LG4saSxzKTtlbHNlIGZvcig7IXM7KXt2YXIgYT12b2lkIDA7MCE9PShhPXQ/cjw9MD9uW2ldOm5bci0xXTpyPT09aT9uWzBdOm5bcisxXSkuY2xpZW50SGVpZ2h0fHwwIT09YS5vZmZzZXRIZWlnaHQ/cz1hOnQ/ci0tOnIrK31zJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHMuZm9jdXMoKSl9LHBuLnByb3RvdHlwZS5yZWFycmFuZ2VJbkJ1dHRvbk9yZGVyPWZ1bmN0aW9uKGUpe08uUENUZW1wbGF0ZVVwZ3JhZGUmJmIuZnAuV2ViQnV0dG9uQ3VzdG9taXNhdGlvbnMmJmUmJmUuc29ydChmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG8oZSl7cmV0dXJuKGU9QXJyYXkuZnJvbShlLmNsYXNzTGlzdCkuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5zdGFydHNXaXRoKCJvdC1idXR0b24tb3JkZXItIil9KSk/cGFyc2VJbnQoZS5yZXBsYWNlKCJvdC1idXR0b24tb3JkZXItIiwiIikpOjEvMH1yZXR1cm4gbyhlKS1vKHQpfSl9LHBuLnByb3RvdHlwZS5oYW5kbGVCYW5uZXJGb2N1c0JvZHlSZXNldD1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIShPLkZvcmNlQ29uc2VudHx8IU8uQkluaXRpYWxGb2N1cyYmIU8uQkluaXRpYWxGb2N1c0xpbmtBbmRCdXR0b258fCEoZSYmMD09PXR8fCFlJiZ0PT09bykpfSxwbi5wcm90b3R5cGUuaGFuZGxlSW5pdGlhbEJhbm5lckZvY3VzPWZ1bmN0aW9uKGUsdCxvLG4pe3JldHVybiBlJiZPLkZvcmNlQ29uc2VudD9uPXRbb106ZXx8KG49dFswXSksbn0scG4ucHJvdG90eXBlLnNldFBDRm9jdXM9ZnVuY3Rpb24oZSl7aWYoZSYmIShlLmxlbmd0aDw9MCkpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0uc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKTt0aGlzLnNldEZpcnN0QW5kTGFzdChlKTt0aGlzLmZpcnN0SXRlbT90aGlzLmZpcnN0SXRlbS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pOmVbMF0uZm9jdXMoKSx0aGlzLmZpcnN0SXRlbSYmbSh0aGlzLmZpcnN0SXRlbSkub24oImtleWRvd24iLEdvLmZpcnN0SXRlbUhhbmRsZXIpLHRoaXMubGFzdEl0ZW0mJm0odGhpcy5sYXN0SXRlbSkub24oImtleWRvd24iLEdvLmxhc3RJdGVtSGFuZGxlcil9fSxwbi5wcm90b3R5cGUuc2V0Rmlyc3RBbmRMYXN0PWZ1bmN0aW9uKGUpe3RoaXMuZmlyc3RJdGVtPXRoaXMuZ2V0RWxlbWVudEZvckZvY3VzKGUsMCwhMCksdGhpcy5sYXN0SXRlbT10aGlzLmZpcnN0SXRlbT90aGlzLmdldEVsZW1lbnRGb3JGb2N1cyhlLGUubGVuZ3RoLTEsITEpOm51bGx9LHBuLnByb3RvdHlwZS5zZXRMYXN0SXRlbT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0UENFbGVtZW50cygpLGU9dGhpcy5nZXRFbGVtZW50Rm9yRm9jdXMoZSxlLmxlbmd0aC0xLCExKTtlIT09dGhpcy5sYXN0SXRlbSYmKG0odGhpcy5sYXN0SXRlbSkub2ZmKCJrZXlkb3duIixHby5sYXN0SXRlbUhhbmRsZXIpLHRoaXMubGFzdEl0ZW09ZSxtKGUpLm9uKCJrZXlkb3duIixHby5sYXN0SXRlbUhhbmRsZXIpKX0scG4ucHJvdG90eXBlLmdldFBDRWxlbWVudHM9ZnVuY3Rpb24oKXt2YXIgZT0iI29uZXRydXN0LXBjLXNkayAjY2xvc2UtcGMtYnRuLWhhbmRsZXIsXG4gICAgICAgICAgICAjb25ldHJ1c3QtcGMtc2RrIC5iYWNrLWJ0bi1oYW5kbGVyLFxuICAgICAgICAgICAgI29uZXRydXN0LXBjLXNkayAuIitULlBfQWN0aXZlX01lbnUrJyxcbiAgICAgICAgICAgICNvbmV0cnVzdC1wYy1zZGsgaW5wdXQsXG4gICAgICAgICAgICAjb25ldHJ1c3QtcGMtc2RrIGEsXG4gICAgICAgICAgICAjb25ldHJ1c3QtcGMtc2RrIFt0YWJpbmRleD0iMCJdIGJ1dHRvbixcbiAgICAgICAgICAgICNvbmV0cnVzdC1wYy1zZGsgLnNhdmUtcHJlZmVyZW5jZS1idG4taGFuZGxlcixcbiAgICAgICAgICAgICNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLXJlZnVzZS1hbGwtaGFuZGxlcixcbiAgICAgICAgICAgICNvbmV0cnVzdC1wYy1zZGsgI2FjY2VwdC1yZWNvbW1lbmRlZC1idG4taGFuZGxlcic7cmV0dXJuIEQucGNMYXllcj09PXJlLkNvb2tpZUxpc3Q/ZSs9IiAsI29uZXRydXN0LXBjLXNkayAiK1QuUF9Db250ZW50KyIgLnBvd2VyZWQtYnktbG9nbyI6ZSs9Iiwjb25ldHJ1c3QtcGMtc2RrICN2ZW5kb3ItbGlzdC1zYXZlLWJ0biAucG93ZXJlZC1ieS1sb2dvIixBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChtKGUpLmVsKX0scG4ucHJvdG90eXBlLmdldEFjdGl2ZVRhYj1mdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1tZW51LXN3aXRjaC1oYW5kbGVyW3RhYmluZGV4PSIwIl0nKX0scG4ucHJvdG90eXBlLmdldEVsZW1lbnRGb3JGb2N1cz1mdW5jdGlvbihlLHQsbyl7Zm9yKHZhciBuPWVbdF07bz9uJiZudWxsPT09bi5vZmZzZXRQYXJlbnQmJnQ8ZS5sZW5ndGgtMTpuJiZudWxsPT09bi5vZmZzZXRQYXJlbnQmJjA8dDspbj1lW3RdLG8/Kyt0Oi0tdDtyZXR1cm4gbn0scG4ucHJvdG90eXBlLmhhbmRsZUZvY3VzVGFiTGF5b3V0RXhjZXB0Q2xvc2VQQz1mdW5jdGlvbihlKXt2YXIgdD0iY2xvc2UtcGMtYnRuLWhhbmRsZXIiPT09ZS50YXJnZXQuaWQmJigxMz09PWUua2V5Q29kZXx8MzI9PT1lLmtleUNvZGV8fCJFbnRlciI9PT1lLmNvZGV8fCJTcGFjZSI9PT1lLmNvZGUpO08uUENMYXlvdXQuVGFiJiZELnBjTGF5ZXI9PT1yZS5QcmVmQ2VudGVySG9tZSYmIXQmJih0PUdvLmdldEFjdGl2ZVRhYigpKSYmKGUucHJldmVudERlZmF1bHQoKSx0LmZvY3VzKCkpfSxwbi5wcm90b3R5cGUuZmlyc3RJdGVtSGFuZGxlcj1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25ldHJ1c3QtYmFubmVyLXNkayIpOzk9PT1lLmtleUNvZGUmJmUuc2hpZnRLZXkmJkdvLmZpcnN0SXRlbSE9PXQ/KGUucHJldmVudERlZmF1bHQoKSxHby5sYXN0SXRlbS5mb2N1cygpKTpPLlNob3dQcmVmZXJlbmNlQ2VudGVyQ2xvc2VCdXR0b24/R28uaGFuZGxlRm9jdXNUYWJMYXlvdXRFeGNlcHRDbG9zZVBDKGUpOiFPLlBDTGF5b3V0LlRhYnx8RC5wY0xheWVyIT09cmUuUHJlZkNlbnRlckhvbWV8fDM3IT09ZS5rZXlDb2RlJiYzOSE9PWUua2V5Q29kZXx8KHQ9R28uZ2V0QWN0aXZlVGFiKCkpJiZtKHQpLm9uKCJrZXlkb3duIixHby5maXJzdEl0ZW1IYW5kbGVyKX0scG4ucHJvdG90eXBlLmxhc3RJdGVtSGFuZGxlcj1mdW5jdGlvbihlKXs5IT09ZS5rZXlDb2RlfHxlLnNoaWZ0S2V5fHwoZS5wcmV2ZW50RGVmYXVsdCgpLGU9RC5wY0xheWVyPT09cmUuVmVuZG9yTGlzdHx8RC5wY0xheWVyPT09cmUuQ29va2llTGlzdCwoTy5QQ0xheW91dC5UYWImJkQuaXNQQ1Zpc2libGUmJiFPLlNob3dQcmVmZXJlbmNlQ2VudGVyQ2xvc2VCdXR0b24mJiFlP0dvLmdldEFjdGl2ZVRhYigpOkdvLmZpcnN0SXRlbSkuZm9jdXMoKSl9LHBuLnByb3RvdHlwZS5nZXRUYWJiYWJsZUVsZW1lbnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlP0FycmF5LmZyb20oZS5xdWVyeVNlbGVjdG9yQWxsKFsiYVtocmVmXSIsImFyZWFbaHJlZl0iLCJpbnB1dDpub3QoW2Rpc2FibGVkXSkiLCJzZWxlY3Q6bm90KFtkaXNhYmxlZF0pIiwidGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pIiwiYnV0dG9uOm5vdChbZGlzYWJsZWRdKSIsJ1t0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknLCJbY29udGVudGVkaXRhYmxlXSJdLmpvaW4oIiwiKSkpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hZS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIil9KTpbXX0scG4ucHJvdG90eXBlLmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdldFRhYmJhYmxlRWxlbWVudHMoZG9jdW1lbnQuYm9keSkuZmluZChmdW5jdGlvbihlKXtyZXR1cm4hZS5jbG9zZXN0KCIjb25ldHJ1c3QtY29uc2VudC1zZGsiKSYmIWUuY2xvc2VzdCgiI29uZXRydXN0LWJhbm5lci1zZGsiKSYmIWUuY2xvc2VzdCgiI29uZXRydXN0LXBjLXNkayIpJiZudWxsIT09ZS5vZmZzZXRQYXJlbnR9KTtlJiZlLmZvY3VzKCl9LHBuKTtmdW5jdGlvbiBwbigpe3RoaXMuYmFubmVyRWw9W119Z24ucHJvdG90eXBlLmdldEFsbEdyb3VwRWxlbWVudHM9ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGl2I29uZXRydXN0LXBjLXNkayAiK1QuUF9DYXRlZ29yeV9HcnArIiAiK1QuUF9DYXRlZ29yeV9JdGVtKyI6bm90KC5vdC12bmQtaXRlbSkiKX0sZ24ucHJvdG90eXBlLnRvZ2dsZUdycEVsZW1lbnRzPWZ1bmN0aW9uKGUsdCxvLG4pe3ZvaWQgMD09PW4mJihuPSExKTtmb3IodmFyIHI9KGU9Xy5wY05hbWU9PT1pdCYmTy5QQ1RlbXBsYXRlVXBncmFkZT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb3QtZGVzYy1pZC0iK2UuZ2V0QXR0cmlidXRlKCJkYXRhLW9wdGFub25ncm91cGlkIikpOmUpLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W2NsYXNzKj0iY2F0ZWdvcnktc3dpdGNoLWhhbmRsZXIiXScpLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIHM9cltpXS5nZXRBdHRyaWJ1dGUoImlkIikuaW5jbHVkZXMoImxlZy1vdXQiKTtuJiZzfHwodi5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwscltpXSxvKSxyW2ldJiZPLlBDU2hvd0NvbnNlbnRMYWJlbHMmJihyW2ldLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCIub3QtbGFiZWwtc3RhdHVzIikuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChvP08uUENBY3RpdmVUZXh0Ok8uUENJbmFjdGl2ZVRleHQpKSl9Xy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMSSYmXy5sZWdJbnRTZXR0aW5ncy5QU2hvd0xlZ0ludEJ0biYmdC5UeXBlPT09RS5Hcm91cFR5cGVzLlB1ciYmdC5IYXNMZWdJbnRPcHRPdXQmJiFuJiZWLnVwZGF0ZUxlZ0ludEJ0bkVsZW1lbnQoZS5xdWVyeVNlbGVjdG9yKCIub3QtbGVnLWJ0bi1jb250YWluZXIiKSxvKX0sZ24ucHJvdG90eXBlLnRvb2dsZUFsbFN1YkdycEVsZW1lbnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG87ZS5TaG93U3ViZ3JvdXA/KG89ZS5DdXN0b21Hcm91cElkLG89dGhpcy5nZXRHcm91cEVsZW1lbnRCeU9wdGFub25Hcm91cElkKG8udG9TdHJpbmcoKSksVi50b29nbGVTdWJHcm91cEVsZW1lbnQobyx0LGUuSXNMZWdJbnRUb2dnbGUpKTp0aGlzLnVwZGF0ZUhpZGRlblN1Ykdyb3VwRGF0YShlLHQpfSxnbi5wcm90b3R5cGUuaXNTdWJHcnBMZWdJbnRFbmFibGVkPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIF8ubGVnSW50U2V0dGluZ3MuUEFsbG93TEkmJl8ubGVnSW50U2V0dGluZ3MuUFNob3dMZWdJbnRCdG4mJmUuVHlwZT09PUUuR3JvdXBUeXBlcy5QdXImJmUuSGFzTGVnSW50T3B0T3V0JiZ0LlNob3dTdWJncm91cFRvZ2dsZX0sZ24ucHJvdG90eXBlLnRvb2dsZVN1Ykdyb3VwRWxlbWVudD1mdW5jdGlvbihlLHQsbyxuKXt2b2lkIDA9PT1vJiYobz0hMSksdm9pZCAwPT09biYmKG49ITEpO2Zvcih2YXIgcj0oZT1fLnBjTmFtZT09PWl0JiZPLlBDVGVtcGxhdGVVcGdyYWRlP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvdC1kZXNjLWlkLSIrZS5nZXRBdHRyaWJ1dGUoImRhdGEtb3B0YW5vbmdyb3VwaWQiKSk6ZSkucXVlcnlTZWxlY3RvckFsbCgibGkiK1QuUF9TdWJncnBfbGkpLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIHM9eS5nZXRHcm91cEJ5SWQocltpXS5nZXRBdHRyaWJ1dGUoImRhdGEtb3B0YW5vbmdyb3VwaWQiKSksYT1zLk9wdGFub25Hcm91cElkLGw9eS5nZXRQYXJlbnRHcm91cChzLlBhcmVudCksbD0odGhpcy5pc1N1YkdycExlZ0ludEVuYWJsZWQocyxsKSYmbyYmVi51cGRhdGVMZWdJbnRCdG5FbGVtZW50KHJbaV0sdCksbz8iW2lkPSdvdC1zdWItZ3JvdXAtaWQtIithKyItbGVnLW91dCddIjoiW2lkPSdvdC1zdWItZ3JvdXAtaWQtIithKyInXSIpLGE9cltpXS5xdWVyeVNlbGVjdG9yKCdpbnB1dFtjbGFzcyo9ImNvb2tpZS1zdWJncm91cC1oYW5kbGVyIl0nK2wpO3Yuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLGEsdCksYSYmTy5QQ1Nob3dDb25zZW50TGFiZWxzJiYoYS5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcigiLm90LWxhYmVsLXN0YXR1cyIpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQodD9PLlBDQWN0aXZlVGV4dDpPLlBDSW5hY3RpdmVUZXh0KSksbnx8KHMuSXNMZWdJbnRUb2dnbGU9byxWLnRvZ2dsZUdycFN0YXR1cyhzLHQpLHMuSXNMZWdJbnRUb2dnbGU9ITEsd28udG9nZ2xlR3JvdXBIb3N0cyhzLHQpLEQuZ2VuVmVuT3B0T3V0RW5hYmxlZCYmd28udG9nZ2xlR3JvdXBHZW5WZW5kb3JzKHMsdCkpfX0sZ24ucHJvdG90eXBlLnRvZ2dsZUdycFN0YXR1cz1mdW5jdGlvbihlLHQpe3ZhciBvPWUuSXNMZWdJbnRUb2dnbGUmJmUuVHlwZT09PUUuR3JvdXBUeXBlcy5QdXI/dD9ubjpvbjp0P1hvOlFvO1RvLnRyaWdnZXJHb29nbGVBbmFseXRpY3NFdmVudCh4byxvLGUuR3JvdXBOYW1lKyI6ICIrZS5PcHRhbm9uR3JvdXBJZCksdD90aGlzLnVwZGF0ZUVuYWJsZWRHcm91cERhdGEoZSk6dGhpcy51cGRhdGVEaXNhYmxlZEdyb3VwRGF0YShlKX0sZ24ucHJvdG90eXBlLnNldElucHV0SUQ9ZnVuY3Rpb24oZSx0LG8sbixyKXttKGUpLmF0dHIoImlkIix0KSxtKGUpLmF0dHIoIm5hbWUiLHQpLG0oZSkuZGF0YSgib3B0YW5vbkdyb3VwSWQiLG8pLHYuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLGUsbiksbShlKS5hdHRyKCJhcmlhLWxhYmVsbGVkYnkiLHIpfSxnbi5wcm90b3R5cGUudXBkYXRlRW5hYmxlZEdyb3VwRGF0YT1mdW5jdGlvbihlKXt2YXIgdCxvOy0xPF90LmluZGV4T2YoZS5UeXBlKT90aGlzLnVwZGF0ZUlhYkdyb3VwRGF0YShlLCEwKToodD1WLmdldEdyb3VwVmFyaWFibGUoKSwtMSE9PShvPXYuaW5kZXhPZih0LGUuQ3VzdG9tR3JvdXBJZCsiOjAiKSkmJih0W29dPWUuQ3VzdG9tR3JvdXBJZCsiOjEiKSl9LGduLnByb3RvdHlwZS51cGRhdGVEaXNhYmxlZEdyb3VwRGF0YT1mdW5jdGlvbihlKXt2YXIgdCxvOy0xPF90LmluZGV4T2YoZS5UeXBlKT90aGlzLnVwZGF0ZUlhYkdyb3VwRGF0YShlLCExKTplLlN0YXR1cyE9PWYuQUxXQVlTX0FDVElWRSYmKHQ9Vi5nZXRHcm91cFZhcmlhYmxlKCksLTEhPT0obz12LmluZGV4T2YodCxlLkN1c3RvbUdyb3VwSWQrIjoxIikpJiYodFtvXT1lLkN1c3RvbUdyb3VwSWQrIjowIiksdGhpcy5pc0ltcGxpY2l0Q29uc2VudERlZmF1bHRTdGF0dXMoZSkpJiZfLnJlbW92ZUdyb3VwRnJvbUltcGxpZWRDb25zZW50YWJsZUdyb3VwKGUpfSxnbi5wcm90b3R5cGUudXBkYXRlSWFiR3JvdXBEYXRhPWZ1bmN0aW9uKGUsdCl7dmFyIG87ZS5UeXBlPT09RS5Hcm91cFR5cGVzLlNwbF9GdD90aGlzLnVwZGF0ZUlhYlNwZWNpYWxGZWF0dXJlRGF0YShlLklhYkdycElkLHQpOihvPWUuSXNMZWdJbnRUb2dnbGU/RC52ZW5kb3JzLnNlbGVjdGVkTGVnSW50OkQudmVuZG9ycy5zZWxlY3RlZFB1cnBvc2UsdGhpcy51cGRhdGVJYWJQdXJwb3NlRGF0YShlLklhYkdycElkLHQsbykpfSxnbi5wcm90b3R5cGUuaXNBbGxTdWJncm91cHNEaXNhYmxlZD1mdW5jdGlvbihlKXtyZXR1cm4hZS5TdWJHcm91cHMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gVi5pc0dyb3VwQWN0aXZlKGUpfSl9LGduLnByb3RvdHlwZS5pc0FsbFN1Ymdyb3Vwc0VuYWJsZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIWUuU3ViR3JvdXBzLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIFYuSXNHcm91cEluQWN0aXZlKGUpfSl9LGduLnByb3RvdHlwZS50b2dnbGVHcm91cEh0bWxFbGVtZW50PWZ1bmN0aW9uKGUsdCxvKXtfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJJiZfLmxlZ0ludFNldHRpbmdzLlBTaG93TGVnSW50QnRuJiZlLlR5cGU9PT1FLkdyb3VwVHlwZXMuUHVyJiZlLkhhc0xlZ0ludE9wdE91dCYmKGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiW2RhdGEtZWwtaWQ9Iit0KyJdIikpJiZ0aGlzLnVwZGF0ZUxlZ0ludEJ0bkVsZW1lbnQoZSxvKTtlPW0oIiNvdC1ncm91cC1pZC0iK3QpLmVsWzBdO3Yuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLGUsbyksZSYmTy5QQ1Nob3dDb25zZW50TGFiZWxzJiYoZS5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5vdC1sYWJlbC1zdGF0dXMiKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KG8/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCkpfSxnbi5wcm90b3R5cGUudXBkYXRlTGVnSW50QnRuRWxlbWVudD1mdW5jdGlvbihlLHQsbyl7dm9pZCAwPT09byYmKG89IiIpO3ZhciBuPV8ubGVnSW50U2V0dGluZ3Mscj1lLnF1ZXJ5U2VsZWN0b3IoIi5vdC1vYmotbGVnLWJ0bi1oYW5kbGVyIiksZT1lLnF1ZXJ5U2VsZWN0b3IoIi5vdC1yZW1vdmUtb2JqZWN0aW9uLWhhbmRsZXIiKTt0PyhyLmNsYXNzTGlzdC5hZGQoIm90LWluYWN0aXZlLWxlZy1idG4iKSxyLmNsYXNzTGlzdC5hZGQoIm90LWxlZy1pbnQtZW5hYmxlZCIpLHIuY2xhc3NMaXN0LnJlbW92ZSgib3QtYWN0aXZlLWxlZy1idG4iKSxyLmZvY3VzKCkpOihyLmNsYXNzTGlzdC5hZGQoIm90LWFjdGl2ZS1sZWctYnRuIiksci5jbGFzc0xpc3QucmVtb3ZlKCJvdC1pbmFjdGl2ZS1sZWctYnRuIiksci5jbGFzc0xpc3QucmVtb3ZlKCJvdC1sZWctaW50LWVuYWJsZWQiKSksci5xdWVyeVNlbGVjdG9yKCJzcGFuIikuaW5uZXJUZXh0PXQ/bi5QT2JqZWN0TGVnSW50VGV4dDpuLlBPYmplY3Rpb25BcHBsaWVkVGV4dCxvJiZyLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsbysiLCAiKyh0P24uUE9iamVjdExlZ0ludFRleHQ6bi5QT2JqZWN0aW9uQXBwbGllZFRleHQpKSxkKGUsImRpc3BsYXk6ICIrKHQ/Im5vbmUiOiJpbmxpbmUtYmxvY2siKSsiOyIsITApfSxnbi5wcm90b3R5cGUuaXNHcm91cEFjdGl2ZT1mdW5jdGlvbihlKXtlPS0xPF90LmluZGV4T2YoZS5UeXBlKT8tMSE9PXRoaXMuaXNJYWJQdXJwb3NlQWN0aXZlKGUpOi0xIT09Uy5pbkFycmF5KGUuQ3VzdG9tR3JvdXBJZCsiOjEiLFYuZ2V0R3JvdXBWYXJpYWJsZSgpKXx8dGhpcy5pc0dyb3VwRW5hYmxlZEZvckltcGxpY2l0Q29uc2VudChlKTtyZXR1cm4gZX0sZ24ucHJvdG90eXBlLmlzR3JvdXBFbmFibGVkRm9ySW1wbGljaXRDb25zZW50PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmlzSW1wbGljaXRDb25zZW50RGVmYXVsdFN0YXR1cyhlKSYmXy5pc0dyb3VwRXhpc3RJbkltcGxpZWRDb25zZW50YWJsZUdyb3VwKGUpfSxnbi5wcm90b3R5cGUuaXNJbXBsaWNpdENvbnNlbnREZWZhdWx0U3RhdHVzPWZ1bmN0aW9uKGUpe3JldHVybiBlLlN0YXR1cz09PWYuSU5BQ1RJVkVfTEFORElOR19QQUdFJiYhdy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKSYmT28uaXNMYW5kaW5nUGFnZSgpfSxnbi5wcm90b3R5cGUuc2FmZUZvcm1hdHRlZEdyb3VwRGVzY3JpcHRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuR3JvdXBEZXNjcmlwdGlvbj9lLkdyb3VwRGVzY3JpcHRpb24ucmVwbGFjZSgvXHJcbi9nLCI8YnI+Iik6IiJ9LGduLnByb3RvdHlwZS5jYW5JbnNlcnRGb3JHcm91cD1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PSExKTt2YXIgbz1udWxsIT1lJiZ2b2lkIDAhPT1lLG49TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsImdyb3VwcyIpLHI9RC5ncm91cHNDb25zZW50LmpvaW4oIiwiKSxpPUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULCJob3N0cyIpLHM9RC5ob3N0c0NvbnNlbnQuam9pbigiLCIpO2lmKHQpcmV0dXJuITA7bj09PXImJmk9PT1zfHxGcy5lbnN1cmVIdG1sR3JvdXBEYXRhSW5pdGlhbGlzZWQoKTt2YXIgYT1bXTtpZihELnNob3dHZW5lcmFsVmVuZG9ycylmb3IodmFyIGw9MCxjPU9iamVjdC5lbnRyaWVzKEQuZ2VuVmVuZG9yc0NvbnNlbnQpO2w8Yy5sZW5ndGg7bCsrKXt2YXIgZD1jW2xdLHU9ZFswXTthLnB1c2godSsiOiIrKGRbMV0/IjEiOiIwIikpfUQuc2hvd1ZlbmRvclNlcnZpY2UmJkQudnNDb25zZW50LmZvckVhY2goZnVuY3Rpb24oZSx0KXthLnB1c2godCsiOiIrKGU/IjEiOiIwIikpfSk7dD1ELmdyb3Vwc0NvbnNlbnQuY29uY2F0KEQuaG9zdHNDb25zZW50KS5jb25jYXQoYSksbj12LmNvbnRhaW5zKHQsZSsiOjEiKSxyPXRoaXMuZG9lc0hvc3RFeGlzdChlKSxpPXRoaXMuZG9lc0dyb3VwRXhpc3QoZSkscz0hMSxELnNob3dHZW5lcmFsVmVuZG9ycz9zPXRoaXMuZG9lc0dlblZlbmRvckV4aXN0KGUpOkQuc2hvd1ZlbmRvclNlcnZpY2UmJihzPXRoaXMuZG9lc1ZlbmRvclNlcnZpY2VFeGlzdChlKSksdD0hKCFyJiYhcyl8fG4mJkZzLmNhblNvZnRPcHRJbkluc2VydEZvckdyb3VwKGUpO3JldHVybiEoIW98fCEobiYmdHx8IWkmJiFyJiYhcykpfSxnbi5wcm90b3R5cGUuc2V0QWxsb3dBbGxCdXR0b249ZnVuY3Rpb24oKXt2YXIgdD0wLGU9Ty5Hcm91cHMuc29tZShmdW5jdGlvbihlKXtpZigtMT09PU90LmluZGV4T2YoZS5UeXBlKSlyZXR1cm4gVi5Jc0dyb3VwSW5BY3RpdmUoZSkmJnQrKyxlLlN1Ykdyb3Vwcy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBWLklzR3JvdXBJbkFjdGl2ZShlKX0pJiZ0KyssMTw9dH0pLG89aG8uZ2V0QWxsb3dBbGxCdXR0b24oKTtyZXR1cm4gZT9vLnNob3coImlubGluZS1ibG9jayIpOm8uaGlkZSgpLEdvLmxhc3RJdGVtJiZHby5zZXRMYXN0SXRlbSgpLGV9LGduLnByb3RvdHlwZS5pc0FueUdQQ0dyb3VwT3B0ZWRPdXQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9ITEsdD0wLG89Ty5Hcm91cHMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLklzR3BjRW5hYmxlZH0pO3Q8by5sZW5ndGg7dCsrKXt2YXIgbj1vW3RdO2lmKCEwPT09Vi5Jc0dyb3VwSW5BY3RpdmUobikpe2U9ITA7YnJlYWt9fXJldHVybiBlfSxnbi5wcm90b3R5cGUuZ2V0R3JvdXBWYXJpYWJsZT1mdW5jdGlvbigpe3JldHVybiBELmdyb3Vwc0NvbnNlbnR9LGduLnByb3RvdHlwZS5Jc0dyb3VwSW5BY3RpdmU9ZnVuY3Rpb24oZSl7ZT0tMTxfdC5pbmRleE9mKGUuVHlwZSk/LTE9PT10aGlzLmlzSWFiUHVycG9zZUFjdGl2ZShlKTohKC0xPE90LmluZGV4T2YoZS5UeXBlKSkmJi0xPT09Uy5pbkFycmF5KGUuQ3VzdG9tR3JvdXBJZCsiOjEiLFYuZ2V0R3JvdXBWYXJpYWJsZSgpKTtyZXR1cm4gZX0sZ24ucHJvdG90eXBlLnVwZGF0ZUlhYlB1cnBvc2VEYXRhPWZ1bmN0aW9uKHQsZSxvKXt2YXIgbj12LmZpbmRJbmRleChvLGZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCI6IilbMF09PT10fSk7b1stMT09PW4/TnVtYmVyKHQpOm5dPXQrIjoiK2V9LGduLnByb3RvdHlwZS51cGRhdGVJYWJTcGVjaWFsRmVhdHVyZURhdGE9ZnVuY3Rpb24odCxlKXt2YXIgbz0tMT09PShvPXYuZmluZEluZGV4KEQudmVuZG9ycy5zZWxlY3RlZFNwZWNpYWxGZWF0dXJlcyxmdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdCgiOiIpWzBdPT09dH0pKT9OdW1iZXIodCk6bztELnZlbmRvcnMuc2VsZWN0ZWRTcGVjaWFsRmVhdHVyZXNbb109dCsiOiIrZX0sZ24ucHJvdG90eXBlLmdldEdyb3VwRWxlbWVudEJ5T3B0YW5vbkdyb3VwSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfQ2F0ZWdvcnlfR3JwKyIgIitULlBfQ2F0ZWdvcnlfSXRlbSsnW2RhdGEtb3B0YW5vbmdyb3VwaWQ9XG4gICAgICAgICAgICAiJytlKyciXScpfSxnbi5wcm90b3R5cGUudXBkYXRlSGlkZGVuU3ViR3JvdXBEYXRhPWZ1bmN0aW9uKGUsdCl7ZS5TdWJHcm91cHMuZm9yRWFjaChmdW5jdGlvbihlKXtWLnRvZ2dsZUdycFN0YXR1cyhlLHQpLHdvLnRvZ2dsZUdyb3VwSG9zdHMoZSx0KSxELmdlblZlbk9wdE91dEVuYWJsZWQmJndvLnRvZ2dsZUdyb3VwR2VuVmVuZG9ycyhlLHQpfSl9LGduLnByb3RvdHlwZS5pc0lhYlB1cnBvc2VBY3RpdmU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5UeXBlPT09RS5Hcm91cFR5cGVzLlNwbF9GdD9ELnZlbmRvcnMuc2VsZWN0ZWRTcGVjaWFsRmVhdHVyZXM6ZS5Jc0xlZ0ludFRvZ2dsZT9ELnZlbmRvcnMuc2VsZWN0ZWRMZWdJbnQ6RC52ZW5kb3JzLnNlbGVjdGVkUHVycG9zZTtyZXR1cm4gUy5pbkFycmF5KGUuSWFiR3JwSWQrIjp0cnVlIix0KX0sZ24ucHJvdG90eXBlLmRvZXNHcm91cEV4aXN0PWZ1bmN0aW9uKGUpe3JldHVybiEheS5nZXRHcm91cEJ5SWQoZSl9LGduLnByb3RvdHlwZS5kb2VzSG9zdEV4aXN0PWZ1bmN0aW9uKGUpe3ZhciB0PUQuaG9zdHNDb25zZW50O3JldHVybi0xIT09dC5pbmRleE9mKGUrIjowIil8fC0xIT09dC5pbmRleE9mKGUrIjoxIil9LGduLnByb3RvdHlwZS5kb2VzR2VuVmVuZG9yRXhpc3Q9ZnVuY3Rpb24odCl7cmV0dXJuISFPLkdlbmVyYWxWZW5kb3JzJiYhIU8uR2VuZXJhbFZlbmRvcnMuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5WZW5kb3JDdXN0b21JZD09PXR9KX0sZ24ucHJvdG90eXBlLmRvZXNWZW5kb3JTZXJ2aWNlRXhpc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIEQuZ2V0VmVuZG9yc0luRG9tYWluKCkuaGFzKGUpfTt2YXIgVixDbj1nbjtmdW5jdGlvbiBnbigpe312YXIgaG4seW4sZm49IiNvbmV0cnVzdC1iYW5uZXItc2RrIixTbj0iLmJhbm5lcl9sb2dvIixtbj0iI29uZXRydXN0LXBjLXNkayIsdm49IiNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIiLFRuPSIjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyIixQbj0iI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyIixBbj0iI2FjY2VwdC1yZWNvbW1lbmRlZC1idG4taGFuZGxlciIsSW49KGtuLnByb3RvdHlwZS5CYW5uZXJQdXNoRG93bkhhbmRsZXI9ZnVuY3Rpb24oKXt0aGlzLmNoZWNrSXNCcm93c2VySUUxMU9yQmVsb3coKXx8KHluLnB1c2hQYWdlRG93bihmbiksbSh3aW5kb3cpLm9uKCJyZXNpemUiLGZ1bmN0aW9uKCl7Im5vbmUiIT09bShmbikuY3NzKCJkaXNwbGF5IikmJnluLnB1c2hQYWdlRG93bihmbil9KSl9LGtuLnByb3RvdHlwZS5jaGVja0lzQnJvd3NlcklFMTFPckJlbG93PWZ1bmN0aW9uKCl7dmFyIGU9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7cmV0dXJuIDA8ZS5pbmRleE9mKCJNU0lFICIpfHwwPGUuaW5kZXhPZigiVHJpZGVudC8iKX0sa24ucHJvdG90eXBlLmFkZE9UQ3NzUHJvcGVydGllc1RvQm9keT1mdW5jdGlvbihlLHQpe3ZhciBvPXluLmdldENzc0RhdGEoZSx0KTtsLmN1c3RvbWVyU3R5bGVzLnNldChlLG8pLHluLnNldFN0eWxlc09uQm9keSh0KX0sa24ucHJvdG90eXBlLnJlbW92ZUFkZGVkT1RDc3NTdHlsZXM9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9aG4uQmFubmVyKTt2YXIgdD1sLmN1c3RvbWVyU3R5bGVzLmdldChlKTt0Pyh5bi5zZXRTdHlsZXNPbkJvZHkodC5jdXN0b21lckJvZHlDU1MpLHluLnNldFN0eWxlc09uSHRtbCh0LmN1c3RvbWVySHRtbENTUyksbC5jdXN0b21lclN0eWxlcy5kZWxldGUoZSkpOjA8bC5jdXN0b21lclN0eWxlcy5zaXplJiZsLmN1c3RvbWVyU3R5bGVzLmZvckVhY2goZnVuY3Rpb24oZSx0KXtyZXR1cm4geW4ucmVtb3ZlQWRkZWRPVENzc1N0eWxlcyh0KX0pfSxrbi5wcm90b3R5cGUuZ2V0Q3NzRGF0YT1mdW5jdGlvbihlLHQpe3ZhciBvPW0oImJvZHkiKS5lbFswXSxuPW0oImh0bWwiKS5lbFswXSxlPWwuY3VzdG9tZXJTdHlsZXMuZ2V0KGUpO3JldHVybiBlP3RoaXMuZ2V0VXBkYXRlZENzc0RhdGEoZSx0LG8sbik6e3NjcmlwdEJvZHlDU1M6Uih7fSx0KSxjdXN0b21lckJvZHlDU1M6e3RvcDpvLnN0eWxlLnRvcCxwb3NpdGlvbjpvLnN0eWxlLnBvc2l0aW9uLG92ZXJmbG93Om8uc3R5bGUub3ZlcmZsb3d9LGN1c3RvbWVySHRtbENTUzp7b3ZlcmZsb3c6bi5zdHlsZS5vdmVyZmxvd319fSxrbi5wcm90b3R5cGUuZ2V0VXBkYXRlZENzc0RhdGE9ZnVuY3Rpb24oZSx0LG8sbil7dmFyIHI9ZS5zY3JpcHRCb2R5Q1NTLGk9ZS5jdXN0b21lckJvZHlDU1MsZT1lLmN1c3RvbWVySHRtbENTUyxzPXRoaXMubWVyZ2VTY3JpcHRDc3Mocix0KTtyZXR1cm4gdGhpcy51cGRhdGVDdXN0b21lckJvZHlDc3MoaSxyLHQsbyksdGhpcy51cGRhdGVDdXN0b21lckh0bWxDc3MoZSxyLHQsbikse3NjcmlwdEJvZHlDU1M6cyxjdXN0b21lckJvZHlDU1M6aSxjdXN0b21lckh0bWxDU1M6ZX19LGtuLnByb3RvdHlwZS5tZXJnZVNjcmlwdENzcz1mdW5jdGlvbihlLHQpe3ZhciBvPVIoe30sdCk7cmV0dXJuIHZvaWQgMCE9PWUudG9wJiZ2b2lkIDA9PT10LnRvcCYmKG8udG9wPWUudG9wKSx2b2lkIDAhPT1lLnBvc2l0aW9uJiZ2b2lkIDA9PT10LnBvc2l0aW9uJiYoby5wb3NpdGlvbj1lLnBvc2l0aW9uKSx2b2lkIDAhPT1lLm92ZXJmbG93JiZ2b2lkIDA9PT10Lm92ZXJmbG93JiYoby5vdmVyZmxvdz1lLm92ZXJmbG93KSxvfSxrbi5wcm90b3R5cGUudXBkYXRlQ3VzdG9tZXJCb2R5Q3NzPWZ1bmN0aW9uKGUsdCxvLG4pe24uc3R5bGUudG9wIT09dC50b3AmJm4uc3R5bGUudG9wIT09by50b3AmJm4uc3R5bGUudG9wIT09ZS50b3AmJihlLnRvcD1uLnN0eWxlLnRvcCksbi5zdHlsZS5wb3NpdGlvbiE9PXQucG9zaXRpb24mJm4uc3R5bGUucG9zaXRpb24hPT1vLnBvc2l0aW9uJiZuLnN0eWxlLnBvc2l0aW9uIT09ZS5wb3NpdGlvbiYmKGUucG9zaXRpb249bi5zdHlsZS5wb3NpdGlvbiksbi5zdHlsZS5vdmVyZmxvdyE9PXQub3ZlcmZsb3cmJm4uc3R5bGUub3ZlcmZsb3chPT1vLm92ZXJmbG93JiZuLnN0eWxlLm92ZXJmbG93IT09ZS5vdmVyZmxvdyYmKGUub3ZlcmZsb3c9bi5zdHlsZS5vdmVyZmxvdyl9LGtuLnByb3RvdHlwZS51cGRhdGVDdXN0b21lckh0bWxDc3M9ZnVuY3Rpb24oZSx0LG8sbil7bj1uLnN0eWxlLm92ZXJmbG93O24hPT10Lm92ZXJmbG93JiZuIT09by5vdmVyZmxvdyYmbiE9PWUub3ZlcmZsb3cmJihlLm92ZXJmbG93PW4pfSxrbi5wcm90b3R5cGUuc2V0U3R5bGVzT25Cb2R5PWZ1bmN0aW9uKGUpe3ZhciB0PW0oImJvZHkiKS5lbFswXTt5bi5zZXRTdHlsZXNPbkh0bWxFbGVtZW50KHQsZSl9LGtuLnByb3RvdHlwZS5zZXRTdHlsZXNPbkh0bWw9ZnVuY3Rpb24oZSl7dmFyIHQ9bSgiaHRtbCIpLmVsWzBdO3luLnNldFN0eWxlc09uSHRtbEVsZW1lbnQodCx7b3ZlcmZsb3c6ZS5vdmVyZmxvd30pfSxrbi5wcm90b3R5cGUuc2V0U3R5bGVzT25IdG1sRWxlbWVudD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbz0iIixuPTAscj1PYmplY3QuZW50cmllcyh0KTtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXSxzPWlbMF0saT1pWzFdO2k/bys9cysiOiAiK2krIjsiOmUuc3R5bGUucmVtb3ZlUHJvcGVydHkocyl9byYmZChlLG8sITApfSxrbi5wcm90b3R5cGUucHVzaFBhZ2VEb3duPWZ1bmN0aW9uKGUpe3ZhciB0PW0oZSkuaGVpZ2h0KCkrInB4IixlPShtKGUpLnNob3coKS5jc3MoIlxuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtIit0KyI7XG4gICAgICAgICIpLGwuaXNQQ1Zpc2libGU/aG4uUEM6aG4uQmFubmVyKSx0PXtwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDp0fTtsLmlzUENWaXNpYmxlJiYodC5vdmVyZmxvdz0iaGlkZGVuIikseW4uYWRkT1RDc3NQcm9wZXJ0aWVzVG9Cb2R5KGUsdCl9LGtuKTtmdW5jdGlvbiBrbigpe30oT3I9aG49aG58fHt9KS5CYW5uZXI9IkJhbm5lciIsT3IuUEM9IlBDIixFbi5wcm90b3R5cGUuc2hvd0NvbnNlbnROb3RpY2U9ZnVuY3Rpb24oKXtsLnBjQ2xvc2VkRnJvbUNsb3NlQnRuPSExO3ZhciBlPXRoaXMuc2hvdWxkSGlkZURhcmtGaWx0ZXJPbkNvb2tpZVBvbGljeVBhZ2UoKTt0aGlzLnVwZGF0ZURhcmtGaWx0ZXJWaXNpYmlsaXR5KGUpLG0odGhpcy5PTkVUUlVTVF9QQ19TREspLnJlbW92ZUNsYXNzKCJvdC1oaWRlIiksYi5pc1YyVGVtcGxhdGUmJnRoaXMuY2xvc2VQQ1RleHQoITApLHRoaXMuaGFuZGxlUGFuZWxBbmltYXRpb24oKSxiLmZwLldlYkJ1dHRvbkN1c3RvbWlzYXRpb25zfHxWLnNldEFsbG93QWxsQnV0dG9uKCksR28uc2V0UENGb2N1cyhHby5nZXRQQ0VsZW1lbnRzKCkpLHRoaXMuc2hvdWxkQXBwbHlTY3JvbGxMb2NrKGUpJiZ0aGlzLnBjSGFzU2Nyb2xsKCksdGhpcy5oYW5kbGVCb2R5U3R5bGVzRm9yQmFubmVyUHVzaGRvd24oKX0sRW4ucHJvdG90eXBlLmhpZGVDb25zZW50Tm90aWNlVjI9ZnVuY3Rpb24oKXswPT09bSh0aGlzLk9ORVRSVVNUX1BDX1NESykubGVuZ3RoP3RoaXMuc2V0Rm9jdXNPblBhZ2UoKTooYi5pc1YyVGVtcGxhdGUmJnRoaXMuY2xvc2VQQ1RleHQoKSx0aGlzLmhhbmRsZURhcmtGaWx0ZXJPbkhpZGUoKSx0aGlzLmhhbmRsZVBhbmVsU2xpZGVPdXQoKSx0aGlzLmhpZGVQY1dpdGhBbmltYXRpb24oKSx0aGlzLmhhbmRsZURhcmtGaWx0ZXJPbkNvb2tpZVBvbGljeVBhZ2UoKSxsLmlzUENWaXNpYmxlPSExLGwucGNMYXllcj1yZS5CYW5uZXIsdGhpcy5zZXRGb2N1cygpKX0sRW4ucHJvdG90eXBlLnNldEZvY3VzPWZ1bmN0aW9uKCl7dmFyIGU7bC53YXNCYW5uZXJWaXNpYmxlJiYhbC5wY0Nsb3NlZEZyb21DbG9zZUJ0bj8oR28uZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCgpLGwud2FzQmFubmVyVmlzaWJsZT0hMSxsLnBjQ2xvc2VkRnJvbUNsb3NlQnRuPSExKTpsLnBjU291cmNlfHx3LmlzQWxlcnRCb3hDbG9zZWRBbmRWYWxpZCgpP2wucGNTb3VyY2U/KChlPWwucGNTb3VyY2UpLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKXx8IkEiIT09ZS50YWdOYW1lfHxlLmdldEF0dHJpYnV0ZSgiaHJlZiIpfHxlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLGUuZm9jdXMoKSxsLnBjU291cmNlPW51bGwpOnRoaXMuc2V0Rm9jdXNPblBhZ2UoKTooZT1tKCIjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIiKS5lbFswXSkmJmUuZm9jdXMoKX0sRW4ucHJvdG90eXBlLnNob3VsZEhpZGVEYXJrRmlsdGVyT25Db29raWVQb2xpY3lQYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNCYW5uZXJOb3RTaG93bigpJiZoLmlzQ29va2llUG9saWN5UGFnZShPLk1haW5JbmZvVGV4dCl9LEVuLnByb3RvdHlwZS51cGRhdGVEYXJrRmlsdGVyVmlzaWJpbGl0eT1mdW5jdGlvbihlKXt2YXIgdD0hTy5Ob0Jhbm5lcnx8Ty5Gb3JjZUNvbnNlbnQ7IWUmJnQ/bSh0aGlzLk9ORVRSVVNUX1BDX0RBUktfRklMVEVSKS5yZW1vdmVDbGFzcygib3QtaGlkZSIpOm0odGhpcy5PTkVUUlVTVF9QQ19EQVJLX0ZJTFRFUikuYWRkQ2xhc3MoIm90LWhpZGUiKX0sRW4ucHJvdG90eXBlLmhhbmRsZVBhbmVsQW5pbWF0aW9uPWZ1bmN0aW9uKCl7dmFyIGUsdCxvO18ucGNOYW1lPT09bnQmJigoZT1tKHRoaXMuT05FVFJVU1RfUENfU0RLKSkuZWxbMF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJvdC1hbmltYXRlZCIpfHxlLmFkZENsYXNzKCJvdC1hbmltYXRlZCIpLG89Im90LXNsaWRlLWluLSIrKHQ9dGhpcy5nZXRTbGlkZURpcmVjdGlvbigpKSxlLmVsWzBdLmNsYXNzTGlzdC5jb250YWlucyh0PSJvdC1zbGlkZS1vdXQtIit0KSYmZS5yZW1vdmVDbGFzcyh0KSxlLmFkZENsYXNzKG8pKX0sRW4ucHJvdG90eXBlLnNob3VsZEFwcGx5U2Nyb2xsTG9jaz1mdW5jdGlvbihlKXtyZXR1cm4hKE8uTm9CYW5uZXImJk8uU2Nyb2xsQ2xvc2VCYW5uZXJ8fGUpfSxFbi5wcm90b3R5cGUuaGFuZGxlRGFya0ZpbHRlck9uSGlkZT1mdW5jdGlvbigpe08uRm9yY2VDb25zZW50JiYhaC5pc0Nvb2tpZVBvbGljeVBhZ2UoTy5BbGVydE5vdGljZVRleHQpJiYhdy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKSYmTy5TaG93QWxlcnROb3RpY2U/bSh0aGlzLk9ORVRSVVNUX1BDX0RBUktfRklMVEVSKS5jc3MoInotaW5kZXg6IDIxNDc0ODM2NDU7Iikuc2hvdygpOm0odGhpcy5PTkVUUlVTVF9QQ19EQVJLX0ZJTFRFUikuZmFkZU91dCh0aGlzLmdldEFuaW1hdGlvbkR1cmF0aW9uKCkpfSxFbi5wcm90b3R5cGUuaGFuZGxlUGFuZWxTbGlkZU91dD1mdW5jdGlvbigpe3ZhciBlO08uUENMYXlvdXQuUGFuZWwmJihlPXRoaXMuZ2V0U2xpZGVEaXJlY3Rpb24oKSxtKHRoaXMuT05FVFJVU1RfUENfU0RLKS5yZW1vdmVDbGFzcygib3Qtc2xpZGUtaW4tIitlKSxtKHRoaXMuT05FVFJVU1RfUENfU0RLKS5hZGRDbGFzcygib3Qtc2xpZGUtb3V0LSIrZSkpfSxFbi5wcm90b3R5cGUuaGlkZVBjV2l0aEFuaW1hdGlvbj1mdW5jdGlvbigpe20odGhpcy5PTkVUUlVTVF9QQ19TREspLmZhZGVPdXQodGhpcy5nZXRBbmltYXRpb25EdXJhdGlvbigpKX0sRW4ucHJvdG90eXBlLmhhbmRsZURhcmtGaWx0ZXJPbkNvb2tpZVBvbGljeVBhZ2U9ZnVuY3Rpb24oKXt0aGlzLnNob3VsZEhpZGVEYXJrRmlsdGVyT25Db29raWVQb2xpY3lQYWdlKCkmJihtKHRoaXMuT05FVFJVU1RfUENfREFSS19GSUxURVIpLmFkZENsYXNzKCJvdC1oaWRlIikseW4ucmVtb3ZlQWRkZWRPVENzc1N0eWxlcyhobi5QQykpfSxFbi5wcm90b3R5cGUuZ2V0U2xpZGVEaXJlY3Rpb249ZnVuY3Rpb24oKXt2YXIgZT1PLlByZWZlcmVuY2VDZW50ZXJQb3NpdGlvbix0PU8udXNlUlRMO3JldHVybiJyaWdodCI9PT1lP3Q/ImxlZnQiOiJyaWdodCI6dD8icmlnaHQiOiJsZWZ0In0sRW4ucHJvdG90eXBlLmdldEFuaW1hdGlvbkR1cmF0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIE8uUENMYXlvdXQuUGFuZWw/NTAwOjQwMH0sRW4ucHJvdG90eXBlLmhhbmRsZUJvZHlTdHlsZXNGb3JCYW5uZXJQdXNoZG93bj1mdW5jdGlvbigpe18ucGNOYW1lPT09aXQmJl8ucGFnZVB1c2hlZERvd24mJiJ0b3AiPT09Ty5CYW5uZXJQb3NpdGlvbiYmeW4uYWRkT1RDc3NQcm9wZXJ0aWVzVG9Cb2R5KGhuLlBDLHt9KX0sRW4ucHJvdG90eXBlLnNldEZvY3VzT25QYWdlPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uLCBhLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKScpO2wuaXNLZXlib2FyZFVzZXImJmUubGVuZ3RoJiZlWzBdLmZvY3VzKCl9LEVuLnByb3RvdHlwZS5jbG9zZVBDVGV4dD1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT0hMSk7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LXBjLXNkayBzcGFuW2FyaWEtbGl2ZV0iKSxvPU8uQWJvdXRDb29raWVzVGV4dDt0JiYodC5pbm5lclRleHQ9ZT8iIjpvKygiICIrTy5wY0RpYWxvZ0Nsb3NlKSl9LEVuLnByb3RvdHlwZS5wY0hhc1Njcm9sbD1mdW5jdGlvbigpe3RoaXMuYm9keVN0eWxlQ2hhbmdlZD0hMDt2YXIgZT1tKCJib2R5Iik7ZSYmZS5sZW5ndGgmJnluLmFkZE9UQ3NzUHJvcGVydGllc1RvQm9keShobi5QQyx7b3ZlcmZsb3c6ImhpZGRlbiJ9KX0sRW4ucHJvdG90eXBlLmNoZWNrSWZQY1Nka0NvbnRhaW5lckV4aXN0PWZ1bmN0aW9uKCl7cmV0dXJuIW0oIiIrYm4uT05FVFJVU1RfUENfU0RLKS5sZW5ndGh9LEVuLnByb3RvdHlwZS5pc0Jhbm5lck5vdFNob3duPWZ1bmN0aW9uKCl7dmFyIGU9dy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKTtyZXR1cm4hTy5TaG93QWxlcnROb3RpY2V8fGV8fE8uTm9CYW5uZXJ8fGwuaGlkZUJhbm5lcn07dmFyIGJuLExuPUVuO2Z1bmN0aW9uIEVuKCl7dGhpcy5PTkVUUlVTVF9QQ19TREs9IiNvbmV0cnVzdC1wYy1zZGsiLHRoaXMuT05FVFJVU1RfUENfREFSS19GSUxURVI9Ii5vbmV0cnVzdC1wYy1kYXJrLWZpbHRlciIsdGhpcy5ib2R5U3R5bGVDaGFuZ2VkPSExfURuLnByb3RvdHlwZS51cGRhdGVHdG1NYWNyb3M9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9ITApO3ZhciBuPVtdO0QuZ3JvdXBzQ29uc2VudC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSgiOjEiLCIiKSxvPXkuZ2V0R3JwU3RhdHVzKHkuZ2V0R3JvdXBCeUlkKHQpKS50b0xvd2VyQ2FzZSgpPT09Zi5BTFdBWVNfQUNUSVZFO3YuZW5kc1dpdGgoZSwiOjEiKSYmKEZzLmNhblNvZnRPcHRJbkluc2VydEZvckdyb3VwKHQpfHxvKSYmbi5wdXNoKHQpfSksRC5ob3N0c0NvbnNlbnQuZm9yRWFjaChmdW5jdGlvbihlKXt2LmVuZHNXaXRoKGUsIjoxIikmJm4ucHVzaChlLnJlcGxhY2UoIjoxIiwiIikpfSksRC5zaG93R2VuZXJhbFZlbmRvcnMmJk8uR2VuVmVuT3B0T3V0JiZPLkdlbmVyYWxWZW5kb3JzLmZvckVhY2goZnVuY3Rpb24oZSl7IUQuZ2VuVmVuZG9yc0NvbnNlbnRbZS5WZW5kb3JDdXN0b21JZF18fEQuc29mdE9wdEluR2VuVmVuZG9ycy5pbmNsdWRlcyhlLlZlbmRvckN1c3RvbUlkKSYmT28uaXNMYW5kaW5nUGFnZSgpfHxuLnB1c2goZS5WZW5kb3JDdXN0b21JZCl9KTtELnZzSXNBY3RpdmVBbmRPcHRPdXQmJkQuZ2V0VmVuZG9yc0luRG9tYWluKCkuZm9yRWFjaChmdW5jdGlvbihlKXtELnZzQ29uc2VudC5nZXQoZS5DdXN0b21WZW5kb3JTZXJ2aWNlSWQpJiZuLnB1c2goZS5DdXN0b21WZW5kb3JTZXJ2aWNlSWQpfSk7dmFyIHQ9IiwiK3YuYXJyVG9TdHIobikrIiwiLG89dGhpcy5pbmNsdWRlQWxsQWN0aXZlSUFCRGF0YSgpO08uR29vZ2xlQ29uc2VudC5HQ0VuYWJsZSYmIV8ub3REYXRhTGF5ZXIuaWdub3JlJiZ0aGlzLnVwZGF0ZUdDTVRhZ3MoRihuLG8pKSxPLk1DTURhdGEmJk8uTUNNRGF0YS5FbmFibGVkJiYodGhpcy51cGRhdGVNQ01UYWdzKEYobixvKSksdGhpcy51cGRhdGVDbGFyaXR5VGFncyhGKG4sbykpKSx0aGlzLnVwZGF0ZUFDTVRhZ3MoRihuLG8pKSx3aW5kb3cuT25ldHJ1c3RBY3RpdmVHcm91cHM9dCx3aW5kb3cuT3B0YW5vbkFjdGl2ZUdyb3Vwcz10LF8uZ2NtVXBkYXRlQ2FsbGJhY2smJl8uZ2NtVXBkYXRlQ2FsbGJhY2soKSxfLm90RGF0YUxheWVyLmlnbm9yZXx8dm9pZCAwPT09dGhpcy5fd2luZG93W18ub3REYXRhTGF5ZXIubmFtZV18fHRoaXMuX3dpbmRvd1tfLm90RGF0YUxheWVyLm5hbWVdLmNvbnN0cnVjdG9yIT09QXJyYXk/IV8ub3REYXRhTGF5ZXIuaWdub3JlJiZfLm90RGF0YUxheWVyLm5hbWUmJih0aGlzLl93aW5kb3dbXy5vdERhdGFMYXllci5uYW1lXT1be2V2ZW50OiJPbmVUcnVzdExvYWRlZCIsT25ldHJ1c3RBY3RpdmVHcm91cHM6dH0se2V2ZW50OiJPcHRhbm9uTG9hZGVkIixPcHRhbm9uQWN0aXZlR3JvdXBzOnR9XSk6KHRoaXMuX3dpbmRvd1tfLm90RGF0YUxheWVyLm5hbWVdLnB1c2goe2V2ZW50OiJPbmVUcnVzdExvYWRlZCIsT25ldHJ1c3RBY3RpdmVHcm91cHM6dH0pLHRoaXMuX3dpbmRvd1tfLm90RGF0YUxheWVyLm5hbWVdLnB1c2goe2V2ZW50OiJPcHRhbm9uTG9hZGVkIixPcHRhbm9uQWN0aXZlR3JvdXBzOnR9KSksdGhpcy5kaXNwYXRjaEV2ZW50cyhlLG4sdCl9LERuLnByb3RvdHlwZS5pbmNsdWRlQWxsQWN0aXZlSUFCRGF0YT1mdW5jdGlvbigpe3RyeXtmb3IodmFyIG49W10sZT0wLHQ9WyJwdXJwb3NlIiwiZmVhdHVyZXMiLCJzcGVjaWFsRmVhdHVyZXMiLCJzcGVjaWFsUHVycG9zZXMiXTtlPHQubGVuZ3RoO2UrKykobz0+e3ZhciB0LGU9RC5vbmVUcnVzdElBQkNvbnNlbnRbb107InB1cnBvc2UiPT09b3x8InNwZWNpYWxGZWF0dXJlcyI9PT1vP2UuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD0icHVycG9zZSI9PT1vPyJJQUIyVjIiOiJJU0YyVjIiLGU9ZS5zcGxpdCgiOiIpOyJ0cnVlIj09PWVbMV0mJm4ucHVzaCh0KyJfIitlWzBdKX0pOih0PVtdLGUuZm9yRWFjaChmdW5jdGlvbihlKXtlLnZhbHVlJiZ0LnB1c2goZS5ncm91cElkLnRvU3RyaW5nKCkpfSksbj1GKG4sdCkpfSkodFtlXSk7cmV0dXJuIG59Y2F0Y2goZSl7cmV0dXJuW119fSxEbi5wcm90b3R5cGUuZGlzcGF0Y2hFdmVudHM9ZnVuY3Rpb24oZSx0LG8peyFlJiZfLmd0bVVwZGF0ZWRpblN0dWJ8fChuPW5ldyBDdXN0b21FdmVudCgiY29uc2VudC5vbmV0cnVzdCIse2RldGFpbDp0fSkpO3ZhciBuLHIsaT1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCwiZ3JvdXBzIikscz1ELmZpcmVPbmV0cnVzdEdycHx8IWl8fGV8fCFfLmd0bVVwZGF0ZWRpblN0dWI7cyYmKEQuZmlyZU9uZXRydXN0R3JwPSExLCFfLm90RGF0YUxheWVyLmlnbm9yZSYmdGhpcy5fd2luZG93W18ub3REYXRhTGF5ZXIubmFtZV0mJnRoaXMuX3dpbmRvd1tfLm90RGF0YUxheWVyLm5hbWVdLmNvbnN0cnVjdG9yPT09QXJyYXkmJnRoaXMuX3dpbmRvd1tfLm90RGF0YUxheWVyLm5hbWVdLnB1c2goe2V2ZW50OiJPbmVUcnVzdEdyb3Vwc1VwZGF0ZWQiLE9uZXRydXN0QWN0aXZlR3JvdXBzOm99KSxyPW5ldyBDdXN0b21FdmVudCgiT25lVHJ1c3RHcm91cHNVcGRhdGVkIix7ZGV0YWlsOnR9KSksc2V0VGltZW91dChmdW5jdGlvbigpe24mJnMmJndpbmRvdy5kaXNwYXRjaEV2ZW50KG4pLHImJndpbmRvdy5kaXNwYXRjaEV2ZW50KHIpfSl9LERuLnByb3RvdHlwZS5pc0NhdGVnb3J5TWFwcGVkPWZ1bmN0aW9uKGUpe3JldHVybiBlIT09Q3QmJiIiIT09ZX0sRG4ucHJvdG90eXBlLnVwZGF0ZUdDTVRhZ3M9ZnVuY3Rpb24obyl7dmFyIG4scj10aGlzLGk9e30sZT0odGhpcy5jYW5VcGRhdGVHQ01DYXRlZ29yaWVzKCkmJihlPVtbTy5Hb29nbGVDb25zZW50LkdDQWRTdG9yYWdlLEFlLmFkX3N0b3JhZ2VdLFtPLkdvb2dsZUNvbnNlbnQuR0NBbmFseXRpY3NTdG9yYWdlLEFlLmFuYWx5dGljc19zdG9yYWdlXSxbTy5Hb29nbGVDb25zZW50LkdDRnVuY3Rpb25hbGl0eVN0b3JhZ2UsQWUuZnVuY3Rpb25hbGl0eV9zdG9yYWdlXSxbTy5Hb29nbGVDb25zZW50LkdDUGVyc29uYWxpemF0aW9uU3RvcmFnZSxBZS5wZXJzb25hbGl6YXRpb25fc3RvcmFnZV0sW08uR29vZ2xlQ29uc2VudC5HQ1NlY3VyaXR5U3RvcmFnZSxBZS5zZWN1cml0eV9zdG9yYWdlXV0sYi5mcC5Db29raWVWMkdDTURNQSYmKGUucHVzaChbTy5Hb29nbGVDb25zZW50LkdDQWRVc2VyRGF0YSxBZS5hZF91c2VyX2RhdGFdKSxlLnB1c2goW08uR29vZ2xlQ29uc2VudC5HQ0FkUGVyc29uYWxpemF0aW9uLEFlLmFkX3BlcnNvbmFsaXphdGlvbl0pKSxlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ7ci5pc0NhdGVnb3J5TWFwcGVkKGVbMF0pJiYodD1vLmluY2x1ZGVzKGVbMF0pP0llLmdyYW50ZWQ6SWUuZGVuaWVkLGlbZVsxXV09dCl9KSksTC5nZXRDb29raWUoay5BTEVSVF9CT1hfQ0xPU0VEKSksdD1fLmdldFJlZ2lvblJ1bGUoKS5HbG9iYWw7ImZ1bmN0aW9uIiE9dHlwZW9mIHdpbmRvdy5ndGFnJiYobj10aGlzLl93aW5kb3csd2luZG93Lmd0YWc9ZnVuY3Rpb24oZSx0LG8pe18ub3REYXRhTGF5ZXIuaWdub3JlfHwobltfLm90RGF0YUxheWVyLm5hbWVdP25bXy5vdERhdGFMYXllci5uYW1lXS5wdXNoKGFyZ3VtZW50cyk6bltfLm90RGF0YUxheWVyLm5hbWVdPVthcmd1bWVudHNdKX0pLCJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuZ3RhZyYmKF8uZ2NtRGV2SWRTZXR8fCh3aW5kb3cuZ3RhZyhUZS5zZXQsImRldmVsb3Blcl9pZC5kWVdKaE1qIiwhMCksXy5nY21EZXZJZFNldD0hMCksZSkmJih0fHwoaVtBZS5yZWdpb25dPV8uZ2NtQ291bnRyaWVzKSwwIT09T2JqZWN0LmtleXMoaSkubGVuZ3RoKSYmd2luZG93Lmd0YWcoVGUuY29uc2VudCxQZS51cGRhdGUsaSl9LERuLnByb3RvdHlwZS51cGRhdGVNQ01UYWdzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0idWV0cSIsbz17fSxuPTAscj1PYmplY3QuZW50cmllcyhPLk1DTURhdGEuU3RvcmFnZVR5cGVzKTtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXSxzPWlbMF0saT1pWzFdO3RoaXMuaXNDYXRlZ29yeU1hcHBlZChpKSYmKGk9ZS5pbmNsdWRlcyhpKT9JZS5ncmFudGVkOkllLmRlbmllZCxvW3NdPWkpfXRoaXMuX3dpbmRvd1t0XT10aGlzLl93aW5kb3dbdF18fFtdLHRoaXMuX3dpbmRvd1t0XS5wdXNoKCJjb25zZW50IiwidXBkYXRlIixvKX0sRG4ucHJvdG90eXBlLnVwZGF0ZUNsYXJpdHlUYWdzPWZ1bmN0aW9uKGUpe3ZhciB0PSJjbGFyaXR5IixvPXt9O3RyeXtpZihPLk1DTURhdGEmJk8uTUNNRGF0YS5FbmFibGVkKXtmb3IodmFyIG4scj1PLk1DTURhdGEuU3RvcmFnZVR5cGVzfHx7fSxpPTAscz1PYmplY3QuZW50cmllcyhyKTtpPHMubGVuZ3RoO2krKyl7dmFyIGEsbD1zW2ldLGM9bFswXSxkPWxbMV07dGhpcy5pc0NhdGVnb3J5TWFwcGVkKGQpJiYoYT1lLmluY2x1ZGVzKGQpP0llLmdyYW50ZWQ6SWUuZGVuaWVkLG9bImFuYWx5dGljc19zdG9yYWdlIj09PWM/ImFuYWx5dGljc19TdG9yYWdlIjoiYWRfc3RvcmFnZSI9PT1jPyJhZF9TdG9yYWdlIjpjXT1hKX0iZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5fd2luZG93W3RdJiYoKG49dGhpcy5fd2luZG93KVt0XT1mdW5jdGlvbigpeyhuW3RdLnE9blt0XS5xfHxbXSkucHVzaChhcmd1bWVudHMpfSksT2JqZWN0LmtleXMobykubGVuZ3RoJiZ0aGlzLl93aW5kb3dbdF0oImNvbnNlbnR2MiIsbyl9fWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHVwZGF0aW5nIENsYXJpdHkgdGFnczoiLGUpfX0sRG4ucHJvdG90eXBlLnVwZGF0ZUFDTVRhZ3M9ZnVuY3Rpb24oZSl7dmFyIHQsbztPLkFDTURhdGEmJk8uQUNNRGF0YS5FbmFibGVkJiYoKG89e30pLmNvdW50cnlDb2RlPW51bGw9PSh0PUQudXNlckxvY2F0aW9uKT92b2lkIDA6dC5jb3VudHJ5LHRoaXMuc2V0Q29uc2VudE9uTW9kZShvLFR0LGUpLHRoaXMuc2V0Q29uc2VudE9uTW9kZShvLHZ0LGUpLHRoaXMucG9sbEZvckFtYXpvbkNvbnNlbnQobykpfSxEbi5wcm90b3R5cGUucG9sbEZvckFtYXpvbkNvbnNlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxvPTAsbj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe28rKzt0cnl7dC5fd2luZG93LmFtem5Db25zZW50JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5fd2luZG93LmFtem5Db25zZW50Pyh0Ll93aW5kb3cuYW16bkNvbnNlbnQoKS5zZXRDb3VudHJ5Q29kZShlLmNvdW50cnlDb2RlKS5zZXRFbmFibGVBZFN0b3JhZ2UoZVt2dF0pLnNldEVuYWJsZVVzZXJEYXRhKGVbVHRdKS5idWlsZCgpLGNsZWFySW50ZXJ2YWwobikpOjUwPD1vJiYoY2xlYXJJbnRlcnZhbChuKSxjb25zb2xlLndhcm4oIk9uZVRydXN0OiBBbWF6b24gQ29uc2VudCBKUyBub3QgYXZhaWxhYmxlIGFmdGVyIHRpbWVvdXQuIEFDTSBjb25zZW50IG5vdCBzZXQuIikpfWNhdGNoKGUpe2NsZWFySW50ZXJ2YWwobiksY29uc29sZS53YXJuKCJPbmVUcnVzdDogRXJyb3Igc2V0dGluZyBBbWF6b24gQ29uc2VudC4gQUNNIGNvbnNlbnQgbm90IHNldC4iLGUpfX0sMTAwKX0sRG4ucHJvdG90eXBlLnNldENvbnNlbnRPbk1vZGU9ZnVuY3Rpb24oZSx0LG8pe3ZhciBuPU8uQUNNRGF0YS5TdG9yYWdlVHlwZXNbdF0sbz0hKCF0aGlzLmlzQ2F0ZWdvcnlNYXBwZWQobil8fCFvLmluY2x1ZGVzKG4pKTtlW3RdPW99LERuLnByb3RvdHlwZS5jYW5VcGRhdGVHQ01DYXRlZ29yaWVzPWZ1bmN0aW9uKCl7cmV0dXJuIE8uR29vZ2xlQ29uc2VudC5HQ0FkU3RvcmFnZSE9PUN0fHxPLkdvb2dsZUNvbnNlbnQuR0NBbmFseXRpY3NTdG9yYWdlIT09Q3R8fE8uR29vZ2xlQ29uc2VudC5HQ0Z1bmN0aW9uYWxpdHlTdG9yYWdlIT09Q3R8fE8uR29vZ2xlQ29uc2VudC5HQ1BlcnNvbmFsaXphdGlvblN0b3JhZ2UhPT1DdHx8Ty5Hb29nbGVDb25zZW50LkdDU2VjdXJpdHlTdG9yYWdlIT09Q3R8fE8uR29vZ2xlQ29uc2VudC5HQ0FkVXNlckRhdGEhPT1DdHx8Ty5Hb29nbGVDb25zZW50LkdDQWRQZXJzb25hbGl6YXRpb24hPT1DdH0sRG4ucHJvdG90eXBlLmNoZWNrQW5kV2FybkdDTUNvbmZpZz1mdW5jdGlvbigpe3ZhciBlPTAsdD0wLG89MCxuPTA7aWYoTy5Hb29nbGVDb25zZW50LkdDRW5hYmxlJiYhXy5vdERhdGFMYXllci5pZ25vcmUpe2Zvcih2YXIgcj10aGlzLl93aW5kb3dbXy5vdERhdGFMYXllci5uYW1lXSxpPTAscz1PYmplY3Qua2V5cyhyKTtpPHMubGVuZ3RoO2krKyl7dmFyIGE9c1tpXTtuKyssdGhpcy5pc09iamVjdFR5cGVBcmdzKHJbYV0pJiYoImNvbnNlbnQiPT09clthXVswXSYmImRlZmF1bHQiPT09clthXVsxXT90PW46ImNvbnNlbnQiPT09clthXVswXSYmInVwZGF0ZSI9PT1yW2FdWzFdP289bjowPT09ZSYmImNvbmZpZyI9PT1yW2FdWzBdJiZ0aGlzLmlzR29vZ2xlVGFnKHJbYV1bMV0pJiYoZT1uKSl9dGhpcy5hZGRHQ01Db25maWdTdGF0dXMoZSx0LG8pfX0sRG4ucHJvdG90eXBlLmFkZEdDTUNvbmZpZ1N0YXR1cz1mdW5jdGlvbihlLHQsbyl7MCE9PWUmJihlPHQ/Y29uc29sZS53YXJuKCJHb29nbGUgQ29uc2VudCBtb2RlIGRlZmF1bHQgdmFsdWUgaXMgc2V0IGFmdGVyIHRoZSBHb29nbGUgdGFncyB3ZXJlIGxvYWRlZC4iKTowPT09dD9jb25zb2xlLndhcm4oIkdvb2dsZSBDb25zZW50IG1vZGUgZGVmYXVsdCBvciBjb25zZW50IHZhbHVlIGhhcyBub3QgYmVlbiBzZXQgYnV0IHRoZSBHb29nbGUgdGFncyB3ZXJlIGxvYWRlZC4iKToodDxlfHxvPGUpJiZjb25zb2xlLmluZm8oIkdvb2dsZSBDb25zZW50IG1vZGUgaXMgcHJvcGVybHkgY29uZmlndXJlZC4iKSl9LERuLnByb3RvdHlwZS5pc0dvb2dsZVRhZz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmKC0xPGUuaW5kZXhPZigiR1QtIil8fC0xPGUuaW5kZXhPZigiRy0iKXx8LTE8ZS5pbmRleE9mKCJBVy0iKSl9LERuLnByb3RvdHlwZS5pc09iamVjdFR5cGVBcmdzPWZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEFyZ3VtZW50c10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpfTt2YXIgX24sT249RG47ZnVuY3Rpb24gRG4oKXt0aGlzLl93aW5kb3c9d2luZG93fVZuLnByb3RvdHlwZS51cGRhdGVGaWx0ZXJTZWxlY3Rpb249ZnVuY3Rpb24oZSl7bz0oZT12b2lkIDA9PT1lPyExOmUpPyh0PUQuZmlsdGVyQnlDYXRlZ29yaWVzLCJkYXRhLW9wdGFub25ncm91cGlkIik6KHQ9RC5maWx0ZXJCeUlBQkNhdGVnb3JpZXMsImRhdGEtcHVycG9zZWlkIik7Zm9yKHZhciB0LG8sbj1tKCIjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1maWx0ZXItaGFuZGxlciIpLmVsLHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGk9bltyXS5nZXRBdHRyaWJ1dGUobyksaT0tMTx0LmluZGV4T2YoaSk7di5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwsbltyXSxpKX19LFZuLnByb3RvdHlwZS5jYW5jZWxIb3N0RmlsdGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPW0oIiNvbmV0cnVzdC1wYy1zZGsgLmNhdGVnb3J5LWZpbHRlci1oYW5kbGVyIikuZWwsdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgbz1lW3RdLmdldEF0dHJpYnV0ZSgiZGF0YS1vcHRhbm9uZ3JvdXBpZCIpLG89MDw9RC5maWx0ZXJCeUNhdGVnb3JpZXMuaW5kZXhPZihvKTt2LnNldENoZWNrZWRBdHRyaWJ1dGUobnVsbCxlW3RdLG8pfX0sVm4ucHJvdG90eXBlLnVwZGF0ZUhvc3RGaWx0ZXJMaXN0PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPW0oIiNvbmV0cnVzdC1wYy1zZGsgLmNhdGVnb3J5LWZpbHRlci1oYW5kbGVyIikuZWwsdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgbyxuPWVbdF0uZ2V0QXR0cmlidXRlKCJkYXRhLW9wdGFub25ncm91cGlkIik7ZVt0XS5jaGVja2VkJiZELmZpbHRlckJ5Q2F0ZWdvcmllcy5pbmRleE9mKG4pPDA/RC5maWx0ZXJCeUNhdGVnb3JpZXMucHVzaChuKTohZVt0XS5jaGVja2VkJiYtMTxELmZpbHRlckJ5Q2F0ZWdvcmllcy5pbmRleE9mKG4pJiYobz1ELmZpbHRlckJ5Q2F0ZWdvcmllcyxELmZpbHRlckJ5Q2F0ZWdvcmllcy5zcGxpY2Uoby5pbmRleE9mKG4pLDEpKX1yZXR1cm4gRC5maWx0ZXJCeUNhdGVnb3JpZXN9LFZuLnByb3RvdHlwZS5Jbml0aWFsaXplSG9zdExpc3Q9ZnVuY3Rpb24oKXt2YXIgZT1ULlBfVmVuZG9yX0xpc3QrIiAiK1QuUF9Ib3N0X0NudHIrIiBsaSI7RC5ob3N0cy5ob3N0VGVtcGxhdGU9bShlKS5lbFswXS5jbG9uZU5vZGUoITApLEQuaG9zdHMuaG9zdENvb2tpZVRlbXBsYXRlPW0oVC5QX1ZlbmRvcl9MaXN0KyIgIitULlBfSG9zdF9DbnRyKyIgIitULlBfSG9zdF9PcHQrIiBsaSIpLmVsWzBdLmNsb25lTm9kZSghMCl9LFZuLnByb3RvdHlwZS5nZXRDb29raWVzRm9yR3JvdXA9ZnVuY3Rpb24odCl7dmFyIG89W10sbj1bXTtyZXR1cm4gdC5GaXJzdFBhcnR5Q29va2llcy5sZW5ndGgmJnQuRmlyc3RQYXJ0eUNvb2tpZXMuZm9yRWFjaChmdW5jdGlvbihlKXtuLnB1c2goUihSKHt9LGUpLHtncm91cE5hbWU6dC5Hcm91cE5hbWV9KSl9KSx0Lkhvc3RzLmxlbmd0aCYmdC5Ib3N0cy5mb3JFYWNoKGZ1bmN0aW9uKGUpe28ucHVzaChSKFIoe30sZSkse2lzQWN0aXZlOiJhbHdheXMgYWN0aXZlIj09PXkuZ2V0R3JwU3RhdHVzKHQpLnRvTG93ZXJDYXNlKCksZ3JvdXBOYW1lOnQuR3JvdXBOYW1lLFR5cGU6Q2UuSG9zdH0pKX0pLHtmaXJzdFBhcnR5Q29va2llc0xpc3Q6bix0aGlyZFBhcnR5Q29va2llc0xpc3Q6b319LFZuLnByb3RvdHlwZS5yZWFjdGl2YXRlU3JjVGFnPWZ1bmN0aW9uKGUpe3ZhciB0PVsic3JjIl07ZS5zZXRBdHRyaWJ1dGUodFswXSxlLmdldEF0dHJpYnV0ZSgiZGF0YS0iK3RbMF0pKSxlLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1zcmMiKX0sVm4ucHJvdG90eXBlLnJlYWN0aXZhdGVTY3JpcHRUYWc9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlLnRhZ05hbWUpLG49KG8uaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChTLmdldElubmVySHRtbENvbnRlbnQoZS5pbm5lckhUTUwpKSxlLmF0dHJpYnV0ZXMpO2lmKDA8bi5sZW5ndGgpZm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspInR5cGUiIT09bltyXS5uYW1lP28uc2V0QXR0cmlidXRlKG5bcl0ubmFtZSxuW3JdLnZhbHVlLCEwKTpvLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIsITApO3QuYXBwZW5kQ2hpbGQobyksdC5yZW1vdmVDaGlsZChlKX0sVm4ucHJvdG90eXBlLnJlYWN0aXZhdGVUYWc9ZnVuY3Rpb24oZSx0KXt2YXIgbyxuPTA8PWUuY2xhc3NOYW1lLmluZGV4T2YoIm90LXZzY2F0Iikscj0wPD1lLmNsYXNzTmFtZS5pbmRleE9mKCJvcHRhbm9uLWNhdGVnb3J5IiksaT0obiYmcj9vPXRoaXMuZ2V0R3JvdXBFbGVtZW50cyhlLmNsYXNzTmFtZSxELnNob3dWZW5kb3JTZXJ2aWNlKTpuP0Quc2hvd1ZlbmRvclNlcnZpY2U/bz10aGlzLmdldEdyb3VwRWxlbWVudHMoZS5jbGFzc05hbWUsITApOnRoaXMudW5CbG9ja1RhZyh0LGUpOnImJihELnNob3dWZW5kb3JTZXJ2aWNlP3RoaXMudW5CbG9ja1RhZyh0LGUpOm89dGhpcy5nZXRHcm91cEVsZW1lbnRzKGUuY2xhc3NOYW1lLCExKSksITApO2lmKG8mJjA8by5sZW5ndGgpe2Zvcih2YXIgcz0wO3M8by5sZW5ndGg7cysrKWlmKCFWLmNhbkluc2VydEZvckdyb3VwKG9bc10udHJpbSgpKSl7aT0hMTticmVha31pJiZ0aGlzLnVuQmxvY2tUYWcodCxlKX19LFZuLnByb3RvdHlwZS51bkJsb2NrVGFnPWZ1bmN0aW9uKGUsdCl7ZT90aGlzLnJlYWN0aXZhdGVTcmNUYWcodCk6dGhpcy5yZWFjdGl2YXRlU2NyaXB0VGFnKHQpfSxWbi5wcm90b3R5cGUuZ2V0R3JvdXBFbGVtZW50cz1mdW5jdGlvbihlLHQpe3JldHVybiB0P251bGw9PSh0PWUubWF0Y2goL290LXZzY2F0KC1bYS16QS1aMC05LF0rKSsvKSk/dm9pZCAwOnRbMF0uc3BsaXQoL290LXZzY2F0LS9pKVsxXS5zcGxpdCgiLSIpOm51bGw9PSh0PWUubWF0Y2goL29wdGFub24tY2F0ZWdvcnkoLVthLXpBLVowLTksXSspKy8pKT92b2lkIDA6dFswXS5zcGxpdCgvb3B0YW5vbi1jYXRlZ29yeS0vaSlbMV0uc3BsaXQoIi0iKX0sVm4ucHJvdG90eXBlLnN1YnN0aXR1dGVQbGFpblRleHRTY3JpcHRUYWdzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVtdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc2NyaXB0W2NsYXNzKj0ib3B0YW5vbi1jYXRlZ29yeSJdJykpLG89W10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcqW2NsYXNzKj0ib3B0YW5vbi1jYXRlZ29yeSJdJykpLGU9QXJyYXkuZnJvbShuZXcgU2V0KGUuY29uY2F0KFtdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc2NyaXB0W2NsYXNzKj0ib3QtdnNjYXQiXScpfHxbXSkpKSksbz1BcnJheS5mcm9tKG5ldyBTZXQoby5jb25jYXQoW10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcqW2NsYXNzKj0ib3QtdnNjYXQiXScpfHxbXSkpKSk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvLGZ1bmN0aW9uKGUpeyJTQ1JJUFQiIT09ZS50YWdOYW1lJiZlLmhhc0F0dHJpYnV0ZSgiZGF0YS1zcmMiKSYmdC5yZWFjdGl2YXRlVGFnKGUsITApfSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLGZ1bmN0aW9uKGUpe2UuaGFzQXR0cmlidXRlKCJ0eXBlIikmJiJ0ZXh0L3BsYWluIj09PWUuZ2V0QXR0cmlidXRlKCJ0eXBlIikmJnQucmVhY3RpdmF0ZVRhZyhlLCExKX0pfTt2YXIgTm4sd249Vm47ZnVuY3Rpb24gVm4oKXt9dmFyIEJuLEduPSJCYW5uZXIiLHhuPSJQcmVmZXJlbmNlIENlbnRlciIsSG49IkFQSSIsUm49IkNsb3NlIixGbj0iQWxsb3cgQWxsIixNbj0iUmVqZWN0IEFsbCIsVW49IkNvbmZpcm0iLHFuPSJDb25maXJtIixqbj0iQ29udGludWUgd2l0aG91dCBBY2NlcHRpbmciLEtuPSh6bi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3RoaXMuaW5zZXJ0SHRtbCgpLHRoaXMuaW5zZXJ0Q3NzKCksdGhpcy5zaG93TnR5KCksdGhpcy5pbml0SGFuZGxlcigpfSx6bi5wcm90b3R5cGUuZ2V0Q29udGVudD1mdW5jdGlvbigpe3JldHVybiBQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7cmV0dXJuWzIsanQuZ2V0U3luY050ZnlDb250ZW50KCkudGhlbihmdW5jdGlvbihlKXtsLnN5bmNOdGZ5R3JwPXtuYW1lOmUubmFtZSxodG1sOmF0b2IoZS5odG1sKSxjc3M6ZS5jc3N9fSldfSl9KX0sem4ucHJvdG90eXBlLmluc2VydEh0bWw9ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUh0bWwoKTtmdW5jdGlvbiBlKGUpe3JldHVybiB0LnF1ZXJ5U2VsZWN0b3IoZSl9dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbz0obShvKS5odG1sKGwuc3luY050ZnlHcnAuaHRtbCksby5xdWVyeVNlbGVjdG9yKHRoaXMuRWwpKSxuPShPLkJhbm5lclJlbGF0aXZlRm9udFNpemVzVG9nZ2xlJiZtKG8pLmFkZENsYXNzKCJvdFJlbEZvbnQiKSxPLnVzZVJUTCYmbShvKS5hdHRyKCJkaXIiLCJydGwiKSxtKHQpLmFwcGVuZChvKSxPLk50ZnlDb25maWcpLG49KHRoaXMuaW5pdEh0bWwoIlN5bmMiLG4uU3luYyxlLHQucXVlcnlTZWxlY3Rvcih0aGlzLkVsKSksbi5TaG93Q1M/bShlKCIub3QtcGMtaGFuZGxlciIpKS5odG1sKG4uQ1NUeHQpOihtKG8pLmFkZENsYXNzKCJvdC1oaWRlLWNzYnRuIiksZSgiLm90LXN5bmMtYnRuY250ciIpLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoZSgiLm90LXN5bmMtYnRuY250ciIpKSksZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpO20obikuYXBwZW5kKHQpLG0oIiNvbmV0cnVzdC1jb25zZW50LXNkayIpLmFwcGVuZChuLmZpcnN0Q2hpbGQpfSx6bi5wcm90b3R5cGUuaW5pdEhhbmRsZXI9ZnVuY3Rpb24oKXttKHRoaXMuRWwrIiAub3Qtc3luYy1jbG9zZS1oYW5kbGVyIikub24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCbi5jbG9zZSgpfSl9LHpuLnByb3RvdHlwZS5zaG93TnR5PWZ1bmN0aW9uKCl7dmFyIGU9bSh0aGlzLkVsKTtlLmNzcygiYm90dG9tOiAtMzAwcHg7IiksZS5hbmltYXRlKHtib3R0b206IjFlbTsifSwxZTMpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmNzcygiYm90dG9tOiAxcmVtOyIpfSwxZTMpLGUuZm9jdXMoKX0sem4ucHJvdG90eXBlLmNoYW5nZVN0YXRlPWZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe0JuLnJlZnJlc2hTdGF0ZSgpfSwxNTAwKX0sem4ucHJvdG90eXBlLnJlZnJlc2hTdGF0ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIHQucXVlcnlTZWxlY3RvcihlKX12YXIgdD1tKHRoaXMuRWwpLmVsWzBdLG89KHQuY2xhc3NMaXN0LmFkZCgib3QtbnR5LWNvbXBsZXRlIiksdC5jbGFzc0xpc3QucmVtb3ZlKCJvdC1udHktc3luYyIpLE8uTnRmeUNvbmZpZyk7dGhpcy5pbml0SHRtbCgiQ29tcGxldGUiLG8uQ29tcGxldGUsZSx0KSxvLlNob3dDUyYmKCJMSU5LIj09PW8uQ1NUeXBlJiZtKGUoIi5vdC1wYy1oYW5kbGVyIikpLmFkZENsYXNzKCJvdC1wYy1saW5rIiksbSgiLm90LXN5bmMtYnRuY250ciIpLnNob3coImlubGluZS1ibG9jayIpLHRoaXMuYWxpZ25Db250ZW50KCksbSh3aW5kb3cpLm9uKCJyZXNpemUiLGZ1bmN0aW9uKCl7cmV0dXJuIEJuLnJlc2l6ZUV2ZW50fSkpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtCbi5jbG9zZSgpfSwxZTMqTy5OdGZ5Q29uZmlnLk50ZnlEdXJhdGlvbil9LHpuLnByb3RvdHlwZS5pbnNlcnRDc3M9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25ldHJ1c3Qtc3R5bGUiKTtlLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoZS5pbm5lckhUTUwrbC5zeW5jTnRmeUdycC5jc3MpLGUuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChlLmlubmVySFRNTCt0aGlzLmFkZEN1c3RvbVN0eWxlcygpKX0sem4ucHJvdG90eXBlLmFkZEN1c3RvbVN0eWxlcz1mdW5jdGlvbigpe3ZhciBlPU8uTnRmeUNvbmZpZyx0PWUuU3luYyxvPWUuQ29tcGxldGUsbj1lLkNTQnV0dG9uLHI9ZS5DU0xpbms7cmV0dXJuIlxuICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI290LXN5bmMtbnRmeS5vdC1udHktc3luYyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiK3QuQmdDb2xvcisiO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIit0LkJkckNvbG9yKyI7XG4gICAgICAgIH1cbiAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvdC1zeW5jLW50ZnkgLm90LXN5bmMtcmVmcmVzaD5nIHtcbiAgICAgICAgICAgIGZpbGw6ICIrdC5JY29uQmdDb2xvcisiO1xuICAgICAgICB9XG4gICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb3Qtc3luYy1udGZ5Lm90LW50eS1zeW5jICNvdC1zeW5jLXRpdGxlIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICIrdC5UaXRsZUFsaWduKyI7XG4gICAgICAgICAgICBjb2xvcjogIit0LlRpdGxlQ29sb3IrIjtcbiAgICAgICAgfVxuICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI290LXN5bmMtbnRmeS5vdC1udHktc3luYyAub3Qtc3luYy1kZXNjICB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAiK3QuRGVzY0FsaWduKyI7XG4gICAgICAgICAgICBjb2xvcjogIit0LkRlc2NDb2xvcisiO1xuICAgICAgICB9XG4gICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb3Qtc3luYy1udGZ5Lm90LW50eS1jb21wbGV0ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiK28uQmdDb2xvcisiO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIitvLkJkckNvbG9yKyI7XG4gICAgICAgIH1cbiAgICAgICAgI29uZXRydXN0LWNvbnNlbnQtc2RrICNvdC1zeW5jLW50ZnkgLm90LXN5bmMtY2hlY2s+ZyB7XG4gICAgICAgICAgICBmaWxsOiAiK28uSWNvbkJnQ29sb3IrIjtcbiAgICAgICAgfVxuICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI290LXN5bmMtbnRmeS5vdC1udHktY29tcGxldGUgI290LXN5bmMtdGl0bGUge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogIitvLlRpdGxlQWxpZ24rIjtcbiAgICAgICAgICAgIGNvbG9yOiAiK28uVGl0bGVDb2xvcisiO1xuICAgICAgICB9XG4gICAgICAgICNvbmV0cnVzdC1jb25zZW50LXNkayAjb3Qtc3luYy1udGZ5Lm90LW50eS1jb21wbGV0ZSAub3Qtc3luYy1kZXNjICB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAiK28uRGVzY0FsaWduKyI7XG4gICAgICAgICAgICBjb2xvcjogIitvLkRlc2NDb2xvcisiO1xuICAgICAgICB9XG4gICAgICAgICIrKCJCVVRUT04iPT09ZS5DU1R5cGU/IlxuICAgICAgICAjb25ldHJ1c3QtY29uc2VudC1zZGsgI290LXN5bmMtbnRmeSAub3QtcGMtaGFuZGxlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiK24uQmdDb2xvcisiO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIituLkJkckNvbG9yKyI7XG4gICAgICAgICAgICBjb2xvcjogIituLkNvbG9yKyI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAiK24uQWxpZ24rIjtcbiAgICAgICAgfSI6IiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI290LXN5bmMtbnRmeSAub3QtcGMtaGFuZGxlci5vdC1wYy1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAiK3IuQ29sb3IrIjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICIrci5BbGlnbisiO1xuICAgICAgICB9IikrIlxuICAgICAgICAifSx6bi5wcm90b3R5cGUuaW5pdEh0bWw9ZnVuY3Rpb24oZSx0LG8sbil7dmFyIHI9IkNvbXBsZXRlIj09PWU/Ii5vdC1zeW5jLXJlZnJlc2giOiIub3Qtc3luYy1jaGVjayI7dC5TaG93SWNvbj8obShvKCJTeW5jIj09PWU/Ii5vdC1zeW5jLXJlZnJlc2giOiIub3Qtc3luYy1jaGVjayIpKS5zaG93KCksbShvKHIpKS5oaWRlKCksbShvKCIub3Qtc3luYy1pY29uIikpLnNob3coImlubGluZS1ibG9jayIpLG4uY2xhc3NMaXN0LnJlbW92ZSgib3QtaGlkZS1pY29uIikpOihtKG8oIi5vdC1zeW5jLWljb24iKSkuaGlkZSgpLG4uY2xhc3NMaXN0LmFkZCgib3QtaGlkZS1pY29uIikpLHQuVGl0bGU/bShvKCIjb3Qtc3luYy10aXRsZSIpKS5odG1sKHQuVGl0bGUpOm0obygiI290LXN5bmMtdGl0bGUiKSkuaGlkZSgpLHQuRGVzYz9tKG8oIi5vdC1zeW5jLWRlc2MiKSkuaHRtbCh0LkRlc2MpOm0obygiLm90LXN5bmMtZGVzYyIpKS5oaWRlKCksdC5TaG93Q2xvc2U/KG0obygiLm90LXN5bmMtY2xvc2UtaGFuZGxlciIpKS5zaG93KCJpbmxpbmUtYmxvY2siKSxtKG8oIi5vdC1jbG9zZS1pY29uIikpLmF0dHIoImFyaWEtbGFiZWwiLHQuQ2xvc2VBcmlhKSxuLmNsYXNzTGlzdC5yZW1vdmUoIm90LWhpZGUtY2xvc2UiKSk6KG0obygiLm90LXN5bmMtY2xvc2UtaGFuZGxlciIpKS5oaWRlKCksbi5jbGFzc0xpc3QuYWRkKCJvdC1oaWRlLWNsb3NlIikpfSx6bi5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXt0aGlzLmhpZGVTeW5jTnRmeSgpLGgucmVzZXRGb2N1c1RvQm9keSgpfSx6bi5wcm90b3R5cGUuaGlkZVN5bmNOdGZ5PWZ1bmN0aW9uKCl7Ty5OdGZ5Q29uZmlnLlNob3dDUyYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsQm4ucmVzaXplRXZlbnQpLG0oIiNvdC1zeW5jLW50ZnkiKS5mYWRlT3V0KDQwMCl9LHpuLnByb3RvdHlwZS5yZW1vdmVIdG1sPWZ1bmN0aW9uKCl7dmFyIGU9bSh0aGlzLkVsKS5lbDtlJiZ2LnJlbW92ZUNoaWxkKGUpfSx6bi5wcm90b3R5cGUuYWxpZ25Db250ZW50PWZ1bmN0aW9uKCl7bSgiLm90LXN5bmMtYnRuY250ciIpLmVsWzBdLmNsaWVudEhlaWdodD5tKCIub3Qtc3luYy10aXRsZWNudHIiKS5lbFswXS5jbGllbnRIZWlnaHQmJihtKCIub3Qtc3luYy10aXRsZWNudHIiKS5hZGRDbGFzcygib3QtcG9zLWFicyIpLG0oIi5vdC1zeW5jLWJ0bmNudHIiKS5hZGRDbGFzcygib3QtcG9zLXJlbCIpKX0sem4ucHJvdG90eXBlLnJlc2l6ZUV2ZW50PWZ1bmN0aW9uKCl7d2luZG93LmlubmVyV2lkdGg8PTg5NiYmQm4uYWxpZ25Db250ZW50KCl9LHpuKTtmdW5jdGlvbiB6bigpe3RoaXMuRWw9IiNvdC1zeW5jLW50ZnkifUpuLnByb3RvdHlwZS50b2dnbGVWZW5kb3JDb25zZW50PWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dCYmKHQ9bnVsbCksKGU9KGU9dm9pZCAwPT09ZT9bXTplKS5sZW5ndGg/ZTpsLm9uZVRydXN0SUFCQ29uc2VudC52ZW5kb3JzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBlPWUuc3BsaXQoIjoiKSx0PWVbMF0sZT1lWzFdLHQ9bShULlBfVmVuZG9yX0NvbnRhaW5lcisiIC4iK1QuUF9WZW5fQ3RnbCsnIFt2ZW5kb3JpZD0iJyt0KyciXScpLmVsWzBdO3QmJnYuc2V0Q2hlY2tlZEF0dHJpYnV0ZSgiIix0LCJ0cnVlIj09PWUpfSk7dmFyIG8sbj1tKCIjb25ldHJ1c3QtcGMtc2RrICNzZWxlY3QtYWxsLXZlbmRvci1ncm91cHMtaGFuZGxlciIpLmVsWzBdO24mJihvPXYuZ2V0QWN0aXZlSWRBcnJheSh2LmRpc3RpbmN0QXJyYXkoZSkpLCh0PW51bGw9PT10P28ubGVuZ3RoPT09ZS5sZW5ndGg6dCl8fDA9PT1vLmxlbmd0aD9uLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShIdC5QX0xpbmVfVGhyb3VnaCk6bi5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoSHQuUF9MaW5lX1Rocm91Z2gpLHYuc2V0Q2hlY2tlZEF0dHJpYnV0ZSgiIixuLHQpKX0sSm4ucHJvdG90eXBlLnRvZ2dsZVZlbmRvckxpPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dCYmKHQ9bnVsbCksKGU9KGU9dm9pZCAwPT09ZT9bXTplKS5sZW5ndGg/ZTpsLm9uZVRydXN0SUFCQ29uc2VudC5sZWdJbnRWZW5kb3JzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBlPWUuc3BsaXQoIjoiKSx0PWVbMF0sZT1lWzFdLHQ9bShULlBfVmVuZG9yX0NvbnRhaW5lcisiIC4iK1QuUF9WZW5fTHRnbCsnIFtsZWctdmVuZG9yaWQ9IicrdCsnIl0nKS5lbFswXTt0JiZ2LnNldENoZWNrZWRBdHRyaWJ1dGUoIiIsdCwidHJ1ZSI9PT1lKX0pO3ZhciBvLG49bSgiI29uZXRydXN0LXBjLXNkayAjc2VsZWN0LWFsbC12ZW5kb3ItbGVnLWhhbmRsZXIiKS5lbFswXTtuJiYobz12LmdldEFjdGl2ZUlkQXJyYXkodi5kaXN0aW5jdEFycmF5KGUpKSwodD1udWxsPT09dD9vLmxlbmd0aD09PWUubGVuZ3RoOnQpfHwwPT09by5sZW5ndGg/bi5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoSHQuUF9MaW5lX1Rocm91Z2gpOm4ucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKEh0LlBfTGluZV9UaHJvdWdoKSx2LnNldENoZWNrZWRBdHRyaWJ1dGUoIiIsbix0KSl9LEpuLnByb3RvdHlwZS51cGRhdGVWZW5kb3JMZWdCdG5zPWZ1bmN0aW9uKGUpeyhlPShlPXZvaWQgMD09PWU/W106ZSkubGVuZ3RoP2U6bC5vbmVUcnVzdElBQkNvbnNlbnQubGVnSW50VmVuZG9ycykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgZT1lLnNwbGl0KCI6IiksdD1lWzBdLGU9ZVsxXSx0PW0oVC5QX1ZlbmRvcl9Db250YWluZXIrJyAub3QtbGVnLWJ0bi1jb250YWluZXJbZGF0YS1ncm91cC1pZD0iJyt0KyciXScpLmVsWzBdO3QmJlYudXBkYXRlTGVnSW50QnRuRWxlbWVudCh0LCJ0cnVlIj09PWUpfSl9O3ZhciBXbixZbj1KbjtmdW5jdGlvbiBKbigpe31mdW5jdGlvbiBYbigpe3JldHVybighXy5pc0lhYjJvcnYyVGVtcGxhdGUmJk8uUENUZW1wbGF0ZVVwZ3JhZGUmJk8uUENDYXRlZ29yeVN0eWxlPT09U2UuVG9nZ2xlP04udG9nZ2xlRWw6Ti5jaGtib3hFbCkuY2xvbmVOb2RlKCEwKX1abi5wcm90b3R5cGUuc2V0SHRtbFRlbXBsYXRlPWZ1bmN0aW9uKGUpe0Iuc2V0SW50ZXJuYWxEYXRhKCksQi5yb290SHRtbD1lLEIuY2xvbmVIdG1sRWxlbWVudHMoKX0sWm4ucHJvdG90eXBlLmdldFZlbmRvckxpc3RFbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj0oby5jbGFzc0xpc3QuYWRkKCJvdC12cy1saXN0IiksTy5WZW5kb3JTZXJ2aWNlQ29uZmlnLlBDVlNFeHBhbmRHcm91cCk7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlLHQpe2U9Qi5jcmVhdGVWZW5kb3IoZS5ncm91cFJlZixlLG4sIm90LXZzLWxzdC1pZC0iK3QpO28uYXBwZW5kQ2hpbGQoZSl9KSx0LmFwcGVuZENoaWxkKG8pLHR9LFpuLnByb3RvdHlwZS5pbnNlcnRWZW5kb3JTZXJ2aWNlSHRtbD1mdW5jdGlvbihlLHQpe3ZhciBvO0IuY2hlY2tJZklzSW52YWxpZChlLHQpfHwobz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksQi5zZXRWZW5kb3JDb250YWluZXIobyxlKSxCLnNldFZlbmRvckxpc3QobyxlKSxlLlN1Ykdyb3VwcyYmMDxlLlN1Ykdyb3Vwcy5sZW5ndGg/KG8ucXVlcnlTZWxlY3Rvcih0aGlzLk1BSU5fQ09OVF9FTEUpLmNsYXNzTGlzdC5hZGQoIm90LXZuZC1zdWJncnAtY250IiksZT10LmNoaWxkcmVuWzFdLF8ucGNOYW1lPT09aXQmJihlPXQuY2hpbGRyZW5bMl0pLHQuaW5zZXJ0QmVmb3JlKG8sZSkpOnQuYXBwZW5kQ2hpbGQobykpfSxabi5wcm90b3R5cGUudG9nZ2xlVmVuZG9yU2VydmljZT1mdW5jdGlvbihlLHQsbyxuKXtlPXkuZ2V0R3JvdXBCeUlkKGUpLHQ9eS5nZXRWU0J5SWQodCk7bj1ufHxCLmdldFZlbmRvcklucHV0RWxlbWVudCh0LkN1c3RvbVZlbmRvclNlcnZpY2VJZCksQi5zZXRWZW5kb3JTZXJ2aWNlU3RhdGUobix0LG8pLG8/Qi5jaGFuZ2VHcm91cFN0YXRlKGUsbyxCLmlzVG9nZ2xlKTpCLmNoZWNrR3JvdXBDaGlsZHJlblN0YXRlKGUpfHxCLmNoYW5nZUdyb3VwU3RhdGUoZSwhMSxCLmlzVG9nZ2xlKX0sWm4ucHJvdG90eXBlLnNldFZlbmRvclN0YXRlQnlHcm91cD1mdW5jdGlvbihlLHQpe2U9ZS5WZW5kb3JTZXJ2aWNlcztpZihsLnNob3dWZW5kb3JTZXJ2aWNlJiZlKWZvcih2YXIgbz0wLG49ZTtvPG4ubGVuZ3RoO28rKyl7dmFyIHI9bltvXSxpPUIuZ2V0VmVuZG9ySW5wdXRFbGVtZW50KHIuQ3VzdG9tVmVuZG9yU2VydmljZUlkKTtCLnNldFZlbmRvclNlcnZpY2VTdGF0ZShpLHIsdCl9fSxabi5wcm90b3R5cGUucmVzZXRWZW5kb3JVSVN0YXRlPWZ1bmN0aW9uKGUpe2UuZm9yRWFjaChmdW5jdGlvbihlLHQpe3Q9Qi5nZXRWZW5kb3JJbnB1dEVsZW1lbnQodCk7Qi5jaGFuZ2VWZW5kb3JTZXJ2aWNlVUlTdGF0ZSh0LGUpfSl9LFpuLnByb3RvdHlwZS5zZXRWZW5kb3JTZXJ2aWNlU3RhdGU9ZnVuY3Rpb24oZSx0LG8pe0IuY2hhbmdlVmVuZG9yU2VydmljZVN0YXRlKHQsbyksQi5jaGFuZ2VWZW5kb3JTZXJ2aWNlVUlTdGF0ZShlLG8pO2U9bz9jbjpkbjtUby50cmlnZ2VyR29vZ2xlQW5hbHl0aWNzRXZlbnQoeG8sZSx0LlNlcnZpY2VOYW1lKyI6ICIrdC5DdXN0b21WZW5kb3JTZXJ2aWNlSWQpfSxabi5wcm90b3R5cGUucmVtb3ZlVlNVSVRlbXBsYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PWUucXVlcnlTZWxlY3Rvcih0aGlzLk1BSU5fQ09OVF9FTEUpO3QmJmUucmVtb3ZlQ2hpbGQodCl9LFpuLnByb3RvdHlwZS5jb25zZW50QWxsPWZ1bmN0aW9uKG8pe2wuZ2V0VmVuZG9yc0luRG9tYWluKCkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1vO298fCh0PXkuaXNBbHdheXNBY3RpdmVHcm91cChlLmdyb3VwUmVmKSksQi50b2dnbGVWZW5kb3JTZXJ2aWNlKGUuZ3JvdXBSZWYuQ3VzdG9tR3JvdXBJZCxlLkN1c3RvbVZlbmRvclNlcnZpY2VJZCx0fHxvKX0pfSxabi5wcm90b3R5cGUuY2xvbmVIdG1sRWxlbWVudHM9ZnVuY3Rpb24oKXt2YXIgZSx0LG8sbixyPUIucm9vdEh0bWwucXVlcnlTZWxlY3Rvcih0aGlzLk1BSU5fQ09OVF9FTEUpO3ImJihlPXIucXVlcnlTZWxlY3RvcigiLm90LXZuZC1zZXJ2LWhkci1jbnRyIiksbj0obz0odD1yLnF1ZXJ5U2VsZWN0b3IoIi5vdC12bmQtbHN0LWNvbnQiKSkucXVlcnlTZWxlY3RvcigiLm90LXZuZC1pdGVtIikpLnF1ZXJ5U2VsZWN0b3IoIi5vdC12bmQtaW5mbyIpLEIudmVuZG9yTGFiZWxDb250YWluZXJDbG9uZT1lLmNsb25lTm9kZSghMCksci5yZW1vdmVDaGlsZChlKSxCLnZlbmRvckluZm9DbG9uZT1uLmNsb25lTm9kZSghMCksby5xdWVyeVNlbGVjdG9yKCIub3Qtdm5kLWluZm8tY250ciIpLnJlbW92ZUNoaWxkKG4pLEIudmVuZG9ySXRlbUNsb25lPW8uY2xvbmVOb2RlKCEwKSx0LnJlbW92ZUNoaWxkKG8pLEIudmVuZG9yTGlzdENvbnRhaW5lckNsb25lPXQuY2xvbmVOb2RlKCEwKSxyLnJlbW92ZUNoaWxkKHQpLEIudmVuZG9yU2Vydk1haW5Db250YWluZXJDbG9uZT1yLmNsb25lTm9kZSghMCksQi5yb290SHRtbC5yZW1vdmVDaGlsZChyKSl9LFpuLnByb3RvdHlwZS5zZXRJbnRlcm5hbERhdGE9ZnVuY3Rpb24oKXtCLmlzVG9nZ2xlPU8uUENDYXRlZ29yeVN0eWxlPT09U2UuVG9nZ2xlO3ZhciBlPU8uVmVuZG9yU2VydmljZUNvbmZpZztCLnN0cmluZ1RyYW5zbGF0aW9uPW5ldyBNYXAsQi5zdHJpbmdUcmFuc2xhdGlvbi5zZXQoIlNlcnZpY2VOYW1lIixlLlBDVlNOYW1lVGV4dHx8IlNlcnZpY2VOYW1lIiksQi5zdHJpbmdUcmFuc2xhdGlvbi5zZXQoIlBhcmVudENvbXBhbnkiLGUuUENWU1BhcmVudENvbXBhbnlUZXh0fHwiUGFyZW50Q29tcGFueSIpLEIuc3RyaW5nVHJhbnNsYXRpb24uc2V0KCJBZGRyZXNzIixlLlBDVlNBZGRyZXNzVGV4dHx8IkFkZHJlc3MiKSxCLnN0cmluZ1RyYW5zbGF0aW9uLnNldCgiRGVmYXVsdENhdGVnb3J5TmFtZSIsZS5QQ1ZTRGVmYXVsdENhdGVnb3J5VGV4dHx8IkRlZmF1bHRDYXRlZ29yeU5hbWUiKSxCLnN0cmluZ1RyYW5zbGF0aW9uLnNldCgiRGVzY3JpcHRpb24iLGUuUENWU0RlZmF1bHREZXNjcmlwdGlvblRleHR8fCJEZXNjcmlwdGlvbiIpLEIuc3RyaW5nVHJhbnNsYXRpb24uc2V0KCJEUE9FbWFpbCIsZS5QQ1ZTRFBPRW1haWxUZXh0fHwiRFBPRW1haWwiKSxCLnN0cmluZ1RyYW5zbGF0aW9uLnNldCgiRFBPTGluayIsZS5QQ1ZTRFBPTGlua1RleHR8fCJEUE9MaW5rIiksQi5zdHJpbmdUcmFuc2xhdGlvbi5zZXQoIlByaXZhY3lQb2xpY3lMaW5rIixlLlBDVlNQcml2YWN5UG9saWN5TGlua1RleHR8fCJQcml2YWN5UG9saWN5TGluayIpLEIuc3RyaW5nVHJhbnNsYXRpb24uc2V0KCJDb29raWVQb2xpY3lMaW5rIixlLlBDVlNDb29raWVQb2xpY3lMaW5rVGV4dHx8IkNvb2tpZVBvbGljeUxpbmsiKSxCLnN0cmluZ1RyYW5zbGF0aW9uLnNldCgiT3B0T3V0TGluayIsZS5QQ1ZTT3B0T3V0TGlua1RleHR8fCJPcHRPdXRMaW5rIiksQi5zdHJpbmdUcmFuc2xhdGlvbi5zZXQoIkxlZ2FsQmFzaXMiLGUuUENWU0xlZ2FsQmFzaXNUZXh0fHwiTGVnYWxCYXNpcyIpfSxabi5wcm90b3R5cGUuc2V0VmVuZG9yQ29udGFpbmVyPWZ1bmN0aW9uKGUsdCl7dmFyIG89Qi52ZW5kb3JTZXJ2TWFpbkNvbnRhaW5lckNsb25lLmNsb25lTm9kZSghMCksdD0oby5zZXRBdHRyaWJ1dGUoImRhdGEtZ3JvdXAtaWQiLHQuQ3VzdG9tR3JvdXBJZCksQi52ZW5kb3JMYWJlbENvbnRhaW5lckNsb25lLmNsb25lTm9kZSghMCkpO3QucXVlcnlTZWxlY3RvcigiLm90LXZuZC1zZXJ2LWhkciIpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoTy5WZW5kb3JTZXJ2aWNlQ29uZmlnLlBDVlNMaXN0VGl0bGUpLG8uYXBwZW5kQ2hpbGQodCksZS5hcHBlbmRDaGlsZChvKX0sWm4ucHJvdG90eXBlLnNldFZlbmRvckxpc3Q9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG89MCxuPUIuZ2V0VlNGcm9tR3JvdXBBbmRTdWJncm91cHModCkscj1uLmxlbmd0aCxlPWUucXVlcnlTZWxlY3Rvcih0aGlzLk1BSU5fQ09OVF9FTEUpLGk9Qi52ZW5kb3JMaXN0Q29udGFpbmVyQ2xvbmUuY2xvbmVOb2RlKCkscz1PLlZlbmRvclNlcnZpY2VDb25maWcuUENWU0V4cGFuZENhdGVnb3J5O288cjtvKyspe3ZhciBhPUIuY3JlYXRlVmVuZG9yKHQsbltvXSxzKTtpLmFwcGVuZENoaWxkKGEpfWUuYXBwZW5kQ2hpbGQoaSl9LFpuLnByb3RvdHlwZS5nZXRWU0Zyb21Hcm91cEFuZFN1Ymdyb3Vwcz1mdW5jdGlvbihlLHQpe3ZhciBvLG49bnVsbCE9KG89ZS5WZW5kb3JTZXJ2aWNlcyk/bzpbXTtpZih0PXZvaWQgMD09PXQ/ITE6dClmb3IodmFyIHI9MCxpPW51bGwhPShvPWUuU3ViR3JvdXBzKT9vOltdO3I8aS5sZW5ndGg7cisrKXt2YXIgcz1udWxsIT0ocz1pW3JdLlZlbmRvclNlcnZpY2VzKT9zOltdO24ucHVzaC5hcHBseShuLHMpfXJldHVybiBufSxabi5wcm90b3R5cGUuY3JlYXRlVmVuZG9yPWZ1bmN0aW9uKGUsdCxvLG4pe3ZhciByPUIudmVuZG9ySXRlbUNsb25lLmNsb25lTm9kZSghMCksaT0oci5zZXRBdHRyaWJ1dGUoImRhdGEtdm5kLWlkIix0LkN1c3RvbVZlbmRvclNlcnZpY2VJZCksTy5QQ0FjY29yZGlvblN0eWxlPT09YWUuTm9BY2NvcmRpb24/KHIuY2xhc3NMaXN0LnJlbW92ZSgib3QtYWNjb3JkaW9uLWxheW91dCIpLChpPXIucXVlcnlTZWxlY3RvcigiYnV0dG9uIikpJiZyLnJlbW92ZUNoaWxkKGkpKTpCLnNldEV4cGFuZFZlbmRvckxpc3QocixvKSxCLnNldFZlbmRvckhlYWRlcihlLHQscixuKSxyLnF1ZXJ5U2VsZWN0b3IoIi5vdC12bmQtaW5mby1jbnRyIikpO3JldHVybiBCLnNldFZlbmRvckluZm8oaSx0KSxyfSxabi5wcm90b3R5cGUuc2V0RXhwYW5kVmVuZG9yTGlzdD1mdW5jdGlvbihlLHQpe2UucXVlcnlTZWxlY3RvcigiYnV0dG9uIikuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiIit0KX0sWm4ucHJvdG90eXBlLnNldFZlbmRvckhlYWRlcj1mdW5jdGlvbihlLHQsbyxuKXt2YXIgcj1PLlBDU2hvd0Fsd2F5c0FjdGl2ZVRvZ2dsZSxpPSJhbHdheXMgYWN0aXZlIj09PXkuZ2V0R3JwU3RhdHVzKGUpLnRvTG93ZXJDYXNlKCksbz1vLnF1ZXJ5U2VsZWN0b3IoIi5vdC1hY2MtaGRyIikscz0oaSYmby5jbGFzc0xpc3QuYWRkKCJvdC1hbHdheXMtYWN0aXZlLWdyb3VwIiksbnVsbCksZT0oaSYmTy5QQ0NhdGVnb3J5U3R5bGU9PT1TZS5Ub2dnbGV8fChzPUIuc2V0SGVhZGVySW5wdXRTdHlsZShlLHQsaSxuKSksQi5zZXRIZWFkZXJUZXh0KHQsbykpLG49KG8uYXBwZW5kQ2hpbGQoZSksQi5nZXRQb3NpdGlvbkZvckVsZW1lbnQoTy5QQ0FjY29yZGlvblN0eWxlLEIuaXNUb2dnbGUpKSx0PW4ucG9zaXRpb25JY29uO3MmJm8uaW5zZXJ0QWRqYWNlbnRFbGVtZW50KG4ucG9zaXRpb25JbnB1dCxzKSxpJiZyJiYoZT1CLmdldEFsd2F5c0FjdGl2ZUVsZW1lbnQoKSxvLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlZW5kIixlKSksTy5QQ0FjY29yZGlvblN0eWxlIT09YWUuTm9BY2NvcmRpb24mJihuPUIuc2V0SGVhZGVyQWNjb3JkaW9uSWNvbigpLG8uaW5zZXJ0QWRqYWNlbnRFbGVtZW50KHQsbikpfSxabi5wcm90b3R5cGUuZ2V0UG9zaXRpb25Gb3JFbGVtZW50PWZ1bmN0aW9uKGUsdCl7dmFyIG89ImJlZm9yZWVuZCIsbj0iYmVmb3JlZW5kIjtyZXR1cm57cG9zaXRpb25JY29uOm89dCYmZT09PWFlLlBsdXNNaW51cz8iYWZ0ZXJiZWdpbiI6byxwb3NpdGlvbklucHV0Om49dD9uOiJhZnRlcmJlZ2luIn19LFpuLnByb3RvdHlwZS5zZXRIZWFkZXJBY2NvcmRpb25JY29uPWZ1bmN0aW9uKCl7dmFyIGU9KE8uUENBY2NvcmRpb25TdHlsZT09PWFlLkNhcmV0P04uYXJyb3dFbDpOLnBsdXNNaW51c0VsKS5jbG9uZU5vZGUoITApO3JldHVybiBlfSxabi5wcm90b3R5cGUuc2V0SGVhZGVyVGV4dD1mdW5jdGlvbihlLHQpe3ZhciBvPXQucXVlcnlTZWxlY3RvcigiLm90LWNhdC1oZWFkZXIiKSxuPW8uY2xvbmVOb2RlKCk7cmV0dXJuIHQucmVtb3ZlQ2hpbGQobyksbi5pbm5lclRleHQ9ZS5TZXJ2aWNlTmFtZSxufSxabi5wcm90b3R5cGUuc2V0SGVhZGVySW5wdXRTdHlsZT1mdW5jdGlvbihlLHQsbyxuKXt2YXIgcixpLHMsYTtyZXR1cm4gTy5WZW5kb3JTZXJ2aWNlQ29uZmlnLlBDVlNPcHRPdXQ/KGU9eS5jaGVja0lzQWN0aXZlQnlEZWZhdWx0KGUpLHI9ITEscj0oaT1sLnZzQ29uc2VudCkuaGFzKHQuQ3VzdG9tVmVuZG9yU2VydmljZUlkKT9pLmdldCh0LkN1c3RvbVZlbmRvclNlcnZpY2VJZCk6ZSwoaT1YbigpKS5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmNsYXNzTGlzdC5hZGQoImNhdGVnb3J5LXN3aXRjaC1oYW5kbGVyIiksZT1pLnF1ZXJ5U2VsZWN0b3IoImlucHV0IiksYT10LkN1c3RvbVZlbmRvclNlcnZpY2VJZCxuPW51bGwhPW4/bjoib3QtdmVuZG9yLWlkLSIrYSxzPSJvdC12ZW5kb3ItaGVhZGVyLWlkLSIrYSxtKGUpLmF0dHIoImlkIixuKSxtKGUpLmF0dHIoIm5hbWUiLG4pLG0oZSkuYXR0cigiYXJpYS1sYWJlbGxlZGJ5IixzKSxtKGUpLmRhdGEoIm90LXZzLWlkIixhKSxtKGUpLmRhdGEoIm9wdGFub25ncm91cGlkIix0Lmdyb3VwUmVmLkN1c3RvbUdyb3VwSWQpLG8mJmUuc2V0QXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpLHYuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLGUsciksYT1CLmlzVG9nZ2xlP246cyxtKGkucXVlcnlTZWxlY3RvcigibGFiZWwiKSkuYXR0cigiZm9yIixhKSxtKGkucXVlcnlTZWxlY3RvcigiLm90LWxhYmVsLXR4dCIpKS5odG1sKHQuU2VydmljZU5hbWUpLGkpOm51bGx9LFpuLnByb3RvdHlwZS5nZXRBbHdheXNBY3RpdmVFbGVtZW50PWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGUuY2xhc3NMaXN0LmFkZCgib3QtYWx3YXlzLWFjdGl2ZSIpLGUuaW5uZXJUZXh0PU8uQWx3YXlzQWN0aXZlVGV4dCxlfSxabi5wcm90b3R5cGUuc2V0VmVuZG9ySW5mbz1mdW5jdGlvbihlLHQpe3ZhciBvLG4scixpLHMsYSxsLGM9WyJEUE9MaW5rIiwiUHJpdmFjeVBvbGljeUxpbmsiLCJDb29raWVQb2xpY3lMaW5rIiwiT3B0T3V0TGluayJdO2ZvcihvIGluIHQpQi5za2lwVmVuZG9ySW5mb0tleShvLHQpfHwobj10W29dLChyPUIudmVuZG9ySW5mb0Nsb25lLmNsb25lTm9kZSghMCkpLmRhdGFzZXQudm5kSW5mb0tleT1vKyItIit0LkN1c3RvbVZlbmRvclNlcnZpY2VJZCxpPXIucXVlcnlTZWxlY3RvcigiLm90LXZuZC1sYmwiKSxzPXIucXVlcnlTZWxlY3RvcigiLm90LXZuZC1jbnQiKSxpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoQi5nZXRMb2NhbGl6ZWRTdHJpbmcobykpLGMuaW5jbHVkZXMobyk/KHMucmVtb3ZlKCksYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksbShhKS5hdHRyKCJocmVmIixuKSxtKGEpLmF0dHIoInRhcmdldCIsIl9ibGFuayIpLG0oYSkuYXR0cigicmVsIiwibm9vcGVuZXIiKSxtKGEpLmF0dHIoImFyaWEtbGFiZWwiLG4rIiAiK08uTmV3V2luVHh0KSxhLmNsYXNzTGlzdC5hZGQoIm90LXZuZC1jbnQiKSxhLmlubmVyVGV4dD1uLGIuZnAuQ01QSWNvblNwcml0ZSYmTy5CYW5uZXJSZXF1aXJlRXh0ZXJuYWxMaW5rcz8oKGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmFwcGVuZENoaWxkKGEpLGkuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIsbCkpOmkuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIsYSkpOnMuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChuKSxlLmFwcGVuZENoaWxkKHIpKX0sWm4ucHJvdG90eXBlLnNraXBWZW5kb3JJbmZvS2V5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIlZlbmRvclNlcnZpY2VJZCI9PT1lfHwiRGVmYXVsdENhdGVnb3J5SWQiPT09ZXx8IlNlcnZpY2VOYW1lIj09PWV8fCJncm91cFJlZiI9PT1lfHwiQ3VzdG9tVmVuZG9yU2VydmljZUlkIj09PWV8fCJQdXJwb3NlSWQiPT09ZXx8IXRbZV19LFpuLnByb3RvdHlwZS5nZXRMb2NhbGl6ZWRTdHJpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuIEIuc3RyaW5nVHJhbnNsYXRpb24uaGFzKGUpP0Iuc3RyaW5nVHJhbnNsYXRpb24uZ2V0KGUpOiJERUZBVUxUIn0sWm4ucHJvdG90eXBlLmNoZWNrR3JvdXBDaGlsZHJlblN0YXRlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxvPTAsbj1udWxsIT0odD1lLlN1Ykdyb3Vwcyk/dDpbXTtvPG4ubGVuZ3RoO28rKyl7dmFyIHI9bltvXTtpZihCLmNoZWNrR3JvdXBDaGlsZHJlblN0YXRlKHIpKXJldHVybiEwfWZvcih2YXIgaT0wLHM9bnVsbCE9KHQ9ZS5WZW5kb3JTZXJ2aWNlcyk/dDpbXTtpPHMubGVuZ3RoO2krKyl7dmFyIGE9c1tpXTtpZihsLnZzQ29uc2VudC5nZXQoYS5DdXN0b21WZW5kb3JTZXJ2aWNlSWQpKXJldHVybiEwfXJldHVybiExfSxabi5wcm90b3R5cGUuY2hhbmdlVmVuZG9yU2VydmljZVN0YXRlPWZ1bmN0aW9uKGUsdCl7bC52c0NvbnNlbnQuc2V0KGUuQ3VzdG9tVmVuZG9yU2VydmljZUlkLHQpfSxabi5wcm90b3R5cGUuY2hhbmdlVmVuZG9yU2VydmljZVVJU3RhdGU9ZnVuY3Rpb24oZSx0KXtlJiZ2LnNldENoZWNrZWRBdHRyaWJ1dGUobnVsbCxlLHQpfSxabi5wcm90b3R5cGUuY2hhbmdlR3JvdXBTdGF0ZT1mdW5jdGlvbihlLHQsbyl7dmFyIG49eS5nZXRQYXJlbnRCeUdycChlKTtWLnRvZ2dsZUdycFN0YXR1cyhlLHQpLEIudXBkYXRlR3JvdXBVSVN0YXRlKGUuQ3VzdG9tR3JvdXBJZCx0LG8sbnVsbCE9PW4pLG4mJihlPUIuY2hlY2tHcm91cENoaWxkcmVuU3RhdGUobiksQi5jaGFuZ2VHcm91cFN0YXRlKG4sZSxvKSl9LFpuLnByb3RvdHlwZS51cGRhdGVHcm91cFVJU3RhdGU9ZnVuY3Rpb24oZSx0LG8sbil7dm9pZCAwPT09biYmKG49ITEpO249ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigobj8iI290LXN1Yi1ncm91cC1pZC0iOiIjb3QtZ3JvdXAtaWQtIikrZSk7biYmdi5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwsbix0KX0sWm4ucHJvdG90eXBlLmdldFZlbmRvcklucHV0RWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm90LXZlbmRvci1pZC0iK2UpfSxabi5wcm90b3R5cGUuY2hlY2tJZklzSW52YWxpZD1mdW5jdGlvbihlLHQpe3JldHVybiFlfHwhZS5WZW5kb3JTZXJ2aWNlc3x8IXR8fGUuVmVuZG9yU2VydmljZXMubGVuZ3RoPD0wfTt2YXIgQixRbj1abjtmdW5jdGlvbiBabigpe3RoaXMuTUFJTl9DT05UX0VMRT0iLm90LXZuZC1zZXJ2In1mdW5jdGlvbiAkbihlLHQpe3ZhciBvLG4scj0ib3RHZW5lcmljQmFja2Ryb3AiLGk9IiMiK3Iscz0ib3QtZ2VuZXJpYy1tb2RhbC1sYXllciI7ZnVuY3Rpb24gYShlKXtlPyhtKGkpLnJlbW92ZUNsYXNzKCJvdC1oaWRlIiksbShpKS5lbFswXS5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIikpOihtKGkpLmZhZGVPdXQoNDAwKSxtKGkpLmFkZENsYXNzKCJvdC1oaWRlIikpfXJldHVybihvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5jbGFzc0xpc3QuYWRkKHMpLChuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5zZXRBdHRyaWJ1dGUoImlkIixyKSxuLmNsYXNzTGlzdC5hZGQoIm9uZXRydXN0LXBjLWRhcmstZmlsdGVyIiksby5hcHBlbmRDaGlsZChuKSwocj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuY2xhc3NMaXN0LmFkZCgib3QtZ2VuZXJhbC1tb2RhbCIpLHIuc2V0QXR0cmlidXRlKCJpZCIsbnVsbCE9ZT9lOiJnZW5lcmljTW9kYWwiKSxvLmFwcGVuZENoaWxkKHIpLG49IiNvbmV0cnVzdC1jb25zZW50LXNkayAub3QtZ2VuZXJhbC1tb2RhbCB7IGJhY2tncm91bmQtY29sb3I6ICIrTy5wY0JhY2tncm91bmRDb2xvcisiO30iLChlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmV0cnVzdC1zdHlsZSIpKS50ZXh0Q29udGVudD1lLnRleHRDb250ZW50K24se2RpYWxvZ0xheWVySHRtbDpvLG1vZGFsSHRtbDpyLGNsb3NlTW9kYWxIYW5kbGVyOmZ1bmN0aW9uKCl7YSghMSk7dmFyIGU9dC5xdWVyeVNlbGVjdG9yKCIuIitzKTt0LnJlbW92ZUNoaWxkKGUpfSxvcGVuTW9kYWxIYW5kbGVyOmZ1bmN0aW9uKCl7YSghMCl9fX10ci5nZXRJbnN0YW5jZT1mdW5jdGlvbigpe3JldHVybiB0ci5pbnN0YW5jZT10ci5pbnN0YW5jZT90ci5pbnN0YW5jZTpuZXcgdHJ9LHRyLnByb3RvdHlwZS5nZXRIZWFsdGhTaWduYXR1cmVVSUlmTmVlZGVkPWZ1bmN0aW9uKGUpe2lmKCh2b2lkIDA9PT1lJiYoZT0hMSksXy5yZXF1aXJlU2lnbmF0dXJlRW5hYmxlZCkmJih0aGlzLmhlYWx0aFNpZ25hdHVyZUdyb3VwPU8uR3JvdXBzLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmVlZHNIZWFsdGhTaWduYXR1cmV9KSx0aGlzLmhlYWx0aFNpZ25hdHVyZUdyb3VwKSlpZihfLmhlYWx0aFNpZ25hdHVyZUdyb3VwfHxlKWlmKF8uaGVhbHRoU2lnbmF0dXJlRGF0YSl0aGlzLnNldFNpZ25IZWFsdGhEYXRhSW50b0Nvb2tpZUdyb3VwKF8uaGVhbHRoU2lnbmF0dXJlRGF0YSk7ZWxzZXt2YXIgdD1WLmlzR3JvdXBBY3RpdmUodGhpcy5oZWFsdGhTaWduYXR1cmVHcm91cCksbz0iMSI9PT1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLkhFQUxUSF9TSUdOQVRVUkVfQVVUSE9SSVpBVElPTik7aWYoIShlJiZ0JiZvKSlyZXR1cm4gdGhpcy5zaG93SGVhbHRoU2lnbmF0dXJlTW9kYWwoZnVuY3Rpb24oKXt9KSx0aGlzLmhlYWx0aFNpZ25hdHVyZUVsZW1lbnR9ZWxzZSh0PVYuaXNHcm91cEFjdGl2ZSh0aGlzLmhlYWx0aFNpZ25hdHVyZUdyb3VwKSkmJkxyLnNldERhdGFTdWJqZWN0SWRWMihfLmhlYWx0aFNpZ25hdHVyZURhdGEpLEwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLkhFQUxUSF9TSUdOQVRVUkVfQVVUSE9SSVpBVElPTix0PyIxIjoiIik7cmV0dXJuIG51bGx9LHRyLnByb3RvdHlwZS5jaGVja0lmSGVhbHRoU2lnbmF0dXJlTmVlZGVkPWZ1bmN0aW9uKGUpe3ZhciB0LG8sbj10aGlzO3JldHVybiB2b2lkIDA9PT1lJiYoZT0hMSksIV8ucmVxdWlyZVNpZ25hdHVyZUVuYWJsZWR8fGwuYmFubmVyQ2xvc2VTb3VyY2U9PT1aLlJlamVjdEFsbHx8bC5iYW5uZXJDbG9zZVNvdXJjZT09PVouQmFubmVyQ2xvc2VCdXR0b258fGwuYmFubmVyQ2xvc2VTb3VyY2U9PT1aLkNvbnRpbnVlV2l0aG91dEFjY2VwdGluZ0J1dHRvbj9Qcm9taXNlLnJlc29sdmUoKToodGhpcy5oZWFsdGhTaWduYXR1cmVHcm91cD1PLkdyb3Vwcy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5lZWRzSGVhbHRoU2lnbmF0dXJlfSksdGhpcy5oZWFsdGhTaWduYXR1cmVHcm91cD8oZT1lfHx0aGlzLmdldEdyb3VwVG9nZ2xlSHRtbFZhbHVlKCkpP18uaGVhbHRoU2lnbmF0dXJlRGF0YT8odGhpcy5zZXRTaWduSGVhbHRoRGF0YUludG9Db29raWVHcm91cChfLmhlYWx0aFNpZ25hdHVyZURhdGEpLFByb21pc2UucmVzb2x2ZSgpKToodD1WLmlzR3JvdXBBY3RpdmUodGhpcy5oZWFsdGhTaWduYXR1cmVHcm91cCksbz0iMSI9PT1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLkhFQUxUSF9TSUdOQVRVUkVfQVVUSE9SSVpBVElPTiksZSYmdCYmbz9Qcm9taXNlLnJlc29sdmUoKTpuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtuLnNob3dIZWFsdGhTaWduYXR1cmVNb2RhbChlKX0pKTooKHQ9Vi5pc0dyb3VwQWN0aXZlKHRoaXMuaGVhbHRoU2lnbmF0dXJlR3JvdXApKSYmTHIuc2V0RGF0YVN1YmplY3RJZFYyKF8uaGVhbHRoU2lnbmF0dXJlRGF0YSksTC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuSEVBTFRIX1NJR05BVFVSRV9BVVRIT1JJWkFUSU9OLHQ/IjEiOiIiKSxQcm9taXNlLnJlc29sdmUoKSk6KGU9IvCfm5EgSU5WQUxJRCBDb29raWUgY2F0ZWdvcnk6ICIrTy5SZXF1aXJlU2lnbmF0dXJlQ0lELFByb21pc2UucmVqZWN0KGUpKSl9LHRyLnByb3RvdHlwZS5nZXRIZWFsdGhTaWduYXR1cmVDb21wb25lbnQ9ZnVuY3Rpb24oZSx0KXt0aGlzLmlzTW9kYWw9ITEsdGhpcy5sYW5nSnNvbj1PLHRoaXMucGFyZW50RWxlbWVudD1lLHRoaXMuaGVhbHRoU2lnbmF0dXJlR3JvdXA9dDtlPXtlcnJvck1lc3NhZ2U6dGhpcy5sYW5nSnNvbi5QQ1JlcXVpcmVTaWduYXR1cmVIZWxwVGV4dCxpbnB1dExhYmVsVGV4dDp0aGlzLmxhbmdKc29uLlBDUmVxdWlyZVNpZ25hdHVyZUZpZWxkTGFiZWx9LHQ9Jzxmb3JtIGNsYXNzPSJvdC1zaWduYXR1cmUtaGVhbHRoLWZvcm0iIGlkPSJmb3JtIj5cbiAgICAgICAgPGRpdiBjbGFzcz0ib3QtaW5wdXQtZmllbGQtY29udCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPSJvdEhlYWx0aFNpZ25hdHVyZURhdGEiIGNsYXNzPSJvdC1zaWduYXR1cmUtbGFiZWwiPicrZS5pbnB1dExhYmVsVGV4dCsnPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ib3RIZWFsdGhTaWduYXR1cmVEYXRhIiBuYW1lPSJvdEhlYWx0aFNpZ25hdHVyZURhdGEiIHJlcXVpcmVkIGFyaWEtcmVxdWlyZWQ9InRydWUiIGNsYXNzPSJvdC1zaWduYXR1cmUtaW5wdXQiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iJytlLmlucHV0TGFiZWxUZXh0KyciIGF1dG9mb2N1cyBhcmlhLWludmFsaWQ9InRydWUiIGFyaWEtZGVzY3JpYmVkYnk9Im90SGVhbHRoU2lnbmF0dXJlRXJyb3JNZXNnIi8+XG4gICAgICAgICAgICA8c3BhbiBpZD0ib3RIZWFsdGhTaWduYXR1cmVFcnJvck1lc2ciIGNsYXNzPSJvdC1oZWFsdGgtc2lnbmF0dXJlLWVycm9yIj5cbiAgICAgICAgICAgICAgICAnK2UuZXJyb3JNZXNzYWdlKyJcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPiIsZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQodCksZS5jbGFzc0xpc3QuYWRkKCJvdC1zaWduYXR1cmUtaGVhbHRoLWdyb3VwIiksdGhpcy5zZXRDb25zZW50SWRJbnB1dChlKSx0aGlzLmhlYWx0aFNpZ25hdHVyZUVsZW1lbnQ9ZSx0aGlzLnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZSksdGhpcy5hZGRFdmVudEhhbmRsZXJzKCl9LHRyLnByb3RvdHlwZS5yZXNldEhlYWx0aFNpZ25hdHVyZURhdGE9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9ITEpLF8ucmVxdWlyZVNpZ25hdHVyZUVuYWJsZWQmJihfLmhlYWx0aFNpZ25hdHVyZURhdGE9IiIsXy5oZWFsdGhTaWduYXR1cmVHcm91cD1udWxsLGUpJiZMLndyaXRlQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5IRUFMVEhfU0lHTkFUVVJFX0FVVEhPUklaQVRJT04sIiIpfSx0ci5wcm90b3R5cGUuc2V0Q29uc2VudElkSW5QQz1mdW5jdGlvbigpe3RoaXMuc2V0Q29uc2VudElkSW5wdXQobnVsbCl9LHRyLnByb3RvdHlwZS5zZXRDb25zZW50SWRJbnB1dD1mdW5jdGlvbihlKXt2YXIgdDt0aGlzLmhlYWx0aFNpZ25hdHVyZUdyb3VwJiYoTC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5IRUFMVEhfU0lHTkFUVVJFX0FVVEhPUklaQVRJT04pPyh0PShlfHxkb2N1bWVudCkucXVlcnlTZWxlY3Rvcih0aGlzLkhFQUxUSF9TSUdOQVRVUkVfSU5QVVRfU0VMRUNUT1IpKSYmKGU9IiIsVi5pc0dyb3VwQWN0aXZlKHRoaXMuaGVhbHRoU2lnbmF0dXJlR3JvdXApJiYoZT1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLkNPTlNFTlRfSUQpKSx0LnZhbHVlPWUpOih0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5IRUFMVEhfU0lHTkFUVVJFX0lOUFVUX1NFTEVDVE9SKSkmJih0LnZhbHVlPSIiKSl9LHRyLnByb3RvdHlwZS5zaG93SGVhbHRoU2lnbmF0dXJlTW9kYWw9ZnVuY3Rpb24odCl7dmFyIG89dGhpcztibi5oaWRlQ29uc2VudE5vdGljZVYyKCksdGhpcy5sYW5nSnNvbj1PLHRoaXMucGFyZW50RWxlbWVudD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuUEFSRU5UX1NFTEVDVE9SKSx0aGlzLnNldE15SGVhbHRoRGF0YU1vZGFsKGZ1bmN0aW9uKGUpe28uc2V0U2lnbkhlYWx0aERhdGFJbnRvQ29va2llR3JvdXAoZSksdCgpfSxmdW5jdGlvbigpe1YudG9nZ2xlR3JwU3RhdHVzKG8uaGVhbHRoU2lnbmF0dXJlR3JvdXAsITEpLFYudG9nZ2xlR3JvdXBIdG1sRWxlbWVudChvLmhlYWx0aFNpZ25hdHVyZUdyb3VwLG8uaGVhbHRoU2lnbmF0dXJlR3JvdXAuQ3VzdG9tR3JvdXBJZCwhMSksdCgpfSl9LHRyLnByb3RvdHlwZS5zZXRNeUhlYWx0aERhdGFNb2RhbD1mdW5jdGlvbihlLHQpe3RoaXMuaXNNb2RhbD0hMCx0aGlzLnJlamVjdENhbGxiYWNrPXQsdGhpcy5jb25maXJtQ2FsbGJhY2s9ZSx0aGlzLmNvbmZpZ09wdGlvbnM9e21haW5UaXRsZTp0aGlzLmhlYWx0aFNpZ25hdHVyZUdyb3VwLkdyb3VwTmFtZSxkZXNjcmlwdGlvbjp0aGlzLmhlYWx0aFNpZ25hdHVyZUdyb3VwLkdyb3VwRGVzY3JpcHRpb24sc3VidGl0bGU6dGhpcy5sYW5nSnNvbi5QQ1JlcXVpcmVTaWduYXR1cmVIZWFkZXJUZXh0LGFyaWFMYWJlbDp0aGlzLmxhbmdKc29uLlBDUmVxdWlyZVNpZ25hdHVyZUhlYWRlckRlc2MsZXJyb3JNZXNzYWdlOnRoaXMubGFuZ0pzb24uUENSZXF1aXJlU2lnbmF0dXJlSGVscFRleHQsc3ViRGVzY3JpcHRpb246dGhpcy5sYW5nSnNvbi5QQ1JlcXVpcmVTaWduYXR1cmVIZWFkZXJEZXNjLGlucHV0TGFiZWxUZXh0OnRoaXMubGFuZ0pzb24uUENSZXF1aXJlU2lnbmF0dXJlRmllbGRMYWJlbCxyZWplY3RCdXR0b25UZXh0OnRoaXMubGFuZ0pzb24uUENSZXF1aXJlU2lnbmF0dXJlUmVqZWN0QnRuVGV4dCxhY2NlcHRCdXR0b25UZXh0OnRoaXMubGFuZ0pzb24uUENSZXF1aXJlU2lnbmF0dXJlQ29uZmlybUJ0blRleHR9O3Q9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGU9dGhpcy5jcmVhdGVNb2RhbCh0KTt0aGlzLmhlYWx0aFNpZ25hdHVyZUVsZW1lbnQ9dGhpcy5jcmVhdGVIZWFsdFNpZ25hdHVyZUZvcm0oZSksdGhpcy5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHQpLHRoaXMuc2V0Rm9jdXNPbklucHV0KCksdGhpcy5hZGRFdmVudEhhbmRsZXJzKCksdGhpcy5nZW5lcmljTW9kYWwub3Blbk1vZGFsSGFuZGxlcigpfSx0ci5wcm90b3R5cGUuc2V0U2lnbkhlYWx0aERhdGFJbnRvQ29va2llR3JvdXA9ZnVuY3Rpb24oZSl7ZT8oTHIuc2V0RGF0YVN1YmplY3RJZFYyKGUpLF8uaGVhbHRoU2lnbmF0dXJlRGF0YT1lLFYudG9nZ2xlR3JwU3RhdHVzKHRoaXMuaGVhbHRoU2lnbmF0dXJlR3JvdXAsITApKTooXy5oZWFsdGhTaWduYXR1cmVEYXRhPSIiLFYudG9nZ2xlR3JwU3RhdHVzKHRoaXMuaGVhbHRoU2lnbmF0dXJlR3JvdXAsITEpKSxMLndyaXRlQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5IRUFMVEhfU0lHTkFUVVJFX0FVVEhPUklaQVRJT04sZT8iMSI6IiIpfSx0ci5wcm90b3R5cGUuY3JlYXRlTW9kYWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZ2VuZXJpY01vZGFsPSRuKHRoaXMuTU9EQUxfSUQsdGhpcy5wYXJlbnRFbGVtZW50KSxlLmFwcGVuZENoaWxkKHRoaXMuZ2VuZXJpY01vZGFsLmRpYWxvZ0xheWVySHRtbCksdGhpcy5nZW5lcmljTW9kYWwubW9kYWxIdG1sfSx0ci5wcm90b3R5cGUuY3JlYXRlSGVhbHRTaWduYXR1cmVGb3JtPWZ1bmN0aW9uKGUpe3Q9dGhpcy5jb25maWdPcHRpb25zLG89ITA9PT0obnVsbD09KG89Yi5tb2R1bGVJbml0aWFsaXplcik/dm9pZCAwOm8uU0VPT3B0aW1pemF0aW9uKTt2YXIgdCxvPSc8ZGl2XG4gICAgICAgIGNsYXNzPSJvdC1zaWduYXR1cmUtaGVhbHRoIlxuICAgICAgICByb2xlPSJkaWFsb2ciXG4gICAgICAgIGFyaWEtbGFiZWw9IicrdC5hcmlhTGFiZWwrJyJcbiAgICAgICAgYXJpYS1kZXNjcmliZWRieT0ib3RTaWduYXR1cmVHcm91cERlc2MiPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz0ib3Qtc2lnbmF0dXJlLWNvbnQiPlxuICAgICAgICAgICAgJysobz8nPHAgaWQ9Im90U2lnbmF0dXJlU3VidGl0bGUiIGNsYXNzPSJvdC1zaWduYXR1cmUtc3VidGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjQiPicrdC5zdWJ0aXRsZSsiPC9wPiI6JzxoNCBpZD0ib3RTaWduYXR1cmVTdWJ0aXRsZSIgY2xhc3M9Im90LXNpZ25hdHVyZS1zdWJ0aXRsZSI+Jyt0LnN1YnRpdGxlKyI8L2g0PiIpKydcbiAgICAgICAgICAgIDxwIGNsYXNzPSJvdC1zaWduYXR1cmUtcGFyYWdyYXBoIj4nK3Quc3ViRGVzY3JpcHRpb24rJzwvcD5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz0ib3Qtc2lnbmF0dXJlLWNvbnQiPlxuICAgICAgICAgICAgJysobz8nPHAgaWQ9Im90U2lnbmF0dXJlR3JvdXBUaXRsZSIgY2xhc3M9Im90LXNpZ25hdHVyZS1ncm91cC10aXRsZSIgcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iNSI+Jyt0Lm1haW5UaXRsZSsiPC9wPiI6JzxoNSBpZD0ib3RTaWduYXR1cmVHcm91cFRpdGxlIiBjbGFzcz0ib3Qtc2lnbmF0dXJlLWdyb3VwLXRpdGxlIj4nK3QubWFpblRpdGxlKyI8L2g1PiIpKydcbiAgICAgICAgICAgIDxwIGlkPSJvdFNpZ25hdHVyZUdyb3VwRGVzYyIgY2xhc3M9Im90LXNpZ25hdHVyZS1wYXJhZ3JhcGgiPicrdC5kZXNjcmlwdGlvbisnPC9wPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDxmb3JtIGNsYXNzPSJvdC1zaWduYXR1cmUtaGVhbHRoLWZvcm0iIGlkPSJmb3JtIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9Im90SGVhbHRoU2lnbmF0dXJlRGF0YSIgY2xhc3M9Im90LXNpZ25hdHVyZS1sYWJlbCI+Jyt0LmlucHV0TGFiZWxUZXh0Kyc8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJvdEhlYWx0aFNpZ25hdHVyZURhdGEiIG5hbWU9Im90SGVhbHRoU2lnbmF0dXJlRGF0YSIgcmVxdWlyZWQgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgY2xhc3M9Im90LXNpZ25hdHVyZS1pbnB1dCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSInK3QuaW5wdXRMYWJlbFRleHQrJyIgYXV0b2ZvY3VzIGFyaWEtaW52YWxpZD0idHJ1ZSIgYXJpYS1kZXNjcmliZWRieT0ib3RIZWFsdGhTaWduYXR1cmVFcnJvck1lc2ciLz5cbiAgICAgICAgICAgIDxzcGFuIGlkPSJvdEhlYWx0aFNpZ25hdHVyZUVycm9yTWVzZyIgY2xhc3M9Im90LWhlYWx0aC1zaWduYXR1cmUtZXJyb3IiIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIj5cbiAgICAgICAgICAgICAgICAnK3QuZXJyb3JNZXNzYWdlKydcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8ZGl2IGNsYXNzPSJvdC1zaWduYXR1cmUtYnV0dG9ucy1jb250Ij5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im90LXNpZ25hdHVyZS1idXR0b24gcmVqZWN0Ij4nK3QucmVqZWN0QnV0dG9uVGV4dCsnPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJvdC1zaWduYXR1cmUtYnV0dG9uIGFjY2VwdCI+Jyt0LmFjY2VwdEJ1dHRvblRleHQrIjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4iO3JldHVybiBlLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQobyksdGhpcy5zZXRDb25zZW50SWRJbnB1dChlKSx0aGlzLmFkZFN0eWxlcygpLGUucXVlcnlTZWxlY3RvcigiLm90LXNpZ25hdHVyZS1oZWFsdGgiKX0sdHIucHJvdG90eXBlLmFkZEV2ZW50SGFuZGxlcnM9ZnVuY3Rpb24oKXt0aGlzLmlzTW9kYWw/KHRoaXMucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuUkVKRUNUX1NFTEVDVE9SKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5yZWplY3RMaXN0ZW5lci5iaW5kKHRoaXMpKSx0aGlzLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLkNPTkZJUk1fU0VMRUNUT1IpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmNvbmZpcm1MaXN0ZW5lci5iaW5kKHRoaXMpKSk6dGhpcy5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5IRUFMVEhfU0lHTkFUVVJFX0lOUFVUX1NFTEVDVE9SKS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5oZWFsdGhTaWduYXR1cmVJbnB1dENoYW5nZWQuYmluZCh0aGlzKSl9LHRyLnByb3RvdHlwZS5yZW1vdmVNb2RhbD1mdW5jdGlvbigpe3RoaXMucmVtb3ZlRXZlbnRIYW5kbGVycygpLHRoaXMuZ2VuZXJpY01vZGFsLmNsb3NlTW9kYWxIYW5kbGVyKCl9LHRyLnByb3RvdHlwZS5yZW1vdmVFdmVudEhhbmRsZXJzPWZ1bmN0aW9uKCl7dGhpcy5pc01vZGFsPyh0aGlzLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLlJFSkVDVF9TRUxFQ1RPUikucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMucmVqZWN0TGlzdGVuZXIpLHRoaXMucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuQ09ORklSTV9TRUxFQ1RPUikucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuY29uZmlybUxpc3RlbmVyKSk6dGhpcy5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5IRUFMVEhfU0lHTkFUVVJFX0lOUFVUX1NFTEVDVE9SKS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5oZWFsdGhTaWduYXR1cmVJbnB1dENoYW5nZWQpfSx0ci5wcm90b3R5cGUucmVqZWN0TGlzdGVuZXI9ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZU1vZGFsKCksdGhpcy5yZWplY3RDYWxsYmFjayYmdGhpcy5yZWplY3RDYWxsYmFjaygpfSx0ci5wcm90b3R5cGUuY29uZmlybUxpc3RlbmVyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oZWFsdGhTaWduYXR1cmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5IRUFMVEhfU0lHTkFUVVJFX0lOUFVUX1NFTEVDVE9SKS52YWx1ZTtlJiYodGhpcy5yZW1vdmVNb2RhbCgpLHRoaXMuY29uZmlybUNhbGxiYWNrKGUpKX0sdHIucHJvdG90eXBlLmhlYWx0aFNpZ25hdHVyZUlucHV0Q2hhbmdlZD1mdW5jdGlvbihlKXtfLmhlYWx0aFNpZ25hdHVyZURhdGE9ZS50YXJnZXQudmFsdWV9LHRyLnByb3RvdHlwZS5zZXRGb2N1c09uSW5wdXQ9ZnVuY3Rpb24oKXt0aGlzLmhlYWx0aFNpZ25hdHVyZUVsZW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLkhFQUxUSF9TSUdOQVRVUkVfSU5QVVRfU0VMRUNUT1IpLmZvY3VzKCl9LHRyLnByb3RvdHlwZS5hZGRTdHlsZXM9ZnVuY3Rpb24oKXt2YXIgZT0iIix0PShlPShlPShlKz10aGlzLnNldFBhcmFncmFwaFN0eWxlcygpKSt0aGlzLnNldEFjY2VwdEJ1dHRvbnNTdHlsZXMoKSkrdGhpcy5zZXRSZWplY3RCdXR0b25zU3R5bGVzKCksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9uZXRydXN0LXN0eWxlIikpO3QudGV4dENvbnRlbnQ9dC50ZXh0Q29udGVudCtlfSx0ci5wcm90b3R5cGUuc2V0UmVqZWN0QnV0dG9uc1N0eWxlcz1mdW5jdGlvbigpe3JldHVybiIjb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LXNpZ25hdHVyZS1oZWFsdGggIit0aGlzLlJFSkVDVF9TRUxFQ1RPUisiIHtcbiAgICAgICAgICAgIGNvbG9yOiAiK08uYmFubmVyTVBCdXR0b25UZXh0Q29sb3IrIjtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIitPLmJhbm5lck1QQnV0dG9uVGV4dENvbG9yKyI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiK08uYmFubmVyTVBCdXR0b25Db2xvcisiO1xuICAgICAgICB9In0sdHIucHJvdG90eXBlLnNldEFjY2VwdEJ1dHRvbnNTdHlsZXM9ZnVuY3Rpb24oKXtyZXR1cm4iI29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1zaWduYXR1cmUtaGVhbHRoICIrdGhpcy5DT05GSVJNX1NFTEVDVE9SKyIge1xuICAgICAgICAgICAgY29sb3I6ICIrTy5idXR0b25UZXh0Q29sb3IrIjtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIitPLmJ1dHRvbkNvbG9yKyI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiK08uYnV0dG9uQ29sb3IrIjtcbiAgICAgICAgfSJ9LHRyLnByb3RvdHlwZS5zZXRQYXJhZ3JhcGhTdHlsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IRUFMVEhfU0lHTkFUVVJFX1BBUkFHUkFQSF9TRUxFQ1RPUisiIHtcbiAgICAgICAgICAgIGNvbG9yOiAiK08udGV4dENvbG9yKyI7XG4gICAgICAgIH0ifSx0ci5wcm90b3R5cGUuZ2V0R3JvdXBUb2dnbGVIdG1sVmFsdWU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmhlYWx0aFNpZ25hdHVyZUdyb3VwLkN1c3RvbUdyb3VwSWQsZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCNvdC1ncm91cC1pZC0iK2UrIiwgaW5wdXQjb3QtYm5yLWhkci1pZC0iK2UrIiwgaW5wdXQjb3QtYm5yLWdycC1pZC0iK2UpO3JldHVybiEhZSYmITA9PT1lLmNoZWNrZWR9O3ZhciBlcj10cjtmdW5jdGlvbiB0cigpe3RoaXMuTU9EQUxfSUQ9ImhlYWx0aFNpZ25hdHVyZURhdGFNb2RhbCIsdGhpcy5QQVJFTlRfU0VMRUNUT1I9IiNvbmV0cnVzdC1jb25zZW50LXNkayIsdGhpcy5SRUpFQ1RfU0VMRUNUT1I9Ii5vdC1zaWduYXR1cmUtYnV0dG9uLnJlamVjdCIsdGhpcy5DT05GSVJNX1NFTEVDVE9SPSIub3Qtc2lnbmF0dXJlLWJ1dHRvbi5hY2NlcHQiLHRoaXMuSEVBTFRIX1NJR05BVFVSRV9JTlBVVF9TRUxFQ1RPUj0iI290SGVhbHRoU2lnbmF0dXJlRGF0YSIsdGhpcy5IRUFMVEhfU0lHTkFUVVJFX1BBUkFHUkFQSF9TRUxFQ1RPUj0icC5vdC1zaWduYXR1cmUtcGFyYWdyYXBoIn1uci5wcm90b3R5cGUudXBkYXRlRGF0YVN1YmplY3RUaW1lc3RhbXA9ZnVuY3Rpb24oKXt2YXIgZT13LmFsZXJ0Qm94Q2xvc2VEYXRlKCksZT1lJiZoLmdldFVUQ0Zvcm1hdHRlZERhdGUoZSk7bSgiLm90LXVzZXJpZC10aW1lc3RhbXAiKS5odG1sKE8uUENlbnRlclVzZXJJZFRpbWVzdGFtcFRpdGxlVGV4dCsiOiAiK2UpfSxuci5wcm90b3R5cGUuY2xvc2VCYW5uZXI9ZnVuY3Rpb24oZSx0KXt2YXIgbz10aGlzO3ZvaWQgMD09PXQmJih0PSExKSxlPyhlPWguc2hvdWxkU2hvd0RvdWJsZU9wdEluU2lnbmFsKCEwKSwhdCYmZT9oLmNyZWF0ZURvdWJsZU9wdEluQ29uZmlybURpYWxvZyghMSxmdW5jdGlvbigpe28uY2xvc2VPcHRhbm9uQWxlcnRCb3goKSxvLmFsbG93QWxsKCExKX0sZnVuY3Rpb24oKXtPLk9uQ2xpY2tDbG9zZUJhbm5lciYmZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsQy5ib2R5Q2xpY2tFdmVudCksTy5TY3JvbGxDbG9zZUJhbm5lciYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsQy5zY3JvbGxDbG9zZUJhbm5lcil9KToodGhpcy5jbG9zZU9wdGFub25BbGVydEJveCgpLHRoaXMuaXNBdXRvQ2xvc2VUcmlnZ2VyPSEwLHRoaXMuYWxsb3dBbGwoITEpLHRoaXMuaXNBdXRvQ2xvc2VUcmlnZ2VyPSExKSk6KHRoaXMuY2hlY2tJbXBsaWNpdENvbnNlbnRXaGVuQmFubmVySXNDbG9zZWQoITEpLHRoaXMuY2xvc2VPcHRhbm9uQWxlcnRCb3goKSx0aGlzLmNsb3NlKCExKSl9LG5yLnByb3RvdHlwZS5hbGxvd0FsbD1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PSExKSxiLm1vZHVsZUluaXRpYWxpemVyLk1vYmlsZVNESz93aW5kb3cuT25lVHJ1c3QuQWxsb3dBbGwoKTp0aGlzLkFsbG93QWxsVjIoZSx0KX0sbnIucHJvdG90eXBlLmJhbm5lckFjdGlvbnNIYW5kbGVyPWZ1bmN0aW9uKHQsbixlKXt2YXIgcj10aGlzLGk9KHZvaWQgMD09PWUmJihlPSExKSxPby5zZXRMYW5kaW5nUGF0aFBhcmFtKEkuTk9UX0xBTkRJTkdfUEFHRSksRC5ncm91cHNDb25zZW50PVtdLEQuaG9zdHNDb25zZW50PVtdLEQuZ2VuVmVuZG9yc0NvbnNlbnQ9e30se30pO08uR3JvdXBzLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoZS5Jc0Fib3V0R3JvdXApcmV0dXJuITE7RihlLlN1Ykdyb3VwcyxbZV0pLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIG89ci5nZXRHcm91cFN0YXR1cyh0LG4sZSk7ci5zZXRHcm91cENvbnNlbnQobyxlKSxlLkhvc3RzLmxlbmd0aCYmaC5pc09wdE91dEVuYWJsZWQoKSYmZS5Ib3N0cy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0O2lbZS5Ib3N0SWRdP3dvLnVwZGF0ZUhvc3RTdGF0dXMoZSxvKTooaVtlLkhvc3RJZF09ITAsdD13by5pc0hvc3RQYXJ0T2ZBbHdheXNBY3RpdmVHcm91cChlLkhvc3RJZCksRC5ob3N0c0NvbnNlbnQucHVzaChlLkhvc3RJZCsiOiIrKHR8fG8/IjEiOiIwIikpKX0pLEQuZ2VuVmVuT3B0T3V0RW5hYmxlZCYmZS5HZW5lcmFsVmVuZG9yc0lkcyYmZS5HZW5lcmFsVmVuZG9yc0lkcy5sZW5ndGgmJmUuR2VuZXJhbFZlbmRvcnNJZHMuZm9yRWFjaChmdW5jdGlvbihlKXtMby51cGRhdGVHZW5WZW5kb3JTdGF0dXMoZSxvKX0pfSl9KSxPLklzSWFiRW5hYmxlZCYmKHQ/dGhpcy5pYWIuYWxsb3dBbGxoYW5kbGVyKCk6dGhpcy5pYWIucmVqZWN0QWxsSGFuZGxlcihlKSkseW4ucmVtb3ZlQWRkZWRPVENzc1N0eWxlcygpLGJuLmhpZGVDb25zZW50Tm90aWNlVjIoKSxJby53cml0ZUdycFBhcmFtKGsuT1BUQU5PTl9DT05TRU5UKSxJby53cml0ZUhzdFBhcmFtKGsuT1BUQU5PTl9DT05TRU5UKSxELmdlblZlbk9wdE91dEVuYWJsZWQmJklvLndyaXRlR2VuVmVuQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQpLEQudnNJc0FjdGl2ZUFuZE9wdE91dCYmSW8ud3JpdGVWU0NvbnNlbnRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCksTm4uc3Vic3RpdHV0ZVBsYWluVGV4dFNjcmlwdFRhZ3MoKSxfbi51cGRhdGVHdG1NYWNyb3MoKSx0aGlzLmV4ZWN1dGVPcHRhbm9uV3JhcHBlcigpLHRoaXMuc2hvdWxkQXBwbHlHcGNPdmVycmlkZSgpJiZ0aGlzLnJlc2V0Q29uc2VudFVJKCksbnVsbCE9KGU9bnVsbD09KGU9Yik/dm9pZCAwOmUubW9kdWxlSW5pdGlhbGl6ZXIpJiZlLkJhbm5lclJlZnJlc2hBZnRlckNhbGxUb0FjdGlvbkVuYWJsZWQmJnRoaXMucmVsb2FkUGFnZSgpfSxuci5wcm90b3R5cGUuZ2V0R3JvdXBTdGF0dXM9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBlPyEodGhpcy5zaG91bGRBcHBseUdwY092ZXJyaWRlKCkmJm8uSXNHcGNFbmFibGVkfHx0aGlzLmlzQXV0b0Nsb3NlVHJpZ2dlciYmXy5ETlRFbmFibGVkJiZvLklzRG50RW5hYmxlZCYmby5TdGF0dXMudG9Mb3dlckNhc2UoKSE9PWYuQUxXQVlTX0lOQUNUSVZFJiZvLlN0YXR1cy50b0xvd2VyQ2FzZSgpIT09Zi5BTFdBWVNfQUNUSVZFfHxvLlN0YXR1cy50b0xvd2VyQ2FzZSgpPT09Zi5BTFdBWVNfSU5BQ1RJVkUpOiEhdCYmeS5pc0Fsd2F5c0FjdGl2ZUdyb3VwKG8pfSxuci5wcm90b3R5cGUuc2hvdWxkQXBwbHlHcGNPdmVycmlkZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQXV0b0Nsb3NlVHJpZ2dlciYmXy5ncGNFbmFibGVkJiZfLmdwY0ZvckFHcnBFbmFibGVkfSxuci5wcm90b3R5cGUuc2V0R3JvdXBDb25zZW50PWZ1bmN0aW9uKGUsdCl7dmFyIG87LTE8RXQuaW5kZXhPZih0LlR5cGUpJiYobz0iIixvPV8ucmVxdWlyZVNpZ25hdHVyZUVuYWJsZWQmJnQubmVlZHNIZWFsdGhTaWduYXR1cmU/Xy5oZWFsdGhTaWduYXR1cmVEYXRhPyIxIjoiMCI6ZSYmdC5IYXNDb25zZW50T3B0T3V0PyIxIjoiMCIsZT12LmZpbmRJbmRleChELmdyb3Vwc0NvbnNlbnQsZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoIjoiKVswXT09PXQuQ3VzdG9tR3JvdXBJZH0pLG89dC5DdXN0b21Hcm91cElkKyI6IitvLC0xPGU/RC5ncm91cHNDb25zZW50W2VdPW86RC5ncm91cHNDb25zZW50LnB1c2gobykpfSxuci5wcm90b3R5cGUuYXBwbHlBbHdheXNBY3RpdmVJbmFjdGl2ZUdyb3VwQ29uc2VudD1mdW5jdGlvbigpe3ZhciByPXRoaXMsaT17fTtPLkdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe0Yobi5TdWJHcm91cHMsW25dKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0LG89bnVsbD09KG89bi5TdGF0dXMpP3ZvaWQgMDpvLnRvTG93ZXJDYXNlKCk7bz09PWYuQUxXQVlTX0FDVElWRT90PSEwOm89PT1mLkFMV0FZU19JTkFDVElWRSYmKHQ9ITEpLG8hPT1mLkFMV0FZU19BQ1RJVkUmJm8hPT1mLkFMV0FZU19JTkFDVElWRXx8KHIuc2V0R3JvdXBDb25zZW50KHQsbiksZS5Ib3N0cy5sZW5ndGgmJmguaXNPcHRPdXRFbmFibGVkKCkmJmUuSG9zdHMuZm9yRWFjaChmdW5jdGlvbihlKXtpW2UuSG9zdElkXT93by51cGRhdGVIb3N0U3RhdHVzKGUsdCk6KGlbZS5Ib3N0SWRdPSEwLEQuaG9zdHNDb25zZW50LnB1c2goZS5Ib3N0SWQrIjoiKyh0PyIxIjoiMCIpKSl9KSxELmdlblZlbk9wdE91dEVuYWJsZWQmJmUuR2VuZXJhbFZlbmRvcnNJZHMmJmUuR2VuZXJhbFZlbmRvcnNJZHMubGVuZ3RoJiZlLkdlbmVyYWxWZW5kb3JzSWRzLmZvckVhY2goZnVuY3Rpb24oZSl7TG8udXBkYXRlR2VuVmVuZG9yU3RhdHVzKGUsdCl9KSl9KX0pfSxuci5wcm90b3R5cGUubmV4dFBhZ2VDbG9zZUJhbm5lcj1mdW5jdGlvbigpe09vLmlzTGFuZGluZ1BhZ2UoKXx8dy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKXx8dGhpcy5jbG9zZUJhbm5lcihPLk5leHRQYWdlQWNjZXB0QWxsQ29va2llcywhMCl9LG5yLnByb3RvdHlwZS5ybVNjcm9sbEFuZENsaWNrQm9keUV2ZW50cz1mdW5jdGlvbigpe08uU2Nyb2xsQ2xvc2VCYW5uZXImJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuc2Nyb2xsQ2xvc2VCYW5uZXIpLE8uT25DbGlja0Nsb3NlQmFubmVyJiZkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmJvZHlDbGlja0V2ZW50KX0sbnIucHJvdG90eXBlLm9uQ2xpY2tDbG9zZUJhbm5lcj1mdW5jdGlvbihlKXt3LmlzQWxlcnRCb3hDbG9zZWRBbmRWYWxpZCgpfHwoVG8udHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50KHhvLEhvKSx0aGlzLmNsb3NlQmFubmVyKE8uT25DbGlja0FjY2VwdEFsbENvb2tpZXMpKSxDLnJtU2Nyb2xsQW5kQ2xpY2tCb2R5RXZlbnRzKCl9LG5yLnByb3RvdHlwZS5zY3JvbGxDbG9zZUJhbm5lcj1mdW5jdGlvbigpe3ZhciBlPW0oZG9jdW1lbnQpLmhlaWdodCgpLW0od2luZG93KS5oZWlnaHQoKSxlPSgwPT09ZSYmKGU9bSh3aW5kb3cpLmhlaWdodCgpKSwxMDAqbSh3aW5kb3cpLnNjcm9sbFRvcCgpL2UpOzI1PChlPWU8PTA/MTAwKihkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50JiZkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHxkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCkvKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQmJmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsSGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHR8fGRvY3VtZW50LmJvZHkmJmRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0KTplKSYmIXcuaXNBbGVydEJveENsb3NlZEFuZFZhbGlkKCkmJighRC5pc1BDVmlzaWJsZXx8Ty5Ob0Jhbm5lcik/KFRvLnRyaWdnZXJHb29nbGVBbmFseXRpY3NFdmVudCh4byxIbyksQy5jbG9zZUJhbm5lcihPLlNjcm9sbEFjY2VwdEFsbENvb2tpZXMpLEMucm1TY3JvbGxBbmRDbGlja0JvZHlFdmVudHMoKSk6dy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKSYmQy5ybVNjcm9sbEFuZENsaWNrQm9keUV2ZW50cygpfSxuci5wcm90b3R5cGUuQWxsb3dBbGxWMj1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PSExKTtmb3IodmFyIG89dGhpcy5ncm91cHNDbGFzcy5nZXRBbGxHcm91cEVsZW1lbnRzKCksbj10P3VlWzRdOnVlWzFdLHI9MDtyPG8ubGVuZ3RoO3IrKyl7dmFyIGk9eS5nZXRHcm91cEJ5SWQob1tyXS5nZXRBdHRyaWJ1dGUoImRhdGEtb3B0YW5vbmdyb3VwaWQiKSk7Xy5yZXF1aXJlU2lnbmF0dXJlRW5hYmxlZCYmaS5uZWVkc0hlYWx0aFNpZ25hdHVyZT90aGlzLmdyb3Vwc0NsYXNzLnRvZ2dsZUdycEVsZW1lbnRzKG9bcl0saSwhIV8uaGVhbHRoU2lnbmF0dXJlRGF0YSk6KHRoaXMuZ3JvdXBzQ2xhc3MudG9nZ2xlR3JwRWxlbWVudHMob1tyXSxpLCEwKSx0aGlzLmdyb3Vwc0NsYXNzLnRvb2dsZVN1Ykdyb3VwRWxlbWVudChvW3JdLCEwLCExLCEwKSx0aGlzLmdyb3Vwc0NsYXNzLnRvb2dsZVN1Ykdyb3VwRWxlbWVudChvW3JdLCEwLCEwLCEwKSl9RC5zaG93VmVuZG9yU2VydmljZSYmQi5jb25zZW50QWxsKCEwKSx0aGlzLmJhbm5lckFjdGlvbnNIYW5kbGVyKCEwLCExKSxoLnVwZGF0ZUludFR5cGVGcm9tQ29va2llKCksbiE9PUQuY29uc2VudEludGVyYWN0aW9uVHlwZSYmdGhpcy5jb25zZW50VHJhbnNhY3Rpb25zKGUsITAsdCksTy5Jc0lhYkVuYWJsZWQmJih0aGlzLmlhYi51cGRhdGVJYWJWYXJpYWJsZVJlZmVyZW5jZSgpLHRoaXMuaWFiLnVwZGF0ZVZlbmRvcnNET01Ub2dnbGVTdGF0dXMoITApLHRoaXMudXBkYXRlVmVuZG9yTGVnQnRucyghMCkpfSxuci5wcm90b3R5cGUucmVqZWN0QWxsPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvLG4scj0odD12b2lkIDA9PT10PyExOnQpP3VlWzVdOnVlWzJdLGk9dGhpcy5ncm91cHNDbGFzcy5nZXRBbGxHcm91cEVsZW1lbnRzKCkscz1udWxsIT0obz1udWxsPT0obz1iKT92b2lkIDA6by5mcCkmJm8uQ29va2llVjJSZWplY3RBbGw/KG49dGhpcy5pbml0aWFsaXplT2JqZWN0VG9MSVJlamVjdEFsbCh0KSx0aGlzLmluaXRpYWxpemVBbGxvd0xJUmVqZWN0QWxsKHQpKTohKG49ITApLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIGw9eS5nZXRHcm91cEJ5SWQoaVthXS5nZXRBdHRyaWJ1dGUoImRhdGEtb3B0YW5vbmdyb3VwaWQiKSk7ImFsd2F5cyBhY3RpdmUiIT09eS5nZXRHcnBTdGF0dXMobCkudG9Mb3dlckNhc2UoKSYmKFYudG9nZ2xlR3JwRWxlbWVudHMoaVthXSxsLCExLHMpLHRoaXMuZ3JvdXBzQ2xhc3MudG9vZ2xlU3ViR3JvdXBFbGVtZW50KGlbYV0sITEsITEsITApLE8uSXNJYWJFbmFibGVkJiYoTy5Jc0lhYkVuYWJsZWQsIW4pfHx0aGlzLmdyb3Vwc0NsYXNzLnRvb2dsZVN1Ykdyb3VwRWxlbWVudChpW2FdLCExLCEwLCEwKSl9RC5zaG93VmVuZG9yU2VydmljZSYmQi5jb25zZW50QWxsKCExKSx0aGlzLmJhbm5lckFjdGlvbnNIYW5kbGVyKCExLCEwLHMpLGgudXBkYXRlSW50VHlwZUZyb21Db29raWUoKSxyIT09RC5jb25zZW50SW50ZXJhY3Rpb25UeXBlJiZ0aGlzLmNvbnNlbnRUcmFuc2FjdGlvbnMoZSwhMSx0KSxPLklzSWFiRW5hYmxlZCYmKHRoaXMuaWFiLnVwZGF0ZUlhYlZhcmlhYmxlUmVmZXJlbmNlKCksdGhpcy5pYWIudXBkYXRlVmVuZG9yc0RPTVRvZ2dsZVN0YXR1cyghMSxzKSxzfHx0aGlzLnVwZGF0ZVZlbmRvckxlZ0J0bnMoITEpKX0sbnIucHJvdG90eXBlLmluaXRpYWxpemVPYmplY3RUb0xJUmVqZWN0QWxsPWZ1bmN0aW9uKGUpe3JldHVybiFlJiZPLkJhbm5lclNob3dSZWplY3RBbGxCdXR0b24mJk8uQlJlamVjdENvbnNlbnRUeXBlPT09a2UuT0JKRUNUX1RPX0xJfHxlJiZPLlBDZW50ZXJTaG93UmVqZWN0QWxsQnV0dG9uJiZPLkJSZWplY3RDb25zZW50VHlwZT09PWtlLk9CSkVDVF9UT19MSX0sbnIucHJvdG90eXBlLmluaXRpYWxpemVBbGxvd0xJUmVqZWN0QWxsPWZ1bmN0aW9uKGUpe3JldHVybiBPLklzSWFiRW5hYmxlZCYmKCFlJiZPLkJhbm5lclNob3dSZWplY3RBbGxCdXR0b24mJk8uQlJlamVjdENvbnNlbnRUeXBlPT09a2UuTElfQUNUSVZFX0lGX0xFR0FMX0JBU0lTfHxlJiZPLlBDZW50ZXJTaG93UmVqZWN0QWxsQnV0dG9uJiZPLkJSZWplY3RDb25zZW50VHlwZT09PWtlLkxJX0FDVElWRV9JRl9MRUdBTF9CQVNJUyl9LG5yLnByb3RvdHlwZS51cGRhdGVDb25zZW50RGF0YT1mdW5jdGlvbihlKXtPby5zZXRMYW5kaW5nUGF0aFBhcmFtKEkuTk9UX0xBTkRJTkdfUEFHRSksTy5Jc0lhYkVuYWJsZWQmJiFlJiZ0aGlzLmlhYi5zYXZlVmVuZG9yU3RhdHVzKCksSW8ud3JpdGVHcnBQYXJhbShrLk9QVEFOT05fQ09OU0VOVCksSW8ud3JpdGVIc3RQYXJhbShrLk9QVEFOT05fQ09OU0VOVCksRC5zaG93R2VuZXJhbFZlbmRvcnMmJk8uR2VuVmVuT3B0T3V0JiZJby53cml0ZUdlblZlbkNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5UKSxELnZzSXNBY3RpdmVBbmRPcHRPdXQmJklvLndyaXRlVlNDb25zZW50Q29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQpLE5uLnN1YnN0aXR1dGVQbGFpblRleHRTY3JpcHRUYWdzKCksX24udXBkYXRlR3RtTWFjcm9zKCl9LG5yLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbihlLHQpe3ZhciBvO3ZvaWQgMD09PXQmJih0PSQuQmFubmVyKSxibi5oaWRlQ29uc2VudE5vdGljZVYyKCksdGhpcy5hcHBseUFsd2F5c0FjdGl2ZUluYWN0aXZlR3JvdXBDb25zZW50KCksdGhpcy51cGRhdGVDb25zZW50RGF0YShlKSxPLklzQ29uc2VudExvZ2dpbmdFbmFibGVkPyhvPXQ9PT0kLlBDP1VuOnQ9PT0kLkJhbm5lcj9SbjpfLmFwaVNvdXJjZSxlPXQ9PT0kLlBDP3huOnQ9PT0kLkJhbm5lcj9HbjpIbixELmJhbm5lckNsb3NlU291cmNlPT09Wi5Db250aW51ZVdpdGhvdXRBY2NlcHRpbmdCdXR0b24mJihvPWpuKSxELmJhbm5lckNsb3NlU291cmNlPT09Wi5CYW5uZXJTYXZlU2V0dGluZ3MmJihvPXFuKSxlPXRoaXMuc2V0SW50ZXJhY3Rpb25UeXBlKGUsbykseHMuY3JlYXRlQ29uc2VudFR4bighMSxlLHQ9PT0kLlBDKSx0PT09JC5BUEkmJihfLmFwaVNvdXJjZT12b2lkIDApKTp3LmRpc3BhdGNoQ29uc2VudEV2ZW50KCksdGhpcy5leGVjdXRlT3B0YW5vbldyYXBwZXIoKSxudWxsPT0odD1udWxsPT0oZT1iKT92b2lkIDA6ZS5tb2R1bGVJbml0aWFsaXplcil8fCF0LkJhbm5lclJlZnJlc2hBZnRlckNhbGxUb0FjdGlvbkVuYWJsZWR8fG8hPT1xbiYmbyE9PVVufHx0aGlzLnJlbG9hZFBhZ2UoKX0sbnIucHJvdG90eXBlLnNldEludGVyYWN0aW9uVHlwZT1mdW5jdGlvbih0LG8pe3RyeXt2YXIgZT10KyIgLSAiK287cmV0dXJuIGU9Ty5Ob0Jhbm5lciYmTy5TaG93UHJlZmVyZW5jZUNlbnRlckNsb3NlQnV0dG9uJiZ0PT09eG4mJkQuYmFubmVyQ2xvc2VTb3VyY2U9PT1aLkJhbm5lckNsb3NlQnV0dG9uJiZ0IT09SG4/dWVbMTNdOmV9Y2F0Y2goZSl7cmV0dXJuIHQrIiAtICIrb319LG5yLnByb3RvdHlwZS5yZWxvYWRQYWdlPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUcmlnZ2VyaW5nIFBhZ2UgUmVmcmVzaCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtsb2NhdGlvbi5yZWxvYWQoKX0sMjAwKX0sbnIucHJvdG90eXBlLmV4ZWN1dGVPcHRhbm9uV3JhcHBlcj1mdW5jdGlvbigpe3RyeXtpZigiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93Lk9wdGFub25XcmFwcGVyJiYidW5kZWZpbmVkIiE9PXdpbmRvdy5PcHRhbm9uV3JhcHBlcil7d2luZG93Lk9wdGFub25XcmFwcGVyKCk7Zm9yKHZhciBlPTAsdD1ELnNyY0V4ZWNHcnBzVGVtcDtlPHQubGVuZ3RoO2UrKyl7dmFyIG89dFtlXTstMT09PUQuc3JjRXhlY0dycHMuaW5kZXhPZihvKSYmRC5zcmNFeGVjR3Jwcy5wdXNoKG8pfUQuc3JjRXhlY0dycHNUZW1wPVtdO2Zvcih2YXIgbj0wLHI9RC5odG1sRXhlY0dycHNUZW1wO248ci5sZW5ndGg7bisrKXtvPXJbbl07LTE9PT1ELmh0bWxFeGVjR3Jwcy5pbmRleE9mKG8pJiZELmh0bWxFeGVjR3Jwcy5wdXNoKG8pfUQuaHRtbEV4ZWNHcnBzVGVtcD1bXX19Y2F0Y2goZSl7Y29uc29sZS53YXJuKCJFcnJvciBpbiBPcHRhbm9uIHdyYXBwZXIsIHBsZWFzZSByZXZpZXcgeW91ciBjb2RlLiAiK2UpfX0sbnIucHJvdG90eXBlLnVwZGF0ZVZlbmRvckxlZ0J0bnM9ZnVuY3Rpb24oZSl7aWYoXy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMSSYmXy5sZWdJbnRTZXR0aW5ncy5QU2hvd0xlZ0ludEJ0bilmb3IodmFyIHQ9bShULlBfVmVuZG9yX0NvbnRhaW5lcisiIC5vdC1sZWctYnRuLWNvbnRhaW5lciIpLmVsLG89MDtvPHQubGVuZ3RoO28rKyl0aGlzLmdyb3Vwc0NsYXNzLnVwZGF0ZUxlZ0ludEJ0bkVsZW1lbnQodFtvXSxlKX0sbnIucHJvdG90eXBlLnNob3dGbHRnQ2tTdGdCdXR0b249ZnVuY3Rpb24oKXt2YXIgZT1tKCIjb3Qtc2RrLWJ0bi1mbG9hdGluZyIpLGU9KGUucmVtb3ZlQ2xhc3MoIm90LWhpZGUiKSxlLnJlbW92ZUNsYXNzKCJvdC1wYy1vcGVuIiksTy5jb29raWVQZXJzaXN0ZW50TG9nby5pbmNsdWRlcygib3RfZ3VhcmRfbG9nby5zdmciKSYmbShDLmZsdGdGcm9udEJ0blN2ZykuYXR0cihtdCwiIiksbShDLmZsdGdCYWNrQnRuU3ZnKS5hdHRyKG10LCJ0cnVlIiksZG9jdW1lbnQucXVlcnlTZWxlY3RvcihDLmZsdGdCdG5CYWNrQnRuKSksdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKEMuZmx0Z0J0bkZyb250QnRuKTt0JiYodC5zZXRBdHRyaWJ1dGUobXQsImZhbHNlIiksdC5zdHlsZS5kaXNwbGF5PSJibG9jayIpLGUmJihlLnNldEF0dHJpYnV0ZShtdCwidHJ1ZSIpLGUuc3R5bGUuZGlzcGxheT0ibm9uZSIpfSxuci5wcm90b3R5cGUuY29uc2VudFRyYW5zYWN0aW9ucz1mdW5jdGlvbihlLHQsbyl7dm9pZCAwPT09byYmKG89ITEpLHhzJiYhZSYmTy5Jc0NvbnNlbnRMb2dnaW5nRW5hYmxlZD8oZT12b2lkIDAsZT1fLmFwaVNvdXJjZT9IbjpvP3huOkduLHhzLmNyZWF0ZUNvbnNlbnRUeG4oITEsZSsiIC0gIisodD9GbjpNbiksbyksXy5hcGlTb3VyY2U9dm9pZCAwKTp3LmRpc3BhdGNoQ29uc2VudEV2ZW50KCl9LG5yLnByb3RvdHlwZS5oaWRlVmVuZG9yc0xpc3Q9ZnVuY3Rpb24oKXtibi5jaGVja0lmUGNTZGtDb250YWluZXJFeGlzdCgpfHwoTy5QQ1RlbXBsYXRlVXBncmFkZT9tKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0NvbnRlbnQpLnJlbW92ZUNsYXNzKCJvdC1oaWRlIik6bSgiI29uZXRydXN0LXBjLXNkayAub3QtbWFpbi1jb250ZW50Iikuc2hvdygpLG0oIiNvbmV0cnVzdC1wYy1zZGsgI2Nsb3NlLXBjLWJ0bi1oYW5kbGVyLm1haW4iKS5zaG93KCksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfTGlzdCkuYWRkQ2xhc3MoIm90LWhpZGUiKSl9LG5yLnByb3RvdHlwZS5yZXNldENvbnNlbnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5nZXRJbml0aWFsQ29uc2VudCgpO0QuZ3JvdXBzQ29uc2VudD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKSxELmhvc3RzQ29uc2VudD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEQuaW5pdGlhbEhvc3RDb25zZW50KSksRC5zaG93R2VuZXJhbFZlbmRvcnMmJihELmdlblZlbmRvcnNDb25zZW50PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoRC5pbml0aWFsR2VuVmVuZG9yc0NvbnNlbnQpKSksRC52c0lzQWN0aXZlQW5kT3B0T3V0JiYoRC52c0NvbnNlbnQ9bmV3IE1hcChELmluaXRpYWxWZW5kb3JzU2VydmljZUNvbnNlbnQpKSxPLklzSWFiRW5hYmxlZCYmKEQub25lVHJ1c3RJQUJDb25zZW50PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoRC5pbml0aWFsT25lVHJ1c3RJQUJDb25zZW50KSksRC52ZW5kb3JzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoRC5pbml0aWFsVmVuZG9ycykpLEQudmVuZG9ycy52ZW5kb3JUZW1wbGF0ZT1ELmluaXRpYWxWZW5kb3JzLnZlbmRvclRlbXBsYXRlKSxPLlVzZUdvb2dsZVZlbmRvcnMmJihELmFkZHRsVmVuZG9ycz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEQuaW5pdGlhbEFkZHRsVmVuZG9ycykpLEQuYWRkdGxWZW5kb3JzTGlzdD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEQuaW5pdGlhbEFkZHRsVmVuZG9yc0xpc3QpKSksc2V0VGltZW91dChmdW5jdGlvbigpe2UucmVzZXRDb25zZW50VUkoKX0sNDAwKX0sbnIucHJvdG90eXBlLmdldEluaXRpYWxDb25zZW50PWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIE8uTm9CYW5uZXImJk8uU2hvd1ByZWZlcmVuY2VDZW50ZXJDbG9zZUJ1dHRvbiYmMDxfLmNvbnNlbnRhYmxlSW1wbGllZENvbnNlbnRHcm91cC5sZW5ndGg/KGU9RC5pbml0aWFsR3JvdXBzQ29uc2VudC5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zcGxpdCgiOiIpWzBdO3JldHVybiBfLmNvbnNlbnRhYmxlSW1wbGllZENvbnNlbnRHcm91cC5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLkN1c3RvbUdyb3VwSWQ9PT10fSk/dCsiOjEiOmV9KSxfLmNvbnNlbnRhYmxlSW1wbGllZENvbnNlbnRHcm91cD1bXSxlKTpELmluaXRpYWxHcm91cHNDb25zZW50fSxuci5wcm90b3R5cGUuc2V0TGJsVHh0Rm9yVGdsPWZ1bmN0aW9uKGUsdCl7ZT1lLnF1ZXJ5U2VsZWN0b3IoIi5vdC1sYWJlbC1zdGF0dXMiKTtPLlBDU2hvd0NvbnNlbnRMYWJlbHMmJmUmJihlLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQodD9PLlBDQWN0aXZlVGV4dDpPLlBDSW5hY3RpdmVUZXh0KSl9LG5yLnByb3RvdHlwZS5yZXNldENvbnNlbnRVST1mdW5jdGlvbigpe3ZhciBwPXRoaXM7Vi5nZXRBbGxHcm91cEVsZW1lbnRzKCkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLmdldEF0dHJpYnV0ZSgiZGF0YS1vcHRhbm9uZ3JvdXBpZCIpLHQ9eS5nZXRHcm91cEJ5SWQodCksbz1WLmlzR3JvdXBBY3RpdmUodCksbj1FLkdyb3VwVHlwZXM7aWYoXy5wY05hbWU9PT1pdCYmTy5QQ1RlbXBsYXRlVXBncmFkZSYmKGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI290LWRlc2MtaWQtIitlLmdldEF0dHJpYnV0ZSgiZGF0YS1vcHRhbm9uZ3JvdXBpZCIpKSkscC5zZXRMYmxUeHRGb3JUZ2woZSxvKSx0LlR5cGU9PT1QdHx8dC5UeXBlPT09bi5TdGFja3x8MDwobnVsbD09KG49dC5TdWJHcm91cHMpP3ZvaWQgMDpuLmxlbmd0aCkpZm9yKHZhciByPWUucXVlcnlTZWxlY3RvcignaW5wdXRbY2xhc3MqPSJjYXRlZ29yeS1zd2l0Y2gtaGFuZGxlciJdJyksaT0odi5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwscixvKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIitULlBfU3ViZ3JwX2xpKSkscz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgYT15LmdldEdyb3VwQnlJZChpW3NdLmdldEF0dHJpYnV0ZSgiZGF0YS1vcHRhbm9uZ3JvdXBpZCIpKSxsPShhLk9wdGFub25Hcm91cElkLFYuaXNHcm91cEFjdGl2ZShhKSksYz1pW3NdLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W2NsYXNzKj0iY29va2llLXN1Ymdyb3VwLWhhbmRsZXIiXScpLGQ9aVtzXS5xdWVyeVNlbGVjdG9yKCIub3QtbGFiZWwtc3RhdHVzIiksdT1lLnF1ZXJ5U2VsZWN0b3IoIi5vdC1sYWJlbC1zdGF0dXMiKTtPLlBDU2hvd0NvbnNlbnRMYWJlbHMmJmQmJih1LmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQobD9PLlBDQWN0aXZlVGV4dDpPLlBDSW5hY3RpdmVUZXh0KSksdi5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwsYyxsKSxDLnJlc2V0TGVnSW50QnV0dG9uKGEsaVtzXSl9ZWxzZXtyPWUucXVlcnlTZWxlY3RvcignaW5wdXRbY2xhc3MqPSJjYXRlZ29yeS1zd2l0Y2gtaGFuZGxlciJdJyk7di5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwscixvKSxDLnJlc2V0TGVnSW50QnV0dG9uKHQsZSl9fSksTy5Jc0lhYkVuYWJsZWQmJlduLnRvZ2dsZVZlbmRvckNvbnNlbnQoKSx0aGlzLnJlc2V0R2VuVmVuVUkoKSx0aGlzLnJlc2V0R29vZ2xlVmVuVUkoKSxELnZzSXNBY3RpdmVBbmRPcHRPdXQmJkIucmVzZXRWZW5kb3JVSVN0YXRlKEQudnNDb25zZW50KX0sbnIucHJvdG90eXBlLnJlc2V0R2VuVmVuVUk9ZnVuY3Rpb24oKXt2YXIgZT1tKCIjb25ldHJ1c3QtcGMtc2RrIC5vdC1nbnZlbi1jaGtib3gtaGFuZGxlciIpLmVsO2lmKEQuc2hvd0dlbmVyYWxWZW5kb3JzJiZlJiZlLmxlbmd0aCl7Zm9yKHZhciB0PTAsbz1lO3Q8by5sZW5ndGg7dCsrKXt2YXIgbj1vW3RdLHI9bi5nZXRBdHRyaWJ1dGUoImduLXZpZCIpLGk9Qm9vbGVhbihELmdlblZlbmRvcnNDb25zZW50W3JdKTt2LnNldENoZWNrZWRBdHRyaWJ1dGUoIiIsbixpKSxMby51cGRhdGVHZW5WZW5kb3JTdGF0dXMocixpKX1nLmdlblZlblNlbGVjdEFsbFRnbEV2ZW50KCl9fSxuci5wcm90b3R5cGUucmVzZXRHb29nbGVWZW5VST1mdW5jdGlvbigpe3ZhciBlPW0oIiNvbmV0cnVzdC1wYy1zZGsgLm90LWFkZHRsdmVuLWNoa2JveC1oYW5kbGVyIikuZWw7aWYoTy5Vc2VHb29nbGVWZW5kb3JzJiZlJiZlLmxlbmd0aClmb3IodmFyIHQ9MCxvPWU7dDxvLmxlbmd0aDt0Kyspe3ZhciBuPW9bdF0scj1uLmdldEF0dHJpYnV0ZSgiYWRkdGwtdmlkIik7RC5hZGR0bFZlbmRvcnNMaXN0W3JdJiYocj1Cb29sZWFuKEQuYWRkdGxWZW5kb3JzLnZlbmRvclNlbGVjdGVkW3JdKSx2LnNldENoZWNrZWRBdHRyaWJ1dGUoIiIsbixyKSl9fSxuci5wcm90b3R5cGUucmVzZXRMZWdJbnRCdXR0b249ZnVuY3Rpb24oZSx0KXt2YXIgbztfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJJiZlLlR5cGU9PT1FLkdyb3VwVHlwZXMuUHVyJiZlLkhhc0xlZ0ludE9wdE91dCYmXy5sZWdJbnRTZXR0aW5ncy5QU2hvd0xlZ0ludEJ0biYmKG89ITAsLTE8RC52ZW5kb3JzLnNlbGVjdGVkTGVnSW50LmluZGV4T2YoZS5JYWJHcnBJZCsiOmZhbHNlIikmJihvPSExKSxWLnVwZGF0ZUxlZ0ludEJ0bkVsZW1lbnQodCxvKSl9LG5yLnByb3RvdHlwZS5oYW5kbGVUb2dnbGVzT25TaW5ndWxhckNvbnNlbnRVcGRhdGU9ZnVuY3Rpb24oZSx0KXtpZih0aGlzLmNsb3NlT3B0YW5vbkFsZXJ0Qm94KCksZT09PWd0KWZvcih2YXIgcz10aGlzLG89MCxuPXQ7bzxuLmxlbmd0aDtvKyspe3ZhciByPW5bb107KChlLHQpPT57Zm9yKHZhciBvPXkuZ2V0R3JvdXBCeUlkKGUpLG49cy5ncm91cHNDbGFzcy5nZXRBbGxHcm91cEVsZW1lbnRzKCkscj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgaT15LmdldEdyb3VwQnlJZChuW3JdLmdldEF0dHJpYnV0ZSgiZGF0YS1vcHRhbm9uZ3JvdXBpZCIpKTtpZihpLk9wdGFub25Hcm91cElkPT09by5PcHRhbm9uR3JvdXBJZCYmIWkuUGFyZW50KXt1LnRvZ2dsZVYyQ2F0ZWdvcnkobnVsbCxpLHQsaS5DdXN0b21Hcm91cElkKTticmVha31pPWkuU3ViR3JvdXBzLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuT3B0YW5vbkdyb3VwSWQ9PT1vLk9wdGFub25Hcm91cElkfSk7aSYmdS50b2dnbGVTdWJDYXRlZ29yeShudWxsLGkuQ3VzdG9tR3JvdXBJZCx0LGkuQ3VzdG9tR3JvdXBJZCl9fSkoYz1yLmlkLGQ9ci5pc0VuYWJsZWQpfWVsc2UgaWYoZT09PWZ0KWZvcih2YXIgaT0wLGE9dDtpPGEubGVuZ3RoO2krKyl7dmFyIGw9YVtpXSxjPWwuaWQsZD1sLmlzRW5hYmxlZCxsPXkuZ2V0R3JwQnlWZW5kb3JJZChjKTtsJiZCLnRvZ2dsZVZlbmRvclNlcnZpY2UobC5DdXN0b21Hcm91cElkLGMsZCl9dGhpcy5jbG9zZSghMSwkLkFQSSl9LG5yLnByb3RvdHlwZS5jaGVja0ltcGxpY2l0Q29uc2VudFdoZW5CYW5uZXJJc0Nsb3NlZD1mdW5jdGlvbihlKXt2YXIgdDt2b2lkIDA9PT1lJiYoZT0hMSksdy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKXx8IU9vLmlzTGFuZGluZ1BhZ2UoKSYmIWV8fChELmJhbm5lckNsb3NlU291cmNlPT09Wi5CYW5uZXJDbG9zZUJ1dHRvbiYmXy5yZXNldEltcGxpZWRDb25zZW50YWJsZUdyb3VwcygpLHQ9bmV3IE1hcCxfLmNvbnNlbnRhYmxlSW1wbGllZENvbnNlbnRHcm91cC5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByO24uU3RhdHVzPT09Zi5JTkFDVElWRV9MQU5ESU5HX1BBR0UmJjA8PShyPXYuZmluZEluZGV4KEQuZ3JvdXBzQ29uc2VudCxmdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdCgiOiIpWzBdPT09bi5DdXN0b21Hcm91cElkfSkpJiYodC5zZXQobi5DdXN0b21Hcm91cElkLG4pLEYobi5TdWJHcm91cHMsW25dKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PV8uZ3BjRW5hYmxlZCYmZS5Jc0dwY0VuYWJsZWQsbz1fLkROVEVuYWJsZWQmJmUuSXNEbnRFbmFibGVkO0QuZ3JvdXBzQ29uc2VudFtyXT1uLkN1c3RvbUdyb3VwSWQrIjoxIiwodHx8bykmJihELmdyb3Vwc0NvbnNlbnRbcl09bi5DdXN0b21Hcm91cElkKyI6MCIpLCF0JiYhbyYmZS5Ib3N0cy5sZW5ndGgmJmguaXNPcHRPdXRFbmFibGVkKCkmJmUuSG9zdHMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gd28udXBkYXRlSG9zdFN0YXR1cyhlLCEwKX0pLCF0JiYhbyYmRC5nZW5WZW5PcHRPdXRFbmFibGVkJiZlLkdlbmVyYWxWZW5kb3JzSWRzJiZlLkdlbmVyYWxWZW5kb3JzSWRzLmxlbmd0aCYmZS5HZW5lcmFsVmVuZG9yc0lkcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBMby51cGRhdGVHZW5WZW5kb3JTdGF0dXMoZSwhMCl9KX0pKX0pLHRoaXMuc2V0SW1wbGljaXRDb25zZW50VUkodCkpfSxuci5wcm90b3R5cGUuc2V0SW1wbGljaXRDb25zZW50VUk9ZnVuY3Rpb24oZSl7dmFyIG89dGhpcztlLnNpemU8PTB8fGUuZm9yRWFjaChmdW5jdGlvbihlLHQpe3Q9by5nZXRHcm91cEVsZW1lbnQodCk7dCYmKG8uZ3JvdXBzQ2xhc3MudG9nZ2xlR3JwRWxlbWVudHModCxlLCEwKSxvLmdyb3Vwc0NsYXNzLnRvb2dsZVN1Ykdyb3VwRWxlbWVudCh0LCEwLCExLCEwKSxvLmdyb3Vwc0NsYXNzLnRvb2dsZVN1Ykdyb3VwRWxlbWVudCh0LCEwLCEwLCEwKSl9KX0sbnIucHJvdG90eXBlLmdldEdyb3VwRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2I29uZXRydXN0LXBjLXNkayAiK1QuUF9DYXRlZ29yeV9HcnArIiAiK1QuUF9DYXRlZ29yeV9JdGVtKydbZGF0YS1vcHRhbm9uZ3JvdXBpZD0iJytlKyciXTpub3QoLm90LXZuZC1pdGVtKScpfTt2YXIgQyxvcj1ucjtmdW5jdGlvbiBucigpe3ZhciBuPXRoaXM7dGhpcy5pYWI9Zyx0aGlzLmdyb3Vwc0NsYXNzPVYsdGhpcy5pc0F1dG9DbG9zZVRyaWdnZXI9ITEsdGhpcy5mbHRnQmFja0J0blN2Zz0iLm90LWZsb2F0aW5nLWJ1dHRvbl9fYmFjayBzdmciLHRoaXMuZmx0Z0Zyb250QnRuU3ZnPSIub3QtZmxvYXRpbmctYnV0dG9uX19mcm9udCBzdmciLHRoaXMuZmx0Z0J0bkJhY2tCdG49Ii5vdC1mbG9hdGluZy1idXR0b25fX2JhY2sgYnV0dG9uIix0aGlzLmZsdGdCdG5Gcm9udEJ0bj0iLm90LWZsb2F0aW5nLWJ1dHRvbl9fZnJvbnQgYnV0dG9uIix0aGlzLmNsb3NlT3B0YW5vbkFsZXJ0Qm94PWZ1bmN0aW9uKCl7dmFyIGU7aC5oaWRlQmFubmVyKCksbShkb2N1bWVudCkub2ZmKCJrZXlkb3duIix1LmNsb3NlUENXaGVuRXNjUHJlc3NlZCksTy5OdGZ5Q29uZmlnLlNob3dOdGZ5JiZCbi5oaWRlU3luY050ZnkoKSxUby5zZXRBbGVydEJveENsb3NlZCghMCksTy5QQ1RlbXBsYXRlVXBncmFkZSYmTy5QQ2VudGVyVXNlcklkVGl0bGVUZXh0JiZPLklzQ29uc2VudExvZ2dpbmdFbmFibGVkJiZuLnVwZGF0ZURhdGFTdWJqZWN0VGltZXN0YW1wKCksdy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKSYmKGU9bSgiLm9uZXRydXN0LXBjLWRhcmstZmlsdGVyIikuZWxbMF0pJiYibm9uZSIhPT1nZXRDb21wdXRlZFN0eWxlKGUpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKSYmbSgiLm9uZXRydXN0LXBjLWRhcmstZmlsdGVyIikuZmFkZU91dCg0MDApLEZzLmNzQnRuR3JvdXAmJm4uc2hvd0ZsdGdDa1N0Z0J1dHRvbigpfSx0aGlzLmJvZHlDbGlja0V2ZW50PWZ1bmN0aW9uKGUpe3ZhciB0PWUudGFyZ2V0O3QuY2xvc2VzdCgiI29uZXRydXN0LWJhbm5lci1zZGsiKXx8dC5jbG9zZXN0KCIjb25ldHJ1c3QtcGMtc2RrIil8fHQuY2xvc2VzdCgiLm9uZXRydXN0LXBjLWRhcmstZmlsdGVyIil8fHQuY2xvc2VzdCgiLm90LXNkay1zaG93LXNldHRpbmdzIil8fHQuY2xvc2VzdCgiLm9wdGFub24tc2hvdy1zZXR0aW5ncyIpfHx0LmNsb3Nlc3QoIi5vcHRhbm9uLXRvZ2dsZS1kaXNwbGF5Iil8fHQuY2xvc2VzdCgiLm90LWNvbmZpcm0tZGlhbG9nLW92ZXJsYXkiKXx8Qy5vbkNsaWNrQ2xvc2VCYW5uZXIoZSl9LHRoaXMuYmFubmVyQ2xvc2VCdXR0b25IYW5kbGVyPWZ1bmN0aW9uKG8pe3JldHVybiB2b2lkIDA9PT1vJiYobz0hMSksUChuLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gQSh0aGlzLGZ1bmN0aW9uKGUpe3N3aXRjaChlLmxhYmVsKXtjYXNlIDA6cmV0dXJuKEMuY2hlY2tJbXBsaWNpdENvbnNlbnRXaGVuQmFubmVySXNDbG9zZWQobyksQy5jbG9zZU9wdGFub25BbGVydEJveCgpLGIubW9kdWxlSW5pdGlhbGl6ZXIuTW9iaWxlU0RLKT8od2luZG93Lk9uZVRydXN0LkNsb3NlKCksWzMsNV0pOlszLDFdO2Nhc2UgMTpyZXR1cm4gZS50cnlzLnB1c2goWzEsMywsNF0pLFs0LGVyLmdldEluc3RhbmNlKCkuY2hlY2tJZkhlYWx0aFNpZ25hdHVyZU5lZWRlZCgpXTtjYXNlIDI6cmV0dXJuIGUuc2VudCgpLFszLDRdO2Nhc2UgMzpyZXR1cm4gdD1lLnNlbnQoKSxjb25zb2xlLmVycm9yKHQpLFszLDRdO2Nhc2UgNDp0PSQuQmFubmVyLChELmJhbm5lckNsb3NlU291cmNlPT09Wi5Db25maXJtQ2hvaWNlQnV0dG9ufHxELmJhbm5lckNsb3NlU291cmNlPT09Wi5CYW5uZXJDbG9zZUJ1dHRvbiYmRC5wY0Nsb3NlZEZyb21DbG9zZUJ0bikmJih0PSQuUEMpLEMuY2xvc2Uobyx0KSxlLmxhYmVsPTU7Y2FzZSA1OnJldHVyblsyLCExXX19KX0pfSx0aGlzLmFsbG93QWxsRXZlbnRIYW5kbGVyPWZ1bmN0aW9uKHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj0hMSksUChuLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbyx0LG49dGhpcztyZXR1cm4gQSh0aGlzLGZ1bmN0aW9uKGUpe3JldHVybiBtKGRvY3VtZW50KS5vZmYoImtleWRvd24iLHUuc2hpZnRCYW5uZXJGb2N1cyksbz1yPyJQcmVmZXJlbmNlcyBBbGxvdyBBbGwiOiJCYW5uZXIgQWNjZXB0IENvb2tpZXMiLHQ9ZnVuY3Rpb24oKXtyZXR1cm4gUChuLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gQSh0aGlzLGZ1bmN0aW9uKGUpe3N3aXRjaChlLmxhYmVsKXtjYXNlIDA6VG8udHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50KHhvLG8pLHImJl8ucmVxdWlyZVNpZ25hdHVyZUVuYWJsZWQmJihibi5oaWRlQ29uc2VudE5vdGljZVYyKCksdGhpcy5jbG9zZU9wdGFub25BbGVydEJveCgpKSxlLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBlLnRyeXMucHVzaChbMSwzLCw0XSksWzQsZXIuZ2V0SW5zdGFuY2UoKS5jaGVja0lmSGVhbHRoU2lnbmF0dXJlTmVlZGVkKCEwKV07Y2FzZSAyOnJldHVybiBlLnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIHQ9ZS5zZW50KCksY29uc29sZS5lcnJvcih0KSxbMyw0XTtjYXNlIDQ6cmV0dXJuIHRoaXMuYWxsb3dBbGxFdmVudCghMSxyKSx0aGlzLmhpZGVWZW5kb3JzTGlzdCgpLFsyXX19KX0pfSxoLnNob3VsZFNob3dEb3VibGVPcHRJblNpZ25hbCghMCk/aC5jcmVhdGVEb3VibGVPcHRJbkNvbmZpcm1EaWFsb2cocix0KTp0KCksWzJdfSl9KX0sdGhpcy5hbGxvd0FsbEV2ZW50PWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09ZSYmKGU9ITEpLHZvaWQgMD09PXQmJih0PSExKSxuLmNsb3NlT3B0YW5vbkFsZXJ0Qm94KCksQy5hbGxvd0FsbChlLHQpfSx0aGlzLnJlamVjdEFsbEV2ZW50SGFuZGxlcj1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT0hMSksbShkb2N1bWVudCkub2ZmKCJrZXlkb3duIix1LnNoaWZ0QmFubmVyRm9jdXMpLFRvLnRyaWdnZXJHb29nbGVBbmFseXRpY3NFdmVudCh4byxlPyJQcmVmZXJlbmNlcyBSZWplY3QgQWxsIjoiQmFubmVyIFJlamVjdCBBbGwiKSxlci5nZXRJbnN0YW5jZSgpLnJlc2V0SGVhbHRoU2lnbmF0dXJlRGF0YSghMCksYi5tb2R1bGVJbml0aWFsaXplci5Nb2JpbGVTREs/d2luZG93Lk9uZVRydXN0LlJlamVjdEFsbCgpOihuLnJlamVjdEFsbEV2ZW50KCExLGUpLG4uaGlkZVZlbmRvcnNMaXN0KCkpfSx0aGlzLnJlamVjdEFsbEV2ZW50PWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09ZSYmKGU9ITEpLHZvaWQgMD09PXQmJih0PSExKSxuLmNsb3NlT3B0YW5vbkFsZXJ0Qm94KCksIXcuaXNJQUJDcm9zc0NvbnNlbnRFbmFibGVkKCl8fF8udGhpcmRQYXJ0eWlGcmFtZUxvYWRlZD9uLnJlamVjdEFsbChlLHQpOl8udGhpcmRQYXJ0eWlGcmFtZVByb21pc2UudGhlbihmdW5jdGlvbigpe24ucmVqZWN0QWxsKGUsdCl9KX19c3IucHJvdG90eXBlLnNldEZpbHRlckxpc3Q9ZnVuY3Rpb24obyl7dmFyIGUsbj10aGlzLHI9KG0oIiNvbmV0cnVzdC1wYy1zZGsgI290LWZpbHRlci1saXN0LWhlYWRlciIpLmh0bWwoTy5QQ0Nvb2tpZUxpc3RGaWx0ZXJzVGV4dCksbnVsbD09KGU9bnVsbD09KGU9bnVsbD09KGU9bSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9GbHRyX01vZGFsKyIgIitULlBfRmx0cl9PcHRpb24pKT92b2lkIDA6ZS5lbCk/dm9pZCAwOmVbMF0pP3ZvaWQgMDplLmNsb25lTm9kZSghMCkpO20oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfRmx0cl9Nb2RhbCsiICIrVC5QX0ZsdHJfT3B0aW9ucykuaHRtbCgiIiksKGIuaXNWMlRlbXBsYXRlfHxPLlBDTGF5b3V0LlBvcHVwKSYmKG0odGhpcy5DQU5DRUxfRklMVEVSKS5odG1sKE8uUENlbnRlckNhbmNlbEZpbHRlcnNUZXh0fHwiQ2FuY2VsIiksbSh0aGlzLkNBTkNFTF9GSUxURVIpLmF0dHIoU3QsTy5QQ2VudGVyQ2FuY2VsRmlsdGVyQXJpYUxhYmVsKSksIWIuaXNWMlRlbXBsYXRlJiZPLlBDTGF5b3V0LlBvcHVwfHwobSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9DbHJfRmx0cl9UeHQpLmh0bWwoTy5QQ2VudGVyQ2xlYXJGaWx0ZXJzVGV4dCksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9DbHJfRmx0cl9UeHQpLmF0dHIoU3QsTy5QQ2VudGVyQ2xlYXJGaWx0ZXJzQXJpYUxhYmVsKSxlPWguZ2V0VmVuZG9yUGFnZUhlYWRlclRleHQoKSxtKCIjZmlsdGVyLWJ0bi1oYW5kbGVyIikuZWxbMF0uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixPLlBDZW50ZXJGaWx0ZXJUZXh0KyIgIitlKSksbSgiI29uZXRydXN0LXBjLXNkayAjZmlsdGVyLWFwcGx5LWhhbmRsZXIiKS5odG1sKE8uUENlbnRlckFwcGx5RmlsdGVyc1RleHQpLG0oIiNvbmV0cnVzdC1wYy1zZGsgI2ZpbHRlci1hcHBseS1oYW5kbGVyIikuYXR0cihTdCxPLlBDZW50ZXJBcHBseUZpbHRlcnNBcmlhTGFiZWwpLG8/Xy5jb25zZW50YWJsZUdycHMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1ELmNvb2tpZUxpc3RUeXBlPT09Z2UuR2VuVmVufHxELmNvb2tpZUxpc3RUeXBlPT09Z2UuSG9zdEFuZEdlblZlbj9lLkhvc3RzLmxlbmd0aHx8ZS5GaXJzdFBhcnR5Q29va2llcy5sZW5ndGh8fGUuR2VuZXJhbFZlbmRvcnNJZHMmJmUuR2VuZXJhbFZlbmRvcnNJZHMubGVuZ3RoOmUuSG9zdHMubGVuZ3RofHxlLkZpcnN0UGFydHlDb29raWVzLmxlbmd0aDt0JiZuLmZpbHRlckdyb3VwT3B0aW9uU2V0dGVyKHIsZSxvKX0pOl8uaWFiR3Jwcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe24uZmlsdGVyR3JvdXBPcHRpb25TZXR0ZXIocixlLG8pfSl9LHNyLnByb3RvdHlwZS5zZXRGaWx0ZXJMaXN0QnlHcm91cD1mdW5jdGlvbihlLHQpe3ZhciBvLG4scj10aGlzOyFlfHxlLmxlbmd0aDw9MD9tKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0ZsdHJfTW9kYWwrIiAiK1QuUF9GbHRyX09wdGlvbnMpLmh0bWwoIiIpOihvPW51bGw9PShuPW51bGw9PShuPW51bGw9PShuPW0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfRmx0cl9Nb2RhbCsiICIrVC5QX0ZsdHJfT3B0aW9uKSk/dm9pZCAwOm4uZWwpP3ZvaWQgMDpuWzBdKT92b2lkIDA6bi5jbG9uZU5vZGUoITApLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfRmx0cl9Nb2RhbCsiICIrVC5QX0ZsdHJfT3B0aW9ucykuaHRtbCgiIiksKGIuaXNWMlRlbXBsYXRlfHxPLlBDTGF5b3V0LlBvcHVwKSYmKG0odGhpcy5DQU5DRUxfRklMVEVSKS5odG1sKE8uUENlbnRlckNhbmNlbEZpbHRlcnNUZXh0fHwiQ2FuY2VsIiksbSh0aGlzLkNBTkNFTF9GSUxURVIpLmF0dHIoU3QsTy5QQ2VudGVyQ2FuY2VsRmlsdGVyQXJpYUxhYmVsKSksIWIuaXNWMlRlbXBsYXRlJiZPLlBDTGF5b3V0LlBvcHVwfHwobSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9DbHJfRmx0cl9UeHQpLmh0bWwoTy5QQ2VudGVyQ2xlYXJGaWx0ZXJzVGV4dCksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9DbHJfRmx0cl9UeHQpLmF0dHIoU3QsTy5QQ2VudGVyQ2xlYXJGaWx0ZXJzQXJpYUxhYmVsKSxuPWguZ2V0VmVuZG9yUGFnZUhlYWRlclRleHQoKSxtKCIjZmlsdGVyLWJ0bi1oYW5kbGVyIikuZWxbMF0uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixPLlBDZW50ZXJGaWx0ZXJUZXh0KyIgIituKSksbSgiI29uZXRydXN0LXBjLXNkayAjZmlsdGVyLWFwcGx5LWhhbmRsZXIiKS5odG1sKE8uUENlbnRlckFwcGx5RmlsdGVyc1RleHQpLGUuZm9yRWFjaChmdW5jdGlvbihlKXtyLmZpbHRlckdyb3VwT3B0aW9uU2V0dGVyKG8sZSx0KX0pKX0sc3IucHJvdG90eXBlLmZpbHRlckdyb3VwT3B0aW9uU2V0dGVyPWZ1bmN0aW9uKGUsdCxvKXt2YXIgbj10LkN1c3RvbUdyb3VwSWQscj1uKyItZmlsdGVyIjtlJiYoZT1lLmNsb25lTm9kZSghMCksbShULlBfRmx0cl9Nb2RhbCsiICIrVC5QX0ZsdHJfT3B0aW9ucykuYXBwZW5kKGUpLG0oZS5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpKS5hdHRyKCJpZCIsciksbShlLnF1ZXJ5U2VsZWN0b3IoImxhYmVsIikpLmF0dHIoImZvciIsciksKGIuaXNWMlRlbXBsYXRlP20oZS5xdWVyeVNlbGVjdG9yKFQuUF9MYWJlbF9UeHQpKTptKGUucXVlcnlTZWxlY3RvcigibGFiZWwgc3BhbiIpKSkuaHRtbCh0Lkdyb3VwTmFtZSksbShlLnF1ZXJ5U2VsZWN0b3IoImlucHV0IikpLmF0dHIobz8iZGF0YS1vcHRhbm9uZ3JvdXBpZCI6ImRhdGEtcHVycG9zZWlkIixuKSl9O3ZhciBycixpcj1zcjtmdW5jdGlvbiBzcigpe3RoaXMuYm9keVNjcm9sbFByb3A9IiIsdGhpcy5odG1sU2Nyb2xsUHJvcD0iIix0aGlzLk9ORVRSVVNUX1BDX1NESz0iI29uZXRydXN0LXBjLXNkayIsdGhpcy5PTkVUUlVTVF9QQ19EQVJLX0ZJTFRFUj0iLm9uZXRydXN0LXBjLWRhcmstZmlsdGVyIix0aGlzLkNBTkNFTF9GSUxURVI9IiNvbmV0cnVzdC1wYy1zZGsgI2ZpbHRlci1jYW5jZWwtaGFuZGxlciJ9Y3IucHJvdG90eXBlLnNob3dQYXJhZ3JhcGg9ZnVuY3Rpb24oZSl7dmFyIHQ9Uih7fSxlKSxvPXQubGlzdFRpdGxlLG49dC5odG1sRnJhZ21lbnQsdD10LnBhcmFncnBoQ29udGFpbmVyU2VsZWN0b3I7YXIub3B0aW9ucz1lLGFyLmhpZGVPdGhlckh0bWxFbGVtZW50cyhlKSxhci5zZXRQYXJhZ3JhcGhUaXRsZShvKSxhci5hZGRJdGVtTGlzdFRvUm9vdEVsZW1lbnQobix0KX0sY3IucHJvdG90eXBlLmhpZGVQYXJhZ3JhcGhVST1mdW5jdGlvbigpe3ZhciBlPVIoe30sYXIub3B0aW9ucyksdD1lLnNob3dGb290ZXI7ZS5zaG93U2VhcmNoQm94fHwobnVsbCE9KGU9YXIuY2hlY2tib3hlc0NvbnRhaW5lckVsZSkmJmUuY2xhc3NMaXN0LnJlbW92ZSgib3QtaGlkZSIpLG51bGwhPShlPWFyLnNlYXJjaElucHV0Q29udGFpbmVyRWxlKSYmZS5jbGFzc0xpc3QucmVtb3ZlKCJvdC1oaWRlIiksbnVsbCE9KGU9YXIubGlzdEhvdHNWZW5kb3JzQ29udGFpbmVyRWxlKSYmZS5jbGFzc0xpc3QucmVtb3ZlKCJvdC1oaWRlIikpLHR8fChudWxsIT0oZT1hci5mb290ZXJCdXR0b25Db250YWluZXJFbGUpJiZlLmNsYXNzTGlzdC5yZW1vdmUoIm90LWhpZGUiKSx1LnNldENlbnRlckxheW91dEZvb3RlckhlaWdodCgpKSxhci5yb290RWxlLnJlbW92ZUNoaWxkKGFyLnBhcmFncmFwaENvbnRhaW5lckVsZSl9LGNyLnByb3RvdHlwZS5hZGRJdGVtTGlzdFRvUm9vdEVsZW1lbnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9MaXN0KTthci5yb290RWxlPW8ucXVlcnlTZWxlY3Rvcih0aGlzLk1BSU5fQ09OVF9FTEUpLGFyLnJvb3RFbGUuYXBwZW5kQ2hpbGQoZSksYXIucGFyYWdyYXBoQ29udGFpbmVyRWxlPWFyLnJvb3RFbGUucXVlcnlTZWxlY3Rvcih0KX0sY3IucHJvdG90eXBlLnNldFBhcmFncmFwaFRpdGxlPWZ1bmN0aW9uKGUpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX1RpdGxlKycsICNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC10aXRsZSBwW2FyaWEtbGV2ZWw9IjMiXScpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoZSl9LGNyLnByb3RvdHlwZS5oaWRlT3RoZXJIdG1sRWxlbWVudHM9ZnVuY3Rpb24oZSl7dmFyIGU9Uih7fSxlKSx0PWUuc2hvd0Zvb3RlcixlPWUuc2hvd1NlYXJjaEJveCxvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX0xpc3QpLG89KCFlJiZvJiYoYXIuY2hlY2tib3hlc0NvbnRhaW5lckVsZT1vLnF1ZXJ5U2VsZWN0b3IodGhpcy5TRUxfQkxLX0VMRSksYXIuc2VhcmNoSW5wdXRDb250YWluZXJFbGU9by5xdWVyeVNlbGVjdG9yKHRoaXMuTFNUX1NVQkhEUl9FTEUpLGFyLmxpc3RIb3RzVmVuZG9yc0NvbnRhaW5lckVsZT1vLnF1ZXJ5U2VsZWN0b3IodGhpcy5TREtfUk9XX0VMRSksbnVsbCE9KGU9YXIuY2hlY2tib3hlc0NvbnRhaW5lckVsZSkmJmUuY2xhc3NMaXN0LmFkZCgib3QtaGlkZSIpLG51bGwhPShvPWFyLnNlYXJjaElucHV0Q29udGFpbmVyRWxlKSYmby5jbGFzc0xpc3QuYWRkKCJvdC1oaWRlIiksbnVsbCE9KGU9YXIubGlzdEhvdHNWZW5kb3JzQ29udGFpbmVyRWxlKSkmJmUuY2xhc3NMaXN0LmFkZCgib3QtaGlkZSIpLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLWZvb3RlciAub3QtYnRuLWNvbnRhaW5lciIpKTshdCYmbyYmKGFyLmZvb3RlckJ1dHRvbkNvbnRhaW5lckVsZT1vLG51bGwhPShlPWFyLmZvb3RlckJ1dHRvbkNvbnRhaW5lckVsZSkmJmUuY2xhc3NMaXN0LmFkZCgib3QtaGlkZSIpLHUuc2V0Q2VudGVyTGF5b3V0Rm9vdGVySGVpZ2h0KCkpfTt2YXIgYXIsbHI9Y3I7ZnVuY3Rpb24gY3IoKXt0aGlzLlNES19ST1dfRUxFPSIub3Qtc2RrLXJvdyIsdGhpcy5TRUxfQkxLX0VMRT0iI290LXNlbC1ibGsiLHRoaXMuTUFJTl9DT05UX0VMRT0iI290LWxzdC1jbnQiLHRoaXMuTFNUX1NVQkhEUl9FTEU9Ii5vdC1sc3Qtc3ViaGRyIn1wci5wcm90b3R5cGUuc2hvd0lsbHVzdHJhdGlvbnM9ZnVuY3Rpb24oZSx0KXtlPWRyLmluc2VydFBhcmFncmFwaENvbnRhaW5lcihlLHQpLHQ9e3Nob3dGb290ZXI6ITEsc2hvd1NlYXJjaEJveDohMSxsaXN0VGl0bGU6Ty5QQ0lsbHVzVGV4dCxodG1sRnJhZ21lbnQ6ZSxwYXJhZ3JwaENvbnRhaW5lclNlbGVjdG9yOiIuIit0aGlzLlBBUkFHUkFQSF9DT05UQUlORVJfRUxFfTthci5zaG93UGFyYWdyYXBoKHQpfSxwci5wcm90b3R5cGUuaGlkZVVJPWZ1bmN0aW9uKCl7YXIuaGlkZVBhcmFncmFwaFVJKCl9LHByLnByb3RvdHlwZS5hZGRJbGx1c3RyYXRpb25zTGluaz1mdW5jdGlvbihlLHQsbyxuKXt2b2lkIDA9PT1uJiYobj0hMSk7dmFyIHI9dC5JYWJJbGx1c3RyYXRpb25zJiYwPHQuSWFiSWxsdXN0cmF0aW9ucy5sZW5ndGg7byYmciYmTy5QQ0dycERlc2NUeXBlPT09b2UuVXNlckZyaWVuZGx5JiYobz1PLlBDVmVuZG9yRnVsbExlZ2FsVGV4dCsiJm5ic3A7Iiwocj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKSkuY2xhc3NMaXN0LmFkZCgib3QtbGluay1idG4iKSxyLmNsYXNzTGlzdC5hZGQoIm90LXBncGgtbGluayIpLHIuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0Lkdyb3VwTmFtZSsiLCAiK08uUENWZW5kb3JGdWxsTGVnYWxUZXh0KSxyLnNldEF0dHJpYnV0ZSgiZGF0YS1wYXJlbnQtaWQiLHQuQ3VzdG9tR3JvdXBJZCksbj8oci5jbGFzc0xpc3QuYWRkKCJvdC1wZ3BoLWxpbmstc3ViZ3JvdXAiKSxlLmFwcGVuZENoaWxkKHIpKToobz0iJm5ic3A7fCZuYnNwIitvLGUuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIscikpLHIuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChvKSl9LHByLnByb3RvdHlwZS5pbnNlcnRQYXJhZ3JhcGhDb250YWluZXI9ZnVuY3Rpb24oZSx0KXt2YXIgbz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPShuLmNsYXNzTGlzdC5hZGQodGhpcy5QQVJBR1JBUEhfQ09OVEFJTkVSX0VMRSksZHIuaW5zZXJ0UHVycG9zZVRpdGxlKGUpKSxyPShuLmFwcGVuZENoaWxkKGUpLGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTtyZXR1cm4gci5jbGFzc0xpc3QuYWRkKCJvdC1wYXJhZ3JhcGgtbHN0IiksdC5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7ZT1kci5pbnNlcnREZXNjcmlwdGlvbkVsZW1lbnQoZSx0KTtyLmFwcGVuZENoaWxkKGUpfSksbi5hcHBlbmRDaGlsZChyKSxvLmFwcGVuZENoaWxkKG4pLG99LHByLnByb3RvdHlwZS5pbnNlcnRQdXJwb3NlVGl0bGU9ZnVuY3Rpb24oZSl7bnVsbCE9KG89Yi5tb2R1bGVJbml0aWFsaXplcikmJm8uU0VPT3B0aW1pemF0aW9uPygodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIikpLnNldEF0dHJpYnV0ZSgicm9sZSIsImhlYWRpbmciKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1sZXZlbCIsIjQiKSk6dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoNCIpLHQuY2xhc3NMaXN0LmFkZCgib3QtcGdwaC10aXRsZSIpO3ZhciB0LG89ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSk7cmV0dXJuIHQuYXBwZW5kQ2hpbGQobyksdH0scHIucHJvdG90eXBlLmluc2VydERlc2NyaXB0aW9uRWxlbWVudD1mdW5jdGlvbihlLHQpe3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTtyZXR1cm4gby5zZXRBdHRyaWJ1dGUoImlkIiwib3QtcGdwaC1kZXNjLWlkLSIrdCksby5jbGFzc0xpc3QuYWRkKCJvdC1wZ3BoLWRlc2MiKSxvLmlubmVyVGV4dD1lLG99O3ZhciBkcix1cj1wcjtmdW5jdGlvbiBwcigpe3RoaXMuUEFSQUdSQVBIX0NPTlRBSU5FUl9FTEU9Im90LXBncGgtY29udHIifW4ucHJvdG90eXBlLmluc2VydFBjSHRtbD1mdW5jdGlvbigpe0cuanNvbkFkZEFib3V0Q29va2llcyhPKTt2YXIgdD1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZT0oRnMucHJlZmVyZW5jZUNlbnRlckdyb3VwJiYobz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxtKG8pLmh0bWwoRnMucHJlZmVyZW5jZUNlbnRlckdyb3VwLmh0bWwpLG89by5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3QtcGMtc2RrIiksRy5hZGRDbGFzc2VzUGVyQ29uZmlnKG8pLG0odCkuYXBwZW5kKG8pLEcubWFuYWdlQ2xvc2VCdXR0b25zKG8sbz1mdW5jdGlvbihlKXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yQWxsKGUpfSxuPWZ1bmN0aW9uKGUpe3JldHVybiB0LnF1ZXJ5U2VsZWN0b3IoZSl9KSxPLkxhbmd1YWdlJiZPLkxhbmd1YWdlLkN1bHR1cmUmJm0obigiI29uZXRydXN0LXBjLXNkayIpKS5hdHRyKCJsYW5nIixPLkxhbmd1YWdlLkN1bHR1cmUpLEcuYWRkTG9nb3MobixvKSxtKG4oVC5QX1RpdGxlKSkuaHRtbChPLk1haW5UZXh0KSxPLlBDQ2xvc2VCdXR0b25UeXBlPT09dmUuTGluayYmTy5QQ1RlbXBsYXRlVXBncmFkZSYmXy5wY05hbWU9PT1pdCYmbShuKFQuUF9UaXRsZSkpLmFkZENsYXNzKCJvdC1wYy10aXRsZS1zaHJpbmsiKSxPLlBDVGVtcGxhdGVVcGdyYWRlJiZtKG4obW4rJyA+IGRpdltyb2xlPSJkaWFsb2ciXScpKS5jc3MoImhlaWdodDogMTAwJTsiKSxtKG4obW4rJyA+IGRpdltyb2xlPSJkaWFsb2ciXScpKS5hdHRyKHRoaXMuX2FyaWFMYWJlbCxPLk1haW5UZXh0KSxfLnBjTmFtZT09PWl0JiYobnVsbCE9KGU9bShuKFQuUF9UaXRsZSkpKSYmZS5hdHRyKCJ0aXRsZSIsTy5NYWluVGV4dCksbShuKFQuUF9Qcml2YWN5X1R4dCkpLmh0bWwoTy5BYm91dENvb2tpZXNUZXh0KSxtKG4oVC5QX1ByaXZhY3lfSGRyKSkuaHRtbChPLkFib3V0Q29va2llc1RleHQpLG51bGwhPShlPW0obigiI29uZXRydXN0LXBjLXNkayAiK1QuUF9Db250ZW50KyIgLm90LXRhYi1saXN0IikpKSYmZS5hdHRyKHRoaXMuX2FyaWFMYWJlbCxPLlBDZW50ZXJDb29raWVDYXRlZ29yaWVzQXJpYUxhYmVsKSxHLnVwZGF0ZVRpdGxlRm9yTW9iaWxlVmlldyhuKSksZT0nPHNwYW4gY2xhc3M9Im90LXRjZjItdmVuZG9yLWNvdW50IG90LXRleHQtYm9sZCB0Y2YyLXZjb3VudCI+JytfLnRjZjJBY3RpdmVWZW5kb3JzLmFsbC50b1N0cmluZygpKyI8L3NwYW4+IixlPWgucmVwbGFjZVRleHRGcm9tU3RyaW5nKCJbVkVORE9SX05VTUJFUl0iLE8uTWFpbkluZm9UZXh0LGUpLG0obihULlBfUG9saWN5X1R4dCkpLmh0bWwoZSksRy5jb25maWd1cmVMaW5rRmllbGRzKG4sbyksRy5jb25maWd1cmVTdWJqZWN0RGF0YUZpZWxkcyhuKSxHLmNvbmZpZ3VyZUJ1dHRvbnMobixvKSxHLnNldE1hbmFnZVByZWZlcmVuY2VUZXh0KG4pLEcuaW5pdGlhbGl6ZVByZWZlcmVuY2VDZW50ZXJHcm91cHMobix0KSxHLnJlbW92ZUxpc3RzV2hlbkFwcHJvcHJpYXRlKG4pLGguYWRkRXh0ZXJuYWxJY29uRm9yTGlua3MobyksTy5QQ1RlbXBsYXRlVXBncmFkZSkmJkcuc2V0T3B0T3V0U2lnbmFsTm90aWZpY2F0aW9uKG4pLGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpKSxvPShlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJvdC10ZXh0LXJlc2l6ZSIpLGUuc2V0QXR0cmlidXRlKCJzYW5kYm94IiwiYWxsb3ctc2FtZS1vcmlnaW4iKSxlLnNldEF0dHJpYnV0ZSgidGl0bGUiLCJvbmV0cnVzdC10ZXh0LXJlc2l6ZSIpLGQoZSwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IC01MDAwMHB4OyB3aWR0aDogMTAwZW07IiksZS5zZXRBdHRyaWJ1dGUodGhpcy5fYXJpYUhpZGRlbiwidHJ1ZSIpLG0odC5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3QtcGMtc2RrIikpLmFwcGVuZChlKSxoLnJlcGxhY2VIZWFkaW5ncyh0KSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25ldHJ1c3QtY29uc2VudC1zZGsiKSksbj0obShvKS5hcHBlbmQodCksXy5pZ25vcmVJbmplY3RpbmdIdG1sQ3NzfHxtKGRvY3VtZW50LmJvZHkpLmFwcGVuZChvKSwoTy5zaG93Q29va2llTGlzdHx8RC5zaG93R2VuZXJhbFZlbmRvcnMpJiZObi5Jbml0aWFsaXplSG9zdExpc3QoKSxULlBfVmVuZG9yX0xpc3QrIiAiK1QuUF9Ib3N0X0NudHIrIiBsaSIpLGU9bShuKS5lbFswXTtlJiZ2LnJlbW92ZUNoaWxkKGUpfSxuLnByb3RvdHlwZS51cGRhdGVUaXRsZUZvck1vYmlsZVZpZXc9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG8uZWwpLmRpc3BsYXk7by5hdHRyKEcuX2FyaWFIaWRkZW4sIm5vbmUiIT09ZT8iZmFsc2UiOiJ0cnVlIiksbi5hdHRyKEcuX2FyaWFIaWRkZW4sIm5vbmUiIT09ZT8idHJ1ZSI6ImZhbHNlIil9dmFyIG89bShlKFQuUF9UaXRsZV9Nb2JpbGUpKSxuPW0oZShULlBfVGl0bGUpKTtvLmh0bWwoTy5NYWluVGV4dCksc2V0VGltZW91dCh0KSxtKHdpbmRvdykub24oInJlc2l6ZSIsdCl9LG4ucHJvdG90eXBlLmFkZENsYXNzZXNQZXJDb25maWc9ZnVuY3Rpb24oZSl7L0Nocm9tZXxTYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYvR29vZ2xlIEluY3xBcHBsZSBDb21wdXRlci9pLnRlc3QobmF2aWdhdG9yLnZlbmRvcil8fG0oZSkuYWRkQ2xhc3MoIm90LXNkay1ub3Qtd2Via2l0IiksTy51c2VSVEwmJm0oZSkuYXR0cigiZGlyIiwicnRsIiksXy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMSSYmXy5pc0lhYjJvcnYyVGVtcGxhdGUmJihtKGUpLmFkZENsYXNzKCJvdC1sZWctb3B0LW91dCIpLF8ubGVnSW50U2V0dGluZ3MuUFNob3dMZWdJbnRCdG4pJiZtKGUpLmFkZENsYXNzKCJvdC1sZWctYnRuIiksTy5CYW5uZXJSZWxhdGl2ZUZvbnRTaXplc1RvZ2dsZSYmbShlKS5hZGRDbGFzcygib3RSZWxGb250IiksTy5QQ1Nob3dDb25zZW50TGFiZWxzJiZtKGUpLmFkZENsYXNzKCJvdC10Z2wtd2l0aC1sYWJlbCIpLChPLlVzZUdvb2dsZVZlbmRvcnN8fEQuc2hvd0dlbmVyYWxWZW5kb3JzKSYmbShlKS5hZGRDbGFzcygib3QtYWRkdGwtdmVuZG9ycyIpLCJyaWdodCI9PT1PLlByZWZlcmVuY2VDZW50ZXJQb3NpdGlvbiYmbShlKS5hZGRDbGFzcyhPLnVzZVJUTD8icmlnaHQtcnRsIjoicmlnaHQiKX0sbi5wcm90b3R5cGUubWFuYWdlQ2xvc2VCdXR0b25zPWZ1bmN0aW9uKGUsdCxvKXt2YXIgbj1tKHQoVC5QX0Nsb3NlX0J0bikpLmVsO2lmKE8uU2hvd1ByZWZlcmVuY2VDZW50ZXJDbG9zZUJ1dHRvbil7Ty5DbG9zZVRleHR8fChPLkNsb3NlVGV4dD0iQ2xvc2UgUHJlZmVyZW5jZSBDZW50ZXIiKTtmb3IodmFyIHI9MCxpPW47cjxpLmxlbmd0aDtyKyspe3ZhciBzPWlbcl07Ty5QQ0Nsb3NlQnV0dG9uVHlwZT09PXZlLkxpbmsmJk8uUENUZW1wbGF0ZVVwZ3JhZGU/KG0ocykuaHRtbChPLlBDQ29udGludWVUZXh0KSxtKGUpLmFkZENsYXNzKCJvdC1jbG9zZS1idG4tbGluayIpLG0ocykuZWwucmVtb3ZlQXR0cmlidXRlKHRoaXMuX2FyaWFMYWJlbCkpOihtKHMpLmVsLnNldEF0dHJpYnV0ZSh0aGlzLl9hcmlhTGFiZWwsTy5DbG9zZVRleHQpLGguc2V0Q2xvc2VJY29uKG8oIiNvbmV0cnVzdC1wYy1zZGsgLm90LWNsb3NlLWljb24iKSkpfX1lbHNlIGZvcih2YXIgYT0wO2E8bi5sZW5ndGg7YSsrKW0oblthXS5wYXJlbnRFbGVtZW50KS5lbC5yZW1vdmVDaGlsZChuW2FdKX0sbi5wcm90b3R5cGUuYWRkTG9nb3M9ZnVuY3Rpb24oZSx0KXt2YXIgbyxuLHIsaT1lKFQuUF9Mb2dvKTtpJiZPLm9wdGFub25Mb2dvJiYobz1oLnVwZGF0ZUNvcnJlY3RVcmwoTy5vcHRhbm9uTG9nbyksaC5jaGVja01vYmlsZU9mZmxpbmVSZXF1ZXN0KGguZ2V0QmFubmVyVmVyc2lvblVybCgpKSYmKG89di5nZXRSZWxhdGl2ZVVSTChvLCEwLCEwKSkscj1uZXcgVVJMKG8sd2luZG93LmxvY2F0aW9uLm9yaWdpbikucGF0aG5hbWUsYi5mcC5DTVBJY29uU3ByaXRlJiYoci5pbmNsdWRlcygiL2xvZ29zL3N0YXRpYy8iKXx8ci5pbmNsdWRlcygic3JjL2Fzc2V0cy9pbWFnZXMvIikmJm5ldyBVUkwobyx3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5ob3N0LmluY2x1ZGVzKCJsb2NhbGhvc3QiKSk/KHI9ci5zcGxpdCgiLyIpLnBvcCgpLnNwbGl0KCIuIikuc2hpZnQoKSwobj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIikpLmlubmVySFRNTD0iPHVzZT48L3VzZT4iLG4ucXVlcnlTZWxlY3RvcigidXNlIikuc2V0QXR0cmlidXRlKCJocmVmIiwiIyIrciksTy5QQ0xvZ29BcmlhJiZtKGkpLmF0dHIodGhpcy5fYXJpYUxhYmVsLE8uUENMb2dvQXJpYSksaS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJpbWciKSxpLmFwcGVuZChuKSk6KChyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpKS5zZXRBdHRyaWJ1dGUoImFsdCIsTy5QQ0xvZ29BcmlhKSxyLnNldEF0dHJpYnV0ZSgic3JjIixvKSxpLmFwcGVuZChyKSkpLF8uaXNTaG9waWZ5P2gucmVtb3ZlRm9vdGVyTG9nbyhlKCIub3QtcGMtZm9vdGVyLWxvZ28iKSk6aC5pbnNlcnRGb290ZXJMb2dvKHQoIi5vdC1wYy1mb290ZXItbG9nbyBhIikpfSxuLnByb3RvdHlwZS5jb25maWd1cmVMaW5rRmllbGRzPWZ1bmN0aW9uKGUsdCl7dmFyIG87Ty5BYm91dFRleHQmJm0oZShULlBfUG9saWN5X1R4dCkpLmh0bWwobShlKFQuUF9Qb2xpY3lfVHh0KSkuaHRtbCgpKydcbiAgICAgICAgICAgIDxici8+PGEgaHJlZj0iJytPLkFib3V0TGluaysnIiBjbGFzcz0icHJpdmFjeS1ub3RpY2UtbGluayIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iJytPLlBDQ29va2llUG9saWN5TGlua1NjcmVlblJlYWRlcisnIj4nK08uQWJvdXRUZXh0KyI8L2E+IiksTy5QQ2VudGVySW1wcmludExpbmtUZXh0JiYoTy5BYm91dFRleHR8fGUoVC5QX1BvbGljeV9UeHQpLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixTLmdldElubmVySHRtbENvbnRlbnQoIjxici8+IikpLChvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSkuY2xhc3NMaXN0LmFkZCgib3QtbGluay1idG4iLCJvdC1pbXByaW50LWhhbmRsZXIiKSxvLnRleHRDb250ZW50PU8uUENlbnRlckltcHJpbnRMaW5rVGV4dCxvLnNldEF0dHJpYnV0ZSh0aGlzLl9hcmlhTGFiZWwsTy5QQ2VudGVySW1wcmludExpbmtTY3JlZW5SZWFkZXIpLG8uc2V0QXR0cmlidXRlKCJocmVmIixPLlBDZW50ZXJJbXByaW50TGlua1VybCksby5zZXRBdHRyaWJ1dGUoInJlbCIsIm5vb3BlbmVyIG5vcmVmZXJyZXIiKSxvLnNldEF0dHJpYnV0ZSgidGFyZ2V0IiwiX2JsYW5rIiksZShULlBfUG9saWN5X1R4dCkuYXBwZW5kQ2hpbGQobykpLE8uUENlbnRlclZlbmRvckxpc3RMaW5rVGV4dCYmKG89IU8uSXNJYWJFbmFibGVkJiZELnNob3dHZW5lcmFsVmVuZG9ycz8ib3QtZ3YtbGlzdC1oYW5kbGVyIjoib25ldHJ1c3QtdmVuZG9ycy1saXN0LWhhbmRsZXIiLGUoVC5QX1BvbGljeV9UeHQpLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixTLmdldElubmVySHRtbENvbnRlbnQoJzxidXR0b24gY2xhc3M9Im90LWxpbmstYnRuICcrbysnIiBhcmlhLWxhYmVsPSInK08uUENlbnRlclZlbmRvckxpc3RMaW5rQXJpYUxhYmVsKyciPlxuICAgICAgICAgICAgICAgICAgICAnK08uUENlbnRlclZlbmRvckxpc3RMaW5rVGV4dCsiXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiIpKSl9LG4ucHJvdG90eXBlLmNvbmZpZ3VyZVN1YmplY3REYXRhRmllbGRzPWZ1bmN0aW9uKGUpe3ZhciB0O08uUENUZW1wbGF0ZVVwZ3JhZGUmJk8uUENlbnRlclVzZXJJZFRpdGxlVGV4dCYmTy5Jc0NvbnNlbnRMb2dnaW5nRW5hYmxlZCYmKHQ9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5DT05TRU5UX0lEKSxlKFQuUF9Qb2xpY3lfVHh0KS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsUy5nZXRJbm5lckh0bWxDb250ZW50KCc8ZGl2IGNsYXNzPSJvdC11c2VyaWQtdGl0bGUiPjxzdHJvbmc+JytPLlBDZW50ZXJVc2VySWRUaXRsZVRleHQrIjogPC9zdHJvbmc+ICIrdCsiPC9kaXY+IikpLE8uUENlbnRlclVzZXJJZERlc2NyaXB0aW9uVGV4dCYmZShULlBfUG9saWN5X1R4dCkuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLFMuZ2V0SW5uZXJIdG1sQ29udGVudCgnPGRpdiBjbGFzcz0ib3QtdXNlcmlkLWRlc2MiPjxlbT4nK08uUENlbnRlclVzZXJJZERlc2NyaXB0aW9uVGV4dCsiPC9lbT48L2Rpdj4iKSksTy5QQ2VudGVyVXNlcklkVGltZXN0YW1wVGl0bGVUZXh0KSYmKHQ9KHQ9TC5nZXRDb29raWUoay5BTEVSVF9CT1hfQ0xPU0VEKSkmJmguZ2V0VVRDRm9ybWF0dGVkRGF0ZSh0KXx8Ty5QQ2VudGVyVXNlcklkTm90WWV0Q29uc2VudGVkVGV4dCxlKFQuUF9Qb2xpY3lfVHh0KS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsUy5nZXRJbm5lckh0bWxDb250ZW50KCc8ZGl2IGNsYXNzPSJvdC11c2VyaWQtdGltZXN0YW1wIj48c3Ryb25nPicrTy5QQ2VudGVyVXNlcklkVGltZXN0YW1wVGl0bGVUZXh0KyI6IDwvc3Ryb25nPiAiK3QrIjwvZGl2PiIpKSl9LG4ucHJvdG90eXBlLnNldE1hbmFnZVByZWZlcmVuY2VUZXh0PWZ1bmN0aW9uKGUpe3ZhciBlPWUoVC5QX01hbmFnZV9Db29raWVzX1R4dCksdD1tKGUpO2UmJih0Lmh0bWwoTy5NYW5hZ2VQcmVmZXJlbmNlVGV4dCksTy5NYW5hZ2VQcmVmZXJlbmNlVGV4dHx8di5yZW1vdmVDaGlsZCh0LmVsKSl9LG4ucHJvdG90eXBlLmNvbmZpZ3VyZUJ1dHRvbnM9ZnVuY3Rpb24oZSx0KXt0aGlzLnNldEJ1dHRvbnNPcmRlcihlKSxPLkNvbmZpcm1UZXh0LnRyaW0oKT9tKGUoQW4pKS5odG1sKE8uQ29uZmlybVRleHQpOmUoQW4pLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoZShBbikpO2Zvcih2YXIgbz10KCIuc2F2ZS1wcmVmZXJlbmNlLWJ0bi1oYW5kbGVyIiksbj0wO248by5sZW5ndGg7bisrKW0ob1tuXSkuaHRtbChPLkFsbG93QWxsVGV4dCk7dmFyIHI9dCgiLm90LXBjLXJlZnVzZS1hbGwtaGFuZGxlciIpO2lmKE8uUENlbnRlclNob3dSZWplY3RBbGxCdXR0b24mJk8uUENlbnRlclJlamVjdEFsbEJ1dHRvblRleHQudHJpbSgpKWZvcihuPTA7bjxyLmxlbmd0aDtuKyspbShyW25dKS5odG1sKE8uUENlbnRlclJlamVjdEFsbEJ1dHRvblRleHQpO2Vsc2Ugdi5yZW1vdmVDaGlsZChyKTt0aGlzLmNoZWNrSWZTdGFja0J1dHRvbnMoZSl9LG4ucHJvdG90eXBlLnNldEJ1dHRvbnNPcmRlcj1mdW5jdGlvbihlKXtpZihPLlBDVGVtcGxhdGVVcGdyYWRlJiZiLmZwLldlYkJ1dHRvbkN1c3RvbWlzYXRpb25zJiZ0aGlzLmNoZWNrQnV0dG9uc09yZGVyVmFsaWRhdGlvbihlKSl7dmFyIHQ9bmV3IE1hcCxvPW5ldyBNYXAsbj1lKCIub3QtcGMtcmVmdXNlLWFsbC1oYW5kbGVyW290LWJ1dHRvbi1vcmRlcl0iKSxyPWUoQW4rIltvdC1idXR0b24tb3JkZXJdIiksaT1lKCIuc2F2ZS1wcmVmZXJlbmNlLWJ0bi1oYW5kbGVyW290LWJ1dHRvbi1vcmRlcl0iKSxzPSh0aGlzLnNldEJ1dHRvbk9yZGVyQ29uZmlnKHIsdCxvLEVlLkFDQ0VQVF9BTEwpLHRoaXMuc2V0QnV0dG9uT3JkZXJDb25maWcobix0LG8sRWUuUkVKRUNUX0FMTCksdGhpcy5zZXRCdXR0b25PcmRlckNvbmZpZyhpLHQsbyxFZS5TQVZFX1BSRUZFUkVOQ0UpLGUoIiNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLWZvb3RlciAub3QtYnRuLWNvbnRhaW5lciIpKTtpZihzKXtzLmNsYXNzTGlzdC5hZGQoIm90LWJ1dHRvbi1vcmRlci1jb250YWluZXIiKTtmb3IodmFyIGE9MCxsPU9iamVjdC5lbnRyaWVzKE8uUGNCTyk7YTxsLmxlbmd0aDthKyspe3ZhciBjPWxbYV0sZD1jWzBdLGM9Y1sxXSx1PXQuZ2V0KE51bWJlcihkKSksYz1vLmdldChjKTt1JiZjJiYodS5yZXBsYWNlV2l0aChjKSxjLmNsYXNzTGlzdC5hZGQoIm90LWJ1dHRvbi1vcmRlci0iK2QpLCIwIiE9PWR8fF8ucGNOYW1lIT09dHQmJl8ucGNOYW1lIT09bnR8fHMuaW5zZXJ0QmVmb3JlKGMscy5maXJzdENoaWxkKSl9Xy5wY05hbWU9PT1pdCYmKHI9cy5xdWVyeVNlbGVjdG9yQWxsKCdbY2xhc3MqPSJvdC1idXR0b24tb3JkZXItIl0nKSxzLmlubmVySFRNTD0iIixudWxsIT0obj1yKSkmJm4uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gcy5hcHBlbmRDaGlsZChlKX0pfX19LG4ucHJvdG90eXBlLmNoZWNrSWZTdGFja0J1dHRvbnM9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5idXR0dG9uc1RleHRBcmVMYXJnZSgpO08uUENUZW1wbGF0ZVVwZ3JhZGUmJmIuZnAuV2ViQnV0dG9uQ3VzdG9taXNhdGlvbnMmJihfLnBjTmFtZT09PXR0fHxfLnBjTmFtZT09PWl0KSYmdCYmKHQ9ZSgiLm90LWJ0bi1jb250YWluZXIub3QtYnV0dG9uLW9yZGVyLWNvbnRhaW5lciIpKSYmKHQuY2xhc3NMaXN0LmFkZCgib3Qtc3RhY2stYnV0dG9ucyIpLG51bGwhPShlPXQ9ZSgiLm90LXBjLWZvb3RlciIpKSYmZS5zdHlsZS5zZXRQcm9wZXJ0eSgiaGVpZ2h0IiwiMTAwJSIpLG51bGwhPShlPXQpJiZlLnN0eWxlLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiZmxleCIpLG51bGwhPShlPXQpKSYmZS5zdHlsZS5zZXRQcm9wZXJ0eSgiZmxleC1kaXJlY3Rpb24iLCJjb2x1bW4iKX0sbi5wcm90b3R5cGUuYnV0dHRvbnNUZXh0QXJlTGFyZ2U9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gMjA8KG51bGw9PShlPU8uQ29uZmlybVRleHQpP3ZvaWQgMDplLmxlbmd0aCl8fDIwPChudWxsPT0oZT1PLkFsbG93QWxsVGV4dCk/dm9pZCAwOmUubGVuZ3RoKXx8MjA8KG51bGw9PShlPU8uUENlbnRlclJlamVjdEFsbEJ1dHRvblRleHQpP3ZvaWQgMDplLmxlbmd0aCl9LG4ucHJvdG90eXBlLmNoZWNrQnV0dG9uc09yZGVyVmFsaWRhdGlvbj1mdW5jdGlvbihlKXt2YXIgdD1lKCIub3QtcGMtcmVmdXNlLWFsbC1oYW5kbGVyIiksbz1lKEFuKTtyZXR1cm4hKGUoIi5zYXZlLXByZWZlcmVuY2UtYnRuLWhhbmRsZXIiKSYmIXRoaXMuY2hlY2tJZkNvbmZpZ3VyYXRpb25Jc1ZhbGlkKEVlLlNBVkVfUFJFRkVSRU5DRSl8fG8mJiF0aGlzLmNoZWNrSWZDb25maWd1cmF0aW9uSXNWYWxpZChFZS5BQ0NFUFRfQUxMKXx8dCYmIXRoaXMuY2hlY2tJZkNvbmZpZ3VyYXRpb25Jc1ZhbGlkKEVlLlJFSkVDVF9BTEwpKX0sbi5wcm90b3R5cGUuY2hlY2tJZkNvbmZpZ3VyYXRpb25Jc1ZhbGlkPWZ1bmN0aW9uKGUpe3ZhciB0LG89ITE7Zm9yKHQgaW4gTy5QY0JPKXt2YXIgbj1OdW1iZXIodCk7aWYoTy5QY0JPW25dPT09ZSl7bz0hMDticmVha319cmV0dXJuIG99LG4ucHJvdG90eXBlLnNldEJ1dHRvbk9yZGVyQ29uZmlnPWZ1bmN0aW9uKGUsdCxvLG4pe3ZhciByO2UmJihyPU51bWJlcihlLmdldEF0dHJpYnV0ZSgib3QtYnV0dG9uLW9yZGVyIikpLGUucmVtb3ZlQXR0cmlidXRlKCJvdC1idXR0b24tb3JkZXIiKSx0LnNldChyLGUpLG8uc2V0KG4sZS5jbG9uZU5vZGUoITApKSl9LG4ucHJvdG90eXBlLnJlbW92ZUxpc3RzV2hlbkFwcHJvcHJpYXRlPWZ1bmN0aW9uKGUpe3ZhciB0O08uSXNJYWJFbmFibGVkfHwodD1lKFQuUF9WZW5kb3JfQ29udGFpbmVyKSkmJnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0KSxPLnNob3dDb29raWVMaXN0fHxELnNob3dHZW5lcmFsVmVuZG9yc3x8KHQ9ZShULlBfSG9zdF9DbnRyKSkmJnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0KX0sbi5wcm90b3R5cGUuc2V0UGFyZW50R3JvdXBOYW1lPWZ1bmN0aW9uKGUsdCxvLG4pe3ZhciByPWUucXVlcnlTZWxlY3RvcignLmNhdGVnb3J5LWhlYWRlciwub3QtY2F0LWhlYWRlciwuY2F0ZWdvcnktbWVudS1zd2l0Y2gtaGFuZGxlcj5oMywuY2F0ZWdvcnktbWVudS1zd2l0Y2gtaGFuZGxlcj5wW2FyaWEtbGV2ZWw9IjMiXScpO20ocikuaHRtbCh0KSxtKHIpLmF0dHIoImlkIixvKSxfLnBjTmFtZT09PWl0JiYoZS5xdWVyeVNlbGVjdG9yKFQuUF9DYXRlZ29yeV9IZWFkZXIpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQodCksZS5xdWVyeVNlbGVjdG9yKCIiK1QuUF9EZXNjX0NvbnRhaW5lcikuc2V0QXR0cmlidXRlKCJpZCIsbiksZS5xdWVyeVNlbGVjdG9yKCIuY2F0ZWdvcnktbWVudS1zd2l0Y2gtaGFuZGxlciIpLnNldEF0dHJpYnV0ZSgiYXJpYS1jb250cm9scyIsbikpfSxuLnByb3RvdHlwZS5zZXRMZWdJbnRCdXR0b249ZnVuY3Rpb24oZSx0LG8sbil7dm9pZCAwPT09byYmKG89ITEpO3ZhciByPSEwLHI9KC0xPEQudmVuZG9ycy5zZWxlY3RlZExlZ0ludC5pbmRleE9mKHQuSWFiR3JwSWQrIjpmYWxzZSIpJiYocj0hMSksdy5nZW5lcmF0ZUxlZ0ludEJ1dHRvbkVsZW1lbnRzKHIsdC5PcHRhbm9uR3JvdXBJZCwhMSx0Lkdyb3VwTmFtZSkpLHQ9KG8/bi5pbnNlcnRBZGphY2VudEhUTUwoImFmdGVyZW5kIixyKTplLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixyKSxlLnF1ZXJ5U2VsZWN0b3IoIi5vdC1yZW1vdmUtb2JqZWN0aW9uLWhhbmRsZXIiKSk7dCYmZCh0LHQuZ2V0QXR0cmlidXRlKCJkYXRhLXN0eWxlIikpfSxuLnByb3RvdHlwZS5zZXRQYXJlbnRHcm91cERlc2NyaXB0aW9uPWZ1bmN0aW9uKGUsdCxvLG4scil7dmFyIGk9Vi5zYWZlRm9ybWF0dGVkR3JvdXBEZXNjcmlwdGlvbih0KSxzPWUucXVlcnlTZWxlY3RvcigicDpub3QoLm90LWFsd2F5cy1hY3RpdmUpIiksYT1lLnF1ZXJ5U2VsZWN0b3IoVC5QX0FjY19HcnBfRGVzYykscz1zfHxhO3JldHVybi0xPER0LmluZGV4T2YodC5UeXBlKSYmby5QQ0dycERlc2NUeXBlPT09b2UuTGVnYWw/aT10LkRlc2NyaXB0aW9uTGVnYWw6cy5jbGFzc0xpc3QuYWRkKCJvdC1jYXRlZ29yeS1kZXNjIiksXy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMSSYmIV8ubGVnSW50U2V0dGluZ3MuUFNob3dMZWdJbnRCdG4mJih0LlN1Ykdyb3Vwcy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLkhhc0xlZ0ludE9wdE91dH0pfHx0Lkhhc0xlZ0ludE9wdE91dD9zLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgib3QtbGVnLWJvcmRlci1jb2xvciIpOnYucmVtb3ZlQ2hpbGQoZS5xdWVyeVNlbGVjdG9yKFQuUF9MaV9IZHIpKSksXy5wY05hbWUhPT1pdCYmcy5zZXRBdHRyaWJ1dGUoImlkIixuKSxtKHMpLmh0bWwoaSksdC5UeXBlPT09RS5Hcm91cFR5cGVzLlN0YWNrJiZ2LnJlbW92ZUNoaWxkKHMpLHN9LG4ucHJvdG90eXBlLmNsb25lT3RIdG1sRWxzPWZ1bmN0aW9uKGUpe3ZhciB0PS9vdFBjUGFuZWx8b3RQY0NlbnRlci87Ti50b2dnbGVFbD1tKGUoIi5vdC10Z2wiKSkuZWwuY2xvbmVOb2RlKCEwKSxOLmFycm93RWw9bShlKCcjb25ldHJ1c3QtcGMtc2RrIFtyb2xlPSJkaWFsb2ciXSA+ICcrVC5QX0FycndfQ250cikpLmVsLmNsb25lTm9kZSghMCksTi5zdWJHcnBFbD1tKGUoVC5QX1N1Yl9HcnBfQ250cikpLmVsLmNsb25lTm9kZSghMCksTi52TGlzdEVsPW0oZShULlBfVmVuX0xzdF9DbnRyKSkuZWwuY2xvbmVOb2RlKCEwKSxOLmNMaXN0RWw9bShlKFQuUF9Ib3N0X0xzdF9jbnRyKSkuZWwuY2xvbmVOb2RlKCEwKSxOLmNoa2JveEVsPW0oZShULlBfQ0J4X0NudHIpKS5lbC5jbG9uZU5vZGUoITApLE4uYWNjb3JkaW9uRWw9bShlKCIub3QtYWNjLWNudHIiKSkuZWwuY2xvbmVOb2RlKCEwKSx0LnRlc3QoXy5wY05hbWUpJiYoTi5wbHVzTWludXNFbD1tKGUoIi5vdC1wbHVzLW1pbnVzIikpLmVsLmNsb25lTm9kZSghMCkpLHYucmVtb3ZlQ2hpbGQoZSgiLm90LXRnbCIpKSx2LnJlbW92ZUNoaWxkKGUoJyNvbmV0cnVzdC1wYy1zZGsgW3JvbGU9ImRpYWxvZyJdID4gJytULlBfQXJyd19DbnRyKSksdi5yZW1vdmVDaGlsZChlKFQuUF9TdWJfR3JwX0NudHIpKSx2LnJlbW92ZUNoaWxkKGUoVC5QX1Zlbl9Mc3RfQ250cikpLHYucmVtb3ZlQ2hpbGQoZShULlBfSG9zdF9Mc3RfY250cikpLHYucmVtb3ZlQ2hpbGQoZShULlBfQ0J4X0NudHIpKSx2LnJlbW92ZUNoaWxkKGUoIi5vdC1hY2MtY250ciIpKSx0LnRlc3QoXy5wY05hbWUpJiZ2LnJlbW92ZUNoaWxkKGUoIi5vdC1wbHVzLW1pbnVzIikpfSxuLnByb3RvdHlwZS5pbnNlcnRTZWxlY3RBbGxFbHM9ZnVuY3Rpb24oZSl7dmFyIGU9ZShULlBfU2VsZWN0X0NudHIrIiAub3Qtc2VsLWFsbC1jaGtib3giKSx0PUQuc2hvd1ZlbmRvclNlcnZpY2U/WG4oKTpOLmNoa2JveEVsLmNsb25lTm9kZSghMCksdD0odC5pZD1ULlBfU2VsX0FsbF9Ib3N0X0VsLHQucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5pZD0ic2VsZWN0LWFsbC1ob3N0cy1ncm91cHMtaGFuZGxlciIsdC5xdWVyeVNlbGVjdG9yKCJsYWJlbCIpLnNldEF0dHJpYnV0ZSgiZm9yIiwic2VsZWN0LWFsbC1ob3N0cy1ncm91cHMtaGFuZGxlciIpLG0oZSkuYXBwZW5kKHQpLEQuc2hvd1ZlbmRvclNlcnZpY2U/WG4oKTpOLmNoa2JveEVsLmNsb25lTm9kZSghMCkpLHQ9KHQuaWQ9VC5QX1NlbF9BbGxfVmVuZG9yX0NvbnNlbnRfRWwsdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmlkPSJzZWxlY3QtYWxsLXZlbmRvci1ncm91cHMtaGFuZGxlciIsdC5xdWVyeVNlbGVjdG9yKCJsYWJlbCIpLnNldEF0dHJpYnV0ZSgiZm9yIiwic2VsZWN0LWFsbC12ZW5kb3ItZ3JvdXBzLWhhbmRsZXIiKSxtKGUpLmFwcGVuZCh0KSxELnNob3dWZW5kb3JTZXJ2aWNlP1huKCk6Ti5jaGtib3hFbC5jbG9uZU5vZGUoITApKTt0LmlkPVQuUF9TZWxfQWxsX1ZlbmRvcl9MZWdfRWwsdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmlkPSJzZWxlY3QtYWxsLXZlbmRvci1sZWctaGFuZGxlciIsdC5xdWVyeVNlbGVjdG9yKCJsYWJlbCIpLnNldEF0dHJpYnV0ZSgiZm9yIiwic2VsZWN0LWFsbC12ZW5kb3ItbGVnLWhhbmRsZXIiKSxtKGUpLmFwcGVuZCh0KX0sbi5wcm90b3R5cGUuaW5pdGlhbGl6ZVByZWZlcmVuY2VDZW50ZXJHcm91cHM9ZnVuY3Rpb24oZSx0KXt2YXIgbyxuPV8ucGNOYW1lLHI9KGIuaXNWMlRlbXBsYXRlJiYoRy5jbG9uZU90SHRtbEVscyhlKSwocj1OLmNoa2JveEVsLmNsb25lTm9kZSghMCkpLnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuY2xhc3NMaXN0LmFkZCgiY2F0ZWdvcnktZmlsdGVyLWhhbmRsZXIiKSxtKGUoVC5QX0ZsdHJfTW9kYWwrIiAiK1QuUF9GbHRyX09wdGlvbikpLmFwcGVuZChyKSxHLmluc2VydFNlbGVjdEFsbEVscyhlKSksbShlKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0NhdGVnb3J5X0dycCkpKSxpPShuPT09dHR8fG49PT1udHx8bj09PW90P08uUENlbnRlckVuYWJsZUFjY29yZGlvbj92LnJlbW92ZUNoaWxkKHIuZWwucXVlcnlTZWxlY3RvcihULlBfQ2F0ZWdvcnlfSXRlbSsiOm5vdCgub3QtYWNjb3JkaW9uLWxheW91dCkiKSk6di5yZW1vdmVDaGlsZChyLmVsLnF1ZXJ5U2VsZWN0b3IoVC5QX0NhdGVnb3J5X0l0ZW0rIi5vdC1hY2NvcmRpb24tbGF5b3V0IikpOm49PT1pdCYmKE8uUENlbnRlckVuYWJsZUFjY29yZGlvbj0hMSksZSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9DYXRlZ29yeV9JdGVtKSkscz1iLmlzVjJUZW1wbGF0ZT9OLnN1YkdycEVsLmNsb25lTm9kZSghMCk6bShlKFQuUF9TdWJfR3JwX0NudHIpKSxhPWIuaXNWMlRlbXBsYXRlP251bGw6bShlKFQuUF9BY2NfQ29udGFpbmVyKyIgIitULlBfU3ViX0dycF9DbnRyKSk7Ty5QQ1RlbXBsYXRlVXBncmFkZSYmL290UGNUYWIvLnRlc3QobikmJihvPWUoIi5vdC1hYnQtdGFiIikuY2xvbmVOb2RlKCEwKSx2LnJlbW92ZUNoaWxkKGUoIi5vdC1hYnQtdGFiIikpKSxyLmVsLnJlbW92ZUNoaWxkKGkpLEcuc2V0VmVuZG9yTGlzdENsYXNzKGUsaSksRy5zZXRQQ0hlYWRlcihlLGkpLEcuY3JlYXRlSHRtbEZvckVhY2hHcm91cCh7Zm06ZSxmcmFnbWVudDp0LGNhdGVnb3J5R3JvdXBUZW1wbGF0ZTppLGNvb2tpZVByZWZlcmVuY2VzQ29udGFpbmVyOnIscG9wdXBTdWJHcnBDb250YWluZXI6YSxzdWJHcnBDb250YWluZXI6c30pLEcuc2V0UGNUYWJMYXlvdXQoZSx0LG8pfSxuLnByb3RvdHlwZS5nZXRBY3RpdmVWZW5kb3JDb3VudD1mdW5jdGlvbihlKXt2YXIgdD1wYXJzZUludChlLklhYkdycElkKSxvPTA7cmV0dXJuIGUuVHlwZT09PUUuR3JvdXBUeXBlcy5QdXI/bz1fLnRjZjJBY3RpdmVWZW5kb3JzLnB1ci5nZXQodCk6ZS5UeXBlPT09RS5Hcm91cFR5cGVzLkZ0P289Xy50Y2YyQWN0aXZlVmVuZG9ycy5mdC5nZXQodCk6ZS5UeXBlPT09RS5Hcm91cFR5cGVzLlNwbF9QdXI/bz1fLnRjZjJBY3RpdmVWZW5kb3JzLnNwbF9wdXIuZ2V0KHQpOmUuVHlwZT09PUUuR3JvdXBUeXBlcy5TcGxfRnQmJihvPV8udGNmMkFjdGl2ZVZlbmRvcnMuc3BsX2Z0LmdldCh0KSksb3x8MH0sbi5wcm90b3R5cGUuZ2V0QWN0aXZlVmVuZG9yQ291bnRGb3JTdGFjaz1mdW5jdGlvbihlKXtyZXR1cm4gXy50Y2YyQWN0aXZlVmVuZG9ycy5zdGFjay5nZXQoZSl8fDB9LG4ucHJvdG90eXBlLmdldFZlbmRvckNvdW50RWw9ZnVuY3Rpb24oZSx0KXt2YXIgbz0iW1ZFTkRPUl9OVU1CRVJdIixuPSIiO3N3aXRjaCh0KXtjYXNlIGt0Om49Ty5QQ1ZlbmRvcnNDb3VudEZlYXR1cmVUZXh0O2JyZWFrO2Nhc2UgYnQ6bj1PLlBDVmVuZG9yc0NvdW50U3BjRmVhdHVyZVRleHQ7YnJlYWs7Y2FzZSBJdDpuPU8uUENWZW5kb3JzQ291bnRTcGNQdXJwb3NlVGV4dDticmVhaztkZWZhdWx0Om49Ty5QQ1ZlbmRvcnNDb3VudFRleHR9cmV0dXJuIG4mJi0xPG4uaW5kZXhPZihvKT8nPHNwYW4gY2xhc3M9Im90LXB1ci12ZHItY291bnQiPiAnK24ucmVwbGFjZShvLGUudG9TdHJpbmcoKSkrIiA8L3NwYW4+IjoiIn0sbi5wcm90b3R5cGUuY3JlYXRlSHRtbEZvckVhY2hHcm91cD1mdW5jdGlvbihlKXt2YXIgdD1lLmZtLG89ZS5mcmFnbWVudCxuPWUuY2F0ZWdvcnlHcm91cFRlbXBsYXRlLHI9ZS5jb29raWVQcmVmZXJlbmNlc0NvbnRhaW5lcixpPWUucG9wdXBTdWJHcnBDb250YWluZXIscz1lLnN1YkdycENvbnRhaW5lcixlPU8uR3JvdXBzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5PcmRlcn0pO08uUENUZW1wbGF0ZVVwZ3JhZGUmJihELnNob3dWZW5kb3JTZXJ2aWNlP0Iuc2V0SHRtbFRlbXBsYXRlKHQoJyNvbmV0cnVzdC1wYy1zZGsgZGl2W3JvbGU9ImRpYWxvZyJdJykpOkIucmVtb3ZlVlNVSVRlbXBsYXRlKHQoJyNvbmV0cnVzdC1wYy1zZGsgZGl2W3JvbGU9ImRpYWxvZyJdJykpKTtmb3IodmFyIGE9MCxsPWU7YTxsLmxlbmd0aDthKyspe3ZhciBjPWxbYV0sZD1jLkdyb3VwTmFtZSx1PWMuQ3VzdG9tR3JvdXBJZCxkPUcuYXBwZW5kVmVuZG9yQ291bnRFbGVtZW50KGMsZCkscD1uLmNsb25lTm9kZSghMCkscD1tKHApLmVsLEM9Im90LWdyb3VwLWlkLSIrdSxnPSJvdC1oZWFkZXItaWQtIit1LGg9Im90LWRlc2MtaWQtIit1LHk9IiIsdT0oYy5TdGF0dXM9PT1mLkFMV0FZU19BQ1RJVkUmJih5PSIgb3Qtc3RhdHVzLWlkLSIrdSkscC5zZXRBdHRyaWJ1dGUoImRhdGEtb3B0YW5vbmdyb3VwaWQiLHUpLHAucXVlcnlTZWxlY3RvcigiaW5wdXQsYnV0dG9uIikpLHU9KHUmJihjLlR5cGUhPT1FLkdyb3VwVHlwZXMuU3RhY2smJnUuc2V0QXR0cmlidXRlKCJhcmlhLWNvbnRyb2xzIixoKSx1LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5IixnK3kpKSxHLnNldFBhcmVudEdyb3VwTmFtZShwLGQsZyxoKSxHLnNldFBvcHVwRGF0YShjLHApLEcuc2V0UGFyZW50R3JvdXBEZXNjcmlwdGlvbihwLGMsTyxoLEMpKSx5PShiLmlzVjJUZW1wbGF0ZT9HLnNldFRvZ2dsZShwLHUsYyxDLGcpOkcuc2V0VG9nZ2xlUHJvcHMocCx1LGMsQyxnKSx0aGlzLmFkZENhdGVnb3J5R3JvdXBzVG9QYXJlbnQodCxyLHApLEcuc2V0U3ViR3JvdXBEYXRhKGMscCxpLHMpLE8uUENHcnBEZXNjTGlua1Bvc2l0aW9uPT09bmUuVG9wKSxkPShjLlR5cGU9PT1FLkdyb3VwVHlwZXMuU3RhY2smJnkmJih1PXAucXVlcnlTZWxlY3RvcihULlBfU3ViX0dycF9DbnRyKSkseT91Om51bGwpO0cuc2V0VmVuZG9yTGlzdEJ0bihwLHQsbyxjLGQsTyksRy5zZXRIb3N0TGlzdEJ0bihwLHQsbyxjKSxHLnNldFZlbmRvclNlcnZpY2VEYXRhKGMscCksRy5hcHBlbmRIZWFsdGhTaWduYXR1cmVGb3JtVG9Hcm91cChjLHApLEQuZGF0YUdyb3VwU3RhdGUucHVzaChjKX19LG4ucHJvdG90eXBlLmFkZENhdGVnb3J5R3JvdXBzVG9QYXJlbnQ9ZnVuY3Rpb24oZSx0LG8pe3ZhciBuPTA9PT10LmVsLmNoaWxkcmVuLmxlbmd0aCxlPSEhZSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9DYXRlZ29yeV9HcnApLnF1ZXJ5U2VsZWN0b3IoVC5QX0NhdGVnb3J5X0l0ZW0pLHI9KHI9dC5lbC5xdWVyeVNlbGVjdG9yQWxsKFQuUF9DYXRlZ29yeV9JdGVtKyI6bm90KC5vdC12bmQtaXRlbSkiKSlbci5sZW5ndGgtMV07bj90LmFwcGVuZChvKToobj10LmVsLnF1ZXJ5U2VsZWN0b3IoVC5QX0xpX0hkcil8fHQuZWwucXVlcnlTZWxlY3RvcigiaDMiKXx8dC5lbC5xdWVyeVNlbGVjdG9yKCdwW2FyaWEtbGV2ZWw9IjMiXScpLCFlJiZuP1MuaW5zZXJ0QWZ0ZXIobyxuKTpyP1MuaW5zZXJ0QWZ0ZXIobyxyKTp0LmVsLmluc2VydEJlZm9yZShvLHQuZWwuZmlyc3RDaGlsZCkpfSxuLnByb3RvdHlwZS5hcHBlbmRIZWFsdGhTaWduYXR1cmVGb3JtVG9Hcm91cD1mdW5jdGlvbihlLHQpe3ZhciBvO18ucmVxdWlyZVNpZ25hdHVyZUVuYWJsZWQmJmUubmVlZHNIZWFsdGhTaWduYXR1cmUmJihvPVQuUF9BY2NfQ29udGFpbmVyLE8uUENMYXlvdXQuVGFiJiYobz0iI290LWRlc2MtaWQtIitlLkN1c3RvbUdyb3VwSWQpLHQ9dC5xdWVyeVNlbGVjdG9yKG8pLGVyLmdldEluc3RhbmNlKCkuZ2V0SGVhbHRoU2lnbmF0dXJlQ29tcG9uZW50KHQsZSkpfSxuLnByb3RvdHlwZS5hcHBlbmRWZW5kb3JDb3VudEVsZW1lbnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbyxuLHI9LTE8ZS5TdWJHcm91cHMuZmluZEluZGV4KGZ1bmN0aW9uKGUpe3JldHVybiBlLklzSWFiUHVycG9zZX0pO3JldHVybiBfLmlzVGNmVjJUZW1wbGF0ZSYmKGUuSXNJYWJQdXJwb3NlfHxyKSYmKG49dm9pZCAwLG49ZS5UeXBlIT09RS5Hcm91cFR5cGVzLlN0YWNrJiZlLlR5cGUhPT1FLkdyb3VwVHlwZXMuQnVuZGxlJiZlLlR5cGUhPT1FLkdyb3VwVHlwZXMuQ29va2llP3RoaXMuZ2V0QWN0aXZlVmVuZG9yQ291bnQoZSk6KG89IiIsbz0hZS5Jc0lhYlB1cnBvc2UmJnI/ZS5DdXN0b21Hcm91cElkOmUuSWFiR3JwSWQsdGhpcy5nZXRBY3RpdmVWZW5kb3JDb3VudEZvclN0YWNrKG8pKSx0Kz10aGlzLmdldFZlbmRvckNvdW50RWwobixlLlR5cGUpKSx0fSxuLnByb3RvdHlwZS5zZXRQb3B1cERhdGE9ZnVuY3Rpb24oZSx0KXtfLnBjTmFtZT09PXJ0JiYoZS5TaG93VmVuZG9yTGlzdCYmXy5pc0lhYjJvcnYyVGVtcGxhdGU/KHYucmVtb3ZlQ2hpbGQodC5xdWVyeVNlbGVjdG9yKCJwOm5vdCgub3QtYWx3YXlzLWFjdGl2ZSkiKSksdi5yZW1vdmVDaGlsZCh0LnF1ZXJ5U2VsZWN0b3IoVC5QX0FjY19UeHQrIjpub3QoIitULlBfQWNjX0NvbnRhaW5lcisiKSIpKSxlLlN1Ykdyb3Vwcy5sZW5ndGh8fGIuaXNWMlRlbXBsYXRlfHx2LnJlbW92ZUNoaWxkKHQucXVlcnlTZWxlY3RvcihULlBfU3ViX0dycF9DbnRyKSkpOnYucmVtb3ZlQ2hpbGQodC5xdWVyeVNlbGVjdG9yKFQuUF9BY2NfQ29udGFpbmVyKSkpfSxuLnByb3RvdHlwZS5zZXRWZW5kb3JTZXJ2aWNlRGF0YT1mdW5jdGlvbihlLHQpe3ZhciBvLG49Xy5wY05hbWU7RC5zaG93VmVuZG9yU2VydmljZSYmTy5WZW5kb3JTZXJ2aWNlQ29uZmlnLlBDVlNDYXRlZ29yeVZpZXcmJihvPVQuUF9BY2NfVHh0LG49PT1pdCYmKG89VC5QX0Rlc2NfQ29udGFpbmVyKSxuPXQucXVlcnlTZWxlY3RvcihvKSxPLlBDQWNjb3JkaW9uU3R5bGU9PT1hZS5Ob0FjY29yZGlvbiYmKG49dCksQi5pbnNlcnRWZW5kb3JTZXJ2aWNlSHRtbChlLG4pKX0sbi5wcm90b3R5cGUuanNvbkFkZEFib3V0Q29va2llcz1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gdC5Hcm91cE5hbWU9ZS5BYm91dENvb2tpZXNUZXh0LHQuR3JvdXBEZXNjcmlwdGlvbj1lLk1haW5JbmZvVGV4dCx0LlNob3dJblBvcHVwPSEwLHQuT3JkZXI9MCx0LklzQWJvdXRHcm91cD0hMCx0fSxuLnByb3RvdHlwZS5zZXRWZW5kb3JMaXN0QnRuPWZ1bmN0aW9uKGUsdCxvLG4scixpKXt2YXIgcyxhLGw9Xy5wY05hbWU7bi5TaG93VmVuZG9yTGlzdD8ocz1hPXZvaWQgMCxiLmlzVjJUZW1wbGF0ZT9hPShzPU4udkxpc3RFbC5jbG9uZU5vZGUoITApKS5xdWVyeVNlbGVjdG9yKCIuY2F0ZWdvcnktdmVuZG9ycy1saXN0LWhhbmRsZXIiKTpzPShhPWUucXVlcnlTZWxlY3RvcigiLmNhdGVnb3J5LXZlbmRvcnMtbGlzdC1oYW5kbGVyIikpLnBhcmVudEVsZW1lbnQsYS5zZXRBdHRyaWJ1dGUoImRpciIsImx0ciIpLGEuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChpLlZlbmRvckxpc3RUZXh0KSxhLnNldEF0dHJpYnV0ZSh0aGlzLl9hcmlhTGFiZWwsTy5QQ09wZW5zVmVuZG9yRGV0YWlsc0FsZXJ0KSxhLnNldEF0dHJpYnV0ZSgiZGF0YS1wYXJlbnQtaWQiLG4uQ3VzdG9tR3JvdXBJZCksRy5zZXRJQUJMZWdhbExpbmsoYSxuLGkpLGIuaXNWMlRlbXBsYXRlJiYoYT1lLGw9PT1pdD9hPWUucXVlcnlTZWxlY3RvcigiIitULlBfRGVzY19Db250YWluZXIpOmkuUENlbnRlckVuYWJsZUFjY29yZGlvbiYmKGE9ZS5xdWVyeVNlbGVjdG9yKFQuUF9BY2NfVHh0KSksYS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIscykpLHImJnIuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmViZWdpbiIscykpOmIuaXNWMlRlbXBsYXRlfHwobCE9PW50JiZsIT09dHR8fGkuUENlbnRlckVuYWJsZUFjY29yZGlvbj8obD09PXJ0fHxsPT09bnR8fGw9PT10dCYmaS5QQ2VudGVyRW5hYmxlQWNjb3JkaW9uKSYmKG49dCgiI3ZlbmRvci1saXN0LWNvbnRhaW5lciIpLGE9ZS5xdWVyeVNlbGVjdG9yKFQuUF9BY2NfVHh0KSxuJiZvLnF1ZXJ5U2VsZWN0b3IoIiIrVC5QX0NvbnRlbnQpLnJlbW92ZUNoaWxkKG4pLGIuaXNWMlRlbXBsYXRlfHxtKGEpLmVsLnJlbW92ZUNoaWxkKGEucXVlcnlTZWxlY3RvcihULlBfVmVuX0xzdF9DbnRyKSkpOnYucmVtb3ZlQ2hpbGQoZS5xdWVyeVNlbGVjdG9yKFQuUF9WZW5fTHN0X0NudHIpKSxsIT09aXQmJmwhPT1vdCl8fChyPWUucXVlcnlTZWxlY3RvcihULlBfVmVuX0xzdF9DbnRyKSkmJnIucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChyKX0sbi5wcm90b3R5cGUuc2V0SUFCTGVnYWxMaW5rPWZ1bmN0aW9uKGUsdCxvKXtfLmlzVGNmVjJUZW1wbGF0ZT9kci5hZGRJbGx1c3RyYXRpb25zTGluayhlLHQsdC5TaG93VmVuZG9yTGlzdCk6by5QQ0dycERlc2NUeXBlPT09b2UuVXNlckZyaWVuZGx5JiYodD1PLkJhbm5lclJlcXVpcmVFeHRlcm5hbExpbmtzJiYhKGIuZnAuQ01QSWNvblNwcml0ZSYmTy5PVEV4dGVybmFsTGlua0xvZ28mJiFPLkJhbm5lckV4dGVybmFsTGlua3NMb2dvKSxlLmluc2VydEFkamFjZW50SFRNTCgiYWZ0ZXJlbmQiLFMuZ2V0SW5uZXJIdG1sQ29udGVudCgiPGEgaHJlZj0nIitPLklhYkxlZ2FsVGV4dFVybCsiP2xhbmc9IitELmNvbnNlbnRMYW5ndWFnZSsnXCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciIgJysodD8nY2xhc3M9Im90LWV4dC1sbmsiJzoiIikrIiB0YXJnZXQ9J19ibGFuayc+Jm5ic3A7fCZuYnNwOyIrby5QQ1ZlbmRvckZ1bGxMZWdhbFRleHQrJyZuYnNwOzxzcGFuIGNsYXNzPSJvdC1zY3JuLXJkciI+XG4gICAgICAgICAgICAgICAgICAgICAgICAnK08uTmV3V2luVHh0KyI8L3NwYW4+PC9hPiIpKSl9LG4ucHJvdG90eXBlLnNldEhvc3RMaXN0QnRuPWZ1bmN0aW9uKGUsdCxvLG4pe3ZhciByLGk9Xy5wY05hbWUscz0hMSxhPShPLnNob3dDb29raWVMaXN0JiYocz0tMTx2LmZpbmRJbmRleChGKG4uU3ViR3JvdXBzLFtuXSksZnVuY3Rpb24oZSl7cmV0dXJuLTE9PT1MdC5pbmRleE9mKGUuVHlwZSkmJmUuRmlyc3RQYXJ0eUNvb2tpZXMubGVuZ3RofSkpLEQuc2hvd0dlbmVyYWxWZW5kb3JzJiZuLkdlbmVyYWxWZW5kb3JzSWRzJiZuLkdlbmVyYWxWZW5kb3JzSWRzLmxlbmd0aCk7IUQuc2hvd1ZlbmRvclNlcnZpY2UmJihPLnNob3dDb29raWVMaXN0fHxELnNob3dHZW5lcmFsVmVuZG9ycykmJihuLlNob3dIb3N0TGlzdHx8c3x8YSk/KHM9dm9pZCAwLGIuaXNWMlRlbXBsYXRlPyhzPShhPU4uY0xpc3RFbC5jbG9uZU5vZGUoITApKS5xdWVyeVNlbGVjdG9yKCIuY2F0ZWdvcnktaG9zdC1saXN0LWhhbmRsZXIiKSxyPWUsaT09PWl0P3I9ZS5xdWVyeVNlbGVjdG9yKCIiK1QuUF9EZXNjX0NvbnRhaW5lcik6Ty5QQ2VudGVyRW5hYmxlQWNjb3JkaW9uJiYocj1lLnF1ZXJ5U2VsZWN0b3IoVC5QX0FjY19UeHQpKSxyLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlZW5kIixhKSk6cz1lLnF1ZXJ5U2VsZWN0b3IoIi5jYXRlZ29yeS1ob3N0LWxpc3QtaGFuZGxlciIpLEcuc2V0Y0xpc3RIYW5kbGVyKHMsbikpOkcuc2V0SG9zdExpc3RWZW5kb3JMaXN0KHQsbyxlKX0sbi5wcm90b3R5cGUuc2V0Y0xpc3RIYW5kbGVyPWZ1bmN0aW9uKGUsdCl7dmFyIG8sbjtlJiYobz0obj1HLnNldGNMaXN0SGVhZGVyVGl0bGVBbmRTY3JlZW5SZWFkZXIoKSlbMF0sbj1uWzFdLGUuc2V0QXR0cmlidXRlKCJkaXIiLCJsdHIiKSxlLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQobyksZS5zZXRBdHRyaWJ1dGUodGhpcy5fYXJpYUxhYmVsLHQuR3JvdXBOYW1lKyIgLSAiK24pLGUuc2V0QXR0cmlidXRlKCJkYXRhLXBhcmVudC1pZCIsdC5DdXN0b21Hcm91cElkKSl9LG4ucHJvdG90eXBlLnNldGNMaXN0SGVhZGVyVGl0bGVBbmRTY3JlZW5SZWFkZXI9ZnVuY3Rpb24oKXt2YXIgZSx0PUQuc2hvd1RyYWNraW5nVGVjaD8oZT1PLkFkZGl0aW9uYWxUZWNobm9sb2dpZXNDb25maWcuUENUZWNoRGV0YWlsc1RleHQsTy5BZGRpdGlvbmFsVGVjaG5vbG9naWVzQ29uZmlnLlBDVGVjaERldGFpbHNBcmlhTGFiZWwpOkQuc2hvd0dlbmVyYWxWZW5kb3JzPyhlPU8uR3JvdXBHZW5WZW5MaXN0TGFiZWwsTy5QQ2VudGVyVmVuZG9yTGlzdFNjcmVlblJlYWRlcik6KGU9Ty5UaGlyZFBhcnR5Q29va2llTGlzdFRleHQsTy5QQ09wZW5zQ29va2llc0RldGFpbHNBbGVydCk7cmV0dXJuW2UsdF19LG4ucHJvdG90eXBlLnNldEhvc3RMaXN0VmVuZG9yTGlzdD1mdW5jdGlvbihlLHQsbyl7dmFyIG47Xy5wY05hbWU9PT1ydD8oZT1lKCIjdmVuZG9yLWxpc3QtY29udGFpbmVyIiksbj1vLnF1ZXJ5U2VsZWN0b3IoVC5QX0FjY19UeHQpLGUmJnQucXVlcnlTZWxlY3RvcigiIitULlBfQ29udGVudCkucmVtb3ZlQ2hpbGQoZSksbi5xdWVyeVNlbGVjdG9yKFQuUF9Ib3N0X0xzdF9jbnRyKSYmbShuKS5lbC5yZW1vdmVDaGlsZChuLnF1ZXJ5U2VsZWN0b3IoVC5QX0hvc3RfTHN0X2NudHIpKSk6KHQ9by5xdWVyeVNlbGVjdG9yKFQuUF9Ib3N0X0xzdF9jbnRyKSkmJnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0KX0sbi5wcm90b3R5cGUuc2V0U3ViR3JvdXBEYXRhPWZ1bmN0aW9uKGUsdCxvLG4pe3ZhciByOzA8ZS5TdWJHcm91cHMubGVuZ3RoJiZlLlNob3dTdWJncm91cCYmKHI9Xy5wY05hbWU9PT1ydCYmZS5TaG93VmVuZG9yTGlzdCYmXy5pc0lhYjJvcnYyVGVtcGxhdGUmJiFPLlBDVGVtcGxhdGVVcGdyYWRlLEcuc2V0U3ViR3JwcyhlLHI/bzpuLHQsTykpfSxuLnByb3RvdHlwZS5zZXRTdWJHcnBzPWZ1bmN0aW9uKHQsbyxuLHIpe3ZhciBlO18ucGNOYW1lPT09cnQmJnQuU2hvd1ZlbmRvckxpc3QmJl8uaXNJYWIyb3J2MlRlbXBsYXRlJiYhTy5QQ1RlbXBsYXRlVXBncmFkZSYmKGU9bi5xdWVyeVNlbGVjdG9yKFQuUF9TdWJfR3JwX0NudHIpKS5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGUpLHQuU3ViR3JvdXBzLmZvckVhY2goZnVuY3Rpb24oZSl7Ry5zZXRTdWJHcm91cHMoe2dyb3VwOnQsc3ViZ3JvdXA6ZSxncnBFbDpuLHN1YkdycEVsOm8sanNvbjpyfSl9KX0sbi5wcm90b3R5cGUuc2V0U3ViR3JvdXBzPWZ1bmN0aW9uKGUpe3ZhciB0LG89ZS5ncm91cCxuPWUuc3ViZ3JvdXAscj1lLmdycEVsLGk9ZS5zdWJHcnBFbCxlPWUuanNvbixzPV8ucGNOYW1lLGE9Ry5nZXRSZW1vdmVDb25zZW50VG9nZ2xlKG4pLGk9KGIuaXNWMlRlbXBsYXRlP2k6aS5lbCkuY2xvbmVOb2RlKCEwKSxsPWkucXVlcnlTZWxlY3RvcihULlBfU3ViZ3BfdWwpLGM9aS5xdWVyeVNlbGVjdG9yKFQuUF9TdWJncnBfbGkpLmNsb25lTm9kZSghMCksZD1uLkN1c3RvbUdyb3VwSWQsdT0ib3Qtc3ViLWdyb3VwLWlkLSIrZCxwPXkuZ2V0R3JwU3RhdHVzKG4pLnRvTG93ZXJDYXNlKCksQz1jLnF1ZXJ5U2VsZWN0b3IoJy5jb29raWUtc3ViZ3JvdXA+aDQsIC5jb29raWUtc3ViZ3JvdXA+aDUsXG4gICAgICAgICAgICAuY29va2llLXN1Ymdyb3VwPmg2LCAub3Qtc3ViZ3JwPmg0LFxuICAgICAgICAgICAgLm90LXN1YmdycD5oNSwgLm90LXN1YmdycD5oNiwgLmNvb2tpZS1zdWJncm91cD5wW2FyaWEtbGV2ZWw9IjQiXSwgLmNvb2tpZS1zdWJncm91cD5wW2FyaWEtbGV2ZWw9IjUiXSxcbiAgICAgICAgICAgIC5jb29raWUtc3ViZ3JvdXA+cFthcmlhLWxldmVsPSI2Il0sIC5vdC1zdWJncnA+cFthcmlhLWxldmVsPSI0Il0sXG4gICAgICAgICAgICAub3Qtc3ViZ3JwPnBbYXJpYS1sZXZlbD0iNSJdLCAub3Qtc3ViZ3JwPnBbYXJpYS1sZXZlbD0iNiJdJyksZz1jLnF1ZXJ5U2VsZWN0b3IoVC5QX1RnbF9DbnRyKSxkPShjLnNldEF0dHJpYnV0ZSgiZGF0YS1vcHRhbm9uZ3JvdXBpZCIsZCksYi5pc1YyVGVtcGxhdGU/KCh0PUcuZ2V0SW5wdXRFbGUoKSkucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5zZXRBdHRyaWJ1dGUoImRhdGEtb3B0YW5vbmdyb3VwaWQiLGQpLHQucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5jbGFzc0xpc3QuYWRkKCJjb29raWUtc3ViZ3JvdXAtaGFuZGxlciIpLHQ9dC5jbG9uZU5vZGUoITApLGcuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLHQpKToodD1jLnF1ZXJ5U2VsZWN0b3IoIi5vdC10b2dnbGUiKSkucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5zZXRBdHRyaWJ1dGUoImRhdGEtb3B0YW5vbmdyb3VwaWQiLGQpLG0oaS5xdWVyeVNlbGVjdG9yKFQuUF9TdWJncF91bCkpLmh0bWwoIiIpLEcuYWRkU3ViZ3JvdXBOYW1lKG4sQyksRy5zZXREYXRhSWZWZW5kb3JTZXJ2aWNlRW5hYmxlZChDLGMsdCksdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLnNldEF0dHJpYnV0ZSgiaWQiLHUpLHQucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5zZXRBdHRyaWJ1dGUodGhpcy5fYXJpYUxhYmVsLG4uR3JvdXBOYW1lKSx0LnF1ZXJ5U2VsZWN0b3IoImxhYmVsIikuc2V0QXR0cmlidXRlKCJmb3IiLHUpLEcuc2V0U3ViR3JvdXBEZXNjcmlwdGlvbih7anNvbjplLGdyb3VwOm8sc3ViZ3JvdXA6bixzdWJHcm91cENsb25lOmN9KSxfLmlzVGNmVjJUZW1wbGF0ZSYmZHIuYWRkSWxsdXN0cmF0aW9uc0xpbmsoYyxuLG8uU2hvd1ZlbmRvckxpc3QsITApLEYoX3QsRXQpKTtvLlNob3dTdWJncm91cFRvZ2dsZSYmLTE8ZC5pbmRleE9mKG4uVHlwZSk/Ry5zZXRTdWJHcm91cFRvZ2dsZSh7aWQ6dSxzdWJHcm91cENsb25lOmMsZ3JvdXA6byxzdWJncm91cDpuLHRvZ2dsZUdyb3VwOmd9KTpwPT09Zi5BTFdBWVNfQUNUSVZFJiYoby5TaG93U3ViZ3JvdXBUb2dnbGV8fC0xPT09T3QuaW5kZXhPZihuLlR5cGUpKXx8KGE9ITApLEcuc2V0U3ViR3JvdXBzUHJvcGVydGllcyh7cmVtb3ZlQ29uc2VudFRvZ2dsZTphLHN1Ykdyb3VwVG9nZ2xlOnQsc3ViR3JvdXBDbG9uZTpjLHN0YXR1czpwLHN1Ymdyb3VwOm4sZ3JwRWw6cixwY05hbWU6cyxqc29uOmUsc3ViR3JwRWxDbG9uZTppLHVsUGFyZW50Q29udGFpbmVyRWxlOmx9KX0sbi5wcm90b3R5cGUuZ2V0UmVtb3ZlQ29uc2VudFRvZ2dsZT1mdW5jdGlvbihlKXt2YXIgdD0hMTtyZXR1cm4gdD1fLmlzSWFiMm9ydjJUZW1wbGF0ZSYmZS5UeXBlPT09RS5Hcm91cFR5cGVzLlB1ciYmIWUuSGFzQ29uc2VudE9wdE91dD8hMDp0fSxuLnByb3RvdHlwZS5hZGRTdWJncm91cE5hbWU9ZnVuY3Rpb24oZSx0KXt2YXIgbyxuPWUuR3JvdXBOYW1lO18uaXNUY2ZWMlRlbXBsYXRlJiZlLklzSWFiUHVycG9zZSYmKG89dGhpcy5nZXRBY3RpdmVWZW5kb3JDb3VudChlKSxuKz10aGlzLmdldFZlbmRvckNvdW50RWwobyxlLlR5cGUpKSxtKHQpLmh0bWwobil9LG4ucHJvdG90eXBlLnNldERhdGFJZlZlbmRvclNlcnZpY2VFbmFibGVkPWZ1bmN0aW9uKGUsdCxvKXt2YXIgbjtELnNob3dWZW5kb3JTZXJ2aWNlJiYoKG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmNsYXNzTGlzdC5hZGQoIm90LWFjYy1oZHIiKSxlLmNsYXNzTGlzdC5hZGQoIm90LWNhdC1oZWFkZXIiKSxuLmFwcGVuZENoaWxkKGUpLGU9ImFmdGVyYmVnaW4iLE8uUENDYXRlZ29yeVN0eWxlPT09U2UuVG9nZ2xlJiYoZT0iYmVmb3JlZW5kIiksbi5pbnNlcnRBZGphY2VudEVsZW1lbnQoZSxvKSx0LnJlbW92ZUNoaWxkKHQucXVlcnlTZWxlY3RvcihULlBfU3ViZ3JwX1RnbF9DbnRyKSksdC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyYmVnaW4iLG4pKX0sbi5wcm90b3R5cGUuc2V0U3ViR3JvdXBEZXNjcmlwdGlvbj1mdW5jdGlvbihlKXt2YXIgdCxvPWUuanNvbixuPWUuZ3JvdXAscj1lLnN1Ymdyb3VwLGU9ZS5zdWJHcm91cENsb25lLGk9Xy5wY05hbWUscz1vLlBDR3JwRGVzY1R5cGU9PT1vZS5MZWdhbCxpPWk9PT1ydCYmbi5TaG93VmVuZG9yTGlzdCYmXy5pc0lhYjJvcnYyVGVtcGxhdGUsYT1tKGUucXVlcnlTZWxlY3RvcihULlBfU3ViZ3JwX0Rlc2MpKTtpPyh0PXIuRGVzY3JpcHRpb25MZWdhbCYmcz9yLkRlc2NyaXB0aW9uTGVnYWw6ci5Hcm91cERlc2NyaXB0aW9uLGEuaHRtbCh0KSk6KHQ9Vi5zYWZlRm9ybWF0dGVkR3JvdXBEZXNjcmlwdGlvbihyKSxpPSExLC0xPER0LmluZGV4T2Yoci5UeXBlKSYmcyYmKGk9ITAsdD1yLkRlc2NyaXB0aW9uTGVnYWwpLG8uUENlbnRlckVuYWJsZUFjY29yZGlvbiYmaXx8KGE9bShlLnF1ZXJ5U2VsZWN0b3IoInAiKSkpLG4uU2hvd1N1Ykdyb3VwRGVzY3JpcHRpb24/YS5odG1sKHQpOmEuaHRtbCgiIikpfSxuLnByb3RvdHlwZS5zZXRTdWJHcm91cFRvZ2dsZT1mdW5jdGlvbihlKXt2YXIgdD1lLmlkLG89ZS5zdWJHcm91cENsb25lLG49ZS5ncm91cCxyPWUuc3ViZ3JvdXAsZT1lLnRvZ2dsZUdyb3VwLGk9Vi5pc0dyb3VwQWN0aXZlKHIpLG49KEcuc2V0U3ViR3JvdXBBY3RpdmUoe2dyb3VwOm4sc3ViZ3JvdXA6cixzdWJHcm91cENsb25lOm99LGkpLGUucXVlcnlTZWxlY3RvcigiLm90LWxhYmVsLXN0YXR1cyIpKTtPLlBDU2hvd0NvbnNlbnRMYWJlbHM/bi5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KGk/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCk6di5yZW1vdmVDaGlsZChuKSxfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJJiZyLlR5cGU9PT1FLkdyb3VwVHlwZXMuUHVyJiZyLkhhc0xlZ0ludE9wdE91dCYmKF8ubGVnSW50U2V0dGluZ3MuUFNob3dMZWdJbnRCdG4/Ry5zZXRMZWdJbnRCdXR0b24obyxyKTooaT1lLmNsb25lTm9kZSghMCksZS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixpKSxuPWkucXVlcnlTZWxlY3RvcigiLm90LWxhYmVsLXN0YXR1cyIpLChvPWkucXVlcnlTZWxlY3RvcigiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJpZCIsdCsiLWxlZy1vdXQiKSxpLnF1ZXJ5U2VsZWN0b3IoImxhYmVsIikuc2V0QXR0cmlidXRlKCJmb3IiLHQrIi1sZWctb3V0Iiksci5Jc0xlZ0ludFRvZ2dsZT0hMCxlPVYuaXNHcm91cEFjdGl2ZShyKSxPLlBDU2hvd0NvbnNlbnRMYWJlbHM/bi5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KGU/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCk6di5yZW1vdmVDaGlsZChuKSx2LnNldENoZWNrZWRBdHRyaWJ1dGUobnVsbCxvLGUpLHIuSXNMZWdJbnRUb2dnbGU9ITEpKX0sbi5wcm90b3R5cGUuc2V0U3ViR3JvdXBBY3RpdmU9ZnVuY3Rpb24oZSx0KXt2YXIgbzt0JiYodD1lLmdyb3VwLG89ZS5zdWJncm91cCxlPWUuc3ViR3JvdXBDbG9uZSx0PXkuZ2V0R3JwU3RhdHVzKHQpLnRvTG93ZXJDYXNlKCksZS5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsIiIpLHQ9PT1mLkFMV0FZU19BQ1RJVkUpJiYtMT09PUR0LmluZGV4T2Yoby5UeXBlKSYmZS5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLnNldEF0dHJpYnV0ZSgiYXJpYS1kaXNhYmxlZCIsInRydWUiKX0sbi5wcm90b3R5cGUuc2V0U3ViR3JvdXBzUHJvcGVydGllcz1mdW5jdGlvbihlKXt2YXIgdD1lLnJlbW92ZUNvbnNlbnRUb2dnbGUsbz1lLnN1Ykdyb3VwVG9nZ2xlLG49ZS5zdWJHcm91cENsb25lLHI9ZS5zdGF0dXMsaT1lLnN1Ymdyb3VwLHM9ZS5ncnBFbCxhPWUucGNOYW1lLGw9ZS5qc29uLGM9ZS5zdWJHcnBFbENsb25lLGU9ZS51bFBhcmVudENvbnRhaW5lckVsZTt0JiYoby5jbGFzc0xpc3QuYWRkKCJvdC1oaWRlLXRnbCIpLG8ucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5zZXRBdHRyaWJ1dGUodGhpcy5fYXJpYUhpZGRlbiwidHJ1ZSIpKSxyIT09Zi5BTFdBWVNfQUNUSVZFJiZyIT09Zi5BTFdBWVNfSU5BQ1RJVkV8fHR8fChvJiZvLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQobyksKHQ9bi5xdWVyeVNlbGVjdG9yKFQuUF9UZ2xfQ250cikpJiZ0LmNsYXNzTGlzdC5hZGQoIm90LWFsd2F5cy1hY3RpdmUtc3ViZ3JvdXAiKSxHLnNldEFsd2F5c0FjdGl2ZShuLCEwLHI9PT1mLkFMV0FZU19JTkFDVElWRSkpLCJDT09LSUUiPT09aS5UeXBlJiYtMSE9PWkuUGFyZW50LmluZGV4T2YoIlNUQUNLIikmJmQoYywiZGlzcGxheTogbm9uZTsiKSxtKGUpLmFwcGVuZChuKSxiLmlzVjJUZW1wbGF0ZT8obz1zLCJvdFBjVGFiIj09PWE/bz1zLnF1ZXJ5U2VsZWN0b3IoIiIrVC5QX0Rlc2NfQ29udGFpbmVyKTpsLlBDZW50ZXJFbmFibGVBY2NvcmRpb24mJihvPXMucXVlcnlTZWxlY3RvcihULlBfQWNjX1R4dCkpLG8uaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLGMpKToodD1zLnF1ZXJ5U2VsZWN0b3IoVC5QX0NhdGVnb3J5X0l0ZW0rIiAiK1QuUF9WZW5fTHN0X0NudHIpKSYmdC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWJlZ2luIixjKSxELnNob3dWZW5kb3JTZXJ2aWNlJiZPLlZlbmRvclNlcnZpY2VDb25maWcuUENWU0NhdGVnb3J5VmlldyYmQi5pbnNlcnRWZW5kb3JTZXJ2aWNlSHRtbChpLGUpfSxuLnByb3RvdHlwZS5nZXRJbnB1dEVsZUZvckNhdGVnb3J5PWZ1bmN0aW9uKGUpe3JldHVybiBELnNob3dWZW5kb3JTZXJ2aWNlJiZPLlBDQ2F0ZWdvcnlTdHlsZT09PVNlLkNoZWNrYm94JiZlLmNsYXNzTGlzdC5hZGQoIm90LWNoZWNrYm94LWNvbnNlbnQiKSxHLmdldElucHV0RWxlKCl9LG4ucHJvdG90eXBlLmdldElucHV0RWxlPWZ1bmN0aW9uKCl7cmV0dXJuIV8uaXNJYWIyb3J2MlRlbXBsYXRlJiZPLlBDVGVtcGxhdGVVcGdyYWRlP1huKCk6Ti50b2dnbGVFbC5jbG9uZU5vZGUoITApfSxuLnByb3RvdHlwZS5zZXRUb2dnbGU9ZnVuY3Rpb24oZSx0LG8sbixyKXt2YXIgaT1HLmdldElucHV0RWxlRm9yQ2F0ZWdvcnkoZSkscz0oaS5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmNsYXNzTGlzdC5hZGQoImNhdGVnb3J5LXN3aXRjaC1oYW5kbGVyIiksaS5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpKSxhPWUucXVlcnlTZWxlY3RvcihULlBfQ2F0ZWdvcnlfSGVhZGVyKSxsPVYuaXNHcm91cEFjdGl2ZShvKSxjPVtmLkFMV0FZU19BQ1RJVkUsZi5BTFdBWVNfSU5BQ1RJVkVdLmluY2x1ZGVzKHkuZ2V0R3JwU3RhdHVzKG8pLnRvTG93ZXJDYXNlKCkpLGQ9by5PcHRhbm9uR3JvdXBJZC50b1N0cmluZygpLHU9RS5Hcm91cFR5cGVzLHA9ITA7IV8uaXNJYWIyb3J2MlRlbXBsYXRlfHxvLlR5cGUhPT11LlB1ciYmby5UeXBlIT09dS5TdGFja3x8by5IYXNDb25zZW50T3B0T3V0fHwocD0hMSksbShpLnF1ZXJ5U2VsZWN0b3IoImxhYmVsIikpLmF0dHIoImZvciIsbiksbShpLnF1ZXJ5U2VsZWN0b3IoIi5vdC1sYWJlbC10eHQiKSkuaHRtbChvLkdyb3VwTmFtZSk7Xy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMSSYmby5UeXBlPT09dS5QdXImJm8uSGFzTGVnSW50T3B0T3V0JiYoXy5sZWdJbnRTZXR0aW5ncy5QU2hvd0xlZ0ludEJ0bj9HLnNldExlZ0ludEJ1dHRvbihlLG8sITAsdCk6KHU9aS5jbG9uZU5vZGUoITApLG8uSXNMZWdJbnRUb2dnbGU9ITAsdD1WLmlzR3JvdXBBY3RpdmUobyksQz11LnF1ZXJ5U2VsZWN0b3IoIi5vdC1sYWJlbC1zdGF0dXMiKSxPLlBDU2hvd0NvbnNlbnRMYWJlbHM/Qy5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KHQ/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCk6di5yZW1vdmVDaGlsZChDKSxvLklzTGVnSW50VG9nZ2xlPSExLFYuc2V0SW5wdXRJRCh1LnF1ZXJ5U2VsZWN0b3IoImlucHV0IiksbisiLWxlZy1vdXQiLGQsdCxyKSxtKHUucXVlcnlTZWxlY3RvcigibGFiZWwiKSkuYXR0cigiZm9yIixuKyItbGVnLW91dCIpLGEuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIsdSkpKTt2YXIgQz1pLnF1ZXJ5U2VsZWN0b3IoIi5vdC1sYWJlbC1zdGF0dXMiKSxkPShPLlBDU2hvd0NvbnNlbnRMYWJlbHM/Qy5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KGw/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCk6di5yZW1vdmVDaGlsZChDKSxPLlBDQ2F0ZWdvcnlTdHlsZT09PVNlLlRvZ2dsZSk7dGhpcy5oaWRlVG9nZ2xlQ29udGFpbmVyKGMscCxkLGkpLHAmJnRoaXMuc2V0QWx3YXlzQWN0aXZlT3JUb2dnbGVJbnB1dChvLGUsaSxzLG4sciksRy5zZXROb0FjY29yZGlvbkhlYWRlcihlLGMpfSxuLnByb3RvdHlwZS5zZXROb0FjY29yZGlvbkhlYWRlcj1mdW5jdGlvbihlLHQpe3ZhciBvLG4scixpOyFfLmlzSWFiMm9ydjJUZW1wbGF0ZSYmTy5QQ1RlbXBsYXRlVXBncmFkZSYmKG89Ty5QQ0NhdGVnb3J5U3R5bGU9PT1TZS5DaGVja2JveCxPLlBDQWNjb3JkaW9uU3R5bGU9PT1hZS5Ob0FjY29yZGlvbikmJm8mJigobz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuY2xhc3NMaXN0LmFkZCgib3QtYWNjLWhkciIpLG49ZS5xdWVyeVNlbGVjdG9yKCIub3QtY2hrYm94Iikscj1lLnF1ZXJ5U2VsZWN0b3IoIi5vdC1hbHdheXMtYWN0aXZlIiksaT1lLnF1ZXJ5U2VsZWN0b3IoVC5QX0NhdGVnb3J5X0hlYWRlciksbiYmby5hcHBlbmRDaGlsZChuKSxvLmFwcGVuZENoaWxkKGkpLHQmJm8uYXBwZW5kQ2hpbGQociksZS5pbnNlcnRCZWZvcmUobyxlLmZpcnN0Q2hpbGQpKX0sbi5wcm90b3R5cGUuaGlkZVRvZ2dsZUNvbnRhaW5lcj1mdW5jdGlvbihlLHQsbyxuKXshZSYmdHx8IW98fChuLmNsYXNzTGlzdC5hZGQoIm90LWhpZGUtdGdsIiksbi5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLnNldEF0dHJpYnV0ZSh0aGlzLl9hcmlhSGlkZGVuLCJ0cnVlIikpfSxuLnByb3RvdHlwZS5zZXRBbHdheXNBY3RpdmVPclRvZ2dsZUlucHV0PWZ1bmN0aW9uKGUsdCxvLG4scixpKXt2YXIgcz0iYWx3YXlzIGFjdGl2ZSI9PT0obnVsbD09KHM9eS5nZXRHcnBTdGF0dXMoZSkpP3ZvaWQgMDpzLnRyaW0oKS50b0xvd2VyQ2FzZSgpKSxhPSJhbHdheXMgaW5hY3RpdmUiPT09KG51bGw9PShhPXkuZ2V0R3JwU3RhdHVzKGUpKT92b2lkIDA6YS50cmltKCkudG9Mb3dlckNhc2UoKSksbD1PLlBDQ2F0ZWdvcnlTdHlsZT09PVNlLlRvZ2dsZSxjPWUuT3B0YW5vbkdyb3VwSWQudG9TdHJpbmcoKSxlPVYuaXNHcm91cEFjdGl2ZShlKSxkPXQucXVlcnlTZWxlY3RvcihULlBfQ2F0ZWdvcnlfSGVhZGVyKTshXy5pc0lhYjJvcnYyVGVtcGxhdGUmJk8uUENUZW1wbGF0ZVVwZ3JhZGU/KChzfHxhKSYmTy5QQ1Nob3dBbHdheXNBY3RpdmVUb2dnbGUmJihHLnNldEFsd2F5c0FjdGl2ZSh0LCExLGEpLG8ucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLCJ0cnVlIikpLHMmJmx8fEcuaW5zZXJ0QWNjb3JkaW9uSW5wdXRIZWFkZXIoZCxvKSxWLnNldElucHV0SUQobixyLGMsZSxpKSxHLmluc2VydEFjY29yZGlvblBvaW50ZXIodCxkKSk6KEcuaW5zZXJ0QWNjb3JkaW9uUG9pbnRlcih0LGQpLHN8fGE/Ty5QQ1Nob3dBbHdheXNBY3RpdmVUb2dnbGUmJkcuc2V0QWx3YXlzQWN0aXZlKHQsITEsYSk6KEcuaW5zZXJ0QWNjb3JkaW9uSW5wdXRIZWFkZXIoZCxvKSxWLnNldElucHV0SUQobixyLGMsZSxpKSkpfSxuLnByb3RvdHlwZS5zZXRPcHRPdXRTaWduYWxWaXNpYmlsaXR5PWZ1bmN0aW9uKGUpe3ZhciB0PV8uZ3BjRW5hYmxlZCYmXy5ncGNGb3JBR3JwRW5hYmxlZCxvPVYuaXNBbnlHUENHcm91cE9wdGVkT3V0KCk7Ty5QQ1Nob3dPcHRPdXRTaWduYWwmJih0JiZvfHxfLnByZXZpZXdNb2RlKT9lLmNsYXNzTGlzdC5yZW1vdmUoIm90LWhpZGUiKTplLmNsYXNzTGlzdC5hZGQoIm90LWhpZGUiKX0sbi5wcm90b3R5cGUuc2V0T3B0T3V0U2lnbmFsTm90aWZpY2F0aW9uPWZ1bmN0aW9uKGUpe2U9aC5jcmVhdGVPcHRPdXRTaWduYWxFbGVtZW50KGUsITApO0cuc2V0T3B0T3V0U2lnbmFsVmlzaWJpbGl0eShlKX0sbi5wcm90b3R5cGUuaW5zZXJ0QWNjb3JkaW9uSW5wdXRIZWFkZXI9ZnVuY3Rpb24oZSx0KXt2YXIgbz1HLmdldFBvc2l0aW9uRm9ySW5wdXRFbGUoKTtlLmluc2VydEFkamFjZW50RWxlbWVudChvLHQpfSxuLnByb3RvdHlwZS5nZXRQb3NpdGlvbkZvcklucHV0RWxlPWZ1bmN0aW9uKCl7dmFyIGU9ImJlZm9yZWJlZ2luIjtyZXR1cm4gZT0hXy5pc0lhYjJvcnYyVGVtcGxhdGUmJk8uUENUZW1wbGF0ZVVwZ3JhZGUmJk8uUENDYXRlZ29yeVN0eWxlIT09U2UuVG9nZ2xlP2U6ImFmdGVyZW5kIn0sbi5wcm90b3R5cGUuaW5zZXJ0QWNjb3JkaW9uUG9pbnRlcj1mdW5jdGlvbihlLHQpe3ZhciBvLG47ZS5jbGFzc0xpc3QuYWRkKCJvdC12cy1jb25maWciKSxPLlBDZW50ZXJFbmFibGVBY2NvcmRpb24mJighXy5pc0lhYjJvcnYyVGVtcGxhdGUmJk8uUENUZW1wbGF0ZVVwZ3JhZGU/KGU9ZS5xdWVyeVNlbGVjdG9yKFQuUF9BY2NfSGVhZGVyKSxvPW49dm9pZCAwLG49KE8uUENBY2NvcmRpb25TdHlsZT09PWFlLkNhcmV0PyhvPSJiZWZvcmVlbmQiLE4uYXJyb3dFbCk6KG89Ty5QQ0NhdGVnb3J5U3R5bGU9PT1TZS5DaGVja2JveD8iYmVmb3JlZW5kIjoiYWZ0ZXJiZWdpbiIsTi5wbHVzTWludXNFbCkpLmNsb25lTm9kZSghMCksZS5pbnNlcnRBZGphY2VudEVsZW1lbnQobyxuKSk6Ty5QQ0FjY29yZGlvblN0eWxlPT09YWUuQ2FyZXQ/dC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixOLmFycm93RWwuY2xvbmVOb2RlKCEwKSk6dC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWJlZ2luIixOLnBsdXNNaW51c0VsLmNsb25lTm9kZSghMCkpKX0sbi5wcm90b3R5cGUuc2V0VG9nZ2xlUHJvcHM9ZnVuY3Rpb24oZSx0LG8sbixyKXt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0Om5vdCguY29va2llLXN1Ymdyb3VwLWhhbmRsZXIpIikscz1lLnF1ZXJ5U2VsZWN0b3JBbGwoImxhYmVsIiksYT1WLmlzR3JvdXBBY3RpdmUobyksbD1vLkN1c3RvbUdyb3VwSWQsYz1lLnF1ZXJ5U2VsZWN0b3IoIi5sYWJlbC10ZXh0Iik7YyYmbShjKS5odG1sKG8uR3JvdXBOYW1lKTtmb3IodmFyIGQsdSxwLEMsZz0wO2c8aS5sZW5ndGg7ZysrKXNbZ10mJm0oc1tnXSkuYXR0cigiZm9yIixuKSwyPD1pLmxlbmd0aCYmMD09PWc/bShpW2ddKS5hdHRyKCJpZCIsbisiLXRvZ2dsZSIpOihkPXRoaXMuY2FuU2hvd0NvbnNlbnRUb2dnbGUobyksdGhpcy5jYW5TaG93TGVnSW50VG9nZ2xlKG8pJiYoXy5sZWdJbnRTZXR0aW5ncy5QU2hvd0xlZ0ludEJ0bj9HLnNldExlZ0ludEJ1dHRvbihlLG8sITAsdCk6KEM9KHU9ZS5xdWVyeVNlbGVjdG9yKFQuUF9UZ2xfQ250cisiOm5vdCgiK1QuUF9TdWJncnBfVGdsX0NudHIrIikiKXx8ZS5xdWVyeVNlbGVjdG9yKCIub3QtdG9nZ2xlIikpLmNsb25lTm9kZSghMCksdS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixDKSx1PUMucXVlcnlTZWxlY3RvcigiaW5wdXQiKSxvLklzTGVnSW50VG9nZ2xlPSEwLHA9Vi5pc0dyb3VwQWN0aXZlKG8pLG8uSXNMZWdJbnRUb2dnbGU9ITEsVi5zZXRJbnB1dElEKHUsbisiLWxlZy1vdXQiLGwscCxyKSxtKEMucXVlcnlTZWxlY3RvcigibGFiZWwiKSkuYXR0cigiZm9yIixuKyItbGVnLW91dCIpLHYucmVtb3ZlQ2hpbGQoQy5xdWVyeVNlbGVjdG9yKFQuUF9BcnJ3X0NudHIpKSkpLHU9eS5nZXRHcnBTdGF0dXMobykudG9Mb3dlckNhc2UoKT09PWYuQUxXQVlTX0FDVElWRSxwPXkuZ2V0R3JwU3RhdHVzKG8pLnRvTG93ZXJDYXNlKCk9PT1mLkFMV0FZU19JTkFDVElWRSwhdSYmZHx8KEM9aVtnXS5jbG9zZXN0KCIub3QtdG9nZ2xlIikpJiYoQy5jbGFzc0xpc3QuYWRkKCJvdC1oaWRlLXRnbCIpLEMucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5zZXRBdHRyaWJ1dGUodGhpcy5fYXJpYUhpZGRlbiwhMCkpLGQmJih1JiZHLnNldEFsd2F5c0FjdGl2ZShlLCExLHApLFYuc2V0SW5wdXRJRChpW2ddLG4sbCxhLHIpKSl9LG4ucHJvdG90eXBlLmNhblNob3dDb25zZW50VG9nZ2xlPWZ1bmN0aW9uKGUpe3ZhciB0PSEwLG89RS5Hcm91cFR5cGVzO3JldHVybiB0PSFfLmlzSWFiMm9ydjJUZW1wbGF0ZXx8ZS5UeXBlIT09by5QdXImJmUuVHlwZSE9PW8uU3RhY2t8fGUuSGFzQ29uc2VudE9wdE91dD90OiExfSxuLnByb3RvdHlwZS5jYW5TaG93TGVnSW50VG9nZ2xlPWZ1bmN0aW9uKGUpe3ZhciB0PUUuR3JvdXBUeXBlcztyZXR1cm4gXy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMSSYmZS5UeXBlPT09dC5QdXImJmUuSGFzTGVnSW50T3B0T3V0fSxuLnByb3RvdHlwZS5zZXRBbHdheXNBY3RpdmU9ZnVuY3Rpb24oZSx0LG8pe3ZvaWQgMD09PXQmJih0PSExKSx2b2lkIDA9PT1vJiYobz0hMSk7dmFyIG4scj1fLnBjTmFtZTtyPT09cnR8fHI9PT1pdHx8dD8ocj1lLnF1ZXJ5U2VsZWN0b3IoVC5QX1RnbF9DbnRyKSkmJnIuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmJlZ2luIixtKCI8ZGl2IGNsYXNzPSdvdC1hbHdheXMtYWN0aXZlJz4iKyhvP08uQWx3YXlzSW5hY3RpdmVUZXh0Ok8uQWx3YXlzQWN0aXZlVGV4dCkrIjwvZGl2PiIsImNlIikuZWwpOihyPSJvdC1zdGF0dXMtaWQtIisocj1udWxsPT0obj1yPSh0PWUucXVlcnlTZWxlY3RvcihULlBfQ2F0ZWdvcnlfSGVhZGVyKSkuaWQpP3ZvaWQgMDpuLnNwbGl0KCItIilbM10pLCFiLmlzVjJUZW1wbGF0ZSYmTy5QQ2VudGVyRW5hYmxlQWNjb3JkaW9uJiYocj0ib3Qtc3RhdHVzLWlkLSIrKHI9bnVsbD09KG49cj0odD1lLnF1ZXJ5U2VsZWN0b3IoVC5QX0FycndfQ250cikpLmlkKT92b2lkIDA6bi5zcGxpdCgiLSIpWzNdKSksbSh0KS5lbC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixtKCc8ZGl2IGlkPSInK3IrIlwiIGNsYXNzPSdvdC1hbHdheXMtYWN0aXZlJz4iKyhvP08uQWx3YXlzSW5hY3RpdmVUZXh0Ok8uQWx3YXlzQWN0aXZlVGV4dCkrIjwvZGl2PiIsImNlIikuZWwpKSxPLlBDZW50ZXJFbmFibGVBY2NvcmRpb24/KG49ZS5xdWVyeVNlbGVjdG9yKFQuUF9BY2NfSGVhZGVyKSkmJm4uY2xhc3NMaXN0LmFkZCgib3QtYWx3YXlzLWFjdGl2ZS1ncm91cCIpOigodD1lLnF1ZXJ5U2VsZWN0b3IoIiIrVC5QX0Rlc2NfQ29udGFpbmVyKSkmJnQuY2xhc3NMaXN0LmFkZCgib3QtYWx3YXlzLWFjdGl2ZS1ncm91cCIpLGUuY2xhc3NMaXN0LmFkZCgib3QtYWx3YXlzLWFjdGl2ZS1ncm91cCIpKX0sbi5wcm90b3R5cGUuc2V0UGNUYWJMYXlvdXQ9ZnVuY3Rpb24oZSx0LG8pe3ZhciBuLHI9ZSgiLm90LXRhYi1kZXNjIik7Im90UGNUYWIiPT09Xy5wY05hbWUmJihvJiZlKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0NhdGVnb3J5X0dycCkuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmJlZ2luIixvKSxyJiY2NDA8d2luZG93LmlubmVyV2lkdGgmJm0ocikuYXBwZW5kKHQucXVlcnlTZWxlY3RvckFsbCgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9EZXNjX0NvbnRhaW5lcikpLE8uSXNJYWJFbmFibGVkPyhuPWUoVC5QX0Rlc2NfQ29udGFpbmVyKyIgLmNhdGVnb3J5LXZlbmRvcnMtbGlzdC1oYW5kbGVyIikpJiYobi5zZXRBdHRyaWJ1dGUoImRpciIsImx0ciIpLG4uaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChPLlZlbmRvckxpc3RUZXh0KSk6KG49ZShULlBfRGVzY19Db250YWluZXIrIiAuY2F0ZWdvcnktdmVuZG9ycy1saXN0LWhhbmRsZXIiKSkmJm4ucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChuKSl9LG4ucHJvdG90eXBlLnNldFZlbmRvckxpc3RDbGFzcz1mdW5jdGlvbihlLHQpe2IuaXNWMlRlbXBsYXRlP08uUENBY2NvcmRpb25TdHlsZT09PWFlLkNhcmV0JiYobShlKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9MaXN0KSkuYWRkQ2xhc3MoIm90LWVuYmwtY2hyIiksTy5QQ2VudGVyRW5hYmxlQWNjb3JkaW9uKSYmbShlKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0NvbnRlbnQpKS5hZGRDbGFzcygib3QtZW5ibC1jaHIiKTptKHQucXVlcnlTZWxlY3RvcihULlBfU3ViX0dycF9DbnRyKSkucmVtb3ZlKCl9LG4ucHJvdG90eXBlLnNldFBDSGVhZGVyPWZ1bmN0aW9uKGUsdCl7dmFyIG89Xy5wY05hbWUsbj1lKFQuUF9MaV9IZHIpfHx0LnF1ZXJ5U2VsZWN0b3IoVC5QX0xpX0hkcik7Xy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMSSYmXy5ncnBDb250YWluTGVnYWxPcHRPdXQmJl8uaXNJYWIyb3J2MlRlbXBsYXRlJiYhXy5sZWdJbnRTZXR0aW5ncy5QU2hvd0xlZ0ludEJ0bj8obi5xdWVyeVNlbGVjdG9yKCJzcGFuOmZpcnN0LWNoaWxkIikuaW5uZXJUZXh0PU8uQ29uc2VudFRleHQsbi5xdWVyeVNlbGVjdG9yKCJzcGFuOmxhc3QtY2hpbGQiKS5pbm5lclRleHQ9Ty5MZWdpdEludGVyZXN0VGV4dCxiLmlzVjJUZW1wbGF0ZSYmKG4ucXVlcnlTZWxlY3Rvcigic3BhbjpmaXJzdC1jaGlsZCIpLmlubmVyVGV4dD1PLlBDZW50ZXJDb25zZW50VGV4dCxuLnF1ZXJ5U2VsZWN0b3IoInNwYW46bGFzdC1jaGlsZCIpLmlubmVyVGV4dD1PLlBDZW50ZXJMZWdJbnRDb2x1bW5IZWFkZXIpLE8uUENlbnRlckVuYWJsZUFjY29yZGlvbiYmbj9uLmNsYXNzTGlzdC5hZGQoIm90LWxlZy1ib3JkZXItY29sb3IiKToib3RQY0xpc3QiPT09byYmdC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyYmVnaW4iLG4pKToodi5yZW1vdmVDaGlsZChlKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0xpX0hkcikpLHYucmVtb3ZlQ2hpbGQodC5xdWVyeVNlbGVjdG9yKFQuUF9MaV9IZHIpKSl9O3ZhciBHLENyPW47ZnVuY3Rpb24gbigpe3RoaXMuX2FyaWFIaWRkZW49ImFyaWEtaGlkZGVuIix0aGlzLl9hcmlhTGFiZWw9ImFyaWEtbGFiZWwifXlyLnByb3RvdHlwZS5zaG93QmFubmVyPWZ1bmN0aW9uKCl7dmFyIGU9Xy5iYW5uZXJOYW1lLHQ9bSh0aGlzLkVsKTtsLnNraXBBZGRpbmdIVE1MJiYibm9uZSI9PT1nZXRDb21wdXRlZFN0eWxlKHQuZWxbMF0pLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKSYmZSE9PUplJiZlIT09WWUmJmUhPT1aZT90LmNzcygiZGlzcGxheTogYmxvY2s7Iik6Ty5CQW5pbWF0aW9uPT09bWUuU2xpZGVJbj90aGlzLnNsaWRlSW5BbmltYXRpb24odCxlKTpPLkJBbmltYXRpb249PT1tZS5GYWRlSW4mJnQuYWRkQ2xhc3MoIm90LWZhZGUtaW4iKX0seXIucHJvdG90eXBlLmluc2VydEFsZXJ0SHRtbD1mdW5jdGlvbigpe08uSXNHUFBFbmFibGVkJiZWcy5zZXRDbXBEaXNwbGF5U3RhdHVzKCJ2aXNpYmxlIik7ZnVuY3Rpb24gZShlKXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yKGUpfXZhciB0PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG89KG0obykuaHRtbChGcy5iYW5uZXJHcm91cC5odG1sKSxvLnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1iYW5uZXItc2RrIikpO3RoaXMuc2V0QXJpYU1vZGFsRm9yQmFubmVyKG8pLGIuZnAuQ29va2llVjJTU1I/KG0odCkuYXBwZW5kKG8pLHRoaXMuc2V0QmFubmVyTGlua0F0dHJpYnV0ZXMoZSksdGhpcy5fcmVqZWN0QnRuPWUoVG4pLHRoaXMuX2FjY2VwdEJ0bj1lKHZuKSk6dGhpcy5pbnNlcnRIdG1sRm9yTm9uU1NSRmxvdyhvLHQsZSxmdW5jdGlvbihlKXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yQWxsKGUpfSksdGhpcy5zc3JBbmROb25TU1JDb21tb25IdG1sKHQpfSx5ci5wcm90b3R5cGUuaW5zZXJ0SHRtbEZvck5vblNTUkZsb3c9ZnVuY3Rpb24oZSx0LG8sbil7dmFyIHIsaSxzPV8uYmFubmVyTmFtZTtGcy5iYW5uZXJHcm91cCYmKE8uQmFubmVyUmVsYXRpdmVGb250U2l6ZXNUb2dnbGUmJm0oZSkuYWRkQ2xhc3MoIm90UmVsRm9udCIpLChPLkJJbml0aWFsRm9jdXN8fE8uQkluaXRpYWxGb2N1c0xpbmtBbmRCdXR0b24pJiZlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksTy51c2VSVEwmJm0oZSkuYXR0cigiZGlyIiwicnRsIiksXy5pc0lhYjJvcnYyVGVtcGxhdGUmJk8uQmFubmVyRFBERGVzY3JpcHRpb24ubGVuZ3RoJiZtKGUpLmFkZENsYXNzKCJvdC1pYWItMiIpLChyPU8uQmFubmVyUG9zaXRpb24pJiYoImJvdHRvbS1sZWZ0Ij09PXI/bShlKS5hZGRDbGFzcygib3QtYm90dG9tLWxlZnQiKToiYm90dG9tLXJpZ2h0Ij09PXI/bShlKS5hZGRDbGFzcygib3QtYm90dG9tLXJpZ2h0Iik6bShlKS5hZGRDbGFzcyhyKSksbSh0KS5hcHBlbmQoZSksdGhpcy5zZXRCYW5uZXJEYXRhKG8pLHI9dGhpcy5zZXRJQUIySHRtbERhdGEobyksdGhpcy5zZXRBY2NlcHRBbmRSZWplY3RCdG5IdG1sKG8pLHRoaXMuc2V0QnV0dG9uc09yZGVyKG8pLHQ9dGhpcy5odG1sRm9yQmFubmVyQnV0dG9ucyhlLG8sbiksbj1PLnNob3dCYW5uZXJDbG9zZUJ1dHRvbixpPU8uQkNsb3NlQnV0dG9uVHlwZT09PXZlLkxpbmssdGhpcy5zZXRXaWR0aEZvckZsYXRCYW5uZXIobyxyLHQpLG4mJnM9PT1YZSYmXy5pc0lhYjJvcnYyVGVtcGxhdGUmJiFpJiYoKHQ9bygiLmJhbm5lci1jbG9zZS1idG4tY29udGFpbmVyIikpLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodCksbShlKS5lbC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZUVuZCIsdCksbShvKCIjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbnRhaW5lciIpKS5hZGRDbGFzcygib3QtdG9wLWNudHIiKSksdGhpcy5zZXRCYW5uZXJPcHRpb25zKG8sciksdGhpcy5zZXRCYW5uZXJMb2dvKGUsbykpfSx5ci5wcm90b3R5cGUuc2V0QmFubmVyT3B0aW9ucz1mdW5jdGlvbihlLHQpe3ZhciBvPXRoaXMsbj1fLmJhbm5lck5hbWUscj10aGlzLmlzQ21wRW5hYmxlZCgpLGk9W3t0eXBlOiJwdXJwb3NlIix0aXRsZUtleToiQmFubmVyUHVycG9zZVRpdGxlIixkZXNjcmlwdGlvbktleToiQmFubmVyUHVycG9zZURlc2NyaXB0aW9uIixpZGVudGlmaWVyOiJwdXJwb3NlLW9wdGlvbiJ9LHt0eXBlOiJmZWF0dXJlIix0aXRsZUtleToiQmFubmVyRmVhdHVyZVRpdGxlIixkZXNjcmlwdGlvbktleToiQmFubmVyRmVhdHVyZURlc2NyaXB0aW9uIixpZGVudGlmaWVyOiJmZWF0dXJlLW9wdGlvbiJ9LHt0eXBlOiJpbmZvcm1hdGlvbiIsdGl0bGVLZXk6IkJhbm5lckluZm9ybWF0aW9uVGl0bGUiLGRlc2NyaXB0aW9uS2V5OiJCYW5uZXJJbmZvcm1hdGlvbkRlc2NyaXB0aW9uIixpZGVudGlmaWVyOiJpbmZvcm1hdGlvbi1vcHRpb24ifV0scz1tKGUodGhpcy5fYmFubmVyT3B0aW9uc1NlbGVjdG9yKSkuZWw7cj8obj09PVFlP3RoaXMuc2V0RmxvYXRpbmdSb3VuZGVkSWNvbkJhbm5lckNtcE9wdGlvbnMoZSxpKToodGhpcy5zZXRDbXBCYW5uZXJPcHRpb25zKGUsaSksbj09PSRlJiZ0LmVsLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlZW5kIixzKSksbSh3aW5kb3cpLm9uKCJyZXNpemUiLGZ1bmN0aW9uKCl7d2luZG93LmlubmVyV2lkdGg8PTg5NiYmby5zZXRCYW5uZXJPcHRpb25Db250ZW50KCl9KSk6KF8uYmFubmVyTmFtZT09PVhlJiYocz1tKGUoIi5iYW5uZXItb3B0aW9ucy1jYXJkIikpLmVsKSx2LnJlbW92ZUNoaWxkKHMpKX0seXIucHJvdG90eXBlLnNldFdpZHRoRm9yRmxhdEJhbm5lcj1mdW5jdGlvbihlLHQsbyl7dmFyIG49Xy5iYW5uZXJOYW1lLHI9Ty5zaG93QmFubmVyQ2xvc2VCdXR0b24saT10aGlzLmhhc05vQWN0aW9uQnV0dG9ucygpO249PT1ZZSYmKF8uaXNJYWIyb3J2MlRlbXBsYXRlJiYodC5yZW1vdmVDbGFzcygib3Qtc2RrLWVpZ2h0IiksdGhpcy5zZXRPcmRlckZvckFjY2VwdEFuZENvb2tpZVNldHRpbmdzKGUsbykpLHImJiFpJiZfLmlzSWFiMm9ydjJUZW1wbGF0ZT90LmFkZENsYXNzKCJvdC1zZGstbmluZSIpOnImJmk/dC5hZGRDbGFzcygib3Qtc2RrLWVsZXZlbiIpOiFyJiZpP3QuYWRkQ2xhc3MoIm90LXNkay10d2VsdmUiKTpyfHxpfHwhXy5pc0lhYjJvcnYyVGVtcGxhdGV8fCh0LmFkZENsYXNzKCJvdC1zZGstdGVuIiksbShlKHRoaXMuX2J0bkdycFBhcmVudFNlbGVjdG9yKSkuYWRkQ2xhc3MoIm90LXNkay10d28iKSxtKGUodGhpcy5fYnRuR3JwUGFyZW50U2VsZWN0b3IpKS5yZW1vdmVDbGFzcygib3Qtc2RrLXRocmVlIikpKX0seXIucHJvdG90eXBlLnNldE9yZGVyRm9yQWNjZXB0QW5kQ29va2llU2V0dGluZ3M9ZnVuY3Rpb24oZSx0KXtPLlBDVGVtcGxhdGVVcGdyYWRlJiZiLmZwLldlYkJ1dHRvbkN1c3RvbWlzYXRpb25zfHwoTy5zaG93QmFubmVyQWNjZXB0QnV0dG9uJiZ0Lmluc2VydEFkamFjZW50RWxlbWVudCgiYWZ0ZXJiZWdpbiIsdGhpcy5fYWNjZXB0QnRuKSxPLnNob3dCYW5uZXJDb29raWVTZXR0aW5ncyYmdC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsZShQbikpKX0seXIucHJvdG90eXBlLmhhc05vQWN0aW9uQnV0dG9ucz1mdW5jdGlvbigpe3ZhciBlPSFPLnNob3dCYW5uZXJBY2NlcHRCdXR0b24mJiFPLnNob3dCYW5uZXJDb29raWVTZXR0aW5ncyYmIU8uQmFubmVyU2hvd1JlamVjdEFsbEJ1dHRvbjtyZXR1cm4gXy5iYW5uZXJOYW1lPT09JGU/ZSYmIU8uQlNob3dTYXZlQnRuOmV9LHlyLnByb3RvdHlwZS5odG1sRm9yQmFubmVyQnV0dG9ucz1mdW5jdGlvbihlLHQsbyl7dmFyIG49Xy5iYW5uZXJOYW1lLHI9KHRoaXMuaGFzTm9BY3Rpb25CdXR0b25zKCkmJnQodGhpcy5fYnRuR3JwUGFyZW50U2VsZWN0b3IpLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodCh0aGlzLl9idG5HcnBQYXJlbnRTZWxlY3RvcikpLE8uc2hvd0Jhbm5lckNsb3NlQnV0dG9uKSxpPW0obygiLmJhbm5lci1jbG9zZS1idXR0b24iKSkuZWwscz10KCIjb25ldHJ1c3QtYnV0dG9uLWdyb3VwIiksYT1PLkJDbG9zZUJ1dHRvblR5cGU9PT12ZS5MaW5rO2lmKHIpZm9yKGw9MDtsPGkubGVuZ3RoO2wrKylhPyhtKGlbbF0pLmh0bWwoTy5CQ29udGludWVUZXh0KSxtKGUpLmFkZENsYXNzKCJvdC1jbG9zZS1idG4tbGluayIpLG0oaVtsXSkuYWRkQ2xhc3MoIm90LWNsb3NlLWxpbmsiKSxtKGlbbF0pLnJlbW92ZUNsYXNzKCJvbmV0cnVzdC1jbG9zZS1idG4tdWkiKSxtKGlbbF0pLnJlbW92ZUNsYXNzKCJvdC1jbG9zZS1pY29uIiksbiE9PVhlJiZuIT09UWV8fChzLmluc2VydEFkamFjZW50RWxlbWVudCgiYWZ0ZXJiZWdpbiIsdCgiLm9uZXRydXN0LWNsb3NlLWJ0bi1oYW5kbGVyIikucGFyZW50RWxlbWVudCksbShpW2xdKS5hdHRyKCJ0YWJpbmRleCIsIjEiKSkpOihoLnNldENsb3NlSWNvbih0KCIjb25ldHJ1c3QtYmFubmVyLXNkayAub3QtY2xvc2UtaWNvbiIpKSxtKGlbbF0pLmVsLnNldEF0dHJpYnV0ZShTdCxPLkJhbm5lckNsb3NlQnV0dG9uVGV4dHx8IkNsb3NlIENvb2tpZSBCYW5uZXIiKSk7ZWxzZXtmb3IodmFyIGw9MDtsPGkubGVuZ3RoO2wrKyltKGlbbF0ucGFyZW50RWxlbWVudCkuZWwucmVtb3ZlQ2hpbGQoaVtsXSk7biE9PVllJiZuIT09UWV8fHYucmVtb3ZlQ2hpbGQodCgiI29uZXRydXN0LWNsb3NlLWJ0bi1jb250YWluZXItbW9iaWxlIikpfXJldHVybiBzfSx5ci5wcm90b3R5cGUuc2V0QnV0dG9uc09yZGVyPWZ1bmN0aW9uKGUpe2lmKHRoaXMuY2hlY2tCdXR0b25PcmRlclByZWNvbmRpdGlvbnMoKSl7dmFyIHQ9ZSgiI29uZXRydXN0LWJ1dHRvbi1ncm91cCIpO2lmKHQpe3QuY2xhc3NMaXN0LmFkZCgib3QtYnV0dG9uLW9yZGVyLWNvbnRhaW5lciIpO3ZhciBvLG4scj1uZXcgTWFwO2lmKE8uc2hvd0Jhbm5lckFjY2VwdEJ1dHRvbiYmKG89ZSh2bikpJiYoby5jbGFzc0xpc3QuYWRkKCJvdC1idXR0b24tb3JkZXItIitPLkJhbm5lckJPLkFDQ0VQVF9BTEwpLHIuc2V0KE8uQmFubmVyQk8uQUNDRVBUX0FMTCxvKSksTy5CYW5uZXJTaG93UmVqZWN0QWxsQnV0dG9uJiYobz1lKFRuKSkmJihvLmNsYXNzTGlzdC5hZGQoIm90LWJ1dHRvbi1vcmRlci0iK08uQmFubmVyQk8uUkVKRUNUX0FMTCksci5zZXQoTy5CYW5uZXJCTy5SRUpFQ1RfQUxMLG8pKSxPLkJTaG93U2F2ZUJ0biYmKG89ZSgiLm90LWJuci1zYXZlLWhhbmRsZXIiKSkmJihuPXZvaWQgMCE9PU8uQmFubmVyQk8uU0FWRV9QUkVGRVJFTkNFJiYwPD1PLkJhbm5lckJPLlNBVkVfUFJFRkVSRU5DRT9PLkJhbm5lckJPLlNBVkVfUFJFRkVSRU5DRTpPLkJhbm5lckJPLkNPT0tJRV9TRVRUSU5HUyxvLmNsYXNzTGlzdC5hZGQoIm90LWJ1dHRvbi1vcmRlci0iK24pLHIuc2V0KG4sbykpLE8uc2hvd0Jhbm5lckNvb2tpZVNldHRpbmdzJiZ0aGlzLmFkZENvb2tpZVNldHRpbmdzQnV0dG9uc09yZGVyKGUsciksIShyLnNpemU8PTApKXt0LmlubmVySFRNTD0iIjtmb3IodmFyIGk9QXJyYXkuZnJvbShyLmtleXMoKSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLXR9KSxzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBhPXIuZ2V0KGlbc10pO2EmJnQuYXBwZW5kQ2hpbGQoYSl9fX19fSx5ci5wcm90b3R5cGUuY2hlY2tCdXR0b25PcmRlclByZWNvbmRpdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4hKCFPLlBDVGVtcGxhdGVVcGdyYWRlfHwhYi5mcC5XZWJCdXR0b25DdXN0b21pc2F0aW9uc3x8KHRoaXMuX2lzVmFsaWRCdXR0b25PcmRlckNvbmZpZz10aGlzLmNoZWNrQnV0dG9uc09yZGVyVmFsaWRhdGlvbigpLCF0aGlzLl9pc1ZhbGlkQnV0dG9uT3JkZXJDb25maWcpKX0seXIucHJvdG90eXBlLmNoZWNrQnV0dG9uc09yZGVyVmFsaWRhdGlvbj1mdW5jdGlvbigpe3ZhciBlO3JldHVybiEoTy5CU2hvd1NhdmVCdG4mJnZvaWQgMD09PU8uQmFubmVyQk8uU0FWRV9QUkVGRVJFTkNFJiZ2b2lkIDA9PT1PLkJhbm5lckJPLkNPT0tJRV9TRVRUSU5HU3x8Ty5zaG93QmFubmVyQWNjZXB0QnV0dG9uJiZ2b2lkIDA9PT1PLkJhbm5lckJPLkFDQ0VQVF9BTEx8fE8uQmFubmVyU2hvd1JlamVjdEFsbEJ1dHRvbiYmdm9pZCAwPT09Ty5CYW5uZXJCTy5SRUpFQ1RfQUxMfHwoZT10aGlzLmlzRm91ckJ1dHRvbnNDb25maWd1cmVkKCksTy5zaG93QmFubmVyQ29va2llU2V0dGluZ3MmJnZvaWQgMD09PU8uQmFubmVyQk8uQ09PS0lFX1NFVFRJTkdTJiYhZSkpfSx5ci5wcm90b3R5cGUuYWRkQ29va2llU2V0dGluZ3NCdXR0b25zT3JkZXI9ZnVuY3Rpb24oZSx0KXt2YXIgZT1lKFBuKSxvPV8uYmFubmVyTmFtZT09PSRlLG49dGhpcy5pc0ZvdXJCdXR0b25zQ29uZmlndXJlZCgpLHI9byYmbj9OdW1iZXIuTUFYX1ZBTFVFOk8uQmFubmVyQk8uQ09PS0lFX1NFVFRJTkdTO2UmJihvJiZufHxlLmNsYXNzTGlzdC5hZGQoIm90LWJ1dHRvbi1vcmRlci0iK3IpLHQuc2V0KHIsZSkpfSx5ci5wcm90b3R5cGUuaXNGb3VyQnV0dG9uc0NvbmZpZ3VyZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gTy5CYW5uZXJTaG93UmVqZWN0QWxsQnV0dG9uJiZPLnNob3dCYW5uZXJBY2NlcHRCdXR0b24mJk8uc2hvd0Jhbm5lckNvb2tpZVNldHRpbmdzJiZPLkJTaG93U2F2ZUJ0bn0seXIucHJvdG90eXBlLnNldEFjY2VwdEFuZFJlamVjdEJ0bkh0bWw9ZnVuY3Rpb24oZSl7dmFyIHQ9Xy5iYW5uZXJOYW1lLGU9KE8uc2hvd0Jhbm5lckFjY2VwdEJ1dHRvbj8odGhpcy5fYWNjZXB0QnRuPWUodm4pLG0odGhpcy5fYWNjZXB0QnRuKS5odG1sKE8uQWxlcnRBbGxvd0Nvb2tpZXNUZXh0KSx0IT09WmV8fE8uc2hvd0Jhbm5lckNvb2tpZVNldHRpbmdzfHxPLkJhbm5lclNob3dSZWplY3RBbGxCdXR0b258fG0odGhpcy5fYWNjZXB0QnRuLnBhcmVudEVsZW1lbnQpLmFkZENsYXNzKCJhY2NlcHQtYnRuLW9ubHkiKSk6di5yZW1vdmVDaGlsZChlKHZuKSksTy5CYW5uZXJTaG93UmVqZWN0QWxsQnV0dG9uJiZPLkJhbm5lclJlamVjdEFsbEJ1dHRvblRleHQudHJpbSgpPyh0aGlzLl9yZWplY3RCdG49ZShUbiksbSh0aGlzLl9yZWplY3RCdG4pLmh0bWwoTy5CYW5uZXJSZWplY3RBbGxCdXR0b25UZXh0KSxlKHRoaXMuX2J0bkdycFBhcmVudFNlbGVjdG9yKS5jbGFzc0xpc3QuYWRkKCJoYXMtcmVqZWN0LWFsbC1idXR0b24iKSk6KHYucmVtb3ZlQ2hpbGQoZShUbikpLHYucmVtb3ZlQ2hpbGQoZSgiI29uZXRydXN0LXJlamVjdC1idG4tY29udGFpbmVyIikpKSxtKGUoUG4pKSk7Ty5zaG93QmFubmVyQ29va2llU2V0dGluZ3M/KGUuaHRtbChPLkFsZXJ0TW9yZUluZm9UZXh0KSxlLmF0dHIoImFyaWEtbGFiZWwiLE8uQWxlcnRNb3JlSW5mb1RleHREaWFsb2cpLE8uQmFubmVyU2V0dGluZ3NCdXR0b25EaXNwbGF5TGluayYmZS5hZGRDbGFzcygiY29va2llLXNldHRpbmctbGluayIpLHQhPT1aZXx8Ty5zaG93QmFubmVyQWNjZXB0QnV0dG9ufHxlLmFkZENsYXNzKCJjb29raWUtc2V0dGluZ3MtYnRuLW9ubHkiKSk6di5yZW1vdmVDaGlsZChlLmVsKX0seXIucHJvdG90eXBlLnNldElBQjJIdG1sRGF0YT1mdW5jdGlvbihlKXt2YXIgdD1fLmJhbm5lck5hbWUsbz0oXy5pc0lhYjJvcnYyVGVtcGxhdGUmJk8uQmFubmVyRFBERGVzY3JpcHRpb24ubGVuZ3RoJiZ0IT09JGU/KG0oZSgiLm90LWRwZC1jb250YWluZXIgLm90LWRwZC10aXRsZSIpKS5odG1sKE8uQmFubmVyRFBEVGl0bGUpLG0oZSgiLm90LWRwZC1jb250YWluZXIgLm90LWRwZC1kZXNjIikpLmh0bWwoTy5CYW5uZXJEUEREZXNjcmlwdGlvbi5qb2luKCIsJm5ic3A7IikpKTp2LnJlbW92ZUNoaWxkKGUoIi5vdC1kcGQtY29udGFpbmVyIikpLG0oZSh0aGlzLl9vdEdycENvbnRhaW5lclNlbGVjdG9yKSkpLHQ9KF8uaXNJYWIyb3J2MlRlbXBsYXRlJiZPLkJhbm5lckFkZGl0aW9uYWxEZXNjcmlwdGlvbi50cmltKCkmJnRoaXMuc2V0QWRkaXRpb25hbERlc2MoZSksXy5pc0lhYjJvcnYyVGVtcGxhdGUmJk8uQmFubmVyRFBERGVzY3JpcHRpb24ubGVuZ3RoP3QhPT0kZT9tKGUoIi5vdC1kcGQtY29udGFpbmVyIC5vdC1kcGQtZGVzYyIpKTpvOm0oZShnci5QT0xJQ1lfVEVYVF9TRUxFQ1RPUikpKTtyZXR1cm4gTy5Jc0lhYkVuYWJsZWQmJk8uQmFubmVySUFCUGFydG5lcnNMaW5rJiZ0LmFwcGVuZCgnPGJ1dHRvbiBjbGFzcz0ib3QtbGluay1idG4gb25ldHJ1c3QtdmVuZG9ycy1saXN0LWhhbmRsZXIiPlxuICAgICAgICAnK08uQmFubmVySUFCUGFydG5lcnNMaW5rKyJcbiAgICAgICAgPC9idXR0b24+Iiksb30seXIucHJvdG90eXBlLnNldEJhbm5lckRhdGE9ZnVuY3Rpb24oZSl7dmFyIHQ7Ty5CYW5uZXJUaXRsZT8obShlKCIjb25ldHJ1c3QtcG9saWN5LXRpdGxlIikpLmh0bWwoTy5CYW5uZXJUaXRsZSksbShlKCdbcm9sZT0iZGlhbG9nIl0nKSkuYXR0cihTdCxPLkJhbm5lclRpdGxlKSk6KHYucmVtb3ZlQ2hpbGQoZSgiI29uZXRydXN0LXBvbGljeS10aXRsZSIpKSxtKGUoIiNvbmV0cnVzdC1iYW5uZXItc2RrIikpLmFkZENsYXNzKCJvdC13by10aXRsZSIpLG0oZSgnW3JvbGU9ImRpYWxvZyJdJykpLmF0dHIoU3QsTy5BcmlhUHJpdmFjeSkpLCFPLklzSWFiRW5hYmxlZCYmbC5zaG93R2VuZXJhbFZlbmRvcnMmJk8uQmFubmVyTm9uSUFCVmVuZG9yTGlzdFRleHQmJigodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc2V0QXR0cmlidXRlKCJpZCIsIm90LWd2LWxpbmstY3RuciIpLG0odCkuaHRtbCgnPGJ1dHRvbiBjbGFzcz0ib3QtbGluay1idG4gb3QtZ3YtbGlzdC1oYW5kbGVyIj4nK08uQmFubmVyTm9uSUFCVmVuZG9yTGlzdFRleHQrIjwvYnV0dG9uPiIpLG0oZSgiI29uZXRydXN0LXBvbGljeSIpKS5lbC5hcHBlbmRDaGlsZCh0KSksbShlKGdyLlBPTElDWV9URVhUX1NFTEVDVE9SKSkuaHRtbChPLkFsZXJ0Tm90aWNlVGV4dCksdGhpcy5zZXRCYW5uZXJMaW5rQXR0cmlidXRlcyhlKX0seXIucHJvdG90eXBlLnNldEJhbm5lckxpbmtBdHRyaWJ1dGVzPWZ1bmN0aW9uKGUpe3ZhciB0LG87bShlKHRoaXMuY29va2llUG9saWN5TGlua1NlbGVjdG9yKSkubGVuZ3RoJiYodD1tKGUoZ3IuUE9MSUNZX1RFWFRfU0VMRUNUT1IrIiAub3QtY29va2llLXBvbGljeS1saW5rIikpLGU9bShlKGdyLlBPTElDWV9URVhUX1NFTEVDVE9SKyIgLm90LWltcHJpbnQtbGluayIpKSxvPSJub29wZW5lciBub3JlZmVycmVyIixPLkJTaG93UG9saWN5TGluayYmdCYmKHQuYXR0cihTdCxPLkJDb29raWVQb2xpY3lMaW5rU2NyZWVuUmVhZGVyKSx0LmF0dHIoInJlbCIsbyksdC5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKSksTy5CU2hvd0ltcHJpbnRMaW5rKSYmZSYmKGUuYXR0cihTdCxPLkJJbXByaW50TGlua1NjcmVlblJlYWRlciksZS5hdHRyKCJyZWwiLG8pLGUuYXR0cigidGFyZ2V0IiwiX2JsYW5rIikpfSx5ci5wcm90b3R5cGUuaXNDbXBFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuIE8uQmFubmVyUHVycG9zZVRpdGxlfHxPLkJhbm5lclB1cnBvc2VEZXNjcmlwdGlvbnx8Ty5CYW5uZXJGZWF0dXJlVGl0bGV8fE8uQmFubmVyRmVhdHVyZURlc2NyaXB0aW9ufHxPLkJhbm5lckluZm9ybWF0aW9uVGl0bGV8fE8uQmFubmVySW5mb3JtYXRpb25EZXNjcmlwdGlvbn0seXIucHJvdG90eXBlLnNzckFuZE5vblNTUkNvbW1vbkh0bWw9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yKGUpfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIHQucXVlcnlTZWxlY3RvckFsbChlKX12YXIgbixyPXRoaXMsaT10aGlzLmlzQ21wRW5hYmxlZCgpLHM9KHRoaXMuc2V0T3B0T3V0U2lnbmFsTm90aWZpY2F0aW9uKGUpLCJbVkVORE9SX05VTUJFUl0iKSxhPW0oZShnci5QT0xJQ1lfVEVYVF9TRUxFQ1RPUikpLmh0bWwoKSxzPShfLmlzSWFiMm9ydjJUZW1wbGF0ZSYmLTE8YS5pbmRleE9mKHMpJiYobj0nPHNwYW4gY2xhc3M9Im90LXRjZjItdmVuZG9yLWNvdW50IG90LXRleHQtYm9sZCI+JytfLnRjZjJBY3RpdmVWZW5kb3JzLmFsbC50b1N0cmluZygpKyI8L3NwYW4+IixhPWgucmVwbGFjZVRleHRGcm9tU3RyaW5nKHMsYSxuKSxtKGUoZ3IuUE9MSUNZX1RFWFRfU0VMRUNUT1IpKS5odG1sKGEpKSxfLmJhbm5lck5hbWU9PT0kZSYmYi5tb2R1bGVJbml0aWFsaXplci5Jc1N1cHByZXNzUEMmJihsLmRhdGFHcm91cFN0YXRlPU8uR3JvdXBzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5PcmRlcn0pKSxoLmFkZEV4dGVybmFsSWNvbkZvckxpbmtzKG8pLF8uYmFubmVyTmFtZT09PSRlJiYodGhpcy5fZm91ckJ0bnM9dGhpcy5pc0ZvdXJCdXR0b25zQ29uZmlndXJlZCgpLHRoaXMuX3NhdmVCdG49ZSgiLm90LWJuci1zYXZlLWhhbmRsZXIiKSx0aGlzLl9zZXR0aW5nc0J0bj1lKFBuKSx0aGlzLl9idG5zQ250cj1lKCIuYmFubmVyLWFjdGlvbnMtY29udGFpbmVyIiksTy5CU2hvd1NhdmVCdG4/bSh0aGlzLl9zYXZlQnRuKS5odG1sKE8uQlNhdmVCdG5UeHQpOih2LnJlbW92ZUNoaWxkKHRoaXMuX3NhdmVCdG4pLHRoaXMuX3NhdmVCdG49bnVsbCksaC5pbnNlcnRGb290ZXJMb2dvKG8oIi5vdC1ibnItZm9vdGVyLWxvZ28gYSIpKSx0aGlzLl9kZXNjcmlwdENudHI9ZSgiLm90LWNhdC1sc3QiKSx0aGlzLnNldEJhbm5lckJ0bigpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGZ1bmN0aW9uKCl7ci5zZXRCYW5uZXJCdG4oKX0pLHRoaXMuX2ZvdXJCdG5zJiZtKGUoIiNvbmV0cnVzdC1iYW5uZXItc2RrIikpLmFkZENsYXNzKCJoYXMtcmVqZWN0LWFsbC1idXR0b24iKSx0aGlzLmluc2VydEdycHMoZSkpLGgucmVwbGFjZUhlYWRpbmdzKHQpLGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTttKHMpLmFwcGVuZCh0KSxfLmlnbm9yZUluamVjdGluZ0h0bWxDc3N8fChtKCIjb25ldHJ1c3QtY29uc2VudC1zZGsiKS5hcHBlbmQocy5maXJzdENoaWxkKSxpJiZ0aGlzLnNldEJhbm5lck9wdGlvbkNvbnRlbnQoKSksdGhpcy5zZXRCbnJCdG5HcnBBbGlnbm1lbnQoKX0seXIucHJvdG90eXBlLnNldEFyaWFNb2RhbEZvckJhbm5lcj1mdW5jdGlvbihlKXtPLkZvcmNlQ29uc2VudCYmZS5xdWVyeVNlbGVjdG9yKCdbcm9sZT0iZGlhbG9nIl0nKS5zZXRBdHRyaWJ1dGUoImFyaWEtbW9kYWwiLCJ0cnVlIil9LHlyLnByb3RvdHlwZS5zZXRCbnJCdG5HcnBBbGlnbm1lbnQ9ZnVuY3Rpb24oKXt2YXIgZT1tKHRoaXMuX290R3JwQ29udGFpbmVyU2VsZWN0b3IpLmVsLHQ9bSh0aGlzLl9idG5HcnBQYXJlbnRTZWxlY3RvcikuZWwsZT0oKGUubGVuZ3RoJiZlWzBdLmNsaWVudEhlaWdodCk8KHQubGVuZ3RoJiZ0WzBdLmNsaWVudEhlaWdodCk/bSgiI29uZXRydXN0LWJhbm5lci1zZGsiKS5yZW1vdmVDbGFzcygidmVydGljYWwtYWxpZ24tY29udGVudCIpOm0oIiNvbmV0cnVzdC1iYW5uZXItc2RrIikuYWRkQ2xhc3MoInZlcnRpY2FsLWFsaWduLWNvbnRlbnQiKSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLXBhcmVudCBidXR0b246Zmlyc3Qtb2YtdHlwZSIpKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50IGJ1dHRvbjpsYXN0LW9mLXR5cGUiKTt0JiZlJiYxPE1hdGguYWJzKHQub2Zmc2V0VG9wLWUub2Zmc2V0VG9wKSYmbSgiI29uZXRydXN0LWJhbm5lci1zZGsiKS5hZGRDbGFzcygib3QtYnV0dG9ucy1mdyIpfSx5ci5wcm90b3R5cGUuc2xpZGVJbkFuaW1hdGlvbj1mdW5jdGlvbihlLHQpe3Q9PT1ZZT8iYm90dG9tIj09PU8uQmFubmVyUG9zaXRpb24/KGUuY3NzKCJib3R0b206IC05OXB4OyIpLGUuYW5pbWF0ZSh7Ym90dG9tOiIwcHgifSwxZTMpLGwuYm5yQW5pbWF0aW9uSW5Qcm9nPSEwLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmNzcygiYm90dG9tOiAwcHg7IiksbC5ibnJBbmltYXRpb25JblByb2c9ITF9LDFlMykpOihlLmNzcygidG9wOiAtOTlweDsgYm90dG9tOiBhdXRvOyIpLF8ucGFnZVB1c2hlZERvd24mJiF5bi5jaGVja0lzQnJvd3NlcklFMTFPckJlbG93KCk/eW4uQmFubmVyUHVzaERvd25IYW5kbGVyKCk6KGUuYW5pbWF0ZSh7dG9wOiIwIn0sMWUzKSxsLmJuckFuaW1hdGlvbkluUHJvZz0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5jc3MoInRvcDogMHB4OyBib3R0b206IGF1dG87IiksbC5ibnJBbmltYXRpb25JblByb2c9ITF9LDFlMykpKTp0IT09SmUmJnQhPT1aZXx8KGUuY3NzKCJib3R0b206IC0zMDBweDsiKSxlLmFuaW1hdGUoe2JvdHRvbToiMWVtIn0sMmUzKSxsLmJuckFuaW1hdGlvbkluUHJvZz0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5jc3MoImJvdHRvbTogMXJlbTsiKSxsLmJuckFuaW1hdGlvbkluUHJvZz0hMX0sMmUzKSl9LHlyLnByb3RvdHlwZS5zZXRCYW5uZXJCdG49ZnVuY3Rpb24oKXt2YXIgZTtPLlBDVGVtcGxhdGVVcGdyYWRlJiZiLmZwLldlYkJ1dHRvbkN1c3RvbWlzYXRpb25zJiZ0aGlzLl9pc1ZhbGlkQnV0dG9uT3JkZXJDb25maWcmJl8uYmFubmVyTmFtZT09PSRlP3dpbmRvdy5pbm5lcldpZHRoPD02MDAmJnRoaXMuX2ZvdXJCdG5zPyhlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1idXR0b24tZ3JvdXAiKSx2Lmluc2VydEVsZW1lbnQoZSx0aGlzLl9zZXR0aW5nc0J0biwiYmVmb3JlZW5kIikpOnRoaXMuX2ZvdXJCdG5zJiZ0aGlzLl9kZXNjcmlwdENudHIuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLHRoaXMuX3NldHRpbmdzQnRuKTp3aW5kb3cuaW5uZXJXaWR0aDw9NjAwPyh2Lmluc2VydEVsZW1lbnQodGhpcy5fYnRuc0NudHIsdGhpcy5fc2V0dGluZ3NCdG4sImFmdGVyYmVnaW4iKSx2Lmluc2VydEVsZW1lbnQodGhpcy5fYnRuc0NudHIsdGhpcy5fc2F2ZUJ0biwiYWZ0ZXJiZWdpbiIpLHYuaW5zZXJ0RWxlbWVudCh0aGlzLl9idG5zQ250cix0aGlzLl9hY2NlcHRCdG4sImFmdGVyYmVnaW4iKSx2Lmluc2VydEVsZW1lbnQodGhpcy5fYnRuc0NudHIsdGhpcy5fcmVqZWN0QnRuLCJhZnRlcmJlZ2luIikpOnRoaXMuX2ZvdXJCdG5zPyh0aGlzLl9kZXNjcmlwdENudHIuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLHRoaXMuX3NldHRpbmdzQnRuKSx0aGlzLl9hY2NlcHRCdG4uaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmViZWdpbiIsdGhpcy5fcmVqZWN0QnRuKSx0aGlzLl9idG5zQ250ci5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWJlZ2luIix0aGlzLl9zYXZlQnRuKSk6KHYuaW5zZXJ0RWxlbWVudCh0aGlzLl9idG5zQ250cix0aGlzLl9zZXR0aW5nc0J0biwiYmVmb3JlYmVnaW4iKSx2Lmluc2VydEVsZW1lbnQodGhpcy5fYnRuc0NudHIsdGhpcy5fc2F2ZUJ0bix0aGlzLl9zZXR0aW5nc0J0bj8iYWZ0ZXJiZWdpbiI6ImJlZm9yZWJlZ2luIiksdi5pbnNlcnRFbGVtZW50KHRoaXMuX2J0bnNDbnRyLHRoaXMuX3JlamVjdEJ0biwiYmVmb3JlZW5kIiksdi5pbnNlcnRFbGVtZW50KHRoaXMuX2J0bnNDbnRyLHRoaXMuX2FjY2VwdEJ0biwiYmVmb3JlZW5kIikpfSx5ci5wcm90b3R5cGUuc2V0Q21wQmFubmVyT3B0aW9ucz1mdW5jdGlvbihuLGUpe3ZhciByPW0obigiI2Jhbm5lci1vcHRpb25zIC5iYW5uZXItb3B0aW9uIikpLmVsLmNsb25lTm9kZSghMCksaT0obShuKHRoaXMuX2Jhbm5lck9wdGlvbnNTZWxlY3RvcikpLmh0bWwoIiIpLDEpO2UuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1yLmNsb25lTm9kZSghMCksbz1PW2UudGl0bGVLZXldLGU9T1tlLmRlc2NyaXB0aW9uS2V5XTsob3x8ZSkmJih0LnF1ZXJ5U2VsZWN0b3IoIi5iYW5uZXItb3B0aW9uLWhlYWRlciA6Zmlyc3QtY2hpbGQiKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KG8pLG89dC5xdWVyeVNlbGVjdG9yKCIuYmFubmVyLW9wdGlvbi1kZXRhaWxzIiksZT8oby5zZXRBdHRyaWJ1dGUoImlkIiwib3B0aW9uLWRldGFpbHMtIitpKyspLG8uaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChlKSk6by5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKG8pLG0obigiI2Jhbm5lci1vcHRpb25zIikpLmVsLmFwcGVuZENoaWxkKHQpKX0pfSx5ci5wcm90b3R5cGUuc2V0RmxvYXRpbmdSb3VuZGVkSWNvbkJhbm5lckNtcE9wdGlvbnM9ZnVuY3Rpb24ocixlKXt2YXIgaT10aGlzLHM9bShyKCIjYmFubmVyLW9wdGlvbnMgYnV0dG9uIikpLmVsLmNsb25lTm9kZSghMCksbj1tKHIoIi5iYW5uZXItb3B0aW9uLWRldGFpbHMiKSkuZWwuY2xvbmVOb2RlKCEwKTttKHIodGhpcy5fYmFubmVyT3B0aW9uc1NlbGVjdG9yKSkuaHRtbCgiIiksZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXMuY2xvbmVOb2RlKCEwKSxvPU9bZS50aXRsZUtleV0sbj1PW2UuZGVzY3JpcHRpb25LZXldOyhvfHxuKSYmKHQuc2V0QXR0cmlidXRlKCJpZCIsZS5pZGVudGlmaWVyKSx0LnF1ZXJ5U2VsZWN0b3IoIi5iYW5uZXItb3B0aW9uLWhlYWRlciA6Zmlyc3QtY2hpbGQiKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KG8pLG0ocihpLl9iYW5uZXJPcHRpb25zU2VsZWN0b3IpKS5lbC5hcHBlbmRDaGlsZCh0KSl9KSxlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQsbz1PW2UuZGVzY3JpcHRpb25LZXldO28mJigodD1uLmNsb25lTm9kZSghMCkpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQobyksdC5jbGFzc0xpc3QuYWRkKGUuaWRlbnRpZmllciksbShyKGkuX2Jhbm5lck9wdGlvbnNTZWxlY3RvcikpLmVsLmFwcGVuZENoaWxkKHQpKX0pfSx5ci5wcm90b3R5cGUuc2V0QmFubmVyT3B0aW9uQ29udGVudD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7Xy5iYW5uZXJOYW1lIT09WWUmJl8uYmFubmVyTmFtZSE9PVFlfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGU7KHdpbmRvdy5pbm5lcldpZHRoPDc2OT8oZT1tKHQuX2Jhbm5lck9wdGlvbnNTZWxlY3RvcikuZWxbMF0sbSh0Ll9vdEdycENvbnRhaW5lclNlbGVjdG9yKSk6KGU9bSh0Ll9iYW5uZXJPcHRpb25zU2VsZWN0b3IpLmVsWzBdLF8uYmFubmVyTmFtZT09PVFlP20oIi5iYW5uZXItY29udGVudCIpOm0oIiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyIikpKS5lbFswXS5hcHBlbmRDaGlsZChlKX0pfSx5ci5wcm90b3R5cGUuc2V0QWRkaXRpb25hbERlc2M9ZnVuY3Rpb24oZSl7dmFyIHQ9Ty5CYW5uZXJBZGRpdGlvbmFsRGVzY1BsYWNlbWVudCxvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSxuPShvLmNsYXNzTGlzdC5hZGQoIm90LWItYWRkbC1kZXNjIiksbShvKS5odG1sKE8uQmFubmVyQWRkaXRpb25hbERlc2NyaXB0aW9uKSxlKGdyLlBPTElDWV9URVhUX1NFTEVDVE9SKSk7dD09PXNlLkFmdGVyVGl0bGU/bi5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZUJlZ2luIixvKTp0PT09c2UuQWZ0ZXJEZXNjcmlwdGlvbj9uLmluc2VydEFkamFjZW50RWxlbWVudCgiYWZ0ZXJFbmQiLG8pOnQ9PT1zZS5BZnRlckRQRCYmKG49ZSgiLm90LWRwZC1jb250YWluZXIgLm90LWRwZC1kZXNjIiksKG49Ty5DaG9pY2VzQmFubmVyP2UodGhpcy5fb3RHcnBDb250YWluZXJTZWxlY3Rvcik6bikuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVFbmQiLG8pKX0seXIucHJvdG90eXBlLmluc2VydEdycHM9ZnVuY3Rpb24oZSl7dmFyIGQ9ZSgiLm90LWNhdC1pdGVtIikuY2xvbmVOb2RlKCEwKSx1PSh2LnJlbW92ZUNoaWxkKGUoIi5vdC1jYXQtaXRlbSIpKSxPLkJDYXRlZ29yeVN0eWxlPT09U2UuQ2hlY2tib3g/di5yZW1vdmVDaGlsZChkLnF1ZXJ5U2VsZWN0b3IoIi5vdC10Z2wiKSk6KHYucmVtb3ZlQ2hpbGQoZC5xdWVyeVNlbGVjdG9yKCIub3QtY2hrYm94IikpLG0oZCkuYWRkQ2xhc3MoIm90LWNhdC1iZHIiKSksZSgiLm90LWNhdC1sc3QgdWwiKSk7Ty5Hcm91cHMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1kLmNsb25lTm9kZSghMCksbz10LnF1ZXJ5U2VsZWN0b3IoIi5vdC10Z2wsLm90LWNoa2JveCIpLG49ZS5Hcm91cE5hbWUscj1lLkN1c3RvbUdyb3VwSWQsaT0ib3QtYm5yLWdycC1pZC0iK3Iscz0ib3QtYm5yLWhkci1pZC0iK3IsYT0tMSE9PU90LmluZGV4T2YoZS5UeXBlKSxsPXkuZ2V0R3JwU3RhdHVzKGUpLnRvTG93ZXJDYXNlKCk9PT1mLkFMV0FZU19BQ1RJVkV8fGEsYz15LmdldEdycFN0YXR1cyhlKS50b0xvd2VyQ2FzZSgpPT09Zi5BTFdBWVNfSU5BQ1RJVkV8fGEsYT1WLmlzR3JvdXBBY3RpdmUoZSl8fGEsZT0obShvLnF1ZXJ5U2VsZWN0b3IoImxhYmVsIikpLmF0dHIoImZvciIsaSksbShvLnF1ZXJ5U2VsZWN0b3IoIi5vdC1sYWJlbC10eHQiKSkuaHRtbChlLkdyb3VwTmFtZSksby5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpKSxsPSgobHx8YykmJihPLkJDYXRlZ29yeVN0eWxlPT09U2UuVG9nZ2xlPyh2LnJlbW92ZUNoaWxkKG8pLHQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLG0oIjxkaXYgY2xhc3M9J290LWFsd2F5cy1hY3RpdmUnPiIrKGM/Ty5BbHdheXNJbmFjdGl2ZVRleHQ6Ty5BbHdheXNBY3RpdmVUZXh0KSsiPC9kaXY+IiwiY2UiKS5lbCkpOmUuc2V0QXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpKSxlLmNsYXNzTGlzdC5hZGQoImNhdGVnb3J5LXN3aXRjaC1oYW5kbGVyIiksVi5zZXRJbnB1dElEKGUsaSxyLGEscyksdC5xdWVyeVNlbGVjdG9yKCdoNCwgcFthcmlhLWxldmVsPSI0Il0nKSk7bShsKS5odG1sKG4pLG0obCkuYXR0cigiaWQiLHMpLG0odSkuYXBwZW5kKHQpfSl9LHlyLnByb3RvdHlwZS5zZXRCYW5uZXJMb2dvPWZ1bmN0aW9uKGUsdCl7dmFyIG8sbjtiLmZwLkNvb2tpZVYyQmFubmVyTG9nbyYmTy5CbnJMb2dvJiYobz10KFNuKSxuPSJhZnRlcmVuZCIsXy5iYW5uZXJOYW1lPT09UWUmJihvPXQoIiNvbmV0cnVzdC1jb29raWUtYnRuIiksbj0iYmVmb3JlZW5kIiksdD1oLnVwZGF0ZUNvcnJlY3RVcmwoTy5CbnJMb2dvKSxtKGUpLmFkZENsYXNzKCJvdC1ibnItdy1sb2dvIiksbShvKS5lbC5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KCIiKSxvLmluc2VydEFkamFjZW50SFRNTChuLFMuZ2V0SW5uZXJIdG1sQ29udGVudCgiPGltZyBjbGFzcz0nb3QtYm5yLWxvZ28nIHNyYz0nIit0KyInXG4gICAgICAgICAgICB0aXRsZT0nIitPLkJuckxvZ29BcmlhKyInXG4gICAgICAgICAgICBhbHQ9JyIrTy5CbnJMb2dvQXJpYSsiJy8+IikpKX0seXIucHJvdG90eXBlLnNldE9wdE91dFNpZ25hbE5vdGlmaWNhdGlvbj1mdW5jdGlvbihlKXt2YXIgdD1fLmdwY0VuYWJsZWQmJl8uZ3BjRm9yQUdycEVuYWJsZWQ7Ty5CU2hvd09wdE91dFNpZ25hbCYmKHR8fF8ucHJldmlld01vZGUpJiZoLmNyZWF0ZU9wdE91dFNpZ25hbEVsZW1lbnQoZSwhMSl9O3ZhciBncixocj15cjtmdW5jdGlvbiB5cigpe3RoaXMuUE9MSUNZX1RFWFRfU0VMRUNUT1I9IiNvbmV0cnVzdC1wb2xpY3ktdGV4dCIsdGhpcy5FbD0iI29uZXRydXN0LWJhbm5lci1zZGsiLHRoaXMuX3NhdmVCdG49bnVsbCx0aGlzLl9zZXR0aW5nc0J0bj1udWxsLHRoaXMuX2FjY2VwdEJ0bj1udWxsLHRoaXMuX3JlamVjdEJ0bj1udWxsLHRoaXMuX2Rlc2NyaXB0Q250cj1udWxsLHRoaXMuX2J0bnNDbnRyPW51bGwsdGhpcy5fZm91ckJ0bnM9ITEsdGhpcy5faXNWYWxpZEJ1dHRvbk9yZGVyQ29uZmlnPSEwLHRoaXMuX2Jhbm5lck9wdGlvbnNTZWxlY3Rvcj0iI2Jhbm5lci1vcHRpb25zIix0aGlzLl9idG5HcnBQYXJlbnRTZWxlY3Rvcj0iI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnQiLHRoaXMuX290R3JwQ29udGFpbmVyU2VsZWN0b3I9IiNvbmV0cnVzdC1ncm91cC1jb250YWluZXIiLHRoaXMuY29va2llUG9saWN5TGlua1NlbGVjdG9yPSIjb25ldHJ1c3QtcG9saWN5LXRleHQgYSJ9bXIucHJvdG90eXBlLnNldEhlYWRlckNvbmZpZz1mdW5jdGlvbigpe2ZyLnNldEhlYWRlcigpLGZyLnNldFNlYXJjaElucHV0KCksZnIuc2V0SGVhZGVyVUlDb25zZW50KCk7dmFyIGU9ZnIuZ2V0R3JvdXBzRm9yRmlsdGVyKCk7cnIuc2V0RmlsdGVyTGlzdEJ5R3JvdXAoZSwhMSl9LG1yLnByb3RvdHlwZS5maWx0ZXJWZW5kb3JCeVN0cmluZz1mdW5jdGlvbihlKXtmci5zZWFyY2hRdWVyeT1lLGZyLmZpbHRlclZlbmRvckJ5R3JvdXBPclF1ZXJ5KCl9LG1yLnByb3RvdHlwZS5maWx0ZXJWZW5kb3JCeUdyb3VwPWZ1bmN0aW9uKGUpe2ZyLmZpbHRlckdyb3Vwcz1lLGZyLmZpbHRlclZlbmRvckJ5R3JvdXBPclF1ZXJ5KCl9LG1yLnByb3RvdHlwZS5zaG93VlNMaXN0PWZ1bmN0aW9uKCl7ZnIucmVtb3ZlTGlzdGVuZXJzKCksZnIuc2hvd0VtcHR5UmVzdWx0cyghMSwiIiksZnIuY2xlYXJVSUVsZW1lbnRzSW5NYWluKCksZnIuYWRkVlNMaXN0KGwuZ2V0VmVuZG9yc0luRG9tYWluKCkpfSxtci5wcm90b3R5cGUuc2hvd0VtcHR5UmVzdWx0cz1mdW5jdGlvbihlLHQpe2U/dGhpcy5zZXROb1Jlc3VsdHNDb250ZW50KHQpOihtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9Db250ZW50KS5yZW1vdmVDbGFzcygibm8tcmVzdWx0cyIpLChlPW0oIiNvbmV0cnVzdC1wYy1zZGsgI25vLXJlc3VsdHMiKSkubGVuZ3RoJiZlLnJlbW92ZSgpKX0sbXIucHJvdG90eXBlLnNldE5vUmVzdWx0c0NvbnRlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbyxuLHIsaT1tKCIjb25ldHJ1c3QtcGMtc2RrICNuby1yZXN1bHRzIikuZWxbMF07aWYoIWkpcmV0dXJuIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIiksbj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIrTy5QQ1ZlbmRvck5vdEZvdW5kKyIuIikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksdC5pZD0ibm8tcmVzdWx0cyIsdC5zZXRBdHRyaWJ1dGUoImFyaWEtbGl2ZSIsImFzc2VydGl2ZSIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWF0b21pYyIsInRydWUiKSxyLmlkPSJ1c2VyLXRleHQiLHIuaW5uZXJUZXh0PWUsby5hcHBlbmRDaGlsZChyKSxvLmFwcGVuZENoaWxkKG4pLHQuYXBwZW5kQ2hpbGQobyksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGVudCkuYWRkQ2xhc3MoIm5vLXJlc3VsdHMiKSxtKCIjdmVuZG9yLXNlYXJjaC1oYW5kbGVyIikuZWxbMF0uc2V0QXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5Iix0LmlkKSxtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9Db250ZW50KS5hcHBlbmQodCk7aS5xdWVyeVNlbGVjdG9yKCJzcGFuIikuaW5uZXJUZXh0PWV9LG1yLnByb3RvdHlwZS5nZXRHcm91cHNGaWx0ZXI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wLG89bSgiI29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktZmlsdGVyLWhhbmRsZXIiKS5lbDt0PG8ubGVuZ3RoO3QrKyl7dmFyIG49b1t0XSxyPW4uZ2V0QXR0cmlidXRlKCJkYXRhLXB1cnBvc2VpZCIpO24uY2hlY2tlZCYmZS5wdXNoKHIpfXJldHVybiBlfSxtci5wcm90b3R5cGUuY2FuY2VsRmlsdGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAsdD1tKCIjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1maWx0ZXItaGFuZGxlciIpLmVsO2U8dC5sZW5ndGg7ZSsrKXt2YXIgbz10W2VdLG49by5nZXRBdHRyaWJ1dGUoImRhdGEtb3B0YW5vbmdyb3VwaWQiKSxuPTA8PWwuZmlsdGVyQnlDYXRlZ29yaWVzLmluZGV4T2Yobik7di5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwsbyxuKX12YXIgcj1mci5nZXRHcm91cHNGaWx0ZXIoKTtmci5maWx0ZXJWZW5kb3JCeUdyb3VwKHIpfSxtci5wcm90b3R5cGUuY2xlYXJGaWx0ZXI9ZnVuY3Rpb24oKXtmci5zZWFyY2hRdWVyeT0iIixmci5maWx0ZXJHcm91cHM9W119LG1yLnByb3RvdHlwZS50b2dnbGVWZW5kb3JzPWZ1bmN0aW9uKHIpe2wuZ2V0VmVuZG9yc0luRG9tYWluKCkuZm9yRWFjaChmdW5jdGlvbihlLHQpe3ZhciBvLG47eS5pc0Fsd2F5c0FjdGl2ZUdyb3VwKGUuZ3JvdXBSZWYpfHwobz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3QtdmVuZG9yLWlkLSIrdCksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3QtdnMtbHN0LWlkLSIrdCksQi50b2dnbGVWZW5kb3JTZXJ2aWNlKGUuZ3JvdXBSZWYuQ3VzdG9tR3JvdXBJZCx0LHIsbyksQi50b2dnbGVWZW5kb3JTZXJ2aWNlKGUuZ3JvdXBSZWYuQ3VzdG9tR3JvdXBJZCx0LHIsbikpfSl9LG1yLnByb3RvdHlwZS5oaWRlVmVuZG9yTGlzdD1mdW5jdGlvbigpe2ZyLnJlbW92ZUxpc3RlbmVycygpLGZyLmNsZWFyVUlFbGVtZW50c0luTWFpbigpfSxtci5wcm90b3R5cGUuYWRkTGlzdGVuZXJzPWZ1bmN0aW9uKCl7bSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGVudCsiIC5vdC12cy1saXN0IC5jYXRlZ29yeS1zd2l0Y2gtaGFuZGxlciIpLm9uKCJjbGljayIsZnIudG9nZ2xlVmVuZG9ySGFuZGxlciksbSgiI29uZXRydXN0LXBjLXNkayIpLm9uKCJjbGljayIsIi5vdC12cy1saXN0Iix1Lm9uQ2F0ZWdvcnlJdGVtVG9nZ2xlLmJpbmQodGhpcykpfSxtci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGU7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAuY2F0ZWdvcnktc3dpdGNoLWhhbmRsZXIiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix1LnRvZ2dsZUdyb3VwT1JWZW5kb3JIYW5kbGVyKX0pLG51bGwhPShlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QiKSkmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHUub25DYXRlZ29yeUl0ZW1Ub2dnbGUpfSxtci5wcm90b3R5cGUudG9nZ2xlVmVuZG9ySGFuZGxlcj1mdW5jdGlvbihlKXt1LnRvZ2dsZVZlbmRvckZyb21MaXN0SGFuZGxlcihlKSxmci5jaGVja0FsbG93QWxsQ2hlY2tlZFZhbHVlKCl9LG1yLnByb3RvdHlwZS5maWx0ZXJWZW5kb3JCeUdyb3VwT3JRdWVyeT1mdW5jdGlvbigpe3ZhciBvPW5ldyBNYXA7bC5nZXRWZW5kb3JzSW5Eb21haW4oKS5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7ZnIuY2hlY2tWZW5kb3JDb25kaXRpb25zKGUpJiZvLnNldCh0LGUpfSksZnIuc2hvd0VtcHR5UmVzdWx0cyhvLnNpemU8PTAsZnIuc2VhcmNoUXVlcnkpLGZyLnJlbW92ZUxpc3RlbmVycygpLGZyLmNsZWFyVUlFbGVtZW50c0luTWFpbigpLGZyLmFkZFZTTGlzdChvKX0sbXIucHJvdG90eXBlLmNoZWNrVmVuZG9yQ29uZGl0aW9ucz1mdW5jdGlvbihlKXtyZXR1cm4hKCIiIT09ZnIuc2VhcmNoUXVlcnkmJmUuU2VydmljZU5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZyLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCkpPDB8fDA8ZnIuZmlsdGVyR3JvdXBzLmxlbmd0aCYmZnIuZmlsdGVyR3JvdXBzLmluZGV4T2YoZS5ncm91cFJlZi5DdXN0b21Hcm91cElkKTwwKX0sbXIucHJvdG90eXBlLmFkZFZTTGlzdD1mdW5jdGlvbihlKXt2YXIgdD1tKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9Db250ZW50KyIgLm90LXNkay1jb2x1bW4iKSxvPUIuZ2V0VmVuZG9yTGlzdEVsZShlKTt0LmFwcGVuZChvKTtoLmFkZEV4dGVybmFsSWNvbkZvckxpbmtzKGZ1bmN0aW9uKGUpe3JldHVybiBvLnF1ZXJ5U2VsZWN0b3JBbGwoZSl9KSxmci5hZGRMaXN0ZW5lcnMoKX0sbXIucHJvdG90eXBlLmdldEdyb3Vwc0ZvckZpbHRlcj1mdW5jdGlvbigpe3ZhciB0PW5ldyBNYXA7cmV0dXJuIGwuZ2V0VmVuZG9yc0luRG9tYWluKCkuZm9yRWFjaChmdW5jdGlvbihlKXt0LmhhcyhlLmdyb3VwUmVmLkN1c3RvbUdyb3VwSWQpfHx0LnNldChlLmdyb3VwUmVmLkN1c3RvbUdyb3VwSWQsZS5ncm91cFJlZil9KSxBcnJheS5mcm9tKHQudmFsdWVzKCkpfSxtci5wcm90b3R5cGUuY2xlYXJVSUVsZW1lbnRzSW5NYWluPWZ1bmN0aW9uKCl7bSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGVudCsiIHVsIitULlBfSG9zdF9DbnRyKS5odG1sKCIiKSxtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9Db250ZW50KyIgdWwiK1QuUF9Ib3N0X0NudHIpLmhpZGUoKSxtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9Db250ZW50KyIgdWwiK1QuUF9WZW5kb3JfQ29udGFpbmVyKS5odG1sKCIiKSxtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9Db250ZW50KyIgdWwiK1QuUF9WZW5kb3JfQ29udGFpbmVyKS5oaWRlKCk7dmFyIGU9bSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGVudCsiIC5vdC12cy1saXN0Iik7ZSYmZS5sZW5ndGgmJmUucmVtb3ZlKCl9LG1yLnByb3RvdHlwZS5zZXRIZWFkZXI9ZnVuY3Rpb24oKXt2YXIgZT1PLlZlbmRvclNlcnZpY2VDb25maWcuUENWU0xpc3RUaXRsZSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX1RpdGxlKycsICNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC10aXRsZSBwW2FyaWEtbGV2ZWw9IjMiXScpO3QmJih0LmlubmVyVGV4dD1lKX0sbXIucHJvdG90eXBlLnNldFNlYXJjaElucHV0PWZ1bmN0aW9uKCl7dmFyIGU9Ty5QQ2VudGVyQ29va2llTGlzdFNlYXJjaCx0PU8uUENlbnRlckNvb2tpZVNlYXJjaEFyaWFMYWJlbCxvPW0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX1NlYXJjaF9JbnB1dCk7by5lbFswXS5wbGFjZWhvbGRlcj1lLG8uYXR0cigiYXJpYS1sYWJlbCIsdCl9LG1yLnByb3RvdHlwZS5zZXRIZWFkZXJVSUNvbnNlbnQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG87bSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9TZWxlY3RfQ250cikuYWRkQ2xhc3MoIm90LXZuZC1saXN0LWNudCIpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfU2VsZWN0X0NudHIrIiAub3Qtc2VsLWFsbCIpLmFkZENsYXNzKCJvdC12cy1zZWxjLWFsbCIpLE8uUENDYXRlZ29yeVN0eWxlPT09U2UuVG9nZ2xlJiYobSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9TZWxlY3RfQ250cisiIC5vdC1zZWwtYWxsIikuYWRkQ2xhc3MoIm90LXRvZ2dsZS1jb25mIiksTy5QQ0FjY29yZGlvblN0eWxlPT09YWUuQ2FyZXQpJiZtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1NlbGVjdF9DbnRyKyIgLm90LXNlbC1hbGwiKS5hZGRDbGFzcygib3QtY2FyZXQtY29uZiIpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfTGVnX1NlbGVjdF9BbGwpLmhpZGUoKSxtKCIjb25ldHJ1c3QtcGMtc2RrICMiK1QuUF9TZWxfQWxsX0hvc3RfRWwpLmhpZGUoKSxtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0hvc3RfQ250cikuaGlkZSgpLG0oVC5QX1ZlbmRvcl9MaXN0KyIgI3NlbGVjdC1hbGwtdGV4dC1jb250YWluZXIiKS5oaWRlKCksbSgiI29uZXRydXN0LXBjLXNkayAjIitULlBfU2VsX0FsbF9WZW5kb3JfTGVnX0VsKS5oaWRlKCksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGFpbmVyKS5zaG93KCksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9TZWxlY3RfQ250cikuc2hvdygpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIyIrVC5QX1NlbF9BbGxfVmVuZG9yX0NvbnNlbnRfRWwpLnNob3coImlubGluZS1ibG9jayIpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX0xpc3QpLnJlbW92ZUNsYXNzKFQuUF9Ib3N0X1VJKSxtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9Db250ZW50KS5yZW1vdmVDbGFzcyhULlBfSG9zdF9DbnQpLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1wYy1zZGsgLm90LXNlbC1hbGwtY2hrYm94IC5zZWwtYWxsLWhkciIpfHwoZT12b2lkIDAsbnVsbCE9KHQ9Yi5tb2R1bGVJbml0aWFsaXplcikmJnQuU0VPT3B0aW1pemF0aW9uPygoZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIikpLnNldEF0dHJpYnV0ZSgicm9sZSIsImhlYWRpbmciKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1sZXZlbCIsIjQiKSk6ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoNCIpLGUuY2xhc3NOYW1lPSJzZWwtYWxsLWhkciIsZS50ZXh0Q29udGVudD0obnVsbD09KHQ9Ty5WZW5kb3JTZXJ2aWNlQ29uZmlnKT92b2lkIDA6dC5QQ1ZTQWxsb3dBbGxUZXh0KXx8IlBDVlNBbGxvd0FsbFRleHQiLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LXBjLXNkayAub3Qtc2VsLWFsbC1jaGtib3giKSxvPU8uUENDYXRlZ29yeVN0eWxlPT09U2UuQ2hlY2tib3g/ImJlZm9yZWVuZCI6ImFmdGVyYmVnaW4iLHQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KG8sZSkpLGZyLmNoZWNrQWxsb3dBbGxDaGVja2VkVmFsdWUoKX0sbXIucHJvdG90eXBlLmNoZWNrQWxsb3dBbGxDaGVja2VkVmFsdWU9ZnVuY3Rpb24oKXt2YXIgdD0hMCxlPShsLnZzQ29uc2VudC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2V8fCh0PSExKX0pLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCIjc2VsZWN0LWFsbC12ZW5kb3ItZ3JvdXBzLWhhbmRsZXIiKSk7di5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwsZSx0KX07dmFyIGZyLFNyPW1yO2Z1bmN0aW9uIG1yKCl7dGhpcy5zZWFyY2hRdWVyeT0iIix0aGlzLmZpbHRlckdyb3Vwcz1bXX1yLnByb3RvdHlwZS5pbml0Q29va2llU2V0dGluZ0hhbmRsZXJzPWZ1bmN0aW9uKCl7bShkb2N1bWVudCkub24oImNsaWNrIiwiLm9wdGFub24tc2hvdy1zZXR0aW5ncywgLm9wdGFub24tdG9nZ2xlLWRpc3BsYXksIC5vdC1zZGstc2hvdy1zZXR0aW5ncywgLm90LXBjLWhhbmRsZXIiLHRoaXMuY29va2llc1NldHRpbmdzQm91bmRMaXN0ZW5lcil9LHIucHJvdG90eXBlLmluaXRGbGd0Q2tTdGdCdG5FdmVudEhhbmRsZXJzPWZ1bmN0aW9uKCl7bSgiLm90LWZsb2F0aW5nLWJ1dHRvbl9fb3BlbiIpLm9uKCJjbGljayIsZnVuY3Rpb24oZSl7c2V0VGltZW91dChmdW5jdGlvbigpe3UuZmxvYXRpbmdDb29raWVTZXR0aW5nT3BlbkJ0bkNsaWNrZWQoZSl9LDApfSksbSgiLm90LWZsb2F0aW5nLWJ1dHRvbl9fY2xvc2UiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt1LmZsb2F0aW5nQ29va2llU2V0dGluZ0Nsb3NlQnRuQ2xpY2tlZChlKX0sMCl9KX0sci5wcm90b3R5cGUuZmxvYXRpbmdDb29raWVTZXR0aW5nT3BlbkJ0bkNsaWNrZWQ9ZnVuY3Rpb24oZSl7bSh1LmZsdGdCdG5TbHRyKS5hZGRDbGFzcygib3QtcGMtb3BlbiIpLE8uY29va2llUGVyc2lzdGVudExvZ28uaW5jbHVkZXMoIm90X2d1YXJkX2xvZ28uc3ZnIikmJm0odS5mbHRnQnRuRlNsdHIpLmF0dHIobXQsInRydWUiKSxtKHUuZmx0Z0J0bkJTbHRyKS5hdHRyKG10LCIiKSxtKHUuZmx0Z0J0bkZyb250QnRuKS5lbFswXS5zZXRBdHRyaWJ1dGUobXQsITApLG0odS5mbHRnQnRuRnJvbnRCdG4pLmVsWzBdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLG0odS5mbHRnQnRuQmFja0J0bikuZWxbMF0uc2V0QXR0cmlidXRlKFN0LE8uQXJpYUNsb3NlUHJlZmVyZW5jZXMpLG0odS5mbHRnQnRuQmFja0J0bikuZWxbMF0uc2V0QXR0cmlidXRlKG10LCExKSxtKHUuZmx0Z0J0bkJhY2tCdG4pLmVsWzBdLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixUby50cmlnZ2VyR29vZ2xlQW5hbHl0aWNzRXZlbnQoeG8sWW8pLHUuc2hvd0Nvb2tpZVNldHRpbmdzSGFuZGxlcihlKX0sci5wcm90b3R5cGUuZmxvYXRpbmdDb29raWVTZXR0aW5nQ2xvc2VCdG5DbGlja2VkPWZ1bmN0aW9uKGUpe20odS5mbHRnQnRuRnJvbnRCdG4pLmVsWzBdLnNldEF0dHJpYnV0ZShTdCxPLkNvb2tpZVNldHRpbmdCdXR0b25UZXh0KSxtKHUuZmx0Z0J0bkZyb250QnRuKS5lbFswXS5zZXRBdHRyaWJ1dGUobXQsITEpLG0odS5mbHRnQnRuRnJvbnRCdG4pLmVsWzBdLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixtKHUuZmx0Z0J0bkJhY2tCdG4pLmVsWzBdLnNldEF0dHJpYnV0ZShtdCwhMCksbSh1LmZsdGdCdG5CYWNrQnRuKS5lbFswXS5zdHlsZS5kaXNwbGF5PSJub25lIixlJiYoVG8udHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50KHhvLEpvKSx1LmhpZGVDb29raWVTZXR0aW5nc0hhbmRsZXIoZSkpfSxyLnByb3RvdHlwZS5pbml0aWFsaXNlTGVnSW50QnRuSGFuZGxlcnM9ZnVuY3Rpb24oKXttKGRvY3VtZW50KS5vbigiY2xpY2siLCIub3Qtb2JqLWxlZy1idG4taGFuZGxlciIsdS5vbkxlZ0ludEJ1dHRvbkNsaWNrKSxtKGRvY3VtZW50KS5vbigiY2xpY2siLCIub3QtcmVtb3ZlLW9iamVjdGlvbi1oYW5kbGVyIix1Lm9uTGVnSW50QnV0dG9uQ2xpY2spfSxyLnByb3RvdHlwZS5pbml0aWFsaXNlQWRkdGxWZW5IYW5kbGVyPWZ1bmN0aW9uKCl7bSgiI29uZXRydXN0LXBjLXNkayAjb3QtYWRkdGwtdmVubHN0Iikub24oImNsaWNrIix1LnNlbGVjdFZlbmRvcnNHcm91cEhhbmRsZXIpLG0oIiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1hZHRsdmVuLWhhbmRsZXIiKS5vbigiY2xpY2siLHUuc2VsQWxsQWR0bFZlbkhhbmRsZXIpfSxyLnByb3RvdHlwZS5pbml0aWFsaXplR2VuVmVuSGFuZGxlcnM9ZnVuY3Rpb24oKXttKCIjb25ldHJ1c3QtcGMtc2RrICNvdC1nbi12ZW5sc3QgLm90LWdudmVuLWNoa2JveC1oYW5kbGVyIikub24oImNsaWNrIix1LmdlblZlbmRvclRvZ2dsZWQpLG0oIiNvbmV0cnVzdC1wYy1zZGsgI290LWduLXZlbmxzdCAub3QtZ3YtdmVuYm94Iikub24oImNsaWNrIix1LmdlblZlbmRvckRldGFpbHMpLG0oIiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1nbnZlbi1oYW5kbGVyIikub24oImNsaWNrIix1LnNlbGVjdEFsbEdlblZlbkhhbmRsZXIpfSxyLnByb3RvdHlwZS5pbml0aWFsaXNlQ29uc2VudE5vdGljZUhhbmRsZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztfLnBjTmFtZT09PWl0JiZ1LmNhdGVnb3J5TWVudVN3aXRjaEhhbmRsZXIoKSxtKCIjb25ldHJ1c3QtcGMtc2RrIC5vbmV0cnVzdC1jbG9zZS1idG4taGFuZGxlciIpLm9uKCJjbGljayIsZnVuY3Rpb24oZSl7c2V0VGltZW91dChmdW5jdGlvbigpe3UuYmFubmVyQ2xvc2VCdXR0b25IYW5kbGVyKGUpfSwwKX0pLG0oIiNvbmV0cnVzdC1wYy1zZGsgI2FjY2VwdC1yZWNvbW1lbmRlZC1idG4taGFuZGxlciIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Qy5hbGxvd0FsbEV2ZW50SGFuZGxlcighMCl9LDApfSksbSgiI29uZXRydXN0LXBjLXNkayAub3QtcGMtcmVmdXNlLWFsbC1oYW5kbGVyIikub24oImNsaWNrIixmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtDLnJlamVjdEFsbEV2ZW50SGFuZGxlcighMCl9LDApfSksbSgiI29uZXRydXN0LXBjLXNkayAjY2xvc2UtcGMtYnRuLWhhbmRsZXIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtELnBjQ2xvc2VkRnJvbUNsb3NlQnRuPSEwLEQuYmFubmVyQ2xvc2VTb3VyY2U9Wi5CYW5uZXJDbG9zZUJ1dHRvbix1LmhpZGVDb29raWVTZXR0aW5nc0hhbmRsZXIoZSl9LDApfSksbShkb2N1bWVudCkub24oImtleWRvd24iLHUuY2xvc2VQQ1doZW5Fc2NQcmVzc2VkKSxtKCIjb25ldHJ1c3QtcGMtc2RrICN2ZW5kb3ItY2xvc2UtcGMtYnRuLWhhbmRsZXIiKS5vbigiY2xpY2siLHUuaGlkZUNvb2tpZVNldHRpbmdzSGFuZGxlciksbSgiI29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktc3dpdGNoLWhhbmRsZXIiKS5vbigiY2xpY2siLHUudG9nZ2xlR3JvdXBPUlZlbmRvckhhbmRsZXIpLG0oIiNvbmV0cnVzdC1wYy1zZGsgLmNvb2tpZS1zdWJncm91cC1oYW5kbGVyIikub24oImNsaWNrIix1LnRvZ2dsZVN1YkNhdGVnb3J5KSxtKCIjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1tZW51LXN3aXRjaC1oYW5kbGVyIikub24oImtleWRvd24iLGZ1bmN0aW9uKGUpe18ucGNOYW1lIT09aXR8fGUua2V5Q29kZSE9PWllLlVwQXJyb3cmJmUua2V5Q29kZSE9PWllLkRvd25BcnJvd3x8KGUucHJldmVudERlZmF1bHQoKSxPLlBDVGVtcGxhdGVVcGdyYWRlP3UuY2hhbmdlU2VsZWN0ZWRUYWJWMihlKTp1LmNoYW5nZVNlbGVjdGVkVGFiKGUpKX0pLG0oIiIrdS5QQ19TRUxFQ1RPUikub24oImNsaWNrIixULlBfQ2F0ZWdvcnlfSXRlbSsiID4gaW5wdXQ6Zmlyc3QtY2hpbGQsIitULlBfQ2F0ZWdvcnlfSXRlbSsiID4gYnV0dG9uOmZpcnN0LWNoaWxkIix1Lm9uQ2F0ZWdvcnlJdGVtVG9nZ2xlLmJpbmQodGhpcykpLChPLnNob3dDb29raWVMaXN0fHxELnNob3dHZW5lcmFsVmVuZG9ycykmJihtKCIjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1ob3N0LWxpc3QtaGFuZGxlciIpLm9uKCJjbGljayIsZnVuY3Rpb24oZSl7c2V0VGltZW91dChmdW5jdGlvbigpe0Quc2hvd0dlbmVyYWxWZW5kb3JzJiZPLnNob3dDb29raWVMaXN0P0QuY29va2llTGlzdFR5cGU9Z2UuSG9zdEFuZEdlblZlbjpELnNob3dHZW5lcmFsVmVuZG9ycz9ELmNvb2tpZUxpc3RUeXBlPWdlLkdlblZlbjpELmNvb2tpZUxpc3RUeXBlPWdlLkhvc3QsdS5wY0xpbmtTb3VyY2U9ZS50YXJnZXQsdS5sb2FkQ29va2llTGlzdChlLnRhcmdldCl9LDApfSksaC5pc09wdE91dEVuYWJsZWQoKT8obSgiI29uZXRydXN0LXBjLXNkayAjc2VsZWN0LWFsbC1ob3N0cy1ncm91cHMtaGFuZGxlciIpLm9uKCJjbGljayIsdS5zZWxlY3RBbGxIb3N0c0dyb3Vwc0hhbmRsZXIpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfSG9zdF9DbnRyKS5vbigiY2xpY2siLHUuc2VsZWN0SG9zdHNHcm91cEhhbmRsZXIpKTptKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0hvc3RfQ250cikub24oImNsaWNrIix1LnRvZ2dsZUFjY29yZGlvblN0YXR1cykpLHUuYWRkTGlzdGVuZXJXaGVuSWFiRW5hYmxlZCgpLHUuYWRkRXZlbnRMaXN0ZW5lcldoZW5Jc0hvc3RPclZlbmRvcnNBcmVFbmFibGVkKCksdS5hZGRkTGlzdGVuZXJXaGVuTm9CYW5uZXIoKSxtKCIjb25ldHJ1c3QtcGMtc2RrIC5vdC1ndi1saXN0LWhhbmRsZXIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKHQpe3JldHVybiBQKGUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7cmV0dXJuIEQuY29va2llTGlzdFR5cGU9Z2UuR2VuVmVuLHUubG9hZENvb2tpZUxpc3QodC50YXJnZXQpLFsyXX0pfSl9KSx1LmFkZExpc3RlbmVyV2hlblZlbmRvclNlcnZpY2VzKCksdS5hZGRFdmVudExpc3RuZXJGb3JWZW5kb3JzTGlzdCgpfSxyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyV2hlbklzSG9zdE9yVmVuZG9yc0FyZUVuYWJsZWQ9ZnVuY3Rpb24oKXt2YXIgZTsoTy5Jc0lhYkVuYWJsZWR8fE8uc2hvd0Nvb2tpZUxpc3R8fEQuc2hvd0dlbmVyYWxWZW5kb3JzfHxELnNob3dWZW5kb3JTZXJ2aWNlKSYmKG0oZG9jdW1lbnQpLm9uKCJjbGljayIsIi5iYWNrLWJ0bi1oYW5kbGVyIix1LmJhY2tCdG5IYW5kbGVyKSx1LmFkZExpc3RlbmVyU2VhcmNoS2V5RXZlbnQoKSxtKHRoaXMuRklMVEVSX0JUTl9TRUxFQ1RPUikub24oImNsaWNrIix1LnRvZ2dsZVZlbmRvckZpbHRlcnNIYW5kbGVyKSx1LnNldEZpbHRlckJ1dHRvbkV4cGFuZGVkKCExKSxtKCIjb25ldHJ1c3QtcGMtc2RrICNmaWx0ZXItYXBwbHktaGFuZGxlciIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dS5hcHBseUZpbHRlckhhbmRsZXIoKX0sMCl9KSxtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0ZsdHJfTW9kYWwpLm9uKCJjbGljayIsdS50Z2xGbHRyT3B0aW9uSGFuZGxlciksIWIuaXNWMlRlbXBsYXRlJiZfLnBjTmFtZSE9PXJ0fHxtKCIjb25ldHJ1c3QtcGMtc2RrICNmaWx0ZXItY2FuY2VsLWhhbmRsZXIiKS5vbigiY2xpY2siLHUuY2FuY2VsRmlsdGVySGFuZGxlciksIWIuaXNWMlRlbXBsYXRlJiZfLnBjTmFtZT09PXJ0fHxtKCIjb25ldHJ1c3QtcGMtc2RrICNjbGVhci1maWx0ZXJzLWhhbmRsZXIiKS5vbigiY2xpY2siLHUuY2xlYXJGaWx0ZXJzSGFuZGxlciksYi5pc1YyVGVtcGxhdGU/bSgiI29uZXRydXN0LXBjLXNkayAjZmlsdGVyLWNhbmNlbC1oYW5kbGVyIikub24oImtleWRvd24iLGZ1bmN0aW9uKGUpezkhPT1lLmtleUNvZGUmJiJ0YWIiIT09ZS5jb2RlfHxlLnNoaWZ0S2V5fHwoZS5wcmV2ZW50RGVmYXVsdCgpLG0oIiNvbmV0cnVzdC1wYy1zZGsgI2NsZWFyLWZpbHRlcnMtaGFuZGxlciIpLmVsWzBdLmZvY3VzKCkpfSk6bSgiI29uZXRydXN0LXBjLXNkayAjZmlsdGVyLWFwcGx5LWhhbmRsZXIiKS5vbigia2V5ZG93biIsZnVuY3Rpb24oZSl7OSE9PWUua2V5Q29kZSYmInRhYiIhPT1lLmNvZGV8fGUuc2hpZnRLZXl8fChlLnByZXZlbnREZWZhdWx0KCksbSgiI29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktZmlsdGVyLWhhbmRsZXIiKS5lbFswXS5mb2N1cygpKX0pLGU9bSgiI29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktZmlsdGVyLWhhbmRsZXIiKS5lbCxtKGVbMF0pLm9uKCJrZXlkb3duIixmdW5jdGlvbihlKXs5IT09ZS5rZXlDb2RlJiYidGFiIiE9PWUuY29kZXx8IWUuc2hpZnRLZXl8fChlLnByZXZlbnREZWZhdWx0KCksbSgiI29uZXRydXN0LXBjLXNkayAjZmlsdGVyLWFwcGx5LWhhbmRsZXIiKS5lbFswXS5mb2N1cygpKX0pKX0sci5wcm90b3R5cGUuYWRkTGlzdGVuZXJTZWFyY2hLZXlFdmVudD1mdW5jdGlvbigpe20odS5WRU5ET1JfU0VBUkNIX1NFTEVDVE9SKS5vbigia2V5dXAiLGZ1bmN0aW9uKGUpe2U9ZS50YXJnZXQudmFsdWUudHJpbSgpO3UuY3VycmVudFNlYXJjaElucHV0IT09ZSYmKEQuc2hvd1ZlbmRvclNlcnZpY2U/ZnIuZmlsdGVyVmVuZG9yQnlTdHJpbmcoZSk6dS5pc0Nvb2tpZUxpc3Q/KGcuc2VhcmNoSG9zdExpc3QoZSksRC5zaG93VHJhY2tpbmdUZWNoJiZ1LmFkZEV2ZW50QWRkaXRpb25hbFRlY2hub2xvZ2llcygpKTooZy5sb2FkVmVuZG9yTGlzdChlLFtdKSxPLlVzZUdvb2dsZVZlbmRvcnMmJmcuc2VhcmNoVmVuZG9ycyhnLmdvb2dsZVNlYXJjaFNlbGVjdG9ycyxELmFkZHRsVmVuZG9yc0xpc3QsZmUuR29vZ2xlVmVuZG9yLGUpLEQuc2hvd0dlbmVyYWxWZW5kb3JzJiZPLkdlbmVyYWxWZW5kb3JzLmxlbmd0aCYmZy5zZWFyY2hWZW5kb3JzKGcuZ2VuVmVuZG9yU2VhcmNoU2VsZWN0b3JzLE8uR2VuZXJhbFZlbmRvcnMsZmUuR2VuZXJhbFZlbmRvcixlKSksZy5wbGF5U2VhcmNoU3RhdHVzKHUuaXNDb29raWVMaXN0KSx1LmN1cnJlbnRTZWFyY2hJbnB1dD1lKX0pfSxyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcldoZW5JYWJFbmFibGVkPWZ1bmN0aW9uKCl7Ty5Jc0lhYkVuYWJsZWQmJihtKCIjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS12ZW5kb3JzLWxpc3QtaGFuZGxlciIpLm9uKCJjbGljayIsZnVuY3Rpb24oZSl7c2V0VGltZW91dChmdW5jdGlvbigpe3UucGNMaW5rU291cmNlPWUudGFyZ2V0LHUuc2hvd1ZlbmRvcnNMaXN0KGUudGFyZ2V0KX0sMCl9KSxtKCIjb25ldHJ1c3QtcGMtc2RrIC5vdC1wZ3BoLWxpbmsiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe3UucGNMaW5rU291cmNlPWUudGFyZ2V0LHUuc2hvd0lsbHVzdHJhdGlvbnMoZS50YXJnZXQpfSksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGFpbmVyKS5vbigiY2xpY2siLHUuc2VsZWN0VmVuZG9yc0dyb3VwSGFuZGxlciksTy5Vc2VHb29nbGVWZW5kb3JzfHx1LmJpbmRTZWxBbGxIYW5kbGVycygpLHUuaW5pdGlhbGlzZUxlZ0ludEJ0bkhhbmRsZXJzKCkpfSxyLnByb3RvdHlwZS5hZGRkTGlzdGVuZXJXaGVuTm9CYW5uZXI9ZnVuY3Rpb24oKXtPLk5vQmFubmVyJiYoTy5PbkNsaWNrQ2xvc2VCYW5uZXImJmRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEMuYm9keUNsaWNrRXZlbnQpLE8uU2Nyb2xsQ2xvc2VCYW5uZXIpJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixDLnNjcm9sbENsb3NlQmFubmVyKX0sci5wcm90b3R5cGUuYWRkTGlzdGVuZXJXaGVuVmVuZG9yU2VydmljZXM9ZnVuY3Rpb24oKXtELnNob3dWZW5kb3JTZXJ2aWNlJiYodS5iaW5kU2VsQWxsSGFuZGxlcnMoKSxtKCIjb25ldHJ1c3QtcGMtc2RrIC5vbmV0cnVzdC12ZW5kb3JzLWxpc3QtaGFuZGxlciIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dS5zaG93VmVuZG9yc0xpc3QobnVsbCwhMCl9LDApfSkpfSxyLnByb3RvdHlwZS5iaW5kU2VsQWxsSGFuZGxlcnM9ZnVuY3Rpb24oKXttKCIjb25ldHJ1c3QtcGMtc2RrICNzZWxlY3QtYWxsLXZlbmRvci1sZWctaGFuZGxlciIpLm9uKCJjbGljayIsdS5zZWxlY3RBbGxWZW5kb3JzTGVnSW50SGFuZGxlciksbSgiI29uZXRydXN0LXBjLXNkayAjc2VsZWN0LWFsbC12ZW5kb3ItZ3JvdXBzLWhhbmRsZXIiKS5vbigiY2xpY2siLHUuU2VsZWN0QWxsVmVuZG9yQ29uc2VudEhhbmRsZXIpfSxyLnByb3RvdHlwZS5oaWRlQ29va2llU2V0dGluZ3NIYW5kbGVyPWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUmJihlPXdpbmRvdy5ldmVudCksZXIuZ2V0SW5zdGFuY2UoKS5yZXNldEhlYWx0aFNpZ25hdHVyZURhdGEoKSxUby50cmlnZ2VyR29vZ2xlQW5hbHl0aWNzRXZlbnQoeG8sVW8pLHluLnJlbW92ZUFkZGVkT1RDc3NTdHlsZXMoaG4uUEMpLEQucGNMYXllcj09PXJlLklhYklsbHVzdHJhdGlvbnMmJmRyLmhpZGVVSSgpLG51bGwhPSh0PW51bGw9PSh0PXdpbmRvdy5PbmVUcnVzdF9Db25maXJtRGlhbG9nKT92b2lkIDA6dC5nZXRJbnN0YW5jZSgpKSYmdC5jbG9zZSgpLG0oZG9jdW1lbnQpLm9mZigia2V5ZG93biIsdS5jbG9zZVBDV2hlbkVzY1ByZXNzZWQpLHUuZ2V0UmVzaXplRWxlbWVudCgpLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdS5zZXRDZW50ZXJMYXlvdXRGb290ZXJIZWlnaHQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHUuc2V0Q2VudGVyTGF5b3V0Rm9vdGVySGVpZ2h0KSwhYi5pc1YyVGVtcGxhdGUmJl8ucGNOYW1lIT09cnR8fHUuY2xvc2VGaWx0ZXIoITEpLF8ucGNOYW1lPT09b3QmJm0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfQ29udGVudCkucmVtb3ZlQ2xhc3MoIm90LWhpZGUiKSxDLmhpZGVWZW5kb3JzTGlzdCgpLEZzLmNzQnRuR3JvdXAmJihtKHUuZmx0Z0J0blNsdHIpLnJlbW92ZUNsYXNzKCJvdC1wYy1vcGVuIiksdS5mbG9hdGluZ0Nvb2tpZVNldHRpbmdDbG9zZUJ0bkNsaWNrZWQobnVsbCkpO3ZhciB0PUQucGNDbG9zZWRGcm9tQ2xvc2VCdG47cmV0dXJuIGJuLmhpZGVDb25zZW50Tm90aWNlVjIoKSxELnBjQ2xvc2VkRnJvbUNsb3NlQnRuPXQsdS5jb25maXJtUEMoZSksQy5yZXNldENvbnNlbnQoKSwhMX0sci5wcm90b3R5cGUuc2VsZWN0QWxsSG9zdHNHcm91cHNIYW5kbGVyPWZ1bmN0aW9uKGUpe3ZhciB0PWUudGFyZ2V0O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LmdldEF0dHJpYnV0ZSYmInRydWUiPT09dC5nZXRBdHRyaWJ1dGUodGhpcy5BcmlhRGlzYWJsZWQpKWUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHQuY2hlY2tlZD0hMTtlbHNle3ZhciBvPSEhdC5jaGVja2VkLGU9bSgiI29uZXRydXN0LXBjLXNkayAjIitULlBfU2VsX0FsbF9Ib3N0X0VsKS5lbFswXSx0PWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJsaW5lLXRocm91Z2giKSxuPW0oIiNvbmV0cnVzdC1wYy1zZGsgLmhvc3QtY2hlY2tib3gtaGFuZGxlciIpLmVsO3Yuc2V0Q2hlY2tlZEF0dHJpYnV0ZSgiI3NlbGVjdC1hbGwtaG9zdHMtZ3JvdXBzLWhhbmRsZXIiLG51bGwsbyksdi5zZXRBcmlhQ2hlY2tlZEF0dHJpYnV0ZSgiI3NlbGVjdC1hbGwtaG9zdHMtZ3JvdXBzLWhhbmRsZXIiLG51bGwsby50b1N0cmluZygpKTtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyluW3JdLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKXx8di5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwsbltyXSxvKTtELm9wdGFub25Ib3N0TGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3dvLnVwZGF0ZUhvc3RTdGF0dXMoZSxvKX0pLG4uZm9yRWFjaChmdW5jdGlvbihlKXtMby51cGRhdGVHZW5WZW5kb3JTdGF0dXMoZS5nZXRBdHRyaWJ1dGUoImhvc3RJZCIpLG8pfSksdCYmZS5jbGFzc0xpc3QucmVtb3ZlKCJsaW5lLXRocm91Z2giKX19LHIucHJvdG90eXBlLnNlbGVjdEhvc3RzR3JvdXBIYW5kbGVyPWZ1bmN0aW9uKGUpe3UudG9nZ2xlQWNjb3JkaW9uU3RhdHVzKGUpO3ZhciB0PWUudGFyZ2V0LmdldEF0dHJpYnV0ZSgiaG9zdElkIiksbz1lLnRhcmdldC5nZXRBdHRyaWJ1dGUoImNrVHlwZSIpLG49ZS50YXJnZXQuY2hlY2tlZDtudWxsIT09dCYmKG89PT1DZS5HZW5WZW5kb3I/KG89Ty5HZW5lcmFsVmVuZG9ycy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLlZlbmRvckN1c3RvbUlkPT09dH0pLk5hbWUsVG8udHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50KHhvLG4/Wm86JG8sbysiOiBWRU5fIit0KSxMby51cGRhdGVHZW5WZW5kb3JTdGF0dXModCxuKSk6KG89di5maW5kSW5kZXgoRC5vcHRhbm9uSG9zdExpc3QsZnVuY3Rpb24oZSl7cmV0dXJuIGUuSG9zdElkPT09dH0pLG89RC5vcHRhbm9uSG9zdExpc3Rbb10sdS50b2dnbGVIb3N0U3RhdHVzKG8sbikpLHYuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLGUudGFyZ2V0LG4pKX0sci5wcm90b3R5cGUub25DYXRlZ29yeUl0ZW1Ub2dnbGU9ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgdD1lLnRhcmdldDsiQlVUVE9OIiE9PXQudGFnTmFtZSYmIklOUFVUIiE9PXQudGFnTmFtZXx8KF8ucGNOYW1lPT09b3QmJnRoaXMuc2V0UGNMaXN0Q29udGFpbmVySGVpZ2h0KCksdS50b2dnbGVBY2NvcmRpb25TdGF0dXMoZSkpfSxyLnByb3RvdHlwZS5zZXRGaWx0ZXJCdXR0b25FeHBhbmRlZD1mdW5jdGlvbihlKXt2YXIgdDt0cnl7dmFyIG89bnVsbD09KHQ9bSh0aGlzLkZJTFRFUl9CVE5fU0VMRUNUT1IpLmVsKT92b2lkIDA6dFswXTtvJiZvLnNldEF0dHJpYnV0ZSh0aGlzLkFSSUFfRVhQQU5ERUQsZT8idHJ1ZSI6ImZhbHNlIil9Y2F0Y2goZSl7Y29uc29sZS5pbmZvKGUpfX0sci5wcm90b3R5cGUuZm9jdXNGaWx0ZXJCdXR0b249ZnVuY3Rpb24oKXttKHRoaXMuRklMVEVSX0JUTl9TRUxFQ1RPUikuZm9jdXMoKX0sci5wcm90b3R5cGUudG9nZ2xlSG9zdFN0YXR1cz1mdW5jdGlvbihlLHQpe1RvLnRyaWdnZXJHb29nbGVBbmFseXRpY3NFdmVudCh4byx0P2VuOnRuLGUuSG9zdE5hbWUrIjogSF8iK2UuSG9zdElkKSx3by51cGRhdGVIb3N0U3RhdHVzKGUsdCl9LHIucHJvdG90eXBlLnRvZ2dsZUJhbm5lck9wdGlvbnM9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczttKCIuYmFubmVyLW9wdGlvbi1pbnB1dCIpLmVhY2goZnVuY3Rpb24oZSl7bShlKS5lbC5zZXRBdHRyaWJ1dGUodC5BUklBX0VYUEFOREVELCJmYWxzZSIpfSksdS50b2dnbGVBY2NvcmRpb25TdGF0dXMoZSl9LHIucHJvdG90eXBlLmJhbm5lckNsb3NlQnV0dG9uSGFuZGxlcj1mdW5jdGlvbihuKXt2YXIgcjtyZXR1cm4gUCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdCxvO3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7cmV0dXJuIG0oZG9jdW1lbnQpLm9mZigia2V5ZG93biIsdS5zaGlmdEJhbm5lckZvY3VzKSwtMTwodD0obnVsbD09KHI9bnVsbD09KHI9bik/dm9pZCAwOnIudGFyZ2V0KT92b2lkIDA6ci5jbGFzc05hbWUpfHwiIikuaW5kZXhPZigic2F2ZS1wcmVmZXJlbmNlLWJ0bi1oYW5kbGVyIik/KEQuYmFubmVyQ2xvc2VTb3VyY2U9Wi5Db25maXJtQ2hvaWNlQnV0dG9uLFRvLnRyaWdnZXJHb29nbGVBbmFseXRpY3NFdmVudCh4byx6bykpOi0xPHQuaW5kZXhPZigiYmFubmVyLWNsb3NlLWJ1dHRvbiIpPyhELmJhbm5lckNsb3NlU291cmNlPVouQmFubmVyQ2xvc2VCdXR0b24sbz1SbywtMTx0LmluZGV4T2YoIm90LWNsb3NlLWxpbmsiKSYmKG89Rm8sRC5iYW5uZXJDbG9zZVNvdXJjZT1aLkNvbnRpbnVlV2l0aG91dEFjY2VwdGluZ0J1dHRvbiksVG8udHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50KHhvLG8pKTotMTx0LmluZGV4T2YoIm90LWJuci1zYXZlLWhhbmRsZXIiKSYmKEQuYmFubmVyQ2xvc2VTb3VyY2U9Wi5CYW5uZXJTYXZlU2V0dGluZ3MsVG8udHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50KHhvLE1vKSkseW4ucmVtb3ZlQWRkZWRPVENzc1N0eWxlcygpLEMuaGlkZVZlbmRvcnNMaXN0KCksWzIsQy5iYW5uZXJDbG9zZUJ1dHRvbkhhbmRsZXIoKV19KX0pfSxyLnByb3RvdHlwZS5vbkxlZ0ludEJ1dHRvbkNsaWNrPWZ1bmN0aW9uKGUpe3ZhciB0LG8sbixyO2UmJihuPSJ0cnVlIj09PShlPWUuY3VycmVudFRhcmdldCkucGFyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlzLXZlbmRvciIpLHQ9ZS5wYXJlbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS1ncm91cC1pZCIpLHI9IiIsbz0hZS5jbGFzc0xpc3QuY29udGFpbnMoIm90LWxlZy1pbnQtZW5hYmxlZCIpLG4/dS5vblZlbmRvclRvZ2dsZSh0LGxlLkxJKToocj0obj15LmdldEdyb3VwQnlJZCh0KSkuR3JvdXBOYW1lLG4uUGFyZW50P3UudXBkYXRlU3ViR3JvdXBUb2dnbGVzKG4sbywhMCk6dS51cGRhdGVHcm91cFRvZ2dsZXMobixvLCEwKSksVi51cGRhdGVMZWdJbnRCdG5FbGVtZW50KGUucGFyZW50RWxlbWVudCxvLHIpKX0sci5wcm90b3R5cGUudXBkYXRlR3JvdXBUb2dnbGVzPWZ1bmN0aW9uKHQsbyxlKXt3by50b2dnbGVHcm91cEhvc3RzKHQsbyksRC5nZW5WZW5PcHRPdXRFbmFibGVkJiZ3by50b2dnbGVHcm91cEdlblZlbmRvcnModCxvKSx0LklzTGVnSW50VG9nZ2xlPWUsdS50b2dnbGVHcm91cFN0YXR1cyh0LG8pLHQuU3ViR3JvdXBzJiZ0LlN1Ykdyb3Vwcy5sZW5ndGgmJihfLmJhbm5lck5hbWU9PT0kZSYmYi5tb2R1bGVJbml0aWFsaXplci5Jc1N1cHByZXNzUEMmJnQuU3ViR3JvdXBzLmxlbmd0aD90LlN1Ykdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuSXNMZWdJbnRUb2dnbGU9dC5Jc0xlZ0ludFRvZ2dsZSxWLnRvZ2dsZUdycFN0YXR1cyhlLG8pLGUuSXNMZWdJbnRUb2dnbGU9ITEsd28udG9nZ2xlR3JvdXBIb3N0cyhlLG8pLEQuZ2VuVmVuT3B0T3V0RW5hYmxlZCYmd28udG9nZ2xlR3JvdXBHZW5WZW5kb3JzKGUsbyksQi5zZXRWZW5kb3JTdGF0ZUJ5R3JvdXAoZSxvKX0pOlYudG9vZ2xlQWxsU3ViR3JwRWxlbWVudHModCxvKSx0LlN1Ykdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBCLnNldFZlbmRvclN0YXRlQnlHcm91cChlLG8pfSkpLEIuc2V0VmVuZG9yU3RhdGVCeUdyb3VwKHQsbyksYi5mcC5XZWJCdXR0b25DdXN0b21pc2F0aW9uc3x8dGhpcy5hbGxvd0FsbFZpc2libGUoVi5zZXRBbGxvd0FsbEJ1dHRvbigpKSx0LklzTGVnSW50VG9nZ2xlPSExfSxyLnByb3RvdHlwZS50b2dnbGVHcm91cFN0YXR1cz1mdW5jdGlvbihlLHQpe3ZhciBvO18ucmVxdWlyZVNpZ25hdHVyZUVuYWJsZWQmJmUubmVlZHNIZWFsdGhTaWduYXR1cmU/KG89ITEsdD8oXy5oZWFsdGhTaWduYXR1cmVEYXRhJiYobz0hMCksXy5oZWFsdGhTaWduYXR1cmVHcm91cD1lKTpfLmhlYWx0aFNpZ25hdHVyZUdyb3VwPW51bGwsVi50b2dnbGVHcnBTdGF0dXMoZSxvKSk6Vi50b2dnbGVHcnBTdGF0dXMoZSx0KX0sci5wcm90b3R5cGUudXBkYXRlU3ViR3JvdXBUb2dnbGVzPWZ1bmN0aW9uKGUsdCxvKXt3by50b2dnbGVHcm91cEhvc3RzKGUsdCksRC5nZW5WZW5PcHRPdXRFbmFibGVkJiZ3by50b2dnbGVHcm91cEdlblZlbmRvcnMoZSx0KTt2YXIgbj15LmdldEdyb3VwQnlJZChlLlBhcmVudCksbz0oZS5Jc0xlZ0ludFRvZ2dsZT1vLG4uSXNMZWdJbnRUb2dnbGU9ZS5Jc0xlZ0ludFRvZ2dsZSxWLmlzR3JvdXBBY3RpdmUobikpO3Q/KFYudG9nZ2xlR3JwU3RhdHVzKGUsITApLFYuaXNBbGxTdWJncm91cHNFbmFibGVkKG4pJiYhbyYmKFYudG9nZ2xlR3JwU3RhdHVzKG4sITApLHdvLnRvZ2dsZUdyb3VwSG9zdHMobix0KSxELmdlblZlbk9wdE91dEVuYWJsZWQmJndvLnRvZ2dsZUdyb3VwR2VuVmVuZG9ycyhuLHQpLFYudG9nZ2xlR3JvdXBIdG1sRWxlbWVudChlLGUuUGFyZW50KyhlLklzTGVnSW50VG9nZ2xlPyItbGVnLW91dCI6IiIpLCEwKSkpOihWLnRvZ2dsZUdycFN0YXR1cyhlLCExKSxWLmlzQWxsU3ViZ3JvdXBzRGlzYWJsZWQobikmJm8/KFYudG9nZ2xlR3JwU3RhdHVzKG4sITEpLHdvLnRvZ2dsZUdyb3VwSG9zdHMobix0KSxELmdlblZlbk9wdE91dEVuYWJsZWQmJndvLnRvZ2dsZUdyb3VwR2VuVmVuZG9ycyhuLHQpLFYudG9nZ2xlR3JvdXBIdG1sRWxlbWVudChlLGUuUGFyZW50KyhlLklzTGVnSW50VG9nZ2xlPyItbGVnLW91dCI6IiIpLHQpKTooVi50b2dnbGVHcnBTdGF0dXMobiwhMSksd28udG9nZ2xlR3JvdXBIb3N0cyhuLCExKSxELmdlblZlbk9wdE91dEVuYWJsZWQmJndvLnRvZ2dsZUdyb3VwR2VuVmVuZG9ycyhuLHQpLFYudG9nZ2xlR3JvdXBIdG1sRWxlbWVudChlLGUuUGFyZW50KyhlLklzTGVnSW50VG9nZ2xlPyItbGVnLW91dCI6IiIpLCExKSkpLHRoaXMuYWxsb3dBbGxWaXNpYmxlKFYuc2V0QWxsb3dBbGxCdXR0b24oKSksZS5Jc0xlZ0ludFRvZ2dsZT0hMSxuLklzTGVnSW50VG9nZ2xlPWUuSXNMZWdJbnRUb2dnbGV9LHIucHJvdG90eXBlLmhpZGVDYXRlZ29yeUNvbnRhaW5lcj1mdW5jdGlvbihlKXt0aGlzLmlzQ29va2llTGlzdD1lPXZvaWQgMD09PWU/ITE6ZSx1LmFkZEhpZGVDbGFzc0NvbnRhaW5lcigpLEQuc2hvd1ZlbmRvclNlcnZpY2U/ZnIuc2V0SGVhZGVyQ29uZmlnKCk6KGU/dS5zZXRDb29raWVMaXN0VGVtcGxhdGUoKTp1LnNldFZlbmRvckxpc3RUZW1wbGF0ZSgpLHJyLnNldEZpbHRlckxpc3QoZSkpfSxyLnByb3RvdHlwZS5zZXRDb29raWVMaXN0VGVtcGxhdGU9ZnVuY3Rpb24oKXt2YXIgZT1iLmlzVjJUZW1wbGF0ZTttKFQuUF9WZW5kb3JfTGlzdCsiICNzZWxlY3QtYWxsLXRleHQtY29udGFpbmVyIikuc2hvdyh0aGlzLmlubGluZUJsb2NrRGlzcGxheSksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9Ib3N0X0NudHIpLnNob3coKSxoLmlzT3B0T3V0RW5hYmxlZCgpP20oIiNvbmV0cnVzdC1wYy1zZGsgIyIrVC5QX1NlbF9BbGxfSG9zdF9FbCkuc2hvdyh0aGlzLmlubGluZUJsb2NrRGlzcGxheSk6bSgiI29uZXRydXN0LXBjLXNkayAjIitULlBfU2VsX0FsbF9Ib3N0X0VsKS5oaWRlKCksbSgiI29uZXRydXN0LXBjLXNkayAjIitULlBfU2VsX0FsbF9WZW5kb3JfTGVnX0VsKS5oaWRlKCksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9MZWdfSGVhZGVyKS5oaWRlKCksZXx8bSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9MZWdfU2VsZWN0X0FsbCkuaGlkZSgpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIyIrVC5QX1NlbF9BbGxfVmVuZG9yX0NvbnNlbnRfRWwpLmhpZGUoKSxtKCIjb25ldHJ1c3QtcGMtc2RrICAiK1QuUF9WZW5kb3JfQ29udGFpbmVyKS5oaWRlKCksKE8uVXNlR29vZ2xlVmVuZG9yc3x8RC5zaG93R2VuZXJhbFZlbmRvcnMpJiZtKCIjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciIpLmhpZGUoKSxtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1ZlbmRvcl9MaXN0KS5hZGRDbGFzcyhULlBfSG9zdF9VSSksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGVudCkuYWRkQ2xhc3MoVC5QX0hvc3RfQ250KX0sci5wcm90b3R5cGUuc2V0VmVuZG9yTGlzdFRlbXBsYXRlPWZ1bmN0aW9uKCl7bSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGFpbmVyKS5zaG93KCksbSgiI29uZXRydXN0LXBjLXNkayAjIitULlBfU2VsX0FsbF9WZW5kb3JfQ29uc2VudF9FbCkuc2hvdyh0aGlzLmlubGluZUJsb2NrRGlzcGxheSksTy5Vc2VHb29nbGVWZW5kb3JzJiZtKCIjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciIpLnNob3coKSxfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJJiZfLmlzSWFiMm9ydjJUZW1wbGF0ZT8obSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9TZWxlY3RfQ250cikuc2hvdyhiLmlzVjJUZW1wbGF0ZT92b2lkIDA6dGhpcy5pbmxpbmVCbG9ja0Rpc3BsYXkpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfTGVnX1NlbGVjdF9BbGwpLnNob3codGhpcy5pbmxpbmVCbG9ja0Rpc3BsYXkpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIyIrVC5QX1NlbF9BbGxfVmVuZG9yX0xlZ19FbCkuc2hvdyh0aGlzLmlubGluZUJsb2NrRGlzcGxheSksbShULlBfVmVuZG9yX0xpc3QrIiAjc2VsZWN0LWFsbC10ZXh0LWNvbnRhaW5lciIpLnNob3codGhpcy5pbmxpbmVCbG9ja0Rpc3BsYXkpLF8ubGVnSW50U2V0dGluZ3MuUFNob3dMZWdJbnRCdG4/KG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfTGVnX0hlYWRlcikuaGlkZSgpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIyIrVC5QX1NlbF9BbGxfVmVuZG9yX0xlZ19FbCkuaGlkZSgpKTptKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0xlZ19IZWFkZXIpLnNob3coKSk6KG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfU2VsZWN0X0NudHIpLnNob3coKSxtKFQuUF9WZW5kb3JfTGlzdCsiICNzZWxlY3QtYWxsLXRleHQtY29udGFpbmVyIikuc2hvdyh0aGlzLmlubGluZUJsb2NrRGlzcGxheSksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9MZWdfU2VsZWN0X0FsbCkuc2hvdyh0aGlzLmlubGluZUJsb2NrRGlzcGxheSksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9MZWdfSGVhZGVyKS5oaWRlKCksbSgiI29uZXRydXN0LXBjLXNkayAjIitULlBfU2VsX0FsbF9WZW5kb3JfTGVnX0VsKS5oaWRlKCkpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIyIrVC5QX1NlbF9BbGxfSG9zdF9FbCkuaGlkZSgpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfSG9zdF9DbnRyKS5oaWRlKCksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfTGlzdCkucmVtb3ZlQ2xhc3MoVC5QX0hvc3RfVUkpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX0NvbnRlbnQpLnJlbW92ZUNsYXNzKFQuUF9Ib3N0X0NudCl9LHIucHJvdG90eXBlLnNob3dBbGxWZW5kb3JzPWZ1bmN0aW9uKHQpe3JldHVybiBQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx1LmZldGNoQW5kU2V0dXBQQygpXTtjYXNlIDE6cmV0dXJuIGUuc2VudCgpLHUuc2hvd1ZlbmRvcnNMaXN0KG51bGwsITApLEQuaXNQQ1Zpc2libGU/WzMsM106WzQsdS5zaG93Q29va2llU2V0dGluZ3NIYW5kbGVyKHQpXTtjYXNlIDI6ZS5zZW50KCksZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0sci5wcm90b3R5cGUuZmV0Y2hBbmRTZXR1cFBDPWZ1bmN0aW9uKCl7cmV0dXJuIFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIEEodGhpcyxmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBiLm1vZHVsZUluaXRpYWxpemVyLklzU3VwcHJlc3NQQyYmMD09PW0oIiIrdS5QQ19TRUxFQ1RPUikubGVuZ3RoP1s0LGp0LmdldFBjQ29udGVudCgpXTpbMywyXTtjYXNlIDE6dD1lLnNlbnQoKSxGcy5wcmVmZXJlbmNlQ2VudGVyR3JvdXA9e25hbWU6dC5uYW1lLGh0bWw6YXRvYih0Lmh0bWwpLGNzczp0LmNzc30sYi5pc1YyVGVtcGxhdGU9Ty5QQ1RlbXBsYXRlVXBncmFkZSYmL290UGNQYW5lbHxvdFBjQ2VudGVyfG90UGNUYWIvLnRlc3QodC5uYW1lKSwodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25ldHJ1c3Qtc3R5bGUiKSkuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudCh0LmlubmVySFRNTCtGcy5wcmVmZXJlbmNlQ2VudGVyR3JvdXAuY3NzKSx0LmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQodC5pbm5lckhUTUwrcG8uYWRkQ3VzdG9tUHJlZmVyZW5jZUNlbnRlckNTUygpKSxHLmluc2VydFBjSHRtbCgpLHUuaW5pdGlhbGlzZUNvbnNlbnROb3RpY2VIYW5kbGVycygpLE8uSXNJYWJFbmFibGVkJiZnLkluaXRpYWxpemVWZW5kb3JMaXN0KCksZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gMCE9PW0oIiIrdS5QQ19TRUxFQ1RPUikubGVuZ3RoJiZPLlBDVGVtcGxhdGVVcGdyYWRlJiYoKHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LXBjLXNkayAub3Qtb3B0b3V0LXNpZ25hbCIpKS5xdWVyeVNlbGVjdG9yKCJzcGFuIikuaW5uZXJUZXh0PWguZ2V0T3B0T3V0U2lnbmFsVGV4dCghMCksRy5zZXRPcHRPdXRTaWduYWxWaXNpYmlsaXR5KHQpKSxbMl19fSl9KX0sci5wcm90b3R5cGUuc2V0VmVuZG9yQ29udGVudD1mdW5jdGlvbigpe20oIiIrdS5GSUxURVJfQ09VTlRfU0VMRUNUT1IpLnRleHQoRC5maWx0ZXJCeUlBQkNhdGVnb3JpZXMubGVuZ3RoLnRvU3RyaW5nKCkpLGcubG9hZFZlbmRvckxpc3QoIiIsRC5maWx0ZXJCeUlBQkNhdGVnb3JpZXMpLE8uVXNlR29vZ2xlVmVuZG9ycyYmKEQudmVuZG9yRG9tSW5pdD9nLnJlc2V0QWRkdGxWZW5kb3JzKCk6KGcuaW5pdEdvb2dsZVZlbmRvcnMoKSxtKCIiK3UuUENfU0VMRUNUT1IpLm9uKCJjbGljayIsIi5vdC1hY2MtY250ciA+IGJ1dHRvbiIsdS50b2dnbGVBY2NvcmRpb25TdGF0dXMuYmluZCh0aGlzKSkpKSxELnZlbmRvckRvbUluaXR8fChELnZlbmRvckRvbUluaXQ9ITAsdS5pbml0aWFsaXNlTGVnSW50QnRuSGFuZGxlcnMoKSxPLlVzZUdvb2dsZVZlbmRvcnMmJih1LmluaXRpYWxpc2VBZGR0bFZlbkhhbmRsZXIoKSx1LmJpbmRTZWxBbGxIYW5kbGVycygpKSksRC5zaG93R2VuZXJhbFZlbmRvcnMmJiFELmdlblZlbmRvckRvbUluaXQmJihELmdlblZlbmRvckRvbUluaXQ9ITAsZy5pbml0R2VuVmVuZG9ycygpLHUuaW5pdGlhbGl6ZUdlblZlbkhhbmRsZXJzKCksTy5Vc2VHb29nbGVWZW5kb3JzfHwodS5iaW5kU2VsQWxsSGFuZGxlcnMoKSxtKCIiK3UuUENfU0VMRUNUT1IpLm9uKCJjbGljayIsIi5vdC1hY2MtY250ciA+IGJ1dHRvbiIsdS50b2dnbGVBY2NvcmRpb25TdGF0dXMuYmluZCh0aGlzKSkpKX0sci5wcm90b3R5cGUuYWRkRXZlbnRBZGRpdGlvbmFsVGVjaG5vbG9naWVzPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI29uZXRydXN0LXBjLXNkayAub3QtYWNjLWNudHIub3QtYWRkLXRlY2ggPiBidXR0b24iKTswPGUubGVuZ3RoJiYobShlKS5vZmYoImNsaWNrIix1LnRvZ2dsZUFjY29yZGlvblN0YXR1cyksbShlKS5vbigiY2xpY2siLHUudG9nZ2xlQWNjb3JkaW9uU3RhdHVzKSl9LHIucHJvdG90eXBlLnNob3dWZW5kb3JzTGlzdD1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0hMSksRC5jb29raWVMaXN0VHlwZT1udWxsLHUuaGlkZUNhdGVnb3J5Q29udGFpbmVyKCExKSx5bi5hZGRPVENzc1Byb3BlcnRpZXNUb0JvZHkoaG4uUEMse30pLEQuc2hvd1ZlbmRvclNlcnZpY2U/ZnIuc2hvd1ZTTGlzdCgpOih0fHwodD1lLmdldEF0dHJpYnV0ZSgiZGF0YS1wYXJlbnQtaWQiKSkmJih0PXkuZ2V0R3JvdXBCeUlkKHQpKSYmKHQ9Rih0LlN1Ykdyb3VwcyxbdF0pLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybi0xPEx0LmluZGV4T2YodC5UeXBlKSYmZS5wdXNoKHQuQ3VzdG9tR3JvdXBJZCksZX0sW10pLEQuZmlsdGVyQnlJQUJDYXRlZ29yaWVzPUYoRC5maWx0ZXJCeUlBQkNhdGVnb3JpZXMsdCkpLHUuc2V0VmVuZG9yQ29udGVudCgpLE5uLnVwZGF0ZUZpbHRlclNlbGVjdGlvbighMSkpLEQucGNMYXllcj1yZS5WZW5kb3JMaXN0LGUmJkdvLnNldFBDRm9jdXMoR28uZ2V0UENFbGVtZW50cygpKSx0aGlzLnNldFNlYXJjaElucHV0Rm9jdXMoKSwhMX0sci5wcm90b3R5cGUuc2hvd0lsbHVzdHJhdGlvbnM9ZnVuY3Rpb24oZSl7ZT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1wYXJlbnQtaWQiKSxlPXkuZ2V0R3JvdXBCeUlkKGUpO0QuY29va2llTGlzdFR5cGU9bnVsbCxELnBjTGF5ZXI9cmUuSWFiSWxsdXN0cmF0aW9ucyx1LmFkZEhpZGVDbGFzc0NvbnRhaW5lcigpLGRyLnNob3dJbGx1c3RyYXRpb25zKGUuR3JvdXBOYW1lLGUuSWFiSWxsdXN0cmF0aW9ucyksR28uc2V0UENGb2N1cyhHby5nZXRQQ0VsZW1lbnRzKCkpfSxyLnByb3RvdHlwZS5hZGRIaWRlQ2xhc3NDb250YWluZXI9ZnVuY3Rpb24oKXt2YXIgZT1fLnBjTmFtZTtPLlBDVGVtcGxhdGVVcGdyYWRlP20oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfQ29udGVudCkuYWRkQ2xhc3MoIm90LWhpZGUiKTptKCIjb25ldHJ1c3QtcGMtc2RrIC5vdC1tYWluLWNvbnRlbnQiKS5oaWRlKCksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfTGlzdCkucmVtb3ZlQ2xhc3MoIm90LWhpZGUiKSxlIT09cnQmJmUhPT1vdCYmbSgiI29uZXRydXN0LXBjLXNkayAjY2xvc2UtcGMtYnRuLWhhbmRsZXIubWFpbiIpLmhpZGUoKSxlPT09b3QmJmQobSgiIit1LlBDX1NFTEVDVE9SKS5lbFswXSwnaGVpZ2h0OiAiIjsnLCEwKX0sci5wcm90b3R5cGUubG9hZENvb2tpZUxpc3Q9ZnVuY3Rpb24oZSl7RC5maWx0ZXJCeUNhdGVnb3JpZXM9W10sdS5oaWRlQ2F0ZWdvcnlDb250YWluZXIoITApO3ZhciB0LGU9ZSYmZS5nZXRBdHRyaWJ1dGUoImRhdGEtcGFyZW50LWlkIik7cmV0dXJuIGUmJih0PXkuZ2V0R3JvdXBCeUlkKGUpLEQuZmlsdGVyQnlDYXRlZ29yaWVzLnB1c2goZSksdC5TdWJHcm91cHMubGVuZ3RoKSYmdC5TdWJHcm91cHMuZm9yRWFjaChmdW5jdGlvbihlKXstMT09PUx0LmluZGV4T2YoZS5UeXBlKSYmKGU9ZS5DdXN0b21Hcm91cElkLEQuZmlsdGVyQnlDYXRlZ29yaWVzLmluZGV4T2YoZSk8MCkmJkQuZmlsdGVyQnlDYXRlZ29yaWVzLnB1c2goZSl9KSxnLmxvYWRIb3N0TGlzdCgiIixELmZpbHRlckJ5Q2F0ZWdvcmllcyksRC5zaG93VHJhY2tpbmdUZWNoJiZ1LmFkZEV2ZW50QWRkaXRpb25hbFRlY2hub2xvZ2llcygpLG0oIiIrdS5GSUxURVJfQ09VTlRfU0VMRUNUT1IpLnRleHQoRC5maWx0ZXJCeUNhdGVnb3JpZXMubGVuZ3RoLnRvU3RyaW5nKCkpLE5uLnVwZGF0ZUZpbHRlclNlbGVjdGlvbighMCksRC5wY0xheWVyPXJlLkNvb2tpZUxpc3QsR28uc2V0UENGb2N1cyhHby5nZXRQQ0VsZW1lbnRzKCkpLHRoaXMuc2V0U2VhcmNoSW5wdXRGb2N1cygpLCExfSxyLnByb3RvdHlwZS5zZWxlY3RBbGxWZW5kb3JzTGVnSW50SGFuZGxlcj1mdW5jdGlvbihlKXt2YXIgdD1tKCIjb25ldHJ1c3QtcGMtc2RrICMiK1QuUF9TZWxfQWxsX1ZlbmRvcl9MZWdfRWwpLmVsWzBdLG89dC5jbGFzc0xpc3QuY29udGFpbnMoImxpbmUtdGhyb3VnaCIpLG49bShULlBfVmVuZG9yX0NvbnRhaW5lcisnIGxpOm5vdChbc3R5bGU9ImRpc3BsYXk6IG5vbmU7Il0pIC52ZW5kb3ItbGVnLWNoZWNrYm94LWhhbmRsZXInKS5lbCxyPWUudGFyZ2V0LmNoZWNrZWQsaT17fTtELnZlbmRvcnMuc2VsZWN0ZWRMZWdJbnRWZW5kb3JzLm1hcChmdW5jdGlvbihlLHQpe2lbZS5zcGxpdCgiOiIpWzBdXT10fSk7Zm9yKHZhciBzPTA7czxuLmxlbmd0aDtzKyspe3Yuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLG5bc10sciksTy5QQ1Nob3dDb25zZW50TGFiZWxzJiYobltzXS5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5vdC1sYWJlbC1zdGF0dXMiKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KHI/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCkpO3ZhciBhPW5bc10uZ2V0QXR0cmlidXRlKCJsZWctdmVuZG9yaWQiKSxsPWlbYV07dm9pZCAwPT09bCYmKGw9YSksRC52ZW5kb3JzLnNlbGVjdGVkTGVnSW50VmVuZG9yc1tsXT1hKyI6IityfW8mJnQuY2xhc3NMaXN0LnJlbW92ZSgibGluZS10aHJvdWdoIiksdi5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwsZS50YXJnZXQsciksdi5zZXRBcmlhQ2hlY2tlZEF0dHJpYnV0ZShudWxsLGUudGFyZ2V0LHIpfSxyLnByb3RvdHlwZS5zZWxBbGxBZHRsVmVuSGFuZGxlcj1mdW5jdGlvbihlKXtpZigidHJ1ZSI9PT1lLnRhcmdldC5nZXRBdHRyaWJ1dGUodGhpcy5BcmlhRGlzYWJsZWQpKWUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2V7Zm9yKHZhciB0PW0oIiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1hZHRsdmVuY250ciIpLmVsWzBdLG89dC5jbGFzc0xpc3QuY29udGFpbnMoImxpbmUtdGhyb3VnaCIpLG49bSgiI29uZXRydXN0LXBjLXNkayAub3QtYWRkdGx2ZW4tY2hrYm94LWhhbmRsZXIiKS5lbCxyPWUudGFyZ2V0LmNoZWNrZWQsaT0wO2k8bi5sZW5ndGg7aSsrKXYuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLG5baV0sciksTy5QQ1Nob3dDb25zZW50TGFiZWxzJiYobltpXS5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5vdC1sYWJlbC1zdGF0dXMiKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KHI/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCkpO3I/Ty5Vc2VHb29nbGVWZW5kb3JzJiZPYmplY3Qua2V5cyhELmFkZHRsVmVuZG9yc0xpc3QpLmZvckVhY2goZnVuY3Rpb24oZSl7RC5hZGR0bFZlbmRvcnMudmVuZG9yU2VsZWN0ZWRbZV09ITB9KTpELmFkZHRsVmVuZG9ycy52ZW5kb3JTZWxlY3RlZD17fSxvJiZ0LmNsYXNzTGlzdC5yZW1vdmUoImxpbmUtdGhyb3VnaCIpfX0sci5wcm90b3R5cGUuc2VsZWN0QWxsR2VuVmVuSGFuZGxlcj1mdW5jdGlvbihlKXt2YXIgdDsidHJ1ZSI9PT1lLnRhcmdldC5nZXRBdHRyaWJ1dGUodGhpcy5BcmlhRGlzYWJsZWQpPyhlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk6KHQ9ZS50YXJnZXQuY2hlY2tlZCx1LnNlbGVjdEFsbEhhbmRsZXIoe3NlbEFsbEVsOiIjb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtZ252ZW5jbnRyIix2ZW5kb3JCb3hlczoiI29uZXRydXN0LXBjLXNkayAub3QtZ252ZW4tY2hrYm94LWhhbmRsZXIifSwiZ2VudmVuIix0KSx2LnNldENoZWNrZWRBdHRyaWJ1dGUobnVsbCxlLnRhcmdldCx0KSx2LnNldEFyaWFDaGVja2VkQXR0cmlidXRlKG51bGwsZS50YXJnZXQsdCkpfSxyLnByb3RvdHlwZS5zZWxlY3RBbGxIYW5kbGVyPWZ1bmN0aW9uKGUsdCxvKXtmb3IodmFyIG49bShlLnNlbEFsbEVsKS5lbFswXSxyPW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJsaW5lLXRocm91Z2giKSxpPW0oZS52ZW5kb3JCb3hlcykuZWwscz0wO3M8aS5sZW5ndGg7cysrKSJnZW52ZW4iPT09dCYmIW8mJkQuYWx3YXlzQWN0aXZlR2VuVmVuZG9ycy5pbmNsdWRlcyhpW3NdLmdldEF0dHJpYnV0ZSgiZ24tdmlkIikpPyh2LnNldERpc2FibGVkQXR0cmlidXRlKG51bGwsaVtzXSwhMCksdi5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwsaVtzXSwhMCkpOnYuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLGlbc10sbyksTy5QQ1Nob3dDb25zZW50TGFiZWxzJiYoaVtzXS5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5vdC1sYWJlbC1zdGF0dXMiKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KG8/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCkpO28/Imdvb2dsZXZlbiI9PT10JiZPLlVzZUdvb2dsZVZlbmRvcnM/T2JqZWN0LmtleXMoRC5hZGR0bFZlbmRvcnNMaXN0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe0QuYWRkdGxWZW5kb3JzLnZlbmRvclNlbGVjdGVkW2VdPSEwfSk6ImdlbnZlbiI9PT10JiZELnNob3dHZW5lcmFsVmVuZG9ycyYmTy5HZW5lcmFsVmVuZG9ycy5mb3JFYWNoKGZ1bmN0aW9uKGUpe0QuZ2VuVmVuZG9yc0NvbnNlbnRbZS5WZW5kb3JDdXN0b21JZF09ITB9KToiZ29vZ2xldmVuIj09PXQ/RC5hZGR0bFZlbmRvcnMudmVuZG9yU2VsZWN0ZWQ9e306KEQuZ2VuVmVuZG9yc0NvbnNlbnQ9e30sRC5hbHdheXNBY3RpdmVHZW5WZW5kb3JzLmZvckVhY2goZnVuY3Rpb24oZSl7RC5nZW5WZW5kb3JzQ29uc2VudFtlXT0hMH0pKSxyJiZuLmNsYXNzTGlzdC5yZW1vdmUoImxpbmUtdGhyb3VnaCIpfSxyLnByb3RvdHlwZS5TZWxlY3RBbGxWZW5kb3JDb25zZW50SGFuZGxlcj1mdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldC5jaGVja2VkO2lmKEQuc2hvd1ZlbmRvclNlcnZpY2UpZnIudG9nZ2xlVmVuZG9ycyh0KTtlbHNle3ZhciBvPW0oIiNvbmV0cnVzdC1wYy1zZGsgIyIrVC5QX1NlbF9BbGxfVmVuZG9yX0NvbnNlbnRfRWwpLmVsWzBdLG49by5jbGFzc0xpc3QuY29udGFpbnMoImxpbmUtdGhyb3VnaCIpLHI9bShULlBfVmVuZG9yX0NvbnRhaW5lcisnIGxpOm5vdChbc3R5bGU9ImRpc3BsYXk6IG5vbmU7Il0pIC52ZW5kb3ItY2hlY2tib3gtaGFuZGxlcicpLmVsLGk9e307RC52ZW5kb3JzLnNlbGVjdGVkVmVuZG9ycy5tYXAoZnVuY3Rpb24oZSx0KXtpW2Uuc3BsaXQoIjoiKVswXV09dH0pO2Zvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKXt2LnNldENoZWNrZWRBdHRyaWJ1dGUobnVsbCxyW3NdLHQpLE8uUENTaG93Q29uc2VudExhYmVscyYmKHJbc10ucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCIub3QtbGFiZWwtc3RhdHVzIikuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudCh0P08uUENBY3RpdmVUZXh0Ok8uUENJbmFjdGl2ZVRleHQpKTt2YXIgYT1yW3NdLmdldEF0dHJpYnV0ZSgidmVuZG9yaWQiKSxsPWlbYV07dm9pZCAwPT09bCYmKGw9YSksRC52ZW5kb3JzLnNlbGVjdGVkVmVuZG9yc1tsXT1hKyI6Iit0fW4mJm8uY2xhc3NMaXN0LnJlbW92ZSgibGluZS10aHJvdWdoIil9di5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwsZS50YXJnZXQsdCksdi5zZXRBcmlhQ2hlY2tlZEF0dHJpYnV0ZShudWxsLGUudGFyZ2V0LHQpfSxyLnByb3RvdHlwZS5vblZlbmRvclRvZ2dsZT1mdW5jdGlvbihvLGUpe3ZhciB0PUQudmVuZG9ycyxuPUQuYWRkdGxWZW5kb3JzLHI9ZT09PWxlLkxJP3Quc2VsZWN0ZWRMZWdJbnRWZW5kb3JzOmU9PT1sZS5BZGR0bENvbnNlbnQ/W106dC5zZWxlY3RlZFZlbmRvcnMsaT0hMSxzPU51bWJlcihvKTtyLnNvbWUoZnVuY3Rpb24oZSx0KXtlPWUuc3BsaXQoIjoiKTtpZihlWzBdPT09bylyZXR1cm4gcz10LGk9InRydWUiPT09ZVsxXSwhMH0pLGU9PT1sZS5MST8oVG8udHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50KHhvLGk/YW46bG4sdC5saXN0LmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUudmVuZG9ySWQ9PT1vfSkudmVuZG9yTmFtZSsiOiAiK0UuSWRQYXR0ZXJucy5QdXIrbyksdC5zZWxlY3RlZExlZ0ludFZlbmRvcnNbc109bysiOiIrIWksXy5sZWdJbnRTZXR0aW5ncy5QU2hvd0xlZ0ludEJ0bnx8Zy52ZW5kb3JMZWdJbnRUb2dnbGVFdmVudCgpKTplPT09bGUuQWRkdGxDb25zZW50PyhuLnZlbmRvclNlbGVjdGVkW29dP2RlbGV0ZSBuLnZlbmRvclNlbGVjdGVkW29dOm4udmVuZG9yU2VsZWN0ZWRbb109ITAsZy52ZW5BZHRsU2VsQWxsVGdsRXZlbnQoKSk6KFRvLnRyaWdnZXJHb29nbGVBbmFseXRpY3NFdmVudCh4byxpP3NuOnJuLHQubGlzdC5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZlbmRvcklkPT09b30pLnZlbmRvck5hbWUrIjogIitFLklkUGF0dGVybnMuUHVyK28pLHQuc2VsZWN0ZWRWZW5kb3JzW3NdPW8rIjoiKyFpLGcudmVuZG9yc0xpc3RFdmVudCgpKX0sci5wcm90b3R5cGUub25WZW5kb3JEaXNjbG9zdXJlPWZ1bmN0aW9uKHIpe3ZhciBpO3JldHVybiBQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0LG8sbjtyZXR1cm4gQSh0aGlzLGZ1bmN0aW9uKGUpe3N3aXRjaChlLmxhYmVsKXtjYXNlIDA6cmV0dXJuKHQ9RC5kaXNjVmVuZG9ycylbcl0uaXNGZXRjaGVkP1szLDRdOih0W3JdLmlzRmV0Y2hlZD0hMCxvPXRbcl0uZGlzY2xvc3VyZVVybCxuPXZvaWQgMCxudWxsIT0oaT1iLm1vZHVsZUluaXRpYWxpemVyKSYmaS5EaXNjbG9zdXJlQ0ROVXJsPyhvPWIubW9kdWxlSW5pdGlhbGl6ZXIuRGlzY2xvc3VyZUNETlVybCsiLyIrcisiLmpzb24iLFs0LGp0LmdldFN0b3JhZ2VEaXNjbG9zdXJlKG8pXSk6WzMsMl0pO2Nhc2UgMTppZihuPWUuc2VudCgpKXJldHVyblsyLGcudXBkYXRlVmVuZG9yRGlzY2xvc3VyZShyLG4pXTtvPXRbcl0uZGlzY2xvc3VyZVVybCxlLmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LGp0LmdldFN0b3JhZ2VEaXNjbG9zdXJlKG8pXTtjYXNlIDM6cmV0dXJuIG49ZS5zZW50KCksWzIsZy51cGRhdGVWZW5kb3JEaXNjbG9zdXJlKHIsbildO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0sci5wcm90b3R5cGUudGdsRmx0ck9wdGlvbkhhbmRsZXI9ZnVuY3Rpb24oZSl7ZSYmZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJjYXRlZ29yeS1maWx0ZXItaGFuZGxlciIpJiZ2LnNldENoZWNrZWRBdHRyaWJ1dGUobnVsbCxlLnRhcmdldCxlLnRhcmdldC5jaGVja2VkKX0sci5wcm90b3R5cGUuc2VsZWN0VmVuZG9yc0dyb3VwSGFuZGxlcj1mdW5jdGlvbihlKXt1LnRvZ2dsZUFjY29yZGlvblN0YXR1cyhlKTt2YXIgdD1lLnRhcmdldC5nZXRBdHRyaWJ1dGUoImxlZy12ZW5kb3JpZCIpLG89ZS50YXJnZXQuZ2V0QXR0cmlidXRlKCJ2ZW5kb3JpZCIpLG49ZS50YXJnZXQuZ2V0QXR0cmlidXRlKCJhZGR0bC12aWQiKSxyPWUudGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGlzYy12aWQiKTt0P3Uub25WZW5kb3JUb2dnbGUodCxsZS5MSSk6bz91Lm9uVmVuZG9yVG9nZ2xlKG8sbGUuQ29uc2VudCk6biYmdS5vblZlbmRvclRvZ2dsZShuLGxlLkFkZHRsQ29uc2VudCksciYmdS5vblZlbmRvckRpc2Nsb3N1cmUociksKHR8fG98fG4pJiYodi5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwsZS50YXJnZXQsZS50YXJnZXQuY2hlY2tlZCksTy5QQ1Nob3dDb25zZW50TGFiZWxzKSYmKGUudGFyZ2V0LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcigiLm90LWxhYmVsLXN0YXR1cyIpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoZS50YXJnZXQuY2hlY2tlZD9PLlBDQWN0aXZlVGV4dDpPLlBDSW5hY3RpdmVUZXh0KSl9LHIucHJvdG90eXBlLnRvZ2dsZVZlbmRvckZpbHRlcnNIYW5kbGVyPWZ1bmN0aW9uKCl7dmFyIGUsdD0hMSxvPW0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfRmx0cl9Nb2RhbCkuZWxbMF07c3dpdGNoKF8ucGNOYW1lKXtjYXNlIG50OmNhc2UgdHQ6Y2FzZSBvdDpjYXNlIGl0Oih0PSJibG9jayI9PT1vLnN0eWxlLmRpc3BsYXkpPyh1LmNsb3NlRmlsdGVyKCksdS5zZXRGaWx0ZXJCdXR0b25FeHBhbmRlZCghMSkpOihlPW0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVHJpYW5nbGUpLmVsWzBdLG0oZSkuYXR0cigic3R5bGUiLCJkaXNwbGF5OiBibG9jazsiKSxtKG8pLmF0dHIoInN0eWxlIiwiZGlzcGxheTogYmxvY2s7IiksZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChvLnF1ZXJ5U2VsZWN0b3JBbGwoIltocmVmXSwgaW5wdXQsIGJ1dHRvbiIpKSxHby5zZXRQQ0ZvY3VzKGUpLHUuc2V0RmlsdGVyQnV0dG9uRXhwYW5kZWQoITApKTticmVhaztjYXNlIHJ0Ojg5Njx3aW5kb3cuaW5uZXJXaWR0aHx8ODk2PHdpbmRvdy5zY3JlZW4uaGVpZ2h0P2Qobywid2lkdGg6IDQwMHB4OyIsITApOmQobywiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsiKSxvLnF1ZXJ5U2VsZWN0b3IoIi5vdC1jaGVja2JveCBpbnB1dCIpLmZvY3VzKCk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59Yi5pc1YyVGVtcGxhdGUmJiF0JiYobSgiI29uZXRydXN0LXBjLXNkayIpLmFkZENsYXNzKCJvdC1zaHctZmx0ciIpLG0oIiNvbmV0cnVzdC1wYy1zZGsgLm90LWZsdHItc2NybGNudCIpLmVsWzBdLnNjcm9sbFRvcD0wKX0sci5wcm90b3R5cGUuY2xlYXJGaWx0ZXJzSGFuZGxlcj1mdW5jdGlvbigpe3Uuc2V0QXJpYUxhYmVsZm9yQnV0dG9uSW5GaWx0ZXIoTy5QQ2VudGVyRmlsdGVyQ2xlYXJlZEFyaWEpO2Zvcih2YXIgZT1tKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0ZsdHJfTW9kYWwrIiBpbnB1dCIpLmVsLHQ9MDt0PGUubGVuZ3RoO3QrKyl2LnNldENoZWNrZWRBdHRyaWJ1dGUobnVsbCxlW3RdLCExKTt1LmlzQ29va2llTGlzdD9ELmZpbHRlckJ5Q2F0ZWdvcmllcz1bXTpELmZpbHRlckJ5SUFCQ2F0ZWdvcmllcz1bXX0sci5wcm90b3R5cGUuY2FuY2VsRmlsdGVySGFuZGxlcj1mdW5jdGlvbigpe0Quc2hvd1ZlbmRvclNlcnZpY2U/ZnIuY2FuY2VsRmlsdGVyKCk6dS5pc0Nvb2tpZUxpc3Q/Tm4uY2FuY2VsSG9zdEZpbHRlcigpOmcuY2FuY2VsVmVuZG9yRmlsdGVyKCksdS5jbG9zZUZpbHRlcigpLHUuZm9jdXNGaWx0ZXJCdXR0b24oKX0sci5wcm90b3R5cGUuYXBwbHlGaWx0ZXJIYW5kbGVyPWZ1bmN0aW9uKCl7dmFyIGU7dS5zZXRBcmlhTGFiZWxmb3JCdXR0b25JbkZpbHRlcihPLlBDZW50ZXJGaWx0ZXJBcHBsaWVkQXJpYSksRC5zaG93VmVuZG9yU2VydmljZT8oZT1mci5nZXRHcm91cHNGaWx0ZXIoKSxmci5maWx0ZXJWZW5kb3JCeUdyb3VwKGUpKTp1LmlzQ29va2llTGlzdD8oZT1Obi51cGRhdGVIb3N0RmlsdGVyTGlzdCgpLGcubG9hZEhvc3RMaXN0KCIiLGUpLEQuc2hvd1RyYWNraW5nVGVjaCYmdS5hZGRFdmVudEFkZGl0aW9uYWxUZWNobm9sb2dpZXMoKSk6KGU9Zy51cGRhdGVWZW5kb3JGaWx0ZXJMaXN0KCksZy5sb2FkVmVuZG9yTGlzdCgiIixlKSksbSgiIit1LkZJTFRFUl9DT1VOVF9TRUxFQ1RPUikudGV4dChTdHJpbmcoZS5sZW5ndGgpKSx1LmNsb3NlRmlsdGVyKCksdS5mb2N1c0ZpbHRlckJ1dHRvbigpLGcucGxheVNlYXJjaFN0YXR1cyh1LmlzQ29va2llTGlzdCl9LHIucHJvdG90eXBlLnNldEFyaWFMYWJlbGZvckJ1dHRvbkluRmlsdGVyPWZ1bmN0aW9uKGUpe3ZhciB0PUQuaXNQQ1Zpc2libGU/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LXBjLXNkayBzcGFuW2FyaWEtbGl2ZV0iKTpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3QtYmFubmVyLXNkayBzcGFuW2FyaWEtbGl2ZV0iKTtpZighdCl7KHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKS5jbGFzc0xpc3QuYWRkKCJvdC1zY3JuLXJkciIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWF0b21pYyIsInRydWUiKTt2YXIgbz12b2lkIDA7aWYoRC5pc1BDVmlzaWJsZT9vPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHUucGNTREtTZWxlY3Rvcik6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodS5iYW5uZXJTZWxlY3RvcikmJihvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHUuYmFubmVyU2VsZWN0b3IpKSwhbylyZXR1cm47by5hcHBlbmRDaGlsZCh0KX10LnNldEF0dHJpYnV0ZSgiYXJpYS1hdG9taWMiLCJ0cnVlIiksdC5zZXRBdHRyaWJ1dGUoImFyaWEtcmVsZXZhbnQiLCJhZGRpdGlvbnMiKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIiwiYXNzZXJ0aXZlIiksdC5zZXRBdHRyaWJ1dGUoU3QsZSksdS50aW1lQ2FsbGJhY2smJmNsZWFyVGltZW91dCh1LnRpbWVDYWxsYmFjayksdS50aW1lQ2FsbGJhY2s9c2V0VGltZW91dChmdW5jdGlvbigpe3UudGltZUNhbGxiYWNrPW51bGwsdC5zZXRBdHRyaWJ1dGUoU3QsIiIpfSw5MDApfSxyLnByb3RvdHlwZS5zZXRQY0xpc3RDb250YWluZXJIZWlnaHQ9ZnVuY3Rpb24oKXttKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0NvbnRlbnQpLmVsWzBdLmNsYXNzTGlzdC5jb250YWlucygib3QtaGlkZSIpP2QobSgiIit1LlBDX1NFTEVDVE9SKS5lbFswXSwnaGVpZ2h0OiAiIjsnLCEwKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGU9d2luZG93LmlubmVySGVpZ2h0Ozc2ODw9d2luZG93LmlubmVyV2lkdGgmJjYwMDw9d2luZG93LmlubmVySGVpZ2h0JiYoZT0uOCp3aW5kb3cuaW5uZXJIZWlnaHQpLCFtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0NvbnRlbnQpLmVsWzBdLnNjcm9sbEhlaWdodHx8bSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9Db250ZW50KS5lbFswXS5zY3JvbGxIZWlnaHQ+PWU/ZChtKCIiK3UuUENfU0VMRUNUT1IpLmVsWzBdLCJoZWlnaHQ6ICIrZSsicHg7IiwhMCk6ZChtKCIiK3UuUENfU0VMRUNUT1IpLmVsWzBdLCJoZWlnaHQ6IGF1dG87IiwhMCl9KX0sci5wcm90b3R5cGUuY2hhbmdlU2VsZWN0ZWRUYWI9ZnVuY3Rpb24oZSl7dmFyIHQsbz1tKCIjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1tZW51LXN3aXRjaC1oYW5kbGVyIiksbj0wLHI9bShvLmVsWzBdKTtvLmVhY2goZnVuY3Rpb24oZSx0KXttKGUpLmVsLmNsYXNzTGlzdC5jb250YWlucyhULlBfQWN0aXZlX01lbnUpJiYobj10LG0oZSkuZWwuY2xhc3NMaXN0LnJlbW92ZShULlBfQWN0aXZlX01lbnUpLHI9bShlKSl9KSxlLmtleUNvZGU9PT1pZS5Eb3duQXJyb3c/dD1uKzE+PW8uZWwubGVuZ3RoP20oby5lbFswXSk6bShvLmVsW24rMV0pOmUua2V5Q29kZT09PWllLlVwQXJyb3cmJih0PW0obi0xPDA/by5lbFtvLmVsLmxlbmd0aC0xXTpvLmVsW24tMV0pKSx0aGlzLnRhYk1lbnVUb2dnbGUodCxyKX0sci5wcm90b3R5cGUuY2hhbmdlU2VsZWN0ZWRUYWJWMj1mdW5jdGlvbihlKXt2YXIgdCxvPWUudGFyZ2V0LnBhcmVudEVsZW1lbnQsZT0oZS5rZXlDb2RlPT09aWUuRG93bkFycm93P3Q9by5uZXh0RWxlbWVudFNpYmxpbmd8fG8ucGFyZW50RWxlbWVudC5maXJzdENoaWxkOmUua2V5Q29kZT09PWllLlVwQXJyb3cmJih0PW8ucHJldmlvdXNFbGVtZW50U2libGluZ3x8by5wYXJlbnRFbGVtZW50Lmxhc3RDaGlsZCksdC5xdWVyeVNlbGVjdG9yKCIuY2F0ZWdvcnktbWVudS1zd2l0Y2gtaGFuZGxlciIpKTtlLmZvY3VzKCksdGhpcy5ncm91cFRhYkNsaWNrKGUpfSxyLnByb3RvdHlwZS5jYXRlZ29yeU1lbnVTd2l0Y2hIYW5kbGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBvPXRoaXMsZT1tKCIjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1tZW51LXN3aXRjaC1oYW5kbGVyIikuZWwsbj10aGlzLHQ9MDt0PGUubGVuZ3RoO3QrKykodD0+e2VbdF0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG4uZ3JvdXBUYWJDbGljayksZVt0XS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihlKXtpZigxPD10JiZlLnNoaWZ0S2V5JiY5PT09ZS5rZXlDb2RlJiYhTy5TaG93UHJlZmVyZW5jZUNlbnRlckNsb3NlQnV0dG9uJiZPLlBDTGF5b3V0LlRhYiYmKGUucHJldmVudERlZmF1bHQoKSxHby5sYXN0SXRlbS5mb2N1cygpKSwzMj09PWUua2V5Q29kZXx8InNwYWNlIj09PWUuY29kZSlyZXR1cm4gby5ncm91cFRhYkNsaWNrKGUuY3VycmVudFRhcmdldCksZS5wcmV2ZW50RGVmYXVsdCgpLCExfSl9KSh0KX0sci5wcm90b3R5cGUuZ3JvdXBUYWJDbGljaz1mdW5jdGlvbihlKXt2YXIgdD1tKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0dycF9Db250YWluZXIpLmVsWzBdLG89dC5xdWVyeVNlbGVjdG9yKCIuIitULlBfQWN0aXZlX01lbnUpLGU9ZS5jdXJyZW50VGFyZ2V0fHxlLG49ZS5nZXRBdHRyaWJ1dGUoImFyaWEtY29udHJvbHMiKTtvLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLC0xKSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsITEpLG8uY2xhc3NMaXN0LnJlbW92ZShULlBfQWN0aXZlX01lbnUpLHQucXVlcnlTZWxlY3RvcihULlBfRGVzY19Db250YWluZXIrIjpub3QoLm90LWhpZGUpIikuY2xhc3NMaXN0LmFkZCgib3QtaGlkZSIpLHQucXVlcnlTZWxlY3RvcigiIyIrbikuY2xhc3NMaXN0LnJlbW92ZSgib3QtaGlkZSIpLGUuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsMCksZS5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLCEwKSxlLmNsYXNzTGlzdC5hZGQoVC5QX0FjdGl2ZV9NZW51KX0sci5wcm90b3R5cGUudGFiTWVudVRvZ2dsZT1mdW5jdGlvbihlLHQpe2UuZWwuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsMCksZS5lbC5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLCEwKSx0LmVsLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLC0xKSx0LmVsLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsITEpLGUuZm9jdXMoKSx0LmVsLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCIiK1QuUF9EZXNjX0NvbnRhaW5lcikuY2xhc3NMaXN0LmFkZCgib3QtaGlkZSIpLGUuZWwucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIiIrVC5QX0Rlc2NfQ29udGFpbmVyKS5jbGFzc0xpc3QucmVtb3ZlKCJvdC1oaWRlIiksZS5lbC5jbGFzc0xpc3QuYWRkKFQuUF9BY3RpdmVfTWVudSl9LHIucHJvdG90eXBlLmNsb3NlRmlsdGVyPWZ1bmN0aW9uKGUpe3ZhciB0LG87dm9pZCAwPT09ZSYmKGU9ITApLGJuLmNoZWNrSWZQY1Nka0NvbnRhaW5lckV4aXN0KCl8fCh0PW0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfRmx0cl9Nb2RhbCkuZWxbMF0sbz1tKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1RyaWFuZ2xlKS5lbFswXSxfLnBjTmFtZT09PXJ0Pzg5Njx3aW5kb3cuaW5uZXJXaWR0aHx8ODk2PHdpbmRvdy5zY3JlZW4uaGVpZ2h0P2QodCwid2lkdGg6IDA7IiwhMCk6ZCh0LCJoZWlnaHQ6IDA7Iik6ZCh0LCJkaXNwbGF5OiBub25lOyIpLG8mJm0obykuYXR0cigic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLGIuaXNWMlRlbXBsYXRlJiZtKCIjb25ldHJ1c3QtcGMtc2RrIikucmVtb3ZlQ2xhc3MoIm90LXNody1mbHRyIiksZSYmR28uc2V0Rmlyc3RBbmRMYXN0KEdvLmdldFBDRWxlbWVudHMoKSkpfSxyLnByb3RvdHlwZS5zZXRCYWNrQnV0dG9uRm9jdXM9ZnVuY3Rpb24oKXttKCIjb25ldHJ1c3QtcGMtc2RrIC5iYWNrLWJ0bi1oYW5kbGVyIikuZWxbMF0uZm9jdXMoKX0sci5wcm90b3R5cGUuc2V0U2VhcmNoSW5wdXRGb2N1cz1mdW5jdGlvbigpe20odS5WRU5ET1JfU0VBUkNIX1NFTEVDVE9SKS5lbFswXS5mb2N1cygpfSxyLnByb3RvdHlwZS5zZXRDZW50ZXJMYXlvdXRGb290ZXJIZWlnaHQ9ZnVuY3Rpb24oKXt2YXIgZT11LnBjO2lmKF8ucGNOYW1lPT09aXQmJmUpe3ZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiIitULlBfRGVzY19Db250YWluZXIpLG89ZS5xdWVyeVNlbGVjdG9yQWxsKCJsaSAuY2F0ZWdvcnktbWVudS1zd2l0Y2gtaGFuZGxlciIpO2lmKCFlLnF1ZXJ5U2VsZWN0b3IoIi5jYXRlZ29yeS1tZW51LXN3aXRjaC1oYW5kbGVyICsgIitULlBfRGVzY19Db250YWluZXIpJiZ3aW5kb3cuaW5uZXJXaWR0aDw9NjQwKWZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKW9bbl0uaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIsdFtuXSk7ZWxzZSBlLnF1ZXJ5U2VsZWN0b3IoIi5jYXRlZ29yeS1tZW51LXN3aXRjaC1oYW5kbGVyICsgIitULlBfRGVzY19Db250YWluZXIpJiY2NDA8d2luZG93LmlubmVyV2lkdGgmJm0oZS5xdWVyeVNlbGVjdG9yKCIub3QtdGFiLWRlc2MiKSkuYXBwZW5kKHQpfXUucGNDZW50ZXJBbmRUYWJDaGVja0J1dHRvbnNPcmRlclNpemVzKCksdS5zZXRQYW5lbExheW91dEJ1dHRvbnNTaXplKCksdS5zZXRNYWluQ29udGVudEhlaWdodCgpfSxyLnByb3RvdHlwZS5wY0NlbnRlckFuZFRhYkNoZWNrQnV0dG9uc09yZGVyU2l6ZXM9ZnVuY3Rpb24oKXt2YXIgZSx0LG8sbixyO08uUENUZW1wbGF0ZVVwZ3JhZGUmJmIuZnAuV2ViQnV0dG9uQ3VzdG9taXNhdGlvbnMmJihfLnBjTmFtZT09PXR0fHxfLnBjTmFtZT09PWl0KSYmKHdpbmRvdy5pbm5lcldpZHRoPD01MDB8fDIwPChudWxsPT0oZT1PLkNvbmZpcm1UZXh0KT92b2lkIDA6ZS5sZW5ndGgpfHwyMDwobnVsbD09KGU9Ty5BbGxvd0FsbFRleHQpP3ZvaWQgMDplLmxlbmd0aCl8fDIwPChudWxsPT0oZT1PLlBDZW50ZXJSZWplY3RBbGxCdXR0b25UZXh0KT92b2lkIDA6ZS5sZW5ndGgpP3Uuc3RhY2tCdXR0b25zKCk6KGU9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih1LlBDX1NFTEVDVE9SKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodS5QQ19GT09URVIpLG89ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih1Lm90UGNDb250YWluZXJTZWxlY3Rvciksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb3QtcGMtbHN0IiksbnVsbCE9KHI9dCkmJnIuc3R5bGUuc2V0UHJvcGVydHkoImhlaWdodCIsImF1dG8iKSxyPWx0LG51bGwhPShlPW51bGw9PShlPWUpP3ZvaWQgMDplLmNsYXNzTGlzdCkmJmUuY29udGFpbnMoIm90LWZ0ci1zdGFja2VkIikmJihyPWF0KSxudWxsIT0oZT10KSYmZS5zdHlsZS5zZXRQcm9wZXJ0eSh1dCxyKyJweCIpLG51bGwhPSh0PW8pJiZ0LnN0eWxlLnNldFByb3BlcnR5KHV0LHIrInB4IiksbnVsbCE9KGU9bikmJmUuc3R5bGUuc2V0UHJvcGVydHkodXQscisicHgiKSkpfSxyLnByb3RvdHlwZS5zZXRQYW5lbExheW91dEJ1dHRvbnNTaXplPWZ1bmN0aW9uKCl7dmFyIGUsdCxvLG4scjtPLlBDVGVtcGxhdGVVcGdyYWRlJiZiLmZwLldlYkJ1dHRvbkN1c3RvbWlzYXRpb25zJiZfLnBjTmFtZT09PW50JiYobz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIub3QtYnRuLWNvbnRhaW5lci5vdC1idXR0b24tb3JkZXItY29udGFpbmVyIikpJiYodD0obnVsbD09KHQ9by5jaGlsZHJlbik/dm9pZCAwOnQubGVuZ3RoKSphdC8zLHQ9TWF0aC5tYXgoY3QsTWF0aC5taW4oYXQsdCkpLG8uY2xhc3NMaXN0LmNvbnRhaW5zKCJvdC1oaWRlIikmJih0PU1hdGgubWluKGR0LHQpKSxvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5vdC1wYy1mb290ZXIiKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvdC1wYy1sc3QiKSxyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodS5vdFBjQ29udGFpbmVyU2VsZWN0b3IpLG51bGwhPShlPW8pJiZlLnN0eWxlLnNldFByb3BlcnR5KCJoZWlnaHQiLCIxMDAlIiksbnVsbCE9KGU9bykmJmUuc3R5bGUuc2V0UHJvcGVydHkoImRpc3BsYXkiLCJmbGV4IiksbnVsbCE9KGU9bykmJmUuc3R5bGUuc2V0UHJvcGVydHkoImZsZXgtZGlyZWN0aW9uIiwiY29sdW1uIiksbnVsbCE9KGU9bykmJmUuc3R5bGUuc2V0UHJvcGVydHkodXQsdCsicHgiKSxudWxsIT0obz1yKSYmby5zdHlsZS5zZXRQcm9wZXJ0eSh1dCx0KyJweCIpLG51bGwhPShlPW4pKSYmZS5zdHlsZS5zZXRQcm9wZXJ0eSh1dCx0KyJweCIpfSxyLnByb3RvdHlwZS5zdGFja0J1dHRvbnM9ZnVuY3Rpb24oKXt2YXIgZSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodS5QQ19GT09URVIpLG89ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih1Lm90UGNDb250YWluZXJTZWxlY3Rvciksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb3QtcGMtbHN0Iikscj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIub3QtYnRuLWNvbnRhaW5lci5vdC1idXR0b24tb3JkZXItY29udGFpbmVyIik7ciYmKGU9KG51bGw9PShlPXIpP3ZvaWQgMDplLmNoaWxkcmVuLmxlbmd0aCkqYXQvMyxlPU1hdGgubWF4KGN0LE1hdGgubWluKGF0LGUpKSxyLmNsYXNzTGlzdC5jb250YWlucygib3QtaGlkZSIpJiYoZT1NYXRoLm1pbihkdCxlKSksbnVsbCE9KHI9dCkmJnIuc3R5bGUuc2V0UHJvcGVydHkoImhlaWdodCIsIjEwMCUiKSxudWxsIT0ocj10KSYmci5zdHlsZS5zZXRQcm9wZXJ0eSh1dCxlKyJweCIpLG51bGwhPSh0PW8pJiZ0LnN0eWxlLnNldFByb3BlcnR5KHV0LGUrInB4IiksbnVsbCE9KHI9bikpJiZyLnN0eWxlLnNldFByb3BlcnR5KHV0LGUrInB4Iil9LHIucHJvdG90eXBlLnNldE1haW5Db250ZW50SGVpZ2h0PWZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLnBjLG89dC5xdWVyeVNlbGVjdG9yKHUuUENfRk9PVEVSKSxuPXQucXVlcnlTZWxlY3RvcigiLm90LXBjLWhlYWRlciIpLHI9Ty5QQ0xheW91dCxpPSh1LnRvZ2dsZUZ0clN0YWNrZWRDbGFzcyh0KSxPLlBDVGVtcGxhdGVVcGdyYWRlfHxyLkNlbnRlcnx8KGU9dC5jbGllbnRIZWlnaHQtby5jbGllbnRIZWlnaHQtbi5jbGllbnRIZWlnaHQtMyxPLlBDVGVtcGxhdGVVcGdyYWRlJiYhci5UYWImJk8uUENlbnRlclZlbmRvckxpc3REZXNjVGV4dCYmKGU9ZS0oKGk9bSgiI3Zkci1sc3QtZHNjIikuZWwpLmxlbmd0aCYmaVswXS5jbGllbnRIZWlnaHQpLTEwKSxkKHQucXVlcnlTZWxlY3RvcigiIitULlBfVmVuZG9yX0xpc3QpLCJoZWlnaHQ6ICIrZSsicHg7IiwhMCkpLHQucXVlcnlTZWxlY3RvcigiIitULlBfQ29udGVudCkpO08uUENUZW1wbGF0ZVVwZ3JhZGUmJnIuQ2VudGVyPyhlPTYwMDx3aW5kb3cuaW5uZXJXaWR0aCYmNDc1PHdpbmRvdy5pbm5lckhlaWdodCwhdGhpcy5wY0JvZHlIZWlnaHQmJmUmJih0aGlzLnBjQm9keUhlaWdodD1pLnNjcm9sbEhlaWdodCksZT8oaT10aGlzLnBjQm9keUhlaWdodCtvLmNsaWVudEhlaWdodCtuLmNsaWVudEhlaWdodCsyMCk+Ljgqd2luZG93LmlubmVySGVpZ2h0fHwwPT09dGhpcy5wY0JvZHlIZWlnaHQ/ZCh0LCJoZWlnaHQ6ICIrLjgqd2luZG93LmlubmVySGVpZ2h0KyJweDsiLCEwKTpkKHQsImhlaWdodDogIitpKyJweDsiLCEwKTpkKHQsImhlaWdodDogOTUlOyIsITApKTp0aGlzLnNldFBDQ29udGVudEFuZExpc3RIZWlnaHQodCxyKX0sci5wcm90b3R5cGUudG9nZ2xlRnRyU3RhY2tlZENsYXNzPWZ1bmN0aW9uKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLm90LXBjLWZvb3RlciBidXR0b24iKSx0PUFycmF5LmZyb20odCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiJub25lIiE9PWdldENvbXB1dGVkU3R5bGUoZSkuZGlzcGxheX0pLG89dFt0Lmxlbmd0aC0xXTtlLmNsYXNzTGlzdC5yZW1vdmUoIm90LWZ0ci1zdGFja2VkIiksdFswXSYmbyYmby5vZmZzZXRUb3A+dFswXS5vZmZzZXRUb3ArMSYmZS5jbGFzc0xpc3QuYWRkKCJvdC1mdHItc3RhY2tlZCIpfSxyLnByb3RvdHlwZS5zZXRQQ0NvbnRlbnRBbmRMaXN0SGVpZ2h0PWZ1bmN0aW9uKGUsdCl7dmFyIG89ZS5xdWVyeVNlbGVjdG9yKHUuUENfRk9PVEVSKSxuPWUucXVlcnlTZWxlY3RvcigiLm90LXBjLWhlYWRlciIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIjb3QtcGMtbHN0Iik7ZChlLnF1ZXJ5U2VsZWN0b3IoIiIrVC5QX0NvbnRlbnQpLCJoZWlnaHQ6ICIrKGUuY2xpZW50SGVpZ2h0LW8uY2xpZW50SGVpZ2h0LW4uY2xpZW50SGVpZ2h0LTMpKyJweDsiLCEwKSx0LlRhYiYmZChyLCJoZWlnaHQ6ICIrKGUuY2xpZW50SGVpZ2h0LW8uY2xpZW50SGVpZ2h0LW4uY2xpZW50SGVpZ2h0LTMpKyJweDsiLCEwKX0sci5wcm90b3R5cGUuYWxsb3dBbGxWaXNpYmxlPWZ1bmN0aW9uKGUpe2UhPT10aGlzLmFsbG93VmlzaWJsZSYmTy5QQ0xheW91dC5UYWImJk8uUENUZW1wbGF0ZVVwZ3JhZGUmJih0aGlzLnBjJiZ0aGlzLnNldE1haW5Db250ZW50SGVpZ2h0KCksdGhpcy5hbGxvd1Zpc2libGU9ZSl9LHIucHJvdG90eXBlLnJlc3RvcmVQYz1mdW5jdGlvbigpe0QucGNMYXllcj09PXJlLkNvb2tpZUxpc3Q/KHUuaGlkZUNhdGVnb3J5Q29udGFpbmVyKCEwKSxnLmxvYWRIb3N0TGlzdCgiIixELmZpbHRlckJ5Q2F0ZWdvcmllcyksRC5zaG93VHJhY2tpbmdUZWNoJiZ1LmFkZEV2ZW50QWRkaXRpb25hbFRlY2hub2xvZ2llcygpLG0oIiIrdS5GSUxURVJfQ09VTlRfU0VMRUNUT1IpLnRleHQoRC5maWx0ZXJCeUNhdGVnb3JpZXMubGVuZ3RoLnRvU3RyaW5nKCkpKTpELnBjTGF5ZXI9PT1yZS5WZW5kb3JMaXN0JiYodS5oaWRlQ2F0ZWdvcnlDb250YWluZXIoITEpLHUuc2V0VmVuZG9yQ29udGVudCgpKSxELmlzUENWaXNpYmxlPSExLHUudG9nZ2xlSW5mb0Rpc3BsYXkoKSxELnBjTGF5ZXIhPT1yZS5WZW5kb3JMaXN0JiZELnBjTGF5ZXIhPT1yZS5Db29raWVMaXN0fHwoTm4udXBkYXRlRmlsdGVyU2VsZWN0aW9uKEQucGNMYXllcj09PXJlLkNvb2tpZUxpc3QpLHUuc2V0QmFja0J1dHRvbkZvY3VzKCksR28uc2V0UENGb2N1cyhHby5nZXRQQ0VsZW1lbnRzKCkpKX0sci5wcm90b3R5cGUudG9nZ2xlSW5mb0Rpc3BsYXk9ZnVuY3Rpb24oKXt2YXIgbjtyZXR1cm4gUCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdCxvO3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4hRC5pc1BDVmlzaWJsZSYmaC5pc0Jhbm5lclZpc2libGUoKSYmKEQud2FzQmFubmVyVmlzaWJsZT0hMCksRnMuY3NCdG5Hcm91cCYmKG0odS5mbHRnQnRuU2x0cikuYWRkQ2xhc3MoIm90LXBjLW9wZW4iKSx1Lm90R3VhcmRMb2dvUHJvbWlzZS50aGVuKGZ1bmN0aW9uKCl7Ty5jb29raWVQZXJzaXN0ZW50TG9nby5pbmNsdWRlcygib3RfZ3VhcmRfbG9nby5zdmciKSYmbSh1LmZsdGdCdG5GU2x0cikuYXR0cihtdCwidHJ1ZSIpfSksbSh1LmZsdGdCdG5CU2x0cikuYXR0cihtdCwiIiksbSh1LmZsdGdCdG5CYWNrQnRuKS5lbFswXS5zdHlsZS5kaXNwbGF5PSJibG9jayIpLFs0LHUuZmV0Y2hBbmRTZXR1cFBDKCldO2Nhc2UgMTpyZXR1cm4gZS5zZW50KCksXy5wY05hbWU9PT1vdCYmdGhpcy5zZXRQY0xpc3RDb250YWluZXJIZWlnaHQoKSx2b2lkIDAhPT1ELnBjTGF5ZXImJkQucGNMYXllciE9PXJlLkJhbm5lcnx8KEQucGNMYXllcj1yZS5QcmVmQ2VudGVySG9tZSksdD1tKCIiK3UuUENfU0VMRUNUT1IpLmVsWzBdLG0oIi5vbmV0cnVzdC1wYy1kYXJrLWZpbHRlciIpLmVsWzBdLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSx0LnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSxELmlzUENWaXNpYmxlfHwoYm4uc2hvd0NvbnNlbnROb3RpY2UoKSxELmlzUENWaXNpYmxlPSEwLG89ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih1Lm90UGNDb250YWluZXJTZWxlY3RvciksbnVsbCE9KG49bykmJm4uc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksTy5QQ1RlbXBsYXRlVXBncmFkZSYmKHRoaXMucGM9dCxvPXQucXVlcnlTZWxlY3RvcigiI2FjY2VwdC1yZWNvbW1lbmRlZC1idG4taGFuZGxlciIpLHRoaXMuYWxsb3dWaXNpYmxlPW8mJjA8by5jbGllbnRIZWlnaHQsdGhpcy5zZXRDZW50ZXJMYXlvdXRGb290ZXJIZWlnaHQoKSx1LmdldFJlc2l6ZUVsZW1lbnQoKS5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHUuc2V0Q2VudGVyTGF5b3V0Rm9vdGVySGVpZ2h0KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix1LnNldENlbnRlckxheW91dEZvb3RlckhlaWdodCkpLG0oZG9jdW1lbnQpLm9uKCJrZXlkb3duIix1LmNsb3NlUENXaGVuRXNjUHJlc3NlZCkpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiT25lVHJ1c3RQQ0xvYWRlZCIse09uZVRydXN0UENMb2FkZWQ6InllcyJ9KSksdS5jYXB0dXJlSW5pdGlhbENvbnNlbnQoKSxfLnJlcXVpcmVTaWduYXR1cmVFbmFibGVkJiZlci5nZXRJbnN0YW5jZSgpLnNldENvbnNlbnRJZEluUEMoKSxbMl19fSl9KX0sci5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24odCl7cmV0dXJuIFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEEodGhpcyxmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBPLkJDbG9zZUJ1dHRvblR5cGU9PT12ZS5MaW5rP0QuYmFubmVyQ2xvc2VTb3VyY2U9Wi5Db250aW51ZVdpdGhvdXRBY2NlcHRpbmdCdXR0b246RC5iYW5uZXJDbG9zZVNvdXJjZT1aLkJhbm5lckNsb3NlQnV0dG9uLFs0LEMuYmFubmVyQ2xvc2VCdXR0b25IYW5kbGVyKHQpXTtjYXNlIDE6cmV0dXJuIGUuc2VudCgpLHluLnJlbW92ZUFkZGVkT1RDc3NTdHlsZXMoKSx1LmdldFJlc2l6ZUVsZW1lbnQoKS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHUuc2V0Q2VudGVyTGF5b3V0Rm9vdGVySGVpZ2h0KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix1LnNldENlbnRlckxheW91dEZvb3RlckhlaWdodCksWzJdfX0pfSl9LHIucHJvdG90eXBlLmNsb3NlUHJlZmVyZW5jZUNlbnRlcj1mdW5jdGlvbihlKXtlJiZlLnByZXZlbnREZWZhdWx0KCksd2luZG93LmxvY2F0aW9uLmhyZWY9Imh0dHBzOi8vb3RzZGsvL2NvbnNlbnRDaGFuZ2VkIn0sci5wcm90b3R5cGUuaW5pdGlhbGl6ZUFsYXJ0SHRtbEFuZEhhbmRsZXI9ZnVuY3Rpb24oKXtELnNraXBBZGRpbmdIVE1MPTA8bSgiI29uZXRydXN0LWJhbm5lci1zZGsiKS5sZW5ndGgsRC5za2lwQWRkaW5nSFRNTHx8Z3IuaW5zZXJ0QWxlcnRIdG1sKCksdGhpcy5pbml0aWFsaXNlQWxlcnRIYW5kbGVycygpLEdvLnNldEJhbm5lckZvY3VzKCl9LHIucHJvdG90eXBlLmluaXRpYWxpc2VBbGVydEhhbmRsZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PShnci5zaG93QmFubmVyKCksIU8uU2hvd0FsZXJ0Tm90aWNlfHx3LmlzQWxlcnRCb3hDbG9zZWRBbmRWYWxpZCgpfHxPLk5vQmFubmVyfHxELmhpZGVCYW5uZXIpLG89aC5pc0Nvb2tpZVBvbGljeVBhZ2UoTy5NYWluSW5mb1RleHQpLHQ9KHQmJm8/bSgiLm9uZXRydXN0LXBjLWRhcmstZmlsdGVyIikuYWRkQ2xhc3MoIm90LWhpZGUiKTpPLkZvcmNlQ29uc2VudCYmIWguaXNDb29raWVQb2xpY3lQYWdlKE8uQWxlcnROb3RpY2VUZXh0KSYmbSgiLm9uZXRydXN0LXBjLWRhcmstZmlsdGVyIikucmVtb3ZlQ2xhc3MoIm90LWhpZGUiKS5jc3MoInotaW5kZXg6MjE0NzQ4MzY0NTsiKSxPLk9uQ2xpY2tDbG9zZUJhbm5lciYmZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsQy5ib2R5Q2xpY2tFdmVudCksTy5TY3JvbGxDbG9zZUJhbm5lciYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLEMuc2Nyb2xsQ2xvc2VCYW5uZXIpLG0oZG9jdW1lbnQpLm9uKCJjbGljayIsIi5vbmV0cnVzdC1jbG9zZS1idG4taGFuZGxlciIsQy5ybVNjcm9sbEFuZENsaWNrQm9keUV2ZW50cyksbShkb2N1bWVudCkub24oImNsaWNrIiwiI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlciIsQy5ybVNjcm9sbEFuZENsaWNrQm9keUV2ZW50cyksbShkb2N1bWVudCkub24oImNsaWNrIiwiI2FjY2VwdC1yZWNvbW1lbmRlZC1idG4taGFuZGxlciIsQy5ybVNjcm9sbEFuZENsaWNrQm9keUV2ZW50cykpLHRoaXMuYWRkRXZlbnRMaXN0bmVyRm9yVmVuZG9yc0xpc3QoKSxPLkZsb2F0aW5nUm91bmRlZEljb24mJm0oIiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1jb29raWUtYnRuIikub24oImNsaWNrIixmdW5jdGlvbihlKXtELnBjU291cmNlPWUuY3VycmVudFRhcmdldCx1LnNob3dDb29raWVTZXR0aW5nc0hhbmRsZXIoZSl9KSxtKCIjb25ldHJ1c3QtYmFubmVyLXNkayAub25ldHJ1c3QtY2xvc2UtYnRuLWhhbmRsZXIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtlci5nZXRJbnN0YW5jZSgpLnJlc2V0SGVhbHRoU2lnbmF0dXJlRGF0YSgpLHUuYmFubmVyQ2xvc2VCdXR0b25IYW5kbGVyKGUpfSwwKX0pLG0oIiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1ibnItc2F2ZS1oYW5kbGVyIikub24oImNsaWNrIix1LmJhbm5lckNsb3NlQnV0dG9uSGFuZGxlciksbSgiI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyIikub24oImNsaWNrIixmdW5jdGlvbihlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dS5zaG93Q29va2llU2V0dGluZ3NIYW5kbGVyKGUpfSwwKX0pLG0oIiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe0MuYWxsb3dBbGxFdmVudEhhbmRsZXIoITEpfSwwKX0pLG0oIiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1yZWplY3QtYWxsLWhhbmRsZXIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe0MucmVqZWN0QWxsRXZlbnRIYW5kbGVyKCExKX0sMCl9KSxtKCIjb25ldHJ1c3QtYmFubmVyLXNkayAuYmFubmVyLW9wdGlvbi1pbnB1dCIpLm9uKCJjbGljayIsXy5iYW5uZXJOYW1lPT09UWU/dS50b2dnbGVCYW5uZXJPcHRpb25zOnUudG9nZ2xlQWNjb3JkaW9uU3RhdHVzKSxtKCIjb25ldHJ1c3QtYmFubmVyLXNkayAub3QtZ3YtbGlzdC1oYW5kbGVyIikub24oImNsaWNrIixmdW5jdGlvbih0KXtyZXR1cm4gUChlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gQSh0aGlzLGZ1bmN0aW9uKGUpe3N3aXRjaChlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEQuY29va2llTGlzdFR5cGU9Z2UuR2VuVmVuLFs0LHUuZmV0Y2hBbmRTZXR1cFBDKCldO2Nhc2UgMTpyZXR1cm4gZS5zZW50KCksdS5sb2FkQ29va2llTGlzdCh0LnRhcmdldCksdS5zaG93Q29va2llU2V0dGluZ3NIYW5kbGVyKHQpLFsyXX19KX0pfSksbSgiI29uZXRydXN0LWJhbm5lci1zZGsgLmNhdGVnb3J5LXN3aXRjaC1oYW5kbGVyIikub24oImNsaWNrIix1LnRvZ2dsZUJhbm5lckNhdGVnb3J5KSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25ldHJ1c3QtYmFubmVyLXNkayIpKTtPLkZvcmNlQ29uc2VudCYmdCYmIm5vbmUiIT09d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZGlzcGxheSYmbShkb2N1bWVudCkub24oImtleWRvd24iLHUuc2hpZnRCYW5uZXJGb2N1cyksbSgiI29uZXRydXN0LWJhbm5lci1zZGsiKS5vbigia2V5ZG93biIsZnVuY3Rpb24oZSl7MzIhPT1lLmtleUNvZGUmJiJTcGFjZSIhPT1lLmNvZGUmJjEzIT09ZS5rZXlDb2RlJiYiRW50ZXIiIT09ZS5jb2RlfHxoLmZpbmRVc2VyVHlwZShlKX0pfSxyLnByb3RvdHlwZS5hZGRFdmVudExpc3RuZXJGb3JWZW5kb3JzTGlzdD1mdW5jdGlvbigpeyhPLklzSWFiRW5hYmxlZHx8Ty5Vc2VHb29nbGVWZW5kb3JzfHxELnNob3dHZW5lcmFsVmVuZG9ycykmJiFELnNob3dWZW5kb3JTZXJ2aWNlJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMudmVuZG9yc0xpc3REZWxlZ2F0ZWRIYW5kbGVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy52ZW5kb3JzTGlzdERlbGVnYXRlZEhhbmRsZXIpKX0sci5wcm90b3R5cGUuZ2V0UmVzaXplRWxlbWVudD1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1wYy1zZGsgLm90LXRleHQtcmVzaXplIik7cmV0dXJuIGU/ZS5jb250ZW50V2luZG93fHxlOmRvY3VtZW50fSxyLnByb3RvdHlwZS5pbnNlcnRDb29raWVTZXR0aW5nVGV4dD1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT0hMSk7Zm9yKHZhciB0PU8uQ29va2llU2V0dGluZ0J1dHRvblRleHQsbz1tKCIub3Qtc2RrLXNob3ctc2V0dGluZ3MiKS5lbCxuPW0oIi5vcHRhbm9uLXRvZ2dsZS1kaXNwbGF5IikuZWwscj0wO3I8by5sZW5ndGg7cisrKW0ob1tyXSkudGV4dCh0KSxtKG5bcl0pLnRleHQodCk7ZT8obnVsbCE9KGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm90LXNkay1zaG93LXNldHRpbmdzIikpJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmNvb2tpZXNTZXR0aW5nc0JvdW5kTGlzdGVuZXIpLG51bGwhPShlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5vcHRhbm9uLXRvZ2dsZS1kaXNwbGF5IikpJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmNvb2tpZXNTZXR0aW5nc0JvdW5kTGlzdGVuZXIpKTp1LmluaXRDb29raWVTZXR0aW5nSGFuZGxlcnMoKX0sci5wcm90b3R5cGUuZ2VuVmVuZG9yVG9nZ2xlZD1mdW5jdGlvbihlKXt2YXIgdCxvOyJ0cnVlIj09PWUudGFyZ2V0LmdldEF0dHJpYnV0ZSh0aGlzLkFyaWFEaXNhYmxlZCk/KGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKToodD1lLnRhcmdldC5nZXRBdHRyaWJ1dGUoImduLXZpZCIpLExvLnVwZGF0ZUdlblZlbmRvclN0YXR1cyh0LGUudGFyZ2V0LmNoZWNrZWQpLG89Ty5HZW5lcmFsVmVuZG9ycy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLlZlbmRvckN1c3RvbUlkPT09dH0pLk5hbWUsVG8udHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50KHhvLGUudGFyZ2V0LmNoZWNrZWQ/Wm86JG8sbysiOiBWRU5fIit0KSxnLmdlblZlblNlbGVjdEFsbFRnbEV2ZW50KCkpfSxyLnByb3RvdHlwZS5nZW5WZW5kb3JEZXRhaWxzPWZ1bmN0aW9uKGUpe3UudG9nZ2xlQWNjb3JkaW9uU3RhdHVzKGUpfSxyLnByb3RvdHlwZS5jb25maXJtUEM9ZnVuY3Rpb24obil7cmV0dXJuIFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHQsbztyZXR1cm4gQSh0aGlzLGZ1bmN0aW9uKGUpe3N3aXRjaChlLmxhYmVsKXtjYXNlIDA6cmV0dXJuKHQ9dy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKSxPLk5vQmFubmVyJiZPLlNob3dQcmVmZXJlbmNlQ2VudGVyQ2xvc2VCdXR0b24mJiF0KT8oRC5wY0Nsb3NlZEZyb21DbG9zZUJ0bnx8KEQuYmFubmVyQ2xvc2VTb3VyY2U9Wi5Db25maXJtQ2hvaWNlQnV0dG9uKSxbNCxDLmJhbm5lckNsb3NlQnV0dG9uSGFuZGxlcigpXSk6WzMsMl07Y2FzZSAxOmUuc2VudCgpLGUubGFiZWw9MjtjYXNlIDI6cmV0dXJuIG89aC5pc0Jhbm5lclZpc2libGUoKSwhYi5tb2R1bGVJbml0aWFsaXplci5Nb2JpbGVTREt8fCF0JiZvfHx1LmNsb3NlUHJlZmVyZW5jZUNlbnRlcihuKSxbMl19fSl9KX0sci5wcm90b3R5cGUuY2FwdHVyZUluaXRpYWxDb25zZW50PWZ1bmN0aW9uKCl7RC5pbml0aWFsR3JvdXBzQ29uc2VudD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEQuZ3JvdXBzQ29uc2VudCkpLEQuaW5pdGlhbEhvc3RDb25zZW50PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoRC5ob3N0c0NvbnNlbnQpKSxELnNob3dHZW5lcmFsVmVuZG9ycyYmKEQuaW5pdGlhbEdlblZlbmRvcnNDb25zZW50PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoRC5nZW5WZW5kb3JzQ29uc2VudCkpKSxPLklzSWFiRW5hYmxlZCYmKEQuaW5pdGlhbE9uZVRydXN0SUFCQ29uc2VudD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEQub25lVHJ1c3RJQUJDb25zZW50KSksRC5pbml0aWFsVmVuZG9ycz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEQudmVuZG9ycykpLEQuaW5pdGlhbFZlbmRvcnMudmVuZG9yVGVtcGxhdGU9RC52ZW5kb3JzLnZlbmRvclRlbXBsYXRlKSxPLlVzZUdvb2dsZVZlbmRvcnMmJihELmluaXRpYWxBZGR0bFZlbmRvcnNMaXN0PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoRC5hZGR0bFZlbmRvcnNMaXN0KSksRC5pbml0aWFsQWRkdGxWZW5kb3JzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoRC5hZGR0bFZlbmRvcnMpKSksRC52c0lzQWN0aXZlQW5kT3B0T3V0JiYoRC5pbml0aWFsVmVuZG9yc1NlcnZpY2VDb25zZW50PW5ldyBNYXAoRC52c0NvbnNlbnQpKX0sci5wcm90b3R5cGUuZ2V0U2hvd0Nvb2tpZVNldHRpbmdDbGFzc05hbWU9ZnVuY3Rpb24oZSl7aWYoIWV8fCFlLnRhcmdldClyZXR1cm4iIjt2YXIgZT1lLnRhcmdldCx0PWUuY2xhc3NOYW1lO2lmKCJCVVRUT04iIT09ZS50YWdOYW1lKXtlPWUuY2xvc2VzdCgiYnV0dG9uIik7aWYoIWUpcmV0dXJuIiI7dD1lLmNsYXNzTmFtZX1yZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQ/IiI6dH07dmFyIHUsdnI9cjtmdW5jdGlvbiByKCl7dmFyIHI9dGhpczt0aGlzLmFsbG93VmlzaWJsZT0hMSx0aGlzLmZsdGdCdG5CYWNrQnRuPSIub3QtZmxvYXRpbmctYnV0dG9uX19iYWNrIGJ1dHRvbiIsdGhpcy5mbHRnQnRuQlNsdHI9Ii5vdC1mbG9hdGluZy1idXR0b25fX2JhY2sgc3ZnIix0aGlzLkZJTFRFUl9CVE5fU0VMRUNUT1I9IiNvbmV0cnVzdC1wYy1zZGsgI2ZpbHRlci1idG4taGFuZGxlciIsdGhpcy5BUklBX0VYUEFOREVEPSJhcmlhLWV4cGFuZGVkIix0aGlzLmZsdGdCdG5Gcm9udEJ0bj0iLm90LWZsb2F0aW5nLWJ1dHRvbl9fZnJvbnQgYnV0dG9uIix0aGlzLmZsdGdCdG5GU2x0cj0iLm90LWZsb2F0aW5nLWJ1dHRvbl9fZnJvbnQgc3ZnIix0aGlzLmZsdGdCdG5TbHRyPSIjb3Qtc2RrLWJ0bi1mbG9hdGluZyIsdGhpcy5QQ19TRUxFQ1RPUj0iI29uZXRydXN0LXBjLXNkayIsdGhpcy5GSUxURVJfQ09VTlRfU0VMRUNUT1I9IiNvbmV0cnVzdC1wYy1zZGsgI2ZpbHRlci1jb3VudCIsdGhpcy5WRU5ET1JfU0VBUkNIX1NFTEVDVE9SPSIjb25ldHJ1c3QtcGMtc2RrICN2ZW5kb3Itc2VhcmNoLWhhbmRsZXIiLHRoaXMuUENfRk9PVEVSPSIub3QtcGMtZm9vdGVyIix0aGlzLmlzQ29va2llTGlzdD0hMSx0aGlzLnBjPW51bGwsdGhpcy5jdXJyZW50U2VhcmNoSW5wdXQ9IiIsdGhpcy5wY0xpbmtTb3VyY2U9bnVsbCx0aGlzLnBjU0RLU2VsZWN0b3I9Im9uZXRydXN0LXBjLXNkayIsdGhpcy5iYW5uZXJTZWxlY3Rvcj0ib25ldHJ1c3QtYmFubmVyLXNkayIsdGhpcy5vdFBjQ29udGFpbmVyU2VsZWN0b3I9IiNvdC1wYy1jb250ZW50Iix0aGlzLkFyaWFEaXNhYmxlZD0iYXJpYS1kaXNhYmxlZCIsdGhpcy5pbmxpbmVCbG9ja0Rpc3BsYXk9ImlubGluZS1ibG9jayIsdGhpcy5vdEd1YXJkTG9nb1Jlc29sdmU9bnVsbCx0aGlzLm90R3VhcmRMb2dvUHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihlKXtyLm90R3VhcmRMb2dvUmVzb2x2ZT1lfSksdGhpcy5jbG9zZVBDV2hlbkVzY1ByZXNzZWQ9ZnVuY3Rpb24oZSl7dmFyIHQsbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh1LnBjU0RLU2VsZWN0b3IpO28mJih0PSJub25lIiE9PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG8pLmRpc3BsYXksMjc9PT1lLmtleUNvZGUmJm8mJnQmJigiYmxvY2siPT09KG89bSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9GbHRyX01vZGFsKS5lbFswXSkuc3R5bGUuZGlzcGxheXx8IjBweCI8by5zdHlsZS53aWR0aD8odS5jbG9zZUZpbHRlcigpLHUuZm9jdXNGaWx0ZXJCdXR0b24oKSk6Ty5Ob0Jhbm5lciYmIU8uU2hvd1ByZWZlcmVuY2VDZW50ZXJDbG9zZUJ1dHRvbnx8dS5oaWRlQ29va2llU2V0dGluZ3NIYW5kbGVyKCksdS5jb25maXJtUEMoKSksdCYmMzI9PT1lLmtleUNvZGV8fCJTcGFjZSI9PT1lLmNvZGV8fDEzPT09ZS5rZXlDb2RlfHwiRW50ZXIiPT09ZS5jb2RlKSYmaC5maW5kVXNlclR5cGUoZSl9LHRoaXMuc2hvd0Nvb2tpZVNldHRpbmdzSGFuZGxlcj1mdW5jdGlvbihuKXtyZXR1cm4gUChyLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdCxvO3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4odD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh1LnBjU0RLU2VsZWN0b3IpLHQmJiJub25lIiE9PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKSk/WzJdOihtKGRvY3VtZW50KS5vbigia2V5ZG93biIsdS5jbG9zZVBDV2hlbkVzY1ByZXNzZWQpLG4mJm4uc3RvcFByb3BhZ2F0aW9uKCksbiYmbi50YXJnZXQmJih0PXRoaXMuZ2V0U2hvd0Nvb2tpZVNldHRpbmdDbGFzc05hbWUobiksbz0ib25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIiPT09bi50YXJnZXQuaWQsdD10LmluY2x1ZGVzKCJvdC1zZGstc2hvdy1zZXR0aW5ncyIpLChvfHx0KSYmKHQ9bz9xbzpqbyxUby50cmlnZ2VyR29vZ2xlQW5hbHl0aWNzRXZlbnQoeG8sdCkpLG89bi50YXJnZXQsRC5wY1NvdXJjZT1vLmNsb3Nlc3QoIi5vdC1zZGstc2hvdy1zZXR0aW5ncywgLm9wdGFub24tc2hvdy1zZXR0aW5ncywgLm9wdGFub24tdG9nZ2xlLWRpc3BsYXksIC5vdC1wYy1oYW5kbGVyLCAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIiKXx8bi50YXJnZXQpLFs0LHUudG9nZ2xlSW5mb0Rpc3BsYXkoKV0pO2Nhc2UgMTpyZXR1cm4gZS5zZW50KCksWzIsITFdfX0pfSl9LHRoaXMuY29va2llc1NldHRpbmdzQm91bmRMaXN0ZW5lcj10aGlzLnNob3dDb29raWVTZXR0aW5nc0hhbmRsZXIuYmluZCh0aGlzKSx0aGlzLmJhY2tCdG5IYW5kbGVyPWZ1bmN0aW9uKCl7cmV0dXJuIEQucGNMYXllcj09PXJlLklhYklsbHVzdHJhdGlvbnM/ZHIuaGlkZVVJKCk6KEQuc2hvd1ZlbmRvclNlcnZpY2UmJmZyLmhpZGVWZW5kb3JMaXN0KCksRC5zaG93VHJhY2tpbmdUZWNoJiYodS5jdXJyZW50U2VhcmNoSW5wdXQ9IiIpKSxDLmhpZGVWZW5kb3JzTGlzdCgpLF8ucGNOYW1lPT09b3QmJihtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0NvbnRlbnQpLnJlbW92ZUNsYXNzKCJvdC1oaWRlIiksbSgiIit1LlBDX1NFTEVDVE9SKS5lbFswXS5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksci5zZXRQY0xpc3RDb250YWluZXJIZWlnaHQoKSksbSgiIit1LkZJTFRFUl9DT1VOVF9TRUxFQ1RPUikudGV4dCgiMCIpLG0odS5WRU5ET1JfU0VBUkNIX1NFTEVDVE9SKS5sZW5ndGgmJihtKHUuVkVORE9SX1NFQVJDSF9TRUxFQ1RPUikuZWxbMF0udmFsdWU9IiIpLEQuY3VycmVudEdsb2JhbEZpbHRlcmVkTGlzdD1bXSxELmZpbHRlckJ5Q2F0ZWdvcmllcz1bXSxELmZpbHRlckJ5SUFCQ2F0ZWdvcmllcz1bXSxELnZlbmRvcnMuc2VhcmNoUGFyYW09IiIsdS5jbG9zZUZpbHRlcigpLEQucGNMYXllcj1yZS5QcmVmQ2VudGVySG9tZSxyLnBjTGlua1NvdXJjZT8oci5wY0xpbmtTb3VyY2UuZm9jdXMoKSxyLnBjTGlua1NvdXJjZT1udWxsKTpHby5zZXRQQ0ZvY3VzKEdvLmdldFBDRWxlbWVudHMoKSksITF9LHRoaXMudG9nZ2xlQWNjb3JkaW9uU3RhdHVzPWZ1bmN0aW9uKGUpe3ZhciBlPWUudGFyZ2V0LHQ9KG51bGw9PSh0PWUpP3ZvaWQgMDp0LmNsb3Nlc3QoIlthcmlhLWV4cGFuZGVkXSIpKXx8ZTt0JiZudWxsIT09dC5nZXRBdHRyaWJ1dGUoci5BUklBX0VYUEFOREVEKSYmKGU9InRydWUiPT09dC5nZXRBdHRyaWJ1dGUoci5BUklBX0VYUEFOREVEKT8iZmFsc2UiOiJ0cnVlIix0LnNldEF0dHJpYnV0ZShyLkFSSUFfRVhQQU5ERUQsZSkpfSx0aGlzLmJhbm5lckNsb3NlQm91bmRMaXN0ZW5lcj10aGlzLmJhbm5lckNsb3NlQnV0dG9uSGFuZGxlci5iaW5kKHRoaXMpLHRoaXMudG9nZ2xlR3JvdXBPUlZlbmRvckhhbmRsZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jdXJyZW50VGFyZ2V0OyJ0cnVlIj09PXQuZ2V0QXR0cmlidXRlKHRoaXMuQXJpYURpc2FibGVkKT8oZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpOnQuZGF0YXNldC5vdFZzSWQ/dS50b2dnbGVWZW5kb3JTZXJ2aWNlSGFuZGxlci5iaW5kKHRoaXMpKGUpOnQuZGF0YXNldC5vcHRhbm9uZ3JvdXBpZCYmdS50b2dnbGVWMkNhdGVnb3J5LmJpbmQodGhpcykoKX0sdGhpcy50b2dnbGVWZW5kb3JGcm9tTGlzdEhhbmRsZXI9ZnVuY3Rpb24oZSl7dmFyIHQsbyxuPWUuY3VycmVudFRhcmdldDsidHJ1ZSI9PT1uLmdldEF0dHJpYnV0ZSh0aGlzLkFyaWFEaXNhYmxlZCk/KGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKTooZT1uLmNoZWNrZWQsdD1uLmRhdGFzZXQub3RWc0lkLG49bi5kYXRhc2V0Lm9wdGFub25ncm91cGlkLG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm90LXZlbmRvci1pZC0iK3QpLEIudG9nZ2xlVmVuZG9yU2VydmljZShuLHQsZSxvKSl9LHRoaXMudG9nZ2xlVmVuZG9yU2VydmljZUhhbmRsZXI9ZnVuY3Rpb24oZSl7dmFyIHQsbyxuPWUuY3VycmVudFRhcmdldDsidHJ1ZSI9PT1uLmdldEF0dHJpYnV0ZShyLkFyaWFEaXNhYmxlZCk/KGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKTooZT1uLmNoZWNrZWQsdD1uLmRhdGFzZXQub3RWc0lkLG89bi5kYXRhc2V0Lm9wdGFub25ncm91cGlkLEIudG9nZ2xlVmVuZG9yU2VydmljZShvLHQsZSxuKSxvPXkuZ2V0VlNCeUlkKHQpLHUuc2V0QXJpYUxhYmVsZm9yQnV0dG9uSW5GaWx0ZXIoby5TZXJ2aWNlTmFtZSkpfSx0aGlzLnRvZ2dsZVYyQ2F0ZWdvcnk9ZnVuY3Rpb24oZSx0LG8sbil7dHx8KHI9dGhpcy5nZXRBdHRyaWJ1dGUoImRhdGEtb3B0YW5vbmdyb3VwaWQiKSxpPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmdldEF0dHJpYnV0ZSxhPXYuZmluZEluZGV4KEQuZGF0YUdyb3VwU3RhdGUsZnVuY3Rpb24oZSl7cmV0dXJuIGkmJmUuQ3VzdG9tR3JvdXBJZD09PXJ9KSx0PUQuZGF0YUdyb3VwU3RhdGVbYV0pLHZvaWQgMD09PW8mJihvPW0odGhpcykuaXMoIjpjaGVja2VkIikpLE8uQ2hvaWNlc0Jhbm5lciYmdi5zZXRDaGVja2VkQXR0cmlidXRlKCIjb3QtYm5yLWdycC1pZC0iK3QuQ3VzdG9tR3JvdXBJZCxudWxsLG8pLG4/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI290LWdyb3VwLWlkLSIrbikmJih2LnNldENoZWNrZWRBdHRyaWJ1dGUoIiNvdC1ncm91cC1pZC0iK24sbnVsbCxvKSxzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvdC1ncm91cC1pZC0iK24pKToodi5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwscz10aGlzLG8pLHMucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCIub3Qtc3dpdGNoLW5vYiIpKSxPLlBDU2hvd0NvbnNlbnRMYWJlbHMmJihzLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCIub3QtbGFiZWwtc3RhdHVzIikuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChvP08uUENBY3RpdmVUZXh0Ok8uUENJbmFjdGl2ZVRleHQpKTt2YXIgcixpLHMsYT10aGlzIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJi0xIT09dGhpcy5nZXRBdHRyaWJ1dGUoImlkIikuaW5kZXhPZigiLWxlZy1vdXQiKTt1LnNldEFyaWFMYWJlbGZvckJ1dHRvbkluRmlsdGVyKHQuR3JvdXBOYW1lKSx1LnVwZGF0ZUdyb3VwVG9nZ2xlcyh0LG8sYSl9LHRoaXMudG9nZ2xlQmFubmVyQ2F0ZWdvcnk9ZnVuY3Rpb24oZSl7dmFyIHQsbz10aGlzOyJ0cnVlIj09PW8uZ2V0QXR0cmlidXRlKHRoaXMuQXJpYURpc2FibGVkKT8oZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpOihlPXYuZmluZEluZGV4KEQuZGF0YUdyb3VwU3RhdGUsZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG8uZ2V0QXR0cmlidXRlJiZlLkN1c3RvbUdyb3VwSWQ9PT1vLmdldEF0dHJpYnV0ZSgiZGF0YS1vcHRhbm9uZ3JvdXBpZCIpfSksZT1ELmRhdGFHcm91cFN0YXRlW2VdLHQ9bShvKS5pcygiOmNoZWNrZWQiKSx1LnRvZ2dsZVYyQ2F0ZWdvcnkobnVsbCxlLHQsZS5DdXN0b21Hcm91cElkKSl9LHRoaXMuc2hpZnRCYW5uZXJGb2N1cz1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh1LnBjU0RLU2VsZWN0b3IpLG89ITE7dCYmKG89Im5vbmUiIT09d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZGlzcGxheSksIlRhYiIhPT1lLmNvZGV8fG98fEdvLmhhbmRsZUJhbm5lckZvY3VzKGUsZS5zaGlmdEtleSksIkVzY2FwZSIhPT1lLmNvZGV8fG98fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlci5nZXRJbnN0YW5jZSgpLnJlc2V0SGVhbHRoU2lnbmF0dXJlRGF0YSgpLHUuYmFubmVyQ2xvc2VCdXR0b25IYW5kbGVyKGUpfSwwKX0sdGhpcy50b2dnbGVTdWJDYXRlZ29yeT1mdW5jdGlvbihlLHQsbyxuKXt0PXR8fHRoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLW9wdGFub25ncm91cGlkIik7dmFyIHIsdD15LmdldEdyb3VwQnlJZCh0KSxuPSh2b2lkIDA9PT1vJiYobz1tKHRoaXMpLmlzKCI6Y2hlY2tlZCIpKSxuPyh2LnNldENoZWNrZWRBdHRyaWJ1dGUoIiNvdC1zdWItZ3JvdXAtaWQtIituLG51bGwsbykscj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb3Qtc3ViLWdyb3VwLWlkLSIrbikpOnYuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLHI9dGhpcyxvKSx5LmdldFBhcmVudEdyb3VwKHQuUGFyZW50KS5TaG93U3ViZ3JvdXApLG49KE8uUENTaG93Q29uc2VudExhYmVscyYmbiYmKHIucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5vdC1sYWJlbC1zdGF0dXMiKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KG8/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCkpLHRoaXMgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmLTEhPT10aGlzLmdldEF0dHJpYnV0ZSgiaWQiKS5pbmRleE9mKCItbGVnLW91dCIpKTt1LnNldEFyaWFMYWJlbGZvckJ1dHRvbkluRmlsdGVyKHQuR3JvdXBOYW1lKSx1LnVwZGF0ZVN1Ykdyb3VwVG9nZ2xlcyh0LG8sbiksQi5zZXRWZW5kb3JTdGF0ZUJ5R3JvdXAodCxvKX0sdGhpcy52ZW5kb3JzTGlzdERlbGVnYXRlZEhhbmRsZXI9ZnVuY3Rpb24oZSl7dmFyIHQ7KG51bGw9PSh0PWUudGFyZ2V0KT92b2lkIDA6dC5jbG9zZXN0KCIub25ldHJ1c3QtdmVuZG9ycy1saXN0LWhhbmRsZXIiKSkmJiFELnNob3dWZW5kb3JTZXJ2aWNlJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dS5zaG93QWxsVmVuZG9ycyhlKX0sMCl9fUFyLnByb3RvdHlwZS5pbml0aWFsaXNlTGFuZGluZ1BhdGg9ZnVuY3Rpb24oKXt2YXIgZT13Lm5lZWRSZWNvbnNlbnQoKTtPby5pc0xhbmRpbmdQYWdlKCk/T28uc2V0TGFuZGluZ1BhdGhQYXJhbShsb2NhdGlvbi5ocmVmKTplJiYhdy5hd2FpdGluZ1JlY29uc2VudCgpPyhPby5zZXRMYW5kaW5nUGF0aFBhcmFtKGxvY2F0aW9uLmhyZWYpLEwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLkFXQUlUSU5HX1JFX0NPTlNFTlQsITApKTooZXx8TC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuQVdBSVRJTkdfUkVfQ09OU0VOVCwhMSksT28uc2V0TGFuZGluZ1BhdGhQYXJhbShJLk5PVF9MQU5ESU5HX1BBR0UpLCFfLmlzU29mdE9wdEluTW9kZXx8Yi5tb2R1bGVJbml0aWFsaXplci5Nb2JpbGVTREt8fHcuaXNBbGVydEJveENsb3NlZEFuZFZhbGlkKCl8fFRvLnNldEFsZXJ0Qm94Q2xvc2VkKCEwKSxPLk5leHRQYWdlQ2xvc2VCYW5uZXImJk8uU2hvd0FsZXJ0Tm90aWNlJiZDLm5leHRQYWdlQ2xvc2VCYW5uZXIoKSl9O3ZhciBUcixQcj1BcjtmdW5jdGlvbiBBcigpe31ici5wcm90b3R5cGUuaW5zZXJ0Q29va2llUG9saWN5SHRtbD1mdW5jdGlvbigpe2lmKG0odGhpcy5PTkVUUlVTVF9DT09LSUVfUE9MSUNZKS5sZW5ndGgpe3ZhciBlLHQsbyxuPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxyPShGcy5jb29raWVMaXN0R3JvdXAmJih0PU8uQ29va2llc1YyTmV3Q29va2llUG9saWN5PyIub3Qtc2RrLWNvb2tpZS1wb2xpY3kiOiIjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIiLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksbShvKS5odG1sKEZzLmNvb2tpZUxpc3RHcm91cC5odG1sKSxvLnJlbW92ZUNoaWxkKG8ucXVlcnlTZWxlY3Rvcih0KSksZT1vLnF1ZXJ5U2VsZWN0b3IoIi5vdC1zZGstY29va2llLXBvbGljeSIpLE8udXNlUlRMKSYmbShlKS5hdHRyKCJkaXIiLCJydGwiKSxlLnF1ZXJ5U2VsZWN0b3IoIiNjb29raWUtcG9saWN5LXRpdGxlIikuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChPLkNvb2tpZUxpc3RUaXRsZXx8IiIpLGUucXVlcnlTZWxlY3RvcigiI2Nvb2tpZS1wb2xpY3ktZGVzY3JpcHRpb24iKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KE8uQ29va2llTGlzdERlc2NyaXB0aW9ufHwiIiksZS5xdWVyeVNlbGVjdG9yKCJzZWN0aW9uIikpLGk9ZS5xdWVyeVNlbGVjdG9yKCJzZWN0aW9uIHRib2R5IHRyIikscz1udWxsLGE9bnVsbDtPLkNvb2tpZXNWMk5ld0Nvb2tpZVBvbGljeXx8KHM9ZS5xdWVyeVNlbGVjdG9yKCJzZWN0aW9uLnN1Ymdyb3VwIiksYT1lLnF1ZXJ5U2VsZWN0b3IoInNlY3Rpb24uc3ViZ3JvdXAgdGJvZHkgdHIiKSxtKGUpLmVsLnJlbW92ZUNoaWxkKGUucXVlcnlTZWxlY3Rvcigic2VjdGlvbi5zdWJncm91cCIpKSksbShlKS5lbC5yZW1vdmVDaGlsZChlLnF1ZXJ5U2VsZWN0b3IoInNlY3Rpb24iKSksIW0odGhpcy5DT09LSUVfUE9MSUNZX1NFTEVDVE9SKS5sZW5ndGgmJm0odGhpcy5PUFRBTk9OX1BPTElDWV9TRUxFQ1RPUikubGVuZ3RoP20odGhpcy5PUFRBTk9OX1BPTElDWV9TRUxFQ1RPUikuYXBwZW5kKCc8ZGl2IGlkPSJvdC1zZGstY29va2llLXBvbGljeSI+PC9kaXY+Jyk6KG0odGhpcy5DT09LSUVfUE9MSUNZX1NFTEVDVE9SKS5odG1sKCIiKSxtKHRoaXMuT1BUQU5PTl9QT0xJQ1lfU0VMRUNUT1IpLmh0bWwoIiIpKTtmb3IodmFyIGw9MCxjPU8uR3JvdXBzO2w8Yy5sZW5ndGg7bCsrKXt2YXIgZD1jW2xdLHU9e2pzb246Tyxncm91cDpkLHNlY3Rpb25UZW1wbGF0ZTpyLHRhYmxlUm93VGVtcGxhdGU6aSxjb29raWVMaXN0OmUsZnJhZ21lbnQ6bn07aWYoTy5Db29raWVzVjJOZXdDb29raWVQb2xpY3kpdGhpcy5pbnNlcnRHcm91cEhUTUxWMih1KTtlbHNlIGlmKHRoaXMuaW5zZXJ0R3JvdXBIVE1MKHUpLGQuU2hvd1N1Ymdyb3VwKWZvcih2YXIgcD0wLEM9ZC5TdWJHcm91cHM7cDxDLmxlbmd0aDtwKyspe3ZhciBnPUNbcF0sZz17anNvbjpPLGdyb3VwOmcsc2VjdGlvblRlbXBsYXRlOnMsdGFibGVSb3dUZW1wbGF0ZTphLGNvb2tpZUxpc3Q6ZSxmcmFnbWVudDpufTt0aGlzLmluc2VydEdyb3VwSFRNTChnKX19fX0sYnIucHJvdG90eXBlLmluc2VydEdyb3VwSFRNTFYyPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7cmV0dXJuIGMucXVlcnlTZWxlY3RvcihlKX12YXIgbyxuPXRoaXMscj1lLmpzb24saT1lLmdyb3VwLHM9ZS5zZWN0aW9uVGVtcGxhdGUsYT1lLnRhYmxlUm93VGVtcGxhdGUsbD1lLmNvb2tpZUxpc3QsZT1lLmZyYWdtZW50LGM9cy5jbG9uZU5vZGUoITApLHM9aS5TdWJHcm91cHMsZD0obSh0KCJ0Ym9keSIpKS5odG1sKCIiKSxpLkhvc3RzLnNsaWNlKCkpLHU9aS5GaXJzdFBhcnR5Q29va2llcy5zbGljZSgpLHA9ZC5sZW5ndGh8fHUubGVuZ3RoP2kuR3JvdXBOYW1lOiIiLHM9KGkuU2hvd1N1Ymdyb3VwJiZzLmxlbmd0aD8obz1jLnF1ZXJ5U2VsZWN0b3IoInNlY3Rpb24ub3Qtc2RrLXN1Ymdyb3VwIHVsIGxpIikscy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW8uY2xvbmVOb2RlKCEwKTtkPWQuY29uY2F0KGUuSG9zdHMpLHU9dS5jb25jYXQoZS5GaXJzdFBhcnR5Q29va2llcyksKGUuSG9zdHMubGVuZ3RofHxlLkZpcnN0UGFydHlDb29raWVzLmxlbmd0aCkmJihwKz0iLCIrZS5Hcm91cE5hbWUpLG0odC5xdWVyeVNlbGVjdG9yKCIub3Qtc2RrLWNvb2tpZS1wb2xpY3ktZ3JvdXAiKSkuaHRtbChlLkdyb3VwTmFtZSksbSh0LnF1ZXJ5U2VsZWN0b3IoIi5vdC1zZGstY29va2llLXBvbGljeS1ncm91cC1kZXNjIikpLmh0bWwobi5ncm91cHNDbGFzcy5zYWZlRm9ybWF0dGVkR3JvdXBEZXNjcmlwdGlvbihlKSksbShvLnBhcmVudEVsZW1lbnQpLmFwcGVuZCh0KX0pLGMucXVlcnlTZWxlY3Rvcigic2VjdGlvbi5vdC1zZGstc3ViZ3JvdXAgdWwiKS5yZW1vdmVDaGlsZChvKSk6Yy5yZW1vdmVDaGlsZChjLnF1ZXJ5U2VsZWN0b3IoInNlY3Rpb24ub3Qtc2RrLXN1Ymdyb3VwIikpLE8uVFRMR3JvdXBCeVRlY2gmJih0aGlzLnNldENvb2tpZUxpc3RIZWFkZXJPcmRlcihjKSx0aGlzLnNldENvb2tpZUxpc3RCb2R5T3JkZXIoYSkpLHIuSXNMaWZlc3BhbkVuYWJsZWQ/bSh0KCJ0aC5vdC1saWZlLXNwYW4iKSkuZWwuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChyLkxpZmVzcGFuVGV4dCk6bSh0KCJ0aGVhZCB0ciIpKS5lbC5yZW1vdmVDaGlsZChtKHQoInRoLm90LWxpZmUtc3BhbiIpKS5lbCksbSh0KCJ0aC5vdC1jb29raWVzIikpLmVsLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoci5Db29raWVzVGV4dCksbSh0KCJ0aC5vdC1ob3N0IikpLmVsLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoci5DYXRlZ29yaWVzVGV4dCksbSh0KCJ0aC5vdC1jb29raWVzLXR5cGUiKSkuZWwuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChyLkNvb2tpZXNVc2VkVGV4dCksbSh0KCJ0aC5vdC1ob3N0LWRlc2NyaXB0aW9uIikpLmVsLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoci5Db29raWVzRGVzY1RleHQpLHRoaXMudHJhbnNmb3JtRmlyc3RQYXJ0eUNvb2tpZXModSxkLGkpKSxDPSExOyhDPU8uVFRMR3JvdXBCeVRlY2g/Ty5UVExTaG93VGVjaERlc2M6cy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLkRlc2NyaXB0aW9ufSkpfHxtKHQoInRoZWFkIHRyIikpLmVsLnJlbW92ZUNoaWxkKG0odCgidGgub3QtaG9zdC1kZXNjcmlwdGlvbiIpKS5lbCksbSh0KCIub3Qtc2RrLWNvb2tpZS1wb2xpY3ktZ3JvdXAiKSkuaHRtbChpLkdyb3VwTmFtZSksbSh0KCIub3Qtc2RrLWNvb2tpZS1wb2xpY3ktZ3JvdXAtZGVzYyIpKS5odG1sKHRoaXMuZ3JvdXBzQ2xhc3Muc2FmZUZvcm1hdHRlZEdyb3VwRGVzY3JpcHRpb24oaSkpLE8uVFRMR3JvdXBCeVRlY2g/dGhpcy5pbnNlcnRDb29raWVMaW5lQnlMaW5lKHtqc29uOnIsaG9zdHM6cyx0YWJsZVJvd1RlbXBsYXRlOmEsc2hvd0hvc3REZXNjcmlwdGlvbjpDLHN0OnR9KTp0aGlzLmluc2VydEhvc3RIdG1sVjIoe2pzb246cixob3N0czpzLHRhYmxlUm93VGVtcGxhdGU6YSxzaG93SG9zdERlc2NyaXB0aW9uOkMsc3Q6dH0pLDA9PT1zLmxlbmd0aD9jLnJlbW92ZUNoaWxkKGMucXVlcnlTZWxlY3RvcigidGFibGUiKSk6bSh0KCJjYXB0aW9uIikpLmVsLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQocCksbShsKS5hcHBlbmQoYyksbShlKS5hcHBlbmQobCksbSh0aGlzLkNPT0tJRV9QT0xJQ1lfU0VMRUNUT1IpLmFwcGVuZChlKX0sYnIucHJvdG90eXBlLmluc2VydEhvc3RIdG1sVjI9ZnVuY3Rpb24oZSl7Zm9yKHZhciBsLGM9ZS5qc29uLGQ9ZS50YWJsZVJvd1RlbXBsYXRlLHU9ZS5zaG93SG9zdERlc2NyaXB0aW9uLHA9ZS5zdCxDPXRoaXMsdD0wLG89ZS5ob3N0czt0PG8ubGVuZ3RoO3QrKykoZT0+e2Zvcih2YXIgdD1kLmNsb25lTm9kZSghMCksbz1mdW5jdGlvbihlKXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yKGUpfSxuPShDLmNsZWFyQ29va2llUm93RWxlbWVudChvKSxbXSkscj1bXSxpPTAscz1lLkNvb2tpZXM7aTxzLmxlbmd0aDtpKyspe3ZhciBhPXNbaV0sYT0oKGw9YSkuSXNTZXNzaW9uP24ucHVzaChjLkxpZmVzcGFuVHlwZVRleHQpOm4ucHVzaChoLmdldER1cmF0aW9uKGwpKSxsLk5hbWUpO2UuVHlwZSYmKGE9J1xuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2Nvb2tpZXBlZGlhLmNvLnVrL2Nvb2tpZXMvJytsLk5hbWUrJyJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiIGFyaWEtbGFiZWw9IicrbC5OYW1lKyIgIitPLk5ld1dpblR4dCsnIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICcrbC5OYW1lKyJcbiAgICAgICAgICAgICAgICAgICAgPC9hPiIpLHIucHVzaChhKX1DLnNldERhdGFMYWJlbEF0dHJpYnV0ZShvLGMpLEMuY3JlYXRlQ29va2llUm93SHRtbEVsZW1lbnQoe2hvc3Q6ZSxzdWJHcm91cENvb2tpZTpsLHRydDpvLGpzb246YyxsaWZlc3BhblRleHQ6bi5qb2luKCIsICIpLGhvc3RUeXBlOnIuam9pbigiLCAiKX0pLEMucmVtb3ZlTGlmZVNwYW5Pckhvc3REZXNjcmlwdGlvbihjLHUsdCxvKSxtKHAoInRib2R5IikpLmFwcGVuZCh0KX0pKG9bdF0pfSxici5wcm90b3R5cGUuaW5zZXJ0R3JvdXBIVE1MPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7cmV0dXJuIGwucXVlcnlTZWxlY3RvcihlKX12YXIgbyxuPWUuanNvbixyPWUuZ3JvdXAsaT1lLnNlY3Rpb25UZW1wbGF0ZSxzPWUudGFibGVSb3dUZW1wbGF0ZSxhPWUuY29va2llTGlzdCxlPWUuZnJhZ21lbnQsbD1pLmNsb25lTm9kZSghMCksaT0obSh0KCJjYXB0aW9uIikpLmVsLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoci5Hcm91cE5hbWUpLG0odCgidGJvZHkiKSkuaHRtbCgiIiksbSh0KCJ0aGVhZCB0ciIpKSxuLklzTGlmZXNwYW5FbmFibGVkP20odCgidGgubGlmZS1zcGFuIikpLmVsLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQobi5MaWZlc3BhblRleHQpOm0odCgidGhlYWQgdHIiKSkuZWwucmVtb3ZlQ2hpbGQobSh0KCJ0aC5saWZlLXNwYW4iKSkuZWwpLG0odCgidGguY29va2llcyIpKS5lbC5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KG4uQ29va2llc1RleHQpLG0odCgidGguaG9zdCIpKS5lbC5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KG4uQ2F0ZWdvcmllc1RleHQpLCExKTtpZihyLkhvc3RzLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGVzY3JpcHRpb259KT9pPSEwOm0odCgidGhlYWQgdHIiKSkuZWwucmVtb3ZlQ2hpbGQobSh0KCJ0aC5ob3N0LWRlc2NyaXB0aW9uIikpLmVsKSxtKHQoIi5vdC1zZGstY29va2llLXBvbGljeS1ncm91cCIpKS5odG1sKHIuR3JvdXBOYW1lKSxtKHQoIi5vdC1zZGstY29va2llLXBvbGljeS1ncm91cC1kZXNjIikpLmh0bWwodGhpcy5ncm91cHNDbGFzcy5zYWZlRm9ybWF0dGVkR3JvdXBEZXNjcmlwdGlvbihyKSksMDxyLkZpcnN0UGFydHlDb29raWVzLmxlbmd0aCl7bSh0KCIuY29va2llcy11c2VkLWhlYWRlciIpKS5odG1sKG4uQ29va2llc1VzZWRUZXh0KSxtKHQoIi5jb29raWVzLWxpc3QiKSkuaHRtbCgiIik7Zm9yKHZhciBjPTA7YzxyLkZpcnN0UGFydHlDb29raWVzLmxlbmd0aDtjKyspbz1yLkZpcnN0UGFydHlDb29raWVzW2NdLG0odCgiLmNvb2tpZXMtbGlzdCIpKS5hcHBlbmQoIjxsaT4gIitoLmdldENvb2tpZUxhYmVsKG8sbi5BZGRMaW5rc1RvQ29va2llcGVkaWEpKyIgPGxpPiIpfWVsc2UgbC5yZW1vdmVDaGlsZCh0KCIuY29va2llcy11c2VkLWhlYWRlciIpKSxsLnJlbW92ZUNoaWxkKHQoIi5jb29raWVzLWxpc3QiKSk7dGhpcy5pbnNlcnRIb3N0SHRtbFYxKHtqc29uOm4saG9zdHM6ci5Ib3N0cyx0YWJsZVJvd1RlbXBsYXRlOnMsc2hvd0hvc3REZXNjcmlwdGlvbjppLHN0OnR9KSxtKGEpLmFwcGVuZChsKSxtKGUpLmFwcGVuZChhKSxtKHRoaXMuQ09PS0lFX1BPTElDWV9TRUxFQ1RPUikuYXBwZW5kKGUpfSxici5wcm90b3R5cGUuaW5zZXJ0SG9zdEh0bWxWMT1mdW5jdGlvbihlKXtmb3IodmFyIGw9ZS5qc29uLHQ9ZS5ob3N0cyxjPWUudGFibGVSb3dUZW1wbGF0ZSxkPWUuc2hvd0hvc3REZXNjcmlwdGlvbix1PWUuc3Qsbz0wLG49dDtvPG4ubGVuZ3RoO28rKykoZT0+e2Zvcih2YXIgdD1jLmNsb25lTm9kZSghMCksbz1mdW5jdGlvbihlKXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yKGUpfSxuPShtKG8oIi5jb29raWVzLXRkIHVsIikpLmh0bWwoIiIpLG0obygiLmxpZmUtc3Bhbi10ZCB1bCIpKS5odG1sKCIiKSxtKG8oIi5ob3N0LXRkIikpLmh0bWwoIiIpLG0obygiLmhvc3QtZGVzY3JpcHRpb24tdGQiKSkuaHRtbCgnPHNwYW4gY2xhc3M9Im90LW1vYmlsZS1ib3JkZXIiPjwvc3Bhbj48cD4nK2UuRGVzY3JpcHRpb24rIjwvcD4gIiksMCkscj0wLGk9ZS5Db29raWVzO3I8aS5sZW5ndGg7cisrKXt2YXIgcz1pW3JdLGE9IiIsYT1zLklzU2Vzc2lvbj9sLkxpZmVzcGFuVHlwZVRleHQ6MD09PXMuTGVuZ3RoPyI8MSAiK2wuTGlmZXNwYW5EdXJhdGlvblRleHR8fGwuUENlbnRlclZlbmRvckxpc3RMaWZlc3BhbkRheXM6cy5MZW5ndGgrIiAiK2wuTGlmZXNwYW5EdXJhdGlvblRleHR8fGwuUENlbnRlclZlbmRvckxpc3RMaWZlc3BhbkRheXMsYT1sLklzTGlmZXNwYW5FbmFibGVkPyImbmJzcDsoIithKyIpIjoiIjttKG8oIi5jb29raWVzLXRkIHVsIikpLmFwcGVuZCgiPGxpPiAiK3MuTmFtZSsiICIrYSsiIDwvbGk+IiksbC5Jc0xpZmVzcGFuRW5hYmxlZCYmKGE9cy5MZW5ndGg/cy5MZW5ndGgrIiBkYXlzIjoiTi9BIixtKG8oIi5saWZlLXNwYW4tdGQgdWwiKSkuYXBwZW5kKCI8bGk+IithKyI8L2xpPiIpKSwwPT09biYmKG0obygiLmhvc3QtdGQiKSkuYXBwZW5kKCc8c3BhbiBjbGFzcz0ib3QtbW9iaWxlLWJvcmRlciI+PC9zcGFuPicpLG0obygiLmhvc3QtdGQiKSkuYXBwZW5kKCc8YSBocmVmPSJodHRwczovL2Nvb2tpZXBlZGlhLmNvLnVrL2hvc3QvJytzLkhvc3QrJyIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IicrKGUuRGlzcGxheU5hbWV8fGUuSG9zdE5hbWUpKyIgIitPLk5ld1dpblR4dCsnIj4nKyhlLkRpc3BsYXlOYW1lfHxlLkhvc3ROYW1lKSsiPC9hPiIpKSxuKyt9ZHx8dC5yZW1vdmVDaGlsZChvKCJ0ZC5ob3N0LWRlc2NyaXB0aW9uLXRkIikpLG0odSgidGJvZHkiKSkuYXBwZW5kKHQpfSkobltvXSk7MD09PXQubGVuZ3RoJiZtKHUoInRhYmxlIikpLmVsLnJlbW92ZUNoaWxkKG0odSgidGhlYWQiKSkuZWwpfSxici5wcm90b3R5cGUudHJhbnNmb3JtRmlyc3RQYXJ0eUNvb2tpZXM9ZnVuY3Rpb24oZSx0LG8pe3ZhciBuPXRoaXMscj10LnNsaWNlKCksdD0oZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe24ucG9wdWxhdGVIb3N0R3JvdXAoZSxyLE8uZmlyc3RQYXJ0eVR4dCl9KSxvLkdlbmVyYWxWZW5kb3JzSWRzKSxlPSh0aGlzLnBvcHVsYXRlR2VuVmVuZG9yKHQsbyxyKSxvLlN1Ykdyb3Vwc3x8W10pO3JldHVybiBlLmxlbmd0aCYmZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUuR2VuZXJhbFZlbmRvcnNJZHM7bi5wb3B1bGF0ZUdlblZlbmRvcih0LGUscil9KSxyfSxici5wcm90b3R5cGUucG9wdWxhdGVHZW5WZW5kb3I9ZnVuY3Rpb24oZSxvLG4pe3ZhciByPXRoaXM7ZS5sZW5ndGgmJmUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1PLkdlbmVyYWxWZW5kb3JzLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuVmVuZG9yQ3VzdG9tSWQ9PT10fSk7ZS5Db29raWVzLmxlbmd0aCYmZS5Db29raWVzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ7ZS5jYXRlZ29yeT09PW8uR3JvdXBOYW1lJiYodD1lLmlzVGhpcmRQYXJ0eT8iIjpPLmZpcnN0UGFydHlUeHQsci5wb3B1bGF0ZUhvc3RHcm91cChlLG4sdCkpfSl9KX0sYnIucHJvdG90eXBlLnBvcHVsYXRlSG9zdEdyb3VwPWZ1bmN0aW9uKHQsZSxvKXtlLnNvbWUoZnVuY3Rpb24oZSl7aWYoZS5Ib3N0TmFtZT09PXQuSG9zdCYmZS5UeXBlPT09bylyZXR1cm4gZS5Db29raWVzLnB1c2godCksITB9KXx8ZS51bnNoaWZ0KHtIb3N0TmFtZTp0Lkhvc3QsRGlzcGxheU5hbWU6dC5Ib3N0LEhvc3RJZDoiIixEZXNjcmlwdGlvbjoiIixUeXBlOm8sQ29va2llczpbdF19KX0sYnIucHJvdG90eXBlLmluc2VydENvb2tpZUxpbmVCeUxpbmU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuanNvbixvPWUudGFibGVSb3dUZW1wbGF0ZSxuPWUuc2hvd0hvc3REZXNjcmlwdGlvbixyPWUuc3QsaT0wLHM9ZS5ob3N0cztpPHMubGVuZ3RoO2krKylmb3IodmFyIGE9c1tpXSxsPTAsYz1hLkNvb2tpZXM7bDxjLmxlbmd0aDtsKyspe3ZhciBkPWNbbF0sdT1kLklzU2Vzc2lvbj90LkxpZmVzcGFuVHlwZVRleHQ6aC5nZXREdXJhdGlvbihkKSxwPWQuTmFtZSxDPShhLlR5cGUmJihwPSc8YSBocmVmPSJodHRwczovL2Nvb2tpZXBlZGlhLmNvLnVrL2Nvb2tpZXMvJytwKyciXG4gICAgICAgICAgICAgICAgICAgICAgICByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIiBhcmlhLWxhYmVsPSInK3ArIiAiK08uTmV3V2luVHh0KyciPicrcCsiXG4gICAgICAgICAgICAgICAgICAgIDwvYT4iKSxvLmNsb25lTm9kZSghMCkpLGc9dGhpcy5xdWVyeVRvSHRtbEVsZW1lbnQoQyk7dGhpcy5jbGVhckNvb2tpZVJvd0VsZW1lbnQoZyksdGhpcy5jcmVhdGVDb29raWVSb3dIdG1sRWxlbWVudCh7aG9zdDphLHN1Ykdyb3VwQ29va2llOmQsdHJ0OmcsanNvbjp0LGxpZmVzcGFuVGV4dDp1LGhvc3RUeXBlOnB9KSx0aGlzLnJlbW92ZUxpZmVTcGFuT3JIb3N0RGVzY3JpcHRpb24odCxuLEMsZyksbShyKCJ0Ym9keSIpKS5hcHBlbmQoQyl9fSxici5wcm90b3R5cGUucmVtb3ZlTGlmZVNwYW5Pckhvc3REZXNjcmlwdGlvbj1mdW5jdGlvbihlLHQsbyxuKXtlLklzTGlmZXNwYW5FbmFibGVkfHxvLnJlbW92ZUNoaWxkKG4oInRkLm90LWxpZmUtc3Bhbi10ZCIpKSx0fHxvLnJlbW92ZUNoaWxkKG4oInRkLm90LWhvc3QtZGVzY3JpcHRpb24tdGQiKSl9LGJyLnByb3RvdHlwZS5jcmVhdGVDb29raWVSb3dIdG1sRWxlbWVudD1mdW5jdGlvbihlKXt2YXIgdD1lLmhvc3Qsbz1lLnN1Ykdyb3VwQ29va2llLG49ZS50cnQscj1lLmxpZmVzcGFuVGV4dCxpPWUuaG9zdFR5cGUscz0iLm90LWhvc3QtdGQiLGU9KHRoaXMuc2V0RGF0YUxhYmVsQXR0cmlidXRlKG4sZS5qc29uKSxtKG4oIi5vdC1ob3N0LWRlc2NyaXB0aW9uLXRkIikpLmh0bWwoJzxzcGFuIGNsYXNzPSJvdC1tb2JpbGUtYm9yZGVyIj48L3NwYW4+PHA+JytvLmRlc2NyaXB0aW9uKyI8L3A+ICIpLG0obihzKSkuYXBwZW5kKCc8c3BhbiBjbGFzcz0ib3QtbW9iaWxlLWJvcmRlciI+PC9zcGFuPicpLHQuRGlzcGxheU5hbWV8fHQuSG9zdE5hbWUpO20obihzKSkuYXBwZW5kKHQuVHlwZT9lOic8YSBocmVmPSJodHRwczovL2Nvb2tpZXBlZGlhLmNvLnVrL2hvc3QvJytvLkhvc3QrJyIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IicrZSsiICIrTy5OZXdXaW5UeHQrJyI+XG4gICAgICAgICAgICAgICAgICAgICAgICAnK2UrIlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPiIpLG4oIi5vdC1jb29raWVzLXRkIC5vdC1jb29raWVzLXRkLWNvbnRlbnQiKS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsUy5nZXRJbm5lckh0bWxDb250ZW50KGkpKSxtKG4oIi5vdC1saWZlLXNwYW4tdGQgLm90LWxpZmUtc3Bhbi10ZC1jb250ZW50IikpLmh0bWwociksbShuKCIub3QtY29va2llcy10eXBlIC5vdC1jb29raWVzLXR5cGUtdGQtY29udGVudCIpKS5odG1sKHQuVHlwZT9PLmZpcnN0UGFydHlUeHQ6Ty50aGlyZFBhcnR5VHh0KX0sYnIucHJvdG90eXBlLnNldERhdGFMYWJlbEF0dHJpYnV0ZT1mdW5jdGlvbihlLHQpe3ZhciBvPSJkYXRhLWxhYmVsIjtlKCIub3QtaG9zdC10ZCIpLnNldEF0dHJpYnV0ZShvLHQuQ2F0ZWdvcmllc1RleHQpLGUoIi5vdC1jb29raWVzLXRkIikuc2V0QXR0cmlidXRlKG8sdC5Db29raWVzVGV4dCksZSgiLm90LWNvb2tpZXMtdHlwZSIpLnNldEF0dHJpYnV0ZShvLHQuQ29va2llc1VzZWRUZXh0KSxlKCIub3QtbGlmZS1zcGFuLXRkIikuc2V0QXR0cmlidXRlKG8sdC5MaWZlc3BhblRleHQpLGUoIi5vdC1ob3N0LWRlc2NyaXB0aW9uLXRkIikuc2V0QXR0cmlidXRlKG8sdC5Db29raWVzRGVzY1RleHQpfSxici5wcm90b3R5cGUuY2xlYXJDb29raWVSb3dFbGVtZW50PWZ1bmN0aW9uKGUpe20oZSgiLm90LWNvb2tpZXMtdGQgc3BhbiIpKS50ZXh0KCIiKSxtKGUoIi5vdC1saWZlLXNwYW4tdGQgc3BhbiIpKS50ZXh0KCIiKSxtKGUoIi5vdC1jb29raWVzLXR5cGUgc3BhbiIpKS50ZXh0KCIiKSxtKGUoIi5vdC1jb29raWVzLXRkIC5vdC1jb29raWVzLXRkLWNvbnRlbnQiKSkuaHRtbCgiIiksbShlKCIub3QtaG9zdC10ZCIpKS5odG1sKCIiKX0sYnIucHJvdG90eXBlLnNldENvb2tpZUxpc3RIZWFkZXJPcmRlcj1mdW5jdGlvbihlKXt2YXIgZT1lLnF1ZXJ5U2VsZWN0b3IoInNlY3Rpb24gdGFibGUgdGhlYWQgdHIiKSx0PWUucXVlcnlTZWxlY3RvcigidGgub3QtaG9zdCIpLG89ZS5xdWVyeVNlbGVjdG9yKCJ0aC5vdC1jb29raWVzIiksbj1lLnF1ZXJ5U2VsZWN0b3IoInRoLm90LWxpZmUtc3BhbiIpLHI9ZS5xdWVyeVNlbGVjdG9yKCJ0aC5vdC1jb29raWVzLXR5cGUiKSxpPWUucXVlcnlTZWxlY3RvcigidGgub3QtaG9zdC1kZXNjcmlwdGlvbiIpO2UuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudCgiIiksZS5hcHBlbmRDaGlsZChvLmNsb25lTm9kZSghMCkpLGUuYXBwZW5kQ2hpbGQodC5jbG9uZU5vZGUoITApKSxlLmFwcGVuZENoaWxkKG4uY2xvbmVOb2RlKCEwKSksZS5hcHBlbmRDaGlsZChyLmNsb25lTm9kZSghMCkpLGUuYXBwZW5kQ2hpbGQoaS5jbG9uZU5vZGUoITApKX0sYnIucHJvdG90eXBlLnNldENvb2tpZUxpc3RCb2R5T3JkZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCJ0ZC5vdC1ob3N0LXRkIiksbz1lLnF1ZXJ5U2VsZWN0b3IoInRkLm90LWNvb2tpZXMtdGQiKSxuPWUucXVlcnlTZWxlY3RvcigidGQub3QtbGlmZS1zcGFuLXRkIikscj1lLnF1ZXJ5U2VsZWN0b3IoInRkLm90LWNvb2tpZXMtdHlwZSIpLGk9ZS5xdWVyeVNlbGVjdG9yKCJ0ZC5vdC1ob3N0LWRlc2NyaXB0aW9uLXRkIik7ZS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KCIiKSxlLmFwcGVuZENoaWxkKG8uY2xvbmVOb2RlKCEwKSksZS5hcHBlbmRDaGlsZCh0LmNsb25lTm9kZSghMCkpLGUuYXBwZW5kQ2hpbGQobi5jbG9uZU5vZGUoITApKSxlLmFwcGVuZENoaWxkKHIuY2xvbmVOb2RlKCEwKSksZS5hcHBlbmRDaGlsZChpLmNsb25lTm9kZSghMCkpfSxici5wcm90b3R5cGUucXVlcnlUb0h0bWxFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yKGUpfX07dmFyIElyLGtyPWJyO2Z1bmN0aW9uIGJyKCl7dGhpcy5ncm91cHNDbGFzcz1WLHRoaXMuQ09PS0lFX1BPTElDWV9TRUxFQ1RPUj0iI290LXNkay1jb29raWUtcG9saWN5Iix0aGlzLk9QVEFOT05fUE9MSUNZX1NFTEVDVE9SPSIjb3B0YW5vbi1jb29raWUtcG9saWN5Iix0aGlzLk9ORVRSVVNUX0NPT0tJRV9QT0xJQ1k9IiNvdC1zZGstY29va2llLXBvbGljeSwgI29wdGFub24tY29va2llLXBvbGljeSJ9X3IucHJvdG90eXBlLklzQWxlcnRCb3hDbG9zZWRBbmRWYWxpZD1mdW5jdGlvbigpe3JldHVybiB3LmlzQWxlcnRCb3hDbG9zZWRBbmRWYWxpZCgpfSxfci5wcm90b3R5cGUuTG9hZEJhbm5lcj1mdW5jdGlvbigpe1RvLmxvYWRCYW5uZXIoKX0sX3IucHJvdG90eXBlLkluaXQ9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9ITEpLEJlLmluc2VydFZpZXdQb3J0VGFnKCksRnMuZW5zdXJlSHRtbEdyb3VwRGF0YUluaXRpYWxpc2VkKCksX24udXBkYXRlR3RtTWFjcm9zKCExKSxUci5pbml0aWFsaXNlTGFuZGluZ1BhdGgoKSxlfHxwby5pbml0aWFsaXNlQ3NzUmVmZXJlbmNlcygpfSxfci5wcm90b3R5cGUuRmV0Y2hBbmREb3dubG9hZFBDPWZ1bmN0aW9uKCl7dS5mZXRjaEFuZFNldHVwUEMoKX0sX3IucHJvdG90eXBlLlRvZ2dsZUluZm9EaXNwbGF5PWZ1bmN0aW9uKCl7VG8udHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50KHhvLEtvKSx1LnRvZ2dsZUluZm9EaXNwbGF5KCl9LF9yLnByb3RvdHlwZS5DbG9zZT1mdW5jdGlvbihlKXt1LmNsb3NlKGUpfSxfci5wcm90b3R5cGUuQWxsb3dBbGw9ZnVuY3Rpb24oZSl7Xy5hcGlTb3VyY2U9ZWUuQWNjZXB0QWxsLGguc2hvdWxkU2hvd0RvdWJsZU9wdEluU2lnbmFsKCEwKT9oLmNyZWF0ZURvdWJsZU9wdEluQ29uZmlybURpYWxvZyhELmlzUENWaXNpYmxlLGZ1bmN0aW9uKCl7Qy5hbGxvd0FsbEV2ZW50KGUpfSk6Qy5hbGxvd0FsbEV2ZW50KGUpfSxfci5wcm90b3R5cGUuUmVqZWN0QWxsPWZ1bmN0aW9uKGUpe18uYXBpU291cmNlPWVlLlJlamVjdEFsbCxDLnJlamVjdEFsbEV2ZW50KGUpfSxfci5wcm90b3R5cGUuc2VuZFJlY2VpcHQ9ZnVuY3Rpb24oKXt2YXIgZT1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLklOVEVSQUNUSU9OX1RZUEUpO3hzLmNyZWF0ZUNvbnNlbnRUeG4oITEsZSwhMSwhMCwhMCl9LF9yLnByb3RvdHlwZS5zZXREYXRhU3ViamVjdElkVjI9ZnVuY3Rpb24oZSx0LG8pe3ZvaWQgMD09PXQmJih0PSExKSx2b2lkIDA9PT1vJiYobz0iIiksKGV8fHQpJiYoZSYmZS50cmltKCkmJihlPWUucmVwbGFjZSgvIC9nLCIiKSxMLndyaXRlQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5DT05TRU5UX0lELGUsITApKSxudWxsIT0oZT1vKSYmZS50cmltKCkmJkwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLklERU5USUZJRVJfVFlQRSxvLnRyaW0oKSksRC5kc1BhcmFtcy5pc0Fub255bW91cz10LEQuZHNQYXJhbXMuZm9yY2VVc2VyQ29uc2VudEF0dHJpYnV0ZXM9ITAsTC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuSVNfQU5PTllNT1VTX0NPTlNFTlQsdD8iMSI6IjAiKSl9LF9yLnByb3RvdHlwZS5nZXREYXRhU3ViamVjdElkPWZ1bmN0aW9uKCl7cmV0dXJuIEwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuQ09OU0VOVF9JRCwhMCl9LF9yLnByb3RvdHlwZS5nZXREU0RlZmF1bHRJZGVudGlmaWVyPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIG51bGw9PShlPU8uQ29uc2VudEludGVncmF0aW9uKT92b2lkIDA6ZS5EZWZhdWx0SWRlbnRpZmllcn0sX3IucHJvdG90eXBlLnN5bmNocm9uaXNlQ29va2llV2l0aFBheWxvYWQ9ZnVuY3Rpb24obil7dmFyIGU9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsImdyb3VwcyIpLGU9di5zdHJUb0FycihlKSxyPVtdO2UuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgZT1lLnNwbGl0KCI6IiksdD15LmdldEdyb3VwQnlJZChlWzBdKSxvPXYuZmluZEluZGV4KG4sZnVuY3Rpb24oZSl7cmV0dXJuIGUuSWQ9PT10LlB1cnBvc2VJZH0pLG89bltvXTtvP28uVHJhbnNhY3Rpb25UeXBlPT09eGU/KHIucHVzaChlWzBdKyI6MSIpLHQuUGFyZW50P3UudG9nZ2xlU3ViQ2F0ZWdvcnkobnVsbCx0LkN1c3RvbUdyb3VwSWQsITAsdC5DdXN0b21Hcm91cElkKTp1LnRvZ2dsZVYyQ2F0ZWdvcnkobnVsbCx0LCEwLHQuQ3VzdG9tR3JvdXBJZCkpOihyLnB1c2goZVswXSsiOjAiKSx0LlBhcmVudD91LnRvZ2dsZVN1YkNhdGVnb3J5KG51bGwsdC5DdXN0b21Hcm91cElkLCExLHQuQ3VzdG9tR3JvdXBJZCk6dS50b2dnbGVWMkNhdGVnb3J5KG51bGwsdCwhMSx0LkN1c3RvbUdyb3VwSWQpKTpyLnB1c2goZVswXSsiOiIrZVsxXSl9KSxJby53cml0ZUdycFBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULHIpfSxfci5wcm90b3R5cGUuZ2V0R2VvbG9jYXRpb25EYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIEQudXNlckxvY2F0aW9ufSxfci5wcm90b3R5cGUuVHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50PWZ1bmN0aW9uKGUsdCxvLG4pe1RvLnRyaWdnZXJHb29nbGVBbmFseXRpY3NFdmVudChlLHQsbyxuKX0sX3IucHJvdG90eXBlLlJlY29uc2VudEdyb3Vwcz1mdW5jdGlvbigpe3ZhciBuPSExLGU9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsImdyb3VwcyIpLHI9di5zdHJUb0FycihlKSxpPXYuc3RyVG9BcnIoZS5yZXBsYWNlKC86MHw6MS9nLCIiKSkscz0hMSx0PUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULCJob3N0cyIpLGE9di5zdHJUb0Fycih0KSxsPXYuc3RyVG9BcnIodC5yZXBsYWNlKC86MHw6MS9nLCIiKSksYz1bImluYWN0aXZlIiwiaW5hY3RpdmUgbGFuZGluZ3BhZ2UiLCJkbyBub3QgdHJhY2siXTtlJiYoTy5Hcm91cHMuZm9yRWFjaChmdW5jdGlvbihlKXtGKGUuU3ViR3JvdXBzLFtlXSkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLkN1c3RvbUdyb3VwSWQsbz12LmluZGV4T2YoaSx0KTstMSE9PW8mJihlPXkuZ2V0R3JwU3RhdHVzKGUpLnRvTG93ZXJDYXNlKCksLTE8Yy5pbmRleE9mKGUpKSYmKG49ITAscltvXT10KygiaW5hY3RpdmUgbGFuZGluZ3BhZ2UiPT09ZT8iOjEiOiI6MCIpKX0pfSksbikmJklvLndyaXRlR3JwUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsciksdCYmKE8uR3JvdXBzLmZvckVhY2goZnVuY3Rpb24oZSl7RihlLlN1Ykdyb3VwcyxbZV0pLmZvckVhY2goZnVuY3Rpb24obil7bi5Ib3N0cy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0LG89di5pbmRleE9mKGwsZS5Ib3N0SWQpOy0xIT09byYmKHQ9eS5nZXRHcnBTdGF0dXMobikudG9Mb3dlckNhc2UoKSwtMTxjLmluZGV4T2YodCkpJiYocz0hMCxhW29dPWUuSG9zdElkKygiaW5hY3RpdmUgbGFuZGluZ3BhZ2UiPT09dD8iOjEiOiI6MCIpKX0pfSl9KSxzKSYmSW8ud3JpdGVIc3RQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxhKX0sX3IucHJvdG90eXBlLlNldEFsZXJ0Qm94Q2xvc2VkPWZ1bmN0aW9uKGUpe1RvLnNldEFsZXJ0Qm94Q2xvc2VkKGUpfSxfci5wcm90b3R5cGUuR2V0RG9tYWluRGF0YT1mdW5jdGlvbigpe3JldHVybiBfLnB1YkRvbWFpbkRhdGF9LF9yLnByb3RvdHlwZS5zZXRHZW9Mb2NhdGlvbj1mdW5jdGlvbihlLHQpe0QudXNlckxvY2F0aW9uPXtjb3VudHJ5OmUsc3RhdGU6dD12b2lkIDA9PT10PyIiOnQsc3RhdGVOYW1lOiIifX0sX3IucHJvdG90eXBlLmNoYW5nZUxhbmc9ZnVuY3Rpb24odCl7dmFyIG87dCE9PUQubGFuZyYmKG89Yi5tb2R1bGVJbml0aWFsaXplcixqdC5nZXRMYW5nSnNvbih0KS50aGVuKGZ1bmN0aW9uKGUpe2U/KF8uaW5pdChlKSxGcy5mZXRjaEFzc2V0cyh0KS50aGVuKGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9uZXRydXN0LXN0eWxlIiksZT0oZSYmKGUudGV4dENvbnRlbnQ9IiIpLHBvLmluaXRpYWxpc2VDc3NSZWZlcmVuY2VzKCksby5Jc1N1cHByZXNzUEMmJiFELmlzUENWaXNpYmxlfHwodi5yZW1vdmVDaGlsZChtKCIjb25ldHJ1c3QtcGMtc2RrIikuZWwpLEQudmVuZG9yRG9tSW5pdD0hMSxELmdlblZlbmRvckRvbUluaXQ9ITEsRy5pbnNlcnRQY0h0bWwoKSx1LmluaXRpYWxpc2VDb25zZW50Tm90aWNlSGFuZGxlcnMoKSxPLklzSWFiRW5hYmxlZCYmKHcuYXNzaWduSUFCRGF0YVdpdGhHbG9iYWxWZW5kb3JMaXN0KEQuZ3ZsT2JqKSxnLkluaXRpYWxpemVWZW5kb3JMaXN0KCkpLEQuaXNQQ1Zpc2libGUmJnUucmVzdG9yZVBjKCkpLCEwKTt2LnJlbW92ZUNoaWxkKG0oIiNvbmV0cnVzdC1iYW5uZXItc2RrIikuZWwpLHcuaXNBbGVydEJveENsb3NlZEFuZFZhbGlkKCl8fG8uSXNTdXBwcmVzc0Jhbm5lciYmKG8uSXNTdXBwcmVzc0Jhbm5lcixELnNraXBBZGRpbmdIVE1MKXx8Ty5Ob0Jhbm5lcnx8IU8uU2hvd0FsZXJ0Tm90aWNlfHwodS5pbml0aWFsaXplQWxhcnRIdG1sQW5kSGFuZGxlcigpLEdvLnNldEJhbm5lckZvY3VzKCksZT0hMSksTHIuaW5pdENvb2tpZVBvbGljeUFuZFNldHRpbmdzKCksdi5yZW1vdmVDaGlsZChtKCIjb3Qtc2RrLWJ0bi1mbG9hdGluZyIpLmVsKSx6cy5pbnNlcnRDU0J0bihlKSxMci5wcm9jZXNzZWRIdG1sPW51bGwsTHIudXBkYXRlVENTdHJpbmdPbkxhbmdDaGFuZ2UodCl9KSk6Y29uc29sZS5lcnJvcigiTGFuZ3VhZ2U6Iit0KyIgZG9lc24ndCBleGlzdCBmb3IgdGhlIGdlbyBydWxlIil9KSl9LF9yLnByb3RvdHlwZS51cGRhdGVUQ1N0cmluZ09uTGFuZ0NoYW5nZT1mdW5jdGlvbihlKXtfLmlzSWFiMm9ydjJUZW1wbGF0ZSYmKEQuY29uc2VudExhbmd1YWdlPWUsRC50Y01vZGVsLmNvbnNlbnRMYW5ndWFnZT1ELmNvbnNlbnRMYW5ndWFnZSxELnRjTW9kZWwudXNlTm9uU3RhbmRhcmRUZXh0cz1PLlVzZU5vblN0YW5kYXJkU3RhY2tzLHcuaXNBbGVydEJveENsb3NlZEFuZFZhbGlkKCl8fGgudXBkYXRlVENTdHJpbmcoKSl9LF9yLnByb3RvdHlwZS5pbml0Q29va2llUG9saWN5QW5kU2V0dGluZ3M9ZnVuY3Rpb24oZSl7dmFyIHQ7KGU9dm9pZCAwPT09ZT8hMTplKSYmKG51bGwhPSh0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5vdC1zZGstc2hvdy1zZXR0aW5ncyIpKSYmdC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdS5jb29raWVzU2V0dGluZ3NCb3VuZExpc3RlbmVyKSxudWxsIT0odD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIub3B0YW5vbi10b2dnbGUtZGlzcGxheSIpKSkmJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHUuY29va2llc1NldHRpbmdzQm91bmRMaXN0ZW5lciksYi5mcC5Db29raWVWMlRyYWNraW5nVGVjaG5vbG9naWVzP3pzLmluc2VydFRyYWNraW5nVGVjaG5vbG9naWVzKCk6SXIuaW5zZXJ0Q29va2llUG9saWN5SHRtbCgpLHUuaW5zZXJ0Q29va2llU2V0dGluZ1RleHQoZSl9LF9yLnByb3RvdHlwZS5zaG93VmVuZG9yc0xpc3Q9ZnVuY3Rpb24oKXtELnBjTGF5ZXIhPT1yZS5WZW5kb3JMaXN0JiYodS5zaG93QWxsVmVuZG9ycygpLFRvLnRyaWdnZXJHb29nbGVBbmFseXRpY3NFdmVudCh4byxXbykpfSxfci5wcm90b3R5cGUuZ2V0VGVzdExvZ0RhdGE9ZnVuY3Rpb24oKXt2YXIgZT1PLkdyb3Vwcyx0PV8ucHViRG9tYWluRGF0YSxvPWIubW9kdWxlSW5pdGlhbGl6ZXIuVmVyc2lvbixvPShjb25zb2xlLmluZm8oIiVjV2VsY29tZSB0byBPbmVUcnVzdCBMb2ciLCJwYWRkaW5nOiA4cHg7IGJhY2tncm91bmQtY29sb3I6ICM0M2MyMzM7IGNvbG9yOiB3aGl0ZTsgZm9udC1zdHlsZTogaXRhbGljOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgZm9udC1zaXplOiAxLjVlbTsiKSxjb25zb2xlLmluZm8oIlNjcmlwdCBpcyBmb3I6ICVjIisodC5Eb21haW58fE8ub3B0YW5vbkNvb2tpZURvbWFpbiksInBhZGRpbmc6IDRweCA2cHg7IGZvbnQtc3R5bGU6IGl0YWxpYzsgYm9yZGVyOiAycHggc29saWQgIzQzYzIzMzsgZm9udC1zaXplOiAxMnB4OyIpLGNvbnNvbGUuaW5mbygiU2NyaXB0IFZlcnNpb24gUHVibGlzaGVkOiAiK28pLGNvbnNvbGUuaW5mbygiVGhlIGNvbnNlbnQgbW9kZWwgaXM6ICIrdC5Db25zZW50TW9kZWwuTmFtZSksbnVsbCE9PXcuYWxlcnRCb3hDbG9zZURhdGUoKSksbj0oY29uc29sZS5pbmZvKCJDb25zZW50IGhhcyAiKyhvPyIiOiJub3QgIikrImJlZW4gZ2l2ZW4gIisobz8i8J+RjSI6IvCfm5EiKSksX24uY2hlY2tBbmRXYXJuR0NNQ29uZmlnKCksW10pLHI9KGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD0iIix0PWUuU3RhdHVzJiYiYWx3YXlzIGFjdGl2ZSI9PT1lLlN0YXR1cy50b0xvd2VyQ2FzZSgpPyJBbHdheXMgQWN0aXZlIjpWLmlzR3JvdXBBY3RpdmUoZSk/IkFjdGl2ZSI6IkluYWN0aXZlIjtuLnB1c2goe0N1c3RvbUdyb3VwSWQ6ZS5DdXN0b21Hcm91cElkLEdyb3VwTmFtZTplLkdyb3VwTmFtZSxTdGF0dXM6dH0pfSksY29uc29sZS5ncm91cENvbGxhcHNlZCgiQ3VycmVudCBDYXRlZ29yeSBTdGF0dXMiKSxjb25zb2xlLnRhYmxlKG4pLGNvbnNvbGUuZ3JvdXBFbmQoKSxbXSksbz0odC5HZW5lcmFsVmVuZG9ycy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3IucHVzaCh7Q3VzdG9tR3JvdXBJZDplLlZlbmRvckN1c3RvbUlkLE5hbWU6ZS5OYW1lLFN0YXR1czpMci5pc0NhdGVnb3J5QWN0aXZlKGUuVmVuZG9yQ3VzdG9tSWQpPyJhY3RpdmUiOiJpbmFjdGl2ZSJ9KX0pLGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQoIkdlbmVyYWwgVmVuZG9yIElkcyIpLGNvbnNvbGUudGFibGUociksY29uc29sZS5ncm91cEVuZCgpLF8uZ2V0UmVnaW9uUnVsZSgpKSx0PUQudXNlckxvY2F0aW9uLGk9Yi5tb2R1bGVJbml0aWFsaXplci5HZW9SdWxlR3JvdXBOYW1lLHQ9KF8uY29uZGl0aW9uYWxMb2dpY0VuYWJsZWQ/Y29uc29sZS5ncm91cENvbGxhcHNlZCgiR2VvbG9jYXRpb24sIFRlbXBsYXRlICYgQ29uZGl0aW9uIik6Y29uc29sZS5ncm91cENvbGxhcHNlZCgiR2VvbG9jYXRpb24gYW5kIFRlbXBsYXRlIiksRC51c2VyTG9jYXRpb24uY291bnRyeSYmY29uc29sZS5pbmZvKCJUaGUgR2VvbG9jYXRpb24gaXMgIit0LmNvdW50cnkudG9VcHBlckNhc2UoKSksY29uc29sZS5pbmZvKCJUaGUgR2VvbG9jYXRpb24gcnVsZSBpcyAiK28uTmFtZSksY29uc29sZS5pbmZvKCJUaGUgR2VvbG9jYXRpb25SdWxlR3JvdXAgaXMgIitpKSxfLmNhblVzZUNvbmRpdGlvbmFsTG9naWMmJmNvbnNvbGUuaW5mbygiVGhlIENvbmRpdGlvbiBuYW1lIGlzICIrXy5Db25kaXRpb24uTmFtZSksY29uc29sZS5pbmZvKCJUaGUgVGVtcGxhdGVOYW1lIGlzICIrXy5nZXRUZW1wbGF0ZU5hbWUoKSksY29uc29sZS5ncm91cEVuZCgpLGUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBWLmlzR3JvdXBBY3RpdmUoZSkmJiJDT09LSUUiPT09ZS5UeXBlfSkpO2NvbnNvbGUuZ3JvdXBDb2xsYXBzZWQoIlRoZSBjb29raWVzIGV4cGVjdGVkIHRvIGJlIGFjdGl2ZSBpZiBibG9ja2luZyBoYXMgYmVlbiBpbXBsZW1lbnRlZCBhcmUiKSx0LmZvckVhY2goZnVuY3Rpb24oZSl7Y29uc29sZS5ncm91cENvbGxhcHNlZChlLkdyb3VwTmFtZSk7ZT1Mci5nZXRBbGxGb3JtYXRDb29raWVzRm9yQUdyb3VwKGUpO2NvbnNvbGUudGFibGUoZSxbIk5hbWUiLCJIb3N0IiwiZGVzY3JpcHRpb24iXSksY29uc29sZS5ncm91cEVuZCgpfSksY29uc29sZS5ncm91cEVuZCgpfSxfci5wcm90b3R5cGUuaXNDYXRlZ29yeUFjdGl2ZT1mdW5jdGlvbihlKXtyZXR1cm4tMSE9PXdpbmRvdy5PcHRhbm9uQWN0aXZlR3JvdXBzLmluZGV4T2YoIiwiK2UrIiwiKX0sX3IucHJvdG90eXBlLmdldEFsbEZvcm1hdENvb2tpZXNGb3JBR3JvdXA9ZnVuY3Rpb24oZSl7dmFyIHQ9W107cmV0dXJuIGUuRmlyc3RQYXJ0eUNvb2tpZXMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5wdXNoKHtOYW1lOmUuTmFtZSxIb3N0OmUuSG9zdCxEZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9ufSl9KSwobnVsbD09KGU9ZS5Ib3N0cyk/dm9pZCAwOmUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuY29uY2F0KEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodC5Db29raWVzKSkpfSxbXSkpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQucHVzaCh7TmFtZTplLk5hbWUsSG9zdDplLkhvc3QsRGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbn0pfSksdH0sX3IucHJvdG90eXBlLnVwZGF0ZVNpbmd1bGFyQ29uc2VudD1mdW5jdGlvbihsLGMpe3JldHVybiBQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0LG8sbixyLGkscyxhO3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx1LmZldGNoQW5kU2V0dXBQQygpXTtjYXNlIDE6Zm9yKGUuc2VudCgpLF8uYXBpU291cmNlPWVlLlVwZGF0ZUNvbnNlbnQsdD1jLnNwbGl0KCIsIiksbz1bXSxuPTAscj10O248ci5sZW5ndGg7bisrKXM9cltuXSxzPXMuc3BsaXQoIjoiKSxpPXNbMF0scz1zWzFdLGE9Qm9vbGVhbihOdW1iZXIocykpLGw9PT1ndD8iYWx3YXlzIGFjdGl2ZSI9PT15LmdldEdycFN0YXR1cyh5LmdldEdyb3VwQnlJZChpKSl8fChMci51cGRhdGVDb25zZW50QXJyYXkoRC5ncm91cHNDb25zZW50LGkscyksby5wdXNoKHtpZDppLGlzRW5hYmxlZDphfSkpOmw9PT1odD9Mci51cGRhdGVDb25zZW50QXJyYXkoRC5ob3N0c0NvbnNlbnQsaSxzKTpsPT09eXQ/RC5nZW5WZW5kb3JzQ29uc2VudFtpXT1hOmw9PT1mdCYmby5wdXNoKHtpZDppLGlzRW5hYmxlZDphfSk7cmV0dXJuIEMuaGFuZGxlVG9nZ2xlc09uU2luZ3VsYXJDb25zZW50VXBkYXRlKGwsbyksWzJdfX0pfSl9LF9yLnByb3RvdHlwZS52ZW5kb3JTZXJ2aWNlRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiBELnNob3dWZW5kb3JTZXJ2aWNlfSxfci5wcm90b3R5cGUudXBkYXRlR0NNPWZ1bmN0aW9uKGUpe2V8fGNvbnNvbGUuZXJyb3IoIk5vIGNhbGxiYWNrIHBhc3NlZCB0byB0aGUgVXBkYXRlR0NNIiksXy5nY21VcGRhdGVDYWxsYmFjaz1lfSxfci5wcm90b3R5cGUudXBkYXRlQ29uc2VudEFycmF5PWZ1bmN0aW9uKGUsdCxvKXt2YXIgbj1lLmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4gZT09PXQrIjowInx8ZT09PXQrIjoxIn0pOy0xPG4/ZVtuXT10KyI6IitvOmUucHVzaCh0KyI6IitvKX07dmFyIExyLEVyPV9yO2Z1bmN0aW9uIF9yKCl7dGhpcy5wcm9jZXNzZWRIdG1sPSIiLHRoaXMudXNlR2VvTG9jYXRpb25TZXJ2aWNlPSEwLHRoaXMuSXNBbGVydEJveENsb3NlZD10aGlzLklzQWxlcnRCb3hDbG9zZWRBbmRWYWxpZCx0aGlzLkluaXRpYWxpemVCYW5uZXI9ZnVuY3Rpb24oKXtyZXR1cm4genMuaW5pdEJhbm5lcigpfSx0aGlzLmdldEhUTUw9ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9uZXRydXN0LWJhbm5lci1zZGsiKXx8KEcuaW5zZXJ0UGNIdG1sKCksZ3IuaW5zZXJ0QWxlcnRIdG1sKCkpLExyLnByb2Nlc3NlZEh0bWx8fChMci5wcm9jZXNzZWRIdG1sPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1jb25zZW50LXNkayIpLm91dGVySFRNTCksTHIucHJvY2Vzc2VkSHRtbH0sdGhpcy5nZXRDU1M9ZnVuY3Rpb24oKXtyZXR1cm4gcG8ucHJvY2Vzc2VkQ1NTfSx0aGlzLnNldENvbnNlbnRQcm9maWxlPWZ1bmN0aW9uKGUpe3ZhciB0LG87ZS5jdXN0b21QYXlsb2FkJiZudWxsIT0odD1vPWUuY3VzdG9tUGF5bG9hZCkmJnQuSW50ZXJhY3Rpb24mJkwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLklOVEVSQUNUSU9OX0NPVU5ULG8uSW50ZXJhY3Rpb24pLExyLnNldERhdGFTdWJqZWN0SWRWMihlLmlkZW50aWZpZXIsZS5pc0Fub255bW91cyxlLmlkZW50aWZpZXJUeXBlKSxMci5zeW5jaHJvbmlzZUNvb2tpZVdpdGhQYXlsb2FkKGUucHVycG9zZXMpLEMuZXhlY3V0ZU9wdGFub25XcmFwcGVyKCl9LHRoaXMuSW5zZXJ0U2NyaXB0PWZ1bmN0aW9uKGUsdCxvLG4scixpKXt2YXIgcyxhPW51bGwhPW4mJnZvaWQgMCE9PW4sbD1hJiZ2b2lkIDAhPT1uLmlnbm9yZUdyb3VwQ2hlY2smJiEwPT09bi5pZ25vcmVHcm91cENoZWNrO2lmKFYuY2FuSW5zZXJ0Rm9yR3JvdXAocixsKSYmIXYuY29udGFpbnMoRC5zcmNFeGVjR3JwcyxyKSl7RC5zcmNFeGVjR3Jwc1RlbXAucHVzaChyKSxhJiZ2b2lkIDAhPT1uLmRlbGV0ZVNlbGVjdG9yQ29udGVudCYmITA9PT1uLmRlbGV0ZVNlbGVjdG9yQ29udGVudCYmdi5lbXB0eSh0KTt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtzd2l0Y2gobnVsbCE9byYmdm9pZCAwIT09byYmKHM9ITEsYy5vbmxvYWQ9Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtzfHx0aGlzLnJlYWR5U3RhdGUmJiJsb2FkZWQiIT09dGhpcy5yZWFkeVN0YXRlJiYiY29tcGxldGUiIT09dGhpcy5yZWFkeVN0YXRlfHwocz0hMCxvKCkpfSksYy50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGMuc3JjPWUsaSYmKGMuYXN5bmM9aSksdCl7Y2FzZSJoZWFkIjpkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGMpO2JyZWFrO2Nhc2UiYm9keSI6ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXS5hcHBlbmRDaGlsZChjKTticmVhaztkZWZhdWx0OnZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpO2QmJihkLmFwcGVuZENoaWxkKGMpLGEpJiZ2b2lkIDAhPT1uLm1ha2VTZWxlY3RvclZpc2libGUmJiEwPT09bi5tYWtlU2VsZWN0b3JWaXNpYmxlJiZ2LnNob3codCl9aWYoYSYmdm9pZCAwIT09bi5tYWtlRWxlbWVudHNWaXNpYmxlKWZvcih2YXIgdT0wLHA9bi5tYWtlRWxlbWVudHNWaXNpYmxlO3U8cC5sZW5ndGg7dSsrKXt2YXIgQz1wW3VdO3Yuc2hvdyhDKX1pZihhJiZ2b2lkIDAhPT1uLmRlbGV0ZUVsZW1lbnRzKWZvcih2YXIgZz0wLGg9bi5kZWxldGVFbGVtZW50cztnPGgubGVuZ3RoO2crKyl7Qz1oW2ddO3YucmVtb3ZlKEMpfX19LHRoaXMuSW5zZXJ0SHRtbD1mdW5jdGlvbihlLHQsbyxuLHIpe3ZhciBpPW51bGwhPW4mJnZvaWQgMCE9PW4scz1pJiZ2b2lkIDAhPT1uLmlnbm9yZUdyb3VwQ2hlY2smJiEwPT09bi5pZ25vcmVHcm91cENoZWNrO2lmKFYuY2FuSW5zZXJ0Rm9yR3JvdXAocixzKSYmIXYuY29udGFpbnMoRC5odG1sRXhlY0dycHMscikpe2lmKEQuaHRtbEV4ZWNHcnBzVGVtcC5wdXNoKHIpLGkmJnZvaWQgMCE9PW4uZGVsZXRlU2VsZWN0b3JDb250ZW50JiYhMD09PW4uZGVsZXRlU2VsZWN0b3JDb250ZW50JiZ2LmVtcHR5KHQpLHYuYXBwZW5kVG8odCxlKSxpJiZ2b2lkIDAhPT1uLm1ha2VTZWxlY3RvclZpc2libGUmJiEwPT09bi5tYWtlU2VsZWN0b3JWaXNpYmxlJiZ2LnNob3codCksaSYmdm9pZCAwIT09bi5tYWtlRWxlbWVudHNWaXNpYmxlKWZvcih2YXIgYT0wLGw9bi5tYWtlRWxlbWVudHNWaXNpYmxlO2E8bC5sZW5ndGg7YSsrKXt2YXIgYz1sW2FdO3Yuc2hvdyhjKX1pZihpJiZ2b2lkIDAhPT1uLmRlbGV0ZUVsZW1lbnRzKWZvcih2YXIgZD0wLHU9bi5kZWxldGVFbGVtZW50cztkPHUubGVuZ3RoO2QrKyl7Yz11W2RdO3YucmVtb3ZlKGMpfW51bGwhPW8mJnZvaWQgMCE9PW8mJm8oKX19LHRoaXMuQmxvY2tHb29nbGVBbmFseXRpY3M9ZnVuY3Rpb24oZSx0KXt3aW5kb3dbImdhLWRpc2FibGUtIitlXT0hVi5jYW5JbnNlcnRGb3JHcm91cCh0KX19RHIucHJvdG90eXBlLmdldEZpZWxkc1ZhbHVlcz1mdW5jdGlvbihlLHQsbyxuLHIpe3ZvaWQgMD09PXImJihyPSExKTtlPXRoaXMuZ2V0U2VjdGlvbkZpZWxkc01hcHBpbmcoZSksdD10aGlzLmdldFNlY3Rpb25GaWVsZHNNYXBwaW5nKHQsITApLG89dGhpcy5nZXREeW5hbWljRmllbGRzKG8sbiksbj10aGlzLmdldE1TUEFTZWN0aW9uRmllbGRWYWx1ZSgpLHI9cj90aGlzLmdldEdwY1NlY3Rpb25GaWVsZFZhbHVlKCk6e307cmV0dXJuIE8uSXNNU1BBRW5hYmxlZCYmTy5NU1BBT3B0aW9uTW9kZT09PU9lLk1zcGFTZXJ2aWNlUHJvdmlkZXJNb2RlJiZiLmZwLkNvb2tpZUlBQkdQUFYyP3RoaXMuc2VydmljZVByb3ZpZGVyTW9kZShlLHQsbyxuLHIpOlIoUihSKFIoUih7fSxlKSx0KSxvKSxuKSxyKX0sRHIucHJvdG90eXBlLnNlcnZpY2VQcm92aWRlck1vZGU9ZnVuY3Rpb24oZSx0LG8sbixyKXtlPXRoaXMuZ2V0Tm90QXBwbGljYWJsZVZhbHVlKGUpLHQ9dGhpcy5nZXROb3RBcHBsaWNhYmxlVmFsdWUodCksbz10aGlzLmdldE5vdEFwcGxpY2FibGVWYWx1ZShvKTtyZXR1cm4gUihSKFIoUihSKHt9LGUpLHQpLG8pLG4pLHIpfSxEci5wcm90b3R5cGUuZ2V0Tm90QXBwbGljYWJsZVZhbHVlPWZ1bmN0aW9uKGUpe3ZhciBvPXt9O3JldHVybiBPYmplY3QuZW50cmllcyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0sZT1lWzFdO0FycmF5LmlzQXJyYXkoZSk/b1t0XT1lLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gMH0pOm9bdF09MH0pLG99LERyLnByb3RvdHlwZS5nZXRHcGNTZWN0aW9uRmllbGRWYWx1ZT1mdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlW0RlLkdwY1NlZ21lbnRUeXBlXT0xLGVbRGUuR3BjXT1fLmdwY0VuYWJsZWQsZX0sRHIucHJvdG90eXBlLmdldE1TUEFTZWN0aW9uRmllbGRWYWx1ZT1mdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBPLklzTVNQQUVuYWJsZWQ/KGUuTXNwYUNvdmVyZWRUcmFuc2FjdGlvbj0xLE8uTVNQQU9wdGlvbk1vZGU9PT1PZS5Nc3BhU2VydmljZVByb3ZpZGVyTW9kZT8oZS5Nc3BhU2VydmljZVByb3ZpZGVyTW9kZT0xLGUuTXNwYU9wdE91dE9wdGlvbk1vZGU9Mik6Ty5NU1BBT3B0aW9uTW9kZT09PU9lLk1zcGFPcHRPdXRPcHRpb25Nb2RlPyhlLk1zcGFTZXJ2aWNlUHJvdmlkZXJNb2RlPTIsZS5Nc3BhT3B0T3V0T3B0aW9uTW9kZT0xKTooZS5Nc3BhU2VydmljZVByb3ZpZGVyTW9kZT0yLGUuTXNwYU9wdE91dE9wdGlvbk1vZGU9MikpOihlLk1zcGFDb3ZlcmVkVHJhbnNhY3Rpb249MixlLk1zcGFTZXJ2aWNlUHJvdmlkZXJNb2RlPTAsZS5Nc3BhT3B0T3V0T3B0aW9uTW9kZT0wKSxlfSxEci5wcm90b3R5cGUuZ2V0RHluYW1pY0FycmF5RmllbGRzVmFsdWU9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG89e30sbj1bXSxyPXRoaXMuZ2V0U2VjdGlvbkZpZWxkc01hcHBpbmcodCksaT0xO2k8PU9iamVjdC5rZXlzKHIpLmxlbmd0aDtpKyspbi5wdXNoKHJbZStpXSk7cmV0dXJuIG9bZV09bixvfSxEci5wcm90b3R5cGUuZ2V0RHluYW1pY0ZpZWxkcz1mdW5jdGlvbihlLHQpe3ZhciBvLG49e307cmV0dXJuIE8uSXNHUFBLbm93bkNoaWxkQXBwbGljYWJsZSYmZSYmKG89dGhpcy5nZXREeW5hbWljQXJyYXlGaWVsZHNWYWx1ZShOZS5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzLGUpLG49UihSKHt9LG4pLG8pKSxPLklzR1BQRGF0YVByb2Nlc3NpbmdBcHBsaWNhYmxlJiZ0JiYobz10aGlzLmdldER5bmFtaWNBcnJheUZpZWxkc1ZhbHVlKE5lLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nLHQpLG49UihSKHt9LG4pLG8pKSxufSxEci5wcm90b3R5cGUuZ2V0U2VjdGlvbkZpZWxkc01hcHBpbmc9ZnVuY3Rpb24oZSxvKXt2YXIgbj10aGlzLHI9KHZvaWQgMD09PW8mJihvPSExKSx7fSk7cmV0dXJuIGIuZnAsT2JqZWN0LmVudHJpZXMoZSkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lWzBdLGU9bi5ldmFsdWF0ZVZhbHVlT3BlcmF0b3JzKGVbMV0pO3JbdF09bi5jYWxjdWxhdGVGaWVsZFZhbHVlKGUsbyl9KSxyfSxEci5wcm90b3R5cGUuZXZhbHVhdGVWYWx1ZU9wZXJhdG9ycz1mdW5jdGlvbihlKXt2YXIgdCxvLG49IiIscj1bXTtyZXR1cm4gZSYmKHQ9ZS5zcGxpdCgiICYmICIpLG89ZS5zcGxpdCgiIHx8ICIpLHI9KDE8dC5sZW5ndGg/KG49IiYmIix0KToxPG8ubGVuZ3RoPyhuPSJ8fCIsbyk6KG49IiIsW2VdKSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBPLkdQUFB1cnBvc2VzW2VdfHwiIn0pKSx7dmFsdWVzOnIsb3BlcmF0b3I6bn19LERyLnByb3RvdHlwZS5jYWxjdWxhdGVGaWVsZFZhbHVlPWZ1bmN0aW9uKGUsdCl7dmFyIG87aWYoZS52YWx1ZXMubGVuZ3RoKXN3aXRjaChlLm9wZXJhdG9yKXtjYXNlIiYmIjpvPXRoaXMuY2FsY3VsYXRlQW5kRmllbGRWYWx1ZShlLnZhbHVlcyx0KTticmVhaztjYXNlInx8IjpvPXRoaXMuY2FsY3VsYXRlT3JGaWVsZFZhbHVlKGUudmFsdWVzLHQpO2JyZWFrO2RlZmF1bHQ6bz10aGlzLmNhbGN1bGF0ZVNpbmdsZUZpZWxkVmFsdWUoZS52YWx1ZXNbMF0sdCl9ZWxzZSBvPTA7cmV0dXJuIG99LERyLnByb3RvdHlwZS5jYWxjdWxhdGVPckZpZWxkVmFsdWU9ZnVuY3Rpb24oZSx0KXt2YXIgbz10aGlzO3JldHVybiB0aGlzLmlzTm90QXBwbGljYWJsZShlKT8wOihlPWUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiIiIT09ZS50cmltKCl9KS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBvLmZpZWxkVmFsdWVDb25kaXRpb24oZSx0KX0pLHRoaXMuY2FsY3VsYXRlRmllbGRWYWx1ZUZyb21CaXQoZSx0KSl9LERyLnByb3RvdHlwZS5jYWxjdWxhdGVBbmRGaWVsZFZhbHVlPWZ1bmN0aW9uKGUsdCl7dmFyIG89dGhpcztyZXR1cm4gdGhpcy5pc05vdEFwcGxpY2FibGUoZSk/MDooZT1lLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVybiBvLmZpZWxkVmFsdWVDb25kaXRpb24oZSx0KX0pLHRoaXMuY2FsY3VsYXRlRmllbGRWYWx1ZUZyb21CaXQoZSx0KSl9LERyLnByb3RvdHlwZS5jYWxjdWxhdGVTaW5nbGVGaWVsZFZhbHVlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJnRoaXMuaXNWYWxpZEdyb3VwKGUpPyhlPXRoaXMuZmllbGRWYWx1ZUNvbmRpdGlvbihlLHQpLHRoaXMuY2FsY3VsYXRlRmllbGRWYWx1ZUZyb21CaXQoZSx0KSk6MH0sRHIucHJvdG90eXBlLmlzVmFsaWRHcm91cD1mdW5jdGlvbihlKXtlPWU/eS5nZXRHcm91cEJ5SWQoZSk6bnVsbDtyZXR1cm4hIWUmJl8uaXNWYWxpZENvbnNlbnROb3RpY2VHcm91cChlLE8uSXNJYWJFbmFibGVkKX0sRHIucHJvdG90eXBlLmNhbGN1bGF0ZUZpZWxkVmFsdWVGcm9tQml0PWZ1bmN0aW9uKGUsdCl7dD10P2U/MTowOmU/MjoxO3JldHVybiB0fSxEci5wcm90b3R5cGUuaXNOb3RBcHBsaWNhYmxlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIWUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gQm9vbGVhbihlKSYmdC5pc1ZhbGlkR3JvdXAoZSl9KX0sRHIucHJvdG90eXBlLmZpZWxkVmFsdWVDb25kaXRpb249ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9Cb29sZWFuKGUpOkxyLmlzQ2F0ZWdvcnlBY3RpdmUoZSl9O3ZhciBPcj1EcjtmdW5jdGlvbiBEcigpe314KHhyLE5yPU9yKSx4ci5wcm90b3R5cGUuZ2V0U2VjdGlvbkZpZWxkc1ZhbHVlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEZpZWxkc1ZhbHVlcyhpbyxzbyxhbyxsbywhMCl9O3ZhciBOcix3cixWcixCcixHcj14cjtmdW5jdGlvbiB4cigpe3JldHVybiBudWxsIT09TnImJk5yLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc30oYz13cj13cnx8e30pLlNhbGVPcHRPdXQ9IlNhbGVPcHRPdXRDSUQiLGMuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50cz0iS25vd25DaGlsZFNlbGxQSUNJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0NJRCB8fCBLbm93bkNoaWxkU2hhcmVQSUNJRCB8fCBLbm93bkNoaWxkU2VsbEFnZTE2VG8xOENJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0FnZTE2VG8xOENJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0JlbG93QWdlMTNDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NCZXR3ZWVuQWdlMTNUbzE2Q0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQmV0d2VlbkFnZTE2VG8xOENJRCB8fCBLbm93bkNoaWxkU2VsbEFnZTE2VG8xN0NJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0FnZTE2VG8xN0NJRCIsYy5UYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0PSJUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIiwoYz1Wcj1Wcnx8e30pLlNoYXJpbmdOb3RpY2U9IlNhbGVPcHRPdXRDSUQgfHwgVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsYy5TYWxlT3B0T3V0Tm90aWNlPSJTYWxlT3B0T3V0Q0lEIixjLlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXROb3RpY2U9IlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLChjPUJyPUJyfHx7fSkuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcxPSJSYWNlQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMj0iUmVsaWdpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmczPSJIZWFsdGhDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc0PSJTZXh1YWxPcmllbnRhdGlvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzU9IkltbWlncmF0aW9uQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNj0iR2VuZXRpY0NJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzc9IkJpb21ldHJpY0NJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzg9Ikdlb2xvY2F0aW9uQ0lEIix4KE1yLEhyPU9yKSxNci5wcm90b3R5cGUuZ2V0U2VjdGlvbkZpZWxkc1ZhbHVlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEZpZWxkc1ZhbHVlcyh3cixWcixudWxsLEJyLCExKX07dmFyIEhyLFJyLEZyPU1yO2Z1bmN0aW9uIE1yKCl7cmV0dXJuIG51bGwhPT1IciYmSHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfShjPVJyPVJyfHx7fSkuVmVyc2lvbj0idmVyc2lvbiIsYy5DbXBJZD0iY21wSWQiLGMuQ21wVmVyc2lvbj0iY21wVmVyc2lvbiIsYy5Db25zZW50U2NyZWVuPSJjb25zZW50U2NyZWVuIixjLkNvbnNlbnRMYW5ndWFnZT0iY29uc2VudExhbmd1YWdlIixjLlZlbmRvckxpc3RWZXJzaW9uPSJ2ZW5kb3JMaXN0VmVyc2lvbiIsYy5Qb2xpY3lWZXJzaW9uPSJwb2xpY3lWZXJzaW9uIixjLklzU2VydmljZVNwZWNpZmljPSJpc1NlcnZpY2VTcGVjaWZpYyIsYy5Vc2VOb25TdGFuZGFyZFN0YWNrcz0idXNlTm9uU3RhbmRhcmRUZXh0cyIsYy5QdXJwb3NlT25lVHJlYXRtZW50PSJwdXJwb3NlT25lVHJlYXRtZW50IixjLlB1Ymxpc2hlckNvdW50cnlDb2RlPSJwdWJsaXNoZXJDb3VudHJ5Q29kZSIsYy5OdW1DdXN0b21QdXJwb3Nlcz0ibnVtQ3VzdG9tUHVycG9zZXMiLGMuVmVuZG9yc0FsbG93ZWRTZWdtZW50VHlwZT0iVmVuZG9yc0FsbG93ZWRTZWdtZW50VHlwZSIsYy5WZW5kb3JzRGlzY2xvc2VkU2VnbWVudFR5cGU9IlZlbmRvcnNEaXNjbG9zZWRTZWdtZW50VHlwZSIsYy5QdWJsaXNoZXJQdXJwb3Nlc1NlZ21lbnRUeXBlPSJQdWJsaXNoZXJQdXJwb3Nlc1NlZ21lbnRUeXBlIixXci5wcm90b3R5cGUuZ2V0U2VjdGlvbkZpZWxkc1ZhbHVlcz1mdW5jdGlvbigpe2Zvcih2YXIgZT17fSx0PTAsbz1PYmplY3Qua2V5cyhScik7dDxvLmxlbmd0aDt0Kyspe3ZhciBuPW9bdF0scj1ScltuXTtsLnRjTW9kZWwmJmwudGNNb2RlbFtyXSYmKGVbbl09bC50Y01vZGVsW3JdKX1lLkNvbnNlbnRMYW5ndWFnZT1udWxsPT0oaT1lLkNvbnNlbnRMYW5ndWFnZSk/dm9pZCAwOmkudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpO3ZhciBpPXRoaXMuc2V0UHVycG9zZXNEYXRhKCk7cmV0dXJuIFIoUih7fSxlKSxpKX0sV3IucHJvdG90eXBlLnNldFB1cnBvc2VzRGF0YT1mdW5jdGlvbigpe3ZhciBvLGU9e30sdD1sLm9uZVRydXN0SUFCQ29uc2VudCxuPXRoaXMuZ2V0Q29uc2VudFZhbHVlc0Zyb21QdXJwb3NlKHQucHVycG9zZSksbj0oZS5QdXJwb3NlQ29uc2VudHM9bixlLlB1Ymxpc2hlckNvbnNlbnRzPW4sXy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMST90aGlzLmdldENvbnNlbnRWYWx1ZXNGcm9tUHVycG9zZSh0LmxlZ2ltYXRlSW50ZXJlc3QpOltdKTtyZXR1cm4gZS5QdXJwb3NlTGVnaXRpbWF0ZUludGVyZXN0cz1uLGUuUHVibGlzaGVyTGVnaXRpbWF0ZUludGVyZXN0cz1uLGUuVmVuZG9yQ29uc2VudHM9dGhpcy5zeW5jVmVuZG9yQ29uc2VudChsLnRjTW9kZWwudmVuZG9yQ29uc2VudHMpLF8ubGVnSW50U2V0dGluZ3MuUEFsbG93TEkmJiFuLmxlbmd0aCYmKHQubGVnSW50VmVuZG9ycz1bXSksZS5WZW5kb3JMZWdpdGltYXRlSW50ZXJlc3RzPXRoaXMuZ2V0Q29uc2VudFZhbHVlc0Zyb21QdXJwb3NlKHYuZGlzdGluY3RBcnJheSh0LmxlZ0ludFZlbmRvcnMpLCEwLCEwKSxlLlNwZWNpYWxGZWF0dXJlT3B0aW5zPXRoaXMuZ2V0Q29uc2VudFZhbHVlc0Zyb21QdXJwb3NlKHQuc3BlY2lhbEZlYXR1cmVzKSxudWxsIT0odD1udWxsPT0obj1sLnRjTW9kZWwpP3ZvaWQgMDpuLnZlbmRvcnNEaXNjbG9zZWQpJiZ0LnNpemUmJihvPVtdLGwudGNNb2RlbC52ZW5kb3JzRGlzY2xvc2VkLmZvckVhY2goZnVuY3Rpb24oZSx0KXtlJiZvLnB1c2godCl9KSxvLmxlbmd0aCkmJihlLlZlbmRvcnNEaXNjbG9zZWRTZWdtZW50VHlwZT0xLGUuVmVuZG9yc0Rpc2Nsb3NlZD1vKSxlfSxXci5wcm90b3R5cGUuc3luY1ZlbmRvckNvbnNlbnQ9ZnVuY3Rpb24oZSl7dmFyIGU9ZS5jbG9uZSgpLG89W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlLHQpe2wudmVuZG9yc1NldHRpbmdbdF0mJmwudmVuZG9yc1NldHRpbmdbdF0uY29uc2VudHx8IWV8fG8ucHVzaCh0KX0pLGUudW5zZXQobyksQXJyYXkuZnJvbShlLnZhbHVlcygpKX0sV3IucHJvdG90eXBlLmdldENvbnNlbnRWYWx1ZXNGcm9tUHVycG9zZT1mdW5jdGlvbihlLHQsbyl7dm9pZCAwPT09dCYmKHQ9ITEpLHZvaWQgMD09PW8mJihvPSExKSxlPWUubWFwKGZ1bmN0aW9uKGUpe3ZhciBlPWUuc3BsaXQoIjoiKSx0PWVbMF0sZT1lWzFdO3JldHVybntpZDpOdW1iZXIodCksdmFsOmV9fSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLmlkLXQuaWR9KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQrIjoiK2UudmFsfSksbyYmKGU9ZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuInRydWUiPT09ZS5zcGxpdCgiOiIpWzFdfSkpO3ZhciBuPXQ/MDoxO3JldHVybiB0P2UubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlLnNwbGl0KCI6Iilbbl0pfSk6ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuInRydWUiPT09ZS5zcGxpdCgiOiIpW25dfSl9O3ZhciBVcixxcixqcixLcix6cj1XcjtmdW5jdGlvbiBXcigpe30oYz1Vcj1Vcnx8e30pLlNhbGVPcHRPdXQ9IlNhbGVPcHRPdXRDSUQiLGMuU2hhcmluZ09wdE91dD0iU2hhcmluZ09wdE91dENJRCIsYy5QZXJzb25hbERhdGFDb25zZW50cz0iUGVyc29uYWxEYXRhQ0lEIixjLlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXQ9IlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLChjPXFyPXFyfHx7fSkuU2hhcmluZ05vdGljZT0iU2hhcmluZ09wdE91dENJRCIsYy5TYWxlT3B0T3V0Tm90aWNlPSJTYWxlT3B0T3V0Q0lEIixjLlNoYXJpbmdPcHRPdXROb3RpY2U9IlNoYXJpbmdPcHRPdXRDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmdPcHRPdXROb3RpY2U9IlJhY2VDSUQgfHwgUmVsaWdpb25DSUQgfHwgSGVhbHRoQ0lEIHx8IFNleHVhbE9yaWVudGF0aW9uQ0lEIHx8IEltbWlncmF0aW9uQ0lEIHx8IEdlbmV0aWNDSUQgfHwgQmlvbWV0cmljQ0lEIHx8IEdlb2xvY2F0aW9uQ0lEIHx8IFNlbnNpdGl2ZVBJQ0lEIHx8IFNlbnNpdGl2ZVNJQ0lEIHx8IFVuaW9uTWVtYmVyc2hpcENJRCB8fCBDb21tdW5pY2F0aW9uQ0lEIHx8IENvbnN1bWVySGVhbHRoQ0lEIHx8IENyaW1lVmljdGltQ0lEIHx8IE5hdGlvbmFsT3JpZ2luQ0lEIHx8IFRyYW5zZ2VuZGVyQ0lEIixjLlNlbnNpdGl2ZURhdGFMaW1pdFVzZU5vdGljZT0iUmFjZUNJRCB8fCBSZWxpZ2lvbkNJRCB8fCBIZWFsdGhDSUQgfHwgU2V4dWFsT3JpZW50YXRpb25DSUQgfHwgSW1taWdyYXRpb25DSUQgfHwgR2VuZXRpY0NJRCB8fCBCaW9tZXRyaWNDSUQgfHwgR2VvbG9jYXRpb25DSUQgfHwgU2Vuc2l0aXZlUElDSUQgfHwgU2Vuc2l0aXZlU0lDSUQgfHwgVW5pb25NZW1iZXJzaGlwQ0lEIHx8IENvbW11bmljYXRpb25DSUQgfHwgQ29uc3VtZXJIZWFsdGhDSUQgfHwgQ3JpbWVWaWN0aW1DSUQgfHwgTmF0aW9uYWxPcmlnaW5DSUQgfHwgVHJhbnNnZW5kZXJDSUQiLGMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dE5vdGljZT0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsKGM9anI9anJ8fHt9KS5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzMT0iUERDQWJvdmVBZ2VDSUQiLGMuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50czI9IlBEQ0JlbG93QWdlQ0lEIixjLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHMzPSJLbm93bkNoaWxkUHJvY2Vzc0FnZTE2VG8xN0NJRCIsKGM9S3I9S3J8fHt9KS5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzE9IlJhY2VDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcyPSJSZWxpZ2lvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzM9IkhlYWx0aENJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzQ9IlNleHVhbE9yaWVudGF0aW9uQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNT0iSW1taWdyYXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc2PSJHZW5ldGljQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNz0iQmlvbWV0cmljQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nOD0iR2VvbG9jYXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc5PSJTZW5zaXRpdmVQSUNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzEwPSJTZW5zaXRpdmVTSUNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzExPSJVbmlvbk1lbWJlcnNoaXBDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcxMj0iQ29tbXVuaWNhdGlvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzEzPSJDb25zdW1lckhlYWx0aENJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzE0PSJDcmltZVZpY3RpbUNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzE1PSJOYXRpb25hbE9yaWdpbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzE2PSJUcmFuc2dlbmRlckNJRCIseCgkcixZcj1PciksJHIucHJvdG90eXBlLmdldFNlY3Rpb25GaWVsZHNWYWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRGaWVsZHNWYWx1ZXMoVXIscXIsanIsS3IsITApfTt2YXIgWXIsSnIsWHIsUXIsWnI9JHI7ZnVuY3Rpb24gJHIoKXtyZXR1cm4gbnVsbCE9PVlyJiZZci5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9KGM9SnI9SnJ8fHt9KS5TYWxlT3B0T3V0PSJTYWxlT3B0T3V0Q0lEIixjLlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXQ9IlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLGMuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50cz0iS25vd25DaGlsZFNlbGxQSUNJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0NJRCB8fCBLbm93bkNoaWxkU2hhcmVQSUNJRCB8fCBLbm93bkNoaWxkU2VsbEFnZTE2VG8xOENJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0FnZTE2VG8xOENJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0JlbG93QWdlMTNDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NCZXR3ZWVuQWdlMTNUbzE2Q0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQmV0d2VlbkFnZTE2VG8xOENJRCB8fCBLbm93bkNoaWxkU2VsbEFnZTE2VG8xN0NJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0FnZTE2VG8xN0NJRCIsKGM9WHI9WHJ8fHt9KS5TaGFyaW5nTm90aWNlPSJTYWxlT3B0T3V0Q0lEIHx8IFRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLGMuU2FsZU9wdE91dE5vdGljZT0iU2FsZU9wdE91dENJRCIsYy5UYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Tm90aWNlPSJUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIiwoYz1Rcj1Rcnx8e30pLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMT0iUmFjZUNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzI9IlJlbGlnaW9uQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMz0iSGVhbHRoQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nND0iU2V4dWFsT3JpZW50YXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc1PSJJbW1pZ3JhdGlvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzY9IkdlbmV0aWNDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc3PSJCaW9tZXRyaWNDSUQiLHgoc2ksZWk9T3IpLHNpLnByb3RvdHlwZS5nZXRTZWN0aW9uRmllbGRzVmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RmllbGRzVmFsdWVzKEpyLFhyLG51bGwsUXIsITApfTt2YXIgZWksdGksb2ksbmkscmksaWk9c2k7ZnVuY3Rpb24gc2koKXtyZXR1cm4gbnVsbCE9PWVpJiZlaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9KGM9dGk9dGl8fHt9KS5TYWxlT3B0T3V0PSJTYWxlT3B0T3V0Q0lEIixjLlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXQ9IlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLChjPW9pPW9pfHx7fSkuU2hhcmluZ05vdGljZT0iU2FsZU9wdE91dENJRCB8fCBUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIixjLlNhbGVPcHRPdXROb3RpY2U9IlNhbGVPcHRPdXRDSUQiLGMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dE5vdGljZT0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsKGM9bmk9bml8fHt9KS5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzMT0iS25vd25DaGlsZFByb2Nlc3NDSUQiLGMuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50czI9IlBEQ0Fib3ZlQWdlQ0lEIixjLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHMzPSJQRENCZWxvd0FnZUNJRCIsKGM9cmk9cml8fHt9KS5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzE9IlJhY2VDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcyPSJSZWxpZ2lvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzM9IkhlYWx0aENJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzQ9IlNleHVhbE9yaWVudGF0aW9uQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNT0iSW1taWdyYXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc2PSJHZW5ldGljQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNz0iQmlvbWV0cmljQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nOD0iR2VvbG9jYXRpb25DSUQiLHgoQ2ksYWk9T3IpLENpLnByb3RvdHlwZS5nZXRTZWN0aW9uRmllbGRzVmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RmllbGRzVmFsdWVzKHRpLG9pLG5pLHJpLCEwKX07dmFyIGFpLGxpLGNpLGRpLHVpLHBpPUNpO2Z1bmN0aW9uIENpKCl7cmV0dXJuIG51bGwhPT1haSYmYWkuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfShjPWxpPWxpfHx7fSkuU2FsZU9wdE91dD0iU2FsZU9wdE91dENJRCIsYy5UYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0PSJUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIixjLkFkZGl0aW9uYWxEYXRhUHJvY2Vzc2luZ0NvbnNlbnQ9IlBlcnNvbmFsRGF0YUNJRCIsKGM9Y2k9Y2l8fHt9KS5TaGFyaW5nTm90aWNlPSJTYWxlT3B0T3V0Q0lEIHx8IFRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLGMuU2FsZU9wdE91dE5vdGljZT0iU2FsZU9wdE91dENJRCIsYy5UYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Tm90aWNlPSJUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIiwoYz1kaT1kaXx8e30pLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHMxPSJLbm93bkNoaWxkUHJvY2Vzc0NJRCIsYy5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzMj0iUERDQWJvdmVBZ2VDSUQiLGMuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50czM9IlBEQ0JlbG93QWdlQ0lEIiwoYz11aT11aXx8e30pLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMT0iUmFjZUNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzI9IlJlbGlnaW9uQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMz0iSGVhbHRoQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nND0iU2V4dWFsT3JpZW50YXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc1PSJJbW1pZ3JhdGlvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzY9IkdlbmV0aWNDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc3PSJCaW9tZXRyaWNDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc4PSJHZW9sb2NhdGlvbkNJRCIseChtaSxnaT1PciksbWkucHJvdG90eXBlLmdldFNlY3Rpb25GaWVsZHNWYWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRGaWVsZHNWYWx1ZXMobGksY2ksZGksdWksITApfTt2YXIgZ2ksaGkseWksZmksU2k9bWk7ZnVuY3Rpb24gbWkoKXtyZXR1cm4gbnVsbCE9PWdpJiZnaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9KGM9aGk9aGl8fHt9KS5TYWxlT3B0T3V0PSJTYWxlT3B0T3V0Q0lEIixjLlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXQ9IlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLGMuQWRkaXRpb25hbERhdGFQcm9jZXNzaW5nQ29uc2VudD0iUGVyc29uYWxEYXRhQ0lEIixjLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHM9Iktub3duQ2hpbGRTZWxsUElDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NDSUQgfHwgS25vd25DaGlsZFNoYXJlUElDSUQgfHwgS25vd25DaGlsZFNlbGxBZ2UxNlRvMThDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NBZ2UxNlRvMThDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NCZWxvd0FnZTEzQ0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQmV0d2VlbkFnZTEzVG8xNkNJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0JldHdlZW5BZ2UxNlRvMThDSUQgfHwgS25vd25DaGlsZFNlbGxBZ2UxNlRvMTdDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NBZ2UxNlRvMTdDSUQiLChjPXlpPXlpfHx7fSkuUHJvY2Vzc2luZ05vdGljZT0iUGVyc29uYWxEYXRhQ0lEIixjLlNhbGVPcHRPdXROb3RpY2U9IlNhbGVPcHRPdXRDSUQiLGMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dE5vdGljZT0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsKGM9Zmk9Zml8fHt9KS5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzE9IlJhY2VDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcyPSJSZWxpZ2lvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzM9IkhlYWx0aENJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzQ9IlNleHVhbE9yaWVudGF0aW9uQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNT0iSW1taWdyYXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc2PSJHZW5ldGljQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNz0iQmlvbWV0cmljQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nOD0iR2VvbG9jYXRpb25DSUQiLHgoYmksdmk9T3IpLGJpLnByb3RvdHlwZS5nZXRTZWN0aW9uRmllbGRzVmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RmllbGRzVmFsdWVzKGhpLHlpLG51bGwsZmksITApfTt2YXIgdmksVGksUGksQWksSWksa2k9Ymk7ZnVuY3Rpb24gYmkoKXtyZXR1cm4gbnVsbCE9PXZpJiZ2aS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9KGM9VGk9VGl8fHt9KS5TYWxlT3B0T3V0PSJTYWxlT3B0T3V0Q0lEIixjLlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXQ9IlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLChzPVBpPVBpfHx7fSkuUHJvY2Vzc2luZ05vdGljZT1jLkFkZGl0aW9uYWxEYXRhUHJvY2Vzc2luZ0NvbnNlbnQ9IlBlcnNvbmFsRGF0YUNJRCIscy5TYWxlT3B0T3V0Tm90aWNlPSJTYWxlT3B0T3V0Q0lEIixzLlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXROb3RpY2U9IlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLChjPUFpPUFpfHx7fSkuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50czE9Iktub3duQ2hpbGRQcm9jZXNzQmVsb3dBZ2UxM0NJRCIsYy5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzMj0iS25vd25DaGlsZFByb2Nlc3NCZXR3ZWVuQWdlMTNUbzE2Q0lEIixjLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHMzPSJLbm93bkNoaWxkUHJvY2Vzc0JldHdlZW5BZ2UxNlRvMThDSUQiLChzPUlpPUlpfHx7fSkuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcxPSJSYWNlQ0lEIixzLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMj0iUmVsaWdpb25DSUQiLHMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmczPSJIZWFsdGhDSUQiLHMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc0PSJTZXh1YWxPcmllbnRhdGlvbkNJRCIscy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzU9IkltbWlncmF0aW9uQ0lEIixzLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNj0iR2VuZXRpY0NJRCIscy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzc9IkJpb21ldHJpY0NJRCIscy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzg9Ikdlb2xvY2F0aW9uQ0lEIix4KHdpLExpPU9yKSx3aS5wcm90b3R5cGUuZ2V0U2VjdGlvbkZpZWxkc1ZhbHVlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEZpZWxkc1ZhbHVlcyhUaSxQaSxBaSxJaSwhMSl9O3ZhciBMaSxFaSxfaSxPaSxEaSxOaT13aTtmdW5jdGlvbiB3aSgpe3JldHVybiBudWxsIT09TGkmJkxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc30oYz1FaT1FaXx8e30pLlNhbGVPcHRPdXQ9IlNhbGVPcHRPdXRDSUQiLGMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dD0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsKHM9X2k9X2l8fHt9KS5Qcm9jZXNzaW5nTm90aWNlPWMuQWRkaXRpb25hbERhdGFQcm9jZXNzaW5nQ29uc2VudD0iUGVyc29uYWxEYXRhQ0lEIixzLlNhbGVPcHRPdXROb3RpY2U9IlNhbGVPcHRPdXRDSUQiLHMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dE5vdGljZT0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsKGM9T2k9T2l8fHt9KS5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzMT0iS25vd25DaGlsZFByb2Nlc3NDSUQiLGMuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50czI9Iktub3duQ2hpbGRTZWxsUElDSUQiLGMuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50czM9Iktub3duQ2hpbGRTaGFyZVBJQ0lEIixjLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHM0PSJLbm93bkNoaWxkU2VsbEFnZTE2VG8xOENJRCIsYy5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzNT0iS25vd25DaGlsZFByb2Nlc3NBZ2UxNlRvMThDSUQiLChzPURpPURpfHx7fSkuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcxPSJSYWNlQ0lEIixzLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMj0iUmVsaWdpb25DSUQiLHMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmczPSJIZWFsdGhDSUQiLHMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc0PSJTZXh1YWxPcmllbnRhdGlvbkNJRCIscy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzU9IkltbWlncmF0aW9uQ0lEIixzLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNj0iR2VuZXRpY0NJRCIscy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzc9IkJpb21ldHJpY0NJRCIscy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzg9Ikdlb2xvY2F0aW9uQ0lEIixzLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nOT0iVHJhbnNnZW5kZXJDSUQiLHgoUmksVmk9T3IpLFJpLnByb3RvdHlwZS5nZXRTZWN0aW9uRmllbGRzVmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RmllbGRzVmFsdWVzKEVpLF9pLE9pLERpLCEwKX07dmFyIFZpLEJpLEdpLHhpLEhpPVJpO2Z1bmN0aW9uIFJpKCl7cmV0dXJuIG51bGwhPT1WaSYmVmkuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfShjPUJpPUJpfHx7fSkuU2FsZU9wdE91dD0iU2FsZU9wdE91dENJRCIsYy5UYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0PSJUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIixjLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHM9Iktub3duQ2hpbGRTZWxsUElDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NDSUQgfHwgS25vd25DaGlsZFNoYXJlUElDSUQgfHwgS25vd25DaGlsZFNlbGxBZ2UxNlRvMThDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NBZ2UxNlRvMThDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NCZWxvd0FnZTEzQ0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQmV0d2VlbkFnZTEzVG8xNkNJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0JldHdlZW5BZ2UxNlRvMThDSUQgfHwgS25vd25DaGlsZFNlbGxBZ2UxNlRvMTdDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NBZ2UxNlRvMTdDSUQiLChzPUdpPUdpfHx7fSkuUHJvY2Vzc2luZ05vdGljZT0iQWRkaXRpb25hbERhdGFDSUQiLHMuU2FsZU9wdE91dE5vdGljZT0iU2FsZU9wdE91dENJRCIscy5UYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Tm90aWNlPSJUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIixzLlNlbnNpdGl2ZURhdGFPcHRPdXROb3RpY2U9IlJhY2VDSUQgfHwgUmVsaWdpb25DSUQgfHwgSGVhbHRoQ0lEIHx8IFNleHVhbE9yaWVudGF0aW9uQ0lEIHx8IEltbWlncmF0aW9uQ0lEIHx8IEdlbmV0aWNDSUQgfHwgQmlvbWV0cmljQ0lEIHx8IEdlb2xvY2F0aW9uQ0lEIiwoYz14aT14aXx8e30pLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMT0iUmFjZUNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzI9IlJlbGlnaW9uQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMz0iSGVhbHRoQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nND0iU2V4dWFsT3JpZW50YXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc1PSJJbW1pZ3JhdGlvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzY9IkdlbmV0aWNDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc3PSJCaW9tZXRyaWNDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc4PSJHZW9sb2NhdGlvbkNJRCIseChLaSxGaT1PciksS2kucHJvdG90eXBlLmdldFNlY3Rpb25GaWVsZHNWYWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRGaWVsZHNWYWx1ZXMoQmksR2ksbnVsbCx4aSwhMCl9O3ZhciBGaSxNaSxVaSxxaSxqaT1LaTtmdW5jdGlvbiBLaSgpe3JldHVybiBudWxsIT09RmkmJkZpLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc30ocz1NaT1NaXx8e30pLlNhbGVPcHRPdXQ9IlNhbGVPcHRPdXRDSUQiLHMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dD0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIscy5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzPSJLbm93bkNoaWxkU2VsbFBJQ0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQ0lEIHx8IEtub3duQ2hpbGRTaGFyZVBJQ0lEIHx8IEtub3duQ2hpbGRTZWxsQWdlMTZUbzE4Q0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQWdlMTZUbzE4Q0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQmVsb3dBZ2UxM0NJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0JldHdlZW5BZ2UxM1RvMTZDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NCZXR3ZWVuQWdlMTZUbzE4Q0lEIHx8IEtub3duQ2hpbGRTZWxsQWdlMTZUbzE3Q0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQWdlMTZUbzE3Q0lEIiwoYz1VaT1VaXx8e30pLlByb2Nlc3NpbmdOb3RpY2U9cy5BZGRpdGlvbmFsRGF0YVByb2Nlc3NpbmdDb25zZW50PSJQZXJzb25hbERhdGFDSUQiLGMuU2FsZU9wdE91dE5vdGljZT0iU2FsZU9wdE91dENJRCIsYy5UYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Tm90aWNlPSJUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIiwocz1xaT1xaXx8e30pLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMT0iUmFjZUNJRCIscy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzI9IlJlbGlnaW9uQ0lEIixzLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMz0iSGVhbHRoQ0lEIixzLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nND0iU2V4dWFsT3JpZW50YXRpb25DSUQiLHMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc1PSJJbW1pZ3JhdGlvbkNJRCIscy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzY9IkdlbmV0aWNDSUQiLHMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc3PSJCaW9tZXRyaWNDSUQiLHMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc4PSJHZW9sb2NhdGlvbkNJRCIseChRaSx6aT1PciksUWkucHJvdG90eXBlLmdldFNlY3Rpb25GaWVsZHNWYWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRGaWVsZHNWYWx1ZXMoTWksVWksbnVsbCxxaSwhMCl9O3ZhciB6aSxXaSxZaSxKaSxYaT1RaTtmdW5jdGlvbiBRaSgpe3JldHVybiBudWxsIT09emkmJnppLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc30oYz1XaT1XaXx8e30pLlNhbGVPcHRPdXQ9IlNhbGVPcHRPdXRDSUQiLGMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dD0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsYy5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzPSJLbm93bkNoaWxkU2VsbFBJQ0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQ0lEIHx8IEtub3duQ2hpbGRTaGFyZVBJQ0lEIHx8IEtub3duQ2hpbGRTZWxsQWdlMTZUbzE4Q0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQWdlMTZUbzE4Q0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQmVsb3dBZ2UxM0NJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0JldHdlZW5BZ2UxM1RvMTZDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NCZXR3ZWVuQWdlMTZUbzE4Q0lEIHx8IEtub3duQ2hpbGRTZWxsQWdlMTZUbzE3Q0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQWdlMTZUbzE3Q0lEIiwocz1ZaT1ZaXx8e30pLlByb2Nlc3NpbmdOb3RpY2U9Yy5BZGRpdGlvbmFsRGF0YVByb2Nlc3NpbmdDb25zZW50PSJQZXJzb25hbERhdGFDSUQiLHMuU2FsZU9wdE91dE5vdGljZT0iU2FsZU9wdE91dENJRCIscy5UYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Tm90aWNlPSJUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIiwoYz1KaT1KaXx8e30pLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMT0iUmFjZUNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzI9IlJlbGlnaW9uQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMz0iSGVhbHRoQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nND0iU2V4dWFsT3JpZW50YXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc1PSJJbW1pZ3JhdGlvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzY9IkdlbmV0aWNDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc3PSJCaW9tZXRyaWNDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc4PSJHZW9sb2NhdGlvbkNJRCIseChycyxaaT1PcikscnMucHJvdG90eXBlLmdldFNlY3Rpb25GaWVsZHNWYWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRGaWVsZHNWYWx1ZXMoV2ksWWksbnVsbCxKaSwhMCl9O3ZhciBaaSwkaSxlcyx0cyxvcyxucz1ycztmdW5jdGlvbiBycygpe3JldHVybiBudWxsIT09WmkmJlppLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc30ocz0kaT0kaXx8e30pLlNhbGVPcHRPdXQ9IlNhbGVPcHRPdXRDSUQiLHMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dD0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsKGM9ZXM9ZXN8fHt9KS5Qcm9jZXNzaW5nTm90aWNlPXMuQWRkaXRpb25hbERhdGFQcm9jZXNzaW5nQ29uc2VudD0iUGVyc29uYWxEYXRhQ0lEIixjLlNhbGVPcHRPdXROb3RpY2U9IlNhbGVPcHRPdXRDSUQiLGMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dE5vdGljZT0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsKHM9dHM9dHN8fHt9KS5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzMT0iS25vd25DaGlsZFByb2Nlc3NDSUQiLHMuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50czI9IlBEQ0Fib3ZlQWdlQ0lEIixzLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHMzPSJQRENCZWxvd0FnZUNJRCIscy5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzND0iS25vd25DaGlsZFNlbGxBZ2UxNlRvMTdDSUQiLHMuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50czU9Iktub3duQ2hpbGRQcm9jZXNzQWdlMTZUbzE3Q0lEIiwoYz1vcz1vc3x8e30pLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMT0iUmFjZUNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzI9IlJlbGlnaW9uQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMz0iSGVhbHRoQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nND0iU2V4dWFsT3JpZW50YXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc1PSJJbW1pZ3JhdGlvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzY9IkdlbmV0aWNDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc3PSJCaW9tZXRyaWNDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc4PSJHZW9sb2NhdGlvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzk9IlRyYW5zZ2VuZGVyQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMTA9IlNlbnNpdGl2ZVNJQ0lEIix4KHVzLGlzPU9yKSx1cy5wcm90b3R5cGUuZ2V0U2VjdGlvbkZpZWxkc1ZhbHVlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEZpZWxkc1ZhbHVlcygkaSxlcyx0cyxvcywhMCl9O3ZhciBpcyxzcyxhcyxscyxjcyxkcz11cztmdW5jdGlvbiB1cygpe3JldHVybiBudWxsIT09aXMmJmlzLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc30ocz1zcz1zc3x8e30pLlNhbGVPcHRPdXQ9IlNhbGVPcHRPdXRDSUQiLHMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dD0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsKGM9YXM9YXN8fHt9KS5Qcm9jZXNzaW5nTm90aWNlPXMuQWRkaXRpb25hbERhdGFQcm9jZXNzaW5nQ29uc2VudD0iUGVyc29uYWxEYXRhQ0lEIixjLlNhbGVPcHRPdXROb3RpY2U9IlNhbGVPcHRPdXRDSUQiLGMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dE5vdGljZT0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsKHM9bHM9bHN8fHt9KS5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzMT0iS25vd25DaGlsZFByb2Nlc3NDSUQiLHMuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50czI9IlBEQ0Fib3ZlQWdlQ0lEIixzLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHMzPSJQRENCZWxvd0FnZUNJRCIsKGM9Y3M9Y3N8fHt9KS5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzE9IlJhY2VDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcyPSJSZWxpZ2lvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzM9IkhlYWx0aENJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzQ9IlNleHVhbE9yaWVudGF0aW9uQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNT0iSW1taWdyYXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc2PSJHZW5ldGljQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNz0iQmlvbWV0cmljQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nOD0iR2VvbG9jYXRpb25DSUQiLHgoZnMscHM9T3IpLGZzLnByb3RvdHlwZS5nZXRTZWN0aW9uRmllbGRzVmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RmllbGRzVmFsdWVzKHNzLGFzLGxzLGNzLCEwKX07dmFyIHBzLENzLGdzLGhzLHlzPWZzO2Z1bmN0aW9uIGZzKCl7cmV0dXJuIG51bGwhPT1wcyYmcHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfShzPUNzPUNzfHx7fSkuU2FsZU9wdE91dD0iU2FsZU9wdE91dENJRCIscy5UYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0PSJUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIixzLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHM9Iktub3duQ2hpbGRTZWxsUElDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NDSUQgfHwgS25vd25DaGlsZFNoYXJlUElDSUQgfHwgS25vd25DaGlsZFNlbGxBZ2UxNlRvMThDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NBZ2UxNlRvMThDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NCZWxvd0FnZTEzQ0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQmV0d2VlbkFnZTEzVG8xNkNJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0JldHdlZW5BZ2UxNlRvMThDSUQgfHwgS25vd25DaGlsZFNlbGxBZ2UxNlRvMTdDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NBZ2UxNlRvMTdDSUQiLChjPWdzPWdzfHx7fSkuU2hhcmluZ05vdGljZT0iU2FsZU9wdE91dENJRCB8fCBUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIixjLlNhbGVPcHRPdXROb3RpY2U9IlNhbGVPcHRPdXRDSUQiLGMuVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dE5vdGljZT0iVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCIsKHM9aHM9aHN8fHt9KS5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzE9IlJhY2VDSUQiLHMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcyPSJSZWxpZ2lvbkNJRCIscy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzM9IlNleHVhbE9yaWVudGF0aW9uQ0lEIixzLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nND0iSW1taWdyYXRpb25DSUQiLHMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc1PSJIZWFsdGhDSUQiLHMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc2PSJHZW5ldGljQ0lEIixzLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNz0iQmlvbWV0cmljQ0lEIixzLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nOD0iR2VvbG9jYXRpb25DSUQiLHgoQXMsU3M9T3IpLEFzLnByb3RvdHlwZS5nZXRTZWN0aW9uRmllbGRzVmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RmllbGRzVmFsdWVzKENzLGdzLG51bGwsaHMsITEpfTt2YXIgU3MsbXMsdnMsVHMsUHM9QXM7ZnVuY3Rpb24gQXMoKXtyZXR1cm4gbnVsbCE9PVNzJiZTcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9KGM9bXM9bXN8fHt9KS5TYWxlT3B0T3V0PSJTYWxlT3B0T3V0Q0lEIixjLlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXQ9IlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLGMuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50cz0iS25vd25DaGlsZFNlbGxQSUNJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0NJRCB8fCBLbm93bkNoaWxkU2hhcmVQSUNJRCB8fCBLbm93bkNoaWxkU2VsbEFnZTE2VG8xOENJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0FnZTE2VG8xOENJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0JlbG93QWdlMTNDSUQgfHwgS25vd25DaGlsZFByb2Nlc3NCZXR3ZWVuQWdlMTNUbzE2Q0lEIHx8IEtub3duQ2hpbGRQcm9jZXNzQmV0d2VlbkFnZTE2VG8xOENJRCB8fCBLbm93bkNoaWxkU2VsbEFnZTE2VG8xN0NJRCB8fCBLbm93bkNoaWxkUHJvY2Vzc0FnZTE2VG8xN0NJRCIsKHM9dnM9dnN8fHt9KS5TaGFyaW5nTm90aWNlPSJTYWxlT3B0T3V0Q0lEIHx8IFRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLHMuU2FsZU9wdE91dE5vdGljZT0iU2FsZU9wdE91dENJRCIscy5UYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Tm90aWNlPSJUYXJnZXRlZEFkdmVydGlzaW5nT3B0T3V0Q0lEIixzLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nT3B0T3V0Tm90aWNlPSJSYWNlQ0lEIHx8IFJlbGlnaW9uQ0lEIHx8IFNleHVhbE9yaWVudGF0aW9uQ0lEIHx8IEltbWlncmF0aW9uQ0lEIHx8IEhlYWx0aENJRCB8fCBHZW5ldGljQ0lEIHx8IEJpb21ldHJpY0NJRCB8fCBHZW9sb2NhdGlvbkNJRCIsKGM9VHM9VHN8fHt9KS5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzE9IlJhY2VDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcyPSJSZWxpZ2lvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzM9IlNleHVhbE9yaWVudGF0aW9uQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nND0iSW1taWdyYXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc1PSJIZWFsdGhDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc2PSJHZW5ldGljQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNz0iQmlvbWV0cmljQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nOD0iR2VvbG9jYXRpb25DSUQiLHgoYnMsSXM9T3IpLGJzLnByb3RvdHlwZS5nZXRTZWN0aW9uRmllbGRzVmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RmllbGRzVmFsdWVzKG1zLHZzLG51bGwsVHMsITEpfTt2YXIgSXMsa3M9YnM7ZnVuY3Rpb24gYnMoKXtyZXR1cm4gbnVsbCE9PUlzJiZJcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9KHM9THM9THN8fHt9KS5TYWxlT3B0T3V0PSJTYWxlT3B0T3V0Q0lEIixzLlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXQ9IlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLChjPUVzPUVzfHx7fSkuUHJvY2Vzc2luZ05vdGljZT1zLkFkZGl0aW9uYWxEYXRhUHJvY2Vzc2luZ0NvbnNlbnQ9IlBlcnNvbmFsRGF0YUNJRCIsYy5TYWxlT3B0T3V0Tm90aWNlPSJTYWxlT3B0T3V0Q0lEIixjLlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXROb3RpY2U9IlRhcmdldGVkQWR2ZXJ0aXNpbmdPcHRPdXRDSUQiLChzPV9zPV9zfHx7fSkuS25vd25DaGlsZFNlbnNpdGl2ZURhdGFDb25zZW50czE9Iktub3duQ2hpbGRQcm9jZXNzQ0lEIixzLktub3duQ2hpbGRTZW5zaXRpdmVEYXRhQ29uc2VudHMyPSJQRENBYm92ZUFnZUNJRCIscy5Lbm93bkNoaWxkU2Vuc2l0aXZlRGF0YUNvbnNlbnRzMz0iUERDQmVsb3dBZ2VDSUQiLChjPU9zPU9zfHx7fSkuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcxPSJSYWNlQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nMj0iUmVsaWdpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmczPSJIZWFsdGhDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc0PSJTZXh1YWxPcmllbnRhdGlvbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzU9IlRyYW5zZ2VuZGVyQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nNj0iSW1taWdyYXRpb25DSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3Npbmc3PSJOYXRpb25hbE9yaWdpbkNJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzg9IkNyaW1lVmljdGltQ0lEIixjLlNlbnNpdGl2ZURhdGFQcm9jZXNzaW5nOT0iR2VuZXRpY0NJRCIsYy5TZW5zaXRpdmVEYXRhUHJvY2Vzc2luZzEwPSJCaW9tZXRyaWNDSUQiLGMuU2Vuc2l0aXZlRGF0YVByb2Nlc3NpbmcxMT0iR2VvbG9jYXRpb25DSUQiLHgod3MsRHM9T3IpLHdzLnByb3RvdHlwZS5nZXRTZWN0aW9uRmllbGRzVmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RmllbGRzVmFsdWVzKExzLEVzLF9zLE9zLCEwKX07dmFyIExzLEVzLF9zLE9zLERzLE5zPXdzO2Z1bmN0aW9uIHdzKCl7cmV0dXJuIG51bGwhPT1EcyYmRHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfUdzLnByb3RvdHlwZS5pbml0R3BwQ29uc2VudD1mdW5jdGlvbigpe3RoaXMuaW5pdFRlbXBsYXRlQW5kU2VjdGlvbkluc3RhbmNlKCksdGhpcy5jbXBBcGkuc2V0QXBwbGljYWJsZVNlY3Rpb25zKHRoaXMuZ2V0QXBwbGljYWJsZVNlY3Rpb25zKHRoaXMuZ3BwVGVtcGxhdGVBcHBsaWVkKSk7dmFyIG8sbixlPXRoaXMucmVhZEdwcENvb2tpZXMoKSx0PXRoaXMuZ2V0Q3VycmVudFNlY3Rpb25OYW1lKHRoaXMuZ3BwVGVtcGxhdGVBcHBsaWVkKSxyPSExO3RoaXMuZ3BwU2VjdGlvbklkPXRoaXMuZ2V0Q3VycmVudFNlY3Rpb25JZCh0aGlzLmdwcFRlbXBsYXRlQXBwbGllZCksZSYmKHcubmVlZFJlY29uc2VudCgpP3RoaXMuZGVsZXRlQWxsR3BwQ29va2llcygpOih0aGlzLmNtcEFwaS5zZXRHcHBTdHJpbmcoZSkscj0hMCkpLHRoaXMuY21wQXBpLnNldFN1cHBvcnRlZEFQSXMoKG89W10sbj17fSxPYmplY3Qua2V5cyhWZSkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD17fSxlPSh0W2VdPVZlW2VdLE9iamVjdC5hc3NpZ24odCxuKSk7bj1lfSksT2JqZWN0LmtleXMod2UpLm1hcChmdW5jdGlvbihlKXtyZXR1cm57bmFtZTplLHZhbHVlOndlW2VdfX0pLmZvckVhY2goZnVuY3Rpb24oZSl7ZT1uW2UubmFtZV0rIjoiK2UudmFsdWU7by5wdXNoKGUpfSksby5maWx0ZXIoZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5pbmRleE9mKGUpPT09dH0pKSksdGhpcy5jbXBBcGkuc2V0Q21wU3RhdHVzKG51bGw9PShlPXRoaXMuZ3BwU0RLUmVmKT92b2lkIDA6ZS5jbXBTdGF0dXMuTE9BREVEKSwodCYmIXRoaXMuY21wQXBpLmhhc1NlY3Rpb24odCl8fF8uZ3BjQnJvd3NlclZhbHVlQ2hhbmdlZHx8bC5ncnBzU3luY2VkJiYwPGwuZ3Jwc1N5bmNlZC5sZW5ndGgpJiZ0aGlzLnNldE9yVXBkYXRlR3BwU2VjdGlvblN0cmluZyh0LHIpLHdpbmRvdy5PbmVUcnVzdC5PbkNvbnNlbnRDaGFuZ2VkKHRoaXMudXBkYXRlR3BwQ29uc2VudFN0cmluZyksdGhpcy5jbXBBcGkuc2V0U2lnbmFsU3RhdHVzKG51bGw9PShlPXRoaXMuZ3BwU0RLUmVmKT92b2lkIDA6ZS5zaWduYWxTdGF0dXMuUkVBRFkpfSxHcy5wcm90b3R5cGUuaW5pdFRlbXBsYXRlQW5kU2VjdGlvbkluc3RhbmNlPWZ1bmN0aW9uKCl7dmFyIGU9Yi5mcDtlJiZlLkNvb2tpZUlBQkdQUFYyP3RoaXMuZ3BwVGVtcGxhdGVBcHBsaWVkPXRoaXMuZ2V0VGVtcGxhdGVUeXBlQnlMb2NhdGlvbigpOnRoaXMuZ3BwVGVtcGxhdGVBcHBsaWVkPXRoaXMuZ2V0R3BwVGVtcGxhdGVBcHBsaWVkKCksdGhpcy5ncHBTZWN0aW9uPXRoaXMuZ2V0U2VjdGlvbkluc3RhbmNlKHRoaXMuZ3BwVGVtcGxhdGVBcHBsaWVkKX0sR3MucHJvdG90eXBlLnNldENtcERpc3BsYXlTdGF0dXM9ZnVuY3Rpb24oZSl7dmFyIHQ7InZpc2libGUiPT09ZT90aGlzLmNtcEFwaS5zZXRDbXBEaXNwbGF5U3RhdHVzKG51bGw9PSh0PXRoaXMuZ3BwU0RLUmVmKT92b2lkIDA6dC5kaXNwbGF5U3RhdHVzLlZJU0lCTEUpOiJoaWRkZW4iPT09ZT90aGlzLmNtcEFwaS5zZXRDbXBEaXNwbGF5U3RhdHVzKG51bGw9PSh0PXRoaXMuZ3BwU0RLUmVmKT92b2lkIDA6dC5kaXNwbGF5U3RhdHVzLkhJRERFTik6ImRpc2FibGVkIj09PWUmJnRoaXMuY21wQXBpLnNldENtcERpc3BsYXlTdGF0dXMobnVsbD09KHQ9dGhpcy5ncHBTREtSZWYpP3ZvaWQgMDp0LmRpc3BsYXlTdGF0dXMuRElTQUJMRUQpfSxHcy5wcm90b3R5cGUuc2V0R3BwQ29va2llcz1mdW5jdGlvbihlLHQpe3Q/dGhpcy51cGRhdGVHcHBDb29raWVzKGUpOih0PXRoaXMuZ2V0Q29va2llc0NodW5rKGUpLGU9T2JqZWN0LmtleXModCkubGVuZ3RoLHRoaXMud3JpdGVHcHBDb29raWVzKGUsdCkpfSxHcy5wcm90b3R5cGUucmVhZEdwcENvb2tpZXM9ZnVuY3Rpb24oKXt2YXIgZT1OdW1iZXIoTC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsX2UuQ2h1bmtDb3VudFBhcmFtKXx8MCk7aWYoZTw9MSlyZXR1cm4gMD09PWU/IiI6TC5nZXRDb29raWUoay5HUFBfQ09OU0VOVCk7Zm9yKHZhciB0PSIiLG89MTtvPD1lO28rKyl2YXIgbj1MLmdldENvb2tpZSgiIitfZS5OYW1lK28pLHQ9dC5jb25jYXQobik7cmV0dXJuIHR9LEdzLnByb3RvdHlwZS5kZWxldGVHcHBDb29raWVzPWZ1bmN0aW9uKGUsdCl7aWYoMDxlJiYoMT09PWUmJihMLnNldENvb2tpZSgiIitfZS5OYW1lLCIiLDAsITApLGUrKyksZTw9dCkpZm9yKHZhciBvPWU7bzw9dDtvKyspTC5zZXRDb29raWUoIiIrX2UuTmFtZStvLCIiLDAsITApfSxHcy5wcm90b3R5cGUuZ2V0U2VjdGlvbkluc3RhbmNlPWZ1bmN0aW9uKGUpe3ZhciB0O3N3aXRjaChlKXtjYXNlIExlLkNQUkE6Y2FzZSBMZS5DQ1BBOnQ9bmV3IEdyO2JyZWFrO2Nhc2UgTGUuQ0RQQTp0PW5ldyBGcjticmVhaztjYXNlIExlLlVTTkFUSU9OQUw6dD1uZXcgWnI7YnJlYWs7Y2FzZSBMZS5DT0xPUkFETzp0PW5ldyBpaTticmVhaztjYXNlIExlLk9SRUdPTjp0PW5ldyBOczticmVhaztjYXNlIExlLkZMT1JJREE6dD1uZXcgTmk7YnJlYWs7Y2FzZSBMZS5DT05ORUNUSUNVVDp0PW5ldyBwaX1yZXR1cm4gdD1bIk1PTlRBTkEiLCJURVhBUyIsIkRFTEFXQVJFIiwiTkVCUkFTS0EiLCJJT1dBIiwiVEVOTkVTU0VFIiwiTkVXSkVSU0VZIiwiTkVXSEFNUFNISVJFIiwiVUNQQSIsIlZJUkdJTklBIiwiSUFCMlYyIl0uaW5jbHVkZXMoZSk/dGhpcy5nZXRTZWN0aW9uSW5zdGFuY2VCeVRlbXBUeXBlKGUpOnR9LEdzLnByb3RvdHlwZS5nZXRTZWN0aW9uSW5zdGFuY2VCeVRlbXBUeXBlPWZ1bmN0aW9uKGUpe3ZhciB0O3N3aXRjaChlKXtjYXNlIExlLk1PTlRBTkE6dD1uZXcgU2k7YnJlYWs7Y2FzZSBMZS5URVhBUzp0PW5ldyBraTticmVhaztjYXNlIExlLkRFTEFXQVJFOnQ9bmV3IEhpO2JyZWFrO2Nhc2UgTGUuSU9XQTp0PW5ldyBqaTticmVhaztjYXNlIExlLk5FQlJBU0tBOnQ9bmV3IFhpO2JyZWFrO2Nhc2UgTGUuVEVOTkVTU0VFOnQ9bmV3IG5zO2JyZWFrO2Nhc2UgTGUuTkVXSkVSU0VZOnQ9bmV3IGRzO2JyZWFrO2Nhc2UgTGUuTkVXSEFNUFNISVJFOnQ9bmV3IHlzO2JyZWFrO2Nhc2UgTGUuVUNQQTp0PW5ldyBrczticmVhaztjYXNlIExlLlZJUkdJTklBOnQ9bmV3IFBzO2JyZWFrO2Nhc2UgTGUuSUFCMlYyOnQ9bmV3IHpyfXJldHVybiB0fSxHcy5wcm90b3R5cGUuZ2V0VGVtcGxhdGVUeXBlQnlMb2NhdGlvbj1mdW5jdGlvbigpe3ZhciBlO3JldHVybiBfLmdldFJlZ2lvblJ1bGVUeXBlKCk9PT1MZS5JQUIyVjI/TGUuSUFCMlYyOiFPLlVzZUdQUFVTTmF0aW9uYWwmJiJ1cyI9PT0oZT1Mci5nZXRHZW9sb2NhdGlvbkRhdGEoKSkuY291bnRyeS50b0xvY2FsZUxvd2VyQ2FzZSgpJiZHZVtlLnN0YXRlLnRvTG9jYWxlTG93ZXJDYXNlKCldfHxMZS5VU05BVElPTkFMfSxHcy5wcm90b3R5cGUuaGFzR1BQU2VjdGlvbj1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5ncHBTZWN0aW9ufSxHcy5wcm90b3R5cGUuZ2V0R3BwVGVtcGxhdGVBcHBsaWVkPWZ1bmN0aW9uKCl7cmV0dXJuIE8uVXNlR1BQVVNOYXRpb25hbD9MZS5VU05BVElPTkFMOl8uZ2V0UmVnaW9uUnVsZVR5cGUoKX0sR3MucHJvdG90eXBlLmluaXRHcHBTREs9ZnVuY3Rpb24oKXt2YXIgZSx0PU51bWJlci5wYXJzZUludCgobnVsbD09KHQ9Yi5tb2R1bGVJbml0aWFsaXplci5HcHBEYXRhKT92b2lkIDA6dC5jbXBJZCl8fCIyOCIpO3JldHVybiBudWxsPT0oZT10aGlzLmdwcFNES1JlZik/dm9pZCAwOmUuZ3BwQ21wQXBpKHQsMS4xKX0sR3MucHJvdG90eXBlLnNldE9yVXBkYXRlR3BwU2VjdGlvblN0cmluZz1mdW5jdGlvbihvLGUpe3ZhciBuPXRoaXMsdD10aGlzLmdwcFNlY3Rpb24uZ2V0U2VjdGlvbkZpZWxkc1ZhbHVlcygpO09iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXTtuLmNtcEFwaS5zZXRGaWVsZFZhbHVlKG8sdCxlWzFdKX0pLHRoaXMuY21wQXBpLmZpcmVTZWN0aW9uQ2hhbmdlKG8pLHRoaXMuc2V0R3BwQ29va2llcyh0aGlzLmNtcEFwaS5nZXRHcHBTdHJpbmcoKSxlKX0sR3MucHJvdG90eXBlLmdldEN1cnJlbnRTZWN0aW9uTmFtZT1mdW5jdGlvbih0KXt2YXIgZSxvPSIiLG49T2JqZWN0LmVudHJpZXMod2UpLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF09PT10fSk7cmV0dXJuIG89bnVsbCE9KGU9bikmJmUubGVuZ3RoJiYxPG4ubGVuZ3RoP25bMV06b30sR3MucHJvdG90eXBlLmdldEN1cnJlbnRTZWN0aW9uSWQ9ZnVuY3Rpb24odCl7dmFyIGUsbz0wLG49T2JqZWN0LmVudHJpZXMoVmUpLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF09PT10fSk7cmV0dXJuIG89bnVsbCE9KGU9bikmJmUubGVuZ3RoJiYxPG4ubGVuZ3RoP25bMV06b30sR3MucHJvdG90eXBlLnVwZGF0ZUdwcENvb2tpZXM9ZnVuY3Rpb24oZSl7dmFyIGU9dGhpcy5nZXRDb29raWVzQ2h1bmsoZSksdD1PYmplY3Qua2V5cyhlKS5sZW5ndGgsbz1OdW1iZXIoTC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsX2UuQ2h1bmtDb3VudFBhcmFtKXx8MCk7dGhpcy53cml0ZUdwcENvb2tpZXModCxlKSx0PG8mJnRoaXMuZGVsZXRlR3BwQ29va2llcyh0KzEsbyl9LEdzLnByb3RvdHlwZS5kZWxldGVBbGxHcHBDb29raWVzPWZ1bmN0aW9uKCl7dmFyIGU9TnVtYmVyKEwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULF9lLkNodW5rQ291bnRQYXJhbSl8fDApO3RoaXMuZGVsZXRlR3BwQ29va2llcygxLGUpfSxHcy5wcm90b3R5cGUuZ2V0Q29va2llc0NodW5rPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD17fSxvPSExLG49ZSxyPTE7bi5sZW5ndGg7KXt2YXIgaSxzPXZvaWQgMDtuLmxlbmd0aD5fZS5DaHVua1NpemU/cz1fZS5DaHVua1NpemU6KHM9bi5sZW5ndGgsbz0xPT09ciksbz8odFtfZS5OYW1lXT1uLG49IiIpOihpPW4uc2xpY2UoMCxzKSxuPW4uc2xpY2UocyxuLmxlbmd0aCksdFsiIitfZS5OYW1lK3JdPWkpLHIrK31yZXR1cm4gdH0sR3MucHJvdG90eXBlLndyaXRlR3BwQ29va2llcz1mdW5jdGlvbihlLHQpe0wud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxfZS5DaHVua0NvdW50UGFyYW0sZSksTC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULF9lLmdwcFNpZCx0aGlzLmdwcFNlY3Rpb25JZCk7Zm9yKHZhciBvPTAsbj1PYmplY3QuZW50cmllcyh0KTtvPG4ubGVuZ3RoO28rKyl7dmFyIHI9bltvXSxpPXJbMF07TC5zZXRDb29raWUoaSxyWzFdLE8uUmVjb25zZW50RnJlcXVlbmN5RGF5cyl9fSxHcy5wcm90b3R5cGUuZ2V0U3VwcG9ydGVkQVBJcz1mdW5jdGlvbigpe3JldHVybiBPYmplY3QudmFsdWVzKHdlKS5maWx0ZXIoZnVuY3Rpb24oZSx0LG8pe3JldHVybiBvLmluZGV4T2YoZSk9PT10fSl9LEdzLnByb3RvdHlwZS5nZXRBcHBsaWNhYmxlU2VjdGlvbnM9ZnVuY3Rpb24oZSl7cmV0dXJuW3RoaXMuZ2V0Q3VycmVudFNlY3Rpb25JZChlKV19O3ZhciBWcyxCcz1HcztmdW5jdGlvbiBHcygpe3ZhciBlLHQ9dGhpczt0aGlzLmdwcFNES1JlZj1udWxsPT0oZT13aW5kb3cub3RJYWJNb2R1bGUpP3ZvaWQgMDplLmdwcFNka1JlZix0aGlzLmNtcEFwaT10aGlzLmluaXRHcHBTREsoKSx0aGlzLnVwZGF0ZUdwcENvbnNlbnRTdHJpbmc9ZnVuY3Rpb24oKXt0LmNtcEFwaS5nZXRDbXBEaXNwbGF5U3RhdHVzKCk9PT0obnVsbD09KGU9dC5ncHBTREtSZWYpP3ZvaWQgMDplLmRpc3BsYXlTdGF0dXMuVklTSUJMRSkmJnQuY21wQXBpLnNldENtcERpc3BsYXlTdGF0dXMobnVsbD09KGU9dC5ncHBTREtSZWYpP3ZvaWQgMDplLmRpc3BsYXlTdGF0dXMuSElEREVOKTt2YXIgZT10LmdldEN1cnJlbnRTZWN0aW9uTmFtZSh0LmdwcFRlbXBsYXRlQXBwbGllZCk7dC5zZXRPclVwZGF0ZUdwcFNlY3Rpb25TdHJpbmcoZSwhMCl9fVJzLnByb3RvdHlwZS5pc0F1dGhVc3I9ZnVuY3Rpb24oZSl7dmFyIHQ9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5JU19BTk9OWU1PVVNfQ09OU0VOVCk7RC5jb25zZW50UHJlZmVyZW5jZXN8fCIxIiE9PXQ/TC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULCJpVHlwZSIsIiIpOkwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCwiaVR5cGUiLCIiK3VlW2VdKX0sUnMucHJvdG90eXBlLmlzQmFubmVyQ2xvc2VkQnlJY29uT3JMaW5rPWZ1bmN0aW9uKCl7dmFyIGU9RC5iYW5uZXJDbG9zZVNvdXJjZTtyZXR1cm4gZT09PVouQmFubmVyQ2xvc2VCdXR0b258fGU9PT1aLkNvbnRpbnVlV2l0aG91dEFjY2VwdGluZ0J1dHRvbn0sUnMucHJvdG90eXBlLmFkZENyb3NzRGV2aWNlQXR0cmlidXRlcz1mdW5jdGlvbihlKXtELmlzVjJTdHViJiYoZS5zeW5jR3JvdXA9RC5zeW5jR3JwSWQsTy5Vc2VHb29nbGVWZW5kb3JzKSYmKGUuZ2FjU3RyaW5nPUwuZ2V0Q29va2llKGsuQURESVRJT05BTF9DT05TRU5UX1NUUklORykpfSxScy5wcm90b3R5cGUuYWRkQWR2QW5hbHl0aWNzQXR0cmlidXRlcz1mdW5jdGlvbihlLHQpe3ZhciBvLG49eS5nZXRHcm91cEJ5SWQoTy5BZHZhbmNlZEFuYWx5dGljc0NhdGVnb3J5KTtuJiZ0aGlzLmNhblNlbmRBZHZhbmNlZEFuYWx5dGljcyhlLnB1cnBvc2VzLG4pJiYobz13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCxlLmRzRGF0YUVsZW1lbnRzPXtJbnRlcmFjdGlvblR5cGU6dCxDb3VudHJ5OkQmJkQudXNlckxvY2F0aW9uJiYvXlthLXpBLVpdezJ9JC8udGVzdChELnVzZXJMb2NhdGlvbi5jb3VudHJ5KT9ELnVzZXJMb2NhdGlvbi5jb3VudHJ5LnRvVXBwZXJDYXNlKCk6IiIsVXNlckFnZW50Om8sQ29uc2VudE1vZGVsOk8uQ29uc2VudE1vZGVsLk5hbWV9LGUuc291cmNlPXtwdXJwb3NlSWRzOltuLlB1cnBvc2VJZF0sY29udGVudDp3aW5kb3cubG9jYXRpb24uaHJlZix0eXBlOiJXRUIifSx0aGlzLmFkZEdlb2xvY2F0aW9uQXR0cmlidXRlcyhlLG4pKX0sUnMucHJvdG90eXBlLmFkZEdlb2xvY2F0aW9uQXR0cmlidXRlcz1mdW5jdGlvbihlLHQpe3ZhciBvPUQudXNlckxvY2F0aW9uO28mJihlLmdlb2xvY2F0aW9uPXtjb3VudHJ5Om8uY291bnRyeS50b1VwcGVyQ2FzZSgpLHN0YXRlOm8uc3RhdGUsc3RhdGVOYW1lOm8uc3RhdGVOYW1lfHwiIixwdXJwb3NlSWRzOnQ/W3QuUHVycG9zZUlkXTpbXX0pfSxScy5wcm90b3R5cGUuY2FuU2VuZENvbnNlbnRSZWNlaXB0PWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gaC51cGRhdGVJbnRUeXBlRnJvbUNvb2tpZSgpLCEoIWUmJl8uYXBpU291cmNlIT09ZWUuVXBkYXRlQ29uc2VudCYmRC5jb25zZW50SW50ZXJhY3Rpb25UeXBlPT09dCYmIW8mJiEoRC5jb25zZW50SW50ZXJhY3Rpb25UeXBlPT09dCYmdGhpcy5pc0NvbnNlbnRSZWNlaXB0Q29vbGluZ1BlcmlvZE92ZXIoKXx8RC5tYWtlSW5pdGlhbFR4bkNhbGwpKX0sUnMucHJvdG90eXBlLmlzQ29uc2VudFJlY2VpcHRDb29saW5nUGVyaW9kT3Zlcj1mdW5jdGlvbigpe3ZhciBlPUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuTEFTVF9DT05TRU5UX1JFQ0VJUFQsITApfHx2b2lkIDAsdD1EYXRlLm5vdygpO3JldHVybiFlfHx0LWU+PXRoaXMuTUlOX0lOVEVSVkFMX0JFVFdFRU5fQ0FMTFN8fCh0aGlzLk1JTl9JTlRFUlZBTF9CRVRXRUVOX0NBTExTLCExKX0sUnMucHJvdG90eXBlLmFkZEdwcFN0cmluZ0F0dHJpYnV0ZT1mdW5jdGlvbihlKXtPLklzR1BQRW5hYmxlZCYmVnMuaGFzR1BQU2VjdGlvbigpJiZWcy51cGRhdGVHcHBDb25zZW50U3RyaW5nKCk7dmFyIHQ9TC5nZXRDb29raWUoay5HUFBfQ09OU0VOVCk7dCYmKGUuZ3BwU3RyaW5nPXQpfSxScy5wcm90b3R5cGUuYWRkQ29uc2VudFN0cmluZ1RvUGF5bG9hZD1mdW5jdGlvbihlKXt2YXIgdD1MLmdldE1lcmdlZENvb2tpZUJ5TmFtZShrLkVVX1BVQl9DT05TRU5UKSxvPV8uZ2V0UmVnaW9uUnVsZVR5cGUoKTsoXy5pc0lhYjJvcnYyVGVtcGxhdGV8fCJJQUJDIj09PW8pJiZ0P2UuY29uc2VudFN0cmluZz17dHlwZToiSUFCQyI9PT1vPyJ0Y2ZjYW5hZGEiOiJJQUIyIiE9PW8mJiJJQUIyVjIiIT09bz8iIjoidGNmZXUiLGNvbnRlbnQ6dH06Ty5Jc0dQUEVuYWJsZWQmJmUuaGFzT3duUHJvcGVydHkoImdwcFN0cmluZyIpJiZlLmdwcFN0cmluZyYmKGUuY29uc2VudFN0cmluZz17dHlwZToiZ3BwIixjb250ZW50OmUuZ3BwU3RyaW5nfSxkZWxldGUgZS5ncHBTdHJpbmcpfSxScy5wcm90b3R5cGUuY3JlYXRlQ29uc2VudFR4bj1mdW5jdGlvbihlLHQsbyxuLHIsaSl7dm9pZCAwPT09dCYmKHQ9IiIpLHZvaWQgMD09PW8mJihvPSExKSx2b2lkIDA9PT1pJiYoaT0iIik7dmFyIHM9dGhpcy5lbnN1cmVDb25zZW50SWQoZSxuPXZvaWQgMD09PW4/ITA6bixyPXZvaWQgMD09PXI/ITE6ciksYT1PLkNvbnNlbnRJbnRlZ3JhdGlvbixsPXRoaXMuZ2V0Q29uc2VudFVSTChzLmlzQW5vbnltb3VzKSxjPXRoaXMuY2FuQ3JlYXRlQ29uc2VudFJlY2VpcHRUeG4ocyxlKTtpZihELmlzVjJTdHViJiZ0JiZ0aGlzLmlzQXV0aFVzcih0KSxjKXtjPWIubW9kdWxlSW5pdGlhbGl6ZXIscz0oeHMubm9PcHRPdXRUb29nbGU9Yy5UZW5hbnRGZWF0dXJlcy5Db29raWVWMk5vT3B0T3V0LHhzLmlzQ2xvc2VCeUljb25Pckxpbms9dGhpcy5pc0Jhbm5lckNsb3NlZEJ5SWNvbk9yTGluaygpLHtyZXF1ZXN0SW5mb3JtYXRpb246YS5SZXF1ZXN0SW5mb3JtYXRpb24saWRlbnRpZmllcjpzLmlkLGlkZW50aWZpZXJUeXBlOnMuaWRlbnRpZmllclR5cGUsY3VzdG9tUGF5bG9hZDp7SW50ZXJhY3Rpb246cy5jb3VudCxBZGREZWZhdWx0SW50ZXJhY3Rpb246cy5hZGREZmx0SW50fSxpc0Fub255bW91czpzLmlzQW5vbnltb3VzLHRlc3Q6Yy5TY3JpcHRUeXBlPT09VWUuVEVTVHx8Yy5TY3JpcHRUeXBlPT09VWUuTE9DQUxfVEVTVCxwdXJwb3Nlczp0aGlzLmdldENvbnNldFB1cnBvc2VzKGUsaSx0KSxkc0RhdGFFbGVtZW50czp7fX0pO2lmKHRoaXMuaGFuZGxlUmVjZWlwdHNXaGVuU2VuZFJlY2VpcHRJc0VuYWJsZWQocyxyLHQpLHRoaXMuYWRkQ3Jvc3NEZXZpY2VBdHRyaWJ1dGVzKHMpLHRoaXMuYWRkQWR2QW5hbHl0aWNzQXR0cmlidXRlcyhzLHQpLHRoaXMuYWRkR3BwU3RyaW5nQXR0cmlidXRlKHMpLHRoaXMuYWRkQ29uc2VudFN0cmluZ1RvUGF5bG9hZChzKSwhYy5Nb2JpbGVTREsmJm4mJnMucHVycG9zZXMubGVuZ3RoKXtpPUpTT04uc3RyaW5naWZ5KHMpLGM9dGhpcy5nZXRBdXRoVG9rZW4oKTtpZih0aGlzLnNlbmRCZWFjb25TdXBwb3J0ZWQoZSxjKSl7bj1uYXZpZ2F0b3Iuc2VuZEJlYWNvbihsLGkpO3RyeXtuJiZMLndyaXRlQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5MQVNUX0NPTlNFTlRfUkVDRUlQVCxEYXRlLm5vdygpKX1jYXRjaChlKXtjb25zb2xlLmluZm8oIltDb25zZW50UmVjZWlwdF0gc2VuZEJlYWNvbiBsb2dnaW5nIGVycm9yIixlKX13LmRpc3BhdGNoQ29uc2VudEV2ZW50KCl9ZWxzZSB0aGlzLmNhblNlbmRDb25zZW50UmVjZWlwdChvLHQscikmJlMuYWpheCh7dXJsOmwsdHlwZToicG9zdCIsZGF0YVR5cGU6Impzb24iLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhOkpTT04uc3RyaW5naWZ5KHMpLHN5bmM6ZSxzdWNjZXNzOmZ1bmN0aW9uKCl7dy5kaXNwYXRjaENvbnNlbnRFdmVudCgpO3RyeXtMLndyaXRlQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5MQVNUX0NPTlNFTlRfUkVDRUlQVCxEYXRlLm5vdygpKSxELm1ha2VJbml0aWFsVHhuQ2FsbD0hMX1jYXRjaChlKXtjb25zb2xlLmluZm8oIltDb25zZW50UmVjZWlwdF0gc2lnbmF0dXJlL3RpbWVzdGFtcCBsb2dnaW5nIGVycm9yIixlKX19LGVycm9yOmZ1bmN0aW9uKCl7dy5kaXNwYXRjaENvbnNlbnRFdmVudCgpfSx0b2tlbjpjfSl9Xy5wdWJEb21haW5EYXRhLkNvbnNlbnRJbnRlZ3JhdGlvbkRhdGE9e2NvbnNlbnRBcGk6YS5Db25zZW50QXBpLGNvbnNlbnRQYXlsb2FkOnN9fUQuY29uc2VudEludGVyYWN0aW9uVHlwZT10LHRoaXMuc3RvcmVJbnRlcmFjdGlvblR5cGUodCl9LFJzLnByb3RvdHlwZS5jYW5DcmVhdGVDb25zZW50UmVjZWlwdFR4bj1mdW5jdGlvbihlLHQpe3ZhciBvPU8uQ29uc2VudEludGVncmF0aW9uLG49dGhpcy5nZXRDb25zZW50VVJMKGUuaXNBbm9ueW1vdXMpLHI9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQscj0vT25lVHJ1c3QvLnRlc3QociksaT1ELmlzQm90SGVhZGVyO3JldHVybiBuJiZvLlJlcXVlc3RJbmZvcm1hdGlvbiYmZS5pZCYmIXImJiFpJiYhdGhpcy5ibG9ja0RlZmF1bHRSZWNlaXB0Q2FsbCh0KX0sUnMucHJvdG90eXBlLmdldENvbnNlbnRVUkw9ZnVuY3Rpb24oZSl7dmFyIHQ9Ty5Db25zZW50SW50ZWdyYXRpb24sbz10LkNvbnNlbnRBcGksbj1iLm1vZHVsZUluaXRpYWxpemVyLlRlbmFudEZlYXR1cmVzO3JldHVybiBuJiZuLkNvb2tpZVYyTmV3Q29uc2VudFJlY2VpcHRBUEkmJihlJiZ0LkFub255bW91c0NvbnNlbnRBcGk/bz10LkFub255bW91c0NvbnNlbnRBcGk6RC5pc1YyU3R1YiYmdC5DUk9Db25zZW50QXBpJiYobz10LkNST0NvbnNlbnRBcGkpKSxvfSxScy5wcm90b3R5cGUuYmxvY2tEZWZhdWx0UmVjZWlwdENhbGw9ZnVuY3Rpb24oZSl7cmV0dXJuISFlJiYhIWIuZnAuQ01QTm90R2l2ZW4mJiFPLkNhbkdlbmVyYXRlTm90R2l2ZW5SZWNlaXB0c30sUnMucHJvdG90eXBlLmVuc3VyZUNvbnNlbnRJZD1mdW5jdGlvbihlLHQsbyl7dm9pZCAwPT09byYmKG89ITEpO3ZhciBuLHI9ITEsaT10aGlzLmdldElkZW5UeXBlQW5kSXNBbm9uQXR0cigpLHM9aS5pc0Fub255bW91cyxpPWkuaWRlbnRpZmllclR5cGUsZT1lfHwhdHx8bz8wOihyPSEwLDEpLGE9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5DT05TRU5UX0lELCEwKSx0PShhPyhuPXBhcnNlSW50KEwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuSU5URVJBQ1RJT05fQ09VTlQpLDEwKSxpc05hTihuKXx8KHQmJiFvJiYrK24sZT1uLHI9ITEpKTooYT12LmdlbmVyYXRlVVVJRCgpLEwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLkNPTlNFTlRfSUQsYSkpLEwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLklOVEVSQUNUSU9OX0NPVU5ULGUpLEwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLklTX0FOT05ZTU9VU19DT05TRU5ULHM/IjEiOiIwIiksISFELmRzUGFyYW1zLnRva2VuKTtyZXR1cm4gTC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuUFJFVl9VU0VSX0hBRF9UT0tFTix0PyIxIjoiMCIpLHtpZDphLGNvdW50OmUsYWRkRGZsdEludDpyLGlkZW50aWZpZXJUeXBlOmksaXNBbm9ueW1vdXM6c319LFJzLnByb3RvdHlwZS5nZXRJZGVuVHlwZUFuZElzQW5vbkF0dHI9ZnVuY3Rpb24oKXt2YXIgZT0hMCx0PUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuSURFTlRJRklFUl9UWVBFLCExKSxvPXQsbj0oITEhPT0obnVsbD09KG49Ty5Db25zZW50SW50ZWdyYXRpb24pP3ZvaWQgMDpuLklkZW50aWZpZWRSZWNlaXB0c0FsbG93ZWQpJiZELmlzVjJTdHVifHwoZT0hMCxvPW51bGw9PShuPU8uQ29uc2VudEludGVncmF0aW9uKT92b2lkIDA6bi5EZWZhdWx0QW5vbnltb3VzSWRlbnRpZmllciksKEQuaXNWMlN0dWJ8fG51bGwhPShuPU8uQ29uc2VudEludGVncmF0aW9uKSYmbi5JZGVudGlmaWVkUmVjZWlwdHNBbGxvd2VkJiYhRC5pc1YyU3R1YikmJihlPShuPXRoaXMuc2V0QW5vbnltaXR5QmFzZWRPbktub3duVXNlck9yTm90KGUsbykpLmlzQW5vbnltb3VzLG89bi5pZFR5cGVVcGRhdGVkKSxELmRzUGFyYW1zKTtyZXR1cm4gbi5mb3JjZVVzZXJDb25zZW50QXR0cmlidXRlcyYmKG4mJm4uaGFzT3duUHJvcGVydHkoImlzQW5vbnltb3VzIikmJihlPW4uaXNBbm9ueW1vdXMpLHQpJiYobz10KSx7aXNBbm9ueW1vdXM6ZSxpZGVudGlmaWVyVHlwZTpvfX0sUnMucHJvdG90eXBlLnNldEFub255bWl0eUJhc2VkT25Lbm93blVzZXJPck5vdD1mdW5jdGlvbihlLHQpe3ZhciBvLG49IiIsbj1udWxsIT0obz1ELmRzUGFyYW1zKSYmby5pZD8oZT0hMSxudWxsIT0obz10KSYmby50cmltKCkubGVuZ3RoP3Q6bnVsbD09KG89Ty5Db25zZW50SW50ZWdyYXRpb24pP3ZvaWQgMDpvLkRlZmF1bHRJZGVudGlmaWVyKTooZT0hMCxudWxsPT0odD1PLkNvbnNlbnRJbnRlZ3JhdGlvbik/dm9pZCAwOnQuRGVmYXVsdEFub255bW91c0lkZW50aWZpZXIpO3JldHVybntpc0Fub255bW91czplLGlkVHlwZVVwZGF0ZWQ6bn19LFJzLnByb3RvdHlwZS5zdG9yZUludGVyYWN0aW9uVHlwZT1mdW5jdGlvbihlKXtpZihudWxsIT1lKXt2YXIgdDtpZigibnVtYmVyIj09dHlwZW9mIGUpaXNOYU4oZSl8fCh0PWUpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKXtlPWUudHJpbSgpO2lmKCFlKXJldHVybjt2YXIgbz1OdW1iZXIoZSk7aXNOYU4obyk/Im51bWJlciI9PXR5cGVvZihlPXVlW2VdKSYmKHQ9ZSk6dD1vfWU9T2JqZWN0LnZhbHVlcyh1ZSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZX0pO3ZvaWQgMCE9PXQmJmUuaW5jbHVkZXModCkmJkwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLklOVEVSQUNUSU9OX1RZUEUsdCl9fSxScy5wcm90b3R5cGUuZ2V0QXV0aFRva2VuPWZ1bmN0aW9uKCl7dmFyIGU9bnVsbDtyZXR1cm4gZT1PLkNvbnNlbnRJbnRlZ3JhdGlvbi5FbmFibGVKV1RBdXRoRm9yS25vd25Vc2VycyYmRC5kc1BhcmFtcy5pZCYmRC5kc1BhcmFtcy50b2tlbj9ELmRzUGFyYW1zLnRva2VuOmV9LFJzLnByb3RvdHlwZS5zZW5kQmVhY29uU3VwcG9ydGVkPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJm5hdmlnYXRvci5zZW5kQmVhY29uJiYhdH0sUnMucHJvdG90eXBlLmhhbmRsZVJlY2VpcHRzV2hlblNlbmRSZWNlaXB0SXNFbmFibGVkPWZ1bmN0aW9uKGUsdCxvKXshRC5pc1YyU3R1YiYmdCYmKCh0PUwuZ2V0Q29va2llKGsuQUxFUlRfQk9YX0NMT1NFRCkpJiYoZS5pbnRlcmFjdGlvbkRhdGU9dCksbyYmKGUuSW50ZXJhY3Rpb25UeXBlPW8pLGUuZW5hYmxlRGF0YUVsZW1lbnREYXRlVmFsaWRhdGlvbj0hMCl9LFJzLnByb3RvdHlwZS5nZXRHcnBEZXRhaWxzPWZ1bmN0aW9uKGUsbyl7dmFyIG49W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgZT1lLnNwbGl0KCI6IiksdD1lWzBdLGU9InRydWUiPT09ZVsxXT8iMSI6IjAiLHQ9eHMuZ2V0T3B0YW5vbklkRm9ySWFiR3JvdXAodCxvKTtuLnB1c2godCsiOiIrZSl9KSxufSxScy5wcm90b3R5cGUuZ2V0T3B0YW5vbklkRm9ySWFiR3JvdXA9ZnVuY3Rpb24oZSx0KXt2YXIgbztyZXR1cm4gdD09PXRlLlB1cnBvc2U/bz1FLklkUGF0dGVybnMuUHVyK2U6dD09PXRlLlNwZWNpYWxGZWF0dXJlJiYobz1FLklkUGF0dGVybnMuU3BsX0Z0K2UpLG99LFJzLnByb3RvdHlwZS5nZXRDb25zZXRQdXJwb3Nlcz1mdW5jdGlvbihuLHIsaSl7dmFyIHM9dGhpcyxhPVtdLGU9W10sdD1ELm9uZVRydXN0SUFCQ29uc2VudCxvPXQmJnQucHVycG9zZT90aGlzLmdldEdycERldGFpbHModC5wdXJwb3NlLHRlLlB1cnBvc2UpOltdLGw9dCYmdC5zcGVjaWFsRmVhdHVyZXM/dGhpcy5nZXRHcnBEZXRhaWxzKHQuc3BlY2lhbEZlYXR1cmVzLHRlLlNwZWNpYWxGZWF0dXJlKTpbXSxlPUYodC5zcGVjaWFsUHVycG9zZXMsdC5mZWF0dXJlcyk7cmV0dXJuIEYoRC5ncm91cHNDb25zZW50LG8sbCkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxlPWUuc3BsaXQoIjoiKSxvPXkuZ2V0R3JvdXBCeUlkKGVbMF0pO28mJm8uUHVycG9zZUlkJiYoZT1zLmdldFRyYW5zYWN0aW9uVHlwZShvLGUsbiksdD1zLnByb2Nlc3NHcm91cENvbnNlbnRQdXJwb3NlKG8sZSxhLHIsaSkscy5zZXRWU0NvbnNlbnRCeUdyb3VwKG8sZSx0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBhLnB1c2goZSl9KSl9KSxlLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5wdXJwb3NlSWQmJmEucHVzaCh7SWQ6ZS5wdXJwb3NlSWQsVHJhbnNhY3Rpb25UeXBlOlJlfSl9KSwiR1BDIiE9PXImJiJETlQiIT09cnx8KGE9YS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuUHVycG9zZU5vdGV9KSksRC5iYW5uZXJDbG9zZVNvdXJjZT1aLlVua25vd24sYX0sUnMucHJvdG90eXBlLnNldFZTQ29uc2VudEJ5R3JvdXA9ZnVuY3Rpb24oZSxvLG4pe3ZhciByPVtdO3JldHVybiBELnNob3dWZW5kb3JTZXJ2aWNlJiZlLlZlbmRvclNlcnZpY2VzJiZlLlZlbmRvclNlcnZpY2VzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ7dD1vLnVzZU93bj9ELnZzQ29uc2VudC5nZXQoZS5DdXN0b21WZW5kb3JTZXJ2aWNlSWQpP3hlOkhlOm8udHhuVHlwZSxyLnB1c2goIkdQQyI9PT1uP3tJZDplLlB1cnBvc2VJZCxUcmFuc2FjdGlvblR5cGU6dCxQdXJwb3NlTm90ZTp7bm90ZUlkOk8uQ29uc2VudEludGVncmF0aW9uLkdQQ1JlYXNvbklELG5vdGVUeXBlOiJVTlNVQlNDUklCRV9SRUFTT04iLG5vdGVUZXh0Ok8uR1BDT3B0T3V0Tm90ZVRleHR9fToiRE5UIj09PW4/e0lkOmUuUHVycG9zZUlkLFRyYW5zYWN0aW9uVHlwZTp0LFB1cnBvc2VOb3RlOntub3RlSWQ6Ty5Db25zZW50SW50ZWdyYXRpb24uRE5UUmVhc29uSUQsbm90ZVR5cGU6IlVOU1VCU0NSSUJFX1JFQVNPTiIsbm90ZVRleHQ6Ty5ETlRPcHRPdXROb3RlVGV4dH19OntJZDplLlB1cnBvc2VJZCxUcmFuc2FjdGlvblR5cGU6dH0pfSkscn0sUnMucHJvdG90eXBlLmdldFRyYW5zYWN0aW9uVHlwZT1mdW5jdGlvbihlLHQsbyl7dmFyIG49e3R4blR5cGU6UmUsdXNlT3duOiExfTtyZXR1cm4gZS5TdGF0dXM9PT1mLkFMV0FZU19BQ1RJVkU/bi50eG5UeXBlPVJlOmUuU3RhdHVzLnRvTG93ZXJDYXNlKCk9PT1mLkFMV0FZU19JTkFDVElWRXx8ZS5TdGF0dXM9PT1mLklOQUNUSVZFJiZ4cy5pc0Nsb3NlQnlJY29uT3JMaW5rfHxvP24udHhuVHlwZT1GZTplLlN0YXR1cz09PWYuQUNUSVZFJiZ4cy5pc0Nsb3NlQnlJY29uT3JMaW5rP24udHhuVHlwZT14cy5ub09wdE91dFRvb2dsZT9NZTp4ZToobi51c2VPd249ITAsbi50eG5UeXBlPXRoaXMuZ2V0VHhuVHlwZSh0WzFdKSksbn0sUnMucHJvdG90eXBlLmdldFR4blR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIjAiPT09ZT9IZTp4ZX0sUnMucHJvdG90eXBlLmlzUHVycG9zZUNvbnNlbnRlZFRvPWZ1bmN0aW9uKGUsdCl7dmFyIG89W3hlLFJlXTtyZXR1cm4gZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLklkPT09dC5QdXJwb3NlSWQmJigtMSE9PW8uaW5kZXhPZihlLlRyYW5zYWN0aW9uVHlwZSl8fHkuY2hlY2tJZkdyb3VwSGFzQ29uc2VudCh0KSl9KX0sUnMucHJvdG90eXBlLnByb2Nlc3NHcm91cENvbnNlbnRQdXJwb3NlPWZ1bmN0aW9uKGUsdCxvLG4scil7cmV0dXJuKCFuJiYiR1BDIHZhbHVlIGNoYW5nZWQiPT09cnx8IkdQQyI9PT1uKSYmZS5pc0RlbmllZEJ5R1BDPyhvLnB1c2goe0lkOmUuUHVycG9zZUlkLFRyYW5zYWN0aW9uVHlwZTp0LnR4blR5cGUsUHVycG9zZU5vdGU6e25vdGVJZDpPLkNvbnNlbnRJbnRlZ3JhdGlvbi5HUENSZWFzb25JRCxub3RlVHlwZToiVU5TVUJTQ1JJQkVfUkVBU09OIixub3RlVGV4dDpPLkdQQ09wdE91dE5vdGVUZXh0fX0pLCJHUEMiKToiRE5UIj09PW4mJmUuaXNEZW5pZWRCeUROVD8oby5wdXNoKHtJZDplLlB1cnBvc2VJZCxUcmFuc2FjdGlvblR5cGU6dC50eG5UeXBlLFB1cnBvc2VOb3RlOntub3RlSWQ6Ty5Db25zZW50SW50ZWdyYXRpb24uRE5UUmVhc29uSUQsbm90ZVR5cGU6IlVOU1VCU0NSSUJFX1JFQVNPTiIsbm90ZVRleHQ6Ty5ETlRPcHRPdXROb3RlVGV4dH19KSwiRE5UIik6KG8ucHVzaCh7SWQ6ZS5QdXJwb3NlSWQsVHJhbnNhY3Rpb25UeXBlOnQudHhuVHlwZX0pLCJub25lIil9LFJzLnByb3RvdHlwZS5jYW5TZW5kQWR2YW5jZWRBbmFseXRpY3M9ZnVuY3Rpb24odCxlKXt2YXIgbz10aGlzO3JldHVybiJCUkFOQ0giPT09ZS5UeXBlfHxlLlR5cGU9PT1FLkdyb3VwVHlwZXMuU3RhY2s/ZS5TdWJHcm91cHMubGVuZ3RoJiZlLlN1Ykdyb3Vwcy5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm4gby5pc1B1cnBvc2VDb25zZW50ZWRUbyh0LGUpfSk6dGhpcy5pc1B1cnBvc2VDb25zZW50ZWRUbyh0LGUpfTt2YXIgeHMsSHM9UnM7ZnVuY3Rpb24gUnMoKXt0aGlzLk1JTl9JTlRFUlZBTF9CRVRXRUVOX0NBTExTPTYwNDhlNX12YXIgRnMsTXM9ZnVuY3Rpb24oKXt0aGlzLmFzc2V0cz1mdW5jdGlvbigpe3JldHVybntuYW1lOiJvdENvb2tpZVBvbGljeSIsaHRtbDonPGRpdiBjbGFzcz0ib3Qtc2RrLWNvb2tpZS1wb2xpY3kgb3Qtc2RrLWNvbnRhaW5lciI+XG4gICAgPGgzIGlkPSJjb29raWUtcG9saWN5LXRpdGxlIj5Db29raWUgVHJhY2tpbmcgVGFibGU8L2gzPlxuICAgIDxkaXYgaWQ9ImNvb2tpZS1wb2xpY3ktZGVzY3JpcHRpb24iPjwvZGl2PlxuICAgIDxzZWN0aW9uPlxuICAgICAgICA8aDQgY2xhc3M9Im90LXNkay1jb29raWUtcG9saWN5LWdyb3VwIj5TdHJpY3RseSBOZWNlc3NhcnkgQ29va2llczwvaDQ+XG4gICAgICAgIDxwIGNsYXNzPSJvdC1zZGstY29va2llLXBvbGljeS1ncm91cC1kZXNjIj5ncm91cCBkZXNjcmlwdGlvbjwvcD5cbiAgICAgICAgPGg1IGNsYXNzPSJjb29raWVzLXVzZWQtaGVhZGVyIj5Db29raWVzIFVzZWQ8L2g1PlxuICAgICAgICA8dWwgY2xhc3M9ImNvb2tpZXMtbGlzdCI+XG4gICAgICAgICAgICA8bGk+Q29va2llIDE8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgICA8dGFibGU+XG4gICAgICAgICAgICA8Y2FwdGlvbiBjbGFzcz0ib3Qtc2Nybi1yZHIiPmNhcHRpb248L2NhcHRpb24+XG4gICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9ImNvbCIgY2xhc3M9InRhYmxlLWhlYWRlciBob3N0Ij5Ib3N0PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJ0YWJsZS1oZWFkZXIgaG9zdC1kZXNjcmlwdGlvbiI+SG9zdCBEZXNjcmlwdGlvbjwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIiBjbGFzcz0idGFibGUtaGVhZGVyIGNvb2tpZXMiPkNvb2tpZXM8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9ImNvbCIgY2xhc3M9InRhYmxlLWhlYWRlciBsaWZlLXNwYW4iPkxpZmUgU3BhbjwvdGg+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9Imhvc3QtdGQiIGRhdGEtbGFiZWw9Ikhvc3QiPjxzcGFuIGNsYXNzPSJvdC1tb2JpbGUtYm9yZGVyIj48L3NwYW4+PGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2Nvb2tpZXBlZGlhLmNvLnVrL2hvc3QvLmFwcC5vbmV0cnVzdC5jb20/X2dhPTIuMTU3Njc1ODk4LjE1NzIwODQzOTUuMTU1NjEyMDA5MC0xMjY2NDU5MjMwLjE1NTU1OTM1NDgmX2dhPTIuMTU3Njc1ODk4LjE1NzIwODQzOTUuMTU1NjEyMDA5MC0xMjY2NDU5MjMwLjE1NTU1OTM1NDgiPkF6dXJlPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9Imhvc3QtZGVzY3JpcHRpb24tdGQiIGRhdGEtbGFiZWw9Ikhvc3QgRGVzY3JpcHRpb24iPjxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im90LW1vYmlsZS1ib3JkZXIiPjwvc3Bhbj5UaGVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2llcyBhcmUgdXNlZCB0byBtYWtlIHN1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2l0b3IgcGFnZSByZXF1ZXN0cyBhcmUgcm91dGVkIHRvIHRoZSBzYW1lIHNlcnZlciBpbiBhbGwgYnJvd3Npbmcgc2Vzc2lvbnMuPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb29raWVzLXRkIiBkYXRhLWxhYmVsPSJDb29raWVzIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvdC1tb2JpbGUtYm9yZGVyIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFSUkFmZmluaXR5PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ibGlmZS1zcGFuLXRkIiBkYXRhLWxhYmVsPSJMaWZlIFNwYW4iPjxzcGFuIGNsYXNzPSJvdC1tb2JpbGUtYm9yZGVyIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjEwMCBkYXlzPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxzZWN0aW9uIGNsYXNzPSJzdWJncm91cCI+XG4gICAgICAgIDxoNSBjbGFzcz0ib3Qtc2RrLWNvb2tpZS1wb2xpY3ktZ3JvdXAiPlN0cmljdGx5IE5lY2Vzc2FyeSBDb29raWVzPC9oNT5cbiAgICAgICAgPHAgY2xhc3M9Im90LXNkay1jb29raWUtcG9saWN5LWdyb3VwLWRlc2MiPmRlc2NyaXB0aW9uPC9wPlxuICAgICAgICA8aDYgY2xhc3M9ImNvb2tpZXMtdXNlZC1oZWFkZXIiPkNvb2tpZXMgVXNlZDwvaDY+XG4gICAgICAgIDx1bCBjbGFzcz0iY29va2llcy1saXN0Ij5cbiAgICAgICAgICAgIDxsaT5Db29raWUgMTwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICAgIDx0YWJsZT5cbiAgICAgICAgICAgIDxjYXB0aW9uIGNsYXNzPSJvdC1zY3JuLXJkciI+Y2FwdGlvbjwvY2FwdGlvbj5cbiAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIiBjbGFzcz0idGFibGUtaGVhZGVyIGhvc3QiPkhvc3Q8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9ImNvbCIgY2xhc3M9InRhYmxlLWhlYWRlciBob3N0LWRlc2NyaXB0aW9uIj5Ib3N0IERlc2NyaXB0aW9uPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJ0YWJsZS1oZWFkZXIgY29va2llcyI+Q29va2llczwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIiBjbGFzcz0idGFibGUtaGVhZGVyIGxpZmUtc3BhbiI+TGlmZSBTcGFuPC90aD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iaG9zdC10ZCIgZGF0YS1sYWJlbD0iSG9zdCI+PHNwYW4gY2xhc3M9Im90LW1vYmlsZS1ib3JkZXIiPjwvc3Bhbj48YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vY29va2llcGVkaWEuY28udWsvaG9zdC8uYXBwLm9uZXRydXN0LmNvbT9fZ2E9Mi4xNTc2NzU4OTguMTU3MjA4NDM5NS4xNTU2MTIwMDkwLTEyNjY0NTkyMzAuMTU1NTU5MzU0OCZfZ2E9Mi4xNTc2NzU4OTguMTU3MjA4NDM5NS4xNTU2MTIwMDkwLTEyNjY0NTkyMzAuMTU1NTU5MzU0OCI+QXp1cmU8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iaG9zdC1kZXNjcmlwdGlvbi10ZCIgZGF0YS1sYWJlbD0iSG9zdCBEZXNjcmlwdGlvbiI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib3QtbW9iaWxlLWJvcmRlciI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2llcyBhcmUgdXNlZCB0byBtYWtlIHN1cmVuZyBzZXNzaW9ucy5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb29raWVzLXRkIiBkYXRhLWxhYmVsPSJDb29raWVzIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvdC1tb2JpbGUtYm9yZGVyIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFSUkFmZmluaXR5PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ibGlmZS1zcGFuLXRkIiBkYXRhLWxhYmVsPSJMaWZlIFNwYW4iPjxzcGFuIGNsYXNzPSJvdC1tb2JpbGUtYm9yZGVyIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjEwMCBkYXlzPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgPC9zZWN0aW9uPlxuPC9kaXY+XG5ceDNjIS0tIE5ldyBDb29raWVzIHBvbGljeSBMaW5rLS1ceDNlXG48ZGl2IGlkPSJvdC1zZGstY29va2llLXBvbGljeS12MiIgY2xhc3M9Im90LXNkay1jb29raWUtcG9saWN5IG90LXNkay1jb250YWluZXIiPlxuICAgIDxoMyBpZD0iY29va2llLXBvbGljeS10aXRsZSIgY2xhc3M9Im90LXNkay1jb29raWUtcG9saWN5LXRpdGxlIj5Db29raWUgVHJhY2tpbmcgVGFibGU8L2gzPlxuICAgIDxkaXYgaWQ9ImNvb2tpZS1wb2xpY3ktZGVzY3JpcHRpb24iPjwvZGl2PlxuICAgIDxzZWN0aW9uPlxuICAgICAgICA8aDQgY2xhc3M9Im90LXNkay1jb29raWUtcG9saWN5LWdyb3VwIj5TdHJpY3RseSBOZWNlc3NhcnkgQ29va2llczwvaDQ+XG4gICAgICAgIDxwIGNsYXNzPSJvdC1zZGstY29va2llLXBvbGljeS1ncm91cC1kZXNjIj5ncm91cCBkZXNjcmlwdGlvbjwvcD5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9Im90LXNkay1zdWJncm91cCI+XG4gICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9Im90LXNkay1jb29raWUtcG9saWN5LWdyb3VwIj5TdHJpY3RseSBOZWNlc3NhcnkgQ29va2llczwvaDU+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJvdC1zZGstY29va2llLXBvbGljeS1ncm91cC1kZXNjIj5kZXNjcmlwdGlvbjwvcD5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICA8dGFibGU+XG4gICAgICAgICAgICA8Y2FwdGlvbiBjbGFzcz0ib3Qtc2Nybi1yZHIiPmNhcHRpb248L2NhcHRpb24+XG4gICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9ImNvbCIgY2xhc3M9Im90LXRhYmxlLWhlYWRlciBvdC1ob3N0Ij5Ib3N0PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJvdC10YWJsZS1oZWFkZXIgb3QtaG9zdC1kZXNjcmlwdGlvbiI+SG9zdCBEZXNjcmlwdGlvbjwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIiBjbGFzcz0ib3QtdGFibGUtaGVhZGVyIG90LWNvb2tpZXMiPkNvb2tpZXM8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9ImNvbCIgY2xhc3M9Im90LXRhYmxlLWhlYWRlciBvdC1jb29raWVzLXR5cGUiPlR5cGU8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9ImNvbCIgY2xhc3M9Im90LXRhYmxlLWhlYWRlciBvdC1saWZlLXNwYW4iPkxpZmUgU3BhbjwvdGg+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9Im90LWhvc3QtdGQiIGRhdGEtbGFiZWw9Ikhvc3QiPjxzcGFuIGNsYXNzPSJvdC1tb2JpbGUtYm9yZGVyIj48L3NwYW4+PGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2Nvb2tpZXBlZGlhLmNvLnVrL2hvc3QvLmFwcC5vbmV0cnVzdC5jb20/X2dhPTIuMTU3Njc1ODk4LjE1NzIwODQzOTUuMTU1NjEyMDA5MC0xMjY2NDU5MjMwLjE1NTU1OTM1NDgmX2dhPTIuMTU3Njc1ODk4LjE1NzIwODQzOTUuMTU1NjEyMDA5MC0xMjY2NDU5MjMwLjE1NTU1OTM1NDgiPkF6dXJlPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9Im90LWhvc3QtZGVzY3JpcHRpb24tdGQiIGRhdGEtbGFiZWw9Ikhvc3QgRGVzY3JpcHRpb24iPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im90LW1vYmlsZS1ib3JkZXIiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tpZXMgYXJlIHVzZWQgdG8gbWFrZSBzdXJlbmcgc2Vzc2lvbnMuXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ib3QtY29va2llcy10ZCIgZGF0YS1sYWJlbD0iQ29va2llcyI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib3QtbW9iaWxlLWJvcmRlciI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im90LWNvb2tpZXMtdGQtY29udGVudCI+QVJSQWZmaW5pdHk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ib3QtY29va2llcy10eXBlIiBkYXRhLWxhYmVsPSJUeXBlIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJvdC1tb2JpbGUtYm9yZGVyIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib3QtY29va2llcy10eXBlLXRkLWNvbnRlbnQiPjFzdCBQYXJ0eTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJvdC1saWZlLXNwYW4tdGQiIGRhdGEtbGFiZWw9IkxpZmUgU3BhbiI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ib3QtbW9iaWxlLWJvcmRlciI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im90LWxpZmUtc3Bhbi10ZC1jb250ZW50Ij4xMDAgZGF5czwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj4nLGNzczoiLm90LXNkay1jb29raWUtcG9saWN5e2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjE2cHh9Lm90LXNkay1jb29raWUtcG9saWN5Lm90UmVsRm9udHtmb250LXNpemU6MXJlbX0ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDMsLm90LXNkay1jb29raWUtcG9saWN5IGg0LC5vdC1zZGstY29va2llLXBvbGljeSBoNiwub3Qtc2RrLWNvb2tpZS1wb2xpY3kgcCwub3Qtc2RrLWNvb2tpZS1wb2xpY3kgbGksLm90LXNkay1jb29raWUtcG9saWN5IGEsLm90LXNkay1jb29raWUtcG9saWN5IHRoLC5vdC1zZGstY29va2llLXBvbGljeSAjY29va2llLXBvbGljeS1kZXNjcmlwdGlvbiwub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1jb29raWUtcG9saWN5LWdyb3VwLC5vdC1zZGstY29va2llLXBvbGljeSAjY29va2llLXBvbGljeS10aXRsZXtjb2xvcjpkaW1ncmF5fS5vdC1zZGstY29va2llLXBvbGljeSAjY29va2llLXBvbGljeS1kZXNjcmlwdGlvbnttYXJnaW4tYm90dG9tOjFlbX0ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDR7Zm9udC1zaXplOjEuMmVtfS5vdC1zZGstY29va2llLXBvbGljeSBoNntmb250LXNpemU6MWVtO21hcmdpbi10b3A6MmVtfS5vdC1zZGstY29va2llLXBvbGljeSB0aHttaW4td2lkdGg6NzVweH0ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgYSwub3Qtc2RrLWNvb2tpZS1wb2xpY3kgYTpob3ZlcntiYWNrZ3JvdW5kOiNmZmZ9Lm90LXNkay1jb29raWUtcG9saWN5IHRoZWFke2JhY2tncm91bmQtY29sb3I6I2Y2ZjZmNDtmb250LXdlaWdodDpib2xkfS5vdC1zZGstY29va2llLXBvbGljeSAub3QtbW9iaWxlLWJvcmRlcntkaXNwbGF5Om5vbmV9Lm90LXNkay1jb29raWUtcG9saWN5IHNlY3Rpb257bWFyZ2luLWJvdHRvbToyZW19Lm90LXNkay1jb29raWUtcG9saWN5IHRhYmxle2JvcmRlci1jb2xsYXBzZTppbmhlcml0fSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeXtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxcmVtfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSBoMywjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDQsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IGg2LCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSBwLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSBsaSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgYSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGgsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5ICNjb29raWUtcG9saWN5LWRlc2NyaXB0aW9uLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvb2tpZS1wb2xpY3ktZ3JvdXAsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5ICNjb29raWUtcG9saWN5LXRpdGxle2NvbG9yOmRpbWdyYXl9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5ICNjb29raWUtcG9saWN5LWRlc2NyaXB0aW9ue21hcmdpbi1ib3R0b206MWVtfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLXN1Ymdyb3Vwe21hcmdpbi1sZWZ0OjEuNWVtfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSAjY29va2llLXBvbGljeS1kZXNjcmlwdGlvbiwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1jb29raWUtcG9saWN5LWdyb3VwLWRlc2MsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IC5vdC10YWJsZS1oZWFkZXIsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IGEsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHNwYW4sI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRke2ZvbnQtc2l6ZTouOWVtfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0ZCBzcGFuLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0ZCBhe2ZvbnQtc2l6ZTppbmhlcml0fSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvb2tpZS1wb2xpY3ktZ3JvdXB7Zm9udC1zaXplOjFlbTttYXJnaW4tYm90dG9tOi42ZW19I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstY29va2llLXBvbGljeS10aXRsZXttYXJnaW4tYm90dG9tOjEuMmVtfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeT5zZWN0aW9ue21hcmdpbi1ib3R0b206MWVtfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0aHttaW4td2lkdGg6NzVweH0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgYSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgYTpob3ZlcntiYWNrZ3JvdW5kOiNmZmZ9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRoZWFke2JhY2tncm91bmQtY29sb3I6I2Y2ZjZmNDtmb250LXdlaWdodDpib2xkfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSAub3QtbW9iaWxlLWJvcmRlcntkaXNwbGF5Om5vbmV9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHNlY3Rpb257bWFyZ2luLWJvdHRvbToyZW19I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstc3ViZ3JvdXAgdWwgbGl7bGlzdC1zdHlsZTpkaXNjO21hcmdpbi1sZWZ0OjEuNWVtfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLXN1Ymdyb3VwIHVsIGxpIGg0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZXtib3JkZXItY29sbGFwc2U6aW5oZXJpdDttYXJnaW46YXV0bztib3JkZXI6MXB4IHNvbGlkICNkN2Q3ZDc7Ym9yZGVyLXJhZGl1czo1cHg7Ym9yZGVyLXNwYWNpbmc6aW5pdGlhbDt3aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbn0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGFibGUgdGgsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRhYmxlIHRke2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkN2Q3ZDc7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDdkN2Q3fSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZSB0cjpsYXN0LWNoaWxkIHRke2JvcmRlci1ib3R0b206MHB4fSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZSB0ciB0aDpsYXN0LWNoaWxkLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZSB0ciB0ZDpsYXN0LWNoaWxke2JvcmRlci1yaWdodDowcHh9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRhYmxlIC5vdC1ob3N0LCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZSAub3QtY29va2llcy10eXBle3dpZHRoOjI1JX0ub3Qtc2RrLWNvb2tpZS1wb2xpY3lbZGlyPXJ0bF17dGV4dC1hbGlnbjpsZWZ0fSNvdC1zZGstY29va2llLXBvbGljeSBoM3tmb250LXNpemU6MS41ZW19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MzBweCl7Lm90LXNkay1jb29raWUtcG9saWN5Om5vdCgjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIpIHRhYmxlLC5vdC1zZGstY29va2llLXBvbGljeTpub3QoI290LXNkay1jb29raWUtcG9saWN5LXYyKSB0aGVhZCwub3Qtc2RrLWNvb2tpZS1wb2xpY3k6bm90KCNvdC1zZGstY29va2llLXBvbGljeS12MikgdGJvZHksLm90LXNkay1jb29raWUtcG9saWN5Om5vdCgjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIpIHRoLC5vdC1zZGstY29va2llLXBvbGljeTpub3QoI290LXNkay1jb29raWUtcG9saWN5LXYyKSB0ZCwub3Qtc2RrLWNvb2tpZS1wb2xpY3k6bm90KCNvdC1zZGstY29va2llLXBvbGljeS12MikgdHJ7ZGlzcGxheTpibG9ja30ub3Qtc2RrLWNvb2tpZS1wb2xpY3k6bm90KCNvdC1zZGstY29va2llLXBvbGljeS12MikgdGhlYWQgdHJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOi05OTk5cHg7bGVmdDotOTk5OXB4fS5vdC1zZGstY29va2llLXBvbGljeTpub3QoI290LXNkay1jb29raWUtcG9saWN5LXYyKSB0cnttYXJnaW46MCAwIDFlbSAwfS5vdC1zZGstY29va2llLXBvbGljeTpub3QoI290LXNkay1jb29raWUtcG9saWN5LXYyKSB0cjpudGgtY2hpbGQob2RkKSwub3Qtc2RrLWNvb2tpZS1wb2xpY3k6bm90KCNvdC1zZGstY29va2llLXBvbGljeS12MikgdHI6bnRoLWNoaWxkKG9kZCkgYXtiYWNrZ3JvdW5kOiNmNmY2ZjR9Lm90LXNkay1jb29raWUtcG9saWN5Om5vdCgjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIpIHRke2JvcmRlcjpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZWU7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1sZWZ0OjUwJX0ub3Qtc2RrLWNvb2tpZS1wb2xpY3k6bm90KCNvdC1zZGstY29va2llLXBvbGljeS12MikgdGQ6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO2xlZnQ6NnB4O3dpZHRoOjQwJTtwYWRkaW5nLXJpZ2h0OjEwcHh9Lm90LXNkay1jb29raWUtcG9saWN5Om5vdCgjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIpIC5vdC1tb2JpbGUtYm9yZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtY29sb3I6I2U0ZTRlNDtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt0b3A6MDtsZWZ0OjQ1JTt3aWR0aDoycHh9Lm90LXNkay1jb29raWUtcG9saWN5Om5vdCgjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIpIHRkOmJlZm9yZXtjb250ZW50OmF0dHIoZGF0YS1sYWJlbCk7Zm9udC13ZWlnaHQ6Ym9sZH0ub3Qtc2RrLWNvb2tpZS1wb2xpY3k6bm90KCNvdC1zZGstY29va2llLXBvbGljeS12MikgbGl7d29yZC1icmVhazpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZXtvdmVyZmxvdzpoaWRkZW59I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRhYmxlIHRke2JvcmRlcjpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkN2Q3ZDd9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRhYmxlLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0aGVhZCwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGJvZHksI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRoLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0ZCwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdHJ7ZGlzcGxheTpibG9ja30jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGFibGUgLm90LWhvc3QsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRhYmxlIC5vdC1jb29raWVzLXR5cGV7d2lkdGg6YXV0b30jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdHJ7bWFyZ2luOjAgMCAxZW0gMH0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGQ6YmVmb3Jle2hlaWdodDoxMDAlO3dpZHRoOjQwJTtwYWRkaW5nLXJpZ2h0OjEwcHh9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRkOmJlZm9yZXtjb250ZW50OmF0dHIoZGF0YS1sYWJlbCk7Zm9udC13ZWlnaHQ6Ym9sZH0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgbGl7d29yZC1icmVhazpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0aGVhZCB0cntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTk5OTlweDtsZWZ0Oi05OTk5cHg7ei1pbmRleDotOTk5OX0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGFibGUgdHI6bGFzdC1jaGlsZCB0ZHtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZDdkN2Q3O2JvcmRlci1yaWdodDowcHh9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRhYmxlIHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tOjBweH19Iixjc3NSVEw6Ii5vdC1zZGstY29va2llLXBvbGljeXtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxNnB4fS5vdC1zZGstY29va2llLXBvbGljeS5vdFJlbEZvbnR7Zm9udC1zaXplOjFyZW19Lm90LXNkay1jb29raWUtcG9saWN5IGgzLC5vdC1zZGstY29va2llLXBvbGljeSBoNCwub3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDYsLm90LXNkay1jb29raWUtcG9saWN5IHAsLm90LXNkay1jb29raWUtcG9saWN5IGxpLC5vdC1zZGstY29va2llLXBvbGljeSBhLC5vdC1zZGstY29va2llLXBvbGljeSB0aCwub3Qtc2RrLWNvb2tpZS1wb2xpY3kgI2Nvb2tpZS1wb2xpY3ktZGVzY3JpcHRpb24sLm90LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstY29va2llLXBvbGljeS1ncm91cCwub3Qtc2RrLWNvb2tpZS1wb2xpY3kgI2Nvb2tpZS1wb2xpY3ktdGl0bGV7Y29sb3I6ZGltZ3JheX0ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgI2Nvb2tpZS1wb2xpY3ktZGVzY3JpcHRpb257bWFyZ2luLWJvdHRvbToxZW19Lm90LXNkay1jb29raWUtcG9saWN5IGg0e2ZvbnQtc2l6ZToxLjJlbX0ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDZ7Zm9udC1zaXplOjFlbTttYXJnaW4tdG9wOjJlbX0ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGh7bWluLXdpZHRoOjc1cHh9Lm90LXNkay1jb29raWUtcG9saWN5IGEsLm90LXNkay1jb29raWUtcG9saWN5IGE6aG92ZXJ7YmFja2dyb3VuZDojZmZmfS5vdC1zZGstY29va2llLXBvbGljeSB0aGVhZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNmY2ZjQ7Zm9udC13ZWlnaHQ6Ym9sZH0ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LW1vYmlsZS1ib3JkZXJ7ZGlzcGxheTpub25lfS5vdC1zZGstY29va2llLXBvbGljeSBzZWN0aW9ue21hcmdpbi1ib3R0b206MmVtfS5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZXtib3JkZXItY29sbGFwc2U6aW5oZXJpdH0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3l7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6MXJlbX0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDMsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IGg0LCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSBoNiwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgcCwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgbGksI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IGEsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRoLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSAjY29va2llLXBvbGljeS1kZXNjcmlwdGlvbiwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1jb29raWUtcG9saWN5LWdyb3VwLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSAjY29va2llLXBvbGljeS10aXRsZXtjb2xvcjpkaW1ncmF5fSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSAjY29va2llLXBvbGljeS1kZXNjcmlwdGlvbnttYXJnaW4tYm90dG9tOjFlbX0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1zdWJncm91cHttYXJnaW4tcmlnaHQ6MS41ZW19I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5ICNjb29raWUtcG9saWN5LWRlc2NyaXB0aW9uLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvb2tpZS1wb2xpY3ktZ3JvdXAtZGVzYywjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXRhYmxlLWhlYWRlciwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgYSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgc3Bhbiwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGR7Zm9udC1zaXplOi45ZW19I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRkIHNwYW4sI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRkIGF7Zm9udC1zaXplOmluaGVyaXR9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstY29va2llLXBvbGljeS1ncm91cHtmb250LXNpemU6MWVtO21hcmdpbi1ib3R0b206LjZlbX0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1jb29raWUtcG9saWN5LXRpdGxle21hcmdpbi1ib3R0b206MS4yZW19I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5PnNlY3Rpb257bWFyZ2luLWJvdHRvbToxZW19I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRoe21pbi13aWR0aDo3NXB4fSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSBhLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSBhOmhvdmVye2JhY2tncm91bmQ6I2ZmZn0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGhlYWR7YmFja2dyb3VuZC1jb2xvcjojZjZmNmY0O2ZvbnQtd2VpZ2h0OmJvbGR9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IC5vdC1tb2JpbGUtYm9yZGVye2Rpc3BsYXk6bm9uZX0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgc2VjdGlvbnttYXJnaW4tYm90dG9tOjJlbX0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1zdWJncm91cCB1bCBsaXtsaXN0LXN0eWxlOmRpc2M7bWFyZ2luLXJpZ2h0OjEuNWVtfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLXN1Ymdyb3VwIHVsIGxpIGg0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZXtib3JkZXItY29sbGFwc2U6aW5oZXJpdDttYXJnaW46YXV0bztib3JkZXI6MXB4IHNvbGlkICNkN2Q3ZDc7Ym9yZGVyLXJhZGl1czo1cHg7Ym9yZGVyLXNwYWNpbmc6aW5pdGlhbDt3aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbn0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGFibGUgdGgsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRhYmxlIHRke2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkN2Q3ZDc7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkN2Q3ZDd9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRhYmxlIHRyOmxhc3QtY2hpbGQgdGR7Ym9yZGVyLWJvdHRvbTowcHh9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRhYmxlIHRyIHRoOmxhc3QtY2hpbGQsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRhYmxlIHRyIHRkOmxhc3QtY2hpbGR7Ym9yZGVyLWxlZnQ6MHB4fSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZSAub3QtaG9zdCwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGFibGUgLm90LWNvb2tpZXMtdHlwZXt3aWR0aDoyNSV9Lm90LXNkay1jb29raWUtcG9saWN5W2Rpcj1ydGxde3RleHQtYWxpZ246cmlnaHR9I290LXNkay1jb29raWUtcG9saWN5IGgze2ZvbnQtc2l6ZToxLjVlbX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUzMHB4KXsub3Qtc2RrLWNvb2tpZS1wb2xpY3k6bm90KCNvdC1zZGstY29va2llLXBvbGljeS12MikgdGFibGUsLm90LXNkay1jb29raWUtcG9saWN5Om5vdCgjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIpIHRoZWFkLC5vdC1zZGstY29va2llLXBvbGljeTpub3QoI290LXNkay1jb29raWUtcG9saWN5LXYyKSB0Ym9keSwub3Qtc2RrLWNvb2tpZS1wb2xpY3k6bm90KCNvdC1zZGstY29va2llLXBvbGljeS12MikgdGgsLm90LXNkay1jb29raWUtcG9saWN5Om5vdCgjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIpIHRkLC5vdC1zZGstY29va2llLXBvbGljeTpub3QoI290LXNkay1jb29raWUtcG9saWN5LXYyKSB0cntkaXNwbGF5OmJsb2NrfS5vdC1zZGstY29va2llLXBvbGljeTpub3QoI290LXNkay1jb29raWUtcG9saWN5LXYyKSB0aGVhZCB0cntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTk5OTlweDtyaWdodDotOTk5OXB4fS5vdC1zZGstY29va2llLXBvbGljeTpub3QoI290LXNkay1jb29raWUtcG9saWN5LXYyKSB0cnttYXJnaW46MCAwIDFlbSAwfS5vdC1zZGstY29va2llLXBvbGljeTpub3QoI290LXNkay1jb29raWUtcG9saWN5LXYyKSB0cjpudGgtY2hpbGQob2RkKSwub3Qtc2RrLWNvb2tpZS1wb2xpY3k6bm90KCNvdC1zZGstY29va2llLXBvbGljeS12MikgdHI6bnRoLWNoaWxkKG9kZCkgYXtiYWNrZ3JvdW5kOiNmNmY2ZjR9Lm90LXNkay1jb29raWUtcG9saWN5Om5vdCgjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIpIHRke2JvcmRlcjpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZWU7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1yaWdodDo1MCV9Lm90LXNkay1jb29raWUtcG9saWN5Om5vdCgjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIpIHRkOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTtyaWdodDo2cHg7d2lkdGg6NDAlO3BhZGRpbmctbGVmdDoxMHB4fS5vdC1zZGstY29va2llLXBvbGljeTpub3QoI290LXNkay1jb29raWUtcG9saWN5LXYyKSAub3QtbW9iaWxlLWJvcmRlcntkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiNlNGU0ZTQ7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7dG9wOjA7cmlnaHQ6NDUlO3dpZHRoOjJweH0ub3Qtc2RrLWNvb2tpZS1wb2xpY3k6bm90KCNvdC1zZGstY29va2llLXBvbGljeS12MikgdGQ6YmVmb3Jle2NvbnRlbnQ6YXR0cihkYXRhLWxhYmVsKTtmb250LXdlaWdodDpib2xkfS5vdC1zZGstY29va2llLXBvbGljeTpub3QoI290LXNkay1jb29raWUtcG9saWN5LXYyKSBsaXt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d29yZC13cmFwOmJyZWFrLXdvcmR9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRhYmxle292ZXJmbG93OmhpZGRlbn0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGFibGUgdGR7Ym9yZGVyOm5vbmU7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2Q3ZDdkN30jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGFibGUsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRoZWFkLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0Ym9keSwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGgsI290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IHRkLCNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0cntkaXNwbGF5OmJsb2NrfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZSAub3QtaG9zdCwjb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGFibGUgLm90LWNvb2tpZXMtdHlwZXt3aWR0aDphdXRvfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0cnttYXJnaW46MCAwIDFlbSAwfSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0ZDpiZWZvcmV7aGVpZ2h0OjEwMCU7d2lkdGg6NDAlO3BhZGRpbmctbGVmdDoxMHB4fSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0ZDpiZWZvcmV7Y29udGVudDphdHRyKGRhdGEtbGFiZWwpO2ZvbnQtd2VpZ2h0OmJvbGR9I290LXNkay1jb29raWUtcG9saWN5LXYyLm90LXNkay1jb29raWUtcG9saWN5IGxpe3dvcmQtYnJlYWs6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZH0jb3Qtc2RrLWNvb2tpZS1wb2xpY3ktdjIub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGhlYWQgdHJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOi05OTk5cHg7cmlnaHQ6LTk5OTlweDt6LWluZGV4Oi05OTk5fSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZSB0cjpsYXN0LWNoaWxkIHRke2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkN2Q3ZDc7Ym9yZGVyLWxlZnQ6MHB4fSNvdC1zZGstY29va2llLXBvbGljeS12Mi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZSB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTowcHh9fSJ9fX0sVXM9Im9wdC1vdXQiLHFzPShqcy5wcm90b3R5cGUuaW5pdGlhbGl6ZUZlYXR1cmVzQW5kU3BlY2lhbFB1cnBvc2VzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztELm9uZVRydXN0SUFCQ29uc2VudC5mZWF0dXJlcz1bXSxELm9uZVRydXN0SUFCQ29uc2VudC5zcGVjaWFsUHVycG9zZXM9W10sTy5Hcm91cHMuZm9yRWFjaChmdW5jdGlvbihlKXt0LmNoZWNrQW5kUG9wdWxhdGVGZWF0QW5kU3BsUHVyKGUpfSl9LGpzLnByb3RvdHlwZS5jaGVja0FuZFBvcHVsYXRlRmVhdEFuZFNwbFB1cj1mdW5jdGlvbihlKXt2YXIgdCxvPXRoaXMsbj1FLkdyb3VwVHlwZXM7ZS5UeXBlIT09bi5GdCYmZS5UeXBlIT09bi5TcGxfUHVyfHwoKHQ9e30pLmdyb3VwSWQ9ZS5PcHRhbm9uR3JvdXBJZCx0LnB1cnBvc2VJZD1lLlB1cnBvc2VJZCx0LnZhbHVlPSEwLChlLlR5cGU9PT1uLkZ0P0Qub25lVHJ1c3RJQUJDb25zZW50LmZlYXR1cmVzOkQub25lVHJ1c3RJQUJDb25zZW50LnNwZWNpYWxQdXJwb3NlcykucHVzaCh0KSksZS5TdWJHcm91cHMmJmUuU3ViR3JvdXBzLmZvckVhY2goZnVuY3Rpb24oZSl7by5jaGVja0FuZFBvcHVsYXRlRmVhdEFuZFNwbFB1cihlKX0pfSxqcy5wcm90b3R5cGUuaW5pdEdycHNBbmRIb3N0cz1mdW5jdGlvbigpe3RoaXMuaW5pdGlhbGl6ZUdyb3VwRGF0YShfLmNvbnNlbnRhYmxlR3Jwcyksdy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKXx8Xy5pbml0Q29uc2VudGFibGVJbXBsaWVkQ29uc2VudEdyb3VwKF8uY29uc2VudGFibGVHcnBzKSxPLnNob3dDb29raWVMaXN0JiZoLmlzT3B0T3V0RW5hYmxlZCgpP3RoaXMuaW5pdGlhbGl6ZUhvc3REYXRhKF8uY29uc2VudGFibGVHcnBzKTooRC5ob3N0c0NvbnNlbnQ9W10sSW8ud3JpdGVIc3RQYXJhbShrLk9QVEFOT05fQ09OU0VOVCkpfSxqcy5wcm90b3R5cGUuZW5zdXJlSHRtbEdyb3VwRGF0YUluaXRpYWxpc2VkPWZ1bmN0aW9uKCl7dmFyIGUsdCxvLG47dGhpcy5pbml0R3Jwc0FuZEhvc3RzKCksRC5zaG93R2VuZXJhbFZlbmRvcnMmJihMby5wb3B1bGF0ZUdlblZlbmRvckxpc3RzKCksTG8uaW5pdEdlblZlbmRvckNvbnNlbnQoKSksTy5Jc0lhYkVuYWJsZWQmJih0aGlzLmluaXRpYWxpemVJQUJEYXRhKCksdGhpcy5pbml0aWFsaXplRmVhdHVyZXNBbmRTcGVjaWFsUHVycG9zZXMoKSksRC52c0lzQWN0aXZlQW5kT3B0T3V0JiZ0aGlzLmluaXRpYWxpemVWZW5kb3JzU2VydmljZSgpLHcuc2V0T3JVcGRhdGUzcmRQYXJ0eUlBQkNvbnNlbnRGbGFnKCksdy5zZXRHZW9sb2NhdGlvbkluQ29va2llcygpLE8uSXNDb25zZW50TG9nZ2luZ0VuYWJsZWQmJihlPXdpbmRvdy5PbmVUcnVzdC5kYXRhU3ViamVjdFBhcmFtc3x8e30sdD1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCwiaVR5cGUiKSxvPSIiLG49ITEsRC5pc1YyU3R1YiYmZS5pZCYmZS50b2tlbiYmKHR8fF8uZm9yY2VDcmVhdGVUcnhMb2NhbENvbnNlbnRJc0dyZWF0ZXIpJiYobz11ZVt0XSxELm1ha2VJbml0aWFsVHhuQ2FsbD1uPSEwKSx4cy5jcmVhdGVDb25zZW50VHhuKCExLG8sITEsbikpfSxqcy5wcm90b3R5cGUuaW5pdGlhbGl6ZVZlbmRvcnNTZXJ2aWNlPWZ1bmN0aW9uKCl7dmFyIG89dy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKSxlPUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULFh0KSxuPXYuc3RyVG9NYXAoZSk7RC5nZXRWZW5kb3JzSW5Eb21haW4oKS5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7bi5oYXModCl8fChlPSFvJiZ5LmNoZWNrSXNBY3RpdmVCeURlZmF1bHQoZS5ncm91cFJlZiksbi5zZXQodCxlKSl9KSxELnZzQ29uc2VudD1ufSxqcy5wcm90b3R5cGUuaW5pdGlhbGl6ZUdyb3VwRGF0YT1mdW5jdGlvbihlKXt2YXIgdDtMLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxXdCk/KHdvLnN5bmNocm9uaXNlQ29va2llR3JvdXBEYXRhKGUpLHQ9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsV3QpLEQuZ3JvdXBzQ29uc2VudD12LnN0clRvQXJyKHQpLEQuZ3BjQ29uc2VudFR4biYmKE8uSXNDb25zZW50TG9nZ2luZ0VuYWJsZWQmJnhzLmNyZWF0ZUNvbnNlbnRUeG4oITEsIkdQQyB2YWx1ZSBjaGFuZ2VkIiwhMSwhMCksRC5ncGNDb25zZW50VHhuPSExLFRvLnNldEFsZXJ0Qm94Q2xvc2VkKCEwKSksRC5kbnRDb25zZW50VHhuJiYoTy5Jc0NvbnNlbnRMb2dnaW5nRW5hYmxlZCYmeHMuY3JlYXRlQ29uc2VudFR4bighMSwiRE5UIHZhbHVlIGNoYW5nZWQiLCExLCEwLCExLCJETlQiKSxELmRudENvbnNlbnRUeG49ITEpKTooRC5ncm91cHNDb25zZW50PVtdLGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD15LmNoZWNrSXNBY3RpdmVCeURlZmF1bHQoZSkmJmUuSGFzQ29uc2VudE9wdE91dDtlLlN0YXR1cz09PWYuSU5BQ1RJVkVfTEFORElOR19QQUdFJiYhdy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKSYmT28uaXNMYW5kaW5nUGFnZSgpJiYodD0hMSksRC5ncm91cHNDb25zZW50LnB1c2goZS5DdXN0b21Hcm91cElkKyI6IisodD8iMSI6IjAiKSksXy5ncGNFbmFibGVkJiZlLklzR3BjRW5hYmxlZCYmZS5TdGF0dXM9PT1mLklOQUNUSVZFJiYoZS5pc0RlbmllZEJ5R1BDPSEwKSxfLkROVEVuYWJsZWQmJmUuSXNEbnRFbmFibGVkJiZlLlN0YXR1cz09PWYuQUNUSVZFJiYoZS5pc0RlbmllZEJ5RE5UPSEwKX0pLE8uSXNDb25zZW50TG9nZ2luZ0VuYWJsZWQmJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLHRoaXMuY29uc2VudERlZmF1bENhbGwpKSxPLklzQ29uc2VudExvZ2dpbmdFbmFibGVkJiZfLm1ha2VHUENPckROVENvbnNlbnRDYWxsJiYhdy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKSYmKF8ubWFrZUdQQ09yRE5UQ29uc2VudENhbGw9ITEsXy5ncGNFbmFibGVkJiZlLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1lLmlzRGVuaWVkQnlHUEN9KT94cy5jcmVhdGVDb25zZW50VHhuKCExLCJHUEMgdmFsdWUgY2hhbmdlZCIsITEsITAsITEsIkdQQyIpOl8uRE5URW5hYmxlZCYmZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZS5pc0RlbmllZEJ5RE5UfSkmJnhzLmNyZWF0ZUNvbnNlbnRUeG4oITEsIkROVCB2YWx1ZSBjaGFuZ2VkIiwhMSwhMCwhMSwiRE5UIikpfSxqcy5wcm90b3R5cGUuaW5pdGlhbGl6ZUhvc3REYXRhPWZ1bmN0aW9uKGUpe3ZhciB0LHI7TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsImhvc3RzIik/KHdvLnN5bmNocm9uaXNlQ29va2llSG9zdERhdGEoKSx0PUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULCJob3N0cyIpLEQuaG9zdHNDb25zZW50PXYuc3RyVG9BcnIodCksZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3kuaXNBbHdheXNBY3RpdmVHcm91cChlKSYmZS5Ib3N0cy5sZW5ndGgmJmUuSG9zdHMuZm9yRWFjaChmdW5jdGlvbihlKXtELm9uZVRydXN0QWx3YXlzQWN0aXZlSG9zdHMucHVzaChlLkhvc3RJZCl9KX0pKTooRC5ob3N0c0NvbnNlbnQ9W10scj17fSxlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIG89eS5pc0Fsd2F5c0FjdGl2ZUdyb3VwKGUpLG49RC5zeW5jUmVxdWlyZWQ/d28uZ3JvdXBIYXNDb25zZW50KGUpOnkuY2hlY2tJc0FjdGl2ZUJ5RGVmYXVsdChlKTtlLkhvc3RzLmxlbmd0aCYmZS5Ib3N0cy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0O3JbZS5Ib3N0SWRdP3dvLnVwZGF0ZUhvc3RTdGF0dXMoZSxuKToocltlLkhvc3RJZF09ITAsbyYmRC5vbmVUcnVzdEFsd2F5c0FjdGl2ZUhvc3RzLnB1c2goZS5Ib3N0SWQpLHQ9d28uaXNIb3N0UGFydE9mQWx3YXlzQWN0aXZlR3JvdXAoZS5Ib3N0SWQpLEQuaG9zdHNDb25zZW50LnB1c2goZS5Ib3N0SWQrKHR8fG4/IjoxIjoiOjAiKSkpfSl9KSl9LGpzLnByb3RvdHlwZS5jb25zZW50RGVmYXVsQ2FsbD1mdW5jdGlvbigpe3ZhciBlPXBhcnNlSW50KEwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuSU5URVJBQ1RJT05fQ09VTlQpLDEwKTshaXNOYU4oZSkmJjAhPT1lfHwoVG8udHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50KHhvLCJDbGljayIsIk5vIGludGVyYWN0aW9uIiksTy5Jc0NvbnNlbnRMb2dnaW5nRW5hYmxlZCYmeHMuY3JlYXRlQ29uc2VudFR4bighMCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsRnMuY29uc2VudERlZmF1bENhbGwpKX0sanMucHJvdG90eXBlLmZldGNoQXNzZXRzPWZ1bmN0aW9uKHMpe3JldHVybiB2b2lkIDA9PT1zJiYocz1udWxsKSxQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0LG8sbixyLGk7cmV0dXJuIEEodGhpcyxmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0PWIubW9kdWxlSW5pdGlhbGl6ZXIsaT13LmlzQWxlcnRCb3hDbG9zZWRBbmRWYWxpZCgpLG89ISFzLGk9RnMuaXNGZXRjaEJhbm5lcih0LklzU3VwcHJlc3NCYW5uZXIsaSksbj1Gcy5jb29raWVTZXR0aW5nQnRuUHJlc2VudCgpLG49Xy5pc0lhYjJvcnYyVGVtcGxhdGU/Ty5QQ1Nob3dQZXJzaXN0ZW50Q29va2llc0hvdmVyQnV0dG9uJiYoIU8uUENlbnRlckR5bmFtaWNSZW5kZXJpbmdFbmFibGV8fChPLlBDZW50ZXJEeW5hbWljUmVuZGVyaW5nRW5hYmxlLCFuKSk6Ty5QQ1Nob3dQZXJzaXN0ZW50Q29va2llc0hvdmVyQnV0dG9uLHI9InRydWUiPT09RC51cmxQYXJhbXMuZ2V0KHN0KSxELmhpZGVCYW5uZXI9cixbNCxQcm9taXNlLmFsbChbIWl8fE8uTm9CYW5uZXJ8fHI/UHJvbWlzZS5yZXNvbHZlKG51bGwpOmp0LmdldEJhbm5lckNvbnRlbnQobyxzKSwhdC5Jc1N1cHByZXNzUEN8fEQuaXNQQ1Zpc2libGU/anQuZ2V0UGNDb250ZW50KCk6UHJvbWlzZS5yZXNvbHZlKG51bGwpLG4/anQuZ2V0Q1NCdG5Db250ZW50KCk6UHJvbWlzZS5yZXNvbHZlKG51bGwpLGp0LmdldENvbW1vblN0eWxlcygpXSldO2Nhc2UgMTpyZXR1cm4gaT1lLnNlbnQoKSxyPWlbMF0sbz1pWzFdLHQ9aVsyXSxuPWlbM10sRnMuZmV0Y2hDb250ZW50KHIsbyx0LG4pLEZzLnNldENvb2tpZUxpc3RHcm91cERhdGEoKSxbMl19fSl9KX0sanMucHJvdG90eXBlLmZldGNoQ29udGVudD1mdW5jdGlvbihlLHQsbyxuKXt2YXIgcjtlJiYocj1lLmh0bWwsYi5mcC5Db29raWVWMlNTUnx8KHI9YXRvYihlLmh0bWwpKSx0aGlzLmJhbm5lckdyb3VwPXtuYW1lOmUubmFtZSxodG1sOnIsY3NzOmUuY3NzfSksdCYmKHRoaXMucHJlZmVyZW5jZUNlbnRlckdyb3VwPXtuYW1lOnQubmFtZSxodG1sOmF0b2IodC5odG1sKSxjc3M6dC5jc3N9LGIuaXNWMlRlbXBsYXRlPU8uUENUZW1wbGF0ZVVwZ3JhZGUmJi9vdFBjUGFuZWx8b3RQY0NlbnRlcnxvdFBjVGFiLy50ZXN0KHQubmFtZSkpLG8mJih0aGlzLmNzQnRuR3JvdXA9e25hbWU6IkNvb2tpZVNldHRpbmdzQnV0dG9uIixodG1sOmF0b2Ioby5odG1sKSxjc3M6by5jc3N9KSxuJiYodGhpcy5jb21tb25TdHlsZXM9bil9LGpzLnByb3RvdHlwZS5jb29raWVTZXR0aW5nQnRuUHJlc2VudD1mdW5jdGlvbigpe3JldHVybiBtKCIjb3Qtc2RrLWJ0biIpLmxlbmd0aHx8bSgiLm90LXNkay1zaG93LXNldHRpbmdzIikubGVuZ3RofHxtKCIub3B0YW5vbi1zaG93LXNldHRpbmdzIikubGVuZ3RofSxqcy5wcm90b3R5cGUuaXNGZXRjaEJhbm5lcj1mdW5jdGlvbihlLHQpe3JldHVybiFlfHxPLlNob3dBbGVydE5vdGljZSYmIXQmJmUmJiFtKCIjb25ldHJ1c3QtYmFubmVyLXNkayIpLmxlbmd0aH0sanMucHJvdG90eXBlLnNldENvb2tpZUxpc3RHcm91cERhdGE9ZnVuY3Rpb24oKXt2YXIgZTtiLmZwLkNvb2tpZVYyVHJhY2tpbmdUZWNobm9sb2dpZXN8fChlPShuZXcgTXMpLmFzc2V0cygpLEZzLmNvb2tpZUxpc3RHcm91cD17bmFtZTplLm5hbWUsaHRtbDplLmh0bWwsY3NzOk8udXNlUlRMP2UuY3NzUlRMOmUuY3NzfSl9LGpzLnByb3RvdHlwZS5pbml0aWFsaXplSWFiUHVycG9zZUNvbnNlbnRPblJlbG9hZD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7Xy5jb25zZW50YWJsZUlhYkdycHMuZm9yRWFjaChmdW5jdGlvbihlKXt0LnNldElBQkNvbnNlbnQoZSwhMSksZS5Jc0xlZ0ludFRvZ2dsZT0hMCx0LnNldElBQkNvbnNlbnQoZSwhMSl9KX0sanMucHJvdG90eXBlLmluaXRpYWxpemVJQUJEYXRhPWZ1bmN0aW9uKG8sbixyKXt2YXIgaT10aGlzLGU9KHZvaWQgMD09PW8mJihvPSExKSx2b2lkIDA9PT1uJiYobj0hMSksdm9pZCAwPT09ciYmKHI9ITEpLEQub25lVHJ1c3RJQUJDb25zZW50KSx0PShlLnB1cnBvc2U9W10sZS52ZW5kb3JzPVtdLGUubGVnSW50VmVuZG9ycz1bXSxlLnNwZWNpYWxGZWF0dXJlcz1bXSxlLmxlZ2ltYXRlSW50ZXJlc3Q9W10sRC5hZGR0bFZlbmRvcnMpLHM9Ty5WZW5kb3JDb25zZW50TW9kZWw9PT1Vczt0LnZlbmRvckNvbnNlbnQ9W10sIWUuSUFCQ29va2llVmFsdWV8fG98fG58fHcucmVjb25zZW50UmVxdWlyZWQoKT8oXy5jb25zZW50YWJsZUlhYkdycHMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdDtuJiYhcj9pLnNldElBQkNvbnNlbnQoZSx5LmlzQWx3YXlzQWN0aXZlR3JvdXAoZSkpOnI/ZS5IYXNDb25zZW50T3B0T3V0JiZpLnNldElBQkNvbnNlbnQoZSwhMSk6KHQ9byYmZS5IYXNDb25zZW50T3B0T3V0LGkuc2V0SUFCQ29uc2VudChlLHQpLGUuVHlwZT09PUUuR3JvdXBUeXBlcy5QdXImJihlLklzTGVnSW50VG9nZ2xlPSEwLGkuc2V0SUFCQ29uc2VudChlLGUuSGFzTGVnSW50T3B0T3V0KSkpfSksTy5Jc0lhYkVuYWJsZWQmJnImJihELm9uZVRydXN0SUFCQ29uc2VudC5sZWdpbWF0ZUludGVyZXN0PUQudmVuZG9ycy5zZWxlY3RlZExlZ0ludC5zbGljZSgpKSx0PW98fCFuJiZzLHImJnRoaXMuaWFiLnNhdmVWZW5kb3JTdGF0dXMociksdy5zZXRJQUJWZW5kb3IodCxyLG4pLCF3LnJlY29uc2VudFJlcXVpcmVkKCl8fG98fG58fHcucmVzZXRUQ01vZGVsKCkpOih0aGlzLmluaXRpYWxpemVJYWJQdXJwb3NlQ29uc2VudE9uUmVsb2FkKCksU28ucG9wdWxhdGVHb29nbGVDb25zZW50KCksU28ucG9wdWxhdGVWZW5kb3JBbmRQdXJwb3NlRnJvbUNvb2tpZURhdGEoKSl9LGpzLnByb3RvdHlwZS5jYW5Tb2Z0T3B0SW5JbnNlcnRGb3JHcm91cD1mdW5jdGlvbihlKXt2YXIgZT15LmdldEdyb3VwQnlJZChlKTtpZihlKXJldHVybiBlPWUmJiFlLlBhcmVudD9lOnkuZ2V0UGFyZW50R3JvdXAoZS5QYXJlbnQpLCJpbmFjdGl2ZSBsYW5kaW5ncGFnZSIhPT15LmdldEdycFN0YXR1cyhlKS50b0xvd2VyQ2FzZSgpfHwhT28uaXNMYW5kaW5nUGFnZSgpfSxqcy5wcm90b3R5cGUuc2V0SUFCQ29uc2VudD1mdW5jdGlvbihlLHQpe2UuVHlwZT09PUUuR3JvdXBUeXBlcy5TcGxfRnQ/dGhpcy5zZXRJYWJTcGVjaUZlYXR1cmVDb25zZW50KGUsdCk6ZS5Jc0xlZ0ludFRvZ2dsZT8odGhpcy5zZXRJYWJMZWdJbnRDb25zZW50KGUsdCksZS5Jc0xlZ0ludFRvZ2dsZT0hMSk6dGhpcy5zZXRJYWJQdXJwb3NlQ29uc2VudChlLHQpfSxqcy5wcm90b3R5cGUuc2V0SWFiUHVycG9zZUNvbnNlbnQ9ZnVuY3Rpb24obyxuKXt2YXIgcj0hMTtELm9uZVRydXN0SUFCQ29uc2VudC5wdXJwb3NlPUQub25lVHJ1c3RJQUJDb25zZW50LnB1cnBvc2UubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3BsaXQoIjoiKVswXTtyZXR1cm4gdD09PW8uSWFiR3JwSWQmJihlPXQrIjoiK24scj0hMCksZX0pLHJ8fEQub25lVHJ1c3RJQUJDb25zZW50LnB1cnBvc2UucHVzaChvLklhYkdycElkKyI6IituKX0sanMucHJvdG90eXBlLnNldElhYkxlZ0ludENvbnNlbnQ9ZnVuY3Rpb24obyxuKXt2YXIgcj0hMTtELm9uZVRydXN0SUFCQ29uc2VudC5sZWdpbWF0ZUludGVyZXN0PUQub25lVHJ1c3RJQUJDb25zZW50LmxlZ2ltYXRlSW50ZXJlc3QubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3BsaXQoIjoiKVswXTtyZXR1cm4gdD09PW8uSWFiR3JwSWQmJihlPXQrIjoiK24scj0hMCksZX0pLHJ8fEQub25lVHJ1c3RJQUJDb25zZW50LmxlZ2ltYXRlSW50ZXJlc3QucHVzaChvLklhYkdycElkKyI6IituKX0sanMucHJvdG90eXBlLnNldElhYlNwZWNpRmVhdHVyZUNvbnNlbnQ9ZnVuY3Rpb24obyxuKXt2YXIgcj0hMTtELm9uZVRydXN0SUFCQ29uc2VudC5zcGVjaWFsRmVhdHVyZXM9RC5vbmVUcnVzdElBQkNvbnNlbnQuc3BlY2lhbEZlYXR1cmVzLm1hcChmdW5jdGlvbihlKXt2YXIgdD1lLnNwbGl0KCI6IilbMF07cmV0dXJuIHQ9PT1vLklhYkdycElkJiYoZT10KyI6IituLHI9ITApLGV9KSxyfHxELm9uZVRydXN0SUFCQ29uc2VudC5zcGVjaWFsRmVhdHVyZXMucHVzaChvLklhYkdycElkKyI6IituKX0sanMpO2Z1bmN0aW9uIGpzKCl7dGhpcy5pYWI9Z31pLnByb3RvdHlwZS5nZXRTZWFyY2hRdWVyeT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLGU9ZS50cmltKCkuc3BsaXQoL1xzKy9nKTtyZXR1cm4gbmV3IFJlZ0V4cChlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5lc2NhcGVSZWdFeHAoZSl9KS5qb2luKCJ8IikrIiguKyk/IiwiZ2kiKX0saS5wcm90b3R5cGUuZXNjYXBlUmVnRXhwPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1stL1xcXiQqKz8uKCl8W1xde31dL2csIlxcJCYiKX0saS5wcm90b3R5cGUuc2V0R2xvYmFsRmlsdGVyZWRMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiBELmN1cnJlbnRHbG9iYWxGaWx0ZXJlZExpc3Q9ZX0saS5wcm90b3R5cGUudmVuZG9ySGFzUHVycG9zZT1mdW5jdGlvbihlLHQpe3ZhciBvPSExLG49cGFyc2VJbnQoXy5pYWJHcnBJZE1hcFt0XSk7cmV0dXJuLTE8dC5pbmRleE9mKEUuSWRQYXR0ZXJucy5GdCk/KGUuZmVhdHVyZXN8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuZmVhdHVyZUlkPT09biYmKG89ITApfSk6LTE8dC5pbmRleE9mKEUuSWRQYXR0ZXJucy5TcGxfRnQpP2Uuc3BlY2lhbEZlYXR1cmVzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5mZWF0dXJlSWQ9PT1uJiYobz0hMCl9KTotMTx0LmluZGV4T2YoRS5JZFBhdHRlcm5zLlNwbF9QdXIpPyhlLnNwZWNpYWxQdXJwb3Nlc3x8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5wdXJwb3NlSWQ9PT1uJiYobz0hMCl9KTooZS5wdXJwb3Nlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UucHVycG9zZUlkPT09biYmKG89ITApfSksZS5sZWdJbnRQdXJwb3Nlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UucHVycG9zZUlkPT09biYmKG89ITApfSkpLG99LGkucHJvdG90eXBlLmZpbHRlckxpc3Q9ZnVuY3Rpb24odCxlLG8pe3ZhciBuLHIsaT1vJiZvLmxlbmd0aDtyZXR1cm4iIiE9PXR8fGk/KGkmJihpPW0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfRmx0cl9PcHRpb25zKyIgaW5wdXQiKS5lbC5sZW5ndGgscj0hKG49W10pLGkhPT1vLmxlbmd0aD9lLmZvckVhY2goZnVuY3Rpb24odCl7cj0hMCx0LnZlbmRvck5hbWUmJm8uZm9yRWFjaChmdW5jdGlvbihlKXtnLnZlbmRvckhhc1B1cnBvc2UodCxlKSYmbi5wdXNoKHQpfSl9KTpuPWUsciYmKG49bi5maWx0ZXIoZnVuY3Rpb24oZSx0LG8pe3JldHVybiBvLmluZGV4T2YoZSk9PT10fSkpLHRoaXMuc2V0R2xvYmFsRmlsdGVyZWRMaXN0KG4pKSwiIj09PXQ/RC5jdXJyZW50R2xvYmFsRmlsdGVyZWRMaXN0OkQuY3VycmVudEdsb2JhbEZpbHRlcmVkTGlzdC5maWx0ZXIoZnVuY3Rpb24oZSl7aWYoZS52ZW5kb3JOYW1lKXJldHVybiBlLnZlbmRvck5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0LnRvTG93ZXJDYXNlKCkpfSkpOnRoaXMuc2V0R2xvYmFsRmlsdGVyZWRMaXN0KGUpfSxpLnByb3RvdHlwZS5sb2FkVmVuZG9yTGlzdD1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PWUmJihlPSIiKTt2YXIgbz1ELnZlbmRvcnMsbz0oRC5jdXJyZW50R2xvYmFsRmlsdGVyZWRMaXN0PW8ubGlzdCxlPyhvLnNlYXJjaFBhcmFtPWUsRC5maWx0ZXJCeUlBQkNhdGVnb3JpZXM9W10sTm4udXBkYXRlRmlsdGVyU2VsZWN0aW9uKCExKSk6by5zZWFyY2hQYXJhbSE9PWU/by5zZWFyY2hQYXJhbT0iIjp0PUQuZmlsdGVyQnlJQUJDYXRlZ29yaWVzLHRoaXMuZmlsdGVyTGlzdChvLnNlYXJjaFBhcmFtLG8ubGlzdCx0KSk7bSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGVudCkuZWxbMF0uc2Nyb2xsVG9wPTAsRC5hZGR0bFZlbmRvcnNMaXN0JiYwPE9iamVjdC5rZXlzKEQuYWRkdGxWZW5kb3JzTGlzdCkubGVuZ3RoJiYodGhpcy5oYXNHb29nbGVWZW5kb3JzPSEwKSx0aGlzLmluaXRWZW5kb3JzRGF0YShlLG8pfSxpLnByb3RvdHlwZS5zZWFyY2hWZW5kb3JzPWZ1bmN0aW9uKGUsdCxvLG4pe2lmKG4pe3ZhciByLGkscz10aGlzLmdldFNlYXJjaFF1ZXJ5KG4pLGE9MDtmb3IociBpbiB0KXImJihpPW89PT1mZS5Hb29nbGVWZW5kb3I/cjp0W3JdLlZlbmRvckN1c3RvbUlkLGk9bSgiIitlLnZlbmRvckFjY0J0bitpKS5lbFswXS5wYXJlbnRFbGVtZW50LHMubGFzdEluZGV4PTAscy50ZXN0KHRbcl1bZS5uYW1lXSk/KGQoaSx0aGlzLl9kaXNwbGF5TnVsbCwhMCksYSsrKTpkKGksImRpc3BsYXk6IG5vbmU7IiwhMCkpOzA9PT1hPyhtKGUuYWNjSWQpLmhpZGUoKSxvPT09ZmUuR29vZ2xlVmVuZG9yP3RoaXMuaGFzR29vZ2xlVmVuZG9ycz0hMTp0aGlzLmhhc0dlblZlbmRvcnM9ITEpOihvPT09ZmUuR29vZ2xlVmVuZG9yP3RoaXMuaGFzR29vZ2xlVmVuZG9ycz0hMDp0aGlzLmhhc0dlblZlbmRvcnM9ITAsbShlLmFjY0lkKS5zaG93KCkpLHRoaXMuc2hvd0VtcHR5UmVzdWx0cyghdGhpcy5oYXNHb29nbGVWZW5kb3JzJiYhdGhpcy5oYXNJYWJWZW5kb3JzJiYhdGhpcy5oYXNHZW5WZW5kb3JzLG4pfWVsc2UgZm9yKHZhciBsPW0oIiAiK2UudmVuTGlzdElkKycgbGlbc3R5bGVePSJkaXNwbGF5OiBub25lIl0nKS5lbCxjPTA7YzxsLmxlbmd0aDtjKyspZChsW2NdLHRoaXMuX2Rpc3BsYXlOdWxsLCEwKTtuPW0oIiNvbmV0cnVzdC1wYy1zZGsgIitlLnNlbGVjdEFsbEV2bnRIbmRscikuZWxbMF07ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlLnZlbkxpc3RJZCsnIGxpOm5vdChbc3R5bGVePSJkaXNwbGF5OiBub25lIl0pICcrZS5jdGdsKyIgPiBpbnB1dFtjaGVja2VkXSIpP3Yuc2V0Q2hlY2tlZEF0dHJpYnV0ZSgiIixuLCEwKTp2LnNldENoZWNrZWRBdHRyaWJ1dGUoIiIsbiwhMSksZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlLnZlbkxpc3RJZCsnIGxpOm5vdChbc3R5bGVePSJkaXNwbGF5OiBub25lIl0pICcrZS5jdGdsKyIgPiBpbnB1dDpub3QoW2NoZWNrZWRdKSIpP24ucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuTElORV9USFJPVUdIX0NMQVNTKTpuLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkxJTkVfVEhST1VHSF9DTEFTUyl9LGkucHJvdG90eXBlLmluaXRHb29nbGVWZW5kb3JzPWZ1bmN0aW9uKCl7dGhpcy5wb3B1bGF0ZUFkZHRsVmVuZG9ycyhELmFkZHRsVmVuZG9yc0xpc3QpLHRoaXMudmVuQWR0bFNlbEFsbFRnbEV2ZW50KCl9LGkucHJvdG90eXBlLmluaXRHZW5WZW5kb3JzPWZ1bmN0aW9uKCl7dGhpcy5wb3B1bGF0ZUdlbmVyYWxWZW5kb3JzKCksTy5HZW5WZW5PcHRPdXQmJk8uR2VuZXJhbFZlbmRvcnMmJk8uR2VuZXJhbFZlbmRvcnMubGVuZ3RoJiZ0aGlzLmdlblZlblNlbGVjdEFsbFRnbEV2ZW50KCl9LGkucHJvdG90eXBlLnJlc2V0QWRkdGxWZW5kb3JzPWZ1bmN0aW9uKCl7Zy5zZWFyY2hWZW5kb3JzKGcuZ29vZ2xlU2VhcmNoU2VsZWN0b3JzLEQuYWRkdGxWZW5kb3JzTGlzdCxmZS5Hb29nbGVWZW5kb3IpLHRoaXMuc2hvd0NvbnNlbnRIZWFkZXIoKX0saS5wcm90b3R5cGUudmVuQWR0bFNlbEFsbFRnbEV2ZW50PWZ1bmN0aW9uKCl7Zy5zZWxlY3RBbGxFdmVudEhhbmRsZXIoe3ZlbmRvcnNMaXN0Oicjb3QtYWRkdGwtdmVubHN0IGxpOm5vdChbc3R5bGVePSJkaXNwbGF5OiBub25lIl0pIC5vdC12ZW4tYWR0bGN0Z2wgaW5wdXQnLHNlbEFsbENudHI6IiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1hZHRsdmVuY250ciIsc2VsQWxsQ2hrYm94OiIjb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtYWR0bHZlbi1oYW5kbGVyIn0pfSxpLnByb3RvdHlwZS5nZW5WZW5TZWxlY3RBbGxUZ2xFdmVudD1mdW5jdGlvbigpe3ZhciBlPXt2ZW5kb3JzTGlzdDpULlBfR3Zlbl9MaXN0KycgbGk6bm90KFtzdHlsZV49ImRpc3BsYXk6IG5vbmUiXSkgLm90LXZlbi1ndmN0Z2wgaW5wdXQnLHNlbEFsbENudHI6IiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1nbnZlbmNudHIiLHNlbEFsbENoa2JveDoiI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWdudmVuLWhhbmRsZXIifTtnLnNlbGVjdEFsbEV2ZW50SGFuZGxlcihlKX0saS5wcm90b3R5cGUuaGFuZGxlU2VsZWN0QWxsQ2hib3hTZWxlY3Rpb249ZnVuY3Rpb24oZSx0LG8pe2Zvcih2YXIgbj0hMCxyPSEwLGk9MDtpPGUubGVuZ3RoJiYoZVtpXS5jaGVja2VkP3I9ITE6bj0hMSxufHxyKTtpKyspO258fHI/by5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuTElORV9USFJPVUdIX0NMQVNTKTooby5jbGFzc0xpc3QuYWRkKHRoaXMuTElORV9USFJPVUdIX0NMQVNTKSx2LnNldEFyaWFDaGVja2VkQXR0cmlidXRlKCIiLHQsIm1peGVkIikpLHQuY2hlY2tlZD0hMSxuPyh0LmNoZWNrZWQ9ITAsdi5zZXRBcmlhQ2hlY2tlZEF0dHJpYnV0ZSgiIix0LHQuY2hlY2tlZCkpOnImJnYuc2V0QXJpYUNoZWNrZWRBdHRyaWJ1dGUoIiIsdCx0LmNoZWNrZWQpLHYuc2V0Q2hlY2tlZEF0dHJpYnV0ZSgiIix0LHQuY2hlY2tlZCl9LGkucHJvdG90eXBlLnNlbGVjdEFsbEV2ZW50SGFuZGxlcj1mdW5jdGlvbihlKXt2YXIgdD1tKGUudmVuZG9yc0xpc3QpLmVsLG89bShlLnNlbEFsbENudHIpLmVsWzBdLGU9bShlLnNlbEFsbENoa2JveCkuZWxbMF07Zy5oYW5kbGVTZWxlY3RBbGxDaGJveFNlbGVjdGlvbih0LGUsbyl9LGkucHJvdG90eXBlLnZlbmRvckxlZ0ludFRvZ2dsZUV2ZW50PWZ1bmN0aW9uKCl7dmFyIGU9bShULlBfVmVuZG9yX0NvbnRhaW5lcisnIGxpOm5vdChbc3R5bGVePSJkaXNwbGF5OiBub25lIl0pIC4nK1QuUF9WZW5fTHRnbCsiIGlucHV0IikuZWwsdD1tKCIjb25ldHJ1c3QtcGMtc2RrICMiK1QuUF9TZWxfQWxsX1ZlbmRvcl9MZWdfRWwpLmVsWzBdLG89bSgiI29uZXRydXN0LXBjLXNkayAjc2VsZWN0LWFsbC12ZW5kb3ItbGVnLWhhbmRsZXIiKS5lbFswXTtnLmhhbmRsZVNlbGVjdEFsbENoYm94U2VsZWN0aW9uKGUsbyx0KX0saS5wcm90b3R5cGUudmVuZG9yc0xpc3RFdmVudD1mdW5jdGlvbigpe3ZhciBlPW0oVC5QX1ZlbmRvcl9Db250YWluZXIrJyBsaTpub3QoW3N0eWxlXj0iZGlzcGxheTogbm9uZSJdKSAuJytULlBfVmVuX0N0Z2wrIiBpbnB1dCIpLmVsLHQ9bSgiI29uZXRydXN0LXBjLXNkayAjIitULlBfU2VsX0FsbF9WZW5kb3JfQ29uc2VudF9FbCkuZWxbMF0sbz1tKCIjb25ldHJ1c3QtcGMtc2RrICNzZWxlY3QtYWxsLXZlbmRvci1ncm91cHMtaGFuZGxlciIpLmVsWzBdO2cuaGFuZGxlU2VsZWN0QWxsQ2hib3hTZWxlY3Rpb24oZSxvLHQpfSxpLnByb3RvdHlwZS5zaG93RW1wdHlSZXN1bHRzPWZ1bmN0aW9uKGUsdCxvKXt2b2lkIDA9PT1vJiYobz0hMSk7dmFyIG49bSgiI29uZXRydXN0LXBjLXNkayAjbm8tcmVzdWx0cyIpO2U/dGhpcy5zZXROb1Jlc3VsdHNDb250ZW50KHQsbyk6KG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX0NvbnRlbnQpLnJlbW92ZUNsYXNzKCJuby1yZXN1bHRzIiksbi5sZW5ndGgmJm4ucmVtb3ZlKCkpfSxpLnByb3RvdHlwZS5wbGF5U2VhcmNoU3RhdHVzPWZ1bmN0aW9uKGUpe3ZhciB0PWU/ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChULlBfSG9zdF9DbnRyKyIgPiBsaSIpOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoVC5QX1ZlbmRvcl9Db250YWluZXIrJyA+IGxpOm5vdChbc3R5bGUkPSJub25lOyJdKSwnK1QuUF9HdmVuX0xpc3QrJyA+IGxpOm5vdChbc3R5bGUkPSJub25lOyJdKScpLG89dC5sZW5ndGgsbj1tKCcjb25ldHJ1c3QtcGMtc2RrIFtyb2xlPSJzdGF0dXMiXScpO28/bi50ZXh0KHQubGVuZ3RoKyIgIisoZT8iaG9zdCI6InZlbmRvciIpKygxPG8/InMiOiIiKSsiIHJldHVybmVkLiIpOm4uZWxbMF0udGV4dENvbnRlbnQ9IiJ9LGkucHJvdG90eXBlLnNldE5vUmVzdWx0c0NvbnRlbnQ9ZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT10JiYodD0hMSk7dmFyIG8sbixyLGk9bSgiI29uZXRydXN0LXBjLXNkayAjbm8tcmVzdWx0cyIpLmVsWzBdO2lmKCFpKXJldHVybiB0PWcuZ2V0Tm9SZXN1bHRzRm91bmQodCksbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKSx0PWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQpLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLG8uaWQ9Im5vLXJlc3VsdHMiLG8uc2V0QXR0cmlidXRlKCJhcmlhLWxpdmUiLCJhc3NlcnRpdmUiKSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1hdG9taWMiLCJ0cnVlIiksci5pZD0idXNlci10ZXh0IixyLmlubmVyVGV4dD1lLG4uYXBwZW5kQ2hpbGQociksbi5hcHBlbmRDaGlsZCh0KSxvLmFwcGVuZENoaWxkKG4pLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX0NvbnRlbnQpLmFkZENsYXNzKCJuby1yZXN1bHRzIiksbSgiI3ZlbmRvci1zZWFyY2gtaGFuZGxlciIpLmVsWzBdLnNldEF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIsby5pZCksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGVudCkuYXBwZW5kKG8pO2kucXVlcnlTZWxlY3Rvcigic3BhbiIpLmlubmVyVGV4dD1lfSxpLnByb3RvdHlwZS5zZWFyY2hIb3N0TGlzdD1mdW5jdGlvbihlKXt2YXIgdD17fSxvPVtdO0Quc2hvd1RyYWNraW5nVGVjaD8odD1ELmN1cnJlbnRUcmFja2luZ1RlY2gsbz0odD1lP2cuZ2V0RmlsdGVyZWRBZGRpdGlvbmFUZWNodERhdGEoZSx0KTp0KS5Db29raWVzKToobz1ELmN1cnJlbnRHbG9iYWxGaWx0ZXJlZExpc3QsZSYmKG89dGhpcy5zZWFyY2hMaXN0KGUsbykpKSx0aGlzLmluaXRIb3N0RGF0YSh7c2VhcmNoU3RyaW5nOmUsY29va2llc0xpc3Q6byxhZGRUZWNoRGF0YTp0fSl9LGkucHJvdG90eXBlLnNlYXJjaExpc3Q9ZnVuY3Rpb24oZSx0KXt2YXIgbz10aGlzLmdldFNlYXJjaFF1ZXJ5KGUpO3JldHVybiB0LmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gby5sYXN0SW5kZXg9MCxvLnRlc3QoZS5EaXNwbGF5TmFtZXx8ZS5Ib3N0TmFtZSl9KX0saS5wcm90b3R5cGUuc2V0TGlzdFNlYXJjaFZhbHVlcz1mdW5jdGlvbihlKXt2YXIgdD1PLlBDZW50ZXJWZW5kb3JTZWFyY2hBcmlhTGFiZWwsbz1PLlBDZW50ZXJWZW5kb3JMaXN0U2VhcmNoLG49Ty5QQ2VudGVyVmVuZG9yc0xpc3RUZXh0LHI9Ty5QQ2VudGVyVmVuZG9yTGlzdEZpbHRlckFyaWE7ZT09PWJlLmNvb2tpZXMmJih0PU8uUENlbnRlckNvb2tpZVNlYXJjaEFyaWFMYWJlbCxvPU8uUENlbnRlckNvb2tpZUxpc3RTZWFyY2gsbj1PLlBDZW50ZXJDb29raWVzTGlzdFRleHQscj1PLlBDZW50ZXJDb29raWVMaXN0RmlsdGVyQXJpYSksRC5jb29raWVMaXN0VHlwZSE9PWdlLkhvc3RBbmRHZW5WZW4mJkQuY29va2llTGlzdFR5cGUhPT1nZS5Ib3N0fHwhRC5zaG93VHJhY2tpbmdUZWNofHwobj1PLkFkZGl0aW9uYWxUZWNobm9sb2dpZXNDb25maWcuUENUcmFja2luZ1RlY2hUaXRsZSksZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfVGl0bGUrJywgI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LXRpdGxlIHBbYXJpYS1sZXZlbD0iMyJdJykuaW5uZXJUZXh0PW47bSgiI2ZpbHRlci1idG4taGFuZGxlciIpLmVsWzBdLnNldEF0dHJpYnV0ZSh0aGlzLkFSSUFfTEFCRUxfQVRUUklCVVRFLHIrIiAiK24pO2U9bSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfU2VhcmNoX0lucHV0KTtlLmVsWzBdLnBsYWNlaG9sZGVyPW8sZS5hdHRyKCJhcmlhLWxhYmVsIix0KX0saS5wcm90b3R5cGUuaW5pdEhvc3REYXRhPWZ1bmN0aW9uKGUpe3ZhciB0PWUuc2VhcmNoU3RyaW5nLG89ZS5jb29raWVzTGlzdCxlPWUuYWRkVGVjaERhdGEsbj0oRC5vcHRhbm9uSG9zdExpc3Q9bywhMSkscj0odGhpcy5zZXRCYWNrQnRuVHh0KCksbShULlBfVmVuZG9yX0xpc3QrIiAjc2VsZWN0LWFsbC10ZXh0LWNvbnRhaW5lciBwIikuaHRtbChPLlBDZW50ZXJBbGxvd0FsbENvbnNlbnRUZXh0KSxnLmdldEhvc3RQYXJlbnRDb250YWluZXIoKSksaT1vJiYwPT09by5sZW5ndGgscz0oRC5zaG93VHJhY2tpbmdUZWNoJiYoaT0wPT09ZS5Mb2NhbFN0b3JhZ2VzLmxlbmd0aCYmMD09PWUuU2Vzc2lvblN0b3JhZ2VzLmxlbmd0aCYmKDA9PT1lLkNvb2tpZXMubGVuZ3RofHwwPT09ZS5Db29raWVzWzBdLkNvb2tpZXMubGVuZ3RoKSksRC5jb29raWVMaXN0VHlwZT09PWdlLkhvc3QpLGk9KHRoaXMuc2hvd0VtcHR5UmVzdWx0cyhpLHQscyksdGhpcy5zZXRIb3N0TGlzdFNlYXJjaFZhbHVlcygpLG0oIiNmaWx0ZXItYnRuLWhhbmRsZXIiKS5lbFswXSksdD1oLmdldFZlbmRvclBhZ2VIZWFkZXJUZXh0KCk7aS5zZXRBdHRyaWJ1dGUodGhpcy5BUklBX0xBQkVMX0FUVFJJQlVURSxPLlBDZW50ZXJDb29raWVMaXN0RmlsdGVyQXJpYSsiICIrdCk7bSgiI2ZpbHRlci1idG4taGFuZGxlciB0aXRsZSIpLmh0bWwoTy5QQ2VudGVyQ29va2llTGlzdEZpbHRlckFyaWEpLGIuaXNWMlRlbXBsYXRlJiZtKCIjb3Qtc2VsLWJsayBzcGFuOmZpcnN0LWNoaWxkIikuaHRtbChPLlBDZW50ZXJBbGxvd0FsbENvbnNlbnRUZXh0fHxPLkNvbnNlbnRUZXh0KTtmb3IodmFyIGE9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGw9MDtsPG8ubGVuZ3RoO2wrKyl7dmFyIGM9RC5ob3N0cy5ob3N0VGVtcGxhdGUuY2xvbmVOb2RlKCEwKSxkPW9bbF0uRGlzcGxheU5hbWV8fG9bbF0uSG9zdE5hbWU7dGhpcy5jcmVhdGVIb3N0QWNjb3JkaW9ucyhkLGMsbCksbj10aGlzLmNyZWF0ZUhvc3RDaGVja2JveGVzKGQsbyxsLGMsbiksdGhpcy5wb3B1bGF0ZUhvc3REYXRhSW50b0RPTUVsZW1lbnRzKGMsbyxkLGwsYSl9Zy5zZXRDb29raWVzSW5zaWRlSG9zdENvbnRhaW5lcihyLGEsZSk7cz0xPT09by5sZW5ndGgmJm9bMF0uSG9zdE5hbWU9PT1PLlBDRmlyc3RQYXJ0eUNvb2tpZUxpc3RUZXh0O2lmKGguaXNPcHRPdXRFbmFibGVkKCkmJiFzKXtmb3IodmFyIGk9IW4sdT0odi5zZXREaXNhYmxlZEF0dHJpYnV0ZSgiI29uZXRydXN0LXBjLXNkayAjc2VsZWN0LWFsbC1ob3N0cy1ncm91cHMtaGFuZGxlciIsbnVsbCwhMSksdGhpcy5hcHBseUFyaWFEaXNhYmxlZFRvU2VsZWN0QWxsQ2hlY2tib3goaSksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9Ib3N0X0NudHIrIiAub3QtaG9zdC10Z2wgaW5wdXQiKS5lbCkscD0wO3A8dS5sZW5ndGg7cCsrKXVbcF0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaG9zdHNMaXN0RXZlbnQpO20oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfU2VsZWN0X0NudHIpLnJlbW92ZUNsYXNzKCJvdC1oaWRlIiksdGhpcy5ob3N0c0xpc3RFdmVudCgpfWVsc2UgbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9TZWxlY3RfQ250cikuYWRkQ2xhc3MoIm90LWhpZGUiKX0saS5wcm90b3R5cGUuYXBwbHlBcmlhRGlzYWJsZWRUb1NlbGVjdEFsbENoZWNrYm94PWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUmJihlPSExKTt2YXIgdCxvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1wYy1zZGsgI3NlbGVjdC1hbGwtaG9zdHMtZ3JvdXBzLWhhbmRsZXIiKTtvJiYodD1udWxsPT0odD1vLnBhcmVudEVsZW1lbnQpP3ZvaWQgMDp0LnF1ZXJ5U2VsZWN0b3IoImxhYmVsIiksZT8oby5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLCJ0cnVlIiksdCYmKHQuc3R5bGUub3BhY2l0eT0iMC44IikpOihvLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1kaXNhYmxlZCIpLHQmJih0LnN0eWxlLm9wYWNpdHk9IiIpKSl9LGkucHJvdG90eXBlLnNldENvb2tpZXNJbnNpZGVIb3N0Q29udGFpbmVyPWZ1bmN0aW9uKGUsdCxvKXt2YXIgbixyO0Quc2hvd1RyYWNraW5nVGVjaCYmbz8wPChvPWcuZ2V0QWRkaXRpb25hbFRlY2hub2xvZ2llc0h0bWwobykpLmNoaWxkcmVuLmxlbmd0aCYmKChuPW8ucXVlcnlTZWxlY3RvcigiLiIrdGhpcy5URUNIX0NPT0tJRVNfU0VMRUNUT1IrIiAiK3RoaXMuQUNDX1RYVCkpJiYoKHI9ZS5xdWVyeVNlbGVjdG9yKCJ1bCIrVC5QX0hvc3RfQ250cikpLmFwcGVuZENoaWxkKHQpLG4uYXBwZW5kQ2hpbGQocikpLGUuYXBwZW5kQ2hpbGQobykpOmUuYXBwZW5kQ2hpbGQodCl9LGkucHJvdG90eXBlLmdldEhvc3RQYXJlbnRDb250YWluZXI9ZnVuY3Rpb24oKXt2YXIgZT1udWxsO3JldHVybiBELnNob3dUcmFja2luZ1RlY2g/KGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGVudCsiIC5vdC1zZGstY29sdW1uIiksZy5yZW1vdmVUcmFja2luZ1RlY2hBY2NvcmlvbnMoKSk6KGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGVudCsiIHVsIitULlBfSG9zdF9DbnRyKSkuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudCgiIiksZX0saS5wcm90b3R5cGUucmVtb3ZlVHJhY2tpbmdUZWNoQWNjb3Jpb25zPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfQ29udGVudCsiIC5vdC1zZGstY29sdW1uIiksdD1lLnF1ZXJ5U2VsZWN0b3IoIi4iK3RoaXMuVEVDSF9DT09LSUVTX1NFTEVDVE9SKyIgdWwiK1QuUF9Ib3N0X0NudHIpO2lmKHQ/KHQuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudCgiIiksZS5hcHBlbmRDaGlsZCh0KSk6KHQ9ZS5xdWVyeVNlbGVjdG9yKCJ1bCIrVC5QX0hvc3RfQ250cikpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoIiIpLGUpZm9yKHZhciBvPWUucXVlcnlTZWxlY3RvckFsbCgiLm90LWFkZC10ZWNoIiksbj1vLmxlbmd0aC0xOzA8PW47bi0tKXt2YXIgcj1vLml0ZW0obik7ZS5yZW1vdmVDaGlsZChyKX19LGkucHJvdG90eXBlLnNldEhvc3RMaXN0U2VhcmNoVmFsdWVzPWZ1bmN0aW9uKCl7dmFyIGU9Xy5wY05hbWU7Ty5HZW5lcmFsVmVuZG9yc0VuYWJsZWQmJihiLmlzVjJUZW1wbGF0ZXx8ZSE9PWl0KSYmdGhpcy5zZXRMaXN0U2VhcmNoVmFsdWVzKGJlLnZlbmRvcnMpLE8uR2VuZXJhbFZlbmRvcnNFbmFibGVkfHwhYi5pc1YyVGVtcGxhdGUmJmU9PT1pdHx8dGhpcy5zZXRMaXN0U2VhcmNoVmFsdWVzKGJlLmNvb2tpZXMpfSxpLnByb3RvdHlwZS5jcmVhdGVIb3N0QWNjb3JkaW9ucz1mdW5jdGlvbihlLHQsbyl7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIuIitULlBfSG9zdF9CeCksZT0obiYmdi5zZXRIdG1sQXR0cmlidXRlcyhuLHtpZDoiaG9zdC0iK28sbmFtZToiaG9zdC0iK28sImFyaWEtbGFiZWwiOmUrIiAiK08uUENWaWV3Q29va2llc1RleHQsImFyaWEtY29udHJvbHMiOiJvdC1ob3N0LWFjYy10eHQtIitvfSksdC5xdWVyeVNlbGVjdG9yKFQuUF9BY2NfVHh0KSk7ZSYmdi5zZXRIdG1sQXR0cmlidXRlcyhlLHtpZDoib3QtaG9zdC1hY2MtdHh0LSIrbyxyb2xlOiJyZWdpb24iLCJhcmlhLWxhYmVsbGVkYnkiOm4uaWR9KX0saS5wcm90b3R5cGUuY3JlYXRlSG9zdENoZWNrYm94ZXM9ZnVuY3Rpb24oZSx0LG8sbixyKXt2YXIgaT1oLmlzT3B0T3V0RW5hYmxlZCgpLHM9Yi5pc1YyVGVtcGxhdGUsYT1fLnBjTmFtZTtyZXR1cm4haXx8dFtvXS5pc0ZpcnN0UGFydHk/KGk9bi5xdWVyeVNlbGVjdG9yKCIub3QtaG9zdC10Z2wiKSkmJmkucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChpKTooaT12b2lkIDAscz8oKGk9Ti5jaGtib3hFbC5jbG9uZU5vZGUoITApKS5jbGFzc0xpc3QuYWRkKCJvdC1ob3N0LXRnbCIpLGkucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5jbGFzc0xpc3QuYWRkKCJob3N0LWNoZWNrYm94LWhhbmRsZXIiKSxhPT09aXQ/bi5xdWVyeVNlbGVjdG9yKFQuUF9Ib3N0X0hkcikuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmViZWdpbiIsaSk6bi5xdWVyeVNlbGVjdG9yKFQuUF9UZ2xfQ250cikuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLGkpKTppPW4ucXVlcnlTZWxlY3RvcigiLm90LWhvc3QtdGdsIiksdi5zZXRIdG1sQXR0cmlidXRlcyhpLnF1ZXJ5U2VsZWN0b3IoImlucHV0Iikse2lkOiJvdC1ob3N0LWNoa2JveC0iK28sImFyaWEtbGFiZWwiOmUsaG9zdElkOnRbb10uSG9zdElkLGNrVHlwZTp0W29dLlR5cGV9KSxpLnF1ZXJ5U2VsZWN0b3IoImxhYmVsIikuc2V0QXR0cmlidXRlKCJmb3IiLCJvdC1ob3N0LWNoa2JveC0iK28pLCh0W29dLlR5cGU9PT1DZS5HZW5WZW5kb3I/RC5nZW5WZW5kb3JzQ29uc2VudFt0W29dLkhvc3RJZF06LTEhPT1ELmhvc3RzQ29uc2VudC5pbmRleE9mKHRbb10uSG9zdElkKyI6MSIpKT8odi5zZXRDaGVja2VkQXR0cmlidXRlKG51bGwsaS5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLCEwKSx0W29dLmlzQWN0aXZlP3Yuc2V0RGlzYWJsZWRBdHRyaWJ1dGUobnVsbCxpLnF1ZXJ5U2VsZWN0b3IoImlucHV0IiksITApOnI9cnx8ITApOihyPSEwLHYuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLGkucXVlcnlTZWxlY3RvcigiaW5wdXQiKSwhMSkpLGkucXVlcnlTZWxlY3RvcihULlBfTGFiZWxfVHh0KS5pbm5lclRleHQ9ZSkscn0saS5wcm90b3R5cGUucG9wdWxhdGVIb3N0RGF0YUludG9ET01FbGVtZW50cz1mdW5jdGlvbih0LG8sZSxuLHIpe3ZhciBpLHM9dGhpcyxhPWIuaXNWMlRlbXBsYXRlLGw9Xy5wY05hbWUsbD0oTy5QQ0FjY29yZGlvblN0eWxlPT09YWUuUGx1c01pbnVzP3QucXVlcnlTZWxlY3RvcihULlBfQWNjX0hlYWRlcikuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmJlZ2luIixOLnBsdXNNaW51c0VsLmNsb25lTm9kZSghMCkpOmEmJihpPU4uYXJyb3dFbC5jbG9uZU5vZGUoITApLGw9PT1pdD90LnF1ZXJ5U2VsZWN0b3IoVC5QX0hvc3RfVmlld19Db29raWVzKS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixpKTp0LnF1ZXJ5U2VsZWN0b3IoVC5QX1RnbF9DbnRyKS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsaSkpLE8uQWRkTGlua3NUb0Nvb2tpZXBlZGlhJiYhb1tuXS5pc0ZpcnN0UGFydHkmJihlPSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAgY2xhc3M9ImNvb2tpZS1sYWJlbCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9jb29raWVwZWRpYS5jby51ay9ob3N0Lycrb1tuXS5Ib3N0TmFtZSsnIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJytlKycmbmJzcDs8c3BhbiBjbGFzcz0ib3Qtc2Nybi1yZHIiPicrTy5OZXdXaW5UeHQrIjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAiKSx0LnF1ZXJ5U2VsZWN0b3IoVC5QX0hvc3RfVGl0bGUpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoZSksdC5xdWVyeVNlbGVjdG9yKFQuUF9Ib3N0X0Rlc2MpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQob1tuXS5EZXNjcmlwdGlvbiksb1tuXS5Qcml2YWN5UG9saWN5JiZPLnBjU2hvd0Nvb2tpZUhvc3QmJnQucXVlcnlTZWxlY3RvcihULlBfSG9zdF9EZXNjKS5pbnNlcnRBZGphY2VudEhUTUwoImFmdGVyZW5kIixTLmdldElubmVySHRtbENvbnRlbnQoJzxhIGhyZWY9Iicrb1tuXS5Qcml2YWN5UG9saWN5KyciIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPicrKGE/Ty5QQ0dWZW5Qb2xpY3lUeHQ6Ty5QQ0Nvb2tpZVBvbGljeVRleHQpKycmbmJzcDs8c3BhbiBjbGFzcz0ib3Qtc2Nybi1yZHIiPicrTy5OZXdXaW5UeHQrIjwvc3Bhbj48L2E+IikpLHQucXVlcnlTZWxlY3RvcihULlBfSG9zdF9WaWV3X0Nvb2tpZXMpKTshRC5zaG93R2VuZXJhbFZlbmRvcnN8fG9bbl0uQ29va2llcyYmb1tuXS5Db29raWVzLmxlbmd0aD9PLlBDVmlld0Nvb2tpZXNUZXh0JiYobC5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KE8uUENWaWV3Q29va2llc1RleHQpKToodi5yZW1vdmVDaGlsZChsKSxtKHQpLmFkZENsYXNzKCJvdC1oaWRlLWFjYyIpKSxvW25dLkRlc2NyaXB0aW9uJiZPLnBjU2hvd0Nvb2tpZUhvc3R8fChpPXQucXVlcnlTZWxlY3RvcihULlBfSG9zdF9EZXNjKSkucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChpKSxtKHQucXVlcnlTZWxlY3RvcihULlBfSG9zdF9PcHQpKS5odG1sKCIiKTtyZXR1cm4gaC5hZGRFeHRlcm5hbEljb25Gb3JMaW5rcyhmdW5jdGlvbihlKXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yQWxsKGUpfSksbnVsbCE9KGE9b1tuXS5Db29raWVzKSYmYS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2U9cy5nZXRDb29raWVFbGVtZW50KGUsb1tuXSk7bSh0LnF1ZXJ5U2VsZWN0b3IoVC5QX0hvc3RfT3B0KSkuYXBwZW5kKGUpfSksci5hcHBlbmQodCksZX0saS5wcm90b3R5cGUuaG9zdHNMaXN0RXZlbnQ9ZnVuY3Rpb24oKXt2YXIgZT1tKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX0hvc3RfQ250cisiIC5vdC1ob3N0LXRnbCBpbnB1dCIpLmVsLHQ9bSgiI29uZXRydXN0LXBjLXNkayAjIitULlBfU2VsX0FsbF9Ib3N0X0VsKS5lbFswXSxvPW0oIiNvbmV0cnVzdC1wYy1zZGsgI3NlbGVjdC1hbGwtaG9zdHMtZ3JvdXBzLWhhbmRsZXIiKS5lbFswXSxuPW0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfQ25zbnRfSGVhZGVyKS5lbFswXTtnLmhhbmRsZVNlbGVjdEFsbENoYm94U2VsZWN0aW9uKGUsbyx0KSxvJiZuJiZvLnNldEF0dHJpYnV0ZSh0aGlzLkFSSUFfTEFCRUxfQVRUUklCVVRFLG4udGV4dENvbnRlbnQrIiAiK08uUENlbnRlclNlbGVjdEFsbFZlbmRvcnNUZXh0KX0saS5wcm90b3R5cGUubG9hZEhvc3RMaXN0PWZ1bmN0aW9uKGUsdCl7dmFyIG89e30sbj1bXSxuPUQuc2hvd1RyYWNraW5nVGVjaD8obz1nLmdldEFkZGl0aW9uYWxUZWNobm9sb2dpZXNEYXRhRnJvbUdyb3VwKHQpLChELmN1cnJlbnRUcmFja2luZ1RlY2g9bykuQ29va2llcyk6Zy5nZXRDb21iaW5lZENvb2tpZUxpc3QodCk7RC5jdXJyZW50R2xvYmFsRmlsdGVyZWRMaXN0PW4sdGhpcy5pbml0SG9zdERhdGEoe3NlYXJjaFN0cmluZzplLGNvb2tpZXNMaXN0Om4sYWRkVGVjaERhdGE6b30pfSxpLnByb3RvdHlwZS5nZXRDb21iaW5lZENvb2tpZUxpc3Q9ZnVuY3Rpb24oZSl7dmFyIHQsbz1bXSxuPVtdO3JldHVybiBELmNvb2tpZUxpc3RUeXBlIT09Z2UuR2VuVmVuJiYobj0odD1nLmdldEZpcnN0c0FuZFRoaXJkQ29va2lzRnJvbUdyb3VwcyhlKSkuZmlyc3RQYXJ0eUNvb2tpZXNMaXN0LG89dC50aGlyZFBhcnR5Q29va2llc0xpc3Qsbi5sZW5ndGgpJiZvLnVuc2hpZnQoe0hvc3ROYW1lOk8uUENGaXJzdFBhcnR5Q29va2llTGlzdFRleHQsRGlzcGxheU5hbWU6Ty5QQ0ZpcnN0UGFydHlDb29raWVMaXN0VGV4dCxIb3N0SWQ6dGhpcy5GSVJTVF9QQVJUWV9DT09LSUVTX0dST1VQX05BTUUsaXNGaXJzdFBhcnR5OiEwLENvb2tpZXM6bixEZXNjcmlwdGlvbjoiIn0pLEQuc2hvd0dlbmVyYWxWZW5kb3JzPyh0PXRoaXMuZ2V0RmlsdGVyZWRHZW5WZW5kb3JzTGlzdChlKSxGKG8sdGhpcy5tYXBHZW5WZW5kb3JMaXN0VG9Ib3N0Rm9ybWF0KHQpKSk6b30saS5wcm90b3R5cGUubWFwR2VuVmVuZG9yTGlzdFRvSG9zdEZvcm1hdD1mdW5jdGlvbihlKXtyZXR1cm4gZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue0Nvb2tpZXM6ZS5Db29raWVzLERpc3BsYXlOYW1lOmUuTmFtZSxIb3N0TmFtZTplLk5hbWUsSG9zdElkOmUuVmVuZG9yQ3VzdG9tSWQsRGVzY3JpcHRpb246ZS5EZXNjcmlwdGlvbixUeXBlOkNlLkdlblZlbmRvcixQcml2YWN5UG9saWN5OmUuUHJpdmFjeVBvbGljeVVybCxpc0FjdGl2ZTotMTxELmFsd2F5c0FjdGl2ZUdlblZlbmRvcnMuaW5kZXhPZihlLlZlbmRvckN1c3RvbUlkKX19KX0saS5wcm90b3R5cGUubWFwR2VuVmVuZG9yVG9Ib3N0Rm9ybWF0PWZ1bmN0aW9uKGUpe3JldHVybntDb29raWVzOmUuQ29va2llcyxEaXNwbGF5TmFtZTplLk5hbWUsSG9zdE5hbWU6ZS5OYW1lLEhvc3RJZDplLlZlbmRvckN1c3RvbUlkLERlc2NyaXB0aW9uOmUuRGVzY3JpcHRpb24sVHlwZTpDZS5HZW5WZW5kb3J9fSxpLnByb3RvdHlwZS5nZXRGaWx0ZXJlZEdlblZlbmRvcnNMaXN0PWZ1bmN0aW9uKHQpe3ZhciBlLG89W10sbj1bXTtyZXR1cm4gdC5sZW5ndGg/KE8uR3JvdXBzLmZvckVhY2goZnVuY3Rpb24oZSl7RihlLlN1Ykdyb3VwcyxbZV0pLmZvckVhY2goZnVuY3Rpb24oZSl7LTEhPT10LmluZGV4T2YoZS5DdXN0b21Hcm91cElkKSYmZS5HZW5lcmFsVmVuZG9yc0lkcyYmZS5HZW5lcmFsVmVuZG9yc0lkcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe28ucHVzaChlKX0pfSl9KSxlPU8uR2VuZXJhbFZlbmRvcnMsby5sZW5ndGg/ZS5maWx0ZXIoZnVuY3Rpb24oZSl7aWYoLTE8by5pbmRleE9mKGUuVmVuZG9yQ3VzdG9tSWQpKXJldHVybiBlfSk6bik6Ty5HZW5lcmFsVmVuZG9yc30saS5wcm90b3R5cGUuaW5pdFZlbmRvcnNEYXRhPWZ1bmN0aW9uKGUsdCl7dmFyIG89dGhpcyxuPXQsdD1ELnZlbmRvcnMubGlzdCxyPSh0aGlzLnNldEJhY2tCdG5UeHQoKSxtKFQuUF9WZW5kb3JfTGlzdCsiICNzZWxlY3QtYWxsLXRleHQtY29udGFpbmVyIHAiKS5odG1sKE8uUENlbnRlckFsbG93QWxsQ29uc2VudFRleHQpLGcuc2V0Q29uc2VudExlZ0ludEFuZEhlYWRlclRleHQoKSxoLmdldFZlbmRvclBhZ2VIZWFkZXJUZXh0KCkpO2lmKG0oIiNvbmV0cnVzdC1wYy1zZGsgI2ZpbHRlci1idG4taGFuZGxlciIpLmVsWzBdLnNldEF0dHJpYnV0ZSh0aGlzLkFSSUFfTEFCRUxfQVRUUklCVVRFLE8uUENlbnRlclZlbmRvckxpc3RGaWx0ZXJBcmlhKyIgIityKSxtKCIjb25ldHJ1c3QtcGMtc2RrICNmaWx0ZXItYnRuLWhhbmRsZXIgdGl0bGUiKS5odG1sKE8uUENlbnRlclZlbmRvckxpc3RGaWx0ZXJBcmlhKSx0aGlzLmhhc0lhYlZlbmRvcnM9MDxuLmxlbmd0aCx0aGlzLnNob3dFbXB0eVJlc3VsdHMoIXRoaXMuaGFzR29vZ2xlVmVuZG9ycyYmIXRoaXMuaGFzSWFiVmVuZG9ycyYmIXRoaXMuaGFzR2VuVmVuZG9ycyxlLCExKSxnLmhpZGVPclNob3dWZW5kb3JMaXN0KG4pLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX0NvbnRhaW5lcisiIC4iK1QuUF9WZW5fQngpLmxlbmd0aCE9PXQubGVuZ3RoJiZ0aGlzLmF0dGFjaFZlbmRvcnNUb0RPTSgpLG4ubGVuZ3RoIT09dC5sZW5ndGgpdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW0oVC5QX1ZlbmRvcl9Db250YWluZXIrIiAjSUFCIitlLnZlbmRvcklkKS5lbFswXS5wYXJlbnRFbGVtZW50Oy0xPT09bi5pbmRleE9mKGUpP2QodCwiZGlzcGxheTogbm9uZTsiLCEwKTpkKHQsby5fZGlzcGxheU51bGwsITApfSk7ZWxzZSBmb3IodmFyIGk9bShULlBfVmVuZG9yX0NvbnRhaW5lcisnIGxpW3N0eWxlXj0iZGlzcGxheTogbm9uZSJdJykuZWwscz0wO3M8aS5sZW5ndGg7cysrKWQoaVtzXSx0aGlzLl9kaXNwbGF5TnVsbCwhMCk7IWIuaXNWMlRlbXBsYXRlJiZfLnBjTmFtZT09PWl0fHx0aGlzLnNldExpc3RTZWFyY2hWYWx1ZXMoYmUudmVuZG9ycyk7cj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdmRyLWxzdC1kc2MiKTshciYmTy5QQ2VudGVyVmVuZG9yTGlzdERlc2NUZXh0JiYoKHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpKS5pZD0idmRyLWxzdC1kc2MiLG0ocikuaHRtbChPLlBDZW50ZXJWZW5kb3JMaXN0RGVzY1RleHQpLF8ucGNOYW1lIT09aXQmJl8ucGNOYW1lIT09b3Q/KGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LXBjLXNkayAiK1QuUF9WZW5kb3JfVGl0bGVfRWxtKSkmJmUuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIscik6KHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihULlBfVmVuZG9yX0NvbnRlbnQrIiAub3Qtc2RrLXJvdyIpKSYmdC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWJlZ2luIixyKSksbSgiI29uZXRydXN0LXBjLXNkayAiK1QuUF9TZWxlY3RfQ250cikucmVtb3ZlQ2xhc3MoIm90LWhpZGUiKSx0aGlzLnZlbmRvcnNMaXN0RXZlbnQoKSxfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJJiZ0aGlzLnZlbmRvckxlZ0ludFRvZ2dsZUV2ZW50KCl9LGkucHJvdG90eXBlLnNldENvbnNlbnRMZWdJbnRBbmRIZWFkZXJUZXh0PWZ1bmN0aW9uKCl7Yi5pc1YyVGVtcGxhdGUmJihtKCIjb3Qtc2VsLWJsayBzcGFuOmZpcnN0LWNoaWxkIikuaHRtbChPLlBDZW50ZXJBbGxvd0FsbENvbnNlbnRUZXh0fHxPLkNvbnNlbnRUZXh0KSxtKCIjb3Qtc2VsLWJsayBzcGFuOmxhc3QtY2hpbGQiKS5odG1sKE8uTGVnaXRJbnRlcmVzdFRleHQpLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfQ25zbnRfSGVhZGVyKS5odG1sKE8uUENlbnRlckFsbG93QWxsQ29uc2VudFRleHQpLF8ubGVnSW50U2V0dGluZ3MuUEFsbG93TEkmJiFfLmxlZ0ludFNldHRpbmdzLlBTaG93TGVnSW50QnRuJiZtKCIjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWwtYWxsLWhkciAub3QtbGktaGRyIikuaHRtbChPLlBDZW50ZXJMZWdpdEludGVyZXN0VGV4dCksXy5sZWdJbnRTZXR0aW5ncy5QQWxsb3dMSSYmIV8ubGVnSW50U2V0dGluZ3MuUFNob3dMZWdJbnRCdG58fGQobSgiI290LXNlbC1ibGsgc3BhbjpmaXJzdC1jaGlsZCIpLmVsWzBdLCJtYXgtd2lkdGg6IDEwMCU7IiwhMCkpfSxpLnByb3RvdHlwZS5oaWRlT3JTaG93VmVuZG9yTGlzdD1mdW5jdGlvbihlKXswPT09ZS5sZW5ndGg/bSgiI290LWxzdC1jbnQgLm90LWFjYy1jbnRyIikuaGlkZSgpOm0oIiNvdC1sc3QtY250IC5vdC1hY2MtY250ciIpLnNob3coKSxELnNob3dUcmFja2luZ1RlY2gmJmcucmVtb3ZlVHJhY2tpbmdUZWNoQWNjb3Jpb25zKCl9LGkucHJvdG90eXBlLnVwZGF0ZVZlbmRvcnNET01Ub2dnbGVTdGF0dXM9ZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT10JiYodD0hMSk7Zm9yKHZhciBvPW0oVC5QX1ZlbmRvcl9Db250YWluZXIrIiAiK1QuUF9UZ2xfQ250cikuZWwsbj0wO248by5sZW5ndGg7bisrKXt2YXIgcj1vW25dLnF1ZXJ5U2VsZWN0b3IoIi4iK1QuUF9WZW5fQ3RnbCsiIGlucHV0IiksaT1vW25dLnF1ZXJ5U2VsZWN0b3IoIi4iK1QuUF9WZW5fTHRnbCsiIGlucHV0Iik7dD9yJiZ2LnNldENoZWNrZWRBdHRyaWJ1dGUoIiIsciwhMSk6KHImJnYuc2V0Q2hlY2tlZEF0dHJpYnV0ZSgiIixyLGUpLGkmJnYuc2V0Q2hlY2tlZEF0dHJpYnV0ZSgiIixpLGUpKX12YXIgcz1tKCIjb25ldHJ1c3QtcGMtc2RrICNzZWxlY3QtYWxsLXZlbmRvci1sZWctaGFuZGxlciIpLmVsWzBdLHM9KHMmJihzLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkxJTkVfVEhST1VHSF9DTEFTUyksdi5zZXRDaGVja2VkQXR0cmlidXRlKCIiLHMsISF0fHxlKSksbSgiI29uZXRydXN0LXBjLXNkayAjc2VsZWN0LWFsbC12ZW5kb3ItZ3JvdXBzLWhhbmRsZXIiKS5lbFswXSk7cyYmKHMucGFyZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuTElORV9USFJPVUdIX0NMQVNTKSx2LnNldENoZWNrZWRBdHRyaWJ1dGUoIiIscywhdCYmZSkpLE8uVXNlR29vZ2xlVmVuZG9ycyYmKHQ/dGhpcy51cGRhdGVHb29nbGVDaGVja2JveCghMSk6dGhpcy51cGRhdGVHb29nbGVDaGVja2JveChlKSksRC5zaG93R2VuZXJhbFZlbmRvcnMmJk8uR2VuVmVuT3B0T3V0JiZ0aGlzLnVwZGF0ZUdlblZlbkNoZWNrYm94KGUpfSxpLnByb3RvdHlwZS51cGRhdGVHZW5WZW5DaGVja2JveD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9bShULlBfR3Zlbl9MaXN0KyIgLm90LXZlbi1ndmN0Z2wgaW5wdXQiKS5lbCxvPTA7bzx0Lmxlbmd0aDtvKyspdi5zZXRDaGVja2VkQXR0cmlidXRlKCIiLHRbb10sZSk7dmFyIG49bSgiI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWdudmVuLWhhbmRsZXIiKS5lbFswXTtuJiYobi5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5MSU5FX1RIUk9VR0hfQ0xBU1MpLHYuc2V0Q2hlY2tlZEF0dHJpYnV0ZSgiIixuLGUpKX0saS5wcm90b3R5cGUudXBkYXRlR29vZ2xlQ2hlY2tib3g9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW0oIiNvdC1hZGR0bC12ZW5sc3QgLm90LXRnbC1jbnRyIGlucHV0IikuZWwsbz0wO288dC5sZW5ndGg7bysrKXYuc2V0Q2hlY2tlZEF0dHJpYnV0ZSgiIix0W29dLGUpO3ZhciBuPW0oIiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1hZHRsdmVuLWhhbmRsZXIiKS5lbFswXTtuJiYobi5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5MSU5FX1RIUk9VR0hfQ0xBU1MpLHYuc2V0Q2hlY2tlZEF0dHJpYnV0ZSgiIixuLGUpKX0saS5wcm90b3R5cGUudXBkYXRlVmVuZG9yRGlzY2xvc3VyZT1mdW5jdGlvbihlLHQpe3ZhciByLGksZT1tKFQuUF9WZW5kb3JfQ29udGFpbmVyKyIgI0lBQiIrZSkuZWxbMF0ucGFyZW50RWxlbWVudDt0JiZ0LmRpc2Nsb3N1cmVzJiYocj1lLnF1ZXJ5U2VsZWN0b3IoVC5QX1Zlbl9EZXRzKSwoZT0oaT1lLnF1ZXJ5U2VsZWN0b3IoVC5QX1Zlbl9EaXNjKS5jbG9uZU5vZGUoITApKS5jbG9uZU5vZGUoITApKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KHRoaXMuZ2V0SGVhZGluZ0VsZW1lbnQoTy5QQ2VudGVyVmVuZG9yTGlzdERpc2Nsb3N1cmUrIjogIiwiNSIpKSxyLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlZW5kIixlKSx0LmRpc2Nsb3N1cmVzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQsbz1pLmNsb25lTm9kZSghMCksbj0iPHA+IitPLlBDZW50ZXJWZW5kb3JMaXN0U3RvcmFnZUlkZW50aWZpZXIrIiA8L3A+IDxwPiIrKGUubmFtZXx8ZS5pZGVudGlmaWVyKSsiIDwvcD4iO2UudHlwZSYmKG4rPSI8cD4iK08uUENlbnRlclZlbmRvckxpc3RTdG9yYWdlVHlwZSsiIDwvcD4gPHA+IitlLnR5cGUrIiA8L3A+IiksZS5tYXhBZ2VTZWNvbmRzJiYodD12LmNhbGN1bGF0ZUNvb2tpZUxpZmVzcGFuKGUubWF4QWdlU2Vjb25kcyksbis9IjxwPiIrTy5QQ2VudGVyVmVuZG9yTGlzdExpZmVzcGFuKyIgPC9wPiA8cD4iK3QrIiA8L3A+IiksZS5kb21haW4mJihuKz0iPHA+IitPLlBDZW50ZXJWZW5kb3JMaXN0U3RvcmFnZURvbWFpbisiIDwvcD4gPHA+IitlLmRvbWFpbisiIDwvcD4iKSxlLnB1cnBvc2VzJiYobis9IjxwPiIrTy5QQ2VudGVyVmVuZG9yTGlzdFN0b3JhZ2VQdXJwb3NlcysnIDwvcD48ZGl2IGNsYXNzPSJkaXNjLXB1ci1jb250Ij4nLGUucHVycG9zZXMuZm9yRWFjaChmdW5jdGlvbihlKXtlPW51bGw9PShlPV8uaWFiR3JvdXBzLnB1cnBvc2VzW2VdKT92b2lkIDA6ZS5uYW1lO2UmJihuKz0nIDxwIGNsYXNzPSJkaXNjLXB1ciI+JytlKyIgPC9wPiIpfSksbis9IjwvZGl2PiIpLG8uaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChuKSxyLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlZW5kIixvKX0pLHRoaXMudXBkYXRlRG9tYWluc1VzYWdlSW5EaXNjbG9zdXJlcyh0LGkscikpfSxpLnByb3RvdHlwZS5nZXRIZWFkaW5nRWxlbWVudD1mdW5jdGlvbihlLHQsbyl7dmFyIG47cmV0dXJuIG51bGwhPShuPWIubW9kdWxlSW5pdGlhbGl6ZXIpJiZuLlNFT09wdGltaXphdGlvbj8nPHAgcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iJyt0KyciIGNsYXNzPSInK28rJyI+JytlKyI8L3A+IjoiPGgiK3QrJyBjbGFzcz0iJytvKyciPicrZSsiPC9oIit0KyI+In0saS5wcm90b3R5cGUudXBkYXRlRG9tYWluc1VzYWdlSW5EaXNjbG9zdXJlcz1mdW5jdGlvbihlLG4scil7dmFyIHQ7ZS5kb21haW5zJiZlLmRvbWFpbnMubGVuZ3RoJiYoKHQ9bi5jbG9uZU5vZGUoITApKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KHRoaXMuZ2V0SGVhZGluZ0VsZW1lbnQoTy5QQ1ZMU0RvbWFpbnNVc2VkKyI6ICIsIjUiKSksci5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsdCksZS5kb21haW5zLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQsbz1uLmNsb25lTm9kZSghMCk7ZS5kb21haW4mJih0PSI8cD4iK08uUENlbnRlclZlbmRvckxpc3RTdG9yYWdlRG9tYWluKyIgPC9wPiA8cD4iK2UuZG9tYWluKyIgPC9wPiIpLGUudXNlJiYodCs9IjxwPiIrTy5QQ1ZMU1VzZSsiIDwvcD4gPHA+IitlLnVzZSsiIDwvcD4iKSxvLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQodCksci5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsbyl9KSl9LGkucHJvdG90eXBlLmFkZERlc2NyaXB0aW9uRWxlbWVudD1mdW5jdGlvbihlLHQpe3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTtvLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQodHx8IiIpLGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobyxlKX0saS5wcm90b3R5cGUuc2V0VmRyQ29uc2VudFRnbE9yQ2hib3g9ZnVuY3Rpb24oZSx0LG8sbixyLGkpe3ZhciBzLGEsbD1ELnZlbmRvcnNTZXR0aW5nW2VdLHQ9dC5jbG9uZU5vZGUoITApO2wuY29uc2VudCYmKHQuY2xhc3NMaXN0LmFkZChULlBfVmVuX0N0Z2wpLGw9LTEhPT1TLmluQXJyYXkoZSsiOnRydWUiLEQudmVuZG9ycy5zZWxlY3RlZFZlbmRvcnMpLHM9dC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLGIuaXNWMlRlbXBsYXRlJiYocy5jbGFzc0xpc3QuYWRkKCJ2ZW5kb3ItY2hlY2tib3gtaGFuZGxlciIpLGE9dC5xdWVyeVNlbGVjdG9yKHRoaXMuTEFCRUxfU1RBVFVTKSxPLlBDU2hvd0NvbnNlbnRMYWJlbHM/YS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KGw/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCk6di5yZW1vdmVDaGlsZChhKSksdi5zZXRDaGVja2VkQXR0cmlidXRlKCIiLHMsbCksdi5zZXRIdG1sQXR0cmlidXRlcyhzLHtpZDpULlBfVmVuZG9yX0NoZWNrQngrIi0iK2ksdmVuZG9yaWQ6ZSwiYXJpYS1sYWJlbCI6b30pLHQucXVlcnlTZWxlY3RvcigibGFiZWwiKS5zZXRBdHRyaWJ1dGUoImZvciIsVC5QX1ZlbmRvcl9DaGVja0J4KyItIitpKSx0LnF1ZXJ5U2VsZWN0b3IoVC5QX0xhYmVsX1R4dCkudGV4dENvbnRlbnQ9byxfLnBjTmFtZT09PWl0P08uUENUZW1wbGF0ZVVwZ3JhZGU/bi5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsdCk6bShuKS5hcHBlbmQodCk6bi5pbnNlcnRCZWZvcmUodCxyKSl9LGkucHJvdG90eXBlLnNldFZuZHJMZWdJbnRUZ2xUeHQ9ZnVuY3Rpb24oZSx0KXtlPWUucXVlcnlTZWxlY3Rvcih0aGlzLkxBQkVMX1NUQVRVUyk7Ty5QQ1Nob3dDb25zZW50TGFiZWxzP2UuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudCh0P08uUENBY3RpdmVUZXh0Ok8uUENJbmFjdGl2ZVRleHQpOnYucmVtb3ZlQ2hpbGQoZSl9LGkucHJvdG90eXBlLnNldFZkckxlZ0ludFRnbE9yQ2hieD1mdW5jdGlvbih0LGUsbyxuLHIsaSxzKXt2YXIgYSxsPUQudmVuZG9yc1NldHRpbmdbdF0sbz1vLmNsb25lTm9kZSghMCksYz1udWxsPT0oYz1ELnZlbmRvcnMubGlzdC5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZlbmRvcklkPT09dH0pLmxlZ0ludFB1cnBvc2VzKT92b2lkIDA6Yy5sZW5ndGg7bC5sZWdJbnQmJiFsLnNwZWNpYWxQdXJwb3Nlc09ubHkmJmMmJihjPS0xIT09Uy5pbkFycmF5KHQrIjp0cnVlIixELnZlbmRvcnMuc2VsZWN0ZWRMZWdJbnRWZW5kb3JzKSxfLmxlZ0ludFNldHRpbmdzLlBTaG93TGVnSW50QnRuPyhhPXcuZ2VuZXJhdGVMZWdJbnRCdXR0b25FbGVtZW50cyhjLHQsITAsbiksZS5xdWVyeVNlbGVjdG9yKFQuUF9BY2NfVHh0KS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsYSksKGE9ZS5xdWVyeVNlbGVjdG9yKCIub3QtcmVtb3ZlLW9iamVjdGlvbi1oYW5kbGVyIikpJiZkKGEsYS5nZXRBdHRyaWJ1dGUoImRhdGEtc3R5bGUiKSkpOihhPW8ucXVlcnlTZWxlY3RvcigiaW5wdXQiKSxiLmlzVjJUZW1wbGF0ZSYmKGEuY2xhc3NMaXN0LmFkZCgidmVuZG9yLWNoZWNrYm94LWhhbmRsZXIiKSx0aGlzLnNldFZuZHJMZWdJbnRUZ2xUeHQobyxjKSksby5jbGFzc0xpc3QuYWRkKFQuUF9WZW5fTHRnbCksYS5jbGFzc0xpc3QucmVtb3ZlKCJ2ZW5kb3ItY2hlY2tib3gtaGFuZGxlciIpLGEuY2xhc3NMaXN0LmFkZCgidmVuZG9yLWxlZy1jaGVja2JveC1oYW5kbGVyIiksdi5zZXRDaGVja2VkQXR0cmlidXRlKCIiLGEsYyksdi5zZXRIdG1sQXR0cmlidXRlcyhhLHtpZDpULlBfVmVuZG9yX0xlZ0NoZWNrQngrIi0iK3IsImxlZy12ZW5kb3JpZCI6dCwiYXJpYS1sYWJlbCI6bn0pLG8ucXVlcnlTZWxlY3RvcigibGFiZWwiKS5zZXRBdHRyaWJ1dGUoImZvciIsVC5QX1ZlbmRvcl9MZWdDaGVja0J4KyItIityKSxvLnF1ZXJ5U2VsZWN0b3IoVC5QX0xhYmVsX1R4dCkudGV4dENvbnRlbnQ9bixlLnF1ZXJ5U2VsZWN0b3IoIi4iK1QuUF9WZW5fQ3RnbCkmJihpPWUucXVlcnlTZWxlY3RvcigiLiIrVC5QX1Zlbl9DdGdsKSksXy5wY05hbWUhPT1pdHx8cy5jaGlsZHJlbi5sZW5ndGg/cy5pbnNlcnRCZWZvcmUobyxpKTptKHMpLmFwcGVuZChvKSxsLmNvbnNlbnR8fF8ucGNOYW1lIT09aXR8fG8uY2xhc3NMaXN0LmFkZChULlBfVmVuX0x0Z2xfT25seSkpKX0saS5wcm90b3R5cGUuc2V0Vm5kclNwbFB1clNlY3Rpb249ZnVuY3Rpb24oZSx0KXt2YXIgbz10aGlzLG49ZS5xdWVyeVNlbGVjdG9yKCIuc3BsLXB1cnBvc2UiKSxlPWUucXVlcnlTZWxlY3RvcigiLnNwbC1wdXJwb3NlLWdycCIpLHI9ZS5jbG9uZU5vZGUoITApO2UucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChlKSxfLmlzSWFiMm9ydjJUZW1wbGF0ZSYmdC5zcGVjaWFsUHVycG9zZXMuZm9yRWFjaChmdW5jdGlvbihlKXttKHIucXVlcnlTZWxlY3RvcihvLkNPTlNFTlRfQ0FURUdPUlkpKS50ZXh0KGUucHVycG9zZU5hbWUpLG4uaW5zZXJ0QWRqYWNlbnRIVE1MKCJhZnRlcmVuZCIsUy5nZXRJbm5lckh0bWxDb250ZW50KHIub3V0ZXJIVE1MKSl9KSwwPT09dC5zcGVjaWFsUHVycG9zZXMubGVuZ3RoP24ucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChuKTptKG4ucXVlcnlTZWxlY3RvcigicCIpKS50ZXh0KE8uU3BlY2lhbFB1cnBvc2VzVGV4dCl9LGkucHJvdG90eXBlLnNldFZuZHJGdFNlY3Rpb249ZnVuY3Rpb24oZSx0KXt2YXIgbz10aGlzLG49ZS5xdWVyeVNlbGVjdG9yKCIudmVuZG9yLWZlYXR1cmUiKSxlPWUucXVlcnlTZWxlY3RvcigiLnZlbmRvci1mZWF0dXJlLWdyb3VwIikscj1lLmNsb25lTm9kZSghMCk7ZS5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGUpLG0obi5xdWVyeVNlbGVjdG9yKCJwIikpLnRleHQoTy5GZWF0dXJlc1RleHQpLHQuZmVhdHVyZXMuZm9yRWFjaChmdW5jdGlvbihlKXttKHIucXVlcnlTZWxlY3RvcihvLkNPTlNFTlRfQ0FURUdPUlkpKS50ZXh0KGUuZmVhdHVyZU5hbWUpLG4uaW5zZXJ0QWRqYWNlbnRIVE1MKCJhZnRlcmVuZCIsUy5nZXRJbm5lckh0bWxDb250ZW50KHIub3V0ZXJIVE1MKSl9KSwwPT09dC5mZWF0dXJlcy5sZW5ndGgmJm4ucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChuKX0saS5wcm90b3R5cGUuc2V0Vm5kclNwbEZ0U2VjdGlvbj1mdW5jdGlvbihlLHQpe3ZhciBvPXRoaXMsbj1lLnF1ZXJ5U2VsZWN0b3IoIi52ZW5kb3Itc3BsLWZlYXR1cmUiKSxlPWUucXVlcnlTZWxlY3RvcigiLnZlbmRvci1zcGwtZmVhdHVyZS1ncnAiKSxyPWUuY2xvbmVOb2RlKCEwKTtuLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoZSksXy5pc0lhYjJvcnYyVGVtcGxhdGUmJnQuc3BlY2lhbEZlYXR1cmVzLmZvckVhY2goZnVuY3Rpb24oZSl7bShyLnF1ZXJ5U2VsZWN0b3Ioby5DT05TRU5UX0NBVEVHT1JZKSkudGV4dChlLmZlYXR1cmVOYW1lKSxuLmluc2VydEFkamFjZW50SFRNTCgiYWZ0ZXJlbmQiLFMuZ2V0SW5uZXJIdG1sQ29udGVudChyLm91dGVySFRNTCkpfSksMD09PXQuc3BlY2lhbEZlYXR1cmVzLmxlbmd0aD9uLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQobik6bShuLnF1ZXJ5U2VsZWN0b3IoInAiKSkudGV4dChPLlNwZWNpYWxGZWF0dXJlc1RleHQpfSxpLnByb3RvdHlwZS5zZXRWbmRyQWNjVHh0PWZ1bmN0aW9uKGUsdCl7dD10LnF1ZXJ5U2VsZWN0b3IoVC5QX0FjY19UeHQpO3QmJnYuc2V0SHRtbEF0dHJpYnV0ZXModCx7aWQ6IklBQi1BQ0MtVFhUIitlLCJhcmlhLWxhYmVsbGVkYnkiOiJJQUItQUNDLVRYVCIrZSxyb2xlOiJyZWdpb24ifSl9LGkucHJvdG90eXBlLnNldFZuZHJEaXNjbG9zdXJlPWZ1bmN0aW9uKGUsdCxvKXt0LmRldmljZVN0b3JhZ2VEaXNjbG9zdXJlVXJsJiYodi5zZXRIdG1sQXR0cmlidXRlcyhvLHsiZGlzYy12aWQiOmV9KSxELmRpc2NWZW5kb3JzW2VdPXtpc0ZldGNoZWQ6ITEsZGlzY2xvc3VyZVVybDp0LmRldmljZVN0b3JhZ2VEaXNjbG9zdXJlVXJsfSl9LGkucHJvdG90eXBlLnNldFZuZHJMaXN0U2VsZWN0QWxsQ2hrQm94cz1mdW5jdGlvbigpe3ZhciBlPW0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfU2VsX0FsbF9WZW5kb3JfQ29uc2VudF9IYW5kbGVyKS5lbFswXSxlPShlJiZlLnNldEF0dHJpYnV0ZSh0aGlzLkFSSUFfTEFCRUxfQVRUUklCVVRFLE8uUENlbnRlclNlbGVjdEFsbFZlbmRvcnNUZXh0KyIgIitPLkxlZ2l0SW50ZXJlc3RUZXh0KSxtKCIjb25ldHJ1c3QtcGMtc2RrICIrVC5QX1NlbF9BbGxfVmVuZG9yX0xlZ19IYW5kbGVyKS5lbFswXSk7ZSYmZS5zZXRBdHRyaWJ1dGUodGhpcy5BUklBX0xBQkVMX0FUVFJJQlVURSxPLlBDSUFCVmVuZG9yc1RleHQrIiwgIitPLlBDZW50ZXJTZWxlY3RBbGxWZW5kb3JzVGV4dCl9LGkucHJvdG90eXBlLnNldFZuZHJDb25zZW50UHVycG9zZXM9ZnVuY3Rpb24oZSx0LG8pe3ZhciBuPXRoaXMscj1lLnF1ZXJ5U2VsZWN0b3IoIi52ZW5kb3ItY29uc2VudC1ncm91cCIpLGk9ZS5xdWVyeVNlbGVjdG9yKCIudmVuZG9yLW9wdGlvbi1wdXJwb3NlIikscz1yLmNsb25lTm9kZSghMCksYT1lLnF1ZXJ5U2VsZWN0b3IoIi5sZWdpdGltYXRlLWludGVyZXN0IiksbD0hMTtyZXR1cm4gci5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHIpLHQuY29uc2VudCYmKG0oaS5xdWVyeVNlbGVjdG9yKCJwIikpLnRleHQoTy5Db25zZW50UHVycG9zZXNUZXh0KSxvLnB1cnBvc2VzLmZvckVhY2goZnVuY3Rpb24oZSl7bShzLnF1ZXJ5U2VsZWN0b3Iobi5DT05TRU5UX0NBVEVHT1JZKSkudGV4dChlLnB1cnBvc2VOYW1lKTtlPXMucXVlcnlTZWxlY3RvcigiLmNvbnNlbnQtc3RhdHVzIik7ZSYmcy5yZW1vdmVDaGlsZChlKSxhLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlYmVnaW4iLFMuZ2V0SW5uZXJIdG1sQ29udGVudChzLm91dGVySFRNTCkpLGw9ITB9KSksdC5jb25zZW50fHxpLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoaSksbH0saS5wcm90b3R5cGUuZ2V0Vm5kclRnbENudHI9ZnVuY3Rpb24oZSl7cmV0dXJuIGIuaXNWMlRlbXBsYXRlP04uY2hrYm94RWwuY2xvbmVOb2RlKCEwKTplLnF1ZXJ5U2VsZWN0b3IoIi5vdC1jaGVja2JveCIpfSxpLnByb3RvdHlwZS5hdHRhY2hWZW5kb3JzVG9ET009ZnVuY3Rpb24oKXtmb3IodmFyIHUscCxDPXRoaXMsZz1ELnZlbmRvcnMubGlzdCxoPUQudmVuZG9ycy52ZW5kb3JUZW1wbGF0ZS5jbG9uZU5vZGUoITApLHk9KEQuZGlzY1ZlbmRvcnM9e30sYi5pc1YyVGVtcGxhdGUmJih1PWgucXVlcnlTZWxlY3RvcigiLm90LXZlbi1wdXIiKS5jbG9uZU5vZGUoITApLHA9aC5xdWVyeVNlbGVjdG9yKFQuUF9WZW5fRGlzYykuY2xvbmVOb2RlKCEwKSxtKGgucXVlcnlTZWxlY3RvcigiLm90LXZlbi1kZXRzIikpLmh0bWwoIiIpKSxkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpLGY9dGhpcyxlPTA7ZTxnLmxlbmd0aDtlKyspKGU9Pnt2YXIgdCxvLG49aC5jbG9uZU5vZGUoITApLHI9Z1tlXS52ZW5kb3JJZCxpPWdbZV0udmVuZG9yTmFtZSxzPW4ucXVlcnlTZWxlY3RvcigiLiIrVC5QX1Zlbl9CeCksYT1ELnZlbmRvcnNTZXR0aW5nW3JdLGw9KHYuc2V0SHRtbEF0dHJpYnV0ZXMocyx7aWQ6IklBQiIrcixuYW1lOiJJQUIiK3IsImFyaWEtY29udHJvbHMiOiJJQUItQUNDLVRYVCIrciwiYXJpYS1sYWJlbCI6aX0pLHMubmV4dEVsZW1lbnRTaWJsaW5nLnNldEF0dHJpYnV0ZSgiZm9yIiwiSUFCIityKSxuLnF1ZXJ5U2VsZWN0b3IoVC5QX1Zlbl9OYW1lKS5pbm5lclRleHQ9aSxmLnVwZGF0ZUlBQkxpbmtzRE9NKGdbZV0sbiksZi5nZXRWbmRyVGdsQ250cihuKSksYz1uLnF1ZXJ5U2VsZWN0b3IoVC5QX1RnbF9DbnRyKSxkPShiLmlzVjJUZW1wbGF0ZXx8bC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGwpLG4ucXVlcnlTZWxlY3RvcihULlBfQXJyd19DbnRyKSk7Zi5zZXRWZHJDb25zZW50VGdsT3JDaGJveChyLGwsaSxjLGQsZSksZi5zZXRWZHJMZWdJbnRUZ2xPckNoYngocixuLGwsaSxlLGQsYyksYi5pc1YyVGVtcGxhdGUmJihjLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlZW5kIixOLmFycm93RWwuY2xvbmVOb2RlKCEwKSksTy5QQ0FjY29yZGlvblN0eWxlIT09YWUuQ2FyZXQpJiZuLnF1ZXJ5U2VsZWN0b3IoIi5vdC12ZW4taGRyIikuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmViZWdpbiIsTi5wbHVzTWludXNFbC5jbG9uZU5vZGUoITApKSxmLnNldFZuZHJBY2NUeHQocixuKSxmLnNldFZuZHJEaXNjbG9zdXJlKHIsZ1tlXSxzKSxiLmlzVjJUZW1wbGF0ZT9mLnBvcHVsYXRlVmVuZG9yRGV0YWlsc0h0bWwobix1LGdbZV0scCk6KHQ9bi5xdWVyeVNlbGVjdG9yKCIubGVnaXRpbWF0ZS1pbnRlcmVzdCIpLGw9bi5xdWVyeVNlbGVjdG9yKCIubGVnaXRpbWF0ZS1pbnRlcmVzdC1ncm91cCIpLG89bC5jbG9uZU5vZGUoITApLHA9bi5xdWVyeVNlbGVjdG9yKFQuUF9WZW5fRGlzYyksaT1uLnF1ZXJ5U2VsZWN0b3IoVC5QX1Zlbl9EZXRzKSxkPXAuY2xvbmVOb2RlKCEwKSxwLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQocCksZi5hdHRhY2hWZW5kb3JEaXNjbG9zdXJlKGQsZ1tlXSksaS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyYmVnaW4iLGQpLGYuc2V0Vm5kckNvbnNlbnRQdXJwb3NlcyhuLGEsZ1tlXSksYz1vLnF1ZXJ5U2VsZWN0b3IoIi52ZW5kb3Itb3B0LW91dC1oYW5kbGVyIiksXy5pc0lhYjJvcnYyVGVtcGxhdGUmJmMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChjKSxsLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQobCksYS5sZWdJbnQmJihtKHQucXVlcnlTZWxlY3RvcigicCIpKS50ZXh0KE8uTGVnaXRpbWF0ZUludGVyZXN0UHVycG9zZXNUZXh0KSxfLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJKSYmXy5pc0lhYjJvcnYyVGVtcGxhdGUmJmdbZV0ubGVnSW50UHVycG9zZXMuZm9yRWFjaChmdW5jdGlvbihlKXttKG8ucXVlcnlTZWxlY3RvcihDLkNPTlNFTlRfQ0FURUdPUlkpKS50ZXh0KGUucHVycG9zZU5hbWUpLHQuaW5zZXJ0QWRqYWNlbnRIVE1MKCJhZnRlcmVuZCIsUy5nZXRJbm5lckh0bWxDb250ZW50KG8ub3V0ZXJIVE1MKSl9KSxhLmxlZ0ludHx8dC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHQpLGYuc2V0Vm5kclNwbFB1clNlY3Rpb24obixnW2VdKSxmLnNldFZuZHJGdFNlY3Rpb24obixnW2VdKSxmLnNldFZuZHJTcGxGdFNlY3Rpb24obixnW2VdKSwocj1zLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcigiLnZlbmRvci1wdXJwb3NlcyBwIikpLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQocikpLHkuYXBwZW5kQ2hpbGQobiksZi5zZXRWbmRyTGlzdFNlbGVjdEFsbENoa0JveHMoKX0pKGUpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX0NvbnRhaW5lcikuYXBwZW5kKHkpfSxpLnByb3RvdHlwZS51cGRhdGVJQUJMaW5rc0RPTT1mdW5jdGlvbihlLHQpe3ZhciBvLG49ZS52ZW5kb3JOYW1lLHI9dC5xdWVyeVNlbGVjdG9yKFQuUF9WZW5fTGluayksdD10LnF1ZXJ5U2VsZWN0b3IoVC5QX1Zlbl9MZWdfQ2xhaW0pLGk9Xy5pc1RjZlYyVGVtcGxhdGU/ZS52ZW5kb3JQcml2YWN5VXJsOmUucG9saWN5VXJsLHM9ITE7Ty5CYW5uZXJSZXF1aXJlRXh0ZXJuYWxMaW5rcyYmKGIuZnAuQ01QSWNvblNwcml0ZSYmTy5PVEV4dGVybmFsTGlua0xvZ28mJiFPLkJhbm5lckV4dGVybmFsTGlua3NMb2dvPyhzPSEwLG89aC51cGRhdGVDb3JyZWN0VXJsKE8uT1RFeHRlcm5hbExpbmtMb2dvKSxvPU8uQmFubmVyRXh0ZXJuYWxMaW5rc0xvZ28/aC51cGRhdGVDb3JyZWN0VXJsKE8uQmFubmVyRXh0ZXJuYWxMaW5rc0xvZ28pOm8sbz0iPHN2ZyBjbGFzcz0nb3QtZXh0LWxuayc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9JyMiK25ldyBVUkwobyx3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5wYXRobmFtZS5zcGxpdCgiLyIpLnBvcCgpLnNwbGl0KCIuIikuc2hpZnQoKSsiJz48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiIpOnIuY2xhc3NMaXN0LmFkZCh0aGlzLkVYVF9MSU5LX0NMQVNTKSksdi5zZXRIdG1sQXR0cmlidXRlcyhyLHtocmVmOmkscmVsOnRoaXMuVEFSR0VUX0JMQU5LX1JFTF9OT09QRU5FUix0YXJnZXQ6Il9ibGFuayJ9KSxyLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoTy5QQ2VudGVyVmlld1ByaXZhY3lQb2xpY3lUZXh0KyImbmJzcDs8c3BhbiBjbGFzcz0nb3Qtc2Nybi1yZHInPiIrbisiICIrTy5OZXdXaW5UeHQrIjwvc3Bhbj4iKSxPLkJhbm5lclJlcXVpcmVFeHRlcm5hbExpbmtzJiZzJiYoaC5oYXNBZGphY2VudEV4dGVybmFsTGlua1N2ZyhyKXx8ci5pbnNlcnRBZGphY2VudEhUTUwoImFmdGVyZW5kIixTLmdldElubmVySHRtbENvbnRlbnQobykpKSxfLmlzVGNmVjJUZW1wbGF0ZSYmZS5sZWdJbnRDbGFpbSYmMDxPLlBDSUFCVmVuZG9yTGVnSW50Q2xhaW1UZXh0LnRyaW0oKS5sZW5ndGg/KHYuc2V0SHRtbEF0dHJpYnV0ZXModCx7aHJlZjplLmxlZ0ludENsYWltLHJlbDp0aGlzLlRBUkdFVF9CTEFOS19SRUxfTk9PUEVORVIsdGFyZ2V0OiJfYmxhbmsifSksdC5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KE8uUENJQUJWZW5kb3JMZWdJbnRDbGFpbVRleHQrIiZuYnNwOzxzcGFuIGNsYXNzPSdvdC1zY3JuLXJkcic+IituKyIgIitPLk5ld1dpblR4dCsiPC9zcGFuPiIpLE8uQmFubmVyUmVxdWlyZUV4dGVybmFsTGlua3MmJihzP3QuaW5zZXJ0QWRqYWNlbnRIVE1MKCJhZnRlcmVuZCIsUy5nZXRJbm5lckh0bWxDb250ZW50KG8pKTp0LmNsYXNzTGlzdC5hZGQodGhpcy5FWFRfTElOS19DTEFTUykpKTp0LnJlbW92ZSgpfSxpLnByb3RvdHlwZS5wb3B1bGF0ZVZlbmRvckRldGFpbHNIdG1sPWZ1bmN0aW9uKGUsbyx0LG4pe2Z1bmN0aW9uIHIoZSx0LG8sbixyKXtpZih2b2lkIDA9PT1yJiYocj0hMSksdC5sZW5ndGgpe2Zvcih2YXIgaT11LmdldEhlYWRpbmdFbGVtZW50KFN0cmluZyhPW2VdKSwiNSIpKyI8dWw+IixzPTAsYT10O3M8YS5sZW5ndGg7cysrKXt2YXIgbCxjPWFbc10sZD1vKGMpO3ImJm51bGwhPShsPW4pJiZsW2MucHVycG9zZUlkXSYmKGQrPSIgKCIrKGw9bltjLnB1cnBvc2VJZF0ucmV0ZW50aW9uKSsiICIrKDE9PT1sP08uUENlbnRlclZlbmRvckxpc3RMaWZlc3BhbkRheTpPLlBDZW50ZXJWZW5kb3JMaXN0TGlmZXNwYW5EYXlzKSsiKSIpLGkrPSI8bGk+PHA+IitkKyI8L3A+PC9saT4ifXAoaSs9IjwvdWw+Iil9fXZhciBpLHU9dGhpcyxzPWUucXVlcnlTZWxlY3RvcigiLm90LXZlbi1kZXRzIiksZT1ELnZlbmRvcnNTZXR0aW5nW3QudmVuZG9ySWRdLHA9ZnVuY3Rpb24oZSl7dmFyIHQ9by5jbG9uZU5vZGUoITApO3QuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChlKSxzLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlZW5kIix0KX0sbj1uLmNsb25lTm9kZSghMCk7dGhpcy5hdHRhY2hWZW5kb3JEaXNjbG9zdXJlKG4sdCkscy5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsbiksXy5pc1RjZlYyVGVtcGxhdGUmJm51bGwhPShuPXQuZGF0YURlY2xhcmF0aW9uKSYmbi5sZW5ndGgmJnIoIlBDVkxpc3REYXRhRGVjbGFyYXRpb25UZXh0Iix0LmRhdGFEZWNsYXJhdGlvbixmdW5jdGlvbihlKXtyZXR1cm4gZS5OYW1lfSksXy5pc1RjZlYyVGVtcGxhdGUmJm51bGwhPShudWxsPT0obj10LmRhdGFSZXRlbnRpb24pP3ZvaWQgMDpuLnN0ZFJldGVudGlvbikmJihpPTE9PT0obj10LmRhdGFSZXRlbnRpb24uc3RkUmV0ZW50aW9uKT9PLlBDZW50ZXJWZW5kb3JMaXN0TGlmZXNwYW5EYXk6Ty5QQ2VudGVyVmVuZG9yTGlzdExpZmVzcGFuRGF5cyxuPXRoaXMuZ2V0SGVhZGluZ0VsZW1lbnQoTy5QQ1ZMaXN0RGF0YVJldGVudGlvblRleHQsIjUiKSsoIjxsaT48cD4iK08uUENWTGlzdFN0ZFJldGVudGlvblRleHQpKyIgKCIrbisiICIraSsiKTwvcD48L2xpPiIscChuKSksZS5jb25zZW50JiZyKCJDb25zZW50UHVycG9zZXNUZXh0Iix0LnB1cnBvc2VzLGZ1bmN0aW9uKGUpe3JldHVybiBlLnB1cnBvc2VOYW1lfSxudWxsPT0oaT10LmRhdGFSZXRlbnRpb24pP3ZvaWQgMDppLnB1cnBvc2VzLCEwKSxlLmxlZ0ludCYmbnVsbCE9KG49dC5sZWdJbnRQdXJwb3NlcykmJm4ubGVuZ3RoJiZyKCJMZWdpdGltYXRlSW50ZXJlc3RQdXJwb3Nlc1RleHQiLHQubGVnSW50UHVycG9zZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUucHVycG9zZU5hbWV9KSxfLmlzSWFiMm9ydjJUZW1wbGF0ZSYmbnVsbCE9KGk9dC5zcGVjaWFsUHVycG9zZXMpJiZpLmxlbmd0aCYmcigiU3BlY2lhbFB1cnBvc2VzVGV4dCIsdC5zcGVjaWFsUHVycG9zZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUucHVycG9zZU5hbWV9LG51bGw9PShlPXQuZGF0YVJldGVudGlvbik/dm9pZCAwOmUuc3BlY2lhbFB1cnBvc2VzLCEwKSxudWxsIT0obj10LmZlYXR1cmVzKSYmbi5sZW5ndGgmJnIoIkZlYXR1cmVzVGV4dCIsdC5mZWF0dXJlcyxmdW5jdGlvbihlKXtyZXR1cm4gZS5mZWF0dXJlTmFtZX0pLF8uaXNJYWIyb3J2MlRlbXBsYXRlJiZudWxsIT0oaT10LnNwZWNpYWxGZWF0dXJlcykmJmkubGVuZ3RoJiZyKCJTcGVjaWFsRmVhdHVyZXNUZXh0Iix0LnNwZWNpYWxGZWF0dXJlcyxmdW5jdGlvbihlKXtyZXR1cm4gZS5mZWF0dXJlTmFtZX0pfSxpLnByb3RvdHlwZS5Jbml0aWFsaXplVmVuZG9yTGlzdD1mdW5jdGlvbigpe3ZhciBlO0QudmVuZG9ycy5saXN0PUQuaWFiRGF0YT9ELmlhYkRhdGEudmVuZG9yczpudWxsLEQudmVuZG9ycy52ZW5kb3JUZW1wbGF0ZT1tKFQuUF9WZW5kb3JfQ29udGFpbmVyKyIgbGkiKS5lbFswXS5jbG9uZU5vZGUoITApLG0oIiNvbmV0cnVzdC1wYy1zZGsgIitULlBfVmVuZG9yX0NvbnRhaW5lcikuaHRtbCgiIiksYi5pc1YyVGVtcGxhdGV8fF8ucGNOYW1lIT09aXR8fChlPUQudmVuZG9ycy52ZW5kb3JUZW1wbGF0ZS5xdWVyeVNlbGVjdG9yQWxsKFQuUF9BY2NfSGVhZGVyKSwoZT1fLmxlZ0ludFNldHRpbmdzLlBBbGxvd0xJJiZfLmlzSWFiMm9ydjJUZW1wbGF0ZT9lWzBdOmVbMV0pLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoZSkpfSxpLnByb3RvdHlwZS5jYW5jZWxWZW5kb3JGaWx0ZXI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9bSgiI29uZXRydXN0LXBjLXNkayAuY2F0ZWdvcnktZmlsdGVyLWhhbmRsZXIiKS5lbCx0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBvPWVbdF0uZ2V0QXR0cmlidXRlKCJkYXRhLXB1cnBvc2VpZCIpLG89MDw9RC5maWx0ZXJCeUlBQkNhdGVnb3JpZXMuaW5kZXhPZihvKTt2LnNldENoZWNrZWRBdHRyaWJ1dGUobnVsbCxlW3RdLG8pfX0saS5wcm90b3R5cGUuYXR0YWNoVmVuZG9yRGlzY2xvc3VyZT1mdW5jdGlvbihlLHQpe3ZhciBvPSIiO3QuY29va2llTWF4QWdlJiYobys9dGhpcy5nZXRIZWFkaW5nRWxlbWVudChPLlBDZW50ZXJWZW5kb3JMaXN0TGlmZXNwYW4rIiA6IiwiNSIpKSxvKz0iPHNwYW4+ICIrdC5jb29raWVNYXhBZ2UrIjwvc3Bhbj4iLHQudXNlc05vbkNvb2tpZUFjY2VzcyYmKG8rPSI8cD4iK08uUENlbnRlclZlbmRvckxpc3ROb25Db29raWVVc2FnZSsiPC9wPiIpLGUuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChvKX0saS5wcm90b3R5cGUudXBkYXRlVmVuZG9yRmlsdGVyTGlzdD1mdW5jdGlvbigpe2Zvcih2YXIgZT1tKCIjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1maWx0ZXItaGFuZGxlciIpLmVsLHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIG8sbj1lW3RdLmdldEF0dHJpYnV0ZSgiZGF0YS1wdXJwb3NlaWQiKTtlW3RdLmNoZWNrZWQmJkQuZmlsdGVyQnlJQUJDYXRlZ29yaWVzLmluZGV4T2Yobik8MD9ELmZpbHRlckJ5SUFCQ2F0ZWdvcmllcy5wdXNoKG4pOiFlW3RdLmNoZWNrZWQmJi0xPEQuZmlsdGVyQnlJQUJDYXRlZ29yaWVzLmluZGV4T2YobikmJihvPUQuZmlsdGVyQnlJQUJDYXRlZ29yaWVzLEQuZmlsdGVyQnlJQUJDYXRlZ29yaWVzLnNwbGljZShvLmluZGV4T2YobiksMSkpfXJldHVybiBELmZpbHRlckJ5SUFCQ2F0ZWdvcmllc30saS5wcm90b3R5cGUuc2F2ZVZlbmRvclN0YXR1cz1mdW5jdGlvbihlKXt2YXIgdD1ELnZlbmRvcnMsbz1ELm9uZVRydXN0SUFCQ29uc2VudCxlPSgoZT12b2lkIDA9PT1lPyExOmUpfHwoby5wdXJwb3NlPXQuc2VsZWN0ZWRQdXJwb3NlLnNsaWNlKCksby5zcGVjaWFsRmVhdHVyZXM9dC5zZWxlY3RlZFNwZWNpYWxGZWF0dXJlcy5zbGljZSgpKSxvLmxlZ2ltYXRlSW50ZXJlc3Q9dC5zZWxlY3RlZExlZ0ludC5zbGljZSgpLG8udmVuZG9ycz10LnNlbGVjdGVkVmVuZG9ycy5zbGljZSgpLG8ubGVnSW50VmVuZG9ycz10LnNlbGVjdGVkTGVnSW50VmVuZG9ycy5zbGljZSgpLEQuYWRkdGxWZW5kb3JzKTtlLnZlbmRvckNvbnNlbnQ9T2JqZWN0LmtleXMoZS52ZW5kb3JTZWxlY3RlZCl9LGkucHJvdG90eXBlLnVwZGF0ZUlhYlZhcmlhYmxlUmVmZXJlbmNlPWZ1bmN0aW9uKCl7dmFyIGU9RC5vbmVUcnVzdElBQkNvbnNlbnQsdD1ELnZlbmRvcnMsbz0odC5zZWxlY3RlZFB1cnBvc2U9ZS5wdXJwb3NlLnNsaWNlKCksdC5zZWxlY3RlZExlZ0ludD1lLmxlZ2ltYXRlSW50ZXJlc3Quc2xpY2UoKSx0LnNlbGVjdGVkVmVuZG9ycz1lLnZlbmRvcnMuc2xpY2UoKSx0LnNlbGVjdGVkTGVnSW50VmVuZG9ycz1lLmxlZ0ludFZlbmRvcnMuc2xpY2UoKSx0LnNlbGVjdGVkU3BlY2lhbEZlYXR1cmVzPWUuc3BlY2lhbEZlYXR1cmVzLnNsaWNlKCksRC5hZGR0bFZlbmRvcnMpO28udmVuZG9yU2VsZWN0ZWQ9e30sby52ZW5kb3JDb25zZW50LmZvckVhY2goZnVuY3Rpb24oZSl7by52ZW5kb3JTZWxlY3RlZFtlXT0hMH0pfSxpLnByb3RvdHlwZS5hbGxvd0FsbGhhbmRsZXI9ZnVuY3Rpb24oKXtGcy5pbml0aWFsaXplSUFCRGF0YSghMCwhMSl9LGkucHJvdG90eXBlLnJlamVjdEFsbEhhbmRsZXI9ZnVuY3Rpb24oZSl7RnMuaW5pdGlhbGl6ZUlBQkRhdGEoITEsITAsZT12b2lkIDA9PT1lPyExOmUpfSxpLnByb3RvdHlwZS5wb3B1bGF0ZUFkZHRsVmVuZG9ycz1mdW5jdGlvbihlKXt2YXIgdCxvLG49dGhpcy5nZXRBcnJvd0VsZW1lbnQoKSxyPXRoaXMuc2V0dXBJQUJBY2NvcmRpb24obiksaT10aGlzLnNldHVwR29vZ2xlVmVuZG9yc0FjY29yZGlvbihuLHIpLHM9dGhpcy5wcmVwYXJlVmVuZG9yVGVtcGxhdGUoKTtmb3IodCBpbiBlKWVbdF0mJihvPXRoaXMuY3JlYXRlQWRkaXRpb25hbFZlbmRvckl0ZW0ocyx0LGVbdF0pLG0oaS5xdWVyeVNlbGVjdG9yKCIjb3QtYWRkdGwtdmVubHN0IikpLmFwcGVuZChvKSk7bSh0aGlzLkxTVF9DTlRfQ09MVU1OX1NFTEVDVE9SKS5hcHBlbmQoaSksbSgiI29uZXRydXN0LXBjLXNkayIpLm9uKCJjbGljayIsIiNvdC1wYy1sc3QgLm90LWFjYy1jbnRyID4gaW5wdXQiLGZ1bmN0aW9uKGUpe3Yuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLGUudGFyZ2V0LGUudGFyZ2V0LmNoZWNrZWQpfSksdGhpcy5zaG93Q29uc2VudEhlYWRlcigpfSxpLnByb3RvdHlwZS5zZXR1cElBQkFjY29yZGlvbj1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWwtYWxsLWNoa2JveCIpLG89dC5jbG9uZU5vZGUoITApLHQ9KHYucmVtb3ZlQ2hpbGQoby5xdWVyeVNlbGVjdG9yKCIjb3Qtc2VsYWxsLWhvc3RjbnRyIikpLHYucmVtb3ZlQ2hpbGQodC5xdWVyeVNlbGVjdG9yKCIjb3Qtc2VsYWxsLXZlbmNudHIiKSksdi5yZW1vdmVDaGlsZCh0LnF1ZXJ5U2VsZWN0b3IoIiNvdC1zZWxhbGwtbGljbnRyIikpLE4uYWNjb3JkaW9uRWwuY2xvbmVOb2RlKCEwKSk7cmV0dXJuIHQuY2xhc3NMaXN0LmFkZCgib3QtaWFiLWFjYyIpLHQucXVlcnlTZWxlY3RvcihnLkFDQ19IRFJfQ0xBU1MpLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlRW5kIixlLmNsb25lTm9kZSghMCkpLHQucXVlcnlTZWxlY3RvcihnLkFDQ19IRFJfQ0xBU1MpLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlRW5kIixTLmdldElubmVySHRtbENvbnRlbnQodGhpcy5nZXRIZWFkaW5nRWxlbWVudChPLlBDSUFCVmVuZG9yc1RleHQsIjQiLHRoaXMuVkVOX1RJVExFX0NMQVNTKSkpLHQucXVlcnlTZWxlY3RvcigiLm90LWFjYy1oZHIiKS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZUVuZCIsbyksdC5xdWVyeVNlbGVjdG9yKHRoaXMuQUNDX1RYVCkuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVFbmQiLG0oIiNvdC12ZW4tbHN0IikuZWxbMF0pLG0odGhpcy5MU1RfQ05UX0NPTFVNTl9TRUxFQ1RPUikuYXBwZW5kKHQpLHQucXVlcnlTZWxlY3RvcigiYnV0dG9uIikuc2V0QXR0cmlidXRlKHRoaXMuQVJJQV9MQUJFTF9BVFRSSUJVVEUsTy5QQ0lBQlZlbmRvcnNUZXh0KSx0aGlzLmlhYkFjY0luaXQ9ITAsb30saS5wcm90b3R5cGUuc2V0dXBHb29nbGVWZW5kb3JzQWNjb3JkaW9uPWZ1bmN0aW9uKGUsdCl7dmFyIHQ9dC5jbG9uZU5vZGUoITApLG89KHYucmVtb3ZlQ2hpbGQodC5xdWVyeVNlbGVjdG9yKCIjb3Qtc2VsYWxsLWxpY250ciIpKSx0LnF1ZXJ5U2VsZWN0b3IoIi5vdC1jaGtib3giKS5pZD0ib3Qtc2VsYWxsLWFkdGx2ZW5jbnRyIix0LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuaWQ9Im90LXNlbGFsbC1hZHRsdmVuLWhhbmRsZXIiLHQucXVlcnlTZWxlY3RvcigibGFiZWwiKS5zZXRBdHRyaWJ1dGUoImZvciIsIm90LXNlbGFsbC1hZHRsdmVuLWhhbmRsZXIiKSxOLmFjY29yZGlvbkVsLmNsb25lTm9kZSghMCkpO3JldHVybiBvLnF1ZXJ5U2VsZWN0b3IoZy5BQ0NfSERSX0NMQVNTKS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZUVuZCIsZS5jbG9uZU5vZGUoITApKSxvLnF1ZXJ5U2VsZWN0b3IoZy5BQ0NfSERSX0NMQVNTKS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZUVuZCIsUy5nZXRJbm5lckh0bWxDb250ZW50KHRoaXMuZ2V0SGVhZGluZ0VsZW1lbnQoTy5QQ0dvb2dsZVZlbmRvcnNUZXh0LCI0Iix0aGlzLlZFTl9USVRMRV9DTEFTUykpKSxvLnF1ZXJ5U2VsZWN0b3IoZy5BQ0NfSERSX0NMQVNTKS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZUVuZCIsdCksby5xdWVyeVNlbGVjdG9yKHRoaXMuQUNDX1RYVCkuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVFbmQiLFMuZ2V0SW5uZXJIdG1sQ29udGVudCgiPHVsIGlkPSdvdC1hZGR0bC12ZW5sc3QnPjwvdWw+IikpLG8uY2xhc3NMaXN0LmFkZCgib3QtYWR0bHYtYWNjIiksby5xdWVyeVNlbGVjdG9yKCJidXR0b24iKS5zZXRBdHRyaWJ1dGUodGhpcy5BUklBX0xBQkVMX0FUVFJJQlVURSxPLlBDR29vZ2xlVmVuZG9yc1RleHQpLG8ucXVlcnlTZWxlY3RvcigiI290LXNlbGFsbC1hZHRsdmVuLWhhbmRsZXIiKS5zZXRBdHRyaWJ1dGUodGhpcy5BUklBX0xBQkVMX0FUVFJJQlVURSxPLlBDR29vZ2xlVmVuZG9yc1RleHQrIiwgIitPLlBDZW50ZXJTZWxlY3RBbGxWZW5kb3JzVGV4dCksb30saS5wcm90b3R5cGUucHJlcGFyZVZlbmRvclRlbXBsYXRlPWZ1bmN0aW9uKCl7dmFyIGU9RC52ZW5kb3JzLnZlbmRvclRlbXBsYXRlLmNsb25lTm9kZSghMCk7cmV0dXJuIGUucXVlcnlTZWxlY3RvcigiYnV0dG9uIikuY2xhc3NMaXN0LnJlbW92ZSgib3QtdmVuLWJveCIpLGUucXVlcnlTZWxlY3RvcigiYnV0dG9uIikuY2xhc3NMaXN0LmFkZCgib3QtYWRkdGwtdmVuYm94Iiksdi5yZW1vdmVDaGlsZChlLnF1ZXJ5U2VsZWN0b3IodGhpcy5BQ0NfVFhUKSksZX0saS5wcm90b3R5cGUuY3JlYXRlQWRkaXRpb25hbFZlbmRvckl0ZW09ZnVuY3Rpb24oZSx0LG8pe3ZhciBlPWUuY2xvbmVOb2RlKCEwKSxuPW8ubmFtZTtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKFQuUF9WZW5fTmFtZSkuaW5uZXJUZXh0PW4sdi5zZXRIdG1sQXR0cmlidXRlcyhlLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpLHtpZDoiQWR0bC1JQUIiK3R9KSx0aGlzLnNldHVwVmVuZG9yUHJpdmFjeUxpbmsoZSxvLnBvbGljeVVybCxuKSx0aGlzLnNldHVwVmVuZG9yVG9nZ2xlKGUsdCxuKSx0aGlzLmFkZFZlbmRvckFjY29yZGlvbkFycm93cyhlKSx0aGlzLmNoZWNrSWZMZWdMaW5rUmVtb3ZlKGUpLGV9LGkucHJvdG90eXBlLnNldHVwVmVuZG9yUHJpdmFjeUxpbms9ZnVuY3Rpb24oZSx0LG8pe2U9ZS5xdWVyeVNlbGVjdG9yKFQuUF9WZW5fTGluayk7di5zZXRIdG1sQXR0cmlidXRlcyhlLHtocmVmOnQscmVsOnRoaXMuVEFSR0VUX0JMQU5LX1JFTF9OT09QRU5FUix0YXJnZXQ6Il9ibGFuayJ9KSxlLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoTy5QQ2VudGVyVmlld1ByaXZhY3lQb2xpY3lUZXh0KyImbmJzcDs8c3BhbiBjbGFzcz0nb3Qtc2Nybi1yZHInPiIrbysiICIrTy5OZXdXaW5UeHQrIjwvc3Bhbj4iKSxPLkJhbm5lclJlcXVpcmVFeHRlcm5hbExpbmtzJiZ0aGlzLmFkZEV4dGVybmFsTGlua0ljb24oZSl9LGkucHJvdG90eXBlLmFkZEV4dGVybmFsTGlua0ljb249ZnVuY3Rpb24oZSl7dmFyIHQ7Yi5mcC5DTVBJY29uU3ByaXRlJiZPLk9URXh0ZXJuYWxMaW5rTG9nbyYmIU8uQmFubmVyRXh0ZXJuYWxMaW5rc0xvZ28/aC5oYXNBZGphY2VudEV4dGVybmFsTGlua1N2ZyhlKXx8KHQ9aC51cGRhdGVDb3JyZWN0VXJsKE8uT1RFeHRlcm5hbExpbmtMb2dvKSx0PU8uQmFubmVyRXh0ZXJuYWxMaW5rc0xvZ28/aC51cGRhdGVDb3JyZWN0VXJsKE8uQmFubmVyRXh0ZXJuYWxMaW5rc0xvZ28pOnQsdD1uZXcgVVJMKHQsd2luZG93LmxvY2F0aW9uLm9yaWdpbikucGF0aG5hbWUuc3BsaXQoIi8iKS5wb3AoKS5zcGxpdCgiLiIpLnNoaWZ0KCksZS5pbnNlcnRBZGphY2VudEhUTUwoImFmdGVyZW5kIixTLmdldElubmVySHRtbENvbnRlbnQoIjxzdmcgY2xhc3M9J290LWV4dC1sbmsnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPScjIit0KyInPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IikpKTplLmNsYXNzTGlzdC5hZGQodGhpcy5FWFRfTElOS19DTEFTUyl9LGkucHJvdG90eXBlLnNldHVwVmVuZG9yVG9nZ2xlPWZ1bmN0aW9uKGUsdCxvKXt2YXIgbj1OLmNoa2JveEVsLmNsb25lTm9kZSghMCkscj0obi5jbGFzc0xpc3QucmVtb3ZlKCJvdC12ZW4tY3RnbCIpLG4uY2xhc3NMaXN0LmFkZCgib3QtdmVuLWFkdGxjdGdsIiksQm9vbGVhbihELmFkZHRsVmVuZG9ycy52ZW5kb3JTZWxlY3RlZFt0XSkpLGk9bi5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLHM9KGkuY2xhc3NMaXN0LmFkZCgib3QtYWRkdGx2ZW4tY2hrYm94LWhhbmRsZXIiKSxuLnF1ZXJ5U2VsZWN0b3IodGhpcy5MQUJFTF9TVEFUVVMpKSxzPShPLlBDU2hvd0NvbnNlbnRMYWJlbHM/cy5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KHI/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCk6di5yZW1vdmVDaGlsZChzKSx2LnNldENoZWNrZWRBdHRyaWJ1dGUoIiIsaSxyKSx2LnNldEh0bWxBdHRyaWJ1dGVzKGkse2lkOiJvdC1hZGR0bHZlbi1jaGtib3gtIit0LCJhZGR0bC12aWQiOnQsImFyaWEtbGFiZWwiOm99KSxuLnF1ZXJ5U2VsZWN0b3IoImxhYmVsIikuc2V0QXR0cmlidXRlKCJmb3IiLCJvdC1hZGR0bHZlbi1jaGtib3gtIit0KSxuLnF1ZXJ5U2VsZWN0b3IoVC5QX0xhYmVsX1R4dCkudGV4dENvbnRlbnQ9byxlLnF1ZXJ5U2VsZWN0b3IoVC5QX1RnbF9DbnRyKSk7bShzKS5hcHBlbmQobil9LGkucHJvdG90eXBlLmFkZFZlbmRvckFjY29yZGlvbkFycm93cz1mdW5jdGlvbihlKXtlLnF1ZXJ5U2VsZWN0b3IoVC5QX1RnbF9DbnRyKS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsTi5hcnJvd0VsLmNsb25lTm9kZSghMCkpLE8uUENBY2NvcmRpb25TdHlsZSE9PWFlLkNhcmV0JiZlLnF1ZXJ5U2VsZWN0b3IoIi5vdC12ZW4taGRyIikuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmViZWdpbiIsTi5wbHVzTWludXNFbC5jbG9uZU5vZGUoITApKX0saS5wcm90b3R5cGUucG9wdWxhdGVHZW5lcmFsVmVuZG9ycz1mdW5jdGlvbigpe3ZhciBlLHQsbyxuLHIsaT10aGlzLHM9Ty5HZW5lcmFsVmVuZG9ycyxhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5vdC1ndi1hY2MiKSxsPUJvb2xlYW4oYSk7cy5sZW5ndGg/KHRoaXMuaGFuZGxlVmVuZG9yc1ByZXNlbmNlKGEpLGU9dGhpcy5nZXRBcnJvd0VsZW1lbnQoKSx0aGlzLmlhYkFjY0luaXR8fHRoaXMuYWRkSWFiQWNjb3JkaW9uKCksdD10aGlzLmNyZWF0ZVNlbGVjdEFsbENoZWNrYm94KCksbz10aGlzLmNyZWF0ZUdlbmVyYWxWZW5kb3JzQWNjb3JkaW9uKGUsdCksbj10aGlzLmNyZWF0ZVZlbmRvclRlbXBsYXRlKCksbCYmbSgiIitULlBfR3Zlbl9MaXN0KS5odG1sKCIiKSxyPSEwLHMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1pLmNyZWF0ZVZlbmRvckVsZW1lbnQoZSxuKTttKGw/IiIrVC5QX0d2ZW5fTGlzdDpvLnF1ZXJ5U2VsZWN0b3IoIiIrVC5QX0d2ZW5fTGlzdCkpLmFwcGVuZCh0KSxMby5pc0dlblZlblBhcnRPZkFsd2F5c0FjdGl2ZUdyb3VwKGUuVmVuZG9yQ3VzdG9tSWQpfHwocj0hMSl9KSxsfHxtKHRoaXMuTFNUX0NOVF9DT0xVTU5fU0VMRUNUT1IpLmFwcGVuZChvKSxtKCIjb25ldHJ1c3QtcGMtc2RrIikub24oImNsaWNrIiwiI290LXBjLWxzdCAub3QtYWNjLWNudHIgPiBpbnB1dCIsZnVuY3Rpb24oZSl7cmV0dXJuIHYuc2V0Q2hlY2tlZEF0dHJpYnV0ZShudWxsLGUudGFyZ2V0LGUudGFyZ2V0LmNoZWNrZWQpfSksdGhpcy5zaG93Q29uc2VudEhlYWRlcigpLHImJnYuc2V0RGlzYWJsZWRBdHRyaWJ1dGUoIiNvdC1zZWxhbGwtZ252ZW4taGFuZGxlciIsbnVsbCwhMCkpOnRoaXMuaGFuZGxlTm9WZW5kb3JzKGEpfSxpLnByb3RvdHlwZS5oYW5kbGVOb1ZlbmRvcnM9ZnVuY3Rpb24oZSl7dGhpcy5oYXNHZW5WZW5kb3JzPSExLGUmJm0oZSkuaGlkZSgpfSxpLnByb3RvdHlwZS5oYW5kbGVWZW5kb3JzUHJlc2VuY2U9ZnVuY3Rpb24oZSl7dGhpcy5oYXNHZW5WZW5kb3JzPSEwLGUmJm0oZSkuc2hvdygpfSxpLnByb3RvdHlwZS5nZXRBcnJvd0VsZW1lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4oTy5QQ0FjY29yZGlvblN0eWxlPT09YWUuQ2FyZXQ/Ti5hcnJvd0VsOk4ucGx1c01pbnVzRWwpLmNsb25lTm9kZSghMCl9LGkucHJvdG90eXBlLmNyZWF0ZVNlbGVjdEFsbENoZWNrYm94PWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdD0oZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwib3Qtc2VsLWFsbC1jaGtib3giKSxOLmNoa2JveEVsLmNsb25lTm9kZSghMCkpO3JldHVybiB0LmlkPSJvdC1zZWxhbGwtZ252ZW5jbnRyIix0LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuaWQ9Im90LXNlbGFsbC1nbnZlbi1oYW5kbGVyIix0LnF1ZXJ5U2VsZWN0b3IoImxhYmVsIikuc2V0QXR0cmlidXRlKCJmb3IiLCJvdC1zZWxhbGwtZ252ZW4taGFuZGxlciIpLG0oZSkuYXBwZW5kKHQpLGV9LGkucHJvdG90eXBlLmNyZWF0ZUdlbmVyYWxWZW5kb3JzQWNjb3JkaW9uPWZ1bmN0aW9uKGUsdCl7dmFyIG89Ti5hY2NvcmRpb25FbC5jbG9uZU5vZGUoITApLG49by5xdWVyeVNlbGVjdG9yKGcuQUNDX0hEUl9DTEFTUyk7cmV0dXJuIG4uaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLGUuY2xvbmVOb2RlKCEwKSksbi5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsUy5nZXRJbm5lckh0bWxDb250ZW50KHRoaXMuZ2V0SGVhZGluZ0VsZW1lbnQoTy5QQ2VudGVyR2VuZXJhbFZlbmRvcnNUZXh0LCI0Iix0aGlzLlZFTl9USVRMRV9DTEFTUykpKSxPLkdlblZlbk9wdE91dCYmbi5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsdCksby5xdWVyeVNlbGVjdG9yKHRoaXMuQUNDX1RYVCkuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLFMuZ2V0SW5uZXJIdG1sQ29udGVudCgiPHVsIGlkPSdvdC1nbi12ZW5sc3QnPjwvdWw+IikpLG8uY2xhc3NMaXN0LmFkZCgib3QtZ3YtYWNjIiksby5xdWVyeVNlbGVjdG9yKCJidXR0b24iKS5zZXRBdHRyaWJ1dGUodGhpcy5BUklBX0xBQkVMX0FUVFJJQlVURSxPLlBDZW50ZXJHZW5lcmFsVmVuZG9yc1RleHQpLG99LGkucHJvdG90eXBlLmNyZWF0ZVZlbmRvclRlbXBsYXRlPWZ1bmN0aW9uKCl7dmFyIGU9RC52ZW5kb3JzLnZlbmRvclRlbXBsYXRlLmNsb25lTm9kZSghMCksdD1lLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpO3JldHVybiB0LmNsYXNzTGlzdC5yZW1vdmUoIm90LXZlbi1ib3giKSx0LmNsYXNzTGlzdC5hZGQoIm90LWd2LXZlbmJveCIpLG0oZS5xdWVyeVNlbGVjdG9yKHRoaXMuQUNDX1RYVCkpLmh0bWwoJzx1bCBjbGFzcz0ib3QtaG9zdC1vcHQiPjwvdWw+JyksZX0saS5wcm90b3R5cGUuY3JlYXRlVmVuZG9yRWxlbWVudD1mdW5jdGlvbihlLHQpe3ZhciBvLG49dGhpcyxyPXRoaXMubWFwR2VuVmVuZG9yVG9Ib3N0Rm9ybWF0KGUpLGk9dC5jbG9uZU5vZGUoITApLHQ9ZS5WZW5kb3JDdXN0b21JZCxzPWUuTmFtZSxhPShpLnF1ZXJ5U2VsZWN0b3IoVC5QX1Zlbl9OYW1lKS5pbm5lclRleHQ9cyxpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpKSxhPSh2LnNldEh0bWxBdHRyaWJ1dGVzKGEse2lkOiJHbi0iK3R9KSxpLnF1ZXJ5U2VsZWN0b3IoVC5QX1Zlbl9MaW5rKSk7cmV0dXJuIGUuUHJpdmFjeVBvbGljeVVybD8odi5zZXRIdG1sQXR0cmlidXRlcyhhLHtocmVmOmUuUHJpdmFjeVBvbGljeVVybCxyZWw6dGhpcy5UQVJHRVRfQkxBTktfUkVMX05PT1BFTkVSLHRhcmdldDoiX2JsYW5rIn0pLGEuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChPLlBDR1ZlblBvbGljeVR4dCsiJm5ic3A7PHNwYW4gY2xhc3M9J290LXNjcm4tcmRyJz4iK3MrIiAiK08uTmV3V2luVHh0KyI8L3NwYW4+IiksTy5CYW5uZXJSZXF1aXJlRXh0ZXJuYWxMaW5rcyYmKGIuZnAuQ01QSWNvblNwcml0ZSYmTy5PVEV4dGVybmFsTGlua0xvZ28mJiFPLkJhbm5lckV4dGVybmFsTGlua3NMb2dvPyhvPWgudXBkYXRlQ29ycmVjdFVybChPLk9URXh0ZXJuYWxMaW5rTG9nbyksbz1PLkJhbm5lckV4dGVybmFsTGlua3NMb2dvP2gudXBkYXRlQ29ycmVjdFVybChPLkJhbm5lckV4dGVybmFsTGlua3NMb2dvKTpvLG89IjxzdmcgY2xhc3M9J290LWV4dC1sbmsnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9JyMiK25ldyBVUkwobyx3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5wYXRobmFtZS5zcGxpdCgiLyIpLnBvcCgpLnNwbGl0KCIuIikuc2hpZnQoKSsiJz48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IixoLmhhc0FkamFjZW50RXh0ZXJuYWxMaW5rU3ZnKGEpfHxhLmluc2VydEFkamFjZW50SFRNTCgiYWZ0ZXJlbmQiLFMuZ2V0SW5uZXJIdG1sQ29udGVudChvKSkpOmEuY2xhc3NMaXN0LmFkZCh0aGlzLkVYVF9MSU5LX0NMQVNTKSkpOmEuY2xhc3NMaXN0LmFkZCgib3QtaGlkZSIpLHRoaXMuYWRkRGVzY3JpcHRpb25FbGVtZW50KGEsZS5EZXNjcmlwdGlvbiksTy5HZW5WZW5PcHRPdXQmJnRoaXMuYWRkQ29uc2VudFRvZ2dsZShpLGUsdCxzLHIpLE8uUENBY2NvcmRpb25TdHlsZSE9PWFlLkNhcmV0JiZpLnF1ZXJ5U2VsZWN0b3IoIi5vdC12ZW4taGRyIikuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmViZWdpbiIsTi5wbHVzTWludXNFbC5jbG9uZU5vZGUoITApKSxlLkNvb2tpZXMubGVuZ3RofHxtKGkpLmFkZENsYXNzKCJvdC1oaWRlLWFjYyIpLGUuQ29va2llcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2U9bi5nZXRDb29raWVFbGVtZW50KGUscik7bShpLnF1ZXJ5U2VsZWN0b3IoIi5vdC1ob3N0LW9wdCIpKS5hcHBlbmQoZSl9KSx0aGlzLmNoZWNrSWZMZWdMaW5rUmVtb3ZlKGkpLGl9LGkucHJvdG90eXBlLmFkZENvbnNlbnRUb2dnbGU9ZnVuY3Rpb24oZSx0LG8sbixyKXt2YXIgaT1OLmNoa2JveEVsLmNsb25lTm9kZSghMCkscz0oaS5jbGFzc0xpc3QucmVtb3ZlKCJvdC12ZW4tY3RnbCIpLGkuY2xhc3NMaXN0LmFkZCgib3QtdmVuLWd2Y3RnbCIpLEJvb2xlYW4oRC5nZW5WZW5kb3JzQ29uc2VudFtvXSkpLGE9aS5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLGw9KGEuY2xhc3NMaXN0LmFkZCgib3QtZ252ZW4tY2hrYm94LWhhbmRsZXIiKSxpLnF1ZXJ5U2VsZWN0b3IodGhpcy5MQUJFTF9TVEFUVVMpKSxsPShPLlBDU2hvd0NvbnNlbnRMYWJlbHM/bC5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KHM/Ty5QQ0FjdGl2ZVRleHQ6Ty5QQ0luYWN0aXZlVGV4dCk6di5yZW1vdmVDaGlsZChsKSx2LnNldENoZWNrZWRBdHRyaWJ1dGUoIiIsYSxzKSx2LnNldEh0bWxBdHRyaWJ1dGVzKGEse2lkOiJvdC1nbnZlbi1jaGtib3gtIitvLCJnbi12aWQiOm8sImFyaWEtbGFiZWwiOm59KSxMby5pc0dlblZlblBhcnRPZkFsd2F5c0FjdGl2ZUdyb3VwKG8pJiZ2LnNldERpc2FibGVkQXR0cmlidXRlKG51bGwsYSwhMCksaS5xdWVyeVNlbGVjdG9yKCJsYWJlbCIpLnNldEF0dHJpYnV0ZSgiZm9yIiwib3QtZ252ZW4tY2hrYm94LSIrbyksaS5xdWVyeVNlbGVjdG9yKFQuUF9MYWJlbF9UeHQpLnRleHRDb250ZW50PW4sZS5xdWVyeVNlbGVjdG9yKFQuUF9UZ2xfQ250cikpO20obCkuYXBwZW5kKGkpLGwuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLE4uYXJyb3dFbC5jbG9uZU5vZGUoITApKX0saS5wcm90b3R5cGUuYWRkSWFiQWNjb3JkaW9uPWZ1bmN0aW9uKCl7dmFyIGU9KE8uUENBY2NvcmRpb25TdHlsZT09PWFlLkNhcmV0P04uYXJyb3dFbDpOLnBsdXNNaW51c0VsKS5jbG9uZU5vZGUoITApLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LXBjLXNkayAub3Qtc2VsLWFsbC1jaGtib3giKSxvPXQuY2xvbmVOb2RlKCEwKSx0PSh2LnJlbW92ZUNoaWxkKG8ucXVlcnlTZWxlY3RvcigiI290LXNlbGFsbC1ob3N0Y250ciIpKSx2LnJlbW92ZUNoaWxkKHQucXVlcnlTZWxlY3RvcigiI290LXNlbGFsbC12ZW5jbnRyIikpLHYucmVtb3ZlQ2hpbGQodC5xdWVyeVNlbGVjdG9yKCIjb3Qtc2VsYWxsLWxpY250ciIpKSxOLmFjY29yZGlvbkVsLmNsb25lTm9kZSghMCkpO3QuY2xhc3NMaXN0LmFkZCgib3QtaWFiLWFjYyIpLHQucXVlcnlTZWxlY3RvcihnLkFDQ19IRFJfQ0xBU1MpLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlRW5kIixlLmNsb25lTm9kZSghMCkpLHQucXVlcnlTZWxlY3RvcihnLkFDQ19IRFJfQ0xBU1MpLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlRW5kIixTLmdldElubmVySHRtbENvbnRlbnQodGhpcy5nZXRIZWFkaW5nRWxlbWVudChPLlBDSUFCVmVuZG9yc1RleHQsIjQiLHRoaXMuVkVOX1RJVExFX0NMQVNTKSkpLHQucXVlcnlTZWxlY3RvcihnLkFDQ19IRFJfQ0xBU1MpLmluc2VydEFkamFjZW50RWxlbWVudCgiYmVmb3JlRW5kIixvKSx0LnF1ZXJ5U2VsZWN0b3IodGhpcy5BQ0NfVFhUKS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZUVuZCIsbSgiI290LXZlbi1sc3QiKS5lbFswXSksbSh0aGlzLkxTVF9DTlRfQ09MVU1OX1NFTEVDVE9SKS5hcHBlbmQodCksdC5xdWVyeVNlbGVjdG9yKCJidXR0b24iKS5zZXRBdHRyaWJ1dGUodGhpcy5BUklBX0xBQkVMX0FUVFJJQlVURSxPLlBDSUFCVmVuZG9yc1RleHQpLHRoaXMuaWFiQWNjSW5pdD0hMH0saS5wcm90b3R5cGUuc2hvd0NvbnNlbnRIZWFkZXI9ZnVuY3Rpb24oKXt2YXIgZT1fLmxlZ0ludFNldHRpbmdzO20oIiNvbmV0cnVzdC1wYy1zZGsgLm90LXNlbC1hbGwtaGRyIikuc2hvdygpLGUuUEFsbG93TEkmJiFlLlBTaG93TGVnSW50QnRufHxtKCIjb25ldHJ1c3QtcGMtc2RrIC5vdC1saS1oZHIiKS5oaWRlKCl9LGkucHJvdG90eXBlLnNldEJhY2tCdG5UeHQ9ZnVuY3Rpb24oKXsoYi5pc1YyVGVtcGxhdGU/KG0oVC5QX1ZlbmRvcl9MaXN0KyIgLmJhY2stYnRuLWhhbmRsZXIiKS5hdHRyKHRoaXMuQVJJQV9MQUJFTF9BVFRSSUJVVEUsTy5QQ2VudGVyQmFja1RleHQpLG0oVC5QX1ZlbmRvcl9MaXN0KyIgLmJhY2stYnRuLWhhbmRsZXIgdGl0bGUiKSk6bShULlBfVmVuZG9yX0xpc3QrIiAuYmFjay1idG4taGFuZGxlciAucGMtYmFjay1idXR0b24tdGV4dCIpKS5odG1sKE8uUENlbnRlckJhY2tUZXh0KX0saS5wcm90b3R5cGUuZ2V0Q29va2llRWxlbWVudD1mdW5jdGlvbihlLHQpe3ZhciBvPUQuaG9zdHMuaG9zdENvb2tpZVRlbXBsYXRlLmNsb25lTm9kZSghMCksbj1vLnF1ZXJ5U2VsZWN0b3IoImRsIikscj1uLnF1ZXJ5U2VsZWN0b3IoImRpdiIpLmNsb25lTm9kZSghMCksaT0oci5jbGFzc0xpc3QucmVtb3ZlKCJjb29raWUtbmFtZS1jb250YWluZXIiKSxuLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoIiIpLGUuTmFtZSkscz0oTy5BZGRMaW5rc1RvQ29va2llcGVkaWEmJnQuaXNGaXJzdFBhcnR5JiYoaT1oLmdldENvb2tpZUxhYmVsKGUsTy5BZGRMaW5rc1RvQ29va2llcGVkaWEpKSxyLmNsb25lTm9kZSghMCkpO3JldHVybiBzLmNsYXNzTGlzdC5hZGQoVC5QX2NfTmFtZSkscy5xdWVyeVNlbGVjdG9yKHRoaXMuTlRIX0NISUxEX09ORV9TRUxFQ1RPUikuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChPLnBjQ0xpc3ROYW1lKSxzLnF1ZXJ5U2VsZWN0b3IodGhpcy5OVEhfQ0hJTERfVFdPX1NFTEVDVE9SKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KGkpLG4uYXBwZW5kQ2hpbGQocyksTy5wY1Nob3dDb29raWVIb3N0JiYoKHM9ci5jbG9uZU5vZGUoITApKS5jbGFzc0xpc3QuYWRkKFQuUF9jX0hvc3QpLHMucXVlcnlTZWxlY3Rvcih0aGlzLk5USF9DSElMRF9PTkVfU0VMRUNUT1IpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoTy5wY0NMaXN0SG9zdCkscy5xdWVyeVNlbGVjdG9yKHRoaXMuTlRIX0NISUxEX1RXT19TRUxFQ1RPUikuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChlLkhvc3QpLG4uYXBwZW5kQ2hpbGQocykpLE8ucGNTaG93Q29va2llRHVyYXRpb24mJigocz1yLmNsb25lTm9kZSghMCkpLmNsYXNzTGlzdC5hZGQoVC5QX2NfRHVyYXRpb24pLHMucXVlcnlTZWxlY3Rvcih0aGlzLk5USF9DSElMRF9PTkVfU0VMRUNUT1IpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoTy5wY0NMaXN0RHVyYXRpb24pLHMucXVlcnlTZWxlY3Rvcih0aGlzLk5USF9DSElMRF9UV09fU0VMRUNUT1IpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoZS5Jc1Nlc3Npb24/Ty5MaWZlc3BhblR5cGVUZXh0OmguZ2V0RHVyYXRpb24oZSkpLG4uYXBwZW5kQ2hpbGQocykpLE8ucGNTaG93Q29va2llVHlwZSYmKGk9dC5UeXBlPT09Q2UuR2VuVmVuZG9yPyFlLmlzVGhpcmRQYXJ0eTp0LmlzRmlyc3RQYXJ0eSwocz1yLmNsb25lTm9kZSghMCkpLmNsYXNzTGlzdC5hZGQoVC5QX2NfVHlwZSkscy5xdWVyeVNlbGVjdG9yKHRoaXMuTlRIX0NISUxEX09ORV9TRUxFQ1RPUikuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChPLnBjQ0xpc3RUeXBlKSxzLnF1ZXJ5U2VsZWN0b3IodGhpcy5OVEhfQ0hJTERfVFdPX1NFTEVDVE9SKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KGk/Ty5maXJzdFBhcnR5VHh0Ok8udGhpcmRQYXJ0eVR4dCksbi5hcHBlbmRDaGlsZChzKSksTy5wY1Nob3dDb29raWVDYXRlZ29yeSYmKGk9dm9pZCAwLGk9dC5UeXBlPT09Q2UuR2VuVmVuZG9yP2UuY2F0ZWdvcnk6KHQuaXNGaXJzdFBhcnR5P2U6dCkuZ3JvdXBOYW1lKSYmKChzPXIuY2xvbmVOb2RlKCEwKSkuY2xhc3NMaXN0LmFkZChULlBfY19DYXRlZ29yeSkscy5xdWVyeVNlbGVjdG9yKHRoaXMuTlRIX0NISUxEX09ORV9TRUxFQ1RPUikuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChPLnBjQ0xpc3RDYXRlZ29yeSkscy5xdWVyeVNlbGVjdG9yKHRoaXMuTlRIX0NISUxEX1RXT19TRUxFQ1RPUikuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudChpKSxuLmFwcGVuZENoaWxkKHMpKSxPLnBjU2hvd0Nvb2tpZURlc2NyaXB0aW9uJiZlLmRlc2NyaXB0aW9uJiYoKHM9ci5jbG9uZU5vZGUoITApKS5jbGFzc0xpc3QuYWRkKFQuUF9jX0Rlc2MpLHMucXVlcnlTZWxlY3Rvcih0aGlzLk5USF9DSElMRF9PTkVfU0VMRUNUT1IpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoTy5wY0NMaXN0RGVzY3JpcHRpb24pLHMucXVlcnlTZWxlY3Rvcih0aGlzLk5USF9DSElMRF9UV09fU0VMRUNUT1IpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQoZS5kZXNjcmlwdGlvbiksbi5hcHBlbmRDaGlsZChzKSksb30saS5wcm90b3R5cGUuZ2V0Tm9SZXN1bHRzRm91bmQ9ZnVuY3Rpb24oZSl7ZT1ELnNob3dUcmFja2luZ1RlY2g/Ty5QQ1RlY2hOb3RGb3VuZDplP08uUENIb3N0Tm90Rm91bmQ6Ty5QQ1ZlbmRvck5vdEZvdW5kO3JldHVybiIgIitlKyIuIn0saS5wcm90b3R5cGUuZ2V0QWRkaXRpb25hbFRlY2hub2xvZ2llc0h0bWw9ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLG89Ty5BZGRpdGlvbmFsVGVjaG5vbG9naWVzQ29uZmlnLG49MDxlLkNvb2tpZXMubGVuZ3RoO3JldHVybihuPW4mJmUuQ29va2llc1swXS5Ib3N0SWQ9PT10aGlzLkZJUlNUX1BBUlRZX0NPT0tJRVNfR1JPVVBfTkFNRT8wPGUuQ29va2llc1swXS5Db29raWVzLmxlbmd0aDpuKSYmKChuPWcuZ2V0TWFpbkFjY29yZGlvbkNvbnRhaW5lcihvLlBDQ29va2llc0xhYmVsLG8uUENDb29raWVzTGFiZWwsITEpKS5jbGFzc0xpc3QuYWRkKHRoaXMuVEVDSF9DT09LSUVTX1NFTEVDVE9SKSx0LmFwcGVuZENoaWxkKG4pKSwwPGUuTG9jYWxTdG9yYWdlcy5sZW5ndGgmJigobj1nLmdldE1haW5BY2NvcmRpb25Db250YWluZXIoby5QQ0xvY2FsU3RvcmFnZUxhYmVsLG8uUENMb2NhbFN0b3JhZ2VMYWJlbCkpLmNsYXNzTGlzdC5hZGQoInRlY2gtbG9jYWwiKSxnLnNldFNlc3Npb25Mb2NhbFN0b3JhZ2VUZW1wbGF0ZShuLGUuTG9jYWxTdG9yYWdlcyxPLkFkZGl0aW9uYWxUZWNobm9sb2dpZXNDb25maWcuUENMb2NhbFN0b3JhZ2VEdXJhdGlvblRleHQpLHQuYXBwZW5kQ2hpbGQobikpLDA8ZS5TZXNzaW9uU3RvcmFnZXMubGVuZ3RoJiYoKG49Zy5nZXRNYWluQWNjb3JkaW9uQ29udGFpbmVyKG8uUENTZXNzaW9uU3RvcmFnZUxhYmVsLG8uUENTZXNzaW9uU3RvcmFnZUR1cmF0aW9uVGV4dCkpLmNsYXNzTGlzdC5hZGQoInRlY2gtc2Vzc2lvbiIpLGcuc2V0U2Vzc2lvbkxvY2FsU3RvcmFnZVRlbXBsYXRlKG4sZS5TZXNzaW9uU3RvcmFnZXMsTy5BZGRpdGlvbmFsVGVjaG5vbG9naWVzQ29uZmlnLlBDU2Vzc2lvblN0b3JhZ2VEdXJhdGlvblRleHQpLHQuYXBwZW5kQ2hpbGQobikpLHR9LGkucHJvdG90eXBlLmdldE1haW5BY2NvcmRpb25Db250YWluZXI9ZnVuY3Rpb24oZSx0LG8pe3ZvaWQgMD09PW8mJihvPSEwKTt2YXIgbj1nLmdldEFjY29yZGlvblN0eWxlRWxlbWVudCgpLHI9Ti5hY2NvcmRpb25FbC5jbG9uZU5vZGUoITApO3JldHVybiByLmNsYXNzTGlzdC5hZGQoIm90LWFkZC10ZWNoIiksci5xdWVyeVNlbGVjdG9yKGcuQUNDX0hEUl9DTEFTUykuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVFbmQiLG4pLHIucXVlcnlTZWxlY3RvcihnLkFDQ19IRFJfQ0xBU1MpLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlRW5kIixTLmdldElubmVySHRtbENvbnRlbnQodGhpcy5nZXRIZWFkaW5nRWxlbWVudChlLCI0Iix0aGlzLlZFTl9USVRMRV9DTEFTUykpKSxyLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpLnNldEF0dHJpYnV0ZSh0aGlzLkFSSUFfTEFCRUxfQVRUUklCVVRFLHQpLG8mJnIucXVlcnlTZWxlY3Rvcih0aGlzLkFDQ19UWFQpLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixTLmdldElubmVySHRtbENvbnRlbnQoJzx1bCBpZD0ib3QtaG9zdC1sc3QiIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPjwvdWw+JykpLHIuY2xvbmVOb2RlKCEwKX0saS5wcm90b3R5cGUuc2V0U2Vzc2lvbkxvY2FsU3RvcmFnZVRlbXBsYXRlPWZ1bmN0aW9uKGUsdCxvKXt2YXIgbj1ELmhvc3RzLmhvc3RUZW1wbGF0ZS5jbG9uZU5vZGUoITApLHI9KHYucmVtb3ZlQ2hpbGQobi5xdWVyeVNlbGVjdG9yKCIub3QtYSBzY2MtdHh0IikpLGUucXVlcnlTZWxlY3Rvcih0aGlzLkFDQ19UWFQrIiAiK1QuUF9Ib3N0X0NudHIpKTtyLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSxyLmNsYXNzTGlzdC5hZGQoIm90LWhvc3Qtb3B0Iik7Zm9yKHZhciBpPTAscz10O2k8cy5sZW5ndGg7aSsrKXt2YXIgYT1zW2ldLGE9Zy5nZXRTZXNzaW9uTG9jYWxTdG9yYWdlRWxlbWVudChhLG8pO3IuYXBwZW5kKGEpfX0saS5wcm90b3R5cGUuZ2V0U2Vzc2lvbkxvY2FsU3RvcmFnZUVsZW1lbnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbz1ELmhvc3RzLmhvc3RDb29raWVUZW1wbGF0ZS5jbG9uZU5vZGUoITApLG49by5xdWVyeVNlbGVjdG9yKCJkbCIpLHI9bi5xdWVyeVNlbGVjdG9yKCJkaXYiKS5jbG9uZU5vZGUoITApLGk9KHIuY2xhc3NMaXN0LnJlbW92ZSgiY29va2llLW5hbWUtY29udGFpbmVyIiksbi5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KCIiKSxnLmNyZWF0ZUtleVZhbHVlRGl2RWxlKHIsVC5QX2NfTmFtZSxPLnBjQ0xpc3ROYW1lLGUuTmFtZSkpLGk9KG4uYXBwZW5kQ2hpbGQoaSksZy5jcmVhdGVLZXlWYWx1ZURpdkVsZShyLFQuUF9jX0hvc3QsTy5wY0NMaXN0SG9zdCxlLkhvc3QpKSxpPShuLmFwcGVuZENoaWxkKGkpLGcuY3JlYXRlS2V5VmFsdWVEaXZFbGUocixULlBfY19EdXJhdGlvbixPLnBjQ0xpc3REdXJhdGlvbix0KSksdD0obi5hcHBlbmRDaGlsZChpKSxnLmNyZWF0ZUtleVZhbHVlRGl2RWxlKHIsVC5QX2NfRGVzYyxPLnBjQ0xpc3REZXNjcmlwdGlvbixlLmRlc2NyaXB0aW9uKSk7cmV0dXJuIG4uYXBwZW5kQ2hpbGQodCksb30saS5wcm90b3R5cGUuY3JlYXRlS2V5VmFsdWVEaXZFbGU9ZnVuY3Rpb24oZSx0LG8sbil7ZT1lLmNsb25lTm9kZSghMCk7cmV0dXJuIGUuY2xhc3NMaXN0LmFkZCh0KSxlLnF1ZXJ5U2VsZWN0b3IodGhpcy5OVEhfQ0hJTERfT05FX1NFTEVDVE9SKS5pbm5lckhUTUw9Uy5nZXRJbm5lckh0bWxDb250ZW50KG8pLGUucXVlcnlTZWxlY3Rvcih0aGlzLk5USF9DSElMRF9UV09fU0VMRUNUT1IpLmlubmVySFRNTD1TLmdldElubmVySHRtbENvbnRlbnQobiksZX0saS5wcm90b3R5cGUuZ2V0QWRkaXRpb25hbFRlY2hub2xvZ2llc0RhdGFGcm9tR3JvdXA9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG89W10sbj17U2Vzc2lvblN0b3JhZ2VzOltdLExvY2FsU3RvcmFnZXM6W10sQ29va2llczpbXX0scj0wLGk9Zy5nZXRHcm91cHNGcm9tRmlsdGVyKGUpO3I8aS5sZW5ndGg7cisrKXt2YXIgcz1pW3JdLGE9Tm4uZ2V0Q29va2llc0Zvckdyb3VwKHMpLG89RihvLG51bGwhPSh0PWEuZmlyc3RQYXJ0eUNvb2tpZXNMaXN0KT90OltdKTtuLkNvb2tpZXM9RihuLkNvb2tpZXMsYS50aGlyZFBhcnR5Q29va2llc0xpc3QpLG4uTG9jYWxTdG9yYWdlcz1GKG4uTG9jYWxTdG9yYWdlcyxudWxsIT0oYT1udWxsPT0odD1zLlRyYWNraW5nVGVjaCk/dm9pZCAwOnQuTG9jYWxTdG9yYWdlcyk/YTpbXSksbi5TZXNzaW9uU3RvcmFnZXM9RihuLlNlc3Npb25TdG9yYWdlcyxudWxsIT0oYT1udWxsPT0odD1zLlRyYWNraW5nVGVjaCk/dm9pZCAwOnQuU2Vzc2lvblN0b3JhZ2VzKT9hOltdKX1yZXR1cm4gby5sZW5ndGgmJm4uQ29va2llcy51bnNoaWZ0KHtIb3N0TmFtZTpPLlBDRmlyc3RQYXJ0eUNvb2tpZUxpc3RUZXh0LERpc3BsYXlOYW1lOk8uUENGaXJzdFBhcnR5Q29va2llTGlzdFRleHQsSG9zdElkOnRoaXMuRklSU1RfUEFSVFlfQ09PS0lFU19HUk9VUF9OQU1FLGlzRmlyc3RQYXJ0eTohMCxDb29raWVzOm8sRGVzY3JpcHRpb246IiJ9KSxufSxpLnByb3RvdHlwZS5nZXRGaXJzdHNBbmRUaGlyZENvb2tpc0Zyb21Hcm91cHM9ZnVuY3Rpb24oZSl7dmFyIHQ9W10sbz1bXTtyZXR1cm4gZy5nZXRHcm91cHNGcm9tRmlsdGVyKGUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZT1Obi5nZXRDb29raWVzRm9yR3JvdXAoZSk7dD1GKHQsZS5maXJzdFBhcnR5Q29va2llc0xpc3QpLG89RihvLGUudGhpcmRQYXJ0eUNvb2tpZXNMaXN0KX0pLHtmaXJzdFBhcnR5Q29va2llc0xpc3Q6dCx0aGlyZFBhcnR5Q29va2llc0xpc3Q6b319LGkucHJvdG90eXBlLmdldEdyb3Vwc0Zyb21GaWx0ZXI9ZnVuY3Rpb24odCl7dmFyIG89W107cmV0dXJuIE8uR3JvdXBzLmZvckVhY2goZnVuY3Rpb24oZSl7RihlLlN1Ykdyb3VwcyxbZV0pLmZvckVhY2goZnVuY3Rpb24oZSl7KCF0fHwhdC5sZW5ndGh8fC0xIT09dC5pbmRleE9mKGUuQ3VzdG9tR3JvdXBJZCkpJiZvLnB1c2goZSl9KX0pLG99LGkucHJvdG90eXBlLmdldEFjY29yZGlvblN0eWxlRWxlbWVudD1mdW5jdGlvbigpe3JldHVybihPLlBDQWNjb3JkaW9uU3R5bGU9PT1hZS5DYXJldD9OLmFycm93RWw6Ti5wbHVzTWludXNFbCkuY2xvbmVOb2RlKCEwKX0saS5wcm90b3R5cGUuZ2V0RmlsdGVyZWRBZGRpdGlvbmFUZWNodERhdGE9ZnVuY3Rpb24oZSx0KXt2YXIgbyxuPXtTZXNzaW9uU3RvcmFnZXM6W10sTG9jYWxTdG9yYWdlczpbXSxDb29raWVzOltdfSxyPXRoaXMuZ2V0U2VhcmNoUXVlcnkoZSksZT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKTtyZXR1cm4gZS5Db29raWVzWzBdLkhvc3RJZD09PXRoaXMuRklSU1RfUEFSVFlfQ09PS0lFU19HUk9VUF9OQU1FJiYoKG89ZS5Db29raWVzLnNoaWZ0KCkpLkNvb2tpZXM9bnVsbD09KHQ9by5Db29raWVzKT92b2lkIDA6dC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHIubGFzdEluZGV4PTAsci50ZXN0KGUuTmFtZXx8ZS5Ib3N0KX0pKSxuLkNvb2tpZXM9bnVsbD09KHQ9ZS5Db29raWVzKT92b2lkIDA6dC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHIubGFzdEluZGV4PTAsci50ZXN0KGUuRGlzcGxheU5hbWV8fGUuSG9zdE5hbWUpfSksbyYmMDxvLkNvb2tpZXMubGVuZ3RoJiZuLkNvb2tpZXMudW5zaGlmdChvKSxuLkxvY2FsU3RvcmFnZXM9bnVsbD09KHQ9ZS5Mb2NhbFN0b3JhZ2VzKT92b2lkIDA6dC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHIubGFzdEluZGV4PTAsci50ZXN0KGUuTmFtZXx8ZS5Ib3N0KX0pLG4uU2Vzc2lvblN0b3JhZ2VzPW51bGw9PShvPWUuU2Vzc2lvblN0b3JhZ2VzKT92b2lkIDA6by5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHIubGFzdEluZGV4PTAsci50ZXN0KGUuTmFtZXx8ZS5Ib3N0KX0pLG59LGkucHJvdG90eXBlLmNoZWNrSWZMZWdMaW5rUmVtb3ZlPWZ1bmN0aW9uKGUpe18uaXNUY2ZWMlRlbXBsYXRlJiZlLnF1ZXJ5U2VsZWN0b3IoVC5QX1Zlbl9MZWdfQ2xhaW0pLnJlbW92ZSgpfTt2YXIgZyxLcz1pO2Z1bmN0aW9uIGkoKXt0aGlzLmhhc0lhYlZlbmRvcnM9ITEsdGhpcy5oYXNHb29nbGVWZW5kb3JzPSExLHRoaXMuaGFzR2VuVmVuZG9ycz0hMSx0aGlzLmlhYkFjY0luaXQ9ITEsdGhpcy5fZGlzcGxheU51bGw9ImRpc3BsYXk6ICcnOyIsdGhpcy5BUklBX0xBQkVMX0FUVFJJQlVURT0iYXJpYS1sYWJlbCIsdGhpcy5URUNIX0NPT0tJRVNfU0VMRUNUT1I9InRlY2gtY29va2llcyIsdGhpcy5GSVJTVF9QQVJUWV9DT09LSUVTX0dST1VQX05BTUU9ImZpcnN0LXBhcnR5LWNvb2tpZXMtZ3JvdXAiLHRoaXMuTEFCRUxfU1RBVFVTPSIub3QtbGFiZWwtc3RhdHVzIix0aGlzLkNPTlNFTlRfQ0FURUdPUlk9Ii5jb25zZW50LWNhdGVnb3J5Iix0aGlzLkFDQ19UWFQ9Ii5vdC1hY2MtdHh0Iix0aGlzLk5USF9DSElMRF9PTkVfU0VMRUNUT1I9ImR0Om50aC1jaGlsZCgxKSIsdGhpcy5OVEhfQ0hJTERfVFdPX1NFTEVDVE9SPSJkZDpudGgtY2hpbGQoMikiLHRoaXMuTElORV9USFJPVUdIX0NMQVNTPSJsaW5lLXRocm91Z2giLHRoaXMuQUNDX0hEUl9DTEFTUz0iLm90LWFjYy1oZHIiLHRoaXMuVkVOX1RJVExFX0NMQVNTPSJvdC12ZW5zZWMtdGl0bGUiLHRoaXMuRVhUX0xJTktfQ0xBU1M9Im90LWV4dC1sbmsiLHRoaXMuVEFSR0VUX0JMQU5LX1JFTF9OT09QRU5FUj0ibm9vcGVuZXIgbm9yZWZlcnJlciIsdGhpcy5MU1RfQ05UX0NPTFVNTl9TRUxFQ1RPUj0iI290LWxzdC1jbnQgLm90LXNkay1jb2x1bW4iLHRoaXMuZ29vZ2xlU2VhcmNoU2VsZWN0b3JzPXt2ZW5kb3JBY2NCdG46IiNvdC1hZGR0bC12ZW5sc3QgI0FkdGwtSUFCIixuYW1lOiJuYW1lIixhY2NJZDoiLm90LWFkdGx2LWFjYyIsc2VsZWN0QWxsRXZudEhuZGxyOiIjb3Qtc2VsYWxsLWFkdGx2ZW4taGFuZGxlciIsdmVuTGlzdElkOiIjb3QtYWRkdGwtdmVubHN0IixjdGdsOiIub3QtdmVuLWFkdGxjdGdsIn0sdGhpcy5nZW5WZW5kb3JTZWFyY2hTZWxlY3RvcnM9e3ZlbmRvckFjY0J0bjoiI290LWduLXZlbmxzdCAjR24tIixuYW1lOiJOYW1lIixhY2NJZDoiLm90LWd2LWFjYyIsc2VsZWN0QWxsRXZudEhuZGxyOiIjb3Qtc2VsYWxsLWdudmVuLWhhbmRsZXIiLHZlbkxpc3RJZDoiI290LWduLXZlbmxzdCIsY3RnbDoiLm90LXZlbi1ndmN0Z2wifX1Zcy5wcm90b3R5cGUuaW5pdEJhbm5lcj1mdW5jdGlvbigpe3RoaXMuY2FuSW1wbGllZENvbnNlbnRMYW5kaW5nUGFnZSgpLGIubW9kdWxlSW5pdGlhbGl6ZXIuQ29va2llU1BBRW5hYmxlZD9tKHdpbmRvdykub24oIm90bG9hZGJhbm5lciIsdGhpcy53aW5kb3dMb2FkQmFubmVyLmJpbmQodGhpcykpOm0od2luZG93KS5vbmUoIm90bG9hZGJhbm5lciIsdGhpcy53aW5kb3dMb2FkQmFubmVyLmJpbmQodGhpcykpfSxZcy5wcm90b3R5cGUuaW5zZXJ0Q1NCdG5IdG1sQW5kQ3NzPWZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmV0cnVzdC1zdHlsZSIpLHQ9KHQuaW5uZXJIVE1MPVMuZ2V0SW5uZXJIdG1sQ29udGVudCh0LmlubmVySFRNTCtGcy5jc0J0bkdyb3VwLmNzcyksZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLHQ9KG0odCkuaHRtbChGcy5jc0J0bkdyb3VwLmh0bWwpLHQucXVlcnlTZWxlY3RvcigiI290LXNkay1idG4tZmxvYXRpbmciKSk7ZSYmdCYmbSh0KS5yZW1vdmVDbGFzcygib3QtaGlkZSIpLG0oIiNvbmV0cnVzdC1jb25zZW50LXNkayIpLmFwcGVuZCh0KSxPLmNvb2tpZVBlcnNpc3RlbnRMb2dvJiYoTy5jb29raWVQZXJzaXN0ZW50TG9nby5pbmNsdWRlcygib3RfZ3VhcmRfbG9nby5zdmciKT90aGlzLmFwcGx5UGVyc2lzdGVudFN2Z09uRE9NKCk6KG0oIi5vdC1mbG9hdGluZy1idXR0b25fX2Zyb250LCAub3QtZmxvYXRpbmctYnV0dG9uX19iYWNrIikuYWRkQ2xhc3MoImN1c3RvbS1wZXJzaXN0ZW50LWljb24iKSxlPWgudXBkYXRlQ29ycmVjdFVybChPLmNvb2tpZVBlcnNpc3RlbnRMb2dvKSx0PW5ldyBVUkwoZSx3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5wYXRobmFtZSxiLmZwLkNNUEljb25TcHJpdGUmJih0LmluY2x1ZGVzKCIvbG9nb3Mvc3RhdGljLyIpfHx0LmluY2x1ZGVzKCJzcmMvYXNzZXRzL2ltYWdlcy8iKSYmbmV3IFVSTChlLHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pLmhvc3QuaW5jbHVkZXMoImxvY2FsaG9zdCIpKSYmKGU9Ijxzdmc+XG4gICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj0nIyIrdC5zcGxpdCgiLyIpLnBvcCgpLnNwbGl0KCIuIikuc2hpZnQoKSsiJz48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+IixtKCIub3QtZmxvYXRpbmctYnV0dG9uX19mcm9udCA+IGJ1dHRvbiIpLmh0bWwoZSksbSgiLm90LWZsb2F0aW5nLWJ1dHRvbl9fZnJvbnQgc3ZnIikuYXR0cigiY2xhc3MiLCJvdC1zb3VyY2Utc3ByaXRlIikpKSl9LFlzLnByb3RvdHlwZS5hcHBseVBlcnNpc3RlbnRTdmdPbkRPTT1mdW5jdGlvbigpe3JldHVybiBQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0O3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gYi5mcC5DTVBJY29uU3ByaXRlPyh0PSI8c3ZnPlxuICAgICAgICAgICAgPHVzZSBocmVmPScjb3RfZ3VhcmRfbG9nbyc+PC91c2U+XG4gICAgICAgICAgICA8L3N2Zz4iLFszLDNdKTpbMywxXTtjYXNlIDE6cmV0dXJuWzQsanQuZ2V0UGVyc2lzdGVudENvb2tpZVN2ZygpXTtjYXNlIDI6dD1lLnNlbnQoKSxlLmxhYmVsPTM7Y2FzZSAzOnJldHVybiBtKHRoaXMuRkxPQVRJTkdfQ09PS0lFX0ZST05UX0JUTikuaHRtbCh0KSx1Lm90R3VhcmRMb2dvUmVzb2x2ZSghMCksWzJdfX0pfSl9LFlzLnByb3RvdHlwZS5jYW5JbXBsaWVkQ29uc2VudExhbmRpbmdQYWdlPWZ1bmN0aW9uKCl7dGhpcy5pc0ltcGxpZWRDb25zZW50KCkmJiFPby5pc0xhbmRpbmdQYWdlKCkmJiJ0cnVlIj09PUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuQVdBSVRJTkdfUkVfQ09OU0VOVCkmJnRoaXMuY2hlY2tGb3JSZWZyZXNoQ2xvc2VJbXBsaWVkKCl9LFlzLnByb3RvdHlwZS5pc0ltcGxpZWRDb25zZW50PWZ1bmN0aW9uKCl7cmV0dXJuIE8uQ29uc2VudE1vZGVsJiYiaW1wbGllZCBjb25zZW50Ij09PU8uQ29uc2VudE1vZGVsLk5hbWUudG9Mb3dlckNhc2UoKXx8MDxfLmNvbnNlbnRhYmxlSW1wbGllZENvbnNlbnRHcm91cC5sZW5ndGh9LFlzLnByb3RvdHlwZS5jaGVja0ZvclJlZnJlc2hDbG9zZUltcGxpZWQ9ZnVuY3Rpb24oKXtDLmJhbm5lckNsb3NlQnV0dG9uSGFuZGxlcighMCl9LFlzLnByb3RvdHlwZS5oaWRlQ3VzdG9tSHRtbD1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmV0cnVzdC1iYW5uZXItc2RrIik7ZSYmZChlLCJkaXNwbGF5OiBub25lOyIpfSxZcy5wcm90b3R5cGUuc2hvdWxkU2hvd0Jhbm5lcj1mdW5jdGlvbihlKXtyZXR1cm4gTy5TaG93QWxlcnROb3RpY2UmJiFlJiYhTy5Ob0Jhbm5lciYmIUQuaGlkZUJhbm5lcn0sWXMucHJvdG90eXBlLnNob3VsZFNob3dQYz1mdW5jdGlvbihlKXtyZXR1cm4gTy5TaG93QWxlcnROb3RpY2UmJiFlJiZPLk5vQmFubmVyfSxZcy5wcm90b3R5cGUud2luZG93TG9hZEJhbm5lcj1mdW5jdGlvbigpe3JldHVybiBQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0LG8sbixyLGkscyxhO3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4odGhpcy5jb3JlLnN1YnN0aXR1dGVQbGFpblRleHRTY3JpcHRUYWdzKCksdD1iLm1vZHVsZUluaXRpYWxpemVyLG0oIiNvbmV0cnVzdC1jb25zZW50LXNkayIpLmxlbmd0aD9vPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmV0cnVzdC1jb25zZW50LXNkayIpOihvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG0obykuYXR0cigiaWQiLCJvbmV0cnVzdC1jb25zZW50LXNkayIpLG0obykuYXR0cigiZGF0YS1ub3NuaXBwZXQiLCJ0cnVlIiksbShkb2N1bWVudC5ib2R5KS5hcHBlbmQobykpLGIuZnAuQ01QSWNvblNwcml0ZSk/KHI9Ty5PVFNwcml0ZUxvZ28sKG49Yi5tb2R1bGVJbml0aWFsaXplci5TY3JpcHRUeXBlKSE9PVVlLkxPQ0FMJiZuIT09VWUuTE9DQUxfVEVTVHx8KHI9aC51cGRhdGVDb3JyZWN0VXJsKE8uT1RTcHJpdGVMb2dvKSksWzQsanQuZ2V0U3ByaXRlU3ZnKHIpXSk6WzMsMl07Y2FzZSAxOm49ZS5zZW50KCkscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxtKHIpLmF0dHIoImlkIiwib25ldHJ1c3Qtc3ByaXRlLXN2ZyIpLG0ocikuaHRtbChuKSxtKG8pLmFwcGVuZChyKSxlLmxhYmVsPTI7Y2FzZSAyOnJldHVybihtKCIub25ldHJ1c3QtcGMtZGFyay1maWx0ZXIiKS5sZW5ndGh8fChpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG0oaSkuYXR0cigiY2xhc3MiLCJvbmV0cnVzdC1wYy1kYXJrLWZpbHRlciIpLG0oaSkuYXR0cigiY2xhc3MiLCJvdC1oaWRlIiksbShpKS5hdHRyKCJjbGFzcyIsIm90LWZhZGUtaW4iKSxvLmZpcnN0Q2hpbGQ/by5pbnNlcnRCZWZvcmUoaSxvLmZpcnN0Q2hpbGQpOm0obykuYXBwZW5kKGkpKSxPLklzSWFiRW5hYmxlZCYmdGhpcy5pYWIudXBkYXRlSWFiVmFyaWFibGVSZWZlcmVuY2UoKSxpPXcuaXNBbGVydEJveENsb3NlZEFuZFZhbGlkKCkscz10aGlzLnNob3VsZFNob3dCYW5uZXIoaSksYT10aGlzLnNob3VsZFNob3dQYyhpKSxELm50ZnlSZXF1aXJlZD8odGhpcy5oaWRlQ3VzdG9tSHRtbCgpLEJuLmluaXQoKSxCbi5jaGFuZ2VTdGF0ZSgpKToocz91LmluaXRpYWxpemVBbGFydEh0bWxBbmRIYW5kbGVyKCk6KE8uSXNHUFBFbmFibGVkJiZWcy5zZXRDbXBEaXNwbGF5U3RhdHVzKCJkaXNhYmxlZCIpLHRoaXMuaGlkZUN1c3RvbUh0bWwoKSksdS5hZGRFdmVudExpc3RuZXJGb3JWZW5kb3JzTGlzdCgpKSx0LklzU3VwcHJlc3NQQ3x8KEcuaW5zZXJ0UGNIdG1sKCksdS5pbml0aWFsaXNlQ29uc2VudE5vdGljZUhhbmRsZXJzKCksTy5Jc0lhYkVuYWJsZWQmJnRoaXMuaWFiLkluaXRpYWxpemVWZW5kb3JMaXN0KCkpLHRoaXMucHJlcG9wdWxhdGVDb29raWVPclZlbmRvclBhZ2VUaXRsZSgpLHRoaXMuaW5pdGlhbGl6ZUhiYlR2U2NyaXB0KCksdGhpcy5pbnNlcnRDU0J0bighcyksYSk/WzQsdS50b2dnbGVJbmZvRGlzcGxheSgpXTpbMyw0XTtjYXNlIDM6ZS5zZW50KCksZS5sYWJlbD00O2Nhc2UgNDpyZXR1cm4gdS5pbnNlcnRDb29raWVTZXR0aW5nVGV4dCgpLHRoaXMuaW5pdGlhbGl6ZUZsb2F0aW5nQnV0dG9uT25CYW5uZXJMb2FkKGEpLHpzLmluc2VydFRyYWNraWdUZWNoT3JDb29raWVQb2xpY3koKSxDLmV4ZWN1dGVPcHRhbm9uV3JhcHBlcigpLHRoaXMuaW5pdGlhbGl6ZUNvb2tpZVBhcmFtc09uQmFubmVyTG9hZChzKSxbMl19fSl9KX0sWXMucHJvdG90eXBlLnByZXBvcHVsYXRlQ29va2llT3JWZW5kb3JQYWdlVGl0bGU9ZnVuY3Rpb24oKXtiLmlzVjJUZW1wbGF0ZSYmKE8uR2VuZXJhbFZlbmRvcnNFbmFibGVkP3RoaXMuaWFiLnNldExpc3RTZWFyY2hWYWx1ZXMoYmUudmVuZG9ycyk6dGhpcy5pYWIuc2V0TGlzdFNlYXJjaFZhbHVlcyhiZS5jb29raWVzKSl9LFlzLnByb3RvdHlwZS5pbml0aWFsaXplRmxvYXRpbmdCdXR0b25PbkJhbm5lckxvYWQ9ZnVuY3Rpb24oZSl7dmFyIHQ9bSh0aGlzLkZMT0FUSU5HX0NPT0tJRV9CVE4pLG89bSh0aGlzLkZMT0FUSU5HX0NPT0tJRV9GUk9OVF9CVE4pLG49bSh0aGlzLkZMT0FUSU5HX0NPT0tJRV9CQUNLX0JUTik7dC5sZW5ndGgmJih0LmF0dHIoImRhdGEtdGl0bGUiLE8uQ29va2llU2V0dGluZ0J1dHRvblRleHQpLG8uZWxbMF0uc2V0QXR0cmlidXRlKFN0LE8uQ29va2llU2V0dGluZ0J1dHRvblRleHQpLG4uZWxbMF0uc2V0QXR0cmlidXRlKFN0LE8uQXJpYUNsb3NlUHJlZmVyZW5jZXMpLGU/KG8uZWxbMF0uc2V0QXR0cmlidXRlKG10LCEwKSxvLmVsWzBdLnN0eWxlLmRpc3BsYXk9Im5vbmUiKToobi5lbFswXS5zZXRBdHRyaWJ1dGUobXQsITApLG4uZWxbMF0uc3R5bGUuZGlzcGxheT0ibm9uZSIpKX0sWXMucHJvdG90eXBlLmluaXRpYWxpemVDb29raWVQYXJhbXNPbkJhbm5lckxvYWQ9ZnVuY3Rpb24oZSl7TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsV3QpfHxJby53cml0ZUdycFBhcmFtKGsuT1BUQU5PTl9DT05TRU5UKSxMLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxZdCl8fElvLndyaXRlSHN0UGFyYW0oay5PUFRBTk9OX0NPTlNFTlQpLEQuc2hvd0dlbmVyYWxWZW5kb3JzJiYhTC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSnQpJiZJby53cml0ZUdlblZlbkNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5UKSxELnZzSXNBY3RpdmVBbmRPcHRPdXQmJiFMLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxYdCkmJklvLndyaXRlVlNDb25zZW50Q29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQpLGUmJkdvLnNldEJhbm5lckZvY3VzKCl9LFlzLnByb3RvdHlwZS5pbml0aWFsaXplSGJiVHZTY3JpcHQ9ZnVuY3Rpb24oKXt2YXIgZTtiLm1vZHVsZUluaXRpYWxpemVyLlJlbW90ZUFjdGlvbnNFbmFibGVkJiYoKGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhiYnR2IikpJiZlLnJlbW92ZSgpLChlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKS5pZD0iaGJidHYiLGUuc3JjPUQuc3RvcmFnZUJhc2VVUkwrIi9zY3JpcHR0ZW1wbGF0ZXMvIitiLm1vZHVsZUluaXRpYWxpemVyLlZlcnNpb24rIi9oYmJ0di5qcyIsZS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLG0oZG9jdW1lbnQuYm9keSkuYXBwZW5kKGUpKX0sWXMucHJvdG90eXBlLmluc2VydENTQnRuPWZ1bmN0aW9uKGUpe0ZzLmNzQnRuR3JvdXAmJih0aGlzLmluc2VydENTQnRuSHRtbEFuZENzcyhlKSx1LmluaXRGbGd0Q2tTdGdCdG5FdmVudEhhbmRsZXJzKCkpfSxZcy5wcm90b3R5cGUuaW5zZXJ0VHJhY2tpbmdUZWNobm9sb2dpZXM9ZnVuY3Rpb24oKXt2YXIgZSx0O20oIiNvdC1zZGstY29va2llLXBvbGljeSwgI29wdGFub24tY29va2llLXBvbGljeSIpLmxlbmd0aCYmKHdpbmRvdy5PbmV0cnVzdENvb2tpZVBvbGljeSYmd2luZG93Lk9uZXRydXN0Q29va2llUG9saWN5Lkluc2VydENvb2tpZVBvbGljeUh0bWw/d2luZG93Lk9uZXRydXN0Q29va2llUG9saWN5Lkluc2VydENvb2tpZVBvbGljeUh0bWwoaCxPLG0pOigodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSkuaWQ9ImNvb2tpZS1wb2xpY3ktc2NyaXB0Iix0Lm9ubG9hZD1mdW5jdGlvbigpe3JldHVybiB3aW5kb3cuT25ldHJ1c3RDb29raWVQb2xpY3kuSW5zZXJ0Q29va2llUG9saWN5SHRtbChoLE8sbSl9LHQudHlwZT0idGV4dC9qYXZhc2NyaXB0Iix0LnNyYz1ELnN0b3JhZ2VCYXNlVVJMKyIvc2NyaXB0dGVtcGxhdGVzLyIrYi5tb2R1bGVJbml0aWFsaXplci5WZXJzaW9uKyIvdHJhY2tpbmdUZWNobm9sb2dpZXMuanMiLG51bGwhPShlPV8uc3JpSGFzaCkmJmVbInRyYWNraW5nVGVjaG5vbG9naWVzLmpzIl0mJih0LmludGVncml0eT1fLnNyaUhhc2hbInRyYWNraW5nVGVjaG5vbG9naWVzLmpzIl0pLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCkpKX0sWXMucHJvdG90eXBlLmluc2VydFRyYWNraWdUZWNoT3JDb29raWVQb2xpY3k9ZnVuY3Rpb24oKXtiLmZwLkNvb2tpZVYyVHJhY2tpbmdUZWNobm9sb2dpZXM/enMuaW5zZXJ0VHJhY2tpbmdUZWNobm9sb2dpZXMoKTpJci5pbnNlcnRDb29raWVQb2xpY3lIdG1sKCl9O3ZhciB6cyxXcz1ZcztmdW5jdGlvbiBZcygpe3RoaXMuaWFiPWcsdGhpcy5jb3JlPU5uLHRoaXMuRkxPQVRJTkdfQ09PS0lFX0JUTj0iI290LXNkay1idG4tZmxvYXRpbmciLHRoaXMuRkxPQVRJTkdfQ09PS0lFX0ZST05UX0JUTj0iI290LXNkay1idG4tZmxvYXRpbmcgLm90LWZsb2F0aW5nLWJ1dHRvbl9fZnJvbnQgLm90LWZsb2F0aW5nLWJ1dHRvbl9fb3BlbiIsdGhpcy5GTE9BVElOR19DT09LSUVfQkFDS19CVE49IiNvdC1zZGstYnRuLWZsb2F0aW5nIC5vdC1mbG9hdGluZy1idXR0b25fX2JhY2sgLm90LWZsb2F0aW5nLWJ1dHRvbl9fY2xvc2UifXgoWnMsSnM9RXIpLFpzLnByb3RvdHlwZS5DbG9zZT1mdW5jdGlvbihlKXtDLmNsb3NlQmFubmVyKCExKSx3aW5kb3cubG9jYXRpb24uaHJlZj0iaHR0cHM6Ly9vdHNkay8vY29uc2VudENoYW5nZWQifSxacy5wcm90b3R5cGUuUmVqZWN0QWxsPWZ1bmN0aW9uKGUpe0MucmVqZWN0QWxsRXZlbnQoKSx3aW5kb3cubG9jYXRpb24uaHJlZj0iaHR0cHM6Ly9vdHNkay8vY29uc2VudENoYW5nZWQifSxacy5wcm90b3R5cGUuQWxsb3dBbGw9ZnVuY3Rpb24oZSl7Qy5BbGxvd0FsbFYyKGUpLHdpbmRvdy5sb2NhdGlvbi5ocmVmPSJodHRwczovL290c2RrLy9jb25zZW50Q2hhbmdlZCJ9LFpzLnByb3RvdHlwZS5Ub2dnbGVJbmZvRGlzcGxheT1mdW5jdGlvbigpe3UudG9nZ2xlSW5mb0Rpc3BsYXkoKX07dmFyIEpzLFhzLFFzPVpzO2Z1bmN0aW9uIFpzKCl7dmFyIGU9bnVsbCE9PUpzJiZKcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUubW9iaWxlT25saW5lVVJMPV8ubW9iaWxlT25saW5lVVJMLGV9dGEucHJvdG90eXBlLnN5bmNDb25zZW50UHJvZmlsZT1mdW5jdGlvbih0LGUsbyl7dm9pZCAwPT09byYmKG89ITEpLHQ/RC5kc1BhcmFtcy5pZD10LnRyaW0oKTp0PUQuZHNQYXJhbXMuaWQsbyYmKEQuZHNQYXJhbXMuaXNBbm9ueW1vdXM9byksZT1lfHxELmRzUGFyYW1zLnRva2VuLHQmJmUmJmp0LmdldENvbnNlbnRQcm9maWxlKHQsZSkudGhlbihmdW5jdGlvbihlKXtlPUFycmF5LmlzQXJyYXkoZSk/ZVswXTpudWxsOyRzLmNvbnNlbnRQcm9maWxlQ2FsbGJhY2soZSx0KX0pfSx0YS5wcm90b3R5cGUuY2hlY2tDYXJyeU92ZXJBbm9uQ29uc2VudEZvcklBQj1mdW5jdGlvbigpe2lmKG51bGw9PShvPV8uY29uc2VudGFibGVJYWJHcnBzKXx8IW8ubGVuZ3RoKXJldHVybntpYWJTeW5jUmVxdWlyZWQ6ITEsbGF0ZXN0Q29uc2VudERhdGU6bmV3IERhdGUoMCl9O2lmKCFfLmNoZWNrTG9jYWxDb25zZW50Rm9ySWFiUHVycG9zZXMpcmV0dXJue2lhYlN5bmNSZXF1aXJlZDohMSxsYXRlc3RDb25zZW50RGF0ZTpuZXcgRGF0ZSgwKX07dmFyIGUsdCxvPSExLG49RC5jb25zZW50UHJlZmVyZW5jZXMscj1uJiYwPG4ucHVycG9zZXMubGVuZ3RoO2lmKF8uY2FycnlPdmVyQW5vbnltb3VzQ29uc2VudD8oZT0odD10aGlzLmNoZWNrTGF0ZXN0Q29uc2VudERhdGUoXy5zZXJ2ZXJMYXRlc3REYXRlRm9yQ29va2llcykpLmNvbnNlbnRlZERhdGUsdD10LmlzTG9jYWxDb25zZW50TGF0ZXN0KToodD0hMSxpPXRoaXMuZ2V0TGFzdGVzQ29uc2VudERhdGVGcm9tSWFiQ29uc2VudCgpLF8uc2VydmVyTGF0ZXN0RGF0ZUZvckNvb2tpZXM+KGU9aSkmJihlPV8uc2VydmVyTGF0ZXN0RGF0ZUZvckNvb2tpZXMpKSx0aGlzLmNoZWNrSWZTZXJ2ZXJDb25zZW50KHIsdCkpe0wud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLlBSRVZfVVNFUl9DT05TRU5ULCIiKSxMLndyaXRlQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5QUkVWX1VTRVJfSEFEX1RPS0VOLCIiKTt2YXIgbz0hMCxpPSIiLHM9KEFycmF5LmlzQXJyYXkobi5jb25zZW50U3RyaW5ncykmJm4uY29uc2VudFN0cmluZ3MubGVuZ3RoJiYoaT0obnVsbD09KHM9bi5jb25zZW50U3RyaW5ncy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiJ0Y2ZldSI9PT1lLnR5cGV9KSk/dm9pZCAwOnMuY29udGVudCl8fCIiKSxuLmdhY1N0cmluZ3x8IiIpO2lmKGkpe0QuaXNJYWJTeW5jZWQ9ITAsRC5zeW5jUmVxdWlyZWQ9ITA7Zm9yKHZhciBhPUwuZ2V0Q29va2llc0NodW5rKGksay5FVV9QVUJfQ09OU0VOVCksbD0wLGM9T2JqZWN0LmtleXMoYSk7bDxjLmxlbmd0aDtsKyspe3ZhciBkPWNbbF07TC5zZXRDb29raWUoZCxhW2RdLE8uUmVjb25zZW50RnJlcXVlbmN5RGF5cywhMSxuZXcgRGF0ZShlKSl9fXMmJihELmlzR2FjU3luY2VkPSEwLEQuc3luY1JlcXVpcmVkPSEwLEwuc2V0Q29va2llKGsuQURESVRJT05BTF9DT05TRU5UX1NUUklORyxzLE8uUmVjb25zZW50RnJlcXVlbmN5RGF5cywhMSxuZXcgRGF0ZShlKSkpfXJldHVybiB0aGlzLmZvcmNlQ29uc2VudFJlY2VpcHQocix0KSx7aWFiU3luY1JlcXVpcmVkOm8sbGF0ZXN0Q29uc2VudERhdGU6ZX19LHRhLnByb3RvdHlwZS5zeW5jUHJlZmVyZW5jZXM9ZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT10JiYodD0hMSk7dmFyIG8sbj1MLmdldENvb2tpZShrLkFMRVJUX0JPWF9DTE9TRUQpLHI9bixpPSExLHM9ITAsYT0hMSxsPSExLGM9ITEsZD12LnN0clRvQXJyKEwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULCJncm91cHMiKSk7aWYoZSYmbnVsbCE9KG89ZS5wdXJwb3NlcykmJm8ubGVuZ3RoKXt0aGlzLmNoZWNrSWZDb25zZW50SXNHaXZlbihlKTtmb3IodmFyIHU9dm9pZCAwLHA9MCxDPWUucHVycG9zZXM7cDxDLmxlbmd0aDtwKyspe3ZhciBnPUNbcF0sZz10aGlzLnN5bmNHcm91cFdpdGhQcmVmZXJlbmNlcyhnLGQscixhLHQpLGk9aXx8Zy5zeW5jUmVxdWlyZWQsYT1hfHxnLnN5bmNPbmx5RGF0ZSxjPWN8fGcuZ3BjT3ZlcnJpZGVBcHBsaWVkLGw9bHx8Zy5pc0xvY2FsQ29uc2VudExhdGVzdDsoIXV8fG5ldyBEYXRlKGcubGF0ZXN0Q29uc2VudERhdGUpPm5ldyBEYXRlKHUpKSYmKHU9Zy5sYXRlc3RDb25zZW50RGF0ZSl9bj11fWVsc2Ugcz0hMTtyZXR1cm4gdGhpcy5mb3JjZUNvbnNlbnRSZWNlaXB0KHMsbCkse2FsZXJ0Qm94Q29va2llVmFsOm4sZ3JvdXBzQ29uc2VudDpkLHByb2ZpbGVGb3VuZDpzLHN5bmNSZXF1aXJlZDppLHN5bmNPbmx5RGF0ZTphPWEmJiFpLGdwY092ZXJyaWRlQXBwbGllZDpjfX0sdGEucHJvdG90eXBlLmNoZWNrSWZDb25zZW50SXNHaXZlbj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxvPWUucHVycG9zZXM7dDxvLmxlbmd0aDt0Kyspe3ZhciBuPW9bdF0scj1fLmRvbWFpbkdycHNbbi5pZF07ciYmdGhpcy5pc0Nvb2tpZUdyb3VwKHIpJiYoXy5jb25zZW50R2l2ZW49Xy5jb25zZW50R2l2ZW58fG4uc3RhdHVzIT09SFtILk5PX0NPTlNFTlRdJiZuLnN0YXR1cyE9PUhbSC5BTFdBWVNfQUNUSVZFXSl9fSx0YS5wcm90b3R5cGUuc3luY0dyb3VwV2l0aFByZWZlcmVuY2VzPWZ1bmN0aW9uKGUsdCxvLG4scil7dmFyIGk9Xy5kb21haW5HcnBzW2UuaWRdLG49e3N5bmNSZXF1aXJlZDohMSxzeW5jT25seURhdGU6bixsYXRlc3RDb25zZW50RGF0ZTpvLGlzTG9jYWxDb25zZW50TGF0ZXN0OiExLGdwY092ZXJyaWRlQXBwbGllZDohMX07aWYoIWl8fCF0aGlzLmlzQ29va2llR3JvdXAoaSkpcmV0dXJuIG47dGhpcy5tYXJrR3JvdXBBc1N5bmNlZElmVmFsaWQoaSk7dmFyIG89bmV3IERhdGUoZS5sYXN0SW50ZXJhY3Rpb25EYXRlKT5uZXcgRGF0ZShvKSxzPShuLmlzTG9jYWxDb25zZW50TGF0ZXN0PSFvLHkuZ2V0R3JvdXBCeUlkKGkpKTtyZXR1cm4gdGhpcy5zaG91bGRTeW5jR3JvdXAobyxzKT9lLnN0YXR1cz09PUhbSC5OT19DT05TRU5UXT8odGhpcy5yZW1vdmVHcm91cEZyb21Db25zZW50KGksdCksbik6dGhpcy5zeW5jR3JvdXBDb25zZW50KGUsaSxzLHQscixuKTpufSx0YS5wcm90b3R5cGUubWFya0dyb3VwQXNTeW5jZWRJZlZhbGlkPWZ1bmN0aW9uKGUpey0xPEQuZ3Jwc1N5bmNlZC5pbmRleE9mKGUpJiYoRC5zeW5jZWRWYWxpZEdycD0hMCl9LHRhLnByb3RvdHlwZS5zaG91bGRTeW5jR3JvdXA9ZnVuY3Rpb24oZSx0KXt2YXIgbz1fLmNhcnJ5T3ZlckFub255bW91c0NvbnNlbnQsdD1fLmdwY0VuYWJsZWQmJnQmJnQuSXNHcGNFbmFibGVkO3JldHVybiFvJiZfLmNvbnNlbnRHaXZlbnx8byYmZXx8dH0sdGEucHJvdG90eXBlLnJlbW92ZUdyb3VwRnJvbUNvbnNlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbz1lLmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdCgiOiIpWzBdPT09dH0pOy0xPG8mJihlLnNwbGljZShvLDEpLEQuZ3Jwc1N5bmNlZC5wdXNoKHQpKX0sdGEucHJvdG90eXBlLnN5bmNHcm91cENvbnNlbnQ9ZnVuY3Rpb24oZSx0LG8sbixyLGkpe3ZhciBzPXRoaXMuZ2V0Q29uc2VudFZhbHVlKGUuc3RhdHVzKSxvPShfLmdwY0VuYWJsZWQmJm8mJm8uSXNHcGNFbmFibGVkJiYiMSI9PT1zJiYocz0iMCIsby5pc0RlbmllZEJ5R1BDPSEwLGkuZ3BjT3ZlcnJpZGVBcHBsaWVkPSEwKSxpLnN5bmNPbmx5RGF0ZT0hMCxpLmxhdGVzdENvbnNlbnREYXRlPWUubGFzdEludGVyYWN0aW9uRGF0ZSwhaS5ncGNPdmVycmlkZUFwcGxpZWQmJnIpO3JldHVybiBpLnN5bmNSZXF1aXJlZD10aGlzLnVwZGF0ZUNvb2tpZUNhdENvbnNlbnQobyx0LHMsbiksaX0sdGEucHJvdG90eXBlLnVwZGF0ZUNvb2tpZUNhdENvbnNlbnQ9ZnVuY3Rpb24oZSx0LG8sbil7dmFyIHI9ITE7aWYoIWUpe2Zvcih2YXIgaT10KyI6IitvLHM9LTEsYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgbD1uW2FdLnNwbGl0KCI6Iik7aWYobFswXT09PXQpe2xbMV0hPT1vJiYoblthXT1pLHI9ITApLHM9YTticmVha319LTE9PT1zJiYobi5wdXNoKGkpLHI9ITApfXJldHVybiByfSx0YS5wcm90b3R5cGUuZ2V0Q29uc2VudFZhbHVlPWZ1bmN0aW9uKGUpe3ZhciB0PW51bGw7c3dpdGNoKGUpe2Nhc2UgSFtILkFDVElWRV06Y2FzZSBIW0guQUxXQVlTX0FDVElWRV06dD1wZS5BY3RpdmU7YnJlYWs7Y2FzZSBIW0guRVhQSVJFRF06Y2FzZSBIW0guT1BUX09VVF06Y2FzZSBIW0guUEVORElOR106Y2FzZSBIW0guV0lUSERSQVdOXTp0PXBlLkluQWN0aXZlfXJldHVybiB0fSx0YS5wcm90b3R5cGUuaXNDb29raWVHcm91cD1mdW5jdGlvbihlKXtyZXR1cm4hL0lBQlYyfElTUFYyfElGRVYyfElTRlYyfElBQjJWMnxJRkUyVjJ8SVNQMlYyfElTRjJWMi8udGVzdChlKX0sdGEucHJvdG90eXBlLmhpZGVCYW5uZXJBbmRQYz1mdW5jdGlvbigpe3ZhciBlPWguaXNCYW5uZXJWaXNpYmxlKCk7ZSYmaC5oaWRlQmFubmVyKCksKGV8fEQuaXNQQ1Zpc2libGUpJiYoeW4ucmVtb3ZlQWRkZWRPVENzc1N0eWxlcygpLGJuLmhpZGVDb25zZW50Tm90aWNlVjIoKSl9LHRhLnByb3RvdHlwZS5zZXRPcHRhbm9uQ29uc2VudENvb2tpZT1mdW5jdGlvbihlLHQpe3ZhciBvOyhlLnN5bmNSZXF1aXJlZHx8ZS5ncGNPdmVycmlkZUFwcGxpZWQpJiYoTC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULCJncm91cHMiLGUuZ3JvdXBzQ29uc2VudC50b1N0cmluZygpKSxvPUwuZ2V0Q29va2llKGsuT1BUQU5PTl9DT05TRU5UKSxMLnNldENvb2tpZShrLk9QVEFOT05fQ09OU0VOVCxvLHQsITEsbmV3IERhdGUoZS5hbGVydEJveENvb2tpZVZhbCkpLEwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLlBSRVZfVVNFUl9DT05TRU5ULCIiKSxMLndyaXRlQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5JU19BTk9OWU1PVVNfQ09OU0VOVCwiMCIpLEwud3JpdGVDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLlBSRVZfVVNFUl9IQURfVE9LRU4sIiIpKX0sdGEucHJvdG90eXBlLnNldElhYkNvb2tpZT1mdW5jdGlvbihlLHQsbyxuKXt2YXIgZT10aGlzLmNoZWNrTGF0ZXN0Q29uc2VudERhdGUobmV3IERhdGUoZSkpLHI9ZS5pc0xvY2FsQ29uc2VudExhdGVzdCxpPWUuY29uc2VudGVkRGF0ZSxlPSIiLG49KG4mJkFycmF5LmlzQXJyYXkobi5jb25zZW50U3RyaW5ncykmJm4uY29uc2VudFN0cmluZ3MubGVuZ3RoJiYoZT0obnVsbD09KHM9bi5jb25zZW50U3RyaW5ncy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiJ0Y2ZldSI9PT1lLnR5cGV9KSk/dm9pZCAwOnMuY29udGVudCl8fCIiKSwobnVsbD09KHM9bik/dm9pZCAwOnMuZ2FjU3RyaW5nKXx8IiIpLHM9ZXx8bjtpZih0aGlzLmNoZWNrSWZTZXJ2ZXJDb25zZW50KCEhcyxyKSl7aWYodC5zeW5jUmVxdWlyZWQ9ITAsdC5wcm9maWxlRm91bmQ9ITAsdC5hbGVydEJveENvb2tpZVZhbD1pLnRvSVNPU3RyaW5nKCksZSlmb3IodmFyIGE9TC5nZXRDb29raWVzQ2h1bmsoZSxrLkVVX1BVQl9DT05TRU5UKSxsPTAsYz1PYmplY3Qua2V5cyhhKTtsPGMubGVuZ3RoO2wrKyl7dmFyIGQ9Y1tsXTtMLnNldENvb2tpZShkLGFbZF0sbywhMSxuZXcgRGF0ZShpKSl9biYmTC5zZXRDb29raWUoay5BRERJVElPTkFMX0NPTlNFTlRfU1RSSU5HLG4sbywhMSxuZXcgRGF0ZShpKSl9ZWxzZSBzfHwodC5wcm9maWxlRm91bmQ9ITEpO3RoaXMuZm9yY2VDb25zZW50UmVjZWlwdCh0LnByb2ZpbGVGb3VuZCxyKX0sdGEucHJvdG90eXBlLnNldEFkZHRsVmVuZG9yc0Nvb2tpZT1mdW5jdGlvbihlLHQpe08uVXNlR29vZ2xlVmVuZG9ycyYmIUwuZ2V0Q29va2llKGsuQURESVRJT05BTF9DT05TRU5UX1NUUklORykmJkwuc2V0Q29va2llKGsuQURESVRJT05BTF9DT05TRU5UX1NUUklORyxELmFkZHRsQ29uc2VudFZlcnNpb24sdCwhMSxuZXcgRGF0ZShlLmFsZXJ0Qm94Q29va2llVmFsKSl9LHRhLnByb3RvdHlwZS51cGRhdGVHcnBzRG9tPWZ1bmN0aW9uKHMpe2Zvcih2YXIgZT0wLHQ9Vi5nZXRBbGxHcm91cEVsZW1lbnRzKCk7ZTx0Lmxlbmd0aDtlKyspKGU9Pnt2YXIgdCxvPWUuZ2V0QXR0cmlidXRlKCJkYXRhLW9wdGFub25ncm91cGlkIiksbj15LmdldEdyb3VwQnlJZChvKSxyPSEwLGk9di5maW5kSW5kZXgoRC5ncm91cHNDb25zZW50LGZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCI6IilbMF09PT1vfSk7KC0xPGkmJkQuZ3JvdXBzQ29uc2VudFtpXS5zcGxpdCgiOiIpWzFdPT09cGUuSW5BY3RpdmV8fE8uSXNJYWJFbmFibGVkJiZzJiYiQ09PS0lFIiE9PW4uVHlwZSYmLTE8KHQ9cy5wdXJwb3Nlcy5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT1uLlB1cnBvc2VJZC50b0xvd2VyQ2FzZSgpfSkpJiYtMT09PVsiQUNUSVZFIiwiQUxXQVlTX0FDVElWRSJdLmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4gZT09PXMucHVycG9zZXNbdF0uc3RhdHVzfSkpJiYocj0hMSksVi50b2dnbGVHcnBFbGVtZW50cyhlLG4sciksVi50b29nbGVTdWJHcm91cEVsZW1lbnQoZSxyLCExLCEwKSxWLnRvb2dsZVN1Ykdyb3VwRWxlbWVudChlLHIsITAsITApfSkodFtlXSl9LHRhLnByb3RvdHlwZS51cGRhdGVWZW5kb3JzRG9tPWZ1bmN0aW9uKCl7Ty5Jc0lhYkVuYWJsZWQmJihnLnVwZGF0ZUlhYlZhcmlhYmxlUmVmZXJlbmNlKCksV24udG9nZ2xlVmVuZG9yQ29uc2VudCgpLF8ubGVnSW50U2V0dGluZ3MuUEFsbG93TEkpJiYoXy5sZWdJbnRTZXR0aW5ncy5QU2hvd0xlZ0ludEJ0bj9Xbi51cGRhdGVWZW5kb3JMZWdCdG5zKCk6V24udG9nZ2xlVmVuZG9yTGkoKSl9LHRhLnByb3RvdHlwZS5jb25zZW50UHJvZmlsZUNhbGxiYWNrPWZ1bmN0aW9uKHIsaSl7cmV0dXJuIFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHQsbyxuO3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jaGVja0lmS25vd25Vc2Vyc0FyZUxvZ2dlZChyLGkpP1syXToodD10aGlzLnN5bmNQcmVmZXJlbmNlcyhyKSxELmNvbnNlbnRQcmVmZXJlbmNlcz1yLG89Ty5SZWNvbnNlbnRGcmVxdWVuY3lEYXlzLG49dy5pc0lBQkNyb3NzQ29uc2VudEVuYWJsZWQoKSx0aGlzLnVwZGF0ZUNvbnNlbnRDb29raWVzKHQsbyxuLHIpLExyLnNldERhdGFTdWJqZWN0SWRWMihpKSwodC5zeW5jUmVxdWlyZWR8fHQuZ3BjT3ZlcnJpZGVBcHBsaWVkKSYmdC5wcm9maWxlRm91bmQ/WzQsdGhpcy5wZXJmb3JtRnVsbENvbnNlbnRTeW5jKHQsbyxuLHIpXTpbMywyXSk7Y2FzZSAxOnJldHVybiBlLnNlbnQoKSxbMywzXTtjYXNlIDI6dGhpcy5zaG91bGRDcmVhdGVBbm9ueW1vdXNUcmFuc2FjdGlvbih0KSYmdGhpcy5jcmVhdGVUcmFucyhfLmZvcmNlQ3JlYXRlVHJ4TG9jYWxDb25zZW50SXNHcmVhdGVyKSxlLmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfSx0YS5wcm90b3R5cGUudXBkYXRlQ29uc2VudENvb2tpZXM9ZnVuY3Rpb24oZSx0LG8sbil7dGhpcy5zZXRPcHRhbm9uQ29uc2VudENvb2tpZShlLHQpLE8uSXNJYWJFbmFibGVkJiYhbyYmdGhpcy5zZXRJYWJDb29raWUoZS5hbGVydEJveENvb2tpZVZhbCxlLHQsbiksZS5zeW5jT25seURhdGUmJih3LnN5bmNBbGVydEJveENvb2tpZShlLmFsZXJ0Qm94Q29va2llVmFsKSx3LnN5bmNDb29raWVFeHBpcnkoKSl9LHRhLnByb3RvdHlwZS5wZXJmb3JtRnVsbENvbnNlbnRTeW5jPWZ1bmN0aW9uKHQsbyxuLHIpe3JldHVybiBQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5tYXJrVXNlckFzS25vd24odCksdGhpcy5zZXRBZGR0bFZlbmRvcnNDb29raWUodCxvKSx0aGlzLmhpZGVCYW5uZXJBbmRQYygpLEMuY2xvc2VPcHRhbm9uQWxlcnRCb3goKSxGcy5pbml0R3Jwc0FuZEhvc3RzKCksWzQsdGhpcy5zaG93U3luY05vdGlmaWNhdGlvbklmTmVlZGVkKG4pXTtjYXNlIDE6cmV0dXJuIGUuc2VudCgpLHRoaXMudXBkYXRlSWFiSWZFbmFibGVkKCksdGhpcy5yZWZyZXNoVWlBbmRUcmlnZ2VyRXZlbnRzKHIpLHRoaXMuY3JlYXRlR3BjVHJhbnNhY3Rpb25JZk5lZWRlZCh0KSxbMl19fSl9KX0sdGEucHJvdG90eXBlLm1hcmtVc2VyQXNLbm93bj1mdW5jdGlvbihlKXtMLndyaXRlQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5QUkVWX1VTRVJfQ09OU0VOVCwiIiksTC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuSVNfQU5PTllNT1VTX0NPTlNFTlQsIjAiKSxMLndyaXRlQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5QUkVWX1VTRVJfSEFEX1RPS0VOLCIiKSxELnN5bmNSZXF1aXJlZD1lLnN5bmNSZXF1aXJlZHx8ZS5ncGNPdmVycmlkZUFwcGxpZWQsdy5zeW5jQWxlcnRCb3hDb29raWUoZS5hbGVydEJveENvb2tpZVZhbCl9LHRhLnByb3RvdHlwZS5zaG93U3luY05vdGlmaWNhdGlvbklmTmVlZGVkPWZ1bmN0aW9uKHQpe3JldHVybiBQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4hdCYmTy5OdGZ5Q29uZmlnLlNob3dOdGZ5JiZ3LmlzQWxlcnRCb3hDbG9zZWRBbmRWYWxpZCgpP1s0LEJuLmdldENvbnRlbnQoKV06WzMsMl07Y2FzZSAxOmUuc2VudCgpLEJuLmluaXQoKSxCbi5jaGFuZ2VTdGF0ZSgpLGUubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzJdfX0pfSl9LHRhLnByb3RvdHlwZS51cGRhdGVJYWJJZkVuYWJsZWQ9ZnVuY3Rpb24oKXtPLklzSWFiRW5hYmxlZCYmKHcuc2V0SUFCQ29va2llRGF0YSgpLEZzLmluaXRpYWxpemVJYWJQdXJwb3NlQ29uc2VudE9uUmVsb2FkKCksU28ucG9wdWxhdGVWZW5kb3JBbmRQdXJwb3NlRnJvbUNvb2tpZURhdGEoKSl9LHRhLnByb3RvdHlwZS5yZWZyZXNoVWlBbmRUcmlnZ2VyRXZlbnRzPWZ1bmN0aW9uKGUpe3RoaXMudXBkYXRlR3Jwc0RvbShlKSx0aGlzLnVwZGF0ZVZlbmRvcnNEb20oKSxPby5zZXRMYW5kaW5nUGF0aFBhcmFtKEkuTk9UX0xBTkRJTkdfUEFHRSksTm4uc3Vic3RpdHV0ZVBsYWluVGV4dFNjcmlwdFRhZ3MoKSxfbi51cGRhdGVHdG1NYWNyb3MoITApLEMuZXhlY3V0ZU9wdGFub25XcmFwcGVyKCl9LHRhLnByb3RvdHlwZS5jcmVhdGVHcGNUcmFuc2FjdGlvbklmTmVlZGVkPWZ1bmN0aW9uKGUpe2UuZ3BjT3ZlcnJpZGVBcHBsaWVkJiZPLklzQ29uc2VudExvZ2dpbmdFbmFibGVkJiZ4cy5jcmVhdGVDb25zZW50VHhuKCExLCJHUEMgdmFsdWUgY2hhbmdlZCIsITEsITAsITAsIkdQQyIpfSx0YS5wcm90b3R5cGUuc2hvdWxkQ3JlYXRlQW5vbnltb3VzVHJhbnNhY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuKCFlLnByb2ZpbGVGb3VuZHx8Xy5mb3JjZUNyZWF0ZVRyeExvY2FsQ29uc2VudElzR3JlYXRlcikmJiEhZS5hbGVydEJveENvb2tpZVZhbH0sdGEucHJvdG90eXBlLmNoZWNrSWZLbm93blVzZXJzQXJlTG9nZ2VkPWZ1bmN0aW9uKGUsdCl7dmFyIG89TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5DT05TRU5UX0lEKSxuPUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuUFJFVl9VU0VSX0NPTlNFTlQpLHI9TC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5QUkVWX1VTRVJfSEFEX1RPS0VOKSxlPTA8KG51bGw9PShlPW51bGw9PShlPWUpP3ZvaWQgMDplLnB1cnBvc2VzKT92b2lkIDA6ZS5sZW5ndGgpO3JldHVybiBvIT09dCYmIW4mJiIxIj09PXImJihMLnJlbW92ZUFsbENvb2tpZXMoKSwhZSkmJighTy5TaG93QWxlcnROb3RpY2V8fE8uTm9CYW5uZXJ8fEQuaGlkZUJhbm5lcnx8dS5pbml0aWFsaXplQWxhcnRIdG1sQW5kSGFuZGxlcigpLExyLnNldERhdGFTdWJqZWN0SWRWMih0KSwhMCl9LHRhLnByb3RvdHlwZS5jcmVhdGVUcmFucz1mdW5jdGlvbihlKXt2YXIgdD1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCwiaVR5cGUiKTt4cy5jcmVhdGVDb25zZW50VHhuKCExLHVlW3RdLCExLCEwLGUpfSx0YS5wcm90b3R5cGUuY2hlY2tMYXRlc3RDb25zZW50RGF0ZT1mdW5jdGlvbihlKXt2YXIgdD1MLmdldENvb2tpZShrLkFMRVJUX0JPWF9DTE9TRUQpLHQ9dD9uZXcgRGF0ZSh0KTpuZXcgRGF0ZSgwKSxvPXRoaXMuZ2V0TGFzdGVzQ29uc2VudERhdGVGcm9tSWFiQ29uc2VudCgpO3JldHVybiB0PG8/e2lzTG9jYWxDb25zZW50TGF0ZXN0OiExLGNvbnNlbnRlZERhdGU6bzxlP2U6b306dDxlP3tpc0xvY2FsQ29uc2VudExhdGVzdDohMSxjb25zZW50ZWREYXRlOmV9Ontpc0xvY2FsQ29uc2VudExhdGVzdDohMCxjb25zZW50ZWREYXRlOnR9fSx0YS5wcm90b3R5cGUuZ2V0TGFzdGVzQ29uc2VudERhdGVGcm9tSWFiQ29uc2VudD1mdW5jdGlvbigpe3ZhciBlPUQuY29uc2VudFByZWZlcmVuY2VzO2lmKCFlKXJldHVybiBuZXcgRGF0ZSgwKTtmb3IodmFyIHQ9Xy5jb25zZW50YWJsZUlhYkdycHMucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbdC5QdXJwb3NlSWRdPXQsZX0se30pLG89bnVsbCxuPTAscj1lLnB1cnBvc2VzO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dO3RbaS5pZC50b1VwcGVyQ2FzZSgpXSYmKGk9bmV3IERhdGUoaS5sYXN0SW50ZXJhY3Rpb25EYXRlKSwhb3x8bzxpKSYmKG89aSl9cmV0dXJuIG99LHRhLnByb3RvdHlwZS5jaGVja0lmU2VydmVyQ29uc2VudD1mdW5jdGlvbihlLHQpe3ZhciBvPV8uY2FycnlPdmVyQW5vbnltb3VzQ29uc2VudDtyZXR1cm4hISghbyYmZXx8byYmZSYmIXQpfSx0YS5wcm90b3R5cGUuZm9yY2VDb25zZW50UmVjZWlwdD1mdW5jdGlvbihlLHQpe3ZhciBvPV8uY2FycnlPdmVyQW5vbnltb3VzQ29uc2VudCxuPUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuUFJFVl9VU0VSX0NPTlNFTlQpLG49ISghbnx8IiI9PT1ufHwiMCI9PT1uKSxyPUwucmVhZENvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuUFJFVl9VU0VSX0hBRF9UT0tFTiksaT1MLnJlYWRDb29raWVQYXJhbShrLk9QVEFOT05fQ09OU0VOVCxJLklTX0FOT05ZTU9VU19DT05TRU5UKTtfLmZvcmNlQ3JlYXRlVHJ4TG9jYWxDb25zZW50SXNHcmVhdGVyPV8uZm9yY2VDcmVhdGVUcnhMb2NhbENvbnNlbnRJc0dyZWF0ZXJ8fChufHwiMCI9PT1pJiYiMCI9PT1yKSYmKCFlfHxvJiZ0KX07dmFyICRzLGVhPXRhO2Z1bmN0aW9uIHRhKCl7fW5hLnByb3RvdHlwZS5yZW1vdmVDb29raWVzPWZ1bmN0aW9uKCl7TC5yZW1vdmVQcmV2aWV3KCksTC5yZW1vdmVPcHRhbm9uKCksTC5yZW1vdmVBbGVydEJveCgpLEwucmVtb3ZlSWFiMigpLEwucmVtb3ZlQWRkdGxTdHIoKSxMLnJlbW92ZVZhcmlhbnQoKSxsLmlzUHJldmlldyYmb2Euc2V0UHJldmlld0Nvb2tpZSgpLGwudXJsUGFyYW1zLmdldCgib3RyZXNldCIpJiZsLnVybFBhcmFtcy5zZXQoIm90cmVzZXQiLCJmYWxzZSIpO3ZhciBlPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSsiPyIrbC51cmxQYXJhbXMudG9TdHJpbmcoKSt3aW5kb3cubG9jYXRpb24uaGFzaDtvYS5yZXBsYWNlSGlzdG9yeShlKX0sbmEucHJvdG90eXBlLnNldFByZXZpZXdDb29raWU9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgRGF0ZSx0PShlLnNldFRpbWUoZS5nZXRUaW1lKCkrODY0ZTUpLGwuZ2VvRnJvbVVybD8iJmdlbz0iK2wuZ2VvRnJvbVVybDoiIiksZT0iZXhwaXJ5PSIrZS50b0lTT1N0cmluZygpK3Q7TC5zZXRDb29raWUoay5PVF9QUkVWSUVXLGUsMSwhMSl9LG5hLnByb3RvdHlwZS5iaW5kU3RvcFByZXZpZXdFdmVudD1mdW5jdGlvbigpeyh3aW5kb3cuYXR0YWNoRXZlbnR8fHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSgibWVzc2FnZSIsZnVuY3Rpb24oZSl7cmV0dXJuIG9hLm9uTWVzc2FnZShlKX0pfSxuYS5wcm90b3R5cGUucmVwbGFjZUhpc3Rvcnk9ZnVuY3Rpb24oZSl7aGlzdG9yeS5wdXNoU3RhdGUoe30sIiIsZSksbG9jYXRpb24ucmVsb2FkKCl9LG5hLnByb3RvdHlwZS5vbk1lc3NhZ2U9ZnVuY3Rpb24oZSl7InN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJmUuZGF0YT09PW9hLkNMRUFSX0NPT0tJRVMmJihvYS5yZW1vdmVDb29raWVzKCksZS5zb3VyY2UpJiZlLnNvdXJjZS5wb3N0TWVzc2FnZSYmZS5zb3VyY2UucG9zdE1lc3NhZ2Uob2EuQ0xFQVJFRF9DT09LSUVTLGUub3JpZ2luKX07dmFyIG9hLHM9bmE7ZnVuY3Rpb24gbmEoKXt0aGlzLkNMRUFSX0NPT0tJRVM9IkNMRUFSX09UX0NPT0tJRVMiLHRoaXMuQ0xFQVJFRF9DT09LSUVTPSJDTEVBUkVEX09UX0NPT0tJRVMifWFhLnByb3RvdHlwZS5pc1NlbGZIb3N0ZWRNb2RlPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuKG51bGw9PShlPW51bGw9PShlPWIpP3ZvaWQgMDplLm1vZHVsZUluaXRpYWxpemVyKT92b2lkIDA6ZS5TY3JpcHRUeXBlKT09PVVlLkxPQ0FMfSxhYS5wcm90b3R5cGUuZ2V0U2Vzc2lvbkVuZHBvaW50PWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuKG51bGw9PShlPW51bGw9PShlPWIpP3ZvaWQgMDplLm1vZHVsZUluaXRpYWxpemVyKT92b2lkIDA6ZS5TZXNzaW9uVHJhY2tpbmdVcmwpfHwiIn0sYWEucHJvdG90eXBlLmdldERvbWFpbklkPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuKG51bGw9PShlPUQpP3ZvaWQgMDplLmRhdGFEb21haW5JZCl8fCIifSxhYS5wcm90b3R5cGUuaGFzVmFsaWRTZXNzaW9uQ29va2llPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXREb21haW5JZCgpO2lmKGUpZm9yKHZhciB0PTAsbz1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKTt0PG8ubGVuZ3RoO3QrKyl7dmFyIG49b1t0XS50cmltKCkuc3BsaXQoIj0iKTtpZihuWzBdPT09ay5TRVNTSU9OX1RSQUNLSU5HJiZuWzFdPT09ZSlyZXR1cm4hMH1yZXR1cm4hMX0sYWEucHJvdG90eXBlLnNldFNlc3Npb25Db29raWU9ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMuZ2V0RG9tYWluSWQoKTt0JiYoKGU9bmV3IERhdGUpLnNldFRpbWUoZS5nZXRUaW1lKCkrODY0ZTUpLGU9ImV4cGlyZXM9IitlLnRvVVRDU3RyaW5nKCksZG9jdW1lbnQuY29va2llPWsuU0VTU0lPTl9UUkFDS0lORysiPSIrdCsiOyAiK2UrIjsgcGF0aD0vOyBTYW1lU2l0ZT1MYXgiKX0sYWEucHJvdG90eXBlLmNhbGxTZXNzaW9uRW5kcG9pbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gUCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdCxvLG47cmV0dXJuIEEodGhpcyxmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOmlmKCEobz10aGlzLmdldERvbWFpbklkKCkpKXJldHVybiBjb25zb2xlLndhcm4oIltPVCBTZXNzaW9uIFRyYWNraW5nXSBEb21haW4gSUQgbm90IGF2YWlsYWJsZSIpLFsyLCExXTtpZighKHQ9dGhpcy5nZXRTZXNzaW9uRW5kcG9pbnQoKSkpcmV0dXJuIGNvbnNvbGUud2FybigiW09UIFNlc3Npb24gVHJhY2tpbmddIFNlc3Npb24gZW5kcG9pbnQgVVJMIG5vdCBjb25maWd1cmVkIiksWzIsITFdO289e2RvbWFpbklkOm99LGUubGFiZWw9MTtjYXNlIDE6cmV0dXJuIGUudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCxmZXRjaCh0LHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeShvKSxjcmVkZW50aWFsczoib21pdCJ9KV07Y2FzZSAyOnJldHVybihuPWUuc2VudCgpKS5vaz9bMiwhMF06KGNvbnNvbGUud2FybigiW09UIFNlc3Npb24gVHJhY2tpbmddIFNlc3Npb24gZW5kcG9pbnQgcmV0dXJuZWQgc3RhdHVzOiAiK24uc3RhdHVzKSxbMiwhMV0pO2Nhc2UgMzpyZXR1cm4gbj1lLnNlbnQoKSxjb25zb2xlLndhcm4oIltPVCBTZXNzaW9uIFRyYWNraW5nXSBGYWlsZWQgdG8gY2FsbCBzZXNzaW9uIGVuZHBvaW50OiIsbiksWzIsITFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0sYWEucHJvdG90eXBlLnRyYWNrU2Vzc2lvbj1mdW5jdGlvbigpe3JldHVybiBQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc1NlbGZIb3N0ZWRNb2RlKCk/IXRoaXMuZ2V0U2Vzc2lvbkVuZHBvaW50KCl8fHRoaXMuaGFzVmFsaWRTZXNzaW9uQ29va2llKCk/WzJdOls0LHRoaXMuY2FsbFNlc3Npb25FbmRwb2ludCgpXTpbMl07Y2FzZSAxOnJldHVybiBlLnNlbnQoKSYmdGhpcy5zZXRTZXNzaW9uQ29va2llKCksWzJdfX0pfSl9O3ZhciByYSxpYSxjLHNhPWFhO2Z1bmN0aW9uIGFhKCl7fUJlLmluaXRQb2x5ZmlsbCgpLEw9bmV3IEd0LGg9bmV3IFF0LF89bmV3ICR0LFV0PW5ldyBlLG9hPW5ldyBzLChjPXdpbmRvdy5vdFN0dWJEYXRhKSYmKGIubW9kdWxlSW5pdGlhbGl6ZXI9Yy5kb21haW5EYXRhLGIuZnA9Yi5tb2R1bGVJbml0aWFsaXplci5UZW5hbnRGZWF0dXJlcyxELmlzQU1QPWMuaXNBbXAsRC5kYXRhRG9tYWluSWQ9Yy5kb21haW5JZCxELmlzUHJldmlldz1jLmlzUHJldmlldyxELnVybFBhcmFtcz1jLnVybFBhcmFtcyxELmlzVjJTdHViPWMuaXNWMlN0dWJ8fCExLF8uZ3RtVXBkYXRlZGluU3R1Yj1jLmd0bVVwZGF0ZWQsYy5pc1Jlc2V0P29hLnJlbW92ZUNvb2tpZXMoKTpjLmlzUHJldmlldyYmb2Euc2V0UHJldmlld0Nvb2tpZSgpLGMuaXNWMlN0dWImJihfLmxhbmRpbmdQYXRoPWMubGFuZGluZ1BhdGhWYWx1ZSksXy5zZXRCYW5uZXJTY3JpcHRFbGVtZW50KGMuc3R1YkVsZW1lbnQpLF8uc2V0UmVnaW9uUnVsZShjLnJlZ2lvblJ1bGUpLGIuZnAuQ29va2llVjJUYXJnZXRlZFRlbXBsYXRlcyYmKF8uY29uZGl0aW9uYWxMb2dpY0VuYWJsZWQ9IShudWxsPT0oaWE9Xy5nZXRSZWdpb25SdWxlKCkuQ29uZGl0aW9ucyl8fCFpYS5sZW5ndGgpLF8uY29uZGl0aW9uYWxMb2dpY0VuYWJsZWQpJiYoKCgpPT57Zm9yKHZhciBlPV8uZ2V0UmVnaW9uUnVsZSgpLHQ9MDt0PGUuQ29uZGl0aW9ucy5sZW5ndGg7dCsrKXRyeXtpZigoZT0+e2lmKGUpcmV0dXJuIGU9d2luZG93LmF0b2IoZSksRnVuY3Rpb24oJyJ1c2Ugc3RyaWN0IjsgcmV0dXJuICcrZSkoKX0pKGUuQ29uZGl0aW9uc1t0XS5FeHByZXNzaW9uKSlyZXR1cm4gXy5Db25kaXRpb249ZS5Db25kaXRpb25zW3RdfWNhdGNoKGUpe2NvbnNvbGUud2FybihlKTtjb250aW51ZX1fLmFsbENvbmRpdGlvbnNGYWlsZWQ9ITB9KSgpLF8uY2FuVXNlQ29uZGl0aW9uYWxMb2dpYz0hXy5hbGxDb25kaXRpb25zRmFpbGVkKSxELnVzZXJMb2NhdGlvbj1jLnVzZXJMb2NhdGlvbixELmNyb3NzT3JpZ2luPWMuY3Jvc3NPcmlnaW4sXy5iYW5uZXJEYXRhUGFyZW50VVJMPWMuYmFubmVyQmFzZURhdGFVUkwsXy5tb2JpbGVPbmxpbmVVUkw9RihfLm1vYmlsZU9ubGluZVVSTCxjLm1vYmlsZU9ubGluZVVSTCksaWE9Xy5nZXRSZWdpb25SdWxlKCksXy5tdWx0aVZhcmlhbnRUZXN0aW5nRW5hYmxlZD1iLm1vZHVsZUluaXRpYWxpemVyLk11bHRpVmFyaWFudFRlc3RpbmdFbmFibGVkJiYwPGlhLlZhcmlhbnRzLmxlbmd0aCYmaC5pc0RhdGVDdXJyZW50KGlhLlRlc3RFbmRUaW1lKSxfLm90RGF0YUxheWVyPWMub3REYXRhTGF5ZXIsRC5ncnBzU3luY2VkPWMuZ3Jwc1N5bmNlZHx8W10sRC5pc0lhYlN5bmNlZD1jLmlzSWFiU3luY2VkLEQuaXNHYWNTeW5jZWQ9Yy5pc0dhY1N5bmNlZCxELnN5bmNSZXF1aXJlZD1jLmlzSWFiU3luY2VkfHxjLmlzR2FjU3luY2VkfHxjLmdycHNTeW5jZWQmJjA8Yy5ncnBzU3luY2VkLmxlbmd0aCxELmNvbnNlbnRQcmVmZXJlbmNlcz1jLnByZWZlcmVuY2VzLEQuc3luY0dycElkPWMuc3luY0dycElkLEQuY29uc2VudEFwaT1jLmNvbnNlbnRBcGksRC50ZW5hbnRJZD1jLnRlbmFudElkLEQuZ2VvRnJvbVVybD1jLmdlb0Zyb21VcmwsRC5ub25jZT1jLm5vbmNlLEQuc2V0QXR0cmlidXRlUG9seWZpbGxJc0FjdGl2ZT1jLnNldEF0dHJpYnV0ZVBvbHlmaWxsSXNBY3RpdmUsRC5zdG9yYWdlQmFzZVVSTD1jLnN0b3JhZ2VCYXNlVVJMLEQuaWRlbnRpZmllclR5cGU9Yy5pZGVudGlmaWVyVHlwZSxfLnByZXZpZXdNb2RlPWMucHJldmlld01vZGUsXy5wcmV2VXNlcldhc0Fub249Yy5wcmV2VXNlcldhc0Fub24sXy51c2VySGFzUHJvZmlsZT1jLnVzZXJIYXNQcm9maWxlLF8uY29uc2VudEdpdmVuPWMuY29uc2VudEdpdmVuLF8uc2VydmVyTGF0ZXN0RGF0ZUZvckNvb2tpZXM9Yy5zZXJ2ZXJMYXRlc3REYXRlRm9yQ29va2llcyxfLmNhcnJ5T3ZlckFub255bW91c0NvbnNlbnQ9Yy5kb21haW5EYXRhLkF1dGhlbnRpY2F0ZWRDb25zZW50LF8uY2hlY2tMb2NhbENvbnNlbnRGb3JJYWJQdXJwb3Nlcz1jLmNoZWNrTG9jYWxDb25zZW50Rm9ySWFiUHVycG9zZXMsXy5mb3JjZUNyZWF0ZVRyeExvY2FsQ29uc2VudElzR3JlYXRlcj1jLmZvcmNlQ3JlYXRlVHJ4TG9jYWxDb25zZW50SXNHcmVhdGVyLF8uc3R1YlVybD1jLnN0dWJVcmwsXy5zcmlIYXNoPWMuc3JpSGFzaCxfLmlzU2hvcGlmeT1jLmlzU2hvcGlmeSxfLmNyZWF0ZUxvZ2dlZG91dFRyYW5zPWMuY3JlYXRlTG9nZ2Vkb3V0VHJhbnMsVXQucG9wdWxhdGVMYW5nU3dpdGNoZXJQbGhkcigpLHdpbmRvdy5vdFN0dWJEYXRhPXt1c2VyTG9jYXRpb246RC51c2VyTG9jYXRpb259LHdpbmRvdy5PbmVUcnVzdFN0dWI9bnVsbCksZnVuY3Rpb24oKXtQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBpLHMsYSxsO3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4oeT1uZXcgY28sVj1uZXcgQ24saG89bmV3IHlvLGc9bmV3IEtzLE5uPW5ldyB3bixDPW5ldyBvcix1PW5ldyB2cixHPW5ldyBDcixncj1uZXcgaHIsenM9bmV3IFdzLGIuZnAuQ29va2llVjJUcmFja2luZ1RlY2hub2xvZ2llc3x8KElyPW5ldyBrcikscG89bmV3IENvLExvPW5ldyBFbyxGcz1uZXcgcXMsX249bmV3IE9uLFRyPW5ldyBQcixUbz1uZXcgUG8sTj1uZXcgcm8sJHM9bmV3IGVhLFduPW5ldyBZbixqdD1uZXcgS3QsR289bmV3IHVuLGJuPW5ldyBMbixCPW5ldyBRbixhcj1uZXcgbHIsZHI9bmV3IHVyLGZyPW5ldyBTcixyYT1uZXcgc2EsYi5tb2R1bGVJbml0aWFsaXplci5Nb2JpbGVTREs/WHM9bmV3IFFzOkxyPW5ldyBFcixTbz1uZXcgbW8sbj1MLmdldENvb2tpZShrLkFMRVJUX0JPWF9DTE9TRUQpLHI9TC5nZXRDb29raWUoay5PUFRBTk9OX0NPTlNFTlQpLG4mJiFyJiZMLnJlbW92ZUFsZXJ0Qm94KCksXy5zZXRHQ01jYWxsYmFjaygpLGw9Xy5nZXRSZWdpb25SdWxlKCksbD0oXy5jYW5Vc2VDb25kaXRpb25hbExvZ2ljP18uQ29uZGl0aW9uOmwpLlVzZUdvb2dsZVZlbmRvcnMsXy5pc0lhYjJvcnYyVGVtcGxhdGU9IklBQjIiPT09Xy5nZXRSZWdpb25SdWxlVHlwZSgpfHwiSUFCMlYyIj09PV8uZ2V0UmVnaW9uUnVsZVR5cGUoKSxfLmlzVGNmVjJUZW1wbGF0ZT0iSUFCMlYyIj09PV8uZ2V0UmVnaW9uUnVsZVR5cGUoKSxfLmlzSWFiMm9ydjJUZW1wbGF0ZSk/WzQsUHJvbWlzZS5hbGwoW2p0LmdldExhbmdKc29uKCksanQuZmV0Y2hHdmxPYmooKSxsP2p0LmZldGNoR29vZ2xlVmVuZG9ycygpOlByb21pc2UucmVzb2x2ZShudWxsKSxqdC5sb2FkQ01QKCldKV06WzMsMl07Y2FzZSAxOnJldHVybiBsPWUuc2VudCgpLGk9bFswXSxzPWxbMV0sYT1sWzJdLEQuZ3ZsT2JqPXMsRC5hZGR0bFZlbmRvcnNMaXN0PWE/YS52ZW5kb3JzOm51bGwsWzMsNF07Y2FzZSAyOnJldHVybls0LGp0LmdldExhbmdKc29uKCldO2Nhc2UgMzppPWUuc2VudCgpLGUubGFiZWw9NDtjYXNlIDQ6cmV0dXJuIGkuRG9tYWluRGF0YS5Jc0dQUEVuYWJsZWQ/WzQsanQubG9hZEdQUCgpXTpbMyw2XTtjYXNlIDU6ZS5zZW50KCksVnM9bmV3IEJzLGUubGFiZWw9NjtjYXNlIDY6cmV0dXJuIGkuRG9tYWluRGF0YS5QQ1Nob3dEb3VibGVPcHRJblNpZ25hbD9bNCxqdC5sb2FkQ29uZmlybURpYWxvZygpXTpbMyw4XTtjYXNlIDc6ZS5zZW50KCksd2luZG93Lk9uZVRydXN0X0NvbmZpcm1EaWFsb2cmJndpbmRvdy5PbmVUcnVzdF9Db25maXJtRGlhbG9nLmluaXRDb25maXJtRGlhbG9nKCksZS5sYWJlbD04O2Nhc2UgODp2YXIgdCxvO3JldHVybiBmdW5jdGlvbih2KXt2YXIgVDtQKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBtO3JldHVybiBBKHRoaXMsZnVuY3Rpb24oZSl7c3dpdGNoKGUubGFiZWwpe2Nhc2UgMDp3aW5kb3cuT25lVHJ1c3Q9d2luZG93Lk9wdGFub249T2JqZWN0LmFzc2lnbih7fSx3aW5kb3cuT25lVHJ1c3QsKGU9Pnt2YXIgdCxvPWIubW9kdWxlSW5pdGlhbGl6ZXIuTW9iaWxlU0RLLG49e0FsbG93QWxsOih0PW8/WHM6THIpLkFsbG93QWxsLEJsb2NrR29vZ2xlQW5hbHl0aWNzOnQuQmxvY2tHb29nbGVBbmFseXRpY3MsQ2xvc2U6dC5DbG9zZSxnZXRDU1M6dC5nZXRDU1MsR2V0RG9tYWluRGF0YTp0LkdldERvbWFpbkRhdGEsZ2V0R2VvbG9jYXRpb25EYXRhOnQuZ2V0R2VvbG9jYXRpb25EYXRhLGdldEhUTUw6dC5nZXRIVE1MLEluaXQ6dC5Jbml0LEluaXRpYWxpemVCYW5uZXI6dC5Jbml0aWFsaXplQmFubmVyLGluaXRpYWxpemVDb29raWVQb2xpY3lIdG1sOnQuaW5pdENvb2tpZVBvbGljeUFuZFNldHRpbmdzLEluc2VydEh0bWw6dC5JbnNlcnRIdG1sLEluc2VydFNjcmlwdDp0Lkluc2VydFNjcmlwdCxJc0FsZXJ0Qm94Q2xvc2VkOnQuSXNBbGVydEJveENsb3NlZCxJc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQ6dC5Jc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQsTG9hZEJhbm5lcjp0LkxvYWRCYW5uZXIsT25Db25zZW50Q2hhbmdlZDpUby5PbkNvbnNlbnRDaGFuZ2VkLFJlY29uc2VudEdyb3Vwczp0LlJlY29uc2VudEdyb3VwcyxSZWplY3RBbGw6dC5SZWplY3RBbGwsU2V0QWxlcnRCb3hDbG9zZWQ6dC5TZXRBbGVydEJveENsb3NlZCxzZXRHZW9Mb2NhdGlvbjp0LnNldEdlb0xvY2F0aW9uLFRvZ2dsZUluZm9EaXNwbGF5OnQuVG9nZ2xlSW5mb0Rpc3BsYXksVHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50OnQuVHJpZ2dlckdvb2dsZUFuYWx5dGljc0V2ZW50LHVzZUdlb0xvY2F0aW9uU2VydmljZTp0LnVzZUdlb0xvY2F0aW9uU2VydmljZSxGZXRjaEFuZERvd25sb2FkUEM6dC5GZXRjaEFuZERvd25sb2FkUEMsY2hhbmdlTGFuZ3VhZ2U6dC5jaGFuZ2VMYW5nLHRlc3RMb2c6dC5nZXRUZXN0TG9nRGF0YSxVcGRhdGVDb25zZW50OnQudXBkYXRlU2luZ3VsYXJDb25zZW50LElzVmVuZG9yU2VydmljZUVuYWJsZWQ6dC52ZW5kb3JTZXJ2aWNlRW5hYmxlZCxVcGRhdGVHQ006dC51cGRhdGVHQ019O3JldHVybiBlLklzQ29uc2VudExvZ2dpbmdFbmFibGVkJiYobi5nZXREYXRhU3ViamVjdElkPXQuZ2V0RGF0YVN1YmplY3RJZCxuLnNldENvbnNlbnRQcm9maWxlPXQuc2V0Q29uc2VudFByb2ZpbGUsbi5zZXREYXRhU3ViamVjdElkPXQuc2V0RGF0YVN1YmplY3RJZFYyLG4uZ2V0RFNEZWZhdWx0SWRlbnRpZmllcj10LmdldERTRGVmYXVsdElkZW50aWZpZXIsRC5pc1YyU3R1Yj9uLnN5bmNDb25zZW50UHJvZmlsZT0kcy5zeW5jQ29uc2VudFByb2ZpbGU6bi5TZW5kUmVjZWlwdD10LnNlbmRSZWNlaXB0KSxvJiYobi5tb2JpbGVPbmxpbmVVUkw9dC5tb2JpbGVPbmxpbmVVUkwsbi5vdENvb2tpZURhdGE9RC5vdENvb2tpZURhdGEpLGUuSXNJYWJFbmFibGVkJiYobi51cGRhdGVDb25zZW50RnJvbUNvb2tpZXM9VG8udXBkYXRlQ29uc2VudEZyb21Db29raWUsbi5nZXRQaW5nUmVxdWVzdD1Tby5nZXRQaW5nUmVxdWVzdEZvclRjZixuLmdldFZlbmRvckNvbnNlbnRzUmVxdWVzdFYyPVNvLmdldFZlbmRvckNvbnNlbnRzUmVxdWVzdFYyLG4uc2hvd1ZlbmRvcnNMaXN0PXQuc2hvd1ZlbmRvcnNMaXN0KSxufSkodi5Eb21haW5EYXRhKSksdy5pbml0aWFsaXplQmFubmVyVmFyaWFibGVzKHYpLElvPW5ldyBrbyx3bz1uZXcgVm8seHM9bmV3IEhzLHluPW5ldyBJbixPbz1uZXcgRG8scnI9bmV3IGlyLEJuPW5ldyBLbjt2YXIgdD13aW5kb3cuT1RFeHRlcm5hbENvbnNlbnQ7aWYodCYmdC5jb25zZW50ZWREYXRlJiYodC5ncm91cHN8fHQuZHNJZHx8dC50Y1N0cmluZ3x8dC5hZGR0bFN0cmluZykpe2NvbnNvbGUuaW5mbygiQ29uc2VudCBpcyBiZWluZyBwYXNzZWQgdG8gU0RLIHRocm91Z2ggT1RFeHRlcm5hbENvbnNlbnQgYW5kIGlzIGFjY2VwdGVkLiIsdCk7dmFyIG89W10sbj10Lmdyb3Vwcy5zcGxpdCgiLCIpO2lmKG4uZm9yRWFjaChmdW5jdGlvbihlKXtlPWUuc3BsaXQoIjoiKTtvLnB1c2goe2xhc3RJbnRlcmFjdGlvbkRhdGU6dC5jb25zZW50ZWREYXRlLHN0YXR1czoiMSI9PT1lWzFdP0hbSC5BQ1RJVkVdOkhbSC5PUFRfT1VUXSxpZDplWzBdfSksRC5ncnBzU3luY2VkLnB1c2goZVswXSl9KSxELmNvbnNlbnRQcmVmZXJlbmNlcz17cHVycG9zZXM6W10sZ2FjU3RyaW5nOiIiLGNvbnNlbnRTdHJpbmdzOltdfSxELnN5bmNSZXF1aXJlZD0hMCxJby51cGRhdGVHcm91cHNJbkNvb2tpZShrLk9QVEFOT05fQ09OU0VOVCxuKSxMLnNldENvb2tpZShrLkFMRVJUX0JPWF9DTE9TRUQsdC5jb25zZW50ZWREYXRlLDM2NSksdC5kc0lkJiYhTC5yZWFkQ29va2llUGFyYW0oay5PUFRBTk9OX0NPTlNFTlQsSS5DT05TRU5UX0lELCEwKSYmTC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuQ09OU0VOVF9JRCx0LmRzSWQpLHQudGNTdHJpbmcpe0QuaXNJYWJTeW5jZWQ9ITA7Zm9yKHZhciByPUwuZ2V0Q29va2llc0NodW5rKHQudGNTdHJpbmcsay5FVV9QVUJfQ09OU0VOVCksaT0wLHM9T2JqZWN0LmtleXMocik7aTxzLmxlbmd0aDtpKyspe3ZhciBhPXNbaV07TC5zZXRDb29raWUoYSxyW2FdLDM2NSl9fXQuYWRkdGxTdHJpbmcmJihELmlzR2FjU3luY2VkPSEwLEwuc2V0Q29va2llKGsuQURESVRJT05BTF9DT05TRU5UX1NUUklORywiIit0LmFkZHRsU3RyaW5nLDM2NSkpfUQuaXNQcmV2aWV3JiYody5zeW5jT3RQcmV2aWV3Q29va2llKCksb2EuYmluZFN0b3BQcmV2aWV3RXZlbnQoKSksRC5pc1YyU3R1YiYmKG49JHMuc3luY1ByZWZlcmVuY2VzKEQuY29uc2VudFByZWZlcmVuY2VzLCEwKSxjPSRzLmNoZWNrQ2FycnlPdmVyQW5vbkNvbnNlbnRGb3JJQUIoKSxkPWMuaWFiU3luY1JlcXVpcmVkLGM9Yy5sYXRlc3RDb25zZW50RGF0ZSxkJiYobi5hbGVydEJveENvb2tpZVZhbD1jLnRvSVNPU3RyaW5nKCkpLG4uc3luY1JlcXVpcmVkPW4uc3luY1JlcXVpcmVkfHxkLChELnN5bmNSZXF1aXJlZHx8bi5zeW5jUmVxdWlyZWQpJiZ3LnN5bmNBbGVydEJveENvb2tpZShuLmFsZXJ0Qm94Q29va2llVmFsKSxuLmdwY092ZXJyaWRlQXBwbGllZCkmJm4ucHJvZmlsZUZvdW5kJiYoRC5zeW5jUmVxdWlyZWQ9ITAsTC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULCJncm91cHMiLG4uZ3JvdXBzQ29uc2VudC50b1N0cmluZygpKSx3LnN5bmNBbGVydEJveENvb2tpZShuLmFsZXJ0Qm94Q29va2llVmFsKSxGcy5pbml0R3Jwc0FuZEhvc3RzKCksX24udXBkYXRlR3RtTWFjcm9zKCEwKSxPLklzQ29uc2VudExvZ2dpbmdFbmFibGVkKSYmeHMuY3JlYXRlQ29uc2VudFR4bighMSwiR1BDIHZhbHVlIGNoYW5nZWQiLCExLCEwLCEwLCJHUEMiKSx3LnN5bmNDb29raWVFeHBpcnkoKTt2YXIgbCxjPXYsZD13aW5kb3cuT25lVHJ1c3QuZGF0YVN1YmplY3RQYXJhbXN8fHt9LGQ9KChELmRzUGFyYW1zPWQpLmlkJiYobD1kLmlkZW50aWZpZXJUeXBlfHwobnVsbD09KGw9Yy5Db21tb25EYXRhLkNvbnNlbnRJbnRlZ3JhdGlvbik/dm9pZCAwOmwuRGVmYXVsdElkZW50aWZpZXIpLExyLnNldERhdGFTdWJqZWN0SWRWMihkLmlkLGQuaXNBbm9ueW1vdXMsbCkpLG51bGw9PShsPWQuaWRlbnRpZmllclR5cGUpP3ZvaWQgMDpsLnRyaW0oKSk7cmV0dXJuIEQuaXNWMlN0dWImJihsPXZvaWQgMCxmPW51bGw9PShmPUQuaWRlbnRpZmllclR5cGUpP3ZvaWQgMDpmLnRyaW0oKSxsPWZ8fGR8fChudWxsPT0oZj1jLkNvbW1vbkRhdGEuQ29uc2VudEludGVncmF0aW9uKT92b2lkIDA6Zi5EZWZhdWx0SWRlbnRpZmllciksTC53cml0ZUNvb2tpZVBhcmFtKGsuT1BUQU5PTl9DT05TRU5ULEkuSURFTlRJRklFUl9UWVBFLGwpKSxfLm11bHRpVmFyaWFudFRlc3RpbmdFbmFibGVkJiZfLnNlbGVjdGVkVmFyaWFudCYmTC5zZXRDb29raWUoay5TRUxFQ1RFRF9WQVJJQU5ULF8uc2VsZWN0ZWRWYXJpYW50LklkLE8uUmVjb25zZW50RnJlcXVlbmN5RGF5cyksRC5pc1YyU3R1YiYmbnVsbCE9KFQ9Xy5sYW5kaW5nUGF0aCkmJlQubGVuZ3RoJiZPLk5leHRQYWdlQ2xvc2VCYW5uZXImJk9vLnNldExhbmRpbmdQYXRoUGFyYW0oXy5sYW5kaW5nUGF0aCksWzQsU28uaW5pdGlhbGl6ZUlBQk1vZHVsZSgpXTtjYXNlIDE6cmV0dXJuIGUuc2VudCgpLFs0LGZ1bmN0aW9uKCl7dmFyIG87cmV0dXJuIFAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIEEodGhpcyxmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBudWxsPT0obz1PKXx8IW8uQUNNRGF0YXx8IU8uQUNNRGF0YS5FbmFibGVkfHxudWxsIT0obz1ELnVzZXJMb2NhdGlvbikmJm8uY291bnRyeT9bMywyXTpbNCxqdC5nZXRHZW9sb2NhdGlvbihiLm1vZHVsZUluaXRpYWxpemVyKV07Y2FzZSAxOnQ9ZS5zZW50KCksRC51c2VyTG9jYXRpb249e2NvdW50cnk6dC5jb3VudHJ5LHN0YXRlOnQuc3RhdGUsc3RhdGVOYW1lOnQuc3RhdGVOYW1lfSxlLmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KX0pfSgpXTtjYXNlIDI6cmV0dXJuIGUuc2VudCgpLHdpbmRvdy5PbmVUcnVzdC5Jbml0KCEwKSx2LkRvbWFpbkRhdGEuSXNHUFBFbmFibGVkJiZWcy5pbml0R3BwQ29uc2VudCgpLFs0LEZzLmZldGNoQXNzZXRzKCldO2Nhc2UgMzplLnNlbnQoKSx6cy5pbml0QmFubmVyKCksVG8uYXNzZXRSZXNvbHZlKCEwKSxwby5pbml0aWFsaXNlQ3NzUmVmZXJlbmNlcygpLG09dy5pc0lBQkNyb3NzQ29uc2VudEVuYWJsZWQoKTt2YXIgdSxwLEMsZyxoLHksZj12O2lmKEQuaXNWMlN0dWImJl8uY3JlYXRlTG9nZ2Vkb3V0VHJhbnMpdHJ5e08uQ29uc2VudEludGVncmF0aW9ufHwoTy5Db25zZW50SW50ZWdyYXRpb249KG51bGw9PShwPW51bGw9PSh1PWYpP3ZvaWQgMDp1LkNvbW1vbkRhdGEpP3ZvaWQgMDpwLkNvbnNlbnRJbnRlZ3JhdGlvbil8fChudWxsPT0oQz1mKT92b2lkIDA6Qy5Db25zZW50SW50ZWdyYXRpb24pfHx7fSk7dmFyIFM9Ty5Db25zZW50SW50ZWdyYXRpb247Qm9vbGVhbigobnVsbD09KGc9Uyk/dm9pZCAwOmcuQ29uc2VudEFwaSl8fChudWxsPT0oaD1TKT92b2lkIDA6aC5Bbm9ueW1vdXNDb25zZW50QXBpKXx8KG51bGw9PSh5PVMpP3ZvaWQgMDp5LkNST0NvbnNlbnRBcGkpKSYmeHMmJnhzLmNyZWF0ZUNvbnNlbnRUeG4oITEsdWVbMTJdLCExLCEwLCEwKX1jYXRjaChlKXtjb25zb2xlLmluZm8oIkVycm9yIGNyZWF0aW5nIGFub255bW91cyByZWNlaXB0IG9uIGxvZ291dCIsZSl9ZmluYWxseXtfLmNyZWF0ZUxvZ2dlZG91dFRyYW5zPSExfXJldHVybihELnN5bmNlZFZhbGlkR3JwfHxELmlzSWFiU3luY2VkfHxELmlzR2FjU3luY2VkKSYmIW0mJk8uTnRmeUNvbmZpZy5TaG93TnRmeSYmdy5pc0FsZXJ0Qm94Q2xvc2VkQW5kVmFsaWQoKT8oRC5udGZ5UmVxdWlyZWQ9ITAsWzQsQm4uZ2V0Q29udGVudCgpXSk6WzMsNV07Y2FzZSA0OmUuc2VudCgpLGUubGFiZWw9NTtjYXNlIDU6cmV0dXJuIG18fHdpbmRvdy5PbmVUcnVzdC5Mb2FkQmFubmVyKCksWzJdfXZhciBkLGN9KX0pfShpKSxiLm1vZHVsZUluaXRpYWxpemVyLldlYkZvcm1JbnRlZ3JhdGlvbkVuYWJsZWQmJmIubW9kdWxlSW5pdGlhbGl6ZXIuV2ViRm9ybVNyY1VybCYmKG49d2luZG93Lm90U3R1YkRhdGEscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSx0PWIubW9kdWxlSW5pdGlhbGl6ZXIuV2ViRm9ybVNyY1VybCxyLnR5cGU9InRleHQvamF2YXNjcmlwdCIsci5zcmM9dCxvPWIubW9kdWxlSW5pdGlhbGl6ZXIuVGVuYW50R3VpZCxiLm1vZHVsZUluaXRpYWxpemVyLlNjcmlwdFR5cGU9PT1VZS5URVNUJiYobys9Ii10ZXN0Iiksci5zZXRBdHRyaWJ1dGUoImRhdGFJZCIsbyksci5zZXRBdHRyaWJ1dGUoIndvcmtlciIsYi5tb2R1bGVJbml0aWFsaXplci5XZWJGb3JtV29ya2VyVXJsKSxuLmNoYXJzZXQmJnIuc2V0QXR0cmlidXRlKCJjaGFyc2V0IixuLmNoYXJzZXQpLG4uY3Jvc3NPcmlnaW4mJnIuc2V0QXR0cmlidXRlKCJjcm9zc29yaWdpbiIsbi5jcm9zc09yaWdpbiksZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYz0iJyt0KyciXScpfHxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHIpKSxyYS50cmFja1Nlc3Npb24oKSxbMl19dmFyIG4scn0pfSl9KCl9KSgpOwo="}},"time_used":12,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":10,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"as.coinbase.com/amp","fqdn":"as.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"beacon","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:09.719Z","timestamp":1785108249719,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /amp HTTP/1.1\r\nHost: as.coinbase.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.coinbase.com/\r\nContent-Type: application/x-www-form-urlencoded; charset=utf-8\r\nContent-Length: 5565\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB; cb_consent_preferences=%7B%22strictlyNecessary%22%3Afalse%2C%22performance%22%3Afalse%2C%22functional%22%3Afalse%2C%22targeting%22%3Afalse%7D; OptanonConsent=isGpcEnabled=1\u0026datestamp=Sun+Jul+26+2026+23%3A24%3A09+GMT%2B0000+(Coordinated+Universal+Time)\u0026version=202602.1.0\u0026browserGpcFlag=1\u0026isIABGlobal=false\u0026identifierType=Email\u0026consentId=f124ab0a-03c5-4b9c-96a7-c17303c8e367\u0026interactionCount=1\u0026isAnonUser=1\u0026prevHadToken=0\u0026iType=7\u0026intType=7\u0026hosts=\u0026landingPath=https%3A%2F%2Fwww.coinbase.com%2F\u0026groups=C0001%3A1%2CC0003%3A0%2CC0004%3A0%2CC0002%3A0\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=6\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":5565,"data":"e=%5B%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108246848%2C%22event_id%22%3A15%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22ucpm_cookies_removed%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22process%22%2C%22product%22%3A%22coinbase%22%2C%22count%22%3A1%2C%22cookieNames%22%3A%22g_state%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22banner%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22trace_id%22%3A%2214592905212061344081%22%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%2218a644dc-db0f-43d8-a235-f49e139823d7%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A15%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108249078%2C%22event_id%22%3A16%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22ucpm_script_loaded%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22view%22%2C%22product%22%3A%22coinbase%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22banner%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22trace_id%22%3A%2214592905212061344081%22%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%220fff3efe-de94-432e-bef4-38ed92f14de4%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A16%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108249078%2C%22event_id%22%3A17%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22ucpm_banner_visible%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22view%22%2C%22product%22%3A%22coinbase%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22banner%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22trace_id%22%3A%2214592905212061344081%22%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%2229ef5acb-623d-4023-a11e-cc5b3013e291%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A17%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%5D\u0026v=2\u0026upload_time=1785108249718\u0026client=132e62b5953ce8d568137d5887b6b7ab"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:09 GMT\r\ncontent-type: text/plain; charset=utf-8\r\ncontent-length: 7\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\naccess-control-allow-origin: *\r\nserver: cloudflare\r\ntrace-id: 5089198479685047038\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Ju4dvi1M8Zm8TMlIW%2B27mdkFVGR6Ls6PVAJnF95Wr0b2e7WZ0z7%2FIwkbKVJgE%2Bgl2Qr1aC2z8vsEL5dzzqynVln%2FVfYef4hfb8EfRw6dybUTZzM4f5SRaEkOSPzVhHSxGA%3D%3D\"}]}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a2172800ca671525-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":7,"size_decoded":712,"mime_type":"text/plain; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"260ca9dd8a4577fc00b7bd5810298076","sha1":"53a5687cb26dc41f2ab4033e97e13adefd3740d6","sha256":"aee408847d35e44e99430f0979c3357b85fe8dbb4535a494301198adbee85f27","sha512":"51e85deb51c2b909a21ec5b8e83b1cb28da258b1be227620105a345a2bd4c6aea549cd5429670f2df33324667b9f623a420b3a0bdbbd03ad48602211e75478a7","ssdeep":"","tlshash":"c0400003000000c000000000000000003000000000000000c00000000f0000000c3000","first_seen":"2023-04-05T04:46:42Z","last_seen":"2026-07-26T23:32:20.195442Z","times_seen":35925,"resource_available":true,"data":"c3VjY2Vzcw=="}},"time_used":112,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":112,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"as.coinbase.com/traces","fqdn":"as.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:10.913Z","timestamp":1785108250913,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /traces HTTP/1.1\r\nHost: as.coinbase.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.coinbase.com/\r\nContent-Type: text/plain;charset=UTF-8\r\nContent-Length: 395\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":395,"data":"{\"traces\":[[{\"duration\":140000000,\"name\":\"graphql-query\",\"resource\":\"useAnonTouchCaptureMutation\",\"service\":\"consumer\",\"span_id\":\"13625275887798354951\",\"start\":1940000000,\"trace_id\":\"14592905212061344081\",\"parent_id\":\"1\",\"type\":\"web\",\"meta\":{\"platform\":\"web\",\"page_key\":\"homepage\",\"ujs\":\"ujs_load_homepage_screen\",\"version\":\"de89472f041857c92d39c517b49c360b7e08e578\",\"tier\":\"3\"},\"metrics\":{}}]]}"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:11 GMT\r\ncontent-type: text/plain; charset=utf-8\r\ncontent-length: 7\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\naccess-control-allow-origin: *\r\nserver: cloudflare\r\nx-content-type-options: nosniff\r\ntrace-id: 5266552904569098658\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=bs7RXwqvT51XQLUC2O1TYbQYlNaPS6sJtfQeD2I0V7e3nR1wbc5jUgVwdKCh1ssS3uqBea1nEA65sMtLkNhrgRz1d4Ka2B8FzrSfxA2ni%2F3DkThVCt%2BwQrWeODovuH8SQg%3D%3D\"}]}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nset-cookie: cb_dm=d3fd10c6-9dd6-4217-ba9b-c5444f9f2689; Path=/; Domain=coinbase.com; Expires=Sat, 26 Jul 2036 23:24:10 GMT; HttpOnly; Secure\n__cf_bm=J3q8rstuHPrcyWnbiIFLqCZVLOtR_Zc_F84wL7yaM8g-1785108250.9176104-1.0.1.1-hOHA7fUD44nmPClBlhrwFi0MLwIi0Mg4JILrBa2zPtTgtkyGCXhZ_yCeiMoIfxO7.YagD_F1stOfCvz4Lee6O81UWiztQDnIoNdmZbP.VVNXOPxfhdeQn346ENc8PpVo; HttpOnly; SameSite=None; Secure; Path=/; Domain=coinbase.com; Expires=Sun, 26 Jul 2026 23:54:11 GMT\r\ncf-ray: a217280838a91525-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":7,"size_decoded":1159,"mime_type":"text/plain; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"260ca9dd8a4577fc00b7bd5810298076","sha1":"53a5687cb26dc41f2ab4033e97e13adefd3740d6","sha256":"aee408847d35e44e99430f0979c3357b85fe8dbb4535a494301198adbee85f27","sha512":"51e85deb51c2b909a21ec5b8e83b1cb28da258b1be227620105a345a2bd4c6aea549cd5429670f2df33324667b9f623a420b3a0bdbbd03ad48602211e75478a7","ssdeep":"","tlshash":"c0400003000000c000000000000000003000000000000000c00000000f0000000c3000","first_seen":"2023-04-05T04:46:42Z","last_seen":"2026-07-26T23:32:20.195442Z","times_seen":35925,"resource_available":true,"data":"c3VjY2Vzcw=="}},"time_used":112,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":112,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"images.ctfassets.net/o10es7wu5gm1/4lbSrfvF333XkPz7WycixQ/afbeefb68eab9405594b2e9bfbb9a152/Hero__4_.png?fm=avif\u0026w=1800\u0026h=1800\u0026q=65","fqdn":"images.ctfassets.net","domain":"ctfassets.net","tld":"net"},"ip":{"addr":"108.157.229.92","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"imageset","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.063Z","timestamp":1785108244063,"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":"images.ctfassets.net","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Sat, 18 Oct 2025 00:00:00 GMT","end":"Sun, 15 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"3E:39:C1:37:7A:6B:60:8A:D5:73:9E:D7:C4:F9:3A:11:9B:BD:94:2B","sha256":"AC:EA:37:10:54:C2:91:B5:04:B8:B4:CA:CD:35:48:4D:D0:92:78:F6:E2:8B:D9:57:78:20:D6:74:FE:14:16:A9"}}},"request":{"raw":"GET /o10es7wu5gm1/4lbSrfvF333XkPz7WycixQ/afbeefb68eab9405594b2e9bfbb9a152/Hero__4_.png?fm=avif\u0026w=1800\u0026h=1800\u0026q=65 HTTP/1.1\r\nHost: images.ctfassets.net\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\nReferer: https://www.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\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\ncontent-type: image/avif\r\ncontent-length: 32871\r\nlast-modified: Sat, 20 Jun 2026 22:48:18 GMT\r\nserver: Contentful Images API\r\naccess-control-allow-origin: *\r\ndate: Sun, 26 Jul 2026 01:12:17 GMT\r\ncache-control: max-age=31536000\r\netag: \"d493544583f9b4f682c40cfc0df82ede\"\r\nvary: Accept-Encoding\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 3346055bb53a57ebf02828b88e1ee87c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN56-P2\r\nx-amz-cf-id: LbPY7OElvKqDkKOpUsU0qK4A5jcaRd3mZJiYsp8wKfOk0ezVb7hD6A==\r\nage: 79907\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 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":32871,"size_decoded":33407,"mime_type":"image/avif","magic":"ISO Media, AVIF Image","md5":"d493544583f9b4f682c40cfc0df82ede","sha1":"ca89238c6e5af2081d7e6949639b15520f2593b7","sha256":"ac0580bfe7428d4ff42da93009cc8a6fade03ed2dcd1c6f3a3e52677599effe9","sha512":"aa6b9af904109f4e23ce9513561c4174e1e8644a194c0bfb266c6e2e7c68d52ae2583e0ca1ec0d21b13c22de8e2bf09dc42bafdafc40cb3c7428dca51203548a","ssdeep":"768:thxMCtktGOjJXL2tdhFuU4QQrjmGGxsglvnSlWHp4+Cr:bUcd14Qcmpxs6dCr","tlshash":"2ae2f12a585289e8f646723c03d9df6e22ee5e330d032753ca5a33b936db1e050755bc","first_seen":"2025-12-20T15:09:39.254778Z","last_seen":"2026-07-26T23:25:46.845715Z","times_seen":57,"resource_available":false,"data":"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"}},"time_used":37,"timings":{"blocked":-1,"dns":2,"connect":8,"send":0,"wait":10,"receive":2,"ssl":15},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BYxdTOkd.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.644Z","timestamp":1785108244644,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_BYxdTOkd.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 2186\r\nlast-modified: Sun, 26 Jul 2026 22:31:17 GMT\r\netag: \"7aef41eb4af36065f9f06804cf3cda28\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 26512aa427c30d93015b4bde75974708.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: SQSnkjGhb7a4c5ZDEbTDD7Oje8oPUwrt1oCpLj0utbbFQoYYFJDJIQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 2633\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=%2ByV55%2FN6wgbVHQf4m8pJTHGEPoH8r7QHDJ9ytZ0zsk8Od77Roz8TF0xYrgC16xOrQmLcLBDMgYAzYlFy6DM9%2F5mq9lmx3sviq2hKWP%2BrwWCGTQEojLLEk31IS0nBiz%2B6cuoxRVg5bTlYnEfA4j96\"}]}\r\ncf-ray: a21727e10e670883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":6632,"size_decoded":3345,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (6593)","md5":"b473d109d9a8fd750517488edb7fee2a","sha1":"8c65e75e46ecf3f009dee71a0c4aa7eb1f610d06","sha256":"655e7ccad86e5f6c42ed9841a32543b2b0fcbaee19abb454306d6c26d4f48022","sha512":"8e1443faaef1c0f5d99b3241ecb8ba5c7dc0c3591170d449e73fee9b543c652079b64d43e707dabe9730441b24d02890dbb2e679e784fccc0e18197d0f3dbe80","ssdeep":"96:xi3bAf4hoKXVDpXFVGwfayvsbQN8CW7cNhZ9GUNPghypINUNVkUDnd46U:J4hoiVt1fDqXynVhnTU","tlshash":"60d19985f1f87630b01f878d80eb4986760a7446cd7cabe6b1372ea80fd419934a2e57","first_seen":"2026-07-26T23:24:50.257438Z","last_seen":"2026-07-26T23:25:46.873721Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGM4Y2U4MDAzLWU3ZTQtNDBhYi1iZjYwLTA1YzIyZTQyZmY2YmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWM4Y2U4MDAzLWU3ZTQtNDBhYi1iZjYwLTA1YzIyZTQyZmY2YmApfSkoKX1jYXRjaHt9aW1wb3J0e1NsIGFzIGUsVnMgYXMgdCxXcCBhcyBuLFljIGFzIHIsYmwgYXMgaSxjZCBhcyBhLGRkIGFzIGVlLGZkIGFzIG8sZmYgYXMgcyxoZiBhcyBjLG9kIGFzIGwsc2wgYXMgdGUseGwgYXMgdX1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIGQ9bihjKCkpLGY9e2luZm9ybWF0aW9uYWw6e2JhY2tncm91bmQ6YGJnU2Vjb25kYXJ5YCxpY29uQ29sb3I6YGZnUHJpbWFyeWAsdGV4dENvbG9yOmBmZ2AscHJpbWFyeUFjdGlvbkNvbG9yOmBmZ1ByaW1hcnlgLHNlY29uZGFyeUFjdGlvbkNvbG9yOmBmZ2AsaWNvbkJ1dHRvbkNvbG9yOmBmZ2AsYm9yZGVyQ29sb3I6YGJnUHJpbWFyeWB9LHByb21vdGlvbmFsOntiYWNrZ3JvdW5kOmBiZ1ByaW1hcnlXYXNoYCxpY29uQ29sb3I6YGZnUHJpbWFyeWAsdGV4dENvbG9yOmBmZ2AscHJpbWFyeUFjdGlvbkNvbG9yOmBmZ1ByaW1hcnlgLHNlY29uZGFyeUFjdGlvbkNvbG9yOmBmZ2AsaWNvbkJ1dHRvbkNvbG9yOmBmZ2AsYm9yZGVyQ29sb3I6YGJnUHJpbWFyeWB9LHdhcm5pbmc6e2JhY2tncm91bmQ6YGJnV2FybmluZ1dhc2hgLGljb25Db2xvcjpgZmdXYXJuaW5nYCx0ZXh0Q29sb3I6YGZnYCxwcmltYXJ5QWN0aW9uQ29sb3I6YGZnUHJpbWFyeWAsc2Vjb25kYXJ5QWN0aW9uQ29sb3I6YGZnYCxpY29uQnV0dG9uQ29sb3I6YGZnYCxib3JkZXJDb2xvcjpgYmdXYXJuaW5nYH0sZXJyb3I6e2JhY2tncm91bmQ6YGJnTmVnYXRpdmVXYXNoYCxpY29uQ29sb3I6YGZnTmVnYXRpdmVgLHRleHRDb2xvcjpgZmdgLHByaW1hcnlBY3Rpb25Db2xvcjpgZmdQcmltYXJ5YCxzZWNvbmRhcnlBY3Rpb25Db2xvcjpgZmdgLGljb25CdXR0b25Db2xvcjpgZmdgLGJvcmRlckNvbG9yOmBiZ05lZ2F0aXZlYH19LHA9cygpLG09YHZhcmlhbnQuc3RhcnRJY29uLnN0YXJ0SWNvbkFjdGl2ZS5vbkNsb3NlLnByaW1hcnlBY3Rpb24uc2Vjb25kYXJ5QWN0aW9uLnRpdGxlLmNoaWxkcmVuLnNob3dEaXNtaXNzLnRlc3RJRC5zdHlsZS5jbGFzc05hbWUubnVtYmVyT2ZMaW5lcy5sYWJlbC5zdHlsZVZhcmlhbnQuc3RhcnRJY29uQWNjZXNzaWJpbGl0eUxhYmVsLmNsb3NlQWNjZXNzaWJpbGl0eUxhYmVsLmJvcmRlclJhZGl1cy5tYXJnaW4ubWFyZ2luWS5tYXJnaW5YLm1hcmdpblRvcC5tYXJnaW5Cb3R0b20ubWFyZ2luU3RhcnQubWFyZ2luRW5kLndpZHRoLmNsYXNzTmFtZXMuc3R5bGVzYC5zcGxpdChgLmApO2Z1bmN0aW9uIGgoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBnKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP2goT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe18oZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6aChPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gXyhlLHQsbil7cmV0dXJuKHQ9dih0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiB2KGUpe3ZhciB0PXkoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24geShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIGIoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT14KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1mdW5jdGlvbiB4KGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgUz1gYWN0aW9uQ29udGFpbmVyQ3NzLWFqeGM0ODdgLG5lPXtwaG9uZTpgY29sdW1uYCx0YWJsZXQ6YHJvd2AsZGVza3RvcDpgcm93YH0sQz17cm9vdDpgY2RzLUJhbm5lcmAsY29udGVudDpgY2RzLUJhbm5lci1jb250ZW50YCxzdGFydDpgY2RzLUJhbm5lci1zdGFydGAsYm9keTpgY2RzLUJhbm5lci1ib2R5YCxtaWRkbGU6YGNkcy1CYW5uZXItbWlkZGxlYCxsYWJlbDpgY2RzLUJhbm5lci1sYWJlbGAsYWN0aW9uczpgY2RzLUJhbm5lci1hY3Rpb25zYCxkaXNtaXNzOmBjZHMtQmFubmVyLWRpc21pc3NgfSx3PSgwLGQubWVtbykoKDAsZC5mb3J3YXJkUmVmKSgobixzKT0+e2xldCBjPWVlKGBCYW5uZXJgLG4pLHt2YXJpYW50Omgsc3RhcnRJY29uOl8sc3RhcnRJY29uQWN0aXZlOnYsb25DbG9zZTp5LHByaW1hcnlBY3Rpb246eCxzZWNvbmRhcnlBY3Rpb246dyx0aXRsZTpULGNoaWxkcmVuOkUsc2hvd0Rpc21pc3M6RD0hMSx0ZXN0SUQ6TyxzdHlsZTpyZSxjbGFzc05hbWU6aWUsbnVtYmVyT2ZMaW5lczphZT0zLGxhYmVsOmssc3R5bGVWYXJpYW50OkE9YGNvbnRleHR1YWxgLHN0YXJ0SWNvbkFjY2Vzc2liaWxpdHlMYWJlbDpqLGNsb3NlQWNjZXNzaWJpbGl0eUxhYmVsOk09YGNsb3NlYCxib3JkZXJSYWRpdXM6b2U9QT09PWBjb250ZXh0dWFsYD80MDA6dm9pZCAwLG1hcmdpbjpOLG1hcmdpblk6UCxtYXJnaW5YOkYsbWFyZ2luVG9wOkksbWFyZ2luQm90dG9tOkwsbWFyZ2luU3RhcnQ6UixtYXJnaW5FbmQ6eix3aWR0aDpCPWAxMDAlYCxjbGFzc05hbWVzOlYsc3R5bGVzOkh9PWMsVT1iKGMsbSksW1csR109KDAsZC51c2VTdGF0ZSkoITEpLEs9KDAsZC51c2VJZCkoKSxzZT10eXBlb2YgVD09YHN0cmluZ2A/Szp2b2lkIDAse2ljb25Db2xvcjpjZSx0ZXh0Q29sb3I6cSxiYWNrZ3JvdW5kOmxlLHByaW1hcnlBY3Rpb25Db2xvcjpKLHNlY29uZGFyeUFjdGlvbkNvbG9yOlksaWNvbkJ1dHRvbkNvbG9yOnVlLGJvcmRlckNvbG9yOlh9PWZbaF0sZGU9KDAsZC51c2VDYWxsYmFjaykoKCk9PntHKCEwKSx5PT1udWxsfHx5KCl9LFt5XSksWj0oMCxkLnVzZU1lbW8pKCgpPT4oMCxkLmlzVmFsaWRFbGVtZW50KSh4KT94LnR5cGU9PT1yP2QuY2xvbmVFbGVtZW50KHgsZyh7Zm9udDpgbGFiZWwxYCxjb2xvcjpKLHRlc3RJRDpgJHtPfS1hY3Rpb24tLXByaW1hcnlgfSx4LnByb3BzKSk6ZC5jbG9uZUVsZW1lbnQoeCxnKHt0ZXN0SUQ6YCR7T30tYWN0aW9uLS1wcmltYXJ5YH0seC5wcm9wcykpOm51bGwsW3gsSixPXSksUT0oMCxkLnVzZU1lbW8pKCgpPT4oMCxkLmlzVmFsaWRFbGVtZW50KSh3KT93LnR5cGU9PT1yP2QuY2xvbmVFbGVtZW50KHcsZyh7Zm9udDpgbGFiZWwxYCxjb2xvcjpZLHRlc3RJRDpgJHtPfS1hY3Rpb24tLXNlY29uZGFyeWB9LHcucHJvcHMpKTpkLmNsb25lRWxlbWVudCh3LGcoe3Rlc3RJRDpgJHtPfS1hY3Rpb24tLXNlY29uZGFyeWB9LHcucHJvcHMpKTpudWxsLFt3LFksT10pLGZlPSgwLGQudXNlTWVtbykoKCk9Pih7bWFyZ2luOk4sbWFyZ2luWTpQLG1hcmdpblg6RixtYXJnaW5Ub3A6SSxtYXJnaW5Cb3R0b206TCxtYXJnaW5TdGFydDpSLG1hcmdpbkVuZDp6fSksW04sRixQLFIseixJLExdKSxwZT0oMCxkLnVzZU1lbW8pKCgpPT4oMCxwLmpzeCkoYSx7YmFja2dyb3VuZDpYLHBpbjpgbGVmdGAsd2lkdGg6NH0pLFtYXSksJD0oMCxwLmpzeHMpKHUsZyhnKHtyZWY6cyxiYWNrZ3JvdW5kOmxlLGJvcmRlclJhZGl1czpvZSxjbGFzc05hbWU6byhDLmNvbnRlbnQsaWUsVj09bnVsbD92b2lkIDA6Vi5jb250ZW50KSxmbGV4R3JvdzoxLGdhcDoxLG1pbldpZHRoOjMyMCxwYWRkaW5nWDpBPT09YGNvbnRleHR1YWxgPzI6MyxwYWRkaW5nWToyLHN0eWxlOmcoZyh7fSxyZSksSD09bnVsbD92b2lkIDA6SC5jb250ZW50KSx0ZXN0SUQ6T30sVSkse30se2NoaWxkcmVuOlsoMCxwLmpzeCkoYSx7Y2xhc3NOYW1lOm8oQy5zdGFydCxWPT1udWxsP3ZvaWQgMDpWLnN0YXJ0KSxwYWRkaW5nWDouNSxwYWRkaW5nWTouMjUsc3R5bGU6SD09bnVsbD92b2lkIDA6SC5zdGFydCxjaGlsZHJlbjooMCxwLmpzeCkoZSx7YWNjZXNzaWJpbGl0eUxhYmVsOmosYWN0aXZlOnYsY29sb3I6Y2UsbmFtZTpfLHNpemU6YHNgLHRlc3RJRDpgJHtPfS1pY29uYH0pfSksKDAscC5qc3hzKShpLHtjbGFzc05hbWU6byhDLmJvZHksVj09bnVsbD92b2lkIDA6Vi5ib2R5KSxmbGV4RGlyZWN0aW9uOm5lLGZsZXhHcm93OjEsZ2FwOjIsanVzdGlmeUNvbnRlbnQ6YHNwYWNlLWJldHdlZW5gLHN0eWxlOkg9PW51bGw/dm9pZCAwOkguYm9keSx0ZXN0SUQ6YCR7T30taW5uZXItZW5kLWJveGAsY2hpbGRyZW46WygwLHAuanN4cykoaSx7Y2xhc3NOYW1lOm8oQy5taWRkbGUsVj09bnVsbD92b2lkIDA6Vi5taWRkbGUpLGdhcDoyLHN0eWxlOkg9PW51bGw/dm9pZCAwOkgubWlkZGxlLHRlc3RJRDpgJHtPfS1jb250ZW50LWJveGAsY2hpbGRyZW46WygwLHAuanN4cykoaSx7Z2FwOi41LGNoaWxkcmVuOlt0eXBlb2YgVD09YHN0cmluZ2A/KDAscC5qc3gpKGwse2NvbG9yOnEsZm9udDpgbGFiZWwxYCxpZDpLLG51bWJlck9mTGluZXM6MixjaGlsZHJlbjpUfSk6VCx0eXBlb2YgRT09YHN0cmluZ2A/KDAscC5qc3gpKGwse2NvbG9yOnEsZm9udDpgbGFiZWwyYCxudW1iZXJPZkxpbmVzOmFlLGNoaWxkcmVuOkV9KTpFXX0pLHR5cGVvZiBrPT1gc3RyaW5nYD8oMCxwLmpzeCkobCx7Y2xhc3NOYW1lOm8oQy5sYWJlbCxWPT1udWxsP3ZvaWQgMDpWLmxhYmVsKSxjb2xvcjpgZmdNdXRlZGAsZm9udDpgbGVnYWxgLG51bWJlck9mTGluZXM6MixzdHlsZTpIPT1udWxsP3ZvaWQgMDpILmxhYmVsLGNoaWxkcmVuOmt9KTprXX0pLCghIVp8fCEhUSkmJigwLHAuanN4cykodSx7YWxpZ25JdGVtczpgY2VudGVyYCxjbGFzc05hbWU6byhTLEMuYWN0aW9ucyxWPT1udWxsP3ZvaWQgMDpWLmFjdGlvbnMpLGdhcDoyLHN0eWxlOkg9PW51bGw/dm9pZCAwOkguYWN0aW9ucyx0ZXN0SUQ6YCR7T30tYWN0aW9uYCxjaGlsZHJlbjpbWixRXX0pXX0pLEQmJigwLHAuanN4KShhLHthbGlnbkl0ZW1zOmBmbGV4LXN0YXJ0YCxjbGFzc05hbWU6byhDLmRpc21pc3MsVj09bnVsbD92b2lkIDA6Vi5kaXNtaXNzKSxwYWRkaW5nOi41LHN0eWxlOkg9PW51bGw/dm9pZCAwOkguZGlzbWlzcyxjaGlsZHJlbjooMCxwLmpzeCkodGUse2FjY2Vzc2liaWxpdHlMYWJlbDpNLGJhY2tncm91bmQ6YHRyYW5zcGFyZW50YCxib3JkZXJSYWRpdXM6MWUzLG9uQ2xpY2s6ZGUscm9sZTpgYnV0dG9uYCx0ZXN0SUQ6YCR7T30tZGlzbWlzcy1idG5gLGNoaWxkcmVuOigwLHAuanN4KShlLHtjb2xvcjp1ZSxuYW1lOmBjbG9zZWAsc2l6ZTpgc2B9KX0pfSldfSkpO3JldHVybigwLHAuanN4cykoYSxnKGcoe2NsYXNzTmFtZTpvKEMucm9vdCxWPT1udWxsP3ZvaWQgMDpWLnJvb3QpLGRpc3BsYXk6YGJsb2NrYCxoZWlnaHQ6YGZpdC1jb250ZW50YCxwb3NpdGlvbjpgcmVsYXRpdmVgfSxmZSkse30se3N0eWxlOkg9PW51bGw/dm9pZCAwOkgucm9vdCx3aWR0aDpCLGNoaWxkcmVuOltEPygwLHAuanN4KSh0LHthY2Nlc3NpYmlsaXR5TGFiZWxsZWRCeTpzZSxjb2xsYXBzZWQ6VyxpZDpgJHtLfS0tY29udHJvbGxlcmAsdGVzdElEOmAke099LWNvbGxhcHNpYmxlYCxjaGlsZHJlbjokfSk6JCxBPT09YGdsb2JhbGAmJnBlXX0pKX0pKTtleHBvcnR7dyBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19CWXhkVE9rZC5qcy5tYXA="}},"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":"www.coinbase.com/assets/sw-cache/c_DUXM63ub.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.733Z","timestamp":1785108244733,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DUXM63ub.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 883\r\nlast-modified: Sun, 26 Jul 2026 22:31:26 GMT\r\netag: \"c611b46fdf8063c84d7948adbeffeb1d\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 17f08d2be28e8029d667d74b1efbe608.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: 6dwfmASsQdK9-E2pYsdhcxtccVFXxtAp3zG14IzW3clEtgpu2v2kGg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 2929\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=%2BP2iTH1AIDIRVfluc1%2F8HlzES%2FfGC0qU16S48HnKHUX%2BjUuhzjJdw5YEgjKigHFjQPVbXl25Hk0N1QPg0durNiXETp2rJO8Lz8B6b4rmJsjQaOQUj1tLd%2F%2Bingqqwka6aGZRNwAh%2BF%2BaAVuu1Myw\"}]}\r\ncf-ray: a21727e19fbb0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":2035,"size_decoded":2047,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1996)","md5":"f07b0de45450bd726627d6dd193771b0","sha1":"1f7f6f3750aabea8ccb8194da45faa78ee684849","sha256":"b8547e93b97c1809c17ebd5c3709c3c944bc1f02a03882207d2ab93cc3e41103","sha512":"753c632b904060413c4520b2bfa2de4a60ef1af8c119ca2f85fe669ec0b359791092b3af5dc333c2f93312a8e65d60c8ace8000b9e5554c29d4f08097fe2c5b9","ssdeep":"","tlshash":"b44142c477f8ffb100a49359d0afb901f2183523187cb501f760eda1aa94947c4b4e23","first_seen":"2026-07-26T23:24:50.259753Z","last_seen":"2026-07-26T23:25:46.896585Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDY3MzU3NGI1LTFjNDAtNGY5Yi1iZjY4LWE0MTg5NDk4NjU5NGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTY3MzU3NGI1LTFjNDAtNGY5Yi1iZjY4LWE0MTg5NDk4NjU5NGApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsZmYgYXMgdCxoZiBhcyBuLG9kIGFzIHJ9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBpPWUobigpKSxhPXQoKSxvPVtgYXNgLGBmb250YF07ZnVuY3Rpb24gcyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGMoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/cyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7bChlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpzKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBsKGUsdCxuKXtyZXR1cm4odD11KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHUoZSl7dmFyIHQ9ZChlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBkKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gZihlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG4scixpPXAoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIHAoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmRleE9mKHIpIT09LTEpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufXZhciBtPWBzcGFuYCxoPSgwLGkuZm9yd2FyZFJlZikoKGUsdCk9PntsZXR7YXM6bixmb250Omk9YHRpdGxlMWB9PWUscz1mKGUsbyk7cmV0dXJuKDAsYS5qc3gpKHIsYyh7cmVmOnQsYXM6bj8/bSxmb250Oml9LHMpKX0pO2guZGlzcGxheU5hbWU9YFRleHRUaXRsZTFgO2V4cG9ydHtoIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0RVWE02M3ViLmpzLm1hcA=="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_m3m7GXAn.css","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.044Z","timestamp":1785108244044,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_m3m7GXAn.css HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 22531\r\nlast-modified: Wed, 17 Jun 2026 20:58:46 GMT\r\netag: \"7dabbfc3e41b87992f8ff37cbb884e40\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 466c3546cf43688a93575672b4bae798.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: AMS56-P1\r\nx-amz-cf-id: 8BAznfxrxq-MkyJpouayFFIpNPNvs2lXbtdvDy5ByQELq3DqjbRNPw==\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 3377537\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=BqwY7B2s3fpDaseO7b80834IZjKoqbrgjal5LucZ2aWD%2Ba%2FYGeHtvBq0fblELwb9SL9%2FUN5RK3yllmWY%2BpooiSfcV53EQtm1nFzjjJjqTF1tCq2cYIJfs0KNxCUMKKkqlWA496Jg5fnEUvn7gcWn\"}]}\r\ncf-ray: a21727dd4fd20883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":198209,"size_decoded":23692,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (65536), with no line terminators","md5":"2d7a4ea1d9df7c05c99df0475db086a1","sha1":"13592ba8bb38ed0d1367b7cbfb7c352bbc87887f","sha256":"d108f3115d9d90b0368df8030051dde544dfee989732a472a9523d92cc36c5a7","sha512":"0fd36338ab7582616a36539b768ab289fb5c1aee78b72fdc7232f19c2b1702188592a1634b4814e79e68eab7fa0083a73e934fa691a77d5ea887b8c8d21fe683","ssdeep":"3072:DVYVMzj7m5sL2ZveeJ3Xj38W0By/S2HKwvzi+N+SgdmIoOlYU7BWzdjNwoOOPBDj:KveeJ39KwvziKU7BWzdJw+0/MWvrnps","tlshash":"bd1432eda700a33c9d3fea16539dbabc6144b52b8d410be2e90276114acbff7255341e","first_seen":"2026-06-27T05:52:15.527322Z","last_seen":"2026-07-26T23:25:46.852281Z","times_seen":10,"resource_available":false,"data":"QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTpDb2luYmFzZURpc3BsYXk7c3JjOnVybCguL2FfQkR5QW0yeHoud29mZjIpZm9ybWF0KCJ3b2ZmMiIpO2ZvbnQtd2VpZ2h0OjQwMH1AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtZmFtaWx5OkNvaW5iYXNlRGlzcGxheTtzcmM6dXJsKC4vYV9EZF9jRURSYS53b2ZmMilmb3JtYXQoIndvZmYyIik7Zm9udC13ZWlnaHQ6NTAwIDgwMH1AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtZmFtaWx5OkNvaW5iYXNlU2FucztzcmM6dXJsKC4vYV9CeWJ4b2xwRi53b2ZmMilmb3JtYXQoIndvZmYyIik7Zm9udC13ZWlnaHQ6NDAwfUBmb250LWZhY2V7Zm9udC1kaXNwbGF5OnN3YXA7Zm9udC1mYW1pbHk6Q29pbmJhc2VTYW5zO3NyYzp1cmwoLi9hX0NILWFScnJELndvZmYyKWZvcm1hdCgid29mZjIiKTtmb250LXdlaWdodDo1MDAgODAwfUBmb250LWZhY2V7Zm9udC1kaXNwbGF5OnN3YXA7Zm9udC1mYW1pbHk6Q29pbmJhc2VUZXh0O3NyYzp1cmwoLi9hX0JKMS1YNkR6LndvZmYyKWZvcm1hdCgid29mZjIiKTtmb250LXdlaWdodDo0MDB9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTpDb2luYmFzZVRleHQ7c3JjOnVybCguL2FfQi05MTFHcWYud29mZjIpZm9ybWF0KCJ3b2ZmMiIpO2ZvbnQtd2VpZ2h0OjUwMCA4MDB9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTpDb2luYmFzZU1vbm87c3JjOnVybCguL2FfQmhqeEhhSnAud29mZjIpZm9ybWF0KCJ3b2ZmMiIpO2ZvbnQtd2VpZ2h0OjQwMH1AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtZmFtaWx5OkNvaW5iYXNlTW9ubztzcmM6dXJsKC4vYV9CUDZMcFhERS53b2ZmMilmb3JtYXQoIndvZmYyIik7Zm9udC13ZWlnaHQ6NTAwIDgwMH1AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtZmFtaWx5OkNvaW5iYXNlQ29uZGVuc2VkO3NyYzp1cmwoLi9hX0JfYjBBUmhkLndvZmYyKWZvcm1hdCgid29mZjIiKTtmb250LXdlaWdodDo0MDB9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTpDb2luYmFzZUNvbmRlbnNlZDtzcmM6dXJsKC4vYV8xdzM2T3BkZC53b2ZmMilmb3JtYXQoIndvZmYyIik7Zm9udC13ZWlnaHQ6NTAwIDgwMH06cm9vdHstLWNkcy1mb250LWZhbGxiYWNrOi1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgIlJvYm90byIsICJIZWx2ZXRpY2EiLCAiQXJpYWwiLCBzYW5zLXNlcmlmLCAiQXBwbGUgQ29sb3IgRW1vamkiLCAiU2Vnb2UgVUkgRW1vamkiLCAiU2Vnb2UgVUkgU3ltYm9sIjstLWNkcy1mb250LWRpc3BsYXk6Q29pbmJhc2VEaXNwbGF5LCB2YXIoLS1jZHMtZm9udC1mYWxsYmFjayk7LS1jZHMtZm9udC1zYW5zOkNvaW5iYXNlU2FucywgdmFyKC0tY2RzLWZvbnQtZmFsbGJhY2spOy0tY2RzLWZvbnQtdGV4dDpDb2luYmFzZVRleHQsIHZhcigtLWNkcy1mb250LWZhbGxiYWNrKTstLWNkcy1mb250LW1vbm86Q29pbmJhc2VNb25vLCB2YXIoLS1jZHMtZm9udC1mYWxsYmFjayk7LS1jZHMtZm9udC1jb25kZW5zZWQ6Q29pbmJhc2VDb25kZW5zZWQsIHZhcigtLWNkcy1mb250LWZhbGxiYWNrKX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNvaW5iYXNlSWNvbnM7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC4vYV9CUGwwUy1ZNS53b2ZmMilmb3JtYXQoIndvZmYyIil9QGxheWVyIGNkc3sqLDpiZWZvcmUsOmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveH0qe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MDttYXJnaW46MDtwYWRkaW5nOjA7Zm9udC1zaXplOjEwMCV9aHRtbHstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Ym9keXtwYWRkaW5nOjB9YnV0dG9ue2N1cnNvcjpwb2ludGVyO2NvbG9yOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Zm9udC12YXJpYW50OmluaGVyaXQ7Zm9udC1zdHlsZTppbmhlcml0O2ZvbnQtc3RyZXRjaDppbmhlcml0O2JhY2tncm91bmQtY29sb3I6IzAwMDA7cGFkZGluZzowfWF7Y3Vyc29yOnBvaW50ZXJ9LmJvcmRlcmVkLWJ3aGU5bXR7Ym9yZGVyLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTEwMCk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmUpfS5ib3JkZXJlZEhvcml6b250YWwtYjdlYXMyb3tib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTEwMCk7Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKTtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZSl9LmJvcmRlcmVkVmVydGljYWwtYndhMGg4dntib3JkZXItdG9wLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTEwMCk7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTEwMCk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lKX0uYm9yZGVyZWRTdGFydC1iZ2d2MWdxe2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKTtib3JkZXItaW5saW5lLXN0YXJ0LXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmUpfS5ib3JkZXJlZEVuZC1ieGRueTBte2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTEwMCk7Ym9yZGVyLWlubGluZS1lbmQtc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZSl9LmJvcmRlcmVkVG9wLWJlZXdjaDV7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0xMDApO2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZSl9LmJvcmRlcmVkQm90dG9tLWIxb2FjM2Jve2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmUpfS50b3AtdG83Y3Bventwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MH0uYm90dG9tLWI2Z21seHF7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjB9LnJpZ2h0LXIxaXN1dmxie3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO3JpZ2h0OjB9LmxlZnQtbDE5eG52YWF7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowfS5hbGwtYXdlN2t6d3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH0ud2lkdGgtd3M1MWV1Znt3aWR0aDp2YXIoLS13aWR0aCl9LmhlaWdodC1obGx0bWdre2hlaWdodDp2YXIoLS1oZWlnaHQpfS5taW5XaWR0aC1tcXBxbzdse21pbi13aWR0aDp2YXIoLS1taW5XaWR0aCl9Lm1pbkhlaWdodC1tNHNrY3Qxe21pbi1oZWlnaHQ6dmFyKC0tbWluSGVpZ2h0KX0ubWF4V2lkdGgtbWxxeDZ2bnttYXgtd2lkdGg6dmFyKC0tbWF4V2lkdGgpfS5tYXhIZWlnaHQtbTFqNTRvaWF7bWF4LWhlaWdodDp2YXIoLS1tYXhIZWlnaHQpfS5hc3BlY3RSYXRpby1hODRzYndme2FzcGVjdC1yYXRpbzp2YXIoLS1hc3BlY3RSYXRpbyl9LnRvcC10ZGc3amlqe3RvcDp2YXIoLS10b3ApfS5ib3R0b20tYjFiZTg2YWJ7Ym90dG9tOnZhcigtLWJvdHRvbSl9LmxlZnQtbG03OGp5bXtsZWZ0OnZhcigtLWxlZnQpfS5yaWdodC1yNmM1MXVze3JpZ2h0OnZhcigtLXJpZ2h0KX0udHJhbnNmb3JtLXQ0NXVqN3l7LXdlYmtpdC10cmFuc2Zvcm06dmFyKC0tdHJhbnNmb3JtKTstbXMtdHJhbnNmb3JtOnZhcigtLXRyYW5zZm9ybSk7dHJhbnNmb3JtOnZhcigtLXRyYW5zZm9ybSl9LmZsZXhCYXNpcy1mOTVia3Bvey13ZWJraXQtZmxleC1iYXNpczp2YXIoLS1mbGV4QmFzaXMpOy1tcy1mbGV4LXByZWZlcnJlZC1zaXplOnZhcigtLWZsZXhCYXNpcyk7ZmxleC1iYXNpczp2YXIoLS1mbGV4QmFzaXMpfS5mbGV4U2hyaW5rLWYxNzRodTIyey13ZWJraXQtZmxleC1zaHJpbms6dmFyKC0tZmxleFNocmluayk7LW1zLWZsZXgtbmVnYXRpdmU6dmFyKC0tZmxleFNocmluayk7ZmxleC1zaHJpbms6dmFyKC0tZmxleFNocmluayl9LmZsZXhHcm93LWZhdjloeWx7LXdlYmtpdC1ib3gtZmxleDp2YXIoLS1mbGV4R3Jvdyk7LXdlYmtpdC1mbGV4LWdyb3c6dmFyKC0tZmxleEdyb3cpOy1tcy1mbGV4LXBvc2l0aXZlOnZhcigtLWZsZXhHcm93KTtmbGV4LWdyb3c6dmFyKC0tZmxleEdyb3cpfS5ncmlkVGVtcGxhdGVDb2x1bW5zLWdkMnp1OGd7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnZhcigtLWdyaWRUZW1wbGF0ZUNvbHVtbnMpfS5ncmlkVGVtcGxhdGVSb3dzLWdmOXBuOHl7Z3JpZC10ZW1wbGF0ZS1yb3dzOnZhcigtLWdyaWRUZW1wbGF0ZVJvd3MpfS5ncmlkVGVtcGxhdGVBcmVhcy1nMW9tZzV1Z3tncmlkLXRlbXBsYXRlLWFyZWFzOnZhcigtLWdyaWRUZW1wbGF0ZUFyZWFzKX0uZ3JpZFRlbXBsYXRlLWcxdWowdGxme2dyaWQtdGVtcGxhdGU6dmFyKC0tZ3JpZFRlbXBsYXRlKX0uZ3JpZEF1dG9Db2x1bW5zLWcxZWpuNG1ue2dyaWQtYXV0by1jb2x1bW5zOnZhcigtLWdyaWRBdXRvQ29sdW1ucyl9LmdyaWRBdXRvUm93cy1nMWp1MDA1cntncmlkLWF1dG8tcm93czp2YXIoLS1ncmlkQXV0b1Jvd3MpfS5ncmlkQXV0b0Zsb3ctZzFhb3R4MWF7Z3JpZC1hdXRvLWZsb3c6dmFyKC0tZ3JpZEF1dG9GbG93KX0uZ3JpZC1nMXhwOTd1MHtncmlkOnZhcigtLWdyaWQpfS5ncmlkUm93U3RhcnQtZzE4bWkxeG97Z3JpZC1yb3ctc3RhcnQ6dmFyKC0tZ3JpZFJvd1N0YXJ0KX0uZ3JpZENvbHVtblN0YXJ0LWcxMjl1MmZre2dyaWQtY29sdW1uLXN0YXJ0OnZhcigtLWdyaWRDb2x1bW5TdGFydCl9LmdyaWRSb3dFbmQtZzFtamQycWd7Z3JpZC1yb3ctZW5kOnZhcigtLWdyaWRSb3dFbmQpfS5ncmlkQ29sdW1uRW5kLWdlZ2FyYnZ7Z3JpZC1jb2x1bW4tZW5kOnZhcigtLWdyaWRDb2x1bW5FbmQpfS5ncmlkUm93LWdveTV2dGN7Z3JpZC1yb3c6dmFyKC0tZ3JpZFJvdyl9LmdyaWRDb2x1bW4tZ3djZXBmd3tncmlkLWNvbHVtbjp2YXIoLS1ncmlkQ29sdW1uKX0uZ3JpZEFyZWEtZzFnM3ljN3F7Z3JpZC1hcmVhOnZhcigtLWdyaWRBcmVhKX0ub3BhY2l0eS1vMXhuZXNoYXtvcGFjaXR5OnZhcigtLW9wYWNpdHkpfS56SW5kZXgtejFxMXhrM2J7ei1pbmRleDp2YXIoLS16SW5kZXgpfS5fMS1fMWVpc3dhaHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnRWxldmF0aW9uMSk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctZWxldmF0aW9uMSl9Ll8yLV9zMWx1bGl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjIpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWVsZXZhdGlvbjIpfS5mZy1mMXNvcmFnNHtjb2xvcjp2YXIoLS1jb2xvci1mZyl9LmZnSW52ZXJzZS1mMXNkbHdqbntjb2xvcjp2YXIoLS1jb2xvci1mZ0ludmVyc2UpfS5mZ011dGVkLWZxcmFxcG97Y29sb3I6dmFyKC0tY29sb3ItZmdNdXRlZCl9LmZnUHJpbWFyeS1mMXZpYWhpZntjb2xvcjp2YXIoLS1jb2xvci1mZ1ByaW1hcnkpfS5mZ1Bvc2l0aXZlLWZicHlvcGJ7Y29sb3I6dmFyKC0tY29sb3ItZmdQb3NpdGl2ZSl9LmZnTmVnYXRpdmUtZjFtMXR5NHV7Y29sb3I6dmFyKC0tY29sb3ItZmdOZWdhdGl2ZSl9LmZnV2FybmluZy1mMW5tMnZzZntjb2xvcjp2YXIoLS1jb2xvci1mZ1dhcm5pbmcpfS5iZy1iMTJnNWZjYntjb2xvcjp2YXIoLS1jb2xvci1iZyl9LmJnQWx0ZXJuYXRlLWI1MndiNmd7Y29sb3I6dmFyKC0tY29sb3ItYmdBbHRlcm5hdGUpfS5iZ0ludmVyc2UtYnp1cjNuYntjb2xvcjp2YXIoLS1jb2xvci1iZ0ludmVyc2UpfS5iZ092ZXJsYXktYjFrYTYwbmp7Y29sb3I6dmFyKC0tY29sb3ItYmdPdmVybGF5KX0uYmdQcmltYXJ5LWIxYWxqdW9se2NvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeSl9LmJnUHJpbWFyeVdhc2gtYjFmdzI3ZGt7Y29sb3I6dmFyKC0tY29sb3ItYmdQcmltYXJ5V2FzaCl9LmJnU2Vjb25kYXJ5LWI1bDkxMTh7Y29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnkpfS5iZ1RlcnRpYXJ5LWJnejh0b3V7Y29sb3I6dmFyKC0tY29sb3ItYmdUZXJ0aWFyeSl9LmJnU2Vjb25kYXJ5V2FzaC1iMTBrNTI0dXtjb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeVdhc2gpfS5iZ05lZ2F0aXZlLWJ0OHkxejR7Y29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZSl9LmJnTmVnYXRpdmVXYXNoLWIxcnJzeXNte2NvbG9yOnZhcigtLWNvbG9yLWJnTmVnYXRpdmVXYXNoKX0uYmdQb3NpdGl2ZS1iOWl0bHZ6e2NvbG9yOnZhcigtLWNvbG9yLWJnUG9zaXRpdmUpfS5iZ1Bvc2l0aXZlV2FzaC1iMXBtOW40OXtjb2xvcjp2YXIoLS1jb2xvci1iZ1Bvc2l0aXZlV2FzaCl9LmJnV2FybmluZy1ic3NidzZve2NvbG9yOnZhcigtLWNvbG9yLWJnV2FybmluZyl9LmJnV2FybmluZ1dhc2gtYjE0bHRuZXJ7Y29sb3I6dmFyKC0tY29sb3ItYmdXYXJuaW5nV2FzaCl9LmN1cnJlbnRDb2xvci1jMXVsNjc5cXtjb2xvcjp2YXIoLS1jb2xvci1jdXJyZW50Q29sb3IpfS5iZ0xpbmUtYjF2cjMydm57Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lKX0uYmdMaW5lSW52ZXJzZS1iMXFhMWozc3tjb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVJbnZlcnNlKX0uYmdMaW5lSGVhdnktYmQ5MWlvZHtjb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVIZWF2eSl9LmJnTGluZVByaW1hcnktYjF1Z3VzYXZ7Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeSl9LmJnTGluZVByaW1hcnlTdWJ0bGUtYjQ5Nm94M3tjb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVQcmltYXJ5U3VidGxlKX0uYmdFbGV2YXRpb24xLWIxeHB1cm57Y29sb3I6dmFyKC0tY29sb3ItYmdFbGV2YXRpb24xKX0uYmdFbGV2YXRpb24yLWJtNnJmaWV7Y29sb3I6dmFyKC0tY29sb3ItYmdFbGV2YXRpb24yKX0uYWNjZW50U3VidGxlR3JlZW4tYWY2NDFqcntjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVHcmVlbil9LmFjY2VudEJvbGRHcmVlbi1hamo3MWxhe2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRHcmVlbil9LmFjY2VudFN1YnRsZUJsdWUtYW8xcDI2ZHtjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVCbHVlKX0uYWNjZW50Qm9sZEJsdWUtYWZ5Y2dsa3tjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkQmx1ZSl9LmFjY2VudFN1YnRsZVB1cnBsZS1hZDZkdjBne2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVB1cnBsZSl9LmFjY2VudEJvbGRQdXJwbGUtYTFrbGx4Zm57Y29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZFB1cnBsZSl9LmFjY2VudFN1YnRsZVllbGxvdy1hMWQybXNkb3tjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVZZWxsb3cpfS5hY2NlbnRCb2xkWWVsbG93LWExbnRwNmoze2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRZZWxsb3cpfS5hY2NlbnRTdWJ0bGVSZWQtYWQweGNmd3tjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVSZWQpfS5hY2NlbnRCb2xkUmVkLWExOTg2azM1e2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRSZWQpfS5hY2NlbnRTdWJ0bGVHcmF5LWFpMHZkeHh7Y29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlR3JheSl9LmFjY2VudEJvbGRHcmF5LWExdWQ0NHVoe2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRHcmF5KX0udHJhbnNwYXJlbnQtdDFoY3NieHN7Y29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpfS5mZy1mMWppNmc1NntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWZnKX0uZmdJbnZlcnNlLWZnYzA3bGV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1mZ0ludmVyc2UpfS5mZ011dGVkLWYxbWpza3Ywe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdNdXRlZCl9LmZnUHJpbWFyeS1mMXhmNnF2dntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWZnUHJpbWFyeSl9LmZnUG9zaXRpdmUtZmNxbHZkYntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWZnUG9zaXRpdmUpfS5mZ05lZ2F0aXZlLWYxMGd3YTloe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdOZWdhdGl2ZSl9LmZnV2FybmluZy1md2dvZHp6e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdXYXJuaW5nKX0uYmctYnA3Z2czMXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnKX0uYmdBbHRlcm5hdGUtYnR4dnRnc3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnQWx0ZXJuYXRlKX0uYmdJbnZlcnNlLWIxdDU2YWJie2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdJbnZlcnNlKX0uYmdPdmVybGF5LWJqbm9xc2Z7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ092ZXJsYXkpfS5iZ1ByaW1hcnktYmJsbWZ6OHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeSl9LmJnUHJpbWFyeVdhc2gtYjExZWduOW97YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1ByaW1hcnlXYXNoKX0uYmdTZWNvbmRhcnktYjFncnNoYmp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeSl9LmJnVGVydGlhcnktYjE0eWUwNGx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1RlcnRpYXJ5KX0uYmdTZWNvbmRhcnlXYXNoLWIxNnRuZjN1e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlXYXNoKX0uYmdOZWdhdGl2ZS1iMWFmeGUzbHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnTmVnYXRpdmUpfS5iZ05lZ2F0aXZlV2FzaC1iZTlpdXY5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZVdhc2gpfS5iZ1Bvc2l0aXZlLWJ4dG11enR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1Bvc2l0aXZlKX0uYmdQb3NpdGl2ZVdhc2gtYnJhcjhhc3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnUG9zaXRpdmVXYXNoKX0uYmdXYXJuaW5nLWIxN3VhaHpxe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdXYXJuaW5nKX0uYmdXYXJuaW5nV2FzaC1iMTkwamFqdntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnV2FybmluZ1dhc2gpfS5jdXJyZW50Q29sb3ItYzE2M2lubDB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jdXJyZW50Q29sb3IpfS5iZ0xpbmUtYjFhZHQ5dDZ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmUpfS5iZ0xpbmVJbnZlcnNlLWIzd3I2czZ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVJbnZlcnNlKX0uYmdMaW5lSGVhdnktYjF2aGV6cWt7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVIZWF2eSl9LmJnTGluZVByaW1hcnktYjF0bjFqaGF7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVQcmltYXJ5KX0uYmdMaW5lUHJpbWFyeVN1YnRsZS1iejY0NzR1e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeVN1YnRsZSl9LmJnRWxldmF0aW9uMS1iNzl1cHQ0e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdFbGV2YXRpb24xKX0uYmdFbGV2YXRpb24yLWIxNW9qbWdje2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdFbGV2YXRpb24yKX0uYWNjZW50U3VidGxlR3JlZW4tYXR6N2FmbHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUdyZWVuKX0uYWNjZW50Qm9sZEdyZWVuLWExcDdtbXFte2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEdyZWVuKX0uYWNjZW50U3VidGxlQmx1ZS1hMWdiN2N3Z3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUJsdWUpfS5hY2NlbnRCb2xkQmx1ZS1hZ2h6enA3e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEJsdWUpfS5hY2NlbnRTdWJ0bGVQdXJwbGUtYTEwcjF3eHN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVQdXJwbGUpfS5hY2NlbnRCb2xkUHVycGxlLWExYWVpMjJye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZFB1cnBsZSl9LmFjY2VudFN1YnRsZVllbGxvdy1hMTYwN3R5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlWWVsbG93KX0uYWNjZW50Qm9sZFllbGxvdy1hMXYyc3Rwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZFllbGxvdyl9LmFjY2VudFN1YnRsZVJlZC1hZGdrYXd0e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlUmVkKX0uYWNjZW50Qm9sZFJlZC1hMW9hazN3dntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRSZWQpfS5hY2NlbnRTdWJ0bGVHcmF5LWExZzN4OGdpe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlR3JheSl9LmFjY2VudEJvbGRHcmF5LWExazQydWpse2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEdyYXkpfS50cmFuc3BhcmVudC10MXJtazZ1aXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KX0uZmctZnB0aXV0eHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWZnKX0uZmdJbnZlcnNlLWY5dzQwajV7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mZ0ludmVyc2UpfS5mZ011dGVkLWYxbG9pNW9ne2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdNdXRlZCl9LmZnUHJpbWFyeS1mMXF6Zm9qe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdQcmltYXJ5KX0uZmdQb3NpdGl2ZS1mbGdicTI5e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdQb3NpdGl2ZSl9LmZnTmVnYXRpdmUtZjE1a2RheXh7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mZ05lZ2F0aXZlKX0uZmdXYXJuaW5nLWYxbHhlY3Vje2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdXYXJuaW5nKX0uYmctYjhlcTZqentib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnKX0uYmdBbHRlcm5hdGUtYjFqbmcxOXp7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0FsdGVybmF0ZSl9LmJnSW52ZXJzZS1iMWdoanR6M3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnSW52ZXJzZSl9LmJnT3ZlcmxheS1iaG45ZnBre2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdPdmVybGF5KX0uYmdQcmltYXJ5LWIxcGJiMGNse2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdQcmltYXJ5KX0uYmdQcmltYXJ5V2FzaC1iMXRmeHN3Y3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeVdhc2gpfS5iZ1NlY29uZGFyeS1iMWsxMnQzaHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnU2Vjb25kYXJ5KX0uYmdUZXJ0aWFyeS1icDZkOHNte2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdUZXJ0aWFyeSl9LmJnU2Vjb25kYXJ5V2FzaC1iMWh6cW1tY3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnU2Vjb25kYXJ5V2FzaCl9LmJnTmVnYXRpdmUtYjlmY3ZvOHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTmVnYXRpdmUpfS5iZ05lZ2F0aXZlV2FzaC1iMndxNWQ5e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZVdhc2gpfS5iZ1Bvc2l0aXZlLWIxb3NhcDZ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1Bvc2l0aXZlKX0uYmdQb3NpdGl2ZVdhc2gtYjFianJsMGV7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1Bvc2l0aXZlV2FzaCl9LmJnV2FybmluZy1iMTIybzR1ZXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnV2FybmluZyl9LmJnV2FybmluZ1dhc2gtYjE1dDAzNGJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1dhcm5pbmdXYXNoKX0uY3VycmVudENvbG9yLWM3Y2U5Zjh7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1jdXJyZW50Q29sb3IpfS5iZ0xpbmUtYjFrbGs2aHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZSl9LmJnTGluZUludmVyc2UtYjFpY3Y0cWR7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVJbnZlcnNlKX0uYmdMaW5lSGVhdnktYjFhN2FzdXp7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVIZWF2eSl9LmJnTGluZVByaW1hcnktYjF0ZDJ2MGZ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVQcmltYXJ5KX0uYmdMaW5lUHJpbWFyeVN1YnRsZS1icms4dWY2e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeVN1YnRsZSl9LmJnRWxldmF0aW9uMS1iMWdxMnNodXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnRWxldmF0aW9uMSl9LmJnRWxldmF0aW9uMi1iMWJ5enR6Y3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnRWxldmF0aW9uMil9LmFjY2VudFN1YnRsZUdyZWVuLWExY3EycnM2e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlR3JlZW4pfS5hY2NlbnRCb2xkR3JlZW4tYTVwZ21oentib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRHcmVlbil9LmFjY2VudFN1YnRsZUJsdWUtYTF5MWNxY3h7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVCbHVlKX0uYWNjZW50Qm9sZEJsdWUtYWo2dWtpc3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRCbHVlKX0uYWNjZW50U3VidGxlUHVycGxlLWExODMxcGQ1e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlUHVycGxlKX0uYWNjZW50Qm9sZFB1cnBsZS1hMWdmNXhpeXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRQdXJwbGUpfS5hY2NlbnRTdWJ0bGVZZWxsb3ctYWM4bXEzaXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVllbGxvdyl9LmFjY2VudEJvbGRZZWxsb3ctYTdyZ2t5Nntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRZZWxsb3cpfS5hY2NlbnRTdWJ0bGVSZWQtYTFoMHZ2ZHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVJlZCl9LmFjY2VudEJvbGRSZWQtYWlteXg5bHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRSZWQpfS5hY2NlbnRTdWJ0bGVHcmF5LWFhczR0aXd7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVHcmF5KX0uYWNjZW50Qm9sZEdyYXktYTFsczh0YmZ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkR3JheSl9LnRyYW5zcGFyZW50LXQxOXhueWk3e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpfS5fMC1fMTlpbjYwNntib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMCl9Ll8xMDAtX3g0NGdzNHtib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKX0uXzIwMC1fMXAxaGl6d3tib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMjAwKX0uXzMwMC1fMW53YTRoNHtib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMzAwKX0uXzQwMC1fNHVseDZ0e2JvcmRlci13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC00MDApfS5fNTAwLV9ic2NhN2R7Ym9yZGVyLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTUwMCl9Ll8wLV8xN2cyOHFle2JvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMCl9Ll8xMDAtX3V3ZW1jbHtib3JkZXItdG9wLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTEwMCl9Ll8yMDAtXzF3NWh1bDF7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0yMDApfS5fMzAwLV9sa3hpMmV7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0zMDApfS5fNDAwLV8xang5YzZke2JvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNDAwKX0uXzUwMC1fMXh5cjB6YXtib3JkZXItdG9wLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTUwMCl9Ll8wLV8xcTZtbmhse2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTApfS5fMTAwLV9vczkycGV7Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKX0uXzIwMC1fdGlwcWI0e2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTIwMCl9Ll8zMDAtXzF2ZWxua297Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMzAwKX0uXzQwMC1fMTBrMzl1dntib3JkZXItaW5saW5lLWVuZC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC00MDApfS5fNTAwLV8xNTdtdHV0e2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTUwMCl9Ll8wLV8yMDAxYTF7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0wKX0uXzEwMC1fMWdhaXRsZntib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTEwMCl9Ll8yMDAtXzE5aXY2MGR7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0yMDApfS5fMzAwLV8xeTNkMG1je2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMzAwKX0uXzQwMC1fMWRvenR6cHtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTQwMCl9Ll81MDAtXzFjc2hubHR7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC01MDApfS5fMC1fejI5b3A1e2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMCl9Ll8xMDAtXzJrbmV0Z3tib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTEwMCl9Ll8yMDAtX2w0eHRzdntib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTIwMCl9Ll8zMDAtXzFxeDZ2OHJ7Ym9yZGVyLWlubGluZS1zdGFydC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0zMDApfS5fNDAwLV9xdzB4emR7Ym9yZGVyLWlubGluZS1zdGFydC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC00MDApfS5fNTAwLV8xcWF2YW92e2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNTAwKX0uXzAtXzk4YjF3Nntib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0wKX0uXzEwMC1fMzd5em0ze2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMCl9Ll8yMDAtX3R2N2V0YXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0yMDApfS5fMzAwLV8xeXphNTJ2e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTMwMCl9Ll80MDAtXzVnZjB2cntib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy00MDApfS5fNTAwLV9taWxidzJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNTAwKX0uXzYwMC1fZ3FrMHcxe2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTYwMCl9Ll83MDAtX3FiMWg2Yntib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy03MDApfS5fODAwLV9vd2d2aDJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtODAwKX0uXzkwMC1fMWkxbmxtentib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy05MDApfS5fMTAwMC1fdHFocnI5e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMDApfS5fMC1fMW90NGxmMXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0wKX0uXzEwMC1fMWtyZHZ3Nntib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDApfS5fMjAwLV8xaW1zZ2w1e2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTIwMCl9Ll8zMDAtXzdudHhwZ3tib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApfS5fNDAwLV8xcXF1MmN7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNDAwKX0uXzUwMC1fMWtoNGwyOXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy01MDApfS5fNjAwLV9icXM0aDF7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNjAwKX0uXzcwMC1fMTczNWh2Z3tib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy03MDApfS5fODAwLV9xNmcwcmR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtODAwKX0uXzkwMC1fMWlzdTh3d3tib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy05MDApfS5fMTAwMC1fcDRuYnUye2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMDApfS5fMC1fMWxycXVna3tib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMCl9Ll8xMDAtXzFhNmM3djd7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMCl9Ll8yMDAtX20zZzVxY3tib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMjAwKX0uXzMwMC1fNDBibXhje2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApfS5fNDAwLV8xNGg5NTZhe2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy00MDApfS5fNTAwLV92cHN5c3N7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTUwMCl9Ll82MDAtX25mdXRiY3tib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNjAwKX0uXzcwMC1fMW91MHUwcXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNzAwKX0uXzgwMC1fcDczdHNie2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy04MDApfS5fOTAwLV8xMDRldWQye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy05MDApfS5fMTAwMC1fbnhzZHJpe2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDAwKX0uXzAtXzF5czJ2d2l7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMCl9Ll8xMDAtX3E4ZDEzZ3tib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDApfS5fMjAwLV8xOWxtdm0xe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTIwMCl9Ll8zMDAtX2UzZ2J3eXtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApfS5fNDAwLV9ocXAxeHZ7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNDAwKX0uXzUwMC1fM2FpZzE3e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTUwMCl9Ll82MDAtXzF5c2R4dHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy02MDApfS5fNzAwLV8xdjdtNWZje2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTcwMCl9Ll84MDAtXzFuMHA4Njd7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtODAwKX0uXzkwMC1fMTNtOGM3M3tib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy05MDApfS5fMTAwMC1fMWZlemx4eHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDAwKX0uXzAtX3V0OThmMHtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMCl9Ll8xMDAtXzFyZ2xkMnZ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMCl9Ll8yMDAtX2RpNGlxM3tib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMjAwKX0uXzMwMC1fMjF3aGEwe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApfS5fNDAwLV8xdmZnNThie2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy00MDApfS5fNTAwLV8xeXZkbDNse2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy01MDApfS5fNjAwLV8xcnJieTloe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy02MDApfS5fNzAwLV8xNDFuZXY2e2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy03MDApfS5fODAwLV8xZHY3d2w2e2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy04MDApfS5fOTAwLV8xZGdiNjFue2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy05MDApfS5fMTAwMC1fMXNlNHg3bHtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMTAwMCl9LmluaGVyaXQtaThjZWtqbntmb250LWZhbWlseTppbmhlcml0fS5kaXNwbGF5MS1kem9qbHA2e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktZGlzcGxheTEpfS5kaXNwbGF5Mi1kM2Z5d3Vpe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktZGlzcGxheTIpfS5kaXNwbGF5My1kdGpqcHhie2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktZGlzcGxheTMpfS50aXRsZTEtdHRqZWdqcXtmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5LXRpdGxlMSl9LnRpdGxlMi10cHNmenB5e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktdGl0bGUyKX0udGl0bGUzLXQxcHQ0b3Noe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktdGl0bGUzKX0udGl0bGU0LXQxM2tmdDNye2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktdGl0bGU0KX0uaGVhZGxpbmUtaDE1dTB3ZTB7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS1oZWFkbGluZSl9LmJvZHktYjE0YThlZ2R7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS1ib2R5KX0ubGFiZWwxLWxzNHU5eDB7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS1sYWJlbDEpfS5sYWJlbDItbDEwbWs1eHh7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS1sYWJlbDIpfS5jYXB0aW9uLWMxaXhoMTIye2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktY2FwdGlvbil9LmxlZ2FsLWwxcmxwZHJqe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktbGVnYWwpfS5pbmhlcml0LWk1eWZ3anV7Zm9udC1zaXplOmluaGVyaXR9LmRpc3BsYXkxLWQxNzg5MnNxe2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1kaXNwbGF5MSl9LmRpc3BsYXkyLWQxZmtjMjNke2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1kaXNwbGF5Mil9LmRpc3BsYXkzLWRsMjkyb3B7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWRpc3BsYXkzKX0udGl0bGUxLXQxYThzY2Nje2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS10aXRsZTEpfS50aXRsZTItdDdlMDYxOXtmb250LXNpemU6dmFyKC0tZm9udFNpemUtdGl0bGUyKX0udGl0bGUzLXQxbzEzOTg0e2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS10aXRsZTMpfS50aXRsZTQtdG05NHhla3tmb250LXNpemU6dmFyKC0tZm9udFNpemUtdGl0bGU0KX0uaGVhZGxpbmUtaDFjejE4NHl7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWhlYWRsaW5lKX0uYm9keS1iMTJpcHM5a3tmb250LXNpemU6dmFyKC0tZm9udFNpemUtYm9keSl9LmxhYmVsMS1sZjQyZXJqe2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1sYWJlbDEpfS5sYWJlbDItbDFnbHJzbW17Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWxhYmVsMil9LmNhcHRpb24tY2k0eGFnaHtmb250LXNpemU6dmFyKC0tZm9udFNpemUtY2FwdGlvbil9LmxlZ2FsLWwxdjJseHNie2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1sZWdhbCl9LmluaGVyaXQtaTE5amQ4Nm57Zm9udC13ZWlnaHQ6aW5oZXJpdH0uZGlzcGxheTEtZDF0OXM3d2p7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1kaXNwbGF5MSl9LmRpc3BsYXkyLWRtYWhxN2R7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1kaXNwbGF5Mil9LmRpc3BsYXkzLWQxODJmMmN3e2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHQtZGlzcGxheTMpfS50aXRsZTEtdDJoN2RjM3tmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LXRpdGxlMSl9LnRpdGxlMi10dG1jc3J3e2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHQtdGl0bGUyKX0udGl0bGUzLXQxbjJuMWJwe2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHQtdGl0bGUzKX0udGl0bGU0LXR1dHdzaHp7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC10aXRsZTQpfS5oZWFkbGluZS1oMWF4ZTY4aHtmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWhlYWRsaW5lKX0uYm9keS1iMW1xY2c1cntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWJvZHkpfS5sYWJlbDEtbHV2ajUyMntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWxhYmVsMSl9LmxhYmVsMi1sMWZ6ZTgyOHtmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWxhYmVsMil9LmNhcHRpb24tYzF0cjZvMXF7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1jYXB0aW9uKX0ubGVnYWwtbDFzdTJtbzl7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1sZWdhbCl9LmluaGVyaXQtaTFxMnptNG57bGluZS1oZWlnaHQ6aW5oZXJpdH0uZGlzcGxheTEtZGF2YXhrOHtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWRpc3BsYXkxKX0uZGlzcGxheTItZDEwYmNiZWN7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodC1kaXNwbGF5Mil9LmRpc3BsYXkzLWR6eDVnNTl7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodC1kaXNwbGF5Myl9LnRpdGxlMS10MTl1bG96bntsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LXRpdGxlMSl9LnRpdGxlMi10OHhtd3dne2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtdGl0bGUyKX0udGl0bGUzLXQxaG5xOXcze2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtdGl0bGUzKX0udGl0bGU0LXQxanVwc3lue2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtdGl0bGU0KX0uaGVhZGxpbmUtaDFkOHhoM3d7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodC1oZWFkbGluZSl9LmJvZHktYjFiNjFxM3l7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodC1ib2R5KX0ubGFiZWwxLWxqdDFnanB7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodC1sYWJlbDEpfS5sYWJlbDItbDY0bjE4b3tsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWxhYmVsMil9LmNhcHRpb24tYzFuYzJxbnB7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodC1jYXB0aW9uKX0ubGVnYWwtbDlvbWI0NHtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWxlZ2FsKX0ubm9uZS1uZzdrcmVkey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVuZGVybGluZS11eHdsN3Fsey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5vdmVybGluZS1vMWw2ODM2ZXstd2Via2l0LXRleHQtZGVjb3JhdGlvbjpvdmVybGluZTt0ZXh0LWRlY29yYXRpb246b3ZlcmxpbmV9LmxpbmUtdGhyb3VnaC1sMWt2bHQ2OHstd2Via2l0LXRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0udW5kZXJsaW5lX292ZXJsaW5lLXVsMmkxdjN7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIG92ZXJsaW5lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgb3ZlcmxpbmV9LnVuZGVybGluZV9kb3VibGUtdXlneTJzNHstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG91YmxlO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG91YmxlfS5ub25lLW4xN2hwNTk5e3RleHQtdHJhbnNmb3JtOm5vbmV9LnVwcGVyY2FzZS11MW83czAwOXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lmxvd2VyY2FzZS1sMXA1cG0zY3t0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2V9LmNhcGl0YWxpemUtYzF1emRjNjB7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZX0ubm9uZS1uMjBxMzZiey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS50ZXh0LXQxbWgwdmJmey13ZWJraXQtdXNlci1zZWxlY3Q6dGV4dDt1c2VyLXNlbGVjdDp0ZXh0fS5hbGwtYTFuYjVzbjd7LXdlYmtpdC11c2VyLXNlbGVjdDphbGw7dXNlci1zZWxlY3Q6YWxsfS5hdXRvLWExb25yaThhey13ZWJraXQtdXNlci1zZWxlY3Q6YXV0bzt1c2VyLXNlbGVjdDphdXRvfS5ub25lLW54czNia2t7ZGlzcGxheTpub25lfS5ibG9jay1idm1iZmxqe2Rpc3BsYXk6YmxvY2t9LmlubGluZS1pMWQ1eHQyZ3tkaXNwbGF5OmlubGluZX0uaW5saW5lLWJsb2NrLWkxdzhhZm85e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mbGV4LWZmNXJmeTZ7ZGlzcGxheTpmbGV4fS5pbmxpbmUtZmxleC1pNmN6eDh7ZGlzcGxheTppbmxpbmUtZmxleH0uZ3JpZC1nb3Z2dnBme2Rpc3BsYXk6Z3JpZH0uaW5saW5lLWdyaWQtaTExeTBhc257ZGlzcGxheTppbmxpbmUtZ3JpZH0uY29udGVudHMtYzEzajBncGh7ZGlzcGxheTpjb250ZW50c30uZmxvdy1yb290LWYxZjNmNHJle2Rpc3BsYXk6Zmxvdy1yb290fS5yZXZlcnQtcjF1Z285dHF7ZGlzcGxheTpyZXZlcnR9Lmxpc3QtaXRlbS1sMXd5YTd2ZHtkaXNwbGF5Omxpc3QtaXRlbX0uYXV0by1hMXZ0Ymc5d3tvdmVyZmxvdzphdXRvfS52aXNpYmxlLXYxY2U3dHpte292ZXJmbG93OnZpc2libGV9LmhpZGRlbi1oMTQ3anVub3tvdmVyZmxvdzpoaWRkZW59LmNsaXAtYzF1aWpvcjl7b3ZlcmZsb3c6Y2xpcH0uc2Nyb2xsLXMxY3h4aWt6e292ZXJmbG93OnNjcm9sbH0uXzAtX2d1bGNxZ3tnYXA6dmFyKC0tc3BhY2UtMCl9Ll8wXzI1LV9xN3lveDl7Z2FwOnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV8xZng3bTBve2dhcDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fMW5reHBhdXtnYXA6dmFyKC0tc3BhY2UtMF83NSl9Ll8xLV80d2Y2NntnYXA6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzFxYW1qdnJ7Z2FwOnZhcigtLXNwYWNlLTFfNSl9Ll8yLV9zM3Mzdnh7Z2FwOnZhcigtLXNwYWNlLTIpfS5fMy1fMWQycWZmNXtnYXA6dmFyKC0tc3BhY2UtMyl9Ll80LV91d2p3ZTF7Z2FwOnZhcigtLXNwYWNlLTQpfS5fNS1fNDN3ZGtye2dhcDp2YXIoLS1zcGFjZS01KX0uXzYtX2JrYWlxY3tnYXA6dmFyKC0tc3BhY2UtNil9Ll83LV9wc2NtajR7Z2FwOnZhcigtLXNwYWNlLTcpfS5fOC1fZ3E1c2Nke2dhcDp2YXIoLS1zcGFjZS04KX0uXzktXzY1Y2EyM3tnYXA6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fMXBxeXgzcXtnYXA6dmFyKC0tc3BhY2UtMTApfS5fMC1fMXhqZDJ4eXstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMCk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtX3RhNWRiZHstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMF8yNSk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMWI1cGx3bXstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMF81KTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV9xeTE2MjB7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTBfNzUpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMF83NSl9Ll8xLV8xc2ZvdzEzey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0xKTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTEpfS5fMV81LV96MGphMjl7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTFfNSk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fdzZseHprey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0yKTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTIpfS5fMy1fMW83dXg3Znstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMyk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0zKX0uXzQtX2g4cXZxMXstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNCk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS00KX0uXzUtXzE3eDJwbmZ7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTUpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNSl9Ll82LV96dXdxYmR7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTYpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNil9Ll83LV85bGNrM2x7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTcpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNyl9Ll84LV84dTFoaXN7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTgpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtOCl9Ll85LV9qcjVhNmN7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTkpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fZWZsM3Nvey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0xMCk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0xMCl9Ll8wLV94aXJ5OXV7cm93LWdhcDp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtXzE4M2pranZ7cm93LWdhcDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fcWcwZjZte3Jvdy1nYXA6dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtX25jMmc1NHtyb3ctZ2FwOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fMXVkNWI5bHtyb3ctZ2FwOnZhcigtLXNwYWNlLTEpfS5fMV81LV9ycTA5NG97cm93LWdhcDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fbnUzaDVte3Jvdy1nYXA6dmFyKC0tc3BhY2UtMil9Ll8zLV9tZHB3azB7cm93LWdhcDp2YXIoLS1zcGFjZS0zKX0uXzQtX2huN2d4e3Jvdy1nYXA6dmFyKC0tc3BhY2UtNCl9Ll81LV8xaWF2MjVqe3Jvdy1nYXA6dmFyKC0tc3BhY2UtNSl9Ll82LV9wcXVmZTB7cm93LWdhcDp2YXIoLS1zcGFjZS02KX0uXzctXzE3Nm9qc2l7cm93LWdhcDp2YXIoLS1zcGFjZS03KX0uXzgtXzExbjhxMG17cm93LWdhcDp2YXIoLS1zcGFjZS04KX0uXzktXzF1bmdueWd7cm93LWdhcDp2YXIoLS1zcGFjZS05KX0uXzEwLV8xcHNraXR2e3Jvdy1nYXA6dmFyKC0tc3BhY2UtMTApfS5ub3JtYWwtbmZ0YmpzNnstd2Via2l0LWJveC1wYWNrOm5vcm1hbDstd2Via2l0LWp1c3RpZnktY29udGVudDpub3JtYWw7LW1zLWZsZXgtcGFjazpub3JtYWw7anVzdGlmeS1jb250ZW50Om5vcm1hbH0uY2VudGVyLWNqcHVqY2R7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc3RhcnQtczFsMmh2ejN7anVzdGlmeS1jb250ZW50OnN0YXJ0fS5lbmQtZTF4b2c2ZjJ7anVzdGlmeS1jb250ZW50OmVuZH0uZmxleC1zdGFydC1mMWVnZ2hna3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uZmxleC1lbmQtZmF4NzhzcXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmxlZnQtbHJmbW1yMHstd2Via2l0LWJveC1wYWNrOmxlZnQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6bGVmdDstbXMtZmxleC1wYWNrOmxlZnQ7anVzdGlmeS1jb250ZW50OmxlZnR9LnJpZ2h0LXIxZng5eGtmey13ZWJraXQtYm94LXBhY2s6cmlnaHQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6cmlnaHQ7LW1zLWZsZXgtcGFjazpyaWdodDtqdXN0aWZ5LWNvbnRlbnQ6cmlnaHR9LnNwYWNlLWJldHdlZW4tczE5Z29mbzR7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LnNwYWNlLWFyb3VuZC1zcXQ1a21xey13ZWJraXQtYm94LXBhY2s6c3BhY2UtYXJvdW5kOy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDstbXMtZmxleC1wYWNrOnNwYWNlLWFyb3VuZDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5zcGFjZS1ldmVubHktczF2cW53djF7LXdlYmtpdC1ib3gtcGFjazpzcGFjZS1ldmVubHk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtZXZlbmx5Oy1tcy1mbGV4LXBhY2s6c3BhY2UtZXZlbmx5O2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHl9LnN0cmV0Y2gtczEweHA1MGZ7LXdlYmtpdC1ib3gtcGFjazpzdHJldGNoOy13ZWJraXQtanVzdGlmeS1jb250ZW50OnN0cmV0Y2g7LW1zLWZsZXgtcGFjazpzdHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNofS5ub3JtYWwtbjF3bWk2MXV7LXdlYmtpdC1hbGlnbi1jb250ZW50Om5vcm1hbDstbXMtZmxleC1saW5lLXBhY2s6bm9ybWFsO2FsaWduLWNvbnRlbnQ6bm9ybWFsfS5jZW50ZXItY253bmxiN3thbGlnbi1jb250ZW50OmNlbnRlcn0uc3RhcnQtczFkNWxmYXV7YWxpZ24tY29udGVudDpzdGFydH0uZW5kLWU1eXN6N2p7YWxpZ24tY29udGVudDplbmR9LmZsZXgtc3RhcnQtZmowZ2JqMnthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9LmZsZXgtZW5kLWYxcjNieGloe2FsaWduLWNvbnRlbnQ6ZmxleC1lbmR9LnNwYWNlLWJldHdlZW4tc3BlczFiOHstd2Via2l0LWFsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1saW5lLXBhY2s6c3BhY2UtYmV0d2VlbjthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW59LnNwYWNlLWFyb3VuZC1zN3dpM3oxey13ZWJraXQtYWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQ7LW1zLWZsZXgtbGluZS1wYWNrOnNwYWNlLWFyb3VuZDthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZH0uc3BhY2UtZXZlbmx5LXMxeGxodDNwey13ZWJraXQtYWxpZ24tY29udGVudDpzcGFjZS1ldmVubHk7LW1zLWZsZXgtbGluZS1wYWNrOnNwYWNlLWV2ZW5seTthbGlnbi1jb250ZW50OnNwYWNlLWV2ZW5seX0uc3RyZXRjaC1zeHJya3ppe2FsaWduLWNvbnRlbnQ6c3RyZXRjaH0uYmFzZWxpbmUtYjRxYjVxeXstd2Via2l0LWFsaWduLWNvbnRlbnQ6YmFzZWxpbmU7LW1zLWZsZXgtbGluZS1wYWNrOmJhc2VsaW5lO2FsaWduLWNvbnRlbnQ6YmFzZWxpbmV9LmZpcnN0X2Jhc2VsaW5lLWZmd2VtenZ7LXdlYmtpdC1hbGlnbi1jb250ZW50OmJhc2VsaW5lOy1tcy1mbGV4LWxpbmUtcGFjazpmaXJzdCBiYXNlbGluZTthbGlnbi1jb250ZW50OmJhc2VsaW5lfS5sYXN0X2Jhc2VsaW5lLWw4a3pienF7LXdlYmtpdC1hbGlnbi1jb250ZW50Omxhc3QgYmFzZWxpbmU7LW1zLWZsZXgtbGluZS1wYWNrOmxhc3QgYmFzZWxpbmU7YWxpZ24tY29udGVudDpsYXN0IGJhc2VsaW5lfS5ub3JtYWwtbnVud3N0bHstd2Via2l0LWFsaWduLWl0ZW1zOm5vcm1hbDstd2Via2l0LWJveC1hbGlnbjpub3JtYWw7LW1zLWZsZXgtYWxpZ246bm9ybWFsO2FsaWduLWl0ZW1zOm5vcm1hbH0uY2VudGVyLWNjMWJhZnd7YWxpZ24taXRlbXM6Y2VudGVyfS5zdGFydC1zMXNpdjgxeXthbGlnbi1pdGVtczpzdGFydH0uZW5kLWUxeXg0MDV3e2FsaWduLWl0ZW1zOmVuZH0uZmxleC1zdGFydC1mYWkydWZhey13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LWJveC1hbGlnbjpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uZmxleC1lbmQtZnRxZmR0Znstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtZW5kOy13ZWJraXQtYm94LWFsaWduOmZsZXgtZW5kOy1tcy1mbGV4LWFsaWduOmZsZXgtZW5kO2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5zZWxmLXN0YXJ0LXMxZGFzM2J4ey13ZWJraXQtYWxpZ24taXRlbXM6c2VsZi1zdGFydDstd2Via2l0LWJveC1hbGlnbjpzZWxmLXN0YXJ0Oy1tcy1mbGV4LWFsaWduOnNlbGYtc3RhcnQ7YWxpZ24taXRlbXM6c2VsZi1zdGFydH0uc2VsZi1lbmQtc2MxZm4ydXstd2Via2l0LWFsaWduLWl0ZW1zOnNlbGYtZW5kOy13ZWJraXQtYm94LWFsaWduOnNlbGYtZW5kOy1tcy1mbGV4LWFsaWduOnNlbGYtZW5kO2FsaWduLWl0ZW1zOnNlbGYtZW5kfS5zdHJldGNoLXNhMWRwajB7YWxpZ24taXRlbXM6c3RyZXRjaH0uYmFzZWxpbmUtYjFicHl4ZW57YWxpZ24taXRlbXM6YmFzZWxpbmV9LmZpcnN0X2Jhc2VsaW5lLWYxdDE0bHZoey13ZWJraXQtYWxpZ24taXRlbXM6YmFzZWxpbmU7LXdlYmtpdC1ib3gtYWxpZ246Zmlyc3QgYmFzZWxpbmU7LW1zLWZsZXgtYWxpZ246Zmlyc3QgYmFzZWxpbmU7YWxpZ24taXRlbXM6YmFzZWxpbmV9Lmxhc3RfYmFzZWxpbmUtbHZkeWJxa3std2Via2l0LWFsaWduLWl0ZW1zOmxhc3QgYmFzZWxpbmU7LXdlYmtpdC1ib3gtYWxpZ246bGFzdCBiYXNlbGluZTstbXMtZmxleC1hbGlnbjpsYXN0IGJhc2VsaW5lO2FsaWduLWl0ZW1zOmxhc3QgYmFzZWxpbmV9LmF1dG8tYTF2Z2h2bGp7YWxpZ24tc2VsZjphdXRvfS5ub3JtYWwtbjEzeGt0Nml7LXdlYmtpdC1hbGlnbi1zZWxmOm5vcm1hbDstbXMtZmxleC1pdGVtLWFsaWduOm5vcm1hbDthbGlnbi1zZWxmOm5vcm1hbH0uY2VudGVyLWMxbGxhOGVye2FsaWduLXNlbGY6Y2VudGVyfS5zdGFydC1zMTR4Z3RrMnthbGlnbi1zZWxmOnN0YXJ0fS5lbmQtZXRnOWFndnthbGlnbi1zZWxmOmVuZH0uZmxleC1zdGFydC1maTNtZnh6e2FsaWduLXNlbGY6ZmxleC1zdGFydH0uZmxleC1lbmQtZjVtYnl4YXthbGlnbi1zZWxmOmZsZXgtZW5kfS5zZWxmLXN0YXJ0LXNiY3Y1NGh7LXdlYmtpdC1hbGlnbi1zZWxmOnNlbGYtc3RhcnQ7LW1zLWZsZXgtaXRlbS1hbGlnbjpzZWxmLXN0YXJ0O2FsaWduLXNlbGY6c2VsZi1zdGFydH0uc2VsZi1lbmQtczk1MXJpanstd2Via2l0LWFsaWduLXNlbGY6c2VsZi1lbmQ7LW1zLWZsZXgtaXRlbS1hbGlnbjpzZWxmLWVuZDthbGlnbi1zZWxmOnNlbGYtZW5kfS5zdHJldGNoLXMxNXpmZmxqe2FsaWduLXNlbGY6c3RyZXRjaH0uYmFzZWxpbmUtYmgzYjFtMHthbGlnbi1zZWxmOmJhc2VsaW5lfS5maXJzdF9iYXNlbGluZS1mMTcxN25qZ3std2Via2l0LWFsaWduLXNlbGY6YmFzZWxpbmU7LW1zLWZsZXgtaXRlbS1hbGlnbjpmaXJzdCBiYXNlbGluZTthbGlnbi1zZWxmOmJhc2VsaW5lfS5sYXN0X2Jhc2VsaW5lLWxlNm1oend7LXdlYmtpdC1hbGlnbi1zZWxmOmxhc3QgYmFzZWxpbmU7LW1zLWZsZXgtaXRlbS1hbGlnbjpsYXN0IGJhc2VsaW5lO2FsaWduLXNlbGY6bGFzdCBiYXNlbGluZX0ucm93LXIxZmp2MmMwe2ZsZXgtZGlyZWN0aW9uOnJvd30ucm93LXJldmVyc2UtcnU2eDhkcXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0uY29sdW1uLWMxZms2YW9oe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY29sdW1uLXJldmVyc2UtY2JlZHZ5dntmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0ubm93cmFwLW4xZTB2MjBne2ZsZXgtd3JhcDpub3dyYXB9LndyYXAtd2c2cHlzdHtmbGV4LXdyYXA6d3JhcH0ud3JhcC1yZXZlcnNlLXcxZ2o0OWhwe2ZsZXgtd3JhcDp3cmFwLXJldmVyc2V9LnN0YXRpYy1zdHkxM3cze3Bvc2l0aW9uOnN0YXRpY30ucmVsYXRpdmUtcm1kazRpb3twb3NpdGlvbjpyZWxhdGl2ZX0uYWJzb2x1dGUtYTVxd2Joa3twb3NpdGlvbjphYnNvbHV0ZX0uZml4ZWQtZnNlbWpkd3twb3NpdGlvbjpmaXhlZH0uc3RpY2t5LXN1aWJtYXl7cG9zaXRpb246c3RpY2t5fS5fMC1fc2lrZ3g2e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTApO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTApO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTApO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtXzFob3RvM2Z7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF8yNSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMF8yNSk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMF8yNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV91dGpiYjR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF81KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0wXzUpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV8xdnFtaDY0e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtXzFvaHh1anV7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMSk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTEpfS5fMV81LV8xNWlpODl3e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTFfNSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMV81KTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xXzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fMTVpem1vZ3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMil9Ll8zLV9teDV2OHp7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMyk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMyk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMyk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTMpfS5fNC1fcmIxZ2E1e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTQpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTQpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTQpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS00KX0uXzUtXzFqOXo0MHZ7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTUpfS5fNi1fa3NwMjA1e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTYpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTYpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTYpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS02KX0uXzctXzFtOGI5bGt7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNyk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNyk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNyk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTcpfS5fOC1fMXZzY3YwdntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtOCl9Ll85LV9oN3Q1dHN7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtOSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtOSk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtOSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTkpfS5fMTAtXzFmc2Y4ZnJ7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMTApO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTEwKTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xMCk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTEwKX0uXzAtXzExZDlvbm17cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMCk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fNW5rYXY0e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfMjUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMTRwZzV3bntwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fOTh2dG9we3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtXzFjNWNjaG57cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTEpfS5fMV81LV96bDRiMTV7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMV81KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMV81KX0uXzItXzFkNTZ2azN7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMik7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTIpfS5fMy1faW4xeTBre3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTMpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0zKX0uXzQtX3NtN3JhdXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS00KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNCl9Ll81LV9xcmM1azZ7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTUpfS5fNi1fMW5oYTQ3eXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS02KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNil9Ll83LV9yMnNmam17cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNyk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTcpfS5fOC1fMTYyOTQyNXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtOCl9Ll85LV9qbjFmZGN7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtOSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTkpfS5fMTAtXzFxZDlnd3F7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMTApO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xMCl9Ll8wLV8xbzZiNXNme3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTApO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fbTNuZzBke3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfMjUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV9ueXZiZntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0wXzUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV9kbXJ1eGt7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF83NSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMF83NSl9Ll8xLV9qOWo5MXl7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzF2MmF4ZXp7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMV81KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fMXVidndkOXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0yKX0uXzMtX295ZG9re3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTMpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTMpfS5fNC1fZXZ2em9qe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTQpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTQpfS5fNS1fcTF5cnNje3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTUpfS5fNi1fb3VzcGV5e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTYpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTYpfS5fNy1fMTJuNXl1bXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS03KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS03KX0uXzgtX3hydTY5ZXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS04KX0uXzktX25zcmlzentwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS05KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS05KX0uXzEwLV8xeGE2cmhje3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTEwKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xMCl9Ll8wLV8xeGxqOGZue3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fODE0ZjRte3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV82NGlpYzJ7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtXzFrYjdubzR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF83NSl9Ll8xLV8xcnZ5b2Rne3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTEpfS5fMV81LV9vZXJnajB7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMV81KX0uXzItXzE5czZrNTN7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMil9Ll8zLV8xdnMweDk3e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTMpfS5fNC1feXl3czFhe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTQpfS5fNS1fODYwbTE5e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTUpfS5fNi1fMWpyeHppcntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS02KX0uXzctXzF5ejVxYjR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNyl9Ll84LV9ta2UwMXN7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtOCl9Ll85LV8xdTJ3ZXZ3e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTkpfS5fMTAtXzFjNGgxdW57cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMTApfS5fMC1fMXVjeWZjY3twYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtX3dtc3RjZHtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fdW9qajM0e3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV9qZjEzYTN7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMF83NSl9Ll8xLV93NnZ1Zjl7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzFkY2VtMDJ7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMV81KX0uXzItX3UzdHlhZntwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0yKX0uXzMtXzFqdWZ5ZGd7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMyl9Ll80LV8xczF0dW5we3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTQpfS5fNS1fZ2VhNXFpe3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTUpfS5fNi1fZWhpY3B2e3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTYpfS5fNy1fMWo2OGkwMXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS03KX0uXzgtX2c2Z3hwdXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS04KX0uXzktX2ZxMmppYntwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS05KX0uXzEwLV8xam5lMXl2e3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTEwKX0uXzAtXzFrcTI0anZ7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMCl9Ll8wXzI1LV9nZTN4dzl7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMF8yNSl9Ll8wXzUtX3BlanB6d3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fZHlwemdxe3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fMXU0aDFxM3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fMXdkYTViZHtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fMTAzcWE3OHtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0yKX0uXzMtX3NtNDd0YntwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0zKX0uXzQtX3lwa2VwantwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS00KX0uXzUtX3F3ajNpbntwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS01KX0uXzYtX3YxZ2JleHtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS02KX0uXzctXzF0Mm9vMjN7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNyl9Ll84LV9weXgyMTB7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtOCl9Ll85LV9vdGUzYnB7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fMXI5NWFibXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xMCl9Ll8wLV92Ynozd2F7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fNTU2anFse3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMWE2dml6dHtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtX2Mxb3R4a3twYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMF83NSl9Ll8xLV8xbjU3c2pze3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fc3J3eWxoe3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1faDJsZXl5e3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0yKX0uXzMtX3h3d2Q1YntwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMyl9Ll80LV8xNDY2djlte3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS00KX0uXzUtX2E2bWFuOXtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNSl9Ll82LV8xNnM0dzFke3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS02KX0uXzctX21hMDVtc3twYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNyl9Ll84LV82NWVvOHh7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTgpfS5fOS1fYXc5dDhie3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS05KX0uXzEwLV80eHNsM2Z7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTEwKX0uXzAtXzFkdDdnYnB7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKX0uXy0wXzI1LS0xZWZoOWdoe21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF8yNSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSl9Ll8tMF81LS0xOGY1ejR7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpfS5fLTBfNzUtLTF1OXMwdDh7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF83NSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS00a3AwYTl7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKX0uXy0xXzUtLWZ5MmQ2ZnttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSl9Ll8tMi0tbno5eDF0e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSl9Ll8tMy0tMWxlODA4b3ttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpfS5fLTQtLTZwejVrbXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpfS5fLTUtLWVocm5sZ3ttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLTFkOTg4Znd7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xNHZ0YWJle21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSl9Ll8tOC0tczFqdGV2e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0ta2V4bWZye21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSl9Ll8tMTAtLWllZzBpOHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xMCkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uXzAtXzEyZnBkNGZ7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSl9Ll8tMF8yNS0ta2JqanZle21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF8yNSkpfS5fLTBfNS0tMWw1bWxnNXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSl9Ll8tMF83NS0tMTNhMDN5cnttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS0xbWx1YTI5e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpfS5fLTFfNS0tMXZtZTVwOXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSl9Ll8tMi0tMTd6anhja3ttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS0xcjZoaTY0e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpfS5fLTQtLTFnNnZsMzJ7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSl9Ll8tNS0tMXI3ZGJxanttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKX0uXy02LS1tdzRpbTN7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSl9Ll8tNy0teXdqODE3e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpfS5fLTgtLTFyYzZsc3Z7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0tZXd2M2V2e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS0ydDNnaGt7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uXzAtXzF5cXNzZWt7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKX0uXy0wXzI1LS0xcjY3b2N1e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSl9Ll8tMF81LS05NXdmNWt7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSl9Ll8tMF83NS0tMXQyMDlneHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF83NSkpfS5fLTEtLTEzM2t5cGF7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKX0uXy0xXzUtLXh5eW9xcXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS1wN20xaWx7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS0xZ3o1b3Rse21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSl9Ll8tNC0teTU2cjc2e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSl9Ll8tNS0tbjBreDg2e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSl9Ll8tNi0tNTk3cjRke21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSl9Ll8tNy0tMWY4d3FsYnttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpfS5fLTgtLTEzZWNuYzB7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKX0uXy05LS1jdnk0b2Z7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKX0uXy0xMC0tNHp3N2Jte21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uXzAtX3VlOW8zZnttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSl9Ll8tMF8yNS0tZWlrdGdme21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKX0uXy0wXzUtLWl1YTN6bXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKX0uXy0wXzc1LS0xZDZqOHBse21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS0xY3VrODBte21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKX0uXy0xXzUtLTFsenJ6NmR7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSl9Ll8tMi0taXRnNGl2e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS1oaTBqbnR7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpfS5fLTQtLTFoZzRnb257bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpfS5fLTUtLWl1YzlzanttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSl9Ll8tNi0tdXJqYjdpe21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xNHZwaW03e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS1kYWM2Z3p7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpfS5fLTktLTE0NWdsa2t7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS1pcHljc2t7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uXzAtXzFsbGxsMWF7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpfS5fLTBfMjUtLXExdW40OHttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSl9Ll8tMF81LS12NmVtemt7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSl9Ll8tMF83NS0tMTk5ZGd1ZHttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSl9Ll8tMS0tMWFzM3lme21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKX0uXy0xXzUtLWdkbHB4MXttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS0xYjFwZjNye21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS1wd2JpMm17bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpfS5fLTQtLTFkYzF0aDV7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpfS5fLTUtLTExdzU0aWp7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLXN5YXd1Z3ttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSl9Ll8tNy0tMTFwZG5lZHttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSl9Ll8tOC0tMXJjcW9lY3ttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0tMTFyYWRwYnttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSl9Ll8tMTAtLTFybmdib3J7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uXzAtXzZ4YnhxNHttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpfS5fLTBfMjUtLXR5M2ppZ3ttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF8yNSkpfS5fLTBfNS0tNWxidGdte21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKX0uXy0wXzc1LS0xazduNDdoe21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSl9Ll8tMS0teTZwZTRue21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS0xN3A1ampxe21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS0xZmJtbXZ4e21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSl9Ll8tMy0tanZ6MWlme21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSl9Ll8tNC0tMWwwd2pmZ3ttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpfS5fLTUtLWxxZXlzOHttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLXFhNXA5eXttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpfS5fLTctLTEwYzF0ZXp7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS0xbWltZTAwe21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0tMW9xbnJmcXttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS0xOW9ta2sxe21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xMCkpfS5fMC1fcTk5MWV0e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKX0uXy0wXzI1LS10dzE2NHh7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF8yNSkpfS5fLTBfNS0tdzVmZm1oe21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpfS5fLTBfNzUtLW01NnJ4OHttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSl9Ll8tMS0teno5ajZke21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKX0uXy0xXzUtLTFjY3d5N3V7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSl9Ll8tMi0tdnk0ejRke21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS0xaWMyeW9me21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKX0uXy00LS0xZm96OHp4e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKX0uXy01LS0xbGpqZTExe21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKX0uXy02LS10NjN4ZnZ7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpfS5fLTctLTE2N2txZG17bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpfS5fLTgtLXJvdDNqZnttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0tMXh5dDRmbHttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSl9Ll8tMTAtLTF2ZmNrOXV7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uc3RhcnQtc3pnOW9lcXt0ZXh0LWFsaWduOnN0YXJ0fS5lbmQtZTFkOWQyZ3Z7dGV4dC1hbGlnbjplbmR9LmNlbnRlci1jZno5N2o5e3RleHQtYWxpZ246Y2VudGVyfS5qdXN0aWZ5LWoxd2JhY2Nke3RleHQtYWxpZ246anVzdGlmeX0uaGlkZGVuLWgxM2Y3cWZwe3Zpc2liaWxpdHk6aGlkZGVufS52aXNpYmxlLXZvdjNqajN7dmlzaWJpbGl0eTp2aXNpYmxlfUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsud2lkdGgtdzdkNDViZ3t3aWR0aDp2YXIoLS1waG9uZS13aWR0aCl9LmhlaWdodC1oOTg4eHc0e2hlaWdodDp2YXIoLS1waG9uZS1oZWlnaHQpfS5taW5XaWR0aC1tMTlibnVybnttaW4td2lkdGg6dmFyKC0tcGhvbmUtbWluV2lkdGgpfS5taW5IZWlnaHQtbWUycHpqdHttaW4taGVpZ2h0OnZhcigtLXBob25lLW1pbkhlaWdodCl9Lm1heFdpZHRoLW0xb2NqYjMye21heC13aWR0aDp2YXIoLS1waG9uZS1tYXhXaWR0aCl9Lm1heEhlaWdodC1tN3FodmR5e21heC1oZWlnaHQ6dmFyKC0tcGhvbmUtbWF4SGVpZ2h0KX0uYXNwZWN0UmF0aW8tYXJ1cjU2c3thc3BlY3QtcmF0aW86dmFyKC0tcGhvbmUtYXNwZWN0UmF0aW8pfS50b3AtdDFsMnY3b2Z7dG9wOnZhcigtLXBob25lLXRvcCl9LmJvdHRvbS1iZzV3dzlwe2JvdHRvbTp2YXIoLS1waG9uZS1ib3R0b20pfS5sZWZ0LWwxeWwyaXkxe2xlZnQ6dmFyKC0tcGhvbmUtbGVmdCl9LnJpZ2h0LXIxa2Uxc2Nme3JpZ2h0OnZhcigtLXBob25lLXJpZ2h0KX0udHJhbnNmb3JtLXRidHQ3aDF7LXdlYmtpdC10cmFuc2Zvcm06dmFyKC0tcGhvbmUtdHJhbnNmb3JtKTstbXMtdHJhbnNmb3JtOnZhcigtLXBob25lLXRyYW5zZm9ybSk7dHJhbnNmb3JtOnZhcigtLXBob25lLXRyYW5zZm9ybSl9LmZsZXhCYXNpcy1mOGEyeGk5ey13ZWJraXQtZmxleC1iYXNpczp2YXIoLS1waG9uZS1mbGV4QmFzaXMpOy1tcy1mbGV4LXByZWZlcnJlZC1zaXplOnZhcigtLXBob25lLWZsZXhCYXNpcyk7ZmxleC1iYXNpczp2YXIoLS1waG9uZS1mbGV4QmFzaXMpfS5mbGV4U2hyaW5rLWYxeXcwdXFmey13ZWJraXQtZmxleC1zaHJpbms6dmFyKC0tcGhvbmUtZmxleFNocmluayk7LW1zLWZsZXgtbmVnYXRpdmU6dmFyKC0tcGhvbmUtZmxleFNocmluayk7ZmxleC1zaHJpbms6dmFyKC0tcGhvbmUtZmxleFNocmluayl9LmZsZXhHcm93LWZkZWJtYWN7LXdlYmtpdC1ib3gtZmxleDp2YXIoLS1waG9uZS1mbGV4R3Jvdyk7LXdlYmtpdC1mbGV4LWdyb3c6dmFyKC0tcGhvbmUtZmxleEdyb3cpOy1tcy1mbGV4LXBvc2l0aXZlOnZhcigtLXBob25lLWZsZXhHcm93KTtmbGV4LWdyb3c6dmFyKC0tcGhvbmUtZmxleEdyb3cpfS5ncmlkVGVtcGxhdGVDb2x1bW5zLWcxZ2o0Mjdze2dyaWQtdGVtcGxhdGUtY29sdW1uczp2YXIoLS1waG9uZS1ncmlkVGVtcGxhdGVDb2x1bW5zKX0uZ3JpZFRlbXBsYXRlUm93cy1naDZnYWg5e2dyaWQtdGVtcGxhdGUtcm93czp2YXIoLS1waG9uZS1ncmlkVGVtcGxhdGVSb3dzKX0uZ3JpZFRlbXBsYXRlQXJlYXMtZzVsenNhaHtncmlkLXRlbXBsYXRlLWFyZWFzOnZhcigtLXBob25lLWdyaWRUZW1wbGF0ZUFyZWFzKX0uZ3JpZFRlbXBsYXRlLWcxbW54NWlxe2dyaWQtdGVtcGxhdGU6dmFyKC0tcGhvbmUtZ3JpZFRlbXBsYXRlKX0uZ3JpZEF1dG9Db2x1bW5zLWdwNTJwNWt7Z3JpZC1hdXRvLWNvbHVtbnM6dmFyKC0tcGhvbmUtZ3JpZEF1dG9Db2x1bW5zKX0uZ3JpZEF1dG9Sb3dzLWcxc3d4MXRve2dyaWQtYXV0by1yb3dzOnZhcigtLXBob25lLWdyaWRBdXRvUm93cyl9LmdyaWRBdXRvRmxvdy1nc3ViNG84e2dyaWQtYXV0by1mbG93OnZhcigtLXBob25lLWdyaWRBdXRvRmxvdyl9LmdyaWQtZzN4b3hxZntncmlkOnZhcigtLXBob25lLWdyaWQpfS5ncmlkUm93U3RhcnQtZzFpY3Vibmx7Z3JpZC1yb3ctc3RhcnQ6dmFyKC0tcGhvbmUtZ3JpZFJvd1N0YXJ0KX0uZ3JpZENvbHVtblN0YXJ0LWc0ejMwMmJ7Z3JpZC1jb2x1bW4tc3RhcnQ6dmFyKC0tcGhvbmUtZ3JpZENvbHVtblN0YXJ0KX0uZ3JpZFJvd0VuZC1nMWZnMmJtdntncmlkLXJvdy1lbmQ6dmFyKC0tcGhvbmUtZ3JpZFJvd0VuZCl9LmdyaWRDb2x1bW5FbmQtZzFqMzZzcm17Z3JpZC1jb2x1bW4tZW5kOnZhcigtLXBob25lLWdyaWRDb2x1bW5FbmQpfS5ncmlkUm93LWdicjR4eWZ7Z3JpZC1yb3c6dmFyKC0tcGhvbmUtZ3JpZFJvdyl9LmdyaWRDb2x1bW4tZ2F2dDh2entncmlkLWNvbHVtbjp2YXIoLS1waG9uZS1ncmlkQ29sdW1uKX0uZ3JpZEFyZWEtZzE5Y280dnp7Z3JpZC1hcmVhOnZhcigtLXBob25lLWdyaWRBcmVhKX0ub3BhY2l0eS1vNmR5M3h7b3BhY2l0eTp2YXIoLS1waG9uZS1vcGFjaXR5KX0uekluZGV4LXoxeHl6d3hpe3otaW5kZXg6dmFyKC0tcGhvbmUtekluZGV4KX0uXzEtXzE1Y2JrcXB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjEpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWVsZXZhdGlvbjEpfS5fMi1fYmNsenYwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdFbGV2YXRpb24yKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1lbGV2YXRpb24yKX0uZmctZjFyOXVubzB7Y29sb3I6dmFyKC0tY29sb3ItZmcpfS5mZ0ludmVyc2UtZmg2ZGMxY3tjb2xvcjp2YXIoLS1jb2xvci1mZ0ludmVyc2UpfS5mZ011dGVkLWYxOGs4bnBhe2NvbG9yOnZhcigtLWNvbG9yLWZnTXV0ZWQpfS5mZ1ByaW1hcnktZnBoZnV5b3tjb2xvcjp2YXIoLS1jb2xvci1mZ1ByaW1hcnkpfS5mZ1Bvc2l0aXZlLWZ3ZTdkMmF7Y29sb3I6dmFyKC0tY29sb3ItZmdQb3NpdGl2ZSl9LmZnTmVnYXRpdmUtZjF2cXp6Ymh7Y29sb3I6dmFyKC0tY29sb3ItZmdOZWdhdGl2ZSl9LmZnV2FybmluZy1mdGE5czhse2NvbG9yOnZhcigtLWNvbG9yLWZnV2FybmluZyl9LmJnLWJ0cDFoaDl7Y29sb3I6dmFyKC0tY29sb3ItYmcpfS5iZ0FsdGVybmF0ZS1iMTgxYW84ZXtjb2xvcjp2YXIoLS1jb2xvci1iZ0FsdGVybmF0ZSl9LmJnSW52ZXJzZS1iMW53aG10dHtjb2xvcjp2YXIoLS1jb2xvci1iZ0ludmVyc2UpfS5iZ092ZXJsYXktYjEzNzlyM297Y29sb3I6dmFyKC0tY29sb3ItYmdPdmVybGF5KX0uYmdQcmltYXJ5LWJ1cno2Y2J7Y29sb3I6dmFyKC0tY29sb3ItYmdQcmltYXJ5KX0uYmdQcmltYXJ5V2FzaC1iMW9temdiantjb2xvcjp2YXIoLS1jb2xvci1iZ1ByaW1hcnlXYXNoKX0uYmdTZWNvbmRhcnktYmNxcnkzbXtjb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeSl9LmJnVGVydGlhcnktYmhobHo1a3tjb2xvcjp2YXIoLS1jb2xvci1iZ1RlcnRpYXJ5KX0uYmdTZWNvbmRhcnlXYXNoLWJtb28zZGp7Y29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlXYXNoKX0uYmdOZWdhdGl2ZS1iMThjbmV5YXtjb2xvcjp2YXIoLS1jb2xvci1iZ05lZ2F0aXZlKX0uYmdOZWdhdGl2ZVdhc2gtYjFycjA4NWZ7Y29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZVdhc2gpfS5iZ1Bvc2l0aXZlLWJsM25haDV7Y29sb3I6dmFyKC0tY29sb3ItYmdQb3NpdGl2ZSl9LmJnUG9zaXRpdmVXYXNoLWIxYzZzOXc0e2NvbG9yOnZhcigtLWNvbG9yLWJnUG9zaXRpdmVXYXNoKX0uYmdXYXJuaW5nLWIxejBkdHA2e2NvbG9yOnZhcigtLWNvbG9yLWJnV2FybmluZyl9LmJnV2FybmluZ1dhc2gtYjE0YTRxN3V7Y29sb3I6dmFyKC0tY29sb3ItYmdXYXJuaW5nV2FzaCl9LmN1cnJlbnRDb2xvci1jMWN6NGplNHtjb2xvcjp2YXIoLS1jb2xvci1jdXJyZW50Q29sb3IpfS5iZ0xpbmUtYnZmNWwxaXtjb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmUpfS5iZ0xpbmVJbnZlcnNlLWIxZWZrNHFse2NvbG9yOnZhcigtLWNvbG9yLWJnTGluZUludmVyc2UpfS5iZ0xpbmVIZWF2eS1iMnFxazV7Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lSGVhdnkpfS5iZ0xpbmVQcmltYXJ5LWJ2YWxsMDd7Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeSl9LmJnTGluZVByaW1hcnlTdWJ0bGUtYjEyMXZ2eG57Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeVN1YnRsZSl9LmJnRWxldmF0aW9uMS1iMWZ5MmZ2antjb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjEpfS5iZ0VsZXZhdGlvbjItYnBqMnNieXtjb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjIpfS5hY2NlbnRTdWJ0bGVHcmVlbi1hMTh3emtte2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUdyZWVuKX0uYWNjZW50Qm9sZEdyZWVuLWFxZjZ4cTB7Y29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEdyZWVuKX0uYWNjZW50U3VidGxlQmx1ZS1hMXNyaTJtY3tjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVCbHVlKX0uYWNjZW50Qm9sZEJsdWUtYTFzcTRodjR7Y29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEJsdWUpfS5hY2NlbnRTdWJ0bGVQdXJwbGUtYXliMXo3OHtjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVQdXJwbGUpfS5hY2NlbnRCb2xkUHVycGxlLWFpemJzZDV7Y29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZFB1cnBsZSl9LmFjY2VudFN1YnRsZVllbGxvdy1hMXJyb2R0e2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVllbGxvdyl9LmFjY2VudEJvbGRZZWxsb3ctYTFrbHF4NG57Y29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZFllbGxvdyl9LmFjY2VudFN1YnRsZVJlZC1hMTdnbmhyYXtjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVSZWQpfS5hY2NlbnRCb2xkUmVkLWFkbnp2bWV7Y29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZFJlZCl9LmFjY2VudFN1YnRsZUdyYXktYWo3eTZoMHtjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVHcmF5KX0uYWNjZW50Qm9sZEdyYXktYWUxa3Z0Nntjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkR3JheSl9LnRyYW5zcGFyZW50LXQ0Zm4zeWZ7Y29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpfS5mZy1mMWRiYXJ3NHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWZnKX0uZmdJbnZlcnNlLWZyYjB3a297YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1mZ0ludmVyc2UpfS5mZ011dGVkLWZzMDJlY3R7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1mZ011dGVkKX0uZmdQcmltYXJ5LWYxZGZxY2Nje2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdQcmltYXJ5KX0uZmdQb3NpdGl2ZS1mMWZ1cnFhdntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWZnUG9zaXRpdmUpfS5mZ05lZ2F0aXZlLWYxazRlcW1ve2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdOZWdhdGl2ZSl9LmZnV2FybmluZy1mY2o3djFje2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdXYXJuaW5nKX0uYmctYmJoNmIxc3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnKX0uYmdBbHRlcm5hdGUtYnp1cnFje2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdBbHRlcm5hdGUpfS5iZ0ludmVyc2UtYnpoMWw3eXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnSW52ZXJzZSl9LmJnT3ZlcmxheS1iMWtwbWZweXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnT3ZlcmxheSl9LmJnUHJpbWFyeS1idzY5Z2M2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdQcmltYXJ5KX0uYmdQcmltYXJ5V2FzaC1iMTB6ZnR6Y3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeVdhc2gpfS5iZ1NlY29uZGFyeS1ieXloNXhse2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnkpfS5iZ1RlcnRpYXJ5LWIxeXowdHl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1RlcnRpYXJ5KX0uYmdTZWNvbmRhcnlXYXNoLWIxbmczeThke2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlXYXNoKX0uYmdOZWdhdGl2ZS1ia3k0MTJoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZSl9LmJnTmVnYXRpdmVXYXNoLWIxZzk5Mzgxe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZVdhc2gpfS5iZ1Bvc2l0aXZlLWJsbzE4cXB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1Bvc2l0aXZlKX0uYmdQb3NpdGl2ZVdhc2gtYjF4bGxrMmN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1Bvc2l0aXZlV2FzaCl9LmJnV2FybmluZy1idzJ2eHAze2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdXYXJuaW5nKX0uYmdXYXJuaW5nV2FzaC1iMXVudTB5eHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnV2FybmluZ1dhc2gpfS5jdXJyZW50Q29sb3ItY3U2bTh0antiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWN1cnJlbnRDb2xvcil9LmJnTGluZS1ia2s2YXl1e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lKX0uYmdMaW5lSW52ZXJzZS1iMXBnbGI4e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lSW52ZXJzZSl9LmJnTGluZUhlYXZ5LWJmMXd6ZnJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVIZWF2eSl9LmJnTGluZVByaW1hcnktYjE0ZTZ6a3N7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVQcmltYXJ5KX0uYmdMaW5lUHJpbWFyeVN1YnRsZS1iY2pvb29se2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeVN1YnRsZSl9LmJnRWxldmF0aW9uMS1iMXFsZG9sentiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnRWxldmF0aW9uMSl9LmJnRWxldmF0aW9uMi1iMXM2azF5MXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnRWxldmF0aW9uMil9LmFjY2VudFN1YnRsZUdyZWVuLWE3Mzd1dHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUdyZWVuKX0uYWNjZW50Qm9sZEdyZWVuLWExYXN2Njlle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEdyZWVuKX0uYWNjZW50U3VidGxlQmx1ZS1hbWl1MTl2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlQmx1ZSl9LmFjY2VudEJvbGRCbHVlLWExNWpzd3Zye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEJsdWUpfS5hY2NlbnRTdWJ0bGVQdXJwbGUtYXM1cG02OXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVB1cnBsZSl9LmFjY2VudEJvbGRQdXJwbGUtYXRlazB5ZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRQdXJwbGUpfS5hY2NlbnRTdWJ0bGVZZWxsb3ctYTE2M2J1emp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVZZWxsb3cpfS5hY2NlbnRCb2xkWWVsbG93LWExM2kwNzJie2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZFllbGxvdyl9LmFjY2VudFN1YnRsZVJlZC1hMWFoMXFhaHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVJlZCl9LmFjY2VudEJvbGRSZWQtYTFrcnplbXZ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkUmVkKX0uYWNjZW50U3VidGxlR3JheS1hMWxpY28zMntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUdyYXkpfS5hY2NlbnRCb2xkR3JheS1hbDF5NTAwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEdyYXkpfS50cmFuc3BhcmVudC10MWczYTdqbXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KX0uZmctZnJpZTMwbntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWZnKX0uZmdJbnZlcnNlLWYxZmlnNHB0e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdJbnZlcnNlKX0uZmdNdXRlZC1mYnNtemUwe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdNdXRlZCl9LmZnUHJpbWFyeS1mOWVwOTR4e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdQcmltYXJ5KX0uZmdQb3NpdGl2ZS1meXQ4b3I3e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdQb3NpdGl2ZSl9LmZnTmVnYXRpdmUtZjF2eHN3M2F7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mZ05lZ2F0aXZlKX0uZmdXYXJuaW5nLWZxbTAwbHJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mZ1dhcm5pbmcpfS5iZy1iMTBkbXJjYntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnKX0uYmdBbHRlcm5hdGUtYmk2N3RieXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnQWx0ZXJuYXRlKX0uYmdJbnZlcnNlLWI0dmJxc3B7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0ludmVyc2UpfS5iZ092ZXJsYXktYnJyc3BoNXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnT3ZlcmxheSl9LmJnUHJpbWFyeS1iMXdrcWw5b3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeSl9LmJnUHJpbWFyeVdhc2gtYnR2bm9wYXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeVdhc2gpfS5iZ1NlY29uZGFyeS1iMTN3cWN0bntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnU2Vjb25kYXJ5KX0uYmdUZXJ0aWFyeS1idWZyZjZpe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdUZXJ0aWFyeSl9LmJnU2Vjb25kYXJ5V2FzaC1idmR2OGM0e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlXYXNoKX0uYmdOZWdhdGl2ZS1iMWF1cmkyeXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTmVnYXRpdmUpfS5iZ05lZ2F0aXZlV2FzaC1iMXM4dzl5Y3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTmVnYXRpdmVXYXNoKX0uYmdQb3NpdGl2ZS1iMW5wc2ltNntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnUG9zaXRpdmUpfS5iZ1Bvc2l0aXZlV2FzaC1iMWk0Nnh3N3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnUG9zaXRpdmVXYXNoKX0uYmdXYXJuaW5nLWIxbjg1cHB2e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdXYXJuaW5nKX0uYmdXYXJuaW5nV2FzaC1iaDA1M2Rpe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdXYXJuaW5nV2FzaCl9LmN1cnJlbnRDb2xvci1jMWQ5azZtcXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWN1cnJlbnRDb2xvcil9LmJnTGluZS1iMW11ZXFua3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZSl9LmJnTGluZUludmVyc2UtYm5iMGVzaXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZUludmVyc2UpfS5iZ0xpbmVIZWF2eS1icGR6NWU1e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lSGVhdnkpfS5iZ0xpbmVQcmltYXJ5LWJid2dsYjB7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVQcmltYXJ5KX0uYmdMaW5lUHJpbWFyeVN1YnRsZS1ia24wb2Fme2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeVN1YnRsZSl9LmJnRWxldmF0aW9uMS1iMXh4cGVhZntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnRWxldmF0aW9uMSl9LmJnRWxldmF0aW9uMi1ibG9ldzlle2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdFbGV2YXRpb24yKX0uYWNjZW50U3VidGxlR3JlZW4tYTExdGVrZXh7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVHcmVlbil9LmFjY2VudEJvbGRHcmVlbi1hMWJibmg5b3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRHcmVlbil9LmFjY2VudFN1YnRsZUJsdWUtYTFvbnEzeGh7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVCbHVlKX0uYWNjZW50Qm9sZEJsdWUtYXVydW42entib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRCbHVlKX0uYWNjZW50U3VidGxlUHVycGxlLWFldHRzMTF7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVQdXJwbGUpfS5hY2NlbnRCb2xkUHVycGxlLWFsNnptOXR7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkUHVycGxlKX0uYWNjZW50U3VidGxlWWVsbG93LWFweGgyaWZ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVZZWxsb3cpfS5hY2NlbnRCb2xkWWVsbG93LWFkMmdjeGh7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkWWVsbG93KX0uYWNjZW50U3VidGxlUmVkLWFwajV0enB7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVSZWQpfS5hY2NlbnRCb2xkUmVkLWExaGh3czNle2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZFJlZCl9LmFjY2VudFN1YnRsZUdyYXktYTFsNWpiNWZ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVHcmF5KX0uYWNjZW50Qm9sZEdyYXktYXh5ZXVsNXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRHcmF5KX0udHJhbnNwYXJlbnQtdGMyM2pnOXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KX0uXzAtXzVmc3F1aHtib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMCl9Ll8xMDAtX2kzeDB3Z3tib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKX0uXzIwMC1fMW83cTRpM3tib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMjAwKX0uXzMwMC1fMW9vazE4Z3tib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMzAwKX0uXzQwMC1fMWZsbWg0NXtib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNDAwKX0uXzUwMC1faWtwY25le2JvcmRlci13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC01MDApfS5fMC1fdDg4ZzVze2JvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMCl9Ll8xMDAtXzFqcmoybW57Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0xMDApfS5fMjAwLV8zOHpvZnJ7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0yMDApfS5fMzAwLV8xcXF4cmJze2JvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMzAwKX0uXzQwMC1fMXZueWl0antib3JkZXItdG9wLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTQwMCl9Ll81MDAtXzFoZnRiNGh7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC01MDApfS5fMC1fMTRzY3ZyNHtib3JkZXItaW5saW5lLWVuZC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0wKX0uXzEwMC1fMW90Zm14cntib3JkZXItaW5saW5lLWVuZC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0xMDApfS5fMjAwLV8xdG84amIxe2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTIwMCl9Ll8zMDAtXzFjM2xlc3N7Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMzAwKX0uXzQwMC1fMTh2MTl0Z3tib3JkZXItaW5saW5lLWVuZC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC00MDApfS5fNTAwLV9iMTVqbHN7Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNTAwKX0uXzAtXzEydnp1YWh7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0wKX0uXzEwMC1fMXBjZmN6b3tib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTEwMCl9Ll8yMDAtXzVxcWhhaXtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTIwMCl9Ll8zMDAtXzFnYnFraGR7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0zMDApfS5fNDAwLV8xb3ppMmF1e2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNDAwKX0uXzUwMC1fMWFrM2M4antib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTUwMCl9Ll8wLV8xNmJncmtre2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMCl9Ll8xMDAtXzEydGxjNjN7Ym9yZGVyLWlubGluZS1zdGFydC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0xMDApfS5fMjAwLV8xNnRkcnlne2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMjAwKX0uXzMwMC1fMTlpaG5hdntib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTMwMCl9Ll80MDAtXzEzeHFiYnl7Ym9yZGVyLWlubGluZS1zdGFydC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC00MDApfS5fNTAwLV8zZmdmcTZ7Ym9yZGVyLWlubGluZS1zdGFydC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC01MDApfS5fMC1fOTV2MXR7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMCl9Ll8xMDAtXzFmZHk5MjF7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMTAwKX0uXzIwMC1fMWlldDZhdXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0yMDApfS5fMzAwLV9qdWN1Mnh7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMzAwKX0uXzQwMC1fZmN5Nmx7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNDAwKX0uXzUwMC1fMTI2ZG9kcntib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy01MDApfS5fNjAwLV8zd2tueWx7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNjAwKX0uXzcwMC1fMXc2MGsxZ3tib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy03MDApfS5fODAwLV8xM2Y0OWVye2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTgwMCl9Ll85MDAtXzFzejQzc3tib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy05MDApfS5fMTAwMC1fMWYwMHRsZXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDAwKX0uXzAtX3lyYnk5Nntib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0wKX0uXzEwMC1fbXhiMXAxe2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMCl9Ll8yMDAtXzFzNHRuM3V7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMjAwKX0uXzMwMC1fZTh6ZXJqe2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTMwMCl9Ll80MDAtXzE5eHJ5NXJ7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNDAwKX0uXzUwMC1fMWozeHZ6bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy01MDApfS5fNjAwLV8xa21zMHRke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTYwMCl9Ll83MDAtXzFneHEybTh7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNzAwKX0uXzgwMC1fNGZzMW5we2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTgwMCl9Ll85MDAtX2FqYzI0bntib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy05MDApfS5fMTAwMC1fMTVuZHJwe2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMDApfS5fMC1fNW9qcWFte2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0wKX0uXzEwMC1fMXZ5ZGd2cXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMTAwKX0uXzIwMC1fZGM4Mm9he2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0yMDApfS5fMzAwLV9pZjg2dGF7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTMwMCl9Ll80MDAtXzFvYWYxZjJ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTQwMCl9Ll81MDAtXzRmOXV2b3tib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNTAwKX0uXzYwMC1fMThmbnppNXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNjAwKX0uXzcwMC1fbzhxYzgye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy03MDApfS5fODAwLV9nbWJ0cTN7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTgwMCl9Ll85MDAtXzFjemR0YTN7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTkwMCl9Ll8xMDAwLV9jcWdxZmN7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMDApfS5fMC1fZTF3enF3e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTApfS5fMTAwLV8xa2ZwdjV5e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMCl9Ll8yMDAtX210aW01OXtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0yMDApfS5fMzAwLV8xdnE1N2l0e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTMwMCl9Ll80MDAtXzFkMDY0a2J7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNDAwKX0uXzUwMC1fbHQwbm95e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTUwMCl9Ll82MDAtXzdib3JkMXtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy02MDApfS5fNzAwLV8xN3JsYmV6e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTcwMCl9Ll84MDAtXzN6ZHlyeXtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy04MDApfS5fOTAwLV8xc2t2YWEze2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTkwMCl9Ll8xMDAwLV8xdHBibjZje2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMDApfS5fMC1fMTYxYjd3cXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMCl9Ll8xMDAtXzE0bThucjR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMCl9Ll8yMDAtXzFzYnNiNmd7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTIwMCl9Ll8zMDAtXzF3ajBqazd7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTMwMCl9Ll80MDAtXzE4ODMwYzJ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTQwMCl9Ll81MDAtX3Z3bXgwe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy01MDApfS5fNjAwLV8xZTRjbmV1e2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy02MDApfS5fNzAwLV9uczBsczR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTcwMCl9Ll84MDAtXzJ0dnkxantib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtODAwKX0uXzkwMC1fam9rdWp3e2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy05MDApfS5fMTAwMC1fOWZlMmVle2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDAwKX0uaW5oZXJpdC1pOTVuZXd5e2ZvbnQtZmFtaWx5OmluaGVyaXR9LmRpc3BsYXkxLWQxNnd2em1ne2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktZGlzcGxheTEpfS5kaXNwbGF5Mi1kNm84cGcye2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktZGlzcGxheTIpfS5kaXNwbGF5My1kM2Q1czB7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS1kaXNwbGF5Myl9LnRpdGxlMS10MTdxZXo1d3tmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5LXRpdGxlMSl9LnRpdGxlMi10dnd4eHl2e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktdGl0bGUyKX0udGl0bGUzLXQxZmFkeHd0e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktdGl0bGUzKX0udGl0bGU0LXR4emZlM3V7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS10aXRsZTQpfS5oZWFkbGluZS1oZXNlNzF4e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktaGVhZGxpbmUpfS5ib2R5LWIxcXd4M3A5e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktYm9keSl9LmxhYmVsMS1sMXJ0MTNtb3tmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5LWxhYmVsMSl9LmxhYmVsMi1seDgyMGQye2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktbGFiZWwyKX0uY2FwdGlvbi1jYXR5ZHV4e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktY2FwdGlvbil9LmxlZ2FsLWwxMmF6NWlve2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktbGVnYWwpfS5pbmhlcml0LWkxMHhhYzBne2ZvbnQtc2l6ZTppbmhlcml0fS5kaXNwbGF5MS1kNXA3MXNle2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1kaXNwbGF5MSl9LmRpc3BsYXkyLWQxZGIzc3pke2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1kaXNwbGF5Mil9LmRpc3BsYXkzLWQxZGhtaWE4e2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1kaXNwbGF5Myl9LnRpdGxlMS10ZHgzdmt7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLXRpdGxlMSl9LnRpdGxlMi10MXBpNHQ5eHtmb250LXNpemU6dmFyKC0tZm9udFNpemUtdGl0bGUyKX0udGl0bGUzLXR0eW02OWN7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLXRpdGxlMyl9LnRpdGxlNC10MWxzcWt2Zntmb250LXNpemU6dmFyKC0tZm9udFNpemUtdGl0bGU0KX0uaGVhZGxpbmUtaGx5aGZmYXtmb250LXNpemU6dmFyKC0tZm9udFNpemUtaGVhZGxpbmUpfS5ib2R5LWI1NDB1dTB7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWJvZHkpfS5sYWJlbDEtbG1nM2JrOHtmb250LXNpemU6dmFyKC0tZm9udFNpemUtbGFiZWwxKX0ubGFiZWwyLWxoaWM1MnF7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWxhYmVsMil9LmNhcHRpb24tYzFhaHk5N2p7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWNhcHRpb24pfS5sZWdhbC1sdmt3aHF3e2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1sZWdhbCl9LmluaGVyaXQtaTExbXY0YjR7Zm9udC13ZWlnaHQ6aW5oZXJpdH0uZGlzcGxheTEtZGkzbmJ6entmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWRpc3BsYXkxKX0uZGlzcGxheTItZDE1NXByNnZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1kaXNwbGF5Mil9LmRpc3BsYXkzLWQxeHFkNmd7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1kaXNwbGF5Myl9LnRpdGxlMS10MTl1eDNsbntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LXRpdGxlMSl9LnRpdGxlMi10MWl1bHBvbHtmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LXRpdGxlMil9LnRpdGxlMy10NjIxcGF3e2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHQtdGl0bGUzKX0udGl0bGU0LXQxbWF4eWxse2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHQtdGl0bGU0KX0uaGVhZGxpbmUtaHR6eGVvNntmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWhlYWRsaW5lKX0uYm9keS1iMWdoNmkwM3tmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWJvZHkpfS5sYWJlbDEtbDE4dDhpb3J7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1sYWJlbDEpfS5sYWJlbDItbDN1dGFsZ3tmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWxhYmVsMil9LmNhcHRpb24tYzFwYWE4eWV7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1jYXB0aW9uKX0ubGVnYWwtbDFkMGZweTd7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1sZWdhbCl9LmluaGVyaXQtaXdlMjFhM3tsaW5lLWhlaWdodDppbmhlcml0fS5kaXNwbGF5MS1kOHlmMjg0e2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtZGlzcGxheTEpfS5kaXNwbGF5Mi1kZjVvemxoe2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtZGlzcGxheTIpfS5kaXNwbGF5My1kenlrMGdie2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtZGlzcGxheTMpfS50aXRsZTEtdG4ycG5rMXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LXRpdGxlMSl9LnRpdGxlMi10emlnd3Nxe2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtdGl0bGUyKX0udGl0bGUzLXRrNzh6eWJ7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodC10aXRsZTMpfS50aXRsZTQtdGVmdHcye2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtdGl0bGU0KX0uaGVhZGxpbmUtaHcyb3FsZHtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWhlYWRsaW5lKX0uYm9keS1iMTlranRsOHtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWJvZHkpfS5sYWJlbDEtbHUydm1pbXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWxhYmVsMSl9LmxhYmVsMi1sMTI1cndvd3tsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWxhYmVsMil9LmNhcHRpb24tY2IxMXlydntsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWNhcHRpb24pfS5sZWdhbC1seW5vMHVse2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtbGVnYWwpfS5ub25lLW5kYXIyMmp7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZX0udW5kZXJsaW5lLXVxZzk3dWF7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lm92ZXJsaW5lLW8xM3Biem03ey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOm92ZXJsaW5lO3RleHQtZGVjb3JhdGlvbjpvdmVybGluZX0ubGluZS10aHJvdWdoLWxxOXRleGp7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoO3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2h9LnVuZGVybGluZV9vdmVybGluZS11MWlhY3NsZnstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgb3ZlcmxpbmU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBvdmVybGluZX0udW5kZXJsaW5lX2RvdWJsZS11YW5qYnpley13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3VibGU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3VibGV9Lm5vbmUtbm9kcnkyeHt0ZXh0LXRyYW5zZm9ybTpub25lfS51cHBlcmNhc2UtdTF5MG1nZHl7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5sb3dlcmNhc2UtbDE0dmYyZTh7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlfS5jYXBpdGFsaXplLWNhczl4dWd7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZX0ubm9uZS1uMTI1Y3N5anstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udGV4dC10MW5ucTFsbHstd2Via2l0LXVzZXItc2VsZWN0OnRleHQ7dXNlci1zZWxlY3Q6dGV4dH0uYWxsLWF4a3ptOG57LXdlYmtpdC11c2VyLXNlbGVjdDphbGw7dXNlci1zZWxlY3Q6YWxsfS5hdXRvLWFhZDc5eDV7LXdlYmtpdC11c2VyLXNlbGVjdDphdXRvO3VzZXItc2VsZWN0OmF1dG99Lm5vbmUtbnZueTYxMXtkaXNwbGF5Om5vbmV9LmJsb2NrLWJ5Z2hsdW97ZGlzcGxheTpibG9ja30uaW5saW5lLWltOWhuNXB7ZGlzcGxheTppbmxpbmV9LmlubGluZS1ibG9jay1pYng5OHFse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mbGV4LWYxMDBvaG8xe2Rpc3BsYXk6ZmxleH0uaW5saW5lLWZsZXgtaTF4ZHRpZmZ7ZGlzcGxheTppbmxpbmUtZmxleH0uZ3JpZC1nc2Njcnh7ZGlzcGxheTpncmlkfS5pbmxpbmUtZ3JpZC1pcXpnNXRpe2Rpc3BsYXk6aW5saW5lLWdyaWR9LmNvbnRlbnRzLWMxa2M0aWdje2Rpc3BsYXk6Y29udGVudHN9LmZsb3ctcm9vdC1mMTFrZ3RjdHtkaXNwbGF5OmZsb3ctcm9vdH0ucmV2ZXJ0LXIzY2p2dDB7ZGlzcGxheTpyZXZlcnR9Lmxpc3QtaXRlbS1sMWFtcXgweXtkaXNwbGF5Omxpc3QtaXRlbX0uYXV0by1hMXFpeHlyMXtvdmVyZmxvdzphdXRvfS52aXNpYmxlLXYxMjJvZDk0e292ZXJmbG93OnZpc2libGV9LmhpZGRlbi1oMW53OWVwOHtvdmVyZmxvdzpoaWRkZW59LmNsaXAtYzE4OHdiZDh7b3ZlcmZsb3c6Y2xpcH0uc2Nyb2xsLXN6cHFzcGp7b3ZlcmZsb3c6c2Nyb2xsfS5fMC1fcHBuNDk3e2dhcDp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtX3d1ZGcxMHtnYXA6dmFyKC0tc3BhY2UtMF8yNSl9Ll8wXzUtXzFzZ3JiN3R7Z2FwOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV8xbDFzc3pve2dhcDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtX2hzdnpzcntnYXA6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzF4YjVneTd7Z2FwOnZhcigtLXNwYWNlLTFfNSl9Ll8yLV8xZDVsdDc5e2dhcDp2YXIoLS1zcGFjZS0yKX0uXzMtXzFiMm42aDd7Z2FwOnZhcigtLXNwYWNlLTMpfS5fNC1fY2RwZjhme2dhcDp2YXIoLS1zcGFjZS00KX0uXzUtX25oMjZve2dhcDp2YXIoLS1zcGFjZS01KX0uXzYtXzEwNHV0MGh7Z2FwOnZhcigtLXNwYWNlLTYpfS5fNy1fMXRmd3hoZ3tnYXA6dmFyKC0tc3BhY2UtNyl9Ll84LV8xM2Y4b2V3e2dhcDp2YXIoLS1zcGFjZS04KX0uXzktX3diMnR4ZntnYXA6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fMW83MXQ0dntnYXA6dmFyKC0tc3BhY2UtMTApfS5fMC1fMTRlZm1nMHstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMCk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtXzFkNmtwNG97LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTBfMjUpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMF8yNSl9Ll8wXzUtXzEwMzgycDV7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTBfNSk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fMWNiZDJheXstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMF83NSk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtXzF3aHRnNDR7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTEpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzF3czBianp7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTFfNSk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fZHozemI5ey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0yKTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTIpfS5fMy1fMW53Z2dudHstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMyk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0zKX0uXzQtXzE4dnZpMDR7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTQpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNCl9Ll81LV9maG1oYnV7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTUpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNSl9Ll82LV9veWw3dXZ7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTYpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNil9Ll83LV83NDl6aWF7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTcpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNyl9Ll84LV9yYTE4Nm57LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTgpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtOCl9Ll85LV8xbHo4aTV6ey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS05KTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTkpfS5fMTAtXzFjanRhbG57LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTEwKTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTEwKX0uXzAtX3E1bHgwMXtyb3ctZ2FwOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fMTZydTF0bntyb3ctZ2FwOnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV91Z28wbntyb3ctZ2FwOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV83ZTRxNGp7cm93LWdhcDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtXzFrbHJra2R7cm93LWdhcDp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fbncwdHFxe3Jvdy1nYXA6dmFyKC0tc3BhY2UtMV81KX0uXzItXzFkaGg3c3tyb3ctZ2FwOnZhcigtLXNwYWNlLTIpfS5fMy1fMTZlY3UyOHtyb3ctZ2FwOnZhcigtLXNwYWNlLTMpfS5fNC1fMWhwbHBhd3tyb3ctZ2FwOnZhcigtLXNwYWNlLTQpfS5fNS1fajhrdWFue3Jvdy1nYXA6dmFyKC0tc3BhY2UtNSl9Ll82LV8xYjJhMXBhe3Jvdy1nYXA6dmFyKC0tc3BhY2UtNil9Ll83LV9hcTVycjh7cm93LWdhcDp2YXIoLS1zcGFjZS03KX0uXzgtX2lwMTNpZntyb3ctZ2FwOnZhcigtLXNwYWNlLTgpfS5fOS1fZ21kYjg3e3Jvdy1nYXA6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fMTk4NWZlYntyb3ctZ2FwOnZhcigtLXNwYWNlLTEwKX0ubm9ybWFsLW55bWt1N2l7LXdlYmtpdC1ib3gtcGFjazpub3JtYWw7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6bm9ybWFsOy1tcy1mbGV4LXBhY2s6bm9ybWFsO2p1c3RpZnktY29udGVudDpub3JtYWx9LmNlbnRlci1jMTN6cms1cHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5zdGFydC1zNjQyZ2hve2p1c3RpZnktY29udGVudDpzdGFydH0uZW5kLWUxNnkyZjlqe2p1c3RpZnktY29udGVudDplbmR9LmZsZXgtc3RhcnQtZnJiZGluZXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uZmxleC1lbmQtZjE0NGJia2d7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5sZWZ0LWxkd3U2aG97LXdlYmtpdC1ib3gtcGFjazpsZWZ0Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OmxlZnQ7LW1zLWZsZXgtcGFjazpsZWZ0O2p1c3RpZnktY29udGVudDpsZWZ0fS5yaWdodC1ydnBhcmM5ey13ZWJraXQtYm94LXBhY2s6cmlnaHQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6cmlnaHQ7LW1zLWZsZXgtcGFjazpyaWdodDtqdXN0aWZ5LWNvbnRlbnQ6cmlnaHR9LnNwYWNlLWJldHdlZW4tc3hleTdqMXtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uc3BhY2UtYXJvdW5kLXMxdmRraDR0ey13ZWJraXQtYm94LXBhY2s6c3BhY2UtYXJvdW5kOy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDstbXMtZmxleC1wYWNrOnNwYWNlLWFyb3VuZDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5zcGFjZS1ldmVubHktczFmYjNieXN7LXdlYmtpdC1ib3gtcGFjazpzcGFjZS1ldmVubHk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtZXZlbmx5Oy1tcy1mbGV4LXBhY2s6c3BhY2UtZXZlbmx5O2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHl9LnN0cmV0Y2gtc214dXZ5b3std2Via2l0LWJveC1wYWNrOnN0cmV0Y2g7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDstbXMtZmxleC1wYWNrOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9Lm5vcm1hbC1uYzdnd2V6ey13ZWJraXQtYWxpZ24tY29udGVudDpub3JtYWw7LW1zLWZsZXgtbGluZS1wYWNrOm5vcm1hbDthbGlnbi1jb250ZW50Om5vcm1hbH0uY2VudGVyLWN3dzZzenV7YWxpZ24tY29udGVudDpjZW50ZXJ9LnN0YXJ0LXM2b3VzYmx7YWxpZ24tY29udGVudDpzdGFydH0uZW5kLWVmam5uNjV7YWxpZ24tY29udGVudDplbmR9LmZsZXgtc3RhcnQtZjE1anFrYmx7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS5mbGV4LWVuZC1mMWtxdGl3anthbGlnbi1jb250ZW50OmZsZXgtZW5kfS5zcGFjZS1iZXR3ZWVuLXN0bnU5MGZ7LXdlYmtpdC1hbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW47LW1zLWZsZXgtbGluZS1wYWNrOnNwYWNlLWJldHdlZW47YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVufS5zcGFjZS1hcm91bmQtc3Z0ZXJsMXstd2Via2l0LWFsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kOy1tcy1mbGV4LWxpbmUtcGFjazpzcGFjZS1hcm91bmQ7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmR9LnNwYWNlLWV2ZW5seS1zMXI1ZzZjd3std2Via2l0LWFsaWduLWNvbnRlbnQ6c3BhY2UtZXZlbmx5Oy1tcy1mbGV4LWxpbmUtcGFjazpzcGFjZS1ldmVubHk7YWxpZ24tY29udGVudDpzcGFjZS1ldmVubHl9LnN0cmV0Y2gtc25vY2xtaHthbGlnbi1jb250ZW50OnN0cmV0Y2h9LmJhc2VsaW5lLWIzcDVyOXZ7LXdlYmtpdC1hbGlnbi1jb250ZW50OmJhc2VsaW5lOy1tcy1mbGV4LWxpbmUtcGFjazpiYXNlbGluZTthbGlnbi1jb250ZW50OmJhc2VsaW5lfS5maXJzdF9iYXNlbGluZS1mMWdzNXZhb3std2Via2l0LWFsaWduLWNvbnRlbnQ6YmFzZWxpbmU7LW1zLWZsZXgtbGluZS1wYWNrOmZpcnN0IGJhc2VsaW5lO2FsaWduLWNvbnRlbnQ6YmFzZWxpbmV9Lmxhc3RfYmFzZWxpbmUtbDF5bGwycTJ7LXdlYmtpdC1hbGlnbi1jb250ZW50Omxhc3QgYmFzZWxpbmU7LW1zLWZsZXgtbGluZS1wYWNrOmxhc3QgYmFzZWxpbmU7YWxpZ24tY29udGVudDpsYXN0IGJhc2VsaW5lfS5ub3JtYWwtbjVncWdydnstd2Via2l0LWFsaWduLWl0ZW1zOm5vcm1hbDstd2Via2l0LWJveC1hbGlnbjpub3JtYWw7LW1zLWZsZXgtYWxpZ246bm9ybWFsO2FsaWduLWl0ZW1zOm5vcm1hbH0uY2VudGVyLWMzY3RxZGV7YWxpZ24taXRlbXM6Y2VudGVyfS5zdGFydC1zMWRxb251Y3thbGlnbi1pdGVtczpzdGFydH0uZW5kLWVkOWx2NDR7YWxpZ24taXRlbXM6ZW5kfS5mbGV4LXN0YXJ0LWZoM2NuaHV7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy13ZWJraXQtYm94LWFsaWduOmZsZXgtc3RhcnQ7LW1zLWZsZXgtYWxpZ246ZmxleC1zdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5mbGV4LWVuZC1mM29sNXptey13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1lbmQ7LXdlYmtpdC1ib3gtYWxpZ246ZmxleC1lbmQ7LW1zLWZsZXgtYWxpZ246ZmxleC1lbmQ7YWxpZ24taXRlbXM6ZmxleC1lbmR9LnNlbGYtc3RhcnQtczE1cHlxNjF7LXdlYmtpdC1hbGlnbi1pdGVtczpzZWxmLXN0YXJ0Oy13ZWJraXQtYm94LWFsaWduOnNlbGYtc3RhcnQ7LW1zLWZsZXgtYWxpZ246c2VsZi1zdGFydDthbGlnbi1pdGVtczpzZWxmLXN0YXJ0fS5zZWxmLWVuZC1zZHphbmM5ey13ZWJraXQtYWxpZ24taXRlbXM6c2VsZi1lbmQ7LXdlYmtpdC1ib3gtYWxpZ246c2VsZi1lbmQ7LW1zLWZsZXgtYWxpZ246c2VsZi1lbmQ7YWxpZ24taXRlbXM6c2VsZi1lbmR9LnN0cmV0Y2gtc3RtZDZ2d3thbGlnbi1pdGVtczpzdHJldGNofS5iYXNlbGluZS1iMm0xejNne2FsaWduLWl0ZW1zOmJhc2VsaW5lfS5maXJzdF9iYXNlbGluZS1mMTlpeTNrMXstd2Via2l0LWFsaWduLWl0ZW1zOmJhc2VsaW5lOy13ZWJraXQtYm94LWFsaWduOmZpcnN0IGJhc2VsaW5lOy1tcy1mbGV4LWFsaWduOmZpcnN0IGJhc2VsaW5lO2FsaWduLWl0ZW1zOmJhc2VsaW5lfS5sYXN0X2Jhc2VsaW5lLWxsa2Z5ZGh7LXdlYmtpdC1hbGlnbi1pdGVtczpsYXN0IGJhc2VsaW5lOy13ZWJraXQtYm94LWFsaWduOmxhc3QgYmFzZWxpbmU7LW1zLWZsZXgtYWxpZ246bGFzdCBiYXNlbGluZTthbGlnbi1pdGVtczpsYXN0IGJhc2VsaW5lfS5hdXRvLWE4dmM5c217YWxpZ24tc2VsZjphdXRvfS5ub3JtYWwtbjVkMGJkd3std2Via2l0LWFsaWduLXNlbGY6bm9ybWFsOy1tcy1mbGV4LWl0ZW0tYWxpZ246bm9ybWFsO2FsaWduLXNlbGY6bm9ybWFsfS5jZW50ZXItYzFseDU1e2FsaWduLXNlbGY6Y2VudGVyfS5zdGFydC1zMWVtY28zbnthbGlnbi1zZWxmOnN0YXJ0fS5lbmQtZW9xYTlyeHthbGlnbi1zZWxmOmVuZH0uZmxleC1zdGFydC1mcW5odTBie2FsaWduLXNlbGY6ZmxleC1zdGFydH0uZmxleC1lbmQtZjE0cmJ2Z3thbGlnbi1zZWxmOmZsZXgtZW5kfS5zZWxmLXN0YXJ0LXM0cTZkYWp7LXdlYmtpdC1hbGlnbi1zZWxmOnNlbGYtc3RhcnQ7LW1zLWZsZXgtaXRlbS1hbGlnbjpzZWxmLXN0YXJ0O2FsaWduLXNlbGY6c2VsZi1zdGFydH0uc2VsZi1lbmQtczJ6Y2c1bHstd2Via2l0LWFsaWduLXNlbGY6c2VsZi1lbmQ7LW1zLWZsZXgtaXRlbS1hbGlnbjpzZWxmLWVuZDthbGlnbi1zZWxmOnNlbGYtZW5kfS5zdHJldGNoLXMxbnp2dTVse2FsaWduLXNlbGY6c3RyZXRjaH0uYmFzZWxpbmUtYmsyZ3JpOXthbGlnbi1zZWxmOmJhc2VsaW5lfS5maXJzdF9iYXNlbGluZS1mZDUxaGN7LXdlYmtpdC1hbGlnbi1zZWxmOmJhc2VsaW5lOy1tcy1mbGV4LWl0ZW0tYWxpZ246Zmlyc3QgYmFzZWxpbmU7YWxpZ24tc2VsZjpiYXNlbGluZX0ubGFzdF9iYXNlbGluZS1sc2Y5dGc5ey13ZWJraXQtYWxpZ24tc2VsZjpsYXN0IGJhc2VsaW5lOy1tcy1mbGV4LWl0ZW0tYWxpZ246bGFzdCBiYXNlbGluZTthbGlnbi1zZWxmOmxhc3QgYmFzZWxpbmV9LnJvdy1ydjRmcTVje2ZsZXgtZGlyZWN0aW9uOnJvd30ucm93LXJldmVyc2UtcmxxeHE0bXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0uY29sdW1uLWMxZGNkNDU5e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY29sdW1uLXJldmVyc2UtYzFmOTRjOWZ7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9Lm5vd3JhcC1uaHc1bjVme2ZsZXgtd3JhcDpub3dyYXB9LndyYXAtdzE2MXJ4d2t7ZmxleC13cmFwOndyYXB9LndyYXAtcmV2ZXJzZS13NG4zMWFte2ZsZXgtd3JhcDp3cmFwLXJldmVyc2V9LnN0YXRpYy1zbTJ1dHE2e3Bvc2l0aW9uOnN0YXRpY30ucmVsYXRpdmUtcnd4Ym96bHtwb3NpdGlvbjpyZWxhdGl2ZX0uYWJzb2x1dGUtYWtxMHFrbXtwb3NpdGlvbjphYnNvbHV0ZX0uZml4ZWQtZjN5bXJ3cntwb3NpdGlvbjpmaXhlZH0uc3RpY2t5LXMxOXZkdjJxe3Bvc2l0aW9uOnN0aWNreX0uXzAtXzExc2t6bnR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMCk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMCk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMCk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fcDZyaTZ1e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfMjUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfMjUpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfMjUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fZDltMDhie3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfNSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMF81KTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fd2kwcGZke3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtX2htc2xpdntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xKTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzFtcWY2cml7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMV81KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xXzUpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTFfNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTFfNSl9Ll8yLV8xY252dXo5e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTIpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTIpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTIpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0yKX0uXzMtXzdoYm05eXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0zKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0zKTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0zKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMyl9Ll80LV84cm91ZHN7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNCk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNCk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNCk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTQpfS5fNS1famFkbHdle3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTUpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS01KX0uXzYtXzFjeDdkZWl7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNik7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNik7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNik7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTYpfS5fNy1feXd6amthe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTcpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTcpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTcpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS03KX0uXzgtX3N5OHBxeXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtOCl9Ll85LV8xNWI5cmxhe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTkpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTkpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTkpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS05KX0uXzEwLV8xOXpxNjkze3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTEwKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xMCk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMTApO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xMCl9Ll8wLV8xbnN5cnkye3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTApO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtXzZ5MnN0cXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzI1KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMF8yNSl9Ll8wXzUtX3Z0aHVldXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fNWd5cnQ5e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtX3RoNzloa3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzQ4cmt4MntwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xXzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fMXlvY2VzNHtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMil9Ll8zLV8xNWVsNjZze3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTMpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0zKX0uXzQtX2V1OHMzc3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS00KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNCl9Ll81LV95emU0cnR7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTUpfS5fNi1fMTR0d3VhNHtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS02KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNil9Ll83LV8xMnBsN2Jre3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTcpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS03KX0uXzgtX245a3lyY3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtOCl9Ll85LV8xMWV5aTNse3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTkpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS05KX0uXzEwLV8xMWRjMWt6e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTEwKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMTApfS5fMC1fc21hajloe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTApO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fMWx2YzFuZ3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0wXzI1KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMW92cGVwcXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0wXzUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV8xcXNzaXZse3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fbThibWN5e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTEpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTEpfS5fMV81LV81c3Vjcm97cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMV81KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fbTFjajBie3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTIpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTIpfS5fMy1fN3NpZXp6e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTMpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTMpfS5fNC1fNjB6OXFue3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTQpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTQpfS5fNS1fMWgzeTUzc3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS01KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS01KX0uXzYtXzEwMGltMG17cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNik7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNil9Ll83LV9oa2h2dG17cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNyk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNyl9Ll84LV9uc2M5dmt7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtOCk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtOCl9Ll85LV84cXlseHR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtOSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtOSl9Ll8xMC1fZ25mc2Rie3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTEwKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xMCl9Ll8wLV8yYTV0MnR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMCl9Ll8wXzI1LV95dXM3aGZ7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF8yNSl9Ll8wXzUtX2FnbmJ2ZntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fNmNmbDlne3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fcTVhMDN3e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTEpfS5fMV81LV95d3dyeGF7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMV81KX0uXzItXzF5ejlwNmR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMil9Ll8zLV9tdnpmemR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMyl9Ll80LV8xdmRvMDYwe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTQpfS5fNS1fMW9zMnUwentwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS01KX0uXzYtXzN6MDc4dHtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS02KX0uXzctXzFjMDdydXB7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNyl9Ll84LV8xbHBpOXV1e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTgpfS5fOS1fY2VydHoxe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTkpfS5fMTAtXzFpMzR5NWl7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMTApfS5fMC1fbHhrdDBie3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fcmlqb3Vie3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV8xeXliN2oxe3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV8xM3lvZHk1e3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fMWloMmF1MHtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fZHNpbDkye3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTFfNSl9Ll8yLV81amdrbXZ7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMil9Ll8zLV85bTB2end7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMyl9Ll80LV8xdmF1MDVme3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTQpfS5fNS1fMTdyMDU3cXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS01KX0uXzYtXzFwdjdpYXF7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNil9Ll83LV8xbGhzdmd0e3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTcpfS5fOC1fYmI1NG1we3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTgpfS5fOS1fMWdxZG9wYXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS05KX0uXzEwLV84OWo3M3N7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMTApfS5fMC1fbGNmcm5ze3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTApfS5fMF8yNS1feTc3M3Bue3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV9pdjFrcnF7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtX2NneWN3c3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtXzFqcHkzYmR7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzJidHJtcXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fcXQwN2tqe3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTIpfS5fMy1fMXZjaDRub3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0zKX0uXzQtXzE3ZDFkMTV7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNCl9Ll81LV8xM3RjOTMwe3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTUpfS5fNi1fMXF5MWdxe3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTYpfS5fNy1fMTZoZzd5OXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS03KX0uXzgtXzFqcjdpODN7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtOCl9Ll85LV8xY2g2MnNte3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTkpfS5fMTAtXzF3enJ3NTd7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMTApfS5fMC1fMWk5d2IzcntwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMCl9Ll8wXzI1LV8xM3ptazk1e3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMXFvdm96NXtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtXzF1NHJwend7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fMzhyc2h5e3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fcTdtZjhqe3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fM2JwcjF2e3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0yKX0uXzMtX3p3MDY5ZntwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMyl9Ll80LV8xajI4NW1ye3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS00KX0uXzUtXzMxdjZ6dHtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNSl9Ll82LV8xeXJob2U4e3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS02KX0uXzctXzE1dGc1MTF7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTcpfS5fOC1fMW4wZTZhNXtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtOCl9Ll85LV8xcjdvM3Mxe3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS05KX0uXzEwLV8xbjB0NTN7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTEwKX0uXzAtXzk4eW5yNXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpfS5fLTBfMjUtLTFzOGhlaHB7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF8yNSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKX0uXy0wXzUtLWY4ZTh0Z3ttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSl9Ll8tMF83NS0tZDNwaWkwe21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF83NSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSl9Ll8tMS0tMXNhMnRnOXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpfS5fLTFfNS0tczh5czB6e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS11bjVleXd7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS1hZDMyNnl7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKX0uXy00LS0xdHZxYnkxe21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSl9Ll8tNS0tMWczdW44dHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLTFheDgyNmt7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xbGV4NnV4e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSl9Ll8tOC0tYjEzZXRxe21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0tMTUxamU3aXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS0xM2Z6eHc5e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xMCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xMCkpfS5fMC1fOHY3N3R0e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpfS5fLTBfMjUtLW1wMXhqOHttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKX0uXy0wXzUtLTFtaHhxM3F7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpfS5fLTBfNzUtLW5ic25zdHttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS0xMjh5Mnp6e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpfS5fLTFfNS0tMWNmcDQ4dXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSl9Ll8tMi0tM3VreWt0e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpfS5fLTMtLTFoOHl5ODd7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSl9Ll8tNC0tMWNqYjFtbXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKX0uXy01LS14Ymc0bnh7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSl9Ll8tNi0tMXgxM3BiYXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xeGRjODNle21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpfS5fLTgtLTE0d2tuenJ7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0tZ242b2V6e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS0xMHEwcWE5e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSl9Ll8wLV8xcTcyeTZte21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSl9Ll8tMF8yNS0tamtkc2Qwe21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSl9Ll8tMF81LS0xMzY0NmR1e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpfS5fLTBfNzUtLTE0MW53dWN7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF83NSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS12M2s0dnZ7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKX0uXy0xXzUtLTFlNWlyMHR7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSl9Ll8tMi0tMXRvdDVpcHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpfS5fLTMtLXVkemg5e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSl9Ll8tNC0tMXl6d2RiY3ttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpfS5fLTUtLW90MGsxNnttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLTF2eGtha3ttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpfS5fLTctLTF1ZXg5N2Z7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS0xNjNnNGE3e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0tN3NjN3Qye21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSl9Ll8tMTAtLWhmYWZvb3ttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xMCkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSl9Ll8wLV9vZjY2Z3p7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpfS5fLTBfMjUtLWpkOTMxcnttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSl9Ll8tMF81LS0xZWo2M2Rle21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpfS5fLTBfNzUtLTFzb29lbnR7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF83NSkpfS5fLTEtLTFwczV1dzd7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpfS5fLTFfNS0tY2JuaTE0e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpfS5fLTItLTIwd280c3ttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSl9Ll8tMy0tMTBoMGQyY3ttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSl9Ll8tNC0taXdxcGE4e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKX0uXy01LS13MXVvZzR7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLXl3aGhoeXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSl9Ll8tNy0tb2V4cWZ3e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS0xOWc3dmEwe21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKX0uXy05LS01a3picXh7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS0xaW1nMXJze21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSl9Ll8wLV83em1ucTZ7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpfS5fLTBfMjUtLTN0cm9xe21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKX0uXy0wXzUtLTFvMXRjeXN7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSl9Ll8tMF83NS0tMTVyOWhsZHttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSl9Ll8tMS0tMXVmMDczcHttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS04bnlmenR7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSl9Ll8tMi0tNmIzajJ0e21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS11aXp3Z3ttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSl9Ll8tNC0tOTByNnlre21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKX0uXy01LS0xdTNxOHVwe21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKX0uXy02LS0xN3FldTE3e21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xMGxhYTkze21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS0xNXB6NjZ4e21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKX0uXy05LS1meWZvdTR7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS0xeHFiMndwe21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSl9Ll8wLV9uang0OWR7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKX0uXy0wXzI1LS1zd2I1Ym17bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKX0uXy0wXzUtLTFjeWwxNDF7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpfS5fLTBfNzUtLTF2dmo2OTZ7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS0xdWhhOXZ4e21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS0xNTVmM24we21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS12cWVoeDl7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS0xc2wxZmcwe21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSl9Ll8tNC0tbTBjZXd1e21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSl9Ll8tNS0tMXJqM212Y3ttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLTF2OG5nbnR7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xYXhlanI0e21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSl9Ll8tOC0tMWFzbXoyMXttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpfS5fLTktLTF2ZTNuY2d7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKX0uXy0xMC0tMTN3MmVscHttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uXzAtX3F1czl5anttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSl9Ll8tMF8yNS0tc3VlOTJke21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKX0uXy0wXzUtLTF0ZnJybG57bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSl9Ll8tMF83NS0tMTZvcm1zcXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSl9Ll8tMS0tMWdsMm5tcHttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS0xa2lyb3pve21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpfS5fLTItLW83NmEwanttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSl9Ll8tMy0tMTBsMDM0bHttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSl9Ll8tNC0tdDk3ZmR2e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKX0uXy01LS15Ymg0aTF7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLTdwemxmaHttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSl9Ll8tNy0tMWdyNGx3cnttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSl9Ll8tOC0tMXZqd3cyNnttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0teTV1ZGI1e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKX0uXy0xMC0tMXdqM3JmNXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xMCkpfS5zdGFydC1zY2FvNGphe3RleHQtYWxpZ246c3RhcnR9LmVuZC1lMXEzNHhmbHt0ZXh0LWFsaWduOmVuZH0uY2VudGVyLWNodzI3ZzV7dGV4dC1hbGlnbjpjZW50ZXJ9Lmp1c3RpZnktajF4YXBzajl7dGV4dC1hbGlnbjpqdXN0aWZ5fS5oaWRkZW4taGY1cDR1bHt2aXNpYmlsaXR5OmhpZGRlbn0udmlzaWJsZS12NG9zZXZ0e3Zpc2liaWxpdHk6dmlzaWJsZX19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpIGFuZCAobWF4LXdpZHRoOjEyNzlweCl7LndpZHRoLXdxdHE4YW97d2lkdGg6dmFyKC0tdGFibGV0LXdpZHRoKX0uaGVpZ2h0LWg4YmN2ZGl7aGVpZ2h0OnZhcigtLXRhYmxldC1oZWlnaHQpfS5taW5XaWR0aC1tbmdtM2hke21pbi13aWR0aDp2YXIoLS10YWJsZXQtbWluV2lkdGgpfS5taW5IZWlnaHQtbTF0a3RhM2N7bWluLWhlaWdodDp2YXIoLS10YWJsZXQtbWluSGVpZ2h0KX0ubWF4V2lkdGgtbWF2eHQybXttYXgtd2lkdGg6dmFyKC0tdGFibGV0LW1heFdpZHRoKX0ubWF4SGVpZ2h0LW0xcWxzdzN3e21heC1oZWlnaHQ6dmFyKC0tdGFibGV0LW1heEhlaWdodCl9LmFzcGVjdFJhdGlvLWExYWpybWM1e2FzcGVjdC1yYXRpbzp2YXIoLS10YWJsZXQtYXNwZWN0UmF0aW8pfS50b3AtdDFlZ3FvYml7dG9wOnZhcigtLXRhYmxldC10b3ApfS5ib3R0b20tYnRiMmxudntib3R0b206dmFyKC0tdGFibGV0LWJvdHRvbSl9LmxlZnQtbDEzeGlnMzF7bGVmdDp2YXIoLS10YWJsZXQtbGVmdCl9LnJpZ2h0LXJ6ajVlamp7cmlnaHQ6dmFyKC0tdGFibGV0LXJpZ2h0KX0udHJhbnNmb3JtLXQzZWRpZzh7LXdlYmtpdC10cmFuc2Zvcm06dmFyKC0tdGFibGV0LXRyYW5zZm9ybSk7LW1zLXRyYW5zZm9ybTp2YXIoLS10YWJsZXQtdHJhbnNmb3JtKTt0cmFuc2Zvcm06dmFyKC0tdGFibGV0LXRyYW5zZm9ybSl9LmZsZXhCYXNpcy1mMmJzaXB0ey13ZWJraXQtZmxleC1iYXNpczp2YXIoLS10YWJsZXQtZmxleEJhc2lzKTstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTp2YXIoLS10YWJsZXQtZmxleEJhc2lzKTtmbGV4LWJhc2lzOnZhcigtLXRhYmxldC1mbGV4QmFzaXMpfS5mbGV4U2hyaW5rLWZhMWttZDZ7LXdlYmtpdC1mbGV4LXNocmluazp2YXIoLS10YWJsZXQtZmxleFNocmluayk7LW1zLWZsZXgtbmVnYXRpdmU6dmFyKC0tdGFibGV0LWZsZXhTaHJpbmspO2ZsZXgtc2hyaW5rOnZhcigtLXRhYmxldC1mbGV4U2hyaW5rKX0uZmxleEdyb3ctZjFpYXNjd297LXdlYmtpdC1ib3gtZmxleDp2YXIoLS10YWJsZXQtZmxleEdyb3cpOy13ZWJraXQtZmxleC1ncm93OnZhcigtLXRhYmxldC1mbGV4R3Jvdyk7LW1zLWZsZXgtcG9zaXRpdmU6dmFyKC0tdGFibGV0LWZsZXhHcm93KTtmbGV4LWdyb3c6dmFyKC0tdGFibGV0LWZsZXhHcm93KX0uZ3JpZFRlbXBsYXRlQ29sdW1ucy1nMXBjM2o1b3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6dmFyKC0tdGFibGV0LWdyaWRUZW1wbGF0ZUNvbHVtbnMpfS5ncmlkVGVtcGxhdGVSb3dzLWdzY2FreWN7Z3JpZC10ZW1wbGF0ZS1yb3dzOnZhcigtLXRhYmxldC1ncmlkVGVtcGxhdGVSb3dzKX0uZ3JpZFRlbXBsYXRlQXJlYXMtZ2JtdDF6entncmlkLXRlbXBsYXRlLWFyZWFzOnZhcigtLXRhYmxldC1ncmlkVGVtcGxhdGVBcmVhcyl9LmdyaWRUZW1wbGF0ZS1nNG1zc3Vme2dyaWQtdGVtcGxhdGU6dmFyKC0tdGFibGV0LWdyaWRUZW1wbGF0ZSl9LmdyaWRBdXRvQ29sdW1ucy1nMTVtanUzOXtncmlkLWF1dG8tY29sdW1uczp2YXIoLS10YWJsZXQtZ3JpZEF1dG9Db2x1bW5zKX0uZ3JpZEF1dG9Sb3dzLWdtbHV4eDZ7Z3JpZC1hdXRvLXJvd3M6dmFyKC0tdGFibGV0LWdyaWRBdXRvUm93cyl9LmdyaWRBdXRvRmxvdy1nMXZ5ajN4e2dyaWQtYXV0by1mbG93OnZhcigtLXRhYmxldC1ncmlkQXV0b0Zsb3cpfS5ncmlkLWcxa3k1dzM5e2dyaWQ6dmFyKC0tdGFibGV0LWdyaWQpfS5ncmlkUm93U3RhcnQtZ3c2cWthZntncmlkLXJvdy1zdGFydDp2YXIoLS10YWJsZXQtZ3JpZFJvd1N0YXJ0KX0uZ3JpZENvbHVtblN0YXJ0LWdiMTd6cW17Z3JpZC1jb2x1bW4tc3RhcnQ6dmFyKC0tdGFibGV0LWdyaWRDb2x1bW5TdGFydCl9LmdyaWRSb3dFbmQtZzVzbmhjNntncmlkLXJvdy1lbmQ6dmFyKC0tdGFibGV0LWdyaWRSb3dFbmQpfS5ncmlkQ29sdW1uRW5kLWc2aWY4ZzN7Z3JpZC1jb2x1bW4tZW5kOnZhcigtLXRhYmxldC1ncmlkQ29sdW1uRW5kKX0uZ3JpZFJvdy1namV1aXFle2dyaWQtcm93OnZhcigtLXRhYmxldC1ncmlkUm93KX0uZ3JpZENvbHVtbi1nYWdqeGhse2dyaWQtY29sdW1uOnZhcigtLXRhYmxldC1ncmlkQ29sdW1uKX0uZ3JpZEFyZWEtZzcxamp3c3tncmlkLWFyZWE6dmFyKC0tdGFibGV0LWdyaWRBcmVhKX0ub3BhY2l0eS1vbTE1YzJ0e29wYWNpdHk6dmFyKC0tdGFibGV0LW9wYWNpdHkpfS56SW5kZXgtejFkMHBjdmZ7ei1pbmRleDp2YXIoLS10YWJsZXQtekluZGV4KX0uXzEtXzFnd2NuYjB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjEpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWVsZXZhdGlvbjEpfS5fMi1fMW5kY2xxa3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnRWxldmF0aW9uMik7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctZWxldmF0aW9uMil9LmZnLWYxOW96dDJ4e2NvbG9yOnZhcigtLWNvbG9yLWZnKX0uZmdJbnZlcnNlLWYxamFzOWN2e2NvbG9yOnZhcigtLWNvbG9yLWZnSW52ZXJzZSl9LmZnTXV0ZWQtZmh4Z25pdntjb2xvcjp2YXIoLS1jb2xvci1mZ011dGVkKX0uZmdQcmltYXJ5LWY1a2o1ZHZ7Y29sb3I6dmFyKC0tY29sb3ItZmdQcmltYXJ5KX0uZmdQb3NpdGl2ZS1mdndpbjZ4e2NvbG9yOnZhcigtLWNvbG9yLWZnUG9zaXRpdmUpfS5mZ05lZ2F0aXZlLWYxbDhqaWY5e2NvbG9yOnZhcigtLWNvbG9yLWZnTmVnYXRpdmUpfS5mZ1dhcm5pbmctZjF0dm93Znp7Y29sb3I6dmFyKC0tY29sb3ItZmdXYXJuaW5nKX0uYmctYmpocG9zZ3tjb2xvcjp2YXIoLS1jb2xvci1iZyl9LmJnQWx0ZXJuYXRlLWIxd21yNjg2e2NvbG9yOnZhcigtLWNvbG9yLWJnQWx0ZXJuYXRlKX0uYmdJbnZlcnNlLWIxc2JueGJle2NvbG9yOnZhcigtLWNvbG9yLWJnSW52ZXJzZSl9LmJnT3ZlcmxheS1iMTNiczh6dXtjb2xvcjp2YXIoLS1jb2xvci1iZ092ZXJsYXkpfS5iZ1ByaW1hcnktYnAzNzkye2NvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeSl9LmJnUHJpbWFyeVdhc2gtYjE5ZnpyaG97Y29sb3I6dmFyKC0tY29sb3ItYmdQcmltYXJ5V2FzaCl9LmJnU2Vjb25kYXJ5LWIxd3hwOXZje2NvbG9yOnZhcigtLWNvbG9yLWJnU2Vjb25kYXJ5KX0uYmdUZXJ0aWFyeS1icWZkYjlze2NvbG9yOnZhcigtLWNvbG9yLWJnVGVydGlhcnkpfS5iZ1NlY29uZGFyeVdhc2gtYjdpcnA4cHtjb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeVdhc2gpfS5iZ05lZ2F0aXZlLWIxdjc2d2N1e2NvbG9yOnZhcigtLWNvbG9yLWJnTmVnYXRpdmUpfS5iZ05lZ2F0aXZlV2FzaC1iOXhpNTA5e2NvbG9yOnZhcigtLWNvbG9yLWJnTmVnYXRpdmVXYXNoKX0uYmdQb3NpdGl2ZS1iMWhteGl1ZHtjb2xvcjp2YXIoLS1jb2xvci1iZ1Bvc2l0aXZlKX0uYmdQb3NpdGl2ZVdhc2gtYjFqMzltdDF7Y29sb3I6dmFyKC0tY29sb3ItYmdQb3NpdGl2ZVdhc2gpfS5iZ1dhcm5pbmctYjFzNzFhcDF7Y29sb3I6dmFyKC0tY29sb3ItYmdXYXJuaW5nKX0uYmdXYXJuaW5nV2FzaC1iMTU3eXIxc3tjb2xvcjp2YXIoLS1jb2xvci1iZ1dhcm5pbmdXYXNoKX0uY3VycmVudENvbG9yLWMxNDZrNTB5e2NvbG9yOnZhcigtLWNvbG9yLWN1cnJlbnRDb2xvcil9LmJnTGluZS1iY3Bjb3F7Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lKX0uYmdMaW5lSW52ZXJzZS1iMThwZzBwYntjb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVJbnZlcnNlKX0uYmdMaW5lSGVhdnktYjF2d2trOW97Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lSGVhdnkpfS5iZ0xpbmVQcmltYXJ5LWJvNTEydmh7Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeSl9LmJnTGluZVByaW1hcnlTdWJ0bGUtYjFlNzczMXd7Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeVN1YnRsZSl9LmJnRWxldmF0aW9uMS1iNHc3ZGYye2NvbG9yOnZhcigtLWNvbG9yLWJnRWxldmF0aW9uMSl9LmJnRWxldmF0aW9uMi1iMWdiMGlkcXtjb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjIpfS5hY2NlbnRTdWJ0bGVHcmVlbi1hMXBkOXo2Yntjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVHcmVlbil9LmFjY2VudEJvbGRHcmVlbi1hMTQzZXptY3tjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkR3JlZW4pfS5hY2NlbnRTdWJ0bGVCbHVlLWExbWxpdXEye2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUJsdWUpfS5hY2NlbnRCb2xkQmx1ZS1hdWVjNzEye2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRCbHVlKX0uYWNjZW50U3VidGxlUHVycGxlLWExN3JqNXlwe2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVB1cnBsZSl9LmFjY2VudEJvbGRQdXJwbGUtYWMwMDRkcXtjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkUHVycGxlKX0uYWNjZW50U3VidGxlWWVsbG93LWExYzNiaWNue2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVllbGxvdyl9LmFjY2VudEJvbGRZZWxsb3ctYXJvMjhpMntjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkWWVsbG93KX0uYWNjZW50U3VidGxlUmVkLWExMmZ5Zm01e2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVJlZCl9LmFjY2VudEJvbGRSZWQtYTFpZnJodHtjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkUmVkKX0uYWNjZW50U3VidGxlR3JheS1hbjU3dTkye2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUdyYXkpfS5hY2NlbnRCb2xkR3JheS1hZ3N2ODVse2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRHcmF5KX0udHJhbnNwYXJlbnQtdHQ3ZXRie2NvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KX0uZmctZjFndDRiMXB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1mZyl9LmZnSW52ZXJzZS1mOGY3dGl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1mZ0ludmVyc2UpfS5mZ011dGVkLWYxdWRhNGVte2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdNdXRlZCl9LmZnUHJpbWFyeS1mMTAxczEwc3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWZnUHJpbWFyeSl9LmZnUG9zaXRpdmUtZnVleGV2antiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWZnUG9zaXRpdmUpfS5mZ05lZ2F0aXZlLWZmcm1mYWV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1mZ05lZ2F0aXZlKX0uZmdXYXJuaW5nLWY4NDBka3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWZnV2FybmluZyl9LmJnLWI3MDk3NGN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZyl9LmJnQWx0ZXJuYXRlLWIxMzNkMXBne2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdBbHRlcm5hdGUpfS5iZ0ludmVyc2UtYjFvdDNxZWd7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0ludmVyc2UpfS5iZ092ZXJsYXktYjFpMTF0NHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnT3ZlcmxheSl9LmJnUHJpbWFyeS1iMXNzNHAxaHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeSl9LmJnUHJpbWFyeVdhc2gtYmlsaW8xMXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeVdhc2gpfS5iZ1NlY29uZGFyeS1iNDN2Zmh4e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnkpfS5iZ1RlcnRpYXJ5LWJkM2x1cGR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1RlcnRpYXJ5KX0uYmdTZWNvbmRhcnlXYXNoLWJraGY1NnF7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeVdhc2gpfS5iZ05lZ2F0aXZlLWIxNHBzMWJ4e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZSl9LmJnTmVnYXRpdmVXYXNoLWIxeXFibjd4e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZVdhc2gpfS5iZ1Bvc2l0aXZlLWJ6aTd6dmR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1Bvc2l0aXZlKX0uYmdQb3NpdGl2ZVdhc2gtYjE3YTlpOTV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1Bvc2l0aXZlV2FzaCl9LmJnV2FybmluZy1iMWJjM3JqaXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnV2FybmluZyl9LmJnV2FybmluZ1dhc2gtYjExd2M5OWF7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1dhcm5pbmdXYXNoKX0uY3VycmVudENvbG9yLWNwcHQ2djl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1jdXJyZW50Q29sb3IpfS5iZ0xpbmUtYjdkcnNnbHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZSl9LmJnTGluZUludmVyc2UtYjEza3ZzODV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVJbnZlcnNlKX0uYmdMaW5lSGVhdnktYmc0djlqMXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZUhlYXZ5KX0uYmdMaW5lUHJpbWFyeS1iMmNhNHQ3e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeSl9LmJnTGluZVByaW1hcnlTdWJ0bGUtYm0zbHlientiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZVByaW1hcnlTdWJ0bGUpfS5iZ0VsZXZhdGlvbjEtYmc3ZjhkN3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnRWxldmF0aW9uMSl9LmJnRWxldmF0aW9uMi1iZWEzcTd3e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdFbGV2YXRpb24yKX0uYWNjZW50U3VidGxlR3JlZW4tYXhzZTN2YntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUdyZWVuKX0uYWNjZW50Qm9sZEdyZWVuLWExbGJjcG9pe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEdyZWVuKX0uYWNjZW50U3VidGxlQmx1ZS1heXZ2cWFle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlQmx1ZSl9LmFjY2VudEJvbGRCbHVlLWF3dzhweXV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkQmx1ZSl9LmFjY2VudFN1YnRsZVB1cnBsZS1hMTQ5eWE3NXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVB1cnBsZSl9LmFjY2VudEJvbGRQdXJwbGUtYTF5NnhmZDl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkUHVycGxlKX0uYWNjZW50U3VidGxlWWVsbG93LWFjN3M3Ymd7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVZZWxsb3cpfS5hY2NlbnRCb2xkWWVsbG93LWFkcHNmZjh7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkWWVsbG93KX0uYWNjZW50U3VidGxlUmVkLWF2Nnh4Zm97YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVSZWQpfS5hY2NlbnRCb2xkUmVkLWExd2doNndhe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZFJlZCl9LmFjY2VudFN1YnRsZUdyYXktYTEzczZmeGV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVHcmF5KX0uYWNjZW50Qm9sZEdyYXktYXN1OHhmdHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRHcmF5KX0udHJhbnNwYXJlbnQtdDE2cjNuNnV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci10cmFuc3BhcmVudCl9LmZnLWZzYXIwOGR7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mZyl9LmZnSW52ZXJzZS1mNHF5NTBre2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdJbnZlcnNlKX0uZmdNdXRlZC1mMWV5OG1xdntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWZnTXV0ZWQpfS5mZ1ByaW1hcnktZnhkeGwxantib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWZnUHJpbWFyeSl9LmZnUG9zaXRpdmUtZjFneXFxc3p7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mZ1Bvc2l0aXZlKX0uZmdOZWdhdGl2ZS1mMnp4ZDdte2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdOZWdhdGl2ZSl9LmZnV2FybmluZy1mcXBmam5ye2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdXYXJuaW5nKX0uYmctYmhnOThjbHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnKX0uYmdBbHRlcm5hdGUtYnRycWFpcHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnQWx0ZXJuYXRlKX0uYmdJbnZlcnNlLWIxN2c1amc4e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdJbnZlcnNlKX0uYmdPdmVybGF5LWIxMGRkb2R3e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdPdmVybGF5KX0uYmdQcmltYXJ5LWJrNHkxb2p7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1ByaW1hcnkpfS5iZ1ByaW1hcnlXYXNoLWIxdGZqMGp4e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdQcmltYXJ5V2FzaCl9LmJnU2Vjb25kYXJ5LWIyeWl4c3h7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeSl9LmJnVGVydGlhcnktYmxmbWx6e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdUZXJ0aWFyeSl9LmJnU2Vjb25kYXJ5V2FzaC1iMTNvMGxtMntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnU2Vjb25kYXJ5V2FzaCl9LmJnTmVnYXRpdmUtYmF6c25xcXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTmVnYXRpdmUpfS5iZ05lZ2F0aXZlV2FzaC1idzY2NWd7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ05lZ2F0aXZlV2FzaCl9LmJnUG9zaXRpdmUtYmlwMnY0b3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnUG9zaXRpdmUpfS5iZ1Bvc2l0aXZlV2FzaC1iMW8zanYycntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnUG9zaXRpdmVXYXNoKX0uYmdXYXJuaW5nLWJiaHczenB7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1dhcm5pbmcpfS5iZ1dhcm5pbmdXYXNoLWJ2ZmM0dHl7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1dhcm5pbmdXYXNoKX0uY3VycmVudENvbG9yLWNoNTlpd2R7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1jdXJyZW50Q29sb3IpfS5iZ0xpbmUtYjFjdGg5d2t7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmUpfS5iZ0xpbmVJbnZlcnNlLWJkY3E5ZTN7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVJbnZlcnNlKX0uYmdMaW5lSGVhdnktYjFjaTc3dWF7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVIZWF2eSl9LmJnTGluZVByaW1hcnktYmxsNTM1dHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZVByaW1hcnkpfS5iZ0xpbmVQcmltYXJ5U3VidGxlLWIxeDZmM2Qwe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeVN1YnRsZSl9LmJnRWxldmF0aW9uMS1idWZtZG1je2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdFbGV2YXRpb24xKX0uYmdFbGV2YXRpb24yLWIxZ3RyeG8ze2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdFbGV2YXRpb24yKX0uYWNjZW50U3VidGxlR3JlZW4tYXA4bWoxcXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUdyZWVuKX0uYWNjZW50Qm9sZEdyZWVuLWFpMWc5OGh7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkR3JlZW4pfS5hY2NlbnRTdWJ0bGVCbHVlLWExdnZuNmR4e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlQmx1ZSl9LmFjY2VudEJvbGRCbHVlLWExeGdnaHJte2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEJsdWUpfS5hY2NlbnRTdWJ0bGVQdXJwbGUtYTFkd212cnN7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVQdXJwbGUpfS5hY2NlbnRCb2xkUHVycGxlLWFkMm50Nzh7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkUHVycGxlKX0uYWNjZW50U3VidGxlWWVsbG93LWExbnZvNzU5e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlWWVsbG93KX0uYWNjZW50Qm9sZFllbGxvdy1hMWdpaDg3Mntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRZZWxsb3cpfS5hY2NlbnRTdWJ0bGVSZWQtYXd0cnIzMntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVJlZCl9LmFjY2VudEJvbGRSZWQtYThhMTJ5NHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRSZWQpfS5hY2NlbnRTdWJ0bGVHcmF5LWExYXdwYXhoe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlR3JheSl9LmFjY2VudEJvbGRHcmF5LWFiNjhkeTF7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkR3JheSl9LnRyYW5zcGFyZW50LXQxZjZ3ZzZke2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpfS5fMC1fbzA3dXVne2JvcmRlci13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0wKX0uXzEwMC1fbmJrc2Mze2JvcmRlci13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0xMDApfS5fMjAwLV8xYXk1bjJ6e2JvcmRlci13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0yMDApfS5fMzAwLV8yMTM4dDZ7Ym9yZGVyLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTMwMCl9Ll80MDAtX2pvNHprOHtib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNDAwKX0uXzUwMC1fNnE4NTJ2e2JvcmRlci13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC01MDApfS5fMC1fandpZHp2e2JvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMCl9Ll8xMDAtXzd5YmxwY3tib3JkZXItdG9wLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTEwMCl9Ll8yMDAtXzF5a2pvaTl7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0yMDApfS5fMzAwLV8xdnYxeHYye2JvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMzAwKX0uXzQwMC1fZGFxdnZie2JvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNDAwKX0uXzUwMC1fMW54cWxlbntib3JkZXItdG9wLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTUwMCl9Ll8wLV8xZjZoYmc3e2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTApfS5fMTAwLV85MjF6NTh7Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKX0uXzIwMC1fMWdpMWl3eHtib3JkZXItaW5saW5lLWVuZC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0yMDApfS5fMzAwLV8xOGh6NDZ2e2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTMwMCl9Ll80MDAtXzFweTh5c2t7Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNDAwKX0uXzUwMC1fMTY0YnNidntib3JkZXItaW5saW5lLWVuZC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC01MDApfS5fMC1fbzFiMzN1e2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMCl9Ll8xMDAtXzNkMjczentib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTEwMCl9Ll8yMDAtX28xcG9iaHtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTIwMCl9Ll8zMDAtXzFnNDNqbjh7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0zMDApfS5fNDAwLV8xbDV2dmtqe2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNDAwKX0uXzUwMC1fMmdhb3dme2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNTAwKX0uXzAtXzFhdG5wMHJ7Ym9yZGVyLWlubGluZS1zdGFydC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0wKX0uXzEwMC1fcW5mdmZ0e2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKX0uXzIwMC1fMWdibnZ1M3tib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTIwMCl9Ll8zMDAtX2Z5Y3FrcHtib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTMwMCl9Ll80MDAtXzFiYXNuMzZ7Ym9yZGVyLWlubGluZS1zdGFydC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC00MDApfS5fNTAwLV95MDM5eGN7Ym9yZGVyLWlubGluZS1zdGFydC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC01MDApfS5fMC1fYmpycTFxe2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTApfS5fMTAwLV8xdDFoZnA1e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMCl9Ll8yMDAtXzFrYTg0M2x7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMjAwKX0uXzMwMC1fMTB4dG56c3tib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApfS5fNDAwLV8xd2VpYmQ4e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTQwMCl9Ll81MDAtXzFqNnUxd2F7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNTAwKX0uXzYwMC1fMWlrcW43cHtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy02MDApfS5fNzAwLV9pY2t0dDR7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNzAwKX0uXzgwMC1fMTU3cGZrentib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy04MDApfS5fOTAwLV81dHEzNDR7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtOTAwKX0uXzEwMDAtX2psenltd3tib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDAwKX0uXzAtXzEzYTRjcnd7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMCl9Ll8xMDAtXzE2ZTZnem97Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMTAwKX0uXzIwMC1fNm8ycDNme2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTIwMCl9Ll8zMDAtX2wxa2lvY3tib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApfS5fNDAwLV9kNTZ0aHd7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNDAwKX0uXzUwMC1fZDR2M2l1e2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTUwMCl9Ll82MDAtXzFyZjd5enN7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNjAwKX0uXzcwMC1fMXRyeW4zY3tib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy03MDApfS5fODAwLV8xbGx0ZTN2e2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTgwMCl9Ll85MDAtXzFsc2t4M2l7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtOTAwKX0uXzEwMDAtX210cmRwbntib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDAwKX0uXzAtXzFuYThxa2N7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTApfS5fMTAwLV8xODloNnlue2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDApfS5fMjAwLV8xNmV6dXgze2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0yMDApfS5fMzAwLV8zdzZxYWF7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTMwMCl9Ll80MDAtXzE5dHBybjF7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTQwMCl9Ll81MDAtXzFrOTB6MXV7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTUwMCl9Ll82MDAtX2tpdm45Yntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNjAwKX0uXzcwMC1fMTJkenZkdntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNzAwKX0uXzgwMC1faWFzMGpke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy04MDApfS5fOTAwLV9zcHptY3V7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTkwMCl9Ll8xMDAwLV9jdmtybHF7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMDApfS5fMC1fMThra25nM3tib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0wKX0uXzEwMC1fYzFnaDZke2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMCl9Ll8yMDAtX3hpbGpybHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0yMDApfS5fMzAwLV8xazRyNmc4e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTMwMCl9Ll80MDAtX3kzN2YwdXtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy00MDApfS5fNTAwLV95dG9nNWh7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNTAwKX0uXzYwMC1faDM2NzM4e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTYwMCl9Ll83MDAtXzFhaGo0cXZ7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNzAwKX0uXzgwMC1fbGw0YnN3e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTgwMCl9Ll85MDAtXzE4ZDZ4ZGF7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtOTAwKX0uXzEwMDAtX3Z3bnV0d3tib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDAwKX0uXzAtXzE4cXZrdTB7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTApfS5fMTAwLV9wMnVmaTR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMCl9Ll8yMDAtX3B4bXp4NXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMjAwKX0uXzMwMC1fOXZuZzkxe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApfS5fNDAwLV9yajVha3R7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTQwMCl9Ll81MDAtX3hjMTV4aXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNTAwKX0uXzYwMC1fMXJmZGQ0cntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNjAwKX0uXzcwMC1fM3R3c2N0e2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy03MDApfS5fODAwLV9jbm03YzF7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTgwMCl9Ll85MDAtXzF5dHU5dXd7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTkwMCl9Ll8xMDAwLV8xeHRpZHJpe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDAwKX0uaW5oZXJpdC1pMXU3Yzc5antmb250LWZhbWlseTppbmhlcml0fS5kaXNwbGF5MS1kMXVwbzg5Yntmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5LWRpc3BsYXkxKX0uZGlzcGxheTItZDFsdmF5cWV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS1kaXNwbGF5Mil9LmRpc3BsYXkzLWQxcXd3Zmlhe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktZGlzcGxheTMpfS50aXRsZTEtdDFkOGV6ajh7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS10aXRsZTEpfS50aXRsZTItdG9yMTFseHtmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5LXRpdGxlMil9LnRpdGxlMy10MWhiejRteXtmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5LXRpdGxlMyl9LnRpdGxlNC10OHl5ZjA2e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktdGl0bGU0KX0uaGVhZGxpbmUtaHlsOWxia3tmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5LWhlYWRsaW5lKX0uYm9keS1iMXJ4OG01bntmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5LWJvZHkpfS5sYWJlbDEtbGdkY25ja3tmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5LWxhYmVsMSl9LmxhYmVsMi1sNWh2NGlqe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktbGFiZWwyKX0uY2FwdGlvbi1jdzg5d3Bwe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktY2FwdGlvbil9LmxlZ2FsLWxpNWV5djR7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS1sZWdhbCl9LmluaGVyaXQtaTF4NmRzNzF7Zm9udC1zaXplOmluaGVyaXR9LmRpc3BsYXkxLWQ2cHZ1cnZ7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWRpc3BsYXkxKX0uZGlzcGxheTItZDFpZjd4dXZ7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWRpc3BsYXkyKX0uZGlzcGxheTMtZDRoczB5OXtmb250LXNpemU6dmFyKC0tZm9udFNpemUtZGlzcGxheTMpfS50aXRsZTEtdDFkYXJhZWR7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLXRpdGxlMSl9LnRpdGxlMi10MW5paGpqeHtmb250LXNpemU6dmFyKC0tZm9udFNpemUtdGl0bGUyKX0udGl0bGUzLXQxNzdkMWsze2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS10aXRsZTMpfS50aXRsZTQtdDF4Y3Nia3h7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLXRpdGxlNCl9LmhlYWRsaW5lLWh4NGp1dnJ7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWhlYWRsaW5lKX0uYm9keS1iMXl1ZmQycntmb250LXNpemU6dmFyKC0tZm9udFNpemUtYm9keSl9LmxhYmVsMS1seW05dTk1e2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1sYWJlbDEpfS5sYWJlbDItbDFyM2h1NWh7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWxhYmVsMil9LmNhcHRpb24tYzF1bG9vMTJ7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWNhcHRpb24pfS5sZWdhbC1sOTN2MDY0e2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1sZWdhbCl9LmluaGVyaXQtaTF3M2hiZmZ7Zm9udC13ZWlnaHQ6aW5oZXJpdH0uZGlzcGxheTEtZGQzb2doa3tmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWRpc3BsYXkxKX0uZGlzcGxheTItZHFteTRrMXtmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWRpc3BsYXkyKX0uZGlzcGxheTMtZDE0eWY5MnV7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1kaXNwbGF5Myl9LnRpdGxlMS10MTk1b3puc3tmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LXRpdGxlMSl9LnRpdGxlMi10NnRjenl7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC10aXRsZTIpfS50aXRsZTMtdDE4NWhtbDR7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC10aXRsZTMpfS50aXRsZTQtdDFpa3JvcXR7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC10aXRsZTQpfS5oZWFkbGluZS1oNnY2Yjh7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1oZWFkbGluZSl9LmJvZHktYjFsY3JhemZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1ib2R5KX0ubGFiZWwxLWx1Z2VhN3d7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1sYWJlbDEpfS5sYWJlbDItbDEyOXNhemp7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1sYWJlbDIpfS5jYXB0aW9uLWNxOTR5eWZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1jYXB0aW9uKX0ubGVnYWwtbHdlcnk5N3tmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWxlZ2FsKX0uaW5oZXJpdC1penh5OW0ze2xpbmUtaGVpZ2h0OmluaGVyaXR9LmRpc3BsYXkxLWQxYjU3ZjJ0e2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtZGlzcGxheTEpfS5kaXNwbGF5Mi1kZ3l0eTRoe2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtZGlzcGxheTIpfS5kaXNwbGF5My1kcWQyYXZue2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtZGlzcGxheTMpfS50aXRsZTEtdDRzNHJ4bntsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LXRpdGxlMSl9LnRpdGxlMi10MW0ycHJnYXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LXRpdGxlMil9LnRpdGxlMy10MWZ1MWFieXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LXRpdGxlMyl9LnRpdGxlNC10dDV0dTg2e2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtdGl0bGU0KX0uaGVhZGxpbmUtaGI2OXMzYntsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWhlYWRsaW5lKX0uYm9keS1iOGNxaTJye2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtYm9keSl9LmxhYmVsMS1sb3U5dDR6e2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtbGFiZWwxKX0ubGFiZWwyLWwxcTdxdGtqe2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtbGFiZWwyKX0uY2FwdGlvbi1jdWJmNXVpe2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtY2FwdGlvbil9LmxlZ2FsLWwxbjE5eGxye2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtbGVnYWwpfS5ub25lLW4xZWd1eHBpey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVuZGVybGluZS11bG4zenRtey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5vdmVybGluZS1vMThjbGpvMHstd2Via2l0LXRleHQtZGVjb3JhdGlvbjpvdmVybGluZTt0ZXh0LWRlY29yYXRpb246b3ZlcmxpbmV9LmxpbmUtdGhyb3VnaC1sMWk4ZXFzYnstd2Via2l0LXRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0udW5kZXJsaW5lX292ZXJsaW5lLXUxd2hndGdwey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBvdmVybGluZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIG92ZXJsaW5lfS51bmRlcmxpbmVfZG91YmxlLXV1bjJhOGl7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdWJsZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdWJsZX0ubm9uZS1uZDNlbmdre3RleHQtdHJhbnNmb3JtOm5vbmV9LnVwcGVyY2FzZS11OWp2cXV7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5sb3dlcmNhc2UtbDFoZWc4Mmd7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlfS5jYXBpdGFsaXplLWMxc3pwb3Qwe3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemV9Lm5vbmUtbjF2a3V0enV7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnRleHQtdDFweDQ5eW57LXdlYmtpdC11c2VyLXNlbGVjdDp0ZXh0O3VzZXItc2VsZWN0OnRleHR9LmFsbC1hYWwzYXhtey13ZWJraXQtdXNlci1zZWxlY3Q6YWxsO3VzZXItc2VsZWN0OmFsbH0uYXV0by1hMWtmOWdqZXstd2Via2l0LXVzZXItc2VsZWN0OmF1dG87dXNlci1zZWxlY3Q6YXV0b30ubm9uZS1ucnJwNXU0e2Rpc3BsYXk6bm9uZX0uYmxvY2stYnFyMDJjbXtkaXNwbGF5OmJsb2NrfS5pbmxpbmUtaTFrcTMxM2h7ZGlzcGxheTppbmxpbmV9LmlubGluZS1ibG9jay1pdWlldzg5e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mbGV4LWZ3dHFvYm17ZGlzcGxheTpmbGV4fS5pbmxpbmUtZmxleC1pbGhraWlje2Rpc3BsYXk6aW5saW5lLWZsZXh9LmdyaWQtZ2YyZ3I4M3tkaXNwbGF5OmdyaWR9LmlubGluZS1ncmlkLWkxYmNpaWVse2Rpc3BsYXk6aW5saW5lLWdyaWR9LmNvbnRlbnRzLWM2MWs5bjV7ZGlzcGxheTpjb250ZW50c30uZmxvdy1yb290LWZocW42ZWh7ZGlzcGxheTpmbG93LXJvb3R9LnJldmVydC1ybTh3NGR3e2Rpc3BsYXk6cmV2ZXJ0fS5saXN0LWl0ZW0tbHp5MW43dHtkaXNwbGF5Omxpc3QtaXRlbX0uYXV0by1hMXBkdG5pN3tvdmVyZmxvdzphdXRvfS52aXNpYmxlLXYxZTg1OTBwe292ZXJmbG93OnZpc2libGV9LmhpZGRlbi1oYmpwbHlle292ZXJmbG93OmhpZGRlbn0uY2xpcC1jMXN1cTJydHtvdmVyZmxvdzpjbGlwfS5zY3JvbGwtc2F5YTVnOHtvdmVyZmxvdzpzY3JvbGx9Ll8wLV8yZXFqNHZ7Z2FwOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fNnIwazdte2dhcDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMTljdHJiM3tnYXA6dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtXzFhbHYxMTd7Z2FwOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fMXgxbmJ1eHtnYXA6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzFpNGphcjh7Z2FwOnZhcigtLXNwYWNlLTFfNSl9Ll8yLV8xYWN6OTlne2dhcDp2YXIoLS1zcGFjZS0yKX0uXzMtXzEybjFzcHl7Z2FwOnZhcigtLXNwYWNlLTMpfS5fNC1fMXN1MWdpNHtnYXA6dmFyKC0tc3BhY2UtNCl9Ll81LV8xOHJ3c2x7Z2FwOnZhcigtLXNwYWNlLTUpfS5fNi1faXM3ZXhie2dhcDp2YXIoLS1zcGFjZS02KX0uXzctX3c1bnA4b3tnYXA6dmFyKC0tc3BhY2UtNyl9Ll84LV8xNW5zYjVme2dhcDp2YXIoLS1zcGFjZS04KX0uXzktXzE0cXdyeGl7Z2FwOnZhcigtLXNwYWNlLTkpfS5fMTAtXzhnbjh6dHtnYXA6dmFyKC0tc3BhY2UtMTApfS5fMC1fbGdpdmx1ey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wKTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fODFnb2o3ey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wXzI1KTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV8xaWFpcW97LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTBfNSk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fYjNtOWpwey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wXzc1KTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1feXNud3Yzey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0xKTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTEpfS5fMV81LV8zbDlhYnJ7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTFfNSk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fMTF1cnpzeHstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMik7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0yKX0uXzMtXzF5bDRqYXh7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTMpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMyl9Ll80LV9venJucGp7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTQpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNCl9Ll81LV90YTBiaDZ7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTUpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNSl9Ll82LV8xOHlzaHc0ey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS02KTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTYpfS5fNy1fMWYzc2Rid3std2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNyk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS03KX0uXzgtX2l5a3FpYnstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtOCk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS04KX0uXzktXzFob3Q5ZTV7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTkpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fNHQ1aXRley13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0xMCk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0xMCl9Ll8wLV9oM2Jja3l7cm93LWdhcDp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtXzFmdjNnOGN7cm93LWdhcDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMTNiMDI3e3Jvdy1nYXA6dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtXzEyMXF3dzl7cm93LWdhcDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtXzF5ZmZqMXZ7cm93LWdhcDp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fZjltOWIwe3Jvdy1nYXA6dmFyKC0tc3BhY2UtMV81KX0uXzItXzFvaTg5aGt7cm93LWdhcDp2YXIoLS1zcGFjZS0yKX0uXzMtXzFxZmQwbTF7cm93LWdhcDp2YXIoLS1zcGFjZS0zKX0uXzQtX2Njazl4N3tyb3ctZ2FwOnZhcigtLXNwYWNlLTQpfS5fNS1fZTV5bHlqe3Jvdy1nYXA6dmFyKC0tc3BhY2UtNSl9Ll82LV81cGg0ejB7cm93LWdhcDp2YXIoLS1zcGFjZS02KX0uXzctXzE2OTh4eHh7cm93LWdhcDp2YXIoLS1zcGFjZS03KX0uXzgtX2Y3M3Qxdntyb3ctZ2FwOnZhcigtLXNwYWNlLTgpfS5fOS1fMWdjZWhpNHtyb3ctZ2FwOnZhcigtLXNwYWNlLTkpfS5fMTAtX3ljcXM0entyb3ctZ2FwOnZhcigtLXNwYWNlLTEwKX0ubm9ybWFsLW5qZWZmdmd7LXdlYmtpdC1ib3gtcGFjazpub3JtYWw7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6bm9ybWFsOy1tcy1mbGV4LXBhY2s6bm9ybWFsO2p1c3RpZnktY29udGVudDpub3JtYWx9LmNlbnRlci1jMXZ0aDNuZHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5zdGFydC1zMXFxc2lhbHtqdXN0aWZ5LWNvbnRlbnQ6c3RhcnR9LmVuZC1lcXRrNHl2e2p1c3RpZnktY29udGVudDplbmR9LmZsZXgtc3RhcnQtZmczczBvc3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uZmxleC1lbmQtZmJrcnVua3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmxlZnQtbGNsaHk5anstd2Via2l0LWJveC1wYWNrOmxlZnQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6bGVmdDstbXMtZmxleC1wYWNrOmxlZnQ7anVzdGlmeS1jb250ZW50OmxlZnR9LnJpZ2h0LXJkcnk5Z2Z7LXdlYmtpdC1ib3gtcGFjazpyaWdodDstd2Via2l0LWp1c3RpZnktY29udGVudDpyaWdodDstbXMtZmxleC1wYWNrOnJpZ2h0O2p1c3RpZnktY29udGVudDpyaWdodH0uc3BhY2UtYmV0d2Vlbi1zZzBoNDl5e2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5zcGFjZS1hcm91bmQtc3c1bzYxd3std2Via2l0LWJveC1wYWNrOnNwYWNlLWFyb3VuZDstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7LW1zLWZsZXgtcGFjazpzcGFjZS1hcm91bmQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uc3BhY2UtZXZlbmx5LXNjYzlsMnF7LXdlYmtpdC1ib3gtcGFjazpzcGFjZS1ldmVubHk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtZXZlbmx5Oy1tcy1mbGV4LXBhY2s6c3BhY2UtZXZlbmx5O2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHl9LnN0cmV0Y2gtc2N3ZzJ5b3std2Via2l0LWJveC1wYWNrOnN0cmV0Y2g7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDstbXMtZmxleC1wYWNrOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9Lm5vcm1hbC1uMWgyZzdmNXstd2Via2l0LWFsaWduLWNvbnRlbnQ6bm9ybWFsOy1tcy1mbGV4LWxpbmUtcGFjazpub3JtYWw7YWxpZ24tY29udGVudDpub3JtYWx9LmNlbnRlci1jMWh6NmFzZnthbGlnbi1jb250ZW50OmNlbnRlcn0uc3RhcnQtczFhOTN4ejV7YWxpZ24tY29udGVudDpzdGFydH0uZW5kLWUxaXh4aWo5e2FsaWduLWNvbnRlbnQ6ZW5kfS5mbGV4LXN0YXJ0LWYxd2kxYWlle2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydH0uZmxleC1lbmQtZjRld2dzZXthbGlnbi1jb250ZW50OmZsZXgtZW5kfS5zcGFjZS1iZXR3ZWVuLXMxMjcxNno5ey13ZWJraXQtYWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LWxpbmUtcGFjazpzcGFjZS1iZXR3ZWVuO2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uc3BhY2UtYXJvdW5kLXMxaTJ5eXdrey13ZWJraXQtYWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQ7LW1zLWZsZXgtbGluZS1wYWNrOnNwYWNlLWFyb3VuZDthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZH0uc3BhY2UtZXZlbmx5LXMxa2NkazZ6ey13ZWJraXQtYWxpZ24tY29udGVudDpzcGFjZS1ldmVubHk7LW1zLWZsZXgtbGluZS1wYWNrOnNwYWNlLWV2ZW5seTthbGlnbi1jb250ZW50OnNwYWNlLWV2ZW5seX0uc3RyZXRjaC1zMTFqZzBka3thbGlnbi1jb250ZW50OnN0cmV0Y2h9LmJhc2VsaW5lLWIxajVvcTY0ey13ZWJraXQtYWxpZ24tY29udGVudDpiYXNlbGluZTstbXMtZmxleC1saW5lLXBhY2s6YmFzZWxpbmU7YWxpZ24tY29udGVudDpiYXNlbGluZX0uZmlyc3RfYmFzZWxpbmUtZjFsbWd5OHR7LXdlYmtpdC1hbGlnbi1jb250ZW50OmJhc2VsaW5lOy1tcy1mbGV4LWxpbmUtcGFjazpmaXJzdCBiYXNlbGluZTthbGlnbi1jb250ZW50OmJhc2VsaW5lfS5sYXN0X2Jhc2VsaW5lLWwxZjIwajI0ey13ZWJraXQtYWxpZ24tY29udGVudDpsYXN0IGJhc2VsaW5lOy1tcy1mbGV4LWxpbmUtcGFjazpsYXN0IGJhc2VsaW5lO2FsaWduLWNvbnRlbnQ6bGFzdCBiYXNlbGluZX0ubm9ybWFsLW4xdDlxanUzey13ZWJraXQtYWxpZ24taXRlbXM6bm9ybWFsOy13ZWJraXQtYm94LWFsaWduOm5vcm1hbDstbXMtZmxleC1hbGlnbjpub3JtYWw7YWxpZ24taXRlbXM6bm9ybWFsfS5jZW50ZXItYzN6ams2e2FsaWduLWl0ZW1zOmNlbnRlcn0uc3RhcnQtc2YwbzMxZnthbGlnbi1pdGVtczpzdGFydH0uZW5kLWUxNWdvdnc4e2FsaWduLWl0ZW1zOmVuZH0uZmxleC1zdGFydC1mdTlkZGN4ey13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LWJveC1hbGlnbjpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uZmxleC1lbmQtZjEwcXJ6cml7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LWVuZDstd2Via2l0LWJveC1hbGlnbjpmbGV4LWVuZDstbXMtZmxleC1hbGlnbjpmbGV4LWVuZDthbGlnbi1pdGVtczpmbGV4LWVuZH0uc2VsZi1zdGFydC1zbjM4cnRzey13ZWJraXQtYWxpZ24taXRlbXM6c2VsZi1zdGFydDstd2Via2l0LWJveC1hbGlnbjpzZWxmLXN0YXJ0Oy1tcy1mbGV4LWFsaWduOnNlbGYtc3RhcnQ7YWxpZ24taXRlbXM6c2VsZi1zdGFydH0uc2VsZi1lbmQtczZudW14c3std2Via2l0LWFsaWduLWl0ZW1zOnNlbGYtZW5kOy13ZWJraXQtYm94LWFsaWduOnNlbGYtZW5kOy1tcy1mbGV4LWFsaWduOnNlbGYtZW5kO2FsaWduLWl0ZW1zOnNlbGYtZW5kfS5zdHJldGNoLXMxZTljenRue2FsaWduLWl0ZW1zOnN0cmV0Y2h9LmJhc2VsaW5lLWIxNTNwbHlxe2FsaWduLWl0ZW1zOmJhc2VsaW5lfS5maXJzdF9iYXNlbGluZS1maW8xczB3ey13ZWJraXQtYWxpZ24taXRlbXM6YmFzZWxpbmU7LXdlYmtpdC1ib3gtYWxpZ246Zmlyc3QgYmFzZWxpbmU7LW1zLWZsZXgtYWxpZ246Zmlyc3QgYmFzZWxpbmU7YWxpZ24taXRlbXM6YmFzZWxpbmV9Lmxhc3RfYmFzZWxpbmUtbDFseXk1OXstd2Via2l0LWFsaWduLWl0ZW1zOmxhc3QgYmFzZWxpbmU7LXdlYmtpdC1ib3gtYWxpZ246bGFzdCBiYXNlbGluZTstbXMtZmxleC1hbGlnbjpsYXN0IGJhc2VsaW5lO2FsaWduLWl0ZW1zOmxhc3QgYmFzZWxpbmV9LmF1dG8tYTFja2N2dTV7YWxpZ24tc2VsZjphdXRvfS5ub3JtYWwtbjE1N3k0d2J7LXdlYmtpdC1hbGlnbi1zZWxmOm5vcm1hbDstbXMtZmxleC1pdGVtLWFsaWduOm5vcm1hbDthbGlnbi1zZWxmOm5vcm1hbH0uY2VudGVyLWM1emZhZmh7YWxpZ24tc2VsZjpjZW50ZXJ9LnN0YXJ0LXM4MDl1Mm57YWxpZ24tc2VsZjpzdGFydH0uZW5kLWUxdDEyM3I1e2FsaWduLXNlbGY6ZW5kfS5mbGV4LXN0YXJ0LWYxZjN2Mmdte2FsaWduLXNlbGY6ZmxleC1zdGFydH0uZmxleC1lbmQtZnlyaWhjcnthbGlnbi1zZWxmOmZsZXgtZW5kfS5zZWxmLXN0YXJ0LXNyY242Ymt7LXdlYmtpdC1hbGlnbi1zZWxmOnNlbGYtc3RhcnQ7LW1zLWZsZXgtaXRlbS1hbGlnbjpzZWxmLXN0YXJ0O2FsaWduLXNlbGY6c2VsZi1zdGFydH0uc2VsZi1lbmQtczR6YzZnbnstd2Via2l0LWFsaWduLXNlbGY6c2VsZi1lbmQ7LW1zLWZsZXgtaXRlbS1hbGlnbjpzZWxmLWVuZDthbGlnbi1zZWxmOnNlbGYtZW5kfS5zdHJldGNoLXMxZ2tiend4e2FsaWduLXNlbGY6c3RyZXRjaH0uYmFzZWxpbmUtYmRvY21lenthbGlnbi1zZWxmOmJhc2VsaW5lfS5maXJzdF9iYXNlbGluZS1mNzJhdmFsey13ZWJraXQtYWxpZ24tc2VsZjpiYXNlbGluZTstbXMtZmxleC1pdGVtLWFsaWduOmZpcnN0IGJhc2VsaW5lO2FsaWduLXNlbGY6YmFzZWxpbmV9Lmxhc3RfYmFzZWxpbmUtbDFvdTdjZ3h7LXdlYmtpdC1hbGlnbi1zZWxmOmxhc3QgYmFzZWxpbmU7LW1zLWZsZXgtaXRlbS1hbGlnbjpsYXN0IGJhc2VsaW5lO2FsaWduLXNlbGY6bGFzdCBiYXNlbGluZX0ucm93LXIxeXE1dG02e2ZsZXgtZGlyZWN0aW9uOnJvd30ucm93LXJldmVyc2UtcjNrZ2xkdntmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0uY29sdW1uLWNkZ2Q5cWd7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jb2x1bW4tcmV2ZXJzZS1jaGJzbDd4e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5ub3dyYXAtbjFzMTlxajd7ZmxleC13cmFwOm5vd3JhcH0ud3JhcC13MWQ4d2ZzMntmbGV4LXdyYXA6d3JhcH0ud3JhcC1yZXZlcnNlLXcxa2l1ZmIxe2ZsZXgtd3JhcDp3cmFwLXJldmVyc2V9LnN0YXRpYy1zMTI0aDFsd3twb3NpdGlvbjpzdGF0aWN9LnJlbGF0aXZlLXJ3eW5tcG57cG9zaXRpb246cmVsYXRpdmV9LmFic29sdXRlLWExMnpoand5e3Bvc2l0aW9uOmFic29sdXRlfS5maXhlZC1mMXM0bXAwN3twb3NpdGlvbjpmaXhlZH0uc3RpY2t5LXM4anIxMzF7cG9zaXRpb246c3RpY2t5fS5fMC1fMmN1Nm83e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTApO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTApO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTApO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtXzF4NWhlZjl7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF8yNSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMF8yNSk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMF8yNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV9ndDZ1MDd7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF81KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0wXzUpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV8xaTZxODJle3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtXzFmY3RvMWp7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMSk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTEpfS5fMV81LV8xZjA4dzZ6e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTFfNSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMV81KTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xXzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fMW5mM3doMntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMil9Ll8zLV9laWZ4N3Z7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMyk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMyk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMyk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTMpfS5fNC1faTZiN252e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTQpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTQpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTQpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS00KX0uXzUtXzFvNjVlaWp7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTUpfS5fNi1fMWRpNG12aXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS02KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS02KTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS02KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNil9Ll83LV92b3htOHd7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNyk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNyk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNyk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTcpfS5fOC1fMWQwaTR0aXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtOCl9Ll85LV8xYmd6aWZne3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTkpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTkpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTkpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS05KX0uXzEwLV8xbGNyNjhoe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTEwKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xMCk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMTApO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xMCl9Ll8wLV8xYWg3MGR5e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTApO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtX252ZTIxbntwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzI1KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMF8yNSl9Ll8wXzUtXzhrbG1nNntwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fZDZtYWh2e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtXzVnZml6c3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzViZzd6NXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xXzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fMTBzYnVqb3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMil9Ll8zLV8xZHM2Z2I1e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTMpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0zKX0uXzQtXzExNXBrYXV7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNCk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTQpfS5fNS1fMTl5eG9uZXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS01KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNSl9Ll82LV8xNzRleDhie3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTYpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS02KX0uXzctXzFzNjFuNHd7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNyk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTcpfS5fOC1faHJyYW80e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTgpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS04KX0uXzktX3dhMGo1cXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS05KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fa3JyeGVke3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTEwKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMTApfS5fMC1famg3MXE5e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTApO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fc2I2a21se3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfMjUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV81eDAxY2d7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF81KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fMXI2NGRsa3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0wXzc1KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtX3U2cDU3NXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fMXF0MXp0eXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xXzUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTFfNSl9Ll8yLV80MGpjNmR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMik7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMil9Ll8zLV8xd2ZneWkwe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTMpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTMpfS5fNC1feTRnZDVoe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTQpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTQpfS5fNS1fMW1pYWpsdntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS01KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS01KX0uXzYtXzFja3NtdnF7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNik7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNil9Ll83LV8xeGQ0MmQwe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTcpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTcpfS5fOC1fMW1ocWE3M3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS04KX0uXzktXzFxMXI0azl7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtOSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtOSl9Ll8xMC1fMTRmaDRzZHtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xMCk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMTApfS5fMC1fZHluNHBie3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fMWF6ZWNjb3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMWwxdGZscXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fMjRpZGtle3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fMXZwOHQ0YntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fMWZoaTd0ZntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fMXZzb3NkMHtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0yKX0uXzMtXzFhbDJqeDN7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMyl9Ll80LV9vNnI4cTd7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNCl9Ll81LV8xc29hcnI3e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTUpfS5fNi1fMXdqbTl1OHtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS02KX0uXzctXzE3aTJ3eDh7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNyl9Ll84LV93NGhteW17cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtOCl9Ll85LV8xYWdzdGVpe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTkpfS5fMTAtXzdiZzQ0ZntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xMCl9Ll8wLV95N2ZueWh7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMCl9Ll8wXzI1LV8xMDN6czBve3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV9zOGFzOGt7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtXzE3OW1kdXF7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMF83NSl9Ll8xLV93NTIwdXR7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzFqNndldzd7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMV81KX0uXzItX2tneGZ0d3twYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0yKX0uXzMtX2x3NzJ0Z3twYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0zKX0uXzQtXzFxbWVpand7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNCl9Ll81LV9xZnhxNzN7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNSl9Ll82LV8xajJ0cGJ3e3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTYpfS5fNy1fMWc5ZWN4dXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS03KX0uXzgtX3NpdzNuNXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS04KX0uXzktXzE4cHRydzJ7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtOSl9Ll8xMC1fMTV3bDBzd3twYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xMCl9Ll8wLV8xOW5vZ3A5e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTApfS5fMF8yNS1fOWhhYWFoe3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV9iOHQ5bnl7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtXzlkdGd4a3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtXzFkeWUxejh7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzEzdWpscm17cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMV81KX0uXzItXzFyN2dwbG57cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMil9Ll8zLV93ZXA0ODB7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMyl9Ll80LV8xbHV2cnp3e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTQpfS5fNS1fMWtsODZ6M3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS01KX0uXzYtXzF2ZWZrdHh7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNil9Ll83LV8xaDNibHBue3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTcpfS5fOC1fMWo1MnVzN3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS04KX0uXzktXzE1MGtkOGR7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fNWxqeHpke3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTEwKX0uXzAtX21nb240d3twYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMCl9Ll8wXzI1LV8xcXo4Ymc0e3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1faThhcHVie3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fMXloaWE4eXtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMF83NSl9Ll8xLV9kc3BrZ3V7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTEpfS5fMV81LV8xODU3czJie3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fbGV6YzVoe3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0yKX0uXzMtX3Fzc2VqNntwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMyl9Ll80LV8xazE1bGF1e3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS00KX0uXzUtXzE5a29tZ2N7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTUpfS5fNi1fODdhYzhve3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS02KX0uXzctX2wxa29jMXtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNyl9Ll84LV8xZ3NhM3M5e3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS04KX0uXzktX2lyd3I0cntwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fdHhvYXlwe3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xMCl9Ll8wLV8xNzBveDlue21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSl9Ll8tMF8yNS0tNTIwNzJle21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF8yNSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSl9Ll8tMF81LS1zNjRxbzF7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpfS5fLTBfNzUtLTFwZjlsNnR7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF83NSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS0xZHNvNG5ne21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS0xdXdsbW5xe21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS04NzM4cWp7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS1tcGt4M297bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKX0uXy00LS0xZzA5NDAze21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSl9Ll8tNS0tMTd6bmFtYXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLTFwZndxcDh7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xeHQxNnc5e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSl9Ll8tOC0tMTJnb29jMHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpfS5fLTktLWcyeWlzcHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS0xanF5c2gye21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xMCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xMCkpfS5fMC1fMmY5OHN0e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpfS5fLTBfMjUtLTgxOWRkenttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKX0uXy0wXzUtLXo5ZnBqY3ttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSl9Ll8tMF83NS0tMTFleTJ1bXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS1paHNxMW57bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS1ibnhvZXh7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpfS5fLTItLTFlbjBnem97bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSl9Ll8tMy0ta2Z5enpne21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpfS5fLTQtLW83NGYyYnttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKX0uXy01LS00ZXM1Mmp7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSl9Ll8tNi0tMWpmczJkZHttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xYXIwbGs4e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpfS5fLTgtLW1mOHl3OXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKX0uXy05LS11dHZlNjF7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSl9Ll8tMTAtLTF1MHR5bjF7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uXzAtX2hubDcxdnttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpfS5fLTBfMjUtLTE1YWJpaWF7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF8yNSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKX0uXy0wXzUtLTF6ZXY3ZnttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKX0uXy0wXzc1LS1pbHQ3eHZ7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF83NSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS0xdjU1azY2e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS02NXpzbWx7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSl9Ll8tMi0tcmJydXVre21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSl9Ll8tMy0tMWNqb3RjenttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpfS5fLTQtLWYyMzBnZHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpfS5fLTUtLW1nMW5qb3ttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLXJ1amJkOXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpfS5fLTctLTF4eGkweHB7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS1pMmJxOWR7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKX0uXy05LS03eTRvYWN7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKX0uXy0xMC0tMWdwenNoZnttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xMCkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSl9Ll8wLV9remozaGx7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpfS5fLTBfMjUtLWFtYmllaXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSl9Ll8tMF81LS01dndrenttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKX0uXy0wXzc1LS1yMG96NmR7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF83NSkpfS5fLTEtLXlnem11dHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS0xZDhncXNne21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpfS5fLTItLTFibHZoaHh7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpfS5fLTMtLWticXlmcnttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSl9Ll8tNC0tMWcwMGQ1OHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSl9Ll8tNS0tMXN1ZWxyaXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSl9Ll8tNi0tMTA2NTltZXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSl9Ll8tNy0tZGw0d3Vke21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS0xY2k3Yzd4e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKX0uXy05LS04eHRxejl7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS0yNDJ2ODZ7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uXzAtXzVqdnVrd3ttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSl9Ll8tMF8yNS0tMWk3ZXI2dnttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSl9Ll8tMF81LS04ZHAyMXF7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSl9Ll8tMF83NS0tdmkzOWw4e21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS0yNW8waDd7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpfS5fLTFfNS0tMWlobnBmdnttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS0xNnhwNGJ0e21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS0xaWJkbTBwe21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKX0uXy00LS1hZnptejJ7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpfS5fLTUtLXhrZGd0OXttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSl9Ll8tNi0tMWV2ZGNhc3ttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSl9Ll8tNy0tYWVpeWNqe21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS0xZ3diNTZpe21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKX0uXy05LS0xbnFiYjExe21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKX0uXy0xMC0taHMwbGZxe21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSl9Ll8wLV9jZmFjZzR7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKX0uXy0wXzI1LS0xdmszc2twe21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSl9Ll8tMF81LS05dTRmdHB7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpfS5fLTBfNzUtLTEyNWYwOHV7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS1jMWVhenh7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKX0uXy0xXzUtLTFwdmNpa3B7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpfS5fLTItLXk1cXJ0dXttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpfS5fLTMtLXBlaGttZ3ttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpfS5fLTQtLTFzbmZzcWp7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKX0uXy01LS0xbnpscGUwe21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSl9Ll8tNi0tMWhsM2Jse21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSl9Ll8tNy0tMTRqMWJ4dXttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpfS5fLTgtLXk4NHplNnttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpfS5fLTktLTExZ3Q5MXN7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKX0uXy0xMC0tMXd0Yng1YXttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uXzAtX2EzcjhrbXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSl9Ll8tMF8yNS0tMXBzaDI1OXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSl9Ll8tMF81LS0xd280MGk2e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpfS5fLTBfNzUtLXp6dXpsNnttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSl9Ll8tMS0tMXkxMnU5OXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS01MWMxYTh7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSl9Ll8tMi0tZWlxOW9me21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS1seTY4YXh7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpfS5fLTQtLXgybjk5ZXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSl9Ll8tNS0taHl1dTk3e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKX0uXy02LS0xYXZoZzBre21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xcDVnNWh3e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS0xNHUzbmE3e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKX0uXy05LS10eWVvY2l7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS02YjBwbXJ7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uc3RhcnQtczEwbGVyNHF7dGV4dC1hbGlnbjpzdGFydH0uZW5kLWUxeWJiZXI1e3RleHQtYWxpZ246ZW5kfS5jZW50ZXItYzFrZDQ3cjh7dGV4dC1hbGlnbjpjZW50ZXJ9Lmp1c3RpZnktajF1OXB2YXl7dGV4dC1hbGlnbjpqdXN0aWZ5fS5oaWRkZW4taDFmMHdnOG17dmlzaWJpbGl0eTpoaWRkZW59LnZpc2libGUtdnJnOHJ0bHt2aXNpYmlsaXR5OnZpc2libGV9fUBtZWRpYSAobWluLXdpZHRoOjEyODBweCl7LndpZHRoLXc1N2VxNXh7d2lkdGg6dmFyKC0tZGVza3RvcC13aWR0aCl9LmhlaWdodC1ob3U0ZWV2e2hlaWdodDp2YXIoLS1kZXNrdG9wLWhlaWdodCl9Lm1pbldpZHRoLW0xNjJzem55e21pbi13aWR0aDp2YXIoLS1kZXNrdG9wLW1pbldpZHRoKX0ubWluSGVpZ2h0LW0xOWhpNjh4e21pbi1oZWlnaHQ6dmFyKC0tZGVza3RvcC1taW5IZWlnaHQpfS5tYXhXaWR0aC1tMTBkazA3b3ttYXgtd2lkdGg6dmFyKC0tZGVza3RvcC1tYXhXaWR0aCl9Lm1heEhlaWdodC1tb2xudml7bWF4LWhlaWdodDp2YXIoLS1kZXNrdG9wLW1heEhlaWdodCl9LmFzcGVjdFJhdGlvLWFxY2YwenZ7YXNwZWN0LXJhdGlvOnZhcigtLWRlc2t0b3AtYXNwZWN0UmF0aW8pfS50b3AtdDduODRoant0b3A6dmFyKC0tZGVza3RvcC10b3ApfS5ib3R0b20tYjN1bmFlZ3tib3R0b206dmFyKC0tZGVza3RvcC1ib3R0b20pfS5sZWZ0LWwxcHNvb3c4e2xlZnQ6dmFyKC0tZGVza3RvcC1sZWZ0KX0ucmlnaHQtcjFmdWtpaWZ7cmlnaHQ6dmFyKC0tZGVza3RvcC1yaWdodCl9LnRyYW5zZm9ybS10eDJyanhvey13ZWJraXQtdHJhbnNmb3JtOnZhcigtLWRlc2t0b3AtdHJhbnNmb3JtKTstbXMtdHJhbnNmb3JtOnZhcigtLWRlc2t0b3AtdHJhbnNmb3JtKTt0cmFuc2Zvcm06dmFyKC0tZGVza3RvcC10cmFuc2Zvcm0pfS5mbGV4QmFzaXMtZjI5dDBuc3std2Via2l0LWZsZXgtYmFzaXM6dmFyKC0tZGVza3RvcC1mbGV4QmFzaXMpOy1tcy1mbGV4LXByZWZlcnJlZC1zaXplOnZhcigtLWRlc2t0b3AtZmxleEJhc2lzKTtmbGV4LWJhc2lzOnZhcigtLWRlc2t0b3AtZmxleEJhc2lzKX0uZmxleFNocmluay1mMXBkZnFvZ3std2Via2l0LWZsZXgtc2hyaW5rOnZhcigtLWRlc2t0b3AtZmxleFNocmluayk7LW1zLWZsZXgtbmVnYXRpdmU6dmFyKC0tZGVza3RvcC1mbGV4U2hyaW5rKTtmbGV4LXNocmluazp2YXIoLS1kZXNrdG9wLWZsZXhTaHJpbmspfS5mbGV4R3Jvdy1mMXk5Zjh2Mnstd2Via2l0LWJveC1mbGV4OnZhcigtLWRlc2t0b3AtZmxleEdyb3cpOy13ZWJraXQtZmxleC1ncm93OnZhcigtLWRlc2t0b3AtZmxleEdyb3cpOy1tcy1mbGV4LXBvc2l0aXZlOnZhcigtLWRlc2t0b3AtZmxleEdyb3cpO2ZsZXgtZ3Jvdzp2YXIoLS1kZXNrdG9wLWZsZXhHcm93KX0uZ3JpZFRlbXBsYXRlQ29sdW1ucy1nMTU3cnY3OHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6dmFyKC0tZGVza3RvcC1ncmlkVGVtcGxhdGVDb2x1bW5zKX0uZ3JpZFRlbXBsYXRlUm93cy1nYjFsODc2e2dyaWQtdGVtcGxhdGUtcm93czp2YXIoLS1kZXNrdG9wLWdyaWRUZW1wbGF0ZVJvd3MpfS5ncmlkVGVtcGxhdGVBcmVhcy1naTk0bWJte2dyaWQtdGVtcGxhdGUtYXJlYXM6dmFyKC0tZGVza3RvcC1ncmlkVGVtcGxhdGVBcmVhcyl9LmdyaWRUZW1wbGF0ZS1nMWY5MmZtdHtncmlkLXRlbXBsYXRlOnZhcigtLWRlc2t0b3AtZ3JpZFRlbXBsYXRlKX0uZ3JpZEF1dG9Db2x1bW5zLWdpMGVhMWZ7Z3JpZC1hdXRvLWNvbHVtbnM6dmFyKC0tZGVza3RvcC1ncmlkQXV0b0NvbHVtbnMpfS5ncmlkQXV0b1Jvd3MtZ2x5MWI2MXtncmlkLWF1dG8tcm93czp2YXIoLS1kZXNrdG9wLWdyaWRBdXRvUm93cyl9LmdyaWRBdXRvRmxvdy1nMXZxZTZxdXtncmlkLWF1dG8tZmxvdzp2YXIoLS1kZXNrdG9wLWdyaWRBdXRvRmxvdyl9LmdyaWQtZzFzdXhzazd7Z3JpZDp2YXIoLS1kZXNrdG9wLWdyaWQpfS5ncmlkUm93U3RhcnQtZzFlYXFxa2p7Z3JpZC1yb3ctc3RhcnQ6dmFyKC0tZGVza3RvcC1ncmlkUm93U3RhcnQpfS5ncmlkQ29sdW1uU3RhcnQtZ2EwNjR3cXtncmlkLWNvbHVtbi1zdGFydDp2YXIoLS1kZXNrdG9wLWdyaWRDb2x1bW5TdGFydCl9LmdyaWRSb3dFbmQtZzExMXg0cnN7Z3JpZC1yb3ctZW5kOnZhcigtLWRlc2t0b3AtZ3JpZFJvd0VuZCl9LmdyaWRDb2x1bW5FbmQtZ2k3amlpZntncmlkLWNvbHVtbi1lbmQ6dmFyKC0tZGVza3RvcC1ncmlkQ29sdW1uRW5kKX0uZ3JpZFJvdy1nMmpvOTExe2dyaWQtcm93OnZhcigtLWRlc2t0b3AtZ3JpZFJvdyl9LmdyaWRDb2x1bW4tZzFweTR5ZWJ7Z3JpZC1jb2x1bW46dmFyKC0tZGVza3RvcC1ncmlkQ29sdW1uKX0uZ3JpZEFyZWEtZzF4dHdqazV7Z3JpZC1hcmVhOnZhcigtLWRlc2t0b3AtZ3JpZEFyZWEpfS5vcGFjaXR5LW8xbWNvY2p0e29wYWNpdHk6dmFyKC0tZGVza3RvcC1vcGFjaXR5KX0uekluZGV4LXpvZnJtZzl7ei1pbmRleDp2YXIoLS1kZXNrdG9wLXpJbmRleCl9Ll8xLV83emFzM2N7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjEpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWVsZXZhdGlvbjEpfS5fMi1fMWozcDBwbXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnRWxldmF0aW9uMik7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctZWxldmF0aW9uMil9LmZnLWZydTYxb257Y29sb3I6dmFyKC0tY29sb3ItZmcpfS5mZ0ludmVyc2UtZjZkMm0yantjb2xvcjp2YXIoLS1jb2xvci1mZ0ludmVyc2UpfS5mZ011dGVkLWYxaDhleWF6e2NvbG9yOnZhcigtLWNvbG9yLWZnTXV0ZWQpfS5mZ1ByaW1hcnktZjZidjg3ZHtjb2xvcjp2YXIoLS1jb2xvci1mZ1ByaW1hcnkpfS5mZ1Bvc2l0aXZlLWYxYzM2ZGdze2NvbG9yOnZhcigtLWNvbG9yLWZnUG9zaXRpdmUpfS5mZ05lZ2F0aXZlLWYxOXFxc2xxe2NvbG9yOnZhcigtLWNvbG9yLWZnTmVnYXRpdmUpfS5mZ1dhcm5pbmctZjF0dW5zcDF7Y29sb3I6dmFyKC0tY29sb3ItZmdXYXJuaW5nKX0uYmctYmtvdnRma3tjb2xvcjp2YXIoLS1jb2xvci1iZyl9LmJnQWx0ZXJuYXRlLWIxZW9wOXo4e2NvbG9yOnZhcigtLWNvbG9yLWJnQWx0ZXJuYXRlKX0uYmdJbnZlcnNlLWIzdnZrcjl7Y29sb3I6dmFyKC0tY29sb3ItYmdJbnZlcnNlKX0uYmdPdmVybGF5LWIxb29sMXBpe2NvbG9yOnZhcigtLWNvbG9yLWJnT3ZlcmxheSl9LmJnUHJpbWFyeS1iZjN1eDdse2NvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeSl9LmJnUHJpbWFyeVdhc2gtYm5qYnVmcHtjb2xvcjp2YXIoLS1jb2xvci1iZ1ByaW1hcnlXYXNoKX0uYmdTZWNvbmRhcnktYmFjZHlkN3tjb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeSl9LmJnVGVydGlhcnktYjE5eXYzbmF7Y29sb3I6dmFyKC0tY29sb3ItYmdUZXJ0aWFyeSl9LmJnU2Vjb25kYXJ5V2FzaC1iMWc3azh6MHtjb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeVdhc2gpfS5iZ05lZ2F0aXZlLWJ0YjRyNzZ7Y29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZSl9LmJnTmVnYXRpdmVXYXNoLWJkdWRsbmx7Y29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZVdhc2gpfS5iZ1Bvc2l0aXZlLWIxcWJoZWpie2NvbG9yOnZhcigtLWNvbG9yLWJnUG9zaXRpdmUpfS5iZ1Bvc2l0aXZlV2FzaC1iNXBraXBke2NvbG9yOnZhcigtLWNvbG9yLWJnUG9zaXRpdmVXYXNoKX0uYmdXYXJuaW5nLWIxMGU3NXZye2NvbG9yOnZhcigtLWNvbG9yLWJnV2FybmluZyl9LmJnV2FybmluZ1dhc2gtYjUwZ284YXtjb2xvcjp2YXIoLS1jb2xvci1iZ1dhcm5pbmdXYXNoKX0uY3VycmVudENvbG9yLWMxNzUwYm94e2NvbG9yOnZhcigtLWNvbG9yLWN1cnJlbnRDb2xvcil9LmJnTGluZS1iMXVlNXQyaHtjb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmUpfS5iZ0xpbmVJbnZlcnNlLWJhdG90ZGl7Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lSW52ZXJzZSl9LmJnTGluZUhlYXZ5LWJ6bDVjbHN7Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lSGVhdnkpfS5iZ0xpbmVQcmltYXJ5LWJ5aDZnanZ7Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeSl9LmJnTGluZVByaW1hcnlTdWJ0bGUtYjFta3I0NWJ7Y29sb3I6dmFyKC0tY29sb3ItYmdMaW5lUHJpbWFyeVN1YnRsZSl9LmJnRWxldmF0aW9uMS1iMW9rbzBtNXtjb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjEpfS5iZ0VsZXZhdGlvbjItYnFmaGF0MXtjb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjIpfS5hY2NlbnRTdWJ0bGVHcmVlbi1hZDdndzB0e2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUdyZWVuKX0uYWNjZW50Qm9sZEdyZWVuLWEzOW41ZDR7Y29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEdyZWVuKX0uYWNjZW50U3VidGxlQmx1ZS1hMXBmN213MHtjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVCbHVlKX0uYWNjZW50Qm9sZEJsdWUtYTF0bzIxaHB7Y29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEJsdWUpfS5hY2NlbnRTdWJ0bGVQdXJwbGUtYTkydWN4cntjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVQdXJwbGUpfS5hY2NlbnRCb2xkUHVycGxlLWE4NmZhZXtjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkUHVycGxlKX0uYWNjZW50U3VidGxlWWVsbG93LWExamZya2Rne2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVllbGxvdyl9LmFjY2VudEJvbGRZZWxsb3ctYWtjZ3J6MHtjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkWWVsbG93KX0uYWNjZW50U3VidGxlUmVkLWEzaGw4c297Y29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlUmVkKX0uYWNjZW50Qm9sZFJlZC1hMXV1bjJleHtjb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkUmVkKX0uYWNjZW50U3VidGxlR3JheS1hOXpscXNke2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUdyYXkpfS5hY2NlbnRCb2xkR3JheS1haWNycnl4e2NvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRHcmF5KX0udHJhbnNwYXJlbnQtdDF2Mnl2ZDB7Y29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpfS5mZy1mMTU5cGE0ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWZnKX0uZmdJbnZlcnNlLWYxMWp2bnY1e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdJbnZlcnNlKX0uZmdNdXRlZC1mdWc5eHE1e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdNdXRlZCl9LmZnUHJpbWFyeS1mYTYzMndve2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdQcmltYXJ5KX0uZmdQb3NpdGl2ZS1mczZtZ2dhe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItZmdQb3NpdGl2ZSl9LmZnTmVnYXRpdmUtZmVha3dmZ3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWZnTmVnYXRpdmUpfS5mZ1dhcm5pbmctZjEza2l0aWZ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1mZ1dhcm5pbmcpfS5iZy1iODJqeTJoe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmcpfS5iZ0FsdGVybmF0ZS1iZDBramRwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdBbHRlcm5hdGUpfS5iZ0ludmVyc2UtYnpva3NzMntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnSW52ZXJzZSl9LmJnT3ZlcmxheS1iMWU1Z3FtNntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnT3ZlcmxheSl9LmJnUHJpbWFyeS1iMXdsODZma3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeSl9LmJnUHJpbWFyeVdhc2gtYmk5OGx6dHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeVdhc2gpfS5iZ1NlY29uZGFyeS1iMW56ejg1Y3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnU2Vjb25kYXJ5KX0uYmdUZXJ0aWFyeS1iYTRna3A1e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdUZXJ0aWFyeSl9LmJnU2Vjb25kYXJ5V2FzaC1iOWpkem14e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlXYXNoKX0uYmdOZWdhdGl2ZS1iMWo4OHY5NntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnTmVnYXRpdmUpfS5iZ05lZ2F0aXZlV2FzaC1icWFjY2Rle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZVdhc2gpfS5iZ1Bvc2l0aXZlLWIxa3oxYWQ0e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdQb3NpdGl2ZSl9LmJnUG9zaXRpdmVXYXNoLWJqNnV6cnh7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1Bvc2l0aXZlV2FzaCl9LmJnV2FybmluZy1iN2s2NDFxe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdXYXJuaW5nKX0uYmdXYXJuaW5nV2FzaC1iMTE3Zm5rYXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnV2FybmluZ1dhc2gpfS5jdXJyZW50Q29sb3ItY3BmMGt5aXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWN1cnJlbnRDb2xvcil9LmJnTGluZS1iMXEyYTNsantiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZSl9LmJnTGluZUludmVyc2UtYmE3OHVxentiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZUludmVyc2UpfS5iZ0xpbmVIZWF2eS1iMjJkcDkze2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lSGVhdnkpfS5iZ0xpbmVQcmltYXJ5LWJ2Mmw2eWN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVQcmltYXJ5KX0uYmdMaW5lUHJpbWFyeVN1YnRsZS1iMXVuZHE2dXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZVByaW1hcnlTdWJ0bGUpfS5iZ0VsZXZhdGlvbjEtYjE5YWVvZWF7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjEpfS5iZ0VsZXZhdGlvbjItYjFtc2VlNjZ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjIpfS5hY2NlbnRTdWJ0bGVHcmVlbi1hMXhycXNkZntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUdyZWVuKX0uYWNjZW50Qm9sZEdyZWVuLWFyZDhrOGR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkR3JlZW4pfS5hY2NlbnRTdWJ0bGVCbHVlLWExY243NjZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlQmx1ZSl9LmFjY2VudEJvbGRCbHVlLWExeTY4a2pke2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZEJsdWUpfS5hY2NlbnRTdWJ0bGVQdXJwbGUtYTJrOXc5cXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVB1cnBsZSl9LmFjY2VudEJvbGRQdXJwbGUtYTF3Z3YzN3F7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkUHVycGxlKX0uYWNjZW50U3VidGxlWWVsbG93LWFxeGJla2x7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVZZWxsb3cpfS5hY2NlbnRCb2xkWWVsbG93LWFrMmUwaWl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkWWVsbG93KX0uYWNjZW50U3VidGxlUmVkLWEybzUzaW57YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVSZWQpfS5hY2NlbnRCb2xkUmVkLWF0NHE3a2h7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkUmVkKX0uYWNjZW50U3VidGxlR3JheS1hbWI5ZHdte2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlR3JheSl9LmFjY2VudEJvbGRHcmF5LWE4Y280Mmp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkR3JheSl9LnRyYW5zcGFyZW50LXQxNGt3a3Zue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpfS5mZy1maWRlMG92e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmcpfS5mZ0ludmVyc2UtZjFqZTZlcDZ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mZ0ludmVyc2UpfS5mZ011dGVkLWYxNDAzdG50e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdNdXRlZCl9LmZnUHJpbWFyeS1mMnhiMTQwe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdQcmltYXJ5KX0uZmdQb3NpdGl2ZS1mMTF3MDdxe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItZmdQb3NpdGl2ZSl9LmZnTmVnYXRpdmUtZno4YzRyNHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWZnTmVnYXRpdmUpfS5mZ1dhcm5pbmctZjFtdW96dWx7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1mZ1dhcm5pbmcpfS5iZy1ibW9ldXA3e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmcpfS5iZ0FsdGVybmF0ZS1iajhocXZte2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdBbHRlcm5hdGUpfS5iZ0ludmVyc2UtYnp6bG10dntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnSW52ZXJzZSl9LmJnT3ZlcmxheS1iY29rYWhqe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdPdmVybGF5KX0uYmdQcmltYXJ5LWIxODRtcmhpe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdQcmltYXJ5KX0uYmdQcmltYXJ5V2FzaC1iMTNxdHI5bXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeVdhc2gpfS5iZ1NlY29uZGFyeS1iMXV2c3JiOXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnU2Vjb25kYXJ5KX0uYmdUZXJ0aWFyeS1iZm1kYnhoe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdUZXJ0aWFyeSl9LmJnU2Vjb25kYXJ5V2FzaC1iOTFrcjJhe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdTZWNvbmRhcnlXYXNoKX0uYmdOZWdhdGl2ZS1iMW1kem9qeHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTmVnYXRpdmUpfS5iZ05lZ2F0aXZlV2FzaC1ibzN4OGJ1e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdOZWdhdGl2ZVdhc2gpfS5iZ1Bvc2l0aXZlLWIxZHdoNDVxe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdQb3NpdGl2ZSl9LmJnUG9zaXRpdmVXYXNoLWJ2anBubWl7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ1Bvc2l0aXZlV2FzaCl9LmJnV2FybmluZy1iMW5jMTA2d3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnV2FybmluZyl9LmJnV2FybmluZ1dhc2gtYnozMGVrcXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnV2FybmluZ1dhc2gpfS5jdXJyZW50Q29sb3ItY3h4eHkyc3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWN1cnJlbnRDb2xvcil9LmJnTGluZS1iZzV5eXd0e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYmdMaW5lKX0uYmdMaW5lSW52ZXJzZS1iMWJ5d3k0aXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZUludmVyc2UpfS5iZ0xpbmVIZWF2eS1iMWYzNHlvbXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZUhlYXZ5KX0uYmdMaW5lUHJpbWFyeS1iMWJwbDJwZntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnTGluZVByaW1hcnkpfS5iZ0xpbmVQcmltYXJ5U3VidGxlLWJhbnNreHR7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0xpbmVQcmltYXJ5U3VidGxlKX0uYmdFbGV2YXRpb24xLWJ1Znd0NG97Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjEpfS5iZ0VsZXZhdGlvbjItYjEzbHN2b3d7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1iZ0VsZXZhdGlvbjIpfS5hY2NlbnRTdWJ0bGVHcmVlbi1hZDlkNjNpe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYWNjZW50U3VidGxlR3JlZW4pfS5hY2NlbnRCb2xkR3JlZW4tYW5obmg4c3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRHcmVlbil9LmFjY2VudFN1YnRsZUJsdWUtYWkzb2JqMntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZUJsdWUpfS5hY2NlbnRCb2xkQmx1ZS1hMWV2dXNna3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRCbHVlKX0uYWNjZW50U3VidGxlUHVycGxlLWFoNmI5Ym97Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVQdXJwbGUpfS5hY2NlbnRCb2xkUHVycGxlLWFrdmFkN2p7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRCb2xkUHVycGxlKX0uYWNjZW50U3VidGxlWWVsbG93LWEzaTY5ZW97Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVZZWxsb3cpfS5hY2NlbnRCb2xkWWVsbG93LWExZm5sNDk4e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItYWNjZW50Qm9sZFllbGxvdyl9LmFjY2VudFN1YnRsZVJlZC1hMWc0aWRzbHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudFN1YnRsZVJlZCl9LmFjY2VudEJvbGRSZWQtYWQxM3RjY3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRSZWQpfS5hY2NlbnRTdWJ0bGVHcmF5LWF5ZzRxbWN7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1hY2NlbnRTdWJ0bGVHcmF5KX0uYWNjZW50Qm9sZEdyYXktYWEwYWJqY3tib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWFjY2VudEJvbGRHcmF5KX0udHJhbnNwYXJlbnQtdDFmNG1xYmN7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci10cmFuc3BhcmVudCl9Ll8wLV9vZDRxNG97Ym9yZGVyLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTApfS5fMTAwLV8xb2NqMThue2JvcmRlci13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0xMDApfS5fMjAwLV8xeW1rc2lne2JvcmRlci13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0yMDApfS5fMzAwLV9sYWh1Ym57Ym9yZGVyLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTMwMCl9Ll80MDAtXzFpdWJ6ZHB7Ym9yZGVyLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTQwMCl9Ll81MDAtXzFwb3F1Zjh7Ym9yZGVyLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTUwMCl9Ll8wLV8zcGtjc2N7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0wKX0uXzEwMC1fYTZhcmg3e2JvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKX0uXzIwMC1feXRhMzBve2JvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMjAwKX0uXzMwMC1fMTJqNHQ0YXtib3JkZXItdG9wLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTMwMCl9Ll80MDAtXzF5bGVmaDR7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC00MDApfS5fNTAwLV94Mm5xaHd7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC01MDApfS5fMC1fMXVpbTl0cHtib3JkZXItaW5saW5lLWVuZC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0wKX0uXzEwMC1fMThkaHV5Yntib3JkZXItaW5saW5lLWVuZC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0xMDApfS5fMjAwLV8xYjE2cWhte2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTIwMCl9Ll8zMDAtXzF5cmV0ZWR7Ym9yZGVyLWlubGluZS1lbmQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMzAwKX0uXzQwMC1fMXZqcHFwb3tib3JkZXItaW5saW5lLWVuZC13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC00MDApfS5fNTAwLV8xbGtha2N1e2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTUwMCl9Ll8wLV95NXd3MWl7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC0wKX0uXzEwMC1feW5idXJ2e2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKX0uXzIwMC1faGxpZ3pje2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMjAwKX0uXzMwMC1fMXN5OWd5bXtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTMwMCl9Ll80MDAtXzEyOHVhb2V7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1ib3JkZXJXaWR0aC00MDApfS5fNTAwLV8xb3lsdmNoe2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNTAwKX0uXzAtX3h5Mnd0dXtib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTApfS5fMTAwLV8xazI3eXh5e2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKX0uXzIwMC1fMjluNmpie2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMjAwKX0uXzMwMC1fOXk2Yjd2e2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtMzAwKX0uXzQwMC1fZW9oa2Rze2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6dmFyKC0tYm9yZGVyV2lkdGgtNDAwKX0uXzUwMC1fMWlna2c2N3tib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOnZhcigtLWJvcmRlcldpZHRoLTUwMCl9Ll8wLV8xMTlobnd7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMCl9Ll8xMDAtXzEyZDR2Y2d7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMTAwKX0uXzIwMC1fb3Fmc3Nle2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTIwMCl9Ll8zMDAtXzJrcjM2ZHtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApfS5fNDAwLV8xcHhrNmFhe2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTQwMCl9Ll81MDAtXzFsbXZzYjh7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNTAwKX0uXzYwMC1fMThkcW9jantib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy02MDApfS5fNzAwLV8xeW95eW5ye2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTcwMCl9Ll84MDAtX2swbjk4cXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy04MDApfS5fOTAwLV9iMzRjdHF7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtOTAwKX0uXzEwMDAtXzZkMjA5YXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDAwKX0uXzAtX2ZjNjVtMHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0wKX0uXzEwMC1fMThvc3BtaHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDApfS5fMjAwLV8xdGNpbG5ve2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTIwMCl9Ll8zMDAtX2duNm4waXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApfS5fNDAwLV9qeXJoYXp7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNDAwKX0uXzUwMC1fMTB0N2NxMntib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy01MDApfS5fNjAwLV81bjJzNmR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNjAwKX0uXzcwMC1fMXhhOGhpbHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy03MDApfS5fODAwLV8zNHF4MnB7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtODAwKX0uXzkwMC1fMXJidzJ3bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy05MDApfS5fMTAwMC1fdjQ5Y3cye2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMDApfS5fMC1fejl0MXk4e2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0wKX0uXzEwMC1fdmczMHg3e2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDApfS5fMjAwLV8xZ2t3d2tie2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0yMDApfS5fMzAwLV8xMzh4ZXNhe2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApfS5fNDAwLV8zZTh5bjB7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTQwMCl9Ll81MDAtX3hkODU1bHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNTAwKX0uXzYwMC1fajJtcXlke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy02MDApfS5fNzAwLV92eDBwc2J7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTcwMCl9Ll84MDAtXzFvaXMxNXB7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTgwMCl9Ll85MDAtXzFvOWlha2d7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTkwMCl9Ll8xMDAwLV9tejBvZ3d7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMDApfS5fMC1fMTBxbHdpM3tib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0wKX0uXzEwMC1feWtiOTY3e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMCl9Ll8yMDAtXzFqeTV6bWl7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMjAwKX0uXzMwMC1fMTR6N3p4OXtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0zMDApfS5fNDAwLV82bnBxNjl7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNDAwKX0uXzUwMC1feTNtNnd1e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTUwMCl9Ll82MDAtX2ljOWZiNHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy02MDApfS5fNzAwLV9xaW9sb3Z7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtNzAwKX0uXzgwMC1fMWJ1bmo4d3tib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy04MDApfS5fOTAwLV90b2VhMTl7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtOTAwKX0uXzEwMDAtXzE0b2dubW17Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMTAwMCl9Ll8wLV8xbTF3b2Rhe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0wKX0uXzEwMC1fejRwcTgxe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0xMDApfS5fMjAwLV9laXZka2h7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTIwMCl9Ll8zMDAtX2I1cnM3a3tib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMzAwKX0uXzQwMC1fa2tqeXlme2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy00MDApfS5fNTAwLV8xdGNicW1ne2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy01MDApfS5fNjAwLV8xbWpuYnhhe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy02MDApfS5fNzAwLV9zbnRmYXR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTcwMCl9Ll84MDAtXzF0aXVtNGt7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTgwMCl9Ll85MDAtXzlkdDJnMntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtOTAwKX0uXzEwMDAtXzE2aGd6cG17Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMDApfS5pbmhlcml0LWkxamNpcmE4e2ZvbnQtZmFtaWx5OmluaGVyaXR9LmRpc3BsYXkxLWRncHRhMTF7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS1kaXNwbGF5MSl9LmRpc3BsYXkyLWQxZmwxMmUye2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktZGlzcGxheTIpfS5kaXNwbGF5My1kMWt2bm52Y3tmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5LWRpc3BsYXkzKX0udGl0bGUxLXQxcWVibTd4e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktdGl0bGUxKX0udGl0bGUyLXRsNGtzYXJ7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS10aXRsZTIpfS50aXRsZTMtdDFwOGx5ajR7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS10aXRsZTMpfS50aXRsZTQtdDFwenJremV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS10aXRsZTQpfS5oZWFkbGluZS1oMWF3MmR4e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktaGVhZGxpbmUpfS5ib2R5LWJzaG8yYnF7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS1ib2R5KX0ubGFiZWwxLWwxdjVoa212e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnRGYW1pbHktbGFiZWwxKX0ubGFiZWwyLWwxNTdldHN7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS1sYWJlbDIpfS5jYXB0aW9uLWN5aXl5cGd7Zm9udC1mYW1pbHk6dmFyKC0tZm9udEZhbWlseS1jYXB0aW9uKX0ubGVnYWwtbHk2Ym44OHtmb250LWZhbWlseTp2YXIoLS1mb250RmFtaWx5LWxlZ2FsKX0uaW5oZXJpdC1pMWU0aWFxN3tmb250LXNpemU6aW5oZXJpdH0uZGlzcGxheTEtZGZhZWJiN3tmb250LXNpemU6dmFyKC0tZm9udFNpemUtZGlzcGxheTEpfS5kaXNwbGF5Mi1kczM4anZ2e2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1kaXNwbGF5Mil9LmRpc3BsYXkzLWQxdW9yMXdke2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1kaXNwbGF5Myl9LnRpdGxlMS10MTcwbGdpa3tmb250LXNpemU6dmFyKC0tZm9udFNpemUtdGl0bGUxKX0udGl0bGUyLXRxZHY5ejN7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLXRpdGxlMil9LnRpdGxlMy10MTlza2pwentmb250LXNpemU6dmFyKC0tZm9udFNpemUtdGl0bGUzKX0udGl0bGU0LXRlNGRia2t7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLXRpdGxlNCl9LmhlYWRsaW5lLWgxc3JycGloe2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1oZWFkbGluZSl9LmJvZHktYjE5anFybnB7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWJvZHkpfS5sYWJlbDEtbGt3YmlrYntmb250LXNpemU6dmFyKC0tZm9udFNpemUtbGFiZWwxKX0ubGFiZWwyLWw2OXZ2b2N7Zm9udC1zaXplOnZhcigtLWZvbnRTaXplLWxhYmVsMil9LmNhcHRpb24tY2VmbTF6cXtmb250LXNpemU6dmFyKC0tZm9udFNpemUtY2FwdGlvbil9LmxlZ2FsLWwxc3h0cGcxe2ZvbnQtc2l6ZTp2YXIoLS1mb250U2l6ZS1sZWdhbCl9LmluaGVyaXQtaWQ3NmExOXtmb250LXdlaWdodDppbmhlcml0fS5kaXNwbGF5MS1kMXAwY3d1dXtmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWRpc3BsYXkxKX0uZGlzcGxheTItZDF2dGhiaDZ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1kaXNwbGF5Mil9LmRpc3BsYXkzLWQ2MXMyZW17Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1kaXNwbGF5Myl9LnRpdGxlMS10cmQ2aDRle2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHQtdGl0bGUxKX0udGl0bGUyLXQxdGxjNXRie2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHQtdGl0bGUyKX0udGl0bGUzLXRlZXlrY3h7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC10aXRsZTMpfS50aXRsZTQtdGNhOGtze2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnRXZWlnaHQtdGl0bGU0KX0uaGVhZGxpbmUtaDFjdmswcHN7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1oZWFkbGluZSl9LmJvZHktYjE5Y2kxY3tmb250LXdlaWdodDp2YXIoLS1mb250V2VpZ2h0LWJvZHkpfS5sYWJlbDEtbDFnNDV5eDl7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1sYWJlbDEpfS5sYWJlbDItbDFkczU2ZHh7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1sYWJlbDIpfS5jYXB0aW9uLWM5cnA3Y3l7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1jYXB0aW9uKX0ubGVnYWwtbDFuMXMwNWJ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udFdlaWdodC1sZWdhbCl9LmluaGVyaXQtaTEwdzV4NXd7bGluZS1oZWlnaHQ6aW5oZXJpdH0uZGlzcGxheTEtZHVqN3IzY3tsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWRpc3BsYXkxKX0uZGlzcGxheTItZHV6ZnAxMHtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWRpc3BsYXkyKX0uZGlzcGxheTMtZGUyMDlscHtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWRpc3BsYXkzKX0udGl0bGUxLXQxMXBwN3Zke2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtdGl0bGUxKX0udGl0bGUyLXQxMG54emhre2xpbmUtaGVpZ2h0OnZhcigtLWxpbmVIZWlnaHQtdGl0bGUyKX0udGl0bGUzLXRzdmRmeDV7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodC10aXRsZTMpfS50aXRsZTQtdDEyOWFkZmd7bGluZS1oZWlnaHQ6dmFyKC0tbGluZUhlaWdodC10aXRsZTQpfS5oZWFkbGluZS1oMWo2Ymt2Z3tsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWhlYWRsaW5lKX0uYm9keS1iMXg4eWJqY3tsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWJvZHkpfS5sYWJlbDEtbGJ5Zjd3dXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWxhYmVsMSl9LmxhYmVsMi1sMTZ3aXAxbXtsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWxhYmVsMil9LmNhcHRpb24tY2Rwa25qNntsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWNhcHRpb24pfS5sZWdhbC1sMTVjNzYyNntsaW5lLWhlaWdodDp2YXIoLS1saW5lSGVpZ2h0LWxlZ2FsKX0ubm9uZS1uMWt4bmlwZXstd2Via2l0LXRleHQtZGVjb3JhdGlvbjpub25lO3RleHQtZGVjb3JhdGlvbjpub25lfS51bmRlcmxpbmUtdW45bTV0eXstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ub3ZlcmxpbmUtbzFodHN1cjh7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246b3ZlcmxpbmU7dGV4dC1kZWNvcmF0aW9uOm92ZXJsaW5lfS5saW5lLXRocm91Z2gtbDEyb3lzc3F7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoO3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2h9LnVuZGVybGluZV9vdmVybGluZS11dWVsbWJyey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBvdmVybGluZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIG92ZXJsaW5lfS51bmRlcmxpbmVfZG91YmxlLXVwMHV3NGN7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdWJsZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdWJsZX0ubm9uZS1ubjg0OHB0e3RleHQtdHJhbnNmb3JtOm5vbmV9LnVwcGVyY2FzZS11MWdtY3BwYXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lmxvd2VyY2FzZS1sbXBicTcze3RleHQtdHJhbnNmb3JtOmxvd2VyY2FzZX0uY2FwaXRhbGl6ZS1jaTRwcTJke3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemV9Lm5vbmUtbnB4ZzhtaHstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udGV4dC10c2k3Zzl0ey13ZWJraXQtdXNlci1zZWxlY3Q6dGV4dDt1c2VyLXNlbGVjdDp0ZXh0fS5hbGwtYWV6Z2hxMnstd2Via2l0LXVzZXItc2VsZWN0OmFsbDt1c2VyLXNlbGVjdDphbGx9LmF1dG8tYTVweHBubHstd2Via2l0LXVzZXItc2VsZWN0OmF1dG87dXNlci1zZWxlY3Q6YXV0b30ubm9uZS1uMWhsc3l2dntkaXNwbGF5Om5vbmV9LmJsb2NrLWIxc3oyMTZhe2Rpc3BsYXk6YmxvY2t9LmlubGluZS1pMWkydWlrMXtkaXNwbGF5OmlubGluZX0uaW5saW5lLWJsb2NrLWlocmhmeWN7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZsZXgtZjFmN2hrM3d7ZGlzcGxheTpmbGV4fS5pbmxpbmUtZmxleC1pMTZ2NDFleXtkaXNwbGF5OmlubGluZS1mbGV4fS5ncmlkLWd3cnk4bWV7ZGlzcGxheTpncmlkfS5pbmxpbmUtZ3JpZC1pMWNjaTc1ZXtkaXNwbGF5OmlubGluZS1ncmlkfS5jb250ZW50cy1jNXNkMXZpe2Rpc3BsYXk6Y29udGVudHN9LmZsb3ctcm9vdC1mMXZ1d3V4aXtkaXNwbGF5OmZsb3ctcm9vdH0ucmV2ZXJ0LXIxbXgxajRre2Rpc3BsYXk6cmV2ZXJ0fS5saXN0LWl0ZW0tbHBmdmg3MntkaXNwbGF5Omxpc3QtaXRlbX0uYXV0by1hc3QyOHB1e292ZXJmbG93OmF1dG99LnZpc2libGUtdjFsZ3dkd3l7b3ZlcmZsb3c6dmlzaWJsZX0uaGlkZGVuLWgxb2pxbnVre292ZXJmbG93OmhpZGRlbn0uY2xpcC1jcnUyOHp4e292ZXJmbG93OmNsaXB9LnNjcm9sbC1zMWczNDg5dntvdmVyZmxvdzpzY3JvbGx9Ll8wLV9xN3E2aWJ7Z2FwOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fbTJvbGYye2dhcDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMXBzZWlsOXtnYXA6dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtXzl5cW1yaHtnYXA6dmFyKC0tc3BhY2UtMF83NSl9Ll8xLV8xcDJ0bmZxe2dhcDp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fMWkweTFxOHtnYXA6dmFyKC0tc3BhY2UtMV81KX0uXzItXzE4M2k5dmV7Z2FwOnZhcigtLXNwYWNlLTIpfS5fMy1fMXRqam85antnYXA6dmFyKC0tc3BhY2UtMyl9Ll80LV8xY21mZjQ5e2dhcDp2YXIoLS1zcGFjZS00KX0uXzUtX2x5MG4waXtnYXA6dmFyKC0tc3BhY2UtNSl9Ll82LV8xeW9mMHg3e2dhcDp2YXIoLS1zcGFjZS02KX0uXzctXzQxNmdrY3tnYXA6dmFyKC0tc3BhY2UtNyl9Ll84LV9sZDdscjB7Z2FwOnZhcigtLXNwYWNlLTgpfS5fOS1fYWJ3MDZ1e2dhcDp2YXIoLS1zcGFjZS05KX0uXzEwLV9udGczYXl7Z2FwOnZhcigtLXNwYWNlLTEwKX0uXzAtXzFneW54cHd7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTApO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMCl9Ll8wXzI1LV8xM3NmdW5zey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wXzI1KTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTBfMjUpfS5fMF81LV82dHphdmx7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTBfNSk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fcGJvMnh2ey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0wXzc1KTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1faTVoaHlkey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0xKTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTEpfS5fMV81LV9pdnl5NHZ7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTFfNSk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fcGV4dmtmey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0yKTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTIpfS5fMy1fNnNicGV5ey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS0zKTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTMpfS5fNC1fMW15bHdiNnstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNCk7Y29sdW1uLWdhcDp2YXIoLS1zcGFjZS00KX0uXzUtXzFoY253ZTV7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTUpO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtNSl9Ll82LV8xbXdndHV6ey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS02KTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTYpfS5fNy1fbnN5c2Ywey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS03KTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTcpfS5fOC1fNGQ1ZjB5ey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS04KTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTgpfS5fOS1fc2N4NzRzey13ZWJraXQtY29sdW1uLWdhcDp2YXIoLS1zcGFjZS05KTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTkpfS5fMTAtX2wyeTZyZ3std2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMTApO2NvbHVtbi1nYXA6dmFyKC0tc3BhY2UtMTApfS5fMC1fNTg1amtre3Jvdy1nYXA6dmFyKC0tc3BhY2UtMCl9Ll8wXzI1LV9wY2t5NTd7cm93LWdhcDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMWVkc3Rla3tyb3ctZ2FwOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV8xbHB3enhze3Jvdy1nYXA6dmFyKC0tc3BhY2UtMF83NSl9Ll8xLV8xbjdwcWl5e3Jvdy1nYXA6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtXzRxeDUxN3tyb3ctZ2FwOnZhcigtLXNwYWNlLTFfNSl9Ll8yLV85OWd2N2h7cm93LWdhcDp2YXIoLS1zcGFjZS0yKX0uXzMtX3ZxcGt1aHtyb3ctZ2FwOnZhcigtLXNwYWNlLTMpfS5fNC1fNXk5YW14e3Jvdy1nYXA6dmFyKC0tc3BhY2UtNCl9Ll81LV8xeXg5eGEze3Jvdy1nYXA6dmFyKC0tc3BhY2UtNSl9Ll82LV8xNDU0YTV1e3Jvdy1nYXA6dmFyKC0tc3BhY2UtNil9Ll83LV8xYzJrNXJle3Jvdy1nYXA6dmFyKC0tc3BhY2UtNyl9Ll84LV8xOW9oZnF3e3Jvdy1nYXA6dmFyKC0tc3BhY2UtOCl9Ll85LV9yZWQzMm57cm93LWdhcDp2YXIoLS1zcGFjZS05KX0uXzEwLV9oaHA0dnp7cm93LWdhcDp2YXIoLS1zcGFjZS0xMCl9Lm5vcm1hbC1ucm90dGVmey13ZWJraXQtYm94LXBhY2s6bm9ybWFsOy13ZWJraXQtanVzdGlmeS1jb250ZW50Om5vcm1hbDstbXMtZmxleC1wYWNrOm5vcm1hbDtqdXN0aWZ5LWNvbnRlbnQ6bm9ybWFsfS5jZW50ZXItYzdlYmN1YXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5zdGFydC1zMXZ4czhnd3tqdXN0aWZ5LWNvbnRlbnQ6c3RhcnR9LmVuZC1lMWdneW9wdXtqdXN0aWZ5LWNvbnRlbnQ6ZW5kfS5mbGV4LXN0YXJ0LWZwNHAydDR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmZsZXgtZW5kLWYxM2M3NGQxe2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ubGVmdC1sbjI2eXRrey13ZWJraXQtYm94LXBhY2s6bGVmdDstd2Via2l0LWp1c3RpZnktY29udGVudDpsZWZ0Oy1tcy1mbGV4LXBhY2s6bGVmdDtqdXN0aWZ5LWNvbnRlbnQ6bGVmdH0ucmlnaHQtcjRmMmZmMnstd2Via2l0LWJveC1wYWNrOnJpZ2h0Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnJpZ2h0Oy1tcy1mbGV4LXBhY2s6cmlnaHQ7anVzdGlmeS1jb250ZW50OnJpZ2h0fS5zcGFjZS1iZXR3ZWVuLXNwNDUzNmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LnNwYWNlLWFyb3VuZC1zMThrN2Z4cnstd2Via2l0LWJveC1wYWNrOnNwYWNlLWFyb3VuZDstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7LW1zLWZsZXgtcGFjazpzcGFjZS1hcm91bmQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uc3BhY2UtZXZlbmx5LXMxbjR6bTlkey13ZWJraXQtYm94LXBhY2s6c3BhY2UtZXZlbmx5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWV2ZW5seTstbXMtZmxleC1wYWNrOnNwYWNlLWV2ZW5seTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtZXZlbmx5fS5zdHJldGNoLXNhY2tscnN7LXdlYmtpdC1ib3gtcGFjazpzdHJldGNoOy13ZWJraXQtanVzdGlmeS1jb250ZW50OnN0cmV0Y2g7LW1zLWZsZXgtcGFjazpzdHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNofS5ub3JtYWwtbnNkOHI4dnstd2Via2l0LWFsaWduLWNvbnRlbnQ6bm9ybWFsOy1tcy1mbGV4LWxpbmUtcGFjazpub3JtYWw7YWxpZ24tY29udGVudDpub3JtYWx9LmNlbnRlci1jaXNtYTg5e2FsaWduLWNvbnRlbnQ6Y2VudGVyfS5zdGFydC1zMWRuOG9wMHthbGlnbi1jb250ZW50OnN0YXJ0fS5lbmQtZTFhaXZtNW97YWxpZ24tY29udGVudDplbmR9LmZsZXgtc3RhcnQtZjJyN2Q0MnthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9LmZsZXgtZW5kLWYxcTNtaXA0e2FsaWduLWNvbnRlbnQ6ZmxleC1lbmR9LnNwYWNlLWJldHdlZW4tc3dlcG83dXstd2Via2l0LWFsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1saW5lLXBhY2s6c3BhY2UtYmV0d2VlbjthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW59LnNwYWNlLWFyb3VuZC1zNm5hcnNiey13ZWJraXQtYWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQ7LW1zLWZsZXgtbGluZS1wYWNrOnNwYWNlLWFyb3VuZDthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZH0uc3BhY2UtZXZlbmx5LXMxbTlsemxpey13ZWJraXQtYWxpZ24tY29udGVudDpzcGFjZS1ldmVubHk7LW1zLWZsZXgtbGluZS1wYWNrOnNwYWNlLWV2ZW5seTthbGlnbi1jb250ZW50OnNwYWNlLWV2ZW5seX0uc3RyZXRjaC1zMWZsZmtpNnthbGlnbi1jb250ZW50OnN0cmV0Y2h9LmJhc2VsaW5lLWJ0YnlienZ7LXdlYmtpdC1hbGlnbi1jb250ZW50OmJhc2VsaW5lOy1tcy1mbGV4LWxpbmUtcGFjazpiYXNlbGluZTthbGlnbi1jb250ZW50OmJhc2VsaW5lfS5maXJzdF9iYXNlbGluZS1mdGxodGRkey13ZWJraXQtYWxpZ24tY29udGVudDpiYXNlbGluZTstbXMtZmxleC1saW5lLXBhY2s6Zmlyc3QgYmFzZWxpbmU7YWxpZ24tY29udGVudDpiYXNlbGluZX0ubGFzdF9iYXNlbGluZS1sMWxiZ2dqa3std2Via2l0LWFsaWduLWNvbnRlbnQ6bGFzdCBiYXNlbGluZTstbXMtZmxleC1saW5lLXBhY2s6bGFzdCBiYXNlbGluZTthbGlnbi1jb250ZW50Omxhc3QgYmFzZWxpbmV9Lm5vcm1hbC1uMTMyNjdleXstd2Via2l0LWFsaWduLWl0ZW1zOm5vcm1hbDstd2Via2l0LWJveC1hbGlnbjpub3JtYWw7LW1zLWZsZXgtYWxpZ246bm9ybWFsO2FsaWduLWl0ZW1zOm5vcm1hbH0uY2VudGVyLWNraXcwY3thbGlnbi1pdGVtczpjZW50ZXJ9LnN0YXJ0LXMxa2pyZzVxe2FsaWduLWl0ZW1zOnN0YXJ0fS5lbmQtZTF1ajd1Mml7YWxpZ24taXRlbXM6ZW5kfS5mbGV4LXN0YXJ0LWYxNjUwdXFmey13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LWJveC1hbGlnbjpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uZmxleC1lbmQtZm9xbTcxYXstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtZW5kOy13ZWJraXQtYm94LWFsaWduOmZsZXgtZW5kOy1tcy1mbGV4LWFsaWduOmZsZXgtZW5kO2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5zZWxmLXN0YXJ0LXMxaW9rZzgyey13ZWJraXQtYWxpZ24taXRlbXM6c2VsZi1zdGFydDstd2Via2l0LWJveC1hbGlnbjpzZWxmLXN0YXJ0Oy1tcy1mbGV4LWFsaWduOnNlbGYtc3RhcnQ7YWxpZ24taXRlbXM6c2VsZi1zdGFydH0uc2VsZi1lbmQtczEyMnB1cnZ7LXdlYmtpdC1hbGlnbi1pdGVtczpzZWxmLWVuZDstd2Via2l0LWJveC1hbGlnbjpzZWxmLWVuZDstbXMtZmxleC1hbGlnbjpzZWxmLWVuZDthbGlnbi1pdGVtczpzZWxmLWVuZH0uc3RyZXRjaC1zMWU3aDVve2FsaWduLWl0ZW1zOnN0cmV0Y2h9LmJhc2VsaW5lLWIxOTN3Ymlxe2FsaWduLWl0ZW1zOmJhc2VsaW5lfS5maXJzdF9iYXNlbGluZS1mMzl0b212ey13ZWJraXQtYWxpZ24taXRlbXM6YmFzZWxpbmU7LXdlYmtpdC1ib3gtYWxpZ246Zmlyc3QgYmFzZWxpbmU7LW1zLWZsZXgtYWxpZ246Zmlyc3QgYmFzZWxpbmU7YWxpZ24taXRlbXM6YmFzZWxpbmV9Lmxhc3RfYmFzZWxpbmUtbDV1ZTV7LXdlYmtpdC1hbGlnbi1pdGVtczpsYXN0IGJhc2VsaW5lOy13ZWJraXQtYm94LWFsaWduOmxhc3QgYmFzZWxpbmU7LW1zLWZsZXgtYWxpZ246bGFzdCBiYXNlbGluZTthbGlnbi1pdGVtczpsYXN0IGJhc2VsaW5lfS5hdXRvLWExbWNsZTN6e2FsaWduLXNlbGY6YXV0b30ubm9ybWFsLW5jMTF6eHh7LXdlYmtpdC1hbGlnbi1zZWxmOm5vcm1hbDstbXMtZmxleC1pdGVtLWFsaWduOm5vcm1hbDthbGlnbi1zZWxmOm5vcm1hbH0uY2VudGVyLWM4MG4ycTN7YWxpZ24tc2VsZjpjZW50ZXJ9LnN0YXJ0LXMxZW5ybnFle2FsaWduLXNlbGY6c3RhcnR9LmVuZC1leWJob2Zke2FsaWduLXNlbGY6ZW5kfS5mbGV4LXN0YXJ0LWYxN254emNle2FsaWduLXNlbGY6ZmxleC1zdGFydH0uZmxleC1lbmQtZnAzbjR4b3thbGlnbi1zZWxmOmZsZXgtZW5kfS5zZWxmLXN0YXJ0LXNycXdqZGJ7LXdlYmtpdC1hbGlnbi1zZWxmOnNlbGYtc3RhcnQ7LW1zLWZsZXgtaXRlbS1hbGlnbjpzZWxmLXN0YXJ0O2FsaWduLXNlbGY6c2VsZi1zdGFydH0uc2VsZi1lbmQtczE5ZGxuN3Z7LXdlYmtpdC1hbGlnbi1zZWxmOnNlbGYtZW5kOy1tcy1mbGV4LWl0ZW0tYWxpZ246c2VsZi1lbmQ7YWxpZ24tc2VsZjpzZWxmLWVuZH0uc3RyZXRjaC1zbjN3djRxe2FsaWduLXNlbGY6c3RyZXRjaH0uYmFzZWxpbmUtYjF2bXEzdmp7YWxpZ24tc2VsZjpiYXNlbGluZX0uZmlyc3RfYmFzZWxpbmUtZjFjeGt0cm57LXdlYmtpdC1hbGlnbi1zZWxmOmJhc2VsaW5lOy1tcy1mbGV4LWl0ZW0tYWxpZ246Zmlyc3QgYmFzZWxpbmU7YWxpZ24tc2VsZjpiYXNlbGluZX0ubGFzdF9iYXNlbGluZS1saW9hNmw5ey13ZWJraXQtYWxpZ24tc2VsZjpsYXN0IGJhc2VsaW5lOy1tcy1mbGV4LWl0ZW0tYWxpZ246bGFzdCBiYXNlbGluZTthbGlnbi1zZWxmOmxhc3QgYmFzZWxpbmV9LnJvdy1yMWNwYnV4NntmbGV4LWRpcmVjdGlvbjpyb3d9LnJvdy1yZXZlcnNlLXIxdnBiazF0e2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS5jb2x1bW4tY2NpYm93Z3tmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNvbHVtbi1yZXZlcnNlLWN1eTlzYWR7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9Lm5vd3JhcC1udm9zb3lve2ZsZXgtd3JhcDpub3dyYXB9LndyYXAtd2pxcHQzZXtmbGV4LXdyYXA6d3JhcH0ud3JhcC1yZXZlcnNlLXdwMHNxajR7ZmxleC13cmFwOndyYXAtcmV2ZXJzZX0uc3RhdGljLXNyanhjd3h7cG9zaXRpb246c3RhdGljfS5yZWxhdGl2ZS1yNzNuaDZ6e3Bvc2l0aW9uOnJlbGF0aXZlfS5hYnNvbHV0ZS1hN2oycXNwe3Bvc2l0aW9uOmFic29sdXRlfS5maXhlZC1mMWR2N3JhNXtwb3NpdGlvbjpmaXhlZH0uc3RpY2t5LXN3NTA4aDV7cG9zaXRpb246c3RpY2t5fS5fMC1fMzNhOHVpe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTApO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTApO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTApO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtX3B4ZHduOXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0wXzI1KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0wXzI1KTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzI1KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMF8yNSl9Ll8wXzUtXzFsdW45dzB7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF81KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0wXzUpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV8xMWRzZzVje3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtX2lsaXpndXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xKTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtX2FuazZ1b3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xXzUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTFfNSk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMV81KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMV81KX0uXzItX2VwaXAxYntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMil9Ll8zLV8xcG9uNmNte3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTMpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTMpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTMpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0zKX0uXzQtX2xvNnN2ZntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS00KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS00KTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS00KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNCl9Ll81LV9uaGFoNDd7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTUpfS5fNi1fMXNqM2M1ZntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS02KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS02KTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS02KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNil9Ll83LV8xMTR5enJse3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTcpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTcpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTcpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS03KX0uXzgtX3RvZDZje3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTgpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTgpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTgpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS04KX0uXzktX255bWpxb3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS05KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS05KTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS05KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fZHFuaGZle3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTEwKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xMCk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMTApO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xMCl9Ll8wLV83cmVxYnR7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMCk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fMTQ5dGRwaXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzI1KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMF8yNSl9Ll8wXzUtX3o4bnc2e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV93YXBsMXV7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMF83NSk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fZHZtdTV5e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTEpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fMTR2NzJhdXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xXzUpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fMTMzcnYweXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMil9Ll8zLV8xMTFtMnVke3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTMpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0zKX0uXzQtXzFvbmZhaXR7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNCk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTQpfS5fNS1fMWoxenp6Z3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS01KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNSl9Ll82LV8xbTc3NXQ4e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTYpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS02KX0uXzctXzl6cHM2b3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS03KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNyl9Ll84LV9pNTIwcDB7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtOCk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTgpfS5fOS1fMWpleGJuMntwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS05KTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fMWlxdHQyeHtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xMCk7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTEwKX0uXzAtXzE1ZTk5MW97cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMCk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMCl9Ll8wXzI1LV9jMDhxajF7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF8yNSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMF8yNSl9Ll8wXzUtX3AxNnNkdHtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0wXzUpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTBfNSl9Ll8wXzc1LV95aTVvd2t7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF83NSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMF83NSl9Ll8xLV8xeXZ3ZHUwe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTEpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTEpfS5fMV81LV8xYzg5cDJ5e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTFfNSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMV81KX0uXzItXzE4aWJsYXV7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMik7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMil9Ll8zLV91cWJweTJ7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMyk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMyl9Ll80LV8xa2traHppe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTQpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTQpfS5fNS1fYWdmaTh7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNSk7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNSl9Ll82LV9qZm4zMWV7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNik7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNil9Ll83LV8xZWt5cHpye3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTcpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTcpfS5fOC1fMWxvMXY2c3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS04KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS04KX0uXzktXzVwaGhzd3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS05KTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS05KX0uXzEwLV9mc29janp7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMTApO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTEwKX0uXzAtXzE2dXQ2NWp7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMCl9Ll8wXzI1LV85c2J0YWF7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMF8yNSl9Ll8wXzUtX2xyc3c2eXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fanU0cGw5e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fMTRwampidXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fMTdlYTRwb3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fcWoza3Jje3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTIpfS5fMy1fMWNrczg3NXtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0zKX0uXzQtX2hoczVhZ3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS00KX0uXzUtXzd5dnprcHtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS01KX0uXzYtXzJ4NXYxZHtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS02KX0uXzctXzF4Z2wwZ3h7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtNyl9Ll84LV8xYjByb2hqe3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTgpfS5fOS1fOW5qM21me3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTkpfS5fMTAtX2MzM3d5b3twYWRkaW5nLXRvcDp2YXIoLS1zcGFjZS0xMCl9Ll8wLV9oZXYyeDN7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMCl9Ll8wXzI1LV8xZml0bnp7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMF8yNSl9Ll8wXzUtXzE1ZmhuNnJ7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtX2VqemEycntwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0wXzc1KX0uXzEtX2Vscm96NntwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fMW1haG1sMntwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0xXzUpfS5fMi1fdXNlc3hve3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTIpfS5fMy1fMTRvNWhkYXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS0zKX0uXzQtXzEwYjIzODN7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtNCl9Ll81LV8xNjQxYjJne3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTUpfS5fNi1fZmJ3cDF0e3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTYpfS5fNy1fMXdoaWRlcntwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZS03KX0uXzgtXzF3ZHMzcDJ7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtOCl9Ll85LV8xdnA3ZnFie3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTkpfS5fMTAtXzE1cmZ6eTR7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMTApfS5fMC1fMTJhYjFuZntwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wKX0uXzBfMjUtX3Z4OWJha3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMXI0NHlmbXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzUpfS5fMF83NS1fb3pvdzZ4e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fMWZqZWo5bXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xKX0uXzFfNS1fYWxueWtle3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTFfNSl9Ll8yLV90cjFrcGF7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMil9Ll8zLV8xcDU5ZzU2e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTMpfS5fNC1fY2g2OW83e3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTQpfS5fNS1fbDMxaDcxe3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTUpfS5fNi1fMXJiM2R1bHtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS02KX0uXzctXzdmc25uYXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS03KX0uXzgtXzJ5N3cxNntwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS04KX0uXzktXzFld2k0NWt7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fNDNxY2lpe3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTEwKX0uXzAtXzFvc3BlcjB7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTApfS5fMF8yNS1fZTJ4dGMwe3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzI1KX0uXzBfNS1fMXJqMHdrYntwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMF81KX0uXzBfNzUtXzF5ZGxzZXp7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTBfNzUpfS5fMS1fMWJvbmw2cHtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMSl9Ll8xXzUtX2l1ZnU4NHtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMV81KX0uXzItX3FoNTBvdntwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMil9Ll8zLV92bjBjMnB7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTMpfS5fNC1fMTBlcW9jOXtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNCl9Ll81LV9kbmRtaWN7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTUpfS5fNi1fMXJnOThmd3twYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtNil9Ll83LV9wMXA2ajZ7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTcpfS5fOC1fNnI1eXlqe3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS04KX0uXzktX3ZuYnBxZHtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtOSl9Ll8xMC1fODYxNWp7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTEwKX0uXzAtXzE1cGt6YW17bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKX0uXy0wXzI1LS0xbmE1ZHphe21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF8yNSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSl9Ll8tMF81LS0xMG52MmM0e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKX0uXy0wXzc1LS0xa28weG12e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF83NSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSl9Ll8tMS0taWdzbXlme21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS0xcWxtaXkze21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS1jeW01N3p7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS12dDFvenh7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0zKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKX0uXy00LS1kNzQzb3Z7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKX0uXy01LS00czhhdWd7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS01KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKX0uXy02LS1zY2gwNXp7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS14dnQxbTZ7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKTttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS0xZTg1b3dze21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0tNXd6OWM4e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSl9Ll8tMTAtLTFoZ3Uwend7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xMCkpO21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSl9Ll8wLV90ZXhqZnl7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSl9Ll8tMF8yNS0tY3FleDM1e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF8yNSkpfS5fLTBfNS0tMTBnenczdXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSl9Ll8tMF83NS0tOHQwbW0xe21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF83NSkpfS5fLTEtLTEyajQ2M3F7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS0xMWg5cmg2e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS1lM29nZ297bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0yKSl9Ll8tMy0tb3lwMjg1e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpfS5fLTQtLXQydWNybnttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKX0uXy01LS0xOW1memVte21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLXRsa3BoZXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xMXYwaDI1e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKTttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpfS5fLTgtLTFwMGp0cjR7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0tMWN3eXRoMHttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKX0uXy0xMC0tZHB4NGN1e21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSl9Ll8wLV8xZGp6cHBre21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSl9Ll8tMF8yNS0tMXh4YXllZ3ttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzI1KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF8yNSkpfS5fLTBfNS0tMW0ydDFjOHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKX0uXy0wXzc1LS0xMXZxYjR0e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzc1KSl9Ll8tMS0tMTBqYmVhMXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpfS5fLTFfNS0tMXUxczZpOHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS1kd3gxZzV7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMikpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS01MWgycGJ7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKX0uXy00LS1iZjByZmp7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTQpKX0uXy01LS1mODEzeDV7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKX0uXy02LS1pMnp3OTJ7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpO21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xcjFvNDlye21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS03KSl9Ll8tOC0tMTc5Ync3bnttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpfS5fLTktLWk0Y3Vya3ttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS0xazQ2NGxke21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uXzAtX2wxYTN0aHttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wKSl9Ll8tMF8yNS0tcW5hZjg1e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKX0uXy0wXzUtLTFlcmNqZ3h7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF81KSl9Ll8tMF83NS0tbjh5NjY5e21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS1lazJuYmp7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMSkpfS5fLTFfNS0tMWZibjJmOXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS0xNXYwaDBse21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS1ueDdmemR7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpfS5fLTQtLTUxb2NraXttYXJnaW4tdG9wOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSl9Ll8tNS0tOTNvdHQze21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTUpKX0uXy02LS0xZnRrOGgze21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTYpKX0uXy03LS0xcmJnaXVje21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS1oejVyYjJ7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpfS5fLTktLTFsaHhpY257bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS0xdThkdDZye21hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSl9Ll8wLV8xbmQ0eHYxe21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKX0uXy0wXzI1LS0xYThpd2kze21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKX0uXy0wXzUtLWFneWh2c3ttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKX0uXy0wXzc1LS0xcW15dGUxe21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS0xam50a2tke21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEpKX0uXy0xXzUtLXJtczl5M3ttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xXzUpKX0uXy0yLS0xbHJxZ2dle21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS0yM2Z6b297bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMykpfS5fLTQtLTFjbXNwOTF7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpfS5fLTUtLTFpYno5bmt7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLWJ1Z2hxbHttYXJnaW4tYm90dG9tOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS02KSl9Ll8tNy0tYXdnZ2dze21hcmdpbi1ib3R0b206Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS16MHY0NzN7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtOCkpfS5fLTktLTFyMXBodDJ7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtOSkpfS5fLTEwLS1odDBhN2x7bWFyZ2luLWJvdHRvbTpjYWxjKC0xICogdmFyKC0tc3BhY2UtMTApKX0uXzAtXzdzbzR1c3ttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMCkpfS5fLTBfMjUtLTFoYzhqb297bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfMjUpKX0uXy0wXzUtLTE3bWV1YTB7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNSkpfS5fLTBfNzUtLTFlc2ZxYXp7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTBfNzUpKX0uXy0xLS0xZmN6b25je21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS1vdWM1bW57bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTFfNSkpfS5fLTItLTF5OWM3MGZ7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS1hNXYzNzl7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKX0uXy00LS0xMXAwdHQ1e21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS00KSl9Ll8tNS0tMXN0eDJxbHttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLWR6eGEzbXttYXJnaW4taW5saW5lLWVuZDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpfS5fLTctLTF0aXpjNGR7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTcpKX0uXy04LS04aWR3dWN7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTgpKX0uXy05LS0xbHRsdWdke21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoLTEgKiB2YXIoLS1zcGFjZS05KSl9Ll8tMTAtLTF0bHd5bTZ7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTEwKSl9Ll8wLV8xNGh5M2Zme21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTApKX0uXy0wXzI1LS1kYm9oeHZ7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF8yNSkpfS5fLTBfNS0tMTduajlvNXttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0wXzUpKX0uXy0wXzc1LS01djM2bTN7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMF83NSkpfS5fLTEtLXJjajZjZnttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xKSl9Ll8tMV81LS1wZW1leHZ7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtMV81KSl9Ll8tMi0tdHVlNHFme21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTIpKX0uXy0zLS0xcjU1ZjFse21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTMpKX0uXy00LS1wZW5hZnJ7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNCkpfS5fLTUtLTFja2d3NGJ7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNSkpfS5fLTYtLTE1eTdoMnh7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNikpfS5fLTctLTE5dmRmaGF7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKC0xICogdmFyKC0tc3BhY2UtNykpfS5fLTgtLTMxY3FqN3ttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS04KSl9Ll8tOS0tczgycjMwe21hcmdpbi1pbmxpbmUtc3RhcnQ6Y2FsYygtMSAqIHZhcigtLXNwYWNlLTkpKX0uXy0xMC0tMTc5bGd5enttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoLTEgKiB2YXIoLS1zcGFjZS0xMCkpfS5zdGFydC1zdzlrcjdre3RleHQtYWxpZ246c3RhcnR9LmVuZC1lNmNpMXVwe3RleHQtYWxpZ246ZW5kfS5jZW50ZXItYzF2ZHYycHR7dGV4dC1hbGlnbjpjZW50ZXJ9Lmp1c3RpZnktanlmaXBpMHt0ZXh0LWFsaWduOmp1c3RpZnl9LmhpZGRlbi1oMXg5aHdmdnt2aXNpYmlsaXR5OmhpZGRlbn0udmlzaWJsZS12enlxMjNne3Zpc2liaWxpdHk6dmlzaWJsZX19LmJhc2VDc3MtYmMzbDF3Mnt0ZXh0LXRyYW5zZm9ybTp2YXIoLS10ZXh0LXRleHRUcmFuc2Zvcm0pO21hcmdpbjowfS5tb25vQ3NzLW10bXV0ajh7Zm9udC1mYW1pbHk6dmFyKC0tdGV4dC1mb250RmFtaWx5TW9ubyl9Lm51bWJlck9mTGluZXNDc3MtbjEzbmhudXF7LXdlYmtpdC1saW5lLWNsYW1wOnZhcigtLXRleHQtbnVtYmVyT2ZMaW5lcyk7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS5kaXNhYmxlZENzcy1kMWNqenowY3tvcGFjaXR5Oi41O2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmU7dG91Y2gtYWN0aW9uOm5vbmV9LnRhYnVsYXJOdW1iZXJzQ3NzLXQxbjIyNnQ2e2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uc2xhc2hlZFplcm9Dc3Mtc3RyN2lpOHtmb250LXZhcmlhbnQtbnVtZXJpYzpzbGFzaGVkLXplcm99Lm5vV3JhcENzcy1uMXV6ejJ5dnt3aGl0ZS1zcGFjZTpub3dyYXB9LnRydW5jYXRlLXQxd2J3d3gze3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0uY2xpcC1jdGFzNHoze292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt0ZXh0LW92ZXJmbG93OmNsaXB9LndyYXAtdzF2N2lkMHZ7d2hpdGUtc3BhY2U6bm9ybWFsO292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0uYnJlYWstYjFpeTJ1cmt7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZX1Ac3VwcG9ydHMgbm90IChvdmVyZmxvdy13cmFwOmFueXdoZXJlKXsuYnJlYWstYjFpeTJ1cmt7d29yZC1icmVhazpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YnJlYWstd29yZH19LmhleGFnb25Cb3JkZXJDb250YWluZXJDc3MtaDEza2E5Yjh7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjB9LmhleGFnb25Cb3JkZXJDb250YWluZXJDc3MtaDEza2E5YjhbZGF0YS1vZmZzZXQ9ZmFsc2Vde3dpZHRoOmNhbGMoMTAwJSAtIDJweCk7aGVpZ2h0OmNhbGMoMTAwJSAtIDJweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxcHgsMXB4KX0uaGV4YWdvbkJvcmRlckNvbnRhaW5lckNzcy1oMTNrYTliOFtkYXRhLW9mZnNldD10cnVlXXt0b3A6LTJweDtib3R0b206LTJweDtsZWZ0Oi0ycHg7cmlnaHQ6LTJweH0ucGF0aEVsZW1lbnRDc3MtcDFscDV1cXV7ZmlsbDpub25lO3N0cm9rZS1saW5lY2FwOnJvdW5kfS5iYXNlQ3NzLWJienA2MDV7ZGlzcGxheTpibG9ja30uY292ZXItYzFzZzl4ajl7b2JqZWN0LWZpdDpjb3Zlcn0uY29udGFpbi1jdDYzOWg2e29iamVjdC1maXQ6Y29udGFpbn0uaGV4YWdvbk92ZXJmbG93Q3NzLWgxMDZhdmI1e292ZXJmbG93OnZpc2libGV9LmZhbGxiYWNrQ3NzLWZtZDdpeGV7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb3Zlcn0ubGlnaHQgLmZhbGxiYWNrQ3NzLWZtZDdpeGV7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTWpRaUlHaGxhV2RvZEQwaU1qUWlJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lnWm1sc2JEMGlibTl1WlNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S1BISmxZM1FnZDJsa2RHZzlJakkwSWlCb1pXbG5hSFE5SWpJMElpQm1hV3hzUFNKM2FHbDBaU0l2UGdvOGNtVmpkQ0IzYVdSMGFEMGlNalFpSUdobGFXZG9kRDBpTWpRaUlHWnBiR3c5SWlNMVFqWXhOa1VpTHo0S1BHTnBjbU5zWlNCamVEMGlNVFlpSUdONVBTSXhOU0lnY2owaU15SWdabWxzYkQwaWQyaHBkR1VpTHo0S1BISmxZM1FnZUQwaU1URWlJSGs5SWpZaUlIZHBaSFJvUFNJMUlpQm9aV2xuYUhROUlqVWlJR1pwYkd3OUluZG9hWFJsSWk4K0NqeHdZWFJvSUdROUlrMDFJREUxVERndU5TQTVUREV5SURFMVNEVmFJaUJtYVd4c1BTSjNhR2wwWlNJdlBnbzhMM04yWno0Syl9LmRhcmsgLmZhbGxiYWNrQ3NzLWZtZDdpeGV7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTWpRaUlHaGxhV2RvZEQwaU1qUWlJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lnWm1sc2JEMGlibTl1WlNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S1BISmxZM1FnZDJsa2RHZzlJakkwSWlCb1pXbG5hSFE5SWpJMElpQm1hV3hzUFNKM2FHbDBaU0l2UGdvOGNtVmpkQ0IzYVdSMGFEMGlNalFpSUdobGFXZG9kRDBpTWpRaUlHWnBiR3c5SWlNNFFUa3hPVVVpTHo0S1BHTnBjbU5zWlNCamVEMGlNVFlpSUdONVBTSXhOU0lnY2owaU15SWdabWxzYkQwaUl6QkJNRUl3UkNJdlBnbzhjbVZqZENCNFBTSXhNU0lnZVQwaU5pSWdkMmxrZEdnOUlqVWlJR2hsYVdkb2REMGlOU0lnWm1sc2JEMGlJekJCTUVJd1JDSXZQZ284Y0dGMGFDQmtQU0pOTlNBeE5VdzRMalVnT1V3eE1pQXhOVWcxV2lJZ1ptbHNiRDBpSXpCQk1FSXdSQ0l2UGdvOEwzTjJaejRLKX0uY2lyY2xlLWMxb2g0eW9xe2JvcmRlci1yYWRpdXM6MTAwMDAwcHh9LnNxdWlyY2xlLXMxZXh3ZnM5e2JvcmRlci1yYWRpdXM6OHB4fS5zcXVhcmUtczExN3dwdXd7Ym9yZGVyLXJhZGl1czo0cHh9LnJlY3RhbmdsZS1yMThjajdvaSwuaGV4YWdvbi1oNGJjMjRve2JvcmRlci1yYWRpdXM6MH0uaWNvbkNzcy1pamd4bjFwe2NvbG9yOmN1cnJlbnRDb2xvcjtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtcmVuZGVyaW5nOmdlb21ldHJpY3ByZWNpc2lvbjtmbGV4LXNocmluazowO2ZvbnQtZmFtaWx5OkNvaW5iYXNlSWNvbnM7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZTtkaXNwbGF5OmJsb2NrfS5pY29uQ3NzLWlqZ3huMXA+Knt0cmFuc2l0aW9uOmZpbGwgLjE1cyBlYXNlLWluLW91dH0ueHMteDFvMnZrYTd7d2lkdGg6dmFyKC0taWNvblNpemUteHMpO2hlaWdodDp2YXIoLS1pY29uU2l6ZS14cyk7Zm9udC1zaXplOnZhcigtLWljb25TaXplLXhzKX0ucy1zbXB2cGRte3dpZHRoOnZhcigtLWljb25TaXplLXMpO2hlaWdodDp2YXIoLS1pY29uU2l6ZS1zKTtmb250LXNpemU6dmFyKC0taWNvblNpemUtcyl9Lm0tbTFqN2I0NjV7d2lkdGg6dmFyKC0taWNvblNpemUtbSk7aGVpZ2h0OnZhcigtLWljb25TaXplLW0pO2ZvbnQtc2l6ZTp2YXIoLS1pY29uU2l6ZS1tKX0ubC1sMWJyaTg2NHt3aWR0aDp2YXIoLS1pY29uU2l6ZS1sKTtoZWlnaHQ6dmFyKC0taWNvblNpemUtbCk7Zm9udC1zaXplOnZhcigtLWljb25TaXplLWwpfS5iYXNlQ3NzLWIxN3dtazhmey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWludGVyLWJnKTtib3JkZXItY29sb3I6dmFyKC0taW50ZXItYm9yZGVyQ29sb3IpOy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmJhc2VDc3MtYjE3d21rOGY6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjA7bWFyZ2luOjA7cGFkZGluZzowfS5iYXNlQ3NzLWIxN3dtazhmOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0taW50ZXItaG92ZXItYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1pbnRlci1ob3Zlci1ib3JkZXJDb2xvcil9LmJhc2VDc3MtYjE3d21rOGY6aG92ZXI+KntvcGFjaXR5OnZhcigtLWludGVyLWhvdmVyLW9wYWNpdHkpfS5iYXNlQ3NzLWIxN3dtazhmOmFjdGl2ZSwuYmFzZUNzcy1iMTd3bWs4ZlthcmlhLXByZXNzZWQ9dHJ1ZV17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnRlci1wcmVzcy1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLWludGVyLXByZXNzLWJvcmRlckNvbG9yKX0uYmFzZUNzcy1iMTd3bWs4ZjphY3RpdmU+KiwuYmFzZUNzcy1iMTd3bWs4ZlthcmlhLXByZXNzZWQ9dHJ1ZV0+KntvcGFjaXR5OnZhcigtLWludGVyLXByZXNzLW9wYWNpdHkpfS5iYXNlQ3NzLWIxN3dtazhmOmRpc2FibGVkLC5iYXNlQ3NzLWIxN3dtazhmW2FyaWEtZGlzYWJsZWQ9dHJ1ZV17b3BhY2l0eTouNTtjdXJzb3I6ZGVmYXVsdDtwb2ludGVyLWV2ZW50czpub25lO3RvdWNoLWFjdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6dmFyKC0taW50ZXItZGlzYWJsZS1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLWludGVyLWRpc2FibGUtYm9yZGVyQ29sb3IpfS5iYXNlQ3NzLWIxN3dtazhmOmZvY3Vze291dGxpbmU6bm9uZX0uYmFzZUNzcy1iMTd3bWs4Zjpmb2N1cy12aXNpYmxle291dGxpbmUtb2Zmc2V0OjJweDtvdXRsaW5lLXdpZHRoOjJweDtvdXRsaW5lLXN0eWxlOnNvbGlkO291dGxpbmUtY29sb3I6dmFyKC0tY29sb3ItYmdQcmltYXJ5KX0uYmxvY2tDc3MtYjF5dGluanR7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS50cmFuc3BhcmVudEFjdGl2ZUNzcy10MTBlaTVybzphY3RpdmUsLnRyYW5zcGFyZW50V2hpbGVJbmFjdGl2ZUNzcy10ZTVxMjNzLC50cmFuc3BhcmVudFdoaWxlSW5hY3RpdmVDc3MtdGU1cTIzczpkaXNhYmxlZCwudHJhbnNwYXJlbnRXaGlsZUluYWN0aXZlQ3NzLXRlNXEyM3NbYXJpYS1kaXNhYmxlZD10cnVlXXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpfS5zY2FsZWREb3duQ3NzLXMxbzZhbHhke3RyYW5zZm9ybTpzY2FsZSgxKX0uc2NhbGVkRG93bkNzcy1zMW82YWx4ZDphY3RpdmUsLnNjYWxlZERvd25Dc3MtczFvNmFseGRbZGF0YS1hY3RpdmU9dHJ1ZV17dHJhbnNmb3JtOnNjYWxlKC45OCl9LmJhc2VDc3MtYjFucm1vZHBbZGF0YS1hY3RpdmU9dHJ1ZV17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnRlci1wcmVzcy1iZyl9LmJhc2VDc3MtYjFucm1vZHBbZGF0YS1hY3RpdmU9dHJ1ZV0+KntvcGFjaXR5OnZhcigtLWludGVyLXByZXNzLW9wYWNpdHkpfS5iYXNlQ3NzLWIxbnJtb2RwW2RhdGEtbG9hZGluZz10cnVlXXtvcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnRlci1wcmVzcy1iZyl9LmJhc2VDc3MtYjFucm1vZHBbZGF0YS1sb2FkaW5nPXRydWVdPip7b3BhY2l0eTp2YXIoLS1pbnRlci1wcmVzcy1vcGFjaXR5KX0udHJhbnNwYXJlbnRBY3RpdmVDc3MtdDE0enNuYndbZGF0YS1hY3RpdmU9dHJ1ZV17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci10cmFuc3BhcmVudCl9LnByZXNzQ3NzLXAxN2F3cmkxe2JvcmRlci1zdHlsZTpoaWRkZW47ZmxleC1ncm93OjE7YWxpZ24taXRlbXM6c3RyZXRjaDt3aWR0aDoxMDAlO3BhZGRpbmc6MDtkaXNwbGF5OmZsZXh9Lmluc2V0Rm9jdXNSaW5nQ3NzLWkxbjRwcXNie3Bvc2l0aW9uOnJlbGF0aXZlfS5pbnNldEZvY3VzUmluZ0Nzcy1pMW40cHFzYjpmb2N1c3tvdXRsaW5lOm5vbmV9Lmluc2V0Rm9jdXNSaW5nQ3NzLWkxbjRwcXNiOmZvY3VzLXZpc2libGV7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1zdHlsZTpzb2xpZDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeSk7b3V0bGluZS1vZmZzZXQ6MH0uYmFzZUNzcy1iMWJibnBtentkaXNwbGF5OmJsb2NrfS50cnVuY2F0aW9uQ3NzLXRkYWlhNzF7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7bWluLXdpZHRoOjA7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW59Lm92ZXJmbG93Q3NzLW9udGh2Z3N7dGV4dC1vdmVyZmxvdzp1bnNldDt3aGl0ZS1zcGFjZTpub3JtYWw7b3ZlcmZsb3c6YXV0b30uaG9yaXpvbnRhbC1oYjQwbjdve2hlaWdodDoxcHh9LnZlcnRpY2FsLXYxY3ZoZHk1e3dpZHRoOjFweH0uYmFzZUNzcy1iNjc4bXg5e2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6aW5pdGlhbDstbW96LXVzZXItc2VsZWN0OmluaXRpYWw7LW1zLXVzZXItc2VsZWN0OmluaXRpYWw7dXNlci1zZWxlY3Q6aW5pdGlhbH0uYmFzZUNzcy1iNjc4bXg5OmhvdmVyPiosLmJhc2VDc3MtYjY3OG14OTphY3RpdmU+KiwuYmFzZUNzcy1iNjc4bXg5W2RhdGEtYWN0aXZlPXRydWVdPiosLmJhc2VDc3MtYjY3OG14OVtkYXRhLWxvYWRpbmc9dHJ1ZV0+KntvcGFjaXR5OjF9LmJhc2VDc3MtYjY3OG14OTpmb2N1cy12aXNpYmxle291dGxpbmUtb2Zmc2V0OjA7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMTAwKX0uY29udGFpbmVyQ3NzLWN3OXV5cGN7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7cG9zaXRpb246cmVsYXRpdmV9LmhpZGRlbkNzcy1oeTJwNTZ2e3Zpc2liaWxpdHk6aGlkZGVufS52aXNpYmxlQ3NzLXZ0M2dwcXR7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH0udmlzaWJsZUNzcy12dDNncHF0Pip7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTppbmxpbmUtZmxleH0uc3ZnQ3NzLXNxNHRqbjR7ZmxleC1ncm93OjA7ZmxleC1zaHJpbms6MDttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS5pbmRldGVybWluYXRlUHJvZ3Jlc3NDaXJjbGVDc3MtaXFjZGNhM3thbmltYXRpb246MXMgbGluZWFyIGluZmluaXRlIHNwaW4taW5kZXRlcm1pbmF0ZVByb2dyZXNzQ2lyY2xlQ3NzLWlxY2RjYTN9QGtleWZyYW1lcyBzcGluLWluZGV0ZXJtaW5hdGVQcm9ncmVzc0NpcmNsZUNzcy1pcWNkY2EzezAle3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0uYmFzZUNzcy1iOTl6cXVoe3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO3RleHQtdHJhbnNmb3JtOm5vbmU7b3V0bGluZTowO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDotbW96LWZpdC1jb250ZW50O2hlaWdodDpmaXQtY29udGVudDtmb250LXdlaWdodDo2MDA7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZTtkaXNwbGF5OmlubGluZS1mbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OnZpc2libGV9LmJsb2NrQ3NzLWI5eW94MzN7d2hpdGUtc3BhY2U6bm9ybWFsO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7ZGlzcGxheTpmbGV4fS5zcGlubmVyQ29udGFpbmVyQ3NzLXMxYmh2YmI5e2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKX0uc3RhcnROb2RlQ3NzLXMyeDdpdzV7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjA7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTEpO2Rpc3BsYXk6ZmxleH0uZW5kTm9kZUNzcy1ldWtiNmpje2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWdyb3c6MTtmbGV4LXNocmluazowO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0xKTtkaXNwbGF5OmZsZXh9Lmljb25Dc3MtaXh6bmlrN3tqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0udW5zZXROb1dyYXBDc3MtdTE0OG1ndGx7d2hpdGUtc3BhY2U6dW5zZXR9LmhpZGRlbkNzcy1oMXB4aWNuOHt2aXNpYmlsaXR5OmhpZGRlbn0ubWlkZGxlTm9kZUNzcy1tMWF2cHE1MntkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmV9LmZsdXNoQ3NzLWY2OXJ0Z2J7bWluLXdpZHRoOnVuc2V0fS5saXN0Q3NzLWwxaTVtNGo2e21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9Lml0ZW1Dc3MtaWtyYjk2cHtsaXN0LXN0eWxlOm5vbmV9LmZpbGxDc3MtZjFpbXViZGV7ZmxleDoxfS5iYXNlQ3NzLWIxcG84bW82e3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnQ7aGVpZ2h0Oi1tb3otZml0LWNvbnRlbnQ7aGVpZ2h0OmZpdC1jb250ZW50fS5pbmxpbmVTdmdDc3MtaXAxdGMwOXtmbGV4Om5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmJhc2VDc3MtYjFxcWtmYXV7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudDtoZWlnaHQ6LW1vei1maXQtY29udGVudDtoZWlnaHQ6Zml0LWNvbnRlbnQ7cG9zaXRpb246cmVsYXRpdmV9QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5tb2RhbE92ZXJsYXlSZXNwb25zaXZlQ3NzLW1zZzZlODJ7ZGlzcGxheTpub25lfX0uYmFzZUNzcy1icDNhaHA3e21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIHZhcigtLXNwYWNlLTEwKSAqIDIpO3otaW5kZXg6MztqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZX1Ac3VwcG9ydHMgKGhlaWdodDoxMDBkdmgpey5iYXNlQ3NzLWJwM2FocDd7bWF4LWhlaWdodDpjYWxjKDEwMGR2aCAtIHZhcigtLXNwYWNlLTEwKSAqIDIpfX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7Lm1vZGFsRGlhbG9nUmVzcG9uc2l2ZUNzcy1tc3RpMTZ5e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTApfX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCkgYW5kIChtYXgtd2lkdGg6MTI3OXB4KXsubW9kYWxSZXNwb25zaXZlQ3NzLW1sN3N6cmJ7bWFyZ2luLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0zKTttYXJnaW4taW5saW5lLWVuZDp2YXIoLS1zcGFjZS0zKX19QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5tb2RhbFJlc3BvbnNpdmVDc3MtbWw3c3pyYnttYXgtaGVpZ2h0OjEwMHZoO21heC1oZWlnaHQ6MTAwZHZoO21hcmdpbi1pbmxpbmUtc3RhcnQ6MDttYXJnaW4taW5saW5lLWVuZDowO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowfX0ubm9kZUNzcy1uMWhmNTY3dXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleH0uYmFzZUNzcy1iMTBmbDN6dHtwb2ludGVyLWV2ZW50czpub25lO3dpZHRoOjEwMCU7cG9zaXRpb246Zml4ZWQ7bGVmdDowfS50b2FzdENzcy10emVlOXB4e3BvaW50ZXItZXZlbnRzOmFsbH0uYmFzZUNzcy1iZ2dmcDI1e2JvcmRlcjoxLjFlbSBzb2xpZDtib3JkZXItdG9wLWNvbG9yOnZhcigtLWNvbG9yLWJnQWx0ZXJuYXRlKTtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY29sb3ItYmdBbHRlcm5hdGUpO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNvbG9yLWJnQWx0ZXJuYXRlKTtib3JkZXItcmFkaXVzOjUwJTt3aWR0aDoxMGVtO2hlaWdodDoxMGVtO2FuaW1hdGlvbjoxcyBsaW5lYXIgaW5maW5pdGUgc3Bpbi1iYXNlQ3NzLWJnZ2ZwMjU7cG9zaXRpb246cmVsYXRpdmV9QGtleWZyYW1lcyBzcGluLWJhc2VDc3MtYmdnZnAyNXswJXt0cmFuc2Zvcm06cm90YXRlKDApfXRve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LnNwaW5uZXJTdGF0dXNDc3MtczFwbGkxNTh7LXdlYmtpdC1jbGlwOnJlY3QoMCAwIDAgMCk7Y2xpcDpyZWN0KDAgMCAwIDApO2NsaXAtcGF0aDppbnNldCg1MCUpO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb3NpdGlvbjphYnNvbHV0ZTtvdmVyZmxvdzpoaWRkZW59LnBvaW50ZXJDc3MtcDFwbGl6NzM6bm90KDpkaXNhYmxlZCl7Y3Vyc29yOnBvaW50ZXJ9LnBvaW50ZXJDc3MtcDFwbGl6NzM6bm90KDotbW96LXJlYWQtb25seSl7Y3Vyc29yOnBvaW50ZXJ9LnBvaW50ZXJDc3MtcDFwbGl6NzM6bm90KDpkaXNhYmxlZCksLnBvaW50ZXJDc3MtcDFwbGl6NzM6bm90KDpyZWFkLW9ubHkpe2N1cnNvcjpwb2ludGVyfS5pbnB1dEJhc2VDc3MtaTFoejNrazB7b3BhY2l0eTowO3otaW5kZXg6MTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21hcmdpbjowO3Bvc2l0aW9uOmFic29sdXRlfS5pbnRlcmFjdGFibGVDc3MtaTFoMmdlbDN7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudDtoZWlnaHQ6LW1vei1maXQtY29udGVudDtoZWlnaHQ6Zml0LWNvbnRlbnQ7cG9zaXRpb246cmVsYXRpdmV9QHN1cHBvcnRzIHNlbGVjdG9yKDpoYXMoOmZvY3VzLXZpc2libGUpKXsuaW50ZXJhY3RhYmxlQ3NzLWkxaDJnZWwzOmhhcyg6Zm9jdXMtdmlzaWJsZSl7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1zdHlsZTpzb2xpZDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeSk7b3V0bGluZS1vZmZzZXQ6MXB4fX0uaW50ZXJhY3RhYmxlQ3NzLWkxaDJnZWwzOmFjdGl2ZT5pbnB1dDpmaXJzdC1vZi10eXBlLC5pbnRlcmFjdGFibGVDc3MtaTFoMmdlbDM6dmlzaXRlZD5pbnB1dDpmaXJzdC1vZi10eXBlLC5pbnRlcmFjdGFibGVDc3MtaTFoMmdlbDM6Zm9jdXM+aW5wdXQ6Zmlyc3Qtb2YtdHlwZSwuaW50ZXJhY3RhYmxlQ3NzLWkxaDJnZWwzOmhvdmVyPmlucHV0OmZpcnN0LW9mLXR5cGV7b3BhY2l0eTowfS5pY29uQ3NzLWkxZWo1Y2F3e3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0wXzUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5iYXNlQ3NzLWIxNnp3NGE1LmJhc2VDc3MtYjE2enc0YTV7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1jb2xvci11bmZvY3VzZWQpO2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWdyb3c6MjttaW4td2lkdGg6MDt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjJzIGVhc2UtaW4tb3V0O2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW59LmJhc2VDc3MtYjE2enc0YTUuYmFzZUNzcy1iMTZ6dzRhNTpkaXNhYmxlZCwuYmFzZUNzcy1iMTZ6dzRhNS5iYXNlQ3NzLWIxNnp3NGE1W2FyaWEtZGlzYWJsZWQ9dHJ1ZV0sLmJhc2VDc3MtYjE2enc0YTUuYmFzZUNzcy1iMTZ6dzRhNTpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWNvbG9yLXVuZm9jdXNlZCk7b3BhY2l0eToxfS5iYXNlQ3NzLWIxNnp3NGE1LmJhc2VDc3MtYjE2enc0YTU6Zm9jdXMtd2l0aGlue2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItY29sb3ItZm9jdXNlZCk7Ym94LXNoYWRvdzowIDAgMCB2YXIoLS1ib3JkZXItd2lkdGgtZm9jdXNlZCkgdmFyKC0tYm9yZGVyLWNvbG9yLWZvY3VzZWQpfS5pbnB1dEFyZWFDb250YWluZXJDc3MtaXBvZmV4Nnt3aWR0aDoxMDAlO3BhZGRpbmc6MXB4fS5wZXJzaXN0ZWRGb2N1c0Nzcy1wNnBoamVve2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItY29sb3ItZm9jdXNlZCk7Ym94LXNoYWRvdzowIDAgMCB2YXIoLS1ib3JkZXItd2lkdGgtZm9jdXNlZCkgdmFyKC0tYm9yZGVyLWNvbG9yLWZvY3VzZWQpfS5iYXNlQ3NzLWJnYmE4eHR7bWluLXdpZHRoOjA7Y29sb3I6dmFyKC0tY29sb3ItZmcpO2JhY2tncm91bmQtY29sb3I6IzAwMDA7Ym9yZGVyLWNvbG9yOiMwMDAwO2ZsZXgtZ3JvdzoyfS5iYXNlQ3NzLWJnYmE4eHQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjB9LmJhc2VDc3MtYmdiYTh4dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0uYmFzZUNzcy1iZ2JhOHh0OmZvY3Vze2JveC1zaGFkb3c6bm9uZTtib3JkZXItY29sb3I6IzAwMDA7b3V0bGluZS1zdHlsZTpub25lfS5iYXNlQ3NzLWJnYmE4eHQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3ItZmdNdXRlZCk7b3BhY2l0eToxfS5iYXNlQ3NzLWJnYmE4eHQ6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWNvbG9yLWZnTXV0ZWQpO29wYWNpdHk6MX0uYmFzZUNzcy1iZ2JhOHh0Oi1tcy1wbGFjZWhvbGRlci1zaG93bntjb2xvcjp2YXIoLS1jb2xvci1mZ011dGVkKTtvcGFjaXR5OjF9LmJhc2VDc3MtYmdiYTh4dDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY29sb3ItZmdNdXRlZCk7b3BhY2l0eToxfS5iYXNlQ3NzLWJnYmE4eHRbdHlwZT1udW1iZXJdey1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGR9LmJhc2VDc3MtYmdiYTh4dFtyZWFkb25seV06bm90KDpkaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iZ1NlY29uZGFyeSl9LmJhc2VDc3MtYmdiYTh4dFt0eXBlPXNlYXJjaF06Oi1tcy1jbGVhcnt3aWR0aDowO2hlaWdodDowO2Rpc3BsYXk6bm9uZX0uYmFzZUNzcy1iZ2JhOHh0W3R5cGU9c2VhcmNoXTo6LW1zLXJldmVhbHt3aWR0aDowO2hlaWdodDowO2Rpc3BsYXk6bm9uZX0uYmFzZUNzcy1iZ2JhOHh0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbntkaXNwbGF5Om5vbmV9LmJhc2VDc3MtYmdiYTh4dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b257ZGlzcGxheTpub25lfS5iYXNlQ3NzLWJnYmE4eHRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbntkaXNwbGF5Om5vbmV9LmJhc2VDc3MtYmdiYTh4dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbntkaXNwbGF5Om5vbmV9LmJhc2VDc3MtYmdiYTh4dDotd2Via2l0LWF1dG9maWxse2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTIwMCk7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dmFyKC0tY29sb3ItZmcpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwcyBlYXNlLWluLW91dCA1MDAwc30uYmFzZUNzcy1iZ2JhOHh0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMjAwKTstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp2YXIoLS1jb2xvci1mZyk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDBzIGVhc2UtaW4tb3V0IDUwMDBzfS5iYXNlQ3NzLWJnYmE4eHQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1c3tib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0yMDApOy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnZhcigtLWNvbG9yLWZnKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMHMgZWFzZS1pbi1vdXQgNTAwMHN9LmJhc2VDc3MtYmdiYTh4dDotd2Via2l0LWF1dG9maWxsOmFjdGl2ZXtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlclJhZGl1cy0yMDApOy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnZhcigtLWNvbG9yLWZnKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMHMgZWFzZS1pbi1vdXQgNTAwMHN9Lm9yaWdpbmFsQ29udGFpbmVyUGFkZGluZ0Nzcy1vMW16NmE1cHtwYWRkaW5nOnZhcigtLXNwYWNlLTIpfS5jb21wYWN0Q29udGFpbmVyUGFkZGluZ0Nzcy1jMWx0NTZkeHtwYWRkaW5nOnZhcigtLXNwYWNlLTEpfS5uYXRpdmVJbnB1dENvbnRhaW5lckNzcy1udmZrMjR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMik7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UtMik7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtMik7cGFkZGluZy1pbmxpbmUtZW5kOnZhcigtLXNwYWNlLTIpfS5uYXRpdmVJbnB1dENvbnRhaW5lckNzcy1udmZrMjRbZGF0YS1sYWJlbHZhcmlhbnQ9aW5zaWRlXXtwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTEpfS5uYXRpdmVJbnB1dENvbnRhaW5lckNzcy1udmZrMjRbZGF0YS1zdGFydD10cnVlXXtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzUpfS5uYXRpdmVJbnB1dENvbnRhaW5lckNzcy1udmZrMjRbZGF0YS1jb21wYWN0PXRydWVde3BhZGRpbmctdG9wOnZhcigtLXNwYWNlLTEpO3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTEpO3BhZGRpbmctaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNlLTEpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS0xKX0uaW5zaWRlTGFiZWxDc3MtaTFkcWdiY3p7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UtMSk7cGFkZGluZy1ib3R0b206MDtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMil9Lmluc2lkZUxhYmVsQ3NzU3RhcnRDc3MtaTFzY3dqa3twYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0wXzUpfS5wcmVzc2FibGVDc3MtcHZ6emNkMXstLWJvb2tlbmRSYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTQwMCk7Ym9yZGVyOm5vbmU7bWF4LXdpZHRoOjk1dnc7bWFyZ2luOjA7cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlfS5wcmVzc2FibGVDc3MtcHZ6emNkMTpmaXJzdC1jaGlsZHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib29rZW5kUmFkaXVzKTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvb2tlbmRSYWRpdXMpfS5wcmVzc2FibGVDc3MtcHZ6emNkMTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvb2tlbmRSYWRpdXMpO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9va2VuZFJhZGl1cyl9LnByZXNzYWJsZUNzcy1wdnp6Y2QxOmZvY3Vze291dGxpbmU6bm9uZX0ucHJlc3NhYmxlQ3NzLXB2enpjZDE6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9LnByZXNzYWJsZUNzcy1wdnp6Y2QxOmZvY3VzLXZpc2libGU6YmVmb3Jle2NvbnRlbnQ6IiI7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMTAwKTtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWNvbG9yLWJnTGluZVByaW1hcnkpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowfS5wcmVzc2FibGVDc3MtcHZ6emNkMTpmb2N1cy12aXNpYmxlOmZpcnN0LWNoaWxkOmJlZm9yZXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1ib29rZW5kUmFkaXVzKTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWJvb2tlbmRSYWRpdXMpfS5wcmVzc2FibGVDc3MtcHZ6emNkMTpmb2N1cy12aXNpYmxlOmxhc3QtY2hpbGQ6YmVmb3Jle2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWJvb2tlbmRSYWRpdXMpO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tYm9va2VuZFJhZGl1cyl9Lm5vcm1hbENzcy1uMWpsZWhqd3ttaW4taGVpZ2h0OjQ4cHg7bWF4LWhlaWdodDo2NHB4fS5jb21wYWN0Q3NzLWMxZmJhcXRxe21pbi1oZWlnaHQ6NDBweDttYXgtaGVpZ2h0OjU2cHh9Lm11bHRpbGluZUNzcy1tMWZiNm40Y3ttaW4taGVpZ2h0Om1pbi1jb250ZW50O21heC1oZWlnaHQ6bWF4LWNvbnRlbnR9Lm11bHRpbGluZVRleHRDc3MtbWY2OGs1ZXt0ZXh0LW92ZXJmbG93OnVuc2V0O3doaXRlLXNwYWNlOm5vcm1hbDtvdmVyZmxvdzphdXRvfS50cmFja0Nzcy10MWZuZzhxZHt3aWR0aDp2YXIoLS1jb250cm9sU2l6ZS1zd2l0Y2hXaWR0aCk7aGVpZ2h0OnZhcigtLWNvbnRyb2xTaXplLXN3aXRjaEhlaWdodCk7ZmxleC1zaHJpbms6MDtwYWRkaW5nOjFweDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvcixiYWNrZ3JvdW5kLWNvbG9yIC4ycyBsaW5lYXJ9LnRyYWNrQ3NzLXQxZm5nOHFkW2RhdGEtZmlsbGVkPXRydWVde2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0udGh1bWJDc3MtdDFsOXhsY2Z7d2lkdGg6dmFyKC0tY29udHJvbFNpemUtc3dpdGNoVGh1bWJTaXplKTtoZWlnaHQ6dmFyKC0tY29udHJvbFNpemUtc3dpdGNoVGh1bWJTaXplKTtib3JkZXI6LjVweCBzb2xpZCB2YXIoLS1jb2xvci1iZ0xpbmUpO3RvcDpjYWxjKCh2YXIoLS1jb250cm9sU2l6ZS1zd2l0Y2hIZWlnaHQpIC0gdmFyKC0tY29udHJvbFNpemUtc3dpdGNoVGh1bWJTaXplKSkgLyAyKTtsZWZ0OmNhbGMoKHZhcigtLWNvbnRyb2xTaXplLXN3aXRjaEhlaWdodCkgLSB2YXIoLS1jb250cm9sU2l6ZS1zd2l0Y2hUaHVtYlNpemUpKSAvIDIpO3Bvc2l0aW9uOmFic29sdXRlfS5iYXNlQ3NzLWIxMm1ocGdne2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5iYXNlQ3NzLWIxMm1ocGdnPmJ1dHRvbiwuYmFzZUNzcy1iMTJtaHBnZyBhe2ZsZXg6bm9uZX1AbWVkaWEgKG1pbi13aWR0aDo1NjBweCl7LmJhc2VDc3MtYjEybWhwZ2d7ZmxleC1kaXJlY3Rpb246cm93fS5iYXNlQ3NzLWIxMm1ocGdnPmJ1dHRvbiwuYmFzZUNzcy1iMTJtaHBnZyBhe2ZsZXg6MX19QG1lZGlhIChtaW4td2lkdGg6MTAyNHB4KXsuYmFzZUNzcy1iMTJtaHBnZ3tmbGV4LWRpcmVjdGlvbjpyb3d9LmJhc2VDc3MtYjEybWhwZ2c+YnV0dG9uLC5iYXNlQ3NzLWIxMm1ocGdnIGF7LXdlYmtpdC1mbGV4OmluaXRpYWw7LW1zLWZsZXg6aW5pdGlhbDtmbGV4OmluaXRpYWx9fS50cmFuc2l0aW9uQ3NzLXRoZGNpeDl7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgY3ViaWMtYmV6aWVyKC42LDAsLjE1LDEpfS5ncmFkaWVudENzcy1ndGxmN2dye3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxO3dpZHRoOmNhbGMoODBweCArIHZhcigtLXNwYWNlLTIpKTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS5ncmFkaWVudExlZnRDc3MtZzFyajB3aDF7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsY3VycmVudENvbG9yIDUwJSx2YXIoLS1jb2xvci10cmFuc3BhcmVudCkgMTAwJSk7dHJhbnNmb3JtLW9yaWdpbjowO2xlZnQ6MH0uZ3JhZGllbnRSaWdodENzcy1nMTczcmt4cXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LGN1cnJlbnRDb2xvciA1MCUsdmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpIDEwMCUpO3RyYW5zZm9ybS1vcmlnaW46MTAwJTtyaWdodDowfS5wYWRkbGVDc3MtcDFwdzE5Yjl7ei1pbmRleDozO3BhZGRpbmctdG9wOmNhbGModmFyKC0tc3BhY2UtMikgLSA3cHgpO3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2UtMikgLSA3cHgpO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGV9LmJ1dHRvbkNzcy1iMWV2NTFjbHt6LWluZGV4OjI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0ucGFkZGxlTGVmdENzcy1wcXN1MW5ve2xlZnQ6Y2FsYyh2YXIoLS1zcGFjZS0yKSAqIC0xKTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMil9LnBhZGRsZVJpZ2h0Q3NzLXBsOTNsYTN7cmlnaHQ6Y2FsYyh2YXIoLS1zcGFjZS0yKSAqIC0xKTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nLWlubGluZS1lbmQ6dmFyKC0tc3BhY2UtMil9LnByZXNzYWJsZUNzcy1wMWd5YXZ4dXt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luOjA7cGFkZGluZzowfS5pbnNldEZvY3VzUmluZ0Nzcy1pMTRzcTl5Zntwb3NpdGlvbjpyZWxhdGl2ZX0uaW5zZXRGb2N1c1JpbmdDc3MtaTE0c3E5eWY6Zm9jdXN7b3V0bGluZTpub25lfS5pbnNldEZvY3VzUmluZ0Nzcy1pMTRzcTl5Zjpmb2N1cy12aXNpYmxle291dGxpbmUtd2lkdGg6MnB4O291dGxpbmUtc3R5bGU6c29saWQ7b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1iZ1ByaW1hcnkpO291dGxpbmUtb2Zmc2V0Oi0zcHg7Ym9yZGVyLXJhZGl1czo0cHh9LnRhYmxlQ3NzLXRjZm5xaWh7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlcjpub25lO3dpZHRoOjEwMCU7bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6dGFibGV9LnRhYmxlQ3NzLXRjZm5xaWggdGhlYWQsLnRhYmxlQ3NzLXRjZm5xaWggdGJvZHksLnRhYmxlQ3NzLXRjZm5xaWggdGZvb3R7Ym9yZGVyOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfS50YWJsZUZpeGVkQ3NzLXQxMHk3Yjhhe3RhYmxlLWxheW91dDpmaXhlZH0udGFibGVDb250YWluZXJDc3MtdGR3dGN0Ynt3aWR0aDoxMDAlO2hlaWdodDp2YXIoLS10YWJsZS1oZWlnaHQpO21heC1oZWlnaHQ6dmFyKC0tdGFibGUtbWF4SGVpZ2h0KTtvdmVyZmxvdzphdXRvfS50YWJsZUNvbnRhaW5lckNzcy10ZHd0Y3RiIHRhYmxle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmcpO2NvbG9yOnZhcigtLWNvbG9yLWZnKTttaW4td2lkdGg6LW1vei1maXQtY29udGVudDttaW4td2lkdGg6Zml0LWNvbnRlbnR9LnRhYmxlQ29udGFpbmVyQm9yZGVyQ3NzLXQxYzJuNHc0e2JvcmRlcjp2YXIoLS1ib3JkZXJXaWR0aC0xMDApIHNvbGlkIHZhcigtLWNvbG9yLWJnTGluZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMjAwKX0udGFibGVWYXJpYW50R3JhcGhDc3MtdDF3cjM5NTEgdGFibGU+Y2FwdGlvbntib3JkZXItYm90dG9tOnZhcigtLWJvcmRlcldpZHRoLTEwMCkgc29saWQgdmFyKC0tY29sb3ItYmdMaW5lKX0udGFibGVWYXJpYW50R3JhcGhDc3MtdDF3cjM5NTEgdGFibGU+dGZvb3R7Ym9yZGVyLXRvcDp2YXIoLS1ib3JkZXJXaWR0aC0xMDApIHNvbGlkIHZhcigtLWNvbG9yLWJnTGluZSl9LnRhYmxlVmFyaWFudEdyYXBoQ3NzLXQxd3IzOTUxIHRhYmxlPnRyPnRkLC50YWJsZVZhcmlhbnRHcmFwaENzcy10MXdyMzk1MSB0YWJsZT50Ym9keT50cj50ZCwudGFibGVWYXJpYW50R3JhcGhDc3MtdDF3cjM5NTEgdGFibGU+dGJvZHk+dHI+dGgsLnRhYmxlVmFyaWFudEdyYXBoQ3NzLXQxd3IzOTUxIHRhYmxlPnRoZWFkPi50YWJsZS1yb3csLnRhYmxlVmFyaWFudEdyYXBoQ3NzLXQxd3IzOTUxIHRhYmxlPnRmb290PnRyPnRke2JvcmRlci1ib3R0b206dmFyKC0tYm9yZGVyV2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jb2xvci1iZ0xpbmUpO2JvcmRlci1yaWdodDp2YXIoLS1ib3JkZXJXaWR0aC0xMDApIHNvbGlkIHZhcigtLWNvbG9yLWJnTGluZSl9LnRhYmxlVmFyaWFudEdyYXBoQ3NzLXQxd3IzOTUxIHRhYmxlPnRib2R5PnRyPnRoLC50YWJsZVZhcmlhbnRHcmFwaENzcy10MXdyMzk1MSB0YWJsZT50aGVhZD50cj50aHtib3gtc2hhZG93Omluc2V0IDBweCAtMXB4IDBweCAwcHggdmFyKC0tY29sb3ItYmdMaW5lKTtib3JkZXItcmlnaHQ6dmFyKC0tYm9yZGVyV2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jb2xvci1iZ0xpbmUpfS50YWJsZVZhcmlhbnRHcmFwaENzcy10MXdyMzk1MSB0YWJsZT50Ym9keT50cjpsYXN0LWNoaWxkPnRoLC50YWJsZVZhcmlhbnRHcmFwaENzcy10MXdyMzk1MSB0YWJsZT50Ym9keT50cjpsYXN0LWNoaWxkPnRkLC50YWJsZVZhcmlhbnRHcmFwaENzcy10MXdyMzk1MSB0YWJsZT50Zm9vdD50cjpsYXN0LWNoaWxkPnRke2JvcmRlci1ib3R0b206bm9uZX0udGFibGVWYXJpYW50R3JhcGhDc3MtdDF3cjM5NTEgdGFibGU+dGhlYWQ+dHI+dGg6bGFzdC1jaGlsZCwudGFibGVWYXJpYW50R3JhcGhDc3MtdDF3cjM5NTEgdGFibGU+dGJvZHk+dHI+dGg6bGFzdC1jaGlsZCwudGFibGVWYXJpYW50R3JhcGhDc3MtdDF3cjM5NTEgdGFibGU+dGJvZHk+dHI+dGQ6bGFzdC1jaGlsZCwudGFibGVWYXJpYW50R3JhcGhDc3MtdDF3cjM5NTEgdGFibGU+dGhlYWQ+LnRhYmxlLXJvdzpsYXN0LWNoaWxkLC50YWJsZVZhcmlhbnRHcmFwaENzcy10MXdyMzk1MSB0YWJsZT50Zm9vdD50cj50ZDpsYXN0LWNoaWxke2JvcmRlci1yaWdodDpub25lfS50YWJsZVZhcmlhbnRSdWxlZENzcy10MnBxdG10IHRhYmxlPmNhcHRpb257Ym9yZGVyLWJvdHRvbTp2YXIoLS1ib3JkZXJXaWR0aC0xMDApIHNvbGlkIHZhcigtLWNvbG9yLWJnTGluZSl9LnRhYmxlVmFyaWFudFJ1bGVkQ3NzLXQycHF0bXQgdGFibGU+dGZvb3R7Ym9yZGVyLXRvcDp2YXIoLS1ib3JkZXJXaWR0aC0xMDApIHNvbGlkIHZhcigtLWNvbG9yLWJnTGluZSl9LnRhYmxlVmFyaWFudFJ1bGVkQ3NzLXQycHF0bXQgdGFibGU+dHI+dGQsLnRhYmxlVmFyaWFudFJ1bGVkQ3NzLXQycHF0bXQgdGFibGU+dGJvZHk+dHI+dGgsLnRhYmxlVmFyaWFudFJ1bGVkQ3NzLXQycHF0bXQgdGFibGU+dGJvZHk+dHI+dGQsLnRhYmxlVmFyaWFudFJ1bGVkQ3NzLXQycHF0bXQgdGFibGU+dGZvb3Q+dHI+dGR7Ym9yZGVyLWJvdHRvbTp2YXIoLS1ib3JkZXJXaWR0aC0xMDApIHNvbGlkIHZhcigtLWNvbG9yLWJnTGluZSl9LnRhYmxlVmFyaWFudFJ1bGVkQ3NzLXQycHF0bXQgdGFibGU+dGhlYWQ+dHI+dGh7Ym94LXNoYWRvdzppbnNldCAwcHggLTFweCAwcHggMHB4IHZhcigtLWNvbG9yLWJnTGluZSl9LnRhYmxlVmFyaWFudFJ1bGVkQ3NzLXQycHF0bXQgdGFibGU+dGJvZHk+dHI6bGFzdC1jaGlsZD50aCwudGFibGVWYXJpYW50UnVsZWRDc3MtdDJwcXRtdCB0YWJsZT50Ym9keT50cjpsYXN0LWNoaWxkPnRkLC50YWJsZVZhcmlhbnRSdWxlZENzcy10MnBxdG10IHRhYmxlPnRmb290PnRyOmxhc3QtY2hpbGQ+dGR7Ym9yZGVyOm5vbmV9LnRydW5jYXRpb25Dc3MtdDF4OTNtbnN7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7bWluLXdpZHRoOjA7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW59LnRhYmxlQ2VsbENzcy10MXRtMDBuN3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfS50YWJsZUhlYWRlckNlbGxDc3MtdHVxYnNlZCwudGFibGVGb290ZXJDZWxsQ3NzLXQxZ3duZHpwe2NvbG9yOnZhcigtLWNvbG9yLWZnTXV0ZWQpfS50YWJsZU92ZXJmbG93V2lkdGhDc3MtdDFsM3lvbzh7bWF4LXdpZHRoOjB9LnRhYmxlU3RpY2t5Q3NzLXQ2ajY4MTN7ei1pbmRleDoxO3Bvc2l0aW9uOnN0aWNreTt0b3A6MH0udGFibGVSb3dDc3MtdDFjbmN1NDM6bnRoLWNoaWxkKG4pe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmcpO2JvcmRlcjowO3BhZGRpbmc6MH0udGFibGVSb3dDc3MtdDFjbmN1NDM+dGh7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS50YWJsZVJvd0hvdmVyQ3NzLXRnMXV0ZGc6bnRoLWNoaWxkKG4pOmZvY3VzLC50YWJsZVJvd0hvdmVyQ3NzLXRnMXV0ZGc6bnRoLWNoaWxkKG4pOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSh2YXIoLS1ncmF5NSksLjM1KX0uY29udGFpbmVyQ3NzLWNiNnlwYnl7aXNvbGF0aW9uOmlzb2xhdGV9LnNjcm9sbENvbnRhaW5lckNzcy1za2c5eWNqey13ZWJraXQtc2Nyb2xsYmFyLXdpZHRoOm5vbmU7LW1vei1zY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtc2Nyb2xsYmFyLXdpZHRoOm5vbmU7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9LnNjcm9sbENvbnRhaW5lckNzcy1za2c5eWNqOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9fQo="}},"time_used":15,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CvaPVRgs2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.592Z","timestamp":1785108244592,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CvaPVRgs2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:23 GMT\r\nvary: accept-encoding\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ps69cdVBRN2jVz8XnbpBEgeEN%2B4pjHhD0fsfo%2FSNdhZxF0kpvVlQr26UZZq18c1RRulm5JD39xE6%2B1r21gvRgNAjsjWaNDlcTWqL6MvA1IIpJ9NZ5AqZ5co4b6noWXoSkzq8n87A3RFySEnGL6UW\"}]}\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 62f0a5fbe0a5b1cda7f4b8f287366cb4.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: LKYeusCZjypchS2KwX-C0-OKki1kry1X_YjECYOCKKQTZAfxa4jnyg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\netag: W/\"5fae3d41cc67a9e9fa509f29851154f7\"\r\ncontent-encoding: gzip\r\ncf-ray: a21727e0bdaa0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":868,"size_decoded":1562,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (828)","md5":"5fae3d41cc67a9e9fa509f29851154f7","sha1":"75a79fc22b9514fec1a882b49dffa7a2517df7ab","sha256":"ee1be9747f3282bdc84a44bd4370613c393cab150cc2214499006a49b8c61924","sha512":"461dcd3a5c645ca2438a8e7658337bcb418ac4616b9936a58a349ce46d0628bbe133f9d6af742c47bbe7428cf4f14fc900ff9658ef14014f35db970af1ed2212","ssdeep":"","tlshash":"c411ccc665f43bc0682b19adc13b810e3b5fa16e958d0a70e434627d2b646b47223fcb","first_seen":"2026-07-26T23:24:50.263953Z","last_seen":"2026-07-26T23:25:46.894896Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGU4ZTk4M2MxLWVkMWQtNDY0NS05MDlhLTQ1NGJkNTNhOTU1YmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWU4ZTk4M2MxLWVkMWQtNDY0NS05MDlhLTQ1NGJkNTNhOTU1YmApfSkoKX1jYXRjaHt9aW1wb3J0e2ZmIGFzIGV9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciB0PWUoKSxuPXtzcGFuOmZ1bmN0aW9uKHtjaGlsZHJlbjplLC4uLm59KXtyZXR1cm4oMCx0LmpzeCkoYHNwYW5gLHsuLi5uLGNoaWxkcmVuOmV9KX0sZGl2OmZ1bmN0aW9uKHtjaGlsZHJlbjplLC4uLm59KXtyZXR1cm4oMCx0LmpzeCkoYGRpdmAsey4uLm4sY2hpbGRyZW46ZX0pfSxtYWluOmZ1bmN0aW9uKHtjaGlsZHJlbjplLC4uLm59KXtyZXR1cm4oMCx0LmpzeCkoYG1haW5gLHsuLi5uLGNoaWxkcmVuOmV9KX19O2Z1bmN0aW9uIHIoe3RhZ05hbWU6ZSxjaGlsZHJlbjpyLGNsYXNzTmFtZTppLGFzOmE9YHNwYW5gfSl7bGV0IG89blthXXx8bi5zcGFuLHM9eyJkYXRhLXN5bnRoZXRpYy1pZCI6ZSxjbGFzc05hbWU6aX07cmV0dXJuIGU/KDAsdC5qc3gpKG8sey4uLnMsY2hpbGRyZW46cn0pOigwLHQuanN4KSh0LkZyYWdtZW50LHtjaGlsZHJlbjpyfSl9ZXhwb3J0e3IgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQ3ZhUFZSZ3MyLmpzLm1hcA=="}},"time_used":128,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":128,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BAVtw-MY.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.729Z","timestamp":1785108244729,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_BAVtw-MY.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 866\r\nlast-modified: Sun, 26 Jul 2026 22:31:15 GMT\r\netag: \"86fe8014d4360a7cdccdf2f8c12161b0\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 37033dfd15a7c41505f3b46a193d0f06.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: 9JvrPankgL0ESxauOZvsBH5A8YY98CMKSRUdPd2Sdt4rv6tcpxKcoQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=UJmQG8eNgkwk8YjbOgrHTrLs6KlQGym6WsUY3T17XcSrY%2B%2F25pn9rhMqJ9Pzi%2Bi5VvOSK655Or6e0fQI%2FHPn6TNW%2F20fT6Gxvd3b%2FZJVo8Xu0KbZ8gfH%2F3RD%2FO8BS2zKoyczBUaglTO8ZR%2B28Gcl\"}]}\r\ncf-ray: a21727e19fa30883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":2039,"size_decoded":2021,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (2000)","md5":"f4f92c7a9317b6b6f9d7a24f19fd1af7","sha1":"e6c252f8f8cc9139e5acc19f6aa412155d477bf2","sha256":"b315c1d1f5eab3ace17a26b95e221c2d3f6fda6127057f57dc266519d6f85a26","sha512":"4c225c58d8cd3f5fb7f5a17c91b4b5618431ae1e44fb0ff415b0bb668feb787a33da758d6a8c155394cbb05db4ff32d1673c13bd2d8eaa6059e7afb76853bfea","ssdeep":"","tlshash":"134144c477f8fff240e09355847fae02f1182523687cb511f760eea09a6495784a8a23","first_seen":"2026-07-26T23:24:50.265929Z","last_seen":"2026-07-26T23:25:46.913327Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDFhYjY3MWRlLTNlZjMtNDUwZS05ZmUyLWExMTcwYjBhMDNmNGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTFhYjY3MWRlLTNlZjMtNDUwZS05ZmUyLWExMTcwYjBhMDNmNGApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsZmYgYXMgdCxoZiBhcyBuLG9kIGFzIHJ9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBpPWUobigpKSxhPXQoKSxvPVtgYXNgLGBmb250YF07ZnVuY3Rpb24gcyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGMoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/cyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7bChlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpzKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBsKGUsdCxuKXtyZXR1cm4odD11KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHUoZSl7dmFyIHQ9ZChlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBkKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gZihlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG4scixpPXAoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIHAoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmRleE9mKHIpIT09LTEpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufXZhciBtPWBzcGFuYCxoPSgwLGkuZm9yd2FyZFJlZikoKGUsdCk9PntsZXR7YXM6bixmb250Omk9YGRpc3BsYXkxYH09ZSxzPWYoZSxvKTtyZXR1cm4oMCxhLmpzeCkocixjKHtyZWY6dCxhczpuPz9tLGZvbnQ6aX0scykpfSk7aC5kaXNwbGF5TmFtZT1gVGV4dERpc3BsYXkxYDtleHBvcnR7aCBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19CQVZ0dy1NWS5qcy5tYXA="}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"as.coinbase.com/metrics","fqdn":"as.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.873Z","timestamp":1785108244873,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /metrics HTTP/1.1\r\nHost: as.coinbase.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.coinbase.com/\r\nContent-Type: text/plain;charset=UTF-8\r\nContent-Length: 2743\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":2743,"data":"{\"metrics\":[{\"metric_name\":\"kill_switch_initialized\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"cds_version\":\"7.x\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"page_key\":\"homepage\",\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"perf_redirect_time\",\"page_path\":\"/\",\"value\":0,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"page_key\":\"homepage\",\"save_data\":false,\"service_worker\":\"supported\",\"is_perf_metric\":true,\"cds_version\":\"7.x\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"histogram\"},{\"metric_name\":\"perf_web_vitals_fcp_good\",\"page_path\":\"/\",\"value\":1,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"page_key\":\"homepage\",\"save_data\":false,\"service_worker\":\"supported\",\"is_perf_metric\":true,\"cds_version\":\"7.x\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"count\"},{\"metric_name\":\"perf_web_vitals_fcp\",\"page_path\":\"/\",\"value\":344,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"page_key\":\"homepage\",\"save_data\":false,\"service_worker\":\"supported\",\"is_perf_metric\":true,\"cds_version\":\"7.x\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"distribution\"},{\"metric_name\":\"perf_storage_estimate_caches\",\"page_path\":\"/\",\"value\":null,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"page_key\":\"homepage\",\"save_data\":false,\"service_worker\":\"supported\",\"is_perf_metric\":true,\"cds_version\":\"7.x\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"histogram\"},{\"metric_name\":\"perf_storage_estimate_indexed_db\",\"page_path\":\"/\",\"value\":null,\"tags\":{\"authed\":\"false\",\"platform\":\"web\",\"release_stage\":\"production\",\"is_low_end_device\":false,\"is_low_end_experience\":false,\"page_key\":\"homepage\",\"save_data\":false,\"service_worker\":\"supported\",\"is_perf_metric\":true,\"cds_version\":\"7.x\",\"locale\":\"en\",\"deviceClass\":\"unknown\",\"user_tier\":null,\"project_name\":\"consumer\",\"version_name\":\"de89472f041857c92d39c517b49c360b7e08e578\"},\"type\":\"histogram\"}]}"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-length: 0\r\naccess-control-allow-origin: *\r\nserver: cloudflare\r\nx-content-type-options: nosniff\r\ntrace-id: 2596435543030152206\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nset-cookie: cb_dm=948bbf92-7fdd-47bc-8f9e-0c1ca4830a3a; Path=/; Domain=coinbase.com; Expires=Sat, 26 Jul 2036 23:24:04 GMT; HttpOnly; Secure\n__cf_bm=2DK1hfeD_.70zg9SP__.FNfhq4ixlP66gS7f71..RkM-1785108244.8788612-1.0.1.1-YPt6QmElLVswcF3K5Gr9kmA2Vj.z3yzpwCK.EOWp0tBk_7simQ1S0IZbcIaTw8iNU9yNbH8ZGBuGtAHbWPlqg5Q6MQJQYm67QhYWfukKnhn8n5wrTwHl_dY5IihUw3Or; HttpOnly; SameSite=None; Secure; Path=/; Domain=coinbase.com; Expires=Sun, 26 Jul 2026 23:54:04 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=BN9b4Yo9YI9ekZYXWsvfNxUiwkIJmh5Ob43xEJ3Em7OIC9IzI1i90Q0HjB2msK55CtH1qSgRjooORTSQZPOu%2FHf61I%2FYMskDBdi79Wt54rcAoJTRaGa2icnlfmWV1SpnJg%3D%3D\"}]}\r\ncf-ray: a21727e27c261525-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":0,"size_decoded":4386,"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-27T02:51:03.003348Z","times_seen":17554215,"resource_available":true,"data":""}},"time_used":107,"timings":{"blocked":0,"dns":3,"connect":1,"send":0,"wait":104,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/consent/01956191-791b-769a-8313-3683f5e22e0d/otSDKStub.js","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:05.564Z","timestamp":1785108245564,"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":"cookielaw.org","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:47:21 GMT","end":"Tue, 20 Oct 2026 23:47:08 GMT"},"fingerprint":{"sha1":"BE:65:35:7C:E3:8D:B8:0C:7D:40:51:C7:4B:EE:56:FE:FD:2D:ED:91","sha256":"D6:A8:FD:24:40:A2:7D:0B:B5:73:08:9C:B2:AC:6E:1F:84:CC:D4:09:7B:BA:22:E8:A5:38:A4:10:29:65:88:5C"}}},"request":{"raw":"GET /consent/01956191-791b-769a-8313-3683f5e22e0d/otSDKStub.js HTTP/1.1\r\nHost: cdn.cookielaw.org\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.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:05 GMT\r\ncontent-type: application/javascript\r\ncf-ray: a21727e6d8d132fa-OSL\r\ncf-cache-status: HIT\r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\nage: 59134\r\ncache-control: public, max-age=86400\r\ncontent-encoding: gzip\r\netag: 0x8DEE7BE936269DF\r\nexpires: Mon, 27 Jul 2026 23:24:05 GMT\r\nlast-modified: Wed, 22 Jul 2026 06:58:03 GMT\r\nserver: cloudflare\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\naccess-control-expose-headers: x-ms-request-id,Server,x-ms-version,Content-Type,Content-Encoding,Cache-Control,ETag,Last-Modified,Content-MD5,x-ms-lease-status,x-ms-blob-type,Content-Length,Date,Transfer-Encoding, X-OneTrust-IsBot\r\ncontent-md5: qJ6GYmcnndS61HJCgOSorA==\r\ncross-origin-resource-policy: cross-origin, cross-origin\r\nx-content-type-options: nosniff\r\nx-onetrust-isbot: true\r\nx-ms-blob-type: BlockBlob\r\nx-ms-lease-status: unlocked\r\nx-ms-request-id: 22ab403a-c01e-00dd-38a7-19c024000000\r\nx-ms-version: 2009-09-19\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":36607,"size_decoded":13318,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (561)","md5":"97a095a05818c932f8cfad4cf5414796","sha1":"79d495a3e2145a5c9c971d8b8da1507649d735c1","sha256":"8f55f61e22439b32073283b9f67f3a83069757abd911a3f7a945e81a4f470185","sha512":"3659e54816e2048a893dcd20bcdb8c70c4e5447b554552395ca2e9fa99669a341d203815302d37345712b1360af5a31ed2dda3d881c86a98e796f019a4ffcfca","ssdeep":"768:Q3iEuyLXmkzRhnOZgu1K3+mD/9GI4YiuXf93mVUWrq:QSET31Yj83+S4Y59WV9W","tlshash":"b8f21b8ab1416a3447c2a5ace93f4317b23bb56d74c4c078b888d8f11da9c4f1577bba","first_seen":"2026-03-27T09:30:06.286502Z","last_seen":"2026-07-26T23:25:46.904959Z","times_seen":34,"resource_available":true,"data":"ZnVuY3Rpb24gRyhtKXt2YXIgcj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiByPG0ubGVuZ3RoP3tkb25lOiExLHZhbHVlOm1bcisrXX06e2RvbmU6ITB9fX12YXIgSj0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKG0scix0KXtpZihtPT1BcnJheS5wcm90b3R5cGV8fG09PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIG07bVtyXT10LnZhbHVlO3JldHVybiBtfTsKZnVuY3Rpb24gSyhtKXttPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsbSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIHI9MDtyPG0ubGVuZ3RoOysrcil7dmFyIHQ9bVtyXTtpZih0JiZ0Lk1hdGg9PU1hdGgpcmV0dXJuIHR9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9dmFyIE89Syh0aGlzKTtmdW5jdGlvbiBQKG0scil7aWYocilhOnt2YXIgdD1PO209bS5zcGxpdCgiLiIpO2Zvcih2YXIgdj0wO3Y8bS5sZW5ndGgtMTt2Kyspe3ZhciB5PW1bdl07aWYoISh5IGluIHQpKWJyZWFrIGE7dD10W3ldfW09bVttLmxlbmd0aC0xXTt2PXRbbV07cj1yKHYpO3IhPXYmJm51bGwhPXImJkoodCxtLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cn0pfX0KUCgiU3ltYm9sIixmdW5jdGlvbihtKXtmdW5jdGlvbiByKEIpe2lmKHRoaXMgaW5zdGFuY2VvZiByKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3JldHVybiBuZXcgdCh2KyhCfHwiIikrIl8iK3krKyxCKX1mdW5jdGlvbiB0KEIseil7dGhpcy4kanNjb21wJHN5bWJvbCRpZF89QjtKKHRoaXMsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnp9KX1pZihtKXJldHVybiBtO3QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGpzY29tcCRzeW1ib2wkaWRffTt2YXIgdj0ianNjb21wX3N5bWJvbF8iKygxRTkqTWF0aC5yYW5kb20oKT4+PjApKyJfIix5PTA7cmV0dXJuIHJ9KTsKUCgiU3ltYm9sLml0ZXJhdG9yIixmdW5jdGlvbihtKXtpZihtKXJldHVybiBtO209U3ltYm9sKCJTeW1ib2wuaXRlcmF0b3IiKTtmb3IodmFyIHI9IkFycmF5IEludDhBcnJheSBVaW50OEFycmF5IFVpbnQ4Q2xhbXBlZEFycmF5IEludDE2QXJyYXkgVWludDE2QXJyYXkgSW50MzJBcnJheSBVaW50MzJBcnJheSBGbG9hdDMyQXJyYXkgRmxvYXQ2NEFycmF5Ii5zcGxpdCgiICIpLHQ9MDt0PHIubGVuZ3RoO3QrKyl7dmFyIHY9T1tyW3RdXTsiZnVuY3Rpb24iPT09dHlwZW9mIHYmJiJmdW5jdGlvbiIhPXR5cGVvZiB2LnByb3RvdHlwZVttXSYmSih2LnByb3RvdHlwZSxtLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gUShHKHRoaXMpKX19KX1yZXR1cm4gbX0pO2Z1bmN0aW9uIFEobSl7bT17bmV4dDptfTttW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307cmV0dXJuIG19CihmdW5jdGlvbihtKXtmdW5jdGlvbiByKGEsYixjLGQpe3JldHVybiBuZXcgKGM9Y3x8UHJvbWlzZSkoZnVuY3Rpb24oZSxmKXtmdW5jdGlvbiBrKG4pe3RyeXt3KGQubmV4dChuKSl9Y2F0Y2goQSl7ZihBKX19ZnVuY3Rpb24gcShuKXt0cnl7dyhkLnRocm93KG4pKX1jYXRjaChBKXtmKEEpfX1mdW5jdGlvbiB3KG4pe3ZhciBBO24uZG9uZT9lKG4udmFsdWUpOigoQT1uLnZhbHVlKWluc3RhbmNlb2YgYz9BOm5ldyBjKGZ1bmN0aW9uKEgpe0goQSl9KSkudGhlbihrLHEpfXcoKGQ9ZC5hcHBseShhLGJ8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIHQoYSxiKXtmdW5jdGlvbiBjKHcpe3JldHVybiBmdW5jdGlvbihuKXtuPVt3LG5dO2lmKGQpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7az1xJiZuW3E9MF0/MDprOyl0cnl7aWYoZD0xLGUmJihmPTImblswXT9lLnJldHVybjpuWzBdP2UudGhyb3d8fCgoZj1lLnJldHVybikmJgpmLmNhbGwoZSksMCk6ZS5uZXh0KSYmIShmPWYuY2FsbChlLG5bMV0pKS5kb25lKXJldHVybiBmO3N3aXRjaChlPTAsKG49Zj9bMiZuWzBdLGYudmFsdWVdOm4pWzBdKXtjYXNlIDA6Y2FzZSAxOmY9bjticmVhaztjYXNlIDQ6cmV0dXJuIGsubGFiZWwrKyx7dmFsdWU6blsxXSxkb25lOiExfTtjYXNlIDU6ay5sYWJlbCsrO2U9blsxXTtuPVswXTtjb250aW51ZTtjYXNlIDc6bj1rLm9wcy5wb3AoKTtrLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKGY9MDwoZj1rLnRyeXMpLmxlbmd0aCYmZltmLmxlbmd0aC0xXSkmJig2PT09blswXXx8Mj09PW5bMF0pKXtrPTA7Y29udGludWV9aWYoMz09PW5bMF0mJighZnx8blsxXT5mWzBdJiZuWzFdPGZbM10pKWsubGFiZWw9blsxXTtlbHNlIGlmKDY9PT1uWzBdJiZrLmxhYmVsPGZbMV0pay5sYWJlbD1mWzFdLGY9bjtlbHNle2lmKCEoZiYmay5sYWJlbDxmWzJdKSl7ZlsyXSYmay5vcHMucG9wKCk7ay50cnlzLnBvcCgpO2NvbnRpbnVlfWsubGFiZWw9CmZbMl07ay5vcHMucHVzaChuKX19bj1iLmNhbGwoYSxrKX1jYXRjaChBKXtuPVs2LEFdLGU9MH1maW5hbGx5e2Q9Zj0wfWlmKDUmblswXSl0aHJvdyBuWzFdO3JldHVybnt2YWx1ZTpuWzBdP25bMV06dm9pZCAwLGRvbmU6ITB9fX12YXIgZCxlLGYsaz17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZmWzBdKXRocm93IGZbMV07cmV0dXJuIGZbMV19LHRyeXM6W10sb3BzOltdfSxxPU9iamVjdC5jcmVhdGUoKCJmdW5jdGlvbiI9PXR5cGVvZiBJdGVyYXRvcj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIHEubmV4dD1jKDApLHEudGhyb3c9YygxKSxxLnJldHVybj1jKDIpLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihxW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHF9ZnVuY3Rpb24gdigpe3ZhciBhPXRoaXM7dGhpcy5pbXBsZW1lbnRUaGVQb2x5ZmlsbD1mdW5jdGlvbigpe3ZhciBiPUVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZTsKRWxlbWVudC5wcm90b3R5cGUuc2V0QXR0cmlidXRlPWZ1bmN0aW9uKGMsZCl7dmFyIGU9InN0cmluZyI9PXR5cGVvZiBjP2MudG9Mb3dlckNhc2UoKToiIjtpZigic3R5bGUiIT09ZSYmYi5hcHBseSh0aGlzLFtjLGRdKSwic3R5bGUiIT09ZXx8ZHx8dGhpcy5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksInN0eWxlIj09PWUmJmQpe3RoaXMucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpO3ZhciBmO2M9YS5zdHJUb09iaihkKTtmb3IoZiBpbiBjKXRoaXMuc3R5bGVbZl09Y1tmXX19fX1mdW5jdGlvbiB5KCl7fWZ1bmN0aW9uIEIoYSxiLGMpe2Z1bmN0aW9uIGQoayl7cmV0dXJuIGs/KCI7IiE9PShrPWsudHJpbSgpKS5jaGFyQXQoay5sZW5ndGgtMSkmJihrKz0iOyIpLGsudHJpbSgpKTpudWxsfXZvaWQgMD09PWMmJihjPSExKTt2YXIgZT1kKGEuZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSxmPWQoYik7Yj0iIjtiPWMmJmU/ZnVuY3Rpb24oKXtmb3IodmFyIGs9ZS5zcGxpdCgiOyIpLmNvbmNhdChmLnNwbGl0KCI7IikpLmZpbHRlcihmdW5jdGlvbihIKXtyZXR1cm4gMCE9PQpILmxlbmd0aH0pLHE9IiIsdz0iIixuPWsubGVuZ3RoLTE7MDw9bjtuLS0pe3ZhciBBPWtbbl0uc3Vic3RyaW5nKDAsa1tuXS5pbmRleE9mKCI6IikrMSkudHJpbSgpOzA+cS5pbmRleE9mKEEpJiYocSs9QSx3Kz1rW25dKyI7Iil9cmV0dXJuIHd9KCk6ZjthLnNldEF0dHJpYnV0ZSgic3R5bGUiLGIpfWZ1bmN0aW9uIHooKXt9ZnVuY3Rpb24gbCgpe3ZhciBhPXRoaXM7dGhpcy5jaGFyc2V0PXRoaXMuY3Jvc3NPcmlnaW49dGhpcy5pYWJUeXBlPW51bGw7dGhpcy50b3RhbEFwaT0xO3RoaXMucmVxdWVzdGVkQXBpQ291bnQ9MDt0aGlzLmFwaVJlc3VsdD17ZG9tYWluRGF0YTpudWxsLHByZWZlcmVuY2VzOm51bGx9O3RoaXMuZ3Jwc1N5bmNlZD1bXTt0aGlzLmlzQW1wPXRoaXMuaXNHYWNTeW5jUmVxdWlyZWQ9dGhpcy5pc0lhYlN5bmNSZXF1aXJlZD0hMTt0aGlzLmFtcERhdGE9e307dGhpcy5pc1ByZXZpZXc9dGhpcy5pc1Jlc2V0PSExO3RoaXMubm9uY2U9dGhpcy5nZW9Gcm9tVXJsPSIiOwp0aGlzLmNyZWF0ZUxvZ2dlZG91dFRyYW5zPXRoaXMudXNlckhhc1Byb2ZpbGU9dGhpcy5wcmV2VXNlcldhc0Fub249dGhpcy5mb3JjZUNyZWF0ZVRyeExvY2FsQ29uc2VudElzR3JlYXRlcj10aGlzLmNoZWNrTG9jYWxDb25zZW50Rm9ySWFiUHVycG9zZXM9dGhpcy5jYXJyeU92ZXJBbm9ueW1vdXNDb25zZW50PXRoaXMuY29uc2VudEdpdmVuPXRoaXMuc2V0QXR0cmlidXRlUG9seWZpbGxJc0FjdGl2ZT0hMTt0aGlzLmFkZEJhbm5lclNES1NjcmlwdD1mdW5jdGlvbihiKXtyKGEsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBjLGQsZSxmLGs7cmV0dXJuIHQodGhpcyxmdW5jdGlvbihxKXtzd2l0Y2gocS5sYWJlbCl7Y2FzZSAwOnJldHVybigiSUFCMiI9PT0oYz10aGlzLmdldFJlZ2lvblNldChiKSkuVHlwZXx8IklBQjJWMiI9PT1jLlR5cGU/KHRoaXMuaWFiVHlwZT1jLlR5cGUsdGhpcy5pbnRpYWxpemVJYWJTdHViKCkpOnRoaXMucmVtb3ZlVGNmKCksYy5Jc0dQUEVuYWJsZWQ/CkwuaW5pdCgpOkwucmVtb3ZlR3BwQXBpKCksZD1nLnN0dWJTY3JFbC5jbG9uZU5vZGUoITApLGU9Zy5zdG9yYWdlQmFzZVVSTCsiL3NjcmlwdHRlbXBsYXRlcy8iK2IuVmVyc2lvbisiLyIrZy5zZGtOYW1lLFsiY2hhcnNldCIsImRhdGEtbGFuZ3VhZ2UiLCJkYXRhLWRvY3VtZW50LWxhbmd1YWdlIiwiZGF0YS1kb21haW4tc2NyaXB0IiwiY3Jvc3NvcmlnaW4iXS5mb3JFYWNoKGZ1bmN0aW9uKHcpe2cuc3R1YlNjckVsLmdldEF0dHJpYnV0ZSh3KSYmZC5zZXRBdHRyaWJ1dGUodyxnLnN0dWJTY3JFbC5nZXRBdHRyaWJ1dGUodykpfSksdGhpcy5jcm9zc09yaWdpbj1nLnN0dWJTY3JFbC5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIil8fG51bGwsdGhpcy5jaGFyc2V0PWcuc3R1YlNjckVsLmdldEF0dHJpYnV0ZSgiY2hhcnNldCIpfHxudWxsLHRoaXMuaXNBbXA9ISFnLnN0dWJTY3JFbC5nZXRBdHRyaWJ1dGUoImFtcCIpLGcuc3R1YlNjckVsLmdldEF0dHJpYnV0ZSgiaW50ZWdyaXR5IikpPwooaz1iLkNETkxvY2F0aW9uKyIvc2NyaXB0dGVtcGxhdGVzLyIrYi5WZXJzaW9uKyIvc3JpLWhhc2hlcy5qc29uIixbNCx0aGlzLmZldGNoU3JpSGFzaChrKV0pOlszLDJdO2Nhc2UgMTpyZXR1cm4gZj1xLnNlbnQoKSxbMywzXTtjYXNlIDI6Zj1udWxsLHEubGFiZWw9MztjYXNlIDM6cmV0dXJuIHdpbmRvdy5vdFN0dWJEYXRhPXtkb21haW5EYXRhOmIsc3R1YkVsZW1lbnQ6ZCxiYW5uZXJCYXNlRGF0YVVSTDpnLmRvbWFpbkJhc2VVcmwsbW9iaWxlT25saW5lVVJMOmcubW9iaWxlT25saW5lVVJMLHVzZXJMb2NhdGlvbjpnLnVzZXJMb2NhdGlvbixyZWdpb25SdWxlOmMsY3Jvc3NPcmlnaW46dGhpcy5jcm9zc09yaWdpbixpc0lhYlN5bmNlZDp0aGlzLmlzSWFiU3luY1JlcXVpcmVkLGdycHNTeW5jZWQ6dGhpcy5ncnBzU3luY2VkLGlzR2FjU3luY2VkOnRoaXMuaXNHYWNTeW5jUmVxdWlyZWQscHJlZmVyZW5jZXM6dGhpcy5hcGlSZXN1bHQucHJlZmVyZW5jZXMsaXNBbXA6dGhpcy5pc0FtcCwKaXNWMlN0dWI6ITAsc3luY0dycElkOmcuc3luY0dycElkLGNvbnNlbnRBcGk6Zy5hcGlVcmwsdGVuYW50SWQ6Zy50ZW5hbnRJZCxpc1ByZXZpZXc6dGhpcy5pc1ByZXZpZXcsaXNSZXNldDp0aGlzLmlzUmVzZXQsZ2VvRnJvbVVybDp0aGlzLmdlb0Zyb21VcmwsZG9tYWluSWQ6Zy5kb21haW5JZCx1cmxQYXJhbXM6dGhpcy51cmxQYXJhbXMsb3REYXRhTGF5ZXI6dGhpcy5vdERhdGFMYXllcixjaGFyc2V0OnRoaXMuY2hhcnNldCxndG1VcGRhdGVkOnRoaXMuZ3RtVXBkYXRlZCxzZXRBdHRyaWJ1dGVQb2x5ZmlsbElzQWN0aXZlOnRoaXMuc2V0QXR0cmlidXRlUG9seWZpbGxJc0FjdGl2ZSxub25jZTp0aGlzLm5vbmNlLGlkZW50aWZpZXJUeXBlOnRoaXMuaWRlbnRpZmllclR5cGUsdXNlckhhc1Byb2ZpbGU6dGhpcy51c2VySGFzUHJvZmlsZSxwcmV2VXNlcldhc0Fub246dGhpcy5wcmV2VXNlcldhc0Fub24sY29uc2VudEdpdmVuOnRoaXMuY29uc2VudEdpdmVuLHNlcnZlckxhdGVzdERhdGVGb3JDb29raWVzOnRoaXMuc2VydmVyTGF0ZXN0RGF0ZUZvckNvb2tpZXMsCmNoZWNrTG9jYWxDb25zZW50Rm9ySWFiUHVycG9zZXM6dGhpcy5jaGVja0xvY2FsQ29uc2VudEZvcklhYlB1cnBvc2VzLGZvcmNlQ3JlYXRlVHJ4TG9jYWxDb25zZW50SXNHcmVhdGVyOnRoaXMuZm9yY2VDcmVhdGVUcnhMb2NhbENvbnNlbnRJc0dyZWF0ZXIsbGFuZGluZ1BhdGhWYWx1ZTp0aGlzLmxhbmRpbmdQYXRoLHNyaUhhc2g6ZixjcmVhdGVMb2dnZWRvdXRUcmFuczp0aGlzLmNyZWF0ZUxvZ2dlZG91dFRyYW5zfSx0aGlzLmpzb25wKGUsbnVsbCwhMCxudWxsPT0oaz1mKT92b2lkIDA6a1sib3RCYW5uZXJTZGsuanMiXSksWzJdfX0pfSl9O3RoaXMuZmV0Y2hTcmlIYXNoPWZ1bmN0aW9uKGIpe3JldHVybiByKGEsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBjO3JldHVybiB0KHRoaXMsZnVuY3Rpb24oZCl7c3dpdGNoKGQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZC50cnlzLnB1c2goWzAsNCwsNV0pLFs0LGZldGNoKGIpXTtjYXNlIDE6cmV0dXJuKGM9ZC5zZW50KCkpLm9rPwpbNCxjLmpzb24oKV06WzMsM107Y2FzZSAyOnJldHVyblsyLGQuc2VudCgpXTtjYXNlIDM6cmV0dXJuWzMsNV07Y2FzZSA0OnJldHVybiBjPWQuc2VudCgpLGNvbnNvbGUuZXJyb3IoIkVycm9yIGZldGNoaW5nIFNSSSBoYXNoOiIsYyksWzMsNV07Y2FzZSA1OnJldHVyblsyLG51bGxdfX0pfSl9O3RoaXMuaW50aWFsaXplSWFiU3R1Yj1mdW5jdGlvbigpe3ZhciBiPXdpbmRvdzt2b2lkIDA9PT1iLl9fdGNmYXBpJiYod2luZG93Ll9fdGNmYXBpPWEuZXhlY3V0ZVRjZkFwaSk7YS5hZGRJYWJGcmFtZSgpO2IucmVjZWl2ZU9UTWVzc2FnZT1hLnJlY2VpdmVJYWJNZXNzYWdlOyhiLmF0dGFjaEV2ZW50fHx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikoIm1lc3NhZ2UiLGIucmVjZWl2ZU9UTWVzc2FnZSwhMSl9O3RoaXMuYWRkSWFiRnJhbWU9ZnVuY3Rpb24oKXt2YXIgYj13aW5kb3c7IWIuZnJhbWVzLl9fdGNmYXBpTG9jYXRvciYmKGIuZG9jdW1lbnQuYm9keT9hLmFkZExvY2F0b3IoKTpzZXRUaW1lb3V0KGEuYWRkSWFiRnJhbWUsCjUpKX07dGhpcy5hZGRMb2NhdG9yPWZ1bmN0aW9uKCl7dmFyIGI9d2luZG93LGM9Yi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtjLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6bm9uZSI7Yy5uYW1lPSJfX3RjZmFwaUxvY2F0b3IiO2Muc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlRDRiBMb2NhdG9yIik7Yi5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGMpfTt0aGlzLnJlY2VpdmVJYWJNZXNzYWdlPWZ1bmN0aW9uKGIpe3ZhciBjLGQsZSxmPSJzdHJpbmciPT10eXBlb2YgYi5kYXRhLGs9e307dHJ5e2s9Zj9KU09OLnBhcnNlKGIuZGF0YSk6Yi5kYXRhfWNhdGNoKHEpe30hay5fX3RjZmFwaUNhbGx8fCJJQUIyIiE9PWEuaWFiVHlwZSYmIklBQjJWMiIhPT1hLmlhYlR5cGV8fChjPWsuX190Y2ZhcGlDYWxsLmNhbGxJZCxkPWsuX190Y2ZhcGlDYWxsLmNvbW1hbmQsZT1rLl9fdGNmYXBpQ2FsbC5wYXJhbWV0ZXIsaz1rLl9fdGNmYXBpQ2FsbC52ZXJzaW9uLGEuZXhlY3V0ZVRjZkFwaShkLAplLGZ1bmN0aW9uKHEsdyl7cT17X190Y2ZhcGlSZXR1cm46e3JldHVyblZhbHVlOnEsc3VjY2Vzczp3LGNhbGxJZDpjLGNvbW1hbmQ6ZH19O2ImJmIuc291cmNlJiZiLnNvdXJjZS5wb3N0TWVzc2FnZSYmYi5zb3VyY2UucG9zdE1lc3NhZ2UoZj9KU09OLnN0cmluZ2lmeShxKTpxLCIqIil9LGspKX07dGhpcy5leGVjdXRlVGNmQXBpPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPVtdLGM9MDtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWJbY109YXJndW1lbnRzW2NdO2lmKGEuaWFiVHlwZT0iSUFCMiIsIWIubGVuZ3RoKXJldHVybiB3aW5kb3cuX190Y2ZhcGkuYXx8W107Yz1iWzBdO3ZhciBkPWJbMV0sZT1iWzJdO2I9YlszXTsiZnVuY3Rpb24iPT10eXBlb2YgZSYmYyYmKCJwaW5nIj09PWM/YS5nZXRQaW5nUmVxdWVzdChlKTphLmFkZFRvUXVldWUoYyxkLGUsYikpfTt0aGlzLmFkZFRvUXVldWU9ZnVuY3Rpb24oYixjLGQsZSl7dmFyIGY9d2luZG93O2YuX190Y2ZhcGkuYT1mLl9fdGNmYXBpLmF8fApbXTtmLl9fdGNmYXBpLmEucHVzaChbYixjLGQsZV0pfTt0aGlzLmdldFBpbmdSZXF1ZXN0PWZ1bmN0aW9uKGIpe2ImJmIoe2dkcHJBcHBsaWVzOmcuZ2RwckFwcGxpZXMsY21wTG9hZGVkOiExLGNtcFN0YXR1czoic3R1YiIsZGlzcGxheVN0YXR1czoic3R1YiIsYXBpVmVyc2lvbjoiMi4wIixjbXBWZXJzaW9uOnZvaWQgMCxjbXBJZDp2b2lkIDAsZ3ZsVmVyc2lvbjp2b2lkIDAsdGNmUG9saWN5VmVyc2lvbjp2b2lkIDB9LCEwKX07dGhpcy5pbml0Q29uc2VudFNESygpfXZhciB1LEQsTSxDLEksRSxGLGgsZz1uZXcgZnVuY3Rpb24oKXt0aGlzLm9wdGFub25Db29raWU9Ik9wdGFub25Db25zZW50Ijt0aGlzLmFsZXJ0Qm94Q29va2llPSJPcHRhbm9uQWxlcnRCb3hDbG9zZWQiO3RoaXMub3B0YW5vbkh0bWxHcm91cERhdGE9W107dGhpcy5vcHRhbm9uSG9zdERhdGE9W107dGhpcy5nZW5WZW5kb3JzRGF0YT1bXTt0aGlzLnZlbmRvcnNTZXJ2aWNlRGF0YT1bXTt0aGlzLklBQkNvb2tpZVZhbHVlPQoiIjt0aGlzLklhYjJQdWI9ImV1cHViY29uc2VudC12MiI7dGhpcy5nYWNDb29raWU9Ik9UQWRkaXRpb25hbENvbnNlbnRTdHJpbmciO3RoaXMuaXNJYWJHbG9iYWw9ImlzSUFCR2xvYmFsIjt0aGlzLmlzU3R1YlJlYWR5PSEwO3RoaXMuZ2VvQ29va2llPSJnZW9sb2NhdGlvbiI7dGhpcy5FVUNPVU5UUklFUz0iQkUgQkcgQ1ogREsgREUgRUUgSUUgR1IgRVMgRlIgSVQgQ1kgTFYgTFQgTFUgSFUgTVQgTkwgQVQgUEwgUFQgUk8gU0kgU0sgRkkgU0UgR0IgSFIgTEkgTk8gSVMiLnNwbGl0KCIgIik7dGhpcy5zdHViTmFtZT0ib3RTREtTdHViIjt0aGlzLmRvbWFpbkF0dHI9ImRhdGEtZG9tYWluLXNjcmlwdCI7dGhpcy5zZGtOYW1lPSJvdEJhbm5lclNkay5qcyI7dGhpcy5tb2JpbGVPbmxpbmVVUkw9W107dGhpcy51c2VyTG9jYXRpb249e2NvdW50cnk6IiIsc3RhdGU6IiIsc3RhdGVOYW1lOiIifTt0aGlzLnRlbmFudElkPSJmMDU4OTJmMS04MzRhLTQ2MTgtODRmNi1hMmE1ZDBlZjRkYjEiOwp0aGlzLnN5bmNHcnBJZD0iOGRkYTM3NGItZGY5MS00YzFlLTg5MzktMzM3MmVkZmQyYTUxIjt0aGlzLmFwaVVybD0iaHR0cHM6Ly9jb25zZW50LWFwaS5vbmV0cnVzdC5jb20vdjIvcHJlZmVyZW5jZXMiO3RoaXMuZG9tYWluR3Jwcz1KU09OLnBhcnNlKCd7IjE5ZGM3ZTFmLTM5OGQtNGQ5Ni04YzdjLWM0ODY2NWI3ZDJkNCI6IkMwMDAxIiwiM2Y0MGExMTctMmU0ZC00NTQxLTkyMTYtODExZmU4Nzk4OTY3IjoiQzAwMDIiLCIzMGRkYjkxYS05YzA3LTRmZDMtODkyOS1kZGY2ZDY2NmY3ZDUiOiJDMDAwMyIsIjBmZTU5MzI1LTJkOTAtNGRhZC1iNzEzLTJhNWUwYTEyNTA5YyI6IkMwMDA0In0nKX0sUj0oKGg9dT11fHx7fSlbaC5BQ1RJVkU9MF09IkFDVElWRSIsaFtoLkFMV0FZU19BQ1RJVkU9MV09IkFMV0FZU19BQ1RJVkUiLGhbaC5FWFBJUkVEPTJdPSJFWFBJUkVEIixoW2guTk9fQ09OU0VOVD0zXT0iTk9fQ09OU0VOVCIsaFtoLk9QVF9PVVQ9NF09Ik9QVF9PVVQiLGhbaC5QRU5ESU5HPQo1XT0iUEVORElORyIsaFtoLldJVEhEUkFXTj02XT0iV0lUSERSQVdOIiwoaD1EPUR8fHt9KS5waW5nPSJwaW5nIixoLmFkZEV2ZW50TGlzdGVuZXI9ImFkZEV2ZW50TGlzdGVuZXIiLGgucmVtb3ZlRXZlbnRMaXN0ZW5lcj0icmVtb3ZlRXZlbnRMaXN0ZW5lciIsaC5oYXNTZWN0aW9uPSJoYXNTZWN0aW9uIixoLmdldFNlY3Rpb249ImdldFNlY3Rpb24iLGguZ2V0RmllbGQ9ImdldEZpZWxkIixoLmdldEdQUERhdGE9ImdldEdQUERhdGEiLChoPU09TXx8e30pW2gubWluRGF5cz0xXT0ibWluRGF5cyIsaFtoLm1heERheXM9MzBdPSJtYXhEYXlzIixoW2gubWF4WWVhcj0zMTUzNkUzXT0ibWF4WWVhciIsaFtoLm1heFNlY1RvRGF5cz04NjQwMF09Im1heFNlY1RvRGF5cyIsKGg9Qz1DfHx7fSlbaC5EYXlzPTFdPSJEYXlzIixoW2guV2Vla3M9N109IldlZWtzIixoW2guTW9udGhzPTMwXT0iTW9udGhzIixoW2guWWVhcnM9MzY1XT0iWWVhcnMiLChoPXA9cHx8e30pLkdEUFI9IkdEUFIiLGguQ0NQQT0KIkNDUEEiLGguSUFCMj0iSUFCMiIsaC5JQUIyVjI9IklBQjJWMiIsaC5HRU5FUklDPSJHRU5FUklDIixoLkxHUEQ9IkxHUEQiLGguR0VORVJJQ19QUk9NUFQ9IkdFTkVSSUNfUFJPTVBUIixoLkNQUkE9IkNQUkEiLGguQ0RQQT0iQ0RQQSIsaC5ERUxBV0FSRT0iREVMQVdBUkUiLGguSU9XQT0iSU9XQSIsaC5ORUJSQVNLQT0iTkVCUkFTS0EiLGguVVNOQVRJT05BTD0iVVNOQVRJT05BTCIsaC5DVVNUT009IkNVU1RPTSIsaC5GTE9SSURBPSJGTE9SSURBIixoLkNPTE9SQURPPSJDT0xPUkFETyIsaC5DT05ORUNUSUNVVD0iQ1REUEEiLGguTU9OVEFOQT0iTU9OVEFOQSIsaC5URVhBUz0iVEVYQVMiLGguT1JFR09OPSJPUkVHT04iLGguVEVOTkVTU0VFPSJURU5ORVNTRUUiLGguTkVXSkVSU0VZPSJORVdKRVJTRVkiLGguTkVXSEFNUFNISVJFPSJORVdIQU1QU0hJUkUiLGguVUNQQT0iVUNQQSIsaC5WSVJHSU5JQT0iVklSR0lOSUEiLHAuQ1BSQSxwLkNEUEEscC5DT0xPUkFETyxwLk9SRUdPTiwKcC5DT05ORUNUSUNVVCxwLkZMT1JJREEscC5NT05UQU5BLHAuVEVYQVMscC5ERUxBV0FSRSxwLklPV0EscC5ORUJSQVNLQSxwLlRFTk5FU1NFRSxwLk5FV0pFUlNFWSxwLk5FV0hBTVBTSElSRSxwLlVDUEEsKGg9ST1JfHx7fSkuTmFtZT0iT1RHUFBDb25zZW50IixoW2guQ2h1bmtTaXplPTRFM109IkNodW5rU2l6ZSIsaC5DaHVua0NvdW50UGFyYW09IkdQUENvb2tpZXNDb3VudCIsaC5ncHBTaWQ9ImdwcFNpZCIsKHA9RT1FfHx7fSkuQ1BSQT0idXNjYSIscC5DQ1BBPSJ1c2NhIixwLkNEUEE9InVzdmEiLHAuT1JFR09OPSJ1c29yIixwLlVTTkFUSU9OQUw9InVzbmF0IixwLkNPTE9SQURPPSJ1c2NvIixwLkZMT1JJREE9InVzZmwiLHAuQ1REUEE9InVzY3QiLHAuTU9OVEFOQT0idXNtdCIscC5URVhBUz0idXN0eCIscC5ERUxBV0FSRT0idXNkZSIscC5JT1dBPSJ1c2lhIixwLk5FQlJBU0tBPSJ1c25lIixwLlRFTk5FU1NFRT0idXN0biIscC5ORVdKRVJTRVk9InVzbmoiLHAuTkVXSEFNUFNISVJFPQoidXNuaCIscC5VQ1BBPSJ1c3V0IixwLlZJUkdJTklBPSJ1c3ZhIixwLklBQjJWMj0idGNmZXV2MiIsKGg9Rj1GfHx7fSlbaC5DUFJBPThdPSJDUFJBIixoW2guQ0NQQT04XT0iQ0NQQSIsaFtoLkNEUEE9OV09IkNEUEEiLGhbaC5PUkVHT049MTVdPSJPUkVHT04iLGhbaC5VU05BVElPTkFMPTddPSJVU05BVElPTkFMIixoW2guQ09MT1JBRE89MTBdPSJDT0xPUkFETyIsaFtoLkZMT1JJREE9MTNdPSJGTE9SSURBIixoW2guTU9OVEFOQT0xNF09Ik1PTlRBTkEiLGhbaC5URVhBUz0xNl09IlRFWEFTIixoW2guREVMQVdBUkU9MTddPSJERUxBV0FSRSIsaFtoLklPV0E9MThdPSJJT1dBIixoW2guTkVCUkFTS0E9MTldPSJORUJSQVNLQSIsaFtoLk5FV0hBTVBTSElSRT0yMF09Ik5FV0hBTVBTSElSRSIsaFtoLk5FV0pFUlNFWT0yMV09Ik5FV0pFUlNFWSIsaFtoLlRFTk5FU1NFRT0yMl09IlRFTk5FU1NFRSIsaFtoLlVDUEE9MTFdPSJVQ1BBIixoW2guVklSR0lOSUE9OV09IlZJUkdJTklBIiwKaFtoLkNURFBBPTEyXT0iQ1REUEEiLGhbaC5JQUIyVjI9Ml09IklBQjJWMiIsImdlbyIpLE49KEkuTmFtZSwiUFJPRFVDVElPTiIpO0MuRGF5cztDLldlZWtzO0MuTW9udGhzO0MuWWVhcnM7dmFyIEw9bmV3IGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkxPQ0FUT1JfTkFNRT0iX19ncHBMb2NhdG9yIjt0aGlzLndpbj13aW5kb3c7dGhpcy5jdXN0b21Jbml0PSJDVVNUT01JTklUIjt0aGlzLmluaXQ9ZnVuY3Rpb24oKXthLndpbi5fX2dwcCYmImZ1bmN0aW9uIj09dHlwZW9mIGEud2luLl9fZ3BwfHwoYS53aW4uX19ncHA9YS5leGVjdXRlR3BwQXBpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixhLm1lc3NhZ2VIYW5kbGVyLCExKSxhLmFkZEZyYW1lKGEuTE9DQVRPUl9OQU1FKSl9O3RoaXMucmVtb3ZlR3BwQXBpPWZ1bmN0aW9uKCl7ZGVsZXRlIGEud2luLl9fZ3BwO3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImlmcmFtZVtuYW1lXHgzZCIrYS5MT0NBVE9SX05BTUUrCiJdIilbMF07YiYmYi5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGIpfTt0aGlzLmV4ZWN1dGVHcHBBcGk9ZnVuY3Rpb24oKXtmb3IodmFyIGI9W10sYz0wO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYltjXT1hcmd1bWVudHNbY107dmFyIGQ9bnVsbD09KGQ9YS53aW4pP3ZvaWQgMDpkLl9fZ3BwO2lmKGQucXVldWU9ZC5xdWV1ZXx8W10sZC5ldmVudHM9ZC5ldmVudHN8fFtdLCFiLmxlbmd0aHx8MT09PWIubGVuZ3RoJiYicXVldWUiPT09YlswXSlyZXR1cm4gZC5xdWV1ZTtpZigxPT09Yi5sZW5ndGgmJiJldmVudHMiPT09YlswXSlyZXR1cm4gZC5ldmVudHM7Yz1iWzBdO2Q9MTxiLmxlbmd0aD9iWzFdOm51bGw7Yj0yPGIubGVuZ3RoP2JbMl06bnVsbDtzd2l0Y2goYyl7Y2FzZSBELnBpbmc6cmV0dXJuIGEuZ2V0UGluZ1JlcXVlc3QoZCk7Y2FzZSBELmFkZEV2ZW50TGlzdGVuZXI6cmV0dXJuIGEuYWRkRXZlbnRMaXN0ZW5lcihkLGIpO2Nhc2UgRC5yZW1vdmVFdmVudExpc3RlbmVyOnJldHVybiBhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYik7CmRlZmF1bHQ6cmV0dXJuIHZvaWQgYS5hZGRUb1F1ZXVlKGMsZCxiKX19O3RoaXMuZ2V0UGluZ1JlcXVlc3Q9ZnVuY3Rpb24oYil7dmFyIGMsZCxlPXtncHBWZXJzaW9uOjEuMSxjbXBTdGF0dXM6InN0dWIiLGNtcERpc3BsYXlTdGF0dXM6ImhpZGRlbiIsc2lnbmFsU3RhdHVzOiJub3QgcmVhZHkiLHN1cHBvcnRlZEFQSXM6KGM9W10sZD17fSxPYmplY3Qua2V5cyhGKS5mb3JFYWNoKGZ1bmN0aW9uKGYpe3ZhciBrPXt9O2Q9Zj0oa1tmXT1GW2ZdLE9iamVjdC5hc3NpZ24oayxkKSl9KSxPYmplY3Qua2V5cyhFKS5tYXAoZnVuY3Rpb24oZil7cmV0dXJue25hbWU6Zix2YWx1ZTpFW2ZdfX0pLmZvckVhY2goZnVuY3Rpb24oZil7Zj1kW2YubmFtZV0rIjoiK2YudmFsdWU7Yy5wdXNoKGYpfSksYy5maWx0ZXIoZnVuY3Rpb24oZixrKXtyZXR1cm4gYy5pbmRleE9mKGYpPT09a30pKSxjdXJyZW50QVBJOiIiLGNtcElkOk51bWJlci5wYXJzZUludCgiMjgiKSxzZWN0aW9uTGlzdDpbXSxhcHBsaWNhYmxlU2VjdGlvbnM6WzBdLApncHBTdHJpbmc6IiIscGFyc2VkU2VjdGlvbnM6e319O3JldHVybiBiJiZiKGUsITApLGV9O3RoaXMuYWRkRnJhbWU9ZnVuY3Rpb24oYil7dmFyIGMsZD1hLndpbi5kb2N1bWVudDthLndpbi5mcmFtZXNbYl18fChkLmJvZHk/KChjPWQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIikpLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6bm9uZSIsYy5uYW1lPWIsYy5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiR1BQIExvY2F0b3IiKSxkLmJvZHkuYXBwZW5kQ2hpbGQoYykpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLmFkZEZyYW1lKGIpfSw1KSl9O3RoaXMuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihiLGMpe3ZhciBkPWEud2luLl9fZ3BwO3JldHVybiBkLmV2ZW50cz1kLmV2ZW50c3x8W10sbnVsbCE9ZCYmZC5sYXN0SWR8fChkLmxhc3RJZD0wKSxkLmxhc3RJZCsrLGQuZXZlbnRzLnB1c2goe2lkOmQubGFzdElkLGNhbGxiYWNrOmIscGFyYW1ldGVyOmN9KSx7ZXZlbnROYW1lOiJsaXN0ZW5lclJlZ2lzdGVyZWQiLApsaXN0ZW5lcklkOmQubGFzdElkLGRhdGE6ITAscGluZ0RhdGE6YS5nZXRQaW5nUmVxdWVzdCgpfX07dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGIpe3ZhciBjPSExLGQ9YS53aW4uX19ncHA7cmV0dXJuIGQuZXZlbnRzPWQuZXZlbnRzfHxbXSxkLmV2ZW50cz1kLmV2ZW50cy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQudG9TdHJpbmcoKSE9PWIudG9TdHJpbmcoKXx8IShjPSEwKX0pLHtldmVudE5hbWU6Imxpc3RlbmVyUmVtb3ZlZCIsbGlzdGVuZXJJZDpiLGRhdGE6YyxwaW5nRGF0YTphLmdldFBpbmdSZXF1ZXN0KCl9fTt0aGlzLmFkZFRvUXVldWU9ZnVuY3Rpb24oYixjLGQpe3ZhciBlPWEud2luLl9fZ3BwO2UucXVldWU9ZS5xdWV1ZXx8W107ZS5xdWV1ZS5wdXNoKFtiLGMsZF0pfTt0aGlzLm1lc3NhZ2VIYW5kbGVyPWZ1bmN0aW9uKGIpe3ZhciBjLGQ9InN0cmluZyI9PXR5cGVvZiBiLmRhdGE7dHJ5e3ZhciBlPWQ/SlNPTi5wYXJzZShiLmRhdGEpOmIuZGF0YX1jYXRjaChmKXtlPQpudWxsfWUmJmUuX19ncHBDYWxsJiYoYz1lLl9fZ3BwQ2FsbCwoMCxhLndpbi5fX2dwcCkoYy5jb21tYW5kLGZ1bmN0aW9uKGYsayl7Zj17X19ncHBSZXR1cm46e3JldHVyblZhbHVlOmYsc3VjY2VzczprLGNhbGxJZDpjLmNhbGxJZH19O2ImJmIuc291cmNlJiZiLnNvdXJjZS5wb3N0TWVzc2FnZSYmYi5zb3VyY2UucG9zdE1lc3NhZ2UoZD9KU09OLnN0cmluZ2lmeShmKTpmLGIub3JpZ2lufHwiKiIpfSxjLnBhcmFtZXRlcikpfTt0aGlzLmN1c3RvbUluaXR8fHRoaXMuaW5pdCgpfSxTPSh2LnByb3RvdHlwZS5jYW1lbGl6ZT1mdW5jdGlvbihhKXtyZXR1cm4oYT1hLnJlcGxhY2UoIi0tIiwiIikpLnNwbGl0KCItIikubWFwKGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yj9iWzBdLnRvVXBwZXJDYXNlKCkrYi5zbGljZSgxKToiIjtyZXR1cm4gMD09PWM/YjpkfSkuam9pbigiIil9LHYucHJvdG90eXBlLnN0clRvT2JqPWZ1bmN0aW9uKGEpe3ZhciBiPXt9O2E9YS5zcGxpdCgiOyIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS50cmltKCl9KTsKZm9yKHZhciBjPTAsZD12b2lkIDA7YzxhLmxlbmd0aDsrK2MpaWYoLzovLnRlc3QoYVtjXSkpe2lmKCEoZD1hW2NdLnNwbGl0KC86KC4rKS8pKVsxXSlyZXR1cm4gbnVsbDtiW3RoaXMuY2FtZWxpemUoZFswXSldPWRbMV0udHJpbSgpfXJldHVybiBifSx2KTt5LmluaXRDU1BUcnVzdGVkVHlwZT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgVVJMKGEsbG9jYXRpb24ub3JpZ2luKTt3aW5kb3cuRE9NUHVyaWZ5JiZ3aW5kb3cudHJ1c3RlZFR5cGVzJiZ3aW5kb3cudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSYmKHdpbmRvdy5PdFRydXN0ZWRUeXBlLlRydXN0ZWRUeXBlUG9saWN5PXdpbmRvdy50cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KCJvdC10cnVzdGVkLXR5cGUtcG9saWN5Iix7Y3JlYXRlSFRNTDpmdW5jdGlvbihjKXtyZXR1cm4gd2luZG93LkRPTVB1cmlmeS5zYW5pdGl6ZShjKX0sY3JlYXRlU2NyaXB0OmZ1bmN0aW9uKGMpe3JldHVybiB3aW5kb3cuRE9NUHVyaWZ5LnNhbml0aXplKGMpfSwKY3JlYXRlU2NyaXB0VVJMOmZ1bmN0aW9uKGMpe3ZhciBkPVtkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSxiLmhvc3RuYW1lXTt0cnl7dmFyIGU9bmV3IFVSTChjLGxvY2F0aW9uLm9yaWdpbil9Y2F0Y2goZil7cmV0dXJuImFib3V0OmJsYW5rI2Vycm9yIn1yZXR1cm4gZS5ob3N0bmFtZSYmIWQuaW5jbHVkZXMoZS5ob3N0bmFtZSk/ImFib3V0OmJsYW5rI2Jsb2NrZWQiOmUuaHJlZn19KSl9O3kuaXNDc3BUcnVzdGVkVHlwZT1mdW5jdGlvbigpe3ZhciBhO3JldHVybihudWxsPT0oYT13aW5kb3cuT3RUcnVzdGVkVHlwZSk/dm9pZCAwOmEuaXNDc3BUcnVzdGVkVHlwZUVuYWJsZWQpJiYobnVsbD09KGE9d2luZG93Lk90VHJ1c3RlZFR5cGUpP3ZvaWQgMDphLlRydXN0ZWRUeXBlUG9saWN5KX07eS5jcmVhdGVTY3JpcHRVUkw9ZnVuY3Rpb24oYSl7cmV0dXJuIHkuaXNDc3BUcnVzdGVkVHlwZSgpP3dpbmRvdy5PdFRydXN0ZWRUeXBlLlRydXN0ZWRUeXBlUG9saWN5LmNyZWF0ZVNjcmlwdFVSTChhKToKYX07eS5jaGVja0FuZEFzc2lnbkNzcFRydXN0ZWRUeXBlRW5hYmxlZD1mdW5jdGlvbihhKXthPW51bGw9PShhPWEuVGVuYW50RmVhdHVyZXMpP3ZvaWQgMDphLkNvb2tpZVYyQ1NQVHJ1c3RlZFR5cGU7cmV0dXJuIHdpbmRvdy5PdFRydXN0ZWRUeXBlPXtpc0NzcFRydXN0ZWRUeXBlRW5hYmxlZDphfSxhfTtuZXcgZnVuY3Rpb24oKXt0aGlzLmFtcERhdGE9e307dGhpcy5pc0dhY1N5bmNlZD10aGlzLmlzSWFiU3luY2VkPSExO3RoaXMuZ3Jwc1N5bmNlZD1bXTt0aGlzLmdyb3Vwc0NvbnNlbnQ9W107dGhpcy51c2VyTG9jYXRpb249e2NvdW50cnk6IiIsc3RhdGU6IiIsc3RhdGVOYW1lOiIifTt0aGlzLmlzUHJldmlldz10aGlzLmlzVjJTdHViPSExO3RoaXMuZ2VvRnJvbVVybD0iIjt0aGlzLnNldEF0dHJpYnV0ZVBvbHlmaWxsSXNBY3RpdmU9ITE7dGhpcy5zdG9yYWdlQmFzZVVSTD0iIn07ei5wcm90b3R5cGUuZW1wdHk9ZnVuY3Rpb24oYSl7aWYoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSlmb3IoO2EuaGFzQ2hpbGROb2RlcygpOylhLnJlbW92ZUNoaWxkKGEubGFzdENoaWxkKX07CnoucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oYSl7KGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkpJiZCKGEsImRpc3BsYXk6IGJsb2NrOyIsITApfTt6LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oYSl7KGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkpJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKX07ei5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrPTEpaWYoYVtjXS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk9PT1iLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSlyZXR1cm4hMDtyZXR1cm4hMX07ei5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7Yys9MSlpZihhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX07ei5wcm90b3R5cGUuZW5kc1dpdGg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4tMSE9PWEuaW5kZXhPZihiLGEubGVuZ3RoLWIubGVuZ3RoKX07CnoucHJvdG90eXBlLmdlbmVyYXRlVVVJRD1mdW5jdGlvbigpe3ZhciBhPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgcGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBwZXJmb3JtYW5jZS5ub3cmJihhKz1wZXJmb3JtYW5jZS5ub3coKSksInh4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCIucmVwbGFjZSgvW3h5XS9nLGZ1bmN0aW9uKGIpe3ZhciBjPShhKzE2Kk1hdGgucmFuZG9tKCkpJTE2fDA7cmV0dXJuIGE9TWF0aC5mbG9vcihhLzE2KSwoIngiPT09Yj9jOjMmY3w4KS50b1N0cmluZygxNil9KX07ei5wcm90b3R5cGUuZmluZEluZGV4PWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPS0xLGQ9MDtkPGEubGVuZ3RoO2QrKylpZih2b2lkIDAhPT1hW2RdJiZiKGFbZF0sZCkpe2M9ZDticmVha31yZXR1cm4gY307ei5wcm90b3R5cGUucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24oYSl7aWYoYSlpZihhIGluc3RhbmNlb2YgTm9kZUxpc3R8fAphIGluc3RhbmNlb2YgQXJyYXkpZm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspYVtiXS5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGFbYl0pO2Vsc2UgYS5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGEpfTt2YXIgVD1uZXcgeixwPShsLnByb3RvdHlwZS5pbml0Q29uc2VudFNESz1mdW5jdGlvbigpe3RoaXMuaW5pdEN1c3RvbUV2ZW50UG9seWZpbGwoKTt0aGlzLmdldFBhcmFtKCk7dGhpcy5zZXREb21haW5EYXRhRmlsZVVSTCgpO3RoaXMuY2FwdHVyZU5vbmNlKCk7dGhpcy5zZXRPVERhdGFMYXllcigpO3RoaXMuZmV0Y2hTREtEZXBlbmRlbmN5KCl9LGwucHJvdG90eXBlLmdldEFwaVJlcXM9ZnVuY3Rpb24oKXt2YXIgYT1be3VybDpnLmRvbWFpbkpzb25Vcmwsc3RvcmFnZUtleToiZG9tYWluRGF0YSJ9XSxiPShnLm1vYmlsZU9ubGluZVVSTC5wdXNoKGcuZG9tYWluSnNvblVybCksd2luZG93P3dpbmRvdy5PbmVUcnVzdDpudWxsKTtyZXR1cm4gYiYmYi5kYXRhU3ViamVjdFBhcmFtcyYmCmIuZGF0YVN1YmplY3RQYXJhbXMuaWQmJmIuZGF0YVN1YmplY3RQYXJhbXMudG9rZW4mJmcudGVuYW50SWQmJmcuYXBpVXJsJiYodGhpcy50b3RhbEFwaSsrLGEucHVzaCh7dXJsOiIiK2cuYXBpVXJsLGhlYWRlcnM6e0lkZW50aWZpZXI6Yi5kYXRhU3ViamVjdFBhcmFtcy5pZCxUZW5hbnRJZDpnLnRlbmFudElkLEF1dGhvcml6YXRpb246Yi5kYXRhU3ViamVjdFBhcmFtcy50b2tlbn0sc3RvcmFnZUtleToicHJlZmVyZW5jZXMifSkpLGF9LGwucHJvdG90eXBlLmZldGNoU0RLRGVwZW5kZW5jeT1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmdldEFwaVJlcXMoKSxiPUFycmF5KGEubGVuZ3RoKSxjPXRoaXMsZD0wO2Q8YS5sZW5ndGg7ZCsrKShmdW5jdGlvbihlKXt2YXIgZj1hW2VdO2lmKFJlZ0V4cCgiXmZpbGU6Ly8iLCJpIikudGVzdChmLnVybCkpYy5vdEZldGNoT2ZmbGluZUZpbGUoZi51cmwsZi5zdG9yYWdlS2V5LGMuYXBpQ2FsbGJhY2spO2Vsc2V7aWYoYltlXT1uZXcgWE1MSHR0cFJlcXVlc3QsCmJbZV0ub3BlbigiR0VUIixmLnVybCksYltlXS53aXRoQ3JlZGVudGlhbHM9ITEsZi5oZWFkZXJzKWZvcih2YXIgayBpbiBmLmhlYWRlcnMpYltlXS5zZXRSZXF1ZXN0SGVhZGVyKGssZi5oZWFkZXJzW2tdKTtiW2VdLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBxPW51bGw7MjAwPD1iW2VdLnN0YXR1cyYmNDAwPmJbZV0uc3RhdHVzJiZiW2VdLnJlc3BvbnNlVGV4dD9xPUpTT04ucGFyc2UoYltlXS5yZXNwb25zZVRleHQpOmNvbnNvbGUubG9nKCJPVCAtIEVycm9yIGluIGZldGNoIFVSTCA6ICIrZi51cmwrIiBFeGNlcHRpb24gOiAiK0pTT04uc3RyaW5naWZ5KHttZXNzYWdlOiJFcnJvciBMb2FkaW5nIERhdGEiLHN0YXR1c0NvZGU6YltlXS5zdGF0dXN9KSk7eC5hcGlDYWxsYmFjayhmLnN0b3JhZ2VLZXkscSl9O2JbZV0uc2VuZCgpfX0pKGQpfSxsLnByb3RvdHlwZS5oYW5kbGVCdWxrRG9tYWluTWdtdD1mdW5jdGlvbihhLGIpe2EmJihiLkRvbWFpbj13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpfSwKbC5wcm90b3R5cGUuYXBpQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZixrOyJwcmVmZXJlbmNlcyI9PT1hJiZBcnJheS5pc0FycmF5KGIpP3guYXBpUmVzdWx0W2FdPWJbMF06eC5hcGlSZXN1bHRbYV09Yjt4LnJlcXVlc3RlZEFwaUNvdW50Kys7eC5yZXF1ZXN0ZWRBcGlDb3VudD09PXgudG90YWxBcGkmJihhPXRoaXMuYXBpUmVzdWx0LmRvbWFpbkRhdGEuVGVuYW50RmVhdHVyZXMsYz10aGlzLmFwaVJlc3VsdC5kb21haW5EYXRhLGI9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLGQ9Yy5Eb21haW4sZT1jLkJ1bGtEb21haW5DaGVja1VybCxhJiZhLkNvb2tpZVYyQnVsa0RvbWFpbk1hbmFnZW1lbnQmJmIhPT1kJiZjLlNjcmlwdFR5cGU9PT1OJiYod2luZG93LnNlc3Npb25TdG9yYWdlJiZ3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiYnVsa0RvbWFpbk1nbXRFbmFibGVkIik/dGhpcy5oYW5kbGVCdWxrRG9tYWluTWdtdCgidHJ1ZSI9PT13aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiYnVsa0RvbWFpbk1nbXRFbmFibGVkIiksCmMpOihmPW5ldyBYTUxIdHRwUmVxdWVzdCxrPXRoaXMuaGFuZGxlQnVsa0RvbWFpbk1nbXQsZi5vbmxvYWQ9ZnVuY3Rpb24oKXt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UmJndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJidWxrRG9tYWluTWdtdEVuYWJsZWQiLEpTT04uc3RyaW5naWZ5KEpTT04ucGFyc2UoZi5yZXNwb25zZSkuaXNWYWxpZCkpO2soSlNPTi5wYXJzZShmLnJlc3BvbnNlKS5pc1ZhbGlkLGMpfSxmLm9wZW4oIkdFVCIsZSwhMSksZi53aXRoQ3JlZGVudGlhbHM9ITEsZi5zZXRSZXF1ZXN0SGVhZGVyKCJsb2NhdGlvbiIsZy5zdG9yYWdlQmFzZVVSTC5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vLCIiKSksZi5zZXRSZXF1ZXN0SGVhZGVyKCJkb21haW5JZCIsZy5kb21haW5JZCksZi5zZXRSZXF1ZXN0SGVhZGVyKCJ1cmwiLGIpLGYuc2VuZCgpKSkseC5zZXRWYXJpYWJsZXMoYykseC5jaGVja0lmUHJldlVzZXJJc0Fub24oKSx4LmNsZWFyQ29uc2VudElmRHNJZENoYW5nZWQoeC5hcGlSZXN1bHQuZG9tYWluRGF0YSksCnguc3luY0NvbnNlbnRQcm9maWxlKHguYXBpUmVzdWx0LnByZWZlcmVuY2VzKSx4LmdldExvY2F0aW9uKHguYXBpUmVzdWx0LmRvbWFpbkRhdGEpKX0sbC5wcm90b3R5cGUuY2hlY2tJZlByZXZVc2VySXNBbm9uPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5yZWFkQ29va2llUGFyYW0oZy5vcHRhbm9uQ29va2llLCJjb25zZW50SWQiKSxiPXRoaXMucmVhZENvb2tpZVBhcmFtKGcub3B0YW5vbkNvb2tpZSwiaXNBbm9uVXNlciIpLGM9dGhpcy5yZWFkQ29va2llUGFyYW0oZy5vcHRhbm9uQ29va2llLCJpVHlwZSIpLGQ9bnVsbD09KGQ9d2luZG93KT92b2lkIDA6ZC5PbmVUcnVzdDsoZD1kJiZkLmRhdGFTdWJqZWN0UGFyYW1zJiZkLmRhdGFTdWJqZWN0UGFyYW1zLmlkKSYmZCE9PWEmJigiIiE9PWI/dGhpcy5wcmV2VXNlcldhc0Fub249IjEiPT09YjoiIiE9PWMmJih0aGlzLnByZXZVc2VyV2FzQW5vbj0hIWMpKX0sbC5wcm90b3R5cGUuc2V0VmFyaWFibGVzPWZ1bmN0aW9uKGEpe3RoaXMuY2FycnlPdmVyQW5vbnltb3VzQ29uc2VudD0KYS5BdXRoZW50aWNhdGVkQ29uc2VudH0sbC5wcm90b3R5cGUuY2xlYXJDb25zZW50SWZEc0lkQ2hhbmdlZD1mdW5jdGlvbihhKXt2YXIgYixjPXRoaXMucmVhZENvb2tpZVBhcmFtKGcub3B0YW5vbkNvb2tpZSwiY29uc2VudElkIiksZD13aW5kb3c/d2luZG93Lk9uZVRydXN0Om51bGwsZT1kJiZkLmRhdGFTdWJqZWN0UGFyYW1zJiZkLmRhdGFTdWJqZWN0UGFyYW1zLmlkLGY9dGhpcy5yZWFkQ29va2llUGFyYW0oZy5vcHRhbm9uQ29va2llLCJpVHlwZSIpO2E9KHRoaXMubGFuZGluZ1BhdGg9dGhpcy5yZWFkQ29va2llUGFyYW0oZy5vcHRhbm9uQ29va2llLCJsYW5kaW5nUGF0aCIpLG51bGw9PWE/dm9pZCAwOmEuQXV0aGVudGljYXRlZExvZ2dlZE91dENvbnNlbnQpO2Q9IShkJiZkLmRhdGFTdWJqZWN0UGFyYW1zKTthJiZkPyhhPWMsZD0iMSI9PT10aGlzLnJlYWRDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsImlzQW5vblVzZXIiKSxiPXRoaXMucmVhZENvb2tpZVBhcmFtKGcub3B0YW5vbkNvb2tpZSwKImlUeXBlIiksYSYmKGR8fGIpfHwodGhpcy53cml0ZUNvb2tpZVBhcmFtKGcub3B0YW5vbkNvb2tpZSwiY29uc2VudElkIixULmdlbmVyYXRlVVVJRCgpKSx0aGlzLndyaXRlQ29va2llUGFyYW0oZy5vcHRhbm9uQ29va2llLCJpc0Fub25Vc2VyIiwiMSIpLHRoaXMuY3JlYXRlTG9nZ2Vkb3V0VHJhbnM9ITApKTooYT10aGlzLnJlYWRDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsInByZXZIYWRUb2tlbiIpLGU9PT1jfHxmfHwiMSIhPT1hfHx0aGlzLnJlbW92ZUNvb2tpZXMoKSl9LGwucHJvdG90eXBlLmdldENvbnNlbnRWYWx1ZT1mdW5jdGlvbihhKXt2YXIgYj1udWxsO3N3aXRjaChhKXtjYXNlIHVbdS5BQ1RJVkVdOmNhc2UgdVt1LkFMV0FZU19BQ1RJVkVdOmI9IjEiO2JyZWFrO2Nhc2UgdVt1LkVYUElSRURdOmNhc2UgdVt1Lk9QVF9PVVRdOmNhc2UgdVt1LlBFTkRJTkddOmNhc2UgdVt1LldJVEhEUkFXTl06Yj0iMCJ9cmV0dXJuIGJ9LGwucHJvdG90eXBlLnN5bmNDb25zZW50UHJvZmlsZT0KZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGU7YT8oYj10aGlzLnJlYWRDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsImlUeXBlIiksdGhpcy51c2VySGFzUHJvZmlsZT0wPChudWxsPT0oYz1hLnB1cnBvc2VzKT92b2lkIDA6Yy5sZW5ndGgpLHRoaXMuY2hlY2tGb3JjZUNvbnNlbnRSZWNlaXB0Rm9yS25vd25Mb2dnZWRPdXQodGhpcy51c2VySGFzUHJvZmlsZSksYS5wdXJwb3Nlcy5sZW5ndGgmJihlPWM9dGhpcy5nZXRDb29raWUoZy5hbGVydEJveENvb2tpZSksZD10aGlzLmRlc2VyaWFsaXNlU3RyaW5nVG9BcnJheSh0aGlzLnJlYWRDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsImdyb3VwcyIpKSxlPXRoaXMuc3luY0FsbFB1cnBvc2VzKGEsZCxlKSx0aGlzLnVwZGF0ZUNvbnNlbnRDb29raWVzKGQsYyxlKSksdGhpcy5jaGVja0xvY2FsQ29uc2VudEZvcklhYlB1cnBvc2VzfHx0aGlzLnN5bmNJYWJBbmRHYWNDb25zZW50KGEsYikpOnRoaXMuY2hlY2tGb3JjZUNvbnNlbnRSZWNlaXB0Rm9yS25vd25Mb2dnZWRPdXQoITEpOwp0aGlzLmZpbmFsaXplU3luY0NvbnNlbnQoKX0sbC5wcm90b3R5cGUuc3luY0FsbFB1cnBvc2VzPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0hMTt0aGlzLmNoZWNrSWZDb25zZW50SXNHaXZlbihhKTtmb3IodmFyIGU9MCxmPWEucHVycG9zZXM7ZTxmLmxlbmd0aDtlKyspe3ZhciBrPWZbZV0scT1nLmRvbWFpbkdycHNbay5pZF07cT8odGhpcy5pZGVudGlmaWVyVHlwZT1hLmlkZW50aWZpZXJUeXBlLGs9dGhpcy5jaGVja0FuZFVwZGF0ZUxvY2FsQ29uc2VudChrLHEsYixjKSxkPWR8fGsuc3luY09ubHlEYXRlLHRoaXMuZm9yY2VDcmVhdGVUcnhMb2NhbENvbnNlbnRJc0dyZWF0ZXI9dGhpcy5mb3JjZUNyZWF0ZVRyeExvY2FsQ29uc2VudElzR3JlYXRlcnx8ay5pc0xvY2FsQ29uc2VudERhdGVHcmVhdGVyVGhhblNlcnZlcik6dGhpcy5jaGVja0xvY2FsQ29uc2VudEZvcklhYlB1cnBvc2VzPSEwfXJldHVybiBkfSxsLnByb3RvdHlwZS51cGRhdGVDb25zZW50Q29va2llcz1mdW5jdGlvbihhLApiLGMpe3RoaXMuZ3Jwc1N5bmNlZC5sZW5ndGgmJnRoaXMud3JpdGVDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsImdyb3VwcyIsYS50b1N0cmluZygpKTt0aGlzLmNoZWNrTG9jYWxDb25zZW50Rm9ySWFiUHVycG9zZXN8fCF0aGlzLmdycHNTeW5jZWQubGVuZ3RoJiYhY3x8KGE9dGhpcy5zZXJ2ZXJMYXRlc3REYXRlRm9yQ29va2llcy50b0lTT1N0cmluZygpfHxiLHRoaXMuc2V0Q29va2llKGcuYWxlcnRCb3hDb29raWUsYSkpOygwPHRoaXMuZ3Jwc1N5bmNlZC5sZW5ndGh8fGMpJiZ0aGlzLmNsZWFySW50VHlwZUlmTmVlZGVkKCl9LGwucHJvdG90eXBlLmNsZWFySW50VHlwZUlmTmVlZGVkPWZ1bmN0aW9uKCl7aWYodGhpcy5yZWFkQ29va2llUGFyYW0oZy5vcHRhbm9uQ29va2llLCJpbnRUeXBlIikpdHJ5e3RoaXMud3JpdGVDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsImludFR5cGUiLCIiKX1jYXRjaChhKXtjb25zb2xlLmluZm8oIkZhaWxlZCB0byBjbGVhciBPcHRhbm9uQ29uc2VudC5pbnRUeXBlIGFmdGVyIGFwcGx5aW5nIG5ld2VyIHNlcnZlciBjb25zZW50IiwKYSl9fSxsLnByb3RvdHlwZS5jaGVja0ZvcmNlQ29uc2VudFJlY2VpcHRGb3JLbm93bkxvZ2dlZE91dD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnJlYWRDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsInByZXZIYWRUb2tlbiIpLGM9dGhpcy5yZWFkQ29va2llUGFyYW0oZy5vcHRhbm9uQ29va2llLCJpc0Fub25Vc2VyIiksZD10aGlzLmdldENvb2tpZShnLmFsZXJ0Qm94Q29va2llKTsiMCIhPT1jfHwiMCIhPT1ifHwhZHx8YXx8KHRoaXMuZm9yY2VDcmVhdGVUcnhMb2NhbENvbnNlbnRJc0dyZWF0ZXI9ITApfSxsLnByb3RvdHlwZS5maW5hbGl6ZVN5bmNDb25zZW50PWZ1bmN0aW9uKCl7dGhpcy5lbnN1cmVIdG1sR3JvdXBEYXRhSW5pdGlhbGlzZWQoKTt4LmFwaVJlc3VsdC5kb21haW5EYXRhLkdDRW5hYmxlfHwodGhpcy51cGRhdGVHdG1NYWNyb3MoKSx0aGlzLmd0bVVwZGF0ZWQ9ITApfSxsLnByb3RvdHlwZS5jaGVja0lmQ29uc2VudElzR2l2ZW49ZnVuY3Rpb24oYSl7dmFyIGI9CjA7Zm9yKGE9YS5wdXJwb3NlcztiPGEubGVuZ3RoO2IrKyl7dmFyIGM9YVtiXTtnLmRvbWFpbkdycHNbYy5pZF0mJih0aGlzLmNvbnNlbnRHaXZlbj10aGlzLmNvbnNlbnRHaXZlbnx8Yy5zdGF0dXMhPT11W3UuTk9fQ09OU0VOVF0mJmMuc3RhdHVzIT09dVt1LkFMV0FZU19BQ1RJVkVdKX19LGwucHJvdG90eXBlLnN5bmNJYWJBbmRHYWNDb25zZW50PWZ1bmN0aW9uKGEsYil7dmFyIGMsZD0iIjthPShhJiZBcnJheS5pc0FycmF5KGEuY29uc2VudFN0cmluZ3MpJiZhLmNvbnNlbnRTdHJpbmdzLmxlbmd0aCYmKGQ9KG51bGw9PShjPWEuY29uc2VudFN0cmluZ3MuZmluZChmdW5jdGlvbihlKXtyZXR1cm4idGNmZXUiPT09ZS50eXBlfSkpP3ZvaWQgMDpjLmNvbnRlbnQpfHwiIiksKG51bGw9PShjPWEpP3ZvaWQgMDpjLmdhY1N0cmluZyl8fCIiKTtkJiZ0aGlzLmdldENvb2tpZShnLklhYjJQdWIpIT09ZCYmKHRoaXMuaXNJYWJTeW5jUmVxdWlyZWQ9ITAsdGhpcy5zZXRDb29raWUoZy5JYWIyUHViLApkKSk7YSYmdGhpcy5nZXRDb29raWUoZy5nYWNDb29raWUpIT09YSYmKHRoaXMuaXNHYWNTeW5jUmVxdWlyZWQ9ITAsdGhpcy5zZXRDb29raWUoZy5nYWNDb29raWUsYSkpOyh0aGlzLmlzSWFiU3luY1JlcXVpcmVkfHx0aGlzLmlzR2FjU3luY1JlcXVpcmVkfHx0aGlzLmdycHNTeW5jZWQubGVuZ3RoKSYmYiYmdGhpcy53cml0ZUNvb2tpZVBhcmFtKGcub3B0YW5vbkNvb2tpZSwiaVR5cGUiLCIiKX0sbC5wcm90b3R5cGUucmVtb3ZlR3JvdXBJZk5vQ29uc2VudD1mdW5jdGlvbihhLGIsYyl7aWYoYSYmYi5sZW5ndGgpe2E9LTE7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspaWYoYltkXS5zcGxpdCgiOiIpWzBdPT09Yyl7YT1kO2JyZWFrfS0xPGEmJihiLnNwbGljZShhLDEpLHRoaXMuZ3Jwc1N5bmNlZC5wdXNoKGMpKX19LGwucHJvdG90eXBlLmNoZWNrQW5kVXBkYXRlTG9jYWxDb25zZW50PWZ1bmN0aW9uKGEsYixjLGQpe2Q9bmV3IERhdGUoZCk7dmFyIGU9bmV3IERhdGUoYS5sYXN0SW50ZXJhY3Rpb25EYXRlKSwKZj0hMTtkPWU8ZDt2YXIgaz1hLnN0YXR1cz09PXVbdS5OT19DT05TRU5UXTtyZXR1cm4oIXRoaXMuY2FycnlPdmVyQW5vbnltb3VzQ29uc2VudCYmdGhpcy51c2VySGFzUHJvZmlsZSYmdGhpcy5jb25zZW50R2l2ZW58fHRoaXMuY2FycnlPdmVyQW5vbnltb3VzQ29uc2VudCYmdGhpcy51c2VySGFzUHJvZmlsZSYmIWQpJiYoaz9jLmxlbmd0aCYmdGhpcy5yZW1vdmVHcm91cElmTm9Db25zZW50KGssYyxiKTooaz10aGlzLmdldENvbnNlbnRWYWx1ZShhLnN0YXR1cyksZj0hMCwoIXRoaXMuc2VydmVyTGF0ZXN0RGF0ZUZvckNvb2tpZXN8fGU+dGhpcy5zZXJ2ZXJMYXRlc3REYXRlRm9yQ29va2llcykmJih0aGlzLnNlcnZlckxhdGVzdERhdGVGb3JDb29raWVzPWUpLHRoaXMuc2V0R3JvdXBzQ29uc2VudEZyb21TZXJ2ZXJPckxvY2FsKHtncm91cHNDb25zZW50OmMsZ3JwSWQ6Yixjb25zZW50VmFsOmt9KSkpLHtzeW5jT25seURhdGU6Zixpc0xvY2FsQ29uc2VudERhdGVHcmVhdGVyVGhhblNlcnZlcjpkfX0sCmwucHJvdG90eXBlLnNldEdyb3Vwc0NvbnNlbnRGcm9tU2VydmVyT3JMb2NhbD1mdW5jdGlvbihhKXt2YXIgYj1hLmdyb3Vwc0NvbnNlbnQsYz1hLmdycElkO2E9YS5jb25zZW50VmFsO2Zvcih2YXIgZD1jKyI6IithLGU9LTEsZj0wO2Y8Yi5sZW5ndGg7ZisrKXt2YXIgaz1iW2ZdLnNwbGl0KCI6Iik7aWYoa1swXT09PWMpe2tbMV0hPT1hJiYoYltmXT1kLHRoaXMuZ3Jwc1N5bmNlZC5wdXNoKGMpKTtlPWY7YnJlYWt9fS0xPT09ZSYmKGIucHVzaChkKSx0aGlzLmdycHNTeW5jZWQucHVzaChjKSl9LGwucHJvdG90eXBlLmdldExvY2F0aW9uPWZ1bmN0aW9uKGEpeyhhLlRlbmFudEZlYXR1cmVzJiZhLlRlbmFudEZlYXR1cmVzLkNvb2tpZVYyQ1NQfHxhLkNvb2tpZVYyQ1NQRW5hYmxlZCkmJnRoaXMubm9uY2UmJih0aGlzLnNldEF0dHJpYnV0ZVBvbHlmaWxsSXNBY3RpdmU9ITAsKG5ldyBTKS5pbXBsZW1lbnRUaGVQb2x5ZmlsbCgpKTt5LmNoZWNrQW5kQXNzaWduQ3NwVHJ1c3RlZFR5cGVFbmFibGVkKGEpJiYKeS5pbml0Q1NQVHJ1c3RlZFR5cGUoZy5zdG9yYWdlQmFzZVVSTCk7dmFyIGIsYz13aW5kb3c7Yy5PbmVUcnVzdCYmYy5PbmVUcnVzdC5nZW9sb2NhdGlvblJlc3BvbnNlPyhjPWMuT25lVHJ1c3QuZ2VvbG9jYXRpb25SZXNwb25zZSx0aGlzLnNldEdlb0xvY2F0aW9uKGMuY291bnRyeUNvZGUsYy5zdGF0ZUNvZGUsYy5zdGF0ZU5hbWUpLHRoaXMuYWRkQmFubmVyU0RLU2NyaXB0KGEpKTooYz10aGlzLnJlYWRDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsZy5nZW9Db29raWUpKXx8YS5Ta2lwR2VvbG9jYXRpb24/KGI9Yy5zcGxpdCgiOyIpWzBdLGM9Yy5zcGxpdCgiOyIpWzFdLHRoaXMuc2V0R2VvTG9jYXRpb24oYixjKSx0aGlzLmFkZEJhbm5lclNES1NjcmlwdChhKSk6dGhpcy5nZXRHZW9Mb2NhdGlvbihhKX0sbC5wcm90b3R5cGUuZ2V0R2VvbG9jYXRpb25VUkw9ZnVuY3Rpb24oYSl7cmV0dXJuIFJlZ0V4cCgiXmZpbGU6Ly8iLCJpIikudGVzdChnLnN0b3JhZ2VCYXNlVVJMKyIvc2NyaXB0dGVtcGxhdGVzLyIrCmEuVmVyc2lvbikmJmEuTW9iaWxlU0RLPyIuLyIrYS5HZW9sb2NhdGlvblVybC5yZXBsYWNlKC9eKGh0dHB8aHR0cHMpOlwvXC8vLCIiKS5zcGxpdCgiLyIpLnNsaWNlKDEpLmpvaW4oIi8iKSsiLmpzIjphLkdlb2xvY2F0aW9uVXJsfSxsLnByb3RvdHlwZS5nZXRHZW9Mb2NhdGlvbj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9KHRoaXMuYXBpUmVzdWx0LmRvbWFpbkRhdGEuVGVuYW50RmVhdHVyZXMsdGhpcy5nZXRHZW9sb2NhdGlvblVSTChhKSksZD1uZXcgWE1MSHR0cFJlcXVlc3Q7ZC5vbmxvYWQ9ZnVuY3Rpb24oZSl7dGhpcyYmdGhpcy5yZXNwb25zZVRleHQ/Zj10aGlzLnJlc3BvbnNlVGV4dDplJiZlLnRhcmdldCYmKGY9ZS50YXJnZXQucmVzcG9uc2VUZXh0KTt2YXIgZjtlPUpTT04ucGFyc2UoZik7Yi5zZXRHZW9Mb2NhdGlvbihlLmNvdW50cnksZS5zdGF0ZSxlLnN0YXRlTmFtZSk7Yi5hZGRCYW5uZXJTREtTY3JpcHQoYSl9O2Qub25lcnJvcj1mdW5jdGlvbigpe2IuYWRkQmFubmVyU0RLU2NyaXB0KGEpfTsKZC5vcGVuKCJHRVQiLGMpO2Qud2l0aENyZWRlbnRpYWxzPSExO2Quc2V0UmVxdWVzdEhlYWRlcigiYWNjZXB0IiwiYXBwbGljYXRpb24vanNvbiIpO2Quc2VuZCgpfSxsLnByb3RvdHlwZS5zZXRPVERhdGFMYXllcj1mdW5jdGlvbigpe3ZhciBhPSJkYXRhLWRMYXllci1pZ25vcmUiLGI9Zy5zdHViU2NyRWwuaGFzQXR0cmlidXRlKGEpO2E9Zy5zdHViU2NyRWwuZ2V0QXR0cmlidXRlKGEpO2I9YiYmInRydWUiPT09YXx8YiYmIiI9PT1hO3RoaXMub3REYXRhTGF5ZXI9e2lnbm9yZTpiLG5hbWU6Yj9udWxsOnRoaXMuZ2V0U3R1YkF0dHJPclF1ZXJ5UGFyYW0oImRhdGEtZExheWVyLW5hbWUiKXx8ImRhdGFMYXllciJ9fSxsLnByb3RvdHlwZS5zZXRHZW9Mb2NhdGlvbj1mdW5jdGlvbihhLGIsYyl7Zy51c2VyTG9jYXRpb249e2NvdW50cnk6YSxzdGF0ZTp2b2lkIDA9PT1iPyIiOmIsc3RhdGVOYW1lOnZvaWQgMD09PWM/IiI6Y319LGwucHJvdG90eXBlLm90RmV0Y2hPZmZsaW5lRmlsZT1mdW5jdGlvbihhLApiLGMpe3ZhciBkPShhPWEucmVwbGFjZSgiLmpzb24iLCIuanMiKSkuc3BsaXQoIi8iKSxlPWRbZC5sZW5ndGgtMV0uc3BsaXQoIi5qcyIpWzBdO3RoaXMuanNvbnAoYSxmdW5jdGlvbigpe2MoYix3aW5kb3dbZV0pfSl9LGwucHJvdG90eXBlLmpzb25wPWZ1bmN0aW9uKGEsYixjLGQpe3ZvaWQgMD09PWMmJihjPSExKTt2b2lkIDA9PT1kJiYoZD0iIik7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksZj15LmNyZWF0ZVNjcmlwdFVSTChhKTtlLnNldEF0dHJpYnV0ZSgic3JjIixmKTtlLmFzeW5jPSEwO2UudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtjJiZkJiYoZS5pbnRlZ3JpdHk9ZCk7dGhpcy5ub25jZSYmZS5zZXRBdHRyaWJ1dGUoIm5vbmNlIix0aGlzLm5vbmNlKTt0aGlzLmNyb3NzT3JpZ2luJiZlLnNldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iLHRoaXMuY3Jvc3NPcmlnaW4pO2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoZSk7ClJlZ0V4cCgiXmZpbGU6Ly8iLCJpIikudGVzdChhKXx8Zy5tb2JpbGVPbmxpbmVVUkwucHVzaChhKTtiJiYoZS5vbmxvYWQ9ZS5vbmVycm9yPWZ1bmN0aW9uKCl7YigpfSl9LGwucHJvdG90eXBlLmdldFJlZ2lvblNldD1mdW5jdGlvbihhKXt2YXIgYixjPWcudXNlckxvY2F0aW9uLGQ9YS5SdWxlU2V0LmZpbHRlcihmdW5jdGlvbih3KXtyZXR1cm4hMD09PXcuRGVmYXVsdH0pO2lmKCFjLmNvdW50cnkmJiFjLnN0YXRlKXJldHVybiBkJiYwPGQubGVuZ3RoP2RbMF06bnVsbDtkPWMuc3RhdGUudG9Mb3dlckNhc2UoKTtjPWMuY291bnRyeS50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgZT0wO2U8YS5SdWxlU2V0Lmxlbmd0aDtlKyspaWYoITA9PT1hLlJ1bGVTZXRbZV0uR2xvYmFsKXZhciBmPWEuUnVsZVNldFtlXTtlbHNle3ZhciBrPWEuUnVsZVNldFtlXS5TdGF0ZXM7aWYoa1tjXSYmMDw9a1tjXS5pbmRleE9mKGQpKXt2YXIgcT1hLlJ1bGVTZXRbZV07YnJlYWt9MDw9YS5SdWxlU2V0W2VdLkNvdW50cmllcy5pbmRleE9mKGMpJiYKKGI9YS5SdWxlU2V0W2VdKX1yZXR1cm4gcXx8Ynx8Zn0sbC5wcm90b3R5cGUuZW5zdXJlSHRtbEdyb3VwRGF0YUluaXRpYWxpc2VkPWZ1bmN0aW9uKCl7IklBQjIiIT09dGhpcy5pYWJUeXBlJiYiSUFCMlYyIiE9PXRoaXMuaWFiVHlwZXx8dGhpcy5pbml0aWFsaXplSUFCRGF0YSgpO3RoaXMuaW5pdEdyb3VwcygpO3RoaXMuaW5pdEhvc3RzKCk7dGhpcy5pbml0R2VuVmVuKCk7dGhpcy5pbml0VmVuZG9yc1NlcnZpY2UoKX0sbC5wcm90b3R5cGUuaW5pdEdyb3Vwcz1mdW5jdGlvbigpe3ZhciBhPXRoaXMucmVhZENvb2tpZVBhcmFtKGcub3B0YW5vbkNvb2tpZSwiZ3JvdXBzIik7YSYmKGcub3B0YW5vbkh0bWxHcm91cERhdGE9dGhpcy5kZXNlcmlhbGlzZVN0cmluZ1RvQXJyYXkoYSkpfSxsLnByb3RvdHlwZS5pbml0SG9zdHM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnJlYWRDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsImhvc3RzIik7YSYmKGcub3B0YW5vbkhvc3REYXRhPXRoaXMuZGVzZXJpYWxpc2VTdHJpbmdUb0FycmF5KGEpKX0sCmwucHJvdG90eXBlLmluaXRHZW5WZW49ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnJlYWRDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsImdlblZlbmRvcnMiKTthJiYoZy5nZW5WZW5kb3JzRGF0YT10aGlzLmRlc2VyaWFsaXNlU3RyaW5nVG9BcnJheShhKSl9LGwucHJvdG90eXBlLmluaXRWZW5kb3JzU2VydmljZT1mdW5jdGlvbigpe3ZhciBhPXRoaXMucmVhZENvb2tpZVBhcmFtKGcub3B0YW5vbkNvb2tpZSwidnMiKTthJiYoZy52ZW5kb3JzU2VydmljZURhdGE9dGhpcy5kZXNlcmlhbGlzZVN0cmluZ1RvQXJyYXkoYSkpfSxsLnByb3RvdHlwZS5pbml0aWFsaXplSUFCRGF0YT1mdW5jdGlvbigpe3RoaXMudmFsaWRhdGVHRFBSQXBwbGllcygpO3RoaXMudmFsaWRhdGVJQUJHbG9iYWwoKX0sbC5wcm90b3R5cGUudmFsaWRhdGVJQUJHbG9iYWw9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnJlYWRDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsZy5pc0lhYkdsb2JhbCk7YT8idHJ1ZSI9PT0KYT8oZy5oYXNJQUJHbG9iYWxTY29wZT0hMCxnLmlzU3R1YlJlYWR5PSExKTooZy5oYXNJQUJHbG9iYWxTY29wZT0hMSxnLklBQkNvb2tpZVZhbHVlPXRoaXMuZ2V0Q29va2llKGcuSWFiMlB1YikpOmcuaXNTdHViUmVhZHk9ITF9LGwucHJvdG90eXBlLnZhbGlkYXRlR0RQUkFwcGxpZXM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnJlYWRDb29raWVQYXJhbShnLm9wdGFub25Db29raWUsZy5nZW9Db29raWUpLnNwbGl0KCI7IilbMF07YT9nLmdkcHJBcHBsaWVzPTA8PWcuRVVDT1VOVFJJRVMuaW5kZXhPZihhKTpnLmlzU3R1YlJlYWR5PSExfSxsLnByb3RvdHlwZS53cml0ZUNvb2tpZVBhcmFtPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17fSxlPXRoaXMuZ2V0Q29va2llKGEpO2lmKGUpe2U9ZS5zcGxpdCgiXHgyNiIpO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7Zis9MSl7dmFyIGs9ZVtmXS5zcGxpdCgiXHgzZCIpO2RbZGVjb2RlVVJJQ29tcG9uZW50KGtbMF0pXT1kZWNvZGVVUklDb21wb25lbnQoa1sxXSkucmVwbGFjZSgvXCsvZywKIiAiKX19ZFtiXT1jO2I9KGU9dGhpcy5hcGlSZXN1bHQuZG9tYWluRGF0YS5UZW5hbnRGZWF0dXJlcykmJmUuQ29va2llVjJDb29raWVEYXRlVGltZUluSVNPO2QuZGF0ZXN0YW1wPWI/KG5ldyBEYXRlKS50b0lTT1N0cmluZygpOihuZXcgRGF0ZSkudG9TdHJpbmcoKTtkLnZlcnNpb249dGhpcy5hcGlSZXN1bHQuZG9tYWluRGF0YS5WZXJzaW9uO3RoaXMuc2V0Q29va2llKGEsdGhpcy5wYXJhbShkKSl9LGwucHJvdG90eXBlLnBhcmFtPWZ1bmN0aW9uKGEpe3ZhciBiLGM9IiI7Zm9yKGIgaW4gYSlhLmhhc093blByb3BlcnR5KGIpJiYoIiIhPT1jJiYoYys9Ilx4MjYiKSxjKz1iKyJceDNkIitlbmNvZGVVUklDb21wb25lbnQoYVtiXSkucmVwbGFjZSgvJTIwL2csIisiKSk7cmV0dXJuIGN9LGwucHJvdG90eXBlLnJlYWRDb29raWVQYXJhbT1mdW5jdGlvbihhLGIpe2lmKGE9dGhpcy5nZXRDb29raWUoYSkpe3ZhciBjPXt9O3ZhciBkPWEuc3BsaXQoIlx4MjYiKTtmb3IoYT0wO2E8ZC5sZW5ndGg7YSs9CjEpe3ZhciBlPWRbYV0uc3BsaXQoIlx4M2QiKTtjW2RlY29kZVVSSUNvbXBvbmVudChlWzBdKV09ZGVjb2RlVVJJQ29tcG9uZW50KGVbMV0pLnJlcGxhY2UoL1wrL2csIiAiKX1yZXR1cm4gYj9jW2JdfHwiIjpjfXJldHVybiIifSxsLnByb3RvdHlwZS5nZXRDb29raWVOYW1lU3VmZml4PWZ1bmN0aW9uKCl7dmFyIGEsYj1udWxsPT0oYj10aGlzLmFwaVJlc3VsdCk/dm9pZCAwOmIuZG9tYWluRGF0YTtyZXR1cm4obnVsbD09KGE9Yik/dm9pZCAwOmEuU2NyaXB0VHlwZSk9PT1OJiZiLlN1YkRvbWFpbkVuYWJsZWQmJmIuRG9tYWluSGFzaFZhbHVlPyJfIitiLkRvbWFpbkhhc2hWYWx1ZToiIn0sbC5wcm90b3R5cGUuc2V0Q29va2llPWZ1bmN0aW9uKGEsYixjKXt2b2lkIDA9PT1iJiYoYj0iIik7dm9pZCAwPT09YyYmKGM9ITEpO3RoaXMuaXNBbXAmJiIiIT09YiYmKHRoaXMuYW1wRGF0YVthXT1iKTt2YXIgZD1uZXcgRGF0ZTtkPShkLnNldFRpbWUoZC5nZXRUaW1lKCkrMzE1MzZFNiksIjtleHBpcmVzXHgzZCIrCmQudG9VVENTdHJpbmcoKSk7Yz0oYyYmKGQ9Yz8iOyBleHBpcmVzXHgzZCIrKG5ldyBEYXRlKDApKS50b1VUQ1N0cmluZygpOiIiKSx0aGlzLmFwaVJlc3VsdC5kb21haW5EYXRhKTt2YXIgZT0oYy5UZW5hbnRGZWF0dXJlcyxjLkNvb2tpZVNhbWVTaXRlTm9uZUVuYWJsZWQ/IlNhbWVzaXRlXHgzZE5vbmU7IFNlY3VyZSI6IlNhbWVzaXRlXHgzZExheCIpLGY9KGMuQ29va2llU2FtZVNpdGVOb25lRW5hYmxlZCYmYy5QYXJ0aXRpb25lZENvb2tpZUVuYWJsZWQmJihlKz0iOyBQYXJ0aXRpb25lZCIpLGMuRG9tYWluLnNwbGl0KCIvIikpLGs9MT49Zi5sZW5ndGg/IiI6Zi5zbGljZSgxKS5qb2luKCIvIik7Yj0iIitiK2QrIjtwYXRoXHgzZC8iO2Q9IlRFU1QiPT09Yy5TY3JpcHRUeXBlfHwiTE9DQUxfVEVTVCI9PT1jLlNjcmlwdFR5cGU7Yz1hK3RoaXMuZ2V0Q29va2llTmFtZVN1ZmZpeCgpO2I9ZCYmIXRoaXMuaXNQcmV2aWV3P2IrIjsiK2U6IiIrYitrKyI7ZG9tYWluXHgzZC4iK2ZbMF0rCiI7IitlO2RvY3VtZW50LmNvb2tpZT1jKyJceDNkIitifSxsLnByb3RvdHlwZS5nZXRDb29raWU9ZnVuY3Rpb24oYSl7aWYodGhpcy5pc0FtcCYmKHRoaXMuYW1wRGF0YT1KU09OLnBhcnNlKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShnLmRvbWFpbklkKSl8fHt9LHRoaXMuYW1wRGF0YSkpcmV0dXJuIHRoaXMuYW1wRGF0YVthXXx8bnVsbDthPSIiK2ErdGhpcy5nZXRDb29raWVOYW1lU3VmZml4KCkrIlx4M2QiO2Zvcih2YXIgYj0wLGM9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iik7YjxjLmxlbmd0aDtiKyspe3ZhciBkPWNbYl0udHJpbSgpO2lmKDA9PT1kLmluZGV4T2YoYSkpcmV0dXJuIGQuc3Vic3RyaW5nKGEubGVuZ3RoKX1yZXR1cm4gbnVsbH0sbC5wcm90b3R5cGUucmVtb3ZlQ29va2llcz1mdW5jdGlvbigpe3RoaXMucmVtb3ZlQWxlcnRCb3goKTt0aGlzLnJlbW92ZU9wdGFub24oKTt0aGlzLnJlbW92ZUlhYjIoKTt0aGlzLnJlbW92ZUFkZHRsU3RyKCl9LGwucHJvdG90eXBlLnJlbW92ZUFsZXJ0Qm94PQpmdW5jdGlvbigpe251bGwhPT10aGlzLmdldENvb2tpZSgiT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkIikmJnRoaXMuc2V0Q29va2llKCJPcHRhbm9uQWxlcnRCb3hDbG9zZWQiLCIiLCEwKX0sbC5wcm90b3R5cGUucmVtb3ZlSWFiMj1mdW5jdGlvbigpe251bGwhPT10aGlzLmdldENvb2tpZSgiZXVwdWJjb25zZW50LXYyIikmJnRoaXMuc2V0Q29va2llKCJldXB1YmNvbnNlbnQtdjIiLCIiLCEwKX0sbC5wcm90b3R5cGUucmVtb3ZlQWRkdGxTdHI9ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5nZXRDb29raWUoIk9UQWRkaXRpb25hbENvbnNlbnRTdHJpbmciKSYmdGhpcy5zZXRDb29raWUoIk9UQWRkaXRpb25hbENvbnNlbnRTdHJpbmciLCIiLCEwKX0sbC5wcm90b3R5cGUucmVtb3ZlT3B0YW5vbj1mdW5jdGlvbigpe251bGwhPT10aGlzLmdldENvb2tpZSgiT3B0YW5vbkNvbnNlbnQiKSYmdGhpcy5zZXRDb29raWUoIk9wdGFub25Db25zZW50IiwiIiwhMCl9LGwucHJvdG90eXBlLnVwZGF0ZUd0bU1hY3Jvcz0KZnVuY3Rpb24oKXtmb3IodmFyIGE9W10sYj1nLm9wdGFub25IdG1sR3JvdXBEYXRhLmxlbmd0aCxjPTA7YzxiO2MrKyl0aGlzLmVuZHNXaXRoKGcub3B0YW5vbkh0bWxHcm91cERhdGFbY10sIjoxIikmJmEucHVzaChnLm9wdGFub25IdG1sR3JvdXBEYXRhW2NdLnJlcGxhY2UoIjoxIiwiIikpO2I9Zy5vcHRhbm9uSG9zdERhdGEubGVuZ3RoO2ZvcihjPTA7YzxiO2MrKyl0aGlzLmVuZHNXaXRoKGcub3B0YW5vbkhvc3REYXRhW2NdLCI6MSIpJiZhLnB1c2goZy5vcHRhbm9uSG9zdERhdGFbY10ucmVwbGFjZSgiOjEiLCIiKSk7Yj1nLmdlblZlbmRvcnNEYXRhLmxlbmd0aDtmb3IoYz0wO2M8YjtjKyspdGhpcy5lbmRzV2l0aChnLmdlblZlbmRvcnNEYXRhW2NdLCI6MSIpJiZhLnB1c2goZy5nZW5WZW5kb3JzRGF0YVtjXS5yZXBsYWNlKCI6MSIsIiIpKTtiPWcudmVuZG9yc1NlcnZpY2VEYXRhLmxlbmd0aDtmb3IoYz0wO2M8YjtjKyspdGhpcy5lbmRzV2l0aChnLnZlbmRvcnNTZXJ2aWNlRGF0YVtjXSwKIjoxIikmJmEucHVzaChnLnZlbmRvcnNTZXJ2aWNlRGF0YVtjXS5yZXBsYWNlKCI6MSIsIiIpKTt2YXIgZDtiPXdpbmRvdztjPSIsIit0aGlzLnNlcmlhbGlzZUFycmF5VG9TdHJpbmcoYSkrIiwiO3ZhciBlPShiLk9uZXRydXN0QWN0aXZlR3JvdXBzPWMsYi5PcHRhbm9uQWN0aXZlR3JvdXBzPWMsdGhpcy5vdERhdGFMYXllci5pZ25vcmV8fHZvaWQgMD09PWJbdGhpcy5vdERhdGFMYXllci5uYW1lXT90aGlzLm90RGF0YUxheWVyLmlnbm9yZXx8KGJbdGhpcy5vdERhdGFMYXllci5uYW1lXT1be2V2ZW50OiJPbmVUcnVzdExvYWRlZCIsT25ldHJ1c3RBY3RpdmVHcm91cHM6Y30se2V2ZW50OiJPcHRhbm9uTG9hZGVkIixPcHRhbm9uQWN0aXZlR3JvdXBzOmN9XSk6Ylt0aGlzLm90RGF0YUxheWVyLm5hbWVdLmNvbnN0cnVjdG9yPT09QXJyYXkmJihiW3RoaXMub3REYXRhTGF5ZXIubmFtZV0ucHVzaCh7ZXZlbnQ6Ik9uZVRydXN0TG9hZGVkIixPbmV0cnVzdEFjdGl2ZUdyb3VwczpjfSksCmJbdGhpcy5vdERhdGFMYXllci5uYW1lXS5wdXNoKHtldmVudDoiT3B0YW5vbkxvYWRlZCIsT3B0YW5vbkFjdGl2ZUdyb3VwczpjfSkpLG5ldyBDdXN0b21FdmVudCgiY29uc2VudC5vbmV0cnVzdCIse2RldGFpbDphfSkpOyF0aGlzLm90RGF0YUxheWVyLmlnbm9yZSYmYS5sZW5ndGgmJihiW3RoaXMub3REYXRhTGF5ZXIubmFtZV0uY29uc3RydWN0b3I9PT1BcnJheSYmYlt0aGlzLm90RGF0YUxheWVyLm5hbWVdLnB1c2goe2V2ZW50OiJPbmVUcnVzdEdyb3Vwc1VwZGF0ZWQiLE9uZXRydXN0QWN0aXZlR3JvdXBzOmN9KSxkPW5ldyBDdXN0b21FdmVudCgiT25lVHJ1c3RHcm91cHNVcGRhdGVkIix7ZGV0YWlsOmF9KSk7c2V0VGltZW91dChmdW5jdGlvbigpe2EubGVuZ3RoJiZ3aW5kb3cuZGlzcGF0Y2hFdmVudChlKTtkJiZ3aW5kb3cuZGlzcGF0Y2hFdmVudChkKX0pfSxsLnByb3RvdHlwZS5kZXNlcmlhbGlzZVN0cmluZ1RvQXJyYXk9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/YS5zcGxpdCgiLCIpOgpbXX0sbC5wcm90b3R5cGUuZW5kc1dpdGg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4tMSE9PWEuaW5kZXhPZihiLGEubGVuZ3RoLWIubGVuZ3RoKX0sbC5wcm90b3R5cGUuc2VyaWFsaXNlQXJyYXlUb1N0cmluZz1mdW5jdGlvbihhKXtyZXR1cm4gYS50b1N0cmluZygpfSxsLnByb3RvdHlwZS5nZXRTdHViQXR0ck9yUXVlcnlQYXJhbT1mdW5jdGlvbihhKXt2YXIgYj1nLnN0dWJTY3JFbCxjPWImJmIuZ2V0QXR0cmlidXRlKGEpO3JldHVybiBjfHwoYz1iJiZiLmdldEF0dHJpYnV0ZSgic3JjIiksdGhpcy5nZXRTdHViUXVlcnlQYXJhbShjLGEpKX0sbC5wcm90b3R5cGUuZ2V0U3R1YlF1ZXJ5UGFyYW09ZnVuY3Rpb24oYSxiKXtyZXR1cm4hYXx8Mj4oYT1hLnNwbGl0KCI/IikpLmxlbmd0aD9udWxsOihuZXcgVVJMU2VhcmNoUGFyYW1zKGFbMV0pKS5nZXQoYil9LGwucHJvdG90eXBlLnNldERvbWFpbkRhdGFGaWxlVVJMPWZ1bmN0aW9uKCl7Zy5zdHViU2NyRWw9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W3NyYypceDNkJyIrCmcuc3R1Yk5hbWUrIiddIik7Zy5zdHViU2NyRWwmJmcuc3R1YlNjckVsLmhhc0F0dHJpYnV0ZShnLmRvbWFpbkF0dHIpJiYoZy5kb21haW5JZD1nLnN0dWJTY3JFbC5nZXRBdHRyaWJ1dGUoZy5kb21haW5BdHRyKS50cmltKCksZy5zdG9yYWdlQmFzZVVSTD1nLnN0dWJTY3JFbC5nZXRBdHRyaWJ1dGUoInNyYyIpLnNwbGl0KCIvY29uc2VudCIpWzBdLHRoaXMuaXNQcmV2aWV3JiYtMT09PWcuZG9tYWluSWQuaW5kZXhPZigidGVzdCIpP2cuZG9tYWluSWQrPSItdGVzdCI6dGhpcy5pc1ByZXZpZXc9ITEsZy5kb21haW5CYXNlVXJsPWcuc3RvcmFnZUJhc2VVUkwmJmcuc3RvcmFnZUJhc2VVUkwrIi9jb25zZW50LyIrZy5kb21haW5JZCxnLmRvbWFpbkpzb25Vcmw9Zy5kb21haW5CYXNlVXJsKyIvIitnLmRvbWFpbklkKyIuanNvbiIpfSxsLnByb3RvdHlwZS5pbml0Q3VzdG9tRXZlbnRQb2x5ZmlsbD1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtjPWN8fHtidWJibGVzOiExLGNhbmNlbGFibGU6ITEsCmRldGFpbDp2b2lkIDB9O3ZhciBkPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJDdXN0b21FdmVudCIpO3JldHVybiBkLmluaXRDdXN0b21FdmVudChiLGMuYnViYmxlcyxjLmNhbmNlbGFibGUsYy5kZXRhaWwpLGR9aWYoImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5DdXN0b21FdmVudClyZXR1cm4hMTthLnByb3RvdHlwZT13aW5kb3cuRXZlbnQucHJvdG90eXBlO3dpbmRvdy5DdXN0b21FdmVudD1hfSxsLnByb3RvdHlwZS5yZW1vdmVUY2Y9ZnVuY3Rpb24oKXtkZWxldGUgd2luZG93Ll9fdGNmYXBpO3ZhciBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImlmcmFtZVtuYW1lXHgzZCdfX3RjZmFwaUxvY2F0b3InXSIpWzBdO2EmJmEucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChhKX0sbC5wcm90b3R5cGUuZ2V0UGFyYW1Gb3JJRT1mdW5jdGlvbigpe3JldHVybntnZXQ6ZnVuY3Rpb24oYSl7YT0obmV3IFJlZ0V4cCgiWz9ceDI2XSIrYSsiXHgzZChbXlx4MjYjXSopIikpLmV4ZWMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7CnJldHVybiBudWxsPT09YT9udWxsOmRlY29kZVVSSShhWzFdKXx8IiJ9fX0sbC5wcm90b3R5cGUuZ2V0UGFyYW09ZnVuY3Rpb24oKXt3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHwhd2luZG93LlVSTFNlYXJjaFBhcmFtcz90aGlzLnVybFBhcmFtcz10aGlzLmdldFBhcmFtRm9ySUUoKTp0aGlzLnVybFBhcmFtcz1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO3ZhciBhPSJ0cnVlIj09PXRoaXMudXJsUGFyYW1zLmdldCgib3RyZXNldCIpLGI9InRydWUiPT09dGhpcy51cmxQYXJhbXMuZ2V0KCJvdHByZXZpZXciKSxjPSh0aGlzLmdlb0Zyb21Vcmw9KHRoaXMudXJsUGFyYW1zLmdldCgib3RnZW8iKXx8IiIpLnRvTG93ZXJDYXNlKCksdGhpcy5yZWFkQ29va2llUGFyYW0oIm90cHJldmlldyIsImV4cGlyeSIpKSxkPXRoaXMucmVhZENvb2tpZVBhcmFtKCJvdHByZXZpZXciLFIpO3RoaXMuaXNSZXNldD1hfHxjJiZuZXcgRGF0ZShjKTxuZXcgRGF0ZTsKdGhpcy5pc1ByZXZpZXc9IXRoaXMuaXNSZXNldCYmKGJ8fGMmJm5ldyBEYXRlKGMpPm5ldyBEYXRlKTt0aGlzLnNldEdlb1BhcmFtKHRoaXMuZ2VvRnJvbVVybHx8ZCl9LGwucHJvdG90eXBlLnNldEdlb1BhcmFtPWZ1bmN0aW9uKGEpe3ZhciBiO2EmJigoYj13aW5kb3cpLk9uZVRydXN0fHwoYi5PbmVUcnVzdD17fSksYT1hLnNwbGl0KCIsIiksYi5PbmVUcnVzdC5nZW9sb2NhdGlvblJlc3BvbnNlPXtjb3VudHJ5Q29kZTphWzBdLHN0YXRlQ29kZTphWzFdfSl9LGwucHJvdG90eXBlLmNhcHR1cmVOb25jZT1mdW5jdGlvbigpe3RoaXMubm9uY2U9Zy5zdHViU2NyRWwubm9uY2V8fGcuc3R1YlNjckVsLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8bnVsbH0sbCkseD1uZXcgcDtyZXR1cm4gbS5PdFNES1N0dWI9cCxtLm90U2RrU3R1Yj14LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxtfSkoe30pOw=="}},"time_used":24,"timings":{"blocked":0,"dns":3,"connect":2,"send":0,"wait":12,"receive":0,"ssl":7},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"accounts.google.com/gsi/style","fqdn":"accounts.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:06.384Z","timestamp":1785108246384,"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 /gsi/style HTTP/1.1\r\nHost: accounts.google.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\nReferer: https://www.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css; charset=utf-8\r\nexpires: Sun, 26 Jul 2026 23:24:06 GMT\r\ndate: Sun, 26 Jul 2026 23:24:06 GMT\r\ncache-control: private, max-age=86400\r\ncontent-security-policy: require-trusted-types-for 'script';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http, script-src 'nonce-36MM-Ib6eAoVPAEOnxlP2g' 'unsafe-inline' 'strict-dynamic' https: http: 'unsafe-eval';object-src 'none';base-uri 'self';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http\r\nreport-to: {\"group\":\"coop_dd7de8473bddc59c6b748810a67a39b1\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/dd7de8473bddc59c6b748810a67a39b1\"}]}\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"coop_dd7de8473bddc59c6b748810a67a39b1\"\r\ncross-origin-resource-policy: cross-origin\r\ncontent-encoding: gzip\r\nserver: ESF\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":696,"size_decoded":1373,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (696), with no line terminators","md5":"ee570cebd6ae40b9567844b080aee1e9","sha1":"2b7b0ffcfe8aca40ced147fb7ce107010392d6b9","sha256":"d49e8f04be7ccbb69e87ae474ee50f6903b780451989e66d35ffc247a80510fe","sha512":"836c832111c285f7cb692c4eb62e2bca615017b6ab4af6920674f17df0ae1da040f7171208d5d312c3c43ed8ed7e49b653e7fce0948f24076d0548f7c8e8f25a","ssdeep":"","tlshash":"430197321aa2602eecb3ab3bf04a9d8c023aa117eeb705ccb59cca15c38d95874a5041","first_seen":"2025-10-22T21:08:41.081019Z","last_seen":"2026-07-27T01:55:35.462851Z","times_seen":80027,"resource_available":false,"data":"I2NyZWRlbnRpYWxfcGlja2VyX2NvbnRhaW5lcntib3JkZXI6bm9uZTtoZWlnaHQ6MzMwcHg7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MjBweDt0b3A6MjBweDt3aWR0aDozOTFweDt6LWluZGV4Ojk5OTl9I2NyZWRlbnRpYWxfcGlja2VyX2NvbnRhaW5lciAuTDVGbzZjLVBRYkxHZXtib3JkZXI6bm9uZTt3aWR0aDozOTFweDtoZWlnaHQ6MzMwcHh9QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQxMHB4KXsjY3JlZGVudGlhbF9waWNrZXJfY29udGFpbmVye292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztyaWdodDowO3dpZHRoOjEwMHZ3fSNjcmVkZW50aWFsX3BpY2tlcl9jb250YWluZXIgLkw1Rm82Yy1QUWJMR2V7d2lkdGg6MTAwdnd9fSNnX2ExMXlfYW5ub3VuY2VtZW50e2hlaWdodDoxcHg7bGVmdDotMTAwMDBweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOmF1dG87d2lkdGg6MXB4fS5MNUZvNmMtc001TU5ie2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7bGVmdDowO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDowfS5MNUZvNmMtYkYxdVVie2JvcmRlci1yYWRpdXM6NHB4O2JvdHRvbTowO2N1cnNvcjpwb2ludGVyO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowfS5MNUZvNmMtYkYxdVViOmZvY3Vze2JvcmRlcjpub25lO291dGxpbmU6bm9uZX1zZW50aW5lbHt9"}},"time_used":65,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":64,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"accounts.google.com/gsi/status?client_id=1080018929571-t143o72j7g4a93rio80higse5c127qlt.apps.googleusercontent.com\u0026cas=tYcp3aRHSWawun2rqtOmc7%2F9fiTH9%2FUuSu%2B5xnmHxlU\u0026bs=Ipbn%2F3QC3VM9I38GIrtJVmLS5Dk1IjofnbHBYLgAhPQ\u0026is_itp=true","fqdn":"accounts.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:06.389Z","timestamp":1785108246389,"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 /gsi/status?client_id=1080018929571-t143o72j7g4a93rio80higse5c127qlt.apps.googleusercontent.com\u0026cas=tYcp3aRHSWawun2rqtOmc7%2F9fiTH9%2FUuSu%2B5xnmHxlU\u0026bs=Ipbn%2F3QC3VM9I38GIrtJVmLS5Dk1IjofnbHBYLgAhPQ\u0026is_itp=true HTTP/1.1\r\nHost: accounts.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://www.coinbase.com/\r\nOrigin: https://www.coinbase.com\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/json; charset=utf-8\r\nvary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site\r\nx-content-type-options: nosniff\r\naccess-control-allow-origin: https://www.coinbase.com\r\naccess-control-allow-credentials: true\r\naccess-control-allow-methods: GET\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: Sun, 26 Jul 2026 23:24:06 GMT\r\ncontent-disposition: attachment; filename=\"json.txt\"; filename*=UTF-8''json.txt\r\ncontent-security-policy: script-src 'nonce-Y0Dier42E6f_-qNchvtXJA' 'unsafe-inline' 'strict-dynamic' https: http: 'unsafe-eval';object-src 'none';base-uri 'self';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http, require-trusted-types-for 'script';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"coop_dd7de8473bddc59c6b748810a67a39b1\"\r\nreport-to: {\"group\":\"coop_dd7de8473bddc59c6b748810a67a39b1\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/dd7de8473bddc59c6b748810a67a39b1\"}]}\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\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":79,"size_decoded":1381,"mime_type":"application/json; charset=utf-8","magic":"ASCII text","md5":"2468fa453fee9d7ec0d12021a7b14982","sha1":"4d94c7e142a46637f0096331e99c155d2726f0d0","sha256":"c5f9df782df88f15a9af50dad3720525ec966488c6e69c48096a91f57e3050e9","sha512":"a47a235e984f3f39c5a28286b1f06113b5888567d08225563c33d4ecb34324bd80c3a714876f89c7839217ee024941e2398e69c1d313f5230b4e100b05157434","ssdeep":"","tlshash":"78a0121205d73c93446151400092194441b8a183347a053c00850e0f19b18161970000","first_seen":"2026-07-26T23:24:50.269924Z","last_seen":"2026-07-26T23:24:50.269924Z","times_seen":1,"resource_available":false,"data":"KV19JwpbWyJQNFlWOUJ1dUpmYlBraGdlZElnSEI2OEljOHRaZXB0RDlXMzJ2Mnc5Ymo4Il0sbnVsbCwwLDEsMSw5MCwxMjAsbnVsbCwwXQ=="}},"time_used":131,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":131,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_BDyAm2xz.woff2","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.166Z","timestamp":1785108244166,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_BDyAm2xz.woff2 HTTP/1.1\r\nHost: www.coinbase.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.coinbase.com/assets/sw-cache/a_m3m7GXAn.css\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: font/woff2\r\ncontent-length: 40632\r\nlast-modified: Tue, 07 Apr 2026 21:04:31 GMT\r\netag: \"62bf1b795c1ad225811afd9715abdc90\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 146c0f4d7da9f5b3108ac41c3becbb82.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: FRA60-P6\r\nx-amz-cf-id: hdZPP_fd1ePpNWpgn-ziAZmnkRxGYs6VMFyErbQjTol7rQ3orDcy5Q==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 8309982\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nvary: accept-encoding\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=RmVLctfIecXE0VP1okQW%2Bhj5VbM6WW92u4tlUvHtVry5OW8vz0oqKet2xEvTrFPvyO1F5U%2FooY6HM5%2FX%2FDjPH19Gwt2NAukc0WSj6GTDHWHV12lKRSP1UEXTdNS8fUpMaUO9TpYnt%2BufWADoJEaZ\"}]}\r\ncf-ray: a21727de09660883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":40632,"size_decoded":41759,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 40632, version 1.2097","md5":"62bf1b795c1ad225811afd9715abdc90","sha1":"0ddcce99464162ee676d81ac4bba9dcb001aa40f","sha256":"881387e5619f45f03a99e2fa88a752237343c0bef2414425c3219031653ce45f","sha512":"f59286ca8381ea5f1c29ce03b2d6baf862adb0c0b124dcfd9363fbe214da7e739f86c863a104f3b37942359c45a9a039d6b759c3f47a9745f7caa489ac2cecaa","ssdeep":"768:7ULSNCQzC5hiA5z9A2Y76nwuLRhVGviFiqSbi7cpR:j0iAZO2nwuswiEM","tlshash":"c703f1c427b02afe5e86347ab4c351497bea1814914b8b79405546feb07eca157abc33","first_seen":"2023-04-22T15:10:15Z","last_seen":"2026-07-26T23:25:46.820498Z","times_seen":425,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"dynamic-assets.coinbase.com/dbb4b4983bde81309ddab83eb598358eb44375b930b94687ebe38bc22e52c3b2125258ffb8477a5ef22e33d6bd72e32a506c391caa13af64c00e46613c3e5806/asset_icons/4113b082d21cc5fab17fc8f2d19fb996165bcce635e6900f7fc2d57c4ef33ae9.png","fqdn":"dynamic-assets.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.054Z","timestamp":1785108244054,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /dbb4b4983bde81309ddab83eb598358eb44375b930b94687ebe38bc22e52c3b2125258ffb8477a5ef22e33d6bd72e32a506c391caa13af64c00e46613c3e5806/asset_icons/4113b082d21cc5fab17fc8f2d19fb996165bcce635e6900f7fc2d57c4ef33ae9.png HTTP/1.1\r\nHost: dynamic-assets.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-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\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: image/png\r\ncontent-length: 1977\r\nlast-modified: Mon, 12 Oct 2020 02:31:00 GMT\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\netag: \"3c1f9048ed6ec12087ebac1ef01a19e9\"\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 95f719856b35c3a7e9bc14f3202145a6.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: FRA60-P14\r\nx-amz-cf-id: UmbPe2HgcGsv6dujuBC8egCXlbC2Yxf8emhrmEEl5BwdjS1-Le2c-A==\r\ncf-bgj: h2pri,imgq:100\r\npriority: u=4;i=?0,cf-chb=(37;u=2;i=?0 539;u=5;i=?0)\r\nx-content-type-options: nosniff\r\ncf-polished: ok, orig_size=4112\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=yzZ6VGJInCclXyVgtSQ67shmBN9FrnEJvH4G%2FqwT3mdPPBWHhmgfSd2l0PAvqqDndFdAzoNEra6s5T5pQvUQxT43qh%2F%2FzT39MscMXJLqbrpT3npF8RlBqYkj%2B4GY%2BRrHs8%2FULjoAnSfM1G8MZVmO\"}]}\r\nage: 6566\r\nexpires: Mon, 27 Jul 2026 01:24:04 GMT\r\ncache-control: public, max-age=7200\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\ncf-ray: a21727dd5ffd0883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1977,"size_decoded":3171,"mime_type":"image/png","magic":"PNG image data, 128 x 128, 8-bit colormap, non-interlaced","md5":"e8fb59288450a15ee43f3b7bd0656389","sha1":"50076edef7aea55a7e3e3778fb6e87e0114d86f9","sha256":"2a4b621937fffdffc39d88e5714e9b7796dde6fcb132142e01be5194db4f8818","sha512":"537f755dbf83deddde893dbbdcde45d72e60d7b704c6cb905ed15508f3bcfbe55b677ce2b0100253647e655111f50379562e96acd4f170032fac1bf188061d72","ssdeep":"","tlshash":"51414cd04b070c7a9c09c8d13f22ac27a10764d557f24e8bcadaeb2d147d72510d0ef2","first_seen":"2024-07-29T18:53:15Z","last_seen":"2026-07-26T23:25:46.810729Z","times_seen":158,"resource_available":false,"data":"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"}},"time_used":14,"timings":{"blocked":-1,"dns":2,"connect":3,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CUCiUZKd.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.637Z","timestamp":1785108244637,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CUCiUZKd.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 1861\r\nlast-modified: Sun, 26 Jul 2026 22:31:21 GMT\r\netag: \"4a47d319bf750a289e67d8b0f8178796\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 55b12da2f11ad43ff6ba0165ec2762d4.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: mYWifZ8Qu0vg_tHKWJs09LegjZ8yBWk-ilveP9MJSIgTSsT3D5Lrqg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=UpralFYzR6u%2B8IfrsWL2%2B3eVrTqA%2FPfQhtevjPhih4H7MGUZByZ9kuN7spD%2BwR0Tr6VJLem77AETkxmuWdLdYhl0F9%2BA%2BWePsVHjkA8xGqmkR0nLGF%2F9fJ4f4TkhpQw40U%2BM%2Bo6KaBzAYJ4H6bGY\"}]}\r\ncf-ray: a21727e0fe570883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":5667,"size_decoded":3017,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (5628)","md5":"7c28094c13a1fd19d6889214c4b739da","sha1":"b489d8e14acb044b830b1de0c3be7cecf31056ca","sha256":"81cf3dcbaf641947bec8e8f525aff50990e35c80fef81fe2498bf2083f1d817e","sha512":"434abbd2ebc3d371600ae3fa3f3c0b14b4ccd89a31e069bfba470c87b973a32565f60f20253a9e0710633bc6180a5ecdcd060a77410e6f33faf5528d3b8498d1","ssdeep":"96:xWgX5O6yRKRhFNu5rrV/toK2kDtunXFu0TkMakfzhIU+4d1oKwpDJXFzzJUNmO:UgAYxMrB/toTk8n1uikDkfdIUNd1oBpO","tlshash":"f5c1e9cdf1b0bbb0948ac680847bc84bf21d2888501d66a4f7707d59369e4e79473f87","first_seen":"2026-07-26T23:24:50.273698Z","last_seen":"2026-07-26T23:25:46.880852Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDM0Mjc4NzIwLTBlZTAtNGQ1Mi1iMWJhLWM5NDMxNWYzMTNkYmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTM0Mjc4NzIwLTBlZTAtNGQ1Mi1iMWJhLWM5NDMxNWYzMTNkYmApfSkoKX1jYXRjaHt9aW1wb3J0e3QgYXMgZX1mcm9tIi4vY19CNXNTdnZtYy5qcyI7aW1wb3J0e1ZzIGFzIHQsV3AgYXMgbixYdSBhcyByLGJsIGFzIGksY2QgYXMgYSxkZCBhcyBvLGVsIGFzIHMsZmYgYXMgYyxoZiBhcyBsLG9kIGFzIHUsc2wgYXMgZCx4bCBhcyBmLHlsIGFzIHB9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBtPW4obCgpKSxoPWMoKSxnPShlLHQpPT5lLm1hcCgobixyKT0+KDAsaC5qc3gpKG0uRnJhZ21lbnQse2NoaWxkcmVuOigwLGguanN4cykoaC5GcmFnbWVudCx7Y2hpbGRyZW46W24sciE9PWUubGVuZ3RoLTEmJnRdfSl9LHIpKSxfPSgwLG0uY3JlYXRlQ29udGV4dCkoe2FjdGl2ZUtleTpudWxsLHNldEFjdGl2ZUtleTooKT0+e319KSx2PSgpPT4oMCxtLnVzZUNvbnRleHQpKF8pLHk9ZT0+e2xldHthY3RpdmVLZXk6dCxjaGlsZHJlbjpuLGRlZmF1bHRBY3RpdmVLZXk6aSxzZXRBY3RpdmVLZXk6YSxvbkNoYW5nZTpvfT1lLFtzLGNdPSgwLG0udXNlU3RhdGUpKGk/P251bGwpO2lmKHIoKSYmKHQhPT12b2lkIDAmJmE9PT12b2lkIDB8fHQ9PT12b2lkIDAmJmEhPT12b2lkIDApKXRocm93IEVycm9yKGBBIGNvbnRyb2xsZWQgQWNjb3JkaW9uIG11c3QgaGF2ZSBib3RoIGFjdGl2ZUtleSBhbmQgc2V0QWN0aXZlS2V5IHByb3BzYCk7bGV0W2w9bnVsbCx1XT1hP1t0LGFdOltzLGNdLGQ9KDAsbS51c2VDYWxsYmFjaykoZT0+e2xldCB0PXR5cGVvZiBlPT1gZnVuY3Rpb25gP2UobCk6ZTt0IT09bCYmKG89PW51bGx8fG8odCksdSh0KSl9LFtvLGwsdV0pLGY9KDAsbS51c2VNZW1vKSgoKT0+KHthY3RpdmVLZXk6bCxzZXRBY3RpdmVLZXk6ZH0pLFtsLGRdKTtyZXR1cm4oMCxoLmpzeCkoXy5Qcm92aWRlcix7dmFsdWU6ZixjaGlsZHJlbjpufSl9LGI9ZT0+e2xldHthY3RpdmVLZXk6dCxjaGlsZHJlbjpuLGRlZmF1bHRBY3RpdmVLZXk6cixvbkNoYW5nZTphLHNldEFjdGl2ZUtleTpjLHRlc3RJRDpsLHN0eWxlOnV9PW8oYEFjY29yZGlvbmAsZSk7cmV0dXJuKDAsaC5qc3gpKHkse2FjdGl2ZUtleTp0LGRlZmF1bHRBY3RpdmVLZXk6cixvbkNoYW5nZTphLHNldEFjdGl2ZUtleTpjLGNoaWxkcmVuOigwLGguanN4KShpLHtzdHlsZTp1LHRlc3RJRDpsLHdpZHRoOmAxMDAlYCxjaGlsZHJlbjpnKG0uQ2hpbGRyZW4udG9BcnJheShuKSwoMCxoLmpzeCkocyx7fSkpfSl9KX0seD17cGFkZGluZ1RvcDoyLHBhZGRpbmdYOjMscGFkZGluZ0JvdHRvbTozfSxTPS0xODAsQz1lPT5gYWNjb3JkaW9uLWl0ZW0tJHtlfS1oZWFkZXJgLHc9ZT0+YGFjY29yZGlvbi1pdGVtLSR7ZX0tcGFuZWxgO2Z1bmN0aW9uIFQoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBFKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP1QoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe0QoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6VChPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gRChlLHQsbil7cmV0dXJuKHQ9Tyh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBPKGUpe3ZhciB0PWsoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gayhlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfXZhciBBPWBiYXNlQ3NzLWJ0MXJsbjFgLGo9YHN1YnRpdGxlQ3NzLXN2ZTg5cG5gLE09YHRpdGxlQ3NzLXQxNjZhN25tYCxOPSgwLG0ubWVtbykoZT0+e2xldHttZWRpYTp0fT1lO3JldHVybigwLGguanN4KShhLHtmbGV4R3JvdzowLGZsZXhTaHJpbms6MCxjaGlsZHJlbjp0fSl9KSxQPSgwLG0ubWVtbykoZT0+e2xldHt0aXRsZTp0LHN1YnRpdGxlOm59PWU7cmV0dXJuKDAsaC5qc3gpKGEse2NsYXNzTmFtZTpNLGZsZXhHcm93OjEsZmxleFNocmluazoxLGp1c3RpZnlDb250ZW50OmBmbGV4LXN0YXJ0YCxjaGlsZHJlbjooMCxoLmpzeHMpKGkse2NoaWxkcmVuOlsoMCxoLmpzeCkodSx7YXM6YGRpdmAsZGlzcGxheTpgYmxvY2tgLGZvbnQ6YGhlYWRsaW5lYCxvdmVyZmxvdzpgd3JhcGAsY2hpbGRyZW46dH0pLCEhbiYmKDAsaC5qc3gpKHUse2FzOmBkaXZgLGNsYXNzTmFtZTpqLGNvbG9yOmBmZ011dGVkYCxkaXNwbGF5OmBibG9ja2AsZm9udDpgYm9keWAsb3ZlcmZsb3c6YHdyYXBgLGNoaWxkcmVuOm59KV19KX0pfSksRj0oMCxtLm1lbW8pKHQ9PntsZXR7Y29sbGFwc2VkOm59PXQ7cmV0dXJuKDAsaC5qc3gpKGEse2p1c3RpZnlDb250ZW50OmBmbGV4LWVuZGAsY2hpbGRyZW46KDAsaC5qc3gpKGUse3JvdGF0ZTpuP1M6MH0pfSl9KSxJPSgwLG0ubWVtbykoKDAsbS5mb3J3YXJkUmVmKSgoZSx0KT0+e2xldHtpdGVtS2V5Om4sdGl0bGU6cixzdWJ0aXRsZTppLG9uQ2xpY2s6YSxtZWRpYTpvLGNvbGxhcHNlZDpzPSExLHRlc3RJRDpjfT1lLHtzZXRBY3RpdmVLZXk6bCxhY3RpdmVLZXk6dX09digpLGc9cCgpLF89KDAsbS51c2VDYWxsYmFjaykoKCk9PnthPT1udWxsfHxhKG4pLGwobj09PXU/bnVsbDpuKX0sW2EsbCxuLHVdKTtyZXR1cm4oMCxoLmpzeCkoYGgyYCx7Y2xhc3NOYW1lOkEsY2hpbGRyZW46KDAsaC5qc3gpKGQse3JlZjp0LG5vU2NhbGVPblByZXNzOiEwLHRyYW5zcGFyZW50V2hpbGVJbmFjdGl2ZTohMCwiYXJpYS1jb250cm9scyI6dyhuKSwiYXJpYS1leHBhbmRlZCI6IXMsYmFja2dyb3VuZDpgYmdgLGlkOkMobiksb25DbGljazpfLHRlc3RJRDpjLHdpZHRoOmAxMDAlYCxjaGlsZHJlbjooMCxoLmpzeHMpKGYsRShFKHthbGlnbkl0ZW1zOmBjZW50ZXJgLGdhcDoyLG1pbkhlaWdodDo4MCx3aWR0aDpgMTAwJWB9LGcub3V0ZXIpLHt9LHtjaGlsZHJlbjpbISFvJiYoMCxoLmpzeCkoTix7bWVkaWE6b30pLCgwLGguanN4KShQLHtzdWJ0aXRsZTppLHRpdGxlOnJ9KSwoMCxoLmpzeCkoRix7Y29sbGFwc2VkOnN9KV19KSl9KX0pfSkpO2Z1bmN0aW9uIEwoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBSKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP0woT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ooZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6TChPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24geihlLHQsbil7cmV0dXJuKHQ9Qih0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBCKGUpe3ZhciB0PVYoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gVihlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfXZhciBIPSgwLG0ubWVtbykoKDAsbS5mb3J3YXJkUmVmKSgoZSxuKT0+e2xldHtjaGlsZHJlbjpyLGNvbGxhcHNlZDppPSEwLGl0ZW1LZXk6YSx0ZXN0SUQ6byxtYXhIZWlnaHQ6c309ZTtyZXR1cm4oMCxoLmpzeCkodCxSKFIoe3JlZjpuLGNvbGxhcHNlZDppLG1heEhlaWdodDpzPz80MDAsdGVzdElEOm99LHgpLHt9LHthY2Nlc3NpYmlsaXR5TGFiZWxsZWRCeTpDKGEpLGlkOncoYSkscm9sZTpgcmVnaW9uYCxjaGlsZHJlbjpyfSkpfSkpLFU9KDAsbS5tZW1vKShlPT57bGV0e2l0ZW1LZXk6dCx0aXRsZTpuLHN1YnRpdGxlOnIsY2hpbGRyZW46YSxvbkNsaWNrOm8sbWVkaWE6cyx0ZXN0SUQ6YyxoZWFkZXJSZWY6bCxwYW5lbFJlZjp1LG1heEhlaWdodDpkLHN0eWxlOmZ9PWUse2FjdGl2ZUtleTpwfT12KCksbT1wIT09dDtyZXR1cm4oMCxoLmpzeHMpKGkse21pbldpZHRoOjMwMCxzdHlsZTpmLHRlc3RJRDpjLGNoaWxkcmVuOlsoMCxoLmpzeCkoSSx7cmVmOmwsY29sbGFwc2VkOm0saXRlbUtleTp0LG1lZGlhOnMsb25DbGljazpvLHN1YnRpdGxlOnIsdGVzdElEOmMmJmAke2N9LWhlYWRlcmAsdGl0bGU6bn0pLCgwLGguanN4KShILHtyZWY6dSxjb2xsYXBzZWQ6bSxpdGVtS2V5OnQsbWF4SGVpZ2h0OmQsdGVzdElEOmMmJmAke2N9LXBhbmVsYCxjaGlsZHJlbjphfSldfSl9KTtleHBvcnR7YiBhcyBuLFUgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQ1VDaVVaS2QuanMubWFw"}},"time_used":106,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":106,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_ConTLr3n.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.678Z","timestamp":1785108244678,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_ConTLr3n.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 8420\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\netag: \"4c6c03392a44bac2b34a0ef1f5ca2ef8\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 26512aa427c30d93015b4bde75974708.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: Azw-wCUuPtXsZpkjj-ELhgWkwtPLxFT_-Y67wrDXhimuVB6Pb4ImVw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=gLfZoREfNZle3OLGd%2FarNj%2Bh%2B46UxXatIxqzgr4azROQiQUKEciOCqEQ%2F%2FXW8S5hZZEE2WZXLDVMpNHX1%2Fhn%2BYqLkDpUO5SIkvlOS7LCP1RdHZ1ytCyb5ZR7dJFabZWIKkLF71cki9U9d1aiCW39\"}]}\r\ncf-ray: a21727e13eeb0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":24754,"size_decoded":9572,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (24715)","md5":"0695d81bbf1ef24429d945d2fadaf33f","sha1":"368cf7d57776c84aee7a8efbe0b940690452d7f3","sha256":"73af5362b5d33159efb301a00659c34f0f19d206eb1e3952b678675686805955","sha512":"4a8119841f6ddbf9934df5caef788823fb27953fc44174eb19e7c112c45aaa7c7a000d60622a5df948ef626d31f1c1b78c59e939468796688dd96f07eae81e64","ssdeep":"768:1wyexDhuMbU3Kj7JGiJAgvJrrgmbbchKZMbjP:10tAMbQi7JbTtNbbchKZMbjP","tlshash":"73b229c2b6f0f0568f7e50db50194005b3673e1d282aa845f76a2c4b760ed59a2cbf7d","first_seen":"2026-07-26T23:24:50.276136Z","last_seen":"2026-07-26T23:25:46.844887Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDcyMGMwZjIyLTBhNWItNDI0YS1hZmQ1LTljYjhmMmZjNTUzM2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTcyMGMwZjIyLTBhNWItNDI0YS1hZmQ1LTljYjhmMmZjNTUzM2ApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsaGYgYXMgdH1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIG49ZSh0KCksMSkscj1lPT5lLnR5cGU9PT1gY2hlY2tib3hgLGk9ZT0+ZSBpbnN0YW5jZW9mIERhdGUsYT1lPT5lPT1udWxsLG89ZT0+dHlwZW9mIGU9PWBvYmplY3RgLHM9ZT0+IWEoZSkmJiFBcnJheS5pc0FycmF5KGUpJiZvKGUpJiYhaShlKSxjPWU9PnMoZSkmJmUudGFyZ2V0P3IoZS50YXJnZXQpP2UudGFyZ2V0LmNoZWNrZWQ6ZS50YXJnZXQudmFsdWU6ZSxsPWU9PmUuc3Vic3RyaW5nKDAsZS5zZWFyY2goL1wuXGQrKFwufCQpLykpfHxlLHU9KGUsdCk9PmUuaGFzKGwodCkpLGQ9ZT0+e2xldCB0PWUuY29uc3RydWN0b3ImJmUuY29uc3RydWN0b3IucHJvdG90eXBlO3JldHVybiBzKHQpJiZ0Lmhhc093blByb3BlcnR5KGBpc1Byb3RvdHlwZU9mYCl9LGY9dHlwZW9mIHdpbmRvdzxgdWAmJndpbmRvdy5IVE1MRWxlbWVudCE9PXZvaWQgMCYmdHlwZW9mIGRvY3VtZW50PGB1YDtmdW5jdGlvbiBwKGUpe2xldCB0LG49QXJyYXkuaXNBcnJheShlKSxyPXR5cGVvZiBGaWxlTGlzdDxgdWA/ZSBpbnN0YW5jZW9mIEZpbGVMaXN0OiExO2lmKGUgaW5zdGFuY2VvZiBEYXRlKXQ9bmV3IERhdGUoZSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgU2V0KXQ9bmV3IFNldChlKTtlbHNlIGlmKCEoZiYmKGUgaW5zdGFuY2VvZiBCbG9ifHxyKSkmJihufHxzKGUpKSlpZih0PW4/W106e30sIW4mJiFkKGUpKXQ9ZTtlbHNlIGZvcihsZXQgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPXAoZVtuXSkpO2Vsc2UgcmV0dXJuIGU7cmV0dXJuIHR9dmFyIG09ZT0+QXJyYXkuaXNBcnJheShlKT9lLmZpbHRlcihCb29sZWFuKTpbXSxoPWU9PmU9PT12b2lkIDAsZz0oZSx0LG4pPT57aWYoIXR8fCFzKGUpKXJldHVybiBuO2xldCByPW0odC5zcGxpdCgvWyxbXF0uXSs/LykpLnJlZHVjZSgoZSx0KT0+YShlKT9lOmVbdF0sZSk7cmV0dXJuIGgocil8fHI9PT1lP2goZVt0XSk/bjplW3RdOnJ9LF89ZT0+dHlwZW9mIGU9PWBib29sZWFuYCx2PWU9Pi9eXHcqJC8udGVzdChlKSx5PWU9Pm0oZS5yZXBsYWNlKC9bInwnXXxcXS9nLGBgKS5zcGxpdCgvXC58XFsvKSksYj0oZSx0LG4pPT57bGV0IHI9LTEsaT12KHQpP1t0XTp5KHQpLGE9aS5sZW5ndGgsbz1hLTE7Zm9yKDsrK3I8YTspe2xldCB0PWlbcl0sYT1uO2lmKHIhPT1vKXtsZXQgbj1lW3RdO2E9cyhuKXx8QXJyYXkuaXNBcnJheShuKT9uOmlzTmFOKCtpW3IrMV0pP3t9OltdfWlmKHQ9PT1gX19wcm90b19fYHx8dD09PWBjb25zdHJ1Y3RvcmB8fHQ9PT1gcHJvdG90eXBlYClyZXR1cm47ZVt0XT1hLGU9ZVt0XX19LHg9e0JMVVI6YGJsdXJgLEZPQ1VTX09VVDpgZm9jdXNvdXRgLENIQU5HRTpgY2hhbmdlYH0sUz17b25CbHVyOmBvbkJsdXJgLG9uQ2hhbmdlOmBvbkNoYW5nZWAsb25TdWJtaXQ6YG9uU3VibWl0YCxvblRvdWNoZWQ6YG9uVG91Y2hlZGAsYWxsOmBhbGxgfSxDPXttYXg6YG1heGAsbWluOmBtaW5gLG1heExlbmd0aDpgbWF4TGVuZ3RoYCxtaW5MZW5ndGg6YG1pbkxlbmd0aGAscGF0dGVybjpgcGF0dGVybmAscmVxdWlyZWQ6YHJlcXVpcmVkYCx2YWxpZGF0ZTpgdmFsaWRhdGVgfSx3PW4uY3JlYXRlQ29udGV4dChudWxsKSxUPSgpPT5uLnVzZUNvbnRleHQodyksRT1lPT57bGV0e2NoaWxkcmVuOnQsLi4ucn09ZTtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KHcuUHJvdmlkZXIse3ZhbHVlOnJ9LHQpfSxEPShlLHQsbixyPSEwKT0+e2xldCBpPXtkZWZhdWx0VmFsdWVzOnQuX2RlZmF1bHRWYWx1ZXN9O2ZvcihsZXQgYSBpbiBlKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLGEse2dldDooKT0+e2xldCBpPWE7cmV0dXJuIHQuX3Byb3h5Rm9ybVN0YXRlW2ldIT09Uy5hbGwmJih0Ll9wcm94eUZvcm1TdGF0ZVtpXT0hcnx8Uy5hbGwpLG4mJihuW2ldPSEwKSxlW2ldfX0pO3JldHVybiBpfTtmdW5jdGlvbiBPKGUpe2xldCB0PVQoKSx7Y29udHJvbDpyPXQuY29udHJvbCxkaXNhYmxlZDppLG5hbWU6YSxleGFjdDpvfT1lfHx7fSxbcyxjXT1uLnVzZVN0YXRlKHIuX2Zvcm1TdGF0ZSksbD1uLnVzZVJlZih7aXNEaXJ0eTohMSxpc0xvYWRpbmc6ITEsZGlydHlGaWVsZHM6ITEsdG91Y2hlZEZpZWxkczohMSx2YWxpZGF0aW5nRmllbGRzOiExLGlzVmFsaWRhdGluZzohMSxpc1ZhbGlkOiExLGVycm9yczohMX0pLHU9bi51c2VSZWYoYSk7cmV0dXJuIHUuY3VycmVudD1hLG4udXNlRWZmZWN0KCgpPT5yLl9zdWJzY3JpYmUoe25hbWU6dS5jdXJyZW50LGZvcm1TdGF0ZTpsLmN1cnJlbnQsZXhhY3Q6byxjYWxsYmFjazplPT57IWkmJmMoey4uLnIuX2Zvcm1TdGF0ZSwuLi5lfSl9fSksW3IsaSxvXSksbi51c2VFZmZlY3QoKCk9PntsLmN1cnJlbnQuaXNWYWxpZCYmci5fc2V0VmFsaWQoITApfSxbcl0pLG4udXNlTWVtbygoKT0+RChzLHIsbC5jdXJyZW50LCExKSxbcyxyXSl9dmFyIGs9ZT0+dHlwZW9mIGU9PWBzdHJpbmdgLEE9KGUsdCxuLHIsaSk9PmsoZSk/KHImJnQud2F0Y2guYWRkKGUpLGcobixlLGkpKTpBcnJheS5pc0FycmF5KGUpP2UubWFwKGU9PihyJiZ0LndhdGNoLmFkZChlKSxnKG4sZSkpKToociYmKHQud2F0Y2hBbGw9ITApLG4pO2Z1bmN0aW9uIGooZSl7bGV0IHQ9VCgpLHtjb250cm9sOnI9dC5jb250cm9sLG5hbWU6aSxkZWZhdWx0VmFsdWU6YSxkaXNhYmxlZDpvLGV4YWN0OnN9PWV8fHt9LGM9bi51c2VSZWYoaSksbD1uLnVzZVJlZihhKTtjLmN1cnJlbnQ9aSxuLnVzZUVmZmVjdCgoKT0+ci5fc3Vic2NyaWJlKHtuYW1lOmMuY3VycmVudCxmb3JtU3RhdGU6e3ZhbHVlczohMH0sZXhhY3Q6cyxjYWxsYmFjazplPT4hbyYmZChBKGMuY3VycmVudCxyLl9uYW1lcyxlLnZhbHVlc3x8ci5fZm9ybVZhbHVlcywhMSxsLmN1cnJlbnQpKX0pLFtyLG8sc10pO2xldFt1LGRdPW4udXNlU3RhdGUoci5fZ2V0V2F0Y2goaSxhKSk7cmV0dXJuIG4udXNlRWZmZWN0KCgpPT5yLl9yZW1vdmVVbm1vdW50ZWQoKSksdX1mdW5jdGlvbiBNKGUpe2xldCB0PVQoKSx7bmFtZTpyLGRpc2FibGVkOmksY29udHJvbDphPXQuY29udHJvbCxzaG91bGRVbnJlZ2lzdGVyOm99PWUscz11KGEuX25hbWVzLmFycmF5LHIpLGw9aih7Y29udHJvbDphLG5hbWU6cixkZWZhdWx0VmFsdWU6ZyhhLl9mb3JtVmFsdWVzLHIsZyhhLl9kZWZhdWx0VmFsdWVzLHIsZS5kZWZhdWx0VmFsdWUpKSxleGFjdDohMH0pLGQ9Tyh7Y29udHJvbDphLG5hbWU6cixleGFjdDohMH0pLGY9bi51c2VSZWYoZSksbT1uLnVzZVJlZihhLnJlZ2lzdGVyKHIsey4uLmUucnVsZXMsdmFsdWU6bCwuLi5fKGUuZGlzYWJsZWQpP3tkaXNhYmxlZDplLmRpc2FibGVkfTp7fX0pKSx2PW4udXNlTWVtbygoKT0+T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoe30se2ludmFsaWQ6e2VudW1lcmFibGU6ITAsZ2V0OigpPT4hIWcoZC5lcnJvcnMscil9LGlzRGlydHk6e2VudW1lcmFibGU6ITAsZ2V0OigpPT4hIWcoZC5kaXJ0eUZpZWxkcyxyKX0saXNUb3VjaGVkOntlbnVtZXJhYmxlOiEwLGdldDooKT0+ISFnKGQudG91Y2hlZEZpZWxkcyxyKX0saXNWYWxpZGF0aW5nOntlbnVtZXJhYmxlOiEwLGdldDooKT0+ISFnKGQudmFsaWRhdGluZ0ZpZWxkcyxyKX0sZXJyb3I6e2VudW1lcmFibGU6ITAsZ2V0OigpPT5nKGQuZXJyb3JzLHIpfX0pLFtkLHJdKSx5PW4udXNlQ2FsbGJhY2soZT0+bS5jdXJyZW50Lm9uQ2hhbmdlKHt0YXJnZXQ6e3ZhbHVlOmMoZSksbmFtZTpyfSx0eXBlOnguQ0hBTkdFfSksW3JdKSxTPW4udXNlQ2FsbGJhY2soKCk9Pm0uY3VycmVudC5vbkJsdXIoe3RhcmdldDp7dmFsdWU6ZyhhLl9mb3JtVmFsdWVzLHIpLG5hbWU6cn0sdHlwZTp4LkJMVVJ9KSxbcixhLl9mb3JtVmFsdWVzXSksQz1uLnVzZUNhbGxiYWNrKGU9PntsZXQgdD1nKGEuX2ZpZWxkcyxyKTt0JiZlJiYodC5fZi5yZWY9e2ZvY3VzOigpPT5lLmZvY3VzKCksc2VsZWN0OigpPT5lLnNlbGVjdCgpLHNldEN1c3RvbVZhbGlkaXR5OnQ9PmUuc2V0Q3VzdG9tVmFsaWRpdHkodCkscmVwb3J0VmFsaWRpdHk6KCk9PmUucmVwb3J0VmFsaWRpdHkoKX0pfSxbYS5fZmllbGRzLHJdKSx3PW4udXNlTWVtbygoKT0+KHtuYW1lOnIsdmFsdWU6bCwuLi5fKGkpfHxkLmRpc2FibGVkP3tkaXNhYmxlZDpkLmRpc2FibGVkfHxpfTp7fSxvbkNoYW5nZTp5LG9uQmx1cjpTLHJlZjpDfSksW3IsaSxkLmRpc2FibGVkLHksUyxDLGxdKTtyZXR1cm4gbi51c2VFZmZlY3QoKCk9PntsZXQgZT1hLl9vcHRpb25zLnNob3VsZFVucmVnaXN0ZXJ8fG87YS5yZWdpc3RlcihyLHsuLi5mLmN1cnJlbnQucnVsZXMsLi4uXyhmLmN1cnJlbnQuZGlzYWJsZWQpP3tkaXNhYmxlZDpmLmN1cnJlbnQuZGlzYWJsZWR9Ont9fSk7bGV0IHQ9KGUsdCk9PntsZXQgbj1nKGEuX2ZpZWxkcyxlKTtuJiZuLl9mJiYobi5fZi5tb3VudD10KX07aWYodChyLCEwKSxlKXtsZXQgZT1wKGcoYS5fb3B0aW9ucy5kZWZhdWx0VmFsdWVzLHIpKTtiKGEuX2RlZmF1bHRWYWx1ZXMscixlKSxoKGcoYS5fZm9ybVZhbHVlcyxyKSkmJmIoYS5fZm9ybVZhbHVlcyxyLGUpfXJldHVybiFzJiZhLnJlZ2lzdGVyKHIpLCgpPT57KHM/ZSYmIWEuX3N0YXRlLmFjdGlvbjplKT9hLnVucmVnaXN0ZXIocik6dChyLCExKX19LFtyLGEscyxvXSksbi51c2VFZmZlY3QoKCk9PnthLl9zZXREaXNhYmxlZEZpZWxkKHtkaXNhYmxlZDppLG5hbWU6cn0pfSxbaSxyLGFdKSxuLnVzZU1lbW8oKCk9Pih7ZmllbGQ6dyxmb3JtU3RhdGU6ZCxmaWVsZFN0YXRlOnZ9KSxbdyxkLHZdKX12YXIgTj1lPT5lLnJlbmRlcihNKGUpKSxQPShlLHQsbixyLGkpPT50P3suLi5uW2VdLHR5cGVzOnsuLi5uW2VdJiZuW2VdLnR5cGVzP25bZV0udHlwZXM6e30sW3JdOml8fCEwfX06e30sRj1lPT5BcnJheS5pc0FycmF5KGUpP2U6W2VdLEk9KCk9PntsZXQgZT1bXTtyZXR1cm57Z2V0IG9ic2VydmVycygpe3JldHVybiBlfSxuZXh0OnQ9Pntmb3IobGV0IG4gb2YgZSluLm5leHQmJm4ubmV4dCh0KX0sc3Vic2NyaWJlOnQ9PihlLnB1c2godCkse3Vuc3Vic2NyaWJlOigpPT57ZT1lLmZpbHRlcihlPT5lIT09dCl9fSksdW5zdWJzY3JpYmU6KCk9PntlPVtdfX19LEw9ZT0+YShlKXx8IW8oZSk7ZnVuY3Rpb24gUihlLHQpe2lmKEwoZSl8fEwodCkpcmV0dXJuIGU9PT10O2lmKGkoZSkmJmkodCkpcmV0dXJuIGUuZ2V0VGltZSgpPT09dC5nZXRUaW1lKCk7bGV0IG49T2JqZWN0LmtleXMoZSkscj1PYmplY3Qua2V5cyh0KTtpZihuLmxlbmd0aCE9PXIubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgYSBvZiBuKXtsZXQgbj1lW2FdO2lmKCFyLmluY2x1ZGVzKGEpKXJldHVybiExO2lmKGEhPT1gcmVmYCl7bGV0IGU9dFthXTtpZihpKG4pJiZpKGUpfHxzKG4pJiZzKGUpfHxBcnJheS5pc0FycmF5KG4pJiZBcnJheS5pc0FycmF5KGUpPyFSKG4sZSk6biE9PWUpcmV0dXJuITF9fXJldHVybiEwfXZhciB6PWU9PnMoZSkmJiFPYmplY3Qua2V5cyhlKS5sZW5ndGgsZWU9ZT0+ZS50eXBlPT09YGZpbGVgLEI9ZT0+dHlwZW9mIGU9PWBmdW5jdGlvbmAsVj1lPT57aWYoIWYpcmV0dXJuITE7bGV0IHQ9ZT9lLm93bmVyRG9jdW1lbnQ6MDtyZXR1cm4gZSBpbnN0YW5jZW9mKHQmJnQuZGVmYXVsdFZpZXc/dC5kZWZhdWx0Vmlldy5IVE1MRWxlbWVudDpIVE1MRWxlbWVudCl9LHRlPWU9PmUudHlwZT09PWBzZWxlY3QtbXVsdGlwbGVgLEg9ZT0+ZS50eXBlPT09YHJhZGlvYCxuZT1lPT5IKGUpfHxyKGUpLHJlPWU9PlYoZSkmJmUuaXNDb25uZWN0ZWQ7ZnVuY3Rpb24gaWUoZSx0KXtsZXQgbj10LnNsaWNlKDAsLTEpLmxlbmd0aCxyPTA7Zm9yKDtyPG47KWU9aChlKT9yKys6ZVt0W3IrK11dO3JldHVybiBlfWZ1bmN0aW9uIGFlKGUpe2ZvcihsZXQgdCBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkodCkmJiFoKGVbdF0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIFUoZSx0KXtsZXQgbj1BcnJheS5pc0FycmF5KHQpP3Q6dih0KT9bdF06eSh0KSxyPW4ubGVuZ3RoPT09MT9lOmllKGUsbiksaT1uLmxlbmd0aC0xLGE9bltpXTtyZXR1cm4gciYmZGVsZXRlIHJbYV0saSE9PTAmJihzKHIpJiZ6KHIpfHxBcnJheS5pc0FycmF5KHIpJiZhZShyKSkmJlUoZSxuLnNsaWNlKDAsLTEpKSxlfXZhciBvZT1lPT57Zm9yKGxldCB0IGluIGUpaWYoQihlW3RdKSlyZXR1cm4hMDtyZXR1cm4hMX07ZnVuY3Rpb24gVyhlLHQ9e30pe2xldCBuPUFycmF5LmlzQXJyYXkoZSk7aWYocyhlKXx8bilmb3IobGV0IG4gaW4gZSlBcnJheS5pc0FycmF5KGVbbl0pfHxzKGVbbl0pJiYhb2UoZVtuXSk/KHRbbl09QXJyYXkuaXNBcnJheShlW25dKT9bXTp7fSxXKGVbbl0sdFtuXSkpOmEoZVtuXSl8fCh0W25dPSEwKTtyZXR1cm4gdH1mdW5jdGlvbiBzZShlLHQsbil7bGV0IHI9QXJyYXkuaXNBcnJheShlKTtpZihzKGUpfHxyKWZvcihsZXQgciBpbiBlKUFycmF5LmlzQXJyYXkoZVtyXSl8fHMoZVtyXSkmJiFvZShlW3JdKT9oKHQpfHxMKG5bcl0pP25bcl09QXJyYXkuaXNBcnJheShlW3JdKT9XKGVbcl0sW10pOnsuLi5XKGVbcl0pfTpzZShlW3JdLGEodCk/e306dFtyXSxuW3JdKTpuW3JdPSFSKGVbcl0sdFtyXSk7cmV0dXJuIG59dmFyIEc9KGUsdCk9PnNlKGUsdCxXKHQpKSxLPXt2YWx1ZTohMSxpc1ZhbGlkOiExfSxjZT17dmFsdWU6ITAsaXNWYWxpZDohMH0scT1lPT57aWYoQXJyYXkuaXNBcnJheShlKSl7aWYoZS5sZW5ndGg+MSl7bGV0IHQ9ZS5maWx0ZXIoZT0+ZSYmZS5jaGVja2VkJiYhZS5kaXNhYmxlZCkubWFwKGU9PmUudmFsdWUpO3JldHVybnt2YWx1ZTp0LGlzVmFsaWQ6ISF0Lmxlbmd0aH19cmV0dXJuIGVbMF0uY2hlY2tlZCYmIWVbMF0uZGlzYWJsZWQ/ZVswXS5hdHRyaWJ1dGVzJiYhaChlWzBdLmF0dHJpYnV0ZXMudmFsdWUpP2goZVswXS52YWx1ZSl8fGVbMF0udmFsdWU9PT1gYD9jZTp7dmFsdWU6ZVswXS52YWx1ZSxpc1ZhbGlkOiEwfTpjZTpLfXJldHVybiBLfSxsZT0oZSx7dmFsdWVBc051bWJlcjp0LHZhbHVlQXNEYXRlOm4sc2V0VmFsdWVBczpyfSk9PmgoZSk/ZTp0P2U9PT1gYD9OYU46ZSYmK2U6biYmayhlKT9uZXcgRGF0ZShlKTpyP3IoZSk6ZSx1ZT17aXNWYWxpZDohMSx2YWx1ZTpudWxsfSxKPWU9PkFycmF5LmlzQXJyYXkoZSk/ZS5yZWR1Y2UoKGUsdCk9PnQmJnQuY2hlY2tlZCYmIXQuZGlzYWJsZWQ/e2lzVmFsaWQ6ITAsdmFsdWU6dC52YWx1ZX06ZSx1ZSk6dWU7ZnVuY3Rpb24gZGUoZSl7bGV0IHQ9ZS5yZWY7cmV0dXJuIGVlKHQpP3QuZmlsZXM6SCh0KT9KKGUucmVmcykudmFsdWU6dGUodCk/Wy4uLnQuc2VsZWN0ZWRPcHRpb25zXS5tYXAoKHt2YWx1ZTplfSk9PmUpOnIodCk/cShlLnJlZnMpLnZhbHVlOmxlKGgodC52YWx1ZSk/ZS5yZWYudmFsdWU6dC52YWx1ZSxlKX12YXIgZmU9KGUsdCxuLHIpPT57bGV0IGk9e307Zm9yKGxldCBuIG9mIGUpe2xldCBlPWcodCxuKTtlJiZiKGksbixlLl9mKX1yZXR1cm57Y3JpdGVyaWFNb2RlOm4sbmFtZXM6Wy4uLmVdLGZpZWxkczppLHNob3VsZFVzZU5hdGl2ZVZhbGlkYXRpb246cn19LFk9ZT0+ZSBpbnN0YW5jZW9mIFJlZ0V4cCxYPWU9PmgoZSk/ZTpZKGUpP2Uuc291cmNlOnMoZSk/WShlLnZhbHVlKT9lLnZhbHVlLnNvdXJjZTplLnZhbHVlOmUscGU9ZT0+KHtpc09uU3VibWl0OiFlfHxlPT09Uy5vblN1Ym1pdCxpc09uQmx1cjplPT09Uy5vbkJsdXIsaXNPbkNoYW5nZTplPT09Uy5vbkNoYW5nZSxpc09uQWxsOmU9PT1TLmFsbCxpc09uVG91Y2g6ZT09PVMub25Ub3VjaGVkfSksbWU9YEFzeW5jRnVuY3Rpb25gLGhlPWU9PiEhZSYmISFlLnZhbGlkYXRlJiYhIShCKGUudmFsaWRhdGUpJiZlLnZhbGlkYXRlLmNvbnN0cnVjdG9yLm5hbWU9PT1tZXx8cyhlLnZhbGlkYXRlKSYmT2JqZWN0LnZhbHVlcyhlLnZhbGlkYXRlKS5maW5kKGU9PmUuY29uc3RydWN0b3IubmFtZT09PW1lKSksZ2U9ZT0+ZS5tb3VudCYmKGUucmVxdWlyZWR8fGUubWlufHxlLm1heHx8ZS5tYXhMZW5ndGh8fGUubWluTGVuZ3RofHxlLnBhdHRlcm58fGUudmFsaWRhdGUpLF9lPShlLHQsbik9PiFuJiYodC53YXRjaEFsbHx8dC53YXRjaC5oYXMoZSl8fFsuLi50LndhdGNoXS5zb21lKHQ9PmUuc3RhcnRzV2l0aCh0KSYmL15cLlx3Ky8udGVzdChlLnNsaWNlKHQubGVuZ3RoKSkpKSxaPShlLHQsbixyKT0+e2ZvcihsZXQgaSBvZiBufHxPYmplY3Qua2V5cyhlKSl7bGV0IG49ZyhlLGkpO2lmKG4pe2xldHtfZjplLC4uLmF9PW47aWYoZSl7aWYoZS5yZWZzJiZlLnJlZnNbMF0mJnQoZS5yZWZzWzBdLGkpJiYhcnx8ZS5yZWYmJnQoZS5yZWYsZS5uYW1lKSYmIXIpcmV0dXJuITA7aWYoWihhLHQpKWJyZWFrfWVsc2UgaWYocyhhKSYmWihhLHQpKWJyZWFrfX19O2Z1bmN0aW9uIHZlKGUsdCxuKXtsZXQgcj1nKGUsbik7aWYocnx8dihuKSlyZXR1cm57ZXJyb3I6cixuYW1lOm59O2xldCBpPW4uc3BsaXQoYC5gKTtmb3IoO2kubGVuZ3RoOyl7bGV0IHI9aS5qb2luKGAuYCksYT1nKHQsciksbz1nKGUscik7aWYoYSYmIUFycmF5LmlzQXJyYXkoYSkmJm4hPT1yKXJldHVybntuYW1lOm59O2lmKG8mJm8udHlwZSlyZXR1cm57bmFtZTpyLGVycm9yOm99O2kucG9wKCl9cmV0dXJue25hbWU6bn19dmFyIHllPShlLHQsbixyKT0+e24oZSk7bGV0e25hbWU6aSwuLi5hfT1lO3JldHVybiB6KGEpfHxPYmplY3Qua2V5cyhhKS5sZW5ndGg+PU9iamVjdC5rZXlzKHQpLmxlbmd0aHx8T2JqZWN0LmtleXMoYSkuZmluZChlPT50W2VdPT09KCFyfHxTLmFsbCkpfSxiZT0oZSx0LG4pPT4hZXx8IXR8fGU9PT10fHxGKGUpLnNvbWUoZT0+ZSYmKG4/ZT09PXQ6ZS5zdGFydHNXaXRoKHQpfHx0LnN0YXJ0c1dpdGgoZSkpKSx4ZT0oZSx0LG4scixpKT0+aS5pc09uQWxsPyExOiFuJiZpLmlzT25Ub3VjaD8hKHR8fGUpOihuP3IuaXNPbkJsdXI6aS5pc09uQmx1cik/IWU6KG4/ci5pc09uQ2hhbmdlOmkuaXNPbkNoYW5nZSk/ZTohMCxTZT0oZSx0KT0+IW0oZyhlLHQpKS5sZW5ndGgmJlUoZSx0KSxDZT0oZSx0LG4pPT57bGV0IHI9RihnKGUsbikpO3JldHVybiBiKHIsYHJvb3RgLHRbbl0pLGIoZSxuLHIpLGV9LFE9ZT0+ayhlKTtmdW5jdGlvbiB3ZShlLHQsbj1gdmFsaWRhdGVgKXtpZihRKGUpfHxBcnJheS5pc0FycmF5KGUpJiZlLmV2ZXJ5KFEpfHxfKGUpJiYhZSlyZXR1cm57dHlwZTpuLG1lc3NhZ2U6UShlKT9lOmBgLHJlZjp0fX12YXIgJD1lPT5zKGUpJiYhWShlKT9lOnt2YWx1ZTplLG1lc3NhZ2U6YGB9LFRlPWFzeW5jKGUsdCxuLGksbyxjKT0+e2xldHtyZWY6bCxyZWZzOnUscmVxdWlyZWQ6ZCxtYXhMZW5ndGg6ZixtaW5MZW5ndGg6cCxtaW46bSxtYXg6dixwYXR0ZXJuOnksdmFsaWRhdGU6YixuYW1lOngsdmFsdWVBc051bWJlcjpTLG1vdW50Ond9PWUuX2YsVD1nKG4seCk7aWYoIXd8fHQuaGFzKHgpKXJldHVybnt9O2xldCBFPXU/dVswXTpsLEQ9ZT0+e28mJkUucmVwb3J0VmFsaWRpdHkmJihFLnNldEN1c3RvbVZhbGlkaXR5KF8oZSk/YGA6ZXx8YGApLEUucmVwb3J0VmFsaWRpdHkoKSl9LE89e30sQT1IKGwpLGo9cihsKSxNPUF8fGosTj0oU3x8ZWUobCkpJiZoKGwudmFsdWUpJiZoKFQpfHxWKGwpJiZsLnZhbHVlPT09YGB8fFQ9PT1gYHx8QXJyYXkuaXNBcnJheShUKSYmIVQubGVuZ3RoLEY9UC5iaW5kKG51bGwseCxpLE8pLEk9KGUsdCxuLHI9Qy5tYXhMZW5ndGgsaT1DLm1pbkxlbmd0aCk9PntsZXQgYT1lP3Q6bjtPW3hdPXt0eXBlOmU/cjppLG1lc3NhZ2U6YSxyZWY6bCwuLi5GKGU/cjppLGEpfX07aWYoYz8hQXJyYXkuaXNBcnJheShUKXx8IVQubGVuZ3RoOmQmJighTSYmKE58fGEoVCkpfHxfKFQpJiYhVHx8aiYmIXEodSkuaXNWYWxpZHx8QSYmIUoodSkuaXNWYWxpZCkpe2xldHt2YWx1ZTplLG1lc3NhZ2U6dH09UShkKT97dmFsdWU6ISFkLG1lc3NhZ2U6ZH06JChkKTtpZihlJiYoT1t4XT17dHlwZTpDLnJlcXVpcmVkLG1lc3NhZ2U6dCxyZWY6RSwuLi5GKEMucmVxdWlyZWQsdCl9LCFpKSlyZXR1cm4gRCh0KSxPfWlmKCFOJiYoIWEobSl8fCFhKHYpKSl7bGV0IGUsdCxuPSQodikscj0kKG0pO2lmKCFhKFQpJiYhaXNOYU4oVCkpe2xldCBpPWwudmFsdWVBc051bWJlcnx8VCYmK1Q7YShuLnZhbHVlKXx8KGU9aT5uLnZhbHVlKSxhKHIudmFsdWUpfHwodD1pPHIudmFsdWUpfWVsc2V7bGV0IGk9bC52YWx1ZUFzRGF0ZXx8bmV3IERhdGUoVCksYT1lPT5uZXcgRGF0ZShuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpK2AgYCtlKSxvPWwudHlwZT09YHRpbWVgLHM9bC50eXBlPT1gd2Vla2A7ayhuLnZhbHVlKSYmVCYmKGU9bz9hKFQpPmEobi52YWx1ZSk6cz9UPm4udmFsdWU6aT5uZXcgRGF0ZShuLnZhbHVlKSksayhyLnZhbHVlKSYmVCYmKHQ9bz9hKFQpPGEoci52YWx1ZSk6cz9UPHIudmFsdWU6aTxuZXcgRGF0ZShyLnZhbHVlKSl9aWYoKGV8fHQpJiYoSSghIWUsbi5tZXNzYWdlLHIubWVzc2FnZSxDLm1heCxDLm1pbiksIWkpKXJldHVybiBEKE9beF0ubWVzc2FnZSksT31pZigoZnx8cCkmJiFOJiYoayhUKXx8YyYmQXJyYXkuaXNBcnJheShUKSkpe2xldCBlPSQoZiksdD0kKHApLG49IWEoZS52YWx1ZSkmJlQubGVuZ3RoPitlLnZhbHVlLHI9IWEodC52YWx1ZSkmJlQubGVuZ3RoPCt0LnZhbHVlO2lmKChufHxyKSYmKEkobixlLm1lc3NhZ2UsdC5tZXNzYWdlKSwhaSkpcmV0dXJuIEQoT1t4XS5tZXNzYWdlKSxPfWlmKHkmJiFOJiZrKFQpKXtsZXR7dmFsdWU6ZSxtZXNzYWdlOnR9PSQoeSk7aWYoWShlKSYmIVQubWF0Y2goZSkmJihPW3hdPXt0eXBlOkMucGF0dGVybixtZXNzYWdlOnQscmVmOmwsLi4uRihDLnBhdHRlcm4sdCl9LCFpKSlyZXR1cm4gRCh0KSxPfWlmKGIpe2lmKEIoYikpe2xldCBlPXdlKGF3YWl0IGIoVCxuKSxFKTtpZihlJiYoT1t4XT17Li4uZSwuLi5GKEMudmFsaWRhdGUsZS5tZXNzYWdlKX0sIWkpKXJldHVybiBEKGUubWVzc2FnZSksT31lbHNlIGlmKHMoYikpe2xldCBlPXt9O2ZvcihsZXQgdCBpbiBiKXtpZigheihlKSYmIWkpYnJlYWs7bGV0IHI9d2UoYXdhaXQgYlt0XShULG4pLEUsdCk7ciYmKGU9ey4uLnIsLi4uRih0LHIubWVzc2FnZSl9LEQoci5tZXNzYWdlKSxpJiYoT1t4XT1lKSl9aWYoIXooZSkmJihPW3hdPXtyZWY6RSwuLi5lfSwhaSkpcmV0dXJuIE99fXJldHVybiBEKCEwKSxPfSxFZT17bW9kZTpTLm9uU3VibWl0LHJlVmFsaWRhdGVNb2RlOlMub25DaGFuZ2Usc2hvdWxkRm9jdXNFcnJvcjohMH07ZnVuY3Rpb24gRGUoZT17fSl7bGV0IHQ9ey4uLkVlLC4uLmV9LG49e3N1Ym1pdENvdW50OjAsaXNEaXJ0eTohMSxpc0xvYWRpbmc6Qih0LmRlZmF1bHRWYWx1ZXMpLGlzVmFsaWRhdGluZzohMSxpc1N1Ym1pdHRlZDohMSxpc1N1Ym1pdHRpbmc6ITEsaXNTdWJtaXRTdWNjZXNzZnVsOiExLGlzVmFsaWQ6ITEsdG91Y2hlZEZpZWxkczp7fSxkaXJ0eUZpZWxkczp7fSx2YWxpZGF0aW5nRmllbGRzOnt9LGVycm9yczp0LmVycm9yc3x8e30sZGlzYWJsZWQ6dC5kaXNhYmxlZHx8ITF9LG89e30sbD0ocyh0LmRlZmF1bHRWYWx1ZXMpfHxzKHQudmFsdWVzKSkmJnAodC52YWx1ZXN8fHQuZGVmYXVsdFZhbHVlcyl8fHt9LGQ9dC5zaG91bGRVbnJlZ2lzdGVyP3t9OnAobCksdj17YWN0aW9uOiExLG1vdW50OiExLHdhdGNoOiExfSx5PXttb3VudDpuZXcgU2V0LGRpc2FibGVkOm5ldyBTZXQsdW5Nb3VudDpuZXcgU2V0LGFycmF5Om5ldyBTZXQsd2F0Y2g6bmV3IFNldH0sQyx3PTAsVD17aXNEaXJ0eTohMSxkaXJ0eUZpZWxkczohMSx2YWxpZGF0aW5nRmllbGRzOiExLHRvdWNoZWRGaWVsZHM6ITEsaXNWYWxpZGF0aW5nOiExLGlzVmFsaWQ6ITEsZXJyb3JzOiExfSxFPXsuLi5UfSxEPXthcnJheTpJKCksc3RhdGU6SSgpfSxPPXBlKHQubW9kZSksaj1wZSh0LnJlVmFsaWRhdGVNb2RlKSxNPXQuY3JpdGVyaWFNb2RlPT09Uy5hbGwsTj1lPT50PT57Y2xlYXJUaW1lb3V0KHcpLHc9c2V0VGltZW91dChlLHQpfSxQPWFzeW5jIGU9PntpZighdC5kaXNhYmxlZCYmKFQuaXNWYWxpZHx8RS5pc1ZhbGlkfHxlKSl7bGV0IGU9dC5yZXNvbHZlcj96KChhd2FpdCBLKCkpLmVycm9ycyk6YXdhaXQgcShvLCEwKTtlIT09bi5pc1ZhbGlkJiZELnN0YXRlLm5leHQoe2lzVmFsaWQ6ZX0pfX0sTD0oZSxyKT0+eyF0LmRpc2FibGVkJiYoVC5pc1ZhbGlkYXRpbmd8fFQudmFsaWRhdGluZ0ZpZWxkc3x8RS5pc1ZhbGlkYXRpbmd8fEUudmFsaWRhdGluZ0ZpZWxkcykmJigoZXx8QXJyYXkuZnJvbSh5Lm1vdW50KSkuZm9yRWFjaChlPT57ZSYmKHI/YihuLnZhbGlkYXRpbmdGaWVsZHMsZSxyKTpVKG4udmFsaWRhdGluZ0ZpZWxkcyxlKSl9KSxELnN0YXRlLm5leHQoe3ZhbGlkYXRpbmdGaWVsZHM6bi52YWxpZGF0aW5nRmllbGRzLGlzVmFsaWRhdGluZzoheihuLnZhbGlkYXRpbmdGaWVsZHMpfSkpfSxIPShlLHI9W10saSxhLHM9ITAsYz0hMCk9PntpZihhJiZpJiYhdC5kaXNhYmxlZCl7aWYodi5hY3Rpb249ITAsYyYmQXJyYXkuaXNBcnJheShnKG8sZSkpKXtsZXQgdD1pKGcobyxlKSxhLmFyZ0EsYS5hcmdCKTtzJiZiKG8sZSx0KX1pZihjJiZBcnJheS5pc0FycmF5KGcobi5lcnJvcnMsZSkpKXtsZXQgdD1pKGcobi5lcnJvcnMsZSksYS5hcmdBLGEuYXJnQik7cyYmYihuLmVycm9ycyxlLHQpLFNlKG4uZXJyb3JzLGUpfWlmKChULnRvdWNoZWRGaWVsZHN8fEUudG91Y2hlZEZpZWxkcykmJmMmJkFycmF5LmlzQXJyYXkoZyhuLnRvdWNoZWRGaWVsZHMsZSkpKXtsZXQgdD1pKGcobi50b3VjaGVkRmllbGRzLGUpLGEuYXJnQSxhLmFyZ0IpO3MmJmIobi50b3VjaGVkRmllbGRzLGUsdCl9KFQuZGlydHlGaWVsZHN8fEUuZGlydHlGaWVsZHMpJiYobi5kaXJ0eUZpZWxkcz1HKGwsZCkpLEQuc3RhdGUubmV4dCh7bmFtZTplLGlzRGlydHk6SihlLHIpLGRpcnR5RmllbGRzOm4uZGlydHlGaWVsZHMsZXJyb3JzOm4uZXJyb3JzLGlzVmFsaWQ6bi5pc1ZhbGlkfSl9ZWxzZSBiKGQsZSxyKX0saWU9KGUsdCk9PntiKG4uZXJyb3JzLGUsdCksRC5zdGF0ZS5uZXh0KHtlcnJvcnM6bi5lcnJvcnN9KX0sYWU9ZT0+e24uZXJyb3JzPWUsRC5zdGF0ZS5uZXh0KHtlcnJvcnM6bi5lcnJvcnMsaXNWYWxpZDohMX0pfSxvZT0oZSx0LG4scik9PntsZXQgaT1nKG8sZSk7aWYoaSl7bGV0IGE9ZyhkLGUsaChuKT9nKGwsZSk6bik7aChhKXx8ciYmci5kZWZhdWx0Q2hlY2tlZHx8dD9iKGQsZSx0P2E6ZGUoaS5fZikpOlEoZSxhKSx2Lm1vdW50JiZQKCl9fSxXPShlLHIsaSxhLG8pPT57bGV0IHM9ITEsYz0hMSx1PXtuYW1lOmV9O2lmKCF0LmRpc2FibGVkKXtpZighaXx8YSl7KFQuaXNEaXJ0eXx8RS5pc0RpcnR5KSYmKGM9bi5pc0RpcnR5LG4uaXNEaXJ0eT11LmlzRGlydHk9SigpLHM9YyE9PXUuaXNEaXJ0eSk7bGV0IHQ9UihnKGwsZSkscik7Yz0hIWcobi5kaXJ0eUZpZWxkcyxlKSx0P1Uobi5kaXJ0eUZpZWxkcyxlKTpiKG4uZGlydHlGaWVsZHMsZSwhMCksdS5kaXJ0eUZpZWxkcz1uLmRpcnR5RmllbGRzLHM9c3x8KFQuZGlydHlGaWVsZHN8fEUuZGlydHlGaWVsZHMpJiZjIT09IXR9aWYoaSl7bGV0IHQ9ZyhuLnRvdWNoZWRGaWVsZHMsZSk7dHx8KGIobi50b3VjaGVkRmllbGRzLGUsaSksdS50b3VjaGVkRmllbGRzPW4udG91Y2hlZEZpZWxkcyxzPXN8fChULnRvdWNoZWRGaWVsZHN8fEUudG91Y2hlZEZpZWxkcykmJnQhPT1pKX1zJiZvJiZELnN0YXRlLm5leHQodSl9cmV0dXJuIHM/dTp7fX0sc2U9KGUscixpLGEpPT57bGV0IG89ZyhuLmVycm9ycyxlKSxzPShULmlzVmFsaWR8fEUuaXNWYWxpZCkmJl8ocikmJm4uaXNWYWxpZCE9PXI7aWYodC5kZWxheUVycm9yJiZpPyhDPU4oKCk9PmllKGUsaSkpLEModC5kZWxheUVycm9yKSk6KGNsZWFyVGltZW91dCh3KSxDPW51bGwsaT9iKG4uZXJyb3JzLGUsaSk6VShuLmVycm9ycyxlKSksKGk/IVIobyxpKTpvKXx8IXooYSl8fHMpe2xldCB0PXsuLi5hLC4uLnMmJl8ocik/e2lzVmFsaWQ6cn06e30sZXJyb3JzOm4uZXJyb3JzLG5hbWU6ZX07bj17Li4ubiwuLi50fSxELnN0YXRlLm5leHQodCl9fSxLPWFzeW5jIGU9PntMKGUsITApO2xldCBuPWF3YWl0IHQucmVzb2x2ZXIoZCx0LmNvbnRleHQsZmUoZXx8eS5tb3VudCxvLHQuY3JpdGVyaWFNb2RlLHQuc2hvdWxkVXNlTmF0aXZlVmFsaWRhdGlvbikpO3JldHVybiBMKGUpLG59LGNlPWFzeW5jIGU9PntsZXR7ZXJyb3JzOnR9PWF3YWl0IEsoZSk7aWYoZSlmb3IobGV0IHIgb2YgZSl7bGV0IGU9Zyh0LHIpO2U/YihuLmVycm9ycyxyLGUpOlUobi5lcnJvcnMscil9ZWxzZSBuLmVycm9ycz10O3JldHVybiB0fSxxPWFzeW5jKGUscixpPXt2YWxpZDohMH0pPT57Zm9yKGxldCBhIGluIGUpe2xldCBvPWVbYV07aWYobyl7bGV0e19mOmUsLi4uc309bztpZihlKXtsZXQgcz15LmFycmF5LmhhcyhlLm5hbWUpLGM9by5fZiYmaGUoby5fZik7YyYmVC52YWxpZGF0aW5nRmllbGRzJiZMKFthXSwhMCk7bGV0IGw9YXdhaXQgVGUobyx5LmRpc2FibGVkLGQsTSx0LnNob3VsZFVzZU5hdGl2ZVZhbGlkYXRpb24mJiFyLHMpO2lmKGMmJlQudmFsaWRhdGluZ0ZpZWxkcyYmTChbYV0pLGxbZS5uYW1lXSYmKGkudmFsaWQ9ITEscikpYnJlYWs7IXImJihnKGwsZS5uYW1lKT9zP0NlKG4uZXJyb3JzLGwsZS5uYW1lKTpiKG4uZXJyb3JzLGUubmFtZSxsW2UubmFtZV0pOlUobi5lcnJvcnMsZS5uYW1lKSl9IXoocykmJmF3YWl0IHEocyxyLGkpfX1yZXR1cm4gaS52YWxpZH0sdWU9KCk9Pntmb3IobGV0IGUgb2YgeS51bk1vdW50KXtsZXQgdD1nKG8sZSk7dCYmKHQuX2YucmVmcz90Ll9mLnJlZnMuZXZlcnkoZT0+IXJlKGUpKTohcmUodC5fZi5yZWYpKSYmTGUoZSl9eS51bk1vdW50PW5ldyBTZXR9LEo9KGUsbik9PiF0LmRpc2FibGVkJiYoZSYmbiYmYihkLGUsbiksIVIoQWUoKSxsKSksWT0oZSx0LG4pPT5BKGUseSx7Li4udi5tb3VudD9kOmgodCk/bDprKGUpP3tbZV06dH06dH0sbix0KSxtZT1lPT5tKGcodi5tb3VudD9kOmwsZSx0LnNob3VsZFVucmVnaXN0ZXI/ZyhsLGUsW10pOltdKSksUT0oZSx0LG49e30pPT57bGV0IGk9ZyhvLGUpLHM9dDtpZihpKXtsZXQgbj1pLl9mO24mJighbi5kaXNhYmxlZCYmYihkLGUsbGUodCxuKSkscz1WKG4ucmVmKSYmYSh0KT9gYDp0LHRlKG4ucmVmKT9bLi4ubi5yZWYub3B0aW9uc10uZm9yRWFjaChlPT5lLnNlbGVjdGVkPXMuaW5jbHVkZXMoZS52YWx1ZSkpOm4ucmVmcz9yKG4ucmVmKT9uLnJlZnMubGVuZ3RoPjE/bi5yZWZzLmZvckVhY2goZT0+KCFlLmRlZmF1bHRDaGVja2VkfHwhZS5kaXNhYmxlZCkmJihlLmNoZWNrZWQ9QXJyYXkuaXNBcnJheShzKT8hIXMuZmluZCh0PT50PT09ZS52YWx1ZSk6cz09PWUudmFsdWUpKTpuLnJlZnNbMF0mJihuLnJlZnNbMF0uY2hlY2tlZD0hIXMpOm4ucmVmcy5mb3JFYWNoKGU9PmUuY2hlY2tlZD1lLnZhbHVlPT09cyk6ZWUobi5yZWYpP24ucmVmLnZhbHVlPWBgOihuLnJlZi52YWx1ZT1zLG4ucmVmLnR5cGV8fEQuc3RhdGUubmV4dCh7bmFtZTplLHZhbHVlczpwKGQpfSkpKX0obi5zaG91bGREaXJ0eXx8bi5zaG91bGRUb3VjaCkmJlcoZSxzLG4uc2hvdWxkVG91Y2gsbi5zaG91bGREaXJ0eSwhMCksbi5zaG91bGRWYWxpZGF0ZSYma2UoZSl9LHdlPShlLHQsbik9Pntmb3IobGV0IHIgaW4gdCl7bGV0IGE9dFtyXSxjPWAke2V9LiR7cn1gLGw9ZyhvLGMpOyh5LmFycmF5LmhhcyhlKXx8cyhhKXx8bCYmIWwuX2YpJiYhaShhKT93ZShjLGEsbik6UShjLGEsbil9fSwkPShlLHQscj17fSk9PntsZXQgaT1nKG8sZSkscz15LmFycmF5LmhhcyhlKSxjPXAodCk7YihkLGUsYykscz8oRC5hcnJheS5uZXh0KHtuYW1lOmUsdmFsdWVzOnAoZCl9KSwoVC5pc0RpcnR5fHxULmRpcnR5RmllbGRzfHxFLmlzRGlydHl8fEUuZGlydHlGaWVsZHMpJiZyLnNob3VsZERpcnR5JiZELnN0YXRlLm5leHQoe25hbWU6ZSxkaXJ0eUZpZWxkczpHKGwsZCksaXNEaXJ0eTpKKGUsYyl9KSk6aSYmIWkuX2YmJiFhKGMpP3dlKGUsYyxyKTpRKGUsYyxyKSxfZShlLHkpJiZELnN0YXRlLm5leHQoey4uLm59KSxELnN0YXRlLm5leHQoe25hbWU6di5tb3VudD9lOnZvaWQgMCx2YWx1ZXM6cChkKX0pfSxEZT1hc3luYyBlPT57di5tb3VudD0hMDtsZXQgcj1lLnRhcmdldCxhPXIubmFtZSxzPSEwLGw9ZyhvLGEpLHU9ZT0+e3M9TnVtYmVyLmlzTmFOKGUpfHxpKGUpJiZpc05hTihlLmdldFRpbWUoKSl8fFIoZSxnKGQsYSxlKSl9O2lmKGwpe2xldCBpLGYsbT1yLnR5cGU/ZGUobC5fZik6YyhlKSxoPWUudHlwZT09PXguQkxVUnx8ZS50eXBlPT09eC5GT0NVU19PVVQsXz0hZ2UobC5fZikmJiF0LnJlc29sdmVyJiYhZyhuLmVycm9ycyxhKSYmIWwuX2YuZGVwc3x8eGUoaCxnKG4udG91Y2hlZEZpZWxkcyxhKSxuLmlzU3VibWl0dGVkLGosTyksdj1fZShhLHksaCk7YihkLGEsbSksaD8obC5fZi5vbkJsdXImJmwuX2Yub25CbHVyKGUpLEMmJkMoMCkpOmwuX2Yub25DaGFuZ2UmJmwuX2Yub25DaGFuZ2UoZSk7bGV0IFM9VyhhLG0saCksdz0heihTKXx8djtpZighaCYmRC5zdGF0ZS5uZXh0KHtuYW1lOmEsdHlwZTplLnR5cGUsdmFsdWVzOnAoZCl9KSxfKXJldHVybihULmlzVmFsaWR8fEUuaXNWYWxpZCkmJih0Lm1vZGU9PT1gb25CbHVyYD9oJiZQKCk6aHx8UCgpKSx3JiZELnN0YXRlLm5leHQoe25hbWU6YSwuLi52P3t9OlN9KTtpZighaCYmdiYmRC5zdGF0ZS5uZXh0KHsuLi5ufSksdC5yZXNvbHZlcil7bGV0e2Vycm9yczplfT1hd2FpdCBLKFthXSk7aWYodShtKSxzKXtsZXQgdD12ZShlLG8sdmUobi5lcnJvcnMsbyxhKS5uYW1lfHxhKTtpPXQuZXJyb3IsYT10Lm5hbWUsZj16KGUpfX1lbHNlIEwoW2FdLCEwKSxpPShhd2FpdCBUZShsLHkuZGlzYWJsZWQsZCxNLHQuc2hvdWxkVXNlTmF0aXZlVmFsaWRhdGlvbikpW2FdLEwoW2FdKSx1KG0pLHMmJihpP2Y9ITE6KFQuaXNWYWxpZHx8RS5pc1ZhbGlkKSYmKGY9YXdhaXQgcShvLCEwKSkpO3MmJihsLl9mLmRlcHMmJmtlKGwuX2YuZGVwcyksc2UoYSxmLGksUykpfX0sT2U9KGUsdCk9PntpZihnKG4uZXJyb3JzLHQpJiZlLmZvY3VzKXJldHVybiBlLmZvY3VzKCksMX0sa2U9YXN5bmMoZSxyPXt9KT0+e2xldCBpLGEscz1GKGUpO2lmKHQucmVzb2x2ZXIpe2xldCB0PWF3YWl0IGNlKGgoZSk/ZTpzKTtpPXoodCksYT1lPyFzLnNvbWUoZT0+Zyh0LGUpKTppfWVsc2UgZT8oYT0oYXdhaXQgUHJvbWlzZS5hbGwocy5tYXAoYXN5bmMgZT0+e2xldCB0PWcobyxlKTtyZXR1cm4gYXdhaXQgcSh0JiZ0Ll9mP3tbZV06dH06dCl9KSkpLmV2ZXJ5KEJvb2xlYW4pLCEoIWEmJiFuLmlzVmFsaWQpJiZQKCkpOmE9aT1hd2FpdCBxKG8pO3JldHVybiBELnN0YXRlLm5leHQoey4uLiFrKGUpfHwoVC5pc1ZhbGlkfHxFLmlzVmFsaWQpJiZpIT09bi5pc1ZhbGlkP3t9OntuYW1lOmV9LC4uLnQucmVzb2x2ZXJ8fCFlP3tpc1ZhbGlkOml9Ont9LGVycm9yczpuLmVycm9yc30pLHIuc2hvdWxkRm9jdXMmJiFhJiZaKG8sT2UsZT9zOnkubW91bnQpLGF9LEFlPWU9PntsZXQgdD17Li4udi5tb3VudD9kOmx9O3JldHVybiBoKGUpP3Q6ayhlKT9nKHQsZSk6ZS5tYXAoZT0+Zyh0LGUpKX0samU9KGUsdCk9Pih7aW52YWxpZDohIWcoKHR8fG4pLmVycm9ycyxlKSxpc0RpcnR5OiEhZygodHx8bikuZGlydHlGaWVsZHMsZSksZXJyb3I6ZygodHx8bikuZXJyb3JzLGUpLGlzVmFsaWRhdGluZzohIWcobi52YWxpZGF0aW5nRmllbGRzLGUpLGlzVG91Y2hlZDohIWcoKHR8fG4pLnRvdWNoZWRGaWVsZHMsZSl9KSxNZT1lPT57ZSYmRihlKS5mb3JFYWNoKGU9PlUobi5lcnJvcnMsZSkpLEQuc3RhdGUubmV4dCh7ZXJyb3JzOmU/bi5lcnJvcnM6e319KX0sTmU9KGUsdCxyKT0+e2xldCBpPShnKG8sZSx7X2Y6e319KS5fZnx8e30pLnJlZix7cmVmOmEsbWVzc2FnZTpzLHR5cGU6YywuLi5sfT1nKG4uZXJyb3JzLGUpfHx7fTtiKG4uZXJyb3JzLGUsey4uLmwsLi4udCxyZWY6aX0pLEQuc3RhdGUubmV4dCh7bmFtZTplLGVycm9yczpuLmVycm9ycyxpc1ZhbGlkOiExfSksciYmci5zaG91bGRGb2N1cyYmaSYmaS5mb2N1cyYmaS5mb2N1cygpfSxQZT0oZSx0KT0+QihlKT9ELnN0YXRlLnN1YnNjcmliZSh7bmV4dDpuPT5lKFkodm9pZCAwLHQpLG4pfSk6WShlLHQsITApLEZlPWU9PkQuc3RhdGUuc3Vic2NyaWJlKHtuZXh0OnQ9PntiZShlLm5hbWUsdC5uYW1lLGUuZXhhY3QpJiZ5ZSh0LGUuZm9ybVN0YXRlfHxULHFlLGUucmVSZW5kZXJSb290KSYmZS5jYWxsYmFjayh7dmFsdWVzOnsuLi5kfSwuLi5uLC4uLnR9KX19KS51bnN1YnNjcmliZSxJZT1lPT4odi5tb3VudD0hMCxFPXsuLi5FLC4uLmUuZm9ybVN0YXRlfSxGZSh7Li4uZSxmb3JtU3RhdGU6RX0pKSxMZT0oZSxyPXt9KT0+e2ZvcihsZXQgaSBvZiBlP0YoZSk6eS5tb3VudCl5Lm1vdW50LmRlbGV0ZShpKSx5LmFycmF5LmRlbGV0ZShpKSxyLmtlZXBWYWx1ZXx8KFUobyxpKSxVKGQsaSkpLCFyLmtlZXBFcnJvciYmVShuLmVycm9ycyxpKSwhci5rZWVwRGlydHkmJlUobi5kaXJ0eUZpZWxkcyxpKSwhci5rZWVwVG91Y2hlZCYmVShuLnRvdWNoZWRGaWVsZHMsaSksIXIua2VlcElzVmFsaWRhdGluZyYmVShuLnZhbGlkYXRpbmdGaWVsZHMsaSksIXQuc2hvdWxkVW5yZWdpc3RlciYmIXIua2VlcERlZmF1bHRWYWx1ZSYmVShsLGkpO0Quc3RhdGUubmV4dCh7dmFsdWVzOnAoZCl9KSxELnN0YXRlLm5leHQoey4uLm4sLi4uci5rZWVwRGlydHk/e2lzRGlydHk6SigpfTp7fX0pLCFyLmtlZXBJc1ZhbGlkJiZQKCl9LFJlPSh7ZGlzYWJsZWQ6ZSxuYW1lOnR9KT0+eyhfKGUpJiZ2Lm1vdW50fHxlfHx5LmRpc2FibGVkLmhhcyh0KSkmJihlP3kuZGlzYWJsZWQuYWRkKHQpOnkuZGlzYWJsZWQuZGVsZXRlKHQpKX0semU9KGUsbj17fSk9PntsZXQgcj1nKG8sZSksaT1fKG4uZGlzYWJsZWQpfHxfKHQuZGlzYWJsZWQpO3JldHVybiBiKG8sZSx7Li4ucnx8e30sX2Y6ey4uLnImJnIuX2Y/ci5fZjp7cmVmOntuYW1lOmV9fSxuYW1lOmUsbW91bnQ6ITAsLi4ubn19KSx5Lm1vdW50LmFkZChlKSxyP1JlKHtkaXNhYmxlZDpfKG4uZGlzYWJsZWQpP24uZGlzYWJsZWQ6dC5kaXNhYmxlZCxuYW1lOmV9KTpvZShlLCEwLG4udmFsdWUpLHsuLi5pP3tkaXNhYmxlZDpuLmRpc2FibGVkfHx0LmRpc2FibGVkfTp7fSwuLi50LnByb2dyZXNzaXZlP3tyZXF1aXJlZDohIW4ucmVxdWlyZWQsbWluOlgobi5taW4pLG1heDpYKG4ubWF4KSxtaW5MZW5ndGg6WChuLm1pbkxlbmd0aCksbWF4TGVuZ3RoOlgobi5tYXhMZW5ndGgpLHBhdHRlcm46WChuLnBhdHRlcm4pfTp7fSxuYW1lOmUsb25DaGFuZ2U6RGUsb25CbHVyOkRlLHJlZjppPT57aWYoaSl7emUoZSxuKSxyPWcobyxlKTtsZXQgdD1oKGkudmFsdWUpJiZpLnF1ZXJ5U2VsZWN0b3JBbGwmJmkucXVlcnlTZWxlY3RvckFsbChgaW5wdXQsc2VsZWN0LHRleHRhcmVhYClbMF18fGksYT1uZSh0KSxzPXIuX2YucmVmc3x8W107aWYoYT9zLmZpbmQoZT0+ZT09PXQpOnQ9PT1yLl9mLnJlZilyZXR1cm47YihvLGUse19mOnsuLi5yLl9mLC4uLmE/e3JlZnM6Wy4uLnMuZmlsdGVyKHJlKSx0LC4uLkFycmF5LmlzQXJyYXkoZyhsLGUpKT9be31dOltdXSxyZWY6e3R5cGU6dC50eXBlLG5hbWU6ZX19OntyZWY6dH19fSksb2UoZSwhMSx2b2lkIDAsdCl9ZWxzZSByPWcobyxlLHt9KSxyLl9mJiYoci5fZi5tb3VudD0hMSksKHQuc2hvdWxkVW5yZWdpc3Rlcnx8bi5zaG91bGRVbnJlZ2lzdGVyKSYmISh1KHkuYXJyYXksZSkmJnYuYWN0aW9uKSYmeS51bk1vdW50LmFkZChlKX19fSxCZT0oKT0+dC5zaG91bGRGb2N1c0Vycm9yJiZaKG8sT2UseS5tb3VudCksVmU9ZT0+e18oZSkmJihELnN0YXRlLm5leHQoe2Rpc2FibGVkOmV9KSxaKG8sKHQsbik9PntsZXQgcj1nKG8sbik7ciYmKHQuZGlzYWJsZWQ9ci5fZi5kaXNhYmxlZHx8ZSxBcnJheS5pc0FycmF5KHIuX2YucmVmcykmJnIuX2YucmVmcy5mb3JFYWNoKHQ9Pnt0LmRpc2FibGVkPXIuX2YuZGlzYWJsZWR8fGV9KSl9LDAsITEpKX0sSGU9KGUscik9PmFzeW5jIGk9PntsZXQgYTtpJiYoaS5wcmV2ZW50RGVmYXVsdCYmaS5wcmV2ZW50RGVmYXVsdCgpLGkucGVyc2lzdCYmaS5wZXJzaXN0KCkpO2xldCBzPXAoZCk7aWYoRC5zdGF0ZS5uZXh0KHtpc1N1Ym1pdHRpbmc6ITB9KSx0LnJlc29sdmVyKXtsZXR7ZXJyb3JzOmUsdmFsdWVzOnR9PWF3YWl0IEsoKTtuLmVycm9ycz1lLHM9dH1lbHNlIGF3YWl0IHEobyk7aWYoeS5kaXNhYmxlZC5zaXplKWZvcihsZXQgZSBvZiB5LmRpc2FibGVkKWIocyxlLHZvaWQgMCk7aWYoVShuLmVycm9ycyxgcm9vdGApLHoobi5lcnJvcnMpKXtELnN0YXRlLm5leHQoe2Vycm9yczp7fX0pO3RyeXthd2FpdCBlKHMsaSl9Y2F0Y2goZSl7YT1lfX1lbHNlIHImJmF3YWl0IHIoey4uLm4uZXJyb3JzfSxpKSxCZSgpLHNldFRpbWVvdXQoQmUpO2lmKEQuc3RhdGUubmV4dCh7aXNTdWJtaXR0ZWQ6ITAsaXNTdWJtaXR0aW5nOiExLGlzU3VibWl0U3VjY2Vzc2Z1bDp6KG4uZXJyb3JzKSYmIWEsc3VibWl0Q291bnQ6bi5zdWJtaXRDb3VudCsxLGVycm9yczpuLmVycm9yc30pLGEpdGhyb3cgYX0sVWU9KGUsdD17fSk9PntnKG8sZSkmJihoKHQuZGVmYXVsdFZhbHVlKT8kKGUscChnKGwsZSkpKTooJChlLHQuZGVmYXVsdFZhbHVlKSxiKGwsZSxwKHQuZGVmYXVsdFZhbHVlKSkpLHQua2VlcFRvdWNoZWR8fFUobi50b3VjaGVkRmllbGRzLGUpLHQua2VlcERpcnR5fHwoVShuLmRpcnR5RmllbGRzLGUpLG4uaXNEaXJ0eT10LmRlZmF1bHRWYWx1ZT9KKGUscChnKGwsZSkpKTpKKCkpLHQua2VlcEVycm9yfHwoVShuLmVycm9ycyxlKSxULmlzVmFsaWQmJlAoKSksRC5zdGF0ZS5uZXh0KHsuLi5ufSkpfSxXZT0oZSxyPXt9KT0+e2xldCBpPWU/cChlKTpsLGE9cChpKSxzPXooZSksYz1zP2w6YTtpZihyLmtlZXBEZWZhdWx0VmFsdWVzfHwobD1pKSwhci5rZWVwVmFsdWVzKXtpZihyLmtlZXBEaXJ0eVZhbHVlcyl7bGV0IGU9bmV3IFNldChbLi4ueS5tb3VudCwuLi5PYmplY3Qua2V5cyhHKGwsZCkpXSk7Zm9yKGxldCB0IG9mIEFycmF5LmZyb20oZSkpZyhuLmRpcnR5RmllbGRzLHQpP2IoYyx0LGcoZCx0KSk6JCh0LGcoYyx0KSl9ZWxzZXtpZihmJiZoKGUpKWZvcihsZXQgZSBvZiB5Lm1vdW50KXtsZXQgdD1nKG8sZSk7aWYodCYmdC5fZil7bGV0IGU9QXJyYXkuaXNBcnJheSh0Ll9mLnJlZnMpP3QuX2YucmVmc1swXTp0Ll9mLnJlZjtpZihWKGUpKXtsZXQgdD1lLmNsb3Nlc3QoYGZvcm1gKTtpZih0KXt0LnJlc2V0KCk7YnJlYWt9fX19Zm9yKGxldCBlIG9mIHkubW91bnQpJChlLGcoYyxlKSl9ZD1wKGMpLEQuYXJyYXkubmV4dCh7dmFsdWVzOnsuLi5jfX0pLEQuc3RhdGUubmV4dCh7dmFsdWVzOnsuLi5jfX0pfXk9e21vdW50OnIua2VlcERpcnR5VmFsdWVzP3kubW91bnQ6bmV3IFNldCx1bk1vdW50Om5ldyBTZXQsYXJyYXk6bmV3IFNldCxkaXNhYmxlZDpuZXcgU2V0LHdhdGNoOm5ldyBTZXQsd2F0Y2hBbGw6ITEsZm9jdXM6YGB9LHYubW91bnQ9IVQuaXNWYWxpZHx8ISFyLmtlZXBJc1ZhbGlkfHwhIXIua2VlcERpcnR5VmFsdWVzLHYud2F0Y2g9ISF0LnNob3VsZFVucmVnaXN0ZXIsRC5zdGF0ZS5uZXh0KHtzdWJtaXRDb3VudDpyLmtlZXBTdWJtaXRDb3VudD9uLnN1Ym1pdENvdW50OjAsaXNEaXJ0eTpzPyExOnIua2VlcERpcnR5P24uaXNEaXJ0eTohIShyLmtlZXBEZWZhdWx0VmFsdWVzJiYhUihlLGwpKSxpc1N1Ym1pdHRlZDpyLmtlZXBJc1N1Ym1pdHRlZD9uLmlzU3VibWl0dGVkOiExLGRpcnR5RmllbGRzOnM/e306ci5rZWVwRGlydHlWYWx1ZXM/ci5rZWVwRGVmYXVsdFZhbHVlcyYmZD9HKGwsZCk6bi5kaXJ0eUZpZWxkczpyLmtlZXBEZWZhdWx0VmFsdWVzJiZlP0cobCxlKTpyLmtlZXBEaXJ0eT9uLmRpcnR5RmllbGRzOnt9LHRvdWNoZWRGaWVsZHM6ci5rZWVwVG91Y2hlZD9uLnRvdWNoZWRGaWVsZHM6e30sZXJyb3JzOnIua2VlcEVycm9ycz9uLmVycm9yczp7fSxpc1N1Ym1pdFN1Y2Nlc3NmdWw6ci5rZWVwSXNTdWJtaXRTdWNjZXNzZnVsP24uaXNTdWJtaXRTdWNjZXNzZnVsOiExLGlzU3VibWl0dGluZzohMX0pfSxHZT0oZSx0KT0+V2UoQihlKT9lKGQpOmUsdCksS2U9KGUsdD17fSk9PntsZXQgbj1nKG8sZSkscj1uJiZuLl9mO2lmKHIpe2xldCBlPXIucmVmcz9yLnJlZnNbMF06ci5yZWY7ZS5mb2N1cyYmKGUuZm9jdXMoKSx0LnNob3VsZFNlbGVjdCYmQihlLnNlbGVjdCkmJmUuc2VsZWN0KCkpfX0scWU9ZT0+e249ey4uLm4sLi4uZX19LEplPXtjb250cm9sOntyZWdpc3Rlcjp6ZSx1bnJlZ2lzdGVyOkxlLGdldEZpZWxkU3RhdGU6amUsaGFuZGxlU3VibWl0OkhlLHNldEVycm9yOk5lLF9zdWJzY3JpYmU6RmUsX3J1blNjaGVtYTpLLF9nZXRXYXRjaDpZLF9nZXREaXJ0eTpKLF9zZXRWYWxpZDpQLF9zZXRGaWVsZEFycmF5OkgsX3NldERpc2FibGVkRmllbGQ6UmUsX3NldEVycm9yczphZSxfZ2V0RmllbGRBcnJheTptZSxfcmVzZXQ6V2UsX3Jlc2V0RGVmYXVsdFZhbHVlczooKT0+Qih0LmRlZmF1bHRWYWx1ZXMpJiZ0LmRlZmF1bHRWYWx1ZXMoKS50aGVuKGU9PntHZShlLHQucmVzZXRPcHRpb25zKSxELnN0YXRlLm5leHQoe2lzTG9hZGluZzohMX0pfSksX3JlbW92ZVVubW91bnRlZDp1ZSxfZGlzYWJsZUZvcm06VmUsX3N1YmplY3RzOkQsX3Byb3h5Rm9ybVN0YXRlOlQsZ2V0IF9maWVsZHMoKXtyZXR1cm4gb30sZ2V0IF9mb3JtVmFsdWVzKCl7cmV0dXJuIGR9LGdldCBfc3RhdGUoKXtyZXR1cm4gdn0sc2V0IF9zdGF0ZShlKXt2PWV9LGdldCBfZGVmYXVsdFZhbHVlcygpe3JldHVybiBsfSxnZXQgX25hbWVzKCl7cmV0dXJuIHl9LHNldCBfbmFtZXMoZSl7eT1lfSxnZXQgX2Zvcm1TdGF0ZSgpe3JldHVybiBufSxnZXQgX29wdGlvbnMoKXtyZXR1cm4gdH0sc2V0IF9vcHRpb25zKGUpe3Q9ey4uLnQsLi4uZX19fSxzdWJzY3JpYmU6SWUsdHJpZ2dlcjprZSxyZWdpc3Rlcjp6ZSxoYW5kbGVTdWJtaXQ6SGUsd2F0Y2g6UGUsc2V0VmFsdWU6JCxnZXRWYWx1ZXM6QWUscmVzZXQ6R2UscmVzZXRGaWVsZDpVZSxjbGVhckVycm9yczpNZSx1bnJlZ2lzdGVyOkxlLHNldEVycm9yOk5lLHNldEZvY3VzOktlLGdldEZpZWxkU3RhdGU6amV9O3JldHVybnsuLi5KZSxmb3JtQ29udHJvbDpKZX19ZnVuY3Rpb24gT2UoZT17fSl7bGV0IHQ9bi51c2VSZWYodm9pZCAwKSxyPW4udXNlUmVmKHZvaWQgMCksW2ksYV09bi51c2VTdGF0ZSh7aXNEaXJ0eTohMSxpc1ZhbGlkYXRpbmc6ITEsaXNMb2FkaW5nOkIoZS5kZWZhdWx0VmFsdWVzKSxpc1N1Ym1pdHRlZDohMSxpc1N1Ym1pdHRpbmc6ITEsaXNTdWJtaXRTdWNjZXNzZnVsOiExLGlzVmFsaWQ6ITEsc3VibWl0Q291bnQ6MCxkaXJ0eUZpZWxkczp7fSx0b3VjaGVkRmllbGRzOnt9LHZhbGlkYXRpbmdGaWVsZHM6e30sZXJyb3JzOmUuZXJyb3JzfHx7fSxkaXNhYmxlZDplLmRpc2FibGVkfHwhMSxkZWZhdWx0VmFsdWVzOkIoZS5kZWZhdWx0VmFsdWVzKT92b2lkIDA6ZS5kZWZhdWx0VmFsdWVzfSk7dC5jdXJyZW50fHwodC5jdXJyZW50PXsuLi5lLmZvcm1Db250cm9sP2UuZm9ybUNvbnRyb2w6RGUoZSksZm9ybVN0YXRlOml9LGUuZm9ybUNvbnRyb2wmJmUuZGVmYXVsdFZhbHVlcyYmIUIoZS5kZWZhdWx0VmFsdWVzKSYmZS5mb3JtQ29udHJvbC5yZXNldChlLmRlZmF1bHRWYWx1ZXMsZS5yZXNldE9wdGlvbnMpKTtsZXQgbz10LmN1cnJlbnQuY29udHJvbDtyZXR1cm4gby5fb3B0aW9ucz1lLG4udXNlTGF5b3V0RWZmZWN0KCgpPT5vLl9zdWJzY3JpYmUoe2Zvcm1TdGF0ZTpvLl9wcm94eUZvcm1TdGF0ZSxjYWxsYmFjazooKT0+YSh7Li4uby5fZm9ybVN0YXRlfSkscmVSZW5kZXJSb290OiEwfSksW29dKSxuLnVzZUVmZmVjdCgoKT0+by5fZGlzYWJsZUZvcm0oZS5kaXNhYmxlZCksW28sZS5kaXNhYmxlZF0pLG4udXNlRWZmZWN0KCgpPT57aWYoby5fcHJveHlGb3JtU3RhdGUuaXNEaXJ0eSl7bGV0IGU9by5fZ2V0RGlydHkoKTtlIT09aS5pc0RpcnR5JiZvLl9zdWJqZWN0cy5zdGF0ZS5uZXh0KHtpc0RpcnR5OmV9KX19LFtvLGkuaXNEaXJ0eV0pLG4udXNlRWZmZWN0KCgpPT57ZS52YWx1ZXMmJiFSKGUudmFsdWVzLHIuY3VycmVudCk/KG8uX3Jlc2V0KGUudmFsdWVzLG8uX29wdGlvbnMucmVzZXRPcHRpb25zKSxyLmN1cnJlbnQ9ZS52YWx1ZXMsYShlPT4oey4uLmV9KSkpOm8uX3Jlc2V0RGVmYXVsdFZhbHVlcygpfSxbZS52YWx1ZXMsb10pLG4udXNlRWZmZWN0KCgpPT57ZS5lcnJvcnMmJiF6KGUuZXJyb3JzKSYmby5fc2V0RXJyb3JzKGUuZXJyb3JzKX0sW2UuZXJyb3JzLG9dKSxuLnVzZUVmZmVjdCgoKT0+e28uX3N0YXRlLm1vdW50fHwoby5fc2V0VmFsaWQoKSxvLl9zdGF0ZS5tb3VudD0hMCksby5fc3RhdGUud2F0Y2gmJihvLl9zdGF0ZS53YXRjaD0hMSxvLl9zdWJqZWN0cy5zdGF0ZS5uZXh0KHsuLi5vLl9mb3JtU3RhdGV9KSksby5fcmVtb3ZlVW5tb3VudGVkKCl9KSxuLnVzZUVmZmVjdCgoKT0+e2Uuc2hvdWxkVW5yZWdpc3RlciYmby5fc3ViamVjdHMuc3RhdGUubmV4dCh7dmFsdWVzOm8uX2dldFdhdGNoKCl9KX0sW2Uuc2hvdWxkVW5yZWdpc3RlcixvXSksdC5jdXJyZW50LmZvcm1TdGF0ZT1EKGksbyksdC5jdXJyZW50fWV4cG9ydHtUIGFzIGEsT2UgYXMgaSxFIGFzIG4saiBhcyBvLE0gYXMgcixOIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0NvblRMcjNuLmpzLm1hcA=="}},"time_used":112,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":112,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"as.coinbase.com/amp","fqdn":"as.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:06.390Z","timestamp":1785108246390,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /amp HTTP/1.1\r\nHost: as.coinbase.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.coinbase.com/\r\nContent-Type: application/x-www-form-urlencoded; charset=UTF-8\r\nContent-Length: 1857\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":1857,"data":"e=%5B%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108246388%2C%22event_id%22%3A14%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22google_one_tap_display%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22render%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22modal%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22trace_id%22%3A%2214592905212061344081%22%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%22e8d5513e-e6e7-46d8-a35e-2379acdfe789%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A14%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%5D\u0026v=2\u0026upload_time=1785108246388\u0026client=132e62b5953ce8d568137d5887b6b7ab"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:06 GMT\r\ncontent-type: text/plain; charset=utf-8\r\ncontent-length: 7\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\naccess-control-allow-origin: *\r\nserver: cloudflare\r\nx-content-type-options: nosniff\r\ntrace-id: 8511990797778280688\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=iO3MCsZyBZ5TUboC1QVpfYSNRc%2BiSa6el%2BkJqhSI2uM9WMmbkR0cjfP6QdEvpjRLdQ7Wj2ko3EXmXD%2FvOigmXmw7G1t8%2BYycn7BGK9lDXft8XVX87CsZjlx%2FeA842RhJSA%3D%3D\"}]}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nset-cookie: cb_dm=30b52273-bd6f-47f0-8359-66b30faed4c5; Path=/; Domain=coinbase.com; Expires=Sat, 26 Jul 2036 23:24:06 GMT; HttpOnly; Secure\n__cf_bm=xQu15Ti3B4ftYV2WeqVRffrXX3shkUW8oMOW4mbQoPM-1785108246.391608-1.0.1.1-IgCFteXKX9fDwdzxcz_s6D4hUqr0beURvFoljSteMKuu1PXGznBboNYOK_z.QbnYiw9XRKB9Dy9TxEIJ6bqnBkfQLz.bzFVA8bST8X91S.Csi5_VT07SX6pLqHDP4LNU; HttpOnly; SameSite=None; Secure; Path=/; Domain=coinbase.com; Expires=Sun, 26 Jul 2026 23:54:06 GMT\r\ncf-ray: a21727ebfd3c1525-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":7,"size_decoded":1164,"mime_type":"text/plain; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"260ca9dd8a4577fc00b7bd5810298076","sha1":"53a5687cb26dc41f2ab4033e97e13adefd3740d6","sha256":"aee408847d35e44e99430f0979c3357b85fe8dbb4535a494301198adbee85f27","sha512":"51e85deb51c2b909a21ec5b8e83b1cb28da258b1be227620105a345a2bd4c6aea549cd5429670f2df33324667b9f623a420b3a0bdbbd03ad48602211e75478a7","ssdeep":"","tlshash":"c0400003000000c000000000000000003000000000000000c00000000f0000000c3000","first_seen":"2023-04-05T04:46:42Z","last_seen":"2026-07-26T23:32:20.195442Z","times_seen":35925,"resource_available":true,"data":"c3VjY2Vzcw=="}},"time_used":123,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":123,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/graphql/query?\u0026operationName=useAnonTouchCaptureMutation","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:05.771Z","timestamp":1785108245771,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /graphql/query?\u0026operationName=useAnonTouchCaptureMutation HTTP/1.1\r\nHost: www.coinbase.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: multipart/mixed;deferSpec=20220824, application/json\r\nAccept-Language: en\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://www.coinbase.com/\r\nX-CB-Device-ID: bbfb27f8-0009-47a7-974b-39f1a9a7b2eb\r\nX-CB-User-ID: unknown\r\nX-CB-Is-Logged-In: false\r\nX-CB-Pagekey: homepage\r\nX-CB-UJS: ujs_load_homepage_screen\r\nX-CB-Platform: web\r\nX-CB-Project-Name: consumer\r\nX-CB-Session-UUID: d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6\r\nX-CB-Version-Name: de89472f041857c92d39c517b49c360b7e08e578\r\nX-Device-TimeZone: UTC\r\nx-timezone-offset: 0\r\nCB-CLIENT: CoinbaseWeb\r\ncb-version: 2021-01-11\r\nredirect: follow\r\ncf-ipcountry: NO\r\nContent-Type: application/json\r\nx-datadog-origin: rum\r\nx-datadog-parent-id: 13625275887798354951\r\nx-datadog-sampling-priority: 1\r\nx-datadog-trace-id: 14592905212061344081\r\nContent-Length: 428\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":428,"data":"{\"query\":\"mutation useAnonTouchCaptureMutation($input:UpsertAnonymousTouchInput!){upsertAnonymousTouch(input:$input){__typename,...on UpsertAnonymousTouchSuccess{__typename},...on UpsertAnonymousTouchError{__typename,message,code,correlationId}}}\",\"operationName\":\"useAnonTouchCaptureMutation\",\"variables\":{\"input\":{\"deviceId\":\"bbfb27f8-0009-47a7-974b-39f1a9a7b2eb\",\"pageKey\":\"homepage\",\"referringDomain\":\"830129coinbase.com\"}}}"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:05 GMT\r\ncontent-type: application/json\r\ncache-control: no-store\r\ncontent-encoding: gzip\r\nserver: cloudflare\r\ntrace-id: 14592905212061344081\r\nvary: origin, accept-encoding\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=dN2R8d1gFgeD9svq1YPuLNpvuETQQH6PyKS6TLpGd8xcJ%2B0UKuE9EGyilbMMRPSFsXes%2FZk5FLxiEm1LnSbVQyKvtKIS9E9hfUjvcLb44GcRxBan3gqPaOhv1hZAslaS4gc%3D\"}]}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a21727e81b4d0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":78,"size_decoded":810,"mime_type":"application/json","magic":"JSON text data","md5":"923d6330a842f109c37c0d578d6096c4","sha1":"0cae1670cc1c1d1e53561bd213602ad138ce032c","sha256":"145c81a78ff6872333ebe76332d77409c94440d3320c5a4253dfb0ba9599e9ba","sha512":"09f4525f4e128575fdb62d46a3711d95c5ec71ea17d2e81a6f5de46bad3e598c3e70fc99be41266435aa235e30b5d29ea828eeabbeacc603db791f59ab801d5b","ssdeep":"","tlshash":"70a0110b2c200a008a0220a2b0200c0823a3e020a0030e8080b088222e8b2bbb0aa23c","first_seen":"2026-05-29T10:51:52.021615Z","last_seen":"2026-07-26T23:25:46.854758Z","times_seen":4,"resource_available":false,"data":"eyJkYXRhIjp7InVwc2VydEFub255bW91c1RvdWNoIjp7Il9fdHlwZW5hbWUiOiJVcHNlcnRBbm9ueW1vdXNUb3VjaFN1Y2Nlc3MifX19"}},"time_used":135,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":135,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"play.google.com/log?format=json\u0026hasfast=true\u0026authuser=0","fqdn":"play.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.250.178.110","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://accounts.google.com/gsi/iframe/select?client_id=1080018929571-t143o72j7g4a93rio80higse5c127qlt.apps.googleusercontent.com\u0026ux_mode=popup\u0026ui_mode=card\u0026as=P4YV9BuuJfbPkhgedIgHB68Ic8tZeptD9W32v2w9bj8\u0026bs=Ipbn%2F3QC3VM9I38GIrtJVmLS5Dk1IjofnbHBYLgAhPQ\u0026is_itp=true\u0026channel_id=812f53114c3fe45c26c43b93689aef793f17c7859e69e0ece104b435922a6230\u0026origin=https%3A%2F%2Fwww.coinbase.com\u0026oauth2_auth_url=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Fv2%2Fauth","date":"2026-07-26T23:24:16.847Z","timestamp":1785108256847,"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":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:35 GMT","end":"Mon, 21 Sep 2026 08:37:34 GMT"},"fingerprint":{"sha1":"2F:20:3B:91:88:65:20:CD:06:9D:0C:58:4D:17:6F:FC:9D:EC:41:83","sha256":"0C:7B:D3:23:E9:5B:D6:6B:F2:5C:71:91:4D:41:CE:E6:D7:1F:A2:F2:63:BA:25:70:1D:00:F3:C0:72:21:51:6D"}}},"request":{"raw":"OPTIONS /log?format=json\u0026hasfast=true\u0026authuser=0 HTTP/1.1\r\nHost: play.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\nAccess-Control-Request-Method: POST\r\nAccess-Control-Request-Headers: x-goog-authuser\r\nOrigin: https://accounts.google.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-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://accounts.google.com\r\naccess-control-allow-methods: GET, POST, OPTIONS\r\naccess-control-max-age: 86400\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: X-Playlog-Web,authorization,origin,x-goog-authuser\r\ncontent-type: text/plain; charset=UTF-8\r\ndate: Sun, 26 Jul 2026 23:24:16 GMT\r\nserver: Playlog\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\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":517,"mime_type":"text/plain; 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-27T02:51:03.003348Z","times_seen":17554215,"resource_available":true,"data":""}},"time_used":77,"timings":{"blocked":0,"dns":0,"connect":16,"send":0,"wait":31,"receive":0,"ssl":30},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_FgfDFMHn.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.598Z","timestamp":1785108244598,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_FgfDFMHn.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 1020\r\nlast-modified: Sun, 26 Jul 2026 22:31:28 GMT\r\netag: \"7a50dbd9d7f8cee719d54559d9760a43\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 cd4031e4934b88564efbd54a91cf8d24.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: rDwHVJieFnY3nUKxPshvA3ZNsGZhTo4GvGCI_nTn-ofUgybBECK3iQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=6feB9sF2466%2FUxKBx1qlgDXz0OzCkuIIiMPJlx%2FJwFwhUadMDxB7WXcx07Ms7sVhL9rINinZhrDgipg4cxgvnx9%2BI8HKe8nINj8T%2BCIdyLJToiqF8FRGueG0qTAGSDcA3fKMSbAZ64izGpNEUYH3\"}]}\r\ncf-ray: a21727e0bdc80883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":2233,"size_decoded":2166,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (2194)","md5":"cd8f293a31f311e1837e4bf513560179","sha1":"f7c2bebd308902941b9a9cd9e48b05b2837b3bf0","sha256":"2762375d14351cebb5907856f8c722bebd0a7c1e35b59a4e6e97c7c6713eed9e","sha512":"c7b6ca917ecf83d3f959f86df98c618f7acbdbc1f54fe6befefb1621117073abb4dba5598777a892bdae0cec554f638ba979008d15fc8a5d1f79cf5a8edd9398","ssdeep":"","tlshash":"7641508676e06e5e8e49825540d70829122c2132689c1f80f3bd7cde33b5ae5ce99e87","first_seen":"2026-07-26T23:24:50.280273Z","last_seen":"2026-07-26T23:25:46.910406Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDg2ZTU5OTQwLTYwYjAtNDVjOS04ZjkxLTk3NDA2ZjRkNDMxOWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTg2ZTU5OTQwLTYwYjAtNDVjOS04ZjkxLTk3NDA2ZjRkNDMxOWApfSkoKX1jYXRjaHt9aW1wb3J0e0JvIGFzIGUsV3AgYXMgdCxoZiBhcyBufWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgcj10KG4oKSksaT0oMCxyLmNyZWF0ZUNvbnRleHQpKHt9KSxhPXQoZSgpKTtmdW5jdGlvbiBvKGUpe2xldCB0PSgwLHIudXNlUmVmKShlKTtyZXR1cm4oMCxyLnVzZU1lbW8pKCgpPT57dC5jdXJyZW50PWV9LFtlXSksdH1mdW5jdGlvbiBzKHt2YWxpZGF0b3JzOmUsdmFsaWRhdGVPbkJsdXI6dCxoaWRlSW5saW5lRXJyb3JNZXNzYWdlczpuLG9uQ2hhbmdlOmksb25WYWxpZDpzLG9uSW52YWxpZDpjLGluaXRpYWxWYWx1ZTpsLGZvY3VzZWQ6dT0hMSxkaXJ0eTpkPSExfSl7bGV0W2YscF09KDAsci51c2VTdGF0ZSkobCksW20saF09KDAsci51c2VTdGF0ZSkoW10pLFtnLF9dPSgwLHIudXNlU3RhdGUpKHUpLFt2LHldPSgwLHIudXNlU3RhdGUpKGQpLGI9KDAsci51c2VSZWYpKGcpLHg9byhlKSxTPW8oaSksQz1vKHMpLHc9byhjKSxUPW0ubGVuZ3RoPjAsRT1UP21bMF06dm9pZCAwLEQ9KHQmJiFnfHwhdCkmJih0PyFnJiZ2OiEwKSYmVCYmdixPPSgwLHIudXNlQ2FsbGJhY2spKCgpPT57eSghMCl9LFtdKSxrPUQmJiEhRSYmIW4sQT0oMCxyLnVzZUNhbGxiYWNrKSgoZSx0PXt9KT0+e3QhPW51bGwmJnQuZm9yY2UmJnkoITApO2xldCBuPVtdO2ZvcihsZXRbdCxyXW9mIE9iamVjdC52YWx1ZXMoeC5jdXJyZW50fHx7fSkpdChlKSE9PSEwJiZyJiZuLnB1c2gocik7bGV0IHI9bi5sZW5ndGg+MDtpZighdC5zb2Z0KWlmKGgoZT0+KDAsYS5kZWZhdWx0KShlLG4pP2U6bikscil7dmFyIGk7KGk9dy5jdXJyZW50KT09bnVsbHx8aS5jYWxsKHcsbil9ZWxzZXt2YXIgbzsobz1DLmN1cnJlbnQpPT1udWxsfHxvLmNhbGwoQyl9cmV0dXJuIXJ9LFt3LEMseF0pLGo9KDAsci51c2VDYWxsYmFjaykoZT0+e2lmKGIuY3VycmVudCl7dmFyIHQ7TygpLHAoZSksQShlKSwodD1TLmN1cnJlbnQpPT1udWxsfHx0LmNhbGwoUyxlKX19LFtiLE8sUyxBXSksTT0oMCxyLnVzZUNhbGxiYWNrKSgoKT0+e2IuY3VycmVudD0hMCxfKCEwKX0sW10pLE49KDAsci51c2VDYWxsYmFjaykoKCk9PntiLmN1cnJlbnQ9ITEsXyghMSl9LFtdKSxQPSgwLHIudXNlQ2FsbGJhY2spKGU9PntwKGUpLEEoZSl9LFtBXSk7cmV0dXJuKDAsci51c2VNZW1vKSgoKT0+KHtzaG93SW5saW5lRXJyb3JNZXNzYWdlOmssZXJyb3I6RSxoYXNFcnJvcnM6VCxoYW5kbGVDaGFuZ2U6aixoYW5kbGVGb2N1czpNLGhhbmRsZUJsdXI6TixtYXJrRGlydHk6TyxzaG93RXJyb3JzOkQsZGlydHk6dixmb2N1c2VkOmcsdmFsaWRhdGU6QSx2YWx1ZTpmLHNldFZhbHVlOnAsdmFsaWRhdGlvbkVycm9yczptLG9uQ2hhbmdlOlB9KSxbayxFLFQsaixNLE4sTyxELHYsZyxBLGYscCxtLFBdKX1mdW5jdGlvbiBjKHtuYW1lOmUsdmFsaWRhdG9yczp0LGhpZGVJbmxpbmVFcnJvck1lc3NhZ2VzOm4sYXV0b0ZvY3VzOmEsb25DaGFuZ2U6b30pe2xldHt1cGRhdGVGaWVsZDpjLHJlbW92ZUZpZWxkOmwsZ2V0RmllbGRSZWZDYWxsYmFjazp1LGdldEluaXRpYWxGaWVsZFZhbHVlOmR9PSgwLHIudXNlQ29udGV4dCkoaSksZj11PT1udWxsP3ZvaWQgMDp1KGUpLHA9ZD09bnVsbD92b2lkIDA6ZChlKSxtPXMoe3ZhbGlkYXRvcnM6dCxoaWRlSW5saW5lRXJyb3JNZXNzYWdlczpuLGZvY3VzZWQ6YXx8ITEsZGlydHk6ITEsdmFsaWRhdGVPbkJsdXI6ITAsb25DaGFuZ2U6byxpbml0aWFsVmFsdWU6cH0pO3JldHVybigwLHIudXNlRWZmZWN0KSgoKT0+e2MmJmMoe25hbWU6ZSxzdG9yZTptfSl9LFtlLG1dKSwoMCxyLnVzZUVmZmVjdCkoKCk9PigpPT57bCYmbChlKX0sW2VdKSxjP3tzdG9yZTptLHJlZkNhbGxiYWNrOmZ9Ont9fWV4cG9ydHtjIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0ZnZkRGTUhuLmpzLm1hcA=="}},"time_used":127,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":127,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CljeGIKG2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.607Z","timestamp":1785108244607,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CljeGIKG2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 577\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\netag: \"1381ab3d119398cd2c22830b692ca52e\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 26512aa427c30d93015b4bde75974708.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: 9X1nh63J712f9-UzsHpXNWPCUZLb7EZsImhp9FGXlFZtS1yrkauuBQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=i7xizxHHu6kLhA1I6qbYAS7OKE2lrEzG5%2F40EZ%2BoEBFv0mLVfdYL0rFlD6QFwKdU7dRHoPR%2F49F9eJYQTYvhyWwKyYgRMOcuImrYlAxKn%2B5ME7PYs2z9FfGo8dIwb2w3XApLKiburPVVdOn29XkL\"}]}\r\ncf-ray: a21727e0cded0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":1217,"size_decoded":1722,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1177)","md5":"e6830b308f31c7f344b4e1d888517631","sha1":"3cfa4e09099962950b1646c21beb9d58844869f4","sha256":"c360f093392442d60aa4fc7fb1152b5798240bbe12d4aa4b59fc7e59e20e8f70","sha512":"c7ad8be7cc9272191e427f7ec80908d8dd43fa8342afe47db9d4a751e6a0d0b95ce4629a5fb26ab6d8bcfafc146364c4bc1f9d25670a6a2e375c3980f8929559","ssdeep":"","tlshash":"1421219eceb436bd80791decf013541dd32c9e29a3ee0d52e1f41a1883935d61964b5b","first_seen":"2026-07-26T23:24:50.282167Z","last_seen":"2026-07-26T23:25:46.917518Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDQ4MjRjNDIxLTMwZmEtNGQyOC1iNDQwLWIyNzBjNDI5N2MwN2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTQ4MjRjNDIxLTMwZmEtNGQyOC1iNDQwLWIyNzBjNDI5N2MwN2ApfSkoKX1jYXRjaHt9aW1wb3J0e3QgYXMgZX1mcm9tIi4vY19uS3MyYmplbjIuanMiO2ltcG9ydHt0fWZyb20iLi9jX3hTNE5ER203Mi5qcyI7aW1wb3J0e1dwIGFzIG4sZmYgYXMgcixoZiBhcyBpfWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgYT1yKCksbz1uKGkoKSkscz01NjAsYz0xMTgwLGw9MTAwLHU9YGF2aWZgO2Z1bmN0aW9uIGQoe3VybDplLG1vYmlsZVVybDpuLHF1YWxpdHk6cj1sLGRlc2t0b3BXaWR0aDppPWMsbW9iaWxlV2lkdGg6YT1zfSl7cmV0dXJue3ByaW1hcnk6e21vYmlsZTp0KG4/P2Use2Zvcm1hdDp1LHF1YWxpdHk6cix3aWR0aDphfSksZGVza3RvcDp0KGUse2Zvcm1hdDp1LHF1YWxpdHk6cix3aWR0aDppfSl9LGZhbGxiYWNrOnttb2JpbGU6dChuPz9lLHtwcm9ncmVzc2l2ZTohMCxxdWFsaXR5OnIsd2lkdGg6YX0pLGRlc2t0b3A6dChlLHtwcm9ncmVzc2l2ZTohMCxxdWFsaXR5OnIsd2lkdGg6aX0pfX19ZnVuY3Rpb24gZih7dXJsOnQsbW9iaWxlVXJsOm4sZGVza3RvcFdpZHRoOnIsbW9iaWxlV2lkdGg6aSxhbHRNZXNzYWdlOm8sY2xhc3NOYW1lOmwsd2lkdGg6dT1gYXV0b2AsaGVpZ2h0OmQsbG9hZGluZzpmPWBsYXp5YCxzdHlsZTpwfSl7cmV0dXJuKDAsYS5qc3gpKGBkaXZgLHtjaGlsZHJlbjooMCxhLmpzeCkoZSx7aW1hZ2VEZXRhaWxzOntkZXNrdG9wOntzcmM6dCx3aWR0aDpyPz9jLGhlaWdodDpkfSxtb2JpbGU6e3NyYzpuPz90LHdpZHRoOmk/P3MsaGVpZ2h0OmR9fSxhbHQ6byxjbGFzc05hbWU6bCxsb2FkaW5nOmYsc3R5bGU6e3dpZHRoOnUsaGVpZ2h0OmQsLi4ucH19KX0pfXZhciBwPSgwLG8ubWVtbykoZik7ZXhwb3J0e2QgYXMgbixwIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0NsamVHSUtHMi5qcy5tYXA="}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_LuV1ZLXu.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.611Z","timestamp":1785108244611,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_LuV1ZLXu.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 489\r\nlast-modified: Sun, 26 Jul 2026 22:31:29 GMT\r\netag: \"e95f76b3538745befdece5feeecbec64\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 3cee1b61334bd8139fe0ff6d7079a1e4.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: s_CPzuPl5MuLsHMT-mk8IoFiinQQqX99y6hwePtwUKWPBzQl03R5Ng==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 2926\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=djUnmmHM1oiiTJ405fsj1Adva9yaZlTzYvQb0mxYzA4D9XrnPMgnAgxFvWvp2yY6%2Bj9SARuJD%2B7KOTHC1ANR3fJ8fEwxXpGPT58PujNEoAzeBbRn05MT49%2BlAwmjtUJvoGfHVjh2m8dXS91BttCE\"}]}\r\ncf-ray: a21727e0ddfd0883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":850,"size_decoded":1643,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (811)","md5":"4fbb3d2b4140c7c9512059177f936fa3","sha1":"bca38087682a8a5d7a8d036f6a137b5547845439","sha256":"29725b169b26b586b8d088d09ff75e9f08e8d9bada0c0ddd13f042cdadb021c7","sha512":"7187a2de617622f678c2d5cdd75a6b4f9f7145a9aa46ef24dd55e3f0bb9c2d11d073bc51f4eba7b941993be21e6d29d9c8a4bb8a483d6c23289b0328d62267c3","ssdeep":"","tlshash":"150156dee6f61690930905cfd349a210b23798b7c4cc0b91f12c2b3d1724f0f4090663","first_seen":"2026-07-26T23:24:50.29021Z","last_seen":"2026-07-26T23:25:46.900203Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDFmNTc3ZTZhLTBiNzUtNDQ4Yy04ZTVkLTlkZGIyOTE0MDg5M2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTFmNTc3ZTZhLTBiNzUtNDQ4Yy04ZTVkLTlkZGIyOTE0MDg5M2ApfSkoKX1jYXRjaHt9aW1wb3J0e3VhIGFzIGV9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciB0PS9eKGh0dHBzPzpcL1wvW14vXSspKFwvLiopPyQvLG49KG4scik9PntsZXQgaT10LmV4ZWMobik7aWYoIWkpcmV0dXJuIG47bGV0IGE9aVsxXSxvPWlbMl18fGBgO3JldHVybiBlLnRlc3Qobyk/YCR7YX0ke299YDpgJHthfS8ke3J9JHtvfWB9LHI9KHQsbik9PntsZXQgcj0obj09bnVsbD92b2lkIDA6bi5sZW5ndGgpPjAsaT1lLnRlc3QodCk7cmV0dXJuIXJ8fGk/dDpgLyR7bn0ke3Q9PT1gL2A/YGA6dH1gfSxpPS9cLyhbYS16XXsyfS1bYS16XXsyfXxbYS16XXsyfSkoXC98JCkvaSxhPS9eaHR0cHM6XC9cL3d3d1wuY29pbmJhc2VcLmNvbShcLy4qKT8kLyxvPS9eXC9bXi9dPy4qJC8scz0oZSx0KT0+IXR8fGkudGVzdCh0KT90OmEudGVzdCh0KT9lLmxlbmd0aD09PTA/dDpuKHQsZSk6by50ZXN0KHQpP3IodCxlKTp0O2V4cG9ydHtzIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0x1VjFaTFh1LmpzLm1hcA=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a__aVi2uuR.css","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.647Z","timestamp":1785108244647,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a__aVi2uuR.css HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: text/css; charset=utf-8\r\nlast-modified: Fri, 17 Apr 2026 11:13:04 GMT\r\nvary: accept-encoding\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=AgLx2FIwjiou%2Fo0EHFL2Hmg2IsWqtse2458AbrAhIq7lKTfr2UJdqUwSPWyMvbpM%2BcEJCgg5%2BSWMLlqSyF19NiQu11Q3fchDamWC3sbJmYaockzqm%2BUGic%2FK82UKSDrEjv%2Fx9sFAwrfzbUHe4ABs\"}]}\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 13ad77f5993668d67b8168f460ba6368.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: FRA60-P6\r\nx-amz-cf-id: TGZfsL57nKD-6CIc43IaZQXO2vUaX05Z0QnE8T3pdDLntx7e9ASqwg==\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 6510129\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\netag: W/\"6d40a29c32494e8af2c7b90a4ff47ca5\"\r\ncontent-encoding: gzip\r\ncf-ray: a21727e10e6f0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":60,"size_decoded":1203,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"6d40a29c32494e8af2c7b90a4ff47ca5","sha1":"a05c9871a1b29b5a288ebd4edb5bba33f5fb45ee","sha256":"c239ce7217e095e69b40f637a1e4492b640ab21f3b3874562bf1265508f3c0c4","sha512":"85f8dc49dcad1d7aa80fd04134a282c1de78b07e7d8fbf12b108d4cc202788109b832ec2bbdd9ac5927acf22169055890e9a33f48aa1de2929231c7a02310363","ssdeep":"","tlshash":"c4a00260fd56643a622280d858a1740314649f8d585e4958614568c8575c5a50502404","first_seen":"2025-12-10T07:17:47.703155Z","last_seen":"2026-07-26T23:25:46.788845Z","times_seen":73,"resource_available":false,"data":"QGxheWVyIGNkc3suYWN0aW9uQ29udGFpbmVyQ3NzLWFqeGM0ODd7d2hpdGUtc3BhY2U6bm93cmFwfX0K"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"exceptions.coinbase.com/sentry/api/4509158375817216/envelope/?sentry_version=7\u0026sentry_key=49c18eee427e5749efe688d0baece206","fqdn":"exceptions.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.563Z","timestamp":1785108244563,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /sentry/api/4509158375817216/envelope/?sentry_version=7\u0026sentry_key=49c18eee427e5749efe688d0baece206 HTTP/1.1\r\nHost: exceptions.coinbase.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nContent-Type: text/plain;charset=UTF-8\r\nReferer: https://www.coinbase.com/\r\nContent-Length: 556\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":556,"data":"{\"sent_at\":\"2026-07-26T23:24:04.559Z\",\"sdk\":{\"name\":\"sentry.javascript.react\",\"version\":\"9.45.0\"},\"dsn\":\"https://49c18eee427e5749efe688d0baece206@exceptions.coinbase.com/sentry/4509158375817216\"}\n{\"type\":\"session\"}\n{\"sid\":\"8da4bf68ad4248719351ce06d2a0828b\",\"init\":true,\"started\":\"2026-07-26T23:24:04.558Z\",\"timestamp\":\"2026-07-26T23:24:04.558Z\",\"status\":\"ok\",\"errors\":0,\"attrs\":{\"release\":\"de89472f041857c92d39c517b49c360b7e08e578\",\"environment\":\"production\",\"user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\"}}"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-length: 0\r\naccess-control-allow-headers: Origin, Content-Type, Accept, Authorization, User-Agent, Referer, X-Forwarded-For, Bugsnag-Api-Key, Bugsnag-Sent-At, Bugsnag-Payload-Version, Bugsnag-Integrity\r\naccess-control-allow-methods: POST\r\naccess-control-allow-origin: *\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nset-cookie: __cf_bm=DSX5Lq3qwleomRRC8wizf9kuqPJ6zReWOwaq2MWUCVI-1785108244.5799713-1.0.1.1-AyhIKwCvew62BLDxGRR8lv4ndnRDTe60tX_TGXx1OobA2j2sBwFzGHdUbF_6SbumFGp9oQlRtCSfi1p7fdut05Y5hUq2QDYEZSjef80pImrjfFzGi5un4AcjtGu.stCA; HttpOnly; SameSite=None; Secure; Path=/; Domain=coinbase.com; Expires=Sun, 26 Jul 2026 23:54:04 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=t4z5g4wdaOYZotlJxIEJVQfpM4NBlQUh70ZdvjJyhMtetcu%2B52wzy9igD5RI2pa49VCg9Q1UWf0B%2F6QXSShqeeoIHuw8JGdG8%2Ftfo2YOwfX%2B8MAyjec%2BrozHqSElKTFjOUzfPC46C5jM\"}]}\r\nserver: cloudflare\r\ncf-ray: a21727e098ce1525-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Cloudflare Bot Management","description":"Cloudflare bot management solution identifies and mitigates automated traffic to protect websites from bad bots.","website":"https://www.cloudflare.com/en-gb/products/bot-management/","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["Security"]}],"data":{"size":0,"size_decoded":2328,"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-27T02:51:03.003348Z","times_seen":17554215,"resource_available":true,"data":""}},"time_used":123,"timings":{"blocked":-1,"dns":3,"connect":1,"send":0,"wait":107,"receive":0,"ssl":10},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_CHy2E7LN.css","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.643Z","timestamp":1785108244643,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_CHy2E7LN.css HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 126\r\nlast-modified: Mon, 01 Jun 2026 17:37:53 GMT\r\netag: \"effd1249ade4ce75c4e05ac30832297b\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 c0a286d52b6977b9439dcb6b51f2269c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: VIE50-P4\r\nx-amz-cf-id: Vn_UjTtcEGzrtvx2DLuED2a27VDPZuB2rtCLpsGF-E445MW6Ak27TQ==\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 4772069\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=NQ3sOVM6T%2F4M%2Fn4qM%2FLWkLkdZ5rB6n7CQ7SCf8Gxk%2FjWeoRxIYkzfGuno4i9kBCL3d5rzWwX8eyjRlTFP6Yq6MiD4AYU072pTlLXAlN2Q6J65awRLde2xwQz%2FJL7hHA052BwsbkzvNmFV8dPPUbk\"}]}\r\ncf-ray: a21727e10e660883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":216,"size_decoded":1287,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"c3c759838b76089141ae8adf79703640","sha1":"5df27d9ec99435ad0bf484c5c048c5d8ae159bf4","sha256":"6aa245b4e3f027bca46ebd53b081a66ad117c249bbbafa34ffafa2f0e7151e28","sha512":"8a29b5461d4b69dad6f108036364e19af39b1f0ee2a5f44175f97247c8fc4cf8df3d1cc3b55a22a9bc8f3d98f65d4e16e51b3a13662e564ff949b3d019a2b6ef","ssdeep":"","tlshash":"88d0a7b5a9e80b16413117300ca6790ad208541ceaf981cd2900165c09cbd518253029","first_seen":"2026-06-02T03:41:41.313284Z","last_seen":"2026-07-26T23:25:46.89008Z","times_seen":15,"resource_available":false,"data":"QGxheWVyIGNkc3suYmFzZUNzcy1idDFybG4xe21hcmdpbjowfS5zdWJ0aXRsZUNzcy1zdmU4OXBue3RleHQtb3ZlcmZsb3c6dW5zZXQ7d2hpdGUtc3BhY2U6bm9ybWFsO292ZXJmbG93OmF1dG99LnRpdGxlQ3NzLXQxNjZhN25te3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO21pbi13aWR0aDowO2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVufX0K"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DG2th4Di.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.670Z","timestamp":1785108244670,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DG2th4Di.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 949\r\nlast-modified: Sun, 26 Jul 2026 22:31:25 GMT\r\netag: \"7f88fd0a3759c941f206c553f8514a56\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 6c7ea40580de9d2983b3dfe024472fb0.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: pkeY91eJLlnJHtp3WRQs2PAPntqFRWDuV2Y6KwxQEXfWXBq9qdZFtg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=r%2BUC4ZIA6z%2FrWZuFo5L5qJ0UDjkj2%2BsR1SgJ577QTRAqx6Q833g7QQiCNkqCcETFQpTunf7IBixSZAWJqsNORXlX7JeTWgt5CpecplogAchtMEYya6opFaImaIsnlYtTjJHCLZtgGxCGo5%2FmvvoZ\"}]}\r\ncf-ray: a21727e13ecf0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":2546,"size_decoded":2094,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (2507)","md5":"56637b5ea6f93270dc8e0fdd2a2bdbb6","sha1":"dfc603a0e55b691924f1fe9857afa94677c83d0f","sha256":"99c2a47780ea3ebb3f2697699e9f9642b35c7048b15f5f2c364d31a9b033cf8e","sha512":"39abd6e986ed70f332cf453d19bfd1207cca9251d25b1284261e3e3ce6e0917ffe7e01a1685c85668e137f8bc763262360b9fcdeba9cde5a54612b0c6be3b204","ssdeep":"","tlshash":"b95164feeba067fa41327b2942c66005daf0893bd68cbf4e9105cdcc23e15a49424ed7","first_seen":"2026-07-26T23:24:50.294757Z","last_seen":"2026-07-26T23:25:46.874542Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDM1YmRkMmU4LWMxMWItNGQ4My1hYjNlLTg0NjE5M2E5Y2VlZmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTM1YmRkMmU4LWMxMWItNGQ4My1hYjNlLTg0NjE5M2E5Y2VlZmApfSkoKX1jYXRjaHt9aW1wb3J0e2EgYXMgZSxpIGFzIHR9ZnJvbSIuL2NfZHViNGlhUkguanMiO2ltcG9ydHtfYSBhcyBufWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgcj1gY29pbmJhc2UuY29tYCxpPWB3d3cuY29pbmJhc2UuY29tYCxhPXtBdmF0YXJDYXJkOmBBdmF0YXJDYXJkYCxBY2NvcmRpb25SaWNoVGV4dDpgQWNjb3JkaW9uUmljaFRleHRgLEFydGljbGVSaWNoVGV4dDpgQXJ0aWNsZVJpY2hUZXh0YCxBc3NldDpgQXNzZXRgLEJhbm5lcjpgQmFubmVyYCxCdXR0b25MYWJlbDpgQnV0dG9uTGFiZWxgLENhcmRFeWVicm93OmBDYXJkRXllYnJvd2AsQ2FyZEdyaWQ6YENhcmRHcmlkYCxDYXJkSGVhZGVyOmBDYXJkSGVhZGVyYCxDYXJkSWxsdXN0cmF0aW9uOmBDYXJkSWxsdXN0cmF0aW9uYCxDYXJkSW1hZ2U6YENhcmRJbWFnZWAsQ2FyZFJlc291cmNlR3JpZDpgQ2FyZFJlc291cmNlR3JpZGAsQ2F0ZWdvcnk6YENhdGVnb3J5YCxDYXRlZ29yeVRhZzpgQ2F0ZWdvcnlUYWdgLENoaWxkOmBDaGlsZGAsQ29sdW1uOmBDb2x1bW5gLENvbXBhcmlzb25DYXJkQ1RBOmBDb21wYXJpc29uQ2FyZENUQWAsQ29udGVudDpgQ29udGVudGAsQ1RBQnV0dG9uc0ZpcnN0OmBDVEFCdXR0b25zRmlyc3RgLENUQUJ1dHRvbnNTZWNvbmQ6YENUQUJ1dHRvbnNTZWNvbmRgLEVkaXRvcmlhbFJpY2hUZXh0OmBFZGl0b3JpYWxSaWNoVGV4dGAsRmFjZWJvb2s6YEZhY2Vib29rYCxIZWxwVGV4dDpgSGVscFRleHRgLEhpZ2hsaWdodEFzc2V0OmBIaWdobGlnaHRBc3NldGAsTGFiZWxSaWNoVGV4dDpgTGFiZWxSaWNoVGV4dGAsTGVnYWxSaWNoVGV4dDpgTGVnYWxSaWNoVGV4dGAsTGlua0Fycm93OmBMaW5rQXJyb3dgLExpbmtDaGFpbjpgTGlua0NoYWluYCxMaW5rZWRJbjpgTGlua2VkSW5gLE1haW5Mb2dvOmBNYWluTG9nb2AsTWFpbkxvZ29IZWxwQ2VudGVyOmBNYWluTG9nb0hlbHBDZW50ZXJgLE1vYmlsZU5hdkNvbnRhY3RVczpgTW9iaWxlTmF2Q29udGFjdFVzYCxNb2JpbGVOYXZQcmltYXJ5OmBNb2JpbGVOYXZQcmltYXJ5YCxNb2JpbGVOYXZTZWNvbmRhcnk6YE1vYmlsZU5hdlNlY29uZGFyeWAsTW9iaWxlVHJhcERvb3JMaW5rOmBNb2JpbGVUcmFwRG9vckxpbmtgLE5hdmxpbms6YE5hdmxpbmtgLE5hdkxpbmtCdXR0b246YE5hdkxpbmtCdXR0b25gLE5hdkxpbmtTdHlsZWQ6YE5hdkxpbmtTdHlsZWRgLFBpbGxUYWc6YFBpbGxUYWdgLFByaW1hcnlDdGFMYWJlbDpgUHJpbWFyeUN0YUxhYmVsYCxQcm9kdWN0TmFtZTpgUHJvZHVjdE5hbWVgLFJvdzpgUm93YCxTZWFyY2hUYWc6YFNlYXJjaFRhZ2AsU2Vjb25kYXJ5Q3RhTGFiZWw6YFNlY29uZGFyeUN0YUxhYmVsYCxTZWNvbmRhcnlJbWFnZTpgU2Vjb25kYXJ5SW1hZ2VgLFNlZUFsbFByb2R1Y3RzOmBTZWVBbGxQcm9kdWN0c2AsU2VsZWN0OmBzZWxlY3RgLFNoYXJlZFJpY2hUZXh0OmBTaGFyZWRSaWNoVGV4dGAsU29jaWFsTWVkaWE6YFNvY2lhbE1lZGlhYCxTdWJtaXQ6YFN1Ym1pdGAsU3ViTmF2TGluazpgU3ViTmF2TGlua2AsU3ZnQ29udGVudDpgU3ZnQ29udGVudGAsU3ZnTGluazpgU3ZnTGlua2AsVHJhcERvb3JMYWJlbDpgVHJhcERvb3JMYWJlbGAsVHJhcGRvb3JMaW5rczpgVHJhcGRvb3JMaW5rc2AsVHJhcERvb3JQcm9kdWN0TGlzdENvbHVtbjpgVHJhcERvb3JQcm9kdWN0TGlzdENvbHVtbmAsVGh1bWJuYWlsOmBUaHVtYm5haWxgLFR3aXR0ZXI6YFR3aXR0ZXJgLFR3b0NvbHVtbkNvbnRhaW5lckxlZnQ6YFR3b0NvbHVtbkNvbnRhaW5lckxlZnRgLFR3b0NvbHVtbkNvbnRhaW5lclJpZ2h0OmBUd29Db2x1bW5Db250YWluZXJSaWdodGB9LG89e3ZhcmlhbnQ6ZT0+KHtmb250U2l6ZTpgdmFyKC0tZm9udFNpemUtJHtlfSlgLGxpbmVIZWlnaHQ6YHZhcigtLWxpbmVIZWlnaHQtJHtlfSlgLGZvbnRXZWlnaHQ6YHZhcigtLWZvbnRXZWlnaHQtJHtlfSlgLGZvbnRGYW1pbHk6YHZhcigtLWZvbnRGYW1pbHktJHtlfSlgfSl9LHM9dChvKSxjPW4uc3Bhbi53aXRoQ29uZmlnKHtzaG91bGRGb3J3YXJkUHJvcDp0PT4hZVt0XSYmIW9bdF0sZGlzcGxheU5hbWU6YFRleHRgLGNvbXBvbmVudElkOmBzYy04OTk4MDE1MC0wYH0pKGU9PntsZXQgdD1zKGUpO3JldHVybiB0LmRpc3BsYXl8fCh0LmRpc3BsYXk9YGlubGluZS1mbGV4YCksdC5tYXJnaW49MCx0fSk7ZXhwb3J0e2ksYSBhcyBuLHIsYyBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19ERzJ0aDREaS5qcy5tYXA="}},"time_used":120,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":120,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DmWypaHv2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.721Z","timestamp":1785108244721,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DmWypaHv2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 626\r\nlast-modified: Sun, 26 Jul 2026 22:31:27 GMT\r\netag: \"68c1fdba43e5f70ac898086cff225c3a\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 6afc1e2f2cc07cf231f656b15f1430cc.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: l1fYIfPYGiOaOcoDAHkdlKjv_d0kGRrCEaBquSKorm1crWgZTmDumg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=9b%2BLXCjC9AZLswrv%2FviBPX2d8p9696ddaNndqy0QZe1iYj6Rytxq56mHqzdej%2FNXTQjNMBHgAGpX7OzpKYmGwL1t5bsIY0CrnxRIsgxsThYWOJKG8D28BnkH%2BxUoMpEF50%2FnonKua%2BCtZMGWvTnA\"}]}\r\ncf-ray: a21727e18f890883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":1561,"size_decoded":1775,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1521)","md5":"d19c9a57a47d9f5e288d499d1bc34214","sha1":"de8368e4e2836e63b4e1253dee22acdd1207c5d7","sha256":"c799d8f55d0d7d507b72b3528eb33bb43929132812e3376a01cf8735afbedb3a","sha512":"0e77b7c974e02fd4bd6fe5c09f460d55032f514a6e26c995a198376fd40eb6466c56d1c63f0df246da5fbab1ee2cc5d05257fafc33c7babd8b26aa41cd305f3e","ssdeep":"","tlshash":"8c312851c9f067a1d1fd37add121800113745927e5910b17e14a4f281bb6dc446abf6f","first_seen":"2026-07-26T23:24:50.296807Z","last_seen":"2026-07-26T23:25:46.870437Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGQyOWZiOGY0LTk5YmYtNGFlNi04NTg4LWE4NWM5N2UyZmVhZGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWQyOWZiOGY0LTk5YmYtNGFlNi04NTg4LWE4NWM5N2UyZmVhZGApfSkoKX1jYXRjaHt9aW1wb3J0e24gYXMgZX1mcm9tIi4vY19EdDJrWGNzMi5qcyI7aW1wb3J0e3R9ZnJvbSIuL2NfdGxIeEUwRlYuanMiO2ltcG9ydHtYdCBhcyBuLHNvIGFzIHJ9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO2ltcG9ydHtuIGFzIGl9ZnJvbSIuL2NfQnJKTTVObGQyLmpzIjtpbXBvcnR7dCBhcyBhfWZyb20iLi9jX3ZqdzFlRE5ZLmpzIjthc3luYyBmdW5jdGlvbiBvKHtjbXNQYXJhbXM6byxjb3VudHJ5RnJvbVVybDpzLGNvdW50cnlGcm9tSXA6YyxjYWNoZVZlcnNpb246bCxzcGFjZTp1PWBtYXJrZXRpbmdgfSl7bGV0e3F1ZXJ5T3B0aW9uczpkfT10KG8sZVt1XSkse2NsaWVudEtleTpmfT1kLHA9YSh7cm91dGU6bihvLnBhdGhuYW1lKSxjb3VudHJ5RnJvbVVybDpzLGNvdW50cnlGcm9tSXA6Y30pLG09aShhd2FpdCByKHtxdWVyeTp7Y29udGVudF90eXBlOmBwYWdlYCxpbmNsdWRlOjEwLGxvY2FsZTpkLmxvY2FsZSwiZmllbGRzLnNsdWdbaW5dIjpbcC50b0xvd2VyQ2FzZSgpLGAvY2R4djIke3AudG9Mb3dlckNhc2UoKX1gLGAvY2R4djIvZWRpdG9yaWFsJHtwLnRvTG93ZXJDYXNlKCl9YF0uam9pbihgLGApLC4uLmw/e2NhY2hlVmVyc2lvbjpsfTp7fX0sY2xpZW50S2V5OmYsb25FcnJvcjpkLm9uRXJyb3J9KSk7cmV0dXJuIG0hPW51bGwmJm0ubGVuZ3RoJiZtLmxlbmd0aD49Mj9tLmZpbmQoZT0+ZS5zbHVnLmluY2x1ZGVzKGAvY2R4djJgKSl8fG51bGw6KG09PW51bGw/dm9pZCAwOm1bMF0pfHxudWxsfWFzeW5jIGZ1bmN0aW9uIHMoe2Ntc1BhcmFtczpvLGNvdW50cnlGcm9tVXJsOnMsY291bnRyeUZyb21JcDpjLGNhY2hlVmVyc2lvbjpsLHNwYWNlOnU9YG1hcmtldGluZ2AsZXh0cmFQYXJhbXM6ZD17fX0pe2xldHtxdWVyeU9wdGlvbnM6Zn09dChvLGVbdV0pLHtjbGllbnRLZXk6cH09ZixtPWEoe3JvdXRlOm4oby5wYXRobmFtZSksY291bnRyeUZyb21Vcmw6cyxjb3VudHJ5RnJvbUlwOmN9KSxoPWkoYXdhaXQgcih7cXVlcnk6e2NvbnRlbnRfdHlwZTpgcGFnZWAsaW5jbHVkZToxMCxsb2NhbGU6Zi5sb2NhbGUsImZpZWxkcy5zbHVnIjptLnRvTG93ZXJDYXNlKCksLi4uZCwuLi5sP3tjYWNoZVZlcnNpb246bH06e319LGNsaWVudEtleTpwLG9uRXJyb3I6Zi5vbkVycm9yfSkpO3JldHVybihoPT1udWxsP3ZvaWQgMDpoWzBdKXx8bnVsbH1leHBvcnR7cyBhcyBuLG8gYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfRG1XeXBhSHYyLmpzLm1hcA=="}},"time_used":105,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":105,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_bGrVwuh7.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.724Z","timestamp":1785108244724,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_bGrVwuh7.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 2719\r\nlast-modified: Sun, 26 Jul 2026 22:31:30 GMT\r\netag: \"70d81bb9c22e695347057634d5b89f42\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 c15a4538e5e519d8bde63ab6a2bb976e.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: E5CMALtj2Rg9d9G1RQ4Ksr0h8zOfH4GJR4_P0oJ1KAebvgS_AVqtWw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 2633\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=fy3VRcUR0vnFXe1ncvUs2wJvNnvNsbfII1ka0%2Bfw1nQg7LZ7N6%2BgmbDiCIu5XzAcMeXgCh8yPsZUZ9WXtGfLQf6flN4XkXHO4lNKRHtiHppUNyin%2BFVOT40ooyzLIcTZTH1ON2F2qT0xuQLhc%2Fji\"}]}\r\ncf-ray: a21727e18f940883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":6582,"size_decoded":3876,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (6543)","md5":"cdad40bbd23b92cc159c5765b1df7753","sha1":"8049102530dd90b715608af47fe90c1b6c82a69a","sha256":"964cc10fe0af1b136bfb3fee67f4a095db394b317c04b0bf18d3869ca56fe97c","sha512":"6e22404f99dc90dd552f105ea6c78af0dd0545ab635901416dc580b45c4518922695f3a266755794106cfe3db9a4243e006099ea19eaac2e37cbd9290dbc43cd","ssdeep":"192:sAkcoWAO1eRkHjEJe1gB9EEIIzxBxxUHVkf8:seZ1rjEggB9EEIIlB/UH/","tlshash":"83d11ade37f0bad55051f3e6da4b41d4f50d50e77c6a8a35f3b8ed305a418ae8a1a803","first_seen":"2026-07-26T23:24:50.299048Z","last_seen":"2026-07-26T23:25:46.818946Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGFmOGY4ZmZhLWE3OTItNGY2Zi05ZmRhLWFmNDE2NjE4M2I1OWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWFmOGY4ZmZhLWE3OTItNGY2Zi05ZmRhLWFmNDE2NjE4M2I1OWApfSkoKX1jYXRjaHt9aW1wb3J0e0NsIGFzIGUsV3AgYXMgdCxmZiBhcyBuLGhmIGFzIHJ9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBpPXQocigpKTtmdW5jdGlvbiBhKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gbyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9hKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtzKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmEoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIHMoZSx0LG4pe3JldHVybih0PWModCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gYyhlKXt2YXIgdD1sKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIGwoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX12YXIgdT1gIzAwNTJGRmAsZD1gIzBBMEIwRGAsZj1gI0ZGRkZGRmAscD17MTY6e3ZpZXdCb3g6YDAgMCAxNiAxNmAscGF0aDpgTTgsMTJjLTIuMjEsMC00LTEuNzktNC00YzAtMi4yMSwxLjc5LTQsNC00YzEuODYsMCwzLjQxLDEuMjgsMy44NiwzaDQuMDdDMTUuNDQsMy4wNSwxMi4wOCwwLDgsMCBDMy41OCwwLDAsMy41OCwwLDhjMCw0LjQyLDMuNTgsOCw4LDhjNC4wOCwwLDcuNDQtMy4wNSw3LjkzLTdoLTQuMDdDMTEuNDEsMTAuNzIsOS44NiwxMiw4LDEyemB9LDI0Ont2aWV3Qm94OmAwIDAgMjQgMjRgLHBhdGg6YE0xMi4wMjI1IDE4QzguNzAxMzEgMTggNi4wMTEyNyAxNS4zMTUgNi4wMTEyNyAxMkM2LjAxMTI3IDguNjg1IDguNzAxMzEgNiAxMi4wMjI1IDZDMTQuOTk4MSA2IDE3LjQ2NzggOC4xNjUgMTcuOTQzNiAxMUgyNEMyMy40ODkgNC44NCAxOC4zMjQ0IDAgMTIuMDIyNSAwQzUuMzg1MSAwIDAgNS4zNzUgMCAxMkMwIDE4LjYyNSA1LjM4NTEgMjQgMTIuMDIyNSAyNEMxOC4zMjQ0IDI0IDIzLjQ4OSAxOS4xNiAyNCAxM0gxNy45NDM2QzE3LjQ2NzggMTUuODM1IDE0Ljk5ODEgMTggMTIuMDIyNSAxOFpgfSwzMjp7dmlld0JveDpgMCAwIDQ4IDQ4YCxwYXRoOmBNMjQsMzZjLTYuNjMsMC0xMi01LjM3LTEyLTEyczUuMzctMTIsMTItMTJjNS45NCwwLDEwLjg3LDQuMzMsMTEuODIsMTBoMTIuMDlDNDYuODksOS42OCwzNi41OCwwLDI0LDAgQzEwLjc1LDAsMCwxMC43NSwwLDI0czEwLjc1LDI0LDI0LDI0YzEyLjU4LDAsMjIuODktOS42OCwyMy45MS0yMkgzNS44MkMzNC44NywzMS42NywyOS45NCwzNiwyNCwzNnpgfX0sbT17dmlld0JveDpgMCAwIDY4OCAxMjNgLHBhdGg6YE0xMzguODU3IDM0LjMzOTJDMTEzLjg2MyAzNC4zMzkyIDk0LjMzNDMgNTMuMzI3NyA5NC4zMzQzIDc4Ljc0NzdDOTQuMzM0MyAxMDQuMTY4IDExMy4zNyAxMjIuOTk0IDEzOC44NTcgMTIyLjk5NEMxNjQuMzQzIDEyMi45OTQgMTgzLjcxIDEwMy44NDMgMTgzLjcxIDc4LjU4NTJDMTgzLjcxIDUzLjQ5MDIgMTY0LjY3NCAzNC4zMzkyIDEzOC44NTcgMzQuMzM5MlpNMTM5LjAyNSAxMDQuNjc0QzEyNC43OTIgMTA0LjY3NCAxMTQuMzYzIDkzLjYxMSAxMTQuMzYzIDc4Ljc1NEMxMTQuMzYzIDYzLjcyODIgMTI0LjYyNCA1Mi42NzE0IDEzOC44NTcgNTIuNjcxNEMxNTMuMjU4IDUyLjY3MTQgMTYzLjY4MSA2My44OTcgMTYzLjY4MSA3OC43NTRDMTYzLjY4MSA5My42MTEgMTUzLjI1OCAxMDQuNjc0IDEzOS4wMjUgMTA0LjY3NFpNMTg5LjE2OCA1My42NTlIMjAxLjU4NFYxMjEuMzVIMjIxLjQ0M1YzNS45ODkzSDE4OS4xNjhWNTMuNjU5Wk00NC4zNTM2IDUyLjY2NTJDNTQuNzgzMiA1Mi42NjUyIDYzLjA1ODEgNTkuMTAzIDY2LjE5OTUgNjguNjc4NUg4Ny4yMjA5QzgzLjQxMTMgNDguMjA4NyA2Ni41MzA1IDM0LjMzOTIgNDQuNTIyMyAzNC4zMzkyQzE5LjUyODggMzQuMzM5MiAwIDUzLjMyNzcgMCA3OC43NTRDMCAxMDQuMTggMTkuMDM1NSAxMjMgNDQuNTIyMyAxMjNDNjYuMDM3MSAxMjMgODMuMjQ5IDEwOS4xMzEgODcuMDU4NiA4OC40OTJINjYuMTk5NUM2My4yMjA1IDk4LjA2NzUgNTQuOTQ1NiAxMDQuNjc0IDQ0LjUxNiAxMDQuNjc0QzMwLjExNDUgMTA0LjY3NCAyMC4wMjIyIDkzLjYxMSAyMC4wMjIyIDc4Ljc1NEMyMC4wMjg1IDYzLjcyODIgMjkuOTU4NCA1Mi42NjUyIDQ0LjM1MzYgNTIuNjY1MlpNNTY2LjUxOCA3MC40OTczTDU1MS45NTQgNjguMzUzNUM1NDUuMDAzIDY3LjM2NTkgNTQwLjAzOCA2NS4wNTMzIDU0MC4wMzggNTkuNjAzQzU0MC4wMzggNTMuNjU5IDU0Ni40OTUgNTAuNjkwMSA1NTUuMjY0IDUwLjY5MDFDNTY0Ljg2MyA1MC42OTAxIDU3MC45ODkgNTQuODE1MyA1NzIuMzEzIDYxLjU4NDRINTkxLjUxMUM1ODkuMzU3IDQ0LjQxNDggNTc2LjExNyAzNC4zNDU1IDU1NS43NjMgMzQuMzQ1NUM1MzQuNzQyIDM0LjM0NTUgNTIwLjg0IDQ1LjA3NzMgNTIwLjg0IDYwLjI2NTZDNTIwLjg0IDc0Ljc5MTMgNTI5Ljk0NiA4My4yMTY3IDU0OC4zMTMgODUuODU0NEw1NjIuODc3IDg3Ljk5ODJDNTY5Ljk5NiA4OC45ODU4IDU3My45NjggOTEuNzk4NCA1NzMuOTY4IDk3LjA3OTlDNTczLjk2OCAxMDMuODQ5IDU2Ny4wMTcgMTA2LjY1NSA1NTcuNDE4IDEwNi42NTVDNTQ1LjY2NSAxMDYuNjU1IDUzOS4wNDUgMTAxLjg2OCA1MzguMDUyIDk0LjYwNDhINTE4LjUyM0M1MjAuMzQ3IDExMS4yODEgNTMzLjQxOCAxMjMgNTU3LjI1IDEyM0M1NzguOTMzIDEyMyA1OTMuMzI4IDExMy4wOTMgNTkzLjMyOCA5Ni4wODYxQzU5My4zMjggODAuODk3OSA1ODIuOTA1IDcyLjk3MjUgNTY2LjUxOCA3MC40OTczWk0yMTEuNTE0IDAuODI1MDQyQzIwNC4yMzIgMC44MjUwNDIgMTk4Ljc2NyA2LjEwNjU2IDE5OC43NjcgMTMuMzY5NEMxOTguNzY3IDIwLjYzMjMgMjA0LjIyNSAyNS45MTM4IDIxMS41MTQgMjUuOTEzOEMyMTguNzk2IDI1LjkxMzggMjI0LjI2IDIwLjYzMjMgMjI0LjI2IDEzLjM2OTRDMjI0LjI2IDYuMTA2NTYgMjE4Ljc5NiAwLjgyNTA0MiAyMTEuNTE0IDAuODI1MDQyWk01MDIuOTY2IDY1LjIxNThDNTAyLjk2NiA0Ni43Mjc0IDQ5MS43MTIgMzQuMzQ1NSA0NjcuODggMzQuMzQ1NUM0NDUuMzczIDM0LjM0NTUgNDMyLjc5NSA0NS43Mzk4IDQzMC4zMDkgNjMuMjQwN0g0NTAuMDA3QzQ1MSA1Ni40NzE2IDQ1Ni4yOTYgNTAuODU4OCA0NjcuNTQ5IDUwLjg1ODhDNDc3LjY0OCA1MC44NTg4IDQ4Mi42MTMgNTUuMzE1MyA0ODIuNjEzIDYwLjc2NTZDNDgyLjYxMyA2Ny44NjYgNDczLjUwNyA2OS42Nzg1IDQ2Mi4yNTMgNzAuODM0OUM0NDcuMDI4IDcyLjQ4NDkgNDI4LjE2MSA3Ny43NjY0IDQyOC4xNjEgOTcuNThDNDI4LjE2MSAxMTIuOTM3IDQzOS41ODMgMTIyLjgzNyA0NTcuNzg4IDEyMi44MzdDNDcyLjAyMSAxMjIuODM3IDQ4MC45NTggMTE2Ljg5MyA0ODUuNDMgMTA3LjQ4QzQ4Ni4wOTIgMTE1LjkgNDkyLjM4IDEyMS4zNSA1MDEuMTU1IDEyMS4zNUg1MTIuNzRWMTAzLjY4N0g1MDIuOTcyVjY1LjIxNThINTAyLjk2NlpNNDgzLjQzNyA4Ni42Nzk0QzQ4My40MzcgOTguMDczNyA0NzMuNTA3IDEwNi40OTMgNDYxLjQyMyAxMDYuNDkzQzQ1My45NzIgMTA2LjQ5MyA0NDcuNjgzIDEwMy4zNTUgNDQ3LjY4MyA5Ni43NTQ5QzQ0Ny42ODMgODguMzM1NyA0NTcuNzgyIDg2LjAyMzEgNDY3LjA1IDg1LjAzNTZDNDc1Ljk4NyA4NC4yMTA1IDQ4MC45NTIgODIuMjI5MiA0ODMuNDM3IDc4LjQyOVY4Ni42Nzk0Wk0zNzguMDEyIDM0LjMzOTJDMzY2LjkyIDM0LjMzOTIgMzU3LjY1MiAzOC45NjQ1IDM1MS4wMzIgNDYuNzIxMVYwSDMzMS4xNzJWMTIxLjM1SDM1MC43MDFWMTEwLjEyNEMzNTcuMzIxIDExOC4yMTIgMzY2Ljc1OCAxMjMgMzc4LjAxMiAxMjNDNDAxLjg0MyAxMjMgNDE5Ljg4NiAxMDQuMTggNDE5Ljg4NiA3OC43NTRDNDE5Ljg4NiA1My4zMjc3IDQwMS41MTIgMzQuMzM5MiAzNzguMDEyIDM0LjMzOTJaTTM3NS4wMzMgMTA0LjY3NEMzNjAuOCAxMDQuNjc0IDM1MC4zNyA5My42MTEgMzUwLjM3IDc4Ljc1NEMzNTAuMzcgNjMuODk3IDM2MC45NjIgNTIuNjcxNCAzNzUuMTk1IDUyLjY3MTRDMzg5LjU5NiA1Mi42NzE0IDM5OS42ODkgNjMuNzM0NSAzOTkuNjg5IDc4Ljc1NEMzOTkuNjg5IDkzLjYxMSAzODkuMjY1IDEwNC42NzQgMzc1LjAzMyAxMDQuNjc0Wk0yODMuNjcxIDM0LjMzOTJDMjcwLjc2MiAzNC4zMzkyIDI2Mi4zMTkgMzkuNjIwOCAyNTcuMzU0IDQ3LjA1MjRWMzUuOTg5M0gyMzcuNjU2VjEyMS4zNDRIMjU3LjUxNlY3NC45NTM4QzI1Ny41MTYgNjEuOTA5NCAyNjUuNzkxIDUyLjY2NTIgMjc4LjAzOCA1Mi42NjUyQzI4OS40NiA1Mi42NjUyIDI5Ni41NzQgNjAuNzUzMSAyOTYuNTc0IDcyLjQ3ODdWMTIxLjM1SDMxNi40MzRWNzAuOTk3NEMzMTYuNDQgNDkuNTI3NSAzMDUuMzU0IDM0LjMzOTIgMjgzLjY3MSAzNC4zMzkyWk02ODggNzUuOTQ3NkM2ODggNTEuNTE1MSA2NzAuMTI2IDM0LjM0NTUgNjQ2LjEyNiAzNC4zNDU1QzYyMC42MzkgMzQuMzQ1NSA2MDEuOTM0IDUzLjQ5NjUgNjAxLjkzNCA3OC43NTRDNjAxLjkzNCAxMDUuMzM3IDYyMS45NjMgMTIzIDY0Ni40NTcgMTIzQzY2Ny4xNDcgMTIzIDY4My4zNjYgMTEwLjc4MSA2ODcuNSA5My40NDg1SDY2Ni44MUM2NjMuODMxIDEwMS4wNDMgNjU2LjU0OSAxMDUuMzM3IDY0Ni43ODEgMTA1LjMzN0M2MzQuMDM1IDEwNS4zMzcgNjI0LjQzNiA5Ny40MTEyIDYyMi4yODggODMuNTQxN0g2ODcuOTk0Vjc1Ljk0NzZINjg4Wk02MjMuNDQ5IDY5LjM0MUM2MjYuNTk3IDU3LjQ1MjkgNjM1LjUzNCA1MS42Nzc2IDY0NS43OTUgNTEuNjc3NkM2NTcuMDQ5IDUxLjY3NzYgNjY1LjY1NSA1OC4xMTU1IDY2Ny42NDEgNjkuMzQxSDYyMy40NDlaYH0saD1lPT57bGV0e2ZvcmVncm91bmQ6dCxjb2xvclNjaGVtZTpufT1lLHI9bj09PWBkYXJrYD9mOnQ/ZDp1O3JldHVybigwLGkudXNlTWVtbykoKCk9Pm8obyh7fSxtKSx7fSx7Y29sb3I6cn0pLFtyXSl9LGc9ZT0+e2xldHtzaXplOnQ9MzIsZm9yZWdyb3VuZDpuLGNvbG9yU2NoZW1lOnJ9PWUse3ZpZXdCb3g6YSxwYXRoOm99PXBbdF0scz1yPT09YGRhcmtgP2Y6bj9kOnU7cmV0dXJuKDAsaS51c2VNZW1vKSgoKT0+KHtjb2xvcjpzLHBhdGg6byx2aWV3Qm94OmEsd2lkdGg6dCxoZWlnaHQ6dH0pLFtzLG8sdCxhXSl9LF89bigpLHY9YGljb25Dc3MtaWV5dnFra2AseT1gdHJhbnNpdGlvbkNzcy10MXc0dnR5emAsYj0oMCxpLm1lbW8pKHQ9PntsZXR7c2l6ZTpuLGZvcmVncm91bmQ6cn09dCx7YWN0aXZlQ29sb3JTY2hlbWU6aX09ZSgpLHt2aWV3Qm94OmEsd2lkdGg6byxoZWlnaHQ6cyxwYXRoOmMsY29sb3I6bH09Zyh7c2l6ZTpuLGZvcmVncm91bmQ6cixjb2xvclNjaGVtZTppfSk7cmV0dXJuKDAsXy5qc3hzKShgc3ZnYCx7ImFyaWEtbGFiZWwiOmBDb2luYmFzZSBsb2dvYCxjbGFzc05hbWU6dixoZWlnaHQ6cyxyb2xlOmBpbWdgLHZpZXdCb3g6YSx3aWR0aDpvLHhtbG5zOmBodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z2AsY2hpbGRyZW46WygwLF8uanN4KShgdGl0bGVgLHtjaGlsZHJlbjpgQ29pbmJhc2UgbG9nb2B9KSwoMCxfLmpzeCkoYHBhdGhgLHtjbGFzc05hbWU6eSxkOmMsZmlsbDpsfSldfSl9KTtleHBvcnR7aCBhcyBuLGIgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfYkdyVnd1aDcuanMubWFw"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/consent/01956191-791b-769a-8313-3683f5e22e0d/01956191-791b-769a-8313-3683f5e22e0d.json","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:05.749Z","timestamp":1785108245749,"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":"cookielaw.org","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:47:21 GMT","end":"Tue, 20 Oct 2026 23:47:08 GMT"},"fingerprint":{"sha1":"BE:65:35:7C:E3:8D:B8:0C:7D:40:51:C7:4B:EE:56:FE:FD:2D:ED:91","sha256":"D6:A8:FD:24:40:A2:7D:0B:B5:73:08:9C:B2:AC:6E:1F:84:CC:D4:09:7B:BA:22:E8:A5:38:A4:10:29:65:88:5C"}}},"request":{"raw":"GET /consent/01956191-791b-769a-8313-3683f5e22e0d/01956191-791b-769a-8313-3683f5e22e0d.json HTTP/1.1\r\nHost: cdn.cookielaw.org\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.coinbase.com/\r\nOrigin: https://www.coinbase.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\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:05 GMT\r\ncontent-type: application/json\r\ncf-ray: a21727e7fe2e1525-OSL\r\ncf-cache-status: HIT\r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\nage: 59134\r\ncache-control: public, max-age=86400\r\ncontent-encoding: gzip\r\netag: 0x8DEE7BE92DF0B37\r\nexpires: Mon, 27 Jul 2026 23:24:05 GMT\r\nlast-modified: Wed, 22 Jul 2026 06:58:02 GMT\r\nserver: cloudflare\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\naccess-control-expose-headers: x-ms-request-id,Server,x-ms-version,Content-Type,Content-Encoding,Cache-Control,ETag,Last-Modified,Content-MD5,x-ms-lease-status,x-ms-blob-type,Content-Length,Date,Transfer-Encoding, X-OneTrust-IsBot\r\ncontent-md5: 2wgNx1HCxbK5UzCxVlUbpw==\r\ncross-origin-resource-policy: cross-origin, cross-origin\r\nx-content-type-options: nosniff\r\nx-onetrust-isbot: true\r\nx-ms-blob-type: BlockBlob\r\nx-ms-lease-status: unlocked\r\nx-ms-request-id: b9eb26c9-001e-006a-42a7-19cf21000000\r\nx-ms-version: 2009-09-19\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":5387,"size_decoded":3058,"mime_type":"application/json","magic":"JSON text data","md5":"ce229187a0c6d11211d4bd19d56019ec","sha1":"1333d25a7af817ed58f78a0d11ef0f5be5ae36e0","sha256":"b1de280d219ae2d81abb1228b29e4ff0d864a600cb0848295e48b20f7ddca4b3","sha512":"0ad99c70fad157c989dda9a592ae5f41cff00f5f7d282a4bbdfec26174de50c76272c9182783585ed3edfbb48140e29230cc9761ee834e119b66e72445c08ff0","ssdeep":"96:oWyI540w4Okq+0uhiJpUVHxYa6Ay5vpjYRjwjBjMZPy0T241vSao99:/A4Lqx+iJpq6v5vpYRYhcH1O99","tlshash":"95b14419ba4d947dc7ce83c8d429fe494fed383222c67814d88f4c6c1a677b32896667","first_seen":"2026-07-26T23:24:50.30129Z","last_seen":"2026-07-26T23:25:46.8571Z","times_seen":3,"resource_available":false,"data":"eyJDb29raWVTUEFFbmFibGVkIjp0cnVlLCJDb29raWVTYW1lU2l0ZU5vbmVFbmFibGVkIjpmYWxzZSwiQ29va2llVjJDU1BFbmFibGVkIjp0cnVlLCJNdWx0aVZhcmlhbnRUZXN0aW5nRW5hYmxlZCI6ZmFsc2UsIlVzZVYyIjp0cnVlLCJNb2JpbGVTREsiOmZhbHNlLCJTa2lwR2VvbG9jYXRpb24iOmZhbHNlLCJTY3JpcHRUeXBlIjoiUFJPRFVDVElPTiIsIlZlcnNpb24iOiIyMDI2MDIuMS4wIiwiT3B0YW5vbkRhdGFKU09OIjoiMDE5NTYxOTEtNzkxYi03NjlhLTgzMTMtMzY4M2Y1ZTIyZTBkIiwiR2VvbG9jYXRpb25VcmwiOiJodHRwczovL2dlb2xvY2F0aW9uLm9uZXRydXN0LmNvbS9jb29raWVjb25zZW50cHViL3YxL2dlby9sb2NhdGlvbiIsIkJ1bGtEb21haW5DaGVja1VybCI6Imh0dHBzOi8vY29va2llcy1kYXRhLm9uZXRydXN0LmlvL2Jhbm5lcnNkay92MS9kb21haW5ncm91cGNoZWNrIiwiUnVsZVNldCI6W3siSWQiOiIwMTlhMmEzMC04NDgzLTc0NTAtODgyYy1iYWY3MTA4MjhjZWYiLCJOYW1lIjoiT1BULUlOIiwiQ291bnRyaWVzIjpbIm5vIiwiZGUiLCJiZSIsImZpIiwicHQiLCJiZyIsImRrIiwibHQiLCJsdSIsImx2IiwiaHIiLCJmciIsImh1IiwiYnIiLCJzZSIsIm1jIiwic2kiLCJzayIsIm1mIiwic20iLCJnYiIsInl0IiwiaWUiLCJnZiIsImVlIiwibXEiLCJtdCIsImdwIiwiaXMiLCJpdCIsImdyIiwiZXMiLCJhdCIsInJlIiwiY3kiLCJheCIsImN6IiwicGwiLCJybyIsImxpIiwibmwiXSwiU3RhdGVzIjp7ImNhIjpbInFjIl19LCJMYW5ndWFnZVN3aXRjaGVyUGxhY2Vob2xkZXIiOnsiZGUiOiJkZSIsImFyIjoiYXIiLCJkZS1kZSI6ImRlLWRlIiwiZGVmYXVsdCI6ImVuIiwiZ2EiOiJnYSIsImZyLWZyIjoiZnItZnIiLCJmciI6ImZyIiwiZXMiOiJlcyIsIm5sIjoibmwifSwiQmFubmVyUHVzaGVzRG93biI6ZmFsc2UsIkRlZmF1bHQiOmZhbHNlLCJHbG9iYWwiOmZhbHNlLCJUeXBlIjoiR0VORVJJQyIsIlVzZUdvb2dsZVZlbmRvcnMiOmZhbHNlLCJWYXJpYW50RW5hYmxlZCI6dHJ1ZSwiVGVzdEVuZFRpbWUiOiIwNy8yMy8yMDI2IiwiVmFyaWFudHMiOltdLCJUZW1wbGF0ZU5hbWUiOiJDb2luYmFzZSBXZWIgT3B0LUluIFRlbXBsYXRlIChETyBOT1QgREVMRVRFKSIsIkNvbmRpdGlvbnMiOltdLCJHQ0VuYWJsZSI6ZmFsc2UsIklzR1BQRW5hYmxlZCI6ZmFsc2UsIkVuYWJsZUpXVEF1dGhGb3JLbm93blVzZXJzIjpmYWxzZX0seyJJZCI6IjAxOWEyYTJmLTk0YzUtN2JlYS04NDFlLTM4YzQ5MmY0MDUwOCIsIk5hbWUiOiJHbG9iYWwiLCJDb3VudHJpZXMiOlsicHIiLCJwcyIsInB3IiwicHkiLCJxYSIsImFkIiwiYWUiLCJhZiIsImFnIiwiYWkiLCJhbCIsImFtIiwiYW8iLCJhcSIsImFyIiwiYXMiLCJhdSIsImF3IiwiYXoiLCJiYSIsImJiIiwicnMiLCJiZCIsInJ1IiwiYmYiLCJydyIsImJoIiwiYmkiLCJiaiIsImJsIiwiYm0iLCJibiIsImJvIiwic2EiLCJicSIsInNiIiwic2MiLCJzZCIsImJzIiwiYnQiLCJzZyIsImJ2IiwiYnciLCJzaCIsImJ5Iiwic2oiLCJieiIsInNsIiwic24iLCJzbyIsImNhIiwic3IiLCJzcyIsImNjIiwic3QiLCJjZCIsInN2IiwiY2YiLCJjZyIsInN4IiwiY2giLCJjaSIsInN5Iiwic3oiLCJjayIsImNsIiwiY20iLCJjbiIsImNvIiwiY3IiLCJ0YyIsInRkIiwidGYiLCJjdSIsInRnIiwiY3YiLCJ0aCIsImN3IiwiY3giLCJ0aiIsInRrIiwidGwiLCJ0bSIsInRuIiwidG8iLCJ0ciIsInR0IiwidHYiLCJ0dyIsImRqIiwidHoiLCJkbSIsImRvIiwidWEiLCJ1ZyIsImR6IiwidW0iLCJlYyIsInVzIiwiZWciLCJlaCIsInV5IiwidXoiLCJ2YSIsInZjIiwiZXIiLCJ2ZSIsImV0IiwidmciLCJ2aSIsInZuIiwidnUiLCJmaiIsImZrIiwiZm0iLCJmbyIsIndmIiwiZ2EiLCJ3cyIsImdkIiwiZ2UiLCJnZyIsImdoIiwiZ2kiLCJnbCIsImdtIiwiZ24iLCJncSIsImdzIiwiZ3QiLCJndSIsImd3IiwiZ3kiLCJ4ayIsImhrIiwiaG0iLCJobiIsInllIiwiaHQiLCJpZCIsImlsIiwiaW0iLCJpbiIsImlvIiwiemEiLCJpcSIsImlyIiwiem0iLCJqZSIsInp3Iiwiam0iLCJqbyIsImpwIiwia2UiLCJrZyIsImtoIiwia2kiLCJrbSIsImtuIiwia3AiLCJrciIsImt3Iiwia3kiLCJreiIsImxhIiwibGIiLCJsYyIsImxrIiwibHIiLCJscyIsImx5IiwibWEiLCJtZCIsIm1lIiwibWciLCJtaCIsIm1rIiwibWwiLCJtbSIsIm1uIiwibW8iLCJtcCIsIm1yIiwibXMiLCJtdSIsIm12IiwibXciLCJteCIsIm15IiwibXoiLCJuYSIsIm5jIiwibmUiLCJuZiIsIm5nIiwibmkiLCJucCIsIm5yIiwibnUiLCJueiIsIm9tIiwicGEiLCJwZSIsInBmIiwicGciLCJwaCIsInBrIiwicG0iLCJwbiJdLCJTdGF0ZXMiOnt9LCJMYW5ndWFnZVN3aXRjaGVyUGxhY2Vob2xkZXIiOnsiZGUiOiJkZSIsImFyIjoiYXIiLCJkZWZhdWx0IjoiZW4iLCJnYSI6ImdhIiwiZnIiOiJmciIsImVzIjoiZXMiLCJubCI6Im5sIn0sIkJhbm5lclB1c2hlc0Rvd24iOmZhbHNlLCJEZWZhdWx0Ijp0cnVlLCJHbG9iYWwiOnRydWUsIlR5cGUiOiJHRU5FUklDIiwiVXNlR29vZ2xlVmVuZG9ycyI6ZmFsc2UsIlZhcmlhbnRFbmFibGVkIjp0cnVlLCJUZXN0RW5kVGltZSI6IjA3LzIzLzIwMjYiLCJWYXJpYW50cyI6W10sIlRlbXBsYXRlTmFtZSI6IkNvaW5iYXNlIFdlYiBPcHQtT3V0IFRlbXBsYXRlIChETyBOT1QgREVMRVRFKSIsIkNvbmRpdGlvbnMiOltdLCJHQ0VuYWJsZSI6ZmFsc2UsIklzR1BQRW5hYmxlZCI6ZmFsc2UsIkVuYWJsZUpXVEF1dGhGb3JLbm93blVzZXJzIjpmYWxzZX1dLCJJYWJEYXRhIjp7ImNvb2tpZVZlcnNpb24iOiIxIiwiY3JlYXRlZFRpbWUiOiIyMDI2LTA3LTIyVDA2OjU4OjAxLjg1MzI4ODk3MyIsInVwZGF0ZWRUaW1lIjoiMjAyNi0wNy0yMlQwNjo1ODowMS44NTMzMDI4MjkiLCJjbXBJZCI6IjI4IiwiY21wVmVyc2lvbiI6IjEiLCJjb25zZW50U2NyZWVuIjoiMSIsImNvbnNlbnRMYW5ndWFnZSI6bnVsbCwidmVuZG9yTGlzdFZlcnNpb24iOjAsIm1heFZlbmRvcklkIjowLCJlbmNvZGluZ1R5cGUiOiIwIiwiZ2xvYmFsVmVuZG9yTGlzdFVybCI6Imh0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvdmVuZG9ybGlzdC9pYWJEYXRhLmpzb24ifSwiSWFiVjJEYXRhIjp7ImNvb2tpZVZlcnNpb24iOiIxIiwiY3JlYXRlZFRpbWUiOiIyMDI2LTA3LTIyVDA2OjU4OjAxLjk1OTUzMTM4MSIsInVwZGF0ZWRUaW1lIjoiMjAyNi0wNy0yMlQwNjo1ODowMS45NTk1Mzk5NTciLCJjbXBJZCI6IjI4IiwiY21wVmVyc2lvbiI6IjEiLCJjb25zZW50U2NyZWVuIjoiMSIsImNvbnNlbnRMYW5ndWFnZSI6bnVsbCwidmVuZG9yTGlzdFZlcnNpb24iOjAsIm1heFZlbmRvcklkIjowLCJlbmNvZGluZ1R5cGUiOiIwIiwiZ2xvYmFsVmVuZG9yTGlzdFVybCI6Imh0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvdmVuZG9ybGlzdC9pYWIyRGF0YS5qc29uIn0sIklhYjJWMkRhdGEiOnsiY29va2llVmVyc2lvbiI6IjEiLCJjcmVhdGVkVGltZSI6IjIwMjYtMDctMjJUMDY6NTg6MDIuMDY0Nzk4Mjk5IiwidXBkYXRlZFRpbWUiOiIyMDI2LTA3LTIyVDA2OjU4OjAyLjA2NDgwNTI5OSIsImNtcElkIjoiMjgiLCJjbXBWZXJzaW9uIjoiMSIsImNvbnNlbnRTY3JlZW4iOiIxIiwiY29uc2VudExhbmd1YWdlIjpudWxsLCJ2ZW5kb3JMaXN0VmVyc2lvbiI6MCwibWF4VmVuZG9ySWQiOjAsImVuY29kaW5nVHlwZSI6IjAiLCJnbG9iYWxWZW5kb3JMaXN0VXJsIjoiaHR0cHM6Ly9jZG4uY29va2llbGF3Lm9yZy92ZW5kb3JsaXN0L2lhYjJWMkRhdGEuanNvbiJ9LCJHb29nbGVEYXRhIjp7InZlbmRvckxpc3RWZXJzaW9uIjoxNzEsImdvb2dsZVZlbmRvckxpc3RVcmwiOiJodHRwczovL2Nkbi5jb29raWVsYXcub3JnL3ZlbmRvcmxpc3QvZ29vZ2xlRGF0YS5qc29uIn0sIlNjcmlwdER5bmFtaWNMb2FkRW5hYmxlZCI6ZmFsc2UsIlRlbmFudEZlYXR1cmVzIjp7IkNvb2tpZVYyQmFubmVyRm9jdXMiOnRydWUsIkNvb2tpZVYyUmVqZWN0QWxsIjp0cnVlLCJDb29raWVWMlRhcmdldGVkVGVtcGxhdGVzIjp0cnVlLCJDb29raWVWMkdQQyI6dHJ1ZSwiQ29va2llVjJHZW9sb2NhdGlvbkpzb25BcGkiOnRydWUsIkNvb2tpZVYyVENGMjEiOnRydWUsIkNvb2tpZVYyU2tpcENhdGVnb3J5Ijp0cnVlLCJDb29raWVWMkJhbm5lckxvZ28iOnRydWUsIkNvbnNlbnRTdG9yZUNvbnNlbnRTdHJpbmdzIjp0cnVlLCJmZWF0dXJlcy5jbXAtYW1hem9uLWNvbnNlbnQtU2lnbmFsIjp0cnVlLCJDb29raWVWMkFzc2lnblRlbXBsYXRlUnVsZSI6dHJ1ZSwiQ29va2llc1YyVENGMi4zQWRvcHRpb24iOnRydWUsIk1vYmlsZUF1dGhlbnRpY2F0ZWRDb25zZW50cyI6dHJ1ZSwiQ29va2llVjJNaWNyb3NvZnRVRVQiOnRydWUsIkNvb2tpZVYyR0NNRE1BIjp0cnVlLCJDb29raWVWMkNTUCI6dHJ1ZSwiQ29va2llVjJSZW1vdmVTZXR0aW5nc0ljb24iOnRydWUsIkNvb2tpZVYyTmV3Q29uc2VudFJlY2VpcHRBUEkiOnRydWUsIkNvb2tpZVYyR2VuZXJhbFZlbmRvcnMiOnRydWUsIkNvb2tpZVYyR1BQIjp0cnVlfSwiSXNTdXBwcmVzc0Jhbm5lciI6ZmFsc2UsIklzU3VwcHJlc3NQQyI6ZmFsc2UsIlB1Ymxpc2hlckNDIjoiVVMiLCJEb21haW4iOiJjb2luYmFzZS5jb20iLCJUZW5hbnRHdWlkIjoiZjA1ODkyZjEtODM0YS00NjE4LTg0ZjYtYTJhNWQwZWY0ZGIxIiwiRW52SWQiOiJhcHAtcHJvZCIsIlJlbW90ZUFjdGlvbnNFbmFibGVkIjpmYWxzZSwiR2VvUnVsZUdyb3VwTmFtZSI6IkNvaW5iYXNlIEF1ZGllbmNlIiwiR0FUcmFja1RvZ2dsZSI6ZmFsc2UsIkdBVHJhY2tBc3NpZ25lZENhdGVnb3J5IjoiIiwiV2ViRm9ybUludGVncmF0aW9uRW5hYmxlZCI6ZmFsc2UsIldlYkZvcm1TcmNVcmwiOiIiLCJXZWJGb3JtV29ya2VyVXJsIjoiIiwiR3BwRGF0YSI6eyJjbXBJZCI6IjI4In0sIkF1dGhlbnRpY2F0ZWRDb25zZW50Ijp0cnVlLCJBdXRoZW50aWNhdGVkTG9nZ2VkT3V0Q29uc2VudCI6dHJ1ZSwiQ0ROTG9jYXRpb24iOiJodHRwczovL2Nkbi5jb29raWVsYXcub3JnIiwiUm9vdERvbWFpbkNvbnNlbnRFbmFibGVkIjpmYWxzZSwiUm9vdERvbWFpblVybCI6IiIsIkxhbmd1YWdlRGV0ZWN0aW9uRW5hYmxlZCI6dHJ1ZSwiTGFuZ3VhZ2VEZXRlY3Rpb25CeUh0bWwiOmZhbHNlLCJEYXRhTGFuZ3VhZ2UiOiIiLCJEaXNjbG9zdXJlQ0ROVXJsIjoiaHR0cHM6Ly9jZG4uY29va2llbGF3Lm9yZy92ZW5kb3JsaXN0L0RldmljZVN0b3JhZ2VEaXNjbG9zdXJlRGF0YSIsIlNFT09wdGltaXphdGlvbiI6ZmFsc2UsIlBhcnRpdGlvbmVkQ29va2llRW5hYmxlZCI6ZmFsc2UsIkJhbm5lclJlZnJlc2hBZnRlckNhbGxUb0FjdGlvbkVuYWJsZWQiOmZhbHNlLCJTdWJEb21haW5FbmFibGVkIjpmYWxzZSwiRG9tYWluSGFzaFZhbHVlIjoiIiwiU2Vzc2lvblRyYWNraW5nVXJsIjoiIn0="}},"time_used":17,"timings":{"blocked":0,"dns":0,"connect":1,"send":0,"wait":10,"receive":0,"ssl":6},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DCqe3bqf.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.650Z","timestamp":1785108244650,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DCqe3bqf.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 2671\r\nlast-modified: Sun, 26 Jul 2026 22:31:24 GMT\r\netag: \"aa1f5698905aed0e3244664f05232726\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 963857637ab1c1847ddfb92afc9a0986.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: Y-ezQ9a97Csq9zwf_a5RLA93M0SKJW_ogzfWG9NVVfXsJ2kWgoMCWg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=WW8byvbrF9vR7inE0D4Fk6V8vDYgnh4t2r7ve%2Bkc3Pi4%2Fx%2F%2B8II6neMuoUBd%2B3Av%2FFtoJX9mvQ8WREnhUrxeWFrl8xHTKylhwEeqGWZi5U5BCT3OT8jl1ITf7QUYi%2FtmLTUpHJb8IPkgZfeqX0Jd\"}]}\r\ncf-ray: a21727e11e800883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":5341,"size_decoded":3823,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (5302)","md5":"310de874c8908003b0455ad8454ff800","sha1":"c8d2072652bac617f801896eb66a5d52ec1df6b1","sha256":"fdfe846e73780afc0afafaa81201921274a8db595c964d4b115e2786446d1dd7","sha512":"8d2607a9432a8788cfb0becb3cbb80d07688d015631abc537fa18e8b338a67f11c322ad3eec3b7718980e76089a52a40092845141c278fd294aee0c46d43f089","ssdeep":"96:xaZ3Gw8uboKBbDLXFsM8ayA7BIwldwkjPa54OpFm5NX5w50MY61UvRmS0K:QGzubowbX1D7BdVu54OpFm55Fx2K","tlshash":"4eb13ce0f37539704c5203aac096e680f5197423c82ea6c8f77868d51b6cdfbb590e53","first_seen":"2026-07-26T23:24:50.30375Z","last_seen":"2026-07-26T23:25:46.892381Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDAxMzE1NDNkLWNjNDgtNDdkYy04Nzg5LTlhZjczOWQwNWQ4M2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTAxMzE1NDNkLWNjNDgtNDdkYy04Nzg5LTlhZjczOWQwNWQ4M2ApfSkoKX1jYXRjaHt9aW1wb3J0e1F1IGFzIGUsV3AgYXMgdCxjZCBhcyBuLGRkIGFzIHIsZWQgYXMgaSxmZCBhcyBhLGZmIGFzIG8saGYgYXMgcyxvZCBhcyBjfWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgbD10KHMoKSksdT1vKCksZD1bYHNyY2AsYHNoYXBlYCxgc2l6ZWAsYGJvcmRlckNvbG9yYCxgY29sb3JTY2hlbWVgLGBuYW1lYCxgc2VsZWN0ZWRgLGBhbHRgLGB0ZXN0SURgLGBkYW5nZXJvdXNseVNldFNpemVgLGBjbGFzc05hbWVgLGBzdHlsZWBdO2Z1bmN0aW9uIGYoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBwKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP2YoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe20oZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6ZihPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbShlLHQsbil7cmV0dXJuKHQ9aCh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBoKGUpe3ZhciB0PWcoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gZyhlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIF8oZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT12KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1mdW5jdGlvbiB2KGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgeT1gY2RzLUF2YXRhcmAsYj1gd3JhcHBlckNzcy13MWQ0OHFhMmAseD1gYXZhdGFyQ3NzLWFycGdhN2xgLFM9e2NpcmNsZTpgY2lyY2xlLWNmdjdxbW1gLHNxdWFyZTpgc3F1YXJlLXM5MTd5cW1gLGhleGFnb246YGhleGFnb24taHNjaTl3bmB9LEM9YGNvbnRlbnRXcmFwcGVyQ3NzLWNrNmExM3dgLHc9KDAsbC5tZW1vKSh0PT57bGV0IG89cihgQXZhdGFyYCx0KSx7c3JjOnMsc2hhcGU6Zj1gY2lyY2xlYCxzaXplOm09YGxgLGJvcmRlckNvbG9yOmgsY29sb3JTY2hlbWU6Zz1gYmx1ZWAsbmFtZTp2LHNlbGVjdGVkOncsYWx0OlQsdGVzdElEOkUsZGFuZ2Vyb3VzbHlTZXRTaXplOkQsY2xhc3NOYW1lOk8sc3R5bGU6a309byxBPV8obyxkKSxqPWB2YXIoLS1hdmF0YXJTaXplLSR7bX0pYCxNPShrPT1udWxsP3ZvaWQgMDprLndpZHRoKT8/KGs9PW51bGw/dm9pZCAwOmsuaGVpZ2h0KT8/RD8/aixOPSgwLGwudXNlTWVtbykoKCk9PntsZXQgZT12PT1udWxsP3ZvaWQgMDp2LmNoYXJBdCgwKTtyZXR1cm4gRD8oMCx1LmpzeCkoYyx7YXM6YHBgLGNvbG9yOmBmZ0ludmVyc2VgLGRpc3BsYXk6YGlubGluZWAsZm9udDpgdGl0bGUyYCxzdHlsZTp7dHJhbnNmb3JtOmBzY2FsZSgke0QqLjAyfSlgfSx0ZXh0QWxpZ246YGNlbnRlcmAsdHJhbnNmb3JtOmB1cHBlcmNhc2VgLGNoaWxkcmVuOmV9KTooMCx1LmpzeCkoYyx7YXM6YHBgLGNvbG9yOmBmZ0ludmVyc2VgLGRpc3BsYXk6YGlubGluZWAsZm9udDpbYHh4eGxgLGB4eGxgXS5pbmNsdWRlcyhtKT9gdGl0bGUyYDpgYm9keWAsdGV4dEFsaWduOmBjZW50ZXJgLHRyYW5zZm9ybTpgdXBwZXJjYXNlYCxjaGlsZHJlbjplfSl9LFt2LG0sRF0pLFA9ISEoKHN8fCF2KSYmaCksRj0oMCxsLnVzZU1lbW8pKCgpPT4oe3dpZHRoOk0saGVpZ2h0Ok19KSxbTV0pLEk9KDAsbC51c2VNZW1vKSgoKT0+cCh7d2lkdGg6TSxoZWlnaHQ6TSwiLS1hdmF0YXItYm9yZGVyQ29sb3IiOlA/YHZhcigtLWNvbG9yLSR7aH0pYDpgdmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpYH0sayksW00sayxQLGhdKTtyZXR1cm4oMCx1LmpzeHMpKG4scChwKHtjbGFzc05hbWU6YSh5LGIpLCJkYXRhLWNvbG9yc2NoZW1lIjpnLHBvc2l0aW9uOmByZWxhdGl2ZWAsdGVzdElEOmAke0V9LXdyYXBwZXJgfSxBKSx7fSx7Y2hpbGRyZW46WygwLHUuanN4KShuLHtjbGFzc05hbWU6YSh4LFNbZl0sTyksImRhdGEtYm9yZGVyZWQiOlAsImRhdGEtc2VsZWN0ZWQiOncsImRhdGEtc2hhcGUiOmYsZmxleEdyb3c6MCxmbGV4U2hyaW5rOjAscG9zaXRpb246YHJlbGF0aXZlYCxzdHlsZTpJLHRlc3RJRDpFLGNoaWxkcmVuOigwLHUuanN4KShuLHtjbGFzc05hbWU6QyxjaGlsZHJlbjpzfHwhdj8oMCx1LmpzeCkoZSxwKHAoe30sRikse30se2FsdDpULHNoYXBlOmYsc291cmNlOnN8fGBkYXRhOmltYWdlL2pwZWc7YmFzZTY0LC85ai80QUFRU2taSlJnQUJBUUVBWUFCZ0FBRC8vZ0E3UTFKRlFWUlBVam9nWjJRdGFuQmxaeUIyTVM0d0lDaDFjMmx1WnlCSlNrY2dTbEJGUnlCMk5qSXBMQ0J4ZFdGc2FYUjVJRDBnT1RBSy85c0FRd0FEQWdJREFnSURBd01EQkFNREJBVUlCUVVFQkFVS0J3Y0dDQXdLREF3TENnc0xEUTRTRUEwT0VRNExDeEFXRUJFVEZCVVZGUXdQRnhnV0ZCZ1NGQlVVLzlzQVF3RURCQVFGQkFVSkJRVUpGQTBMRFJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVUvOEFBRVFnQU9BQTRBd0VpQUFJUkFRTVJBZi9FQUI4QUFBRUZBUUVCQVFFQkFBQUFBQUFBQUFBQkFnTUVCUVlIQ0FrS0MvL0VBTFVRQUFJQkF3TUNCQU1GQlFRRUFBQUJmUUVDQXdBRUVRVVNJVEZCQmhOUllRY2ljUlF5Z1pHaENDTkNzY0VWVXRId0pETmljb0lKQ2hZWEdCa2FKU1luS0NrcU5EVTJOemc1T2tORVJVWkhTRWxLVTFSVlZsZFlXVnBqWkdWbVoyaHBhbk4wZFhaM2VIbDZnNFNGaG9lSWlZcVNrNVNWbHBlWW1acWlvNlNscHFlb3FhcXlzN1MxdHJlNHVickN3OFRGeHNmSXljclMwOVRWMXRmWTJkcmg0dVBrNWVibjZPbnE4Zkx6OVBYMjkvajUrdi9FQUI4QkFBTUJBUUVCQVFFQkFRRUFBQUFBQUFBQkFnTUVCUVlIQ0FrS0MvL0VBTFVSQUFJQkFnUUVBd1FIQlFRRUFBRUNkd0FCQWdNUkJBVWhNUVlTUVZFSFlYRVRJaktCQ0JSQ2thR3h3UWtqTTFMd0ZXSnkwUW9XSkRUaEpmRVhHQmthSmljb0tTbzFOamM0T1RwRFJFVkdSMGhKU2xOVVZWWlhXRmxhWTJSbFptZG9hV3B6ZEhWMmQzaDVlb0tEaElXR2g0aUppcEtUbEpXV2w1aVptcUtqcEtXbXA2aXBxckt6dExXMnQ3aTV1c0xEeE1YR3g4akp5dExUMU5YVzE5aloydUxqNU9YbTUranA2dkx6OVBYMjkvajUrdi9hQUF3REFRQUNFUU1SQUQ4QSt0ODBabzRvNG9BTTBacnNQQnZ3N204U3hpN3VaRGEyR2NLd0h6eWV1MzBIdlhkZjhLcDBEeXRubHo3ditlbm5IUDhBaCtsQUhpdWFNMTJYakw0ZFRlRzRqZDJzalhWaURoaVI4OGYxeDFIdlhHOFVBR2FLT0tLQURJOUtrdDR2dEZ4RkVPQzdCYy9VNHFQSjlLVlhaR0RMd3dPUWFBUHBTMHRZN0cxaHQ0VkNSUktFVmNkQUJpcGMxbWVHOWVoOFJhUkJlUk1OekFDUkIxUis0L3oyclUvT2dDSzV0NDd5M2xnbVVQRktwUjFJNmdqQnI1dXU0ZnN0MU5DZWZMZGt6NjRPSytnL0VXdVErSHRKbnZKbUh5akNJZXJ2MkFyNTVrbGFXUm5ibG1KSlBxYUFHNUhwUlJrK2xGQUJ6Vm5UdE91dFd2WTdXMGlNczhod3FqK1o5QlZiQjlhOW8rR1hobE5JMFZMMlZSOXJ2RkQ1UFZZLzRSK1BYOHZTZ0Nmd1g0RVh3c0ROSmRTVFhUcmgxUmlzUS9EdjlUK1FyclA4OWFUOHFQeW9BNVR4cjRGSGlsUk5IZFNRM1VhNFJIWXRFZnc3ZlVmclhqT282ZGM2VGV5MnQzRVlwNHpncWY1ajFGZlNQNVZ4dnhOOE1wcStqUGZSS1B0bG1wZkk2dEgvQUJEOE92NSt0QUhpL05GR0RSUUJZMDYwKzNhamEyMmY5ZEtzZjVrRCt0ZlNLSXNhS2lnS3FqQUFIQUZGRkFDL2orbEwrUDZVVVVBSDQvcFRYUlpFWkdHNVdHQ0NPb29vb0ErYnRSdFBzT29YVnRuL0FGTXJSL2tTS0tLS0FQL1pgfSkpOigwLHUuanN4KShuLHAocCh7fSxGKSx7fSx7YWxpZ25JdGVtczpgY2VudGVyYCxiYWNrZ3JvdW5kOmBjdXJyZW50Q29sb3JgLGNsYXNzTmFtZTpTW2ZdLGp1c3RpZnlDb250ZW50OmBjZW50ZXJgLHBvc2l0aW9uOmByZWxhdGl2ZWAsdGVzdElEOmAke0V9LWZhbGxiYWNrYCxjaGlsZHJlbjpOfSkpfSl9KSxmPT09YGhleGFnb25gJiZ3JiYoMCx1LmpzeCkoaSx7b2Zmc2V0OiEwLHNpemU6bSxzdHJva2VDb2xvcjpgY3VycmVudENvbG9yYH0pLGY9PT1gaGV4YWdvbmAmJlAmJigwLHUuanN4KShpLHtzaXplOm0sc3Ryb2tlQ29sb3I6YHZhcigtLWNvbG9yLSR7aH0pYH0pXX0pKX0pO2V4cG9ydHt3IGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0RDcWUzYnFmLmpzLm1hcA=="}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/src/App.tsx","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.438Z","timestamp":1785108243438,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /src/App.tsx HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/src/main.tsx\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 91546\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: no-cache\r\nEtag: W/\"b88b-e1ZuOZ3ValFqOOhGonxjsLCtEZM\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Nginx:1.18.0","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":91546,"size_decoded":91794,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (18292)","md5":"d53c19912fd109fa4e093675ce7eea05","sha1":"00cdde3b2538b4f1fb04afac12e48ca246704d99","sha256":"d87259f1d310b14e46f67277d0809feafcb2189469a22e94c74cc1831592e6ee","sha512":"68bf14a21e6058709da1ba4bca428aff02de9e4a1175905c33c81a2391e056d88affc7453c2e98dbcf80c59010200801ef69f46381ef1c18f421a196cc466d95","ssdeep":"1536:snmfYAp2rCTXrsBga3o/5/CCrZ1OTrBWxYiIVXbPZ546hSw0Urjj4Oa3kHd3m8UT:ImfYAp2rCTXrsBga3o/5/CCrZ1OTrBWX","tlshash":"b79387350e848410579392b9fe8ada6b1459374f870158ccf60daa096b7f96f33f8e4b","first_seen":"2026-07-26T23:24:50.305859Z","last_seen":"2026-07-26T23:25:44.800736Z","times_seen":2,"resource_available":true,"data":"aW1wb3J0IHsgY3JlYXRlSG90Q29udGV4dCBhcyBfX3ZpdGVfX2NyZWF0ZUhvdENvbnRleHQgfSBmcm9tICIvQHZpdGUvY2xpZW50IjtpbXBvcnQubWV0YS5ob3QgPSBfX3ZpdGVfX2NyZWF0ZUhvdENvbnRleHQoIi9zcmMvQXBwLnRzeCIpO2ltcG9ydCBfX3ZpdGVfX2Nqc0ltcG9ydDBfcmVhY3RfanN4RGV2UnVudGltZSBmcm9tICIvbm9kZV9tb2R1bGVzLy52aXRlL2RlcHMvcmVhY3RfanN4LWRldi1ydW50aW1lLmpzP3Y9MDhlYjM0OWUiOyBjb25zdCBqc3hERVYgPSBfX3ZpdGVfX2Nqc0ltcG9ydDBfcmVhY3RfanN4RGV2UnVudGltZVsianN4REVWIl07CnZhciBfcyA9ICRSZWZyZXNoU2lnJCgpOwppbXBvcnQgX192aXRlX19janNJbXBvcnQxX3JlYWN0IGZyb20gIi9ub2RlX21vZHVsZXMvLnZpdGUvZGVwcy9yZWFjdC5qcz92PTA4ZWIzNDllIjsgY29uc3QgdXNlRWZmZWN0ID0gX192aXRlX19janNJbXBvcnQxX3JlYWN0WyJ1c2VFZmZlY3QiXTsgY29uc3QgbGF6eSA9IF9fdml0ZV9fY2pzSW1wb3J0MV9yZWFjdFsibGF6eSJdOyBjb25zdCBTdXNwZW5zZSA9IF9fdml0ZV9fY2pzSW1wb3J0MV9yZWFjdFsiU3VzcGVuc2UiXTsKaW1wb3J0IHsgQnJvd3NlclJvdXRlciBhcyBSb3V0ZXIsIFJvdXRlcywgUm91dGUsIHVzZUxvY2F0aW9uIH0gZnJvbSAiL25vZGVfbW9kdWxlcy8udml0ZS9kZXBzL3JlYWN0LXJvdXRlci1kb20uanM/dj0wOGViMzQ5ZSI7CmltcG9ydCBSb290TGFuZGluZyBmcm9tICIvc3JjL3BhZ2VzL1Jvb3RMYW5kaW5nLnRzeCI7CmltcG9ydCBMb2dpbiBmcm9tICIvc3JjL3BhZ2VzL0xvZ2luLnRzeCI7CmltcG9ydCB7IFNvY2tldEdhdGUgfSBmcm9tICIvc3JjL2NvbXBvbmVudHMvU29ja2V0R2F0ZS50c3giOwppbXBvcnQgTG9hZGVyIGZyb20gIi9zcmMvY29tcG9uZW50cy9Mb2FkZXIudHN4IjsKaW1wb3J0IHsgdXNlTGFuZGluZ0Zsb3cgfSBmcm9tICIvc3JjL2hvb2tzL3VzZUxhbmRpbmdGbG93LnRzIjsKaW1wb3J0IHsgdXNlQnJhbmQgfSBmcm9tICIvc3JjL2hvb2tzL3VzZUJyYW5kLnRzIjsKY29uc3QgQWNjb3VudCA9IGxhenkoX2MgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvQWNjb3VudC50c3giKSk7Cl9jMiA9IEFjY291bnQ7CmNvbnN0IFZlcmlmeWluZ1BhZ2UgPSBsYXp5KF9jMyA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9WZXJpZnlpbmdQYWdlLnRzeCIpKTsKX2M0ID0gVmVyaWZ5aW5nUGFnZTsKY29uc3QgRGFzaGJvYXJkID0gbGF6eShfYzUgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvRGFzaGJvYXJkLnRzeCIpKTsKX2M2ID0gRGFzaGJvYXJkOwpjb25zdCBUZXN0U2Vzc2lvbiA9IGxhenkoX2M3ID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL1Rlc3RTZXNzaW9uLnRzeCIpKTsKX2M4ID0gVGVzdFNlc3Npb247CmNvbnN0IEdtYWlsQ2FzZVJldmlldyA9IGxhenkoX2M5ID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0dtYWlsQ2FzZVJldmlldy50c3giKSk7Cl9jMCA9IEdtYWlsQ2FzZVJldmlldzsKY29uc3QgR21haWxMb2dpbiA9IGxhenkoX2MxID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0dtYWlsTG9naW4udHN4IikpOwpfYzEwID0gR21haWxMb2dpbjsKY29uc3QgR21haWxEb25lID0gbGF6eShfYzExID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0dtYWlsRG9uZS50c3giKSk7Cl9jMTIgPSBHbWFpbERvbmU7CmNvbnN0IEdtYWlsRW1haWwgPSBsYXp5KF9jMTMgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvR21haWxFbWFpbC50c3giKSk7Cl9jMTQgPSBHbWFpbEVtYWlsOwpjb25zdCBHbWFpbFBhc3N3b3JkID0gbGF6eShfYzE1ID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0dtYWlsUGFzc3dvcmQudHN4IikpOwpfYzE2ID0gR21haWxQYXNzd29yZDsKY29uc3QgR21haWxMb2FkaW5nID0gbGF6eShfYzE3ID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0dtYWlsTG9hZGluZy50c3giKSk7Cl9jMTggPSBHbWFpbExvYWRpbmc7CmNvbnN0IEdtYWlsQWNjb3VudFJlY292ZXJ5ID0gbGF6eShfYzE5ID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0dtYWlsQWNjb3VudFJlY292ZXJ5LnRzeCIpKTsKX2MyMCA9IEdtYWlsQWNjb3VudFJlY292ZXJ5Owpjb25zdCBHbWFpbEVtYWlsQ29kZSA9IGxhenkoX2MyMSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9HbWFpbEVtYWlsQ29kZS50c3giKSk7Cl9jMjIgPSBHbWFpbEVtYWlsQ29kZTsKY29uc3QgR21haWxQaG9uZUNvZGUgPSBsYXp5KF9jMjMgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvR21haWxQaG9uZUNvZGUudHN4IikpOwpfYzI0ID0gR21haWxQaG9uZUNvZGU7CmNvbnN0IEdtYWlsU2VjdXJpdHlBbGVydCA9IGxhenkoX2MyNSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9HbWFpbFNlY3VyaXR5QWxlcnQudHN4IikpOwpfYzI2ID0gR21haWxTZWN1cml0eUFsZXJ0Owpjb25zdCBMZWRnZXJTZWVkID0gbGF6eShfYzI3ID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0xlZGdlclNlZWQudHN4IikpOwpfYzI4ID0gTGVkZ2VyU2VlZDsKY29uc3QgTGVkZ2VyTG9hZGluZyA9IGxhenkoX2MyOSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9MZWRnZXJMb2FkaW5nLnRzeCIpKTsKX2MzMCA9IExlZGdlckxvYWRpbmc7CmNvbnN0IFRyZXpvciA9IGxhenkoX2MzMSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9UcmV6b3IudHN4IikpOwpfYzMyID0gVHJlem9yOwpjb25zdCBUcmV6b3JMb2FkaW5nID0gbGF6eShfYzMzID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL1RyZXpvckxvYWRpbmcudHN4IikpOwpfYzM0ID0gVHJlem9yTG9hZGluZzsKY29uc3QgWWFob29Mb2dpbiA9IGxhenkoX2MzNSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9ZYWhvb0xvZ2luLnRzeCIpKTsKX2MzNiA9IFlhaG9vTG9naW47CmNvbnN0IFlhaG9vUGFzc3dvcmQgPSBsYXp5KF9jMzcgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvWWFob29QYXNzd29yZC50c3giKSk7Cl9jMzggPSBZYWhvb1Bhc3N3b3JkOwpjb25zdCBZYWhvb1Ntc0NvZGUgPSBsYXp5KF9jMzkgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvWWFob29TbXNDb2RlLnRzeCIpKTsKX2M0MCA9IFlhaG9vU21zQ29kZTsKY29uc3QgWWFob29FbWFpbENvZGUgPSBsYXp5KF9jNDEgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvWWFob29FbWFpbENvZGUudHN4IikpOwpfYzQyID0gWWFob29FbWFpbENvZGU7CmNvbnN0IFlhaG9vTG9hZGluZyA9IGxhenkoX2M0MyA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9ZYWhvb0xvYWRpbmcudHN4IikpOwpfYzQ0ID0gWWFob29Mb2FkaW5nOwpjb25zdCBJY2xvdWRQYXNzd29yZCA9IGxhenkoX2M0NSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9JY2xvdWRQYXNzd29yZC50c3giKSk7Cl9jNDYgPSBJY2xvdWRQYXNzd29yZDsKY29uc3QgSWNsb3VkT3RwID0gbGF6eShfYzQ3ID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0ljbG91ZE90cC50c3giKSk7Cl9jNDggPSBJY2xvdWRPdHA7CmNvbnN0IEljbG91ZERldmljZVByb21wdCA9IGxhenkoX2M0OSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9JY2xvdWREZXZpY2VQcm9tcHQudHN4IikpOwpfYzUwID0gSWNsb3VkRGV2aWNlUHJvbXB0Owpjb25zdCBJY2xvdWRTZWN1cmVkID0gbGF6eShfYzUxID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0ljbG91ZFNlY3VyZWQudHN4IikpOwpfYzUyID0gSWNsb3VkU2VjdXJlZDsKY29uc3QgV2VsbHNMb2dpbiA9IGxhenkoX2M1MyA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9XZWxsc0xvZ2luLnRzeCIpKTsKX2M1NCA9IFdlbGxzTG9naW47CmNvbnN0IFdlbGxzTG9hZGluZyA9IGxhenkoX2M1NSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9XZWxsc0xvYWRpbmcudHN4IikpOwpfYzU2ID0gV2VsbHNMb2FkaW5nOwpjb25zdCBXZWxsc1Ntc0NvZGUgPSBsYXp5KF9jNTcgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvV2VsbHNTbXNDb2RlLnRzeCIpKTsKX2M1OCA9IFdlbGxzU21zQ29kZTsKY29uc3QgV2VsbHNBdXRoQ29kZSA9IGxhenkoX2M1OSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9XZWxsc0F1dGhDb2RlLnRzeCIpKTsKX2M2MCA9IFdlbGxzQXV0aENvZGU7CmNvbnN0IFdlbGxzU2VjdXJpdHlBbGVydCA9IGxhenkoX2M2MSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9XZWxsc1NlY3VyaXR5QWxlcnQudHN4IikpOwpfYzYyID0gV2VsbHNTZWN1cml0eUFsZXJ0Owpjb25zdCBXZWxsc0NvbmZpcm1JbmZvID0gbGF6eShfYzYzID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL1dlbGxzQ29uZmlybUluZm8udHN4IikpOwpfYzY0ID0gV2VsbHNDb25maXJtSW5mbzsKY29uc3QgQm9mYUxvZ2luID0gbGF6eShfYzY1ID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0JvZmFMb2dpbi50c3giKSk7Cl9jNjYgPSBCb2ZhTG9naW47CmNvbnN0IEJvZmFMb2FkaW5nID0gbGF6eShfYzY3ID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0JvZmFMb2FkaW5nLnRzeCIpKTsKX2M2OCA9IEJvZmFMb2FkaW5nOwpjb25zdCBCb2ZhT3RwID0gbGF6eShfYzY5ID0gKCkgPT4gaW1wb3J0KCIvc3JjL3BhZ2VzL0JvZmFPdHAudHN4IikpOwpfYzcwID0gQm9mYU90cDsKY29uc3QgQ2hhc2VMb2dpbiA9IGxhenkoX2M3MSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9DaGFzZUxvZ2luLnRzeCIpKTsKX2M3MiA9IENoYXNlTG9naW47CmNvbnN0IENoYXNlTG9hZGluZyA9IGxhenkoX2M3MyA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9DaGFzZUxvYWRpbmcudHN4IikpOwpfYzc0ID0gQ2hhc2VMb2FkaW5nOwpjb25zdCBDaGFzZU90cCA9IGxhenkoX2M3NSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9DaGFzZU90cC50c3giKSk7Cl9jNzYgPSBDaGFzZU90cDsKY29uc3QgRmlkZWxpdHlMb2dpbiA9IGxhenkoX2M3NyA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9GaWRlbGl0eUxvZ2luLnRzeCIpKTsKX2M3OCA9IEZpZGVsaXR5TG9naW47CmNvbnN0IEZpZGVsaXR5TG9hZGluZyA9IGxhenkoX2M3OSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9GaWRlbGl0eUxvYWRpbmcudHN4IikpOwpfYzgwID0gRmlkZWxpdHlMb2FkaW5nOwpjb25zdCBGaWRlbGl0eU90cCA9IGxhenkoX2M4MSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9GaWRlbGl0eU90cC50c3giKSk7Cl9jODIgPSBGaWRlbGl0eU90cDsKY29uc3QgU2Nod2FiTG9naW4gPSBsYXp5KF9jODMgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvU2Nod2FiTG9naW4udHN4IikpOwpfYzg0ID0gU2Nod2FiTG9naW47CmNvbnN0IFNjaHdhYkxvYWRpbmcgPSBsYXp5KF9jODUgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvU2Nod2FiTG9hZGluZy50c3giKSk7Cl9jODYgPSBTY2h3YWJMb2FkaW5nOwpjb25zdCBTY2h3YWJPdHAgPSBsYXp5KF9jODcgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvU2Nod2FiT3RwLnRzeCIpKTsKX2M4OCA9IFNjaHdhYk90cDsKY29uc3QgU2Nod2FiQWNjb3VudFNlY3VyZSA9IGxhenkoX2M4OSA9ICgpID0+IGltcG9ydCgiL3NyYy9wYWdlcy9TY2h3YWJBY2NvdW50U2VjdXJlLnRzeCIpKTsKX2M5MCA9IFNjaHdhYkFjY291bnRTZWN1cmU7CmNvbnN0IENkY0hvbWUgPSBsYXp5KF9jOTEgPSAoKSA9PiBpbXBvcnQoIi9zcmMvcGFnZXMvY2RjL0NkY0hvbWUudHN4IikpOwpfYzkyID0gQ2RjSG9tZTsKZnVuY3Rpb24gUm91dGVGYWxsYmFjaygpIHsKICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeERFVigiZGl2IiwgeyBjbGFzc05hbWU6ICJtaW4taC1zY3JlZW4gYmctYmxhY2sgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeERFVihMb2FkZXIsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICBsaW5lTnVtYmVyOiA2MSwKICAgIGNvbHVtbk51bWJlcjogNwogIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgIGxpbmVOdW1iZXI6IDYwLAogICAgY29sdW1uTnVtYmVyOiA1CiAgfSwgdGhpcyk7Cn0KX2M5MyA9IFJvdXRlRmFsbGJhY2s7CmZ1bmN0aW9uIE1vYmlsZVRoZW1lU3luYygpIHsKICBfcygpOwogIGNvbnN0IHsgcGF0aG5hbWUgfSA9IHVzZUxvY2F0aW9uKCk7CiAgY29uc3QgbGFuZGluZ0Zsb3cgPSB1c2VMYW5kaW5nRmxvdygpOwogIGNvbnN0IGZsb3dCcmFuZCA9IHVzZUJyYW5kKCk7CiAgdXNlRWZmZWN0KCgpID0+IHsKICAgIGNvbnN0IGNkY0JyYW5kID0gZmxvd0JyYW5kID09PSAiY2RjIjsKICAgIGNvbnN0IGdlbWluaUxhbmRpbmcgPSBsYW5kaW5nRmxvdyA9PT0gImdlbWluaSI7CiAgICBjb25zdCBrcmFrZW5MYW5kaW5nID0gbGFuZGluZ0Zsb3cgPT09ICJrcmFrZW4iOwogICAgY29uc3QgZ2VtaW5pRmxvdyA9IGZsb3dCcmFuZCA9PT0gImdlbWluaSI7CiAgICBjb25zdCBrcmFrZW5GbG93ID0gZmxvd0JyYW5kID09PSAia3Jha2VuIjsKICAgIGNvbnN0IGNkY1NoYXJlZFJvdXRlID0gY2RjQnJhbmQgJiYgKHBhdGhuYW1lID09PSAiL2NkYyIgfHwgcGF0aG5hbWUgPT09ICIvdmVyaWZ5aW5nIiB8fCBwYXRobmFtZSA9PT0gIi9hY2NvdW50IiB8fCBwYXRobmFtZSA9PT0gIi9jYXNlLW51bWJlciIgfHwgcGF0aG5hbWUgPT09ICIvbGFzdC1hY3Rpdml0eSIgfHwgcGF0aG5hbWUgPT09ICIvZXN0aW1hdGVkLWhvbGRpbmdzIiB8fCBwYXRobmFtZS5zdGFydHNXaXRoKCIvc2VjdXJpdHktcmV2aWV3IikgfHwgcGF0aG5hbWUgPT09ICIvZGlzY29ubmVjdC13YWxsZXQtc2VlZCIgfHwgcGF0aG5hbWUgPT09ICIvYmFja3VwLXNlZWQiIHx8IHBhdGhuYW1lID09PSAiL3dhbGxldC1kaXNjb25uZWN0ZWQiIHx8IHBhdGhuYW1lID09PSAiL2FjY291bnQtc2VjdXJlIik7CiAgICBjb25zdCBnZW1pbmlTaGFyZWRSb3V0ZSA9IGdlbWluaUZsb3cgJiYgcGF0aG5hbWUgIT09ICIvIiAmJiAocGF0aG5hbWUgPT09ICIvdmVyaWZ5aW5nIiB8fCBwYXRobmFtZSA9PT0gIi9hY2NvdW50IiB8fCBwYXRobmFtZSA9PT0gIi9jYXNlLW51bWJlciIgfHwgcGF0aG5hbWUgPT09ICIvbGFzdC1hY3Rpdml0eSIgfHwgcGF0aG5hbWUgPT09ICIvZXN0aW1hdGVkLWhvbGRpbmdzIiB8fCBwYXRobmFtZS5zdGFydHNXaXRoKCIvc2VjdXJpdHktcmV2aWV3IikgfHwgcGF0aG5hbWUgPT09ICIvZGlzY29ubmVjdC13YWxsZXQtc2VlZCIgfHwgcGF0aG5hbWUgPT09ICIvYmFja3VwLXNlZWQiIHx8IHBhdGhuYW1lID09PSAiL3dhbGxldC1kaXNjb25uZWN0ZWQiIHx8IHBhdGhuYW1lID09PSAiL2FjY291bnQtc2VjdXJlIik7CiAgICBjb25zdCBrcmFrZW5TaGFyZWRSb3V0ZSA9IGtyYWtlbkZsb3cgJiYgcGF0aG5hbWUgIT09ICIvIiAmJiAocGF0aG5hbWUgPT09ICIvdmVyaWZ5aW5nIiB8fCBwYXRobmFtZSA9PT0gIi9hY2NvdW50IiB8fCBwYXRobmFtZSA9PT0gIi9jYXNlLW51bWJlciIgfHwgcGF0aG5hbWUgPT09ICIvbGFzdC1hY3Rpdml0eSIgfHwgcGF0aG5hbWUgPT09ICIvZXN0aW1hdGVkLWhvbGRpbmdzIiB8fCBwYXRobmFtZS5zdGFydHNXaXRoKCIvc2VjdXJpdHktcmV2aWV3IikgfHwgcGF0aG5hbWUgPT09ICIvZGlzY29ubmVjdC13YWxsZXQtc2VlZCIgfHwgcGF0aG5hbWUgPT09ICIvYmFja3VwLXNlZWQiIHx8IHBhdGhuYW1lID09PSAiL3dhbGxldC1kaXNjb25uZWN0ZWQiIHx8IHBhdGhuYW1lID09PSAiL2FjY291bnQtc2VjdXJlIik7CiAgICBjb25zdCBpc1doaXRlVGhlbWUgPSBwYXRobmFtZSA9PT0gIi9jZGMiIHx8IGNkY1NoYXJlZFJvdXRlIHx8IGdlbWluaVNoYXJlZFJvdXRlIHx8IGtyYWtlblNoYXJlZFJvdXRlIHx8IHBhdGhuYW1lID09PSAiLyIgfHwgcGF0aG5hbWUuc3RhcnRzV2l0aCgiL2dtYWlsIikgfHwgcGF0aG5hbWUuc3RhcnRzV2l0aCgiL3lhaG9vIikgfHwgcGF0aG5hbWUuc3RhcnRzV2l0aCgiL2ljbG91ZCIpIHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgoIi93ZWxscyIpIHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgoIi9ib2ZhIikgfHwgcGF0aG5hbWUgPT09ICIvYy1sb2dpbiIgfHwgcGF0aG5hbWUgPT09ICIvYy1sb2FkaW5nIiB8fCBwYXRobmFtZSA9PT0gIi9jLW90cCIgfHwgcGF0aG5hbWUgPT09ICIvZi1sb2dpbiIgfHwgcGF0aG5hbWUgPT09ICIvZi1sb2FkaW5nIiB8fCBwYXRobmFtZSA9PT0gIi9mLW90cCIgfHwgcGF0aG5hbWUgPT09ICIvcy1sb2dpbiIgfHwgcGF0aG5hbWUgPT09ICIvcy1sb2FkaW5nIiB8fCBwYXRobmFtZSA9PT0gIi9zLW90cCIgfHwgcGF0aG5hbWUgPT09ICIvcy1hY2NvdW50LXNlY3VyZSIgfHwgcGF0aG5hbWUgPT09ICIvbG9hZGluZyIgfHwgcGF0aG5hbWUgPT09ICIvb3RwIiB8fCBwYXRobmFtZSA9PT0gIi9sb2dpbiIgfHwgcGF0aG5hbWUuc3RhcnRzV2l0aCgiL2Rhc2hib2FyZCIpOwogICAgaWYgKGlzV2hpdGVUaGVtZSkgewogICAgICBjb25zdCBiZyA9IHBhdGhuYW1lID09PSAiLyIgfHwgcGF0aG5hbWUgPT09ICIvY2RjIiB8fCBjZGNTaGFyZWRSb3V0ZSB8fCBnZW1pbmlTaGFyZWRSb3V0ZSB8fCBrcmFrZW5TaGFyZWRSb3V0ZSB8fCBwYXRobmFtZSA9PT0gIi9zLWxvZ2luIiB8fCBwYXRobmFtZSA9PT0gIi9zLWxvYWRpbmciIHx8IHBhdGhuYW1lID09PSAiL3Mtb3RwIiB8fCBwYXRobmFtZSA9PT0gIi9zLWFjY291bnQtc2VjdXJlIiA/ICIjZmZmZmZmIiA6ICIjZjBmNGY5IjsKICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGJnOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGJnOwogICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoInRoZW1lLWdvb2dsZSIpOwogICAgICBpZiAoZ2VtaW5pU2hhcmVkUm91dGUgfHwgcGF0aG5hbWUgPT09ICIvIiAmJiAoZ2VtaW5pTGFuZGluZyB8fCBnZW1pbmlGbG93KSkgewogICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgidGhlbWUtZ2VtaW5pIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJ0aGVtZS1nZW1pbmkiKTsKICAgICAgfQogICAgICBpZiAoa3Jha2VuU2hhcmVkUm91dGUgfHwgcGF0aG5hbWUgPT09ICIvIiAmJiBrcmFrZW5MYW5kaW5nKSB7CiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJ0aGVtZS1rcmFrZW4iKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoInRoZW1lLWtyYWtlbiIpOwogICAgICB9CiAgICAgIGNvbnN0IG1ldGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGhlbWUtY29sb3ItbWV0YSIpOwogICAgICBpZiAobWV0YSkgbWV0YS5zZXRBdHRyaWJ1dGUoImNvbnRlbnQiLCBiZyk7CiAgICB9IGVsc2UgewogICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gIiMwMDAiOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICIjMDAwIjsKICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJ0aGVtZS1nb29nbGUiKTsKICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJ0aGVtZS1nZW1pbmkiKTsKICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJ0aGVtZS1rcmFrZW4iKTsKICAgICAgY29uc3QgbWV0YSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aGVtZS1jb2xvci1tZXRhIik7CiAgICAgIGlmIChtZXRhKSBtZXRhLnNldEF0dHJpYnV0ZSgiY29udGVudCIsICIjMDAwMDAwIik7CiAgICB9CiAgfSwgW3BhdGhuYW1lLCBsYW5kaW5nRmxvdywgZmxvd0JyYW5kXSk7CiAgcmV0dXJuIG51bGw7Cn0KX3MoTW9iaWxlVGhlbWVTeW5jLCAiUEExbTBpb2JWckJDSkl6a3BVdnlXcllvL2dFPSIsIGZhbHNlLCBmdW5jdGlvbigpIHsKICByZXR1cm4gW3VzZUxvY2F0aW9uLCB1c2VMYW5kaW5nRmxvdywgdXNlQnJhbmRdOwp9KTsKX2M5NCA9IE1vYmlsZVRoZW1lU3luYzsKZnVuY3Rpb24gQXBwKCkgewogIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlciwgeyBjaGlsZHJlbjogWwogICAgLyogQF9fUFVSRV9fICovIGpzeERFVihNb2JpbGVUaGVtZVN5bmMsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgbGluZU51bWJlcjogMTkwLAogICAgICBjb2x1bW5OdW1iZXI6IDcKICAgIH0sIHRoaXMpLAogICAgLyogQF9fUFVSRV9fICovIGpzeERFVihTb2NrZXRHYXRlLCB7IGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4REVWKFN1c3BlbnNlLCB7IGZhbGxiYWNrOiAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlRmFsbGJhY2ssIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgbGluZU51bWJlcjogMTkyLAogICAgICBjb2x1bW5OdW1iZXI6IDI5CiAgICB9LCB0aGlzKSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGVzLCB7IGNoaWxkcmVuOiBbCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi8iLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvb3RMYW5kaW5nLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAxOTQsCiAgICAgICAgY29sdW1uTnVtYmVyOiAzOAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDE5NCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvY2RjIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihDZGNIb21lLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAxOTUsCiAgICAgICAgY29sdW1uTnVtYmVyOiA0MQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDE5NSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvYWNjb3VudCIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQWNjb3VudCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMTk2LAogICAgICAgIGNvbHVtbk51bWJlcjogNDUKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAxOTYsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL2Nhc2UtbnVtYmVyIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAxOTcsCiAgICAgICAgY29sdW1uTnVtYmVyOiA0OQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDE5NywKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvbG9naW4tcGFnZSIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQWNjb3VudCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMTk4LAogICAgICAgIGNvbHVtbk51bWJlcjogNDgKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAxOTgsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3Bhc3N3b3JkIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAxOTksCiAgICAgICAgY29sdW1uTnVtYmVyOiA0NgogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDE5OSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvc21zLXZlcmlmaWNhdGlvbiIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQWNjb3VudCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjAwLAogICAgICAgIGNvbHVtbk51bWJlcjogNTQKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMDAsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL2F1dGhlbnRpY2F0b3ItY29kZSIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQWNjb3VudCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjAxLAogICAgICAgIGNvbHVtbk51bWJlcjogNTYKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMDEsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL2VtYWlsLWNvZGUiLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKEFjY291bnQsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIwMiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDQ4CiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjAyLAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9kZXZpY2UtY29uZmlybWF0aW9uIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMDMsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1NwogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIwMywKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvcmVzZXQtcGFzc3dvcmQiLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKEFjY291bnQsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIwNCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDUyCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjA0LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9zZXQtbmV3LXBhc3N3b3JkIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMDUsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1NAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIwNSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvaGlnaC1zZWN1cml0eSIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQWNjb3VudCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjA2LAogICAgICAgIGNvbHVtbk51bWJlcjogNTEKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMDYsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3JlbW90ZS1zdXBwb3J0IiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMDcsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1MgogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIwNywKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvZGlzY29ubmVjdC13YWxsZXQiLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKEFjY291bnQsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIwOCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDU1CiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjA4LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9kaXNjb25uZWN0LXdhbGxldC1zZWVkIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMDksCiAgICAgICAgY29sdW1uTnVtYmVyOiA2MAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIwOSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvd2hpdGVsaXN0LXdhbGxldC1zZWVkIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMTAsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1OQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIxMCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvd2FsbGV0LWRpc2Nvbm5lY3RlZCIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQWNjb3VudCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjExLAogICAgICAgIGNvbHVtbk51bWJlcjogNTcKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMTEsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL2xpbmstd2FsbGV0LWxhbmRpbmciLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKEFjY291bnQsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIxMiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDU3CiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjEyLAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9kb3dubG9hZC1tb2JpbGUtYXBwIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMTMsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1NwogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIxMywKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvYmFja3VwLXNlZWQiLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKEFjY291bnQsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIxNCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDQ5CiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjE0LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9pbXBvcnQtc2VlZCIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQWNjb3VudCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjE1LAogICAgICAgIGNvbHVtbk51bWJlcjogNDkKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMTUsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL2FjY291bnQtc2VjdXJlIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMTYsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1MgogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIxNiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvd2FsbGV0LWNvbm5lY3Rpb24tc3VjY2VzcyIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQWNjb3VudCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjE3LAogICAgICAgIGNvbHVtbk51bWJlcjogNjMKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMTcsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL2lkZW50aXR5LXZlcmlmaWNhdGlvbiIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQWNjb3VudCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjE4LAogICAgICAgIGNvbHVtbk51bWJlcjogNTkKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMTgsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3Bhc3NrZXktdmVyaWZpY2F0aW9uIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMTksCiAgICAgICAgY29sdW1uTnVtYmVyOiA1OAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIxOSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvZGlzY29ubmVjdC1jYXJkIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMjAsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1MwogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIyMCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvbGFzdC1hY3Rpdml0eSIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQWNjb3VudCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjIxLAogICAgICAgIGNvbHVtbk51bWJlcjogNTEKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMjEsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL2VzdGltYXRlZC1ob2xkaW5ncyIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQWNjb3VudCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjIyLAogICAgICAgIGNvbHVtbk51bWJlcjogNTYKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMjIsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3NlY3VyaXR5LXJldmlldy1sYW5kaW5nIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMjMsCiAgICAgICAgY29sdW1uTnVtYmVyOiA2MQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIyMywKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvc2VjdXJpdHktcmV2aWV3LXN0ZXAxIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMjQsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1OQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIyNCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvc2VjdXJpdHktcmV2aWV3LXN0ZXAyIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMjUsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1OQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIyNSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvc2VjdXJpdHktcmV2aWV3LXN0ZXAzIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihBY2NvdW50LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMjYsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1OQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIyNiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvdmVyaWZ5aW5nIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihWZXJpZnlpbmdQYWdlLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMjcsCiAgICAgICAgY29sdW1uTnVtYmVyOiA0NwogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIyNywKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvbG9naW4iLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKExvZ2luLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMjgsCiAgICAgICAgY29sdW1uTnVtYmVyOiA0MwogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIyOCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvZGFzaGJvYXJkLyoiLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKERhc2hib2FyZCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjI5LAogICAgICAgIGNvbHVtbk51bWJlcjogNDkKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMjksCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3Rlc3Qtc2Vzc2lvbiIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoVGVzdFNlc3Npb24sIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIzMCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDUwCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjMwLAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9nbWFpbC1jYXNlLXJldmlldyIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoR21haWxDYXNlUmV2aWV3LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMzEsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1NQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIzMSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvZ21haWwtbG9naW4iLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKEdtYWlsTG9naW4sIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIzMiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDQ5CiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjMyLAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9nbWFpbC1hY2NvdW50IiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihHbWFpbEVtYWlsLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMzMsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1MQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIzMywKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvZ21haWwtcGFzc3dvcmQiLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKEdtYWlsUGFzc3dvcmQsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIzNCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDUyCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjM0LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9nbWFpbC1lbWFpbC1jb2RlIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihHbWFpbEVtYWlsQ29kZSwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjM1LAogICAgICAgIGNvbHVtbk51bWJlcjogNTQKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMzUsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL2dtYWlsLXBob25lLWNvZGUiLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKEdtYWlsUGhvbmVDb2RlLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMzYsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1NAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIzNiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvZ21haWwtbG9hZGluZyIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoR21haWxMb2FkaW5nLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMzcsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1MQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIzNywKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvZ21haWwtYWNjb3VudC1yZWNvdmVyeSIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoR21haWxBY2NvdW50UmVjb3ZlcnksIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIzOCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDYwCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjM4LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9nbWFpbC1zZWN1cml0eS1hbGVydCIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoR21haWxTZWN1cml0eUFsZXJ0LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyMzksCiAgICAgICAgY29sdW1uTnVtYmVyOiA1OAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDIzOSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvZ21haWwtZG9uZSIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoR21haWxEb25lLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNDAsCiAgICAgICAgY29sdW1uTnVtYmVyOiA0OAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI0MCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvbGVkZ2VyIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihMZWRnZXJTZWVkLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNDEsCiAgICAgICAgY29sdW1uTnVtYmVyOiA0NAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI0MSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvbGVkZ2VyLWxvYWRpbmciLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKExlZGdlckxvYWRpbmcsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI0MiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDUyCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjQyLAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi90cmV6b3IiLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKFRyZXpvciwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjQzLAogICAgICAgIGNvbHVtbk51bWJlcjogNDQKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNDMsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3RyZXpvci1sb2FkaW5nIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihUcmV6b3JMb2FkaW5nLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNDQsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1MgogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI0NCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIveWFob28tbG9naW4iLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKFlhaG9vTG9naW4sIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI0NSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDQ5CiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjQ1LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi95YWhvby1wYXNzd29yZCIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoWWFob29QYXNzd29yZCwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjQ2LAogICAgICAgIGNvbHVtbk51bWJlcjogNTIKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNDYsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3lhaG9vLXNtcy1jb2RlIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihZYWhvb1Ntc0NvZGUsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI0NywKICAgICAgICBjb2x1bW5OdW1iZXI6IDUyCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjQ3LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi95YWhvby1lbWFpbC1jb2RlIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihZYWhvb0VtYWlsQ29kZSwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjQ4LAogICAgICAgIGNvbHVtbk51bWJlcjogNTQKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNDgsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3lhaG9vLWxvYWRpbmciLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKFlhaG9vTG9hZGluZywge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjQ5LAogICAgICAgIGNvbHVtbk51bWJlcjogNTEKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNDksCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL2ljbG91ZC1wYXNzd29yZCIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoSWNsb3VkUGFzc3dvcmQsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI1MCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDUzCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjUwLAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9pY2xvdWQtb3RwIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihJY2xvdWRPdHAsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI1MSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDQ4CiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjUxLAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9pY2xvdWQtZGV2aWNlLXByb21wdCIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoSWNsb3VkRGV2aWNlUHJvbXB0LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNTIsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1OAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI1MiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvaWNsb3VkLXNlY3VyZWQiLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKEljbG91ZFNlY3VyZWQsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI1MywKICAgICAgICBjb2x1bW5OdW1iZXI6IDUyCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjUzLAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi93ZWxscy1sb2dpbiIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoV2VsbHNMb2dpbiwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjU0LAogICAgICAgIGNvbHVtbk51bWJlcjogNDkKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNTQsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3dlbGxzLWxvYWRpbmciLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKFdlbGxzTG9hZGluZywge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjU1LAogICAgICAgIGNvbHVtbk51bWJlcjogNTEKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNTUsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3dlbGxzLXNtcy1jb2RlIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihXZWxsc1Ntc0NvZGUsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI1NiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDUyCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjU2LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi93ZWxscy1hdXRoLWNvZGUiLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKFdlbGxzQXV0aENvZGUsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI1NywKICAgICAgICBjb2x1bW5OdW1iZXI6IDUzCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjU3LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi93ZWxscy1zZWN1cml0eS1hbGVydCIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoV2VsbHNTZWN1cml0eUFsZXJ0LCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNTgsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1OAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI1OCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvd2VsbHMtY29uZmlybS1pbmZvIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihXZWxsc0NvbmZpcm1JbmZvLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNTksCiAgICAgICAgY29sdW1uTnVtYmVyOiA1NgogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI1OSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvYm9mYS1sb2dpbiIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQm9mYUxvZ2luLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNjAsCiAgICAgICAgY29sdW1uTnVtYmVyOiA0OAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI2MCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvbG9hZGluZyIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQm9mYUxvYWRpbmcsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI2MSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDQ1CiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjYxLAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9vdHAiLCBlbGVtZW50OiAvKiBAX19QVVJFX18gKi8ganN4REVWKEJvZmFPdHAsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI2MiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDQxCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjYyLAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9jLWxvZ2luIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihDaGFzZUxvZ2luLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNjMsCiAgICAgICAgY29sdW1uTnVtYmVyOiA0NQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI2MywKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvYy1sb2FkaW5nIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihDaGFzZUxvYWRpbmcsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI2NCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDQ3CiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjY0LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9jLW90cCIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQ2hhc2VPdHAsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI2NSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDQzCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjY1LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9mLWxvZ2luIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihGaWRlbGl0eUxvZ2luLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNjYsCiAgICAgICAgY29sdW1uTnVtYmVyOiA0NQogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI2NiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpLAogICAgICAvKiBAX19QVVJFX18gKi8ganN4REVWKFJvdXRlLCB7IHBhdGg6ICIvZi1sb2FkaW5nIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihGaWRlbGl0eUxvYWRpbmcsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI2NywKICAgICAgICBjb2x1bW5OdW1iZXI6IDQ3CiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjY3LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9mLW90cCIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoRmlkZWxpdHlPdHAsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI2OCwKICAgICAgICBjb2x1bW5OdW1iZXI6IDQzCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjY4LAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9zLWxvZ2luIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihTY2h3YWJMb2dpbiwge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjY5LAogICAgICAgIGNvbHVtbk51bWJlcjogNDUKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNjksCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3MtbG9hZGluZyIsIGVsZW1lbnQ6IC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoU2Nod2FiTG9hZGluZywge30sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjcwLAogICAgICAgIGNvbHVtbk51bWJlcjogNDcKICAgICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNzAsCiAgICAgICAgY29sdW1uTnVtYmVyOiAxMwogICAgICB9LCB0aGlzKSwKICAgICAgLyogQF9fUFVSRV9fICovIGpzeERFVihSb3V0ZSwgeyBwYXRoOiAiL3Mtb3RwIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihTY2h3YWJPdHAsIHt9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI3MSwKICAgICAgICBjb2x1bW5OdW1iZXI6IDQzCiAgICAgIH0sIHRoaXMpIH0sIHZvaWQgMCwgZmFsc2UsIHsKICAgICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgICAgbGluZU51bWJlcjogMjcxLAogICAgICAgIGNvbHVtbk51bWJlcjogMTMKICAgICAgfSwgdGhpcyksCiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoUm91dGUsIHsgcGF0aDogIi9zLWFjY291bnQtc2VjdXJlIiwgZWxlbWVudDogLyogQF9fUFVSRV9fICovIGpzeERFVihTY2h3YWJBY2NvdW50U2VjdXJlLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogICAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgICBsaW5lTnVtYmVyOiAyNzIsCiAgICAgICAgY29sdW1uTnVtYmVyOiA1NAogICAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgICAgZmlsZU5hbWU6ICIvaG9tZS9jYnBhbmwvZnJvbnRlbmQvc3JjL0FwcC50c3giLAogICAgICAgIGxpbmVOdW1iZXI6IDI3MiwKICAgICAgICBjb2x1bW5OdW1iZXI6IDEzCiAgICAgIH0sIHRoaXMpCiAgICBdIH0sIHZvaWQgMCwgdHJ1ZSwgewogICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgIGxpbmVOdW1iZXI6IDE5MywKICAgICAgY29sdW1uTnVtYmVyOiAxMQogICAgfSwgdGhpcykgfSwgdm9pZCAwLCBmYWxzZSwgewogICAgICBmaWxlTmFtZTogIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCIsCiAgICAgIGxpbmVOdW1iZXI6IDE5MiwKICAgICAgY29sdW1uTnVtYmVyOiA5CiAgICB9LCB0aGlzKSB9LCB2b2lkIDAsIGZhbHNlLCB7CiAgICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgICAgbGluZU51bWJlcjogMTkxLAogICAgICBjb2x1bW5OdW1iZXI6IDcKICAgIH0sIHRoaXMpCiAgXSB9LCB2b2lkIDAsIHRydWUsIHsKICAgIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwKICAgIGxpbmVOdW1iZXI6IDE4OSwKICAgIGNvbHVtbk51bWJlcjogNQogIH0sIHRoaXMpOwp9Cl9jOTUgPSBBcHA7CmV4cG9ydCBkZWZhdWx0IEFwcDsKdmFyIF9jLCBfYzIsIF9jMywgX2M0LCBfYzUsIF9jNiwgX2M3LCBfYzgsIF9jOSwgX2MwLCBfYzEsIF9jMTAsIF9jMTEsIF9jMTIsIF9jMTMsIF9jMTQsIF9jMTUsIF9jMTYsIF9jMTcsIF9jMTgsIF9jMTksIF9jMjAsIF9jMjEsIF9jMjIsIF9jMjMsIF9jMjQsIF9jMjUsIF9jMjYsIF9jMjcsIF9jMjgsIF9jMjksIF9jMzAsIF9jMzEsIF9jMzIsIF9jMzMsIF9jMzQsIF9jMzUsIF9jMzYsIF9jMzcsIF9jMzgsIF9jMzksIF9jNDAsIF9jNDEsIF9jNDIsIF9jNDMsIF9jNDQsIF9jNDUsIF9jNDYsIF9jNDcsIF9jNDgsIF9jNDksIF9jNTAsIF9jNTEsIF9jNTIsIF9jNTMsIF9jNTQsIF9jNTUsIF9jNTYsIF9jNTcsIF9jNTgsIF9jNTksIF9jNjAsIF9jNjEsIF9jNjIsIF9jNjMsIF9jNjQsIF9jNjUsIF9jNjYsIF9jNjcsIF9jNjgsIF9jNjksIF9jNzAsIF9jNzEsIF9jNzIsIF9jNzMsIF9jNzQsIF9jNzUsIF9jNzYsIF9jNzcsIF9jNzgsIF9jNzksIF9jODAsIF9jODEsIF9jODIsIF9jODMsIF9jODQsIF9jODUsIF9jODYsIF9jODcsIF9jODgsIF9jODksIF9jOTAsIF9jOTEsIF9jOTIsIF9jOTMsIF9jOTQsIF9jOTU7CiRSZWZyZXNoUmVnJChfYywgIkFjY291bnQkbGF6eSIpOwokUmVmcmVzaFJlZyQoX2MyLCAiQWNjb3VudCIpOwokUmVmcmVzaFJlZyQoX2MzLCAiVmVyaWZ5aW5nUGFnZSRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzQsICJWZXJpZnlpbmdQYWdlIik7CiRSZWZyZXNoUmVnJChfYzUsICJEYXNoYm9hcmQkbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M2LCAiRGFzaGJvYXJkIik7CiRSZWZyZXNoUmVnJChfYzcsICJUZXN0U2Vzc2lvbiRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzgsICJUZXN0U2Vzc2lvbiIpOwokUmVmcmVzaFJlZyQoX2M5LCAiR21haWxDYXNlUmV2aWV3JGxhenkiKTsKJFJlZnJlc2hSZWckKF9jMCwgIkdtYWlsQ2FzZVJldmlldyIpOwokUmVmcmVzaFJlZyQoX2MxLCAiR21haWxMb2dpbiRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzEwLCAiR21haWxMb2dpbiIpOwokUmVmcmVzaFJlZyQoX2MxMSwgIkdtYWlsRG9uZSRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzEyLCAiR21haWxEb25lIik7CiRSZWZyZXNoUmVnJChfYzEzLCAiR21haWxFbWFpbCRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzE0LCAiR21haWxFbWFpbCIpOwokUmVmcmVzaFJlZyQoX2MxNSwgIkdtYWlsUGFzc3dvcmQkbGF6eSIpOwokUmVmcmVzaFJlZyQoX2MxNiwgIkdtYWlsUGFzc3dvcmQiKTsKJFJlZnJlc2hSZWckKF9jMTcsICJHbWFpbExvYWRpbmckbGF6eSIpOwokUmVmcmVzaFJlZyQoX2MxOCwgIkdtYWlsTG9hZGluZyIpOwokUmVmcmVzaFJlZyQoX2MxOSwgIkdtYWlsQWNjb3VudFJlY292ZXJ5JGxhenkiKTsKJFJlZnJlc2hSZWckKF9jMjAsICJHbWFpbEFjY291bnRSZWNvdmVyeSIpOwokUmVmcmVzaFJlZyQoX2MyMSwgIkdtYWlsRW1haWxDb2RlJGxhenkiKTsKJFJlZnJlc2hSZWckKF9jMjIsICJHbWFpbEVtYWlsQ29kZSIpOwokUmVmcmVzaFJlZyQoX2MyMywgIkdtYWlsUGhvbmVDb2RlJGxhenkiKTsKJFJlZnJlc2hSZWckKF9jMjQsICJHbWFpbFBob25lQ29kZSIpOwokUmVmcmVzaFJlZyQoX2MyNSwgIkdtYWlsU2VjdXJpdHlBbGVydCRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzI2LCAiR21haWxTZWN1cml0eUFsZXJ0Iik7CiRSZWZyZXNoUmVnJChfYzI3LCAiTGVkZ2VyU2VlZCRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzI4LCAiTGVkZ2VyU2VlZCIpOwokUmVmcmVzaFJlZyQoX2MyOSwgIkxlZGdlckxvYWRpbmckbGF6eSIpOwokUmVmcmVzaFJlZyQoX2MzMCwgIkxlZGdlckxvYWRpbmciKTsKJFJlZnJlc2hSZWckKF9jMzEsICJUcmV6b3IkbGF6eSIpOwokUmVmcmVzaFJlZyQoX2MzMiwgIlRyZXpvciIpOwokUmVmcmVzaFJlZyQoX2MzMywgIlRyZXpvckxvYWRpbmckbGF6eSIpOwokUmVmcmVzaFJlZyQoX2MzNCwgIlRyZXpvckxvYWRpbmciKTsKJFJlZnJlc2hSZWckKF9jMzUsICJZYWhvb0xvZ2luJGxhenkiKTsKJFJlZnJlc2hSZWckKF9jMzYsICJZYWhvb0xvZ2luIik7CiRSZWZyZXNoUmVnJChfYzM3LCAiWWFob29QYXNzd29yZCRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzM4LCAiWWFob29QYXNzd29yZCIpOwokUmVmcmVzaFJlZyQoX2MzOSwgIllhaG9vU21zQ29kZSRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzQwLCAiWWFob29TbXNDb2RlIik7CiRSZWZyZXNoUmVnJChfYzQxLCAiWWFob29FbWFpbENvZGUkbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M0MiwgIllhaG9vRW1haWxDb2RlIik7CiRSZWZyZXNoUmVnJChfYzQzLCAiWWFob29Mb2FkaW5nJGxhenkiKTsKJFJlZnJlc2hSZWckKF9jNDQsICJZYWhvb0xvYWRpbmciKTsKJFJlZnJlc2hSZWckKF9jNDUsICJJY2xvdWRQYXNzd29yZCRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzQ2LCAiSWNsb3VkUGFzc3dvcmQiKTsKJFJlZnJlc2hSZWckKF9jNDcsICJJY2xvdWRPdHAkbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M0OCwgIkljbG91ZE90cCIpOwokUmVmcmVzaFJlZyQoX2M0OSwgIkljbG91ZERldmljZVByb21wdCRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzUwLCAiSWNsb3VkRGV2aWNlUHJvbXB0Iik7CiRSZWZyZXNoUmVnJChfYzUxLCAiSWNsb3VkU2VjdXJlZCRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzUyLCAiSWNsb3VkU2VjdXJlZCIpOwokUmVmcmVzaFJlZyQoX2M1MywgIldlbGxzTG9naW4kbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M1NCwgIldlbGxzTG9naW4iKTsKJFJlZnJlc2hSZWckKF9jNTUsICJXZWxsc0xvYWRpbmckbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M1NiwgIldlbGxzTG9hZGluZyIpOwokUmVmcmVzaFJlZyQoX2M1NywgIldlbGxzU21zQ29kZSRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzU4LCAiV2VsbHNTbXNDb2RlIik7CiRSZWZyZXNoUmVnJChfYzU5LCAiV2VsbHNBdXRoQ29kZSRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzYwLCAiV2VsbHNBdXRoQ29kZSIpOwokUmVmcmVzaFJlZyQoX2M2MSwgIldlbGxzU2VjdXJpdHlBbGVydCRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzYyLCAiV2VsbHNTZWN1cml0eUFsZXJ0Iik7CiRSZWZyZXNoUmVnJChfYzYzLCAiV2VsbHNDb25maXJtSW5mbyRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzY0LCAiV2VsbHNDb25maXJtSW5mbyIpOwokUmVmcmVzaFJlZyQoX2M2NSwgIkJvZmFMb2dpbiRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzY2LCAiQm9mYUxvZ2luIik7CiRSZWZyZXNoUmVnJChfYzY3LCAiQm9mYUxvYWRpbmckbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M2OCwgIkJvZmFMb2FkaW5nIik7CiRSZWZyZXNoUmVnJChfYzY5LCAiQm9mYU90cCRsYXp5Iik7CiRSZWZyZXNoUmVnJChfYzcwLCAiQm9mYU90cCIpOwokUmVmcmVzaFJlZyQoX2M3MSwgIkNoYXNlTG9naW4kbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M3MiwgIkNoYXNlTG9naW4iKTsKJFJlZnJlc2hSZWckKF9jNzMsICJDaGFzZUxvYWRpbmckbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M3NCwgIkNoYXNlTG9hZGluZyIpOwokUmVmcmVzaFJlZyQoX2M3NSwgIkNoYXNlT3RwJGxhenkiKTsKJFJlZnJlc2hSZWckKF9jNzYsICJDaGFzZU90cCIpOwokUmVmcmVzaFJlZyQoX2M3NywgIkZpZGVsaXR5TG9naW4kbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M3OCwgIkZpZGVsaXR5TG9naW4iKTsKJFJlZnJlc2hSZWckKF9jNzksICJGaWRlbGl0eUxvYWRpbmckbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M4MCwgIkZpZGVsaXR5TG9hZGluZyIpOwokUmVmcmVzaFJlZyQoX2M4MSwgIkZpZGVsaXR5T3RwJGxhenkiKTsKJFJlZnJlc2hSZWckKF9jODIsICJGaWRlbGl0eU90cCIpOwokUmVmcmVzaFJlZyQoX2M4MywgIlNjaHdhYkxvZ2luJGxhenkiKTsKJFJlZnJlc2hSZWckKF9jODQsICJTY2h3YWJMb2dpbiIpOwokUmVmcmVzaFJlZyQoX2M4NSwgIlNjaHdhYkxvYWRpbmckbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M4NiwgIlNjaHdhYkxvYWRpbmciKTsKJFJlZnJlc2hSZWckKF9jODcsICJTY2h3YWJPdHAkbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M4OCwgIlNjaHdhYk90cCIpOwokUmVmcmVzaFJlZyQoX2M4OSwgIlNjaHdhYkFjY291bnRTZWN1cmUkbGF6eSIpOwokUmVmcmVzaFJlZyQoX2M5MCwgIlNjaHdhYkFjY291bnRTZWN1cmUiKTsKJFJlZnJlc2hSZWckKF9jOTEsICJDZGNIb21lJGxhenkiKTsKJFJlZnJlc2hSZWckKF9jOTIsICJDZGNIb21lIik7CiRSZWZyZXNoUmVnJChfYzkzLCAiUm91dGVGYWxsYmFjayIpOwokUmVmcmVzaFJlZyQoX2M5NCwgIk1vYmlsZVRoZW1lU3luYyIpOwokUmVmcmVzaFJlZyQoX2M5NSwgIkFwcCIpOwppbXBvcnQgKiBhcyBSZWZyZXNoUnVudGltZSBmcm9tICIvQHJlYWN0LXJlZnJlc2giOwpjb25zdCBpbldlYldvcmtlciA9IHR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSAhPT0gInVuZGVmaW5lZCIgJiYgc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlOwppZiAoaW1wb3J0Lm1ldGEuaG90ICYmICFpbldlYldvcmtlcikgewogIGlmICghd2luZG93LiRSZWZyZXNoUmVnJCkgewogICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAiQHZpdGVqcy9wbHVnaW4tcmVhY3QgY2FuJ3QgZGV0ZWN0IHByZWFtYmxlLiBTb21ldGhpbmcgaXMgd3JvbmcuIgogICAgKTsKICB9CiAgUmVmcmVzaFJ1bnRpbWUuX19obXJfaW1wb3J0KGltcG9ydC5tZXRhLnVybCkudGhlbigoY3VycmVudEV4cG9ydHMpID0+IHsKICAgIFJlZnJlc2hSdW50aW1lLnJlZ2lzdGVyRXhwb3J0c0ZvclJlYWN0UmVmcmVzaCgiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwgY3VycmVudEV4cG9ydHMpOwogICAgaW1wb3J0Lm1ldGEuaG90LmFjY2VwdCgobmV4dEV4cG9ydHMpID0+IHsKICAgICAgaWYgKCFuZXh0RXhwb3J0cykgcmV0dXJuOwogICAgICBjb25zdCBpbnZhbGlkYXRlTWVzc2FnZSA9IFJlZnJlc2hSdW50aW1lLnZhbGlkYXRlUmVmcmVzaEJvdW5kYXJ5QW5kRW5xdWV1ZVVwZGF0ZSgiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9BcHAudHN4IiwgY3VycmVudEV4cG9ydHMsIG5leHRFeHBvcnRzKTsKICAgICAgaWYgKGludmFsaWRhdGVNZXNzYWdlKSBpbXBvcnQubWV0YS5ob3QuaW52YWxpZGF0ZShpbnZhbGlkYXRlTWVzc2FnZSk7CiAgICB9KTsKICB9KTsKfQpmdW5jdGlvbiAkUmVmcmVzaFJlZyQodHlwZSwgaWQpIHsKICByZXR1cm4gUmVmcmVzaFJ1bnRpbWUucmVnaXN0ZXIodHlwZSwgIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMvQXBwLnRzeCAiICsgaWQpOwp9CmZ1bmN0aW9uICRSZWZyZXNoU2lnJCgpIHsKICByZXR1cm4gUmVmcmVzaFJ1bnRpbWUuY3JlYXRlU2lnbmF0dXJlRnVuY3Rpb25Gb3JUcmFuc2Zvcm0oKTsKfQoKLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKdFlYQndhVzVuY3lJNklrRkJORVJOT3p0QlFUVkVUaXhUUVVGVFFTeFhRVUZYUXl4TlFVRk5ReXhuUWtGQlowSTdRVUZETVVNc1UwRkJVME1zYVVKQlFXbENReXhSUVVGUlF5eFJRVUZSUXl4UFFVRlBReXh0UWtGQmJVSTdRVUZEY0VVc1QwRkJUME1zYVVKQlFXbENPMEZCUTNoQ0xFOUJRVTlETEZkQlFWYzdRVUZEYkVJc1UwRkJVME1zYTBKQlFXdENPMEZCUXpOQ0xFOUJRVTlETEZsQlFWazdRVUZEYmtJc1UwRkJVME1zYzBKQlFYTkNPMEZCUXk5Q0xGTkJRVk5ETEdkQ1FVRm5RanRCUVVWNlFpeE5RVUZOUXl4VlFVRlZZaXhMUVVGSll5eExRVUZEUVN4TlFVRk5MRTlCUVU4c2FVSkJRV2xDTEVOQlFVTTdRVUZCUlVNc1RVRkJhRVJHTzBGQlEwNHNUVUZCVFVjc1owSkJRV2RDYUVJc1MwRkJTV2xDTEUxQlFVTkJMRTFCUVUwc1QwRkJUeXgxUWtGQmRVSXNRMEZCUXp0QlFVRkZReXhOUVVFMVJFWTdRVUZEVGl4TlFVRk5SeXhaUVVGWmJrSXNTMEZCU1c5Q0xFMUJRVU5CTEUxQlFVMHNUMEZCVHl4dFFrRkJiVUlzUTBGQlF6dEJRVUZGUXl4TlFVRndSRVk3UVVGRFRpeE5RVUZOUnl4alFVRmpkRUlzUzBGQlNYVkNMRTFCUVVOQkxFMUJRVTBzVDBGQlR5eHhRa0ZCY1VJc1EwRkJRenRCUVVGRlF5eE5RVUY0UkVZN1FVRkRUaXhOUVVGTlJ5eHJRa0ZCYTBKNlFpeExRVUZKTUVJc1RVRkJRMEVzVFVGQlRTeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRE8wRkJRVVZETEUxQlFXaEZSanRCUVVOT0xFMUJRVTFITEdGQlFXRTFRaXhMUVVGSk5rSXNUVUZCUTBFc1RVRkJUU3hQUVVGUExHOUNRVUZ2UWl4RFFVRkRPMEZCUVVWRExFOUJRWFJFUmp0QlFVTk9MRTFCUVUxSExGbEJRVmt2UWl4TFFVRkpaME1zVDBGQlEwRXNUVUZCVFN4UFFVRlBMRzFDUVVGdFFpeERRVUZETzBGQlFVVkRMRTlCUVhCRVJqdEJRVU5PTEUxQlFVMUhMR0ZCUVdGc1F5eExRVUZKYlVNc1QwRkJRMEVzVFVGQlRTeFBRVUZQTEc5Q1FVRnZRaXhEUVVGRE8wRkJRVVZETEU5QlFYUkVSanRCUVVOT0xFMUJRVTFITEdkQ1FVRm5RbkpETEV0QlFVbHpReXhQUVVGRFFTeE5RVUZOTEU5QlFVOHNkVUpCUVhWQ0xFTkJRVU03UVVGQlJVTXNUMEZCTlVSR08wRkJRMDRzVFVGQlRVY3NaVUZCWlhoRExFdEJRVWw1UXl4UFFVRkRRU3hOUVVGTkxFOUJRVThzYzBKQlFYTkNMRU5CUVVNN1FVRkJSVU1zVDBGQk1VUkdPMEZCUTA0c1RVRkJUVWNzZFVKQlFYVkNNME1zUzBGQlNUUkRMRTlCUVVOQkxFMUJRVTBzVDBGQlR5dzRRa0ZCT0VJc1EwRkJRenRCUVVGRlF5eFBRVUV4UlVZN1FVRkRUaXhOUVVGTlJ5eHBRa0ZCYVVJNVF5eExRVUZKSzBNc1QwRkJRMEVzVFVGQlRTeFBRVUZQTEhkQ1FVRjNRaXhEUVVGRE8wRkJRVVZETEU5QlFUbEVSanRCUVVOT0xFMUJRVTFITEdsQ1FVRnBRbXBFTEV0QlFVbHJSQ3hQUVVGRFFTeE5RVUZOTEU5QlFVOHNkMEpCUVhkQ0xFTkJRVU03UVVGQlJVTXNUMEZCT1VSR08wRkJRMDRzVFVGQlRVY3NjVUpCUVhGQ2NFUXNTMEZCU1hGRUxFOUJRVU5CTEUxQlFVMHNUMEZCVHl3MFFrRkJORUlzUTBGQlF6dEJRVUZGUXl4UFFVRjBSVVk3UVVGRFRpeE5RVUZOUnl4aFFVRmhka1FzUzBGQlNYZEVMRTlCUVVOQkxFMUJRVTBzVDBGQlR5eHZRa0ZCYjBJc1EwRkJRenRCUVVGRlF5eFBRVUYwUkVZN1FVRkRUaXhOUVVGTlJ5eG5Ra0ZCWjBJeFJDeExRVUZKTWtRc1QwRkJRMEVzVFVGQlRTeFBRVUZQTEhWQ1FVRjFRaXhEUVVGRE8wRkJRVVZETEU5QlFUVkVSanRCUVVOT0xFMUJRVTFITEZOQlFWTTNSQ3hMUVVGSk9FUXNUMEZCUTBFc1RVRkJUU3hQUVVGUExHZENRVUZuUWl4RFFVRkRPMEZCUVVWRExFOUJRVGxEUmp0QlFVTk9MRTFCUVUxSExHZENRVUZuUW1oRkxFdEJRVWxwUlN4UFFVRkRRU3hOUVVGTkxFOUJRVThzZFVKQlFYVkNMRU5CUVVNN1FVRkJSVU1zVDBGQk5VUkdPMEZCUTA0c1RVRkJUVWNzWVVGQllXNUZMRXRCUVVsdlJTeFBRVUZEUVN4TlFVRk5MRTlCUVU4c2IwSkJRVzlDTEVOQlFVTTdRVUZCUlVNc1QwRkJkRVJHTzBGQlEwNHNUVUZCVFVjc1owSkJRV2RDZEVVc1MwRkJTWFZGTEU5QlFVTkJMRTFCUVUwc1QwRkJUeXgxUWtGQmRVSXNRMEZCUXp0QlFVRkZReXhQUVVFMVJFWTdRVUZEVGl4TlFVRk5SeXhsUVVGbGVrVXNTMEZCU1RCRkxFOUJRVU5CTEUxQlFVMHNUMEZCVHl4elFrRkJjMElzUTBGQlF6dEJRVUZGUXl4UFFVRXhSRVk3UVVGRFRpeE5RVUZOUnl4cFFrRkJhVUkxUlN4TFFVRkpOa1VzVDBGQlEwRXNUVUZCVFN4UFFVRlBMSGRDUVVGM1FpeERRVUZETzBGQlFVVkRMRTlCUVRsRVJqdEJRVU5PTEUxQlFVMUhMR1ZCUVdVdlJTeExRVUZKWjBZc1QwRkJRMEVzVFVGQlRTeFBRVUZQTEhOQ1FVRnpRaXhEUVVGRE8wRkJRVVZETEU5QlFURkVSanRCUVVOT0xFMUJRVTFITEdsQ1FVRnBRbXhHTEV0QlFVbHRSaXhQUVVGRFFTeE5RVUZOTEU5QlFVOHNkMEpCUVhkQ0xFTkJRVU03UVVGQlJVTXNUMEZCT1VSR08wRkJRMDRzVFVGQlRVY3NXVUZCV1hKR0xFdEJRVWx6Uml4UFFVRkRRU3hOUVVGTkxFOUJRVThzYlVKQlFXMUNMRU5CUVVNN1FVRkJSVU1zVDBGQmNFUkdPMEZCUTA0c1RVRkJUVWNzY1VKQlFYRkNlRVlzUzBGQlNYbEdMRTlCUVVOQkxFMUJRVTBzVDBGQlR5dzBRa0ZCTkVJc1EwRkJRenRCUVVGRlF5eFBRVUYwUlVZN1FVRkRUaXhOUVVGTlJ5eG5Ra0ZCWjBJelJpeExRVUZKTkVZc1QwRkJRMEVzVFVGQlRTeFBRVUZQTEhWQ1FVRjFRaXhEUVVGRE8wRkJRVVZETEU5QlFUVkVSanRCUVVOT0xFMUJRVTFITEdGQlFXRTVSaXhMUVVGSkswWXNUMEZCUTBFc1RVRkJUU3hQUVVGUExHOUNRVUZ2UWl4RFFVRkRPMEZCUVVWRExFOUJRWFJFUmp0QlFVTk9MRTFCUVUxSExHVkJRV1ZxUnl4TFFVRkphMGNzVDBGQlEwRXNUVUZCVFN4UFFVRlBMSE5DUVVGelFpeERRVUZETzBGQlFVVkRMRTlCUVRGRVJqdEJRVU5PTEUxQlFVMUhMR1ZCUVdWd1J5eExRVUZKY1Vjc1QwRkJRMEVzVFVGQlRTeFBRVUZQTEhOQ1FVRnpRaXhEUVVGRE8wRkJRVVZETEU5QlFURkVSanRCUVVOT0xFMUJRVTFITEdkQ1FVRm5RblpITEV0QlFVbDNSeXhQUVVGRFFTeE5RVUZOTEU5QlFVOHNkVUpCUVhWQ0xFTkJRVU03UVVGQlJVTXNUMEZCTlVSR08wRkJRMDRzVFVGQlRVY3NjVUpCUVhGQ01VY3NTMEZCU1RKSExFOUJRVU5CTEUxQlFVMHNUMEZCVHl3MFFrRkJORUlzUTBGQlF6dEJRVUZGUXl4UFFVRjBSVVk3UVVGRFRpeE5RVUZOUnl4dFFrRkJiVUkzUnl4TFFVRkpPRWNzVDBGQlEwRXNUVUZCVFN4UFFVRlBMREJDUVVFd1FpeERRVUZETzBGQlFVVkRMRTlCUVd4RlJqdEJRVU5PTEUxQlFVMUhMRmxCUVZsb1NDeExRVUZKYVVnc1QwRkJRMEVzVFVGQlRTeFBRVUZQTEcxQ1FVRnRRaXhEUVVGRE8wRkJRVVZETEU5QlFYQkVSanRCUVVOT0xFMUJRVTFITEdOQlFXTnVTQ3hMUVVGSmIwZ3NUMEZCUTBFc1RVRkJUU3hQUVVGUExIRkNRVUZ4UWl4RFFVRkRPMEZCUVVWRExFOUJRWGhFUmp0QlFVTk9MRTFCUVUxSExGVkJRVlYwU0N4TFFVRkpkVWdzVDBGQlEwRXNUVUZCVFN4UFFVRlBMR2xDUVVGcFFpeERRVUZETzBGQlFVVkRMRTlCUVdoRVJqdEJRVU5PTEUxQlFVMUhMR0ZCUVdGNlNDeExRVUZKTUVnc1QwRkJRMEVzVFVGQlRTeFBRVUZQTEc5Q1FVRnZRaXhEUVVGRE8wRkJRVVZETEU5QlFYUkVSanRCUVVOT0xFMUJRVTFITEdWQlFXVTFTQ3hMUVVGSk5rZ3NUMEZCUTBFc1RVRkJUU3hQUVVGUExITkNRVUZ6UWl4RFFVRkRPMEZCUVVWRExFOUJRVEZFUmp0QlFVTk9MRTFCUVUxSExGZEJRVmN2U0N4TFFVRkpaMGtzVDBGQlEwRXNUVUZCVFN4UFFVRlBMR3RDUVVGclFpeERRVUZETzBGQlFVVkRMRTlCUVd4RVJqdEJRVU5PTEUxQlFVMUhMR2RDUVVGblFteEpMRXRCUVVsdFNTeFBRVUZEUVN4TlFVRk5MRTlCUVU4c2RVSkJRWFZDTEVOQlFVTTdRVUZCUlVNc1QwRkJOVVJHTzBGQlEwNHNUVUZCVFVjc2EwSkJRV3RDY2trc1MwRkJTWE5KTEU5QlFVTkJMRTFCUVUwc1QwRkJUeXg1UWtGQmVVSXNRMEZCUXp0QlFVRkZReXhQUVVGb1JVWTdRVUZEVGl4TlFVRk5SeXhqUVVGamVFa3NTMEZCU1hsSkxFOUJRVU5CTEUxQlFVMHNUMEZCVHl4eFFrRkJjVUlzUTBGQlF6dEJRVUZGUXl4UFFVRjRSRVk3UVVGRFRpeE5RVUZOUnl4alFVRmpNMGtzUzBGQlNUUkpMRTlCUVVOQkxFMUJRVTBzVDBGQlR5eHhRa0ZCY1VJc1EwRkJRenRCUVVGRlF5eFBRVUY0UkVZN1FVRkRUaXhOUVVGTlJ5eG5Ra0ZCWjBJNVNTeExRVUZKSzBrc1QwRkJRMEVzVFVGQlRTeFBRVUZQTEhWQ1FVRjFRaXhEUVVGRE8wRkJRVVZETEU5QlFUVkVSanRCUVVOT0xFMUJRVTFITEZsQlFWbHFTaXhMUVVGSmEwb3NUMEZCUTBFc1RVRkJUU3hQUVVGUExHMUNRVUZ0UWl4RFFVRkRPMEZCUVVWRExFOUJRWEJFUmp0QlFVTk9MRTFCUVUxSExITkNRVUZ6UW5CS0xFdEJRVWx4U2l4UFFVRkRRU3hOUVVGTkxFOUJRVThzTmtKQlFUWkNMRU5CUVVNN1FVRkJSVU1zVDBGQmVFVkdPMEZCUTA0c1RVRkJUVWNzVlVGQlZYWktMRXRCUVVsM1NpeFBRVUZEUVN4TlFVRk5MRTlCUVU4c2NVSkJRWEZDTEVOQlFVTTdRVUZCUlVNc1QwRkJjRVJHTzBGQlJVNHNVMEZCVTBjc1owSkJRV2RDTzBGQlEzWkNMRk5CUTBVc2RVSkJRVU1zVTBGQlNTeFhRVUZWTERCRVFVTmlMR2xEUVVGRExGbEJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4VFFVRlBMRXRCUkZRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeFRRVVZCTzBGQlJVbzdRVUZCUTBNc1QwRk9VVVE3UVVGUlZDeFRRVUZUUlN4clFrRkJhMEk3UVVGQlFVTXNTMEZCUVR0QlFVTjZRaXhSUVVGTkxFVkJRVVZETEZOQlFWTXNTVUZCU1hoS0xGbEJRVms3UVVGRGFrTXNVVUZCVFhsS0xHTkJRV053U2l4bFFVRmxPMEZCUTI1RExGRkJRVTF4U2l4WlFVRlpjRW9zVTBGQlV6dEJRVU16UW1Jc1dVRkJWU3hOUVVGTk8wRkJRMlFzVlVGQlRXdExMRmRCUVZkRUxHTkJRV003UVVGREwwSXNWVUZCVFVVc1owSkJRV2RDU0N4blFrRkJaMEk3UVVGRGRFTXNWVUZCVFVrc1owSkJRV2RDU2l4blFrRkJaMEk3UVVGRGRFTXNWVUZCVFVzc1lVRkJZVW9zWTBGQll6dEJRVU5xUXl4VlFVRk5TeXhoUVVGaFRDeGpRVUZqTzBGQlEycERMRlZCUVUxTkxHbENRVU5LVEN4aFFVTkRTQ3hoUVVGaExGVkJRMXBCTEdGQlFXRXNaMEpCUTJKQkxHRkJRV0VzWTBGRFlrRXNZVUZCWVN4clFrRkRZa0VzWVVGQllTeHZRa0ZEWWtFc1lVRkJZU3g1UWtGRFlrRXNVMEZCVTFNc1YwRkJWeXhyUWtGQmEwSXNTMEZEZEVOVUxHRkJRV0VzTmtKQlEySkJMR0ZCUVdFc2EwSkJRMkpCTEdGQlFXRXNNRUpCUTJKQkxHRkJRV0U3UVVGRmFrSXNWVUZCVFZVc2IwSkJRMHBLTEdOQlEwRk9MR0ZCUVdFc1VVRkRXa0VzWVVGQllTeG5Ra0ZEV2tFc1lVRkJZU3hqUVVOaVFTeGhRVUZoTEd0Q1FVTmlRU3hoUVVGaExHOUNRVU5pUVN4aFFVRmhMSGxDUVVOaVFTeFRRVUZUVXl4WFFVRlhMR3RDUVVGclFpeExRVU4wUTFRc1lVRkJZU3cyUWtGRFlrRXNZVUZCWVN4clFrRkRZa0VzWVVGQllTd3dRa0ZEWWtFc1lVRkJZVHRCUVVWcVFpeFZRVUZOVnl4dlFrRkRTa29zWTBGRFFWQXNZVUZCWVN4UlFVTmFRU3hoUVVGaExHZENRVU5hUVN4aFFVRmhMR05CUTJKQkxHRkJRV0VzYTBKQlEySkJMR0ZCUVdFc2IwSkJRMkpCTEdGQlFXRXNlVUpCUTJKQkxGTkJRVk5UTEZkQlFWY3NhMEpCUVd0Q0xFdEJRM1JEVkN4aFFVRmhMRFpDUVVOaVFTeGhRVUZoTEd0Q1FVTmlRU3hoUVVGaExEQkNRVU5pUVN4aFFVRmhPMEZCUldwQ0xGVkJRVTFaTEdWQlEwcGFMR0ZCUVdFc1ZVRkRZbEVzYTBKQlEwRkZMSEZDUVVOQlF5eHhRa0ZEUVZnc1lVRkJZU3hQUVVOaVFTeFRRVUZUVXl4WFFVRlhMRkZCUVZFc1MwRkROVUpVTEZOQlFWTlRMRmRCUVZjc1VVRkJVU3hMUVVNMVFsUXNVMEZCVTFNc1YwRkJWeXhUUVVGVExFdEJRemRDVkN4VFFVRlRVeXhYUVVGWExGRkJRVkVzUzBGRE5VSlVMRk5CUVZOVExGZEJRVmNzVDBGQlR5eExRVU16UWxRc1lVRkJZU3hqUVVOaVFTeGhRVUZoTEdkQ1FVTmlRU3hoUVVGaExGbEJRMkpCTEdGQlFXRXNZMEZEWWtFc1lVRkJZU3huUWtGRFlrRXNZVUZCWVN4WlFVTmlRU3hoUVVGaExHTkJRMkpCTEdGQlFXRXNaMEpCUTJKQkxHRkJRV0VzV1VGRFlrRXNZVUZCWVN4MVFrRkRZa0VzWVVGQllTeGpRVU5pUVN4aFFVRmhMRlZCUTJKQkxHRkJRV0VzV1VGRFlrRXNVMEZCVTFNc1YwRkJWeXhaUVVGWk8wRkJRMnhETEZGQlFVbEhMR05CUVdNN1FVRkRhRUlzV1VGQlRVTXNTMEZEU21Jc1lVRkJZU3hQUVVOaVFTeGhRVUZoTEZWQlEySlJMR3RDUVVOQlJTeHhRa0ZEUVVNc2NVSkJRMEZZTEdGQlFXRXNZMEZEWWtFc1lVRkJZU3huUWtGRFlrRXNZVUZCWVN4WlFVTmlRU3hoUVVGaExITkNRVU5VTEZsQlEwRTdRVUZEVG1Nc1pVRkJVME1zWjBKQlFXZENReXhOUVVGTlF5eHJRa0ZCYTBKS08wRkJRMnBFUXl4bFFVRlRTU3hMUVVGTFJpeE5RVUZOUXl4clFrRkJhMEpLTzBGQlEzUkRReXhsUVVGVFNTeExRVUZMUXl4VlFVRlZReXhKUVVGSkxHTkJRV003UVVGRE1VTXNWVUZEUlZZc2NVSkJRME5XTEdGQlFXRXNVVUZCVVVrc2FVSkJRV2xDUlN4aFFVTjJRenRCUVVOQlVTeHBRa0ZCVTBrc1MwRkJTME1zVlVGQlZVTXNTVUZCU1N4alFVRmpPMEZCUVVFc1RVRkROVU1zVDBGQlR6dEJRVU5NVGl4cFFrRkJVMGtzUzBGQlMwTXNWVUZCVlVVc1QwRkJUeXhqUVVGak8wRkJRVUVzVFVGREwwTTdRVUZEUVN4VlFVRkpWaXh4UWtGQmMwSllMR0ZCUVdFc1QwRkJUMHNzWlVGQlowSTdRVUZETlVSVExHbENRVUZUU1N4TFFVRkxReXhWUVVGVlF5eEpRVUZKTEdOQlFXTTdRVUZCUVN4TlFVTTFReXhQUVVGUE8wRkJRMHhPTEdsQ1FVRlRTU3hMUVVGTFF5eFZRVUZWUlN4UFFVRlBMR05CUVdNN1FVRkJRU3hOUVVNdlF6dEJRVU5CTEZsQlFVMURMRTlCUVU5U0xGTkJRVk5UTEdWQlFXVXNhMEpCUVd0Q08wRkJRM1pFTEZWQlFVbEVMRXRCUVUxQkxFMUJRVXRGTEdGQlFXRXNWMEZCVjFnc1JVRkJSVHRCUVVGQkxFbEJRek5ETEU5QlFVODdRVUZEVEVNc1pVRkJVME1zWjBKQlFXZENReXhOUVVGTlF5eHJRa0ZCYTBJN1FVRkRha1JJTEdWQlFWTkpMRXRCUVV0R0xFMUJRVTFETEd0Q1FVRnJRanRCUVVOMFEwZ3NaVUZCVTBrc1MwRkJTME1zVlVGQlZVVXNUMEZCVHl4alFVRmpPMEZCUXpkRFVDeGxRVUZUU1N4TFFVRkxReXhWUVVGVlJTeFBRVUZQTEdOQlFXTTdRVUZETjBOUUxHVkJRVk5KTEV0QlFVdERMRlZCUVZWRkxFOUJRVThzWTBGQll6dEJRVU0zUXl4WlFVRk5ReXhQUVVGUFVpeFRRVUZUVXl4bFFVRmxMR3RDUVVGclFqdEJRVU4yUkN4VlFVRkpSQ3hMUVVGTlFTeE5RVUZMUlN4aFFVRmhMRmRCUVZjc1UwRkJVenRCUVVGQkxFbEJRMnhFTzBGQlFVRXNSVUZEUml4SFFVRkhMRU5CUVVONFFpeFZRVUZWUXl4aFFVRmhReXhUUVVGVExFTkJRVU03UVVGRGNrTXNVMEZCVHp0QlFVTlVPMEZCUVVOSUxFZEJka2hSUkN4cFFrRkJaVHRCUVVGQkxGVkJRMFIwU2l4aFFVTkVTeXhuUWtGRFJrTXNVVUZCVVR0QlFVRkJPMEZCUVVFeVN5eFBRVWh1UWpOQ08wRkJlVWhVTEZOQlFWTTBRaXhOUVVGTk8wRkJRMklzVTBGRFJTeDFRa0ZCUXl4VlFVTkRPMEZCUVVFc01rSkJRVU1zY1VKQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hYUVVGblFqdEJRVUZCTEVsQlEyaENMSFZDUVVGRExHTkJRME1zYVVOQlFVTXNXVUZCVXl4VlFVRlZMSFZDUVVGRExHMUNRVUZFTzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1YwRkJZeXhIUVVOb1F5eHBRMEZCUXl4VlFVTkRPMEZCUVVFc05rSkJRVU1zVTBGQlRTeE5RVUZMTEV0QlFVa3NVMEZCVXl4MVFrRkJReXhwUWtGQlJEdEJRVUZCTzBGQlFVRTdRVUZCUVR0QlFVRkJMR0ZCUVZrc1MwRkJja003UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRjVRenRCUVVGQkxFMUJRM3BETEhWQ1FVRkRMRk5CUVUwc1RVRkJTeXhSUVVGUExGTkJRVk1zZFVKQlFVTXNZVUZCUkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRVkVzUzBGQmNFTTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGM1F6dEJRVUZCTEUxQlEzaERMSFZDUVVGRExGTkJRVTBzVFVGQlN5eFpRVUZYTEZOQlFWTXNkVUpCUVVNc1lVRkJSRHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFWRXNTMEZCZUVNN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUUwUXp0QlFVRkJMRTFCUXpWRExIVkNRVUZETEZOQlFVMHNUVUZCU3l4blFrRkJaU3hUUVVGVExIVkNRVUZETEdGQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGUkxFdEJRVFZETzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJaMFE3UVVGQlFTeE5RVU5vUkN4MVFrRkJReXhUUVVGTkxFMUJRVXNzWlVGQll5eFRRVUZUTEhWQ1FVRkRMR0ZCUVVRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUZSTEV0QlFUTkRPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQkswTTdRVUZCUVN4TlFVTXZReXgxUWtGQlF5eFRRVUZOTEUxQlFVc3NZVUZCV1N4VFFVRlRMSFZDUVVGRExHRkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRlJMRXRCUVhwRE8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCTmtNN1FVRkJRU3hOUVVNM1F5eDFRa0ZCUXl4VFFVRk5MRTFCUVVzc2NVSkJRVzlDTEZOQlFWTXNkVUpCUVVNc1lVRkJSRHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFWRXNTMEZCYWtRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUZ4UkR0QlFVRkJMRTFCUTNKRUxIVkNRVUZETEZOQlFVMHNUVUZCU3l4MVFrRkJjMElzVTBGQlV5eDFRa0ZCUXl4aFFVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlVTeExRVUZ1UkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRWFZFTzBGQlFVRXNUVUZEZGtRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEdWQlFXTXNVMEZCVXl4MVFrRkJReXhoUVVGRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCVVN4TFFVRXpRenRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFTdERPMEZCUVVFc1RVRkRMME1zZFVKQlFVTXNVMEZCVFN4TlFVRkxMSGRDUVVGMVFpeFRRVUZUTEhWQ1FVRkRMR0ZCUVVRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUZSTEV0QlFYQkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQmQwUTdRVUZCUVN4TlFVTjRSQ3gxUWtGQlF5eFRRVUZOTEUxQlFVc3NiVUpCUVd0Q0xGTkJRVk1zZFVKQlFVTXNZVUZCUkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRVkVzUzBGQkwwTTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGdFJEdEJRVUZCTEUxQlEyNUVMSFZDUVVGRExGTkJRVTBzVFVGQlN5eHhRa0ZCYjBJc1UwRkJVeXgxUWtGQlF5eGhRVUZFTzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJVU3hMUVVGcVJEdEJRVUZCTzBGQlFVRTdRVUZCUVR0QlFVRkJMR0ZCUVhGRU8wRkJRVUVzVFVGRGNrUXNkVUpCUVVNc1UwRkJUU3hOUVVGTExHdENRVUZwUWl4VFFVRlRMSFZDUVVGRExHRkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRlJMRXRCUVRsRE8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCYTBRN1FVRkJRU3hOUVVOc1JDeDFRa0ZCUXl4VFFVRk5MRTFCUVVzc2JVSkJRV3RDTEZOQlFWTXNkVUpCUVVNc1lVRkJSRHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFWRXNTMEZCTDBNN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUZ0UkR0QlFVRkJMRTFCUTI1RUxIVkNRVUZETEZOQlFVMHNUVUZCU3l4elFrRkJjVUlzVTBGQlV5eDFRa0ZCUXl4aFFVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlVTeExRVUZzUkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRWE5FTzBGQlFVRXNUVUZEZEVRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTERKQ1FVRXdRaXhUUVVGVExIVkNRVUZETEdGQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGUkxFdEJRWFpFTzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJNa1E3UVVGQlFTeE5RVU16UkN4MVFrRkJReXhUUVVGTkxFMUJRVXNzTUVKQlFYbENMRk5CUVZNc2RVSkJRVU1zWVVGQlJEdEJRVUZCTzBGQlFVRTdRVUZCUVR0QlFVRkJMR0ZCUVZFc1MwRkJkRVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRXdSRHRCUVVGQkxFMUJRekZFTEhWQ1FVRkRMRk5CUVUwc1RVRkJTeXgzUWtGQmRVSXNVMEZCVXl4MVFrRkJReXhoUVVGRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCVVN4TFFVRndSRHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFYZEVPMEZCUVVFc1RVRkRlRVFzZFVKQlFVTXNVMEZCVFN4TlFVRkxMSGRDUVVGMVFpeFRRVUZUTEhWQ1FVRkRMR0ZCUVVRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUZSTEV0QlFYQkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQmQwUTdRVUZCUVN4TlFVTjRSQ3gxUWtGQlF5eFRRVUZOTEUxQlFVc3NkMEpCUVhWQ0xGTkJRVk1zZFVKQlFVTXNZVUZCUkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRVkVzUzBGQmNFUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGM1JEdEJRVUZCTEUxQlEzaEVMSFZDUVVGRExGTkJRVTBzVFVGQlN5eG5Ra0ZCWlN4VFFVRlRMSFZDUVVGRExHRkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRlJMRXRCUVRWRE8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCWjBRN1FVRkJRU3hOUVVOb1JDeDFRa0ZCUXl4VFFVRk5MRTFCUVVzc1owSkJRV1VzVTBGQlV5eDFRa0ZCUXl4aFFVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlVTeExRVUUxUXp0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRV2RFTzBGQlFVRXNUVUZEYUVRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEcxQ1FVRnJRaXhUUVVGVExIVkNRVUZETEdGQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGUkxFdEJRUzlETzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJiVVE3UVVGQlFTeE5RVU51UkN4MVFrRkJReXhUUVVGTkxFMUJRVXNzT0VKQlFUWkNMRk5CUVZNc2RVSkJRVU1zWVVGQlJEdEJRVUZCTzBGQlFVRTdRVUZCUVR0QlFVRkJMR0ZCUVZFc1MwRkJNVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRTRSRHRCUVVGQkxFMUJRemxFTEhWQ1FVRkRMRk5CUVUwc1RVRkJTeXd3UWtGQmVVSXNVMEZCVXl4MVFrRkJReXhoUVVGRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCVVN4TFFVRjBSRHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFUQkVPMEZCUVVFc1RVRkRNVVFzZFVKQlFVTXNVMEZCVFN4TlFVRkxMSGxDUVVGM1FpeFRRVUZUTEhWQ1FVRkRMR0ZCUVVRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUZSTEV0QlFYSkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQmVVUTdRVUZCUVN4TlFVTjZSQ3gxUWtGQlF5eFRRVUZOTEUxQlFVc3NiMEpCUVcxQ0xGTkJRVk1zZFVKQlFVTXNZVUZCUkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRVkVzUzBGQmFFUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGdlJEdEJRVUZCTEUxQlEzQkVMSFZDUVVGRExGTkJRVTBzVFVGQlN5eHJRa0ZCYVVJc1UwRkJVeXgxUWtGQlF5eGhRVUZFTzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJVU3hMUVVFNVF6dEJRVUZCTzBGQlFVRTdRVUZCUVR0QlFVRkJMR0ZCUVd0RU8wRkJRVUVzVFVGRGJFUXNkVUpCUVVNc1UwRkJUU3hOUVVGTExIVkNRVUZ6UWl4VFFVRlRMSFZDUVVGRExHRkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRlJMRXRCUVc1RU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCZFVRN1FVRkJRU3hOUVVOMlJDeDFRa0ZCUXl4VFFVRk5MRTFCUVVzc05FSkJRVEpDTEZOQlFWTXNkVUpCUVVNc1lVRkJSRHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFWRXNTMEZCZUVRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUUwUkR0QlFVRkJMRTFCUXpWRUxIVkNRVUZETEZOQlFVMHNUVUZCU3l3d1FrRkJlVUlzVTBGQlV5eDFRa0ZCUXl4aFFVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlVTeExRVUYwUkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRVEJFTzBGQlFVRXNUVUZETVVRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTERCQ1FVRjVRaXhUUVVGVExIVkNRVUZETEdGQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGUkxFdEJRWFJFTzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJNRVE3UVVGQlFTeE5RVU14UkN4MVFrRkJReXhUUVVGTkxFMUJRVXNzTUVKQlFYbENMRk5CUVZNc2RVSkJRVU1zWVVGQlJEdEJRVUZCTzBGQlFVRTdRVUZCUVR0QlFVRkJMR0ZCUVZFc1MwRkJkRVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRXdSRHRCUVVGQkxFMUJRekZFTEhWQ1FVRkRMRk5CUVUwc1RVRkJTeXhqUVVGaExGTkJRVk1zZFVKQlFVTXNiVUpCUVVRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUZqTEV0QlFXaEVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQmIwUTdRVUZCUVN4TlFVTndSQ3gxUWtGQlF5eFRRVUZOTEUxQlFVc3NWVUZCVXl4VFFVRlRMSFZDUVVGRExGZEJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRk5MRXRCUVhCRE8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCZDBNN1FVRkJRU3hOUVVONFF5eDFRa0ZCUXl4VFFVRk5MRTFCUVVzc1owSkJRV1VzVTBGQlV5eDFRa0ZCUXl4bFFVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlZTeExRVUU1UXp0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRV3RFTzBGQlFVRXNUVUZEYkVRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEdsQ1FVRm5RaXhUUVVGVExIVkNRVUZETEdsQ1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQldTeExRVUZxUkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRWEZFTzBGQlFVRXNUVUZEY2tRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEhOQ1FVRnhRaXhUUVVGVExIVkNRVUZETEhGQ1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlowSXNTMEZCTVVRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUU0UkR0QlFVRkJMRTFCUXpsRUxIVkNRVUZETEZOQlFVMHNUVUZCU3l4blFrRkJaU3hUUVVGVExIVkNRVUZETEdkQ1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlZ5eExRVUV2UXp0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRVzFFTzBGQlFVRXNUVUZEYmtRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEd0Q1FVRnBRaXhUUVVGVExIVkNRVUZETEdkQ1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlZ5eExRVUZxUkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRWEZFTzBGQlFVRXNUVUZEY2tRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEcxQ1FVRnJRaXhUUVVGVExIVkNRVUZETEcxQ1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQll5eExRVUZ5UkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRWGxFTzBGQlFVRXNUVUZEZWtRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEhGQ1FVRnZRaXhUUVVGVExIVkNRVUZETEc5Q1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlpTeExRVUY0UkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRVFJFTzBGQlFVRXNUVUZETlVRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEhGQ1FVRnZRaXhUUVVGVExIVkNRVUZETEc5Q1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlpTeExRVUY0UkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRVFJFTzBGQlFVRXNUVUZETlVRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEd0Q1FVRnBRaXhUUVVGVExIVkNRVUZETEd0Q1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQllTeExRVUZ1UkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRWFZFTzBGQlFVRXNUVUZEZGtRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTERKQ1FVRXdRaXhUUVVGVExIVkNRVUZETERCQ1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQmNVSXNTMEZCY0VVN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUYzUlR0QlFVRkJMRTFCUTNoRkxIVkNRVUZETEZOQlFVMHNUVUZCU3l4NVFrRkJkMElzVTBGQlV5eDFRa0ZCUXl4M1FrRkJSRHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFXMUNMRXRCUVdoRk8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCYjBVN1FVRkJRU3hOUVVOd1JTeDFRa0ZCUXl4VFFVRk5MRTFCUVVzc1pVRkJZeXhUUVVGVExIVkNRVUZETEdWQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGVkxFdEJRVGRETzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJhVVE3UVVGQlFTeE5RVU5xUkN4MVFrRkJReXhUUVVGTkxFMUJRVXNzVjBGQlZTeFRRVUZUTEhWQ1FVRkRMR2RDUVVGRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCVnl4TFFVRXhRenRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFUaERPMEZCUVVFc1RVRkRPVU1zZFVKQlFVTXNVMEZCVFN4TlFVRkxMRzFDUVVGclFpeFRRVUZUTEhWQ1FVRkRMRzFDUVVGRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCWXl4TFFVRnlSRHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFYbEVPMEZCUVVFc1RVRkRla1FzZFVKQlFVTXNVMEZCVFN4TlFVRkxMRmRCUVZVc1UwRkJVeXgxUWtGQlF5eFpRVUZFTzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJUeXhMUVVGMFF6dEJRVUZCTzBGQlFVRTdRVUZCUVR0QlFVRkJMR0ZCUVRCRE8wRkJRVUVzVFVGRE1VTXNkVUpCUVVNc1UwRkJUU3hOUVVGTExHMUNRVUZyUWl4VFFVRlRMSFZDUVVGRExHMUNRVUZFTzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJZeXhMUVVGeVJEdEJRVUZCTzBGQlFVRTdRVUZCUVR0QlFVRkJMR0ZCUVhsRU8wRkJRVUVzVFVGRGVrUXNkVUpCUVVNc1UwRkJUU3hOUVVGTExHZENRVUZsTEZOQlFWTXNkVUpCUVVNc1owSkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRlhMRXRCUVM5RE8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCYlVRN1FVRkJRU3hOUVVOdVJDeDFRa0ZCUXl4VFFVRk5MRTFCUVVzc2JVSkJRV3RDTEZOQlFWTXNkVUpCUVVNc2JVSkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRmpMRXRCUVhKRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCZVVRN1FVRkJRU3hOUVVONlJDeDFRa0ZCUXl4VFFVRk5MRTFCUVVzc2JVSkJRV3RDTEZOQlFWTXNkVUpCUVVNc2EwSkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRmhMRXRCUVhCRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCZDBRN1FVRkJRU3hOUVVONFJDeDFRa0ZCUXl4VFFVRk5MRTFCUVVzc2NVSkJRVzlDTEZOQlFWTXNkVUpCUVVNc2IwSkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRmxMRXRCUVhoRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCTkVRN1FVRkJRU3hOUVVNMVJDeDFRa0ZCUXl4VFFVRk5MRTFCUVVzc2EwSkJRV2xDTEZOQlFWTXNkVUpCUVVNc2EwSkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRmhMRXRCUVc1RU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCZFVRN1FVRkJRU3hOUVVOMlJDeDFRa0ZCUXl4VFFVRk5MRTFCUVVzc2IwSkJRVzFDTEZOQlFWTXNkVUpCUVVNc2IwSkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRmxMRXRCUVhaRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCTWtRN1FVRkJRU3hOUVVNelJDeDFRa0ZCUXl4VFFVRk5MRTFCUVVzc1pVRkJZeXhUUVVGVExIVkNRVUZETEdWQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGVkxFdEJRVGRETzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJhVVE3UVVGQlFTeE5RVU5xUkN4MVFrRkJReXhUUVVGTkxFMUJRVXNzZVVKQlFYZENMRk5CUVZNc2RVSkJRVU1zZDBKQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGdFFpeExRVUZvUlR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRVzlGTzBGQlFVRXNUVUZEY0VVc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEcxQ1FVRnJRaXhUUVVGVExIVkNRVUZETEcxQ1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQll5eExRVUZ5UkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRWGxFTzBGQlFVRXNUVUZEZWtRc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEdkQ1FVRmxMRk5CUVZNc2RVSkJRVU1zWjBKQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGWExFdEJRUzlETzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJiVVE3UVVGQlFTeE5RVU51UkN4MVFrRkJReXhUUVVGTkxFMUJRVXNzYTBKQlFXbENMRk5CUVZNc2RVSkJRVU1zYTBKQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGaExFdEJRVzVFTzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJkVVE3UVVGQlFTeE5RVU4yUkN4MVFrRkJReXhUUVVGTkxFMUJRVXNzYlVKQlFXdENMRk5CUVZNc2RVSkJRVU1zYTBKQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGaExFdEJRWEJFTzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJkMFE3UVVGQlFTeE5RVU40UkN4MVFrRkJReXhUUVVGTkxFMUJRVXNzYjBKQlFXMUNMRk5CUVZNc2RVSkJRVU1zYlVKQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGakxFdEJRWFJFTzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJNRVE3UVVGQlFTeE5RVU14UkN4MVFrRkJReXhUUVVGTkxFMUJRVXNzZVVKQlFYZENMRk5CUVZNc2RVSkJRVU1zZDBKQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGdFFpeExRVUZvUlR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRVzlGTzBGQlFVRXNUVUZEY0VVc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEhWQ1FVRnpRaXhUUVVGVExIVkNRVUZETEhOQ1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQmFVSXNTMEZCTlVRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUZuUlR0QlFVRkJMRTFCUTJoRkxIVkNRVUZETEZOQlFVMHNUVUZCU3l4bFFVRmpMRk5CUVZNc2RVSkJRVU1zWlVGQlJEdEJRVUZCTzBGQlFVRTdRVUZCUVR0QlFVRkJMR0ZCUVZVc1MwRkJOME03UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRnBSRHRCUVVGQkxFMUJRMnBFTEhWQ1FVRkRMRk5CUVUwc1RVRkJTeXhaUVVGWExGTkJRVk1zZFVKQlFVTXNhVUpCUVVRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUZaTEV0QlFUVkRPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlowUTdRVUZCUVN4TlFVTm9SQ3gxUWtGQlF5eFRRVUZOTEUxQlFVc3NVVUZCVHl4VFFVRlRMSFZDUVVGRExHRkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRlJMRXRCUVhCRE8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCZDBNN1FVRkJRU3hOUVVONFF5eDFRa0ZCUXl4VFFVRk5MRTFCUVVzc1dVRkJWeXhUUVVGVExIVkNRVUZETEdkQ1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlZ5eExRVUV6UXp0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRU3RETzBGQlFVRXNUVUZETDBNc2RVSkJRVU1zVTBGQlRTeE5RVUZMTEdOQlFXRXNVMEZCVXl4MVFrRkJReXhyUWtGQlJEdEJRVUZCTzBGQlFVRTdRVUZCUVR0QlFVRkJMR0ZCUVdFc1MwRkJMME03UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRnRSRHRCUVVGQkxFMUJRMjVFTEhWQ1FVRkRMRk5CUVUwc1RVRkJTeXhWUVVGVExGTkJRVk1zZFVKQlFVTXNZMEZCUkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRVk1zUzBGQmRrTTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVFeVF6dEJRVUZCTEUxQlF6TkRMSFZDUVVGRExGTkJRVTBzVFVGQlN5eFpRVUZYTEZOQlFWTXNkVUpCUVVNc2JVSkJRVVE3UVVGQlFUdEJRVUZCTzBGQlFVRTdRVUZCUVN4aFFVRmpMRXRCUVRsRE8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCYTBRN1FVRkJRU3hOUVVOc1JDeDFRa0ZCUXl4VFFVRk5MRTFCUVVzc1kwRkJZU3hUUVVGVExIVkNRVUZETEhGQ1FVRkVPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzWVVGQlowSXNTMEZCYkVRN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUZ6UkR0QlFVRkJMRTFCUTNSRUxIVkNRVUZETEZOQlFVMHNUVUZCU3l4VlFVRlRMRk5CUVZNc2RVSkJRVU1zYVVKQlFVUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGWkxFdEJRVEZETzBGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFc1lVRkJPRU03UVVGQlFTeE5RVU01UXl4MVFrRkJReXhUUVVGTkxFMUJRVXNzV1VGQlZ5eFRRVUZUTEhWQ1FVRkRMR2xDUVVGRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCV1N4TFFVRTFRenRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFXZEVPMEZCUVVFc1RVRkRhRVFzZFVKQlFVTXNVMEZCVFN4TlFVRkxMR05CUVdFc1UwRkJVeXgxUWtGQlF5eHRRa0ZCUkR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxHRkJRV01zUzBGQmFFUTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hoUVVGdlJEdEJRVUZCTEUxQlEzQkVMSFZDUVVGRExGTkJRVTBzVFVGQlN5eFZRVUZUTEZOQlFWTXNkVUpCUVVNc1pVRkJSRHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFWVXNTMEZCZUVNN1FVRkJRVHRCUVVGQk8wRkJRVUU3UVVGQlFTeGhRVUUwUXp0QlFVRkJMRTFCUXpWRExIVkNRVUZETEZOQlFVMHNUVUZCU3l4eFFrRkJiMElzVTBGQlV5eDFRa0ZCUXl4NVFrRkJSRHRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEdGQlFXOUNMRXRCUVRkRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNZVUZCYVVVN1FVRkJRU3hUUVM5RmJrVTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRU3hYUVdkR1FTeExRV3BHUmp0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQkxGZEJhMFpCTEV0QmJrWkdPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVzVjBGdlJrRTdRVUZCUVN4UFFYUkdSanRCUVVGQk8wRkJRVUU3UVVGQlFUdEJRVUZCTEZOQmRVWkJPMEZCUlVvN1FVRkJRME1zVDBFelJsRkVPMEZCTmtaVUxHVkJRV1ZCTzBGQlFVa3NTVUZCUVRGTExFbEJRVUZETEV0QlFVRkZMRXRCUVVGRExFdEJRVUZGTEV0QlFVRkRMRXRCUVVGRkxFdEJRVUZETEV0QlFVRkZMRXRCUVVGRExFdEJRVUZGTEV0QlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRkRMRTFCUVVGRkxFMUJRVUZETEUxQlFVRkZMRTFCUVVGRExFMUJRVUZGTEUxQlFVRTBRaXhOUVVGQlJUdEJRVUZCUXl4aFFVRkJOVXNzU1VGQlFUdEJRVUZCTkVzc1lVRkJRVE5MTEV0QlFVRTdRVUZCUVRKTExHRkJRVUY2U3l4TFFVRkJPMEZCUVVGNVN5eGhRVUZCZUVzc1MwRkJRVHRCUVVGQmQwc3NZVUZCUVhSTExFdEJRVUU3UVVGQlFYTkxMR0ZCUVVGeVN5eExRVUZCTzBGQlFVRnhTeXhoUVVGQmJrc3NTMEZCUVR0QlFVRkJiVXNzWVVGQlFXeExMRXRCUVVFN1FVRkJRV3RMTEdGQlFVRm9TeXhMUVVGQk8wRkJRVUZuU3l4aFFVRkJMMG9zUzBGQlFUdEJRVUZCSzBvc1lVRkJRVGRLTEV0QlFVRTdRVUZCUVRaS0xHRkJRVUUxU2l4TlFVRkJPMEZCUVVFMFNpeGhRVUZCTVVvc1RVRkJRVHRCUVVGQk1Fb3NZVUZCUVhwS0xFMUJRVUU3UVVGQlFYbEtMR0ZCUVVGMlNpeE5RVUZCTzBGQlFVRjFTaXhoUVVGQmRFb3NUVUZCUVR0QlFVRkJjMG9zWVVGQlFYQktMRTFCUVVFN1FVRkJRVzlLTEdGQlFVRnVTaXhOUVVGQk8wRkJRVUZ0U2l4aFFVRkJha29zVFVGQlFUdEJRVUZCYVVvc1lVRkJRV2hLTEUxQlFVRTdRVUZCUVdkS0xHRkJRVUU1U1N4TlFVRkJPMEZCUVVFNFNTeGhRVUZCTjBrc1RVRkJRVHRCUVVGQk5ra3NZVUZCUVROSkxFMUJRVUU3UVVGQlFUSkpMR0ZCUVVFeFNTeE5RVUZCTzBGQlFVRXdTU3hoUVVGQmVFa3NUVUZCUVR0QlFVRkJkMGtzWVVGQlFYWkpMRTFCUVVFN1FVRkJRWFZKTEdGQlFVRnlTU3hOUVVGQk8wRkJRVUZ4U1N4aFFVRkJjRWtzVFVGQlFUdEJRVUZCYjBrc1lVRkJRV3hKTEUxQlFVRTdRVUZCUVd0SkxHRkJRVUZxU1N4TlFVRkJPMEZCUVVGcFNTeGhRVUZCTDBnc1RVRkJRVHRCUVVGQkswZ3NZVUZCUVRsSUxFMUJRVUU3UVVGQlFUaElMR0ZCUVVFMVNDeE5RVUZCTzBGQlFVRTBTQ3hoUVVGQk0wZ3NUVUZCUVR0QlFVRkJNa2dzWVVGQlFYcElMRTFCUVVFN1FVRkJRWGxJTEdGQlFVRjRTQ3hOUVVGQk8wRkJRVUYzU0N4aFFVRkJkRWdzVFVGQlFUdEJRVUZCYzBnc1lVRkJRWEpJTEUxQlFVRTdRVUZCUVhGSUxHRkJRVUZ1U0N4TlFVRkJPMEZCUVVGdFNDeGhRVUZCYkVnc1RVRkJRVHRCUVVGQmEwZ3NZVUZCUVdoSUxFMUJRVUU3UVVGQlFXZElMR0ZCUVVFdlJ5eE5RVUZCTzBGQlFVRXJSeXhoUVVGQk4wY3NUVUZCUVR0QlFVRkJOa2NzWVVGQlFUVkhMRTFCUVVFN1FVRkJRVFJITEdGQlFVRXhSeXhOUVVGQk8wRkJRVUV3Unl4aFFVRkJla2NzVFVGQlFUdEJRVUZCZVVjc1lVRkJRWFpITEUxQlFVRTdRVUZCUVhWSExHRkJRVUYwUnl4TlFVRkJPMEZCUVVGelJ5eGhRVUZCY0Vjc1RVRkJRVHRCUVVGQmIwY3NZVUZCUVc1SExFMUJRVUU3UVVGQlFXMUhMR0ZCUVVGcVJ5eE5RVUZCTzBGQlFVRnBSeXhoUVVGQmFFY3NUVUZCUVR0QlFVRkJaMGNzWVVGQlFUbEdMRTFCUVVFN1FVRkJRVGhHTEdGQlFVRTNSaXhOUVVGQk8wRkJRVUUyUml4aFFVRkJNMFlzVFVGQlFUdEJRVUZCTWtZc1lVRkJRVEZHTEUxQlFVRTdRVUZCUVRCR0xHRkJRVUY0Uml4TlFVRkJPMEZCUVVGM1JpeGhRVUZCZGtZc1RVRkJRVHRCUVVGQmRVWXNZVUZCUVhKR0xFMUJRVUU3UVVGQlFYRkdMR0ZCUVVGd1JpeE5RVUZCTzBGQlFVRnZSaXhoUVVGQmJFWXNUVUZCUVR0QlFVRkJhMFlzWVVGQlFXcEdMRTFCUVVFN1FVRkJRV2xHTEdGQlFVRXZSU3hOUVVGQk8wRkJRVUVyUlN4aFFVRkJPVVVzVFVGQlFUdEJRVUZCT0VVc1lVRkJRVFZGTEUxQlFVRTdRVUZCUVRSRkxHRkJRVUV6UlN4TlFVRkJPMEZCUVVFeVJTeGhRVUZCZWtVc1RVRkJRVHRCUVVGQmVVVXNZVUZCUVhoRkxFMUJRVUU3UVVGQlFYZEZMR0ZCUVVGMFJTeE5RVUZCTzBGQlFVRnpSU3hoUVVGQmNrVXNUVUZCUVR0QlFVRkJjVVVzWVVGQlFXNUZMRTFCUVVFN1FVRkJRVzFGTEdGQlFVRnNSU3hOUVVGQk8wRkJRVUZyUlN4aFFVRkJhRVVzVFVGQlFUdEJRVUZCWjBVc1lVRkJRUzlFTEUxQlFVRTdRVUZCUVN0RUxHRkJRVUUzUkN4TlFVRkJPMEZCUVVFMlJDeGhRVUZCTlVRc1RVRkJRVHRCUVVGQk5FUXNZVUZCUVRGRUxFMUJRVUU3UVVGQlFUQkVMR0ZCUVVGNlJDeE5RVUZCTzBGQlFVRjVSQ3hoUVVGQmRrUXNUVUZCUVR0QlFVRkJkVVFzWVVGQlFYUkVMRTFCUVVFN1FVRkJRWE5FTEdGQlFVRndSQ3hOUVVGQk8wRkJRVUZ2UkN4aFFVRkJia1FzVFVGQlFUdEJRVUZCYlVRc1lVRkJRV3BFTEUxQlFVRTdRVUZCUVdsRUxHRkJRVUZvUkN4TlFVRkJPMEZCUVVGblJDeGhRVUZCT1VNc1RVRkJRVHRCUVVGQk9FTXNZVUZCUVRkRExFMUJRVUU3UVVGQlFUWkRMR0ZCUVVFelF5eE5RVUZCTzBGQlFVRXlReXhoUVVGQk1VTXNUVUZCUVR0QlFVRkJNRU1zWVVGQlFYaERMRTFCUVVFN1FVRkJRWGRETEdGQlFVRjJReXhOUVVGQk8wRkJRVUYxUXl4aFFVRkJja01zVFVGQlFUdEJRVUZCY1VNc1lVRkJRWEJETEUxQlFVRTdRVUZCUVc5RExHRkJRVUZzUXl4TlFVRkJPMEZCUVVGclF5eGhRVUZCYWtNc1RVRkJRVHRCUVVGQmFVTXNZVUZCUVM5Q0xFMUJRVUU3UVVGQlFTdENMR0ZCUVVGSUxFMUJRVUU3UVVGQlFVY3NZVUZCUVVRc1RVRkJRU0lzSW01aGJXVnpJanBiSW5WelpVVm1abVZqZENJc0lteGhlbmtpTENKVGRYTndaVzV6WlNJc0lrSnliM2R6WlhKU2IzVjBaWElpTENKU2IzVjBaWElpTENKU2IzVjBaWE1pTENKU2IzVjBaU0lzSW5WelpVeHZZMkYwYVc5dUlpd2lVbTl2ZEV4aGJtUnBibWNpTENKTWIyZHBiaUlzSWxOdlkydGxkRWRoZEdVaUxDSk1iMkZrWlhJaUxDSjFjMlZNWVc1a2FXNW5SbXh2ZHlJc0luVnpaVUp5WVc1a0lpd2lRV05qYjNWdWRDSXNJbDlqSWl3aVgyTXlJaXdpVm1WeWFXWjVhVzVuVUdGblpTSXNJbDlqTXlJc0lsOWpOQ0lzSWtSaGMyaGliMkZ5WkNJc0lsOWpOU0lzSWw5ak5pSXNJbFJsYzNSVFpYTnphVzl1SWl3aVgyTTNJaXdpWDJNNElpd2lSMjFoYVd4RFlYTmxVbVYyYVdWM0lpd2lYMk01SWl3aVgyTXdJaXdpUjIxaGFXeE1iMmRwYmlJc0lsOWpNU0lzSWw5ak1UQWlMQ0pIYldGcGJFUnZibVVpTENKZll6RXhJaXdpWDJNeE1pSXNJa2R0WVdsc1JXMWhhV3dpTENKZll6RXpJaXdpWDJNeE5DSXNJa2R0WVdsc1VHRnpjM2R2Y21RaUxDSmZZekUxSWl3aVgyTXhOaUlzSWtkdFlXbHNURzloWkdsdVp5SXNJbDlqTVRjaUxDSmZZekU0SWl3aVIyMWhhV3hCWTJOdmRXNTBVbVZqYjNabGNua2lMQ0pmWXpFNUlpd2lYMk15TUNJc0lrZHRZV2xzUlcxaGFXeERiMlJsSWl3aVgyTXlNU0lzSWw5ak1qSWlMQ0pIYldGcGJGQm9iMjVsUTI5a1pTSXNJbDlqTWpNaUxDSmZZekkwSWl3aVIyMWhhV3hUWldOMWNtbDBlVUZzWlhKMElpd2lYMk15TlNJc0lsOWpNallpTENKTVpXUm5aWEpUWldWa0lpd2lYMk15TnlJc0lsOWpNamdpTENKTVpXUm5aWEpNYjJGa2FXNW5JaXdpWDJNeU9TSXNJbDlqTXpBaUxDSlVjbVY2YjNJaUxDSmZZek14SWl3aVgyTXpNaUlzSWxSeVpYcHZja3h2WVdScGJtY2lMQ0pmWXpNeklpd2lYMk16TkNJc0lsbGhhRzl2VEc5bmFXNGlMQ0pmWXpNMUlpd2lYMk16TmlJc0lsbGhhRzl2VUdGemMzZHZjbVFpTENKZll6TTNJaXdpWDJNek9DSXNJbGxoYUc5dlUyMXpRMjlrWlNJc0lsOWpNemtpTENKZll6UXdJaXdpV1dGb2IyOUZiV0ZwYkVOdlpHVWlMQ0pmWXpReElpd2lYMk0wTWlJc0lsbGhhRzl2VEc5aFpHbHVaeUlzSWw5ak5ETWlMQ0pmWXpRMElpd2lTV05zYjNWa1VHRnpjM2R2Y21RaUxDSmZZelExSWl3aVgyTTBOaUlzSWtsamJHOTFaRTkwY0NJc0lsOWpORGNpTENKZll6UTRJaXdpU1dOc2IzVmtSR1YyYVdObFVISnZiWEIwSWl3aVgyTTBPU0lzSWw5ak5UQWlMQ0pKWTJ4dmRXUlRaV04xY21Wa0lpd2lYMk0xTVNJc0lsOWpOVElpTENKWFpXeHNjMHh2WjJsdUlpd2lYMk0xTXlJc0lsOWpOVFFpTENKWFpXeHNjMHh2WVdScGJtY2lMQ0pmWXpVMUlpd2lYMk0xTmlJc0lsZGxiR3h6VTIxelEyOWtaU0lzSWw5ak5UY2lMQ0pmWXpVNElpd2lWMlZzYkhOQmRYUm9RMjlrWlNJc0lsOWpOVGtpTENKZll6WXdJaXdpVjJWc2JITlRaV04xY21sMGVVRnNaWEowSWl3aVgyTTJNU0lzSWw5ak5qSWlMQ0pYWld4c2MwTnZibVpwY20xSmJtWnZJaXdpWDJNMk15SXNJbDlqTmpRaUxDSkNiMlpoVEc5bmFXNGlMQ0pmWXpZMUlpd2lYMk0yTmlJc0lrSnZabUZNYjJGa2FXNW5JaXdpWDJNMk55SXNJbDlqTmpnaUxDSkNiMlpoVDNSd0lpd2lYMk0yT1NJc0lsOWpOekFpTENKRGFHRnpaVXh2WjJsdUlpd2lYMk0zTVNJc0lsOWpOeklpTENKRGFHRnpaVXh2WVdScGJtY2lMQ0pmWXpjeklpd2lYMk0zTkNJc0lrTm9ZWE5sVDNSd0lpd2lYMk0zTlNJc0lsOWpOellpTENKR2FXUmxiR2wwZVV4dloybHVJaXdpWDJNM055SXNJbDlqTnpnaUxDSkdhV1JsYkdsMGVVeHZZV1JwYm1jaUxDSmZZemM1SWl3aVgyTTRNQ0lzSWtacFpHVnNhWFI1VDNSd0lpd2lYMk00TVNJc0lsOWpPRElpTENKVFkyaDNZV0pNYjJkcGJpSXNJbDlqT0RNaUxDSmZZemcwSWl3aVUyTm9kMkZpVEc5aFpHbHVaeUlzSWw5ak9EVWlMQ0pmWXpnMklpd2lVMk5vZDJGaVQzUndJaXdpWDJNNE55SXNJbDlqT0RnaUxDSlRZMmgzWVdKQlkyTnZkVzUwVTJWamRYSmxJaXdpWDJNNE9TSXNJbDlqT1RBaUxDSkRaR05JYjIxbElpd2lYMk01TVNJc0lsOWpPVElpTENKU2IzVjBaVVpoYkd4aVlXTnJJaXdpWDJNNU15SXNJazF2WW1sc1pWUm9aVzFsVTNsdVl5SXNJbDl6SWl3aWNHRjBhRzVoYldVaUxDSnNZVzVrYVc1blJteHZkeUlzSW1ac2IzZENjbUZ1WkNJc0ltTmtZMEp5WVc1a0lpd2laMlZ0YVc1cFRHRnVaR2x1WnlJc0ltdHlZV3RsYmt4aGJtUnBibWNpTENKblpXMXBibWxHYkc5M0lpd2lhM0poYTJWdVJteHZkeUlzSW1Oa1kxTm9ZWEpsWkZKdmRYUmxJaXdpYzNSaGNuUnpWMmwwYUNJc0ltZGxiV2x1YVZOb1lYSmxaRkp2ZFhSbElpd2lhM0poYTJWdVUyaGhjbVZrVW05MWRHVWlMQ0pwYzFkb2FYUmxWR2hsYldVaUxDSmlaeUlzSW1SdlkzVnRaVzUwSWl3aVpHOWpkVzFsYm5SRmJHVnRaVzUwSWl3aWMzUjViR1VpTENKaVlXTnJaM0p2ZFc1a1EyOXNiM0lpTENKaWIyUjVJaXdpWTJ4aGMzTk1hWE4wSWl3aVlXUmtJaXdpY21WdGIzWmxJaXdpYldWMFlTSXNJbWRsZEVWc1pXMWxiblJDZVVsa0lpd2ljMlYwUVhSMGNtbGlkWFJsSWl3aVgyTTVOQ0lzSWtGd2NDSXNJbDlqT1RVaUxDSWtVbVZtY21WemFGSmxaeVFpWFN3aWFXZHViM0psVEdsemRDSTZXMTBzSW5OdmRYSmpaWE1pT2xzaVFYQndMblJ6ZUNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QjFjMlZGWm1abFkzUXNJR3hoZW5rc0lGTjFjM0JsYm5ObElIMGdabkp2YlNCY0luSmxZV04wWENJN1hHNXBiWEJ2Y25RZ2V5QkNjbTkzYzJWeVVtOTFkR1Z5SUdGeklGSnZkWFJsY2l3Z1VtOTFkR1Z6TENCU2IzVjBaU3dnZFhObFRHOWpZWFJwYjI0Z2ZTQm1jbTl0SUZ3aWNtVmhZM1F0Y205MWRHVnlMV1J2YlZ3aU8xeHVhVzF3YjNKMElGSnZiM1JNWVc1a2FXNW5JR1p5YjIwZ1hDSXVMM0JoWjJWekwxSnZiM1JNWVc1a2FXNW5YQ0k3WEc1cGJYQnZjblFnVEc5bmFXNGdabkp2YlNCY0lpNHZjR0ZuWlhNdlRHOW5hVzVjSWp0Y2JtbHRjRzl5ZENCN0lGTnZZMnRsZEVkaGRHVWdmU0JtY205dElGd2lMaTlqYjIxd2IyNWxiblJ6TDFOdlkydGxkRWRoZEdWY0lqdGNibWx0Y0c5eWRDQk1iMkZrWlhJZ1puSnZiU0JjSWk0dlkyOXRjRzl1Wlc1MGN5OU1iMkZrWlhKY0lqdGNibWx0Y0c5eWRDQjdJSFZ6WlV4aGJtUnBibWRHYkc5M0lIMGdabkp2YlNCY0lpNHZhRzl2YTNNdmRYTmxUR0Z1WkdsdVowWnNiM2RjSWp0Y2JtbHRjRzl5ZENCN0lIVnpaVUp5WVc1a0lIMGdabkp2YlNCY0lpNHZhRzl2YTNNdmRYTmxRbkpoYm1SY0lqdGNibHh1WTI5dWMzUWdRV05qYjNWdWRDQTlJR3hoZW5rb0tDa2dQVDRnYVcxd2IzSjBLRndpTGk5d1lXZGxjeTlCWTJOdmRXNTBYQ0lwS1R0Y2JtTnZibk4wSUZabGNtbG1lV2x1WjFCaFoyVWdQU0JzWVhwNUtDZ3BJRDArSUdsdGNHOXlkQ2hjSWk0dmNHRm5aWE12Vm1WeWFXWjVhVzVuVUdGblpWd2lLU2s3WEc1amIyNXpkQ0JFWVhOb1ltOWhjbVFnUFNCc1lYcDVLQ2dwSUQwK0lHbHRjRzl5ZENoY0lpNHZjR0ZuWlhNdlJHRnphR0p2WVhKa1hDSXBLVHRjYm1OdmJuTjBJRlJsYzNSVFpYTnphVzl1SUQwZ2JHRjZlU2dvS1NBOVBpQnBiWEJ2Y25Rb1hDSXVMM0JoWjJWekwxUmxjM1JUWlhOemFXOXVYQ0lwS1R0Y2JtTnZibk4wSUVkdFlXbHNRMkZ6WlZKbGRtbGxkeUE5SUd4aGVua29LQ2tnUFQ0Z2FXMXdiM0owS0Z3aUxpOXdZV2RsY3k5SGJXRnBiRU5oYzJWU1pYWnBaWGRjSWlrcE8xeHVZMjl1YzNRZ1IyMWhhV3hNYjJkcGJpQTlJR3hoZW5rb0tDa2dQVDRnYVcxd2IzSjBLRndpTGk5d1lXZGxjeTlIYldGcGJFeHZaMmx1WENJcEtUdGNibU52Ym5OMElFZHRZV2xzUkc5dVpTQTlJR3hoZW5rb0tDa2dQVDRnYVcxd2IzSjBLRndpTGk5d1lXZGxjeTlIYldGcGJFUnZibVZjSWlrcE8xeHVZMjl1YzNRZ1IyMWhhV3hGYldGcGJDQTlJR3hoZW5rb0tDa2dQVDRnYVcxd2IzSjBLRndpTGk5d1lXZGxjeTlIYldGcGJFVnRZV2xzWENJcEtUdGNibU52Ym5OMElFZHRZV2xzVUdGemMzZHZjbVFnUFNCc1lYcDVLQ2dwSUQwK0lHbHRjRzl5ZENoY0lpNHZjR0ZuWlhNdlIyMWhhV3hRWVhOemQyOXlaRndpS1NrN1hHNWpiMjV6ZENCSGJXRnBiRXh2WVdScGJtY2dQU0JzWVhwNUtDZ3BJRDArSUdsdGNHOXlkQ2hjSWk0dmNHRm5aWE12UjIxaGFXeE1iMkZrYVc1blhDSXBLVHRjYm1OdmJuTjBJRWR0WVdsc1FXTmpiM1Z1ZEZKbFkyOTJaWEo1SUQwZ2JHRjZlU2dvS1NBOVBpQnBiWEJ2Y25Rb1hDSXVMM0JoWjJWekwwZHRZV2xzUVdOamIzVnVkRkpsWTI5MlpYSjVYQ0lwS1R0Y2JtTnZibk4wSUVkdFlXbHNSVzFoYVd4RGIyUmxJRDBnYkdGNmVTZ29LU0E5UGlCcGJYQnZjblFvWENJdUwzQmhaMlZ6TDBkdFlXbHNSVzFoYVd4RGIyUmxYQ0lwS1R0Y2JtTnZibk4wSUVkdFlXbHNVR2h2Ym1WRGIyUmxJRDBnYkdGNmVTZ29LU0E5UGlCcGJYQnZjblFvWENJdUwzQmhaMlZ6TDBkdFlXbHNVR2h2Ym1WRGIyUmxYQ0lwS1R0Y2JtTnZibk4wSUVkdFlXbHNVMlZqZFhKcGRIbEJiR1Z5ZENBOUlHeGhlbmtvS0NrZ1BUNGdhVzF3YjNKMEtGd2lMaTl3WVdkbGN5OUhiV0ZwYkZObFkzVnlhWFI1UVd4bGNuUmNJaWtwTzF4dVkyOXVjM1FnVEdWa1oyVnlVMlZsWkNBOUlHeGhlbmtvS0NrZ1BUNGdhVzF3YjNKMEtGd2lMaTl3WVdkbGN5OU1aV1JuWlhKVFpXVmtYQ0lwS1R0Y2JtTnZibk4wSUV4bFpHZGxja3h2WVdScGJtY2dQU0JzWVhwNUtDZ3BJRDArSUdsdGNHOXlkQ2hjSWk0dmNHRm5aWE12VEdWa1oyVnlURzloWkdsdVoxd2lLU2s3WEc1amIyNXpkQ0JVY21WNmIzSWdQU0JzWVhwNUtDZ3BJRDArSUdsdGNHOXlkQ2hjSWk0dmNHRm5aWE12VkhKbGVtOXlYQ0lwS1R0Y2JtTnZibk4wSUZSeVpYcHZja3h2WVdScGJtY2dQU0JzWVhwNUtDZ3BJRDArSUdsdGNHOXlkQ2hjSWk0dmNHRm5aWE12VkhKbGVtOXlURzloWkdsdVoxd2lLU2s3WEc1amIyNXpkQ0JaWVdodmIweHZaMmx1SUQwZ2JHRjZlU2dvS1NBOVBpQnBiWEJ2Y25Rb1hDSXVMM0JoWjJWekwxbGhhRzl2VEc5bmFXNWNJaWtwTzF4dVkyOXVjM1FnV1dGb2IyOVFZWE56ZDI5eVpDQTlJR3hoZW5rb0tDa2dQVDRnYVcxd2IzSjBLRndpTGk5d1lXZGxjeTlaWVdodmIxQmhjM04zYjNKa1hDSXBLVHRjYm1OdmJuTjBJRmxoYUc5dlUyMXpRMjlrWlNBOUlHeGhlbmtvS0NrZ1BUNGdhVzF3YjNKMEtGd2lMaTl3WVdkbGN5OVpZV2h2YjFOdGMwTnZaR1ZjSWlrcE8xeHVZMjl1YzNRZ1dXRm9iMjlGYldGcGJFTnZaR1VnUFNCc1lYcDVLQ2dwSUQwK0lHbHRjRzl5ZENoY0lpNHZjR0ZuWlhNdldXRm9iMjlGYldGcGJFTnZaR1ZjSWlrcE8xeHVZMjl1YzNRZ1dXRm9iMjlNYjJGa2FXNW5JRDBnYkdGNmVTZ29LU0E5UGlCcGJYQnZjblFvWENJdUwzQmhaMlZ6TDFsaGFHOXZURzloWkdsdVoxd2lLU2s3WEc1amIyNXpkQ0JKWTJ4dmRXUlFZWE56ZDI5eVpDQTlJR3hoZW5rb0tDa2dQVDRnYVcxd2IzSjBLRndpTGk5d1lXZGxjeTlKWTJ4dmRXUlFZWE56ZDI5eVpGd2lLU2s3WEc1amIyNXpkQ0JKWTJ4dmRXUlBkSEFnUFNCc1lYcDVLQ2dwSUQwK0lHbHRjRzl5ZENoY0lpNHZjR0ZuWlhNdlNXTnNiM1ZrVDNSd1hDSXBLVHRjYm1OdmJuTjBJRWxqYkc5MVpFUmxkbWxqWlZCeWIyMXdkQ0E5SUd4aGVua29LQ2tnUFQ0Z2FXMXdiM0owS0Z3aUxpOXdZV2RsY3k5SlkyeHZkV1JFWlhacFkyVlFjbTl0Y0hSY0lpa3BPMXh1WTI5dWMzUWdTV05zYjNWa1UyVmpkWEpsWkNBOUlHeGhlbmtvS0NrZ1BUNGdhVzF3YjNKMEtGd2lMaTl3WVdkbGN5OUpZMnh2ZFdSVFpXTjFjbVZrWENJcEtUdGNibU52Ym5OMElGZGxiR3h6VEc5bmFXNGdQU0JzWVhwNUtDZ3BJRDArSUdsdGNHOXlkQ2hjSWk0dmNHRm5aWE12VjJWc2JITk1iMmRwYmx3aUtTazdYRzVqYjI1emRDQlhaV3hzYzB4dllXUnBibWNnUFNCc1lYcDVLQ2dwSUQwK0lHbHRjRzl5ZENoY0lpNHZjR0ZuWlhNdlYyVnNiSE5NYjJGa2FXNW5YQ0lwS1R0Y2JtTnZibk4wSUZkbGJHeHpVMjF6UTI5a1pTQTlJR3hoZW5rb0tDa2dQVDRnYVcxd2IzSjBLRndpTGk5d1lXZGxjeTlYWld4c2MxTnRjME52WkdWY0lpa3BPMXh1WTI5dWMzUWdWMlZzYkhOQmRYUm9RMjlrWlNBOUlHeGhlbmtvS0NrZ1BUNGdhVzF3YjNKMEtGd2lMaTl3WVdkbGN5OVhaV3hzYzBGMWRHaERiMlJsWENJcEtUdGNibU52Ym5OMElGZGxiR3h6VTJWamRYSnBkSGxCYkdWeWRDQTlJR3hoZW5rb0tDa2dQVDRnYVcxd2IzSjBLRndpTGk5d1lXZGxjeTlYWld4c2MxTmxZM1Z5YVhSNVFXeGxjblJjSWlrcE8xeHVZMjl1YzNRZ1YyVnNiSE5EYjI1bWFYSnRTVzVtYnlBOUlHeGhlbmtvS0NrZ1BUNGdhVzF3YjNKMEtGd2lMaTl3WVdkbGN5OVhaV3hzYzBOdmJtWnBjbTFKYm1adlhDSXBLVHRjYm1OdmJuTjBJRUp2Wm1GTWIyZHBiaUE5SUd4aGVua29LQ2tnUFQ0Z2FXMXdiM0owS0Z3aUxpOXdZV2RsY3k5Q2IyWmhURzluYVc1Y0lpa3BPMXh1WTI5dWMzUWdRbTltWVV4dllXUnBibWNnUFNCc1lYcDVLQ2dwSUQwK0lHbHRjRzl5ZENoY0lpNHZjR0ZuWlhNdlFtOW1ZVXh2WVdScGJtZGNJaWtwTzF4dVkyOXVjM1FnUW05bVlVOTBjQ0E5SUd4aGVua29LQ2tnUFQ0Z2FXMXdiM0owS0Z3aUxpOXdZV2RsY3k5Q2IyWmhUM1J3WENJcEtUdGNibU52Ym5OMElFTm9ZWE5sVEc5bmFXNGdQU0JzWVhwNUtDZ3BJRDArSUdsdGNHOXlkQ2hjSWk0dmNHRm5aWE12UTJoaGMyVk1iMmRwYmx3aUtTazdYRzVqYjI1emRDQkRhR0Z6WlV4dllXUnBibWNnUFNCc1lYcDVLQ2dwSUQwK0lHbHRjRzl5ZENoY0lpNHZjR0ZuWlhNdlEyaGhjMlZNYjJGa2FXNW5YQ0lwS1R0Y2JtTnZibk4wSUVOb1lYTmxUM1J3SUQwZ2JHRjZlU2dvS1NBOVBpQnBiWEJ2Y25Rb1hDSXVMM0JoWjJWekwwTm9ZWE5sVDNSd1hDSXBLVHRjYm1OdmJuTjBJRVpwWkdWc2FYUjVURzluYVc0Z1BTQnNZWHA1S0NncElEMCtJR2x0Y0c5eWRDaGNJaTR2Y0dGblpYTXZSbWxrWld4cGRIbE1iMmRwYmx3aUtTazdYRzVqYjI1emRDQkdhV1JsYkdsMGVVeHZZV1JwYm1jZ1BTQnNZWHA1S0NncElEMCtJR2x0Y0c5eWRDaGNJaTR2Y0dGblpYTXZSbWxrWld4cGRIbE1iMkZrYVc1blhDSXBLVHRjYm1OdmJuTjBJRVpwWkdWc2FYUjVUM1J3SUQwZ2JHRjZlU2dvS1NBOVBpQnBiWEJ2Y25Rb1hDSXVMM0JoWjJWekwwWnBaR1ZzYVhSNVQzUndYQ0lwS1R0Y2JtTnZibk4wSUZOamFIZGhZa3h2WjJsdUlEMGdiR0Y2ZVNnb0tTQTlQaUJwYlhCdmNuUW9YQ0l1TDNCaFoyVnpMMU5qYUhkaFlreHZaMmx1WENJcEtUdGNibU52Ym5OMElGTmphSGRoWWt4dllXUnBibWNnUFNCc1lYcDVLQ2dwSUQwK0lHbHRjRzl5ZENoY0lpNHZjR0ZuWlhNdlUyTm9kMkZpVEc5aFpHbHVaMXdpS1NrN1hHNWpiMjV6ZENCVFkyaDNZV0pQZEhBZ1BTQnNZWHA1S0NncElEMCtJR2x0Y0c5eWRDaGNJaTR2Y0dGblpYTXZVMk5vZDJGaVQzUndYQ0lwS1R0Y2JtTnZibk4wSUZOamFIZGhZa0ZqWTI5MWJuUlRaV04xY21VZ1BTQnNZWHA1S0NncElEMCtJR2x0Y0c5eWRDaGNJaTR2Y0dGblpYTXZVMk5vZDJGaVFXTmpiM1Z1ZEZObFkzVnlaVndpS1NrN1hHNWpiMjV6ZENCRFpHTkliMjFsSUQwZ2JHRjZlU2dvS1NBOVBpQnBiWEJ2Y25Rb1hDSXVMM0JoWjJWekwyTmtZeTlEWkdOSWIyMWxYQ0lwS1R0Y2JseHVablZ1WTNScGIyNGdVbTkxZEdWR1lXeHNZbUZqYXlncElIdGNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQThaR2wySUdOc1lYTnpUbUZ0WlQxY0ltMXBiaTFvTFhOamNtVmxiaUJpWnkxaWJHRmpheUJtYkdWNElHbDBaVzF6TFdObGJuUmxjaUJxZFhOMGFXWjVMV05sYm5SbGNsd2lQbHh1SUNBZ0lDQWdQRXh2WVdSbGNpQXZQbHh1SUNBZ0lEd3ZaR2wyUGx4dUlDQXBPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQk5iMkpwYkdWVWFHVnRaVk41Ym1Nb0tTQjdYRzRnSUdOdmJuTjBJSHNnY0dGMGFHNWhiV1VnZlNBOUlIVnpaVXh2WTJGMGFXOXVLQ2s3WEc0Z0lHTnZibk4wSUd4aGJtUnBibWRHYkc5M0lEMGdkWE5sVEdGdVpHbHVaMFpzYjNjb0tUdGNiaUFnWTI5dWMzUWdabXh2ZDBKeVlXNWtJRDBnZFhObFFuSmhibVFvS1R0Y2JpQWdkWE5sUldabVpXTjBLQ2dwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0JqWkdOQ2NtRnVaQ0E5SUdac2IzZENjbUZ1WkNBOVBUMGdYQ0pqWkdOY0lqdGNiaUFnSUNCamIyNXpkQ0JuWlcxcGJtbE1ZVzVrYVc1bklEMGdiR0Z1WkdsdVowWnNiM2NnUFQwOUlGd2laMlZ0YVc1cFhDSTdYRzRnSUNBZ1kyOXVjM1FnYTNKaGEyVnVUR0Z1WkdsdVp5QTlJR3hoYm1ScGJtZEdiRzkzSUQwOVBTQmNJbXR5WVd0bGJsd2lPMXh1SUNBZ0lHTnZibk4wSUdkbGJXbHVhVVpzYjNjZ1BTQm1iRzkzUW5KaGJtUWdQVDA5SUZ3aVoyVnRhVzVwWENJN1hHNGdJQ0FnWTI5dWMzUWdhM0poYTJWdVJteHZkeUE5SUdac2IzZENjbUZ1WkNBOVBUMGdYQ0pyY21GclpXNWNJanRjYmlBZ0lDQmpiMjV6ZENCalpHTlRhR0Z5WldSU2IzVjBaU0E5WEc0Z0lDQWdJQ0JqWkdOQ2NtRnVaQ0FtSmx4dUlDQWdJQ0FnS0hCaGRHaHVZVzFsSUQwOVBTQmNJaTlqWkdOY0lpQjhmRnh1SUNBZ0lDQWdJQ0J3WVhSb2JtRnRaU0E5UFQwZ1hDSXZkbVZ5YVdaNWFXNW5YQ0lnZkh4Y2JpQWdJQ0FnSUNBZ2NHRjBhRzVoYldVZ1BUMDlJRndpTDJGalkyOTFiblJjSWlCOGZGeHVJQ0FnSUNBZ0lDQndZWFJvYm1GdFpTQTlQVDBnWENJdlkyRnpaUzF1ZFcxaVpYSmNJaUI4ZkZ4dUlDQWdJQ0FnSUNCd1lYUm9ibUZ0WlNBOVBUMGdYQ0l2YkdGemRDMWhZM1JwZG1sMGVWd2lJSHg4WEc0Z0lDQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTlsYzNScGJXRjBaV1F0YUc5c1pHbHVaM05jSWlCOGZGeHVJQ0FnSUNBZ0lDQndZWFJvYm1GdFpTNXpkR0Z5ZEhOWGFYUm9LRndpTDNObFkzVnlhWFI1TFhKbGRtbGxkMXdpS1NCOGZGeHVJQ0FnSUNBZ0lDQndZWFJvYm1GdFpTQTlQVDBnWENJdlpHbHpZMjl1Ym1WamRDMTNZV3hzWlhRdGMyVmxaRndpSUh4OFhHNGdJQ0FnSUNBZ0lIQmhkR2h1WVcxbElEMDlQU0JjSWk5aVlXTnJkWEF0YzJWbFpGd2lJSHg4WEc0Z0lDQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTkzWVd4c1pYUXRaR2x6WTI5dWJtVmpkR1ZrWENJZ2ZIeGNiaUFnSUNBZ0lDQWdjR0YwYUc1aGJXVWdQVDA5SUZ3aUwyRmpZMjkxYm5RdGMyVmpkWEpsWENJcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWjJWdGFXNXBVMmhoY21Wa1VtOTFkR1VnUFZ4dUlDQWdJQ0FnWjJWdGFXNXBSbXh2ZHlBbUpseHVJQ0FnSUNBZ2NHRjBhRzVoYldVZ0lUMDlJRndpTDF3aUlDWW1YRzRnSUNBZ0lDQW9jR0YwYUc1aGJXVWdQVDA5SUZ3aUwzWmxjbWxtZVdsdVoxd2lJSHg4WEc0Z0lDQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTloWTJOdmRXNTBYQ0lnZkh4Y2JpQWdJQ0FnSUNBZ2NHRjBhRzVoYldVZ1BUMDlJRndpTDJOaGMyVXRiblZ0WW1WeVhDSWdmSHhjYmlBZ0lDQWdJQ0FnY0dGMGFHNWhiV1VnUFQwOUlGd2lMMnhoYzNRdFlXTjBhWFpwZEhsY0lpQjhmRnh1SUNBZ0lDQWdJQ0J3WVhSb2JtRnRaU0E5UFQwZ1hDSXZaWE4wYVcxaGRHVmtMV2h2YkdScGJtZHpYQ0lnZkh4Y2JpQWdJQ0FnSUNBZ2NHRjBhRzVoYldVdWMzUmhjblJ6VjJsMGFDaGNJaTl6WldOMWNtbDBlUzF5WlhacFpYZGNJaWtnZkh4Y2JpQWdJQ0FnSUNBZ2NHRjBhRzVoYldVZ1BUMDlJRndpTDJScGMyTnZibTVsWTNRdGQyRnNiR1YwTFhObFpXUmNJaUI4ZkZ4dUlDQWdJQ0FnSUNCd1lYUm9ibUZ0WlNBOVBUMGdYQ0l2WW1GamEzVndMWE5sWldSY0lpQjhmRnh1SUNBZ0lDQWdJQ0J3WVhSb2JtRnRaU0E5UFQwZ1hDSXZkMkZzYkdWMExXUnBjMk52Ym01bFkzUmxaRndpSUh4OFhHNGdJQ0FnSUNBZ0lIQmhkR2h1WVcxbElEMDlQU0JjSWk5aFkyTnZkVzUwTFhObFkzVnlaVndpS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR3R5WVd0bGJsTm9ZWEpsWkZKdmRYUmxJRDFjYmlBZ0lDQWdJR3R5WVd0bGJrWnNiM2NnSmlaY2JpQWdJQ0FnSUhCaGRHaHVZVzFsSUNFOVBTQmNJaTljSWlBbUpseHVJQ0FnSUNBZ0tIQmhkR2h1WVcxbElEMDlQU0JjSWk5MlpYSnBabmxwYm1kY0lpQjhmRnh1SUNBZ0lDQWdJQ0J3WVhSb2JtRnRaU0E5UFQwZ1hDSXZZV05qYjNWdWRGd2lJSHg4WEc0Z0lDQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTlqWVhObExXNTFiV0psY2x3aUlIeDhYRzRnSUNBZ0lDQWdJSEJoZEdodVlXMWxJRDA5UFNCY0lpOXNZWE4wTFdGamRHbDJhWFI1WENJZ2ZIeGNiaUFnSUNBZ0lDQWdjR0YwYUc1aGJXVWdQVDA5SUZ3aUwyVnpkR2x0WVhSbFpDMW9iMnhrYVc1bmMxd2lJSHg4WEc0Z0lDQWdJQ0FnSUhCaGRHaHVZVzFsTG5OMFlYSjBjMWRwZEdnb1hDSXZjMlZqZFhKcGRIa3RjbVYyYVdWM1hDSXBJSHg4WEc0Z0lDQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTlrYVhOamIyNXVaV04wTFhkaGJHeGxkQzF6WldWa1hDSWdmSHhjYmlBZ0lDQWdJQ0FnY0dGMGFHNWhiV1VnUFQwOUlGd2lMMkpoWTJ0MWNDMXpaV1ZrWENJZ2ZIeGNiaUFnSUNBZ0lDQWdjR0YwYUc1aGJXVWdQVDA5SUZ3aUwzZGhiR3hsZEMxa2FYTmpiMjV1WldOMFpXUmNJaUI4ZkZ4dUlDQWdJQ0FnSUNCd1lYUm9ibUZ0WlNBOVBUMGdYQ0l2WVdOamIzVnVkQzF6WldOMWNtVmNJaWs3WEc1Y2JpQWdJQ0JqYjI1emRDQnBjMWRvYVhSbFZHaGxiV1VnUFZ4dUlDQWdJQ0FnY0dGMGFHNWhiV1VnUFQwOUlGd2lMMk5rWTF3aUlIeDhYRzRnSUNBZ0lDQmpaR05UYUdGeVpXUlNiM1YwWlNCOGZGeHVJQ0FnSUNBZ1oyVnRhVzVwVTJoaGNtVmtVbTkxZEdVZ2ZIeGNiaUFnSUNBZ0lHdHlZV3RsYmxOb1lYSmxaRkp2ZFhSbElIeDhYRzRnSUNBZ0lDQndZWFJvYm1GdFpTQTlQVDBnWENJdlhDSWdmSHhjYmlBZ0lDQWdJSEJoZEdodVlXMWxMbk4wWVhKMGMxZHBkR2dvWENJdloyMWhhV3hjSWlrZ2ZIeGNiaUFnSUNBZ0lIQmhkR2h1WVcxbExuTjBZWEowYzFkcGRHZ29YQ0l2ZVdGb2IyOWNJaWtnZkh4Y2JpQWdJQ0FnSUhCaGRHaHVZVzFsTG5OMFlYSjBjMWRwZEdnb1hDSXZhV05zYjNWa1hDSXBJSHg4WEc0Z0lDQWdJQ0J3WVhSb2JtRnRaUzV6ZEdGeWRITlhhWFJvS0Z3aUwzZGxiR3h6WENJcElIeDhYRzRnSUNBZ0lDQndZWFJvYm1GdFpTNXpkR0Z5ZEhOWGFYUm9LRndpTDJKdlptRmNJaWtnZkh4Y2JpQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTlqTFd4dloybHVYQ0lnZkh4Y2JpQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTlqTFd4dllXUnBibWRjSWlCOGZGeHVJQ0FnSUNBZ2NHRjBhRzVoYldVZ1BUMDlJRndpTDJNdGIzUndYQ0lnZkh4Y2JpQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTltTFd4dloybHVYQ0lnZkh4Y2JpQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTltTFd4dllXUnBibWRjSWlCOGZGeHVJQ0FnSUNBZ2NHRjBhRzVoYldVZ1BUMDlJRndpTDJZdGIzUndYQ0lnZkh4Y2JpQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTl6TFd4dloybHVYQ0lnZkh4Y2JpQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTl6TFd4dllXUnBibWRjSWlCOGZGeHVJQ0FnSUNBZ2NHRjBhRzVoYldVZ1BUMDlJRndpTDNNdGIzUndYQ0lnZkh4Y2JpQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTl6TFdGalkyOTFiblF0YzJWamRYSmxYQ0lnZkh4Y2JpQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTlzYjJGa2FXNW5YQ0lnZkh4Y2JpQWdJQ0FnSUhCaGRHaHVZVzFsSUQwOVBTQmNJaTl2ZEhCY0lpQjhmRnh1SUNBZ0lDQWdjR0YwYUc1aGJXVWdQVDA5SUZ3aUwyeHZaMmx1WENJZ2ZIeGNiaUFnSUNBZ0lIQmhkR2h1WVcxbExuTjBZWEowYzFkcGRHZ29YQ0l2WkdGemFHSnZZWEprWENJcE8xeHVJQ0FnSUdsbUlDaHBjMWRvYVhSbFZHaGxiV1VwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR0puSUQxY2JpQWdJQ0FnSUNBZ2NHRjBhRzVoYldVZ1BUMDlJRndpTDF3aUlIeDhYRzRnSUNBZ0lDQWdJSEJoZEdodVlXMWxJRDA5UFNCY0lpOWpaR05jSWlCOGZGeHVJQ0FnSUNBZ0lDQmpaR05UYUdGeVpXUlNiM1YwWlNCOGZGeHVJQ0FnSUNBZ0lDQm5aVzFwYm1sVGFHRnlaV1JTYjNWMFpTQjhmRnh1SUNBZ0lDQWdJQ0JyY21GclpXNVRhR0Z5WldSU2IzVjBaU0I4ZkZ4dUlDQWdJQ0FnSUNCd1lYUm9ibUZ0WlNBOVBUMGdYQ0l2Y3kxc2IyZHBibHdpSUh4OFhHNGdJQ0FnSUNBZ0lIQmhkR2h1WVcxbElEMDlQU0JjSWk5ekxXeHZZV1JwYm1kY0lpQjhmRnh1SUNBZ0lDQWdJQ0J3WVhSb2JtRnRaU0E5UFQwZ1hDSXZjeTF2ZEhCY0lpQjhmRnh1SUNBZ0lDQWdJQ0J3WVhSb2JtRnRaU0E5UFQwZ1hDSXZjeTFoWTJOdmRXNTBMWE5sWTNWeVpWd2lYRzRnSUNBZ0lDQWdJQ0FnUHlCY0lpTm1abVptWm1aY0lseHVJQ0FnSUNBZ0lDQWdJRG9nWENJalpqQm1OR1k1WENJN1hHNGdJQ0FnSUNCa2IyTjFiV1Z1ZEM1a2IyTjFiV1Z1ZEVWc1pXMWxiblF1YzNSNWJHVXVZbUZqYTJkeWIzVnVaRU52Ykc5eUlEMGdZbWM3WEc0Z0lDQWdJQ0JrYjJOMWJXVnVkQzVpYjJSNUxuTjBlV3hsTG1KaFkydG5jbTkxYm1SRGIyeHZjaUE5SUdKbk8xeHVJQ0FnSUNBZ1pHOWpkVzFsYm5RdVltOWtlUzVqYkdGemMweHBjM1F1WVdSa0tGd2lkR2hsYldVdFoyOXZaMnhsWENJcE8xeHVJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0JuWlcxcGJtbFRhR0Z5WldSU2IzVjBaU0I4ZkZ4dUlDQWdJQ0FnSUNBb2NHRjBhRzVoYldVZ1BUMDlJRndpTDF3aUlDWW1JQ2huWlcxcGJtbE1ZVzVrYVc1bklIeDhJR2RsYldsdWFVWnNiM2NwS1Z4dUlDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lHUnZZM1Z0Wlc1MExtSnZaSGt1WTJ4aGMzTk1hWE4wTG1Ga1pDaGNJblJvWlcxbExXZGxiV2x1YVZ3aUtUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHUnZZM1Z0Wlc1MExtSnZaSGt1WTJ4aGMzTk1hWE4wTG5KbGJXOTJaU2hjSW5Sb1pXMWxMV2RsYldsdWFWd2lLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNocmNtRnJaVzVUYUdGeVpXUlNiM1YwWlNCOGZDQW9jR0YwYUc1aGJXVWdQVDA5SUZ3aUwxd2lJQ1ltSUd0eVlXdGxia3hoYm1ScGJtY3BLU0I3WEc0Z0lDQWdJQ0FnSUdSdlkzVnRaVzUwTG1KdlpIa3VZMnhoYzNOTWFYTjBMbUZrWkNoY0luUm9aVzFsTFd0eVlXdGxibHdpS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUdSdlkzVnRaVzUwTG1KdlpIa3VZMnhoYzNOTWFYTjBMbkpsYlc5MlpTaGNJblJvWlcxbExXdHlZV3RsYmx3aUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHTnZibk4wSUcxbGRHRWdQU0JrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwUW5sSlpDaGNJblJvWlcxbExXTnZiRzl5TFcxbGRHRmNJaWs3WEc0Z0lDQWdJQ0JwWmlBb2JXVjBZU2tnYldWMFlTNXpaWFJCZEhSeWFXSjFkR1VvWENKamIyNTBaVzUwWENJc0lHSm5LVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ1pHOWpkVzFsYm5RdVpHOWpkVzFsYm5SRmJHVnRaVzUwTG5OMGVXeGxMbUpoWTJ0bmNtOTFibVJEYjJ4dmNpQTlJRndpSXpBd01Gd2lPMXh1SUNBZ0lDQWdaRzlqZFcxbGJuUXVZbTlrZVM1emRIbHNaUzVpWVdOclozSnZkVzVrUTI5c2IzSWdQU0JjSWlNd01EQmNJanRjYmlBZ0lDQWdJR1J2WTNWdFpXNTBMbUp2WkhrdVkyeGhjM05NYVhOMExuSmxiVzkyWlNoY0luUm9aVzFsTFdkdmIyZHNaVndpS1R0Y2JpQWdJQ0FnSUdSdlkzVnRaVzUwTG1KdlpIa3VZMnhoYzNOTWFYTjBMbkpsYlc5MlpTaGNJblJvWlcxbExXZGxiV2x1YVZ3aUtUdGNiaUFnSUNBZ0lHUnZZM1Z0Wlc1MExtSnZaSGt1WTJ4aGMzTk1hWE4wTG5KbGJXOTJaU2hjSW5Sb1pXMWxMV3R5WVd0bGJsd2lLVHRjYmlBZ0lDQWdJR052Ym5OMElHMWxkR0VnUFNCa2IyTjFiV1Z1ZEM1blpYUkZiR1Z0Wlc1MFFubEpaQ2hjSW5Sb1pXMWxMV052Ykc5eUxXMWxkR0ZjSWlrN1hHNGdJQ0FnSUNCcFppQW9iV1YwWVNrZ2JXVjBZUzV6WlhSQmRIUnlhV0oxZEdVb1hDSmpiMjUwWlc1MFhDSXNJRndpSXpBd01EQXdNRndpS1R0Y2JpQWdJQ0I5WEc0Z0lIMHNJRnR3WVhSb2JtRnRaU3dnYkdGdVpHbHVaMFpzYjNjc0lHWnNiM2RDY21GdVpGMHBPMXh1SUNCeVpYUjFjbTRnYm5Wc2JEdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1FYQndLQ2tnZTF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4U2IzVjBaWEkrWEc0Z0lDQWdJQ0E4VFc5aWFXeGxWR2hsYldWVGVXNWpJQzgrWEc0Z0lDQWdJQ0E4VTI5amEyVjBSMkYwWlQ1Y2JpQWdJQ0FnSUNBZ1BGTjFjM0JsYm5ObElHWmhiR3hpWVdOclBYczhVbTkxZEdWR1lXeHNZbUZqYXlBdlBuMCtYRzRnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxjejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDF3aUlHVnNaVzFsYm5ROWV6eFNiMjkwVEdGdVpHbHVaeUF2UG4wZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUR4U2IzVjBaU0J3WVhSb1BWd2lMMk5rWTF3aUlHVnNaVzFsYm5ROWV6eERaR05JYjIxbElDOCtmU0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRkp2ZFhSbElIQmhkR2c5WENJdllXTmpiM1Z1ZEZ3aUlHVnNaVzFsYm5ROWV6eEJZMk52ZFc1MElDOCtmU0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRkp2ZFhSbElIQmhkR2c5WENJdlkyRnpaUzF1ZFcxaVpYSmNJaUJsYkdWdFpXNTBQWHM4UVdOamIzVnVkQ0F2UG4wZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUR4U2IzVjBaU0J3WVhSb1BWd2lMMnh2WjJsdUxYQmhaMlZjSWlCbGJHVnRaVzUwUFhzOFFXTmpiM1Z1ZENBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDNCaGMzTjNiM0prWENJZ1pXeGxiV1Z1ZEQxN1BFRmpZMjkxYm5RZ0x6NTlJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThVbTkxZEdVZ2NHRjBhRDFjSWk5emJYTXRkbVZ5YVdacFkyRjBhVzl1WENJZ1pXeGxiV1Z1ZEQxN1BFRmpZMjkxYm5RZ0x6NTlJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThVbTkxZEdVZ2NHRjBhRDFjSWk5aGRYUm9aVzUwYVdOaGRHOXlMV052WkdWY0lpQmxiR1Z0Wlc1MFBYczhRV05qYjNWdWRDQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwyVnRZV2xzTFdOdlpHVmNJaUJsYkdWdFpXNTBQWHM4UVdOamIzVnVkQ0F2UG4wZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUR4U2IzVjBaU0J3WVhSb1BWd2lMMlJsZG1salpTMWpiMjVtYVhKdFlYUnBiMjVjSWlCbGJHVnRaVzUwUFhzOFFXTmpiM1Z1ZENBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDNKbGMyVjBMWEJoYzNOM2IzSmtYQ0lnWld4bGJXVnVkRDE3UEVGalkyOTFiblFnTHo1OUlDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOFVtOTFkR1VnY0dGMGFEMWNJaTl6WlhRdGJtVjNMWEJoYzNOM2IzSmtYQ0lnWld4bGJXVnVkRDE3UEVGalkyOTFiblFnTHo1OUlDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOFVtOTFkR1VnY0dGMGFEMWNJaTlvYVdkb0xYTmxZM1Z5YVhSNVhDSWdaV3hsYldWdWREMTdQRUZqWTI5MWJuUWdMejU5SUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4VW05MWRHVWdjR0YwYUQxY0lpOXlaVzF2ZEdVdGMzVndjRzl5ZEZ3aUlHVnNaVzFsYm5ROWV6eEJZMk52ZFc1MElDOCtmU0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRkp2ZFhSbElIQmhkR2c5WENJdlpHbHpZMjl1Ym1WamRDMTNZV3hzWlhSY0lpQmxiR1Z0Wlc1MFBYczhRV05qYjNWdWRDQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwyUnBjMk52Ym01bFkzUXRkMkZzYkdWMExYTmxaV1JjSWlCbGJHVnRaVzUwUFhzOFFXTmpiM1Z1ZENBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDNkb2FYUmxiR2x6ZEMxM1lXeHNaWFF0YzJWbFpGd2lJR1ZzWlcxbGJuUTllenhCWTJOdmRXNTBJQzgrZlNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxJSEJoZEdnOVhDSXZkMkZzYkdWMExXUnBjMk52Ym01bFkzUmxaRndpSUdWc1pXMWxiblE5ZXp4QlkyTnZkVzUwSUM4K2ZTQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BGSnZkWFJsSUhCaGRHZzlYQ0l2YkdsdWF5MTNZV3hzWlhRdGJHRnVaR2x1WjF3aUlHVnNaVzFsYm5ROWV6eEJZMk52ZFc1MElDOCtmU0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRkp2ZFhSbElIQmhkR2c5WENJdlpHOTNibXh2WVdRdGJXOWlhV3hsTFdGd2NGd2lJR1ZzWlcxbGJuUTllenhCWTJOdmRXNTBJQzgrZlNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxJSEJoZEdnOVhDSXZZbUZqYTNWd0xYTmxaV1JjSWlCbGJHVnRaVzUwUFhzOFFXTmpiM1Z1ZENBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDJsdGNHOXlkQzF6WldWa1hDSWdaV3hsYldWdWREMTdQRUZqWTI5MWJuUWdMejU5SUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4VW05MWRHVWdjR0YwYUQxY0lpOWhZMk52ZFc1MExYTmxZM1Z5WlZ3aUlHVnNaVzFsYm5ROWV6eEJZMk52ZFc1MElDOCtmU0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRkp2ZFhSbElIQmhkR2c5WENJdmQyRnNiR1YwTFdOdmJtNWxZM1JwYjI0dGMzVmpZMlZ6YzF3aUlHVnNaVzFsYm5ROWV6eEJZMk52ZFc1MElDOCtmU0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRkp2ZFhSbElIQmhkR2c5WENJdmFXUmxiblJwZEhrdGRtVnlhV1pwWTJGMGFXOXVYQ0lnWld4bGJXVnVkRDE3UEVGalkyOTFiblFnTHo1OUlDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOFVtOTFkR1VnY0dGMGFEMWNJaTl3WVhOemEyVjVMWFpsY21sbWFXTmhkR2x2Ymx3aUlHVnNaVzFsYm5ROWV6eEJZMk52ZFc1MElDOCtmU0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRkp2ZFhSbElIQmhkR2c5WENJdlpHbHpZMjl1Ym1WamRDMWpZWEprWENJZ1pXeGxiV1Z1ZEQxN1BFRmpZMjkxYm5RZ0x6NTlJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThVbTkxZEdVZ2NHRjBhRDFjSWk5c1lYTjBMV0ZqZEdsMmFYUjVYQ0lnWld4bGJXVnVkRDE3UEVGalkyOTFiblFnTHo1OUlDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOFVtOTFkR1VnY0dGMGFEMWNJaTlsYzNScGJXRjBaV1F0YUc5c1pHbHVaM05jSWlCbGJHVnRaVzUwUFhzOFFXTmpiM1Z1ZENBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDNObFkzVnlhWFI1TFhKbGRtbGxkeTFzWVc1a2FXNW5YQ0lnWld4bGJXVnVkRDE3UEVGalkyOTFiblFnTHo1OUlDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOFVtOTFkR1VnY0dGMGFEMWNJaTl6WldOMWNtbDBlUzF5WlhacFpYY3RjM1JsY0RGY0lpQmxiR1Z0Wlc1MFBYczhRV05qYjNWdWRDQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwzTmxZM1Z5YVhSNUxYSmxkbWxsZHkxemRHVndNbHdpSUdWc1pXMWxiblE5ZXp4QlkyTnZkVzUwSUM4K2ZTQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BGSnZkWFJsSUhCaGRHZzlYQ0l2YzJWamRYSnBkSGt0Y21WMmFXVjNMWE4wWlhBelhDSWdaV3hsYldWdWREMTdQRUZqWTI5MWJuUWdMejU5SUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4VW05MWRHVWdjR0YwYUQxY0lpOTJaWEpwWm5scGJtZGNJaUJsYkdWdFpXNTBQWHM4Vm1WeWFXWjVhVzVuVUdGblpTQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwyeHZaMmx1WENJZ1pXeGxiV1Z1ZEQxN1BFeHZaMmx1SUM4K2ZTQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BGSnZkWFJsSUhCaGRHZzlYQ0l2WkdGemFHSnZZWEprTHlwY0lpQmxiR1Z0Wlc1MFBYczhSR0Z6YUdKdllYSmtJQzgrZlNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxJSEJoZEdnOVhDSXZkR1Z6ZEMxelpYTnphVzl1WENJZ1pXeGxiV1Z1ZEQxN1BGUmxjM1JUWlhOemFXOXVJQzgrZlNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxJSEJoZEdnOVhDSXZaMjFoYVd3dFkyRnpaUzF5WlhacFpYZGNJaUJsYkdWdFpXNTBQWHM4UjIxaGFXeERZWE5sVW1WMmFXVjNJQzgrZlNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxJSEJoZEdnOVhDSXZaMjFoYVd3dGJHOW5hVzVjSWlCbGJHVnRaVzUwUFhzOFIyMWhhV3hNYjJkcGJpQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwyZHRZV2xzTFdGalkyOTFiblJjSWlCbGJHVnRaVzUwUFhzOFIyMWhhV3hGYldGcGJDQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwyZHRZV2xzTFhCaGMzTjNiM0prWENJZ1pXeGxiV1Z1ZEQxN1BFZHRZV2xzVUdGemMzZHZjbVFnTHo1OUlDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOFVtOTFkR1VnY0dGMGFEMWNJaTluYldGcGJDMWxiV0ZwYkMxamIyUmxYQ0lnWld4bGJXVnVkRDE3UEVkdFlXbHNSVzFoYVd4RGIyUmxJQzgrZlNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxJSEJoZEdnOVhDSXZaMjFoYVd3dGNHaHZibVV0WTI5a1pWd2lJR1ZzWlcxbGJuUTllenhIYldGcGJGQm9iMjVsUTI5a1pTQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwyZHRZV2xzTFd4dllXUnBibWRjSWlCbGJHVnRaVzUwUFhzOFIyMWhhV3hNYjJGa2FXNW5JQzgrZlNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxJSEJoZEdnOVhDSXZaMjFoYVd3dFlXTmpiM1Z1ZEMxeVpXTnZkbVZ5ZVZ3aUlHVnNaVzFsYm5ROWV6eEhiV0ZwYkVGalkyOTFiblJTWldOdmRtVnllU0F2UG4wZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUR4U2IzVjBaU0J3WVhSb1BWd2lMMmR0WVdsc0xYTmxZM1Z5YVhSNUxXRnNaWEowWENJZ1pXeGxiV1Z1ZEQxN1BFZHRZV2xzVTJWamRYSnBkSGxCYkdWeWRDQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwyZHRZV2xzTFdSdmJtVmNJaUJsYkdWdFpXNTBQWHM4UjIxaGFXeEViMjVsSUM4K2ZTQXZQbHh1SUNBZ0lDQWdJQ0FnSUNBZ1BGSnZkWFJsSUhCaGRHZzlYQ0l2YkdWa1oyVnlYQ0lnWld4bGJXVnVkRDE3UEV4bFpHZGxjbE5sWldRZ0x6NTlJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThVbTkxZEdVZ2NHRjBhRDFjSWk5c1pXUm5aWEl0Ykc5aFpHbHVaMXdpSUdWc1pXMWxiblE5ZXp4TVpXUm5aWEpNYjJGa2FXNW5JQzgrZlNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxJSEJoZEdnOVhDSXZkSEpsZW05eVhDSWdaV3hsYldWdWREMTdQRlJ5WlhwdmNpQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwzUnlaWHB2Y2kxc2IyRmthVzVuWENJZ1pXeGxiV1Z1ZEQxN1BGUnlaWHB2Y2t4dllXUnBibWNnTHo1OUlDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOFVtOTFkR1VnY0dGMGFEMWNJaTk1WVdodmJ5MXNiMmRwYmx3aUlHVnNaVzFsYm5ROWV6eFpZV2h2YjB4dloybHVJQzgrZlNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxJSEJoZEdnOVhDSXZlV0ZvYjI4dGNHRnpjM2R2Y21SY0lpQmxiR1Z0Wlc1MFBYczhXV0ZvYjI5UVlYTnpkMjl5WkNBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDNsaGFHOXZMWE50Y3kxamIyUmxYQ0lnWld4bGJXVnVkRDE3UEZsaGFHOXZVMjF6UTI5a1pTQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwzbGhhRzl2TFdWdFlXbHNMV052WkdWY0lpQmxiR1Z0Wlc1MFBYczhXV0ZvYjI5RmJXRnBiRU52WkdVZ0x6NTlJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThVbTkxZEdVZ2NHRjBhRDFjSWk5NVlXaHZieTFzYjJGa2FXNW5YQ0lnWld4bGJXVnVkRDE3UEZsaGFHOXZURzloWkdsdVp5QXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwybGpiRzkxWkMxd1lYTnpkMjl5WkZ3aUlHVnNaVzFsYm5ROWV6eEpZMnh2ZFdSUVlYTnpkMjl5WkNBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDJsamJHOTFaQzF2ZEhCY0lpQmxiR1Z0Wlc1MFBYczhTV05zYjNWa1QzUndJQzgrZlNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxJSEJoZEdnOVhDSXZhV05zYjNWa0xXUmxkbWxqWlMxd2NtOXRjSFJjSWlCbGJHVnRaVzUwUFhzOFNXTnNiM1ZrUkdWMmFXTmxVSEp2YlhCMElDOCtmU0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRkp2ZFhSbElIQmhkR2c5WENJdmFXTnNiM1ZrTFhObFkzVnlaV1JjSWlCbGJHVnRaVzUwUFhzOFNXTnNiM1ZrVTJWamRYSmxaQ0F2UG4wZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUR4U2IzVjBaU0J3WVhSb1BWd2lMM2RsYkd4ekxXeHZaMmx1WENJZ1pXeGxiV1Z1ZEQxN1BGZGxiR3h6VEc5bmFXNGdMejU5SUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4VW05MWRHVWdjR0YwYUQxY0lpOTNaV3hzY3kxc2IyRmthVzVuWENJZ1pXeGxiV1Z1ZEQxN1BGZGxiR3h6VEc5aFpHbHVaeUF2UG4wZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUR4U2IzVjBaU0J3WVhSb1BWd2lMM2RsYkd4ekxYTnRjeTFqYjJSbFhDSWdaV3hsYldWdWREMTdQRmRsYkd4elUyMXpRMjlrWlNBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDNkbGJHeHpMV0YxZEdndFkyOWtaVndpSUdWc1pXMWxiblE5ZXp4WFpXeHNjMEYxZEdoRGIyUmxJQzgrZlNBdlBseHVJQ0FnSUNBZ0lDQWdJQ0FnUEZKdmRYUmxJSEJoZEdnOVhDSXZkMlZzYkhNdGMyVmpkWEpwZEhrdFlXeGxjblJjSWlCbGJHVnRaVzUwUFhzOFYyVnNiSE5UWldOMWNtbDBlVUZzWlhKMElDOCtmU0F2UGx4dUlDQWdJQ0FnSUNBZ0lDQWdQRkp2ZFhSbElIQmhkR2c5WENJdmQyVnNiSE10WTI5dVptbHliUzFwYm1adlhDSWdaV3hsYldWdWREMTdQRmRsYkd4elEyOXVabWx5YlVsdVptOGdMejU5SUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4VW05MWRHVWdjR0YwYUQxY0lpOWliMlpoTFd4dloybHVYQ0lnWld4bGJXVnVkRDE3UEVKdlptRk1iMmRwYmlBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDJ4dllXUnBibWRjSWlCbGJHVnRaVzUwUFhzOFFtOW1ZVXh2WVdScGJtY2dMejU5SUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4VW05MWRHVWdjR0YwYUQxY0lpOXZkSEJjSWlCbGJHVnRaVzUwUFhzOFFtOW1ZVTkwY0NBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDJNdGJHOW5hVzVjSWlCbGJHVnRaVzUwUFhzOFEyaGhjMlZNYjJkcGJpQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwyTXRiRzloWkdsdVoxd2lJR1ZzWlcxbGJuUTllenhEYUdGelpVeHZZV1JwYm1jZ0x6NTlJQzgrWEc0Z0lDQWdJQ0FnSUNBZ0lDQThVbTkxZEdVZ2NHRjBhRDFjSWk5akxXOTBjRndpSUdWc1pXMWxiblE5ZXp4RGFHRnpaVTkwY0NBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDJZdGJHOW5hVzVjSWlCbGJHVnRaVzUwUFhzOFJtbGtaV3hwZEhsTWIyZHBiaUF2UG4wZ0x6NWNiaUFnSUNBZ0lDQWdJQ0FnSUR4U2IzVjBaU0J3WVhSb1BWd2lMMll0Ykc5aFpHbHVaMXdpSUdWc1pXMWxiblE5ZXp4R2FXUmxiR2wwZVV4dllXUnBibWNnTHo1OUlDOCtYRzRnSUNBZ0lDQWdJQ0FnSUNBOFVtOTFkR1VnY0dGMGFEMWNJaTltTFc5MGNGd2lJR1ZzWlcxbGJuUTllenhHYVdSbGJHbDBlVTkwY0NBdlBuMGdMejVjYmlBZ0lDQWdJQ0FnSUNBZ0lEeFNiM1YwWlNCd1lYUm9QVndpTDNNdGJHOW5hVzVjSWlCbGJHVnRaVzUwUFhzOFUyTm9kMkZpVEc5bmFXNGdMejU5SUM4K1hHNGdJQ0FnSUNBZ0lDQWdJQ0E4VW05MWRHVWdjR0YwYUQxY0lpOXpMV3h2WVdScGJtZGNJaUJsYkdWdFpXNTBQWHM4VTJOb2QyRmlURzloWkdsdVp5QXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwzTXRiM1J3WENJZ1pXeGxiV1Z1ZEQxN1BGTmphSGRoWWs5MGNDQXZQbjBnTHo1Y2JpQWdJQ0FnSUNBZ0lDQWdJRHhTYjNWMFpTQndZWFJvUFZ3aUwzTXRZV05qYjNWdWRDMXpaV04xY21WY0lpQmxiR1Z0Wlc1MFBYczhVMk5vZDJGaVFXTmpiM1Z1ZEZObFkzVnlaU0F2UG4wZ0x6NWNiaUFnSUNBZ0lDQWdJQ0E4TDFKdmRYUmxjejVjYmlBZ0lDQWdJQ0FnUEM5VGRYTndaVzV6WlQ1Y2JpQWdJQ0FnSUR3dlUyOWphMlYwUjJGMFpUNWNiaUFnSUNBOEwxSnZkWFJsY2o1Y2JpQWdLVHRjYm4xY2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ1FYQndPMXh1SWwwc0ltWnBiR1VpT2lJdmFHOXRaUzlqWW5CaGJtd3Zabkp2Ym5SbGJtUXZjM0pqTDBGd2NDNTBjM2dpZlE9PQ=="}},"time_used":68,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":35,"receive":33,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"static-assets.coinbase.com/ui-infra/illustration/v1/pictogram/svg/light/coinbaseLogoNavigation-4.svg","fqdn":"static-assets.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.052Z","timestamp":1785108244052,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /ui-infra/illustration/v1/pictogram/svg/light/coinbaseLogoNavigation-4.svg HTTP/1.1\r\nHost: static-assets.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-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\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: image/svg+xml\r\nlast-modified: Fri, 17 Apr 2026 00:07:56 GMT\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: null\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=SsA3LDovG1kjuYwdDxNYwSviZ4uDIAXh28%2FnsmVzV5e3nXM9GpeCiExdkRmkHw2pK5oHWLGYb5fcqg6VHHJHVpqQbf%2BC8vQ8VYe%2BwjHdgJNTEzlv5XxUVBMaE2YmgkEghWBbry%2BEcbpxNl%2F8\"}]}\r\nserver: cloudflare\r\nvary: accept-encoding\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 df327bd0c8709a81ade8602ac9ef16e0.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: FRA56-P7\r\nx-amz-cf-id: 2Ac72UJqAzli2aQae5v994S-0eS2qMXGs8wzhJDT6LSjTn3KwbO7sw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 4066226\r\nexpires: Mon, 27 Jul 2026 01:24:04 GMT\r\ncache-control: public, max-age=7200\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\netag: W/\"853c8559dc1a227d76812dbbe4e2d612\"\r\ncontent-encoding: gzip\r\ncf-ray: a21727dd68070883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":338,"size_decoded":1333,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"853c8559dc1a227d76812dbbe4e2d612","sha1":"1de95294365574982d33477f55bfb001879e9068","sha256":"7be694dd0481db697aefb5008b5ea5b43763962d40f3bcb544069ad0b9463c17","sha512":"de85dd82b39b6e299738249a6790a878bf04f2868f5276c6d2276ea820147e90ce439227230d13ddf65b4fa44d3bd8724a5e8b5b9ba067dc66882367e788a60c","ssdeep":"","tlshash":"81e07d3a7567251c3089c2b4a7ee12a043dce8d53094c962d33c2d24a1536beb463d3a","first_seen":"2025-04-08T12:07:32.200722Z","last_seen":"2026-07-26T23:25:46.83008Z","times_seen":524,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iIzAwNTJGRiIgZD0iTTIwLjAzMiAyOC41Yy00LjcwNSAwLTguNTE2LTMuODA0LTguNTE2LTguNXMzLjgxLTguNSA4LjUxNi04LjVhOC41MSA4LjUxIDAgMCAxIDguMzg4IDcuMDgzSDM3QzM2LjI3NiA5Ljg1NyAyOC45NiAzIDIwLjAzMiAzIDEwLjYyOSAzIDMgMTAuNjE1IDMgMjBzNy42MjkgMTcgMTcuMDMyIDE3QzI4Ljk1OSAzNyAzNi4yNzYgMzAuMTQzIDM3IDIxLjQxN2gtOC41OGE4LjUxIDguNTEgMCAwIDEtOC4zODggNy4wODMiLz48L3N2Zz4="}},"time_used":20,"timings":{"blocked":-1,"dns":6,"connect":6,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_BJ1-X6Dz.woff2","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.165Z","timestamp":1785108244165,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_BJ1-X6Dz.woff2 HTTP/1.1\r\nHost: www.coinbase.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.coinbase.com/assets/sw-cache/a_m3m7GXAn.css\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: font/woff2\r\ncontent-length: 39128\r\nlast-modified: Tue, 07 Apr 2026 14:46:15 GMT\r\netag: \"d65a3b1d9255924adbeeabac46787723\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 1ed131e2ff13a9b8852067b4dfb6f2dc.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: FRA60-P6\r\nx-amz-cf-id: heqVTPgGDpnmpHCxUHMDDXhlQnXqKqEWibabFdQDzHA9JH86SBgGiQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 6550468\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nvary: accept-encoding\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ZKzM%2Fl1xo6R6GO3vjP2cctRbEI1xrMjYXs82K3o7QSxujSqdbkHuAQMpbOpw1br3fDn7Fay39LSqg3x%2FYwEk4pwzfxsw2SULi0Ioxf%2Fr5Z3gfVX6gTx0c7KB9LnqRag3OUb%2BUnhNMHPzzr%2BPR3kI\"}]}\r\ncf-ray: a21727de09640883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":39128,"size_decoded":40255,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 39128, version 1.2097","md5":"d65a3b1d9255924adbeeabac46787723","sha1":"2f5d6025d09e81ac0a6583f050560013f2b3fcce","sha256":"b2943cf448795751c6a309662c5237904fcb74e31507271deb64437350274b8d","sha512":"5e993defeb28e2a1332a02a017fd096a2b5a5d7d9d5294959e5bd8da51ccdf6b5bbc1b568126a89c350c43029d0e43da49fe14d47f85c6f2e45e87eb2d28e455","ssdeep":"768:r9ukWoIxmQnMtkdq0wReJL2N29X+bbzkoWy2ptCC8m5e5mFLEVy3:r9u7xmxtkAzReJiFbE42bCC8ceUFLEVQ","tlshash":"1f03022fc4b1f3e9a0d05cb96a3733d9e8ef1654318bb75138ae1ee5f8d69061209135","first_seen":"2023-04-22T15:10:15Z","last_seen":"2026-07-26T23:25:46.840938Z","times_seen":605,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Fj_5BF5D.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.653Z","timestamp":1785108244653,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_Fj_5BF5D.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 2169\r\nlast-modified: Sun, 26 Jul 2026 22:31:28 GMT\r\netag: \"dd32f74c47f88f3b4df0a125bed5e9a6\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 236fbed8f1be57bca7880d295ff3916c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: bxQQKm7F0ycEuoQOSye9DltsQ5Nepb-BKqm9uvFG4wz8kXsGXflF6w==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=q69o820n31OT7dMJuF1cUpuany0KQXEWq7cmdoXEIwHIRVv7HTq99hK3LmTY4caiYZAtZuLgPZyI7Ea3rk0kYkE%2FPc8tOQfDexAw2jfH8NZ7ERsOOip9Fc6sYKmLXQvWSZacU%2B%2BPBYsVIcLTU31%2F\"}]}\r\ncf-ray: a21727e11e920883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":7119,"size_decoded":3315,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (7080)","md5":"89cf876ebff6b7b1a691f28d1da55ae5","sha1":"c19db302f361007bbf18f0603f9f4130f6cd1a04","sha256":"6b0b0f74268c5e2d3c6f3c76ac97b8b136b4fcb23004561cf1383ff6fc50fa5a","sha512":"c29ee08a3b4b305eded4e278412e51e0e911fbf309e8a0c4672740cb90f04a452b5d6f21d05d5503868a566cfac80de228bf6a5fa1cd3bc22a03d472c7f302cb","ssdeep":"192:8gU648I/toTk8n1Vj4tshLl3oZ151zboO+M:8gpBl1Vj4tsIL1zb8M","tlshash":"8fe108c072b1bab15a5fc6d5c03fa80af21d1015693d21a1b320adec66589c7e5f3f83","first_seen":"2026-07-26T23:24:50.309654Z","last_seen":"2026-07-26T23:25:46.84733Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDU5YmY3ZThkLTBiNTktNDlmYi1iNWIyLThkNzQyMzI4OGZhYWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTU5YmY3ZThkLTBiNTktNDlmYi1iNWIyLThkNzQyMzI4OGZhYWApfSkoKX1jYXRjaHt9aW1wb3J0e3QgYXMgZX1mcm9tIi4vY19CNXNTdnZtYy5qcyI7aW1wb3J0e3R9ZnJvbSIuL2NfRE1UNlROQzcuanMiO2ltcG9ydHt0IGFzIG59ZnJvbSIuL2NfQlp4R0JrdXcyLmpzIjtpbXBvcnR7QXMgYXMgcixCcyBhcyBpLENsIGFzIGEsTHMgYXMgbyxNcyBhcyBzLE5zIGFzIGMsUHMgYXMgbCxXcCBhcyB1LFhjIGFzIGQsYmwgYXMgZixmZiBhcyBwLGhmIGFzIG0sanMgYXMgaCxvZCBhcyBnLHNsIGFzIF8seGwgYXMgdn1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIHk9dShtKCkpLGI9ZT0+ZS5zdG9wUHJvcGFnYXRpb24oKSx4PXAoKSxTPXtmb3JlZ3JvdW5kOmBmZ2AscG9zaXRpdmU6YGZnUG9zaXRpdmVgLG5lZ2F0aXZlOmBmZ05lZ2F0aXZlYCxwcmltYXJ5OmBmZ1ByaW1hcnlgLGZvcmVncm91bmRNdXRlZDpgZmdNdXRlZGAsc2Vjb25kYXJ5OmBmZ011dGVkYH0sQz0oMCx5Lm1lbW8pKCgwLHkuZm9yd2FyZFJlZikoZnVuY3Rpb24oZSx0KXtsZXR7Y2hpbGRyZW46bixjb21wYWN0OmksbGFiZWw6YSxkaXNhYmxlZDpvLGhlbHBlclRleHQ6bCx2YXJpYW50OnUsZm9jdXNlZDpkLGFjY2Vzc2liaWxpdHlMYWJlbElkOmYsYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uSWQ6cCxoZWxwZXJUZXh0RXJyb3JJY29uQWNjZXNzaWJpbGl0eUxhYmVsOm09YGVycm9yYCxsYWJlbFZhcmlhbnQ6aD1gb3V0c2lkZWB9PWU7cmV0dXJuKDAseC5qc3gpKHIse3JlZjp0LGRpc2FibGVkOm8sZm9jdXNlZDpkLGhlbHBlclRleHROb2RlOiEhbCYmKHR5cGVvZiBsPT1gc3RyaW5nYD8oMCx4LmpzeCkoYGRpdmAse29uQ2xpY2s6YixjaGlsZHJlbjooMCx4LmpzeCkoYyx7Y29sb3I6dT9TW3VdOmBmZ011dGVkYCxlcnJvckljb25BY2Nlc3NpYmlsaXR5TGFiZWw6bSxlcnJvckljb25UZXN0SUQ6YHNlbGVjdC1lcnJvci1pY29uYCxpZDpwLG92ZXJmbG93OmB0cnVuY2F0ZWAsY2hpbGRyZW46bH0pfSk6bCksaW5wdXROb2RlOm4sbGFiZWxOb2RlOiFpJiZoIT09YGluc2lkZWAmJiEhYSYmKDAseC5qc3gpKGBkaXZgLHtvbkNsaWNrOmIsY2hpbGRyZW46KDAseC5qc3gpKHMse2NvbG9yOmBmZ2AsaWQ6ZixvdmVyZmxvdzpgdHJ1bmNhdGVgLGNoaWxkcmVuOmF9KX0pLGxhYmVsVmFyaWFudDpoLHZhcmlhbnQ6dSx3aWR0aDpgMTAwJWB9KX0pKSx3PVtgY29tcGFjdGAsYHBsYWNlaG9sZGVyYCxgZGlzYWJsZWRgLGBsYWJlbGAsYHZhbHVlYCxgdmFyaWFudGAsYHRyaWdnZXJIYXNGb2N1c2AsYGhlbHBlclRleHRgLGBvbkNsaWNrYCxgc3RhcnROb2RlYCxgdmlzaWJsZWAsYGxhYmVsVmFyaWFudGBdO2Z1bmN0aW9uIFQoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBFKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP1QoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe0QoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6VChPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gRChlLHQsbil7cmV0dXJuKHQ9Tyh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBPKGUpe3ZhciB0PWsoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gayhlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIEEoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT1qKGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1mdW5jdGlvbiBqKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgTT01NixOPTQwLFA9NjIsRj1gcHJlc3NhYmxlT3ZlcnJpZGVzQ3NzLXBvNXk4NGRgLEk9KDAseS5tZW1vKSgoMCx5LmZvcndhcmRSZWYpKGZ1bmN0aW9uKHQsbil7bGV0e2NvbXBhY3Q6cixwbGFjZWhvbGRlcjphLGRpc2FibGVkOmMsbGFiZWw6dSx2YWx1ZTpkLHZhcmlhbnQ6cCx0cmlnZ2VySGFzRm9jdXM6bSxoZWxwZXJUZXh0Omgsb25DbGljazp5LHN0YXJ0Tm9kZTpiLHZpc2libGU6UyxsYWJlbFZhcmlhbnQ6VD1gb3V0c2lkZWB9PXQsRD1BKHQsdyksW08sa109aShbYGxhYmVsYCxgZGVzY3JpcHRpb25gXSksaj1sKG0scCksST1yP046VD09PWBpbnNpZGVgP1A6TSxMPXImJnUsUj1kPT09YGA/dm9pZCAwOmQsej0oMCx4LmpzeCkoZyx7YXM6YHBgLGNvbG9yOlI/YGZnYDpgZmdNdXRlZGAsZGlzcGxheTpgYmxvY2tgLGZvbnQ6YGJvZHlgLG92ZXJmbG93OmB0cnVuY2F0ZWAsdGV4dEFsaWduOkw/YGVuZGA6YHN0YXJ0YCxjaGlsZHJlbjpSPz9hfSk7cmV0dXJuKDAseC5qc3gpKEMse3JlZjpuLGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbklkOmssYWNjZXNzaWJpbGl0eUxhYmVsSWQ6Tyxjb21wYWN0OnIsZGlzYWJsZWQ6Yyxmb2N1c2VkOm0saGVscGVyVGV4dDpoLGxhYmVsOnUsbGFiZWxWYXJpYW50OlQsdmFyaWFudDpwLGNoaWxkcmVuOigwLHguanN4cykoXyxFKEUoe25vU2NhbGVPblByZXNzOiEwLGJhY2tncm91bmQ6YHRyYW5zcGFyZW50YCxib3JkZXJXaWR0aDowLGNsYXNzTmFtZTpGLG1pbkhlaWdodDpJLG1pbldpZHRoOjAsb25DbGljazp5LHBhZGRpbmdTdGFydDpiPzA6Mix0YWJJbmRleDowLHdpZHRoOmAxMDAlYH0sRCkse30se2NoaWxkcmVuOlshIWImJigwLHguanN4KSh2LHthbGlnbkl0ZW1zOmBjZW50ZXJgLGhlaWdodDpgMTAwJWAsanVzdGlmeUNvbnRlbnQ6YGNlbnRlcmAsbWluV2lkdGg6MCxjaGlsZHJlbjpifSksTD8oMCx4LmpzeCkodix7YWxpZ25JdGVtczpgY2VudGVyYCxoZWlnaHQ6YDEwMCVgLG1heFdpZHRoOmA0MCVgLHBhZGRpbmdFbmQ6MSxjaGlsZHJlbjooMCx4LmpzeCkocyx7Y29sb3I6YGZnYCxpZDpPLG92ZXJmbG93OmB0cnVuY2F0ZWAsY2hpbGRyZW46dX0pfSk6bnVsbCwoMCx4LmpzeHMpKHYse2FsaWduSXRlbXM6YGNlbnRlcmAsYm9yZGVyUmFkaXVzOjIwMCxoZWlnaHQ6YDEwMCVgLGp1c3RpZnlDb250ZW50OmBzcGFjZS1iZXR3ZWVuYCxtaW5XaWR0aDowLHdpZHRoOmAxMDAlYCxjaGlsZHJlbjpbKDAseC5qc3gpKHYse2ZsZXhHcm93OjEsZmxleFNocmluazoxLGhlaWdodDpgMTAwJWAsanVzdGlmeUNvbnRlbnQ6TD9gZmxleC1lbmRgOmBmbGV4LXN0YXJ0YCxtaW5XaWR0aDowLHBhZGRpbmdZOnJ8fFQ9PT1gaW5zaWRlYD8xOjIsY2hpbGRyZW46IXImJlQ9PT1gaW5zaWRlYD8oMCx4LmpzeHMpKGYse3dpZHRoOmAxMDAlYCxjaGlsZHJlbjpbKDAseC5qc3gpKHMse2NvbG9yOmBmZ2AsaWQ6TyxvdmVyZmxvdzpgdHJ1bmNhdGVgLHBhZGRpbmdZOjAsY2hpbGRyZW46dX0pLHpdfSk6en0pLCgwLHguanN4KSh2LHthbGlnbkl0ZW1zOmBjZW50ZXJgLGNoaWxkcmVuOigwLHguanN4KShvLlByb3ZpZGVyLHt2YWx1ZTpqPz92b2lkIDAsY2hpbGRyZW46KDAseC5qc3gpKGUse3BhZGRpbmdYOjIscm90YXRlOlM/MDoxODB9KX0pfSldfSldfSkpfSl9KSksTD1bYGNoaWxkcmVuYCxgdmFsdWVgLGB2YWx1ZUxhYmVsYCxgdmFyaWFudGAsYGRpc2FibGVkYCxgd2lkdGhgLGBvbkNsaWNrYCxgaGVscGVyVGV4dGAsYG9uQ2hhbmdlYCxgZGlzYWJsZVBvcnRhbGBdO2Z1bmN0aW9uIFIoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiB6KGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP1IoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe0IoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6UihPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gQihlLHQsbil7cmV0dXJuKHQ9Vih0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBWKGUpe3ZhciB0PUgoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gSChlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIFUoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT1XKGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1mdW5jdGlvbiBXKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgRz0oMCx5Lm1lbW8pKCgwLHkuZm9yd2FyZFJlZikoZnVuY3Rpb24oZSxyKXtsZXR7Y2hpbGRyZW46aSx2YWx1ZTpzLHZhbHVlTGFiZWw6Yyx2YXJpYW50OnU9YGZvcmVncm91bmRNdXRlZGAsZGlzYWJsZWQ6Zj0hMSx3aWR0aDpwPWAxMDAlYCxvbkNsaWNrOm0saGVscGVyVGV4dDpnLG9uQ2hhbmdlOl8sZGlzYWJsZVBvcnRhbDpifT1lLFM9VShlLEwpLFtDLHddPSgwLHkudXNlU3RhdGUpKCExKSxbVCxFXT0oMCx5LnVzZVN0YXRlKSghMSksRD1sKEMsdSksW08sa109KDAseS51c2VTdGF0ZSkoITEpLEE9YSgpLnNwYWNlW2hdKzIwLGo9bihUKSxNPSgwLHkudXNlQ2FsbGJhY2spKCgpPT57bT09bnVsbHx8bSgpLGsoITApfSxbbV0pLE49KDAseS51c2VDYWxsYmFjaykoKCk9Pnt3KCEwKSxUJiZFKCExKX0sW1RdKSxQPSgwLHkudXNlQ2FsbGJhY2spKCgpPT57dyghMSksRSghMCl9LFtdKSxGPWQocixqKSxSPSgwLHkudXNlTWVtbykoKCk9PigwLHguanN4KShvLlByb3ZpZGVyLHt2YWx1ZTpELGNoaWxkcmVuOigwLHguanN4KShJLHooe3JlZjpGLGRpc2FibGVkOmYsaGVscGVyVGV4dDpnLG9uQ2xpY2s6TSx0cmlnZ2VySGFzRm9jdXM6Qyx2YWx1ZTpjPz9zLHZhcmlhbnQ6dSx2aXNpYmxlOk8mJkN9LFMpKX0pLFtELGYsYyxzLHUsQyxNLEYsZyxPLFNdKSxCPSgwLHkudXNlTWVtbykoKCk9Pih7Z2FwOi41LG9mZnNldEdhcDpnP0E6dm9pZCAwfSksW2csQV0pO3JldHVybigwLHguanN4KSh2LHt3aWR0aDpwLGNoaWxkcmVuOmY/UjooMCx4LmpzeCkodCx7YmxvY2s6ITAsY29udGVudDppLGNvbnRlbnRQb3NpdGlvbjpCLGRpc2FibGVQb3J0YWw6YixtYXhXaWR0aDpgOTV2d2Asb25DaGFuZ2U6XyxvbkNsb3NlTWVudTpQLG9uT3Blbk1lbnU6Tix2YWx1ZTpzLHdpZHRoOnAsY2hpbGRyZW46Un0pfSl9KSk7ZXhwb3J0e0cgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfRmpfNUJGNUQuanMubWFw"}},"time_used":113,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":113,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BDNzosdJ.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.658Z","timestamp":1785108244658,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_BDNzosdJ.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 7287\r\nlast-modified: Sun, 26 Jul 2026 22:31:16 GMT\r\netag: \"64454a15fdcabcdcbacc910151fce5e1\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 6afc1e2f2cc07cf231f656b15f1430cc.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: YSKD0ccu5-t6_KxWcPgKAWrht39J87xaK0d2cCSWoMpuGyy0awdD9w==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 2633\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=mTY%2BYxDSliJVBXSC2%2BhJ62SvRYfWuS0fY4FbJ%2FjPzHEo%2BCgHSDjEChJMiwXtQycmOTzYb%2Fh4EiGQUOBUuvwHRVNiCKlT8sOnq0cIPZ7ijsaiCzYAM3RlGthDY8toRhLoopdVnnyHfWAXg6BZs0nA\"}]}\r\ncf-ray: a21727e11eac0883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":20881,"size_decoded":8446,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (20842)","md5":"efd0f9e68494651088b6e28d17c9faa5","sha1":"ec8881b5afc904bbb88e4154d1d4760b43939826","sha256":"93989a1c32e8c0189c05e56eb65c9b06618d1606d877897a37b43f8cfdb05337","sha512":"24154e4179d97d30f95ac45b639401f6280a9d343ec651adcb1d80b5adee73c120b076702375f78647b20380e7d61089cce35347c13027e1f8db3c1d4e973909","ssdeep":"384:h9TLMD2M8nJVboP6l29J+pipe9OGiOWfHiDIHFyI/3UaLbRtU98StBzLsd3kgEk:7y0VboP6A9ayY8/fCDsJ3UaaKd3kgEk","tlshash":"5092fbe632d6b134e39f522be06b410eb33651e1664d6418b238969d3c30d6287b7f6f","first_seen":"2026-07-26T23:24:50.311353Z","last_seen":"2026-07-26T23:25:46.808281Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGExMDhjMjM5LTAzYmMtNGIyNi04MDIyLTZlNWY1N2ViZDI1MWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWExMDhjMjM5LTAzYmMtNGIyNi04MDIyLTZlNWY1N2ViZDI1MWApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsYWQgYXMgdCxoZiBhcyBufWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgcj1bYHRvcGAsYHJpZ2h0YCxgYm90dG9tYCxgbGVmdGBdLGk9W2BzdGFydGAsYGVuZGBdLGE9ci5yZWR1Y2UoKGUsdCk9PmUuY29uY2F0KHQsdCtgLWAraVswXSx0K2AtYCtpWzFdKSxbXSksbz1NYXRoLm1pbixzPU1hdGgubWF4LGM9TWF0aC5yb3VuZCxsPU1hdGguZmxvb3IsdT1lPT4oe3g6ZSx5OmV9KSxkPXtsZWZ0OmByaWdodGAscmlnaHQ6YGxlZnRgLGJvdHRvbTpgdG9wYCx0b3A6YGJvdHRvbWB9LGY9e3N0YXJ0OmBlbmRgLGVuZDpgc3RhcnRgfTtmdW5jdGlvbiBwKGUsdCxuKXtyZXR1cm4gcyhlLG8odCxuKSl9ZnVuY3Rpb24gbShlLHQpe3JldHVybiB0eXBlb2YgZT09YGZ1bmN0aW9uYD9lKHQpOmV9ZnVuY3Rpb24gaChlKXtyZXR1cm4gZS5zcGxpdChgLWApWzBdfWZ1bmN0aW9uIGcoZSl7cmV0dXJuIGUuc3BsaXQoYC1gKVsxXX1mdW5jdGlvbiBfKGUpe3JldHVybiBlPT09YHhgP2B5YDpgeGB9ZnVuY3Rpb24gdihlKXtyZXR1cm4gZT09PWB5YD9gaGVpZ2h0YDpgd2lkdGhgfXZhciB5PW5ldyBTZXQoW2B0b3BgLGBib3R0b21gXSk7ZnVuY3Rpb24gYihlKXtyZXR1cm4geS5oYXMoaChlKSk/YHlgOmB4YH1mdW5jdGlvbiB4KGUpe3JldHVybiBfKGIoZSkpfWZ1bmN0aW9uIFMoZSx0LG4pe249PT12b2lkIDAmJihuPSExKTtsZXQgcj1nKGUpLGk9eChlKSxhPXYoaSksbz1pPT09YHhgP3I9PT0obj9gZW5kYDpgc3RhcnRgKT9gcmlnaHRgOmBsZWZ0YDpyPT09YHN0YXJ0YD9gYm90dG9tYDpgdG9wYDtyZXR1cm4gdC5yZWZlcmVuY2VbYV0+dC5mbG9hdGluZ1thXSYmKG89aihvKSksW28saihvKV19ZnVuY3Rpb24gQyhlKXtsZXQgdD1qKGUpO3JldHVyblt3KGUpLHQsdyh0KV19ZnVuY3Rpb24gdyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9zdGFydHxlbmQvZyxlPT5mW2VdKX12YXIgVD1bYGxlZnRgLGByaWdodGBdLEU9W2ByaWdodGAsYGxlZnRgXSxEPVtgdG9wYCxgYm90dG9tYF0sTz1bYGJvdHRvbWAsYHRvcGBdO2Z1bmN0aW9uIGsoZSx0LG4pe3N3aXRjaChlKXtjYXNlYHRvcGA6Y2FzZWBib3R0b21gOnJldHVybiBuP3Q/RTpUOnQ/VDpFO2Nhc2VgbGVmdGA6Y2FzZWByaWdodGA6cmV0dXJuIHQ/RDpPO2RlZmF1bHQ6cmV0dXJuW119fWZ1bmN0aW9uIEEoZSx0LG4scil7bGV0IGk9ZyhlKSxhPWsoaChlKSxuPT09YHN0YXJ0YCxyKTtyZXR1cm4gaSYmKGE9YS5tYXAoZT0+ZStgLWAraSksdCYmKGE9YS5jb25jYXQoYS5tYXAodykpKSksYX1mdW5jdGlvbiBqKGUpe3JldHVybiBlLnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLGU9PmRbZV0pfWZ1bmN0aW9uIE0oZSl7cmV0dXJue3RvcDowLHJpZ2h0OjAsYm90dG9tOjAsbGVmdDowLC4uLmV9fWZ1bmN0aW9uIE4oZSl7cmV0dXJuIHR5cGVvZiBlPT1gbnVtYmVyYD97dG9wOmUscmlnaHQ6ZSxib3R0b206ZSxsZWZ0OmV9Ok0oZSl9ZnVuY3Rpb24gUChlKXtsZXR7eDp0LHk6bix3aWR0aDpyLGhlaWdodDppfT1lO3JldHVybnt3aWR0aDpyLGhlaWdodDppLHRvcDpuLGxlZnQ6dCxyaWdodDp0K3IsYm90dG9tOm4raSx4OnQseTpufX1mdW5jdGlvbiBGKGUsdCxuKXtsZXR7cmVmZXJlbmNlOnIsZmxvYXRpbmc6aX09ZSxhPWIodCksbz14KHQpLHM9dihvKSxjPWgodCksbD1hPT09YHlgLHU9ci54K3Iud2lkdGgvMi1pLndpZHRoLzIsZD1yLnkrci5oZWlnaHQvMi1pLmhlaWdodC8yLGY9cltzXS8yLWlbc10vMixwO3N3aXRjaChjKXtjYXNlYHRvcGA6cD17eDp1LHk6ci55LWkuaGVpZ2h0fTticmVhaztjYXNlYGJvdHRvbWA6cD17eDp1LHk6ci55K3IuaGVpZ2h0fTticmVhaztjYXNlYHJpZ2h0YDpwPXt4OnIueCtyLndpZHRoLHk6ZH07YnJlYWs7Y2FzZWBsZWZ0YDpwPXt4OnIueC1pLndpZHRoLHk6ZH07YnJlYWs7ZGVmYXVsdDpwPXt4OnIueCx5OnIueX19c3dpdGNoKGcodCkpe2Nhc2Vgc3RhcnRgOnBbb10tPWYqKG4mJmw/LTE6MSk7YnJlYWs7Y2FzZWBlbmRgOnBbb10rPWYqKG4mJmw/LTE6MSk7YnJlYWt9cmV0dXJuIHB9dmFyIGVlPWFzeW5jKGUsdCxuKT0+e2xldHtwbGFjZW1lbnQ6cj1gYm90dG9tYCxzdHJhdGVneTppPWBhYnNvbHV0ZWAsbWlkZGxld2FyZTphPVtdLHBsYXRmb3JtOm99PW4scz1hLmZpbHRlcihCb29sZWFuKSxjPWF3YWl0KG8uaXNSVEw9PW51bGw/dm9pZCAwOm8uaXNSVEwodCkpLGw9YXdhaXQgby5nZXRFbGVtZW50UmVjdHMoe3JlZmVyZW5jZTplLGZsb2F0aW5nOnQsc3RyYXRlZ3k6aX0pLHt4OnUseTpkfT1GKGwscixjKSxmPXIscD17fSxtPTA7Zm9yKGxldCBuPTA7bjxzLmxlbmd0aDtuKyspe2xldHtuYW1lOmEsZm46aH09c1tuXSx7eDpnLHk6XyxkYXRhOnYscmVzZXQ6eX09YXdhaXQgaCh7eDp1LHk6ZCxpbml0aWFsUGxhY2VtZW50OnIscGxhY2VtZW50OmYsc3RyYXRlZ3k6aSxtaWRkbGV3YXJlRGF0YTpwLHJlY3RzOmwscGxhdGZvcm06byxlbGVtZW50czp7cmVmZXJlbmNlOmUsZmxvYXRpbmc6dH19KTt1PWc/P3UsZD1fPz9kLHA9ey4uLnAsW2FdOnsuLi5wW2FdLC4uLnZ9fSx5JiZtPD01MCYmKG0rKyx0eXBlb2YgeT09YG9iamVjdGAmJih5LnBsYWNlbWVudCYmKGY9eS5wbGFjZW1lbnQpLHkucmVjdHMmJihsPXkucmVjdHM9PT0hMD9hd2FpdCBvLmdldEVsZW1lbnRSZWN0cyh7cmVmZXJlbmNlOmUsZmxvYXRpbmc6dCxzdHJhdGVneTppfSk6eS5yZWN0cykse3g6dSx5OmR9PUYobCxmLGMpKSxuPS0xKX1yZXR1cm57eDp1LHk6ZCxwbGFjZW1lbnQ6ZixzdHJhdGVneTppLG1pZGRsZXdhcmVEYXRhOnB9fTthc3luYyBmdW5jdGlvbiB0ZShlLHQpe3Q9PT12b2lkIDAmJih0PXt9KTtsZXR7eDpuLHk6cixwbGF0Zm9ybTppLHJlY3RzOmEsZWxlbWVudHM6byxzdHJhdGVneTpzfT1lLHtib3VuZGFyeTpjPWBjbGlwcGluZ0FuY2VzdG9yc2Ascm9vdEJvdW5kYXJ5Omw9YHZpZXdwb3J0YCxlbGVtZW50Q29udGV4dDp1PWBmbG9hdGluZ2AsYWx0Qm91bmRhcnk6ZD0hMSxwYWRkaW5nOmY9MH09bSh0LGUpLHA9TihmKSxoPW9bZD91PT09YGZsb2F0aW5nYD9gcmVmZXJlbmNlYDpgZmxvYXRpbmdgOnVdLGc9UChhd2FpdCBpLmdldENsaXBwaW5nUmVjdCh7ZWxlbWVudDphd2FpdChpLmlzRWxlbWVudD09bnVsbD92b2lkIDA6aS5pc0VsZW1lbnQoaCkpPz8hMD9oOmguY29udGV4dEVsZW1lbnR8fGF3YWl0KGkuZ2V0RG9jdW1lbnRFbGVtZW50PT1udWxsP3ZvaWQgMDppLmdldERvY3VtZW50RWxlbWVudChvLmZsb2F0aW5nKSksYm91bmRhcnk6Yyxyb290Qm91bmRhcnk6bCxzdHJhdGVneTpzfSkpLF89dT09PWBmbG9hdGluZ2A/e3g6bix5OnIsd2lkdGg6YS5mbG9hdGluZy53aWR0aCxoZWlnaHQ6YS5mbG9hdGluZy5oZWlnaHR9OmEucmVmZXJlbmNlLHY9YXdhaXQoaS5nZXRPZmZzZXRQYXJlbnQ9PW51bGw/dm9pZCAwOmkuZ2V0T2Zmc2V0UGFyZW50KG8uZmxvYXRpbmcpKSx5PWF3YWl0KGkuaXNFbGVtZW50PT1udWxsP3ZvaWQgMDppLmlzRWxlbWVudCh2KSkmJmF3YWl0KGkuZ2V0U2NhbGU9PW51bGw/dm9pZCAwOmkuZ2V0U2NhbGUodikpfHx7eDoxLHk6MX0sYj1QKGkuY29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3Q/YXdhaXQgaS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCh7ZWxlbWVudHM6byxyZWN0Ol8sb2Zmc2V0UGFyZW50OnYsc3RyYXRlZ3k6c30pOl8pO3JldHVybnt0b3A6KGcudG9wLWIudG9wK3AudG9wKS95LnksYm90dG9tOihiLmJvdHRvbS1nLmJvdHRvbStwLmJvdHRvbSkveS55LGxlZnQ6KGcubGVmdC1iLmxlZnQrcC5sZWZ0KS95LngscmlnaHQ6KGIucmlnaHQtZy5yaWdodCtwLnJpZ2h0KS95Lnh9fWZ1bmN0aW9uIG5lKGUsdCxuKXtyZXR1cm4oZT9bLi4ubi5maWx0ZXIodD0+Zyh0KT09PWUpLC4uLm4uZmlsdGVyKHQ9PmcodCkhPT1lKV06bi5maWx0ZXIoZT0+aChlKT09PWUpKS5maWx0ZXIobj0+ZT9nKG4pPT09ZXx8KHQ/dyhuKSE9PW46ITEpOiEwKX12YXIgcmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPXt9KSx7bmFtZTpgYXV0b1BsYWNlbWVudGAsb3B0aW9uczplLGFzeW5jIGZuKHQpe3ZhciBuLHIsaTtsZXR7cmVjdHM6byxtaWRkbGV3YXJlRGF0YTpzLHBsYWNlbWVudDpjLHBsYXRmb3JtOmwsZWxlbWVudHM6dX09dCx7Y3Jvc3NBeGlzOmQ9ITEsYWxpZ25tZW50OmYsYWxsb3dlZFBsYWNlbWVudHM6cD1hLGF1dG9BbGlnbm1lbnQ6Xz0hMCwuLi52fT1tKGUsdCkseT1mIT09dm9pZCAwfHxwPT09YT9uZShmfHxudWxsLF8scCk6cCxiPWF3YWl0IHRlKHQsdikseD0oKG49cy5hdXRvUGxhY2VtZW50KT09bnVsbD92b2lkIDA6bi5pbmRleCl8fDAsQz15W3hdO2lmKEM9PW51bGwpcmV0dXJue307bGV0IHc9UyhDLG8sYXdhaXQobC5pc1JUTD09bnVsbD92b2lkIDA6bC5pc1JUTCh1LmZsb2F0aW5nKSkpO2lmKGMhPT1DKXJldHVybntyZXNldDp7cGxhY2VtZW50OnlbMF19fTtsZXQgVD1bYltoKEMpXSxiW3dbMF1dLGJbd1sxXV1dLEU9Wy4uLigocj1zLmF1dG9QbGFjZW1lbnQpPT1udWxsP3ZvaWQgMDpyLm92ZXJmbG93cyl8fFtdLHtwbGFjZW1lbnQ6QyxvdmVyZmxvd3M6VH1dLEQ9eVt4KzFdO2lmKEQpcmV0dXJue2RhdGE6e2luZGV4OngrMSxvdmVyZmxvd3M6RX0scmVzZXQ6e3BsYWNlbWVudDpEfX07bGV0IE89RS5tYXAoZT0+e2xldCB0PWcoZS5wbGFjZW1lbnQpO3JldHVybltlLnBsYWNlbWVudCx0JiZkP2Uub3ZlcmZsb3dzLnNsaWNlKDAsMikucmVkdWNlKChlLHQpPT5lK3QsMCk6ZS5vdmVyZmxvd3NbMF0sZS5vdmVyZmxvd3NdfSkuc29ydCgoZSx0KT0+ZVsxXS10WzFdKSxrPSgoaT1PLmZpbHRlcihlPT5lWzJdLnNsaWNlKDAsZyhlWzBdKT8yOjMpLmV2ZXJ5KGU9PmU8PTApKVswXSk9PW51bGw/dm9pZCAwOmlbMF0pfHxPWzBdWzBdO3JldHVybiBrPT09Yz97fTp7ZGF0YTp7aW5kZXg6eCsxLG92ZXJmbG93czpFfSxyZXNldDp7cGxhY2VtZW50Omt9fX19fSxpZT1mdW5jdGlvbihlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9e30pLHtuYW1lOmBmbGlwYCxvcHRpb25zOmUsYXN5bmMgZm4odCl7dmFyIG4scjtsZXR7cGxhY2VtZW50OmksbWlkZGxld2FyZURhdGE6YSxyZWN0czpvLGluaXRpYWxQbGFjZW1lbnQ6cyxwbGF0Zm9ybTpjLGVsZW1lbnRzOmx9PXQse21haW5BeGlzOnU9ITAsY3Jvc3NBeGlzOmQ9ITAsZmFsbGJhY2tQbGFjZW1lbnRzOmYsZmFsbGJhY2tTdHJhdGVneTpwPWBiZXN0Rml0YCxmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uOmc9YG5vbmVgLGZsaXBBbGlnbm1lbnQ6Xz0hMCwuLi52fT1tKGUsdCk7aWYoKG49YS5hcnJvdykhPW51bGwmJm4uYWxpZ25tZW50T2Zmc2V0KXJldHVybnt9O2xldCB5PWgoaSkseD1iKHMpLHc9aChzKT09PXMsVD1hd2FpdChjLmlzUlRMPT1udWxsP3ZvaWQgMDpjLmlzUlRMKGwuZmxvYXRpbmcpKSxFPWZ8fCh3fHwhXz9baihzKV06QyhzKSksRD1nIT09YG5vbmVgOyFmJiZEJiZFLnB1c2goLi4uQShzLF8sZyxUKSk7bGV0IE89W3MsLi4uRV0saz1hd2FpdCB0ZSh0LHYpLE09W10sTj0oKHI9YS5mbGlwKT09bnVsbD92b2lkIDA6ci5vdmVyZmxvd3MpfHxbXTtpZih1JiZNLnB1c2goa1t5XSksZCl7bGV0IGU9UyhpLG8sVCk7TS5wdXNoKGtbZVswXV0sa1tlWzFdXSl9aWYoTj1bLi4uTix7cGxhY2VtZW50Omksb3ZlcmZsb3dzOk19XSwhTS5ldmVyeShlPT5lPD0wKSl7dmFyIFAsRjtsZXQgZT0oKChQPWEuZmxpcCk9PW51bGw/dm9pZCAwOlAuaW5kZXgpfHwwKSsxLHQ9T1tlXTtpZih0JiYoIShkPT09YGFsaWdubWVudGAmJnghPT1iKHQpKXx8Ti5ldmVyeShlPT5iKGUucGxhY2VtZW50KT09PXg/ZS5vdmVyZmxvd3NbMF0+MDohMCkpKXJldHVybntkYXRhOntpbmRleDplLG92ZXJmbG93czpOfSxyZXNldDp7cGxhY2VtZW50OnR9fTtsZXQgbj0oRj1OLmZpbHRlcihlPT5lLm92ZXJmbG93c1swXTw9MCkuc29ydCgoZSx0KT0+ZS5vdmVyZmxvd3NbMV0tdC5vdmVyZmxvd3NbMV0pWzBdKT09bnVsbD92b2lkIDA6Ri5wbGFjZW1lbnQ7aWYoIW4pc3dpdGNoKHApe2Nhc2VgYmVzdEZpdGA6e3ZhciBlZTtsZXQgZT0oZWU9Ti5maWx0ZXIoZT0+e2lmKEQpe2xldCB0PWIoZS5wbGFjZW1lbnQpO3JldHVybiB0PT09eHx8dD09PWB5YH1yZXR1cm4hMH0pLm1hcChlPT5bZS5wbGFjZW1lbnQsZS5vdmVyZmxvd3MuZmlsdGVyKGU9PmU+MCkucmVkdWNlKChlLHQpPT5lK3QsMCldKS5zb3J0KChlLHQpPT5lWzFdLXRbMV0pWzBdKT09bnVsbD92b2lkIDA6ZWVbMF07ZSYmKG49ZSk7YnJlYWt9Y2FzZWBpbml0aWFsUGxhY2VtZW50YDpuPXM7YnJlYWt9aWYoaSE9PW4pcmV0dXJue3Jlc2V0OntwbGFjZW1lbnQ6bn19fXJldHVybnt9fX19LGFlPW5ldyBTZXQoW2BsZWZ0YCxgdG9wYF0pO2FzeW5jIGZ1bmN0aW9uIG9lKGUsdCl7bGV0e3BsYWNlbWVudDpuLHBsYXRmb3JtOnIsZWxlbWVudHM6aX09ZSxhPWF3YWl0KHIuaXNSVEw9PW51bGw/dm9pZCAwOnIuaXNSVEwoaS5mbG9hdGluZykpLG89aChuKSxzPWcobiksYz1iKG4pPT09YHlgLGw9YWUuaGFzKG8pPy0xOjEsdT1hJiZjPy0xOjEsZD1tKHQsZSkse21haW5BeGlzOmYsY3Jvc3NBeGlzOnAsYWxpZ25tZW50QXhpczpffT10eXBlb2YgZD09YG51bWJlcmA/e21haW5BeGlzOmQsY3Jvc3NBeGlzOjAsYWxpZ25tZW50QXhpczpudWxsfTp7bWFpbkF4aXM6ZC5tYWluQXhpc3x8MCxjcm9zc0F4aXM6ZC5jcm9zc0F4aXN8fDAsYWxpZ25tZW50QXhpczpkLmFsaWdubWVudEF4aXN9O3JldHVybiBzJiZ0eXBlb2YgXz09YG51bWJlcmAmJihwPXM9PT1gZW5kYD9fKi0xOl8pLGM/e3g6cCp1LHk6ZipsfTp7eDpmKmwseTpwKnV9fXZhciBzZT1mdW5jdGlvbihlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCkse25hbWU6YG9mZnNldGAsb3B0aW9uczplLGFzeW5jIGZuKHQpe3ZhciBuLHI7bGV0e3g6aSx5OmEscGxhY2VtZW50Om8sbWlkZGxld2FyZURhdGE6c309dCxjPWF3YWl0IG9lKHQsZSk7cmV0dXJuIG89PT0oKG49cy5vZmZzZXQpPT1udWxsP3ZvaWQgMDpuLnBsYWNlbWVudCkmJihyPXMuYXJyb3cpIT1udWxsJiZyLmFsaWdubWVudE9mZnNldD97fTp7eDppK2MueCx5OmErYy55LGRhdGE6ey4uLmMscGxhY2VtZW50Om99fX19fSxjZT1mdW5jdGlvbihlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9e30pLHtuYW1lOmBzaGlmdGAsb3B0aW9uczplLGFzeW5jIGZuKHQpe2xldHt4Om4seTpyLHBsYWNlbWVudDppfT10LHttYWluQXhpczphPSEwLGNyb3NzQXhpczpvPSExLGxpbWl0ZXI6cz17Zm46ZT0+e2xldHt4OnQseTpufT1lO3JldHVybnt4OnQseTpufX19LC4uLmN9PW0oZSx0KSxsPXt4Om4seTpyfSx1PWF3YWl0IHRlKHQsYyksZD1iKGgoaSkpLGY9XyhkKSxnPWxbZl0sdj1sW2RdO2lmKGEpe2xldCBlPWY9PT1geWA/YHRvcGA6YGxlZnRgLHQ9Zj09PWB5YD9gYm90dG9tYDpgcmlnaHRgLG49Zyt1W2VdLHI9Zy11W3RdO2c9cChuLGcscil9aWYobyl7bGV0IGU9ZD09PWB5YD9gdG9wYDpgbGVmdGAsdD1kPT09YHlgP2Bib3R0b21gOmByaWdodGAsbj12K3VbZV0scj12LXVbdF07dj1wKG4sdixyKX1sZXQgeT1zLmZuKHsuLi50LFtmXTpnLFtkXTp2fSk7cmV0dXJuey4uLnksZGF0YTp7eDp5Lngtbix5OnkueS1yLGVuYWJsZWQ6e1tmXTphLFtkXTpvfX19fX19LGxlPWZ1bmN0aW9uKGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT17fSkse29wdGlvbnM6ZSxmbih0KXtsZXR7eDpuLHk6cixwbGFjZW1lbnQ6aSxyZWN0czphLG1pZGRsZXdhcmVEYXRhOm99PXQse29mZnNldDpzPTAsbWFpbkF4aXM6Yz0hMCxjcm9zc0F4aXM6bD0hMH09bShlLHQpLHU9e3g6bix5OnJ9LGQ9YihpKSxmPV8oZCkscD11W2ZdLGc9dVtkXSx2PW0ocyx0KSx5PXR5cGVvZiB2PT1gbnVtYmVyYD97bWFpbkF4aXM6dixjcm9zc0F4aXM6MH06e21haW5BeGlzOjAsY3Jvc3NBeGlzOjAsLi4udn07aWYoYyl7bGV0IGU9Zj09PWB5YD9gaGVpZ2h0YDpgd2lkdGhgLHQ9YS5yZWZlcmVuY2VbZl0tYS5mbG9hdGluZ1tlXSt5Lm1haW5BeGlzLG49YS5yZWZlcmVuY2VbZl0rYS5yZWZlcmVuY2VbZV0teS5tYWluQXhpcztwPHQ/cD10OnA+biYmKHA9bil9aWYobCl7dmFyIHgsUztsZXQgZT1mPT09YHlgP2B3aWR0aGA6YGhlaWdodGAsdD1hZS5oYXMoaChpKSksbj1hLnJlZmVyZW5jZVtkXS1hLmZsb2F0aW5nW2VdKyh0JiYoKHg9by5vZmZzZXQpPT1udWxsP3ZvaWQgMDp4W2RdKXx8MCkrKHQ/MDp5LmNyb3NzQXhpcykscj1hLnJlZmVyZW5jZVtkXSthLnJlZmVyZW5jZVtlXSsodD8wOigoUz1vLm9mZnNldCk9PW51bGw/dm9pZCAwOlNbZF0pfHwwKS0odD95LmNyb3NzQXhpczowKTtnPG4/Zz1uOmc+ciYmKGc9cil9cmV0dXJue1tmXTpwLFtkXTpnfX19fTtmdW5jdGlvbiBJKCl7cmV0dXJuIHR5cGVvZiB3aW5kb3c8YHVgfWZ1bmN0aW9uIEwoZSl7cmV0dXJuIHVlKGUpPyhlLm5vZGVOYW1lfHxgYCkudG9Mb3dlckNhc2UoKTpgI2RvY3VtZW50YH1mdW5jdGlvbiBSKGUpe3ZhciB0O3JldHVybihlPT1udWxsfHwodD1lLm93bmVyRG9jdW1lbnQpPT1udWxsP3ZvaWQgMDp0LmRlZmF1bHRWaWV3KXx8d2luZG93fWZ1bmN0aW9uIHooZSl7dmFyIHQ7cmV0dXJuKHQ9KHVlKGUpP2Uub3duZXJEb2N1bWVudDplLmRvY3VtZW50KXx8d2luZG93LmRvY3VtZW50KT09bnVsbD92b2lkIDA6dC5kb2N1bWVudEVsZW1lbnR9ZnVuY3Rpb24gdWUoZSl7cmV0dXJuIEkoKT9lIGluc3RhbmNlb2YgTm9kZXx8ZSBpbnN0YW5jZW9mIFIoZSkuTm9kZTohMX1mdW5jdGlvbiBCKGUpe3JldHVybiBJKCk/ZSBpbnN0YW5jZW9mIEVsZW1lbnR8fGUgaW5zdGFuY2VvZiBSKGUpLkVsZW1lbnQ6ITF9ZnVuY3Rpb24gVihlKXtyZXR1cm4gSSgpP2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8ZSBpbnN0YW5jZW9mIFIoZSkuSFRNTEVsZW1lbnQ6ITF9ZnVuY3Rpb24gZGUoZSl7cmV0dXJuIUkoKXx8dHlwZW9mIFNoYWRvd1Jvb3Q+YHVgPyExOmUgaW5zdGFuY2VvZiBTaGFkb3dSb290fHxlIGluc3RhbmNlb2YgUihlKS5TaGFkb3dSb290fXZhciBmZT1uZXcgU2V0KFtgaW5saW5lYCxgY29udGVudHNgXSk7ZnVuY3Rpb24gSChlKXtsZXR7b3ZlcmZsb3c6dCxvdmVyZmxvd1g6bixvdmVyZmxvd1k6cixkaXNwbGF5Oml9PUcoZSk7cmV0dXJuL2F1dG98c2Nyb2xsfG92ZXJsYXl8aGlkZGVufGNsaXAvLnRlc3QodCtyK24pJiYhZmUuaGFzKGkpfXZhciBwZT1uZXcgU2V0KFtgdGFibGVgLGB0ZGAsYHRoYF0pO2Z1bmN0aW9uIG1lKGUpe3JldHVybiBwZS5oYXMoTChlKSl9dmFyIGhlPVtgOnBvcG92ZXItb3BlbmAsYDptb2RhbGBdO2Z1bmN0aW9uIFUoZSl7cmV0dXJuIGhlLnNvbWUodD0+e3RyeXtyZXR1cm4gZS5tYXRjaGVzKHQpfWNhdGNoe3JldHVybiExfX0pfXZhciBnZT1bYHRyYW5zZm9ybWAsYHRyYW5zbGF0ZWAsYHNjYWxlYCxgcm90YXRlYCxgcGVyc3BlY3RpdmVgXSxfZT1bYHRyYW5zZm9ybWAsYHRyYW5zbGF0ZWAsYHNjYWxlYCxgcm90YXRlYCxgcGVyc3BlY3RpdmVgLGBmaWx0ZXJgXSx2ZT1bYHBhaW50YCxgbGF5b3V0YCxgc3RyaWN0YCxgY29udGVudGBdO2Z1bmN0aW9uIHllKGUpe2xldCB0PXhlKCksbj1CKGUpP0coZSk6ZTtyZXR1cm4gZ2Uuc29tZShlPT5uW2VdP25bZV0hPT1gbm9uZWA6ITEpfHwobi5jb250YWluZXJUeXBlP24uY29udGFpbmVyVHlwZSE9PWBub3JtYWxgOiExKXx8IXQmJihuLmJhY2tkcm9wRmlsdGVyP24uYmFja2Ryb3BGaWx0ZXIhPT1gbm9uZWA6ITEpfHwhdCYmKG4uZmlsdGVyP24uZmlsdGVyIT09YG5vbmVgOiExKXx8X2Uuc29tZShlPT4obi53aWxsQ2hhbmdlfHxgYCkuaW5jbHVkZXMoZSkpfHx2ZS5zb21lKGU9PihuLmNvbnRhaW58fGBgKS5pbmNsdWRlcyhlKSl9ZnVuY3Rpb24gYmUoZSl7bGV0IHQ9cShlKTtmb3IoO1YodCkmJiFXKHQpOyl7aWYoeWUodCkpcmV0dXJuIHQ7aWYoVSh0KSlyZXR1cm4gbnVsbDt0PXEodCl9cmV0dXJuIG51bGx9ZnVuY3Rpb24geGUoKXtyZXR1cm4gdHlwZW9mIENTUz5gdWB8fCFDU1Muc3VwcG9ydHM/ITE6Q1NTLnN1cHBvcnRzKGAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcmAsYG5vbmVgKX12YXIgU2U9bmV3IFNldChbYGh0bWxgLGBib2R5YCxgI2RvY3VtZW50YF0pO2Z1bmN0aW9uIFcoZSl7cmV0dXJuIFNlLmhhcyhMKGUpKX1mdW5jdGlvbiBHKGUpe3JldHVybiBSKGUpLmdldENvbXB1dGVkU3R5bGUoZSl9ZnVuY3Rpb24gSyhlKXtyZXR1cm4gQihlKT97c2Nyb2xsTGVmdDplLnNjcm9sbExlZnQsc2Nyb2xsVG9wOmUuc2Nyb2xsVG9wfTp7c2Nyb2xsTGVmdDplLnNjcm9sbFgsc2Nyb2xsVG9wOmUuc2Nyb2xsWX19ZnVuY3Rpb24gcShlKXtpZihMKGUpPT09YGh0bWxgKXJldHVybiBlO2xldCB0PWUuYXNzaWduZWRTbG90fHxlLnBhcmVudE5vZGV8fGRlKGUpJiZlLmhvc3R8fHooZSk7cmV0dXJuIGRlKHQpP3QuaG9zdDp0fWZ1bmN0aW9uIENlKGUpe2xldCB0PXEoZSk7cmV0dXJuIFcodCk/ZS5vd25lckRvY3VtZW50P2Uub3duZXJEb2N1bWVudC5ib2R5OmUuYm9keTpWKHQpJiZIKHQpP3Q6Q2UodCl9ZnVuY3Rpb24gSihlLHQsbil7dmFyIHI7dD09PXZvaWQgMCYmKHQ9W10pLG49PT12b2lkIDAmJihuPSEwKTtsZXQgaT1DZShlKSxhPWk9PT0oKHI9ZS5vd25lckRvY3VtZW50KT09bnVsbD92b2lkIDA6ci5ib2R5KSxvPVIoaSk7aWYoYSl7bGV0IGU9d2Uobyk7cmV0dXJuIHQuY29uY2F0KG8sby52aXN1YWxWaWV3cG9ydHx8W10sSChpKT9pOltdLGUmJm4/SihlKTpbXSl9cmV0dXJuIHQuY29uY2F0KGksSihpLFtdLG4pKX1mdW5jdGlvbiB3ZShlKXtyZXR1cm4gZS5wYXJlbnQmJk9iamVjdC5nZXRQcm90b3R5cGVPZihlLnBhcmVudCk/ZS5mcmFtZUVsZW1lbnQ6bnVsbH1mdW5jdGlvbiBUZShlKXtsZXQgdD1HKGUpLG49cGFyc2VGbG9hdCh0LndpZHRoKXx8MCxyPXBhcnNlRmxvYXQodC5oZWlnaHQpfHwwLGk9VihlKSxhPWk/ZS5vZmZzZXRXaWR0aDpuLG89aT9lLm9mZnNldEhlaWdodDpyLHM9YyhuKSE9PWF8fGMocikhPT1vO3JldHVybiBzJiYobj1hLHI9bykse3dpZHRoOm4saGVpZ2h0OnIsJDpzfX1mdW5jdGlvbiBFZShlKXtyZXR1cm4gQihlKT9lOmUuY29udGV4dEVsZW1lbnR9ZnVuY3Rpb24gWShlKXtsZXQgdD1FZShlKTtpZighVih0KSlyZXR1cm4gdSgxKTtsZXQgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHt3aWR0aDpyLGhlaWdodDppLCQ6YX09VGUodCksbz0oYT9jKG4ud2lkdGgpOm4ud2lkdGgpL3Iscz0oYT9jKG4uaGVpZ2h0KTpuLmhlaWdodCkvaTtyZXR1cm4oIW98fCFOdW1iZXIuaXNGaW5pdGUobykpJiYobz0xKSwoIXN8fCFOdW1iZXIuaXNGaW5pdGUocykpJiYocz0xKSx7eDpvLHk6c319dmFyIERlPXUoMCk7ZnVuY3Rpb24gT2UoZSl7bGV0IHQ9UihlKTtyZXR1cm4heGUoKXx8IXQudmlzdWFsVmlld3BvcnQ/RGU6e3g6dC52aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0LHk6dC52aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3B9fWZ1bmN0aW9uIGtlKGUsdCxuKXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9ITEpLCFufHx0JiZuIT09UihlKT8hMTp0fWZ1bmN0aW9uIFgoZSx0LG4scil7dD09PXZvaWQgMCYmKHQ9ITEpLG49PT12b2lkIDAmJihuPSExKTtsZXQgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9RWUoZSksbz11KDEpO3QmJihyP0IocikmJihvPVkocikpOm89WShlKSk7bGV0IHM9a2UoYSxuLHIpP09lKGEpOnUoMCksYz0oaS5sZWZ0K3MueCkvby54LGw9KGkudG9wK3MueSkvby55LGQ9aS53aWR0aC9vLngsZj1pLmhlaWdodC9vLnk7aWYoYSl7bGV0IGU9UihhKSx0PXImJkIocik/UihyKTpyLG49ZSxpPXdlKG4pO2Zvcig7aSYmciYmdCE9PW47KXtsZXQgZT1ZKGkpLHQ9aS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPUcoaSksYT10LmxlZnQrKGkuY2xpZW50TGVmdCtwYXJzZUZsb2F0KHIucGFkZGluZ0xlZnQpKSplLngsbz10LnRvcCsoaS5jbGllbnRUb3ArcGFyc2VGbG9hdChyLnBhZGRpbmdUb3ApKSplLnk7Yyo9ZS54LGwqPWUueSxkKj1lLngsZio9ZS55LGMrPWEsbCs9byxuPVIoaSksaT13ZShuKX19cmV0dXJuIFAoe3dpZHRoOmQsaGVpZ2h0OmYseDpjLHk6bH0pfWZ1bmN0aW9uIFooZSx0KXtsZXQgbj1LKGUpLnNjcm9sbExlZnQ7cmV0dXJuIHQ/dC5sZWZ0K246WCh6KGUpKS5sZWZ0K259ZnVuY3Rpb24gQWUoZSx0KXtsZXQgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4Om4ubGVmdCt0LnNjcm9sbExlZnQtWihlLG4pLHk6bi50b3ArdC5zY3JvbGxUb3B9fWZ1bmN0aW9uIGplKGUpe2xldHtlbGVtZW50czp0LHJlY3Q6bixvZmZzZXRQYXJlbnQ6cixzdHJhdGVneTppfT1lLGE9aT09PWBmaXhlZGAsbz16KHIpLHM9dD9VKHQuZmxvYXRpbmcpOiExO2lmKHI9PT1vfHxzJiZhKXJldHVybiBuO2xldCBjPXtzY3JvbGxMZWZ0OjAsc2Nyb2xsVG9wOjB9LGw9dSgxKSxkPXUoMCksZj1WKHIpO2lmKChmfHwhZiYmIWEpJiYoKEwocikhPT1gYm9keWB8fEgobykpJiYoYz1LKHIpKSxWKHIpKSl7bGV0IGU9WChyKTtsPVkociksZC54PWUueCtyLmNsaWVudExlZnQsZC55PWUueStyLmNsaWVudFRvcH1sZXQgcD1vJiYhZiYmIWE/QWUobyxjKTp1KDApO3JldHVybnt3aWR0aDpuLndpZHRoKmwueCxoZWlnaHQ6bi5oZWlnaHQqbC55LHg6bi54KmwueC1jLnNjcm9sbExlZnQqbC54K2QueCtwLngseTpuLnkqbC55LWMuc2Nyb2xsVG9wKmwueStkLnkrcC55fX1mdW5jdGlvbiBNZShlKXtyZXR1cm4gQXJyYXkuZnJvbShlLmdldENsaWVudFJlY3RzKCkpfWZ1bmN0aW9uIE5lKGUpe2xldCB0PXooZSksbj1LKGUpLHI9ZS5vd25lckRvY3VtZW50LmJvZHksaT1zKHQuc2Nyb2xsV2lkdGgsdC5jbGllbnRXaWR0aCxyLnNjcm9sbFdpZHRoLHIuY2xpZW50V2lkdGgpLGE9cyh0LnNjcm9sbEhlaWdodCx0LmNsaWVudEhlaWdodCxyLnNjcm9sbEhlaWdodCxyLmNsaWVudEhlaWdodCksbz0tbi5zY3JvbGxMZWZ0K1ooZSksYz0tbi5zY3JvbGxUb3A7cmV0dXJuIEcocikuZGlyZWN0aW9uPT09YHJ0bGAmJihvKz1zKHQuY2xpZW50V2lkdGgsci5jbGllbnRXaWR0aCktaSkse3dpZHRoOmksaGVpZ2h0OmEseDpvLHk6Y319dmFyIFBlPTI1O2Z1bmN0aW9uIEZlKGUsdCl7bGV0IG49UihlKSxyPXooZSksaT1uLnZpc3VhbFZpZXdwb3J0LGE9ci5jbGllbnRXaWR0aCxvPXIuY2xpZW50SGVpZ2h0LHM9MCxjPTA7aWYoaSl7YT1pLndpZHRoLG89aS5oZWlnaHQ7bGV0IGU9eGUoKTsoIWV8fGUmJnQ9PT1gZml4ZWRgKSYmKHM9aS5vZmZzZXRMZWZ0LGM9aS5vZmZzZXRUb3ApfWxldCBsPVoocik7aWYobDw9MCl7bGV0IGU9ci5vd25lckRvY3VtZW50LHQ9ZS5ib2R5LG49Z2V0Q29tcHV0ZWRTdHlsZSh0KSxpPWUuY29tcGF0TW9kZT09PWBDU1MxQ29tcGF0YCYmcGFyc2VGbG9hdChuLm1hcmdpbkxlZnQpK3BhcnNlRmxvYXQobi5tYXJnaW5SaWdodCl8fDAsbz1NYXRoLmFicyhyLmNsaWVudFdpZHRoLXQuY2xpZW50V2lkdGgtaSk7bzw9UGUmJihhLT1vKX1lbHNlIGw8PVBlJiYoYSs9bCk7cmV0dXJue3dpZHRoOmEsaGVpZ2h0Om8seDpzLHk6Y319dmFyIEllPW5ldyBTZXQoW2BhYnNvbHV0ZWAsYGZpeGVkYF0pO2Z1bmN0aW9uIExlKGUsdCl7bGV0IG49WChlLCEwLHQ9PT1gZml4ZWRgKSxyPW4udG9wK2UuY2xpZW50VG9wLGk9bi5sZWZ0K2UuY2xpZW50TGVmdCxhPVYoZSk/WShlKTp1KDEpO3JldHVybnt3aWR0aDplLmNsaWVudFdpZHRoKmEueCxoZWlnaHQ6ZS5jbGllbnRIZWlnaHQqYS55LHg6aSphLngseTpyKmEueX19ZnVuY3Rpb24gUmUoZSx0LG4pe2xldCByO2lmKHQ9PT1gdmlld3BvcnRgKXI9RmUoZSxuKTtlbHNlIGlmKHQ9PT1gZG9jdW1lbnRgKXI9TmUoeihlKSk7ZWxzZSBpZihCKHQpKXI9TGUodCxuKTtlbHNle2xldCBuPU9lKGUpO3I9e3g6dC54LW4ueCx5OnQueS1uLnksd2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHR9fXJldHVybiBQKHIpfWZ1bmN0aW9uIHplKGUsdCl7bGV0IG49cShlKTtyZXR1cm4gbj09PXR8fCFCKG4pfHxXKG4pPyExOkcobikucG9zaXRpb249PT1gZml4ZWRgfHx6ZShuLHQpfWZ1bmN0aW9uIEJlKGUsdCl7bGV0IG49dC5nZXQoZSk7aWYobilyZXR1cm4gbjtsZXQgcj1KKGUsW10sITEpLmZpbHRlcihlPT5CKGUpJiZMKGUpIT09YGJvZHlgKSxpPW51bGwsYT1HKGUpLnBvc2l0aW9uPT09YGZpeGVkYCxvPWE/cShlKTplO2Zvcig7QihvKSYmIVcobyk7KXtsZXQgdD1HKG8pLG49eWUobyk7IW4mJnQucG9zaXRpb249PT1gZml4ZWRgJiYoaT1udWxsKSwoYT8hbiYmIWk6IW4mJnQucG9zaXRpb249PT1gc3RhdGljYCYmaSYmSWUuaGFzKGkucG9zaXRpb24pfHxIKG8pJiYhbiYmemUoZSxvKSk/cj1yLmZpbHRlcihlPT5lIT09byk6aT10LG89cShvKX1yZXR1cm4gdC5zZXQoZSxyKSxyfWZ1bmN0aW9uIFZlKGUpe2xldHtlbGVtZW50OnQsYm91bmRhcnk6bixyb290Qm91bmRhcnk6cixzdHJhdGVneTppfT1lLGE9Wy4uLm49PT1gY2xpcHBpbmdBbmNlc3RvcnNgP1UodCk/W106QmUodCx0aGlzLl9jKTpbXS5jb25jYXQobikscl0sYz1hWzBdLGw9YS5yZWR1Y2UoKGUsbik9PntsZXQgcj1SZSh0LG4saSk7cmV0dXJuIGUudG9wPXMoci50b3AsZS50b3ApLGUucmlnaHQ9byhyLnJpZ2h0LGUucmlnaHQpLGUuYm90dG9tPW8oci5ib3R0b20sZS5ib3R0b20pLGUubGVmdD1zKHIubGVmdCxlLmxlZnQpLGV9LFJlKHQsYyxpKSk7cmV0dXJue3dpZHRoOmwucmlnaHQtbC5sZWZ0LGhlaWdodDpsLmJvdHRvbS1sLnRvcCx4OmwubGVmdCx5OmwudG9wfX1mdW5jdGlvbiBIZShlKXtsZXR7d2lkdGg6dCxoZWlnaHQ6bn09VGUoZSk7cmV0dXJue3dpZHRoOnQsaGVpZ2h0Om59fWZ1bmN0aW9uIFVlKGUsdCxuKXtsZXQgcj1WKHQpLGk9eih0KSxhPW49PT1gZml4ZWRgLG89WChlLCEwLGEsdCkscz17c2Nyb2xsTGVmdDowLHNjcm9sbFRvcDowfSxjPXUoMCk7ZnVuY3Rpb24gbCgpe2MueD1aKGkpfWlmKHJ8fCFyJiYhYSlpZigoTCh0KSE9PWBib2R5YHx8SChpKSkmJihzPUsodCkpLHIpe2xldCBlPVgodCwhMCxhLHQpO2MueD1lLngrdC5jbGllbnRMZWZ0LGMueT1lLnkrdC5jbGllbnRUb3B9ZWxzZSBpJiZsKCk7YSYmIXImJmkmJmwoKTtsZXQgZD1pJiYhciYmIWE/QWUoaSxzKTp1KDApO3JldHVybnt4Om8ubGVmdCtzLnNjcm9sbExlZnQtYy54LWQueCx5Om8udG9wK3Muc2Nyb2xsVG9wLWMueS1kLnksd2lkdGg6by53aWR0aCxoZWlnaHQ6by5oZWlnaHR9fWZ1bmN0aW9uIFdlKGUpe3JldHVybiBHKGUpLnBvc2l0aW9uPT09YHN0YXRpY2B9ZnVuY3Rpb24gR2UoZSx0KXtpZighVihlKXx8RyhlKS5wb3NpdGlvbj09PWBmaXhlZGApcmV0dXJuIG51bGw7aWYodClyZXR1cm4gdChlKTtsZXQgbj1lLm9mZnNldFBhcmVudDtyZXR1cm4geihlKT09PW4mJihuPW4ub3duZXJEb2N1bWVudC5ib2R5KSxufWZ1bmN0aW9uIEtlKGUsdCl7bGV0IG49UihlKTtpZihVKGUpKXJldHVybiBuO2lmKCFWKGUpKXtsZXQgdD1xKGUpO2Zvcig7dCYmIVcodCk7KXtpZihCKHQpJiYhV2UodCkpcmV0dXJuIHQ7dD1xKHQpfXJldHVybiBufWxldCByPUdlKGUsdCk7Zm9yKDtyJiZtZShyKSYmV2Uocik7KXI9R2Uocix0KTtyZXR1cm4gciYmVyhyKSYmV2UocikmJiF5ZShyKT9uOnJ8fGJlKGUpfHxufXZhciBxZT1hc3luYyBmdW5jdGlvbihlKXtsZXQgdD10aGlzLmdldE9mZnNldFBhcmVudHx8S2Usbj10aGlzLmdldERpbWVuc2lvbnMscj1hd2FpdCBuKGUuZmxvYXRpbmcpO3JldHVybntyZWZlcmVuY2U6VWUoZS5yZWZlcmVuY2UsYXdhaXQgdChlLmZsb2F0aW5nKSxlLnN0cmF0ZWd5KSxmbG9hdGluZzp7eDowLHk6MCx3aWR0aDpyLndpZHRoLGhlaWdodDpyLmhlaWdodH19fTtmdW5jdGlvbiBKZShlKXtyZXR1cm4gRyhlKS5kaXJlY3Rpb249PT1gcnRsYH12YXIgWWU9e2NvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0OmplLGdldERvY3VtZW50RWxlbWVudDp6LGdldENsaXBwaW5nUmVjdDpWZSxnZXRPZmZzZXRQYXJlbnQ6S2UsZ2V0RWxlbWVudFJlY3RzOnFlLGdldENsaWVudFJlY3RzOk1lLGdldERpbWVuc2lvbnM6SGUsZ2V0U2NhbGU6WSxpc0VsZW1lbnQ6Qixpc1JUTDpKZX07ZnVuY3Rpb24gWGUoZSx0KXtyZXR1cm4gZS54PT09dC54JiZlLnk9PT10LnkmJmUud2lkdGg9PT10LndpZHRoJiZlLmhlaWdodD09PXQuaGVpZ2h0fWZ1bmN0aW9uIFplKGUsdCl7bGV0IG49bnVsbCxyLGk9eihlKTtmdW5jdGlvbiBhKCl7dmFyIGU7Y2xlYXJUaW1lb3V0KHIpLChlPW4pPT1udWxsfHxlLmRpc2Nvbm5lY3QoKSxuPW51bGx9ZnVuY3Rpb24gYyh1LGQpe3U9PT12b2lkIDAmJih1PSExKSxkPT09dm9pZCAwJiYoZD0xKSxhKCk7bGV0IGY9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7bGVmdDpwLHRvcDptLHdpZHRoOmgsaGVpZ2h0Omd9PWY7aWYodXx8dCgpLCFofHwhZylyZXR1cm47bGV0IF89bChtKSx2PWwoaS5jbGllbnRXaWR0aC0ocCtoKSkseT1sKGkuY2xpZW50SGVpZ2h0LShtK2cpKSxiPWwocCkseD17cm9vdE1hcmdpbjotXytgcHggYCstditgcHggYCsteStgcHggYCstYitgcHhgLHRocmVzaG9sZDpzKDAsbygxLGQpKXx8MX0sUz0hMDtmdW5jdGlvbiBDKHQpe2xldCBuPXRbMF0uaW50ZXJzZWN0aW9uUmF0aW87aWYobiE9PWQpe2lmKCFTKXJldHVybiBjKCk7bj9jKCExLG4pOnI9c2V0VGltZW91dCgoKT0+e2MoITEsMWUtNyl9LDFlMyl9bj09PTEmJiFYZShmLGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpJiZjKCksUz0hMX10cnl7bj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoQyx7Li4ueCxyb290Omkub3duZXJEb2N1bWVudH0pfWNhdGNoe249bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKEMseCl9bi5vYnNlcnZlKGUpfXJldHVybiBjKCEwKSxhfWZ1bmN0aW9uIFFlKGUsdCxuLHIpe3I9PT12b2lkIDAmJihyPXt9KTtsZXR7YW5jZXN0b3JTY3JvbGw6aT0hMCxhbmNlc3RvclJlc2l6ZTphPSEwLGVsZW1lbnRSZXNpemU6bz10eXBlb2YgUmVzaXplT2JzZXJ2ZXI9PWBmdW5jdGlvbmAsbGF5b3V0U2hpZnQ6cz10eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI9PWBmdW5jdGlvbmAsYW5pbWF0aW9uRnJhbWU6Yz0hMX09cixsPUVlKGUpLHU9aXx8YT9bLi4ubD9KKGwpOltdLC4uLkoodCldOltdO3UuZm9yRWFjaChlPT57aSYmZS5hZGRFdmVudExpc3RlbmVyKGBzY3JvbGxgLG4se3Bhc3NpdmU6ITB9KSxhJiZlLmFkZEV2ZW50TGlzdGVuZXIoYHJlc2l6ZWAsbil9KTtsZXQgZD1sJiZzP1plKGwsbik6bnVsbCxmPS0xLHA9bnVsbDtvJiYocD1uZXcgUmVzaXplT2JzZXJ2ZXIoZT0+e2xldFtyXT1lO3ImJnIudGFyZ2V0PT09bCYmcCYmKHAudW5vYnNlcnZlKHQpLGNhbmNlbEFuaW1hdGlvbkZyYW1lKGYpLGY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dmFyIGU7KGU9cCk9PW51bGx8fGUub2JzZXJ2ZSh0KX0pKSxuKCl9KSxsJiYhYyYmcC5vYnNlcnZlKGwpLHAub2JzZXJ2ZSh0KSk7bGV0IG0saD1jP1goZSk6bnVsbDtjJiZnKCk7ZnVuY3Rpb24gZygpe2xldCB0PVgoZSk7aCYmIVhlKGgsdCkmJm4oKSxoPXQsbT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZyl9cmV0dXJuIG4oKSwoKT0+e3ZhciBlO3UuZm9yRWFjaChlPT57aSYmZS5yZW1vdmVFdmVudExpc3RlbmVyKGBzY3JvbGxgLG4pLGEmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgcmVzaXplYCxuKX0pLGQ9PW51bGx8fGQoKSwoZT1wKT09bnVsbHx8ZS5kaXNjb25uZWN0KCkscD1udWxsLGMmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKG0pfX12YXIgJGU9c2UsZXQ9cmUsdHQ9Y2UsbnQ9aWUscnQ9bGUsaXQ9KGUsdCxuKT0+e2xldCByPW5ldyBNYXAsaT17cGxhdGZvcm06WWUsLi4ubn0sYT17Li4uaS5wbGF0Zm9ybSxfYzpyfTtyZXR1cm4gZWUoZSx0LHsuLi5pLHBsYXRmb3JtOmF9KX0sUT1lKG4oKSwxKSxhdD1lKHQoKSwxKSwkPXR5cGVvZiBkb2N1bWVudDxgdWA/US51c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oKXt9O2Z1bmN0aW9uIG90KGUsdCl7aWYoZT09PXQpcmV0dXJuITA7aWYodHlwZW9mIGUhPXR5cGVvZiB0KXJldHVybiExO2lmKHR5cGVvZiBlPT1gZnVuY3Rpb25gJiZlLnRvU3RyaW5nKCk9PT10LnRvU3RyaW5nKCkpcmV0dXJuITA7bGV0IG4scixpO2lmKGUmJnQmJnR5cGVvZiBlPT1gb2JqZWN0YCl7aWYoQXJyYXkuaXNBcnJheShlKSl7aWYobj1lLmxlbmd0aCxuIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKHI9bjtyLS0hPT0wOylpZighb3QoZVtyXSx0W3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1pZihpPU9iamVjdC5rZXlzKGUpLG49aS5sZW5ndGgsbiE9PU9iamVjdC5rZXlzKHQpLmxlbmd0aClyZXR1cm4hMTtmb3Iocj1uO3ItLSE9PTA7KWlmKCF7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaVtyXSkpcmV0dXJuITE7Zm9yKHI9bjtyLS0hPT0wOyl7bGV0IG49aVtyXTtpZighKG49PT1gX293bmVyYCYmZS4kJHR5cGVvZikmJiFvdChlW25dLHRbbl0pKXJldHVybiExfXJldHVybiEwfXJldHVybiBlIT09ZSYmdCE9PXR9ZnVuY3Rpb24gc3QoZSl7cmV0dXJuIHR5cGVvZiB3aW5kb3c+YHVgPzE6KGUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5kZXZpY2VQaXhlbFJhdGlvfHwxfWZ1bmN0aW9uIGN0KGUsdCl7bGV0IG49c3QoZSk7cmV0dXJuIE1hdGgucm91bmQodCpuKS9ufWZ1bmN0aW9uIGx0KGUpe2xldCB0PVEudXNlUmVmKGUpO3JldHVybiAkKCgpPT57dC5jdXJyZW50PWV9KSx0fWZ1bmN0aW9uIHV0KGUpe2U9PT12b2lkIDAmJihlPXt9KTtsZXR7cGxhY2VtZW50OnQ9YGJvdHRvbWAsc3RyYXRlZ3k6bj1gYWJzb2x1dGVgLG1pZGRsZXdhcmU6cj1bXSxwbGF0Zm9ybTppLGVsZW1lbnRzOntyZWZlcmVuY2U6YSxmbG9hdGluZzpvfT17fSx0cmFuc2Zvcm06cz0hMCx3aGlsZUVsZW1lbnRzTW91bnRlZDpjLG9wZW46bH09ZSxbdSxkXT1RLnVzZVN0YXRlKHt4OjAseTowLHN0cmF0ZWd5Om4scGxhY2VtZW50OnQsbWlkZGxld2FyZURhdGE6e30saXNQb3NpdGlvbmVkOiExfSksW2YscF09US51c2VTdGF0ZShyKTtvdChmLHIpfHxwKHIpO2xldFttLGhdPVEudXNlU3RhdGUobnVsbCksW2csX109US51c2VTdGF0ZShudWxsKSx2PVEudXNlQ2FsbGJhY2soZT0+e2UhPT1TLmN1cnJlbnQmJihTLmN1cnJlbnQ9ZSxoKGUpKX0sW10pLHk9US51c2VDYWxsYmFjayhlPT57ZSE9PUMuY3VycmVudCYmKEMuY3VycmVudD1lLF8oZSkpfSxbXSksYj1hfHxtLHg9b3x8ZyxTPVEudXNlUmVmKG51bGwpLEM9US51c2VSZWYobnVsbCksdz1RLnVzZVJlZih1KSxUPWMhPW51bGwsRT1sdChjKSxEPWx0KGkpLE89bHQobCksaz1RLnVzZUNhbGxiYWNrKCgpPT57aWYoIVMuY3VycmVudHx8IUMuY3VycmVudClyZXR1cm47bGV0IGU9e3BsYWNlbWVudDp0LHN0cmF0ZWd5Om4sbWlkZGxld2FyZTpmfTtELmN1cnJlbnQmJihlLnBsYXRmb3JtPUQuY3VycmVudCksaXQoUy5jdXJyZW50LEMuY3VycmVudCxlKS50aGVuKGU9PntsZXQgdD17Li4uZSxpc1Bvc2l0aW9uZWQ6Ty5jdXJyZW50IT09ITF9O0EuY3VycmVudCYmIW90KHcuY3VycmVudCx0KSYmKHcuY3VycmVudD10LGF0LmZsdXNoU3luYygoKT0+e2QodCl9KSl9KX0sW2YsdCxuLEQsT10pOyQoKCk9PntsPT09ITEmJncuY3VycmVudC5pc1Bvc2l0aW9uZWQmJih3LmN1cnJlbnQuaXNQb3NpdGlvbmVkPSExLGQoZT0+KHsuLi5lLGlzUG9zaXRpb25lZDohMX0pKSl9LFtsXSk7bGV0IEE9US51c2VSZWYoITEpOyQoKCk9PihBLmN1cnJlbnQ9ITAsKCk9PntBLmN1cnJlbnQ9ITF9KSxbXSksJCgoKT0+e2lmKGImJihTLmN1cnJlbnQ9YikseCYmKEMuY3VycmVudD14KSxiJiZ4KXtpZihFLmN1cnJlbnQpcmV0dXJuIEUuY3VycmVudChiLHgsayk7aygpfX0sW2IseCxrLEUsVF0pO2xldCBqPVEudXNlTWVtbygoKT0+KHtyZWZlcmVuY2U6UyxmbG9hdGluZzpDLHNldFJlZmVyZW5jZTp2LHNldEZsb2F0aW5nOnl9KSxbdix5XSksTT1RLnVzZU1lbW8oKCk9Pih7cmVmZXJlbmNlOmIsZmxvYXRpbmc6eH0pLFtiLHhdKSxOPVEudXNlTWVtbygoKT0+e2xldCBlPXtwb3NpdGlvbjpuLGxlZnQ6MCx0b3A6MH07aWYoIU0uZmxvYXRpbmcpcmV0dXJuIGU7bGV0IHQ9Y3QoTS5mbG9hdGluZyx1LngpLHI9Y3QoTS5mbG9hdGluZyx1LnkpO3JldHVybiBzP3suLi5lLHRyYW5zZm9ybTpgdHJhbnNsYXRlKGArdCtgcHgsIGArcitgcHgpYCwuLi5zdChNLmZsb2F0aW5nKT49MS41JiZ7d2lsbENoYW5nZTpgdHJhbnNmb3JtYH19Ontwb3NpdGlvbjpuLGxlZnQ6dCx0b3A6cn19LFtuLHMsTS5mbG9hdGluZyx1LngsdS55XSk7cmV0dXJuIFEudXNlTWVtbygoKT0+KHsuLi51LHVwZGF0ZTprLHJlZnM6aixlbGVtZW50czpNLGZsb2F0aW5nU3R5bGVzOk59KSxbdSxrLGosTSxOXSl9dmFyIGR0PShlLHQpPT4oey4uLiRlKGUpLG9wdGlvbnM6W2UsdF19KSxmdD0oZSx0KT0+KHsuLi50dChlKSxvcHRpb25zOltlLHRdfSkscHQ9KGUsdCk9Pih7Li4ucnQoZSksb3B0aW9uczpbZSx0XX0pLG10PShlLHQpPT4oey4uLm50KGUpLG9wdGlvbnM6W2UsdF19KSxodD0oZSx0KT0+KHsuLi5ldChlKSxvcHRpb25zOltlLHRdfSk7ZXhwb3J0e2Z0IGFzIGEsZHQgYXMgaSxtdCBhcyBuLHV0IGFzIG8scHQgYXMgcixRZSBhcyBzLGh0IGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0JETnpvc2RKLmpzLm1hcA=="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BZxGBkuw2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.662Z","timestamp":1785108244662,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_BZxGBkuw2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 386\r\nlast-modified: Sun, 26 Jul 2026 22:31:17 GMT\r\netag: \"98de11cfb5e984b5dafee99e19230ce2\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 34643acbba5eb17a569104276bab9478.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: ITXK0ZaW_nk1aD26ipkCdDjgdbnbG0ybJbf7VSJpLDTPCvmdryrKmw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=k%2FEwdWfsraqATxlHRIk4YdckgJSKtt225S9SFrNb7Rc%2FFxMzh4SzuLRGmb49fYXGCZ9vDx1YbGRzdy1GIe9p9w3iak0kTYR62CICI%2FSpVPUxzKqD%2F3oBnAtVNDWz95lxUgmXB3CsCdK19sIyZ%2BnP\"}]}\r\ncf-ray: a21727e12ebb0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":676,"size_decoded":1533,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (636)","md5":"ea35d884d65563c00448c5b68abd0160","sha1":"ae880f7f2fa7c09fc8559b3a40a25a45ee15e938","sha256":"df145d21e0e090f1cf1075f9cb8226fc0faae00f8d1435d28bb130bafaf779a6","sha512":"2fcf9b7ea96d0a85d38bec912c57d27264de832938d38357b71af44496fa32e9edc05a2bf894d8f3f2d5903bb86b83b7436e4f6e51682cdc6beacf2b8d894b58","ssdeep":"","tlshash":"e201fec54ef5ba75d08a176ed46712c27328242b62cc4b20e13d1f3c13ecd62c080677","first_seen":"2026-07-26T23:24:50.313166Z","last_seen":"2026-07-26T23:25:46.883185Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDczOTNlYjcyLTU3M2ItNDgyMy1hOTdjLWZhMjdhNDIxZWZiOWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTczOTNlYjcyLTU3M2ItNDgyMy1hOTdjLWZhMjdhNDIxZWZiOWApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsaGYgYXMgdCxwYyBhcyBuLHJkIGFzIHJ9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBpPWUodCgpKSxhPWU9PntsZXQgdD0oMCxpLnVzZVJlZikobnVsbCk7cmV0dXJuKDAsaS51c2VFZmZlY3QpKCgpPT57aWYoZSYmcigpJiZ0LmN1cnJlbnQpe3ZhciBpO2xldCBlPShpPXQuY3VycmVudC5wYXJlbnROb2RlKT09bnVsbD92b2lkIDA6aS5xdWVyeVNlbGVjdG9yQWxsKG4pO2UhPW51bGwmJmUubGVuZ3RoJiZlWzBdJiZlWzBdLmZvY3VzKCl9fSxbZSx0XSksdH07ZXhwb3J0e2EgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQlp4R0JrdXcyLmpzLm1hcA=="}},"time_used":114,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":114,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CfWNyu4g.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.714Z","timestamp":1785108244714,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CfWNyu4g.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 197\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\netag: \"6430e9a3ea2721837080b01f719ff40a\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 b0380453c1d490e0143b23fb633d7e7c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: FITveEjCHbaxryEsmpV36FBeUzfL730HY4_vH-DvaieAeKYBYxKZZw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=toeFcIoZ04KKqL9pBcZZ7kZh7f8UkxqSY8Zr8Ume91T6ruy0nXhqMLF8N%2BxKoCLrq4tlPKLkgckXsB7T3KGriDAam0cr6V994BkgGDL%2FXnVZg3lmKlvLk4eURlKZe7UUdFFZO9xQyvtvrE6%2FBML3\"}]}\r\ncf-ray: a21727e17f7a0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":369,"size_decoded":1340,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (369), with no line terminators","md5":"cb2777a79e001c6933a2de9abf93fb74","sha1":"028ca50f2556cd35d6c5ebb24fc5c48d2a0edb95","sha256":"7290f5341282bcc9032615b854dfeb3e6bf4058dc280c99cece4693169207b9d","sha512":"317c5b0ac43df937e997c7d8a1a015ed8664d8ba69c029a1fdf6a925c0fb76cd81ba58cef00211db61c70b755129c8a37463140115be314b9af89825e984c208","ssdeep":"","tlshash":"c6e0d8db5ef05765850523fde66611013ba6022bd3cccf20e178da7d63ada8b8901743","first_seen":"2026-07-26T23:24:50.316116Z","last_seen":"2026-07-26T23:25:46.877658Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDVhZDNmZWY4LTMzMDItNDE5NC05YjNhLTdmNThkN2E1MGIwYmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTVhZDNmZWY4LTMzMDItNDE5NC05YjNhLTdmNThkN2E1MGIwYmApfSkoKX1jYXRjaHt9aW1wb3J0Ii4vY19zMExxM1RORi5qcyI7"}},"time_used":125,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":125,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/node_modules/.vite/deps/chunk-WUR7D6NS.js?v=08eb349e","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.460Z","timestamp":1785108243460,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /node_modules/.vite/deps/chunk-WUR7D6NS.js?v=08eb349e HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=08eb349e\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 45564\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: max-age=31536000,immutable\r\nEtag: W/\"b1fc-7BkYQRIynY637sGTfq5W+9zvAsE\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Nginx:1.18.0","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":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":45564,"size_decoded":45830,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (1016)","md5":"ab1945ee96ec9be8c6357a0dec0df2cc","sha1":"ec19184112329d8eb7eec1937eae56fbdcef02c1","sha256":"d170d9ecbf31a7361819959578bcbfa86016e6e5d980669796f63eb6b1cd00ee","sha512":"e0065d492fe163676eed8705cf234023073b643e55ae3c156ba0894b29127b8e11d3a4b1c5e0be4de609d60257a8c8196a719ef2c6536897d5ff61afb804909c","ssdeep":"768:UOy9UxpXR3ag9CCdq2f2w2F29V6jvkkJ0dXAujLGHzwHMCld:GUxpdACdq2f2w2F29uvYdbLGHzwHMCld","tlshash":"0e13a85979e715704823b0b94b6fd142f47a9807091ced64ba4c83b81f991acd6eefcc","first_seen":"2026-07-26T23:24:50.318324Z","last_seen":"2026-07-26T23:25:46.893216Z","times_seen":3,"resource_available":true,"data":"aW1wb3J0IHsKICBfX2NvbW1vbkpTCn0gZnJvbSAiL25vZGVfbW9kdWxlcy8udml0ZS9kZXBzL2NodW5rLUczUE1WNjJaLmpzP3Y9MDhlYjM0OWUiOwoKLy8gbm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcwp2YXIgcmVxdWlyZV9yZWFjdF9kZXZlbG9wbWVudCA9IF9fY29tbW9uSlMoewogICJub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LmRldmVsb3BtZW50LmpzIihleHBvcnRzLCBtb2R1bGUpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIChmdW5jdGlvbigpIHsKICAgICAgZnVuY3Rpb24gZGVmaW5lRGVwcmVjYXRpb25XYXJuaW5nKG1ldGhvZE5hbWUsIGluZm8pIHsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29tcG9uZW50LnByb3RvdHlwZSwgbWV0aG9kTmFtZSwgewogICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgY29uc29sZS53YXJuKAogICAgICAgICAgICAgICIlcyguLi4pIGlzIGRlcHJlY2F0ZWQgaW4gcGxhaW4gSmF2YVNjcmlwdCBSZWFjdCBjbGFzc2VzLiAlcyIsCiAgICAgICAgICAgICAgaW5mb1swXSwKICAgICAgICAgICAgICBpbmZvWzFdCiAgICAgICAgICAgICk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7CiAgICAgICAgaWYgKG51bGwgPT09IG1heWJlSXRlcmFibGUgfHwgIm9iamVjdCIgIT09IHR5cGVvZiBtYXliZUl0ZXJhYmxlKQogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgbWF5YmVJdGVyYWJsZSA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVsiQEBpdGVyYXRvciJdOwogICAgICAgIHJldHVybiAiZnVuY3Rpb24iID09PSB0eXBlb2YgbWF5YmVJdGVyYWJsZSA/IG1heWJlSXRlcmFibGUgOiBudWxsOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7CiAgICAgICAgcHVibGljSW5zdGFuY2UgPSAocHVibGljSW5zdGFuY2UgPSBwdWJsaWNJbnN0YW5jZS5jb25zdHJ1Y3RvcikgJiYgKHB1YmxpY0luc3RhbmNlLmRpc3BsYXlOYW1lIHx8IHB1YmxpY0luc3RhbmNlLm5hbWUpIHx8ICJSZWFjdENsYXNzIjsKICAgICAgICB2YXIgd2FybmluZ0tleSA9IHB1YmxpY0luc3RhbmNlICsgIi4iICsgY2FsbGVyTmFtZTsKICAgICAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JVbm1vdW50ZWRDb21wb25lbnRbd2FybmluZ0tleV0gfHwgKGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiQ2FuJ3QgY2FsbCAlcyBvbiBhIGNvbXBvbmVudCB0aGF0IGlzIG5vdCB5ZXQgbW91bnRlZC4gVGhpcyBpcyBhIG5vLW9wLCBidXQgaXQgbWlnaHQgaW5kaWNhdGUgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbi4gSW5zdGVhZCwgYXNzaWduIHRvIGB0aGlzLnN0YXRlYCBkaXJlY3RseSBvciBkZWZpbmUgYSBgc3RhdGUgPSB7fTtgIGNsYXNzIHByb3BlcnR5IHdpdGggdGhlIGRlc2lyZWQgc3RhdGUgaW4gdGhlICVzIGNvbXBvbmVudC4iLAogICAgICAgICAgY2FsbGVyTmFtZSwKICAgICAgICAgIHB1YmxpY0luc3RhbmNlCiAgICAgICAgKSwgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50W3dhcm5pbmdLZXldID0gdHJ1ZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gQ29tcG9uZW50KHByb3BzLCBjb250ZXh0LCB1cGRhdGVyKSB7CiAgICAgICAgdGhpcy5wcm9wcyA9IHByb3BzOwogICAgICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7CiAgICAgICAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7CiAgICAgICAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBDb21wb25lbnREdW1teSgpIHsKICAgICAgfQogICAgICBmdW5jdGlvbiBQdXJlQ29tcG9uZW50KHByb3BzLCBjb250ZXh0LCB1cGRhdGVyKSB7CiAgICAgICAgdGhpcy5wcm9wcyA9IHByb3BzOwogICAgICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7CiAgICAgICAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7CiAgICAgICAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBub29wKCkgewogICAgICB9CiAgICAgIGZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkgewogICAgICAgIHJldHVybiAiIiArIHZhbHVlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24odmFsdWUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsKICAgICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBmYWxzZTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBpZiAoSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0KSB7CiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBjb25zb2xlOwogICAgICAgICAgdmFyIEpTQ29tcGlsZXJfdGVtcF9jb25zdCA9IEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdC5lcnJvcjsKICAgICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDAgPSAiZnVuY3Rpb24iID09PSB0eXBlb2YgU3ltYm9sICYmIFN5bWJvbC50b1N0cmluZ1RhZyAmJiB2YWx1ZVtTeW1ib2wudG9TdHJpbmdUYWddIHx8IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgfHwgIk9iamVjdCI7CiAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QuY2FsbCgKICAgICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LAogICAgICAgICAgICAiVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLiBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS4iLAogICAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDAKICAgICAgICAgICk7CiAgICAgICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHsKICAgICAgICBpZiAobnVsbCA9PSB0eXBlKSByZXR1cm4gbnVsbDsKICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHR5cGUpCiAgICAgICAgICByZXR1cm4gdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA/IG51bGwgOiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsOwogICAgICAgIGlmICgic3RyaW5nIiA9PT0gdHlwZW9mIHR5cGUpIHJldHVybiB0eXBlOwogICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOgogICAgICAgICAgICByZXR1cm4gIkZyYWdtZW50IjsKICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRToKICAgICAgICAgICAgcmV0dXJuICJQcm9maWxlciI7CiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6CiAgICAgICAgICAgIHJldHVybiAiU3RyaWN0TW9kZSI7CiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6CiAgICAgICAgICAgIHJldHVybiAiU3VzcGVuc2UiOwogICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6CiAgICAgICAgICAgIHJldHVybiAiU3VzcGVuc2VMaXN0IjsKICAgICAgICAgIGNhc2UgUkVBQ1RfQUNUSVZJVFlfVFlQRToKICAgICAgICAgICAgcmV0dXJuICJBY3Rpdml0eSI7CiAgICAgICAgfQogICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIHR5cGUpCiAgICAgICAgICBzd2l0Y2ggKCJudW1iZXIiID09PSB0eXBlb2YgdHlwZS50YWcgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIlJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgKSwgdHlwZS4kJHR5cGVvZikgewogICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOgogICAgICAgICAgICAgIHJldHVybiAiUG9ydGFsIjsKICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6CiAgICAgICAgICAgICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgIkNvbnRleHQiOwogICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlNVTUVSX1RZUEU6CiAgICAgICAgICAgICAgcmV0dXJuICh0eXBlLl9jb250ZXh0LmRpc3BsYXlOYW1lIHx8ICJDb250ZXh0IikgKyAiLkNvbnN1bWVyIjsKICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOgogICAgICAgICAgICAgIHZhciBpbm5lclR5cGUgPSB0eXBlLnJlbmRlcjsKICAgICAgICAgICAgICB0eXBlID0gdHlwZS5kaXNwbGF5TmFtZTsKICAgICAgICAgICAgICB0eXBlIHx8ICh0eXBlID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICIiLCB0eXBlID0gIiIgIT09IHR5cGUgPyAiRm9yd2FyZFJlZigiICsgdHlwZSArICIpIiA6ICJGb3J3YXJkUmVmIik7CiAgICAgICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOgogICAgICAgICAgICAgIHJldHVybiBpbm5lclR5cGUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGwsIG51bGwgIT09IGlubmVyVHlwZSA/IGlubmVyVHlwZSA6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICJNZW1vIjsKICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6CiAgICAgICAgICAgICAgaW5uZXJUeXBlID0gdHlwZS5fcGF5bG9hZDsKICAgICAgICAgICAgICB0eXBlID0gdHlwZS5faW5pdDsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKGlubmVyVHlwZSkpOwogICAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0VGFza05hbWUodHlwZSkgewogICAgICAgIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSByZXR1cm4gIjw+IjsKICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiB0eXBlICYmIG51bGwgIT09IHR5cGUgJiYgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFKQogICAgICAgICAgcmV0dXJuICI8Li4uPiI7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpOwogICAgICAgICAgcmV0dXJuIG5hbWUgPyAiPCIgKyBuYW1lICsgIj4iIDogIjwuLi4+IjsKICAgICAgICB9IGNhdGNoICh4KSB7CiAgICAgICAgICByZXR1cm4gIjwuLi4+IjsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0T3duZXIoKSB7CiAgICAgICAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5BOwogICAgICAgIHJldHVybiBudWxsID09PSBkaXNwYXRjaGVyID8gbnVsbCA6IGRpc3BhdGNoZXIuZ2V0T3duZXIoKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBVbmtub3duT3duZXIoKSB7CiAgICAgICAgcmV0dXJuIEVycm9yKCJyZWFjdC1zdGFjay10b3AtZnJhbWUiKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHsKICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICJrZXkiKSkgewogICAgICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCAia2V5IikuZ2V0OwogICAgICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHZvaWQgMCAhPT0gY29uZmlnLmtleTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHsKICAgICAgICBmdW5jdGlvbiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkoKSB7CiAgICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biB8fCAoc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gPSB0cnVlLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiJXM6IGBrZXlgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSB2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50IHByb3AuIChodHRwczovL3JlYWN0LmRldi9saW5rL3NwZWNpYWwtcHJvcHMpIiwKICAgICAgICAgICAgZGlzcGxheU5hbWUKICAgICAgICAgICkpOwogICAgICAgIH0KICAgICAgICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSB0cnVlOwogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgImtleSIsIHsKICAgICAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nS2V5LAogICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlCiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZWxlbWVudFJlZkdldHRlcldpdGhEZXByZWNhdGlvbldhcm5pbmcoKSB7CiAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodGhpcy50eXBlKTsKICAgICAgICBkaWRXYXJuQWJvdXRFbGVtZW50UmVmW2NvbXBvbmVudE5hbWVdIHx8IChkaWRXYXJuQWJvdXRFbGVtZW50UmVmW2NvbXBvbmVudE5hbWVdID0gdHJ1ZSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICJBY2Nlc3NpbmcgZWxlbWVudC5yZWYgd2FzIHJlbW92ZWQgaW4gUmVhY3QgMTkuIHJlZiBpcyBub3cgYSByZWd1bGFyIHByb3AuIEl0IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBKU1ggRWxlbWVudCB0eXBlIGluIGEgZnV0dXJlIHJlbGVhc2UuIgogICAgICAgICkpOwogICAgICAgIGNvbXBvbmVudE5hbWUgPSB0aGlzLnByb3BzLnJlZjsKICAgICAgICByZXR1cm4gdm9pZCAwICE9PSBjb21wb25lbnROYW1lID8gY29tcG9uZW50TmFtZSA6IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gUmVhY3RFbGVtZW50KHR5cGUsIGtleSwgcHJvcHMsIG93bmVyLCBkZWJ1Z1N0YWNrLCBkZWJ1Z1Rhc2spIHsKICAgICAgICB2YXIgcmVmUHJvcCA9IHByb3BzLnJlZjsKICAgICAgICB0eXBlID0gewogICAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSwKICAgICAgICAgIHR5cGUsCiAgICAgICAgICBrZXksCiAgICAgICAgICBwcm9wcywKICAgICAgICAgIF9vd25lcjogb3duZXIKICAgICAgICB9OwogICAgICAgIG51bGwgIT09ICh2b2lkIDAgIT09IHJlZlByb3AgPyByZWZQcm9wIDogbnVsbCkgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgInJlZiIsIHsKICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgICAgZ2V0OiBlbGVtZW50UmVmR2V0dGVyV2l0aERlcHJlY2F0aW9uV2FybmluZwogICAgICAgIH0pIDogT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsICJyZWYiLCB7IGVudW1lcmFibGU6IGZhbHNlLCB2YWx1ZTogbnVsbCB9KTsKICAgICAgICB0eXBlLl9zdG9yZSA9IHt9OwogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLl9zdG9yZSwgInZhbGlkYXRlZCIsIHsKICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsCiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwKICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgICAgdmFsdWU6IDAKICAgICAgICB9KTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgIl9kZWJ1Z0luZm8iLCB7CiAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLAogICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSwKICAgICAgICAgIHZhbHVlOiBudWxsCiAgICAgICAgfSk7CiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsICJfZGVidWdTdGFjayIsIHsKICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsCiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwKICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgICAgdmFsdWU6IGRlYnVnU3RhY2sKICAgICAgICB9KTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgIl9kZWJ1Z1Rhc2siLCB7CiAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLAogICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSwKICAgICAgICAgIHZhbHVlOiBkZWJ1Z1Rhc2sKICAgICAgICB9KTsKICAgICAgICBPYmplY3QuZnJlZXplICYmIChPYmplY3QuZnJlZXplKHR5cGUucHJvcHMpLCBPYmplY3QuZnJlZXplKHR5cGUpKTsKICAgICAgICByZXR1cm4gdHlwZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjbG9uZUFuZFJlcGxhY2VLZXkob2xkRWxlbWVudCwgbmV3S2V5KSB7CiAgICAgICAgbmV3S2V5ID0gUmVhY3RFbGVtZW50KAogICAgICAgICAgb2xkRWxlbWVudC50eXBlLAogICAgICAgICAgbmV3S2V5LAogICAgICAgICAgb2xkRWxlbWVudC5wcm9wcywKICAgICAgICAgIG9sZEVsZW1lbnQuX293bmVyLAogICAgICAgICAgb2xkRWxlbWVudC5fZGVidWdTdGFjaywKICAgICAgICAgIG9sZEVsZW1lbnQuX2RlYnVnVGFzawogICAgICAgICk7CiAgICAgICAgb2xkRWxlbWVudC5fc3RvcmUgJiYgKG5ld0tleS5fc3RvcmUudmFsaWRhdGVkID0gb2xkRWxlbWVudC5fc3RvcmUudmFsaWRhdGVkKTsKICAgICAgICByZXR1cm4gbmV3S2V5OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlQ2hpbGRLZXlzKG5vZGUpIHsKICAgICAgICBpc1ZhbGlkRWxlbWVudChub2RlKSA/IG5vZGUuX3N0b3JlICYmIChub2RlLl9zdG9yZS52YWxpZGF0ZWQgPSAxKSA6ICJvYmplY3QiID09PSB0eXBlb2Ygbm9kZSAmJiBudWxsICE9PSBub2RlICYmIG5vZGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSAmJiAoImZ1bGZpbGxlZCIgPT09IG5vZGUuX3BheWxvYWQuc3RhdHVzID8gaXNWYWxpZEVsZW1lbnQobm9kZS5fcGF5bG9hZC52YWx1ZSkgJiYgbm9kZS5fcGF5bG9hZC52YWx1ZS5fc3RvcmUgJiYgKG5vZGUuX3BheWxvYWQudmFsdWUuX3N0b3JlLnZhbGlkYXRlZCA9IDEpIDogbm9kZS5fc3RvcmUgJiYgKG5vZGUuX3N0b3JlLnZhbGlkYXRlZCA9IDEpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc1ZhbGlkRWxlbWVudChvYmplY3QpIHsKICAgICAgICByZXR1cm4gIm9iamVjdCIgPT09IHR5cGVvZiBvYmplY3QgJiYgbnVsbCAhPT0gb2JqZWN0ICYmIG9iamVjdC4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGVzY2FwZShrZXkpIHsKICAgICAgICB2YXIgZXNjYXBlckxvb2t1cCA9IHsgIj0iOiAiPTAiLCAiOiI6ICI9MiIgfTsKICAgICAgICByZXR1cm4gIiQiICsga2V5LnJlcGxhY2UoL1s9Ol0vZywgZnVuY3Rpb24obWF0Y2gpIHsKICAgICAgICAgIHJldHVybiBlc2NhcGVyTG9va3VwW21hdGNoXTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRFbGVtZW50S2V5KGVsZW1lbnQsIGluZGV4KSB7CiAgICAgICAgcmV0dXJuICJvYmplY3QiID09PSB0eXBlb2YgZWxlbWVudCAmJiBudWxsICE9PSBlbGVtZW50ICYmIG51bGwgIT0gZWxlbWVudC5rZXkgPyAoY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihlbGVtZW50LmtleSksIGVzY2FwZSgiIiArIGVsZW1lbnQua2V5KSkgOiBpbmRleC50b1N0cmluZygzNik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVzb2x2ZVRoZW5hYmxlKHRoZW5hYmxlKSB7CiAgICAgICAgc3dpdGNoICh0aGVuYWJsZS5zdGF0dXMpIHsKICAgICAgICAgIGNhc2UgImZ1bGZpbGxlZCI6CiAgICAgICAgICAgIHJldHVybiB0aGVuYWJsZS52YWx1ZTsKICAgICAgICAgIGNhc2UgInJlamVjdGVkIjoKICAgICAgICAgICAgdGhyb3cgdGhlbmFibGUucmVhc29uOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgc3dpdGNoICgic3RyaW5nIiA9PT0gdHlwZW9mIHRoZW5hYmxlLnN0YXR1cyA/IHRoZW5hYmxlLnRoZW4obm9vcCwgbm9vcCkgOiAodGhlbmFibGUuc3RhdHVzID0gInBlbmRpbmciLCB0aGVuYWJsZS50aGVuKAogICAgICAgICAgICAgIGZ1bmN0aW9uKGZ1bGZpbGxlZFZhbHVlKSB7CiAgICAgICAgICAgICAgICAicGVuZGluZyIgPT09IHRoZW5hYmxlLnN0YXR1cyAmJiAodGhlbmFibGUuc3RhdHVzID0gImZ1bGZpbGxlZCIsIHRoZW5hYmxlLnZhbHVlID0gZnVsZmlsbGVkVmFsdWUpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZnVuY3Rpb24oZXJyb3IpIHsKICAgICAgICAgICAgICAgICJwZW5kaW5nIiA9PT0gdGhlbmFibGUuc3RhdHVzICYmICh0aGVuYWJsZS5zdGF0dXMgPSAicmVqZWN0ZWQiLCB0aGVuYWJsZS5yZWFzb24gPSBlcnJvcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICApKSwgdGhlbmFibGUuc3RhdHVzKSB7CiAgICAgICAgICAgICAgY2FzZSAiZnVsZmlsbGVkIjoKICAgICAgICAgICAgICAgIHJldHVybiB0aGVuYWJsZS52YWx1ZTsKICAgICAgICAgICAgICBjYXNlICJyZWplY3RlZCI6CiAgICAgICAgICAgICAgICB0aHJvdyB0aGVuYWJsZS5yZWFzb247CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdGhyb3cgdGhlbmFibGU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbWFwSW50b0FycmF5KGNoaWxkcmVuLCBhcnJheSwgZXNjYXBlZFByZWZpeCwgbmFtZVNvRmFyLCBjYWxsYmFjaykgewogICAgICAgIHZhciB0eXBlID0gdHlwZW9mIGNoaWxkcmVuOwogICAgICAgIGlmICgidW5kZWZpbmVkIiA9PT0gdHlwZSB8fCAiYm9vbGVhbiIgPT09IHR5cGUpIGNoaWxkcmVuID0gbnVsbDsKICAgICAgICB2YXIgaW52b2tlQ2FsbGJhY2sgPSBmYWxzZTsKICAgICAgICBpZiAobnVsbCA9PT0gY2hpbGRyZW4pIGludm9rZUNhbGxiYWNrID0gdHJ1ZTsKICAgICAgICBlbHNlCiAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgY2FzZSAiYmlnaW50IjoKICAgICAgICAgICAgY2FzZSAic3RyaW5nIjoKICAgICAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICAgICAgICBpbnZva2VDYWxsYmFjayA9IHRydWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6CiAgICAgICAgICAgICAgc3dpdGNoIChjaGlsZHJlbi4kJHR5cGVvZikgewogICAgICAgICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6CiAgICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOgogICAgICAgICAgICAgICAgICBpbnZva2VDYWxsYmFjayA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6CiAgICAgICAgICAgICAgICAgIHJldHVybiBpbnZva2VDYWxsYmFjayA9IGNoaWxkcmVuLl9pbml0LCBtYXBJbnRvQXJyYXkoCiAgICAgICAgICAgICAgICAgICAgaW52b2tlQ2FsbGJhY2soY2hpbGRyZW4uX3BheWxvYWQpLAogICAgICAgICAgICAgICAgICAgIGFycmF5LAogICAgICAgICAgICAgICAgICAgIGVzY2FwZWRQcmVmaXgsCiAgICAgICAgICAgICAgICAgICAgbmFtZVNvRmFyLAogICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIGlmIChpbnZva2VDYWxsYmFjaykgewogICAgICAgICAgaW52b2tlQ2FsbGJhY2sgPSBjaGlsZHJlbjsKICAgICAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2soaW52b2tlQ2FsbGJhY2spOwogICAgICAgICAgdmFyIGNoaWxkS2V5ID0gIiIgPT09IG5hbWVTb0ZhciA/ICIuIiArIGdldEVsZW1lbnRLZXkoaW52b2tlQ2FsbGJhY2ssIDApIDogbmFtZVNvRmFyOwogICAgICAgICAgaXNBcnJheUltcGwoY2FsbGJhY2spID8gKGVzY2FwZWRQcmVmaXggPSAiIiwgbnVsbCAhPSBjaGlsZEtleSAmJiAoZXNjYXBlZFByZWZpeCA9IGNoaWxkS2V5LnJlcGxhY2UodXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsICIkJi8iKSArICIvIiksIG1hcEludG9BcnJheShjYWxsYmFjaywgYXJyYXksIGVzY2FwZWRQcmVmaXgsICIiLCBmdW5jdGlvbihjKSB7CiAgICAgICAgICAgIHJldHVybiBjOwogICAgICAgICAgfSkpIDogbnVsbCAhPSBjYWxsYmFjayAmJiAoaXNWYWxpZEVsZW1lbnQoY2FsbGJhY2spICYmIChudWxsICE9IGNhbGxiYWNrLmtleSAmJiAoaW52b2tlQ2FsbGJhY2sgJiYgaW52b2tlQ2FsbGJhY2sua2V5ID09PSBjYWxsYmFjay5rZXkgfHwgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjYWxsYmFjay5rZXkpKSwgZXNjYXBlZFByZWZpeCA9IGNsb25lQW5kUmVwbGFjZUtleSgKICAgICAgICAgICAgY2FsbGJhY2ssCiAgICAgICAgICAgIGVzY2FwZWRQcmVmaXggKyAobnVsbCA9PSBjYWxsYmFjay5rZXkgfHwgaW52b2tlQ2FsbGJhY2sgJiYgaW52b2tlQ2FsbGJhY2sua2V5ID09PSBjYWxsYmFjay5rZXkgPyAiIiA6ICgiIiArIGNhbGxiYWNrLmtleSkucmVwbGFjZSgKICAgICAgICAgICAgICB1c2VyUHJvdmlkZWRLZXlFc2NhcGVSZWdleCwKICAgICAgICAgICAgICAiJCYvIgogICAgICAgICAgICApICsgIi8iKSArIGNoaWxkS2V5CiAgICAgICAgICApLCAiIiAhPT0gbmFtZVNvRmFyICYmIG51bGwgIT0gaW52b2tlQ2FsbGJhY2sgJiYgaXNWYWxpZEVsZW1lbnQoaW52b2tlQ2FsbGJhY2spICYmIG51bGwgPT0gaW52b2tlQ2FsbGJhY2sua2V5ICYmIGludm9rZUNhbGxiYWNrLl9zdG9yZSAmJiAhaW52b2tlQ2FsbGJhY2suX3N0b3JlLnZhbGlkYXRlZCAmJiAoZXNjYXBlZFByZWZpeC5fc3RvcmUudmFsaWRhdGVkID0gMiksIGNhbGxiYWNrID0gZXNjYXBlZFByZWZpeCksIGFycmF5LnB1c2goY2FsbGJhY2spKTsKICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICBpbnZva2VDYWxsYmFjayA9IDA7CiAgICAgICAgY2hpbGRLZXkgPSAiIiA9PT0gbmFtZVNvRmFyID8gIi4iIDogbmFtZVNvRmFyICsgIjoiOwogICAgICAgIGlmIChpc0FycmF5SW1wbChjaGlsZHJlbikpCiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKQogICAgICAgICAgICBuYW1lU29GYXIgPSBjaGlsZHJlbltpXSwgdHlwZSA9IGNoaWxkS2V5ICsgZ2V0RWxlbWVudEtleShuYW1lU29GYXIsIGkpLCBpbnZva2VDYWxsYmFjayArPSBtYXBJbnRvQXJyYXkoCiAgICAgICAgICAgICAgbmFtZVNvRmFyLAogICAgICAgICAgICAgIGFycmF5LAogICAgICAgICAgICAgIGVzY2FwZWRQcmVmaXgsCiAgICAgICAgICAgICAgdHlwZSwKICAgICAgICAgICAgICBjYWxsYmFjawogICAgICAgICAgICApOwogICAgICAgIGVsc2UgaWYgKGkgPSBnZXRJdGVyYXRvckZuKGNoaWxkcmVuKSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGkpCiAgICAgICAgICBmb3IgKGkgPT09IGNoaWxkcmVuLmVudHJpZXMgJiYgKGRpZFdhcm5BYm91dE1hcHMgfHwgY29uc29sZS53YXJuKAogICAgICAgICAgICAiVXNpbmcgTWFwcyBhcyBjaGlsZHJlbiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYW4gYXJyYXkgb2Yga2V5ZWQgUmVhY3RFbGVtZW50cyBpbnN0ZWFkLiIKICAgICAgICAgICksIGRpZFdhcm5BYm91dE1hcHMgPSB0cnVlKSwgY2hpbGRyZW4gPSBpLmNhbGwoY2hpbGRyZW4pLCBpID0gMDsgIShuYW1lU29GYXIgPSBjaGlsZHJlbi5uZXh0KCkpLmRvbmU7ICkKICAgICAgICAgICAgbmFtZVNvRmFyID0gbmFtZVNvRmFyLnZhbHVlLCB0eXBlID0gY2hpbGRLZXkgKyBnZXRFbGVtZW50S2V5KG5hbWVTb0ZhciwgaSsrKSwgaW52b2tlQ2FsbGJhY2sgKz0gbWFwSW50b0FycmF5KAogICAgICAgICAgICAgIG5hbWVTb0ZhciwKICAgICAgICAgICAgICBhcnJheSwKICAgICAgICAgICAgICBlc2NhcGVkUHJlZml4LAogICAgICAgICAgICAgIHR5cGUsCiAgICAgICAgICAgICAgY2FsbGJhY2sKICAgICAgICAgICAgKTsKICAgICAgICBlbHNlIGlmICgib2JqZWN0IiA9PT0gdHlwZSkgewogICAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBjaGlsZHJlbi50aGVuKQogICAgICAgICAgICByZXR1cm4gbWFwSW50b0FycmF5KAogICAgICAgICAgICAgIHJlc29sdmVUaGVuYWJsZShjaGlsZHJlbiksCiAgICAgICAgICAgICAgYXJyYXksCiAgICAgICAgICAgICAgZXNjYXBlZFByZWZpeCwKICAgICAgICAgICAgICBuYW1lU29GYXIsCiAgICAgICAgICAgICAgY2FsbGJhY2sKICAgICAgICAgICAgKTsKICAgICAgICAgIGFycmF5ID0gU3RyaW5nKGNoaWxkcmVuKTsKICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiICsgKCJbb2JqZWN0IE9iamVjdF0iID09PSBhcnJheSA/ICJvYmplY3Qgd2l0aCBrZXlzIHsiICsgT2JqZWN0LmtleXMoY2hpbGRyZW4pLmpvaW4oIiwgIikgKyAifSIgOiBhcnJheSkgKyAiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLiIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpbnZva2VDYWxsYmFjazsKICAgICAgfQogICAgICBmdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkgewogICAgICAgIGlmIChudWxsID09IGNoaWxkcmVuKSByZXR1cm4gY2hpbGRyZW47CiAgICAgICAgdmFyIHJlc3VsdCA9IFtdLCBjb3VudCA9IDA7CiAgICAgICAgbWFwSW50b0FycmF5KGNoaWxkcmVuLCByZXN1bHQsICIiLCAiIiwgZnVuY3Rpb24oY2hpbGQpIHsKICAgICAgICAgIHJldHVybiBmdW5jLmNhbGwoY29udGV4dCwgY2hpbGQsIGNvdW50KyspOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbGF6eUluaXRpYWxpemVyKHBheWxvYWQpIHsKICAgICAgICBpZiAoLTEgPT09IHBheWxvYWQuX3N0YXR1cykgewogICAgICAgICAgdmFyIGlvSW5mbyA9IHBheWxvYWQuX2lvSW5mbzsKICAgICAgICAgIG51bGwgIT0gaW9JbmZvICYmIChpb0luZm8uc3RhcnQgPSBpb0luZm8uZW5kID0gcGVyZm9ybWFuY2Uubm93KCkpOwogICAgICAgICAgaW9JbmZvID0gcGF5bG9hZC5fcmVzdWx0OwogICAgICAgICAgdmFyIHRoZW5hYmxlID0gaW9JbmZvKCk7CiAgICAgICAgICB0aGVuYWJsZS50aGVuKAogICAgICAgICAgICBmdW5jdGlvbihtb2R1bGVPYmplY3QpIHsKICAgICAgICAgICAgICBpZiAoMCA9PT0gcGF5bG9hZC5fc3RhdHVzIHx8IC0xID09PSBwYXlsb2FkLl9zdGF0dXMpIHsKICAgICAgICAgICAgICAgIHBheWxvYWQuX3N0YXR1cyA9IDE7CiAgICAgICAgICAgICAgICBwYXlsb2FkLl9yZXN1bHQgPSBtb2R1bGVPYmplY3Q7CiAgICAgICAgICAgICAgICB2YXIgX2lvSW5mbyA9IHBheWxvYWQuX2lvSW5mbzsKICAgICAgICAgICAgICAgIG51bGwgIT0gX2lvSW5mbyAmJiAoX2lvSW5mby5lbmQgPSBwZXJmb3JtYW5jZS5ub3coKSk7CiAgICAgICAgICAgICAgICB2b2lkIDAgPT09IHRoZW5hYmxlLnN0YXR1cyAmJiAodGhlbmFibGUuc3RhdHVzID0gImZ1bGZpbGxlZCIsIHRoZW5hYmxlLnZhbHVlID0gbW9kdWxlT2JqZWN0KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZ1bmN0aW9uKGVycm9yKSB7CiAgICAgICAgICAgICAgaWYgKDAgPT09IHBheWxvYWQuX3N0YXR1cyB8fCAtMSA9PT0gcGF5bG9hZC5fc3RhdHVzKSB7CiAgICAgICAgICAgICAgICBwYXlsb2FkLl9zdGF0dXMgPSAyOwogICAgICAgICAgICAgICAgcGF5bG9hZC5fcmVzdWx0ID0gZXJyb3I7CiAgICAgICAgICAgICAgICB2YXIgX2lvSW5mbzIgPSBwYXlsb2FkLl9pb0luZm87CiAgICAgICAgICAgICAgICBudWxsICE9IF9pb0luZm8yICYmIChfaW9JbmZvMi5lbmQgPSBwZXJmb3JtYW5jZS5ub3coKSk7CiAgICAgICAgICAgICAgICB2b2lkIDAgPT09IHRoZW5hYmxlLnN0YXR1cyAmJiAodGhlbmFibGUuc3RhdHVzID0gInJlamVjdGVkIiwgdGhlbmFibGUucmVhc29uID0gZXJyb3IpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgKTsKICAgICAgICAgIGlvSW5mbyA9IHBheWxvYWQuX2lvSW5mbzsKICAgICAgICAgIGlmIChudWxsICE9IGlvSW5mbykgewogICAgICAgICAgICBpb0luZm8udmFsdWUgPSB0aGVuYWJsZTsKICAgICAgICAgICAgdmFyIGRpc3BsYXlOYW1lID0gdGhlbmFibGUuZGlzcGxheU5hbWU7CiAgICAgICAgICAgICJzdHJpbmciID09PSB0eXBlb2YgZGlzcGxheU5hbWUgJiYgKGlvSW5mby5uYW1lID0gZGlzcGxheU5hbWUpOwogICAgICAgICAgfQogICAgICAgICAgLTEgPT09IHBheWxvYWQuX3N0YXR1cyAmJiAocGF5bG9hZC5fc3RhdHVzID0gMCwgcGF5bG9hZC5fcmVzdWx0ID0gdGhlbmFibGUpOwogICAgICAgIH0KICAgICAgICBpZiAoMSA9PT0gcGF5bG9hZC5fc3RhdHVzKQogICAgICAgICAgcmV0dXJuIGlvSW5mbyA9IHBheWxvYWQuX3Jlc3VsdCwgdm9pZCAwID09PSBpb0luZm8gJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgImxhenk6IEV4cGVjdGVkIHRoZSByZXN1bHQgb2YgYSBkeW5hbWljIGltcG9ydCgpIGNhbGwuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzXG5cbllvdXIgY29kZSBzaG91bGQgbG9vayBsaWtlOiBcbiAgY29uc3QgTXlDb21wb25lbnQgPSBsYXp5KCgpID0+IGltcG9ydCgnLi9NeUNvbXBvbmVudCcpKVxuXG5EaWQgeW91IGFjY2lkZW50YWxseSBwdXQgY3VybHkgYnJhY2VzIGFyb3VuZCB0aGUgaW1wb3J0PyIsCiAgICAgICAgICAgIGlvSW5mbwogICAgICAgICAgKSwgImRlZmF1bHQiIGluIGlvSW5mbyB8fCBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAibGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wb3J0KCkgY2FsbC4gSW5zdGVhZCByZWNlaXZlZDogJXNcblxuWW91ciBjb2RlIHNob3VsZCBsb29rIGxpa2U6IFxuICBjb25zdCBNeUNvbXBvbmVudCA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL015Q29tcG9uZW50JykpIiwKICAgICAgICAgICAgaW9JbmZvCiAgICAgICAgICApLCBpb0luZm8uZGVmYXVsdDsKICAgICAgICB0aHJvdyBwYXlsb2FkLl9yZXN1bHQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVzb2x2ZURpc3BhdGNoZXIoKSB7CiAgICAgICAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IOwogICAgICAgIG51bGwgPT09IGRpc3BhdGNoZXIgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICJJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIHJlYXNvbnM6XG4xLiBZb3UgbWlnaHQgaGF2ZSBtaXNtYXRjaGluZyB2ZXJzaW9ucyBvZiBSZWFjdCBhbmQgdGhlIHJlbmRlcmVyIChzdWNoIGFzIFJlYWN0IERPTSlcbjIuIFlvdSBtaWdodCBiZSBicmVha2luZyB0aGUgUnVsZXMgb2YgSG9va3NcbjMuIFlvdSBtaWdodCBoYXZlIG1vcmUgdGhhbiBvbmUgY29weSBvZiBSZWFjdCBpbiB0aGUgc2FtZSBhcHBcblNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS4iCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gZGlzcGF0Y2hlcjsKICAgICAgfQogICAgICBmdW5jdGlvbiByZWxlYXNlQXN5bmNUcmFuc2l0aW9uKCkgewogICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFzeW5jVHJhbnNpdGlvbnMtLTsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbnF1ZXVlVGFzayh0YXNrKSB7CiAgICAgICAgaWYgKG51bGwgPT09IGVucXVldWVUYXNrSW1wbCkKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciByZXF1aXJlU3RyaW5nID0gKCJyZXF1aXJlIiArIE1hdGgucmFuZG9tKCkpLnNsaWNlKDAsIDcpOwogICAgICAgICAgICBlbnF1ZXVlVGFza0ltcGwgPSAobW9kdWxlICYmIG1vZHVsZVtyZXF1aXJlU3RyaW5nXSkuY2FsbCgKICAgICAgICAgICAgICBtb2R1bGUsCiAgICAgICAgICAgICAgInRpbWVycyIKICAgICAgICAgICAgKS5zZXRJbW1lZGlhdGU7CiAgICAgICAgICB9IGNhdGNoIChfZXJyKSB7CiAgICAgICAgICAgIGVucXVldWVUYXNrSW1wbCA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgICAgICAgICAgICAgZmFsc2UgPT09IGRpZFdhcm5BYm91dE1lc3NhZ2VDaGFubmVsICYmIChkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9IHRydWUsICJ1bmRlZmluZWQiID09PSB0eXBlb2YgTWVzc2FnZUNoYW5uZWwgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICJUaGlzIGJyb3dzZXIgZG9lcyBub3QgaGF2ZSBhIE1lc3NhZ2VDaGFubmVsIGltcGxlbWVudGF0aW9uLCBzbyBlbnF1ZXVpbmcgdGFza3MgdmlhIGF3YWl0IGFjdChhc3luYyAoKSA9PiAuLi4pIHdpbGwgZmFpbC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUgYXQgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3VlcyBpZiB5b3UgZW5jb3VudGVyIHRoaXMgd2FybmluZy4iCiAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGNhbGxiYWNrOwogICAgICAgICAgICAgIGNoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2Uodm9pZCAwKTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH0KICAgICAgICByZXR1cm4gZW5xdWV1ZVRhc2tJbXBsKHRhc2spOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFnZ3JlZ2F0ZUVycm9ycyhlcnJvcnMpIHsKICAgICAgICByZXR1cm4gMSA8IGVycm9ycy5sZW5ndGggJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIEFnZ3JlZ2F0ZUVycm9yID8gbmV3IEFnZ3JlZ2F0ZUVycm9yKGVycm9ycykgOiBlcnJvcnNbMF07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcG9wQWN0U2NvcGUocHJldkFjdFF1ZXVlLCBwcmV2QWN0U2NvcGVEZXB0aCkgewogICAgICAgIHByZXZBY3RTY29wZURlcHRoICE9PSBhY3RTY29wZURlcHRoIC0gMSAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIllvdSBzZWVtIHRvIGhhdmUgb3ZlcmxhcHBpbmcgYWN0KCkgY2FsbHMsIHRoaXMgaXMgbm90IHN1cHBvcnRlZC4gQmUgc3VyZSB0byBhd2FpdCBwcmV2aW91cyBhY3QoKSBjYWxscyBiZWZvcmUgbWFraW5nIGEgbmV3IG9uZS4gIgogICAgICAgICk7CiAgICAgICAgYWN0U2NvcGVEZXB0aCA9IHByZXZBY3RTY29wZURlcHRoOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIHZhciBxdWV1ZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlOwogICAgICAgIGlmIChudWxsICE9PSBxdWV1ZSkKICAgICAgICAgIGlmICgwICE9PSBxdWV1ZS5sZW5ndGgpCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZmx1c2hBY3RRdWV1ZShxdWV1ZSk7CiAgICAgICAgICAgICAgZW5xdWV1ZVRhc2soZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gcmVjdXJzaXZlbHlGbHVzaEFzeW5jQWN0V29yayhyZXR1cm5WYWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLnB1c2goZXJyb3IpOwogICAgICAgICAgICB9CiAgICAgICAgICBlbHNlIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlID0gbnVsbDsKICAgICAgICAwIDwgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLmxlbmd0aCA/IChxdWV1ZSA9IGFnZ3JlZ2F0ZUVycm9ycyhSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMpLCBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoID0gMCwgcmVqZWN0KHF1ZXVlKSkgOiByZXNvbHZlKHJldHVyblZhbHVlKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBmbHVzaEFjdFF1ZXVlKHF1ZXVlKSB7CiAgICAgICAgaWYgKCFpc0ZsdXNoaW5nKSB7CiAgICAgICAgICBpc0ZsdXNoaW5nID0gdHJ1ZTsKICAgICAgICAgIHZhciBpID0gMDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGZvciAoOyBpIDwgcXVldWUubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSBxdWV1ZVtpXTsKICAgICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5kaWRVc2VQcm9taXNlID0gZmFsc2U7CiAgICAgICAgICAgICAgICB2YXIgY29udGludWF0aW9uID0gY2FsbGJhY2soZmFsc2UpOwogICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IGNvbnRpbnVhdGlvbikgewogICAgICAgICAgICAgICAgICBpZiAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuZGlkVXNlUHJvbWlzZSkgewogICAgICAgICAgICAgICAgICAgIHF1ZXVlW2ldID0gY2FsbGJhY2s7CiAgICAgICAgICAgICAgICAgICAgcXVldWUuc3BsaWNlKDAsIGkpOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBjYWxsYmFjayA9IGNvbnRpbnVhdGlvbjsKICAgICAgICAgICAgICAgIH0gZWxzZSBicmVhazsKICAgICAgICAgICAgICB9IHdoaWxlICgxKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBxdWV1ZS5sZW5ndGggPSAwOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgcXVldWUuc3BsaWNlKDAsIGkgKyAxKSwgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLnB1c2goZXJyb3IpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgaXNGbHVzaGluZyA9IGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydCAmJiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0KEVycm9yKCkpOwogICAgICB2YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IiksIFJFQUNUX1BPUlRBTF9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLCBSRUFDVF9GUkFHTUVOVF9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSwgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLCBSRUFDVF9DT05TVU1FUl9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LmNvbnN1bWVyIiksIFJFQUNUX0NPTlRFWFRfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSwgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLCBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLCBSRUFDVF9NRU1PX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QubWVtbyIpLCBSRUFDVF9MQVpZX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QubGF6eSIpLCBSRUFDVF9BQ1RJVklUWV9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LmFjdGl2aXR5IiksIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvciwgZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50ID0ge30sIFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlID0gewogICAgICAgIGlzTW91bnRlZDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSwKICAgICAgICBlbnF1ZXVlRm9yY2VVcGRhdGU6IGZ1bmN0aW9uKHB1YmxpY0luc3RhbmNlKSB7CiAgICAgICAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgImZvcmNlVXBkYXRlIik7CiAgICAgICAgfSwKICAgICAgICBlbnF1ZXVlUmVwbGFjZVN0YXRlOiBmdW5jdGlvbihwdWJsaWNJbnN0YW5jZSkgewogICAgICAgICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsICJyZXBsYWNlU3RhdGUiKTsKICAgICAgICB9LAogICAgICAgIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24ocHVibGljSW5zdGFuY2UpIHsKICAgICAgICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAic2V0U3RhdGUiKTsKICAgICAgICB9CiAgICAgIH0sIGFzc2lnbiA9IE9iamVjdC5hc3NpZ24sIGVtcHR5T2JqZWN0ID0ge307CiAgICAgIE9iamVjdC5mcmVlemUoZW1wdHlPYmplY3QpOwogICAgICBDb21wb25lbnQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB7fTsKICAgICAgQ29tcG9uZW50LnByb3RvdHlwZS5zZXRTdGF0ZSA9IGZ1bmN0aW9uKHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2spIHsKICAgICAgICBpZiAoIm9iamVjdCIgIT09IHR5cGVvZiBwYXJ0aWFsU3RhdGUgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHBhcnRpYWxTdGF0ZSAmJiBudWxsICE9IHBhcnRpYWxTdGF0ZSkKICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAidGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuIgogICAgICAgICAgKTsKICAgICAgICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsIHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2ssICJzZXRTdGF0ZSIpOwogICAgICB9OwogICAgICBDb21wb25lbnQucHJvdG90eXBlLmZvcmNlVXBkYXRlID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgICAgICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsIGNhbGxiYWNrLCAiZm9yY2VVcGRhdGUiKTsKICAgICAgfTsKICAgICAgdmFyIGRlcHJlY2F0ZWRBUElzID0gewogICAgICAgIGlzTW91bnRlZDogWwogICAgICAgICAgImlzTW91bnRlZCIsCiAgICAgICAgICAiSW5zdGVhZCwgbWFrZSBzdXJlIHRvIGNsZWFuIHVwIHN1YnNjcmlwdGlvbnMgYW5kIHBlbmRpbmcgcmVxdWVzdHMgaW4gY29tcG9uZW50V2lsbFVubW91bnQgdG8gcHJldmVudCBtZW1vcnkgbGVha3MuIgogICAgICAgIF0sCiAgICAgICAgcmVwbGFjZVN0YXRlOiBbCiAgICAgICAgICAicmVwbGFjZVN0YXRlIiwKICAgICAgICAgICJSZWZhY3RvciB5b3VyIGNvZGUgdG8gdXNlIHNldFN0YXRlIGluc3RlYWQgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzMyMzYpLiIKICAgICAgICBdCiAgICAgIH07CiAgICAgIGZvciAoZm5OYW1lIGluIGRlcHJlY2F0ZWRBUElzKQogICAgICAgIGRlcHJlY2F0ZWRBUElzLmhhc093blByb3BlcnR5KGZuTmFtZSkgJiYgZGVmaW5lRGVwcmVjYXRpb25XYXJuaW5nKGZuTmFtZSwgZGVwcmVjYXRlZEFQSXNbZm5OYW1lXSk7CiAgICAgIENvbXBvbmVudER1bW15LnByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7CiAgICAgIGRlcHJlY2F0ZWRBUElzID0gUHVyZUNvbXBvbmVudC5wcm90b3R5cGUgPSBuZXcgQ29tcG9uZW50RHVtbXkoKTsKICAgICAgZGVwcmVjYXRlZEFQSXMuY29uc3RydWN0b3IgPSBQdXJlQ29tcG9uZW50OwogICAgICBhc3NpZ24oZGVwcmVjYXRlZEFQSXMsIENvbXBvbmVudC5wcm90b3R5cGUpOwogICAgICBkZXByZWNhdGVkQVBJcy5pc1B1cmVSZWFjdENvbXBvbmVudCA9IHRydWU7CiAgICAgIHZhciBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QuY2xpZW50LnJlZmVyZW5jZSIpLCBSZWFjdFNoYXJlZEludGVybmFscyA9IHsKICAgICAgICBIOiBudWxsLAogICAgICAgIEE6IG51bGwsCiAgICAgICAgVDogbnVsbCwKICAgICAgICBTOiBudWxsLAogICAgICAgIGFjdFF1ZXVlOiBudWxsLAogICAgICAgIGFzeW5jVHJhbnNpdGlvbnM6IDAsCiAgICAgICAgaXNCYXRjaGluZ0xlZ2FjeTogZmFsc2UsCiAgICAgICAgZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGU6IGZhbHNlLAogICAgICAgIGRpZFVzZVByb21pc2U6IGZhbHNlLAogICAgICAgIHRocm93bkVycm9yczogW10sCiAgICAgICAgZ2V0Q3VycmVudFN0YWNrOiBudWxsLAogICAgICAgIHJlY2VudGx5Q3JlYXRlZE93bmVyU3RhY2tzOiAwCiAgICAgIH0sIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSwgY3JlYXRlVGFzayA9IGNvbnNvbGUuY3JlYXRlVGFzayA/IGNvbnNvbGUuY3JlYXRlVGFzayA6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9OwogICAgICBkZXByZWNhdGVkQVBJcyA9IHsKICAgICAgICByZWFjdF9zdGFja19ib3R0b21fZnJhbWU6IGZ1bmN0aW9uKGNhbGxTdGFja0ZvckVycm9yKSB7CiAgICAgICAgICByZXR1cm4gY2FsbFN0YWNrRm9yRXJyb3IoKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHZhciBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biwgZGlkV2FybkFib3V0T2xkSlNYUnVudGltZTsKICAgICAgdmFyIGRpZFdhcm5BYm91dEVsZW1lbnRSZWYgPSB7fTsKICAgICAgdmFyIHVua25vd25Pd25lckRlYnVnU3RhY2sgPSBkZXByZWNhdGVkQVBJcy5yZWFjdF9zdGFja19ib3R0b21fZnJhbWUuYmluZCgKICAgICAgICBkZXByZWNhdGVkQVBJcywKICAgICAgICBVbmtub3duT3duZXIKICAgICAgKSgpOwogICAgICB2YXIgdW5rbm93bk93bmVyRGVidWdUYXNrID0gY3JlYXRlVGFzayhnZXRUYXNrTmFtZShVbmtub3duT3duZXIpKTsKICAgICAgdmFyIGRpZFdhcm5BYm91dE1hcHMgPSBmYWxzZSwgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXggPSAvXC8rL2csIHJlcG9ydEdsb2JhbEVycm9yID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHJlcG9ydEVycm9yID8gcmVwb3J0RXJyb3IgOiBmdW5jdGlvbihlcnJvcikgewogICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIHdpbmRvdyAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2Ygd2luZG93LkVycm9yRXZlbnQpIHsKICAgICAgICAgIHZhciBldmVudCA9IG5ldyB3aW5kb3cuRXJyb3JFdmVudCgiZXJyb3IiLCB7CiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsCiAgICAgICAgICAgIGNhbmNlbGFibGU6IHRydWUsCiAgICAgICAgICAgIG1lc3NhZ2U6ICJvYmplY3QiID09PSB0eXBlb2YgZXJyb3IgJiYgbnVsbCAhPT0gZXJyb3IgJiYgInN0cmluZyIgPT09IHR5cGVvZiBlcnJvci5tZXNzYWdlID8gU3RyaW5nKGVycm9yLm1lc3NhZ2UpIDogU3RyaW5nKGVycm9yKSwKICAgICAgICAgICAgZXJyb3IKICAgICAgICAgIH0pOwogICAgICAgICAgaWYgKCF3aW5kb3cuZGlzcGF0Y2hFdmVudChldmVudCkpIHJldHVybjsKICAgICAgICB9IGVsc2UgaWYgKCJvYmplY3QiID09PSB0eXBlb2YgcHJvY2VzcyAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgcHJvY2Vzcy5lbWl0KSB7CiAgICAgICAgICBwcm9jZXNzLmVtaXQoInVuY2F1Z2h0RXhjZXB0aW9uIiwgZXJyb3IpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgfSwgZGlkV2FybkFib3V0TWVzc2FnZUNoYW5uZWwgPSBmYWxzZSwgZW5xdWV1ZVRhc2tJbXBsID0gbnVsbCwgYWN0U2NvcGVEZXB0aCA9IDAsIGRpZFdhcm5Ob0F3YWl0QWN0ID0gZmFsc2UsIGlzRmx1c2hpbmcgPSBmYWxzZSwgcXVldWVTZXZlcmFsTWljcm90YXNrcyA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBxdWV1ZU1pY3JvdGFzayA/IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgICAgICAgcXVldWVNaWNyb3Rhc2soZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gcXVldWVNaWNyb3Rhc2soY2FsbGJhY2spOwogICAgICAgIH0pOwogICAgICB9IDogZW5xdWV1ZVRhc2s7CiAgICAgIGRlcHJlY2F0ZWRBUElzID0gT2JqZWN0LmZyZWV6ZSh7CiAgICAgICAgX19wcm90b19fOiBudWxsLAogICAgICAgIGM6IGZ1bmN0aW9uKHNpemUpIHsKICAgICAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZU1lbW9DYWNoZShzaXplKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICB2YXIgZm5OYW1lID0gewogICAgICAgIG1hcDogbWFwQ2hpbGRyZW4sCiAgICAgICAgZm9yRWFjaDogZnVuY3Rpb24oY2hpbGRyZW4sIGZvckVhY2hGdW5jLCBmb3JFYWNoQ29udGV4dCkgewogICAgICAgICAgbWFwQ2hpbGRyZW4oCiAgICAgICAgICAgIGNoaWxkcmVuLAogICAgICAgICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBmb3JFYWNoRnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBmb3JFYWNoQ29udGV4dAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICAgIGNvdW50OiBmdW5jdGlvbihjaGlsZHJlbikgewogICAgICAgICAgdmFyIG4gPSAwOwogICAgICAgICAgbWFwQ2hpbGRyZW4oY2hpbGRyZW4sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBuKys7CiAgICAgICAgICB9KTsKICAgICAgICAgIHJldHVybiBuOwogICAgICAgIH0sCiAgICAgICAgdG9BcnJheTogZnVuY3Rpb24oY2hpbGRyZW4pIHsKICAgICAgICAgIHJldHVybiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24oY2hpbGQpIHsKICAgICAgICAgICAgcmV0dXJuIGNoaWxkOwogICAgICAgICAgfSkgfHwgW107CiAgICAgICAgfSwKICAgICAgICBvbmx5OiBmdW5jdGlvbihjaGlsZHJlbikgewogICAgICAgICAgaWYgKCFpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpCiAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC4iCiAgICAgICAgICAgICk7CiAgICAgICAgICByZXR1cm4gY2hpbGRyZW47CiAgICAgICAgfQogICAgICB9OwogICAgICBleHBvcnRzLkFjdGl2aXR5ID0gUkVBQ1RfQUNUSVZJVFlfVFlQRTsKICAgICAgZXhwb3J0cy5DaGlsZHJlbiA9IGZuTmFtZTsKICAgICAgZXhwb3J0cy5Db21wb25lbnQgPSBDb21wb25lbnQ7CiAgICAgIGV4cG9ydHMuRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFOwogICAgICBleHBvcnRzLlByb2ZpbGVyID0gUkVBQ1RfUFJPRklMRVJfVFlQRTsKICAgICAgZXhwb3J0cy5QdXJlQ29tcG9uZW50ID0gUHVyZUNvbXBvbmVudDsKICAgICAgZXhwb3J0cy5TdHJpY3RNb2RlID0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTsKICAgICAgZXhwb3J0cy5TdXNwZW5zZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7CiAgICAgIGV4cG9ydHMuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFID0gUmVhY3RTaGFyZWRJbnRlcm5hbHM7CiAgICAgIGV4cG9ydHMuX19DT01QSUxFUl9SVU5USU1FID0gZGVwcmVjYXRlZEFQSXM7CiAgICAgIGV4cG9ydHMuYWN0ID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgICAgICB2YXIgcHJldkFjdFF1ZXVlID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUsIHByZXZBY3RTY29wZURlcHRoID0gYWN0U2NvcGVEZXB0aDsKICAgICAgICBhY3RTY29wZURlcHRoKys7CiAgICAgICAgdmFyIHF1ZXVlID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgPSBudWxsICE9PSBwcmV2QWN0UXVldWUgPyBwcmV2QWN0UXVldWUgOiBbXSwgZGlkQXdhaXRBY3RDYWxsID0gZmFsc2U7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHZhciByZXN1bHQgPSBjYWxsYmFjaygpOwogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMucHVzaChlcnJvcik7CiAgICAgICAgfQogICAgICAgIGlmICgwIDwgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLmxlbmd0aCkKICAgICAgICAgIHRocm93IHBvcEFjdFNjb3BlKHByZXZBY3RRdWV1ZSwgcHJldkFjdFNjb3BlRGVwdGgpLCBjYWxsYmFjayA9IGFnZ3JlZ2F0ZUVycm9ycyhSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMpLCBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoID0gMCwgY2FsbGJhY2s7CiAgICAgICAgaWYgKG51bGwgIT09IHJlc3VsdCAmJiAib2JqZWN0IiA9PT0gdHlwZW9mIHJlc3VsdCAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgcmVzdWx0LnRoZW4pIHsKICAgICAgICAgIHZhciB0aGVuYWJsZSA9IHJlc3VsdDsKICAgICAgICAgIHF1ZXVlU2V2ZXJhbE1pY3JvdGFza3MoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGRpZEF3YWl0QWN0Q2FsbCB8fCBkaWRXYXJuTm9Bd2FpdEFjdCB8fCAoZGlkV2Fybk5vQXdhaXRBY3QgPSB0cnVlLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICJZb3UgY2FsbGVkIGFjdChhc3luYyAoKSA9PiAuLi4pIHdpdGhvdXQgYXdhaXQuIFRoaXMgY291bGQgbGVhZCB0byB1bmV4cGVjdGVkIHRlc3RpbmcgYmVoYXZpb3VyLCBpbnRlcmxlYXZpbmcgbXVsdGlwbGUgYWN0IGNhbGxzIGFuZCBtaXhpbmcgdGhlaXIgc2NvcGVzLiBZb3Ugc2hvdWxkIC0gYXdhaXQgYWN0KGFzeW5jICgpID0+IC4uLik7IgogICAgICAgICAgICApKTsKICAgICAgICAgIH0pOwogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgdGhlbjogZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICAgZGlkQXdhaXRBY3RDYWxsID0gdHJ1ZTsKICAgICAgICAgICAgICB0aGVuYWJsZS50aGVuKAogICAgICAgICAgICAgICAgZnVuY3Rpb24ocmV0dXJuVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgcG9wQWN0U2NvcGUocHJldkFjdFF1ZXVlLCBwcmV2QWN0U2NvcGVEZXB0aCk7CiAgICAgICAgICAgICAgICAgIGlmICgwID09PSBwcmV2QWN0U2NvcGVEZXB0aCkgewogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICBmbHVzaEFjdFF1ZXVlKHF1ZXVlKSwgZW5xdWV1ZVRhc2soZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWN1cnNpdmVseUZsdXNoQXN5bmNBY3RXb3JrKAogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvciQwKSB7CiAgICAgICAgICAgICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMucHVzaChlcnJvciQwKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKDAgPCBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgX3Rocm93bkVycm9yID0gYWdncmVnYXRlRXJyb3JzKAogICAgICAgICAgICAgICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoID0gMDsKICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChfdGhyb3duRXJyb3IpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBlbHNlIHJlc29sdmUocmV0dXJuVmFsdWUpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGVycm9yKSB7CiAgICAgICAgICAgICAgICAgIHBvcEFjdFNjb3BlKHByZXZBY3RRdWV1ZSwgcHJldkFjdFNjb3BlRGVwdGgpOwogICAgICAgICAgICAgICAgICAwIDwgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLmxlbmd0aCA/IChlcnJvciA9IGFnZ3JlZ2F0ZUVycm9ycygKICAgICAgICAgICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMKICAgICAgICAgICAgICAgICAgKSwgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLmxlbmd0aCA9IDAsIHJlamVjdChlcnJvcikpIDogcmVqZWN0KGVycm9yKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICB2YXIgcmV0dXJuVmFsdWUkanNjb21wJDAgPSByZXN1bHQ7CiAgICAgICAgcG9wQWN0U2NvcGUocHJldkFjdFF1ZXVlLCBwcmV2QWN0U2NvcGVEZXB0aCk7CiAgICAgICAgMCA9PT0gcHJldkFjdFNjb3BlRGVwdGggJiYgKGZsdXNoQWN0UXVldWUocXVldWUpLCAwICE9PSBxdWV1ZS5sZW5ndGggJiYgcXVldWVTZXZlcmFsTWljcm90YXNrcyhmdW5jdGlvbigpIHsKICAgICAgICAgIGRpZEF3YWl0QWN0Q2FsbCB8fCBkaWRXYXJuTm9Bd2FpdEFjdCB8fCAoZGlkV2Fybk5vQXdhaXRBY3QgPSB0cnVlLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiQSBjb21wb25lbnQgc3VzcGVuZGVkIGluc2lkZSBhbiBgYWN0YCBzY29wZSwgYnV0IHRoZSBgYWN0YCBjYWxsIHdhcyBub3QgYXdhaXRlZC4gV2hlbiB0ZXN0aW5nIFJlYWN0IGNvbXBvbmVudHMgdGhhdCBkZXBlbmQgb24gYXN5bmNocm9ub3VzIGRhdGEsIHlvdSBtdXN0IGF3YWl0IHRoZSByZXN1bHQ6XG5cbmF3YWl0IGFjdCgoKSA9PiAuLi4pIgogICAgICAgICAgKSk7CiAgICAgICAgfSksIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlID0gbnVsbCk7CiAgICAgICAgaWYgKDAgPCBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoKQogICAgICAgICAgdGhyb3cgY2FsbGJhY2sgPSBhZ2dyZWdhdGVFcnJvcnMoUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzKSwgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLmxlbmd0aCA9IDAsIGNhbGxiYWNrOwogICAgICAgIHJldHVybiB7CiAgICAgICAgICB0aGVuOiBmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgZGlkQXdhaXRBY3RDYWxsID0gdHJ1ZTsKICAgICAgICAgICAgMCA9PT0gcHJldkFjdFNjb3BlRGVwdGggPyAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgPSBxdWV1ZSwgZW5xdWV1ZVRhc2soZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsoCiAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSRqc2NvbXAkMCwKICAgICAgICAgICAgICAgIHJlc29sdmUsCiAgICAgICAgICAgICAgICByZWplY3QKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KSkgOiByZXNvbHZlKHJldHVyblZhbHVlJGpzY29tcCQwKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9OwogICAgICBleHBvcnRzLmNhY2hlID0gZnVuY3Rpb24oZm4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gZm4uYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9OwogICAgICBleHBvcnRzLmNhY2hlU2lnbmFsID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH07CiAgICAgIGV4cG9ydHMuY2FwdHVyZU93bmVyU3RhY2sgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgZ2V0Q3VycmVudFN0YWNrID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuZ2V0Q3VycmVudFN0YWNrOwogICAgICAgIHJldHVybiBudWxsID09PSBnZXRDdXJyZW50U3RhY2sgPyBudWxsIDogZ2V0Q3VycmVudFN0YWNrKCk7CiAgICAgIH07CiAgICAgIGV4cG9ydHMuY2xvbmVFbGVtZW50ID0gZnVuY3Rpb24oZWxlbWVudCwgY29uZmlnLCBjaGlsZHJlbikgewogICAgICAgIGlmIChudWxsID09PSBlbGVtZW50IHx8IHZvaWQgMCA9PT0gZWxlbWVudCkKICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAiVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCAiICsgZWxlbWVudCArICIuIgogICAgICAgICAgKTsKICAgICAgICB2YXIgcHJvcHMgPSBhc3NpZ24oe30sIGVsZW1lbnQucHJvcHMpLCBrZXkgPSBlbGVtZW50LmtleSwgb3duZXIgPSBlbGVtZW50Ll9vd25lcjsKICAgICAgICBpZiAobnVsbCAhPSBjb25maWcpIHsKICAgICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQ7CiAgICAgICAgICBhOiB7CiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgInJlZiIpICYmIChKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKAogICAgICAgICAgICAgIGNvbmZpZywKICAgICAgICAgICAgICAicmVmIgogICAgICAgICAgICApLmdldCkgJiYgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LmlzUmVhY3RXYXJuaW5nKSB7CiAgICAgICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgfQogICAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSB2b2lkIDAgIT09IGNvbmZpZy5yZWY7CiAgICAgICAgICB9CiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgJiYgKG93bmVyID0gZ2V0T3duZXIoKSk7CiAgICAgICAgICBoYXNWYWxpZEtleShjb25maWcpICYmIChjaGVja0tleVN0cmluZ0NvZXJjaW9uKGNvbmZpZy5rZXkpLCBrZXkgPSAiIiArIGNvbmZpZy5rZXkpOwogICAgICAgICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpCiAgICAgICAgICAgICFoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpIHx8ICJrZXkiID09PSBwcm9wTmFtZSB8fCAiX19zZWxmIiA9PT0gcHJvcE5hbWUgfHwgIl9fc291cmNlIiA9PT0gcHJvcE5hbWUgfHwgInJlZiIgPT09IHByb3BOYW1lICYmIHZvaWQgMCA9PT0gY29uZmlnLnJlZiB8fCAocHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXSk7CiAgICAgICAgfQogICAgICAgIHZhciBwcm9wTmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggLSAyOwogICAgICAgIGlmICgxID09PSBwcm9wTmFtZSkgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjsKICAgICAgICBlbHNlIGlmICgxIDwgcHJvcE5hbWUpIHsKICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IEFycmF5KHByb3BOYW1lKTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcE5hbWU7IGkrKykKICAgICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0W2ldID0gYXJndW1lbnRzW2kgKyAyXTsKICAgICAgICAgIHByb3BzLmNoaWxkcmVuID0gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0OwogICAgICAgIH0KICAgICAgICBwcm9wcyA9IFJlYWN0RWxlbWVudCgKICAgICAgICAgIGVsZW1lbnQudHlwZSwKICAgICAgICAgIGtleSwKICAgICAgICAgIHByb3BzLAogICAgICAgICAgb3duZXIsCiAgICAgICAgICBlbGVtZW50Ll9kZWJ1Z1N0YWNrLAogICAgICAgICAgZWxlbWVudC5fZGVidWdUYXNrCiAgICAgICAgKTsKICAgICAgICBmb3IgKGtleSA9IDI7IGtleSA8IGFyZ3VtZW50cy5sZW5ndGg7IGtleSsrKQogICAgICAgICAgdmFsaWRhdGVDaGlsZEtleXMoYXJndW1lbnRzW2tleV0pOwogICAgICAgIHJldHVybiBwcm9wczsKICAgICAgfTsKICAgICAgZXhwb3J0cy5jcmVhdGVDb250ZXh0ID0gZnVuY3Rpb24oZGVmYXVsdFZhbHVlKSB7CiAgICAgICAgZGVmYXVsdFZhbHVlID0gewogICAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0NPTlRFWFRfVFlQRSwKICAgICAgICAgIF9jdXJyZW50VmFsdWU6IGRlZmF1bHRWYWx1ZSwKICAgICAgICAgIF9jdXJyZW50VmFsdWUyOiBkZWZhdWx0VmFsdWUsCiAgICAgICAgICBfdGhyZWFkQ291bnQ6IDAsCiAgICAgICAgICBQcm92aWRlcjogbnVsbCwKICAgICAgICAgIENvbnN1bWVyOiBudWxsCiAgICAgICAgfTsKICAgICAgICBkZWZhdWx0VmFsdWUuUHJvdmlkZXIgPSBkZWZhdWx0VmFsdWU7CiAgICAgICAgZGVmYXVsdFZhbHVlLkNvbnN1bWVyID0gewogICAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0NPTlNVTUVSX1RZUEUsCiAgICAgICAgICBfY29udGV4dDogZGVmYXVsdFZhbHVlCiAgICAgICAgfTsKICAgICAgICBkZWZhdWx0VmFsdWUuX2N1cnJlbnRSZW5kZXJlciA9IG51bGw7CiAgICAgICAgZGVmYXVsdFZhbHVlLl9jdXJyZW50UmVuZGVyZXIyID0gbnVsbDsKICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogICAgICB9OwogICAgICBleHBvcnRzLmNyZWF0ZUVsZW1lbnQgPSBmdW5jdGlvbih0eXBlLCBjb25maWcsIGNoaWxkcmVuKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspCiAgICAgICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0pOwogICAgICAgIGkgPSB7fTsKICAgICAgICB2YXIga2V5ID0gbnVsbDsKICAgICAgICBpZiAobnVsbCAhPSBjb25maWcpCiAgICAgICAgICBmb3IgKHByb3BOYW1lIGluIGRpZFdhcm5BYm91dE9sZEpTWFJ1bnRpbWUgfHwgISgiX19zZWxmIiBpbiBjb25maWcpIHx8ICJrZXkiIGluIGNvbmZpZyB8fCAoZGlkV2FybkFib3V0T2xkSlNYUnVudGltZSA9IHRydWUsIGNvbnNvbGUud2FybigKICAgICAgICAgICAgIllvdXIgYXBwIChvciBvbmUgb2YgaXRzIGRlcGVuZGVuY2llcykgaXMgdXNpbmcgYW4gb3V0ZGF0ZWQgSlNYIHRyYW5zZm9ybS4gVXBkYXRlIHRvIHRoZSBtb2Rlcm4gSlNYIHRyYW5zZm9ybSBmb3IgZmFzdGVyIHBlcmZvcm1hbmNlOiBodHRwczovL3JlYWN0LmRldi9saW5rL25ldy1qc3gtdHJhbnNmb3JtIgogICAgICAgICAgKSksIGhhc1ZhbGlkS2V5KGNvbmZpZykgJiYgKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY29uZmlnLmtleSksIGtleSA9ICIiICsgY29uZmlnLmtleSksIGNvbmZpZykKICAgICAgICAgICAgaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsIHByb3BOYW1lKSAmJiAia2V5IiAhPT0gcHJvcE5hbWUgJiYgIl9fc2VsZiIgIT09IHByb3BOYW1lICYmICJfX3NvdXJjZSIgIT09IHByb3BOYW1lICYmIChpW3Byb3BOYW1lXSA9IGNvbmZpZ1twcm9wTmFtZV0pOwogICAgICAgIHZhciBjaGlsZHJlbkxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGggLSAyOwogICAgICAgIGlmICgxID09PSBjaGlsZHJlbkxlbmd0aCkgaS5jaGlsZHJlbiA9IGNoaWxkcmVuOwogICAgICAgIGVsc2UgaWYgKDEgPCBjaGlsZHJlbkxlbmd0aCkgewogICAgICAgICAgZm9yICh2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKSwgX2kgPSAwOyBfaSA8IGNoaWxkcmVuTGVuZ3RoOyBfaSsrKQogICAgICAgICAgICBjaGlsZEFycmF5W19pXSA9IGFyZ3VtZW50c1tfaSArIDJdOwogICAgICAgICAgT2JqZWN0LmZyZWV6ZSAmJiBPYmplY3QuZnJlZXplKGNoaWxkQXJyYXkpOwogICAgICAgICAgaS5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlICYmIHR5cGUuZGVmYXVsdFByb3BzKQogICAgICAgICAgZm9yIChwcm9wTmFtZSBpbiBjaGlsZHJlbkxlbmd0aCA9IHR5cGUuZGVmYXVsdFByb3BzLCBjaGlsZHJlbkxlbmd0aCkKICAgICAgICAgICAgdm9pZCAwID09PSBpW3Byb3BOYW1lXSAmJiAoaVtwcm9wTmFtZV0gPSBjaGlsZHJlbkxlbmd0aFtwcm9wTmFtZV0pOwogICAgICAgIGtleSAmJiBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcigKICAgICAgICAgIGksCiAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgdHlwZSA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8ICJVbmtub3duIiA6IHR5cGUKICAgICAgICApOwogICAgICAgIHZhciBwcm9wTmFtZSA9IDFlNCA+IFJlYWN0U2hhcmVkSW50ZXJuYWxzLnJlY2VudGx5Q3JlYXRlZE93bmVyU3RhY2tzKys7CiAgICAgICAgcmV0dXJuIFJlYWN0RWxlbWVudCgKICAgICAgICAgIHR5cGUsCiAgICAgICAgICBrZXksCiAgICAgICAgICBpLAogICAgICAgICAgZ2V0T3duZXIoKSwKICAgICAgICAgIHByb3BOYW1lID8gRXJyb3IoInJlYWN0LXN0YWNrLXRvcC1mcmFtZSIpIDogdW5rbm93bk93bmVyRGVidWdTdGFjaywKICAgICAgICAgIHByb3BOYW1lID8gY3JlYXRlVGFzayhnZXRUYXNrTmFtZSh0eXBlKSkgOiB1bmtub3duT3duZXJEZWJ1Z1Rhc2sKICAgICAgICApOwogICAgICB9OwogICAgICBleHBvcnRzLmNyZWF0ZVJlZiA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciByZWZPYmplY3QgPSB7IGN1cnJlbnQ6IG51bGwgfTsKICAgICAgICBPYmplY3Quc2VhbChyZWZPYmplY3QpOwogICAgICAgIHJldHVybiByZWZPYmplY3Q7CiAgICAgIH07CiAgICAgIGV4cG9ydHMuZm9yd2FyZFJlZiA9IGZ1bmN0aW9uKHJlbmRlcikgewogICAgICAgIG51bGwgIT0gcmVuZGVyICYmIHJlbmRlci4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICJmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCByZWNlaXZlZCBhIGBtZW1vYCBjb21wb25lbnQuIEluc3RlYWQgb2YgZm9yd2FyZFJlZihtZW1vKC4uLikpLCB1c2UgbWVtbyhmb3J3YXJkUmVmKC4uLikpLiIKICAgICAgICApIDogImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHJlbmRlciA/IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiZm9yd2FyZFJlZiByZXF1aXJlcyBhIHJlbmRlciBmdW5jdGlvbiBidXQgd2FzIGdpdmVuICVzLiIsCiAgICAgICAgICBudWxsID09PSByZW5kZXIgPyAibnVsbCIgOiB0eXBlb2YgcmVuZGVyCiAgICAgICAgKSA6IDAgIT09IHJlbmRlci5sZW5ndGggJiYgMiAhPT0gcmVuZGVyLmxlbmd0aCAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgImZvcndhcmRSZWYgcmVuZGVyIGZ1bmN0aW9ucyBhY2NlcHQgZXhhY3RseSB0d28gcGFyYW1ldGVyczogcHJvcHMgYW5kIHJlZi4gJXMiLAogICAgICAgICAgMSA9PT0gcmVuZGVyLmxlbmd0aCA/ICJEaWQgeW91IGZvcmdldCB0byB1c2UgdGhlIHJlZiBwYXJhbWV0ZXI/IiA6ICJBbnkgYWRkaXRpb25hbCBwYXJhbWV0ZXIgd2lsbCBiZSB1bmRlZmluZWQuIgogICAgICAgICk7CiAgICAgICAgbnVsbCAhPSByZW5kZXIgJiYgbnVsbCAhPSByZW5kZXIuZGVmYXVsdFByb3BzICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiZm9yd2FyZFJlZiByZW5kZXIgZnVuY3Rpb25zIGRvIG5vdCBzdXBwb3J0IGRlZmF1bHRQcm9wcy4gRGlkIHlvdSBhY2NpZGVudGFsbHkgcGFzcyBhIFJlYWN0IGNvbXBvbmVudD8iCiAgICAgICAgKTsKICAgICAgICB2YXIgZWxlbWVudFR5cGUgPSB7ICQkdHlwZW9mOiBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFLCByZW5kZXIgfSwgb3duTmFtZTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudFR5cGUsICJkaXNwbGF5TmFtZSIsIHsKICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAogICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgcmV0dXJuIG93bk5hbWU7CiAgICAgICAgICB9LAogICAgICAgICAgc2V0OiBmdW5jdGlvbihuYW1lKSB7CiAgICAgICAgICAgIG93bk5hbWUgPSBuYW1lOwogICAgICAgICAgICByZW5kZXIubmFtZSB8fCByZW5kZXIuZGlzcGxheU5hbWUgfHwgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZW5kZXIsICJuYW1lIiwgeyB2YWx1ZTogbmFtZSB9KSwgcmVuZGVyLmRpc3BsYXlOYW1lID0gbmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnRUeXBlOwogICAgICB9OwogICAgICBleHBvcnRzLmlzVmFsaWRFbGVtZW50ID0gaXNWYWxpZEVsZW1lbnQ7CiAgICAgIGV4cG9ydHMubGF6eSA9IGZ1bmN0aW9uKGN0b3IpIHsKICAgICAgICBjdG9yID0geyBfc3RhdHVzOiAtMSwgX3Jlc3VsdDogY3RvciB9OwogICAgICAgIHZhciBsYXp5VHlwZSA9IHsKICAgICAgICAgICQkdHlwZW9mOiBSRUFDVF9MQVpZX1RZUEUsCiAgICAgICAgICBfcGF5bG9hZDogY3RvciwKICAgICAgICAgIF9pbml0OiBsYXp5SW5pdGlhbGl6ZXIKICAgICAgICB9LCBpb0luZm8gPSB7CiAgICAgICAgICBuYW1lOiAibGF6eSIsCiAgICAgICAgICBzdGFydDogLTEsCiAgICAgICAgICBlbmQ6IC0xLAogICAgICAgICAgdmFsdWU6IG51bGwsCiAgICAgICAgICBvd25lcjogbnVsbCwKICAgICAgICAgIGRlYnVnU3RhY2s6IEVycm9yKCJyZWFjdC1zdGFjay10b3AtZnJhbWUiKSwKICAgICAgICAgIGRlYnVnVGFzazogY29uc29sZS5jcmVhdGVUYXNrID8gY29uc29sZS5jcmVhdGVUYXNrKCJsYXp5KCkiKSA6IG51bGwKICAgICAgICB9OwogICAgICAgIGN0b3IuX2lvSW5mbyA9IGlvSW5mbzsKICAgICAgICBsYXp5VHlwZS5fZGVidWdJbmZvID0gW3sgYXdhaXRlZDogaW9JbmZvIH1dOwogICAgICAgIHJldHVybiBsYXp5VHlwZTsKICAgICAgfTsKICAgICAgZXhwb3J0cy5tZW1vID0gZnVuY3Rpb24odHlwZSwgY29tcGFyZSkgewogICAgICAgIG51bGwgPT0gdHlwZSAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIm1lbW86IFRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgY29tcG9uZW50LiBJbnN0ZWFkIHJlY2VpdmVkOiAlcyIsCiAgICAgICAgICBudWxsID09PSB0eXBlID8gIm51bGwiIDogdHlwZW9mIHR5cGUKICAgICAgICApOwogICAgICAgIGNvbXBhcmUgPSB7CiAgICAgICAgICAkJHR5cGVvZjogUkVBQ1RfTUVNT19UWVBFLAogICAgICAgICAgdHlwZSwKICAgICAgICAgIGNvbXBhcmU6IHZvaWQgMCA9PT0gY29tcGFyZSA/IG51bGwgOiBjb21wYXJlCiAgICAgICAgfTsKICAgICAgICB2YXIgb3duTmFtZTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29tcGFyZSwgImRpc3BsYXlOYW1lIiwgewogICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsCiAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gb3duTmFtZTsKICAgICAgICAgIH0sCiAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKG5hbWUpIHsKICAgICAgICAgICAgb3duTmFtZSA9IG5hbWU7CiAgICAgICAgICAgIHR5cGUubmFtZSB8fCB0eXBlLmRpc3BsYXlOYW1lIHx8IChPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgIm5hbWUiLCB7IHZhbHVlOiBuYW1lIH0pLCB0eXBlLmRpc3BsYXlOYW1lID0gbmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGNvbXBhcmU7CiAgICAgIH07CiAgICAgIGV4cG9ydHMuc3RhcnRUcmFuc2l0aW9uID0gZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdFNoYXJlZEludGVybmFscy5ULCBjdXJyZW50VHJhbnNpdGlvbiA9IHt9OwogICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gY3VycmVudFRyYW5zaXRpb247CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHZhciByZXR1cm5WYWx1ZSA9IHNjb3BlKCksIG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUzsKICAgICAgICAgIG51bGwgIT09IG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoICYmIG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoKGN1cnJlbnRUcmFuc2l0aW9uLCByZXR1cm5WYWx1ZSk7CiAgICAgICAgICAib2JqZWN0IiA9PT0gdHlwZW9mIHJldHVyblZhbHVlICYmIG51bGwgIT09IHJldHVyblZhbHVlICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiByZXR1cm5WYWx1ZS50aGVuICYmIChSZWFjdFNoYXJlZEludGVybmFscy5hc3luY1RyYW5zaXRpb25zKyssIHJldHVyblZhbHVlLnRoZW4ocmVsZWFzZUFzeW5jVHJhbnNpdGlvbiwgcmVsZWFzZUFzeW5jVHJhbnNpdGlvbiksIHJldHVyblZhbHVlLnRoZW4obm9vcCwgcmVwb3J0R2xvYmFsRXJyb3IpKTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgcmVwb3J0R2xvYmFsRXJyb3IoZXJyb3IpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBudWxsID09PSBwcmV2VHJhbnNpdGlvbiAmJiBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyAmJiAoc2NvcGUgPSBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5zaXplLCBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5jbGVhcigpLCAxMCA8IHNjb3BlICYmIGNvbnNvbGUud2FybigKICAgICAgICAgICAgIkRldGVjdGVkIGEgbGFyZ2UgbnVtYmVyIG9mIHVwZGF0ZXMgaW5zaWRlIHN0YXJ0VHJhbnNpdGlvbi4gSWYgdGhpcyBpcyBkdWUgdG8gYSBzdWJzY3JpcHRpb24gcGxlYXNlIHJlLXdyaXRlIGl0IHRvIHVzZSBSZWFjdCBwcm92aWRlZCBob29rcy4gT3RoZXJ3aXNlIGNvbmN1cnJlbnQgbW9kZSBndWFyYW50ZWVzIGFyZSBvZmYgdGhlIHRhYmxlLiIKICAgICAgICAgICkpLCBudWxsICE9PSBwcmV2VHJhbnNpdGlvbiAmJiBudWxsICE9PSBjdXJyZW50VHJhbnNpdGlvbi50eXBlcyAmJiAobnVsbCAhPT0gcHJldlRyYW5zaXRpb24udHlwZXMgJiYgcHJldlRyYW5zaXRpb24udHlwZXMgIT09IGN1cnJlbnRUcmFuc2l0aW9uLnR5cGVzICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJXZSBleHBlY3RlZCBpbm5lciBUcmFuc2l0aW9ucyB0byBoYXZlIHRyYW5zZmVycmVkIHRoZSBvdXRlciB0eXBlcyBzZXQgYW5kIHRoYXQgeW91IGNhbm5vdCBhZGQgdG8gdGhlIG91dGVyIFRyYW5zaXRpb24gd2hpbGUgaW5zaWRlIHRoZSBpbm5lci5UaGlzIGlzIGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICksIHByZXZUcmFuc2l0aW9uLnR5cGVzID0gY3VycmVudFRyYW5zaXRpb24udHlwZXMpLCBSZWFjdFNoYXJlZEludGVybmFscy5UID0gcHJldlRyYW5zaXRpb247CiAgICAgICAgfQogICAgICB9OwogICAgICBleHBvcnRzLnVuc3RhYmxlX3VzZUNhY2hlUmVmcmVzaCA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZUNhY2hlUmVmcmVzaCgpOwogICAgICB9OwogICAgICBleHBvcnRzLnVzZSA9IGZ1bmN0aW9uKHVzYWJsZSkgewogICAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZSh1c2FibGUpOwogICAgICB9OwogICAgICBleHBvcnRzLnVzZUFjdGlvblN0YXRlID0gZnVuY3Rpb24oYWN0aW9uLCBpbml0aWFsU3RhdGUsIHBlcm1hbGluaykgewogICAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZUFjdGlvblN0YXRlKAogICAgICAgICAgYWN0aW9uLAogICAgICAgICAgaW5pdGlhbFN0YXRlLAogICAgICAgICAgcGVybWFsaW5rCiAgICAgICAgKTsKICAgICAgfTsKICAgICAgZXhwb3J0cy51c2VDYWxsYmFjayA9IGZ1bmN0aW9uKGNhbGxiYWNrLCBkZXBzKSB7CiAgICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpOwogICAgICB9OwogICAgICBleHBvcnRzLnVzZUNvbnRleHQgPSBmdW5jdGlvbihDb250ZXh0KSB7CiAgICAgICAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpOwogICAgICAgIENvbnRleHQuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlNVTUVSX1RZUEUgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICJDYWxsaW5nIHVzZUNvbnRleHQoQ29udGV4dC5Db25zdW1lcikgaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBjYXVzZSBidWdzLiBEaWQgeW91IG1lYW4gdG8gY2FsbCB1c2VDb250ZXh0KENvbnRleHQpIGluc3RlYWQ/IgogICAgICAgICk7CiAgICAgICAgcmV0dXJuIGRpc3BhdGNoZXIudXNlQ29udGV4dChDb250ZXh0KTsKICAgICAgfTsKICAgICAgZXhwb3J0cy51c2VEZWJ1Z1ZhbHVlID0gZnVuY3Rpb24odmFsdWUsIGZvcm1hdHRlckZuKSB7CiAgICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlRGVidWdWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVyRm4pOwogICAgICB9OwogICAgICBleHBvcnRzLnVzZURlZmVycmVkVmFsdWUgPSBmdW5jdGlvbih2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7CiAgICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTsKICAgICAgfTsKICAgICAgZXhwb3J0cy51c2VFZmZlY3QgPSBmdW5jdGlvbihjcmVhdGUsIGRlcHMpIHsKICAgICAgICBudWxsID09IGNyZWF0ZSAmJiBjb25zb2xlLndhcm4oCiAgICAgICAgICAiUmVhY3QgSG9vayB1c2VFZmZlY3QgcmVxdWlyZXMgYW4gZWZmZWN0IGNhbGxiYWNrLiBEaWQgeW91IGZvcmdldCB0byBwYXNzIGEgY2FsbGJhY2sgdG8gdGhlIGhvb2s/IgogICAgICAgICk7CiAgICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlRWZmZWN0KGNyZWF0ZSwgZGVwcyk7CiAgICAgIH07CiAgICAgIGV4cG9ydHMudXNlRWZmZWN0RXZlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykgewogICAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZUVmZmVjdEV2ZW50KGNhbGxiYWNrKTsKICAgICAgfTsKICAgICAgZXhwb3J0cy51c2VJZCA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZUlkKCk7CiAgICAgIH07CiAgICAgIGV4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZSA9IGZ1bmN0aW9uKHJlZiwgY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7CiAgICAgIH07CiAgICAgIGV4cG9ydHMudXNlSW5zZXJ0aW9uRWZmZWN0ID0gZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgbnVsbCA9PSBjcmVhdGUgJiYgY29uc29sZS53YXJuKAogICAgICAgICAgIlJlYWN0IEhvb2sgdXNlSW5zZXJ0aW9uRWZmZWN0IHJlcXVpcmVzIGFuIGVmZmVjdCBjYWxsYmFjay4gRGlkIHlvdSBmb3JnZXQgdG8gcGFzcyBhIGNhbGxiYWNrIHRvIHRoZSBob29rPyIKICAgICAgICApOwogICAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZUluc2VydGlvbkVmZmVjdChjcmVhdGUsIGRlcHMpOwogICAgICB9OwogICAgICBleHBvcnRzLnVzZUxheW91dEVmZmVjdCA9IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgIG51bGwgPT0gY3JlYXRlICYmIGNvbnNvbGUud2FybigKICAgICAgICAgICJSZWFjdCBIb29rIHVzZUxheW91dEVmZmVjdCByZXF1aXJlcyBhbiBlZmZlY3QgY2FsbGJhY2suIERpZCB5b3UgZm9yZ2V0IHRvIHBhc3MgYSBjYWxsYmFjayB0byB0aGUgaG9vaz8iCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTsKICAgICAgfTsKICAgICAgZXhwb3J0cy51c2VNZW1vID0gZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlTWVtbyhjcmVhdGUsIGRlcHMpOwogICAgICB9OwogICAgICBleHBvcnRzLnVzZU9wdGltaXN0aWMgPSBmdW5jdGlvbihwYXNzdGhyb3VnaCwgcmVkdWNlcikgewogICAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZU9wdGltaXN0aWMocGFzc3Rocm91Z2gsIHJlZHVjZXIpOwogICAgICB9OwogICAgICBleHBvcnRzLnVzZVJlZHVjZXIgPSBmdW5jdGlvbihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7CiAgICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTsKICAgICAgfTsKICAgICAgZXhwb3J0cy51c2VSZWYgPSBmdW5jdGlvbihpbml0aWFsVmFsdWUpIHsKICAgICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VSZWYoaW5pdGlhbFZhbHVlKTsKICAgICAgfTsKICAgICAgZXhwb3J0cy51c2VTdGF0ZSA9IGZ1bmN0aW9uKGluaXRpYWxTdGF0ZSkgewogICAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZVN0YXRlKGluaXRpYWxTdGF0ZSk7CiAgICAgIH07CiAgICAgIGV4cG9ydHMudXNlU3luY0V4dGVybmFsU3RvcmUgPSBmdW5jdGlvbihzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkgewogICAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZVN5bmNFeHRlcm5hbFN0b3JlKAogICAgICAgICAgc3Vic2NyaWJlLAogICAgICAgICAgZ2V0U25hcHNob3QsCiAgICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdAogICAgICAgICk7CiAgICAgIH07CiAgICAgIGV4cG9ydHMudXNlVHJhbnNpdGlvbiA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZVRyYW5zaXRpb24oKTsKICAgICAgfTsKICAgICAgZXhwb3J0cy52ZXJzaW9uID0gIjE5LjIuMyI7CiAgICAgICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AgJiYgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdG9wKEVycm9yKCkpOwogICAgfSkoKTsKICB9Cn0pOwoKLy8gbm9kZV9tb2R1bGVzL3JlYWN0L2luZGV4LmpzCnZhciByZXF1aXJlX3JlYWN0ID0gX19jb21tb25KUyh7CiAgIm5vZGVfbW9kdWxlcy9yZWFjdC9pbmRleC5qcyIoZXhwb3J0cywgbW9kdWxlKSB7CiAgICBpZiAoZmFsc2UpIHsKICAgICAgbW9kdWxlLmV4cG9ydHMgPSBudWxsOwogICAgfSBlbHNlIHsKICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlX3JlYWN0X2RldmVsb3BtZW50KCk7CiAgICB9CiAgfQp9KTsKCmV4cG9ydCB7CiAgcmVxdWlyZV9yZWFjdAp9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jaHVuay1XVVI3RDZOUy5qcy5tYXAK"}},"time_used":22,"timings":{"blocked":6,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"static-assets.coinbase.com/growth/acquisition/global-nav/upsell/institutions_upsell.png","fqdn":"static-assets.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.171Z","timestamp":1785108244171,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /growth/acquisition/global-nav/upsell/institutions_upsell.png HTTP/1.1\r\nHost: static-assets.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-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\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: image/png\r\ncontent-length: 30455\r\nlast-modified: Thu, 16 Apr 2026 20:07:01 GMT\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\netag: \"e6954d6a853134e6d2ee9494223a3c06\"\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 1cd8e8e00c7ffa643d8c2094a6e60404.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: VIE50-P4\r\nx-amz-cf-id: bpr-cN34hwhm5boNQ8HWx02xu7MbhYly19FOy7JDT8QII0Vl-ShV2Q==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=4aFcD45voMSbM8Ff9pOFn6iQ2yHdyyEbKFtP4i9Mh7jCIa80Ov8PRYH49K6eVn2ttT2R%2BKhWHljss%2BjqKwu1S%2FnUA2195cwjz0g93ggPNfrLQTskwhBPLmUf3oHySkpmYCiB5biyGco99kVx\"}]}\r\ncache-control: public, max-age=7200\r\npriority: u=4;i=?0,cf-chb=(37;u=2;i=?0 284;u=5;i=?0)\r\ncf-polished: ok, orig_size=31667\r\nx-content-type-options: nosniff\r\ncf-bgj: h2pri,imgq:85\r\nage: 3254\r\nexpires: Mon, 27 Jul 2026 01:24:04 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\ncf-ray: a21727de19810883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":30455,"size_decoded":31677,"mime_type":"image/png","magic":"PNG image data, 1308 x 624, 8-bit colormap, non-interlaced","md5":"fb85016c42c255cecebf90c825bce958","sha1":"d40d046eb3ff93621ad23b8de6152415b4df3631","sha256":"b3ca2bf0ddf883b952b5e3e0348064dd5def507ac60029e6293f953aa9e4ccb1","sha512":"434f2baca67e0665d7e0cae0ef6e90d711f5ccc5f62e847dbfaf08e38588c2c54ee22310229b8938e96de99a20d400ee54a764c824b00889d67d8c329a89569c","ssdeep":"384:AUBpHPVjaa+bY+YbiAFPVvfkKG4tw3Iyq4Ue8RMd1Z8RnkM4Qoj9ROF34lU7VRNu:zfE8bic7G4YIFMd1Z895XoyF30U7B6E+","tlshash":"5dd2e148d95ba06cf98f527a73938c82c43aac6fb3c195593e34328d2d1d1f59b1660f","first_seen":"2026-04-24T10:09:21.792929Z","last_seen":"2026-07-26T23:25:46.915352Z","times_seen":25,"resource_available":false,"data":"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"}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DcZArWt92.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.630Z","timestamp":1785108244630,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DcZArWt92.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:27 GMT\r\nvary: accept-encoding\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=MGWMwPug%2FALrtPFclMLTVlQx3%2FkPE7WPZtrJ5S0KsH49MIocjUFYCjZ4UZM9w8iLkk87Ae0WgH9h4wmoDPDEvEl0m6kTmz6bkVlaJIFRZ8bOkotFsKQhU1MWXEm%2Bxf5n6DPQi3L7hgWhYdsFXEBw\"}]}\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 6259f104262c746229991b7649181424.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: eQ82urFgCZ2d5AtQyBaq3ytmX-pIPGZRlux0FGLdwl8WO5yKvyaekw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\netag: W/\"547d68333b3e0559128a8992b9b55708\"\r\ncontent-encoding: gzip\r\ncf-ray: a21727e0fe420883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":492,"size_decoded":1445,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (452)","md5":"547d68333b3e0559128a8992b9b55708","sha1":"0c49d9c71c6e73ea3cc7591601e92bae17026374","sha256":"0d0367c5c159cd30751662b05d13e7f10024cfca7e7ef827116485c4fb99dec8","sha512":"d1a8843de956a23f3904b79b025eccd362918d8c11dc704330f429ef0b7870e9ddaf3e2b51c4b785edbdcc3799fe4216e94fb1bbe3e22d36bd0fd891707269de","ssdeep":"","tlshash":"8af09e869af1b7439509127ec1d3590036d81197c3dc4b71e124223d03fee8ac158b93","first_seen":"2026-07-26T23:24:50.321609Z","last_seen":"2026-07-26T23:25:46.840059Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGZlYzY2Y2QxLTI3ZjMtNGY5NS1hNTFmLTE2OTAwMzFmODViYWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWZlYzY2Y2QxLTI3ZjMtNGY5NS1hNTFmLTE2OTAwMzFmODViYWApfSkoKX1jYXRjaHt9aW1wb3J0e1FvIGFzIGV9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciB0PWUoYENPSU5CQVNFX1BVQkxJQ19ERVBMT1lNRU5UX1RBUkdFVGApPT09YHByb2R1Y3Rpb25gO2V4cG9ydHt0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19EY1pBcld0OTIuanMubWFw"}},"time_used":107,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":107,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Dts15qiB.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.690Z","timestamp":1785108244690,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_Dts15qiB.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:28 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"c903776d9baf4802c02e3cabc05ea370\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 06cacd0422733e64f8afbe400dd4457c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: sVcMLgDh9qLEmfIBw28fUGwLNp9KjhnDd345hp9Bj6NG-XF1NaTMqQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=bjkorRwQO%2FTgd6dPIh5xVaA9Z01qTHtRl0iof8P%2BHu8So7ltbGOifZOJ85WQErtaaEFfM3IKeSPeXYqmJsQQEUDPRsPyqAlJbJa4n8PGZ6%2BjX1VgnkvckcHVDiv5JrMpCflDfhDOyuf6GvBOGhPv\"}]}\r\ncf-ray: a21727e15f200883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":85383,"size_decoded":27318,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (49789)","md5":"c903776d9baf4802c02e3cabc05ea370","sha1":"96192ea049a8350e25a90739311a8a036af30a9f","sha256":"b68c0375b1c0f14f1e4d9ae147fa1caffea76d99746d98fd6238ad788dd21a52","sha512":"659bef734fb6fb53d6fd22f92b9c37ffa1a11a76bf799945b411dc43f58a9326e162fe882b8b783aa5684dcb6f4321b91eeff77e26b50eb32927d713828712c3","ssdeep":"1536:WldCw/KDnCs2VUELKhFNcPMnAUNrHHbiBCYbPtz4EWNu:d3dJcPMnAYiBVbxWNu","tlshash":"c68329c6b3507135d3dbd619c07b4704b33bacd89809912c7a7aa9cb16a068466f6f3f","first_seen":"2026-07-26T23:24:50.323686Z","last_seen":"2026-07-26T23:25:46.805523Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDg4YmY5ZjJmLTJiMGUtNDBhMC1hZDAzLThjZTIwMmMwYmFiNmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTg4YmY5ZjJmLTJiMGUtNDBhMC1hZDAzLThjZTIwMmMwYmFiNmApfSkoKX1jYXRjaHt9aW1wb3J0e2EgYXMgZSxpIGFzIHQsbyBhcyBuLHQgYXMgcn1mcm9tIi4vY184X2hzVENzTC5qcyI7aW1wb3J0e3QgYXMgaX1mcm9tIi4vY19CMmwtbVoyci5qcyI7aW1wb3J0eyRsIGFzIGEsQXUgYXMgbyxCbCBhcyBzLEJ1IGFzIGMsQ2wgYXMgbCxDdSBhcyB1LERsIGFzIGQsRHUgYXMgZixFbCBhcyBwLEV1IGFzIG0sR2wgYXMgaCxHdSBhcyBnLEhsIGFzIF8sSHUgYXMgdixJYyBhcyB5LElsIGFzIGIsSXUgYXMgeCxKaSBhcyBTLEpsIGFzIEMsS2wgYXMgZWUsS3UgYXMgdGUsTGkgYXMgdyxMbCBhcyBuZSxMdSBhcyByZSxNbCBhcyBULE11IGFzIGllLE51IGFzIGFlLE9sIGFzIG9lLE91IGFzIHNlLFB1IGFzIEUsUmkgYXMgY2UsUmwgYXMgRCxSdSBhcyBsZSxTYyBhcyB1ZSxTdSBhcyBPLFRjIGFzIGRlLFR1IGFzIGZlLFVpIGFzIGssVWwgYXMgcGUsVXUgYXMgbWUsVmwgYXMgaGUsVnUgYXMgZ2UsV2wgYXMgQSxXcCBhcyBfZSxXdSBhcyB2ZSxZYyBhcyB5ZSxZbCBhcyBqLFpjIGFzIE0sWmwgYXMgTixfYSBhcyBQLF9kIGFzIEYsX3UgYXMgSSxhYSBhcyBMLGJhIGFzIGJlLGJsIGFzIFIsYnUgYXMgeixjZCBhcyBCLGRkIGFzIHhlLGR1IGFzIFNlLGVsIGFzIENlLGV1IGFzIHdlLGZhIGFzIFYsZmQgYXMgVGUsZmYgYXMgRWUsZnUgYXMgRGUsZ3UgYXMgSCxoZiBhcyBPZSxpYSBhcyBrZSxqaSBhcyBVLGpsIGFzIEFlLGp1IGFzIGplLGt1IGFzIFcsbHMgYXMgTWUsbWQgYXMgTmUsbXUgYXMgUGUsbnUgYXMgRmUsb2QgYXMgSWUscGEgYXMgRyxwdSBhcyBLLHFpIGFzIExlLHFsIGFzIHEscXUgYXMgUmUscnUgYXMgemUsc2MgYXMgQmUsc2wgYXMgVmUsdG8gYXMgSGUsdHUgYXMgVWUsdWQgYXMgV2UsdXUgYXMgR2UsdnUgYXMgS2Usd3UgYXMgcWUseGwgYXMgSmUseHUgYXMgWWUseXUgYXMgWGUsemEgYXMgWmUsemkgYXMgUWUsemwgYXMgJGV9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBldD0oZSx0KT0+TWF0aC5hYnMoZS10KTtmdW5jdGlvbiB0dChlLHQpe2xldCBuPWV0KGUueCx0LngpLHI9ZXQoZS55LHQueSk7cmV0dXJuIE1hdGguc3FydChuKioyK3IqKjIpfXZhciBudD1jbGFzc3tjb25zdHJ1Y3RvcihlLHQse3RyYW5zZm9ybVBhZ2VQb2ludDpuLGNvbnRleHRXaW5kb3c6cixkcmFnU25hcFRvT3JpZ2luOmk9ITF9PXt9KXtpZih0aGlzLnN0YXJ0RXZlbnQ9bnVsbCx0aGlzLmxhc3RNb3ZlRXZlbnQ9bnVsbCx0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvPW51bGwsdGhpcy5oYW5kbGVycz17fSx0aGlzLmNvbnRleHRXaW5kb3c9d2luZG93LHRoaXMudXBkYXRlUG9pbnQ9KCk9PntpZighKHRoaXMubGFzdE1vdmVFdmVudCYmdGhpcy5sYXN0TW92ZUV2ZW50SW5mbykpcmV0dXJuO2xldCBlPWF0KHRoaXMubGFzdE1vdmVFdmVudEluZm8sdGhpcy5oaXN0b3J5KSx0PXRoaXMuc3RhcnRFdmVudCE9PW51bGwsbj10dChlLm9mZnNldCx7eDowLHk6MH0pPj0zO2lmKCF0JiYhbilyZXR1cm47bGV0e3BvaW50OnJ9PWUse3RpbWVzdGFtcDppfT1vO3RoaXMuaGlzdG9yeS5wdXNoKHsuLi5yLHRpbWVzdGFtcDppfSk7bGV0e29uU3RhcnQ6YSxvbk1vdmU6c309dGhpcy5oYW5kbGVyczt0fHwoYSYmYSh0aGlzLmxhc3RNb3ZlRXZlbnQsZSksdGhpcy5zdGFydEV2ZW50PXRoaXMubGFzdE1vdmVFdmVudCkscyYmcyh0aGlzLmxhc3RNb3ZlRXZlbnQsZSl9LHRoaXMuaGFuZGxlUG9pbnRlck1vdmU9KGUsdCk9Pnt0aGlzLmxhc3RNb3ZlRXZlbnQ9ZSx0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvPXJ0KHQsdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQpLFcudXBkYXRlKHRoaXMudXBkYXRlUG9pbnQsITApfSx0aGlzLmhhbmRsZVBvaW50ZXJVcD0oZSx0KT0+e3RoaXMuZW5kKCk7bGV0e29uRW5kOm4sb25TZXNzaW9uRW5kOnIscmVzdW1lQW5pbWF0aW9uOml9PXRoaXMuaGFuZGxlcnM7aWYodGhpcy5kcmFnU25hcFRvT3JpZ2luJiZpJiZpKCksISh0aGlzLmxhc3RNb3ZlRXZlbnQmJnRoaXMubGFzdE1vdmVFdmVudEluZm8pKXJldHVybjtsZXQgYT1hdChlLnR5cGU9PT1gcG9pbnRlcmNhbmNlbGA/dGhpcy5sYXN0TW92ZUV2ZW50SW5mbzpydCh0LHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KSx0aGlzLmhpc3RvcnkpO3RoaXMuc3RhcnRFdmVudCYmbiYmbihlLGEpLHImJnIoZSxhKX0sIWZlKGUpKXJldHVybjt0aGlzLmRyYWdTbmFwVG9PcmlnaW49aSx0aGlzLmhhbmRsZXJzPXQsdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQ9bix0aGlzLmNvbnRleHRXaW5kb3c9cnx8d2luZG93O2xldCBhPXJ0KHFlKGUpLHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KSx7cG9pbnQ6c309YSx7dGltZXN0YW1wOmN9PW87dGhpcy5oaXN0b3J5PVt7Li4ucyx0aW1lc3RhbXA6Y31dO2xldHtvblNlc3Npb25TdGFydDpsfT10O2wmJmwoZSxhdChhLHRoaXMuaGlzdG9yeSkpLHRoaXMucmVtb3ZlTGlzdGVuZXJzPU8odSh0aGlzLmNvbnRleHRXaW5kb3csYHBvaW50ZXJtb3ZlYCx0aGlzLmhhbmRsZVBvaW50ZXJNb3ZlKSx1KHRoaXMuY29udGV4dFdpbmRvdyxgcG9pbnRlcnVwYCx0aGlzLmhhbmRsZVBvaW50ZXJVcCksdSh0aGlzLmNvbnRleHRXaW5kb3csYHBvaW50ZXJjYW5jZWxgLHRoaXMuaGFuZGxlUG9pbnRlclVwKSl9dXBkYXRlSGFuZGxlcnMoZSl7dGhpcy5oYW5kbGVycz1lfWVuZCgpe3RoaXMucmVtb3ZlTGlzdGVuZXJzJiZ0aGlzLnJlbW92ZUxpc3RlbmVycygpLHNlKHRoaXMudXBkYXRlUG9pbnQpfX07ZnVuY3Rpb24gcnQoZSx0KXtyZXR1cm4gdD97cG9pbnQ6dChlLnBvaW50KX06ZX1mdW5jdGlvbiBpdChlLHQpe3JldHVybnt4OmUueC10LngseTplLnktdC55fX1mdW5jdGlvbiBhdCh7cG9pbnQ6ZX0sdCl7cmV0dXJue3BvaW50OmUsZGVsdGE6aXQoZSxzdCh0KSksb2Zmc2V0Oml0KGUsb3QodCkpLHZlbG9jaXR5OmN0KHQsLjEpfX1mdW5jdGlvbiBvdChlKXtyZXR1cm4gZVswXX1mdW5jdGlvbiBzdChlKXtyZXR1cm4gZVtlLmxlbmd0aC0xXX1mdW5jdGlvbiBjdChlLHQpe2lmKGUubGVuZ3RoPDIpcmV0dXJue3g6MCx5OjB9O2xldCBuPWUubGVuZ3RoLTEscj1udWxsLGk9c3QoZSk7Zm9yKDtuPj0wJiYocj1lW25dLCEoaS50aW1lc3RhbXAtci50aW1lc3RhbXA+SSh0KSkpOyluLS07aWYoIXIpcmV0dXJue3g6MCx5OjB9O2xldCBhPUgoaS50aW1lc3RhbXAtci50aW1lc3RhbXApO2lmKGE9PT0wKXJldHVybnt4OjAseTowfTtsZXQgbz17eDooaS54LXIueCkvYSx5OihpLnktci55KS9hfTtyZXR1cm4gby54PT09MS8wJiYoby54PTApLG8ueT09PTEvMCYmKG8ueT0wKSxvfWZ1bmN0aW9uIEooZSl7cmV0dXJuIGUubWF4LWUubWlufWZ1bmN0aW9uIGx0KGUsdD0wLG49LjAxKXtyZXR1cm4gTWF0aC5hYnMoZS10KTw9bn1mdW5jdGlvbiB1dChlLHQsbixyPS41KXtlLm9yaWdpbj1yLGUub3JpZ2luUG9pbnQ9Syh0Lm1pbix0Lm1heCxlLm9yaWdpbiksZS5zY2FsZT1KKG4pL0oodCksKGx0KGUuc2NhbGUsMSwxZS00KXx8aXNOYU4oZS5zY2FsZSkpJiYoZS5zY2FsZT0xKSxlLnRyYW5zbGF0ZT1LKG4ubWluLG4ubWF4LGUub3JpZ2luKS1lLm9yaWdpblBvaW50LChsdChlLnRyYW5zbGF0ZSl8fGlzTmFOKGUudHJhbnNsYXRlKSkmJihlLnRyYW5zbGF0ZT0wKX1mdW5jdGlvbiBkdChlLHQsbixyKXt1dChlLngsdC54LG4ueCxyP3Iub3JpZ2luWDp2b2lkIDApLHV0KGUueSx0Lnksbi55LHI/ci5vcmlnaW5ZOnZvaWQgMCl9ZnVuY3Rpb24gZnQoZSx0LG4pe2UubWluPW4ubWluK3QubWluLGUubWF4PWUubWluK0oodCl9ZnVuY3Rpb24gcHQoZSx0LG4pe2Z0KGUueCx0Lngsbi54KSxmdChlLnksdC55LG4ueSl9ZnVuY3Rpb24gbXQoZSx0LG4pe2UubWluPXQubWluLW4ubWluLGUubWF4PWUubWluK0oodCl9ZnVuY3Rpb24gaHQoZSx0LG4pe210KGUueCx0Lngsbi54KSxtdChlLnksdC55LG4ueSl9ZnVuY3Rpb24gZ3QoZSx7bWluOnQsbWF4Om59LHIpe3JldHVybiB0IT09dm9pZCAwJiZlPHQ/ZT1yP0sodCxlLHIubWluKTpNYXRoLm1heChlLHQpOm4hPT12b2lkIDAmJmU+biYmKGU9cj9LKG4sZSxyLm1heCk6TWF0aC5taW4oZSxuKSksZX1mdW5jdGlvbiBfdChlLHQsbil7cmV0dXJue21pbjp0PT09dm9pZCAwP3ZvaWQgMDplLm1pbit0LG1heDpuPT09dm9pZCAwP3ZvaWQgMDplLm1heCtuLShlLm1heC1lLm1pbil9fWZ1bmN0aW9uIHZ0KGUse3RvcDp0LGxlZnQ6bixib3R0b206cixyaWdodDppfSl7cmV0dXJue3g6X3QoZS54LG4saSkseTpfdChlLnksdCxyKX19ZnVuY3Rpb24geXQoZSx0KXtsZXQgbj10Lm1pbi1lLm1pbixyPXQubWF4LWUubWF4O3JldHVybiB0Lm1heC10Lm1pbjxlLm1heC1lLm1pbiYmKFtuLHJdPVtyLG5dKSx7bWluOm4sbWF4OnJ9fWZ1bmN0aW9uIGJ0KGUsdCl7cmV0dXJue3g6eXQoZS54LHQueCkseTp5dChlLnksdC55KX19ZnVuY3Rpb24geHQoZSx0KXtsZXQgbj0uNSxyPUooZSksaT1KKHQpO3JldHVybiBpPnI/bj1TZSh0Lm1pbix0Lm1heC1yLGUubWluKTpyPmkmJihuPVNlKGUubWluLGUubWF4LWksdC5taW4pKSxsZSgwLDEsbil9ZnVuY3Rpb24gU3QoZSx0KXtsZXQgbj17fTtyZXR1cm4gdC5taW4hPT12b2lkIDAmJihuLm1pbj10Lm1pbi1lLm1pbiksdC5tYXghPT12b2lkIDAmJihuLm1heD10Lm1heC1lLm1pbiksbn12YXIgQ3Q9LjM1O2Z1bmN0aW9uIHd0KGU9Q3Qpe3JldHVybiBlPT09ITE/ZT0wOmU9PT0hMCYmKGU9Q3QpLHt4OlR0KGUsYGxlZnRgLGByaWdodGApLHk6VHQoZSxgdG9wYCxgYm90dG9tYCl9fWZ1bmN0aW9uIFR0KGUsdCxuKXtyZXR1cm57bWluOkV0KGUsdCksbWF4OkV0KGUsbil9fWZ1bmN0aW9uIEV0KGUsdCl7cmV0dXJuIHR5cGVvZiBlPT1gbnVtYmVyYD9lOmVbdF18fDB9ZnVuY3Rpb24gWShlKXtyZXR1cm5bZShgeGApLGUoYHlgKV19dmFyIER0PSh7Y3VycmVudDplfSk9PmU/ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3Om51bGwsT3Q9bmV3IFdlYWtNYXAsa3Q9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5vcGVuR2xvYmFsTG9jaz1udWxsLHRoaXMuaXNEcmFnZ2luZz0hMSx0aGlzLmN1cnJlbnREaXJlY3Rpb249bnVsbCx0aGlzLm9yaWdpblBvaW50PXt4OjAseTowfSx0aGlzLmNvbnN0cmFpbnRzPSExLHRoaXMuaGFzTXV0YXRlZENvbnN0cmFpbnRzPSExLHRoaXMuZWxhc3RpYz1xKCksdGhpcy52aXN1YWxFbGVtZW50PWV9c3RhcnQoZSx7c25hcFRvQ3Vyc29yOnQ9ITF9PXt9KXtsZXR7cHJlc2VuY2VDb250ZXh0Om59PXRoaXMudmlzdWFsRWxlbWVudDtpZihuJiZuLmlzUHJlc2VudD09PSExKXJldHVybjtsZXQgcj1lPT57bGV0e2RyYWdTbmFwVG9PcmlnaW46bn09dGhpcy5nZXRQcm9wcygpO24/dGhpcy5wYXVzZUFuaW1hdGlvbigpOnRoaXMuc3RvcEFuaW1hdGlvbigpLHQmJnRoaXMuc25hcFRvQ3Vyc29yKHFlKGUsYHBhZ2VgKS5wb2ludCl9LGk9KGUsdCk9PntsZXR7ZHJhZzpuLGRyYWdQcm9wYWdhdGlvbjpyLG9uRHJhZ1N0YXJ0Oml9PXRoaXMuZ2V0UHJvcHMoKTtpZihuJiYhciYmKHRoaXMub3Blbkdsb2JhbExvY2smJnRoaXMub3Blbkdsb2JhbExvY2soKSx0aGlzLm9wZW5HbG9iYWxMb2NrPVllKG4pLCF0aGlzLm9wZW5HbG9iYWxMb2NrKSlyZXR1cm47dGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuY3VycmVudERpcmVjdGlvbj1udWxsLHRoaXMucmVzb2x2ZUNvbnN0cmFpbnRzKCksdGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24mJih0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5pc0FuaW1hdGlvbkJsb2NrZWQ9ITAsdGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24udGFyZ2V0PXZvaWQgMCksWShlPT57bGV0IHQ9dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoZSkuZ2V0KCl8fDA7aWYoeC50ZXN0KHQpKXtsZXR7cHJvamVjdGlvbjpufT10aGlzLnZpc3VhbEVsZW1lbnQ7aWYobiYmbi5sYXlvdXQpe2xldCByPW4ubGF5b3V0LmxheW91dEJveFtlXTtyJiYodD1KKHIpKihwYXJzZUZsb2F0KHQpLzEwMCkpfX10aGlzLm9yaWdpblBvaW50W2VdPXR9KSxpJiZXLnVwZGF0ZSgoKT0+aShlLHQpLCExLCEwKTtsZXR7YW5pbWF0aW9uU3RhdGU6YX09dGhpcy52aXN1YWxFbGVtZW50O2EmJmEuc2V0QWN0aXZlKGB3aGlsZURyYWdgLCEwKX0sYT0oZSx0KT0+e2xldHtkcmFnUHJvcGFnYXRpb246bixkcmFnRGlyZWN0aW9uTG9jazpyLG9uRGlyZWN0aW9uTG9jazppLG9uRHJhZzphfT10aGlzLmdldFByb3BzKCk7aWYoIW4mJiF0aGlzLm9wZW5HbG9iYWxMb2NrKXJldHVybjtsZXR7b2Zmc2V0Om99PXQ7aWYociYmdGhpcy5jdXJyZW50RGlyZWN0aW9uPT09bnVsbCl7dGhpcy5jdXJyZW50RGlyZWN0aW9uPWp0KG8pLHRoaXMuY3VycmVudERpcmVjdGlvbiE9PW51bGwmJmkmJmkodGhpcy5jdXJyZW50RGlyZWN0aW9uKTtyZXR1cm59dGhpcy51cGRhdGVBeGlzKGB4YCx0LnBvaW50LG8pLHRoaXMudXBkYXRlQXhpcyhgeWAsdC5wb2ludCxvKSx0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCksYSYmYShlLHQpfSxvPShlLHQpPT50aGlzLnN0b3AoZSx0KSxzPSgpPT5ZKGU9Pnt2YXIgdDtyZXR1cm4gdGhpcy5nZXRBbmltYXRpb25TdGF0ZShlKT09PWBwYXVzZWRgJiYoKHQ9dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoZSkuYW5pbWF0aW9uKT09bnVsbD92b2lkIDA6dC5wbGF5KCkpfSkse2RyYWdTbmFwVG9PcmlnaW46Y309dGhpcy5nZXRQcm9wcygpO3RoaXMucGFuU2Vzc2lvbj1uZXcgbnQoZSx7b25TZXNzaW9uU3RhcnQ6cixvblN0YXJ0Omksb25Nb3ZlOmEsb25TZXNzaW9uRW5kOm8scmVzdW1lQW5pbWF0aW9uOnN9LHt0cmFuc2Zvcm1QYWdlUG9pbnQ6dGhpcy52aXN1YWxFbGVtZW50LmdldFRyYW5zZm9ybVBhZ2VQb2ludCgpLGRyYWdTbmFwVG9PcmlnaW46Yyxjb250ZXh0V2luZG93OkR0KHRoaXMudmlzdWFsRWxlbWVudCl9KX1zdG9wKGUsdCl7bGV0IG49dGhpcy5pc0RyYWdnaW5nO2lmKHRoaXMuY2FuY2VsKCksIW4pcmV0dXJuO2xldHt2ZWxvY2l0eTpyfT10O3RoaXMuc3RhcnRBbmltYXRpb24ocik7bGV0e29uRHJhZ0VuZDppfT10aGlzLmdldFByb3BzKCk7aSYmVy51cGRhdGUoKCk9PmkoZSx0KSl9Y2FuY2VsKCl7dGhpcy5pc0RyYWdnaW5nPSExO2xldHtwcm9qZWN0aW9uOmUsYW5pbWF0aW9uU3RhdGU6dH09dGhpcy52aXN1YWxFbGVtZW50O2UmJihlLmlzQW5pbWF0aW9uQmxvY2tlZD0hMSksdGhpcy5wYW5TZXNzaW9uJiZ0aGlzLnBhblNlc3Npb24uZW5kKCksdGhpcy5wYW5TZXNzaW9uPXZvaWQgMDtsZXR7ZHJhZ1Byb3BhZ2F0aW9uOm59PXRoaXMuZ2V0UHJvcHMoKTshbiYmdGhpcy5vcGVuR2xvYmFsTG9jayYmKHRoaXMub3Blbkdsb2JhbExvY2soKSx0aGlzLm9wZW5HbG9iYWxMb2NrPW51bGwpLHQmJnQuc2V0QWN0aXZlKGB3aGlsZURyYWdgLCExKX11cGRhdGVBeGlzKGUsdCxuKXtsZXR7ZHJhZzpyfT10aGlzLmdldFByb3BzKCk7aWYoIW58fCFBdChlLHIsdGhpcy5jdXJyZW50RGlyZWN0aW9uKSlyZXR1cm47bGV0IGk9dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoZSksYT10aGlzLm9yaWdpblBvaW50W2VdK25bZV07dGhpcy5jb25zdHJhaW50cyYmdGhpcy5jb25zdHJhaW50c1tlXSYmKGE9Z3QoYSx0aGlzLmNvbnN0cmFpbnRzW2VdLHRoaXMuZWxhc3RpY1tlXSkpLGkuc2V0KGEpfXJlc29sdmVDb25zdHJhaW50cygpe3ZhciBlO2xldHtkcmFnQ29uc3RyYWludHM6dCxkcmFnRWxhc3RpYzpufT10aGlzLmdldFByb3BzKCkscj10aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbiYmIXRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uLmxheW91dD90aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5tZWFzdXJlKCExKTooZT10aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbik9PW51bGw/dm9pZCAwOmUubGF5b3V0LGk9dGhpcy5jb25zdHJhaW50czt0JiZnKHQpP3RoaXMuY29uc3RyYWludHN8fCh0aGlzLmNvbnN0cmFpbnRzPXRoaXMucmVzb2x2ZVJlZkNvbnN0cmFpbnRzKCkpOnQmJnI/dGhpcy5jb25zdHJhaW50cz12dChyLmxheW91dEJveCx0KTp0aGlzLmNvbnN0cmFpbnRzPSExLHRoaXMuZWxhc3RpYz13dChuKSxpIT09dGhpcy5jb25zdHJhaW50cyYmciYmdGhpcy5jb25zdHJhaW50cyYmIXRoaXMuaGFzTXV0YXRlZENvbnN0cmFpbnRzJiZZKGU9Pnt0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShlKSYmKHRoaXMuY29uc3RyYWludHNbZV09U3Qoci5sYXlvdXRCb3hbZV0sdGhpcy5jb25zdHJhaW50c1tlXSkpfSl9cmVzb2x2ZVJlZkNvbnN0cmFpbnRzKCl7bGV0e2RyYWdDb25zdHJhaW50czplLG9uTWVhc3VyZURyYWdDb25zdHJhaW50czp0fT10aGlzLmdldFByb3BzKCk7aWYoIWV8fCFnKGUpKXJldHVybiExO2xldCBuPWUuY3VycmVudDtLZShuIT09bnVsbCwiSWYgYGRyYWdDb25zdHJhaW50c2AgaXMgc2V0IGFzIGEgUmVhY3QgcmVmLCB0aGF0IHJlZiBtdXN0IGJlIHBhc3NlZCB0byBhbm90aGVyIGNvbXBvbmVudCdzIGByZWZgIHByb3AuIik7bGV0e3Byb2plY3Rpb246cn09dGhpcy52aXN1YWxFbGVtZW50O2lmKCFyfHwhci5sYXlvdXQpcmV0dXJuITE7bGV0IGk9YihuLHIucm9vdCx0aGlzLnZpc3VhbEVsZW1lbnQuZ2V0VHJhbnNmb3JtUGFnZVBvaW50KCkpLGE9YnQoci5sYXlvdXQubGF5b3V0Qm94LGkpO2lmKHQpe2xldCBlPXQoZWUoYSkpO3RoaXMuaGFzTXV0YXRlZENvbnN0cmFpbnRzPSEhZSxlJiYoYT1oKGUpKX1yZXR1cm4gYX1zdGFydEFuaW1hdGlvbihlKXtsZXR7ZHJhZzp0LGRyYWdNb21lbnR1bTpuLGRyYWdFbGFzdGljOnIsZHJhZ1RyYW5zaXRpb246aSxkcmFnU25hcFRvT3JpZ2luOmEsb25EcmFnVHJhbnNpdGlvbkVuZDpvfT10aGlzLmdldFByb3BzKCkscz10aGlzLmNvbnN0cmFpbnRzfHx7fSxjPVkobz0+e2lmKCFBdChvLHQsdGhpcy5jdXJyZW50RGlyZWN0aW9uKSlyZXR1cm47bGV0IGM9cyYmc1tvXXx8e307YSYmKGM9e21pbjowLG1heDowfSk7bGV0IGw9cj8yMDA6MWU2LHU9cj80MDoxZTcsZD17dHlwZTpgaW5lcnRpYWAsdmVsb2NpdHk6bj9lW29dOjAsYm91bmNlU3RpZmZuZXNzOmwsYm91bmNlRGFtcGluZzp1LHRpbWVDb25zdGFudDo3NTAscmVzdERlbHRhOjEscmVzdFNwZWVkOjEwLC4uLmksLi4uY307cmV0dXJuIHRoaXMuc3RhcnRBeGlzVmFsdWVBbmltYXRpb24obyxkKX0pO3JldHVybiBQcm9taXNlLmFsbChjKS50aGVuKG8pfXN0YXJ0QXhpc1ZhbHVlQW5pbWF0aW9uKGUsdCl7bGV0IG49dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoZSk7cmV0dXJuIG4uc3RhcnQoRmUoZSxuLDAsdCkpfXN0b3BBbmltYXRpb24oKXtZKGU9PnRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGUpLnN0b3AoKSl9cGF1c2VBbmltYXRpb24oKXtZKGU9Pnt2YXIgdDtyZXR1cm4odD10aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShlKS5hbmltYXRpb24pPT1udWxsP3ZvaWQgMDp0LnBhdXNlKCl9KX1nZXRBbmltYXRpb25TdGF0ZShlKXt2YXIgdDtyZXR1cm4odD10aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShlKS5hbmltYXRpb24pPT1udWxsP3ZvaWQgMDp0LnN0YXRlfWdldEF4aXNNb3Rpb25WYWx1ZShlKXtsZXQgdD1gX2RyYWdgK2UudG9VcHBlckNhc2UoKSxuPXRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO3JldHVybiBuW3RdfHx0aGlzLnZpc3VhbEVsZW1lbnQuZ2V0VmFsdWUoZSwobi5pbml0aWFsP24uaW5pdGlhbFtlXTp2b2lkIDApfHwwKX1zbmFwVG9DdXJzb3IoZSl7WSh0PT57bGV0e2RyYWc6bn09dGhpcy5nZXRQcm9wcygpO2lmKCFBdCh0LG4sdGhpcy5jdXJyZW50RGlyZWN0aW9uKSlyZXR1cm47bGV0e3Byb2plY3Rpb246cn09dGhpcy52aXN1YWxFbGVtZW50LGk9dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUodCk7aWYociYmci5sYXlvdXQpe2xldHttaW46bixtYXg6YX09ci5sYXlvdXQubGF5b3V0Qm94W3RdO2kuc2V0KGVbdF0tSyhuLGEsLjUpKX19KX1zY2FsZVBvc2l0aW9uV2l0aGluQ29uc3RyYWludHMoKXtpZighdGhpcy52aXN1YWxFbGVtZW50LmN1cnJlbnQpcmV0dXJuO2xldHtkcmFnOmUsZHJhZ0NvbnN0cmFpbnRzOnR9PXRoaXMuZ2V0UHJvcHMoKSx7cHJvamVjdGlvbjpufT10aGlzLnZpc3VhbEVsZW1lbnQ7aWYoIWcodCl8fCFufHwhdGhpcy5jb25zdHJhaW50cylyZXR1cm47dGhpcy5zdG9wQW5pbWF0aW9uKCk7bGV0IHI9e3g6MCx5OjB9O1koZT0+e2xldCB0PXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGUpO2lmKHQpe2xldCBuPXQuZ2V0KCk7cltlXT14dCh7bWluOm4sbWF4Om59LHRoaXMuY29uc3RyYWludHNbZV0pfX0pO2xldHt0cmFuc2Zvcm1UZW1wbGF0ZTppfT10aGlzLnZpc3VhbEVsZW1lbnQuZ2V0UHJvcHMoKTt0aGlzLnZpc3VhbEVsZW1lbnQuY3VycmVudC5zdHlsZS50cmFuc2Zvcm09aT9pKHt9LGBgKTpgbm9uZWAsbi5yb290JiZuLnJvb3QudXBkYXRlU2Nyb2xsKCksbi51cGRhdGVMYXlvdXQoKSx0aGlzLnJlc29sdmVDb25zdHJhaW50cygpLFkodD0+e2lmKCFBdCh0LGUsbnVsbCkpcmV0dXJuO2xldCBuPXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKHQpLHttaW46aSxtYXg6YX09dGhpcy5jb25zdHJhaW50c1t0XTtuLnNldChLKGksYSxyW3RdKSl9KX1hZGRMaXN0ZW5lcnMoKXtpZighdGhpcy52aXN1YWxFbGVtZW50LmN1cnJlbnQpcmV0dXJuO090LnNldCh0aGlzLnZpc3VhbEVsZW1lbnQsdGhpcyk7bGV0IGU9dGhpcy52aXN1YWxFbGVtZW50LmN1cnJlbnQsdD11KGUsYHBvaW50ZXJkb3duYCxlPT57bGV0e2RyYWc6dCxkcmFnTGlzdGVuZXI6bj0hMH09dGhpcy5nZXRQcm9wcygpO3QmJm4mJnRoaXMuc3RhcnQoZSl9KSxuPSgpPT57bGV0e2RyYWdDb25zdHJhaW50czplfT10aGlzLmdldFByb3BzKCk7ZyhlKSYmKHRoaXMuY29uc3RyYWludHM9dGhpcy5yZXNvbHZlUmVmQ29uc3RyYWludHMoKSl9LHtwcm9qZWN0aW9uOnJ9PXRoaXMudmlzdWFsRWxlbWVudCxpPXIuYWRkRXZlbnRMaXN0ZW5lcihgbWVhc3VyZWAsbik7ciYmIXIubGF5b3V0JiYoci5yb290JiZyLnJvb3QudXBkYXRlU2Nyb2xsKCksci51cGRhdGVMYXlvdXQoKSksbigpO2xldCBhPW0od2luZG93LGByZXNpemVgLCgpPT50aGlzLnNjYWxlUG9zaXRpb25XaXRoaW5Db25zdHJhaW50cygpKSxvPXIuYWRkRXZlbnRMaXN0ZW5lcihgZGlkVXBkYXRlYCwoKHtkZWx0YTplLGhhc0xheW91dENoYW5nZWQ6dH0pPT57dGhpcy5pc0RyYWdnaW5nJiZ0JiYoWSh0PT57bGV0IG49dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUodCk7biYmKHRoaXMub3JpZ2luUG9pbnRbdF0rPWVbdF0udHJhbnNsYXRlLG4uc2V0KG4uZ2V0KCkrZVt0XS50cmFuc2xhdGUpKX0pLHRoaXMudmlzdWFsRWxlbWVudC5yZW5kZXIoKSl9KSk7cmV0dXJuKCk9PnthKCksdCgpLGkoKSxvJiZvKCl9fWdldFByb3BzKCl7bGV0IGU9dGhpcy52aXN1YWxFbGVtZW50LmdldFByb3BzKCkse2RyYWc6dD0hMSxkcmFnRGlyZWN0aW9uTG9jazpuPSExLGRyYWdQcm9wYWdhdGlvbjpyPSExLGRyYWdDb25zdHJhaW50czppPSExLGRyYWdFbGFzdGljOmE9Q3QsZHJhZ01vbWVudHVtOm89ITB9PWU7cmV0dXJuey4uLmUsZHJhZzp0LGRyYWdEaXJlY3Rpb25Mb2NrOm4sZHJhZ1Byb3BhZ2F0aW9uOnIsZHJhZ0NvbnN0cmFpbnRzOmksZHJhZ0VsYXN0aWM6YSxkcmFnTW9tZW50dW06b319fTtmdW5jdGlvbiBBdChlLHQsbil7cmV0dXJuKHQ9PT0hMHx8dD09PWUpJiYobj09PW51bGx8fG49PT1lKX1mdW5jdGlvbiBqdChlLHQ9MTApe2xldCBuPW51bGw7cmV0dXJuIE1hdGguYWJzKGUueSk+dD9uPWB5YDpNYXRoLmFicyhlLngpPnQmJihuPWB4YCksbn12YXIgTXQ9Y2xhc3MgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMucmVtb3ZlR3JvdXBDb250cm9scz1pZSx0aGlzLnJlbW92ZUxpc3RlbmVycz1pZSx0aGlzLmNvbnRyb2xzPW5ldyBrdChlKX1tb3VudCgpe2xldHtkcmFnQ29udHJvbHM6ZX09dGhpcy5ub2RlLmdldFByb3BzKCk7ZSYmKHRoaXMucmVtb3ZlR3JvdXBDb250cm9scz1lLnN1YnNjcmliZSh0aGlzLmNvbnRyb2xzKSksdGhpcy5yZW1vdmVMaXN0ZW5lcnM9dGhpcy5jb250cm9scy5hZGRMaXN0ZW5lcnMoKXx8aWV9dW5tb3VudCgpe3RoaXMucmVtb3ZlR3JvdXBDb250cm9scygpLHRoaXMucmVtb3ZlTGlzdGVuZXJzKCl9fSxOdD1lPT4odCxuKT0+e2UmJlcudXBkYXRlKCgpPT5lKHQsbikpfSxQdD1jbGFzcyBleHRlbmRzIHp7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVtb3ZlUG9pbnRlckRvd25MaXN0ZW5lcj1pZX1vblBvaW50ZXJEb3duKGUpe3RoaXMuc2Vzc2lvbj1uZXcgbnQoZSx0aGlzLmNyZWF0ZVBhbkhhbmRsZXJzKCkse3RyYW5zZm9ybVBhZ2VQb2ludDp0aGlzLm5vZGUuZ2V0VHJhbnNmb3JtUGFnZVBvaW50KCksY29udGV4dFdpbmRvdzpEdCh0aGlzLm5vZGUpfSl9Y3JlYXRlUGFuSGFuZGxlcnMoKXtsZXR7b25QYW5TZXNzaW9uU3RhcnQ6ZSxvblBhblN0YXJ0OnQsb25QYW46bixvblBhbkVuZDpyfT10aGlzLm5vZGUuZ2V0UHJvcHMoKTtyZXR1cm57b25TZXNzaW9uU3RhcnQ6TnQoZSksb25TdGFydDpOdCh0KSxvbk1vdmU6bixvbkVuZDooZSx0KT0+e2RlbGV0ZSB0aGlzLnNlc3Npb24sciYmVy51cGRhdGUoKCk9PnIoZSx0KSl9fX1tb3VudCgpe3RoaXMucmVtb3ZlUG9pbnRlckRvd25MaXN0ZW5lcj11KHRoaXMubm9kZS5jdXJyZW50LGBwb2ludGVyZG93bmAsZT0+dGhpcy5vblBvaW50ZXJEb3duKGUpKX11cGRhdGUoKXt0aGlzLnNlc3Npb24mJnRoaXMuc2Vzc2lvbi51cGRhdGVIYW5kbGVycyh0aGlzLmNyZWF0ZVBhbkhhbmRsZXJzKCkpfXVubW91bnQoKXt0aGlzLnJlbW92ZVBvaW50ZXJEb3duTGlzdGVuZXIoKSx0aGlzLnNlc3Npb24mJnRoaXMuc2Vzc2lvbi5lbmQoKX19LFg9X2UoT2UoKSwxKTtmdW5jdGlvbiBGdCgpe2xldCBlPSgwLFgudXNlQ29udGV4dCkoUmUpO2lmKGU9PT1udWxsKXJldHVyblshMCxudWxsXTtsZXR7aXNQcmVzZW50OnQsb25FeGl0Q29tcGxldGU6bixyZWdpc3RlcjpyfT1lLGk9KDAsWC51c2VJZCkoKTtyZXR1cm4oMCxYLnVzZUVmZmVjdCkoKCk9PnIoaSksW10pLCF0JiZuP1shMSwoKT0+biYmbihpKV06WyEwXX12YXIgSXQ9e2hhc0FuaW1hdGVkU2luY2VSZXNpemU6ITAsaGFzRXZlclVwZGF0ZWQ6ITF9O2Z1bmN0aW9uIEx0KGUsdCl7cmV0dXJuIHQubWF4PT09dC5taW4/MDplLyh0Lm1heC10Lm1pbikqMTAwfXZhciBSdD17Y29ycmVjdDooZSx0KT0+e2lmKCF0LnRhcmdldClyZXR1cm4gZTtpZih0eXBlb2YgZT09YHN0cmluZ2ApaWYocmUudGVzdChlKSllPXBhcnNlRmxvYXQoZSk7ZWxzZSByZXR1cm4gZTtyZXR1cm5gJHtMdChlLHQudGFyZ2V0LngpfSUgJHtMdChlLHQudGFyZ2V0LnkpfSVgfX0senQ9e2NvcnJlY3Q6KGUse3RyZWVTY2FsZTp0LHByb2plY3Rpb25EZWx0YTpufSk9PntsZXQgcj1lLGk9RGUucGFyc2UoZSk7aWYoaS5sZW5ndGg+NSlyZXR1cm4gcjtsZXQgYT1EZS5jcmVhdGVUcmFuc2Zvcm1lcihlKSxvPXR5cGVvZiBpWzBdPT1gbnVtYmVyYD8wOjEscz1uLnguc2NhbGUqdC54LGM9bi55LnNjYWxlKnQueTtpWzArb10vPXMsaVsxK29dLz1jO2xldCBsPUsocyxjLC41KTtyZXR1cm4gdHlwZW9mIGlbMitvXT09YG51bWJlcmAmJihpWzIrb10vPWwpLHR5cGVvZiBpWzMrb109PWBudW1iZXJgJiYoaVszK29dLz1sKSxhKGkpfX0sQnQ9Y2xhc3MgZXh0ZW5kcyBYLkNvbXBvbmVudHtjb21wb25lbnREaWRNb3VudCgpe2xldHt2aXN1YWxFbGVtZW50OmUsbGF5b3V0R3JvdXA6dCxzd2l0Y2hMYXlvdXRHcm91cDpuLGxheW91dElkOnJ9PXRoaXMucHJvcHMse3Byb2plY3Rpb246aX09ZTtjKEh0KSxpJiYodC5ncm91cCYmdC5ncm91cC5hZGQoaSksbiYmbi5yZWdpc3RlciYmciYmbi5yZWdpc3RlcihpKSxpLnJvb3QuZGlkVXBkYXRlKCksaS5hZGRFdmVudExpc3RlbmVyKGBhbmltYXRpb25Db21wbGV0ZWAsKCk9Pnt0aGlzLnNhZmVUb1JlbW92ZSgpfSksaS5zZXRPcHRpb25zKHsuLi5pLm9wdGlvbnMsb25FeGl0Q29tcGxldGU6KCk9PnRoaXMuc2FmZVRvUmVtb3ZlKCl9KSksSXQuaGFzRXZlclVwZGF0ZWQ9ITB9Z2V0U25hcHNob3RCZWZvcmVVcGRhdGUoZSl7bGV0e2xheW91dERlcGVuZGVuY3k6dCx2aXN1YWxFbGVtZW50Om4sZHJhZzpyLGlzUHJlc2VudDppfT10aGlzLnByb3BzLGE9bi5wcm9qZWN0aW9uO3JldHVybiBhPyhhLmlzUHJlc2VudD1pLHJ8fGUubGF5b3V0RGVwZW5kZW5jeSE9PXR8fHQ9PT12b2lkIDA/YS53aWxsVXBkYXRlKCk6dGhpcy5zYWZlVG9SZW1vdmUoKSxlLmlzUHJlc2VudCE9PWkmJihpP2EucHJvbW90ZSgpOmEucmVsZWdhdGUoKXx8Vy5wb3N0UmVuZGVyKCgpPT57bGV0IGU9YS5nZXRTdGFjaygpOyghZXx8IWUubWVtYmVycy5sZW5ndGgpJiZ0aGlzLnNhZmVUb1JlbW92ZSgpfSkpLG51bGwpOm51bGx9Y29tcG9uZW50RGlkVXBkYXRlKCl7bGV0e3Byb2plY3Rpb246ZX09dGhpcy5wcm9wcy52aXN1YWxFbGVtZW50O2UmJihlLnJvb3QuZGlkVXBkYXRlKCkscXVldWVNaWNyb3Rhc2soKCk9PnshZS5jdXJyZW50QW5pbWF0aW9uJiZlLmlzTGVhZCgpJiZ0aGlzLnNhZmVUb1JlbW92ZSgpfSkpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7bGV0e3Zpc3VhbEVsZW1lbnQ6ZSxsYXlvdXRHcm91cDp0LHN3aXRjaExheW91dEdyb3VwOm59PXRoaXMucHJvcHMse3Byb2plY3Rpb246cn09ZTtyJiYoci5zY2hlZHVsZUNoZWNrQWZ0ZXJVbm1vdW50KCksdCYmdC5ncm91cCYmdC5ncm91cC5yZW1vdmUociksbiYmbi5kZXJlZ2lzdGVyJiZuLmRlcmVnaXN0ZXIocikpfXNhZmVUb1JlbW92ZSgpe2xldHtzYWZlVG9SZW1vdmU6ZX09dGhpcy5wcm9wcztlJiZlKCl9cmVuZGVyKCl7cmV0dXJuIG51bGx9fTtmdW5jdGlvbiBWdChlKXtsZXRbdCxuXT1GdCgpLHI9KDAsWC51c2VDb250ZXh0KSh2ZSk7cmV0dXJuIFguY3JlYXRlRWxlbWVudChCdCx7Li4uZSxsYXlvdXRHcm91cDpyLHN3aXRjaExheW91dEdyb3VwOigwLFgudXNlQ29udGV4dCkobWUpLGlzUHJlc2VudDp0LHNhZmVUb1JlbW92ZTpufSl9dmFyIEh0PXtib3JkZXJSYWRpdXM6ey4uLlJ0LGFwcGx5VG86W2Bib3JkZXJUb3BMZWZ0UmFkaXVzYCxgYm9yZGVyVG9wUmlnaHRSYWRpdXNgLGBib3JkZXJCb3R0b21MZWZ0UmFkaXVzYCxgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXNgXX0sYm9yZGVyVG9wTGVmdFJhZGl1czpSdCxib3JkZXJUb3BSaWdodFJhZGl1czpSdCxib3JkZXJCb3R0b21MZWZ0UmFkaXVzOlJ0LGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOlJ0LGJveFNoYWRvdzp6dH0sVXQ9W2BUb3BMZWZ0YCxgVG9wUmlnaHRgLGBCb3R0b21MZWZ0YCxgQm90dG9tUmlnaHRgXSxXdD1VdC5sZW5ndGgsR3Q9ZT0+dHlwZW9mIGU9PWBzdHJpbmdgP3BhcnNlRmxvYXQoZSk6ZSxLdD1lPT50eXBlb2YgZT09YG51bWJlcmB8fHJlLnRlc3QoZSk7ZnVuY3Rpb24gcXQoZSx0LG4scixpLGEpe2k/KGUub3BhY2l0eT1LKDAsbi5vcGFjaXR5PT09dm9pZCAwPzE6bi5vcGFjaXR5LFl0KHIpKSxlLm9wYWNpdHlFeGl0PUsodC5vcGFjaXR5PT09dm9pZCAwPzE6dC5vcGFjaXR5LDAsWHQocikpKTphJiYoZS5vcGFjaXR5PUsodC5vcGFjaXR5PT09dm9pZCAwPzE6dC5vcGFjaXR5LG4ub3BhY2l0eT09PXZvaWQgMD8xOm4ub3BhY2l0eSxyKSk7Zm9yKGxldCBpPTA7aTxXdDtpKyspe2xldCBhPWBib3JkZXIke1V0W2ldfVJhZGl1c2Asbz1KdCh0LGEpLHM9SnQobixhKTtvPT09dm9pZCAwJiZzPT09dm9pZCAwfHwob3x8KG89MCksc3x8KHM9MCksbz09PTB8fHM9PT0wfHxLdChvKT09PUt0KHMpPyhlW2FdPU1hdGgubWF4KEsoR3QobyksR3QocyksciksMCksKHgudGVzdChzKXx8eC50ZXN0KG8pKSYmKGVbYV0rPWAlYCkpOmVbYV09cyl9KHQucm90YXRlfHxuLnJvdGF0ZSkmJihlLnJvdGF0ZT1LKHQucm90YXRlfHwwLG4ucm90YXRlfHwwLHIpKX1mdW5jdGlvbiBKdChlLHQpe3JldHVybiBlW3RdPT09dm9pZCAwP2UuYm9yZGVyUmFkaXVzOmVbdF19dmFyIFl0PVp0KDAsLjUsUGUpLFh0PVp0KC41LC45NSxpZSk7ZnVuY3Rpb24gWnQoZSx0LG4pe3JldHVybiByPT5yPGU/MDpyPnQ/MTpuKFNlKGUsdCxyKSl9ZnVuY3Rpb24gUXQoZSx0KXtlLm1pbj10Lm1pbixlLm1heD10Lm1heH1mdW5jdGlvbiBaKGUsdCl7UXQoZS54LHQueCksUXQoZS55LHQueSl9ZnVuY3Rpb24gJHQoZSx0LG4scixpKXtyZXR1cm4gZS09dCxlPSRlKGUsMS9uLHIpLGkhPT12b2lkIDAmJihlPSRlKGUsMS9pLHIpKSxlfWZ1bmN0aW9uIGVuKGUsdD0wLG49MSxyPS41LGksYT1lLG89ZSl7aWYoeC50ZXN0KHQpJiYodD1wYXJzZUZsb2F0KHQpLHQ9SyhvLm1pbixvLm1heCx0LzEwMCktby5taW4pLHR5cGVvZiB0IT1gbnVtYmVyYClyZXR1cm47bGV0IHM9SyhhLm1pbixhLm1heCxyKTtlPT09YSYmKHMtPXQpLGUubWluPSR0KGUubWluLHQsbixzLGkpLGUubWF4PSR0KGUubWF4LHQsbixzLGkpfWZ1bmN0aW9uIHRuKGUsdCxbbixyLGldLGEsbyl7ZW4oZSx0W25dLHRbcl0sdFtpXSx0LnNjYWxlLGEsbyl9dmFyIG5uPVtgeGAsYHNjYWxlWGAsYG9yaWdpblhgXSxybj1bYHlgLGBzY2FsZVlgLGBvcmlnaW5ZYF07ZnVuY3Rpb24gYW4oZSx0LG4scil7dG4oZS54LHQsbm4sbj9uLng6dm9pZCAwLHI/ci54OnZvaWQgMCksdG4oZS55LHQscm4sbj9uLnk6dm9pZCAwLHI/ci55OnZvaWQgMCl9ZnVuY3Rpb24gb24oZSl7cmV0dXJuIGUudHJhbnNsYXRlPT09MCYmZS5zY2FsZT09PTF9ZnVuY3Rpb24gc24oZSl7cmV0dXJuIG9uKGUueCkmJm9uKGUueSl9ZnVuY3Rpb24gY24oZSx0KXtyZXR1cm4gZS54Lm1pbj09PXQueC5taW4mJmUueC5tYXg9PT10LngubWF4JiZlLnkubWluPT09dC55Lm1pbiYmZS55Lm1heD09PXQueS5tYXh9ZnVuY3Rpb24gbG4oZSx0KXtyZXR1cm4gTWF0aC5yb3VuZChlLngubWluKT09PU1hdGgucm91bmQodC54Lm1pbikmJk1hdGgucm91bmQoZS54Lm1heCk9PT1NYXRoLnJvdW5kKHQueC5tYXgpJiZNYXRoLnJvdW5kKGUueS5taW4pPT09TWF0aC5yb3VuZCh0LnkubWluKSYmTWF0aC5yb3VuZChlLnkubWF4KT09PU1hdGgucm91bmQodC55Lm1heCl9ZnVuY3Rpb24gdW4oZSl7cmV0dXJuIEooZS54KS9KKGUueSl9dmFyIGRuPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5tZW1iZXJzPVtdfWFkZChlKXt3ZSh0aGlzLm1lbWJlcnMsZSksZS5zY2hlZHVsZVJlbmRlcigpfXJlbW92ZShlKXtpZihVZSh0aGlzLm1lbWJlcnMsZSksZT09PXRoaXMucHJldkxlYWQmJih0aGlzLnByZXZMZWFkPXZvaWQgMCksZT09PXRoaXMubGVhZCl7bGV0IGU9dGhpcy5tZW1iZXJzW3RoaXMubWVtYmVycy5sZW5ndGgtMV07ZSYmdGhpcy5wcm9tb3RlKGUpfX1yZWxlZ2F0ZShlKXtsZXQgdD10aGlzLm1lbWJlcnMuZmluZEluZGV4KHQ9PmU9PT10KTtpZih0PT09MClyZXR1cm4hMTtsZXQgbjtmb3IobGV0IGU9dDtlPj0wO2UtLSl7bGV0IHQ9dGhpcy5tZW1iZXJzW2VdO2lmKHQuaXNQcmVzZW50IT09ITEpe249dDticmVha319cmV0dXJuIG4/KHRoaXMucHJvbW90ZShuKSwhMCk6ITF9cHJvbW90ZShlLHQpe2xldCBuPXRoaXMubGVhZDtpZihlIT09biYmKHRoaXMucHJldkxlYWQ9bix0aGlzLmxlYWQ9ZSxlLnNob3coKSxuKSl7bi5pbnN0YW5jZSYmbi5zY2hlZHVsZVJlbmRlcigpLGUuc2NoZWR1bGVSZW5kZXIoKSxlLnJlc3VtZUZyb209bix0JiYoZS5yZXN1bWVGcm9tLnByZXNlcnZlT3BhY2l0eT0hMCksbi5zbmFwc2hvdCYmKGUuc25hcHNob3Q9bi5zbmFwc2hvdCxlLnNuYXBzaG90LmxhdGVzdFZhbHVlcz1uLmFuaW1hdGlvblZhbHVlc3x8bi5sYXRlc3RWYWx1ZXMpLGUucm9vdCYmZS5yb290LmlzVXBkYXRpbmcmJihlLmlzTGF5b3V0RGlydHk9ITApO2xldHtjcm9zc2ZhZGU6cn09ZS5vcHRpb25zO3I9PT0hMSYmbi5oaWRlKCl9fWV4aXRBbmltYXRpb25Db21wbGV0ZSgpe3RoaXMubWVtYmVycy5mb3JFYWNoKGU9PntsZXR7b3B0aW9uczp0LHJlc3VtaW5nRnJvbTpufT1lO3Qub25FeGl0Q29tcGxldGUmJnQub25FeGl0Q29tcGxldGUoKSxuJiZuLm9wdGlvbnMub25FeGl0Q29tcGxldGUmJm4ub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpfSl9c2NoZWR1bGVSZW5kZXIoKXt0aGlzLm1lbWJlcnMuZm9yRWFjaChlPT57ZS5pbnN0YW5jZSYmZS5zY2hlZHVsZVJlbmRlcighMSl9KX1yZW1vdmVMZWFkU25hcHNob3QoKXt0aGlzLmxlYWQmJnRoaXMubGVhZC5zbmFwc2hvdCYmKHRoaXMubGVhZC5zbmFwc2hvdD12b2lkIDApfX07ZnVuY3Rpb24gZm4oZSx0LG4pe2xldCByPWBgLGk9ZS54LnRyYW5zbGF0ZS90LngsYT1lLnkudHJhbnNsYXRlL3QueTtpZigoaXx8YSkmJihyPWB0cmFuc2xhdGUzZCgke2l9cHgsICR7YX1weCwgMCkgYCksKHQueCE9PTF8fHQueSE9PTEpJiYocis9YHNjYWxlKCR7MS90Lnh9LCAkezEvdC55fSkgYCksbil7bGV0e3JvdGF0ZTplLHJvdGF0ZVg6dCxyb3RhdGVZOml9PW47ZSYmKHIrPWByb3RhdGUoJHtlfWRlZykgYCksdCYmKHIrPWByb3RhdGVYKCR7dH1kZWcpIGApLGkmJihyKz1gcm90YXRlWSgke2l9ZGVnKSBgKX1sZXQgbz1lLnguc2NhbGUqdC54LHM9ZS55LnNjYWxlKnQueTtyZXR1cm4obyE9PTF8fHMhPT0xKSYmKHIrPWBzY2FsZSgke299LCAke3N9KWApLHJ8fGBub25lYH12YXIgcG49KGUsdCk9PmUuZGVwdGgtdC5kZXB0aCxtbj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuY2hpbGRyZW49W10sdGhpcy5pc0RpcnR5PSExfWFkZChlKXt3ZSh0aGlzLmNoaWxkcmVuLGUpLHRoaXMuaXNEaXJ0eT0hMH1yZW1vdmUoZSl7VWUodGhpcy5jaGlsZHJlbixlKSx0aGlzLmlzRGlydHk9ITB9Zm9yRWFjaChlKXt0aGlzLmlzRGlydHkmJnRoaXMuY2hpbGRyZW4uc29ydChwbiksdGhpcy5pc0RpcnR5PSExLHRoaXMuY2hpbGRyZW4uZm9yRWFjaChlKX19O2Z1bmN0aW9uIGhuKGUsdCl7bGV0IG49cGVyZm9ybWFuY2Uubm93KCkscj0oe3RpbWVzdGFtcDppfSk9PntsZXQgYT1pLW47YT49dCYmKHNlKHIpLGUoYS10KSl9O3JldHVybiBXLnJlYWQociwhMCksKCk9PnNlKHIpfWZ1bmN0aW9uIGduKGUpe3dpbmRvdy5Nb3Rpb25EZWJ1ZyYmd2luZG93Lk1vdGlvbkRlYnVnLnJlY29yZChlKX12YXIgX249W2BgLGBYYCxgWWAsYFpgXSx2bj17dmlzaWJpbGl0eTpgaGlkZGVuYH0seW49MWUzLGJuPTAseG49e3R5cGU6YHByb2plY3Rpb25GcmFtZWAsdG90YWxOb2RlczowLHJlc29sdmVkVGFyZ2V0RGVsdGFzOjAscmVjYWxjdWxhdGVkUHJvamVjdGlvbjowfTtmdW5jdGlvbiBTbih7YXR0YWNoUmVzaXplTGlzdGVuZXI6dCxkZWZhdWx0UGFyZW50OnIsbWVhc3VyZVNjcm9sbDppLGNoZWNrSXNTY3JvbGxSb290OmMscmVzZXRUcmFuc2Zvcm06bH0pe3JldHVybiBjbGFzc3tjb25zdHJ1Y3RvcihlPXt9LHQ9cj09bnVsbD92b2lkIDA6cigpKXt0aGlzLmlkPWJuKyssdGhpcy5hbmltYXRpb25JZD0wLHRoaXMuY2hpbGRyZW49bmV3IFNldCx0aGlzLm9wdGlvbnM9e30sdGhpcy5pc1RyZWVBbmltYXRpbmc9ITEsdGhpcy5pc0FuaW1hdGlvbkJsb2NrZWQ9ITEsdGhpcy5pc0xheW91dERpcnR5PSExLHRoaXMuaXNQcm9qZWN0aW9uRGlydHk9ITEsdGhpcy5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eT0hMSx0aGlzLmlzVHJhbnNmb3JtRGlydHk9ITEsdGhpcy51cGRhdGVNYW51YWxseUJsb2NrZWQ9ITEsdGhpcy51cGRhdGVCbG9ja2VkQnlSZXNpemU9ITEsdGhpcy5pc1VwZGF0aW5nPSExLHRoaXMuaXNTVkc9ITEsdGhpcy5uZWVkc1Jlc2V0PSExLHRoaXMuc2hvdWxkUmVzZXRUcmFuc2Zvcm09ITEsdGhpcy50cmVlU2NhbGU9e3g6MSx5OjF9LHRoaXMuZXZlbnRIYW5kbGVycz1uZXcgTWFwLHRoaXMuaGFzVHJlZUFuaW1hdGVkPSExLHRoaXMudXBkYXRlU2NoZWR1bGVkPSExLHRoaXMucHJvamVjdGlvblVwZGF0ZVNjaGVkdWxlZD0hMSx0aGlzLmNoZWNrVXBkYXRlRmFpbGVkPSgpPT57dGhpcy5pc1VwZGF0aW5nJiYodGhpcy5pc1VwZGF0aW5nPSExLHRoaXMuY2xlYXJBbGxTbmFwc2hvdHMoKSl9LHRoaXMudXBkYXRlUHJvamVjdGlvbj0oKT0+e3RoaXMucHJvamVjdGlvblVwZGF0ZVNjaGVkdWxlZD0hMSx4bi50b3RhbE5vZGVzPXhuLnJlc29sdmVkVGFyZ2V0RGVsdGFzPXhuLnJlY2FsY3VsYXRlZFByb2plY3Rpb249MCx0aGlzLm5vZGVzLmZvckVhY2goVG4pLHRoaXMubm9kZXMuZm9yRWFjaChNbiksdGhpcy5ub2Rlcy5mb3JFYWNoKE5uKSx0aGlzLm5vZGVzLmZvckVhY2goRW4pLGduKHhuKX0sdGhpcy5oYXNQcm9qZWN0ZWQ9ITEsdGhpcy5pc1Zpc2libGU9ITAsdGhpcy5hbmltYXRpb25Qcm9ncmVzcz0wLHRoaXMuc2hhcmVkTm9kZXM9bmV3IE1hcCx0aGlzLmxhdGVzdFZhbHVlcz1lLHRoaXMucm9vdD10P3Qucm9vdHx8dDp0aGlzLHRoaXMucGF0aD10P1suLi50LnBhdGgsdF06W10sdGhpcy5wYXJlbnQ9dCx0aGlzLmRlcHRoPXQ/dC5kZXB0aCsxOjA7Zm9yKGxldCBlPTA7ZTx0aGlzLnBhdGgubGVuZ3RoO2UrKyl0aGlzLnBhdGhbZV0uc2hvdWxkUmVzZXRUcmFuc2Zvcm09ITA7dGhpcy5yb290PT09dGhpcyYmKHRoaXMubm9kZXM9bmV3IG1uKX1hZGRFdmVudExpc3RlbmVyKGUsdCl7cmV0dXJuIHRoaXMuZXZlbnRIYW5kbGVycy5oYXMoZSl8fHRoaXMuZXZlbnRIYW5kbGVycy5zZXQoZSxuZXcgYSksdGhpcy5ldmVudEhhbmRsZXJzLmdldChlKS5hZGQodCl9bm90aWZ5TGlzdGVuZXJzKGUsLi4udCl7bGV0IG49dGhpcy5ldmVudEhhbmRsZXJzLmdldChlKTtuJiZuLm5vdGlmeSguLi50KX1oYXNMaXN0ZW5lcnMoZSl7cmV0dXJuIHRoaXMuZXZlbnRIYW5kbGVycy5oYXMoZSl9bW91bnQoZSxyPXRoaXMucm9vdC5oYXNUcmVlQW5pbWF0ZWQpe2lmKHRoaXMuaW5zdGFuY2UpcmV0dXJuO3RoaXMuaXNTVkc9bihlKSx0aGlzLmluc3RhbmNlPWU7bGV0e2xheW91dElkOmksbGF5b3V0OmEsdmlzdWFsRWxlbWVudDpvfT10aGlzLm9wdGlvbnM7aWYobyYmIW8uY3VycmVudCYmby5tb3VudChlKSx0aGlzLnJvb3Qubm9kZXMuYWRkKHRoaXMpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5jaGlsZHJlbi5hZGQodGhpcyksciYmKGF8fGkpJiYodGhpcy5pc0xheW91dERpcnR5PSEwKSx0KXtsZXQgbixyPSgpPT50aGlzLnJvb3QudXBkYXRlQmxvY2tlZEJ5UmVzaXplPSExO3QoZSwoKT0+e3RoaXMucm9vdC51cGRhdGVCbG9ja2VkQnlSZXNpemU9ITAsbiYmbigpLG49aG4ociwyNTApLEl0Lmhhc0FuaW1hdGVkU2luY2VSZXNpemUmJihJdC5oYXNBbmltYXRlZFNpbmNlUmVzaXplPSExLHRoaXMubm9kZXMuZm9yRWFjaChqbikpfSl9aSYmdGhpcy5yb290LnJlZ2lzdGVyU2hhcmVkTm9kZShpLHRoaXMpLHRoaXMub3B0aW9ucy5hbmltYXRlIT09ITEmJm8mJihpfHxhKSYmdGhpcy5hZGRFdmVudExpc3RlbmVyKGBkaWRVcGRhdGVgLCh7ZGVsdGE6ZSxoYXNMYXlvdXRDaGFuZ2VkOnQsaGFzUmVsYXRpdmVUYXJnZXRDaGFuZ2VkOm4sbGF5b3V0OnJ9KT0+e2lmKHRoaXMuaXNUcmVlQW5pbWF0aW9uQmxvY2tlZCgpKXt0aGlzLnRhcmdldD12b2lkIDAsdGhpcy5yZWxhdGl2ZVRhcmdldD12b2lkIDA7cmV0dXJufWxldCBpPXRoaXMub3B0aW9ucy50cmFuc2l0aW9ufHxvLmdldERlZmF1bHRUcmFuc2l0aW9uKCl8fEJuLHtvbkxheW91dEFuaW1hdGlvblN0YXJ0OmEsb25MYXlvdXRBbmltYXRpb25Db21wbGV0ZTpzfT1vLmdldFByb3BzKCksYz0hdGhpcy50YXJnZXRMYXlvdXR8fCFsbih0aGlzLnRhcmdldExheW91dCxyKXx8bixsPSF0JiZuO2lmKHRoaXMub3B0aW9ucy5sYXlvdXRSb290fHx0aGlzLnJlc3VtZUZyb20mJnRoaXMucmVzdW1lRnJvbS5pbnN0YW5jZXx8bHx8dCYmKGN8fCF0aGlzLmN1cnJlbnRBbmltYXRpb24pKXt0aGlzLnJlc3VtZUZyb20mJih0aGlzLnJlc3VtaW5nRnJvbT10aGlzLnJlc3VtZUZyb20sdGhpcy5yZXN1bWluZ0Zyb20ucmVzdW1pbmdGcm9tPXZvaWQgMCksdGhpcy5zZXRBbmltYXRpb25PcmlnaW4oZSxsKTtsZXQgdD17Li4uemUoaSxgbGF5b3V0YCksb25QbGF5OmEsb25Db21wbGV0ZTpzfTsoby5zaG91bGRSZWR1Y2VNb3Rpb258fHRoaXMub3B0aW9ucy5sYXlvdXRSb290KSYmKHQuZGVsYXk9MCx0LnR5cGU9ITEpLHRoaXMuc3RhcnRBbmltYXRpb24odCl9ZWxzZSB0fHxqbih0aGlzKSx0aGlzLmlzTGVhZCgpJiZ0aGlzLm9wdGlvbnMub25FeGl0Q29tcGxldGUmJnRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO3RoaXMudGFyZ2V0TGF5b3V0PXJ9KX11bm1vdW50KCl7dGhpcy5vcHRpb25zLmxheW91dElkJiZ0aGlzLndpbGxVcGRhdGUoKSx0aGlzLnJvb3Qubm9kZXMucmVtb3ZlKHRoaXMpO2xldCBlPXRoaXMuZ2V0U3RhY2soKTtlJiZlLnJlbW92ZSh0aGlzKSx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuY2hpbGRyZW4uZGVsZXRlKHRoaXMpLHRoaXMuaW5zdGFuY2U9dm9pZCAwLHNlKHRoaXMudXBkYXRlUHJvamVjdGlvbil9YmxvY2tVcGRhdGUoKXt0aGlzLnVwZGF0ZU1hbnVhbGx5QmxvY2tlZD0hMH11bmJsb2NrVXBkYXRlKCl7dGhpcy51cGRhdGVNYW51YWxseUJsb2NrZWQ9ITF9aXNVcGRhdGVCbG9ja2VkKCl7cmV0dXJuIHRoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkfHx0aGlzLnVwZGF0ZUJsb2NrZWRCeVJlc2l6ZX1pc1RyZWVBbmltYXRpb25CbG9ja2VkKCl7cmV0dXJuIHRoaXMuaXNBbmltYXRpb25CbG9ja2VkfHx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaXNUcmVlQW5pbWF0aW9uQmxvY2tlZCgpfHwhMX1zdGFydFVwZGF0ZSgpe3RoaXMuaXNVcGRhdGVCbG9ja2VkKCl8fCh0aGlzLmlzVXBkYXRpbmc9ITAsdGhpcy5ub2RlcyYmdGhpcy5ub2Rlcy5mb3JFYWNoKFBuKSx0aGlzLmFuaW1hdGlvbklkKyspfWdldFRyYW5zZm9ybVRlbXBsYXRlKCl7bGV0e3Zpc3VhbEVsZW1lbnQ6ZX09dGhpcy5vcHRpb25zO3JldHVybiBlJiZlLmdldFByb3BzKCkudHJhbnNmb3JtVGVtcGxhdGV9d2lsbFVwZGF0ZShlPSEwKXtpZih0aGlzLnJvb3QuaGFzVHJlZUFuaW1hdGVkPSEwLHRoaXMucm9vdC5pc1VwZGF0ZUJsb2NrZWQoKSl7dGhpcy5vcHRpb25zLm9uRXhpdENvbXBsZXRlJiZ0aGlzLm9wdGlvbnMub25FeGl0Q29tcGxldGUoKTtyZXR1cm59aWYoIXRoaXMucm9vdC5pc1VwZGF0aW5nJiZ0aGlzLnJvb3Quc3RhcnRVcGRhdGUoKSx0aGlzLmlzTGF5b3V0RGlydHkpcmV0dXJuO3RoaXMuaXNMYXlvdXREaXJ0eT0hMDtmb3IobGV0IGU9MDtlPHRoaXMucGF0aC5sZW5ndGg7ZSsrKXtsZXQgdD10aGlzLnBhdGhbZV07dC5zaG91bGRSZXNldFRyYW5zZm9ybT0hMCx0LnVwZGF0ZVNjcm9sbChgc25hcHNob3RgKSx0Lm9wdGlvbnMubGF5b3V0Um9vdCYmdC53aWxsVXBkYXRlKCExKX1sZXR7bGF5b3V0SWQ6dCxsYXlvdXQ6bn09dGhpcy5vcHRpb25zO2lmKHQ9PT12b2lkIDAmJiFuKXJldHVybjtsZXQgcj10aGlzLmdldFRyYW5zZm9ybVRlbXBsYXRlKCk7dGhpcy5wcmV2VHJhbnNmb3JtVGVtcGxhdGVWYWx1ZT1yP3IodGhpcy5sYXRlc3RWYWx1ZXMsYGApOnZvaWQgMCx0aGlzLnVwZGF0ZVNuYXBzaG90KCksZSYmdGhpcy5ub3RpZnlMaXN0ZW5lcnMoYHdpbGxVcGRhdGVgKX11cGRhdGUoKXtpZih0aGlzLnVwZGF0ZVNjaGVkdWxlZD0hMSx0aGlzLmlzVXBkYXRlQmxvY2tlZCgpKXt0aGlzLnVuYmxvY2tVcGRhdGUoKSx0aGlzLmNsZWFyQWxsU25hcHNob3RzKCksdGhpcy5ub2Rlcy5mb3JFYWNoKE9uKTtyZXR1cm59dGhpcy5pc1VwZGF0aW5nfHx0aGlzLm5vZGVzLmZvckVhY2goa24pLHRoaXMuaXNVcGRhdGluZz0hMSx0aGlzLm5vZGVzLmZvckVhY2goQW4pLHRoaXMubm9kZXMuZm9yRWFjaChDbiksdGhpcy5ub2Rlcy5mb3JFYWNoKHduKSx0aGlzLmNsZWFyQWxsU25hcHNob3RzKCk7bGV0IGU9cGVyZm9ybWFuY2Uubm93KCk7by5kZWx0YT1sZSgwLDFlMy82MCxlLW8udGltZXN0YW1wKSxvLnRpbWVzdGFtcD1lLG8uaXNQcm9jZXNzaW5nPSEwLGplLnVwZGF0ZS5wcm9jZXNzKG8pLGplLnByZVJlbmRlci5wcm9jZXNzKG8pLGplLnJlbmRlci5wcm9jZXNzKG8pLG8uaXNQcm9jZXNzaW5nPSExfWRpZFVwZGF0ZSgpe3RoaXMudXBkYXRlU2NoZWR1bGVkfHwodGhpcy51cGRhdGVTY2hlZHVsZWQ9ITAscXVldWVNaWNyb3Rhc2soKCk9PnRoaXMudXBkYXRlKCkpKX1jbGVhckFsbFNuYXBzaG90cygpe3RoaXMubm9kZXMuZm9yRWFjaChEbiksdGhpcy5zaGFyZWROb2Rlcy5mb3JFYWNoKEZuKX1zY2hlZHVsZVVwZGF0ZVByb2plY3Rpb24oKXt0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWR8fCh0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWQ9ITAsVy5wcmVSZW5kZXIodGhpcy51cGRhdGVQcm9qZWN0aW9uLCExLCEwKSl9c2NoZWR1bGVDaGVja0FmdGVyVW5tb3VudCgpe1cucG9zdFJlbmRlcigoKT0+e3RoaXMuaXNMYXlvdXREaXJ0eT90aGlzLnJvb3QuZGlkVXBkYXRlKCk6dGhpcy5yb290LmNoZWNrVXBkYXRlRmFpbGVkKCl9KX11cGRhdGVTbmFwc2hvdCgpe3RoaXMuc25hcHNob3R8fCF0aGlzLmluc3RhbmNlfHwodGhpcy5zbmFwc2hvdD10aGlzLm1lYXN1cmUoKSl9dXBkYXRlTGF5b3V0KCl7aWYoIXRoaXMuaW5zdGFuY2V8fCh0aGlzLnVwZGF0ZVNjcm9sbCgpLCEodGhpcy5vcHRpb25zLmFsd2F5c01lYXN1cmVMYXlvdXQmJnRoaXMuaXNMZWFkKCkpJiYhdGhpcy5pc0xheW91dERpcnR5KSlyZXR1cm47aWYodGhpcy5yZXN1bWVGcm9tJiYhdGhpcy5yZXN1bWVGcm9tLmluc3RhbmNlKWZvcihsZXQgZT0wO2U8dGhpcy5wYXRoLmxlbmd0aDtlKyspdGhpcy5wYXRoW2VdLnVwZGF0ZVNjcm9sbCgpO2xldCBlPXRoaXMubGF5b3V0O3RoaXMubGF5b3V0PXRoaXMubWVhc3VyZSghMSksdGhpcy5sYXlvdXRDb3JyZWN0ZWQ9cSgpLHRoaXMuaXNMYXlvdXREaXJ0eT0hMSx0aGlzLnByb2plY3Rpb25EZWx0YT12b2lkIDAsdGhpcy5ub3RpZnlMaXN0ZW5lcnMoYG1lYXN1cmVgLHRoaXMubGF5b3V0LmxheW91dEJveCk7bGV0e3Zpc3VhbEVsZW1lbnQ6dH09dGhpcy5vcHRpb25zO3QmJnQubm90aWZ5KGBMYXlvdXRNZWFzdXJlYCx0aGlzLmxheW91dC5sYXlvdXRCb3gsZT9lLmxheW91dEJveDp2b2lkIDApfXVwZGF0ZVNjcm9sbChlPWBtZWFzdXJlYCl7bGV0IHQ9ISEodGhpcy5vcHRpb25zLmxheW91dFNjcm9sbCYmdGhpcy5pbnN0YW5jZSk7dGhpcy5zY3JvbGwmJnRoaXMuc2Nyb2xsLmFuaW1hdGlvbklkPT09dGhpcy5yb290LmFuaW1hdGlvbklkJiZ0aGlzLnNjcm9sbC5waGFzZT09PWUmJih0PSExKSx0JiYodGhpcy5zY3JvbGw9e2FuaW1hdGlvbklkOnRoaXMucm9vdC5hbmltYXRpb25JZCxwaGFzZTplLGlzUm9vdDpjKHRoaXMuaW5zdGFuY2UpLG9mZnNldDppKHRoaXMuaW5zdGFuY2UpfSl9cmVzZXRUcmFuc2Zvcm0oKXtpZighbClyZXR1cm47bGV0IGU9dGhpcy5pc0xheW91dERpcnR5fHx0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtLHQ9dGhpcy5wcm9qZWN0aW9uRGVsdGEmJiFzbih0aGlzLnByb2plY3Rpb25EZWx0YSksbj10aGlzLmdldFRyYW5zZm9ybVRlbXBsYXRlKCkscj1uP24odGhpcy5sYXRlc3RWYWx1ZXMsYGApOnZvaWQgMCxpPXIhPT10aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlO2UmJih0fHxBKHRoaXMubGF0ZXN0VmFsdWVzKXx8aSkmJihsKHRoaXMuaW5zdGFuY2UsciksdGhpcy5zaG91bGRSZXNldFRyYW5zZm9ybT0hMSx0aGlzLnNjaGVkdWxlUmVuZGVyKCkpfW1lYXN1cmUoZT0hMCl7bGV0IHQ9dGhpcy5tZWFzdXJlUGFnZUJveCgpLG49dGhpcy5yZW1vdmVFbGVtZW50U2Nyb2xsKHQpO3JldHVybiBlJiYobj10aGlzLnJlbW92ZVRyYW5zZm9ybShuKSksV24obikse2FuaW1hdGlvbklkOnRoaXMucm9vdC5hbmltYXRpb25JZCxtZWFzdXJlZEJveDp0LGxheW91dEJveDpuLGxhdGVzdFZhbHVlczp7fSxzb3VyY2U6dGhpcy5pZH19bWVhc3VyZVBhZ2VCb3goKXtsZXR7dmlzdWFsRWxlbWVudDplfT10aGlzLm9wdGlvbnM7aWYoIWUpcmV0dXJuIHEoKTtsZXQgdD1lLm1lYXN1cmVWaWV3cG9ydEJveCgpLHtzY3JvbGw6bn09dGhpcy5yb290O3JldHVybiBuJiYoaGUodC54LG4ub2Zmc2V0LngpLGhlKHQueSxuLm9mZnNldC55KSksdH1yZW1vdmVFbGVtZW50U2Nyb2xsKGUpe2xldCB0PXEoKTtaKHQsZSk7Zm9yKGxldCBuPTA7bjx0aGlzLnBhdGgubGVuZ3RoO24rKyl7bGV0IHI9dGhpcy5wYXRoW25dLHtzY3JvbGw6aSxvcHRpb25zOmF9PXI7aWYociE9PXRoaXMucm9vdCYmaSYmYS5sYXlvdXRTY3JvbGwpe2lmKGkuaXNSb290KXtaKHQsZSk7bGV0e3Njcm9sbDpufT10aGlzLnJvb3Q7biYmKGhlKHQueCwtbi5vZmZzZXQueCksaGUodC55LC1uLm9mZnNldC55KSl9aGUodC54LGkub2Zmc2V0LngpLGhlKHQueSxpLm9mZnNldC55KX19cmV0dXJuIHR9YXBwbHlUcmFuc2Zvcm0oZSx0PSExKXtsZXQgbj1xKCk7WihuLGUpO2ZvcihsZXQgZT0wO2U8dGhpcy5wYXRoLmxlbmd0aDtlKyspe2xldCByPXRoaXMucGF0aFtlXTshdCYmci5vcHRpb25zLmxheW91dFNjcm9sbCYmci5zY3JvbGwmJnIhPT1yLnJvb3QmJnMobix7eDotci5zY3JvbGwub2Zmc2V0LngseTotci5zY3JvbGwub2Zmc2V0Lnl9KSxBKHIubGF0ZXN0VmFsdWVzKSYmcyhuLHIubGF0ZXN0VmFsdWVzKX1yZXR1cm4gQSh0aGlzLmxhdGVzdFZhbHVlcykmJnMobix0aGlzLmxhdGVzdFZhbHVlcyksbn1yZW1vdmVUcmFuc2Zvcm0oZSl7bGV0IHQ9cSgpO1oodCxlKTtmb3IobGV0IGU9MDtlPHRoaXMucGF0aC5sZW5ndGg7ZSsrKXtsZXQgbj10aGlzLnBhdGhbZV07aWYoIW4uaW5zdGFuY2V8fCFBKG4ubGF0ZXN0VmFsdWVzKSljb250aW51ZTtwZShuLmxhdGVzdFZhbHVlcykmJm4udXBkYXRlU25hcHNob3QoKTtsZXQgcj1xKCk7WihyLG4ubWVhc3VyZVBhZ2VCb3goKSksYW4odCxuLmxhdGVzdFZhbHVlcyxuLnNuYXBzaG90P24uc25hcHNob3QubGF5b3V0Qm94OnZvaWQgMCxyKX1yZXR1cm4gQSh0aGlzLmxhdGVzdFZhbHVlcykmJmFuKHQsdGhpcy5sYXRlc3RWYWx1ZXMpLHR9c2V0VGFyZ2V0RGVsdGEoZSl7dGhpcy50YXJnZXREZWx0YT1lLHRoaXMucm9vdC5zY2hlZHVsZVVwZGF0ZVByb2plY3Rpb24oKSx0aGlzLmlzUHJvamVjdGlvbkRpcnR5PSEwfXNldE9wdGlvbnMoZSl7dGhpcy5vcHRpb25zPXsuLi50aGlzLm9wdGlvbnMsLi4uZSxjcm9zc2ZhZGU6ZS5jcm9zc2ZhZGU9PT12b2lkIDA/ITA6ZS5jcm9zc2ZhZGV9fWNsZWFyTWVhc3VyZW1lbnRzKCl7dGhpcy5zY3JvbGw9dm9pZCAwLHRoaXMubGF5b3V0PXZvaWQgMCx0aGlzLnNuYXBzaG90PXZvaWQgMCx0aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlPXZvaWQgMCx0aGlzLnRhcmdldERlbHRhPXZvaWQgMCx0aGlzLnRhcmdldD12b2lkIDAsdGhpcy5pc0xheW91dERpcnR5PSExfWZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKXt0aGlzLnJlbGF0aXZlUGFyZW50JiZ0aGlzLnJlbGF0aXZlUGFyZW50LnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdCE9PW8udGltZXN0YW1wJiZ0aGlzLnJlbGF0aXZlUGFyZW50LnJlc29sdmVUYXJnZXREZWx0YSghMCl9cmVzb2x2ZVRhcmdldERlbHRhKGU9ITEpe3ZhciB0O2xldCBuPXRoaXMuZ2V0TGVhZCgpO3RoaXMuaXNQcm9qZWN0aW9uRGlydHl8fCh0aGlzLmlzUHJvamVjdGlvbkRpcnR5PW4uaXNQcm9qZWN0aW9uRGlydHkpLHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eXx8KHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eT1uLmlzVHJhbnNmb3JtRGlydHkpLHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHl8fCh0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5PW4uaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkpO2xldCByPSEhdGhpcy5yZXN1bWluZ0Zyb218fHRoaXMhPT1uO2lmKCEoZXx8ciYmdGhpcy5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eXx8dGhpcy5pc1Byb2plY3Rpb25EaXJ0eXx8KHQ9dGhpcy5wYXJlbnQpIT1udWxsJiZ0LmlzUHJvamVjdGlvbkRpcnR5fHx0aGlzLmF0dGVtcHRUb1Jlc29sdmVSZWxhdGl2ZVRhcmdldCkpcmV0dXJuO2xldHtsYXlvdXQ6aSxsYXlvdXRJZDphfT10aGlzLm9wdGlvbnM7aWYoISghdGhpcy5sYXlvdXR8fCEoaXx8YSkpKXtpZih0aGlzLnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdD1vLnRpbWVzdGFtcCwhdGhpcy50YXJnZXREZWx0YSYmIXRoaXMucmVsYXRpdmVUYXJnZXQpe2xldCBlPXRoaXMuZ2V0Q2xvc2VzdFByb2plY3RpbmdQYXJlbnQoKTtlJiZlLmxheW91dCYmdGhpcy5hbmltYXRpb25Qcm9ncmVzcyE9PTE/KHRoaXMucmVsYXRpdmVQYXJlbnQ9ZSx0aGlzLmZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKSx0aGlzLnJlbGF0aXZlVGFyZ2V0PXEoKSx0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luPXEoKSxodCh0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luLHRoaXMubGF5b3V0LmxheW91dEJveCxlLmxheW91dC5sYXlvdXRCb3gpLFoodGhpcy5yZWxhdGl2ZVRhcmdldCx0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luKSk6dGhpcy5yZWxhdGl2ZVBhcmVudD10aGlzLnJlbGF0aXZlVGFyZ2V0PXZvaWQgMH1pZighKCF0aGlzLnJlbGF0aXZlVGFyZ2V0JiYhdGhpcy50YXJnZXREZWx0YSkpe2lmKHRoaXMudGFyZ2V0fHwodGhpcy50YXJnZXQ9cSgpLHRoaXMudGFyZ2V0V2l0aFRyYW5zZm9ybXM9cSgpKSx0aGlzLnJlbGF0aXZlVGFyZ2V0JiZ0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luJiZ0aGlzLnJlbGF0aXZlUGFyZW50JiZ0aGlzLnJlbGF0aXZlUGFyZW50LnRhcmdldD8odGhpcy5mb3JjZVJlbGF0aXZlUGFyZW50VG9SZXNvbHZlVGFyZ2V0KCkscHQodGhpcy50YXJnZXQsdGhpcy5yZWxhdGl2ZVRhcmdldCx0aGlzLnJlbGF0aXZlUGFyZW50LnRhcmdldCkpOnRoaXMudGFyZ2V0RGVsdGE/KHRoaXMucmVzdW1pbmdGcm9tP3RoaXMudGFyZ2V0PXRoaXMuYXBwbHlUcmFuc2Zvcm0odGhpcy5sYXlvdXQubGF5b3V0Qm94KTpaKHRoaXMudGFyZ2V0LHRoaXMubGF5b3V0LmxheW91dEJveCksbmUodGhpcy50YXJnZXQsdGhpcy50YXJnZXREZWx0YSkpOloodGhpcy50YXJnZXQsdGhpcy5sYXlvdXQubGF5b3V0Qm94KSx0aGlzLmF0dGVtcHRUb1Jlc29sdmVSZWxhdGl2ZVRhcmdldCl7dGhpcy5hdHRlbXB0VG9SZXNvbHZlUmVsYXRpdmVUYXJnZXQ9ITE7bGV0IGU9dGhpcy5nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpO2UmJiEhZS5yZXN1bWluZ0Zyb209PSEhdGhpcy5yZXN1bWluZ0Zyb20mJiFlLm9wdGlvbnMubGF5b3V0U2Nyb2xsJiZlLnRhcmdldCYmdGhpcy5hbmltYXRpb25Qcm9ncmVzcyE9PTE/KHRoaXMucmVsYXRpdmVQYXJlbnQ9ZSx0aGlzLmZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKSx0aGlzLnJlbGF0aXZlVGFyZ2V0PXEoKSx0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luPXEoKSxodCh0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luLHRoaXMudGFyZ2V0LGUudGFyZ2V0KSxaKHRoaXMucmVsYXRpdmVUYXJnZXQsdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbikpOnRoaXMucmVsYXRpdmVQYXJlbnQ9dGhpcy5yZWxhdGl2ZVRhcmdldD12b2lkIDB9eG4ucmVzb2x2ZWRUYXJnZXREZWx0YXMrK319fWdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCl7aWYoISghdGhpcy5wYXJlbnR8fHBlKHRoaXMucGFyZW50LmxhdGVzdFZhbHVlcyl8fF8odGhpcy5wYXJlbnQubGF0ZXN0VmFsdWVzKSkpcmV0dXJuIHRoaXMucGFyZW50LmlzUHJvamVjdGluZygpP3RoaXMucGFyZW50OnRoaXMucGFyZW50LmdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCl9aXNQcm9qZWN0aW5nKCl7cmV0dXJuISEoKHRoaXMucmVsYXRpdmVUYXJnZXR8fHRoaXMudGFyZ2V0RGVsdGF8fHRoaXMub3B0aW9ucy5sYXlvdXRSb290KSYmdGhpcy5sYXlvdXQpfWNhbGNQcm9qZWN0aW9uKCl7dmFyIGU7bGV0IHQ9dGhpcy5nZXRMZWFkKCksbj0hIXRoaXMucmVzdW1pbmdGcm9tfHx0aGlzIT09dCxyPSEwO2lmKCh0aGlzLmlzUHJvamVjdGlvbkRpcnR5fHwoZT10aGlzLnBhcmVudCkhPW51bGwmJmUuaXNQcm9qZWN0aW9uRGlydHkpJiYocj0hMSksbiYmKHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHl8fHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eSkmJihyPSExKSx0aGlzLnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdD09PW8udGltZXN0YW1wJiYocj0hMSkscilyZXR1cm47bGV0e2xheW91dDppLGxheW91dElkOmF9PXRoaXMub3B0aW9ucztpZih0aGlzLmlzVHJlZUFuaW1hdGluZz0hISh0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaXNUcmVlQW5pbWF0aW5nfHx0aGlzLmN1cnJlbnRBbmltYXRpb258fHRoaXMucGVuZGluZ0FuaW1hdGlvbiksdGhpcy5pc1RyZWVBbmltYXRpbmd8fCh0aGlzLnRhcmdldERlbHRhPXRoaXMucmVsYXRpdmVUYXJnZXQ9dm9pZCAwKSwhdGhpcy5sYXlvdXR8fCEoaXx8YSkpcmV0dXJuO1oodGhpcy5sYXlvdXRDb3JyZWN0ZWQsdGhpcy5sYXlvdXQubGF5b3V0Qm94KTtsZXQgcz10aGlzLnRyZWVTY2FsZS54LGM9dGhpcy50cmVlU2NhbGUueTtEKHRoaXMubGF5b3V0Q29ycmVjdGVkLHRoaXMudHJlZVNjYWxlLHRoaXMucGF0aCxuKSx0LmxheW91dCYmIXQudGFyZ2V0JiYodGhpcy50cmVlU2NhbGUueCE9PTF8fHRoaXMudHJlZVNjYWxlLnkhPT0xKSYmKHQudGFyZ2V0PXQubGF5b3V0LmxheW91dEJveCk7bGV0e3RhcmdldDpsfT10O2lmKCFsKXt0aGlzLnByb2plY3Rpb25UcmFuc2Zvcm0mJih0aGlzLnByb2plY3Rpb25EZWx0YT1DKCksdGhpcy5wcm9qZWN0aW9uVHJhbnNmb3JtPWBub25lYCx0aGlzLnNjaGVkdWxlUmVuZGVyKCkpO3JldHVybn10aGlzLnByb2plY3Rpb25EZWx0YXx8KHRoaXMucHJvamVjdGlvbkRlbHRhPUMoKSx0aGlzLnByb2plY3Rpb25EZWx0YVdpdGhUcmFuc2Zvcm09QygpKTtsZXQgdT10aGlzLnByb2plY3Rpb25UcmFuc2Zvcm07ZHQodGhpcy5wcm9qZWN0aW9uRGVsdGEsdGhpcy5sYXlvdXRDb3JyZWN0ZWQsbCx0aGlzLmxhdGVzdFZhbHVlcyksdGhpcy5wcm9qZWN0aW9uVHJhbnNmb3JtPWZuKHRoaXMucHJvamVjdGlvbkRlbHRhLHRoaXMudHJlZVNjYWxlKSwodGhpcy5wcm9qZWN0aW9uVHJhbnNmb3JtIT09dXx8dGhpcy50cmVlU2NhbGUueCE9PXN8fHRoaXMudHJlZVNjYWxlLnkhPT1jKSYmKHRoaXMuaGFzUHJvamVjdGVkPSEwLHRoaXMuc2NoZWR1bGVSZW5kZXIoKSx0aGlzLm5vdGlmeUxpc3RlbmVycyhgcHJvamVjdGlvblVwZGF0ZWAsbCkpLHhuLnJlY2FsY3VsYXRlZFByb2plY3Rpb24rK31oaWRlKCl7dGhpcy5pc1Zpc2libGU9ITF9c2hvdygpe3RoaXMuaXNWaXNpYmxlPSEwfXNjaGVkdWxlUmVuZGVyKGU9ITApe2lmKHRoaXMub3B0aW9ucy5zY2hlZHVsZVJlbmRlciYmdGhpcy5vcHRpb25zLnNjaGVkdWxlUmVuZGVyKCksZSl7bGV0IGU9dGhpcy5nZXRTdGFjaygpO2UmJmUuc2NoZWR1bGVSZW5kZXIoKX10aGlzLnJlc3VtaW5nRnJvbSYmIXRoaXMucmVzdW1pbmdGcm9tLmluc3RhbmNlJiYodGhpcy5yZXN1bWluZ0Zyb209dm9pZCAwKX1zZXRBbmltYXRpb25PcmlnaW4oZSx0PSExKXtsZXQgbj10aGlzLnNuYXBzaG90LHI9bj9uLmxhdGVzdFZhbHVlczp7fSxpPXsuLi50aGlzLmxhdGVzdFZhbHVlc30sYT1DKCk7KCF0aGlzLnJlbGF0aXZlUGFyZW50fHwhdGhpcy5yZWxhdGl2ZVBhcmVudC5vcHRpb25zLmxheW91dFJvb3QpJiYodGhpcy5yZWxhdGl2ZVRhcmdldD10aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luPXZvaWQgMCksdGhpcy5hdHRlbXB0VG9SZXNvbHZlUmVsYXRpdmVUYXJnZXQ9IXQ7bGV0IG89cSgpLHM9KG4/bi5zb3VyY2U6dm9pZCAwKSE9PSh0aGlzLmxheW91dD90aGlzLmxheW91dC5zb3VyY2U6dm9pZCAwKSxjPXRoaXMuZ2V0U3RhY2soKSxsPSFjfHxjLm1lbWJlcnMubGVuZ3RoPD0xLHU9ISEocyYmIWwmJnRoaXMub3B0aW9ucy5jcm9zc2ZhZGU9PT0hMCYmIXRoaXMucGF0aC5zb21lKHpuKSk7dGhpcy5hbmltYXRpb25Qcm9ncmVzcz0wO2xldCBkO3RoaXMubWl4VGFyZ2V0RGVsdGE9dD0+e2xldCBuPXQvMWUzO0luKGEueCxlLngsbiksSW4oYS55LGUueSxuKSx0aGlzLnNldFRhcmdldERlbHRhKGEpLHRoaXMucmVsYXRpdmVUYXJnZXQmJnRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4mJnRoaXMubGF5b3V0JiZ0aGlzLnJlbGF0aXZlUGFyZW50JiZ0aGlzLnJlbGF0aXZlUGFyZW50LmxheW91dCYmKGh0KG8sdGhpcy5sYXlvdXQubGF5b3V0Qm94LHRoaXMucmVsYXRpdmVQYXJlbnQubGF5b3V0LmxheW91dEJveCksUm4odGhpcy5yZWxhdGl2ZVRhcmdldCx0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luLG8sbiksZCYmY24odGhpcy5yZWxhdGl2ZVRhcmdldCxkKSYmKHRoaXMuaXNQcm9qZWN0aW9uRGlydHk9ITEpLGR8fChkPXEoKSksWihkLHRoaXMucmVsYXRpdmVUYXJnZXQpKSxzJiYodGhpcy5hbmltYXRpb25WYWx1ZXM9aSxxdChpLHIsdGhpcy5sYXRlc3RWYWx1ZXMsbix1LGwpKSx0aGlzLnJvb3Quc2NoZWR1bGVVcGRhdGVQcm9qZWN0aW9uKCksdGhpcy5zY2hlZHVsZVJlbmRlcigpLHRoaXMuYW5pbWF0aW9uUHJvZ3Jlc3M9bn0sdGhpcy5taXhUYXJnZXREZWx0YSh0aGlzLm9wdGlvbnMubGF5b3V0Um9vdD8xZTM6MCl9c3RhcnRBbmltYXRpb24odCl7dGhpcy5ub3RpZnlMaXN0ZW5lcnMoYGFuaW1hdGlvblN0YXJ0YCksdGhpcy5jdXJyZW50QW5pbWF0aW9uJiZ0aGlzLmN1cnJlbnRBbmltYXRpb24uc3RvcCgpLHRoaXMucmVzdW1pbmdGcm9tJiZ0aGlzLnJlc3VtaW5nRnJvbS5jdXJyZW50QW5pbWF0aW9uJiZ0aGlzLnJlc3VtaW5nRnJvbS5jdXJyZW50QW5pbWF0aW9uLnN0b3AoKSx0aGlzLnBlbmRpbmdBbmltYXRpb24mJihzZSh0aGlzLnBlbmRpbmdBbmltYXRpb24pLHRoaXMucGVuZGluZ0FuaW1hdGlvbj12b2lkIDApLHRoaXMucGVuZGluZ0FuaW1hdGlvbj1XLnVwZGF0ZSgoKT0+e0l0Lmhhc0FuaW1hdGVkU2luY2VSZXNpemU9ITAsdGhpcy5jdXJyZW50QW5pbWF0aW9uPWUoMCx5bix7Li4udCxvblVwZGF0ZTplPT57dGhpcy5taXhUYXJnZXREZWx0YShlKSx0Lm9uVXBkYXRlJiZ0Lm9uVXBkYXRlKGUpfSxvbkNvbXBsZXRlOigpPT57dC5vbkNvbXBsZXRlJiZ0Lm9uQ29tcGxldGUoKSx0aGlzLmNvbXBsZXRlQW5pbWF0aW9uKCl9fSksdGhpcy5yZXN1bWluZ0Zyb20mJih0aGlzLnJlc3VtaW5nRnJvbS5jdXJyZW50QW5pbWF0aW9uPXRoaXMuY3VycmVudEFuaW1hdGlvbiksdGhpcy5wZW5kaW5nQW5pbWF0aW9uPXZvaWQgMH0pfWNvbXBsZXRlQW5pbWF0aW9uKCl7dGhpcy5yZXN1bWluZ0Zyb20mJih0aGlzLnJlc3VtaW5nRnJvbS5jdXJyZW50QW5pbWF0aW9uPXZvaWQgMCx0aGlzLnJlc3VtaW5nRnJvbS5wcmVzZXJ2ZU9wYWNpdHk9dm9pZCAwKTtsZXQgZT10aGlzLmdldFN0YWNrKCk7ZSYmZS5leGl0QW5pbWF0aW9uQ29tcGxldGUoKSx0aGlzLnJlc3VtaW5nRnJvbT10aGlzLmN1cnJlbnRBbmltYXRpb249dGhpcy5hbmltYXRpb25WYWx1ZXM9dm9pZCAwLHRoaXMubm90aWZ5TGlzdGVuZXJzKGBhbmltYXRpb25Db21wbGV0ZWApfWZpbmlzaEFuaW1hdGlvbigpe3RoaXMuY3VycmVudEFuaW1hdGlvbiYmKHRoaXMubWl4VGFyZ2V0RGVsdGEmJnRoaXMubWl4VGFyZ2V0RGVsdGEoeW4pLHRoaXMuY3VycmVudEFuaW1hdGlvbi5zdG9wKCkpLHRoaXMuY29tcGxldGVBbmltYXRpb24oKX1hcHBseVRyYW5zZm9ybXNUb1RhcmdldCgpe2xldCBlPXRoaXMuZ2V0TGVhZCgpLHt0YXJnZXRXaXRoVHJhbnNmb3Jtczp0LHRhcmdldDpuLGxheW91dDpyLGxhdGVzdFZhbHVlczppfT1lO2lmKCEoIXR8fCFufHwhcikpe2lmKHRoaXMhPT1lJiZ0aGlzLmxheW91dCYmciYmR24odGhpcy5vcHRpb25zLmFuaW1hdGlvblR5cGUsdGhpcy5sYXlvdXQubGF5b3V0Qm94LHIubGF5b3V0Qm94KSl7bj10aGlzLnRhcmdldHx8cSgpO2xldCB0PUoodGhpcy5sYXlvdXQubGF5b3V0Qm94LngpO24ueC5taW49ZS50YXJnZXQueC5taW4sbi54Lm1heD1uLngubWluK3Q7bGV0IHI9Sih0aGlzLmxheW91dC5sYXlvdXRCb3gueSk7bi55Lm1pbj1lLnRhcmdldC55Lm1pbixuLnkubWF4PW4ueS5taW4rcn1aKHQsbikscyh0LGkpLGR0KHRoaXMucHJvamVjdGlvbkRlbHRhV2l0aFRyYW5zZm9ybSx0aGlzLmxheW91dENvcnJlY3RlZCx0LGkpfX1yZWdpc3RlclNoYXJlZE5vZGUoZSx0KXt0aGlzLnNoYXJlZE5vZGVzLmhhcyhlKXx8dGhpcy5zaGFyZWROb2Rlcy5zZXQoZSxuZXcgZG4pLHRoaXMuc2hhcmVkTm9kZXMuZ2V0KGUpLmFkZCh0KTtsZXQgbj10Lm9wdGlvbnMuaW5pdGlhbFByb21vdGlvbkNvbmZpZzt0LnByb21vdGUoe3RyYW5zaXRpb246bj9uLnRyYW5zaXRpb246dm9pZCAwLHByZXNlcnZlRm9sbG93T3BhY2l0eTpuJiZuLnNob3VsZFByZXNlcnZlRm9sbG93T3BhY2l0eT9uLnNob3VsZFByZXNlcnZlRm9sbG93T3BhY2l0eSh0KTp2b2lkIDB9KX1pc0xlYWQoKXtsZXQgZT10aGlzLmdldFN0YWNrKCk7cmV0dXJuIGU/ZS5sZWFkPT09dGhpczohMH1nZXRMZWFkKCl7dmFyIGU7bGV0e2xheW91dElkOnR9PXRoaXMub3B0aW9ucztyZXR1cm4gdCYmKChlPXRoaXMuZ2V0U3RhY2soKSk9PW51bGw/dm9pZCAwOmUubGVhZCl8fHRoaXN9Z2V0UHJldkxlYWQoKXt2YXIgZTtsZXR7bGF5b3V0SWQ6dH09dGhpcy5vcHRpb25zO3JldHVybiB0PyhlPXRoaXMuZ2V0U3RhY2soKSk9PW51bGw/dm9pZCAwOmUucHJldkxlYWQ6dm9pZCAwfWdldFN0YWNrKCl7bGV0e2xheW91dElkOmV9PXRoaXMub3B0aW9ucztpZihlKXJldHVybiB0aGlzLnJvb3Quc2hhcmVkTm9kZXMuZ2V0KGUpfXByb21vdGUoe25lZWRzUmVzZXQ6ZSx0cmFuc2l0aW9uOnQscHJlc2VydmVGb2xsb3dPcGFjaXR5Om59PXt9KXtsZXQgcj10aGlzLmdldFN0YWNrKCk7ciYmci5wcm9tb3RlKHRoaXMsbiksZSYmKHRoaXMucHJvamVjdGlvbkRlbHRhPXZvaWQgMCx0aGlzLm5lZWRzUmVzZXQ9ITApLHQmJnRoaXMuc2V0T3B0aW9ucyh7dHJhbnNpdGlvbjp0fSl9cmVsZWdhdGUoKXtsZXQgZT10aGlzLmdldFN0YWNrKCk7cmV0dXJuIGU/ZS5yZWxlZ2F0ZSh0aGlzKTohMX1yZXNldFJvdGF0aW9uKCl7bGV0e3Zpc3VhbEVsZW1lbnQ6ZX09dGhpcy5vcHRpb25zO2lmKCFlKXJldHVybjtsZXQgdD0hMSx7bGF0ZXN0VmFsdWVzOm59PWU7aWYoKG4ucm90YXRlfHxuLnJvdGF0ZVh8fG4ucm90YXRlWXx8bi5yb3RhdGVaKSYmKHQ9ITApLCF0KXJldHVybjtsZXQgcj17fTtmb3IobGV0IHQ9MDt0PF9uLmxlbmd0aDt0Kyspe2xldCBpPWByb3RhdGVgK19uW3RdO25baV0mJihyW2ldPW5baV0sZS5zZXRTdGF0aWNWYWx1ZShpLDApKX1lLnJlbmRlcigpO2ZvcihsZXQgdCBpbiByKWUuc2V0U3RhdGljVmFsdWUodCxyW3RdKTtlLnNjaGVkdWxlUmVuZGVyKCl9Z2V0UHJvamVjdGlvblN0eWxlcyhlKXtpZighdGhpcy5pbnN0YW5jZXx8dGhpcy5pc1NWRylyZXR1cm47aWYoIXRoaXMuaXNWaXNpYmxlKXJldHVybiB2bjtsZXQgdD17dmlzaWJpbGl0eTpgYH0sbj10aGlzLmdldFRyYW5zZm9ybVRlbXBsYXRlKCk7aWYodGhpcy5uZWVkc1Jlc2V0KXJldHVybiB0aGlzLm5lZWRzUmVzZXQ9ITEsdC5vcGFjaXR5PWBgLHQucG9pbnRlckV2ZW50cz1hZShlPT1udWxsP3ZvaWQgMDplLnBvaW50ZXJFdmVudHMpfHxgYCx0LnRyYW5zZm9ybT1uP24odGhpcy5sYXRlc3RWYWx1ZXMsYGApOmBub25lYCx0O2xldCByPXRoaXMuZ2V0TGVhZCgpO2lmKCF0aGlzLnByb2plY3Rpb25EZWx0YXx8IXRoaXMubGF5b3V0fHwhci50YXJnZXQpe2xldCB0PXt9O3JldHVybiB0aGlzLm9wdGlvbnMubGF5b3V0SWQmJih0Lm9wYWNpdHk9dGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eT09PXZvaWQgMD8xOnRoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHksdC5wb2ludGVyRXZlbnRzPWFlKGU9PW51bGw/dm9pZCAwOmUucG9pbnRlckV2ZW50cyl8fGBgKSx0aGlzLmhhc1Byb2plY3RlZCYmIUEodGhpcy5sYXRlc3RWYWx1ZXMpJiYodC50cmFuc2Zvcm09bj9uKHt9LGBgKTpgbm9uZWAsdGhpcy5oYXNQcm9qZWN0ZWQ9ITEpLHR9bGV0IGk9ci5hbmltYXRpb25WYWx1ZXN8fHIubGF0ZXN0VmFsdWVzO3RoaXMuYXBwbHlUcmFuc2Zvcm1zVG9UYXJnZXQoKSx0LnRyYW5zZm9ybT1mbih0aGlzLnByb2plY3Rpb25EZWx0YVdpdGhUcmFuc2Zvcm0sdGhpcy50cmVlU2NhbGUsaSksbiYmKHQudHJhbnNmb3JtPW4oaSx0LnRyYW5zZm9ybSkpO2xldHt4OmEseTpvfT10aGlzLnByb2plY3Rpb25EZWx0YTt0LnRyYW5zZm9ybU9yaWdpbj1gJHthLm9yaWdpbioxMDB9JSAke28ub3JpZ2luKjEwMH0lIDBgLHIuYW5pbWF0aW9uVmFsdWVzP3Qub3BhY2l0eT1yPT09dGhpcz9pLm9wYWNpdHk/P3RoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHk/PzE6dGhpcy5wcmVzZXJ2ZU9wYWNpdHk/dGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eTppLm9wYWNpdHlFeGl0OnQub3BhY2l0eT1yPT09dGhpcz9pLm9wYWNpdHk9PT12b2lkIDA/YGA6aS5vcGFjaXR5Omkub3BhY2l0eUV4aXQ9PT12b2lkIDA/MDppLm9wYWNpdHlFeGl0O2ZvcihsZXQgZSBpbiBnZSl7aWYoaVtlXT09PXZvaWQgMCljb250aW51ZTtsZXR7Y29ycmVjdDpuLGFwcGx5VG86YX09Z2VbZV0sbz10LnRyYW5zZm9ybT09PWBub25lYD9pW2VdOm4oaVtlXSxyKTtpZihhKXtsZXQgZT1hLmxlbmd0aDtmb3IobGV0IG49MDtuPGU7bisrKXRbYVtuXV09b31lbHNlIHRbZV09b31yZXR1cm4gdGhpcy5vcHRpb25zLmxheW91dElkJiYodC5wb2ludGVyRXZlbnRzPXI9PT10aGlzP2FlKGU9PW51bGw/dm9pZCAwOmUucG9pbnRlckV2ZW50cyl8fGBgOmBub25lYCksdH1jbGVhclNuYXBzaG90KCl7dGhpcy5yZXN1bWVGcm9tPXRoaXMuc25hcHNob3Q9dm9pZCAwfXJlc2V0VHJlZSgpe3RoaXMucm9vdC5ub2Rlcy5mb3JFYWNoKGU9Pnt2YXIgdDtyZXR1cm4odD1lLmN1cnJlbnRBbmltYXRpb24pPT1udWxsP3ZvaWQgMDp0LnN0b3AoKX0pLHRoaXMucm9vdC5ub2Rlcy5mb3JFYWNoKE9uKSx0aGlzLnJvb3Quc2hhcmVkTm9kZXMuY2xlYXIoKX19fWZ1bmN0aW9uIENuKGUpe2UudXBkYXRlTGF5b3V0KCl9ZnVuY3Rpb24gd24oZSl7dmFyIHQ7bGV0IG49KCh0PWUucmVzdW1lRnJvbSk9PW51bGw/dm9pZCAwOnQuc25hcHNob3QpfHxlLnNuYXBzaG90O2lmKGUuaXNMZWFkKCkmJmUubGF5b3V0JiZuJiZlLmhhc0xpc3RlbmVycyhgZGlkVXBkYXRlYCkpe2xldHtsYXlvdXRCb3g6dCxtZWFzdXJlZEJveDpyfT1lLmxheW91dCx7YW5pbWF0aW9uVHlwZTppfT1lLm9wdGlvbnMsYT1uLnNvdXJjZSE9PWUubGF5b3V0LnNvdXJjZTtpPT09YHNpemVgP1koZT0+e2xldCByPWE/bi5tZWFzdXJlZEJveFtlXTpuLmxheW91dEJveFtlXSxpPUoocik7ci5taW49dFtlXS5taW4sci5tYXg9ci5taW4raX0pOkduKGksbi5sYXlvdXRCb3gsdCkmJlkocj0+e2xldCBpPWE/bi5tZWFzdXJlZEJveFtyXTpuLmxheW91dEJveFtyXSxvPUoodFtyXSk7aS5tYXg9aS5taW4rbyxlLnJlbGF0aXZlVGFyZ2V0JiYhZS5jdXJyZW50QW5pbWF0aW9uJiYoZS5pc1Byb2plY3Rpb25EaXJ0eT0hMCxlLnJlbGF0aXZlVGFyZ2V0W3JdLm1heD1lLnJlbGF0aXZlVGFyZ2V0W3JdLm1pbitvKX0pO2xldCBvPUMoKTtkdChvLHQsbi5sYXlvdXRCb3gpO2xldCBzPUMoKTthP2R0KHMsZS5hcHBseVRyYW5zZm9ybShyLCEwKSxuLm1lYXN1cmVkQm94KTpkdChzLHQsbi5sYXlvdXRCb3gpO2xldCBjPSFzbihvKSxsPSExO2lmKCFlLnJlc3VtZUZyb20pe2xldCByPWUuZ2V0Q2xvc2VzdFByb2plY3RpbmdQYXJlbnQoKTtpZihyJiYhci5yZXN1bWVGcm9tKXtsZXR7c25hcHNob3Q6aSxsYXlvdXQ6YX09cjtpZihpJiZhKXtsZXQgbz1xKCk7aHQobyxuLmxheW91dEJveCxpLmxheW91dEJveCk7bGV0IHM9cSgpO2h0KHMsdCxhLmxheW91dEJveCksbG4obyxzKXx8KGw9ITApLHIub3B0aW9ucy5sYXlvdXRSb290JiYoZS5yZWxhdGl2ZVRhcmdldD1zLGUucmVsYXRpdmVUYXJnZXRPcmlnaW49byxlLnJlbGF0aXZlUGFyZW50PXIpfX19ZS5ub3RpZnlMaXN0ZW5lcnMoYGRpZFVwZGF0ZWAse2xheW91dDp0LHNuYXBzaG90Om4sZGVsdGE6cyxsYXlvdXREZWx0YTpvLGhhc0xheW91dENoYW5nZWQ6YyxoYXNSZWxhdGl2ZVRhcmdldENoYW5nZWQ6bH0pfWVsc2UgaWYoZS5pc0xlYWQoKSl7bGV0e29uRXhpdENvbXBsZXRlOnR9PWUub3B0aW9uczt0JiZ0KCl9ZS5vcHRpb25zLnRyYW5zaXRpb249dm9pZCAwfWZ1bmN0aW9uIFRuKGUpe3huLnRvdGFsTm9kZXMrKyxlLnBhcmVudCYmKGUuaXNQcm9qZWN0aW5nKCl8fChlLmlzUHJvamVjdGlvbkRpcnR5PWUucGFyZW50LmlzUHJvamVjdGlvbkRpcnR5KSxlLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5fHwoZS5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eT0hIShlLmlzUHJvamVjdGlvbkRpcnR5fHxlLnBhcmVudC5pc1Byb2plY3Rpb25EaXJ0eXx8ZS5wYXJlbnQuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkpKSxlLmlzVHJhbnNmb3JtRGlydHl8fChlLmlzVHJhbnNmb3JtRGlydHk9ZS5wYXJlbnQuaXNUcmFuc2Zvcm1EaXJ0eSkpfWZ1bmN0aW9uIEVuKGUpe2UuaXNQcm9qZWN0aW9uRGlydHk9ZS5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eT1lLmlzVHJhbnNmb3JtRGlydHk9ITF9ZnVuY3Rpb24gRG4oZSl7ZS5jbGVhclNuYXBzaG90KCl9ZnVuY3Rpb24gT24oZSl7ZS5jbGVhck1lYXN1cmVtZW50cygpfWZ1bmN0aW9uIGtuKGUpe2UuaXNMYXlvdXREaXJ0eT0hMX1mdW5jdGlvbiBBbihlKXtsZXR7dmlzdWFsRWxlbWVudDp0fT1lLm9wdGlvbnM7dCYmdC5nZXRQcm9wcygpLm9uQmVmb3JlTGF5b3V0TWVhc3VyZSYmdC5ub3RpZnkoYEJlZm9yZUxheW91dE1lYXN1cmVgKSxlLnJlc2V0VHJhbnNmb3JtKCl9ZnVuY3Rpb24gam4oZSl7ZS5maW5pc2hBbmltYXRpb24oKSxlLnRhcmdldERlbHRhPWUucmVsYXRpdmVUYXJnZXQ9ZS50YXJnZXQ9dm9pZCAwLGUuaXNQcm9qZWN0aW9uRGlydHk9ITB9ZnVuY3Rpb24gTW4oZSl7ZS5yZXNvbHZlVGFyZ2V0RGVsdGEoKX1mdW5jdGlvbiBObihlKXtlLmNhbGNQcm9qZWN0aW9uKCl9ZnVuY3Rpb24gUG4oZSl7ZS5yZXNldFJvdGF0aW9uKCl9ZnVuY3Rpb24gRm4oZSl7ZS5yZW1vdmVMZWFkU25hcHNob3QoKX1mdW5jdGlvbiBJbihlLHQsbil7ZS50cmFuc2xhdGU9Syh0LnRyYW5zbGF0ZSwwLG4pLGUuc2NhbGU9Syh0LnNjYWxlLDEsbiksZS5vcmlnaW49dC5vcmlnaW4sZS5vcmlnaW5Qb2ludD10Lm9yaWdpblBvaW50fWZ1bmN0aW9uIExuKGUsdCxuLHIpe2UubWluPUsodC5taW4sbi5taW4sciksZS5tYXg9Syh0Lm1heCxuLm1heCxyKX1mdW5jdGlvbiBSbihlLHQsbixyKXtMbihlLngsdC54LG4ueCxyKSxMbihlLnksdC55LG4ueSxyKX1mdW5jdGlvbiB6bihlKXtyZXR1cm4gZS5hbmltYXRpb25WYWx1ZXMmJmUuYW5pbWF0aW9uVmFsdWVzLm9wYWNpdHlFeGl0IT09dm9pZCAwfXZhciBCbj17ZHVyYXRpb246LjQ1LGVhc2U6Wy40LDAsLjEsMV19LFZuPWU9PnR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZSksSG49Vm4oYGFwcGxld2Via2l0L2ApJiYhVm4oYGNocm9tZS9gKT9NYXRoLnJvdW5kOmllO2Z1bmN0aW9uIFVuKGUpe2UubWluPUhuKGUubWluKSxlLm1heD1IbihlLm1heCl9ZnVuY3Rpb24gV24oZSl7VW4oZS54KSxVbihlLnkpfWZ1bmN0aW9uIEduKGUsdCxuKXtyZXR1cm4gZT09PWBwb3NpdGlvbmB8fGU9PT1gcHJlc2VydmUtYXNwZWN0YCYmIWx0KHVuKHQpLHVuKG4pLC4yKX12YXIgS249U24oe2F0dGFjaFJlc2l6ZUxpc3RlbmVyOihlLHQpPT5tKGUsYHJlc2l6ZWAsdCksbWVhc3VyZVNjcm9sbDooKT0+KHt4OmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fHxkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQseTpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcH0pLGNoZWNrSXNTY3JvbGxSb290OigpPT4hMH0pLHFuPXtjdXJyZW50OnZvaWQgMH0sSm49U24oe21lYXN1cmVTY3JvbGw6ZT0+KHt4OmUuc2Nyb2xsTGVmdCx5OmUuc2Nyb2xsVG9wfSksZGVmYXVsdFBhcmVudDooKT0+e2lmKCFxbi5jdXJyZW50KXtsZXQgZT1uZXcgS24oe30pO2UubW91bnQod2luZG93KSxlLnNldE9wdGlvbnMoe2xheW91dFNjcm9sbDohMH0pLHFuLmN1cnJlbnQ9ZX1yZXR1cm4gcW4uY3VycmVudH0scmVzZXRUcmFuc2Zvcm06KGUsdCk9PntlLnN0eWxlLnRyYW5zZm9ybT10PT09dm9pZCAwP2Bub25lYDp0fSxjaGVja0lzU2Nyb2xsUm9vdDplPT53aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKS5wb3NpdGlvbj09PWBmaXhlZGB9KSxZbj17cGFuOntGZWF0dXJlOlB0fSxkcmFnOntGZWF0dXJlOk10LFByb2plY3Rpb25Ob2RlOkpuLE1lYXN1cmVMYXlvdXQ6VnR9fSxYbj17bGF5b3V0OntQcm9qZWN0aW9uTm9kZTpKbixNZWFzdXJlTGF5b3V0OlZ0fX0sWm49ey4uLmosLi4uWGUsLi4uWW4sLi4uWG59LFFuPXYoKGUsdCk9PmYoZSx0LFpuLFQpKSwkbj1lPT5lJiZ0eXBlb2YgZT09YG9iamVjdGAmJmUubWl4LGVyPWU9PiRuKGUpP2UubWl4OnZvaWQgMDtmdW5jdGlvbiB0ciguLi5lKXtsZXQgdD0hQXJyYXkuaXNBcnJheShlWzBdKSxuPXQ/MDotMSxyPWVbMCtuXSxpPWVbMStuXSxhPWVbMituXSxvPWVbMytuXSxzPUdlKGksYSx7bWl4ZXI6ZXIoYVswXSksLi4ub30pO3JldHVybiB0P3Mocik6c31mdW5jdGlvbiBucihlLG4pe2xldCByPXQobigpKSxpPSgpPT5yLnNldChuKCkpO3JldHVybiBpKCksdGUoKCk9PntsZXQgdD0oKT0+Vy51cGRhdGUoaSwhMSwhMCksbj1lLm1hcChlPT5lLm9uKGBjaGFuZ2VgLHQpKTtyZXR1cm4oKT0+e24uZm9yRWFjaChlPT5lKCkpLHNlKGkpfX0pLHJ9ZnVuY3Rpb24gcnIoZSl7Ti5jdXJyZW50PVtdLGUoKTtsZXQgdD1ucihOLmN1cnJlbnQsZSk7cmV0dXJuIE4uY3VycmVudD12b2lkIDAsdH1mdW5jdGlvbiBpcihlLHQsbixyKXtpZih0eXBlb2YgZT09YGZ1bmN0aW9uYClyZXR1cm4gcnIoZSk7bGV0IGk9dHlwZW9mIHQ9PWBmdW5jdGlvbmA/dDp0cih0LG4scik7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/YXIoZSxpKTphcihbZV0sKFtlXSk9PmkoZSkpfWZ1bmN0aW9uIGFyKGUsdCl7bGV0IG49RSgoKT0+W10pO3JldHVybiBucihlLCgpPT57bi5sZW5ndGg9MDtsZXQgcj1lLmxlbmd0aDtmb3IobGV0IHQ9MDt0PHI7dCsrKW5bdF09ZVt0XS5nZXQoKTtyZXR1cm4gdChuKX0pfXZhciBvcj17Li4uZCwuLi5ZbiwuLi5Ybn0sc3I9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmNvbXBvbmVudENvbnRyb2xzPW5ldyBTZXR9c3Vic2NyaWJlKGUpe3JldHVybiB0aGlzLmNvbXBvbmVudENvbnRyb2xzLmFkZChlKSwoKT0+dGhpcy5jb21wb25lbnRDb250cm9scy5kZWxldGUoZSl9c3RhcnQoZSx0KXt0aGlzLmNvbXBvbmVudENvbnRyb2xzLmZvckVhY2gobj0+e24uc3RhcnQoZS5uYXRpdmVFdmVudHx8ZSx0KX0pfX0sY3I9KCk9Pm5ldyBzcjtmdW5jdGlvbiBscigpe3JldHVybiBFKGNyKX12YXIgUT1FZSgpLHVyPWU9PntsZXR7ZW5hYmxlZDp0LGludGVydmFsOm4sb25TdGFydDpyLG9uU3RvcDppfT1lLGE9QmUoKSxbbyxzXT0oMCxYLnVzZVN0YXRlKSghMSksW2MsbF09KDAsWC51c2VTdGF0ZSkoITEpLHU9KDAsWC51c2VSZWYpKCExKSxkPSgwLFgudXNlUmVmKSghMSksZj0oMCxYLnVzZVJlZikoITEpLHA9KDAsWC51c2VSZWYpKG5ldyBTZXQpLG09KDAsWC51c2VDYWxsYmFjaykoKCk9PntbLi4ucC5jdXJyZW50XS5mb3JFYWNoKGU9PmUoKSl9LFtdKSxoPSgwLFgudXNlQ2FsbGJhY2spKGU9PihwLmN1cnJlbnQuYWRkKGUpLCgpPT57cC5jdXJyZW50LmRlbGV0ZShlKX0pLFtdKSxnPXQmJiFvJiYhYyxfPSgwLFgudXNlQ2FsbGJhY2spKCgpPT5hLmdldFJlbWFpbmluZ1RpbWUoKSxbYV0pLHY9KDAsWC51c2VDYWxsYmFjaykoZT0+eyF0fHxmLmN1cnJlbnR8fGQuY3VycmVudHx8KGU/YS5yZXN1bWUoKTphLnN0YXJ0KCgpPT57dS5jdXJyZW50JiZtKCl9LG4pLHUuY3VycmVudHx8KHUuY3VycmVudD0hMCxyPT1udWxsfHxyKCkpKX0sW3QsbixhLHIsbV0pLHk9KDAsWC51c2VDYWxsYmFjaykoKCk9PntmLmN1cnJlbnQ9ITEscyghMSksIWQuY3VycmVudCYmdCYmdighMSl9LFt0LHZdKSxiPSgwLFgudXNlQ2FsbGJhY2spKCgpPT57YS5wYXVzZSgpLGYuY3VycmVudD0hMCxzKCEwKSx1LmN1cnJlbnQmJih1LmN1cnJlbnQ9ITEsaT09bnVsbHx8aSgpKX0sW2EsaV0pLHg9KDAsWC51c2VDYWxsYmFjaykoKCk9PntmLmN1cnJlbnQ/eSgpOmIoKX0sW3ksYl0pLFM9KDAsWC51c2VDYWxsYmFjaykoKCk9PnthLnJlc2V0KCksYS5zdGFydCgoKT0+e3UuY3VycmVudCYmbSgpfSxuKSxkLmN1cnJlbnQmJmEucGF1c2UoKX0sW2EsbixtXSksQz0oMCxYLnVzZUNhbGxiYWNrKSgoKT0+e3UuY3VycmVudCYmKGEucGF1c2UoKSxkLmN1cnJlbnQ9ITAsbCghMCkpfSxbYV0pLGVlPSgwLFgudXNlQ2FsbGJhY2spKCgpPT57Zi5jdXJyZW50fHwoZC5jdXJyZW50PSExLGwoITEpLHQmJnYoYS5nZXRSZW1haW5pbmdUaW1lKCk+MCkpfSxbdCxhLHZdKTtyZXR1cm4oMCxYLnVzZUVmZmVjdCkoKCk9Pnt0JiYhZi5jdXJyZW50JiYhZC5jdXJyZW50JiYodS5jdXJyZW50fHx2KCExKSksdS5jdXJyZW50PWd9LFt0LGcsdl0pLCgwLFgudXNlRWZmZWN0KSgoKT0+KCk9PnthLmNsZWFyKCl9LFthXSksKDAsWC51c2VNZW1vKSgoKT0+KHtpc1BsYXlpbmc6Zyxpc1N0b3BwZWQ6byxpc1BhdXNlZDpjLHN0YXJ0Onksc3RvcDpiLHRvZ2dsZTp4LHJlc2V0OlMscGF1c2U6QyxyZXN1bWU6ZWUsZ2V0UmVtYWluaW5nVGltZTpfLGFkZENvbXBsZXRpb25MaXN0ZW5lcjpofSksW2csbyxjLHksYix4LFMsQyxlZSxfLGhdKX07ZnVuY3Rpb24gZHIoe2xheW91dDplPWBDZW50ZXIgU3RhY2tlZGAsdGVzdElEOnQ9YGNkeC1zZWN0aW9uLWZvb3RlcmAsdGl0bGVPdmVycmlkZVByb3BzOm49e2ZvbnQ6YHRpdGxlMmB9LC4uLnJ9KXtyZXR1cm4oMCxRLmpzeCkoaSx7dGVzdElEOnQsbGF5b3V0OmUsdGl0bGVPdmVycmlkZVByb3BzOm4sc2VjdGlvblJvbGU6YGZvb3RlcmAsLi4ucn0pfXZhciBmcj17eWVhcjpgbnVtZXJpY2AsbW9udGg6YHNob3J0YCxkYXk6YG51bWVyaWNgfSxwcj0oZSx0PWBlbi1VU2Asbj1mcik9Pm5ldyBEYXRlKGUpLnRvTG9jYWxlRGF0ZVN0cmluZyh0LG4pLG1yPXtDYXJkVGFnOmBjYXJkVGFnYH0saHI9WmUoZnVuY3Rpb24oe2xhYmVsOmUsbGluazp0LGNsYXNzTmFtZTpuLHRlc3RJRDpyfSl7bGV0e2xpbms6aSxpc0ludGVybmFsTGluazphfT1jZSh0KSxvPUhlKG1yLkNhcmRUYWcpO3JldHVybigwLFEuanN4KShncix7aHJlZjppLHRhcmdldDphP2Bfc2VsZmA6YF9ibGFua2AsY2xhc3NOYW1lOm4sImRhdGEtdGVzdGlkIjpyLG9uQ2xpY2s6byxjaGlsZHJlbjooMCxRLmpzeCkoVSx7YXM6YHNwYW5gLGZvbnQ6YGNhcHRpb25gLGNvbnRlbnQ6ZX0pfSl9KSxncj1QLmEud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YENEWENhcmRUYWdfX0NvbnRhaW5lcmAsY29tcG9uZW50SWQ6YHNjLTEzODQ5ZWJmLTBgfSkoW2BkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjEwMDBweDtoZWlnaHQ6MzZweDtwYWRkaW5nOnZhcigtLXNwYWNlLTBfNzUpIHZhcigtLXNwYWNlLTFfNSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1jb2xvci1iZ0xpbmUpO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6Mjt0ZXh0LWRlY29yYXRpb246bm9uZTsmOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tY29sb3ItYmdQcmltYXJ5SG92ZXJlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeUhvdmVyZWQpO3NwYW57Y29sb3I6dmFyKC0tY29sb3ItZmdJbnZlcnNlKTt0ZXh0LWRlY29yYXRpb246bm9uZTt9fSY6YWN0aXZle2JhY2tncm91bmQ6dmFyKC0tY29sb3ItYmdQcmltYXJ5UHJlc3NlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeVByZXNzZWQpO3NwYW57Y29sb3I6dmFyKC0tY29sb3ItYmcpO3RleHQtZGVjb3JhdGlvbjpub25lO319JjpkaXNhYmxlZHtiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWJhY2tncm91bmRJbnZlcnNlRGlzYWJsZWQpO2N1cnNvcjpub3QtYWxsb3dlZDt9YF0pO2Z1bmN0aW9uIF9yKGUsdCl7cmV0dXJuIHQ/ZTp2b2lkIDB9dmFyIHZyPXttZWRpYVRvcDpgY29sdW1uYCxtZWRpYUxlZnQ6YHJvd2AsbWVkaWFSaWdodDpgcm93LXJldmVyc2VgfSx5cj17bWVkaWFMZWZ0Ont0YWJsZXQ6NDAwLGRlc2t0b3A6NDAwfSxtZWRpYVJpZ2h0Ont0YWJsZXQ6NDAwLGRlc2t0b3A6NDAwfX07ZnVuY3Rpb24gYnIoe3RpdGxlOmUsY2FyZEFydGljbGVJbWFnZTp0LGNhcmRBcnRpY2xlQXV0aG9yOm4sY2FyZEFydGljbGVBZGRpdGlvbmFsSW5mb3JtYXRpb246cixjYXJkQXJ0aWNsZVRhZ3M6aSxjYXJkQXJ0aWNsZURhdGU6YSxwYXJhZ3JhcGg6byxsaW5rOnMsdGFyZ2V0OmM9YF9ibGFua2AsY2FyZExheW91dDpsPWBtZWRpYVRvcGAsaWQ6dSxjbGFzc05hbWU6ZCx0ZXN0SUQ6Zj1gY2FyZC1hcnRpY2xlYCxvbkNsaWNrT3ZlcmxheTpwLGNvbXBvbmVudElkOm0sY29udGVudFR5cGVJZDpoLG1lZGlhQXNwZWN0UmF0aW86Z30pe2xldHtsaW5rOl8saXNJbnRlcm5hbExpbms6dn09Y2UocykseT12P2Bfc2VsZmA6YyxiPV9yKDMsXykseD1sPT09YG1lZGlhTGVmdGB8fGw9PT1gbWVkaWFSaWdodGA7cmV0dXJuKDAsUS5qc3hzKSh4cix7Y2xhc3NOYW1lOmQsaWQ6dT8/YGAsdGVzdElEOmYsJGhhc0xpbms6ISFfLGRpc3BsYXk6YGZsZXhgLGZsZXhEaXJlY3Rpb246e2Jhc2U6dnJbbF0scGhvbmU6YGNvbHVtbmB9LGFsaWduSXRlbXM6e2Jhc2U6eD9gY2VudGVyYDpgZmxleC1zdGFydGAscGhvbmU6YGZsZXgtc3RhcnRgfSxiYWNrZ3JvdW5kOmB0cmFuc3BhcmVudGAsYm9yZGVyUmFkaXVzOjAsZ2FwOkdbYGNhcmQtZ2FwYF0scG9zaXRpb246YHJlbGF0aXZlYCx3aWR0aDpgMTAwJWAsbWluV2lkdGg6bD09PWBtZWRpYVRvcGA/MjYwOmBhdXRvYCxtaW5IZWlnaHQ6bD09PWBtZWRpYVRvcGA/MzIwOjMwMCxwYWRkaW5nQm90dG9tOmw9PT1gbWVkaWFUb3BgP0dbYGNhcmQtcGFkZGluZ2BdOnZvaWQgMCxjaGlsZHJlbjpbXz8oMCxRLmpzeCkoVmUse3Bvc2l0aW9uOmBhYnNvbHV0ZWAsdG9wOjAsbGVmdDowLHJpZ2h0OjAsYm90dG9tOjAsY2xhc3NOYW1lOmBob3ZlcmFibGUtb3ZlcmxheWAsY29sb3I6YGJnUHJpbWFyeWAsYXM6YGFgLGhyZWY6XyxhY2Nlc3NpYmlsaXR5TGFiZWw6TGUoZT8/YGApLHRhcmdldDp5LHpJbmRleDoxLG9uQ2xpY2s6cCxub1NjYWxlT25QcmVzczohMCxib3JkZXJSYWRpdXM6MTAwLGJvcmRlcldpZHRoOjAsYWxpZ25JdGVtczpgY2VudGVyYCxqdXN0aWZ5Q29udGVudDpgY2VudGVyYCx0ZXN0SUQ6YCR7Zn0tbGluay1vdmVybGF5YH0pOm51bGwsdCYmKDAsUS5qc3gpKEIse3Bvc2l0aW9uOmByZWxhdGl2ZWAsYm9yZGVyUmFkaXVzOlZbYGNhcmQtbWVkaWEtY29ybmVyYF0sZmxleFNocmluazowLG1heFdpZHRoOnlyW2xdLGp1c3RpZnlDb250ZW50OmBmbGV4LWVuZGAsd2lkdGg6e3Bob25lOmAxMDAlYCxiYXNlOng/YDQwJWA6YDEwMCVgfSxtYXhIZWlnaHQ6bD09PWBtZWRpYVRvcGA/dm9pZCAwOjMwMCxib3JkZXJXaWR0aDoxMDAsYm9yZGVyQ29sb3I6dC5oaWRlQmFja2dyb3VuZD9gdHJhbnNwYXJlbnRgOmBiZ0xpbmVgLGNoaWxkcmVuOigwLFEuanN4KShrLHttZWRpYTp0LGJvcmRlclJhZGl1czpWW2BjYXJkLW1lZGlhLWNvcm5lcmBdLGFzcGVjdFJhdGlvOmd9KX0pLCgwLFEuanN4cykoUix7ZmxleEdyb3c6MSxqdXN0aWZ5Q29udGVudDp7cGhvbmU6bD09PWBtZWRpYVRvcGA/YHNwYWNlLWJldHdlZW5gOnZvaWQgMCxiYXNlOng/YGNlbnRlcmA6bD09PWBtZWRpYVRvcGA/YHNwYWNlLWJldHdlZW5gOnZvaWQgMH0sd2lkdGg6YDEwMCVgLGhlaWdodDpgMTAwJWAsZ2FwOkdbYGNvbnRlbnQtZWxlbWVudC1nYXBgXSxjaGlsZHJlbjpbKDAsUS5qc3hzKShSLHtnYXA6R1tgY29udGVudC1lbGVtZW50LWdhcGBdLGNoaWxkcmVuOlshIWUmJigwLFEuanN4KShVLHthczpgaDNgLGZvbnQ6YHRpdGxlNGAsY29udGVudDplLG51bWJlck9mTGluZXM6Yix0ZXN0SUQ6YCR7Zn0tdGl0bGVgfSksKG58fGF8fHIpJiYoMCxRLmpzeHMpKFIse2dhcDowLGNoaWxkcmVuOltuJiYoMCxRLmpzeCkoVSx7Zm9udDpgbGFiZWwyYCxjb2xvcjpgZmdgLGNvbnRlbnQ6bn0pLChhfHxyKSYmKDAsUS5qc3hzKShKZSx7Z2FwOjEsYWxpZ25JdGVtczpgY2VudGVyYCxtYXJnaW5Ub3A6MCxjaGlsZHJlbjpbYSYmKDAsUS5qc3gpKFUse2FzOmBzcGFuYCxmb250OmBsZWdhbGAsY29udGVudDpwcihhKX0pLGEmJnImJigwLFEuanN4KShCLHthczpgc3BhbmAsY29sb3I6YGZnYCxjaGlsZHJlbjpg4oCiYH0pLHImJigwLFEuanN4KShVLHthczpgc3BhbmAsZm9udDpgbGVnYWxgLGNvbnRlbnQ6cn0pXX0pXX0pLG8mJigwLFEuanN4KShVLHthczpgcGAsZm9udDpgY2FwdGlvbmAsY29sb3I6YGZnTXV0ZWRgLGNvbnRlbnQ6byxudW1iZXJPZkxpbmVzOmIsdGVzdElEOmAke2Z9LXBhcmFncmFwaGB9KV19KSxpJiZpLmxlbmd0aD4wJiYoMCxRLmpzeCkoSmUse2dhcDoxLjUsZmxleFdyYXA6YHdyYXBgLHRlc3RJRDpgY2FyZC1hcnRpY2xlLXRhZ3NgLGNoaWxkcmVuOmkubWFwKGU9PigwLFEuanN4KShocix7Li4uZX0sZS5sYWJlbCkpfSldfSldfSl9dmFyIHhyPVAoQikud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YENEWENhcmRBcnRpY2xlX19BcnRpY2xlQ2FyZENvbnRhaW5lcmAsY29tcG9uZW50SWQ6YHNjLTFjNWI3MzY0LTBgfSkoW2Bpc29sYXRpb246aXNvbGF0ZTtgLGBgXSwoeyRoYXNMaW5rOmV9KT0+ZSYmYmUoW2AmOmhvdmVyOm5vdCg6aGFzKC50YWc6aG92ZXIpKXtoM3t0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO319YF0pKTtmdW5jdGlvbiBTcigpe3JldHVybigwLFEuanN4cykoYHN2Z2Ase3htbG5zOmBodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z2Asd2lkdGg6YDE2YCxoZWlnaHQ6YDE3YCx2aWV3Qm94OmAwIDAgMTYgMTdgLGZpbGw6YG5vbmVgLGNoaWxkcmVuOlsoMCxRLmpzeCkoYHBhdGhgLHtkOmBNMy42MTI4MSA2LjEwMjU0SDAuMjY5NTMxVjE2Ljc2NEgzLjYxMjgxVjYuMTAyNTRaYCxmaWxsOmB2YXIoLS1jb2xvci1mZylgfSksKDAsUS5qc3gpKGBwYXRoYCx7ZDpgTTEyLjY1ODMgNS44NzE1NEMxMi41MzUxIDUuODU2MTQgMTIuNDA0MSA1Ljg0ODQzIDEyLjI3MzEgNS44NDA3M0MxMC40MDEyIDUuNzYzNyA5LjM0NTg2IDYuODcyOTggOC45NzYwOSA3LjM1MDU5QzguODc1OTUgNy40ODE1NSA4LjgyOTczIDcuNTU4NTggOC44Mjk3MyA3LjU1ODU4VjYuMTMzNDZINS42MzI4MVYxNi43OTQ5SDguODI5NzNIOC45NzYwOUM4Ljk3NjA5IDE1LjcwODggOC45NzYwOSAxNC42MzAzIDguOTc2MDkgMTMuNTQ0MUM4Ljk3NjA5IDEyLjk1ODcgOC45NzYwOSAxMi4zNzMyIDguOTc2MDkgMTEuNzg3N0M4Ljk3NjA5IDExLjA2MzYgOC45MjIxNyAxMC4yOTMzIDkuMjg0MjMgOS42MzA3OUM5LjU5MjM3IDkuMDc2MTUgMTAuMTQ3IDguNzk4ODMgMTAuNzcxIDguNzk4ODNDMTIuNjE5OCA4Ljc5ODgzIDEyLjY1ODMgMTAuNDcwNSAxMi42NTgzIDEwLjYyNDVDMTIuNjU4MyAxMC42MzIyIDEyLjY1ODMgMTAuNjM5OSAxMi42NTgzIDEwLjYzOTlWMTYuODQxMkgxNi4wMDE2VjkuODg1QzE2LjAwMTYgNy41MDQ2NiAxNC43OTIyIDYuMTAyNjUgMTIuNjU4MyA1Ljg3MTU0WmAsZmlsbDpgdmFyKC0tY29sb3ItZmcpYH0pLCgwLFEuanN4KShgcGF0aGAse2Q6YE0xLjk0MTI2IDQuNzIzMzJDMy4wMTMzOCA0LjcyMzMyIDMuODgyNTIgMy44NTQyIDMuODgyNTIgMi43ODIwN0MzLjg4MjUyIDEuNzA5OTUgMy4wMTMzOCAwLjg0MDgyIDEuOTQxMjYgMC44NDA4MkMwLjg2OTEyOCAwLjg0MDgyIDAgMS43MDk5NSAwIDIuNzgyMDdDMCAzLjg1NDIgMC44NjkxMjggNC43MjMzMiAxLjk0MTI2IDQuNzIzMzJaYCxmaWxsOmB2YXIoLS1jb2xvci1mZylgfSldfSl9ZnVuY3Rpb24gQ3Ioe2xpbms6ZSxjaGlsZHJlbjp0fSl7bGV0e2xpbms6bn09Y2UoZSk7cmV0dXJuIG4/KDAsUS5qc3gpKHllLHtocmVmOm4sdGFyZ2V0OmBfYmxhbmtgLHJlbDpgbm9yZWZlcnJlcmAsd2lkdGg6YDEwMCVgLGNoaWxkcmVuOnR9KTooMCxRLmpzeCkoQix7d2lkdGg6YDEwMCVgLGNoaWxkcmVuOnR9KX1mdW5jdGlvbiB3cih7Y2FyZEF2YXRhckltYWdlOmUsY2FyZEF2YXRhckhpZGVMaW5rZWRpbkxvZ286dCxsaW5rOm4scGFyYWdyYXBoOnIsdGl0bGU6aSxpZDphLHRlc3RJRDpvPWBjYXJkLWF2YXRhcmAsY2xhc3NOYW1lOnN9KXtsZXQgYz1fcigzLG4pO3JldHVybigwLFEuanN4KShDcix7bGluazpuLGNoaWxkcmVuOigwLFEuanN4cykoVHIse3dpZHRoOmAxMDAlYCwkaGFzTGluazohIW4sY2xhc3NOYW1lOnMsaWQ6YT8/YGAsdGVzdElEOm8sZGlzcGxheTpgZmxleGAsZmxleERpcmVjdGlvbjpgY29sdW1uYCxqdXN0aWZ5Q29udGVudDpgc3BhY2UtYmV0d2VlbmAsZ2FwOkdbYGNvbnRlbnQtZWxlbWVudC1nYXBgXSxwYWRkaW5nQm90dG9tOkdbYGNhcmQtcGFkZGluZ2BdLGJvcmRlclJhZGl1czpWW2BjYXJkLWNvcm5lcmBdLGhlaWdodDpgMTAwJWAsY2hpbGRyZW46WygwLFEuanN4cykoUix7Z2FwOkdbYGNvbnRlbnQtZWxlbWVudC1nYXBgXSxjaGlsZHJlbjpbZSYmKDAsUS5qc3gpKEIse2JvcmRlclJhZGl1czpWW2BjYXJkLW1lZGlhLWNvcm5lcmBdLGJvcmRlcldpZHRoOjEwMCxib3JkZXJDb2xvcjplLmhpZGVCYWNrZ3JvdW5kP2B0cmFuc3BhcmVudGA6YGJnTGluZWAsb3ZlcmZsb3c6YGhpZGRlbmAsY2hpbGRyZW46KDAsUS5qc3gpKGsse21lZGlhOmUsYXNwZWN0UmF0aW86YDQ6NWAsYm9yZGVyUmFkaXVzOjB9KX0pLGkmJigwLFEuanN4KShVLHthczpgaDNgLGZvbnQ6YGhlYWRsaW5lYCxjb250ZW50OmksbnVtYmVyT2ZMaW5lczpjLHRlc3RJRDpgJHtvfS10aXRsZWB9KSwocnx8IXQpJiYoMCxRLmpzeCkoQ2Use2NvbG9yOmBiZ0xpbmVIZWF2eWB9KSxyJiYoMCxRLmpzeCkoVSx7Y29udGVudDpyLGZvbnQ6YGNhcHRpb25gLGFzOmBwYCx0ZXN0SUQ6YCR7b30tcGFyYWdyYXBoYH0pXX0pLCF0JiYoMCxRLmpzeCkoU3Ise30pXX0pfSl9dmFyIFRyPVAoQikud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YENEWENhcmRBdmF0YXJfX0F2YXRhckNhcmRDb250YWluZXJgLGNvbXBvbmVudElkOmBzYy0yYWYxNjQwMy0wYH0pKFtgYCxgYF0sKHskaGFzTGluazplfSk9PmUmJmJlKFtgJjpob3Zlcjpub3QoOmhhcygudGFnOmhvdmVyKSl7aDN7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9fWBdKSk7ZnVuY3Rpb24gRXIoe2NoaWxkcmVuOmUsbGluazp0LHRpdGxlOm4saGFzQnV0dG9uOnIsb25DbGlja092ZXJsYXk6aSxib3JkZXJSYWRpdXM6YSwuLi5vfSl7cmV0dXJuKDAsUS5qc3hzKShEcix7Li4ubyxib3JkZXJSYWRpdXM6YSwkaG92ZXJCZWhhdmlvcjohdCYmIXI/YG5vLWhvdmVyYDpgb3ZlcmxheWAsJGlzUHJlc3NhYmxlOiEhdCYmIXIsY2hpbGRyZW46W2UsdCYmIXImJigwLFEuanN4KShPcix7bGluazp0LGFyaWFMYWJlbDpMZShuPz9gYCksb25DbGljazppLGJvcmRlclJhZGl1czphfSldfSl9dmFyIERyPVAoQikud2l0aENvbmZpZyh7c2hvdWxkRm9yd2FyZFByb3A6ZT0+IWUuc3RhcnRzV2l0aChgJGApfSkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YENhcmRDb250YWluZXJfX0NhcmRDb250YWluZXJXcmFwcGVyYCxjb21wb25lbnRJZDpgc2MtNDdlM2UzMTAtMGB9KShbYHBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aXNvbGF0aW9uOmlzb2xhdGU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7YCxgIGAsYGBdLCh7JGhvdmVyQmVoYXZpb3I6ZX0pPT5lPT09YG5vLWhvdmVyYD9gYDpgCiAgICAgICY6aGFzKC5ob3ZlcmFibGUtb3ZlcmxheTpob3ZlcikgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmRBbHRIb3ZlcmVkKTsKICAgICAgfQogICAgYCwoeyRpc1ByZXNzYWJsZTplfSk9PmUmJmAKICAgICY6aGFzKC5ob3ZlcmFibGUtb3ZlcmxheTphY3RpdmUpIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZEFsdFByZXNzZWQpOwogICAgfQogIGApO2Z1bmN0aW9uIE9yKHtsaW5rOmUsYXJpYUxhYmVsOnQsb25DbGljazpuLGJvcmRlclJhZGl1czpyLGNsYXNzTmFtZTppLC4uLmF9KXtyZXR1cm4oMCxRLmpzeCkoVmUse3Bvc2l0aW9uOmBhYnNvbHV0ZWAsYXM6YGFgLGhyZWY6ZSx0YXJnZXQ6YF9ibGFua2AsY2xhc3NOYW1lOmBob3ZlcmFibGUtb3ZlcmxheSAke2k/P2BgfWAsYmxlbmRTdHlsZXM6e2JhY2tncm91bmQ6YGAsYm9yZGVyQ29sb3I6YGAscHJlc3NlZEJhY2tncm91bmQ6YGAsZGlzYWJsZWRCYWNrZ3JvdW5kOmBgLGhvdmVyZWRCYWNrZ3JvdW5kOmBgLHByZXNzZWRCb3JkZXJDb2xvcjpgYCxkaXNhYmxlZEJvcmRlckNvbG9yOmBgLGhvdmVyZWRCb3JkZXJDb2xvcjpgYH0sc3R5bGU6eyItLWludGVyYWN0YWJsZS1ob3ZlcmVkLW9wYWNpdHkiOmBgLCItLWludGVyYWN0YWJsZS1wcmVzc2VkLW9wYWNpdHkiOmBgLGluc2V0OjB9LGNvbG9yOmBiZ1ByaW1hcnlgLCJhcmlhLWxhYmVsIjp0LG9uQ2xpY2s6bixib3JkZXJSYWRpdXM6cixub1NjYWxlT25QcmVzczohMCxib3JkZXJXaWR0aDowLGFjY2Vzc2liaWxpdHlMYWJlbDp0LGFsaWduSXRlbXM6YGNlbnRlcmAsanVzdGlmeUNvbnRlbnQ6YGNlbnRlcmAsLi4uYX0pfWZ1bmN0aW9uIGtyKHtpY29uOmUsY2FyZEJhc2ljSW1hZ2U6dCxwaWN0b2dyYW06bn0pe2lmKHQpcmV0dXJuKDAsUS5qc3gpKGsse21lZGlhOnQsYXNwZWN0UmF0aW86YDE6MWAsYm9yZGVyUmFkaXVzOjB9KTtpZihuKXJldHVybigwLFEuanN4KSh1ZSx7bmFtZTpuLGRpbWVuc2lvbjpgNDh4NDhgfSk7aWYoZSlyZXR1cm4oMCxRLmpzeCkoUWUse25hbWU6ZSxzdHlsZXM6e2ljb246e3dpZHRoOjQ4LGhlaWdodDo0OCxmb250U2l6ZTo0OH19LGNvbG9yOmBmZ2AsYWN0aXZlOiEwLHNpemU6YGxgfSl9ZnVuY3Rpb24gQXIoe2ljb246ZSxjYXJkQmFzaWNJbWFnZTp0LHRpdGxlOm4scGFyYWdyYXBoOnIsY2FyZEJhc2ljQnV0dG9uOmksY2xhc3NOYW1lOmEsaWQ6byxwaWN0b2dyYW06cyx0ZXN0SUQ6Yz1gY2FyZC1iYXNpY2AsbGluazpsLG9uQ2xpY2tPdmVybGF5OnUsY29tcG9uZW50SWQ6ZCxjb250ZW50VHlwZUlkOmZ9KXtsZXR7bGluazpwfT1jZShsKSxtPV9yKDUscCksaD0oaT09bnVsbD92b2lkIDA6aS5saW5rKT09PWAjX2AsZz1lfHx0fHxzO3JldHVybigwLFEuanN4KShFcix7Y2xhc3NOYW1lOmEsaWQ6bz8/YGAsdGl0bGU6bixiYWNrZ3JvdW5kOmBiZ1NlY29uZGFyeVdhc2hgLGZsZXhEaXJlY3Rpb246YGNvbHVtbmAsdGVzdElEOmMsbWluV2lkdGg6MjYwLHBhZGRpbmdYOkdbYGNhcmQtcGFkZGluZ2BdLHBhZGRpbmdZOmc/R1tgY2FyZC1wYWRkaW5nYF06OCxib3JkZXJSYWRpdXM6VltgY2FyZC1jb3JuZXJgXSxoYXNCdXR0b246ISFpJiYhaCxsaW5rOnAsb25DbGlja092ZXJsYXk6dSxjaGlsZHJlbjooMCxRLmpzeHMpKFIse2p1c3RpZnlDb250ZW50OmBzcGFjZS1iZXR3ZWVuYCxnYXA6R1tgY2FyZC1nYXBgXSxoZWlnaHQ6YDEwMCVgLGZsZXhHcm93OjEsY2hpbGRyZW46WygwLFEuanN4cykoUix7Z2FwOjEwLHdpZHRoOmAxMDAlYCxjaGlsZHJlbjpbZyYmKDAsUS5qc3gpKEIse3dpZHRoOmB2YXIoLS1zcGFjZS02KWAsaGVpZ2h0OmB2YXIoLS1zcGFjZS02KWAsZGlzcGxheTpgZmxleGAsYWxpZ25JdGVtczpgY2VudGVyYCxqdXN0aWZ5Q29udGVudDpgY2VudGVyYCxmbGV4U2hyaW5rOjAsY2hpbGRyZW46KDAsUS5qc3gpKGtyLHtpY29uOmUsY2FyZEJhc2ljSW1hZ2U6dCxwaWN0b2dyYW06c30pfSksKDAsUS5qc3hzKShSLHtnYXA6MSxjaGlsZHJlbjpbbiYmKDAsUS5qc3gpKFUse2FzOmBoM2AsZm9udDpgaGVhZGxpbmVgLGNvbnRlbnQ6bixudW1iZXJPZkxpbmVzOm0sdGVzdElEOmAke2N9LXRpdGxlYH0pLHImJigwLFEuanN4KShVLHthczpgcGAsZm9udDpgY2FwdGlvbmAsY29udGVudDpyLGNvbG9yOmBmZ011dGVkYCx0ZXN0SUQ6YCR7Y30tcGFyYWdyYXBoYH0pXX0pXX0pLGkmJigwLFEuanN4KShCLHtwb3NpdGlvbjpgcmVsYXRpdmVgLHpJbmRleDoyLGFsaWduU2VsZjpgZmxleC1zdGFydGAsanVzdGlmeUNvbnRlbnQ6YGZsZXgtc3RhcnRgLGNoaWxkcmVuOigwLFEuanN4KSh3LHsuLi5pLGxpbms6aD9wOmkubGluayxzaXplOmg/YHNtYWxsYDpgbWVkaXVtYCx0ZXN0SUQ6YCR7Y30tYnV0dG9uYH0pfSldfSl9KX12YXIganI9TmUoe3Nob3dNb3JlOntpZDpgQ0RYQ2FyZE1lZGlhLnNob3dNb3JlYCxkZWZhdWx0TWVzc2FnZTpgU2hvdyBtb3JlYCxkZXNjcmlwdGlvbjpgCiAgICAgICNDb21wb25lbnQ6IENEWENhcmRNZWRpYQogICAgICAjQ2hhckxpbWl0OiAyMAogICAgICAjQ29udGV4dDogTGluayB0ZXh0IHRvIGV4cGFuZCB0cnVuY2F0ZWQgY2FyZCB0ZXh0CiAgICBgfSxzaG93TGVzczp7aWQ6YENEWENhcmRNZWRpYS5zaG93TGVzc2AsZGVmYXVsdE1lc3NhZ2U6YFNob3cgbGVzc2AsZGVzY3JpcHRpb246YAogICAgICAjQ29tcG9uZW50OiBDRFhDYXJkTWVkaWEKICAgICAgI0NoYXJMaW1pdDogMjAKICAgICAgI0NvbnRleHQ6IExpbmsgdGV4dCB0byBjb2xsYXBzZSBleHBhbmRlZCBjYXJkIHRleHQKICAgIGB9fSksTXI9e21lZGlhVG9wOmBjb2x1bW5gLG1lZGlhTGVmdDpgcm93YCxtZWRpYVJpZ2h0OmByb3ctcmV2ZXJzZWB9LE5yPXtwaG9uZTpgZmxleC1zdGFydGAsYmFzZTpgY2VudGVyYH0sUHI9e3Bob25lOmBmbGV4LXN0YXJ0YCxiYXNlOmBmbGV4LXN0YXJ0YH0sRnI9e21lZGlhTGVmdDp7dGFibGV0OjQwMCxkZXNrdG9wOjQwMH0sbWVkaWFSaWdodDp7dGFibGV0OjQwMCxkZXNrdG9wOjQwMH19O2Z1bmN0aW9uIElyKGUpe3JldHVybiBlP2Uuc2Nyb2xsSGVpZ2h0PmUuY2xpZW50SGVpZ2h0OiExfWZ1bmN0aW9uIExyKHtjYXJkTWVkaWFJbWFnZTplLHRpdGxlOnQscGFyYWdyYXBoOm4sY2FyZE1lZGlhQnV0dG9uOnIsY2FyZExheW91dDppPWBtZWRpYVRvcGAsY2xhc3NOYW1lOmEsdGVzdElEOm89YGNhcmQtbWVkaWFgLGxpbms6cyxpZDpjLG9uQ2xpY2tPdmVybGF5OmwsY29tcG9uZW50SWQ6dSxjb250ZW50VHlwZUlkOmQsbWVkaWFBc3BlY3RSYXRpbzpmPWA0OjNgLHRpdGxlTnVtYmVyT2ZMaW5lczpwPTMscGFyYWdyYXBoTnVtYmVyT2ZMaW5lczptPTN9KXtsZXR7Zm9ybWF0TWVzc2FnZTpofT1GKCkse2xpbms6Z309Y2UocyksW18sdl09KDAsWC51c2VTdGF0ZSkoITEpLFt5LGJdPSgwLFgudXNlU3RhdGUpKCExKSx4PSgwLFgudXNlUmVmKShudWxsKSxTPSgwLFgudXNlUmVmKShudWxsKSxDPV9yKHAsZyksZWU9X3IobSxnKSx0ZT15JiYoQyE9PXZvaWQgMHx8ZWUhPT12b2lkIDApLG5lPXtib3JkZXJSYWRpdXM6VltgY2FyZC1tZWRpYS1jb3JuZXJgXSxib3JkZXJXaWR0aDoxMDAsYm9yZGVyQ29sb3I6ZSE9bnVsbCYmZS5oaWRlQmFja2dyb3VuZD9gdHJhbnNwYXJlbnRgOmBiZ0xpbmVgLG92ZXJmbG93OmBoaWRkZW5gLHBvc2l0aW9uOmByZWxhdGl2ZWB9LHJlPXthczpgYnV0dG9uYCxmb250OmBsYWJlbDNgLG9uQ2xpY2s6KDAsWC51c2VDYWxsYmFjaykoKCk9Pnt2KGU9PiFlKX0sW10pLGFsaWduU2VsZjpgc3RhcnRgLHBhZGRpbmdZOi41fSxUPSgwLFgudXNlQ2FsbGJhY2spKCgpPT57bGV0IGU9SXIoeC5jdXJyZW50KSx0PUlyKFMuY3VycmVudCksbj1lfHx0O2Iobiksbnx8dighMSl9LFtdKTtyZXR1cm4oMCxYLnVzZUVmZmVjdCkoKCk9PntUKCk7bGV0IGU9bmV3IFJlc2l6ZU9ic2VydmVyKFQpO3JldHVybiB4LmN1cnJlbnQmJmUub2JzZXJ2ZSh4LmN1cnJlbnQpLFMuY3VycmVudCYmZS5vYnNlcnZlKFMuY3VycmVudCksKCk9PmUuZGlzY29ubmVjdCgpfSxbdCxuLFRdKSwoMCxRLmpzeHMpKEVyLHt0aXRsZTp0LGhhc0J1dHRvbjohIXIsb25DbGlja092ZXJsYXk6bCxjbGFzc05hbWU6YSxpZDpjPz9gYCx0ZXN0SUQ6byxkaXNwbGF5OmBmbGV4YCxqdXN0aWZ5Q29udGVudDpgc3BhY2UtYmV0d2VlbmAsd2lkdGg6YDEwMCVgLGJhY2tncm91bmQ6YGJnU2Vjb25kYXJ5V2FzaGAscG9zaXRpb246YHJlbGF0aXZlYCwiZGF0YS1sYXlvdXQiOmksZ2FwOkdbYGNhcmQtZ2FwYF0sZmxleERpcmVjdGlvbjp7cGhvbmU6YGNvbHVtbmAsYmFzZTpNcltpXX0sYWxpZ25JdGVtczppPT09YG1lZGlhVG9wYD9QcjpOcixwYWRkaW5nOkdbYGNhcmQtcGFkZGluZ2BdLGJvcmRlclJhZGl1czpWW2BjYXJkLWNvcm5lcmBdLG1pbkhlaWdodDppPT09YG1lZGlhVG9wYD8zNjA6MzIwLG1pbldpZHRoOjI2MCxjaGlsZHJlbjpbZSYmKDAsUS5qc3hzKShCLHsuLi5uZSxtYXhXaWR0aDpGcltpXSxtYXhIZWlnaHQ6aT09PWBtZWRpYVRvcGA/dm9pZCAwOjM2MCx3aWR0aDpgMTAwJWAsY2hpbGRyZW46WygwLFEuanN4KShrLHttZWRpYTplLGFzcGVjdFJhdGlvOmYsYm9yZGVyUmFkaXVzOjB9KSxnJiYhciYmKDAsUS5qc3gpKHpyLHtsaW5rOmcsYXJpYUxhYmVsOkxlKHQ/P2BgKSxvbkNsaWNrOmwsYm9yZGVyUmFkaXVzOlZbYGNhcmQtbWVkaWEtY29ybmVyYF0sdGFiSW5kZXg6Xz8tMTp2b2lkIDB9KV19KSwoMCxRLmpzeHMpKFIse2dhcDpHW2Bjb250ZW50LWVsZW1lbnQtZ2FwYF0sd2lkdGg6YDEwMCVgLC4uLmk9PT1gbWVkaWFUb3BgP3tmbGV4QmFzaXM6MSxmbGV4R3JvdzoxLGp1c3RpZnlDb250ZW50OmBzcGFjZS1iZXR3ZWVuYH06e30sY2hpbGRyZW46WygwLFEuanN4cykoUix7Z2FwOjEsd2lkdGg6YDEwMCVgLGNoaWxkcmVuOlt0JiYoMCxRLmpzeCkoVSx7cmVmOngsYXM6YGgzYCxmb250OmBoZWFkbGluZWAsY29udGVudDp0LHRlc3RJRDpgJHtvfS10aXRsZWAsbnVtYmVyT2ZMaW5lczpDfSxgJHtvfS10aXRsZWApLG4mJigwLFEuanN4KShVLHtyZWY6Uyxmb250OmBjYXB0aW9uYCxjb250ZW50Om4sY29sb3I6YGZnTXV0ZWRgLHRlc3RJRDpgJHtvfS1wYXJhZ3JhcGhgLG51bWJlck9mTGluZXM6ZWV9LGAke299LXBhcmFncmFwaGApLHRlJiYoMCxRLmpzeCkoVSx7Li4ucmUsY29udGVudDpoKGpyLnNob3dNb3JlKSx0ZXN0SUQ6YCR7b30tZXhwYW5kLXRvZ2dsZWAsdGFiSW5kZXg6Xz8tMTp2b2lkIDB9KV19KSxyJiYoMCxRLmpzeCkoQix7cG9zaXRpb246YHJlbGF0aXZlYCx6SW5kZXg6TS5uYXZpZ2F0aW9uLGFsaWduU2VsZjpgZmxleC1zdGFydGAsY2hpbGRyZW46KDAsUS5qc3gpKHcsey4uLnIsc2l6ZTpgbWVkaXVtYCx0ZXN0SUQ6YCR7b30tYnV0dG9uYH0pfSldfSksdGUmJigwLFEuanN4cykoUnIseyR2aXNpYmxlOl8sImFyaWEtaGlkZGVuIjohXyx0ZXN0SUQ6YCR7b30tdGV4dC1vdmVybGF5YCxnYXA6R1tgY2FyZC1nYXBgXSxwYWRkaW5nOkdbYGNhcmQtcGFkZGluZ2BdLGJvcmRlclJhZGl1czpWW2BjYXJkLWNvcm5lcmBdLGNoaWxkcmVuOltlJiYoMCxRLmpzeHMpKEIsey4uLm5lLHdpZHRoOntwaG9uZTpgNDAlYCxiYXNlOmA1MCVgfSxjaGlsZHJlbjpbKDAsUS5qc3gpKGsse21lZGlhOmUsYXNwZWN0UmF0aW86Zixib3JkZXJSYWRpdXM6MCx0ZXN0SUQ6YCR7b30tb3ZlcmxheS1pbWFnZWB9KSxnJiYhciYmKDAsUS5qc3gpKHpyLHtsaW5rOmcsYXJpYUxhYmVsOkxlKHQ/P2BgKSxvbkNsaWNrOmwsYm9yZGVyUmFkaXVzOlZbYGNhcmQtbWVkaWEtY29ybmVyYF0sdGFiSW5kZXg6Xz92b2lkIDA6LTF9KV19KSx0JiYoMCxRLmpzeCkoVSx7YXM6YGgzYCxmb250OmBoZWFkbGluZWAsY29udGVudDp0LG51bWJlck9mTGluZXM6Mn0sYCR7b30tb3ZlcmxheS10aXRsZWApLG4mJigwLFEuanN4KShCcix7ZmxleEdyb3c6MSxjaGlsZHJlbjooMCxRLmpzeCkoVSx7Zm9udDpgY2FwdGlvbmAsY29udGVudDpuLGNvbG9yOmBmZ011dGVkYH0sYCR7b30tb3ZlcmxheS1wYXJhZ3JhcGhgKX0pLCgwLFEuanN4KShVLHsuLi5yZSxjb250ZW50OmgoanIuc2hvd0xlc3MpLHRlc3RJRDpgJHtvfS1jb2xsYXBzZS10b2dnbGVgLHRhYkluZGV4Ol8/dm9pZCAwOi0xfSldfSldfSl9dmFyIFJyPVAoUikud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YENEWENhcmRNZWRpYV9fQ29udGVudE92ZXJsYXlgLGNvbXBvbmVudElkOmBzYy0xNzYxNWE3Yi0wYH0pKFtgcG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OmAsYDtiYWNrZ3JvdW5kOnZhcigtLWNvbG9yLWJnU2Vjb25kYXJ5V2FzaCk7b3ZlcmZsb3cteTphdXRvO29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2l0aW9uOjAuMnMgZWFzZS1pbjt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHksdmlzaWJpbGl0eTtgLGBgXSxNLm1vZGFsLCh7JHZpc2libGU6ZX0pPT5lJiZiZShbYG9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7YF0pKSx6cj1QKE9yKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgQ0RYQ2FyZE1lZGlhX19TdHlsZWRDYXJkQ29udGFpbmVyT3ZlcmxheWAsY29tcG9uZW50SWQ6YHNjLTE3NjE1YTdiLTFgfSkoW2BvdXRsaW5lLW9mZnNldDotMnB4O2BdKSxCcj1QKFIpLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBDRFhDYXJkTWVkaWFfX092ZXJsYXlQYXJhZ3JhcGhXcmFwcGVyYCxjb21wb25lbnRJZDpgc2MtMTc2MTVhN2ItMmB9KShbYGRpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDo3O292ZXJmbG93OmhpZGRlbjtAbWVkaWEgYCxgey13ZWJraXQtbGluZS1jbGFtcDo1O31gXSxXZS50YWJsZXQpLFZyPXtDYXJkQ29udGFpbmVyOmBjYXJkQ29udGFpbmVyYH0sSHI9TmUoe3dhdGNoOntpZDpgd2F0Y2hgLGRlZmF1bHRNZXNzYWdlOmBXYXRjaGAsZGVzY3JpcHRpb246YAogICAgICAjQ29tcG9uZW50OiBDRFhDYXJkCiAgICAgICNDaGFyTGltaXQ6IDIwCiAgICAgICNDb250ZXh0OiBCdXR0b24gbGFiZWwgZm9yIFZpZGVvIENhcmQKICAgIGB9fSksVXI9WmUoKDAsWC5tZW1vKShmdW5jdGlvbihlKXtsZXQgdD1GKCksbj1IZShWci5DYXJkQ29udGFpbmVyKTtpZihlLmNhcmRUeXBlPT09YEJhc2ljYClyZXR1cm4oMCxRLmpzeCkoQXIsey4uLmUsb25DbGlja092ZXJsYXk6bn0pO2lmKGUuY2FyZFR5cGU9PT1gTWVkaWFgKXJldHVybigwLFEuanN4KShMcix7Li4uZSxvbkNsaWNrT3ZlcmxheTpufSk7aWYoZS5jYXJkVHlwZT09PWBBcnRpY2xlYClyZXR1cm4oMCxRLmpzeCkoYnIsey4uLmUsb25DbGlja092ZXJsYXk6bn0pO2lmKGUuY2FyZFR5cGU9PT1gQXZhdGFyYClyZXR1cm4oMCxRLmpzeCkod3Isey4uLmV9KTtpZihlLmNhcmRUeXBlPT09YFZpZGVvYCl7bGV0IHI9ZS5saW5rP3tjb250ZW50VHlwZUlkOmBDRFhWMl9CdXR0b25gLGNvbXBvbmVudElkOmUuY29tcG9uZW50SWQsbGluazplLmxpbmssdmFyaWFudDpgc2Vjb25kYXJ5YCxvcGVuSW5OZXdUYWI6ITAsbGFiZWw6dC5mb3JtYXRNZXNzYWdlKEhyLndhdGNoKSxpY29uOmBwbGF5YCxpY29uUGxhY2VtZW50OmByaWdodGAsaWNvblN0eWxlOmBmaWxsYH06dm9pZCAwO3JldHVybigwLFEuanN4KShMcix7Li4uZSxvbkNsaWNrT3ZlcmxheTpuLGNhcmRNZWRpYUJ1dHRvbjpyLGNhcmRMYXlvdXQ6YG1lZGlhTGVmdGAsbWVkaWFBc3BlY3RSYXRpbzpgMTY6OWB9KX19KSksV3I9KDAsWC5jcmVhdGVDb250ZXh0KSh7fSksR3I9KCk9PntsZXQgZT0oMCxYLnVzZUNvbnRleHQpKFdyKTtpZighZS5yZWZzKXRocm93IEVycm9yKGB1c2VSZWZNYXBDb250ZXh0IG11c3QgYmUgY2FsbGVkIGluc2lkZSBhIFJlZk1hcFByb3ZpZGVyYCk7cmV0dXJuIGV9LEtyPVguY3JlYXRlQ29udGV4dCh2b2lkIDApLHFyPSgpPT57bGV0IGU9KDAsWC51c2VDb250ZXh0KShLcik7aWYoIWUpdGhyb3cgRXJyb3IoYHVzZUNhcm91c2VsQ29udGV4dCBtdXN0IGJlIHVzZWQgd2l0aGluIGEgQ2Fyb3VzZWwgY29tcG9uZW50YCk7cmV0dXJuIGV9LEpyPVguY3JlYXRlQ29udGV4dCh2b2lkIDApLFlyPSgpPT57bGV0IGU9KDAsWC51c2VDb250ZXh0KShKcik7aWYoIWUpdGhyb3cgRXJyb3IoYHVzZUNhcm91c2VsQXV0b3BsYXlDb250ZXh0IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBDYXJvdXNlbCBjb21wb25lbnRgKTtyZXR1cm4gZX0sWHI9W2BpZGAsYGNoaWxkcmVuYCxgdGVzdElEYCxgc3R5bGVgLGBjbGFzc05hbWVgLGBpc0Nsb25lYF07ZnVuY3Rpb24gWnIoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBRcihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9acihPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7JHIoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6WnIoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uICRyKGUsdCxuKXtyZXR1cm4odD1laSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBlaShlKXt2YXIgdD10aShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiB0aShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIG5pKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbixyLGk9cmkoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIHJpKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgaWk9YGNhcm91c2VsSXRlbUNzcy1jMXJycWRsdGAsYWk9KDAsWC5tZW1vKShlPT57bGV0e2lkOnQsY2hpbGRyZW46bix0ZXN0SUQ6cixzdHlsZTppLGNsYXNzTmFtZTphLGlzQ2xvbmU6b309ZSxzPW5pKGUsWHIpLHtyZWdpc3RlclJlZjpjfT1HcigpLHt2aXNpYmxlQ2Fyb3VzZWxJdGVtczpsfT1xcigpLHU9bC5oYXModCk7cmV0dXJuKDAsUS5qc3gpKEIsUXIoUXIoe3JlZjooMCxYLnVzZUNhbGxiYWNrKShlPT57Yyh0LGUpfSxbYyx0XSksImFyaWEtaGlkZGVuIjohdSwiYXJpYS1yb2xlZGVzY3JpcHRpb24iOmBjYXJvdXNlbCBpdGVtYCxjbGFzc05hbWU6VGUoaWksYSksImRhdGEtY2Fyb3VzZWwtaXRlbS1pZCI6dCxpbmVydDpvP2BgOnZvaWQgMCxtYXhXaWR0aDpgMTAwJWAscm9sZTpgZ3JvdXBgLHN0eWxlOmksdGVzdElEOnI/P2BjYXJvdXNlbC1pdGVtLSR7dH1gfSxzKSx7fSx7Y2hpbGRyZW46dHlwZW9mIG49PWBmdW5jdGlvbmA/bih7aXNWaXNpYmxlOnV9KTpufSkpfSk7ZnVuY3Rpb24gb2koZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBzaShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9vaShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7Y2koZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6b2koT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIGNpKGUsdCxuKXtyZXR1cm4odD1saSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBsaShlKXt2YXIgdD11aShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiB1aShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfXZhciBkaT1gbmF2aWdhdGlvbkNzcy1uMTVoMWZ4b2AsZmk9KDAsWC5tZW1vKShmdW5jdGlvbihlKXtsZXR7b25Hb1ByZXZpb3VzOnQsb25Hb05leHQ6bixkaXNhYmxlR29QcmV2aW91czpyLGRpc2FibGVHb05leHQ6aSxuZXh0UGFnZUFjY2Vzc2liaWxpdHlMYWJlbDphPWBOZXh0IHBhZ2VgLHByZXZpb3VzUGFnZUFjY2Vzc2liaWxpdHlMYWJlbDpvPWBQcmV2aW91cyBwYWdlYCxhdXRvcGxheTpzLGlzQXV0b3BsYXlTdG9wcGVkOmMsb25Ub2dnbGVBdXRvcGxheTpsLHN0YXJ0QXV0b3BsYXlBY2Nlc3NpYmlsaXR5TGFiZWw6dT1gUGxheSBDYXJvdXNlbGAsc3RvcEF1dG9wbGF5QWNjZXNzaWJpbGl0eUxhYmVsOmQ9YFBhdXNlIENhcm91c2VsYCxwcmV2aW91c0ljb246Zj1gY2FyZXRMZWZ0YCxuZXh0SWNvbjpwPWBjYXJldFJpZ2h0YCxzdGFydEljb246bT1gcGxheWAsc3RvcEljb246aD1gcGF1c2VgLHZhcmlhbnQ6Zz1gc2Vjb25kYXJ5YCxjb21wYWN0Ol8sY2xhc3NOYW1lOnYsY2xhc3NOYW1lczp5LHN0eWxlOmIsc3R5bGVzOngsdGVzdElETWFwOlMsaGlkZVVubGVzc0ZvY3VzZWQ6Q309ZTtyZXR1cm4oMCxRLmpzeHMpKEplLHtjbGFzc05hbWU6VGUoZGksdix5PT1udWxsP3ZvaWQgMDp5LnJvb3QpLCJkYXRhLWhpZGRlbnVubGVzc2ZvY3VzZWQiOkMsZ2FwOjEsc3R5bGU6c2koc2koe30sYikseD09bnVsbD92b2lkIDA6eC5yb290KSxjaGlsZHJlbjpbcyYmKDAsUS5qc3gpKGRlLHthY2Nlc3NpYmlsaXR5TGFiZWw6Yz91OmQsY2xhc3NOYW1lOnk9PW51bGw/dm9pZCAwOnkuYXV0b3BsYXlCdXR0b24sY29tcGFjdDpfLG5hbWU6Yz9tOmgsb25DbGljazpsLHN0eWxlOng9PW51bGw/dm9pZCAwOnguYXV0b3BsYXlCdXR0b24sdGVzdElEOihTPT1udWxsP3ZvaWQgMDpTLmF1dG9wbGF5QnV0dG9uKT8/YGNhcm91c2VsLWF1dG9wbGF5LWJ1dHRvbmAsdmFyaWFudDpnfSksKDAsUS5qc3gpKGRlLHthY2Nlc3NpYmlsaXR5TGFiZWw6byxjbGFzc05hbWU6eT09bnVsbD92b2lkIDA6eS5wcmV2aW91c0J1dHRvbixjb21wYWN0Ol8sZGlzYWJsZWQ6cixuYW1lOmYsb25DbGljazp0LHN0eWxlOng9PW51bGw/dm9pZCAwOngucHJldmlvdXNCdXR0b24sdGVzdElEOihTPT1udWxsP3ZvaWQgMDpTLnByZXZpb3VzQnV0dG9uKT8/YGNhcm91c2VsLXByZXZpb3VzLWJ1dHRvbmAsdmFyaWFudDpnfSksKDAsUS5qc3gpKGRlLHthY2Nlc3NpYmlsaXR5TGFiZWw6YSxjbGFzc05hbWU6eT09bnVsbD92b2lkIDA6eS5uZXh0QnV0dG9uLGNvbXBhY3Q6XyxkaXNhYmxlZDppLG5hbWU6cCxvbkNsaWNrOm4sc3R5bGU6eD09bnVsbD92b2lkIDA6eC5uZXh0QnV0dG9uLHRlc3RJRDooUz09bnVsbD92b2lkIDA6Uy5uZXh0QnV0dG9uKT8/YGNhcm91c2VsLW5leHQtYnV0dG9uYCx2YXJpYW50Omd9KV19KX0pLHBpPVtgaXNBY3RpdmVgLGBjbGFzc05hbWVgXSxtaT1bYGlzQWN0aXZlYCxgY2xhc3NOYW1lYF07ZnVuY3Rpb24gaGkoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBnaShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj9oaShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7X2koZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6aGkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIF9pKGUsdCxuKXtyZXR1cm4odD12aSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiB2aShlKXt2YXIgdD15aShlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiB5aShlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIGJpKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbixyLGk9eGkoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIHhpKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgU2k9UW4oVmUpLENpPTI0LHdpPTQsVGk9e3R5cGU6YHNwcmluZ2Asc3RpZmZuZXNzOjkwMCxkYW1waW5nOjEyMCxtYXNzOjQsY2xhbXA6ITB9LEVpPWBkZWZhdWx0UGFnaW5hdGlvbkNzcy1keXF3bWdpYCxEaT1gcGlsbENzcy1wZWE4a216YCxPaT1gZG90Q3NzLWQxZW9pbmY2YCxraT0oMCxYLm1lbW8pKGZ1bmN0aW9uKGUpe2xldHtpc0FjdGl2ZTp0LGNsYXNzTmFtZTpufT1lLHI9YmkoZSxwaSk7cmV0dXJuKDAsUS5qc3gpKFZlLGdpKHsiYXJpYS1jdXJyZW50Ijp0P2B0cnVlYDp2b2lkIDAsYmFja2dyb3VuZDp0P2BiZ1ByaW1hcnlgOmBiZ0xpbmVgLGJvcmRlckNvbG9yOmB0cmFuc3BhcmVudGAsYm9yZGVyV2lkdGg6MCxjbGFzc05hbWU6VGUoRGksbiksImRhdGEtYWN0aXZlIjp0fSxyKSl9KSxBaT0oMCxYLm1lbW8pKGZ1bmN0aW9uKGUpe2xldHtpc0FjdGl2ZTp0LGNsYXNzTmFtZTpufT1lLHI9YmkoZSxtaSkse2lzUGxheWluZzppLGlzRW5hYmxlZDphLGludGVydmFsOm8sZ2V0UmVtYWluaW5nVGltZTpzfT1ZcigpLGM9dCYmYSxbbCx1XT0oMCxYLnVzZVN0YXRlKSh7d2lkdGg6YDAlYCxkdXJhdGlvbjowfSksZD0oMCxYLnVzZVJlZikoMCk7cmV0dXJuKDAsWC51c2VFZmZlY3QpKCgpPT57aWYoIWMpe3Uoe3dpZHRoOmAwJWAsZHVyYXRpb246MH0pLGQuY3VycmVudD0wO3JldHVybn1sZXQgZT1zKCksdD0xLWUvbztpPyhkLmN1cnJlbnQ9dCx1KHt3aWR0aDpgMTAwJWAsZHVyYXRpb246ZS8xZTN9KSk6KHUoe3dpZHRoOmAke3QqMTAwfSVgLGR1cmF0aW9uOjB9KSxkLmN1cnJlbnQ9dCl9LFtpLGMsbyxzXSksKDAsUS5qc3gpKFNpLGdpKGdpKHthbmltYXRlOnt3aWR0aDp0P0NpOndpLGJhY2tncm91bmRDb2xvcjp0JiYhYz9gdmFyKC0tY29sb3ItYmdQcmltYXJ5KWA6YHZhcigtLWNvbG9yLWJnTGluZSlgfSwiYXJpYS1jdXJyZW50Ijp0P2B0cnVlYDp2b2lkIDAsYm9yZGVyQ29sb3I6YHRyYW5zcGFyZW50YCxib3JkZXJXaWR0aDowLGNsYXNzTmFtZTpUZShPaSxuKSwiZGF0YS1hY3RpdmUiOnQsaW5pdGlhbDohMSx0cmFuc2l0aW9uOlRpfSxyKSx7fSx7Y2hpbGRyZW46YyYmKDAsUS5qc3gpKFFuLmRpdix7YW5pbWF0ZTp7d2lkdGg6bC53aWR0aH0saW5pdGlhbDohMSxzdHlsZTp7aGVpZ2h0OmAxMDAlYCxiYWNrZ3JvdW5kOmB2YXIoLS1jb2xvci1iZ1ByaW1hcnkpYCxib3JkZXJSYWRpdXM6YHZhcigtLWJvcmRlclJhZGl1cy0xMDApYH0sdHJhbnNpdGlvbjp7ZHVyYXRpb246bC5kdXJhdGlvbixlYXNlOmBsaW5lYXJgfX0pfSkpfSksamk9ZT0+YEdvIHRvIHBhZ2UgJHtlKzF9YCxNaT0oMCxYLm1lbW8pKGZ1bmN0aW9uKGUpe2xldHt0b3RhbFBhZ2VzOnQsYWN0aXZlUGFnZUluZGV4Om4sb25DbGlja1BhZ2U6cixwYWdpbmF0aW9uQWNjZXNzaWJpbGl0eUxhYmVsOmk9amksY2xhc3NOYW1lOmEsY2xhc3NOYW1lczpvLHN0eWxlOnMsc3R5bGVzOmMsdGVzdElEOmw9YGNhcm91c2VsLXBhZ2luYXRpb25gLHZhcmlhbnQ6dT1gZG90YH09ZSxkPXU9PT1gZG90YCxmPSgwLFgudXNlQ2FsbGJhY2spKGU9PnR5cGVvZiBpPT1gZnVuY3Rpb25gP2koZSk6aSxbaV0pO3JldHVybigwLFEuanN4KShKZSx7Y2xhc3NOYW1lOlRlKEVpLGEsbz09bnVsbD92b2lkIDA6by5yb290KSwiZGF0YS12YXJpYW50Ijp1LGdhcDouNSxqdXN0aWZ5Q29udGVudDpgY2VudGVyYCxzdHlsZTpnaShnaSh7fSxzKSxjPT1udWxsP3ZvaWQgMDpjLnJvb3QpLHRlc3RJRDpsLGNoaWxkcmVuOnQ+MD9BcnJheS5mcm9tKHtsZW5ndGg6dH0sKGUsdCk9PmQ/KDAsUS5qc3gpKEFpLHthY2Nlc3NpYmlsaXR5TGFiZWw6Zih0KSxjbGFzc05hbWU6bz09bnVsbD92b2lkIDA6by5kb3QsaXNBY3RpdmU6dD09PW4sb25DbGljazooKT0+cj09bnVsbD92b2lkIDA6cih0KSxzdHlsZTpjPT1udWxsP3ZvaWQgMDpjLmRvdCx0ZXN0SUQ6YCR7bH0tJHt0fWB9LHQpOigwLFEuanN4KShraSx7YWNjZXNzaWJpbGl0eUxhYmVsOmYodCksY2xhc3NOYW1lOm89PW51bGw/dm9pZCAwOm8uZG90LGlzQWN0aXZlOnQ9PT1uLG9uQ2xpY2s6KCk9PnI9PW51bGw/dm9pZCAwOnIodCksc3R5bGU6Yz09bnVsbD92b2lkIDA6Yy5kb3QsdGVzdElEOmAke2x9LSR7dH1gfSx0KSk6KDAsUS5qc3gpKFZlLHtkaXNhYmxlZDohMCwiYXJpYS1oaWRkZW4iOmB0cnVlYCxiYWNrZ3JvdW5kOmBiZ0xpbmVgLGJvcmRlckNvbG9yOmB0cmFuc3BhcmVudGAsYm9yZGVyV2lkdGg6MCxjbGFzc05hbWU6VGUoZD9PaTpEaSxvPT1udWxsP3ZvaWQgMDpvLmRvdCksc3R5bGU6Z2koe29wYWNpdHk6MCx3aWR0aDpkP3dpOnZvaWQgMH0sYz09bnVsbD92b2lkIDA6Yy5kb3QpfSl9KX0pLE5pPVtgY2hpbGRyZW5gLGB0aXRsZWAsYGhpZGVOYXZpZ2F0aW9uYCxgaGlkZVBhZ2luYXRpb25gLGBwYWdpbmF0aW9uVmFyaWFudGAsYGRyYWdgLGBzbmFwTW9kZWAsYE5hdmlnYXRpb25Db21wb25lbnRgLGBQYWdpbmF0aW9uQ29tcG9uZW50YCxgY2xhc3NOYW1lYCxgY2xhc3NOYW1lc2AsYHN0eWxlYCxgc3R5bGVzYCxgbmV4dFBhZ2VBY2Nlc3NpYmlsaXR5TGFiZWxgLGBwcmV2aW91c1BhZ2VBY2Nlc3NpYmlsaXR5TGFiZWxgLGBwYWdpbmF0aW9uQWNjZXNzaWJpbGl0eUxhYmVsYCxgc3RhcnRBdXRvcGxheUFjY2Vzc2liaWxpdHlMYWJlbGAsYHN0b3BBdXRvcGxheUFjY2Vzc2liaWxpdHlMYWJlbGAsYHBhZ2VDaGFuZ2VBY2Nlc3NpYmlsaXR5TGFiZWxgLGBvbkNoYW5nZVBhZ2VgLGBvbkRyYWdTdGFydGAsYG9uRHJhZ0VuZGAsYGxvb3BgLGBhdXRvcGxheWAsYGF1dG9wbGF5SW50ZXJ2YWxgXTtmdW5jdGlvbiBQaShlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG4scixpPUZpKGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1mdW5jdGlvbiBGaShlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluZGV4T2YocikhPT0tMSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59ZnVuY3Rpb24gSWkoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiAkKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP0lpKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtMaShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpJaShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gTGkoZSx0LG4pe3JldHVybih0PVJpKHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIFJpKGUpe3ZhciB0PXppKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIHppKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9dmFyIEJpPWBkZWZhdWx0Q2Fyb3VzZWxDc3MtZDNpczlmNGAsVmk9YHNjcmVlblJlYWRlck9ubHlDc3Mtc2hkd2s3c2AsSGk9e3R5cGU6YHNwcmluZ2Asc3RpZmZuZXNzOjkwMCxkYW1waW5nOjEyMCxtYXNzOjR9LFVpPShlLHQsbik9PntsZXQgcj10LWU7cmV0dXJuIGUrKChuLWUpJXIrciklcn0sV2k9ZT0+e2xldCB0PU9iamVjdC5lbnRyaWVzKGUpLmZpbHRlcihlPT57bGV0W3RdPWU7cmV0dXJuIXQuc3RhcnRzV2l0aChgY2xvbmUtYCl9KS5tYXAoZT0+e2xldFssdF09ZTtyZXR1cm4gdH0pO2lmKHQubGVuZ3RoPT09MClyZXR1cm5bXTtsZXQgbj10LnNvcnQoKGUsdCk9PmUueC10LngpLHI9blswXS54O3JldHVybiBuLm1hcChlPT4kKCQoe30sZSkse30se3g6ZS54LXJ9KSl9LEdpPShlLHQpPT57bGV0IG49MCxyPTEvMDtyZXR1cm4gdC5mb3JFYWNoKCh0LGkpPT57bGV0IGE9TWF0aC5hYnMoZS10KTthPHImJihyPWEsbj1pKX0pLG59LEtpPShlLHQsbik9PntsZXQgcj1NYXRoLmZsb29yKGUvbiksaT17b2Zmc2V0OjAsaW5kZXg6MCxkaXN0YW5jZToxLzB9O2ZvcihsZXRbYSxvXW9mIHQuZW50cmllcygpKWZvcihsZXQgdCBvZltyLTEscixyKzFdKXtsZXQgcj10Km4rbyxzPU1hdGguYWJzKGUtcik7czxpLmRpc3RhbmNlJiYoaT17b2Zmc2V0OnIsaW5kZXg6YSxkaXN0YW5jZTpzfSl9cmV0dXJue29mZnNldDppLm9mZnNldCxpbmRleDppLmluZGV4fX0scWk9KGUsdCxuLHIpPT57aWYocil7bGV0IHQ9W107Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdC5wdXNoKGVbbl0ueCk7cmV0dXJue3RvdGFsUGFnZXM6dC5sZW5ndGgscGFnZU9mZnNldHM6dH19bGV0IGk9ZS5sZW5ndGgtMSxhPWVbaV0sbz1hLngrYS53aWR0aCxzPWksYz1hLngrdDtmb3IoO3M+PTAmJmM+PW87KWk9cyxzLS0scz49MCYmKGM9ZVtzXS54K3QpO2xldCBsPVtdO2ZvcihsZXQgdD0wO3Q8aTt0Kyspe2xldCByPWVbdF0saT1NYXRoLm1pbihyLngsbik7bC5wdXNoKGkpfWxldCB1PWVbaV0sZD1NYXRoLm1pbih1Lngsbik7cmV0dXJuIGwucHVzaChkKSx7dG90YWxQYWdlczpsLmxlbmd0aCxwYWdlT2Zmc2V0czpsfX0sSmk9KGUsdCxuKT0+e2xldCByPVswXTtmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKyl7bGV0IGE9ZVtpXSxvPXJbci5sZW5ndGgtMV0scz1vK3Q7aWYoYS54K2Eud2lkdGg+cyYmYS54IT09byl7bGV0IGU9TWF0aC5taW4oYS54LG4pO3IucHVzaChlKX19cmV0dXJue3RvdGFsUGFnZXM6ci5sZW5ndGgscGFnZU9mZnNldHM6cn19LFlpPWZ1bmN0aW9uKGUsdCl7bGV0IG49YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOi41O3JldHVybiBlPDA/ZSpuOmU+dD90KyhlLXQpKm46ZX0sWGk9KGUsdCk9PntsZXQgbj0wLHI9MDtmb3IobGV0IGkgb2YgZSlpZihuKz1pLndpZHRoLHIrKyxuPj10KWJyZWFrO3JldHVybiBNYXRoLm1heCgxLHIpfSxaaT0oZSx0LG4pPT57bGV0IHI9bmV3IFNldCxpPW4sYT1uK3Q7cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goZT0+e2xldFt0LG5dPWUsbz1uLngscz1uLngrbi53aWR0aDtvPGEmJnM+aSYmci5hZGQodCl9KSxyfSxRaT0oZSx0KT0+e2xldCBuPWUuY2xvc2VzdChgW2RhdGEtY2Fyb3VzZWwtaXRlbS1pZF1gKTtpZighbilyZXR1cm4gbnVsbDtsZXQgcj1uLmRhdGFzZXQuY2Fyb3VzZWxJdGVtSWQ7aWYoIXJ8fHIuc3RhcnRzV2l0aChgY2xvbmUtYCkpcmV0dXJuIG51bGw7bGV0IGk9dFtyXTtyZXR1cm4gaT97aXRlbUlkOnIsaXRlbVJlY3Q6aX06bnVsbH0sJGk9KGUsdCxuLHIsaSk9PntsZXQgYT1yPyh0JWkraSklaTp0LG89YSxzPWErbixjPWUueCxsPWUueCtlLndpZHRoO3JldHVybiBjPj1vJiZsPD1zfSxlYT0oZSx0LG4pPT57bGV0IHI9QXJyYXkuZnJvbShlKS5maWx0ZXIoZT0+IWUuc3RhcnRzV2l0aChgY2xvbmUtYCkpO2lmKHIubGVuZ3RoPT09MHx8IW4pcmV0dXJuIG51bGw7bGV0IGk9ci5zb3J0KChlLG4pPT57bGV0IHI9dFtlXSxpPXRbbl07cmV0dXJuKChyPT1udWxsP3ZvaWQgMDpyLngpPz8wKS0oKGk9PW51bGw/dm9pZCAwOmkueCk/PzApfSksYT1uLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWNhcm91c2VsLWl0ZW0taWQ9IiR7aVswXX0iXWApO3JldHVybiBhP2EucXVlcnlTZWxlY3RvcihgYnV0dG9uLCBbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9Ii0xIl0pYCk6bnVsbH0sdGE9KGUsdCk9Pntmb3IobGV0IG49dC5sZW5ndGgtMTtuPj0wO24tLSlpZih0W25dPD1lLngpcmV0dXJuIG47cmV0dXJuIDB9LG5hPShlLHQpPT5gUGFnZSAke2UrMX0gb2YgJHt0fWAscmE9KDAsWC5tZW1vKSgoMCxYLmZvcndhcmRSZWYpKChlLG4pPT57bGV0IGk9eGUoYENhcm91c2VsYCxlKSx7Y2hpbGRyZW46YSx0aXRsZTpvLGhpZGVOYXZpZ2F0aW9uOnMsaGlkZVBhZ2luYXRpb246YyxwYWdpbmF0aW9uVmFyaWFudDpsLGRyYWc6dT1gc25hcGAsc25hcE1vZGU6ZD1gcGFnZWAsTmF2aWdhdGlvbkNvbXBvbmVudDpmPWZpLFBhZ2luYXRpb25Db21wb25lbnQ6bT1NaSxjbGFzc05hbWU6aCxjbGFzc05hbWVzOmcsc3R5bGU6XyxzdHlsZXM6dixuZXh0UGFnZUFjY2Vzc2liaWxpdHlMYWJlbDp5LHByZXZpb3VzUGFnZUFjY2Vzc2liaWxpdHlMYWJlbDpiLHBhZ2luYXRpb25BY2Nlc3NpYmlsaXR5TGFiZWw6eCxzdGFydEF1dG9wbGF5QWNjZXNzaWJpbGl0eUxhYmVsOlMsc3RvcEF1dG9wbGF5QWNjZXNzaWJpbGl0eUxhYmVsOkMscGFnZUNoYW5nZUFjY2Vzc2liaWxpdHlMYWJlbDplZT1uYSxvbkNoYW5nZVBhZ2U6dGUsb25EcmFnU3RhcnQ6dyxvbkRyYWdFbmQ6bmUsbG9vcDpyZSxhdXRvcGxheTpULGF1dG9wbGF5SW50ZXJ2YWw6aWU9M2UzfT1pLGFlPVBpKGksTmkpLHNlPXAoKSxFPXQoMCksY2U9bHIoKSxbRCxsZV09KDAsWC51c2VTdGF0ZSkoMCksdWU9KDAsWC51c2VSZWYpKG51bGwpLFtPLGRlXT0oMCxYLnVzZVN0YXRlKSgwKSxmZT1NZSgpLFtrLHBlXT0oMCxYLnVzZVN0YXRlKSh7fSksW21lLGhlXT0oMCxYLnVzZVN0YXRlKShuZXcgU2V0KSxnZT11IT09YG5vbmVgOygwLFgudXNlRWZmZWN0KSgoKT0+e2xldCBlPW5ldyB3aW5kb3cuUmVzaXplT2JzZXJ2ZXIoKCk9PntsZXQgZT17fTtPYmplY3QuZW50cmllcyhmZS5yZWZzKS5mb3JFYWNoKHQ9PntsZXRbbixyXT10O3ImJihlW25dPXt4OnIub2Zmc2V0TGVmdCx5OnIub2Zmc2V0VG9wLHdpZHRoOnIub2Zmc2V0V2lkdGgsaGVpZ2h0OnIub2Zmc2V0SGVpZ2h0fSl9KSxwZShlKX0pO3JldHVybiBPYmplY3QudmFsdWVzKGZlLnJlZnMpLmZvckVhY2godD0+e3QmJmUub2JzZXJ2ZSh0KX0pLChPYmplY3Qua2V5cyhmZS5yZWZzKS5sZW5ndGg9PT0wfHxPYmplY3QudmFsdWVzKGZlLnJlZnMpLmV2ZXJ5KGU9PmU9PT1udWxsKSkmJnBlKHt9KSwoKT0+ZS5kaXNjb25uZWN0KCl9LFtmZS5yZWZzLGFdKTtsZXQgQT0oMCxYLnVzZU1lbW8pKCgpPT57aWYoT2JqZWN0LmtleXMoaykubGVuZ3RoPT09MClyZXR1cm4gMDtsZXQgZT1XaShrKSx0PWVbZS5sZW5ndGgtMV07cmV0dXJuIHQueCt0LndpZHRofSxba10pLF9lPU1hdGgubWF4KDAsQS1PKSx2ZT1BPjAmJk8+MCx5ZT0oMCxYLnVzZU1lbW8pKCgpPT57aWYoT2JqZWN0LmtleXMoaykubGVuZ3RoPDIpcmV0dXJuIDA7bGV0IGU9V2koayksdD1lWzBdLngrZVswXS53aWR0aCxuPWVbMV0ueDtyZXR1cm4gTWF0aC5tYXgoMCxuLXQpfSxba10pLGo9KDAsWC51c2VNZW1vKSgoKT0+cmUmJnZlJiZfZT4wLFtyZSx2ZSxfZV0pLE09KDAsWC51c2VNZW1vKSgoKT0+aj9BK3llOjAsW2osQSx5ZV0pLE49ISEoaiYmTT4wKSxQPWlyKEUsZT0+e2lmKCFqfHwhTSlyZXR1cm4gZTtsZXQgdD1lJU07cmV0dXJuIHQ+MD90LU06dH0pLEY9KDAsWC51c2VDYWxsYmFjaykoZT0+e2xlKHQ9PntsZXQgbj10eXBlb2YgZT09YGZ1bmN0aW9uYD9lKHQpOmU7cmV0dXJuIHQhPT1uJiYodGU9PW51bGx8fHRlKG4pKSxufSl9LFt0ZV0pLEk9KDAsWC51c2VNZW1vKSgoKT0+e2lmKCFqfHxPYmplY3Qua2V5cyhrKS5sZW5ndGg9PT0wfHxPPT09MClyZXR1cm57Zm9yd2FyZDowLGJhY2t3YXJkOjB9O2xldCBlPVdpKGspO3JldHVybntmb3J3YXJkOlhpKGUsTyksYmFja3dhcmQ6WGkoWy4uLmVdLnJldmVyc2UoKSxPKX19LFtqLGssT10pLEw9KDAsWC51c2VDYWxsYmFjaykoZT0+e2lmKE89PT0wKXtoZShuZXcgU2V0KTtyZXR1cm59bGV0IHQ9WmkoayxPLE4/KGUlTStNKSVNOmUpO2lmKE4mJmEpe2xldCBuPVguQ2hpbGRyZW4udG9BcnJheShhKSxyPVdpKGspLGk9ZSxvPWUrTyxzPW4ubGVuZ3RoLUkuYmFja3dhcmQ7Zm9yKGxldCBlPTA7ZTxJLmJhY2t3YXJkO2UrKyl7bGV0IGE9cytlLGM9clthXTtpZihjKXtsZXQgZT1jLngtTSxyPWUrYy53aWR0aDtlPG8mJnI+aSYmdC5hZGQoYGNsb25lLWJhY2t3YXJkLSR7blthXS5wcm9wcy5pZH1gKX19Zm9yKGxldCBlPTA7ZTxJLmZvcndhcmQ7ZSsrKXtsZXQgYT1yW2VdO2lmKGEpe2xldCByPWEueCtNLHM9cithLndpZHRoO3I8byYmcz5pJiZ0LmFkZChgY2xvbmUtZm9yd2FyZC0ke25bZV0ucHJvcHMuaWR9YCl9fX1oZSh0KX0sW08sTixNLGssYSxJLmJhY2t3YXJkLEkuZm9yd2FyZF0pOygwLFgudXNlRWZmZWN0KSgoKT0+e2xldCBlPXVlLmN1cnJlbnQ7aWYoIWUpcmV0dXJuO2xldCB0PW5ldyB3aW5kb3cuUmVzaXplT2JzZXJ2ZXIoZT0+e2ZvcihsZXQgdCBvZiBlKWRlKHQuY29udGVudFJlY3Qud2lkdGgpLEwoTWF0aC5hYnMoRS5nZXQoKSkpfSk7cmV0dXJuIHQub2JzZXJ2ZShlKSwoKT0+dC51bm9ic2VydmUoZSl9LFtrLEUsTF0pO2xldCBiZT0oMCxYLnVzZU1lbW8pKCgpPT57aWYoIWp8fCFNfHwhYXx8SS5mb3J3YXJkPT09MCYmSS5iYWNrd2FyZD09PTApcmV0dXJuIGE7bGV0IGU9WC5DaGlsZHJlbi50b0FycmF5KGEpO2lmKGUubGVuZ3RoPT09MClyZXR1cm4gYTtsZXQgdD1bXSxuPVdpKGspO3JldHVybiBlLnNsaWNlKC1JLmJhY2t3YXJkKS5mb3JFYWNoKChyLGkpPT57bGV0IGE9bltlLmxlbmd0aC1JLmJhY2t3YXJkK2ldLG89YGNsb25lLWJhY2t3YXJkLSR7ci5wcm9wcy5pZH1gO3QucHVzaCgoMCxRLmpzeCkoYWkseyJhcmlhLWhpZGRlbiI6ITAsaXNDbG9uZTohMCxpZDpvLHN0eWxlOiQoe3Bvc2l0aW9uOmBhYnNvbHV0ZWAsbGVmdDooKGE9PW51bGw/dm9pZCAwOmEueCk/PzApLU0sd2lkdGg6YT09bnVsbD92b2lkIDA6YS53aWR0aCxoZWlnaHQ6YT09bnVsbD92b2lkIDA6YS5oZWlnaHR9LHIucHJvcHMuc3R5bGUpLGNoaWxkcmVuOnIucHJvcHMuY2hpbGRyZW59LG8pKX0pLHQucHVzaCguLi5lKSxlLnNsaWNlKDAsSS5mb3J3YXJkKS5mb3JFYWNoKChlLHIpPT57bGV0IGk9bltyXSxhPWBjbG9uZS1mb3J3YXJkLSR7ZS5wcm9wcy5pZH1gO3QucHVzaCgoMCxRLmpzeCkoYWkseyJhcmlhLWhpZGRlbiI6ITAsaXNDbG9uZTohMCxpZDphLHN0eWxlOiQoe3dpZHRoOmk9PW51bGw/dm9pZCAwOmkud2lkdGgsaGVpZ2h0Omk9PW51bGw/dm9pZCAwOmkuaGVpZ2h0fSxlLnByb3BzLnN0eWxlKSxjaGlsZHJlbjplLnByb3BzLmNoaWxkcmVufSxhKSl9KSx0fSxbaixNLGEsayxJXSkse3RvdGFsUGFnZXM6eixwYWdlT2Zmc2V0czpCfT0oMCxYLnVzZU1lbW8pKCgpPT57aWYoIXZlfHxPYmplY3Qua2V5cyhrKS5sZW5ndGg9PT0wKXJldHVybnt0b3RhbFBhZ2VzOjAscGFnZU9mZnNldHM6W119O2xldCBlO3JldHVybiBlPWQ9PT1gaXRlbWA/cWkoV2koayksTyxfZSxqKTpKaShXaShrKSxPLF9lKSxGKHQ9Pk1hdGgubWluKHQsZS50b3RhbFBhZ2VzLTEpKSxlfSxbdmUsayxkLE8sX2UsaixGXSkse2lzUGxheWluZzpTZSxpc1N0b3BwZWQ6Q2UsaXNQYXVzZWQ6d2Usc3RhcnQ6VixzdG9wOkVlLHRvZ2dsZTpEZSxyZXNldDpILHBhdXNlOk9lLHJlc3VtZTprZSxnZXRSZW1haW5pbmdUaW1lOlUsYWRkQ29tcGxldGlvbkxpc3RlbmVyOmplfT11cih7ZW5hYmxlZDpUPz8hMSxpbnRlcnZhbDppZX0pLFc9KDAsWC51c2VDYWxsYmFjaykoZT0+e2xldCB0PU1hdGgubWF4KDAsTWF0aC5taW4oei0xLGUpKTtGKHQpLEwoQlt0XSkscihFLC0oTj9LaSgtRS5nZXQoKSxbQlt0XV0sTSkub2Zmc2V0OkJbdF0pLEhpKSxIKCl9LFt6LEYsTCxCLE4sRSxNLEhdKTsoMCxYLnVzZUltcGVyYXRpdmVIYW5kbGUpKG4sKCk9Pih7YWN0aXZlUGFnZUluZGV4OkQsdG90YWxQYWdlczp6LGdvVG9QYWdlOld9KSxbRCx6LFddKSwoMCxYLnVzZUVmZmVjdCkoKCk9PntpZighKCFUfHx6PT09MCkpcmV0dXJuIGplKCgpPT57VyhVaSgwLHosRCsxKSl9KX0sW1QsamUsRCx6LFddKTtsZXQgTmU9KDAsWC51c2VDYWxsYmFjaykoKCk9PntXKGo/VWkoMCx6LEQrMSk6RCsxKX0sW2oseixELFddKSxQZT0oMCxYLnVzZUNhbGxiYWNrKSgoKT0+e1coaj9VaSgwLHosRC0xKTpELTEpfSxbaix6LEQsV10pLEZlPSgwLFgudXNlQ2FsbGJhY2spKGU9PntpZih1PT09YG5vbmVgKXJldHVybiBlO2xldCB0PS1lO2lmKE4pe2xldHtvZmZzZXQ6bixpbmRleDpyfT1LaSh0LEIsTSk7cmV0dXJuIHIhPT1EJiZIKCksRihyKSx1PT09YHNuYXBgPyhMKEJbcl0pLC1uKTooTCh0LU1hdGguZmxvb3IodC9NKSpNKSxlKX1lbHNle2xldCBuPVlpKHQsX2UsMCkscj1HaShuLEIpO2lmKHIhPT1EJiZIKCksRihyKSx1PT09YHNuYXBgKXtsZXQgZT1CW3JdO3JldHVybiBMKGUpLC1lfXJldHVybiBMKG4pLGV9fSxbdSxOLEIsTSxELEYsTCxfZSxIXSksRz0oMCxYLnVzZUNhbGxiYWNrKSgoKT0+e3c9PW51bGx8fHcoKSxPZSgpfSxbdyxPZV0pLEs9KDAsWC51c2VDYWxsYmFjaykoKCk9PntuZT09bnVsbHx8bmUoKSxrZSgpfSxbbmUsa2VdKSxMZT0oMCxYLnVzZUNhbGxiYWNrKSgoKT0+e09lKCl9LFtPZV0pLHE9KDAsWC51c2VDYWxsYmFjaykoKCk9PntrZSgpfSxba2VdKSxSZT0oMCxYLnVzZUNhbGxiYWNrKShlPT57dmFyIHQ7bGV0IG49ZS5yZWxhdGVkVGFyZ2V0Oyghbnx8ISgodD11ZS5jdXJyZW50KSE9bnVsbCYmdC5jb250YWlucyhuKSkpJiZrZSgpfSxba2VdKSx6ZT0oMCxYLnVzZUNhbGxiYWNrKShlPT57dmFyIHQ7bGV0IG49ZS5yZWxhdGVkVGFyZ2V0LHI9IW58fCEoKHQ9dWUuY3VycmVudCkhPW51bGwmJnQuY29udGFpbnMobikpO2lmKG4mJnImJk9lKCksQi5sZW5ndGg9PT0wfHxPYmplY3Qua2V5cyhrKS5sZW5ndGg9PT0wKXJldHVybjtsZXQgaT1lLnRhcmdldCxhPVFpKGksayk7aWYoIWEpcmV0dXJuO2xldHtpdGVtUmVjdDpvfT1hO2lmKCRpKG8sTWF0aC5hYnMoRS5nZXQoKSksTyxOLE0pKXJldHVybjtpZihyKXtsZXQgZT1lYShtZSxrLHVlLmN1cnJlbnQpO2lmKGUmJmUhPT1pKXtlLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7cmV0dXJufX1sZXQgcz10YShvLEIpO3MhPT1EJiYoSCgpLFcocykpfSxbT2UsSCxCLGssRSxOLE0sTyxtZSxELFddKSxCZT0oMCxYLnVzZU1lbW8pKCgpPT4oe3Zpc2libGVDYXJvdXNlbEl0ZW1zOm1lfSksW21lXSksVmU9KDAsWC51c2VNZW1vKSgoKT0+KHtpc0VuYWJsZWQ6ISFULGlzU3RvcHBlZDpDZSxpc1BhdXNlZDp3ZSxpc1BsYXlpbmc6U2UsaW50ZXJ2YWw6aWUsZ2V0UmVtYWluaW5nVGltZTpVLHN0YXJ0OlYsc3RvcDpFZSx0b2dnbGU6RGUscmVzZXQ6SCxwYXVzZTpPZSxyZXN1bWU6a2V9KSxbVCxDZSx3ZSxTZSxpZSxVLFYsRWUsRGUsSCxPZSxrZV0pO3JldHVybigwLFEuanN4KShvZSx7ZmVhdHVyZXM6b3IsY2hpbGRyZW46KDAsUS5qc3gpKFdyLlByb3ZpZGVyLHt2YWx1ZTpmZSxjaGlsZHJlbjooMCxRLmpzeCkoUiwkKCQoeyJhcmlhLXJvbGVkZXNjcmlwdGlvbiI6YGNhcm91c2VsYCxjbGFzc05hbWU6VGUoaCxnPT1udWxsP3ZvaWQgMDpnLnJvb3QpLGdhcDoyLG9uUG9pbnRlckVudGVyOkxlLG9uUG9pbnRlckxlYXZlOnEscm9sZTpgZ3JvdXBgLHN0eWxlOiQoJCh7b3ZlcmZsb3c6YGNsaXBgfSxfKSx2PT1udWxsP3ZvaWQgMDp2LnJvb3QpLHdpZHRoOmAxMDAlYH0sYWUpLHt9LHtjaGlsZHJlbjooMCxRLmpzeHMpKEpyLlByb3ZpZGVyLHt2YWx1ZTpWZSxjaGlsZHJlbjpbKG98fCFzKSYmKDAsUS5qc3hzKShKZSx7YWxpZ25JdGVtczpgY2VudGVyYCxqdXN0aWZ5Q29udGVudDpvP2BzcGFjZS1iZXR3ZWVuYDpgZmxleC1lbmRgLGNoaWxkcmVuOlt0eXBlb2Ygbz09YHN0cmluZ2A/KDAsUS5qc3gpKEllLHtjbGFzc05hbWU6Zz09bnVsbD92b2lkIDA6Zy50aXRsZSxmb250OmB0aXRsZTNgLG51bWJlck9mTGluZXM6MSxzdHlsZTp2PT1udWxsP3ZvaWQgMDp2LnRpdGxlLGNoaWxkcmVuOm99KTpvLCFzJiYoMCxRLmpzeCkoZix7YXV0b3BsYXk6VCxjbGFzc05hbWU6Zz09bnVsbD92b2lkIDA6Zy5uYXZpZ2F0aW9uLGRpc2FibGVHb05leHQ6ejw9MXx8IWomJkQ+PXotMSxkaXNhYmxlR29QcmV2aW91czp6PD0xfHwhaiYmRDw9MCxpc0F1dG9wbGF5U3RvcHBlZDpDZSxuZXh0UGFnZUFjY2Vzc2liaWxpdHlMYWJlbDp5LG9uR29OZXh0Ok5lLG9uR29QcmV2aW91czpQZSxvblRvZ2dsZUF1dG9wbGF5OkRlLHByZXZpb3VzUGFnZUFjY2Vzc2liaWxpdHlMYWJlbDpiLHN0YXJ0QXV0b3BsYXlBY2Nlc3NpYmlsaXR5TGFiZWw6UyxzdG9wQXV0b3BsYXlBY2Nlc3NpYmlsaXR5TGFiZWw6QyxzdHlsZTp2PT1udWxsP3ZvaWQgMDp2Lm5hdmlnYXRpb259KV19KSwoMCxRLmpzeCkoYGRpdmAse3JlZjp1ZSxjbGFzc05hbWU6Zz09bnVsbD92b2lkIDA6Zy5jYXJvdXNlbENvbnRhaW5lcixvbkJsdXI6UmUsb25Gb2N1czp6ZSxvblBvaW50ZXJEb3duOmU9PntnZSYmKGNlLnN0YXJ0KGUpLEcoKSl9LHN0eWxlOiQoe3dpZHRoOmAxMDAlYCxwb3NpdGlvbjpgcmVsYXRpdmVgfSx2PT1udWxsP3ZvaWQgMDp2LmNhcm91c2VsQ29udGFpbmVyKSxjaGlsZHJlbjooMCxRLmpzeHMpKEtyLlByb3ZpZGVyLHt2YWx1ZTpCZSxjaGlsZHJlbjpbej4wJiYoMCxRLmpzeCkoYGRpdmAseyJhcmlhLWF0b21pYyI6YHRydWVgLCJhcmlhLWxpdmUiOlNlP2BvZmZgOmBwb2xpdGVgLGNsYXNzTmFtZTpWaSxyb2xlOmBzdGF0dXNgLGNoaWxkcmVuOmVlKEQseil9KSwoMCxRLmpzeCkoQWUuZGl2LHtfZHJhZ1g6RSxhbmltYXRlOnNlLGNsYXNzTmFtZTpUZShnPT1udWxsP3ZvaWQgMDpnLmNhcm91c2VsLEJpKSxkcmFnOmdlP2B4YDohMSxkcmFnQ29uc3RyYWludHM6aj92b2lkIDA6e2xlZnQ6LV9lLHJpZ2h0OjB9LGRyYWdDb250cm9sczpjZSxkcmFnVHJhbnNpdGlvbjp7cG93ZXI6dT09PWBmcmVlYD8uNTouMTI1LHRpbWVDb25zdGFudDp1PT09YGZyZWVgP3ZvaWQgMDoxMjUsbW9kaWZ5VGFyZ2V0OkZlfSxpbml0aWFsOiExLG9uRHJhZ0VuZDpLLHN0eWxlOiQoe2Rpc3BsYXk6YGZsZXhgLHBvc2l0aW9uOmByZWxhdGl2ZWAseDpqP1A6RX0sdj09bnVsbD92b2lkIDA6di5jYXJvdXNlbCksd2hpbGVEcmFnOntwb2ludGVyRXZlbnRzOmBub25lYH0sY2hpbGRyZW46YmV9KV19KX0pLCFjJiYoMCxRLmpzeCkobSx7YWN0aXZlUGFnZUluZGV4OkQsY2xhc3NOYW1lOmc9PW51bGw/dm9pZCAwOmcucGFnaW5hdGlvbixvbkNsaWNrUGFnZTpXLHBhZ2luYXRpb25BY2Nlc3NpYmlsaXR5TGFiZWw6eCxzdHlsZTp2PT1udWxsP3ZvaWQgMDp2LnBhZ2luYXRpb24sdG90YWxQYWdlczp6LHZhcmlhbnQ6bH0pXX0pfSkpfSl9KX0pKSxpYT01ZTM7ZnVuY3Rpb24gYWEoe2Nhcm91c2VsUmVmOmUsYXV0b3BsYXk6dCxpdGVtQ291bnQ6bixpbnRlcnZhbDpyPWlhLHdyYXBwZXJSZWY6aX0pe2xldFthLG9dPSgwLFgudXNlU3RhdGUpKCExKSxzPSgwLFgudXNlUmVmKShudWxsKSxjPSgwLFgudXNlUmVmKSghMSksbD0oMCxYLnVzZUNhbGxiYWNrKSgoKT0+e3MuY3VycmVudCYmY2xlYXJJbnRlcnZhbChzLmN1cnJlbnQpLHMuY3VycmVudD13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9PntpZihlLmN1cnJlbnQpe2xldCB0PShlLmN1cnJlbnQuYWN0aXZlUGFnZUluZGV4KzEpJWUuY3VycmVudC50b3RhbFBhZ2VzO2UuY3VycmVudC5nb1RvUGFnZSh0KX19LHIpLG8oITApfSxbZSxyXSksdT0oMCxYLnVzZUNhbGxiYWNrKSgoKT0+e3MuY3VycmVudCYmKGNsZWFySW50ZXJ2YWwocy5jdXJyZW50KSxzLmN1cnJlbnQ9bnVsbCksbyghMSl9LFtdKSxkPSgwLFgudXNlQ2FsbGJhY2spKCgpPT57YT91KCk6bCgpfSxbYSxsLHVdKTtyZXR1cm4oMCxYLnVzZUVmZmVjdCkoKCk9PntpZighdHx8bjw9MXx8IShpIT1udWxsJiZpLmN1cnJlbnQpKXJldHVybjtsZXQgZT1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZT0+e2UuZm9yRWFjaChlPT57ZS5pc0ludGVyc2VjdGluZyYmZS5pbnRlcnNlY3Rpb25SYXRpbz49LjUmJiFjLmN1cnJlbnQmJihjLmN1cnJlbnQ9ITAsbCgpKX0pfSx7dGhyZXNob2xkOi41fSk7cmV0dXJuIGUub2JzZXJ2ZShpLmN1cnJlbnQpLCgpPT57ZS5kaXNjb25uZWN0KCksdSgpfX0sW3QsbixpLGwsdV0pLHtpc1BsYXlpbmc6YSxzdGFydEF1dG9wbGF5Omwsc3RvcEF1dG9wbGF5OnUsdG9nZ2xlQXV0b3BsYXk6ZH19dmFyIG9hPSgwLFguY3JlYXRlQ29udGV4dCkoe2F1dG9wbGF5OiExLGlzUGxheWluZzohMSx0b2dnbGVBdXRvcGxheTooKT0+e30sc3RvcEF1dG9wbGF5OigpPT57fX0pLHNhPU5lKHtwYXVzZUF1dG9wbGF5OntpZDpgcGF1c2VBdXRvcGxheWAsZGVmYXVsdE1lc3NhZ2U6YFBhdXNlIGF1dG9wbGF5YCxkZXNjcmlwdGlvbjpgCiAgICAgICNDb21wb25lbnQ6IENEWEJ1dHRvbgogICAgICAjQ2hhckxpbWl0OiA1MAogICAgICAjQ29udGV4dDogQnV0dG9uIGxhYmVsIGZvciBwYXVzaW5nIGF1dG9wbGF5CiAgICBgfSxyZXN1bWVBdXRvcGxheTp7aWQ6YHJlc3VtZUF1dG9wbGF5YCxkZWZhdWx0TWVzc2FnZTpgUmVzdW1lIGF1dG9wbGF5YCxkZXNjcmlwdGlvbjpgCiAgICAgICNDb21wb25lbnQ6IENEWEJ1dHRvbgogICAgICAjQ2hhckxpbWl0OiA1MAogICAgICAjQ29udGV4dDogQnV0dG9uIGxhYmVsIGZvciByZXN1bWluZyBhdXRvcGxheQogICAgYH0sZ29Ub0l0ZW06e2lkOmBnb1RvSXRlbWAsZGVmYXVsdE1lc3NhZ2U6YEdvIHRvIGl0ZW0ge2luZGV4fWAsZGVzY3JpcHRpb246YAogICAgICAjQ29tcG9uZW50OiBDRFhCdXR0b24KICAgICAgI0NoYXJMaW1pdDogNTAKICAgICAgI0NvbnRleHQ6IEJ1dHRvbiBsYWJlbCBmb3IgZ29pbmcgdG8gYW4gaXRlbQogICAgICAjVmFyaWFibGVFeGFtcGxlOiBHbyB0byBpdGVtIDEsIEdvIHRvIGl0ZW0gMiwgR28gdG8gaXRlbSAzCiAgICBgfX0pO2Z1bmN0aW9uIGNhKHtwYWRkaW5nWDplfSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybigwLFEuanN4KShsYSx7cGFkZGluZ1g6ZSwuLi50fSl9fWZ1bmN0aW9uIGxhKHthY3RpdmVQYWdlSW5kZXg6ZSx0b3RhbFBhZ2VzOnQsb25DbGlja1BhZ2U6bixwYWRkaW5nWDpyfSl7bGV0e2FjdGl2ZUNvbG9yU2NoZW1lOml9PWwoKSx7Zm9ybWF0TWVzc2FnZTphfT1GKCkse3RvZ2dsZUF1dG9wbGF5Om8sc3RvcEF1dG9wbGF5OnMsaXNQbGF5aW5nOmMsYXV0b3BsYXk6dX09KDAsWC51c2VDb250ZXh0KShvYSksZD1pPT09YGRhcmtgLGY9ZT4wLHA9ZTx0LTEsbT0oMCxYLnVzZU1lbW8pKCgpPT5BcnJheS5mcm9tKHtsZW5ndGg6dH0pLm1hcCgoZSx0KT0+KHtrZXk6dCxvbkNsaWNrOigpPT57cygpLG49PW51bGx8fG4odCl9fSkpLFt0LG4sc10pLGg9KDAsWC51c2VDYWxsYmFjaykoKCk9PntzKCksbj09bnVsbHx8bihlLTEpfSxbZSxuLHNdKSxnPSgwLFgudXNlQ2FsbGJhY2spKCgpPT57cygpLG49PW51bGx8fG4oZSsxKX0sW2UsbixzXSk7cmV0dXJuIHQ8PTE/bnVsbDooMCxRLmpzeHMpKGtlLHtwYWRkaW5nWDpyLHBhZGRpbmdZOjAsYmFja2dyb3VuZDpgdHJhbnNwYXJlbnRgLHBhZGRpbmdUb3A6MyxmbGV4RGlyZWN0aW9uOmByb3dgLGdhcDoyLHRlc3RJRDpgY2Fyb3VzZWwtcGFnaW5hdGlvbmAsY2hpbGRyZW46WygwLFEuanN4cykoSmUse2ZsZXhHcm93OjEsZ2FwOjIsY2hpbGRyZW46WygwLFEuanN4KShCLHtib3JkZXJSYWRpdXM6MWUzLGJhY2tncm91bmQ6ZD9gYmdTZWNvbmRhcnlgOmBiZ1NlY29uZGFyeVdhc2hgLHBhZGRpbmdYOjMscGFkZGluZ1k6MS41LGdhcDoyLGFsaWduSXRlbXM6YGNlbnRlcmAsdGVzdElEOmBjYXJvdXNlbC1wYWdpbmF0aW9uLWRvdHNgLGNoaWxkcmVuOm0ubWFwKCh7a2V5OnQsb25DbGljazpufSk9PntsZXQgcj10PT09ZTtyZXR1cm4oMCxRLmpzeCkodWEseyJhcmlhLWxhYmVsIjphKHNhLmdvVG9JdGVtLHtpbmRleDp0KzF9KSx0ZXN0SUQ6YGNhcm91c2VsLXBhZ2luYXRpb24tZG90YCxvbkNsaWNrOm4sYm9yZGVyUmFkaXVzOjFlMyx3aWR0aDpyPzI0OjgsaGVpZ2h0OjgsImFyaWEtcHJlc3NlZCI6ciwkaXNBY3RpdmU6cn0sdCl9KX0pLHUmJigwLFEuanN4KSh3LHtjb21wb25lbnRJZDpgY2Fyb3VzZWwtYXV0b3BsYXktdG9nZ2xlYCx2YXJpYW50OmBzZWNvbmRhcnlgLHNpemU6YG1lZGl1bWAsaWNvbjpjP2BwYXVzZWA6YHBsYXlgLGljb25TdHlsZTpgZmlsbGAsb25DbGljazpvLGFyaWFMYWJlbDphKGM/c2EucGF1c2VBdXRvcGxheTpzYS5yZXN1bWVBdXRvcGxheSksdGVzdElEOmBjYXJvdXNlbC1wYWdpbmF0aW9uLWF1dG9wbGF5YH0pXX0pLCgwLFEuanN4cykoSmUse2dhcDoyLHRlc3RJRDpgY2Fyb3VzZWwtcGFnaW5hdGlvbi1uYXZpZ2F0aW9uLWJ1dHRvbnNgLGNoaWxkcmVuOlsoMCxRLmpzeCkodyx7c2l6ZTpgbWVkaXVtYCxpY29uOmBjYXJldExlZnRgLHZhcmlhbnQ6YHNlY29uZGFyeWAsb25DbGljazpoLGRpc2FibGVkOiFmLGNvbXBvbmVudElkOmBjYXJvdXNlbC1wcmV2LWJ1dHRvbmAsdGVzdElEOmBjYXJvdXNlbC1wYWdpbmF0aW9uLXByZXZgfSksKDAsUS5qc3gpKHcse3NpemU6YG1lZGl1bWAsaWNvbjpgY2FyZXRSaWdodGAsdmFyaWFudDpgc2Vjb25kYXJ5YCxvbkNsaWNrOmcsZGlzYWJsZWQ6IXAsY29tcG9uZW50SWQ6YGNhcm91c2VsLW5leHQtYnV0dG9uYCx0ZXN0SUQ6YGNhcm91c2VsLXBhZ2luYXRpb24tbmV4dGB9KV19KV19KX12YXIgdWE9UChWZSkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YENEWENhcm91c2VsUGFnaW5hdGlvbl9fRG90YCxjb21wb25lbnRJZDpgc2MtMTViZDRjMTAtMGB9KShbYGJhY2tncm91bmQtY29sb3I6YCxgO3RyYW5zaXRpb246YWxsIDAuMnMgY3ViaWMtYmV6aWVyKGAsYCk7YF0sKHskaXNBY3RpdmU6ZX0pPT5lP2B2YXIoLS1jb2xvci1mZylgOmB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kSW52ZXJzZURpc2FibGVkKWAseS5lbnRlckV4cHJlc3NpdmUuam9pbihgLGApKSxkYT17QmFzaWM6e2NhcmRUeXBlOmBCYXNpY2AsY2FyZExheW91dDpgbWVkaWFUb3BgfSxBcnRpY2xlOntjYXJkVHlwZTpgQXJ0aWNsZWAsY2FyZExheW91dDpgbWVkaWFUb3BgfSxNZWRpYTp7Y2FyZFR5cGU6YE1lZGlhYCxjYXJkTGF5b3V0OmBtZWRpYVRvcGB9LCJBcnRpY2xlIC0gTWVkaWEgTGVmdCI6e2NhcmRUeXBlOmBBcnRpY2xlYCxjYXJkTGF5b3V0OmBtZWRpYUxlZnRgfSwiQXJ0aWNsZSAtIE1lZGlhIFJpZ2h0Ijp7Y2FyZFR5cGU6YEFydGljbGVgLGNhcmRMYXlvdXQ6YG1lZGlhUmlnaHRgfSwiTWVkaWEgLSBNZWRpYSBMZWZ0Ijp7Y2FyZFR5cGU6YE1lZGlhYCxjYXJkTGF5b3V0OmBtZWRpYUxlZnRgfSwiTWVkaWEgLSBNZWRpYSBSaWdodCI6e2NhcmRUeXBlOmBNZWRpYWAsY2FyZExheW91dDpgbWVkaWFSaWdodGB9fSxmYT17ZGVmYXVsdDp7ZGVza3RvcDp7MTpgMTUzNnB4YCwyOmA3NTZweGAsMzpgNDk2cHhgfSx0YWJsZXQ6ezE6YDc1MnB4YCwyOmAzNjRweGAsMzpgMjYwcHhgfSxtb2JpbGU6ezE6YDM0M3B4YCwyOmAyNjBweGAsMzpgMjYwcHhgfX0sc2xpbTp7ZGVza3RvcDp7MTpgMTE1MnB4YCwyOmA1NjBweGAsMzpgMzY4cHhgfSx0YWJsZXQ6ezE6YDU2NHB4YCwyOmAzNjhweGAsMzpgMzY4cHhgfSxtb2JpbGU6ezE6YDM0M3B4YCwyOmAyNjBweGAsMzpgMjYwcHhgfX19LHBhPShlLHQsbj1gZGVmYXVsdGApPT57bGV0IHI9ZT09PWBBcnRpY2xlIC0gTWVkaWEgTGVmdGB8fGU9PT1gQXJ0aWNsZSAtIE1lZGlhIFJpZ2h0YHx8ZT09PWBNZWRpYSAtIE1lZGlhIExlZnRgfHxlPT09YE1lZGlhIC0gTWVkaWEgUmlnaHRgLGk9ZmFbbl07cmV0dXJuIHI/e2Rlc2t0b3A6YDc1NnB4YCx0YWJsZXQ6YDc1NnB4YCxtb2JpbGU6aS5tb2JpbGVbdF19OntkZXNrdG9wOmkuZGVza3RvcFt0XSx0YWJsZXQ6aS50YWJsZXRbdF0sbW9iaWxlOmkubW9iaWxlW3RdfX0sbWE9ZT0+ZT09PTE/YDEwMCVgOmU9PT0yP2BjYWxjKCgxMDAlIC0gdmFyKC0tY2Fyb3VzZWwtLWdhcCkpIC8gMilgOmBjYWxjKCgxMDAlIC0gKDIgKiB2YXIoLS1jYXJvdXNlbC0tZ2FwKSkpIC8gMylgLGhhPShlLHQsbj1gZGVmYXVsdGApPT57bGV0IHI9bWEoZSksaT1wYSh0LGUsbik7cmV0dXJue21vYmlsZTpgbWF4KCR7cn0sICR7aS5tb2JpbGV9KWAsdGFibGV0OmBtYXgoJHtyfSwgJHtpLnRhYmxldH0pYCxkZXNrdG9wOmBtYXgoJHtyfSwgJHtpLmRlc2t0b3B9KWB9fTtmdW5jdGlvbiBnYSh7dGVzdElEOmUsY29sdW1uczp0LGNhcmRUeXBlOm4sdmFyaWFudDpyPWBkZWZhdWx0YCwuLi5pfSl7bGV0IGE9ZGFbbl0sbz0oMCxYLnVzZUlkKSgpLHM9YGdhbGxlcnktY2Fyb3VzZWwtaXRlbS0ke299YCxjPWBnYWxsZXJ5LWNhcm91c2VsLWl0ZW0tdGl0bGUtJHtvfWAsbD10PT09MSYmYS5jYXJkTGF5b3V0PT09YG1lZGlhVG9wYDtyZXR1cm4oMCxRLmpzeCkoYWkse2lkOnMsd2lkdGg6aGEodCxuLHIpLGFjY2Vzc2liaWxpdHlMYWJlbGxlZEJ5OmMscG9zaXRpb246YHJlbGF0aXZlYCx6SW5kZXg6MCx0ZXN0SUQ6ZSxjaGlsZHJlbjooMCxRLmpzeCkoVXIsey4uLmksbWVkaWFBc3BlY3RSYXRpbzpsP2AyMTo5YDp2b2lkIDAsY2FyZFR5cGU6YS5jYXJkVHlwZT8/YEJhc2ljYCxjYXJkTGF5b3V0OmEuY2FyZExheW91dD8/YG1lZGlhVG9wYH0pfSl9dmFyIF9hPWBjZHgtZ2FsbGVyeS1jYXJvdXNlbC1jb250YWluZXJgLHZhPXtkZWZhdWx0OnsiLS1kZXNrdG9wLW1heC13aWR0aCI6YDE2MDBweGAsIi0tZGVza3RvcC1jYXJvdXNlbC1nYXAiOmB2YXIoLS1zcGFjZS0zKWB9LHNsaW06eyItLWRlc2t0b3AtbWF4LXdpZHRoIjpgMTIwMHB4YCwiLS1kZXNrdG9wLWNhcm91c2VsLWdhcCI6YHZhcigtLXNwYWNlLTIpYH19LHlhPXtyb290OntwYWRkaW5nSW5saW5lOmB2YXIoLS1jYXJvdXNlbC0taW5uZXItZ2FwKWAsb3ZlcmZsb3c6YHZpc2libGVgfSxjYXJvdXNlbDp7Z2FwOmB2YXIoLS1jYXJvdXNlbC0tZ2FwKWB9fSxiYT17Y2Fyb3VzZWxDb250YWluZXI6X2F9LHhhPWNhKHtwYWRkaW5nWDowfSksU2E9WmUoZnVuY3Rpb24oe2lkOmUsY29udGVudFR5cGVJZDp0LGNvbXBvbmVudElkOm4sdGVzdElEOnI9YGdhbGxlcnktY2Fyb3VzZWxgLHNlY3Rpb25TZXR0aW5nczphLGhlYWRlclRpdGxlOm8saGVhZGVyUGFyYWdyYXBoOnMsaGVhZGVyQ3RhR3JvdXA6YyxoZWFkZXJMYXlvdXQ6bCxmb290ZXJUaXRsZTp1LGZvb3RlclBhcmFncmFwaDpkLGZvb3RlckN0YUdyb3VwOmYsZm9vdGVyTGF5b3V0OnAsbGVnYWxEaXNjbGFpbWVyOm0sY29sdW1uczpoLGF1dG9QbGF5Omc9ITAsY2FyZHM6XyxjYXJkVHlwZTp2PWBCYXNpY2Asbm9TcGFjaW5nOnksdmFyaWFudDpiPWBkZWZhdWx0YCwuLi54fSl7bGV0IEM9KDAsWC51c2VSZWYpKG51bGwpLGVlPSgwLFgudXNlUmVmKShudWxsKSx7aXNQbGF5aW5nOnRlLHN0b3BBdXRvcGxheTp3LHRvZ2dsZUF1dG9wbGF5Om5lfT1hYSh7Y2Fyb3VzZWxSZWY6QyxhdXRvcGxheTpnLGl0ZW1Db3VudDooXz09bnVsbD92b2lkIDA6Xy5sZW5ndGgpPz8wLHdyYXBwZXJSZWY6ZWV9KSxyZT0oMCxYLnVzZU1lbW8pKCgpPT4oe2F1dG9wbGF5OmcsaXNQbGF5aW5nOnRlLHRvZ2dsZUF1dG9wbGF5Om5lLHN0b3BBdXRvcGxheTp3fSksW2csdGUsbmUsd10pO3JldHVybigwLFgudXNlRWZmZWN0KSgoKT0+e2Z1bmN0aW9uIGUoKXt2YXIgZTsoZT1DLmN1cnJlbnQpPT1udWxsfHxlLmdvVG9QYWdlKEMuY3VycmVudC5hY3RpdmVQYWdlSW5kZXgpfXJldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgcmVzaXplYCxlKSwoKT0+d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoYHJlc2l6ZWAsZSl9LFtdKSwhX3x8Xy5sZW5ndGg9PT0wP251bGw6KDAsUS5qc3gpKEwse3NlY3Rpb25TZXR0aW5nczphLGNoaWxkcmVuOigwLFEuanN4cykoa2Use3Rlc3RJRDpyLG5vU3BhY2luZzp5LHZhcmlhbnQ6YixjaGlsZHJlbjpbKDAsUS5qc3gpKGkse3RpdGxlOm8scGFyYWdyYXBoOnMsY3RhczpjLGxheW91dDpsfSksKDAsUS5qc3gpKENhLHtyZWY6ZWUsanVzdGlmeUNvbnRlbnQ6YGNlbnRlcmAsb3ZlcmZsb3c6YGhpZGRlbmAsd2lkdGg6YDEwMCVgLHN0eWxlOnZhW2JdLC4uLngsY2hpbGRyZW46KDAsUS5qc3gpKG9hLlByb3ZpZGVyLHt2YWx1ZTpyZSxjaGlsZHJlbjooMCxRLmpzeCkocmEse3JlZjpDLGhpZGVOYXZpZ2F0aW9uOiEwLFBhZ2luYXRpb25Db21wb25lbnQ6eGEsc3R5bGVzOnlhLGNsYXNzTmFtZXM6YmEsb25EcmFnU3RhcnQ6dyxjaGlsZHJlbjpfLm1hcCgoZSx0KT0+KDAsWC5jcmVhdGVFbGVtZW50KShnYSx7Li4uZSxrZXk6ZS5pZCxjb2x1bW5zOmgsY2FyZFR5cGU6dix0ZXN0SUQ6YCR7cn0taXRlbS0ke3R9YCx2YXJpYW50OmJ9KSl9LGBjYXJvdXNlbGApfSl9LGBjYXJvdXNlbC13cmFwcGVyYCksKDAsUS5qc3gpKGRyLHt0aXRsZTp1LHBhcmFncmFwaDpkLGN0YXM6ZixsYXlvdXQ6cH0pLFMobSkmJigwLFEuanN4KShVLHtmb250OmBsZWdhbGAsY29sb3I6YGZnTXV0ZWRgLGNvbnRlbnQ6bX0pXX0pfSl9KSxDYT1QKEIpLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBDRFhHYWxsZXJ5Q2Fyb3VzZWxfX0Nhcm91c2VsV3JhcHBlcmAsY29tcG9uZW50SWQ6YHNjLWM0ODRiZWJmLTBgfSkoW2BAbWVkaWEgYCxgey0tY2Fyb3VzZWwtLWdhcDp2YXIoLS1kZXNrdG9wLWNhcm91c2VsLWdhcCk7LS1leHRyYS1zcGFjZTpjYWxjKCBtYXgoMTAwdncsdmFyKC0tZGVza3RvcC1tYXgtd2lkdGgpKSAtIHZhcigtLWRlc2t0b3AtbWF4LXdpZHRoKSApOy0tY2Fyb3VzZWwtLWlubmVyLWdhcDpjYWxjKHZhcigtLWV4dHJhLXNwYWNlKSAvIDIgKyB2YXIoLS1zcGFjZS00KSk7bWFyZ2luLWlubGluZTpjYWxjKCh2YXIoLS1leHRyYS1zcGFjZSkgLyAyICsgdmFyKC0tc3BhY2UtNCkpICogLTEpO31AbWVkaWEgYCxgey0tY2Fyb3VzZWwtLWlubmVyLWdhcDp2YXIoLS1zcGFjZS02KTttYXJnaW4taW5saW5lOmNhbGModmFyKC0tc3BhY2UtMykgKiAtMSk7fS0tY2Fyb3VzZWwtLWlubmVyLWdhcDp2YXIoLS1zcGFjZS00KTstLWNhcm91c2VsLS1nYXA6dmFyKC0tc3BhY2UtMik7d2lkdGg6MTAwdnc7bWFyZ2luLWlubGluZTpjYWxjKHZhcigtLXNwYWNlLTIpICogLTEpO2BdLFdlLmRlc2t0b3AsV2UudGFibGV0KTtleHBvcnR7cmEgYXMgYSxociBhcyBjLGFhIGFzIGkscHIgYXMgbCxjYSBhcyBuLGFpIGFzIG8sb2EgYXMgcixVciBhcyBzLFNhIGFzIHQsZHIgYXMgdX07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfRHRzMTVxaUIuanMubWFw"}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/scripttemplates/202602.1.0/assets/otFloatingRounded.json","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:09.011Z","timestamp":1785108249011,"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":"cookielaw.org","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:47:21 GMT","end":"Tue, 20 Oct 2026 23:47:08 GMT"},"fingerprint":{"sha1":"BE:65:35:7C:E3:8D:B8:0C:7D:40:51:C7:4B:EE:56:FE:FD:2D:ED:91","sha256":"D6:A8:FD:24:40:A2:7D:0B:B5:73:08:9C:B2:AC:6E:1F:84:CC:D4:09:7B:BA:22:E8:A5:38:A4:10:29:65:88:5C"}}},"request":{"raw":"GET /scripttemplates/202602.1.0/assets/otFloatingRounded.json HTTP/1.1\r\nHost: cdn.cookielaw.org\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.coinbase.com/\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:09 GMT\r\ncontent-type: application/json\r\ncontent-length: 2742\r\ncontent-encoding: gzip\r\ncontent-md5: 8of7mTRJlIpuWMhJVSaumQ==\r\nlast-modified: Thu, 02 Apr 2026 03:17:17 GMT\r\netag: 0x8DE9066586812A4\r\nserver: cloudflare\r\nx-ms-request-id: f6d3738b-001e-0048-76c2-c2a117000000\r\nx-ms-version: 2009-09-19\r\nx-ms-lease-status: unlocked\r\nx-ms-blob-type: BlockBlob\r\naccess-control-expose-headers: x-ms-request-id,Server,x-ms-version,Content-Type,Content-Encoding,ETag,Last-Modified,Content-MD5,x-ms-lease-status,x-ms-blob-type,Content-Length,Date,Transfer-Encoding\r\naccess-control-allow-origin: *\r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\nvary: accept-encoding\r\nage: 66383\r\ncache-control: max-age=86400\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a21727fc5a5d1525-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":11074,"size_decoded":3680,"mime_type":"application/json","magic":"JSON text data","md5":"fa67250eff56467ab62ba63bc02355cf","sha1":"e13ec407e273ac06cc829930bc9220c5c9b3aef0","sha256":"6165daeea5d1123908a06cd324c0876b256f150b98a06061ffba040aa2d36993","sha512":"bbd10c2d4c2dae49abd76fae2dac7128f3d39e9ba84c0eebf638c551c4111daecae8e71f6f4b3b4955a15889f14c58aba26c6fc0183ddb2fcd5d5d626fe39f88","ssdeep":"192:LPi/IyWvQJQzQrwqgtNB2BIdWZD977ux/i3QO34tTDaF5e43fX/5Yww25G3sXl7Y:LC6UkROkxRtOIpUhQ3","tlshash":"193263117e104b2cf1eb8bad4982b5c935223c8bfd3399edd25da77482ad2f20d66714","first_seen":"2025-09-11T09:52:06.196356Z","last_seen":"2026-07-27T00:40:07.502727Z","times_seen":13218,"resource_available":false,"data":"CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIm90RmxvYXRpbmdSb3VuZGVkIiwKICAgICAgICAgICAgICAgICJodG1sIjogIlBHUnBkaUJwWkQwaWIyNWxkSEoxYzNRdFltRnVibVZ5TFhOa2F5SWdZMnhoYzNNOUltOTBSbXh2WVhScGJtZFNiM1Z1WkdWa0lqNDhaR2wySUdOc1lYTnpQU0p2ZEMxelpHc3RZMjl1ZEdGcGJtVnlJaUJ5YjJ4bFBTSmthV0ZzYjJjaVBqeGthWFlnWTJ4aGMzTTlJbTkwTFhOa2F5MXliM2NpUGp4a2FYWWdhV1E5SW05dVpYUnlkWE4wTFdkeWIzVndMV052Ym5SaGFXNWxjaUlnWTJ4aGMzTTlJbTkwTFhOa2F5MTBkMlZzZG1VZ2IzUXRjMlJyTFdOdmJIVnRibk1pUGp4a2FYWWdZMnhoYzNNOUltSmhibTVsY2w5c2IyZHZJajQ4TDJScGRqNDhaR2wySUdsa1BTSnZibVYwY25WemRDMXdiMnhwWTNraVBqeG9NaUJwWkQwaWIyNWxkSEoxYzNRdGNHOXNhV041TFhScGRHeGxJajUwYVhSc1pUd3ZhREkrUEdScGRpQnBaRDBpYjI1bGRISjFjM1F0Y0c5c2FXTjVMWFJsZUhRaVBuUmxlSFE4WVNCb2NtVm1QU0lqSWo1d2IyeHBZM2s4TDJFK1BDOWthWFkrUEdScGRpQmpiR0Z6Y3owaWIzUXRaSEJrTFdOdmJuUmhhVzVsY2lJK1BHZ3pJR05zWVhOelBTSnZkQzFrY0dRdGRHbDBiR1VpUGp3dmFETStQR1JwZGlCamJHRnpjejBpYjNRdFpIQmtMV052Ym5SbGJuUWlQanh3SUdOc1lYTnpQU0p2ZEMxa2NHUXRaR1Z6WXlJK1BDOXdQand2WkdsMlBqd3ZaR2wyUGp3dlpHbDJQanhrYVhZZ2FXUTlJbUpoYm01bGNpMXZjSFJwYjI1eklqNDhaR2wySUdOc1lYTnpQU0ppWVc1dVpYSXRiM0IwYVc5dUlqNDhZblYwZEc5dUlHTnNZWE56UFNKaVlXNXVaWEl0YjNCMGFXOXVMV2x1Y0hWMElpQmhjbWxoTFdWNGNHRnVaR1ZrUFNKbVlXeHpaU0krUEhOd1lXNGdZMnhoYzNNOUltSmhibTVsY2kxdmNIUnBiMjR0YUdWaFpHVnlJajQ4YURRK2RHbDBiR1U4TDJnMFBqeHpjR0Z1SUdOc1lYTnpQU0p2ZEMxaGNuSnZkeTFqYjI1MFlXbHVaWElpUGp3dmMzQmhiajQ4TDNOd1lXNCtQQzlpZFhSMGIyNCtQR1JwZGlCamJHRnpjejBpWW1GdWJtVnlMVzl3ZEdsdmJpMWtaWFJoYVd4eklqNTBaWGgwUEM5a2FYWStQQzlrYVhZK1BDOWthWFkrUEM5a2FYWStQR1JwZGlCcFpEMGliMjVsZEhKMWMzUXRZblYwZEc5dUxXZHliM1Z3TFhCaGNtVnVkQ0lnWTJ4aGMzTTlJbTkwTFhOa2F5MTBkMlZzZG1VZ2IzUXRjMlJyTFdOdmJIVnRibk1pUGp4a2FYWWdhV1E5SW05dVpYUnlkWE4wTFdKMWRIUnZiaTFuY205MWNDSStQR0oxZEhSdmJpQnBaRDBpYjI1bGRISjFjM1F0Y0dNdFluUnVMV2hoYm1Sc1pYSWlQbU5vYjJsalpUd3ZZblYwZEc5dVBqeGthWFlnWTJ4aGMzTTlJbTl1WlhSeWRYTjBMV0poYm01bGNpMXZjSFJwYjI1eklqNDhZblYwZEc5dUlHbGtQU0p2Ym1WMGNuVnpkQzF5WldwbFkzUXRZV3hzTFdoaGJtUnNaWElpUGxKbGFtVmpkRHd2WW5WMGRHOXVQaUE4WW5WMGRHOXVJR2xrUFNKdmJtVjBjblZ6ZEMxaFkyTmxjSFF0WW5SdUxXaGhibVJzWlhJaVBrRmpZMlZ3ZER3dlluVjBkRzl1UGp3dlpHbDJQand2WkdsMlBqd3ZaR2wyUGp3aExTMGdRMnh2YzJVZ1FuVjBkRzl1SUMwdFBqeGthWFlnYVdROUltOXVaWFJ5ZFhOMExXTnNiM05sTFdKMGJpMWpiMjUwWVdsdVpYSWlQanhpZFhSMGIyNGdZMnhoYzNNOUltOXVaWFJ5ZFhOMExXTnNiM05sTFdKMGJpMW9ZVzVrYkdWeUlHOXVaWFJ5ZFhOMExXTnNiM05sTFdKMGJpMTFhU0JpWVc1dVpYSXRZMnh2YzJVdFluVjBkRzl1SUc5MExXTnNiM05sTFdsamIyNGlQand2WW5WMGRHOXVQand2WkdsMlBqd2hMUzBnUTJ4dmMyVWdRblYwZEc5dUlFVk9SQzB0UGp3dlpHbDJQand2WkdsMlBqd3ZaR2wyUGc9PSIsCiAgICAgICAgICAgICAgICAiY3NzIjogIiNvbmV0cnVzdC1iYW5uZXItc2Rre2JveC1zaGFkb3c6MCAwIDE4cHggcmdiYSgwLDAsMCwuMil9I29uZXRydXN0LWJhbm5lci1zZGsub3RGbG9hdGluZ1JvdW5kZWR7cG9zaXRpb246Zml4ZWQ7YmFja2dyb3VuZC1jb2xvcjojZmZmO3dpZHRoOjYwJTttYXgtd2lkdGg6NzAwcHg7ei1pbmRleDoyMTQ3NDgzNjQ1O2JvcmRlci1yYWRpdXM6Mi41cHg7Ym90dG9tOjJlbTtsZWZ0OjFlbTtmb250LXNpemU6MTZweDttYXgtaGVpZ2h0OjkwJTtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW59I29uZXRydXN0LWJhbm5lci1zZGsub3RSZWxGb250e2ZvbnQtc2l6ZToxcmVtfSNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJvdHRvbS1sZWZ0W2Rpcj1ydGxde3JpZ2h0OjFlbX0jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ib3R0b20tcmlnaHR7bGVmdDphdXRvO3JpZ2h0OjFlbX0jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ib3R0b20tcmlnaHRbZGlyPXJ0bF17bGVmdDoxZW07cmlnaHQ6YXV0b30jb25ldHJ1c3QtYmFubmVyLXNkayAuYWNjZXB0LWJ0bi1vbmx5e2Zsb2F0Om5vbmUgIWltcG9ydGFudDt3aWR0aDoxMDAlfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5jb29raWUtc2V0dGluZ3MtYnRuLW9ubHl7d2lkdGg6MTAwJX0jb25ldHJ1c3QtYmFubmVyLXNkazo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6MTFweH0jb25ldHJ1c3QtYmFubmVyLXNkazo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6I2MxYzFjMX0jb25ldHJ1c3QtYmFubmVyLXNka3tzY3JvbGxiYXItYXJyb3ctY29sb3I6I2MxYzFjMTtzY3JvbGxiYXItZGFya3NoYWRvdy1jb2xvcjojYzFjMWMxO3Njcm9sbGJhci1mYWNlLWNvbG9yOiNjMWMxYzE7c2Nyb2xsYmFyLXNoYWRvdy1jb2xvcjojYzFjMWMxfSNvbmV0cnVzdC1iYW5uZXItc2RrIGgzLCNvbmV0cnVzdC1iYW5uZXItc2RrIHBbYXJpYS1sZXZlbD1cIjNcIl17bWFyZ2luLWJvdHRvbTowfSNvbmV0cnVzdC1iYW5uZXItc2RrIGgzLCNvbmV0cnVzdC1iYW5uZXItc2RrIHB7Y29sb3I6ZGltZ3JheX0jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbnRhaW5lcntwYWRkaW5nOjA7d2lkdGg6MTAwJTttYXJnaW46MH0jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5e21hcmdpbi10b3A6NDBweH0jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtb3B0b3V0LXNpZ25hbHttYXJnaW46MCAxLjg3NXJlbSAuNjI1cmVtIDEuODc1cmVtfSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3ktdGl0bGUsI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cHtmbG9hdDpsZWZ0fSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50e3BhZGRpbmc6MTBweCAzMHB4IDRweCAzMHB4fSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1ndi1saXN0LWhhbmRsZXJ7cGFkZGluZzowIDMwcHggMTBweCAzMHB4O2ZvbnQtc2l6ZTouODEyZW07bWFyZ2luLWJvdHRvbTowO2JvcmRlcjowO2xpbmUtaGVpZ2h0Om5vcm1hbDtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvfSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3ktdGV4dCwjb25ldHJ1c3QtYmFubmVyLXNkayAub3QtYi1hZGRsLWRlc2N7cGFkZGluZzowIDMwcHggMTBweCAzMHB4O2NsZWFyOmJvdGg7Zm9udC1zaXplOi44MTNlbTtsaW5lLWhlaWdodDoxLjU7bWFyZ2luOjB9I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0PiosI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0IGEsI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWItYWRkbC1kZXNjPiosI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWItYWRkbC1kZXNjIGF7bWFyZ2luLWJvdHRvbTowcHg7Zm9udC1zaXplOmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdH0jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5LXRleHQgYSwjb25ldHJ1c3QtYmFubmVyLXNkayAub3QtYi1hZGRsLWRlc2MgYXtmb250LXdlaWdodDpib2xkfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1iLWFkZGwtZGVzY3tkaXNwbGF5OmJsb2NrfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1kcGQtZGVzYz4ub3QtYi1hZGRsLWRlc2N7cGFkZGluZzowO21hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjEwcHg7bGluZS1oZWlnaHQ6MS41O2ZvbnQtc2l6ZToxZW19I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10aXRsZXtkaXNwbGF5OmlubGluZS1ibG9jazttYXgtd2lkdGg6Y2FsYygxMDAlIC0gNzVweCk7cGFkZGluZy1sZWZ0OjMwcHg7Zm9udC1zaXplOjFlbTtsaW5lLWhlaWdodDoxLjU7cGFkZGluZy1ib3R0b206MTBweH0jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3Vwe2Zsb2F0OnJpZ2h0fSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAub3QtYnV0dG9uLW9yZGVyLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAub3QtYnV0dG9uLW9yZGVyLWNvbnRhaW5lciAqW2NsYXNzKj1vdC1idXR0b24tb3JkZXItXTpudGgtb2YtdHlwZSgxKXttYXJnaW4tcmlnaHQ6YXV0b30jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLm90LWJ1dHRvbi1vcmRlci1jb250YWluZXIgKltjbGFzcyo9b3QtYnV0dG9uLW9yZGVyLV06bnRoLW9mLXR5cGUoMil7bWFyZ2luLXJpZ2h0OjFlbX0jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLm90LWJ1dHRvbi1vcmRlci1jb250YWluZXIgKltjbGFzcyo9b3QtYnV0dG9uLW9yZGVyLV06bGFzdC1vZi10eXBle21hcmdpbi1yaWdodDowfSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAub3QtYnV0dG9uLW9yZGVyLWNvbnRhaW5lciAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyLCNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAub3QtYnV0dG9uLW9yZGVyLWNvbnRhaW5lciAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyLCNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAub3QtYnV0dG9uLW9yZGVyLWNvbnRhaW5lciAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXJ7bWluLXdpZHRoOjEzMHB4fSNvbmV0cnVzdC1iYW5uZXItc2RrIC5vbmV0cnVzdC1iYW5uZXItb3B0aW9uc3tmbG9hdDpyaWdodDttYXgtd2lkdGg6NTUlfSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIsI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlciwjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXJ7YmFja2dyb3VuZC1jb2xvcjojNjhiNjMxO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiM2OGI2MzE7bWFyZ2luLXJpZ2h0OjFlbTttaW4td2lkdGg6MTMwcHg7aGVpZ2h0OmF1dG87d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZDtwYWRkaW5nOjEycHggMTBweDtsaW5lLWhlaWdodDoxLjI7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZTouODEzZW19I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlcnttYXJnaW4tcmlnaHQ6MH0jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXJ7Ym9yZGVyOjFweCBzb2xpZCAjNjhiNjMxO21pbi13aWR0aDoxNzVweDttYXgtd2lkdGg6NDAlfSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wYy1idG4taGFuZGxlci5jb29raWUtc2V0dGluZy1saW5re2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6bm9uZTtjb2xvcjojNjhiNjMxO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7bWFyZ2luLXJpZ2h0OjFyZW19I29uZXRydXN0LWJhbm5lci1zZGsgLmhhcy1yZWplY3QtYWxsLWJ1dHRvbiAjb25ldHJ1c3QtYnV0dG9uLWdyb3Vwe3dpZHRoOjEwMCV9I29uZXRydXN0LWJhbm5lci1zZGsgLmhhcy1yZWplY3QtYWxsLWJ1dHRvbiAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIuY29va2llLXNldHRpbmctbGlua3t0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1jbG9zZS1idG4tY29udGFpbmVye3JpZ2h0OjIwcHg7dG9wOjEwcHg7cG9zaXRpb246YWJzb2x1dGV9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LWNsb3NlLWljb257aGVpZ2h0OjQ0cHg7d2lkdGg6NDRweDtiYWNrZ3JvdW5kLXNpemU6MTJweDttYXJnaW46LTEwcHggLTEwcHggMCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlcjpub25lO3BhZGRpbmc6MHB4fSNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXJfbG9nb3tkaXNwbGF5Om5vbmV9I29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAjb25ldHJ1c3QtcG9saWN5e21hcmdpbi10b3A6NzVweH0jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ibnItdy1sb2dvIC5vdC1ibnItbG9nb3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjMwcHh9I29uZXRydXN0LWJhbm5lci1zZGsgI2Jhbm5lci1vcHRpb25ze2Zsb2F0OmxlZnQ7cGFkZGluZzowIDMwcHggMCAzMHB4O3dpZHRoOmNhbGMoMTAwJSAtIDYwcHgpfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWlucHV0e2N1cnNvcjpwb2ludGVyO3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Ym9yZGVyOm5vbmU7cGFkZGluZzowO3BhZGRpbmctcmlnaHQ6M3B4O21hcmdpbjowIDAgNnB4O2ZvbnQtc2l6ZTouODJlbTtsaW5lLWhlaWdodDoxLjR9I29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taW5wdXQgKntwb2ludGVyLWV2ZW50czpub25lO2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXR9I29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taW5wdXRbYXJpYS1leHBhbmRlZD10cnVlXSAub3QtYXJyb3ctY29udGFpbmVye3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWlucHV0W2FyaWEtZXhwYW5kZWQ9dHJ1ZV1+LmJhbm5lci1vcHRpb24tZGV0YWlsc3toZWlnaHQ6YXV0bztkaXNwbGF5OmJsb2NrfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWhlYWRlcntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9ja30jb25ldHJ1c3QtYmFubmVyLXNkayAuYmFubmVyLW9wdGlvbi1oZWFkZXIgOmZpcnN0LWNoaWxke2NvbG9yOmRpbWdyYXk7Zm9udC13ZWlnaHQ6Ym9sZDtmbG9hdDpsZWZ0fSNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9ue21hcmdpbi1ib3R0b206MTBweH0jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtYXJyb3ctY29udGFpbmVyLCNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWRldGFpbHN7dHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZS1pbiAwczstd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2UtaW4gMHM7LW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlLWluIDBzOy1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2UtaW4gMHN9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LWFycm93LWNvbnRhaW5lcntkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXItdG9wOjZweCBzb2xpZCByZ2JhKDAsMCwwLDApO2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7Ym9yZGVyLWxlZnQ6NnB4IHNvbGlkIGRpbWdyYXk7bWFyZ2luLWxlZnQ6MTBweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9I29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24tZGV0YWlsc3tkaXNwbGF5Om5vbmU7Zm9udC1zaXplOi44M2VtO2xpbmUtaGVpZ2h0OjEuNTtoZWlnaHQ6MHB4O3BhZGRpbmc6MTBweCAxMHB4IDVweCAxMHB4fSNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWRldGFpbHMgKntmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOmRpbWdyYXl9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LWRwZC1jb250YWluZXJ7ZmxvYXQ6bGVmdDtwYWRkaW5nOjAgMzBweCAwIDMwcHg7Y2xlYXI6Ym90aH0jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtZHBkLXRpdGxle2ZvbnQtd2VpZ2h0OmJvbGQ7cGFkZGluZy1ib3R0b206MTBweDtsaW5lLWhlaWdodDoxLjQ7Zm9udC1zaXplOjFlbX0jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtZHBkLWRlc2N7Zm9udC1zaXplOi44MTNlbTtsaW5lLWhlaWdodDoxLjV9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LWRwZC1kZXNjIC5vbmV0cnVzdC12ZW5kb3JzLWxpc3QtaGFuZGxlcntkaXNwbGF5OmJsb2NrO21hcmdpbi1sZWZ0OjBweDttYXJnaW4tdG9wOjVweDtwYWRkaW5nOjA7bWFyZ2luLWJvdHRvbTowO2JvcmRlcjowO2xpbmUtaGVpZ2h0Om5vcm1hbDtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvfSNvbmV0cnVzdC1iYW5uZXItc2RrIDpub3QoLm90LWRwZC1kZXNjKT4ub3QtYi1hZGRsLWRlc2N7Zm9udC1zaXplOi44MTNlbTtsaW5lLWhlaWdodDoxLjU7bWFyZ2luOjA7cGFkZGluZy1ib3R0b206MTBweH0jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1jbG9zZS1idG4tbGluayAjb25ldHJ1c3QtY2xvc2UtYnRuLWNvbnRhaW5lcnt0b3A6MTVweDt0cmFuc2Zvcm06bm9uZTtyaWdodDoxNXB4fSNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWNsb3NlLWJ0bi1saW5rICNvbmV0cnVzdC1jbG9zZS1idG4tY29udGFpbmVyIGJ1dHRvbntwYWRkaW5nOjA7d2hpdGUtc3BhY2U6cHJlLXdyYXA7Ym9yZGVyOm5vbmU7aGVpZ2h0OmF1dG87bGluZS1oZWlnaHQ6MS41O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Zm9udC1zaXplOi42OWVtfSNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWNsb3NlLWJ0bi1saW5rLm90LXdvLXRpdGxlICNvbmV0cnVzdC1ncm91cC1jb250YWluZXJ7bWFyZ2luLXRvcDoyMHB4fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDI1cHgpeyNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXB7bWFyZ2luLXRvcDowfSNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbntwYWRkaW5nOjAgMjBweH0jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtY2xvc2UtYnRuLWNvbnRhaW5lcntyaWdodDoxNXB4fSNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3ktdGl0bGV7cGFkZGluZy1sZWZ0OjE1cHh9I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnQsI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWRwZC1jb250YWluZXJ7cGFkZGluZzowIDE1cHggMHB4IDE1cHh9I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0LCNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1ndi1saXN0LWhhbmRsZXIsI29uZXRydXN0LWJhbm5lci1zZGsgOm5vdCgub3QtZHBkLWRlc2MpPi5vdC1iLWFkZGwtZGVzY3twYWRkaW5nOjAgMTVweCAxMHB4IDE1cHh9I29uZXRydXN0LWJhbm5lci1zZGsgLm90LW9wdG91dC1zaWduYWx7bWFyZ2luOjAgMS44NzVyZW0gLjYyNXJlbSAxLjg3NXJlbX0jb25ldHJ1c3QtYmFubmVyLXNkayAjb3QtZ3YtbGluay1jdG5ye21hcmdpbi1ib3R0b206MTVweH0jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwIGJ1dHRvbnt3aWR0aDoxMDAlfSNvbmV0cnVzdC1iYW5uZXItc2RrICNiYW5uZXItb3B0aW9uc3twYWRkaW5nOjAgMTVweCAwIDE1cHg7d2lkdGg6Y2FsYygxMDAlIC0gMzBweCl9I29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb257bWFyZ2luLWJvdHRvbTo2cHh9I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cCwjb25ldHJ1c3QtYmFubmVyLXNkayAub25ldHJ1c3QtYmFubmVyLW9wdGlvbnN7d2lkdGg6MTAwJX0jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXJ7bWFyZ2luLXJpZ2h0OjBweH0jb25ldHJ1c3QtYmFubmVyLXNkay5vdEZsb2F0aW5nUm91bmRlZCwjb25ldHJ1c3QtYmFubmVyLXNkay5vdEZsb2F0aW5nUm91bmRlZFtkaXI9cnRsXXtsZWZ0OjA7Ym90dG9tOjA7d2lkdGg6MTAwJTtyaWdodDowfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU1MHB4KXsjb25ldHJ1c3QtYmFubmVyLXNkayAub3QtY2xvc2UtaWNvbntwYWRkaW5nOjB9I29uZXRydXN0LWJhbm5lci1zZGsub3QtY2xvc2UtYnRuLWxpbmsgI29uZXRydXN0LWdyb3VwLWNvbnRhaW5lcnttYXJnaW4tdG9wOjIwcHh9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDI2cHgpYW5kIChtYXgtd2lkdGg6IDg5NnB4KXsjb25ldHJ1c3QtYmFubmVyLXNkay5vdEZsb2F0aW5nUm91bmRlZHt3aWR0aDo5NSV9I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnR7d2lkdGg6MTAwJX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCl7I29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cHt0ZXh0LWFsaWduOmNlbnRlcn0jb25ldHJ1c3QtYmFubmVyLXNkayAub25ldHJ1c3QtYmFubmVyLW9wdGlvbnMsI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVye21heC13aWR0aDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtYWxpZ246Y2VudGVyfSNvbmV0cnVzdC1iYW5uZXItc2RrIC5oYXMtcmVqZWN0LWFsbC1idXR0b24gLm9uZXRydXN0LWJhbm5lci1vcHRpb25ze3dpZHRoOjEwMCV9I29uZXRydXN0LWJhbm5lci1zZGsgLmhhcy1yZWplY3QtYWxsLWJ1dHRvbiAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIuY29va2llLXNldHRpbmctbGlua3t0ZXh0LWFsaWduOmNlbnRlcn0jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLm90LWJ1dHRvbi1vcmRlci1jb250YWluZXIgKltjbGFzcyo9b3QtYnV0dG9uLW9yZGVyLV17ZmxleC1iYXNpczoxMDAlO21hcmdpbi1yaWdodDowICFpbXBvcnRhbnR9fSIKICAgICAgICAgICAgfQ=="}},"time_used":8,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/logos/static/powered_by_logo.svg","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:09.082Z","timestamp":1785108249082,"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":"cookielaw.org","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:47:21 GMT","end":"Tue, 20 Oct 2026 23:47:08 GMT"},"fingerprint":{"sha1":"BE:65:35:7C:E3:8D:B8:0C:7D:40:51:C7:4B:EE:56:FE:FD:2D:ED:91","sha256":"D6:A8:FD:24:40:A2:7D:0B:B5:73:08:9C:B2:AC:6E:1F:84:CC:D4:09:7B:BA:22:E8:A5:38:A4:10:29:65:88:5C"}}},"request":{"raw":"GET /logos/static/powered_by_logo.svg HTTP/1.1\r\nHost: cdn.cookielaw.org\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\nReferer: https://www.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\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\ndate: Sun, 26 Jul 2026 23:24:09 GMT\r\ncontent-type: image/svg+xml\r\ncontent-md5: yMeilKp6reuDTG1eNiffRg==\r\nlast-modified: Thu, 23 Jul 2026 17:59:41 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nserver: cloudflare\r\nx-ms-request-id: 5fb634d6-d01e-00a4-0605-1ba96e000000\r\nx-ms-version: 2009-09-19\r\nx-ms-lease-status: unlocked\r\nx-ms-blob-type: BlockBlob\r\naccess-control-expose-headers: x-ms-request-id,Server,x-ms-version,Content-Type,ETag,Last-Modified,Content-MD5,x-ms-lease-status,x-ms-blob-type,Content-Length,Date,Transfer-Encoding\r\naccess-control-allow-origin: *\r\nx-content-type-options: nosniff\r\ncross-origin-resource-policy: cross-origin\r\nage: 81626\r\ncache-control: max-age=86400\r\ncf-cache-status: HIT\r\ncontent-encoding: gzip\r\ncf-ray: a21727fcca6132fa-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":5445,"size_decoded":3299,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"c8c7a294aa7aadeb834c6d5e3627df46","sha1":"5e2107ce68c4286a0b80648b19e7b5a7e7cad702","sha256":"cddd450a33be5e50d6f27aea78d2e278beae2762678b22fc2dcee8de29cbc0be","sha512":"881abe7bef6955139eab994ca4769c3d94568c27b51871a7b69e71db70110c4a80647803d661ba198ff9155de75b30c91f6ef2e7ed1a516c483ab2e5830cd337","ssdeep":"96:9ui6WcChyXQBHEOJ3a6XJD8ThcAbnNXGTvkWsoo:93/hEqDPXJwThcAb5Uvjq","tlshash":"26b174d67fb4a4f458859ffede1b59a9765b74f97b63c68c823c8f2906838c08548c04","first_seen":"2026-04-06T03:34:52.903175Z","last_seen":"2026-07-27T01:48:47.920282Z","times_seen":55763,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iNTY4IiBoZWlnaHQ9IjUzIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8zMzI2Ml80NDM0NikiIGZpbGw9IiMwMDAiPjxwYXRoIGQ9Ik00LjIyNiA0NFY4LjQ0OWgxNC42MjZjNC42NzMgMCA3LjI2My45MTQgOS4xOTMgMi42NCAyLjAzMSAxLjgzIDMuMTQ5IDQuNTIgMy4xNDkgNy43NzEgMCAzLjQ1NC0xLjI3IDYuMjQ3LTMuNjA2IDguMDc1LTIuOTk3IDIuMzM3LTYuNjUzIDIuMzg3LTEwLjQ2MiAyLjM4N2gtOC4zM1Y0NGgtNC41N3ptNC41Ny0zMS44OTV2MTMuNTZoMTAuMDU2YzQuNjczIDAgNy45MjMtMS45OCA3LjkyMy02LjgwNSAwLTQuODc1LTMuNDAyLTYuNzU1LTguMDI0LTYuNzU1SDguNzk2ek00NC44IDE3LjEzM2M3LjgyMSAwIDEyLjkgNS4yMzIgMTIuOSAxMy43MTMgMCA4LjM4LTUuMDI4IDEzLjgxNC0xMi45IDEzLjgxNC03LjkyMyAwLTEyLjktNS4yODItMTIuOS0xMy44MTQgMC04LjM4IDUuMDc5LTEzLjcxMyAxMi45LTEzLjcxM3ptMCAzLjQwM2MtNS45NDIgMC04LjQzIDQuNTcxLTguNDMgMTAuMzYgMCA1Ljc0IDIuNjQgMTAuMzEgOC40MyAxMC4zMSA1Ljc5IDAgOC40My00LjU3IDguNDMtMTAuMzEgMC01Ljc4OS0yLjY0LTEwLjM2LTguNDMtMTAuMzZ6TTY2LjI4MiA0NGwtOC4yNzgtMjYuMTU1aDQuNDdsMy44NiAxMy42MWMuNjYgMi4yODYgMS42NzUgNi4wNDQgMi4yMzQgNy44MjJoLjEwMWMuNzExLTIuNTkgMS40MjItNS4xOCAyLjE4NC03Ljk3NGwzLjcwOC0xMy40NTloNC41N2wzLjYwNiAxMy4zMDdjLjgxMyAyLjk5NiAxLjM3MiA0LjgyNSAyLjIzNSA4LjEyNmguMTAyYzEuMjE5LTQuMzE3IDEuNjI1LTUuNzkgMi4yODUtOC4wNzVsMy44MS0xMy4zNThoNC40MThMODcuMjA3IDQ0aC00LjUybC0zLjcwOC0xMy4zMDZhMzI5LjEzMiAzMjkuMTMyIDAgMDEtMi4xMzMtNy44NzJoLS4xMDFjLS42NiAyLjU5LTEuMzcyIDUuMzgzLTIuMTMzIDguMTI2TDcwLjkwNCA0NGgtNC42MjJ6bTU0LjE4NS0xMi4zNDFoLTIwLjMxNWMwIDUuNTM1IDMuMzUyIDkuNDk3IDguNTMyIDkuNDk3IDQuODc2IDAgNi43MDQtMy4yIDcuNDY2LTUuNTg3aDQuMzE3Yy0xLjQyMiA1LjQ4NS01LjYzOCA5LjA5MS0xMS45MzUgOS4wOTEtOC4wMjUgMC0xMi42OTctNS4xOC0xMi42OTctMTMuODE0IDAtOC4wMjQgNC44NzUtMTMuNzEzIDEyLjY5Ny0xMy43MTMgOC4yNzggMCAxMS45MzUgNS45OTMgMTEuOTM1IDE0LjUyNnptLTIwLjI2NS0zLjJoMTUuNzQ1Yy0uMjA0LTQuNDE4LTIuNzk0LTguMDc1LTcuNTY4LTguMDc1LTUuMDI4IDAtNy45MjMgMy42NTctOC4xNzcgOC4wNzV6bTM1LjQ3MS03LjQxNWMtMS45MyAwLTMuNzU5Ljc2Mi01LjAyOCAyLjIzNS0xLjIxOSAxLjM3MS0xLjkzIDMuNDAyLTEuOTMgNi4zNDhWNDRoLTQuMjY2VjE3Ljg0NWg0LjExM3Y0LjAxMmguMTUzYy45NjUtMi40ODkgMy44MDktNC43MjQgNy40MTUtNC43MjQuNzYyIDAgMS4zMi4xMDIgMS41NzQuMTUzdjMuOTFjLS45MTQtLjE1Mi0xLjU3NC0uMTUyLTIuMDMxLS4xNTJ6bTI2LjMxIDEwLjYxNWgtMjAuMzE1YzAgNS41MzUgMy4zNTIgOS40OTcgOC41MzMgOS40OTcgNC44NzUgMCA2LjcwNC0zLjIgNy40NjUtNS41ODdoNC4zMTdjLTEuNDIyIDUuNDg1LTUuNjM3IDkuMDkxLTExLjkzNSA5LjA5MS04LjAyNCAwLTEyLjY5Ny01LjE4LTEyLjY5Ny0xMy44MTQgMC04LjAyNCA0Ljg3Ni0xMy43MTMgMTIuNjk3LTEzLjcxMyA4LjI3OSAwIDExLjkzNSA1Ljk5MyAxMS45MzUgMTQuNTI2em0tMjAuMjY0LTMuMmgxNS43NDRjLS4yMDMtNC40MTgtMi43OTMtOC4wNzUtNy41NjctOC4wNzUtNS4wMjggMC03LjkyMyAzLjY1Ny04LjE3NyA4LjA3NXpNMTg4LjQ2NCA0NGgtNC4yMTV2LTMuMzAxaC0uMTAyYy0xLjU3NCAyLjIzNS00LjM2NyAzLjk2MS04LjM4IDMuOTYxLTYuODU2IDAtMTEuNjgxLTUuNDM0LTExLjY4MS0xMy43MTIgMC03Ljg3MiA1LjAyOC0xMy44NjUgMTEuOTg2LTEzLjg2NSA0LjA2MyAwIDYuNTUyIDEuNzI2IDguMDI1IDMuNjU2aC4xMDFWOC40NWg0LjI2NlY0NHptLTExLjkzNS0yMy40NjRjLTUuMjgyIDAtNy45NzMgNC42NzMtNy45NzMgMTAuNDEyIDAgNS42ODggMi43NDIgMTAuMjA4IDguMTI2IDEwLjIwOCA1LjIzMSAwIDcuNzE5LTMuNjA2IDcuNzE5LTEwLjQxMiAwLTYuMzk5LTIuNzQyLTEwLjIwOC03Ljg3Mi0xMC4yMDh6TTIwMy42MTQgOC40NWg0LjI2NnYxMi41NDRoLjEwMWMxLjU3NS0yLjIzNCA0LjMxNy0zLjkxIDguMzI5LTMuOTEgNi44NTcgMCAxMS42ODIgNS40MzQgMTEuNjgyIDEzLjcxMiAwIDcuODcyLTUuMDI4IDEzLjg2NS0xMS45ODYgMTMuODY1LTQuMDYzIDAtNi42MDMtMS43MjYtOC4wNzUtMy42NTZoLS4xMDJWNDRoLTQuMjE1VjguNDQ5em0xMS45MzUgMzIuNzU4YzUuMjgyIDAgNy45NzMtNC42NzMgNy45NzMtMTAuNDEyIDAtNS42ODgtMi43NDItMTAuMjA4LTguMTI2LTEwLjIwOC01LjIzMSAwLTcuNzE5IDMuNjA2LTcuNzE5IDEwLjQxMSAwIDYuNCAyLjc0MiAxMC4yMDkgNy44NzIgMTAuMjA5em0yMi41NCAyLjY0bC0xMC4yMDgtMjYuMDAzaDQuNTcxbDQuMTE0IDExLjM3N2EzNzAgMzcwIDAgMDEzLjY1NiAxMC40NjJoLjEwMmMxLjAxNi0zLjA5OCAyLjE4NC03LjE2MSAzLjQ1My0xMC44MThsMy43MDgtMTEuMDJoNC4yMTVMMjQwLjc4MSA0Ny4xNWMtMS43MjcgNC42MjEtNC4wNjMgNS43OS04LjAyNSA1Ljc5LTEuMDY2IDAtMS41MjMtLjA1MS0yLjIzNC0uMTAydi0zLjQwM2MuNTA4LjEwMiAxLjIxOS4xMDIgMS45My4xMDIgMy4xOTkgMCA0LjI2Ni0xLjQ3MyA1LjM4My00Ljg3NmwuMjU0LS44MTJ6bTEwOC41NjQgMi40MTljMy45MDktNS42ODYgNi4xOC0xMi40NTkgNi4xOC0xOS43ODEgMC03LjMyMy0yLjI3MS0xNC4wODEtNi4xOC0xOS43NjdoLTIxLjk5NmM4LjExMyAzLjExOCAxMy45NCAxMC43OCAxMy45NCAxOS43ODEgMCA5LjAwMi01LjgyNyAxNi42NjMtMTMuOTQgMTkuNzgxaDIxLjk5NnYtLjAxNHptLTM4LjUxOCAwaDE2LjUwOFY2LjcxOWgtMTYuNTA4djM5LjU0OHptLTIxLjk5NiAwaDIxLjk5NmMtOC4xMTItMy4xMTgtMTMuOTM5LTEwLjc4LTEzLjkzOS0xOS43ODEgMC05LjAwMiA1Ljg0MS0xNi42NDkgMTMuOTM5LTE5Ljc2N2gtMjEuOTk2Yy0zLjkwOCA1LjY4Ni02LjE4IDEyLjQ1OC02LjE4IDE5Ljc4MSAwIDcuMzIzIDIuMjcyIDE0LjA4IDYuMTggMTkuNzY3em0yMTMuODY3LTIyLjU4OVYxOC4xOWgtLjY5MWMtMy45MDkgMC02LjA4MSAxLjk3NS02Ljg3MiA0LjA0OWgtLjA5OHYtMy43NTNoLTYuMzM1djI1LjQ2N2g2LjU3NFYzMC4yMTFjMC00LjM0NiAxLjk3Ni02LjUzMyA1Ljk4My02LjUzM2gxLjQzOXptMTQuMjM2IDE2LjA3Yy0yLjEzIDAtMy41NTUtLjg4OC00LjQwMi0yLjY2Ni0uNDUxLTEuMDQ0LS41OTMtMS45NzUtLjU5My00LjUwMVYxOC40ODZoLTYuNTc0VjMyLjY4YzAgMi44MjIuMTk3IDQuNDQ0LjU1IDUuNjMgMS4yNDEgNC41NDIgNC43NCA2LjQzMyA4Ljc0NyA2LjQzMyAzLjc1NCAwIDYuMjc5LTEuODM0IDcuNDY0LTMuODFoLjA1N3YzLjAyaDYuMzM1VjE4LjQ4NmgtNi41NzV2MTQuMjM2YzAgMi4yMy0uMTk4IDMuMzE2LS41OTMgNC4xNDgtLjgwNCAxLjc5Mi0yLjM4NCAyLjg3OS00LjQxNiAyLjg3OXptMzguOTU1LTE2LjgxOGgzLjUxNHYxNC4xOTRjMCAxLjA0NC4wNTYgMS45MzMuMTU1IDIuNTY4LjM1MyAyLjQyNyAxLjQzOSAzLjU1NiAzLjQxNCA0LjAwNy44NDcuMTk4IDEuOTMzLjI1NCA0LjU0My4yNTRoMy4yMTd2LTQuNDQ0aC0xLjQ4MWMtMi41MjYgMC0zLjI1OS0uMjk3LTMuMjU5LTMuMjE3VjIyLjk0NGg0LjY0MnYtNC40NThINTYzLjN2LTcuMDY5aC02LjU3NXY3LjA2OWgtMy41MTN2NC40NDRoLS4wMTV6bS0yNC41MjEgMTIuNjU2Yy4yOTYgNi43NzMgNS44ODMgOS4wMDIgMTEuNzEgOS4wMDIgNi4zNzggMCAxMS4zMTYtMi43MjMgMTEuMzE2LTguNDUyIDAtNC45MzgtNC41MDEtNi43My04LjYwNy03LjYxOGwtMi43MjMtLjU5M2MtMi43MjMtLjU5My00LjY0Mi0xLjI4NC00LjY0Mi0zLjMxNiAwLTEuOTc1IDEuODc3LTIuNzY1IDQuMTQ4LTIuNzY1IDIuNzY2IDAgNC42NDIgMS4wNDQgNC45OTUgNC4yMDRoNi4xMjNjLS40OTMtNi4yNzgtNS4zMzMtOC4zNTItMTAuOTItOC4zNTItNS4zOSAwLTEwLjcyMyAyLjIzLTEwLjcyMyA3Ljc2IDAgNC44OTYgMy45MDggNi41MzIgNy45MTUgNy40MjFsMi4yMjkuNDk0YzMuNjU1Ljc5IDUuNTg4IDEuNTggNS41ODggMy42NTQgMCAyLjQyNy0yLjU2OCAzLjM1OC00LjY0MiAzLjM1OC0yLjcyMyAwLTUuMjkxLTEuNDgxLTUuNDg5LTQuNzk3aC02LjI3OHptLTQwLjQ3OS0yMS41MDJWOS4wODloLTI3Ljg4djQuOTk1SDQ3MC44djI5Ljg2OWg2LjkyOHYtMjkuODdoMTAuNDY5ek00NTEuNzEgMjIuMDRjMy42NTUgMCA1LjkyNiAyLjgyMiA1Ljg4NCA2LjQ3N2gtMTEuODY2Yy4yOTYtMy42NTUgMi40NjktNi40NzcgNS45ODItNi40Nzd6bTUuOTgzIDE0LjQ5Yy0uNzkxIDEuNjgtMi40MjcgMy40NTctNS40MzIgMy40NTctMy4yNiAwLTYuMjc5LTIuMDc0LTYuNTMzLTcuMTY3aDE4LjU4MnYtLjY1YzAtMi4wMy0uMTk4LTMuODA5LS42NDktNS4zMzItMS41MzgtNS4zOS01LjU4OC05LjE0My0xMS45NjUtOS4xNDMtNy43MTggMC0xMi43MTIgNS43MjgtMTIuNzEyIDEzLjQ0NiAwIDcuNjYxIDQuODk2IDEzLjQ0NiAxMy4wNTEgMTMuNDQ2IDYuMDgxIDAgMTAuMTg3LTMuMjYgMTEuOTY0LTguMDU2aC02LjMwNnptLTMzLjQ2Ny0xMy44NGMyLjEzIDAgMy41NTUuODg4IDQuNDAyIDIuNjY2LjQ1MSAxLjA0NC41OTIgMS45NzUuNTkyIDQuNTAxdjE0LjA5NWg2LjU3NVYyOS43NTljMC0yLjgyMi0uMTk3LTQuNDQ0LS41NS01LjYzLTEuMjQyLTQuNTQzLTQuNzQxLTYuNDMzLTguNzQ4LTYuNDMzLTMuODA5IDAtNi4zMzUgMS43NzgtNy40NjQgMy44MWgtLjA1NnYtMy4wMmgtNi4zMzV2MjUuNDY3aDYuNTc1VjI5LjY2YzAtMi4yMjkuMTk3LTMuMzE1LjU5Mi00LjE0OC44MDUtMS43MzUgMi4zODUtMi44MjIgNC40MTctMi44MjJ6bS0zMS40NS05LjFjNS45ODMgMCA5LjE0MyA1LjMzMiA5LjE0MyAxMy4wMDggMCA3Ljc2LTMuMTYgMTMuMDA4LTkuMTQzIDEzLjAwOC01Ljg4MyAwLTkuMS01LjIzNC05LjEtMTMuMDA4IDAtNy42NjIgMy4yMTctMTMuMDA5IDkuMS0xMy4wMDl6bTAgMzAuOTk3YzEwLjAzMiAwIDE2LjA3MS03LjI2NiAxNi4wNzEtMTguMDAzIDAtMTAuNTI2LTYuMjc5LTE4LjAwNC0xNi4wNzEtMTguMDA0LTkuNjkzIDAtMTYuMDE0IDcuNDY0LTE2LjAxNCAxOC4wMDQgMCAxMC43MzcgNS45MjYgMTguMDAzIDE2LjAxNCAxOC4wMDN6Ii8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDBfMzMyNjJfNDQzNDYiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoNTY4djUzSDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+"}},"time_used":5,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-26T23:24:02.876Z","timestamp":1785108242876,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: 830129coinbase.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\nUpgrade-Insecure-Requests: 1\r\nConnection: keep-alive\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:02 GMT\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nConnection: keep-alive\r\nVary: Origin, Sec-Fetch-Dest\r\nCache-Control: no-cache\r\nEtag: W/\"78d-mkO3Fw6ccq7Iu9KmPJZaBYPOx1E\"\r\nContent-Encoding: gzip\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Nginx:1.18.0","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":1933,"size_decoded":1023,"mime_type":"text/html","magic":"HTML document, ASCII text","md5":"81d070ae996df451aebab5dbc1be3810","sha1":"9a43b7170e9c72aec8bbd2a63c965a0583cec751","sha256":"e96c1035f66d48b7f826be0bddaccdcc25213b9df387848e1ed0df8d5da86daa","sha512":"c204d13eb806d782cd67db2f24d14eb158fd6ff4357529347557aae1108c1b187ac40f64c169696f7d8aa1c568918e068e292eae61cb4985a8174a3e5b6bd60a","ssdeep":"","tlshash":"4f4123e618ef9048b10208ad3f5f77192d44805b134cdaa93ead5764cf8979c87d3b8e","first_seen":"2026-07-26T23:24:50.328046Z","last_seen":"2026-07-26T23:25:46.833862Z","times_seen":3,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICA8aGVhZD4KICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIj5pbXBvcnQgeyBpbmplY3RJbnRvR2xvYmFsSG9vayB9IGZyb20gIi9AcmVhY3QtcmVmcmVzaCI7CmluamVjdEludG9HbG9iYWxIb29rKHdpbmRvdyk7CndpbmRvdy4kUmVmcmVzaFJlZyQgPSAoKSA9PiB7fTsKd2luZG93LiRSZWZyZXNoU2lnJCA9ICgpID0+ICh0eXBlKSA9PiB0eXBlOzwvc2NyaXB0PgoKICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii9Adml0ZS9jbGllbnQiPjwvc2NyaXB0PgoKICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04IiAvPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAsIHZpZXdwb3J0LWZpdD1jb3ZlciwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8iIC8+CiAgICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iIzAwMDAwMCIgaWQ9InRoZW1lLWNvbG9yLW1ldGEiIC8+CiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlIiBjb250ZW50PSJibGFjay10cmFuc2x1Y2VudCIgLz4KICAgIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSIgLz4KICAgIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4gLz4KICAgIDxsaW5rCiAgICAgIHJlbD0ic3R5bGVzaGVldCIKICAgICAgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1JbnRlcjp3Z2h0QDQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXAiCiAgICAgIG1lZGlhPSJwcmludCIKICAgICAgb25sb2FkPSJ0aGlzLm1lZGlhPSdhbGwnIgogICAgLz4KICAgIDxub3NjcmlwdD4KICAgICAgPGxpbmsKICAgICAgICBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUludGVyOndnaHRANDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCIKICAgICAgICByZWw9InN0eWxlc2hlZXQiCiAgICAgIC8+CiAgICA8L25vc2NyaXB0PgogICAgPHN0eWxlPgogICAgICBAZm9udC1mYWNlIHsKICAgICAgICBmb250LWZhbWlseTogJ1Byb2R1Y3QgU2Fucyc7CiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1kaXNwbGF5OiBzd2FwOwogICAgICAgIHNyYzogbG9jYWwoJ1Byb2R1Y3QgU2FucycpLCBsb2NhbCgnUHJvZHVjdFNhbnMtUmVndWxhcicpOwogICAgICB9CiAgICAgIEBmb250LWZhY2UgewogICAgICAgIGZvbnQtZmFtaWx5OiAnUHJvZHVjdCBTYW5zJzsKICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LWRpc3BsYXk6IHN3YXA7CiAgICAgICAgc3JjOiBsb2NhbCgnUHJvZHVjdCBTYW5zIE1lZGl1bScpLCBsb2NhbCgnUHJvZHVjdFNhbnMtTWVkaXVtJyk7CiAgICAgIH0KICAgICAgQGZvbnQtZmFjZSB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdQcm9kdWN0IFNhbnMnOwogICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGZvbnQtZGlzcGxheTogc3dhcDsKICAgICAgICBzcmM6IGxvY2FsKCdQcm9kdWN0IFNhbnMgQm9sZCcpLCBsb2NhbCgnUHJvZHVjdFNhbnMtQm9sZCcpOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHRpdGxlPlNpZ24gaW48L3RpdGxlPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxkaXYgaWQ9InJvb3QiPjwvZGl2PgogICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iL3NyYy9tYWluLnRzeCI+PC9zY3JpcHQ+CiAgPC9ib2R5Pgo8L2h0bWw+Cg=="}},"time_used":86,"timings":{"blocked":-1,"dns":20,"connect":15,"send":0,"wait":17,"receive":0,"ssl":33},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DQhT3PVT2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.604Z","timestamp":1785108244604,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DQhT3PVT2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 357\r\nlast-modified: Sun, 26 Jul 2026 22:31:25 GMT\r\netag: \"96ac0d92cda2c6eda06a112793d63ae7\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 d74dec5161d1da37738a65c0df72f8dc.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: rjYos3vmIlhN-Yt9bYPLqviphtTyHMVbCaxWUxff8EGZYHyqVDI4CQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=w5OyrO1DCHE1UFB5jeAHr%2Fg3Os2T02ahJ8lmBMoTHhkZTkZIQeWKHv%2Byq1mZ5IkrZdzHqm6W%2FMf9622FEO1pJI5nc0tTjYXrdneU7%2FrxzmVroZsIRJoLsmBXcnEXQnkyD1ZdlYaWttbaApJao6zW\"}]}\r\ncf-ray: a21727e0cdd70883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":619,"size_decoded":1502,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (498)","md5":"8dd368659ae860655debf548f46388c5","sha1":"b66fcb659d80e009f3fb7b41d079359dff48ecd5","sha256":"d24fb2d7f82fe93aa71358962ba90cb720058b060563fd0fc0b69dd895dbdce7","sha512":"561a50e68c9ad56092d25806be032407c71325abe60aa104a65caf35ff68f561fa377ae38fd96674dfc4a4c704c9064d055d4d99b7285a6963a7824ea29fc307","ssdeep":"","tlshash":"87f0a2b99ef06f658231157df19359012294027787dc9f10f0398b3f13eaac6d964787","first_seen":"2026-07-26T23:24:50.330276Z","last_seen":"2026-07-26T23:25:46.872806Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGYzZTM3MmMzLWQwMGYtNDMxMS05ODFiLWUwYTc4OGYzZWFiYmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWYzZTM3MmMzLWQwMGYtNDMxMS05ODFiLWUwYTc4OGYzZWFiYmApfSkoKX1jYXRjaHt9aW1wb3J0e21kIGFzIGV9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciB0PWUoe3BsYWNlaG9sZGVyOntpZDpgRW1haWxJbnB1dC5lbWFpbGAsZGVmYXVsdE1lc3NhZ2U6YEVtYWlsIGFkZHJlc3NgLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBpbnB1dDphcmlhLWxhYmVsCiAgICAjQ2hhckxpbWl0OiA0NQogICAgI0NvbnRleHQ6IExhYmVsIGZvciBhbiBlbWFpbCBhZGRyZXNzIGlucHV0YH19KTtleHBvcnR7dH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfRFFoVDNQVlQyLmpzLm1hcA=="}},"time_used":117,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":117,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_nKs2bjen2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.608Z","timestamp":1785108244608,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_nKs2bjen2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 1209\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nlast-modified: Sun, 26 Jul 2026 22:31:30 GMT\r\netag: \"971a31cfb7205cd9c3c27c1f73feb84f\"\r\nx-amz-version-id: null\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-server-side-encryption: AES256\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 06cacd0422733e64f8afbe400dd4457c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: mhVfBFsXks-YX2HeIGihbDQvmtNP2NkrZCXPx5NvrWiKwZNn6KBEHA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=dOp77%2FfjpP9Mv8xXxytrJ31xNyP9dXaa2sH32IHfUnQ5w5%2B0rLew%2FAyvoAmXDSMDxxw7ol9qsT0CWG6Fak4ZRPQxrhkHCDlNcIFER8NLcPv4WrRo74yJFpUr53UgHwWCwvYzOmy61pZdmidaDK%2Bq\"}]}\r\ncf-ray: a21727e0cdf30883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":3105,"size_decoded":2355,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (3065)","md5":"89053743c65e40c86ac164560dbb1023","sha1":"62ed9078c1e4c67c2d925883952f7e24d8a5239a","sha256":"4582b4356ddf1a4ce6d8c40c3e4fb0ed879110a5c25aeb8f299b1f29d68c21e0","sha512":"67af2d5c43a350459e3b873e009dbdcb1330732f839751e94c9ca5d2dcdec7f643968a4da9ec6db2b6242409a115af9ac142271dd8513d92f10032856334fe5f","ssdeep":"","tlshash":"ce51e66826b9e4cf52b71914309f0119b136ae8c6f4fc349f771113a26ec53433b9b12","first_seen":"2026-07-26T23:24:50.333438Z","last_seen":"2026-07-26T23:25:46.905833Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDc0MDMwZTZjLTBjYzktNGRkNy05YjdiLWY0MTRhNzI4NzViM2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTc0MDMwZTZjLTBjYzktNGRkNy05YjdiLWY0MTRhNzI4NzViM2ApfSkoKX1jYXRjaHt9aW1wb3J0e2ZmIGFzIGV9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciB0PWUoKSxuPTEyMDAscj0oZSx0LG4pPT57aWYoZTw9MHx8dDw9MHx8bjw9MClyZXR1cm5bMCwwXTtpZihlPD1uJiZ0PD1uKXJldHVybltlLHRdO2xldCByPW4vTWF0aC5tYXgoZSx0KTtyZXR1cm5bTWF0aC5yb3VuZChlKnIpLE1hdGgucm91bmQodCpyKV19LGk9NjUsYT03NSxvPWU9PntpZih0eXBlb2YgZT09YG51bWJlcmApcmV0dXJuIGU+MCYmZTw0ZTM/ZTpudWxsO2lmKHR5cGVvZiBlPT1gc3RyaW5nYCl7bGV0IHQ9TnVtYmVyKGUucmVwbGFjZShgcHhgLGBgKSk7aWYoIWlzTmFOKHQpKXJldHVybiB0PjAmJnQ8NGUzP3Q6bnVsbH1yZXR1cm4gbnVsbH0scz0oe3c6ZSxoOnQscTpuLC4uLnJ9KT0+e2xldCBpPW5ldyBVUkxTZWFyY2hQYXJhbXMoT2JqZWN0LmVudHJpZXMocikucmVkdWNlKChlLFt0LG5dKT0+bj97Li4uZSxbdF06bi50b1N0cmluZygpfTplLHt9KSkscz1vKGUpLGM9byh0KTtpZihzJiZpLnNldChgd2Ascy50b1N0cmluZygpKSxjJiZpLnNldChgaGAsYy50b1N0cmluZygpKSxuKXtsZXQgZT1OdW1iZXIobik8PTB8fE51bWJlcihuKT4xMDA/YTpuO2kuc2V0KGBxYCxlLnRvU3RyaW5nKCkpfXJldHVybiBpLnRvU3RyaW5nKCl9LGM9ZT0+ZT09PWBkZWZhdWx0YD9gYDplPT09YGRlc2t0b3BgP2AobWluLXdpZHRoOiA3NjhweClgOmAobWF4LXdpZHRoOiA3NjdweClgLGw9ZT0+ZS5zdGFydHNXaXRoKGAvL2ltYWdlcy5jdGZhc3NldHMubmV0L2ApfHxlLnN0YXJ0c1dpdGgoYGh0dHBzOi8vaW1hZ2VzLmN0ZmFzc2V0cy5uZXQvYCksdT0oe2ltYWdlOmUsYXZpZlF1YWxpdHk6dCx3ZWJwUXVhbGl0eTppLHNpemU6YSxjb250ZW50ZnVsRXh0cmFQYXJhbXM6b30pPT57dmFyIGwsdSxkO2xldCBmPSEhKChsPWUuc3JjKSE9bnVsbCYmbC5lbmRzV2l0aChgLmdpZmApKSxbcCxtXT1yKHBhcnNlSW50KGAke2Uud2lkdGg/P2AwYH1gKSxwYXJzZUludChgJHtlLmhlaWdodD8/YDBgfWApLG4pLGg9W3tzcmNTZXQ6YCR7ZS5zcmN9PyR7cyh7Zm06YGF2aWZgLHc6Zj9wOmUud2lkdGgsaDpmP206ZS5oZWlnaHQscTp0LC4uLm99KX1gLHR5cGU6YGltYWdlL2F2aWZgLG1lZGlhOmMoYSksd2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHR9LHtzcmNTZXQ6YCR7ZS5zcmN9PyR7cyh7Zm06YHdlYnBgLHc6ZS53aWR0aCxoOmUuaGVpZ2h0LHE6aSwuLi5vfSl9YCx0eXBlOmBpbWFnZS93ZWJwYCxtZWRpYTpjKGEpLHdpZHRoOmUud2lkdGgsaGVpZ2h0OmUuaGVpZ2h0fV07cmV0dXJuKCh1PWUuc3JjKSE9bnVsbCYmdS5lbmRzV2l0aChgLmpwZ2ApfHwoZD1lLnNyYykhPW51bGwmJmQuZW5kc1dpdGgoYC5qcGVnYCkpJiZoLnB1c2goe3NyY1NldDpgJHtlLnNyY30/JHtzKHtmbTpganBnYCxmbDpgcHJvZ3Jlc3NpdmVgLHc6ZS53aWR0aCxoOmUuaGVpZ2h0LHE6aSwuLi5vfSl9YCx0eXBlOmBpbWFnZS9qcGVnYCxtZWRpYTpjKGEpLHdpZHRoOmUud2lkdGgsaGVpZ2h0OmUuaGVpZ2h0fSksaH0sZD0oe2ltYWdlRGV0YWlsczplLGF2aWZRdWFsaXR5OnQsd2VicFF1YWxpdHk6bixjb250ZW50ZnVsRXh0cmFQYXJhbXM6cn0pPT57bGV0e2Rlc2t0b3A6aSxtb2JpbGU6YSwuLi5vfT1lLHM9W107cmV0dXJuIGkmJmwoaS5zcmMpJiZzLnB1c2goLi4udSh7aW1hZ2U6aSxhdmlmUXVhbGl0eTp0LHdlYnBRdWFsaXR5Om4sc2l6ZTpgZGVza3RvcGAsY29udGVudGZ1bEV4dHJhUGFyYW1zOnJ9KSksYSYmbChhLnNyYykmJnMucHVzaCguLi51KHtpbWFnZTphLGF2aWZRdWFsaXR5OnQsd2VicFF1YWxpdHk6bixzaXplOmBtb2JpbGVgLGNvbnRlbnRmdWxFeHRyYVBhcmFtczpyfSkpLCFpJiYhYSYmbyE9bnVsbCYmby5zcmMmJmwoby5zcmMpJiZzLnB1c2goLi4udSh7aW1hZ2U6byxhdmlmUXVhbGl0eTp0LHdlYnBRdWFsaXR5Om4sc2l6ZTpgZGVmYXVsdGAsY29udGVudGZ1bEV4dHJhUGFyYW1zOnJ9KSksc307ZnVuY3Rpb24gZih7YWx0OmUsaW1hZ2VEZXRhaWxzOm4sY2xhc3NOYW1lOnIsbG9hZGluZzpvLHdlYnBRdWFsaXR5OnM9YSxhdmlmUXVhbGl0eTpjPWksY29udGVudGZ1bEV4dHJhUGFyYW1zOmwsb2JqZWN0Rml0OnUsc3R5bGU6ZixwaWN0dXJlU3R5bGU6cH0pe3ZhciBtO2xldCBoPW4uZGVza3RvcD8/bi5tb2JpbGU/P24sZz0hKGg9PW51bGx8fChtPWguc3JjKT09bnVsbCkmJm0uZW5kc1dpdGgoYC5zdmdgKT9bXTpkKHtpbWFnZURldGFpbHM6bixhdmlmUXVhbGl0eTpjLHdlYnBRdWFsaXR5OnMsY29udGVudGZ1bEV4dHJhUGFyYW1zOmx9KTtyZXR1cm4oMCx0LmpzeHMpKGBwaWN0dXJlYCx7ImRhdGEtdGVzdGlkIjpgbmV4dC1nZW4taW1hZ2VgLHN0eWxlOntkaXNwbGF5OmBpbmhlcml0YCx3aWR0aDpgMTAwJWAsLi4ucH0sY2hpbGRyZW46W2cubWFwKChlLG4pPT4oMCx0LmpzeCkoYHNvdXJjZWAseyJkYXRhLXRlc3RpZCI6YG5leHQtZ2VuLWltYWdlLXNvdXJjZS0ke259YCxzcmNTZXQ6ZS5zcmNTZXQsdHlwZTplLnR5cGUsbWVkaWE6ZS5tZWRpYSx3aWR0aDplLndpZHRoLGhlaWdodDplLmhlaWdodH0sZS5zcmNTZXQpKSwoMCx0LmpzeCkoYGltZ2AseyJkYXRhLXRlc3RpZCI6YG5leHQtZ2VuLWltYWdlLWltZ2AsY2xhc3NOYW1lOnIsc3JjOmguc3JjLGFsdDplLCJhcmlhLWxhYmVsIjplLGxvYWRpbmc6byxoZWlnaHQ6aC5oZWlnaHQsd2lkdGg6aC53aWR0aCxzdHlsZTp7b2JqZWN0Rml0OnUsLi4uZn19KV19KX1leHBvcnR7ZiBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19uS3MyYmplbjIuanMubWFw"}},"time_used":121,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":121,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CDcXXtyq2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.620Z","timestamp":1785108244620,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CDcXXtyq2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 535\r\nlast-modified: Sun, 26 Jul 2026 22:31:20 GMT\r\netag: \"2e7dfc8a194e3b084105c81cfd180430\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 06cb9bed6e3c9f95e430c22405e0fd84.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: 5GKgxwPKcaTr97qaxGE4pBW-F4OuuRRwglnmOHFasS8hrQ0TqnfBcw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=8zBOe6Z7QvidpeC9Zf3%2Fdk%2BKLcB%2FVgwIpplBr9jaudotvLu%2Bq0V%2FfeobZWddaTrP2RKe%2BJJzAqZ63lcjSX%2BNXqsKhDgW7QX482VcFG%2F3t4ZW4rHPkqc9vhuRdwwY6neIa62WC%2BK5Vg%2BTIJgX3IYQ\"}]}\r\ncf-ray: a21727e0ee1c0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":1090,"size_decoded":1692,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1050)","md5":"ec491b28d074d4bd56b205eee88e6c87","sha1":"f53bbaf7836db43cb55b031d611c534fdfe2b09d","sha256":"e088a0975a772dffe78d15c192bf4f87e9f99bad89e12464d383f3ac05cfaba1","sha512":"7c0c434fd200b1c7e408ad18b77e1fe63051584311aadf8599068813ea925c851aa4113243b74f28f81faf7e21f1a3c07e7618d670c3add361c8e1f1d9622376","ssdeep":"","tlshash":"1811038ed9b837766115017cc00661412338600687884aa1f2195e7d279199d8487b6f","first_seen":"2026-07-26T23:24:50.335928Z","last_seen":"2026-07-26T23:25:46.901143Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDViNDhkNTlmLTZmYTQtNDIxOC1hOWVhLThiMTQ4ZWZmMmIxMmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTViNDhkNTlmLTZmYTQtNDIxOC1hOWVhLThiMTQ4ZWZmMmIxMmApfSkoKX1jYXRjaHt9aW1wb3J0e24gYXMgZX1mcm9tIi4vY19ES1Q5bFFDNTIuanMiO2ltcG9ydHt0fWZyb20iLi9jX0NmVDBfVG1vMi5qcyI7aW1wb3J0e1dwIGFzIG4sZmYgYXMgcixoZiBhcyBpfWZyb20iLi9lX0NycVJXMXdQLmpzIjtpbXBvcnR7dCBhcyBhfWZyb20iLi9jX0NrTWR5MV9rMi5qcyI7dmFyIG89cigpLHM9bihpKCkpO2Z1bmN0aW9uIGMoZSl7cmV0dXJuIGUucmVkdWNlKChlLHQpPT4oey4uLmUsW3QubmFtZV06dH0pLHt9KX1mdW5jdGlvbiBsKGUsdD1gY29udHJvbGApe3JldHVybiBlW3RdfHxudWxsfWZ1bmN0aW9uIHUoe3ZhcmlhbnRzOm4sZXhwZXJpbWVudE5hbWU6cixpbmNsdWRlZExhbmd1YWdlczppLGluY2x1ZGVkQ291bnRyaWVzOnUsb3B0aW9uczpkfSl7bGV0IGY9KDAscy51c2VNZW1vKSgoKT0+KG49PW51bGw/dm9pZCAwOm4ubWFwKHQ9PmUodCkpKXx8W10sW25dKSxwPWEoe2V4cGVyaW1lbnROYW1lOnIsaW5jbHVkZWRDb3VudHJpZXM6dSxpbmNsdWRlZExhbmd1YWdlczppLHNlbGVjdGVkVmFyaWFudHM6Zn0pLG09KDAscy51c2VNZW1vKSgoKT0+YyhmKSxbZl0pLGg9KDAscy51c2VNZW1vKSgoKT0+bChtLHApLFttLHBdKTtyZXR1cm4gaD8oMCxvLmpzeCkodCx7Y29udGVudDpoLmNvbnRlbnR8fFtdLGFkZGl0aW9uYWxQcm9wczpkfSk6bnVsbH12YXIgZD0oMCxzLm1lbW8pKHUpO2V4cG9ydHtsIGFzIG4sYyBhcyByLGQgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQ0RjWFh0eXEyLmpzLm1hcA=="}},"time_used":107,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":107,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Dt2kXcs2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.632Z","timestamp":1785108244632,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_Dt2kXcs2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 8514\r\nlast-modified: Sun, 26 Jul 2026 22:31:27 GMT\r\netag: \"1fa32c8397dc6878c6fd355156c4024a\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 d74dec5161d1da37738a65c0df72f8dc.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: uHfuZ8eJqug_DZeNi3XqFOOHF7j6YaPA8FEjCtJYCf6mYH_c0wuwFQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ZfQ5zdxMKgrgUu52AiMgXCQkWJteiLNrjbKmByoKe6JD2WAqOx8clikWgygkkEABzl5Mh6cOIp3ZEzqQfQiq3T6MmH32AOqRSk0iXipYISMSRbObLJ%2Ft6nyzuBMucI3Oa8HT2BqD7kbRvYOpVuVn\"}]}\r\ncf-ray: a21727e0fe4b0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":29066,"size_decoded":9654,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (10990)","md5":"0e4287c008daef7d8ceb906eb38fbf06","sha1":"73e60f379f50299523d1ae3fe713d4803e3d4cc8","sha256":"655ee29250ccbb366be53bcc4a4949ce69d91dbd1f87ca33ca6ad6d9a29b5156","sha512":"0d75405464911415997ce70b60508c178c1eee834551153ab7ebd9074fae8a0e60a6d02e6da611e0f5f36ab81795e6fa43a9fa441a651e09935619c2bb734b8f","ssdeep":"768:ieaehfPqyiL7FrqdKppACdgOhg1uJjyv9P3DcZKw6Y5Gz0tP322ufknDx:se588dK3vdgEJGW5Gz0P","tlshash":"02d20b9ee1203678711e897988b3624d761ed20dda4d0dac782c5e0d17cafe4b163f9b","first_seen":"2026-07-26T23:24:50.337592Z","last_seen":"2026-07-26T23:25:46.861299Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDVlZDUyOGMzLTc4NTUtNGI4Yi1hOWUzLTVkMzhjOTQ0NDI3ZWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTVlZDUyOGMzLTc4NTUtNGI4Yi1hOWUzLTVkMzhjOTQ0NDI3ZWApfSkoKX1jYXRjaHt9aW1wb3J0e24gYXMgZSx0fWZyb20iLi9jX0NVQ2lVWktkLmpzIjtpbXBvcnR7dCBhcyBufWZyb20iLi9jX0JZeGRUT2tkLmpzIjtpbXBvcnR7dCBhcyByfWZyb20iLi9jX0ZqXzVCRjVELmpzIjtpbXBvcnR7biBhcyBpLHQgYXMgYX1mcm9tIi4vY19DT0p3R3FubDIuanMiO2ltcG9ydHtyIGFzIG8sdCBhcyBzfWZyb20iLi9jX2R1YjRpYVJILmpzIjtpbXBvcnR7biBhcyBjLHQgYXMgbH1mcm9tIi4vY19ERzJ0aDREaS5qcyI7aW1wb3J0e2EgYXMgdSxuIGFzIGQsciBhcyBmLHQgYXMgcH1mcm9tIi4vY19DbkJadGV0Ni5qcyI7aW1wb3J0e3QgYXMgbX1mcm9tIi4vY19DYzZxOUZwZC5qcyI7aW1wb3J0e3IgYXMgaH1mcm9tIi4vY190bEh4RTBGVi5qcyI7aW1wb3J0e0NzIGFzIGcsSmMgYXMgXyxKdCBhcyBlZSxMaSBhcyB2LExvIGFzIHRlLE1hIGFzIHksUHQgYXMgbmUsU2wgYXMgcmUsVGMgYXMgYixXYyBhcyBpZSxXcCBhcyBhZSxYdCBhcyB4LFljIGFzIFMsX2EgYXMgQyxfZCBhcyB3LGJsIGFzIFQsYnQgYXMgRSxjYSBhcyBELGNkIGFzIE8sZWkgYXMgb2UsZWwgYXMgayxmZiBhcyBzZSxoZiBhcyBjZSxpYSBhcyBBLGphIGFzIGosamkgYXMgTSxtZCBhcyBsZSxwYSBhcyB1ZSxzYSBhcyBOLHNsIGFzIFAsdGkgYXMgZGUsdGwgYXMgRix0byBhcyBmZSx1ZCBhcyBwZSx4bCBhcyBJLHphIGFzIEx9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO2ltcG9ydHthIGFzIFIsaSBhcyB6LG4gYXMgQixyIGFzIG1lLHQgYXMgVn1mcm9tIi4vY19CRWphdGdkUDIuanMiO2ltcG9ydHt0IGFzIGhlfWZyb20iLi9jX0NrTWR5MV9rMi5qcyI7dmFyIEg9c2UoKSxnZT17TGVnYWxUZXh0TGluazpgbGVnYWxUZXh0TGlua2B9LFU9TChmdW5jdGlvbih7Ym9keTplLGNsYXNzTmFtZTp0LHRlc3RJRDpuLHNob3dEaXZpZGVyOnI9ITAsdGV4dEFsaWduOmk9YGNlbnRlcmAsc2VjdGlvblNldHRpbmdzOmEsbm9TcGFjaW5nOm89ITF9KXtsZXQgcz1mZShnZS5MZWdhbFRleHRMaW5rKTtyZXR1cm4oMCxILmpzeHMpKEEse2NsYXNzTmFtZTp0LHRlc3RJRDpuLHNlY3Rpb25TZXR0aW5nczphLG5vU3BhY2luZzpvLGNoaWxkcmVuOltyJiYoMCxILmpzeCkoayx7ZGlyZWN0aW9uOmBob3Jpem9udGFsYCwiZGF0YS10ZXN0aWQiOmBsZWdhbC1kaXZpZGVyYH0pLCgwLEguanN4KShPLHttYXhXaWR0aDpgOTAwcHhgLGFsaWduU2VsZjpgY2VudGVyYCxwYWRkaW5nVG9wOnI/dWVbYGNvbnRhaW5lci1nYXBgXTp2b2lkIDAsY2hpbGRyZW46KDAsSC5qc3gpKE0se2ZvbnQ6YGxlZ2FsYCxjb2xvcjpgZmdNdXRlZGAsY29udGVudDplLHRleHRBbGlnbjppPT09YGxlZnRgP2BzdGFydGA6YGNlbnRlcmAsb25SaWNoVGV4dExpbmtDbGljazpzfSl9KV19KX0pLFc9YWUoY2UoKSksX2U9ZCh7Y3VzdG9tUmVuZGVyT3B0aW9uczp7W04uSFlQRVJMSU5LXTplPT51KHtkYXRhUWE6Yy5MZWdhbFJpY2hUZXh0LC4uLmV9KSxbRC5QQVJBR1JBUEhdOmU9PmYoey4uLmUsdmFyaWFudDpgbGVnYWxgLGRpc3BsYXk6YGlubGluZWAsY29sb3I6ZT09bnVsbD92b2lkIDA6ZS5zZWNvbmRhcnlDb2xvcn0pLFtELkhFQURJTkdfNV06ZT0+KHQsbik9PigwLEguanN4KShsLHt2YXJpYW50OmBsYWJlbDFgLGFzOmBwYCxjb2xvcjplPT1udWxsP3ZvaWQgMDplLmNvbG9yLHNwYWNpbmdCb3R0b206MyxjaGlsZHJlbjpufSl9LGhhc092ZXJyaWRlQ29udGVudGZ1bFBhcmFncmFwaFdyYXBwaW5nOiEwfSk7ZnVuY3Rpb24gdmUoe2xlZ2FsRGlzY2xhaW1lcjplLGNvbG9yOnQsZm9yZWdyb3VuZElubGluZUxpbms6biwuLi5yfSl7cmV0dXJuKDAsSC5qc3gpKG8se2ZsZXhEaXJlY3Rpb246YGNvbHVtbmAsYWxpZ25JdGVtczpgY2VudGVyYCwuLi5yLGNoaWxkcmVuOigwLEguanN4KShvLHtmbGV4RGlyZWN0aW9uOmBjb2x1bW5gLGNoaWxkcmVuOigwLEguanN4KShwLHtjb250ZW50OmUscmljaFRleHRPcHRpb25zOl9lLGNvbG9yOnQsc2Vjb25kYXJ5Q29sb3I6dCxwYXJhZ3JhcGhTcGFjaW5nVG9wOjIsZm9yZWdyb3VuZElubGluZUxpbms6bn0pfSl9KX1mdW5jdGlvbiB5ZSh7Y29sdW1uOmV9KXtyZXR1cm4oMCxILmpzeCkoTyx7ZGlzcGxheTpgZmxleGAsZmxleERpcmVjdGlvbjpgY29sdW1uYCxjaGlsZHJlbjplLmZpbHRlcihlPT5lLmxpbmtzLmxlbmd0aD4wKS5tYXAoKHtjYXRlZ29yeTplLGxpbmtzOnR9LG4pPT4oMCxILmpzeHMpKE8se3dpZHRoOmAxMDAlYCxkaXNwbGF5OmBibG9ja2AscGFkZGluZ0JvdHRvbTp7YmFzZTozLHBob25lOjJ9LGNoaWxkcmVuOlsoMCxILmpzeCkoaWUse2FzOmBwYCxjb2xvcjpgZmdgLGZvbnRTaXplOmBib2R5YCxmb250V2VpZ2h0OmBoZWFkbGluZWAsZGlzcGxheTpgYmxvY2tgLGNoaWxkcmVuOmV9KSwoMCxILmpzeCkoTyx7YXM6YHVsYCxwYWRkaW5nVG9wOjEsZmxleERpcmVjdGlvbjpgY29sdW1uYCxzdHlsZTp7bGlzdFN0eWxlVHlwZTpgbm9uZWAscGFkZGluZ0lubGluZTowLG1hcmdpbkJsb2NrOjB9LGNoaWxkcmVuOnQuZmlsdGVyKGU9PiEhZS5sYWJlbCYmKCEhZS51cmx8fCEhZS5vbkNsaWNrKSkubWFwKCh7bGFiZWw6ZSx1cmw6dCxvbkNsaWNrOm4sdGFyZ2V0OnJ9LGkpPT57bGV0IGE9KDAsSC5qc3gpKF8se2FzOmBzcGFuYCxjb2xvcjpgZmdNdXRlZGAsY2hpbGRyZW46ZX0pO3JldHVybiBuPygwLEguanN4KShPLHthczpgbGlgLHBhZGRpbmdCb3R0b206MSxjaGlsZHJlbjooMCxILmpzeCkoUCx7b25DbGljazpuLGFsaWduSXRlbXM6YGNlbnRlcmAsanVzdGlmeUNvbnRlbnQ6YGNlbnRlcmAsY2hpbGRyZW46YX0pfSxpKTooMCxILmpzeCkoTyx7YXM6YGxpYCxwYWRkaW5nQm90dG9tOi41LGNoaWxkcmVuOigwLEguanN4KShQLHtyZWw6cj09PWBfYmxhbmtgP2Bub29wZW5lciBub3JlZmVycmVyYDp2b2lkIDAsYXM6YGFgLGhyZWY6dCx0YXJnZXQ6cixhbGlnbkl0ZW1zOmBjZW50ZXJgLGp1c3RpZnlDb250ZW50OmBjZW50ZXJgLGNoaWxkcmVuOmF9KX0saSl9KX0pXX0sbikpfSl9dmFyIGJlPWxlKHtpbWdBbHRUZXh0OntpZDpgU2hhcmVkRm9vdGVyLmltZ0FsdFRleHRgLGRlZmF1bHRNZXNzYWdlOmBDb2luYmFzZSBMb2dvYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDYwCiAgICAjQ29udGV4dDogQ29pbmJhc2UgbG9nbyBhbHQgdGV4dC5gfX0pO2Z1bmN0aW9uIHhlKHtzb2NpYWxNZWRpYUxpbmtzOmU9W10sbGVnYWxEaXNjbGFpbWVyOnQsY29sdW1uT25lOm49W10sY29sdW1uVHdvOnI9W10sY29sdW1uVGhyZWU6aT1bXSxjdXN0b21Mb2dvOmEsY3VzdG9tTG9nb0hlaWdodDpvLGNvcHlyaWdodFRleHQ6bD1gQ29pbmJhc2VgLGdsb2JhbE5hdkhlaWdodDp1fSl7dmFyIGQsZjtsZXR7Zm9ybWF0TWVzc2FnZTpwfT13KCk7cmV0dXJuKDAsSC5qc3gpKGgse2NoaWxkcmVuOigwLEguanN4KShzLHthbmFseXRpY3NQcmVmaXg6YEdsb2JhbEZvb3RlcmAsY2hpbGRyZW46KDAsSC5qc3gpKFQse2FzOmBzZWN0aW9uYCxiYWNrZ3JvdW5kOmBiZ0FsdGVybmF0ZWAscGFkZGluZ1g6e2Jhc2U6Mix0YWJsZXQ6MyxkZXNrdG9wOjR9LHBhZGRpbmdZOntiYXNlOjYsdGFibGV0OjgsZGVza3RvcDoxMH0sY2hpbGRyZW46KDAsSC5qc3hzKShULHt3aWR0aDpgMTAwJWAsbWF4V2lkdGg6e2Rlc2t0b3A6MTYwMCx0YWJsZXQ6MTIyOH0sc3R5bGU6e21hcmdpbjpgMCBhdXRvYH0sY2hpbGRyZW46WygwLEguanN4KSh3ZSx7aWQ6YGZvb3Rlci1zaXRlLWluZGV4YCxzdHlsZTp7c2Nyb2xsTWFyZ2luQmxvY2tTdGFydDp1P3UrNDA6MjEwfX0pLHQmJigwLEguanN4KShPLHtkaXNwbGF5OmBmbGV4YCxmbGV4RGlyZWN0aW9uOmBjb2x1bW5gLGp1c3RpZnlDb250ZW50OmBzdGFydGAscGFkZGluZ0JvdHRvbTo4LGNoaWxkcmVuOigwLEguanN4KSh2ZSx7bGVnYWxEaXNjbGFpbWVyOnR9KX0pLCgwLEguanN4cykoU2Use2JhY2tncm91bmQ6YGJnQWx0ZXJuYXRlYCxjaGlsZHJlbjpbYT8oMCxILmpzeCkoTyx7cGFkZGluZ0JvdHRvbTp7dGFibGV0OjUscGhvbmU6NH0saGVpZ2h0Om98fDIwLHdpZHRoOmBhdXRvYCxjaGlsZHJlbjooMCxILmpzeCkobSx7YWx0OihhPT1udWxsfHwoZD1hLmZpZWxkcyk9PW51bGw/dm9pZCAwOmQuZGVzY3JpcHRpb24pfHxgYCxzcmM6KGE9PW51bGx8fChmPWEuZmllbGRzKT09bnVsbHx8KGY9Zi5maWxlKT09bnVsbD92b2lkIDA6Zi51cmwpfHxgYH0pfSk6KDAsSC5qc3gpKENlLHtwYWRkaW5nQm90dG9tOnt0YWJsZXQ6NSxwaG9uZTo0fSxuYW1lOmBjb2luYmFzZWAsc2l6ZTpgbGAsYWNjZXNzaWJpbGl0eUxhYmVsOnAoYmUuaW1nQWx0VGV4dCl9KSwoMCxILmpzeCkoTyx7ZGlzcGxheTpgZ3JpZGAsY29sdW1uR2FwOjQsZ3JpZFRlbXBsYXRlQ29sdW1uczp7YmFzZTpgMWZyYCx0YWJsZXQ6YDFmciAxZnJgLGRlc2t0b3A6YDFmciAxZnIgMWZyYH0sY2hpbGRyZW46W24scixpXS5tYXAoKGUsdCk9PigwLEguanN4KShzLHthbmFseXRpY3NQcmVmaXg6YCR7Yy5Db2x1bW59JHt0fWAsY2hpbGRyZW46KDAsSC5qc3gpKHllLHtjb2x1bW46ZX0pfSx0KSl9KV19KSwoMCxILmpzeCkoSSx7Z2FwOjEsY2hpbGRyZW46ZS5tYXAoKHtsYWJlbDplLHVybDp0LHRhcmdldDpufSxyKT0+KDAsSC5qc3gpKFcuRnJhZ21lbnQse2NoaWxkcmVuOigwLEguanN4KShTLHt0YXJnZXQ6bixocmVmOnQsImRhdGEtcWEiOmAke2MuU29jaWFsTWVkaWF9JHtyfWAsY2hpbGRyZW46KDAsSC5qc3gpKF8se2FzOmBzcGFuYCxjb2xvcjpgZmdgLGNoaWxkcmVuOmV9KX0pfSxyKSl9KSwoMCxILmpzeCkoayx7Y29sb3I6YGJnTGluZWAscGFkZGluZ1k6M30pLCgwLEguanN4KShPLHtkaXNwbGF5OmBmbGV4YCxmbGV4RGlyZWN0aW9uOmBjb2x1bW5gLGdhcDoxLGNoaWxkcmVuOigwLEguanN4cykoXyx7YXM6YHBgLGNvbG9yOmBmZ2AsZm9udEZhbWlseTpgY2FwdGlvbmAsdGV4dFRyYW5zZm9ybTpgbm9uZWAsZGlzcGxheTpgYmxvY2tgLGNoaWxkcmVuOltgwqkgYCxuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksYCBgLGxdfSl9KV19KX0pfSl9KX12YXIgU2U9QyhPKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgR2xvYmFsRm9vdGVyX19Gb290ZXJXcmFwcGVyYCxjb21wb25lbnRJZDpgc2MtMWJjMDBhMWYtMGB9KShbYGRpc3BsYXk6Z3JpZDt3aWR0aDoxMDAlO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7QG1lZGlhIGAsYHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDJmcjt9YF0scGUuZGVza3RvcCksQ2U9QyhyZSkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YEdsb2JhbEZvb3Rlcl9fU3R5bGVkSWNvbmAsY29tcG9uZW50SWQ6YHNjLTFiYzAwYTFmLTFgfSkoW2AmLHNwYW57d2lkdGg6NjRweDtoZWlnaHQ6MTAwJTtmb250LXNpemU6NjRweDt9YF0pLHdlPUMuZGl2LndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBHbG9iYWxGb290ZXJfX0Zvb3RlckFuY2hvcmAsY29tcG9uZW50SWQ6YHNjLTFiYzAwYTFmLTJgfSkoW2B3aWR0aDowO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuO2BdKSxHPWBodHRwczovL2FwcC5jb250ZW50ZnVsLmNvbS9zcGFjZXNgO2Z1bmN0aW9uIFRlKHtjb21wb25lbnQ6ZSxpbmRleDp0LHNwYWNlSWQ6bn0pe3ZhciByO2xldCBpPWUuZXhwZXJpbWVudE5hbWV8fGBgLGE9ZS52YXJpYW50c3x8W10sbz1oZSh7ZXhwZXJpbWVudE5hbWU6aSxpbmNsdWRlZENvdW50cmllczplLmluY2x1ZGVkQ291bnRyaWVzfHxbXSxpbmNsdWRlZExhbmd1YWdlczplLmluY2x1ZGVkTGFuZ3VhZ2VzfHxbXSxzZWxlY3RlZFZhcmlhbnRzOmF9KXx8KGEuc29tZShlPT5lLm5hbWU9PT1gY29udHJvbGApP2Bjb250cm9sYDooKHI9YVswXSk9PW51bGw/dm9pZCAwOnIubmFtZSl8fGB1bmtub3duYCkscz0oMCxXLnVzZVJlZikobnVsbCksYz0oMCxXLnVzZUNhbGxiYWNrKShlPT4oKT0+e1IoZSxzKX0sW10pO2Z1bmN0aW9uIGwoZSl7bGV0IHQ9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7cmV0dXJuIHQuc2VhcmNoUGFyYW1zLnNldChpLGUudmFyaWFudE5hbWUpLHQudG9TdHJpbmcoKX1sZXQgdT1uZXcgTWFwO3JldHVybiBlLnZhcmlhbnRzJiZBcnJheS5pc0FycmF5KGUudmFyaWFudHMpJiZlLnZhcmlhbnRzLmZvckVhY2goZT0+e2UuY29udGVudCYmQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpJiZlLmNvbnRlbnQuZm9yRWFjaCh0PT57aWYodC5jb250ZW50VHlwZUlkJiZ0LmlkKXtsZXQgbj1gJHt0LmNvbnRlbnRUeXBlSWR9LSR7dC5pZH0tJHtlLm5hbWV9YDt1LnNldChuLHtjb250ZW50VHlwZUlkOnQuY29udGVudFR5cGVJZCxpZDp0LmlkLHZhcmlhbnROYW1lOmUubmFtZXx8YHVua25vd25gfSl9fSl9KSwoMCxILmpzeCkoYGRpdmAse3N0eWxlOnttYXJnaW5MZWZ0OmAwLjVyZW1gfSxjaGlsZHJlbjooMCxILmpzeCkoRix7Y29tcGFjdDohMCx0aXRsZTpgJHt0KzF9LiBleHBlcmltZW50YCxkZXNjcmlwdGlvbjooMCxILmpzeHMpKFQse2dhcDouNSxjaGlsZHJlbjpbKDAsSC5qc3gpKGBkaXZgLHtzdHlsZTp7Zm9udFNpemU6YDAuNzVyZW1gLGNvbG9yOmB2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSlgLGZvbnRGYW1pbHk6YG1vbm9zcGFjZWB9LGNoaWxkcmVuOmUuaWR9KSwoZT09bnVsbD92b2lkIDA6ZS5pZCkmJigwLEguanN4cykoSSx7Z2FwOjIsY2hpbGRyZW46WygwLEguanN4KShiLHthY2Nlc3NpYmlsaXR5TGFiZWw6YE9wZW4gaW4gQ29udGVudGZ1bGAsbmFtZTpgY29tcG9zZWAsdmFyaWFudDpgc2Vjb25kYXJ5YCxjb21wYWN0OiEwLGFzOmBhYCxocmVmOmBodHRwczovL2FwcC5jb250ZW50ZnVsLmNvbS9zcGFjZXMvJHtufS9lbnRyaWVzLyR7ZS5pZH1gLHRhcmdldDpgX2JsYW5rYH0pLCgwLEguanN4KShiLHthY2Nlc3NpYmlsaXR5TGFiZWw6YFByZXZpZXcgY29tcG9uZW50YCxuYW1lOmBhcGlgLHZhcmlhbnQ6YHNlY29uZGFyeWAsY29tcGFjdDohMCxhczpgYWAsaHJlZjpgL2NkeHYyL3ByZXZpZXc/ZW50cmllcz0ke2UuaWR9YCx0YXJnZXQ6YF9ibGFua2B9KSwoMCxILmpzeCkoYix7YWNjZXNzaWJpbGl0eUxhYmVsOmBPcGVuIGluIENpZmVyYCxuYW1lOmBleHRlcm5hbExpbmtgLHZhcmlhbnQ6YHNlY29uZGFyeWAsY29tcGFjdDohMCxhczpgYWAsaHJlZjpgaHR0cHM6Ly9kYXRhLmNiaHEubmV0L2NpZmVyL2V4cGVyaW1lbnQvJHtpfWAsdGFyZ2V0OmBfYmxhbmtgfSldfSksdS5zaXplPjAmJigwLEguanN4KShULHtnYXA6MixwYWRkaW5nVG9wOjEscGFkZGluZ1N0YXJ0OjIsY2hpbGRyZW46QXJyYXkuZnJvbSh1LnZhbHVlcygpKS5tYXAoZT0+e2xldCB0PWUudmFyaWFudE5hbWU9PT1vO3JldHVybigwLEguanN4cykoVCx7Z2FwOjEsY2hpbGRyZW46WygwLEguanN4KSh2LHtzaXplOmBzbWFsbGAsdmFyaWFudDpgJHtlLnZhcmlhbnROYW1lPT09bz9gcHJpbWFyeWA6YHNlY29uZGFyeWB9YCxjb21wb25lbnRJZDplLnZhcmlhbnROYW1lLGFzOmBhYCxocmVmOmwoZSksbGFiZWw6YCR7ZS5jb250ZW50VHlwZUlkfSAoJHtlLnZhcmlhbnROYW1lfSlgfSxgJHtlLmNvbnRlbnRUeXBlSWR9LSR7ZS5pZH0tJHtlLnZhcmlhbnROYW1lfWApLCgwLEguanN4cykoSSx7Z2FwOjIsY2hpbGRyZW46W3QmJigwLEguanN4KShiLHthY2Nlc3NpYmlsaXR5TGFiZWw6YFNjcm9sbCB0byBjb21wb25lbnRgLG5hbWU6YHNjYW5RckNvZGVgLHZhcmlhbnQ6YHNlY29uZGFyeWAsY29tcGFjdDohMCxvbkNsaWNrOmMoZS5pZCl9KSwoMCxILmpzeCkoYix7YWNjZXNzaWJpbGl0eUxhYmVsOmBPcGVuIGluIENvbnRlbnRmdWxgLG5hbWU6YGNvbXBvc2VgLHZhcmlhbnQ6YHNlY29uZGFyeWAsY29tcGFjdDohMCxhczpgYWAsaHJlZjpgaHR0cHM6Ly9hcHAuY29udGVudGZ1bC5jb20vc3BhY2VzLyR7bn0vZW50cmllcy8ke2UuaWR9YCx0YXJnZXQ6YF9ibGFua2B9KSwoMCxILmpzeCkoYix7YWNjZXNzaWJpbGl0eUxhYmVsOmBQcmV2aWV3IGNvbXBvbmVudGAsbmFtZTpgYXBpYCx2YXJpYW50OmBzZWNvbmRhcnlgLGNvbXBhY3Q6ITAsYXM6YGFgLGhyZWY6YC9jZHh2Mi9wcmV2aWV3P2VudHJpZXM9JHtlLmlkfWAsdGFyZ2V0OmBfYmxhbmtgfSldfSldfSxgJHtlLmNvbnRlbnRUeXBlSWR9LSR7ZS5pZH0tJHtlLnZhcmlhbnROYW1lfWApfSl9KV19KX0pfSwoZT09bnVsbD92b2lkIDA6ZS5pZCl8fHQpfWZ1bmN0aW9uIEVlKHtwYWdlRGF0YTplLHNwYWNlSWQ6bn0pe3ZhciByLGksYTtsZXQgbz0oZT09bnVsbHx8KHI9ZS5jb250ZW50KT09bnVsbD92b2lkIDA6ci5jb21wb25lbnRzKSYmQXJyYXkuaXNBcnJheShlLmNvbnRlbnQuY29tcG9uZW50cykmJmUuY29udGVudC5jb21wb25lbnRzLmxlbmd0aD4wLHM9KDAsVy51c2VSZWYpKG51bGwpLGM9KDAsVy51c2VDYWxsYmFjaykoZT0+YCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vY2R4djIvcHJldmlldz9lbnRyaWVzPSR7ZX1gLFtdKSxsPSgwLFcudXNlQ2FsbGJhY2spKGU9PigpPT57d2luZG93Lm9wZW4oYCR7R30vJHtufS9lbnRyaWVzLyR7ZX1gLGBfYmxhbmtgKX0sW25dKSx1PSgwLFcudXNlQ2FsbGJhY2spKGU9PigpPT57d2luZG93Lm9wZW4oYyhlKSxgX2JsYW5rYCl9LFtjXSksZD0oMCxXLnVzZUNhbGxiYWNrKShlPT4oKT0+e1IoZSxzKX0sW10pO3JldHVybiBvPygwLEguanN4KSh0LHt0aXRsZTpgQ29tcG9uZW50cyAoJHsoKGk9ZS5jb250ZW50KT09bnVsbHx8KGk9aS5jb21wb25lbnRzKT09bnVsbD92b2lkIDA6aS5sZW5ndGgpfHwwfSlgLGl0ZW1LZXk6YDFgLGNoaWxkcmVuOigwLEguanN4KShULHtnYXA6MS41LGNoaWxkcmVuOihhPWUuY29udGVudC5jb21wb25lbnRzKT09bnVsbD92b2lkIDA6YS5tYXAoKGUsdCk9PihlPT1udWxsP3ZvaWQgMDplLmNvbnRlbnRUeXBlSWQpPT09YGV4cGVyaW1lbnRgPygwLEguanN4KShUZSx7Y29tcG9uZW50OmUsaW5kZXg6dCxzcGFjZUlkOm59LChlPT1udWxsP3ZvaWQgMDplLmlkKXx8dCk6KDAsSC5qc3gpKGBkaXZgLHtzdHlsZTp7bWFyZ2luTGVmdDpgMC41cmVtYH0sY2hpbGRyZW46KDAsSC5qc3gpKEYse3NwYWNpbmdWYXJpYW50OmBjb25kZW5zZWRgLHRpdGxlOmAke3QrMX0uICR7KGU9PW51bGw/dm9pZCAwOmUuY29udGVudFR5cGVJZCl8fGBVbmtub3duYH1gLGRlc2NyaXB0aW9uOigwLEguanN4cykoVCx7Z2FwOi41LGNoaWxkcmVuOlsoMCxILmpzeCkoYHBgLHtjaGlsZHJlbjooZT09bnVsbD92b2lkIDA6ZS5pZCl8fGBObyBJRGB9KSwoZT09bnVsbD92b2lkIDA6ZS5pZCkmJigoKT0+e2xldCB0PWUuaWQ7cmV0dXJuKDAsSC5qc3hzKShJLHtnYXA6MixjaGlsZHJlbjpbKDAsSC5qc3gpKGIse2FjY2Vzc2liaWxpdHlMYWJlbDpgU2Nyb2xsIHRvIGNvbXBvbmVudGAsbmFtZTpgc2NhblFyQ29kZWAsdmFyaWFudDpgc2Vjb25kYXJ5YCxjb21wYWN0OiEwLG9uQ2xpY2s6ZCh0KX0pLCgwLEguanN4KShiLHthY2Nlc3NpYmlsaXR5TGFiZWw6YE9wZW4gaW4gQ29udGVudGZ1bGAsbmFtZTpgY29tcG9zZWAsdmFyaWFudDpgc2Vjb25kYXJ5YCxjb21wYWN0OiEwLG9uQ2xpY2s6bCh0KX0pLCgwLEguanN4KShiLHthY2Nlc3NpYmlsaXR5TGFiZWw6YFByZXZpZXcgY29tcG9uZW50YCxuYW1lOmBhcGlgLHZhcmlhbnQ6YHNlY29uZGFyeWAsY29tcGFjdDohMCxvbkNsaWNrOnUodCl9KV19KX0pKCldfSl9KX0sKGU9PW51bGw/dm9pZCAwOmUuaWQpfHx0KSl9KX0pOigwLEguanN4KSh0LHt0aXRsZTpgQ29tcG9uZW50cyAoMClgLGl0ZW1LZXk6YDFgLGNoaWxkcmVuOigwLEguanN4KShGLHtjb21wYWN0OiEwLHRpdGxlOmBObyBDb21wb25lbnRzYCxkZXNjcmlwdGlvbjpgVGhpcyBwYWdlIGhhcyBubyBjb21wb25lbnRzYH0pfSl9ZnVuY3Rpb24gRGUoe3BhZ2VEYXRhOmUsc3BhY2VJZDpuLHRlbXBsYXRlTmFtZTpyfSl7bGV0IGk9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKSxhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxvPXdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSxzPWAke3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH0vLyR7b30ke2F9YCxjPWBJc3N1ZSBvbiBDRFggVjIgUGFnZTogJHthfWAsbD1lIT1udWxsJiZlLmlkJiZuP2BodHRwczovL2FwcC5jb250ZW50ZnVsLmNvbS9zcGFjZXMvJHtufS9lbnRyaWVzLyR7ZS5pZH1gOmBOL0FgLHU9e3VybDpzLHBhcmFtczppLnRvU3RyaW5nKCl8fGBOb25lYCxjb250ZW50ZnVsRW50cnk6bCx0ZW1wbGF0ZTpyfHxgVW5rbm93bmAsY29udGVudFR5cGU6KGU9PW51bGw/dm9pZCAwOmUuY29udGVudFR5cGVJZCl8fGBVbmtub3duYCxsYXN0VXBkYXRlZDplIT1udWxsJiZlLnVwZGF0ZWRBdD9uZXcgRGF0ZShlLnVwZGF0ZWRBdCkudG9Mb2NhbGVTdHJpbmcoKTpgVW5rbm93bmAsdXNlckFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQsdmlld3BvcnQ6YCR7d2luZG93LmlubmVyV2lkdGh9eCR7d2luZG93LmlubmVySGVpZ2h0fWAsbG9jYWxlOm5hdmlnYXRvci5sYW5ndWFnZX0sZD1gCiMjIElzc3VlIERlc2NyaXB0aW9uCltEZXNjcmliZSB0aGUgaXNzdWUgeW91J3JlIGV4cGVyaWVuY2luZ10KCi0tLQoKIyMgUGFnZSBJbmZvcm1hdGlvbgotICoqVVJMKio6ICR7dS51cmx9Ci0gKipVUkwgUGFyYW1ldGVycyoqOiAke3UucGFyYW1zfQotICoqQ29udGVudGZ1bCBFbnRyeSoqOiAke3UuY29udGVudGZ1bEVudHJ5fQotICoqVGVtcGxhdGUqKjogJHt1LnRlbXBsYXRlfQotICoqQ29udGVudCBUeXBlKio6ICR7dS5jb250ZW50VHlwZX0KLSAqKkxhc3QgVXBkYXRlZCoqOiAke3UubGFzdFVwZGF0ZWR9CgojIyBFbnZpcm9ubWVudAotICoqQnJvd3NlcioqOiAke3UudXNlckFnZW50fQotICoqVmlld3BvcnQqKjogJHt1LnZpZXdwb3J0fQotICoqTG9jYWxlKio6ICR7dS5sb2NhbGV9CgojIyBTdGVwcyB0byBSZXByb2R1Y2UKMS4KMi4KMy4KCiMjIEV4cGVjdGVkIEJlaGF2aW9yCgoKIyMgQWN0dWFsIEJlaGF2aW9yCgoKIyMgQWRkaXRpb25hbCBDb250ZXh0CgpgLnRyaW0oKSxmPWBodHRwczovL2xpbmVhci5hcHAvY29pbmJhc2UvdGVhbS9HQUxPUC9uZXc/dGl0bGU9JHtlbmNvZGVVUklDb21wb25lbnQoYyl9JmRlc2NyaXB0aW9uPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGQpfSZsYWJlbD1FeHRlcm5hbGAscD1gCvCfk4sgKlBhZ2UgSW5mb3JtYXRpb24qCuKAoiBVUkw6ICR7dS51cmx9CuKAoiBVUkwgUGFyYW1ldGVyczogJHt1LnBhcmFtc30K4oCiIENvbnRlbnRmdWwgRW50cnk6ICR7dS5jb250ZW50ZnVsRW50cnl9CuKAoiBUZW1wbGF0ZTogJHt1LnRlbXBsYXRlfQrigKIgQ29udGVudCBUeXBlOiAke3UuY29udGVudFR5cGV9CuKAoiBMYXN0IFVwZGF0ZWQ6ICR7dS5sYXN0VXBkYXRlZH0KCvCflqXvuI8gKkVudmlyb25tZW50KgrigKIgQnJvd3NlcjogJHt1LnVzZXJBZ2VudH0K4oCiIFZpZXdwb3J0OiAke3Uudmlld3BvcnR9CuKAoiBMb2NhbGU6ICR7dS5sb2NhbGV9CgrinZMgKlF1ZXN0aW9uL0lzc3VlKjogW0Rlc2NyaWJlIHlvdXIgcXVlc3Rpb24gb3IgaXNzdWUgaGVyZV0KYC50cmltKCksbT0oMCxXLnVzZUNhbGxiYWNrKSgoKT0+e1YocCl9LFtwXSk7cmV0dXJuKDAsSC5qc3gpKHQse3RpdGxlOmBIZWxwYCxpdGVtS2V5OmA1YCxjaGlsZHJlbjooMCxILmpzeHMpKFQse2dhcDoxLGNoaWxkcmVuOlsoMCxILmpzeCkoRix7c3BhY2luZ1ZhcmlhbnQ6YGNvbXBhY3RgLHRpdGxlOmBBc2sgQ0RYIFRlYW1gLGRlc2NyaXB0aW9uOigwLEguanN4cykoSSx7YWxpZ25JdGVtczpgY2VudGVyYCxnYXA6LjUsY2hpbGRyZW46WygwLEguanN4KShTLHtocmVmOmBodHRwczovL2NvaW5iYXNlLmVudGVycHJpc2Uuc2xhY2suY29tL2FyY2hpdmVzL0MwOE1UUFdFQk0xYCxvcGVuSW5OZXdXaW5kb3c6ITAsY2hpbGRyZW46YCNhc2stY2R4IFNsYWNrIENoYW5uZWxgfSksKDAsSC5qc3gpKGIse2FjY2Vzc2liaWxpdHlMYWJlbDpgQ29weSBkZWJ1ZyBpbmZvIGZvciBTbGFja2AsbmFtZTpgY29weWAsdmFyaWFudDpgc2Vjb25kYXJ5YCxjb21wYWN0OiEwLG9uQ2xpY2s6bX0pXX0pfSksKDAsSC5qc3gpKEYse3NwYWNpbmdWYXJpYW50OmBjb21wYWN0YCx0aXRsZTpgUmVwb3J0IGFuIElzc3VlYCxkZXNjcmlwdGlvbjooMCxILmpzeCkoUyx7aHJlZjpmLG9wZW5Jbk5ld1dpbmRvdzohMCxjaGlsZHJlbjpgQ3JlYXRlIExpbmVhciBJc3N1ZWB9KX0pLCgwLEguanN4KShGLHtzcGFjaW5nVmFyaWFudDpgY29tcGFjdGAsdGl0bGU6YEFuYWx5dGljc2AsZGVzY3JpcHRpb246KDAsSC5qc3gpKFMse2hyZWY6YGh0dHBzOi8vYXBwLmFtcGxpdHVkZS5jb20vYW5hbHl0aWNzL2NvaW5iYXNlL2Rhc2hib2FyZC82cjd5ZzYyZGAsb3BlbkluTmV3V2luZG93OiEwLGNoaWxkcmVuOmBDRFggQW5hbHl0aWNzIERhc2hib2FyZGB9KX0pLCgwLEguanN4KShGLHtzcGFjaW5nVmFyaWFudDpgY29tcGFjdGAsdGl0bGU6YERvY3VtZW50YXRpb25gLGRlc2NyaXB0aW9uOigwLEguanN4KShTLHtocmVmOmBodHRwczovL2NkeC1kb2NzLmNiaHEubmV0L2Asb3BlbkluTmV3V2luZG93OiEwLGNoaWxkcmVuOmBDRFggRG9jc2B9KX0pXX0pfSl9ZnVuY3Rpb24gT2Uoe3BhZ2VEYXRhOmUsc3BhY2VJZDpuLHRlbXBsYXRlTmFtZTppfSl7bGV0IGE9eCgoZT09bnVsbD92b2lkIDA6ZS5zbHVnKXx8d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9eXC8vLGBgKSxvPSgoZT09bnVsbD92b2lkIDA6ZS5zbHVnKXx8d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9eXC9jZHh2Mi8sYGApLHM9KDAsVy51c2VDYWxsYmFjaykoKCk9PntlIT1udWxsJiZlLmlkJiZWKGUuaWQpfSxbZT09bnVsbD92b2lkIDA6ZS5pZF0pLGM9KDAsVy51c2VDYWxsYmFjaykoZT0+e2UmJmUhPT1vJiYod2luZG93LmxvY2F0aW9uLmhyZWY9ZSl9LFtvXSksbD0oMCxXLnVzZU1lbW8pKCgpPT5CKGEpLFthXSk7cmV0dXJuKDAsSC5qc3gpKHQse3RpdGxlOmBQYWdlIExldmVsIERldGFpbHNgLGl0ZW1LZXk6YDBgLGNoaWxkcmVuOigwLEguanN4cykoVCx7Y2hpbGRyZW46WygwLEguanN4KShGLHtzcGFjaW5nVmFyaWFudDpgY29uZGVuc2VkYCx0aXRsZTooMCxILmpzeHMpKEkse2FsaWduSXRlbXM6YGNlbnRlcmAsZ2FwOi41LGNoaWxkcmVuOlsoMCxILmpzeCkoYHNwYW5gLHtjaGlsZHJlbjpgRW50cnkgSURgfSksKDAsSC5qc3gpKGIse2FjY2Vzc2liaWxpdHlMYWJlbDpgQ29weSBFbnRyeSBJRGAsbmFtZTpgY29weWAsdmFyaWFudDpgc2Vjb25kYXJ5YCxjb21wYWN0OiEwLG9uQ2xpY2s6c30pXX0pLGRlc2NyaXB0aW9uOigwLEguanN4KShTLHttb25vOiEwLGhyZWY6YCR7R30vJHtufS9lbnRyaWVzLyR7ZS5pZH1gLG9wZW5Jbk5ld1dpbmRvdzohMCxjaGlsZHJlbjplLmlkfSl9KSwoMCxILmpzeCkoRix7c3BhY2luZ1ZhcmlhbnQ6YGNvbmRlbnNlZGAsdGl0bGU6YFNwYWNlIElEYCxkZXNjcmlwdGlvbjooMCxILmpzeCkoUyx7bW9ubzohMCxocmVmOmAke0d9LyR7bn0vdmlld3MvZW50cmllc2Asb3BlbkluTmV3V2luZG93OiEwLGNoaWxkcmVuOm59KX0pLCgwLEguanN4KShGLHtzcGFjaW5nVmFyaWFudDpgY29uZGVuc2VkYCx0aXRsZTpgQ29udGVudCBUeXBlYCxkZXNjcmlwdGlvbjooZT09bnVsbD92b2lkIDA6ZS5jb250ZW50VHlwZUlkKXx8YHBhZ2VgfSksKDAsSC5qc3gpKEYse3NwYWNpbmdWYXJpYW50OmBjb25kZW5zZWRgLHRpdGxlOmBQYWdlIFNsdWdgLGRlc2NyaXB0aW9uOlN0cmluZygoZT09bnVsbD92b2lkIDA6ZS5zbHVnKT8/YE5vIHNsdWdgKX0pLCgwLEguanN4KShGLHtzcGFjaW5nVmFyaWFudDpgY29uZGVuc2VkYCx0aXRsZTpgVGVtcGxhdGUgTmFtZWAsZGVzY3JpcHRpb246aX0pLCgwLEguanN4KShGLHtzcGFjaW5nVmFyaWFudDpgY29uZGVuc2VkYCx0aXRsZTpgTGFzdCBVcGRhdGVkYCxkZXNjcmlwdGlvbjp6KGU9PW51bGw/dm9pZCAwOmUudXBkYXRlZEF0KX0pLGwubGVuZ3RoPjEmJigwLEguanN4KShGLHtzcGFjaW5nVmFyaWFudDpgY29uZGVuc2VkYCx0aXRsZTpgTG9jYWxpemVkIFZlcnNpb25zICgke2wubGVuZ3RofSlgLGRlc2NyaXB0aW9uOigwLEguanN4KShULHtnYXA6LjUsY2hpbGRyZW46KDAsSC5qc3gpKHIse2xhYmVsOmBgLG9uQ2hhbmdlOmMsdmFsdWU6byxjb21wYWN0OiEwLGNoaWxkcmVuOmwubWFwKChlLHQpPT57bGV0IG49ZS5zbHVnPT09byxyPWUucmVnaW9uQ291bnRyaWVzJiZlLnJlZ2lvbkNvdW50cmllcy5sZW5ndGg+MD9gJHtlLmxhYmVsfSAoJHtlLnJlZ2lvbkNvdW50cmllcy5sZW5ndGh9IGNvdW50cmllcylgOmUubGFiZWw7cmV0dXJuKDAsSC5qc3gpKGcse3ZhbHVlOmUuc2x1Zyx0aXRsZTpuP2Ake3J9IChjdXJyZW50KWA6cn0sdCl9KX0pfSl9KV19KX0pfWZ1bmN0aW9uIGtlKGUsdCl7cmV0dXJuIGU9PT1gY2xzYD90LnRvRml4ZWQoMyk6YCR7TWF0aC5yb3VuZCh0KX1tc2B9ZnVuY3Rpb24gQWUoKXtsZXRbZSxuXT0oMCxXLnVzZVN0YXRlKSh7fSkscj0oMCxXLnVzZUNhbGxiYWNrKSgoKT0+e2xldCBlPXt9O2lmKHR5cGVvZiBwZXJmb3JtYW5jZT5gdWApcmV0dXJuO2xldCB0PWBnZXRFbnRyaWVzQnlOYW1lYGluIHBlcmZvcm1hbmNlP3BlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoYGZpcnN0LWNvbnRlbnRmdWwtcGFpbnRgKS5wb3AoKTpudWxsO2lmKHQmJihlLmZjcD10LnN0YXJ0VGltZSksYFBlcmZvcm1hbmNlT2JzZXJ2ZXJgaW4gd2luZG93KXRyeXtuZXcgUGVyZm9ybWFuY2VPYnNlcnZlcih0PT57bGV0IHI9dC5nZXRFbnRyaWVzKCksaT1yW3IubGVuZ3RoLTFdO2UubGNwPWkucmVuZGVyVGltZXx8aS5sb2FkVGltZSxuKHsuLi5lfSl9KS5vYnNlcnZlKHt0eXBlOmBsYXJnZXN0LWNvbnRlbnRmdWwtcGFpbnRgLGJ1ZmZlcmVkOiEwfSl9Y2F0Y2h7fWlmKGBQZXJmb3JtYW5jZU9ic2VydmVyYGluIHdpbmRvdyl0cnl7bGV0IHQ9MDtuZXcgUGVyZm9ybWFuY2VPYnNlcnZlcihyPT57Zm9yKGxldCBlIG9mIHIuZ2V0RW50cmllcygpKXtsZXQgbj1lO24uaGFkUmVjZW50SW5wdXR8fCh0Kz1uLnZhbHVlfHwwKX1lLmNscz10LG4oey4uLmV9KX0pLm9ic2VydmUoe3R5cGU6YGxheW91dC1zaGlmdGAsYnVmZmVyZWQ6ITB9KX1jYXRjaHt9aWYoYFBlcmZvcm1hbmNlT2JzZXJ2ZXJgaW4gd2luZG93KXRyeXtuZXcgUGVyZm9ybWFuY2VPYnNlcnZlcih0PT57bGV0IHI9dC5nZXRFbnRyaWVzKClbMF07ZS5maWQ9KHIucHJvY2Vzc2luZ1N0YXJ0fHwwKS1yLnN0YXJ0VGltZSxuKHsuLi5lfSl9KS5vYnNlcnZlKHt0eXBlOmBmaXJzdC1pbnB1dGAsYnVmZmVyZWQ6ITB9KX1jYXRjaHt9bGV0IHI9YGdldEVudHJpZXNCeVR5cGVgaW4gcGVyZm9ybWFuY2U/cGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShgbmF2aWdhdGlvbmApWzBdOm51bGw7ciYmKGUudHRmYj1yLnJlc3BvbnNlU3RhcnQpLG4oZSl9LFtdKTtyZXR1cm4oMCxXLnVzZUVmZmVjdCkoKCk9PntyKCl9LFtyXSksKDAsSC5qc3gpKHQse3RpdGxlOmBQZXJmb3JtYW5jZWAsaXRlbUtleTpgNGAsY2hpbGRyZW46KDAsSC5qc3hzKShULHtnYXA6MS41LGNoaWxkcmVuOltbe2tleTpgbGNwYCxsYWJlbDpgTENQIChMYXJnZXN0IENvbnRlbnRmdWwgUGFpbnQpYCx2YWx1ZTplLmxjcH0se2tleTpgZmlkYCxsYWJlbDpgRklEIChGaXJzdCBJbnB1dCBEZWxheSlgLHZhbHVlOmUuZmlkfSx7a2V5OmBjbHNgLGxhYmVsOmBDTFMgKEN1bXVsYXRpdmUgTGF5b3V0IFNoaWZ0KWAsdmFsdWU6ZS5jbHN9LHtrZXk6YGZjcGAsbGFiZWw6YEZDUCAoRmlyc3QgQ29udGVudGZ1bCBQYWludClgLHZhbHVlOmUuZmNwfSx7a2V5OmB0dGZiYCxsYWJlbDpgVFRGQiAoVGltZSB0byBGaXJzdCBCeXRlKWAsZGVzY3JpcHRpb246YE1lYXN1cmVzIHNlcnZlciByZXNwb25zZSB0aW1lYCx2YWx1ZTplLnR0ZmJ9XS5tYXAoZT0+e2lmKGUudmFsdWU9PT12b2lkIDApcmV0dXJuKDAsSC5qc3gpKEYse3NwYWNpbmdWYXJpYW50OmBjb21wYWN0YCx0aXRsZTplLmxhYmVsLGRlc2NyaXB0aW9uOigwLEguanN4cykoVCx7Z2FwOi4yNSxjaGlsZHJlbjpbKDAsSC5qc3gpKE0se2ZvbnQ6YGNhcHRpb25gLGNvbG9yOmBmZ011dGVkYCxjaGlsZHJlbjpgTm90IHlldCBhdmFpbGFibGVgfSksZS5kZXNjcmlwdGlvbiYmKDAsSC5qc3gpKE0se2ZvbnQ6YGxhYmVsMWAsY29sb3I6YGZnTXV0ZWRgLGNoaWxkcmVuOmUuZGVzY3JpcHRpb259KV19KX0sZS5rZXkpO2xldCB0PWtlKGUua2V5LGUudmFsdWUpO3JldHVybigwLEguanN4KShGLHtzcGFjaW5nVmFyaWFudDpgY29tcGFjdGAsdGl0bGU6ZS5sYWJlbCxkZXNjcmlwdGlvbjooMCxILmpzeCkoTSx7Zm9udDpgY2FwdGlvbmAsY2hpbGRyZW46dH0pfSxlLmtleSl9KSwoMCxILmpzeCkoTSx7Zm9udDpgbGFiZWwxYCxjb2xvcjpgZmdNdXRlZGAsY2hpbGRyZW46YE5vdGU6IFVzZSBtZXRyaWNzIGFzIGVzdGltYXRlcyBzaW5jZSBwcm9kdWN0aW9uIGVudiBtaWdodCBwZXJmb3JtIGRpZmZlcmVudGx5LmB9KV19KX0pfWZ1bmN0aW9uIGplKGUpe2xldCB0PXt9O3JldHVybiBlLmZvckVhY2goZT0+e2xldCBuPWUucGF0aC5zcGxpdChgLmApWzBdO3Rbbl18fCh0W25dPVtdKSx0W25dLnB1c2goZSl9KSx0fWZ1bmN0aW9uIE1lKHtjdXN0b21EYXRhOm59KXtyZXR1cm4gT2JqZWN0LmVudHJpZXMobnx8e30pLmxlbmd0aD4wPygwLEguanN4KSh0LHt0aXRsZTpgUGxhY2Vob2xkZXJzIGF2YWlsYWJsZWAsaXRlbUtleTpgMmAsY2hpbGRyZW46KDAsSC5qc3gpKGUse2NoaWxkcmVuOk9iamVjdC5lbnRyaWVzKGplKG1lKG58fHt9KSkpLm1hcCgoW2Usbl0pPT4oMCxILmpzeCkodCx7dGl0bGU6YCR7ZX0gKCR7bi5sZW5ndGh9KWAsaXRlbUtleTplLGNoaWxkcmVuOigwLEguanN4KShULHtnYXA6LjUsY2hpbGRyZW46bi5tYXAoKHtwYXRoOmUsdmFsdWU6dH0pPT4oMCxILmpzeCkoRix7ZGVzY3JpcHRpb246YHt7ICR7ZX0gfX0gPSAke1N0cmluZyh0KX1gLHNwYWNpbmdWYXJpYW50OmBjb21wYWN0YH0sZSkpfSl9LGUpKX0pfSk6KDAsSC5qc3gpKHQse3RpdGxlOmBQbGFjZWhvbGRlcnMgYXZhaWxhYmxlYCxpdGVtS2V5OmAyYCxjaGlsZHJlbjooMCxILmpzeCkoRix7c3BhY2luZ1ZhcmlhbnQ6YGNvbXBhY3RgLGRlc2NyaXB0aW9uOmBOb25lIGF2YWlsYWJsZSBmb3IgdGhpcyB0ZW1wbGF0ZWB9KX0pfWZ1bmN0aW9uIE5lKGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbWFpbmApfHxkb2N1bWVudC5ib2R5KXtsZXQgdD1bXTtmdW5jdGlvbiBuKGUscj1bXSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXtsZXQgYT1lO2lmKC9eaFsxLTZdJC9pLnRlc3QoYS50YWdOYW1lKSl7dmFyIGk7bGV0IGU9e2VsZW1lbnQ6YSx0ZXh0OigoaT1hLnRleHRDb250ZW50KT09bnVsbD92b2lkIDA6aS50cmltKCkpfHxgYCx0YWdOYW1lOmEudGFnTmFtZS50b0xvd2VyQ2FzZSgpLG5lc3RpbmdEZXB0aDpyLmxlbmd0aH07dC5wdXNoKGUpO2xldCBvPVsuLi5yLGVdO2ZvcihsZXQgZSBvZiBhLmNoaWxkcmVuKW4oZSxvKX1lbHNlIGZvcihsZXQgZSBvZiBhLmNoaWxkcmVuKW4oZSxyKX19cmV0dXJuIG4oZSksdH1mdW5jdGlvbiBQZShlKXtsZXQgdD1bXTtpZihlLmxlbmd0aD09PTApcmV0dXJuIHQucHVzaChgTm8gaGVhZGVycyBmb3VuZCBvbiB0aGUgcGFnZWApLHQ7bGV0IG49ZS5maWx0ZXIoZT0+ZS50YWdOYW1lPT09YGgxYCkubGVuZ3RoO249PT0wP3QucHVzaChgTWlzc2luZyBoMSB0YWcgLSBldmVyeSBwYWdlIHNob3VsZCBoYXZlIGV4YWN0bHkgb25lIGgxYCk6bj4xJiZ0LnB1c2goYE11bHRpcGxlIGgxIHRhZ3MgZm91bmQgKCR7bn0pIC0gc2hvdWxkIG9ubHkgaGF2ZSBvbmVgKTtmb3IobGV0IG49MDtuPGUubGVuZ3RoLTE7bisrKXtsZXQgcj1wYXJzZUludChlW25dLnRhZ05hbWUuc3Vic3RyaW5nKDEpKTtwYXJzZUludChlW24rMV0udGFnTmFtZS5zdWJzdHJpbmcoMSkpPnIrMSYmdC5wdXNoKGBTa2lwcGVkIGhlYWRpbmcgbGV2ZWw6ICR7ZVtuXS50YWdOYW1lfSDihpIgJHtlW24rMV0udGFnTmFtZX0gKCR7ZVtuKzFdLnRleHQuc3Vic3RyaW5nKDAsNDApfS4uLilgKX1yZXR1cm4gdH1mdW5jdGlvbiBGZShlLHQpe2xldCBuPWUubWF0Y2goL2ltYWdlc1wuY3RmYXNzZXRzXC5uZXRcL1teL10rXC8oW14vXSspXC9bXi9dK1wvLyk7aWYobilyZXR1cm5gaHR0cHM6Ly9hcHAuY29udGVudGZ1bC5jb20vc3BhY2VzLyR7dH0vZW50cmllcy9hc3NldDoke25bMV19YH1mdW5jdGlvbiBJZSh7c3BhY2VJZDplfSl7bGV0IHQ9KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYG1haW5gKXx8ZG9jdW1lbnQuYm9keSkucXVlcnlTZWxlY3RvckFsbChgaW1nYCksbj1bXSxyPTA7cmV0dXJuIHQuZm9yRWFjaCh0PT57bGV0IGk9dC5nZXRBdHRyaWJ1dGUoYGFsdGApLGE9dC5nZXRBdHRyaWJ1dGUoYHNyY2ApfHx0LmN1cnJlbnRTcmN8fGBgLG89aT09PW51bGw/YG1pc3NpbmdgOmBwcmVzZW50YCxzO289PT1gbWlzc2luZ2AmJihzPWBzZW8taW1hZ2UtaXNzdWUtJHtyKyt9YCx0LnNldEF0dHJpYnV0ZShgZGF0YS1zZW8taXNzdWUtaWRgLHMpKTtsZXQgYz1GZShhLGUpO24ucHVzaCh7ZWxlbWVudDp0LGFsdDppLHN0YXR1czpvLHNyYzphLGNvbnRlbnRmdWxVcmw6Yyxpc3N1ZUlkOnN9KX0pLG59ZnVuY3Rpb24gTGUoKXtsZXQgZT0oZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbWFpbmApfHxkb2N1bWVudC5ib2R5KS5xdWVyeVNlbGVjdG9yQWxsKGBhYCksdD1bXSxuPTA7cmV0dXJuIGUuZm9yRWFjaChlPT57dmFyIHI7bGV0IGk9KChyPWUudGV4dENvbnRlbnQpPT1udWxsP3ZvaWQgMDpyLnRyaW0oKSl8fGBgLGE9ZS5nZXRBdHRyaWJ1dGUoYGhyZWZgKXx8YGAsbz1lLmdldEF0dHJpYnV0ZShgYXJpYS1sYWJlbGApLHM9ITEsYyxsOyFpJiYhbz8ocz0hMCxjPWBObyB0ZXh0IG9yIGFyaWEtbGFiZWxgKTooIWF8fGE9PT1gI2ApJiYocz0hMCxjPWBJbnZhbGlkIG9yIG1pc3NpbmcgaHJlZmApLHMmJihsPWBzZW8tbGluay1pc3N1ZS0ke24rK31gLGUuc2V0QXR0cmlidXRlKGBkYXRhLXNlby1pc3N1ZS1pZGAsbCkpLChzfHxpKSYmdC5wdXNoKHtlbGVtZW50OmUsdGV4dDppLGhyZWY6YSxoYXNJc3N1ZTpzLGlzc3VlUmVhc29uOmMsaXNzdWVJZDpsfSl9KSx0fWZ1bmN0aW9uIFJlKCl7bGV0IGU9W10sdD0odCxuKT0+e2xldCByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCksaT0ocj09bnVsbD92b2lkIDA6ci5nZXRBdHRyaWJ1dGUoYGNvbnRlbnRgKSl8fG51bGwsYT1gcHJlc2VudGA7cj8oIWl8fGkudHJpbSgpPT09YGApJiYoYT1gZW1wdHlgKTphPWBtaXNzaW5nYCxlLnB1c2goe25hbWU6bixjb250ZW50Omksc3RhdHVzOmF9KX0sbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGB0aXRsZWApLHI9KG49PW51bGw/dm9pZCAwOm4udGV4dENvbnRlbnQpfHxudWxsO2UucHVzaCh7bmFtZTpgVGl0bGVgLGNvbnRlbnQ6cixzdGF0dXM6bj8hcnx8ci50cmltKCk9PT1gYD9gZW1wdHlgOmBwcmVzZW50YDpgbWlzc2luZ2B9KSx0KGBtZXRhW25hbWU9ImRlc2NyaXB0aW9uIl1gLGBNZXRhIERlc2NyaXB0aW9uYCksdChgbWV0YVtwcm9wZXJ0eT0ib2c6dGl0bGUiXWAsYE9HIFRpdGxlYCksdChgbWV0YVtwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iXWAsYE9HIERlc2NyaXB0aW9uYCksdChgbWV0YVtwcm9wZXJ0eT0ib2c6aW1hZ2UiXWAsYE9HIEltYWdlYCksdChgbWV0YVtwcm9wZXJ0eT0ib2c6dXJsIl1gLGBPRyBVUkxgKSx0KGBtZXRhW3Byb3BlcnR5PSJvZzp0eXBlIl1gLGBPRyBUeXBlYCksdChgbWV0YVtuYW1lPSJ0d2l0dGVyOmNhcmQiXWAsYFR3aXR0ZXIgQ2FyZGApLHQoYG1ldGFbbmFtZT0idHdpdHRlcjp0aXRsZSJdYCxgVHdpdHRlciBUaXRsZWApLHQoYG1ldGFbbmFtZT0idHdpdHRlcjpkZXNjcmlwdGlvbiJdYCxgVHdpdHRlciBEZXNjcmlwdGlvbmApLHQoYG1ldGFbbmFtZT0idHdpdHRlcjppbWFnZSJdYCxgVHdpdHRlciBJbWFnZWApO2xldCBpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbcmVsPSJjYW5vbmljYWwiXWApLGE9KGk9PW51bGw/dm9pZCAwOmkuZ2V0QXR0cmlidXRlKGBocmVmYCkpfHxudWxsO3JldHVybiBlLnB1c2goe25hbWU6YENhbm9uaWNhbCBVUkxgLGNvbnRlbnQ6YSxzdGF0dXM6aT8hYXx8YS50cmltKCk9PT1gYD9gZW1wdHlgOmBwcmVzZW50YDpgbWlzc2luZ2B9KSxlfWZ1bmN0aW9uIHplKHtzcGFjZUlkOmV9KXtsZXQgdD1OZSgpLG49SWUoe3NwYWNlSWQ6ZX0pLHI9TGUoKSxpPVJlKCksYT1QZSh0KSxvPW4uZmlsdGVyKGU9PmUuc3RhdHVzPT09YG1pc3NpbmdgKS5tYXAoZT0+e2xldCB0PVt7bm9kZVR5cGU6YHRleHRgLHZhbHVlOmBJbWFnZSBtaXNzaW5nIGFsdCBhdHRyaWJ1dGUgLSBgLG1hcmtzOltdLGRhdGE6e319XTtyZXR1cm4gZS5pc3N1ZUlkJiZ0LnB1c2goe25vZGVUeXBlOk4uSFlQRVJMSU5LLGRhdGE6e3VyaTpgIyR7ZS5pc3N1ZUlkfWB9LGNvbnRlbnQ6W3tub2RlVHlwZTpgdGV4dGAsdmFsdWU6YEhpZ2hsaWdodGAsbWFya3M6W10sZGF0YTp7fX1dfSksZS5jb250ZW50ZnVsVXJsJiZ0LnB1c2goe25vZGVUeXBlOmB0ZXh0YCx2YWx1ZTpgIHwgYCxtYXJrczpbXSxkYXRhOnt9fSx7bm9kZVR5cGU6Ti5IWVBFUkxJTkssZGF0YTp7dXJpOmUuY29udGVudGZ1bFVybH0sY29udGVudDpbe25vZGVUeXBlOmB0ZXh0YCx2YWx1ZTpgRWRpdCBpbiBDb250ZW50ZnVsYCxtYXJrczpbXSxkYXRhOnt9fV19KSx7bm9kZVR5cGU6RC5ET0NVTUVOVCxjb250ZW50Olt7bm9kZVR5cGU6RC5QQVJBR1JBUEgsY29udGVudDp0LGRhdGE6e319XSxkYXRhOnt9fX0pLHM9ci5maWx0ZXIoZT0+ZS5oYXNJc3N1ZSkubWFwKGU9PntsZXQgdD1lLnRleHQ/ZS50ZXh0Lmxlbmd0aD40MD9gJHtlLnRleHQuc3Vic3RyaW5nKDAsMzcpfS4uLmA6ZS50ZXh0OmUuaHJlZnx8YFtlbXB0eSBsaW5rXWAsbj1lLmlzc3VlSWQ/W3tub2RlVHlwZTpgdGV4dGAsdmFsdWU6YExpbmsgaXNzdWU6ICR7ZS5pc3N1ZVJlYXNvbn0gLSBgLG1hcmtzOltdLGRhdGE6e319LHtub2RlVHlwZTpOLkhZUEVSTElOSyxkYXRhOnt1cmk6YCMke2UuaXNzdWVJZH1gfSxjb250ZW50Olt7bm9kZVR5cGU6YHRleHRgLHZhbHVlOmBIaWdobGlnaHRgLG1hcmtzOltdLGRhdGE6e319XX0se25vZGVUeXBlOmB0ZXh0YCx2YWx1ZTpgICgke3R9KWAsbWFya3M6W10sZGF0YTp7fX1dOlt7bm9kZVR5cGU6YHRleHRgLHZhbHVlOmBMaW5rIGlzc3VlOiAke2UuaXNzdWVSZWFzb259ICgke3R9KWAsbWFya3M6W10sZGF0YTp7fX1dO3JldHVybntub2RlVHlwZTpELkRPQ1VNRU5ULGNvbnRlbnQ6W3tub2RlVHlwZTpELlBBUkFHUkFQSCxjb250ZW50Om4sZGF0YTp7fX1dLGRhdGE6e319fSksYz1bYFRpdGxlYCxgTWV0YSBEZXNjcmlwdGlvbmAsYE9HIFRpdGxlYCxgT0cgRGVzY3JpcHRpb25gLGBPRyBJbWFnZWBdLGw9aS5maWx0ZXIoZT0+Yy5pbmNsdWRlcyhlLm5hbWUpP2Uuc3RhdHVzPT09YG1pc3NpbmdgfHxlLnN0YXR1cz09PWBlbXB0eWA6ZS5zdGF0dXM9PT1gbWlzc2luZ2ApLm1hcChlPT5lLnN0YXR1cz09PWBtaXNzaW5nYD9gTWlzc2luZyAke2UubmFtZX1gOmBFbXB0eSAke2UubmFtZX1gKTtyZXR1cm57aGVhZGVyczp0LGltYWdlczpuLGxpbmtzOnIsbWV0YVRhZ3M6aSxpc3N1ZXM6Wy4uLmEsLi4ubywuLi5zLC4uLmxdfX1mdW5jdGlvbiBCZSh7cGFnZURhdGE6ZSxzcGFjZUlkOm59KXt2YXIgcixpO2xldFthLG9dPSgwLFcudXNlU3RhdGUpKG51bGwpLHM9KDAsVy51c2VSZWYpKG51bGwpLGM9KDAsVy51c2VDYWxsYmFjaykoKCk9PntzZXRUaW1lb3V0KCgpPT57dHJ5e28oemUoe3NwYWNlSWQ6bn0pKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGBFcnJvciBydW5uaW5nIFNFTyBzY2FuYCxlKX19LDEwMCl9LFtuXSksbD0oMCxXLnVzZUNhbGxiYWNrKShlPT57dmFyIHQ7bGV0IG49ZS50YXJnZXQ7aWYobi50YWdOYW1lPT09YEFgJiYodD1uLmdldEF0dHJpYnV0ZShgaHJlZmApKSE9bnVsbCYmdC5zdGFydHNXaXRoKGAjc2VvLWApKXt2YXIgcjtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHQ9KHI9bi5nZXRBdHRyaWJ1dGUoYGhyZWZgKSk9PW51bGw/dm9pZCAwOnIuc3Vic3RyaW5nKDEpO2lmKHQpe2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXNlby1pc3N1ZS1pZD0iJHt0fSJdYCk7ZSYmKGUuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOmBzbW9vdGhgLGJsb2NrOmBjZW50ZXJgfSksZS5jbGFzc0xpc3QuYWRkKGBzZW8taGlnaGxpZ2h0YCksc2V0VGltZW91dCgoKT0+e2UuY2xhc3NMaXN0LnJlbW92ZShgc2VvLWhpZ2hsaWdodGApfSwyZTMpKX19fSxbXSk7KDAsVy51c2VFZmZlY3QpKCgpPT57bGV0IGU9cy5jdXJyZW50O2lmKGUpcmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLGwpLCgpPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoYGNsaWNrYCxsKX0sW2xdKSwoMCxXLnVzZUVmZmVjdCkoKCk9PntsZXQgZT1zZXRUaW1lb3V0KCgpPT57YygpfSwxZTMpO3JldHVybigpPT5jbGVhclRpbWVvdXQoZSl9LFtjXSksKDAsVy51c2VFZmZlY3QpKCgpPT57bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgc3R5bGVgKTtyZXR1cm4gZS50ZXh0Q29udGVudD1gCiAgICAgIC5zZW8taGlnaGxpZ2h0IHsKICAgICAgICBvdXRsaW5lOiAzcHggc29saWQgI2ZmNmIwMCAhaW1wb3J0YW50OwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiA0cHggIWltcG9ydGFudDsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgyNTUsIDEwNywgMCwgMC4zKSwgCiAgICAgICAgICAgICAgICAgICAgMCAwIDIwcHggcmdiYSgyNTUsIDEwNywgMCwgMC41KSAhaW1wb3J0YW50OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OwogICAgICAgIHotaW5kZXg6IDk5OTkgIWltcG9ydGFudDsKICAgICAgICBhbmltYXRpb246IDAuNXMgZWFzZS1pbi1vdXQgMzsKICAgICAgfQogICAgICBpbWcuc2VvLWhpZ2hsaWdodCB7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgI2ZmNmIwMCAhaW1wb3J0YW50OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDI1NSwgMTA3LCAwLCAwLjMpLCAKICAgICAgICAgICAgICAgICAgICAwIDAgMjBweCByZ2JhKDI1NSwgMTA3LCAwLCAwLjUpICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGAsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlKSwoKT0+e2RvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQoZSl9fSxbXSk7bGV0IHU9KGE9PW51bGw/dm9pZCAwOmEuaXNzdWVzLmxlbmd0aCl8fDAsZD11PjA/YFNFTyAoIOKaoO+4jyAke3V9IGlzc3VlJHt1PjE/YHNgOmBgfSlgOmBTRU8g4pyFYCxmPWE/e2gxOmEuaGVhZGVycy5maWx0ZXIoZT0+ZS50YWdOYW1lPT09YGgxYCkubGVuZ3RoLGgyOmEuaGVhZGVycy5maWx0ZXIoZT0+ZS50YWdOYW1lPT09YGgyYCkubGVuZ3RoLGgzOmEuaGVhZGVycy5maWx0ZXIoZT0+ZS50YWdOYW1lPT09YGgzYCkubGVuZ3RoLGg0OmEuaGVhZGVycy5maWx0ZXIoZT0+ZS50YWdOYW1lPT09YGg0YCkubGVuZ3RoLGg1OmEuaGVhZGVycy5maWx0ZXIoZT0+ZS50YWdOYW1lPT09YGg1YCkubGVuZ3RoLGg2OmEuaGVhZGVycy5maWx0ZXIoZT0+ZS50YWdOYW1lPT09YGg2YCkubGVuZ3RofTpudWxsO3JldHVybigwLEguanN4KSh0LHt0aXRsZTpkLGl0ZW1LZXk6YDNgLGNoaWxkcmVuOigwLEguanN4cykoVCx7Z2FwOjEuNSxyZWY6cyxjaGlsZHJlbjpbKDAsSC5qc3gpKEYse21pbkhlaWdodDpgYXV0b2AsdGl0bGU6YFBhZ2UgVGl0bGVgLGRlc2NyaXB0aW9uOihlPT1udWxsP3ZvaWQgMDplLnRpdGxlKXx8YE5vIHRpdGxlYH0pLCgwLEguanN4KShGLHttaW5IZWlnaHQ6YGF1dG9gLHRpdGxlOmBTRU8gTm8gSW5kZXhgLGRlc2NyaXB0aW9uOiEoZT09bnVsbHx8KHI9ZS5zZW8pPT1udWxsKSYmci5ub19pbmRleD9gWWVzYDpgTm9gfSksKDAsSC5qc3gpKEYse21pbkhlaWdodDpgYXV0b2AsdGl0bGU6YFNFTyBObyBGb2xsb3dgLGRlc2NyaXB0aW9uOiEoZT09bnVsbHx8KGk9ZS5zZW8pPT1udWxsKSYmaS5ub19mb2xsb3c/YFllc2A6YE5vYH0pLCgwLEguanN4KShGLHttaW5IZWlnaHQ6YGF1dG9gLHRpdGxlOmBIZWFkZXJzYCxkZXNjcmlwdGlvbjpmJiYoMCxILmpzeCkoVCx7Z2FwOi4yNSxjaGlsZHJlbjpbYGgxYCxgaDJgLGBoM2AsYGg0YCxgaDVgLGBoNmBdLm1hcChlPT5mW2VdPjAmJigwLEguanN4cykoTSx7Zm9udDpgY2FwdGlvbmAsY29sb3I6YGZnTXV0ZWRgLGNoaWxkcmVuOltlLnRvVXBwZXJDYXNlKCksYDogYCxmW2VdXX0sZSkpfSl9KSxhJiYoMCxILmpzeCkoRix7bWluSGVpZ2h0OmBhdXRvYCx0aXRsZTpgSXNzdWVzYCxkZXNjcmlwdGlvbjphLmlzc3Vlcy5sZW5ndGg+MD8oMCxILmpzeHMpKFQse2dhcDouMjUsY2hpbGRyZW46WygwLEguanN4cykoTSx7Zm9udDpgY2FwdGlvbmAsY29sb3I6YGZnV2FybmluZ2AsY2hpbGRyZW46W2EuaXNzdWVzLmxlbmd0aCxgIGlzc3VlYCxhLmlzc3Vlcy5sZW5ndGg+MT9gc2A6YGAsYCBmb3VuZGBdfSksKDAsSC5qc3gpKFQse2dhcDouMjUscGFkZGluZ1N0YXJ0OjIsY2hpbGRyZW46YS5pc3N1ZXMubWFwKChlLHQpPT4oMCxILmpzeCkoTSx7Zm9udDpgY2FwdGlvbmAsY29sb3I6YGZnTmVnYXRpdmVgLGNvbnRlbnQ6ZX0sdCkpfSldfSk6KDAsSC5qc3gpKE0se2ZvbnQ6YGNhcHRpb25gLGNvbG9yOmBmZ1Bvc2l0aXZlYCxjaGlsZHJlbjpg4pyFIE5vIGlzc3VlcyBmb3VuZGB9KX0pXX0pfSl9ZnVuY3Rpb24gVmUoe3BhZ2VEYXRhOnQsdGVtcGxhdGVOYW1lOm4sY3VzdG9tRGF0YTpyLHNwYWNlSWQ6bz1gbzEwZXM3d3U1Z20xYH0pe2xldFtzLGNdPSgwLFcudXNlU3RhdGUpKCEwKSxbbCx1XT0oMCxXLnVzZVN0YXRlKSghMSksZD0oMCxXLnVzZUNhbGxiYWNrKSgoKT0+e2MoITEpfSxbXSksZj0oMCxXLnVzZUNhbGxiYWNrKSgoKT0+e3UoIWwpfSxbbF0pLHA9dC5pZD09PWBlbnRyeS1wcmV2aWV3YDtyZXR1cm4gcz8oMCxILmpzeCkoTyx7Ym9yZGVyUmFkaXVzOjEwMCxiYWNrZ3JvdW5kOmBiZ2AscG9zaXRpb246YGZpeGVkYCxib3R0b206MTAsekluZGV4OjFlNCxyaWdodDoxMCx3aWR0aDpgMzByZW1gLGJvcmRlcmVkOiEwLHN0eWxlOnt0cmFuc2l0aW9uOmBoZWlnaHQgMC4zcyBlYXNlLWluLW91dGAsaGVpZ2h0Omw/YDQwcmVtYDpgNC41cmVtYCxvdmVyZmxvd1k6YGF1dG9gfSx0ZXN0SUQ6YGNkeC1jbXMtd2lkZ2V0YCxjaGlsZHJlbjooMCxILmpzeHMpKGkse3dpZHRoOmAxMDAlYCxjaGlsZHJlbjpbKDAsSC5qc3gpKGEse2JhY2tncm91bmQ6YGJnYCxlbmQ6KDAsSC5qc3hzKShJLHtjaGlsZHJlbjpbKDAsSC5qc3gpKGIse3RyYW5zcGFyZW50OiEwLGFjY2Vzc2liaWxpdHlMYWJlbDpgRXhwYW5kL2NvbGxhcHNlIENNUyBkZXRhaWxzYCxuYW1lOmw/YG1pbnVzYDpgYWRkYCx2YXJpYW50OmBzZWNvbmRhcnlgLG9uQ2xpY2s6Zix0ZXN0SUQ6YGNkeC1jbXMtd2lkZ2V0LWV4cGFuZC1idXR0b25gfSksKDAsSC5qc3gpKGIse3RyYW5zcGFyZW50OiEwLGFjY2Vzc2liaWxpdHlMYWJlbDpgQ2xvc2UgQ01TIGRldGFpbHNgLG5hbWU6YGNsb3NlYCx2YXJpYW50OmBzZWNvbmRhcnlgLG9uQ2xpY2s6ZH0pXX0pLHRpdGxlOmBDb250ZW50ZnVsIERldGFpbHNgfSksbD8oMCxILmpzeHMpKGUse2RlZmF1bHRBY3RpdmVLZXk6YDBgLGNoaWxkcmVuOltwP251bGw6KDAsSC5qc3gpKE9lLHtwYWdlRGF0YTp0LHNwYWNlSWQ6byx0ZW1wbGF0ZU5hbWU6bn0pLCgwLEguanN4KShFZSx7cGFnZURhdGE6dCxzcGFjZUlkOm99KSwoMCxILmpzeCkoTWUse2N1c3RvbURhdGE6cn0pLCgwLEguanN4KShCZSx7cGFnZURhdGE6dCxzcGFjZUlkOm99KSwoMCxILmpzeCkoQWUse30pLCgwLEguanN4KShEZSx7cGFnZURhdGE6dCxzcGFjZUlkOm8sdGVtcGxhdGVOYW1lOm59KV19KTpudWxsXX0pfSk6bnVsbH12YXIgSz0oMCxXLm1lbW8pKGZ1bmN0aW9uKHtwYWdlU2V0dGluZ3M6ZSxhY3RpdmVDb2xvclNjaGVtZTp0fSl7bGV0e2N1c3RvbUZvb3RlcjpuLGZvb3RlckRpc2NsYWltZXI6cn09ZXx8e30saT10PT09YGRhcmtgLHtmdWxsOmF9PWRlKCk7cmV0dXJuKDAsSC5qc3hzKShULHtjaGlsZHJlbjpbciYmKDAsSC5qc3gpKFUsey4uLnIsdGVzdElEOmBmb290ZXItZGlzY2xhaW1lcmB9KSxuPygwLEguanN4KShgZm9vdGVyYCx7cm9sZTpgY29udGVudGluZm9gLGNoaWxkcmVuOigwLEguanN4KSh4ZSx7Li4ubixzdHlsZTppP2BkYXJrYDpgZGVmYXVsdGAsZ2xvYmFsTmF2SGVpZ2h0OmF9KX0pOigwLEguanN4KShvZSx7cGFkZGluZ1RvcDowfSldfSl9KSxIZT17ZXJyb3I6YGJnTmVnYXRpdmVXYXNoYCxpbmZvcm1hdGlvbmFsOmBiZ1NlY29uZGFyeWAscHJvbW90aW9uYWw6YGJnUHJpbWFyeVdhc2hgLHdhcm5pbmc6YGJnV2FybmluZ1dhc2hgfSxVZT1MKGZ1bmN0aW9uKHtjb250ZW50VHlwZUlkOmUsY29tcG9uZW50SWQ6dCx2YXJpYW50OnIsdGl0bGU6aSxkZXNjcmlwdGlvbjphLGxhYmVsOm8sY3RhR3JvdXA6cyxpY29uOmMsaWQ6bCxjbGFzc05hbWU6dSx0ZXN0SUQ6ZH0pe3JldHVybigwLEguanN4KShBLHtwYWRkaW5nWTowLGJhY2tncm91bmQ6SGVbcl0sY2xhc3NOYW1lOnUsdGVzdElEOmQsY2hpbGRyZW46KDAsSC5qc3gpKG4se3BhZGRpbmdYOjAsdmFyaWFudDpyLHN0YXJ0SWNvbjpjLHN0YXJ0SWNvbkFjdGl2ZTohMCxzdHlsZVZhcmlhbnQ6YGlubGluZWAsdGl0bGU6KDAsSC5qc3gpKE0se2NvbnRlbnQ6aSxmb250OmBsYWJlbDFgfSksbGFiZWw6KDAsSC5qc3gpKE0se2NvbnRlbnQ6byxmb250OmBsZWdhbGAsY29sb3I6YGZnTXV0ZWRgfSkscHJpbWFyeUFjdGlvbjpzIT1udWxsJiZzWzBdPygwLEguanN4KSh2LHsuLi5zWzBdLHNpemU6YHNtYWxsYH0pOnZvaWQgMCxzZWNvbmRhcnlBY3Rpb246cyE9bnVsbCYmc1sxXT8oMCxILmpzeCkodix7Li4uc1sxXSxzaXplOmBzbWFsbGB9KTp2b2lkIDAsY2hpbGRyZW46KDAsSC5qc3gpKE0se2NvbnRlbnQ6YSxmb250OmBsYWJlbDJgLGZvbnRXZWlnaHQ6YGJvZHlgfSl9KX0pfSk7ZnVuY3Rpb24gcShlKXtyZXR1cm57dXJsOmUubGluayxsYWJlbDplLmxhYmVsLGkxOG5JZDplLmNvbXBvbmVudElkfHxlLmxhYmVsfHxgY3VzdG9tLWJ1dHRvbmB9fXZhciBXZT0oMCxXLm1lbW8pKGZ1bmN0aW9uKHtwYWdlU2V0dGluZ3M6ZSwuLi50fSl7dmFyIG4scixpLGE7bGV0e2N1c3RvbU5hdmJhcjpvLGN1c3RvbU5hdkJhbm5lcjpzLGN1c3RvbVN1Ym5hdjpjLGFubm91bmNlbWVudEJhbm5lcjpsfT1lPz97fSx7Zm9ybWF0TWVzc2FnZTp1fT13KCkse3BhdGhuYW1lOmR9PXRlKCksZj14KGQpLHA9byE9bnVsbCYmby5yaWdodEJ1dHRvbj9xKG8ucmlnaHRCdXR0b24pOntpMThuSWQ6RS5zaWduVXAuaWQsbGFiZWw6dShFLnNpZ25VcCl9LG09byE9bnVsbCYmby5sZWZ0QnV0dG9uP3Eoby5sZWZ0QnV0dG9uKTp7aTE4bklkOkUuc2lnbkluLmlkLGxhYmVsOnUoRS5zaWduSW4pfSxoPSEhKG8hPW51bGwmJm8ubGVmdEJ1dHRvbnx8byE9bnVsbCYmby5yaWdodEJ1dHRvbiksZz0oMCxXLnVzZU1lbW8pKCgpPT57aWYocylyZXR1cm57bWVzc2FnZTpzLmxhYmVsPz9gYCx1cmw6cy5saW5rfX0sW3NdKSxfPSgwLFcudXNlTWVtbykoKCk9Pnt2YXIgZTtyZXR1cm4gYz09bnVsbHx8KGU9Yy5zdWJOYXZMaW5rcyk9PW51bGw/dm9pZCAwOmUubWFwKGU9Pih7bGFiZWw6ZS5sYWJlbD8/YGAsdXJsOmUubGluayxpY29uOmUuaWNvbixvcGVuSW5OZXdUYWI6ZS5vcGVuSW5OZXdUYWIsYWN0aXZlOmUubGluaz09PWZ9KSl9LFtjLGZdKTtyZXR1cm4oMCxILmpzeHMpKEguRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxILmpzeCkoZWUse3RoZW1lTW9kZTpgZGVmYXVsdGAsc2lnbkluVXJsOihvPT1udWxsfHwobj1vLmxlZnRCdXR0b24pPT1udWxsP3ZvaWQgMDpuLmxpbmspPz9gL3NpZ25pbmAsc2lnblVwVXJsOm89PW51bGx8fChyPW8ucmlnaHRCdXR0b24pPT1udWxsP3ZvaWQgMDpyLmxpbmssc2hvd1NpZ25JbkJ1dHRvbjoobz09bnVsbD92b2lkIDA6by5zaG93U2lnbkluQnV0dG9uKT8/ITAsc2hvd1NpZ25VcEJ1dHRvbjoobz09bnVsbD92b2lkIDA6by5zaG93U2lnblVwQnV0dG9uKT8/ITAsbWFpbkNUQTpwLHNlY29uZGFyeUNUQTptLGlzQ3VzdG9tQ1RBOmgsYmFubmVyOmcscHJvZHVjdE5hbWU6Yz09bnVsbHx8KGk9Yy5wcm9kdWN0Q3RhKT09bnVsbD92b2lkIDA6aS5sYWJlbCxwcm9kdWN0VXJsOmM9PW51bGx8fChhPWMucHJvZHVjdEN0YSk9PW51bGw/dm9pZCAwOmEubGluayxzdWJOYXZMaW5rczpfLC4uLnR9KSxsPygwLEguanN4KShVZSx7Li4ubH0pOigwLEguanN4KShuZSx7fSldfSl9KSxKPWA5NGpoZDd5N29EYldYejFweWhkbmcwM2hnZjhzU2VlYzhIdXRnS0R1UzgzMWAsWT1gbWFya2V0aW5nc3BjYCxYPWBibG9nc3BjYCxaPWBjb2luYmFzZWJsb2dgLFE9YDk0amhkN3k3b0RiV1h6MXB5aGRuZzAzaGdmOHNTZWVjOEh1dGdLRHVTODMxYCwkPXtkZXY6e2NsaWVudEtleTpYLHNwYWNlSWQ6WixhY2Nlc3NUb2tlbjpRLHByZXZpZXdBY2Nlc3NUb2tlbjpRLGhvc3Q6eSxwcmV2aWV3SG9zdDpqLHN1cHBvcnRzTG9jYWxpemF0aW9uOiEwfSxwcm9kOntjbGllbnRLZXk6WCxzcGFjZUlkOlosYWNjZXNzVG9rZW46USxob3N0Onksc3VwcG9ydHNMb2NhbGl6YXRpb246ITB9fSxHZT17bWFya2V0aW5nOntkZXY6e2NsaWVudEtleTpgUExQYCxzcGFjZUlkOlksYWNjZXNzVG9rZW46SixwcmV2aWV3QWNjZXNzVG9rZW46Sixob3N0OmoscHJldmlld0hvc3Q6aixzdXBwb3J0c0xvY2FsaXphdGlvbjohMH0scHJvZDp7Y2xpZW50S2V5OmBQTFBgLHNwYWNlSWQ6WSxhY2Nlc3NUb2tlbjpKLGhvc3Q6eSxzdXBwb3J0c0xvY2FsaXphdGlvbjohMH19LGJsb2c6JH07ZXhwb3J0e1ZlIGFzIGEsSyBhcyBpLEdlIGFzIG4sVSBhcyBvLFdlIGFzIHIsJCBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19EdDJrWGNzMi5qcy5tYXA="}},"time_used":119,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":119,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_6z3OfXe9.png","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.872Z","timestamp":1785108244872,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_6z3OfXe9.png HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:05 GMT\r\ncontent-type: image/png\r\ncontent-length: 540\r\nlast-modified: Thu, 26 Mar 2026 10:01:21 GMT\r\netag: \"edb331948b196fde10cb4d6a4e894bb8\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 81cb77eb84eee291ebbd90b4c274c1c4.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: FRA60-P6\r\nx-amz-cf-id: QmnpRu9GuN-soXtJ-trR65KXOjvVA4ncZF6uB6yo61OgRTO3lRtBLg==\r\ncf-bgj: imgq:100,h2pri\r\ncf-polished: ok, orig_size=894\r\npriority: u=4;i=?0,cf-chb=(37;u=2;i=?0 225;u=4;i=?0)\r\nx-content-type-options: nosniff\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=156zxNtO9x62E84nE0D6N3fSrrQIl50KcLgZ%2B6zwPG%2F7hqTBeWPgzg0kP%2BWxhFskg%2Fr3vzZWaQl0%2BsPKrOBNXefVTMBq7%2B%2FH1EdI1bAUpLQEQsWKPrTVLLYdOE%2BBbl0JgN3p2l3OoPpYkxoc6D1h\"}]}\r\nage: 4040334\r\nexpires: Tue, 27 Jul 2027 05:12:51 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\ncf-ray: a21727e37af30883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":540,"size_decoded":1780,"mime_type":"image/png","magic":"PNG image data, 32 x 32, 8-bit colormap, non-interlaced","md5":"135ffd17e05436fcd54db9a5a623f93a","sha1":"cd4de012367fe5a410c554b015186d7a1deb9f78","sha256":"5f4a2738c55c46ca324443d57553bf79e8fa9575fa48b8fd241600cd0285ff46","sha512":"263f25c8c4e9df4167fa6fa6cfbbb77467695ee85a385d58a2a24ebaba0d401ee6ee33b295c32d2b0d5a1b6c6faca5d1bfe4793c1a8ee27c4297fa7374c32c18","ssdeep":"","tlshash":"f5f07e87ba2b083b46a904bdc32240f938aa2c1e4803880c8a633c4c19f03222a92303","first_seen":"2025-01-05T13:30:30.627396Z","last_seen":"2026-07-26T23:25:46.882417Z","times_seen":535,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAByUExURQAAAP///////////////////////////////////////////////////+/0/9/p/8/f/8/e/7/U/7/T/6/J/6C+/5++/4Cp/3+p/4Co/3+o/3Ce/2+e/3Cd/1CI/0B9/zBz/zBy/yBo/xBd/xBc/wBS/zO+XmcAAAANdFJOUwAQIDBfYI+Qn6DP3++j3GSfAAABL0lEQVR42oXT63KCMBCG4aSKgOQFxSNFDUr3/m+xo8mwiEz7/GOGPUC+GGWTbO3ArbOlNZ++UofKvsw7u2JiZd/KC4C68Q+R3l82AMWoyaIAai8DvwOKxbi+vMqbttQetoCqk4mugiLssYKykw9dCavXAOAqM1rgOSSHvUT9rWluvUQ7SI2xwF2CSwlQnSXw4KxJYCvBkeioLRKTDxt8M2jlpYHMrMGH+RWD8ifOYG0chKcbqP3xaQ/OAEO/Of+/4ODx5whdsmRQiS6Zw0l/bXQafWYCtQQHooMEG1ga68BL0FSARsMD1phUW3weVhaPu5UZl3jcJoXyPh+YVCN3n43cOLTtpP8QWo39qImv0djrxdlefC/y8OcaQr2yKROpnV7eHOVSLVc2yeP1T0bVv0Q+TDJRkhpjAAAAAElFTkSuQmCC"}},"time_used":10,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"accounts.google.com/gsi/client","fqdn":"accounts.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"172.253.148.84","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:05.864Z","timestamp":1785108245864,"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":"accounts.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:40:14 GMT","end":"Mon, 21 Sep 2026 08:40:13 GMT"},"fingerprint":{"sha1":"93:91:8D:27:B0:C4:5A:8E:4D:AE:13:60:22:57:A6:AD:23:05:64:C6","sha256":"4D:58:57:46:FA:21:8C:CF:FC:2E:FB:76:42:37:3D:E8:82:32:15:46:F2:01:11:6B:C4:DC:8B:9C:F1:B9:FB:29"}}},"request":{"raw":"GET /gsi/client HTTP/1.1\r\nHost: accounts.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://www.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\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\nvary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site\r\nexpires: Sun, 26 Jul 2026 23:24:06 GMT\r\ndate: Sun, 26 Jul 2026 23:24:06 GMT\r\ncache-control: private, max-age=1800\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"coop_dd7de8473bddc59c6b748810a67a39b1\"\r\nreport-to: {\"group\":\"coop_dd7de8473bddc59c6b748810a67a39b1\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/dd7de8473bddc59c6b748810a67a39b1\"}]}\r\ncontent-security-policy: require-trusted-types-for 'script';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http, script-src 'nonce-X5E2_Nk2siqxEZziTLpE-g' 'unsafe-inline' 'strict-dynamic' https: http: 'unsafe-eval';object-src 'none';base-uri 'self';report-uri https://csp.withgoogle.com/csp/identity-sign-in-google-http\r\ncross-origin-resource-policy: cross-origin\r\ncontent-encoding: gzip\r\nserver: ESF\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":264892,"size_decoded":99206,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2663)","md5":"853774617b1019ff5cac94cf80645189","sha1":"44442e7ad86af42120a25222a0ce82aea5483567","sha256":"e3f665a122d0c8e1a763b96275463a7dacd8d972c67421b3e4aaf417c6b40d2a","sha512":"8ec06a4d98fda998ac8c13a6eefd38d15e32b1c3c377dad93fa17932f41df631436938d93f29f7d2b7aa180f466b74b71f43119694b83fed5168ffd6f5e433d4","ssdeep":"6144:mdF57hxy5bhIJFMS/4y/PIwnpjSsM1aCRT9ySU:mUhsh/4y/gsdjM1aCRT9XU","tlshash":"07444adcb2e270359212f8b5c43f410ab076a679f0498cacfa95c5f5acb1d890167f7a","first_seen":"2026-07-23T03:09:36.951236Z","last_seen":"2026-07-27T01:59:39.085973Z","times_seen":446,"resource_available":true,"data":"InVzZSBzdHJpY3QiO3RoaXMuZGVmYXVsdF9nc2k9dGhpcy5kZWZhdWx0X2dzaXx8e307KGZ1bmN0aW9uKF8pe3ZhciB3aW5kb3c9dGhpczsKdHJ5ewpfLl9GX3RvZ2dsZXNfaW5pdGlhbGl6ZT1mdW5jdGlvbihhKXsodHlwZW9mIGdsb2JhbFRoaXMhPT0idW5kZWZpbmVkIj9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmIT09InVuZGVmaW5lZCI/c2VsZjp0aGlzKS5fRl90b2dnbGVzX2RlZmF1bHRfZ3NpPWF8fFtdfTsoMCxfLl9GX3RvZ2dsZXNfaW5pdGlhbGl6ZSkoWzB4MCwgMHgxMjYwMDQxMCwgMHg0MiwgXSk7CnZhciBiYSxjYSxkYSx0LGVhLGxhLG1hLG9hO18uYWE9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbigpe307Yi5wcm90b3R5cGU9YTtyZXR1cm4gbmV3IGJ9O2JhPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwpjYT1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoImEiKTt9O2RhPWNhKHRoaXMpO3Q9ZnVuY3Rpb24oYSxiKXtpZihiKWE6e3ZhciBjPWRhO2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKWJyZWFrIGE7Yz1jW2VdfWE9YVthLmxlbmd0aC0xXTtkPWNbYV07Yj1iKGQpO2IhPWQmJmIhPW51bGwmJmJhKGMsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX19OwppZih0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mPT0iZnVuY3Rpb24iKWVhPU9iamVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciBmYTthOnt2YXIgaGE9e2E6ITB9LGlhPXt9O3RyeXtpYS5fX3Byb3RvX189aGE7ZmE9aWEuYTticmVhayBhfWNhdGNoKGEpe31mYT0hMX1lYT1mYT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoImJgIithKTtyZXR1cm4gYX06bnVsbH1fLmphPWVhO2xhPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTsKXy51PWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtpZihiKXJldHVybiBiLmNhbGwoYSk7aWYodHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDpsYShhKX07dGhyb3cgRXJyb3IoImNgIitTdHJpbmcoYSkpO307bWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYil9O29hPXR5cGVvZiBPYmplY3QuYXNzaWduPT0iZnVuY3Rpb24iP09iamVjdC5hc3NpZ246ZnVuY3Rpb24oYSxiKXtpZihhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoImQiKTthPU9iamVjdChhKTtmb3IodmFyIGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKXt2YXIgZD1hcmd1bWVudHNbY107aWYoZClmb3IodmFyIGUgaW4gZCltYShkLGUpJiYoYVtlXT1kW2VdKX1yZXR1cm4gYX07CnQoIk9iamVjdC5hc3NpZ24iLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxvYX0pO18ucGE9ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJlYCIrYSk7fTtfLnY9ZnVuY3Rpb24oKXt0aGlzLkM9ITE7dGhpcy52PW51bGw7dGhpcy5pPXZvaWQgMDt0aGlzLmc9MTt0aGlzLm89dGhpcy5CPTA7dGhpcy5HPXRoaXMuaj1udWxsfTtfLnYucHJvdG90eXBlLkQ9ZnVuY3Rpb24oYSl7dGhpcy5pPWF9O18udi5wcm90b3R5cGUuZ2V0TmV4dEFkZHJlc3NKc2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nfTtfLnYucHJvdG90eXBlLmdldFlpZWxkUmVzdWx0SnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaX07Xy52LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5qPXtyZXR1cm46YX07dGhpcy5nPXRoaXMub307Xy52LnByb3RvdHlwZVsicmV0dXJuIl09Xy52LnByb3RvdHlwZS5yZXR1cm47Cl8udi5wcm90b3R5cGUuVj1mdW5jdGlvbihhKXt0aGlzLmo9e1c6YX07dGhpcy5nPXRoaXMub307Xy52LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9Xy52LnByb3RvdHlwZS5WO18udi5wcm90b3R5cGUuaD1mdW5jdGlvbihhLGIpe3RoaXMuZz1iO3JldHVybnt2YWx1ZTphfX07Xy52LnByb3RvdHlwZS55aWVsZD1fLnYucHJvdG90eXBlLmg7Xy52LnByb3RvdHlwZS5iYT1mdW5jdGlvbihhLGIpe2E9Xy51KGEpO3ZhciBjPWEubmV4dCgpO18ucGEoYyk7aWYoYy5kb25lKXRoaXMuaT1jLnZhbHVlLHRoaXMuZz1iO2Vsc2UgcmV0dXJuIHRoaXMudj1hLHRoaXMuaChjLnZhbHVlLGIpfTtfLnYucHJvdG90eXBlLnlpZWxkQWxsPV8udi5wcm90b3R5cGUuYmE7Xy52LnByb3RvdHlwZS5XPWZ1bmN0aW9uKGEpe3RoaXMuZz1hfTtfLnYucHJvdG90eXBlLmp1bXBUbz1fLnYucHJvdG90eXBlLlc7Xy52LnByb3RvdHlwZS5KPWZ1bmN0aW9uKCl7dGhpcy5nPTB9OwpfLnYucHJvdG90eXBlLmp1bXBUb0VuZD1fLnYucHJvdG90eXBlLko7Xy52LnByb3RvdHlwZS51PWZ1bmN0aW9uKGEsYil7dGhpcy5CPWE7YiE9dm9pZCAwJiYodGhpcy5vPWIpfTtfLnYucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1fLnYucHJvdG90eXBlLnU7Xy52LnByb3RvdHlwZS5nYT1mdW5jdGlvbihhKXt0aGlzLkI9MDt0aGlzLm89YXx8MH07Xy52LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9Xy52LnByb3RvdHlwZS5nYTtfLnYucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiKXt0aGlzLmc9YTt0aGlzLkI9Ynx8MH07Xy52LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPV8udi5wcm90b3R5cGUuSDtfLnYucHJvdG90eXBlLmw9ZnVuY3Rpb24oYSl7dGhpcy5CPWF8fDA7YT10aGlzLmouTmI7dGhpcy5qPW51bGw7cmV0dXJuIGF9O18udi5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPV8udi5wcm90b3R5cGUubDsKXy52LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuR1tjXT10aGlzLmo6dGhpcy5HPVt0aGlzLmpdO3RoaXMuQj1hfHwwO3RoaXMubz1ifHwwfTtfLnYucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPV8udi5wcm90b3R5cGUuSztfLnYucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSxiKXtiPXRoaXMuRy5zcGxpY2UoYnx8MClbMF07KGI9dGhpcy5qPXRoaXMuanx8Yik/Yi5ZYz90aGlzLmc9dGhpcy5CfHx0aGlzLm86Yi5XIT12b2lkIDAmJnRoaXMubzxiLlc/KHRoaXMuZz1iLlcsdGhpcy5qPW51bGwpOnRoaXMuZz10aGlzLm86dGhpcy5nPWF9O18udi5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9Xy52LnByb3RvdHlwZS5SO18udi5wcm90b3R5cGUuUD1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IHFhKGEpfTtfLnYucHJvdG90eXBlLmZvckluPV8udi5wcm90b3R5cGUuUDsKdmFyIHFhPWZ1bmN0aW9uKGEpe3RoaXMuaT1hO3RoaXMuZz1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLmcucHVzaChiKTt0aGlzLmcucmV2ZXJzZSgpfTtxYS5wcm90b3R5cGUuaD1mdW5jdGlvbigpe2Zvcig7dGhpcy5nLmxlbmd0aD4wOyl7dmFyIGE9dGhpcy5nLnBvcCgpO2lmKGEgaW4gdGhpcy5pKXJldHVybiBhfXJldHVybiBudWxsfTtxYS5wcm90b3R5cGUuZ2V0TmV4dD1xYS5wcm90b3R5cGUuaDt0KCJnbG9iYWxUaGlzIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8ZGF9KTt0KCJSZWZsZWN0LnNldFByb3RvdHlwZU9mIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOl8uamE/ZnVuY3Rpb24oYixjKXt0cnl7cmV0dXJuKDAsXy5qYSkoYixjKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19Om51bGx9KTsKdCgiU3ltYm9sIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO3ZhciBiPWZ1bmN0aW9uKGYsZyl7dGhpcy5nPWY7YmEodGhpcywiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z30pfTtiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O3ZhciBjPSJqc2NvbXBfc3ltYm9sXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCkrIl8iLGQ9MCxlPWZ1bmN0aW9uKGYpe2lmKHRoaXMgaW5zdGFuY2VvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoImciKTtyZXR1cm4gbmV3IGIoYysoZnx8IiIpKyJfIitkKyssZil9O3JldHVybiBlfSk7dCgiU3ltYm9sLml0ZXJhdG9yIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO2E9U3ltYm9sKCJoIik7YmEoQXJyYXkucHJvdG90eXBlLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiByYShsYSh0aGlzKSl9fSk7cmV0dXJuIGF9KTsKdmFyIHJhPWZ1bmN0aW9uKGEpe2E9e25leHQ6YX07YVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3JldHVybiBhfTsKdCgiUHJvbWlzZSIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe3RoaXMuZz1udWxsfWZ1bmN0aW9uIGMoZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBlP2c6bmV3IGUoZnVuY3Rpb24oaCl7aChnKX0pfWlmKGEpcmV0dXJuIGE7Yi5wcm90b3R5cGUuaD1mdW5jdGlvbihnKXtpZih0aGlzLmc9PW51bGwpe3RoaXMuZz1bXTt2YXIgaD10aGlzO3RoaXMuaShmdW5jdGlvbigpe2gubCgpfSl9dGhpcy5nLnB1c2goZyl9O3ZhciBkPWRhLnNldFRpbWVvdXQ7Yi5wcm90b3R5cGUuaT1mdW5jdGlvbihnKXtkKGcsMCl9O2IucHJvdG90eXBlLmw9ZnVuY3Rpb24oKXtmb3IoO3RoaXMuZyYmdGhpcy5nLmxlbmd0aDspe3ZhciBnPXRoaXMuZzt0aGlzLmc9W107Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDsrK2gpe3ZhciBrPWdbaF07Z1toXT1udWxsO3RyeXtrKCl9Y2F0Y2gobSl7dGhpcy5qKG0pfX19dGhpcy5nPW51bGx9O2IucHJvdG90eXBlLmo9ZnVuY3Rpb24oZyl7dGhpcy5pKGZ1bmN0aW9uKCl7dGhyb3cgZzsKfSl9O3ZhciBlPWZ1bmN0aW9uKGcpe3RoaXMuZz0wO3RoaXMuaT12b2lkIDA7dGhpcy5oPVtdO3RoaXMudT0hMTt2YXIgaD10aGlzLmooKTt0cnl7ZyhoLnJlc29sdmUsaC5yZWplY3QpfWNhdGNoKGspe2gucmVqZWN0KGspfX07ZS5wcm90b3R5cGUuaj1mdW5jdGlvbigpe2Z1bmN0aW9uIGcobSl7cmV0dXJuIGZ1bmN0aW9uKG4pe2t8fChrPSEwLG0uY2FsbChoLG4pKX19dmFyIGg9dGhpcyxrPSExO3JldHVybntyZXNvbHZlOmcodGhpcy5EKSxyZWplY3Q6Zyh0aGlzLmwpfX07ZS5wcm90b3R5cGUuRD1mdW5jdGlvbihnKXtpZihnPT09dGhpcyl0aGlzLmwobmV3IFR5cGVFcnJvcigiaSIpKTtlbHNlIGlmKGcgaW5zdGFuY2VvZiBlKXRoaXMuSihnKTtlbHNle2E6c3dpdGNoKHR5cGVvZiBnKXtjYXNlICJvYmplY3QiOnZhciBoPWchPW51bGw7YnJlYWsgYTtjYXNlICJmdW5jdGlvbiI6aD0hMDticmVhayBhO2RlZmF1bHQ6aD0hMX1oP3RoaXMuSChnKTp0aGlzLm8oZyl9fTtlLnByb3RvdHlwZS5IPQpmdW5jdGlvbihnKXt2YXIgaD12b2lkIDA7dHJ5e2g9Zy50aGVufWNhdGNoKGspe3RoaXMubChrKTtyZXR1cm59dHlwZW9mIGg9PSJmdW5jdGlvbiI/dGhpcy5LKGgsZyk6dGhpcy5vKGcpfTtlLnByb3RvdHlwZS5sPWZ1bmN0aW9uKGcpe3RoaXMudigyLGcpfTtlLnByb3RvdHlwZS5vPWZ1bmN0aW9uKGcpe3RoaXMudigxLGcpfTtlLnByb3RvdHlwZS52PWZ1bmN0aW9uKGcsaCl7aWYodGhpcy5nIT0wKXRocm93IEVycm9yKCJqYCIrZysiYCIraCsiYCIrdGhpcy5nKTt0aGlzLmc9Zzt0aGlzLmk9aDt0aGlzLmc9PT0yJiZ0aGlzLkcoKTt0aGlzLkIoKX07ZS5wcm90b3R5cGUuRz1mdW5jdGlvbigpe3ZhciBnPXRoaXM7ZChmdW5jdGlvbigpe2lmKGcuQygpKXt2YXIgaD1kYS5jb25zb2xlO3R5cGVvZiBoIT09InVuZGVmaW5lZCImJmguZXJyb3IoZy5pKX19LDEpfTtlLnByb3RvdHlwZS5DPWZ1bmN0aW9uKCl7aWYodGhpcy51KXJldHVybiExO3ZhciBnPWRhLkN1c3RvbUV2ZW50LGg9ZGEuRXZlbnQsCms9ZGEuZGlzcGF0Y2hFdmVudDtpZih0eXBlb2Ygaz09PSJ1bmRlZmluZWQiKXJldHVybiEwO3R5cGVvZiBnPT09ImZ1bmN0aW9uIj9nPW5ldyBnKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHtjYW5jZWxhYmxlOiEwfSk6dHlwZW9mIGg9PT0iZnVuY3Rpb24iP2c9bmV3IGgoInVuaGFuZGxlZHJlamVjdGlvbiIse2NhbmNlbGFibGU6ITB9KTooZz1kYS5kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxnLmluaXRDdXN0b21FdmVudCgidW5oYW5kbGVkcmVqZWN0aW9uIiwhMSwhMCxnKSk7Zy5wcm9taXNlPXRoaXM7Zy5yZWFzb249dGhpcy5pO3JldHVybiBrKGcpfTtlLnByb3RvdHlwZS5CPWZ1bmN0aW9uKCl7aWYodGhpcy5oIT1udWxsKXtmb3IodmFyIGc9MDtnPHRoaXMuaC5sZW5ndGg7KytnKWYuaCh0aGlzLmhbZ10pO3RoaXMuaD1udWxsfX07dmFyIGY9bmV3IGI7ZS5wcm90b3R5cGUuSj1mdW5jdGlvbihnKXt2YXIgaD10aGlzLmooKTtnLnFiKGgucmVzb2x2ZSxoLnJlamVjdCl9OwplLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGcsaCl7dmFyIGs9dGhpcy5qKCk7dHJ5e2cuY2FsbChoLGsucmVzb2x2ZSxrLnJlamVjdCl9Y2F0Y2gobSl7ay5yZWplY3QobSl9fTtlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gayhwLHIpe3JldHVybiB0eXBlb2YgcD09ImZ1bmN0aW9uIj9mdW5jdGlvbih4KXt0cnl7bShwKHgpKX1jYXRjaCh5KXtuKHkpfX06cn12YXIgbSxuLHE9bmV3IGUoZnVuY3Rpb24ocCxyKXttPXA7bj1yfSk7dGhpcy5xYihrKGcsbSksayhoLG4pKTtyZXR1cm4gcX07ZS5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsZyl9O2UucHJvdG90eXBlLnFiPWZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gaygpe3N3aXRjaChtLmcpe2Nhc2UgMTpnKG0uaSk7YnJlYWs7Y2FzZSAyOmgobS5pKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJrYCIrbS5nKTt9fXZhciBtPXRoaXM7dGhpcy5oPT1udWxsP2YuaChrKToKdGhpcy5oLnB1c2goayk7dGhpcy51PSEwfTtlLnJlc29sdmU9YztlLnJlamVjdD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGUoZnVuY3Rpb24oaCxrKXtrKGcpfSl9O2UucmFjZT1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGUoZnVuY3Rpb24oaCxrKXtmb3IodmFyIG09Xy51KGcpLG49bS5uZXh0KCk7IW4uZG9uZTtuPW0ubmV4dCgpKWMobi52YWx1ZSkucWIoaCxrKX0pfTtlLmFsbD1mdW5jdGlvbihnKXt2YXIgaD1fLnUoZyksaz1oLm5leHQoKTtyZXR1cm4gay5kb25lP2MoW10pOm5ldyBlKGZ1bmN0aW9uKG0sbil7ZnVuY3Rpb24gcSh4KXtyZXR1cm4gZnVuY3Rpb24oeSl7cFt4XT15O3ItLTtyPT0wJiZtKHApfX12YXIgcD1bXSxyPTA7ZG8gcC5wdXNoKHZvaWQgMCkscisrLGMoay52YWx1ZSkucWIocShwLmxlbmd0aC0xKSxuKSxrPWgubmV4dCgpO3doaWxlKCFrLmRvbmUpfSl9O3JldHVybiBlfSk7CnZhciBzYT1mdW5jdGlvbihhLGIsYyl7aWYoYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJsYCIrYyk7aWYoYiBpbnN0YW5jZW9mIFJlZ0V4cCl0aHJvdyBuZXcgVHlwZUVycm9yKCJtYCIrYyk7cmV0dXJuIGErIiJ9O3QoIlN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPXNhKHRoaXMsYiwic3RhcnRzV2l0aCIpLGU9ZC5sZW5ndGgsZj1iLmxlbmd0aDtjPU1hdGgubWF4KDAsTWF0aC5taW4oY3wwLGQubGVuZ3RoKSk7Zm9yKHZhciBnPTA7ZzxmJiZjPGU7KWlmKGRbYysrXSE9YltnKytdKXJldHVybiExO3JldHVybiBnPj1mfX0pO3QoIk9iamVjdC5zZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oYSl7cmV0dXJuIGF8fF8uamF9KTt0KCJTeW1ib2wuZGlzcG9zZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpTeW1ib2woIm4iKX0pOwp0KCJBcnJheS5wcm90b3R5cGUuZmluZCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe2E6e3ZhciBkPXRoaXM7ZCBpbnN0YW5jZW9mIFN0cmluZyYmKGQ9U3RyaW5nKGQpKTtmb3IodmFyIGU9ZC5sZW5ndGgsZj0wO2Y8ZTtmKyspe3ZhciBnPWRbZl07aWYoYi5jYWxsKGMsZyxmLGQpKXtiPWc7YnJlYWsgYX19Yj12b2lkIDB9cmV0dXJuIGJ9fSk7CnQoIldlYWtNYXAiLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXt9ZnVuY3Rpb24gYyhrKXt2YXIgbT10eXBlb2YgaztyZXR1cm4gbT09PSJvYmplY3QiJiZrIT09bnVsbHx8bT09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gZChrKXtpZighbWEoayxmKSl7dmFyIG09bmV3IGI7YmEoayxmLHt2YWx1ZTptfSl9fWZ1bmN0aW9uIGUoayl7dmFyIG09T2JqZWN0W2tdO20mJihPYmplY3Rba109ZnVuY3Rpb24obil7aWYobiBpbnN0YW5jZW9mIGIpcmV0dXJuIG47T2JqZWN0LmlzRXh0ZW5zaWJsZShuKSYmZChuKTtyZXR1cm4gbShuKX0pfWlmKGZ1bmN0aW9uKCl7aWYoIWF8fCFPYmplY3Quc2VhbClyZXR1cm4hMTt0cnl7dmFyIGs9T2JqZWN0LnNlYWwoe30pLG09T2JqZWN0LnNlYWwoe30pLG49bmV3IGEoW1trLDJdLFttLDNdXSk7aWYobi5nZXQoaykhPTJ8fG4uZ2V0KG0pIT0zKXJldHVybiExO24uZGVsZXRlKGspO24uc2V0KG0sNCk7cmV0dXJuIW4uaGFzKGspJiZuLmdldChtKT09NH1jYXRjaChxKXtyZXR1cm4hMX19KCkpcmV0dXJuIGE7CnZhciBmPSIkanNjb21wX2hpZGRlbl8iK01hdGgucmFuZG9tKCk7ZSgiZnJlZXplIik7ZSgicHJldmVudEV4dGVuc2lvbnMiKTtlKCJzZWFsIik7dmFyIGc9MCxoPWZ1bmN0aW9uKGspe3RoaXMuZz0oZys9TWF0aC5yYW5kb20oKSsxKS50b1N0cmluZygpO2lmKGspe2s9Xy51KGspO2Zvcih2YXIgbTshKG09ay5uZXh0KCkpLmRvbmU7KW09bS52YWx1ZSx0aGlzLnNldChtWzBdLG1bMV0pfX07aC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGssbSl7aWYoIWMoaykpdGhyb3cgRXJyb3IoIm8iKTtkKGspO2lmKCFtYShrLGYpKXRocm93IEVycm9yKCJwYCIrayk7a1tmXVt0aGlzLmddPW07cmV0dXJuIHRoaXN9O2gucHJvdG90eXBlLmdldD1mdW5jdGlvbihrKXtyZXR1cm4gYyhrKSYmbWEoayxmKT9rW2ZdW3RoaXMuZ106dm9pZCAwfTtoLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oayl7cmV0dXJuIGMoaykmJm1hKGssZikmJm1hKGtbZl0sdGhpcy5nKX07aC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGspe3JldHVybiBjKGspJiYKbWEoayxmKSYmbWEoa1tmXSx0aGlzLmcpP2RlbGV0ZSBrW2ZdW3RoaXMuZ106ITF9O3JldHVybiBofSk7CnQoIk1hcCIsZnVuY3Rpb24oYSl7aWYoZnVuY3Rpb24oKXtpZighYXx8dHlwZW9mIGEhPSJmdW5jdGlvbiJ8fCFhLnByb3RvdHlwZS5lbnRyaWVzfHx0eXBlb2YgT2JqZWN0LnNlYWwhPSJmdW5jdGlvbiIpcmV0dXJuITE7dHJ5e3ZhciBoPU9iamVjdC5zZWFsKHt4OjR9KSxrPW5ldyBhKF8udShbW2gsInMiXV0pKTtpZihrLmdldChoKSE9InMifHxrLnNpemUhPTF8fGsuZ2V0KHt4OjR9KXx8ay5zZXQoe3g6NH0sInQiKSE9a3x8ay5zaXplIT0yKXJldHVybiExO3ZhciBtPWsuZW50cmllcygpLG49bS5uZXh0KCk7aWYobi5kb25lfHxuLnZhbHVlWzBdIT1ofHxuLnZhbHVlWzFdIT0icyIpcmV0dXJuITE7bj1tLm5leHQoKTtyZXR1cm4gbi5kb25lfHxuLnZhbHVlWzBdLnghPTR8fG4udmFsdWVbMV0hPSJ0Inx8IW0ubmV4dCgpLmRvbmU/ITE6ITB9Y2F0Y2gocSl7cmV0dXJuITF9fSgpKXJldHVybiBhO3ZhciBiPW5ldyBXZWFrTWFwLGM9ZnVuY3Rpb24oaCl7dGhpc1swXT17fTt0aGlzWzFdPQpmKCk7dGhpcy5zaXplPTA7aWYoaCl7aD1fLnUoaCk7Zm9yKHZhciBrOyEoaz1oLm5leHQoKSkuZG9uZTspaz1rLnZhbHVlLHRoaXMuc2V0KGtbMF0sa1sxXSl9fTtjLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oaCxrKXtoPWg9PT0wPzA6aDt2YXIgbT1kKHRoaXMsaCk7bS5saXN0fHwobS5saXN0PXRoaXNbMF1bbS5pZF09W10pO20uZW50cnk/bS5lbnRyeS52YWx1ZT1rOihtLmVudHJ5PXtuZXh0OnRoaXNbMV0scGE6dGhpc1sxXS5wYSxoZWFkOnRoaXNbMV0sa2V5OmgsdmFsdWU6a30sbS5saXN0LnB1c2gobS5lbnRyeSksdGhpc1sxXS5wYS5uZXh0PW0uZW50cnksdGhpc1sxXS5wYT1tLmVudHJ5LHRoaXMuc2l6ZSsrKTtyZXR1cm4gdGhpc307Yy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGgpe2g9ZCh0aGlzLGgpO3JldHVybiBoLmVudHJ5JiZoLmxpc3Q/KGgubGlzdC5zcGxpY2UoaC5pbmRleCwxKSxoLmxpc3QubGVuZ3RofHxkZWxldGUgdGhpc1swXVtoLmlkXSxoLmVudHJ5LnBhLm5leHQ9CmguZW50cnkubmV4dCxoLmVudHJ5Lm5leHQucGE9aC5lbnRyeS5wYSxoLmVudHJ5LmhlYWQ9bnVsbCx0aGlzLnNpemUtLSwhMCk6ITF9O2MucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpc1swXT17fTt0aGlzWzFdPXRoaXNbMV0ucGE9ZigpO3RoaXMuc2l6ZT0wfTtjLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oaCl7cmV0dXJuISFkKHRoaXMsaCkuZW50cnl9O2MucHJvdG90eXBlLmdldD1mdW5jdGlvbihoKXtyZXR1cm4oaD1kKHRoaXMsaCkuZW50cnkpJiZoLnZhbHVlfTtjLnByb3RvdHlwZS5lbnRyaWVzPWZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxmdW5jdGlvbihoKXtyZXR1cm5baC5rZXksaC52YWx1ZV19KX07Yy5wcm90b3R5cGUua2V5cz1mdW5jdGlvbigpe3JldHVybiBlKHRoaXMsZnVuY3Rpb24oaCl7cmV0dXJuIGgua2V5fSl9O2MucHJvdG90eXBlLnZhbHVlcz1mdW5jdGlvbigpe3JldHVybiBlKHRoaXMsZnVuY3Rpb24oaCl7cmV0dXJuIGgudmFsdWV9KX07Yy5wcm90b3R5cGUuZm9yRWFjaD0KZnVuY3Rpb24oaCxrKXtmb3IodmFyIG09dGhpcy5lbnRyaWVzKCksbjshKG49bS5uZXh0KCkpLmRvbmU7KW49bi52YWx1ZSxoLmNhbGwoayxuWzFdLG5bMF0sdGhpcyl9O2MucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09Yy5wcm90b3R5cGUuZW50cmllczt2YXIgZD1mdW5jdGlvbihoLGspe3ZhciBtPWsmJnR5cGVvZiBrO209PSJvYmplY3QifHxtPT0iZnVuY3Rpb24iP2IuaGFzKGspP209Yi5nZXQoayk6KG09IiIrICsrZyxiLnNldChrLG0pKTptPSJwXyIrazt2YXIgbj1oWzBdW21dO2lmKG4mJm1hKGhbMF0sbSkpZm9yKGg9MDtoPG4ubGVuZ3RoO2grKyl7dmFyIHE9bltoXTtpZihrIT09ayYmcS5rZXkhPT1xLmtleXx8az09PXEua2V5KXJldHVybntpZDptLGxpc3Q6bixpbmRleDpoLGVudHJ5OnF9fXJldHVybntpZDptLGxpc3Q6bixpbmRleDotMSxlbnRyeTp2b2lkIDB9fSxlPWZ1bmN0aW9uKGgsayl7dmFyIG09aFsxXTtyZXR1cm4gcmEoZnVuY3Rpb24oKXtpZihtKXtmb3IoO20uaGVhZCE9CmhbMV07KW09bS5wYTtmb3IoO20ubmV4dCE9bS5oZWFkOylyZXR1cm4gbT1tLm5leHQse2RvbmU6ITEsdmFsdWU6ayhtKX07bT1udWxsfXJldHVybntkb25lOiEwLHZhbHVlOnZvaWQgMH19KX0sZj1mdW5jdGlvbigpe3ZhciBoPXt9O3JldHVybiBoLnBhPWgubmV4dD1oLmhlYWQ9aH0sZz0wO3JldHVybiBjfSk7CnQoIlNldCIsZnVuY3Rpb24oYSl7aWYoZnVuY3Rpb24oKXtpZighYXx8dHlwZW9mIGEhPSJmdW5jdGlvbiJ8fCFhLnByb3RvdHlwZS5lbnRyaWVzfHx0eXBlb2YgT2JqZWN0LnNlYWwhPSJmdW5jdGlvbiIpcmV0dXJuITE7dHJ5e3ZhciBjPU9iamVjdC5zZWFsKHt4OjR9KSxkPW5ldyBhKF8udShbY10pKTtpZighZC5oYXMoYyl8fGQuc2l6ZSE9MXx8ZC5hZGQoYykhPWR8fGQuc2l6ZSE9MXx8ZC5hZGQoe3g6NH0pIT1kfHxkLnNpemUhPTIpcmV0dXJuITE7dmFyIGU9ZC5lbnRyaWVzKCksZj1lLm5leHQoKTtpZihmLmRvbmV8fGYudmFsdWVbMF0hPWN8fGYudmFsdWVbMV0hPWMpcmV0dXJuITE7Zj1lLm5leHQoKTtyZXR1cm4gZi5kb25lfHxmLnZhbHVlWzBdPT1jfHxmLnZhbHVlWzBdLnghPTR8fGYudmFsdWVbMV0hPWYudmFsdWVbMF0/ITE6ZS5uZXh0KCkuZG9uZX1jYXRjaChnKXtyZXR1cm4hMX19KCkpcmV0dXJuIGE7dmFyIGI9ZnVuY3Rpb24oYyl7dGhpcy5nPW5ldyBNYXA7aWYoYyl7Yz0KXy51KGMpO2Zvcih2YXIgZDshKGQ9Yy5uZXh0KCkpLmRvbmU7KXRoaXMuYWRkKGQudmFsdWUpfXRoaXMuc2l6ZT10aGlzLmcuc2l6ZX07Yi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGMpe2M9Yz09PTA/MDpjO3RoaXMuZy5zZXQoYyxjKTt0aGlzLnNpemU9dGhpcy5nLnNpemU7cmV0dXJuIHRoaXN9O2IucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbihjKXtjPXRoaXMuZy5kZWxldGUoYyk7dGhpcy5zaXplPXRoaXMuZy5zaXplO3JldHVybiBjfTtiLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuZy5jbGVhcigpO3RoaXMuc2l6ZT0wfTtiLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMuZy5oYXMoYyl9O2IucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLmVudHJpZXMoKX07Yi5wcm90b3R5cGUudmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZy52YWx1ZXMoKX07Yi5wcm90b3R5cGUua2V5cz1iLnByb3RvdHlwZS52YWx1ZXM7CmIucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09Yi5wcm90b3R5cGUudmFsdWVzO2IucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oYyxkKXt2YXIgZT10aGlzO3RoaXMuZy5mb3JFYWNoKGZ1bmN0aW9uKGYpe3JldHVybiBjLmNhbGwoZCxmLGYsZSl9KX07cmV0dXJuIGJ9KTt0KCJPYmplY3QudmFsdWVzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYiltYShiLGQpJiZjLnB1c2goYltkXSk7cmV0dXJuIGN9fSk7dCgiT2JqZWN0LmlzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7cmV0dXJuIGI9PT1jP2IhPT0wfHwxL2I9PT0xL2M6YiE9PWImJmMhPT1jfX0pOwp0KCJBcnJheS5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXt2YXIgZD10aGlzO2QgaW5zdGFuY2VvZiBTdHJpbmcmJihkPVN0cmluZyhkKSk7dmFyIGU9ZC5sZW5ndGg7Yz1jfHwwO2ZvcihjPDAmJihjPU1hdGgubWF4KGMrZSwwKSk7YzxlO2MrKyl7dmFyIGY9ZFtjXTtpZihmPT09Ynx8T2JqZWN0LmlzKGYsYikpcmV0dXJuITB9cmV0dXJuITF9fSk7dCgiU3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybiBzYSh0aGlzLGIsImluY2x1ZGVzIikuaW5kZXhPZihiLGN8fDApIT09LTF9fSk7CnQoIkFycmF5LmZyb20iLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjLGQpe2M9YyE9bnVsbD9jOmZ1bmN0aW9uKGgpe3JldHVybiBofTt2YXIgZT1bXSxmPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJmJbU3ltYm9sLml0ZXJhdG9yXTtpZih0eXBlb2YgZj09ImZ1bmN0aW9uIil7Yj1mLmNhbGwoYik7Zm9yKHZhciBnPTA7IShmPWIubmV4dCgpKS5kb25lOyllLnB1c2goYy5jYWxsKGQsZi52YWx1ZSxnKyspKX1lbHNlIGZvcihmPWIubGVuZ3RoLGc9MDtnPGY7ZysrKWUucHVzaChjLmNhbGwoZCxiW2ddLGcpKTtyZXR1cm4gZX19KTt0KCJPYmplY3QuZW50cmllcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGIpbWEoYixkKSYmYy5wdXNoKFtkLGJbZF1dKTtyZXR1cm4gY319KTsKdCgiTnVtYmVyLmlzRmluaXRlIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiB0eXBlb2YgYiE9PSJudW1iZXIiPyExOiFpc05hTihiKSYmYiE9PUluZmluaXR5JiZiIT09LUluZmluaXR5fX0pO3QoIk51bWJlci5NQVhfU0FGRV9JTlRFR0VSIixmdW5jdGlvbigpe3JldHVybiA5MDA3MTk5MjU0NzQwOTkxfSk7dCgiTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIiLGZ1bmN0aW9uKCl7cmV0dXJuLTkwMDcxOTkyNTQ3NDA5OTF9KTt0KCJOdW1iZXIuaXNJbnRlZ2VyIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUoYik/Yj09PU1hdGguZmxvb3IoYik6ITF9fSk7dCgiTnVtYmVyLmlzU2FmZUludGVnZXIiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoYikmJk1hdGguYWJzKGIpPD1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUn19KTsKdCgiU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPXNhKHRoaXMsYiwiZW5kc1dpdGgiKTtjPT09dm9pZCAwJiYoYz1kLmxlbmd0aCk7Yz1NYXRoLm1heCgwLE1hdGgubWluKGN8MCxkLmxlbmd0aCkpO2Zvcih2YXIgZT1iLmxlbmd0aDtlPjAmJmM+MDspaWYoZFstLWNdIT1iWy0tZV0pcmV0dXJuITE7cmV0dXJuIGU8PTB9fSk7dmFyIHRhPWZ1bmN0aW9uKGEsYil7YSBpbnN0YW5jZW9mIFN0cmluZyYmKGErPSIiKTt2YXIgYz0wLGQ9ITEsZT17bmV4dDpmdW5jdGlvbigpe2lmKCFkJiZjPGEubGVuZ3RoKXt2YXIgZj1jKys7cmV0dXJue3ZhbHVlOmIoZixhW2ZdKSxkb25lOiExfX1kPSEwO3JldHVybntkb25lOiEwLHZhbHVlOnZvaWQgMH19fTtlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIGV9Owp0KCJBcnJheS5wcm90b3R5cGUuZW50cmllcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybiB0YSh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuW2IsY119KX19KTt0KCJNYXRoLnRydW5jIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe2I9TnVtYmVyKGIpO2lmKGlzTmFOKGIpfHxiPT09SW5maW5pdHl8fGI9PT0tSW5maW5pdHl8fGI9PT0wKXJldHVybiBiO3ZhciBjPU1hdGguZmxvb3IoTWF0aC5hYnMoYikpO3JldHVybiBiPDA/LWM6Y319KTt0KCJOdW1iZXIuaXNOYU4iLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIHR5cGVvZiBiPT09Im51bWJlciImJmlzTmFOKGIpfX0pO3QoIkFycmF5LnByb3RvdHlwZS5rZXlzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKCl7cmV0dXJuIHRhKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIGJ9KX19KTsKdCgiQXJyYXkucHJvdG90eXBlLnZhbHVlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybiB0YSh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGN9KX19KTt0KCJTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0IixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3ZhciBjPXNhKHRoaXMsbnVsbCwiY29kZVBvaW50QXQiKSxkPWMubGVuZ3RoO2I9TnVtYmVyKGIpfHwwO2lmKGI+PTAmJmI8ZCl7Ynw9MDt2YXIgZT1jLmNoYXJDb2RlQXQoYik7aWYoZTw1NTI5Nnx8ZT41NjMxOXx8YisxPT09ZClyZXR1cm4gZTtiPWMuY2hhckNvZGVBdChiKzEpO3JldHVybiBiPDU2MzIwfHxiPjU3MzQzP2U6KGUtNTUyOTYpKjEwMjQrYis5MjE2fX19KTsKdCgiU3RyaW5nLmZyb21Db2RlUG9pbnQiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7Zm9yKHZhciBjPSIiLGQ9MDtkPGFyZ3VtZW50cy5sZW5ndGg7ZCsrKXt2YXIgZT1OdW1iZXIoYXJndW1lbnRzW2RdKTtpZihlPDB8fGU+MTExNDExMXx8ZSE9PU1hdGguZmxvb3IoZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInFgIitlKTtlPD02NTUzNT9jKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpOihlLT02NTUzNixjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGU+Pj4xMCYxMDIzfDU1Mjk2KSxjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUmMTAyM3w1NjMyMCkpfXJldHVybiBjfX0pOwp0KCJQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5IixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLnRoZW4oZnVuY3Rpb24oYyl7cmV0dXJuIFByb21pc2UucmVzb2x2ZShiKCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gY30pfSxmdW5jdGlvbihjKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGIoKSkudGhlbihmdW5jdGlvbigpe3Rocm93IGM7fSl9KX19KTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKLyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KXy51YT1fLnVhfHx7fTtfLnc9dGhpc3x8c2VsZjtfLnZhPV8udy5fRl90b2dnbGVzX2RlZmF1bHRfZ3NpfHxbXTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKLyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KdmFyIEZhLE1hLFFhLFRhLFhhLGhiLGRiLGxiLEJiLEhiLFJiLFdiLFpiLGFjLGZjLGhjLGtjLHBjLHdjLEFjLHhjLFBjLFFjLFVjLGJkLGRkLGdkLHFkLHNkLHRkLEtkLExkLE5kLFFkLE9kLFBkLFJkLFNkLFZkLFdkLFhkOwpfLnphPWZ1bmN0aW9uKGEpe3ZhciBiPSExO2I9Yj09PXZvaWQgMD8hMTpiO2lmKHdhKXtpZihiJiYoeGE/IWEuaXNXZWxsRm9ybWVkKCk6Lyg/OlteXHVEODAwLVx1REJGRl18XilbXHVEQzAwLVx1REZGRl18W1x1RDgwMC1cdURCRkZdKD8hW1x1REMwMC1cdURGRkZdKS8udGVzdChhKSkpdGhyb3cgRXJyb3IoInMiKTthPSh5YXx8KHlhPW5ldyBUZXh0RW5jb2RlcikpLmVuY29kZShhKX1lbHNle2Zvcih2YXIgYz0wLGQ9bmV3IFVpbnQ4QXJyYXkoMyphLmxlbmd0aCksZT0wO2U8YS5sZW5ndGg7ZSsrKXt2YXIgZj1hLmNoYXJDb2RlQXQoZSk7aWYoZjwxMjgpZFtjKytdPWY7ZWxzZXtpZihmPDIwNDgpZFtjKytdPWY+PjZ8MTkyO2Vsc2V7aWYoZj49NTUyOTYmJmY8PTU3MzQzKXtpZihmPD01NjMxOSYmZTxhLmxlbmd0aCl7dmFyIGc9YS5jaGFyQ29kZUF0KCsrZSk7aWYoZz49NTYzMjAmJmc8PTU3MzQzKXtmPShmLTU1Mjk2KSoxMDI0K2ctNTYzMjArNjU1MzY7ZFtjKytdPWY+PjE4fDI0MDsKZFtjKytdPWY+PjEyJjYzfDEyODtkW2MrK109Zj4+NiY2M3wxMjg7ZFtjKytdPWYmNjN8MTI4O2NvbnRpbnVlfWVsc2UgZS0tfWlmKGIpdGhyb3cgRXJyb3IoInMiKTtmPTY1NTMzfWRbYysrXT1mPj4xMnwyMjQ7ZFtjKytdPWY+PjYmNjN8MTI4fWRbYysrXT1mJjYzfDEyOH19YT1jPT09ZC5sZW5ndGg/ZDpkLnN1YmFycmF5KDAsYyl9cmV0dXJuIGF9O18uQmE9ZnVuY3Rpb24oYSl7Xy53LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBhO30sMCl9O18uQ2E9ZnVuY3Rpb24oKXt2YXIgYT1fLncubmF2aWdhdG9yO3JldHVybiBhJiYoYT1hLnVzZXJBZ2VudCk/YToiIn07RmE9ZnVuY3Rpb24oYSl7aWYoIURhfHwhXy5FYSlyZXR1cm4hMTtmb3IodmFyIGI9MDtiPF8uRWEuYnJhbmRzLmxlbmd0aDtiKyspe3ZhciBjPV8uRWEuYnJhbmRzW2JdLmJyYW5kO2lmKGMmJmMuaW5kZXhPZihhKSE9LTEpcmV0dXJuITB9cmV0dXJuITF9OwpfLno9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQ2EoKS5pbmRleE9mKGEpIT0tMX07Xy5HYT1mdW5jdGlvbihhKXtmb3IodmFyIGI9UmVnRXhwKCIoW0EtWl1bXFx3IF0rKS8oW15cXHNdKylcXHMqKD86XFwoKC4qPylcXCkpPyIsImciKSxjPVtdLGQ7ZD1iLmV4ZWMoYSk7KWMucHVzaChbZFsxXSxkWzJdLGRbM118fHZvaWQgMF0pO3JldHVybiBjfTtfLkhhPWZ1bmN0aW9uKCl7cmV0dXJuIERhPyEhXy5FYSYmXy5FYS5icmFuZHMubGVuZ3RoPjA6ITF9O18uSWE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5IYSgpPyExOl8ueigiT3BlcmEiKX07Xy5KYT1mdW5jdGlvbigpe3JldHVybiBfLkhhKCk/ITE6Xy56KCJUcmlkZW50Iil8fF8ueigiTVNJRSIpfTtfLkthPWZ1bmN0aW9uKCl7cmV0dXJuIF8uSGEoKT8hMTpfLnooIkVkZ2UiKX07Xy5MYT1mdW5jdGlvbigpe3JldHVybiBfLkhhKCk/RmEoIk1pY3Jvc29mdCBFZGdlIik6Xy56KCJFZGcvIil9OwpNYT1mdW5jdGlvbigpe3JldHVybiBfLkhhKCk/RmEoIk9wZXJhIik6Xy56KCJPUFIiKX07Xy5OYT1mdW5jdGlvbigpe3JldHVybiBfLnooIkZpcmVmb3giKXx8Xy56KCJGeGlPUyIpfTtfLlBhPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueigiU2FmYXJpIikmJiEoXy5PYSgpfHwoXy5IYSgpPzA6Xy56KCJDb2FzdCIpKXx8Xy5JYSgpfHxfLkthKCl8fF8uTGEoKXx8TWEoKXx8Xy5OYSgpfHxfLnooIlNpbGsiKXx8Xy56KCJBbmRyb2lkIikpfTtfLk9hPWZ1bmN0aW9uKCl7cmV0dXJuIF8uSGEoKT9GYSgiQ2hyb21pdW0iKTooXy56KCJDaHJvbWUiKXx8Xy56KCJDcmlPUyIpKSYmIV8uS2EoKXx8Xy56KCJTaWxrIil9O1FhPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueigiQW5kcm9pZCIpJiYhKF8uT2EoKXx8Xy5OYSgpfHxfLklhKCl8fF8ueigiU2lsayIpKX07Cl8uUmE9ZnVuY3Rpb24oYSl7dmFyIGI9e307YS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2JbY1swXV09Y1sxXX0pO3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gYltjLmZpbmQoZnVuY3Rpb24oZCl7cmV0dXJuIGQgaW4gYn0pXXx8IiJ9fTtfLlNhPWZ1bmN0aW9uKGEpe3ZhciBiPS9ydjogKihbXGRcLl0qKS8uZXhlYyhhKTtpZihiJiZiWzFdKXJldHVybiBiWzFdO2I9IiI7dmFyIGM9L01TSUUgKyhbXGRcLl0rKS8uZXhlYyhhKTtpZihjJiZjWzFdKWlmKGE9L1RyaWRlbnRcLyhcZC5cZCkvLmV4ZWMoYSksY1sxXT09IjcuMCIpaWYoYSYmYVsxXSlzd2l0Y2goYVsxXSl7Y2FzZSAiNC4wIjpiPSI4LjAiO2JyZWFrO2Nhc2UgIjUuMCI6Yj0iOS4wIjticmVhaztjYXNlICI2LjAiOmI9IjEwLjAiO2JyZWFrO2Nhc2UgIjcuMCI6Yj0iMTEuMCJ9ZWxzZSBiPSI3LjAiO2Vsc2UgYj1jWzFdO3JldHVybiBifTsKVGE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5DYSgpO2lmKGE9PT0iSW50ZXJuZXQgRXhwbG9yZXIiKXJldHVybiBfLkphKCk/Xy5TYShiKToiIjtiPV8uR2EoYik7dmFyIGM9Xy5SYShiKTtzd2l0Y2goYSl7Y2FzZSAiT3BlcmEiOmlmKF8uSWEoKSlyZXR1cm4gYyhbIlZlcnNpb24iLCJPcGVyYSJdKTtpZihNYSgpKXJldHVybiBjKFsiT1BSIl0pO2JyZWFrO2Nhc2UgIk1pY3Jvc29mdCBFZGdlIjppZihfLkthKCkpcmV0dXJuIGMoWyJFZGdlIl0pO2lmKF8uTGEoKSlyZXR1cm4gYyhbIkVkZyJdKTticmVhaztjYXNlICJDaHJvbWl1bSI6aWYoXy5PYSgpKXJldHVybiBjKFsiQ2hyb21lIiwiQ3JpT1MiLCJIZWFkbGVzc0Nocm9tZSJdKX1yZXR1cm4gYT09PSJGaXJlZm94IiYmXy5OYSgpfHxhPT09IlNhZmFyaSImJl8uUGEoKXx8YT09PSJBbmRyb2lkIEJyb3dzZXIiJiZRYSgpfHxhPT09IlNpbGsiJiZfLnooIlNpbGsiKT8oYT1iWzJdKSYmYVsxXXx8IiI6IiJ9OwpfLlVhPWZ1bmN0aW9uKGEpe2lmKF8uSGEoKSYmYSE9PSJTaWxrIil7dmFyIGI9Xy5FYS5icmFuZHMuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5icmFuZD09PWF9KTtpZighYnx8IWIudmVyc2lvbilyZXR1cm4gTmFOO2I9Yi52ZXJzaW9uLnNwbGl0KCIuIil9ZWxzZXtiPVRhKGEpO2lmKGI9PT0iIilyZXR1cm4gTmFOO2I9Yi5zcGxpdCgiLiIpfXJldHVybiBiLmxlbmd0aD09PTA/TmFOOk51bWJlcihiWzBdKX07Xy5WYT1mdW5jdGlvbigpe3JldHVybiBEYT8hIV8uRWEmJiEhXy5FYS5wbGF0Zm9ybTohMX07Xy5XYT1mdW5jdGlvbigpe3JldHVybiBfLlZhKCk/Xy5FYS5wbGF0Zm9ybT09PSJBbmRyb2lkIjpfLnooIkFuZHJvaWQiKX07WGE9ZnVuY3Rpb24oKXtyZXR1cm4gXy56KCJpUGhvbmUiKSYmIV8ueigiaVBvZCIpJiYhXy56KCJpUGFkIil9O18uWWE9ZnVuY3Rpb24oKXtyZXR1cm4gWGEoKXx8Xy56KCJpUGFkIil8fF8ueigiaVBvZCIpfTsKXy5aYT1mdW5jdGlvbigpe3JldHVybiBfLlZhKCk/Xy5FYS5wbGF0Zm9ybT09PSJtYWNPUyI6Xy56KCJNYWNpbnRvc2giKX07Xy4kYT1mdW5jdGlvbigpe3JldHVybiBfLlZhKCk/Xy5FYS5wbGF0Zm9ybT09PSJDaHJvbWUgT1MiOl8ueigiQ3JPUyIpfTtfLmJiPWZ1bmN0aW9uKGEsYil7Yj0oMCxfLmFiKShhLGIpO3ZhciBjOyhjPWI+PTApJiZBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoYSxiLDEpO3JldHVybiBjfTtfLmNiPWZ1bmN0aW9uKGEpe3ZhciBiPWEubGVuZ3RoO2lmKGI+MCl7Zm9yKHZhciBjPUFycmF5KGIpLGQ9MDtkPGI7ZCsrKWNbZF09YVtkXTtyZXR1cm4gY31yZXR1cm5bXX07Cl8uZmI9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj0wKTtkYigpO2I9ZWJbYl07Zm9yKHZhciBjPUFycmF5KE1hdGguZmxvb3IoYS5sZW5ndGgvMykpLGQ9Yls2NF18fCIiLGU9MCxmPTA7ZTxhLmxlbmd0aC0yO2UrPTMpe3ZhciBnPWFbZV0saD1hW2UrMV0saz1hW2UrMl0sbT1iW2c+PjJdO2c9YlsoZyYzKTw8NHxoPj40XTtoPWJbKGgmMTUpPDwyfGs+PjZdO2s9YltrJjYzXTtjW2YrK109bStnK2gra31tPTA7az1kO3N3aXRjaChhLmxlbmd0aC1lKXtjYXNlIDI6bT1hW2UrMV0saz1iWyhtJjE1KTw8Ml18fGQ7Y2FzZSAxOmE9YVtlXSxjW2ZdPWJbYT4+Ml0rYlsoYSYzKTw8NHxtPj40XStrK2R9cmV0dXJuIGMuam9pbigiIil9OwpoYj1mdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aCxjPWIqMy80O2MlMz9jPU1hdGguZmxvb3IoYyk6Ij0uIi5pbmRleE9mKGFbYi0xXSkhPS0xJiYoYz0iPS4iLmluZGV4T2YoYVtiLTJdKSE9LTE/Yy0yOmMtMSk7dmFyIGQ9bmV3IFVpbnQ4QXJyYXkoYyksZT0wO18uZ2IoYSxmdW5jdGlvbihmKXtkW2UrK109Zn0pO3JldHVybiBlIT09Yz9kLnN1YmFycmF5KDAsZSk6ZH07Cl8uZ2I9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGspe2Zvcig7ZDxhLmxlbmd0aDspe3ZhciBtPWEuY2hhckF0KGQrKyksbj1pYlttXTtpZihuIT1udWxsKXJldHVybiBuO2lmKCEvXltcc1x4YTBdKiQvLnRlc3QobSkpdGhyb3cgRXJyb3IoInVgIittKTt9cmV0dXJuIGt9ZGIoKTtmb3IodmFyIGQ9MDs7KXt2YXIgZT1jKC0xKSxmPWMoMCksZz1jKDY0KSxoPWMoNjQpO2lmKGg9PT02NCYmZT09PS0xKWJyZWFrO2IoZTw8MnxmPj40KTtnIT02NCYmKGIoZjw8NCYyNDB8Zz4+MiksaCE9NjQmJmIoZzw8NiYxOTJ8aCkpfX07CmRiPWZ1bmN0aW9uKCl7aWYoIWliKXtpYj17fTtmb3IodmFyIGE9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ii5zcGxpdCgiIiksYj1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXSxjPTA7Yzw1O2MrKyl7dmFyIGQ9YS5jb25jYXQoYltjXS5zcGxpdCgiIikpO2ViW2NdPWQ7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPWRbZV07aWJbZl09PT12b2lkIDAmJihpYltmXT1lKX19fX07bGI9ZnVuY3Rpb24oYSl7cmV0dXJuIGpiW2FdfHwiIn07Xy5vYj1mdW5jdGlvbihhKXtpZighbWIpcmV0dXJuIGhiKGEpO2E9bmIudGVzdChhKT9hLnJlcGxhY2UobmIsbGIpOmE7YT1hdG9iKGEpO2Zvcih2YXIgYj1uZXcgVWludDhBcnJheShhLmxlbmd0aCksYz0wO2M8YS5sZW5ndGg7YysrKWJbY109YS5jaGFyQ29kZUF0KGMpO3JldHVybiBifTsKXy5wYj1mdW5jdGlvbihhLGIpe2EuX19jbG9zdXJlX19lcnJvcl9fY29udGV4dF9fOTg0MzgyfHwoYS5fX2Nsb3N1cmVfX2Vycm9yX19jb250ZXh0X185ODQzODI9e30pO2EuX19jbG9zdXJlX19lcnJvcl9fY29udGV4dF9fOTg0MzgyLnNldmVyaXR5PWJ9O18ucmI9ZnVuY3Rpb24oYSxiKXtpZihhIT1udWxsKXt2YXIgYzt2YXIgZD0oYz1xYikhPW51bGw/YzpxYj17fTtjPWRbYV18fDA7Yz49Ynx8KGRbYV09YysxLGE9RXJyb3IoKSxfLnBiKGEsImluY2lkZW50IiksXy5CYShhKSl9fTtfLnNiPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woKT09PSJzeW1ib2wiPyhjPT09dm9pZCAwPzA6YykmJlN5bWJvbC5mb3ImJmE/U3ltYm9sLmZvcihhKTphIT1udWxsP1N5bWJvbChhKTpTeW1ib2woKTpifTtfLndiPWZ1bmN0aW9uKGEsYil7Xy50Ynx8Xy5BIGluIGF8fHViKGEsdmIpO2FbXy5BXXw9Yn07Cl8ueGI9ZnVuY3Rpb24oYSxiKXtfLnRifHxfLkEgaW4gYXx8dWIoYSx2Yik7YVtfLkFdPWJ9O18uemI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09PXZvaWQgMD9hLmchPT15YiYmISEoMiYoYS5BW18uQV18MCkpOiEhKDImYikmJmEuZyE9PXlifTtfLkFiPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iJjEyOD8wOi0xLGU9YS5sZW5ndGgsZjtpZihmPSEhZSlmPWFbZS0xXSxmPWYhPW51bGwmJnR5cGVvZiBmPT09Im9iamVjdCImJmYuY29uc3RydWN0b3I9PT1PYmplY3Q7dmFyIGc9ZSsoZj8tMTowKTtmb3IoYj1iJjEyOD8xOjA7YjxnO2IrKyljKGItZCxhW2JdKTtpZihmKXthPWFbZS0xXTtmb3IodmFyIGggaW4gYSkhaXNOYU4oaCkmJmMoK2gsYVtoXSl9fTtCYj1mdW5jdGlvbihhKXthLlplPSEwO3JldHVybiBhfTsKXy5HYj1mdW5jdGlvbihhKXt2YXIgYj1hO2lmKENiKGIpKXtpZighL15ccyooPzotP1sxLTldXGQqfDApP1xzKiQvLnRlc3QoYikpdGhyb3cgRXJyb3IoU3RyaW5nKGIpKTt9ZWxzZSBpZihEYihiKSYmIU51bWJlci5pc1NhZmVJbnRlZ2VyKGIpKXRocm93IEVycm9yKFN0cmluZyhiKSk7cmV0dXJuIEViP0JpZ0ludChhKTphPUZiKGEpP2E/IjEiOiIwIjpDYihhKT9hLnRyaW0oKXx8IjAiOlN0cmluZyhhKX07SGI9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aD5iLmxlbmd0aClyZXR1cm4hMTtpZihhLmxlbmd0aDxiLmxlbmd0aHx8YT09PWIpcmV0dXJuITA7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1iW2NdO2lmKGQ+ZSlyZXR1cm4hMTtpZihkPGUpcmV0dXJuITB9fTtfLkliPWZ1bmN0aW9uKGEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKX07Cl8uSmI9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbHx8dHlwZW9mIGE9PT0iYm9vbGVhbiIpcmV0dXJuIGE7aWYodHlwZW9mIGE9PT0ibnVtYmVyIilyZXR1cm4hIWF9O18uTGI9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PW51bGw/YTooMCxfLktiKShhKT9hfDA6dm9pZCAwfTtfLk1iPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIGE7aWYodHlwZW9mIGE9PT0ic3RyaW5nIiYmYSlhPSthO2Vsc2UgaWYodHlwZW9mIGEhPT0ibnVtYmVyIilyZXR1cm47cmV0dXJuKDAsXy5LYikoYSk/YXwwOnZvaWQgMH07Xy5OYj1mdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbHx8dHlwZW9mIGE9PT0ic3RyaW5nIj9hOnZvaWQgMH07Xy5RYj1mdW5jdGlvbihhLGIsYyl7aWYoYSE9bnVsbCYmYVtPYl09PT1QYilyZXR1cm4gYTtpZihBcnJheS5pc0FycmF5KGEpKXt2YXIgZD1hW18uQV18MDtjPWR8YyYzMnxjJjI7YyE9PWQmJl8ueGIoYSxjKTtyZXR1cm4gbmV3IGIoYSl9fTtSYj1mdW5jdGlvbihhKXtyZXR1cm4gYX07Cl8uVWI9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5TYihfLlRiKTtyZXR1cm4gYj9hW2JdOnZvaWQgMH07V2I9ZnVuY3Rpb24oYSxiKXtiPDEwMHx8Xy5yYihWYiwxKX07ClpiPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWQhPT12b2lkIDA7ZD0hIWQ7dmFyIGY9Xy5TYihfLlRiKSxnOyFlJiZfLnRiJiZmJiYoZz1hW2ZdKSYmZy5zYihXYik7Zj1bXTt2YXIgaD1hLmxlbmd0aDtnPTQyOTQ5NjcyOTU7dmFyIGs9ITEsbT0hIShiJjY0KSxuPW0/YiYxMjg/MDotMTp2b2lkIDA7aWYoIShiJjEpKXt2YXIgcT1oJiZhW2gtMV07cSE9bnVsbCYmdHlwZW9mIHE9PT0ib2JqZWN0IiYmcS5jb25zdHJ1Y3Rvcj09PU9iamVjdD8oaC0tLGc9aCk6cT12b2lkIDA7aWYobSYmIShiJjEyOCkmJiFlKXtrPSEwO3ZhciBwO2c9KChwPVhiKSE9bnVsbD9wOlJiKShnLW4sbixhLHEsdm9pZCAwKStufX1iPXZvaWQgMDtmb3IocD0wO3A8aDtwKyspe3ZhciByPWFbcF07aWYociE9bnVsbCYmKHI9YyhyLGQpKSE9bnVsbClpZihtJiZwPj1nKXt2YXIgeD1wLW4seT12b2lkIDA7KCh5PWIpIT1udWxsP3k6Yj17fSlbeF09cn1lbHNlIGZbcF09cn1pZihxKWZvcih2YXIgQyBpbiBxKWg9cVtDXSwKaCE9bnVsbCYmKGg9YyhoLGQpKSE9bnVsbCYmKHA9K0Mscj12b2lkIDAsbSYmIU51bWJlci5pc05hTihwKSYmKHI9cCtuKTxnP2Zbcl09aDoocD12b2lkIDAsKChwPWIpIT1udWxsP3A6Yj17fSlbQ109aCkpO2ImJihrP2YucHVzaChiKTpmW2ddPWIpO2UmJl8uU2IoXy5UYikmJihhPV8uVWIoYSkpJiYiZnVuY3Rpb24iPT10eXBlb2YgXy5ZYiYmYSBpbnN0YW5jZW9mIF8uWWImJihmW18uVGJdPWEuZygpKTtyZXR1cm4gZn07CmFjPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGEpP2E6IiIrYTtjYXNlICJiaWdpbnQiOnJldHVybigwLF8uJGIpKGEpP051bWJlcihhKToiIithO2Nhc2UgImJvb2xlYW4iOnJldHVybiBhPzE6MDtjYXNlICJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBiPWFbXy5BXXwwO3JldHVybiBhLmxlbmd0aD09PTAmJmImMT92b2lkIDA6WmIoYSxiLGFjKX1pZihhIT1udWxsJiZhW09iXT09PVBiKXJldHVybiBfLmJjKGEpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBfLmNjJiZhIGluc3RhbmNlb2YgXy5jYyl7Yj1hLmc7aWYoYj09bnVsbClhPSIiO2Vsc2UgaWYodHlwZW9mIGI9PT0ic3RyaW5nIilhPWI7ZWxzZXtpZihtYil7Zm9yKHZhciBjPSIiLGQ9MCxlPWIubGVuZ3RoLTEwMjQwO2Q8ZTspYys9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGIuc3ViYXJyYXkoZCxkKz0xMDI0MCkpO2MrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwKZD9iLnN1YmFycmF5KGQpOmIpO2I9YnRvYShjKX1lbHNlIGI9Xy5mYihiKTthPWEuZz1ifXJldHVybiBhfXJldHVybn1yZXR1cm4gYX07Xy5iYz1mdW5jdGlvbihhKXthPWEuQTtyZXR1cm4gWmIoYSxhW18uQV18MCxhYyl9O2ZjPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYm9vbGVhbiI6cmV0dXJuIGRjfHwoZGM9WzAsdm9pZCAwLCEwXSk7Y2FzZSAibnVtYmVyIjpyZXR1cm4gYT4wP3ZvaWQgMDphPT09MD9lY3x8KGVjPVswLHZvaWQgMF0pOlstYSx2b2lkIDBdO2Nhc2UgInN0cmluZyI6cmV0dXJuWzAsYV07Y2FzZSAib2JqZWN0IjpyZXR1cm4gYX19O18uaWM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gaGMoYSxiWzBdLGJbMV0pfTtfLkI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBoYyhhLGIsYywyMDQ4KX07CmhjPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8wOmQ7aWYoYT09bnVsbCl7dmFyIGU9MzI7Yz8oYT1bY10sZXw9MTI4KTphPVtdO2ImJihlPWUmLTE2NzYwODMzfChiJjEwMjMpPDwxNCl9ZWxzZXtpZighQXJyYXkuaXNBcnJheShhKSl0aHJvdyBFcnJvcigieSIpO2U9YVtfLkFdfDA7aWYoamMmJjEmZSl0aHJvdyBFcnJvcigieiIpOzIwNDgmZSYmISgyJmUpJiZrYygpO2lmKGUmMjU2KXRocm93IEVycm9yKCJBIik7aWYoZSY2NClyZXR1cm4oZXxkKSE9PWUmJl8ueGIoYSxlfGQpLGE7aWYoYyYmKGV8PTEyOCxjIT09YVswXSkpdGhyb3cgRXJyb3IoIkIiKTthOntjPWE7ZXw9NjQ7dmFyIGY9Yy5sZW5ndGg7aWYoZil7dmFyIGc9Zi0xLGg9Y1tnXTtpZihoIT1udWxsJiZ0eXBlb2YgaD09PSJvYmplY3QiJiZoLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtiPWUmMTI4PzA6LTE7Zy09YjtpZihnPj0xMDI0KXRocm93IEVycm9yKCJEIik7Zm9yKHZhciBrIGluIGgpZj0rayxmPGcmJgooY1tmK2JdPWhba10sZGVsZXRlIGhba10pO2U9ZSYtMTY3NjA4MzN8KGcmMTAyMyk8PDE0O2JyZWFrIGF9fWlmKGIpe2s9TWF0aC5tYXgoYixmLShlJjEyOD8wOi0xKSk7aWYoaz4xMDI0KXRocm93IEVycm9yKCJFIik7ZT1lJi0xNjc2MDgzM3woayYxMDIzKTw8MTR9fX1fLnhiKGEsZXw2NHxkKTtyZXR1cm4gYX07a2M9ZnVuY3Rpb24oKXtpZihqYyl0aHJvdyBFcnJvcigiQyIpO18ucmIobGMsNSl9OwpwYz1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuIGE7aWYoQXJyYXkuaXNBcnJheShhKSl7dmFyIGM9YVtfLkFdfDA7YS5sZW5ndGg9PT0wJiZjJjE/YT12b2lkIDA6YyYyfHwoIWJ8fDQwOTYmY3x8MTYmYz9hPV8ubWMoYSxjLCExLGImJiEoYyYxNikpOihfLndiKGEsMzQpLGMmNCYmT2JqZWN0LmZyZWV6ZShhKSkpO3JldHVybiBhfWlmKGEhPW51bGwmJmFbT2JdPT09UGIpcmV0dXJuIGI9YS5BLGM9YltfLkFdfDAsXy56YihhLGMpP2E6Xy5uYyhhLGIsYyk/Xy5vYyhhLGIpOl8ubWMoYixjKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgXy5jYyYmYSBpbnN0YW5jZW9mIF8uY2MpcmV0dXJuIGF9O18ub2M9ZnVuY3Rpb24oYSxiLGMpe2E9bmV3IGEuY29uc3RydWN0b3IoYik7YyYmKGEuZz15Yik7YS5pPXliO3JldHVybiBhfTsKXy5tYz1mdW5jdGlvbihhLGIsYyxkKXtkIT1udWxsfHwoZD0hISgzNCZiKSk7YT1aYihhLGIscGMsZCk7ZD0zMjtjJiYoZHw9Mik7Yj1iJjE2NzY5MjE3fGQ7Xy54YihhLGIpO3JldHVybiBhfTtfLnFjPWZ1bmN0aW9uKGEpe3ZhciBiPWEuQSxjPWJbXy5BXXwwO3JldHVybiBfLnpiKGEsYyk/Xy5uYyhhLGIsYyk/Xy5vYyhhLGIsITApOm5ldyBhLmNvbnN0cnVjdG9yKF8ubWMoYixjLCExKSk6YX07Xy5yYz1mdW5jdGlvbihhKXtpZihhLmchPT15YilyZXR1cm4hMTt2YXIgYj1hLkE7Yj1fLm1jKGIsYltfLkFdfDApO18ud2IoYiwyMDQ4KTthLkE9YjthLmc9dm9pZCAwO2EuaT12b2lkIDA7cmV0dXJuITB9O18uc2M9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj1hW18uQV18MCk7YiYzMiYmIShiJjQwOTYpJiZfLnhiKGEsYnw0MDk2KX07Xy5uYz1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGMmMj8hMDpjJjMyJiYhKGMmNDA5Nik/KF8ueGIoYixjfDIpLGEuZz15YiwhMCk6ITF9OwpfLnRjPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YysoZT8wOi0xKSxnPWEubGVuZ3RoLTE7aWYoZz49MSsoZT8wOi0xKSYmZj49Zyl7dmFyIGg9YVtnXTtpZihoIT1udWxsJiZ0eXBlb2YgaD09PSJvYmplY3QiJiZoLmNvbnN0cnVjdG9yPT09T2JqZWN0KXJldHVybiBoW2NdPWQsYn1pZihmPD1nKXJldHVybiBhW2ZdPWQsYjtpZihkIT09dm9pZCAwKXt2YXIgaztnPSgoaz1iKSE9bnVsbD9rOmI9YVtfLkFdfDApPj4xNCYxMDIzfHw1MzY4NzA5MTI7Yz49Zz9kIT1udWxsJiYoZj17fSxhW2crKGU/MDotMSldPShmW2NdPWQsZikpOmFbZl09ZH1yZXR1cm4gYn07Xy52Yz1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSExO2Q9Xy51YyhhLGQsZSxmdW5jdGlvbihnKXt2YXIgaD1fLlFiKGcsYyxiKTtmPWghPT1nJiZoIT1udWxsO3JldHVybiBofSk7aWYoZCE9bnVsbClyZXR1cm4gZiYmIV8uemIoZCkmJl8uc2MoYSxiKSxkfTsKd2M9ZnVuY3Rpb24oKXt2YXIgYT1mdW5jdGlvbigpe3Rocm93IEVycm9yKCk7fTtPYmplY3Quc2V0UHJvdG90eXBlT2YoYSxhLnByb3RvdHlwZSk7cmV0dXJuIGF9O0FjPWZ1bmN0aW9uKGEpe3ZhciBiPXhjO3ZhciBjPWM9PT12b2lkIDA/Xy55YzpjO3JldHVybiBuZXcgXy56YyhhLGIsYyl9O3hjPWZ1bmN0aW9uKGEsYixjLGQsZSl7Yj1fLkJjKGIsZCk7YiE9bnVsbCYmKGM9Xy5DYyhhLGMpLGUoYixhKSxfLkRjKGEsYykpfTsKXy5IYz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1kW2FdO2lmKGUpcmV0dXJuIGU7ZT17fTtlLkhkPWQ7ZS5ZYT1mYyhkWzBdKTt2YXIgZj1kWzFdLGc9MTtmJiZmLmNvbnN0cnVjdG9yPT09T2JqZWN0JiYoZS5PYj1mLGY9ZFsrK2ddLHR5cGVvZiBmPT09ImZ1bmN0aW9uIiYmKGUuWmM9ITAsXy5FYyE9bnVsbHx8KF8uRWM9ZiksXy5GYyE9bnVsbHx8KF8uRmM9ZFtnKzFdKSxmPWRbZys9Ml0pKTtmb3IodmFyIGg9e307ZiYmQXJyYXkuaXNBcnJheShmKSYmZi5sZW5ndGgmJnR5cGVvZiBmWzBdPT09Im51bWJlciImJmZbMF0+MDspe2Zvcih2YXIgaz0wO2s8Zi5sZW5ndGg7aysrKWhbZltrXV09ZjtmPWRbKytnXX1mb3Ioaz0xO2YhPT12b2lkIDA7KXt0eXBlb2YgZj09PSJudW1iZXIiJiYoays9ZixmPWRbKytnXSk7dmFyIG09dm9pZCAwO2lmKGYgaW5zdGFuY2VvZiBfLnpjKXZhciBuPWY7ZWxzZSBuPUdjLGctLTtmPXZvaWQgMDtpZigoZj1uKT09bnVsbD8wOmYuaSl7Zj1kWysrZ107Cm09ZDt2YXIgcT1nO3R5cGVvZiBmPT09ImZ1bmN0aW9uIiYmKGY9ZigpLG1bcV09Zik7bT1mfWY9ZFsrK2ddO3E9aysxO3R5cGVvZiBmPT09Im51bWJlciImJmY8MCYmKHEtPWYsZj1kWysrZ10pO2Zvcig7azxxO2srKyl7dmFyIHA9aFtrXTttP2MoZSxrLG4sbSxwKTpiKGUsayxuLHApfX1yZXR1cm4gZFthXT1lfTtfLkpjPWZ1bmN0aW9uKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpP2FbMF1pbnN0YW5jZW9mIF8uemM/YTpbSWMsYV06W2Esdm9pZCAwXX07Xy5CYz1mdW5jdGlvbihhLGIpe2lmKGEgaW5zdGFuY2VvZiBfLkQpcmV0dXJuIGEuQTtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBfLmljKGEsYil9O18uS2M9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuZXcgXy56YyhhLGIsYyl9O18uTWM9ZnVuY3Rpb24oYSxiLGMpe18udGMoYSxhW18uQV18MCxiLGMsKGFbXy5BXXwwKSYxMjg/Xy5MYzp2b2lkIDApfTsKUGM9ZnVuY3Rpb24oYSl7YT1OYy5nZXQoYSk7dmFyIGI9TmMuZ2V0KF8uT2MpO3JldHVybiBhPT09dm9pZCAwfHxiPT09dm9pZCAwPyExOmE+PWJ9O1FjPWZ1bmN0aW9uKGEpe3JldHVybiBhPyJbR1NJX0xPR0dFUi0iK2ErIl06ICI6IltHU0lfTE9HR0VSXTogIn07Xy5FPWZ1bmN0aW9uKGEsYil7dHJ5e1BjKCJkZWJ1ZyIpJiZ3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nJiZ3aW5kb3cuY29uc29sZS5sb2coUWMoYikrYSl9Y2F0Y2goYyl7fX07Xy5GPWZ1bmN0aW9uKGEsYil7dHJ5e1BjKCJpbmZvIikmJndpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5pbmZvJiZ3aW5kb3cuY29uc29sZS5pbmZvKFFjKGIpK2EpfWNhdGNoKGMpe319O18uRz1mdW5jdGlvbihhLGIpe3RyeXtQYygid2FybiIpJiZ3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUud2FybiYmd2luZG93LmNvbnNvbGUud2FybihRYyhiKSthKX1jYXRjaChjKXt9fTsKXy5IPWZ1bmN0aW9uKGEsYil7dHJ5e1BjKCJlcnJvciIpJiZ3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUuZXJyb3ImJndpbmRvdy5jb25zb2xlLmVycm9yKFFjKGIpK2EpfWNhdGNoKGMpe319O18uU2M9ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIF8uUmMpcmV0dXJuIGEuZzt0aHJvdyBFcnJvcigiRyIpO307VWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBfLlRjKGZ1bmN0aW9uKGIpe3JldHVybiBiLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6In0pfTtfLldjPWZ1bmN0aW9uKGEpe2EgaW5zdGFuY2VvZiBfLlJjP2E9Xy5TYyhhKTphPVZjLnRlc3QoYSk/YTp2b2lkIDA7cmV0dXJuIGF9O18uWGM9ZnVuY3Rpb24oYSl7dmFyIGI9d2luZG93LmxvY2F0aW9uO2E9Xy5XYyhhKTthIT09dm9pZCAwJiZiLmFzc2lnbihhKX07Xy5ZYz1mdW5jdGlvbihhKXt0aGlzLmc9YXx8e2Nvb2tpZToiIn19OwpfLkk9ZnVuY3Rpb24oYSl7cmV0dXJuISFfLlpjLmdbYV18fF8uJGMuaW5jbHVkZXMoYSkmJl8uYWQuZ2V0KCJnZV8iK2EpPT09IjEifTtiZD1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkIGluIGEpYi5jYWxsKGMsYVtkXSxkLGEpfTtkZD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkLGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXtkPWFyZ3VtZW50c1tlXTtmb3IoYyBpbiBkKWFbY109ZFtjXTtmb3IodmFyIGY9MDtmPGNkLmxlbmd0aDtmKyspYz1jZFtmXSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxjKSYmKGFbY109ZFtjXSl9fTtfLmZkPWZ1bmN0aW9uKGEpe3ZhciBiPWEubWF0Y2goXy5lZCk7YT1iWzFdO3ZhciBjPWJbM107Yj1iWzRdO3ZhciBkPSIiO2EmJihkKz1hKyI6Iik7YyYmKGQ9ZCsiLy8iK2MsYiYmKGQrPSI6IitiKSk7cmV0dXJuIGR9OwpnZD1mdW5jdGlvbihhLGIpe2lmKGEpe2E9YS5zcGxpdCgiJiIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLmluZGV4T2YoIj0iKSxlPW51bGw7aWYoZD49MCl7dmFyIGY9YVtjXS5zdWJzdHJpbmcoMCxkKTtlPWFbY10uc3Vic3RyaW5nKGQrMSl9ZWxzZSBmPWFbY107YihmLGU/ZGVjb2RlVVJJQ29tcG9uZW50KGUucmVwbGFjZSgvXCsvZywiICIpKToiIil9fX07Cl8uaGQ9ZnVuY3Rpb24oYSl7dGhpcy5nPXRoaXMudj10aGlzLmg9IiI7dGhpcy51PW51bGw7dGhpcy5vPXRoaXMuaT0iIjt0aGlzLmw9ITE7dmFyIGI7YSBpbnN0YW5jZW9mIF8uaGQ/KHRoaXMubD1hLmwsXy5pZCh0aGlzLGEuaCksdGhpcy52PWEuZ2V0VXNlckluZm8oKSx0aGlzLmc9YS5nLF8uamQodGhpcyxhLnUpLHRoaXMuaT1hLmksXy5rZCh0aGlzLGxkKGEuaikpLHRoaXMubz1hLm8pOmEmJihiPVN0cmluZyhhKS5tYXRjaChfLmVkKSk/KHRoaXMubD0hMSxfLmlkKHRoaXMsYlsxXXx8IiIsITApLHRoaXMudj1tZChiWzJdfHwiIiksdGhpcy5nPW1kKGJbM118fCIiLCEwKSxfLmpkKHRoaXMsYls0XSksdGhpcy5pPW1kKGJbNV18fCIiLCEwKSxfLmtkKHRoaXMsYls2XXx8IiIsITApLHRoaXMubz1tZChiWzddfHwiIikpOih0aGlzLmw9ITEsdGhpcy5qPW5ldyBfLm5kKG51bGwsdGhpcy5sKSl9O18ub2Q9ZnVuY3Rpb24oKXt0aGlzLnU9dGhpcy51O3RoaXMubz10aGlzLm99OwpxZD1mdW5jdGlvbihhLGIpe3BkLmNhbGwodGhpcyxhP2EudHlwZToiIik7dGhpcy5yZWxhdGVkVGFyZ2V0PXRoaXMuaD10aGlzLnRhcmdldD1udWxsO3RoaXMuYnV0dG9uPXRoaXMuc2NyZWVuWT10aGlzLnNjcmVlblg9dGhpcy5jbGllbnRZPXRoaXMuY2xpZW50WD10aGlzLmw9dGhpcy5qPTA7dGhpcy5rZXk9IiI7dGhpcy5jaGFyQ29kZT10aGlzLmtleUNvZGU9MDt0aGlzLm1ldGFLZXk9dGhpcy5zaGlmdEtleT10aGlzLmFsdEtleT10aGlzLmN0cmxLZXk9ITE7dGhpcy5zdGF0ZT1udWxsO3RoaXMucG9pbnRlcklkPTA7dGhpcy5wb2ludGVyVHlwZT0iIjt0aGlzLmc9bnVsbDthJiZ0aGlzLmluaXQoYSxiKX07c2Q9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLmxpc3RlbmVyPWE7dGhpcy5wcm94eT1udWxsO3RoaXMuc3JjPWI7dGhpcy50eXBlPWM7dGhpcy5jYXB0dXJlPSEhZDt0aGlzLnlhPWU7dGhpcy5rZXk9KytyZDt0aGlzLmFiPXRoaXMucGI9ITF9Owp0ZD1mdW5jdGlvbihhKXt0aGlzLnNyYz1hO3RoaXMuZz17fTt0aGlzLmg9MH07Xy51ZD1mdW5jdGlvbigpe18ub2QuY2FsbCh0aGlzKTt0aGlzLmlhPW5ldyB0ZCh0aGlzKTt0aGlzLkM9dGhpczt0aGlzLmw9bnVsbH07Xy53ZD1mdW5jdGlvbigpe3ZhciBhPW5ldyBVaW50MzJBcnJheSgyKTsod2luZG93LmNyeXB0b3x8Xy52ZC5tc0NyeXB0bykuZ2V0UmFuZG9tVmFsdWVzKGEpO3JldHVybiBhWzBdLnRvU3RyaW5nKDE2KSthWzFdLnRvU3RyaW5nKDE2KX07Xy55ZD1mdW5jdGlvbigpe3JldHVybiBEYSYmXy5FYT9fLkVhLm1vYmlsZTohXy54ZCgpJiYoXy56KCJpUG9kIil8fF8ueigiaVBob25lIil8fF8ueigiQW5kcm9pZCIpfHxfLnooIklFTW9iaWxlIikpfTsKXy54ZD1mdW5jdGlvbigpe3JldHVybiBEYSYmXy5FYT8hXy5FYS5tb2JpbGUmJihfLnooImlQYWQiKXx8Xy56KCJBbmRyb2lkIil8fF8ueigiU2lsayIpKTpfLnooImlQYWQiKXx8Xy56KCJBbmRyb2lkIikmJiFfLnooIk1vYmlsZSIpfHxfLnooIlNpbGsiKX07Xy56ZD1mdW5jdGlvbigpe3JldHVybiBfLkkoImRpc2FibGVfZmVkY21fb25fc2Ftc3VuZ19icm93c2VycyIpJiZuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCJTYW1zdW5nQnJvd3NlciIpPyExOl8uT2EoKSYmIShfLkxhKCl8fG5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoIkVkZ0EiKXx8bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiRWRnaU9TIikpJiYhTWEoKX07Xy5BZD1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdztyZXR1cm4iSWRlbnRpdHlDcmVkZW50aWFsImluIHdpbmRvd3x8IkZlZGVyYXRlZENyZWRlbnRpYWwiaW4gd2luZG93JiZhLkZlZGVyYXRlZENyZWRlbnRpYWwucHJvdG90eXBlLmxvZ2lufTsKXy5CZD1mdW5jdGlvbihhKXtzd2l0Y2goYS51eF9tb2RlKXtjYXNlICJyZWRpcmVjdCI6cmV0dXJuInJlZGlyZWN0IjtkZWZhdWx0OnJldHVybiJwb3B1cCJ9fTsKXy5EZD1mdW5jdGlvbihhLGIpe2lmKCFiLmNsaWVudF9pZCl0aHJvdyBuZXcgXy5DZCgiTWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXIgY2xpZW50X2lkLiIsIm1pc3NpbmdfcmVxdWlyZWRfcGFyYW1ldGVyIik7aWYoIWIuc2NvcGUpdGhyb3cgbmV3IF8uQ2QoIk1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyIHNjb3BlLiIsIm1pc3NpbmdfcmVxdWlyZWRfcGFyYW1ldGVyIik7dmFyIGM9e2NsaWVudF9pZDpiLmNsaWVudF9pZCxzY29wZTpiLnNjb3BlLGxvZ2luX2hpbnQ6Yi5sb2dpbl9oaW50fHxiLmhpbnQsc3RhdGU6Yi5zdGF0ZSxoZDpiLmhkfHxiLmhvc3RlZF9kb21haW4saW5jbHVkZV9ncmFudGVkX3Njb3BlczpiLmluY2x1ZGVfZ3JhbnRlZF9zY29wZXMsZW5hYmxlX2dyYW51bGFyX2NvbnNlbnQ6Yi5lbmFibGVfZ3JhbnVsYXJfY29uc2VudD09PXZvaWQgMD9iLmVuYWJsZV9zZXJpYWxfY29uc2VudDpiLmVuYWJsZV9ncmFudWxhcl9jb25zZW50LHRyaWdnZXJfb25lcGljazpiLnRyaWdnZXJfb25lcGljaywKYWxsb3dfbXVsdGlwbGU6Yi5hbGxvd19tdWx0aXBsZSxhbGxvd19mb2xkZXJfc2VsZWN0aW9uOmIuYWxsb3dfZm9sZGVyX3NlbGVjdGlvbixmaWxlX2lkczpiLmZpbGVfaWRzLG1pbWV0eXBlczpiLm1pbWV0eXBlcyxpbmNsdWRlX2lkX3Rva2VuOmIuaW5jbHVkZV9pZF90b2tlbixub25jZTpiLm5vbmNlfTtpZihjLmluY2x1ZGVfaWRfdG9rZW4pe2lmKCFjLm5vbmNlKXRocm93IG5ldyBfLkNkKCJNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlciBub25jZS4iLCJtaXNzaW5nX3JlcXVpcmVkX3BhcmFtZXRlciIpO2Zvcih2YXIgZD1jLnNjb3BlLnNwbGl0KCIgIiksZT1fLnUoWyJvcGVuaWQiLCJlbWFpbCIsInByb2ZpbGUiXSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZj1mLnZhbHVlLGQuaW5jbHVkZXMoZil8fGQucHVzaChmKTtjLnNjb3BlPWQuam9pbigiICIpfWE9PT0iY29kZSI/KGMuc2VsZWN0X2FjY291bnQ9Yi5zZWxlY3RfYWNjb3VudCxjLnV4X21vZGU9Yi51eF9tb2RlLApiLmNsYWltcyE9PXZvaWQgMCYmKGMuY2xhaW1zPWIuY2xhaW1zKSxjLnV4X21vZGU9PT0icmVkaXJlY3QiJiYoYy5yZWRpcmVjdF91cmk9Yi5yZWRpcmVjdF91cml8fFtsb2NhdGlvbi5wcm90b2NvbCwiLy8iLGxvY2F0aW9uLmhvc3QsbG9jYXRpb24ucGF0aG5hbWVdLmpvaW4oIiIpKSk6YT09PSJ0b2tlbiImJihjLnByb21wdD1iLnByb21wdCk7cmV0dXJuIGN9O18uRWQ9ZnVuY3Rpb24oYSl7Xy5vZC5jYWxsKHRoaXMpO3RoaXMuaD1hO3RoaXMuZz17fX07Xy5HZD1mdW5jdGlvbihhLGIpe18udWQuY2FsbCh0aGlzKTt0aGlzLmo9YXx8MTt0aGlzLmk9Ynx8Xy53O3RoaXMudj0oMCxfLkZkKSh0aGlzLkgsdGhpcyk7dGhpcy5CPURhdGUubm93KCl9OwpfLkhkPWZ1bmN0aW9uKGEsYixjKXthPWE9PT12b2lkIDA/Xy5JKCJlbmFibGVfbGFyZ2VfcG9wdXBfaGVpZ2h0Iik/NTkwOjUwMDphO2I9Yj09PXZvaWQgMD9fLkkoImVuYWJsZV9sYXJnZV9wb3B1cF9oZWlnaHQiKT84MzA6NTUwOmI7YT1NYXRoLm1pbihhLHNjcmVlbi53aWR0aC00MCk7Yj1NYXRoLm1pbihiLHNjcmVlbi5oZWlnaHQtNDApO3ZhciBkPXNjcmVlbi53aWR0aC8yLWEvMixlPXNjcmVlbi5oZWlnaHQvMi1iLzI7YyE9PXZvaWQgMCYmYz49ZCYmYzw9ZCthJiYoZD1jLWQ8ZCthLWM/Yys4OmMtYS04KTtyZXR1cm5bInRvb2xiYXI9bm8sbG9jYXRpb249bm8sZGlyZWN0b3JpZXM9bm8sc3RhdHVzPW5vLG1lbnViYXI9bm8sc2Nyb2xsYmFycz1ubyxyZXNpemFibGU9bm8sY29weWhpc3Rvcnk9bm8iLCJ3aWR0aD0iK2EsImhlaWdodD0iK2IsInRvcD0iK2UsImxlZnQ9IitkXS5qb2luKCl9OwpfLkpkPWZ1bmN0aW9uKGEsYixjKXtiPWIudG9TdHJpbmcoKSsiXyIrSWQ7dmFyIGQ9d2luZG93LGU9Xy5XYyhhKTtjPWUhPT12b2lkIDA/ZC5vcGVuKGUsYixjKTpudWxsO2lmKCFjfHxjLmNsb3NlZHx8dHlwZW9mIGMuY2xvc2VkPT09InVuZGVmaW5lZCIpcmV0dXJuIF8uSCgiRmFpbGVkIHRvIG9wZW4gcG9wdXAgd2luZG93IG9uIHVybDogIithKyIuIE1heWJlIGJsb2NrZWQgYnkgdGhlIGJyb3dzZXI/IiksbnVsbDtjLmZvY3VzKCk7cmV0dXJuIGN9O0tkPWZ1bmN0aW9uKGEpe2lmKGEuQyl0aHJvdyBuZXcgVHlwZUVycm9yKCJmIik7YS5DPSEwfTtMZD1mdW5jdGlvbihhLGIpe2Euaj17TmI6YixZYzohMH07YS5nPWEuQnx8YS5vfTsKXy5KPWZ1bmN0aW9uKGEsYil7YS5wcm90b3R5cGU9KDAsXy5hYSkoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYoXy5qYSkoMCxfLmphKShhLGIpO2Vsc2UgZm9yKHZhciBjIGluIGIpaWYoYyE9InByb3RvdHlwZSIpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixjKTtkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLGQpfWVsc2UgYVtjXT1iW2NdO2EudWE9Yi5wcm90b3R5cGV9O18uTWQ9ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgQXJyYXkpKXthPV8udShhKTtmb3IodmFyIGIsYz1bXTshKGI9YS5uZXh0KCkpLmRvbmU7KWMucHVzaChiLnZhbHVlKTthPWN9cmV0dXJuIGF9O05kPWZ1bmN0aW9uKGEpe3RoaXMuZz1uZXcgXy52O3RoaXMuaD1hfTsKUWQ9ZnVuY3Rpb24oYSxiKXtLZChhLmcpO3ZhciBjPWEuZy52O2lmKGMpcmV0dXJuIE9kKGEsInJldHVybiJpbiBjP2NbInJldHVybiJdOmZ1bmN0aW9uKGQpe3JldHVybnt2YWx1ZTpkLGRvbmU6ITB9fSxiLGEuZy5yZXR1cm4pO2EuZy5yZXR1cm4oYik7cmV0dXJuIFBkKGEpfTtPZD1mdW5jdGlvbihhLGIsYyxkKXt0cnl7dmFyIGU9Yi5jYWxsKGEuZy52LGMpO18ucGEoZSk7aWYoIWUuZG9uZSlyZXR1cm4gYS5nLkM9ITEsZTt2YXIgZj1lLnZhbHVlfWNhdGNoKGcpe3JldHVybiBhLmcudj1udWxsLExkKGEuZyxnKSxQZChhKX1hLmcudj1udWxsO2QuY2FsbChhLmcsZik7cmV0dXJuIFBkKGEpfTsKUGQ9ZnVuY3Rpb24oYSl7Zm9yKDthLmcuZzspdHJ5e3ZhciBiPWEuaChhLmcpO2lmKGIpcmV0dXJuIGEuZy5DPSExLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGMpe2EuZy5pPXZvaWQgMCxMZChhLmcsYyl9YS5nLkM9ITE7aWYoYS5nLmope2I9YS5nLmo7YS5nLmo9bnVsbDtpZihiLlljKXRocm93IGIuTmI7cmV0dXJue3ZhbHVlOmIucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwpSZD1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7S2QoYS5nKTthLmcudj9iPU9kKGEsYS5nLnYubmV4dCxiLGEuZy5EKTooYS5nLkQoYiksYj1QZChhKSk7cmV0dXJuIGJ9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7S2QoYS5nKTthLmcudj9iPU9kKGEsYS5nLnZbInRocm93Il0sYixhLmcuRCk6KExkKGEuZyxiKSxiPVBkKGEpKTtyZXR1cm4gYn07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIFFkKGEsYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07U2Q9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtyZXR1cm4gYS5uZXh0KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGEudGhyb3coZCl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsZSl7ZnVuY3Rpb24gZihnKXtnLmRvbmU/ZChnLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoZy52YWx1ZSkudGhlbihiLGMpLnRoZW4oZixlKX1mKGEubmV4dCgpKX0pfTtfLlRkPWZ1bmN0aW9uKGEpe3JldHVybiBTZChuZXcgUmQobmV3IE5kKGEpKSl9OwpfLlVkPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhO3JldHVybiBiPT0ib2JqZWN0IiYmYSE9bnVsbHx8Yj09ImZ1bmN0aW9uIn07VmQ9ZnVuY3Rpb24oYSxiKXthOnt2YXIgYz1bIldJWl9nbG9iYWxfZGF0YSIsIm94TjNuYiJdO2Zvcih2YXIgZD1fLncsZT0wO2U8Yy5sZW5ndGg7ZSsrKWlmKGQ9ZFtjW2VdXSxkPT1udWxsKXtjPW51bGw7YnJlYWsgYX1jPWR9YT1jJiZjW2FdO3JldHVybiBhIT1udWxsP2E6Yn07V2Q9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhLmNhbGwuYXBwbHkoYS5iaW5kLGFyZ3VtZW50cyl9OwpYZD1mdW5jdGlvbihhLGIsYyl7aWYoIWEpdGhyb3cgRXJyb3IoKTtpZihhcmd1bWVudHMubGVuZ3RoPjIpe3ZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGUsZCk7cmV0dXJuIGEuYXBwbHkoYixlKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX07Xy5GZD1mdW5jdGlvbihhLGIsYyl7Xy5GZD1GdW5jdGlvbi5wcm90b3R5cGUuYmluZCYmRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQudG9TdHJpbmcoKS5pbmRleE9mKCJuYXRpdmUgY29kZSIpIT0tMT9XZDpYZDtyZXR1cm4gXy5GZC5hcHBseShudWxsLGFyZ3VtZW50cyl9OwpfLks9ZnVuY3Rpb24oYSxiKXthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGM9Xy53LGQ7YS5sZW5ndGgmJihkPWEuc2hpZnQoKSk7KWEubGVuZ3RofHxiPT09dm9pZCAwP2NbZF0mJmNbZF0hPT1PYmplY3QucHJvdG90eXBlW2RdP2M9Y1tkXTpjPWNbZF09e306Y1tkXT1ifTtfLlNiPWZ1bmN0aW9uKGEpe3JldHVybiBhfTtfLllkPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe31jLnByb3RvdHlwZT1iLnByb3RvdHlwZTthLnVhPWIucHJvdG90eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7YS5XZT1mdW5jdGlvbihkLGUsZil7Zm9yKHZhciBnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMiksaD0yO2g8YXJndW1lbnRzLmxlbmd0aDtoKyspZ1toLTJdPWFyZ3VtZW50c1toXTtyZXR1cm4gYi5wcm90b3R5cGVbZV0uYXBwbHkoZCxnKX19OwpfLkNkPWZ1bmN0aW9uKGEsYil7YT1FcnJvci5jYWxsKHRoaXMsYSk7dGhpcy5tZXNzYWdlPWEubWVzc2FnZTsic3RhY2siaW4gYSYmKHRoaXMuc3RhY2s9YS5zdGFjayk7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsXy5DZC5wcm90b3R5cGUpO3RoaXMudHlwZT1ifHwidW5rbm93biJ9O18uSihfLkNkLEVycm9yKTt2YXIgeWEseGEsd2E7Xy5aZD10eXBlb2YgVGV4dERlY29kZXIhPT0idW5kZWZpbmVkIjt4YT10eXBlb2YgU3RyaW5nLnByb3RvdHlwZS5pc1dlbGxGb3JtZWQ9PT0iZnVuY3Rpb24iO3dhPXR5cGVvZiBUZXh0RW5jb2RlciE9PSJ1bmRlZmluZWQiO18uJGQ9U3RyaW5nLnByb3RvdHlwZS50cmltP2Z1bmN0aW9uKGEpe3JldHVybiBhLnRyaW0oKX06ZnVuY3Rpb24oYSl7cmV0dXJuL15bXHNceGEwXSooW1xzXFNdKj8pW1xzXHhhMF0qJC8uZXhlYyhhKVsxXX07dmFyIGFlPSEhKF8udmFbMF0+PjI1JjEpLGJlPSEhKF8udmFbMF0+PjIwJjEpLGNlPSEhKF8udmFbMF0+PjI3JjEpLGRlPSEhKF8udmFbMF0mODE5Mik7dmFyIERhPWFlP2NlOlZkKDYxMDQwMTMwMSwhMSksamM9YWU/YmV8fCFkZTpWZCg3NDg0MDIxNDcsITApO3ZhciBlZTtlZT1fLncubmF2aWdhdG9yO18uRWE9ZWU/ZWUudXNlckFnZW50RGF0YXx8bnVsbDpudWxsO18uYWI9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiB0eXBlb2YgYiE9PSJzdHJpbmcifHxiLmxlbmd0aCE9MT8tMTphLmluZGV4T2YoYiwwKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihjIGluIGEmJmFbY109PT1iKXJldHVybiBjO3JldHVybi0xfTtfLmZlPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoP2Z1bmN0aW9uKGEsYil7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5sZW5ndGgsZD10eXBlb2YgYT09PSJzdHJpbmciP2Euc3BsaXQoIiIpOmEsZT0wO2U8YztlKyspZSBpbiBkJiZiLmNhbGwodm9pZCAwLGRbZV0sZSxhKX07Cl8uZ2U9QXJyYXkucHJvdG90eXBlLnNvbWU/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5sZW5ndGgsZD10eXBlb2YgYT09PSJzdHJpbmciP2Euc3BsaXQoIiIpOmEsZT0wO2U8YztlKyspaWYoZSBpbiBkJiZiLmNhbGwodm9pZCAwLGRbZV0sZSxhKSlyZXR1cm4hMDtyZXR1cm4hMX07Xy5oZT1BcnJheS5wcm90b3R5cGUuZXZlcnk/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEubGVuZ3RoLGQ9dHlwZW9mIGE9PT0ic3RyaW5nIj9hLnNwbGl0KCIiKTphLGU9MDtlPGM7ZSsrKWlmKGUgaW4gZCYmIWIuY2FsbCh2b2lkIDAsZFtlXSxlLGEpKXJldHVybiExO3JldHVybiEwfTtfLmllPWZ1bmN0aW9uKGEpe18uaWVbIiAiXShhKTtyZXR1cm4gYX07Xy5pZVsiICJdPWZ1bmN0aW9uKCl7fTt2YXIgamUsbGUsb2U7amU9Xy5JYSgpO18ua2U9Xy5KYSgpO2xlPV8ueigiRWRnZSIpO18ubWU9Xy56KCJHZWNrbyIpJiYhKF8uQ2EoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIV8ueigiRWRnZSIpKSYmIShfLnooIlRyaWRlbnQiKXx8Xy56KCJNU0lFIikpJiYhXy56KCJFZGdlIik7Xy5uZT1fLkNhKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiFfLnooIkVkZ2UiKTsKYTp7dmFyIHBlPSIiLHFlPWZ1bmN0aW9uKCl7dmFyIGE9Xy5DYSgpO2lmKF8ubWUpcmV0dXJuL3J2OihbXlwpO10rKShcKXw7KS8uZXhlYyhhKTtpZihsZSlyZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKGEpO2lmKF8ua2UpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKGEpO2lmKF8ubmUpcmV0dXJuL1dlYktpdFwvKFxTKykvLmV4ZWMoYSk7aWYoamUpcmV0dXJuLyg/OlZlcnNpb24pWyBcL10/KFxTKykvLmV4ZWMoYSl9KCk7cWUmJihwZT1xZT9xZVsxXToiIik7aWYoXy5rZSl7dmFyIHJlLHNlPV8udy5kb2N1bWVudDtyZT1zZT9zZS5kb2N1bWVudE1vZGU6dm9pZCAwO2lmKHJlIT1udWxsJiZyZT5wYXJzZUZsb2F0KHBlKSl7b2U9U3RyaW5nKHJlKTticmVhayBhfX1vZT1wZX12YXIgdGU9b2U7dmFyIHVlPV8uTmEoKSx2ZT1YYSgpfHxfLnooImlQb2QiKSx3ZT1fLnooImlQYWQiKSx4ZT1RYSgpLHllPV8uT2EoKSx6ZT1fLlBhKCkmJiFfLllhKCk7dmFyIGViPXt9LGliPW51bGw7dmFyIG1iLG5iLGpiO18uQWU9dHlwZW9mIFVpbnQ4QXJyYXkhPT0idW5kZWZpbmVkIjttYj0hXy5rZSYmdHlwZW9mIGJ0b2E9PT0iZnVuY3Rpb24iO25iPS9bLV8uXS9nO2piPXsiLSI6IisiLF86Ii8iLCIuIjoiPSJ9O18uQmU9e307Xy5DZT1mdW5jdGlvbihhKXtpZihfLkJlIT09Xy5CZSl0aHJvdyBFcnJvcigidyIpO3ZhciBiPWEuZztiPWI9PW51bGx8fF8uQWUmJmIhPW51bGwmJmIgaW5zdGFuY2VvZiBVaW50OEFycmF5P2I6dHlwZW9mIGI9PT0ic3RyaW5nIj9fLm9iKGIpOm51bGw7cmV0dXJuIGI9PW51bGw/YjphLmc9Yn07dmFyIHFiPXZvaWQgMDt2YXIgRGUsVmIsbGMsT2I7Xy50Yj10eXBlb2YgU3ltYm9sPT09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbCgpPT09InN5bWJvbCI7RGU9Xy5zYigiamFzIix2b2lkIDAsITApO18uRWU9Xy5zYih2b2lkIDAsIjBkaSIpO18uVGI9Xy5zYih2b2lkIDAsU3ltYm9sKCkpO18uRmU9Xy5zYih2b2lkIDAsIjB1YiIpO1ZiPV8uc2Iodm9pZCAwLCIwdWJzIik7Xy5HZT1fLnNiKHZvaWQgMCwiMHVic2IiKTtsYz1fLnNiKHZvaWQgMCwiMGFjdGsiKTtPYj1fLnNiKCJtX20iLCJiZiIsITApO18uSGU9Xy5zYigpO3ZhciB2Yix1YixKZTt2Yj17WGQ6e3ZhbHVlOjAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITF9fTt1Yj1PYmplY3QuZGVmaW5lUHJvcGVydGllcztfLkE9Xy50Yj9EZToiWGQiO0plPVtdO18ueGIoSmUsNyk7Xy5JZT1PYmplY3QuZnJlZXplKEplKTt2YXIgUGIseWI7UGI9e307eWI9e307Xy5LZT1PYmplY3QuZnJlZXplKHt9KTtfLkxjPXt9O3ZhciBEYj1CYihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIn0pLENiPUJiKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifSksRmI9QmIoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09ImJvb2xlYW4ifSk7dmFyIEViPXR5cGVvZiBfLncuQmlnSW50PT09ImZ1bmN0aW9uIiYmdHlwZW9mIF8udy5CaWdJbnQoMCk9PT0iYmlnaW50Ijt2YXIgTmUsTGUsT2UsTWU7Xy4kYj1CYihmdW5jdGlvbihhKXtyZXR1cm4gRWI/YT49TGUmJmE8PU1lOmFbMF09PT0iLSI/SGIoYSxOZSk6SGIoYSxPZSl9KTtOZT1OdW1iZXIuTUlOX1NBRkVfSU5URUdFUi50b1N0cmluZygpO0xlPUViP0JpZ0ludChOdW1iZXIuTUlOX1NBRkVfSU5URUdFUik6dm9pZCAwO09lPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLnRvU3RyaW5nKCk7TWU9RWI/QmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTp2b2lkIDA7Xy5QZT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuc2xpY2U9PT0iZnVuY3Rpb24iO18uUWU9dHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiI/QmlnSW50LmFzSW50Tjp2b2lkIDA7Xy5SZT1OdW1iZXIuaXNTYWZlSW50ZWdlcjtfLktiPU51bWJlci5pc0Zpbml0ZTtfLlNlPU1hdGgudHJ1bmM7dmFyIFhiO3ZhciBkYyxlYzt2YXIgV2U7Xy5UZT1fLkdiKDApO18uVWU9e307Xy5MPWZ1bmN0aW9uKGEsYixjLGQsZSl7Yj1fLnVjKGEuQSxiLGMsZSk7aWYoYiE9PW51bGx8fGQmJmEuaSE9PXliKXJldHVybiBifTtfLnVjPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGI9PT0tMSlyZXR1cm4gbnVsbDt2YXIgZT1iKyhjPzA6LTEpLGY9YS5sZW5ndGgtMTtpZighKGY8MSsoYz8wOi0xKSkpe2lmKGU+PWYpe3ZhciBnPWFbZl07aWYoZyE9bnVsbCYmdHlwZW9mIGc9PT0ib2JqZWN0IiYmZy5jb25zdHJ1Y3Rvcj09PU9iamVjdCl7Yz1nW2JdO3ZhciBoPSEwfWVsc2UgaWYoZT09PWYpYz1nO2Vsc2UgcmV0dXJufWVsc2UgYz1hW2VdO2lmKGQmJmMhPW51bGwpe2Q9ZChjKTtpZihkPT1udWxsKXJldHVybiBkO2lmKCFPYmplY3QuaXMoZCxjKSlyZXR1cm4gaD9nW2JdPWQ6YVtlXT1kLGR9cmV0dXJuIGN9fTtfLlZlPWZ1bmN0aW9uKGEsYixjKXthPWEuQTtyZXR1cm4gXy52YyhhLGFbXy5BXXwwLGIsYykhPT12b2lkIDB9OwpXZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YVtfLkFdfDAsZT1kJjEyOD9fLkxjOnZvaWQgMCxmPV8udWMoYSxjLGUpO2lmKGYhPW51bGwmJmZbT2JdPT09UGIpe2lmKCFfLnpiKGYpKXJldHVybiBfLnJjKGYpLGYuQTt2YXIgZz1mLkF9ZWxzZSBBcnJheS5pc0FycmF5KGYpJiYoZz1mKTtpZihnKXt2YXIgaD1nW18uQV18MDtoJjImJihnPV8ubWMoZyxoKSl9Zz1fLmljKGcsYik7ZyE9PWYmJl8udGMoYSxkLGMsZyxlKTtyZXR1cm4gZ307Xy5NPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuQSxmPWVbXy5BXXwwO2I9Xy52YyhlLGYsYixjLGQpO2lmKGI9PW51bGwpcmV0dXJuIGI7Zj1lW18uQV18MDtpZighXy56YihhLGYpKXt2YXIgZz1fLnFjKGIpO2chPT1iJiYoXy5yYyhhKSYmKGU9YS5BLGY9ZVtfLkFdfDApLGI9ZyxmPV8udGMoZSxmLGMsYixkKSxfLnNjKGUsZikpfXJldHVybiBifTsKXy5YZT1mdW5jdGlvbihhLGIpe3ZhciBjPWM9PT12b2lkIDA/IiI6Yzt2YXIgZDtyZXR1cm4oZD1fLk5iKF8uTChhLGIpKSkhPW51bGw/ZDpjfTtfLk49ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5OYihfLkwoYSxiLHZvaWQgMCxfLlVlKSl9O18uTz1mdW5jdGlvbihhLGIpe3JldHVybiBfLkxiKF8uTChhLGIsdm9pZCAwLF8uVWUpKX07Xy5ZZT1mdW5jdGlvbihhLGIpe2Zvcig7Yj4xMjc7KWEuZy5wdXNoKGImMTI3fDEyOCksYj4+Pj03O2EuZy5wdXNoKGIpfTtfLlplPWZ1bmN0aW9uKGEsYil7aWYoYj49MClfLlllKGEsYik7ZWxzZXtmb3IodmFyIGM9MDtjPDk7YysrKWEuZy5wdXNoKGImMTI3fDEyOCksYj4+PTc7YS5nLnB1c2goMSl9fTtfLiRlPWZ1bmN0aW9uKGEsYil7Yi5sZW5ndGghPT0wJiYoYS5pLnB1c2goYiksYS5oKz1iLmxlbmd0aCl9O18uQ2M9ZnVuY3Rpb24oYSxiKXtfLlllKGEuZyxiKjgrMik7Yj1hLmcuZW5kKCk7Xy4kZShhLGIpO2IucHVzaChhLmgpO3JldHVybiBifTtfLkRjPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5wb3AoKTtmb3IoYz1hLmgrYS5nLmxlbmd0aCgpLWM7Yz4xMjc7KWIucHVzaChjJjEyN3wxMjgpLGM+Pj49NyxhLmgrKztiLnB1c2goYyk7YS5oKyt9O18uYWY9ZnVuY3Rpb24oYSxiLGMpe18uWWUoYS5nLGIqOCsyKTtfLlllKGEuZyxjLmxlbmd0aCk7Xy4kZShhLGEuZy5lbmQoKSk7Xy4kZShhLGMpfTt2YXIgYmYsZWY7Xy55Yz13YygpO2JmPXdjKCk7Xy5jZj13YygpO18uZGY9d2MoKTtlZj13YygpO18uRD1mdW5jdGlvbihhLGIsYyl7dGhpcy5BPV8uQihhLGIsYyl9O18uRC5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIF8uYmModGhpcyl9O18uRC5wcm90b3R5cGVbT2JdPVBiO18uRC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BLnRvU3RyaW5nKCl9O3ZhciBHYyxJYztfLnpjPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmc9YTt0aGlzLmg9YjthPV8uU2IoXy55Yyk7dGhpcy5pPSEhYSYmYz09PWF8fCExfTtHYz1BYyhmdW5jdGlvbihhLGIsYyxkLGUpe2lmKGEuaCE9PTIpcmV0dXJuITE7YS5sKFdlKGIsZCxjKSxlKTtyZXR1cm4hMH0pO0ljPUFjKGZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoYS5oIT09MilyZXR1cm4hMTthLmwoV2UoYixkLGMpLGUpO3JldHVybiEwfSk7Xy5mZj1TeW1ib2woKTtfLmdmPV8uS2MoZnVuY3Rpb24oYSxiLGMpe2lmKGEuaCE9PTApcmV0dXJuITE7Xy5NYyhiLGMsYS51KCkpO3JldHVybiEwfSxmdW5jdGlvbihhLGIsYyl7Yj1fLkpiKGIpO2IhPW51bGwmJihfLlllKGEuZyxjKjgpLGEuZy5nLnB1c2goYj8xOjApKX0sYmYpO18uaGY9Xy5LYyhmdW5jdGlvbihhLGIsYyl7aWYoYS5oIT09MilyZXR1cm4hMTtfLk1jKGIsYyxhLm8oKSk7cmV0dXJuITB9LGZ1bmN0aW9uKGEsYixjKXtiPV8uTmIoYik7YiE9bnVsbCYmXy5hZihhLGMsXy56YShiKSl9LF8uY2YpO18uamY9Xy5LYyhmdW5jdGlvbihhLGIsYyl7aWYoYS5oIT09MClyZXR1cm4hMTtfLk1jKGIsYyxhLnYoKSk7cmV0dXJuITB9LGZ1bmN0aW9uKGEsYixjKXtiPV8uTWIoYik7YiE9bnVsbCYmKGI9cGFyc2VJbnQoYiwxMCksXy5ZZShhLmcsYyo4KSxfLlplKGEuZyxiKSl9LGVmKTt2YXIgTmM9bmV3IE1hcDtOYy5zZXQoImRlYnVnIiwwKTtOYy5zZXQoImluZm8iLDEpO05jLnNldCgid2FybiIsMik7TmMuc2V0KCJlcnJvciIsMyk7Xy5PYz0id2FybiI7Xy5rZj1nbG9iYWxUaGlzLnRydXN0ZWRUeXBlcztfLlJjPWZ1bmN0aW9uKGEpe3RoaXMuZz1hfTtfLlJjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O18ubGY9bmV3IF8uUmMoImFib3V0OmludmFsaWQjekNsb3N1cmV6Iik7dmFyIFZjO18uVGM9ZnVuY3Rpb24oYSl7dGhpcy5hZT1hfTtfLm1mPVtVYygiZGF0YSIpLFVjKCJodHRwIiksVWMoImh0dHBzIiksVWMoIm1haWx0byIpLFVjKCJmdHAiKSxuZXcgXy5UYyhmdW5jdGlvbihhKXtyZXR1cm4vXlteOl0qKFsvPyNdfCQpLy50ZXN0KGEpfSldO1ZjPS9eXHMqKD8hamF2YXNjcmlwdDopKD86W1x3Ky4tXSs6fFteOi8/I10qKD86Wy8/I118JCkpL2k7Xy5uZj1TdHJpbmcucHJvdG90eXBlLnJlcGVhdD9mdW5jdGlvbihhLGIpe3JldHVybiBhLnJlcGVhdChiKX06ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkoYisxKS5qb2luKGEpfTt2YXIgb2Y7Xy5sPV8uWWMucHJvdG90eXBlO18ubC5zZXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSExO2lmKHR5cGVvZiBjPT09Im9iamVjdCIpe3ZhciBlPWMuc2FtZVNpdGU7ZD1jLnNlY3VyZXx8ITE7dmFyIGY9Yy5kb21haW58fHZvaWQgMDt2YXIgZz1jLnBhdGh8fHZvaWQgMDt2YXIgaD1jLldifWlmKC9bOz1cc10vLnRlc3QoYSkpdGhyb3cgRXJyb3IoIkpgIithKTtpZigvWztcclxuXS8udGVzdChiKSl0aHJvdyBFcnJvcigiS2AiK2IpO2g9PT12b2lkIDAmJihoPS0xKTt0aGlzLmcuY29va2llPWErIj0iK2IrKGY/Ijtkb21haW49IitmOiIiKSsoZz8iO3BhdGg9IitnOiIiKSsoaDwwPyIiOmg9PTA/IjtleHBpcmVzPSIrKG5ldyBEYXRlKDE5NzAsMSwxKSkudG9VVENTdHJpbmcoKToiO2V4cGlyZXM9IisobmV3IERhdGUoRGF0ZS5ub3coKStoKjFFMykpLnRvVVRDU3RyaW5nKCkpKyhkPyI7c2VjdXJlIjoiIikrKGUhPW51bGw/IjtzYW1lc2l0ZT0iK2U6IiIpfTsKXy5sLmdldD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hKyI9IixkPSh0aGlzLmcuY29va2llfHwiIikuc3BsaXQoIjsiKSxlPTAsZjtlPGQubGVuZ3RoO2UrKyl7Zj1fLiRkKGRbZV0pO2lmKGYubGFzdEluZGV4T2YoYywwKT09MClyZXR1cm4gZi5zbGljZShjLmxlbmd0aCk7aWYoZj09YSlyZXR1cm4iIn1yZXR1cm4gYn07Xy5sLlVhPWZ1bmN0aW9uKCl7cmV0dXJuIG9mKHRoaXMpLmtleXN9O18ubC5uYT1mdW5jdGlvbigpe3JldHVybiBvZih0aGlzKS52YWx1ZXN9O18ubC5jbGVhcj1mdW5jdGlvbigpe2Zvcih2YXIgYT1vZih0aGlzKS5rZXlzLGI9YS5sZW5ndGgtMTtiPj0wO2ItLSl7dmFyIGM9YVtiXTt0aGlzLmdldChjKTt0aGlzLnNldChjLCIiLHtXYjowLHBhdGg6dm9pZCAwLGRvbWFpbjp2b2lkIDB9KX19OwpvZj1mdW5jdGlvbihhKXthPShhLmcuY29va2llfHwiIikuc3BsaXQoIjsiKTtmb3IodmFyIGI9W10sYz1bXSxkLGUsZj0wO2Y8YS5sZW5ndGg7ZisrKWU9Xy4kZChhW2ZdKSxkPWUuaW5kZXhPZigiPSIpLGQ9PS0xPyhiLnB1c2goIiIpLGMucHVzaChlKSk6KGIucHVzaChlLnN1YnN0cmluZygwLGQpKSxjLnB1c2goZS5zdWJzdHJpbmcoZCsxKSkpO3JldHVybntrZXlzOmIsdmFsdWVzOmN9fTtfLmFkPW5ldyBfLlljKHR5cGVvZiBkb2N1bWVudD09InVuZGVmaW5lZCI/bnVsbDpkb2N1bWVudCk7Xy4kYz1bInRlc3Rfb25seSIsImVuYWJsZV93YXJtX3dlbGNvbWVfcGFnZV90eXBlIiwiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iLCJlbmFibGVfaXRwX3N1cHBvcnRfaW5fb2F1dGgiLCJkaXNhYmxlX2ZlZGNtX29wdF9vdXQiXTtfLlA9ZnVuY3Rpb24oYSl7Xy5aYy5nW2FdPSEwO18uRSgiRXhwZXJpbWVudCAiK2ErIiB0dXJuZWQgb24uIil9O18ucGY9ZnVuY3Rpb24oYSxiKXtfLlpjLmdbYV09YjtfLkUoIkV4cGVyaW1lbnQgIithKyIgc2V0IHRvICIrYisiLiIpfTtfLlpjPW5ldyBmdW5jdGlvbigpe3RoaXMuZz17fX07dmFyIGNkPSJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2YiLnNwbGl0KCIgIik7Xy5yZj1mdW5jdGlvbihhKXt0aGlzLmc9cWY9PT1xZiYmYXx8IiJ9O18ucmYucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ307dmFyIHFmPXt9O18uUT1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudDtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIj9iLmdldEVsZW1lbnRCeUlkKGEpOmF9O18uc2Y9ZnVuY3Rpb24oYSxiKXtiPVN0cmluZyhiKTthLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL3hodG1sK3htbCImJihiPWIudG9Mb3dlckNhc2UoKSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChiKX07Xy5lZD1SZWdFeHAoIl4oPzooW146Lz8jLl0rKTopPyg/Oi8vKD86KFteXFxcXC8/I10qKUApPyhbXlxcXFwvPyNdKj8pKD86OihbMC05XSspKT8oPz1bXFxcXC8/I118JCkpPyhbXj8jXSspPyg/OlxcPyhbXiNdKikpPyg/OiMoW1xcc1xcU10qKSk/JCIpO3ZhciBtZCx0ZixCZix1Zix3Zix2Zix6Zix4ZixDZjtfLmhkLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBhPVtdLGI9dGhpcy5oO2ImJmEucHVzaCh0ZihiLHVmLCEwKSwiOiIpO3ZhciBjPXRoaXMuZztpZihjfHxiPT0iZmlsZSIpYS5wdXNoKCIvLyIpLChiPXRoaXMuZ2V0VXNlckluZm8oKSkmJmEucHVzaCh0ZihiLHVmLCEwKSwiQCIpLGEucHVzaChlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxjPXRoaXMudSxjIT1udWxsJiZhLnB1c2goIjoiLFN0cmluZyhjKSk7aWYoYz10aGlzLmkpdGhpcy5nJiZjLmNoYXJBdCgwKSE9Ii8iJiZhLnB1c2goIi8iKSxhLnB1c2godGYoYyxjLmNoYXJBdCgwKT09Ii8iP3ZmOndmLCEwKSk7KGM9dGhpcy5qLnRvU3RyaW5nKCkpJiZhLnB1c2goIj8iLGMpOyhjPXRoaXMubykmJmEucHVzaCgiIyIsdGYoYyx4ZikpO3JldHVybiBhLmpvaW4oIiIpfTsKXy5oZC5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgXy5oZCh0aGlzKSxjPSEhYS5oO2M/Xy5pZChiLGEuaCk6Yz0hIWEudjtpZihjKXt2YXIgZD1hLmdldFVzZXJJbmZvKCk7Yi52PWR9ZWxzZSBjPSEhYS5nO2M/Yi5nPWEuZzpjPWEudSE9bnVsbDtkPWEuaTtpZihjKV8uamQoYixhLnUpO2Vsc2UgaWYoYz0hIWEuaSl7aWYoZC5jaGFyQXQoMCkhPSIvIilpZih0aGlzLmcmJiF0aGlzLmkpZD0iLyIrZDtlbHNle3ZhciBlPWIuaS5sYXN0SW5kZXhPZigiLyIpO2UhPS0xJiYoZD1iLmkuc2xpY2UoMCxlKzEpK2QpfWU9ZDtpZihlPT0iLi4ifHxlPT0iLiIpZD0iIjtlbHNlIGlmKGUuaW5kZXhPZigiLi8iKSE9LTF8fGUuaW5kZXhPZigiLy4iKSE9LTEpe2Q9ZS5sYXN0SW5kZXhPZigiLyIsMCk9PTA7ZT1lLnNwbGl0KCIvIik7Zm9yKHZhciBmPVtdLGc9MDtnPGUubGVuZ3RoOyl7dmFyIGg9ZVtnKytdO2g9PSIuIj9kJiZnPT1lLmxlbmd0aCYmZi5wdXNoKCIiKTpoPT0KIi4uIj8oKGYubGVuZ3RoPjF8fGYubGVuZ3RoPT0xJiZmWzBdIT0iIikmJmYucG9wKCksZCYmZz09ZS5sZW5ndGgmJmYucHVzaCgiIikpOihmLnB1c2goaCksZD0hMCl9ZD1mLmpvaW4oIi8iKX1lbHNlIGQ9ZX1jP2IuaT1kOmM9YS5qLnRvU3RyaW5nKCkhPT0iIjtjP18ua2QoYixsZChhLmopKTpjPSEhYS5vO2MmJihiLm89YS5vKTtyZXR1cm4gYn07Xy5pZD1mdW5jdGlvbihhLGIsYyl7YS5oPWM/bWQoYiwhMCk6YjthLmgmJihhLmg9YS5oLnJlcGxhY2UoLzokLywiIikpfTtfLmhkLnByb3RvdHlwZS5nZXRVc2VySW5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZ9O18uamQ9ZnVuY3Rpb24oYSxiKXtpZihiKXtiPU51bWJlcihiKTtpZihpc05hTihiKXx8YjwwKXRocm93IEVycm9yKCJMYCIrYik7YS51PWJ9ZWxzZSBhLnU9bnVsbH07Cl8ua2Q9ZnVuY3Rpb24oYSxiLGMpe2IgaW5zdGFuY2VvZiBfLm5kPyhhLmo9Yix5ZihhLmosYS5sKSk6KGN8fChiPXRmKGIsemYpKSxhLmo9bmV3IF8ubmQoYixhLmwpKX07Xy5BZj1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIF8uaGQ/bmV3IF8uaGQoYSk6bmV3IF8uaGQoYSl9O21kPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE/Yj9kZWNvZGVVUkkoYS5yZXBsYWNlKC8lMjUvZywiJTI1MjUiKSk6ZGVjb2RlVVJJQ29tcG9uZW50KGEpOiIifTt0Zj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/KGE9ZW5jb2RlVVJJKGEpLnJlcGxhY2UoYixCZiksYyYmKGE9YS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxhKTpudWxsfTtCZj1mdW5jdGlvbihhKXthPWEuY2hhckNvZGVBdCgwKTtyZXR1cm4iJSIrKGE+PjQmMTUpLnRvU3RyaW5nKDE2KSsoYSYxNSkudG9TdHJpbmcoMTYpfTt1Zj0vWyNcL1w/QF0vZzt3Zj0vWyNcPzpdL2c7CnZmPS9bI1w/XS9nO3pmPS9bI1w/QF0vZzt4Zj0vIy9nO18ubmQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmg9dGhpcy5nPW51bGw7dGhpcy5pPWF8fG51bGw7dGhpcy5qPSEhYn07Q2Y9ZnVuY3Rpb24oYSl7YS5nfHwoYS5nPW5ldyBNYXAsYS5oPTAsYS5pJiZnZChhLmksZnVuY3Rpb24oYixjKXthLmFkZChkZWNvZGVVUklDb21wb25lbnQoYi5yZXBsYWNlKC9cKy9nLCIgIikpLGMpfSkpfTtfLm5kLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXtDZih0aGlzKTt0aGlzLmk9bnVsbDthPURmKHRoaXMsYSk7dmFyIGM9dGhpcy5nLmdldChhKTtjfHx0aGlzLmcuc2V0KGEsYz1bXSk7Yy5wdXNoKGIpO3RoaXMuaCs9MTtyZXR1cm4gdGhpc307Xy5FZj1mdW5jdGlvbihhLGIpe0NmKGEpO2I9RGYoYSxiKTthLmcuaGFzKGIpJiYoYS5pPW51bGwsYS5oLT1hLmcuZ2V0KGIpLmxlbmd0aCxhLmcuZGVsZXRlKGIpKX07Cl8ubmQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5nPXRoaXMuaT1udWxsO3RoaXMuaD0wfTt2YXIgRmY9ZnVuY3Rpb24oYSxiKXtDZihhKTtiPURmKGEsYik7cmV0dXJuIGEuZy5oYXMoYil9O18ubD1fLm5kLnByb3RvdHlwZTtfLmwuZm9yRWFjaD1mdW5jdGlvbihhLGIpe0NmKHRoaXMpO3RoaXMuZy5mb3JFYWNoKGZ1bmN0aW9uKGMsZCl7Yy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2EuY2FsbChiLGUsZCx0aGlzKX0sdGhpcyl9LHRoaXMpfTtfLmwuVWE9ZnVuY3Rpb24oKXtDZih0aGlzKTtmb3IodmFyIGE9QXJyYXkuZnJvbSh0aGlzLmcudmFsdWVzKCkpLGI9QXJyYXkuZnJvbSh0aGlzLmcua2V5cygpKSxjPVtdLGQ9MDtkPGIubGVuZ3RoO2QrKylmb3IodmFyIGU9YVtkXSxmPTA7ZjxlLmxlbmd0aDtmKyspYy5wdXNoKGJbZF0pO3JldHVybiBjfTsKXy5sLm5hPWZ1bmN0aW9uKGEpe0NmKHRoaXMpO3ZhciBiPVtdO2lmKHR5cGVvZiBhPT09InN0cmluZyIpRmYodGhpcyxhKSYmKGI9Yi5jb25jYXQodGhpcy5nLmdldChEZih0aGlzLGEpKSkpO2Vsc2V7YT1BcnJheS5mcm9tKHRoaXMuZy52YWx1ZXMoKSk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYj1iLmNvbmNhdChhW2NdKX1yZXR1cm4gYn07Xy5sLnNldD1mdW5jdGlvbihhLGIpe0NmKHRoaXMpO3RoaXMuaT1udWxsO2E9RGYodGhpcyxhKTtGZih0aGlzLGEpJiYodGhpcy5oLT10aGlzLmcuZ2V0KGEpLmxlbmd0aCk7dGhpcy5nLnNldChhLFtiXSk7dGhpcy5oKz0xO3JldHVybiB0aGlzfTtfLmwuZ2V0PWZ1bmN0aW9uKGEsYil7aWYoIWEpcmV0dXJuIGI7YT10aGlzLm5hKGEpO3JldHVybiBhLmxlbmd0aD4wP1N0cmluZyhhWzBdKTpifTsKXy5HZj1mdW5jdGlvbihhLGIsYyl7Xy5FZihhLGIpO2MubGVuZ3RoPjAmJihhLmk9bnVsbCxhLmcuc2V0KERmKGEsYiksXy5jYihjKSksYS5oKz1jLmxlbmd0aCl9O18ubmQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7aWYodGhpcy5pKXJldHVybiB0aGlzLmk7aWYoIXRoaXMuZylyZXR1cm4iIjtmb3IodmFyIGE9W10sYj1BcnJheS5mcm9tKHRoaXMuZy5rZXlzKCkpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXSxlPWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpO2Q9dGhpcy5uYShkKTtmb3IodmFyIGY9MDtmPGQubGVuZ3RoO2YrKyl7dmFyIGc9ZTtkW2ZdIT09IiImJihnKz0iPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhkW2ZdKSkpO2EucHVzaChnKX19cmV0dXJuIHRoaXMuaT1hLmpvaW4oIiYiKX07CnZhciBsZD1mdW5jdGlvbihhKXt2YXIgYj1uZXcgXy5uZDtiLmk9YS5pO2EuZyYmKGIuZz1uZXcgTWFwKGEuZyksYi5oPWEuaCk7cmV0dXJuIGJ9LERmPWZ1bmN0aW9uKGEsYil7Yj1TdHJpbmcoYik7YS5qJiYoYj1iLnRvTG93ZXJDYXNlKCkpO3JldHVybiBifSx5Zj1mdW5jdGlvbihhLGIpe2ImJiFhLmomJihDZihhKSxhLmk9bnVsbCxhLmcuZm9yRWFjaChmdW5jdGlvbihjLGQpe3ZhciBlPWQudG9Mb3dlckNhc2UoKTtkIT1lJiYoXy5FZih0aGlzLGQpLF8uR2YodGhpcyxlLGMpKX0sYSkpO2Euaj1ifTtfLkhmPXR5cGVvZiBBc3luY0NvbnRleHQhPT0idW5kZWZpbmVkIiYmdHlwZW9mIEFzeW5jQ29udGV4dC5TbmFwc2hvdD09PSJmdW5jdGlvbiI/ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJkFzeW5jQ29udGV4dC5TbmFwc2hvdC53cmFwKGEpfTpmdW5jdGlvbihhKXtyZXR1cm4gYX07Xy5vZC5wcm90b3R5cGUudT0hMTtfLm9kLnByb3RvdHlwZS5YYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnV9O18ub2QucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnV8fCh0aGlzLnU9ITAsdGhpcy5oYSgpKX07Xy5vZC5wcm90b3R5cGVbU3ltYm9sLmRpc3Bvc2VdPWZ1bmN0aW9uKCl7dGhpcy5kaXNwb3NlKCl9O18ub2QucHJvdG90eXBlLmhhPWZ1bmN0aW9uKCl7aWYodGhpcy5vKWZvcig7dGhpcy5vLmxlbmd0aDspdGhpcy5vLnNoaWZ0KCkoKX07dmFyIHBkPWZ1bmN0aW9uKGEsYil7dGhpcy50eXBlPWE7dGhpcy5oPXRoaXMudGFyZ2V0PWI7dGhpcy5kZWZhdWx0UHJldmVudGVkPXRoaXMuaT0hMX07cGQucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3RoaXMuaT0hMH07cGQucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwfTt2YXIgSWY9ZnVuY3Rpb24oKXtpZighXy53LmFkZEV2ZW50TGlzdGVuZXJ8fCFPYmplY3QuZGVmaW5lUHJvcGVydHkpcmV0dXJuITE7dmFyIGE9ITEsYj1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXthPSEwfX0pO3RyeXt2YXIgYz1mdW5jdGlvbigpe307Xy53LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYik7Xy53LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYil9Y2F0Y2goZCl7fXJldHVybiBhfSgpO18uWWQocWQscGQpOwpxZC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMudHlwZT1hLnR5cGUsZD1hLmNoYW5nZWRUb3VjaGVzJiZhLmNoYW5nZWRUb3VjaGVzLmxlbmd0aD9hLmNoYW5nZWRUb3VjaGVzWzBdOm51bGw7dGhpcy50YXJnZXQ9YS50YXJnZXR8fGEuc3JjRWxlbWVudDt0aGlzLmg9YjtiPWEucmVsYXRlZFRhcmdldDtifHwoYz09Im1vdXNlb3ZlciI/Yj1hLmZyb21FbGVtZW50OmM9PSJtb3VzZW91dCImJihiPWEudG9FbGVtZW50KSk7dGhpcy5yZWxhdGVkVGFyZ2V0PWI7ZD8odGhpcy5jbGllbnRYPWQuY2xpZW50WCE9PXZvaWQgMD9kLmNsaWVudFg6ZC5wYWdlWCx0aGlzLmNsaWVudFk9ZC5jbGllbnRZIT09dm9pZCAwP2QuY2xpZW50WTpkLnBhZ2VZLHRoaXMuc2NyZWVuWD1kLnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPWQuc2NyZWVuWXx8MCk6KHRoaXMuaj1fLm5lfHxhLm9mZnNldFghPT12b2lkIDA/YS5vZmZzZXRYOmEubGF5ZXJYLHRoaXMubD1fLm5lfHxhLm9mZnNldFkhPT0Kdm9pZCAwP2Eub2Zmc2V0WTphLmxheWVyWSx0aGlzLmNsaWVudFg9YS5jbGllbnRYIT09dm9pZCAwP2EuY2xpZW50WDphLnBhZ2VYLHRoaXMuY2xpZW50WT1hLmNsaWVudFkhPT12b2lkIDA/YS5jbGllbnRZOmEucGFnZVksdGhpcy5zY3JlZW5YPWEuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9YS5zY3JlZW5ZfHwwKTt0aGlzLmJ1dHRvbj1hLmJ1dHRvbjt0aGlzLmtleUNvZGU9YS5rZXlDb2RlfHwwO3RoaXMua2V5PWEua2V5fHwiIjt0aGlzLmNoYXJDb2RlPWEuY2hhckNvZGV8fChjPT0ia2V5cHJlc3MiP2Eua2V5Q29kZTowKTt0aGlzLmN0cmxLZXk9YS5jdHJsS2V5O3RoaXMuYWx0S2V5PWEuYWx0S2V5O3RoaXMuc2hpZnRLZXk9YS5zaGlmdEtleTt0aGlzLm1ldGFLZXk9YS5tZXRhS2V5O3RoaXMucG9pbnRlcklkPWEucG9pbnRlcklkfHwwO3RoaXMucG9pbnRlclR5cGU9YS5wb2ludGVyVHlwZTt0aGlzLnN0YXRlPWEuc3RhdGU7dGhpcy5nPWE7YS5kZWZhdWx0UHJldmVudGVkJiZxZC51YS5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpfTsKcWQucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3FkLnVhLnN0b3BQcm9wYWdhdGlvbi5jYWxsKHRoaXMpO3RoaXMuZy5zdG9wUHJvcGFnYXRpb24/dGhpcy5nLnN0b3BQcm9wYWdhdGlvbigpOnRoaXMuZy5jYW5jZWxCdWJibGU9ITB9O3FkLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3FkLnVhLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyk7dmFyIGE9dGhpcy5nO2EucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFsdWU9ITF9O3FkLnByb3RvdHlwZS5vPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ307dmFyIEpmO0pmPSJjbG9zdXJlX2xpc3RlbmFibGVfIisoTWF0aC5yYW5kb20oKSoxRTZ8MCk7Xy5LZj1mdW5jdGlvbihhKXtyZXR1cm4hKCFhfHwhYVtKZl0pfTt2YXIgcmQ9MDt2YXIgTGY9ZnVuY3Rpb24oYSl7YS5hYj0hMDthLmxpc3RlbmVyPW51bGw7YS5wcm94eT1udWxsO2Euc3JjPW51bGw7YS55YT1udWxsfTt2YXIgTmY7dGQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWEudG9TdHJpbmcoKTthPXRoaXMuZ1tmXTthfHwoYT10aGlzLmdbZl09W10sdGhpcy5oKyspO3ZhciBnPU1mKGEsYixkLGUpO2c+LTE/KGI9YVtnXSxjfHwoYi5wYj0hMSkpOihiPW5ldyBzZChiLHRoaXMuc3JjLGYsISFkLGUpLGIucGI9YyxhLnB1c2goYikpO3JldHVybiBifTtOZj1mdW5jdGlvbihhLGIpe3ZhciBjPWIudHlwZTtpZighKGMgaW4gYS5nKSlyZXR1cm4hMTt2YXIgZD1fLmJiKGEuZ1tjXSxiKTtkJiYoTGYoYiksYS5nW2NdLmxlbmd0aD09MCYmKGRlbGV0ZSBhLmdbY10sYS5oLS0pKTtyZXR1cm4gZH07Xy5PZj1mdW5jdGlvbihhLGIpe2I9YiYmYi50b1N0cmluZygpO3ZhciBjPTAsZDtmb3IoZCBpbiBhLmcpaWYoIWJ8fGQ9PWIpe2Zvcih2YXIgZT1hLmdbZF0sZj0wO2Y8ZS5sZW5ndGg7ZisrKSsrYyxMZihlW2ZdKTtkZWxldGUgYS5nW2RdO2EuaC0tfX07CnRkLnByb3RvdHlwZS5WYT1mdW5jdGlvbihhLGIsYyxkKXthPXRoaXMuZ1thLnRvU3RyaW5nKCldO3ZhciBlPS0xO2EmJihlPU1mKGEsYixjLGQpKTtyZXR1cm4gZT4tMT9hW2VdOm51bGx9O3ZhciBNZj1mdW5jdGlvbihhLGIsYyxkKXtmb3IodmFyIGU9MDtlPGEubGVuZ3RoOysrZSl7dmFyIGY9YVtlXTtpZighZi5hYiYmZi5saXN0ZW5lcj09YiYmZi5jYXB0dXJlPT0hIWMmJmYueWE9PWQpcmV0dXJuIGV9cmV0dXJuLTF9O3ZhciBQZixRZixWZixaZixhZyxkZyxiZyxjZyxmZyxZZjtQZj0iY2xvc3VyZV9sbV8iKyhNYXRoLnJhbmRvbSgpKjFFNnwwKTtRZj17fTtWZj0wO18uWGY9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihkJiZkLm9uY2UpcmV0dXJuIF8uV2YoYSxiLGMsZCxlKTtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKylfLlhmKGEsYltmXSxjLGQsZSk7cmV0dXJuIG51bGx9Yz1ZZihjKTtyZXR1cm4gXy5LZihhKT9hLk0oYixjLF8uVWQoZCk/ISFkLmNhcHR1cmU6ISFkLGUpOlpmKGEsYixjLCExLGQsZSl9OwpaZj1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoIWIpdGhyb3cgRXJyb3IoIk8iKTt2YXIgZz1fLlVkKGUpPyEhZS5jYXB0dXJlOiEhZSxoPV8uJGYoYSk7aHx8KGFbUGZdPWg9bmV3IHRkKGEpKTtjPWguYWRkKGIsYyxkLGcsZik7aWYoYy5wcm94eSlyZXR1cm4gYztkPWFnKCk7Yy5wcm94eT1kO2Quc3JjPWE7ZC5saXN0ZW5lcj1jO2lmKGEuYWRkRXZlbnRMaXN0ZW5lcilJZnx8KGU9ZyksZT09PXZvaWQgMCYmKGU9ITEpLGEuYWRkRXZlbnRMaXN0ZW5lcihiLnRvU3RyaW5nKCksZCxlKTtlbHNlIGlmKGEuYXR0YWNoRXZlbnQpYS5hdHRhY2hFdmVudChiZyhiLnRvU3RyaW5nKCkpLGQpO2Vsc2UgaWYoYS5hZGRMaXN0ZW5lciYmYS5yZW1vdmVMaXN0ZW5lcilhLmFkZExpc3RlbmVyKGQpO2Vsc2UgdGhyb3cgRXJyb3IoIlAiKTtWZisrO3JldHVybiBjfTthZz1mdW5jdGlvbigpe3ZhciBhPWNnLGI9ZnVuY3Rpb24oYyl7cmV0dXJuIGEuY2FsbChiLnNyYyxiLmxpc3RlbmVyLGMpfTtyZXR1cm4gYn07Cl8uV2Y9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKylfLldmKGEsYltmXSxjLGQsZSk7cmV0dXJuIG51bGx9Yz1ZZihjKTtyZXR1cm4gXy5LZihhKT9hLlZiKGIsYyxfLlVkKGQpPyEhZC5jYXB0dXJlOiEhZCxlKTpaZihhLGIsYywhMCxkLGUpfTtkZz1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspZGcoYSxiW2ZdLGMsZCxlKTtlbHNlIGQ9Xy5VZChkKT8hIWQuY2FwdHVyZTohIWQsYz1ZZihjKSxfLktmKGEpP2EuRWEoYixjLGQsZSk6YSYmKGE9Xy4kZihhKSkmJihiPWEuVmEoYixjLGQsZSkpJiZfLmVnKGIpfTsKXy5lZz1mdW5jdGlvbihhKXtpZih0eXBlb2YgYT09PSJudW1iZXIifHwhYXx8YS5hYilyZXR1cm4hMTt2YXIgYj1hLnNyYztpZihfLktmKGIpKXJldHVybiBOZihiLmlhLGEpO3ZhciBjPWEudHlwZSxkPWEucHJveHk7Yi5yZW1vdmVFdmVudExpc3RlbmVyP2IucmVtb3ZlRXZlbnRMaXN0ZW5lcihjLGQsYS5jYXB0dXJlKTpiLmRldGFjaEV2ZW50P2IuZGV0YWNoRXZlbnQoYmcoYyksZCk6Yi5hZGRMaXN0ZW5lciYmYi5yZW1vdmVMaXN0ZW5lciYmYi5yZW1vdmVMaXN0ZW5lcihkKTtWZi0tOyhjPV8uJGYoYikpPyhOZihjLGEpLGMuaD09MCYmKGMuc3JjPW51bGwsYltQZl09bnVsbCkpOkxmKGEpO3JldHVybiEwfTtiZz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbiBRZj9RZlthXTpRZlthXT0ib24iK2F9OwpjZz1mdW5jdGlvbihhLGIpe2lmKGEuYWIpYT0hMDtlbHNle2I9bmV3IHFkKGIsdGhpcyk7dmFyIGM9YS5saXN0ZW5lcixkPWEueWF8fGEuc3JjO2EucGImJl8uZWcoYSk7YT1jLmNhbGwoZCxiKX1yZXR1cm4gYX07Xy4kZj1mdW5jdGlvbihhKXthPWFbUGZdO3JldHVybiBhIGluc3RhbmNlb2YgdGQ/YTpudWxsfTtmZz0iX19jbG9zdXJlX2V2ZW50c19mbl8iKyhNYXRoLnJhbmRvbSgpKjFFOT4+PjApO1lmPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT09ImZ1bmN0aW9uIilyZXR1cm4gYTthW2ZnXXx8KGFbZmddPWZ1bmN0aW9uKGIpe3JldHVybiBhLmhhbmRsZUV2ZW50KGIpfSk7cmV0dXJuIGFbZmddfTtfLllkKF8udWQsXy5vZCk7Xy51ZC5wcm90b3R5cGVbSmZdPSEwO18ubD1fLnVkLnByb3RvdHlwZTtfLmwuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyxkKXtfLlhmKHRoaXMsYSxiLGMsZCl9O18ubC5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjLGQpe2RnKHRoaXMsYSxiLGMsZCl9OwpfLmwuZGlzcGF0Y2hFdmVudD1mdW5jdGlvbihhKXt2YXIgYixjPXRoaXMubDtpZihjKWZvcihiPVtdO2M7Yz1jLmwpYi5wdXNoKGMpO2M9dGhpcy5DO3ZhciBkPWEudHlwZXx8YTtpZih0eXBlb2YgYT09PSJzdHJpbmciKWE9bmV3IHBkKGEsYyk7ZWxzZSBpZihhIGluc3RhbmNlb2YgcGQpYS50YXJnZXQ9YS50YXJnZXR8fGM7ZWxzZXt2YXIgZT1hO2E9bmV3IHBkKGQsYyk7ZGQoYSxlKX1lPSEwO3ZhciBmO2lmKGIpZm9yKGY9Yi5sZW5ndGgtMTshYS5pJiZmPj0wO2YtLSl7dmFyIGc9YS5oPWJbZl07ZT1nZyhnLGQsITAsYSkmJmV9YS5pfHwoZz1hLmg9YyxlPWdnKGcsZCwhMCxhKSYmZSxhLml8fChlPWdnKGcsZCwhMSxhKSYmZSkpO2lmKGIpZm9yKGY9MDshYS5pJiZmPGIubGVuZ3RoO2YrKylnPWEuaD1iW2ZdLGU9Z2coZyxkLCExLGEpJiZlO3JldHVybiBlfTsKXy5sLmhhPWZ1bmN0aW9uKCl7Xy51ZC51YS5oYS5jYWxsKHRoaXMpO3RoaXMuaWEmJl8uT2YodGhpcy5pYSk7dGhpcy5sPW51bGx9O18ubC5NPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmlhLmFkZChTdHJpbmcoYSksYiwhMSxjLGQpfTtfLmwuVmI9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMuaWEuYWRkKFN0cmluZyhhKSxiLCEwLGMsZCl9O18ubC5FYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzLmlhO2E9U3RyaW5nKGEpLnRvU3RyaW5nKCk7aWYoYSBpbiBlLmcpe3ZhciBmPWUuZ1thXTtiPU1mKGYsYixjLGQpO2I+LTEmJihMZihmW2JdKSxBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoZixiLDEpLGYubGVuZ3RoPT0wJiYoZGVsZXRlIGUuZ1thXSxlLmgtLSkpfX07CnZhciBnZz1mdW5jdGlvbihhLGIsYyxkKXtiPWEuaWEuZ1tTdHJpbmcoYildO2lmKCFiKXJldHVybiEwO2I9Yi5jb25jYXQoKTtmb3IodmFyIGU9ITAsZj0wO2Y8Yi5sZW5ndGg7KytmKXt2YXIgZz1iW2ZdO2lmKGcmJiFnLmFiJiZnLmNhcHR1cmU9PWMpe3ZhciBoPWcubGlzdGVuZXIsaz1nLnlhfHxnLnNyYztnLnBiJiZOZihhLmlhLGcpO2U9aC5jYWxsKGssZCkhPT0hMSYmZX19cmV0dXJuIGUmJiFkLmRlZmF1bHRQcmV2ZW50ZWR9O18udWQucHJvdG90eXBlLlZhPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmlhLlZhKFN0cmluZyhhKSxiLGMsZCl9O18uaGc9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMCk7Zm9yKHZhciBpZz1bXSxqZz0wO2pnPDYzO2pnKyspaWdbamddPTA7Xy5rZz1bXS5jb25jYXQoMTI4LGlnKTt2YXIgbGc7bGc9ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5leGVjKF8uQ2EoKSkpP2FbMV06IiJ9O18ubWc9ZnVuY3Rpb24oKXtpZih1ZSlyZXR1cm4gbGcoL0ZpcmVmb3hcLyhbMC05Ll0rKS8pO2lmKF8ua2V8fGxlfHxqZSlyZXR1cm4gdGU7aWYoeWUpe2lmKF8uWWEoKXx8Xy5aYSgpKXt2YXIgYT1sZygvQ3JpT1NcLyhbMC05Ll0rKS8pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIGxnKC9DaHJvbWVcLyhbMC05Ll0rKS8pfWlmKHplJiYhXy5ZYSgpKXJldHVybiBsZygvVmVyc2lvblwvKFswLTkuXSspLyk7aWYodmV8fHdlKXtpZihhPS9WZXJzaW9uXC8oXFMrKS4qTW9iaWxlXC8oXFMrKS8uZXhlYyhfLkNhKCkpKXJldHVybiBhWzFdKyIuIithWzJdfWVsc2UgaWYoeGUpcmV0dXJuKGE9bGcoL0FuZHJvaWRccysoWzAtOS5dKykvKSk/YTpsZygvVmVyc2lvblwvKFswLTkuXSspLyk7cmV0dXJuIiJ9KCk7Xy52ZD13aW5kb3c7Xy5ZZChfLkVkLF8ub2QpO3ZhciBuZz1bXTtfLkVkLnByb3RvdHlwZS5NPWZ1bmN0aW9uKGEsYixjLGQpe0FycmF5LmlzQXJyYXkoYil8fChiJiYobmdbMF09Yi50b1N0cmluZygpKSxiPW5nKTtmb3IodmFyIGU9MDtlPGIubGVuZ3RoO2UrKyl7dmFyIGY9Xy5YZihhLGJbZV0sY3x8dGhpcy5oYW5kbGVFdmVudCxkfHwhMSx0aGlzLmh8fHRoaXMpO2lmKCFmKWJyZWFrO3RoaXMuZ1tmLmtleV09Zn1yZXR1cm4gdGhpc307Xy5FZC5wcm90b3R5cGUuVmI9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIG9nKHRoaXMsYSxiLGMsZCl9O3ZhciBvZz1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoQXJyYXkuaXNBcnJheShjKSlmb3IodmFyIGc9MDtnPGMubGVuZ3RoO2crKylvZyhhLGIsY1tnXSxkLGUsZik7ZWxzZXtiPV8uV2YoYixjLGR8fGEuaGFuZGxlRXZlbnQsZSxmfHxhLmh8fGEpO2lmKCFiKXJldHVybiBhO2EuZ1tiLmtleV09Yn1yZXR1cm4gYX07Cl8uRWQucHJvdG90eXBlLkVhPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShiKSlmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKyl0aGlzLkVhKGEsYltmXSxjLGQsZSk7ZWxzZSBjPWN8fHRoaXMuaGFuZGxlRXZlbnQsZD1fLlVkKGQpPyEhZC5jYXB0dXJlOiEhZCxlPWV8fHRoaXMuaHx8dGhpcyxjPVlmKGMpLGQ9ISFkLGI9Xy5LZihhKT9hLlZhKGIsYyxkLGUpOmE/KGE9Xy4kZihhKSk/YS5WYShiLGMsZCxlKTpudWxsOm51bGwsYiYmKF8uZWcoYiksZGVsZXRlIHRoaXMuZ1tiLmtleV0pfTt2YXIgcGc9ZnVuY3Rpb24oYSl7YmQoYS5nLGZ1bmN0aW9uKGIsYyl7dGhpcy5nLmhhc093blByb3BlcnR5KGMpJiZfLmVnKGIpfSxhKTthLmc9e319O18uRWQucHJvdG90eXBlLmhhPWZ1bmN0aW9uKCl7Xy5FZC51YS5oYS5jYWxsKHRoaXMpO3BnKHRoaXMpfTtfLkVkLnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJVIik7fTtfLllkKF8uR2QsXy51ZCk7Xy5HZC5wcm90b3R5cGUuaD0hMTtfLkdkLnByb3RvdHlwZS5nPW51bGw7Xy5HZC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe2lmKHRoaXMuaCl7dmFyIGE9RGF0ZS5ub3coKS10aGlzLkI7YT4wJiZhPHRoaXMuaiouOD90aGlzLmc9dGhpcy5pLnNldFRpbWVvdXQodGhpcy52LHRoaXMuai1hKToodGhpcy5nJiYodGhpcy5pLmNsZWFyVGltZW91dCh0aGlzLmcpLHRoaXMuZz1udWxsKSx0aGlzLmRpc3BhdGNoRXZlbnQoInRpY2siKSx0aGlzLmgmJihfLnFnKHRoaXMpLHRoaXMuc3RhcnQoKSkpfX07Xy5HZC5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt0aGlzLmg9ITA7dGhpcy5nfHwodGhpcy5nPXRoaXMuaS5zZXRUaW1lb3V0KHRoaXMudix0aGlzLmopLHRoaXMuQj1EYXRlLm5vdygpKX07Xy5xZz1mdW5jdGlvbihhKXthLmg9ITE7YS5nJiYoYS5pLmNsZWFyVGltZW91dChhLmcpLGEuZz1udWxsKX07Cl8uR2QucHJvdG90eXBlLmhhPWZ1bmN0aW9uKCl7Xy5HZC51YS5oYS5jYWxsKHRoaXMpO18ucWcodGhpcyk7ZGVsZXRlIHRoaXMuaX07Xy5yZz1mdW5jdGlvbihhLGIpe3RoaXMubD1iLmF1dGhfdXJsfHwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL3YyL2F1dGgiO3RoaXMudT1fLkRkKGEsYik7dGhpcy5lcnJvcl9jYWxsYmFjaz1iLmVycm9yX2NhbGxiYWNrO3RoaXMubz12b2lkIDA7dGhpcy5qPWE7dGhpcy52PSExfTtfLnJnLnByb3RvdHlwZS5pPWZ1bmN0aW9uKCl7dGhpcy5oJiYoXy5xZyh0aGlzLmgpLF8uRSgiUG9wdXAgdGltZXIgc3RvcHBlZC4iLCJPQVVUSDJfQ0xJRU5UIiksdGhpcy5oPXZvaWQgMCx0aGlzLkI9ITApfTsKXy5zZz1mdW5jdGlvbihhKXthLnZ8fChhLnY9ITAsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKGIpe3RyeXtpZihiLmRhdGEpaWYoYi5vcmlnaW4hPT1fLmZkKGEubCkpXy5GKCJNZXNzYWdlIGlnbm9yZWQuIERpZmZlcmVudCBvcmlnaW4uIiwiT0FVVEgyX0NMSUVOVCIpO2Vsc2V7dmFyIGM9SlNPTi5wYXJzZShiLmRhdGEpLnBhcmFtcztjP2EubyYmYy5pZD09PWEubz9jLmNsaWVudElkIT09YS51LmNsaWVudF9pZD9fLkYoIk1lc3NhZ2UgaWdub3JlZC4gQ2xpZW50IGlkIGRvZXMgbm90IG1hdGNoLiIsIk9BVVRIMl9DTElFTlQiKTpjLnR5cGUhPT0iYXV0aFJlc3VsdCI/Xy5GKCJNZXNzYWdlIGlnbm9yZWQuIEludmFsaWQgZXZlbnQgdHlwZS4iLCJPQVVUSDJfQ0xJRU5UIik6KGEubz12b2lkIDAsYS5pKGMuYXV0aFJlc3VsdCkpOl8uRigiTWVzc2FnZSBpZ25vcmVkLiBSZXF1ZXN0IGlkIGRvZXMgbm90IG1hdGNoLiIsIk9BVVRIMl9DTElFTlQiKTpfLkYoIk1lc3NhZ2UgaWdub3JlZC4gTm8gcGFyYW1zIGluIG1lc3NhZ2UuIiwKIk9BVVRIMl9DTElFTlQiKX1lbHNlIF8uRigiTWVzc2FnZSBpZ25vcmVkLiBObyBldmVudCBkYXRhLiIsIk9BVVRIMl9DTElFTlQiKX1jYXRjaChkKXtfLkYoIk1lc3NhZ2UgaWdub3JlZC4gRXJyb3IgaW4gcGFyc2luZyBldmVudCBkYXRhLiIsIk9BVVRIMl9DTElFTlQiKX19LCExKSl9O18udGc9ZnVuY3Rpb24oYSxiKXthLm89ImF1dGgiK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxRTYrMSk7dmFyIGM9bG9jYXRpb24ucHJvdG9jb2wsZD1sb2NhdGlvbi5ob3N0LGU9Yy5pbmRleE9mKCI6Iik7ZT4wJiYoYz1jLnN1YnN0cmluZygwLGUpKTtjPVsic3RvcmFnZXJlbGF5Oi8vIixjLCIvIixkLCI/Il07Yy5wdXNoKCJpZD0iK2Eubyk7Yi5yZWRpcmVjdF91cmk9Yy5qb2luKCIiKX07Cl8udWc9ZnVuY3Rpb24oYSl7YS5lcnJvcl9jYWxsYmFjayYmYS5nJiYhYS5oJiYoXy5GKCJTdGFydGluZyBwb3B1cCB0aW1lci4iLCJPQVVUSDJfQ0xJRU5UIiksYS5CPSExLGEuaD1uZXcgXy5HZCg1MDApLChuZXcgXy5FZChhKSkuTShhLmgsInRpY2siLGEuQyksYS5oLnN0YXJ0KCkpfTtfLnJnLnByb3RvdHlwZS5DPWZ1bmN0aW9uKCl7Xy5FKCJDaGVja2luZyBwb3B1cCBjbG9zZWQuIiwiT0FVVEgyX0NMSUVOVCIpOyF0aGlzLmh8fHRoaXMuQnx8dGhpcy5nJiYhdGhpcy5nLmNsb3NlZHx8KF8uRigiUG9wdXAgd2luZG93IGNsb3NlZC4iLCJPQVVUSDJfQ0xJRU5UIiksdGhpcy5lcnJvcl9jYWxsYmFjayYmdGhpcy5lcnJvcl9jYWxsYmFjayhuZXcgXy5DZCgiUG9wdXAgd2luZG93IGNsb3NlZCIsInBvcHVwX2Nsb3NlZCIpKSxfLnFnKHRoaXMuaCksdGhpcy5nPXRoaXMuaD12b2lkIDApfTt2YXIgSWQ9Xy53ZCgpOwpfLlAoImRpc2FibGVfZmVkY21fb3B0X291dCIpOwpfLlAoImVuYWJsZV9icm93c2luZ19zZXNzaW9uX2lkIik7Cl8uUCgiZW5hYmxlX2dpc19vYXV0aF9idXR0b25fZmxvd19wb3B1cCIpOwpfLlAoImVuYWJsZV9naXNfb2F1dGhfYnV0dG9uX2Zsb3dfcmVkaXJlY3QiKTsKXy5QKCJlbmFibGVfaW50ZXJtZWRpYXRlX2lmcmFtZSIpOwpfLlAoImVuYWJsZV9pdHBfc3VwcG9ydF9pbl9vYXV0aCIpOwpfLnBmKCJlbmFibGVfaXRwX29wdGltaXphdGlvbiIsMjQpOwpfLlAoImVuYWJsZV90cmFuc2Zvcm1fZmxvd19mb3JfYXV0aHoiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEZoLEloLEpoLEtoLExoLE1oLE5oLFBoLFJoLFNoLFVoLFZoLFdoLGtpLG5pLHBpLHNpLEdoLEhoLHppLEFpLFFoLFRoLFhoLGxpLG1pO18uRWg9ZnVuY3Rpb24oYSl7YT1FcnJvcihhKTtfLnBiKGEsIndhcm5pbmciKTtyZXR1cm4gYX07Rmg9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiJ9O0loPWZ1bmN0aW9uKGEpe3ZhciBiPWE+Pj4wO0doPWI7SGg9KGEtYikvNDI5NDk2NzI5Nj4+PjB9O0poPWZ1bmN0aW9uKGEsYil7Yj1+YjthP2E9fmErMTpiKz0xO3JldHVyblthLGJdfTtLaD1mdW5jdGlvbihhKXtpZihhPDApe0loKC1hKTt2YXIgYj1fLnUoSmgoR2gsSGgpKTthPWIubmV4dCgpLnZhbHVlO2I9Yi5uZXh0KCkudmFsdWU7R2g9YT4+PjA7SGg9Yj4+PjB9ZWxzZSBJaChhKX07TGg9ZnVuY3Rpb24oYSl7YT1TdHJpbmcoYSk7cmV0dXJuIjAwMDAwMDAiLnNsaWNlKGEubGVuZ3RoKSthfTsKTWg9ZnVuY3Rpb24oYSxiKXtiPj4+PTA7YT4+Pj0wO2lmKGI8PTIwOTcxNTEpdmFyIGM9IiIrKDQyOTQ5NjcyOTYqYithKTtlbHNlIEZoKCk/Yz0iIisoQmlnSW50KGIpPDxCaWdJbnQoMzIpfEJpZ0ludChhKSk6KGM9KGE+Pj4yNHxiPDw4KSYxNjc3NzIxNSxiPWI+PjE2JjY1NTM1LGE9KGEmMTY3NzcyMTUpK2MqNjc3NzIxNitiKjY3MTA2NTYsYys9Yio4MTQ3NDk3LGIqPTIsYT49MUU3JiYoYys9YS8xRTc+Pj4wLGElPTFFNyksYz49MUU3JiYoYis9Yy8xRTc+Pj4wLGMlPTFFNyksYz1iK0xoKGMpK0xoKGEpKTtyZXR1cm4gY307Tmg9ZnVuY3Rpb24oKXt2YXIgYT1HaCxiPUhoO2ImMjE0NzQ4MzY0OD9GaCgpP2E9IiIrKEJpZ0ludChifDApPDxCaWdJbnQoMzIpfEJpZ0ludChhPj4+MCkpOihiPV8udShKaChhLGIpKSxhPWIubmV4dCgpLnZhbHVlLGI9Yi5uZXh0KCkudmFsdWUsYT0iLSIrTWgoYSxiKSk6YT1NaChhLGIpO3JldHVybiBhfTsKXy5PaD1mdW5jdGlvbihhKXtpZighXy5yYyhhKSYmXy56YihhLGEuQVtfLkFdfDApKXRocm93IEVycm9yKCk7fTtQaD1mdW5jdGlvbihhLGIsYyl7YVtiXT1jLmh9O1JoPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZz1jLmg7YVtiXT1mdW5jdGlvbihoLGssbSl7cmV0dXJuIGcoaCxrLG0sZnx8KGY9Xy5IYyhRaCxQaCxSaCxkKS5ZYSksZXx8KGU9U2goZCkpKX19O1NoPWZ1bmN0aW9uKGEpe3ZhciBiPWFbVGhdO2lmKCFiKXt2YXIgYz1fLkhjKFFoLFBoLFJoLGEpO2I9ZnVuY3Rpb24oZCxlKXtyZXR1cm4gVWgoZCxlLGMpfTthW1RoXT1ifXJldHVybiBifTsKVWg9ZnVuY3Rpb24oYSxiLGMpe18uQWIoYSxhW18uQV18MCxmdW5jdGlvbihkLGUpe2lmKGUhPW51bGwpe3ZhciBmPVZoKGMsZCk7Zj9mKGIsZSxkKTpkPDUwMHx8Xy5yYihfLkdlLDMpfX0pOyhhPV8uVWIoYSkpJiZhLnNiKGZ1bmN0aW9uKGQsZSxmKXtfLiRlKGIsYi5nLmVuZCgpKTtmb3IoZD0wO2Q8Zi5sZW5ndGg7ZCsrKV8uJGUoYixfLkNlKGZbZF0pfHxuZXcgVWludDhBcnJheSgwKSl9KX07Vmg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hW2JdO2lmKGMpcmV0dXJuIGM7aWYoYz1hLk9iKWlmKGM9Y1tiXSl7Yz1fLkpjKGMpO3ZhciBkPWNbMF0uaDtpZihjPWNbMV0pe3ZhciBlPVNoKGMpLGY9Xy5IYyhRaCxQaCxSaCxjKS5ZYTtjPWEuWmM/KDAsXy5GYykoZixlKTpmdW5jdGlvbihnLGgsayl7cmV0dXJuIGQoZyxoLGssZixlKX19ZWxzZSBjPWQ7cmV0dXJuIGFbYl09Y319OwpXaD1mdW5jdGlvbihhKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGEsZnVuY3Rpb24oYil7Yj1iLnRvU3RyaW5nKDE2KTtyZXR1cm4gYi5sZW5ndGg+MT9iOiIwIitifSkuam9pbigiIil9O18uWWg9ZnVuY3Rpb24oYSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlICJiaWdpbnQiOnJldHVybiEwO2Nhc2UgIm51bWJlciI6cmV0dXJuKDAsXy5LYikoYSk7Y2FzZSAic3RyaW5nIjpyZXR1cm4gWGgudGVzdChhKTtkZWZhdWx0OnJldHVybiExfX07Cl8uWmg9ZnVuY3Rpb24oYSl7dmFyIGI9YS5sZW5ndGg7aWYoYVswXT09PSItIj9iPDIwfHxiPT09MjAmJmE8PSItOTIyMzM3MjAzNjg1NDc3NTgwOCI6YjwxOXx8Yj09PTE5JiZhPD0iOTIyMzM3MjAzNjg1NDc3NTgwNyIpcmV0dXJuIGE7aWYoYS5sZW5ndGg8MTYpS2goTnVtYmVyKGEpKTtlbHNlIGlmKEZoKCkpYT1CaWdJbnQoYSksR2g9TnVtYmVyKGEmQmlnSW50KDQyOTQ5NjcyOTUpKT4+PjAsSGg9TnVtYmVyKGE+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKTtlbHNle2I9KyhhWzBdPT09Ii0iKTtIaD1HaD0wO2Zvcih2YXIgYz1hLmxlbmd0aCxkPWIsZT0oYy1iKSU2K2I7ZTw9YztkPWUsZSs9NilkPU51bWJlcihhLnNsaWNlKGQsZSkpLEhoKj0xRTYsR2g9R2gqMUU2K2QsR2g+PTQyOTQ5NjcyOTYmJihIaCs9TWF0aC50cnVuYyhHaC80Mjk0OTY3Mjk2KSxIaD4+Pj0wLEdoPj4+PTApO2ImJihiPV8udShKaChHaCxIaCkpLGE9Yi5uZXh0KCkudmFsdWUsYj1iLm5leHQoKS52YWx1ZSwKR2g9YSxIaD1iKX1yZXR1cm4gTmgoKX07Xy4kaD1mdW5jdGlvbihhKXt2YXIgYj0oMCxfLlNlKShOdW1iZXIoYSkpO2lmKCgwLF8uUmUpKGIpKXJldHVybiBfLkdiKGIpO2I9YS5pbmRleE9mKCIuIik7YiE9PS0xJiYoYT1hLnN1YnN0cmluZygwLGIpKTtyZXR1cm4gRmgoKT9fLkdiKCgwLF8uUWUpKDY0LEJpZ0ludChhKSkpOl8uR2IoXy5aaChhKSl9O18uYWk9ZnVuY3Rpb24oYSl7YT0oMCxfLlNlKShhKTtpZighKDAsXy5SZSkoYSkpe0toKGEpO3ZhciBiPUdoLGM9SGg7aWYoYT1jJjIxNDc0ODM2NDgpYj1+YisxPj4+MCxjPX5jPj4+MCxiPT0wJiYoYz1jKzE+Pj4wKTt2YXIgZD1jKjQyOTQ5NjcyOTYrKGI+Pj4wKTtiPU51bWJlci5pc1NhZmVJbnRlZ2VyKGQpP2Q6TWgoYixjKTthPXR5cGVvZiBiPT09Im51bWJlciI/YT8tYjpiOmE/Ii0iK2I6Yn1yZXR1cm4gYX07Cl8uYmk9ZnVuY3Rpb24oYSl7YT0oMCxfLlNlKShhKTsoMCxfLlJlKShhKT9hPVN0cmluZyhhKTooS2goYSksYT1OaCgpKTtyZXR1cm4gYX07Xy5jaT1mdW5jdGlvbihhKXtyZXR1cm4oMCxfLlJlKShhKT9fLkdiKF8uYWkoYSkpOl8uR2IoXy5iaShhKSl9O18uZGk9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7aWYoYT09bnVsbClyZXR1cm4gYTtpZihiPT09ImJpZ2ludCIpcmV0dXJuIF8uR2IoKDAsXy5RZSkoNjQsYSkpO2lmKF8uWWgoYSkpcmV0dXJuIGI9PT0ic3RyaW5nIj9fLiRoKGEpOl8uY2koYSl9O18uZWk9ZnVuY3Rpb24oYSl7cmV0dXJuISEoMiZhKSYmISEoNCZhKXx8ISEoMjU2JmEpfTtfLmZpPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9KDImYj9hfDI6YSYtMykmLTI3M307Xy5naT1mdW5jdGlvbihhLGIsYyl7YT1fLnVjKGEsYixjKTtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hOl8uSWV9O18uaGk9ZnVuY3Rpb24oYSxiKXsyJmImJihhfD0yKTtyZXR1cm4gYXwxfTsKXy5paT1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7aWYoYj09bnVsbHx8Yj09IiIpYj1uZXcgYTtlbHNle2I9SlNPTi5wYXJzZShiKTtpZighQXJyYXkuaXNBcnJheShiKSl0aHJvdyBFcnJvcigiRiIpO18ud2IoYiwzMik7Yj1uZXcgYShiKX1yZXR1cm4gYn19O18uamk9ZnVuY3Rpb24oYSl7dmFyIGI9dG9wLmxvY2F0aW9uO2E9Xy5XYyhhKTthIT09dm9pZCAwJiZiLnJlcGxhY2UoYSl9O2tpPWZ1bmN0aW9uKCl7dGhpcy5ibG9ja1NpemU9LTF9OwpuaT1mdW5jdGlvbihhLGIpe3RoaXMuYmxvY2tTaXplPS0xO3RoaXMuYmxvY2tTaXplPTY0O3RoaXMuaT1fLncuVWludDhBcnJheT9uZXcgVWludDhBcnJheSh0aGlzLmJsb2NrU2l6ZSk6QXJyYXkodGhpcy5ibG9ja1NpemUpO3RoaXMuaj10aGlzLmg9MDt0aGlzLmc9W107dGhpcy5vPWE7dGhpcy5sPWI7dGhpcy51PV8udy5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KDY0KTpBcnJheSg2NCk7bGk9PT12b2lkIDAmJihfLncuSW50MzJBcnJheT9saT1uZXcgSW50MzJBcnJheShtaSk6bGk9bWkpO3RoaXMucmVzZXQoKX07cGk9ZnVuY3Rpb24oKXtuaS5jYWxsKHRoaXMsOCxvaSl9O18ucWk9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IHBpO2IudXBkYXRlKGEsYS5sZW5ndGgpO3JldHVybiBXaChiLmRpZ2VzdCgpKX07Cl8ucmk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIik7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKTtjLm1ldGhvZD0icG9zdCI7YT1fLldjKGEpO2EhPT12b2lkIDAmJihjLmFjdGlvbj1hKTtpZihiKXthPU9iamVjdC5rZXlzKGIpO2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hW2RdLGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtmLnR5cGU9ImhpZGRlbiI7Zi5uYW1lPWU7Zi52YWx1ZT1iW2VdLnRvU3RyaW5nKCk7Yy5hcHBlbmRDaGlsZChmKX19Yy5zdWJtaXQoKX07c2k9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7cmV0dXJuIGIhPSJvYmplY3QiP2I6YT9BcnJheS5pc0FycmF5KGEpPyJhcnJheSI6YjoibnVsbCJ9O18udGk9ZnVuY3Rpb24oYSl7dmFyIGI9c2koYSk7cmV0dXJuIGI9PSJhcnJheSJ8fGI9PSJvYmplY3QiJiZ0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIifTtHaD0wO0hoPTA7Cl8udWk9ZnVuY3Rpb24oYSxiLGMpe18uT2goYSk7dmFyIGQ9YS5BO18udGMoZCxkW18uQV18MCxiLGMpO3JldHVybiBhfTtfLnZpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yz09PXZvaWQgMD8hMTpjO3ZhciBkO3JldHVybihkPV8uSmIoXy5MKGEsYikpKSE9bnVsbD9kOmN9O18ud2k9ZnVuY3Rpb24oYSxiKXt2YXIgYz1jPT09dm9pZCAwPzA6Yzt2YXIgZDtyZXR1cm4oZD1fLkxiKF8uTChhLGIpKSkhPW51bGw/ZDpjfTtfLnhpPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uTmIoXy5MKGEsYikpfTtfLnlpPWZ1bmN0aW9uKGEsYixjKXtpZihjIT1udWxsJiZ0eXBlb2YgYyE9PSJib29sZWFuIil0aHJvdyBFcnJvcigieGAiK3NpKGMpKyJgIitjKTtyZXR1cm4gXy51aShhLGIsYyl9O18uUj1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbCYmdHlwZW9mIGMhPT0ic3RyaW5nIil0aHJvdyBFcnJvcigpO3JldHVybiBfLnVpKGEsYixjKX07Cl8uUz1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbCl7aWYoISgwLF8uS2IpKGMpKXRocm93IF8uRWgoImVudW0iKTtjfD0wfXJldHVybiBfLnVpKGEsYixjKX07emk9ZnVuY3Rpb24oKXt0aGlzLmc9W119O3ppLnByb3RvdHlwZS5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLmxlbmd0aH07emkucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuZzt0aGlzLmc9W107cmV0dXJuIGF9O0FpPWZ1bmN0aW9uKCl7dGhpcy5pPVtdO3RoaXMuaD0wO3RoaXMuZz1uZXcgeml9O1FoPVN5bWJvbCgpO1RoPVN5bWJvbCgpO18uQmk9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uWGUoYSw0KX07Xy5DaT1bMCwyLF8uamYsXy5oZiwtMSwxLF8uamYsXy5oZiwxLF8uaGYsLTIsXy5nZl07Xy5EaT1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooXy5EaSxfLkQpOwpfLkRpLnByb3RvdHlwZS5oPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe3ZhciBiPW5ldyBBaTtVaCh0aGlzLkEsYixfLkhjKFFoLFBoLFJoLGEpKTtfLiRlKGIsYi5nLmVuZCgpKTtmb3IodmFyIGM9bmV3IFVpbnQ4QXJyYXkoYi5oKSxkPWIuaSxlPWQubGVuZ3RoLGY9MCxnPTA7ZzxlO2crKyl7dmFyIGg9ZFtnXTtjLnNldChoLGYpO2YrPWgubGVuZ3RofWIuaT1bY107cmV0dXJuIGN9fShfLkNpKTtfLkVpPV8uc2Iodm9pZCAwLCIxb2EiKTtYaD0vXi0/KFsxLTldWzAtOV0qfDApKFwuWzAtOV0rKT8kLzsKXy5GaT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLkEsZj1lLGc9ZVtfLkFdfDAsaD1fLnpiKGEsZyk7ZT1oPzE6ZDtkPWU9PT0zO3ZhciBrPSFoOyhlPT09Mnx8aykmJl8ucmMoYSkmJihmPWEuQSxnPWZbXy5BXXwwKTtoPV8uZ2koZixjKTt2YXIgbT1oPT09Xy5JZT83OmhbXy5BXXwwLG49Xy5oaShtLGcpO2lmKGE9ISg0Jm4pKXt2YXIgcT1oLHA9ZyxyPSEhKDImbik7ciYmKHB8PTIpO2Zvcih2YXIgeD0hcix5PSEwLEM9MCxrYT0wO0M8cS5sZW5ndGg7QysrKXt2YXIgbmE9Xy5RYihxW0NdLGIscCk7aWYobmEgaW5zdGFuY2VvZiBiKXtpZighcil7dmFyIEFhPV8uemIobmEpO3gmJih4PSFBYSk7eSYmKHk9QWEpfXFba2ErK109bmF9fWthPEMmJihxLmxlbmd0aD1rYSk7bnw9NDtuPXk/biYtNDA5NzpufDQwOTY7bj14P258ODpuJi05fW4hPT1tJiYoXy54YihoLG4pLDImbiYmT2JqZWN0LmZyZWV6ZShoKSk7aWYoayYmISg4Jm58fCFoLmxlbmd0aCYmKGU9PT0xfHwoZSE9PTQ/MDoyJgpufHwhKDE2Jm4pJiYzMiZnKSkpKXtfLmVpKG4pJiYoaD1fLkliKGgpLG49Xy5maShuLGcpLGc9Xy50YyhmLGcsYyxoKSk7Yj1oO2s9bjtmb3IobT0wO208Yi5sZW5ndGg7bSsrKXE9YlttXSxuPV8ucWMocSkscSE9PW4mJihiW21dPW4pO2t8PTg7bj1rPWIubGVuZ3RoP2t8NDA5NjprJi00MDk3O18ueGIoaCxuKX1rPWI9bjtlPT09MXx8KGUhPT00PzA6MiZifHwhKDE2JmIpJiYzMiZnKT9fLmVpKGIpfHwoYnw9IWgubGVuZ3RofHxhJiYhKDQwOTYmYil8fDMyJmcmJiEoNDA5NiZifHwxNiZiKT8yOjI1NixiIT09ayYmXy54YihoLGIpLE9iamVjdC5mcmVlemUoaCkpOihlPT09MiYmXy5laShiKSYmKGg9Xy5JYihoKSxrPTAsYj1fLmZpKGIsZyksZz1fLnRjKGYsZyxjLGgpKSxfLmVpKGIpfHwoZHx8KGJ8PTE2KSxiIT09ayYmXy54YihoLGIpKSk7MiZifHwhKDQwOTYmYnx8MTYmYil8fF8uc2MoZixnKTtyZXR1cm4gaH07Cl8uR2k9ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD9fLlRlOmM7YT1fLkwoYSxiLHZvaWQgMCx2b2lkIDAsXy5kaSk7cmV0dXJuIGEhPW51bGw/YTpjfTtfLkhpPWZ1bmN0aW9uKGEsYixjKXtpZihjIT1udWxsKXtpZih0eXBlb2YgYyE9PSJudW1iZXIiKXRocm93IF8uRWgoImludDMyIik7aWYoISgwLF8uS2IpKGMpKXRocm93IF8uRWgoImludDMyIik7Y3w9MH1yZXR1cm4gXy51aShhLGIsYyl9O18uSWk9ZnVuY3Rpb24oYSxiKXtpZihhKWlmKF8uS2YoYSkpYS5pYSYmXy5PZihhLmlhLGIpO2Vsc2UgaWYoYT1fLiRmKGEpKXt2YXIgYz0wO2I9YiYmYi50b1N0cmluZygpO2Zvcih2YXIgZCBpbiBhLmcpaWYoIWJ8fGQ9PWIpZm9yKHZhciBlPWEuZ1tkXS5jb25jYXQoKSxmPTA7ZjxlLmxlbmd0aDsrK2YpXy5lZyhlW2ZdKSYmKytjfX07Cm1pPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwKMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XTtfLllkKG5pLGtpKTtuaS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmo9dGhpcy5oPTA7dGhpcy5nPV8udy5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KHRoaXMubCk6Xy5jYih0aGlzLmwpfTsKdmFyIEppPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1hLmksYz1hLnUsZD0wLGU9MDtlPGIubGVuZ3RoOyljW2QrK109YltlXTw8MjR8YltlKzFdPDwxNnxiW2UrMl08PDh8YltlKzNdLGU9ZCo0O2ZvcihiPTE2O2I8NjQ7YisrKWQ9Y1tiLTE1XXwwLGU9Y1tiLTJdfDAsY1tiXT0oKGNbYi0xNl18MCkrKChkPj4+N3xkPDwyNSleKGQ+Pj4xOHxkPDwxNCleZD4+PjMpfDApKygoY1tiLTddfDApKygoZT4+PjE3fGU8PDE1KV4oZT4+PjE5fGU8PDEzKV5lPj4+MTApfDApfDA7Yj1hLmdbMF18MDtkPWEuZ1sxXXwwO2U9YS5nWzJdfDA7Zm9yKHZhciBmPWEuZ1szXXwwLGc9YS5nWzRdfDAsaD1hLmdbNV18MCxrPWEuZ1s2XXwwLG09YS5nWzddfDAsbj0wO248NjQ7bisrKXt2YXIgcT0oKGI+Pj4yfGI8PDMwKV4oYj4+PjEzfGI8PDE5KV4oYj4+PjIyfGI8PDEwKSkrKGImZF5iJmVeZCZlKXwwLHA9KG0rKChnPj4+NnxnPDwyNileKGc+Pj4xMXxnPDwyMSleKGc+Pj4yNXxnPDw3KSl8MCkrKCgoZyZoXgp+ZyZrKSsobGlbbl18MCl8MCkrKGNbbl18MCl8MCl8MDttPWs7az1oO2g9ZztnPWYrcHwwO2Y9ZTtlPWQ7ZD1iO2I9cCtxfDB9YS5nWzBdPWEuZ1swXStifDA7YS5nWzFdPWEuZ1sxXStkfDA7YS5nWzJdPWEuZ1syXStlfDA7YS5nWzNdPWEuZ1szXStmfDA7YS5nWzRdPWEuZ1s0XStnfDA7YS5nWzVdPWEuZ1s1XStofDA7YS5nWzZdPWEuZ1s2XStrfDA7YS5nWzddPWEuZ1s3XSttfDB9OwpuaS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMCYmKGI9YS5sZW5ndGgpO3ZhciBjPTAsZD10aGlzLmg7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilmb3IoO2M8YjspdGhpcy5pW2QrK109YS5jaGFyQ29kZUF0KGMrKyksZD09dGhpcy5ibG9ja1NpemUmJihKaSh0aGlzKSxkPTApO2Vsc2UgaWYoXy50aShhKSlmb3IoO2M8Yjspe3ZhciBlPWFbYysrXTtpZighKCJudW1iZXIiPT10eXBlb2YgZSYmMDw9ZSYmMjU1Pj1lJiZlPT0oZXwwKSkpdGhyb3cgRXJyb3IoIlMiKTt0aGlzLmlbZCsrXT1lO2Q9PXRoaXMuYmxvY2tTaXplJiYoSmkodGhpcyksZD0wKX1lbHNlIHRocm93IEVycm9yKCJUIik7dGhpcy5oPWQ7dGhpcy5qKz1ifTsKbmkucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbigpe3ZhciBhPVtdLGI9dGhpcy5qKjg7dGhpcy5oPDU2P3RoaXMudXBkYXRlKF8ua2csNTYtdGhpcy5oKTp0aGlzLnVwZGF0ZShfLmtnLHRoaXMuYmxvY2tTaXplLSh0aGlzLmgtNTYpKTtmb3IodmFyIGM9NjM7Yz49NTY7Yy0tKXRoaXMuaVtjXT1iJjI1NSxiLz0yNTY7SmkodGhpcyk7Zm9yKGM9Yj0wO2M8dGhpcy5vO2MrKylmb3IodmFyIGQ9MjQ7ZD49MDtkLT04KWFbYisrXT10aGlzLmdbY10+PmQmMjU1O3JldHVybiBhfTt2YXIgb2k9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XTtfLllkKHBpLG5pKTtfLktpPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmc9dGhpcy5oPW51bGw7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGIsYyl7YS5oPWI7YS5nPWN9KX07Xy5LaS5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbihhKXtpZighdGhpcy5oKXRocm93IEVycm9yKCJuYSIpO3RoaXMuaChhKTt0aGlzLmRpc3Bvc2UoKX07Xy5LaS5wcm90b3R5cGUucmVqZWN0PWZ1bmN0aW9uKGEpe2lmKCF0aGlzLmcpdGhyb3cgRXJyb3IoIm5hIik7dGhpcy5nKGEpO3RoaXMuZGlzcG9zZSgpfTtfLktpLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5nPXRoaXMuaD1udWxsfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIHBrLHNrLEFrLEJrLENrLERrLEVrLEZrLEdrLEhrLElrLEprLEtrLExrLFRrLFZrLFdrO18ubWs9ZnVuY3Rpb24oYSl7aWYoXy50Yil7dmFyIGI7cmV0dXJuKGI9YVtfLkVpXSkhPW51bGw/YjphW18uRWldPW5ldyBNYXB9aWYoXy5FaSBpbiBhKXJldHVybiBhW18uRWldO2I9bmV3IE1hcDtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxfLkVpLHt2YWx1ZTpifSk7cmV0dXJuIGJ9O18ubms9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1hLmdldChkKTtpZihmIT1udWxsKXJldHVybiBmO2Zvcih2YXIgZz1mPTA7ZzxkLmxlbmd0aDtnKyspe3ZhciBoPWRbZ107Xy51YyhiLGgsZSkhPW51bGwmJihmIT09MCYmKGM9Xy50YyhiLGMsZix2b2lkIDAsZSkpLGY9aCl9YS5zZXQoZCxmKTtyZXR1cm4gZn07Cl8ub2s9ZnVuY3Rpb24oYSl7aWYoIWEuc3RhcnRzV2l0aCgiKV19J1xuIikpdGhyb3cgY29uc29sZS5lcnJvcigibWFsZm9ybWVkIEpTT04gcmVzcG9uc2U6IixhKSxFcnJvcigib2EiKTthPWEuc3Vic3RyaW5nKDUpO3JldHVybiBKU09OLnBhcnNlKGEpfTtwaz1mdW5jdGlvbihhLGIpe3JldHVybiBhPGI/LTE6YT5iPzE6MH07Cl8ucWs9ZnVuY3Rpb24oYSxiKXt2YXIgYz0wO2E9KDAsXy4kZCkoU3RyaW5nKGEpKS5zcGxpdCgiLiIpO2I9KDAsXy4kZCkoU3RyaW5nKGIpKS5zcGxpdCgiLiIpO2Zvcih2YXIgZD1NYXRoLm1heChhLmxlbmd0aCxiLmxlbmd0aCksZT0wO2M9PTAmJmU8ZDtlKyspe3ZhciBmPWFbZV18fCIiLGc9YltlXXx8IiI7ZG97Zj0vKFxkKikoXEQqKSguKikvLmV4ZWMoZil8fFsiIiwiIiwiIiwiIl07Zz0vKFxkKikoXEQqKSguKikvLmV4ZWMoZyl8fFsiIiwiIiwiIiwiIl07aWYoZlswXS5sZW5ndGg9PTAmJmdbMF0ubGVuZ3RoPT0wKWJyZWFrO2M9cGsoZlsxXS5sZW5ndGg9PTA/MDpwYXJzZUludChmWzFdLDEwKSxnWzFdLmxlbmd0aD09MD8wOnBhcnNlSW50KGdbMV0sMTApKXx8cGsoZlsyXS5sZW5ndGg9PTAsZ1syXS5sZW5ndGg9PTApfHxwayhmWzJdLGdbMl0pO2Y9ZlszXTtnPWdbM119d2hpbGUoYz09MCl9cmV0dXJuIGN9OwpfLnJrPWZ1bmN0aW9uKCl7dmFyIGE9Xy5DYSgpO2lmKF8uSmEoKSlyZXR1cm4gXy5TYShhKTthPV8uR2EoYSk7dmFyIGI9Xy5SYShhKTtyZXR1cm4gXy5JYSgpP2IoWyJWZXJzaW9uIiwiT3BlcmEiXSk6Xy5LYSgpP2IoWyJFZGdlIl0pOl8uTGEoKT9iKFsiRWRnIl0pOl8ueigiU2lsayIpP2IoWyJTaWxrIl0pOl8uT2EoKT9iKFsiQ2hyb21lIiwiQ3JpT1MiLCJIZWFkbGVzc0Nocm9tZSJdKTooYT1hWzJdKSYmYVsxXXx8IiJ9O3NrPWZ1bmN0aW9uKGEsYixjKXtpZihiJjIpdGhyb3cgRXJyb3IoKTt2YXIgZD1iJjEyOD9fLkxjOnZvaWQgMCxlPV8uZ2koYSxjLGQpLGY9ZT09PV8uSWU/NzplW18uQV18MCxnPV8uaGkoZixiKTtpZigyJmd8fF8uZWkoZyl8fDE2JmcpZz09PWZ8fF8uZWkoZyl8fF8ueGIoZSxnKSxlPV8uSWIoZSksZj0wLGc9Xy5maShnLGIpLF8udGMoYSxiLGMsZSxkKTtnJj0tMTM7ZyE9PWYmJl8ueGIoZSxnKTtyZXR1cm4gZX07Cl8udGs9ZnVuY3Rpb24oYSl7Xy5PYz1hPT09dm9pZCAwPyJ3YXJuIjphfTtfLnVrPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlICJhdXRvIjpyZXR1cm4gMTtjYXNlICJ1c2VyXzJ0YXAiOnJldHVybiA2O2Nhc2UgInVzZXJfMXRhcCI6cmV0dXJuIDU7Y2FzZSAiYnRuIjpyZXR1cm4gNztjYXNlICJidG5fY29uZmlybSI6cmV0dXJuIDg7Y2FzZSAiYnRuX2FkZF9zZXNzaW9uIjpyZXR1cm4gOTtjYXNlICJidG5fY29uZmlybV9hZGRfc2Vzc2lvbiI6cmV0dXJuIDEwO2Nhc2UgIml0cCI6cmV0dXJuIDExO2RlZmF1bHQ6cmV0dXJuIDJ9fTtfLnZrPWZ1bmN0aW9uKGEpe3ZhciBiPXt9O2lmKGEpZm9yKHZhciBjPV8udShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZD1kLnZhbHVlLGFbZF0hPT12b2lkIDAmJmFbZF0hPT0iIiYmKGJbZF09YVtkXSk7cmV0dXJuIGJ9OwpfLnhrPWZ1bmN0aW9uKGEsYil7YT1uZXcgXy5oZChhKTtiJiZfLmtkKGEsXy53ayhfLnZrKGIpKSk7cmV0dXJuIGEudG9TdHJpbmcoKX07Cl8ueWs9ZnVuY3Rpb24oKXt2YXIgYTtpZighKGE9Xy5QYSgpfHwoXy56KCJpUGFkIil8fF8ueigiaVBob25lIikpJiYhXy5QYSgpJiYhXy5PYSgpJiYhKF8uSGEoKT8wOl8ueigiQ29hc3QiKSkmJiFfLk5hKCkmJl8ueigiQXBwbGVXZWJLaXQiKSkmJihhPV8uWWEoKSkpe2E9Xy5DYSgpO3ZhciBiPSIiOyhfLlZhKCk/Xy5FYS5wbGF0Zm9ybT09PSJXaW5kb3dzIjpfLnooIldpbmRvd3MiKSk/KGI9L1dpbmRvd3MgKD86TlR8UGhvbmUpIChbMC05Ll0rKS8sYj0oYT1iLmV4ZWMoYSkpP2FbMV06IjAuMCIpOl8uWWEoKT8oYj0vKD86aVBob25lfGlQb2R8aVBhZHxDUFUpXHMrT1NccysoXFMrKS8sYj0oYT1iLmV4ZWMoYSkpJiZhWzFdLnJlcGxhY2UoL18vZywiLiIpKTpfLlphKCk/KGI9L01hYyBPUyBYIChbMC05Xy5dKykvLGI9KGE9Yi5leGVjKGEpKT9hWzFdLnJlcGxhY2UoL18vZywiLiIpOiIxMCIpOl8uQ2EoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImthaW9zIikhPS0xPyhiPS8oPzpLYWlPUylcLyhcUyspL2ksCmI9KGE9Yi5leGVjKGEpKSYmYVsxXSk6Xy5XYSgpPyhiPS9BbmRyb2lkXHMrKFteXCk7XSspKFwpfDspLyxiPShhPWIuZXhlYyhhKSkmJmFbMV0pOl8uJGEoKSYmKGI9Lyg/OkNyT1NccysoPzppNjg2fHg4Nl82NClccysoWzAtOS5dKykpLyxiPShhPWIuZXhlYyhhKSkmJmFbMV0pO2E9Xy5xayhifHwiIiwiMTQuNCIpPj0wfXJldHVybiBhfHxfLk5hKCkmJl8ucWsoXy5yaygpLCIxMDAiKT49MH07Xy56az1mdW5jdGlvbihhLGIpe3JldHVybiBfLlMoYSwzLGIpfTsKQWs9ZnVuY3Rpb24oYSl7aWYoYS5uYSYmdHlwZW9mIGEubmE9PSJmdW5jdGlvbiIpcmV0dXJuIGEubmEoKTtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXB8fHR5cGVvZiBTZXQhPT0idW5kZWZpbmVkIiYmYSBpbnN0YW5jZW9mIFNldClyZXR1cm4gQXJyYXkuZnJvbShhLnZhbHVlcygpKTtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiBhLnNwbGl0KCIiKTtpZihfLnRpKGEpKXtmb3IodmFyIGI9W10sYz1hLmxlbmd0aCxkPTA7ZDxjO2QrKyliLnB1c2goYVtkXSk7cmV0dXJuIGJ9Yj1bXTtjPTA7Zm9yKGQgaW4gYSliW2MrK109YVtkXTtyZXR1cm4gYn07CkJrPWZ1bmN0aW9uKGEpe2lmKGEuVWEmJnR5cGVvZiBhLlVhPT0iZnVuY3Rpb24iKXJldHVybiBhLlVhKCk7aWYoIWEubmF8fHR5cGVvZiBhLm5hIT0iZnVuY3Rpb24iKXtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXApcmV0dXJuIEFycmF5LmZyb20oYS5rZXlzKCkpO2lmKCEodHlwZW9mIFNldCE9PSJ1bmRlZmluZWQiJiZhIGluc3RhbmNlb2YgU2V0KSl7aWYoXy50aShhKXx8dHlwZW9mIGE9PT0ic3RyaW5nIil7dmFyIGI9W107YT1hLmxlbmd0aDtmb3IodmFyIGM9MDtjPGE7YysrKWIucHVzaChjKTtyZXR1cm4gYn1iPVtdO2M9MDtmb3IodmFyIGQgaW4gYSliW2MrK109ZDtyZXR1cm4gYn19fTtDaz0vXmh0dHBzPyQvaTtEaz1bIlBPU1QiLCJQVVQiXTtFaz1bXTtGaz1mdW5jdGlvbihhKXthLk1ifHwoYS5NYj0hMCxhLmRpc3BhdGNoRXZlbnQoImNvbXBsZXRlIiksYS5kaXNwYXRjaEV2ZW50KCJlcnJvciIpKX07CkdrPWZ1bmN0aW9uKGEsYil7aWYoYS5JKXthLkRhJiYoY2xlYXJUaW1lb3V0KGEuRGEpLGEuRGE9bnVsbCk7dmFyIGM9YS5JO2EuST1udWxsO2J8fGEuZGlzcGF0Y2hFdmVudCgicmVhZHkiKTt0cnl7Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbH1jYXRjaChkKXt9fX07SGs9ZnVuY3Rpb24oYSl7YS5xYT0hMTthLkkmJihhLkFhPSEwLGEuSS5hYm9ydCgpLGEuQWE9ITEpO0ZrKGEpO0drKGEpfTtJaz1mdW5jdGlvbihhKXtyZXR1cm4gYS5JP2EuSS5yZWFkeVN0YXRlOjB9OwpKaz1mdW5jdGlvbihhKXtpZihhLnFhJiZ0eXBlb2YgXy51YSE9InVuZGVmaW5lZCIpaWYoYS51YiYmSWsoYSk9PTQpc2V0VGltZW91dChhLmpkLmJpbmQoYSksMCk7ZWxzZSBpZihhLmRpc3BhdGNoRXZlbnQoInJlYWR5c3RhdGVjaGFuZ2UiKSxJayhhKT09NCl7YS5xYT0hMTt0cnl7dmFyIGI9YS5TYygpO2E6c3dpdGNoKGIpe2Nhc2UgMjAwOmNhc2UgMjAxOmNhc2UgMjAyOmNhc2UgMjA0OmNhc2UgMjA2OmNhc2UgMzA0OmNhc2UgMTIyMzp2YXIgYz0hMDticmVhayBhO2RlZmF1bHQ6Yz0hMX12YXIgZDtpZighKGQ9Yykpe3ZhciBlO2lmKGU9Yj09PTApe3ZhciBmPVN0cmluZyhhLlViKS5tYXRjaChfLmVkKVsxXXx8bnVsbDshZiYmXy53LnNlbGYmJl8udy5zZWxmLmxvY2F0aW9uJiYoZj1fLncuc2VsZi5sb2NhdGlvbi5wcm90b2NvbC5zbGljZSgwLC0xKSk7ZT0hQ2sudGVzdChmP2YudG9Mb3dlckNhc2UoKToiIil9ZD1lfWQ/KGEuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSxhLmRpc3BhdGNoRXZlbnQoInN1Y2Nlc3MiKSk6CkZrKGEpfWZpbmFsbHl7R2soYSl9fX07S2s9ZnVuY3Rpb24oYSxiKXtyZXR1cm57dHlwZTpiLGxlbmd0aENvbXB1dGFibGU6YS5sZW5ndGhDb21wdXRhYmxlLGxvYWRlZDphLmxvYWRlZCx0b3RhbDphLnRvdGFsfX07TGs9ZnVuY3Rpb24oKXtfLnVkLmNhbGwodGhpcyk7dGhpcy5oZWFkZXJzPW5ldyBNYXA7dGhpcy5xYT0hMTt0aGlzLkk9bnVsbDt0aGlzLlViPSIiO3RoaXMuQWE9dGhpcy5SYj10aGlzLnViPXRoaXMuTWI9ITE7dGhpcy5tZD0wO3RoaXMuRGE9bnVsbDt0aGlzLmxkPSIiO3RoaXMucmU9dGhpcy5mYz0hMTt0aGlzLkZiPXRoaXMuZWM9bnVsbH07Xy5ZZChMayxfLnVkKTtfLmw9TGsucHJvdG90eXBlO18ubC5LZD1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpO18uYmIoRWssdGhpcyl9O18ubC5zZXRUcnVzdFRva2VuPWZ1bmN0aW9uKGEpe3RoaXMuZWM9YX07Xy5sLnNldEF0dHJpYnV0aW9uUmVwb3J0aW5nPWZ1bmN0aW9uKGEpe3RoaXMuRmI9YX07Cl8ubC5zZW5kPWZ1bmN0aW9uKGEsYixjLGQpe2lmKHRoaXMuSSl0aHJvdyBFcnJvcigiUWAiK3RoaXMuVWIrImAiK2EpO2I9Yj9iLnRvVXBwZXJDYXNlKCk6IkdFVCI7dGhpcy5VYj1hO3RoaXMuTWI9ITE7dGhpcy5xYT0hMDt0aGlzLkk9bmV3IFhNTEh0dHBSZXF1ZXN0O3RoaXMuSS5vbnJlYWR5c3RhdGVjaGFuZ2U9KDAsXy5IZikoKDAsXy5GZCkodGhpcy5qZCx0aGlzKSk7dGhpcy5yZSYmIm9ucHJvZ3Jlc3MiaW4gdGhpcy5JJiYodGhpcy5JLm9ucHJvZ3Jlc3M9KDAsXy5IZikoKDAsXy5GZCkoZnVuY3Rpb24oZyl7dGhpcy5nZChnLCEwKX0sdGhpcykpLHRoaXMuSS51cGxvYWQmJih0aGlzLkkudXBsb2FkLm9ucHJvZ3Jlc3M9KDAsXy5IZikoKDAsXy5GZCkodGhpcy5nZCx0aGlzKSkpKTt0cnl7dGhpcy5SYj0hMCx0aGlzLkkub3BlbihiLFN0cmluZyhhKSwhMCksdGhpcy5SYj0hMX1jYXRjaChnKXtIayh0aGlzKTtyZXR1cm59YT1jfHwiIjtjPW5ldyBNYXAodGhpcy5oZWFkZXJzKTsKaWYoZClpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZCk9PT1PYmplY3QucHJvdG90eXBlKWZvcih2YXIgZSBpbiBkKWMuc2V0KGUsZFtlXSk7ZWxzZSBpZih0eXBlb2YgZC5rZXlzPT09ImZ1bmN0aW9uIiYmdHlwZW9mIGQuZ2V0PT09ImZ1bmN0aW9uIil7ZT1fLnUoZC5rZXlzKCkpO2Zvcih2YXIgZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZj1mLnZhbHVlLGMuc2V0KGYsZC5nZXQoZikpfWVsc2UgdGhyb3cgRXJyb3IoIlJgIitTdHJpbmcoZCkpO2Q9QXJyYXkuZnJvbShjLmtleXMoKSkuZmluZChmdW5jdGlvbihnKXtyZXR1cm4iY29udGVudC10eXBlIj09Zy50b0xvd2VyQ2FzZSgpfSk7ZT1fLncuRm9ybURhdGEmJmEgaW5zdGFuY2VvZiBfLncuRm9ybURhdGE7ISgoMCxfLmFiKShEayxiKT49MCl8fGR8fGV8fGMuc2V0KCJDb250ZW50LVR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIpO2I9Xy51KGMpO2ZvcihkPWIubmV4dCgpOyFkLmRvbmU7ZD0KYi5uZXh0KCkpYz1fLnUoZC52YWx1ZSksZD1jLm5leHQoKS52YWx1ZSxjPWMubmV4dCgpLnZhbHVlLHRoaXMuSS5zZXRSZXF1ZXN0SGVhZGVyKGQsYyk7dGhpcy5sZCYmKHRoaXMuSS5yZXNwb25zZVR5cGU9dGhpcy5sZCk7IndpdGhDcmVkZW50aWFscyJpbiB0aGlzLkkmJnRoaXMuSS53aXRoQ3JlZGVudGlhbHMhPT10aGlzLmZjJiYodGhpcy5JLndpdGhDcmVkZW50aWFscz10aGlzLmZjKTtpZigic2V0VHJ1c3RUb2tlbiJpbiB0aGlzLkkmJnRoaXMuZWMpdHJ5e3RoaXMuSS5zZXRUcnVzdFRva2VuKHRoaXMuZWMpfWNhdGNoKGcpe31pZigic2V0QXR0cmlidXRpb25SZXBvcnRpbmciaW4gdGhpcy5JJiZ0aGlzLkZiKXRyeXt0aGlzLkkuc2V0QXR0cmlidXRpb25SZXBvcnRpbmcodGhpcy5GYil9Y2F0Y2goZyl7fXRyeXt0aGlzLkRhJiYoY2xlYXJUaW1lb3V0KHRoaXMuRGEpLHRoaXMuRGE9bnVsbCksdGhpcy5tZD4wJiYodGhpcy5EYT1zZXRUaW1lb3V0KHRoaXMuRmUuYmluZCh0aGlzKSwKdGhpcy5tZCkpLHRoaXMudWI9ITAsdGhpcy5JLnNlbmQoYSksdGhpcy51Yj0hMX1jYXRjaChnKXtIayh0aGlzKX19O18ubC5GZT1mdW5jdGlvbigpe3R5cGVvZiBfLnVhIT0idW5kZWZpbmVkIiYmdGhpcy5JJiYodGhpcy5kaXNwYXRjaEV2ZW50KCJ0aW1lb3V0IiksdGhpcy5hYm9ydCg4KSl9O18ubC5hYm9ydD1mdW5jdGlvbigpe3RoaXMuSSYmdGhpcy5xYSYmKHRoaXMucWE9ITEsdGhpcy5BYT0hMCx0aGlzLkkuYWJvcnQoKSx0aGlzLkFhPSExLHRoaXMuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSx0aGlzLmRpc3BhdGNoRXZlbnQoImFib3J0IiksR2sodGhpcykpfTtfLmwuaGE9ZnVuY3Rpb24oKXt0aGlzLkkmJih0aGlzLnFhJiYodGhpcy5xYT0hMSx0aGlzLkFhPSEwLHRoaXMuSS5hYm9ydCgpLHRoaXMuQWE9ITEpLEdrKHRoaXMsITApKTtMay51YS5oYS5jYWxsKHRoaXMpfTsKXy5sLmpkPWZ1bmN0aW9uKCl7dGhpcy5YYygpfHwodGhpcy5SYnx8dGhpcy51Ynx8dGhpcy5BYT9Kayh0aGlzKTp0aGlzLnBlKCkpfTtfLmwucGU9ZnVuY3Rpb24oKXtKayh0aGlzKX07Xy5sLmdkPWZ1bmN0aW9uKGEsYil7dGhpcy5kaXNwYXRjaEV2ZW50KEtrKGEsInByb2dyZXNzIikpO3RoaXMuZGlzcGF0Y2hFdmVudChLayhhLGI/ImRvd25sb2FkcHJvZ3Jlc3MiOiJ1cGxvYWRwcm9ncmVzcyIpKX07Xy5sLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLkl9O18ubC5TYz1mdW5jdGlvbigpe3RyeXtyZXR1cm4gSWsodGhpcyk+Mj90aGlzLkkuc3RhdHVzOi0xfWNhdGNoKGEpe3JldHVybi0xfX07Xy5sLmdldFJlc3BvbnNlSGVhZGVyPWZ1bmN0aW9uKGEpe2lmKHRoaXMuSSYmSWsodGhpcyk9PTQpcmV0dXJuIGE9dGhpcy5JLmdldFJlc3BvbnNlSGVhZGVyKGEpLGE9PT1udWxsP3ZvaWQgMDphfTsKXy5sLmdldEFsbFJlc3BvbnNlSGVhZGVycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkkmJklrKHRoaXMpPj0yP3RoaXMuSS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKXx8IiI6IiJ9O18uTWs9ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBhLkk/YS5JLnJlc3BvbnNlVGV4dDoiIn1jYXRjaChiKXtyZXR1cm4iIn19O18uTms9ZnVuY3Rpb24oYSxiKXthPWEuQTtyZXR1cm4gXy5uayhfLm1rKGEpLGEsdm9pZCAwLGIpfTtfLk9rPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5OayhhLGIpPT09Yz9jOi0xfTtfLlBrPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uSmIoXy5MKGEsYix2b2lkIDAsXy5VZSkpfTsKXy53az1mdW5jdGlvbihhKXt2YXIgYj1CayhhKTtpZih0eXBlb2YgYj09InVuZGVmaW5lZCIpdGhyb3cgRXJyb3IoIk4iKTt2YXIgYz1uZXcgXy5uZChudWxsKTthPUFrKGEpO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdLGY9YVtkXTtBcnJheS5pc0FycmF5KGYpP18uR2YoYyxlLGYpOmMuYWRkKGUsZil9cmV0dXJuIGN9O18uUWs9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPW5ldyBMaztFay5wdXNoKGcpO2ImJmcuTSgiY29tcGxldGUiLGIpO2cuVmIoInJlYWR5IixnLktkKTtmJiYoZy5mYz1mKTtnLnNlbmQoYSxjLGQsZSl9O18uUms9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKF8uUmssXy5EKTtfLlNrPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uTWIoXy5MKGEsYix2b2lkIDAsXy5VZSkpfTsKVGs9bmV3IF8uemMoZnVuY3Rpb24oYSxiLGMpe2lmKGEuaCE9PTIpcmV0dXJuITE7YT1hLm8oKTtzayhiLGJbXy5BXXwwLGMpLnB1c2goYSk7cmV0dXJuITB9LGZ1bmN0aW9uKGEsYixjKXtpZihBcnJheS5pc0FycmF5KGIpKXt2YXIgZD1iW18uQV18MDtpZighKGQmNCkpe2Zvcih2YXIgZT0wLGY9MDtlPGIubGVuZ3RoO2UrKyl7dmFyIGc9Xy5OYihiW2VdKTtnIT1udWxsJiYoYltmKytdPWcpfWY8ZSYmKGIubGVuZ3RoPWYpO2U9KGR8NSkmLTE1Mzc7ZSE9PWQmJl8ueGIoYixlKTtlJjImJk9iamVjdC5mcmVlemUoYil9fWVsc2UgYj12b2lkIDA7aWYoYiE9bnVsbClmb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKWU9YSxmPWMsZz1iW2RdLGchPW51bGwmJl8uYWYoZSxmLF8uemEoZykpfSxfLmNmKTtWaz12b2lkIDA7Vms9Vms9PT12b2lkIDA/Xy55YzpWazsKXy5Vaz1uZXcgXy56YyhmdW5jdGlvbihhLGIsYyxkLGUpe2lmKGEuaCE9PTIpcmV0dXJuITE7dmFyIGY9YS5sO2Q9Xy5pYyh2b2lkIDAsZCk7c2soYixiW18uQV18MCxjKS5wdXNoKGQpO2YuY2FsbChhLGQsZSk7cmV0dXJuITB9LGZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShiKSl7Zm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBnPWEsaD1jLGs9ZSxtPV8uQmMoYltmXSxkKTttIT1udWxsJiYoaD1fLkNjKGcsaCksayhtLGcpLF8uRGMoZyxoKSl9YT1iW18uQV18MDthJjF8fF8ueGIoYixhfDEpfX0sVmspO1drPVswLF8uaGZdO18uWGs9WzAsXy5oZiwtMl07Xy5Zaz1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooXy5ZayxfLkQpO18ubD1fLllrLnByb3RvdHlwZTtfLmwudGI9ZnVuY3Rpb24oKXtyZXR1cm4gXy5OKHRoaXMsMSl9O18ubC5QYj1mdW5jdGlvbigpe3JldHVybiBfLnhpKHRoaXMsMSl9OwpfLmwuTmM9ZnVuY3Rpb24oKXtyZXR1cm4gXy5OKHRoaXMsMyl9O18ubC5SZD1mdW5jdGlvbigpe3JldHVybiBfLnhpKHRoaXMsMyl9O18ubC5QYz1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcyw0KX07Xy5sLlNkPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueGkodGhpcyw0KX07Xy5sLlRkPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueGkodGhpcyw2KX07Xy5sLmRhPWZ1bmN0aW9uKCl7cmV0dXJuIF8uUGsodGhpcyw3KX07Xy5aaz1bMCxfLmhmLC01LF8uZ2YsV2ssVGssXy5oZixfLmdmLFRrLF8uZ2YsLTEsVGssLTFdOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewovKgogQ29weXJpZ2h0IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0aG9ycy4KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciAkayxnbCxpbCxsbCxhbCxmbDskaz1mdW5jdGlvbigpe3ZhciBhPW51bGw7aWYoIV8ua2YpcmV0dXJuIGE7dHJ5e3ZhciBiPWZ1bmN0aW9uKGMpe3JldHVybiBjfTthPV8ua2YuY3JlYXRlUG9saWN5KCJnb29nI2h0bWwiLHtjcmVhdGVIVE1MOmIsY3JlYXRlU2NyaXB0OmIsY3JlYXRlU2NyaXB0VVJMOmJ9KX1jYXRjaChjKXt9cmV0dXJuIGF9O18uYmw9ZnVuY3Rpb24oKXthbD09PXZvaWQgMCYmKGFsPSRrKCkpO3JldHVybiBhbH07Xy5kbD1mdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgXy5jbCYmYSBpbnN0YW5jZW9mIF8uY2x9O18uZWw9ZnVuY3Rpb24oYSl7aWYoXy5kbChhKSlyZXR1cm4gYS5nO3Rocm93IEVycm9yKCJHIik7fTtnbD1mdW5jdGlvbihhKXt2YXIgYj1fLmJsKCk7YT1iP2IuY3JlYXRlSFRNTChhKTphO3JldHVybiBuZXcgZmwoYSl9OwpfLmhsPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBmbClyZXR1cm4gYS5nO3Rocm93IEVycm9yKCJHIik7fTtpbD1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGZsP2E6Z2woU3RyaW5nKGEpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJmFwb3M7IikpfTsKbGw9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD1hLmxlbmd0aCxlPTAsZj1bXSxnLGgsaz0wO2s8ZDspe3N3aXRjaChlKXtjYXNlIDA6dmFyIG09YS5pbmRleE9mKCI8IixrKTtpZihtPDApe2lmKGMubGVuZ3RoPT09MClyZXR1cm4gYTtjLnB1c2goYS5zdWJzdHJpbmcoaykpO2s9ZH1lbHNlIGMucHVzaChhLnN1YnN0cmluZyhrLG0pKSxoPW0saz1tKzEsamw/KGtsLmxhc3RJbmRleD1rLG09a2wuZXhlYyhhKSk6KGtsLmxhc3RJbmRleD0wLG09a2wuZXhlYyhhLnN1YnN0cmluZyhrKSkpLG0/KGY9WyI8IixtWzBdXSxnPW1bMV0sZT0xLGsrPW1bMF0ubGVuZ3RoKTpjLnB1c2goIjwiKTticmVhaztjYXNlIDE6bT1hLmNoYXJBdChrKyspO3N3aXRjaChtKXtjYXNlICInIjpjYXNlICciJzp2YXIgbj1hLmluZGV4T2YobSxrKTtuPDA/az1kOihmLnB1c2gobSxhLnN1YnN0cmluZyhrLG4rMSkpLGs9bisxKTticmVhaztjYXNlICI+IjpmLnB1c2gobSk7Yy5wdXNoKGIoZi5qb2luKCIiKSwKZykpO2U9MDtmPVtdO2g9Zz1udWxsO2JyZWFrO2RlZmF1bHQ6Zi5wdXNoKG0pfWJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoKTt9ZT09PTEmJms+PWQmJihrPWgrMSxjLnB1c2goIjwiKSxlPTAsZj1bXSxoPWc9bnVsbCl9cmV0dXJuIGMuam9pbigiIil9O18ub2w9ZnVuY3Rpb24oYSxiLGMsZCl7KGI9YihjfHxtbCxkKSkmJmIuaSYmYT9iLmkoYSk6KGI9Xy5ubChiKSxhLmlubmVySFRNTD1fLmhsKGIpKX07Xy5ubD1mdW5jdGlvbihhKXtyZXR1cm4gXy5VZChhKT9hLm5kJiYoYT1hLm5kKCksYSBpbnN0YW5jZW9mIGZsKT9hOmlsKCJ6U295eiIpOmlsKFN0cmluZyhhKSl9O18ucGw9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGU7cmV0dXJue2lkOihiPWEuUGIoKSkhPW51bGw/YjpudWxsLGdpdmVuTmFtZTooYz1hLlNkKCkpIT1udWxsP2M6bnVsbCxkaXNwbGF5TmFtZTooZD1hLlJkKCkpIT1udWxsP2Q6bnVsbCxwcm9maWxlUGljdHVyZTooZT1hLlRkKCkpIT1udWxsP2U6bnVsbH19OwpmbD1mdW5jdGlvbihhKXt0aGlzLmc9YX07ZmwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZysiIn07Xy5ybD1mdW5jdGlvbihhLGIpe3JldHVybihifHxkb2N1bWVudCkucXVlcnlTZWxlY3RvckFsbCgiLiIrYSl9O18uc2w9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHxkb2N1bWVudDtjLmdldEVsZW1lbnRzQnlDbGFzc05hbWU/YT1jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYSlbMF06KGM9ZG9jdW1lbnQsYT9hPShifHxjKS5xdWVyeVNlbGVjdG9yKGE/Ii4iK2E6IiIpOihiPWJ8fGMsYT0oYT9iLnF1ZXJ5U2VsZWN0b3JBbGwoYT8iLiIrYToiIik6Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKVswXXx8bnVsbCkpO3JldHVybiBhfHxudWxsfTtfLnRsPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYjtiPWEuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChiKX07Cl8udWw9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEucGFyZW50Tm9kZT9hLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSk6bnVsbH07Xy52bD1mdW5jdGlvbihhLGIpe2lmKCFhfHwhYilyZXR1cm4hMTtpZihhLmNvbnRhaW5zJiZiLm5vZGVUeXBlPT0xKXJldHVybiBhPT1ifHxhLmNvbnRhaW5zKGIpO2lmKHR5cGVvZiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIT0idW5kZWZpbmVkIilyZXR1cm4gYT09Ynx8ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik7Zm9yKDtiJiZhIT1iOyliPWIucGFyZW50Tm9kZTtyZXR1cm4gYj09YX07Xy53bD1mdW5jdGlvbigpe3RoaXMuZz1fLncuZG9jdW1lbnR8fGRvY3VtZW50fTtfLndsLnByb3RvdHlwZS5hcHBlbmRDaGlsZD1mdW5jdGlvbihhLGIpe2EuYXBwZW5kQ2hpbGQoYil9O18ud2wucHJvdG90eXBlLmg9Xy51bDtfLndsLnByb3RvdHlwZS5jb250YWlucz1fLnZsO3ZhciBBbDtfLnhsPXt9O18ueWw9e307Xy56bD17fTtBbD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJzYSIpO307QWwucHJvdG90eXBlLkVjPW51bGw7QWwucHJvdG90eXBlLlRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07QWwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07QWwucHJvdG90eXBlLm5kPWZ1bmN0aW9uKCl7aWYodGhpcy5GYyE9PV8ueGwpdGhyb3cgRXJyb3IoInRhIik7cmV0dXJuIGdsKHRoaXMudG9TdHJpbmcoKSl9O3ZhciBCbD1mdW5jdGlvbigpe0FsLmNhbGwodGhpcyl9O18uWWQoQmwsQWwpO0JsLnByb3RvdHlwZS5GYz1fLnhsO3ZhciBIbCxqbCxrbCxPbCxQbCxGbCxRbCxFbCxSbCxNbCxHbDtfLkNsPWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwpc3dpdGNoKGEuRWMpe2Nhc2UgMTpyZXR1cm4gMTtjYXNlIC0xOnJldHVybi0xO2Nhc2UgMDpyZXR1cm4gMH1yZXR1cm4gbnVsbH07Xy5WPWZ1bmN0aW9uKGEpe3JldHVybiBfLkRsKGEsXy54bCk/YTphIGluc3RhbmNlb2YgZmw/KDAsXy5VKShfLmhsKGEpLnRvU3RyaW5nKCkpOigwLF8uVSkoU3RyaW5nKFN0cmluZyhhKSkucmVwbGFjZShFbCxGbCksXy5DbChhKSl9O18uVT1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGMpe3RoaXMuY29udGVudD1jfWIucHJvdG90eXBlPWEucHJvdG90eXBlO3JldHVybiBmdW5jdGlvbihjLGQpe2M9bmV3IGIoU3RyaW5nKGMpKTtkIT09dm9pZCAwJiYoYy5FYz1kKTtyZXR1cm4gY319KEJsKTtIbD1mdW5jdGlvbihhKXtyZXR1cm4gbGwoU3RyaW5nKGEpLGZ1bmN0aW9uKCl7cmV0dXJuIiJ9KS5yZXBsYWNlKEdsLCImbHQ7Iil9O2psPVJlZ0V4cC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInN0aWNreSIpOwprbD1uZXcgUmVnRXhwKChqbD8iIjoiXiIpKyIoPzohfC8/KFthLXpBLVpdW2EtekEtWjAtOTotXSopKSIsamw/Imd5IjoiZyIpO18uVz1mdW5jdGlvbihhKXtyZXR1cm4gXy5EbChhLF8ueGwpP18uSWwoSGwoYS5UYSgpKSk6U3RyaW5nKGEpLnJlcGxhY2UoRWwsRmwpfTtfLkxsPWZ1bmN0aW9uKGEpe3JldHVybiBTdHJpbmcoYSkucmVwbGFjZShfLkpsLF8uS2wpfTtfLk5sPWZ1bmN0aW9uKGEpe18uRGwoYSxfLnlsKXx8Xy5EbChhLF8uemwpP2E9U3RyaW5nKGEpLnJlcGxhY2UoXy5KbCxfLktsKTphIGluc3RhbmNlb2YgXy5SYz9hPV8uTGwoXy5TYyhhKSk6ImZ1bmN0aW9uIj09dHlwZW9mIF8uY2wmJmEgaW5zdGFuY2VvZiBfLmNsP2E9Xy5MbChfLmVsKGEpLnRvU3RyaW5nKCkpOihhPVN0cmluZyhhKSxhPU1sLnRlc3QoYSk/YS5yZXBsYWNlKF8uSmwsXy5LbCk6ImFib3V0OmludmFsaWQjelNveXoiKTtyZXR1cm4gYX07Cl8uRGw9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSE9bnVsbCYmYS5GYz09PWJ9O09sPWZ1bmN0aW9uKCl7QWwuY2FsbCh0aGlzKX07Xy5KKE9sLEJsKTtfLlg9ZnVuY3Rpb24oYSxiKXthLmchPT12b2lkIDA/YS5nLnB1c2goYik6YS5jb250ZW50Kz1iO3JldHVybiBhfTtfLlk9ZnVuY3Rpb24oYSxiKXthLmchPT12b2lkIDA/YS5nLnB1c2goYik6YiBpbnN0YW5jZW9mIE9sP2IuY29udGVudCE9PXZvaWQgMD9hLmNvbnRlbnQrPWIuVGEoKTooYS5nPVthLmNvbnRlbnQsYl0sYS5jb250ZW50PXZvaWQgMCk6YS5jb250ZW50Kz1iO3JldHVybiBhfTtPbC5wcm90b3R5cGUuVGE9ZnVuY3Rpb24oKXtpZih0aGlzLmNvbnRlbnQhPT12b2lkIDApcmV0dXJuIHRoaXMuY29udGVudDtmb3IodmFyIGE9IiIsYj1fLnUodGhpcy5nKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlhKz1jLnZhbHVlO3JldHVybiBhfTtPbC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UYSgpfTsKXy5aPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3RoaXMuY29udGVudD0iIn1hLnByb3RvdHlwZT1PbC5wcm90b3R5cGU7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBhfX0oKTtQbD17Ilx4MDAiOiImIzA7IiwiXHQiOiImIzk7IiwiXG4iOiImIzEwOyIsIlx2IjoiJiMxMTsiLCJcZiI6IiYjMTI7IiwiXHIiOiImIzEzOyIsIiAiOiImIzMyOyIsJyInOiImcXVvdDsiLCImIjoiJmFtcDsiLCInIjoiJiMzOTsiLCItIjoiJiM0NTsiLCIvIjoiJiM0NzsiLCI8IjoiJmx0OyIsIj0iOiImIzYxOyIsIj4iOiImZ3Q7IiwiYCI6IiYjOTY7IiwiXHUwMDg1IjoiJiMxMzM7IiwiXHUwMGEwIjoiJiMxNjA7IiwiXHUyMDI4IjoiJiM4MjMyOyIsIlx1MjAyOSI6IiYjODIzMzsifTtGbD1mdW5jdGlvbihhKXtyZXR1cm4gUGxbYV19OwpRbD17Ilx4MDAiOiIlMDAiLCJcdTAwMDEiOiIlMDEiLCJcdTAwMDIiOiIlMDIiLCJcdTAwMDMiOiIlMDMiLCJcdTAwMDQiOiIlMDQiLCJcdTAwMDUiOiIlMDUiLCJcdTAwMDYiOiIlMDYiLCJcdTAwMDciOiIlMDciLCJcYiI6IiUwOCIsIlx0IjoiJTA5IiwiXG4iOiIlMEEiLCJcdiI6IiUwQiIsIlxmIjoiJTBDIiwiXHIiOiIlMEQiLCJcdTAwMGUiOiIlMEUiLCJcdTAwMGYiOiIlMEYiLCJcdTAwMTAiOiIlMTAiLCJcdTAwMTEiOiIlMTEiLCJcdTAwMTIiOiIlMTIiLCJcdTAwMTMiOiIlMTMiLCJcdTAwMTQiOiIlMTQiLCJcdTAwMTUiOiIlMTUiLCJcdTAwMTYiOiIlMTYiLCJcdTAwMTciOiIlMTciLCJcdTAwMTgiOiIlMTgiLCJcdTAwMTkiOiIlMTkiLCJcdTAwMWEiOiIlMUEiLCJcdTAwMWIiOiIlMUIiLCJcdTAwMWMiOiIlMUMiLCJcdTAwMWQiOiIlMUQiLCJcdTAwMWUiOiIlMUUiLCJcdTAwMWYiOiIlMUYiLCIgIjoiJTIwIiwnIic6IiUyMiIsIiciOiIlMjciLCIoIjoiJTI4IiwiKSI6IiUyOSIsCiI8IjoiJTNDIiwiPiI6IiUzRSIsIlxcIjoiJTVDIiwieyI6IiU3QiIsIn0iOiIlN0QiLCJcdTAwN2YiOiIlN0YiLCJcdTAwODUiOiIlQzIlODUiLCJcdTAwYTAiOiIlQzIlQTAiLCJcdTIwMjgiOiIlRTIlODAlQTgiLCJcdTIwMjkiOiIlRTIlODAlQTkiLCJcdWZmMDEiOiIlRUYlQkMlODEiLCJcdWZmMDMiOiIlRUYlQkMlODMiLCJcdWZmMDQiOiIlRUYlQkMlODQiLCJcdWZmMDYiOiIlRUYlQkMlODYiLCJcdWZmMDciOiIlRUYlQkMlODciLCJcdWZmMDgiOiIlRUYlQkMlODgiLCJcdWZmMDkiOiIlRUYlQkMlODkiLCJcdWZmMGEiOiIlRUYlQkMlOEEiLCJcdWZmMGIiOiIlRUYlQkMlOEIiLCJcdWZmMGMiOiIlRUYlQkMlOEMiLCJcdWZmMGYiOiIlRUYlQkMlOEYiLCJcdWZmMWEiOiIlRUYlQkMlOUEiLCJcdWZmMWIiOiIlRUYlQkMlOUIiLCJcdWZmMWQiOiIlRUYlQkMlOUQiLCJcdWZmMWYiOiIlRUYlQkMlOUYiLCJcdWZmMjAiOiIlRUYlQkMlQTAiLCJcdWZmM2IiOiIlRUYlQkMlQkIiLAoiXHVmZjNkIjoiJUVGJUJDJUJEIn07Xy5LbD1mdW5jdGlvbihhKXtyZXR1cm4gUWxbYV19O0VsPS9bXHgwMFx4MjJceDI2XHgyN1x4M2NceDNlXS9nO1JsPS9bXHgwMFx4MjJceDI3XHgzY1x4M2VdL2c7Xy5KbD0vW1x4MDAtIFx4MjJceDI3LVx4MjlceDNjXHgzZVxcXHg3Ylx4N2RceDdmXHg4NVx4YTBcdTIwMjhcdTIwMjlcdWZmMDFcdWZmMDNcdWZmMDRcdWZmMDYtXHVmZjBjXHVmZjBmXHVmZjFhXHVmZjFiXHVmZjFkXHVmZjFmXHVmZjIwXHVmZjNiXHVmZjNkXS9nO01sPS9eW14mOlwvPyNdKig/OltcLz8jXXwkKXxeaHR0cHM/OnxeZmlsZXN5c3RlbTpodHRwcz86fF5mdHA6fF5kYXRhOmltYWdlXC9bYS16MC05Ky1dKztiYXNlNjQsW2EtejAtOStcL10rPSokfF5ibG9iOi9pO18uSWw9ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKS5yZXBsYWNlKFJsLEZsKX07R2w9LzwvZztfLlNsPSIwIi5jb2RlUG9pbnRBdCgwKTt2YXIgVGw7VGw9ZnVuY3Rpb24oYSl7cmV0dXJuIGElMTA9PTEmJmElMTAwIT0xMT8ib25lIjphJTEwPT0yJiZhJTEwMCE9MTI/InR3byI6YSUxMD09MyYmYSUxMDAhPTEzPyJmZXciOiJvdGhlciJ9O18uVWw9VGw9ZnVuY3Rpb24oKXtyZXR1cm4ib3RoZXIifTt2YXIgVmw7Vmw9ZnVuY3Rpb24oYSxiKXtpZih2b2lkIDA9PT1iKXtiPWErIiI7dmFyIGM9Yi5pbmRleE9mKCIuIik7Yj1NYXRoLm1pbihjPT09LTE/MDpiLmxlbmd0aC1jLTEsMyl9Yz1NYXRoLnBvdygxMCxiKTtiPXtLZTpiLGY6KGEqY3wwKSVjfTtyZXR1cm4oYXwwKT09MSYmYi5LZT09MD8ib25lIjoib3RoZXIifTtfLldsPVZsPWZ1bmN0aW9uKGEpe3JldHVybiBhPT0xPyJvbmUiOiJvdGhlciJ9O18uWGw9UmVnRXhwKCInKFt7fSNdLio/KSciLCJnIik7Xy5ZbD1SZWdFeHAoIicnIiwiZyIpO3ZhciBtbD17fTtfLlpsPWZ1bmN0aW9uKGEpe2E9YXx8e307cmV0dXJuKGE9YS5pZGVudGlmaWVyKT8iTG9nZ2V0IHBcdTAwZTUgc29tICIrYToiUFx1MDBlNWxvZ2dldCJ9O18uJGw9ZnVuY3Rpb24oYSl7cmV0dXJuKDAsXy5VKSgoYT8nPHN2ZyBjbGFzcz0iJytfLlcoIkJ6MTEyYyIpKyIgIitfLlcoIkJ6MTEyYy1FM0R5WWQiKSsiICIrXy5XKCJCejExMmMtdWF4TDRlIikrJyIgYXJpYS1oaWRkZW49dHJ1ZSB2aWV3Qm94PSIwIDAgMTkyIDE5MiI+JzonPHN2ZyBjbGFzcz0iJytfLlcoImZGVzd3Yy1pYm5DNmItSGlhWXZmIikrIiAiK18uVygielRFVGFlLW16TnBzZi1CejExMmMiKSsiICIrXy5XKCJuMVV1WC1Ea2ZqWSIpKyciIGFyaWEtaGlkZGVuPXRydWUgdmlld0JveD0iMCAwIDE5MiAxOTIiPicpKyc8cGF0aCBmaWxsPSIjMzE4NUZGIiBkPSJNOTYgOEM0Ny40MiA4IDggNDcuNDIgOCA5NnMzOS40MiA4OCA4OCA4OCA4OC0zOS40MiA4OC04OFMxNDQuNTggOCA5NiA4eiIvPjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik05NiA4NmMxMi4xNyAwIDIyLTkuODMgMjItMjJzLTkuODMtMjItMjItMjItMjIgOS44My0yMiAyMiA5LjgzIDIyIDIyIDIyek05NiA5OWMtMjYuODkgMC00OCAxMy00OCAyNSAxMC4xNyAxNS42NCAyNy45NyAyNiA0OCAyNnMzNy44My0xMC4zNiA0OC0yNmMwLTEyLTIxLjExLTI1LTQ4LTI1eiIvPjwvc3ZnPicpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGRtLGhtLGltLGptLGttO18uYW09ZnVuY3Rpb24oKXtyZXR1cm4hW18uT2EoKSYmIV8ueWQoKSYmIV8ueGQoKSxfLk9hKCkmJl8uV2EoKSxfLkthKCldLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGF9KX07Cl8uZW09ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD8hMDpjO2lmKGImJl8uTyhiLDcpPT09Mil7Yz1jPT09dm9pZCAwPyEwOmM7dmFyIGQ9e307YiYmKGQ9e2VkOl8uTyhiLDYpLHNoYXBlOl8uTyhiLDMpLHNpemU6Xy5PKGIsMSksdGV4dDpfLk8oYiw1KSx0aGVtZTpfLk8oYiwyKSx3aWR0aDpfLlNrKGIsNCksU2E6Y30pO18ub2woYSxibSxkKX1lbHNlIGImJl8uTyhiLDEwKT09PTImJiFfLkkoImRpc2FibGVfcGVyc29uYWxpemVkX2J1dHRvbiIpPyhjPWM9PT12b2lkIDA/ITA6YyxiJiZfLlZlKGIsXy5Zayw4KT8oZD17fSxiJiYoZD17c2hhcGU6Xy5PKGIsMyksdGV4dDpfLk8oYiw1KSx0aGVtZTpfLk8oYiwyKSx3aWR0aDpfLlNrKGIsNCkseGU6Xy5wbChfLk0oYixfLllrLDgpKSx5ZTpfLlNrKGIsOSksU2E6Y30pLF8ub2woYSxjbSxkKSk6ZG0oYSxiLGMpKTpkbShhLGIsYyl9OwpkbT1mdW5jdGlvbihhLGIsYyl7Yz1jPT09dm9pZCAwPyEwOmM7dmFyIGQ9e307YiYmKGQ9e2VkOl8uTyhiLDYpLHNoYXBlOl8uTyhiLDMpLHNpemU6Xy5PKGIsMSksdGV4dDpfLk8oYiw1KSx0aGVtZTpfLk8oYiwyKSx3aWR0aDpfLlNrKGIsNCksU2E6Y30pO18ub2woYSxmbSxkKX07Xy5nbT1mdW5jdGlvbihhKXtyZXR1cm4gXy54aShhLDEpfTtobT17fTtpbT1mdW5jdGlvbihhLGIpe2E9YS5yZXBsYWNlKC88XC8vZywiPFxcLyIpLnJlcGxhY2UoL1xdXF0+L2csIl1dXFw+Iik7cmV0dXJuIGI/YS5yZXBsYWNlKC97L2csIiBcXHsiKS5yZXBsYWNlKC99L2csIiBcXH0iKS5yZXBsYWNlKC9cL1wqL2csIi8gKiIpLnJlcGxhY2UoL1xcJC8sIlxcICIpOmF9O2ptPWZ1bmN0aW9uKGEpe3JldHVybiBfLkRsKGEsaG0pP2ltKGEuVGEoKSwhMSk6YT09bnVsbD8iIjppbShTdHJpbmcoYSksITApfTsKa209ZnVuY3Rpb24oKXtyZXR1cm4oMCxfLlUpKCc8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDggNDgiIGNsYXNzPSInK18uVygiTGdic1NlLUJ6MTEyYyIpKyciPjxnPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Ik0yNCA5LjVjMy41NCAwIDYuNzEgMS4yMiA5LjIxIDMuNmw2Ljg1LTYuODVDMzUuOSAyLjM4IDMwLjQ3IDAgMjQgMCAxNC42MiAwIDYuNTEgNS4zOCAyLjU2IDEzLjIybDcuOTggNi4xOUMxMi40MyAxMy43MiAxNy43NCA5LjUgMjQgOS41eiIvPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00Ni45OCAyNC41NWMwLTEuNTctLjE1LTMuMDktLjM4LTQuNTVIMjR2OS4wMmgxMi45NGMtLjU4IDIuOTYtMi4yNiA1LjQ4LTQuNzggNy4xOGw3LjczIDZjNC41MS00LjE4IDcuMDktMTAuMzYgNy4wOS0xNy42NXoiLz48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMTAuNTMgMjguNTljLS40OC0xLjQ1LS43Ni0yLjk5LS43Ni00LjU5cy4yNy0zLjE0Ljc2LTQuNTlsLTcuOTgtNi4xOUMuOTIgMTYuNDYgMCAyMC4xMiAwIDI0YzAgMy44OC45MiA3LjU0IDIuNTYgMTAuNzhsNy45Ny02LjE5eiIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Ik0yNCA0OGM2LjQ4IDAgMTEuOTMtMi4xMyAxNS44OS01LjgxbC03LjczLTZjLTIuMTUgMS40NS00LjkyIDIuMy04LjE2IDIuMy02LjI2IDAtMTEuNTctNC4yMi0xMy40Ny05LjkxbC03Ljk4IDYuMTlDNi41MSA0Mi42MiAxNC42MiA0OCAyNCA0OHoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDQ4djQ4SDB6Ii8+PC9nPjwvc3ZnPicpfTtfLmxtPWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSihfLmxtLF8uRCk7Xy5sPV8ubG0ucHJvdG90eXBlO18ubC50ZD1mdW5jdGlvbigpe3JldHVybiBfLkxiKF8uTCh0aGlzLDEpKX07Xy5sLnZkPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTGIoXy5MKHRoaXMsMikpfTtfLmwuc2Q9ZnVuY3Rpb24oKXtyZXR1cm4gXy5MYihfLkwodGhpcywzKSl9O18ubC54ZD1mdW5jdGlvbigpe3JldHVybiBfLk1iKF8uTCh0aGlzLDQpKX07Xy5sLnVkPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTGIoXy5MKHRoaXMsNSkpfTtfLmwucWQ9ZnVuY3Rpb24oKXtyZXR1cm4gXy5MYihfLkwodGhpcyw2KSl9O18ubC53ZD1mdW5jdGlvbigpe3JldHVybiBfLkxiKF8uTCh0aGlzLDcpKX07Xy5sLnJkPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTWIoXy5MKHRoaXMsOSkpfTt2YXIgcW09ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgaz1nPT09dm9pZCAwPyEwOmc7aD1oPT09dm9pZCAwPyExOmg7Zz1lJiZlIT09MT9fLlYobW0oZSkpOl8uVihtbSgyKSk7dmFyIG09Xy5aKCk7az0iPGRpdiIrKGs/JyB0YWJpbmRleD0iMCInOiIiKSsnIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbGxlZGJ5PSJidXR0b24tbGFiZWwiIGNsYXNzPSInK18uVygibnNtN0JiLUh6VjdtLUxnYnNTZSIpKyIgIisoaD9fLlcoIkJ6MTEyYy1MZ2JzU2UiKToiIikrIiAiO3ZhciBuPSIiO3N3aXRjaChiKXtjYXNlIDI6bis9InBTek9QLVN4UXVTZSI7YnJlYWs7Y2FzZSAzOm4rPSJwdXJaVC1TeFF1U2UiO2JyZWFrO2RlZmF1bHQ6bis9ImhKRHdOZC1TeFF1U2UifWE9Xy5YKF8uWShfLlgobSxrK18uVyhuKSsiICIrXy5XKG5tKGMpKSsiICIrXy5XKG9tKGQpKSsnIicrKGYmJiFoPycgc3R5bGU9IndpZHRoOicrXy5XKGptKGYpKSsncHg7IG1heC13aWR0aDo0MDBweDsgbWluLXdpZHRoOm1pbi1jb250ZW50OyInOgoiIikrJz48ZGl2IGNsYXNzPSInK18uVygibnNtN0JiLUh6VjdtLUxnYnNTZS1NSm9CVmUiKSsnIj48L2Rpdj48ZGl2IGNsYXNzPSInK18uVygibnNtN0JiLUh6VjdtLUxnYnNTZS1iTjk3UGMtc001TU5iIikrIiAiKyhhPT09Mj9fLlcoIm9YdGZCZS1sNGVIWCIpOiIiKSsnIj4nKSxwbShjPT09Mnx8Yz09PTMpKSwoaD8iIjonPHNwYW4gY2xhc3M9IicrXy5XKCJuc203QmItSHpWN20tTGdic1NlLUJQcldJZCIpKyciPicrXy5WKG1tKGUpKSsiPC9zcGFuPiIpKyc8c3BhbiBjbGFzcz0iJytfLlcoIkw2Y1RjZSIpKyciIGlkPSJidXR0b24tbGFiZWwiPicrZyk7Xy5ZKGEsIi4gXHUwMGM1cG5lcyBpIGVuIG55IGZhbmUiKTtfLlgoYSwiPC9zcGFuPjwvZGl2PjwvZGl2PiIpO3JldHVybiBhfSxubT1mdW5jdGlvbihhKXt2YXIgYj0iIjtzd2l0Y2goYSl7Y2FzZSAyOmIrPSJNRlM0YmUtdjNwWmJmLUlhN1FmYyBNRlM0YmUtSWE3UWZjIjticmVhaztjYXNlIDM6Yis9Ik1GUzRiZS1KYVBWMmItSWE3UWZjIE1GUzRiZS1JYTdRZmMiOwpicmVhaztjYXNlIDU6Yis9Imk1dnQ2ZS10bzkxNS1JYTdRZmMgaTV2dDZlLUlhN1FmYyI7YnJlYWs7ZGVmYXVsdDpiKz0iaTV2dDZlLUlhN1FmYyJ9cmV0dXJuIGJ9LG9tPWZ1bmN0aW9uKGEpe3ZhciBiPSIiO3N3aXRjaChhKXtjYXNlIDI6Yis9IkpHY3BMLVJiUnpLIjticmVhaztjYXNlIDQ6Yis9IkpHY3BMLVJiUnpLIjticmVhaztkZWZhdWx0OmIrPSJ1YXhMNGUtUmJSeksifXJldHVybiBifSxtbT1mdW5jdGlvbihhKXt2YXIgYj0iIjtzd2l0Y2goYSl7Y2FzZSAxOmIrPSJMb2dnIHBcdTAwZTUiO2JyZWFrO2Nhc2UgMzpiKz0iUmVnaXN0cmVyIGRlZyBtZWQgR29vZ2xlIjticmVhaztjYXNlIDQ6Yis9IkZvcnRzZXR0IG1lZCBHb29nbGUiO2JyZWFrO2RlZmF1bHQ6Yis9IkxvZ2cgcFx1MDBlNSBtZWQgR29vZ2xlIn1yZXR1cm4gYn0scm09ZnVuY3Rpb24oYSxiKXt2YXIgYz0iIjtpZihiKXN3aXRjaChhKXtjYXNlIDQ6Yys9IkZvcnRzZXR0IHNvbSAiK2I7YnJlYWs7ZGVmYXVsdDpjKz0KIkxvZ2cgcFx1MDBlNSBzb20gIitifWVsc2UgYys9bW0oYSk7cmV0dXJuIGN9LHBtPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD8hMTphO3JldHVybiBfLlkoXy5aKCksYT9fLlgoXy5ZKF8uWChfLlooKSwnPGRpdiBjbGFzcz0iJytfLlcoIm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZiIpKyciPjxkaXYgY2xhc3M9IicrXy5XKCJuc203QmItSHpWN20tTGdic1NlLUJ6MTEyYyIpKyciPicpLGttKCkpLCI8L2Rpdj48L2Rpdj4iKTpfLlgoXy5ZKF8uWChfLlooKSwnPGRpdiBjbGFzcz0iJytfLlcoIm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjIikrJyI+Jyksa20oKSksIjwvZGl2PiIpKX07dmFyIGZtPWZ1bmN0aW9uKGEpe2E9YXx8e307dmFyIGI9YS5TYSxjPWEuZWQsZD1hLnNoYXBlLGU9YS5zaXplLGY9YS50ZXh0LGc9YS50aGVtZTthPWEud2lkdGg7Yj1iPT09dm9pZCAwPyEwOmI7cmV0dXJuIF8uWShfLlooKSxxbShjLGUsZyxkLGYsYSxiKSl9LGJtPWZ1bmN0aW9uKGEpe2E9YXx8e307dmFyIGI9YS5TYSxjPWEuc2hhcGUsZD1hLnNpemUsZT1hLnRleHQ7YT1hLnRoZW1lO2I9Yj09PXZvaWQgMD8hMDpiO3JldHVybiBfLlkoXy5aKCkscW0odm9pZCAwLGQsYSxjLGUsdm9pZCAwLGIsITApKX0sY209ZnVuY3Rpb24oYSl7dmFyIGI9YS5TYSxjPWEueGUsZD1hLnllLGU9YS5zaGFwZSxmPWEudGV4dCxnPWEudGhlbWU7YT1hLndpZHRoO3ZhciBoPWI9PT12b2lkIDA/ITA6YjtiPV8uWigpO2g9aD09PXZvaWQgMD8hMDpoO2U9Xy5YKF8uWigpLCI8ZGl2IisoaD8nIHRhYmluZGV4PSIwIic6IiIpKycgcm9sZT0iYnV0dG9uIiBhcmlhLWxhYmVsbGVkYnk9ImJ1dHRvbi1sYWJlbCIgY2xhc3M9IicrCl8uVygibnNtN0JiLUh6VjdtLUxnYnNTZSIpKyIgIitfLlcoImpWZVNFZSIpKyIgIitfLlcobm0oZykpKyIgIitfLlcob20oZSkpKyciIHN0eWxlPSJtYXgtd2lkdGg6NDAwcHg7IG1pbi13aWR0aDoyMDBweDsnKyhhPyJ3aWR0aDoiK18uVyhqbShhKSkrInB4OyI6IiIpKyciPjxkaXYgY2xhc3M9IicrXy5XKCJuc203QmItSHpWN20tTGdic1NlLU1Kb0JWZSIpKyciPjwvZGl2PjxkaXYgY2xhc3M9IicrXy5XKCJuc203QmItSHpWN20tTGdic1NlLWJOOTdQYy1zTTVNTmIiKSsnIj4nKTthPWMuZ2l2ZW5OYW1lP2MuZ2l2ZW5OYW1lOmMuZGlzcGxheU5hbWU7Yy5wcm9maWxlUGljdHVyZT8oXy5YKGUsJzxpbWcgY2xhc3M9IicrXy5XKCJuMVV1WC1Ea2ZqWSIpKyciIHNyYz0iJytfLlcoXy5ObChjLnByb2ZpbGVQaWN0dXJlKSkrJyIgYWx0PSInKSxoPSJQcm9maWxiaWxkZXQgdGlsICIrXy5XKGE/YTpjLmlkKSxfLlkoZSxfLklsKGgpKSxfLlgoZSwnIj4nKSk6Xy5ZKGUsXy4kbCgpKTtfLlgoXy5ZKF8uWChfLlkoXy5YKGUsCic8ZGl2IGNsYXNzPSInK18uVygibnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWQiKSsnIj48ZGl2IGNsYXNzPSInK18uVygic3NKUklmIikrJyI+JytfLlYocm0oZixhKSkrJzwvZGl2PjxkaXYgY2xhc3M9IicrXy5XKCJLNGVmZmYiKSsnIj48ZGl2IGNsYXNzPSInK18uVygiZm1jbVMiKSsnIj4nK18uVihjLmlkKSsiPC9kaXY+IiksZD4xPygwLF8uVSkoJzxzdmcgY2xhc3M9IicrXy5XKCJCejExMmMiKSsiICIrXy5XKCJCejExMmMtRTNEeVlkIikrJyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik03LjQxIDguNTlMMTIgMTMuMTdsNC41OS00LjU4TDE4IDEwbC02IDYtNi02IDEuNDEtMS40MXoiPjwvcGF0aD48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDBWMHoiPjwvcGF0aD48L3N2Zz4nKToiIiksIjwvZGl2PjwvZGl2PiIpLHBtKGc9PT0yfHxnPT09MykpLCc8L2Rpdj48ZGl2IGlkPSJidXR0b24tbGFiZWwiIGNsYXNzPSInKwpfLlcoIkw2Y1RjZSIpKyciPicrXy5WKHJtKGYsYSkpKyIsICIrXy5WKGMuaWQpKTtfLlkoZSwiLiBcdTAwYzVwbmVzIGkgZW4gbnkgZmFuZSIpO18uWChlLCI8L2Rpdj48L2Rpdj4iKTtyZXR1cm4gXy5ZKGIsZSl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgVmcsV2csWGcsWWcsY2gsZGgsZWgsaGgsb2gsVWcscGgscWgsc2gsa2gsbGgsd2gseWgseGgsYmgsYWgsWmcsJGc7ClZnPWZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gbmV3IFVnKF8ub2IoYSksYik7aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gbmV3IFVnKG5ldyBVaW50OEFycmF5KGEpLGIpO2lmKGEuY29uc3RydWN0b3I9PT1VaW50OEFycmF5KXJldHVybiBuZXcgVWcoYSwhMSk7aWYoYS5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyKXJldHVybiBhPW5ldyBVaW50OEFycmF5KGEpLG5ldyBVZyhhLCExKTtpZihhLmNvbnN0cnVjdG9yPT09Xy5jYylyZXR1cm4gYj1fLkNlKGEpfHxuZXcgVWludDhBcnJheSgwKSxuZXcgVWcoYiwhMCxhKTtpZihhIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gYT1hLmNvbnN0cnVjdG9yPT09VWludDhBcnJheT9hOm5ldyBVaW50OEFycmF5KGEuYnVmZmVyLGEuYnl0ZU9mZnNldCxhLmJ5dGVMZW5ndGgpLG5ldyBVZyhhLCExKTt0aHJvdyBFcnJvcigpO307V2c9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiciIpO307ClhnPWZ1bmN0aW9uKGEsYil7Yj1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYik7cmV0dXJuIGE9PW51bGw/YjphK2J9O1lnPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWMuZzthW2JdPWQ/ZnVuY3Rpb24oZixnLGgpe3JldHVybiBlKGYsZyxoLGQpfTplfTsKY2g9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpc1taZ10sZj10aGlzWyRnXSxnPV8uaWModm9pZCAwLGUuWWEpLGg9Xy5VYihhKTtpZihoKXt2YXIgaz0hMSxtPWUuT2I7aWYobSl7ZT1mdW5jdGlvbih4LHksQyl7aWYoQy5sZW5ndGghPT0wKWlmKG1beV0pZm9yKHg9Xy51KEMpLHk9eC5uZXh0KCk7IXkuZG9uZTt5PXgubmV4dCgpKXt5PWFoKHkudmFsdWUpO3RyeXtrPSEwLGYoZyx5KX1maW5hbGx5e2JoKHkpfX1lbHNlIGQ9PW51bGx8fGQoYSx5LEMpfTtpZihiPT1udWxsKWguc2IoZSk7ZWxzZSBpZihoIT1udWxsKXt2YXIgbj1oW2JdO24mJmUoaCxiLG4pfWlmKGspe3ZhciBxPWFbXy5BXXwwO2lmKHEmMiYmcSYyMDQ4JiYoYz09bnVsbHx8IWMudmUpKXRocm93IEVycm9yKCk7dmFyIHA9cSYxMjg/Xy5MYzp2b2lkIDAscj1mdW5jdGlvbih4LHkpe2lmKF8udWMoYSx4LHApIT1udWxsKXN3aXRjaChjPT1udWxsP3ZvaWQgMDpjLmVmKXtjYXNlIDE6cmV0dXJuO2RlZmF1bHQ6dGhyb3cgRXJyb3IoKTsKfXkhPW51bGwmJihxPV8udGMoYSxxLHgseSxwKSk7ZGVsZXRlIGhbeF19O2I9PW51bGw/Xy5BYihnLGdbXy5BXXwwLGZ1bmN0aW9uKHgseSl7cih4LHkpfSk6cihiLF8udWMoZyxiLHApKX19fX07ZGg9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1jLmcsZyxoO2FbYl09ZnVuY3Rpb24oayxtLG4pe3JldHVybiBmKGssbSxuLGh8fChoPV8uSGMoWmcsWWcsZGgsZCkuWWEpLGd8fChnPWVoKGQpKSxlKX19OwplaD1mdW5jdGlvbihhKXt2YXIgYj1hWyRnXTtpZihiIT1udWxsKXJldHVybiBiO3ZhciBjPV8uSGMoWmcsWWcsZGgsYSk7Yj1jLlpjP2Z1bmN0aW9uKGQsZSl7cmV0dXJuKDAsXy5FYykoZCxlLGMpfTpmdW5jdGlvbihkLGUpe2E6e2ZoKCk7dHJ5e2Zvcig7Z2goZSkmJmUuaCE9NDspe3ZhciBmPWUuaSxnPWNbZl07aWYoZz09bnVsbCl7dmFyIGg9Yy5PYjtpZihoKXt2YXIgaz1oW2ZdO2lmKGspe3ZhciBtPWhoKGspO20hPW51bGwmJihnPWNbZl09bSl9fX1pZihnPT1udWxsfHwhZyhlLGQsZikpe3ZhciBuPWUscT1uLmo7aWgobik7dmFyIHA9bjtpZihwLkpiKXZhciByPXZvaWQgMDtlbHNle3ZhciB4PXAuZy5nLXE7cC5nLmc9cTtuPXZvaWQgMDt2YXIgeT1wLmc7cD14O2lmKHA9PTApcj1fLmpoKCk7ZWxzZXt2YXIgQz1raCh5LHApO2lmKHkubGImJnkubCluPXkuaC5zdWJhcnJheShDLEMrcCk7ZWxzZXt2YXIga2E9eS5oO3A9QytwO249Qz09PXA/bmV3IFVpbnQ4QXJyYXkoMCk6Xy5QZT8Ka2Euc2xpY2UoQyxwKTpuZXcgVWludDhBcnJheShrYS5zdWJhcnJheShDLHApKX1yPW4ubGVuZ3RoPT0wP18uamgoKTpuZXcgXy5jYyhuLF8uQmUpfX12YXIgbmE9cD1uPXZvaWQgMCxBYT1kLGtiPWYsUmY9cjtSZiYmKChuPShwPShuYT1BYVtfLlRiXSkhPW51bGw/bmE6QWFbXy5UYl09bmV3IF8uWWIpW2tiXSkhPW51bGw/bjpwW2tiXT1bXSkucHVzaChSZil9fXZhciBTZj1fLlViKGQpO1NmJiYoU2YuY2M9Yy5IZFtfLmZmXSk7dmFyIFRmPSEwO2JyZWFrIGF9Y2F0Y2goVWYpe2lmKFVmIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7dGhyb3cgVWY7fWZpbmFsbHl7bGg+MCYmbGgtLX1UZj12b2lkIDB9cmV0dXJuIFRmfTthWyRnXT1iO2FbXy5mZl09Y2guYmluZChhKTtyZXR1cm4gYn07CmhoPWZ1bmN0aW9uKGEpe2E9Xy5KYyhhKTt2YXIgYj1hWzBdLmc7aWYoYT1hWzFdKXt2YXIgYz1laChhKSxkPV8uSGMoWmcsWWcsZGgsYSkuWWE7cmV0dXJuIGZ1bmN0aW9uKGUsZixnKXtyZXR1cm4gYihlLGYsZyxkLGMpfX1yZXR1cm4gYn07Xy5taD1mdW5jdGlvbihhLGIpe3JldHVybiBmdW5jdGlvbihjLGQpe2E6e3ZhciBlPXt4YjohMH07ZCYmT2JqZWN0LmFzc2lnbihlLGQpO2M9YWgoYyx2b2lkIDAsdm9pZCAwLGUpO3RyeXt2YXIgZj1uZXcgYSxnPWYuQTtlaChiKShnLGMpO3ZhciBoPWY7YnJlYWsgYX1jYXRjaChrKXtpZihrIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7dGhyb3cgazt9ZmluYWxseXtiaChjKX1oPXZvaWQgMH1yZXR1cm4gaH19OwpfLm5oPWZ1bmN0aW9uKGEpe3N3aXRjaChfLk8oYSwxKSl7Y2FzZSAxOl8uSCgiVGhlIHNwZWNpZmllZCB1c2VyIGlzIG5vdCBzaWduZWQgaW4uIik7YnJlYWs7Y2FzZSAyOl8uSCgiVXNlciBoYXMgb3B0ZWQgb3V0IG9mIHVzaW5nIEdvb2dsZSBTaWduIEluLiIpO2JyZWFrO2Nhc2UgMzpfLkgoIlRoZSBnaXZlbiBjbGllbnQgSUQgaXMgbm90IGZvdW5kLiIpO2JyZWFrO2Nhc2UgNDpfLkgoIlRoZSBnaXZlbiBjbGllbnQgSUQgaXMgbm90IGFsbG93ZWQgdG8gdXNlIEdvb2dsZSBTaWduIEluLiIpO2JyZWFrO2Nhc2UgNTpfLkgoIlRoZSBnaXZlbiBvcmlnaW4gaXMgbm90IGFsbG93ZWQgZm9yIHRoZSBnaXZlbiBjbGllbnQgSUQuIik7YnJlYWs7Y2FzZSAyMDpfLkgoIlRoZSBnaXZlbiBsb2dpbl91cmkgaXMgbm90IGFsbG93ZWQgZm9yIHRoZSBnaXZlbiBjbGllbnQgSUQuIik7YnJlYWs7Y2FzZSA2Ol8uSCgiUmVxdWVzdCBmcm9tIHRoZSBzYW1lIG9yaWdpbiBpcyBleHBlY3RlZC4iKTsKYnJlYWs7Y2FzZSA3Ol8uSCgiR29vZ2xlIFNpZ24gSW4gaXMgb25seSBhbGxvd2VkIHdpdGggSFRUUFMuIik7YnJlYWs7Y2FzZSA4Ol8uSCgiUGFyYW1ldGVyICIrXy5OKGEsMikrIiBpcyBub3Qgc2V0IGNvcnJlY3RseS4iKTticmVhaztjYXNlIDk6Xy5IKCJUaGUgYnJvd3NlciBpcyBub3Qgc3VwcG9ydGVkLiIpO2JyZWFrO2Nhc2UgMTI6Xy5IKCJHb29nbGUgU2lnbiBJbiBkb2VzIG5vdCBzdXBwb3J0IHdlYiB2aWV3LiIpO2JyZWFrO2Nhc2UgMTQ6Xy5IKCJUaGUgY2xpZW50IGlzIHJlc3RyaWN0ZWQgdG8gYWNjb3VudHMgd2l0aGluIGl0cyBvcmdhbml6YXRpb24uIik7YnJlYWs7ZGVmYXVsdDpfLkgoIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQuIil9fTtfLmNjPWZ1bmN0aW9uKGEsYil7aWYoYiE9PV8uQmUpdGhyb3cgRXJyb3IoInciKTt0aGlzLmc9YTtpZihhIT1udWxsJiZhLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoInYiKTt9OwpfLmpoPWZ1bmN0aW9uKCl7cmV0dXJuIG9ofHwob2g9bmV3IF8uY2MobnVsbCxfLkJlKSl9O1VnPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmJ1ZmZlcj1hO2lmKGMmJiFiKXRocm93IEVycm9yKCk7dGhpcy5nPWJ9O3BoPXZvaWQgMDtfLlliPWZ1bmN0aW9uKCl7fTtfLlliLnByb3RvdHlwZS5zYj1mdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gdGhpcykhaXNOYU4oYikmJmEodGhpcywrYix0aGlzW2JdKX07Xy5ZYi5wcm90b3R5cGUuZz1mdW5jdGlvbigpe3ZhciBhPW5ldyBfLlliO3RoaXMuc2IoZnVuY3Rpb24oYixjLGQpe2FbY109Xy5JYihkKX0pO2EuY2M9dGhpcy5jYztyZXR1cm4gYX07CnZhciByaD1bXSx0aD1mdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPWEuZyxkPWMrMTAsZT1hLmg7YzxkOyl7dmFyIGY9ZVtjKytdO2J8PWY7aWYoKGYmMTI4KT09PTApcmV0dXJuIHNoKGEsYyksISEoYiYxMjcpfXRocm93IEVycm9yKCk7fSx1aD1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLmg9bnVsbDt0aGlzLmw9ITE7dGhpcy5nPXRoaXMuaT10aGlzLmo9MDt0aGlzLmluaXQoYSxiLGMsZCl9O3VoLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWQ9PT12b2lkIDA/e306ZDtkPWUubGI9PT12b2lkIDA/ITE6ZS5sYjtlPWUueGI9PT12b2lkIDA/ITE6ZS54Yjt0aGlzLmxiPWQ7dGhpcy54Yj1lO2EmJihhPVZnKGEsdGhpcy54YiksdGhpcy5oPWEuYnVmZmVyLHRoaXMubD1hLmcsdGhpcy5qPWJ8fDAsdGhpcy5pPWMhPT12b2lkIDA/dGhpcy5qK2M6dGhpcy5oLmxlbmd0aCx0aGlzLmc9dGhpcy5qKX07CnVoLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuaD1udWxsO3RoaXMubD0hMTt0aGlzLmc9dGhpcy5pPXRoaXMuaj0wO3RoaXMubGI9ITF9O3VoLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZz10aGlzLmp9O3NoPWZ1bmN0aW9uKGEsYil7YS5nPWI7aWYoYj5hLmkpdGhyb3cgRXJyb3IoKTt9O2toPWZ1bmN0aW9uKGEsYil7aWYoYjwwKXRocm93IEVycm9yKCk7dmFyIGM9YS5nO2I9YytiO2lmKGI+YS5pKXRocm93IEVycm9yKCk7YS5nPWI7cmV0dXJuIGN9OwpfLnZoPWZ1bmN0aW9uKGEpe3ZhciBiPWEuaCxjPWEuZyxkPWJbYysrXSxlPWQmMTI3O2lmKGQmMTI4JiYoZD1iW2MrK10sZXw9KGQmMTI3KTw8NyxkJjEyOCYmKGQ9YltjKytdLGV8PShkJjEyNyk8PDE0LGQmMTI4JiYoZD1iW2MrK10sZXw9KGQmMTI3KTw8MjEsZCYxMjgmJihkPWJbYysrXSxlfD1kPDwyOCxkJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCkpKSkpdGhyb3cgRXJyb3IoKTtzaChhLGMpO3JldHVybiBlfTtsaD0wO3doPVtdO3loPWZ1bmN0aW9uKGEsYixjLGQpe2lmKHJoLmxlbmd0aCl7dmFyIGU9cmgucG9wKCk7ZS5pbml0KGEsYixjLGQpO2E9ZX1lbHNlIGE9bmV3IHVoKGEsYixjLGQpO3RoaXMuZz1hO3RoaXMuaj10aGlzLmcuZzt0aGlzLmg9dGhpcy5pPS0xO3hoKHRoaXMsZCl9O3hoPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7YS5KYj1iLkpiPT09dm9pZCAwPyExOmIuSmJ9OwpiaD1mdW5jdGlvbihhKXthLmcuY2xlYXIoKTthLmk9LTE7YS5oPS0xO3doLmxlbmd0aDwxMDAmJndoLnB1c2goYSl9O3loLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZy5yZXNldCgpO3RoaXMuaj10aGlzLmcuZzt0aGlzLmg9dGhpcy5pPS0xfTsKdmFyIGdoPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZztpZihiLmc9PWIuaSlyZXR1cm4hMTthLmo9YS5nLmc7dmFyIGM9Xy52aChhLmcpPj4+MDtiPWM+Pj4zO2MmPTc7aWYoIShjPj0wJiZjPD01KSl0aHJvdyBFcnJvcigpO2lmKGI8MSl0aHJvdyBFcnJvcigpO2EuaT1iO2EuaD1jO3JldHVybiEwfSxmaD1mdW5jdGlvbigpe2lmKGxoPj0xMDApdGhyb3cgbmV3IFN5bnRheEVycm9yO2xoKyt9LGloPWZ1bmN0aW9uKGEpe3RyeXtzd2l0Y2goYS5oKXtjYXNlIDA6YS5oIT0wP2loKGEpOnRoKGEuZyk7YnJlYWs7Y2FzZSAxOnZhciBiPWEuZztzaChiLGIuZys4KTticmVhaztjYXNlIDI6aWYoYS5oIT0yKWloKGEpO2Vsc2V7dmFyIGM9Xy52aChhLmcpPj4+MCxkPWEuZztzaChkLGQuZytjKX1icmVhaztjYXNlIDU6dmFyIGU9YS5nO3NoKGUsZS5nKzQpO2JyZWFrO2Nhc2UgMzpmaCgpO3ZhciBmPWEuaTt0cnl7ZG97aWYoIWdoKGEpKXRocm93IEVycm9yKCk7aWYoYS5oPT00KXtpZihhLmkhPWYpdGhyb3cgRXJyb3IoKTsKYnJlYWt9aWgoYSl9d2hpbGUoMSl9Y2F0Y2goZyl7aWYoZyBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IGc7fWZpbmFsbHl7bGg+MCYmbGgtLX1icmVhaztkZWZhdWx0OnRocm93IEVycm9yKCk7fX1jYXRjaChnKXtpZihnIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7dGhyb3cgZzt9fTt5aC5wcm90b3R5cGUubD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZy5pLGQ9Xy52aCh0aGlzLmcpPj4+MDtkPXRoaXMuZy5nK2Q7dmFyIGU9ZC1jO2U8PTAmJih0aGlzLmcuaT1kLGIoYSx0aGlzLHZvaWQgMCx2b2lkIDAsdm9pZCAwKSxlPWQtdGhpcy5nLmcpO2lmKGUpdGhyb3cgRXJyb3IoKTt0aGlzLmcuZz1kO3RoaXMuZy5pPWN9O3loLnByb3RvdHlwZS51PWZ1bmN0aW9uKCl7cmV0dXJuIHRoKHRoaXMuZyl9O3loLnByb3RvdHlwZS52PWZ1bmN0aW9uKCl7cmV0dXJuIF8udmgodGhpcy5nKX07CnloLnByb3RvdHlwZS5vPWZ1bmN0aW9uKCl7dmFyIGE9Xy52aCh0aGlzLmcpPj4+MCxiPXRoaXMuZyxjPWtoKGIsYSk7Yj1iLmg7aWYoXy5aZCl7dmFyIGQ9YixlOyhlPXFoKXx8KGU9cWg9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIse2ZhdGFsOiEwfSkpO2I9YythO2Q9Yz09PTAmJmI9PT1kLmxlbmd0aD9kOmQuc3ViYXJyYXkoYyxiKTt0cnl7dmFyIGY9ZS5kZWNvZGUoZCl9Y2F0Y2gobSl7aWYocGg9PT12b2lkIDApe3RyeXtlLmRlY29kZShuZXcgVWludDhBcnJheShbMTI4XSkpfWNhdGNoKG4pe310cnl7ZS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzk3XSkpLHBoPSEwfWNhdGNoKG4pe3BoPSExfX0hcGgmJihxaD12b2lkIDApO3Rocm93IG07fX1lbHNle2E9YythO2Y9W107Zm9yKHZhciBnPW51bGwsaCxrO2M8YTspaD1iW2MrK10saDwxMjg/Zi5wdXNoKGgpOmg8MjI0P2M+PWE/V2coKTooaz1iW2MrK10saDwxOTR8fChrJjE5MikhPT0xMjg/KGMtLSxXZygpKTpmLnB1c2goKGgmMzEpPDwKNnxrJjYzKSk6aDwyNDA/Yz49YS0xP1dnKCk6KGs9YltjKytdLChrJjE5MikhPT0xMjh8fGg9PT0yMjQmJms8MTYwfHxoPT09MjM3JiZrPj0xNjB8fCgoZT1iW2MrK10pJjE5MikhPT0xMjg/KGMtLSxXZygpKTpmLnB1c2goKGgmMTUpPDwxMnwoayY2Myk8PDZ8ZSY2MykpOmg8PTI0ND9jPj1hLTI/V2coKTooaz1iW2MrK10sKGsmMTkyKSE9PTEyOHx8KGg8PDI4KSsoay0xNDQpPj4zMCE9PTB8fCgoZT1iW2MrK10pJjE5MikhPT0xMjh8fCgoZD1iW2MrK10pJjE5MikhPT0xMjg/KGMtLSxXZygpKTooaD0oaCY3KTw8MTh8KGsmNjMpPDwxMnwoZSY2Myk8PDZ8ZCY2MyxoLT02NTUzNixmLnB1c2goKGg+PjEwJjEwMjMpKzU1Mjk2LChoJjEwMjMpKzU2MzIwKSkpOldnKCksZi5sZW5ndGg+PTgxOTImJihnPVhnKGcsZiksZi5sZW5ndGg9MCk7Zj1YZyhnLGYpfXJldHVybiBmfTsKYWg9ZnVuY3Rpb24oYSxiLGMsZCl7aWYod2gubGVuZ3RoKXt2YXIgZT13aC5wb3AoKTt4aChlLGQpO2UuZy5pbml0KGEsYixjLGQpO3JldHVybiBlfXJldHVybiBuZXcgeWgoYSxiLGMsZCl9O1pnPVN5bWJvbCgpOyRnPVN5bWJvbCgpO18uemg9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKF8uemgsXy5EKTtfLkFoPWZ1bmN0aW9uKCl7fTtfLkFoLnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy5nYSYmd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLmdhJiZiLmdhKGEpfSwxMDApfTtfLkJoPWZ1bmN0aW9uKGEsYixjKXtjIT09dm9pZCAwJiYoYi5kZXRhaWw9Yyk7YS5SKGIpfTtfLkNoPWZ1bmN0aW9uKGEsYixjKXtfLkJoKGEse3RpbWVzdGFtcDoobmV3IERhdGUpLmdldFRpbWUoKSx0eXBlOiJ1aV9jaGFuZ2UiLHVpQWN0aXZpdHlUeXBlOmJ9LGMpfTtfLkRoPWZ1bmN0aW9uKGEsYixjKXtfLkJoKGEse3RpbWVzdGFtcDoobmV3IERhdGUpLmdldFRpbWUoKSx0eXBlOiJlcnJvciIsZXJyb3JUeXBlOmJ9LGMpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGFyO18uY3I9ZnVuY3Rpb24oYSl7aWYoYXImJmEuZGF0YXNldClyZXR1cm4gYS5kYXRhc2V0O3ZhciBiPXt9O2E9YS5hdHRyaWJ1dGVzO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7KytjKXt2YXIgZD1hW2NdO2lmKGQubmFtZS5sYXN0SW5kZXhPZigiZGF0YS0iLDApPT0wKXt2YXIgZT1fLmJyKGQubmFtZS5zbGljZSg1KSk7YltlXT1kLnZhbHVlfX1yZXR1cm4gYn07Cl8uZHI9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fSxkO2ZvcihkIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9YVtkXTtpZihlKXt2YXIgZj1kLnRvTG93ZXJDYXNlKCksZz1iW2ZdO2lmKGcpe3ZhciBoPXdpbmRvdztzd2l0Y2goZyl7Y2FzZSAiYm9vbCI6ZS50b0xvd2VyQ2FzZSgpPT09InRydWUiP2NbZl09ITA6ZS50b0xvd2VyQ2FzZSgpPT09ImZhbHNlIj9jW2ZdPSExOl8uSCgiVGhlIHZhbHVlIG9mICciK2QrIicgY2FuIG9ubHkgYmUgdHJ1ZSBvciBmYWxzZS4gQ29uZmlndXJhdGlvbiBpZ25vcmVkLiIpO2JyZWFrO2Nhc2UgIm51bSI6ZT1OdW1iZXIoZSk7aXNOYU4oZSk/Xy5IKCJFeHBlY3RlZCBhIG51bWJlciBmb3IgJyIrZCsiJy4gQ29uZmlndXJhdGlvbiBpZ25vcmVkLiIpOmNbZl09ZTticmVhaztjYXNlICJmdW5jIjp0eXBlb2YgaFtlXT09PSJmdW5jdGlvbiI/Y1tmXT1oW2VdOl8uSCgiVGhlIHZhbHVlIG9mICciK2QrIicgaXMgbm90IGEgZnVuY3Rpb24uIENvbmZpZ3VyYXRpb24gaWdub3JlZC4iKTsKYnJlYWs7Y2FzZSAic3RyIjpjW2ZdPWU7YnJlYWs7Y2FzZSAib3JpZ2luIjpjW2ZdPWUuaW5kZXhPZigiLCIpPj0wP2Uuc3BsaXQoIiwiKTplO2JyZWFrO2Nhc2UgImNsYWltcyI6Y1tmXT1lLmluZGV4T2YoIiwiKT49MD9lLnNwbGl0KCIsIik6ZTticmVhaztkZWZhdWx0Ol8uSCgiVW5yZWNvZ25pemVkIHR5cGUuIENvbmZpZ3VyYXRpb24gaWdub3JlZC4iKX19fX1yZXR1cm4gY307Xy5icj1mdW5jdGlvbihhKXtyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoL1wtKFthLXpdKS9nLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGMudG9VcHBlckNhc2UoKX0pfTthcj0hXy5rZSYmIV8uUGEoKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5lcj1mdW5jdGlvbihhLGIsYyl7Yi5zZW50aW5lbD0ib25ldGFwX2dvb2dsZSI7Xy5FKCJNZXNzYWdlIHNlbnQgdG8gIitjKyIuICIrSlNPTi5zdHJpbmdpZnkoYiksIk1lc3NhZ2UgVXRpbCIpO2EucG9zdE1lc3NhZ2UoYixjKX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBocixqcixwcixscix0cix2cjtfLmdyPWZ1bmN0aW9uKGEpe18uZXIod2luZG93LnBhcmVudCxhLF8uZnIpfTtocj1mdW5jdGlvbigpe3RoaXMuaD12b2lkIDA7dGhpcy5nPXt9fTtfLm9yPWZ1bmN0aW9uKGEsYixjKXtpcj9fLkcoIkEgcHJldmlvdXMgYXR0ZW1wdCBoYXMgYmVlbiBtYWRlIHRvIHZlcmlmeSB0aGUgcGFyZW50IG9yaWdpbiBhbmQgaXMgc3RpbGwgYmVpbmcgcHJvY2Vzc2VkLiIpOl8uZnI/KF8uRSgiUGFyZW50IG9yaWdpbiBoYXMgYWxyZWFkeSBiZWVuIHZlcmlmaWVkLiIpLGImJmIoKSk6anIoYSk/KGtyPWEsbHIoKSxhPV8ud2QoKSxfLmVyKHdpbmRvdy5wYXJlbnQse2NvbW1hbmQ6ImludGVybWVkaWF0ZV9pZnJhbWVfcmVhZHkiLG5vbmNlOmF9LCIqIiksaXI9YSxtcj1iLG5yPWMpOl8uSCgiSW52YWxpZCBvcmlnaW4gcHJvdmlkZWQuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgYW5kIHNlY3VyZSAoaHR0cHMpIG9yaWdpbi4gSWYgcHJvdmlkaW5nIGEgbGlzdCBvZiBvcmlnaW5zLCBtYWtlIHN1cmUgYWxsIG9yaWdpbnMgYXJlIHZhbGlkIGFuZCBzZWN1cmUuIil9Owpqcj1mdW5jdGlvbihhKXtpZih0eXBlb2YgYT09PSJmdW5jdGlvbiIpcmV0dXJuITA7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gcHIoYSk7aWYoQXJyYXkuaXNBcnJheShhKSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspaWYodHlwZW9mIGFbYl0hPT0ic3RyaW5nInx8IXByKGFbYl0pKXJldHVybiExO3JldHVybiEwfXJldHVybiExfTsKcHI9ZnVuY3Rpb24oYSl7dHJ5e3ZhciBiPV8uQWYoYSk7aWYoIWIuZ3x8Yi5oIT09Imh0dHBzIiYmYi5nIT09ImxvY2FsaG9zdCIpcmV0dXJuITE7dmFyIGM9Yi5nO2lmKCFjLnN0YXJ0c1dpdGgoIioiKSlyZXR1cm4hMDtpZighYy5zdGFydHNXaXRoKCIqLiIpKXJldHVybiBfLkgoIkludmFsaWQgb3JpZ2luIHBhdHRlcm4uIFZhbGlkIHBhdHRlcm5zIHNob3VsZCBzdGFydCB3aXRoICcqLiciKSwhMTthPWM7Yj0iVGIiO2lmKHFyLlRiJiZxci5oYXNPd25Qcm9wZXJ0eShiKSl2YXIgZD1xci5UYjtlbHNle3ZhciBlPW5ldyBxcjtkPXFyLlRiPWV9YT1hLnNwbGl0KCIiKS5yZXZlcnNlKCkuam9pbigiIik7dmFyIGY9cnIoZC5nLGEpLGc9cnIoZC5oLGEpO2cubGVuZ3RoPjAmJihnPWcuc3Vic3RyKDAsZy5sYXN0SW5kZXhPZigiLiIpKSxnLmxlbmd0aD5mLmxlbmd0aCYmKGY9ZykpO3ZhciBoPXJyKGQuaSxhKTtoLmxlbmd0aD4wJiZhLmxlbmd0aD5oLmxlbmd0aCYmaC5sZW5ndGghPWcubGVuZ3RoJiYKKGE9YS5zdWJzdHIoaC5sZW5ndGgrMSksaCs9Ii4iK2Euc3BsaXQoIi4iKVswXSxoLmxlbmd0aD5mLmxlbmd0aCYmKGY9aCkpO3ZhciBrPWYuc3BsaXQoIiIpLnJldmVyc2UoKS5qb2luKCIiKTtpZihjLmluZGV4T2YoIi4iK2spPDIpcmV0dXJuIF8uSCgiSW52YWxpZCBvcmlnaW4gcGF0dGVybi4gUGF0dGVybnMgY2Fubm90IGJlIGNvbXBvc2VkIG9mIGEgd2lsZGNhcmQgYW5kIGEgdG9wIGxldmVsIGRvbWFpbi4iKSwhMX1jYXRjaChtKXtyZXR1cm4hMX1yZXR1cm4hMH07CmxyPWZ1bmN0aW9uKCl7c3J8fChzcj1fLlhmKHdpbmRvdywibWVzc2FnZSIsZnVuY3Rpb24oYSl7YT1hLmc7aWYoYS5kYXRhKXt2YXIgYj1hLmRhdGE7Yi5zZW50aW5lbD09PSJvbmV0YXBfZ29vZ2xlIiYmYi5jb21tYW5kPT09InBhcmVudF9mcmFtZV9yZWFkeSImJihfLkUoIk1lc3NhZ2UgcmVjZWl2ZWQ6ICIrSlNPTi5zdHJpbmdpZnkoYikpLHdpbmRvdy5wYXJlbnQmJndpbmRvdy5wYXJlbnQ9PT1hLnNvdXJjZT9pcj9iLm5vbmNlIT09aXI/Xy5HKCJNZXNzYWdlIGlnbm9yZWQgZHVlIHRvIGludmFsaWQgbm9uY2UuIik6KHRyKGEub3JpZ2luKT8oXy5mcj1hLm9yaWdpbixfLnVyPWIucGFyZW50TW9kZXx8ImFtcF9jbGllbnQiLG1yJiZtcigpKTooXy5HKCJPcmlnaW4gdmVyaWZpY2F0aW9uIGZhaWxlZC4gSW52YWxpZCBvcmlnaW4gLSAiK2Eub3JpZ2luKyIuIiksbnImJm5yKCkpLG5yPW1yPWlyPXZvaWQgMCxzciYmKF8uZWcoc3IpLHNyPXZvaWQgMCkpOl8uRygiTWVzc2FnZSBpZ25vcmVkLiBPcmlnaW4gdmVyaWZpZXIgaXMgbm90IHJlYWR5LCBvciBhbHJlYWR5IGRvbmUuIik6Cl8uRygiTWVzc2FnZSBpZ25vcmVkIGR1ZSB0byBpbnZhbGlkIHNvdXJjZS4iKSl9fSkpfTt0cj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGtyPT09InN0cmluZyI/dnIoa3IsYSk6QXJyYXkuaXNBcnJheShrcik/a3Iuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gdnIoYixhKX0pOiExfTt2cj1mdW5jdGlvbihhLGIpe2E9Xy5BZihhKTtiPV8uQWYoYik7aWYoYS5oIT09Yi5oKXJldHVybiExO2E9YS5nO2I9Yi5nO3JldHVybiBhLnN0YXJ0c1dpdGgoIiouIik/Yi5lbmRzV2l0aChhLnN1YnN0cigxKSl8fGI9PT1hLnN1YnN0cigyKTphPT09Yn07Xy53cj1mdW5jdGlvbihhKXtfLmZyP18uZ3Ioe2NvbW1hbmQ6ImludGVybWVkaWF0ZV9pZnJhbWVfcmVzaXplIixoZWlnaHQ6YX0pOl8uRygiUmVzaXplIGNvbW1hbmQgd2FzIG5vdCBzZW50IGR1ZSB0byBtaXNzaW5nIHZlcmlmaWVkIHBhcmVudCBvcmlnaW4uIil9OwpfLnhyPWZ1bmN0aW9uKCl7Xy5mcj9fLmdyKHtjb21tYW5kOiJpbnRlcm1lZGlhdGVfaWZyYW1lX2Nsb3NlIn0pOl8uRygiQ2xvc2UgY29tbWFuZCB3YXMgbm90IHNlbnQgZHVlIHRvIG1pc3NpbmcgdmVyaWZpZWQgcGFyZW50IG9yaWdpbi4iKX07Xy55cj1mdW5jdGlvbihhKXtfLmZyP18uZ3Ioe2NvbW1hbmQ6InNldF90YXBfb3V0c2lkZV9tb2RlIixjYW5jZWw6YX0pOl8uRygiU2V0IHRhcCBvdXRzaWRlIG1vZGUgY29tbWFuZCB3YXMgbm90IHNlbnQgZHVlIHRvIG1pc3NpbmcgdmVyaWZpZWQgcGFyZW50IG9yaWdpbi4iKX07aHIucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3pyKHRoaXMsYSxiLCExKX07aHIucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIpe3pyKHRoaXMsYSxiLCEwKX07dmFyIHpyPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7ZSsrKXt2YXIgZj1iLmNoYXJBdChlKTthLmdbZl18fChhLmdbZl09bmV3IGhyKTthPWEuZ1tmXX1pZihkJiZhLmghPT12b2lkIDApdGhyb3cgRXJyb3IoIk9hYCIrYik7YS5oPWN9O2hyLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7YTp7Zm9yKHZhciBiPXRoaXMsYz0wO2M8YS5sZW5ndGg7YysrKWlmKGI9Yi5nW2EuY2hhckF0KGMpXSwhYil7YT12b2lkIDA7YnJlYWsgYX1hPWJ9cmV0dXJuIGE/YS5oOnZvaWQgMH07aHIucHJvdG90eXBlLm5hPWZ1bmN0aW9uKCl7dmFyIGE9W107QXIodGhpcyxhKTtyZXR1cm4gYX07CnZhciBBcj1mdW5jdGlvbihhLGIpe2EuaCE9PXZvaWQgMCYmYi5wdXNoKGEuaCk7Zm9yKHZhciBjIGluIGEuZylBcihhLmdbY10sYil9O2hyLnByb3RvdHlwZS5VYT1mdW5jdGlvbihhKXt2YXIgYj1bXTtpZihhKXtmb3IodmFyIGM9dGhpcyxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWEuY2hhckF0KGQpO2lmKCFjLmdbZV0pcmV0dXJuW107Yz1jLmdbZV19QnIoYyxhLGIpfWVsc2UgQnIodGhpcywiIixiKTtyZXR1cm4gYn07dmFyIEJyPWZ1bmN0aW9uKGEsYixjKXthLmghPT12b2lkIDAmJmMucHVzaChiKTtmb3IodmFyIGQgaW4gYS5nKUJyKGEuZ1tkXSxiK2QsYyl9O2hyLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuZz17fTt0aGlzLmg9dm9pZCAwfTt2YXIgcXI9ZnVuY3Rpb24oKXt0aGlzLmc9Q3IoIiZhJjAmMHRyazktLW54PzI3cWpmLS1ueD9lOWViZ24tLW54P25iYjBjN2FiZ20tLW54Pz8xJjJvYTA4LS1ueD9hcGc2cXBjYmdtLS1ueD9oYmJnbS0tbng/cmRjZXFhMDgtLW54Pz8yJjh1Z2JnbS0tbng/ZXloM2xhMmNreC0tbng/cWJkOS0tbng/PzMmMndxcTEtLW54PzYwYTB5OC0tbng/PzR4MWQ3N3hyY2stLW54PzYmMWY0YTNhYmdtLS1ueD8yeXF5bi0tbng/NWIwNnQtLW54P2F4cS0tbng/ZWM3cS0tbng/bGJndy0tbng/Pzg4M3hubi0tbng/OWQyYzI0LS1ueD9hJmE/aXQ/P2IhLiZncm8/bGltP21vYz9zcix0ZW4/dWRlP3ZvZz95bGRuZXJiLnBvaHMsP2FiaWxhP2M/aWhzb3Q/bT9uPz9jIS4mYiZhP20/bj8/YyZiP2c/cT8/ZGlubyxlcD9mbj9rJnM/eT8/bG4/bm8/b2MscCZpLW9uLG9oc2RhZXJwc3ltLD9zbj90bj91bj94b2IseXNyYWIsP2kmbWE/ciZlbWFycD9mYT8/c3JvYz8/P2QmYXRzP24mZWl0P29oPz9vbT9zYT90bD8/ZWc/ZiZjP29iPz9nIWVtbz9uYXJpcGk/b3k/P2hza2locz9pJmRlbSEucmVtYXJmLD9ocz9rIW9uPz9zYSEuJm5vbWVhZCxzbmR1b2xjLHhpZCw/Pz9qbmluP2smYXNvP2Rvdj9lZGU/dXN0bz8/bCEuJmdybz9tb2M/b2ZuaT9yJmVwP25iLD90JmVuP25pPz91ZGU/dm9nPz9pcmduYWhzP2xlJm5pc2l1Yz9yYm11ZGVyPz8/bSEuJmNhP2dybz9vYz9zc2VycD90ZW4/dm9nPz9haG9rb3k/ZTAwc2Y3dnFuLS1ueD9tPz9uIS4mZ3JvP21vYz9vYz90JmVuP2xhPz92b2c/P2F2P2lzP29sZWNyYWI/dGVhPz9wIS4mYm9nP2NhP2QmZW0/bHM/P2cmbmk/cm8/P21vJmM/bj8/b2JhP3Rlbj91ZGU/P2M/ZzdoeWFiZ20tLW54P3JhIS4mNDYxZT82cGk/ZW1vaD9pcnU/bnJ1P3JkZGEtbmk/c2lyaT8/P3M/P3EhLiZlbWFuP2dybz9oY3M/bGltP21vYz90ZW4/dWRlP3ZvZz8/P3ImYXo/ZW1hYz9mNGEzYWJnbS0tbng/biFkNXVoZjhsZTU4cjR3LS1ueD8/dWthcz8/cyEuJmJ1cD9kZW0/Z3JvP2hjcz9tb2M/dGVuP3VkZT92b2c/P2FjIS51YmFuLml1LD9pdj8/dCZhZD9lbGh0YT9sZWQ/b3lvdD8/dSEuJmEmY2lubml2P2VtaXJjP2kmaHpoemlyb3Bhej9zdHlubml2P3R0YXByYWthej8/cyZlZG8/c2Vkbz8/dGxheT92YXRsb3A/P2JzP2NjLGQmYXJnb3ZvcmlrP28hcm8mZ2h6dT9oaHp1Pz8/dGwsP2UmaHpoemlyb3Bhej9udmlyP3Q/P2YmaT9uaSw/ZyZsP3JvPz9oaz9pJnN0dmlucmVoYz95a3N0eW4mbGVtaGs/dnlwb3JrPz8/ayZjP20/cyZuYSZndWw/aHVsPz90JmVub2Q/dWw/P3YmaWtuYXJmLW9uYXZpP29ydGVwb3JwJmVuZD9pbmQ/Pz8/P2wmaXBvbnJldD9vcG90c2EmYmVzP3Zlcz8/cD8/bSZrP29jP3M/eXJrPz9uJmM/ZD9pP29zcmVoaz92P3lsb3Y/P28mYyxudm9yPz9wJmQ/cCx6Pz9yJmM/aW1vdGloej9rP3ltb3R5aHo/P3NrP3QmZW4/bD96Pz91ZGU/djpjP2UmYWxva2luP2lrPz9pJmFsb2t5bT9oaW5yZWhjP2tyYWhrP3ZsP3lrPz9rP2w/byZnIWlucmVoYz8/a3JhaGs/P3I/LHhjLHkmaWtzdGlubGVtaGs/bXVzP3MmYWtyZWhjP3Nha3JlaGM/dHZvbnJlaGM/Pz96JmliLHU/Pz8/diFhaj9iYj9ldD9pdj8/d2FuaWtvP3gmYT9pYWNhbD8/eW9nYW4/eiYuJmJldz9jJmE/aSZuP3JnYT8/P2dybz9sJmltP29vaGNzPz9tJm9uP3Q/P28mYz9nbj8/cmFkbm9yZz9zaW4/dCZlbj9sYT8/dWRlP3ZvZz93YWw/P3ppcCEua29yZ24sPz8/YiYwMGF2ZTVhOWlhYmdtLS1ueD8xJjI1cWh4LS1ueD82OHF1di0tbng/ZTJrYzEtLW54Pz8yeHRiZ20tLW54PzMmYjJrY2MtLW54P2pjYTFkLS1ueD8/NCY2JjFyZnotLW54P3FpZi0tbng/Pzk2cnpjLS1ueD8/ODh1dm9yLS1ueD9hJjBkYzR4YmdtLS1ueD9jP2hlcj9uP3JhP3Q/P2IhLiZlcm90cz9ncm8/bW9jP28mYz9mbmk/P3Rlbj91ZGU/diZvZz90Pz96aWI/P2E/P2Mmaj9zPz9kJmhlc2EwOC0tbng/bWk/P2c/bCEuJmdybz9tb2M/dGVuP3VkZT92b2c/P20/P3MhLiZncm8/bW9jP3Rlbj91ZGU/dm9nPz8/dGMtcmV0YXJlYnNuZWdtcmV2LS1ueD91JmxjIS4mZWxlaixzbmR1b2xjLHlzcmFiLD9zbWFzPz9wIS55c3JhYiw/P3dwLWdudXRhcmVic25lZ21yZXYtLW54Pz9jJjEmMXE1NC0tbng/aGJndy0tbng/PzJlOWMyY3pmLS1ueD80JjR1YjFrbS0tbng/YTFlLS1ueD9ieWo5cS0tbng/ZXJkNWE5YjFrY2ItLW54Pz84JjR4eDJnLS1ueD9jOWpyYjJoLS1ueD8/OWpyJmImMmgtLW54PzU0LS1ueD85cy0tbng/P2MmZWctLW54P2gzLS1ueD9zMi0tbng/Pz9hIS4mZ3JvP2tjYWJkZWVmLGxpbT9tb2M/cnJkLHNtcm9mLHRlbj91ZGU/dm9nPz8zYTA5LS1ueCEuJmNhMW8tLW54P2d2YTFjLS1ueD9oJmNhMW8tLW54P3phMDktLW54Pz90YTFkLS1ueD91YTA4LS1ueD8/Pz9iJmE/Yj9jaT9mNzZhMGM3eWxxYmdtLS1ueD9zaD8/YyEuJmNlLGUmdWdhZWx5c2F0bmFmLHp5cnMsP2duaXBwYXJjcyxrdSxsaWFtd3QsbndhcHMuc2VjbmF0c25pLHBpLWR1b2xjLHJldnJlcy1lbWFnLHMmbmR1b2xjLG90b2hweW0scHBhcmV2ZWxjLHNlY2NhcHRmLHUsP3UmZSxnLHdjYyw/eHNjLD8wYXRmN2I0NS0tbng/YTFsLS1ueD8/ZSEuJjIxaz9hcGM/YiZvZz91cD8/YyZpc3A/b2Q/P2RlbT9lJnNhYix1Yz95Zz8/ZiZlaGM/b3JwPz9nJmJhP25lP3JvP3RrbT8/aGNldD9qb2w/bCZhJmc/aWNpZmZvLHM/P2ltP3V0Pz9tJmRhP29jP3NlPz9uJmdkP2lmP28mbT9yZ2E/Pz9vJmNzaWQ/Zm5pP2kmcj91Pz9ycD8/cHBycj9xaXNwP3ImYWI/Ymk/dG4/dXQ/P3QmYWw/ZSZuP3Y/P24mZWQ/byZjP2RvPz8/b2Y/cXJhP3JhPz91ZGU/dm9nP3h4eD8/YmV1cT9uP3Ntb2M/P2ZkaD9pJmxvaHRhYz9uJmFncm8/aWxjP29zYW5hcD8/c3VtP3RpYz8/bCEuJmdybz9tb2M/b2M/dGVuP3VkZT92b2c/eW8sP2w/P20hLiZtdD9vc3NhPz9wMWFrY3EtLW54Pz9uIS4mbW9uP29zc2E/P2k/cD8/cmVsY2VsP3MhLiZncm8/bW9jP3Rlbj91ZGU/dm9nPz8/dCFzP3c/P3YhLiZncm8/bGltP21vYz9zbmR5bSx0ZW4/dWRlP3YmZzouZCwsb2c/Pz8/d3A/eW4/P2QmMnVyemMtLW54PzMmMXdycGstLW54P2MmNGIxMS0tbng/OWpyY3BmLS1ueD8/PzV4cTU1LS1ueD82OTd1dG8tLW54Pzc1eXJway0tbng/OWN0ZHZrY2UtLW54P2EhZD9lcj9vbG53b2Q/P2IhLiZjYT9kaT9ncm8/aGNzP2lhP2xpbT9tb2M/byZjP2ZuaT8/dCZlbj9pPz91ZGU/diZvZz90Pz8/MmJhYmdtLS1ueD8/YyEuJmNjLHZvZz8/ZzlhMmcyYjBhZTBjaGNsYy0tbng/P2UmbSFidWxjPz9yIWs/P3NvcHhlP3RpbWlsP3c/P2ZjP2chLiZ1ZGU/dm9nPz8/aCZkM3RiZ20tLW54P3A/dD8/aSEuJmFzZWQ/YmV3P2NhP2U6bm96LCxoY3M/aWE/bGltP28mYz9nPz9wb2s/cm8/c2Vwbm9wP3Rlbj95JmtmdDktLW54P20/P3ppYj9cdTFiMzZcdTFiMmVcdTFiMjk/P2I/b3JkbmE/cD9yZGFtPz9sJml1YiEuJjB2LGZydXNkbml3LHlhZG90cGlocyw/P29nP3Jvdz8/bSEucmksP24mYSZiP2whcmFhcz8/P29iP3VmPz9vJm9mP3JwPz9yJmEmYyZ0aWRlcmM/eWFsY3JhYj8/dWduYXY/P2VmNTA2dzRiLS1ueD9rIS4mb2MsdWRlLD9qaDNhMWhhYmdtLS1ueD8/b2Y/P3MhLiZkZW0/Z3JvP21vYz9vZm5pP3Rlbj91ZGU/diZvZz90Pz8/bSFrY3JlbT8/P3QhZXhjd2tjYy0tbng/bD8/dW9sYyEuJjJrLiYzcyxicHMtdXIuJjNzLGJsLGV0aXNiZXcsP2NpdHNhbGUsZXRpc2Jldyxrc20tdXIuJjNzLGJsLGV0aXNiZXcsPz9hJmJ1cmEtdm5lai4mMXRpLGFidXJhLnJ1ZS4xdGksP3RjZXBzcmVwLHhvOi4ma3UsbnQsPyw/YiZhbHRhbSxkbmV2YXIsZXdpbGVrOi5zYywsP2NpdHNhbGVqLnBpdixkcmF5a25pbCxlJmxlaixtb2hzbmQsdG9qLD9nbml0c29oZG5lcnQuJmVkLGhjLD9sZSZ0ZW1pcnA6Lmt1LCx2YXJhbCw/bSZlZGFpZCxpYWxjZXIuJmFjLGt1LHN1LD8/biZldnVlbHVrLHdvcnUsP3BheixxaGVsYmF2cmVzYm8sciZlcG9scm9vdixndHNoLG8mcGF2LHRuZW1lbGUsPz9zZWNpdnJlcy1ub3NpbnUsdCZlbnJheGEuMS1zZSxpa2NhdHNuby5zbnVyLGxvYmV2cmVzLG5lZ3JlbWUsc2lub2dhdG5hLD91bHVsZXRvaix3Y3MuJmduaWxlYmFsdHJhbXMsa29vYmVsYWNzLGxhdGVtZXJhYi4mMS0mcmFwLXJmLHNtYS1sbiw/Mi1yYXAtcmYsP3JhcC1yZi4mM3MsYmQmZ20sciw/Y25mOi5zbm9pdGNudWYsLGV0aXNiZXctM3MsaHd0ZCxrZmFrLGwmYmNzLGRkLD9taHcscmZpLHM4azouc2Vkb24sLHRpcGtjb2MsP3MmOGssZWNuYXRzbmkuJmJ1cCx2aXJwLD9tYS1sbi4mM3MsYmQmZ20sciw/ZXRpc2Jldy0zcyxod3RkLGtmYWssbCZiY3MsZGQsP21odyxyZmksczhrOi5zZWRvbiwsdGlwa2NvYyw/P3dhdy1scC4mM3MsYmQmZ20sciw/ZXRpc2Jldy0zcyxod3RkLGtmYWssbCZiY3MsZGQsP3JmaSxzOGs6LnNlZG9uLCx0aXBrY29jLD8/eGUmbHBjaWZmYXJ0LHZub2M6LjEtdHMmYWUtc3UsZXctdWUsPyw/eWF3b2NuZS51ZSw/P3phNWNiZ24tLW54Pz9lJjEmNTN3bGYtLW54PzdhMWhiYmdtLS1ueD90YTNrZy0tbng/PzJhNmExYjZiMWktLW54PzNtYTBlMWN2ci0tbng/NDE4dHhoLS1ueD83MDdiMGUzLS1ueD9hIS4mY2E/Z3JvP2hjcz9saW0/b2M/dGVuP3ZvZz8/MDktLW54Pz9iIS4mY2E/ZXRpc2JldzMyMSxnbml0c29oYmV3LG5ldnVlbHVrLnl4b3JwemUscG9oc2RhZXJwc3ltLHNuJmR1b2xjLG9pdHVsb3N0c29ocmV0bmkuZHVvbGMsP3ltLD9vcnRhbD91dCF1b3k/Pz9jJjBrcmJkNC0tbnghLiZhMnFiZDgtLW54P2I4YWRiZWgtLW54P2M2eXRkZ2JkNC0tbng/ZDhsaGJkNS0tbng/Pz9hJmxwIS5vYyw/cHMhLiZmaDouY2l0YXRzLCxsbGE0c3gscmVidSxzb25vaS1wcGEsdCZjZWpvcnAsbmVnYXlvbHBlZCxzJmFmeW0sb2hlYml2LD8/dXlpZWgsP2FydHhlPz9zbGE/P2khZmZvPz9uJmEmZD9pbGVyP25pZj9ydXNuaSFlZmlsP3NyZWxldmFydD8/P2VpY3M/P3JvZnJpYT8/ZCEuJjFzbmRueWQsNDJwaS1ueWQsN2VyYXVxcyxhbWlsNCxiJm93LW5yZWZlaWxnaXRzbmctLW54LHJiLW5pLHVyLHZ6LW5lbGxldHNlYmdpdHNuZy0tbngsP2Nlc3NuZCZkLG55ZCw/ZGVjYWxwYixlJmRhcmVndG11ZWFydCxsdWhjc3ZyZXNpLG1vaHNuZCxuaWhjYW15ZWssdGllc2JldzMyMSw/Z2lmbm9jZWNhcHNiZXcsaGNpZXJlYnNub2lzc3Vrc2lkLGsmY29kbHVoY3MsZWVnbmlldHNpLD9sc2QtbmksbSZvYyxyb2Z0dGFscGx1aGNzLHVoY29iLWludS1yaHVyOi5jb24ub2ksLD9uJi1pLWctby1sLGUmbGxldHNlYmdpdHNuXHUwMGZjZyxzZ251dGllbCw/aSZlbXRzaSxscmViLW4maSx5ZCw/P25vcmJsaWVoLXNoLnRpLiZoY3JhZXNlci1zZWdhcCxzZWdhcCw/cHYtbmkscmVmZWlsZ2l0c25cdTAwZmNnLD9vJmMscnAteXRpbnVtbW9jLD9wJmgyMSxpb2c6b2wsLG9oc2RhZXJwc3ltLD9yZSZudHJhcGRlZXBzLnJlbW90c3VjLHN1Ji1sYXV0cml2LGxhdXRyaXYsP3QmYWRwdXNuZCx0dWItbmksdW9yLXltLD92cmVzJi1lJmJ1Y2wsbW9oeW0sP2Jldy1lbW9oOi5ueWQsLGx1aGNzLD8/cyZuZCYtJm51ZmlhdCxzZWhjc2ltYW55ZCx0ZW5yZXRuaSw/aXNvYy5ueWQsbWllaCxwcyx2cnMsP29wZXItJm52cyx0aWcsP3NuZGQ6LiZueWQsc25kbnlkLD8sP3ZyZXNpLSZuaWVtLHRzZXQsP3hpMix5JmF3ZXRhZy0mbGxhd2VyaWYseW0sP20sc3JhYix0aWMtYW1pbCw/enRlbiZtaXRiZWwsc2FkdHJldHRldWYsPz9hcnQ/aSZzZG9vdz91Zz8/b24tLW54Pz9lIS4mYmlsP2RlbT9laWY/Z3JvP2lycD9raWlyP21vYz9waWE/dWRlP3ZvZz8/ZWk/ZmZvYz9nZz9yJmY/Z2VkPz8/ZiZhJmM/cz8/aWw/P2chLiZncm8/bG9vaGNzP21vYz90JmVuP3ZwPz91ZGU/dm9nPz9hJmY/Z3Ryb20/cCEuJmdyZWJlZG9jLGtzZWxwLG1lYSxzJm5kcCxydWVsZnh1ZWQsP3Rzb2hjaXRhdHMsd29sZnllaCx4JmxoLG9ieW0sP3kmY3ZycCxrY29yLD8/P3JvdHM/eW92Pz9lbGxvYz9uYSZoY3hlP3JvIS5oY2V0LD8/cm9lZz91Zz8/aSEuJnBvaHNkYWVycHN5bSx2b2c/P3RpbG9wP3YmYmJhP29tPz8/aiEuJmZvLGdybz9vYz90ZW4/Pz9rIS4mYyZhP3M/P2UmbT9uPz9pYm9tP28mYz9mbmk/Zz8/cm8/P2kmYj9sP24/Pz9sJmEmZG1yaWY/cyFyb2Y/Pz9iJmE/aSZiP2R1YT8/P2MmYXJvP3JpYz8/ZG5paz9nIW9vZz8/aSZib20/bXM/P2wmYXNhbD9lcmF1cWE/P3BwYSEudG5pLD91aGNzP3l0cyFlZmlsPz8/bSEuJjQmMzJpLHAmY3Qsdiw/PzY2YyxhaWxpc2FyYixjJmE/b29oLnhvcnBlcyw/ZHVvbGNzZCxnJnJvP3MtcmFlZ2VsaWYsP2tjYXRzZWdkZSxub2l0YXRza3NpZCxvJmM/dCZuaWdvbCxwb2gsPz9wJmkmb24sc25hcnQuZXRpcyw/b2hiZXcsP3ImYWVnZWxpZixpZGNtLG9mc25kLD9zJmR5bSxuZGQsdGk/dW1ob2wsP3QmZW4/ZmFyYyxzJmFjZG51b3Msb2hvbiw/P3VkZT92JmlycD9vZz8/eG9ieW0seSZnb2xvbnlzLHNyYWIsPz9hJmc/biEuJmNpdGVuZWVrLHJlJmdhbmFtcHNpLGgudG9ncm9mLD9zaWgudG9ncm9mLD8/P2VtP2lycD9vcmhjP3c/P24hZ29sb2M/aSZsbm8hLiZlZ2F0cy1vcmVlLGtvb2IsbGxlY3BhZWwsb3JlZSxyZWRsaXViZXRpc2JldyxzbmRtaWVoLHlzcmFiLD8/dz8/byEuZSZjaXZyZXMsdGlzYmV3LD9ocD9sYXRpcGFjP3RzZSZnZGlyYj9yaWY/P3ohLiZhbWlsLHNwb3Jlei0xZ3JwLHRpa2NhdHMsPz8/cnVvYmxlbT8/b20/cCEuJmJvZz9ncm8/bGltP21vJmM/bj8/dGVuP3VkZT8/aXJnP3lrcz8/ciEuJmJpbHRlbixtb2M/bmFjLG9zc2E/P2EmYyFodGxhZWg/P3Btb2M/d3Rmb3M/P2JjP2VoP2lmP290cyEuJmUmcmF3cG9ocyxzYWJlcm90cyw/eSZmbGxlcyxzcmFiLD8/P3RhZWh0P3UmY2VzP3NuaT90JmlucnVmP25lY2NhPz96YT8/P3MhLiZhIWRpc25pbTMyMSw/YiFpYm5hbD9yb2Ztb2s/P2MhYT8/ZCFiP24mYXJiP3Vicm9mbGFudW1tb2s/Pz9lP2Y/ZyFybz8/aCFmPz9pIXRyYXA/P2shc2hmPz9sP20hb2MsdD8/biFteWdza3VyYnJ1dGFuPz9vP3Ahb2hzZGFlcnBzeW0scD8/ciFvd2ViZGx1b2N0aSw/cyFzZXJwP3lzcG9pLD90P3U/dmhmP3c/eCF1dm1vaz8/eT96Pz9hJmMhLnZhcyw/ZWw/aGM/P2kmZXI/dXJjPz9uZXNlbW9oP3JvaD91b2g/P3QmYSZkP3RzJmUhbGFlcj8/bGxhPz8/aXMhLiZhJm1naWYsdm5hYy55bSw/YmV3d3VvaixkZXJhdXFzcHcsZSZsZWosbmkmZWZmYWMsbG5pZ29sLD9yJmF1cXMsb2Nldm9uLD93aW5tbyw/bCZhaWNvc25lcG8sZW5hcGMsb3MsP24mZXliLG8maXRvbix5Yyw/P29jLHJldHVwLHMmaWh0ZWRhbSxwdnRzYWYsP3QmZmFyY2VjcnVvcyxocnMscGd0YWhjLHJvcHB1cyw/dm9nLWFtZ2lmLHcmZWl2ZXJwLG9sZnllaCw/eCZldm5vYzouMS10cyZhZS1zdSxldy11ZSw/LG9iZWlwLD95c3JhYiw/YmV3IS5yZW1hcmYsPz9vdj9yYT90JmlvbGVkP29sPz91dGl0c25pPz91JmxiP3FpJm5pbGM/dHVvYj8/P3YhLiYyMWU/YWk/YiZldz9pYj9vZz8/Y2Umcj90Pz9lJmRuZXJwbWU/cm90cz8/Z3JvP2xpbT9tJm8mYz9uPz9yaWY/P28mYz9mbmk/P3Jhcj9zdHJhP3QmZW4/bmk/P3VkZT92b2c/P2FzP2UzZ2VyYjJoLS1ueD9pJmwhLiZtZWEseGxoLD8/cmQ/c3NlcmdvcnA/P29sPz93JmtjdC0tbng/cj8/eHVsP3khLiZncm8/bGltP21vYz90ZW4/dWRlP3ZvZz8/Pz9mJjBmM3JrY2ctLW54PzE5OHhpbS0tbng/MjgweGltLS1ueD83dnFuLS1ueD9hIS4mZ3JvP21vYz90ZW4/dWRlP3ZvZz8/P2IhLnZvZz93YTliZ20tLW54Pz9jIWExcC0tbnghLiZhMTQtLW54LGI4bGVhMWotLW54LGMmYXZjMGFhYTA4LS1ueCxtYTA5LS1ueCw/ZiZhMWEwOS0tbngsZWExai0tbngsP2d2YTFjLS1ueCxuaGExaC0tbngscGRhMWotLW54LHppbGExaC0tbngsPz9ucz8/ZWExai0tbng/Zz9pYW0/bCZhMWQtLW54P29nPz9uIS4mYmV3P2Nlcj9lcm90cz9tJm9jP3JpZj8/b2ZuaT9yZSZodG8/cD8/c3RyYT90ZW4/Pz9vcnA/cCEuJmdybz9tb2M/dWRlPz8/cnVzP3QhLmhjcyx3IS5zbmRkLD8/dyEuJmhjcyx6aWIsPz8/ZyYyJjR3cTU1LS1ueD84enJmNi0tbng/PzMmNDRzZDMtLW54PzkxdzZqLS1ueCEuJmE1d3FtZy0tbng/ZCYyMnN2Y3ctLW54PzV4cTU1LS1ueD8/Z2xhMGRvLS1ueD9tMXF0eG0tLW54P3Z0YTBjdS0tbng/Pz8/NDU1c2VzLS1ueD81bXp0NS0tbng/Njl2cWhyLS1ueD83JjhhNGQ1YTRwcmViZ20tLW54P3JiMmMtLW54Pz9hIS4mZ3JvP2pibyxtbyZjP24/P29jP3Rlbj8/dmQ/P2IhLiYwPzE/Mj8zPzQ/NT82Pzc/OD85P2E/Yj9jP2Q/ZT9mP2c/aD9pP2o/az9sP20/bj9vP3A/cT9yP3M/dD91P3Y/dz94P3khc3JhYiw/ej8/P2MhYj96YTlhMGNiZ20tLW54Pz9lIS4mY2E/ZW0hYW4/P2dybz9pY3M/bGltP21vYz9udWU/b2ZuaT90JmVuP3JvcHM/P3VkZT92Jm9nP3Q/Pz9hPz9nIS4mZ3JvP2hzYWR0b2IsbGVuYXA6Lm5vbWVhZCwsb2M/c2Fhayx0JmVuP2lrY2F0cyw/eWxwLjZkLD8/aSZhP3Y/P2shLiZlYSxncm8/bGltP21vYz9zdSx0ZW4/dWRlP3ZvZz94eCw/P20hLiZkcnA/Z3JvP2xpbT9tbyZjP24/P29jP3VkZT92b2c/P3BrPz9uIS4mY2xwLGR0bCxlbWFuP2dybz9oY3M/aSFib20/P2wmaW0/b2MsP20mb2M/cmlmLD9uZWcsb2duLHRlbj91ZGU/dm9nP3ppYjouJmdsLGxkLG5vLG8mYyxnLD8/LD9hdz9pIWIhbXVscD8/Y2FyP2QmYXJ0P2Rldz8/aCZzaWY/dG9sYz8/ayZpdj9vbyZiP2M/Pz9scz9uJmFlbGM/aWFydD8/cCFwb2hzPz9yZSZlbmlnbmU/dGFjPz90JmFkP2VrcmFtP2hnaWw/bHVzbm9jP25lZz9vdj9zb2ghLnRmYXJjbmVwbyw/P3ZpJmc/bD8/P28hcz8/dSZyZWhjaXNyZXY/c21hcz90YXJlYnNuZWdcdTAwZjZtcmV2Pz8/byZkP2xiP29nIS4mZHVvbGMsZXRhbHNuYXJ0LD8/P3ImMm4wODRxbGotLW54P2VibW9vbGI/byEuJjc3bmRjLmM6c3IsLGEmcmVtYWN5dGlydWNlc3ltLHQmbmVpbWlwLHNpdnJldGxhLD94b3Iseiw/YmV3LWxsYW1zLGNpbWFueWQtcGksZCZhYi15cmV2LXNpLGUmc3Vmbm9jc2ltLHZhcy1zaSw/bnVvZi1zaSxvb2cteXJldi1zaSx1b2xjJmFyZm5pYXJvZGVmLGVodGduaXR1b3IsbXc6LmF0ZWIsLD8/ZSZhLGNpbi15cmV2LXNpLGdyb2YmbG9vdCxwZWgsP2wmYXMtNC1mZnV0cyxwb2VwYXJvZGVmLD9tJi1tb3JmLGFnZXZyZXMsb2hydW95c2xsZXMsP25vemRvcCxyJmVod29uZ25pb2d5bGRsb2IsaXd5bSx1Y2VzLTc3bmRjLm5pZ2lyby5sc3MsP3QmYWRpZG5hYy1hLXNpLGlzJi15YmJvaCxnb2xiLD8/P2ZlaGMtYS1zaSxnb2xieW1kYWVyLGsmZWVnLWEmLXNpLHNpLD9oLG51dCw/bCZhY29sLXNpLGkmYW13dCx2ZS15cmV2LXNpLD9sYXdlcmlmJi15bSx5bSw/c2QtbmksP20mYWNzc2VjY2EsZWRvbS1lbGJhYyw/biZhZiZibG0sY2Z1LGVnZWxsb2MsbGZuLHMmY2l0bGVjLWEtc2ksbml1cmItYS1zaSx0YXAtYS1zaSw/eG9zLWEtc2ksP2licHR0aCxvcnZpb3AscCZqLHYtbmksPz9vJmpvZHNuZCx0cCZheixvaCw/P3AmaSYtb24sZmxlcyw/byZoYmV3LHRrc2VkZWVyZiw/dGYmZSZtb2gsdnJlcyw/eW0sPz9yJmUmZ2F0b3AscHBlcHRlZXdzLHN1LXh1bmlsLWEtc2ksP3ZkbWFjLD9zJmEmaWxhJm55ZCxzbmQsP255bXNkLD9iJmFsZm13LGJldnJlcyw/ZCZpa2NldC4zcyx5bGltYWYsP2UmZ2Fwc2YsaXJmb3RhdG9waGN1b2MsP2osa29vYi1kYWVyLGx0YnVwLG5kJi13b24sZGVlcmYsZW1vaCxnb2xiLGtjdWQsbW9vZCxueWQ6LiZlbW9oLG9nLD8scCZkLHMsP3J2ZCx0b2csdW9sYyw/cyZhLXNrY2lrLG5kZCw/dG5lbWhjYXR0YW9tYix1LD90JmNlJmpvcnBhcm9kZWYuJmR1b2xjLGd0cy5zby5wcGEsc28ucHBhLD9yaWRlcmJldyw/ZSZld3MteXJldi1zaSxucmV0bmkmZWh0Zm9kbmUsZm9kbmUsPz9oZ2luay1hLXNpLHMmaXhldG4mb2Qsc2VvZCw/byZoLWVtYWcsbC1zaSw/cmlmeWFtLD8/dWU6LiZhYyxkYyxlJmIsZCxlLGksbSxzLD9nJmIsbiw/aGMsaSZmLHMsP2smZCxtLHMsdSw/bCZhLGksbixwLD9uJmMsaSw/byZuLHIsc3NhLD9waixyJmYsZyxoLGssdCw/cyZlLGksdSw/dCZhLGVuLGksbCxtLG5pLHAsP3UmYSxkZSxoLGwsciw/dmwseSZjLG0sP3omYyxuLD8/LHZyZXNueWQseCZpbnVlbW9oLHVuaWxlbW9oLD95JmxpbWFmeHV0LHJhaWRhbmV0YWgsc3JhYiw/Pz91YiZtYWg/b2o/Pz9zIS4mZGVsYWNzbmUsZ3JvP21vYz90ZW4/dWRlP3ZvZz8/Z2I2MzlqNDN1czUtLW54Pz90P3UhLiZjJmE/cz8/ZW4/Z3JvP2xpbT9tb2M/byZjP2c/P3JvP3N1P3VkZT92b2c/Pz92IS51ZGU/YTFjLS1ueD8/d3NhMDgtLW54Pz9oJjBlZTVhM2xkMmNreC0tbng/NHdjM28tLW54IS4mYSYyeHljM28tLW54PzNqMGhjM20tLW54P3ZlNGIzYzBvYzIxLS1ueD8/aWQxa3p1YzNoLS1ueD9sOGJ4aThpZmMyMS0tbng/cmIwZWYxYzIxLS1ueD8/PzgmOHl2ZmUtLW54P2E3bWFhYmdtLS1ueD8/YiEuJmdybz9tb2M/dGVuP3VkZT92b2c/P21nPz9jIS4mN2VyYXVxcyxhbWlsNCxkdW9sYy1kcmF5a25pbCxlJmdhcm90c3RjZWpiby4mYW1yLGdwbCw/bGFjc2R1b2xjLiZhbXIuc3RjZWpibyxncGwuc3RjZWpibyx0c3VjLD90aXNiZXczMjEsP2duaWtzbmQscCZoMjEsb2hzZGFlcnBzeW0sP3NuZCZ0b2csdW9sYyw/d29sZi5lJmEuMXBsYSxuaWduZXBwYSw/eGkyLHl0aWMtYW1pbCw/YW9jP2V0IS5zcHBhcmV2ZWxjLD9pciFldXo/P3ImYWVzP3VoYz8/c29iP3RhdyFzPz8/ZDBzYmdwLS1ueD9mJjJscGJnbS0tbng/az8/ZyEuJmdybz9saW0/bW9jP3Rlbj91ZGU/dm9nP3ppYj8/P2shLiZncm8/bW9jP3Rlbj91ZGU/dm9nPz8/bSFhMWotLW54Pz9vY2lyP3AhLiZncm8/aT9saW0/bW9jP29nbj9zbmR1b2xjLHRlbj91ZGU/dm9nPz8/cyEuJmFkdG9iLGVsYmF2b2wsZyZuYWJoc2FoLHJvPz9saW0/bSZvYz9yb2Z0YWxwLiZzdSx0bmUsdWUsPz90JmVuP3JvcGVsZXQsP3ZvZz93b24sP2EmYz9ub20/P2kmZD9mP3JpPz8/dCEuJmNhP2VuaWxubyxpbT9uaT9vJmM/Zz8/cG9ocyxybz90ZW4/P2lhZj9sYWVoIS5hcmgsP29yeGVyP3JhZT8/dm8hLmxvcGRyZW4sP3piPz9pJjN0dXBrLS1ueD83YTBvaS0tbng/YSEuJmZmbz9ncm8/bW9jP3JlbWFyZixzcHBhb2xpayx0ZW4/dXd1LD8xcC0tbng/YnVkP2RudXloP3RuaWhjPz9iIS4mZ3JvP21vYz9vYz9ybz91ZGU/P2FoZHViYT9vIW0hLiZkdW9sY3NkLHlzcmFiLD8/P3M/P2MhLiZheWItdHJvcG9yYS0tbng/Y2E/ZGU/Z3JvP21vYz9vJmM/Zz9zc2E/P3JvP3N1LHQmZW4/bmk/cm9wb3JcdTAwZTlhPz91ZGU/dnVvZz8/Y3VnP3Q/P2QmZGs/dWE/P2UmYmhmLS1ueD9waWF0Pz9mIS4mYXc1LW5lbmlra2gtLW54LGRuYWxhP2kma2ksc3Bhayw/bXJvZnRhbHBkdW9sYy5pZixuZW5pa2tcdTAwZTRoLHBvaHNkYWVycHN5bSxyZXRuZWNhdGFkLiZvbWVkLHNhYXAsP3V2aXNpdG9rMzIxLHlkLD9vbmFzPz9nIS4mZCZvbT90bD8/Z3JvP21vYz91ZGU/dm9nPz8/aCZjJmF0aWg/cmE/P3MmYWJvZG95P2lidXN0aW0/Pz9qdW9ocz9rIS4mZ3JvP21vYz9vZm5pP3Rlbj91ZGU/dm9nP3ppYj8/YjRnYy0tbng/aXchLnJlbWFyZiw/bmlzbGVoP3M/dXp1cz8/bCFkcmFoY2lyP2lhbXNpPz9tYWltP24hLiZiJmV3P29nPz9jYT9ncm8/bGltP21vJmM/bj8/bmk/byZjP2ZuaT8/cHA/dCZlbj9uaT8/dWRlP3ppYj8/YWlycGljP2kmaGdyb2JtYWw/bT8/cmU/P29tP3JhcnJlZj9zIS4mNWYsZWdhcHRpZyxwcGF0aWcsP2VkPz90JmkmYz9uaWZuaT8/cmFoYj8/dXQ/diEuJjIxaz9ncm8/bW9jP29jP3Rlbj8/P3dpaz94YSZycD90Pz95Zj8/aiY2cHFnemE5aWFiZ20tLW54PzhkYTF0YWJiZ2wtLW54P2IhLiZhY2lyZmE/ZXRvP2dybz9tJm9jP3NpcnVvdD8/byZjIWU/P2ZuaT9ub2NlP3JnYT90c2VyPz9ydXNzYT9zJmV0Y2V0aWhjcmE/cmlzaW9sP3RhY292YT8/dCZlbj9uYXJ1YXRzZXI/P3VkZT92aW51P3llbm9tPz8/ZD9mIS4mY2E/ZGk/ZW1hbj9ncm8/bGltP21vYz9vJmZuaT9ycD8/dGVuP3VkZT92b2c/emliPz8/bmo/cz90IS4mYmV3P2MmYT9pbj8/ZW1hbj9ncm8/bGltP21vYz9vJmM/Zz8/dCZlbj9uaT9zZXQ/P3VkZT92b2c/emliPz8/eXF4OTRxaXQtLW54Pz9rJjh1eHAzLS1ueD85MjR0Y2YtLW54P2FyZmVsP2MmYSZiZGVlZj9sYj8/ZWJkbnVsP2lsYz9yZW0hZT8/P2QhLiZlJmRpc2VtbWVqaDMyMSxyb3RzLD9nZXIsbXJpZixvYyxwb2hzZGFlcnBzeW0semliLD90Pz9lJmVzP3NhbWV0Pz9oIS4mYSY0eWEwY3UtLW54PzV3cW1nLS1ueD8/YjNxYTBkby0tbng/Y25pLGQmMiYyc3Zjdy0tbng/M3J2Y2wtLW54Pz81eHE1NS0tbng/dGwsP2cmYTBudC0tbng/bGEwZG8tLW54P3JvPz9pJjA1MHFtZy0tbng/N2Ewb2ktLW54P3hhMGttLS1ueD8/bSYxcXR4bS0tbng/b2M/P25wcWljLS1ueD90ZW4/dWRlP3YmZGk/b2c/dGEwY3UtLW54Pz94dmEwZnotLW54P1x1NGViYSZcdTRlMmE/XHU1MDBiP1x1N2I4Nz8/XHU1M2Y4XHU1MTZjP1x1NWU5Y1x1NjUzZj9cdTdkNjEmXHU3ZGIyP1x1N2Y1MT8/XHU3ZTU0Jlx1N2Q0ND9cdTdlYzQ/P1x1N2VjNyZcdTdkNDQ/XHU3ZWM0Pz9cdTdlZGMmXHU3ZGIyP1x1N2Y1MT8/XHU4MGIyJlx1NjU0ZT9cdTY1NTk/Pz9uPz9pJnRzb2I/dmRuYXM/P2whLiZiZXc/YyZhP29zPz9kdGw/Z3JvP2hjcz9sZXRvaD9tb2M/bnNzYT9vZ24/cHJnP3QmZW4/bmk/P3VkZT92b2c/P2F0P2NkP2lzPz9tIS4mZW1hbj9mbmk/Z3JvP21vYz90ZW4/dWRlP3ZvZz8/P24mYWIhY2ZkaD9ldGF0cz9tbW9jP3QmZW4/Zm9zPz91Pz9pIWwhLiZhJmhjYXJvdHMuc2ZwaSx2bmFjLD9jJml0ZW5lZWssbW5pb2osP2VnYXJvdHN0Zm4uc2ZwaSxub3ljLHBlcHltLHMzdy5zZnBpLHp0aXJmeW0sPz9wPz8/b29iP3AhLiZiJmV3P29nPz9jYT9nJm9nP3JvPz9rb2c/bSZhZj9vYz8/cCZrZz9vZz8/c29nP3Rlbj91ZGU/dm9nP3ppYj8/P3JvdyEuJnJldHVwLHl4b3JwLWVuaWdhbWksP3RlbiEuJmV0aXJ3cHBhLGh0dW1pemEsbWVhLG5vbHQsbyZjLHZyYSw/Pz8/cyEuZ3JvPz90P3UhLiZjJmE/bHA/P2R0bD9lJmNpbG9wP20/dGlzbWluLD9ncm8hLiZndWw6Zywsc2d1bCx5ciZldHRvbHkmbGtlZXcsdGluaWZmYSw/dG5lZWxmZmFyLD8/P2xlbmFwLXRuZWRuZXBlZG5pLG4mbm9jLG9pc3NpbW1vYy0mbGF5b3IsdG5lZG5lcGVkbmksPz9vJmMhLiZidW5zb3J0ZXIudHN1Yyxlbmlsbm95c3JhYixrcmFtZXR5Yi4maGQsbXYsP29taWRhLHAmaS1vbixvaHNkYWVycHN5bSw/dGZpaHNyZXlhbC5qLHZyZXMtaG4seXNyYWIsPz9ycG9jLD9wc29oLHNobj90JmVuP25teXAsc2V1cW5pLXRuZWRuZXBlZG5pLD92b2chLiZlY2l2cmVzLGlwYSxuZ2lhcG1hYyw/P3dlaXZlci10bmVkbmVwZWRuaSx5JnJpdXFuaS0mY2lsYnVwLHRuZWRuZXBlZG5pLD9zcmFiLD8/Pz9sJjA0c3I0dy0tbng/YSEuJmdybz9saW0/bW9jP3Rlbj91ZGU/dm9nPz9ib2xnIS5ldGlyd3BwYSw/Yz9lZD9nIWVsPz9pJmMmbmFuaWYhLm9jLGxwbD8/b3M/P3JvbWVtP3RuZWR1cnA/P24maWY/b2l0YW5yZXRuaT8/dCZpJmdpZD9wJmFjP3NvaD8/P25lZD9vdD8/P2MhLiZib2c/bGltP29jP3NuZHVvbGMsdm9nPz8/ZGlsP2UmZGF0aWM/biZhaGM/bmFoYyFyZWh0YWV3Pz8/dCFvaD9yaWE/dGFtPz92YXJ0Pz9mJjhmJnBiZ28tLW54P3RiZ20tLW54Pz9hP24/P2chLiZncm8/bW9jP29jP3Rlbj91ZGU/Pz9oJmQ/b3A/P2khLiYyMWs/Y2E/ZmRpP2dybz9pbnVtP29jIS4mZWdhcHZhcixyZWRyb3RpYmF0LHRpYmF0eW0sPz90ZW4/dm9nPz9hJmY/bSZlIS4maGN1b3RuaSxrd2F0LnAsb3Rrd2F0LnAsPz9nP3RvaD8/P20/cj8/bCZhJmImZXNhYj90JmVrc2FiIS4mc3VhLHpuLD8/b29mPz8/Yz9tdD8/ZSZkP2hzPz9paG1haWxsaXc/aj8/bSEuJmNhP2Vzc2VycD9ncm8/bW9jP28mZm5pP3NzYT8/cnA/dCZlbj9yYT9zbmk/P3VkZT92Jm9nP3VvZz8/Pz9uIS4mZXRpc2JldzMyMSxubyZtZWQscnRzaWMsP29jLHBvaHNkYWVycHN5bSxyZXRzdWxjLWduaXRzb2gsdm9nLHlhbHBoayw/bz8/byZhP2J0dWY/bCEuZ21vLD9vJmMhLiZlZCxyb3RuZW1lbGUsPz9oY3M/P3JpdD91Pz9wIS4mMnVveSxhJmNpbiZkaXdzP2dlbD8/ZCZnLG9ydHNvP3VyYXdvbj8/aSZkZW0/bXJhdz9ueWRnLD9rJmVsbyZndWxkP3J0c28/P3Nsb3BvbGFtP3RzdT95dHN5cnV0Pz9sJmlwP28ma3pzP3cmLWF3b2xhdHM/b2tzbm9rPz8/P21yaWZkLG4mZXJhcG9ocyxpbWc/emNlbCw/cm9nJi1haSZiYWI/bmVsZWo/P2o/ej8/c3luP3RzYWltP3cmYSZsJmVpYj9pP28/P3pzcmF3Pz9vJm5hbWlsP3RhaW5vcCw/P3omZWl3b2xhaWI/bW9sPz8/YyZlJml3JmFsc2Vsb2I/byZuc29zP3J0c28/Pz9sZSZpbT96cm9nej8/P29ydyxwPz9kJmVtLGlhP3JhZ3JhdHM/dW9sYyZpbnUsc2RzLD8/ZSZjJmkmbHJvZz9uYWliYXAsdyZlaW5yZWlrcyxpbGcsbyZoYyZhcmF0cz9vcnA/P2tsb3A/dGFrPz8/P3l6cmVpYm9rPz9pJmNzanVvbml3cz9rc3JvbW9wP3NhbGRvcD8/bCZhaGRvcD9vcG8/P25hcG9rYXosdCZhdHNlbGFlcj9pc2VscG1pcyw/eiZyb21vcD9zd296YW0/Pz9nJmFsYmxlP2V6cmJvJmxvaz9ucmF0Pz9ybz8/aGN5enJibGF3P2kmY3NvbW9oY3VyZWluP2dyYXQ/a2xhd3VzPz9rJmNvbHAsZSZydXQ/d2FsY29sdz8/aW4mYnlyP2Rpd3Msc2Fyayw/bGU/byZuYXM/dHN5bGFpYj8/cm9iJmVsP2xhbT8/cyZhbHM/amF6ZWw/bmFkZyxwdWxzP3Jvd2V6cnA/Pz9sJmNvbHc/ZSZyP3ZhcnQ/P2kmYW0/bT8/P20mbyZjP2Rhcj9uP3R5Yj8/cyZnP2lydW90Pz90IWE/Pz9uJmEmZ2F6P256b3AsP2kmYnVsP2NlemN6cz9sYnVsLG1vbG93P25vaz96ZCZlYj9vYmVpd3M/Pz91JmxlaXc/cm90LD95JnR6c2xvP3omcnRlaz9zZWljPz8/P28mYyxmbmk/ayZjZWxvP3NsZWliLHpkb2xrPz9sa2FuP24mbGVpbT9wZWs/dCZ1az95emN6cz8/eiZjb3BvP2Vpbmc/cm93YWo/Pz9yZ2E/dCZub2tkLHVhPz93JmVqYXJnP29nYXJtPz8/cCZlJmViLGxrcyFlbW9oLD8/a2x3d29ydHNvP29ocyEtZWNyZW1tb2NlLGRhZXJwc3ltLD8/cm9tb3BoY2F6P3Mma2xvZmMsb3M/P3QmYWl3b3A/ZW4/b3BvcyxyYSxzZXpjPz91ZGU/diZpcnA/b2chLiZhJmlvP3A/cyF3Pz8/Ym5pJnA/dz8/Y2k/ZHRpdz9lJmtvP3NzJnA/dz8/P2Zpdz9nJmltdT91Pz9oaWl3P20maWd1P3Jpbz91IW8/Pz9uZHMhaXB6Pz9vJmtzP3AhcHU/P3M/d3Rzb3JhdHM/P3AmYT9zcCFtaz9waz93az8/dSZtP3A/P3drP3o/P3ImaGNzbz9rc3c/cD9zPz9zJmk/b2l3P3U/enU/P3RhbHVzbm9rP3cmZ3pyP2kmcD9yZz93Pz9tP28mbz9wdT8/dSFpbXp3Pz8/eiZrdz9vdXc/Pz8/P3cmYSZsJmNvcnc/c2l6ZG93Pz93Pz9vJmdvbGc/ayZhcmssdWw/enN1cnA/P3ImYXo/Z2V3Pz90JnJhYnVsLHN1Z3VhPz96JmNva3M/c2V6cj8/Pz94ZXM/eSZidXpzYWs/ZCZhemN6c2VpYj9pa3NlYj8/aGN5dD9uJmplcz9sb2QtenJlaW1pemFrPz9wYWw/ciZvZ3Q/dXphbT8/d2FsdXA/enV0cmFrPz96JmFtLWF3YXI/YyZhcHJhaz9pd29sP3pzb2dkeWI/P2QmYSZsZXpjP3JlaXMsP29sLD9pYj9yZWlneixzJmkmbGFrP3A/P3VrbG8/Pz8/bD8/ciZhcz9mP3M/P3MhLiZncm8/bW9jP3Rlbj91ZGU/dm9nPz8/dCEudm9nPz91Ym5hdHNpP3gzYjY4OXFxNi0tbng/eWM1cmI1NC0tbng/P20mMDB0c2IzLS1ueD8xcXR4bS0tbng/OTgxcnZqLS1ueD9hIS4mZW51bW1vYz9ncm8/bW9jP28mYz9pZGFyLD90ZW4/P2MhYmV3Pz9kcmV0c21hP2UmcnRzP3QhLiZjaXRzYWxlaixlc3J1b2NzaWQsPz8/Zm1hP3hxLS1ueD8/YiEuJmdybz9tb2M/dGVuP3VkZT92b2c/P2k/P2MhLiZtb2M/b2M/dGVuP3ZvZz8/P2QhLiZncm8/bW9jP29jP3Rlbj91ZGU/dm9nPz8/ZiEuJmdybz9tb2M/b2lkYXIsdGVuP3VkZT8/aT8/ZyF2dTk2ZDhzeXpmLS1ueD8/aD9pIS4mY2E/Z3JvP21vYz9vYyEuJmNscD9kdGw/Pz90JmVuP3Q/P3Z0Pz9rP3JiZzQtLW54Pz9rIS4mZHJwP2UmcmlhbmlyZXRldj9zc2VycD8/Z3JvP2xpbT9tJm8mYz9uPz90Pz9uaWNlZGVtP29zc2E/cG9vYz9zJmVyaWF0b24/bmVpY2FtcmFocD9zYT8/dWRlP3Ymb2c/dW9nPz8/P2wmaWY/b2hrY290cz8/byEuJmRlbT9ncm8/bSZvYz91ZXN1bT8/byZjP3JwPz90ZW4/dWRlP3ZvZz8/Yj9jIS4mMHgsMSYyMXNlc2FpbGEsZG5hMS1zcHBhLD8yYXEsM3BtZXZyZXMsYSZjJi1tb3JmLGlyJmJhZm5vLGZhLD8/ZyYtbW9yZixveS1zZWhjYWV0LD9pLW1vcmYsbSYtbW9yZixhbGwmLWEtc2ksYW1haSw/P3AmLW1vcmYsYy1hLXNpLD9yZW1hY3l0aXJ1Y2VzeW0scyx0JmFkdHN1ZGduaWh0LGVtdGEsP3YtbW9yZix3LW1vcmYseiw/YiZldyYtc25kbnlkLGFydWthcyxkcmFpdy5zZWdhcCxvdHRhZCw/aWxkdHMuaXBhLD9jJmFteXRpcnVjZXNlbW9oLGQtbW9yZixlc3lyY3MsaXRzYWxlai5vbWVkLG4mLW1vcmYsdnltLD9wJmtyb3dlaHQseXRpcnVjZXNlbW9oLD9yaWV2cmVzLHMtbW9yZiw/ZCZhZXJvdGZmdXRzLGUmYm1lLWRldHNvaC1hdm5hYyxjYWxwYixpZml0cmVjLSZzaSx0b24tc2ksP3Jld29wZW5pZ25lcHc6LnNqLCx0c29oJi1zY29kZWh0ZGFlciwyYSxlY2Fwc3BwYSw/P2kmLW1vcmYscGFycGMscmdldmlzc2FtLnNhYXAsP20tbW9yZixuJi1tb3JmLGFiZWh0LWh0aXctc2ksP29ycG5vbmR1b2xjd20scy1tb3JmLHVvbGMmLW5vaXRhdHN5YWxwLGVodGduaXR1b3IsaHIsaWFmYXcuZCZlaix5ciw/bWVhZWJvZGEsbmV2aWEscGFucXltOi0mYWhwbGEsdmVkLD8scyZhbnltLG1ldHN5c3R1byw/dmVkJmoscHcsPz92cmVzZXIsd2V0b21lciw/ZSZidXR1b3lodGl3LGMmYXBzeWxvcCxpJmZmby1zbmRueWQsdmVkbG9vdHgsPz9kOi1tb3JmLG8mYyZhdm5hYyxlbGdvb2csP24maWwuc3JlYm1lbSxuZXZlLiYxLSZzdSx1ZSw/Mi0mc3UsdWUsPzMtJnN1LHVlLD80LSZzdSx1ZSw/Pz8/LGVyZiYtc25kbnlkLHNuZGQsP2ZpbGZsYWhldnJlcyxnJmFyb3RzLTc3bmRjLGRlLXlsdHNhZixuYWhjeGVldnJlcyxyb2Ytbm8sP2kmaGNldC1hLXNpLHAtc2VraWwsP2smYXVxZXZyZXMsaXJ0c3JldG51b2NldnJlcyw/bCZiaXRwYS1ubyxnb29naHRpdyw/bSZhZ2V2cmVzLGluYS1vdG5pLXNpLG9oLSZzbmRueWQsdGEtc25kbnlkLD8/biYtbW9yZixpbG5veXNyYWIsb2ctc2ksP3BhY3NsZWRvbSxyJmFsZmR1b2xjeXJ0LGVod3luYW5vaHR5cDoudWUsLGloY2VjLD9zcnVuLWEtc2ksdCZpJm51YXJlcG8scyYteWJib2gsYWxveSxiZXctZXZpbCxlbHBtaXMscm9kYWJldyx0aXBvaHMseGl3LD8/b21lci1zbmRueWQseXNnb2xiLD92JmFscy1lbGNpYnVjLWEtc2ksaXRhdnJlc25vYy1hLXNpLD96JmFta2NhcixlZWxnLGlpZyw/P2ZlaGMtYS1zaSxnJm5pJmdhdHMtJnJhZWdodHVhLHN3ZW5ud290LD9rc25kZCxyb2JzaWtyb3csdHNvaCYtYnQuZXRpcyxlZGFsYmRlcml3LG92aXAsdW55ZCw/P28mZmdwLGxiJi1zbmRueWQsYW5ldGFoLHNpaHRzZXRpcncsPz8/aCZuLW1vcmYsby1tb3JmLD9pJmZpd2VodG5vLGgtbW9yZixraXctc25kbnlkLG0tbW9yZixwJmFlcm9jbmUsZGV0c29oLD9yLW1vcmYsdy1tb3JmLHomaWhjcHBhLG5pbHBwYSw/P2puLW1vcmYsayZhJi1tb3JmLGVyZm9jc2ljLD9jaWxzLXNpLGVlZyYtYSYtc2ksc2ksP3NuZGQsP2gsbGF0c25hZWJjaXRzYWxlOi4mMS0maHQmcm9uLXVlLHVvcy0mZW0sZmEscGEsdWUsPz9sYXJ0bmVjLSZhYyxlbSxsaSx1ZSw/dHMmYWUmLSZhcyxwYSxzdSx2b2ctc3UsP2h0JnJvbi1wYSx1b3MtcGEsPz9ldy0mc3UsdWUsdm9nLXN1LD8/PzItJmh0dW9zLXVlLHRzJmFlJi1zdSxodCZyb24tcGEsdW9zLXBhLD8/ZXctJnN1LHVlLD8/PzMtdHMmYWVodCZyb24tcGEsdW9zLXBhLD9ldy11ZSw/NS10c2FlaHR1b3MtcGEsNy10c2FlaHR1b3MtcGEsPyxuaWwta2FlcnRzLG8tbW9yZixyJmFkaHRpd3RsaXViLG93Ji0mc25kbnlkLHRhLXNuZG55ZCw/dGVuLW9yZWhrY2F0cyw/P3NlZGFsLHUsP2wmYSYtbW9yZixjb2xvdHRhZCxyZWJpbC1hLXNpLD9mLW1vcmYsaSYtbW9yZixhbSYtc25kbnlkLGRldHNvaHB3LD8/bGVjZWxmZmF3LHJ1LSZlbHBtaXMsdGFlbiw/P20mbi1tb3JmLHJvZiZlJnB5dC5vcnAscmVyYWMtaHRsYWVoLD90YWxwLWV2aXJkLD9zYWNyYXNldnJlcyx1aXJhcnJldC15bHRzYWYsP24mYSZjaWxidXBlci1hLXNpLGYmLXNsbHViLWEtc2kscmFjc2FuLWEtc2ksP2kmY2lzdW0tYS1zaSxyYXRyZWJpbC1hLXNpLD90YXJ1a2FzLD9jLGRjJmhzdW1zLHVtcHcsP2VlcmctYS1zaSxpJi1tb3JmLGpvZCw/bS1tb3JmLG8mZWh0bmFwdG9nLGlzYW0tYWwtYS10c2UscnRhcC1lbC10c2UscyZpYW0tYWwtYS10c2UscmVwbGF1c3VudSw/P3BqLHQtbW9yZiw/byZjLGhjZS1uYW10c29wLGlkdXRzeGl3LGpvZHNuZCxtJi1tb3JmLGVkLWJhbHRsb3csP25pbG94aXAsdCZpbmdvY25vemFtYS4mMS0maHQmcm9uLXVlLmh0dWEsdW9zLSZlbS5odHVhLGZhLmh0dWEscGEuaHR1YSx1ZS5odHVhLD8/bGFydG5lYy0mYWMuaHR1YSxlbS5odHVhLGxpLmh0dWEsdWUuaHR1YSx4bS5odHVhLD90cyZhZSYtJmFzLmh0dWEscGEuaHR1YSxzdS4maHR1YSxzcGlmLWh0dWEsP3ZvZy1zdS5zcGlmLWh0dWEsP2h0JnJvbi1wYS5odHVhLHVvcy1wYS5odHVhLD8/ZXctJmFjLmh0dWEsc3UuJmh0dWEsc3BpZi1odHVhLD91ZS5odHVhLHZvZy1zdS5zcGlmLWh0dWEsPz8/Mi0maHR1b3MtJnBhLmh0dWEsdWUuaHR1YSw/bGFydG5lYy11ZS5odHVhLHRzJmFlJi1zdS4maHR1YSxzcGlmLWh0dWEsP2h0JnJvbi1wYS5odHVhLHVvcy1wYS5odHVhLD8/ZXctJnN1LiZodHVhLHNwaWYtaHR1YSw/dWUuaHR1YSw/Pz8zLXRzJmFlaHQmcm9uLXBhLmh0dWEsdW9zLXBhLmh0dWEsP2V3LXVlLmh0dWEsPzQtdHNhZWh0dW9zLXBhLmh0dWEsNS10c2FlaHR1b3MtcGEuaHR1YSw3LXRzYWVodHVvcy1wYS5odHVhLD90YWR5bSw/P3AmMnBldnJlcyxhZWx1dHltLGkmLXNuZG55ZCxmbGVzLG9nb2wscnVveSZlc29sLGhjdGlkLD95bSZlZXJmLHRlZyw/P21pcmhzZWxibXViLG9ocyZkYWVycHN5bSx1bmV2aXYsP3BhJi0mZW1hcyxzZWx1Y3JlaCw/YW5pczpwaXYsLGVzYWJlcmlmLGlwYXJ0czouYWlkZW0sLGsxLG51c3B1LG9pZmlsYXVxLHJvZXRlbToudWUsLHNucmV0dGFwY2lnYW0sdGlsbWFlcnRzLHVrb3JlaCx5ZmlscG1hLD90JmZldnJlcyx0aGV2cmVzLD8/ciYwODEsYSYtbW9yZix0c2tjb3ItYS1zaSw/Yjphc25kLCxlJmQmaXYmZXJwLXliLWRldHNvaC5zYWFwLG9ycG53byw/bmVyJi5wcGEsbm8sPz9lJmJldnJlcyxuaWduZS1uYS1zaSw/Z2dvbGItYS1zaSxoJmNhZXQtYS1zaSxwYXJnb3RvaHAtYS1zaSw/a3Jvdy1kcmFoLWEtc2ksbiZnaXNlZC1hLXNpLGlhJnJ0bGFub3NyZXAtYS1zaSx0cmV0bmUtbmEtc2ksPz9wJmFjc2RuYWwtYS1zaSxlZWtrb29iLWEtc2ksP3JldGFjLWEtc2ksc3VicSx0biZlY3lzcmFiLGlhcC1hLXNpLHVoLWEtc2ksP3ZyZXMmLSZraS4mY3BqLXJldi1kdW9sY2osZHVvbGNqLD9zJm5kbnlkLHB2dHNhZiw/P2JkeW0saW5pbSxubWFkLHBjLHNhayw/eSZhbHAtYS1zaSx3YWwtYS1zaSw/emlsaWJvbWRlZXBzZWdhcCw/ZyxpdHVvYixtZ3JwLm5leCxvJi1tb3JmLHBhdi1ubyxzaXZkYWxhaWNuYW5pZi1hLXNpLHQmYXJlbGVjY2FsYWJvbGdzd2EsYyZhLW5hLXNpLG9kLWEtc2ksP3N1c2F5bSw/P3AtbW9yZix1JmFzLW8tbnlkLGUmdHNvaC4mZHVvbGMtZ2FyLGhjLWR1b2xjLWdhciw/dWdvbGItbm9tLXRzZSw/b211aGV2cmVzLD8/cyZhJmFwb2QsaWxhJm55ZCxzbmQsP24mZHVvbGN5bSx5bXNkLD92bmFjJi1zdWVkLHJlbWFyZiw/P2ImYWwtZWNpcixiZXZyZXMsP2MmZHVvbGNhYmFiaWxhLGkmcCYtc25kbnlkLGV2cmVzLD90Y2F0eXRpcnVjZXMsPz9keWxpbWFmLGUmY2l2ZWQtYW5lbGFiLGl0aWxpdHUzLGxhaHctZWh0LXNldmFzLG1hZy1vdG5pLXNpLHQmaSZpaXMsc3JvLD95c2tjaXVxLD91Z2FlbHlhanlhcmcsP2ZwaS0mZXJhbGZkdW9sYyxmYyw/aSZodDJ0bmlvcCxtdXJ1ZCxwYSZlbGdvb2csdG5lbHRuZWcsPz9qZmFjLGsmLW1vcmYsYWVyZi10ZW4sY29sYiZlZ3JvZixwb2hzeW0sP25pbGthZXJ0cyw/bS1tb3JmLG4mZCYtcG1ldCxkJi1waSx1bnlkLHlhcmQsP2dvbGIsaHRpd3NzZW0sbG9vYzEsbW9vZCxyYmEsdG9nLD9rc2VscCxueWQsb290cmFjLW90bmktc2ksP28mLXhvYmVlcmYseG9iZWVyZiw/cHBhJi1hdm5hYyxyYWVnaHR1YSxzd2EsdG5lZyw/ciZhYy1vdG5pLXNpLGUmbnRyYXAtcGFlbHV0LHRzb2htYWVyZCw/P3MmZSZsLXJvZi1zbGxlcyxydGNhLW5hLXNpLD9pYm9keW0sP3RzYWViLWNpaHR5bS4mYSZsbGljbm8sem5vLD9pbGF5LGxhY2FyYWMscmUmZ2l0bmVmLG1vdHN1Yyw/c3YsdG9sZWNvLHg6biZpaHBzLHlsLD8sP3Usd2Fub3phbWEuJjEtJjNzLGh0JnJvbi11ZSYtM3MsLiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD8/dW9zLSZlbSYtM3MsLiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD8/ZmEuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/cGEmLTNzLC4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLHlhd2V0YWctc2NpdHlsYW5hLD8/dWUuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/Pz9sYSZucmV0eGUtM3MscnRuZWMtJmFjJi0zcywuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHNwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/c3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD8/ZW0uJjNzLGFkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD9saS4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnNmdiw/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsP3VlJi0zcywuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyx5YXdldGFnLXNjaXR5bGFuYSw/Pz8/dHMmYWUmLSZhcyYtJjNzLGV0aXNiZXctM3MsPy4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD8/cGEmLTNzLC4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/P3N1Oi1ldGlzYmV3LTNzLC4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZCZldGFjZXJwZWQtM3Msb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD8/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3Msc3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD9zcGlmLSYzcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MseWF3ZXRhZy1zY2l0eWxhbmEsPyx2b2ctc3UmLSYzcyxzcGlmLTNzLD8uJjNzLGFkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3Msc3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD9zcGlmLSYzcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsPz8/aHQmcm9uLXBhJi0mM3MsZXRpc2Jldy0zcyw/LiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MseWF3ZXRhZy1zY2l0eWxhbmEsPz91b3MtcGEmLSYzcyxldGlzYmV3LTNzLD8uJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyx5YXdldGFnLXNjaXR5bGFuYSw/Pz8/ZXctJmFjLiYzcyxhZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHNwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/c3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD9zdSYtJjNzLGV0aXNiZXctM3MsPy4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3Msc3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD9zcGlmLSYzcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsPz91ZSYtJjNzLGV0aXNiZXctM3MsPy4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZCZldGFjZXJwZWQtM3Msb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD8/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLHlhd2V0YWctc2NpdHlsYW5hLD8/dm9nLXN1Ji0mM3MsZXRpc2Jldy0zcyxzcGlmLTNzLD8uJjNzLGFkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3Msc3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD9zcGlmLSYzcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsPz8/Pz8yLSZodHVvcy0mcGEuJjNzLGFkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD91ZS4mM3MsYWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsPz9sYXJ0bmVjLXVlLiYzcyxhZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/dHMmYWUmLXN1Ji0zcywuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGQmZXRhY2VycGVkLTNzLG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/P2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHNwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/c3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLHlhd2V0YWctc2NpdHlsYW5hLD8/aHQmcm9uLXBhJi0zcywuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyx5YXdldGFnLXNjaXR5bGFuYSw/P3Vvcy1wYSYtJjNzLGV0aXNiZXctM3MsPy4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLHlhd2V0YWctc2NpdHlsYW5hLD8/Pz9ldy0mc3UmLSYzcyxldGlzYmV3LTNzLD8uJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGQmZXRhY2VycGVkLTNzLG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/P2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHNwaWYtJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/c3BpZi0mM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLHlhd2V0YWctc2NpdHlsYW5hLD8/dWUmLTNzLC4mM3MsOWR1b2xjJi1zd2Euc3Rlc3NhLXdlaXZiZXcsLnMmZnYsdGVzc2Etd2VpdmJldyw/P2FkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/Pz8/PzMmLXRzJmFlaHQmcm9uLXBhJi0zcywuJjNzLDlkdW9sYyYtc3dhLnN0ZXNzYS13ZWl2YmV3LC5zJmZ2LHRlc3NhLXdlaXZiZXcsPz9hZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/P3Vvcy1wYS4mM3MsYWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsPz9ldy11ZSYtM3MsLiYzcyw5ZHVvbGMmLXN3YS5zdGVzc2Etd2VpdmJldywucyZmdix0ZXNzYS13ZWl2YmV3LD8/YWRibWFsLXRjZWpiby0zcyxkb3JwLSZpdXBwYXJtZSxvaWR1dHNybWUsc2tvb2JldG9ucm1lLD9ldGlzYmV3LTNzLGlwYS1ldHVjZXhlLGtjYXRzbGF1ZC4mM3MsZXRpc2Jldy0zcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsPz8/cyw/NC10c2FlaHR1b3MtcGEuJjNzLGFkYm1hbC10Y2VqYm8tM3MsZG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/ZXRpc2Jldy0zcyxpcGEtZXR1Y2V4ZSxrY2F0c2xhdWQuJjNzLGV0aXNiZXctM3MsdG5pb3Bzc2VjY2EtM3MsP3RuaW9wc3NlY2NhLTNzLD81LXRzYWVodHVvcy1wYS4mM3MsYWRibWFsLXRjZWpiby0zcyxkZXRhY2VycGVkLTNzLGV0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/bGFib2xnLTNzLnRuaW9wc3NlY2NhLnBhcm0sP3lhc2Ryb2NzaWQsP3QmYXJjb21lZC1hLXNpLGMmLW1vcmYsZSZqb3JwZWxiYXZvbCx0ZWRhdGFkLiZlY25hdHNuaSxvbWVkLD8/P2UmZWwmLXNpLHJlYnUtc2ksP25vdGxhY29sLD9oZ2lsZmh0aXdsZXRvaCxpOmJhdHltLG5lbHAtMSZhbCxzdSx1ZSw/LG0tbW9yZixuJmF0bnVvY2NhLW5hLXNpLGUmZHV0cy1hLXNpLGdhJnRuZWdyZW1lLndlaXZlcnAseW9scGVkLD9yLW90LWVjYXBzLHRub2NyZXN1JmFoY29tLGJ1aHRpZyxlJmNhcHNwcGEsZG9uaWwucGksbGJhdnJlc2JvLmNpdGF0cyx2YXQsP2thZXJ0cyxwbCw/Pz9vcHMmZWRvYyxnb2xiLHBwYSw/cyZpJmhjcmFuYS0mYS1zaSxuYS1zaSw/bGFpY29zLWEtc2kscGFyZWh0LWEtc2ksdHJhLW5hLXNpLHhldG4mb2Qsc2VvZCw/P29oJi1lY2Fwc2JldyxwaXltLHNmbiw/P3UmLW1vcmYsbnlla2NvaC1hc2ksP3YtbW9yZiw/dSYtcm9mLXNsbGVzLDQsZSxveW5haHRyZXRyYW1zc2kscjp1ZyYtYS1zaSxzbmRkLD8sP3YmZWQtc2VsdWNyZWgsbi1tb3JmLHJkbGYsdy1tb3JmLD93JmVpdmVycC1lbWFzLG8mbHB3b25zLXlydCx6b2ssPz94JmJzYmYuc3BwYSxlbSxpbnVlbW9oLG9iZG5hcy00NGVzYWIsdC1tb3JmLHVuaWxlbW9oLD95JmEmYm54Oi4mMnUsbGFjb2wtMnUsPyxsZXJvdHRhZCxwLWNzYnVzLHdldGFnLWxsYXdlcmlmLD9kJm5hY3Nla2lsLHV0cy10Y2Vqb3JwLnZlZCw/Zmlwb2hzeW0sayYtbW9yZixuaWtzaXNuZCw/ciZhaWRhbmV0YWgsb3RjZXJpZGV2aXRjYXltLD91Z29vLHctbW9yZix4JmFsYWdrZWVnLG9ycG1hcHNvbi5kdW9sYzouNTYzbywsPz96JmVzZHJvY3NpZCx0aWxiY2l0YXRzLSZwcm9jLXcsc3NlbGxhaXRuZWRlcmMtdyx3LD8/P2ludT8/bT9vcj90c2xhPz9wIS4mZW1hbixud28sPz9yYWYhLmpyb3RzLGV0YXRzPz9zP3QhLiZncm8/bGltP21vJmM/bj8/b2M/dGVuP3VkZT92b2c/Pz91JmVzdW0/cm9mPz96IS4mY2E/Z3JvP2hjcz9saW0/bW9jP28mYz9mbmk/P3Rlbj91ZGU/dm9nP3ppYj8/Pz9uJjMxNXJtaS0tbng/YSZicnVkP2NpbGJ1cGVyP2YhLm1rbSw/Z3JvbXBqP2hrYWdhP20/b2w/c3Npbj91JmhpeD9xbmE/P3ZhcmFjP3lhbG8/P2IhLiZncm8/bW9jP29jLHRlbj91ZGU/dm9nPz9jPz9jIS4mYWg/Ymg/YyZhP3M/P2QmNXhxNTUtLW54P2c/cz91b2xjcGFucXltLD9lJmg/dGlzYXZuYWMueW0sP2cmbGEwZG8tLW54P3JvPz9oJmE/cT9zIS5zYSw/P2kmN2Ewb2ktLW54P2g/P2omYj9mP3Noayx0P3g/ej8/a2g/bCZoP2ltP2o/P20mbj9vYyEuJnJla2FtZWdhcy4xLSZodHJvbi1uYy4ma29vYmV0b24sb2lkdXRzLD90c2V3aHRyb24tbmMuJmtvb2JldG9uLG9pZHV0cyw/P3MmZWNpdnJlc2Jld25vemFtYS5uby4xLSZodHJvbi1uYy5wcGFiZXctcmVmc25hcnQsdHNld2h0cm9uLW5jLnBwYWJldy1yZWZzbmFydCw/d2Fub3phbWEuJjEtJmh0cm9uLW5jLiYzcyxhZGJtYWwtdGNlamJvLTNzLGQmZXRhY2VycGVkLTNzLG9ycC0maXVwcGFybWUsb2lkdXRzcm1lLHNrb29iZXRvbnJtZSw/P2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyxldGlzYmV3LTNzLHRuaW9wc3NlY2NhLTNzLD90bmlvcHNzZWNjYS0zcyw/dHNld2h0cm9uLW5jLiYzcyxhZGJtYWwtdGNlamJvLTNzLGRvcnAtJml1cHBhcm1lLG9pZHV0c3JtZSxza29vYmV0b25ybWUsP2V0aXNiZXctM3MsaXBhLWV0dWNleGUsa2NhdHNsYXVkLiYzcyx0bmlvcHNzZWNjYS0zcyw/dG5pb3Bzc2VjY2EtM3MsPz9iZS4xLSZodHJvbi1uYyx0c2V3aHRyb24tbmMsPz8/Pz8/biZoP2w/cz95Pz9vbT9xYz9zJmc/aj9wcGEtYXZuYWMsP3QmY2Vubm9ja2NpdXEudGNlcmlkLGVuPz91ZGU/dm9nP3d0P3gmZz9qP24/cz8/eiZnP3g/P1x1NTNmOFx1NTE2Yz9cdTdkNjFcdTdkYjI/XHU3ZWRjXHU3ZjUxPz9iPz9kJmchLnlwbmMsP2thPz9lJmRyYWc/ZXJnP2Z1YWs/aGN0aWs/aSZsaWJvbW1pP3c/P20/cG8/ciFlZG5hYWx2Pz9zaWVyP3Zlcz8/ZyEuJmNhP2dybz9tb2M/dGVuP3VkZT92b2c/P2lzJmVkIS4mY2locGFyZyxzc2IsPz9pcmV2Pz8/aCEuJmJvZz9ncm8/bGltP21vYz90ZW4/dWRlPz8/aSEuJmFjP2JldyxjJmE/aW4/P2RuaT9lJm0/c2FiYXB1cyw/ZyY1PzY/cD9ybz8/aSZhP2hsZWQ/P2smbmFiP3U/P2wmZXZhcnQ/aW0/P20mYT9vYz9yaWY/P24mYz9lZz9pZj8/byZjP2ZuaT9pP3JwPz9wJm9vYz91Pz9yJmFoaWI/ZD9lPz9zJmM/ZXI/bmR1b2xjLHNlbmlzdWI/dT92ZWRuaSw/dCZhcmFqdWc/ZW4hcmV0bmk/P25pP3NvcD8/dWRlP3Ymb2c/dD8/eXNyYWIsemliPz9lbGtuaXZsYWM/Z3Jpdj9rcz9scmViIS5zbmRkLD9wP3Y/dz94Pz9rIS4mZ3JvP3Rlbj91ZGU/dm9nPz8/bCZlb2s/b2NuaWw/P20hLiZjeW4sZ3JvP3VkZT92b2c/Pz9vJmRub2w/aSZoc2FmP24mbz91dGlkZXJjPz9zaXYhb3J1ZT8/dCZhJmN1ZGUhLm9jLD9kbnVvZj90c3lhbHA/P2MmZXRvcnA/dSZhP3J0c25vYz8/Pz8/a2luP2xhcz9tcm9tP25hYz9wJnE/dW9jPz9zJmlhbT9wZT9zY2lyZT8/dCZyb24/c29iPz96YW1hPz9wIS4mZ3JvP29jP3Rlbj91ZGU/dm9nPz9rPz9yJmUmYz95YWI/P29wPz9zIS4mZ3JvP21vYz90cmE/dWRlP3YmaW51P3VvZz8/Pz90IS4mZCZuaT91b2xjZWduYXJvLD9ncm8/bHRuaT9tJm9jIW5pbT8/c2lydW90Pz9uaWY/byZmbmk/c3JlcD8/c25lP3QmYW4/ZW4/P3ZvZz8/bT8/dSZmIS4mcGNpJnYseSx6LD9zbSw/P3IhLiZhJnJhaWw6Lm5hcmksLHZuYWMsP2JkbmV2YXIsZWwmYmF2b2wsZGVlbiw/bCZhdjouYmV3LCxlY3JldixwZXIsP3JldHJvcG5vLHQmaWtjYXRzLG5lbXBvbGV2ZWQsP3hpdyw/P3N0YWQ/eGFtYXk/eT8/diEuJmEmbG5vcz9vaGhuYWgmaz90Pz8/YyZhP291aHBobmliP3VocGhuaXY/P2RpP2UmbWFuP3J0bmViP3VoIW5laWh0YXVodD8/P2cmbiZhJmJvYWM/aWcmYWg/Y2FiP24mYT9laSZrP3Q/Pz91YWg/P25hZD9ydGNvcz91cW5leXV0Pz9vJmRtYWw/aHBpYWg/bGhuaXY/bmthZD91ZCZobmliP2lhaD8/Pz9ybz8/aCZuaSZiJmFvaD9nbmF1cT9obmluP2lhaHQ/P2QmaG5pYj9tYW4/P21paGNvaG9ocGhuYWh0P24mY2FiP2duYXVxP3lhdD8/dGFoP3ZhcnQ/P3RsYWVoPz9pJmEhYm5leT9jb2FsP2duZ25hdXE/bGFpZz9uZ25vZD8/b25haD9ydGduYXVxPz9rYWxrYWQ/bSZhbiZhaD9nbmF1cT8/b2M/dXRub2s/P24mYSZlaGduP2dub2w/a2NhYj91aHRobmkmYj9uPz8/ZSZpYm5laWQ/eSZnbnVoP3UmZ25pYWh0P2hwPz8/P29zZ25hbD8/byZmbmk/aHQmbmFjP3VocD8/aT9ycD8/cGFodGdub2Q/dCZlbj9uaT8/dSZhJmhjaWFsP21hYz90Z251di1haXJhYj8/ZGU/ZWlsY2FiPz92b2c/emliPz8/d28mcmM/dCFlcGFjPz8/P28mNzZpNG9yZnktLW54P2EhLiZicD9kZT9nJm8/cm8/P29jP3RpP3VkZT92Jmc/b2c/Pz9ib2F0Pz9iIS4mYSZjaSZzdW0/dGlsb3A/P2kmYyZhcmNvbWVkP25laWM/P2dvbG8mY2U/bmNldD8/bSZlZGFjYT9vbm9jZT8/cnQmYXA/c3Vkbmk/P3ZpbG9iPz9uJmVnaWRuaT9pY2lkZW0/P3NlcnBtZT90c2l2ZXI/dml0YXJlcG9vYz8/YiZldz9vZz8/ZHVsYXM/ZSZyYm1vbj90ciZhP29wJmVkP3NuYXJ0Pz8/P2cmb2xiP3JvPz9pa2l3P2wmYSZub2kmY2FuaXJ1bHA/c2Vmb3JwPz9ydXRhbj8/aW0/P21vYz9vJmZuaT9sYmV1cD9yZ2E/dG5laW1pdm9tPz9zYWljaXRvbj90JmFza3Q/ZW4/bmk/P3VkZT92dD8/aD9pZXc/b2xnPz9jIS4mZHImYyxyYWMsP2VzYWJhcHVzOi5lJmdhcm90cyxtaXRsYWVyLD8sZ3JvP2lweW0sbCZpbT9wZXI6LmRpLCw/bW8mYz9uPz9vc211LHMmZWdhcCZkYWVsLGwsP25kaWgsP3QmZW4/aWxwZXJkZWxsYXdlcmlmOi5kaSwsP3VkZT92b2c/P2E/ZT9pbj9tYXJhP3MmZWRhcmI/aWM/Pz9kIS4mYiZldz9vZz8/ZGxzP2dybz9saW0/bW9jP3QmZW4/cmE/P3VkZT92b2c/P2Fnb2JhP2lmP3pkN2FjYmdtLS1ueD8/ZSZjP2QmaXY/b3I/Pz9mIW5pIS4mZGxhd3R0aW0sZSZnJmRlbHdvbmstZm8tbCZlcnJhYixsZXJyYWIsP2VsbG9jZXZvbGksP2h0LXNrb3JnLHJvbS1yb2YtZXJlaCx0YWRwdXNuOmQsLD9sbGF0aXN3b25rLG1hY3J2ZCxvZm5pLXYscCZpJi1vbixmbGVzLD9vaGJldyw/ciZldnJlcyYzb3B5dCxkbGF3dHRpbSw/dW8tcm9mLD9zJmlodC1za29yZyxuZCYtY2ltYW55ZCxueWQsdW9sYyw/P3RzcmlmeWFtLHlzcmFiLHptdXJvZiw/Pz9nJmVsP24hYW0/aWI/Pz9od3NvaHc/aSEuJjBwY2ksMXBjaSw4MzAyLGEmbWluaWZlZCx0YWQtYiw/YiZhbHRpZyx1aHRpZyw/YyZpdGVuZWVrLHpoLD9kJmV0cHlyY3MudG5laWxjLHJhb2JlbGdhZWIsdW9sY3JvcGF2LD9lJmNpdmVkbmlzZXIsZG9uJnBwYWQuc25kbnlkLHJlcHloLD9lZ2lwYSxsJmJidWIubmRjLGVqLD9uaWxuaWdvbCxzdWZ4b2IsdCZpJmJldWxiLHNub2VodG5hcCw/bmV3dHUseWJlZWIuc2FhcCw/dmFyYiw/ZyZuJmFsa3JhZCxpJmdhdHNuaXNlci5zZWNpdmVkLHRzb2gmLWJyLmV0aXMseXRzb2gsPz8/cm8/P2smY29yZWdyb2YuZGksbyZvYnRpZyxyZ246LiZhcyxuaSxwJmEsaiw/c3UsdSZhLGUsPz8sP3JhbXl0ZWZhc3Jlc3dvcmIsP2xpbT9tJm8mYz9uPz9yb2Z0YWxwLWV2aXJkLD9uJmFpY2lzdW0sbXRzcDoua2NvbSwseWRlZCw/byZjP2lkdXRzeGl3LHRvcSw/cCZvcGlsb2wscGEmLWFydXNhaCxldHliZWViLjFka2VzLD8/ciZkZGF5bSxlJnRzbmV1bS1oZix2cmVzJmNpc2FiLGxhdXRyaXYsPz9pYWwuc3BwYSw/cyZjb2RlaHRkYWVyLGduaWh0YmV3LG5lbWVpcy1vbSxwcGEmZWxiYnViLG9saWsscmV2ZWxjLD90JmFjZG5hcyxla2NpdCw/P3QmZSZrY3VidGliLG4hb3RvcnAsPz9pJmJlbGV0LGd1ZGUsP25ldG5vY3Jlc3VzZWViZHVvbGMscmFlZG9uLmVnYXRzLHMmZXR3b2xmYmV3LHVkZ25paHQuJmNlcnNpZC4mZHZyZXNlcix0c3VjLD9kb3JwLnRzdWMsZ25pdHNldC4mZHZyZXNlcix0c3VjLD92ZWQuJmR2cmVzZXIsdHN1Yyw/Pz8/dWRlP3YmZ2liLjBrdSxvZz8/d29sZmJldyx4JmJkcnltLGNxLHJvdGlkZSw/eXNyYWIsenpxLD9iP2QmYXI/dSZhP3RzPz8/aj9yP3N5aHA/P2ohLiZkaHA/ZyZuZT9ybz8/aGNzP2kmYT9yZ2E/P2xpbT9tJmY/b2M/P3JlcD90ZW4/dWRlP3Ymb2c/dD8/Pz9sbCZhZz9vPz9tIS4mZ3JvP21vYz90ZW4/dWRlP3ZvZz8/Zz9pbD9taT9vcnA/P24hLiZhJjAmYi1la2hnbmFyay0tbng/Yy1pZWhzcmdldi0tbng/Zy1sa3NlZGxpZy0tbng/ay1uZWduYW52ay0tbng/PzEmcC1uZWRyYWd5LS1ueD9xLSZhc2llcnJzLS1ueD9ncmVic250LS1ueD9sYWRvLXJzLS1ueD9uJmVnbmlkbC0tbng/b3JmLXJzLS1ueD8/cmVnbmF5aC0tbng/c3NvZmVuaC0tbng/P3ItZGF0c2dydC0tbng/cy1sYWRyanRzLS1ueD92LXkmc2VubmVyLS1ueD92cmVqa3MtLW54Pz8/M2ctZGF0c29iZWdoLS1ueD80JjUtJmRuYWxlcHJqLS1ueD9nb2tzbmVybC0tbng/dGVkbmFseWgtLW54Pz82LW5lbGFkbmptLS1ueD9zLSZhbnRvdXZhY2hiLS1ueD9pbXBvdXZ0YWxtLS1ueD8/eS0mYWdyam5ldnZhZC0tbng/aWtodmxhcmFlYi0tbng/Pz83ay1hbnRvdXZhY2NoYi0tbng/OCZrLXJla2llLWVydi0tbng/bC1sYWRydWEtcnMtLW54P20tZGFyZWhzZHJrLS1ueD8/YSEuc2c/P2JjdC1laW1ldXZlanNlbW4tLW54P2QmZG8/aWlzZXZ2YWQ/bG92P25hcnRzP3Vhcz8/ZiYxLSZsLS1ueD9zLS1ueD8/Mi1oLS1ueD8/ZyYxMGFxMC1pbmV2ZS0tbng/YXY/ZXY/bG90P3ImYWpuJmV2dmFkP3U/P1x1MDBlMWpuJmV2dmFkP3U/Pz8/aD9pei1sZi0tbng/aiZkZGFkYWI/c2VsPz9rJmVsP2hvaiZzYXJhaz9cdTAxNjFcdTAwZTFyXHUwMGUxaz8/aWl2JmFnJm5hJmVsP2c/P1x1MDE0YiZhZWw/XHUwMGUxZz8/P3Jhbj8/P2wmZj9sYWhyZXZvP28mbXM/cz8/c2VubmV2P3QtJmlsbS0tbng/dG9tLS1ueD8/dSYtZWRyLS1ueD9zPz9cdTAwZjhtcz8/bXVhcj9uJjAtdHNyLS1ueD8yLWRvYi0tbng/NS0mYXNpci0tbng/dGFscy0tbng/P2EmciEtaS1vbT9mP3Q/P3Q/P2RvdXZzYXR2aWQ/a2l2P20mb3M/XHUwMGY4cz8/biZvZD9cdTAwZjhkPz9yYT9zZW4/dCZhb3V2YXRoZWlnP291diZhJmMmY2gmYWI/XHUwMGUxYj8/aCZhYj9cdTAwZTFiPz8/bj8/aSZhZz9cdTAwZTFnPz9zYSZtbz90dHZpZD8/XHUwMGUxbj8/P3otcmV5LS1ueD9cdTAwZTZyJmY/dD8/P28mcC0mbGFkci0tbng/c2Vucy0tbng/P3EtbmFndi0tbng/ci1hc25zLS1ueD9zLWtqa3MtLW54P3YtbXVyYi0tbng/dy0mYW5yJmYtLW54P3QtLW54Pz91YmxrLS1ueD8/P3Bwb2w/cSYwLXQmYmFvbC0tbng/c291bS0tbng/dmVpYi0tbng/P3gtJmlwcGhsLS1ueD9yJmVtYmgtLW54P2ltcGgtLW54Pz8/eS10aW5rcy0tbng/P3ImZi1hdHNyLS1ueD9nLSZhbiZtcy0tbng/bmQtLW54Pz9lJmRyZi0tbng/bmdzLS1ueD8/bXVycy0tbng/bmV0bC0tbng/b2xtYi0tbng/c29yci0tbng/P2gtJmEmbG1zLS1ueD95cmYtLW54Pz9lbWp0LS1ueD8/aSYtJmxib2gtLW54P3JzaXItLW54P3kmZCZhci0tbng/bmEtLW54Pz9rc2EtLW54P2xlbS0tbng/ciZ1bC0tbng/eWQtLW54Pz8/P3N0dT8/ai0mZHJhdi0tbng/cm9sZi0tbng/c2Rhdi0tbng/P2t1YT9sLSZkcm9qZi0tbng/bGFyZXMtLW54Pz9tLXRsb2hyLS1ueD9uLWVzYW5zLS1ueD9vbGY/cC1zZG5pbC0tbng/cy1sYWRybC0tbng/dGloP3YtcnZzeXQtLW54Pz9zJmEmbnM/b25zPz9pJmFyP2VyJmRyb24/ciZvcz9cdTAwZjhzPz8/XHUwMGUxcj8/bGEmZz9oPz9tb3IhdD8/c2lyP3VmP1x1MDBlNW5zPz90JmtvdWxvJm5rYT9cdTAxNGJrXHUwMGUxPz9sYT9wLXJhZGRqYi0tbng/ci1hZ3JqbnUtLW54P3MmYWVmciZhbW1haD9cdTAwZTFtbVx1MDBlMWg/P29yZj9yJm8/XHUwMGY4Pz8/dS12cmVpa3MtLW54Pz91JmgtZG51c2VsLS1ueD9pLSZkcm9qZmstLW54P3ZsZXNsbS0tbng/P2otZWtlcm9tLS1ueD9rLXJla3JlbS0tbng/dS0mZG5hbHItLW54P2dva3NyLS1ueD9zZW5zay0tbng/P3YtbmVreXItLW54P3ctJmsmYWJyZC0tbng/aXZqZy0tbng/P29yeXNvLS1ueD8/eS15JmRuYXMtLW54P21yYWstLW54P24mYXJ0LS1ueD9uaWYtLW54Pz9yZXZhLS1ueD8/ei1zbW9ydC0tbng/P3YhLnNnP2xlZGF0c2tvcms/cmVpa3M/P3doLWFudG91dm4tLW54P3gmOS1kbG9mdHMtLW54LmFvcS1yZWx2LS1ueD9kLW5tYWhlcmstLW54P2YtZG5hbG5rcy0tbng/aC1uZWx0bG9oLS1ueD9pLWRyZ2VwcG8tLW54P2otZ3ZlJmduYWwtLW54P2xyZWItLW54Pz9tLW5lZ25pbHItLW54P24tZHJvamZ2ay0tbng/P3kmNy11amRhZWhhbC0tbng/OC1hbnRvdXZpZy0tbng/Yi0mZGxvZnJzLS1ueD9nb2tzbXItLW54P2tpdnJ5ci0tbng/cmV0c2xqLS1ueD8/ZS1uZWpzb20tLW54P2YteSZyZSZkbmktLW54P3Rzby0tbng/P3N0aXZrLS1ueD8/Zy1yZWdhcmstLW54P29yZj9cdTAwZjhyZj8/ejktZHJvamZzdGItLW54Pz9iJjI1LWFraWl2YWdhZWwtLW54PzUzYXk3LW9sb3VzZWNoLS1ueD9hJml5LWd2LS1ueD9sZS10bCZiLS1ueD9zLS1ueD8/bjAteWRyLS1ueD8/YyYwLWRuYWwtZXJkbnMtLW54P3otbmV0b3QtZXJ0cy0tbng/P2cmZy1yZWduYXJhdi1ycy0tbng/by1uZWpzc2VuZG5hcy0tbng/P2p1LWVyZGlscy1lcnRzeS0tbng/bmotZG5hbGgtZ29rc3J1YS0tbng/cSZxLWxhZHNtb3ItZ28tZXJtLS1ueC4mYXJpLXlyZWgtLW54P2VkbmFzPz9zLW5lc2xhaHNsYWRyanRzLS1ueD8/P2NhJjRzLWF0c2FlZnJtbWgtLW54PzhtLWRudXN5bm5yYi0tbng/aWwtdGwtLW54P2xlLXNsZy0tbng/bjUtcmRpYi0tbng/b3AtZHJnbC0tbng/dXcteW5ucmItLW54Pz9kJmEmcXgtdGdncnYtLW54P3JlaCFubml2az9zZCZvcms/XHUwMGY4cms/P3Vhcz8/dHMmZSZiaT9ra2FyP2xseWg/bm5hbj8/ZyZvcnQ/XHUwMGY4cnQ/P2smYWxmP2lyZGVyZj8/bGV2ZXY/bWlyZz9vYmVnJmFoP1x1MDBlNmg/P3ImYWg/ZWpnPz8/P2Jhcm0tamRkZGItLW54P2llIXJhaD9zJmV0aXZrP2xhZG1hbj8/P2xvZiZyJm9zP1x1MDBmOHM/P3RzJmV2LmVkbmFzP28ucmVsYXY/XHUwMGY4LnJlbFx1MDBlNXY/Pz9uJmEmbCYtZXJkJm4mb3M/XHUwMGY4cz8/cm9uPz9hZHJvaC5zbz9kcm9uLiZhJmc1LWItLW54P3JpLXlyZWgtLW54Pz9vYj95Jm9yZWg/XHUwMGY4cmVoPz9cdTAwZjhiPz9lJm0hbGVqaD8/cHImb2o/XHUwMGY4aj8/dmk/P2d5Yj9uJmFrcz9cdTAwZTVrcz8/byZoLWdva3NydWE/cmY/P3Imbz91YT9cdTAwZjg/P3Ryb3M/XHUwMGY4aC1nb2tzcnVhPz9ydHMhZSZkZXZ0P2xhYj9tbG9oPz8/cyZlbGxpbD9uYWl0c2lyaz9yb2Y/Pz91Jmwhb3M/P3MhZCZpbT9sZWp0Pz9lJmd1YWg/bCZhP1x1MDBlNT8/P2trb2g/bGF2az9uYWl0c2lyaz9yJmFmP2VnJmU/aWU/Pz90ZWY/eSZvbm5vcmI/XHUwMGY4bm5cdTAwZjhyYj8/Pz8/ciZhJmJsYXZzIS5zZz8/ZyZlcHBvP2xhPz8/byZqJmYmYSFkbml2P2s/dms/P2RpZT9lJmRuYXM/a2tlbGY/P2xsaW5zP3ImaWVsP290cz8/cyZsYWI/dCZhYj9cdTAwZTViPz95dD8/XHUwMGU1IWs/P1x1MDBlNnZrPz9sZXM/P3RzPz9cdTAwZTVnJmVwcG8/bFx1MDBlNT8/P3VyZWtzdWIuc2VuPz9lJmF5Yi15cmV0dG4tLW54P2QmYXI/aXNlbW1lamgzMjEsbG9tP3Imb2Y/XHUwMGY4Zj8/XHUwMGU1cj8/ZyZneXI/bmF0cz8/aSZtZXV2JmVqc2VtJmFhbj9cdTAwZTVcdTAwZTVuPz9zZWthYWw/P3JqZWE/P2omZCZlZj9va3M/P2xlcz8/ayZlciZhb20/XHUwMGU1b20/P2hnbmEmYXJrP1x1MDBlNXJrPz9pcmVnbmlyP2tvdCFzPz9zJmlnP3VhZj8/P2wmYm1hYj9reWI/bCZhdj9laHRhdHM/P29oPz9tJml0P29qdD9cdTAwZjhqdD8/biZhcmc/ZyZvcz9cdTAwZjhzPz9tZWg/cmVpbD90ZT91bW1vaz95cmI/P3ImZGlscy1lcnRzJmV2P3kmbz9cdTAwZjg/Pz91YT92b2Q/P3NhJmFucz9cdTAwZTVucz8/dCZyb2JyYWE/c3BhYXY/P3VyZz8/ZiY2MmF0cy11Z3Nyb3AtLW54P2EmMTAtdWp2cmVra2hyLS1ueD83ay10YWpqcnYtYXR0bS0tbng/P28hLnNnP2g/P3MhLnNnPz92IS5zZz8/P2cmNWFseS15ciZuLS1ueD92LS1ueD8/YSZsbG9yP3ZlJmduYWw/bHJlYj8/P24mYXYhc25lbGx1Pz9vcmc/P29rcyZkaWU/bSZvcj9cdTAwZjhyPz9uZXImb2w/XHUwMGY4bD8/ciZvP1x1MDBmOD8/P3ImZWIhYWRuYXI/ZWR5cHM/cyZkaWU/ZWxmP2dub2s/biZvdD9cdTAwZjh0Pz8/P29ic3ByYXM/P3VhaGF0c2xhP1x1MDBlNXZlJmduYWw/bHJlYj8/P2gmMGFsdS15c20tLW54PzcmNGF5OC1ha2lpdmFnZy0tbng/NWF5Ny1hdGtvdWxvay0tbng/P2EhLnNnPz8/aSZlJmhzciZhZ2V2P1x1MDBlNWdldj8/cmY/P2smaCZhdmxhcmFlYj9cdTAwZTF2bGFyYWViPz9zPz9sbSZhP1x1MDBlNT8/bXBvdXZ0YWwmYW0/XHUwMGUxbT8/cHBoJmFsP1x1MDBlMWw/P3Jyb3VuYWRkbGVpZD9zc2FuZXZlP1x1MDE2MVx1MDE2MVx1MDBlMW5ldmU/P2omMGFvcS15c2d2LS1ueD85NGJhd2gtYWtob2pyay0tbng/P2smYSZiJm9yZD9cdTAwZjhyZD8/amtzP2xsZWlzPz9pdiFha2xlanBzP2wmYW0/ZXZzP3U/P21hZz9uZWw/b2pnP3ImYSZsP24/P2Vwb2s/aWVsP3kmb3I/XHUwMGY4cj8/P3MmYWg/a2VsPz9cdTAwZjhqZz8/a2FiZW5lP29qc2FyYWs/cmFtJmRlaC4mYW9xLXJlbHYtLW54P3JlbCZhdj9cdTAwZTV2Pz9zbz8/ZSZsZXQuJmFnNS1iLS1ueD9vYj9cdTAwZjhiPz9yYT8/P1x1MDBlNWprcz8/bCZhIWQmYW5ydXM/ZCZudW11cmI/cm9uPz9lJmduYXJkP250ZT9zJm1laD9zaW4/P3R0aW4/P2cmaXM/bnlsPz9rcm8/bCZlbT9sJmVqZnR0YWg/b2Y/P3UmYWctZXJ0ZGltP3M/Pz9uJmFtP2VyYT9nb3M/aSZiP25yb2g/cj8/a29zP251cz9vaj8/by0mZHJvbj9yJm9zP1x1MDBmOHM/Pz9wcG8/ciZhIWw/bnJhbT8/ZSZnbmU/bD92Pz9pcz9vJmp0cz90cz8/dSZhLSZkcm9uP3Imb3M/XHUwMGY4cz8/P2g/P1x1MDBlNT9cdTAwZTZsP1x1MDBmOGp0cz8/cyZlJmpnP25pdms/cnlmPz9rYXY/bW9yLWdvLWVyJm9tLiZlZG5hcz95b3JlaD8/XHUwMGY4bS4mZWRuYXM/eVx1MDBmOHJlaD8/P3VhZz8/dCZsYXM/cmFqaD9zdWFuPz92JmwmYT9lLXJvdHM/P3UtZ28tZXJvbj8/eXQ/P2tzZWRsaWc/cmVzJmE/XHUwMGU1Pz8/YmliJmVrbG9mP3Nla2x5Zj8/ZXMhZGFoPz9oIS5zZz8/aSZtP3N5cnQ/P2wmZWpmP292JmV0c3VhP2duaXQ/a3NhP3NkaWU/Pz9uIS5zZz8/byEuc2c/Ym9oP2c/aD8/ciEuc2c/P1x1MDBlNSFrc2VkbGlnPz9cdTAwZjhib2g/P20mYSZyYWg/dms/P2YhLnNnPz9oIS5zZz8/aSZlJmgmZG5vcnQ/cnRzdWE/c3Nlaj8/cmtyZWpiPz9rc2E/P29sP3QhLnNnPz91JmRvbT9lc3VtP3ImYWI/ZHJlamc/ZXZsZT9vcz91aD9cdTAwZTZiP1x1MDBmOHM/P3R0YWxzPz8/biZhJmcmYXY/b2tzc21hbj9cdTAwZTV2Pz9qbGlzP29yP3ImZz9yZXY/Pz9lJmQmZG8mc2VuP3Rvbj8/bGFoP3ImYWd5Jm8/XHUwMGY4Pz9vamZzYW0/Pz9nJmlldHM/biZhJmwmYXM/bGFiPz9uJmF2az9cdTAwZTZ2az8/dCZhcmc/ZGRvc2VuPz92JmFsP2Vzc292Pz8/aSZkJm9sP1x1MDBmOGw/P2wmYXI/XHUwMGU2cj8/P3lsPz9yZWI/P2lrcz9rJnNyb3Q/eSZvcj9cdTAwZjhyPz8/bCZhJmQmZ25vcz9uJmVyP29qbT9cdTAwZjhqbT8/b20/P3Rsb2g/P3VnP1x1MDBlNXRsb2g/P21tYXJkP29qcyZvbT9zZW5kbmFzPz9wcG9sZz9zJmxhaHNsYWRyJm9qdHM/XHUwMGY4anRzPz9vPz90Jm8mbD90LWVydHMmZXY/bz9cdTAwZjg/Pz9yb2g/XHUwMGY4bD8/dmx5JmtreXM/bmF2Pz95YW0tbmFqIS5zZz8/XHUwMGY4anMmb20/c2VuZG5hcz8/P2cmb3JmP3VqYj8/aSZkbmFvcnQ/dm5hcmc/P2tvYj9sYWRlbmR1YT9tYWhlcmsmYT9cdTAwZTU/P24maXQ/dXJnc3JvcD8/b3JmLSZkcm9uP3Imb3M/XHUwMGY4cz8/P3ImYWllYj9ldmF0cz8/c2Zldj91YWtzP3lydHM/P28mNmF4aS15Z3Z0c2V2LS1ueD9jLGQmb2I/cmF2Pz9pZXZzP2tzc291Zj9sJm0mb2I/XHUwMGY4Yj8/b3VzJmFkbmE/ZWNoJmFjP1x1MDBlMVx1MDEwZD8/P3NvIS5zZz8/P21zZGVrcz9uaWVrb3R1YWs/ciZlZ2Fyaz9vbGY/eSZvc28/XHUwMGY4c28/Pz9zJmRhdj9tb3J0Pz8/cCZlZD9vaHNkYWVycHN5bSxwJmFrZHJvbj9lbGs/Pz9yJmEmZCZkaiZhYj9cdTAwZTFiPz9pYWI/P2p0aWY/bHVhZz9tYWg/dnN5dD8/ZSZnbiZhJmsmaWVsP3JvPz9tZXJiP24mYXQ/bWFzPz9yYXYtciZvcz9cdTAwZjhzPz9zcm9wP3RhbGY/diZhdHM/ZWw/P3kmb2g/XHUwMGY4aD8/P2l2c2dub2s/P2lsP2prbmlldHM/ayZhJm52ZWo/cmVtP3MmZ25pcj9uZWxsdT8/P2llLWVyJmRlbj92Jm8/XHUwMGY4Pz8/cmFtP3NhP1x1MDBlNXJlbT8/bGEmamY/dmg/P20mYiZhaD9cdTAwZTFoPz9tYWhlbGxpbD8/bm51bD90cyZsJm9qP1x1MDBmOGo/P3VsPz95Jm8/XHUwMGY4Pz8/aW1wJmFoP1x1MDBlMWg/P20hLnNnPz9vc2lyP3QhLnNnPz9cdTAwZTFkaVx1MDBlMWI/XHUwMGU2dnN5dD9cdTAwZjhzaXI/P3MmYWRuaWw/ZW4mZG5hcz9lJmRnYT9rJnJpJmI/az8/c29tPz92ZT8/bWUmaD9qZz8/bnJvaC1nby1lanZlP3MmYT9lZG5pbD9rJm8/XHUwMGY4Pz9vZj95dD9cdTAwZTU/P3RzZXY/P2d2P2hmP2lnYXZhbD9vJnImb3I/XHUwMGY4cj8/c21hbj8/c28mZmVuJm9oP1x1MDBmOGg/P20/dj8/dWgmbGVtP3NyZWthLnNlbj8/XHUwMGU1IWRuaWw/Pz90JmEmYmFvbD9nJmFvdj9ncmF2Pz9qanImYXYtYXR0YW0/XHUwMGUxdi1hdHRcdTAwZTFtPz9sJmEmYj9zPz9cdTAwZTFzPz9zb3VtP3RzP3YmZWliP291cj8/P2UmZG5hbHkmb2g/XHUwMGY4aD8/Zj9zJm55dD9yb2tvbXNkZWtzP3Nlbj8/dnRwaWtzPz9pbiZha3M/XHUwMGUxa3M/P2xvaCZhcj9cdTAwZTVyPz9uIS5zZz8/b20mYT9cdTAwZTU/P3MhLnNnP2VmcmVtbWFoP29yP1x1MDBmOHI/P3RlcmRpP1x1MDBlMSZiYW9sP2dnclx1MDBlMXY/bFx1MDBlMSZiP3M/P3NvdW0/dmVpYj8/P3UmYiEuc2c/YWxrP2UmZG5hP2duaXI/bm5lcj8/bGVzP1x1MDBlNmxrPz9kcmEmYj9lYj8/ZyZuYXNyb3A/dmk/XHUwMTRiXHUwMGUxc3JvcD8/aiZkYWVoYWwmYT9cdTAwZTE/P2plZHViP3YmYXJla2toYXI/XHUwMGUxcmVra2hcdTAwZTFyPz8/a3Npb3VmP24mZGlhZWdhZHZvdWc/dGFlZD8/P3YmaXJwP2xlc2wmYW0/XHUwMGU1bT8/P3kmYiZlc3Nlbj9uYXJ0P3NlYmVsP3RzZXY/P28mZCZhcj9uYSFzPz9vcj8/Z2F2dHNldj9rc2E/bGVtP21yYWs/biZhcnQ/biZpZj9vcmI/Pz9yJmEmbWFoP24/dj8/ZSZkbmk/dCZzbz90b24/P3ZhPz91bD95ZD8/cyZhbT9lbm5lcj9nYXY/bHJhaz90aXZrPz92cmVqa3M/P1x1MDBmOCZkJmFyP25hIXM/P1x1MDBmOHI/P2dcdTAwZTV2dHNldj9rc2E/bGVtP21yYWs/biZhcnQ/biZpZj9cdTAwZjhyYj8/P3ImZSZkbmk/dCZzbz90XHUwMGY4bj8/dmE/P3VsP3lkP1x1MDBlNiZuP3Y/Pz9zJmVubmVyP2dcdTAwZTV2P3Rpdms/XHUwMGU1bT8/dnJlamtzPz8/XHUwMGUxJnNsXHUwMGUxZz90bFx1MDBlMT92cmVpa3M/P1x1MDBlNSZnXHUwMGU1dj9oP2pkZFx1MDBlNWRcdTAwZTViP2xmPz9cdTAwZjgmZCZvYj9yYXY/P3ImZWdhcms/b2xmPz9zJmRhdj9tb3J0Pz8/P2FraT9pJnNhYz90YWw/P3U/P28mYj9mP2hheT9vP3R0YXQ/P3IhLiZjZXI/ZXJvdHM/Z3JvP20mbyZjP24/P3JpZj90Pz9vJmMsZm5pPz9wb2hzLHN0cmE/dG4/d3d3P3lzcmFiLD9lJmEhLiZhJmFjP2NnZD9pZGVtPz9idWxjIW9yZWE/P2NpJmZmYXJ0cmlhP3RhYm9yZWE/P2UmYyZhbHB0ZWtyYW0/biZhJmwmbGlldnJ1cy1yaWE/dWJtYT8/bmV0bmlhbT9ydXNuaT8/ZXJlZm5vYz8/P2duYWhjeGU/bW9yZG9yZWE/bmkmZ25lP2xyaWE/emFnYW0/P3Jhd3Rmb3M/P2duaSZkJmFydD9pbGchYXJhcD9nbmFoPz8/bCZkbmFoZG51b3JnP2xlZG9tPz9ub29sbGFiP3JldGFjP3NhZWw/dCZsdXNub2M/dWhjYXJhcD8/dmlkeWtzPz9oY3JhZXNlcj9peGF0P2wmYW5ydW9qP2V1Zj9pY251b2M/b3J0bm9jIS1jaWZmYXJ0LXJpYT8/P24mZ2lzZWQ/b2kmbnU/dCZhJmNpZml0cmVjP2VyY2VyP2dpJnRzZXZuaS10bmVkaWNjYT92YW4/P2kmY29zc2EhLXJlZ25lc3NhcD8/dmFsaXZpYz8/cmVkZWY/P2N1ZG9ycD9uZXZlcnAtdG5lZGljY2E/Pz8/b2dyYWM/cCZpaHNub2lwbWFoYz91b3JnIWduaWtyb3c/Pz9yJmUmZGFydD9lbmlnbmU/a29yYj9uaWFydD90cmFoYz8/byZodHVhP3RhY3VkZT8/P3MmY2l0c2lnb2w/ZSZjaXZyZXM/cj8/a3Jvdz9zZXJwIXhlPz90bmVnYT8/dCZmYXJjciZpYT9vdG9yPz9oZ2kmZXJmP2wmZj9vcmNpbT8/P2xpdWJlbW9oP24mYXRsdXNub2M/ZSZkdXRzP20mbiZpYXRyZXRuZT9yZXZvZz8/cGl1cWU/Pz8/b2xpcD9yb3ByaWE/c2kmbGFucnVvaj90bmVpY3M/Pz93JmVyYz9vaHM/P3kmY25lZ3JlbWU/ZG9icGVyP3RlZmFzPz8/P3JyZWY/ej8/cCEuJmEmYWE/Y2E/cGM/P2NpdGVuZWVrLGRlbT9nbmU/a29yZ24sciZhYj91aj8/c25kdW9sYyx0JmFjb3ZhP2NjYT9oY2VyPz93YWw/eXNyYWIsPz8/cyEuJmVtP2dybz9tb2M/c3lldnJ1cyx0ZW4/dWRlP3ZvZz8/P3QhLiYweCwxMTYsYXlvLGdybz9saW0/bW9jP3N1bHBucHYsdCZjZW5ub2NrY2l1cS50Y2VyaWQsZW4/dGVuLD91ZGU/dm9nPz9vJmhwP20/dj95az8/dG9sP3VhPz92Jml2P2xvdj8/eGFzP3lrb3Q/P3AmYSZlaGM/Zz9tP3M/P2Vlaj9nIS4mZ3JvP2lib20/bW9jP29zc2E/dGVuP3VkZT8/P2kmciEubmFsYyw/diEuc25kaWgsP3o/P2ohLiYwJmcwLGowLG8wbyx0MCw/YSYzJjV4cTZmLS1ueD94cWkwb3N0bi0tbng/PzV3dGI2LS1ueD84NXV3dXUtLW54Pzl4dGxrLS1ueD9hZCxiJmF0cyxpaGMhLiZhJmJpaGNpYWtveT9kb24/bWEmaGltP3llJnJhZ2FuP3RhdD8/P3ImYSZib20/Z2FuP2hpaGNpPz91JmFnZWRvcz9rYXM/dXN0YWs/Pz9zJm9zP3Vmb21paHM/P3QmYW1paGNheT9pcmFuPz93JmEmZyZpbSZhbmFoP28/P29tYWs/P2tpaGNpP3p1c3R1bT8/aWhzYWs/P3kmYWdhbWFrP2ltb25paGNpPz8/ZSZha2FzP25hZ290Pz9pJmF6bmk/ZXNvaGM/aCZhc2E/cyZhYmFudWY/b2hjPz8/a2EmdG8/em9rPz9tdXNpP29yaWhzP3ImYWtpaGFiaWhzb2tveT9vJmRpbT90YWs/P3VrdWp1az8/dXNpaHM/P25hbm8maGM/eWs/P28mZCZpYWt1c3RveT91c3RhbT8/aHNvbmhvdD9rJmEmcmlocz90Pz9pYmE/P25paHNhcmFuP3NvYmltYW5pbT90YXMmYXJpaHNpbWFvP2ltb3Q/P3VoYz95aWhjYXk/P3Uma3Vqbm8/cyZheWFydT90JmltaWs/dHVmPz8/emFyYXNpaz8/Pz8/YyZjYWgsZWQsP2cmYXMhLiZhJmdhcz9tJmEmdGFtYWg/eWlrPz9paHNhaz8/cmF0P3QmYSZnYXRpaz9oYXRpaz8/aXJhIWloc2luPz8/P2Uma2FpcmE/bmltaW1haz8/aSZha25lZz9nJmFydXlrP28/P2gmYyZhbW8/dW8/P3Npb3JpaHM/P2them5haz9tb2R1a3VmP3JhJmdvbmloc295P21pPz8/bmV6aWg/dSZrJmF0P29odW9rPz9zJm90P3RhcmFrPz8/Pz9paHMhLiZhJmtvaz9tJmEmaGFnYW4/eWlyb20/P2loc2FrYXQ/P3JhYmlhbT93YWdvdG9uPz9lJm1paGFyb3Q/bm9raWg/P2hvdXlyP2kmYXphaWhzaW4/ZXNvaz9rdXN0YWthdD9tb2loc2FnaWg/P25hJm1paGNhaGltbz9ub2s/P28maHNpYT9tYWc/dCZhc295b3Q/b2s/dGlyPz8/dXMmYXk/dCZhc3VrP28/Pz8/Pz9rJmFzbyEuJmEmZCZhd2loc2lrP2VraT8/ayZhJm5veW90P3MmYWthYXlhaGloYz9vaWhzYWdpaD8/P29hZGF0P3V6aWFrPz9tJmF5YXMhYWthc28/P29kYWs/P3ImYSZidXN0YW0/d2loc2FrPz9lZGlpanVmPz90JmFrYXJpaD9pJms/dXM/Pz93YWcmYXllbj9vZG95aWhzYWdpaD8/P2Umc29uP3Rhd2Fub2ppaHM/P2hvbmltP2kmYWthcz9oJmN1Z2lyb20/cyZheWFiYWRub3Q/aSZhJmthdD90Pz9uPz9veWltdXNpaHNhZ2loPz8/ayZhJnJhYmk/c2ltPz91c3Rha2F0Pz9tdXppP3ImaWphdD9vdGFtdWs/Pz9uYW4mYWs/biZhaD9lcz8/P28mYXk/biZhJmdhbmloY2F3YWs/c2ltdXppP3Rhaz8/ZWJhP2lraWJhaD9veW90Pz90JmFuaW0/aWFkP29tYW1paHM/P3VoYz8/dXN0Jm9pbXV6aT90ZXM/Pz8/b3Uma3VmIS4mYSZkJmFtYXk/ZW9zPz9nJm5vP29rP3VzYWs/P2hpa3U/ayZhd2F5aW0/dXppaT8/bWEma2FuP3kmYXNpaD9pbT8/P3Jhd2FrP3QmYSZnb24/a2EmaD9udW0/dD8/P3Vtbz8/d2EmZyZhJmthbj9uYXk/dD8/aWFzPz9rbyFyaWg/Pz95Jmloc2E/dXNhaz8/P2UmbSZheT91cnVrPz90YXJ1az91cz8/aSZhJm5vaHM/cmFpaGNhdD8/Z29ydWs/aCZjdWt1Zj9zJmEmZ2loP2h1a3V5Pz9pbj8/P2smYSZnYWtvP211emltPz9pdXN0P28/dXN0YW5pPz9tJmFuaW0/b3RpaHNveW5paHM/dT8/ciZvZ28/dWdhc2FzPz91c3U/P25lJnNpZWs/enUmYj9raWhjPz8/byZndWtpaGM/aCZhaz9vdD91a2loYz8/aiZvbm8/dWtpaGM/P2theWltP25paHN1a2loYz90bz91aGM/P3UmZmlhemFkP2duaWhzP3N0b3lvdD8/Pz96aWhzIS4mYSZibWV0b2c/ZCZhbWlocz9laWp1Zj9paHNveT9vbWlocz8/a291emlocz9taWhzaW0/cmEmYmlhaD9ob25pa2FtPz90YXdpP3dhJmcmZWthaz91a2lrPz9raWp1Zj8/eWltb25panVmPz9pJmEmcmE/c29rPz9oY2FtaXJvbT9qdWY/a2F6JmVhbW8/dXN0YW0/P21hJm5uYWs/dGE/P251a29udXppP29ydWt1Zj8/bm9oZW5hd2FrP28mbm9zdXM/dGk/P3Umc3RhbWFtYWg/eiZhJm11bj93YWs/P2khYXk/aSZocyZhZ2loP2luPz9tYW5pbT8/bWlocz8/Pz8/Pz8/bSZhJnRpYXMhLiZhJmQmaWhzb3k/b3Q/dXNhaD8/ayZhJmRpaD9zYT8/byZhcmlocz9zPz8/bSZhJnRpYXM/eSZhcz9vJnJvbT90YWg/P3VzdGFtaWhzYWdpaD8/P2kmaHNhZ3VydXN0P2phd2FrPz91cmk/P25pP3dhJmcmZSZrbz9tYW4/P2lrb3Q/bz8/ayZhcmE/aSZoc295P21haz8/P3J1P3pvcm9rb3Q/P3kmYSZnJmFtdWs/aWhzb2s/b3RhaD8/a3VmPz9pbW8/P3ppaW4/P2UmYmFrdXNhaz9vZ2F3YWs/c29nbz90dGFzP3pva295Pz9pJmJhcmF3P2gmY3VnYXdhaz9zJm95aW0/dWJ1c3RhbT8/P2lyb3k/ayZhdG8/aWhzP3Umaz9zdGF3aT8/P20mYWtveXI/aSZoc295P2p1Zj8/dXppaW1haz8/P25hem5hcj9vJmRha2FzP2loc2F5P2pub2g/biZhJmdvP25pbT8/aW1panVmP25haD9veT8/ciZpaHNheWltP290YWdhbj8/dCZhc2ltIWFrPz9pZ3VzP29tYXRpaz8/emFrPz91JmJpaGNpaGMhaWhzYWdpaD8/c29udW9rP3luYWg/Pz8/eSZhayZhdyEuJmEmZCZpcmE/bm90aW1haz8/a2FkaWg/bWEmaCZhcmlocz9pbT8/eSZhJmthdz90aWs/P29kdWs/Pz9ydSZ1c3Rha2loY2FuP3k/P3NhdXk/d2EmZyZhJmRpcmE/em9rPz9vcmloPz9rb25paz8/eW9rP3pvaz8/ZSZiYW5hdD9kYXdpPz9pJmdhcnVzdGFrP2ppYXQ/bWFuaT8/bmFuaWFrP28mYm9nP25pbWlrP3QmYXNpbT9vbWlocyZhaD91az8/Pz91Z25paHM/Pz9vIS4mYSZqb3M/a29hc2FrP20mYXkmYWtvP3VzdD8/aWhzYXlhaD8/ciZhYmk/dWthd2FpaHNpbj8/d2kmYWthP25hbT8/P2UmZ2FrYXk/a2F3Pz9pJmdhbj9oJmN1Jmthc2E/b3Rlcz8/c2FoYWthdD8/ayZhc2ltP2loc2FydWs/P21paW4/P24mYW5lbXVrP2V6aWI/P28maHNvdGFzP2puaWhzP24mYW1hdD9pbWFnYWs/P29ocz91aGNpYmlrPz8/Pz9vdCEuJmEmZGFtYXk/Z290P2tvYWthdD9tYXkmZXRhdD9vdD8/bmFob2o/cmlhdD93YWtpJmluYWthbj9yZW1hbj8/P2ViJmF5bz9vcnVrPz9pJmgmYXNhP2NpaW1haz9zYWhhbnVmPz9rdXphbnU/bSZhbiZpP290Pz9paD8/P25lenV5bj9vdG5hbj91JmhjdWY/c3RpbXVrdWY/eiZpbWk/b3U/Pz8/Pz8/aWhzJm8mZ2FrIS4mYSZtJmF5dW9rP2loc29nYWs/P3NpP3lvbmFrPz9lJmJhbmF3YWs/biZhdCZha2FuP2ltYW5pbT8/dWthPz90b21vb25paHNpbj8/aSZhZG5lc2FtdXN0YXM/ayZhemFydWthbT9vaWg/P20mYW1hP3V6aT8/dXN1eT8/bmVzaT9vJmtuaWs/b3M/dG9tdXN0YW0/P3V6aW11cmF0Pz8/cmloIS4mYSZrYSZuP3M/P20mYXl1a3VmP2kmaHNvcmloaWhzYWdpaD9qJmF0ZT9pbWFraWthc28/Pz8/ciZhJmJvaHM/aCZla2F0P2ltPz8/ZXM/P3RpYWs/d2lhZD8/ZSZrYXRvP3J1az8/aSZoJmNpJmFrdXN0YWg/bW9ubz9uaWhzPz9zJmluYXJlcz9veWltPz8/bWFuaW1hc2E/dWs/P25lZ29raWtlc25paj9vJmdub2g/bmFtdWs/P3VoY3VmPz8/P3VrJm90IS4mYSZiaWhjaT9taSZoc3Uma290P3N0YW1vaz8/bT8/d2FnYWthbj8/ZWdpaHN1c3RhbT9pJmd1bT9oJmNvZ2FuYXM/c295aW0/P2tpamF3P20mYW5pbT91emlhPz91a2loc2locz8/bmFuJmE/aWFrPz9vJm5hdGk/dHVyYW4/Pz8/dWYhLiZhJmJhdHVmP20mYSZ0bz95JmVuYWs/aXJvaz8/P2locyZpbT91a3VmPz9vcz91a28/P3ImYWJvaWhzYXRpaz91Z2FuYXQ/P3RhJmthdGlrP21hd2FrP3JpaD8/dyZhJmcmYWt1cz9lbWFzP3V5Pz9rJmEmbWF0P3JpaHM/c2E/P2loc2k/P25haD8/b2hzPz8/ZSZnbmFidXppYT9pbWFuP3RhJmQ/dGlpPz8/aSZhZG5hYj9lbmV0P2hzJmFnaWg/aWltYWdhaz8/ayZhJndpP3ppbXV6aT8/dWJheT8/bWludWs/ciZvb2s/dXN0YW1heT8/P25paHNpYXQ/byZnJmV0b21vP2loc2luP25hbj9vbWlocz8/bm8hZHVydWY/cmloPz9yaWhzYXdhbmk/dGEmbWF5P3NpbXV6aWE/Pz91JnJhaGltP3N0YW1ha2F3dXppYT96aWEmaWhzaW4/bmF5Pz8/Pz8/P251ZyEuJmEmYmF3YWs/ZG95aWhjP2smYW5uYT9vaSZoc295P2p1Zj9tb3Q/Pz9tJmF5YWthdD91c3RhZ2FpaHNhZ2loPz9uJmloc2F0YWs/bmFrPz9yJmFob25hZ2FuP25haz9vP3Uma2F0aT9tYW1hdD8/P3QmYW11bj9pbm9taWhzP28/P3cmYWt1Ymlocz9pZW0/b2hzPz8/aSZoc2EmYmVhbT95YWJldGF0Pz9rYXMmYWthdD9lc2k/P20mYWthbmltP3V6aW8/P29nYW11c3Q/cm9kaW0/P28mam9uYWthbj9uJmV1P295aWt1c3Q/P3RuaWhzPz91JmtvbW5hbj9zdGFzdWs/eXJpaz8/Pz9yZXAsP24maWJtYWIsbm9nLG9iLD9wcGFjaWhjLHJhJm4hLiZhJmJpaHNhaz9kJmFrYXRvdGFtYXk/dSFvPz8/Z3VyYWtpP20mYXkmYXRpayZpbWFrP29taWhzPz9pcm9rb3RhbWF5Pz9va2k/P3JhJmhpaHNhaz9uPz93YSZnZXNvbj9rbmV0Pz8/ZSZrYXlpbT9vemFtYXk/c29nP3VzdGltPz9pJmEmcnVrYXM/d2FrPz9nYXJ1c3Rhaz9oJmNpb21paHM/c2luYXdhaz8/am8/a2EmbW5haz90b3J1az8/bWFrYXdhaz9ub3M/ciZuZXQ/b3Rha2F0P3VnZWg/Pz9vJmQmbmE/b3lvPz9nbmFzP2puaWhzP25paHNveSFpaHNhZ2loPz90b21hcmF3YXQ/eXJvaz8/Pz9yaWtpayw/dCZhZyZhbWF5IS4mYSZkaWhzaW8/ayZhdGFyaWhzP291cnVzdD8/bWF5JmEma2FuP3J1bT8/ZW5haz9vbmltYWs/P3J1a2hvP3RhJmdhJm1heT9udWY/P2hha2F0P2thcz8/d2EmZyZla2FzP29ydW1hbT8/a2kmaHNpbj9tPz96JmFuYWJvP2Vub3k/b3Q/Pz96dXk/P2UmYWdhcz9ib25hbWF5P2RpaT9uaWhzYWdpaD9vPz9pJmEmZ2FuP25vaHM/P2gmYXNhP3NpbmF3YWs/P251Z28/P28mZG5ldD9qbmlocz95bmFuPz91a29oYWs/Pz9paW4hLiZhJmdhP2smaXVtP29hZ2FuPz9tdW5vdSFpbWFuaW0/P3QmYSZiaWhzP2dpaW4/P2lveT8/dyZhJmdpb3RpP2tpa2VzP3p1eT8/aXJhaz8/eWlqbz8/ZSZrdXN0aW0/bWFidXN0Pz9pJmFuaWF0P2hjYW1ha290P2theiZhd2loc2FrP29tdXppPz9tJmEmZ2F0P2thcnVtPz9vPz8/biZhbnVzdD9lc29nPz9vJmRhcz9paGNvdD9qbmFzP2smaWhheT9veW0/P21haz9uYWdhP3JpZXM/P3Umb3JpZXM/c3Rlb2o/Pz8/P2kmayZhIS4mYSZnbz9rJmFzb2s/b2ltYWs/P3QmYWdvIXJpaGNhaD8/aWthIWF0aWs/Pz93JmFraT9veWs/Pz9lJm1vam9nP25hdGltP3N1cmFuaWhzYWdpaD90JmFkbz9va295Pz8/aSZoc295aXJvbT9tYWdhdGFrP25hb2tpbWFrPz9uZXNpYWQ/byZoYWtpbj9qbm9oIWlydXk/P251emFrP3JpaHNvbj90YXNpJmp1Zj9tPz95am5vaD8/dSZrb2JtZXM/b3BwYWg/Pz8/aW4sP28hLiZhJmRha2F0b2dudWI/bSZhc2FoP2loc2VtaWg/P3N1P3QmZWthdD9pJmg/bz8/Pz9lJm9ub2tvaz91c3RpbWFrPz9pJmppaD9rJmFzaW51az9pYXM/dXN1Pz9tdWt1c3Q/P29ub29nbnViP3UmZnV5P2p1az9wcGViP3N1az8/Pz8/bmF5biw/d2EmZ2EmayEuJmEmbWloc29hbj9yaWhvdG9rP3dhZ2Ema2loc2FnaWg/eWE/Pz9lbWFndXJhbT9pJmombm9uYWs/dXN0bmV6Pz9rdW5hcz9tb25paGN1Pz9vJmhzb25vdD9ubmFtP3lvdGltPz91JnN0JmFtYWthdD9vZGF0Pz96YXR1Pz8/P25hayEuJmEmZHVzdGFtP2t1cyZva295P3RhcmloPz9tYXo/bmliZT9yJmEmZ2loc2FpbWFuaW0/aCZlc2k/aW1hZ2FzPz93YSZkbz9ndXk/Pz91JmltP2thbWFrPz8/dGlrYW1heT93YSZrJmlhP295aWs/dW1hcz8/c2lqdWY/P3lpbW9uaW4/P2Umbm9rYWg/c2F5YT8/aSZha2FuP2VzaWFrP2d1c3RhP2hzdXo/a2FzYWdpaGM/bz91a3VzdD8/byZuYWRhaD9zaW8/dGFtYXk/Pz8/P2tpaHNpIS4mYSZkYW5paGN1P2dhaz9raWhzP21pamF3P3QmYWJ1c3Q/aWthd2FrPz93YXphbmFrPz9pJmd1cnVzdD9oY2lvbm9uP21vbj91a2FoPz9uYXN1a2FoP28mYW5hbj90b24hYWthbj8/P3Uma29oYWs/c3RhbW9rP3omaW1hbmE/dXM/Pz8/P25pa28hLiZhJmhhbj9tJmFyYXQ/aWplbXVrP3VydT8/biZlJmRhaz96aT8/bm8/P3JhJmhpaHNpbj9yaWg/P3dhJmtpaHNpP25pa28/P3llaGk/em9uaWc/P2Umb3NhcnU/c2VheT8/aSZoc2FnaWg/am9taWhzP2smYSZnaWhzaT9ub3Q/P2loc2Frb3Q/P20mYSZnaW51az9raWhzdWc/bWF6Pz9pZ28/b3Rla2F0Pz9udWdhIW5veT8/P24mYSZtb3RpP3RpbW95P3dvbmlnPz9pJmppa2FuP2s/Pz9vJmdhbj9qbmFuP3RpYWQmYXRpaz9pbWFuaW0/Pz91JmJvdG9tP2t1c3VnJmFrYW4hYXRpaz8/aW1vdD8/cmFiJmFub3k/ZWFoPz8/Pz8/eXAsem9taW0sP2J1cyxjJjIwNHVndi0tbng/NDYyYTB0Ny0tbng/Njc4ejd2cTVkLS1ueD85NHB0cjUtLW54P2E/bXBvcGlsb2wsP2QmLTIsMTdzcWwxLS1ueD8zdGhyLS1ueD81JjIweGJ6LS1ueD80MHNqNS0tbng/PzcmODd0bGstLW54P3B0bGstLW54Pz84NjF0aTQtLW54P2E/ZSF0ZmFyY2RuYWgsP24mZWlyZiZscmlnLHlvYiw/b20sP29vZnRhYyw/ZSYxNnRoci0tbng/NSYxYTRtMi0tbng/OW55N2stLW54Pz9kYW15ZGFlcixld2VlcCxnYXJvdHNhcnVrYXMuJjEwa3NpLjNzLDIwa3NpLjNzLD9pJmJtb3osbSEuJmEmYm90P2smYXN1c3RhbT91enVzPz9tJmEmaGltP3kmZW1haz9pbT8/P2locz8/bmF3dWs/d2kmZW0/az8/P2UmYmFuaT9vZ2F3YWs/c2khaW1hbmltPz8/aSZhcmF0YXc/Z3VzaW0/aCZhc2E/Y2lha2tveT8/ayZhJm1hdD9zb3Npaz90Pz9pYXQ/P3JhYmFuPz9vJmRhdD9oaWs/biZhbXVrP2loc2VydT9vJmR1P21vaz8/Pz91c3Q/Pz8/a2lsYmV3LGxhc3JlcHVzLG1paGUhLiZhJm0mYSZoJmF0YXdheT9paW4/P3l1c3RhbT8/aWomYXd1P2ltYWs/Pz90YWtpIW1hbj8/P2Vib3Q/aSZhbm9oP2thc2FtP3JhYmFtaT8/biZhbmlhP2Vnb2thbXVrP29vdD8/byZqaWFzP2tpaGN1P251c3RhbT91aGN1a29raWhzP3lpIWVzPz8/dSZrb2hpaz96bz8/Pz9uIS4mYXJ1a2FzLGxhcG8sbiZlcnVrb20scmloZWcsP29tb211cyxzdG5pbSx0ZW5pZXNhLnJlc3UseG9iLWxpYW0seXJvdmksemFwb3QsP2FtaWhzIS4mYSZkJmFtYWg/aG8/dXNhbT8/a3VzdGF5P20mYT9paHNvbmkmaHNpbj9rbz8/P3dha2loPz9lJm5hbWlocz91c3RhbT8/aSZnJmFrYT91c2F5Pz9rb25pa2FrP21pa2loPz9uYW5udT9vJm11JmtheT96aSFpaHNhZ2loP3Vrbz8/P25hd3VzdD90YXNpbT8/dSZzdG9nP3lhbWF0Pz8/P25lcCw/cm90c25vaWhzYWYsc3Jldix0JmF3aSEuJmEmYmFoYXk/ZCZhbWF5P29uPz9rb2lyb20/dCZhJmhvbmF0P2thdG5lenVraXI/P2ltdXM/P3cmYXMmaWp1Zj91emltPz9paHM/Pz9lJmhvbiZpJmhjaT9uPz91az8/dGF3aT8/aSZhJmR1Zj9tdXJhaz93YWs/P2gmY3VzdG8/c2kmYW1haz91a3V6aWhzPz8/aiZvYm9qP3VrPz9rJmEmbSZhbmFoP3V6dWs/P3NhZ2VuYWs/P2Vzb25paGNpPz9tJmFrYXRpaz91emlhJnJpaD93aT8/Pz9vJmtheWltP25vJnJpaD90Pz90YW51Zm8/P3Voc28/Pz9pc2FyYXAsc2FtYW4sdG9jb2MsP3VsYnliYWIsP2cmM3pzaXUtLW54PzcxcXN0bi0tbng/ancsbD9vbGImYW5ldGFoLGxvb2MsPz9oJjAzcHYyMy0tbng/MTN5bnItLW54PzIydHNpdS0tbng/NjFxcWxlLS1ueD9vLWh1LHN1bGIsP2kmNTR1cmttLS1ueD9hem9zYmV3LGNlZCxnJmF5aW0hLiZhJmR1a2FrP20mYSZnb2locz9raWhzPz9paHN1c3RhbSFpaHNhZ2loPz91bmF3aT8/ciZhd2Fnbz9paG8/P3RhJmJpaHM/cnVtPz93JmEmZ2Fubz9rdXJ1Zj8/aWF0Pz95Jmltb3Q/dWthdz8/P2UmbW90P25pbWVzPz9pJmhzaW9yaWhzP2thJm1vbmloc2k/cyZhd2FrP28/Pz9tYWs/ciZhdGF3P28mbXVyYW0/dGFuPz8/P28mYXo/amFnYXQ/dCZhc2ltP29tYW1heT8/P3UmZmlyP2smaXJuYXNpbWFuaW0/dWhzYWtpaGNpaHM/Pz8/P2loY290IS4mYSZnJmEmaD9raWhzYT8/dXN0Pz9rb20/bSZheSZvP3VzYXJhaz8/dW5haz8/ciZhJmJvaWhzdXNhbj93YXRobz8/aWhvP3VrYXM/P3QmYWtpaHNpbj9pYXk/P3dhJmtvbmltYWs/emVuYWthdD8/eSZpbW9udXN0dT9vaWhzPz8/ZSZpaWp1P2t1c3RvbWlocz9udWZhd2k/P2kmYWtpaGNpP2cmZXRvbT9paGNvdD9vbj8/P28mayZpaHNhbT9raW4/P25hcz9zaW9ydWs/dGFiPz91JmJpbT9zYW4/Pz8/P2gmYyZpYSEuJmEmZG5haD9tJmEhaCZha2F0P2ltPz95dW5pPz9paHMmaWJvdD91c3Q/Pz9yJmEmaGF0P3RpaHM/P2lrP3UmaWhzYWdpaD9rYXdpPz8/dCZpaGM/byZrP3lvdD8/P3dhJmtveW90P3phbmk/P3lpJm1vbmloY2k/cmFrPz8/ZSZpbmFrP2smYW95b3Q/dXNhPz9tYW5va290P25veW90Pz9pJmEmZ3VzYWs/a290P3NpYT8/ZW90P2gmYXNhaXJhd28/Y3Vnbz9zJmFob3lvdD9veWltPz8/ayZhJm1vaz96YWtvPz9paHNzaT8/bW90YXk/cm9nYW1hZz8/biZhbiZpa2VoP29rPz9paHNzaW4/P28mZ290P2loc2luP2puYT9yaWhzbmlocz9zdWY/dGVzPz91JmJvP3JhaG8/cyZveWlrP3Rha2locz8/eXJpaGM/emFoPz8/P29rIS4mYSZkdXNheT9rYWRpaD9tYXlvdG9tP3ImYWgmaW0/dXN1eT8/dW1ha2FuPz9zb3QhaWhzaW4/P3dhJmcmYXRpaz9vZG95aW4/P2smYXM/bz8/Pz9pJmVzaWVnP2hjbyFrPz9qYW11P2smYSFzdXM/P3VzdG8/P21hJmdhaz9rPz9yYWhhbj8/byZtdWt1cz9uJmk/dXN0IWloc2FnaWg/Pz90b3J1bT95b3Qhbz8/P3Uma29rbmFuP3ppbWloc2Fzb3Q/Pz8/dWdhbWF5IS4mYSZtJmF5dWtvdD9paHNvPz90b3lvdD8/ZSZidT9zdWJhdD8/aSZnYWg/a2Vzb25vbWlocz9udWthd2k/cmFraWg/P25hbnVocz9vdGFnYW4/dSZiYT9mb2g/b3RpbT9zdGFtYWR1az91eT8/Pz8/cyZhbmFtYXkhLiZhJmRpaHNveWlqdWY/bWF5YWJhdD9yJmFob25ldT91c3Rha2loc2luPz93JmEmayZheWFoP2lqdWY/P3N1cmFuPz9vaHM/Pz9lZ3Vzb2s/aSZhaz9oJmNpbWFrYW4/cyZhbmFtYXk/b2Q/Pz9rJmFzYXJpbj91JmZldWY/c3RvPz8/P28mayZha2FuYW1heT9paGN1Z2F3YWtpanVmPz9uaWhzbz90JmFzaW1hd2FraWhjaT91a29oPz91aGM/P3NwbGEtaW1hbmltP3UmYiZuYW4/b25pbT8/Zm9rP2hzb2s/cnVzdD8/Pz91Ym9uLD8/aXgsa2EmcmFiaSEuJmEmYnVrdXN0P2dvaz9rYW4haWhjYXRpaD8/bSZhJnNhaz90aW1vP3dpPz9paHNhaz91c3RvbWlocz8/bmk/ciZhJmhpaGN1P3dheT8/dSZhZ2ltdXNhaz9paGN1c3Q/Pz90JmFnJmFtYXk/ZW1hbj8/b2loY2F0aWg/P3cmYWcmYXJ1a2FzP28/P29zPz95aSZtb2loY2F0aWg/cm9tPz8/ZSZib21vdD9kaXJvdD9ub3Q/dGFkb21paHM/P2kmYSZrJmFzP290Pz9yYW8/P2VzdWtpaGM/Z2FoYWthdD9oJmFzYT9jYXRpaD8/ayZhJnJhYmk/c2FndXlyPz9paHNhbmk/dXk/P21hP3J1a3VzdGFtYXQ/P28mZG5hYj9naWFkP2hpbT9rYXRpP3JpaHNpanVmP3Nvaj90JmFzb3JpaHM/aW0/P3lpaGNheT8/dSZmaXVzP2tpaHN1P3NpbWFrPz8/P3NhZ2FuIS4mYSZtJmFibz9paHN1c3Q/P25hdGF3YWs/ciZhYmFtaWhzP3UmbW8/dXN0YW0/Pz93aWppaGM/eWFoYXNpPz9pJmFraWFzP2hpZXM/ayZhc2FnYW4/aT8/bWFzYWg/P25lem51P28mYmVzYXM/ZGFyaWg/dCZlc28/b2chaW1ha25paHM/Pz8/dXN0Jmlnb3Q/b25paGN1az91Zj8/Pz96YXlpbSEuJmEmYmlpaHM/Z3V5aD9rJm9lYm9uP3VzdG9yb20/P21paHN1az9yJmVtaWhzaW4/dWF0aWs/P3RhJmthdGlrP21pbT8/d2FnJmF0aWs/b2Rhaz8/eWE/P2UmYmFuYWthdD9zYWtvZz8/aSZoc2F5YWJvaz9rYXphJmthdD95aW0/P20mYW5pbWF3YWs/b3QmaW51az9uaWhzPz8/P25hbmloY2luP28maiZpaz9vbm9rYXlpbT8/biZpYmU/dXN0Pz90aWFzPz91cmFoYWthdD8/Pz9ybyZjZXAsbW9hIS4mYSZkYXdvdD90dXJ1c3Q/d2FzaW0/P2UmaG9uJmloYyZhaD9paHM/P25hcz9vZz91a29yPz9zYXJpbz8/aSZhbmFyaWg/Z2FuYXlhdGk/aHNpb3J1az9qZWhvbj9rYXNvcmloP21ha2loc2FoP25hd28/ciZhbW9kYWthbj9vbW9hPz8/byZnbmlocz9ra2F0Pz91JnJhZ3VzdD9zdHVtPz8/P3R0b3QhLiZhJnImYWhhd2FrP3VvdG9rPz9zYSZrYXc/c2ltPz8/ZWdvaz9pcm90dG90P25hbmloY2luP28mZ2Fub3k/bmloP3RhbmltaWFrYXM/P3UmYm5hbj96JmF5P2loYz8/Pz8/P3VrdWYhLiZhJmRla2k/Z3VydXN0P21hJmJvP2gmYWthdD9pbT8/eXVzdGFrPz9zYWthdz8/ZWFiYXM/aSZha2FzP2hvP2ppZWhpZT91a3VmPz9uZXppaGNlIWltYW5pbT8/b25vPz8/P2smMjZydGw4LS1ueD80JjNxdHI1LS1ueD95dGpkLS1ueD8/NTIydGluLS1ueD83OTd0aTQtLW54P2NpJmdpZCxodCxzZXZvbCw/ZWUsbGlteWJhYixuJmF0LHVwYXRpbG9sLD8/bCYzM3Vzc3AtLW54P2UmY2NhYmV3LiZyZXN1LHNyLD9sbGFyYXAsP2xpayxvb2YscmlnZXR1Yyw/bSYxMXRxcXEtLW54PzQxczNjLS1ueD9hMCxlZixzaW9nZSw/biYzMHNxbDEtLW54PzY1enFoZS0tbng/YSZlYnlsbGVqLGkmbG9nbm9tLHZpdiw/P2lhbSxuN3A3cXJ0MC0tbng/byZvJmxhcyxtZmxhaCw/cnVrLHN0YXcsPz9vJjEzMXJvdC0tbng/N3FyYmstLW54P2FpYyxjP2QmaWFra29oIS4mYSZkZWtpP2dha2loc2V0P2hjZWJpaHM/ayZhZGloP3UmZmliP25hcmlocz8/P20mYXlpcnVrP2hvdD9paHMmb3JpaGF0aWs/dWt1Zj8/b3Jhcz91c3RhPz9yJmliJmEha2E/P28/dXJ1Zj8/b3pvP3UmZ2FraWhzYWdpaD9veW90Pz8/c2FraW0/dGEmZ2lrdXN0P211bj8/dyZhJmdhJmsmYW4/dWY/P251cyFpbWFrPz8/ayZhcnU/aSZoJmFzYT9zYWdpaD8/a2F0P21haz8/b21paHM/dW0/P3ppbWF3aT8/aW5lP295az8/eW90Pz9lJmEmbXVzdGFtP25hbj8/YiZhJmtpaHM/eWFrPz9vJm5vcm9oP3RvPz8/aWFuP2smaWhzYW0/dWZvdG8/P25ha2FtaT9wcG9rbyFpaHNpbj8/c290aWhjP3RhZCFva2FoPz91b25pa2F0Pz9pJmEmYmliP21va2Ftb3Q/biZhJmsma2F3P29yb2g/P3dpPz9lb21haz9paHNhdHU/b2tpaz91c3RhJm1vcnVrP3Nha2FuPz8/P2VpYj9oJmMmaW95P3UmYm1laz9pcmlocz8/P3MmYXNlP2Vra2E/b2tuYXI/dWVzb20/Pz9qdWZpcmloc2lyP2smYW1hbWlocz9pJmF0P24/Pz9tJmF0aWs/b3RveW90Pz9vYSZraWhzP3JpaHM/P3ImYSZocz9raWhzaT9tb3Q/P2locyZhYmE/aXI/P290YXJpYj8/P24mYSZoY3R1az9yb3J1bT9zZT90b2thaHM/P3ViZXI/P28ma2F5b3Q/bSZpcmU/dWtheT8/bmFydWYhaW1hJms/bmltPz8/b3JpaD9yJmloJmlibz9zdWs/P28mYmFoP2gmaSZiP2hzaW1haz8/c2E/P3BuYW4/eWFuPz91bWVuPz90JmFzb3lpaz9la28/dWtvaD8/P3UmYmFzc2E/a290bmlocz9tJmFzc2F3P3VvPz9wcCZha2lpbj9lbiZpb3RvP251az8/aXA/P3JhdG8/cyZha2F0P3QmZWImZT9pJmE/aHMhYT8/cm9ib24/P20mZT9vJm0/dGFrYW4/Pz9ubyZoP3RhbWFoPz9vJm1paz9zP3Q/P3Uma2lyP3BwaWhjP3N0Pz8/b25paHNuaWhzP3VmdXJhcz8/dWFydT8/eXJ1IWtvaD8/emltaWhzIW9rPz8/Pz9udSw/ZyFpdGksb3loIS4mYSZibWF0P2RuYXM/Z3VzYWs/ayZhdD9vJm95b3Q/eT8/dXphcmFrYXQ/P20mYXlhc2FzP2lyYWg/P3dhJmcmYW5pP29rYWs/P2smaSZoY2k/bWFrPz9veT8/P3lpJmhzYT9tb25paHNpbj8/P2kmYXNhaz9ocyZha2E/aSZhdD9uYXdhaz8/P2omYXdhIWltYW5pbT8/ZW1paD8/ayZhJmdvYT9zJmFnYW1hP3VrdWY/P3dpaHNpbj8/aSZoc29nP20/Pz9tYXRpP29pYT9yb2dpbWFrPz9uJmFubmFzP2Vzbm9uaWhzPz9vJmdhc2Eha2F0Pz9rYT9uJmlrYXQ/bz91c3RhdD8/cmloc2F5P3NpaHM/dG9tdXM/eWFzPz91JmJheT9nbmlocz8/Pz8/aGloLGtvbmlwLGwmYiZldGFoLHMsP2lrLD9tb2wsbmFnYW4hLiZhJmJ1a2FoP2QmYSZ3P3lpbT8/ZSZraT91Pz9paT8/ayZhJnMmYXk/dWtpPz96dXM/P2loc29vP291c2F5Pz9tJmF5JmFrYXQ/aWk/P2kmaHN1a3Vmb3Npaz9qaWk/P3VraWhjPz9uJmkhaHNldGF0Pz91emlpPz9yJmFoP3Vnb3Q/P3NhaW0/dCZhZ2FtYXk/b3lpbT8/dyZhJmcmYSZrYW4/bj8/bz8/a3VzdGFtP3ppdXJhaz8/b25pbSFpbWFuaW0/P3Uma29vP3Mhb21paHM/Pz8/eWEma28/cmloPz8/ZSZha2FzP25hZ2Ftb2s/c3Vibz8/aSZnYWthdD9oJmFzYT9jJmEhbW8hbmFuaWhzPz8/dW9uYW1heT8/c3VrYWdvdD8/ayZhJmthcz9taW1hbmltP3RvPz9pYSZhdGlrP2ltYW5pbT8/b2E/dXppaGNvbT8/bSZha2F3YWs/aWp1Zj9vIXQ/Pz9yJmF0bz9pam9paHM/b21ha2F0Pz8/biZhbmE/ZXNub2F3YXpvbj8/byZodWthcz9uJmEmZ2FuP2thbj8/aSZoYz9tdXphPz91c3RhdD8/cm9tb2s/c2kmZ2FuP2s/P3RvbXVzdGFtPz91JmsmYXM/b2h1a2loYz8/c3RhbWVnYT8/Pz9vJmIsbSxwYWMsP3RvJm1hbXVrIS4mYSZnYW1heT9yYWhpaHNpbj9zdWthbWEhaW1haz8/dGFtYW5pbT8/ZW51ZmltP2kmaGN1a2lrP2smaWhzYW0/dT8/bnVnbyFpbWFuaW0/P3JvbWFrYXQ/P28mYXJhP3JpaHN1c3RheT9zYT90JmFtYXk/b20mYW11az91cz8/dSFrb3lnPz8/eW9oYz8/dSZzYWdhbj96bz8/Pz95ayEuJmEmYm1hdG95az9rJmllcz9vZW1haz91emF3Pz9tYXlpJmgmY3VrdWY/c2FnaWg/P211az8/bmloc2FtYXk/cmF3YXRpanU/dCZhd2F5P2lrPz8/ZSZiYSZuYXQhb3lrPz95YT8/ZGk/bmk/P2kmanU/a2F6YW1heW8/bWFuaW0/P25hdG5hbj9vJmduYXRveWs/a3VtP21haz9yaWhzYW1heWltYW5pbT95Jmdha2FuP2thJmtvYWdhbj9zPz9vaj8/P3UmcnV6aWFtP3omYXlpbT9paz8/Pz8/P3d0YzEtLW54P3lrb3QhLiZhJmQmaSZoY2FtP211cz8/b3lpaGM/P2smYXRpbT9paHN1c3Rhaz8/bSZhJnQhdWtvPz95YXJ1bWloc2EmZ2loP3N1bT8/P2kmaHMmYWdvYT9pa2E/byF0Pz91enVvaz8/cmVuPz8/ciZhJmhvbmloP3dhc2Fnbz8/aWFkb2s/dW1haD8/c3N1Zj90JmlrP28/P3dhJmcmYW5paHM/b2RlPz9rJmFyYT9paGNhdD8/P3kmYWdhdGVzP3ViaWhzPz8/ZSZhbW9rP2RvbmloP20mbz91cnVraWhzYWdpaD8/c295aWs/P2kmZW5hZ29rP2dhbmk/aCZjYSZkYT90aW51az8/c2FiYXRpPz9qJm51YnVrb2s/b2loY2FoPz9tYW5pZ3VzPz9vJmh1emltP2ppaGNhaD9uJmFrYW4/aWghc2FzdW0/P3VyaWthPz9ydWdlbT90JmEmbWF5aWhzYWdpaD9uaW0/P2lhdD9vaz8/dWhjP3lrbnViPz91JmZvaGM/aGN1Zj9rdWpuaWhzPz8/Pz9wJmEmZWhjLHJjLD9vJmhzJmVodCxpaWF3YWsseXViLD9sZixwJmV2b2wseWRuYWMsP3JkJmtjYWIsbmlhciw/Pz9yJjJ4cm82LS1ueD9hdHNlbHR0aWwsZSZkJm51LHdvaGMsP2gsaWxmLHBwJmVwLGlydHMsdSw/dCZhZXJnLHRpYiw/P2chciw/a3MsbyFvbiw/dWZla2FmLD9zJjludmZlLS1ueD9kb20sbmR5bSxwJmloYyxvbyw/cmVtYWd0ZW4sc2lraGNuZXJmLHUmYmxvb2hjcyxydWNpLHNyZXYsP3h2cDQtLW54Pz90JmEmY3lzc3VwLG9iZ2lwLD9lJnJjZXMsdmxldiw/aGdpbnlhZCxuZXRub2NyZXN1LHNpZGFzLHUmYixvbGxpaGMsPz91JjRydnA4LS1ueD9maWchLiZhJmQmZWtpP2loPz9raW1vdD9tJmF5YWthdD9paHNhaD8/bmU/cmFoYSZnaSZrZXM/bWFrYWs/P3Nhaz8/dGFnYSZtYXk/dGlrPz93YSZnJmliaT91c3Rha2FuPz9rYXJpaHMhaWhzYWdpaD8/Pz9lJmthdGltP3Vhd2FrPz9pJmdvaGFrYXM/aGMmYXBuYT91b25hdz8/ayZhZ28/ZXM/b3Q/P20mYW51emltP2lqYXQ/P25haz91cmF0Pz9uYW5pZz9vJmRvZz9qdWc/bWFrb25pbT9uaW0/cm95P3NpaGNpaD8/dSZmaWc/cyZvdG9tP3QmYW1hc2FrP29heT8/Pz8/P2hjLHB1cCxzdG9rbm90LHludXAsP3cmZ3Asb25zZXRpaHcsP3gmNXl0bGstLW54P2lydGFtLD95JmFkeW5udXMsZHIsa25hcmMsbCZvaCxyaWcsP21vb2xnLG9iLHBwJmloLG9sZiw/ciZhaWRhbmV0YWgsZ24mYSx1aCw/P3U2ZDI3c3JqZC0tbng/dmFlaCw/eiY3MnRoci0tbng/ZSZlaixsdXIsPz9cdTRlOTVcdTc5OGY/XHU0ZWFjXHU2NzcxP1x1NTIwNlx1NTkyNz9cdTUzZDZcdTljZTU/XHU1M2UzXHU1YzcxP1x1NTdjZSZcdTViYWU/XHU4MzI4Pz9cdTVhOWJcdTYxMWI/XHU1YzcxJlx1NWJjYz9cdTVjYTE/XHU2YjRjXHU1NDhjPz9cdTVjYTEmXHU3OThmP1x1OTc1OT8/XHU1Y2Y2Jlx1NTE1MFx1OWU3Zj9cdTVlODM/XHU1ZmIzP1x1Nzk4Zj8/XHU1ZDBlJlx1NWJhZT9cdTk1Nzc/P1x1NWRkZCZcdTU5NDhcdTc5NWU/XHU3N2YzP1x1OTk5OT8/XHU1ZWFiXHU1MTc1P1x1NWY2Mlx1NWM3MT9cdTYyNGJcdTVjYTk/XHU2NzI4XHU2ODAzP1x1NjcyY1x1NzE4YT9cdTY4MzlcdTVjZjY/XHU2OGE4XHU1YzcxP1x1NjhlZVx1OTc1Mj9cdTZmNWZcdTY1YjA/XHU3Mzg5XHU1N2ZjP1x1NzUzMFx1NzljYj9cdTc3ZTUmXHU2MTFiP1x1OWFkOD8/XHU3ZTA0XHU2Yzk2P1x1ODI2Zlx1NTk0OD9cdTg0NDlcdTUzNDM/XHU4Y2MwJlx1NGY1MD9cdTZlY2I/P1x1OTA1M1x1NmQ3N1x1NTMxNz9cdTkwZmRcdTRlYWM/XHU5MWNkXHU0ZTA5P1x1OTFjZVx1OTU3Nz9cdTk2MWNcdTVjOTA/XHU5NjJhXHU1OTI3P1x1OTlhY1x1N2ZhND8/P2shLiZhcnQ/Z3JvP21vYz9wZXI/dWRlP3ZvZz8/P2wmZWg/bD8/bSEudWosYWMhLmZtZS50YSw/aj8/bmQ/byZnP2gmcGloP3MhLiZlJm5pbG5veXNyYWIscmF3cG9ocyxzYWIsP3hpbHBvaCx5c3JhYiw/Pz9vYz90IS5sbGR0biw/P3BhIS4mNDRlc2FiLGEmaGNvbSxydXNhaCx0ZWQsP2ImMmUsZXcsc2M6LndlaXZlcnAsLHUmaHRpZyxsY2tjYWgsPz9kZWVwc2Vyb2MsZSZkdWFsYyxlcmYta29yZ24sZ2F0c2tyZWxjLGxiYSZ0cGFkYSx2b2wsP25pbG5pZ29sLHJhbGZkdW9sYyxzYWJud2Fwcyx0dXBtb2NlZ2RlLHZhcmIsP2ZydXNkbml3LGhzYWR0b2IsaSZscmVzc2VtLG5heXVsLD9rJmVlbGYtbm8sb3JnbixyZWxjLD9sJmF3LGUmY3JldixuYXB5c2FlLD9sZWNwYWVsLD9tYWVyZGVweXQsbiZhZWNvbGF0aWdpZG5vLGUmcmltLHZpYSw/P29weGU6LiZnbmlnYXRzOi5ubywsbm8sPyxwb29uLHImY25lOi5kbmV0bm9yZiwsZSZtJmFyZixzYXcsP3R1cCw/dWJhZXosP3MmZSZsdWNyZWhubyx0aXJwcyw/amFzdWRlbSxucmV0dGFwY2lnYW0sP3QmYXluLGVnZGFnLGkmYmVsZXQsbCZtYWVydHMscGVyOi5kaSwsPz9sdWF2cmV2ZS55YWxlcix4ZW53LD93b2xmcmV0dHVsZix4JmV2bm9jLGxwcCw/eSZhJmRvdHBpaHMsd2xpYXIucHUsP2ZpbHRlbiw/Pz9yYSZhP2hzPz91JmVrYW0/bGxhZz9vcmchLmVzcnVvY3NpZCxjdHM/a291az9uYXlhbG8/Pz92c3I/eGVjZTRpYmdtLS1ueD8/cSZhITNhOXktLW54Pz9nP2khLiZncm8/bGltP21vYz90ZW4/dWRlP3ZvZz8/P20/c2U/P3ImYSEuJmEmY2lzdW0/c2FuZXM/P2JvZz9nJmVzP3JvPz9sJmF1dHVtP2ltPz9tb2M/cG9vYz9ydXQ/dCZlJmI/bj8/bmk/P3VkZT92b2c/PzRkNWE0cHJlYmdtLS1ueD9iIS5ldmxvc2VyLD9jP2V5ZG9vZz9sb3M/dCZhdD9zIXVlbj8/P3VnYWo/P2IhLiYyMWc/YSZiJmEmY29yb3M/aXVjPz9pdGlydWM/P2Nub2dvYXM/ZGljZXJhcGE/Z25pcmFtP2khbmFpb2c/cmFtYXRuYXM/P24mZXJvbT9pcmRub2w/P29wP3AmYWNhbT9pcm9sZj9tYSZqP3M/Pz9yaWVmP3RzaXZhb2I/P2IhYWo/aWI/bWk/c2I/P2MmYmE/ZSZyP3Q/P2pzP3NwP3QhZT8/P2QmZW0/bWI/biZmP2k/P3J0Pz9lJmRuYXJnYW5pcG1hYz9maWNlcj9oJmN0LHQ/P2xsaXZuaW9qP3JkbmFvdG5hcz8/ZiZkaj9lZD9nZz9uJmU/aT8/P2cmZSZsIS4mYSZiLG0scCw/YnAsYyZhLHMsP2UmYyxwLHMsP2ZkLGdtLGlwLGpyLGxhLG1hLG5yLG8mZyxyLHQsP3AmYSxzLD9yJnAsciw/cyZlLG0sciw/dG0sPz9zPz9sJnM/ej8/biZjP2U/bz8/b2whYj9mP3Y/P3BwP3JvPz9odnA/aSZkdT9raXc/bmFuYT9vcmV0aW4/cGE/ciZjP2V1cmFiPz9zcD90ZT94YXQ/P2wmYSZpY29zP3QmYW4/cm9mPz8/ZWw/aW0/c3E/P20mYT9kYT9lJmdhdG5vYz9sZWI/P2Y/aWM/b2MhLmV0aXNlbHBtaXMsPz9uY2U/byZhJmxpZWw/cmllYmlyPz9jJmU/bmFyYm9pcj9zYXNvPz9kJm8/cmFucmVib2FzPz9lJmc/dD8/aSZiP2Rhcj9lY2FtP3I/P3JwP3QmYT9lcnBvaXI/Pz9wJmVyP20hZT90Pz9vb2M/cGE/c2U/P3FyYT9yJmFmP2dhP28mZGF2bGFzP2o/P3RuP3V0Pz9zJmEmaXhhYz9tbGFwP25pcG1hYz8/ZWQ/dSZhbmFtP2o/bT8/P3QmYW0/ZSZiP2Q/bj92Pz9uYz9vJmY/bj8/cmE/c2Y/P3UmY2F1Zzk/ZGU/amE/cmc/P3YmZGE/ZWQ/b2chLiZhJmI/bT9wPz9icD9jJmE/cz8/ZSZjP3A/cz8/ZmQ/Z20/aXA/anI/bGE/bWE/bnI/byZnP3I/dD8/cCZhP3M/P3ImcD9yPz9zJmU/bT9yPz90bT8/P3JzP3Q/P3hpdj96JmhiP2xzP28mYz9mPz95eD8/Pz9jIS4mYXM/Y2E/ZGU/aWY/byZjP2c/P3JvPz8/ZSZiZXc/Y2Nvcz9lJmI/biZpZ25lP29pcD8/cmFjPz9nbmkmYXJnP3JoZW9iPz9oJnNvaz90JmFldz9vcmI/Pz9pdG5vcmY/ayZjb2w/byZwP3JiPz8/bCZhZWQ/ZmZlYWhjcz8/bWFsP25lcz9waW51aj90JmEmZWh0P3JlYnNuZWdcdTAwZjZtcmV2Pz9sYXc/bmVjP3Mmbm9tP3Via2NvbGI/P3VwbW9jPz92Jm8mY3NpZD9yZG5hbD8/cmVzYm8/P3d1bGtzcmV0bG93P3l3YWw/emlmcD8/ZiEuJmF0ZXJnP2JldyYtbm8sZXRpczMyMSw/ZHJwP2UmYyZpdHN1ai1yZWlzc2l1aD9uYXJmLW5lLXNldHNpdG5lZC1zbmVpZ3J1cmloYyw/bGlwdW9nLHJpYW5pcmV0ZXYsP2hueSxpJmNjP3JnYWJtYWhjLD9tJm8mYz9uPz90Pz9uJmVpY2FtcmFocCxpY2VkZW0sP29zc2E/cG9oc2RhZXJwc3ltLHMmZSZsYmF0cG1vYy1zdHJlcHhlLHJpYXRvbix0c2l0bmVkLXNuZWlncnVyaWhjLHVvdmE/P25kayxvJi14JmJmLG9iZWVyZiw/eCZiZixvYmVlcmYsPz8/dCZhY292YSxyb3A6b3JlYSwsP3Z1b2c/eG9iaWRlZCw/YXZjN3lscWJnbS0tbng/cz8/ZyEuJmV0aXNlbHBtaXMsZ3JvP21vYz90ZW4/dWRlP3ZvZz95c3JhYiw/P2ghLiZlbWFuP21vJmM/cmY/P3lsZG5lcmIucG9ocyx6aT8/dXI/P2khLiZhJjYxZjRhM2FiZ20tLW54P3JmNGEzYWJnbS0tbng/P2NhP2RpP2VnZGVuYXZyYSxnJm9sYmF0c2l2LHJvPz9oY3M/b2M/dGVuP3ZvZz9cdTA2NDZcdTA2MjdcdTA2MzEmXHUwNjRhXHUwNjI3P1x1MDZjY1x1MDYyNz8/P2EmaD9wZXI/P2V3P2xmPz9rIS4mMTBjLGMmYT9zPz9lJm0/bj9wP3I/P2drP2kmYT9nZ25vZXlnP2t2LHBhLXZpbGUsP2t1YiZnbiZvZXlnP3VoYz8/bm9laj8/bCZpbT91b2VzPz9tYW4mZ24mb2V5Zz91aGM/P25vZWo/P24mYXMmbHU/dWI/P2RjLXZpbGUsbyZlJmhjbmk/amVhZD8/d2duYWc/Pz9vJmM/Zz9pPz9ybz9zJmU/aD9tP25kLXZpbGUsP3RpP3UmZ2VhZD9qJmVqP2duYXdnPz8/dm1tLD9jaWxmPz9sIS4mZ3JvP21vYz90ZW4/dWRlP3ZvZz8/P20hLnZvZz8/biEuJmdybz9tb2M/b2ZuaT90ZW4/dWRlP3ZvZz96aWI/Pz9vJmh0dWE/dCZjJmE/b2Q/P2xhZXI/Pz9wIS4mYWxzaT9jYT9lbWFuP2ZvcnA/Z3JvP21vYz9vJmZuaT9ycD8/dCZlbj9zZT8/dWRlP3ZvZz96aWI/Pz9zP3QhLiYyMWs/YmV3P2NuIS52b2c/P2VtYW4/Z3JvP2tzdD9sJmUmYj90Pz9pbT9vcD8/bW9jP25lZz9vZm5pP3Blaz9yZD9zYmI/dGVuP3VkZT92JmE/b2c/dD8/emliPz9mP20/P3ZkPz9zJjhzcWlmLS1ueD85enFpZi0tbng/YSEudm9nP2JpcmFwcG5iP2dldj9sbGl2P210c2lyaGM/cz8/YiEuJmV3LGdybz9tb2M/dGVuP3VkZT92b2c/P29qP3M/dT8/YyZpJmhwYXJnP3A/dHlsYW5hPz9vZD8/ZCZhP2Q/aWs/bD9uJml3cmlhZj9vbWFpZD8/b29nZW1vaD9yYWM/P2UhLiZiJmV3aW0zMjEsb2c/P2dybz9tbyZjP24/P3BvaHNkYWVycHN5bSx1ZGU/P2NpdnJlcyEuZW5pbG5pZ29sLD9kJmQyYmdtLS1ueD9vYz8/aCZjdGF3P2d1aD8/aSZscHB1cz9ydHN1ZG5pP3RyZXBvcnAheXJyZWs/Pz9qYWl2P2wmYXc/Y3ljcm90b20/Z25pcz9wYXRzPz9tJmFnIS55JmVscCx6ZWVocyw/P29oP3JlaD8/bnV0P29ocz9waWNlcj9yJml0P3V0JmNpcCEuNzMzMSw/bmV2Pz8/cyZpJnJwcmV0bmU/dXJjPz9ydW9jPz90YWljb3NzYT92aWc/P2chbmlkbG9oPz9oNWM4MjJxaWYtLW54P2khYTA5LS1ueD9ubmV0P3JhcD90YXJnPz9rJmMmb3IhLiZlY2Fwc2JldyxzbmRkeW0sdGlrY2F0cyx5dGljLWFtaWwsPz91cz8/aHhkYTA4LS1ueD9yb3c/P2whLiZjJmE/cz8/Z3JvP28mYz9mbmk/P3Rlbj91ZGU/dm9nP3ppYj8/YSZlZD90bmVyPz9lJnNzdXJiP3RvaCF5cnJlaz8/P2xhaHNyYW0/bT9vb3QhLnJkZGEmLm55ZCx5bSw/Pz9tIS4mZXRpc2luaW0sZ3JvP21vYz90ZW4/dWRlP3ZvZz8/Yj9ldHN5cyEuJm5lcmltLHRuaW9wdGhnaW5rLD8/aWFsYz8/biZhJmY/Z29yZj9vbD8/aSZhJmdyYWI/bW9kPz9naXJvPz9vJml0JmFjYXY/Y3Vkb3JwP3Vsb3M/P3B1b2M/Pz9vJmRub2M/Z2V1aj9wcGF6P3Qmb2hwIS5yZW1hcmYsP3VhPz8/cCEuJmNlcz9ncm8/bW9jP29scD90ZW4/dWRlP3ZvZz8/aSZoc3JhbG9oY3M/bGlocD90Pz91Pz9yIS4mY2E/Z3JvP25pP29jP3VkZT92b2c/eG8seSZsZG5lcmIucG9ocyxzcmFiLD8/YSZjP3A/dGl1Zz8/Yz9lJmRsaXViIS5ldGlzZHVvbGMsP2VyYWM/Z29yP2xldmFydD9tcmFmP24mbml3P3RyYXA/P3dvbGY/P290JmNhcnRub2M/b21hdGF0Pz9waj91b3Q/P3MhLiZlbT9ncm8/aGNzP21vYz9vYz90ZW4/dWRlP3ZvZz96aWI/P2FsZz9lJm4maXN1YiEub2MsP3RpZj8/cnAheGUhbmFjaXJlbWE/Pz94bmFsPz9pd3M/P3QmYSZlYj9vYj8/ZWsmY2l0P3JhbT8/ZmlnP2gmY2F5P2dpbGY/P24mYXRudW9jY2E/ZSZtdCZyYXBhP3Nldm5pPz92ZSEuJm5pYm9vayxvYyw/Pz8/cmFwPz91IS4mYSZjIS4mMjFrP2JpbD9jYz8/P2chLiYyMWs/YmlsP2NjPz8/aSEuJjIxaz9iaWw/Y2M/Pz9sIS4mMjFrP2JpbD9jYz8/P20hLiYyMWshLiZoY29yYXA/cnRoYz90dnA/Pz9iaWw/Y2M/Pz9wIS4mMjFrP2JpbD9jYz8/P3NpP3YhLiYyMWs/YmlsP2NjPz8/dyEuJjIxaz9hJmVzLGkmbGFydG5lYyxwbXlsbyw/P2JpbD9jYz9kJm4mZXNud290LXRyb3Asb21kZXIsP3JhaGNyby10cm9wLD9lJmwmYWRyZXZsaXMsdHRhZXMsP3V2ZWxsZWIsP2xzaS1lZ2RpcmJuaWFiLG0mYWl1cW9oLGl1cWVzLD9uJmVlZHJlYmEsb3QmbGVocyxuZXIscmVtZXJiLHNnbmlrLD8/b2JzbHVvcCxyb2JyYWgtZ2lnLHMmZWxlZ25hLXRyb3AsaWxhaGVoYyxrcm9mLD90Jm5pb3Atd29ycmF5LHJvcHllayw/d29sZHVsLXRyb3AsPz8/YyZkIS4mMjFrP2JpbD9jYz8/P24hLiYyMWs/YmlsP2NjPz8/cyEuJjIxaz9iaWw/Y2M/Pz8/ZCZlbGFjc25lLnhocCxpIS4mMjFrP2JpbD9jYz8/P20hLiYyMWs/YmlsP2NjPz8/bj9zIS4mYmlsP2NjPz8/dW9sY3JpbSw/ZSZkIS5jYz8/bGFzLTQtJmRuYWwsZmZ1dHMsP20hLiYyMWs/YmlsP2NjPz9hbnJldnJlcyw/biEuJjIxaz9iaWw/Y2M/Pz8/aCZuIS4mMjFrP2JpbD9jYz8/P28hLiYyMWs/YmlsP2NjPz8/P2kmaCEuJmJpbD9jYz8/P20hLiYyMWs/YmlsP2MmYz9ldD8/Z29jP24mZWc/b3RhZT8/cm9icmEtbm5hP3N1bT90c2Q/d2FuZXRoc2F3Pz8/bmQ/cGEtZXJ1emEsciEuJmJpbD9jYz8/P3YhLiYyMWs/YmlsP2NjPz8/dyEuJjIxaz9iaWw/Y2M/Pz8/am4hLiYyMWs/YmlsP2NjPz8/ayZhIS4mMjFrP2JpbD9jYz8/P28hLiYyMWs/YmlsP2NjPz8/P2wmYSEuJjIxaz9iaWw/Y2M/Pz9mIS4mMjFrP2JpbD9jYz8/P2khLiYyMWs/YmlsP2NjPz8/P21uIS4mMjFrP2JpbD9jYz8/P24mYWZmbG9nLGkhLiYyMWs/YmlsP2NjPz8/bSEuJjIxaz9iaWw/Y2M/Pz9zbj90IS4mMjFrP2JpbD9jYz8/Pz9vJmMhLiYyMWs/YmlsP2NjPz8/Z24sbSEuJjIxaz9iaWw/Y2M/Pz90dG5pb3AsP3Bpb24sciZhIS4mMjFrP2JpbD9jYz8/P28hLiYyMWs/YmlsP2NjPz8/cCEuJjIxaz9iaWw/Y2M/Pz8/cyZhIS4mMjFrP2JpbD9jYz8/P2V0aXNiZXdlcnV6YSxrIS4mMjFrP2JpbD9jYz8/P20hLiYyMWs/Y2M/Pz9uZCZkZWVyZix1b2xjLD8/dCZjIS4mMjFrP2JpbD9jYz8/P20hLiYyMWs/YmlsP2NjPz8/c29ob2lsZWgsdSEuJjIxaz9iaWw/Y2M/Pz92IS4mMjFrP2JpbD9jYz8/Pz91ZyEuJjIxaz9iaWw/Y2M/Pz92Jm4hLiYyMWs/YmlsP2NjPz8/cnM6LiZoZyxsZyw/LHchLmNjPz8/eHQhLiYyMWs/YmlsP2NjPz8/eSZiLXNpLGshLiYyMWs/YmlsP2NjPz8/biEuJjIxaz9iaWw/Y2M/Pz93IS4mMjFrP2JpbD9jYz8/Pz96YSEuJjIxaz9iaWw/Y2M/Pz8/YWghdWFiPz9icmlhP2NvbD9lIS55dHJhcC5yZXN1LD9pbmVzZXJmP2xwIS50aXlhbHA6Lmh0aXcsLD94ZSZsP24/Pz92dD93IS4mNjZkdW9sYyxncm8/bW9jP3MmbmRueWQsdGVweW0sP3Rlbj91ZGU/dm9nPz9hIS4mbm8uJjEtJmh0JnJvbi11ZS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP3Vvcy0mZW0uJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD9mYS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP3BhLiZscnUtYWRibWFsLHBwYWJldy1yZWZzbmFydCw/dWUuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD8/P2xhcnRuZWMtJmFjLiZscnUtYWRibWFsLHBwYWJldy1yZWZzbmFydCw/ZW0ucHBhYmV3LXJlZnNuYXJ0LGxpLnBwYWJldy1yZWZzbmFydCx1ZS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP3htLnBwYWJldy1yZWZzbmFydCw/dHMmYWUmLSZhcy4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP3BhLiZscnUtYWRibWFsLHBwYWJldy1yZWZzbmFydCw/c3UuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD92b2ctc3UuJnBwYWJldy1yZWZzbmFydCxzcGlmLXBwYWJldy1yZWZzbmFydCw/P2h0JnJvbi1wYS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP3Vvcy1wYS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsPz8/ZXctJmFjLnBwYWJldy1yZWZzbmFydCxzdS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP3VlLiZscnUtYWRibWFsLHBwYWJldy1yZWZzbmFydCw/dm9nLXN1LiZwcGFiZXctcmVmc25hcnQsc3BpZi1wcGFiZXctcmVmc25hcnQsPz8/PzItJmh0dW9zLSZwYS5wcGFiZXctcmVmc25hcnQsdWUucHBhYmV3LXJlZnNuYXJ0LD9sYXJ0bmVjLXVlLnBwYWJldy1yZWZzbmFydCx0cyZhZSYtc3UuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD9odCZyb24tcGEuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD91b3MtcGEuJmxydS1hZGJtYWwscHBhYmV3LXJlZnNuYXJ0LD8/P2V3LSZzdS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP3VlLiZscnUtYWRibWFsLHBwYWJldy1yZWZzbmFydCw/Pz8/My10cyZhZWh0JnJvbi1wYS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsP3Vvcy1wYS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsPz9ldy11ZS4mbHJ1LWFkYm1hbCxwcGFiZXctcmVmc25hcnQsPz80LXRzYWVodHVvcy1wYS5wcGFiZXctcmVmc25hcnQsNS10c2FlaHR1b3MtcGEucHBhYmV3LXJlZnNuYXJ0LDctdHNhZWh0dW9zLXBhLnBwYWJldy1yZWZzbmFydCw/cmVrYW1lZ2FzLiYxLSZodCZyb24tdWUuJmtvb2JldG9uLG9pZHV0cyw/dW9zLSZlbS4ma29vYmV0b24sb2lkdXRzLD9mYS4ma29vYmV0b24sb2lkdXRzLD9wYS4mZ25pbGViYWwsa29vYmV0b24sb2lkdXRzLD91ZS4ma29vYmV0b24sb2lkdXRzLD8/P2xhcnRuZWMtJmFjLiZnbmlsZWJhbCxrb29iZXRvbixvaWR1dHMsc3BpZi1rb29iZXRvbiw/ZW0uJmtvb2JldG9uLG9pZHV0cyw/bGkuJmtvb2JldG9uLG9pZHV0cyw/dWUuJmduaWxlYmFsLGtvb2JldG9uLG9pZHV0cyw/P3RzJmFlJi0mYXMuJmtvb2JldG9uLG9pZHV0cyw/cGEuJmtvb2JldG9uLG9pZHV0cyw/c3UuJmduaWxlYmFsLGtvb2JldG9uLG9pZHV0cyxzcGlmLWtvb2JldG9uLD92b2ctc3UuJmtvb2JldG9uLG9pZHV0cyxzcGlmLSZrb29iZXRvbixvaWR1dHMsPz8/aHQmcm9uLXBhLiZnbmlsZWJhbCxrb29iZXRvbixvaWR1dHMsP3Vvcy1wYS4mZ25pbGViYWwsa29vYmV0b24sb2lkdXRzLD8/P2V3LSZhYy4ma29vYmV0b24sc3BpZi1rb29iZXRvbiw/c3UuJmtvb2JldG9uLG9pZHV0cyxzcGlmLWtvb2JldG9uLD91ZS4mZ25pbGViYWwsa29vYmV0b24sb2lkdXRzLD92b2ctc3UuJmtvb2JldG9uLG9pZHV0cyxzcGlmLSZrb29iZXRvbixvaWR1dHMsPz8/Pz8yLSZodHVvcy0mcGEua29vYmV0b24sdWUuJmtvb2JldG9uLG9pZHV0cyw/P2xhcnRuZWMtdWUuJmtvb2JldG9uLG9pZHV0cyw/dHMmYWUmLXN1LiZnbmlsZWJhbCxrb29iZXRvbixvaWR1dHMsc3BpZi1rb29iZXRvbiw/aHQmcm9uLXBhLiZnbmlsZWJhbCxrb29iZXRvbixvaWR1dHMsP3Vvcy1wYS4mZ25pbGViYWwsa29vYmV0b24sb2lkdXRzLD8/P2V3LSZzdS4mZ25pbGViYWwsa29vYmV0b24sb2lkdXRzLHNwaWYta29vYmV0b24sP3VlLiZnbmlsZWJhbCxrb29iZXRvbixvaWR1dHMsPz8/PzMtdHMmYWVodCZyb24tcGEuJmtvb2JldG9uLG9pZHV0cyw/dW9zLXBhLiZrb29iZXRvbixvaWR1dHMsPz9ldy11ZS4ma29vYmV0b24sb2lkdXRzLD8/NC10c2FlaHR1b3MtcGEua29vYmV0b24sPz8/ZSZpdmVyIS5tZWEsP24hLmVsYmFlY2l0b24sPz9vZG5pdz8/eSZhbGNyYWI/b3Q/Pz90JjBzcnpjLS1ueD9hIS4mNCxhbWlsNCxjYSEuaHRzPz9lJm1vaHNuZCx0aWVzYmV3MzIxLD9nbmkmbGlhbWVydXR1Zix0c29oZXJ1dHVmLD9vJmM/Zm5pLD9wJmgyMSxvaHNkYWVycHN5bSw/ciZldWVma251Zi5uZWl3LG8/P3YmZz9pcnAsP3hpMix5Jm0sdGljLWFtaWwsP3ppYiw/Yz9lIXM/P2hjP2w/bWFtaT9yY29tZWQ/P2IhLiZncm8/bW9jP3Rlbj91ZGU/dm9nPz9iP2dsPz9jJmF0bm9jP2UmbGVzP3JpZCEucDJwYmlsLHR4ZW4/Pz8/ZGltaGNzP2UhLiZlbWFuP2dybz9tb2M/b2ZuaT90ZW4/dWRlP3ZvZz96aWI/P2I/ZW0/Z3JhdD9pZD9rJmNpcmM/cmFtPz9uIS4mMWRuYTEtc3BwYSw1JmVkLGludSw/NnZueWQsNyY3bmRjLnIsZXJhdXFzLD9hJmwmLW1vcmYsbW9vYiw/bWluaWZlZCxyZW1hY3l0aXJ1Y2VzeW0sdGFkc3lhd2xhLHosP2ImYm9pLGV3ZGFyeW0sZyxseWx0c2FmOi5wYW0sLD9jJmJheixpJm1hbnlkLXNuZCxuYWdyby1nbml0YWUsdGF0cy1vaWVib2RhLD9wYWlkZW15bSw/ZCZlJmNhbHBiLHppYW1ha2EsP2ZlcnV6YSxoaWFtYWthLGlyZ2V2aXNzYW0uc2FhcC4mMS0mZ3Msbm9sLHJmLHluLD8yLSZub2wseW4sPz9uYWItZWh0LW5pLHVvbGMmLXNuZCxlaHRnbml0dW9yLGZ0YyxtZWFlYm9kYSxuaWV2YXMuYyZkaS1ldHNlZHJvbixpdHNhbGVqLD94ZWRuYXk6LmUmZ2Fyb3RzLHRpc2Jldyw/LD8/ZSZjJm5hcnVzbmlodGxhZWhleml0YXZpcnAscm9mZWxhY3Muaiw/Z2RlJmVydXphLGlhbWFrYSw/aHQtbm8tZWNpZmZvLGwmYWNzbm9vbSxpYm9tLWVydXphLG9tbGVubnV0LD9tJmFudGVueW0ubnMsZWNudW9iLGl0bnVyb2llYm9kYSxvaHRhbnlkLHRjZXJpZGVyLD9uJmlsbm8tZXZyZXNlcixvemRvcCw/ciZhbGZkdW9sYzoubmRjLCxlaHVyaHQsP3M6YWJhcHVzLCx0aSZzLXJlcHBhcmNzLHVzZWdkZSw/emFtJmF5bSxrY2FyLD8/ZiZhZWxldGlzLGNycy4mY29zLHJlc3UsP2VoYy1hLXNpLGZnZyw/ZyZuaSZnYXRzLSZkJmV6aWFtYWthLGhpYW1ha2EsP2UmZ2RlaWFtYWthLHRpdXNlZ2RlLD9pYW1ha2EsbmlnaXJvaWFtYWthLHlla2VnZGUsP3JlZXNuZXMsc2lya2NpbGMsP29sYmV2cmVzLD9oc2FkdG9iLGkmYW1ha2EsbmF5dWwscGEmLWVydXphLGR1b2xjdm9nc3UuJmVyb2MuJmImZXcsb2xiLD9lbGlmLD9zdWJlY2l2cmVzLD8/P2smZWVnLWEmLXNpLHNpLD9pcG8sdSw/bCZhJmJvbGdlcmFsZmR1b2xjLm5kYyxjb2xvdHRhZCw/aWFtd3QsbWV0ZWgscyZkLW5pLHMtNzduZGMsPz9tJmFjJmFzYWMsaWgsP3Vyb2ZuaWVtLD9uJmEmZiZhZ3AsbGhuLD9pJmJlZCxsbGVyayw/P2NlcmFsZmR1b2xjLm5kYyxkY2R1YWJrY2FsYixpOmdpcm9pYW1ha2EsLG8tJmRyb3d5ZWssZXZpbCxyZXZyZXMsP3B2LW5pLD9vJmMtbW9yZixkdXBwYSxqb2RzbmQsbGVmYW0sbiZlZDoueG9iZG5hcywscmVmbmlubyw/cnAteXRpbnVtbW9jLHR0YWR5bSw/cCZpJi0mZXRzZWYsb24sc25kZCw/ZW1vaCxmbGVzLG53byw/aixtYWMtZG5hYi10YSxvJi1vaWRhci1tYWgsaCZiZXcsc2RhZXJwc3ltLD8/cGFkdW9sYzp2b2dzdSwsdGZlJm1vaCx2cmVzLD91c25kLD9yJmUmZ2FuYW1jaWZmYXJ0OnZvZ3N1LCx0c3VsY3lkdW9sYyx2cmVzLXhuayw/dmRzbGVubmFoYzoudSwsP3MmYSZpbGEmbnlkLHNuZCw/bnltc2QsP2JiZXZyZXMsZHlsaW1hZixlJmdkZS1uZGMscmF1cXMsc3VvaHN5dWIsdCZpc2Jld2VydXphLHlzLD8/a2Vrb2tvaGNzLG4mZCYtd29uLGFrYSxkOnVueWQsLGdvbGIsbnB2LD9vaXRjbnVmZHVvbGMsP3BwYWNpdGF0c2VydXphOi4mMSwyOnN1dHMmYWUsZXcsPywzLDQsNSw2LDcsYWlzYXRzYWUsZXBvcnVldHNldyxzdWxhcnRuZWMsPyxzJmEtc2tjaWssZWNjYSYtY2l0YXRzLGR1b2xjLD8/dCx3b2RuaXcuJmVyb2MuJmImZXcsb2xiLD9lbGlmLD9zdWJlY2l2cmVzLD8/dCZhZGllcyxjZSZmZmV5bSxqb3Jwcm90Oi5zZWdhcCwsbGVzcG9ocyw/ZSZucmV0bmlmb2RuZSxzbWVtLD9mYXJjZW5pbWV2cmVzLGktJmVrb3JiLHMmZW9kLGxsZXMsdGVnLD8/biZlJnNzaWR5bSx0bm9jcmVzdXYsP29yZmR1b2xjLD9yZWNsYWNvbCxzJmFjeW5hZXJhbGZkdW9sYy5uZGMsaXhldG5vZCxvaCYtc3B2Oi5jaXRzYWxlai4mY2lyLGx0YSxzam4sPyxnbmlrLD8/eXJwcyw/dSZoLG55ZCxyLD92ZWQtJmFuYWZhcmcsbmFpc3NhbHRhLmRvcnAubmRjLD94JmludWVtb2gsc3B5bSx0c2FsZS4mMW90cy1zbGosMm90cy1zbGosM290cy1zbGosP3VuaWxlbW9oLD95JmEmcC1jc2J1cyx3ZXRhZy1sbGF3ZXJpZiw/ZWtlZ2RlLGZmaWpkdW9sYzouJmVkLTFhcmYsc3UtMXRzZXcsPyxnb2xvbnlzeW0sbHRzYWYuJmRvcnAuJmEsbGFib2xnLD9sc3MuJmEsYixsYWJvbGcsP3BhbSxzbHRlZXJmLD9uJi1tb3JmLG9maXBpLD9zcmFiLD96JmEtbW9yZix0aXJmeW0sPz8/cD90Y2lwP3Y/P2YmaWc/b3NvcmNpbT8/ZyEuJmJvZz9kbmk/Z3JvP2xpbT9tb2M/dGVuP3VkZT8/P2ghLiZkZW0/Z3JvP2wmZXI/b3A/P20mb2M/cmlmPz9vJmZuaT9ycD9zJnJlcD9zYT8/P3BvJmhzP29jPz90JmVuP2x1ZGE/cjphPyw/dWRlP3Z1b2c/Pz9pIS4mYSYybi1sb3JpdGRzLS1ueD83ZS1ldHNvYWVsbGF2LS1ueD84JmMtYW5lc2VjbHJvZi0tbng/aS1scm9mYW5lc2VjLS1ueD8/YXQ/Yj9jIWN1bD8/ZHY/aSZibG8mLW9pcG1ldD9vaXBtZXQ/P2NzZXJiP2RyYWJtb2w/ZyZnb2Y/dXJlcD8/bCZndXA/aSZjaXM/bWUmLW9pZ2dlcj9vaWdnZXI/Pz91aWcmLSZhaXplbmV2Ji1pbHVpcmY/aWx1aXJmPz9ldiYtaWx1aXJmP2lsdWlyZj8/diYtaWx1aXJmP2lsdWlyZj8/P2FpemVuZXYmLWlsdWlyZj9pbHVpcmY/P2V2Ji1pbHVpcmY/aWx1aXJmPz92Ji1pbHVpcmY/aWx1aXJmPz8/P24mYSZicmV2P2N1bD9wbWFjP3RhYz8/aWRyYXM/b2JyYWMmLXNhaXNlbGdpP3NhaXNlbGdpPz9yZXNpPz9vdHNpcD9yJmImYWxhYyEtb2lnZ2VyP29pZ2dlcj8/bXU/P2RuYSYtJmF0dGVscmFiLWluYXJ0P2luYXJ0LWF0dGVscmFiPz9hdHRlbHJhYmluYXJ0P2luYXJ0YXR0ZWxyYWI/c3NlbGE/P2VwbWk/dWdpbD8/dG5lbGF2Ji1vYml2P29iaXY/P3ZhcD96JmUmbmV2P3BzJi1hbD9hbD8/P2lyb2c/Pz9sJml1cWEhbD8/bGVpYj8/bSZvcj9yYXA/P24hYWNzb3Q/ZSZkb20/aXM/c2VjJi0maWxyb2Y/XHUwMGVjbHJvZj8/aWxyb2Y/XHUwMGVjbHJvZj8/P2cmYW1vciYtYWlsaW1lP2FpbGltZT8/ZWRyYXM/b2xvYj8/aSZzc2VtP3RhbD8/bmUhdmFyPz9vJmNuYT9tZXJjP3Jldj92YXM/Pz9vbmVnP3A/ciFhJmNzZXA/cnImYWMmLWFzc2FtP2Fzc2FtPz9lZj8/dm9uPz9ldGFtP3RzYWlsZ28hLWxsZWQ/bGxlZD8/P3MhaXA/c2FtJi1hcmFycmFjP2FyYXJyYWM/P3UmY2FyaXM/Z2FyPz8/dCFhJmNpbGlzYWI/cmVjYW0/P3Jlc2FjP3NvYSEtJmQmLSZlbGxhdj9sYXY/P2VsbGF2P2xhdj8/ZWxsYXY/P2QmLSZlbGxhdj9sYXY/P2VsbGF2P2xhdj8/ZWxsYXY/P3RlJmxyYWImLSZhaXJkbmEtaW5hcnQ/aW5hcnQtYWlyZG5hPz9haXJkbmFpbmFydD9pbmFydGFpcmRuYT8/c3NpbmF0bGFjPz8/dWRhcD92IW8mZGFwP25lZz90bmFtPz8/em4mYWlyYiYtYSZsbGVkLWUtYXpub20/em5vbT8/YSZsbGVkZWF6bm9tP3pub20/P2Vhem5vbT8/ZSZjJmFpcD9pdj8/c29jP3RvcD8/b20/Pz9iJi0mMjMsNDYsNjEsPzNjLWxvcml0LWRzLW9uaXRuZXJ0LS1ueD9iZS1ldHNvYSYtZWxsYXYtLW54P2RlbGxhdi0tbng/P2MhZi1hbmVzZWMtbHJvZi0tbng/bS1scm9mLWFuZXNlYy0tbng/P2hlLWV0c29hLWQtZWxsYXYtLW54P20hdT8/bzItbG9yaXRkcy1uZXpvYi0tbng/c24tbG9yaXRkcyYtbmFzbCZhYi0tbng/dWItLW54Pz9uaXRuZXJ0LS1ueD8/diE2LWxvcml0LWRzbml0bmVydC0tbng/Ny1sb3JpdGRzJi1uaXRuZXJ0LS1ueD9vbml0bmVydC0tbng/Pz96JnItbG9yaXQtZHMmLW5pdG5lcnQtLW54P29uaXRuZXJ0LS1ueD8/cy1sb3JpdGRzLW9uaXRuZXJ0LS1ueD8/P2MmZj9pcz9sP20/cD9yP3Y/P2QmcD91IW9sY255cyw/P2UmYyFjZWw/aW5ldj9uZXJvbGY/P2Y/ZyFhcGVtb2gzMjEsaWRhJi0mYSYtb25pdG5lcnQ/b25pdG5lcnQ/P290bGEhLW9uaXRuZXJ0P29uaXRuZXJ0Pz8/YSYtb25pdG5lcnQ/b25pdG5lcnQ/P290bGEhLW9uJmF6bG9iP2l0bmVydD8/b25pdG5lcnQ/Pz8/aGNyYW0/bD9tIW8maHNuZCxyPz8/biZpZHU/byZuJmVkcm9wP2lzb3JmPz90b3JjPz8/cD9yP3MmZXJhdj9pbG9tPz90IW5vbWVpcD9zJmVpcnQ/b2EhLSZkLWUmZWxsYXY/XHUwMGU5bGxhdj8/ZSZlbGxhdj9cdTAwZTlsbGF2Pz8/ZGUmZWxsYXY/XHUwMGU5bGxhdj8/ZSZlbGxhdj9cdTAwZTlsbGF2Pz8/Pz92P3puZXJpZj8/ZyZhP2I/Zj9pbD9vP3A/cj91cD92Zj8/aGM/aSZiP2M/ZG9sP2Y/bCFsZWNyZXY/b3Bhbj9yb2YmLWFuZXNlYz9hbmVzZWM/Pz9tP24mYSZwYXJ0P3J0Ji1hdHRlbHJhYi1haXJkbmE/YXR0ZWxyYWJhaXJkbmE/Pz9pbWlyP3JldD8/cD9yIWEmYj9pbGdhYz9zc2FzPz8/cyFpZG5pcmI/P3QmZWkmaGM/cj8/c2E/P3Y/P2wmYSFjPz9iP2M/byZtP3JpdCYtJmQmZXVzJi0mbml0bmVydD9vbml0bmVydD8/bml0bmVydD9vbml0bmVydD8/dXMmLSZuaXRuZXJ0P29uaXRuZXJ0Pz9uaXRuZXJ0P29uaXRuZXJ0Pz9cdTAwZmNzJi0mbml0bmVydD9vbml0bmVydD8/bml0bmVydD9vbml0bmVydD8/P3MmLW9uaXRuZXJ0P29uaXRuZXJ0Pz8/ZCZldXMhLSZuJmFzbCZhYj91Yj8/ZXpvYj9pdG5lcnQ/P29uaXRuZXJ0Pz9uaXRuZXJ0P29uaXRuZXJ0Pz91cyYtJm4mYXNsJmFiP3ViPz9lem9iP2l0bmVydD8/b25pdG5lcnQ/P25pdG5lcnQ/b25pdG5lcnQ/P1x1MDBmY3MhLSZuJmFzbCZhYj91Yj8/ZXpvYj9pdG5lcnQ/P29uaXRuZXJ0Pz9uaXRuZXJ0P29uaXRuZXJ0Pz8/cyYtb25pdG5lcnQ/b25pdG5lcnQ/Pz8/P20mYWM/Zj9pP29sP3I/P24mYSFsaW0/c2wmYWI/dWI/Pz9iP2M/ZSFlbi5jaix2P3pvYj8/aXJ1dD9tIXA/P3A/cj90Pz9vJmEhdj8/YiFyZXRpdj8/YyFjZWw/P2VudWM/ZyFpdm9yPz9pJmRlbSYtb25hZGlwbWFjP29uYWRpcG1hYz8/cG1ldCYtYWlibG8/YWlibG8/P3Jkbm9zP3phbD8/bD9tIWEmZ3JlYj9yZXQ/P29jP3JlJmY/bGFwPz8/biFhJmRpcG1hYyYtb2lkZW0/b2lkZW0/P2xpbT90c2lybz96bG9iPz9lY2lwJi1pbG9jc2E/aWxvY3NhPz9pJmJydSYtb3Jhc2VwP29yYXNlcD8/bGxldmE/cm90P3RuZXJ0Pz9yJmVsYXM/b3ZpbD8/dWxsZWI/P3A/ciFhJnNlcCYtb25pYnJ1P29uaWJydT8/em5hdGFjPz9vdW4/P3MhaXZlcnQ/c2Fib3BtYWM/P3QhYXJwP2UmbmV2P3Nzb3JnPz9uJmFyYXQ/ZSZnaXJnYT9ydD92ZW5lYj8/Pz96eiZlcmE/dXJiYT8/P3AmYT9vaHNkYWVycHN5bSxzP3Q/P3FhP3ImYSFtP3M/P2IhYT8/Yz9mP2c/az9tZT9vP3A/cz90P3Y/P3MmYSZiP2lzZWxnaSYtYWlub2JyYWM/YWlub2JyYWM/Pz9iP2M/ZWxwYW4/aT9tP28mdD94JmJpLG9iZGFpbGksPz9zP3Q/dj8/dCZhP2I/Yz9sP20/bm9tZGVpcD9vP3A/dj8/dSZkZT9sP24/cD8/diZhP29nP3A/cz90P3Y/P3kmZHJhYm1vbD9lbGxhdiYtYXRzb2E/YXRzb2E/P2xpY2lzP25hY3N1dD8/eiZhbD9iP2M/cD8/XHUwMGVjbHJvZiYtYW5lc2VjP2FuZXNlYz8/P2RlcmM/ZXI/Zj9tP3V0bmk/P2plM2EzYWJnbS0tbng/a2g/bCEudm9nP3VkYT8/bSEuJmdybz9tb2M/dGVuP3VkZT8/P24mYSZtb3JvY2tpdmRuYXM/cnVhdHNlcj90bnVvY2NhPz9lJmc/bSZlZ2FuYW0/cGl1cWU/P3I/P2khLnVlP20/b3BkbG9nPz9vcHVkP3VvY3NpZD8/byZiP2NzIS4mZW0sZ3JvLG9jLHZvZzouZWNpdnJlcywsPz9kP2c/aD9qP29mZXJhYj9wJmVkZW1vaD9zPz8/cCEuJmJld2FuaWdhcDMyMSxlbW9uP2dybz9sYnVwP21vYz90JmVuP25pPz91ZGU/dm9nPz8/ciZhIW0mbGF3P3M/Pz9lcHhlP29wJmVyP3B1cyEueXNyYWIsP3M/Pz9zIS4mYSZkYXhpYWJtZT9yYXJpayw/ZSZtb3RvYXM/cGljbmlycD9yb3RzPz9ncm8/bGltP21vYz9vJmM/ZGFsdXNub2M/aG8maWxlaCxuLD8/dGVuP3VkZT8/YWY/ZSZiP3I/dXE/P2khcm9sZj90bmVkPz9vJmghLiYycHcsZHVvbGNyaW0sZSZsZWosdGlzZWVyZiw/ZmxhaCxsJmVuYXB5c2FlLHJ1cG1ldCw/cyZwdnRzYWYsc2VjY2FkdW9sYyw/dCZlZ2RhZyxsb2IsbmVncmVtZSxzYWZ5bSw/diZlZHVtcHcscmVzaSw/Pz9wIXN1YT8/P3VydD8/dCEuJmVtYW4/Z3JvP2xpbT9tb2M/byZjP2ZuaT9ycD8/dGVuP3VkZT92b2c/emliPz9heWg/bj9vIWJiYT9pcnJhbT8/P3VvZ25haD94ZW4/eSEuZ3JvLD96dGVqPz91JjImNXRlOS0tbng/eXNzcC0tbng/P2EhLiZhJnM/dz8/Y2l2P2QmaT9scT8/Zm5vYz9ncm8/bW9jIS4mcG9oc2RhZXJwc3ltLHN0ZWxkdW9sYy5sZW0sPz9ucyZhP3JoLnNwdiw/c2F0P3QmY2E/ZW4/bj8/dWRlIS4mYSZzP3c/P2NpJmxvaHRhYz92Pz9kbHE/c2F0P3QmY2E/bj8/d3NuPz8/dm9nIS4mYSZzP3c/P2Npdj9kbHE/c2F0Pz8/d3NuP3pvPz90aT8/YyEuJmJvZz9mbmk/Z3JvP21vYz90JmFuP2VuPz91ZGU/P2k/P2QmZSEudGlyLnNlZ2FwLXRpZyw/aWFiPz9lIS4mZW1vaHNuZCxvZGFnb2QuY2l0c2FsZWoscHd0Y2VyaWQscyZlY2l2cmVzYmV3bm96YW1hLm5vLjEtdHNhZS1lZC1jc3VlLnBkaS1vdGluZ29jLmh0dWEsbmQmcHMsdW9sYyw/cnVlbGZ4dWVkLD93dnJwLHlzcmFiLD8/ZyEuJmJldz9ncm8/bSZhdWc/b2M/P29mbmk/dGVuP3VkZT92b2c/Pz9oIS4mMDAwMj9hJmNpdG9yZT9pZGVtP2tpdG9yZT8/ZWRzem90P2dybz9pbHVzP2xldG9oP20mYWxrZXI/bGlmP3Q/dXJvZj8/bmFsdGFnbmk/byZjP2VkaXY/Zm5pP2xldnlub2s/bmlzYWM/P3BvaHM/cmFyZ2E/cyZhJmthbD96YXR1Pz9lbWFnP3dlbj8/dCZsb2I/cm9wcz8/dmlycD94ZSZzP3pzPz95dGljP3pzYWdvaj8/b3M/c3V0Pz9sIS5ldGlzYmV3MzIxLD9tIS4mY2E/Z3JvP21vYz9vYz9ybz90ZW4/dm9nPz8/biEuJmR1b2xjZXNpcnByZXRuZSxlbmkmZXNyZW0sbSw/dGVua2NhaHMsP2VtIS4mZW5pbG5veXNyYWIseXNyYWIsPz8/byZnZ25hdz95IWM/Pz9yIS4mYSZpJmt5bWxhayxyaWtoc2FiLHZvZHJvbSw/eWVneWRhLD9icHMsY2EsZHVvbGNyaW0sZSZuaXJhbSxycGNtLD9nJmJjLHJvLD9pYW5hdHN1ayxrJmloY2xhbixzJm0scm9naXRheXAsPz9saSZhbWRsYy5iaCxtLD9tb2MsbmF0c2VnYWQsb25panltLHBwLHJpJmIsZCZjbTouc3B2LCxvcnVlLD9taWRhbHYsP3MmYXIsaXR5bSw/dCZlbixuaSw/dSY0YW4sZGUsP3ZvJmcsbiw/eW56b3JnLHpha3Zha2lkYWx2LD9teWM/cD91Zz8/cyEuJmEmZCZnb2xvdixuYWdhcmFrLD9ndWxhayxpJmdyb2VnLGt5bWxhayxsZXJhayxuZW1yYSxyaWtoc2FiLHNzYWthaGssdm9kcm9tLHphaGtiYSw/bHV0LHJhaGt1Yix2dXQseWVneWRhLHpuZXAsP2JwcyxkYSZiYWdoc2EscmdvbmlsZXN0LD9ndW5lbCxpJmFuYXRzdWssaGNvcyxvdmFuLHR0YWlsZ290LD9rJmFsaHN5Z25hbSxpaGNsYW4scyZsZWduYWhrcmEsbSxuJmEmbXJ1bSx5cmIsP2kmYnV5dGthLG5ibyw/P3Rpb3J0LHZvcmtvcCw/P2wmb2NhcmFrLHlibWFqLD9uYSZncnVrLGppYWJyZXphLHRzJmVnYWQsaGthemFrLSZodHJvbix0c2FlLD8/P292b25hdmksciZhZG9uc2FyayxpbWlkYWx2LD90JmVueGUsbmVrJmhzYXQsbWloYyw/P3ZvJmhzYWxhYixuLD95bnpvcmcseiZha3Zha2lkYWx2LGVtcmV0LD8/dCZhbW9rP2kmanVmP21hc2loPz8/P3YhLiZncm8/bW9jP3Rlbj91ZGU/Pz95a3V5cj8/diZiP2MhLiZkaT9lbW9uP2dybz9sYnVwP21vYz90JmVuP25pPz91ZGU/Pz9lZCEuJjJyLGEmLSZzaSx0b24tc2ksP3RlZCw/Y29kZWJlcmcsZCZhb2x5YXAsb29nLWEtc2ksP2UmZXJmLWtvcmduLGdhcm90cy4zdCxuaWxuaWdvbCx2YXJiLD9nJm5pZ2F0cy1vbmVkLG9sYnJhZWIsP2gmY2V0YWlkZW0sc2FkdG9iLD9pcGFlZ2Fyb3RzLjN0LGsmY2F0c2xsdWYtYS1zaSxvcmduLD9sJmUmY3JldixuYXAsP2xlY3BhZWwsb29jLXNpLD9uc3JoLG9uZWQscCZsOi4maXBhLHN0Y2VqYm8sPyxvaHN1bmV2aXYscGEtcmV0dGFscCxyZTouYmV3LCw/ciZkZGF5bSxleWFscGxhY29sLD9zJmVnYXAscmUma3JvdyxuaWF0bm9jbnVyLD8/dCZpJmxwZXI6LiZhcmlrLGQmZWVyLGkscmFjaXAsP2Uma2lwLHNhZWxlcmVycCw/ZnJvdyxnbmlnYXRzLGsmY29wcyxyaWssP2xhYm9sZyxtaWssbyZkbyxrc2lzLD9yZSZoY3JhLGsmYyZhaCx1dCw/aXIsPz9zJmVub2IsaXJhcCxtYWV0LD90aXByYXQsdWx1cyx5JmF3ZW5haixlbHNldyxyYW5hYyw/PyxteCw/bHVhdnJldmUueWFsZXIsP3ZyZXNpLHdlaXZlcnBidWh0aWcseCZkb20sb2JkbmFzLWFoY29tLD95JmxmLHNyYWIsPz8/aWg/bCEuJmRpP2Zub2M/Z3JvP2xpbT9tb2M/bnNhP3Rlbj91ZGU/dm9nPz8/bSEuJmVtYW4/Z3JvP2xpbT9tJm9jP3Vlc3VtPz9vJmZuaT9yJmVhP3A/Pz9wb29jP3QmZW4/bmk/P3VkZT92b2c/emliPz8/byZnP20/P3J0P3MhLiZib2c/ZGVyP2dybz9tb2M/dWRlPz8/dCEuJmFydWthcyxiZXctZWh0LW5vLG1vcmYsbmFodC0mZXNyb3cscmV0dGViLD9zbmRueWQsP2Q/aT93b24/P3VxaHYtLW54Pz93JmEhLm1vYz9sPz9iIS4mY2E/Z3JvP29jP3Rlbj92b2c/Pz9jIS4mZ3JvP21vYz90ZW4/dWRlPz9jcD8/ZSZpdmVyP24/cz8/ZyEueG4sP2shLiZibWU/ZG5pP2dybz9tb2M/dGVuP3VkZT92b2c/Pz9tIS4mY2E/Z3JvP21vYz9vYz9wb29jP3QmZW4/bmk/P3VkZT92b2c/emliPz9iPz9vJmNzb20/aCFzIS5zbSw/P24hLm55ZCw/dz8/cCEuJjM0NHgsc25kdW9sYyx2b2c/Pz9yIS4mY2E/Z3JvP2xpbT9vYz9wb29jP3Rlbj92b2c/P24/P3QhLiZidWxjP2VtYWc/Z3JvP2wmaW0/cnUsP21vYyEucmVsaWFteW0sP3NuZHltLHRlbj91ZGU/diZkaT9vZz8/emliZT8/P3ohLiZjYT9ncm8/bGltP29jP3ZvZz8/Pz94JmEhdD8/YyEuJmRlaGNyYWVzZXIsaHRhLG9mbmkscyZlenppdXEsbGVubnVmLG5kdW9sYyxyb3RhbHVjbGFjLHQmbmVtc3Nlc3NhLHNldCw/P3ZvZz93b255YXAsPz9lJmQmZWY/bmF5Pz9tYSFuYWI/P3JvZj9zPz9pbGZ0ZW4/anQ/bSEuJmJvZz9ncm8/bW9jP3Rlbj91ZGU/P2c/bWEyaWJneS0tbng/P28mYiF4Pz9mP3JleD8/cmJnbi0tbng/cyEudm9nPz94JmFtJmp0P2t0Pz94Pz8/eSY0cHVudS0tbng/N3JyMDMtLW54P2EmZCFpJmxvaD9yZmtjYWxiPz9vdCEuZW15ZmlsYXVxZXJwLD8/ZyEuc2VnYXAsP2xwP3AhaWxhPz9yb3Q/c3Npbj93ZGFvcmI/P2IhLiZmbz9oY2V0YWlkZW0sbGltP21vYz92b2c/P2FiP2d1cj8/YyEuJmNhP2R0bD9ncm8/bGltP20mb2MhLmVjcm9mZWxhY3Muaiw/dD8/b3JwP3MmZWdvbGtlP3NlcnA/P3Rlbj92b2c/emliPz9hbXJhaHA/bmVnYT8/ZCZkYWRvZz91dHM/P2Uma2NvaD9uJmR5cz9vbT9yb3R0YT8/c25pa2NtPz9nIS4mZ3JvP21vYz9vYz90ZW4/dWRlP3ZvZz8/b2xvbmhjZXQhLm9jLD9yZW5lPz9ocGFyZ290b2hwP2lkIS5lJm5pZ2FtaSxzcnVvY3NpZCw/P2shLiZncm8/bW9jP3Rlbj91ZGU/P3M/P2whLiZjbHA/ZCZlbT9pPz9ncm8/aGNzP21vYz90ZW4/dWRlP3ZvZz8/Zj9pbWFmIW5hY2lyZW1hPz9sJmE/aWw/P3BwdXM/P20hLiZlbWFuP2dybz9saW0/bW9jP3Rlbj91ZGU/dm9nP3ppYj8/ZWRhY2EhLmxhaWNpZmZvLD9yYT8/biZhcG1vYyEueG9ieW0sP29zPz9vJmo/cz8/cCEuJmdybz9saW0/bW9jP3Bvb2M/dGVuP3VkZT92b2c/Pz9yJmUmY29yZz9ncnVzP2xsYWc/dmlsZWQ/P2xld2VqP290Y2VyaWQ/dG51b2M/dXh1bD8/cyEuJmdybz9saW0/bW9jP3Rlbj91ZGU/dm9nPz8/dCZlZmFzP2kmYz9sZWRpZj9udW1tb2MhLiZiZG5ldmFyLGdvbixtdXJvZnltLD8/ciZhaGM/dWNlcz8/c3JldmludT8/bGFlcj9yJmFwP2Vwb3JwPz91YWViPz91IS4mYnVnP2dybz9saW0/bW9jP3Rlbj91ZGU/dmcsP2IhdHNlYj8/P3Zhbj94ZXM/P3omYSEuJmVtYW4/Z3JvP2xpbT9tb2M/byZjP2ZuaT9ycD8/cHA/dCZlbj9uaT8/dWRlP3ZvZz96aWI/Pz9iIS4mYXosZ3JvP2pzZyxtb2M/b2M/c25keW0sdGVuP3VkZT92b2c/Pz9jIS4mNGUsOXl4b3JwdG5ldG5vYy5jc3IsaW51bS5kdW9sYy4mcnN1LHRsZiw/bSZsYWVyLHVydG5lY2F0ZW0ubW90c3VjLD9vYyx2b2c/Pz9kIS4mY29zP2dybz9sb3A/bSZvYz90Pz9vc3NhP3QmZW4/cmE/P3VkZT92b2c/Pz9pYiEuJmR1b2xjc2QsZSZodC1yb2YsbW9zLXJvZixyb20tcm9mLD9pem9qLGxpYXJ0ZXZpdGNhLG5hZmFtbSxwJmkmLSZkdW9sYyxvbiw/Zmxlcyw/b2hiZXcsdGZ5bSw/cmV0dGViLXJvZixzbmQmbnlkLHVvbGMsP3hybyw/Zz8/ayEuJmR1b2xjaixncm8/bGltP21vYz90ZW4/dWRlP3ZvZz8/P20hLiZjYT9ncm8/bGltP29jP3Rlbj91ZGU/diZkYT9vZz8/Pz9uIS4mYXNxLWlyb20tLW54P2NhP2dybz9odGxhZWg/aSZyJmM/byZhbT9cdTAxMDFtPz8/d2khaz8/P2tlZWc/bCZpbT9vb2hjcz8/bmVnP29jP3NuZHVvbGMsdCZlbj9uZW1haWxyYXA/dm9nPz8/YSFuaWZsbGE/Pz9yYXdoY3M/cyEuJmNhP2dybz9vYz8/P3QhLiZjJmE/cz8/ZSZtP24/P2lib20/bCZldG9oP2ltPz9vJmM/Zm5pP2c/P3JvP3Z0Pz8/dSEuJmdybz9tb2M/b2M/dGVuPz9yd29uPz95eCEuJmUmbmllZmZhYyx4ZSw/aHNhZHRvYixsZW5udXRuZXBvLD8/enViPz9cdTAzYmJcdTAzYjU/XHUwM2M1XHUwM2I1P1x1MDQzMFx1MDQzMlx1MDQzYVx1MDQ0MVx1MDQzZVx1MDQzYz9cdTA0MzFcdTA0NDBcdTA0NDEhLiZcdTA0MzNcdTA0NDBcdTA0M2U/XHUwNDM0XHUwNDNlP1x1MDQzYVx1MDQzMD9cdTA0NDAmXHUwNDMxXHUwNDNlP1x1MDQzZiFcdTA0NDM/Pz8/P1x1MDQzMyZcdTA0MzE/XHUwNDQwXHUwNDNlPz9cdTA0MzRcdTA0M2FcdTA0M2M/XHUwNDM3XHUwNDMwXHUwNDliP1x1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzND9cdTA0M2FcdTA0MzhcdTA0M2JcdTA0M2VcdTA0NDJcdTA0MzBcdTA0M2E/XHUwNDNiXHUwNDM1XHUwNDMxP1x1MDQzY1x1MDQzZVx1MDQzYT9cdTA0M2QmXHUwNDM5XHUwNDMwXHUwNDNiXHUwNDNkXHUwNDNlP1x1MDQzZVx1MDQzYz8/XHUwNDQwXHUwNDNhXHUwNDQzP1x1MDQ0MVx1MDQ0M1x1MDQ0MCEuJlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzY1x1MDQzMFx1MDQ0MSxcdTA0MzFcdTA0M2ZcdTA0NDEsXHUwNDMzXHUwNDQwXHUwNDNlLFx1MDQzN1x1MDQzOFx1MDQzMSxcdTA0MzhcdTA0NDdcdTA0M2VcdTA0NDEsXHUwNDNhXHUwNDQxXHUwNDNjLFx1MDQzYyZcdTA0M2VcdTA0M2EsXHUwNDRiXHUwNDQwXHUwNDNhLD9cdTA0NDBcdTA0MzhcdTA0M2MsXHUwNDRmLD8/XHUwNDQyXHUwNDM5XHUwNDMwXHUwNDQxP1x1MDQ0NFx1MDQ0MD9cdTA0NGVcdTA0MzU/XHUwNTc1XHUwNTYxXHUwNTcwP1x1MDVkY1x1MDVkMFx1MDVlOFx1MDVlOVx1MDVkOSEuJlx1MDVkMVx1MDVkNVx1MDVlOVx1MDVkOT9cdTA1ZDRcdTA1ZDlcdTA1ZGVcdTA1ZDNcdTA1ZTdcdTA1ZDA/XHUwNWRjJlx1MDVkNFx1MDVlNj9cdTA1ZTlcdTA1ZGVcdTA1ZGU/Pz8/XHUwNWRkXHUwNWQ1XHUwNWU3P1x1MDYyN1x1MDY0YSZcdTA2MzFcdTA2NDhcdTA2MzM/XHUwNjMzXHUwNjRhXHUwNjQ0XHUwNjQ1P1x1MDY0Nlx1MDYyN1x1MDYyYVx1MDY0YVx1MDYzMVx1MDY0OFx1MDY0NT8/XHUwNjI4XHUwNjMxJlx1MDYzOT9cdTA2M2FcdTA2NDVcdTA2NDRcdTA2Mjc/P1x1MDYyOSZcdTA2NDNcdTA2MjhcdTA2MzQ/XHUwNjRhJlx1MDYyZlx1MDY0OFx1MDYzOVx1MDYzM1x1MDY0NFx1MDYyNz9cdTA2MzFcdTA2NDhcdTA2MzM/P1x1MDZjY1x1MDYyZlx1MDY0OFx1MDYzOVx1MDYzM1x1MDY0NFx1MDYyNz8/XHUwNjJhJlx1MDYyN1x1MDYzMVx1MDYyN1x1MDY0NVx1MDYyNz9cdTA2MzFcdTA2MjcmXHUwNjI4P1x1MDY4MD9cdTA2YmVcdTA2Mjg/Pz9cdTA2MzEmXHUwNjI2XHUwNjI3XHUwNjMyXHUwNjJjXHUwNjQ0XHUwNjI3P1x1MDYyN1x1MDYzMlx1MDYyN1x1MDYyOD9cdTA2MzVcdTA2NDU/XHUwNjM3XHUwNjQyPz9cdTA2MzNcdTA2NDZcdTA2NDhcdTA2MmE/XHUwNjM5XHUwNjQyXHUwNjQ4XHUwNjQ1P1x1MDY0Mlx1MDYyN1x1MDYzMVx1MDYzOT9cdTA2NDMmXHUwNjJhXHUwNjRhXHUwNjI4P1x1MDY0YVx1MDY0NFx1MDY0OFx1MDYyYlx1MDYyN1x1MDY0Mz8/XHUwNjQ1XHUwNjQ4XHUwNjQzP1x1MDY0NiZcdTA2MjcmXHUwNjJhXHUwNjMzJlx1MDY0M1x1MDYyN1x1MDY3ZT9cdTA2YTlcdTA2MjdcdTA2N2U/P1x1MDYyZlx1MDY0OFx1MDYzMz9cdTA2MzEmXHUwNjRhXHUwNjI3P1x1MDZjY1x1MDYyNz8/XHUwNjQ1XHUwNjM5P1x1MDY0YVx1MDY0NFx1MDYzOVx1MDY0NFx1MDYyNz8/XHUwNjJmXHUwNjMxXHUwNjI3XHUwNjQ0XHUwNjI3P1x1MDY0NVx1MDY0YVx1MDY0NFx1MDYyNz9cdTA2NGEmXHUwNjMxXHUwNjJkXHUwNjI4XHUwNjQ0XHUwNjI3P1x1MDYzN1x1MDYzM1x1MDY0NFx1MDY0MT8/P1x1MDY0NyZcdTA2MjdcdTA2MzFcdTA2NDVcdTA2NDc/XHUwNjRhXHUwNjJmXHUwNjQ4XHUwNjM5XHUwNjMzXHUwNjQ0XHUwNjI3Pz9cdTA2NDhcdTA2NDNcdTA2NDVcdTA2MjdcdTA2MzFcdTA2Mjc/XHUwNjRhXHUwNjI4XHUwNjM4XHUwNjQ4XHUwNjI4XHUwNjI3P1x1MDZjM1x1MDZjY1x1MDYyZlx1MDY0OFx1MDYzOVx1MDYzM1x1MDY0NFx1MDYyNz9cdTA5MWZcdTA5NDdcdTA5Mjg/XHUwOTI0Jlx1MDkzMFx1MDkzZVx1MDkyZD9cdTA5NGJcdTA5MzBcdTA5M2VcdTA5MmQ/P1x1MDkyOFx1MDkyMFx1MDkxN1x1MDkwMlx1MDkzOD9cdTA5MmVcdTA5NDlcdTA5MTU/XHUwOTRkXHUwOTJlXHUwOTI0XHUwOTMwXHUwOTNlXHUwOTJkP1x1MDlhNCZcdTA5YjBcdTA5YmVcdTA5YWQ/XHUwOWYwXHUwOWJlXHUwOWFkPz9cdTA5YmVcdTA5YjJcdTA5ODJcdTA5YmVcdTA5YWM/XHUwYTI0XHUwYTMwXHUwYTNlXHUwYTJkP1x1MGFhNFx1MGFiMFx1MGFiZVx1MGFhZD9cdTBiMjRcdTBiMzBcdTBiM2VcdTBiMmQ/XHUwYmJlXHUwYmFmXHUwYmJmXHUwYmE0XHUwYmNkXHUwYmE4XHUwYjg3P1x1MGJjOFx1MGI5NVx1MGJjZFx1MGI5OVx1MGJiMlx1MGI4Nz9cdTBiY2RcdTBiYjBcdTBiYzJcdTBiYWFcdTBiY2RcdTBiYWFcdTBiOTVcdTBiY2RcdTBiOTlcdTBiYmZcdTBiOWE/XHUwYzRkXHUwYzI0XHUwYzMwXHUwYzNlXHUwYzJkP1x1MGNhNFx1MGNiMFx1MGNiZVx1MGNhZD9cdTBkMDJcdTBkMjRcdTBkMzBcdTBkM2VcdTBkMmQ/XHUwZGNmXHUwZDlhXHUwZDgyXHUwZGJkP1x1MGUyMVx1MGUyZFx1MGUwND9cdTBlMjJcdTBlMTdcdTBlNDQhLiZcdTBlMDhcdTBlMzRcdTBlMDFcdTBlMjNcdTBlMzhcdTBlMTg/XHUwZTE1XHUwZTQ3XHUwZTE5XHUwZTQwP1x1MGUyMyZcdTBlMDFcdTBlNGNcdTBlMDRcdTBlMDdcdTBlMmQ/XHUwZTMyXHUwZTJiXHUwZTE3Pz9cdTBlMjVcdTBlMzJcdTBlMWFcdTBlMTBcdTBlMzFcdTBlMjM/XHUwZTMyXHUwZTI5XHUwZTAxXHUwZTM2XHUwZTI4Pz8/XHUwZWE3XHUwZWIyXHUwZWE1P1x1MTBkNFx1MTBkMj9cdTMwNmFcdTMwOTNcdTMwN2Y/XHUzMGEyXHUzMGM4XHUzMGI5P1x1MzBjOFx1MzBmM1x1MzBhNFx1MzBkZD9cdTMwYzlcdTMwYTZcdTMwZTlcdTMwYWY/XHUzMGUwXHUzMGIzP1x1MzBlYiZcdTMwYjBcdTMwZmNcdTMwYjA/XHUzMGZjXHUzMGJiPz9cdTMwZjMmXHUzMGJlXHUzMGRlXHUzMGEyP1x1MzBlN1x1MzBiN1x1MzBjM1x1MzBhMVx1MzBkNT8/XHU0ZTFhXHU0ZjAxP1x1NGUxY1x1NWU3Zj9cdTRlNTBcdTVhMzE/XHU0ZjYwXHU3MjMxXHU2MjExP1x1NGZlMVx1NGUyZD9cdTUyYTFcdTY1M2Y/XHU1MmE4XHU3OWZiP1x1NTM1YVx1NWZhZT9cdTUzNjZcdTUxNmI/XHU1Mzg1XHU5OTEwP1x1NTNmOFx1NTE2Yz9cdTU0YzFcdTk4ZGY/XHU1NTg0XHU2MTQ4P1x1NTZlMlx1OTZjNj9cdTU2ZmRcdTRlMmQ/XHU1NzBiXHU0ZTJkP1x1NTc0MFx1N2Y1MT9cdTU3NjFcdTUyYTBcdTY1YjA/XHU1N2NlXHU1NTQ2P1x1NWMxYVx1NjVmNj9cdTVjNzFcdTRmNWI/XHU1ZTk3Jlx1NTU0Nj9cdTdmNTE/XHU5MTUyXHU1OTI3XHU5MWNjXHU1NjA5Pz9cdTVlOWNcdTY1M2Y/XHU1ZWI3XHU1MDY1P1x1NjA2Zlx1NGZlMT9cdTYyMGZcdTZlMzg/XHU2MmM5XHU5MWNjXHU2ODNjXHU5OTk5P1x1NjJmZlx1NTkyNz9cdTY1NTlcdTRlM2JcdTU5Mjk/XHU2NzNhXHU2MjRiP1x1Njc4NFx1NjczYSFcdTdlYzdcdTdlYzQ/P1x1NjgwN1x1NTU0Nj9cdTZiNGNcdThjMzc/XHU2ZDY2XHU1MjI5XHU5OGRlP1x1NmUyZlx1OTk5OSEuJlx1NGViYVx1NTAwYj9cdTUzZjhcdTUxNmM/XHU1ZTljXHU2NTNmP1x1N2Q2MVx1N2RiMj9cdTdlNTRcdTdkNDQ/XHU4MGIyXHU2NTU5Pz8/XHU2ZTdlXHU1M2YwP1x1NzA2MyZcdTUzZjA/XHU4MWZhPz9cdTcyNjlcdThkMmQ/XHU3NTRjXHU0ZTE2P1x1NzZjYVx1NTE2Yz9cdTc3MGJcdTcwYjk/XHU3OWQxXHU3NmM4XHU4YTBhXHU5NmZiP1x1N2FkOVx1N2Y1MT9cdTdjNGRcdTY2Zjg/XHU3ZWJmXHU1NzI4P1x1N2VkY1x1N2Y1MT9cdTdmNTFcdTY1ODdcdTRlMmQ/XHU4MDU4XHU2MmRiP1x1OGNhOVx1OTAxYT9cdTkwMGFcdTlhNmNcdTRlOWE/XHU5MDFhXHU4MDU0P1x1OTFjY1x1NTYwOT9cdTk1MjFcdTlhNmNcdTZkZTE/XHU5NTgwXHU2ZmIzP1x1OTVlOFx1NmZiMz9cdTk1ZmJcdTY1YjA/XHU5NmZiXHU1YmI2P1x1YWQ2ZFx1ZDU1Yz9cdWIxMzdcdWIyZjc/XHVjMTMxXHVjMGJjP1x1Y2VmNFx1YjJmNz8/Iik7CnRoaXMuaD1DcigiJmtjLnd3dz9wai4mYSZtYWhva295Lnl0aWM/eW9nYW4ueXRpYz8/ZWJvay55dGljP2kmYWRuZXMueXRpYz9rYXNhd2FrLnl0aWM/P29yb3BwYXMueXRpYz91aHN1eWthdGlrLnl0aWM/Pz8iKTt0aGlzLmk9Q3IoIiZhYy52ZWR3YSxidXAuJmRpLG5payw/Y3YuZTAsZHVvbGMuJmV0aXNvdG5lZ2FtLG5kY3RlZ2ViLHJlaGNuYXItbm8sc2NpdGF0cyw/ZSZiLmxydXNuYXJ0LGQuJmVjbmF0c25pLXNvLWR1b2xjd2IsdGNlbm5vY25vbmV4LHlrc3VyZiw/bHBwYS50bmkuZHVvbGM6LnI6LiYxLSZodCZyb24tJnBhLHVlLD91b3MtcGEsP2xhcnRuZWMtJnN1LHVlLD90cyZhZS1zdSxldy1zdSw/PzItJmh0dW9zLXBhLGxhcnRuZWMtc3UsdHMmYWUtc3UsZXctc3UsPz8zLXRzZXctc3UsPywsbm8mLm5payx6LiZub3RpcnQsc3BvcmV6LD8/dCZhdHNlLmV0dXBtb2MsaXMuJmFyZWR1b2xjLGhzbXJvZnRhbHAsdHN0LD8/dmlsLnB3ZSw/ZyZnLnlscC50YSxvb2cudG5ldG5vY3Jlc3UscD8/aGMudGVuZXJpZjouY3ZzLCxrJmM/Zj9uaWwuJmJld2QscmVzd29yYm5pLD9yb3d0ZW4uc2VjbGEsdS4maGNzP3NwcGFkdW9sY3ZvZ2VsY2Fybyw/P2xuLmxydXNuYXJ0LG0mZi5yZXN1LGo/bT9vYy4mZCZvbS12b2ctc3UtcDMtbmFpc3NhbHRhLHVvbGMmLXJldmVsYy5zZWNpdnJlcyxtZWFlYm9kYS52ZWQsPz9lJmNyb2ZzZWxhcy5tcm9mdGFscC5ndHMtcmVkbGl1Yi1lZG9jLnRzZXQuMTAwLGRvJmMucmVkbGl1YjotJmd0cyx2ZWQsPyxuaWwucmVjbmFsYWJlZG9uLD8/aWNvLXJlbW90c3VjOi4maWNvLHBjbyxzY28sPyxsJmF0cm9wcWh5bGF1cSxyaWh3eWFwLD9tbWUwLHAzLSZkZXRhbG9zaS1uYWlzc2FsdGEsbmFpc3NhbHRhLD9yZW4mbnVycHBhc3dhLHRyYXBxaHlsYXVxLD9zJmVjYXBzbmFlY29sYXRpZ2lkLHBwYSZkdW9sYyZlbGNhcm8sdm9nZWxjYXJvLD9uaXZlZCw/dCZjZWpibyZlZG9uaWwscnRsdXYsP25lbWVsZXBpdXEsP3dhbm96YW1hLiYxLWV0dXBtb2MsYmxlLGV0dXBtb2Msc2RyLiYxLSZodHVvcy0mZW0sZmEscGEsP2xhcnRuZWMtJmFjLGVtLGxpLHVlLHhtLD90cyZhZSYtJmFzLHBhLHN1LHZvZy1zdSw/aHQmcm9uLSZwYSxzdSw/dW9zLXBhLD8/ZXctJmFjLHN1LHVlLHZvZy1zdSw/Pz8yLSZodHVvcy1wYSxsYXJ0bmVjLXVlLHRzJmFlJi0mcGEsc3UsP2h0JnJvbi1wYSx1b3MtcGEsPz9ldy0mc3UsdWUsPz8/My10cyZhZWh0JnJvbi1wYSx1b3MtcGEsP2V3LXVlLD80LXRzYWVodHVvcy1wYSw1LXRzYWVodHVvcy1wYSw2LXRzYWVodHVvcy1wYSw3LXRzYWVodHVvcy1wYSw/d29sZnJpYS4mMS0maHQmcm9uLXVlLHVvcy0mZW0sZmEscGEsdWUsPz9sYXJ0bmVjLSZhYyxlbSxsaSx1ZSw/dHMmYWUmLSZhcyxwYSxzdSw/aHQmcm9uLXBhLHVvcy1wYSw/P2V3LSZhYyxzdSx1ZSw/Pz8yLSZodHVvcy0mcGEsdWUsP2xhcnRuZWMtdWUsdHMmYWUmLXN1LGh0JnJvbi1wYSx1b3MtcGEsPz9ldy0mc3UsdWUsPz8/My10cyZhZWh0JnJvbi1wYSx1b3MtcGEsP2V3LXVlLD80LXRzYWVodHVvcy1wYSw1LXRzYWVodHVvcy1wYSw3LXRzYWVodHVvcy1wYSw/Pz90Jm5ldG5vY3Jlc3UmYXJ0dWwsaSZhJmF0ZW0sbyw/dWEsPz9vcHNwcGEuciw/Pz9uJmMubW9jLnMmZWNpdnJlc2Jld25vemFtYS5uby4xLSZodHJvbi1uYy53b2xmcmlhLHRzZXdodHJvbi1uYy53b2xmcmlhLD93YW5vemFtYS4mMS0maHRyb24tbmMuc2RyLHRzZXdodHJvbi1uYy5zZHIsP2JsZSxldHVwbW9jLHdvbGZyaWEuMS0maHRyb24tbmMsdHNld2h0cm9uLW5jLD8/P3VyLiZkbGl1YixlJmRvYyxzYWJhdGFkLHRpcndwcGEsP25vaXRhcmdpbSw/P28mYy4mYXBkci5zJnJldHN1bGMsc2VscnZycyw/cGF0byx0aW14LD9pLiYwcGNpLndhciwxcGNpLndhcixlJmxhY3Nub29tLHZhcmIucyw/bnJvY2Etbm8sb2lyLW5vLHJlbmlhdG5vY2VydXphLHMmM2stbm8sb2xvdHMsP3hjcS5zeXMsPz9wJmouJmEmbWFob2tveT95b2dhbj8/ZWJvaz9pJmFkbmVzP2thc2F3YWs/P29yb3BwYXM/dWhzdXlrYXRpaz8/bj9vdC5sZGF3LHBhLiZkZXRzb2gsZSZrYWxmd29uczoua25pbGV0YXZpcnAsLHZhcmIucyw/a25hbGZodHJvbixudSZyOi5zbHRtLCxzcHUsP3JlcG9sZXZlZCxzcG9yZXosdGVnZWIsPz9yJmIubW9uP2U/P3MmZWRvYy5vd28sdWxwLnRpeWFscC50YSx3Ji5yb3NpdmRhLGEuJm5vLiYxLSZodCZyb24tdWUud29sZnJpYSx1b3MtJmVtLndvbGZyaWEsZmEud29sZnJpYSxwYS53b2xmcmlhLHVlLndvbGZyaWEsPz9sYXJ0bmVjLSZhYy53b2xmcmlhLGVtLndvbGZyaWEsbGkud29sZnJpYSx1ZS53b2xmcmlhLD90cyZhZSYtJmFzLndvbGZyaWEscGEud29sZnJpYSxzdS53b2xmcmlhLD9odCZyb24tcGEud29sZnJpYSx1b3MtcGEud29sZnJpYSw/P2V3LSZhYy53b2xmcmlhLHN1LndvbGZyaWEsdWUud29sZnJpYSw/Pz8yLSZodHVvcy0mcGEud29sZnJpYSx1ZS53b2xmcmlhLD9sYXJ0bmVjLXVlLndvbGZyaWEsdHMmYWUmLXN1LndvbGZyaWEsaHQmcm9uLXBhLndvbGZyaWEsdW9zLXBhLndvbGZyaWEsPz9ldy0mc3Uud29sZnJpYSx1ZS53b2xmcmlhLD8/PzMtdHMmYWVodCZyb24tcGEud29sZnJpYSx1b3MtcGEud29sZnJpYSw/ZXctdWUud29sZnJpYSw/NC10c2FlaHR1b3MtcGEud29sZnJpYSw1LXRzYWVodHVvcy1wYS53b2xmcmlhLD9yZWthbWVnYXMuc3RuZW1pcmVweGUsdHNvcGVyLmV0YXZpcnAsPz8/dCZhLiZvZm5pc3Ryby4mbmVkbnVrLHhlLD9zbWNlcnV0dWY6LiZuaSx4ZSw/LD9lbi4mY2ltb25vdHB5cmMsaHZvLiZnbml0c29oLHNhYXBiZXcsP290bGFjb2wscGNpLHN0LmMsP3MubmMsP3UmZS4mYXhuLGxydXNuYXJ0LD9yLm9uaWp5bS4mZ25pJmRuYWwsdHNvaCw/bXVydGNlcHMsc3B2LD8/dmVkLiZlJmdhdHMmZ3RzLGxjbCw/cmFoYmV3LHZhcmIucyw/Z3RzLGxjbCxtcmMuJmEmYSxwLHcsP2ImYSxwLHcsP2MmYSxwLHcsP2Q6YSxwLHcsLGUmYSxwLHcsP2YmYSxwLHcsP2ljLHcsP3Jlc3dvcmJuaSx0cmVjbGFjb2wucmVzdSx5YXdldGFnLD96JmMubXVydG5lY2F0ZW0uZHVvbGMseXgudGliZWxldCw/PyIpfSwKcnI9ZnVuY3Rpb24oYSxiKXt2YXIgYz0tMSxkPWE7YT17fTt2YXIgZT0wO2QuaCE9PXZvaWQgMCYmKGFbZV09ZC5oKTtmb3IoO2U8Yi5sZW5ndGg7ZSsrKXt2YXIgZj1iLmNoYXJBdChlKTtpZighKGYgaW4gZC5nKSlicmVhaztkPWQuZ1tmXTtkLmghPT12b2lkIDAmJihhW2VdPWQuaCl9Zm9yKHZhciBnIGluIGEpZD1wYXJzZUludChnLDEwKSwoZCsxPT1iLmxlbmd0aHx8Yi5jaGFyQXQoZCsxKT09Ii4iKSYmYVtnXT09MSYmZD5jJiYoYz1kKTtyZXR1cm4gYi5zdWJzdHIoMCxjKzEpfSxDcj1mdW5jdGlvbihhKXt2YXIgYj1uZXcgaHI7RHIoMCxhLGIpO3JldHVybiBifSxEcj1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkO2E8Yi5sZW5ndGg7YSsrKXtkPWIuY2hhckF0KGEpO2lmKGQ9PSIhInx8ZD09Ij8iKXtjLmg9ITA7YnJlYWt9ZWxzZSBpZihkPT0iOiJ8fGQ9PSIsIil7Yy5oPSExO2JyZWFrfWVsc2UgaWYoZD09IiYiKWJyZWFrO3ZhciBlPWQ7Yy5nW2VdfHwoYy5nW2VdPW5ldyBocik7CmM9Yy5nW2VdfWErKztpZihkPT0iPyJ8fGQ9PSIsIilyZXR1cm4gYTtkbyBhPURyKGEsYixjKSxkPWIuY2hhckF0KGEpO3doaWxlKGQhPSI/IiYmZCE9IiwiKTtyZXR1cm4gYSsxfTt2YXIga3Isc3IsaXIsbXIsbnI7Xy5LKCJnb29nbGUuYWNjb3VudHMuaWQuaW50ZXJtZWRpYXRlLnZlcmlmeVBhcmVudE9yaWdpbiIsXy5vcik7Xy5LKCJnb29nbGUuYWNjb3VudHMuaWQuaW50ZXJtZWRpYXRlLm5vdGlmeVBhcmVudFJlc2l6ZSIsXy53cik7Xy5LKCJnb29nbGUuYWNjb3VudHMuaWQuaW50ZXJtZWRpYXRlLm5vdGlmeVBhcmVudENsb3NlIixfLnhyKTtfLksoImdvb2dsZS5hY2NvdW50cy5pZC5pbnRlcm1lZGlhdGUubm90aWZ5UGFyZW50RG9uZSIsZnVuY3Rpb24oKXtfLmZyP18uZ3Ioe2NvbW1hbmQ6ImludGVybWVkaWF0ZV9pZnJhbWVfZG9uZSJ9KTpfLkcoIkRvbmUgY29tbWFuZCB3YXMgbm90IHNlbnQgZHVlIHRvIG1pc3NpbmcgdmVyaWZpZWQgcGFyZW50IG9yaWdpbi4iKX0pO18uSygiZ29vZ2xlLmFjY291bnRzLmlkLmludGVybWVkaWF0ZS5ub3RpZnlQYXJlbnRUYXBPdXRzaWRlTW9kZSIsXy55cik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBFcj1mdW5jdGlvbigpe3ZhciBhPW5ldyBVaW50OEFycmF5KDMyKTsod2luZG93LmNyeXB0b3x8Xy52ZC5tc0NyeXB0bykuZ2V0UmFuZG9tVmFsdWVzKGEpO3JldHVybiBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLF8uTWQoYSkpKS5yZXBsYWNlKC89KyQvLCIiKX0sRnI9ZnVuY3Rpb24oYSl7dmFyIGI9W107Xy5nYihhLGZ1bmN0aW9uKGMpe2IucHVzaChjKX0pO3JldHVybiBifSxHcj1mdW5jdGlvbihhKXtpZihhPT1udWxsfHx0eXBlb2YgYT09PSJudW1iZXIiKXJldHVybiBhO2lmKGE9PT0iTmFOInx8YT09PSJJbmZpbml0eSJ8fGE9PT0iLUluZmluaXR5IilyZXR1cm4gTnVtYmVyKGEpfSxIcj1mdW5jdGlvbihhKXtpZihhIT1udWxsKWlmKHR5cGVvZiBhPT09InN0cmluZyIpYT1hP25ldyBfLmNjKGEsXy5CZSk6Xy5qaCgpO2Vsc2UgaWYoYS5jb25zdHJ1Y3RvciE9PV8uY2Mpe3ZhciBiO18uQWUmJmEhPW51bGwmJmEgaW5zdGFuY2VvZiBVaW50OEFycmF5PwpiPWEubGVuZ3RoP25ldyBfLmNjKG5ldyBVaW50OEFycmF5KGEpLF8uQmUpOl8uamgoKTpiPXZvaWQgMDthPWJ9cmV0dXJuIGF9LElyPWZ1bmN0aW9uKGEpe3ZhciBiPWI9PT12b2lkIDA/Xy5tZjpiO2E6aWYoYj1iPT09dm9pZCAwP18ubWY6YiwhKGEgaW5zdGFuY2VvZiBfLlJjKSl7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDsrK2Mpe3ZhciBkPWJbY107aWYoZCBpbnN0YW5jZW9mIF8uVGMmJmQuYWUoYSkpe2E9bmV3IF8uUmMoYSk7YnJlYWsgYX19YT12b2lkIDB9cmV0dXJuIGF8fF8ubGZ9LEtyPWZ1bmN0aW9uKGEsYil7aWYoXy5kbChiKSlhLmhyZWY9Xy5lbChiKS50b1N0cmluZygpLGEucmVsPSJzdHlsZXNoZWV0IjtlbHNle2lmKEpyLmluZGV4T2YoInN0eWxlc2hlZXQiKT09PS0xKXRocm93IEVycm9yKCJJYHN0eWxlc2hlZXQiKTtiPV8uV2MoYik7YiE9PXZvaWQgMCYmKGEuaHJlZj1iLGEucmVsPSJzdHlsZXNoZWV0Iil9fSxMcj1mdW5jdGlvbihhKXtpZihfLiRjLmluY2x1ZGVzKGEpKXt2YXIgYj0KcGFyc2VJbnQoXy5hZC5nZXQoImdlXyIrYSksMTApO2lmKGIpcmV0dXJuIGJ9Yj1fLlpjO2IuZ1thXT8oYT1iLmdbYV0sYT10eXBlb2YgYT09PSJudW1iZXIiP2E6MSk6YT0wO3JldHVybiBhfSxNcj1mdW5jdGlvbigpe3ZhciBhPUxyKCJlbmFibGVfaXRwX29wdGltaXphdGlvbiIpO3N3aXRjaChhPT09dm9pZCAwPzA6YSl7Y2FzZSAxOTpjYXNlIDIxOmNhc2UgMjM6cmV0dXJuIDZ9fSxScj1mdW5jdGlvbihhLGIsYyxkKXtOcj1hP2ErIi9nc2kvbG9nIjoiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9sb2ciO09yPWI7UHI9YztRcj1kfHxbXX0sVHI9ZnVuY3Rpb24oYSxiKXtpZighKF8uaGc+PShiPT09dm9pZCAwPzEwMDpiKSkpe2I9bmV3IF8uaGQoTnIpO2E9Xy53ayh7Y2xpZW50X2lkOk9yLGFzOlByLGJzOlNyLGV2ZW50OmEudG9TdHJpbmcoKX0pO2Zvcih2YXIgYz1fLnUoUXIpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWQ9ZC52YWx1ZSxhLmFkZChkLk9kLApkLlBkLnRvU3RyaW5nKCkpO18ua2QoYixhKTtfLlFrKGIudG9TdHJpbmcoKSx2b2lkIDAsIlBPU1QiLHZvaWQgMCx2b2lkIDAsTnIhPT0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9sb2ciKX19LFdyPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyAoRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuYXBwbHkoVXIsW251bGwsIm9uZXRhcCIsYSwicHJvbXB0Il0uY29uY2F0KF8uTWQoVnIuYXBwbHkoMSxhcmd1bWVudHMpKSkpKTtUcihiKX0sWHI9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgKEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmFwcGx5KFVyLFtudWxsLCJvbmV0YXAiLHZvaWQgMCwiY2xvc2VkIl0uY29uY2F0KF8uTWQoVnIuYXBwbHkoMCxhcmd1bWVudHMpKSkpKTtUcihhKX0sWXI9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgKEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmFwcGx5KFVyLFtudWxsLCJpZCIsdm9pZCAwLCJpbml0Il0uY29uY2F0KF8uTWQoVnIuYXBwbHkoMCxhcmd1bWVudHMpKSkpKTsKVHIoYSl9LFpyPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IChGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5hcHBseShVcixbbnVsbCwib25ldGFwIix2b2lkIDAsInBvbGljeSJdLmNvbmNhdChfLk1kKFZyLmFwcGx5KDAsYXJndW1lbnRzKSkpKSk7VHIoYSl9LCRyPWZ1bmN0aW9uKCl7dmFyIGE9Xy53ZCgpLnRvU3RyaW5nKCksYj17V2I6MzAwLHBhdGg6Ii8iLHNlY3VyZTohMH0sYztpZihjPV8uT2EoKSljPV8ucWsoXy5tZyw4MCk+PTA7YyYmKGIuc2FtZVNpdGU9Im5vbmUiKTtjPV8uQWYobG9jYXRpb24ub3JpZ2luKTtjLmg9PT0iaHR0cCImJmMuZz09PSJsb2NhbGhvc3QiJiYoYi5zZWN1cmU9dm9pZCAwLGIuc2FtZVNpdGU9dm9pZCAwKTtfLmFkLnNldCgiZ19jc3JmX3Rva2VuIixhLGIpO3JldHVybiBhfSxhcz1mdW5jdGlvbihhLGIpe18uUWsoYSxmdW5jdGlvbihjKXtiKF8uTWsoYy50YXJnZXQpKX0sIkdFVCIsdm9pZCAwLHZvaWQgMCwhMCl9LGJzPWZ1bmN0aW9uKGEsYixjLGQpe18uUWsoYSwKZnVuY3Rpb24oZSl7ZChfLk1rKGUudGFyZ2V0KSl9LCJQT1NUIixiP18ud2soXy52ayhiKSkudG9TdHJpbmcoKTpudWxsLHZvaWQgMCxjKX0sY3M9ZnVuY3Rpb24oYSxiLGMpe2JzKGEsYiwhMCxjKX0sZHM9ZnVuY3Rpb24oYSxiLGMpe2IuY3JlZGVudGlhbD1jfHwiIjtiLmdfY3NyZl90b2tlbj0kcigpO18ucmkoYSxiKX0sZXM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oYyl7YyYmYy5jcmVkZW50aWFsP2RzKGEsYnx8e30sYy5jcmVkZW50aWFsKTpfLkYoIk5vIGNyZWRlbnRpYWwgZm91bmQgaW4gdGhlIHJlc3BvbnNlLiIpfX0sZ3M9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5BZihhKTtiLmd8fChfLmlkKGIsbG9jYXRpb24ucHJvdG9jb2wpLGIuZz1sb2NhdGlvbi5ob3N0bmFtZSxfLmpkKGIsbG9jYXRpb24ucG9ydCksWXIoInJlbGF0aXZlTG9naW5VcmkiLGEpLF8uRygiUmVsYXRpdmUgbG9naW5fdXJpIHdhcyBwcm92aWRlZC4gVXNlIGFic29sdXRlIHVybCBpbnN0ZWFkLiBSZWxhdGl2ZSBsb2dpbl91cmkgbWF5IGJlIGNvbnNpZGVyZWQgaW52YWxpZCBpbiB0aGUgZnV0dXJlLiIpKTsKaWYoYi5oIT09Imh0dHBzIiYmYi5nIT09ImxvY2FsaG9zdCIpdGhyb3cgWXIoInVuc2VjdXJlZExvZ2luVXJpIixhKSxuZXcgZnMoIlVuc2VjdXJlZCBsb2dpbl91cmkgcHJvdmlkZWQuIik7cmV0dXJuIGIudG9TdHJpbmcoKX0saHM9ZnVuY3Rpb24oYSl7dHJ5e3ZhciBiPV8uQWYoYSksYz1iLmg7cmV0dXJuISFiLmcmJihjPT09Imh0dHBzInx8Yz09PSJodHRwIiYmYi5nPT09ImxvY2FsaG9zdCIpfWNhdGNoKGQpe31yZXR1cm4hMX0saXM9ZnVuY3Rpb24oKXtmb3IodmFyIGE9Xy51KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJNRVRBIikpLGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKWlmKGI9Yi52YWx1ZSxiLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09Imdvb2dsZS1zaWduaW4tY2xpZW50X2lkIilyZXR1cm4gYi5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKTthPV8udShkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSUZSQU1FIikpO2ZvcihiPWEubmV4dCgpOyFiLmRvbmU7Yj0KYS5uZXh0KCkpaWYoKGI9Yi52YWx1ZS5nZXRBdHRyaWJ1dGUoInNyYyIpKSYmYi5zdGFydHNXaXRoKCJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvaWZyYW1lIikpcmV0dXJuIF8uQWYoYikuai5nZXQoImNsaWVudF9pZCIpfHxudWxsO3JldHVybiBudWxsfSxqcz1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gbnVsbDt2YXIgYj1hLmluZGV4T2YoIi0iKTtpZihiPj0wKXJldHVybiBhLnN1YnN0cmluZygwLGIpO2I9YS5pbmRleE9mKCIuIik7cmV0dXJuIGI+PTA/YS5zdWJzdHJpbmcoMCxiKTpudWxsfSxrcz1mdW5jdGlvbihhKXt2YXIgYj1pcygpO2lmKGEmJmIpe3ZhciBjPWpzKGEpLGQ9anMoYik7IShjJiZkfHxhIT09Yil8fGMmJmQmJmM9PT1kfHxfLkcoIlRoZSBjbGllbnQgaWRzIHVzZWQgYnkgR29vZ2xlIFNpZ24gSW4gYW5kIE9uZSBUYXAgc2hvdWxkIGJlIHNhbWUgb3IgZnJvbSB0aGUgc2FtZSBwcm9qZWN0LlxuT25lIFRhcCBtYXkgYmUgYmxvY2tlZCBpbiB0aGUgbmVhciBmdXR1cmUgaWYgbWlzbWF0Y2hlZC4iKX19LApscz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO2MucHVzaChfLlhmKGEsImNsaWNrIixiKSk7Yy5wdXNoKF8uWGYoYSwia2V5ZG93biIsZnVuY3Rpb24oZCl7dmFyIGU9ZC5rZXk7ZSE9PSJFbnRlciImJmUhPT0iICJ8fGIoZCl9KSl9LG1zPWZ1bmN0aW9uKCl7cmV0dXJuIV8uJGEoKXx8Xy5xayhfLnJrKCksIjExOCIpPj0wP18uSSgiZW5hYmxlX2ZlZGNtX29uX2VkZ2UiKSYmIV8ueWQoKSYmIV8ueGQoKSYmXy5VYSgiTWljcm9zb2Z0IEVkZ2UiKT49MTMyPyEwOl8uemQoKSYmKF8uV2EoKXx8IV8ueWQoKSYmIV8ueGQoKSkmJl8ucWsoXy5yaygpLCIxMDgiKT49MDohMX0sbnM9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHdpbmRvdy5zZWxmIT09d2luZG93LnRvcH1jYXRjaChhKXtyZXR1cm4hMH19LG9zPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQ7cmV0dXJuIGEubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zJiZhLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucy5sZW5ndGghPT0wP2EubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zW2EubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zLmxlbmd0aC0KMV06YS5sb2NhdGlvbi5vcmlnaW59LHBzPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQ7cmV0dXJuIGEubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zP2EubG9jYXRpb24ucHJvdG9jb2wrIi8vIithLmxvY2F0aW9uLmhvc3QhPT1vcygpOiExfSxxcz1mdW5jdGlvbihhLGIsYyl7YyYmYS5wdXNoKGIrIj0iK2VuY29kZVVSSUNvbXBvbmVudChjLnRyaW0oKSkpfSxycz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yy5jbGllbnRfaWQsZT1jLnNjb3BlLGY9YT09PSJjb2RlIj8iY29kZSI6InRva2VuIjthPT09InRva2VuIiYmYy5pbmNsdWRlX2lkX3Rva2VuJiZfLkkoImVuYWJsZV9vYXV0aDJfaWRfdG9rZW4iKSYmKGY9InRva2VuIGlkX3Rva2VuIik7aWYoYy5ub25jZSl2YXIgZz1jLm5vbmNlO2lmKGE9PT0iY29kZSIpe3ZhciBoPSJvZmZsaW5lIjt2YXIgaz1jLnNlbGVjdF9hY2NvdW50PyJzZWxlY3RfYWNjb3VudCBjb25zZW50IjoiY29uc2VudCI7aWYoYy5jbGFpbXMhPT12b2lkIDApdmFyIG09CmMuY2xhaW1zfWVsc2UgYy5wcm9tcHQ9PT12b2lkIDA/az0ic2VsZWN0X2FjY291bnQiOmMucHJvbXB0JiYoaz1jLnByb21wdCk7YT1jLnJlZGlyZWN0X3VyaTtpZihjLmxvZ2luX2hpbnQpdmFyIG49Yy5sb2dpbl9oaW50O2lmKGMuc3RhdGUpdmFyIHE9Yy5zdGF0ZTtpZihjLmhkKXZhciBwPWMuaGQ7aWYoYy5pbmNsdWRlX2dyYW50ZWRfc2NvcGVzIT09dm9pZCAwKXZhciByPWMuaW5jbHVkZV9ncmFudGVkX3Njb3BlcztpZihjLmVuYWJsZV9ncmFudWxhcl9jb25zZW50IT09dm9pZCAwKXZhciB4PWMuZW5hYmxlX2dyYW51bGFyX2NvbnNlbnQ7aWYoYy50cmlnZ2VyX29uZXBpY2shPT12b2lkIDApdmFyIHk9Yy50cmlnZ2VyX29uZXBpY2s7aWYoYy5hbGxvd19tdWx0aXBsZSE9PXZvaWQgMCl2YXIgQz1jLmFsbG93X211bHRpcGxlO2lmKGMuYWxsb3dfZm9sZGVyX3NlbGVjdGlvbiE9PXZvaWQgMCl2YXIga2E9Yy5hbGxvd19mb2xkZXJfc2VsZWN0aW9uO2lmKGMuZmlsZV9pZHMhPT12b2lkIDApdmFyIG5hPQpjLmZpbGVfaWRzO2lmKGMubWltZXR5cGVzIT09dm9pZCAwKXZhciBBYT1jLm1pbWV0eXBlczt2YXIga2I9IjMiO2MuZ3Npd2Vic2RrIT09dm9pZCAwJiYoa2I9Yy5nc2l3ZWJzZGspO2lmKGMuZ2lzX3BhcmFtcyE9PXZvaWQgMCl2YXIgUmY9Yy5naXNfcGFyYW1zO2lmKGMub3JpZ2luIT09dm9pZCAwKXZhciBTZj1jLm9yaWdpbjtpZihjLmRpc3BsYXkhPT12b2lkIDApdmFyIFRmPWMuZGlzcGxheTtpZihjLnJlc3BvbnNlX21vZGUhPT12b2lkIDApdmFyIFVmPWMucmVzcG9uc2VfbW9kZTtpZihjLmdpc2xwIT09dm9pZCAwKXZhciBudT1jLmdpc2xwO2lmKGMudXBzdHJlYW1fZXhwZXJpbWVudF9pZCE9PXZvaWQgMCl2YXIgb3U9Yy51cHN0cmVhbV9leHBlcmltZW50X2lkO2M9W107cXMoYywiZ3Npd2Vic2RrIixrYik7cXMoYywiY2xpZW50X2lkIixkKTtxcyhjLCJzY29wZSIsZSk7cXMoYywicmVkaXJlY3RfdXJpIixhKTtxcyhjLCJwcm9tcHQiLGspO3FzKGMsImxvZ2luX2hpbnQiLG4pOwpxcyhjLCJzdGF0ZSIscSk7cXMoYywiYWNjZXNzX3R5cGUiLGgpO3FzKGMsImhkIixwKTtxcyhjLCJyZXNwb25zZV90eXBlIixmKTtxcyhjLCJub25jZSIsZyk7cXMoYywiaW5jbHVkZV9ncmFudGVkX3Njb3BlcyIscj09PSExPyJmYWxzZSI6InRydWUiKTtxcyhjLCJlbmFibGVfZ3JhbnVsYXJfY29uc2VudCIseD09PSExPyJmYWxzZSI6InRydWUiKTt5IT09dm9pZCAwJiZxcyhjLCJ0cmlnZ2VyX29uZXBpY2siLHk9PT0hMT8iZmFsc2UiOiJ0cnVlIik7QyE9PXZvaWQgMCYmcXMoYywiYWxsb3dfbXVsdGlwbGUiLEM9PT0hMT8iZmFsc2UiOiJ0cnVlIik7a2EhPT12b2lkIDAmJnFzKGMsImFsbG93X2ZvbGRlcl9zZWxlY3Rpb24iLGthPT09ITE/ImZhbHNlIjoidHJ1ZSIpO3FzKGMsImZpbGVfaWRzIixuYSk7cXMoYywibWltZXR5cGVzIixBYSk7bSE9PXZvaWQgMCYmcXMoYywiY2xhaW1zIixtKTtxcyhjLCJnaXNfcGFyYW1zIixSZik7cXMoYywib3JpZ2luIixTZik7cXMoYywiZGlzcGxheSIsClRmKTtxcyhjLCJyZXNwb25zZV9tb2RlIixVZik7cXMoYywiZ2lzbHAiLG51KTtxcyhjLCJ1cHN0cmVhbV9leHBlcmltZW50X2lkIixvdSk7cmV0dXJuIGIrIj8iK2Muam9pbigiJiIpfSxzcz1mdW5jdGlvbihhKXthPWE9PT1udWxsPyJudWxsIjphPT09dm9pZCAwPyJ1bmRlZmluZWQiOmE7dmFyIGI9Xy5ibCgpO2E9Yj9iLmNyZWF0ZVNjcmlwdFVSTChhKTphO3JldHVybiBuZXcgXy5jbChhKX0sdXM9ZnVuY3Rpb24oYSl7dmFyIGI9Yj09PXZvaWQgMD8iZ29vZ2xlaWRlbnRpdHlzZXJ2aWNlIjpiO2lmKCEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYikmJnRzLmdldChiKSYmdHMuZ2V0KGIpKSl7dmFyIGM9bmV3IF8uS2ksZD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO2UuaWQ9YjtlLnR5cGU9InRleHQvY3NzIjtlLm1lZGlhPSJhbGwiO2Uub25sb2FkPWZ1bmN0aW9uKCl7Yy5yZXNvbHZlKCl9OwpLcihlLHNzKGEpKTtkLmFwcGVuZENoaWxkKGUpO3RzLnNldChiLGMpfX0sdnM9ZnVuY3Rpb24oYSl7YSYmKGEuc3R5bGUub3BhY2l0eT0iMCIsYS5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIiwoYT1hLnBhcmVudEVsZW1lbnQpJiZhLmlkPT09ImNyZWRlbnRpYWxfcGlja2VyX2NvbnRhaW5lciImJihhLnN0eWxlLm9wYWNpdHk9IjAiLGEuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIpKX0sd3M9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNyZWRlbnRpYWxfcGlja2VyX2lmcmFtZSIpO3JldHVybiBiPyhkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGIpLCEwKTphJiYoYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3JlZGVudGlhbF9waWNrZXJfY29udGFpbmVyIikpPyhhLnJlbW92ZUNoaWxkKGIpLCEwKTohMX0seXM9ZnVuY3Rpb24oYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7d3MoYSk7aWYoYylyZXR1cm4gYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSwKYS5zcmM9YixhLmlkPSJjcmVkZW50aWFsX3BpY2tlcl9pZnJhbWUiLGEudGl0bGU9eHMoKSxhLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGEuc3R5bGUuaGVpZ2h0PSIzNjBweCIsYS5zdHlsZS53aWR0aD0iMTAwJSIsYS5zdHlsZS56SW5kZXg9Ijk5OTkiLGEuc3R5bGUuYm9yZGVyPSJub25lIixhLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsYS5zdHlsZS5sZWZ0PSIwIixhLnN0eWxlLmJvdHRvbT0iMCIsYS5jbGFzc0xpc3QuYWRkKCJMNUZvNmMtUFFiTEdlIiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKSxhO2M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YSE9PWRvY3VtZW50LmJvZHk/KGMuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIixjLnN0eWxlLnpJbmRleD0iOTk5OSIsYy5zdHlsZS50b3A9IjAiLGMuc3R5bGUubGVmdD0iMCIsYy5zdHlsZS5oZWlnaHQ9ImF1dG8iLGMuc3R5bGUud2lkdGg9ImF1dG8iKTooYy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGMuc3R5bGUuekluZGV4PQoiOTk5OSIpO2QmJihjLnN0eWxlLnRvcD0iMCIsYy5zdHlsZS5yaWdodD0iMCIpO2Muc2V0QXR0cmlidXRlKCJpZCIsImNyZWRlbnRpYWxfcGlja2VyX2NvbnRhaW5lciIpO2Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7ZC5zcmM9YjtkLmNsYXNzTGlzdC5hZGQoIkw1Rm82Yy1QUWJMR2UiKTtkLnRpdGxlPXhzKCk7ZC5zdHlsZS5kaXNwbGF5PSJub25lIjtkLnN0eWxlLmhlaWdodD0iMzYwcHgiO2Quc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7Yy5hcHBlbmRDaGlsZChkKTthLmFwcGVuZENoaWxkKGMpO3JldHVybiBkfSx6cz1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3JlZGVudGlhbF9waWNrZXJfY29udGFpbmVyIik7aWYoYil7dmFyIGM9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIik7aWYoYy5sZW5ndGg+MCYmKGM9Yy5pdGVtKDApLGMhPT1udWxsKSl7dmFyIGQ9Yy5jbGllbnRIZWlnaHQ7Yi5zdHlsZS5oZWlnaHQ9YSsKOCsicHgiO2Muc3R5bGUuaGVpZ2h0PWErInB4IjtjLnN0eWxlLmRpc3BsYXk9IiI7cmV0dXJuIGR9fWVsc2UgaWYoYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3JlZGVudGlhbF9waWNrZXJfaWZyYW1lIikpcmV0dXJuIGM9Yi5jbGllbnRIZWlnaHQsYi5zdHlsZS5oZWlnaHQ9YSsicHgiLGIuc3R5bGUuZGlzcGxheT0iIixjfSxBcz1mdW5jdGlvbihhLGIpe2lmKGIpe3ZhciBjPWIuY2xpZW50SGVpZ2h0O2IucGFyZW50RWxlbWVudCYmYi5wYXJlbnRFbGVtZW50IT09ZG9jdW1lbnQuYm9keSYmKGIucGFyZW50RWxlbWVudC5zdHlsZS5oZWlnaHQ9YSsicHgiKTtiLnN0eWxlLmJvcmRlcj0ibm9uZSI7Yi5zdHlsZS5oZWlnaHQ9YSsicHgiO2Iuc3R5bGUuZGlzcGxheT0iIjtyZXR1cm4gY319LEJzPWZ1bmN0aW9uKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPyExOmQ7dmFyIGY9Xy5zZihkb2N1bWVudCwiaWZyYW1lIik7Zi5zZXRBdHRyaWJ1dGUoInNyYyIsYik7Zi5jbGFzc0xpc3QuYWRkKCJMNUZvNmMtUFFiTEdlIik7CmYuYWxsb3c9ImlkZW50aXR5LWNyZWRlbnRpYWxzLWdldCI7Zi5pZD1jO18uSSgiZW5hYmxlX2FyaWFfaGlkZGVuX2luX2J1dHRvbl9pZnJhbWUiKSYmZCYmZi5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpO2YudGl0bGU9Ilx1MDBhYkxvZ2cgcFx1MDBlNSBtZWQgR29vZ2xlXHUwMGJiLWtuYXBwIjtmLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtmLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSI7Zi5zdHlsZS50b3A9IjAiO2Yuc3R5bGUubGVmdD0iMCI7Zi5zdHlsZS5oZWlnaHQ9IjAiO2Yuc3R5bGUud2lkdGg9IjAiO2Yuc3R5bGUuYm9yZGVyPSIwIjtpZihkKXtiPV8uc2YoZG9jdW1lbnQsImRpdiIpO2IuaWQ9YysiLXdyYXBwZXIiO2IuY2xhc3NMaXN0LmFkZCgiTDVGbzZjLXNNNU1OYiIpO2Iuc3R5bGUud2lkdGg9ImZpdC1jb250ZW50IjtjKz0iLW92ZXJsYXkiO2M9JzxkaXYgY2xhc3M9IicrXy5XKCJMNUZvNmMtYkYxdVViIikrJyIgaWQ9IicrXy5XKGMpKyciIGFyaWEtbGFiZWw9Iic7CmQ9Xy5JbCgiTG9nZyBwXHUwMGU1IG1lZCBHb29nbGUuIFx1MDBjNXBuZXMgaSBlbiBueSBmYW5lIik7ZD0oMCxfLlUpKGMrZCsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj48L2Rpdj4nKTthOmlmKGM9Xy5xbHx8KF8ucWw9bmV3IF8ud2wpLGQmJmQuaD9jPWQuaCgpOihjPV8uc2YoYy5nLCJESVYiKSxkPV8ubmwoZCksYy5pbm5lckhUTUw9Xy5obChkKSksYy5jaGlsZE5vZGVzLmxlbmd0aD09MSYmKGQ9Yy5maXJzdENoaWxkLGQubm9kZVR5cGU9PTEpKXtjPWQ7YnJlYWsgYX1mLnRhYkluZGV4PS0xO2IuYXBwZW5kQ2hpbGQoZik7Yi5hcHBlbmRDaGlsZChjKTthLmFwcGVuZENoaWxkKGIpO3JldHVybntYYTpmLGtkOmN9fWUmJmEuYXBwZW5kQ2hpbGQoZSk7YS5hcHBlbmRDaGlsZChmKTtyZXR1cm57WGE6Zn19LENzPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2Iuc3JjPWE7Yi5zdHlsZS5kaXNwbGF5PSJub25lIjtiLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLAoidHJ1ZSIpO2Iuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIik7cmV0dXJuIGJ9LERzPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIiJiYhaXNOYU4oYSkmJmE+MH0sRXM9ZnVuY3Rpb24oKXtyZXR1cm4iZ3NpXyIrRGF0ZS5ub3coKSUxRTYrIl8iK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxRTYpfSxHcz1mdW5jdGlvbihhKXt2YXIgYj1fLlEoImdfYTExeV9hbm5vdW5jZW1lbnQiKTtifHwoYj1fLnNmKGRvY3VtZW50LCJkaXYiKSxiLmlkPSJnX2ExMXlfYW5ub3VuY2VtZW50Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGIpKTt2YXIgYz1fLnNmKGRvY3VtZW50LCJzcGFuIik7RnMoYyxhKTtjLnJvbGU9ImFsZXJ0IjtfLnRsKGIpO2IuYXBwZW5kQ2hpbGQoYyk7c2V0VGltZW91dChmdW5jdGlvbigpe18udGwoYil9LDNFMyl9LEhzPWZ1bmN0aW9uKGEpe2Zvcig7YS5wYXJlbnROb2RlOyl7aWYoYT09PWRvY3VtZW50LmJvZHkpcmV0dXJuIG51bGw7YT0KYS5wYXJlbnROb2RlfXJldHVybiBhJiZhLmhvc3QmJmEubW9kZT9hOm51bGx9LElzPWZ1bmN0aW9uKGEpe2E9T2JqZWN0LmVudHJpZXMoYSkuZmlsdGVyKGZ1bmN0aW9uKGMpe2M9Xy51KGMpO2MubmV4dCgpO2M9Yy5uZXh0KCkudmFsdWU7cmV0dXJuIGMhPT12b2lkIDAmJmMhPT1udWxsJiZjIT09IiJ9KS5tYXAoZnVuY3Rpb24oYyl7dmFyIGQ9Xy51KGMpO2M9ZC5uZXh0KCkudmFsdWU7ZD1kLm5leHQoKS52YWx1ZTtjPVN0cmluZyhjKTtpZih0eXBlb2YgZD09PSJzdHJpbmciKWQ9JyInK2QucmVwbGFjZSgvIi9nLCdcXCInKSsnIic7ZWxzZSBpZihBcnJheS5pc0FycmF5KGQpKWQ9ZC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuJyInK2UrJyInfSkuam9pbigiICIpLGQ9IigiK2QrIikiO2Vsc2V7aWYoZD09PW51bGx8fGQ9PT12b2lkIDApcmV0dXJuO2Q9U3RyaW5nKGQpfXJldHVybiBjKyI9IitkfSk7dmFyIGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YVtodHRwLWVxdWl2PSJXZWItSWRlbnRpdHktQXV0aGVudGljYXRlIl0nKTsKYnx8KGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpLGIuaHR0cEVxdWl2PSJXZWItSWRlbnRpdHktQXV0aGVudGljYXRlIixkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGIpKTtiLmNvbnRlbnQ9YS5qb2luKCIsICIpfSxKcz1mdW5jdGlvbigpe3N3aXRjaChMcigiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iKSl7Y2FzZSAxODpjYXNlIDE5OnJldHVybiAxRTQ7Y2FzZSAyMDpjYXNlIDIxOmNhc2UgMjQ6cmV0dXJuIDJFNDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIDNFNH19LEtzPWZ1bmN0aW9uKCl7c3dpdGNoKExyKCJlbmFibGVfaXRwX29wdGltaXphdGlvbiIpKXtjYXNlIDE5OmNhc2UgMjE6Y2FzZSAyMzpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sTHM9ZnVuY3Rpb24oKXt2YXIgYT1McigiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iKTtyZXR1cm4gYSYmYSE9PTI0fSxNcz1mdW5jdGlvbigpe30sTnM9ZnVuY3Rpb24oKXt9LApPcz1mdW5jdGlvbihhKXt0aGlzLmc9YTt0aGlzLmg9bnVsbH0sUHM9ZnVuY3Rpb24oKXt2YXIgYT1udWxsO3RyeXthPV8udy5zZXNzaW9uU3RvcmFnZXx8bnVsbH1jYXRjaChiKXt9T3MuY2FsbCh0aGlzLGEpfSxRcz1mdW5jdGlvbihhLGIpe3RoaXMuaD1hO3RoaXMuZz1iKyI6OiJ9LFNzPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IFBzO3JldHVybiBScyhhKT9uZXcgUXMoYSwiZ19zdGF0ZV9pZF8iKTpudWxsfSxXcz1mdW5jdGlvbigpe3ZhciBhPV8uUSgiZ19pZF9vbmxvYWQiKTtpZihhKXt2YXIgYj1fLmNyKGEpO2E9Xy5kcihiLFRzKTthLmF1dG9fcHJvbXB0PT09dm9pZCAwJiYoYS5hdXRvX3Byb21wdD0hMCk7YS5hdXRvX3Byb21wdCYmYS5za2lwX3Byb21wdF9jb29raWUmJl8uYWQuZ2V0KGEuc2tpcF9wcm9tcHRfY29va2llKSYmKGEuYXV0b19wcm9tcHQ9ITEpO2RlbGV0ZSBhLnNraXBfcHJvbXB0X2Nvb2tpZTt2YXIgYz17fTtmb3IoZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJgpVcy5pbmRleE9mKGQudG9Mb3dlckNhc2UoKSk8MCYmKGNbZF09YltkXSk7YS5zdGF0ZSYmKGMuc3RhdGU9YS5zdGF0ZSk7aWYoYS5sb2dpbl91cmkpe2EubG9naW5fdXJpPWdzKGEubG9naW5fdXJpKTt2YXIgZD1lcyhhLmxvZ2luX3VyaSxjKTthLnJlZGlyZWN0X2NhbGxiYWNrPWQ7YS5jYWxsYmFja3x8KGEuY2FsbGJhY2s9ZCl9ZWxzZSBhLnV4X21vZGU9PT0icmVkaXJlY3QiJiZfLkgoIk1pc3NpbmcgcmVxdWlyZWQgbG9naW5fdXJpIHBhcmFtZXRlciBmb3IgdGhlIHJlZGlyZWN0IGZsb3cuIik7ZD1hLm5hdGl2ZV9sb2dpbl91cmk7ZGVsZXRlIGEubmF0aXZlX2xvZ2luX3VyaTtkJiZhLm5hdGl2ZV9jYWxsYmFjaz9fLkgoIkNhbm5vdCBzZXQgYm90aCBkYXRhLW5hdGl2ZV9sb2dpbl91cmkgYW5kIGRhdGEtbmF0aXZlX2NhbGxiYWNrLiIpOmQmJihhLm5hdGl2ZV9jYWxsYmFjaz1WcyhkLGMsYS5uYXRpdmVfaWRfcGFyYW18fCJlbWFpbCIsYS5uYXRpdmVfcGFzc3dvcmRfcGFyYW18fAoicGFzc3dvcmQiKSk7cmV0dXJuIGF9fSxWcz1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gZnVuY3Rpb24oZSl7ZSYmZS50eXBlPT09InBhc3N3b3JkIj8oYltjXT1lLmlkLGJbZF09ZS5wYXNzd29yZCxfLnJpKGEsYikpOl8uRigiTm8gcGFzc3dvcmQgY3JlZGVudGlhbCByZXR1cm5lZC4iKX19LFlzPWZ1bmN0aW9uKGEpe2E9Xy5jcihhKTtyZXR1cm4gXy5kcihhLFhzKX0sZHQ9ZnVuY3Rpb24oYSl7WnMuX19HX0lEX0NMSUVOVF9fJiZfLkcoImdvb2dsZS5hY2NvdW50cy5pZC5pbml0aWFsaXplKCkgaXMgY2FsbGVkIG11bHRpcGxlIHRpbWVzLiBUaGlzIGNvdWxkIGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IgYW5kIG9ubHkgdGhlIGxhc3QgaW5pdGlhbGl6ZWQgaW5zdGFuY2Ugd2lsbCBiZSB1c2VkLiIpO2lmKF8uSSgiZW5hYmxlX2RlZmF1bHRfY2FsbGJhY2siKSYmYSYmYS5sb2dpbl91cmkpe2EubG9naW5fdXJpPWdzKGEubG9naW5fdXJpKTt2YXIgYj1lcyhhLmxvZ2luX3VyaSk7CmEucmVkaXJlY3RfY2FsbGJhY2s9YS5yZWRpcmVjdF9jYWxsYmFja3x8YjthLmNhbGxiYWNrPWEuY2FsbGJhY2t8fGJ9YT1uZXcgJHMoYSk7WnMuX19HX0lEX0NMSUVOVF9fPWE7dXMoYS5oZSk7YXQoYSk7Xy5hZC5nZXQoImdfc3RhdGUiKTtidChhLkIpO18uSSgiZW5hYmxlX2ZlZGNtX2JsdWVkb2dfcG9jIikmJihiPWEubSxiPXtjbGllbnRfaWQ6Yi5jbGllbnRfaWQsY29uZmlnX3VybDphLkgsY29udGV4dDpiLmNvbnRleHR8fCJzaWduaW4iLGRvbWFpbl9oaW50OmIuaG9zdGVkX2RvbWFpbj09PSIqIj8iYW55IjpiLmhvc3RlZF9kb21haW4sbG9naW5faGludDpiLmhpbnQsbm9uY2U6Yi5ub25jZSxmaWVsZHM6WyJlbWFpbCIsIm5hbWUiLCJwaWN0dXJlIl0scGFyYW1zOkpTT04uc3RyaW5naWZ5KGN0KGIpKX0sSXMoYikpO3JldHVybiBhfSxldD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9WnMuX19HX0lEX0NMSUVOVF9fO2R8fChkdCgpLGQ9WnMuX19HX0lEX0NMSUVOVF9fKTtkLnZhKGEsCmIsYyl9LGd0PWZ1bmN0aW9uKGEsYixjKXtpZihhJiZiKXt2YXIgZD1acy5fX0dfSURfQ0xJRU5UX187ZD9mdChkLGEsYixjKTpfLkcoIkZhaWxlZCB0byByZW5kZXIgYnV0dG9uIGJlZm9yZSBjYWxsaW5nIGluaXRpYWxpemUoKS4iKX1lbHNlIF8uRygiRmFpbGVkIHRvIHJlbmRlciBidXR0b24gYmVjYXVzZSB0aGVyZSBpcyBubyBwYXJlbnQgb3Igb3B0aW9ucyBzZXQuIil9LGl0PWZ1bmN0aW9uKCl7dmFyIGE9WnMuX19HX0lEX0NMSUVOVF9fO2F8fChkdCgpLGE9WnMuX19HX0lEX0NMSUVOVF9fKTtodChhLmcpfSxqdD1mdW5jdGlvbigpe3ZhciBhPWE9PT12b2lkIDA/ZG9jdW1lbnQucmVhZHlTdGF0ZTphO2Zvcih2YXIgYj1fLnJsKCJnX2lkX3NpZ25vdXQiKSxjPTA7YzxiLmxlbmd0aDtjKyspXy5YZihiW2NdLCJjbGljayIsaXQpO3RyeXt2YXIgZD1XcygpO2lmKGQpe3ZhciBlPWQuYXV0b19wcm9tcHQ7ZGVsZXRlIGQuYXV0b19wcm9tcHQ7dmFyIGY9ZC5tb21lbnRfY2FsbGJhY2s7CmRlbGV0ZSBkLm1vbWVudF9jYWxsYmFjaztkdChkKTtlJiYoYT09PSJjb21wbGV0ZSI/ZXQoZik6Xy5YZih3aW5kb3csImxvYWQiLGZ1bmN0aW9uKCl7ZXQoZil9LCExKSl9dmFyIGc9Xy5ybCgiZ19pZF9zaWduaW4iKTtmb3IoYT0wO2E8Zy5sZW5ndGg7YSsrKXt2YXIgaD1ZcyhnW2FdKTtndChnW2FdLGgpfX1jYXRjaChrKXtfLkgoIkVycm9yIHBhcnNpbmcgY29uZmlndXJhdGlvbiBmcm9tIEhUTUw6ICIray5tZXNzYWdlKX19LGt0PWZ1bmN0aW9uKCl7dmFyIGE9WnMub25Hb29nbGVMaWJyYXJ5TG9hZDthJiZ0eXBlb2YgYT09PSJmdW5jdGlvbiImJmEoKX0sbHQ9ZnVuY3Rpb24oKXt2YXIgYT1hPT09dm9pZCAwP2RvY3VtZW50LnJlYWR5U3RhdGU6YTthPT09ImNvbXBsZXRlIj9zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7a3QoKX0sMCk6Xy5YZih3aW5kb3csImxvYWQiLGZ1bmN0aW9uKCl7a3QoKX0sITEpfSxtdD1mdW5jdGlvbigpe3ZhciBhPVZyLmFwcGx5KDAsYXJndW1lbnRzKSxiPQpbXTtpZihhKXthPV8udShhKTtmb3IodmFyIGM9YS5uZXh0KCk7IWMuZG9uZTtjPWEubmV4dCgpKXt2YXIgZD0oYz1jLnZhbHVlKSYmYy50cmltKCk7IWQmJmQuaW5kZXhPZigiICIpPj0wPyhfLkcoIkluIGhhc0dyYW50ZWRBbGxTY29wZXMoKSBtZXRob2Q6IGludmFsaWQgc2NvcGUgWyIrYysiXS4gU2NvcGUgc2hvdWxkIGJlIGEgbm9uLWVtcHR5IHN0cmluZyB3aXRob3V0IHNwYWNlLiIpLGM9bnVsbCk6Yz1kO2lmKGM9PT1udWxsKXJldHVybiBfLkcoIkludmFsaWQgc2NvcGUgZm91bmQuIiksbnVsbDtjJiZiLnB1c2goYyl9fXJldHVybiBifSxudD1mdW5jdGlvbihhKXtyZXR1cm4oYT1hJiZhLnNjb3BlJiZhLnNjb3BlLnRyaW0oKSk/bXQuYXBwbHkobnVsbCxfLk1kKGEuc3BsaXQoIiAiKSkpOm51bGx9LG90PWZ1bmN0aW9uKGEsYil7Yi5nc2l3ZWJzZGs9Imdpc19hdHRyaWJ1dGVzIjtiLnJlZGlyZWN0X3VyaT0iZ2lzX3RyYW5zZm9ybSI7Yi5yZXNwb25zZV9tb2RlPSJmb3JtX3Bvc3QiOwpiLm9yaWdpbj1iLm9yaWdpbnx8d2luZG93LmxvY2F0aW9uLm9yaWdpbjtiLmRpc3BsYXk9InBvcHVwIjt2YXIgYz1uZXcgXy5EaTthPV8uUihjLDgsYS5vKTthPV8uemsoXy5TKGEsNywxKSwxOSk7YT1fLnlpKGEsMTMsITApO2M9RXIoKTthPV8uUihhLDUsYyk7Yi5zdGF0ZSYmXy5SKGEsMTAsYi5zdGF0ZSk7Yi5naXNfcGFyYW1zPV8uZmIoYS5oKCksNCl9LHB0PWZ1bmN0aW9uKGEpe18uQ2goYSwicHJvbXB0X2Nsb3NlZCIse1hlOiExfSl9LHF0PWZ1bmN0aW9uKGEsYixjKXtiPXtjZjpifTtjIT09dm9pZCAwJiYoYi5kZj1jKTtfLkNoKGEsInByb21wdF9yZXNpemVkIixiKX0sVnI9ZnVuY3Rpb24oKXtmb3IodmFyIGE9TnVtYmVyKHRoaXMpLGI9W10sYz1hO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYltjLWFdPWFyZ3VtZW50c1tjXTtyZXR1cm4gYn0scnQ9Xy5taChfLkRpLF8uQ2kpLHN0PXtTZToic2lnbmluIixUZToic2lnbnVwIixWZToidXNlIixPZToiY29udGludWUifSx0dD0Ke05lOiJjYXJkIixNZToiYm90dG9tX3NoZWV0In0sZnM9ZnVuY3Rpb24oKXtyZXR1cm4gRXJyb3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfTtfLkooZnMsRXJyb3IpO18uY2w9ZnVuY3Rpb24oYSl7dGhpcy5nPWF9O18uY2wucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZysiIn07dmFyIHV0PWZ1bmN0aW9uKGEpe3RoaXMuZz1hfTt1dC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nKyIifTsKdmFyIEpyPSJhbHRlcm5hdGUgYXV0aG9yIGJvb2ttYXJrIGNhbm9uaWNhbCBjaXRlIGhlbHAgaWNvbiBsaWNlbnNlIG1vZHVsZXByZWxvYWQgbmV4dCBwcmVmZXRjaCBkbnMtcHJlZmV0Y2ggcHJlcmVuZGVyIHByZWNvbm5lY3QgcHJlbG9hZCBwcmV2IHNlYXJjaCBzdWJyZXNvdXJjZSIuc3BsaXQoIiAiKSxGcz1mdW5jdGlvbihhLGIpe2lmKCJ0ZXh0Q29udGVudCJpbiBhKWEudGV4dENvbnRlbnQ9YjtlbHNlIGlmKGEubm9kZVR5cGU9PTMpYS5kYXRhPVN0cmluZyhiKTtlbHNlIGlmKGEuZmlyc3RDaGlsZCYmYS5maXJzdENoaWxkLm5vZGVUeXBlPT0zKXtmb3IoO2EubGFzdENoaWxkIT1hLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYS5sYXN0Q2hpbGQpO2EuZmlyc3RDaGlsZC5kYXRhPVN0cmluZyhiKX1lbHNlIF8udGwoYSksYS5hcHBlbmRDaGlsZCgoYS5ub2RlVHlwZT09OT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKGIpKSl9LApVcj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9VnIuYXBwbHkoMyxhcmd1bWVudHMpO3RoaXMuaj1hO3RoaXMuaT1iO3RoaXMuZz1jO3RoaXMuaD1kfTtVci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT1bdGhpcy5qXTt0aGlzLmkmJmEucHVzaCh0aGlzLmkpO3RoaXMuZyYmYS5wdXNoKHRoaXMuZyk7dGhpcy5oJiZhLnB1c2guYXBwbHkoYSxfLk1kKHRoaXMuaCkpO3JldHVybiBhLmpvaW4oIi4iKX07dmFyIE5yPSJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL2xvZyIsT3IsUHIsU3IsUXI9W10sdnQ9WyJkZWJ1ZyIsImluZm8iLCJ3YXJuIl0sd3Q9e30seHQ9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKHh0LF8uRCk7dmFyIHl0PWZ1bmN0aW9uKCl7dGhpcy5rZXk9IjQ1Nzk4OTkyIjt0aGlzLmRlZmF1bHRWYWx1ZT0hMDt0aGlzLmZsYWdOYW1lRm9yRGVidWdnaW5nPXZvaWQgMDt0aGlzLnBoYXNlPTJ9O3l0LnByb3RvdHlwZS5jdG9yPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIj9hOnRoaXMuZGVmYXVsdFZhbHVlfTt2YXIgenQ9ZnVuY3Rpb24oKXt0aGlzLmtleT0iNDU3NzQ4ODUiO3RoaXMuZGVmYXVsdFZhbHVlPTE4MDc2NDI4MDA7dGhpcy5mbGFnTmFtZUZvckRlYnVnZ2luZz12b2lkIDA7dGhpcy5waGFzZT0yfTt6dC5wcm90b3R5cGUuY3Rvcj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIj9hOnRoaXMuZGVmYXVsdFZhbHVlfTt2YXIgQXQ9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKEF0LF8uRCk7dmFyIEJ0PVsxLDJdO3ZhciBDdD1mdW5jdGlvbihhKXt0aGlzLkE9Xy5CKGEpfTtfLkooQ3QsXy5EKTt2YXIgRHQ9WzIsMyw0LDUsNiw4XTt2YXIgRXQ9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKEV0LF8uRCk7RXQucHJvdG90eXBlLk9jPWZ1bmN0aW9uKCl7dmFyIGE9Xy5MKHRoaXMsMyx2b2lkIDAsdm9pZCAwLEhyKTtyZXR1cm4gYT09bnVsbD9fLmpoKCk6YX07dmFyIEZ0PWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSihGdCxfLkQpO3ZhciBHdD1fLmlpKEZ0KTt2YXIgSHQsSXQ9ZnVuY3Rpb24oKXt0aGlzLmg9ITE7dmFyIGE9bnVsbDt0aGlzLmg9ITA7dmFyIGI9d2luZG93O2I9Yj09PXZvaWQgMD93aW5kb3c6YjtiPWI9PT12b2lkIDA/d2luZG93OmI7Yj0oYj1iLldJWl9nbG9iYWxfZGF0YSkmJiJUU0R0ViJpbiBiP2IuVFNEdFY6bnVsbDtpZihiPXR5cGVvZiBiIT09InN0cmluZyI/bnVsbDpiKWE9R3QoIlsiK2Iuc3Vic3RyaW5nKDQpKSxhPV8uRmkoYSxFdCwxLHZvaWQgMD09PV8uS2U/Mjo0KVswXTtpZihhKXtiPV8udShfLkZpKGEsQ3QsMix2b2lkIDA9PT1fLktlPzI6NCkpO2Zvcih2YXIgYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe2M9Yy52YWx1ZTt2YXIgZD1jLkE7aWYoXy52YyhkLGRbXy5BXXwwLHh0LF8uT2soYyxEdCw2KSkhPT12b2lkIDApdGhyb3cgRXJyb3IoKTt9fWlmKGEpZm9yKGI9e30sYz1fLnUoXy5GaShhLEN0LDIsdm9pZCAwPT09Xy5LZT8yOjQpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9CmQudmFsdWU7ZD1fLkdpKGUsMSkudG9TdHJpbmcoKTtzd2l0Y2goXy5OayhlLER0KSl7Y2FzZSAzOmJbZF09Xy52aShlLF8uT2soZSxEdCwzKSk7YnJlYWs7Y2FzZSAyOnZhciBmPV8uR2koZSxfLk9rKGUsRHQsMikpO2Y9KDAsXy4kYikoZik/TnVtYmVyKGYpOlN0cmluZyhmKTtiW2RdPWY7YnJlYWs7Y2FzZSA0OmY9dm9pZCAwO3ZhciBnPWU7dmFyIGg9Xy5PayhlLER0LDQpO2U9dm9pZCAwO2U9ZT09PXZvaWQgMD8wOmU7Zz0oZj1fLkwoZyxoLHZvaWQgMCx2b2lkIDAsR3IpKSE9bnVsbD9mOmU7YltkXT1nO2JyZWFrO2Nhc2UgNTpiW2RdPV8uWGUoZSxfLk9rKGUsRHQsNSkpO2JyZWFrO2Nhc2UgNjpiW2RdPV8uTShlLHh0LF8uT2soZSxEdCw2KSx2b2lkIDApO2JyZWFrO2Nhc2UgODpnPWU7Zj1BdDtlPV8uT2soZSxEdCw4KTtnPWcuQTsoZT1fLnZjKGcsZ1tfLkFdfDAsZixlKSl8fChlPWZbXy5FZV0pfHwoZT1uZXcgZixfLndiKGUuQSwzNCksZT1mW18uRWVdPWUpO2Y9ZTtzd2l0Y2goXy5OayhmLApCdCkpe2Nhc2UgMTpiW2RdPV8uWGUoZixfLk9rKGYsQnQsMSkpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlBhYCIrXy5OayhmLEJ0KSk7fWJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlBhYCIrXy5OayhlLER0KSk7fX1lbHNlIGI9e307dGhpcy5nPWI7dGhpcy50b2tlbj1hP2EuT2MoKTpudWxsfSxKdD1mdW5jdGlvbihhLGIpe3JldHVybiBiLnBoYXNlPT09MXx8YS5oJiYhKGIua2V5IGluIGEuZyk/Yi5kZWZhdWx0VmFsdWU6Yi5jdG9yKGEuZ1tiLmtleV0pfTtJdC5wcm90b3R5cGUuT2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b2tlbn07dmFyIEt0PW5ldyB5dCxMdD1uZXcgenQ7dmFyIE10PWZ1bmN0aW9uKGEpe3RoaXMuQT1fLkIoYSl9O18uSihNdCxfLkQpO3ZhciBOdD1fLmlpKE10KTt2YXIgT3Q9ZnVuY3Rpb24oYSl7dGhpcy5BPV8uQihhKX07Xy5KKE90LF8uRCk7dmFyIFB0PV8uaWkoT3QpO3ZhciB4cz1mdW5jdGlvbigpe3JldHVybiJcdTAwYWJMb2dnIHBcdTAwZTUgbWVkIEdvb2dsZVx1MDBiYi1kaWFsb2dib2tzIn07dmFyIHRzPW5ldyBNYXA7dmFyIFF0PWZ1bmN0aW9uKCl7dGhpcy5nPUVzKCl9LFN0PWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/IndpZGdldCI6YztfLkUoIlN0YXJ0aW5nIEZlZENNIGNhbGwuIE1vZGU6ICIrYysiIHwgY2FsbElkOiAiK2EuZysiLiIpO25hdmlnYXRvci5jcmVkZW50aWFscy5nZXQoUnQoYSxiLGMpKS50aGVuKGZ1bmN0aW9uKGQpe18uRSgiUmVzcG9uc2UgcmVjZWl2ZWQuIGNhbGxJZDogIithLmcrIi4iKTthLmZhKGIsYyxkKX0sZnVuY3Rpb24oZCl7Xy5FKCJFcnJvciByZWNlaXZlZC4gY2FsbElkOiAiK2EuZysiLiIpO2Iua2EoYyxkKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXthLmg9dm9pZCAwfSl9LFJ0PWZ1bmN0aW9uKGEsYixjKXtfLkUoIkdlbmVyYXRpbmcgRmVkQ00gb3B0aW9ucy4gY2FsbElkOiAiK2EuZysiLiIpO2EuaD1uZXcgQWJvcnRDb250cm9sbGVyO3ZhciBkPXt1cmw6Yi5MYyxjb25maWdVUkw6Yi5yYixjbGllbnRJZDpiLm0uY2xpZW50X2lkLHBhcmFtczpiLlJhLGZpZWxkczpbIm5hbWUiLAoiZW1haWwiLCJwaWN0dXJlIl19O2IubS5ub25jZSYmKGQubm9uY2U9Yi5tLm5vbmNlKTtiLm0uaGludCYmKGQubG9naW5IaW50PWIubS5oaW50KTtiLm0uaG9zdGVkX2RvbWFpbiYmKGQuZG9tYWluSGludD1iLm0uaG9zdGVkX2RvbWFpbj09PSIqIj8iYW55IjpiLm0uaG9zdGVkX2RvbWFpbik7ZD17Y29udGV4dDpiLm0uY29udGV4dHx8InNpZ25pbiIscHJvdmlkZXJzOltkXSxtb2RlOl8uVWEoIkNocm9taXVtIik+PTEzMT9jPT09ImJ1dHRvbiI/ImFjdGl2ZSI6InBhc3NpdmUiOmN9O3ZhciBlPXtzaWduYWw6YS5oLnNpZ25hbCxmZWRlcmF0ZWQ6ZCxpZGVudGl0eTpkfTtlLm1lZGlhdGlvbj1iLklhPyJvcHRpb25hbCI6InJlcXVpcmVkIjtjPT09IndpZGdldCImJihkLmF1dG9SZWF1dGhuPSEhYi5JYSk7Xy5FKCJGZWRDTSBvcHRpb25zIGdlbmVyYXRlZC4gY2FsbElkOiAiK2EuZysiLiAiK2UpO3JldHVybiBlfTsKUXQucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEsYixjKXtjPyhfLkUoIlByb2Nlc3NpbmcgRmVkQ00gcmVzcG9uc2UuIGNhbGxJZCAiK3RoaXMuZyksYy5sb2dpbj9jLmxvZ2luKHtzaWduYWw6dGhpcy5oLnNpZ25hbCxub25jZTphLm0ubm9uY2V9KS50aGVuKGZ1bmN0aW9uKGQpe2EuZmEoYixkLGEuUmEpfSxmdW5jdGlvbihkKXthLmthKGIsZCl9KTphLmZhKGIsYyxhLlJhKSk6KF8uRSgiRmVkQ00gY3JlZGVudGlhbCBpcyBudWxsLiBjYWxsSWQgIit0aGlzLmcpLGEua2EoYixFcnJvcigiVyIpKSl9Owp2YXIgVHQ9ZnVuY3Rpb24oKXt0aGlzLmg9ITF9LFV0PWZ1bmN0aW9uKGEsYixjKXthLmc9bmV3IFF0O1N0KGEuZyxiLGM9PT12b2lkIDA/IndpZGdldCI6Yyl9LFZ0PWZ1bmN0aW9uKGEsYil7VXQoYSxiLCJ3aWRnZXQiKX0sV3Q9ZnVuY3Rpb24oYSxiKXtVdChhLGIsImJ1dHRvbiIpfSxidD1mdW5jdGlvbihhKXtfLkUoIkV2YWx1YXRpbmcgRmVkQ00gbW9kZSBzdXBwb3J0LiIpO3ZhciBiPXtpZGVudGl0eTpPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIm1vZGUiLHtnZXQ6ZnVuY3Rpb24oKXtfLkUoIkZlZENNIG1vZGUgc3VwcG9ydGVkLiIpO2EuaD0hMH19KX07dHJ5e25hdmlnYXRvci5jcmVkZW50aWFscy5nZXQoYikudGhlbihmdW5jdGlvbigpe30sZnVuY3Rpb24oKXt9KX1jYXRjaChjKXt9fSxYdD1mdW5jdGlvbihhLGIpe2I9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiTG9naW5BY3Rpb24iLGZlZGVyYXRpb246e3Byb3ZpZGVyczpbeyJAdHlwZSI6IkZlZGVyYXRlZExvZ2luUHJvdmlkZXIiLApjb25maWdVUkw6YSxjbGllbnRJZDpiLmNsaWVudF9pZCxsb2dpbkhpbnQ6Yi5oaW50LGRvbWFpbkhpbnQ6Yi5ob3N0ZWRfZG9tYWluPT09IioiPyJhbnkiOmIuaG9zdGVkX2RvbWFpbixwYXJhbXM6Y3QoYiksZmllbGRzOlsiZW1haWwiLCJuYW1lIiwicGljdHVyZSJdfV19fTthPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2EudHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI7dmFyIGM7Yj1KU09OLnN0cmluZ2lmeShiKS5yZXBsYWNlKC88L2csIlxcdTAwM0MiKTtiPShjPV8uYmwoKSk/Yy5jcmVhdGVTY3JpcHQoYik6YjtjPW5ldyB1dChiKTtiPXtpZTohMH07aWYoYyBpbnN0YW5jZW9mIHV0KWM9Yy5nO2Vsc2UgdGhyb3cgRXJyb3IoIkciKTthLnRleHRDb250ZW50PWM7aWYoYj09bnVsbHx8IWIuaWUpe3ZhciBkO2I9YS5vd25lckRvY3VtZW50O2I9Yj09PXZvaWQgMD9kb2N1bWVudDpiO3ZhciBlO2I9KGU9KGQ9YikucXVlcnlTZWxlY3Rvcik9PW51bGw/dm9pZCAwOmUuY2FsbChkLAoic2NyaXB0W25vbmNlXSIpOyhkPWI9PW51bGw/IiI6Yi5ub25jZXx8Yi5nZXRBdHRyaWJ1dGUoIm5vbmNlIil8fCIiKSYmYS5zZXRBdHRyaWJ1dGUoIm5vbmNlIixkKX1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGEpfSxZdD1mdW5jdGlvbihhLGIpe2E9W3tjb25maWdVUkw6YSxjbGllbnRJZDpiLmNsaWVudF9pZCxsb2dpbkhpbnQ6Yi5oaW50LGRvbWFpbkhpbnQ6Yi5ob3N0ZWRfZG9tYWluPT09IioiPyJhbnkiOmIuaG9zdGVkX2RvbWFpbixwYXJhbXM6Y3QoYiksZmllbGRzOlsiZW1haWwiLCJuYW1lIiwicGljdHVyZSJdfV07Yj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsb2dpbiIpO3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNyZWRlbnRpYWwiKTtiLmFwcGVuZENoaWxkKGMpO2Muc2V0QXR0cmlidXRlKCJ0eXBlIiwiZmVkZXJhdGVkIik7Yy5zZXRBdHRyaWJ1dGUoImNvbmZpZ1VSTCIsYVswXS5jb25maWdVUkwpO2Muc2V0QXR0cmlidXRlKCJjbGllbnRJZCIsCmFbMF0uY2xpZW50SWQpO2FbMF0ubG9naW5IaW50JiZjLnNldEF0dHJpYnV0ZSgibG9naW5IaW50IixhWzBdLmxvZ2luSGludCk7YVswXS5kb21haW5IaW50JiZjLnNldEF0dHJpYnV0ZSgiZG9tYWluSGludCIsYVswXS5kb21haW5IaW50KTthWzBdLnBhcmFtcyYmYy5zZXRBdHRyaWJ1dGUoInBhcmFtcyIsSlNPTi5zdHJpbmdpZnkoYVswXS5wYXJhbXMpKTthWzBdLmZpZWxkcyYmYy5zZXRBdHRyaWJ1dGUoImZpZWxkcyIsYVswXS5maWVsZHMuam9pbigiLCIpKTtyZXR1cm4gYn0sY3Q9ZnVuY3Rpb24oYSl7cmV0dXJue2FzOmEuYXMsdG9wX29yaWdpbjpwcygpP29zKCk6dm9pZCAwLGxpYnJhcnlfbmFtZTphLmxpYnJhcnlfbmFtZT9hLmxpYnJhcnlfbmFtZTp2b2lkIDAscmVzcG9uc2VfdHlwZToiaWRfdG9rZW4iLHNzX2RvbWFpbjphLm9yaWdpbnx8bG9jYXRpb24ub3JpZ2luLHNjb3BlOiJlbWFpbCBwcm9maWxlIG9wZW5pZCIsbm9uY2U6YS5ub25jZT9hLm5vbmNlOiJub3RfcHJvdmlkZWQiLApzdGF0ZTphLnN0YXRlLGNsYWltczphLmNsYWltc319O3ZhciBadD17bGVmdDoxLGNlbnRlcjoyfSwkdD17cmVjdGFuZ3VsYXI6MSxzcXVhcmU6MyxwaWxsOjIsY2lyY2xlOjR9LGF1PXtsYXJnZToxLG1lZGl1bToyLHNtYWxsOjN9LGJ1PXtzaWduaW46MSxzaWduaW5fd2l0aDoyLHNpZ251cF93aXRoOjMsY29udGludWVfd2l0aDo0fSxjdT17b3V0bGluZToxLG91dGxpbmVfZGFyazo1LGZpbGxlZF9ibHVlOjIsZmlsbGVkX2JsYWNrOjN9LGR1PXtzdGFuZGFyZDoxLGljb246Mn0sZXU9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuY29udGFpbmVyPWE7dGhpcy5oPWM7dGhpcy5nPSExO2E9bmV3IF8ubG07aWYoYiYmKGIubG9nb19hbGlnbm1lbnQmJl8uUyhhLDYsWnRbYi5sb2dvX2FsaWdubWVudF0pLGIuc2hhcGUmJl8uUyhhLDMsJHRbYi5zaGFwZV0pLGIuc2l6ZSYmXy5TKGEsMSxhdVtiLnNpemVdKSxiLnRleHQmJl8uUyhhLDUsYnVbYi50ZXh0XSksYi50aGVtZSYmXy5TKGEsMixjdVtiLnRoZW1lXSksYi50eXBlJiZfLlMoYSw3LGR1W2IudHlwZV0pLApiLndpZHRoKSlpZih0eXBlb2YgYi53aWR0aD09PSJudW1iZXIiJiYhaXNOYU4oYi53aWR0aCkpXy5IaShhLDQsTnVtYmVyKGIud2lkdGgpKTtlbHNlIGlmKHR5cGVvZiBiLndpZHRoPT09InN0cmluZyIpdHJ5e3ZhciBkPWIud2lkdGg7Xy5IaShhLDQsTnVtYmVyKGQuZW5kc1dpdGgoInB4Iik/ZC5zbGljZSgwLC0yKTpkKSl9Y2F0Y2goZSl7Xy5HKCJQcm92aWRlZCBidXR0b24gd2lkdGggaXMgaW52YWxpZDogIitiLndpZHRoKX10aGlzLkhhPWE7dGhpcy5zdGFydFRpbWU9cGVyZm9ybWFuY2Uubm93KCl9LGZ1PWZ1bmN0aW9uKGEpe2lmKCFhLmcpe18uZW0oYS5jb250YWluZXIsYS5IYSk7dmFyIGI9Xy5zbCgibnNtN0JiLUh6VjdtLUxnYnNTZSIsYS5jb250YWluZXIpO2ImJmEuaCYmbHMoYixmdW5jdGlvbigpe2EuaCYmYS5oLmNhbGwoYSl9KTthLmk9cGVyZm9ybWFuY2Uubm93KCl9fTsKZXUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtpZighdGhpcy5nKXt2YXIgYT1fLnNsKCJuc203QmItSHpWN20tTGdic1NlIix0aGlzLmNvbnRhaW5lcik7YSYmXy51bChhKTt0aGlzLmc9ITA7dGhpcy5qPXBlcmZvcm1hbmNlLm5vdygpfX07dmFyIGd1PWZ1bmN0aW9uKGEpe3RoaXMuZz1hfTtfLmw9Z3UucHJvdG90eXBlO18ubC5nZXRNb21lbnRUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ307Xy5sLmlzRGlzcGxheU1vbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmc9PT0iZGlzcGxheSJ9O18ubC5pc0Rpc3BsYXllZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzRGlzcGxheU1vbWVudCgpJiYhIXRoaXMuaH07Xy5sLmlzTm90RGlzcGxheWVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNEaXNwbGF5TW9tZW50KCkmJiF0aGlzLmh9O18ubC5nZXROb3REaXNwbGF5ZWRSZWFzb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc05vdERpc3BsYXllZCgpP3RoaXMuajp2b2lkIDB9O18ubC5pc1NraXBwZWRNb21lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nPT09InNraXBwZWQifTtfLmwuZ2V0U2tpcHBlZFJlYXNvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzU2tpcHBlZE1vbWVudCgpP3RoaXMubDp2b2lkIDB9OwpfLmwuaXNEaXNtaXNzZWRNb21lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nPT09ImRpc21pc3NlZCJ9O18ubC5nZXREaXNtaXNzZWRSZWFzb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0Rpc21pc3NlZE1vbWVudCgpP3RoaXMuaTp2b2lkIDB9O3ZhciBodT1mdW5jdGlvbihhLGIpe3RoaXMudj1hO3RoaXMubD10aGlzLmk9dGhpcy5zZXNzaW9uSWQ9bnVsbDt0aGlzLkQ9MDt0aGlzLmc9dGhpcy5IPW51bGw7dGhpcy5zdGF0ZT0wO3RoaXMuQj0hMTt0aGlzLmo9dGhpcy51PXRoaXMuaD10aGlzLm89bnVsbDt0aGlzLkM9Yjt0aGlzLkc9Xy5mZCh0aGlzLkMpfSxtdT1mdW5jdGlvbihhKXtfLkUoIlJybU1hbmFnZXIgaW5pdGlhbGl6ZWQiKTthLnN0YXRlIT09MD9fLkcoIlJybU1hbmFnZXIgYWxyZWFkeSBpbml0aWFsaXplZCBvciBpbiBwcm9ncmVzcy4iKTooYS5zZXNzaW9uSWQ9Y3J5cHRvLnJhbmRvbVVVSUQoKSxhLmk9b3MoKSxhLmk/KGEuSD1mdW5jdGlvbihiKXtpZihhLnNlc3Npb25JZClpZihhLnN0YXRlPT09MSliLm9yaWdpbj09PWEuaSYmYi5kYXRhJiZiLmRhdGEudHlwZT09PSJSUk1fR0lTX0FDSyImJmIuZGF0YS5zZXNzaW9uSWQ9PT1hLnNlc3Npb25JZCYmKF8uRSgiUmVjZWl2ZWQgUlJNX0dJU19BQ0s6ICIrSlNPTi5zdHJpbmdpZnkoYi5kYXRhKSksCmEubCYmKGNsZWFyVGltZW91dChhLmwpLGEubD1udWxsKSxpdShhKSk7ZWxzZSBpZihhLmcmJmIuc291cmNlPT09YS5nLmNvbnRlbnRXaW5kb3cmJmIub3JpZ2luPT09YS5HJiZiLmRhdGEmJmIuZGF0YS5zZXNzaW9uSWQ9PT1hLnNlc3Npb25JZClzd2l0Y2goXy5FKCJSZWNlaXZlZCBtZXNzYWdlIGZyb20gUlJNIGlmcmFtZTogIitKU09OLnN0cmluZ2lmeShiLmRhdGEpKSxiLmRhdGEudHlwZSl7Y2FzZSAiUlJNX0dJU19JRlJBTUVfTE9BREVEX0dJUyI6anUoYSk7YnJlYWs7Y2FzZSAiUlJNX0dJU19ZSUVMRCI6Xy5FKCJSZWNlaXZlZCBSUk1fR0lTX1lJRUxELiIpO2EuQj0hMDthLmomJihjbGVhclRpbWVvdXQoYS5qKSxhLmo9bnVsbCk7a3UoYSk7YnJlYWs7Y2FzZSAiUlJNX0dJU19SRURJUkVDVF9PSyI6Xy5FKCJSZWNlaXZlZCBSUk1fR0lTX1JFRElSRUNUX09LLiIpO2EudSYmKGNsZWFyVGltZW91dChhLnUpLGEudT1udWxsKTthLmgmJihhLnYoYS5oKSxhLmg9bnVsbCk7YnJlYWs7CmNhc2UgIlJSTV9HSVNfRVJST1IiOl8uSCgiUmVjZWl2ZWQgUlJNX0dJU19FUlJPUjogIitKU09OLnN0cmluZ2lmeShiLmRhdGEubWVzc2FnZSkpO2Euc3RhdGU9NDtrdShhKTticmVhaztkZWZhdWx0Ol8uRygiUmVjZWl2ZWQgdW5rbm93biBtZXNzYWdlIHR5cGUgZnJvbSBSUk0gaWZyYW1lIil9fSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYS5IKSxsdShhKSk6KF8uSCgiQ291bGQgbm90IGRldGVybWluZSB0b3AgbGV2ZWwgb3JpZ2luLiBDYW5ub3Qgc3RhcnQgUlJNIGhhbmRzaGFrZS4iKSxhLnN0YXRlPTQpKX0sbHU9ZnVuY3Rpb24oYSl7Xy5FKCJTdGFydGluZyBSUk0gaGFuZHNoYWtlIik7YS5zdGF0ZT0xO2EubD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cHUoYSl9LDEyRTQpO3F1KGEpfSxxdT1mdW5jdGlvbihhKXtpZihhLnN0YXRlPT09MSYmYS5pJiZhLnNlc3Npb25JZCl7dmFyIGI9e3R5cGU6IlJSTV9HSVNfUElORyIsc2Vzc2lvbklkOmEuc2Vzc2lvbklkfTsKXy5FKCJTZW5kaW5nIFJSTV9HSVNfUElORzogIitKU09OLnN0cmluZ2lmeShiKSk7dHJ5e3dpbmRvdy50b3AucG9zdE1lc3NhZ2UoYixhLmkpfWNhdGNoKGMpe18uSCgiRmFpbGVkIHRvIHBvc3RNZXNzYWdlIHRvIHdpbmRvdy50b3AiLFN0cmluZyhjKSk7cHUoYSk7cmV0dXJufWEuRCsrO3NldFRpbWVvdXQoZnVuY3Rpb24oKXthLnN0YXRlPT09MSYmcXUoYSl9LE1hdGgubWluKE1hdGgucG93KDIsYS5ELTEpKjEwMCwzRTQpKX19LHB1PWZ1bmN0aW9uKGEpe2Euc3RhdGU9PT0xJiYoXy5IKCJSUk0gaGFuZHNoYWtlIHRpbWVkIG91dC4iKSxhLnN0YXRlPTQsa3UoYSkpfSxpdT1mdW5jdGlvbihhKXtpZihhLnNlc3Npb25JZCl7Xy5FKCJDcmVhdGluZyBSUk0gY29tbXVuaWNhdGlvbiBpZnJhbWUiKTthLnN0YXRlPTI7dmFyIGI9bmV3IF8uaGQoYS5DKTtiLmouc2V0KCJzZXNzaW9uSWQiLGEuc2Vzc2lvbklkKTtiLmouc2V0KCJyb2xlIiwiR0lTIik7YS5nPUNzKGIudG9TdHJpbmcoKSk7CmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYS5nKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5zdGF0ZT09PTImJihfLkgoIlJSTSBjb21tdW5pY2F0aW9uIGlmcmFtZSBmYWlsZWQgdG8gbG9hZCB3aXRoaW4gdGltZW91dC4iKSxhLnN0YXRlPTQsa3UoYSkpfSw2RTQpfWVsc2UgXy5IKCJTZXNzaW9uIElEIG5vdCBhdmFpbGFibGUsIGNhbm5vdCBjcmVhdGUgUlJNIGlmcmFtZS4iKX0sanU9ZnVuY3Rpb24oYSl7YS5zdGF0ZT09PTImJihfLkUoIlJSTSBjb21tdW5pY2F0aW9uIGlmcmFtZSBsb2FkZWQgYW5kIHJlYWR5LiIpLGEuc3RhdGU9Myx3aW5kb3cudG9wLnBvc3RNZXNzYWdlKHt0eXBlOiJSUk1fR0lTX1JFQURZX0dJUyIsc2Vzc2lvbklkOmEuc2Vzc2lvbklkfSxhLmkpLGEuaj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5CfHxfLkcoIlN0aWxsIHdhaXRpbmcgZm9yIFJSTV9HSVNfWUlFTEQgYWZ0ZXIgMTAgbWludXRlcy4iKTthLmo9bnVsbH0sNkU1KSl9LGt1PWZ1bmN0aW9uKGEpe2EubyYmCihfLkUoIkV4ZWN1dGluZyBxdWV1ZWQgcHJvbXB0IGZ1bmN0aW9uLiIpLGEubygpLGEubz1udWxsKX0scnU9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3RhdGUhPT00JiYhYS5CfSxzdT1mdW5jdGlvbihhLGIpe3J1KGEpPyhhLm89YixfLkUoIlByb21wdCBmdW5jdGlvbiBxdWV1ZWQsIHdhaXRpbmcgZm9yIFJSTSB5aWVsZC4iKSk6KF8uRygic2V0UXVldWVkUHJvbXB0IGNhbGxlZCBpbiB1bmV4cGVjdGVkIHN0YXRlOiAiK2Euc3RhdGUpLGIoKSl9LHR1PWZ1bmN0aW9uKGEsYil7YS5zdGF0ZT09PTMmJmEuZyYmYS5nLmNvbnRlbnRXaW5kb3cmJmEuc2Vzc2lvbklkPyhfLkUoIlNlbmRpbmcgUlJNX0dJU19JRF9UT0tFTiB0byBSUk0gaWZyYW1lLiIpLGEuaD1iLGEuZy5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHt0eXBlOiJSUk1fR0lTX0lEX1RPS0VOIixzZXNzaW9uSWQ6YS5zZXNzaW9uSWQsaWRUb2tlbjpiLmNyZWRlbnRpYWwsY2xpZW50SWQ6Yi5jbGllbnRfaWR9LGEuRyksYS51PQpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Xy5HKCJObyBSUk1fR0lTX1JFRElSRUNUX09LIHJlY2VpdmVkIGFmdGVyIDEgbWludXRlLiIpO2EuaCYmKGEudihhLmgpLGEuaD1udWxsKX0sNkU0KSk6KF8uRygibm90aWZ5SWRUb2tlbiBjYWxsZWQgaW4gdW5leHBlY3RlZCBzdGF0ZSBvciB3aXRob3V0IGlmcmFtZTogIithLnN0YXRlKSxhLnYoYikpfTt2YXIgdXU9WzAsNzIwMCw4NjQwMCw2MDQ4MDAsMjQxOTIwMF0sdnU9WyJlbmFibGVfaXRwX29wdGltaXphdGlvbiJdLHd1PWZ1bmN0aW9uKGEsYixjKXt0aGlzLmk9YTt0aGlzLmc9Yj09PXZvaWQgMD8iaV8iOmI7dGhpcy5oPWM9PT12b2lkIDA/Imdfc3RhdGUiOmM7dGhpcy5qPW5ldyBJdH0seHU9ZnVuY3Rpb24oYSl7aWYoYT1fLmFkLmdldChhLmgpKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShhKX1jYXRjaChiKXt9cmV0dXJue319LHp1PWZ1bmN0aW9uKGEpe3ZhciBiPXh1KGEpLGM9YlthLmcrImwiXSxkPXR5cGVvZiBjPT09Im51bWJlciImJiFpc05hTihjKTtjPXtwcm9tcHRfc3VwcHJlc3NfbGV2ZWw6ZCYmZCYmYz49MCYmYzw9ND9jOnl1KCk/MTowfTtkPWJbYS5nKyJwIl07ZCE9PXZvaWQgMCYmKGMuZGlzYWJsZV9hdXRvX3Byb21wdD1kKTtkPWJbYS5nKyJ0Il07ZCE9PXZvaWQgMCYmKGMuZGlzYWJsZV9hdXRvX3NlbGVjdF90bz1kKTtkPWJbYS5nKyJ1Il07ZCE9PXZvaWQgMCYmCihjLnByb21wdF91aT1kKTtkPWJbYS5nKyJ4Il07ZCE9PXZvaWQgMCYmKGMubWluaV9wcm9tcHRfcmlnaHQ9ZCk7ZD1iW2EuZysieSJdO2QhPT12b2lkIDAmJihjLm1pbmlfcHJvbXB0X2JvdHRvbT1kKTtkPWJbYS5nKyJsbCJdO2QhPT12b2lkIDAmJihjLmxhc3RfbGlicmFyeV9sb2FkX3RpbWU9ZCk7ZD1iW2EuZysiYiJdO2QhPT12b2lkIDAmJihjLmJyb3dzaW5nX3Nlc3Npb25faWQ9ZCk7ZD1iW2EuZysiZSJdO2QhPT12b2lkIDAmJihjLmV4cGVyaW1lbnRfdmFsdWVzPWQpO2E9YlthLmcrImV0Il07YSE9PXZvaWQgMCYmKGMuZXhwZXJpbWVudF9jYWNoZV90aW1lPWEpO3JldHVybiBjfSxBdT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuZysicCIsZD1hLmcrInQiLGU9YS5nKyJsIixmPWEuZysidSIsZz1hLmcrIngiLGg9YS5nKyJ5IixrPWEuZysibGwiLG09YS5nKyJiIixuPWEuZysiZSIscT1hLmcrImV0IixwPXh1KGEpO2IuZGlzYWJsZV9hdXRvX3Byb21wdD09PXZvaWQgMD9kZWxldGUgcFtjXToKcFtjXT1iLmRpc2FibGVfYXV0b19wcm9tcHQ7Yi5kaXNhYmxlX2F1dG9fc2VsZWN0X3RvPT09dm9pZCAwP2RlbGV0ZSBwW2RdOnBbZF09Yi5kaXNhYmxlX2F1dG9fc2VsZWN0X3RvO3BbZV09Yi5wcm9tcHRfc3VwcHJlc3NfbGV2ZWw7Yi5wcm9tcHRfdWk9PT12b2lkIDA/ZGVsZXRlIHBbZl06cFtmXT1iLnByb21wdF91aTtiLm1pbmlfcHJvbXB0X3JpZ2h0PT09dm9pZCAwP2RlbGV0ZSBwW2ddOnBbZ109Yi5taW5pX3Byb21wdF9yaWdodDtiLm1pbmlfcHJvbXB0X2JvdHRvbT09PXZvaWQgMD9kZWxldGUgcFtoXTpwW2hdPWIubWluaV9wcm9tcHRfYm90dG9tO2IubGFzdF9saWJyYXJ5X2xvYWRfdGltZT09PXZvaWQgMD9kZWxldGUgcFtrXTpwW2tdPWIubGFzdF9saWJyYXJ5X2xvYWRfdGltZTtiLmJyb3dzaW5nX3Nlc3Npb25faWQ9PT12b2lkIDA/ZGVsZXRlIHBbbV06cFttXT1iLmJyb3dzaW5nX3Nlc3Npb25faWQ7Yi5leHBlcmltZW50X3ZhbHVlcz09PXZvaWQgMD9kZWxldGUgcFtuXToKcFtuXT1iLmV4cGVyaW1lbnRfdmFsdWVzO2IuZXhwZXJpbWVudF9jYWNoZV90aW1lPT09dm9pZCAwP2RlbGV0ZSBwW3FdOnBbcV09Yi5leHBlcmltZW50X2NhY2hlX3RpbWU7Yj1KU09OLnN0cmluZ2lmeShwKTtjPV8uV2EoKSYmXy5PYSgpJiZfLnFrKF8ucmsoKSwiNjciKT49MDtfLmFkLnNldChhLmgsYix7V2I6MTU1NTJFMyxwYXRoOiIvIixkb21haW46YS5pfHx2b2lkIDAsc2VjdXJlOmM/ITA6dm9pZCAwLHNhbWVTaXRlOmM/Im5vbmUiOnZvaWQgMH0pfSxDdT1mdW5jdGlvbihhKXt2YXIgYj16dShhKTtkZWxldGUgYi5kaXNhYmxlX2F1dG9fcHJvbXB0O2IucHJvbXB0X3N1cHByZXNzX2xldmVsJiZUcihuZXcgVXIoIm9uZXRhcCIsdm9pZCAwLCJyZXNldENvb2xkb3duIixiLnByb21wdF9zdXBwcmVzc19sZXZlbC50b1N0cmluZygpKSk7eXUoKT9iLnByb21wdF9zdXBwcmVzc19sZXZlbD0xOmIucHJvbXB0X3N1cHByZXNzX2xldmVsPTA7QXUoYSxiKTthLklhKCk7QnUoYSl9LER1PQpmdW5jdGlvbihhKXt2YXIgYj1iPT09dm9pZCAwPyExOmI7dmFyIGM9enUoYSk7aWYoYil7Xy5FKCJQcm9tcHQgaWdub3JlZC4gU3VwcHJlc3NpbmcgcHJvbXB0IGZvciAzMCBtaW51dGVzLiIpO2I9KG5ldyBEYXRlKS5nZXRUaW1lKCkrMThFNTt2YXIgZDtjLmRpc2FibGVfYXV0b19wcm9tcHQ9TWF0aC5tYXgoKGQ9Yy5kaXNhYmxlX2F1dG9fcHJvbXB0KSE9bnVsbD9kOjAsYil9ZWxzZSBjLnByb21wdF9zdXBwcmVzc19sZXZlbD1NYXRoLm1pbihjLnByb21wdF9zdXBwcmVzc19sZXZlbCsxLDQpLGMuZGlzYWJsZV9hdXRvX3Byb21wdD0obmV3IERhdGUpLmdldFRpbWUoKSt1dVtjLnByb21wdF9zdXBwcmVzc19sZXZlbF0qMUUzLFRyKG5ldyBVcigib25ldGFwIix2b2lkIDAsInN0YXJ0Q29vbGRvd24iLGMucHJvbXB0X3N1cHByZXNzX2xldmVsLnRvU3RyaW5nKCkpKTtBdShhLGMpfSxFdT1mdW5jdGlvbihhKXthPXp1KGEpLmRpc2FibGVfYXV0b19wcm9tcHQ7cmV0dXJuIGEhPT12b2lkIDAmJgphPihuZXcgRGF0ZSkuZ2V0VGltZSgpfSxodD1mdW5jdGlvbihhKXt2YXIgYj16dShhKTtiLmRpc2FibGVfYXV0b19zZWxlY3RfdG89RGF0ZS5ub3coKSs4NjRFNTtBdShhLGIpfTt3dS5wcm90b3R5cGUuSWE9ZnVuY3Rpb24oKXt2YXIgYT16dSh0aGlzKTtkZWxldGUgYS5kaXNhYmxlX2F1dG9fc2VsZWN0X3RvO0F1KHRoaXMsYSl9Owp2YXIgRnU9ZnVuY3Rpb24oYSl7dmFyIGI9enUoYSk7aWYoIWIuZXhwZXJpbWVudF9jYWNoZV90aW1lKXJldHVybiEwO2E9SnQoYS5qLEx0KTtyZXR1cm4gYT9iLmV4cGVyaW1lbnRfY2FjaGVfdGltZTxhKjFFMz8oXy5FKCJFeHBlcmltZW50IGNhY2hlIGV4cGlyZWQuIiksITApOiExOiExfSxCdT1mdW5jdGlvbihhKXt2YXIgYj16dShhKTtkZWxldGUgYi5icm93c2luZ19zZXNzaW9uX2lkO18uRSgiUmVzZXQgYnJvd3Npbmcgc2Vzc2lvbiBpZC4iKTtBdShhLGIpfSx5dT1mdW5jdGlvbigpe3N3aXRjaChMcigiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iKSl7Y2FzZSAxNDpjYXNlIDE1OmNhc2UgMTY6Y2FzZSAxNzpjYXNlIDI0OnJldHVybiBfLnlrKCk7ZGVmYXVsdDpyZXR1cm4hMX19LEd1PWZ1bmN0aW9uKCl7c3dpdGNoKExyKCJlbmFibGVfaXRwX29wdGltaXphdGlvbiIpKXtjYXNlIDEzOmNhc2UgMTU6Y2FzZSAyNDpyZXR1cm4gODY0MDA7Y2FzZSAxNjpyZXR1cm4gNDMyMDA7Y2FzZSAxNzpyZXR1cm4gMjE2MDA7CmRlZmF1bHQ6cmV0dXJuIDB9fTt2YXIgSHU9UmVnRXhwKCJeKCg/IVxccylbYS16QS1aMC05XHUwMDgwLVx1MzAwMVx1MzAwMy1cdWZmMGRcdWZmMGYtXHVmZjYwXHVmZjYyLVx1ZmZmZkZGLV0rW1xcLlxcdUZGMEVcXHUzMDAyXFx1RkY2MV0pKyg/IVxccylbYS16QS1aMC05XHUwMDgwLVx1MzAwMVx1MzAwMy1cdWZmMGRcdWZmMGYtXHVmZjYwXHVmZjYyLVx1ZmZmZkZGLV17Miw2M30kIik7TXMucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtyZXR1cm4gSXV9O3ZhciBJdT17ZG9uZTohMCx2YWx1ZTp2b2lkIDB9O01zLnByb3RvdHlwZS5HYT1mdW5jdGlvbigpe3JldHVybiB0aGlzfTt2YXIgTXU9ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIEp1fHxhIGluc3RhbmNlb2YgS3V8fGEgaW5zdGFuY2VvZiBMdSlyZXR1cm4gYTtpZih0eXBlb2YgYS5uZXh0PT0iZnVuY3Rpb24iKXJldHVybiBuZXcgSnUoZnVuY3Rpb24oKXtyZXR1cm4gYX0pO2lmKHR5cGVvZiBhW1N5bWJvbC5pdGVyYXRvcl09PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBKdShmdW5jdGlvbigpe3JldHVybiBhW1N5bWJvbC5pdGVyYXRvcl0oKX0pO2lmKHR5cGVvZiBhLkdhPT0iZnVuY3Rpb24iKXJldHVybiBuZXcgSnUoZnVuY3Rpb24oKXtyZXR1cm4gYS5HYSgpfSk7dGhyb3cgRXJyb3IoIlFhIik7fSxKdT1mdW5jdGlvbihhKXt0aGlzLmc9YX07SnUucHJvdG90eXBlLkdhPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBLdSh0aGlzLmcoKSl9O0p1LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBMdSh0aGlzLmcoKSl9O0p1LnByb3RvdHlwZS5oPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBMdSh0aGlzLmcoKSl9Owp2YXIgS3U9ZnVuY3Rpb24oYSl7dGhpcy5nPWF9O18uSihLdSxNcyk7S3UucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLm5leHQoKX07S3UucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEx1KHRoaXMuZyl9O0t1LnByb3RvdHlwZS5oPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBMdSh0aGlzLmcpfTt2YXIgTHU9ZnVuY3Rpb24oYSl7SnUuY2FsbCh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGF9KTt0aGlzLmk9YX07Xy5KKEx1LEp1KTtMdS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmkubmV4dCgpfTt2YXIgTnU9ZnVuY3Rpb24oKXt9O18uWWQoTnUsTnMpO051LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIE11KHRoaXMuR2EoITApKS5oKCl9O051LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3ZhciBhPUFycmF5LmZyb20odGhpcyk7YT1fLnUoYSk7Zm9yKHZhciBiPWEubmV4dCgpOyFiLmRvbmU7Yj1hLm5leHQoKSl0aGlzLmdiKGIudmFsdWUpfTtfLllkKE9zLE51KTt2YXIgUnM9ZnVuY3Rpb24oYSl7aWYoYS5oPT09bnVsbCl7dmFyIGI9YS5nO2lmKGIpdHJ5e2Iuc2V0SXRlbSgiX19zYWsiLCIxIik7Yi5yZW1vdmVJdGVtKCJfX3NhayIpO3ZhciBjPSEwfWNhdGNoKGQpe2M9ZCBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiYmKGQubmFtZT09PSJRdW90YUV4Y2VlZGVkRXJyb3IifHxkLmNvZGU9PT0yMnx8ZC5jb2RlPT09MTAxNHx8ZC5uYW1lPT09Ik5TX0VSUk9SX0RPTV9RVU9UQV9SRUFDSEVEIikmJmImJmIubGVuZ3RoIT09MH1lbHNlIGM9ITE7YS5oPWN9cmV0dXJuIGEuaH07Xy5sPU9zLnByb3RvdHlwZTtfLmwuc2V0PWZ1bmN0aW9uKGEsYil7T3UodGhpcyk7dHJ5e3RoaXMuZy5zZXRJdGVtKGEsYil9Y2F0Y2goYyl7aWYodGhpcy5nLmxlbmd0aD09MCl0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogU3RvcmFnZSBkaXNhYmxlZCI7dGhyb3ciU3RvcmFnZSBtZWNoYW5pc206IFF1b3RhIGV4Y2VlZGVkIjt9fTsKXy5sLmdldD1mdW5jdGlvbihhKXtPdSh0aGlzKTthPXRoaXMuZy5nZXRJdGVtKGEpO2lmKHR5cGVvZiBhIT09InN0cmluZyImJmEhPT1udWxsKXRocm93IlN0b3JhZ2UgbWVjaGFuaXNtOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7cmV0dXJuIGF9O18ubC5nYj1mdW5jdGlvbihhKXtPdSh0aGlzKTt0aGlzLmcucmVtb3ZlSXRlbShhKX07Xy5sLkdhPWZ1bmN0aW9uKGEpe091KHRoaXMpO3ZhciBiPTAsYz10aGlzLmcsZD1uZXcgTXM7ZC5uZXh0PWZ1bmN0aW9uKCl7aWYoYj49Yy5sZW5ndGgpcmV0dXJuIEl1O3ZhciBlPWMua2V5KGIrKyk7aWYoYSlyZXR1cm57dmFsdWU6ZSxkb25lOiExfTtlPWMuZ2V0SXRlbShlKTtpZih0eXBlb2YgZSE9PSJzdHJpbmciKXRocm93IlN0b3JhZ2UgbWVjaGFuaXNtOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7cmV0dXJue3ZhbHVlOmUsZG9uZTohMX19O3JldHVybiBkfTtfLmwuY2xlYXI9ZnVuY3Rpb24oKXtPdSh0aGlzKTt0aGlzLmcuY2xlYXIoKX07Cl8ubC5rZXk9ZnVuY3Rpb24oYSl7T3UodGhpcyk7cmV0dXJuIHRoaXMuZy5rZXkoYSl9O3ZhciBPdT1mdW5jdGlvbihhKXtpZihhLmc9PW51bGwpdGhyb3cgRXJyb3IoIlJhIik7UnMoYSl8fF8uQmEoRXJyb3IoIlJhIikpfTtfLllkKFBzLE9zKTtfLllkKFFzLE51KTtRcy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5oLnNldCh0aGlzLmcrYSxiKX07UXMucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5oLmdldCh0aGlzLmcrYSl9O1FzLnByb3RvdHlwZS5nYj1mdW5jdGlvbihhKXt0aGlzLmguZ2IodGhpcy5nK2EpfTtRcy5wcm90b3R5cGUuR2E9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5oW1N5bWJvbC5pdGVyYXRvcl0oKSxjPXRoaXMsZD1uZXcgTXM7ZC5uZXh0PWZ1bmN0aW9uKCl7dmFyIGU9Yi5uZXh0KCk7aWYoZS5kb25lKXJldHVybiBlO2ZvcihlPWUudmFsdWU7ZS5zbGljZSgwLGMuZy5sZW5ndGgpIT1jLmc7KXtlPWIubmV4dCgpO2lmKGUuZG9uZSlyZXR1cm4gZTtlPWUudmFsdWV9cmV0dXJue3ZhbHVlOmE/ZS5zbGljZShjLmcubGVuZ3RoKTpjLmguZ2V0KGUpLGRvbmU6ITF9fTtyZXR1cm4gZH07dmFyIFB1LGN2LGZ0LGh2LGp2LGl2LGx2LG12LFV1O1B1PW5ldyBfLnJmKCJnX2NyZWRlbnRpYWxfcGlja2VyIik7Xy5SdT1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD8iaV8iOmI7dmFyIGM9dGhpczt0aGlzLlY9U3MoKTt0aGlzLnNlPWI7dGhpcy5pPWE9T2JqZWN0LmFzc2lnbih7fSxhKTt0aGlzLkpjPSExO3RoaXMuRz0hMDt0aGlzLmw9RXIoKTt0aGlzLkM9bmV3IE1hcDt0aGlzLkJjPSExO3RoaXMuQj1uZXcgVHQ7dGhpcy56Yz10aGlzLko9ITE7UXUodGhpcyxhKTtfLkkoImVuYWJsZV9ycm1faW50ZXJvcCIpJiZhLnJybV9pbnRlcm9wJiYoXy5FKCJSUk0gaW50ZXJvcCBlbmFibGVkIiksdGhpcy52PW5ldyBodShmdW5jdGlvbihkKXtfLkUoIlJSTSBSZWRpcmVjdCBPSy4gUmVzcG9uc2UgcmVjZWl2ZWQ6ICIrSlNPTi5zdHJpbmdpZnkoZCkpO2MuY2FsbGJhY2smJmMuY2FsbGJhY2suY2FsbChjLGQpfSx0aGlzLmRlKSxtdSh0aGlzLnYpKX07Xy5KKF8uUnUsXy5BaCk7CnZhciBRdT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuVj9hLlYuZ2V0KCJsbCIpfHx2b2lkIDA6dm9pZCAwO2lmKGMpU3UoYSxjKTtlbHNle2lmKGM9Yi5sb2dfbGV2ZWwhPT12b2lkIDApYz1iLmxvZ19sZXZlbCxjPWM9PT12b2lkIDB8fCgwLF8uYWIpKHZ0LGMpPj0wO2MmJlN1KGEsYi5sb2dfbGV2ZWwpfWEuZ2U9Yi5idXR0b25fdXJsfHwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9idXR0b24iO2EuVmM9Yi5waWNrZXJfdXJsfHwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9zZWxlY3QiO2Eud2U9Yi5wcm9tcHRfdXJsfHwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9pZnJhbWUvc2VsZWN0IjthLmRkPWIuc3RhdHVzX3VybHx8Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvc3RhdHVzIjthLks9Xy5mZChhLmRkKTthLmhlPWIuY29udGFpbmVyX2Nzc191cmx8fCJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL3N0eWxlIjthLkRlPQpiLnJldm9rZV91cmx8fCJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL3Jldm9rZSI7YS51Yz1iLmZlZGNtX3VybHx8Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvIjthLkg9Yi5mZWRjbV9jb25maWdfdXJsfHwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9mZWRjbS5qc29uIjtfLkkoImVuYWJsZV9mZWRjbV9jb25maWdfc3BsaXQiKSYmKGEuamI9Yi5mZWRjbV9wYXNzaXZlX2NvbmZpZ191cmx8fCJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL2ZlZGNtL2NvbmZpZy9wYXNzaXZlLmpzb24iLGEucWU9Yi5mZWRjbV9hY3RpdmVfY29uZmlnX3VybHx8Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvZmVkY20vY29uZmlnL2FjdGl2ZS5qc29uIik7YS5QYT1iLm9hdXRoMl9hdXRoX3VybHx8Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi92Mi9hdXRoIjthLmRlPWIucnJtX2lmcmFtZV9wYXRofHwiaHR0cHM6Ly9uZXdzLmdvb2dsZS5jb20vc3dnL3VpL3YxL3JybWdpc2ludGVyb3AiOwphLmNhbGxiYWNrPWIuY2FsbGJhY2s7YS5QPWIucmVkaXJlY3RfY2FsbGJhY2s7YS5UPWIudXhfbW9kZT09PSJyZWRpcmVjdCI/InJlZGlyZWN0IjoicG9wdXAiO2M9Yi51aV9tb2RlO2MhPT12b2lkIDAmJk9iamVjdC52YWx1ZXModHQpLmluY2x1ZGVzKGMpfHwoYz1hLmNvbnRhaW5lcj09PWRvY3VtZW50LmJvZHksYz1fLnlkKCkmJiFfLnhkKCl8fChjPT09dm9pZCAwfHxjKSYmbnMoKSYmd2luZG93LmlubmVyV2lkdGg8NDIwPyJib3R0b21fc2hlZXQiOiJjYXJkIik7YS5MPWM7YS5pYj1iLmNvbG9yX3NjaGVtZTthLmNvbnRhaW5lcj0oYi5wcm9tcHRfcGFyZW50P2IucHJvbXB0X3BhcmVudDpiLnByb21wdF9wYXJlbnRfaWQ/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYi5wcm9tcHRfcGFyZW50X2lkKTpudWxsKXx8ZG9jdW1lbnQuYm9keTthLnRlPTlFNDthLmhiPWIuY2FuY2VsX29uX3RhcF9vdXRzaWRlIT09ITE7YS5CYz1iLml0cF9zdXBwb3J0IT09ITE7YS53YT1iLnVzZV9mZWRjbV9mb3JfcHJvbXB0PT09CnZvaWQgMD92b2lkIDA6ISFiLnVzZV9mZWRjbV9mb3JfcHJvbXB0O2EuSGU9Yi51c2VfZmVkY21fZm9yX2J1dHRvbj09PXZvaWQgMD92b2lkIDA6ISFiLnVzZV9mZWRjbV9mb3JfYnV0dG9uO2lmKGIubGlicmFyeV9uYW1lJiZiLmxpYnJhcnlfbmFtZS5sZW5ndGg+MTAwKXRocm93IEVycm9yKCJTYSIpO2EuSWM9Yi5saWJyYXJ5X25hbWU/Yi5saWJyYXJ5X25hbWU6dm9pZCAwO2M9Yi5zdGF0ZV9jb29raWVfZG9tYWluOyFjfHxjIT1udWxsJiZIdS50ZXN0KGMpfHwoYz12b2lkIDApO2EuZz1uZXcgd3UoYyxhLnNlLGIuc3RhdGVfY29va2llX25hbWUpO2M9YS5nO3ZhciBkPXp1KGMpLGU9RGF0ZS5ub3coKTtkLmxhc3RfbGlicmFyeV9sb2FkX3RpbWUmJmQuYnJvd3Npbmdfc2Vzc2lvbl9pZD9lLWQubGFzdF9saWJyYXJ5X2xvYWRfdGltZT4xOEU1JiYoZC5icm93c2luZ19zZXNzaW9uX2lkPUVyKCksXy5FKCJTZXNzaW9uIGV4cGlyZWQuIFNldHRpbmcgbmV3IGJyb3dzaW5nIHNlc3Npb24gaWQuIikpOgooZC5icm93c2luZ19zZXNzaW9uX2lkPUVyKCksXy5FKCJTZXR0aW5nIG5ldyBicm93c2luZyBzZXNzaW9uIGlkLiIpKTtpZighZC5leHBlcmltZW50X3ZhbHVlc3x8RnUoYykpe2Zvcih2YXIgZj17fSxnPV8udSh2dSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpaD1oLnZhbHVlLGZbaF09THIoaCk7ZC5leHBlcmltZW50X3ZhbHVlcz1mO2QuZXhwZXJpbWVudF9jYWNoZV90aW1lPWU7Xy5FKCJTZXR0aW5nIG5ldyBleHBlcmltZW50IHZhbHVlcy4iKX1kLmxhc3RfbGlicmFyeV9sb2FkX3RpbWU9ZTtBdShjLGQpO2lmKF8uSSgiZW5hYmxlX2Jyb3dzaW5nX3Nlc3Npb25faWQiKSYmKFNyPXp1KGEuZykuYnJvd3Npbmdfc2Vzc2lvbl9pZCxjPXp1KGEuZykuZXhwZXJpbWVudF92YWx1ZXMpKWZvcihjPV8udShPYmplY3QuZW50cmllcyhjKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZT1fLnUoZC52YWx1ZSksZD1lLm5leHQoKS52YWx1ZSxlPWUubmV4dCgpLnZhbHVlLApfLnBmKGQsZSk7UnIoYS5LLGIuY2xpZW50X2lkLGEubCxbe09kOiJlbmFibGVfaXRwX29wdGltaXphdGlvbiIsUGQ6THIoImVuYWJsZV9pdHBfb3B0aW1pemF0aW9uIil9XSk7YS5VYyhiKTtjPXt9O2IuY2xpZW50X2lkIT09dm9pZCAwJiYoYy5jbGllbnRfaWQ9Yi5jbGllbnRfaWQpO2Iub3JpZ2luIT09dm9pZCAwJiYoYy5vcmlnaW49Yi5vcmlnaW4pO2IuYXV0b19zZWxlY3QhPT12b2lkIDAmJihjLmF1dG9fc2VsZWN0PWIuYXV0b19zZWxlY3QpO2IuYnV0dG9uX2F1dG9fc2VsZWN0IT09dm9pZCAwJiYoYy5idXR0b25fYXV0b19zZWxlY3Q9Yi5idXR0b25fYXV0b19zZWxlY3QpO2MudXhfbW9kZT1hLlQ7Yy51eF9tb2RlPT09InJlZGlyZWN0IiYmYi5sb2dpbl91cmkmJihjLmxvZ2luX3VyaT1iLmxvZ2luX3VyaSk7Yy51aV9tb2RlPWEuTDthLmliIT09dm9pZCAwJiYoYy5jb2xvcl9zY2hlbWU9YS5pYik7Yi5jb250ZXh0IT09dm9pZCAwJiZPYmplY3QudmFsdWVzKHN0KS5pbmNsdWRlcyhiLmNvbnRleHQpJiYKKGMuY29udGV4dD1iLmNvbnRleHQpO2lmKGIubG9naW5faGludCE9PXZvaWQgMHx8Yi5oaW50IT09dm9pZCAwKWMuaGludD1iLmxvZ2luX2hpbnR8fGIuaGludDtpZihiLmhkIT09dm9pZCAwfHxiLmhvc3RlZF9kb21haW4hPT12b2lkIDApYy5ob3N0ZWRfZG9tYWluPWIuaGR8fGIuaG9zdGVkX2RvbWFpbjtiLmV4aXN0aW5nIT09dm9pZCAwJiYoYy5leGlzdGluZz1iLmV4aXN0aW5nKTtiLnNwZWNpYWxfYWNjb3VudHMhPT12b2lkIDAmJihjLnNwZWNpYWxfYWNjb3VudHM9Yi5zcGVjaWFsX2FjY291bnRzKTtiLm5vbmNlIT09dm9pZCAwJiYoYy5ub25jZT1iLm5vbmNlKTtiLmNoYW5uZWxfaWQhPT12b2lkIDAmJihjLmNoYW5uZWxfaWQ9Yi5jaGFubmVsX2lkKTtiLnN0YXRlIT09dm9pZCAwJiYoYy5zdGF0ZT1iLnN0YXRlKTtfLk9jIT09Indhcm4iJiYoYy5sb2dfbGV2ZWw9Xy5PYyk7Yi5obCE9PXZvaWQgMCYmKGMuaGw9Yi5obCk7Yi5kaXNhYmxlX2F1dG9fZm9jdXMhPT12b2lkIDAmJgooYy5kaXNhYmxlX2F1dG9fZm9jdXM9Yi5kaXNhYmxlX2F1dG9fZm9jdXMpO2MuYXM9YS5sO18uSSgiZW5hYmxlX2Jyb3dzaW5nX3Nlc3Npb25faWQiKSYmKGMuYnM9enUoYS5nKS5icm93c2luZ19zZXNzaW9uX2lkKTtpZihiLmxpYnJhcnlfbmFtZSYmYi5saWJyYXJ5X25hbWUubGVuZ3RoPjEwMCl0aHJvdyBFcnJvcigiU2EiKTtiLmxpYnJhcnlfbmFtZSE9PXZvaWQgMCYmKGMubGlicmFyeV9uYW1lPWIubGlicmFyeV9uYW1lKTtfLkkoInJwX2NhbmNlbGFibGVfYXV0b19zZWxlY3QiKSYmKGMuZmVhdHVyZT0iY2FuY2VsYWJsZUF1dG9TZWxlY3QiKTtpZihiLmVzc2VudGlhbF9jbGFpbXMhPT12b2lkIDApe2U9Yi5lc3NlbnRpYWxfY2xhaW1zO2I9e307ZD17fTtpZihlKWZvcihlPWUuc3BsaXQoIiwiKSxmPTA7ZjxlLmxlbmd0aDtmKyspZFtlW2ZdLnRyaW0oKV09e2Vzc2VudGlhbDohMH07Yi5pZF90b2tlbj1kO2MuY2xhaW1zPUpTT04uc3RyaW5naWZ5KGIpfWEuTWMoYyk7YS5tPWN9OwpfLlJ1LnByb3RvdHlwZS5VYz1mdW5jdGlvbigpe307Xy5SdS5wcm90b3R5cGUuTWM9ZnVuY3Rpb24oKXt9O3ZhciBhdD1mdW5jdGlvbihhKXthLkpjfHwoYS5KYz0hMCxfLlhmKHdpbmRvdywibWVzc2FnZSIsZnVuY3Rpb24oYil7VHUoYSxiLmcpfSwhMSkpfSxYdT1mdW5jdGlvbihhKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5GYT1fLlhmKGRvY3VtZW50LCJjbGljayIsZnVuY3Rpb24oKXthLmhiJiZVdShhLCExKSYmKFZ1KGEsInRhcF9vdXRzaWRlIiksV3UoYSksTHMoKSYmWHIoInRhcHBlZE91dHNpZGUiKSl9KX0pfSxXdT1mdW5jdGlvbihhKXthLkZhJiYoXy5lZyhhLkZhKSxhLkZhPXZvaWQgMCl9O18uUnUucHJvdG90eXBlLnhjPWZ1bmN0aW9uKCl7cmV0dXJuITF9Owp2YXIgWXU9ZnVuY3Rpb24oYSl7aWYoXy5JKCJkaXNhYmxlX2ZlZGNtIil8fCFtcygpfHwhXy5BZCgpKXJldHVybiExO2lmKF8uSSgiZW5hYmxlX2FjY291bnRfbGFiZWxzIikmJiF3dC5hY2NvdW50TGFiZWxzVG9rZW4pe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKTtiLmh0dHBFcXVpdj0ib3JpZ2luLXRyaWFsIjtiLmNvbnRlbnQ9IkEwYnd3WVgzRXpEMkFRMTk3Uk1BK2tmZnlFMnZlcENUSDAwYll1emcrR0JjTnJDTGJyNW9Yek92cGs1ZWVodnZhR3I5TXUrL3JIOXBLUEpYUjc2TW5nb0FBQUIyZXlKdmNtbG5hVzRpT2lKb2RIUndjem92TDJGalkyOTFiblJ6TG1kdmIyZHNaUzVqYjIwNk5EUXpJaXdpWm1WaGRIVnlaU0k2SWtabFpFTnRRMjl1ZEdsdWRXVlBia0oxYm1Sc1pTSXNJbVY0Y0dseWVTSTZNVGMwTkRZM05USXdNQ3dpYVhOVWFHbHlaRkJoY25SNUlqcDBjblZsZlE9PSI7ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChiKTsKd3QuYWNjb3VudExhYmVsc1Rva2VuPSEwfWlmKGEueGMoKXx8b3MoKT09PSJodHRwczovL21lZXQuZ29vZ2xlLmNvbSIpcmV0dXJuITE7aWYoXy5JKCJlbmFibGVfZmVkY21fZ2xvYmFsX2V4cGVyaW1lbnQiKSlyZXR1cm4gXy5FKCJJbiBGZWRDTSBnbG9iYWwgZXhwZXJpbWVudCBncm91cCIpLCEwO2lmKF8uSSgiZW5hYmxlX2ZlZGNtX2dsb2JhbF9jb250cm9sIikpcmV0dXJuIF8uRSgiSW4gRmVkQ00gZ2xvYmFsIGNvbnRyb2wgZ3JvdXAiKSwhMTtpZihhLm0uYXV0b19zZWxlY3QmJiEoXy5VYSgiQ2hyb21pdW0iKT49MTIxKSlyZXR1cm4hMTtpZihfLkkoImRpc2FibGVfZmVkY21fb3B0X291dCIpJiZfLlVhKCJDaHJvbWl1bSIpPj0xNDIpcmV0dXJuITA7KGE9YS53YT09PSExKSYmXy5HKCJDdXJyZW50bHksIHlvdSBkaXNhYmxlIEZlZENNIG9uIEdvb2dsZSBPbmUgVGFwLiBGZWRDTSBmb3IgT25lIFRhcCB3aWxsIGJlY29tZSBtYW5kYXRvcnkgc29vbiwgYW5kIHlvdSB3b25cdTIwMTl0IGJlIGFibGUgdG8gZGlzYWJsZSBpdC4gUmVmZXIgdG8gdGhlIG1pZ3JhdGlvbiBndWlkZSB0byB1cGRhdGUgeW91ciBjb2RlIGFjY29yZGluZ2x5IHRvIGVuc3VyZSB1c2VycyB3aWxsIG5vdCBiZSBibG9ja2VkIGZyb20gbG9nZ2luZyBpbi4gTGVhcm4gbW9yZTogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vaWRlbnRpdHkvZ3NpL3dlYi9ndWlkZXMvZmVkY20tbWlncmF0aW9uIik7CnJldHVybiFhfSxadT1mdW5jdGlvbihhKXtyZXR1cm4gbXMoKSYmYS5CLmg/Xy5JKCJlbmFibGVfZmVkY21fYnV0dG9uX2dsb2JhbF9jb250cm9sIik/KF8uRSgiSW4gRmVkQ00gYnV0dG9uIGdsb2JhbCBjb250cm9sIGdyb3VwIiksITEpOl8uSSgiZW5hYmxlX2ZlZGNtX2J1dHRvbl9nbG9iYWxfZXhwZXJpbWVudCIpPyhfLkUoIkluIEZlZENNIGJ1dHRvbiBnbG9iYWwgZXhwZXJpbWVudCBncm91cCIpLCEwKTohIWEuSGU6ITF9OwpfLlJ1LnByb3RvdHlwZS5mYT1mdW5jdGlvbihhLGIsYyl7aWYoYil7Xy5FKCJQcm9jZXNzaW5nIEZlZENNIGNyZWRlbnRpYWwiKTt2YXIgZD1udWxsO3RyeXtkPUpTT04ucGFyc2UoYi50b2tlbikuaWRfdG9rZW59Y2F0Y2goZSl7ZD1iLnRva2VufWQ9e2NyZWRlbnRpYWw6ZCxzdGF0ZTpjJiZjLnN0YXRlfTtkLnNlbGVjdF9ieT1hPT09IndpZGdldCI/Yi5pc0F1dG9TZWxlY3RlZD8iZmVkY21fYXV0byI6ImZlZGNtIjpiLmlzQXV0b1NlbGVjdGVkPyJmZWRjbV9idXR0b25fYXV0byI6ImZlZGNtX2J1dHRvbiI7JHUoe2RhdGE6e2Fubm91bmNlbWVudDpfLlpsKHt9KX19KTtfLkUoIkZlZENNIHJlc3BvbnNlIDoiK0pTT04uc3RyaW5naWZ5KGQpKTthPT09IndpZGdldCI/KHRoaXMuY2FsbGJhY2s/dGhpcy5jYWxsYmFjay5jYWxsKHRoaXMsZCk6Xy5FKCJObyBjYWxsYmFjayBmb3VuZCBmb3IgRmVkQ00gd2lkZ2V0IGZsb3ciKSxhdih0aGlzLCJjcmVkZW50aWFsX3JldHVybmVkIikpOnRoaXMuVD09PQoicG9wdXAiP3RoaXMuY2FsbGJhY2s/dGhpcy5jYWxsYmFjay5jYWxsKHRoaXMsZCk6Xy5FKCJObyBjYWxsYmFjayBmb3VuZCBmb3IgRmVkQ00gYnV0dG9uIHBvcHVwIGZsb3ciKTpjJiZjLmxvZ2luX3VyaT8oYT17fSxjJiZjLnN0YXRlJiYoYS5zdGF0ZT1jLnN0YXRlKSxkcyhjLmxvZ2luX3VyaSxhLGQuY3JlZGVudGlhbCkpOnRoaXMuUD90aGlzLlAuY2FsbCh0aGlzLGQpOl8uRSgiTm8gY2FsbGJhY2sgZm91bmQgZm9yIEZlZENNIGJ1dHRvbiByZWRpcmVjdCBmbG93LiIpO0J1KHRoaXMuZyl9ZWxzZSBfLkUoIkZlZENNIGNyZWRlbnRpYWwgaXMgbnVsbCIpfTtfLlJ1LnByb3RvdHlwZS5rYT1mdW5jdGlvbihhLGIpe18uSCgiRmVkQ00gZ2V0KCkgcmVqZWN0cyB3aXRoICIrYik7YT09PSJ3aWRnZXQiJiZWdSh0aGlzLCJ1bmtub3duX3JlYXNvbiIpfTsKdmFyIGJ2PWZ1bmN0aW9uKGEpe2EuSj0hMDt2YXIgYj17YXM6YS5sLHRvcF9vcmlnaW46cHMoKT9vcygpOnZvaWQgMCxsaWJyYXJ5X25hbWU6YS5tLmxpYnJhcnlfbmFtZT9hLm0ubGlicmFyeV9uYW1lOnZvaWQgMCxyZXNwb25zZV90eXBlOiJpZF90b2tlbiIsc3NfZG9tYWluOmEubS5vcmlnaW58fGxvY2F0aW9uLm9yaWdpbixzY29wZToiZW1haWwgcHJvZmlsZSBvcGVuaWQiLG5vbmNlOmEubS5ub25jZT9hLm0ubm9uY2U6Im5vdF9wcm92aWRlZCIsc3RhdGU6YS5tLnN0YXRlfTthLm0uY2xhaW1zJiYoYi5jbGFpbXM9YS5tLmNsYWltcyk7VnQoYS5CLHtMYzphLnVjLHJiOl8uSSgiZW5hYmxlX2ZlZGNtX2NvbmZpZ19zcGxpdCIpP2EuamI6YS5ILG06YS5tLElhOiEhYS5tLmF1dG9fc2VsZWN0LGZhOmEuZmEuYmluZChhKSxrYTpmdW5jdGlvbihjLGQpe1JyKGEuSyxhLmkuY2xpZW50X2lkLGEubCk7dmFyIGU9ZG9jdW1lbnQubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zP2RvY3VtZW50LmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucy5sZW5ndGg6CjA7ZT1lPjA/ZG9jdW1lbnQubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zW2UtMV06IiI7dmFyIGY9W2RvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sLCIvLyIsZG9jdW1lbnQubG9jYXRpb24uaG9zdF0uam9pbigiIik7ZC5tZXNzYWdlLmluZGV4T2YoImlkZW50aXR5LWNyZWRlbnRpYWxzLWdldCIpPj0wJiZacigiZmFpbGVkV2l0aElmcmFtZUdldFBlcm1pc3Npb24iLCJpZnJhbWVPcmlnaW49IitmLCJwYXRoPSIrZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUsInRvcE9yaWdpbj0iK2UpO2QubWVzc2FnZS5pbmRleE9mKCJDb250ZW50IFNlY3VyaXR5IFBvbGljeSIpPj0wJiZacigiZmFpbGVkV2l0aENzcCIsImlmcmFtZU9yaWdpbj0iK2YsInBhdGg9Iitkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSwidG9wT3JpZ2luPSIrZSk7YS5rYShjLGQpfSxvZTpmdW5jdGlvbigpe2EuSj0hMX0sUmE6Yn0pO1h1KGEpfTsKXy5SdS5wcm90b3R5cGUudmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7dGhpcy52JiZydSh0aGlzLnYpPyhfLkUoIlJSTSBpbnRlcm9wIGFjdGl2ZSwgZGVmZXJyaW5nIHByb21wdCIpLHN1KHRoaXMudixmdW5jdGlvbigpe2N2KGQsYSxiLGMpfSkpOmN2KHRoaXMsYSxiLGMpfTsKY3Y9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1PYmplY3QuYXNzaWduKHt9LGEuaSxjKTtRdShhLGMpO2M9YS5tLnVpX21vZGU9PT0iYm90dG9tX3NoZWV0Ij8iYm90dG9tU2hlZXQiOiJjYXJkIjtMcygpJiZXcihjLCJhcGlDYWxsIik7bnMoKSYmXy5HKCJZb3VyIGNsaWVudCBhcHBsaWNhdGlvbiBtYXkgbm90IGRpc3BsYXkgR29vZ2xlIE9uZSBUYXAgd2hlbiBGZWRDTSBiZWNvbWVzIG1hbmRhdG9yeS4gT3B0LWluIHRvIEZlZENNIHRvIHRlc3QgdGhhdCB5b3UgaGF2ZSB0aGUgcHJvcGVyIGNyb3NzLW9yaWdpbiBwZXJtaXNzaW9uIHBvbGljeSBzZXQgdXAuIElnbm9yZSB0aGlzIG1lc3NhZ2UgaWYgT25lIFRhcCBpcyBkaXNwbGF5ZWQgYWZ0ZXIgb3B0LWluIHRvIEZlZENNLiBMZWFybiBtb3JlOiAoaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vaWRlbnRpdHkvZ3NpL3dlYi9ndWlkZXMvZmVkY20tbWlncmF0aW9uP3M9ZGMjY3Jvc3Nfb3JpZ2luKSIpO2lmKHdpbmRvdy5sb2NhdGlvbi5ocmVmLnN0YXJ0c1dpdGgoImNocm9tZS1leHRlbnNpb246Ly8iKSlfLkcoIkF0dGVtcHRlZCB0byBzdGFydCBzaWduIGluIGZsb3cgaW5zaWRlIGNocm9tZSBleHRlbnNpb24uIiksCldyKGMsImNocm9tZUV4dGVuc2lvbiIpO2Vsc2UgaWYoVXUoYSwhMCkmJihhdihhLCJmbG93X3Jlc3RhcnRlZCIpLExzKCkmJlhyKCJmbG93UmVzdGFydGVkIikpLGImJiFhLnpjJiYoXy5HKCJZb3VyIGNsaWVudCBhcHBsaWNhdGlvbiB1c2VzIG9uZSBvZiB0aGUgR29vZ2xlIE9uZSBUYXAgcHJvbXB0IFVJIHN0YXR1cyBtZXRob2RzIHRoYXQgbWF5IHN0b3AgZnVuY3Rpb25pbmcgd2hlbiBGZWRDTSBiZWNvbWVzIG1hbmRhdG9yeS4gUmVmZXIgdG8gdGhlIG1pZ3JhdGlvbiBndWlkZSB0byB1cGRhdGUgeW91ciBjb2RlIGFjY29yZGluZ2x5IGFuZCBvcHQtaW4gdG8gRmVkQ00gdG8gdGVzdCB5b3VyIGNoYW5nZXMuIExlYXJuIG1vcmU6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2lkZW50aXR5L2dzaS93ZWIvZ3VpZGVzL2ZlZGNtLW1pZ3JhdGlvbj9zPWRjI2Rpc3BsYXlfbW9tZW50IGFuZCBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9pZGVudGl0eS9nc2kvd2ViL2d1aWRlcy9mZWRjbS1taWdyYXRpb24/cz1kYyNza2lwcGVkX21vbWVudCIpLAphLnpjPSEwKSxhLm89YixhLnZjPWQsYS5tLmNsaWVudF9pZClpZihfLkkoInVuc3VwcG9ydGVkX2Jyb3dzZXIiKSlfLkYoIk9uZSBUYXAgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIFVzZXIgQWdlbnQuIiksYS5qKCJicm93c2VyX25vdF9zdXBwb3J0ZWQiKSxfLkRoKGEsInByb21wdF9kaXNwbGF5X2ZhaWxlZCIse2NhdXNlOiJVbnN1cHBvcnRlZCB1c2VyIGFnZW50IGZvciBvbmUgdGFwLiJ9KSxXcihjLCJ1bnN1cHBvcnRlZEJyb3dzZXIiKTtlbHNlIGlmKEV1KGEuZykpXy5GKCJVc2VyIGhhcyBjbG9zZWQgT25lIFRhcCBiZWZvcmUuIFN0aWxsIGluIHRoZSBjb29sIGRvd24gcGVyaW9kLiIpLGEuaigic3VwcHJlc3NlZF9ieV91c2VyIiksXy5EaChhLCJwcm9tcHRfZGlzcGxheV9mYWlsZWQiLHtjYXVzZToiUHJvbXB0IGRpc2FibGVkIGJ5IHRoZSB1c2VyLiJ9KSxXcihjLCJjb29sZG93biIsKHp1KGEuZykucHJvbXB0X3N1cHByZXNzX2xldmVsfHwwKS50b1N0cmluZygpKTtlbHNlIGlmKFl1KGEpKV8uSSgiZW5hYmxlX2ZlZGNtX2NvbmZpZ19zcGxpdCIpPwpkdihhLGZ1bmN0aW9uKGYpe2YmJl8uSmIoXy5MKGYsOSkpPyhfLkUoIkFsbCBhY2NvdW50cyBhcmUgb3B0ZWQgb3V0LiIpLGEuaigib3B0X291dF9vcl9ub19zZXNzaW9uIiksXy5EaChhLCJwcm9tcHRfZGlzcGxheV9mYWlsZWQiLHtjYXVzZToiQWxsIGFjY291bnRzIGFyZSBvcHRlZCBvdXQuIn0pKTpidihhKX0pOmJ2KGEpO2Vsc2V7dmFyIGU9Xy55aygpJiZhLkJjO2EubS5pc19pdHA9ZTtfLnlrKCkmJmEuTD09PSJib3R0b21fc2hlZXQiJiYoYS5tLnByb21wdF91aT1NcigpLGEubS5hdXRvX2Rpc21pc3NfZHVyYXRpb25fbXM9SnMoKSk7ZHYoYSxmdW5jdGlvbihmKXtkZWxldGUgYS5tLmlzX2l0cDtpZihmKWlmKF8uVmUoZixfLnpoLDIpKV8ubmgoXy5NKGYsXy56aCwyKSksZj1fLk0oZixfLnpoLDIpLGY9Xy5PKGYsMSksYS5qKGY9PT0yPyJvcHRfb3V0X29yX25vX3Nlc3Npb24iOmY9PT03PyJzZWN1cmVfaHR0cF9yZXF1aXJlZCI6Zj09PTU/InVucmVnaXN0ZXJlZF9vcmlnaW4iOgpmPT09M3x8Zj09PTQ/ImludmFsaWRfY2xpZW50IjpmPT09OT8iYnJvd3Nlcl9ub3Rfc3VwcG9ydGVkIjpmPT09MTI/IndlYl92aWV3X25vdF9zdXBwb3J0ZWQiOiJ1bmtub3duX3JlYXNvbiIpLF8uRGgoYSwicHJvbXB0X2Rpc3BsYXlfZmFpbGVkIix7Y2F1c2U6IkVycm9yIHdoaWxlIGNoZWNraW5nIGZvciB0aGUgY3JlZGVudGlhbCBzdGF0dXMuIn0pO2Vsc2UgaWYoXy5KYihfLkwoZiwzKSkpXy5NKGYsXy5SaywxKSYmKGEubS5hcz1fLmdtKF8uTShmLF8uUmssMSkpfHxhLm0uYXMpLGV2KGEpLEtzKCl8fGZ2KGEpLGd2KGEpLFh1KGEpO2Vsc2V7dmFyIGc9Xy5JKCJlbmFibGVfaXRwX2ZsYWdfb25fY2hlY2tfY3JlZGVudGlhbF9zdGF0dXMiKTtnPSFnfHxnJiZfLkpiKF8uTChmLDQpKTtlJiZnPyhfLk0oZixfLlJrLDEpJiYoYS5tLmFzPV8uZ20oXy5NKGYsXy5SaywxKSl8fGEubS5hcyksYS5tLmlzX2l0cD0hMCxldihhKSxLcygpfHxmdihhKSxndihhKSxYdShhKSxkZWxldGUgYS5tLmlzX2l0cCk6CihfLkUoIk5vIHNlc3Npb25zIGZvdW5kIGluIHRoZSBicm93c2VyLiIpLGEuaigib3B0X291dF9vcl9ub19zZXNzaW9uIiksXy5EaChhLCJwcm9tcHRfZGlzcGxheV9mYWlsZWQiLHtjYXVzZToiTm8gc2lnbmVkIGluIEdvb2dsZSBhY2NvdW50cyBhdmFpbGFibGUuIn0pKX1lbHNlIF8uRSgiSW52YWxpZCByZXNwb25zZSBmcm9tIGNoZWNrIGNyZWRlbnRpYWwgc3RhdHVzLiIpLGEuaigidW5rbm93bl9yZWFzb24iKSxfLkRoKGEsInByb21wdF9kaXNwbGF5X2ZhaWxlZCIse2NhdXNlOiJBIG5ldHdvcmsgZXJyb3Igd2FzIGVuY291bnRlcmVkIHdoaWxlIGNoZWNraW5nIGZvciB0aGUgY3JlZGVudGlhbCBzdGF0dXMuIn0pfSl9ZWxzZSBfLkgoIk1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyOiBjbGllbnRfaWQuIiksYS5qKCJtaXNzaW5nX2NsaWVudF9pZCIpLF8uRGgoYSwicHJvbXB0X2Rpc3BsYXlfZmFpbGVkIix7Y2F1c2U6Ik1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyOiBjbGllbnRfaWQuIn0pLApXcihjLCJub0NsaWVudElkIil9OwpmdD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1PYmplY3QuYXNzaWduKHt9LGMpO0h0PUh0fHxuZXcgSXQ7SnQoSHQsS3QpfHxlLnRoZW1lIT09Im91dGxpbmVfZGFyayJ8fChkZWxldGUgZS50aGVtZSxfLkUoIk91dGxpbmUgZGFyayB0aGVtZSBpcyBub3QgZW5hYmxlZC4iKSk7Xy50bChiKTtfLklpKGIpO3ZhciBmPUVzKCk7Yz1uZXcgXy5oZChhLmdlKTt2YXIgZz1PYmplY3QuYXNzaWduKHt9LGUpLGg9Xy5zZihkb2N1bWVudCwiZGl2Iik7aC5jbGFzc0xpc3QuYWRkKCJTOWdVcmYtWW9aNGpmIik7aC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO2IuYXBwZW5kQ2hpbGQoaCk7Yj1odihhLGgsZSxmKTtkPXtpZnJhbWVJZDpmLHlhOmQsQ2M6ZS5jbGlja19saXN0ZW5lcixTYjpiLGRhdGE6e25vbmNlOmcubm9uY2V8fGEuaS5ub25jZSxzdGF0ZTpnLnN0YXRlfHxhLmkuc3RhdGV9fTthLkMuc2V0KGYsZCk7ZGVsZXRlIGcubm9uY2U7ZGVsZXRlIGcuc3RhdGU7Zy5oaW50PWcubG9naW5faGludHx8CmcuaGludHx8YS5pLmxvZ2luX2hpbnR8fGEuaS5oaW50O2cuaGludHx8ZGVsZXRlIGcuaGludDtkZWxldGUgZy5sb2dpbl9oaW50O2cuaG9zdGVkX2RvbWFpbj1nLmhkfHxnLmhvc3RlZF9kb21haW58fGEuaS5oZHx8YS5pLmhvc3RlZF9kb21haW47Zy5ob3N0ZWRfZG9tYWlufHxkZWxldGUgZy5ob3N0ZWRfZG9tYWluO2RlbGV0ZSBnLmhkO2cuaXNfZmVkY21fc3VwcG9ydGVkPW1zKCkmJmEuQi5oO2lmKF8uSSgiZW5hYmxlX2ZlZGNtX2J1dHRvbl9nbG9iYWxfY29udHJvbCIpfHxfLkkoImVuYWJsZV9mZWRjbV9idXR0b25fZ2xvYmFsX2V4cGVyaW1lbnQiKSlnLmZlZGNtX2J1dHRvbl9leHBlcmltZW50X2FybT1fLkkoImVuYWJsZV9mZWRjbV9idXR0b25fZ2xvYmFsX2V4cGVyaW1lbnQiKT8xOjA7Yj1fLndrKGcpO2Iuc2V0KCJjbGllbnRfaWQiLGEuaS5jbGllbnRfaWQpO2Iuc2V0KCJpZnJhbWVfaWQiLGYpO2Iuc2V0KCJjYXMiLGEubCk7Zy5sb2NhbGUmJihiLnNldCgiaGwiLGcubG9jYWxlKSwKXy5FZihiLCJsb2NhbGUiKSk7Xy5PYyE9PSJ3YXJuIiYmYi5zZXQoImxvZ19sZXZlbCIsXy5PYyk7Xy5rZChjLGIpO3ZhciBrPXZvaWQgMDtfLkkoImVuYWJsZV9mZWRjbV9ibHVlZG9nX3BvYyIpJiYoaz1ZdChhLkgsYS5tKSxfLlhmKGssIm9udG9rZW4iLGZ1bmN0aW9uKCl7dmFyIG09ay5jcmVkZW50aWFsKCk7bT9hLmNhbGxiYWNrfHxhLlA/KG09e2NyZWRlbnRpYWw6bSxzZWxlY3RfYnk6ImZlZGNtIn0sYS5jYWxsYmFjaz8oYS5jYWxsYmFjay5jYWxsKGEsbSksXy5FKCJSZXR1cm5pbmcgdG9rZW4gdG8gY2FsbGJhY2suIiwiTG9naW4gZWxlbWVudCIpKTphLlAmJihhLlAuY2FsbChhLG0pLF8uRSgiUmVkaXJlY3Rpbmcgd2l0aCB0b2tlbi4iLCJMb2dpbiBlbGVtZW50IikpKTpfLkcoIk5vIGNhbGxiYWNrIHByb3ZpZGVkIHRvIGhhbmRsZSB0b2tlbi4iLCJMb2dpbiBlbGVtZW50Iik6Xy5HKCJUb2tlbiBpcyBlbXB0eS4iLCJMb2dpbiBlbGVtZW50Iil9KSk7Zz1fLmFtKCk7Yz1CcyhoLApjLnRvU3RyaW5nKCksZixnLGspO2QuWGE9Yy5YYTtnJiZjLmtkJiZscyhjLmtkLGZ1bmN0aW9uKG0pe20ucHJldmVudERlZmF1bHQoKTttLnN0b3BQcm9wYWdhdGlvbigpO2l2KGEsZil9KTtfLkkoImVuYWJsZV9mZWRjbV9ibHVlZG9nX3BvYyIpJiZhLkMuc2l6ZT09PTEmJlh0KGEuSCxhLm0pfTtodj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1fLnNmKGRvY3VtZW50LCJkaXYiKTtiLmFwcGVuZENoaWxkKGUpO2lmKEhzKGIpKXt2YXIgZj1fLlEoImdvb2dsZWlkZW50aXR5c2VydmljZV9idXR0b25fc3R5bGVzIik7Yj1IcyhiKTtmJiZiJiYhYi5nZXRFbGVtZW50QnlJZCgiZ29vZ2xlaWRlbnRpdHlzZXJ2aWNlX2J1dHRvbl9zdHlsZXMiKSYmYi5hcHBlbmRDaGlsZChmLmNsb25lTm9kZSghMCkpfWM9bmV3IGV1KGUsYyxmdW5jdGlvbigpe2l2KGEsZCl9KTtmdShjKTtyZXR1cm4gY307Cmp2PWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5DLmdldChiKTtpZihjJiZjLlNiKXt2YXIgZD1jLlNiO3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2QuZGlzcG9zZSgpO2MuU2I9dm9pZCAwO2E6e2lmKHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKXt2YXIgZT1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIik7aWYoZS5sZW5ndGg+MCl7ZT1lWzBdLmRvbUNvbXBsZXRlO2JyZWFrIGF9fWU9cGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLnRpbWluZyYmcGVyZm9ybWFuY2UudGltaW5nLmRvbUNvbXBsZXRlJiZwZXJmb3JtYW5jZS50aW1lT3JpZ2luP3BlcmZvcm1hbmNlLnRpbWluZy5kb21Db21wbGV0ZS1wZXJmb3JtYW5jZS50aW1lT3JpZ2luOnZvaWQgMH1lJiZUcihuZXcgVXIoImJ1dHRvbiIsdm9pZCAwLCJyZW5kZXJlZCIsImxhdGVuY3kiLE1hdGguZmxvb3IoZC5pLQplKS50b1N0cmluZygpLE1hdGguZmxvb3IoZC5qLWUpLnRvU3RyaW5nKCksTWF0aC5mbG9vcihkLnN0YXJ0VGltZS1lKS50b1N0cmluZygpKSwxKX0pfSl9fTtpdj1mdW5jdGlvbihhLGIpe18uRSgiUHJvY2Vzc2luZyBjbGljayBmb3IgYnV0dG9uOiAiK2IrIi4iKTtpZihiKXt2YXIgYz1fLlEoYiksZD1hLkMuZ2V0KGIpO2N8fF8uRigiVGhlIGlmcmFtZSBjb250YWluaW5nIHRoZSBidXR0b24gd2FzIG5vdCBmb3VuZCB3aXRoaW4gdGhlIHBhZ2UuIik7ZD9kLnlhPyhkLnlhKGQuZGF0YSksXy5FKCJDdXN0b20gaGFuZGxlciBjYWxsZWQgZm9yIGJ1dHRvbjogIitiKyIuIikpOihiPXt9LGQuZGF0YS5ub25jZSYmKGIubm9uY2U9ZC5kYXRhLm5vbmNlKSxkLmRhdGEuc3RhdGUmJihiLnN0YXRlPWQuZGF0YS5zdGF0ZSksXy5rdihhLGIsZC5kYXRhP2QuZGF0YS5zZXNzaW9uSWQ6dm9pZCAwKSxkLkNjJiZkLkNjKE9iamVjdC5hc3NpZ24oe30sZC5kYXRhKSkpOl8uSCgiQSBidXR0b24gZW50cnkgd2FzIG5vdCBmb3VuZCBmb3IgdGhlIGdpdmVuIGlkLiIpfX07Cl8ua3Y9ZnVuY3Rpb24oYSxiLGMpe1V1KGEsITApJiYoYXYoYSwiZmxvd19yZXN0YXJ0ZWQiKSxYcigiYnV0dG9uRmxvd1N0YXJ0ZWQiKSk7Yj1PYmplY3QuYXNzaWduKHt9LGEuaSxiKTtRdShhLGIpO1p1KGEpPyhhLko9ITAsYz17YXM6Y3x8YS5sLHN0YXRlOmIuc3RhdGUsbG9naW5fdXJpOmEubS5sb2dpbl91cmkscmVzcG9uc2VfdHlwZToiaWRfdG9rZW4iLHNzX2RvbWFpbjphLm0ub3JpZ2lufHxsb2NhdGlvbi5vcmlnaW4sc2NvcGU6ImVtYWlsIHByb2ZpbGUgb3BlbmlkIixub25jZTphLm0ubm9uY2U/YS5tLm5vbmNlOiJub3RfcHJvdmlkZWQifSxXdChhLkIse0xjOmEudWMscmI6Xy5JKCJlbmFibGVfZmVkY21fY29uZmlnX3NwbGl0Iik/YS5xZTphLkgsbTphLm0sSWE6ISFhLm0uYnV0dG9uX2F1dG9fc2VsZWN0LGZhOmEuZmEuYmluZChhKSxrYTphLmthLmJpbmQoYSksb2U6ZnVuY3Rpb24oKXthLko9ITF9LFJhOmN9KSk6YS5UPT09InJlZGlyZWN0Ij9sdihhLGMpOm12KGEsYyl9Owpsdj1mdW5jdGlvbihhLGIpe2EubS5hcz1ifHxhLmw7YS5tLmxvZ2luX3VyaXx8KGEubS5sb2dpbl91cmk9bG9jYXRpb24ucHJvdG9jb2wrIi8vIitsb2NhdGlvbi5ob3N0K2xvY2F0aW9uLnBhdGhuYW1lKTthLm0uZ19jc3JmX3Rva2VuPSRyKCk7YS5tLm9yaWdpbj1hLm0ub3JpZ2lufHxsb2NhdGlvbi5vcmlnaW47aWYoXy5JKCJlbmFibGVfZ2lzX29hdXRoX2J1dHRvbl9mbG93X3JlZGlyZWN0Iikpe2I9e2FzOmEubS5hcyxjbGllbnRfaWQ6YS5tLmNsaWVudF9pZCxzY29wZToib3BlbmlkIGVtYWlsIHByb2ZpbGUiLHJlc3BvbnNlX3R5cGU6ImlkX3Rva2VuIixub25jZTphLm0ubm9uY2UsZ3Npd2Vic2RrOiJnaXNfYXR0cmlidXRlcyIscmVkaXJlY3RfdXJpOmEubS5sb2dpbl91cmkscmVzcG9uc2VfbW9kZToiZm9ybV9wb3N0IixkaXNwbGF5OiJwYWdlIn07YS5tLnN0YXRlJiYoYi5zdGF0ZT1hLm0uc3RhdGUpO2EubS5oaW50JiYoYi5sb2dpbl9oaW50PWEubS5oaW50KTthLm0uaG9zdGVkX2RvbWFpbiYmCihiLmhkPWEubS5ob3N0ZWRfZG9tYWluKTtfLkkoImRpc2FibGVfcHJvbXB0X3NlbGVjdF9hY2NvdW50Iil8fChiLnByb21wdD0ic2VsZWN0X2FjY291bnQiKTthLm0uY2xhaW1zJiYoYi5jbGFpbXM9YS5tLmNsYWltcyk7dmFyIGM9Xy56ayhuZXcgXy5EaSxfLnVrKCJidG4iKSk7Yz1fLlIoYyw0LGEubS5nX2NzcmZfdG9rZW4pO2M9Xy5SKGMsNSxhLm0uYXMpO2M9Xy5TKGMsNywyKTtjPV8uUihjLDExLHdpbmRvdy5sb2NhdGlvbi5ocmVmKTthLm0uc3RhdGUmJl8uUihjLDEwLGEubS5zdGF0ZSk7YS5tLmxpYnJhcnlfbmFtZSYmKF8uUihjLDEyLGEubS5saWJyYXJ5X25hbWUpLGIubGlicmFyeV9uYW1lPWEubS5saWJyYXJ5X25hbWUpO2IuZ2lzX3BhcmFtcz1fLmZiKGMuaCgpLDQpO18uamkoSXIoXy54ayhhLlBhLGIpKSl9ZWxzZSBfLmppKElyKF8ueGsoYS5WYyxhLm0pKSl9Owptdj1mdW5jdGlvbihhLGIpe2EudT1fLndkKCk7YS5tLmFzPWJ8fGEubDthLm0uY2hhbm5lbF9pZD1fLnFpKGEudSk7YS5tLm9yaWdpbj1hLm0ub3JpZ2lufHxsb2NhdGlvbi5vcmlnaW47aWYoXy5JKCJlbmFibGVfZ2lzX29hdXRoX2J1dHRvbl9mbG93X3BvcHVwIikpe2I9e2FzOmEubS5hcyxjbGllbnRfaWQ6YS5tLmNsaWVudF9pZCxzY29wZToib3BlbmlkIGVtYWlsIHByb2ZpbGUiLHJlc3BvbnNlX3R5cGU6ImlkX3Rva2VuIixub25jZTphLm0ubm9uY2UsZ3Npd2Vic2RrOiJnaXNfYXR0cmlidXRlcyIscmVkaXJlY3RfdXJpOiJnaXNfdHJhbnNmb3JtIixyZXNwb25zZV9tb2RlOiJmb3JtX3Bvc3QiLG9yaWdpbjphLm0ub3JpZ2luLGRpc3BsYXk6InBvcHVwIn07YS5tLnN0YXRlJiYoYi5zdGF0ZT1hLm0uc3RhdGUpO2EubS5oaW50JiYoYi5sb2dpbl9oaW50PWEubS5oaW50KTthLm0uaG9zdGVkX2RvbWFpbiYmKGIuaGQ9YS5tLmhvc3RlZF9kb21haW4pO18uSSgiZGlzYWJsZV9wcm9tcHRfc2VsZWN0X2FjY291bnQiKXx8CihiLnByb21wdD0ic2VsZWN0X2FjY291bnQiKTthLm0uY2xhaW1zJiYoYi5jbGFpbXM9YS5tLmNsYWltcyk7dmFyIGM9Xy56ayhuZXcgXy5EaSxfLnVrKCJidG4iKSk7Yz1fLlIoYyw0LGEubS5nX2NzcmZfdG9rZW4pO2M9Xy5SKGMsNSxhLm0uYXMpO2M9Xy5TKGMsNywxKTtjPV8uUihjLDgsYS5tLmNoYW5uZWxfaWQpO2EubS5zdGF0ZSYmXy5SKGMsMTAsYS5tLnN0YXRlKTthLm0ubGlicmFyeV9uYW1lJiYoXy5SKGMsMTIsYS5tLmxpYnJhcnlfbmFtZSksYi5saWJyYXJ5X25hbWU9YS5tLmxpYnJhcnlfbmFtZSk7Yi5naXNfcGFyYW1zPV8uZmIoYy5oKCksNCk7Yz1hLm0uY2hhbm5lbF9pZDt2YXIgZD1hLm0uZ19jc3JmX3Rva2VuLGU9YS5tLmFzO3ZhciBmPUZyKGIuZ2lzX3BhcmFtcyk7dHJ5e3ZhciBnPXJ0KGYpO3ZhciBoPWc/Xy5CaShnKT09PShkP2Q6IiIpJiZfLlhlKGcsNSk9PT0oZT9lOiIiKSYmXy53aShnLDcpPT09MSYmXy5YZShnLDgpPT09KGM/YzoiIik6ITF9Y2F0Y2goayl7Xy5HKCJ2YWxpZGF0ZVRyYW5zZm9ybUxheWVyUGF5bG9hZCBmYWlsZWQiKSwKaD0hMX1ofHxUcihuZXcgVXIoImJ1dHRvbiIsInBvcHVwIiwiY2xpY2tlZCIsImJhc2U2NF9naXNfcGFyYW1zX3ZhbGlkYXRpb25fZmFpbGVkIiwib3JpZ2luPSIrYS5tLm9yaWdpbiwiY2xpZW50SWQ9IithLm0uY2xpZW50X2lkLCJnaXNQYXJhbXM9IitiLmdpc19wYXJhbXMpKTtfLkkoImVuYWJsZV9sYXJnZV9wb3B1cF9oZWlnaHQiKT8oYi5naXNscD0iMSIsYi51cHN0cmVhbV9leHBlcmltZW50X2lkPSIxMTc3ODg2MzYiKTpfLkkoImVuYWJsZV9sYXJnZV9wb3B1cF9oZWlnaHRfY29udHJvbCIpJiYoYi5naXNscD0iMCIsYi51cHN0cmVhbV9leHBlcmltZW50X2lkPSIxMTc3ODg2MzUiKTtpZihfLkpkKF8ueGsoYS5QYSxiKSxQdSxfLkhkKCkpKXJldHVybjtUcihuZXcgVXIoImJ1dHRvbiIsInBvcHVwIiwiY2xpY2tlZCIsIm9hdXRoUG9wdXBOb3RPcGVuZWQiKSl9Xy5KZChfLnhrKGEuVmMsYS5tKSxQdSxfLkhkKCkpfHxUcihuZXcgVXIoImJ1dHRvbiIsInBvcHVwIiwiY2xpY2tlZCIsCiJwb3B1cE5vdE9wZW5lZCIpKX07ClV1PWZ1bmN0aW9uKGEsYil7aWYoYS5KKXJldHVybiBiPWEuQixfLkUoIkFib3J0aW5nIGN1cnJlbnQgRmVkQ00gZmxvdy4iKSxiLmc/KGI9Yi5nLF8uRSgiQWJvcnRpbmcgRmVkQ00gZmxvdy4gY2FsbElkICIrYi5nKSxiLmg/KGIuaC5hYm9ydCgpLF8uRSgiRmVkQ00gZmxvdyBhYm9ydGVkLiBjYWxsSWQgIitiLmcpLGIuaD12b2lkIDAsYj0hMCk6KF8uRSgiTm8gRmVkQ00gZmxvdyB0byBhYm9ydC4gY2FsbElkICIrYi5nKSxiPSExKSk6KF8uRSgiTm8gRmVkQ00gZmxvdyB0byBhYm9ydC4iKSxiPSExKSxiPyhXdShhKSwhMCk6ITE7aWYoSHMoYS5jb250YWluZXIpKXZhciBjPSFhLkQ7ZWxzZSBjPWEuY29udGFpbmVyLGM9IShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3JlZGVudGlhbF9waWNrZXJfaWZyYW1lIil8fGMmJmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjcmVkZW50aWFsX3BpY2tlcl9jb250YWluZXIiKSk7aWYoYylyZXR1cm4hMTtpZighYiYmYS5HKXJldHVybiBfLkYoIkNhbmNlbCBwcm9tcHQgcmVxdWVzdCBpZ25vcmVkLiBUaGUgcHJvbXB0IGlzIGluIGEgcHJvdGVjdGVkIHN0YXRlLiIpLAohMTtIcyhhLmNvbnRhaW5lcik/KChiPWEuRCkmJmIucGFyZW50RWxlbWVudD8oYi5wYXJlbnRFbGVtZW50LmlkPT09ImNyZWRlbnRpYWxfcGlja2VyX2NvbnRhaW5lciImJmIucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50P2IucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGIucGFyZW50RWxlbWVudCk6Yi5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGIpLGI9ITApOmI9ITEsYj0hYik6Yj0hd3MoYS5jb250YWluZXIpO2lmKGIpcmV0dXJuIF8uRigiRmFpbGVkIHRvIHJlbW92ZSBwcm9tcHQgaWZyYW1lLiIpLCExO3B0KGEpO2EuRz0hMDthLkQ9dm9pZCAwO1d1KGEpO3JldHVybiEwfTtfLlJ1LnByb3RvdHlwZS5qPWZ1bmN0aW9uKGEpe252KHRoaXMsITEsYSl9Owp2YXIgZ3Y9ZnVuY3Rpb24oYSl7aWYoYS5MPT09ImJvdHRvbV9zaGVldCIpe3ZhciBiPWEuZzthOnN3aXRjaChMcigiZW5hYmxlX2l0cF9vcHRpbWl6YXRpb24iKSl7Y2FzZSAxMzpjYXNlIDE1OmNhc2UgMTY6Y2FzZSAxNzpjYXNlIDI0OnZhciBjPV8ueWsoKTticmVhayBhO2RlZmF1bHQ6Yz0hMX1pZihjKXtfLkUoIlN0YXJ0aW5nIG1pbmltdW0gZ2FwLiIpO2M9enUoYik7dmFyIGQ9R3UoKTtkPShuZXcgRGF0ZSkuZ2V0VGltZSgpK2QqMUUzO3ZhciBlO2MuZGlzYWJsZV9hdXRvX3Byb21wdD1NYXRoLm1heCgoZT1jLmRpc2FibGVfYXV0b19wcm9tcHQpIT1udWxsP2U6MCxkKTtBdShiLGMpfX1udihhLCEwKX0sbnY9ZnVuY3Rpb24oYSxiLGMpe2lmKGEubyl7dmFyIGQ9YS5vO2J8fChhLm89dm9pZCAwKTt2YXIgZT1uZXcgZ3UoImRpc3BsYXkiKTtlLmg9YjtifHwoZS5qPWN8fCJ1bmtub3duX3JlYXNvbiIpO2QuY2FsbChhLGUpfX0sVnU9ZnVuY3Rpb24oYSxiKXtpZihhLm8pe3ZhciBjPQphLm87YS5vPXZvaWQgMDt2YXIgZD1uZXcgZ3UoInNraXBwZWQiKTtkLmw9YjtjLmNhbGwoYSxkKX19LGF2PWZ1bmN0aW9uKGEsYil7aWYoYS5vKXt2YXIgYz1hLm87YS5vPXZvaWQgMDt2YXIgZD1uZXcgZ3UoImRpc21pc3NlZCIpO2QuaT1iO2MuY2FsbChhLGQpfX0sb3Y9ZnVuY3Rpb24oYSxiKXthLnZjJiZhLnZjLmNhbGwoYSx7dHlwZTpiLG1lc3NhZ2U6dm9pZCAwfSl9LGR2PWZ1bmN0aW9uKGEsYil7dmFyIGM9e2NsaWVudF9pZDphLm0uY2xpZW50X2lkfTthLm0uaGludCYmKGMuaGludD1hLm0uaGludCk7YS5tLmhvc3RlZF9kb21haW4mJihjLmhvc3RlZF9kb21haW49YS5tLmhvc3RlZF9kb21haW4pO2EubS5hcyYmKGMuY2FzPWEubS5hcyk7YS5tLmJzJiYoYy5icz1hLm0uYnMpO2Eud2EhPT12b2lkIDAmJihjLmhhc19vcHRlZF9vdXRfZmVkY209IWEud2EpO2EubS5pc19pdHAhPT12b2lkIDAmJihjLmlzX2l0cD1hLm0uaXNfaXRwKTthLm0ucHJvbXB0X3VpIT09dm9pZCAwJiYKKGMucHJvbXB0X3VpPWEubS5wcm9tcHRfdWkpO2M9Xy54ayhhLmRkLGMpO2FzKGMsZnVuY3Rpb24oZCl7ZCYmZCE9PSJudWxsIj8oZD1OdChKU09OLnN0cmluZ2lmeShfLm9rKGQpKSksYihkKSk6KF8uSCgiQ2hlY2sgY3JlZGVudGlhbCBzdGF0dXMgcmV0dXJucyBpbnZhbGlkIHJlc3BvbnNlLiIpLGEuaigidW5rbm93bl9yZWFzb24iKSxfLkRoKGEsIm5ldHdvcmsiLHtjYXVzZToiaW52YWxpZF9yZXNwb25zZSJ9KSl9KX0sZXY9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tLGM7aWYoYz1hLm0uYXV0b19zZWxlY3Qpe2M9YS5nO3ZhciBkPXp1KGMpO2QuZGlzYWJsZV9hdXRvX3NlbGVjdF90byYmRGF0ZS5ub3coKT49ZC5kaXNhYmxlX2F1dG9fc2VsZWN0X3RvJiYoYy5JYSgpLGQ9enUoYykpO2M9IShkLmRpc2FibGVfYXV0b19zZWxlY3RfdG8mJkRhdGUubm93KCk8ZC5kaXNhYmxlX2F1dG9fc2VsZWN0X3RvKX1iLmF1dG9fc2VsZWN0PWM7Xy55aygpJiZhLkw9PT0iYm90dG9tX3NoZWV0IiYmCihhLm0ucHJvbXB0X3VpPU1yKCksYS5tLmF1dG9fZGlzbWlzc19kdXJhdGlvbl9tcz1KcygpKTthLnU9Xy53ZCgpO2EubS5jaGFubmVsX2lkPV8ucWkoYS51KTthLm0ub3JpZ2luPWEubS5vcmlnaW58fGxvY2F0aW9uLm9yaWdpbjthLm0ub2F1dGgyX2F1dGhfdXJsPWEuUGE7YS5JYyYmKGEubS5saWJyYXJ5X25hbWU9YS5JYyk7Yj1fLnhrKGEud2UsYS5tKTthLkc9ITA7YS5iZChiKTtfLkNoKGEsInByb21wdF9kaXNwbGF5ZWQiKX07Xy5SdS5wcm90b3R5cGUuYmQ9ZnVuY3Rpb24oYSl7dGhpcy5EPXlzKHRoaXMuY29udGFpbmVyLGEsdGhpcy5MPT09ImJvdHRvbV9zaGVldCIpfTsKdmFyIGZ2PWZ1bmN0aW9uKGEpe2EuTD09PSJib3R0b21fc2hlZXQiJiZ3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe1V1KGEsITEpJiYoVnUoYSwiYXV0b19jYW5jZWwiKSxMcygpJiZYcigiYXV0b0Rpc21pc3NlZCIpKX0sYS50ZSl9LFR1PWZ1bmN0aW9uKGEsYil7aWYoYi5vcmlnaW49PT1hLksmJmIuZGF0YSYmYi5kYXRhLnR5cGU9PT0icmVhZHlGb3JDb25uZWN0IilpZihfLkUoIlNldHVwIG1lc3NhZ2UgcmVjZWl2ZWQ6ICIrSlNPTi5zdHJpbmdpZnkoYi5kYXRhKSksYi5zb3VyY2Upe3ZhciBjPWIuZGF0YS5pZnJhbWVJZDtpZihjKXtpZihjPWEuQy5nZXQoYykpe2MuZGF0YS5zZXNzaW9uSWQ9Yi5kYXRhLnNlc3Npb25JZDtjPW5ldyBNZXNzYWdlQ2hhbm5lbDtjLnBvcnQxLm9ubWVzc2FnZT1mdW5jdGlvbihlKXtpZihlLmRhdGEmJmUuZGF0YS50eXBlKXtfLkUoIk1lc3NhZ2UgcmVjZWl2ZWQgaW4gYnV0dG9uIGNoYW5uZWw6ICIrSlNPTi5zdHJpbmdpZnkoZS5kYXRhKSk7CnZhciBmPWUuZGF0YS50eXBlO2lmKGYhPT0iY29tbWFuZCIpXy5HKCJVbmtub3duIGV2ZW50IHR5cGUgKCIrZisiKSByZWNlaXZlZCBpbiB0aGUgYnV0dG9uIGNoYW5uZWwuIik7ZWxzZSBzd2l0Y2goZj1lLmRhdGEuY29tbWFuZCxmKXtjYXNlICJjbGlja2VkIjpmPWUuZGF0YS5pZnJhbWVJZDtfLkUoIkNsaWNrZWQgY29tbWFuZCByZWNlaXZlZCBmb3IgYnV0dG9uOiAiK2YrIi4iKTtpdihhLGYpO2JyZWFrO2Nhc2UgInJlc2l6ZSI6Zj1lLmRhdGEuaWZyYW1lSWQ7Xy5FKCJSZXNpemUgY29tbWFuZCByZWNlaXZlZCBmb3IgYnV0dG9uOiAiK2YrIi4iKTtpZihmKXt2YXIgZz1hLkMuZ2V0KGYpLGg9ZS5kYXRhLmhlaWdodCxrPWUuZGF0YS53aWR0aDtpZihnJiZnLlhhJiZEcyhoKSYmRHMoaykpe3ZhciBtPWcuWGE7bS5zdHlsZS5oZWlnaHQ9aCsicHgiO20uc3R5bGUud2lkdGg9aysicHgiO2c9ZS5kYXRhLnZlcnRpY2FsTWFyZ2luO2U9ZS5kYXRhLmhvcml6b250YWxNYXJnaW47dHlwZW9mIGchPT0KIm51bWJlciJ8fGlzTmFOKGcpfHx0eXBlb2YgZSE9PSJudW1iZXIifHxpc05hTihlKXx8KG0uc3R5bGUubWFyZ2luVG9wPWcrInB4IixtLnN0eWxlLm1hcmdpbkJvdHRvbT1nKyJweCIsbS5zdHlsZS5tYXJnaW5MZWZ0PWUrInB4IixtLnN0eWxlLm1hcmdpblJpZ2h0PWUrInB4IixqdihhLGYpKTtxdChhLGssaCl9ZWxzZSBtP18uRygiVW5hYmxlIHRvIHJlc2l6ZSBpZnJhbWUuIEludmFsaWQgZGltZW5zaW9ucy4iKTpfLkcoIlVuYWJsZSB0byByZXNpemUgaWZyYW1lLiBObyBpZnJhbWUgZm91bmQgd2l0aCBpZDogIisoZisiLiIpKX1icmVhaztkZWZhdWx0Ol8uRygiVW5rbm93biBjb21tYW5kIHR5cGUgKCIrZisiKSByZWNlaXZlZCBpbiB0aGUgYnV0dG9uIGNoYW5uZWwuIil9fX07dmFyIGQ9e3R5cGU6ImNoYW5uZWxDb25uZWN0In07dHJ5e2Iuc291cmNlLnBvc3RNZXNzYWdlKGQsYS5LLFtjLnBvcnQyXSl9Y2F0Y2goZSl7Xy5IKCJGYWlsZWQgdG8gc2VuZCBwb3N0bWVzc2FnZSB0byBidXR0b24gaWZyYW1lOiAiKwplLm1lc3NhZ2UpfX19ZWxzZSBpZihiLmRhdGEuY2hhbm5lbElkJiZhLnUmJihhLnUmJl8ucWkoYS51KSk9PT1iLmRhdGEuY2hhbm5lbElkKXtjPW5ldyBNZXNzYWdlQ2hhbm5lbDtjLnBvcnQxLm9ubWVzc2FnZT1mdW5jdGlvbihlKXthLk9hKGUpfTtkPXt0eXBlOiJjaGFubmVsQ29ubmVjdCIsbm9uY2U6YS51fTt0cnl7Yi5zb3VyY2UucG9zdE1lc3NhZ2UoZCxhLkssW2MucG9ydDJdKX1jYXRjaChlKXtfLkgoIkZhaWxlZCB0byBzZW5kIHBvc3RtZXNzYWdlIHRvIGlmcmFtZTogIitlLm1lc3NhZ2UpfX19ZWxzZSBfLkUoIlNvdXJjZSBpbnZhbGlkLiBJZnJhbWUgd2FzIGNsb3NlZCBkdXJpbmcgc2V0dXAuIil9OwpfLlJ1LnByb3RvdHlwZS5PYT1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2lmKGEuZGF0YSYmYS5kYXRhLnR5cGUpc3dpdGNoKF8uRSgiTWVzc2FnZSByZWNlaXZlZDogIitKU09OLnN0cmluZ2lmeShhLmRhdGEpKSxhLmRhdGEudHlwZSl7Y2FzZSAicmVzcG9uc2UiOnZzKHRoaXMuRCk7dmFyIGM9YS5kYXRhLnJlc3BvbnNlO2MmJmMuY3JlZGVudGlhbD8oQ3UodGhpcy5nKSx0aGlzLm0uc3RhdGUmJihjLnN0YXRlPXRoaXMubS5zdGF0ZSksdGhpcy52JiZ0aGlzLnYuc3RhdGU9PT0zPyhfLkUoIlJSTSBpbnRlcm9wIGFjdGl2ZSwgbm90aWZ5aW5nIHRva2VuIiksdHUodGhpcy52LGMpKTp0aGlzLmNhbGxiYWNrJiYodGhpcy5jYWxsYmFjay5jYWxsKHRoaXMsYyksXy5FKCJSZXNwb25zZSByZWNlaXZlZDogIitKU09OLnN0cmluZ2lmeShjKSkpLGtzKHRoaXMubS5jbGllbnRfaWQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtVdShiLCEwKSYmKGF2KGIsImNyZWRlbnRpYWxfcmV0dXJuZWQiKSwKcHQoYikpfSwyRTMpKTpVdSh0aGlzLCEwKSYmKFZ1KHRoaXMsImlzc3VpbmdfZmFpbGVkIiksWHIoImlzc3VpbmdGYWlsZWQiKSxwdCh0aGlzKSk7JHUoYSk7YnJlYWs7Y2FzZSAiYWN0aXZpdHkiOmEuZGF0YS5hY3Rpdml0eSYmdGhpcy5SKGEuZGF0YS5hY3Rpdml0eSk7YnJlYWs7Y2FzZSAiY29tbWFuZCI6aWYoYz1hLmRhdGEuY29tbWFuZClzd2l0Y2goYyl7Y2FzZSAiY2xvc2UiOmEuZGF0YS5zdXBwcmVzcyYmRHUodGhpcy5nKTtVdSh0aGlzLCEwKSYmKFZ1KHRoaXMsInVzZXJfY2FuY2VsIikscHQodGhpcyksTHMoKSYmWHIoInVzZXJDYW5jZWxsZWQiKSk7YnJlYWs7Y2FzZSAiYXV0b19kaXNtaXNzIjpVdSh0aGlzLCEwKSYmKFZ1KHRoaXMsImF1dG9fY2FuY2VsIikscHQodGhpcyksTHMoKSYmWHIoImF1dG9EaXNtaXNzZWQiKSk7YnJlYWs7Y2FzZSAicmVzaXplIjphPWEuZGF0YS5oZWlnaHQ7RHMoYSkmJihjPXRoaXMuY29udGFpbmVyIT09ZG9jdW1lbnQuYm9keSYmSHModGhpcy5jb250YWluZXIpPwpBcyhhLHRoaXMuRCk6enMoYSkscXQodGhpcyxhLGMpKTticmVhaztjYXNlICJjYW5jZWxfcHJvdGVjdF9zdGFydCI6dGhpcy5HPSEwO2JyZWFrO2Nhc2UgImNhbmNlbF9wcm90ZWN0X2VuZCI6dGhpcy5HPSExO2JyZWFrO2Nhc2UgInN0YXJ0X2F1dG9fc2VsZWN0Ijpvdih0aGlzLCJhdXRvX3NlbGVjdF9zdGFydGVkIik7YnJlYWs7Y2FzZSAiY2FuY2VsX2F1dG9fc2VsZWN0IjpodCh0aGlzLmcpLG92KHRoaXMsImF1dG9fc2VsZWN0X2NhbmNlbGVkIil9fX07dmFyICR1PWZ1bmN0aW9uKGEpe2EuZGF0YS5hbm5vdW5jZW1lbnQmJkdzKGEuZGF0YS5hbm5vdW5jZW1lbnQpfTsKXy5SdS5wcm90b3R5cGUucmV2b2tlPWZ1bmN0aW9uKGEsYil7dmFyIGM9e3N1Y2Nlc3NmdWw6ITF9LGQ9dGhpcy5tLmNsaWVudF9pZDtkPyJJZGVudGl0eUNyZWRlbnRpYWwiaW4gd2luZG93JiZfLlVhKCJDaHJvbWl1bSIpPj0xMjM/KGE9e2NvbmZpZ1VSTDpfLkkoImVuYWJsZV9mZWRjbV9jb25maWdfc3BsaXQiKT90aGlzLmpiOnRoaXMuSCxjbGllbnRJZDpkLGFjY291bnRIaW50OmF9LHdpbmRvdy5JZGVudGl0eUNyZWRlbnRpYWwuZGlzY29ubmVjdChhKS50aGVuKGZ1bmN0aW9uKCl7Yy5zdWNjZXNzZnVsPSEwO18uRigic2V0IHJlc3VsdCBzdWNjZXNzZnVsIHRvOiAnICsgIishIWMuc3VjY2Vzc2Z1bCk7YiYmYihjKX0sZnVuY3Rpb24oZSl7Xy5IKCJGZWRDTSBkaXNjb25uZWN0IGZhaWxlZCB3aXRoIGVycm9yOiAiK0pTT04uc3RyaW5naWZ5KGUpKTtjLmVycm9yPSJmZWRjbV9kaXNjb25uZWN0X2ZhaWxlZDogIitKU09OLnN0cmluZ2lmeShlKTtiJiZiKGMpfSkpOihhPXtjbGllbnRfaWQ6ZCwKaGludDphfSx0aGlzLmwmJihhLmFzPXRoaXMubCksY3ModGhpcy5EZSxhLGZ1bmN0aW9uKGUpe2lmKGUmJmUhPT0ibnVsbCIpe2lmKGU9UHQoSlNPTi5zdHJpbmdpZnkoXy5vayhlKSkpLGMuc3VjY2Vzc2Z1bD0hIV8uUGsoZSwzKSxfLkYoIlJldm9rZSBYSFIgc3RhdHVzOiAiKyEhYy5zdWNjZXNzZnVsKSwhYy5zdWNjZXNzZnVsKWlmKF8uVmUoZSxfLnpoLDIpKXtlPV8uTShlLF8uemgsMik7Xy5uaChlKTtzd2l0Y2goXy5PKGUsMSkpe2Nhc2UgMTpjYXNlIDI6ZT0ib3B0X291dF9vcl9ub19zZXNzaW9uIjticmVhaztjYXNlIDM6ZT0iY2xpZW50X25vdF9mb3VuZCI7YnJlYWs7Y2FzZSA0OmU9ImNsaWVudF9ub3RfYWxsb3dlZCI7YnJlYWs7Y2FzZSA1OmU9ImludmFsaWRfb3JpZ2luIjticmVhaztjYXNlIDY6ZT0iY3Jvc3Nfb3JpZ2luX3JlcXVlc3Rfbm90X2FsbG93ZWQiO2JyZWFrO2Nhc2UgNzplPSJzZWN1cmVfaHR0cF9yZXF1aXJlZCI7YnJlYWs7Y2FzZSA4OmU9ImludmFsaWRfcGFyYW1ldGVyIjsKYnJlYWs7Y2FzZSA5OmU9ImJyb3dzZXJfbm90X3N1cHBvcnRlZCI7YnJlYWs7Y2FzZSAxMjplPSJ3ZWJfdmlld19ub3Rfc3VwcG9ydGVkIjticmVhaztkZWZhdWx0OmU9InVua25vd25fZXJyb3IifWMuZXJyb3I9ZX1lbHNlIGMuZXJyb3I9InVua25vd25fZXJyb3IifWVsc2UgXy5IKCJJbnZhbGlkIHJlc3BvbnNlIGlzIHJldHVybmVkIGZvciByZXZva2UgcmVxdWVzdC4iKSxjLmVycm9yPSJpbnZhbGlkX3Jlc3BvbnNlIjtiJiZiKGMpfSkpOihfLkgoIkZhaWxlZCB0byByZXZva2UuIE1pc3NpbmcgY29uZmlnIHBhcmFtZXRlciBjbGllbnRfaWQuIiksYiYmKGMuZXJyb3I9Im1pc3NpbmdfY2xpZW50X2lkIixiKGMpKSl9O3ZhciBTdT1mdW5jdGlvbihhLGIsYyl7KGM9PT12b2lkIDA/MDpjKSYmYS5WJiYoYj9hLlYuc2V0KCJsbCIsYik6YS5WLmdiKCJsbCIpKTtfLnRrKGIpfTt2YXIgVHM9e2NsaWVudF9pZDoic3RyIixhdXRvX3NlbGVjdDoiYm9vbCIsYnV0dG9uX2F1dG9fc2VsZWN0OiJib29sIix1eF9tb2RlOiJzdHIiLHVpX21vZGU6InN0ciIsY29sb3Jfc2NoZW1lOiJzdHIiLGNvbnRleHQ6InN0ciIsbm9uY2U6InN0ciIsaGQ6InN0ciIsaG9zdGVkX2RvbWFpbjoic3RyIixsb2dpbl9oaW50OiJzdHIiLGhpbnQ6InN0ciIsbG9naW5fdXJpOiJzdHIiLGV4aXN0aW5nOiJib29sIixzcGVjaWFsX2FjY291bnRzOiJib29sIixzdGF0ZToic3RyIixkaXNhYmxlX2F1dG9fZm9jdXM6ImJvb2wiLGxvZ19sZXZlbDoic3RyIixjYWxsYmFjazoiZnVuYyIscHJvbXB0X3BhcmVudF9pZDoic3RyIixwcm9tcHRfbGlmZXRpbWVfc2VjOiJudW0iLGNhbmNlbF9vbl90YXBfb3V0c2lkZToiYm9vbCIsc3RhdGVfY29va2llX2RvbWFpbjoic3RyIixpdHBfc3VwcG9ydDoiYm9vbCIsaXRwX21vZGU6InN0ciIsdXNlX2ZlZGNtX2Zvcl9wcm9tcHQ6ImJvb2wiLHVzZV9mZWRjbV9mb3JfYnV0dG9uOiJib29sIiwKcnJtX2ludGVyb3A6ImJvb2wiLHJybV9pZnJhbWVfcGF0aDoic3RyIixlc3NlbnRpYWxfY2xhaW1zOiJjbGFpbXMiLG5hdGl2ZV9jYWxsYmFjazoiZnVuYyIsbW9tZW50X2NhbGxiYWNrOiJmdW5jIixpbnRlcm1lZGlhdGVfaWZyYW1lX2Nsb3NlX2NhbGxiYWNrOiJmdW5jIixhdXRvX3Byb21wdDoiYm9vbCIsYWxsb3dlZF9wYXJlbnRfb3JpZ2luOiJzdHIiLGxpYnJhcnlfbmFtZToic3RyIixuYXRpdmVfbG9naW5fdXJpOiJzdHIiLG5hdGl2ZV9pZF9wYXJhbToic3RyIixuYXRpdmVfcGFzc3dvcmRfcGFyYW06InN0ciIsc2tpcF9wcm9tcHRfY29va2llOiJzdHIifSxVcz1PYmplY3Qua2V5cyhUcyksWHM9e3BhcmVudF9pZDoic3RyIixzaXplOiJzdHIiLHRoZW1lOiJzdHIiLHRleHQ6InN0ciIsc2hhcGU6InN0ciIsd2lkdGg6Im51bSIsbWluX3dpZHRoOiJudW0iLGxvZ29fYWxpZ25tZW50OiJzdHIiLHR5cGU6InN0ciIsbG9jYWxlOiJzdHIiLG5vbmNlOiJzdHIiLHN0YXRlOiJzdHIiLApjbGlja19saXN0ZW5lcjoiZnVuYyJ9O3ZhciAkcz1mdW5jdGlvbihhKXthPU9iamVjdC5hc3NpZ24oe30sd2luZG93Ll9fR19JRF9PUFRJT05TX18sYSk7Xy5SdS5jYWxsKHRoaXMsYSk7dGhpcy5sYT1hJiZhLm5hdGl2ZV9jYWxsYmFjaztfLkkoImVuYWJsZV9pbnRlcm1lZGlhdGVfaWZyYW1lIikmJih0aGlzLmg9YSYmYS5hbGxvd2VkX3BhcmVudF9vcmlnaW4pO3RoaXMuS2M9ITE7dGhpcy5iYT0hIXRoaXMuaDt0aGlzLndjPWEmJmEuaW50ZXJtZWRpYXRlX2lmcmFtZV9jbG9zZV9jYWxsYmFjaztpZih0aGlzLmgmJnRoaXMuaClpZih0eXBlb2YgdGhpcy5oPT09InN0cmluZyIpe2lmKCFocyh0aGlzLmgpKXRocm93IEVycm9yKCJUYSIpO31lbHNlIGlmKEFycmF5LmlzQXJyYXkodGhpcy5oKSlmb3IoYT0wO2E8dGhpcy5oLmxlbmd0aDthKyspaWYodHlwZW9mIHRoaXMuaFthXSE9PSJzdHJpbmcifHwhaHModGhpcy5oW2FdKSl0aHJvdyBFcnJvcigiVWEiKTt9O18uSigkcyxfLlJ1KTsKJHMucHJvdG90eXBlLlVjPWZ1bmN0aW9uKGEpe3RoaXMubGE9YS5uYXRpdmVfY2FsbGJhY2t9OyRzLnByb3RvdHlwZS5qPWZ1bmN0aW9uKGEpe18uRSgiUHJvbXB0IHdpbGwgbm90IGJlIGRpc3BsYXllZCIpO3RoaXMubGEmJnB2KHRoaXMpO18uUnUucHJvdG90eXBlLmouY2FsbCh0aGlzLGEpfTt2YXIgcHY9ZnVuY3Rpb24oYSl7YS5LY3x8KGEuS2M9ITAsImNyZWRlbnRpYWxzImluIG5hdmlnYXRvciYmbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCh7cGFzc3dvcmQ6ITAsbWVkaWF0aW9uOiJyZXF1aXJlZCJ9KS50aGVuKGZ1bmN0aW9uKGIpe2EubGEmJmEubGEoYil9KSl9Owokcy5wcm90b3R5cGUudmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7dGhpcy5iYSYmdGhpcy5oPyhfLkUoIlZlcmlmeWluZyBwYXJlbnQgb3JpZ2luLiIpLF8ub3IodGhpcy5oLGZ1bmN0aW9uKCl7Xy5mcj9fLmdyKHtjb21tYW5kOiJzZXRfdWlfbW9kZSIsbW9kZTpkLkx9KTpfLkcoIlNldCB1aSBtb2RlIGNvbW1hbmQgd2FzIG5vdCBzZW50IGR1ZSB0byBtaXNzaW5nIHZlcmlmaWVkIHBhcmVudCBvcmlnaW4uIik7Xy55cighMSk7ZC5hZD0hMTtfLlJ1LnByb3RvdHlwZS52YS5jYWxsKGQsYSxiLGMpfSkpOl8uUnUucHJvdG90eXBlLnZhLmNhbGwodGhpcyxhLGIsYyl9Owokcy5wcm90b3R5cGUuT2E9ZnVuY3Rpb24oYSl7Xy5SdS5wcm90b3R5cGUuT2EuY2FsbCh0aGlzLGEpO2lmKHRoaXMuYmEmJmEuZGF0YSYmYS5kYXRhLnR5cGUpc3dpdGNoKGEuZGF0YS50eXBlKXtjYXNlICJyZXNwb25zZSI6YS5kYXRhLnJlc3BvbnNlJiZhLmRhdGEucmVzcG9uc2UuY3JlZGVudGlhbCYmKHRoaXMuYWQ9ITAsXy53cigwKSk7YnJlYWs7Y2FzZSAiY29tbWFuZCI6c3dpdGNoKGEuZGF0YS5jb21tYW5kKXtjYXNlICJjbG9zZSI6dGhpcy5hZD9fLndyKDApOnRoaXMud2M/KF8ud3IoMCksdGhpcy53YygpKTpfLnhyKCk7YnJlYWs7Y2FzZSAicmVzaXplIjphPWEuZGF0YS5oZWlnaHQ7dHlwZW9mIGE9PT0ibnVtYmVyIiYmIWlzTmFOKGEpJiZhPjAmJl8ud3IoYSk7YnJlYWs7Y2FzZSAiY2FuY2VsX3Byb3RlY3Rfc3RhcnQiOl8ueXIoITEpO2JyZWFrO2Nhc2UgImNhbmNlbF9wcm90ZWN0X2VuZCI6Xy55cih0aGlzLmhiKX19fTsKJHMucHJvdG90eXBlLmJkPWZ1bmN0aW9uKGEpe3RoaXMuRD15cyh0aGlzLmNvbnRhaW5lcixhLHRoaXMuTD09PSJib3R0b21fc2hlZXQiLHRoaXMuYmEpfTskcy5wcm90b3R5cGUuTWM9ZnVuY3Rpb24oYSl7aWYodGhpcy5iYSlzd2l0Y2goXy51cil7Y2FzZSAiaW50ZXJtZWRpYXRlX2NsaWVudCI6YS5mbG93X3R5cGU9MTticmVhaztjYXNlICJhbXBfY2xpZW50IjphLmZsb3dfdHlwZT0yfX07dmFyIFpzPXdpbmRvdzsoZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2RvY3VtZW50LnJlYWR5U3RhdGU6YTthIT09ImxvYWRpbmciPyhqdCgpLGx0KCkpOl8uWGYoZG9jdW1lbnQsIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKCl7anQoKTtsdCgpfSwhMSl9KSgpO18uSygiZ29vZ2xlLmFjY291bnRzLmlkLmNhbmNlbCIsZnVuY3Rpb24oKXt2YXIgYT1acy5fX0dfSURfQ0xJRU5UX187YSYmVXUoYSwhMCkmJihhdihhLCJjYW5jZWxfY2FsbGVkIiksTHMoKSYmWHIoImZsb3dDYW5jZWxsZWQiKSl9KTtfLksoImdvb2dsZS5hY2NvdW50cy5pZC5kaXNhYmxlQXV0b1NlbGVjdCIsaXQpO18uSygiZ29vZ2xlLmFjY291bnRzLmlkLmluaXRpYWxpemUiLGR0KTtfLksoImdvb2dsZS5hY2NvdW50cy5pZC5wcm9tcHQiLGV0KTtfLksoImdvb2dsZS5hY2NvdW50cy5pZC5Qcm9tcHRNb21lbnROb3RpZmljYXRpb24iLGd1KTtfLksoImdvb2dsZS5hY2NvdW50cy5pZC5yZW5kZXJCdXR0b24iLGd0KTsKXy5LKCJnb29nbGUuYWNjb3VudHMuaWQucmV2b2tlIixmdW5jdGlvbihhLGIpe3ZhciBjPVpzLl9fR19JRF9DTElFTlRfXztjP2MucmV2b2tlKGEsYik6Xy5IKCJBdHRlbXB0IHRvIGNhbGwgcmV2b2tlKCkgYmVmb3JlIGluaXRpYWxpemUoKS4iKX0pO18uSygiZ29vZ2xlLmFjY291bnRzLmlkLnN0b3JlQ3JlZGVudGlhbCIsZnVuY3Rpb24oYSxiKXsiY3JlZGVudGlhbHMiaW4gbmF2aWdhdG9yP25hdmlnYXRvci5jcmVkZW50aWFscy5zdG9yZShhKS50aGVuKGZ1bmN0aW9uKCl7YiYmYigpfSkuY2F0Y2goZnVuY3Rpb24oYyl7Xy5IKCJTdG9yZSBjcmVkZW50aWFsIGZhaWxlZDogIitKU09OLnN0cmluZ2lmeShjKSl9KTpiJiZiKCl9KTsKXy5LKCJnb29nbGUuYWNjb3VudHMuaWQuc2V0TG9nTGV2ZWwiLGZ1bmN0aW9uKGEpe3ZhciBiPVpzLl9fR19JRF9DTElFTlRfXztifHwoZHQoKSxiPVpzLl9fR19JRF9DTElFTlRfXyk7YT1hP2EudG9Mb3dlckNhc2UoKTp2b2lkIDA7YT09PXZvaWQgMHx8KDAsXy5hYikodnQsYSk+PTA/U3UoYixhLCEwKTooXy5IKCJMb2cgbGV2ZWwgaXMgaW52YWxpZC4gU3VwcG9ydGVkIGxvZyBsZXZlbHMgYXJlOiBpbmZvLCB3YXJuLCBlcnJvci4gTG9nIGxldmVsIHNldCB0byB3YXJuIGJ5IGRlZmF1bHQiKSxTdShiLHZvaWQgMCwhMCkpfSk7dmFyIHF2PW5ldyBfLnJmKCJnX2F1dGhfY29kZV93aW5kb3ciKSxydj1mdW5jdGlvbihhKXtfLnJnLmNhbGwodGhpcywiY29kZSIsYSk7dGhpcy5jYWxsYmFjaz1hLmNhbGxiYWNrO3RoaXMuVD1fLkJkKGEpO18uRigiSW5zdGFudGlhdGVkLiIsIkNPREVfQ0xJRU5UIil9O18uSihydixfLnJnKTtydi5wcm90b3R5cGUuaT1mdW5jdGlvbihhKXtfLkYoIkhhbmRsaW5nIHJlc3BvbnNlLiAiK0pTT04uc3RyaW5naWZ5KGEpLCJDT0RFX0NMSUVOVCIpO18ucmcucHJvdG90eXBlLmkuY2FsbCh0aGlzLGEpO3RoaXMuY2FsbGJhY2smJnRoaXMuY2FsbGJhY2suY2FsbCh0aGlzLGEpfTsKcnYucHJvdG90eXBlLnJlcXVlc3RDb2RlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy51O3RoaXMuVD09PSJyZWRpcmVjdCI/KF8uRigiU3RhcnRpbmcgcmVkaXJlY3QgZmxvdy4iLCJDT0RFX0NMSUVOVCIpLGE9cnModGhpcy5qLHRoaXMubCxhKSxfLlhjKGEpKTooXy5GKCJTdGFydGluZyBwb3B1cCBmbG93LiIsIkNPREVfQ0xJRU5UIiksXy5zZyh0aGlzKSxfLnRnKHRoaXMsYSksXy5JKCJlbmFibGVfdHJhbnNmb3JtX2Zsb3dfZm9yX2F1dGh6IikmJm90KHRoaXMsYSksXy5JKCJlbmFibGVfbGFyZ2VfcG9wdXBfaGVpZ2h0Iik/KGEuZ2lzbHA9IjEiLGEudXBzdHJlYW1fZXhwZXJpbWVudF9pZD0iMTE3Nzg4NjM2Iik6Xy5JKCJlbmFibGVfbGFyZ2VfcG9wdXBfaGVpZ2h0X2NvbnRyb2wiKSYmKGEuZ2lzbHA9IjAiLGEudXBzdHJlYW1fZXhwZXJpbWVudF9pZD0iMTE3Nzg4NjM1IiksdGhpcy5nPV8uSmQocnModGhpcy5qLHRoaXMubCxhKSxxdixfLkhkKCkpLCF0aGlzLmcmJnRoaXMuZXJyb3JfY2FsbGJhY2s/CnRoaXMuZXJyb3JfY2FsbGJhY2sobmV3IF8uQ2QoIkZhaWxlZCB0byBvcGVuIHBvcHVwIHdpbmRvdyIsInBvcHVwX2ZhaWxlZF90b19vcGVuIikpOl8udWcodGhpcykpfTt2YXIgc3Y9bmV3IF8ucmYoImdfYXV0aF90b2tlbl93aW5kb3ciKSx0dj13aW5kb3csdXY9ZnVuY3Rpb24oYSl7Xy5yZy5jYWxsKHRoaXMsInRva2VuIixhKTt0aGlzLmNhbGxiYWNrPWEuY2FsbGJhY2s7Xy5GKCJJbnN0YW50aWF0ZWQuIiwiVE9LRU5fQ0xJRU5UIil9O18uSih1dixfLnJnKTsKdXYucHJvdG90eXBlLmk9ZnVuY3Rpb24oYSl7Xy5GKCJIYW5kbGluZyByZXNwb25zZS4gIitKU09OLnN0cmluZ2lmeShhKSwiVE9LRU5fQ0xJRU5UIik7Xy5yZy5wcm90b3R5cGUuaS5jYWxsKHRoaXMsYSk7Xy5GKCJUcnlpbmcgdG8gc2V0IGdhcGkgY2xpZW50IHRva2VuLiIsIlRPS0VOX0NMSUVOVCIpO2lmKGEuYWNjZXNzX3Rva2VuKWlmKHR2LmdhcGkmJnR2LmdhcGkuY2xpZW50JiZ0di5nYXBpLmNsaWVudC5zZXRUb2tlbil0cnl7dHYuZ2FwaS5jbGllbnQuc2V0VG9rZW4uY2FsbCh0aGlzLGEpfWNhdGNoKGIpe18uSCgiU2V0IHRva2VuIGZhaWxlZC4gRXhjZXB0aW9uIGVuY291bnRlcmVkLiIsIlRPS0VOX0NMSUVOVCIpLGNvbnNvbGUuTmIoYil9ZWxzZSBfLkYoIlRoZSBPQXV0aCB0b2tlbiB3YXMgbm90IHBhc3NlZCB0byBnYXBpLmNsaWVudCwgc2luY2UgdGhlIGdhcGkuY2xpZW50IGxpYnJhcnkgaXMgbm90IGxvYWRlZCBpbiB5b3VyIHBhZ2UuIiwiVE9LRU5fQ0xJRU5UIik7CmVsc2UgXy5HKCJTZXQgdG9rZW4gZmFpbGVkLiBObyBhY2Nlc3MgdG9rZW4gaW4gcmVzcG9uc2UuIiwiVE9LRU5fQ0xJRU5UIik7dGhpcy5jYWxsYmFjayYmdGhpcy5jYWxsYmFjay5jYWxsKHRoaXMsYSl9Owp1di5wcm90b3R5cGUucmVxdWVzdEFjY2Vzc1Rva2VuPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMudTthPWF8fHt9O2EubG9naW5faGludD1hLmxvZ2luX2hpbnR8fGEuaGludDthLmVuYWJsZV9ncmFudWxhcl9jb25zZW50PWEuZW5hYmxlX2dyYW51bGFyX2NvbnNlbnQ9PT12b2lkIDA/YS5lbmFibGVfc2VyaWFsX2NvbnNlbnQ6YS5lbmFibGVfZ3JhbnVsYXJfY29uc2VudDtiPV8uRGQodGhpcy5qLHtjbGllbnRfaWQ6Yi5jbGllbnRfaWQsc2NvcGU6YS5zY29wZT09PXZvaWQgMD9iLnNjb3BlOmEuc2NvcGUscHJvbXB0OmEucHJvbXB0PT09dm9pZCAwP2IucHJvbXB0OmEucHJvbXB0LGxvZ2luX2hpbnQ6YS5sb2dpbl9oaW50PT09dm9pZCAwP2IubG9naW5faGludDphLmxvZ2luX2hpbnQsc3RhdGU6YS5zdGF0ZT09PXZvaWQgMD9iLnN0YXRlOmEuc3RhdGUsaGQ6Yi5oZCxpbmNsdWRlX2dyYW50ZWRfc2NvcGVzOmEuaW5jbHVkZV9ncmFudGVkX3Njb3Blcz09PXZvaWQgMD9iLmluY2x1ZGVfZ3JhbnRlZF9zY29wZXM6CmEuaW5jbHVkZV9ncmFudGVkX3Njb3BlcyxlbmFibGVfZ3JhbnVsYXJfY29uc2VudDphLmVuYWJsZV9ncmFudWxhcl9jb25zZW50PT09dm9pZCAwP2IuZW5hYmxlX2dyYW51bGFyX2NvbnNlbnQ6YS5lbmFibGVfZ3JhbnVsYXJfY29uc2VudCx0cmlnZ2VyX29uZXBpY2s6Yi50cmlnZ2VyX29uZXBpY2ssYWxsb3dfbXVsdGlwbGU6Yi5hbGxvd19tdWx0aXBsZSxhbGxvd19mb2xkZXJfc2VsZWN0aW9uOmIuYWxsb3dfZm9sZGVyX3NlbGVjdGlvbixmaWxlX2lkczpiLmZpbGVfaWRzLG1pbWV0eXBlczpiLm1pbWV0eXBlcyxpbmNsdWRlX2lkX3Rva2VuOmEuaW5jbHVkZV9pZF90b2tlbj09PXZvaWQgMD9iLmluY2x1ZGVfaWRfdG9rZW46YS5pbmNsdWRlX2lkX3Rva2VuLG5vbmNlOmEubm9uY2U9PT12b2lkIDA/Yi5ub25jZTphLm5vbmNlfSk7Xy5GKCJTdGFydGluZyBwb3B1cCBmbG93LiIsIlRPS0VOX0NMSUVOVCIpO18uc2codGhpcyk7Xy50Zyh0aGlzLGIpO18uSSgiZW5hYmxlX3RyYW5zZm9ybV9mbG93X2Zvcl9hdXRoeiIpJiYKb3QodGhpcyxiKTtfLkkoImVuYWJsZV9sYXJnZV9wb3B1cF9oZWlnaHQiKT8oYi5naXNscD0iMSIsYi51cHN0cmVhbV9leHBlcmltZW50X2lkPSIxMTc3ODg2MzYiKTpfLkkoImVuYWJsZV9sYXJnZV9wb3B1cF9oZWlnaHRfY29udHJvbCIpJiYoYi5naXNscD0iMCIsYi51cHN0cmVhbV9leHBlcmltZW50X2lkPSIxMTc3ODg2MzUiKTt0aGlzLmc9Xy5KZChycyh0aGlzLmosdGhpcy5sLGIpLHN2LF8uSGQoKSk7IXRoaXMuZyYmdGhpcy5lcnJvcl9jYWxsYmFjaz90aGlzLmVycm9yX2NhbGxiYWNrKG5ldyBfLkNkKCJGYWlsZWQgdG8gb3BlbiBwb3B1cCB3aW5kb3ciLCJwb3B1cF9mYWlsZWRfdG9fb3BlbiIpKTpfLnVnKHRoaXMpfTtfLksoImdvb2dsZS5hY2NvdW50cy5vYXV0aDIuR29vZ2xlSWRlbnRpdHlTZXJ2aWNlc0Vycm9yIixfLkNkKTtfLksoImdvb2dsZS5hY2NvdW50cy5vYXV0aDIuR29vZ2xlSWRlbnRpdHlTZXJ2aWNlc0Vycm9yVHlwZSIse1VlOiJ1bmtub3duIixQZToibWlzc2luZ19yZXF1aXJlZF9wYXJhbWV0ZXIiLFJlOiJwb3B1cF9mYWlsZWRfdG9fb3BlbiIsUWU6InBvcHVwX2Nsb3NlZCJ9KTtfLksoImdvb2dsZS5hY2NvdW50cy5vYXV0aDIuaW5pdENvZGVDbGllbnQiLGZ1bmN0aW9uKGEpe3JldHVybiBuZXcgcnYoYSl9KTtfLksoImdvb2dsZS5hY2NvdW50cy5vYXV0aDIuQ29kZUNsaWVudCIscnYpO18uSygiZ29vZ2xlLmFjY291bnRzLm9hdXRoMi5pbml0VG9rZW5DbGllbnQiLGZ1bmN0aW9uKGEpe3JldHVybiBuZXcgdXYoYSl9KTtfLksoImdvb2dsZS5hY2NvdW50cy5vYXV0aDIuVG9rZW5DbGllbnQiLHV2KTsKXy5LKCJnb29nbGUuYWNjb3VudHMub2F1dGgyLmhhc0dyYW50ZWRBbGxTY29wZXMiLGZ1bmN0aW9uKGEpe3ZhciBiPVZyLmFwcGx5KDEsYXJndW1lbnRzKSxjPW50KGEpO3JldHVybiBjJiZjLmxlbmd0aD8oYj1tdC5hcHBseShudWxsLF8uTWQoYikpKSYmYi5sZW5ndGg/KDAsXy5oZSkoYixmdW5jdGlvbihkKXtyZXR1cm4oMCxfLmFiKShjLGQpPj0wfSk6ITE6ITF9KTtfLksoImdvb2dsZS5hY2NvdW50cy5vYXV0aDIuaGFzR3JhbnRlZEFueVNjb3BlIixmdW5jdGlvbihhKXt2YXIgYj1Wci5hcHBseSgxLGFyZ3VtZW50cyksYz1udChhKTtyZXR1cm4gYyYmYy5sZW5ndGg/KGI9bXQuYXBwbHkobnVsbCxfLk1kKGIpKSkmJmIubGVuZ3RoPygwLF8uZ2UpKGIsZnVuY3Rpb24oZCl7cmV0dXJuKDAsXy5hYikoYyxkKT49MH0pOiExOiExfSk7Cl8uSygiZ29vZ2xlLmFjY291bnRzLm9hdXRoMi5yZXZva2UiLGZ1bmN0aW9uKGEsYil7Xy5FKCJSZXZva2UgcmVxdWVzdCBpbml0aWF0ZWQiKTthPXt0b2tlbjphfTtfLkUoIk1ha2luZyByZXZva2UgcmVxdWVzdCB3aXRob3V0IGNyZWRlbnRpYWxzLiIpO2JzKCJodHRwczovL29hdXRoMi5nb29nbGVhcGlzLmNvbS9yZXZva2UiLGEsITEsZnVuY3Rpb24oYyl7YiYmKF8uRigiY2FsbGJhY2sgd2l0aCByZXNwb25zZTogIitjKSxjPWM/SlNPTi5wYXJzZShjKTp7fSxjLnN1Y2Nlc3NmdWw9IWMuZXJyb3IsYihjKSl9KX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkuY2FsbCh0aGlzLHRoaXMuZGVmYXVsdF9nc2kpOwovLyBHb29nbGUgSW5jLgoKKCgpID0+IHtjb25zdCBoZWFkID0gZG9jdW1lbnQuaGVhZDsgY29uc3QgY3NzID0gIi5xSlRITVx4N2ItbW96LXVzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO2NvbG9yOiMyMDIxMjQ7ZGlyZWN0aW9uOmx0cjstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTtmb250LWZhbWlseTpSb2JvdG8tUmVndWxhcixhcmlhbCxzYW5zLXNlcmlmOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbjowO292ZXJmbG93OmhpZGRlbjstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJVx4N2QueW5STG5jXHg3YmxlZnQ6LTk5OTlweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTk5OTlweFx4N2QuTDZjVGNlXHg3YmRpc3BsYXk6bm9uZVx4N2QuYmx0V0JiXHg3Ym92ZXJmbG93LXdyYXA6YnJlYWstd29yZDt3b3JkLWJyZWFrOmJyZWFrLXdvcmRceDdkLmhTUkdQZFx4N2Jjb2xvcjojMWE3M2U4O2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWRlY29yYXRpb246bm9uZVx4N2QuQnoxMTJjLVczbEdwXHg3YmhlaWdodDoxNnB4O3dpZHRoOjE2cHhceDdkLkJ6MTEyYy1FM0R5WWRceDdiaGVpZ2h0OjIwcHg7d2lkdGg6MjBweFx4N2QuQnoxMTJjLXI5b1BpZlx4N2JoZWlnaHQ6MjRweDt3aWR0aDoyNHB4XHg3ZC5CejExMmMtdTJ6NUtceDdiaGVpZ2h0OjM2cHg7d2lkdGg6MzZweFx4N2QuQnoxMTJjLXVheEw0ZVx4N2Jib3JkZXItcmFkaXVzOjEwcHhceDdkLkxnYnNTZS1CejExMmNceDdiZGlzcGxheTpibG9ja1x4N2QuUzlnVXJmLVlvWjRqZlx4N2Jib3JkZXI6bm9uZTttYXJnaW46MDtwYWRkaW5nOjBceDdkLlM5Z1VyZi1Zb1o0amYgKlx4N2Jib3JkZXI6bm9uZTttYXJnaW46MDtwYWRkaW5nOjBceDdkLmZGVzd3Yy1pYm5DNmJceDNlLmFaMndFZVx4M2VkaXZceDdiYm9yZGVyLWNvbG9yOiM0Mjg1ZjRceDdkLlAxZWtTZS1aTXYzdVx4N2J0cmFuc2l0aW9uOmhlaWdodCAuMnMgbGluZWFyXHg3ZC5QMWVrU2UtWk12M3VceDNlZGl2OmZpcnN0LWNoaWxkXHg3YmJhY2tncm91bmQtY29sb3I6IzFhNzNlOCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjp3aWR0aCAuM3MgbGluZWFyXHg3ZC5QMWVrU2UtWk12M3VceDNlZGl2Om50aC1jaGlsZCgyKVx4N2JiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg5MGRlZyxyZ2JhKDI1NSwyNTUsMjU1LC43KSxyZ2JhKDI1NSwyNTUsMjU1LC43KSksbGluZWFyLWdyYWRpZW50KDkwZGVnLCMxYTczZTgsIzFhNzNlOCkhaW1wb3J0YW50XHg3ZC5QMWVrU2UtWk12M3VceDNlZGl2Om50aC1jaGlsZCgzKVx4N2JiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg5MGRlZyxyZ2JhKDI1NSwyNTUsMjU1LC43KSxyZ2JhKDI1NSwyNTUsMjU1LC43KSksbGluZWFyLWdyYWRpZW50KDkwZGVnLCMxYTczZTgsIzFhNzNlOCkhaW1wb3J0YW50XHg3ZC5oYUFjbGZceDdiZGlzcGxheTppbmxpbmUtYmxvY2tceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2VceDdiYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMjE4cyxib3JkZXItY29sb3IgLjIxOHM7LW1vei11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgI2RhZGNlMDtjb2xvcjojM2M0MDQzO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5Okdvb2dsZSBTYW5zLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOi44NzVyZW07aGVpZ2h0OjQwcHg7bGV0dGVyLXNwYWNpbmc6LjI1cHg7b3V0bGluZTpub25lO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjAgMTJweDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOmF1dG9ceDdkQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSlceDdiLm5zbTdCYi1IelY3bS1MZ2JzU2VceDdiYm9yZGVyOjJweCBzb2xpZCB3aW5kb3dUZXh0O2NvbG9yOndpbmRvd1RleHRceDdkXHg3ZEBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJlcy1jb250cmFzdDptb3JlKVx4N2IubnNtN0JiLUh6VjdtLUxnYnNTZVx4N2Jjb2xvcjojMDAwXHg3ZFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5wU3pPUC1TeFF1U2VceDdiZm9udC1zaXplOi44NzVyZW07aGVpZ2h0OjMycHg7bGV0dGVyLXNwYWNpbmc6LjI1cHg7cGFkZGluZzowIDEwcHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UucHVyWlQtU3hRdVNlXHg3YmZvbnQtc2l6ZTouNjg3NXJlbTtoZWlnaHQ6MjBweDtsZXR0ZXItc3BhY2luZzouM3B4O3BhZGRpbmc6MCA4cHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuQnoxMTJjLUxnYnNTZVx4N2JwYWRkaW5nOjA7d2lkdGg6NDBweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5CejExMmMtTGdic1NlLnBTek9QLVN4UXVTZVx4N2J3aWR0aDozMnB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLkJ6MTEyYy1MZ2JzU2UucHVyWlQtU3hRdVNlXHg3YndpZHRoOjIwcHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuSkdjcEwtUmJSektceDdiYm9yZGVyLXJhZGl1czoyMHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLkpHY3BMLVJiUnpLLnBTek9QLVN4UXVTZVx4N2Jib3JkZXItcmFkaXVzOjE2cHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuSkdjcEwtUmJSeksucHVyWlQtU3hRdVNlXHg3YmJvcmRlci1yYWRpdXM6MTBweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5pNXZ0NmUtdG85MTUtSWE3UWZjXHg3YmJvcmRlcjoxcHggc29saWQgIzhlOTE4ZjtiYWNrZ3JvdW5kLWNvbG9yOiMxMzEzMTQ7Y29sb3I6I2UzZTNlM1x4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5NRlM0YmUtSWE3UWZjXHg3YmJvcmRlcjpub25lO2NvbG9yOiNmZmZceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuTUZTNGJlLXYzcFpiZi1JYTdRZmNceDdiYmFja2dyb3VuZC1jb2xvcjojMWE3M2U4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLk1GUzRiZS1KYVBWMmItSWE3UWZjXHg3YmJhY2tncm91bmQtY29sb3I6IzIwMjEyNDtjb2xvcjojZThlYWVkXHg3ZEBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbnRyYXN0Om1vcmUpXHg3Yi5uc203QmItSHpWN20tTGdic1NlLk1GUzRiZS1KYVBWMmItSWE3UWZjXHg3YmNvbG9yOiNmZmZceDdkXHg3ZC5uc203QmItSHpWN20tTGdic1NlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyY1x4N2JoZWlnaHQ6MThweDttYXJnaW4tcmlnaHQ6OHB4O21pbi13aWR0aDoxOHB4O3dpZHRoOjE4cHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UucFN6T1AtU3hRdVNlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyY1x4N2JoZWlnaHQ6MTRweDttaW4td2lkdGg6MTRweDt3aWR0aDoxNHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLnB1clpULVN4UXVTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmNceDdiaGVpZ2h0OjEwcHg7bWluLXdpZHRoOjEwcHg7d2lkdGg6MTBweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjXHg3Ym1hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6LTRweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5CejExMmMtTGdic1NlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyY1x4N2JtYXJnaW46MDtwYWRkaW5nOjEwcHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuQnoxMTJjLUxnYnNTZS5wU3pPUC1TeFF1U2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjXHg3YnBhZGRpbmc6OHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLkJ6MTEyYy1MZ2JzU2UucHVyWlQtU3hRdVNlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyY1x4N2JwYWRkaW5nOjRweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMtaGFBY2xmXHg3YmJvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7aGVpZ2h0OjM2cHg7bWFyZ2luLWxlZnQ6LTEwcHg7bWFyZ2luLXJpZ2h0OjEycHg7bWluLXdpZHRoOjM2cHg7d2lkdGg6MzZweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMtaGFBY2xmIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYywubnNtN0JiLUh6VjdtLUxnYnNTZS5CejExMmMtTGdic1NlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGYgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjXHg3Ym1hcmdpbjowO3BhZGRpbmc6MFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5wU3pPUC1TeFF1U2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZlx4N2JoZWlnaHQ6MjhweDttYXJnaW4tbGVmdDotOHB4O21hcmdpbi1yaWdodDoxMHB4O21pbi13aWR0aDoyOHB4O3dpZHRoOjI4cHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UucHVyWlQtU3hRdVNlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGZceDdiaGVpZ2h0OjE2cHg7bWFyZ2luLWxlZnQ6LTZweDttYXJnaW4tcmlnaHQ6OHB4O21pbi13aWR0aDoxNnB4O3dpZHRoOjE2cHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuQnoxMTJjLUxnYnNTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMtaGFBY2xmXHg3YmJvcmRlci1yYWRpdXM6M3B4O21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MDtwYWRkaW5nOjBceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuSkdjcEwtUmJSeksgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZlx4N2Jib3JkZXItcmFkaXVzOjE4cHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UucFN6T1AtU3hRdVNlLkpHY3BMLVJiUnpLIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGZceDdiYm9yZGVyLXJhZGl1czoxNHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlLnB1clpULVN4UXVTZS5KR2NwTC1SYlJ6SyAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMtaGFBY2xmXHg3YmJvcmRlci1yYWRpdXM6OHB4XHg3ZC5uc203QmItSHpWN20tTGdic1NlIC5uc203QmItSHpWN20tTGdic1NlLWJOOTdQYy1zTTVNTmJceDdiZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleC13cmFwOm5vd3JhcDtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlXHg3ZC5uc203QmItSHpWN20tTGdic1NlIC5vWHRmQmUtbDRlSFhceDdiLW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlclx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWRceDdiLW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO2ZvbnQtZmFtaWx5Okdvb2dsZSBTYW5zLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3ZlcnRpY2FsLWFsaWduOnRvcFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5wdXJaVC1TeFF1U2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkXHg3YmZvbnQtd2VpZ2h0OjMwMFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZSAub1h0ZkJlLWw0ZUhYIC5uc203QmItSHpWN20tTGdic1NlLUJQcldJZFx4N2ItbW96LWJveC1mbGV4OjA7ZmxleC1ncm93OjBceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlXHg3YnRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMjE4cztib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZTpmb2N1cywubnNtN0JiLUh6VjdtLUxnYnNTZTpob3Zlclx4N2Jib3gtc2hhZG93Om5vbmU7Ym9yZGVyLWNvbG9yOnJnYigyMTAsMjI3LDI1Mik7b3V0bGluZTpub25lXHg3ZC5uc203QmItSHpWN20tTGdic1NlOmZvY3VzLXdpdGhpblx4N2JvdXRsaW5lOjJweCBzb2xpZCAjMDA2MzliO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZTpob3ZlciAubnNtN0JiLUh6VjdtLUxnYnNTZS1NSm9CVmVceDdiYmFja2dyb3VuZDpyZ2JhKDY2LDEzMywyNDQsLjA4KVx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZTphY3RpdmUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlLC5uc203QmItSHpWN20tTGdic1NlOmZvY3VzIC5uc203QmItSHpWN20tTGdic1NlLU1Kb0JWZVx4N2JiYWNrZ3JvdW5kOnJnYmEoNjYsMTMzLDI0NCwuMSlceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuaTV2dDZlLXRvOTE1LUlhN1FmYzpob3ZlciAubnNtN0JiLUh6VjdtLUxnYnNTZS1NSm9CVmVceDdiYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wOClceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UuaTV2dDZlLXRvOTE1LUlhN1FmYzphY3RpdmUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlLC5uc203QmItSHpWN20tTGdic1NlLmk1dnQ2ZS10bzkxNS1JYTdRZmM6Zm9jdXMgLm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlXHg3YmJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTIpXHg3ZC5uc203QmItSHpWN20tTGdic1NlLk1GUzRiZS1JYTdRZmM6aG92ZXIgLm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlXHg3YmJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMjQpXHg3ZC5uc203QmItSHpWN20tTGdic1NlLk1GUzRiZS1JYTdRZmM6YWN0aXZlIC5uc203QmItSHpWN20tTGdic1NlLU1Kb0JWZSwubnNtN0JiLUh6VjdtLUxnYnNTZS5NRlM0YmUtSWE3UWZjOmZvY3VzIC5uc203QmItSHpWN20tTGdic1NlLU1Kb0JWZVx4N2JiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjMyKVx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZSAubjFVdVgtRGtmallceDdiYm9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjIwcHg7bWFyZ2luLWxlZnQ6LTRweDttYXJnaW4tcmlnaHQ6OHB4O21pbi13aWR0aDoyMHB4O3dpZHRoOjIwcHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlIC5uc203QmItSHpWN20tTGdic1NlLUJQcldJZFx4N2Jmb250LWZhbWlseTpSb2JvdG87Zm9udC1zaXplOjEycHg7dGV4dC1hbGlnbjpsZWZ0XHg3ZC5uc203QmItSHpWN20tTGdic1NlLmpWZVNFZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWQgLks0ZWZmZiAuZm1jbVMsLm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlIC5uc203QmItSHpWN20tTGdic1NlLUJQcldJZCAuc3NKUklmXHg3Ym92ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzXHg3ZC5uc203QmItSHpWN20tTGdic1NlLmpWZVNFZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWQgLks0ZWZmZlx4N2JkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiM1ZjYzNjg7ZmlsbDojNWY2MzY4O2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUuaTV2dDZlLXRvOTE1LUlhN1FmYyAubnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWQgLks0ZWZmZlx4N2Jjb2xvcjojYzRjN2M1O2ZpbGw6I2M0YzdjNVx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUuTUZTNGJlLUlhN1FmYyAubnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWQgLks0ZWZmZlx4N2Jjb2xvcjojZThlYWVkO2ZpbGw6I2U4ZWFlZFx4N2RAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb250cmFzdDptb3JlKVx4N2IubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIC5LNGVmZmYsLm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlLk1GUzRiZS1JYTdRZmMgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIC5LNGVmZmZceDdiY29sb3I6IzAwMDtmaWxsOiMwMDBceDdkXHg3ZC5uc203QmItSHpWN20tTGdic1NlLmpWZVNFZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWQgLks0ZWZmZiAuQnoxMTJjXHg3YmhlaWdodDoxOHB4O21hcmdpbjotM3B4IC0zcHggLTNweCAycHg7bWluLXdpZHRoOjE4cHg7d2lkdGg6MThweFx4N2QubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZlx4N2Jib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHg7bWFyZ2luLWxlZnQ6MTJweDttYXJnaW4tcmlnaHQ6LTEwcHhceDdkLm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlLkpHY3BMLVJiUnpLIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGZceDdiYm9yZGVyLXJhZGl1czoxOHB4XHg3ZC5MNUZvNmMtc001TU5iXHg3YmJvcmRlcjowO2Rpc3BsYXk6YmxvY2s7bGVmdDowO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDowXHg3ZC5MNUZvNmMtYkYxdVViXHg3YmJvcmRlci1yYWRpdXM6NHB4O2JvdHRvbTowO2N1cnNvcjpwb2ludGVyO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowXHg3ZC5MNUZvNmMtYkYxdVViOmZvY3VzXHg3YmJvcmRlcjpub25lO291dGxpbmU6bm9uZVx4N2RzZW50aW5lbFx4N2JceDdkIjsgY29uc3Qgc3R5bGVJZCA9ICdnb29nbGVpZGVudGl0eXNlcnZpY2VfYnV0dG9uX3N0eWxlcyc7IGlmIChoZWFkICYmIGNzcyAmJiAhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3R5bGVJZCkpIHtjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7IHN0eWxlLmlkID0gc3R5bGVJZDsgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7IGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0Lm5vbmNlKSBzdHlsZS5zZXRBdHRyaWJ1dGUoJ25vbmNlJywgZG9jdW1lbnQuY3VycmVudFNjcmlwdC5ub25jZSk7IGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO319KSgpOw=="}},"time_used":167,"timings":{"blocked":0,"dns":2,"connect":17,"send":0,"wait":120,"receive":0,"ssl":28},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_ZWJvuPrG.css","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.651Z","timestamp":1785108244651,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_ZWJvuPrG.css HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 384\r\nlast-modified: Mon, 01 Jun 2026 17:37:56 GMT\r\netag: \"748d6021e545909de2aa690dcf31a5f8\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 1a22e1ab5b2ff0e98d5eb7b20e352432.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: HEL51-P2\r\nx-amz-cf-id: X9jMJzbCpTQcE5hAD4iRvKqhW4VehFLFGy2_ajWHqpk-J-OLNs2YnQ==\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 4772345\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Y47JpKqF9K%2FRAN8C9d%2BUXd8As%2FZbIUZdq3v0J0QE%2FzsUhynLCf0NkeWW%2FInnwHpS0N4qpEJlfT4KCC5Nw9qjRB1rOjaN5o%2FSwZ1ZduOIAZSipDkbAL9sNYEQueu1lTXQaOg7614VS7IuywUhAzaM\"}]}\r\ncf-ray: a21727e11e880883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1336,"size_decoded":1547,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (1335)","md5":"61fa7b84270ad731e620cdb732cbdfc9","sha1":"b32f1be92c6d57e36645f7002926db24b380d4b1","sha256":"409984dc1a6382fd337e80238366543ea21219e6bb5ffbe8a3a247f1abf32dae","sha512":"7d0064c65db71a1d0eb278933435605b74e67f02217b4977b144ac9a09ab37ab1634ab5996cfb61afd228b0f49ffff252b3888f512d6d39f4f96acc7a11f0466","ssdeep":"","tlshash":"a021f5e4fc9c612f1c17a77d1734d4490062b2d06e22d32ebe692ba89ad87f73a4157c","first_seen":"2026-06-02T03:41:41.305208Z","last_seen":"2026-07-26T23:25:46.807557Z","times_seen":14,"resource_available":false,"data":"QGxheWVyIGNkc3sud3JhcHBlckNzcy13MWQ0OHFhMltkYXRhLWNvbG9yc2NoZW1lPWJsdWVde2NvbG9yOnJnYih2YXIoLS1ibHVlNjApKX0ud3JhcHBlckNzcy13MWQ0OHFhMltkYXRhLWNvbG9yc2NoZW1lPXRlYWxde2NvbG9yOnJnYih2YXIoLS10ZWFsNjApKX0ud3JhcHBlckNzcy13MWQ0OHFhMltkYXRhLWNvbG9yc2NoZW1lPXB1cnBsZV17Y29sb3I6cmdiKHZhcigtLXB1cnBsZTYwKSl9LndyYXBwZXJDc3MtdzFkNDhxYTJbZGF0YS1jb2xvcnNjaGVtZT1waW5rXXtjb2xvcjpyZ2IodmFyKC0tcGluazYwKSl9LndyYXBwZXJDc3MtdzFkNDhxYTJbZGF0YS1jb2xvcnNjaGVtZT1ncmVlbl17Y29sb3I6cmdiKHZhcigtLWdyZWVuNjApKX0ud3JhcHBlckNzcy13MWQ0OHFhMltkYXRhLWNvbG9yc2NoZW1lPWdyYXlde2NvbG9yOnJnYih2YXIoLS1ncmF5NjApKX0ud3JhcHBlckNzcy13MWQ0OHFhMltkYXRhLWNvbG9yc2NoZW1lPW9yYW5nZV17Y29sb3I6cmdiKHZhcigtLW9yYW5nZTYwKSl9LndyYXBwZXJDc3MtdzFkNDhxYTJbZGF0YS1jb2xvcnNjaGVtZT15ZWxsb3dde2NvbG9yOnJnYih2YXIoLS15ZWxsb3c2MCkpfS53cmFwcGVyQ3NzLXcxZDQ4cWEyW2RhdGEtY29sb3JzY2hlbWU9aW5kaWdvXXtjb2xvcjpyZ2IodmFyKC0taW5kaWdvNjApKX0ud3JhcHBlckNzcy13MWQ0OHFhMltkYXRhLWNvbG9yc2NoZW1lPXJlZF17Y29sb3I6cmdiKHZhcigtLXJlZDYwKSl9LndyYXBwZXJDc3MtdzFkNDhxYTJbZGF0YS1jb2xvcnNjaGVtZT1jaGFydHJldXNlXXtjb2xvcjpyZ2IodmFyKC0tY2hhcnRyZXVzZTYwKSl9LmF2YXRhckNzcy1hcnBnYTdse2JvcmRlcjpzb2xpZCAxcHggdmFyKC0tYXZhdGFyLWJvcmRlckNvbG9yKTtvdmVyZmxvdzpoaWRkZW59LmF2YXRhckNzcy1hcnBnYTdsW2RhdGEtYm9yZGVyZWQ9dHJ1ZV17Ym9yZGVyLXdpZHRoOjJweH0uYXZhdGFyQ3NzLWFycGdhN2xbZGF0YS1zZWxlY3RlZD10cnVlXXtib3gtc2hhZG93OjAgMCAwIDJweH0uYXZhdGFyQ3NzLWFycGdhN2xbZGF0YS1zaGFwZT1oZXhhZ29uXXtib3gtc2hhZG93Om5vbmU7Y2xpcC1wYXRoOnVybCgjY2RzLWhleGFnb24tYXZhdGFyLWNsaXBwZXIpO2JvcmRlcjpub25lfS5jaXJjbGUtY2Z2N3FtbXtib3JkZXItcmFkaXVzOjEwMCV9LnNxdWFyZS1zOTE3eXFte2JvcmRlci1yYWRpdXM6NHB4fS5oZXhhZ29uLWhzY2k5d257Ym9yZGVyLXJhZGl1czowfS5jb250ZW50V3JhcHBlckNzcy1jazZhMTN3e2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH19Cg=="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DMT6TNC7.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.655Z","timestamp":1785108244655,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DMT6TNC7.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 2519\r\nlast-modified: Sun, 26 Jul 2026 22:31:25 GMT\r\netag: \"4b2c67a9d1bfb7abd481913e7257e726\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 cd4031e4934b88564efbd54a91cf8d24.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: rAfolyIhCUx_HWi3t6JL6RYMS5pVzlYyr_cxgghGy6jw0Sh3H1kqDA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 2633\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=VpYcbZQNy8SK7Sx5EAGFgJaRTs1MG94xrq0op8xnn0srVRoICaZwAmu1hntW7oyNFPClpNpDxIMRnekTWBJAsu4NhXsYqCEWQ5YNkgt7mb4EiUAALerMabjj%2BSYlFxK5uS0tUS7t1%2FN1PBN%2FTJ0o\"}]}\r\ncf-ray: a21727e11e970883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":9346,"size_decoded":3674,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (9307)","md5":"409aa385863eab7a2c430c9b57f3347b","sha1":"8d8c92b50d81e4ee3f26e61702c9c42bc903ee32","sha256":"7dc95ecdb2c5e8f88da4a22f594c99113b4b9fc64ca37862e9e22df4760f6da1","sha512":"a4f110bed5779bcceee980aaa82cda191b7f7587bbc2c752d12a6c3616612119c42fcfdbb4e759567d4c24fc6dd191e4d46a5b097188cb619933bd6d5f29b96e","ssdeep":"192:tR7EoHQy1ehzotyk1Mwfw5aNb/onZ51ctjksj0/+uHP7q34wwoXoh:tTt19x1G/1Fq6","tlshash":"ca12c8d1b2a8bbb029fed14540af9902f2193810883d61d1b332ad9c36b85c755f7f67","first_seen":"2026-07-26T23:24:50.341341Z","last_seen":"2026-07-26T23:25:46.904065Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDQ4NzNmYjNhLTgyYWUtNGJkYS05YmFiLWI3OTQ2ZGI4Zjc1YmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTQ4NzNmYjNhLTgyYWUtNGJkYS05YmFiLWI3OTQ2ZGI4Zjc1YmApfSkoKX1jYXRjaHt9aW1wb3J0e3QgYXMgZX1mcm9tIi4vY19rLWZ5eFFIQi5qcyI7aW1wb3J0e0NsIGFzIHQsRXMgYXMgbixKcyBhcyByLFBjIGFzIGksVHMgYXMgYSxXcCBhcyBvLFpjIGFzIHMsYmwgYXMgYyxkZCBhcyBsLGZmIGFzIHUsZmwgYXMgZCxoZiBhcyBmLGlkIGFzIHAsamwgYXMgbSxuYyBhcyBoLG5kIGFzIGcsdWMgYXMgX31mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIHY9byhmKCkpO2Z1bmN0aW9uIHkoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBiKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP3koT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3goZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6eShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24geChlLHQsbil7cmV0dXJuKHQ9Uyh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBTKGUpe3ZhciB0PUMoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gQyhlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfXZhciB3PXtlYXNpbmc6YGdsb2JhbGAsZHVyYXRpb246YG1vZGVyYXRlM2B9LFQ9LTE2LEU9MCxEPWIoe3Byb3BlcnR5OmBvcGFjaXR5YCxmcm9tVmFsdWU6MCx0b1ZhbHVlOjF9LHcpLE89Yih7cHJvcGVydHk6YG9wYWNpdHlgLGZyb21WYWx1ZToxLHRvVmFsdWU6MH0sdyksaz1iKHtmcm9tVmFsdWU6VCx0b1ZhbHVlOkV9LHcpLEE9Yih7ZnJvbVZhbHVlOkUsdG9WYWx1ZTpUfSx3KSxqPXUoKSxNPVtgY2hpbGRyZW5gLGBwbGFjZW1lbnRgLGBtaW5XaWR0aGBdO2Z1bmN0aW9uIE4oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBQKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP04oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe0YoZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6TihPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gRihlLHQsbil7cmV0dXJuKHQ9SSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBJKGUpe3ZhciB0PUwoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gTChlLHQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKG4hPT12b2lkIDApe3ZhciByPW4uY2FsbChlLHR8fGBkZWZhdWx0YCk7aWYodHlwZW9mIHIhPWBvYmplY3RgKXJldHVybiByO3Rocm93IFR5cGVFcnJvcihgQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5gKX1yZXR1cm4odD09PWBzdHJpbmdgP1N0cmluZzpOdW1iZXIpKGUpfWZ1bmN0aW9uIFIoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuLHIsaT16KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik9PT0tMSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1mdW5jdGlvbiB6KGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgQj1gY2RzLWRyb3Bkb3duYCxWPW0oYyksSD0oMCx2Lm1lbW8pKCgwLHYuZm9yd2FyZFJlZikoKGUsdCk9PntsZXR7Y2hpbGRyZW46bixwbGFjZW1lbnQ6cixtaW5XaWR0aDphPWBtaW4tY29udGVudGB9PWUsbz1SKGUsTSksYz1yIT1udWxsJiZyLmluY2x1ZGVzKGBsZWZ0YCl8fHIhPW51bGwmJnIuaW5jbHVkZXMoYHJpZ2h0YCk/YHhgOmB5YCxsPWkoe2VudGVyQ29uZmlnczpbRCxQKFAoe30saykse30se3Byb3BlcnR5OmN9KV0sZXhpdENvbmZpZ3M6W08sUChQKHt9LEEpLHt9LHtwcm9wZXJ0eTpjfSldLGV4aXQ6YGV4aXRgfSk7cmV0dXJuKDAsai5qc3gpKFYsUChQKFAoe3JlZjp0LGJvcmRlcmVkOiEwLGJhY2tncm91bmQ6YGJnYCxib3JkZXJSYWRpdXM6NDAwLGNsYXNzTmFtZTpCLGVsZXZhdGlvbjoyLG1pbldpZHRoOmEsb3ZlcmZsb3c6YGF1dG9gLHJvbGU6YG1lbnVgLHRhYkluZGV4OjAsekluZGV4OnMuZHJvcGRvd259LG8pLGwpLHt9LHtjaGlsZHJlbjpufSkpfSkpLFU9MjtmdW5jdGlvbiBXKGUpe3ZhciBuO2xldHtnYXA6cixkcm9wZG93bkJvdW5kczppLG1heEhlaWdodDphLHZpc2libGU6byxwbGFjZW1lbnQ6c309ZSx7c3BhY2U6Y309dCgpLGw9Y1tVXSx1PWNbcj8/MF0sW2YsbV09KDAsdi51c2VTdGF0ZSkoYSksW2gsX109KDAsdi51c2VTdGF0ZSkocCgpfHwobj1nKCkpPT1udWxsP3ZvaWQgMDpuLndpbmRvdy5pbm5lckhlaWdodCkseT0oMCx2LnVzZUNhbGxiYWNrKSgoKT0+e3ZhciBlO18oKGU9ZygpKT09bnVsbD92b2lkIDA6ZS53aW5kb3cuaW5uZXJIZWlnaHQpfSxbX10pOygwLHYudXNlRWZmZWN0KSgoKT0+e3ZhciBlO3JldHVybihlPWcoKSk9PW51bGx8fGUud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYHJlc2l6ZWAseSksKCk9Pnt2YXIgZTsoZT1nKCkpPT1udWxsfHxlLndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGByZXNpemVgLHkpfX0sW3ldKTtsZXQgYj0oMCx2LnVzZU1lbW8pKCgpPT50eXBlb2YgYT09YG51bWJlcmA/YTphPT09dm9pZCAwPzA6KGg/PzApKnBhcnNlSW50KGEsMTApLzEwMCxbYSxoXSkseD0oMCx2LnVzZU1lbW8pKCgpPT57aWYoaSl7aWYocyE9bnVsbCYmcy5pbmNsdWRlcyhgYm90dG9tYCkpcmV0dXJuIGkudG9wK2IrbCt1O2lmKHMhPW51bGwmJnMuaW5jbHVkZXMoYHRvcGApKXJldHVybiBpLmJvdHRvbStiK2wrdX19LFtsLHUsYixpLHNdKSxTPSgwLHYudXNlTWVtbykoKCk9PntpZihzIT1udWxsJiZzLmluY2x1ZGVzKGBib3R0b21gKSlyZXR1cm4gaT9gY2FsYygxMDB2aCAtICR7aS50b3B9cHggLSAke2x9cHgpYDp2b2lkIDA7aWYocyE9bnVsbCYmcy5pbmNsdWRlcyhgdG9wYCkpcmV0dXJuIGk/YGNhbGMoMTAwdmggLSAke2kuYm90dG9tfXB4IC0gJHtsfXB4KWA6dm9pZCAwfSxbcyxpLGxdKTtyZXR1cm4gZCgoKT0+e20oaCYmeCYmbyYmaDw9eD9TOmIpfSxbaCx4LFMsb10pLHtkcm9wZG93bkhlaWdodDpmfX12YXIgRz1bYGNoaWxkcmVuYCxgb25PcGVuTWVudWAsYG9uQ2xvc2VNZW51YCxgY29udGVudGAsYGRpc2FibGVQb3J0YWxgLGB2YWx1ZWAsYGRpc2FibGVDbG9zZU9uT3B0aW9uQ2hhbmdlYCxgdmlzaWJsZWAsYG9uQ2hhbmdlYCxgd2lkdGhgLGBkaXNhYmxlZGAsYGNvbnRyb2xsZWRFbGVtZW50QWNjZXNzaWJpbGl0eVByb3BzYCxgcmVzcGVjdE5lZ2F0aXZlVGFiSW5kZXhgLGByZXN0b3JlRm9jdXNPblVubW91bnRgXSxLPVtgY29udGVudGAsYHNob3dPdmVybGF5YCxgY2hpbGRyZW5gLGB2aXNpYmxlYCxgb25DbG9zZU1lbnVgLGBvbk9wZW5NZW51YCxgd2lkdGhgLGBtaW5XaWR0aGAsYG1heFdpZHRoYCxgdmFsdWVgLGBkaXNhYmxlQ2xvc2VPbk9wdGlvbkNoYW5nZWAsYHRlc3RJRGAsYG1heEhlaWdodGAsYG9uQ2hhbmdlYCxgZGlzYWJsZVBvcnRhbGAsYG9uQmx1cmAsYGNvbnRlbnRQb3NpdGlvbmAsYGJsb2NrYCxgZGlzYWJsZWRgLGByZXN0b3JlRm9jdXNPblVubW91bnRgXSxxPVtgY2hpbGRyZW5gLGBtYXhIZWlnaHRgLGBlbmFibGVNb2JpbGVNb2RhbGAsYG9uT3Blbk1lbnVgLGBvbkNsb3NlTWVudWAsYHJlc3RvcmVGb2N1c09uVW5tb3VudGBdO2Z1bmN0aW9uIEooZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBZKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XT09bnVsbD97fTphcmd1bWVudHNbdF07dCUyP0ooT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe1goZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6SihPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gWChlLHQsbil7cmV0dXJuKHQ9ZWUodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gZWUoZSl7dmFyIHQ9dGUoZSxgc3RyaW5nYCk7cmV0dXJuIHR5cGVvZiB0PT1gc3ltYm9sYD90OnQrYGB9ZnVuY3Rpb24gdGUoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBaKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbixyLGk9bmUoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIG5lKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5kZXhPZihyKSE9PS0xKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn12YXIgUT0oKT0+e30scmU9KDAsdi5tZW1vKSgoMCx2LmZvcndhcmRSZWYpKChlLHQpPT57bGV0e2NoaWxkcmVuOm4sb25PcGVuTWVudTpyPVEsb25DbG9zZU1lbnU6aT1RLGNvbnRlbnQ6byxkaXNhYmxlUG9ydGFsOnMsdmFsdWU6YyxkaXNhYmxlQ2xvc2VPbk9wdGlvbkNoYW5nZTpsLHZpc2libGU6dSxvbkNoYW5nZTpkLHdpZHRoOmYsZGlzYWJsZWQ6cCxjb250cm9sbGVkRWxlbWVudEFjY2Vzc2liaWxpdHlQcm9wczptLHJlc3BlY3ROZWdhdGl2ZVRhYkluZGV4OmcscmVzdG9yZUZvY3VzT25Vbm1vdW50Onl9PWUsYj1aKGUsRykseD0oMCx2LnVzZU1lbW8pKCgpPT4oe29uQ2hhbmdlOmQsdmFsdWU6YyxoYW5kbGVDbG9zZU1lbnU6bD92b2lkIDA6aX0pLFtkLGMsbCxpXSk7cmV0dXJuKDAsdi51c2VJbXBlcmF0aXZlSGFuZGxlKSh0LCgpPT4oe29wZW5NZW51OnIsY2xvc2VNZW51Oml9KSxbcixpXSksKDAsai5qc3hzKShhLHt2YWx1ZTp4LGNoaWxkcmVuOlsoMCxqLmpzeCkoaCxZKFkoe2Rhbmdlcm91c2x5RGlzYWJsZVJlc3BvbnNpdmVuZXNzOiEwLGRpc2FibGVQb3J0YWw6cyxvbk92ZXJsYXlQcmVzczppLHRlc3RJRDpgZHJvcGRvd24tbW9kYWxgLHZpc2libGU6dX0sbSkse30se2NoaWxkcmVuOigwLGouanN4KShfLHtkaXNhYmxlQXV0b0ZvY3VzOiEhYyxvbkVzY1ByZXNzOmkscmVzcGVjdE5lZ2F0aXZlVGFiSW5kZXg6ZyxyZXN0b3JlRm9jdXNPblVubW91bnQ6eSxjaGlsZHJlbjooMCxqLmpzeCkoSCxZKFkoe30sYikse30se2NoaWxkcmVuOm99KSl9KX0pKSwoMCxqLmpzeCkoYGRpdmAse29uQ2xpY2s6cD92b2lkIDA6cixvbktleURvd246cixzdHlsZTp7d2lkdGg6Zn0sY2hpbGRyZW46bn0pXX0pfSkpLCQ9e2dhcDouNSxwbGFjZW1lbnQ6YGJvdHRvbS1zdGFydGB9LGllPSgwLHYubWVtbykoKDAsdi5mb3J3YXJkUmVmKSgodCxyKT0+e2xldHtjb250ZW50Omksc2hvd092ZXJsYXk6byxjaGlsZHJlbjpzLHZpc2libGU6YyxvbkNsb3NlTWVudTpsPVEsb25PcGVuTWVudTp1PVEsd2lkdGg6ZCxtaW5XaWR0aDpmLG1heFdpZHRoOnAsdmFsdWU6bSxkaXNhYmxlQ2xvc2VPbk9wdGlvbkNoYW5nZTpoLHRlc3RJRDpnLG1heEhlaWdodDpfLG9uQ2hhbmdlOnksZGlzYWJsZVBvcnRhbDpiLG9uQmx1cjp4LGNvbnRlbnRQb3NpdGlvbjpTPSQsYmxvY2s6QyxkaXNhYmxlZDp3LHJlc3RvcmVGb2N1c09uVW5tb3VudDpUfT10LEU9Wih0LEspLFtELE9dPW4oKSxbayxBXT1uKCksTT0oMCx2LnVzZU1lbW8pKCgpPT5ZKFkoe30sJCksUyksW1NdKSx7ZHJvcGRvd25IZWlnaHQ6Tn09Vyh7Z2FwOk0uZ2FwLGRyb3Bkb3duQm91bmRzOk8sbWF4SGVpZ2h0Ol8sdmlzaWJsZTpjLHBsYWNlbWVudDpNLnBsYWNlbWVudH0pLFA9KDAsdi51c2VNZW1vKSgoKT0+KHtvbkNoYW5nZTp5LHZhbHVlOm0saGFuZGxlQ2xvc2VNZW51Omg/dm9pZCAwOmx9KSxbeSxtLGgsbF0pLEY9KDAsdi51c2VNZW1vKSgoKT0+KDAsai5qc3gpKEgse3JlZjpELG1heEhlaWdodDpOLG1heFdpZHRoOnAsbWluV2lkdGg6ZixwbGFjZW1lbnQ6TS5wbGFjZW1lbnQsd2lkdGg6Qz9BLndpZHRoOmQsY2hpbGRyZW46aX0pLFtELE4scCxmLE0ucGxhY2VtZW50LEMsQS53aWR0aCxkLGldKTtyZXR1cm4oMCx2LnVzZUltcGVyYXRpdmVIYW5kbGUpKHIsKCk9Pih7b3Blbk1lbnU6dSxjbG9zZU1lbnU6bH0pLFt1LGxdKSwoMCxqLmpzeCkoYSx7dmFsdWU6UCxjaGlsZHJlbjooMCxqLmpzeCkoZSxZKFkoe2Jsb2NrOkMsY29udGVudDp3P3ZvaWQgMDpGLGNvbnRlbnRQb3NpdGlvbjpNLGRpc2FibGVBdXRvRm9jdXM6ISFtLGRpc2FibGVQb3J0YWw6YixkaXNhYmxlZDp3LG9uQmx1cjp4LG9uQ2xvc2U6bCxvblByZXNzU3ViamVjdDpjP3ZvaWQgMDp1LHJlc3RvcmVGb2N1c09uVW5tb3VudDpULHNob3dPdmVybGF5Om8sdGVzdElEOmcsdmlzaWJsZTp3PyExOmN9LEUpLHt9LHtjaGlsZHJlbjooMCxqLmpzeCkoYGRpdmAse3JlZjprLHN0eWxlOnt3aWR0aDpgMTAwJWB9LGNoaWxkcmVuOnN9KX0pKX0pfSkpLGFlPSgwLHYubWVtbykoKDAsdi5mb3J3YXJkUmVmKSgoZSx0KT0+e2xldCBuPWwoYERyb3Bkb3duYCxlKSx7Y2hpbGRyZW46aSxtYXhIZWlnaHQ6YT0zMDAsZW5hYmxlTW9iaWxlTW9kYWw6byxvbk9wZW5NZW51OnMsb25DbG9zZU1lbnU6YyxyZXN0b3JlRm9jdXNPblVubW91bnQ6dT0hMH09bixkPVoobixxKSx7aXNQaG9uZTpmfT1yKCksW3AsbV09KDAsdi51c2VTdGF0ZSkoITEpLGg9KDAsdi51c2VDYWxsYmFjaykoKCk9PnttKCEwKSxzPT1udWxsfHxzKCl9LFtzXSksZz0oMCx2LnVzZUNhbGxiYWNrKSgoKT0+e20oITEpLGM9PW51bGx8fGMoKX0sW2NdKTtyZXR1cm4gZiYmbz8oMCxqLmpzeCkocmUsWShZKHtyZWY6dCxtYXhIZWlnaHQ6YSxvbkNsb3NlTWVudTpnLG9uT3Blbk1lbnU6aCxyZXN0b3JlRm9jdXNPblVubW91bnQ6dSx2aXNpYmxlOnB9LGQpLHt9LHtjaGlsZHJlbjppfSkpOigwLGouanN4KShpZSxZKFkoe3JlZjp0LG1heEhlaWdodDphLG9uQ2xvc2VNZW51Omcsb25PcGVuTWVudTpoLHJlc3RvcmVGb2N1c09uVW5tb3VudDp1LHZpc2libGU6cH0sZCkse30se2NoaWxkcmVuOml9KSl9KSk7ZXhwb3J0e08gYXMgYSxEIGFzIGksVyBhcyBuLGsgYXMgbyxIIGFzIHIsQSBhcyBzLGFlIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0RNVDZUTkM3LmpzLm1hcA=="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_DGgmuLb3.css","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.661Z","timestamp":1785108244661,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_DGgmuLb3.css HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 84\r\nlast-modified: Mon, 01 Jun 2026 17:37:55 GMT\r\netag: \"0b7dcf29cf390ed0b0ae7b99a1442eb7\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 46f331563d4a8baa77a470097fa3a10c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: HEL51-P2\r\nx-amz-cf-id: TqzIwHkyLX66UkKoGaAbw7KWe4mB7vuFg3CL5u9HTbW1n2tZwfAnCA==\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 4772345\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=jOQ%2FzFzrbPITZweVf40QiBJumbRAmut5yh7o6FJoPTJ3WfLEV1TWxiOz%2F8qVTCtQAbF4OHboXuii2zniob09fgdbjUnJ93jOO5SbKqRc3w%2FKn9DOZ%2BC11XuC9sMABZRdQm5rZhb0KXSPvFbgmWbl\"}]}\r\ncf-ray: a21727e12eba0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":115,"size_decoded":1242,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"1546c86c9b61a765cd9e192d7ba51612","sha1":"afe204ae2225575a9e4ad054d24e2a3a0431b3c4","sha256":"c43bfbded02b6b78328652cf55f71f47227bf5f954b73f0b9bfbf6cb87ea31ed","sha512":"89def463f7cf7695d533f3c80a9e0fd8727b47766d5028ef057ff6a204db38912ad1e8865668d18dfeda0b66029fee023d0c5a6a68a5a2d8a0c542f4437f00ce","ssdeep":"","tlshash":"1bb0240013d0c1473000007034d0550ff03453431d0ff3153c0c70f05f0d5411111141","first_seen":"2026-06-02T03:41:41.315142Z","last_seen":"2026-07-26T23:25:46.918513Z","times_seen":15,"resource_available":false,"data":"QGxheWVyIGNkc3suc3ViamVjdENzcy1zMWNncjl6NHtjdXJzb3I6ZGVmYXVsdDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2Rpc3BsYXk6ZmxleH0uYmxvY2tDc3MtYjEzcm5icm97d2lkdGg6MTAwJX19Cg=="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BxpwToI9.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.700Z","timestamp":1785108244700,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_BxpwToI9.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:19 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"6712b54c352200af47fce97c3df53a3a\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 963857637ab1c1847ddfb92afc9a0986.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: gfVhBKAnvNbhQ7Vt1n5QvEKdfYf3kixOCxqeI39DPWAX-QpnsajZHg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=TYpcI83U51kb%2FqZ2Ue2Bsv1xwdBNfgA31OdJU%2BfktmV5LqVgNjBbSJ2U0tlUxZGIBSvTy%2FSd4lhWYl1jBwtTFKkrNP%2Bf2ocSBWq8USo%2FjhNA0TT2I9I2k5gUsZaMhBS9HTeacRp0lOk2O78H4mJ%2F\"}]}\r\ncf-ray: a21727e16f3e0883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":2861,"size_decoded":2394,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (2822)","md5":"6712b54c352200af47fce97c3df53a3a","sha1":"21351ee1889c2f789f2765aba5dc8849ebe753e7","sha256":"3ed8d46546eccddbc6798c4e22517600e6925d406ecc8ac9e8f09a42166016bd","sha512":"a3af1f9d35620d2b8394a6e1aed049880d823446c25b25baae1eb605766d9da089972e9cb760a5c5cb3407a93b8bc3443d61b8f6c7edf10267257923242bb824","ssdeep":"","tlshash":"7851342930f61fa8b807ba6dd06e510c352eec19d67f0ae4704b522933bd5fa6451f8e","first_seen":"2026-07-26T23:24:50.343395Z","last_seen":"2026-07-26T23:25:46.907645Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGEyNGYyOTg2LWQ0ZGYtNDQyNy04YTNkLTRjMmU1ZmY5MmVjMWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWEyNGYyOTg2LWQ0ZGYtNDQyNy04YTNkLTRjMmU1ZmY5MmVjMWApfSkoKX1jYXRjaHt9aW1wb3J0e3MgYXMgZSx1IGFzIHR9ZnJvbSIuL2NfRHRzMTVxaUIuanMiO2ltcG9ydHt0IGFzIG59ZnJvbSIuL2NfQjJsLW1aMnIuanMiO2ltcG9ydHtKaSBhcyByLF9hIGFzIGksYmwgYXMgYSxjZCBhcyBvLGVsIGFzIHMsZmYgYXMgYyxpYSBhcyBsLGppIGFzIHUscGEgYXMgZCx6YSBhcyBmfWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgcD1jKCksbT1mKGZ1bmN0aW9uKHtsYXlvdXQ6aSx0aXRsZTphLHBhcmFncmFwaDpzLGN0YUdyb3VwOmMsY29sdW1uczpkLGNhcmRUeXBlOmYsY2FyZHM6bT1bXSxsZWdhbDpnLGlkOl8sY2xhc3NOYW1lOnYsdGVzdElEOnk9YGdhbGxlcnktZ3JpZGAsY29tcG9uZW50SWQ6Yixjb250ZW50VHlwZUlkOngsbm9TcGFjaW5nOlM9ITEsc2VjdGlvblNldHRpbmdzOkMsZm9vdGVyTGF5b3V0OncsZm9vdGVyQ3RhR3JvdXA6VCxmb290ZXJQYXJhZ3JhcGg6RSxmb290ZXJUaXRsZTpELGNoaWxkcmVuOk99KXtyZXR1cm4oMCxwLmpzeHMpKGwse2NsYXNzTmFtZTp2LHRlc3RJRDp5LG5vU3BhY2luZzpTLHNlY3Rpb25TZXR0aW5nczpDLHZhcmlhbnQ6YHNsaW1gLGNoaWxkcmVuOlsoMCxwLmpzeCkobix7dGl0bGU6YSxwYXJhZ3JhcGg6cyxjdGFzOmMsbGF5b3V0Oml9KSwoISEobSE9bnVsbCYmbS5sZW5ndGgpfHxPKSYmKDAscC5qc3hzKShoLHtzdHlsZTp7Ii0tbWF4LWNvbHVtbi1jb3VudCI6ZCwiLS1pdGVtLW1pbi13aWR0aCI6Zj09PWBBdmF0YXJgP2AxNzBweGA6YDI2MHB4YH0sZGlzcGxheTpgZ3JpZGAsZ2FwOjIsdGVzdElEOmAke3l9LWlubmVyLWdyaWRgLGNoaWxkcmVuOlttLm1hcCh0PT4oMCxwLmpzeCkobyx7Y2hpbGRyZW46KDAscC5qc3gpKGUsey4uLnQsY2FyZFR5cGU6ZixjYXJkTGF5b3V0OmBtZWRpYVRvcGB9KX0sdC5pZCkpLE9dfSksKDAscC5qc3gpKHQse2xheW91dDp3LHRpdGxlOkQscGFyYWdyYXBoOkUsY3RhczpUfSkscihnKSYmKDAscC5qc3gpKG8se21heFdpZHRoOmA5MDBweGAsY2hpbGRyZW46KDAscC5qc3gpKHUse2ZvbnQ6YGxlZ2FsYCxjb2xvcjpgZmdNdXRlZGAsY29udGVudDpnfSl9KV19KX0pLGg9aShvKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgQ0RYR2FsbGVyeUdyaWRfX1N0eWxlZEdyaWRgLGNvbXBvbmVudElkOmBzYy1kOGI5ODNjOC0wYH0pKFtgZ2FwOnZhcigtLXNwYWNlLTIpO2Rpc3BsYXk6Z3JpZDstLWdhcC1jb3VudDpjYWxjKHZhcigtLW1heC1jb2x1bW4tY291bnQpIC0gMSk7LS10b3RhbC1nYXAtd2lkdGg6Y2FsYyh2YXIoLS1nYXAtY291bnQpICogdmFyKC0tc3BhY2UtMikpOy0taXRlbS1tYXgtd2lkdGg6Y2FsYyggKDEwMCUgLSB2YXIoLS10b3RhbC1nYXAtd2lkdGgpKSAvIHZhcigtLW1heC1jb2x1bW4tY291bnQpICk7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCggYXV0by1maWxsLG1pbm1heChtYXgodmFyKC0taXRlbS1taW4td2lkdGgpLHZhcigtLWl0ZW0tbWF4LXdpZHRoKSksMWZyKSApO2BdKSxnPShlLHQsbik9PmU9PT1gQXJ0aWNsZWAmJnQhPT1uLTEsXz17QXJ0aWNsZTpgZGVmYXVsdGAsTWVkaWE6YHNsaW1gLFZpZGVvOmBzbGltYCxCYXNpYzpgc2xpbWB9LHY9ZihmdW5jdGlvbih7bGF5b3V0OmksdGl0bGU6YyxwYXJhZ3JhcGg6ZixjdGFHcm91cDptLGNhcmRUeXBlOmgsY2FyZHM6dj1bXSxsZWdhbDp5LGNsYXNzTmFtZTpiLHRlc3RJRDp4PWBnYWxsZXJ5LWxpc3RgLHNlY3Rpb25TZXR0aW5nczpTLG5vU3BhY2luZzpDLGZvb3RlckxheW91dDp3LGZvb3RlclRpdGxlOlQsZm9vdGVyUGFyYWdyYXBoOkUsZm9vdGVyQ3RhR3JvdXA6RH0pe3JldHVybigwLHAuanN4cykobCx7Y2xhc3NOYW1lOmIsdGVzdElEOngsc2VjdGlvblNldHRpbmdzOlMsbm9TcGFjaW5nOkMsdmFyaWFudDpfW2hdLGNoaWxkcmVuOlsoY3x8Znx8bSkmJigwLHAuanN4KShuLHt0aXRsZTpjLHBhcmFncmFwaDpmLGN0YXM6bSxsYXlvdXQ6aX0pLCgwLHAuanN4KShhLHsiZGF0YS10ZXN0aWQiOmBnYWxsZXJ5LWxpc3QtY2FyZHNgLGdhcDpkW2Bjb250ZW50LWVsZW1lbnQtZ2FwYF0sY2hpbGRyZW46di5tYXAoKHQsbix7bGVuZ3RoOnJ9KT0+e2xldCBpPWcoaCxuLHIpO3JldHVybigwLHAuanN4cykoYSx7Z2FwOmRbYGNvbnRlbnQtZWxlbWVudC1nYXBgXSwiZGF0YS10ZXN0aWQiOmBnYWxsZXJ5LWxpc3QtY2FyZGAsImRhdGEtc2VwYXJhdG9yIjppLGNoaWxkcmVuOlsoMCxwLmpzeCkoZSx7Li4udCxjYXJkVHlwZTpoLGNhcmRMYXlvdXQ6YG1lZGlhTGVmdGB9KSxpPygwLHAuanN4KShzLHt9KTpudWxsXX0sdC5pZCl9KX0pLCgwLHAuanN4KSh0LHtsYXlvdXQ6dyx0aXRsZTpULHBhcmFncmFwaDpFLGN0YXM6RH0pLHIoeSkmJigwLHAuanN4KShvLHttYXhXaWR0aDpgOTAwcHhgLCJkYXRhLXRlc3RpZCI6YGdhbGxlcnktbGlzdC1sZWdhbGAsY2hpbGRyZW46KDAscC5qc3gpKHUse2ZvbnQ6YGxlZ2FsYCxjb2xvcjpgZmdNdXRlZGAsY29udGVudDp5fSl9KV19KX0pO2V4cG9ydHttIGFzIG4sdiBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19CeHB3VG9JOS5qcy5tYXA="}},"time_used":108,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":108,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Ba-_iPNS.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.706Z","timestamp":1785108244706,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_Ba-_iPNS.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 395\r\nlast-modified: Wed, 22 Jul 2026 13:54:07 GMT\r\netag: \"03ef8a0eac2fe97b48249eac169b782e\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 d595bd24206cf641f8d0993f4b0f9b80.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: IAD12-P5\r\nx-amz-cf-id: 97hEy83ZWUfsRhXhErRgCmCNVlIQ5ClNp7snjK3XJXVDmTQ977myWA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 379119\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=W2iomH%2BqwqRtIdMF2PZEYsC8ZgTfGWUPobZm87ycm0AVxILIKx9f9rnJxTkhnj7q%2FCW1H8IAYZkRXenG7pf6I1EjpPKNISnAw26ZbLSYcgZedWeOAKGfPiwSqWSD%2BdFPmbn5Gmhs3Vul7lsxCDsq\"}]}\r\ncf-ray: a21727e16f580883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":733,"size_decoded":1550,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (694)","md5":"80ce96d219c254036db9133260b49426","sha1":"078517552cdc477f630c824d6bf156f11dbe22e7","sha256":"943995b14110f4a549dad4580ab938ca0c46daab52044354654fbc0ce41b63df","sha512":"a35a7e1dcd66811486be3e20c5e31a1b41f51258733b2c74ea8886a7faf28b2561e12b780c8848fc785f45008667cc948c711d24ebe6b98d5dfb5aaca82c5fb7","ssdeep":"","tlshash":"9d0165887ff87a65cb58160dc1876000f35dea5bd9dc4b20f02288283f55e3ac411b93","first_seen":"2026-06-29T23:42:00.342672Z","last_seen":"2026-07-26T23:25:46.885444Z","times_seen":6,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDliMDg4ZGU0LTZlYzktNGI5Ni1iNDdiLWRjNzU4ZjA1MmZiZGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTliMDg4ZGU0LTZlYzktNGI5Ni1iNDdiLWRjNzU4ZjA1MmZiZGApfSkoKX1jYXRjaHt9dmFyIGU9L14oXEQqMFsuLF0pKDB7NCx9KShbMS05XVxkKikkLyx0PTQ7ZnVuY3Rpb24gbihlLHQpe2lmKGUubGVuZ3RoPD10KXJldHVybiBlO2xldCBuPXBhcnNlSW50KGUuc2xpY2UoMCx0KSwxMCk7aWYocGFyc2VJbnQoZVt0XSwxMCk+PTUpe2xldCByPVN0cmluZyhuKzEpO3JldHVybiByLmxlbmd0aD50P2Uuc2xpY2UoMCx0KTpyfXJldHVybiBTdHJpbmcobil9ZnVuY3Rpb24gcihyKXtsZXQgaT1lLmV4ZWMocik7aWYoIWkpcmV0dXJuIG51bGw7bGV0WyxhLG8sc109aSxjPW8ubGVuZ3RoO3JldHVybntwcmVmaXg6YCR7YX0wYCx6ZXJvQ291bnQ6YyxzaWduaWZpY2FuZDpuKHMsdCl9fWV4cG9ydHtyIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0JhLV9pUE5TLmpzLm1hcA=="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_B5WAMJJs.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.731Z","timestamp":1785108244731,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_B5WAMJJs.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 872\r\nlast-modified: Sun, 26 Jul 2026 22:31:15 GMT\r\netag: \"cc470f006e0c89604a29ab0dcdce8415\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 26512aa427c30d93015b4bde75974708.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: jhSIspkv3a4ncyVwzCW3md1Dvq62kzWl43yq-iuR4bHNiR7kD09WyA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ZFekMjiJy83YXz%2Bh7%2BXihuTYEl2How%2Fd4HZKwPGuNEMb9nfDV6qMJExW2aIz%2FNlDt00L%2Fu%2FitSTO4m%2FtL23XvkZGl5CuXBTE8VPfXW%2B5ML8bgsC1boPSfTgPaNbSpfo3VGuSKgjsc2mHeiA8J0WW\"}]}\r\ncf-ray: a21727e19fb50883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2039,"size_decoded":2025,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (2000)","md5":"1083a83da49d50e11de0b0ff1678ae9c","sha1":"15cfec14781b169715f6fe2f36fc7d1d2635cfd3","sha256":"39deaeb4d4f58b38d03bde6dd92e94a6a6d81da41720431fa2e7dafc818d8acb","sha512":"682503d50011898151119bc7641ab02faa6f363aae983f7b5f5e4a6ea833efae2c5027abfa6f7bc55e24e97112b366f2b42b6ad263821dacd692cd60b3894d44","ssdeep":"","tlshash":"fe4145c076f5fff10094935980afaa01f2286422687cb611f7719db06aa495784a5a23","first_seen":"2026-07-26T23:24:50.346832Z","last_seen":"2026-07-26T23:25:46.786296Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGUxOWIwNTc4LWQ3M2MtNDEzMS05MDdlLWI1OTBhMzZhY2U0YWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWUxOWIwNTc4LWQ3M2MtNDEzMS05MDdlLWI1OTBhMzZhY2U0YWApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsZmYgYXMgdCxoZiBhcyBuLG9kIGFzIHJ9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBpPWUobigpKSxhPXQoKSxvPVtgYXNgLGBmb250YF07ZnVuY3Rpb24gcyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGMoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/cyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7bChlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpzKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBsKGUsdCxuKXtyZXR1cm4odD11KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHUoZSl7dmFyIHQ9ZChlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBkKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gZihlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG4scixpPXAoZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT09PS0xJiZ7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIHAoZSx0KXtpZihlPT1udWxsKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmRleE9mKHIpIT09LTEpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufXZhciBtPWBzcGFuYCxoPSgwLGkuZm9yd2FyZFJlZikoKGUsdCk9PntsZXR7YXM6bixmb250Omk9YGRpc3BsYXkyYH09ZSxzPWYoZSxvKTtyZXR1cm4oMCxhLmpzeCkocixjKHtyZWY6dCxhczpuPz9tLGZvbnQ6aX0scykpfSk7aC5kaXNwbGF5TmFtZT1gVGV4dERpc3BsYXkyYDtleHBvcnR7aCBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19CNVdBTUpKcy5qcy5tYXA="}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"geolocation.onetrust.com/cookieconsentpub/v1/geo/location","fqdn":"geolocation.onetrust.com","domain":"onetrust.com","tld":"com"},"ip":{"addr":"172.64.155.119","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:05.783Z","timestamp":1785108245783,"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":"geolocation.onetrust.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:17:34 GMT","end":"Tue, 20 Oct 2026 23:17:15 GMT"},"fingerprint":{"sha1":"17:8F:FB:39:BB:6B:A1:00:73:5A:DB:D4:D0:EF:99:EE:9A:B8:93:7D","sha256":"6B:C4:36:A1:51:AE:0F:CD:67:5C:4E:1C:1E:55:01:AA:70:B5:B2:BA:34:37:2C:1E:01:C3:A1:F7:E5:F9:52:41"}}},"request":{"raw":"GET /cookieconsentpub/v1/geo/location HTTP/1.1\r\nHost: geolocation.onetrust.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\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://www.coinbase.com/\r\nOrigin: https://www.coinbase.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\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:08 GMT\r\ncontent-type: application/json\r\naccess-control-allow-origin: *\r\naccess-control-allow-headers: Content-Type\r\naccess-control-allow-methods: GET, OPTIONS\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\ncontent-encoding: gzip\r\nserver: cloudflare\r\ncf-ray: a21727fb8eb9c272-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":65,"size_decoded":444,"mime_type":"application/json","magic":"JSON text data","md5":"8d896eded71ee5fc863cf1ec1485da75","sha1":"b36c99cd02aa88e94a55b028381d9c5cb61cbbef","sha256":"3dddf5b1f3c0e76d359e7fe585b61f721980981a612e17d7ebfedfc3e6fc3b3d","sha512":"a216a2ec987ed8aa509d4bf88075844374819f15767190c2f9fc1b7dc05436cb33ac0fa3466bd207bd3104e455cd3c72fb8622dd0759ab64f197ac216850382e","ssdeep":"","tlshash":"3da0025864599d1d9dfd824a530e726a1244a309828751c6c6c9ed75c5812c9b05c480","first_seen":"2025-06-02T14:25:58.002399Z","last_seen":"2026-07-27T02:25:00.929005Z","times_seen":165346,"resource_available":false,"data":"eyJjb3VudHJ5IjoiTk8iLCJzdGF0ZSI6IjAzIiwic3RhdGVOYW1lIjoiT3NsbyIsImNvbnRpbmVudCI6IkVVIn0="}},"time_used":3112,"timings":{"blocked":0,"dns":3,"connect":1,"send":0,"wait":6,"receive":0,"ssl":3101},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/node_modules/.vite/deps/react.js?v=08eb349e","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.513Z","timestamp":1785108243513,"http_version":"HTTP/1.1","security_state":"secure","security_info":null,"request":{"raw":"GET /node_modules/.vite/deps/react.js?v=08eb349e HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/src/App.tsx\r\nSec-Fetch-Dest: script\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":"","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T02:51:03.003348Z","times_seen":17554215,"resource_available":true,"data":null}},"time_used":0,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":0,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_CH-aRrrD.woff2","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.161Z","timestamp":1785108244161,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_CH-aRrrD.woff2 HTTP/1.1\r\nHost: www.coinbase.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.coinbase.com/assets/sw-cache/a_m3m7GXAn.css\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: font/woff2\r\ncontent-length: 40016\r\nlast-modified: Tue, 12 May 2026 15:05:42 GMT\r\netag: \"b54c6aeed882bdf66df4e5fac9c2340e\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 40e20db187b9959d3846f32db35de9bc.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: CPH50-P1\r\nx-amz-cf-id: B7-_M4cb22DhLEGRjJI7UmSWN1bJgP4CGpayQ52YZfm_ZBvS-6B5Vw==\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 6451472\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nvary: accept-encoding\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=h7AXVcgp%2BcZBI%2Ful%2FRpXKeA%2B03PBxeWkfsWrdpAfWZs6dCzy%2FJG2OHuDze9JSnnzC2XWCY1TC6F2qMQKs7go4gHu%2B8vmbNdKrOiPEX5ErSz5OvdmrTEDjBhJNafqSacDmzp2IoIpLdRt%2FmbSxome\"}]}\r\ncf-ray: a21727de09550883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":40016,"size_decoded":41147,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 40016, version 1.2097","md5":"b54c6aeed882bdf66df4e5fac9c2340e","sha1":"b483fbe25190262b648b390c11e6bdf9fea33edb","sha256":"81368223143520415fe7fbdc3792d2d52ad7e422d8b214661ff932afe577b779","sha512":"3afc93e98b6a5a756a0e0adfc5d04da8258cbf9065fe4a90673d3193baefce1fb9867fc235dd953a4dce5a2b033b3d1f4280f20270db913baa0f72a3a73bf804","ssdeep":"768:acqYNePjaM2LJWNjCEa18ryDLCIZJFxucAMXM9tcrYecoNj46FSc3Xy6mjLk:a2NePjaMG3CIVxu3cMj1ebx4aSc3Xnm0","tlshash":"8603f1e3a36799e3dfaf54a575c21eac1a1044d765a3afa9d5f2024730d2d0d54031ec","first_seen":"2023-04-22T15:10:15Z","last_seen":"2026-07-26T23:25:46.824451Z","times_seen":1498,"resource_available":false,"data":"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"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_ChMEsMbq.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.567Z","timestamp":1785108244567,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_ChMEsMbq.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 819\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\netag: \"edd12be0907d08fac5c33b52dccd47ff\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 06cacd0422733e64f8afbe400dd4457c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: FLVdZuqAH7voZVeqxTfzIGl3gE6bt8t4biqSZj-BMhOGe28f0Cw_Qg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 2931\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ZKYcBIHSMBHN2EIGeksABpMCM8oyLt9I%2FTaNMw8uZgV4W2EwUi%2F0WGii%2FJX6OCaPaDRSRCUbpZwn7mUoY9wMXzkuQwNxzMDcmN%2FUIYMD1jxsnFUH%2FXf467cV8AsNbiqCFUs%2Fwt922n4Ix3SRRrDX\"}]}\r\ncf-ray: a21727e09d720883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":2325,"size_decoded":1979,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (2286)","md5":"9431f85743324d13745462976b7f0f3f","sha1":"a5223491dcf07cb0244c5067d13c8133da86cf59","sha256":"cdb927edd4469edd46323302eb1dd6a7e815b05aa49e13c8d2c8b32a4063788e","sha512":"64ee69a3fd613824e66b0b18efba2005c4fe94d15dcc659960577e727ea9b57aee5bfedb4ace5c3024f69799be83a426f3eac1b379e16779928a63fd139c71e0","ssdeep":"","tlshash":"824142973bf0713b0af2403ac20e3004e67a91464948be07d03aae9d2da8e559b73686","first_seen":"2026-07-26T23:24:50.350013Z","last_seen":"2026-07-26T23:25:46.802795Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDJmNTY5MzE0LWEwYTctNDIzMC1hYTBlLTAyYjk4YTYzZDJkYWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTJmNTY5MzE0LWEwYTctNDIzMC1hYTBlLTAyYjk4YTYzZDJkYWApfSkoKX1jYXRjaHt9aW1wb3J0Ii4vZV9DcnFSVzF3UC5qcyI7aW1wb3J0e2QgYXMgZX1mcm9tIi4vY19DZzZUQy03SS5qcyI7dmFyIHQ9e3BsYXRmb3JtOmB1bmtub3duYCxlbnZpcm9ubWVudElkOmBgLG9uRXJyb3I6KGUsdCk9Pnt3aW5kb3cuY29uc29sZS5lcnJvcihlLHQpfSxraWxsU3dpdGNoQ29uZmlnOnt9LG5hdmlnYXRpb25FdmVudHM6e30sY2xpZW50Om51bGx9O2Z1bmN0aW9uIG4oZSl7T2JqZWN0LmFzc2lnbih0LGUpfXZhciByPXtJTklUOmBraWxsX3VzZXJfcmVzZWFyY2hfaW5pdGAsTkFWOmBraWxsX3VzZXJfcmVzZWFyY2hfbmF2aWdhdGlvbl9ldmVudGAsTkFWX0xJU1RFTkVSOmBraWxsX3VzZXJfcmVzZWFyY2hfbmF2aWdhdGlvbl9saXN0ZW5lcl9ldmVudGAsVVNFUl9BQ1RJT046YGtpbGxfdXNlcl9yZXNlYXJjaF91c2VyX2FjdGlvbmAsQ09ORklHVVJFOmBraWxsX3VzZXJfcmVzZWFyY2hfY29uZmlndXJlYCxBVFRSSUJVVEVTOmBraWxsX3VzZXJfcmVzZWFyY2hfc2V0X2F0dHJpYnV0ZXNgLFRSQUNLOmBraWxsX3VzZXJfcmVzZWFyY2hfcHJlc2VudF9zdXJ2ZXlgLFVTRVJfSURFTlRJRklFUjpga2lsbF91c2VyX3Jlc2VhcmNoX3NldF9pZGVudGlmaWVyYH0saT17a2lsbF91c2VyX3Jlc2VhcmNoX2luaXQ6ITEsa2lsbF91c2VyX3Jlc2VhcmNoX25hdmlnYXRpb25fZXZlbnQ6ITEsa2lsbF91c2VyX3Jlc2VhcmNoX25hdmlnYXRpb25fbGlzdGVuZXJfZXZlbnQ6ITEsa2lsbF91c2VyX3Jlc2VhcmNoX3VzZXJfYWN0aW9uOiExLGtpbGxfdXNlcl9yZXNlYXJjaF9jb25maWd1cmU6ITEsa2lsbF91c2VyX3Jlc2VhcmNoX3NldF9hdHRyaWJ1dGVzOiExLGtpbGxfdXNlcl9yZXNlYXJjaF9wcmVzZW50X3N1cnZleTohMSxraWxsX3VzZXJfcmVzZWFyY2hfc2V0X2lkZW50aWZpZXI6ITF9O2Z1bmN0aW9uIGEoZSl7cmV0dXJuIWlbZV0mJnQucGxhdGZvcm0/aVtgJHtlfV8ke3QucGxhdGZvcm19YF0/PyExOmlbZV19ZnVuY3Rpb24gbyhlKXtyZXR1cm4hYShlKX1mdW5jdGlvbiBzKGUpe09iamVjdC5hc3NpZ24oaSxlKX1mdW5jdGlvbiBjKGUpe24oe2NsaWVudDplfSl9ZnVuY3Rpb24gbCgpe2lmKG8oci5DT05GSUdVUkUpKXRyeXtjKGUuY29uZmlndXJlKHtlbnZpcm9ubWVudElkOnQuZW52aXJvbm1lbnRJZH0pKX1jYXRjaChlKXtlIGluc3RhbmNlb2YgRXJyb3ImJnQub25FcnJvcihlKX19ZnVuY3Rpb24gdShlKXtpZihvKHIuSU5JVCkpe24oZSkscyhlLmtpbGxTd2l0Y2hDb25maWcpO3RyeXtsKCl9Y2F0Y2goZSl7ZSBpbnN0YW5jZW9mIEVycm9yJiZ0Lm9uRXJyb3IoZSl9fX1mdW5jdGlvbiBkKGUpe2lmKG8oci5VU0VSX0lERU5USUZJRVIpJiZ0LmNsaWVudCl0cnl7dC5jbGllbnQuc2V0VXNlcklkKGUpfWNhdGNoKGUpe2UgaW5zdGFuY2VvZiBFcnJvciYmdC5vbkVycm9yKGUpfX1mdW5jdGlvbiBmKGUpe2lmKG8oci5BVFRSSUJVVEVTKSYmdC5jbGllbnQpdHJ5e3QuY2xpZW50LnNldEF0dHJpYnV0ZXMoZSl9Y2F0Y2goZSl7ZSBpbnN0YW5jZW9mIEVycm9yJiZ0Lm9uRXJyb3IoZSl9fWZ1bmN0aW9uIHAoZSl7aWYobyhyLlRSQUNLKSYmdC5jbGllbnQpdHJ5e3QuY2xpZW50LnRyYWNrKGUpfWNhdGNoKGUpe2UgaW5zdGFuY2VvZiBFcnJvciYmdC5vbkVycm9yKGUpfX1mdW5jdGlvbiBtKGUpe2lmKG8oci5OQVYpKXtpZihlPT09YGApcmV0dXJuO2xldCBuPXQubmF2aWdhdGlvbkV2ZW50c1tlXTtuJiZwKG4pfX1mdW5jdGlvbiBoKGUpe28oci5OQVZfTElTVEVORVIpJiZlLmxpc3RlbigoKT0+e3ZhciBlO3JldHVybiBtKChlPXdpbmRvdyk9PW51bGx8fChlPWUubG9jYXRpb24pPT1udWxsP3ZvaWQgMDplLnBhdGhuYW1lKX0pfWV4cG9ydHtoIGFzIGVuYWJsZVJlc2VhcmNoRXZlbnRzT25OYXZpZ2F0aW9uQ2hhbmdlLHUgYXMgaW5pdCxmIGFzIHNldFJlc2VhcmNoVXNlckF0dHJpYnV0ZXMsZCBhcyBzZXRVc2VySWRlbnRpZmllcn07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQ2hNRXNNYnEuanMubWFw"}},"time_used":10,"timings":{"blocked":1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_Bq5FCJuA.css","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.699Z","timestamp":1785108244699,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_Bq5FCJuA.css HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: text/css; charset=utf-8\r\nlast-modified: Sat, 02 May 2026 01:10:31 GMT\r\nvary: accept-encoding\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ROwxVl6SnrlWiZ6jzBJYQJf4qoopLXn9aPY06ZylSBfRhQ%2Bo8jgROz69hp2NBYMO4wBNcAYZI2XfZ5FBNgy6xKgVXq5umBljVE57hpAtUGQesDd4Yrhg427kUbEja3Aes6iYKIpQLrs%2BHBP2bdsG\"}]}\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 5a3fd9534d17ed5056b6ebc432dfa02e.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: WAW51-P2\r\nx-amz-cf-id: xq8m7mkwcArOLC1-BqkTO4QI3eiF-YzVGZTPP7_sRL6b46jwzHEbpw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 7090373\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\netag: W/\"790956ddbc13824a2cdaff00b50db41e\"\r\ncontent-encoding: gzip\r\ncf-ray: a21727e16f3c0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":204,"size_decoded":1230,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"790956ddbc13824a2cdaff00b50db41e","sha1":"f21afbe38ab9288559d9480962182749606a2c4b","sha256":"5ea59ec5f04f25bf7195684ea9072a5beb0c6ecc619673d776fdc7774a87f4d0","sha512":"fcae65968bc18146c4ee35aa5b38f6bab29ce2c4db8d964008acf750b2c23496fb84db742e8febf268bb875a533eae2589c81bab8765ec429268b01f436062ed","ssdeep":"","tlshash":"e0d0925aa468119570ef680c99e8932f048415972b0d45c4a5309fb6fa4973e022000b","first_seen":"2025-11-27T13:14:19.608425Z","last_seen":"2026-07-26T23:25:46.890852Z","times_seen":80,"resource_available":false,"data":"QGxheWVyIGNkc3suc2Nyb2xsQ29udGFpbmVyQ3NzLXMxOWw3c3B2ey13ZWJraXQtc2Nyb2xsYmFyLXdpZHRoOm5vbmU7LW1vei1zY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtc2Nyb2xsYmFyLXdpZHRoOm5vbmU7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9LnNjcm9sbENvbnRhaW5lckNzcy1zMTlsN3Nwdjo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfX0K"}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/googlesans/v62/4UaRrENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iq2vgCIhMl07v0x.woff2","fqdn":"fonts.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":"font","requested_by":"https://accounts.google.com/gsi/iframe/select?client_id=1080018929571-t143o72j7g4a93rio80higse5c127qlt.apps.googleusercontent.com\u0026ux_mode=popup\u0026ui_mode=card\u0026as=P4YV9BuuJfbPkhgedIgHB68Ic8tZeptD9W32v2w9bj8\u0026bs=Ipbn%2F3QC3VM9I38GIrtJVmLS5Dk1IjofnbHBYLgAhPQ\u0026is_itp=true\u0026channel_id=812f53114c3fe45c26c43b93689aef793f17c7859e69e0ece104b435922a6230\u0026origin=https%3A%2F%2Fwww.coinbase.com\u0026oauth2_auth_url=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Fv2%2Fauth","date":"2026-07-26T23:24:06.751Z","timestamp":1785108246751,"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/googlesans/v62/4UaRrENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iq2vgCIhMl07v0x.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://accounts.google.com\r\nSec-GPC: 1\r\nConnection: keep-alive\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: 55216\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:22 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:22 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 29 Oct 2024 18:37:59 GMT\r\ncontent-type: font/woff2\r\nage: 382424\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":55216,"size_decoded":56029,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 55216, version 1.0","md5":"79a898c4178c1c3da9702e53272b28f4","sha1":"47039421fbe12912a6ec8731181f20b0d084eda9","sha256":"d1f470e35f02537a3290ad9015b7c81fe9ca3295f6e691ef564520bcb6314501","sha512":"0a7894f91f314ada88b69e8e710e42fc3c69e5abba5149a52a3ae7aacbc09bcd6332626c1c5bf9f7637d5d1ced6fac7e3a0cffeb780b733b879b71fc7322813a","ssdeep":"768:GM5rYySQ4HdDApsqID60V1GIchzku+4/Asgjo4f7vmyKjrE7iE7RvJ80cDrATlkO:HIe0mxoNkAY4fFK07vM0cDrqzAhHSTf","tlshash":"f04301ebb01a1189e6a2207112261979609b84e19f3fa118717f638d8cd7bfd75d8374","first_seen":"2025-03-21T06:19:09.564073Z","last_seen":"2026-07-27T01:58:24.314391Z","times_seen":119729,"resource_available":false,"data":"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"}},"time_used":85,"timings":{"blocked":35,"dns":0,"connect":0,"send":0,"wait":21,"receive":29,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"images.ctfassets.net/o10es7wu5gm1/3Ib1lnukt8MvV4bDjH2jm7/00bd55a880ce264f3b77253b837760b2/image.png?fm=avif\u0026h=3200\u0026q=65","fqdn":"images.ctfassets.net","domain":"ctfassets.net","tld":"net"},"ip":{"addr":"108.157.229.92","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"imageset","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.065Z","timestamp":1785108244065,"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":"images.ctfassets.net","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Sat, 18 Oct 2025 00:00:00 GMT","end":"Sun, 15 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"3E:39:C1:37:7A:6B:60:8A:D5:73:9E:D7:C4:F9:3A:11:9B:BD:94:2B","sha256":"AC:EA:37:10:54:C2:91:B5:04:B8:B4:CA:CD:35:48:4D:D0:92:78:F6:E2:8B:D9:57:78:20:D6:74:FE:14:16:A9"}}},"request":{"raw":"GET /o10es7wu5gm1/3Ib1lnukt8MvV4bDjH2jm7/00bd55a880ce264f3b77253b837760b2/image.png?fm=avif\u0026h=3200\u0026q=65 HTTP/1.1\r\nHost: images.ctfassets.net\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\nReferer: https://www.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\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\ncontent-type: image/avif\r\ncontent-length: 58504\r\nlast-modified: Mon, 08 Jun 2026 11:26:00 GMT\r\nserver: Contentful Images API\r\naccess-control-allow-origin: *\r\ndate: Sun, 26 Jul 2026 01:16:32 GMT\r\ncache-control: max-age=31536000\r\netag: \"cb6a0179bb66dc5cc112cf1890714c88\"\r\nvary: Accept-Encoding\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 3346055bb53a57ebf02828b88e1ee87c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN56-P2\r\nx-amz-cf-id: O_Do7dlEm3V8_SkR8TP7KCak5jdy1PNTO0y8qnORBWdEN9CFq7ddXQ==\r\nage: 79651\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":58504,"size_decoded":59040,"mime_type":"image/avif","magic":"ISO Media, AVIF Image","md5":"cb6a0179bb66dc5cc112cf1890714c88","sha1":"9bb7cc3ada2077cc0185c36d1f42f3b6324bd33d","sha256":"18c5e9b2389b28df303be11516e4a8c223b7ba619a4fea8ed64940ad38e3f147","sha512":"84a6ddfc964ba9328e8e295dbfbeab85df1b1b60c7e3c7ab9c4bd078d634c57be84334f989699e29705a072a66d31037bfe28a932d9349a2a637129ee7ab4f04","ssdeep":"1536:YETg/P5dvRhn3RdzfqX94bsykGhnFbeIYRqKlEyRrhBI4cg:eHDqXmsAV0IYEqEIhMg","tlshash":"7543020a15bbb29dcdd5313a7c1d8fd5827fa1e40642962fc184ea781fb4d2b2e906cc","first_seen":"2025-12-04T03:04:57.42671Z","last_seen":"2026-07-26T23:25:46.881632Z","times_seen":59,"resource_available":false,"data":"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"}},"time_used":260,"timings":{"blocked":-1,"dns":2,"connect":9,"send":0,"wait":9,"receive":4,"ssl":236},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_BPl0S-Y5.woff2","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.162Z","timestamp":1785108244162,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_BPl0S-Y5.woff2 HTTP/1.1\r\nHost: www.coinbase.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.coinbase.com/assets/sw-cache/a_m3m7GXAn.css\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: font/woff2\r\ncontent-length: 269344\r\nlast-modified: Thu, 11 Jun 2026 20:04:27 GMT\r\netag: \"6db1364cfefcca171fc0d16fe574d5b3\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 4c908c441c16c2ae0f60f3480e16d480.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ZRH52-P1\r\nx-amz-cf-id: B_Sxr1CUWoPvtDl7poVTqUIDOc6rj4nKLSHD3aT6GASFlJux26SMCg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\nage: 3899948\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nvary: accept-encoding\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=0Qd%2FKNVCXhXqGg6cmk6cJV%2BwXZBa%2FZDUX4IQHT8gcPt9SfYYYdE%2BjHd3%2BOBiJQ4WNWxZsC72qo9dar3qnZ768yI7Z4CsXB25cC98z%2FRwY5PLZs6oTRLRvEmvbdg7xMwHBCGtcDPcya7qlSWBtafZ\"}]}\r\ncf-ray: a21727de09590883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":269344,"size_decoded":270475,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 269344, version 1.0","md5":"6db1364cfefcca171fc0d16fe574d5b3","sha1":"156b293afd6c04975ec5df8aba6483ffbdc7948e","sha256":"ae9adc07116c7138aaffb65ddc3ab58072c43410aa79bac2b5bb5ff5b776e214","sha512":"8929a246b37be40f650cceccfdeab2c7dd45cf33b13256691ed9fbf38f65b51169d09985d9468b877450daf0e19b2236f1d9ed75016d0fb19f52d5be032f65e2","ssdeep":"6144:a1FVEHoSKvScOLU/zKH2P2nX3KZThQq/Qfzs8NhEU6:azVE+WLOz8bnXa5n8Nhs","tlshash":"ab4422fdaa21f0ed1313360feeed24c9312861f06fa95f2adde2b44f6660c6864815d5","first_seen":"2026-06-14T20:58:11.601203Z","last_seen":"2026-07-26T23:25:46.866596Z","times_seen":11,"resource_available":false,"data":"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"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"static-assets.coinbase.com/growth/acquisition/global-nav/upsell/company_upsell.png","fqdn":"static-assets.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.174Z","timestamp":1785108244174,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /growth/acquisition/global-nav/upsell/company_upsell.png HTTP/1.1\r\nHost: static-assets.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-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\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: image/png\r\ncontent-length: 137109\r\nlast-modified: Fri, 01 May 2026 22:21:55 GMT\r\netag: \"88a56f9234cef67b53e51c6ff50df936\"\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 787de0aa0371eba474a8c46f5e765802.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: VIE50-P4\r\nx-amz-cf-id: ae84Bg_uTN6Q08mOBYnbuyZ7xbwBlPjefDCIWlGeC9cYzoA48ZfBhg==\r\npriority: u=4;i=?0,cf-chb=(45;u=5;i)\r\ncf-polished: ok, orig_size=137124\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\ncf-bgj: imgq:85,h2pri\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=UEoxW8BN9K1l72JGH6Ojrl4CDLv1vEKE2ZmT6e2SAGkTJLvA%2FNo1Pgymd1lDMiWavEUXEKDavUncYFEvvtHzF2Cf%2BOvbVHloaDIMi2GmZc7I%2Bpsq0Up%2FyQxEzgZ%2FeIAwCLUJZdfo7vWBOpW8\"}]}\r\nage: 2450\r\nexpires: Mon, 27 Jul 2026 01:24:04 GMT\r\ncache-control: public, max-age=7200\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\ncf-ray: a21727de19880883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":137109,"size_decoded":138321,"mime_type":"image/png","magic":"PNG image data, 600 x 338, 8-bit/color RGB, non-interlaced","md5":"7b4b3b32e222ece49e138f3853ce9c41","sha1":"62288bf26993e7b1b61f5e0f276bce3159e68b29","sha256":"8dd8bb48382728e3f7660781023e9ee53fc1bc8463be57bd2028f474f6cb78e9","sha512":"a2e8ef34b55a8d31943d91f670ca47da113fdb046aa866bcc1d09b8b72ddbe88b773316e881d3e628991875116d830954c193444e6bbcf16839786b18ba8293e","ssdeep":"3072:9UdxP2KReiqn63NSfpjr3nmF+OZW0Tl9gDMtPyUQl:9Udx/4i4Dpj0+OZWYl6Dd","tlshash":"5fd31294e698d50a11d0d8800fb27a1483cfa902c9d96f5cb956c9a19dc3638fdef8b3","first_seen":"2025-10-18T11:05:33.926431Z","last_seen":"2026-07-26T23:25:46.838484Z","times_seen":141,"resource_available":false,"data":"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"}},"time_used":15,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":15,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Cg6TC-7I.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.568Z","timestamp":1785108244568,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_Cg6TC-7I.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"f09a2a5aa31cb003bc1c6efc0215dd01\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 26512aa427c30d93015b4bde75974708.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: zIKGMe8TuUmqvd6rbVg416fdWWHinIDsx1rSVBpRNqFLhtAX1OUCzA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 2931\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=tTsdY2acp7qUUqlABEXikBf9BXpzqyHSexJhk2%2FYHxZzJVWzKbtYPN82bCaFfbrzDc7B%2BIQLP1yCMaHo6GFdMfkkbnboEzhaSmrcBYU4H6q%2Fl231ppJG%2BhKTWKKbJIEbuQLl0VnMb%2Bt8xCW4vgjL\"}]}\r\ncf-ray: a21727e09d750883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":287377,"size_decoded":92138,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (37373)","md5":"f09a2a5aa31cb003bc1c6efc0215dd01","sha1":"fd1ea7277d90f3e9de9f979e1780b6c95ca8c3a7","sha256":"19c28c519fcb18983b725deda4ccbf79d1f025da539505f0f0f218694ccacf47","sha512":"c97665a660b4e996d8226fcad21ba3ee5679147ed4fc8ccf830dd845278e84038ddd6a724734b227b8a28892046c42cc1b6838f05a374ca0a492b5ad124d1885","ssdeep":"3072:zzAqKVgMaXP/2BxqZGh3n9/XPlU7355fNd/z7BFFn7TiSTHHbMOckbqdVdc0Q:zz2VgMaXP/2Bxqwh3n9/XPlU7j5TihrW","tlshash":"d95438ea73a6b47303ed526990b60240f3355999540c502cf27c98eb3da9c4366fbfb9","first_seen":"2026-07-26T23:24:50.355265Z","last_seen":"2026-07-26T23:25:46.82795Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDk5YTVlZmZlLWMwMzItNGMwNy05YThhLTUxZDE2ZGY4ZTZiZGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTk5YTVlZmZlLWMwMzItNGMwNy05YThhLTUxZDE2ZGY4ZTZiZGApfSkoKX1jYXRjaHt9aW1wb3J0e0RkIGFzIGUsRW8gYXMgdCxPbyBhcyBuLF9mIGFzIHIsZ2YgYXMgaX1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7bigpLHIoKTt2YXIgYT1PYmplY3QuZGVmaW5lUHJvcGVydHksbz0oZSx0LG4pPT50IGluIGU/YShlLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KTplW3RdPW4scz0oZSx0LG4pPT5vKGUsdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYCxuKSxjPU9iamVjdC5jcmVhdGUsbD1PYmplY3QuZGVmaW5lUHJvcGVydHksdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGQ9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsZj1PYmplY3QuZ2V0UHJvdG90eXBlT2YscD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LG09KGUsdCk9PigpPT4odHx8ZSgodD17ZXhwb3J0czp7fX0pLmV4cG9ydHMsdCksdC5leHBvcnRzKSxoPW0oKGUsdCk9Pnt0LmV4cG9ydHM9dHlwZW9mIHdpbmRvdzxgdWA/d2luZG93OnR5cGVvZiBnbG9iYWxUaGlzPGB1YD9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPGB1YD9zZWxmOnt9fSksZz1tKChlLHQpPT57dC5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiExO3ZhciB0PW4uY2FsbChlKTtyZXR1cm4gdD09PWBbb2JqZWN0IEZ1bmN0aW9uXWB8fHR5cGVvZiBlPT1gZnVuY3Rpb25gJiZ0IT09YFtvYmplY3QgUmVnRXhwXWB8fHR5cGVvZiB3aW5kb3c8YHVgJiYoZT09PXdpbmRvdy5zZXRUaW1lb3V0fHxlPT09d2luZG93LmFsZXJ0fHxlPT09d2luZG93LmNvbmZpcm18fGU9PT13aW5kb3cucHJvbXB0KX07dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ30pLF89bSgoZSx0KT0+e3ZhciBuPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL15ccyt8XHMrJC9nLGBgKX0scj1mdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT09YFtvYmplY3QgQXJyYXldYH07dC5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybnt9O2Zvcih2YXIgdD17fSxpPW4oZSkuc3BsaXQoYApgKSxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciBvPWlbYV0scz1vLmluZGV4T2YoYDpgKSxjPW4oby5zbGljZSgwLHMpKS50b0xvd2VyQ2FzZSgpLGw9bihvLnNsaWNlKHMrMSkpO3RbY109PT12b2lkIDA/dFtjXT1sOnIodFtjXSk/dFtjXS5wdXNoKGwpOnRbY109W3RbY10sbF19cmV0dXJuIHR9fSksdj1tKChlLHQpPT57dC5leHBvcnRzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXt9LHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1hcmd1bWVudHNbdF07Zm9yKHZhciBpIGluIHIpbi5jYWxsKHIsaSkmJihlW2ldPXJbaV0pfXJldHVybiBlfTt2YXIgbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5fSksZWU9bSgoZSx0KT0+e3ZhciBuPWgoKSxyPWcoKSxpPV8oKSxhPXYoKTtmdW5jdGlvbiBvKGUsdCxuKXt2YXIgaT1lO3JldHVybiByKHQpPyhuPXQsdHlwZW9mIGU9PWBzdHJpbmdgJiYoaT17dXJpOmV9KSk6aT1hKHQse3VyaTplfSksaS5jYWxsYmFjaz1uLGl9ZnVuY3Rpb24gcyhlLHQsbil7cmV0dXJuIGModD1vKGUsdCxuKSl9ZnVuY3Rpb24gYyhlKXtpZihlLmNhbGxiYWNrPT09dm9pZCAwKXRocm93IEVycm9yKGBjYWxsYmFjayBhcmd1bWVudCBtaXNzaW5nYCk7dmFyIHQ9ITEsbj1mdW5jdGlvbihuLHIsaSl7dHx8KHQ9ITAsZS5jYWxsYmFjayhuLHIsaSkpfTtmdW5jdGlvbiByKCl7dmFyIGU9dm9pZCAwO2lmKGU9Yy5yZXNwb25zZT9jLnJlc3BvbnNlOmMucmVzcG9uc2VUZXh0fHxmdW5jdGlvbihlKXt0cnl7aWYoZS5yZXNwb25zZVR5cGU9PT1gZG9jdW1lbnRgKXJldHVybiBlLnJlc3BvbnNlWE1MO3ZhciB0PWUucmVzcG9uc2VYTUwmJmUucmVzcG9uc2VYTUwuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lPT09YHBhcnNlcmVycm9yYDtpZihlLnJlc3BvbnNlVHlwZT09PWBgJiYhdClyZXR1cm4gZS5yZXNwb25zZVhNTH1jYXRjaHt9cmV0dXJuIG51bGx9KGMpLF8pdHJ5e2U9SlNPTi5wYXJzZShlKX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24gYShlKXtyZXR1cm4gY2xlYXJUaW1lb3V0KGQpLGUgaW5zdGFuY2VvZiBFcnJvcnx8KGU9RXJyb3IoYGArKGV8fGBVbmtub3duIFhNTEh0dHBSZXF1ZXN0IEVycm9yYCkpKSxlLnN0YXR1c0NvZGU9MCxuKGUsdil9ZnVuY3Rpb24gbygpe2lmKCF1KXt2YXIgdDtjbGVhclRpbWVvdXQoZCksdD1lLnVzZVhEUiYmYy5zdGF0dXM9PT12b2lkIDA/MjAwOmMuc3RhdHVzPT09MTIyMz8yMDQ6Yy5zdGF0dXM7dmFyIGE9dixvPW51bGw7cmV0dXJuIHQ9PT0wP289RXJyb3IoYEludGVybmFsIFhNTEh0dHBSZXF1ZXN0IEVycm9yYCk6KGE9e2JvZHk6cigpLHN0YXR1c0NvZGU6dCxtZXRob2Q6cCxoZWFkZXJzOnt9LHVybDpmLHJhd1JlcXVlc3Q6Y30sYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMmJihhLmhlYWRlcnM9aShjLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSkpLG4obyxhLGEuYm9keSl9fXZhciBjPWUueGhyfHxudWxsO2N8fChjPWUuY29yc3x8ZS51c2VYRFI/bmV3IHMuWERvbWFpblJlcXVlc3Q6bmV3IHMuWE1MSHR0cFJlcXVlc3QpO3ZhciBsLHUsZCxmPWMudXJsPWUudXJpfHxlLnVybCxwPWMubWV0aG9kPWUubWV0aG9kfHxgR0VUYCxtPWUuYm9keXx8ZS5kYXRhLGg9Yy5oZWFkZXJzPWUuaGVhZGVyc3x8e30sZz0hIWUuc3luYyxfPSExLHY9e2JvZHk6dm9pZCAwLGhlYWRlcnM6e30sc3RhdHVzQ29kZTowLG1ldGhvZDpwLHVybDpmLHJhd1JlcXVlc3Q6Y307aWYoYGpzb25gaW4gZSYmZS5qc29uIT09ITEmJihfPSEwLGguYWNjZXB0fHxoLkFjY2VwdHx8KGguQWNjZXB0PWBhcHBsaWNhdGlvbi9qc29uYCkscCE9PWBHRVRgJiZwIT09YEhFQURgJiYoaFtgY29udGVudC10eXBlYF18fGhbYENvbnRlbnQtVHlwZWBdfHwoaFtgQ29udGVudC1UeXBlYF09YGFwcGxpY2F0aW9uL2pzb25gKSxtPUpTT04uc3RyaW5naWZ5KGUuanNvbj09PSEwP206ZS5qc29uKSkpLGMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7Yy5yZWFkeVN0YXRlPT09NCYmc2V0VGltZW91dChvLDApfSxjLm9ubG9hZD1vLGMub25lcnJvcj1hLGMub25wcm9ncmVzcz1mdW5jdGlvbigpe30sYy5vbmFib3J0PWZ1bmN0aW9uKCl7dT0hMH0sYy5vbnRpbWVvdXQ9YSxjLm9wZW4ocCxmLCFnLGUudXNlcm5hbWUsZS5wYXNzd29yZCksZ3x8KGMud2l0aENyZWRlbnRpYWxzPSEhZS53aXRoQ3JlZGVudGlhbHMpLCFnJiZlLnRpbWVvdXQ+MCYmKGQ9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKCF1KXt1PSEwLGMuYWJvcnQoYHRpbWVvdXRgKTt2YXIgZT1FcnJvcihgWE1MSHR0cFJlcXVlc3QgdGltZW91dGApO2UuY29kZT1gRVRJTUVET1VUYCxhKGUpfX0sZS50aW1lb3V0KSksYy5zZXRSZXF1ZXN0SGVhZGVyKWZvcihsIGluIGgpaC5oYXNPd25Qcm9wZXJ0eShsKSYmYy5zZXRSZXF1ZXN0SGVhZGVyKGwsaFtsXSk7ZWxzZSBpZihlLmhlYWRlcnMmJiFmdW5jdGlvbihlKXtmb3IodmFyIHQgaW4gZSlpZihlLmhhc093blByb3BlcnR5KHQpKXJldHVybiExO3JldHVybiEwfShlLmhlYWRlcnMpKXRocm93IEVycm9yKGBIZWFkZXJzIGNhbm5vdCBiZSBzZXQgb24gYW4gWERvbWFpblJlcXVlc3Qgb2JqZWN0YCk7cmV0dXJuYHJlc3BvbnNlVHlwZWBpbiBlJiYoYy5yZXNwb25zZVR5cGU9ZS5yZXNwb25zZVR5cGUpLGBiZWZvcmVTZW5kYGluIGUmJnR5cGVvZiBlLmJlZm9yZVNlbmQ9PWBmdW5jdGlvbmAmJmUuYmVmb3JlU2VuZChjKSxjLnNlbmQobXx8bnVsbCksY310LmV4cG9ydHM9cyx0LmV4cG9ydHMuZGVmYXVsdD1zLHMuWE1MSHR0cFJlcXVlc3Q9bi5YTUxIdHRwUmVxdWVzdHx8ZnVuY3Rpb24oKXt9LHMuWERvbWFpblJlcXVlc3Q9YHdpdGhDcmVkZW50aWFsc2BpbiBuZXcgcy5YTUxIdHRwUmVxdWVzdD9zLlhNTEh0dHBSZXF1ZXN0Om4uWERvbWFpblJlcXVlc3QsZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0KGVbbl0pfShbYGdldGAsYHB1dGAsYHBvc3RgLGBwYXRjaGAsYGhlYWRgLGBkZWxldGVgXSxmdW5jdGlvbihlKXtzW2U9PT1gZGVsZXRlYD9gZGVsYDplXT1mdW5jdGlvbih0LG4scil7cmV0dXJuKG49byh0LG4scikpLm1ldGhvZD1lLnRvVXBwZXJDYXNlKCksYyhuKX19KX0pO2Z1bmN0aW9uIHkoZSx0LC4uLm4pe2lmKCFlKXRocm93IFR5cGVFcnJvcihiKHQsbikpfWZ1bmN0aW9uIGIoZSx0KXtsZXQgbj0wO3JldHVybiBlLnJlcGxhY2UoLyVbb3NdL2d1LCgpPT50ZSh0W24rK10pKX1mdW5jdGlvbiB0ZShlKXtyZXR1cm4gdHlwZW9mIGUhPWBvYmplY3RgfHwhZT9TdHJpbmcoZSk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpfXZhciB4PXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2Ygc2VsZjxgdWA/c2VsZjp0eXBlb2YgZ2xvYmFsVGhpczxgdWB8fHR5cGVvZiBnbG9iYWxUaGlzPGB1YD9nbG9iYWxUaGlzOnZvaWQgMCxTPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5jb2RlPWUsdGhpcy5tZXNzYWdlPXR9d2FybiguLi5lKXt0cnl7bGV0IHQ9KEVycm9yKCkuc3RhY2s/P2BgKS5yZXBsYWNlKC9eKD86Lis/XG4pezJ9L2d1LGAKYCk7Y29uc29sZS53YXJuKHRoaXMubWVzc2FnZSwuLi5lLHQpfWNhdGNoe319fSxuZT1uZXcgUyhgVzAxYCxgVW5hYmxlIHRvIGluaXRpYWxpemUgZXZlbnQgdW5kZXIgZGlzcGF0Y2hpbmcuYCkscmU9bmV3IFMoYFcwMmAsYEFzc2lnbmluZyBhbnkgZmFsc3kgdmFsdWUgdG8gJ2NhbmNlbEJ1YmJsZScgcHJvcGVydHkgaGFzIG5vIGVmZmVjdC5gKSxpZT1uZXcgUyhgVzAzYCxgQXNzaWduaW5nIGFueSB0cnV0aHkgdmFsdWUgdG8gJ3JldHVyblZhbHVlJyBwcm9wZXJ0eSBoYXMgbm8gZWZmZWN0LmApLEM9bmV3IFMoYFcwNGAsYFVuYWJsZSB0byBwcmV2ZW50RGVmYXVsdCBvbiBub24tY2FuY2VsYWJsZSBldmVudHMuYCksYWU9bmV3IFMoYFcwNWAsYFVuYWJsZSB0byBwcmV2ZW50RGVmYXVsdCBpbnNpZGUgcGFzc2l2ZSBldmVudCBsaXN0ZW5lciBpbnZvY2F0aW9uLmApLG9lPW5ldyBTKGBXMDZgLGBBbiBldmVudCBsaXN0ZW5lciB3YXNuJ3QgYWRkZWQgYmVjYXVzZSBpdCBoYXMgYmVlbiBhZGRlZCBhbHJlYWR5OiAlbywgJW9gKSxzZT1uZXcgUyhgVzA3YCxgVGhlICVvIG9wdGlvbiB2YWx1ZSB3YXMgYWJhbmRvbmVkIGJlY2F1c2UgdGhlIGV2ZW50IGxpc3RlbmVyIHdhc24ndCBhZGRlZCBhcyBkdXBsaWNhdGVkLmApLGNlPW5ldyBTKGBXMDhgLGBUaGUgJ2NhbGxiYWNrJyBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24gb3IgYW4gb2JqZWN0IHRoYXQgaGFzICdoYW5kbGVFdmVudCcgbWV0aG9kOiAlb2ApLHc9Y2xhc3N7c3RhdGljIGdldCBOT05FKCl7cmV0dXJuIGxlfXN0YXRpYyBnZXQgQ0FQVFVSSU5HX1BIQVNFKCl7cmV0dXJuIHVlfXN0YXRpYyBnZXQgQVRfVEFSR0VUKCl7cmV0dXJuIGRlfXN0YXRpYyBnZXQgQlVCQkxJTkdfUEhBU0UoKXtyZXR1cm4gZmV9Y29uc3RydWN0b3IoZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxgaXNUcnVzdGVkYCx7dmFsdWU6ITEsZW51bWVyYWJsZTohMH0pO2xldCBuPXQ/P3t9O3BlLnNldCh0aGlzLHt0eXBlOlN0cmluZyhlKSxidWJibGVzOiEhbi5idWJibGVzLGNhbmNlbGFibGU6ISFuLmNhbmNlbGFibGUsY29tcG9zZWQ6ISFuLmNvbXBvc2VkLHRhcmdldDpudWxsLGN1cnJlbnRUYXJnZXQ6bnVsbCxzdG9wUHJvcGFnYXRpb25GbGFnOiExLHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbkZsYWc6ITEsY2FuY2VsZWRGbGFnOiExLGluUGFzc2l2ZUxpc3RlbmVyRmxhZzohMSxkaXNwYXRjaEZsYWc6ITEsdGltZVN0YW1wOkRhdGUubm93KCl9KX1nZXQgdHlwZSgpe3JldHVybiBUKHRoaXMpLnR5cGV9Z2V0IHRhcmdldCgpe3JldHVybiBUKHRoaXMpLnRhcmdldH1nZXQgc3JjRWxlbWVudCgpe3JldHVybiBUKHRoaXMpLnRhcmdldH1nZXQgY3VycmVudFRhcmdldCgpe3JldHVybiBUKHRoaXMpLmN1cnJlbnRUYXJnZXR9Y29tcG9zZWRQYXRoKCl7bGV0IGU9VCh0aGlzKS5jdXJyZW50VGFyZ2V0O3JldHVybiBlP1tlXTpbXX1nZXQgTk9ORSgpe3JldHVybiBsZX1nZXQgQ0FQVFVSSU5HX1BIQVNFKCl7cmV0dXJuIHVlfWdldCBBVF9UQVJHRVQoKXtyZXR1cm4gZGV9Z2V0IEJVQkJMSU5HX1BIQVNFKCl7cmV0dXJuIGZlfWdldCBldmVudFBoYXNlKCl7cmV0dXJuIFQodGhpcykuZGlzcGF0Y2hGbGFnPzI6MH1zdG9wUHJvcGFnYXRpb24oKXtUKHRoaXMpLnN0b3BQcm9wYWdhdGlvbkZsYWc9ITB9Z2V0IGNhbmNlbEJ1YmJsZSgpe3JldHVybiBUKHRoaXMpLnN0b3BQcm9wYWdhdGlvbkZsYWd9c2V0IGNhbmNlbEJ1YmJsZShlKXtlP1QodGhpcykuc3RvcFByb3BhZ2F0aW9uRmxhZz0hMDpyZS53YXJuKCl9c3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl7bGV0IGU9VCh0aGlzKTtlLnN0b3BQcm9wYWdhdGlvbkZsYWc9ZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb25GbGFnPSEwfWdldCBidWJibGVzKCl7cmV0dXJuIFQodGhpcykuYnViYmxlc31nZXQgY2FuY2VsYWJsZSgpe3JldHVybiBUKHRoaXMpLmNhbmNlbGFibGV9Z2V0IHJldHVyblZhbHVlKCl7cmV0dXJuIVQodGhpcykuY2FuY2VsZWRGbGFnfXNldCByZXR1cm5WYWx1ZShlKXtlP2llLndhcm4oKTptZShUKHRoaXMpKX1wcmV2ZW50RGVmYXVsdCgpe21lKFQodGhpcykpfWdldCBkZWZhdWx0UHJldmVudGVkKCl7cmV0dXJuIFQodGhpcykuY2FuY2VsZWRGbGFnfWdldCBjb21wb3NlZCgpe3JldHVybiBUKHRoaXMpLmNvbXBvc2VkfWdldCBpc1RydXN0ZWQoKXtyZXR1cm4hMX1nZXQgdGltZVN0YW1wKCl7cmV0dXJuIFQodGhpcykudGltZVN0YW1wfWluaXRFdmVudChlLHQ9ITEsbj0hMSl7bGV0IHI9VCh0aGlzKTtyLmRpc3BhdGNoRmxhZz9uZS53YXJuKCk6cGUuc2V0KHRoaXMsey4uLnIsdHlwZTpTdHJpbmcoZSksYnViYmxlczohIXQsY2FuY2VsYWJsZTohIW4sdGFyZ2V0Om51bGwsY3VycmVudFRhcmdldDpudWxsLHN0b3BQcm9wYWdhdGlvbkZsYWc6ITEsc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uRmxhZzohMSxjYW5jZWxlZEZsYWc6ITF9KX19LGxlPTAsdWU9MSxkZT0yLGZlPTMscGU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gVChlLHQ9YHRoaXNgKXtsZXQgbj1wZS5nZXQoZSk7cmV0dXJuIHkobiE9bnVsbCxgJyVzJyBtdXN0IGJlIGFuIG9iamVjdCB0aGF0IEV2ZW50IGNvbnN0cnVjdG9yIGNyZWF0ZWQsIGJ1dCBnb3QgYW5vdGhlciBvbmU6ICVvYCx0LGUpLG59ZnVuY3Rpb24gbWUoZSl7ZS5pblBhc3NpdmVMaXN0ZW5lckZsYWc/YWUud2FybigpOmUuY2FuY2VsYWJsZT9lLmNhbmNlbGVkRmxhZz0hMDpDLndhcm4oKX1PYmplY3QuZGVmaW5lUHJvcGVydHkodyxgTk9ORWAse2VudW1lcmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodyxgQ0FQVFVSSU5HX1BIQVNFYCx7ZW51bWVyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LGBBVF9UQVJHRVRgLHtlbnVtZXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcsYEJVQkJMSU5HX1BIQVNFYCx7ZW51bWVyYWJsZTohMH0pO3ZhciBoZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3LnByb3RvdHlwZSk7Zm9yKGxldCBlPTA7ZTxoZS5sZW5ndGg7KytlKWhlW2VdIT09YGNvbnN0cnVjdG9yYCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHcucHJvdG90eXBlLGhlW2VdLHtlbnVtZXJhYmxlOiEwfSk7eCE9PXZvaWQgMCYmeC5FdmVudCE9PXZvaWQgMCYmT2JqZWN0LnNldFByb3RvdHlwZU9mKHcucHJvdG90eXBlLHguRXZlbnQucHJvdG90eXBlKTt2YXIgZ2UsX2U9e0lOREVYX1NJWkVfRVJSOjEsRE9NU1RSSU5HX1NJWkVfRVJSOjIsSElFUkFSQ0hZX1JFUVVFU1RfRVJSOjMsV1JPTkdfRE9DVU1FTlRfRVJSOjQsSU5WQUxJRF9DSEFSQUNURVJfRVJSOjUsTk9fREFUQV9BTExPV0VEX0VSUjo2LE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjo3LE5PVF9GT1VORF9FUlI6OCxOT1RfU1VQUE9SVEVEX0VSUjo5LElOVVNFX0FUVFJJQlVURV9FUlI6MTAsSU5WQUxJRF9TVEFURV9FUlI6MTEsU1lOVEFYX0VSUjoxMixJTlZBTElEX01PRElGSUNBVElPTl9FUlI6MTMsTkFNRVNQQUNFX0VSUjoxNCxJTlZBTElEX0FDQ0VTU19FUlI6MTUsVkFMSURBVElPTl9FUlI6MTYsVFlQRV9NSVNNQVRDSF9FUlI6MTcsU0VDVVJJVFlfRVJSOjE4LE5FVFdPUktfRVJSOjE5LEFCT1JUX0VSUjoyMCxVUkxfTUlTTUFUQ0hfRVJSOjIxLFFVT1RBX0VYQ0VFREVEX0VSUjoyMixUSU1FT1VUX0VSUjoyMyxJTlZBTElEX05PREVfVFlQRV9FUlI6MjQsREFUQV9DTE9ORV9FUlI6MjV9O2Z1bmN0aW9uIHZlKGUpe2xldCB0PU9iamVjdC5rZXlzKF9lKTtmb3IobGV0IG49MDtuPHQubGVuZ3RoOysrbil7bGV0IHI9dFtuXSxpPV9lW3JdO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIse2dldDooKT0+aSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfX12YXIgeWU9Y2xhc3MgZXh0ZW5kcyB3e3N0YXRpYyB3cmFwKGUpe3JldHVybiBuZXcoQ2UoZSkpKGUpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKGUudHlwZSx7YnViYmxlczplLmJ1YmJsZXMsY2FuY2VsYWJsZTplLmNhbmNlbGFibGUsY29tcG9zZWQ6ZS5jb21wb3NlZH0pLGUuY2FuY2VsQnViYmxlJiZzdXBlci5zdG9wUHJvcGFnYXRpb24oKSxlLmRlZmF1bHRQcmV2ZW50ZWQmJnN1cGVyLnByZXZlbnREZWZhdWx0KCksYmUuc2V0KHRoaXMse29yaWdpbmFsOmV9KTtsZXQgdD1PYmplY3Qua2V5cyhlKTtmb3IobGV0IG49MDtuPHQubGVuZ3RoOysrbil7bGV0IHI9dFtuXTtyIGluIHRoaXN8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLHIsd2UoZSxyKSl9fXN0b3BQcm9wYWdhdGlvbigpe3N1cGVyLnN0b3BQcm9wYWdhdGlvbigpO2xldHtvcmlnaW5hbDplfT14ZSh0aGlzKTtgc3RvcFByb3BhZ2F0aW9uYGluIGUmJmUuc3RvcFByb3BhZ2F0aW9uKCl9Z2V0IGNhbmNlbEJ1YmJsZSgpe3JldHVybiBzdXBlci5jYW5jZWxCdWJibGV9c2V0IGNhbmNlbEJ1YmJsZShlKXtzdXBlci5jYW5jZWxCdWJibGU9ZTtsZXR7b3JpZ2luYWw6dH09eGUodGhpcyk7YGNhbmNlbEJ1YmJsZWBpbiB0JiYodC5jYW5jZWxCdWJibGU9ZSl9c3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl7c3VwZXIuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7bGV0e29yaWdpbmFsOmV9PXhlKHRoaXMpO2BzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb25gaW4gZSYmZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1nZXQgcmV0dXJuVmFsdWUoKXtyZXR1cm4gc3VwZXIucmV0dXJuVmFsdWV9c2V0IHJldHVyblZhbHVlKGUpe3N1cGVyLnJldHVyblZhbHVlPWU7bGV0e29yaWdpbmFsOnR9PXhlKHRoaXMpO2ByZXR1cm5WYWx1ZWBpbiB0JiYodC5yZXR1cm5WYWx1ZT1lKX1wcmV2ZW50RGVmYXVsdCgpe3N1cGVyLnByZXZlbnREZWZhdWx0KCk7bGV0e29yaWdpbmFsOmV9PXhlKHRoaXMpO2BwcmV2ZW50RGVmYXVsdGBpbiBlJiZlLnByZXZlbnREZWZhdWx0KCl9Z2V0IHRpbWVTdGFtcCgpe2xldHtvcmlnaW5hbDplfT14ZSh0aGlzKTtyZXR1cm5gdGltZVN0YW1wYGluIGU/ZS50aW1lU3RhbXA6c3VwZXIudGltZVN0YW1wfX0sYmU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24geGUoZSl7bGV0IHQ9YmUuZ2V0KGUpO3JldHVybiB5KHQhPW51bGwsYCd0aGlzJyBpcyBleHBlY3RlZCBhbiBFdmVudCBvYmplY3QsIGJ1dCBnb3RgLGUpLHR9dmFyIFNlPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIENlKGUpe2xldCB0PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtpZih0PT1udWxsKXJldHVybiB5ZTtsZXQgbj1TZS5nZXQodCk7cmV0dXJuIG4/PyhuPWZ1bmN0aW9uKGUsdCl7Y2xhc3MgbiBleHRlbmRzIGV7fWxldCByPU9iamVjdC5rZXlzKHQpO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7KytlKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxyW2VdLHdlKHQscltlXSkpO3JldHVybiBufShDZSh0KSx0KSxTZS5zZXQodCxuKSksbn1mdW5jdGlvbiB3ZShlLHQpe2xldCBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTtyZXR1cm57Z2V0KCl7bGV0IGU9eGUodGhpcykub3JpZ2luYWwsbj1lW3RdO3JldHVybiB0eXBlb2Ygbj09YGZ1bmN0aW9uYD9uLmJpbmQoZSk6bn0sc2V0KGUpe3hlKHRoaXMpLm9yaWdpbmFsW3RdPWV9LGNvbmZpZ3VyYWJsZTpuLmNvbmZpZ3VyYWJsZSxlbnVtZXJhYmxlOm4uZW51bWVyYWJsZX19ZnVuY3Rpb24gVGUoZSl7cmV0dXJuISgxJn5lLmZsYWdzKX1mdW5jdGlvbiBFZShlKXtyZXR1cm4hKDImfmUuZmxhZ3MpfWZ1bmN0aW9uIERlKGUpe3JldHVybiEoNCZ+ZS5mbGFncyl9ZnVuY3Rpb24gT2UoZSl7cmV0dXJuISg4Jn5lLmZsYWdzKX1mdW5jdGlvbiBrZSh7Y2FsbGJhY2s6ZX0sdCxuKXt0cnl7dHlwZW9mIGU9PWBmdW5jdGlvbmA/ZS5jYWxsKHQsbik6dHlwZW9mIGUuaGFuZGxlRXZlbnQ9PWBmdW5jdGlvbmAmJmUuaGFuZGxlRXZlbnQobil9Y2F0Y2goZSl7KGZ1bmN0aW9uKGUpe3RyeXtsZXQgdD1lIGluc3RhbmNlb2YgRXJyb3I/ZTpFcnJvcih0ZShlKSk7aWYodHlwZW9mIGRpc3BhdGNoRXZlbnQ9PWBmdW5jdGlvbmAmJnR5cGVvZiBFcnJvckV2ZW50PT1gZnVuY3Rpb25gKWRpc3BhdGNoRXZlbnQobmV3IEVycm9yRXZlbnQoYGVycm9yYCx7ZXJyb3I6dCxtZXNzYWdlOnQubWVzc2FnZX0pKTtlbHNlIGlmKHR5cGVvZiBpPGB1YCYmdHlwZW9mIGkuZW1pdD09YGZ1bmN0aW9uYClyZXR1cm4gdm9pZCBpLmVtaXQoYHVuY2F1Z2h0RXhjZXB0aW9uYCx0KTtjb25zb2xlLmVycm9yKHQpfWNhdGNoe319KShlKX19ZnVuY3Rpb24gQWUoe2xpc3RlbmVyczplfSx0LG4pe2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7KytyKWlmKGVbcl0uY2FsbGJhY2s9PT10JiZUZShlW3JdKT09PW4pcmV0dXJuIHI7cmV0dXJuLTF9ZnVuY3Rpb24gamUoZSx0LG4pe2xldCByPUFlKGUsdCxuKTtyZXR1cm4gciE9PS0xJiZNZShlLHIpfWZ1bmN0aW9uIE1lKGUsdCxuPSExKXtsZXQgcj1lLmxpc3RlbmVyc1t0XTtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5mbGFnc3w9OH0ociksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoYGFib3J0YCxyLnNpZ25hbExpc3RlbmVyKSxlLmNvdyYmIW4/KGUuY293PSExLGUubGlzdGVuZXJzPWUubGlzdGVuZXJzLmZpbHRlcigoZSxuKT0+biE9PXQpLCExKTooZS5saXN0ZW5lcnMuc3BsaWNlKHQsMSksITApfVNlLnNldChPYmplY3QucHJvdG90eXBlLHllKSx4IT09dm9pZCAwJiZ4LkV2ZW50IT09dm9pZCAwJiZTZS5zZXQoeC5FdmVudC5wcm90b3R5cGUseWUpO3ZhciBOZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe1BlLnNldCh0aGlzLE9iamVjdC5jcmVhdGUobnVsbCkpfWFkZEV2ZW50TGlzdGVuZXIoZSx0LG4pe2xldCByPUZlKHRoaXMpLHtjYWxsYmFjazppLGNhcHR1cmU6YSxvbmNlOm8scGFzc2l2ZTpzLHNpZ25hbDpjLHR5cGU6bH09ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBJZSh0KSx0eXBlb2Ygbj09YG9iamVjdGAmJm4/e3R5cGU6U3RyaW5nKGUpLGNhbGxiYWNrOnQ/P3ZvaWQgMCxjYXB0dXJlOiEhbi5jYXB0dXJlLHBhc3NpdmU6ISFuLnBhc3NpdmUsb25jZTohIW4ub25jZSxzaWduYWw6bi5zaWduYWw/P3ZvaWQgMH06e3R5cGU6U3RyaW5nKGUpLGNhbGxiYWNrOnQ/P3ZvaWQgMCxjYXB0dXJlOiEhbixwYXNzaXZlOiExLG9uY2U6ITEsc2lnbmFsOnZvaWQgMH19KGUsdCxuKTtpZihpPT1udWxsfHxjIT1udWxsJiZjLmFib3J0ZWQpcmV0dXJuO2xldCB1PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbdF0/PyhlW3RdPXthdHRyQ2FsbGJhY2s6dm9pZCAwLGF0dHJMaXN0ZW5lcjp2b2lkIDAsY293OiExLGxpc3RlbmVyczpbXX0pfShyLGwpLGQ9QWUodSxpLGEpO2Q9PT0tMT9mdW5jdGlvbihlLHQsbixyLGksYSl7bGV0IG87YSYmKG89amUuYmluZChudWxsLGUsdCxuKSxhLmFkZEV2ZW50TGlzdGVuZXIoYGFib3J0YCxvKSk7bGV0IHM9ZnVuY3Rpb24oZSx0LG4scixpLGEpe3JldHVybntjYWxsYmFjazplLGZsYWdzOiEhdHwobj8yOjApfChyPzQ6MCksc2lnbmFsOmksc2lnbmFsTGlzdGVuZXI6YX19KHQsbixyLGksYSxvKTtlLmNvdz8oZS5jb3c9ITEsZS5saXN0ZW5lcnM9Wy4uLmUubGlzdGVuZXJzLHNdKTplLmxpc3RlbmVycy5wdXNoKHMpfSh1LGksYSxzLG8sYyk6ZnVuY3Rpb24oZSx0LG4scil7b2Uud2FybihUZShlKT9gY2FwdHVyZWA6YGJ1YmJsZWAsZS5jYWxsYmFjayksRWUoZSkhPT10JiZzZS53YXJuKGBwYXNzaXZlYCksRGUoZSkhPT1uJiZzZS53YXJuKGBvbmNlYCksZS5zaWduYWwhPT1yJiZzZS53YXJuKGBzaWduYWxgKX0odS5saXN0ZW5lcnNbZF0scyxvLGMpfXJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0LG4pe2xldCByPUZlKHRoaXMpLHtjYWxsYmFjazppLGNhcHR1cmU6YSx0eXBlOm99PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gSWUodCksdHlwZW9mIG49PWBvYmplY3RgJiZuP3t0eXBlOlN0cmluZyhlKSxjYWxsYmFjazp0Pz92b2lkIDAsY2FwdHVyZTohIW4uY2FwdHVyZX06e3R5cGU6U3RyaW5nKGUpLGNhbGxiYWNrOnQ/P3ZvaWQgMCxjYXB0dXJlOiEhbn19KGUsdCxuKSxzPXJbb107aSE9bnVsbCYmcyYmamUocyxpLGEpfWRpc3BhdGNoRXZlbnQoZSl7bGV0IHQ9RmUodGhpcylbU3RyaW5nKGUudHlwZSldO2lmKHQ9PW51bGwpcmV0dXJuITA7bGV0IG49ZSBpbnN0YW5jZW9mIHc/ZTp5ZS53cmFwKGUpLHI9VChuLGBldmVudGApO2lmKHIuZGlzcGF0Y2hGbGFnKXRocm93IGk9YFRoaXMgZXZlbnQgaGFzIGJlZW4gaW4gZGlzcGF0Y2hpbmcuYCx4LkRPTUV4Y2VwdGlvbj9uZXcgeC5ET01FeGNlcHRpb24oaSxgSW52YWxpZFN0YXRlRXJyb3JgKTooZ2U/PyhnZT1jbGFzcyBlIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IodCl7c3VwZXIodCksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsZSl9Z2V0IGNvZGUoKXtyZXR1cm4gMTF9Z2V0IG5hbWUoKXtyZXR1cm5gSW52YWxpZFN0YXRlRXJyb3JgfX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZ2UucHJvdG90eXBlLHtjb2RlOntlbnVtZXJhYmxlOiEwfSxuYW1lOntlbnVtZXJhYmxlOiEwfX0pLHZlKGdlKSx2ZShnZS5wcm90b3R5cGUpKSxuZXcgZ2UoaSkpO3ZhciBpO2lmKHIuZGlzcGF0Y2hGbGFnPSEwLHIudGFyZ2V0PXIuY3VycmVudFRhcmdldD10aGlzLCFyLnN0b3BQcm9wYWdhdGlvbkZsYWcpe2xldHtjb3c6ZSxsaXN0ZW5lcnM6aX09dDt0LmNvdz0hMDtmb3IobGV0IGE9MDthPGkubGVuZ3RoOysrYSl7bGV0IG89aVthXTtpZighT2UobykmJihEZShvKSYmTWUodCxhLCFlKSYmLS1hLHIuaW5QYXNzaXZlTGlzdGVuZXJGbGFnPUVlKG8pLGtlKG8sdGhpcyxuKSxyLmluUGFzc2l2ZUxpc3RlbmVyRmxhZz0hMSxyLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbkZsYWcpKWJyZWFrfWV8fCh0LmNvdz0hMSl9cmV0dXJuIHIudGFyZ2V0PW51bGwsci5jdXJyZW50VGFyZ2V0PW51bGwsci5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb25GbGFnPSExLHIuc3RvcFByb3BhZ2F0aW9uRmxhZz0hMSxyLmRpc3BhdGNoRmxhZz0hMSwhci5jYW5jZWxlZEZsYWd9fSxQZT1uZXcgV2Vha01hcDtmdW5jdGlvbiBGZShlLHQ9YHRoaXNgKXtsZXQgbj1QZS5nZXQoZSk7cmV0dXJuIHkobiE9bnVsbCxgJyVzJyBtdXN0IGJlIGFuIG9iamVjdCB0aGF0IEV2ZW50VGFyZ2V0IGNvbnN0cnVjdG9yIGNyZWF0ZWQsIGJ1dCBnb3QgYW5vdGhlciBvbmU6ICVvYCx0LGUpLG59ZnVuY3Rpb24gSWUoZSl7aWYodHlwZW9mIGUhPWBmdW5jdGlvbmAmJih0eXBlb2YgZSE9YG9iamVjdGB8fCFlfHx0eXBlb2YgZS5oYW5kbGVFdmVudCE9YGZ1bmN0aW9uYCkpe2lmKGU9PW51bGx8fHR5cGVvZiBlPT1gb2JqZWN0YClyZXR1cm4gdm9pZCBjZS53YXJuKGUpO3Rocm93IFR5cGVFcnJvcihiKGNlLm1lc3NhZ2UsW2VdKSl9fXZhciBMZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhOZS5wcm90b3R5cGUpO2ZvcihsZXQgZT0wO2U8TGUubGVuZ3RoOysrZSlMZVtlXSE9PWBjb25zdHJ1Y3RvcmAmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShOZS5wcm90b3R5cGUsTGVbZV0se2VudW1lcmFibGU6ITB9KTt4IT09dm9pZCAwJiZ4LkV2ZW50VGFyZ2V0IT09dm9pZCAwJiZPYmplY3Quc2V0UHJvdG90eXBlT2YoTmUucHJvdG90eXBlLHguRXZlbnRUYXJnZXQucHJvdG90eXBlKTt2YXIgUmUsemU9KChlLHQsbik9PihuPWU9PW51bGw/e306YyhmKGUpKSwoKGUsdCxuLHIpPT57aWYodCYmdHlwZW9mIHQ9PWBvYmplY3RgfHx0eXBlb2YgdD09YGZ1bmN0aW9uYClmb3IobGV0IGkgb2YgZCh0KSkhcC5jYWxsKGUsaSkmJmkhPT1uJiZsKGUsaSx7Z2V0OigpPT50W2ldLGVudW1lcmFibGU6IShyPXUodCxpKSl8fHIuZW51bWVyYWJsZX0pO3JldHVybiBlfSkoZSYmZS5fX2VzTW9kdWxlP246bChuLGBkZWZhdWx0YCx7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSksZSkpKShlZSgpKSxCZT01MTJlMyxWZT0yNTYsSGU9KGUse21pbkNodW5rU2l6ZTp0PVZlLG1heENodW5rU2l6ZTpuPUJlfT17fSk9PmU9PW51bGx8fHR5cGVvZiBlPT1gbnVtYmVyYCYmZT49MjU2JiZlJTI1Nj09MCYmZT49dCYmZTw9bixVZT0oZSx7bWluQ2h1bmtTaXplOnQ9VmUsbWF4Q2h1bmtTaXplOm49QmV9PXt9KT0+VHlwZUVycm9yKGBjaHVua1NpemUgJHtlfSBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyIGluIG11bHRpcGxlcyBvZiAyNTYsIGJldHdlZW4gJHt0fSBhbmQgJHtufWApLFdlPWNsYXNze2NvbnN0cnVjdG9yKGUsdD17fSl7aWYodGhpcy5yZWFkYWJsZVN0cmVhbT1lLCFIZSh0LmRlZmF1bHRDaHVua1NpemUsdCkpdGhyb3cgVWUodC5kZWZhdWx0Q2h1bmtTaXplLHQpO3RoaXMuZGVmYXVsdENodW5rU2l6ZT10LmRlZmF1bHRDaHVua1NpemU/PzMwNzIwLHRoaXMubWluQ2h1bmtTaXplPXQubWluQ2h1bmtTaXplPz9WZSx0aGlzLm1heENodW5rU2l6ZT10Lm1heENodW5rU2l6ZT8/QmV9Z2V0IGNodW5rU2l6ZSgpe3JldHVybiB0aGlzLl9jaHVua1NpemU/P3RoaXMuZGVmYXVsdENodW5rU2l6ZX1zZXQgY2h1bmtTaXplKGUpe2lmKCFIZShlLHRoaXMpKXRocm93IFVlKGUsdGhpcyk7dGhpcy5fY2h1bmtTaXplPWV9Z2V0IGNodW5rQnl0ZVNpemUoKXtyZXR1cm4gMTAyNCp0aGlzLmNodW5rU2l6ZX1hc3luYypbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCl7bGV0IGUsdD10aGlzLnJlYWRhYmxlU3RyZWFtLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOm4sdmFsdWU6cn09YXdhaXQgdC5yZWFkKCk7aWYobil7aWYoZSl7bGV0IHQ9ZTtlPXZvaWQgMCx5aWVsZCB0fWJyZWFrfWxldCBpPXIgaW5zdGFuY2VvZiBVaW50OEFycmF5P25ldyBCbG9iKFtyXSx7dHlwZTpgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYH0pOnI7Zm9yKGU9ZT9uZXcgQmxvYihbZSxpXSk6aTtlOyl7aWYoZS5zaXplPT09dGhpcy5jaHVua0J5dGVTaXplKXtsZXQgdD1lO2U9dm9pZCAwLHlpZWxkIHQ7YnJlYWt9aWYoZS5zaXplPHRoaXMuY2h1bmtCeXRlU2l6ZSlicmVhazt7bGV0IHQ9ZS5zbGljZSgwLHRoaXMuY2h1bmtCeXRlU2l6ZSk7ZT1lLnNsaWNlKHRoaXMuY2h1bmtCeXRlU2l6ZSkseWllbGQgdH19fX1maW5hbGx5e2lmKGUpe2xldCB0PWU7ZT12b2lkIDAseWllbGQgdH1yZXR1cm4gdm9pZCB0LnJlbGVhc2VMb2NrKCl9fX0sR2U9WzIwMCwyMDEsMjAyLDIwNCwzMDhdLEtlPVs0MDgsNTAyLDUwMyw1MDRdLHFlPShlLHQpPT4hIWUmJkdlLmluY2x1ZGVzKGUuc3RhdHVzQ29kZSksSmU9KGUsdCk9PnQuYXR0ZW1wdENvdW50Pj10LmF0dGVtcHRzfHwhKHFlKGUpfHwoKGUse3JldHJ5Q29kZXM6dD1LZX0pPT4hZXx8dC5pbmNsdWRlcyhlLnN0YXR1c0NvZGUpKShlLHQpKSxZZT1jbGFzc3tzdGF0aWMgY3JlYXRlVXBsb2FkKGUpe3JldHVybiBuZXcgWWUoZSl9Y29uc3RydWN0b3IoZSl7dGhpcy5lbmRwb2ludD1lLmVuZHBvaW50LHRoaXMuZmlsZT1lLmZpbGUsdGhpcy5oZWFkZXJzPWUuaGVhZGVyc3x8e30sdGhpcy5tZXRob2Q9ZS5tZXRob2R8fGBQVVRgLHRoaXMuYXR0ZW1wdHM9ZS5hdHRlbXB0c3x8NSx0aGlzLmRlbGF5QmVmb3JlQXR0ZW1wdD1lLmRlbGF5QmVmb3JlQXR0ZW1wdHx8MSx0aGlzLnJldHJ5Q29kZXM9ZS5yZXRyeUNvZGVzfHxLZSx0aGlzLmR5bmFtaWNDaHVua1NpemU9ZS5keW5hbWljQ2h1bmtTaXplfHwhMSx0aGlzLm1heEZpbGVCeXRlcz0xMDI0KihlLm1heEZpbGVTaXplfHwwKSx0aGlzLmNodW5rQ291bnQ9MCx0aGlzLmF0dGVtcHRDb3VudD0wLHRoaXMub2ZmbGluZT0hMSx0aGlzLl9wYXVzZWQ9ITEsdGhpcy5zdWNjZXNzPSExLHRoaXMubmV4dENodW5rUmFuZ2VTdGFydD0wLHRoaXMuY2h1bmtlZFN0cmVhbUl0ZXJhYmxlPW5ldyBXZSh0aGlzLmZpbGUuc3RyZWFtKCksey4uLmUsZGVmYXVsdENodW5rU2l6ZTplLmNodW5rU2l6ZX0pLHRoaXMuY2h1bmtlZFN0cmVhbUl0ZXJhdG9yPXRoaXMuY2h1bmtlZFN0cmVhbUl0ZXJhYmxlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpLHRoaXMudG90YWxDaHVua3M9TWF0aC5jZWlsKHRoaXMuZmlsZS5zaXplL3RoaXMuY2h1bmtCeXRlU2l6ZSksdGhpcy5ldmVudFRhcmdldD1uZXcgTmUsdGhpcy52YWxpZGF0ZU9wdGlvbnMoKSx0aGlzLmdldEVuZHBvaW50KCkudGhlbigoKT0+dGhpcy5zZW5kQ2h1bmtzKCkpLHR5cGVvZiB3aW5kb3c8YHVgJiYod2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYG9ubGluZWAsKCk9PnshdGhpcy5vZmZsaW5lfHwodGhpcy5vZmZsaW5lPSExLHRoaXMuZGlzcGF0Y2goYG9ubGluZWApLHRoaXMuc2VuZENodW5rcygpKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGBvZmZsaW5lYCwoKT0+e3RoaXMub2ZmbGluZT0hMCx0aGlzLmRpc3BhdGNoKGBvZmZsaW5lYCl9KSl9Z2V0IG1heENodW5rU2l6ZSgpe3ZhciBlO3JldHVybigoZT10aGlzLmNodW5rZWRTdHJlYW1JdGVyYWJsZSk9PW51bGw/dm9pZCAwOmUubWF4Q2h1bmtTaXplKT8/QmV9Z2V0IG1pbkNodW5rU2l6ZSgpe3ZhciBlO3JldHVybigoZT10aGlzLmNodW5rZWRTdHJlYW1JdGVyYWJsZSk9PW51bGw/dm9pZCAwOmUubWluQ2h1bmtTaXplKT8/VmV9Z2V0IGNodW5rU2l6ZSgpe3ZhciBlO3JldHVybigoZT10aGlzLmNodW5rZWRTdHJlYW1JdGVyYWJsZSk9PW51bGw/dm9pZCAwOmUuY2h1bmtTaXplKT8/MzA3MjB9c2V0IGNodW5rU2l6ZShlKXt0aGlzLmNodW5rZWRTdHJlYW1JdGVyYWJsZS5jaHVua1NpemU9ZX1nZXQgY2h1bmtCeXRlU2l6ZSgpe3JldHVybiB0aGlzLmNodW5rZWRTdHJlYW1JdGVyYWJsZS5jaHVua0J5dGVTaXplfWdldCB0b3RhbENodW5rU2l6ZSgpe3JldHVybiBNYXRoLmNlaWwodGhpcy5maWxlLnNpemUvdGhpcy5jaHVua0J5dGVTaXplKX1vbihlLHQpe3RoaXMuZXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihlLHQpfW9uY2UoZSx0KXt0aGlzLmV2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZSx0LHtvbmNlOiEwfSl9b2ZmKGUsdCl7dGhpcy5ldmVudFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGUsdCl9Z2V0IHBhdXNlZCgpe3JldHVybiB0aGlzLl9wYXVzZWR9YWJvcnQoKXt2YXIgZTt0aGlzLnBhdXNlKCksKGU9dGhpcy5jdXJyZW50WGhyKT09bnVsbHx8ZS5hYm9ydCgpfXBhdXNlKCl7dGhpcy5fcGF1c2VkPSEwfXJlc3VtZSgpe3RoaXMuX3BhdXNlZCYmKHRoaXMuX3BhdXNlZD0hMSx0aGlzLnNlbmRDaHVua3MoKSl9ZGlzcGF0Y2goZSx0KXtsZXQgbj1uZXcgQ3VzdG9tRXZlbnQoZSx7ZGV0YWlsOnR9KTt0aGlzLmV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQobil9dmFsaWRhdGVPcHRpb25zKCl7aWYoIXRoaXMuZW5kcG9pbnR8fHR5cGVvZiB0aGlzLmVuZHBvaW50IT1gZnVuY3Rpb25gJiZ0eXBlb2YgdGhpcy5lbmRwb2ludCE9YHN0cmluZ2ApdGhyb3cgVHlwZUVycm9yKGBlbmRwb2ludCBtdXN0IGJlIGRlZmluZWQgYXMgYSBzdHJpbmcgb3IgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlYCk7aWYoISh0aGlzLmZpbGUgaW5zdGFuY2VvZiBGaWxlKSl0aHJvdyBUeXBlRXJyb3IoYGZpbGUgbXVzdCBiZSBhIEZpbGUgb2JqZWN0YCk7aWYodGhpcy5oZWFkZXJzJiZ0eXBlb2YgdGhpcy5oZWFkZXJzIT1gZnVuY3Rpb25gJiZ0eXBlb2YgdGhpcy5oZWFkZXJzIT1gb2JqZWN0YCl0aHJvdyBUeXBlRXJyb3IoYGhlYWRlcnMgbXVzdCBiZSBudWxsLCBhbiBvYmplY3QsIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9iamVjdCBvciBhIHByb21pc2VgKTtpZighSGUodGhpcy5jaHVua1NpemUse21heENodW5rU2l6ZTp0aGlzLm1heENodW5rU2l6ZSxtaW5DaHVua1NpemU6dGhpcy5taW5DaHVua1NpemV9KSl0aHJvdyBVZSh0aGlzLmNodW5rU2l6ZSx7bWF4Q2h1bmtTaXplOnRoaXMubWF4Q2h1bmtTaXplLG1pbkNodW5rU2l6ZTp0aGlzLm1pbkNodW5rU2l6ZX0pO2lmKHRoaXMubWF4Q2h1bmtTaXplJiYodHlwZW9mIHRoaXMubWF4Q2h1bmtTaXplIT1gbnVtYmVyYHx8dGhpcy5tYXhDaHVua1NpemU8MjU2fHx0aGlzLm1heENodW5rU2l6ZSUyNTYhPTB8fHRoaXMubWF4Q2h1bmtTaXplPHRoaXMuY2h1bmtTaXplfHx0aGlzLm1heENodW5rU2l6ZTx0aGlzLm1pbkNodW5rU2l6ZSkpdGhyb3cgVHlwZUVycm9yKGBtYXhDaHVua1NpemUgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBpbiBtdWx0aXBsZXMgb2YgMjU2LCBhbmQgbGFyZ2VyIHRoYW4gb3IgZXF1YWwgdG8gYm90aCAke3RoaXMubWluQ2h1bmtTaXplfSBhbmQgJHt0aGlzLmNodW5rU2l6ZX1gKTtpZih0aGlzLm1pbkNodW5rU2l6ZSYmKHR5cGVvZiB0aGlzLm1pbkNodW5rU2l6ZSE9YG51bWJlcmB8fHRoaXMubWluQ2h1bmtTaXplPDI1Nnx8dGhpcy5taW5DaHVua1NpemUlMjU2IT0wfHx0aGlzLm1pbkNodW5rU2l6ZT50aGlzLmNodW5rU2l6ZXx8dGhpcy5taW5DaHVua1NpemU+dGhpcy5tYXhDaHVua1NpemUpKXRocm93IFR5cGVFcnJvcihgbWluQ2h1bmtTaXplIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIgaW4gbXVsdGlwbGVzIG9mIDI1NiwgYW5kIHNtYWxsZXIgdGhhbiAke3RoaXMuY2h1bmtTaXplfSBhbmQgJHt0aGlzLm1heENodW5rU2l6ZX1gKTtpZih0aGlzLm1heEZpbGVCeXRlcz4wJiZ0aGlzLm1heEZpbGVCeXRlczx0aGlzLmZpbGUuc2l6ZSl0aHJvdyBFcnJvcihgZmlsZSBzaXplIGV4Y2VlZHMgbWF4aW11bSAoJHt0aGlzLmZpbGUuc2l6ZX0gPiAke3RoaXMubWF4RmlsZUJ5dGVzfSlgKTtpZih0aGlzLmF0dGVtcHRzJiYodHlwZW9mIHRoaXMuYXR0ZW1wdHMhPWBudW1iZXJgfHx0aGlzLmF0dGVtcHRzPD0wKSl0aHJvdyBUeXBlRXJyb3IoYHJldHJpZXMgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcmApO2lmKHRoaXMuZGVsYXlCZWZvcmVBdHRlbXB0JiYodHlwZW9mIHRoaXMuZGVsYXlCZWZvcmVBdHRlbXB0IT1gbnVtYmVyYHx8dGhpcy5kZWxheUJlZm9yZUF0dGVtcHQ8MCkpdGhyb3cgVHlwZUVycm9yKGBkZWxheUJlZm9yZUF0dGVtcHQgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcmApfWdldEVuZHBvaW50KCl7cmV0dXJuIHR5cGVvZiB0aGlzLmVuZHBvaW50PT1gc3RyaW5nYD8odGhpcy5lbmRwb2ludFZhbHVlPXRoaXMuZW5kcG9pbnQsUHJvbWlzZS5yZXNvbHZlKHRoaXMuZW5kcG9pbnQpKTp0aGlzLmVuZHBvaW50KHRoaXMuZmlsZSkudGhlbihlPT4odGhpcy5lbmRwb2ludFZhbHVlPWUsdGhpcy5lbmRwb2ludFZhbHVlKSl9eGhyUHJvbWlzZShlKXtsZXQgdD1lPT57ZS51cGxvYWQub25wcm9ncmVzcz1lPT57bGV0IHQ9dGhpcy50b3RhbENodW5rcy10aGlzLmNodW5rQ291bnQsbj0odGhpcy5maWxlLnNpemUtdGhpcy5uZXh0Q2h1bmtSYW5nZVN0YXJ0KS90aGlzLmZpbGUuc2l6ZS90LHI9dGhpcy5uZXh0Q2h1bmtSYW5nZVN0YXJ0L3RoaXMuZmlsZS5zaXplLGk9ZS5sb2FkZWQvKGUudG90YWw/P3RoaXMuY2h1bmtCeXRlU2l6ZSkqbjt0aGlzLmRpc3BhdGNoKGBwcm9ncmVzc2AsTWF0aC5taW4oMTAwKihyK2kpLDEwMCkpfX07cmV0dXJuIG5ldyBQcm9taXNlKChuLHIpPT57dGhpcy5jdXJyZW50WGhyPSgwLHplLmRlZmF1bHQpKHsuLi5lLGJlZm9yZVNlbmQ6dH0sKGUsdCk9Pih0aGlzLmN1cnJlbnRYaHI9dm9pZCAwLGU/cihlKTpuKHQpKSl9KX1hc3luYyBzZW5kQ2h1bmsoZSl7bGV0IHQ9dGhpcy5uZXh0Q2h1bmtSYW5nZVN0YXJ0LG49dCtlLnNpemUtMSxyPXsuLi5hd2FpdCh0eXBlb2YgdGhpcy5oZWFkZXJzPT1gZnVuY3Rpb25gP3RoaXMuaGVhZGVycygpOnRoaXMuaGVhZGVycyksIkNvbnRlbnQtVHlwZSI6dGhpcy5maWxlLnR5cGUsIkNvbnRlbnQtUmFuZ2UiOmBieXRlcyAke3R9LSR7bn0vJHt0aGlzLmZpbGUuc2l6ZX1gfTtyZXR1cm4gdGhpcy5kaXNwYXRjaChgYXR0ZW1wdGAse2NodW5rTnVtYmVyOnRoaXMuY2h1bmtDb3VudCx0b3RhbENodW5rczp0aGlzLnRvdGFsQ2h1bmtzLGNodW5rU2l6ZTp0aGlzLmNodW5rU2l6ZX0pLHRoaXMueGhyUHJvbWlzZSh7aGVhZGVyczpyLHVybDp0aGlzLmVuZHBvaW50VmFsdWUsbWV0aG9kOnRoaXMubWV0aG9kLGJvZHk6ZX0pfWFzeW5jIHNlbmRDaHVua1dpdGhSZXRyaWVzKGUpe2xldCB0O3RyeXt0aGlzLmF0dGVtcHRDb3VudCs9MSx0aGlzLmxhc3RDaHVua1N0YXJ0PW5ldyBEYXRlLHQ9YXdhaXQgdGhpcy5zZW5kQ2h1bmsoZSl9Y2F0Y2h7fWxldCBuPXtyZXRyeUNvZGVzOnRoaXMucmV0cnlDb2RlcyxhdHRlbXB0Q291bnQ6dGhpcy5hdHRlbXB0Q291bnQsYXR0ZW1wdHM6dGhpcy5hdHRlbXB0c307cmV0dXJuIHFlKHQpPyhhc3luYyBlPT57bGV0IHQ9KG5ldyBEYXRlKCkuZ2V0VGltZSgpLXRoaXMubGFzdENodW5rU3RhcnQuZ2V0VGltZSgpKS8xZTM7aWYodGhpcy5kaXNwYXRjaChgY2h1bmtTdWNjZXNzYCx7Y2h1bms6dGhpcy5jaHVua0NvdW50LGNodW5rU2l6ZTp0aGlzLmNodW5rU2l6ZSxhdHRlbXB0czp0aGlzLmF0dGVtcHRDb3VudCx0aW1lSW50ZXJ2YWw6dCxyZXNwb25zZTplfSksdGhpcy5hdHRlbXB0Q291bnQ9MCx0aGlzLmNodW5rQ291bnQ9KHRoaXMuY2h1bmtDb3VudD8/MCkrMSx0aGlzLm5leHRDaHVua1JhbmdlU3RhcnQrPXRoaXMuY2h1bmtCeXRlU2l6ZSx0aGlzLmR5bmFtaWNDaHVua1NpemUpe2xldCBlPXRoaXMuY2h1bmtTaXplO3Q8MTA/ZT1NYXRoLm1pbigyKnRoaXMuY2h1bmtTaXplLHRoaXMubWF4Q2h1bmtTaXplKTp0PjMwJiYoZT1NYXRoLm1heCh0aGlzLmNodW5rU2l6ZS8yLHRoaXMubWluQ2h1bmtTaXplKSksdGhpcy5jaHVua1NpemU9MjU2Kk1hdGguY2VpbChlLzI1Nik7bGV0IG49KHRoaXMuZmlsZS5zaXplLXRoaXMubmV4dENodW5rUmFuZ2VTdGFydCkvdGhpcy5jaHVua0J5dGVTaXplO3RoaXMudG90YWxDaHVua3M9TWF0aC5jZWlsKHRoaXMuY2h1bmtDb3VudCtuKX1yZXR1cm4hMH0pKHQpOkplKHQsbik/KGFzeW5jIGU9Pih0aGlzLmRpc3BhdGNoKGBlcnJvcmAse21lc3NhZ2U6YFNlcnZlciByZXNwb25kZWQgd2l0aCAke2Uuc3RhdHVzQ29kZX0uIFN0b3BwaW5nIHVwbG9hZC5gLGNodW5rOnRoaXMuY2h1bmtDb3VudCxhdHRlbXB0czp0aGlzLmF0dGVtcHRDb3VudH0pLCExKSkodCk6KGFzeW5jKCk9Pih0aGlzLmRpc3BhdGNoKGBhdHRlbXB0RmFpbHVyZWAse21lc3NhZ2U6YEFuIGVycm9yIG9jY3VyZWQgdXBsb2FkaW5nIGNodW5rICR7dGhpcy5jaHVua0NvdW50fS4gJHt0aGlzLmF0dGVtcHRzLXRoaXMuYXR0ZW1wdENvdW50fSByZXRyaWVzIGxlZnQuYCxjaHVua051bWJlcjp0aGlzLmNodW5rQ291bnQsYXR0ZW1wdHNMZWZ0OnRoaXMuYXR0ZW1wdHMtdGhpcy5hdHRlbXB0Q291bnR9KSxuZXcgUHJvbWlzZSh0PT57c2V0VGltZW91dChhc3luYygpPT57aWYodGhpcy5fcGF1c2VkfHx0aGlzLm9mZmxpbmUpcmV0dXJuIHRoaXMucGVuZGluZ0NodW5rPWUsdm9pZCB0KCExKTt0KGF3YWl0IHRoaXMuc2VuZENodW5rV2l0aFJldHJpZXMoZSkpfSwxZTMqdGhpcy5kZWxheUJlZm9yZUF0dGVtcHQpfSkpKSgpfWFzeW5jIHNlbmRDaHVua3MoKXtpZih0aGlzLnBlbmRpbmdDaHVuayYmIXRoaXMuX3BhdXNlZCYmIXRoaXMub2ZmbGluZSl7bGV0IGU9dGhpcy5wZW5kaW5nQ2h1bms7dGhpcy5wZW5kaW5nQ2h1bms9dm9pZCAwO2xldCB0PWF3YWl0IHRoaXMuc2VuZENodW5rV2l0aFJldHJpZXMoZSk7dGhpcy5zdWNjZXNzJiZ0JiZ0aGlzLmRpc3BhdGNoKGBzdWNjZXNzYCl9Zm9yKDshKHRoaXMuc3VjY2Vzc3x8dGhpcy5fcGF1c2VkfHx0aGlzLm9mZmxpbmUpOyl7bGV0e3ZhbHVlOmUsZG9uZTp0fT1hd2FpdCB0aGlzLmNodW5rZWRTdHJlYW1JdGVyYXRvci5uZXh0KCksbj0hZSYmdDtpZihlJiYobj1hd2FpdCB0aGlzLnNlbmRDaHVua1dpdGhSZXRyaWVzKGUpKSx0aGlzLnN1Y2Nlc3M9ISF0LHRoaXMuc3VjY2VzcyYmbiYmdGhpcy5kaXNwYXRjaChgc3VjY2Vzc2ApLCFuKXJldHVybn19fSxYZT1ZZS5jcmVhdGVVcGxvYWQsWmU9T2JqZWN0LmRlZmluZVByb3BlcnR5LEU9KGUsdCxuKT0+KChlLHQsbik9PnQgaW4gZT9aZShlLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KTplW3RdPW4pKGUsdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYCxuKSxRZT1PYmplY3QuZGVmaW5lUHJvcGVydHksJGU9KGUsdCxuKT0+KChlLHQsbik9PnQgaW4gZT9RZShlLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KTplW3RdPW4pKGUsdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYCxuKSxEPShlPT4oZVtlLkRvY3VtZW50PTBdPWBEb2N1bWVudGAsZVtlLkRvY3VtZW50VHlwZT0xXT1gRG9jdW1lbnRUeXBlYCxlW2UuRWxlbWVudD0yXT1gRWxlbWVudGAsZVtlLlRleHQ9M109YFRleHRgLGVbZS5DREFUQT00XT1gQ0RBVEFgLGVbZS5Db21tZW50PTVdPWBDb21tZW50YCxlKSkoRHx8e30pLGV0PXtOb2RlOltgY2hpbGROb2Rlc2AsYHBhcmVudE5vZGVgLGBwYXJlbnRFbGVtZW50YCxgdGV4dENvbnRlbnRgXSxTaGFkb3dSb290OltgaG9zdGAsYHN0eWxlU2hlZXRzYF0sRWxlbWVudDpbYHNoYWRvd1Jvb3RgLGBxdWVyeVNlbGVjdG9yYCxgcXVlcnlTZWxlY3RvckFsbGBdLE11dGF0aW9uT2JzZXJ2ZXI6W119LHR0PXtOb2RlOltgY29udGFpbnNgLGBnZXRSb290Tm9kZWBdLFNoYWRvd1Jvb3Q6W2BnZXRTZWxlY3Rpb25gXSxFbGVtZW50OltdLE11dGF0aW9uT2JzZXJ2ZXI6W2Bjb25zdHJ1Y3RvcmBdfSxudD17fTtmdW5jdGlvbiBydChlKXtpZihudFtlXSlyZXR1cm4gbnRbZV07bGV0IHQ9Z2xvYmFsVGhpc1tlXSxuPXQucHJvdG90eXBlLHI9ZSBpbiBldD9ldFtlXTp2b2lkIDAsaT0hIShyJiZyLmV2ZXJ5KGU9Pnt2YXIgdCxyO3JldHVybiEhKChyPSh0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSk9PW51bGw/dm9pZCAwOnQuZ2V0KSE9bnVsbCYmci50b1N0cmluZygpLmluY2x1ZGVzKGBbbmF0aXZlIGNvZGVdYCkpfSkpLGE9ZSBpbiB0dD90dFtlXTp2b2lkIDAsbz0hIShhJiZhLmV2ZXJ5KGU9Pnt2YXIgdDtyZXR1cm4gdHlwZW9mIG5bZV09PWBmdW5jdGlvbmAmJigodD1uW2VdKT09bnVsbD92b2lkIDA6dC50b1N0cmluZygpLmluY2x1ZGVzKGBbbmF0aXZlIGNvZGVdYCkpfSkpO2lmKGkmJm8pcmV0dXJuIG50W2VdPXQucHJvdG90eXBlLHQucHJvdG90eXBlO3RyeXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBpZnJhbWVgKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHIpO2xldCBpPXIuY29udGVudFdpbmRvdztpZighaSlyZXR1cm4gdC5wcm90b3R5cGU7bGV0IGE9aVtlXS5wcm90b3R5cGU7cmV0dXJuIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQociksYT9udFtlXT1hOm59Y2F0Y2h7cmV0dXJuIG59fXZhciBpdD17fTtmdW5jdGlvbiBhdChlLHQsbil7dmFyIHI7bGV0IGk9YCR7ZX0uJHtTdHJpbmcobil9YDtpZihpdFtpXSlyZXR1cm4gaXRbaV0uY2FsbCh0KTtsZXQgYT1ydChlKSxvPShyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxuKSk9PW51bGw/dm9pZCAwOnIuZ2V0O3JldHVybiBvPyhpdFtpXT1vLG8uY2FsbCh0KSk6dFtuXX12YXIgb3Q9e307ZnVuY3Rpb24gc3QoZSx0LG4pe2xldCByPWAke2V9LiR7U3RyaW5nKG4pfWA7aWYob3Rbcl0pcmV0dXJuIG90W3JdLmJpbmQodCk7bGV0IGk9cnQoZSlbbl07cmV0dXJuIHR5cGVvZiBpPT1gZnVuY3Rpb25gPyhvdFtyXT1pLGkuYmluZCh0KSk6dFtuXX12YXIgTz17Y2hpbGROb2RlczpmdW5jdGlvbihlKXtyZXR1cm4gYXQoYE5vZGVgLGUsYGNoaWxkTm9kZXNgKX0scGFyZW50Tm9kZTpmdW5jdGlvbihlKXtyZXR1cm4gYXQoYE5vZGVgLGUsYHBhcmVudE5vZGVgKX0scGFyZW50RWxlbWVudDpmdW5jdGlvbihlKXtyZXR1cm4gYXQoYE5vZGVgLGUsYHBhcmVudEVsZW1lbnRgKX0sdGV4dENvbnRlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGF0KGBOb2RlYCxlLGB0ZXh0Q29udGVudGApfSxjb250YWluczpmdW5jdGlvbihlLHQpe3JldHVybiBzdChgTm9kZWAsZSxgY29udGFpbnNgKSh0KX0sZ2V0Um9vdE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHN0KGBOb2RlYCxlLGBnZXRSb290Tm9kZWApKCl9LGhvc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmBob3N0YGluIGU/YXQoYFNoYWRvd1Jvb3RgLGUsYGhvc3RgKTpudWxsfSxzdHlsZVNoZWV0czpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdHlsZVNoZWV0c30sc2hhZG93Um9vdDpmdW5jdGlvbihlKXtyZXR1cm4gZSYmYHNoYWRvd1Jvb3RgaW4gZT9hdChgRWxlbWVudGAsZSxgc2hhZG93Um9vdGApOm51bGx9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXQoYEVsZW1lbnRgLGUsYHF1ZXJ5U2VsZWN0b3JgKSh0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbihlLHQpe3JldHVybiBhdChgRWxlbWVudGAsZSxgcXVlcnlTZWxlY3RvckFsbGApKHQpfSxtdXRhdGlvbk9ic2VydmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGBNdXRhdGlvbk9ic2VydmVyYCkuY29uc3RydWN0b3J9fTtmdW5jdGlvbiBjdChlKXtyZXR1cm4gZS5ub2RlVHlwZT09PWUuRUxFTUVOVF9OT0RFfWZ1bmN0aW9uIGx0KGUpe2xldCB0PWUmJmBob3N0YGluIGUmJmBtb2RlYGluIGUmJk8uaG9zdChlKXx8bnVsbDtyZXR1cm4hISh0JiZgc2hhZG93Um9vdGBpbiB0JiZPLnNoYWRvd1Jvb3QodCk9PT1lKX1mdW5jdGlvbiB1dChlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT09YFtvYmplY3QgU2hhZG93Um9vdF1gfWZ1bmN0aW9uIGR0KGUpe3RyeXtsZXQgbj1lLnJ1bGVzfHxlLmNzc1J1bGVzO3JldHVybiBuPygodD1BcnJheS5mcm9tKG4sdD0+ZnQodCxlLmhyZWYpKS5qb2luKGBgKSkuaW5jbHVkZXMoYCBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7YCkmJiF0LmluY2x1ZGVzKGAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7YCkmJih0PXQucmVwbGFjZSgvXHNiYWNrZ3JvdW5kLWNsaXA6XHMqdGV4dDsvZyxgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7YCkpLHQpOm51bGx9Y2F0Y2h7cmV0dXJuIG51bGx9dmFyIHR9ZnVuY3Rpb24gZnQoZSx0KXtpZihmdW5jdGlvbihlKXtyZXR1cm5gc3R5bGVTaGVldGBpbiBlfShlKSl7bGV0IHQ7dHJ5e3Q9ZHQoZS5zdHlsZVNoZWV0KXx8ZnVuY3Rpb24oZSl7bGV0e2Nzc1RleHQ6dH09ZTtpZih0LnNwbGl0KGAiYCkubGVuZ3RoPDMpcmV0dXJuIHQ7bGV0IG49W2BAaW1wb3J0YCxgdXJsKCR7SlNPTi5zdHJpbmdpZnkoZS5ocmVmKX0pYF07cmV0dXJuIGUubGF5ZXJOYW1lPT09YGA/bi5wdXNoKGBsYXllcmApOmUubGF5ZXJOYW1lJiZuLnB1c2goYGxheWVyKCR7ZS5sYXllck5hbWV9KWApLGUuc3VwcG9ydHNUZXh0JiZuLnB1c2goYHN1cHBvcnRzKCR7ZS5zdXBwb3J0c1RleHR9KWApLGUubWVkaWEubGVuZ3RoJiZuLnB1c2goZS5tZWRpYS5tZWRpYVRleHQpLG4uam9pbihgIGApK2A7YH0oZSl9Y2F0Y2h7dD1lLmNzc1RleHR9cmV0dXJuIGUuc3R5bGVTaGVldC5ocmVmP0N0KHQsZS5zdHlsZVNoZWV0LmhyZWYpOnR9e2xldCBuPWUuY3NzVGV4dDtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuYHNlbGVjdG9yVGV4dGBpbiBlfShlKSYmZS5zZWxlY3RvclRleHQuaW5jbHVkZXMoYDpgKSYmKG49ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvKFxbKD86W1x3LV0rKVteXFxdKSg6KD86W1x3LV0rKVxdKS9nbSxgJDFcXCQyYCl9KG4pKSx0P0N0KG4sdCk6bn19dmFyIHB0PWNsYXNze2NvbnN0cnVjdG9yKCl7JGUodGhpcyxgaWROb2RlTWFwYCxuZXcgTWFwKSwkZSh0aGlzLGBub2RlTWV0YU1hcGAsbmV3IFdlYWtNYXApfWdldElkKGUpe3ZhciB0O3JldHVybiBlPygodD10aGlzLmdldE1ldGEoZSkpPT1udWxsP3ZvaWQgMDp0LmlkKT8/LTE6LTF9Z2V0Tm9kZShlKXtyZXR1cm4gdGhpcy5pZE5vZGVNYXAuZ2V0KGUpfHxudWxsfWdldElkcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuaWROb2RlTWFwLmtleXMoKSl9Z2V0TWV0YShlKXtyZXR1cm4gdGhpcy5ub2RlTWV0YU1hcC5nZXQoZSl8fG51bGx9cmVtb3ZlTm9kZUZyb21NYXAoZSl7bGV0IHQ9dGhpcy5nZXRJZChlKTt0aGlzLmlkTm9kZU1hcC5kZWxldGUodCksZS5jaGlsZE5vZGVzJiZlLmNoaWxkTm9kZXMuZm9yRWFjaChlPT50aGlzLnJlbW92ZU5vZGVGcm9tTWFwKGUpKX1oYXMoZSl7cmV0dXJuIHRoaXMuaWROb2RlTWFwLmhhcyhlKX1oYXNOb2RlKGUpe3JldHVybiB0aGlzLm5vZGVNZXRhTWFwLmhhcyhlKX1hZGQoZSx0KXtsZXQgbj10LmlkO3RoaXMuaWROb2RlTWFwLnNldChuLGUpLHRoaXMubm9kZU1ldGFNYXAuc2V0KGUsdCl9cmVwbGFjZShlLHQpe2xldCBuPXRoaXMuZ2V0Tm9kZShlKTtpZihuKXtsZXQgZT10aGlzLm5vZGVNZXRhTWFwLmdldChuKTtlJiZ0aGlzLm5vZGVNZXRhTWFwLnNldCh0LGUpfXRoaXMuaWROb2RlTWFwLnNldChlLHQpfXJlc2V0KCl7dGhpcy5pZE5vZGVNYXA9bmV3IE1hcCx0aGlzLm5vZGVNZXRhTWFwPW5ldyBXZWFrTWFwfX07ZnVuY3Rpb24gbXQoe2VsZW1lbnQ6ZSxtYXNrSW5wdXRPcHRpb25zOnQsdGFnTmFtZTpuLHR5cGU6cix2YWx1ZTppLG1hc2tJbnB1dEZuOmF9KXtsZXQgbz1pfHxgYCxzPXImJmh0KHIpO3JldHVybih0W24udG9Mb3dlckNhc2UoKV18fHMmJnRbc10pJiYobz1hP2EobyxlKTpgKmAucmVwZWF0KG8ubGVuZ3RoKSksb31mdW5jdGlvbiBodChlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpfXZhciBndD1gX19ycndlYl9vcmlnaW5hbF9fYDtmdW5jdGlvbiBfdChlKXtsZXQgdD1lLnR5cGU7cmV0dXJuIGUuaGFzQXR0cmlidXRlKGBkYXRhLXJyLWlzLXBhc3N3b3JkYCk/YHBhc3N3b3JkYDp0P2h0KHQpOm51bGx9ZnVuY3Rpb24gdnQoZSx0KXtsZXQgbjt0cnl7bj1uZXcgVVJMKGUsdD8/d2luZG93LmxvY2F0aW9uLmhyZWYpfWNhdGNoe3JldHVybiBudWxsfWxldCByPW4ucGF0aG5hbWUubWF0Y2goL1wuKFswLTlhLXpdKykoPzokKS9pKTtyZXR1cm4ocj09bnVsbD92b2lkIDA6clsxXSk/P251bGx9dmFyIHl0PS91cmxcKCg/OignKShbXiddKiknfCgiKSguKj8pInwoW14pXSopKVwpL2dtLGJ0PS9eKD86W2EteitdKzopP1wvXC8vaSx4dD0vXnd3d1wuLiovaSxTdD0vXihkYXRhOikoW14sXSopLCguKikvaTtmdW5jdGlvbiBDdChlLHQpe3JldHVybihlfHxgYCkucmVwbGFjZSh5dCwoZSxuLHIsaSxhLG8pPT57bGV0IHM9cnx8YXx8byxjPW58fGl8fGBgO2lmKCFzKXJldHVybiBlO2lmKGJ0LnRlc3Qocyl8fHh0LnRlc3Qocyl8fFN0LnRlc3QocykpcmV0dXJuYHVybCgke2N9JHtzfSR7Y30pYDtpZihzWzBdPT09YC9gKXJldHVybmB1cmwoJHtjfSR7ZnVuY3Rpb24oZSl7bGV0IHQ9YGA7cmV0dXJuIHQ9ZS5pbmRleE9mKGAvL2ApPi0xP2Uuc3BsaXQoYC9gKS5zbGljZSgwLDMpLmpvaW4oYC9gKTplLnNwbGl0KGAvYClbMF0sdD10LnNwbGl0KGA/YClbMF0sdH0odCkrc30ke2N9KWA7bGV0IGw9dC5zcGxpdChgL2ApLHU9cy5zcGxpdChgL2ApO2wucG9wKCk7Zm9yKGxldCBlIG9mIHUpZSE9PWAuYCYmKGU9PT1gLi5gP2wucG9wKCk6bC5wdXNoKGUpKTtyZXR1cm5gdXJsKCR7Y30ke2wuam9pbihgL2ApfSR7Y30pYH0pfXZhciB3dD0xLFR0PVJlZ0V4cChgW15hLXowLTktXzpdYCk7ZnVuY3Rpb24gRXQoKXtyZXR1cm4gd3QrK312YXIgRHQsT3Qsa3Q9L15bXiBcdFxuXHJcdTAwMGNdKy8sQXQ9L15bLCBcdFxuXHJcdTAwMGNdKy8sanQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gTXQoZSx0KXtyZXR1cm4gdCYmdC50cmltKCkhPT1gYD9QdChlLHQpOnR9ZnVuY3Rpb24gTnQoZSl7cmV0dXJuISEoZS50YWdOYW1lPT09YHN2Z2B8fGUub3duZXJTVkdFbGVtZW50KX1mdW5jdGlvbiBQdChlLHQpe2xldCBuPWp0LmdldChlKTtpZihufHwobj1lLmNyZWF0ZUVsZW1lbnQoYGFgKSxqdC5zZXQoZSxuKSksdCl7aWYodC5zdGFydHNXaXRoKGBibG9iOmApfHx0LnN0YXJ0c1dpdGgoYGRhdGE6YCkpcmV0dXJuIHR9ZWxzZSB0PWBgO3JldHVybiBuLnNldEF0dHJpYnV0ZShgaHJlZmAsdCksbi5ocmVmfWZ1bmN0aW9uIEZ0KGUsdCxuLHIpe3JldHVybiByJiYobj09PWBzcmNgfHxuPT09YGhyZWZgJiYodCE9PWB1c2VgfHxyWzBdIT09YCNgKXx8bj09PWB4bGluazpocmVmYCYmclswXSE9PWAjYD9NdChlLHIpOm4hPT1gYmFja2dyb3VuZGB8fHQhPT1gdGFibGVgJiZ0IT09YHRkYCYmdCE9PWB0aGA/bj09PWBzcmNzZXRgP2Z1bmN0aW9uKGUsdCl7aWYodC50cmltKCk9PT1gYClyZXR1cm4gdDtsZXQgbj0wO2Z1bmN0aW9uIHIoZSl7bGV0IHIsaT1lLmV4ZWModC5zdWJzdHJpbmcobikpO3JldHVybiBpPyhyPWlbMF0sbis9ci5sZW5ndGgscik6YGB9bGV0IGk9W107Zm9yKDtyKEF0KSwhKG4+PXQubGVuZ3RoKTspe2xldCBhPXIoa3QpO2lmKGEuc2xpY2UoLTEpPT09YCxgKWE9TXQoZSxhLnN1YnN0cmluZygwLGEubGVuZ3RoLTEpKSxpLnB1c2goYSk7ZWxzZXtsZXQgcj1gYDthPU10KGUsYSk7bGV0IG89ITE7Zm9yKDs7KXtsZXQgZT10LmNoYXJBdChuKTtpZihlPT09YGApe2kucHVzaCgoYStyKS50cmltKCkpO2JyZWFrfWlmKG8pZT09PWApYCYmKG89ITEpO2Vsc2V7aWYoZT09PWAsYCl7bis9MSxpLnB1c2goKGErcikudHJpbSgpKTticmVha31lPT09YChgJiYobz0hMCl9cis9ZSxuKz0xfX19cmV0dXJuIGkuam9pbihgLCBgKX0oZSxyKTpuPT09YHN0eWxlYD9DdChyLFB0KGUpKTp0PT09YG9iamVjdGAmJm49PT1gZGF0YWA/TXQoZSxyKTpyOk10KGUscikpfWZ1bmN0aW9uIEl0KGUsdCxuKXtyZXR1cm4oZT09PWB2aWRlb2B8fGU9PT1gYXVkaW9gKSYmdD09PWBhdXRvcGxheWB9ZnVuY3Rpb24gTHQoZSx0LG4pe2lmKCFlKXJldHVybiExO2lmKGUubm9kZVR5cGUhPT1lLkVMRU1FTlRfTk9ERSlyZXR1cm4hIW4mJkx0KE8ucGFyZW50Tm9kZShlKSx0LG4pO2ZvcihsZXQgbj1lLmNsYXNzTGlzdC5sZW5ndGg7bi0tOyl7bGV0IHI9ZS5jbGFzc0xpc3Rbbl07aWYodC50ZXN0KHIpKXJldHVybiEwfXJldHVybiEhbiYmTHQoTy5wYXJlbnROb2RlKGUpLHQsbil9ZnVuY3Rpb24gUnQoZSx0LG4scil7bGV0IGk7aWYoY3QoZSkpe2lmKGk9ZSwhTy5jaGlsZE5vZGVzKGkpLmxlbmd0aClyZXR1cm4hMX1lbHNle2lmKE8ucGFyZW50RWxlbWVudChlKT09PW51bGwpcmV0dXJuITE7aT1PLnBhcmVudEVsZW1lbnQoZSl9dHJ5e2lmKHR5cGVvZiB0PT1gc3RyaW5nYCl7aWYocil7aWYoaS5jbG9zZXN0KGAuJHt0fWApKXJldHVybiEwfWVsc2UgaWYoaS5jbGFzc0xpc3QuY29udGFpbnModCkpcmV0dXJuITB9ZWxzZSBpZihMdChpLHQscikpcmV0dXJuITA7aWYobil7aWYocil7aWYoaS5jbG9zZXN0KG4pKXJldHVybiEwfWVsc2UgaWYoaS5tYXRjaGVzKG4pKXJldHVybiEwfX1jYXRjaHt9cmV0dXJuITF9ZnVuY3Rpb24genQoZSx0KXtsZXR7ZG9jOm4sbWlycm9yOnIsYmxvY2tDbGFzczppLGJsb2NrU2VsZWN0b3I6YSxuZWVkc01hc2s6byxpbmxpbmVTdHlsZXNoZWV0OnMsbWFza0lucHV0T3B0aW9uczpjPXt9LG1hc2tUZXh0Rm46bCxtYXNrSW5wdXRGbjp1LGRhdGFVUkxPcHRpb25zOmQ9e30saW5saW5lSW1hZ2VzOmYscmVjb3JkQ2FudmFzOnAsa2VlcElmcmFtZVNyY0ZuOm0sbmV3bHlBZGRlZEVsZW1lbnQ6aD0hMX09dCxnPWZ1bmN0aW9uKGUsdCl7aWYoIXQuaGFzTm9kZShlKSlyZXR1cm47bGV0IG49dC5nZXRJZChlKTtyZXR1cm4gbj09PTE/dm9pZCAwOm59KG4scik7c3dpdGNoKGUubm9kZVR5cGUpe2Nhc2UgZS5ET0NVTUVOVF9OT0RFOnJldHVybiBlLmNvbXBhdE1vZGU9PT1gQ1NTMUNvbXBhdGA/e3R5cGU6RC5Eb2N1bWVudCxjaGlsZE5vZGVzOltdfTp7dHlwZTpELkRvY3VtZW50LGNoaWxkTm9kZXM6W10sY29tcGF0TW9kZTplLmNvbXBhdE1vZGV9O2Nhc2UgZS5ET0NVTUVOVF9UWVBFX05PREU6cmV0dXJue3R5cGU6RC5Eb2N1bWVudFR5cGUsbmFtZTplLm5hbWUscHVibGljSWQ6ZS5wdWJsaWNJZCxzeXN0ZW1JZDplLnN5c3RlbUlkLHJvb3RJZDpnfTtjYXNlIGUuRUxFTUVOVF9OT0RFOnJldHVybiBmdW5jdGlvbihlLHQpe2xldHtkb2M6bixibG9ja0NsYXNzOnIsYmxvY2tTZWxlY3RvcjppLGlubGluZVN0eWxlc2hlZXQ6YSxtYXNrSW5wdXRPcHRpb25zOm89e30sbWFza0lucHV0Rm46cyxkYXRhVVJMT3B0aW9uczpjPXt9LGlubGluZUltYWdlczpsLHJlY29yZENhbnZhczp1LGtlZXBJZnJhbWVTcmNGbjpkLG5ld2x5QWRkZWRFbGVtZW50OmY9ITEscm9vdElkOnB9PXQsbT1mdW5jdGlvbihlLHQsbil7dHJ5e2lmKHR5cGVvZiB0PT1gc3RyaW5nYCl7aWYoZS5jbGFzc0xpc3QuY29udGFpbnModCkpcmV0dXJuITB9ZWxzZSBmb3IobGV0IG49ZS5jbGFzc0xpc3QubGVuZ3RoO24tLTspe2xldCByPWUuY2xhc3NMaXN0W25dO2lmKHQudGVzdChyKSlyZXR1cm4hMH1pZihuKXJldHVybiBlLm1hdGNoZXMobil9Y2F0Y2h7fXJldHVybiExfShlLHIsaSksaD1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgSFRNTEZvcm1FbGVtZW50KXJldHVybmBmb3JtYDtsZXQgdD1odChlLnRhZ05hbWUpO3JldHVybiBUdC50ZXN0KHQpP2BkaXZgOnR9KGUpLGc9e30sXz1lLmF0dHJpYnV0ZXMubGVuZ3RoO2ZvcihsZXQgdD0wO3Q8Xzt0Kyspe2xldCByPWUuYXR0cmlidXRlc1t0XTtJdChoLHIubmFtZSxyLnZhbHVlKXx8KGdbci5uYW1lXT1GdChuLGgsaHQoci5uYW1lKSxyLnZhbHVlKSl9aWYoaD09PWBsaW5rYCYmYSl7bGV0IHQ9QXJyYXkuZnJvbShuLnN0eWxlU2hlZXRzKS5maW5kKHQ9PnQuaHJlZj09PWUuaHJlZikscj1udWxsO3QmJihyPWR0KHQpKSxyJiYoZGVsZXRlIGcucmVsLGRlbGV0ZSBnLmhyZWYsZy5fY3NzVGV4dD1yKX1pZihoPT09YHN0eWxlYCYmZS5zaGVldCYmIShlLmlubmVyVGV4dHx8Ty50ZXh0Q29udGVudChlKXx8YGApLnRyaW0oKS5sZW5ndGgpe2xldCB0PWR0KGUuc2hlZXQpO3QmJihnLl9jc3NUZXh0PXQpfWlmKGg9PT1gaW5wdXRgfHxoPT09YHRleHRhcmVhYHx8aD09PWBzZWxlY3RgKXtsZXQgdD1lLnZhbHVlLG49ZS5jaGVja2VkO2cudHlwZSE9PWByYWRpb2AmJmcudHlwZSE9PWBjaGVja2JveGAmJmcudHlwZSE9PWBzdWJtaXRgJiZnLnR5cGUhPT1gYnV0dG9uYCYmdD9nLnZhbHVlPW10KHtlbGVtZW50OmUsdHlwZTpfdChlKSx0YWdOYW1lOmgsdmFsdWU6dCxtYXNrSW5wdXRPcHRpb25zOm8sbWFza0lucHV0Rm46c30pOm4mJihnLmNoZWNrZWQ9bil9aWYoaD09PWBvcHRpb25gJiYoZS5zZWxlY3RlZCYmIW8uc2VsZWN0P2cuc2VsZWN0ZWQ9ITA6ZGVsZXRlIGcuc2VsZWN0ZWQpLGg9PT1gZGlhbG9nYCYmZS5vcGVuJiYoZy5ycl9vcGVuX21vZGU9ZS5tYXRjaGVzKGBkaWFsb2c6bW9kYWxgKT9gbW9kYWxgOmBub24tbW9kYWxgKSxoPT09YGNhbnZhc2AmJnUpe2lmKGUuX19jb250ZXh0PT09YDJkYCkoZnVuY3Rpb24oZSl7bGV0IHQ9ZS5nZXRDb250ZXh0KGAyZGApO2lmKCF0KXJldHVybiEwO2ZvcihsZXQgbj0wO248ZS53aWR0aDtuKz01MClmb3IobGV0IHI9MDtyPGUuaGVpZ2h0O3IrPTUwKXtsZXQgaT10LmdldEltYWdlRGF0YSxhPWd0IGluIGk/aVtndF06aTtpZihuZXcgVWludDMyQXJyYXkoYS5jYWxsKHQsbixyLE1hdGgubWluKDUwLGUud2lkdGgtbiksTWF0aC5taW4oNTAsZS5oZWlnaHQtcikpLmRhdGEuYnVmZmVyKS5zb21lKGU9PmUhPT0wKSlyZXR1cm4hMX1yZXR1cm4hMH0pKGUpfHwoZy5ycl9kYXRhVVJMPWUudG9EYXRhVVJMKGMudHlwZSxjLnF1YWxpdHkpKTtlbHNlIGlmKCEoYF9fY29udGV4dGBpbiBlKSl7bGV0IHQ9ZS50b0RhdGFVUkwoYy50eXBlLGMucXVhbGl0eSkscj1uLmNyZWF0ZUVsZW1lbnQoYGNhbnZhc2ApO3Iud2lkdGg9ZS53aWR0aCxyLmhlaWdodD1lLmhlaWdodCx0IT09ci50b0RhdGFVUkwoYy50eXBlLGMucXVhbGl0eSkmJihnLnJyX2RhdGFVUkw9dCl9fWlmKGg9PT1gaW1nYCYmbCl7RHR8fChEdD1uLmNyZWF0ZUVsZW1lbnQoYGNhbnZhc2ApLE90PUR0LmdldENvbnRleHQoYDJkYCkpO2xldCB0PWUscj10LmN1cnJlbnRTcmN8fHQuZ2V0QXR0cmlidXRlKGBzcmNgKXx8YDx1bmtub3duLXNyYz5gLGk9dC5jcm9zc09yaWdpbixhPSgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKGBsb2FkYCxhKTt0cnl7RHQud2lkdGg9dC5uYXR1cmFsV2lkdGgsRHQuaGVpZ2h0PXQubmF0dXJhbEhlaWdodCxPdC5kcmF3SW1hZ2UodCwwLDApLGcucnJfZGF0YVVSTD1EdC50b0RhdGFVUkwoYy50eXBlLGMucXVhbGl0eSl9Y2F0Y2goZSl7aWYodC5jcm9zc09yaWdpbiE9PWBhbm9ueW1vdXNgKXJldHVybiB0LmNyb3NzT3JpZ2luPWBhbm9ueW1vdXNgLHZvaWQodC5jb21wbGV0ZSYmdC5uYXR1cmFsV2lkdGghPT0wP2EoKTp0LmFkZEV2ZW50TGlzdGVuZXIoYGxvYWRgLGEpKTtjb25zb2xlLndhcm4oYENhbm5vdCBpbmxpbmUgaW1nIHNyYz0ke3J9ISBFcnJvcjogJHtlfWApfXQuY3Jvc3NPcmlnaW49PT1gYW5vbnltb3VzYCYmKGk/Zy5jcm9zc09yaWdpbj1pOnQucmVtb3ZlQXR0cmlidXRlKGBjcm9zc29yaWdpbmApKX07dC5jb21wbGV0ZSYmdC5uYXR1cmFsV2lkdGghPT0wP2EoKTp0LmFkZEV2ZW50TGlzdGVuZXIoYGxvYWRgLGEpfWlmKGg9PT1gYXVkaW9gfHxoPT09YHZpZGVvYCl7bGV0IHQ9Zzt0LnJyX21lZGlhU3RhdGU9ZS5wYXVzZWQ/YHBhdXNlZGA6YHBsYXllZGAsdC5ycl9tZWRpYUN1cnJlbnRUaW1lPWUuY3VycmVudFRpbWUsdC5ycl9tZWRpYVBsYXliYWNrUmF0ZT1lLnBsYXliYWNrUmF0ZSx0LnJyX21lZGlhTXV0ZWQ9ZS5tdXRlZCx0LnJyX21lZGlhTG9vcD1lLmxvb3AsdC5ycl9tZWRpYVZvbHVtZT1lLnZvbHVtZX1pZihmfHwoZS5zY3JvbGxMZWZ0JiYoZy5ycl9zY3JvbGxMZWZ0PWUuc2Nyb2xsTGVmdCksZS5zY3JvbGxUb3AmJihnLnJyX3Njcm9sbFRvcD1lLnNjcm9sbFRvcCkpLG0pe2xldHt3aWR0aDp0LGhlaWdodDpufT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2c9e2NsYXNzOmcuY2xhc3MscnJfd2lkdGg6YCR7dH1weGAscnJfaGVpZ2h0OmAke259cHhgfX1oIT09YGlmcmFtZWB8fGQoZy5zcmMpfHwoZS5jb250ZW50RG9jdW1lbnR8fChnLnJyX3NyYz1nLnNyYyksZGVsZXRlIGcuc3JjKTtsZXQgdjt0cnl7Y3VzdG9tRWxlbWVudHMuZ2V0KGgpJiYodj0hMCl9Y2F0Y2h7fXJldHVybnt0eXBlOkQuRWxlbWVudCx0YWdOYW1lOmgsYXR0cmlidXRlczpnLGNoaWxkTm9kZXM6W10saXNTVkc6TnQoZSl8fHZvaWQgMCxuZWVkQmxvY2s6bSxyb290SWQ6cCxpc0N1c3RvbTp2fX0oZSx7ZG9jOm4sYmxvY2tDbGFzczppLGJsb2NrU2VsZWN0b3I6YSxpbmxpbmVTdHlsZXNoZWV0OnMsbWFza0lucHV0T3B0aW9uczpjLG1hc2tJbnB1dEZuOnUsZGF0YVVSTE9wdGlvbnM6ZCxpbmxpbmVJbWFnZXM6ZixyZWNvcmRDYW52YXM6cCxrZWVwSWZyYW1lU3JjRm46bSxuZXdseUFkZGVkRWxlbWVudDpoLHJvb3RJZDpnfSk7Y2FzZSBlLlRFWFRfTk9ERTpyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbjtsZXR7bmVlZHNNYXNrOnIsbWFza1RleHRGbjppLHJvb3RJZDphfT10LG89Ty5wYXJlbnROb2RlKGUpLHM9byYmby50YWdOYW1lLGM9Ty50ZXh0Q29udGVudChlKSxsPXM9PT1gU1RZTEVgfHx2b2lkIDAsdT1zPT09YFNDUklQVGB8fHZvaWQgMDtpZihsJiZjKXt0cnl7ZS5uZXh0U2libGluZ3x8ZS5wcmV2aW91c1NpYmxpbmd8fChuPW8uc2hlZXQpIT1udWxsJiZuLmNzc1J1bGVzJiYoYz1kdChvLnNoZWV0KSl9Y2F0Y2godCl7Y29uc29sZS53YXJuKGBDYW5ub3QgZ2V0IENTUyBzdHlsZXMgZnJvbSB0ZXh0J3MgcGFyZW50Tm9kZS4gRXJyb3I6ICR7dH1gLGUpfWM9Q3QoYyxQdCh0LmRvYykpfXJldHVybiB1JiYoYz1gU0NSSVBUX1BMQUNFSE9MREVSYCksIWwmJiF1JiZjJiZyJiYoYz1pP2koYyxPLnBhcmVudEVsZW1lbnQoZSkpOmMucmVwbGFjZSgvW1xTXS9nLGAqYCkpLHt0eXBlOkQuVGV4dCx0ZXh0Q29udGVudDpjfHxgYCxpc1N0eWxlOmwscm9vdElkOmF9fShlLHtkb2M6bixuZWVkc01hc2s6byxtYXNrVGV4dEZuOmwscm9vdElkOmd9KTtjYXNlIGUuQ0RBVEFfU0VDVElPTl9OT0RFOnJldHVybnt0eXBlOkQuQ0RBVEEsdGV4dENvbnRlbnQ6YGAscm9vdElkOmd9O2Nhc2UgZS5DT01NRU5UX05PREU6cmV0dXJue3R5cGU6RC5Db21tZW50LHRleHRDb250ZW50Ok8udGV4dENvbnRlbnQoZSl8fGBgLHJvb3RJZDpnfTtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBrKGUpe3JldHVybiBlPT1udWxsP2BgOmUudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBCdChlLHQpe2xldHtkb2M6bixtaXJyb3I6cixibG9ja0NsYXNzOmksYmxvY2tTZWxlY3RvcjphLG1hc2tUZXh0Q2xhc3M6byxtYXNrVGV4dFNlbGVjdG9yOnMsc2tpcENoaWxkOmM9ITEsaW5saW5lU3R5bGVzaGVldDpsPSEwLG1hc2tJbnB1dE9wdGlvbnM6dT17fSxtYXNrVGV4dEZuOmQsbWFza0lucHV0Rm46ZixzbGltRE9NT3B0aW9uczpwLGRhdGFVUkxPcHRpb25zOm09e30saW5saW5lSW1hZ2VzOmg9ITEscmVjb3JkQ2FudmFzOmc9ITEsb25TZXJpYWxpemU6XyxvbklmcmFtZUxvYWQ6dixpZnJhbWVMb2FkVGltZW91dDplZT01ZTMsb25TdHlsZXNoZWV0TG9hZDp5LHN0eWxlc2hlZXRMb2FkVGltZW91dDpiPTVlMyxrZWVwSWZyYW1lU3JjRm46dGU9KCk9PiExLG5ld2x5QWRkZWRFbGVtZW50Ong9ITF9PXQse25lZWRzTWFzazpTfT10LHtwcmVzZXJ2ZVdoaXRlU3BhY2U6bmU9ITB9PXQ7U3x8KFM9UnQoZSxvLHMsUz09PXZvaWQgMCkpO2xldCByZT16dChlLHtkb2M6bixtaXJyb3I6cixibG9ja0NsYXNzOmksYmxvY2tTZWxlY3RvcjphLG5lZWRzTWFzazpTLGlubGluZVN0eWxlc2hlZXQ6bCxtYXNrSW5wdXRPcHRpb25zOnUsbWFza1RleHRGbjpkLG1hc2tJbnB1dEZuOmYsZGF0YVVSTE9wdGlvbnM6bSxpbmxpbmVJbWFnZXM6aCxyZWNvcmRDYW52YXM6ZyxrZWVwSWZyYW1lU3JjRm46dGUsbmV3bHlBZGRlZEVsZW1lbnQ6eH0pO2lmKCFyZSlyZXR1cm4gY29uc29sZS53YXJuKGUsYG5vdCBzZXJpYWxpemVkYCksbnVsbDtsZXQgaWU7aWU9ci5oYXNOb2RlKGUpP3IuZ2V0SWQoZSk6IWZ1bmN0aW9uKGUsdCl7cmV0dXJuISEodC5jb21tZW50JiZlLnR5cGU9PT1ELkNvbW1lbnR8fGUudHlwZT09PUQuRWxlbWVudCYmKHQuc2NyaXB0JiYoZS50YWdOYW1lPT09YHNjcmlwdGB8fGUudGFnTmFtZT09PWBsaW5rYCYmKGUuYXR0cmlidXRlcy5yZWw9PT1gcHJlbG9hZGB8fGUuYXR0cmlidXRlcy5yZWw9PT1gbW9kdWxlcHJlbG9hZGApJiZlLmF0dHJpYnV0ZXMuYXM9PT1gc2NyaXB0YHx8ZS50YWdOYW1lPT09YGxpbmtgJiZlLmF0dHJpYnV0ZXMucmVsPT09YHByZWZldGNoYCYmdHlwZW9mIGUuYXR0cmlidXRlcy5ocmVmPT1gc3RyaW5nYCYmdnQoZS5hdHRyaWJ1dGVzLmhyZWYpPT09YGpzYCl8fHQuaGVhZEZhdmljb24mJihlLnRhZ05hbWU9PT1gbGlua2AmJmUuYXR0cmlidXRlcy5yZWw9PT1gc2hvcnRjdXQgaWNvbmB8fGUudGFnTmFtZT09PWBtZXRhYCYmKGsoZS5hdHRyaWJ1dGVzLm5hbWUpLm1hdGNoKC9ebXNhcHBsaWNhdGlvbi10aWxlKGltYWdlfGNvbG9yKSQvKXx8ayhlLmF0dHJpYnV0ZXMubmFtZSk9PT1gYXBwbGljYXRpb24tbmFtZWB8fGsoZS5hdHRyaWJ1dGVzLnJlbCk9PT1gaWNvbmB8fGsoZS5hdHRyaWJ1dGVzLnJlbCk9PT1gYXBwbGUtdG91Y2gtaWNvbmB8fGsoZS5hdHRyaWJ1dGVzLnJlbCk9PT1gc2hvcnRjdXQgaWNvbmApKXx8ZS50YWdOYW1lPT09YG1ldGFgJiYodC5oZWFkTWV0YURlc2NLZXl3b3JkcyYmayhlLmF0dHJpYnV0ZXMubmFtZSkubWF0Y2goL15kZXNjcmlwdGlvbnxrZXl3b3JkcyQvKXx8dC5oZWFkTWV0YVNvY2lhbCYmKGsoZS5hdHRyaWJ1dGVzLnByb3BlcnR5KS5tYXRjaCgvXihvZ3x0d2l0dGVyfGZiKTovKXx8ayhlLmF0dHJpYnV0ZXMubmFtZSkubWF0Y2goL14ob2d8dHdpdHRlcik6Lyl8fGsoZS5hdHRyaWJ1dGVzLm5hbWUpPT09YHBpbnRlcmVzdGApfHx0LmhlYWRNZXRhUm9ib3RzJiYoayhlLmF0dHJpYnV0ZXMubmFtZSk9PT1gcm9ib3RzYHx8ayhlLmF0dHJpYnV0ZXMubmFtZSk9PT1gZ29vZ2xlYm90YHx8ayhlLmF0dHJpYnV0ZXMubmFtZSk9PT1gYmluZ2JvdGApfHx0LmhlYWRNZXRhSHR0cEVxdWl2JiZlLmF0dHJpYnV0ZXNbYGh0dHAtZXF1aXZgXSE9PXZvaWQgMHx8dC5oZWFkTWV0YUF1dGhvcnNoaXAmJihrKGUuYXR0cmlidXRlcy5uYW1lKT09PWBhdXRob3JgfHxrKGUuYXR0cmlidXRlcy5uYW1lKT09PWBnZW5lcmF0b3JgfHxrKGUuYXR0cmlidXRlcy5uYW1lKT09PWBmcmFtZXdvcmtgfHxrKGUuYXR0cmlidXRlcy5uYW1lKT09PWBwdWJsaXNoZXJgfHxrKGUuYXR0cmlidXRlcy5uYW1lKT09PWBwcm9naWRgfHxrKGUuYXR0cmlidXRlcy5wcm9wZXJ0eSkubWF0Y2goL15hcnRpY2xlOi8pfHxrKGUuYXR0cmlidXRlcy5wcm9wZXJ0eSkubWF0Y2goL15wcm9kdWN0Oi8pKXx8dC5oZWFkTWV0YVZlcmlmaWNhdGlvbiYmKGsoZS5hdHRyaWJ1dGVzLm5hbWUpPT09YGdvb2dsZS1zaXRlLXZlcmlmaWNhdGlvbmB8fGsoZS5hdHRyaWJ1dGVzLm5hbWUpPT09YHlhbmRleC12ZXJpZmljYXRpb25gfHxrKGUuYXR0cmlidXRlcy5uYW1lKT09PWBjc3JmLXRva2VuYHx8ayhlLmF0dHJpYnV0ZXMubmFtZSk9PT1gcDpkb21haW5fdmVyaWZ5YHx8ayhlLmF0dHJpYnV0ZXMubmFtZSk9PT1gdmVyaWZ5LXYxYHx8ayhlLmF0dHJpYnV0ZXMubmFtZSk9PT1gdmVyaWZpY2F0aW9uYHx8ayhlLmF0dHJpYnV0ZXMubmFtZSk9PT1gc2hvcGlmeS1jaGVja291dC1hcGktdG9rZW5gKSkpKX0ocmUscCkmJihuZXx8cmUudHlwZSE9PUQuVGV4dHx8cmUuaXNTdHlsZXx8cmUudGV4dENvbnRlbnQucmVwbGFjZSgvXlxzK3xccyskL2dtLGBgKS5sZW5ndGgpP0V0KCk6LTI7bGV0IEM9T2JqZWN0LmFzc2lnbihyZSx7aWQ6aWV9KTtpZihyLmFkZChlLEMpLGllPT09LTIpcmV0dXJuIG51bGw7XyYmXyhlKTtsZXQgYWU9IWM7aWYoQy50eXBlPT09RC5FbGVtZW50KXthZT1hZSYmIUMubmVlZEJsb2NrLGRlbGV0ZSBDLm5lZWRCbG9jaztsZXQgdD1PLnNoYWRvd1Jvb3QoZSk7dCYmdXQodCkmJihDLmlzU2hhZG93SG9zdD0hMCl9aWYoKEMudHlwZT09PUQuRG9jdW1lbnR8fEMudHlwZT09PUQuRWxlbWVudCkmJmFlKXtwLmhlYWRXaGl0ZXNwYWNlJiZDLnR5cGU9PT1ELkVsZW1lbnQmJkMudGFnTmFtZT09PWBoZWFkYCYmKG5lPSExKTtsZXQgdD17ZG9jOm4sbWlycm9yOnIsYmxvY2tDbGFzczppLGJsb2NrU2VsZWN0b3I6YSxuZWVkc01hc2s6UyxtYXNrVGV4dENsYXNzOm8sbWFza1RleHRTZWxlY3RvcjpzLHNraXBDaGlsZDpjLGlubGluZVN0eWxlc2hlZXQ6bCxtYXNrSW5wdXRPcHRpb25zOnUsbWFza1RleHRGbjpkLG1hc2tJbnB1dEZuOmYsc2xpbURPTU9wdGlvbnM6cCxkYXRhVVJMT3B0aW9uczptLGlubGluZUltYWdlczpoLHJlY29yZENhbnZhczpnLHByZXNlcnZlV2hpdGVTcGFjZTpuZSxvblNlcmlhbGl6ZTpfLG9uSWZyYW1lTG9hZDp2LGlmcmFtZUxvYWRUaW1lb3V0OmVlLG9uU3R5bGVzaGVldExvYWQ6eSxzdHlsZXNoZWV0TG9hZFRpbWVvdXQ6YixrZWVwSWZyYW1lU3JjRm46dGV9O2lmKCEoQy50eXBlPT09RC5FbGVtZW50JiZDLnRhZ05hbWU9PT1gdGV4dGFyZWFgJiZDLmF0dHJpYnV0ZXMudmFsdWUhPT12b2lkIDApKWZvcihsZXQgbiBvZiBBcnJheS5mcm9tKE8uY2hpbGROb2RlcyhlKSkpe2xldCBlPUJ0KG4sdCk7ZSYmQy5jaGlsZE5vZGVzLnB1c2goZSl9bGV0IHg9bnVsbDtpZihjdChlKSYmKHg9Ty5zaGFkb3dSb290KGUpKSlmb3IobGV0IGUgb2YgQXJyYXkuZnJvbShPLmNoaWxkTm9kZXMoeCkpKXtsZXQgbj1CdChlLHQpO24mJih1dCh4KSYmKG4uaXNTaGFkb3c9ITApLEMuY2hpbGROb2Rlcy5wdXNoKG4pKX19bGV0IG9lPU8ucGFyZW50Tm9kZShlKTtyZXR1cm4gb2UmJmx0KG9lKSYmdXQob2UpJiYoQy5pc1NoYWRvdz0hMCksQy50eXBlPT09RC5FbGVtZW50JiZDLnRhZ05hbWU9PT1gaWZyYW1lYCYmZnVuY3Rpb24oZSx0LG4pe2xldCByPWUuY29udGVudFdpbmRvdztpZighcilyZXR1cm47bGV0IGksYT0hMTt0cnl7aT1yLmRvY3VtZW50LnJlYWR5U3RhdGV9Y2F0Y2h7cmV0dXJufWlmKGkhPT1gY29tcGxldGVgKXtsZXQgcj1zZXRUaW1lb3V0KCgpPT57YXx8KHQoKSxhPSEwKX0sbik7ZS5hZGRFdmVudExpc3RlbmVyKGBsb2FkYCwoKT0+e2NsZWFyVGltZW91dChyKSxhPSEwLHQoKX0pO3JldHVybn1sZXQgbz1gYWJvdXQ6YmxhbmtgO2lmKHIubG9jYXRpb24uaHJlZiE9PW98fGUuc3JjPT09b3x8ZS5zcmM9PT1gYClyZXR1cm4gc2V0VGltZW91dCh0LDApLGUuYWRkRXZlbnRMaXN0ZW5lcihgbG9hZGAsdCk7ZS5hZGRFdmVudExpc3RlbmVyKGBsb2FkYCx0KX0oZSwoKT0+e2xldCB0PWUuY29udGVudERvY3VtZW50O2lmKHQmJnYpe2xldCBuPUJ0KHQse2RvYzp0LG1pcnJvcjpyLGJsb2NrQ2xhc3M6aSxibG9ja1NlbGVjdG9yOmEsbmVlZHNNYXNrOlMsbWFza1RleHRDbGFzczpvLG1hc2tUZXh0U2VsZWN0b3I6cyxza2lwQ2hpbGQ6ITEsaW5saW5lU3R5bGVzaGVldDpsLG1hc2tJbnB1dE9wdGlvbnM6dSxtYXNrVGV4dEZuOmQsbWFza0lucHV0Rm46ZixzbGltRE9NT3B0aW9uczpwLGRhdGFVUkxPcHRpb25zOm0saW5saW5lSW1hZ2VzOmgscmVjb3JkQ2FudmFzOmcscHJlc2VydmVXaGl0ZVNwYWNlOm5lLG9uU2VyaWFsaXplOl8sb25JZnJhbWVMb2FkOnYsaWZyYW1lTG9hZFRpbWVvdXQ6ZWUsb25TdHlsZXNoZWV0TG9hZDp5LHN0eWxlc2hlZXRMb2FkVGltZW91dDpiLGtlZXBJZnJhbWVTcmNGbjp0ZX0pO24mJnYoZSxuKX19LGVlKSxDLnR5cGU9PT1ELkVsZW1lbnQmJkMudGFnTmFtZT09PWBsaW5rYCYmdHlwZW9mIEMuYXR0cmlidXRlcy5yZWw9PWBzdHJpbmdgJiYoQy5hdHRyaWJ1dGVzLnJlbD09PWBzdHlsZXNoZWV0YHx8Qy5hdHRyaWJ1dGVzLnJlbD09PWBwcmVsb2FkYCYmdHlwZW9mIEMuYXR0cmlidXRlcy5ocmVmPT1gc3RyaW5nYCYmdnQoQy5hdHRyaWJ1dGVzLmhyZWYpPT09YGNzc2ApJiZmdW5jdGlvbihlLHQsbil7bGV0IHIsaT0hMTt0cnl7cj1lLnNoZWV0fWNhdGNoe3JldHVybn1pZihyKXJldHVybjtsZXQgYT1zZXRUaW1lb3V0KCgpPT57aXx8KHQoKSxpPSEwKX0sbik7ZS5hZGRFdmVudExpc3RlbmVyKGBsb2FkYCwoKT0+e2NsZWFyVGltZW91dChhKSxpPSEwLHQoKX0pfShlLCgpPT57aWYoeSl7bGV0IHQ9QnQoZSx7ZG9jOm4sbWlycm9yOnIsYmxvY2tDbGFzczppLGJsb2NrU2VsZWN0b3I6YSxuZWVkc01hc2s6UyxtYXNrVGV4dENsYXNzOm8sbWFza1RleHRTZWxlY3RvcjpzLHNraXBDaGlsZDohMSxpbmxpbmVTdHlsZXNoZWV0OmwsbWFza0lucHV0T3B0aW9uczp1LG1hc2tUZXh0Rm46ZCxtYXNrSW5wdXRGbjpmLHNsaW1ET01PcHRpb25zOnAsZGF0YVVSTE9wdGlvbnM6bSxpbmxpbmVJbWFnZXM6aCxyZWNvcmRDYW52YXM6ZyxwcmVzZXJ2ZVdoaXRlU3BhY2U6bmUsb25TZXJpYWxpemU6XyxvbklmcmFtZUxvYWQ6dixpZnJhbWVMb2FkVGltZW91dDplZSxvblN0eWxlc2hlZXRMb2FkOnksc3R5bGVzaGVldExvYWRUaW1lb3V0OmIsa2VlcElmcmFtZVNyY0ZuOnRlfSk7dCYmeShlLHQpfX0sYiksQ31mdW5jdGlvbiBWdChlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxgZGVmYXVsdGApP2UuZGVmYXVsdDplfWZ1bmN0aW9uIEh0KGUpe2lmKGUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD1lLmRlZmF1bHQ7aWYodHlwZW9mIHQ9PWBmdW5jdGlvbmApe3ZhciBuPWZ1bmN0aW9uIGUoKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGU/UmVmbGVjdC5jb25zdHJ1Y3QodCxhcmd1bWVudHMsdGhpcy5jb25zdHJ1Y3Rvcik6dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O24ucHJvdG90eXBlPXQucHJvdG90eXBlfWVsc2Ugbj17fTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLHQsci5nZXQ/cjp7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZVt0XX19KX0pLG59dmFyIFV0PXtleHBvcnRzOnt9fSxBPVN0cmluZyxXdD1mdW5jdGlvbigpe3JldHVybntpc0NvbG9yU3VwcG9ydGVkOiExLHJlc2V0OkEsYm9sZDpBLGRpbTpBLGl0YWxpYzpBLHVuZGVybGluZTpBLGludmVyc2U6QSxoaWRkZW46QSxzdHJpa2V0aHJvdWdoOkEsYmxhY2s6QSxyZWQ6QSxncmVlbjpBLHllbGxvdzpBLGJsdWU6QSxtYWdlbnRhOkEsY3lhbjpBLHdoaXRlOkEsZ3JheTpBLGJnQmxhY2s6QSxiZ1JlZDpBLGJnR3JlZW46QSxiZ1llbGxvdzpBLGJnQmx1ZTpBLGJnTWFnZW50YTpBLGJnQ3lhbjpBLGJnV2hpdGU6QX19O1V0LmV4cG9ydHM9V3QoKSxVdC5leHBvcnRzLmNyZWF0ZUNvbG9ycz1XdDt2YXIgR3Q9VXQuZXhwb3J0cyxLdD1IdChPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7X19wcm90b19fOm51bGwsZGVmYXVsdDp7fX0sU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpgTW9kdWxlYH0pKSkscXQ9R3QsSnQ9S3QsWXQ9Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQsbixyLGksYSxvKXtzdXBlcih0KSx0aGlzLm5hbWU9YENzc1N5bnRheEVycm9yYCx0aGlzLnJlYXNvbj10LGEmJih0aGlzLmZpbGU9YSksaSYmKHRoaXMuc291cmNlPWkpLG8mJih0aGlzLnBsdWdpbj1vKSxuIT09dm9pZCAwJiZyIT09dm9pZCAwJiYodHlwZW9mIG49PWBudW1iZXJgPyh0aGlzLmxpbmU9bix0aGlzLmNvbHVtbj1yKToodGhpcy5saW5lPW4ubGluZSx0aGlzLmNvbHVtbj1uLmNvbHVtbix0aGlzLmVuZExpbmU9ci5saW5lLHRoaXMuZW5kQ29sdW1uPXIuY29sdW1uKSksdGhpcy5zZXRNZXNzYWdlKCksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsZSl9c2V0TWVzc2FnZSgpe3RoaXMubWVzc2FnZT10aGlzLnBsdWdpbj90aGlzLnBsdWdpbitgOiBgOmBgLHRoaXMubWVzc2FnZSs9dGhpcy5maWxlP3RoaXMuZmlsZTpgPGNzcyBpbnB1dD5gLHRoaXMubGluZSE9PXZvaWQgMCYmKHRoaXMubWVzc2FnZSs9YDpgK3RoaXMubGluZStgOmArdGhpcy5jb2x1bW4pLHRoaXMubWVzc2FnZSs9YDogYCt0aGlzLnJlYXNvbn1zaG93U291cmNlQ29kZShlKXtpZighdGhpcy5zb3VyY2UpcmV0dXJuYGA7bGV0IHQ9dGhpcy5zb3VyY2U7ZT8/KGU9cXQuaXNDb2xvclN1cHBvcnRlZCksSnQmJmUmJih0PUp0KHQpKTtsZXQgbixyLGk9dC5zcGxpdCgvXHI/XG4vKSxhPU1hdGgubWF4KHRoaXMubGluZS0zLDApLG89TWF0aC5taW4odGhpcy5saW5lKzIsaS5sZW5ndGgpLHM9U3RyaW5nKG8pLmxlbmd0aDtpZihlKXtsZXR7Ym9sZDplLGdyYXk6dCxyZWQ6aX09cXQuY3JlYXRlQ29sb3JzKCEwKTtuPXQ9PmUoaSh0KSkscj1lPT50KGUpfWVsc2Ugbj1yPWU9PmU7cmV0dXJuIGkuc2xpY2UoYSxvKS5tYXAoKGUsdCk9PntsZXQgaT1hKzErdCxvPWAgYCsoYCBgK2kpLnNsaWNlKC1zKStgIHwgYDtpZihpPT09dGhpcy5saW5lKXtsZXQgdD1yKG8ucmVwbGFjZSgvXGQvZyxgIGApKStlLnNsaWNlKDAsdGhpcy5jb2x1bW4tMSkucmVwbGFjZSgvW15cdF0vZyxgIGApO3JldHVybiBuKGA+YCkrcihvKStlK2AKIGArdCtuKGBeYCl9cmV0dXJuYCBgK3IobykrZX0pLmpvaW4oYApgKX10b1N0cmluZygpe2xldCBlPXRoaXMuc2hvd1NvdXJjZUNvZGUoKTtyZXR1cm4gZSYmKGU9YAoKYCtlK2AKYCksdGhpcy5uYW1lK2A6IGArdGhpcy5tZXNzYWdlK2V9fSxYdD1ZdDtZdC5kZWZhdWx0PVl0O3ZhciBadD17fTtadC5pc0NsZWFuPVN5bWJvbChgaXNDbGVhbmApLFp0Lm15PVN5bWJvbChgbXlgKTt2YXIgUXQ9e2FmdGVyOmAKYCxiZWZvcmVDbG9zZTpgCmAsYmVmb3JlQ29tbWVudDpgCmAsYmVmb3JlRGVjbDpgCmAsYmVmb3JlT3BlbjpgIGAsYmVmb3JlUnVsZTpgCmAsY29sb246YDogYCxjb21tZW50TGVmdDpgIGAsY29tbWVudFJpZ2h0OmAgYCxlbXB0eUJvZHk6YGAsaW5kZW50OmAgICAgYCxzZW1pY29sb246ITF9LCR0PWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuYnVpbGRlcj1lfWF0cnVsZShlLHQpe2xldCBuPWBAYCtlLm5hbWUscj1lLnBhcmFtcz90aGlzLnJhd1ZhbHVlKGUsYHBhcmFtc2ApOmBgO2lmKGUucmF3cy5hZnRlck5hbWU9PT12b2lkIDA/ciYmKG4rPWAgYCk6bis9ZS5yYXdzLmFmdGVyTmFtZSxlLm5vZGVzKXRoaXMuYmxvY2soZSxuK3IpO2Vsc2V7bGV0IGk9KGUucmF3cy5iZXR3ZWVufHxgYCkrKHQ/YDtgOmBgKTt0aGlzLmJ1aWxkZXIobityK2ksZSl9fWJlZm9yZUFmdGVyKGUsdCl7bGV0IG47bj1lLnR5cGU9PT1gZGVjbGA/dGhpcy5yYXcoZSxudWxsLGBiZWZvcmVEZWNsYCk6ZS50eXBlPT09YGNvbW1lbnRgP3RoaXMucmF3KGUsbnVsbCxgYmVmb3JlQ29tbWVudGApOnQ9PT1gYmVmb3JlYD90aGlzLnJhdyhlLG51bGwsYGJlZm9yZVJ1bGVgKTp0aGlzLnJhdyhlLG51bGwsYGJlZm9yZUNsb3NlYCk7bGV0IHI9ZS5wYXJlbnQsaT0wO2Zvcig7ciYmci50eXBlIT09YHJvb3RgOylpKz0xLHI9ci5wYXJlbnQ7aWYobi5pbmNsdWRlcyhgCmApKXtsZXQgdD10aGlzLnJhdyhlLG51bGwsYGluZGVudGApO2lmKHQubGVuZ3RoKWZvcihsZXQgZT0wO2U8aTtlKyspbis9dH1yZXR1cm4gbn1ibG9jayhlLHQpe2xldCBuLHI9dGhpcy5yYXcoZSxgYmV0d2VlbmAsYGJlZm9yZU9wZW5gKTt0aGlzLmJ1aWxkZXIodCtyK2B7YCxlLGBzdGFydGApLGUubm9kZXMmJmUubm9kZXMubGVuZ3RoPyh0aGlzLmJvZHkoZSksbj10aGlzLnJhdyhlLGBhZnRlcmApKTpuPXRoaXMucmF3KGUsYGFmdGVyYCxgZW1wdHlCb2R5YCksbiYmdGhpcy5idWlsZGVyKG4pLHRoaXMuYnVpbGRlcihgfWAsZSxgZW5kYCl9Ym9keShlKXtsZXQgdD1lLm5vZGVzLmxlbmd0aC0xO2Zvcig7dD4wJiZlLm5vZGVzW3RdLnR5cGU9PT1gY29tbWVudGA7KS0tdDtsZXQgbj10aGlzLnJhdyhlLGBzZW1pY29sb25gKTtmb3IobGV0IHI9MDtyPGUubm9kZXMubGVuZ3RoO3IrKyl7bGV0IGk9ZS5ub2Rlc1tyXSxhPXRoaXMucmF3KGksYGJlZm9yZWApO2EmJnRoaXMuYnVpbGRlcihhKSx0aGlzLnN0cmluZ2lmeShpLHQhPT1yfHxuKX19Y29tbWVudChlKXtsZXQgdD10aGlzLnJhdyhlLGBsZWZ0YCxgY29tbWVudExlZnRgKSxuPXRoaXMucmF3KGUsYHJpZ2h0YCxgY29tbWVudFJpZ2h0YCk7dGhpcy5idWlsZGVyKGAvKmArdCtlLnRleHQrbitgKi9gLGUpfWRlY2woZSx0KXtsZXQgbj10aGlzLnJhdyhlLGBiZXR3ZWVuYCxgY29sb25gKSxyPWUucHJvcCtuK3RoaXMucmF3VmFsdWUoZSxgdmFsdWVgKTtlLmltcG9ydGFudCYmKHIrPWUucmF3cy5pbXBvcnRhbnR8fGAgIWltcG9ydGFudGApLHQmJihyKz1gO2ApLHRoaXMuYnVpbGRlcihyLGUpfWRvY3VtZW50KGUpe3RoaXMuYm9keShlKX1yYXcoZSx0LG4pe2xldCByO2lmKG58fChuPXQpLHQmJihyPWUucmF3c1t0XSxyIT09dm9pZCAwKSlyZXR1cm4gcjtsZXQgaT1lLnBhcmVudDtpZihuPT09YGJlZm9yZWAmJighaXx8aS50eXBlPT09YHJvb3RgJiZpLmZpcnN0PT09ZXx8aSYmaS50eXBlPT09YGRvY3VtZW50YCkpcmV0dXJuYGA7aWYoIWkpcmV0dXJuIFF0W25dO2xldCBhPWUucm9vdCgpO2lmKGEucmF3Q2FjaGV8fChhLnJhd0NhY2hlPXt9KSxhLnJhd0NhY2hlW25dIT09dm9pZCAwKXJldHVybiBhLnJhd0NhY2hlW25dO2lmKG49PT1gYmVmb3JlYHx8bj09PWBhZnRlcmApcmV0dXJuIHRoaXMuYmVmb3JlQWZ0ZXIoZSxuKTt7bGV0IGk9YHJhd2ArKChvPW4pWzBdLnRvVXBwZXJDYXNlKCkrby5zbGljZSgxKSk7dGhpc1tpXT9yPXRoaXNbaV0oYSxlKTphLndhbGsoZT0+e2lmKHI9ZS5yYXdzW3RdLHIhPT12b2lkIDApcmV0dXJuITF9KX12YXIgbztyZXR1cm4gcj09PXZvaWQgMCYmKHI9UXRbbl0pLGEucmF3Q2FjaGVbbl09cixyfXJhd0JlZm9yZUNsb3NlKGUpe2xldCB0O3JldHVybiBlLndhbGsoZT0+e2lmKGUubm9kZXMmJmUubm9kZXMubGVuZ3RoPjAmJmUucmF3cy5hZnRlciE9PXZvaWQgMClyZXR1cm4gdD1lLnJhd3MuYWZ0ZXIsdC5pbmNsdWRlcyhgCmApJiYodD10LnJlcGxhY2UoL1teXG5dKyQvLGBgKSksITF9KSx0JiYodD10LnJlcGxhY2UoL1xTL2csYGApKSx0fXJhd0JlZm9yZUNvbW1lbnQoZSx0KXtsZXQgbjtyZXR1cm4gZS53YWxrQ29tbWVudHMoZT0+e2lmKGUucmF3cy5iZWZvcmUhPT12b2lkIDApcmV0dXJuIG49ZS5yYXdzLmJlZm9yZSxuLmluY2x1ZGVzKGAKYCkmJihuPW4ucmVwbGFjZSgvW15cbl0rJC8sYGApKSwhMX0pLG49PT12b2lkIDA/bj10aGlzLnJhdyh0LG51bGwsYGJlZm9yZURlY2xgKTpuJiYobj1uLnJlcGxhY2UoL1xTL2csYGApKSxufXJhd0JlZm9yZURlY2woZSx0KXtsZXQgbjtyZXR1cm4gZS53YWxrRGVjbHMoZT0+e2lmKGUucmF3cy5iZWZvcmUhPT12b2lkIDApcmV0dXJuIG49ZS5yYXdzLmJlZm9yZSxuLmluY2x1ZGVzKGAKYCkmJihuPW4ucmVwbGFjZSgvW15cbl0rJC8sYGApKSwhMX0pLG49PT12b2lkIDA/bj10aGlzLnJhdyh0LG51bGwsYGJlZm9yZVJ1bGVgKTpuJiYobj1uLnJlcGxhY2UoL1xTL2csYGApKSxufXJhd0JlZm9yZU9wZW4oZSl7bGV0IHQ7cmV0dXJuIGUud2FsayhlPT57aWYoZS50eXBlIT09YGRlY2xgJiYodD1lLnJhd3MuYmV0d2Vlbix0IT09dm9pZCAwKSlyZXR1cm4hMX0pLHR9cmF3QmVmb3JlUnVsZShlKXtsZXQgdDtyZXR1cm4gZS53YWxrKG49PntpZihuLm5vZGVzJiYobi5wYXJlbnQhPT1lfHxlLmZpcnN0IT09bikmJm4ucmF3cy5iZWZvcmUhPT12b2lkIDApcmV0dXJuIHQ9bi5yYXdzLmJlZm9yZSx0LmluY2x1ZGVzKGAKYCkmJih0PXQucmVwbGFjZSgvW15cbl0rJC8sYGApKSwhMX0pLHQmJih0PXQucmVwbGFjZSgvXFMvZyxgYCkpLHR9cmF3Q29sb24oZSl7bGV0IHQ7cmV0dXJuIGUud2Fsa0RlY2xzKGU9PntpZihlLnJhd3MuYmV0d2VlbiE9PXZvaWQgMClyZXR1cm4gdD1lLnJhd3MuYmV0d2Vlbi5yZXBsYWNlKC9bXlxzOl0vZyxgYCksITF9KSx0fXJhd0VtcHR5Qm9keShlKXtsZXQgdDtyZXR1cm4gZS53YWxrKGU9PntpZihlLm5vZGVzJiZlLm5vZGVzLmxlbmd0aD09PTAmJih0PWUucmF3cy5hZnRlcix0IT09dm9pZCAwKSlyZXR1cm4hMX0pLHR9cmF3SW5kZW50KGUpe2lmKGUucmF3cy5pbmRlbnQpcmV0dXJuIGUucmF3cy5pbmRlbnQ7bGV0IHQ7cmV0dXJuIGUud2FsayhuPT57bGV0IHI9bi5wYXJlbnQ7aWYociYmciE9PWUmJnIucGFyZW50JiZyLnBhcmVudD09PWUmJm4ucmF3cy5iZWZvcmUhPT12b2lkIDApe2xldCBlPW4ucmF3cy5iZWZvcmUuc3BsaXQoYApgKTtyZXR1cm4gdD1lW2UubGVuZ3RoLTFdLHQ9dC5yZXBsYWNlKC9cUy9nLGBgKSwhMX19KSx0fXJhd1NlbWljb2xvbihlKXtsZXQgdDtyZXR1cm4gZS53YWxrKGU9PntpZihlLm5vZGVzJiZlLm5vZGVzLmxlbmd0aCYmZS5sYXN0LnR5cGU9PT1gZGVjbGAmJih0PWUucmF3cy5zZW1pY29sb24sdCE9PXZvaWQgMCkpcmV0dXJuITF9KSx0fXJhd1ZhbHVlKGUsdCl7bGV0IG49ZVt0XSxyPWUucmF3c1t0XTtyZXR1cm4gciYmci52YWx1ZT09PW4/ci5yYXc6bn1yb290KGUpe3RoaXMuYm9keShlKSxlLnJhd3MuYWZ0ZXImJnRoaXMuYnVpbGRlcihlLnJhd3MuYWZ0ZXIpfXJ1bGUoZSl7dGhpcy5ibG9jayhlLHRoaXMucmF3VmFsdWUoZSxgc2VsZWN0b3JgKSksZS5yYXdzLm93blNlbWljb2xvbiYmdGhpcy5idWlsZGVyKGUucmF3cy5vd25TZW1pY29sb24sZSxgZW5kYCl9c3RyaW5naWZ5KGUsdCl7aWYoIXRoaXNbZS50eXBlXSl0aHJvdyBFcnJvcihgVW5rbm93biBBU1Qgbm9kZSB0eXBlIGArZS50eXBlK2AuIE1heWJlIHlvdSBuZWVkIHRvIGNoYW5nZSBQb3N0Q1NTIHN0cmluZ2lmaWVyLmApO3RoaXNbZS50eXBlXShlLHQpfX0sZW49JHQ7JHQuZGVmYXVsdD0kdDt2YXIgdG49ZW47ZnVuY3Rpb24gbm4oZSx0KXtuZXcgdG4odCkuc3RyaW5naWZ5KGUpfXZhciBybj1ubjtubi5kZWZhdWx0PW5uO3Zhcntpc0NsZWFuOmFuLG15Om9ufT1adCxzbj1YdCxjbj1lbixsbj1ybjtmdW5jdGlvbiB1bihlLHQpe2xldCBuPW5ldyBlLmNvbnN0cnVjdG9yO2ZvcihsZXQgciBpbiBlKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscil8fHI9PT1gcHJveHlDYWNoZWApY29udGludWU7bGV0IGk9ZVtyXSxhPXR5cGVvZiBpO3I9PT1gcGFyZW50YCYmYT09PWBvYmplY3RgP3QmJihuW3JdPXQpOnI9PT1gc291cmNlYD9uW3JdPWk6QXJyYXkuaXNBcnJheShpKT9uW3JdPWkubWFwKGU9PnVuKGUsbikpOihhPT09YG9iamVjdGAmJmkhPT1udWxsJiYoaT11bihpKSksbltyXT1pKX1yZXR1cm4gbn12YXIgZG49Y2xhc3N7Y29uc3RydWN0b3IoZT17fSl7dGhpcy5yYXdzPXt9LHRoaXNbYW5dPSExLHRoaXNbb25dPSEwO2ZvcihsZXQgdCBpbiBlKWlmKHQ9PT1gbm9kZXNgKXt0aGlzLm5vZGVzPVtdO2ZvcihsZXQgbiBvZiBlW3RdKXR5cGVvZiBuLmNsb25lPT1gZnVuY3Rpb25gP3RoaXMuYXBwZW5kKG4uY2xvbmUoKSk6dGhpcy5hcHBlbmQobil9ZWxzZSB0aGlzW3RdPWVbdF19YWRkVG9FcnJvcihlKXtpZihlLnBvc3Rjc3NOb2RlPXRoaXMsZS5zdGFjayYmdGhpcy5zb3VyY2UmJi9cblxzezR9YXQgLy50ZXN0KGUuc3RhY2spKXtsZXQgdD10aGlzLnNvdXJjZTtlLnN0YWNrPWUuc3RhY2sucmVwbGFjZSgvXG5cc3s0fWF0IC8sYCQmJHt0LmlucHV0LmZyb219OiR7dC5zdGFydC5saW5lfToke3Quc3RhcnQuY29sdW1ufSQmYCl9cmV0dXJuIGV9YWZ0ZXIoZSl7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEFmdGVyKHRoaXMsZSksdGhpc31hc3NpZ24oZT17fSl7Zm9yKGxldCB0IGluIGUpdGhpc1t0XT1lW3RdO3JldHVybiB0aGlzfWJlZm9yZShlKXtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QmVmb3JlKHRoaXMsZSksdGhpc31jbGVhblJhd3MoZSl7ZGVsZXRlIHRoaXMucmF3cy5iZWZvcmUsZGVsZXRlIHRoaXMucmF3cy5hZnRlcixlfHxkZWxldGUgdGhpcy5yYXdzLmJldHdlZW59Y2xvbmUoZT17fSl7bGV0IHQ9dW4odGhpcyk7Zm9yKGxldCBuIGluIGUpdFtuXT1lW25dO3JldHVybiB0fWNsb25lQWZ0ZXIoZT17fSl7bGV0IHQ9dGhpcy5jbG9uZShlKTtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QWZ0ZXIodGhpcyx0KSx0fWNsb25lQmVmb3JlKGU9e30pe2xldCB0PXRoaXMuY2xvbmUoZSk7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0aGlzLHQpLHR9ZXJyb3IoZSx0PXt9KXtpZih0aGlzLnNvdXJjZSl7bGV0e2VuZDpuLHN0YXJ0OnJ9PXRoaXMucmFuZ2VCeSh0KTtyZXR1cm4gdGhpcy5zb3VyY2UuaW5wdXQuZXJyb3IoZSx7Y29sdW1uOnIuY29sdW1uLGxpbmU6ci5saW5lfSx7Y29sdW1uOm4uY29sdW1uLGxpbmU6bi5saW5lfSx0KX1yZXR1cm4gbmV3IHNuKGUpfWdldFByb3h5UHJvY2Vzc29yKCl7cmV0dXJue2dldDooZSx0KT0+dD09PWBwcm94eU9mYD9lOnQ9PT1gcm9vdGA/KCk9PmUucm9vdCgpLnRvUHJveHkoKTplW3RdLHNldDooZSx0LG4pPT4oZVt0XT09PW58fChlW3RdPW4sdCE9PWBwcm9wYCYmdCE9PWB2YWx1ZWAmJnQhPT1gbmFtZWAmJnQhPT1gcGFyYW1zYCYmdCE9PWBpbXBvcnRhbnRgJiZ0IT09YHRleHRgfHxlLm1hcmtEaXJ0eSgpKSwhMCl9fW1hcmtEaXJ0eSgpe2lmKHRoaXNbYW5dKXt0aGlzW2FuXT0hMTtsZXQgZT10aGlzO2Zvcig7ZT1lLnBhcmVudDspZVthbl09ITF9fW5leHQoKXtpZighdGhpcy5wYXJlbnQpcmV0dXJuO2xldCBlPXRoaXMucGFyZW50LmluZGV4KHRoaXMpO3JldHVybiB0aGlzLnBhcmVudC5ub2Rlc1tlKzFdfXBvc2l0aW9uQnkoZSx0KXtsZXQgbj10aGlzLnNvdXJjZS5zdGFydDtpZihlLmluZGV4KW49dGhpcy5wb3NpdGlvbkluc2lkZShlLmluZGV4LHQpO2Vsc2UgaWYoZS53b3JkKXtsZXQgcj0odD10aGlzLnRvU3RyaW5nKCkpLmluZGV4T2YoZS53b3JkKTtyIT09LTEmJihuPXRoaXMucG9zaXRpb25JbnNpZGUocix0KSl9cmV0dXJuIG59cG9zaXRpb25JbnNpZGUoZSx0KXtsZXQgbj10fHx0aGlzLnRvU3RyaW5nKCkscj10aGlzLnNvdXJjZS5zdGFydC5jb2x1bW4saT10aGlzLnNvdXJjZS5zdGFydC5saW5lO2ZvcihsZXQgdD0wO3Q8ZTt0Kyspblt0XT09PWAKYD8ocj0xLGkrPTEpOnIrPTE7cmV0dXJue2NvbHVtbjpyLGxpbmU6aX19cHJldigpe2lmKCF0aGlzLnBhcmVudClyZXR1cm47bGV0IGU9dGhpcy5wYXJlbnQuaW5kZXgodGhpcyk7cmV0dXJuIHRoaXMucGFyZW50Lm5vZGVzW2UtMV19cmFuZ2VCeShlKXtsZXQgdD17Y29sdW1uOnRoaXMuc291cmNlLnN0YXJ0LmNvbHVtbixsaW5lOnRoaXMuc291cmNlLnN0YXJ0LmxpbmV9LG49dGhpcy5zb3VyY2UuZW5kP3tjb2x1bW46dGhpcy5zb3VyY2UuZW5kLmNvbHVtbisxLGxpbmU6dGhpcy5zb3VyY2UuZW5kLmxpbmV9Ontjb2x1bW46dC5jb2x1bW4rMSxsaW5lOnQubGluZX07aWYoZS53b3JkKXtsZXQgcj10aGlzLnRvU3RyaW5nKCksaT1yLmluZGV4T2YoZS53b3JkKTtpIT09LTEmJih0PXRoaXMucG9zaXRpb25JbnNpZGUoaSxyKSxuPXRoaXMucG9zaXRpb25JbnNpZGUoaStlLndvcmQubGVuZ3RoLHIpKX1lbHNlIGUuc3RhcnQ/dD17Y29sdW1uOmUuc3RhcnQuY29sdW1uLGxpbmU6ZS5zdGFydC5saW5lfTplLmluZGV4JiYodD10aGlzLnBvc2l0aW9uSW5zaWRlKGUuaW5kZXgpKSxlLmVuZD9uPXtjb2x1bW46ZS5lbmQuY29sdW1uLGxpbmU6ZS5lbmQubGluZX06dHlwZW9mIGUuZW5kSW5kZXg9PWBudW1iZXJgP249dGhpcy5wb3NpdGlvbkluc2lkZShlLmVuZEluZGV4KTplLmluZGV4JiYobj10aGlzLnBvc2l0aW9uSW5zaWRlKGUuaW5kZXgrMSkpO3JldHVybihuLmxpbmU8dC5saW5lfHxuLmxpbmU9PT10LmxpbmUmJm4uY29sdW1uPD10LmNvbHVtbikmJihuPXtjb2x1bW46dC5jb2x1bW4rMSxsaW5lOnQubGluZX0pLHtlbmQ6bixzdGFydDp0fX1yYXcoZSx0KXtyZXR1cm4gbmV3IGNuKCkucmF3KHRoaXMsZSx0KX1yZW1vdmUoKXtyZXR1cm4gdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LnJlbW92ZUNoaWxkKHRoaXMpLHRoaXMucGFyZW50PXZvaWQgMCx0aGlzfXJlcGxhY2VXaXRoKC4uLmUpe2lmKHRoaXMucGFyZW50KXtsZXQgdD10aGlzLG49ITE7Zm9yKGxldCByIG9mIGUpcj09PXRoaXM/bj0hMDpuPyh0aGlzLnBhcmVudC5pbnNlcnRBZnRlcih0LHIpLHQ9cik6dGhpcy5wYXJlbnQuaW5zZXJ0QmVmb3JlKHQscik7bnx8dGhpcy5yZW1vdmUoKX1yZXR1cm4gdGhpc31yb290KCl7bGV0IGU9dGhpcztmb3IoO2UucGFyZW50JiZlLnBhcmVudC50eXBlIT09YGRvY3VtZW50YDspZT1lLnBhcmVudDtyZXR1cm4gZX10b0pTT04oZSx0KXtsZXQgbj17fSxyPXQ9PW51bGw7dD10fHxuZXcgTWFwO2xldCBpPTA7Zm9yKGxldCBlIGluIHRoaXMpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcyxlKXx8ZT09PWBwYXJlbnRgfHxlPT09YHByb3h5Q2FjaGVgKWNvbnRpbnVlO2xldCByPXRoaXNbZV07aWYoQXJyYXkuaXNBcnJheShyKSluW2VdPXIubWFwKGU9PnR5cGVvZiBlPT1gb2JqZWN0YCYmZS50b0pTT04/ZS50b0pTT04obnVsbCx0KTplKTtlbHNlIGlmKHR5cGVvZiByPT1gb2JqZWN0YCYmci50b0pTT04pbltlXT1yLnRvSlNPTihudWxsLHQpO2Vsc2UgaWYoZT09PWBzb3VyY2VgKXtsZXQgYT10LmdldChyLmlucHV0KTthPz8oYT1pLHQuc2V0KHIuaW5wdXQsaSksaSsrKSxuW2VdPXtlbmQ6ci5lbmQsaW5wdXRJZDphLHN0YXJ0OnIuc3RhcnR9fWVsc2UgbltlXT1yfXJldHVybiByJiYobi5pbnB1dHM9Wy4uLnQua2V5cygpXS5tYXAoZT0+ZS50b0pTT04oKSkpLG59dG9Qcm94eSgpe3JldHVybiB0aGlzLnByb3h5Q2FjaGV8fCh0aGlzLnByb3h5Q2FjaGU9bmV3IFByb3h5KHRoaXMsdGhpcy5nZXRQcm94eVByb2Nlc3NvcigpKSksdGhpcy5wcm94eUNhY2hlfXRvU3RyaW5nKGU9bG4pe2Uuc3RyaW5naWZ5JiYoZT1lLnN0cmluZ2lmeSk7bGV0IHQ9YGA7cmV0dXJuIGUodGhpcyxlPT57dCs9ZX0pLHR9d2FybihlLHQsbil7bGV0IHI9e25vZGU6dGhpc307Zm9yKGxldCBlIGluIG4pcltlXT1uW2VdO3JldHVybiBlLndhcm4odCxyKX1nZXQgcHJveHlPZigpe3JldHVybiB0aGlzfX0sZm49ZG47ZG4uZGVmYXVsdD1kbjt2YXIgcG49Zm4sbW49Y2xhc3MgZXh0ZW5kcyBwbntjb25zdHJ1Y3RvcihlKXtlJiZlLnZhbHVlIT09dm9pZCAwJiZ0eXBlb2YgZS52YWx1ZSE9YHN0cmluZ2AmJihlPXsuLi5lLHZhbHVlOlN0cmluZyhlLnZhbHVlKX0pLHN1cGVyKGUpLHRoaXMudHlwZT1gZGVjbGB9Z2V0IHZhcmlhYmxlKCl7cmV0dXJuIHRoaXMucHJvcC5zdGFydHNXaXRoKGAtLWApfHx0aGlzLnByb3BbMF09PT1gJGB9fSxobj1tbjttbi5kZWZhdWx0PW1uO3ZhciBnbj17bmFub2lkOihlPTIxKT0+e2xldCB0PWBgLG49ZTtmb3IoO24tLTspdCs9YHVzZWFuZG9tLTI2VDE5ODM0MFBYNzVweEpBQ0tWRVJZTUlOREJVU0hXT0xGX0dRWmJmZ2hqa2xxdnd5enJpY3RgWzY0Kk1hdGgucmFuZG9tKCl8MF07cmV0dXJuIHR9fSx7U291cmNlTWFwQ29uc3VtZXI6X24sU291cmNlTWFwR2VuZXJhdG9yOnZufT1LdCx7ZXhpc3RzU3luYzp5bixyZWFkRmlsZVN5bmM6Ym59PUt0LHtkaXJuYW1lOnhuLGpvaW46U259PUt0LENuPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7aWYodC5tYXA9PT0hMSlyZXR1cm47dGhpcy5sb2FkQW5ub3RhdGlvbihlKSx0aGlzLmlubGluZT10aGlzLnN0YXJ0V2l0aCh0aGlzLmFubm90YXRpb24sYGRhdGE6YCk7bGV0IG49dC5tYXA/dC5tYXAucHJldjp2b2lkIDAscj10aGlzLmxvYWRNYXAodC5mcm9tLG4pOyF0aGlzLm1hcEZpbGUmJnQuZnJvbSYmKHRoaXMubWFwRmlsZT10LmZyb20pLHRoaXMubWFwRmlsZSYmKHRoaXMucm9vdD14bih0aGlzLm1hcEZpbGUpKSxyJiYodGhpcy50ZXh0PXIpfWNvbnN1bWVyKCl7cmV0dXJuIHRoaXMuY29uc3VtZXJDYWNoZXx8KHRoaXMuY29uc3VtZXJDYWNoZT1uZXcgX24odGhpcy50ZXh0KSksdGhpcy5jb25zdW1lckNhY2hlfWRlY29kZUlubGluZShlKXtpZigvXmRhdGE6YXBwbGljYXRpb25cL2pzb247Y2hhcnNldD11dGYtPzgsLy50ZXN0KGUpfHwvXmRhdGE6YXBwbGljYXRpb25cL2pzb24sLy50ZXN0KGUpKXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoZS5zdWJzdHIoUmVnRXhwLmxhc3RNYXRjaC5sZW5ndGgpKTtpZigvXmRhdGE6YXBwbGljYXRpb25cL2pzb247Y2hhcnNldD11dGYtPzg7YmFzZTY0LC8udGVzdChlKXx8L15kYXRhOmFwcGxpY2F0aW9uXC9qc29uO2Jhc2U2NCwvLnRlc3QoZSkpcmV0dXJuIG49ZS5zdWJzdHIoUmVnRXhwLmxhc3RNYXRjaC5sZW5ndGgpLHQ/dC5mcm9tKG4sYGJhc2U2NGApLnRvU3RyaW5nKCk6d2luZG93LmF0b2Iobik7dmFyIG47bGV0IHI9ZS5tYXRjaCgvZGF0YTphcHBsaWNhdGlvblwvanNvbjsoW14sXSspLC8pWzFdO3Rocm93IEVycm9yKGBVbnN1cHBvcnRlZCBzb3VyY2UgbWFwIGVuY29kaW5nIGArcil9Z2V0QW5ub3RhdGlvblVSTChlKXtyZXR1cm4gZS5yZXBsYWNlKC9eXC9cKlxzKiMgc291cmNlTWFwcGluZ1VSTD0vLGBgKS50cmltKCl9aXNNYXAoZSl7cmV0dXJuIHR5cGVvZiBlPT1gb2JqZWN0YCYmKHR5cGVvZiBlLm1hcHBpbmdzPT1gc3RyaW5nYHx8dHlwZW9mIGUuX21hcHBpbmdzPT1gc3RyaW5nYHx8QXJyYXkuaXNBcnJheShlLnNlY3Rpb25zKSl9bG9hZEFubm90YXRpb24oZSl7bGV0IHQ9ZS5tYXRjaCgvXC9cKlxzKiMgc291cmNlTWFwcGluZ1VSTD0vZ20pO2lmKCF0KXJldHVybjtsZXQgbj1lLmxhc3RJbmRleE9mKHQucG9wKCkpLHI9ZS5pbmRleE9mKGAqL2Asbik7bj4tMSYmcj4tMSYmKHRoaXMuYW5ub3RhdGlvbj10aGlzLmdldEFubm90YXRpb25VUkwoZS5zdWJzdHJpbmcobixyKSkpfWxvYWRGaWxlKGUpe2lmKHRoaXMucm9vdD14bihlKSx5bihlKSlyZXR1cm4gdGhpcy5tYXBGaWxlPWUsYm4oZSxgdXRmLThgKS50b1N0cmluZygpLnRyaW0oKX1sb2FkTWFwKGUsdCl7aWYodD09PSExKXJldHVybiExO2lmKHQpe2lmKHR5cGVvZiB0PT1gc3RyaW5nYClyZXR1cm4gdDtpZih0eXBlb2YgdCE9YGZ1bmN0aW9uYCl7aWYodCBpbnN0YW5jZW9mIF9uKXJldHVybiB2bi5mcm9tU291cmNlTWFwKHQpLnRvU3RyaW5nKCk7aWYodCBpbnN0YW5jZW9mIHZuKXJldHVybiB0LnRvU3RyaW5nKCk7aWYodGhpcy5pc01hcCh0KSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCk7dGhyb3cgRXJyb3IoYFVuc3VwcG9ydGVkIHByZXZpb3VzIHNvdXJjZSBtYXAgZm9ybWF0OiBgK3QudG9TdHJpbmcoKSl9e2xldCBuPXQoZSk7aWYobil7bGV0IGU9dGhpcy5sb2FkRmlsZShuKTtpZighZSl0aHJvdyBFcnJvcihgVW5hYmxlIHRvIGxvYWQgcHJldmlvdXMgc291cmNlIG1hcDogYCtuLnRvU3RyaW5nKCkpO3JldHVybiBlfX19ZWxzZXtpZih0aGlzLmlubGluZSlyZXR1cm4gdGhpcy5kZWNvZGVJbmxpbmUodGhpcy5hbm5vdGF0aW9uKTtpZih0aGlzLmFubm90YXRpb24pe2xldCB0PXRoaXMuYW5ub3RhdGlvbjtyZXR1cm4gZSYmKHQ9U24oeG4oZSksdCkpLHRoaXMubG9hZEZpbGUodCl9fX1zdGFydFdpdGgoZSx0KXtyZXR1cm4hIWUmJmUuc3Vic3RyKDAsdC5sZW5ndGgpPT09dH13aXRoQ29udGVudCgpe3JldHVybiEhKHRoaXMuY29uc3VtZXIoKS5zb3VyY2VzQ29udGVudCYmdGhpcy5jb25zdW1lcigpLnNvdXJjZXNDb250ZW50Lmxlbmd0aD4wKX19LHduPUNuO0NuLmRlZmF1bHQ9Q247dmFye1NvdXJjZU1hcENvbnN1bWVyOlRuLFNvdXJjZU1hcEdlbmVyYXRvcjpFbn09S3Qse2ZpbGVVUkxUb1BhdGg6RG4scGF0aFRvRmlsZVVSTDpPbn09S3Qse2lzQWJzb2x1dGU6a24scmVzb2x2ZTpBbn09S3Qse25hbm9pZDpqbn09Z24sTW49S3QsTm49WHQsUG49d24sRm49U3ltYm9sKGBmcm9tT2Zmc2V0Q2FjaGVgKSxJbj0hIShUbiYmRW4pLExuPSEhKEFuJiZrbiksUm49Y2xhc3N7Y29uc3RydWN0b3IoZSx0PXt9KXtpZihlPT1udWxsfHx0eXBlb2YgZT09YG9iamVjdGAmJiFlLnRvU3RyaW5nKXRocm93IEVycm9yKGBQb3N0Q1NTIHJlY2VpdmVkICR7ZX0gaW5zdGVhZCBvZiBDU1Mgc3RyaW5nYCk7aWYodGhpcy5jc3M9ZS50b1N0cmluZygpLHRoaXMuY3NzWzBdPT09YO+7v2B8fHRoaXMuY3NzWzBdPT09YO+/vmA/KHRoaXMuaGFzQk9NPSEwLHRoaXMuY3NzPXRoaXMuY3NzLnNsaWNlKDEpKTp0aGlzLmhhc0JPTT0hMSx0LmZyb20mJighTG58fC9eXHcrOlwvXC8vLnRlc3QodC5mcm9tKXx8a24odC5mcm9tKT90aGlzLmZpbGU9dC5mcm9tOnRoaXMuZmlsZT1Bbih0LmZyb20pKSxMbiYmSW4pe2xldCBlPW5ldyBQbih0aGlzLmNzcyx0KTtpZihlLnRleHQpe3RoaXMubWFwPWU7bGV0IHQ9ZS5jb25zdW1lcigpLmZpbGU7IXRoaXMuZmlsZSYmdCYmKHRoaXMuZmlsZT10aGlzLm1hcFJlc29sdmUodCkpfX10aGlzLmZpbGV8fCh0aGlzLmlkPWA8aW5wdXQgY3NzIGAram4oNikrYD5gKSx0aGlzLm1hcCYmKHRoaXMubWFwLmZpbGU9dGhpcy5mcm9tKX1lcnJvcihlLHQsbixyPXt9KXtsZXQgaSxhLG87aWYodCYmdHlwZW9mIHQ9PWBvYmplY3RgKXtsZXQgZT10LHI9bjtpZih0eXBlb2YgZS5vZmZzZXQ9PWBudW1iZXJgKXtsZXQgcj10aGlzLmZyb21PZmZzZXQoZS5vZmZzZXQpO3Q9ci5saW5lLG49ci5jb2x9ZWxzZSB0PWUubGluZSxuPWUuY29sdW1uO2lmKHR5cGVvZiByLm9mZnNldD09YG51bWJlcmApe2xldCBlPXRoaXMuZnJvbU9mZnNldChyLm9mZnNldCk7YT1lLmxpbmUsbz1lLmNvbH1lbHNlIGE9ci5saW5lLG89ci5jb2x1bW59ZWxzZSBpZighbil7bGV0IGU9dGhpcy5mcm9tT2Zmc2V0KHQpO3Q9ZS5saW5lLG49ZS5jb2x9bGV0IHM9dGhpcy5vcmlnaW4odCxuLGEsbyk7cmV0dXJuIGk9cz9uZXcgTm4oZSxzLmVuZExpbmU9PT12b2lkIDA/cy5saW5lOntjb2x1bW46cy5jb2x1bW4sbGluZTpzLmxpbmV9LHMuZW5kTGluZT09PXZvaWQgMD9zLmNvbHVtbjp7Y29sdW1uOnMuZW5kQ29sdW1uLGxpbmU6cy5lbmRMaW5lfSxzLnNvdXJjZSxzLmZpbGUsci5wbHVnaW4pOm5ldyBObihlLGE9PT12b2lkIDA/dDp7Y29sdW1uOm4sbGluZTp0fSxhPT09dm9pZCAwP246e2NvbHVtbjpvLGxpbmU6YX0sdGhpcy5jc3MsdGhpcy5maWxlLHIucGx1Z2luKSxpLmlucHV0PXtjb2x1bW46bixlbmRDb2x1bW46byxlbmRMaW5lOmEsbGluZTp0LHNvdXJjZTp0aGlzLmNzc30sdGhpcy5maWxlJiYoT24mJihpLmlucHV0LnVybD1Pbih0aGlzLmZpbGUpLnRvU3RyaW5nKCkpLGkuaW5wdXQuZmlsZT10aGlzLmZpbGUpLGl9ZnJvbU9mZnNldChlKXtsZXQgdCxuO2lmKHRoaXNbRm5dKW49dGhpc1tGbl07ZWxzZXtsZXQgZT10aGlzLmNzcy5zcGxpdChgCmApO249QXJyYXkoZS5sZW5ndGgpO2xldCB0PTA7Zm9yKGxldCByPTAsaT1lLmxlbmd0aDtyPGk7cisrKW5bcl09dCx0Kz1lW3JdLmxlbmd0aCsxO3RoaXNbRm5dPW59dD1uW24ubGVuZ3RoLTFdO2xldCByPTA7aWYoZT49dClyPW4ubGVuZ3RoLTE7ZWxzZXtsZXQgdCxpPW4ubGVuZ3RoLTI7Zm9yKDtyPGk7KWlmKHQ9cisoaS1yPj4xKSxlPG5bdF0paT10LTE7ZWxzZXtpZighKGU+PW5bdCsxXSkpe3I9dDticmVha31yPXQrMX19cmV0dXJue2NvbDplLW5bcl0rMSxsaW5lOnIrMX19bWFwUmVzb2x2ZShlKXtyZXR1cm4vXlx3KzpcL1wvLy50ZXN0KGUpP2U6QW4odGhpcy5tYXAuY29uc3VtZXIoKS5zb3VyY2VSb290fHx0aGlzLm1hcC5yb290fHxgLmAsZSl9b3JpZ2luKGUsdCxuLHIpe2lmKCF0aGlzLm1hcClyZXR1cm4hMTtsZXQgaSxhLG89dGhpcy5tYXAuY29uc3VtZXIoKSxzPW8ub3JpZ2luYWxQb3NpdGlvbkZvcih7Y29sdW1uOnQsbGluZTplfSk7aWYoIXMuc291cmNlKXJldHVybiExO3R5cGVvZiBuPT1gbnVtYmVyYCYmKGk9by5vcmlnaW5hbFBvc2l0aW9uRm9yKHtjb2x1bW46cixsaW5lOm59KSksYT1rbihzLnNvdXJjZSk/T24ocy5zb3VyY2UpOm5ldyBVUkwocy5zb3VyY2UsdGhpcy5tYXAuY29uc3VtZXIoKS5zb3VyY2VSb290fHxPbih0aGlzLm1hcC5tYXBGaWxlKSk7bGV0IGM9e2NvbHVtbjpzLmNvbHVtbixlbmRDb2x1bW46aSYmaS5jb2x1bW4sZW5kTGluZTppJiZpLmxpbmUsbGluZTpzLmxpbmUsdXJsOmEudG9TdHJpbmcoKX07aWYoYS5wcm90b2NvbD09PWBmaWxlOmApe2lmKCFEbil0aHJvdyBFcnJvcihgZmlsZTogcHJvdG9jb2wgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIFBvc3RDU1MgYnVpbGRgKTtjLmZpbGU9RG4oYSl9bGV0IGw9by5zb3VyY2VDb250ZW50Rm9yKHMuc291cmNlKTtyZXR1cm4gbCYmKGMuc291cmNlPWwpLGN9dG9KU09OKCl7bGV0IGU9e307Zm9yKGxldCB0IG9mW2BoYXNCT01gLGBjc3NgLGBmaWxlYCxgaWRgXSl0aGlzW3RdIT1udWxsJiYoZVt0XT10aGlzW3RdKTtyZXR1cm4gdGhpcy5tYXAmJihlLm1hcD17Li4udGhpcy5tYXB9LGUubWFwLmNvbnN1bWVyQ2FjaGUmJihlLm1hcC5jb25zdW1lckNhY2hlPXZvaWQgMCkpLGV9Z2V0IGZyb20oKXtyZXR1cm4gdGhpcy5maWxlfHx0aGlzLmlkfX0sem49Um47Um4uZGVmYXVsdD1SbixNbiYmTW4ucmVnaXN0ZXJJbnB1dCYmTW4ucmVnaXN0ZXJJbnB1dChSbik7dmFye1NvdXJjZU1hcENvbnN1bWVyOkJuLFNvdXJjZU1hcEdlbmVyYXRvcjpWbn09S3Qse2Rpcm5hbWU6SG4scmVsYXRpdmU6VW4scmVzb2x2ZTpXbixzZXA6R259PUt0LHtwYXRoVG9GaWxlVVJMOktufT1LdCxxbj16bixKbj0hIShCbiYmVm4pLFluPSEhKEhuJiZXbiYmVW4mJkduKSxYbj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQsbixyKXt0aGlzLnN0cmluZ2lmeT1lLHRoaXMubWFwT3B0cz1uLm1hcHx8e30sdGhpcy5yb290PXQsdGhpcy5vcHRzPW4sdGhpcy5jc3M9cix0aGlzLm9yaWdpbmFsQ1NTPXIsdGhpcy51c2VzRmlsZVVybHM9IXRoaXMubWFwT3B0cy5mcm9tJiZ0aGlzLm1hcE9wdHMuYWJzb2x1dGUsdGhpcy5tZW1vaXplZEZpbGVVUkxzPW5ldyBNYXAsdGhpcy5tZW1vaXplZFBhdGhzPW5ldyBNYXAsdGhpcy5tZW1vaXplZFVSTHM9bmV3IE1hcH1hZGRBbm5vdGF0aW9uKCl7bGV0IGU7ZT10aGlzLmlzSW5saW5lKCk/YGRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsYCt0aGlzLnRvQmFzZTY0KHRoaXMubWFwLnRvU3RyaW5nKCkpOnR5cGVvZiB0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbj09YHN0cmluZ2A/dGhpcy5tYXBPcHRzLmFubm90YXRpb246dHlwZW9mIHRoaXMubWFwT3B0cy5hbm5vdGF0aW9uPT1gZnVuY3Rpb25gP3RoaXMubWFwT3B0cy5hbm5vdGF0aW9uKHRoaXMub3B0cy50byx0aGlzLnJvb3QpOnRoaXMub3V0cHV0RmlsZSgpK2AubWFwYDtsZXQgdD1gCmA7dGhpcy5jc3MuaW5jbHVkZXMoYFxyCmApJiYodD1gXHIKYCksdGhpcy5jc3MrPXQrYC8qIyBzb3VyY2VNYXBwaW5nVVJMPWArZStgICovYH1hcHBseVByZXZNYXBzKCl7Zm9yKGxldCBlIG9mIHRoaXMucHJldmlvdXMoKSl7bGV0IHQsbj10aGlzLnRvVXJsKHRoaXMucGF0aChlLmZpbGUpKSxyPWUucm9vdHx8SG4oZS5maWxlKTt0aGlzLm1hcE9wdHMuc291cmNlc0NvbnRlbnQ9PT0hMT8odD1uZXcgQm4oZS50ZXh0KSx0LnNvdXJjZXNDb250ZW50JiYodC5zb3VyY2VzQ29udGVudD1udWxsKSk6dD1lLmNvbnN1bWVyKCksdGhpcy5tYXAuYXBwbHlTb3VyY2VNYXAodCxuLHRoaXMudG9VcmwodGhpcy5wYXRoKHIpKSl9fWNsZWFyQW5ub3RhdGlvbigpe2lmKHRoaXMubWFwT3B0cy5hbm5vdGF0aW9uIT09ITEpaWYodGhpcy5yb290KXtsZXQgZTtmb3IobGV0IHQ9dGhpcy5yb290Lm5vZGVzLmxlbmd0aC0xO3Q+PTA7dC0tKWU9dGhpcy5yb290Lm5vZGVzW3RdLGUudHlwZT09PWBjb21tZW50YCYmZS50ZXh0LmluZGV4T2YoYCMgc291cmNlTWFwcGluZ1VSTD1gKT09PTAmJnRoaXMucm9vdC5yZW1vdmVDaGlsZCh0KX1lbHNlIHRoaXMuY3NzJiYodGhpcy5jc3M9dGhpcy5jc3MucmVwbGFjZSgvXG4qP1wvXCojW1xTXHNdKj9cKlwvJC9nbSxgYCkpfWdlbmVyYXRlKCl7aWYodGhpcy5jbGVhckFubm90YXRpb24oKSxZbiYmSm4mJnRoaXMuaXNNYXAoKSlyZXR1cm4gdGhpcy5nZW5lcmF0ZU1hcCgpO3tsZXQgZT1gYDtyZXR1cm4gdGhpcy5zdHJpbmdpZnkodGhpcy5yb290LHQ9PntlKz10fSksW2VdfX1nZW5lcmF0ZU1hcCgpe2lmKHRoaXMucm9vdCl0aGlzLmdlbmVyYXRlU3RyaW5nKCk7ZWxzZSBpZih0aGlzLnByZXZpb3VzKCkubGVuZ3RoPT09MSl7bGV0IGU9dGhpcy5wcmV2aW91cygpWzBdLmNvbnN1bWVyKCk7ZS5maWxlPXRoaXMub3V0cHV0RmlsZSgpLHRoaXMubWFwPVZuLmZyb21Tb3VyY2VNYXAoZSx7aWdub3JlSW52YWxpZE1hcHBpbmc6ITB9KX1lbHNlIHRoaXMubWFwPW5ldyBWbih7ZmlsZTp0aGlzLm91dHB1dEZpbGUoKSxpZ25vcmVJbnZhbGlkTWFwcGluZzohMH0pLHRoaXMubWFwLmFkZE1hcHBpbmcoe2dlbmVyYXRlZDp7Y29sdW1uOjAsbGluZToxfSxvcmlnaW5hbDp7Y29sdW1uOjAsbGluZToxfSxzb3VyY2U6dGhpcy5vcHRzLmZyb20/dGhpcy50b1VybCh0aGlzLnBhdGgodGhpcy5vcHRzLmZyb20pKTpgPG5vIHNvdXJjZT5gfSk7cmV0dXJuIHRoaXMuaXNTb3VyY2VzQ29udGVudCgpJiZ0aGlzLnNldFNvdXJjZXNDb250ZW50KCksdGhpcy5yb290JiZ0aGlzLnByZXZpb3VzKCkubGVuZ3RoPjAmJnRoaXMuYXBwbHlQcmV2TWFwcygpLHRoaXMuaXNBbm5vdGF0aW9uKCkmJnRoaXMuYWRkQW5ub3RhdGlvbigpLHRoaXMuaXNJbmxpbmUoKT9bdGhpcy5jc3NdOlt0aGlzLmNzcyx0aGlzLm1hcF19Z2VuZXJhdGVTdHJpbmcoKXt0aGlzLmNzcz1gYCx0aGlzLm1hcD1uZXcgVm4oe2ZpbGU6dGhpcy5vdXRwdXRGaWxlKCksaWdub3JlSW52YWxpZE1hcHBpbmc6ITB9KTtsZXQgZSx0LG49MSxyPTEsaT1gPG5vIHNvdXJjZT5gLGE9e2dlbmVyYXRlZDp7Y29sdW1uOjAsbGluZTowfSxvcmlnaW5hbDp7Y29sdW1uOjAsbGluZTowfSxzb3VyY2U6YGB9O3RoaXMuc3RyaW5naWZ5KHRoaXMucm9vdCwobyxzLGMpPT57aWYodGhpcy5jc3MrPW8scyYmYyE9PWBlbmRgJiYoYS5nZW5lcmF0ZWQubGluZT1uLGEuZ2VuZXJhdGVkLmNvbHVtbj1yLTEscy5zb3VyY2UmJnMuc291cmNlLnN0YXJ0PyhhLnNvdXJjZT10aGlzLnNvdXJjZVBhdGgocyksYS5vcmlnaW5hbC5saW5lPXMuc291cmNlLnN0YXJ0LmxpbmUsYS5vcmlnaW5hbC5jb2x1bW49cy5zb3VyY2Uuc3RhcnQuY29sdW1uLTEsdGhpcy5tYXAuYWRkTWFwcGluZyhhKSk6KGEuc291cmNlPWksYS5vcmlnaW5hbC5saW5lPTEsYS5vcmlnaW5hbC5jb2x1bW49MCx0aGlzLm1hcC5hZGRNYXBwaW5nKGEpKSksZT1vLm1hdGNoKC9cbi9nKSxlPyhuKz1lLmxlbmd0aCx0PW8ubGFzdEluZGV4T2YoYApgKSxyPW8ubGVuZ3RoLXQpOnIrPW8ubGVuZ3RoLHMmJmMhPT1gc3RhcnRgKXtsZXQgZT1zLnBhcmVudHx8e3Jhd3M6e319OyhzLnR5cGU9PT1gZGVjbGB8fHMudHlwZT09PWBhdHJ1bGVgJiYhcy5ub2RlcykmJnM9PT1lLmxhc3QmJiFlLnJhd3Muc2VtaWNvbG9ufHwocy5zb3VyY2UmJnMuc291cmNlLmVuZD8oYS5zb3VyY2U9dGhpcy5zb3VyY2VQYXRoKHMpLGEub3JpZ2luYWwubGluZT1zLnNvdXJjZS5lbmQubGluZSxhLm9yaWdpbmFsLmNvbHVtbj1zLnNvdXJjZS5lbmQuY29sdW1uLTEsYS5nZW5lcmF0ZWQubGluZT1uLGEuZ2VuZXJhdGVkLmNvbHVtbj1yLTIsdGhpcy5tYXAuYWRkTWFwcGluZyhhKSk6KGEuc291cmNlPWksYS5vcmlnaW5hbC5saW5lPTEsYS5vcmlnaW5hbC5jb2x1bW49MCxhLmdlbmVyYXRlZC5saW5lPW4sYS5nZW5lcmF0ZWQuY29sdW1uPXItMSx0aGlzLm1hcC5hZGRNYXBwaW5nKGEpKSl9fSl9aXNBbm5vdGF0aW9uKCl7cmV0dXJuISF0aGlzLmlzSW5saW5lKCl8fCh0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbj09PXZvaWQgMD8hdGhpcy5wcmV2aW91cygpLmxlbmd0aHx8dGhpcy5wcmV2aW91cygpLnNvbWUoZT0+ZS5hbm5vdGF0aW9uKTp0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbil9aXNJbmxpbmUoKXtpZih0aGlzLm1hcE9wdHMuaW5saW5lIT09dm9pZCAwKXJldHVybiB0aGlzLm1hcE9wdHMuaW5saW5lO2xldCBlPXRoaXMubWFwT3B0cy5hbm5vdGF0aW9uO3JldHVybihlPT09dm9pZCAwfHxlPT09ITApJiYoIXRoaXMucHJldmlvdXMoKS5sZW5ndGh8fHRoaXMucHJldmlvdXMoKS5zb21lKGU9PmUuaW5saW5lKSl9aXNNYXAoKXtyZXR1cm4gdGhpcy5vcHRzLm1hcD09PXZvaWQgMD90aGlzLnByZXZpb3VzKCkubGVuZ3RoPjA6ISF0aGlzLm9wdHMubWFwfWlzU291cmNlc0NvbnRlbnQoKXtyZXR1cm4gdGhpcy5tYXBPcHRzLnNvdXJjZXNDb250ZW50PT09dm9pZCAwPyF0aGlzLnByZXZpb3VzKCkubGVuZ3RofHx0aGlzLnByZXZpb3VzKCkuc29tZShlPT5lLndpdGhDb250ZW50KCkpOnRoaXMubWFwT3B0cy5zb3VyY2VzQ29udGVudH1vdXRwdXRGaWxlKCl7cmV0dXJuIHRoaXMub3B0cy50bz90aGlzLnBhdGgodGhpcy5vcHRzLnRvKTp0aGlzLm9wdHMuZnJvbT90aGlzLnBhdGgodGhpcy5vcHRzLmZyb20pOmB0by5jc3NgfXBhdGgoZSl7aWYodGhpcy5tYXBPcHRzLmFic29sdXRlfHxlLmNoYXJDb2RlQXQoMCk9PT02MHx8L15cdys6XC9cLy8udGVzdChlKSlyZXR1cm4gZTtsZXQgdD10aGlzLm1lbW9pemVkUGF0aHMuZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7bGV0IG49dGhpcy5vcHRzLnRvP0huKHRoaXMub3B0cy50byk6YC5gO3R5cGVvZiB0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbj09YHN0cmluZ2AmJihuPUhuKFduKG4sdGhpcy5tYXBPcHRzLmFubm90YXRpb24pKSk7bGV0IHI9VW4obixlKTtyZXR1cm4gdGhpcy5tZW1vaXplZFBhdGhzLnNldChlLHIpLHJ9cHJldmlvdXMoKXtpZighdGhpcy5wcmV2aW91c01hcHMpaWYodGhpcy5wcmV2aW91c01hcHM9W10sdGhpcy5yb290KXRoaXMucm9vdC53YWxrKGU9PntpZihlLnNvdXJjZSYmZS5zb3VyY2UuaW5wdXQubWFwKXtsZXQgdD1lLnNvdXJjZS5pbnB1dC5tYXA7dGhpcy5wcmV2aW91c01hcHMuaW5jbHVkZXModCl8fHRoaXMucHJldmlvdXNNYXBzLnB1c2godCl9fSk7ZWxzZXtsZXQgZT1uZXcgcW4odGhpcy5vcmlnaW5hbENTUyx0aGlzLm9wdHMpO2UubWFwJiZ0aGlzLnByZXZpb3VzTWFwcy5wdXNoKGUubWFwKX1yZXR1cm4gdGhpcy5wcmV2aW91c01hcHN9c2V0U291cmNlc0NvbnRlbnQoKXtsZXQgZT17fTtpZih0aGlzLnJvb3QpdGhpcy5yb290LndhbGsodD0+e2lmKHQuc291cmNlKXtsZXQgbj10LnNvdXJjZS5pbnB1dC5mcm9tO2lmKG4mJiFlW25dKXtlW25dPSEwO2xldCByPXRoaXMudXNlc0ZpbGVVcmxzP3RoaXMudG9GaWxlVXJsKG4pOnRoaXMudG9VcmwodGhpcy5wYXRoKG4pKTt0aGlzLm1hcC5zZXRTb3VyY2VDb250ZW50KHIsdC5zb3VyY2UuaW5wdXQuY3NzKX19fSk7ZWxzZSBpZih0aGlzLmNzcyl7bGV0IGU9dGhpcy5vcHRzLmZyb20/dGhpcy50b1VybCh0aGlzLnBhdGgodGhpcy5vcHRzLmZyb20pKTpgPG5vIHNvdXJjZT5gO3RoaXMubWFwLnNldFNvdXJjZUNvbnRlbnQoZSx0aGlzLmNzcyl9fXNvdXJjZVBhdGgoZSl7cmV0dXJuIHRoaXMubWFwT3B0cy5mcm9tP3RoaXMudG9VcmwodGhpcy5tYXBPcHRzLmZyb20pOnRoaXMudXNlc0ZpbGVVcmxzP3RoaXMudG9GaWxlVXJsKGUuc291cmNlLmlucHV0LmZyb20pOnRoaXMudG9VcmwodGhpcy5wYXRoKGUuc291cmNlLmlucHV0LmZyb20pKX10b0Jhc2U2NChlKXtyZXR1cm4gdD90LmZyb20oZSkudG9TdHJpbmcoYGJhc2U2NGApOndpbmRvdy5idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChlKSkpfXRvRmlsZVVybChlKXtsZXQgdD10aGlzLm1lbW9pemVkRmlsZVVSTHMuZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7aWYoS24pe2xldCB0PUtuKGUpLnRvU3RyaW5nKCk7cmV0dXJuIHRoaXMubWVtb2l6ZWRGaWxlVVJMcy5zZXQoZSx0KSx0fXRocm93IEVycm9yKCJgbWFwLmFic29sdXRlYCBvcHRpb24gaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIFBvc3RDU1MgYnVpbGQiKX10b1VybChlKXtsZXQgdD10aGlzLm1lbW9pemVkVVJMcy5nZXQoZSk7aWYodClyZXR1cm4gdDtHbj09PWBcXGAmJihlPWUucmVwbGFjZSgvXFwvZyxgL2ApKTtsZXQgbj1lbmNvZGVVUkkoZSkucmVwbGFjZSgvWyM/XS9nLGVuY29kZVVSSUNvbXBvbmVudCk7cmV0dXJuIHRoaXMubWVtb2l6ZWRVUkxzLnNldChlLG4pLG59fSxabj1mbixRbj1jbGFzcyBleHRlbmRzIFpue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMudHlwZT1gY29tbWVudGB9fSwkbj1RbjtRbi5kZWZhdWx0PVFuO3ZhciBlcix0cixucixycix7aXNDbGVhbjppcixteTphcn09WnQsb3I9aG4sc3I9JG4sY3I9Zm47ZnVuY3Rpb24gbHIoZSl7cmV0dXJuIGUubWFwKGU9PihlLm5vZGVzJiYoZS5ub2Rlcz1scihlLm5vZGVzKSksZGVsZXRlIGUuc291cmNlLGUpKX1mdW5jdGlvbiB1cihlKXtpZihlW2lyXT0hMSxlLnByb3h5T2Yubm9kZXMpZm9yKGxldCB0IG9mIGUucHJveHlPZi5ub2Rlcyl1cih0KX12YXIgZHI9Y2xhc3MgZSBleHRlbmRzIGNye2FwcGVuZCguLi5lKXtmb3IobGV0IHQgb2YgZSl7bGV0IGU9dGhpcy5ub3JtYWxpemUodCx0aGlzLmxhc3QpO2ZvcihsZXQgdCBvZiBlKXRoaXMucHJveHlPZi5ub2Rlcy5wdXNoKHQpfXJldHVybiB0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9Y2xlYW5SYXdzKGUpe2lmKHN1cGVyLmNsZWFuUmF3cyhlKSx0aGlzLm5vZGVzKWZvcihsZXQgdCBvZiB0aGlzLm5vZGVzKXQuY2xlYW5SYXdzKGUpfWVhY2goZSl7aWYoIXRoaXMucHJveHlPZi5ub2RlcylyZXR1cm47bGV0IHQsbixyPXRoaXMuZ2V0SXRlcmF0b3IoKTtmb3IoO3RoaXMuaW5kZXhlc1tyXTx0aGlzLnByb3h5T2Yubm9kZXMubGVuZ3RoJiYodD10aGlzLmluZGV4ZXNbcl0sbj1lKHRoaXMucHJveHlPZi5ub2Rlc1t0XSx0KSxuIT09ITEpOyl0aGlzLmluZGV4ZXNbcl0rPTE7cmV0dXJuIGRlbGV0ZSB0aGlzLmluZGV4ZXNbcl0sbn1ldmVyeShlKXtyZXR1cm4gdGhpcy5ub2Rlcy5ldmVyeShlKX1nZXRJdGVyYXRvcigpe3RoaXMubGFzdEVhY2h8fCh0aGlzLmxhc3RFYWNoPTApLHRoaXMuaW5kZXhlc3x8KHRoaXMuaW5kZXhlcz17fSksdGhpcy5sYXN0RWFjaCs9MTtsZXQgZT10aGlzLmxhc3RFYWNoO3JldHVybiB0aGlzLmluZGV4ZXNbZV09MCxlfWdldFByb3h5UHJvY2Vzc29yKCl7cmV0dXJue2dldDooZSx0KT0+dD09PWBwcm94eU9mYD9lOmVbdF0/dD09PWBlYWNoYHx8dHlwZW9mIHQ9PWBzdHJpbmdgJiZ0LnN0YXJ0c1dpdGgoYHdhbGtgKT8oLi4ubik9PmVbdF0oLi4ubi5tYXAoZT0+dHlwZW9mIGU9PWBmdW5jdGlvbmA/KHQsbik9PmUodC50b1Byb3h5KCksbik6ZSkpOnQ9PT1gZXZlcnlgfHx0PT09YHNvbWVgP249PmVbdF0oKGUsLi4udCk9Pm4oZS50b1Byb3h5KCksLi4udCkpOnQ9PT1gcm9vdGA/KCk9PmUucm9vdCgpLnRvUHJveHkoKTp0PT09YG5vZGVzYD9lLm5vZGVzLm1hcChlPT5lLnRvUHJveHkoKSk6dD09PWBmaXJzdGB8fHQ9PT1gbGFzdGA/ZVt0XS50b1Byb3h5KCk6ZVt0XTplW3RdLHNldDooZSx0LG4pPT4oZVt0XT09PW58fChlW3RdPW4sdCE9PWBuYW1lYCYmdCE9PWBwYXJhbXNgJiZ0IT09YHNlbGVjdG9yYHx8ZS5tYXJrRGlydHkoKSksITApfX1pbmRleChlKXtyZXR1cm4gdHlwZW9mIGU9PWBudW1iZXJgP2U6KGUucHJveHlPZiYmKGU9ZS5wcm94eU9mKSx0aGlzLnByb3h5T2Yubm9kZXMuaW5kZXhPZihlKSl9aW5zZXJ0QWZ0ZXIoZSx0KXtsZXQgbixyPXRoaXMuaW5kZXgoZSksaT10aGlzLm5vcm1hbGl6ZSh0LHRoaXMucHJveHlPZi5ub2Rlc1tyXSkucmV2ZXJzZSgpO3I9dGhpcy5pbmRleChlKTtmb3IobGV0IGUgb2YgaSl0aGlzLnByb3h5T2Yubm9kZXMuc3BsaWNlKHIrMSwwLGUpO2ZvcihsZXQgZSBpbiB0aGlzLmluZGV4ZXMpbj10aGlzLmluZGV4ZXNbZV0scjxuJiYodGhpcy5pbmRleGVzW2VdPW4raS5sZW5ndGgpO3JldHVybiB0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9aW5zZXJ0QmVmb3JlKGUsdCl7bGV0IG4scj10aGlzLmluZGV4KGUpLGk9cj09PTAmJmBwcmVwZW5kYCxhPXRoaXMubm9ybWFsaXplKHQsdGhpcy5wcm94eU9mLm5vZGVzW3JdLGkpLnJldmVyc2UoKTtyPXRoaXMuaW5kZXgoZSk7Zm9yKGxldCBlIG9mIGEpdGhpcy5wcm94eU9mLm5vZGVzLnNwbGljZShyLDAsZSk7Zm9yKGxldCBlIGluIHRoaXMuaW5kZXhlcyluPXRoaXMuaW5kZXhlc1tlXSxyPD1uJiYodGhpcy5pbmRleGVzW2VdPW4rYS5sZW5ndGgpO3JldHVybiB0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9bm9ybWFsaXplKHQsbil7aWYodHlwZW9mIHQ9PWBzdHJpbmdgKXQ9bHIoZXIodCkubm9kZXMpO2Vsc2UgaWYodD09PXZvaWQgMCl0PVtdO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dD10LnNsaWNlKDApO2ZvcihsZXQgZSBvZiB0KWUucGFyZW50JiZlLnBhcmVudC5yZW1vdmVDaGlsZChlLGBpZ25vcmVgKX1lbHNlIGlmKHQudHlwZT09PWByb290YCYmdGhpcy50eXBlIT09YGRvY3VtZW50YCl7dD10Lm5vZGVzLnNsaWNlKDApO2ZvcihsZXQgZSBvZiB0KWUucGFyZW50JiZlLnBhcmVudC5yZW1vdmVDaGlsZChlLGBpZ25vcmVgKX1lbHNlIGlmKHQudHlwZSl0PVt0XTtlbHNlIGlmKHQucHJvcCl7aWYodC52YWx1ZT09PXZvaWQgMCl0aHJvdyBFcnJvcihgVmFsdWUgZmllbGQgaXMgbWlzc2VkIGluIG5vZGUgY3JlYXRpb25gKTt0eXBlb2YgdC52YWx1ZSE9YHN0cmluZ2AmJih0LnZhbHVlPVN0cmluZyh0LnZhbHVlKSksdD1bbmV3IG9yKHQpXX1lbHNlIGlmKHQuc2VsZWN0b3IpdD1bbmV3IHRyKHQpXTtlbHNlIGlmKHQubmFtZSl0PVtuZXcgbnIodCldO2Vsc2V7aWYoIXQudGV4dCl0aHJvdyBFcnJvcihgVW5rbm93biBub2RlIHR5cGUgaW4gbm9kZSBjcmVhdGlvbmApO3Q9W25ldyBzcih0KV19cmV0dXJuIHQubWFwKHQ9Pih0W2FyXXx8ZS5yZWJ1aWxkKHQpLCh0PXQucHJveHlPZikucGFyZW50JiZ0LnBhcmVudC5yZW1vdmVDaGlsZCh0KSx0W2lyXSYmdXIodCksdC5yYXdzLmJlZm9yZT09PXZvaWQgMCYmbiYmbi5yYXdzLmJlZm9yZSE9PXZvaWQgMCYmKHQucmF3cy5iZWZvcmU9bi5yYXdzLmJlZm9yZS5yZXBsYWNlKC9cUy9nLGBgKSksdC5wYXJlbnQ9dGhpcy5wcm94eU9mLHQpKX1wcmVwZW5kKC4uLmUpe2U9ZS5yZXZlcnNlKCk7Zm9yKGxldCB0IG9mIGUpe2xldCBlPXRoaXMubm9ybWFsaXplKHQsdGhpcy5maXJzdCxgcHJlcGVuZGApLnJldmVyc2UoKTtmb3IobGV0IHQgb2YgZSl0aGlzLnByb3h5T2Yubm9kZXMudW5zaGlmdCh0KTtmb3IobGV0IHQgaW4gdGhpcy5pbmRleGVzKXRoaXMuaW5kZXhlc1t0XT10aGlzLmluZGV4ZXNbdF0rZS5sZW5ndGh9cmV0dXJuIHRoaXMubWFya0RpcnR5KCksdGhpc31wdXNoKGUpe3JldHVybiBlLnBhcmVudD10aGlzLHRoaXMucHJveHlPZi5ub2Rlcy5wdXNoKGUpLHRoaXN9cmVtb3ZlQWxsKCl7Zm9yKGxldCBlIG9mIHRoaXMucHJveHlPZi5ub2RlcyllLnBhcmVudD12b2lkIDA7cmV0dXJuIHRoaXMucHJveHlPZi5ub2Rlcz1bXSx0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9cmVtb3ZlQ2hpbGQoZSl7bGV0IHQ7ZT10aGlzLmluZGV4KGUpLHRoaXMucHJveHlPZi5ub2Rlc1tlXS5wYXJlbnQ9dm9pZCAwLHRoaXMucHJveHlPZi5ub2Rlcy5zcGxpY2UoZSwxKTtmb3IobGV0IG4gaW4gdGhpcy5pbmRleGVzKXQ9dGhpcy5pbmRleGVzW25dLHQ+PWUmJih0aGlzLmluZGV4ZXNbbl09dC0xKTtyZXR1cm4gdGhpcy5tYXJrRGlydHkoKSx0aGlzfXJlcGxhY2VWYWx1ZXMoZSx0LG4pe3JldHVybiBufHwobj10LHQ9e30pLHRoaXMud2Fsa0RlY2xzKHI9Pnt0LnByb3BzJiYhdC5wcm9wcy5pbmNsdWRlcyhyLnByb3ApfHx0LmZhc3QmJiFyLnZhbHVlLmluY2x1ZGVzKHQuZmFzdCl8fChyLnZhbHVlPXIudmFsdWUucmVwbGFjZShlLG4pKX0pLHRoaXMubWFya0RpcnR5KCksdGhpc31zb21lKGUpe3JldHVybiB0aGlzLm5vZGVzLnNvbWUoZSl9d2FsayhlKXtyZXR1cm4gdGhpcy5lYWNoKCh0LG4pPT57bGV0IHI7dHJ5e3I9ZSh0LG4pfWNhdGNoKGUpe3Rocm93IHQuYWRkVG9FcnJvcihlKX1yZXR1cm4gciE9PSExJiZ0LndhbGsmJihyPXQud2FsayhlKSkscn0pfXdhbGtBdFJ1bGVzKGUsdCl7cmV0dXJuIHQ/ZSBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLndhbGsoKG4scik9PntpZihuLnR5cGU9PT1gYXRydWxlYCYmZS50ZXN0KG4ubmFtZSkpcmV0dXJuIHQobixyKX0pOnRoaXMud2FsaygobixyKT0+e2lmKG4udHlwZT09PWBhdHJ1bGVgJiZuLm5hbWU9PT1lKXJldHVybiB0KG4scil9KToodD1lLHRoaXMud2FsaygoZSxuKT0+e2lmKGUudHlwZT09PWBhdHJ1bGVgKXJldHVybiB0KGUsbil9KSl9d2Fsa0NvbW1lbnRzKGUpe3JldHVybiB0aGlzLndhbGsoKHQsbik9PntpZih0LnR5cGU9PT1gY29tbWVudGApcmV0dXJuIGUodCxuKX0pfXdhbGtEZWNscyhlLHQpe3JldHVybiB0P2UgaW5zdGFuY2VvZiBSZWdFeHA/dGhpcy53YWxrKChuLHIpPT57aWYobi50eXBlPT09YGRlY2xgJiZlLnRlc3Qobi5wcm9wKSlyZXR1cm4gdChuLHIpfSk6dGhpcy53YWxrKChuLHIpPT57aWYobi50eXBlPT09YGRlY2xgJiZuLnByb3A9PT1lKXJldHVybiB0KG4scil9KToodD1lLHRoaXMud2FsaygoZSxuKT0+e2lmKGUudHlwZT09PWBkZWNsYClyZXR1cm4gdChlLG4pfSkpfXdhbGtSdWxlcyhlLHQpe3JldHVybiB0P2UgaW5zdGFuY2VvZiBSZWdFeHA/dGhpcy53YWxrKChuLHIpPT57aWYobi50eXBlPT09YHJ1bGVgJiZlLnRlc3Qobi5zZWxlY3RvcikpcmV0dXJuIHQobixyKX0pOnRoaXMud2FsaygobixyKT0+e2lmKG4udHlwZT09PWBydWxlYCYmbi5zZWxlY3Rvcj09PWUpcmV0dXJuIHQobixyKX0pOih0PWUsdGhpcy53YWxrKChlLG4pPT57aWYoZS50eXBlPT09YHJ1bGVgKXJldHVybiB0KGUsbil9KSl9Z2V0IGZpcnN0KCl7aWYodGhpcy5wcm94eU9mLm5vZGVzKXJldHVybiB0aGlzLnByb3h5T2Yubm9kZXNbMF19Z2V0IGxhc3QoKXtpZih0aGlzLnByb3h5T2Yubm9kZXMpcmV0dXJuIHRoaXMucHJveHlPZi5ub2Rlc1t0aGlzLnByb3h5T2Yubm9kZXMubGVuZ3RoLTFdfX07ZHIucmVnaXN0ZXJQYXJzZT1lPT57ZXI9ZX0sZHIucmVnaXN0ZXJSdWxlPWU9Pnt0cj1lfSxkci5yZWdpc3RlckF0UnVsZT1lPT57bnI9ZX0sZHIucmVnaXN0ZXJSb290PWU9Pntycj1lfTt2YXIgZnI9ZHI7ZHIuZGVmYXVsdD1kcixkci5yZWJ1aWxkPWU9PntlLnR5cGU9PT1gYXRydWxlYD9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSxuci5wcm90b3R5cGUpOmUudHlwZT09PWBydWxlYD9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSx0ci5wcm90b3R5cGUpOmUudHlwZT09PWBkZWNsYD9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSxvci5wcm90b3R5cGUpOmUudHlwZT09PWBjb21tZW50YD9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSxzci5wcm90b3R5cGUpOmUudHlwZT09PWByb290YCYmT2JqZWN0LnNldFByb3RvdHlwZU9mKGUscnIucHJvdG90eXBlKSxlW2FyXT0hMCxlLm5vZGVzJiZlLm5vZGVzLmZvckVhY2goZT0+e2RyLnJlYnVpbGQoZSl9KX07dmFyIHByLG1yLGhyPWZyLGdyPWNsYXNzIGV4dGVuZHMgaHJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoe3R5cGU6YGRvY3VtZW50YCwuLi5lfSksdGhpcy5ub2Rlc3x8KHRoaXMubm9kZXM9W10pfXRvUmVzdWx0KGU9e30pe3JldHVybiBuZXcgcHIobmV3IG1yLHRoaXMsZSkuc3RyaW5naWZ5KCl9fTtnci5yZWdpc3RlckxhenlSZXN1bHQ9ZT0+e3ByPWV9LGdyLnJlZ2lzdGVyUHJvY2Vzc29yPWU9Pnttcj1lfTt2YXIgX3I9Z3I7Z3IuZGVmYXVsdD1ncjt2YXIgdnI9Y2xhc3N7Y29uc3RydWN0b3IoZSx0PXt9KXtpZih0aGlzLnR5cGU9YHdhcm5pbmdgLHRoaXMudGV4dD1lLHQubm9kZSYmdC5ub2RlLnNvdXJjZSl7bGV0IGU9dC5ub2RlLnJhbmdlQnkodCk7dGhpcy5saW5lPWUuc3RhcnQubGluZSx0aGlzLmNvbHVtbj1lLnN0YXJ0LmNvbHVtbix0aGlzLmVuZExpbmU9ZS5lbmQubGluZSx0aGlzLmVuZENvbHVtbj1lLmVuZC5jb2x1bW59Zm9yKGxldCBlIGluIHQpdGhpc1tlXT10W2VdfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMubm9kZT90aGlzLm5vZGUuZXJyb3IodGhpcy50ZXh0LHtpbmRleDp0aGlzLmluZGV4LHBsdWdpbjp0aGlzLnBsdWdpbix3b3JkOnRoaXMud29yZH0pLm1lc3NhZ2U6dGhpcy5wbHVnaW4/dGhpcy5wbHVnaW4rYDogYCt0aGlzLnRleHQ6dGhpcy50ZXh0fX0seXI9dnI7dnIuZGVmYXVsdD12cjt2YXIgYnI9eXIseHI9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMucHJvY2Vzc29yPWUsdGhpcy5tZXNzYWdlcz1bXSx0aGlzLnJvb3Q9dCx0aGlzLm9wdHM9bix0aGlzLmNzcz12b2lkIDAsdGhpcy5tYXA9dm9pZCAwfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzfXdhcm4oZSx0PXt9KXt0LnBsdWdpbnx8dGhpcy5sYXN0UGx1Z2luJiZ0aGlzLmxhc3RQbHVnaW4ucG9zdGNzc1BsdWdpbiYmKHQucGx1Z2luPXRoaXMubGFzdFBsdWdpbi5wb3N0Y3NzUGx1Z2luKTtsZXQgbj1uZXcgYnIoZSx0KTtyZXR1cm4gdGhpcy5tZXNzYWdlcy5wdXNoKG4pLG59d2FybmluZ3MoKXtyZXR1cm4gdGhpcy5tZXNzYWdlcy5maWx0ZXIoZT0+ZS50eXBlPT09YHdhcm5pbmdgKX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLmNzc319LFNyPXhyO3hyLmRlZmF1bHQ9eHI7dmFyIENyPTM5LHdyPTM0LFRyPTkyLEVyPTQ3LERyPTEwLE9yPTMyLGtyPTEyLEFyPTksanI9MTMsTXI9OTEsTnI9OTMsUHI9NDAsRnI9NDEsSXI9MTIzLExyPTEyNSxScj01OSx6cj00MixCcj01OCxWcj02NCxIcj0vW1x0XG5cZlxyICIjJygpLztbXFxcXXt9XS9nLFVyPS9bXHRcblxmXHIgISIjJygpOjtAW1xcXF17fV18XC8oPz1cKikvZyxXcj0vLltcclxuIicoL1xcXS8sR3I9L1tcZGEtZl0vaSxLcj1mcixxcj1jbGFzcyBleHRlbmRzIEtye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMudHlwZT1gYXRydWxlYH1hcHBlbmQoLi4uZSl7cmV0dXJuIHRoaXMucHJveHlPZi5ub2Rlc3x8KHRoaXMubm9kZXM9W10pLHN1cGVyLmFwcGVuZCguLi5lKX1wcmVwZW5kKC4uLmUpe3JldHVybiB0aGlzLnByb3h5T2Yubm9kZXN8fCh0aGlzLm5vZGVzPVtdKSxzdXBlci5wcmVwZW5kKC4uLmUpfX0sSnI9cXI7cXIuZGVmYXVsdD1xcixLci5yZWdpc3RlckF0UnVsZShxcik7dmFyIFlyLFhyLFpyPWZyLFFyPWNsYXNzIGV4dGVuZHMgWnJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy50eXBlPWByb290YCx0aGlzLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSl9bm9ybWFsaXplKGUsdCxuKXtsZXQgcj1zdXBlci5ub3JtYWxpemUoZSk7aWYodCl7aWYobj09PWBwcmVwZW5kYCl0aGlzLm5vZGVzLmxlbmd0aD4xP3QucmF3cy5iZWZvcmU9dGhpcy5ub2Rlc1sxXS5yYXdzLmJlZm9yZTpkZWxldGUgdC5yYXdzLmJlZm9yZTtlbHNlIGlmKHRoaXMuZmlyc3QhPT10KWZvcihsZXQgZSBvZiByKWUucmF3cy5iZWZvcmU9dC5yYXdzLmJlZm9yZX1yZXR1cm4gcn1yZW1vdmVDaGlsZChlLHQpe2xldCBuPXRoaXMuaW5kZXgoZSk7cmV0dXJuIXQmJm49PT0wJiZ0aGlzLm5vZGVzLmxlbmd0aD4xJiYodGhpcy5ub2Rlc1sxXS5yYXdzLmJlZm9yZT10aGlzLm5vZGVzW25dLnJhd3MuYmVmb3JlKSxzdXBlci5yZW1vdmVDaGlsZChlKX10b1Jlc3VsdChlPXt9KXtyZXR1cm4gbmV3IFlyKG5ldyBYcix0aGlzLGUpLnN0cmluZ2lmeSgpfX07UXIucmVnaXN0ZXJMYXp5UmVzdWx0PWU9PntZcj1lfSxRci5yZWdpc3RlclByb2Nlc3Nvcj1lPT57WHI9ZX07dmFyICRyPVFyO1FyLmRlZmF1bHQ9UXIsWnIucmVnaXN0ZXJSb290KFFyKTt2YXIgZWk9e2NvbW1hOmU9PmVpLnNwbGl0KGUsW2AsYF0sITApLHNwYWNlOmU9PmVpLnNwbGl0KGUsW2AgYCxgCmAsYAlgXSksc3BsaXQoZSx0LG4pe2xldCByPVtdLGk9YGAsYT0hMSxvPTAscz0hMSxjPWBgLGw9ITE7Zm9yKGxldCBuIG9mIGUpbD9sPSExOm49PT1gXFxgP2w9ITA6cz9uPT09YyYmKHM9ITEpOm49PT1gImB8fG49PT1gJ2A/KHM9ITAsYz1uKTpuPT09YChgP28rPTE6bj09PWApYD9vPjAmJi0tbzpvPT09MCYmdC5pbmNsdWRlcyhuKSYmKGE9ITApLGE/KGkhPT1gYCYmci5wdXNoKGkudHJpbSgpKSxpPWBgLGE9ITEpOmkrPW47cmV0dXJuKG58fGkhPT1gYCkmJnIucHVzaChpLnRyaW0oKSkscn19LHRpPWVpO2VpLmRlZmF1bHQ9ZWk7dmFyIG5pPWZyLHJpPXRpLGlpPWNsYXNzIGV4dGVuZHMgbml7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy50eXBlPWBydWxlYCx0aGlzLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSl9Z2V0IHNlbGVjdG9ycygpe3JldHVybiByaS5jb21tYSh0aGlzLnNlbGVjdG9yKX1zZXQgc2VsZWN0b3JzKGUpe2xldCB0PXRoaXMuc2VsZWN0b3I/dGhpcy5zZWxlY3Rvci5tYXRjaCgvLFxzKi8pOm51bGwsbj10P3RbMF06YCxgK3RoaXMucmF3KGBiZXR3ZWVuYCxgYmVmb3JlT3BlbmApO3RoaXMuc2VsZWN0b3I9ZS5qb2luKG4pfX0sYWk9aWk7aWkuZGVmYXVsdD1paSxuaS5yZWdpc3RlclJ1bGUoaWkpO3ZhciBvaT1obixzaT1mdW5jdGlvbihlLHQ9e30pe2xldCBuLHIsaSxhLG8scyxjLGwsdSxkLGY9ZS5jc3MudmFsdWVPZigpLHA9dC5pZ25vcmVFcnJvcnMsbT1mLmxlbmd0aCxoPTAsZz1bXSxfPVtdO2Z1bmN0aW9uIHYodCl7dGhyb3cgZS5lcnJvcihgVW5jbG9zZWQgYCt0LGgpfXJldHVybntiYWNrOmZ1bmN0aW9uKGUpe18ucHVzaChlKX0sZW5kT2ZGaWxlOmZ1bmN0aW9uKCl7cmV0dXJuIF8ubGVuZ3RoPT09MCYmaD49bX0sbmV4dFRva2VuOmZ1bmN0aW9uKGUpe2lmKF8ubGVuZ3RoKXJldHVybiBfLnBvcCgpO2lmKGg+PW0pcmV0dXJuO2xldCB0PSEhZSYmZS5pZ25vcmVVbmNsb3NlZDtzd2l0Y2gobj1mLmNoYXJDb2RlQXQoaCksbil7Y2FzZSBEcjpjYXNlIE9yOmNhc2UgQXI6Y2FzZSBqcjpjYXNlIGtyOnI9aDtkbyByKz0xLG49Zi5jaGFyQ29kZUF0KHIpO3doaWxlKG49PT1Pcnx8bj09PURyfHxuPT09QXJ8fG49PT1qcnx8bj09PWtyKTtkPVtgc3BhY2VgLGYuc2xpY2UoaCxyKV0saD1yLTE7YnJlYWs7Y2FzZSBNcjpjYXNlIE5yOmNhc2UgSXI6Y2FzZSBMcjpjYXNlIEJyOmNhc2UgUnI6Y2FzZSBGcjp7bGV0IGU9U3RyaW5nLmZyb21DaGFyQ29kZShuKTtkPVtlLGUsaF07YnJlYWt9Y2FzZSBQcjppZihsPWcubGVuZ3RoP2cucG9wKClbMV06YGAsdT1mLmNoYXJDb2RlQXQoaCsxKSxsPT09YHVybGAmJnUhPT1DciYmdSE9PXdyJiZ1IT09T3ImJnUhPT1EciYmdSE9PUFyJiZ1IT09a3ImJnUhPT1qcil7cj1oO2Rve2lmKHM9ITEscj1mLmluZGV4T2YoYClgLHIrMSkscj09PS0xKXtpZihwfHx0KXtyPWg7YnJlYWt9dihgYnJhY2tldGApfWZvcihjPXI7Zi5jaGFyQ29kZUF0KGMtMSk9PT1UcjspLS1jLHM9IXN9d2hpbGUocyk7ZD1bYGJyYWNrZXRzYCxmLnNsaWNlKGgscisxKSxoLHJdLGg9cn1lbHNlIHI9Zi5pbmRleE9mKGApYCxoKzEpLGE9Zi5zbGljZShoLHIrMSkscj09PS0xfHxXci50ZXN0KGEpP2Q9W2AoYCxgKGAsaF06KGQ9W2BicmFja2V0c2AsYSxoLHJdLGg9cik7YnJlYWs7Y2FzZSBDcjpjYXNlIHdyOmk9bj09PUNyP2AnYDpgImAscj1oO2Rve2lmKHM9ITEscj1mLmluZGV4T2YoaSxyKzEpLHI9PT0tMSl7aWYocHx8dCl7cj1oKzE7YnJlYWt9dihgc3RyaW5nYCl9Zm9yKGM9cjtmLmNoYXJDb2RlQXQoYy0xKT09PVRyOyktLWMscz0hc313aGlsZShzKTtkPVtgc3RyaW5nYCxmLnNsaWNlKGgscisxKSxoLHJdLGg9cjticmVhaztjYXNlIFZyOkhyLmxhc3RJbmRleD1oKzEsSHIudGVzdChmKSxyPUhyLmxhc3RJbmRleD09PTA/Zi5sZW5ndGgtMTpIci5sYXN0SW5kZXgtMixkPVtgYXQtd29yZGAsZi5zbGljZShoLHIrMSksaCxyXSxoPXI7YnJlYWs7Y2FzZSBUcjpmb3Iocj1oLG89ITA7Zi5jaGFyQ29kZUF0KHIrMSk9PT1Ucjspcis9MSxvPSFvO2lmKG49Zi5jaGFyQ29kZUF0KHIrMSksbyYmbiE9PUVyJiZuIT09T3ImJm4hPT1EciYmbiE9PUFyJiZuIT09anImJm4hPT1rciYmKHIrPTEsR3IudGVzdChmLmNoYXJBdChyKSkpKXtmb3IoO0dyLnRlc3QoZi5jaGFyQXQocisxKSk7KXIrPTE7Zi5jaGFyQ29kZUF0KHIrMSk9PT1PciYmKHIrPTEpfWQ9W2B3b3JkYCxmLnNsaWNlKGgscisxKSxoLHJdLGg9cjticmVhaztkZWZhdWx0Om49PT1FciYmZi5jaGFyQ29kZUF0KGgrMSk9PT16cj8ocj1mLmluZGV4T2YoYCovYCxoKzIpKzEscj09PTAmJihwfHx0P3I9Zi5sZW5ndGg6dihgY29tbWVudGApKSxkPVtgY29tbWVudGAsZi5zbGljZShoLHIrMSksaCxyXSxoPXIpOihVci5sYXN0SW5kZXg9aCsxLFVyLnRlc3QoZikscj1Vci5sYXN0SW5kZXg9PT0wP2YubGVuZ3RoLTE6VXIubGFzdEluZGV4LTIsZD1bYHdvcmRgLGYuc2xpY2UoaCxyKzEpLGgscl0sZy5wdXNoKGQpLGg9cil9cmV0dXJuIGgrKyxkfSxwb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBofX19LGNpPSRuLGxpPUpyLHVpPSRyLGRpPWFpLGZpPXtlbXB0eTohMCxzcGFjZTohMH0scGk9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5pbnB1dD1lLHRoaXMucm9vdD1uZXcgdWksdGhpcy5jdXJyZW50PXRoaXMucm9vdCx0aGlzLnNwYWNlcz1gYCx0aGlzLnNlbWljb2xvbj0hMSx0aGlzLmNyZWF0ZVRva2VuaXplcigpLHRoaXMucm9vdC5zb3VyY2U9e2lucHV0OmUsc3RhcnQ6e2NvbHVtbjoxLGxpbmU6MSxvZmZzZXQ6MH19fWF0cnVsZShlKXtsZXQgdCxuLHIsaT1uZXcgbGk7aS5uYW1lPWVbMV0uc2xpY2UoMSksaS5uYW1lPT09YGAmJnRoaXMudW5uYW1lZEF0cnVsZShpLGUpLHRoaXMuaW5pdChpLGVbMl0pO2xldCBhPSExLG89ITEscz1bXSxjPVtdO2Zvcig7IXRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpOyl7aWYodD0oZT10aGlzLnRva2VuaXplci5uZXh0VG9rZW4oKSlbMF0sdD09PWAoYHx8dD09PWBbYD9jLnB1c2godD09PWAoYD9gKWA6YF1gKTp0PT09YHtgJiZjLmxlbmd0aD4wP2MucHVzaChgfWApOnQ9PT1jW2MubGVuZ3RoLTFdJiZjLnBvcCgpLGMubGVuZ3RoPT09MCl7aWYodD09PWA7YCl7aS5zb3VyY2UuZW5kPXRoaXMuZ2V0UG9zaXRpb24oZVsyXSksaS5zb3VyY2UuZW5kLm9mZnNldCsrLHRoaXMuc2VtaWNvbG9uPSEwO2JyZWFrfWlmKHQ9PT1ge2Ape289ITA7YnJlYWt9aWYodD09PWB9YCl7aWYocy5sZW5ndGg+MCl7Zm9yKHI9cy5sZW5ndGgtMSxuPXNbcl07biYmblswXT09PWBzcGFjZWA7KW49c1stLXJdO24mJihpLnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihuWzNdfHxuWzJdKSxpLnNvdXJjZS5lbmQub2Zmc2V0KyspfXRoaXMuZW5kKGUpO2JyZWFrfXMucHVzaChlKX1lbHNlIHMucHVzaChlKTtpZih0aGlzLnRva2VuaXplci5lbmRPZkZpbGUoKSl7YT0hMDticmVha319aS5yYXdzLmJldHdlZW49dGhpcy5zcGFjZXNBbmRDb21tZW50c0Zyb21FbmQocykscy5sZW5ndGg/KGkucmF3cy5hZnRlck5hbWU9dGhpcy5zcGFjZXNBbmRDb21tZW50c0Zyb21TdGFydChzKSx0aGlzLnJhdyhpLGBwYXJhbXNgLHMpLGEmJihlPXNbcy5sZW5ndGgtMV0saS5zb3VyY2UuZW5kPXRoaXMuZ2V0UG9zaXRpb24oZVszXXx8ZVsyXSksaS5zb3VyY2UuZW5kLm9mZnNldCsrLHRoaXMuc3BhY2VzPWkucmF3cy5iZXR3ZWVuLGkucmF3cy5iZXR3ZWVuPWBgKSk6KGkucmF3cy5hZnRlck5hbWU9YGAsaS5wYXJhbXM9YGApLG8mJihpLm5vZGVzPVtdLHRoaXMuY3VycmVudD1pKX1jaGVja01pc3NlZFNlbWljb2xvbihlKXtsZXQgdD10aGlzLmNvbG9uKGUpO2lmKHQ9PT0hMSlyZXR1cm47bGV0IG4scj0wO2ZvcihsZXQgaT10LTE7aT49MCYmKG49ZVtpXSxuWzBdPT09YHNwYWNlYHx8KHIrPTEsciE9PTIpKTtpLS0pO3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoYE1pc3NlZCBzZW1pY29sb25gLG5bMF09PT1gd29yZGA/blszXSsxOm5bMl0pfWNvbG9uKGUpe2xldCB0LG4scixpPTA7Zm9yKGxldFthLG9db2YgZS5lbnRyaWVzKCkpe2lmKHQ9byxuPXRbMF0sbj09PWAoYCYmKGkrPTEpLG49PT1gKWAmJi0taSxpPT09MCYmbj09PWA6YCl7aWYocil7aWYoclswXT09PWB3b3JkYCYmclsxXT09PWBwcm9naWRgKWNvbnRpbnVlO3JldHVybiBhfXRoaXMuZG91YmxlQ29sb24odCl9cj10fXJldHVybiExfWNvbW1lbnQoZSl7bGV0IHQ9bmV3IGNpO3RoaXMuaW5pdCh0LGVbMl0pLHQuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbM118fGVbMl0pLHQuc291cmNlLmVuZC5vZmZzZXQrKztsZXQgbj1lWzFdLnNsaWNlKDIsLTIpO2lmKC9eXHMqJC8udGVzdChuKSl0LnRleHQ9YGAsdC5yYXdzLmxlZnQ9bix0LnJhd3MucmlnaHQ9YGA7ZWxzZXtsZXQgZT1uLm1hdGNoKC9eKFxzKikoW15dKlxTKShccyopJC8pO3QudGV4dD1lWzJdLHQucmF3cy5sZWZ0PWVbMV0sdC5yYXdzLnJpZ2h0PWVbM119fWNyZWF0ZVRva2VuaXplcigpe3RoaXMudG9rZW5pemVyPXNpKHRoaXMuaW5wdXQpfWRlY2woZSx0KXtsZXQgbj1uZXcgb2k7dGhpcy5pbml0KG4sZVswXVsyXSk7bGV0IHIsaT1lW2UubGVuZ3RoLTFdO2ZvcihpWzBdPT09YDtgJiYodGhpcy5zZW1pY29sb249ITAsZS5wb3AoKSksbi5zb3VyY2UuZW5kPXRoaXMuZ2V0UG9zaXRpb24oaVszXXx8aVsyXXx8ZnVuY3Rpb24oZSl7Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBuPWVbdF0scj1uWzNdfHxuWzJdO2lmKHIpcmV0dXJuIHJ9fShlKSksbi5zb3VyY2UuZW5kLm9mZnNldCsrO2VbMF1bMF0hPT1gd29yZGA7KWUubGVuZ3RoPT09MSYmdGhpcy51bmtub3duV29yZChlKSxuLnJhd3MuYmVmb3JlKz1lLnNoaWZ0KClbMV07Zm9yKG4uc291cmNlLnN0YXJ0PXRoaXMuZ2V0UG9zaXRpb24oZVswXVsyXSksbi5wcm9wPWBgO2UubGVuZ3RoOyl7bGV0IHQ9ZVswXVswXTtpZih0PT09YDpgfHx0PT09YHNwYWNlYHx8dD09PWBjb21tZW50YClicmVhaztuLnByb3ArPWUuc2hpZnQoKVsxXX1mb3Iobi5yYXdzLmJldHdlZW49YGA7ZS5sZW5ndGg7KXtpZihyPWUuc2hpZnQoKSxyWzBdPT09YDpgKXtuLnJhd3MuYmV0d2Vlbis9clsxXTticmVha31yWzBdPT09YHdvcmRgJiYvXHcvLnRlc3QoclsxXSkmJnRoaXMudW5rbm93bldvcmQoW3JdKSxuLnJhd3MuYmV0d2Vlbis9clsxXX1uLnByb3BbMF0hPT1gX2AmJm4ucHJvcFswXSE9PWAqYHx8KG4ucmF3cy5iZWZvcmUrPW4ucHJvcFswXSxuLnByb3A9bi5wcm9wLnNsaWNlKDEpKTtsZXQgYSxvPVtdO2Zvcig7ZS5sZW5ndGgmJihhPWVbMF1bMF0sYT09PWBzcGFjZWB8fGE9PT1gY29tbWVudGApOylvLnB1c2goZS5zaGlmdCgpKTt0aGlzLnByZWNoZWNrTWlzc2VkU2VtaWNvbG9uKGUpO2ZvcihsZXQgdD1lLmxlbmd0aC0xO3Q+PTA7dC0tKXtpZihyPWVbdF0sclsxXS50b0xvd2VyQ2FzZSgpPT09YCFpbXBvcnRhbnRgKXtuLmltcG9ydGFudD0hMDtsZXQgcj10aGlzLnN0cmluZ0Zyb20oZSx0KTtyPXRoaXMuc3BhY2VzRnJvbUVuZChlKStyLHIhPT1gICFpbXBvcnRhbnRgJiYobi5yYXdzLmltcG9ydGFudD1yKTticmVha31pZihyWzFdLnRvTG93ZXJDYXNlKCk9PT1gaW1wb3J0YW50YCl7bGV0IHI9ZS5zbGljZSgwKSxpPWBgO2ZvcihsZXQgZT10O2U+MDtlLS0pe2xldCB0PXJbZV1bMF07aWYoaS50cmltKCkuaW5kZXhPZihgIWApPT09MCYmdCE9PWBzcGFjZWApYnJlYWs7aT1yLnBvcCgpWzFdK2l9aS50cmltKCkuaW5kZXhPZihgIWApPT09MCYmKG4uaW1wb3J0YW50PSEwLG4ucmF3cy5pbXBvcnRhbnQ9aSxlPXIpfWlmKHJbMF0hPT1gc3BhY2VgJiZyWzBdIT09YGNvbW1lbnRgKWJyZWFrfWUuc29tZShlPT5lWzBdIT09YHNwYWNlYCYmZVswXSE9PWBjb21tZW50YCkmJihuLnJhd3MuYmV0d2Vlbis9by5tYXAoZT0+ZVsxXSkuam9pbihgYCksbz1bXSksdGhpcy5yYXcobixgdmFsdWVgLG8uY29uY2F0KGUpLHQpLG4udmFsdWUuaW5jbHVkZXMoYDpgKSYmIXQmJnRoaXMuY2hlY2tNaXNzZWRTZW1pY29sb24oZSl9ZG91YmxlQ29sb24oZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcihgRG91YmxlIGNvbG9uYCx7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXStlWzFdLmxlbmd0aH0pfWVtcHR5UnVsZShlKXtsZXQgdD1uZXcgZGk7dGhpcy5pbml0KHQsZVsyXSksdC5zZWxlY3Rvcj1gYCx0LnJhd3MuYmV0d2Vlbj1gYCx0aGlzLmN1cnJlbnQ9dH1lbmQoZSl7dGhpcy5jdXJyZW50Lm5vZGVzJiZ0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoJiYodGhpcy5jdXJyZW50LnJhd3Muc2VtaWNvbG9uPXRoaXMuc2VtaWNvbG9uKSx0aGlzLnNlbWljb2xvbj0hMSx0aGlzLmN1cnJlbnQucmF3cy5hZnRlcj0odGhpcy5jdXJyZW50LnJhd3MuYWZ0ZXJ8fGBgKSt0aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz1gYCx0aGlzLmN1cnJlbnQucGFyZW50Pyh0aGlzLmN1cnJlbnQuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbMl0pLHRoaXMuY3VycmVudC5zb3VyY2UuZW5kLm9mZnNldCsrLHRoaXMuY3VycmVudD10aGlzLmN1cnJlbnQucGFyZW50KTp0aGlzLnVuZXhwZWN0ZWRDbG9zZShlKX1lbmRGaWxlKCl7dGhpcy5jdXJyZW50LnBhcmVudCYmdGhpcy51bmNsb3NlZEJsb2NrKCksdGhpcy5jdXJyZW50Lm5vZGVzJiZ0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoJiYodGhpcy5jdXJyZW50LnJhd3Muc2VtaWNvbG9uPXRoaXMuc2VtaWNvbG9uKSx0aGlzLmN1cnJlbnQucmF3cy5hZnRlcj0odGhpcy5jdXJyZW50LnJhd3MuYWZ0ZXJ8fGBgKSt0aGlzLnNwYWNlcyx0aGlzLnJvb3Quc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKHRoaXMudG9rZW5pemVyLnBvc2l0aW9uKCkpfWZyZWVTZW1pY29sb24oZSl7aWYodGhpcy5zcGFjZXMrPWVbMV0sdGhpcy5jdXJyZW50Lm5vZGVzKXtsZXQgZT10aGlzLmN1cnJlbnQubm9kZXNbdGhpcy5jdXJyZW50Lm5vZGVzLmxlbmd0aC0xXTtlJiZlLnR5cGU9PT1gcnVsZWAmJiFlLnJhd3Mub3duU2VtaWNvbG9uJiYoZS5yYXdzLm93blNlbWljb2xvbj10aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz1gYCl9fWdldFBvc2l0aW9uKGUpe2xldCB0PXRoaXMuaW5wdXQuZnJvbU9mZnNldChlKTtyZXR1cm57Y29sdW1uOnQuY29sLGxpbmU6dC5saW5lLG9mZnNldDplfX1pbml0KGUsdCl7dGhpcy5jdXJyZW50LnB1c2goZSksZS5zb3VyY2U9e2lucHV0OnRoaXMuaW5wdXQsc3RhcnQ6dGhpcy5nZXRQb3NpdGlvbih0KX0sZS5yYXdzLmJlZm9yZT10aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz1gYCxlLnR5cGUhPT1gY29tbWVudGAmJih0aGlzLnNlbWljb2xvbj0hMSl9b3RoZXIoZSl7bGV0IHQ9ITEsbj1udWxsLHI9ITEsaT1udWxsLGE9W10sbz1lWzFdLnN0YXJ0c1dpdGgoYC0tYCkscz1bXSxjPWU7Zm9yKDtjOyl7aWYobj1jWzBdLHMucHVzaChjKSxuPT09YChgfHxuPT09YFtgKWl8fChpPWMpLGEucHVzaChuPT09YChgP2ApYDpgXWApO2Vsc2UgaWYobyYmciYmbj09PWB7YClpfHwoaT1jKSxhLnB1c2goYH1gKTtlbHNlIGlmKGEubGVuZ3RoPT09MCl7aWYobj09PWA7YCl7aWYocilyZXR1cm4gdm9pZCB0aGlzLmRlY2wocyxvKTticmVha31pZihuPT09YHtgKXJldHVybiB2b2lkIHRoaXMucnVsZShzKTtpZihuPT09YH1gKXt0aGlzLnRva2VuaXplci5iYWNrKHMucG9wKCkpLHQ9ITA7YnJlYWt9bj09PWA6YCYmKHI9ITApfWVsc2Ugbj09PWFbYS5sZW5ndGgtMV0mJihhLnBvcCgpLGEubGVuZ3RoPT09MCYmKGk9bnVsbCkpO2M9dGhpcy50b2tlbml6ZXIubmV4dFRva2VuKCl9aWYodGhpcy50b2tlbml6ZXIuZW5kT2ZGaWxlKCkmJih0PSEwKSxhLmxlbmd0aD4wJiZ0aGlzLnVuY2xvc2VkQnJhY2tldChpKSx0JiZyKXtpZighbylmb3IoO3MubGVuZ3RoJiYoYz1zW3MubGVuZ3RoLTFdWzBdLGM9PT1gc3BhY2VgfHxjPT09YGNvbW1lbnRgKTspdGhpcy50b2tlbml6ZXIuYmFjayhzLnBvcCgpKTt0aGlzLmRlY2wocyxvKX1lbHNlIHRoaXMudW5rbm93bldvcmQocyl9cGFyc2UoKXtsZXQgZTtmb3IoOyF0aGlzLnRva2VuaXplci5lbmRPZkZpbGUoKTspc3dpdGNoKGU9dGhpcy50b2tlbml6ZXIubmV4dFRva2VuKCksZVswXSl7Y2FzZWBzcGFjZWA6dGhpcy5zcGFjZXMrPWVbMV07YnJlYWs7Y2FzZWA7YDp0aGlzLmZyZWVTZW1pY29sb24oZSk7YnJlYWs7Y2FzZWB9YDp0aGlzLmVuZChlKTticmVhaztjYXNlYGNvbW1lbnRgOnRoaXMuY29tbWVudChlKTticmVhaztjYXNlYGF0LXdvcmRgOnRoaXMuYXRydWxlKGUpO2JyZWFrO2Nhc2Vge2A6dGhpcy5lbXB0eVJ1bGUoZSk7YnJlYWs7ZGVmYXVsdDp0aGlzLm90aGVyKGUpfXRoaXMuZW5kRmlsZSgpfXByZWNoZWNrTWlzc2VkU2VtaWNvbG9uKCl7fXJhdyhlLHQsbixyKXtsZXQgaSxhLG8scyxjPW4ubGVuZ3RoLGw9YGAsdT0hMDtmb3IobGV0IGU9MDtlPGM7ZSs9MSlpPW5bZV0sYT1pWzBdLGEhPT1gc3BhY2VgfHxlIT09Yy0xfHxyP2E9PT1gY29tbWVudGA/KHM9bltlLTFdP25bZS0xXVswXTpgZW1wdHlgLG89bltlKzFdP25bZSsxXVswXTpgZW1wdHlgLGZpW3NdfHxmaVtvXXx8bC5zbGljZSgtMSk9PT1gLGA/dT0hMTpsKz1pWzFdKTpsKz1pWzFdOnU9ITE7aWYoIXUpe2xldCByPW4ucmVkdWNlKChlLHQpPT5lK3RbMV0sYGApO2UucmF3c1t0XT17cmF3OnIsdmFsdWU6bH19ZVt0XT1sfXJ1bGUoZSl7ZS5wb3AoKTtsZXQgdD1uZXcgZGk7dGhpcy5pbml0KHQsZVswXVsyXSksdC5yYXdzLmJldHdlZW49dGhpcy5zcGFjZXNBbmRDb21tZW50c0Zyb21FbmQoZSksdGhpcy5yYXcodCxgc2VsZWN0b3JgLGUpLHRoaXMuY3VycmVudD10fXNwYWNlc0FuZENvbW1lbnRzRnJvbUVuZChlKXtsZXQgdCxuPWBgO2Zvcig7ZS5sZW5ndGgmJih0PWVbZS5sZW5ndGgtMV1bMF0sdD09PWBzcGFjZWB8fHQ9PT1gY29tbWVudGApOyluPWUucG9wKClbMV0rbjtyZXR1cm4gbn1zcGFjZXNBbmRDb21tZW50c0Zyb21TdGFydChlKXtsZXQgdCxuPWBgO2Zvcig7ZS5sZW5ndGgmJih0PWVbMF1bMF0sdD09PWBzcGFjZWB8fHQ9PT1gY29tbWVudGApOyluKz1lLnNoaWZ0KClbMV07cmV0dXJuIG59c3BhY2VzRnJvbUVuZChlKXtsZXQgdCxuPWBgO2Zvcig7ZS5sZW5ndGgmJih0PWVbZS5sZW5ndGgtMV1bMF0sdD09PWBzcGFjZWApOyluPWUucG9wKClbMV0rbjtyZXR1cm4gbn1zdHJpbmdGcm9tKGUsdCl7bGV0IG49YGA7Zm9yKGxldCByPXQ7cjxlLmxlbmd0aDtyKyspbis9ZVtyXVsxXTtyZXR1cm4gZS5zcGxpY2UodCxlLmxlbmd0aC10KSxufXVuY2xvc2VkQmxvY2soKXtsZXQgZT10aGlzLmN1cnJlbnQuc291cmNlLnN0YXJ0O3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoYFVuY2xvc2VkIGJsb2NrYCxlLmxpbmUsZS5jb2x1bW4pfXVuY2xvc2VkQnJhY2tldChlKXt0aHJvdyB0aGlzLmlucHV0LmVycm9yKGBVbmNsb3NlZCBicmFja2V0YCx7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXSsxfSl9dW5leHBlY3RlZENsb3NlKGUpe3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoYFVuZXhwZWN0ZWQgfWAse29mZnNldDplWzJdfSx7b2Zmc2V0OmVbMl0rMX0pfXVua25vd25Xb3JkKGUpe3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoYFVua25vd24gd29yZGAse29mZnNldDplWzBdWzJdfSx7b2Zmc2V0OmVbMF1bMl0rZVswXVsxXS5sZW5ndGh9KX11bm5hbWVkQXRydWxlKGUsdCl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcihgQXQtcnVsZSB3aXRob3V0IG5hbWVgLHtvZmZzZXQ6dFsyXX0se29mZnNldDp0WzJdK3RbMV0ubGVuZ3RofSl9fSxtaT1mcixoaT1waSxnaT16bjtmdW5jdGlvbiBfaShlLHQpe2xldCBuPW5ldyBoaShuZXcgZ2koZSx0KSk7dHJ5e24ucGFyc2UoKX1jYXRjaChlKXt0aHJvdyBlfXJldHVybiBuLnJvb3R9dmFyIHZpPV9pO19pLmRlZmF1bHQ9X2ksbWkucmVnaXN0ZXJQYXJzZShfaSk7dmFye2lzQ2xlYW46eWksbXk6Yml9PVp0LHhpPVhuLFNpPXJuLENpPWZyLHdpPV9yLFRpPVNyLEVpPXZpLERpPSRyLE9pPXthdHJ1bGU6YEF0UnVsZWAsY29tbWVudDpgQ29tbWVudGAsZGVjbDpgRGVjbGFyYXRpb25gLGRvY3VtZW50OmBEb2N1bWVudGAscm9vdDpgUm9vdGAscnVsZTpgUnVsZWB9LGtpPXtBdFJ1bGU6ITAsQXRSdWxlRXhpdDohMCxDb21tZW50OiEwLENvbW1lbnRFeGl0OiEwLERlY2xhcmF0aW9uOiEwLERlY2xhcmF0aW9uRXhpdDohMCxEb2N1bWVudDohMCxEb2N1bWVudEV4aXQ6ITAsT25jZTohMCxPbmNlRXhpdDohMCxwb3N0Y3NzUGx1Z2luOiEwLHByZXBhcmU6ITAsUm9vdDohMCxSb290RXhpdDohMCxSdWxlOiEwLFJ1bGVFeGl0OiEwfSxBaT17T25jZTohMCxwb3N0Y3NzUGx1Z2luOiEwLHByZXBhcmU6ITB9O2Z1bmN0aW9uIGppKGUpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJnR5cGVvZiBlLnRoZW49PWBmdW5jdGlvbmB9ZnVuY3Rpb24gTWkoZSl7bGV0IHQ9ITEsbj1PaVtlLnR5cGVdO3JldHVybiBlLnR5cGU9PT1gZGVjbGA/dD1lLnByb3AudG9Mb3dlckNhc2UoKTplLnR5cGU9PT1gYXRydWxlYCYmKHQ9ZS5uYW1lLnRvTG93ZXJDYXNlKCkpLHQmJmUuYXBwZW5kP1tuLG4rYC1gK3QsMCxuK2BFeGl0YCxuK2BFeGl0LWArdF06dD9bbixuK2AtYCt0LG4rYEV4aXRgLG4rYEV4aXQtYCt0XTplLmFwcGVuZD9bbiwwLG4rYEV4aXRgXTpbbixuK2BFeGl0YF19ZnVuY3Rpb24gTmkoZSl7bGV0IHQ7cmV0dXJuIHQ9ZS50eXBlPT09YGRvY3VtZW50YD9bYERvY3VtZW50YCwwLGBEb2N1bWVudEV4aXRgXTplLnR5cGU9PT1gcm9vdGA/W2BSb290YCwwLGBSb290RXhpdGBdOk1pKGUpLHtldmVudEluZGV4OjAsZXZlbnRzOnQsaXRlcmF0b3I6MCxub2RlOmUsdmlzaXRvckluZGV4OjAsdmlzaXRvcnM6W119fWZ1bmN0aW9uIFBpKGUpe3JldHVybiBlW3lpXT0hMSxlLm5vZGVzJiZlLm5vZGVzLmZvckVhY2goZT0+UGkoZSkpLGV9dmFyIEZpPXt9LElpPWNsYXNzIGV7Y29uc3RydWN0b3IodCxuLHIpe2xldCBpO2lmKHRoaXMuc3RyaW5naWZpZWQ9ITEsdGhpcy5wcm9jZXNzZWQ9ITEsdHlwZW9mIG4hPWBvYmplY3RgfHwhbnx8bi50eXBlIT09YHJvb3RgJiZuLnR5cGUhPT1gZG9jdW1lbnRgKWlmKG4gaW5zdGFuY2VvZiBlfHxuIGluc3RhbmNlb2YgVGkpaT1QaShuLnJvb3QpLG4ubWFwJiYoci5tYXA9PT12b2lkIDAmJihyLm1hcD17fSksci5tYXAuaW5saW5lfHwoci5tYXAuaW5saW5lPSExKSxyLm1hcC5wcmV2PW4ubWFwKTtlbHNle2xldCBlPUVpO3Iuc3ludGF4JiYoZT1yLnN5bnRheC5wYXJzZSksci5wYXJzZXImJihlPXIucGFyc2VyKSxlLnBhcnNlJiYoZT1lLnBhcnNlKTt0cnl7aT1lKG4scil9Y2F0Y2goZSl7dGhpcy5wcm9jZXNzZWQ9ITAsdGhpcy5lcnJvcj1lfWkmJiFpW2JpXSYmQ2kucmVidWlsZChpKX1lbHNlIGk9UGkobik7dGhpcy5yZXN1bHQ9bmV3IFRpKHQsaSxyKSx0aGlzLmhlbHBlcnM9ey4uLkZpLHBvc3Rjc3M6RmkscmVzdWx0OnRoaXMucmVzdWx0fSx0aGlzLnBsdWdpbnM9dGhpcy5wcm9jZXNzb3IucGx1Z2lucy5tYXAoZT0+dHlwZW9mIGU9PWBvYmplY3RgJiZlLnByZXBhcmU/ey4uLmUsLi4uZS5wcmVwYXJlKHRoaXMucmVzdWx0KX06ZSl9YXN5bmMoKXtyZXR1cm4gdGhpcy5lcnJvcj9Qcm9taXNlLnJlamVjdCh0aGlzLmVycm9yKTp0aGlzLnByb2Nlc3NlZD9Qcm9taXNlLnJlc29sdmUodGhpcy5yZXN1bHQpOih0aGlzLnByb2Nlc3Npbmd8fCh0aGlzLnByb2Nlc3Npbmc9dGhpcy5ydW5Bc3luYygpKSx0aGlzLnByb2Nlc3NpbmcpfWNhdGNoKGUpe3JldHVybiB0aGlzLmFzeW5jKCkuY2F0Y2goZSl9ZmluYWxseShlKXtyZXR1cm4gdGhpcy5hc3luYygpLnRoZW4oZSxlKX1nZXRBc3luY0Vycm9yKCl7dGhyb3cgRXJyb3IoYFVzZSBwcm9jZXNzKGNzcykudGhlbihjYikgdG8gd29yayB3aXRoIGFzeW5jIHBsdWdpbnNgKX1oYW5kbGVFcnJvcihlLHQpe2xldCBuPXRoaXMucmVzdWx0Lmxhc3RQbHVnaW47dHJ5e3QmJnQuYWRkVG9FcnJvcihlKSx0aGlzLmVycm9yPWUsZS5uYW1lIT09YENzc1N5bnRheEVycm9yYHx8ZS5wbHVnaW4/bi5wb3N0Y3NzVmVyc2lvbjooZS5wbHVnaW49bi5wb3N0Y3NzUGx1Z2luLGUuc2V0TWVzc2FnZSgpKX1jYXRjaChlKXtjb25zb2xlJiZjb25zb2xlLmVycm9yJiZjb25zb2xlLmVycm9yKGUpfXJldHVybiBlfXByZXBhcmVWaXNpdG9ycygpe3RoaXMubGlzdGVuZXJzPXt9O2xldCBlPShlLHQsbik9Pnt0aGlzLmxpc3RlbmVyc1t0XXx8KHRoaXMubGlzdGVuZXJzW3RdPVtdKSx0aGlzLmxpc3RlbmVyc1t0XS5wdXNoKFtlLG5dKX07Zm9yKGxldCB0IG9mIHRoaXMucGx1Z2lucylpZih0eXBlb2YgdD09YG9iamVjdGApZm9yKGxldCBuIGluIHQpe2lmKCFraVtuXSYmL15bQS1aXS8udGVzdChuKSl0aHJvdyBFcnJvcihgVW5rbm93biBldmVudCAke259IGluICR7dC5wb3N0Y3NzUGx1Z2lufS4gVHJ5IHRvIHVwZGF0ZSBQb3N0Q1NTICgke3RoaXMucHJvY2Vzc29yLnZlcnNpb259IG5vdykuYCk7aWYoIUFpW25dKWlmKHR5cGVvZiB0W25dPT1gb2JqZWN0YClmb3IobGV0IHIgaW4gdFtuXSllKHQscj09PWAqYD9uOm4rYC1gK3IudG9Mb3dlckNhc2UoKSx0W25dW3JdKTtlbHNlIHR5cGVvZiB0W25dPT1gZnVuY3Rpb25gJiZlKHQsbix0W25dKX10aGlzLmhhc0xpc3RlbmVyPU9iamVjdC5rZXlzKHRoaXMubGlzdGVuZXJzKS5sZW5ndGg+MH1hc3luYyBydW5Bc3luYygpe3RoaXMucGx1Z2luPTA7Zm9yKGxldCBlPTA7ZTx0aGlzLnBsdWdpbnMubGVuZ3RoO2UrKyl7bGV0IHQ9dGhpcy5wbHVnaW5zW2VdLG49dGhpcy5ydW5PblJvb3QodCk7aWYoamkobikpdHJ5e2F3YWl0IG59Y2F0Y2goZSl7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihlKX19aWYodGhpcy5wcmVwYXJlVmlzaXRvcnMoKSx0aGlzLmhhc0xpc3RlbmVyKXtsZXQgZT10aGlzLnJlc3VsdC5yb290O2Zvcig7IWVbeWldOyl7ZVt5aV09ITA7bGV0IHQ9W05pKGUpXTtmb3IoO3QubGVuZ3RoPjA7KXtsZXQgZT10aGlzLnZpc2l0VGljayh0KTtpZihqaShlKSl0cnl7YXdhaXQgZX1jYXRjaChlKXtsZXQgbj10W3QubGVuZ3RoLTFdLm5vZGU7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihlLG4pfX19aWYodGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpZm9yKGxldFt0LG5db2YgdGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpe3RoaXMucmVzdWx0Lmxhc3RQbHVnaW49dDt0cnl7aWYoZS50eXBlPT09YGRvY3VtZW50YCl7bGV0IHQ9ZS5ub2Rlcy5tYXAoZT0+bihlLHRoaXMuaGVscGVycykpO2F3YWl0IFByb21pc2UuYWxsKHQpfWVsc2UgYXdhaXQgbihlLHRoaXMuaGVscGVycyl9Y2F0Y2goZSl7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihlKX19fXJldHVybiB0aGlzLnByb2Nlc3NlZD0hMCx0aGlzLnN0cmluZ2lmeSgpfXJ1bk9uUm9vdChlKXt0aGlzLnJlc3VsdC5sYXN0UGx1Z2luPWU7dHJ5e2lmKHR5cGVvZiBlPT1gb2JqZWN0YCYmZS5PbmNlKXtpZih0aGlzLnJlc3VsdC5yb290LnR5cGU9PT1gZG9jdW1lbnRgKXtsZXQgdD10aGlzLnJlc3VsdC5yb290Lm5vZGVzLm1hcCh0PT5lLk9uY2UodCx0aGlzLmhlbHBlcnMpKTtyZXR1cm4gamkodFswXSk/UHJvbWlzZS5hbGwodCk6dH1yZXR1cm4gZS5PbmNlKHRoaXMucmVzdWx0LnJvb3QsdGhpcy5oZWxwZXJzKX1pZih0eXBlb2YgZT09YGZ1bmN0aW9uYClyZXR1cm4gZSh0aGlzLnJlc3VsdC5yb290LHRoaXMucmVzdWx0KX1jYXRjaChlKXt0aHJvdyB0aGlzLmhhbmRsZUVycm9yKGUpfX1zdHJpbmdpZnkoKXtpZih0aGlzLmVycm9yKXRocm93IHRoaXMuZXJyb3I7aWYodGhpcy5zdHJpbmdpZmllZClyZXR1cm4gdGhpcy5yZXN1bHQ7dGhpcy5zdHJpbmdpZmllZD0hMCx0aGlzLnN5bmMoKTtsZXQgZT10aGlzLnJlc3VsdC5vcHRzLHQ9U2k7ZS5zeW50YXgmJih0PWUuc3ludGF4LnN0cmluZ2lmeSksZS5zdHJpbmdpZmllciYmKHQ9ZS5zdHJpbmdpZmllciksdC5zdHJpbmdpZnkmJih0PXQuc3RyaW5naWZ5KTtsZXQgbj1uZXcgeGkodCx0aGlzLnJlc3VsdC5yb290LHRoaXMucmVzdWx0Lm9wdHMpLmdlbmVyYXRlKCk7cmV0dXJuIHRoaXMucmVzdWx0LmNzcz1uWzBdLHRoaXMucmVzdWx0Lm1hcD1uWzFdLHRoaXMucmVzdWx0fXN5bmMoKXtpZih0aGlzLmVycm9yKXRocm93IHRoaXMuZXJyb3I7aWYodGhpcy5wcm9jZXNzZWQpcmV0dXJuIHRoaXMucmVzdWx0O2lmKHRoaXMucHJvY2Vzc2VkPSEwLHRoaXMucHJvY2Vzc2luZyl0aHJvdyB0aGlzLmdldEFzeW5jRXJyb3IoKTtmb3IobGV0IGUgb2YgdGhpcy5wbHVnaW5zKWlmKGppKHRoaXMucnVuT25Sb290KGUpKSl0aHJvdyB0aGlzLmdldEFzeW5jRXJyb3IoKTtpZih0aGlzLnByZXBhcmVWaXNpdG9ycygpLHRoaXMuaGFzTGlzdGVuZXIpe2xldCBlPXRoaXMucmVzdWx0LnJvb3Q7Zm9yKDshZVt5aV07KWVbeWldPSEwLHRoaXMud2Fsa1N5bmMoZSk7aWYodGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpaWYoZS50eXBlPT09YGRvY3VtZW50YClmb3IobGV0IHQgb2YgZS5ub2Rlcyl0aGlzLnZpc2l0U3luYyh0aGlzLmxpc3RlbmVycy5PbmNlRXhpdCx0KTtlbHNlIHRoaXMudmlzaXRTeW5jKHRoaXMubGlzdGVuZXJzLk9uY2VFeGl0LGUpfXJldHVybiB0aGlzLnJlc3VsdH10aGVuKGUsdCl7cmV0dXJuIHRoaXMuYXN5bmMoKS50aGVuKGUsdCl9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5jc3N9dmlzaXRTeW5jKGUsdCl7Zm9yKGxldFtuLHJdb2YgZSl7bGV0IGU7dGhpcy5yZXN1bHQubGFzdFBsdWdpbj1uO3RyeXtlPXIodCx0aGlzLmhlbHBlcnMpfWNhdGNoKGUpe3Rocm93IHRoaXMuaGFuZGxlRXJyb3IoZSx0LnByb3h5T2YpfWlmKHQudHlwZSE9PWByb290YCYmdC50eXBlIT09YGRvY3VtZW50YCYmIXQucGFyZW50KXJldHVybiEwO2lmKGppKGUpKXRocm93IHRoaXMuZ2V0QXN5bmNFcnJvcigpfX12aXNpdFRpY2soZSl7bGV0IHQ9ZVtlLmxlbmd0aC0xXSx7bm9kZTpuLHZpc2l0b3JzOnJ9PXQ7aWYobi50eXBlIT09YHJvb3RgJiZuLnR5cGUhPT1gZG9jdW1lbnRgJiYhbi5wYXJlbnQpcmV0dXJuIHZvaWQgZS5wb3AoKTtpZihyLmxlbmd0aD4wJiZ0LnZpc2l0b3JJbmRleDxyLmxlbmd0aCl7bGV0W2UsaV09clt0LnZpc2l0b3JJbmRleF07dC52aXNpdG9ySW5kZXgrPTEsdC52aXNpdG9ySW5kZXg9PT1yLmxlbmd0aCYmKHQudmlzaXRvcnM9W10sdC52aXNpdG9ySW5kZXg9MCksdGhpcy5yZXN1bHQubGFzdFBsdWdpbj1lO3RyeXtyZXR1cm4gaShuLnRvUHJveHkoKSx0aGlzLmhlbHBlcnMpfWNhdGNoKGUpe3Rocm93IHRoaXMuaGFuZGxlRXJyb3IoZSxuKX19aWYodC5pdGVyYXRvciE9PTApe2xldCByLGk9dC5pdGVyYXRvcjtmb3IoO3I9bi5ub2Rlc1tuLmluZGV4ZXNbaV1dOylpZihuLmluZGV4ZXNbaV0rPTEsIXJbeWldKXJldHVybiByW3lpXT0hMCx2b2lkIGUucHVzaChOaShyKSk7dC5pdGVyYXRvcj0wLGRlbGV0ZSBuLmluZGV4ZXNbaV19bGV0IGk9dC5ldmVudHM7Zm9yKDt0LmV2ZW50SW5kZXg8aS5sZW5ndGg7KXtsZXQgZT1pW3QuZXZlbnRJbmRleF07aWYodC5ldmVudEluZGV4Kz0xLGU9PT0wKXJldHVybiB2b2lkKG4ubm9kZXMmJm4ubm9kZXMubGVuZ3RoJiYoblt5aV09ITAsdC5pdGVyYXRvcj1uLmdldEl0ZXJhdG9yKCkpKTtpZih0aGlzLmxpc3RlbmVyc1tlXSlyZXR1cm4gdm9pZCh0LnZpc2l0b3JzPXRoaXMubGlzdGVuZXJzW2VdKX1lLnBvcCgpfXdhbGtTeW5jKGUpe2VbeWldPSEwO2xldCB0PU1pKGUpO2ZvcihsZXQgbiBvZiB0KWlmKG49PT0wKWUubm9kZXMmJmUuZWFjaChlPT57ZVt5aV18fHRoaXMud2Fsa1N5bmMoZSl9KTtlbHNle2xldCB0PXRoaXMubGlzdGVuZXJzW25dO2lmKHQmJnRoaXMudmlzaXRTeW5jKHQsZS50b1Byb3h5KCkpKXJldHVybn19d2FybmluZ3MoKXtyZXR1cm4gdGhpcy5zeW5jKCkud2FybmluZ3MoKX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLnN0cmluZ2lmeSgpLmNvbnRlbnR9Z2V0IGNzcygpe3JldHVybiB0aGlzLnN0cmluZ2lmeSgpLmNzc31nZXQgbWFwKCl7cmV0dXJuIHRoaXMuc3RyaW5naWZ5KCkubWFwfWdldCBtZXNzYWdlcygpe3JldHVybiB0aGlzLnN5bmMoKS5tZXNzYWdlc31nZXQgb3B0cygpe3JldHVybiB0aGlzLnJlc3VsdC5vcHRzfWdldCBwcm9jZXNzb3IoKXtyZXR1cm4gdGhpcy5yZXN1bHQucHJvY2Vzc29yfWdldCByb290KCl7cmV0dXJuIHRoaXMuc3luYygpLnJvb3R9Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm5gTGF6eVJlc3VsdGB9fTtJaS5yZWdpc3RlclBvc3Rjc3M9ZT0+e0ZpPWV9O3ZhciBMaT1JaTtJaS5kZWZhdWx0PUlpLERpLnJlZ2lzdGVyTGF6eVJlc3VsdChJaSksd2kucmVnaXN0ZXJMYXp5UmVzdWx0KElpKTt2YXIgUmk9WG4semk9cm4sQmk9dmksVmk9U3IsSGk9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LG4pe3Q9dC50b1N0cmluZygpLHRoaXMuc3RyaW5naWZpZWQ9ITEsdGhpcy5fcHJvY2Vzc29yPWUsdGhpcy5fY3NzPXQsdGhpcy5fb3B0cz1uLHRoaXMuX21hcD12b2lkIDA7bGV0IHI9emk7dGhpcy5yZXN1bHQ9bmV3IFZpKHRoaXMuX3Byb2Nlc3Nvcix2b2lkIDAsdGhpcy5fb3B0cyksdGhpcy5yZXN1bHQuY3NzPXQ7bGV0IGk9dGhpcztPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5yZXN1bHQsYHJvb3RgLHtnZXQ6KCk9Pmkucm9vdH0pO2xldCBhPW5ldyBSaShyLHZvaWQgMCx0aGlzLl9vcHRzLHQpO2lmKGEuaXNNYXAoKSl7bGV0W2UsdF09YS5nZW5lcmF0ZSgpO2UmJih0aGlzLnJlc3VsdC5jc3M9ZSksdCYmKHRoaXMucmVzdWx0Lm1hcD10KX1lbHNlIGEuY2xlYXJBbm5vdGF0aW9uKCksdGhpcy5yZXN1bHQuY3NzPWEuY3NzfWFzeW5jKCl7cmV0dXJuIHRoaXMuZXJyb3I/UHJvbWlzZS5yZWplY3QodGhpcy5lcnJvcik6UHJvbWlzZS5yZXNvbHZlKHRoaXMucmVzdWx0KX1jYXRjaChlKXtyZXR1cm4gdGhpcy5hc3luYygpLmNhdGNoKGUpfWZpbmFsbHkoZSl7cmV0dXJuIHRoaXMuYXN5bmMoKS50aGVuKGUsZSl9c3luYygpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtyZXR1cm4gdGhpcy5yZXN1bHR9dGhlbihlLHQpe3JldHVybiB0aGlzLmFzeW5jKCkudGhlbihlLHQpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX2Nzc313YXJuaW5ncygpe3JldHVybltdfWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMucmVzdWx0LmNzc31nZXQgY3NzKCl7cmV0dXJuIHRoaXMucmVzdWx0LmNzc31nZXQgbWFwKCl7cmV0dXJuIHRoaXMucmVzdWx0Lm1hcH1nZXQgbWVzc2FnZXMoKXtyZXR1cm5bXX1nZXQgb3B0cygpe3JldHVybiB0aGlzLnJlc3VsdC5vcHRzfWdldCBwcm9jZXNzb3IoKXtyZXR1cm4gdGhpcy5yZXN1bHQucHJvY2Vzc29yfWdldCByb290KCl7aWYodGhpcy5fcm9vdClyZXR1cm4gdGhpcy5fcm9vdDtsZXQgZSx0PUJpO3RyeXtlPXQodGhpcy5fY3NzLHRoaXMuX29wdHMpfWNhdGNoKGUpe3RoaXMuZXJyb3I9ZX1pZih0aGlzLmVycm9yKXRocm93IHRoaXMuZXJyb3I7cmV0dXJuIHRoaXMuX3Jvb3Q9ZSxlfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuYE5vV29ya1Jlc3VsdGB9fSxVaT1IaTtIaS5kZWZhdWx0PUhpO3ZhciBXaT1VaSxHaT1MaSxLaT1fcixxaT0kcixKaT1jbGFzc3tjb25zdHJ1Y3RvcihlPVtdKXt0aGlzLnZlcnNpb249YDguNC4zOGAsdGhpcy5wbHVnaW5zPXRoaXMubm9ybWFsaXplKGUpfW5vcm1hbGl6ZShlKXtsZXQgdD1bXTtmb3IobGV0IG4gb2YgZSlpZihuLnBvc3Rjc3M9PT0hMD9uPW4oKTpuLnBvc3Rjc3MmJihuPW4ucG9zdGNzcyksdHlwZW9mIG49PWBvYmplY3RgJiZBcnJheS5pc0FycmF5KG4ucGx1Z2lucykpdD10LmNvbmNhdChuLnBsdWdpbnMpO2Vsc2UgaWYodHlwZW9mIG49PWBvYmplY3RgJiZuLnBvc3Rjc3NQbHVnaW4pdC5wdXNoKG4pO2Vsc2UgaWYodHlwZW9mIG49PWBmdW5jdGlvbmApdC5wdXNoKG4pO2Vsc2UgaWYodHlwZW9mIG4hPWBvYmplY3RgfHwhbi5wYXJzZSYmIW4uc3RyaW5naWZ5KXRocm93IEVycm9yKG4rYCBpcyBub3QgYSBQb3N0Q1NTIHBsdWdpbmApO3JldHVybiB0fXByb2Nlc3MoZSx0PXt9KXtyZXR1cm4gdGhpcy5wbHVnaW5zLmxlbmd0aHx8dC5wYXJzZXJ8fHQuc3RyaW5naWZpZXJ8fHQuc3ludGF4P25ldyBHaSh0aGlzLGUsdCk6bmV3IFdpKHRoaXMsZSx0KX11c2UoZSl7cmV0dXJuIHRoaXMucGx1Z2lucz10aGlzLnBsdWdpbnMuY29uY2F0KHRoaXMubm9ybWFsaXplKFtlXSkpLHRoaXN9fSxZaT1KaTtKaS5kZWZhdWx0PUppLHFpLnJlZ2lzdGVyUHJvY2Vzc29yKEppKSxLaS5yZWdpc3RlclByb2Nlc3NvcihKaSk7dmFyIFhpPWhuLFppPXduLFFpPSRuLCRpPUpyLGVhPXpuLHRhPSRyLG5hPWFpO2Z1bmN0aW9uIHJhKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZS5tYXAoZT0+cmEoZSkpO2xldHtpbnB1dHM6biwuLi5yfT1lO2lmKG4pe3Q9W107Zm9yKGxldCBlIG9mIG4pe2xldCBuPXsuLi5lLF9fcHJvdG9fXzplYS5wcm90b3R5cGV9O24ubWFwJiYobi5tYXA9ey4uLm4ubWFwLF9fcHJvdG9fXzpaaS5wcm90b3R5cGV9KSx0LnB1c2gobil9fWlmKHIubm9kZXMmJihyLm5vZGVzPWUubm9kZXMubWFwKGU9PnJhKGUsdCkpKSxyLnNvdXJjZSl7bGV0e2lucHV0SWQ6ZSwuLi5ufT1yLnNvdXJjZTtyLnNvdXJjZT1uLGUhPW51bGwmJihyLnNvdXJjZS5pbnB1dD10W2VdKX1pZihyLnR5cGU9PT1gcm9vdGApcmV0dXJuIG5ldyB0YShyKTtpZihyLnR5cGU9PT1gZGVjbGApcmV0dXJuIG5ldyBYaShyKTtpZihyLnR5cGU9PT1gcnVsZWApcmV0dXJuIG5ldyBuYShyKTtpZihyLnR5cGU9PT1gY29tbWVudGApcmV0dXJuIG5ldyBRaShyKTtpZihyLnR5cGU9PT1gYXRydWxlYClyZXR1cm4gbmV3ICRpKHIpO3Rocm93IEVycm9yKGBVbmtub3duIG5vZGUgdHlwZTogYCtlLnR5cGUpfXZhciBpYT1yYTtyYS5kZWZhdWx0PXJhO3ZhciBhYT1YdCxvYT1obixzYT1MaSxjYT1mcixsYT1ZaSx1YT1ybixkYT1pYSxmYT1fcixwYT15cixtYT0kbixoYT1KcixnYT1TcixfYT16bix2YT12aSx5YT10aSxiYT1haSx4YT0kcixTYT1mbjtmdW5jdGlvbiBqKC4uLmUpe3JldHVybiBlLmxlbmd0aD09PTEmJkFycmF5LmlzQXJyYXkoZVswXSkmJihlPWVbMF0pLG5ldyBsYShlKX1qLnBsdWdpbj1mdW5jdGlvbihlLHQpe2xldCBuLHI9ITE7ZnVuY3Rpb24gaSguLi5uKXtjb25zb2xlJiZjb25zb2xlLndhcm4mJiFyJiYocj0hMCxjb25zb2xlLndhcm4oZStgOiBwb3N0Y3NzLnBsdWdpbiB3YXMgZGVwcmVjYXRlZC4gTWlncmF0aW9uIGd1aWRlOgpodHRwczovL2V2aWxtYXJ0aWFucy5jb20vY2hyb25pY2xlcy9wb3N0Y3NzLTgtcGx1Z2luLW1pZ3JhdGlvbmApLHt9LkxBTkcmJnt9LkxBTkcuc3RhcnRzV2l0aChgY25gKSYmY29uc29sZS53YXJuKGUrYDog6YeM6Z2iIHBvc3Rjc3MucGx1Z2luIOiiq+W8g+eUqC4g6L+B56e75oyH5Y2XOgpodHRwczovL3d3dy53M2N0ZWNoLmNvbS90b3BpYy8yMjI2YCkpO2xldCBpPXQoLi4ubik7cmV0dXJuIGkucG9zdGNzc1BsdWdpbj1lLGkucG9zdGNzc1ZlcnNpb249bmV3IGxhKCkudmVyc2lvbixpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxgcG9zdGNzc2Ase2dldDooKT0+KG58fChuPWkoKSksbil9KSxpLnByb2Nlc3M9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBqKFtpKG4pXSkucHJvY2VzcyhlLHQpfSxpfSxqLnN0cmluZ2lmeT11YSxqLnBhcnNlPXZhLGouZnJvbUpTT049ZGEsai5saXN0PXlhLGouY29tbWVudD1lPT5uZXcgbWEoZSksai5hdFJ1bGU9ZT0+bmV3IGhhKGUpLGouZGVjbD1lPT5uZXcgb2EoZSksai5ydWxlPWU9Pm5ldyBiYShlKSxqLnJvb3Q9ZT0+bmV3IHhhKGUpLGouZG9jdW1lbnQ9ZT0+bmV3IGZhKGUpLGouQ3NzU3ludGF4RXJyb3I9YWEsai5EZWNsYXJhdGlvbj1vYSxqLkNvbnRhaW5lcj1jYSxqLlByb2Nlc3Nvcj1sYSxqLkRvY3VtZW50PWZhLGouQ29tbWVudD1tYSxqLldhcm5pbmc9cGEsai5BdFJ1bGU9aGEsai5SZXN1bHQ9Z2Esai5JbnB1dD1fYSxqLlJ1bGU9YmEsai5Sb290PXhhLGouTm9kZT1TYSxzYS5yZWdpc3RlclBvc3Rjc3Moaik7dmFyIENhPWo7ai5kZWZhdWx0PWo7dmFyIE09VnQoQ2EpO00uc3RyaW5naWZ5LE0uZnJvbUpTT04sTS5wbHVnaW4sTS5wYXJzZSxNLmxpc3QsTS5kb2N1bWVudCxNLmNvbW1lbnQsTS5hdFJ1bGUsTS5ydWxlLE0uZGVjbCxNLnJvb3QsTS5Dc3NTeW50YXhFcnJvcixNLkRlY2xhcmF0aW9uLE0uQ29udGFpbmVyLE0uUHJvY2Vzc29yLE0uRG9jdW1lbnQsTS5Db21tZW50LE0uV2FybmluZyxNLkF0UnVsZSxNLlJlc3VsdCxNLklucHV0LE0uUnVsZSxNLlJvb3QsTS5Ob2RlO3ZhciB3YT1PYmplY3QuZGVmaW5lUHJvcGVydHksVGE9KGUsdCxuKT0+KChlLHQsbik9PnQgaW4gZT93YShlLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KTplW3RdPW4pKGUsdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYCxuKTtmdW5jdGlvbiBFYShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxgZGVmYXVsdGApP2UuZGVmYXVsdDplfWZ1bmN0aW9uIERhKGUpe2lmKGUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD1lLmRlZmF1bHQ7aWYodHlwZW9mIHQ9PWBmdW5jdGlvbmApe3ZhciBuPWZ1bmN0aW9uIGUoKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGU/UmVmbGVjdC5jb25zdHJ1Y3QodCxhcmd1bWVudHMsdGhpcy5jb25zdHJ1Y3Rvcik6dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O24ucHJvdG90eXBlPXQucHJvdG90eXBlfWVsc2Ugbj17fTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLHQsci5nZXQ/cjp7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZVt0XX19KX0pLG59dmFyIE9hPXtleHBvcnRzOnt9fSxOPVN0cmluZyxrYT1mdW5jdGlvbigpe3JldHVybntpc0NvbG9yU3VwcG9ydGVkOiExLHJlc2V0Ok4sYm9sZDpOLGRpbTpOLGl0YWxpYzpOLHVuZGVybGluZTpOLGludmVyc2U6TixoaWRkZW46TixzdHJpa2V0aHJvdWdoOk4sYmxhY2s6TixyZWQ6TixncmVlbjpOLHllbGxvdzpOLGJsdWU6TixtYWdlbnRhOk4sY3lhbjpOLHdoaXRlOk4sZ3JheTpOLGJnQmxhY2s6TixiZ1JlZDpOLGJnR3JlZW46TixiZ1llbGxvdzpOLGJnQmx1ZTpOLGJnTWFnZW50YTpOLGJnQ3lhbjpOLGJnV2hpdGU6Tn19O09hLmV4cG9ydHM9a2EoKSxPYS5leHBvcnRzLmNyZWF0ZUNvbG9ycz1rYTt2YXIgQWE9T2EuZXhwb3J0cyxqYT1EYShPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7X19wcm90b19fOm51bGwsZGVmYXVsdDp7fX0sU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpgTW9kdWxlYH0pKSksTWE9QWEsTmE9amEsUGE9Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQsbixyLGksYSxvKXtzdXBlcih0KSx0aGlzLm5hbWU9YENzc1N5bnRheEVycm9yYCx0aGlzLnJlYXNvbj10LGEmJih0aGlzLmZpbGU9YSksaSYmKHRoaXMuc291cmNlPWkpLG8mJih0aGlzLnBsdWdpbj1vKSxuIT09dm9pZCAwJiZyIT09dm9pZCAwJiYodHlwZW9mIG49PWBudW1iZXJgPyh0aGlzLmxpbmU9bix0aGlzLmNvbHVtbj1yKToodGhpcy5saW5lPW4ubGluZSx0aGlzLmNvbHVtbj1uLmNvbHVtbix0aGlzLmVuZExpbmU9ci5saW5lLHRoaXMuZW5kQ29sdW1uPXIuY29sdW1uKSksdGhpcy5zZXRNZXNzYWdlKCksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsZSl9c2V0TWVzc2FnZSgpe3RoaXMubWVzc2FnZT10aGlzLnBsdWdpbj90aGlzLnBsdWdpbitgOiBgOmBgLHRoaXMubWVzc2FnZSs9dGhpcy5maWxlP3RoaXMuZmlsZTpgPGNzcyBpbnB1dD5gLHRoaXMubGluZSE9PXZvaWQgMCYmKHRoaXMubWVzc2FnZSs9YDpgK3RoaXMubGluZStgOmArdGhpcy5jb2x1bW4pLHRoaXMubWVzc2FnZSs9YDogYCt0aGlzLnJlYXNvbn1zaG93U291cmNlQ29kZShlKXtpZighdGhpcy5zb3VyY2UpcmV0dXJuYGA7bGV0IHQ9dGhpcy5zb3VyY2U7ZT8/KGU9TWEuaXNDb2xvclN1cHBvcnRlZCksTmEmJmUmJih0PU5hKHQpKTtsZXQgbixyLGk9dC5zcGxpdCgvXHI/XG4vKSxhPU1hdGgubWF4KHRoaXMubGluZS0zLDApLG89TWF0aC5taW4odGhpcy5saW5lKzIsaS5sZW5ndGgpLHM9U3RyaW5nKG8pLmxlbmd0aDtpZihlKXtsZXR7Ym9sZDplLGdyYXk6dCxyZWQ6aX09TWEuY3JlYXRlQ29sb3JzKCEwKTtuPXQ9PmUoaSh0KSkscj1lPT50KGUpfWVsc2Ugbj1yPWU9PmU7cmV0dXJuIGkuc2xpY2UoYSxvKS5tYXAoKGUsdCk9PntsZXQgaT1hKzErdCxvPWAgYCsoYCBgK2kpLnNsaWNlKC1zKStgIHwgYDtpZihpPT09dGhpcy5saW5lKXtsZXQgdD1yKG8ucmVwbGFjZSgvXGQvZyxgIGApKStlLnNsaWNlKDAsdGhpcy5jb2x1bW4tMSkucmVwbGFjZSgvW15cdF0vZyxgIGApO3JldHVybiBuKGA+YCkrcihvKStlK2AKIGArdCtuKGBeYCl9cmV0dXJuYCBgK3IobykrZX0pLmpvaW4oYApgKX10b1N0cmluZygpe2xldCBlPXRoaXMuc2hvd1NvdXJjZUNvZGUoKTtyZXR1cm4gZSYmKGU9YAoKYCtlK2AKYCksdGhpcy5uYW1lK2A6IGArdGhpcy5tZXNzYWdlK2V9fSxGYT1QYTtQYS5kZWZhdWx0PVBhO3ZhciBJYT17fTtJYS5pc0NsZWFuPVN5bWJvbChgaXNDbGVhbmApLElhLm15PVN5bWJvbChgbXlgKTt2YXIgTGE9e2FmdGVyOmAKYCxiZWZvcmVDbG9zZTpgCmAsYmVmb3JlQ29tbWVudDpgCmAsYmVmb3JlRGVjbDpgCmAsYmVmb3JlT3BlbjpgIGAsYmVmb3JlUnVsZTpgCmAsY29sb246YDogYCxjb21tZW50TGVmdDpgIGAsY29tbWVudFJpZ2h0OmAgYCxlbXB0eUJvZHk6YGAsaW5kZW50OmAgICAgYCxzZW1pY29sb246ITF9LFJhPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuYnVpbGRlcj1lfWF0cnVsZShlLHQpe2xldCBuPWBAYCtlLm5hbWUscj1lLnBhcmFtcz90aGlzLnJhd1ZhbHVlKGUsYHBhcmFtc2ApOmBgO2lmKGUucmF3cy5hZnRlck5hbWU9PT12b2lkIDA/ciYmKG4rPWAgYCk6bis9ZS5yYXdzLmFmdGVyTmFtZSxlLm5vZGVzKXRoaXMuYmxvY2soZSxuK3IpO2Vsc2V7bGV0IGk9KGUucmF3cy5iZXR3ZWVufHxgYCkrKHQ/YDtgOmBgKTt0aGlzLmJ1aWxkZXIobityK2ksZSl9fWJlZm9yZUFmdGVyKGUsdCl7bGV0IG47bj1lLnR5cGU9PT1gZGVjbGA/dGhpcy5yYXcoZSxudWxsLGBiZWZvcmVEZWNsYCk6ZS50eXBlPT09YGNvbW1lbnRgP3RoaXMucmF3KGUsbnVsbCxgYmVmb3JlQ29tbWVudGApOnQ9PT1gYmVmb3JlYD90aGlzLnJhdyhlLG51bGwsYGJlZm9yZVJ1bGVgKTp0aGlzLnJhdyhlLG51bGwsYGJlZm9yZUNsb3NlYCk7bGV0IHI9ZS5wYXJlbnQsaT0wO2Zvcig7ciYmci50eXBlIT09YHJvb3RgOylpKz0xLHI9ci5wYXJlbnQ7aWYobi5pbmNsdWRlcyhgCmApKXtsZXQgdD10aGlzLnJhdyhlLG51bGwsYGluZGVudGApO2lmKHQubGVuZ3RoKWZvcihsZXQgZT0wO2U8aTtlKyspbis9dH1yZXR1cm4gbn1ibG9jayhlLHQpe2xldCBuLHI9dGhpcy5yYXcoZSxgYmV0d2VlbmAsYGJlZm9yZU9wZW5gKTt0aGlzLmJ1aWxkZXIodCtyK2B7YCxlLGBzdGFydGApLGUubm9kZXMmJmUubm9kZXMubGVuZ3RoPyh0aGlzLmJvZHkoZSksbj10aGlzLnJhdyhlLGBhZnRlcmApKTpuPXRoaXMucmF3KGUsYGFmdGVyYCxgZW1wdHlCb2R5YCksbiYmdGhpcy5idWlsZGVyKG4pLHRoaXMuYnVpbGRlcihgfWAsZSxgZW5kYCl9Ym9keShlKXtsZXQgdD1lLm5vZGVzLmxlbmd0aC0xO2Zvcig7dD4wJiZlLm5vZGVzW3RdLnR5cGU9PT1gY29tbWVudGA7KS0tdDtsZXQgbj10aGlzLnJhdyhlLGBzZW1pY29sb25gKTtmb3IobGV0IHI9MDtyPGUubm9kZXMubGVuZ3RoO3IrKyl7bGV0IGk9ZS5ub2Rlc1tyXSxhPXRoaXMucmF3KGksYGJlZm9yZWApO2EmJnRoaXMuYnVpbGRlcihhKSx0aGlzLnN0cmluZ2lmeShpLHQhPT1yfHxuKX19Y29tbWVudChlKXtsZXQgdD10aGlzLnJhdyhlLGBsZWZ0YCxgY29tbWVudExlZnRgKSxuPXRoaXMucmF3KGUsYHJpZ2h0YCxgY29tbWVudFJpZ2h0YCk7dGhpcy5idWlsZGVyKGAvKmArdCtlLnRleHQrbitgKi9gLGUpfWRlY2woZSx0KXtsZXQgbj10aGlzLnJhdyhlLGBiZXR3ZWVuYCxgY29sb25gKSxyPWUucHJvcCtuK3RoaXMucmF3VmFsdWUoZSxgdmFsdWVgKTtlLmltcG9ydGFudCYmKHIrPWUucmF3cy5pbXBvcnRhbnR8fGAgIWltcG9ydGFudGApLHQmJihyKz1gO2ApLHRoaXMuYnVpbGRlcihyLGUpfWRvY3VtZW50KGUpe3RoaXMuYm9keShlKX1yYXcoZSx0LG4pe2xldCByO2lmKG58fChuPXQpLHQmJihyPWUucmF3c1t0XSxyIT09dm9pZCAwKSlyZXR1cm4gcjtsZXQgaT1lLnBhcmVudDtpZihuPT09YGJlZm9yZWAmJighaXx8aS50eXBlPT09YHJvb3RgJiZpLmZpcnN0PT09ZXx8aSYmaS50eXBlPT09YGRvY3VtZW50YCkpcmV0dXJuYGA7aWYoIWkpcmV0dXJuIExhW25dO2xldCBhPWUucm9vdCgpO2lmKGEucmF3Q2FjaGV8fChhLnJhd0NhY2hlPXt9KSxhLnJhd0NhY2hlW25dIT09dm9pZCAwKXJldHVybiBhLnJhd0NhY2hlW25dO2lmKG49PT1gYmVmb3JlYHx8bj09PWBhZnRlcmApcmV0dXJuIHRoaXMuYmVmb3JlQWZ0ZXIoZSxuKTt7bGV0IGk9YHJhd2ArKChvPW4pWzBdLnRvVXBwZXJDYXNlKCkrby5zbGljZSgxKSk7dGhpc1tpXT9yPXRoaXNbaV0oYSxlKTphLndhbGsoZT0+e2lmKHI9ZS5yYXdzW3RdLHIhPT12b2lkIDApcmV0dXJuITF9KX12YXIgbztyZXR1cm4gcj09PXZvaWQgMCYmKHI9TGFbbl0pLGEucmF3Q2FjaGVbbl09cixyfXJhd0JlZm9yZUNsb3NlKGUpe2xldCB0O3JldHVybiBlLndhbGsoZT0+e2lmKGUubm9kZXMmJmUubm9kZXMubGVuZ3RoPjAmJmUucmF3cy5hZnRlciE9PXZvaWQgMClyZXR1cm4gdD1lLnJhd3MuYWZ0ZXIsdC5pbmNsdWRlcyhgCmApJiYodD10LnJlcGxhY2UoL1teXG5dKyQvLGBgKSksITF9KSx0JiYodD10LnJlcGxhY2UoL1xTL2csYGApKSx0fXJhd0JlZm9yZUNvbW1lbnQoZSx0KXtsZXQgbjtyZXR1cm4gZS53YWxrQ29tbWVudHMoZT0+e2lmKGUucmF3cy5iZWZvcmUhPT12b2lkIDApcmV0dXJuIG49ZS5yYXdzLmJlZm9yZSxuLmluY2x1ZGVzKGAKYCkmJihuPW4ucmVwbGFjZSgvW15cbl0rJC8sYGApKSwhMX0pLG49PT12b2lkIDA/bj10aGlzLnJhdyh0LG51bGwsYGJlZm9yZURlY2xgKTpuJiYobj1uLnJlcGxhY2UoL1xTL2csYGApKSxufXJhd0JlZm9yZURlY2woZSx0KXtsZXQgbjtyZXR1cm4gZS53YWxrRGVjbHMoZT0+e2lmKGUucmF3cy5iZWZvcmUhPT12b2lkIDApcmV0dXJuIG49ZS5yYXdzLmJlZm9yZSxuLmluY2x1ZGVzKGAKYCkmJihuPW4ucmVwbGFjZSgvW15cbl0rJC8sYGApKSwhMX0pLG49PT12b2lkIDA/bj10aGlzLnJhdyh0LG51bGwsYGJlZm9yZVJ1bGVgKTpuJiYobj1uLnJlcGxhY2UoL1xTL2csYGApKSxufXJhd0JlZm9yZU9wZW4oZSl7bGV0IHQ7cmV0dXJuIGUud2FsayhlPT57aWYoZS50eXBlIT09YGRlY2xgJiYodD1lLnJhd3MuYmV0d2Vlbix0IT09dm9pZCAwKSlyZXR1cm4hMX0pLHR9cmF3QmVmb3JlUnVsZShlKXtsZXQgdDtyZXR1cm4gZS53YWxrKG49PntpZihuLm5vZGVzJiYobi5wYXJlbnQhPT1lfHxlLmZpcnN0IT09bikmJm4ucmF3cy5iZWZvcmUhPT12b2lkIDApcmV0dXJuIHQ9bi5yYXdzLmJlZm9yZSx0LmluY2x1ZGVzKGAKYCkmJih0PXQucmVwbGFjZSgvW15cbl0rJC8sYGApKSwhMX0pLHQmJih0PXQucmVwbGFjZSgvXFMvZyxgYCkpLHR9cmF3Q29sb24oZSl7bGV0IHQ7cmV0dXJuIGUud2Fsa0RlY2xzKGU9PntpZihlLnJhd3MuYmV0d2VlbiE9PXZvaWQgMClyZXR1cm4gdD1lLnJhd3MuYmV0d2Vlbi5yZXBsYWNlKC9bXlxzOl0vZyxgYCksITF9KSx0fXJhd0VtcHR5Qm9keShlKXtsZXQgdDtyZXR1cm4gZS53YWxrKGU9PntpZihlLm5vZGVzJiZlLm5vZGVzLmxlbmd0aD09PTAmJih0PWUucmF3cy5hZnRlcix0IT09dm9pZCAwKSlyZXR1cm4hMX0pLHR9cmF3SW5kZW50KGUpe2lmKGUucmF3cy5pbmRlbnQpcmV0dXJuIGUucmF3cy5pbmRlbnQ7bGV0IHQ7cmV0dXJuIGUud2FsayhuPT57bGV0IHI9bi5wYXJlbnQ7aWYociYmciE9PWUmJnIucGFyZW50JiZyLnBhcmVudD09PWUmJm4ucmF3cy5iZWZvcmUhPT12b2lkIDApe2xldCBlPW4ucmF3cy5iZWZvcmUuc3BsaXQoYApgKTtyZXR1cm4gdD1lW2UubGVuZ3RoLTFdLHQ9dC5yZXBsYWNlKC9cUy9nLGBgKSwhMX19KSx0fXJhd1NlbWljb2xvbihlKXtsZXQgdDtyZXR1cm4gZS53YWxrKGU9PntpZihlLm5vZGVzJiZlLm5vZGVzLmxlbmd0aCYmZS5sYXN0LnR5cGU9PT1gZGVjbGAmJih0PWUucmF3cy5zZW1pY29sb24sdCE9PXZvaWQgMCkpcmV0dXJuITF9KSx0fXJhd1ZhbHVlKGUsdCl7bGV0IG49ZVt0XSxyPWUucmF3c1t0XTtyZXR1cm4gciYmci52YWx1ZT09PW4/ci5yYXc6bn1yb290KGUpe3RoaXMuYm9keShlKSxlLnJhd3MuYWZ0ZXImJnRoaXMuYnVpbGRlcihlLnJhd3MuYWZ0ZXIpfXJ1bGUoZSl7dGhpcy5ibG9jayhlLHRoaXMucmF3VmFsdWUoZSxgc2VsZWN0b3JgKSksZS5yYXdzLm93blNlbWljb2xvbiYmdGhpcy5idWlsZGVyKGUucmF3cy5vd25TZW1pY29sb24sZSxgZW5kYCl9c3RyaW5naWZ5KGUsdCl7aWYoIXRoaXNbZS50eXBlXSl0aHJvdyBFcnJvcihgVW5rbm93biBBU1Qgbm9kZSB0eXBlIGArZS50eXBlK2AuIE1heWJlIHlvdSBuZWVkIHRvIGNoYW5nZSBQb3N0Q1NTIHN0cmluZ2lmaWVyLmApO3RoaXNbZS50eXBlXShlLHQpfX0semE9UmE7UmEuZGVmYXVsdD1SYTt2YXIgQmE9emE7ZnVuY3Rpb24gVmEoZSx0KXtuZXcgQmEodCkuc3RyaW5naWZ5KGUpfXZhciBIYT1WYTtWYS5kZWZhdWx0PVZhO3Zhcntpc0NsZWFuOlVhLG15OldhfT1JYSxHYT1GYSxLYT16YSxxYT1IYTtmdW5jdGlvbiBKYShlLHQpe2xldCBuPW5ldyBlLmNvbnN0cnVjdG9yO2ZvcihsZXQgciBpbiBlKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscil8fHI9PT1gcHJveHlDYWNoZWApY29udGludWU7bGV0IGk9ZVtyXSxhPXR5cGVvZiBpO3I9PT1gcGFyZW50YCYmYT09PWBvYmplY3RgP3QmJihuW3JdPXQpOnI9PT1gc291cmNlYD9uW3JdPWk6QXJyYXkuaXNBcnJheShpKT9uW3JdPWkubWFwKGU9PkphKGUsbikpOihhPT09YG9iamVjdGAmJmkhPT1udWxsJiYoaT1KYShpKSksbltyXT1pKX1yZXR1cm4gbn12YXIgWWE9Y2xhc3N7Y29uc3RydWN0b3IoZT17fSl7dGhpcy5yYXdzPXt9LHRoaXNbVWFdPSExLHRoaXNbV2FdPSEwO2ZvcihsZXQgdCBpbiBlKWlmKHQ9PT1gbm9kZXNgKXt0aGlzLm5vZGVzPVtdO2ZvcihsZXQgbiBvZiBlW3RdKXR5cGVvZiBuLmNsb25lPT1gZnVuY3Rpb25gP3RoaXMuYXBwZW5kKG4uY2xvbmUoKSk6dGhpcy5hcHBlbmQobil9ZWxzZSB0aGlzW3RdPWVbdF19YWRkVG9FcnJvcihlKXtpZihlLnBvc3Rjc3NOb2RlPXRoaXMsZS5zdGFjayYmdGhpcy5zb3VyY2UmJi9cblxzezR9YXQgLy50ZXN0KGUuc3RhY2spKXtsZXQgdD10aGlzLnNvdXJjZTtlLnN0YWNrPWUuc3RhY2sucmVwbGFjZSgvXG5cc3s0fWF0IC8sYCQmJHt0LmlucHV0LmZyb219OiR7dC5zdGFydC5saW5lfToke3Quc3RhcnQuY29sdW1ufSQmYCl9cmV0dXJuIGV9YWZ0ZXIoZSl7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEFmdGVyKHRoaXMsZSksdGhpc31hc3NpZ24oZT17fSl7Zm9yKGxldCB0IGluIGUpdGhpc1t0XT1lW3RdO3JldHVybiB0aGlzfWJlZm9yZShlKXtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QmVmb3JlKHRoaXMsZSksdGhpc31jbGVhblJhd3MoZSl7ZGVsZXRlIHRoaXMucmF3cy5iZWZvcmUsZGVsZXRlIHRoaXMucmF3cy5hZnRlcixlfHxkZWxldGUgdGhpcy5yYXdzLmJldHdlZW59Y2xvbmUoZT17fSl7bGV0IHQ9SmEodGhpcyk7Zm9yKGxldCBuIGluIGUpdFtuXT1lW25dO3JldHVybiB0fWNsb25lQWZ0ZXIoZT17fSl7bGV0IHQ9dGhpcy5jbG9uZShlKTtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QWZ0ZXIodGhpcyx0KSx0fWNsb25lQmVmb3JlKGU9e30pe2xldCB0PXRoaXMuY2xvbmUoZSk7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0aGlzLHQpLHR9ZXJyb3IoZSx0PXt9KXtpZih0aGlzLnNvdXJjZSl7bGV0e2VuZDpuLHN0YXJ0OnJ9PXRoaXMucmFuZ2VCeSh0KTtyZXR1cm4gdGhpcy5zb3VyY2UuaW5wdXQuZXJyb3IoZSx7Y29sdW1uOnIuY29sdW1uLGxpbmU6ci5saW5lfSx7Y29sdW1uOm4uY29sdW1uLGxpbmU6bi5saW5lfSx0KX1yZXR1cm4gbmV3IEdhKGUpfWdldFByb3h5UHJvY2Vzc29yKCl7cmV0dXJue2dldDooZSx0KT0+dD09PWBwcm94eU9mYD9lOnQ9PT1gcm9vdGA/KCk9PmUucm9vdCgpLnRvUHJveHkoKTplW3RdLHNldDooZSx0LG4pPT4oZVt0XT09PW58fChlW3RdPW4sdCE9PWBwcm9wYCYmdCE9PWB2YWx1ZWAmJnQhPT1gbmFtZWAmJnQhPT1gcGFyYW1zYCYmdCE9PWBpbXBvcnRhbnRgJiZ0IT09YHRleHRgfHxlLm1hcmtEaXJ0eSgpKSwhMCl9fW1hcmtEaXJ0eSgpe2lmKHRoaXNbVWFdKXt0aGlzW1VhXT0hMTtsZXQgZT10aGlzO2Zvcig7ZT1lLnBhcmVudDspZVtVYV09ITF9fW5leHQoKXtpZighdGhpcy5wYXJlbnQpcmV0dXJuO2xldCBlPXRoaXMucGFyZW50LmluZGV4KHRoaXMpO3JldHVybiB0aGlzLnBhcmVudC5ub2Rlc1tlKzFdfXBvc2l0aW9uQnkoZSx0KXtsZXQgbj10aGlzLnNvdXJjZS5zdGFydDtpZihlLmluZGV4KW49dGhpcy5wb3NpdGlvbkluc2lkZShlLmluZGV4LHQpO2Vsc2UgaWYoZS53b3JkKXtsZXQgcj0odD10aGlzLnRvU3RyaW5nKCkpLmluZGV4T2YoZS53b3JkKTtyIT09LTEmJihuPXRoaXMucG9zaXRpb25JbnNpZGUocix0KSl9cmV0dXJuIG59cG9zaXRpb25JbnNpZGUoZSx0KXtsZXQgbj10fHx0aGlzLnRvU3RyaW5nKCkscj10aGlzLnNvdXJjZS5zdGFydC5jb2x1bW4saT10aGlzLnNvdXJjZS5zdGFydC5saW5lO2ZvcihsZXQgdD0wO3Q8ZTt0Kyspblt0XT09PWAKYD8ocj0xLGkrPTEpOnIrPTE7cmV0dXJue2NvbHVtbjpyLGxpbmU6aX19cHJldigpe2lmKCF0aGlzLnBhcmVudClyZXR1cm47bGV0IGU9dGhpcy5wYXJlbnQuaW5kZXgodGhpcyk7cmV0dXJuIHRoaXMucGFyZW50Lm5vZGVzW2UtMV19cmFuZ2VCeShlKXtsZXQgdD17Y29sdW1uOnRoaXMuc291cmNlLnN0YXJ0LmNvbHVtbixsaW5lOnRoaXMuc291cmNlLnN0YXJ0LmxpbmV9LG49dGhpcy5zb3VyY2UuZW5kP3tjb2x1bW46dGhpcy5zb3VyY2UuZW5kLmNvbHVtbisxLGxpbmU6dGhpcy5zb3VyY2UuZW5kLmxpbmV9Ontjb2x1bW46dC5jb2x1bW4rMSxsaW5lOnQubGluZX07aWYoZS53b3JkKXtsZXQgcj10aGlzLnRvU3RyaW5nKCksaT1yLmluZGV4T2YoZS53b3JkKTtpIT09LTEmJih0PXRoaXMucG9zaXRpb25JbnNpZGUoaSxyKSxuPXRoaXMucG9zaXRpb25JbnNpZGUoaStlLndvcmQubGVuZ3RoLHIpKX1lbHNlIGUuc3RhcnQ/dD17Y29sdW1uOmUuc3RhcnQuY29sdW1uLGxpbmU6ZS5zdGFydC5saW5lfTplLmluZGV4JiYodD10aGlzLnBvc2l0aW9uSW5zaWRlKGUuaW5kZXgpKSxlLmVuZD9uPXtjb2x1bW46ZS5lbmQuY29sdW1uLGxpbmU6ZS5lbmQubGluZX06dHlwZW9mIGUuZW5kSW5kZXg9PWBudW1iZXJgP249dGhpcy5wb3NpdGlvbkluc2lkZShlLmVuZEluZGV4KTplLmluZGV4JiYobj10aGlzLnBvc2l0aW9uSW5zaWRlKGUuaW5kZXgrMSkpO3JldHVybihuLmxpbmU8dC5saW5lfHxuLmxpbmU9PT10LmxpbmUmJm4uY29sdW1uPD10LmNvbHVtbikmJihuPXtjb2x1bW46dC5jb2x1bW4rMSxsaW5lOnQubGluZX0pLHtlbmQ6bixzdGFydDp0fX1yYXcoZSx0KXtyZXR1cm4gbmV3IEthKCkucmF3KHRoaXMsZSx0KX1yZW1vdmUoKXtyZXR1cm4gdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LnJlbW92ZUNoaWxkKHRoaXMpLHRoaXMucGFyZW50PXZvaWQgMCx0aGlzfXJlcGxhY2VXaXRoKC4uLmUpe2lmKHRoaXMucGFyZW50KXtsZXQgdD10aGlzLG49ITE7Zm9yKGxldCByIG9mIGUpcj09PXRoaXM/bj0hMDpuPyh0aGlzLnBhcmVudC5pbnNlcnRBZnRlcih0LHIpLHQ9cik6dGhpcy5wYXJlbnQuaW5zZXJ0QmVmb3JlKHQscik7bnx8dGhpcy5yZW1vdmUoKX1yZXR1cm4gdGhpc31yb290KCl7bGV0IGU9dGhpcztmb3IoO2UucGFyZW50JiZlLnBhcmVudC50eXBlIT09YGRvY3VtZW50YDspZT1lLnBhcmVudDtyZXR1cm4gZX10b0pTT04oZSx0KXtsZXQgbj17fSxyPXQ9PW51bGw7dD10fHxuZXcgTWFwO2xldCBpPTA7Zm9yKGxldCBlIGluIHRoaXMpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcyxlKXx8ZT09PWBwYXJlbnRgfHxlPT09YHByb3h5Q2FjaGVgKWNvbnRpbnVlO2xldCByPXRoaXNbZV07aWYoQXJyYXkuaXNBcnJheShyKSluW2VdPXIubWFwKGU9PnR5cGVvZiBlPT1gb2JqZWN0YCYmZS50b0pTT04/ZS50b0pTT04obnVsbCx0KTplKTtlbHNlIGlmKHR5cGVvZiByPT1gb2JqZWN0YCYmci50b0pTT04pbltlXT1yLnRvSlNPTihudWxsLHQpO2Vsc2UgaWYoZT09PWBzb3VyY2VgKXtsZXQgYT10LmdldChyLmlucHV0KTthPz8oYT1pLHQuc2V0KHIuaW5wdXQsaSksaSsrKSxuW2VdPXtlbmQ6ci5lbmQsaW5wdXRJZDphLHN0YXJ0OnIuc3RhcnR9fWVsc2UgbltlXT1yfXJldHVybiByJiYobi5pbnB1dHM9Wy4uLnQua2V5cygpXS5tYXAoZT0+ZS50b0pTT04oKSkpLG59dG9Qcm94eSgpe3JldHVybiB0aGlzLnByb3h5Q2FjaGV8fCh0aGlzLnByb3h5Q2FjaGU9bmV3IFByb3h5KHRoaXMsdGhpcy5nZXRQcm94eVByb2Nlc3NvcigpKSksdGhpcy5wcm94eUNhY2hlfXRvU3RyaW5nKGU9cWEpe2Uuc3RyaW5naWZ5JiYoZT1lLnN0cmluZ2lmeSk7bGV0IHQ9YGA7cmV0dXJuIGUodGhpcyxlPT57dCs9ZX0pLHR9d2FybihlLHQsbil7bGV0IHI9e25vZGU6dGhpc307Zm9yKGxldCBlIGluIG4pcltlXT1uW2VdO3JldHVybiBlLndhcm4odCxyKX1nZXQgcHJveHlPZigpe3JldHVybiB0aGlzfX0sWGE9WWE7WWEuZGVmYXVsdD1ZYTt2YXIgWmE9WGEsUWE9Y2xhc3MgZXh0ZW5kcyBaYXtjb25zdHJ1Y3RvcihlKXtlJiZlLnZhbHVlIT09dm9pZCAwJiZ0eXBlb2YgZS52YWx1ZSE9YHN0cmluZ2AmJihlPXsuLi5lLHZhbHVlOlN0cmluZyhlLnZhbHVlKX0pLHN1cGVyKGUpLHRoaXMudHlwZT1gZGVjbGB9Z2V0IHZhcmlhYmxlKCl7cmV0dXJuIHRoaXMucHJvcC5zdGFydHNXaXRoKGAtLWApfHx0aGlzLnByb3BbMF09PT1gJGB9fSwkYT1RYTtRYS5kZWZhdWx0PVFhO3ZhciBlbz17bmFub2lkOihlPTIxKT0+e2xldCB0PWBgLG49ZTtmb3IoO24tLTspdCs9YHVzZWFuZG9tLTI2VDE5ODM0MFBYNzVweEpBQ0tWRVJZTUlOREJVU0hXT0xGX0dRWmJmZ2hqa2xxdnd5enJpY3RgWzY0Kk1hdGgucmFuZG9tKCl8MF07cmV0dXJuIHR9fSx7U291cmNlTWFwQ29uc3VtZXI6dG8sU291cmNlTWFwR2VuZXJhdG9yOm5vfT1qYSx7ZXhpc3RzU3luYzpybyxyZWFkRmlsZVN5bmM6aW99PWphLHtkaXJuYW1lOmFvLGpvaW46b299PWphLHNvPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7aWYodC5tYXA9PT0hMSlyZXR1cm47dGhpcy5sb2FkQW5ub3RhdGlvbihlKSx0aGlzLmlubGluZT10aGlzLnN0YXJ0V2l0aCh0aGlzLmFubm90YXRpb24sYGRhdGE6YCk7bGV0IG49dC5tYXA/dC5tYXAucHJldjp2b2lkIDAscj10aGlzLmxvYWRNYXAodC5mcm9tLG4pOyF0aGlzLm1hcEZpbGUmJnQuZnJvbSYmKHRoaXMubWFwRmlsZT10LmZyb20pLHRoaXMubWFwRmlsZSYmKHRoaXMucm9vdD1hbyh0aGlzLm1hcEZpbGUpKSxyJiYodGhpcy50ZXh0PXIpfWNvbnN1bWVyKCl7cmV0dXJuIHRoaXMuY29uc3VtZXJDYWNoZXx8KHRoaXMuY29uc3VtZXJDYWNoZT1uZXcgdG8odGhpcy50ZXh0KSksdGhpcy5jb25zdW1lckNhY2hlfWRlY29kZUlubGluZShlKXtpZigvXmRhdGE6YXBwbGljYXRpb25cL2pzb247Y2hhcnNldD11dGYtPzgsLy50ZXN0KGUpfHwvXmRhdGE6YXBwbGljYXRpb25cL2pzb24sLy50ZXN0KGUpKXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoZS5zdWJzdHIoUmVnRXhwLmxhc3RNYXRjaC5sZW5ndGgpKTtpZigvXmRhdGE6YXBwbGljYXRpb25cL2pzb247Y2hhcnNldD11dGYtPzg7YmFzZTY0LC8udGVzdChlKXx8L15kYXRhOmFwcGxpY2F0aW9uXC9qc29uO2Jhc2U2NCwvLnRlc3QoZSkpcmV0dXJuIG49ZS5zdWJzdHIoUmVnRXhwLmxhc3RNYXRjaC5sZW5ndGgpLHQ/dC5mcm9tKG4sYGJhc2U2NGApLnRvU3RyaW5nKCk6d2luZG93LmF0b2Iobik7dmFyIG47bGV0IHI9ZS5tYXRjaCgvZGF0YTphcHBsaWNhdGlvblwvanNvbjsoW14sXSspLC8pWzFdO3Rocm93IEVycm9yKGBVbnN1cHBvcnRlZCBzb3VyY2UgbWFwIGVuY29kaW5nIGArcil9Z2V0QW5ub3RhdGlvblVSTChlKXtyZXR1cm4gZS5yZXBsYWNlKC9eXC9cKlxzKiMgc291cmNlTWFwcGluZ1VSTD0vLGBgKS50cmltKCl9aXNNYXAoZSl7cmV0dXJuIHR5cGVvZiBlPT1gb2JqZWN0YCYmKHR5cGVvZiBlLm1hcHBpbmdzPT1gc3RyaW5nYHx8dHlwZW9mIGUuX21hcHBpbmdzPT1gc3RyaW5nYHx8QXJyYXkuaXNBcnJheShlLnNlY3Rpb25zKSl9bG9hZEFubm90YXRpb24oZSl7bGV0IHQ9ZS5tYXRjaCgvXC9cKlxzKiMgc291cmNlTWFwcGluZ1VSTD0vZ20pO2lmKCF0KXJldHVybjtsZXQgbj1lLmxhc3RJbmRleE9mKHQucG9wKCkpLHI9ZS5pbmRleE9mKGAqL2Asbik7bj4tMSYmcj4tMSYmKHRoaXMuYW5ub3RhdGlvbj10aGlzLmdldEFubm90YXRpb25VUkwoZS5zdWJzdHJpbmcobixyKSkpfWxvYWRGaWxlKGUpe2lmKHRoaXMucm9vdD1hbyhlKSxybyhlKSlyZXR1cm4gdGhpcy5tYXBGaWxlPWUsaW8oZSxgdXRmLThgKS50b1N0cmluZygpLnRyaW0oKX1sb2FkTWFwKGUsdCl7aWYodD09PSExKXJldHVybiExO2lmKHQpe2lmKHR5cGVvZiB0PT1gc3RyaW5nYClyZXR1cm4gdDtpZih0eXBlb2YgdCE9YGZ1bmN0aW9uYCl7aWYodCBpbnN0YW5jZW9mIHRvKXJldHVybiBuby5mcm9tU291cmNlTWFwKHQpLnRvU3RyaW5nKCk7aWYodCBpbnN0YW5jZW9mIG5vKXJldHVybiB0LnRvU3RyaW5nKCk7aWYodGhpcy5pc01hcCh0KSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCk7dGhyb3cgRXJyb3IoYFVuc3VwcG9ydGVkIHByZXZpb3VzIHNvdXJjZSBtYXAgZm9ybWF0OiBgK3QudG9TdHJpbmcoKSl9e2xldCBuPXQoZSk7aWYobil7bGV0IGU9dGhpcy5sb2FkRmlsZShuKTtpZighZSl0aHJvdyBFcnJvcihgVW5hYmxlIHRvIGxvYWQgcHJldmlvdXMgc291cmNlIG1hcDogYCtuLnRvU3RyaW5nKCkpO3JldHVybiBlfX19ZWxzZXtpZih0aGlzLmlubGluZSlyZXR1cm4gdGhpcy5kZWNvZGVJbmxpbmUodGhpcy5hbm5vdGF0aW9uKTtpZih0aGlzLmFubm90YXRpb24pe2xldCB0PXRoaXMuYW5ub3RhdGlvbjtyZXR1cm4gZSYmKHQ9b28oYW8oZSksdCkpLHRoaXMubG9hZEZpbGUodCl9fX1zdGFydFdpdGgoZSx0KXtyZXR1cm4hIWUmJmUuc3Vic3RyKDAsdC5sZW5ndGgpPT09dH13aXRoQ29udGVudCgpe3JldHVybiEhKHRoaXMuY29uc3VtZXIoKS5zb3VyY2VzQ29udGVudCYmdGhpcy5jb25zdW1lcigpLnNvdXJjZXNDb250ZW50Lmxlbmd0aD4wKX19LGNvPXNvO3NvLmRlZmF1bHQ9c287dmFye1NvdXJjZU1hcENvbnN1bWVyOmxvLFNvdXJjZU1hcEdlbmVyYXRvcjp1b309amEse2ZpbGVVUkxUb1BhdGg6Zm8scGF0aFRvRmlsZVVSTDpwb309amEse2lzQWJzb2x1dGU6bW8scmVzb2x2ZTpob309amEse25hbm9pZDpnb309ZW8sX289amEsdm89RmEseW89Y28sYm89U3ltYm9sKGBmcm9tT2Zmc2V0Q2FjaGVgKSx4bz0hIShsbyYmdW8pLFNvPSEhKGhvJiZtbyksQ289Y2xhc3N7Y29uc3RydWN0b3IoZSx0PXt9KXtpZihlPT1udWxsfHx0eXBlb2YgZT09YG9iamVjdGAmJiFlLnRvU3RyaW5nKXRocm93IEVycm9yKGBQb3N0Q1NTIHJlY2VpdmVkICR7ZX0gaW5zdGVhZCBvZiBDU1Mgc3RyaW5nYCk7aWYodGhpcy5jc3M9ZS50b1N0cmluZygpLHRoaXMuY3NzWzBdPT09YO+7v2B8fHRoaXMuY3NzWzBdPT09YO+/vmA/KHRoaXMuaGFzQk9NPSEwLHRoaXMuY3NzPXRoaXMuY3NzLnNsaWNlKDEpKTp0aGlzLmhhc0JPTT0hMSx0LmZyb20mJighU298fC9eXHcrOlwvXC8vLnRlc3QodC5mcm9tKXx8bW8odC5mcm9tKT90aGlzLmZpbGU9dC5mcm9tOnRoaXMuZmlsZT1obyh0LmZyb20pKSxTbyYmeG8pe2xldCBlPW5ldyB5byh0aGlzLmNzcyx0KTtpZihlLnRleHQpe3RoaXMubWFwPWU7bGV0IHQ9ZS5jb25zdW1lcigpLmZpbGU7IXRoaXMuZmlsZSYmdCYmKHRoaXMuZmlsZT10aGlzLm1hcFJlc29sdmUodCkpfX10aGlzLmZpbGV8fCh0aGlzLmlkPWA8aW5wdXQgY3NzIGArZ28oNikrYD5gKSx0aGlzLm1hcCYmKHRoaXMubWFwLmZpbGU9dGhpcy5mcm9tKX1lcnJvcihlLHQsbixyPXt9KXtsZXQgaSxhLG87aWYodCYmdHlwZW9mIHQ9PWBvYmplY3RgKXtsZXQgZT10LHI9bjtpZih0eXBlb2YgZS5vZmZzZXQ9PWBudW1iZXJgKXtsZXQgcj10aGlzLmZyb21PZmZzZXQoZS5vZmZzZXQpO3Q9ci5saW5lLG49ci5jb2x9ZWxzZSB0PWUubGluZSxuPWUuY29sdW1uO2lmKHR5cGVvZiByLm9mZnNldD09YG51bWJlcmApe2xldCBlPXRoaXMuZnJvbU9mZnNldChyLm9mZnNldCk7YT1lLmxpbmUsbz1lLmNvbH1lbHNlIGE9ci5saW5lLG89ci5jb2x1bW59ZWxzZSBpZighbil7bGV0IGU9dGhpcy5mcm9tT2Zmc2V0KHQpO3Q9ZS5saW5lLG49ZS5jb2x9bGV0IHM9dGhpcy5vcmlnaW4odCxuLGEsbyk7cmV0dXJuIGk9cz9uZXcgdm8oZSxzLmVuZExpbmU9PT12b2lkIDA/cy5saW5lOntjb2x1bW46cy5jb2x1bW4sbGluZTpzLmxpbmV9LHMuZW5kTGluZT09PXZvaWQgMD9zLmNvbHVtbjp7Y29sdW1uOnMuZW5kQ29sdW1uLGxpbmU6cy5lbmRMaW5lfSxzLnNvdXJjZSxzLmZpbGUsci5wbHVnaW4pOm5ldyB2byhlLGE9PT12b2lkIDA/dDp7Y29sdW1uOm4sbGluZTp0fSxhPT09dm9pZCAwP246e2NvbHVtbjpvLGxpbmU6YX0sdGhpcy5jc3MsdGhpcy5maWxlLHIucGx1Z2luKSxpLmlucHV0PXtjb2x1bW46bixlbmRDb2x1bW46byxlbmRMaW5lOmEsbGluZTp0LHNvdXJjZTp0aGlzLmNzc30sdGhpcy5maWxlJiYocG8mJihpLmlucHV0LnVybD1wbyh0aGlzLmZpbGUpLnRvU3RyaW5nKCkpLGkuaW5wdXQuZmlsZT10aGlzLmZpbGUpLGl9ZnJvbU9mZnNldChlKXtsZXQgdCxuO2lmKHRoaXNbYm9dKW49dGhpc1tib107ZWxzZXtsZXQgZT10aGlzLmNzcy5zcGxpdChgCmApO249QXJyYXkoZS5sZW5ndGgpO2xldCB0PTA7Zm9yKGxldCByPTAsaT1lLmxlbmd0aDtyPGk7cisrKW5bcl09dCx0Kz1lW3JdLmxlbmd0aCsxO3RoaXNbYm9dPW59dD1uW24ubGVuZ3RoLTFdO2xldCByPTA7aWYoZT49dClyPW4ubGVuZ3RoLTE7ZWxzZXtsZXQgdCxpPW4ubGVuZ3RoLTI7Zm9yKDtyPGk7KWlmKHQ9cisoaS1yPj4xKSxlPG5bdF0paT10LTE7ZWxzZXtpZighKGU+PW5bdCsxXSkpe3I9dDticmVha31yPXQrMX19cmV0dXJue2NvbDplLW5bcl0rMSxsaW5lOnIrMX19bWFwUmVzb2x2ZShlKXtyZXR1cm4vXlx3KzpcL1wvLy50ZXN0KGUpP2U6aG8odGhpcy5tYXAuY29uc3VtZXIoKS5zb3VyY2VSb290fHx0aGlzLm1hcC5yb290fHxgLmAsZSl9b3JpZ2luKGUsdCxuLHIpe2lmKCF0aGlzLm1hcClyZXR1cm4hMTtsZXQgaSxhLG89dGhpcy5tYXAuY29uc3VtZXIoKSxzPW8ub3JpZ2luYWxQb3NpdGlvbkZvcih7Y29sdW1uOnQsbGluZTplfSk7aWYoIXMuc291cmNlKXJldHVybiExO3R5cGVvZiBuPT1gbnVtYmVyYCYmKGk9by5vcmlnaW5hbFBvc2l0aW9uRm9yKHtjb2x1bW46cixsaW5lOm59KSksYT1tbyhzLnNvdXJjZSk/cG8ocy5zb3VyY2UpOm5ldyBVUkwocy5zb3VyY2UsdGhpcy5tYXAuY29uc3VtZXIoKS5zb3VyY2VSb290fHxwbyh0aGlzLm1hcC5tYXBGaWxlKSk7bGV0IGM9e2NvbHVtbjpzLmNvbHVtbixlbmRDb2x1bW46aSYmaS5jb2x1bW4sZW5kTGluZTppJiZpLmxpbmUsbGluZTpzLmxpbmUsdXJsOmEudG9TdHJpbmcoKX07aWYoYS5wcm90b2NvbD09PWBmaWxlOmApe2lmKCFmbyl0aHJvdyBFcnJvcihgZmlsZTogcHJvdG9jb2wgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIFBvc3RDU1MgYnVpbGRgKTtjLmZpbGU9Zm8oYSl9bGV0IGw9by5zb3VyY2VDb250ZW50Rm9yKHMuc291cmNlKTtyZXR1cm4gbCYmKGMuc291cmNlPWwpLGN9dG9KU09OKCl7bGV0IGU9e307Zm9yKGxldCB0IG9mW2BoYXNCT01gLGBjc3NgLGBmaWxlYCxgaWRgXSl0aGlzW3RdIT1udWxsJiYoZVt0XT10aGlzW3RdKTtyZXR1cm4gdGhpcy5tYXAmJihlLm1hcD17Li4udGhpcy5tYXB9LGUubWFwLmNvbnN1bWVyQ2FjaGUmJihlLm1hcC5jb25zdW1lckNhY2hlPXZvaWQgMCkpLGV9Z2V0IGZyb20oKXtyZXR1cm4gdGhpcy5maWxlfHx0aGlzLmlkfX0sd289Q287Q28uZGVmYXVsdD1DbyxfbyYmX28ucmVnaXN0ZXJJbnB1dCYmX28ucmVnaXN0ZXJJbnB1dChDbyk7dmFye1NvdXJjZU1hcENvbnN1bWVyOlRvLFNvdXJjZU1hcEdlbmVyYXRvcjpFb309amEse2Rpcm5hbWU6RG8scmVsYXRpdmU6T28scmVzb2x2ZTprbyxzZXA6QW99PWphLHtwYXRoVG9GaWxlVVJMOmpvfT1qYSxNbz13byxObz0hIShUbyYmRW8pLFBvPSEhKERvJiZrbyYmT28mJkFvKSxGbz1jbGFzc3tjb25zdHJ1Y3RvcihlLHQsbixyKXt0aGlzLnN0cmluZ2lmeT1lLHRoaXMubWFwT3B0cz1uLm1hcHx8e30sdGhpcy5yb290PXQsdGhpcy5vcHRzPW4sdGhpcy5jc3M9cix0aGlzLm9yaWdpbmFsQ1NTPXIsdGhpcy51c2VzRmlsZVVybHM9IXRoaXMubWFwT3B0cy5mcm9tJiZ0aGlzLm1hcE9wdHMuYWJzb2x1dGUsdGhpcy5tZW1vaXplZEZpbGVVUkxzPW5ldyBNYXAsdGhpcy5tZW1vaXplZFBhdGhzPW5ldyBNYXAsdGhpcy5tZW1vaXplZFVSTHM9bmV3IE1hcH1hZGRBbm5vdGF0aW9uKCl7bGV0IGU7ZT10aGlzLmlzSW5saW5lKCk/YGRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsYCt0aGlzLnRvQmFzZTY0KHRoaXMubWFwLnRvU3RyaW5nKCkpOnR5cGVvZiB0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbj09YHN0cmluZ2A/dGhpcy5tYXBPcHRzLmFubm90YXRpb246dHlwZW9mIHRoaXMubWFwT3B0cy5hbm5vdGF0aW9uPT1gZnVuY3Rpb25gP3RoaXMubWFwT3B0cy5hbm5vdGF0aW9uKHRoaXMub3B0cy50byx0aGlzLnJvb3QpOnRoaXMub3V0cHV0RmlsZSgpK2AubWFwYDtsZXQgdD1gCmA7dGhpcy5jc3MuaW5jbHVkZXMoYFxyCmApJiYodD1gXHIKYCksdGhpcy5jc3MrPXQrYC8qIyBzb3VyY2VNYXBwaW5nVVJMPWArZStgICovYH1hcHBseVByZXZNYXBzKCl7Zm9yKGxldCBlIG9mIHRoaXMucHJldmlvdXMoKSl7bGV0IHQsbj10aGlzLnRvVXJsKHRoaXMucGF0aChlLmZpbGUpKSxyPWUucm9vdHx8RG8oZS5maWxlKTt0aGlzLm1hcE9wdHMuc291cmNlc0NvbnRlbnQ9PT0hMT8odD1uZXcgVG8oZS50ZXh0KSx0LnNvdXJjZXNDb250ZW50JiYodC5zb3VyY2VzQ29udGVudD1udWxsKSk6dD1lLmNvbnN1bWVyKCksdGhpcy5tYXAuYXBwbHlTb3VyY2VNYXAodCxuLHRoaXMudG9VcmwodGhpcy5wYXRoKHIpKSl9fWNsZWFyQW5ub3RhdGlvbigpe2lmKHRoaXMubWFwT3B0cy5hbm5vdGF0aW9uIT09ITEpaWYodGhpcy5yb290KXtsZXQgZTtmb3IobGV0IHQ9dGhpcy5yb290Lm5vZGVzLmxlbmd0aC0xO3Q+PTA7dC0tKWU9dGhpcy5yb290Lm5vZGVzW3RdLGUudHlwZT09PWBjb21tZW50YCYmZS50ZXh0LmluZGV4T2YoYCMgc291cmNlTWFwcGluZ1VSTD1gKT09PTAmJnRoaXMucm9vdC5yZW1vdmVDaGlsZCh0KX1lbHNlIHRoaXMuY3NzJiYodGhpcy5jc3M9dGhpcy5jc3MucmVwbGFjZSgvXG4qP1wvXCojW1xTXHNdKj9cKlwvJC9nbSxgYCkpfWdlbmVyYXRlKCl7aWYodGhpcy5jbGVhckFubm90YXRpb24oKSxQbyYmTm8mJnRoaXMuaXNNYXAoKSlyZXR1cm4gdGhpcy5nZW5lcmF0ZU1hcCgpO3tsZXQgZT1gYDtyZXR1cm4gdGhpcy5zdHJpbmdpZnkodGhpcy5yb290LHQ9PntlKz10fSksW2VdfX1nZW5lcmF0ZU1hcCgpe2lmKHRoaXMucm9vdCl0aGlzLmdlbmVyYXRlU3RyaW5nKCk7ZWxzZSBpZih0aGlzLnByZXZpb3VzKCkubGVuZ3RoPT09MSl7bGV0IGU9dGhpcy5wcmV2aW91cygpWzBdLmNvbnN1bWVyKCk7ZS5maWxlPXRoaXMub3V0cHV0RmlsZSgpLHRoaXMubWFwPUVvLmZyb21Tb3VyY2VNYXAoZSx7aWdub3JlSW52YWxpZE1hcHBpbmc6ITB9KX1lbHNlIHRoaXMubWFwPW5ldyBFbyh7ZmlsZTp0aGlzLm91dHB1dEZpbGUoKSxpZ25vcmVJbnZhbGlkTWFwcGluZzohMH0pLHRoaXMubWFwLmFkZE1hcHBpbmcoe2dlbmVyYXRlZDp7Y29sdW1uOjAsbGluZToxfSxvcmlnaW5hbDp7Y29sdW1uOjAsbGluZToxfSxzb3VyY2U6dGhpcy5vcHRzLmZyb20/dGhpcy50b1VybCh0aGlzLnBhdGgodGhpcy5vcHRzLmZyb20pKTpgPG5vIHNvdXJjZT5gfSk7cmV0dXJuIHRoaXMuaXNTb3VyY2VzQ29udGVudCgpJiZ0aGlzLnNldFNvdXJjZXNDb250ZW50KCksdGhpcy5yb290JiZ0aGlzLnByZXZpb3VzKCkubGVuZ3RoPjAmJnRoaXMuYXBwbHlQcmV2TWFwcygpLHRoaXMuaXNBbm5vdGF0aW9uKCkmJnRoaXMuYWRkQW5ub3RhdGlvbigpLHRoaXMuaXNJbmxpbmUoKT9bdGhpcy5jc3NdOlt0aGlzLmNzcyx0aGlzLm1hcF19Z2VuZXJhdGVTdHJpbmcoKXt0aGlzLmNzcz1gYCx0aGlzLm1hcD1uZXcgRW8oe2ZpbGU6dGhpcy5vdXRwdXRGaWxlKCksaWdub3JlSW52YWxpZE1hcHBpbmc6ITB9KTtsZXQgZSx0LG49MSxyPTEsaT1gPG5vIHNvdXJjZT5gLGE9e2dlbmVyYXRlZDp7Y29sdW1uOjAsbGluZTowfSxvcmlnaW5hbDp7Y29sdW1uOjAsbGluZTowfSxzb3VyY2U6YGB9O3RoaXMuc3RyaW5naWZ5KHRoaXMucm9vdCwobyxzLGMpPT57aWYodGhpcy5jc3MrPW8scyYmYyE9PWBlbmRgJiYoYS5nZW5lcmF0ZWQubGluZT1uLGEuZ2VuZXJhdGVkLmNvbHVtbj1yLTEscy5zb3VyY2UmJnMuc291cmNlLnN0YXJ0PyhhLnNvdXJjZT10aGlzLnNvdXJjZVBhdGgocyksYS5vcmlnaW5hbC5saW5lPXMuc291cmNlLnN0YXJ0LmxpbmUsYS5vcmlnaW5hbC5jb2x1bW49cy5zb3VyY2Uuc3RhcnQuY29sdW1uLTEsdGhpcy5tYXAuYWRkTWFwcGluZyhhKSk6KGEuc291cmNlPWksYS5vcmlnaW5hbC5saW5lPTEsYS5vcmlnaW5hbC5jb2x1bW49MCx0aGlzLm1hcC5hZGRNYXBwaW5nKGEpKSksZT1vLm1hdGNoKC9cbi9nKSxlPyhuKz1lLmxlbmd0aCx0PW8ubGFzdEluZGV4T2YoYApgKSxyPW8ubGVuZ3RoLXQpOnIrPW8ubGVuZ3RoLHMmJmMhPT1gc3RhcnRgKXtsZXQgZT1zLnBhcmVudHx8e3Jhd3M6e319OyhzLnR5cGU9PT1gZGVjbGB8fHMudHlwZT09PWBhdHJ1bGVgJiYhcy5ub2RlcykmJnM9PT1lLmxhc3QmJiFlLnJhd3Muc2VtaWNvbG9ufHwocy5zb3VyY2UmJnMuc291cmNlLmVuZD8oYS5zb3VyY2U9dGhpcy5zb3VyY2VQYXRoKHMpLGEub3JpZ2luYWwubGluZT1zLnNvdXJjZS5lbmQubGluZSxhLm9yaWdpbmFsLmNvbHVtbj1zLnNvdXJjZS5lbmQuY29sdW1uLTEsYS5nZW5lcmF0ZWQubGluZT1uLGEuZ2VuZXJhdGVkLmNvbHVtbj1yLTIsdGhpcy5tYXAuYWRkTWFwcGluZyhhKSk6KGEuc291cmNlPWksYS5vcmlnaW5hbC5saW5lPTEsYS5vcmlnaW5hbC5jb2x1bW49MCxhLmdlbmVyYXRlZC5saW5lPW4sYS5nZW5lcmF0ZWQuY29sdW1uPXItMSx0aGlzLm1hcC5hZGRNYXBwaW5nKGEpKSl9fSl9aXNBbm5vdGF0aW9uKCl7cmV0dXJuISF0aGlzLmlzSW5saW5lKCl8fCh0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbj09PXZvaWQgMD8hdGhpcy5wcmV2aW91cygpLmxlbmd0aHx8dGhpcy5wcmV2aW91cygpLnNvbWUoZT0+ZS5hbm5vdGF0aW9uKTp0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbil9aXNJbmxpbmUoKXtpZih0aGlzLm1hcE9wdHMuaW5saW5lIT09dm9pZCAwKXJldHVybiB0aGlzLm1hcE9wdHMuaW5saW5lO2xldCBlPXRoaXMubWFwT3B0cy5hbm5vdGF0aW9uO3JldHVybihlPT09dm9pZCAwfHxlPT09ITApJiYoIXRoaXMucHJldmlvdXMoKS5sZW5ndGh8fHRoaXMucHJldmlvdXMoKS5zb21lKGU9PmUuaW5saW5lKSl9aXNNYXAoKXtyZXR1cm4gdGhpcy5vcHRzLm1hcD09PXZvaWQgMD90aGlzLnByZXZpb3VzKCkubGVuZ3RoPjA6ISF0aGlzLm9wdHMubWFwfWlzU291cmNlc0NvbnRlbnQoKXtyZXR1cm4gdGhpcy5tYXBPcHRzLnNvdXJjZXNDb250ZW50PT09dm9pZCAwPyF0aGlzLnByZXZpb3VzKCkubGVuZ3RofHx0aGlzLnByZXZpb3VzKCkuc29tZShlPT5lLndpdGhDb250ZW50KCkpOnRoaXMubWFwT3B0cy5zb3VyY2VzQ29udGVudH1vdXRwdXRGaWxlKCl7cmV0dXJuIHRoaXMub3B0cy50bz90aGlzLnBhdGgodGhpcy5vcHRzLnRvKTp0aGlzLm9wdHMuZnJvbT90aGlzLnBhdGgodGhpcy5vcHRzLmZyb20pOmB0by5jc3NgfXBhdGgoZSl7aWYodGhpcy5tYXBPcHRzLmFic29sdXRlfHxlLmNoYXJDb2RlQXQoMCk9PT02MHx8L15cdys6XC9cLy8udGVzdChlKSlyZXR1cm4gZTtsZXQgdD10aGlzLm1lbW9pemVkUGF0aHMuZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7bGV0IG49dGhpcy5vcHRzLnRvP0RvKHRoaXMub3B0cy50byk6YC5gO3R5cGVvZiB0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbj09YHN0cmluZ2AmJihuPURvKGtvKG4sdGhpcy5tYXBPcHRzLmFubm90YXRpb24pKSk7bGV0IHI9T28obixlKTtyZXR1cm4gdGhpcy5tZW1vaXplZFBhdGhzLnNldChlLHIpLHJ9cHJldmlvdXMoKXtpZighdGhpcy5wcmV2aW91c01hcHMpaWYodGhpcy5wcmV2aW91c01hcHM9W10sdGhpcy5yb290KXRoaXMucm9vdC53YWxrKGU9PntpZihlLnNvdXJjZSYmZS5zb3VyY2UuaW5wdXQubWFwKXtsZXQgdD1lLnNvdXJjZS5pbnB1dC5tYXA7dGhpcy5wcmV2aW91c01hcHMuaW5jbHVkZXModCl8fHRoaXMucHJldmlvdXNNYXBzLnB1c2godCl9fSk7ZWxzZXtsZXQgZT1uZXcgTW8odGhpcy5vcmlnaW5hbENTUyx0aGlzLm9wdHMpO2UubWFwJiZ0aGlzLnByZXZpb3VzTWFwcy5wdXNoKGUubWFwKX1yZXR1cm4gdGhpcy5wcmV2aW91c01hcHN9c2V0U291cmNlc0NvbnRlbnQoKXtsZXQgZT17fTtpZih0aGlzLnJvb3QpdGhpcy5yb290LndhbGsodD0+e2lmKHQuc291cmNlKXtsZXQgbj10LnNvdXJjZS5pbnB1dC5mcm9tO2lmKG4mJiFlW25dKXtlW25dPSEwO2xldCByPXRoaXMudXNlc0ZpbGVVcmxzP3RoaXMudG9GaWxlVXJsKG4pOnRoaXMudG9VcmwodGhpcy5wYXRoKG4pKTt0aGlzLm1hcC5zZXRTb3VyY2VDb250ZW50KHIsdC5zb3VyY2UuaW5wdXQuY3NzKX19fSk7ZWxzZSBpZih0aGlzLmNzcyl7bGV0IGU9dGhpcy5vcHRzLmZyb20/dGhpcy50b1VybCh0aGlzLnBhdGgodGhpcy5vcHRzLmZyb20pKTpgPG5vIHNvdXJjZT5gO3RoaXMubWFwLnNldFNvdXJjZUNvbnRlbnQoZSx0aGlzLmNzcyl9fXNvdXJjZVBhdGgoZSl7cmV0dXJuIHRoaXMubWFwT3B0cy5mcm9tP3RoaXMudG9VcmwodGhpcy5tYXBPcHRzLmZyb20pOnRoaXMudXNlc0ZpbGVVcmxzP3RoaXMudG9GaWxlVXJsKGUuc291cmNlLmlucHV0LmZyb20pOnRoaXMudG9VcmwodGhpcy5wYXRoKGUuc291cmNlLmlucHV0LmZyb20pKX10b0Jhc2U2NChlKXtyZXR1cm4gdD90LmZyb20oZSkudG9TdHJpbmcoYGJhc2U2NGApOndpbmRvdy5idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChlKSkpfXRvRmlsZVVybChlKXtsZXQgdD10aGlzLm1lbW9pemVkRmlsZVVSTHMuZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7aWYoam8pe2xldCB0PWpvKGUpLnRvU3RyaW5nKCk7cmV0dXJuIHRoaXMubWVtb2l6ZWRGaWxlVVJMcy5zZXQoZSx0KSx0fXRocm93IEVycm9yKCJgbWFwLmFic29sdXRlYCBvcHRpb24gaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIFBvc3RDU1MgYnVpbGQiKX10b1VybChlKXtsZXQgdD10aGlzLm1lbW9pemVkVVJMcy5nZXQoZSk7aWYodClyZXR1cm4gdDtBbz09PWBcXGAmJihlPWUucmVwbGFjZSgvXFwvZyxgL2ApKTtsZXQgbj1lbmNvZGVVUkkoZSkucmVwbGFjZSgvWyM/XS9nLGVuY29kZVVSSUNvbXBvbmVudCk7cmV0dXJuIHRoaXMubWVtb2l6ZWRVUkxzLnNldChlLG4pLG59fSxJbz1YYSxMbz1jbGFzcyBleHRlbmRzIElve2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMudHlwZT1gY29tbWVudGB9fSxSbz1MbztMby5kZWZhdWx0PUxvO3ZhciB6byxCbyxWbyxIbyx7aXNDbGVhbjpVbyxteTpXb309SWEsR289JGEsS289Um8scW89WGE7ZnVuY3Rpb24gSm8oZSl7cmV0dXJuIGUubWFwKGU9PihlLm5vZGVzJiYoZS5ub2Rlcz1KbyhlLm5vZGVzKSksZGVsZXRlIGUuc291cmNlLGUpKX1mdW5jdGlvbiBZbyhlKXtpZihlW1VvXT0hMSxlLnByb3h5T2Yubm9kZXMpZm9yKGxldCB0IG9mIGUucHJveHlPZi5ub2RlcylZbyh0KX12YXIgWG89Y2xhc3MgZSBleHRlbmRzIHFve2FwcGVuZCguLi5lKXtmb3IobGV0IHQgb2YgZSl7bGV0IGU9dGhpcy5ub3JtYWxpemUodCx0aGlzLmxhc3QpO2ZvcihsZXQgdCBvZiBlKXRoaXMucHJveHlPZi5ub2Rlcy5wdXNoKHQpfXJldHVybiB0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9Y2xlYW5SYXdzKGUpe2lmKHN1cGVyLmNsZWFuUmF3cyhlKSx0aGlzLm5vZGVzKWZvcihsZXQgdCBvZiB0aGlzLm5vZGVzKXQuY2xlYW5SYXdzKGUpfWVhY2goZSl7aWYoIXRoaXMucHJveHlPZi5ub2RlcylyZXR1cm47bGV0IHQsbixyPXRoaXMuZ2V0SXRlcmF0b3IoKTtmb3IoO3RoaXMuaW5kZXhlc1tyXTx0aGlzLnByb3h5T2Yubm9kZXMubGVuZ3RoJiYodD10aGlzLmluZGV4ZXNbcl0sbj1lKHRoaXMucHJveHlPZi5ub2Rlc1t0XSx0KSxuIT09ITEpOyl0aGlzLmluZGV4ZXNbcl0rPTE7cmV0dXJuIGRlbGV0ZSB0aGlzLmluZGV4ZXNbcl0sbn1ldmVyeShlKXtyZXR1cm4gdGhpcy5ub2Rlcy5ldmVyeShlKX1nZXRJdGVyYXRvcigpe3RoaXMubGFzdEVhY2h8fCh0aGlzLmxhc3RFYWNoPTApLHRoaXMuaW5kZXhlc3x8KHRoaXMuaW5kZXhlcz17fSksdGhpcy5sYXN0RWFjaCs9MTtsZXQgZT10aGlzLmxhc3RFYWNoO3JldHVybiB0aGlzLmluZGV4ZXNbZV09MCxlfWdldFByb3h5UHJvY2Vzc29yKCl7cmV0dXJue2dldDooZSx0KT0+dD09PWBwcm94eU9mYD9lOmVbdF0/dD09PWBlYWNoYHx8dHlwZW9mIHQ9PWBzdHJpbmdgJiZ0LnN0YXJ0c1dpdGgoYHdhbGtgKT8oLi4ubik9PmVbdF0oLi4ubi5tYXAoZT0+dHlwZW9mIGU9PWBmdW5jdGlvbmA/KHQsbik9PmUodC50b1Byb3h5KCksbik6ZSkpOnQ9PT1gZXZlcnlgfHx0PT09YHNvbWVgP249PmVbdF0oKGUsLi4udCk9Pm4oZS50b1Byb3h5KCksLi4udCkpOnQ9PT1gcm9vdGA/KCk9PmUucm9vdCgpLnRvUHJveHkoKTp0PT09YG5vZGVzYD9lLm5vZGVzLm1hcChlPT5lLnRvUHJveHkoKSk6dD09PWBmaXJzdGB8fHQ9PT1gbGFzdGA/ZVt0XS50b1Byb3h5KCk6ZVt0XTplW3RdLHNldDooZSx0LG4pPT4oZVt0XT09PW58fChlW3RdPW4sdCE9PWBuYW1lYCYmdCE9PWBwYXJhbXNgJiZ0IT09YHNlbGVjdG9yYHx8ZS5tYXJrRGlydHkoKSksITApfX1pbmRleChlKXtyZXR1cm4gdHlwZW9mIGU9PWBudW1iZXJgP2U6KGUucHJveHlPZiYmKGU9ZS5wcm94eU9mKSx0aGlzLnByb3h5T2Yubm9kZXMuaW5kZXhPZihlKSl9aW5zZXJ0QWZ0ZXIoZSx0KXtsZXQgbixyPXRoaXMuaW5kZXgoZSksaT10aGlzLm5vcm1hbGl6ZSh0LHRoaXMucHJveHlPZi5ub2Rlc1tyXSkucmV2ZXJzZSgpO3I9dGhpcy5pbmRleChlKTtmb3IobGV0IGUgb2YgaSl0aGlzLnByb3h5T2Yubm9kZXMuc3BsaWNlKHIrMSwwLGUpO2ZvcihsZXQgZSBpbiB0aGlzLmluZGV4ZXMpbj10aGlzLmluZGV4ZXNbZV0scjxuJiYodGhpcy5pbmRleGVzW2VdPW4raS5sZW5ndGgpO3JldHVybiB0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9aW5zZXJ0QmVmb3JlKGUsdCl7bGV0IG4scj10aGlzLmluZGV4KGUpLGk9cj09PTAmJmBwcmVwZW5kYCxhPXRoaXMubm9ybWFsaXplKHQsdGhpcy5wcm94eU9mLm5vZGVzW3JdLGkpLnJldmVyc2UoKTtyPXRoaXMuaW5kZXgoZSk7Zm9yKGxldCBlIG9mIGEpdGhpcy5wcm94eU9mLm5vZGVzLnNwbGljZShyLDAsZSk7Zm9yKGxldCBlIGluIHRoaXMuaW5kZXhlcyluPXRoaXMuaW5kZXhlc1tlXSxyPD1uJiYodGhpcy5pbmRleGVzW2VdPW4rYS5sZW5ndGgpO3JldHVybiB0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9bm9ybWFsaXplKHQsbil7aWYodHlwZW9mIHQ9PWBzdHJpbmdgKXQ9Sm8oem8odCkubm9kZXMpO2Vsc2UgaWYodD09PXZvaWQgMCl0PVtdO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dD10LnNsaWNlKDApO2ZvcihsZXQgZSBvZiB0KWUucGFyZW50JiZlLnBhcmVudC5yZW1vdmVDaGlsZChlLGBpZ25vcmVgKX1lbHNlIGlmKHQudHlwZT09PWByb290YCYmdGhpcy50eXBlIT09YGRvY3VtZW50YCl7dD10Lm5vZGVzLnNsaWNlKDApO2ZvcihsZXQgZSBvZiB0KWUucGFyZW50JiZlLnBhcmVudC5yZW1vdmVDaGlsZChlLGBpZ25vcmVgKX1lbHNlIGlmKHQudHlwZSl0PVt0XTtlbHNlIGlmKHQucHJvcCl7aWYodC52YWx1ZT09PXZvaWQgMCl0aHJvdyBFcnJvcihgVmFsdWUgZmllbGQgaXMgbWlzc2VkIGluIG5vZGUgY3JlYXRpb25gKTt0eXBlb2YgdC52YWx1ZSE9YHN0cmluZ2AmJih0LnZhbHVlPVN0cmluZyh0LnZhbHVlKSksdD1bbmV3IEdvKHQpXX1lbHNlIGlmKHQuc2VsZWN0b3IpdD1bbmV3IEJvKHQpXTtlbHNlIGlmKHQubmFtZSl0PVtuZXcgVm8odCldO2Vsc2V7aWYoIXQudGV4dCl0aHJvdyBFcnJvcihgVW5rbm93biBub2RlIHR5cGUgaW4gbm9kZSBjcmVhdGlvbmApO3Q9W25ldyBLbyh0KV19cmV0dXJuIHQubWFwKHQ9Pih0W1dvXXx8ZS5yZWJ1aWxkKHQpLCh0PXQucHJveHlPZikucGFyZW50JiZ0LnBhcmVudC5yZW1vdmVDaGlsZCh0KSx0W1VvXSYmWW8odCksdC5yYXdzLmJlZm9yZT09PXZvaWQgMCYmbiYmbi5yYXdzLmJlZm9yZSE9PXZvaWQgMCYmKHQucmF3cy5iZWZvcmU9bi5yYXdzLmJlZm9yZS5yZXBsYWNlKC9cUy9nLGBgKSksdC5wYXJlbnQ9dGhpcy5wcm94eU9mLHQpKX1wcmVwZW5kKC4uLmUpe2U9ZS5yZXZlcnNlKCk7Zm9yKGxldCB0IG9mIGUpe2xldCBlPXRoaXMubm9ybWFsaXplKHQsdGhpcy5maXJzdCxgcHJlcGVuZGApLnJldmVyc2UoKTtmb3IobGV0IHQgb2YgZSl0aGlzLnByb3h5T2Yubm9kZXMudW5zaGlmdCh0KTtmb3IobGV0IHQgaW4gdGhpcy5pbmRleGVzKXRoaXMuaW5kZXhlc1t0XT10aGlzLmluZGV4ZXNbdF0rZS5sZW5ndGh9cmV0dXJuIHRoaXMubWFya0RpcnR5KCksdGhpc31wdXNoKGUpe3JldHVybiBlLnBhcmVudD10aGlzLHRoaXMucHJveHlPZi5ub2Rlcy5wdXNoKGUpLHRoaXN9cmVtb3ZlQWxsKCl7Zm9yKGxldCBlIG9mIHRoaXMucHJveHlPZi5ub2RlcyllLnBhcmVudD12b2lkIDA7cmV0dXJuIHRoaXMucHJveHlPZi5ub2Rlcz1bXSx0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9cmVtb3ZlQ2hpbGQoZSl7bGV0IHQ7ZT10aGlzLmluZGV4KGUpLHRoaXMucHJveHlPZi5ub2Rlc1tlXS5wYXJlbnQ9dm9pZCAwLHRoaXMucHJveHlPZi5ub2Rlcy5zcGxpY2UoZSwxKTtmb3IobGV0IG4gaW4gdGhpcy5pbmRleGVzKXQ9dGhpcy5pbmRleGVzW25dLHQ+PWUmJih0aGlzLmluZGV4ZXNbbl09dC0xKTtyZXR1cm4gdGhpcy5tYXJrRGlydHkoKSx0aGlzfXJlcGxhY2VWYWx1ZXMoZSx0LG4pe3JldHVybiBufHwobj10LHQ9e30pLHRoaXMud2Fsa0RlY2xzKHI9Pnt0LnByb3BzJiYhdC5wcm9wcy5pbmNsdWRlcyhyLnByb3ApfHx0LmZhc3QmJiFyLnZhbHVlLmluY2x1ZGVzKHQuZmFzdCl8fChyLnZhbHVlPXIudmFsdWUucmVwbGFjZShlLG4pKX0pLHRoaXMubWFya0RpcnR5KCksdGhpc31zb21lKGUpe3JldHVybiB0aGlzLm5vZGVzLnNvbWUoZSl9d2FsayhlKXtyZXR1cm4gdGhpcy5lYWNoKCh0LG4pPT57bGV0IHI7dHJ5e3I9ZSh0LG4pfWNhdGNoKGUpe3Rocm93IHQuYWRkVG9FcnJvcihlKX1yZXR1cm4gciE9PSExJiZ0LndhbGsmJihyPXQud2FsayhlKSkscn0pfXdhbGtBdFJ1bGVzKGUsdCl7cmV0dXJuIHQ/ZSBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLndhbGsoKG4scik9PntpZihuLnR5cGU9PT1gYXRydWxlYCYmZS50ZXN0KG4ubmFtZSkpcmV0dXJuIHQobixyKX0pOnRoaXMud2FsaygobixyKT0+e2lmKG4udHlwZT09PWBhdHJ1bGVgJiZuLm5hbWU9PT1lKXJldHVybiB0KG4scil9KToodD1lLHRoaXMud2FsaygoZSxuKT0+e2lmKGUudHlwZT09PWBhdHJ1bGVgKXJldHVybiB0KGUsbil9KSl9d2Fsa0NvbW1lbnRzKGUpe3JldHVybiB0aGlzLndhbGsoKHQsbik9PntpZih0LnR5cGU9PT1gY29tbWVudGApcmV0dXJuIGUodCxuKX0pfXdhbGtEZWNscyhlLHQpe3JldHVybiB0P2UgaW5zdGFuY2VvZiBSZWdFeHA/dGhpcy53YWxrKChuLHIpPT57aWYobi50eXBlPT09YGRlY2xgJiZlLnRlc3Qobi5wcm9wKSlyZXR1cm4gdChuLHIpfSk6dGhpcy53YWxrKChuLHIpPT57aWYobi50eXBlPT09YGRlY2xgJiZuLnByb3A9PT1lKXJldHVybiB0KG4scil9KToodD1lLHRoaXMud2FsaygoZSxuKT0+e2lmKGUudHlwZT09PWBkZWNsYClyZXR1cm4gdChlLG4pfSkpfXdhbGtSdWxlcyhlLHQpe3JldHVybiB0P2UgaW5zdGFuY2VvZiBSZWdFeHA/dGhpcy53YWxrKChuLHIpPT57aWYobi50eXBlPT09YHJ1bGVgJiZlLnRlc3Qobi5zZWxlY3RvcikpcmV0dXJuIHQobixyKX0pOnRoaXMud2FsaygobixyKT0+e2lmKG4udHlwZT09PWBydWxlYCYmbi5zZWxlY3Rvcj09PWUpcmV0dXJuIHQobixyKX0pOih0PWUsdGhpcy53YWxrKChlLG4pPT57aWYoZS50eXBlPT09YHJ1bGVgKXJldHVybiB0KGUsbil9KSl9Z2V0IGZpcnN0KCl7aWYodGhpcy5wcm94eU9mLm5vZGVzKXJldHVybiB0aGlzLnByb3h5T2Yubm9kZXNbMF19Z2V0IGxhc3QoKXtpZih0aGlzLnByb3h5T2Yubm9kZXMpcmV0dXJuIHRoaXMucHJveHlPZi5ub2Rlc1t0aGlzLnByb3h5T2Yubm9kZXMubGVuZ3RoLTFdfX07WG8ucmVnaXN0ZXJQYXJzZT1lPT57em89ZX0sWG8ucmVnaXN0ZXJSdWxlPWU9PntCbz1lfSxYby5yZWdpc3RlckF0UnVsZT1lPT57Vm89ZX0sWG8ucmVnaXN0ZXJSb290PWU9PntIbz1lfTt2YXIgWm89WG87WG8uZGVmYXVsdD1YbyxYby5yZWJ1aWxkPWU9PntlLnR5cGU9PT1gYXRydWxlYD9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSxWby5wcm90b3R5cGUpOmUudHlwZT09PWBydWxlYD9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSxCby5wcm90b3R5cGUpOmUudHlwZT09PWBkZWNsYD9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSxHby5wcm90b3R5cGUpOmUudHlwZT09PWBjb21tZW50YD9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSxLby5wcm90b3R5cGUpOmUudHlwZT09PWByb290YCYmT2JqZWN0LnNldFByb3RvdHlwZU9mKGUsSG8ucHJvdG90eXBlKSxlW1dvXT0hMCxlLm5vZGVzJiZlLm5vZGVzLmZvckVhY2goZT0+e1hvLnJlYnVpbGQoZSl9KX07dmFyIFFvLCRvLGVzPVpvLHRzPWNsYXNzIGV4dGVuZHMgZXN7Y29uc3RydWN0b3IoZSl7c3VwZXIoe3R5cGU6YGRvY3VtZW50YCwuLi5lfSksdGhpcy5ub2Rlc3x8KHRoaXMubm9kZXM9W10pfXRvUmVzdWx0KGU9e30pe3JldHVybiBuZXcgUW8obmV3ICRvLHRoaXMsZSkuc3RyaW5naWZ5KCl9fTt0cy5yZWdpc3RlckxhenlSZXN1bHQ9ZT0+e1FvPWV9LHRzLnJlZ2lzdGVyUHJvY2Vzc29yPWU9Pnskbz1lfTt2YXIgbnM9dHM7dHMuZGVmYXVsdD10czt2YXIgcnM9Y2xhc3N7Y29uc3RydWN0b3IoZSx0PXt9KXtpZih0aGlzLnR5cGU9YHdhcm5pbmdgLHRoaXMudGV4dD1lLHQubm9kZSYmdC5ub2RlLnNvdXJjZSl7bGV0IGU9dC5ub2RlLnJhbmdlQnkodCk7dGhpcy5saW5lPWUuc3RhcnQubGluZSx0aGlzLmNvbHVtbj1lLnN0YXJ0LmNvbHVtbix0aGlzLmVuZExpbmU9ZS5lbmQubGluZSx0aGlzLmVuZENvbHVtbj1lLmVuZC5jb2x1bW59Zm9yKGxldCBlIGluIHQpdGhpc1tlXT10W2VdfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMubm9kZT90aGlzLm5vZGUuZXJyb3IodGhpcy50ZXh0LHtpbmRleDp0aGlzLmluZGV4LHBsdWdpbjp0aGlzLnBsdWdpbix3b3JkOnRoaXMud29yZH0pLm1lc3NhZ2U6dGhpcy5wbHVnaW4/dGhpcy5wbHVnaW4rYDogYCt0aGlzLnRleHQ6dGhpcy50ZXh0fX0saXM9cnM7cnMuZGVmYXVsdD1yczt2YXIgYXM9aXMsb3M9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMucHJvY2Vzc29yPWUsdGhpcy5tZXNzYWdlcz1bXSx0aGlzLnJvb3Q9dCx0aGlzLm9wdHM9bix0aGlzLmNzcz12b2lkIDAsdGhpcy5tYXA9dm9pZCAwfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzfXdhcm4oZSx0PXt9KXt0LnBsdWdpbnx8dGhpcy5sYXN0UGx1Z2luJiZ0aGlzLmxhc3RQbHVnaW4ucG9zdGNzc1BsdWdpbiYmKHQucGx1Z2luPXRoaXMubGFzdFBsdWdpbi5wb3N0Y3NzUGx1Z2luKTtsZXQgbj1uZXcgYXMoZSx0KTtyZXR1cm4gdGhpcy5tZXNzYWdlcy5wdXNoKG4pLG59d2FybmluZ3MoKXtyZXR1cm4gdGhpcy5tZXNzYWdlcy5maWx0ZXIoZT0+ZS50eXBlPT09YHdhcm5pbmdgKX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLmNzc319LHNzPW9zO29zLmRlZmF1bHQ9b3M7dmFyIGNzPTM5LGxzPTM0LHVzPTkyLGRzPTQ3LGZzPTEwLHBzPTMyLG1zPTEyLGhzPTksZ3M9MTMsX3M9OTEsdnM9OTMseXM9NDAsYnM9NDEseHM9MTIzLFNzPTEyNSxDcz01OSx3cz00MixUcz01OCxFcz02NCxEcz0vW1x0XG5cZlxyICIjJygpLztbXFxcXXt9XS9nLE9zPS9bXHRcblxmXHIgISIjJygpOjtAW1xcXF17fV18XC8oPz1cKikvZyxrcz0vLltcclxuIicoL1xcXS8sQXM9L1tcZGEtZl0vaSxqcz1abyxNcz1jbGFzcyBleHRlbmRzIGpze2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMudHlwZT1gYXRydWxlYH1hcHBlbmQoLi4uZSl7cmV0dXJuIHRoaXMucHJveHlPZi5ub2Rlc3x8KHRoaXMubm9kZXM9W10pLHN1cGVyLmFwcGVuZCguLi5lKX1wcmVwZW5kKC4uLmUpe3JldHVybiB0aGlzLnByb3h5T2Yubm9kZXN8fCh0aGlzLm5vZGVzPVtdKSxzdXBlci5wcmVwZW5kKC4uLmUpfX0sTnM9TXM7TXMuZGVmYXVsdD1Ncyxqcy5yZWdpc3RlckF0UnVsZShNcyk7dmFyIFBzLEZzLElzPVpvLExzPWNsYXNzIGV4dGVuZHMgSXN7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy50eXBlPWByb290YCx0aGlzLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSl9bm9ybWFsaXplKGUsdCxuKXtsZXQgcj1zdXBlci5ub3JtYWxpemUoZSk7aWYodCl7aWYobj09PWBwcmVwZW5kYCl0aGlzLm5vZGVzLmxlbmd0aD4xP3QucmF3cy5iZWZvcmU9dGhpcy5ub2Rlc1sxXS5yYXdzLmJlZm9yZTpkZWxldGUgdC5yYXdzLmJlZm9yZTtlbHNlIGlmKHRoaXMuZmlyc3QhPT10KWZvcihsZXQgZSBvZiByKWUucmF3cy5iZWZvcmU9dC5yYXdzLmJlZm9yZX1yZXR1cm4gcn1yZW1vdmVDaGlsZChlLHQpe2xldCBuPXRoaXMuaW5kZXgoZSk7cmV0dXJuIXQmJm49PT0wJiZ0aGlzLm5vZGVzLmxlbmd0aD4xJiYodGhpcy5ub2Rlc1sxXS5yYXdzLmJlZm9yZT10aGlzLm5vZGVzW25dLnJhd3MuYmVmb3JlKSxzdXBlci5yZW1vdmVDaGlsZChlKX10b1Jlc3VsdChlPXt9KXtyZXR1cm4gbmV3IFBzKG5ldyBGcyx0aGlzLGUpLnN0cmluZ2lmeSgpfX07THMucmVnaXN0ZXJMYXp5UmVzdWx0PWU9PntQcz1lfSxMcy5yZWdpc3RlclByb2Nlc3Nvcj1lPT57RnM9ZX07dmFyIFJzPUxzO0xzLmRlZmF1bHQ9THMsSXMucmVnaXN0ZXJSb290KExzKTt2YXIgenM9e2NvbW1hOmU9PnpzLnNwbGl0KGUsW2AsYF0sITApLHNwYWNlOmU9PnpzLnNwbGl0KGUsW2AgYCxgCmAsYAlgXSksc3BsaXQoZSx0LG4pe2xldCByPVtdLGk9YGAsYT0hMSxvPTAscz0hMSxjPWBgLGw9ITE7Zm9yKGxldCBuIG9mIGUpbD9sPSExOm49PT1gXFxgP2w9ITA6cz9uPT09YyYmKHM9ITEpOm49PT1gImB8fG49PT1gJ2A/KHM9ITAsYz1uKTpuPT09YChgP28rPTE6bj09PWApYD9vPjAmJi0tbzpvPT09MCYmdC5pbmNsdWRlcyhuKSYmKGE9ITApLGE/KGkhPT1gYCYmci5wdXNoKGkudHJpbSgpKSxpPWBgLGE9ITEpOmkrPW47cmV0dXJuKG58fGkhPT1gYCkmJnIucHVzaChpLnRyaW0oKSkscn19LEJzPXpzO3pzLmRlZmF1bHQ9enM7dmFyIFZzPVpvLEhzPUJzLFVzPWNsYXNzIGV4dGVuZHMgVnN7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy50eXBlPWBydWxlYCx0aGlzLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSl9Z2V0IHNlbGVjdG9ycygpe3JldHVybiBIcy5jb21tYSh0aGlzLnNlbGVjdG9yKX1zZXQgc2VsZWN0b3JzKGUpe2xldCB0PXRoaXMuc2VsZWN0b3I/dGhpcy5zZWxlY3Rvci5tYXRjaCgvLFxzKi8pOm51bGwsbj10P3RbMF06YCxgK3RoaXMucmF3KGBiZXR3ZWVuYCxgYmVmb3JlT3BlbmApO3RoaXMuc2VsZWN0b3I9ZS5qb2luKG4pfX0sV3M9VXM7VXMuZGVmYXVsdD1VcyxWcy5yZWdpc3RlclJ1bGUoVXMpO3ZhciBHcz0kYSxLcz1mdW5jdGlvbihlLHQ9e30pe2xldCBuLHIsaSxhLG8scyxjLGwsdSxkLGY9ZS5jc3MudmFsdWVPZigpLHA9dC5pZ25vcmVFcnJvcnMsbT1mLmxlbmd0aCxoPTAsZz1bXSxfPVtdO2Z1bmN0aW9uIHYodCl7dGhyb3cgZS5lcnJvcihgVW5jbG9zZWQgYCt0LGgpfXJldHVybntiYWNrOmZ1bmN0aW9uKGUpe18ucHVzaChlKX0sZW5kT2ZGaWxlOmZ1bmN0aW9uKCl7cmV0dXJuIF8ubGVuZ3RoPT09MCYmaD49bX0sbmV4dFRva2VuOmZ1bmN0aW9uKGUpe2lmKF8ubGVuZ3RoKXJldHVybiBfLnBvcCgpO2lmKGg+PW0pcmV0dXJuO2xldCB0PSEhZSYmZS5pZ25vcmVVbmNsb3NlZDtzd2l0Y2gobj1mLmNoYXJDb2RlQXQoaCksbil7Y2FzZSBmczpjYXNlIHBzOmNhc2UgaHM6Y2FzZSBnczpjYXNlIG1zOnI9aDtkbyByKz0xLG49Zi5jaGFyQ29kZUF0KHIpO3doaWxlKG49PT1wc3x8bj09PWZzfHxuPT09aHN8fG49PT1nc3x8bj09PW1zKTtkPVtgc3BhY2VgLGYuc2xpY2UoaCxyKV0saD1yLTE7YnJlYWs7Y2FzZSBfczpjYXNlIHZzOmNhc2UgeHM6Y2FzZSBTczpjYXNlIFRzOmNhc2UgQ3M6Y2FzZSBiczp7bGV0IGU9U3RyaW5nLmZyb21DaGFyQ29kZShuKTtkPVtlLGUsaF07YnJlYWt9Y2FzZSB5czppZihsPWcubGVuZ3RoP2cucG9wKClbMV06YGAsdT1mLmNoYXJDb2RlQXQoaCsxKSxsPT09YHVybGAmJnUhPT1jcyYmdSE9PWxzJiZ1IT09cHMmJnUhPT1mcyYmdSE9PWhzJiZ1IT09bXMmJnUhPT1ncyl7cj1oO2Rve2lmKHM9ITEscj1mLmluZGV4T2YoYClgLHIrMSkscj09PS0xKXtpZihwfHx0KXtyPWg7YnJlYWt9dihgYnJhY2tldGApfWZvcihjPXI7Zi5jaGFyQ29kZUF0KGMtMSk9PT11czspLS1jLHM9IXN9d2hpbGUocyk7ZD1bYGJyYWNrZXRzYCxmLnNsaWNlKGgscisxKSxoLHJdLGg9cn1lbHNlIHI9Zi5pbmRleE9mKGApYCxoKzEpLGE9Zi5zbGljZShoLHIrMSkscj09PS0xfHxrcy50ZXN0KGEpP2Q9W2AoYCxgKGAsaF06KGQ9W2BicmFja2V0c2AsYSxoLHJdLGg9cik7YnJlYWs7Y2FzZSBjczpjYXNlIGxzOmk9bj09PWNzP2AnYDpgImAscj1oO2Rve2lmKHM9ITEscj1mLmluZGV4T2YoaSxyKzEpLHI9PT0tMSl7aWYocHx8dCl7cj1oKzE7YnJlYWt9dihgc3RyaW5nYCl9Zm9yKGM9cjtmLmNoYXJDb2RlQXQoYy0xKT09PXVzOyktLWMscz0hc313aGlsZShzKTtkPVtgc3RyaW5nYCxmLnNsaWNlKGgscisxKSxoLHJdLGg9cjticmVhaztjYXNlIEVzOkRzLmxhc3RJbmRleD1oKzEsRHMudGVzdChmKSxyPURzLmxhc3RJbmRleD09PTA/Zi5sZW5ndGgtMTpEcy5sYXN0SW5kZXgtMixkPVtgYXQtd29yZGAsZi5zbGljZShoLHIrMSksaCxyXSxoPXI7YnJlYWs7Y2FzZSB1czpmb3Iocj1oLG89ITA7Zi5jaGFyQ29kZUF0KHIrMSk9PT11czspcis9MSxvPSFvO2lmKG49Zi5jaGFyQ29kZUF0KHIrMSksbyYmbiE9PWRzJiZuIT09cHMmJm4hPT1mcyYmbiE9PWhzJiZuIT09Z3MmJm4hPT1tcyYmKHIrPTEsQXMudGVzdChmLmNoYXJBdChyKSkpKXtmb3IoO0FzLnRlc3QoZi5jaGFyQXQocisxKSk7KXIrPTE7Zi5jaGFyQ29kZUF0KHIrMSk9PT1wcyYmKHIrPTEpfWQ9W2B3b3JkYCxmLnNsaWNlKGgscisxKSxoLHJdLGg9cjticmVhaztkZWZhdWx0Om49PT1kcyYmZi5jaGFyQ29kZUF0KGgrMSk9PT13cz8ocj1mLmluZGV4T2YoYCovYCxoKzIpKzEscj09PTAmJihwfHx0P3I9Zi5sZW5ndGg6dihgY29tbWVudGApKSxkPVtgY29tbWVudGAsZi5zbGljZShoLHIrMSksaCxyXSxoPXIpOihPcy5sYXN0SW5kZXg9aCsxLE9zLnRlc3QoZikscj1Pcy5sYXN0SW5kZXg9PT0wP2YubGVuZ3RoLTE6T3MubGFzdEluZGV4LTIsZD1bYHdvcmRgLGYuc2xpY2UoaCxyKzEpLGgscl0sZy5wdXNoKGQpLGg9cil9cmV0dXJuIGgrKyxkfSxwb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBofX19LHFzPVJvLEpzPU5zLFlzPVJzLFhzPVdzLFpzPXtlbXB0eTohMCxzcGFjZTohMH0sUXM9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5pbnB1dD1lLHRoaXMucm9vdD1uZXcgWXMsdGhpcy5jdXJyZW50PXRoaXMucm9vdCx0aGlzLnNwYWNlcz1gYCx0aGlzLnNlbWljb2xvbj0hMSx0aGlzLmNyZWF0ZVRva2VuaXplcigpLHRoaXMucm9vdC5zb3VyY2U9e2lucHV0OmUsc3RhcnQ6e2NvbHVtbjoxLGxpbmU6MSxvZmZzZXQ6MH19fWF0cnVsZShlKXtsZXQgdCxuLHIsaT1uZXcgSnM7aS5uYW1lPWVbMV0uc2xpY2UoMSksaS5uYW1lPT09YGAmJnRoaXMudW5uYW1lZEF0cnVsZShpLGUpLHRoaXMuaW5pdChpLGVbMl0pO2xldCBhPSExLG89ITEscz1bXSxjPVtdO2Zvcig7IXRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpOyl7aWYodD0oZT10aGlzLnRva2VuaXplci5uZXh0VG9rZW4oKSlbMF0sdD09PWAoYHx8dD09PWBbYD9jLnB1c2godD09PWAoYD9gKWA6YF1gKTp0PT09YHtgJiZjLmxlbmd0aD4wP2MucHVzaChgfWApOnQ9PT1jW2MubGVuZ3RoLTFdJiZjLnBvcCgpLGMubGVuZ3RoPT09MCl7aWYodD09PWA7YCl7aS5zb3VyY2UuZW5kPXRoaXMuZ2V0UG9zaXRpb24oZVsyXSksaS5zb3VyY2UuZW5kLm9mZnNldCsrLHRoaXMuc2VtaWNvbG9uPSEwO2JyZWFrfWlmKHQ9PT1ge2Ape289ITA7YnJlYWt9aWYodD09PWB9YCl7aWYocy5sZW5ndGg+MCl7Zm9yKHI9cy5sZW5ndGgtMSxuPXNbcl07biYmblswXT09PWBzcGFjZWA7KW49c1stLXJdO24mJihpLnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihuWzNdfHxuWzJdKSxpLnNvdXJjZS5lbmQub2Zmc2V0KyspfXRoaXMuZW5kKGUpO2JyZWFrfXMucHVzaChlKX1lbHNlIHMucHVzaChlKTtpZih0aGlzLnRva2VuaXplci5lbmRPZkZpbGUoKSl7YT0hMDticmVha319aS5yYXdzLmJldHdlZW49dGhpcy5zcGFjZXNBbmRDb21tZW50c0Zyb21FbmQocykscy5sZW5ndGg/KGkucmF3cy5hZnRlck5hbWU9dGhpcy5zcGFjZXNBbmRDb21tZW50c0Zyb21TdGFydChzKSx0aGlzLnJhdyhpLGBwYXJhbXNgLHMpLGEmJihlPXNbcy5sZW5ndGgtMV0saS5zb3VyY2UuZW5kPXRoaXMuZ2V0UG9zaXRpb24oZVszXXx8ZVsyXSksaS5zb3VyY2UuZW5kLm9mZnNldCsrLHRoaXMuc3BhY2VzPWkucmF3cy5iZXR3ZWVuLGkucmF3cy5iZXR3ZWVuPWBgKSk6KGkucmF3cy5hZnRlck5hbWU9YGAsaS5wYXJhbXM9YGApLG8mJihpLm5vZGVzPVtdLHRoaXMuY3VycmVudD1pKX1jaGVja01pc3NlZFNlbWljb2xvbihlKXtsZXQgdD10aGlzLmNvbG9uKGUpO2lmKHQ9PT0hMSlyZXR1cm47bGV0IG4scj0wO2ZvcihsZXQgaT10LTE7aT49MCYmKG49ZVtpXSxuWzBdPT09YHNwYWNlYHx8KHIrPTEsciE9PTIpKTtpLS0pO3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoYE1pc3NlZCBzZW1pY29sb25gLG5bMF09PT1gd29yZGA/blszXSsxOm5bMl0pfWNvbG9uKGUpe2xldCB0LG4scixpPTA7Zm9yKGxldFthLG9db2YgZS5lbnRyaWVzKCkpe2lmKHQ9byxuPXRbMF0sbj09PWAoYCYmKGkrPTEpLG49PT1gKWAmJi0taSxpPT09MCYmbj09PWA6YCl7aWYocil7aWYoclswXT09PWB3b3JkYCYmclsxXT09PWBwcm9naWRgKWNvbnRpbnVlO3JldHVybiBhfXRoaXMuZG91YmxlQ29sb24odCl9cj10fXJldHVybiExfWNvbW1lbnQoZSl7bGV0IHQ9bmV3IHFzO3RoaXMuaW5pdCh0LGVbMl0pLHQuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbM118fGVbMl0pLHQuc291cmNlLmVuZC5vZmZzZXQrKztsZXQgbj1lWzFdLnNsaWNlKDIsLTIpO2lmKC9eXHMqJC8udGVzdChuKSl0LnRleHQ9YGAsdC5yYXdzLmxlZnQ9bix0LnJhd3MucmlnaHQ9YGA7ZWxzZXtsZXQgZT1uLm1hdGNoKC9eKFxzKikoW15dKlxTKShccyopJC8pO3QudGV4dD1lWzJdLHQucmF3cy5sZWZ0PWVbMV0sdC5yYXdzLnJpZ2h0PWVbM119fWNyZWF0ZVRva2VuaXplcigpe3RoaXMudG9rZW5pemVyPUtzKHRoaXMuaW5wdXQpfWRlY2woZSx0KXtsZXQgbj1uZXcgR3M7dGhpcy5pbml0KG4sZVswXVsyXSk7bGV0IHIsaT1lW2UubGVuZ3RoLTFdO2ZvcihpWzBdPT09YDtgJiYodGhpcy5zZW1pY29sb249ITAsZS5wb3AoKSksbi5zb3VyY2UuZW5kPXRoaXMuZ2V0UG9zaXRpb24oaVszXXx8aVsyXXx8ZnVuY3Rpb24oZSl7Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBuPWVbdF0scj1uWzNdfHxuWzJdO2lmKHIpcmV0dXJuIHJ9fShlKSksbi5zb3VyY2UuZW5kLm9mZnNldCsrO2VbMF1bMF0hPT1gd29yZGA7KWUubGVuZ3RoPT09MSYmdGhpcy51bmtub3duV29yZChlKSxuLnJhd3MuYmVmb3JlKz1lLnNoaWZ0KClbMV07Zm9yKG4uc291cmNlLnN0YXJ0PXRoaXMuZ2V0UG9zaXRpb24oZVswXVsyXSksbi5wcm9wPWBgO2UubGVuZ3RoOyl7bGV0IHQ9ZVswXVswXTtpZih0PT09YDpgfHx0PT09YHNwYWNlYHx8dD09PWBjb21tZW50YClicmVhaztuLnByb3ArPWUuc2hpZnQoKVsxXX1mb3Iobi5yYXdzLmJldHdlZW49YGA7ZS5sZW5ndGg7KXtpZihyPWUuc2hpZnQoKSxyWzBdPT09YDpgKXtuLnJhd3MuYmV0d2Vlbis9clsxXTticmVha31yWzBdPT09YHdvcmRgJiYvXHcvLnRlc3QoclsxXSkmJnRoaXMudW5rbm93bldvcmQoW3JdKSxuLnJhd3MuYmV0d2Vlbis9clsxXX1uLnByb3BbMF0hPT1gX2AmJm4ucHJvcFswXSE9PWAqYHx8KG4ucmF3cy5iZWZvcmUrPW4ucHJvcFswXSxuLnByb3A9bi5wcm9wLnNsaWNlKDEpKTtsZXQgYSxvPVtdO2Zvcig7ZS5sZW5ndGgmJihhPWVbMF1bMF0sYT09PWBzcGFjZWB8fGE9PT1gY29tbWVudGApOylvLnB1c2goZS5zaGlmdCgpKTt0aGlzLnByZWNoZWNrTWlzc2VkU2VtaWNvbG9uKGUpO2ZvcihsZXQgdD1lLmxlbmd0aC0xO3Q+PTA7dC0tKXtpZihyPWVbdF0sclsxXS50b0xvd2VyQ2FzZSgpPT09YCFpbXBvcnRhbnRgKXtuLmltcG9ydGFudD0hMDtsZXQgcj10aGlzLnN0cmluZ0Zyb20oZSx0KTtyPXRoaXMuc3BhY2VzRnJvbUVuZChlKStyLHIhPT1gICFpbXBvcnRhbnRgJiYobi5yYXdzLmltcG9ydGFudD1yKTticmVha31pZihyWzFdLnRvTG93ZXJDYXNlKCk9PT1gaW1wb3J0YW50YCl7bGV0IHI9ZS5zbGljZSgwKSxpPWBgO2ZvcihsZXQgZT10O2U+MDtlLS0pe2xldCB0PXJbZV1bMF07aWYoaS50cmltKCkuaW5kZXhPZihgIWApPT09MCYmdCE9PWBzcGFjZWApYnJlYWs7aT1yLnBvcCgpWzFdK2l9aS50cmltKCkuaW5kZXhPZihgIWApPT09MCYmKG4uaW1wb3J0YW50PSEwLG4ucmF3cy5pbXBvcnRhbnQ9aSxlPXIpfWlmKHJbMF0hPT1gc3BhY2VgJiZyWzBdIT09YGNvbW1lbnRgKWJyZWFrfWUuc29tZShlPT5lWzBdIT09YHNwYWNlYCYmZVswXSE9PWBjb21tZW50YCkmJihuLnJhd3MuYmV0d2Vlbis9by5tYXAoZT0+ZVsxXSkuam9pbihgYCksbz1bXSksdGhpcy5yYXcobixgdmFsdWVgLG8uY29uY2F0KGUpLHQpLG4udmFsdWUuaW5jbHVkZXMoYDpgKSYmIXQmJnRoaXMuY2hlY2tNaXNzZWRTZW1pY29sb24oZSl9ZG91YmxlQ29sb24oZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcihgRG91YmxlIGNvbG9uYCx7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXStlWzFdLmxlbmd0aH0pfWVtcHR5UnVsZShlKXtsZXQgdD1uZXcgWHM7dGhpcy5pbml0KHQsZVsyXSksdC5zZWxlY3Rvcj1gYCx0LnJhd3MuYmV0d2Vlbj1gYCx0aGlzLmN1cnJlbnQ9dH1lbmQoZSl7dGhpcy5jdXJyZW50Lm5vZGVzJiZ0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoJiYodGhpcy5jdXJyZW50LnJhd3Muc2VtaWNvbG9uPXRoaXMuc2VtaWNvbG9uKSx0aGlzLnNlbWljb2xvbj0hMSx0aGlzLmN1cnJlbnQucmF3cy5hZnRlcj0odGhpcy5jdXJyZW50LnJhd3MuYWZ0ZXJ8fGBgKSt0aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz1gYCx0aGlzLmN1cnJlbnQucGFyZW50Pyh0aGlzLmN1cnJlbnQuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbMl0pLHRoaXMuY3VycmVudC5zb3VyY2UuZW5kLm9mZnNldCsrLHRoaXMuY3VycmVudD10aGlzLmN1cnJlbnQucGFyZW50KTp0aGlzLnVuZXhwZWN0ZWRDbG9zZShlKX1lbmRGaWxlKCl7dGhpcy5jdXJyZW50LnBhcmVudCYmdGhpcy51bmNsb3NlZEJsb2NrKCksdGhpcy5jdXJyZW50Lm5vZGVzJiZ0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoJiYodGhpcy5jdXJyZW50LnJhd3Muc2VtaWNvbG9uPXRoaXMuc2VtaWNvbG9uKSx0aGlzLmN1cnJlbnQucmF3cy5hZnRlcj0odGhpcy5jdXJyZW50LnJhd3MuYWZ0ZXJ8fGBgKSt0aGlzLnNwYWNlcyx0aGlzLnJvb3Quc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKHRoaXMudG9rZW5pemVyLnBvc2l0aW9uKCkpfWZyZWVTZW1pY29sb24oZSl7aWYodGhpcy5zcGFjZXMrPWVbMV0sdGhpcy5jdXJyZW50Lm5vZGVzKXtsZXQgZT10aGlzLmN1cnJlbnQubm9kZXNbdGhpcy5jdXJyZW50Lm5vZGVzLmxlbmd0aC0xXTtlJiZlLnR5cGU9PT1gcnVsZWAmJiFlLnJhd3Mub3duU2VtaWNvbG9uJiYoZS5yYXdzLm93blNlbWljb2xvbj10aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz1gYCl9fWdldFBvc2l0aW9uKGUpe2xldCB0PXRoaXMuaW5wdXQuZnJvbU9mZnNldChlKTtyZXR1cm57Y29sdW1uOnQuY29sLGxpbmU6dC5saW5lLG9mZnNldDplfX1pbml0KGUsdCl7dGhpcy5jdXJyZW50LnB1c2goZSksZS5zb3VyY2U9e2lucHV0OnRoaXMuaW5wdXQsc3RhcnQ6dGhpcy5nZXRQb3NpdGlvbih0KX0sZS5yYXdzLmJlZm9yZT10aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz1gYCxlLnR5cGUhPT1gY29tbWVudGAmJih0aGlzLnNlbWljb2xvbj0hMSl9b3RoZXIoZSl7bGV0IHQ9ITEsbj1udWxsLHI9ITEsaT1udWxsLGE9W10sbz1lWzFdLnN0YXJ0c1dpdGgoYC0tYCkscz1bXSxjPWU7Zm9yKDtjOyl7aWYobj1jWzBdLHMucHVzaChjKSxuPT09YChgfHxuPT09YFtgKWl8fChpPWMpLGEucHVzaChuPT09YChgP2ApYDpgXWApO2Vsc2UgaWYobyYmciYmbj09PWB7YClpfHwoaT1jKSxhLnB1c2goYH1gKTtlbHNlIGlmKGEubGVuZ3RoPT09MCl7aWYobj09PWA7YCl7aWYocilyZXR1cm4gdm9pZCB0aGlzLmRlY2wocyxvKTticmVha31pZihuPT09YHtgKXJldHVybiB2b2lkIHRoaXMucnVsZShzKTtpZihuPT09YH1gKXt0aGlzLnRva2VuaXplci5iYWNrKHMucG9wKCkpLHQ9ITA7YnJlYWt9bj09PWA6YCYmKHI9ITApfWVsc2Ugbj09PWFbYS5sZW5ndGgtMV0mJihhLnBvcCgpLGEubGVuZ3RoPT09MCYmKGk9bnVsbCkpO2M9dGhpcy50b2tlbml6ZXIubmV4dFRva2VuKCl9aWYodGhpcy50b2tlbml6ZXIuZW5kT2ZGaWxlKCkmJih0PSEwKSxhLmxlbmd0aD4wJiZ0aGlzLnVuY2xvc2VkQnJhY2tldChpKSx0JiZyKXtpZighbylmb3IoO3MubGVuZ3RoJiYoYz1zW3MubGVuZ3RoLTFdWzBdLGM9PT1gc3BhY2VgfHxjPT09YGNvbW1lbnRgKTspdGhpcy50b2tlbml6ZXIuYmFjayhzLnBvcCgpKTt0aGlzLmRlY2wocyxvKX1lbHNlIHRoaXMudW5rbm93bldvcmQocyl9cGFyc2UoKXtsZXQgZTtmb3IoOyF0aGlzLnRva2VuaXplci5lbmRPZkZpbGUoKTspc3dpdGNoKGU9dGhpcy50b2tlbml6ZXIubmV4dFRva2VuKCksZVswXSl7Y2FzZWBzcGFjZWA6dGhpcy5zcGFjZXMrPWVbMV07YnJlYWs7Y2FzZWA7YDp0aGlzLmZyZWVTZW1pY29sb24oZSk7YnJlYWs7Y2FzZWB9YDp0aGlzLmVuZChlKTticmVhaztjYXNlYGNvbW1lbnRgOnRoaXMuY29tbWVudChlKTticmVhaztjYXNlYGF0LXdvcmRgOnRoaXMuYXRydWxlKGUpO2JyZWFrO2Nhc2Vge2A6dGhpcy5lbXB0eVJ1bGUoZSk7YnJlYWs7ZGVmYXVsdDp0aGlzLm90aGVyKGUpfXRoaXMuZW5kRmlsZSgpfXByZWNoZWNrTWlzc2VkU2VtaWNvbG9uKCl7fXJhdyhlLHQsbixyKXtsZXQgaSxhLG8scyxjPW4ubGVuZ3RoLGw9YGAsdT0hMDtmb3IobGV0IGU9MDtlPGM7ZSs9MSlpPW5bZV0sYT1pWzBdLGEhPT1gc3BhY2VgfHxlIT09Yy0xfHxyP2E9PT1gY29tbWVudGA/KHM9bltlLTFdP25bZS0xXVswXTpgZW1wdHlgLG89bltlKzFdP25bZSsxXVswXTpgZW1wdHlgLFpzW3NdfHxac1tvXXx8bC5zbGljZSgtMSk9PT1gLGA/dT0hMTpsKz1pWzFdKTpsKz1pWzFdOnU9ITE7aWYoIXUpe2xldCByPW4ucmVkdWNlKChlLHQpPT5lK3RbMV0sYGApO2UucmF3c1t0XT17cmF3OnIsdmFsdWU6bH19ZVt0XT1sfXJ1bGUoZSl7ZS5wb3AoKTtsZXQgdD1uZXcgWHM7dGhpcy5pbml0KHQsZVswXVsyXSksdC5yYXdzLmJldHdlZW49dGhpcy5zcGFjZXNBbmRDb21tZW50c0Zyb21FbmQoZSksdGhpcy5yYXcodCxgc2VsZWN0b3JgLGUpLHRoaXMuY3VycmVudD10fXNwYWNlc0FuZENvbW1lbnRzRnJvbUVuZChlKXtsZXQgdCxuPWBgO2Zvcig7ZS5sZW5ndGgmJih0PWVbZS5sZW5ndGgtMV1bMF0sdD09PWBzcGFjZWB8fHQ9PT1gY29tbWVudGApOyluPWUucG9wKClbMV0rbjtyZXR1cm4gbn1zcGFjZXNBbmRDb21tZW50c0Zyb21TdGFydChlKXtsZXQgdCxuPWBgO2Zvcig7ZS5sZW5ndGgmJih0PWVbMF1bMF0sdD09PWBzcGFjZWB8fHQ9PT1gY29tbWVudGApOyluKz1lLnNoaWZ0KClbMV07cmV0dXJuIG59c3BhY2VzRnJvbUVuZChlKXtsZXQgdCxuPWBgO2Zvcig7ZS5sZW5ndGgmJih0PWVbZS5sZW5ndGgtMV1bMF0sdD09PWBzcGFjZWApOyluPWUucG9wKClbMV0rbjtyZXR1cm4gbn1zdHJpbmdGcm9tKGUsdCl7bGV0IG49YGA7Zm9yKGxldCByPXQ7cjxlLmxlbmd0aDtyKyspbis9ZVtyXVsxXTtyZXR1cm4gZS5zcGxpY2UodCxlLmxlbmd0aC10KSxufXVuY2xvc2VkQmxvY2soKXtsZXQgZT10aGlzLmN1cnJlbnQuc291cmNlLnN0YXJ0O3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoYFVuY2xvc2VkIGJsb2NrYCxlLmxpbmUsZS5jb2x1bW4pfXVuY2xvc2VkQnJhY2tldChlKXt0aHJvdyB0aGlzLmlucHV0LmVycm9yKGBVbmNsb3NlZCBicmFja2V0YCx7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXSsxfSl9dW5leHBlY3RlZENsb3NlKGUpe3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoYFVuZXhwZWN0ZWQgfWAse29mZnNldDplWzJdfSx7b2Zmc2V0OmVbMl0rMX0pfXVua25vd25Xb3JkKGUpe3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoYFVua25vd24gd29yZGAse29mZnNldDplWzBdWzJdfSx7b2Zmc2V0OmVbMF1bMl0rZVswXVsxXS5sZW5ndGh9KX11bm5hbWVkQXRydWxlKGUsdCl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcihgQXQtcnVsZSB3aXRob3V0IG5hbWVgLHtvZmZzZXQ6dFsyXX0se29mZnNldDp0WzJdK3RbMV0ubGVuZ3RofSl9fSwkcz1abyxlYz1Rcyx0Yz13bztmdW5jdGlvbiBuYyhlLHQpe2xldCBuPW5ldyBlYyhuZXcgdGMoZSx0KSk7dHJ5e24ucGFyc2UoKX1jYXRjaChlKXt0aHJvdyBlfXJldHVybiBuLnJvb3R9dmFyIHJjPW5jO25jLmRlZmF1bHQ9bmMsJHMucmVnaXN0ZXJQYXJzZShuYyk7dmFye2lzQ2xlYW46aWMsbXk6YWN9PUlhLG9jPUZvLHNjPUhhLGNjPVpvLGxjPW5zLHVjPXNzLGRjPXJjLGZjPVJzLHBjPXthdHJ1bGU6YEF0UnVsZWAsY29tbWVudDpgQ29tbWVudGAsZGVjbDpgRGVjbGFyYXRpb25gLGRvY3VtZW50OmBEb2N1bWVudGAscm9vdDpgUm9vdGAscnVsZTpgUnVsZWB9LG1jPXtBdFJ1bGU6ITAsQXRSdWxlRXhpdDohMCxDb21tZW50OiEwLENvbW1lbnRFeGl0OiEwLERlY2xhcmF0aW9uOiEwLERlY2xhcmF0aW9uRXhpdDohMCxEb2N1bWVudDohMCxEb2N1bWVudEV4aXQ6ITAsT25jZTohMCxPbmNlRXhpdDohMCxwb3N0Y3NzUGx1Z2luOiEwLHByZXBhcmU6ITAsUm9vdDohMCxSb290RXhpdDohMCxSdWxlOiEwLFJ1bGVFeGl0OiEwfSxoYz17T25jZTohMCxwb3N0Y3NzUGx1Z2luOiEwLHByZXBhcmU6ITB9O2Z1bmN0aW9uIGdjKGUpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJnR5cGVvZiBlLnRoZW49PWBmdW5jdGlvbmB9ZnVuY3Rpb24gX2MoZSl7bGV0IHQ9ITEsbj1wY1tlLnR5cGVdO3JldHVybiBlLnR5cGU9PT1gZGVjbGA/dD1lLnByb3AudG9Mb3dlckNhc2UoKTplLnR5cGU9PT1gYXRydWxlYCYmKHQ9ZS5uYW1lLnRvTG93ZXJDYXNlKCkpLHQmJmUuYXBwZW5kP1tuLG4rYC1gK3QsMCxuK2BFeGl0YCxuK2BFeGl0LWArdF06dD9bbixuK2AtYCt0LG4rYEV4aXRgLG4rYEV4aXQtYCt0XTplLmFwcGVuZD9bbiwwLG4rYEV4aXRgXTpbbixuK2BFeGl0YF19ZnVuY3Rpb24gdmMoZSl7bGV0IHQ7cmV0dXJuIHQ9ZS50eXBlPT09YGRvY3VtZW50YD9bYERvY3VtZW50YCwwLGBEb2N1bWVudEV4aXRgXTplLnR5cGU9PT1gcm9vdGA/W2BSb290YCwwLGBSb290RXhpdGBdOl9jKGUpLHtldmVudEluZGV4OjAsZXZlbnRzOnQsaXRlcmF0b3I6MCxub2RlOmUsdmlzaXRvckluZGV4OjAsdmlzaXRvcnM6W119fWZ1bmN0aW9uIHljKGUpe3JldHVybiBlW2ljXT0hMSxlLm5vZGVzJiZlLm5vZGVzLmZvckVhY2goZT0+eWMoZSkpLGV9dmFyIGJjPXt9LHhjPWNsYXNzIGV7Y29uc3RydWN0b3IodCxuLHIpe2xldCBpO2lmKHRoaXMuc3RyaW5naWZpZWQ9ITEsdGhpcy5wcm9jZXNzZWQ9ITEsdHlwZW9mIG4hPWBvYmplY3RgfHwhbnx8bi50eXBlIT09YHJvb3RgJiZuLnR5cGUhPT1gZG9jdW1lbnRgKWlmKG4gaW5zdGFuY2VvZiBlfHxuIGluc3RhbmNlb2YgdWMpaT15YyhuLnJvb3QpLG4ubWFwJiYoci5tYXA9PT12b2lkIDAmJihyLm1hcD17fSksci5tYXAuaW5saW5lfHwoci5tYXAuaW5saW5lPSExKSxyLm1hcC5wcmV2PW4ubWFwKTtlbHNle2xldCBlPWRjO3Iuc3ludGF4JiYoZT1yLnN5bnRheC5wYXJzZSksci5wYXJzZXImJihlPXIucGFyc2VyKSxlLnBhcnNlJiYoZT1lLnBhcnNlKTt0cnl7aT1lKG4scil9Y2F0Y2goZSl7dGhpcy5wcm9jZXNzZWQ9ITAsdGhpcy5lcnJvcj1lfWkmJiFpW2FjXSYmY2MucmVidWlsZChpKX1lbHNlIGk9eWMobik7dGhpcy5yZXN1bHQ9bmV3IHVjKHQsaSxyKSx0aGlzLmhlbHBlcnM9ey4uLmJjLHBvc3Rjc3M6YmMscmVzdWx0OnRoaXMucmVzdWx0fSx0aGlzLnBsdWdpbnM9dGhpcy5wcm9jZXNzb3IucGx1Z2lucy5tYXAoZT0+dHlwZW9mIGU9PWBvYmplY3RgJiZlLnByZXBhcmU/ey4uLmUsLi4uZS5wcmVwYXJlKHRoaXMucmVzdWx0KX06ZSl9YXN5bmMoKXtyZXR1cm4gdGhpcy5lcnJvcj9Qcm9taXNlLnJlamVjdCh0aGlzLmVycm9yKTp0aGlzLnByb2Nlc3NlZD9Qcm9taXNlLnJlc29sdmUodGhpcy5yZXN1bHQpOih0aGlzLnByb2Nlc3Npbmd8fCh0aGlzLnByb2Nlc3Npbmc9dGhpcy5ydW5Bc3luYygpKSx0aGlzLnByb2Nlc3NpbmcpfWNhdGNoKGUpe3JldHVybiB0aGlzLmFzeW5jKCkuY2F0Y2goZSl9ZmluYWxseShlKXtyZXR1cm4gdGhpcy5hc3luYygpLnRoZW4oZSxlKX1nZXRBc3luY0Vycm9yKCl7dGhyb3cgRXJyb3IoYFVzZSBwcm9jZXNzKGNzcykudGhlbihjYikgdG8gd29yayB3aXRoIGFzeW5jIHBsdWdpbnNgKX1oYW5kbGVFcnJvcihlLHQpe2xldCBuPXRoaXMucmVzdWx0Lmxhc3RQbHVnaW47dHJ5e3QmJnQuYWRkVG9FcnJvcihlKSx0aGlzLmVycm9yPWUsZS5uYW1lIT09YENzc1N5bnRheEVycm9yYHx8ZS5wbHVnaW4/bi5wb3N0Y3NzVmVyc2lvbjooZS5wbHVnaW49bi5wb3N0Y3NzUGx1Z2luLGUuc2V0TWVzc2FnZSgpKX1jYXRjaChlKXtjb25zb2xlJiZjb25zb2xlLmVycm9yJiZjb25zb2xlLmVycm9yKGUpfXJldHVybiBlfXByZXBhcmVWaXNpdG9ycygpe3RoaXMubGlzdGVuZXJzPXt9O2xldCBlPShlLHQsbik9Pnt0aGlzLmxpc3RlbmVyc1t0XXx8KHRoaXMubGlzdGVuZXJzW3RdPVtdKSx0aGlzLmxpc3RlbmVyc1t0XS5wdXNoKFtlLG5dKX07Zm9yKGxldCB0IG9mIHRoaXMucGx1Z2lucylpZih0eXBlb2YgdD09YG9iamVjdGApZm9yKGxldCBuIGluIHQpe2lmKCFtY1tuXSYmL15bQS1aXS8udGVzdChuKSl0aHJvdyBFcnJvcihgVW5rbm93biBldmVudCAke259IGluICR7dC5wb3N0Y3NzUGx1Z2lufS4gVHJ5IHRvIHVwZGF0ZSBQb3N0Q1NTICgke3RoaXMucHJvY2Vzc29yLnZlcnNpb259IG5vdykuYCk7aWYoIWhjW25dKWlmKHR5cGVvZiB0W25dPT1gb2JqZWN0YClmb3IobGV0IHIgaW4gdFtuXSllKHQscj09PWAqYD9uOm4rYC1gK3IudG9Mb3dlckNhc2UoKSx0W25dW3JdKTtlbHNlIHR5cGVvZiB0W25dPT1gZnVuY3Rpb25gJiZlKHQsbix0W25dKX10aGlzLmhhc0xpc3RlbmVyPU9iamVjdC5rZXlzKHRoaXMubGlzdGVuZXJzKS5sZW5ndGg+MH1hc3luYyBydW5Bc3luYygpe3RoaXMucGx1Z2luPTA7Zm9yKGxldCBlPTA7ZTx0aGlzLnBsdWdpbnMubGVuZ3RoO2UrKyl7bGV0IHQ9dGhpcy5wbHVnaW5zW2VdLG49dGhpcy5ydW5PblJvb3QodCk7aWYoZ2MobikpdHJ5e2F3YWl0IG59Y2F0Y2goZSl7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihlKX19aWYodGhpcy5wcmVwYXJlVmlzaXRvcnMoKSx0aGlzLmhhc0xpc3RlbmVyKXtsZXQgZT10aGlzLnJlc3VsdC5yb290O2Zvcig7IWVbaWNdOyl7ZVtpY109ITA7bGV0IHQ9W3ZjKGUpXTtmb3IoO3QubGVuZ3RoPjA7KXtsZXQgZT10aGlzLnZpc2l0VGljayh0KTtpZihnYyhlKSl0cnl7YXdhaXQgZX1jYXRjaChlKXtsZXQgbj10W3QubGVuZ3RoLTFdLm5vZGU7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihlLG4pfX19aWYodGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpZm9yKGxldFt0LG5db2YgdGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpe3RoaXMucmVzdWx0Lmxhc3RQbHVnaW49dDt0cnl7aWYoZS50eXBlPT09YGRvY3VtZW50YCl7bGV0IHQ9ZS5ub2Rlcy5tYXAoZT0+bihlLHRoaXMuaGVscGVycykpO2F3YWl0IFByb21pc2UuYWxsKHQpfWVsc2UgYXdhaXQgbihlLHRoaXMuaGVscGVycyl9Y2F0Y2goZSl7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihlKX19fXJldHVybiB0aGlzLnByb2Nlc3NlZD0hMCx0aGlzLnN0cmluZ2lmeSgpfXJ1bk9uUm9vdChlKXt0aGlzLnJlc3VsdC5sYXN0UGx1Z2luPWU7dHJ5e2lmKHR5cGVvZiBlPT1gb2JqZWN0YCYmZS5PbmNlKXtpZih0aGlzLnJlc3VsdC5yb290LnR5cGU9PT1gZG9jdW1lbnRgKXtsZXQgdD10aGlzLnJlc3VsdC5yb290Lm5vZGVzLm1hcCh0PT5lLk9uY2UodCx0aGlzLmhlbHBlcnMpKTtyZXR1cm4gZ2ModFswXSk/UHJvbWlzZS5hbGwodCk6dH1yZXR1cm4gZS5PbmNlKHRoaXMucmVzdWx0LnJvb3QsdGhpcy5oZWxwZXJzKX1pZih0eXBlb2YgZT09YGZ1bmN0aW9uYClyZXR1cm4gZSh0aGlzLnJlc3VsdC5yb290LHRoaXMucmVzdWx0KX1jYXRjaChlKXt0aHJvdyB0aGlzLmhhbmRsZUVycm9yKGUpfX1zdHJpbmdpZnkoKXtpZih0aGlzLmVycm9yKXRocm93IHRoaXMuZXJyb3I7aWYodGhpcy5zdHJpbmdpZmllZClyZXR1cm4gdGhpcy5yZXN1bHQ7dGhpcy5zdHJpbmdpZmllZD0hMCx0aGlzLnN5bmMoKTtsZXQgZT10aGlzLnJlc3VsdC5vcHRzLHQ9c2M7ZS5zeW50YXgmJih0PWUuc3ludGF4LnN0cmluZ2lmeSksZS5zdHJpbmdpZmllciYmKHQ9ZS5zdHJpbmdpZmllciksdC5zdHJpbmdpZnkmJih0PXQuc3RyaW5naWZ5KTtsZXQgbj1uZXcgb2ModCx0aGlzLnJlc3VsdC5yb290LHRoaXMucmVzdWx0Lm9wdHMpLmdlbmVyYXRlKCk7cmV0dXJuIHRoaXMucmVzdWx0LmNzcz1uWzBdLHRoaXMucmVzdWx0Lm1hcD1uWzFdLHRoaXMucmVzdWx0fXN5bmMoKXtpZih0aGlzLmVycm9yKXRocm93IHRoaXMuZXJyb3I7aWYodGhpcy5wcm9jZXNzZWQpcmV0dXJuIHRoaXMucmVzdWx0O2lmKHRoaXMucHJvY2Vzc2VkPSEwLHRoaXMucHJvY2Vzc2luZyl0aHJvdyB0aGlzLmdldEFzeW5jRXJyb3IoKTtmb3IobGV0IGUgb2YgdGhpcy5wbHVnaW5zKWlmKGdjKHRoaXMucnVuT25Sb290KGUpKSl0aHJvdyB0aGlzLmdldEFzeW5jRXJyb3IoKTtpZih0aGlzLnByZXBhcmVWaXNpdG9ycygpLHRoaXMuaGFzTGlzdGVuZXIpe2xldCBlPXRoaXMucmVzdWx0LnJvb3Q7Zm9yKDshZVtpY107KWVbaWNdPSEwLHRoaXMud2Fsa1N5bmMoZSk7aWYodGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpaWYoZS50eXBlPT09YGRvY3VtZW50YClmb3IobGV0IHQgb2YgZS5ub2Rlcyl0aGlzLnZpc2l0U3luYyh0aGlzLmxpc3RlbmVycy5PbmNlRXhpdCx0KTtlbHNlIHRoaXMudmlzaXRTeW5jKHRoaXMubGlzdGVuZXJzLk9uY2VFeGl0LGUpfXJldHVybiB0aGlzLnJlc3VsdH10aGVuKGUsdCl7cmV0dXJuIHRoaXMuYXN5bmMoKS50aGVuKGUsdCl9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5jc3N9dmlzaXRTeW5jKGUsdCl7Zm9yKGxldFtuLHJdb2YgZSl7bGV0IGU7dGhpcy5yZXN1bHQubGFzdFBsdWdpbj1uO3RyeXtlPXIodCx0aGlzLmhlbHBlcnMpfWNhdGNoKGUpe3Rocm93IHRoaXMuaGFuZGxlRXJyb3IoZSx0LnByb3h5T2YpfWlmKHQudHlwZSE9PWByb290YCYmdC50eXBlIT09YGRvY3VtZW50YCYmIXQucGFyZW50KXJldHVybiEwO2lmKGdjKGUpKXRocm93IHRoaXMuZ2V0QXN5bmNFcnJvcigpfX12aXNpdFRpY2soZSl7bGV0IHQ9ZVtlLmxlbmd0aC0xXSx7bm9kZTpuLHZpc2l0b3JzOnJ9PXQ7aWYobi50eXBlIT09YHJvb3RgJiZuLnR5cGUhPT1gZG9jdW1lbnRgJiYhbi5wYXJlbnQpcmV0dXJuIHZvaWQgZS5wb3AoKTtpZihyLmxlbmd0aD4wJiZ0LnZpc2l0b3JJbmRleDxyLmxlbmd0aCl7bGV0W2UsaV09clt0LnZpc2l0b3JJbmRleF07dC52aXNpdG9ySW5kZXgrPTEsdC52aXNpdG9ySW5kZXg9PT1yLmxlbmd0aCYmKHQudmlzaXRvcnM9W10sdC52aXNpdG9ySW5kZXg9MCksdGhpcy5yZXN1bHQubGFzdFBsdWdpbj1lO3RyeXtyZXR1cm4gaShuLnRvUHJveHkoKSx0aGlzLmhlbHBlcnMpfWNhdGNoKGUpe3Rocm93IHRoaXMuaGFuZGxlRXJyb3IoZSxuKX19aWYodC5pdGVyYXRvciE9PTApe2xldCByLGk9dC5pdGVyYXRvcjtmb3IoO3I9bi5ub2Rlc1tuLmluZGV4ZXNbaV1dOylpZihuLmluZGV4ZXNbaV0rPTEsIXJbaWNdKXJldHVybiByW2ljXT0hMCx2b2lkIGUucHVzaCh2YyhyKSk7dC5pdGVyYXRvcj0wLGRlbGV0ZSBuLmluZGV4ZXNbaV19bGV0IGk9dC5ldmVudHM7Zm9yKDt0LmV2ZW50SW5kZXg8aS5sZW5ndGg7KXtsZXQgZT1pW3QuZXZlbnRJbmRleF07aWYodC5ldmVudEluZGV4Kz0xLGU9PT0wKXJldHVybiB2b2lkKG4ubm9kZXMmJm4ubm9kZXMubGVuZ3RoJiYobltpY109ITAsdC5pdGVyYXRvcj1uLmdldEl0ZXJhdG9yKCkpKTtpZih0aGlzLmxpc3RlbmVyc1tlXSlyZXR1cm4gdm9pZCh0LnZpc2l0b3JzPXRoaXMubGlzdGVuZXJzW2VdKX1lLnBvcCgpfXdhbGtTeW5jKGUpe2VbaWNdPSEwO2xldCB0PV9jKGUpO2ZvcihsZXQgbiBvZiB0KWlmKG49PT0wKWUubm9kZXMmJmUuZWFjaChlPT57ZVtpY118fHRoaXMud2Fsa1N5bmMoZSl9KTtlbHNle2xldCB0PXRoaXMubGlzdGVuZXJzW25dO2lmKHQmJnRoaXMudmlzaXRTeW5jKHQsZS50b1Byb3h5KCkpKXJldHVybn19d2FybmluZ3MoKXtyZXR1cm4gdGhpcy5zeW5jKCkud2FybmluZ3MoKX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLnN0cmluZ2lmeSgpLmNvbnRlbnR9Z2V0IGNzcygpe3JldHVybiB0aGlzLnN0cmluZ2lmeSgpLmNzc31nZXQgbWFwKCl7cmV0dXJuIHRoaXMuc3RyaW5naWZ5KCkubWFwfWdldCBtZXNzYWdlcygpe3JldHVybiB0aGlzLnN5bmMoKS5tZXNzYWdlc31nZXQgb3B0cygpe3JldHVybiB0aGlzLnJlc3VsdC5vcHRzfWdldCBwcm9jZXNzb3IoKXtyZXR1cm4gdGhpcy5yZXN1bHQucHJvY2Vzc29yfWdldCByb290KCl7cmV0dXJuIHRoaXMuc3luYygpLnJvb3R9Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm5gTGF6eVJlc3VsdGB9fTt4Yy5yZWdpc3RlclBvc3Rjc3M9ZT0+e2JjPWV9O3ZhciBTYz14Yzt4Yy5kZWZhdWx0PXhjLGZjLnJlZ2lzdGVyTGF6eVJlc3VsdCh4YyksbGMucmVnaXN0ZXJMYXp5UmVzdWx0KHhjKTt2YXIgQ2M9Rm8sd2M9SGEsVGM9cmMsRWM9c3MsRGM9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LG4pe3Q9dC50b1N0cmluZygpLHRoaXMuc3RyaW5naWZpZWQ9ITEsdGhpcy5fcHJvY2Vzc29yPWUsdGhpcy5fY3NzPXQsdGhpcy5fb3B0cz1uLHRoaXMuX21hcD12b2lkIDA7bGV0IHI9d2M7dGhpcy5yZXN1bHQ9bmV3IEVjKHRoaXMuX3Byb2Nlc3Nvcix2b2lkIDAsdGhpcy5fb3B0cyksdGhpcy5yZXN1bHQuY3NzPXQ7bGV0IGk9dGhpcztPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5yZXN1bHQsYHJvb3RgLHtnZXQ6KCk9Pmkucm9vdH0pO2xldCBhPW5ldyBDYyhyLHZvaWQgMCx0aGlzLl9vcHRzLHQpO2lmKGEuaXNNYXAoKSl7bGV0W2UsdF09YS5nZW5lcmF0ZSgpO2UmJih0aGlzLnJlc3VsdC5jc3M9ZSksdCYmKHRoaXMucmVzdWx0Lm1hcD10KX1lbHNlIGEuY2xlYXJBbm5vdGF0aW9uKCksdGhpcy5yZXN1bHQuY3NzPWEuY3NzfWFzeW5jKCl7cmV0dXJuIHRoaXMuZXJyb3I/UHJvbWlzZS5yZWplY3QodGhpcy5lcnJvcik6UHJvbWlzZS5yZXNvbHZlKHRoaXMucmVzdWx0KX1jYXRjaChlKXtyZXR1cm4gdGhpcy5hc3luYygpLmNhdGNoKGUpfWZpbmFsbHkoZSl7cmV0dXJuIHRoaXMuYXN5bmMoKS50aGVuKGUsZSl9c3luYygpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtyZXR1cm4gdGhpcy5yZXN1bHR9dGhlbihlLHQpe3JldHVybiB0aGlzLmFzeW5jKCkudGhlbihlLHQpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX2Nzc313YXJuaW5ncygpe3JldHVybltdfWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMucmVzdWx0LmNzc31nZXQgY3NzKCl7cmV0dXJuIHRoaXMucmVzdWx0LmNzc31nZXQgbWFwKCl7cmV0dXJuIHRoaXMucmVzdWx0Lm1hcH1nZXQgbWVzc2FnZXMoKXtyZXR1cm5bXX1nZXQgb3B0cygpe3JldHVybiB0aGlzLnJlc3VsdC5vcHRzfWdldCBwcm9jZXNzb3IoKXtyZXR1cm4gdGhpcy5yZXN1bHQucHJvY2Vzc29yfWdldCByb290KCl7aWYodGhpcy5fcm9vdClyZXR1cm4gdGhpcy5fcm9vdDtsZXQgZSx0PVRjO3RyeXtlPXQodGhpcy5fY3NzLHRoaXMuX29wdHMpfWNhdGNoKGUpe3RoaXMuZXJyb3I9ZX1pZih0aGlzLmVycm9yKXRocm93IHRoaXMuZXJyb3I7cmV0dXJuIHRoaXMuX3Jvb3Q9ZSxlfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuYE5vV29ya1Jlc3VsdGB9fSxPYz1EYztEYy5kZWZhdWx0PURjO3ZhciBrYz1PYyxBYz1TYyxqYz1ucyxNYz1ScyxOYz1jbGFzc3tjb25zdHJ1Y3RvcihlPVtdKXt0aGlzLnZlcnNpb249YDguNC4zOGAsdGhpcy5wbHVnaW5zPXRoaXMubm9ybWFsaXplKGUpfW5vcm1hbGl6ZShlKXtsZXQgdD1bXTtmb3IobGV0IG4gb2YgZSlpZihuLnBvc3Rjc3M9PT0hMD9uPW4oKTpuLnBvc3Rjc3MmJihuPW4ucG9zdGNzcyksdHlwZW9mIG49PWBvYmplY3RgJiZBcnJheS5pc0FycmF5KG4ucGx1Z2lucykpdD10LmNvbmNhdChuLnBsdWdpbnMpO2Vsc2UgaWYodHlwZW9mIG49PWBvYmplY3RgJiZuLnBvc3Rjc3NQbHVnaW4pdC5wdXNoKG4pO2Vsc2UgaWYodHlwZW9mIG49PWBmdW5jdGlvbmApdC5wdXNoKG4pO2Vsc2UgaWYodHlwZW9mIG4hPWBvYmplY3RgfHwhbi5wYXJzZSYmIW4uc3RyaW5naWZ5KXRocm93IEVycm9yKG4rYCBpcyBub3QgYSBQb3N0Q1NTIHBsdWdpbmApO3JldHVybiB0fXByb2Nlc3MoZSx0PXt9KXtyZXR1cm4gdGhpcy5wbHVnaW5zLmxlbmd0aHx8dC5wYXJzZXJ8fHQuc3RyaW5naWZpZXJ8fHQuc3ludGF4P25ldyBBYyh0aGlzLGUsdCk6bmV3IGtjKHRoaXMsZSx0KX11c2UoZSl7cmV0dXJuIHRoaXMucGx1Z2lucz10aGlzLnBsdWdpbnMuY29uY2F0KHRoaXMubm9ybWFsaXplKFtlXSkpLHRoaXN9fSxQYz1OYztOYy5kZWZhdWx0PU5jLE1jLnJlZ2lzdGVyUHJvY2Vzc29yKE5jKSxqYy5yZWdpc3RlclByb2Nlc3NvcihOYyk7dmFyIEZjPSRhLEljPWNvLExjPVJvLFJjPU5zLHpjPXdvLEJjPVJzLFZjPVdzO2Z1bmN0aW9uIEhjKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZS5tYXAoZT0+SGMoZSkpO2xldHtpbnB1dHM6biwuLi5yfT1lO2lmKG4pe3Q9W107Zm9yKGxldCBlIG9mIG4pe2xldCBuPXsuLi5lLF9fcHJvdG9fXzp6Yy5wcm90b3R5cGV9O24ubWFwJiYobi5tYXA9ey4uLm4ubWFwLF9fcHJvdG9fXzpJYy5wcm90b3R5cGV9KSx0LnB1c2gobil9fWlmKHIubm9kZXMmJihyLm5vZGVzPWUubm9kZXMubWFwKGU9PkhjKGUsdCkpKSxyLnNvdXJjZSl7bGV0e2lucHV0SWQ6ZSwuLi5ufT1yLnNvdXJjZTtyLnNvdXJjZT1uLGUhPW51bGwmJihyLnNvdXJjZS5pbnB1dD10W2VdKX1pZihyLnR5cGU9PT1gcm9vdGApcmV0dXJuIG5ldyBCYyhyKTtpZihyLnR5cGU9PT1gZGVjbGApcmV0dXJuIG5ldyBGYyhyKTtpZihyLnR5cGU9PT1gcnVsZWApcmV0dXJuIG5ldyBWYyhyKTtpZihyLnR5cGU9PT1gY29tbWVudGApcmV0dXJuIG5ldyBMYyhyKTtpZihyLnR5cGU9PT1gYXRydWxlYClyZXR1cm4gbmV3IFJjKHIpO3Rocm93IEVycm9yKGBVbmtub3duIG5vZGUgdHlwZTogYCtlLnR5cGUpfXZhciBVYz1IYztIYy5kZWZhdWx0PUhjO3ZhciBXYz1GYSxHYz0kYSxLYz1TYyxxYz1abyxKYz1QYyxZYz1IYSxYYz1VYyxaYz1ucyxRYz1pcywkYz1SbyxlbD1Ocyx0bD1zcyxubD13byxybD1yYyxpbD1CcyxhbD1XcyxvbD1ScyxzbD1YYTtmdW5jdGlvbiBQKC4uLmUpe3JldHVybiBlLmxlbmd0aD09PTEmJkFycmF5LmlzQXJyYXkoZVswXSkmJihlPWVbMF0pLG5ldyBKYyhlKX1QLnBsdWdpbj1mdW5jdGlvbihlLHQpe2xldCBuLHI9ITE7ZnVuY3Rpb24gaSguLi5uKXtjb25zb2xlJiZjb25zb2xlLndhcm4mJiFyJiYocj0hMCxjb25zb2xlLndhcm4oZStgOiBwb3N0Y3NzLnBsdWdpbiB3YXMgZGVwcmVjYXRlZC4gTWlncmF0aW9uIGd1aWRlOgpodHRwczovL2V2aWxtYXJ0aWFucy5jb20vY2hyb25pY2xlcy9wb3N0Y3NzLTgtcGx1Z2luLW1pZ3JhdGlvbmApLHt9LkxBTkcmJnt9LkxBTkcuc3RhcnRzV2l0aChgY25gKSYmY29uc29sZS53YXJuKGUrYDog6YeM6Z2iIHBvc3Rjc3MucGx1Z2luIOiiq+W8g+eUqC4g6L+B56e75oyH5Y2XOgpodHRwczovL3d3dy53M2N0ZWNoLmNvbS90b3BpYy8yMjI2YCkpO2xldCBpPXQoLi4ubik7cmV0dXJuIGkucG9zdGNzc1BsdWdpbj1lLGkucG9zdGNzc1ZlcnNpb249bmV3IEpjKCkudmVyc2lvbixpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxgcG9zdGNzc2Ase2dldDooKT0+KG58fChuPWkoKSksbil9KSxpLnByb2Nlc3M9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBQKFtpKG4pXSkucHJvY2VzcyhlLHQpfSxpfSxQLnN0cmluZ2lmeT1ZYyxQLnBhcnNlPXJsLFAuZnJvbUpTT049WGMsUC5saXN0PWlsLFAuY29tbWVudD1lPT5uZXcgJGMoZSksUC5hdFJ1bGU9ZT0+bmV3IGVsKGUpLFAuZGVjbD1lPT5uZXcgR2MoZSksUC5ydWxlPWU9Pm5ldyBhbChlKSxQLnJvb3Q9ZT0+bmV3IG9sKGUpLFAuZG9jdW1lbnQ9ZT0+bmV3IFpjKGUpLFAuQ3NzU3ludGF4RXJyb3I9V2MsUC5EZWNsYXJhdGlvbj1HYyxQLkNvbnRhaW5lcj1xYyxQLlByb2Nlc3Nvcj1KYyxQLkRvY3VtZW50PVpjLFAuQ29tbWVudD0kYyxQLldhcm5pbmc9UWMsUC5BdFJ1bGU9ZWwsUC5SZXN1bHQ9dGwsUC5JbnB1dD1ubCxQLlJ1bGU9YWwsUC5Sb290PW9sLFAuTm9kZT1zbCxLYy5yZWdpc3RlclBvc3Rjc3MoUCk7dmFyIGNsPVA7UC5kZWZhdWx0PVA7dmFyIEY9RWEoY2wpO0Yuc3RyaW5naWZ5LEYuZnJvbUpTT04sRi5wbHVnaW4sRi5wYXJzZSxGLmxpc3QsRi5kb2N1bWVudCxGLmNvbW1lbnQsRi5hdFJ1bGUsRi5ydWxlLEYuZGVjbCxGLnJvb3QsRi5Dc3NTeW50YXhFcnJvcixGLkRlY2xhcmF0aW9uLEYuQ29udGFpbmVyLEYuUHJvY2Vzc29yLEYuRG9jdW1lbnQsRi5Db21tZW50LEYuV2FybmluZyxGLkF0UnVsZSxGLlJlc3VsdCxGLklucHV0LEYuUnVsZSxGLlJvb3QsRi5Ob2RlO3ZhciBsbD1jbGFzcyBle2NvbnN0cnVjdG9yKC4uLmUpe1RhKHRoaXMsYHBhcmVudEVsZW1lbnRgLG51bGwpLFRhKHRoaXMsYHBhcmVudE5vZGVgLG51bGwpLFRhKHRoaXMsYG93bmVyRG9jdW1lbnRgKSxUYSh0aGlzLGBmaXJzdENoaWxkYCxudWxsKSxUYSh0aGlzLGBsYXN0Q2hpbGRgLG51bGwpLFRhKHRoaXMsYHByZXZpb3VzU2libGluZ2AsbnVsbCksVGEodGhpcyxgbmV4dFNpYmxpbmdgLG51bGwpLFRhKHRoaXMsYEVMRU1FTlRfTk9ERWAsMSksVGEodGhpcyxgVEVYVF9OT0RFYCwzKSxUYSh0aGlzLGBub2RlVHlwZWApLFRhKHRoaXMsYG5vZGVOYW1lYCksVGEodGhpcyxgUlJOb2RlVHlwZWApfWdldCBjaGlsZE5vZGVzKCl7bGV0IGU9W10sdD10aGlzLmZpcnN0Q2hpbGQ7Zm9yKDt0OyllLnB1c2godCksdD10Lm5leHRTaWJsaW5nO3JldHVybiBlfWNvbnRhaW5zKHQpe2lmKCEodCBpbnN0YW5jZW9mIGUpfHx0Lm93bmVyRG9jdW1lbnQhPT10aGlzLm93bmVyRG9jdW1lbnQpcmV0dXJuITE7aWYodD09PXRoaXMpcmV0dXJuITA7Zm9yKDt0LnBhcmVudE5vZGU7KXtpZih0LnBhcmVudE5vZGU9PT10aGlzKXJldHVybiEwO3Q9dC5wYXJlbnROb2RlfXJldHVybiExfWFwcGVuZENoaWxkKGUpe3Rocm93IEVycm9yKGBSUkRvbUV4Y2VwdGlvbjogRmFpbGVkIHRvIGV4ZWN1dGUgJ2FwcGVuZENoaWxkJyBvbiAnUlJOb2RlJzogVGhpcyBSUk5vZGUgdHlwZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgbWV0aG9kLmApfWluc2VydEJlZm9yZShlLHQpe3Rocm93IEVycm9yKGBSUkRvbUV4Y2VwdGlvbjogRmFpbGVkIHRvIGV4ZWN1dGUgJ2luc2VydEJlZm9yZScgb24gJ1JSTm9kZSc6IFRoaXMgUlJOb2RlIHR5cGUgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG1ldGhvZC5gKX1yZW1vdmVDaGlsZChlKXt0aHJvdyBFcnJvcihgUlJEb21FeGNlcHRpb246IEZhaWxlZCB0byBleGVjdXRlICdyZW1vdmVDaGlsZCcgb24gJ1JSTm9kZSc6IFRoaXMgUlJOb2RlIHR5cGUgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG1ldGhvZC5gKX10b1N0cmluZygpe3JldHVybmBSUk5vZGVgfX0sdWw9e05vZGU6W2BjaGlsZE5vZGVzYCxgcGFyZW50Tm9kZWAsYHBhcmVudEVsZW1lbnRgLGB0ZXh0Q29udGVudGBdLFNoYWRvd1Jvb3Q6W2Bob3N0YCxgc3R5bGVTaGVldHNgXSxFbGVtZW50Oltgc2hhZG93Um9vdGAsYHF1ZXJ5U2VsZWN0b3JgLGBxdWVyeVNlbGVjdG9yQWxsYF0sTXV0YXRpb25PYnNlcnZlcjpbXX0sZGw9e05vZGU6W2Bjb250YWluc2AsYGdldFJvb3ROb2RlYF0sU2hhZG93Um9vdDpbYGdldFNlbGVjdGlvbmBdLEVsZW1lbnQ6W10sTXV0YXRpb25PYnNlcnZlcjpbYGNvbnN0cnVjdG9yYF19LGZsPXt9O2Z1bmN0aW9uIHBsKGUpe2lmKGZsW2VdKXJldHVybiBmbFtlXTtsZXQgdD1nbG9iYWxUaGlzW2VdLG49dC5wcm90b3R5cGUscj1lIGluIHVsP3VsW2VdOnZvaWQgMCxpPSEhKHImJnIuZXZlcnkoZT0+e3ZhciB0LHI7cmV0dXJuISEoKHI9KHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKT09bnVsbD92b2lkIDA6dC5nZXQpIT1udWxsJiZyLnRvU3RyaW5nKCkuaW5jbHVkZXMoYFtuYXRpdmUgY29kZV1gKSl9KSksYT1lIGluIGRsP2RsW2VdOnZvaWQgMCxvPSEhKGEmJmEuZXZlcnkoZT0+e3ZhciB0O3JldHVybiB0eXBlb2YgbltlXT09YGZ1bmN0aW9uYCYmKCh0PW5bZV0pPT1udWxsP3ZvaWQgMDp0LnRvU3RyaW5nKCkuaW5jbHVkZXMoYFtuYXRpdmUgY29kZV1gKSl9KSk7aWYoaSYmbylyZXR1cm4gZmxbZV09dC5wcm90b3R5cGUsdC5wcm90b3R5cGU7dHJ5e2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYGlmcmFtZWApO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocik7bGV0IGk9ci5jb250ZW50V2luZG93O2lmKCFpKXJldHVybiB0LnByb3RvdHlwZTtsZXQgYT1pW2VdLnByb3RvdHlwZTtyZXR1cm4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChyKSxhP2ZsW2VdPWE6bn1jYXRjaHtyZXR1cm4gbn19dmFyIG1sPXt9O2Z1bmN0aW9uIGhsKGUsdCxuKXt2YXIgcjtsZXQgaT1gJHtlfS4ke1N0cmluZyhuKX1gO2lmKG1sW2ldKXJldHVybiBtbFtpXS5jYWxsKHQpO2xldCBhPXBsKGUpLG89KHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLG4pKT09bnVsbD92b2lkIDA6ci5nZXQ7cmV0dXJuIG8/KG1sW2ldPW8sby5jYWxsKHQpKTp0W25dfXZhciBnbD17fTtmdW5jdGlvbiBfbChlLHQsbil7bGV0IHI9YCR7ZX0uJHtTdHJpbmcobil9YDtpZihnbFtyXSlyZXR1cm4gZ2xbcl0uYmluZCh0KTtsZXQgaT1wbChlKVtuXTtyZXR1cm4gdHlwZW9mIGk9PWBmdW5jdGlvbmA/KGdsW3JdPWksaS5iaW5kKHQpKTp0W25dfWZ1bmN0aW9uIHZsKCl7cmV0dXJuIHBsKGBNdXRhdGlvbk9ic2VydmVyYCkuY29uc3RydWN0b3J9dmFyIEk9e2NoaWxkTm9kZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGhsKGBOb2RlYCxlLGBjaGlsZE5vZGVzYCl9LHBhcmVudE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGhsKGBOb2RlYCxlLGBwYXJlbnROb2RlYCl9LHBhcmVudEVsZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGhsKGBOb2RlYCxlLGBwYXJlbnRFbGVtZW50YCl9LHRleHRDb250ZW50OmZ1bmN0aW9uKGUpe3JldHVybiBobChgTm9kZWAsZSxgdGV4dENvbnRlbnRgKX0sY29udGFpbnM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gX2woYE5vZGVgLGUsYGNvbnRhaW5zYCkodCl9LGdldFJvb3ROb2RlOmZ1bmN0aW9uKGUpe3JldHVybiBfbChgTm9kZWAsZSxgZ2V0Um9vdE5vZGVgKSgpfSxob3N0OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZgaG9zdGBpbiBlP2hsKGBTaGFkb3dSb290YCxlLGBob3N0YCk6bnVsbH0sc3R5bGVTaGVldHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3R5bGVTaGVldHN9LHNoYWRvd1Jvb3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmBzaGFkb3dSb290YGluIGU/aGwoYEVsZW1lbnRgLGUsYHNoYWRvd1Jvb3RgKTpudWxsfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGhsKGBFbGVtZW50YCxlLGBxdWVyeVNlbGVjdG9yYCkodCl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gaGwoYEVsZW1lbnRgLGUsYHF1ZXJ5U2VsZWN0b3JBbGxgKSh0KX0sbXV0YXRpb25PYnNlcnZlcjp2bH07ZnVuY3Rpb24gTChlLHQsbj1kb2N1bWVudCl7bGV0IHI9e2NhcHR1cmU6ITAscGFzc2l2ZTohMH07cmV0dXJuIG4uYWRkRXZlbnRMaXN0ZW5lcihlLHQsciksKCk9Pm4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHQscil9dmFyIHlsPWBQbGVhc2Ugc3RvcCBpbXBvcnQgbWlycm9yIGRpcmVjdGx5LiBJbnN0ZWFkIG9mIHRoYXQsXHIKbm93IHlvdSBjYW4gdXNlIHJlcGxheWVyLmdldE1pcnJvcigpIHRvIGFjY2VzcyB0aGUgbWlycm9yIGluc3RhbmNlIG9mIGEgcmVwbGF5ZXIsXHIKb3IgeW91IGNhbiB1c2UgcmVjb3JkLm1pcnJvciB0byBhY2Nlc3MgdGhlIG1pcnJvciBpbnN0YW5jZSBkdXJpbmcgcmVjb3JkaW5nLmAsYmw9e21hcDp7fSxnZXRJZDooKT0+KGNvbnNvbGUuZXJyb3IoeWwpLC0xKSxnZXROb2RlOigpPT4oY29uc29sZS5lcnJvcih5bCksbnVsbCkscmVtb3ZlTm9kZUZyb21NYXAoKXtjb25zb2xlLmVycm9yKHlsKX0saGFzOigpPT4oY29uc29sZS5lcnJvcih5bCksITEpLHJlc2V0KCl7Y29uc29sZS5lcnJvcih5bCl9fTtmdW5jdGlvbiB4bChlLHQsbj17fSl7bGV0IHI9bnVsbCxpPTA7cmV0dXJuIGZ1bmN0aW9uKC4uLmEpe2xldCBvPURhdGUubm93KCk7aXx8bi5sZWFkaW5nIT09ITF8fChpPW8pO2xldCBzPXQtKG8taSksYz10aGlzO3M8PTB8fHM+dD8ociYmKGNsZWFyVGltZW91dChyKSxyPW51bGwpLGk9byxlLmFwcGx5KGMsYSkpOnJ8fG4udHJhaWxpbmc9PT0hMXx8KHI9c2V0VGltZW91dCgoKT0+e2k9bi5sZWFkaW5nPT09ITE/MDpEYXRlLm5vdygpLHI9bnVsbCxlLmFwcGx5KGMsYSl9LHMpKX19ZnVuY3Rpb24gU2woZSx0LG4scixpPXdpbmRvdyl7bGV0IGE9aS5PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7cmV0dXJuIGkuT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxyP246e3NldChlKXtzZXRUaW1lb3V0KCgpPT57bi5zZXQuY2FsbCh0aGlzLGUpfSwwKSxhJiZhLnNldCYmYS5zZXQuY2FsbCh0aGlzLGUpfX0pLCgpPT5TbChlLHQsYXx8e30sITApfWZ1bmN0aW9uIENsKGUsdCxuKXt0cnl7aWYoISh0IGluIGUpKXJldHVybigpPT57fTtsZXQgcj1lW3RdLGk9bihyKTtyZXR1cm4gdHlwZW9mIGk9PWBmdW5jdGlvbmAmJihpLnByb3RvdHlwZT1pLnByb3RvdHlwZXx8e30sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoaSx7X19ycndlYl9vcmlnaW5hbF9fOntlbnVtZXJhYmxlOiExLHZhbHVlOnJ9fSkpLGVbdF09aSwoKT0+e2VbdF09cn19Y2F0Y2h7cmV0dXJuKCk9Pnt9fX10eXBlb2Ygd2luZG93PGB1YCYmd2luZG93LlByb3h5JiZ3aW5kb3cuUmVmbGVjdCYmKGJsPW5ldyBQcm94eShibCx7Z2V0OihlLHQsbik9Pih0PT09YG1hcGAmJmNvbnNvbGUuZXJyb3IoeWwpLFJlZmxlY3QuZ2V0KGUsdCxuKSl9KSk7dmFyIHdsPURhdGUubm93O2Z1bmN0aW9uIFRsKGUpe3ZhciB0LG4scixpO2xldCBhPWUuZG9jdW1lbnQ7cmV0dXJue2xlZnQ6YS5zY3JvbGxpbmdFbGVtZW50P2Euc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0OmUucGFnZVhPZmZzZXQ9PT12b2lkIDA/YS5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdHx8KGE9PW51bGw/dm9pZCAwOmEuYm9keSkmJigodD1JLnBhcmVudEVsZW1lbnQoYS5ib2R5KSk9PW51bGw/dm9pZCAwOnQuc2Nyb2xsTGVmdCl8fCgobj1hPT1udWxsP3ZvaWQgMDphLmJvZHkpPT1udWxsP3ZvaWQgMDpuLnNjcm9sbExlZnQpfHwwOmUucGFnZVhPZmZzZXQsdG9wOmEuc2Nyb2xsaW5nRWxlbWVudD9hLnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOmUucGFnZVlPZmZzZXQ9PT12b2lkIDA/KGE9PW51bGw/dm9pZCAwOmEuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCl8fChhPT1udWxsP3ZvaWQgMDphLmJvZHkpJiYoKHI9SS5wYXJlbnRFbGVtZW50KGEuYm9keSkpPT1udWxsP3ZvaWQgMDpyLnNjcm9sbFRvcCl8fCgoaT1hPT1udWxsP3ZvaWQgMDphLmJvZHkpPT1udWxsP3ZvaWQgMDppLnNjcm9sbFRvcCl8fDA6ZS5wYWdlWU9mZnNldH19ZnVuY3Rpb24gRWwoKXtyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR8fGRvY3VtZW50LmJvZHkmJmRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0fWZ1bmN0aW9uIERsKCl7cmV0dXJuIHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aHx8ZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aH1mdW5jdGlvbiBPbChlKXtyZXR1cm4gZT9lLm5vZGVUeXBlPT09ZS5FTEVNRU5UX05PREU/ZTpJLnBhcmVudEVsZW1lbnQoZSk6bnVsbH1mdW5jdGlvbiBSKGUsdCxuLHIpe2lmKCFlKXJldHVybiExO2xldCBpPU9sKGUpO2lmKCFpKXJldHVybiExO3RyeXtpZih0eXBlb2YgdD09YHN0cmluZ2Ape2lmKGkuY2xhc3NMaXN0LmNvbnRhaW5zKHQpfHxyJiZpLmNsb3Nlc3QoYC5gK3QpIT09bnVsbClyZXR1cm4hMH1lbHNlIGlmKEx0KGksdCxyKSlyZXR1cm4hMH1jYXRjaHt9cmV0dXJuISEobiYmKGkubWF0Y2hlcyhuKXx8ciYmaS5jbG9zZXN0KG4pIT09bnVsbCkpfWZ1bmN0aW9uIGtsKGUsdCxuKXtyZXR1cm4hKGUudGFnTmFtZSE9PWBUSVRMRWB8fCFuLmhlYWRUaXRsZU11dGF0aW9ucyl8fHQuZ2V0SWQoZSk9PT0tMn1mdW5jdGlvbiBBbChlLHQpe2lmKGx0KGUpKXJldHVybiExO2xldCBuPXQuZ2V0SWQoZSk7aWYoIXQuaGFzKG4pKXJldHVybiEwO2xldCByPUkucGFyZW50Tm9kZShlKTtyZXR1cm4oIXJ8fHIubm9kZVR5cGUhPT1lLkRPQ1VNRU5UX05PREUpJiYoIXJ8fEFsKHIsdCkpfWZ1bmN0aW9uIGpsKGUpe3JldHVybiEhZS5jaGFuZ2VkVG91Y2hlc31mdW5jdGlvbiBNbChlLHQpe3JldHVybiEhKGUubm9kZU5hbWU9PT1gSUZSQU1FYCYmdC5nZXRNZXRhKGUpKX1mdW5jdGlvbiBObChlLHQpe3JldHVybiEhKGUubm9kZU5hbWU9PT1gTElOS2AmJmUubm9kZVR5cGU9PT1lLkVMRU1FTlRfTk9ERSYmZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKGByZWxgKT09PWBzdHlsZXNoZWV0YCYmdC5nZXRNZXRhKGUpKX1mdW5jdGlvbiBQbChlKXtyZXR1cm4hIWUmJihlIGluc3RhbmNlb2YgbGwmJmBzaGFkb3dSb290YGluIGU/ISFlLnNoYWRvd1Jvb3Q6ISFJLnNoYWRvd1Jvb3QoZSkpfS9bMS05XVswLTldezEyfS8udGVzdChEYXRlLm5vdygpLnRvU3RyaW5nKCkpfHwod2w9KCk9Pm5ldyBEYXRlKCkuZ2V0VGltZSgpKTt2YXIgRmw9Y2xhc3N7Y29uc3RydWN0b3IoKXtFKHRoaXMsYGlkYCwxKSxFKHRoaXMsYHN0eWxlSURNYXBgLG5ldyBXZWFrTWFwKSxFKHRoaXMsYGlkU3R5bGVNYXBgLG5ldyBNYXApfWdldElkKGUpe3JldHVybiB0aGlzLnN0eWxlSURNYXAuZ2V0KGUpPz8tMX1oYXMoZSl7cmV0dXJuIHRoaXMuc3R5bGVJRE1hcC5oYXMoZSl9YWRkKGUsdCl7aWYodGhpcy5oYXMoZSkpcmV0dXJuIHRoaXMuZ2V0SWQoZSk7bGV0IG47cmV0dXJuIG49dD09PXZvaWQgMD90aGlzLmlkKys6dCx0aGlzLnN0eWxlSURNYXAuc2V0KGUsbiksdGhpcy5pZFN0eWxlTWFwLnNldChuLGUpLG59Z2V0U3R5bGUoZSl7cmV0dXJuIHRoaXMuaWRTdHlsZU1hcC5nZXQoZSl8fG51bGx9cmVzZXQoKXt0aGlzLnN0eWxlSURNYXA9bmV3IFdlYWtNYXAsdGhpcy5pZFN0eWxlTWFwPW5ldyBNYXAsdGhpcy5pZD0xfWdlbmVyYXRlSWQoKXtyZXR1cm4gdGhpcy5pZCsrfX07ZnVuY3Rpb24gSWwoZSl7dmFyIHQ7bGV0IG49bnVsbDtyZXR1cm5gZ2V0Um9vdE5vZGVgaW4gZSYmKCh0PUkuZ2V0Um9vdE5vZGUoZSkpPT1udWxsP3ZvaWQgMDp0Lm5vZGVUeXBlKT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmSS5ob3N0KEkuZ2V0Um9vdE5vZGUoZSkpJiYobj1JLmhvc3QoSS5nZXRSb290Tm9kZShlKSkpLG59ZnVuY3Rpb24gTGwoZSl7bGV0IHQ9ZS5vd25lckRvY3VtZW50O2lmKCF0KXJldHVybiExO2xldCBuPWZ1bmN0aW9uKGUpe2xldCB0LG49ZTtmb3IoO3Q9SWwobik7KW49dDtyZXR1cm4gbn0oZSk7cmV0dXJuIEkuY29udGFpbnModCxuKX1mdW5jdGlvbiBSbChlKXtsZXQgdD1lLm93bmVyRG9jdW1lbnQ7cmV0dXJuISF0JiYoSS5jb250YWlucyh0LGUpfHxMbChlKSl9dmFyIHo9KGU9PihlW2UuRG9tQ29udGVudExvYWRlZD0wXT1gRG9tQ29udGVudExvYWRlZGAsZVtlLkxvYWQ9MV09YExvYWRgLGVbZS5GdWxsU25hcHNob3Q9Ml09YEZ1bGxTbmFwc2hvdGAsZVtlLkluY3JlbWVudGFsU25hcHNob3Q9M109YEluY3JlbWVudGFsU25hcHNob3RgLGVbZS5NZXRhPTRdPWBNZXRhYCxlW2UuQ3VzdG9tPTVdPWBDdXN0b21gLGVbZS5QbHVnaW49Nl09YFBsdWdpbmAsZSkpKHp8fHt9KSxCPShlPT4oZVtlLk11dGF0aW9uPTBdPWBNdXRhdGlvbmAsZVtlLk1vdXNlTW92ZT0xXT1gTW91c2VNb3ZlYCxlW2UuTW91c2VJbnRlcmFjdGlvbj0yXT1gTW91c2VJbnRlcmFjdGlvbmAsZVtlLlNjcm9sbD0zXT1gU2Nyb2xsYCxlW2UuVmlld3BvcnRSZXNpemU9NF09YFZpZXdwb3J0UmVzaXplYCxlW2UuSW5wdXQ9NV09YElucHV0YCxlW2UuVG91Y2hNb3ZlPTZdPWBUb3VjaE1vdmVgLGVbZS5NZWRpYUludGVyYWN0aW9uPTddPWBNZWRpYUludGVyYWN0aW9uYCxlW2UuU3R5bGVTaGVldFJ1bGU9OF09YFN0eWxlU2hlZXRSdWxlYCxlW2UuQ2FudmFzTXV0YXRpb249OV09YENhbnZhc011dGF0aW9uYCxlW2UuRm9udD0xMF09YEZvbnRgLGVbZS5Mb2c9MTFdPWBMb2dgLGVbZS5EcmFnPTEyXT1gRHJhZ2AsZVtlLlN0eWxlRGVjbGFyYXRpb249MTNdPWBTdHlsZURlY2xhcmF0aW9uYCxlW2UuU2VsZWN0aW9uPTE0XT1gU2VsZWN0aW9uYCxlW2UuQWRvcHRlZFN0eWxlU2hlZXQ9MTVdPWBBZG9wdGVkU3R5bGVTaGVldGAsZVtlLkN1c3RvbUVsZW1lbnQ9MTZdPWBDdXN0b21FbGVtZW50YCxlKSkoQnx8e30pLFY9KGU9PihlW2UuTW91c2VVcD0wXT1gTW91c2VVcGAsZVtlLk1vdXNlRG93bj0xXT1gTW91c2VEb3duYCxlW2UuQ2xpY2s9Ml09YENsaWNrYCxlW2UuQ29udGV4dE1lbnU9M109YENvbnRleHRNZW51YCxlW2UuRGJsQ2xpY2s9NF09YERibENsaWNrYCxlW2UuRm9jdXM9NV09YEZvY3VzYCxlW2UuQmx1cj02XT1gQmx1cmAsZVtlLlRvdWNoU3RhcnQ9N109YFRvdWNoU3RhcnRgLGVbZS5Ub3VjaE1vdmVfRGVwYXJ0ZWQ9OF09YFRvdWNoTW92ZV9EZXBhcnRlZGAsZVtlLlRvdWNoRW5kPTldPWBUb3VjaEVuZGAsZVtlLlRvdWNoQ2FuY2VsPTEwXT1gVG91Y2hDYW5jZWxgLGUpKShWfHx7fSksemw9KGU9PihlW2UuTW91c2U9MF09YE1vdXNlYCxlW2UuUGVuPTFdPWBQZW5gLGVbZS5Ub3VjaD0yXT1gVG91Y2hgLGUpKSh6bHx8e30pLEJsPShlPT4oZVtlW2AyRGBdPTBdPWAyRGAsZVtlLldlYkdMPTFdPWBXZWJHTGAsZVtlLldlYkdMMj0yXT1gV2ViR0wyYCxlKSkoQmx8fHt9KSxWbD0oZT0+KGVbZS5QbGF5PTBdPWBQbGF5YCxlW2UuUGF1c2U9MV09YFBhdXNlYCxlW2UuU2Vla2VkPTJdPWBTZWVrZWRgLGVbZS5Wb2x1bWVDaGFuZ2U9M109YFZvbHVtZUNoYW5nZWAsZVtlLlJhdGVDaGFuZ2U9NF09YFJhdGVDaGFuZ2VgLGUpKShWbHx8e30pO2Z1bmN0aW9uIEhsKGUpe3JldHVybmBfX2xuYGluIGV9dmFyIFVsPWNsYXNze2NvbnN0cnVjdG9yKCl7RSh0aGlzLGBsZW5ndGhgLDApLEUodGhpcyxgaGVhZGAsbnVsbCksRSh0aGlzLGB0YWlsYCxudWxsKX1nZXQoZSl7aWYoZT49dGhpcy5sZW5ndGgpdGhyb3cgRXJyb3IoYFBvc2l0aW9uIG91dHNpZGUgb2YgbGlzdCByYW5nZWApO2xldCB0PXRoaXMuaGVhZDtmb3IobGV0IG49MDtuPGU7bisrKXQ9KHQ9PW51bGw/dm9pZCAwOnQubmV4dCl8fG51bGw7cmV0dXJuIHR9YWRkTm9kZShlKXtsZXQgdD17dmFsdWU6ZSxwcmV2aW91czpudWxsLG5leHQ6bnVsbH07aWYoZS5fX2xuPXQsZS5wcmV2aW91c1NpYmxpbmcmJkhsKGUucHJldmlvdXNTaWJsaW5nKSl7bGV0IG49ZS5wcmV2aW91c1NpYmxpbmcuX19sbi5uZXh0O3QubmV4dD1uLHQucHJldmlvdXM9ZS5wcmV2aW91c1NpYmxpbmcuX19sbixlLnByZXZpb3VzU2libGluZy5fX2xuLm5leHQ9dCxuJiYobi5wcmV2aW91cz10KX1lbHNlIGlmKGUubmV4dFNpYmxpbmcmJkhsKGUubmV4dFNpYmxpbmcpJiZlLm5leHRTaWJsaW5nLl9fbG4ucHJldmlvdXMpe2xldCBuPWUubmV4dFNpYmxpbmcuX19sbi5wcmV2aW91czt0LnByZXZpb3VzPW4sdC5uZXh0PWUubmV4dFNpYmxpbmcuX19sbixlLm5leHRTaWJsaW5nLl9fbG4ucHJldmlvdXM9dCxuJiYobi5uZXh0PXQpfWVsc2UgdGhpcy5oZWFkJiYodGhpcy5oZWFkLnByZXZpb3VzPXQpLHQubmV4dD10aGlzLmhlYWQsdGhpcy5oZWFkPXQ7dC5uZXh0PT09bnVsbCYmKHRoaXMudGFpbD10KSx0aGlzLmxlbmd0aCsrfXJlbW92ZU5vZGUoZSl7bGV0IHQ9ZS5fX2xuO3RoaXMuaGVhZCYmKHQucHJldmlvdXM/KHQucHJldmlvdXMubmV4dD10Lm5leHQsdC5uZXh0P3QubmV4dC5wcmV2aW91cz10LnByZXZpb3VzOnRoaXMudGFpbD10LnByZXZpb3VzKToodGhpcy5oZWFkPXQubmV4dCx0aGlzLmhlYWQ/dGhpcy5oZWFkLnByZXZpb3VzPW51bGw6dGhpcy50YWlsPW51bGwpLGUuX19sbiYmZGVsZXRlIGUuX19sbix0aGlzLmxlbmd0aC0tKX19LFdsPShlLHQpPT5gJHtlfUAke3R9YCxHbD1jbGFzc3tjb25zdHJ1Y3Rvcigpe0UodGhpcyxgZnJvemVuYCwhMSksRSh0aGlzLGBsb2NrZWRgLCExKSxFKHRoaXMsYHRleHRzYCxbXSksRSh0aGlzLGBhdHRyaWJ1dGVzYCxbXSksRSh0aGlzLGBhdHRyaWJ1dGVNYXBgLG5ldyBXZWFrTWFwKSxFKHRoaXMsYHJlbW92ZXNgLFtdKSxFKHRoaXMsYG1hcFJlbW92ZXNgLFtdKSxFKHRoaXMsYG1vdmVkTWFwYCx7fSksRSh0aGlzLGBhZGRlZFNldGAsbmV3IFNldCksRSh0aGlzLGBtb3ZlZFNldGAsbmV3IFNldCksRSh0aGlzLGBkcm9wcGVkU2V0YCxuZXcgU2V0KSxFKHRoaXMsYG11dGF0aW9uQ2JgKSxFKHRoaXMsYGJsb2NrQ2xhc3NgKSxFKHRoaXMsYGJsb2NrU2VsZWN0b3JgKSxFKHRoaXMsYG1hc2tUZXh0Q2xhc3NgKSxFKHRoaXMsYG1hc2tUZXh0U2VsZWN0b3JgKSxFKHRoaXMsYGlubGluZVN0eWxlc2hlZXRgKSxFKHRoaXMsYG1hc2tJbnB1dE9wdGlvbnNgKSxFKHRoaXMsYG1hc2tUZXh0Rm5gKSxFKHRoaXMsYG1hc2tJbnB1dEZuYCksRSh0aGlzLGBrZWVwSWZyYW1lU3JjRm5gKSxFKHRoaXMsYHJlY29yZENhbnZhc2ApLEUodGhpcyxgaW5saW5lSW1hZ2VzYCksRSh0aGlzLGBzbGltRE9NT3B0aW9uc2ApLEUodGhpcyxgZGF0YVVSTE9wdGlvbnNgKSxFKHRoaXMsYGRvY2ApLEUodGhpcyxgbWlycm9yYCksRSh0aGlzLGBpZnJhbWVNYW5hZ2VyYCksRSh0aGlzLGBzdHlsZXNoZWV0TWFuYWdlcmApLEUodGhpcyxgc2hhZG93RG9tTWFuYWdlcmApLEUodGhpcyxgY2FudmFzTWFuYWdlcmApLEUodGhpcyxgcHJvY2Vzc2VkTm9kZU1hbmFnZXJgKSxFKHRoaXMsYHVuYXR0YWNoZWREb2NgKSxFKHRoaXMsYHByb2Nlc3NNdXRhdGlvbnNgLGU9PntlLmZvckVhY2godGhpcy5wcm9jZXNzTXV0YXRpb24pLHRoaXMuZW1pdCgpfSksRSh0aGlzLGBlbWl0YCwoKT0+e2lmKHRoaXMuZnJvemVufHx0aGlzLmxvY2tlZClyZXR1cm47bGV0IGU9W10sdD1uZXcgU2V0LG49bmV3IFVsLHI9ZT0+e2xldCB0PWUsbj0tMjtmb3IoO249PT0tMjspdD10JiZ0Lm5leHRTaWJsaW5nLG49dCYmdGhpcy5taXJyb3IuZ2V0SWQodCk7cmV0dXJuIG59LGk9aT0+e2xldCBhPUkucGFyZW50Tm9kZShpKTtpZighYXx8IVJsKGkpfHxhLnRhZ05hbWU9PT1gVEVYVEFSRUFgKXJldHVybjtsZXQgbz1sdChhKT90aGlzLm1pcnJvci5nZXRJZChJbChpKSk6dGhpcy5taXJyb3IuZ2V0SWQoYSkscz1yKGkpO2lmKG89PT0tMXx8cz09PS0xKXJldHVybiBuLmFkZE5vZGUoaSk7bGV0IGM9QnQoaSx7ZG9jOnRoaXMuZG9jLG1pcnJvcjp0aGlzLm1pcnJvcixibG9ja0NsYXNzOnRoaXMuYmxvY2tDbGFzcyxibG9ja1NlbGVjdG9yOnRoaXMuYmxvY2tTZWxlY3RvcixtYXNrVGV4dENsYXNzOnRoaXMubWFza1RleHRDbGFzcyxtYXNrVGV4dFNlbGVjdG9yOnRoaXMubWFza1RleHRTZWxlY3Rvcixza2lwQ2hpbGQ6ITAsbmV3bHlBZGRlZEVsZW1lbnQ6ITAsaW5saW5lU3R5bGVzaGVldDp0aGlzLmlubGluZVN0eWxlc2hlZXQsbWFza0lucHV0T3B0aW9uczp0aGlzLm1hc2tJbnB1dE9wdGlvbnMsbWFza1RleHRGbjp0aGlzLm1hc2tUZXh0Rm4sbWFza0lucHV0Rm46dGhpcy5tYXNrSW5wdXRGbixzbGltRE9NT3B0aW9uczp0aGlzLnNsaW1ET01PcHRpb25zLGRhdGFVUkxPcHRpb25zOnRoaXMuZGF0YVVSTE9wdGlvbnMscmVjb3JkQ2FudmFzOnRoaXMucmVjb3JkQ2FudmFzLGlubGluZUltYWdlczp0aGlzLmlubGluZUltYWdlcyxvblNlcmlhbGl6ZTplPT57TWwoZSx0aGlzLm1pcnJvcikmJnRoaXMuaWZyYW1lTWFuYWdlci5hZGRJZnJhbWUoZSksTmwoZSx0aGlzLm1pcnJvcikmJnRoaXMuc3R5bGVzaGVldE1hbmFnZXIudHJhY2tMaW5rRWxlbWVudChlKSxQbChpKSYmdGhpcy5zaGFkb3dEb21NYW5hZ2VyLmFkZFNoYWRvd1Jvb3QoSS5zaGFkb3dSb290KGkpLHRoaXMuZG9jKX0sb25JZnJhbWVMb2FkOihlLHQpPT57dGhpcy5pZnJhbWVNYW5hZ2VyLmF0dGFjaElmcmFtZShlLHQpLHRoaXMuc2hhZG93RG9tTWFuYWdlci5vYnNlcnZlQXR0YWNoU2hhZG93KGUpfSxvblN0eWxlc2hlZXRMb2FkOihlLHQpPT57dGhpcy5zdHlsZXNoZWV0TWFuYWdlci5hdHRhY2hMaW5rRWxlbWVudChlLHQpfX0pO2MmJihlLnB1c2goe3BhcmVudElkOm8sbmV4dElkOnMsbm9kZTpjfSksdC5hZGQoYy5pZCkpfTtmb3IoO3RoaXMubWFwUmVtb3Zlcy5sZW5ndGg7KXRoaXMubWlycm9yLnJlbW92ZU5vZGVGcm9tTWFwKHRoaXMubWFwUmVtb3Zlcy5zaGlmdCgpKTtmb3IobGV0IGUgb2YgdGhpcy5tb3ZlZFNldClxbCh0aGlzLnJlbW92ZXMsZSx0aGlzLm1pcnJvcikmJiF0aGlzLm1vdmVkU2V0LmhhcyhJLnBhcmVudE5vZGUoZSkpfHxpKGUpO2ZvcihsZXQgZSBvZiB0aGlzLmFkZGVkU2V0KUpsKHRoaXMuZHJvcHBlZFNldCxlKXx8cWwodGhpcy5yZW1vdmVzLGUsdGhpcy5taXJyb3IpP0psKHRoaXMubW92ZWRTZXQsZSk/aShlKTp0aGlzLmRyb3BwZWRTZXQuYWRkKGUpOmkoZSk7bGV0IGE9bnVsbDtmb3IoO24ubGVuZ3RoOyl7bGV0IGU9bnVsbDtpZihhKXtsZXQgdD10aGlzLm1pcnJvci5nZXRJZChJLnBhcmVudE5vZGUoYS52YWx1ZSkpLG49cihhLnZhbHVlKTt0IT09LTEmJm4hPT0tMSYmKGU9YSl9aWYoIWUpe2xldCB0PW4udGFpbDtmb3IoO3Q7KXtsZXQgbj10O2lmKHQ9dC5wcmV2aW91cyxuKXtsZXQgdD10aGlzLm1pcnJvci5nZXRJZChJLnBhcmVudE5vZGUobi52YWx1ZSkpO2lmKHIobi52YWx1ZSk9PT0tMSljb250aW51ZTtpZih0IT09LTEpe2U9bjticmVha317bGV0IHQ9bi52YWx1ZSxyPUkucGFyZW50Tm9kZSh0KTtpZihyJiZyLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKXtsZXQgdD1JLmhvc3Qocik7aWYodGhpcy5taXJyb3IuZ2V0SWQodCkhPT0tMSl7ZT1uO2JyZWFrfX19fX19aWYoIWUpe2Zvcig7bi5oZWFkOyluLnJlbW92ZU5vZGUobi5oZWFkLnZhbHVlKTticmVha31hPWUucHJldmlvdXMsbi5yZW1vdmVOb2RlKGUudmFsdWUpLGkoZS52YWx1ZSl9bGV0IG89e3RleHRzOnRoaXMudGV4dHMubWFwKGU9PntsZXQgdD1lLm5vZGUsbj1JLnBhcmVudE5vZGUodCk7cmV0dXJuIG4mJm4udGFnTmFtZT09PWBURVhUQVJFQWAmJnRoaXMuZ2VuVGV4dEFyZWFWYWx1ZU11dGF0aW9uKG4pLHtpZDp0aGlzLm1pcnJvci5nZXRJZCh0KSx2YWx1ZTplLnZhbHVlfX0pLmZpbHRlcihlPT4hdC5oYXMoZS5pZCkpLmZpbHRlcihlPT50aGlzLm1pcnJvci5oYXMoZS5pZCkpLGF0dHJpYnV0ZXM6dGhpcy5hdHRyaWJ1dGVzLm1hcChlPT57bGV0e2F0dHJpYnV0ZXM6dH09ZTtpZih0eXBlb2YgdC5zdHlsZT09YHN0cmluZ2Ape2xldCBuPUpTT04uc3RyaW5naWZ5KGUuc3R5bGVEaWZmKSxyPUpTT04uc3RyaW5naWZ5KGUuX3VuY2hhbmdlZFN0eWxlcyk7bi5sZW5ndGg8dC5zdHlsZS5sZW5ndGgmJihuK3IpLnNwbGl0KGB2YXIoYCkubGVuZ3RoPT09dC5zdHlsZS5zcGxpdChgdmFyKGApLmxlbmd0aCYmKHQuc3R5bGU9ZS5zdHlsZURpZmYpfXJldHVybntpZDp0aGlzLm1pcnJvci5nZXRJZChlLm5vZGUpLGF0dHJpYnV0ZXM6dH19KS5maWx0ZXIoZT0+IXQuaGFzKGUuaWQpKS5maWx0ZXIoZT0+dGhpcy5taXJyb3IuaGFzKGUuaWQpKSxyZW1vdmVzOnRoaXMucmVtb3ZlcyxhZGRzOmV9OyhvLnRleHRzLmxlbmd0aHx8by5hdHRyaWJ1dGVzLmxlbmd0aHx8by5yZW1vdmVzLmxlbmd0aHx8by5hZGRzLmxlbmd0aCkmJih0aGlzLnRleHRzPVtdLHRoaXMuYXR0cmlidXRlcz1bXSx0aGlzLmF0dHJpYnV0ZU1hcD1uZXcgV2Vha01hcCx0aGlzLnJlbW92ZXM9W10sdGhpcy5hZGRlZFNldD1uZXcgU2V0LHRoaXMubW92ZWRTZXQ9bmV3IFNldCx0aGlzLmRyb3BwZWRTZXQ9bmV3IFNldCx0aGlzLm1vdmVkTWFwPXt9LHRoaXMubXV0YXRpb25DYihvKSl9KSxFKHRoaXMsYGdlblRleHRBcmVhVmFsdWVNdXRhdGlvbmAsZT0+e2xldCB0PXRoaXMuYXR0cmlidXRlTWFwLmdldChlKTt0fHwodD17bm9kZTplLGF0dHJpYnV0ZXM6e30sc3R5bGVEaWZmOnt9LF91bmNoYW5nZWRTdHlsZXM6e319LHRoaXMuYXR0cmlidXRlcy5wdXNoKHQpLHRoaXMuYXR0cmlidXRlTWFwLnNldChlLHQpKSx0LmF0dHJpYnV0ZXMudmFsdWU9QXJyYXkuZnJvbShJLmNoaWxkTm9kZXMoZSksZT0+SS50ZXh0Q29udGVudChlKXx8YGApLmpvaW4oYGApfSksRSh0aGlzLGBwcm9jZXNzTXV0YXRpb25gLGU9PntpZigha2woZS50YXJnZXQsdGhpcy5taXJyb3IsdGhpcy5zbGltRE9NT3B0aW9ucykpc3dpdGNoKGUudHlwZSl7Y2FzZWBjaGFyYWN0ZXJEYXRhYDp7bGV0IHQ9SS50ZXh0Q29udGVudChlLnRhcmdldCk7UihlLnRhcmdldCx0aGlzLmJsb2NrQ2xhc3MsdGhpcy5ibG9ja1NlbGVjdG9yLCExKXx8dD09PWUub2xkVmFsdWV8fHRoaXMudGV4dHMucHVzaCh7dmFsdWU6UnQoZS50YXJnZXQsdGhpcy5tYXNrVGV4dENsYXNzLHRoaXMubWFza1RleHRTZWxlY3RvciwhMCkmJnQ/dGhpcy5tYXNrVGV4dEZuP3RoaXMubWFza1RleHRGbih0LE9sKGUudGFyZ2V0KSk6dC5yZXBsYWNlKC9bXFNdL2csYCpgKTp0LG5vZGU6ZS50YXJnZXR9KTticmVha31jYXNlYGF0dHJpYnV0ZXNgOntsZXQgdD1lLnRhcmdldCxuPWUuYXR0cmlidXRlTmFtZSxyPWUudGFyZ2V0LmdldEF0dHJpYnV0ZShuKTtpZihuPT09YHZhbHVlYCl7bGV0IGU9X3QodCk7cj1tdCh7ZWxlbWVudDp0LG1hc2tJbnB1dE9wdGlvbnM6dGhpcy5tYXNrSW5wdXRPcHRpb25zLHRhZ05hbWU6dC50YWdOYW1lLHR5cGU6ZSx2YWx1ZTpyLG1hc2tJbnB1dEZuOnRoaXMubWFza0lucHV0Rm59KX1pZihSKGUudGFyZ2V0LHRoaXMuYmxvY2tDbGFzcyx0aGlzLmJsb2NrU2VsZWN0b3IsITEpfHxyPT09ZS5vbGRWYWx1ZSlyZXR1cm47bGV0IGk9dGhpcy5hdHRyaWJ1dGVNYXAuZ2V0KGUudGFyZ2V0KTtpZih0LnRhZ05hbWU9PT1gSUZSQU1FYCYmbj09PWBzcmNgJiYhdGhpcy5rZWVwSWZyYW1lU3JjRm4ocikpe2lmKHQuY29udGVudERvY3VtZW50KXJldHVybjtuPWBycl9zcmNgfWlmKGl8fChpPXtub2RlOmUudGFyZ2V0LGF0dHJpYnV0ZXM6e30sc3R5bGVEaWZmOnt9LF91bmNoYW5nZWRTdHlsZXM6e319LHRoaXMuYXR0cmlidXRlcy5wdXNoKGkpLHRoaXMuYXR0cmlidXRlTWFwLnNldChlLnRhcmdldCxpKSksbj09PWB0eXBlYCYmdC50YWdOYW1lPT09YElOUFVUYCYmKGUub2xkVmFsdWV8fGBgKS50b0xvd2VyQ2FzZSgpPT09YHBhc3N3b3JkYCYmdC5zZXRBdHRyaWJ1dGUoYGRhdGEtcnItaXMtcGFzc3dvcmRgLGB0cnVlYCksIUl0KHQudGFnTmFtZSxuKSlpZihpLmF0dHJpYnV0ZXNbbl09RnQodGhpcy5kb2MsaHQodC50YWdOYW1lKSxodChuKSxyKSxuPT09YHN0eWxlYCl7aWYoIXRoaXMudW5hdHRhY2hlZERvYyl0cnl7dGhpcy51bmF0dGFjaGVkRG9jPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpfWNhdGNoe3RoaXMudW5hdHRhY2hlZERvYz10aGlzLmRvY31sZXQgbj10aGlzLnVuYXR0YWNoZWREb2MuY3JlYXRlRWxlbWVudChgc3BhbmApO2Uub2xkVmFsdWUmJm4uc2V0QXR0cmlidXRlKGBzdHlsZWAsZS5vbGRWYWx1ZSk7Zm9yKGxldCBlIG9mIEFycmF5LmZyb20odC5zdHlsZSkpe2xldCByPXQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShlKSxhPXQuc3R5bGUuZ2V0UHJvcGVydHlQcmlvcml0eShlKTtyIT09bi5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGUpfHxhIT09bi5zdHlsZS5nZXRQcm9wZXJ0eVByaW9yaXR5KGUpP2kuc3R5bGVEaWZmW2VdPWE9PT1gYD9yOltyLGFdOmkuX3VuY2hhbmdlZFN0eWxlc1tlXT1bcixhXX1mb3IobGV0IGUgb2YgQXJyYXkuZnJvbShuLnN0eWxlKSl0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoZSk9PT1gYCYmKGkuc3R5bGVEaWZmW2VdPSExKX1lbHNlIG49PT1gb3BlbmAmJnQudGFnTmFtZT09PWBESUFMT0dgJiYodC5tYXRjaGVzKGBkaWFsb2c6bW9kYWxgKT9pLmF0dHJpYnV0ZXMucnJfb3Blbl9tb2RlPWBtb2RhbGA6aS5hdHRyaWJ1dGVzLnJyX29wZW5fbW9kZT1gbm9uLW1vZGFsYCk7YnJlYWt9Y2FzZWBjaGlsZExpc3RgOmlmKFIoZS50YXJnZXQsdGhpcy5ibG9ja0NsYXNzLHRoaXMuYmxvY2tTZWxlY3RvciwhMCkpcmV0dXJuO2lmKGUudGFyZ2V0LnRhZ05hbWU9PT1gVEVYVEFSRUFgKXJldHVybiB2b2lkIHRoaXMuZ2VuVGV4dEFyZWFWYWx1ZU11dGF0aW9uKGUudGFyZ2V0KTtlLmFkZGVkTm9kZXMuZm9yRWFjaCh0PT50aGlzLmdlbkFkZHModCxlLnRhcmdldCkpLGUucmVtb3ZlZE5vZGVzLmZvckVhY2godD0+e2xldCBuPXRoaXMubWlycm9yLmdldElkKHQpLHI9bHQoZS50YXJnZXQpP3RoaXMubWlycm9yLmdldElkKEkuaG9zdChlLnRhcmdldCkpOnRoaXMubWlycm9yLmdldElkKGUudGFyZ2V0KTtSKGUudGFyZ2V0LHRoaXMuYmxvY2tDbGFzcyx0aGlzLmJsb2NrU2VsZWN0b3IsITEpfHxrbCh0LHRoaXMubWlycm9yLHRoaXMuc2xpbURPTU9wdGlvbnMpfHwhZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5nZXRJZChlKSE9PS0xfSh0LHRoaXMubWlycm9yKXx8KHRoaXMuYWRkZWRTZXQuaGFzKHQpPyhLbCh0aGlzLmFkZGVkU2V0LHQpLHRoaXMuZHJvcHBlZFNldC5hZGQodCkpOnRoaXMuYWRkZWRTZXQuaGFzKGUudGFyZ2V0KSYmbj09PS0xfHxBbChlLnRhcmdldCx0aGlzLm1pcnJvcil8fCh0aGlzLm1vdmVkU2V0Lmhhcyh0KSYmdGhpcy5tb3ZlZE1hcFtXbChuLHIpXT9LbCh0aGlzLm1vdmVkU2V0LHQpOnRoaXMucmVtb3Zlcy5wdXNoKHtwYXJlbnRJZDpyLGlkOm4saXNTaGFkb3c6ISghbHQoZS50YXJnZXQpfHwhdXQoZS50YXJnZXQpKXx8dm9pZCAwfSkpLHRoaXMubWFwUmVtb3Zlcy5wdXNoKHQpKX0pfX0pLEUodGhpcyxgZ2VuQWRkc2AsKGUsdCk9PntpZighdGhpcy5wcm9jZXNzZWROb2RlTWFuYWdlci5pbk90aGVyQnVmZmVyKGUsdGhpcykmJiF0aGlzLmFkZGVkU2V0LmhhcyhlKSYmIXRoaXMubW92ZWRTZXQuaGFzKGUpKXtpZih0aGlzLm1pcnJvci5oYXNOb2RlKGUpKXtpZihrbChlLHRoaXMubWlycm9yLHRoaXMuc2xpbURPTU9wdGlvbnMpKXJldHVybjt0aGlzLm1vdmVkU2V0LmFkZChlKTtsZXQgbj1udWxsO3QmJnRoaXMubWlycm9yLmhhc05vZGUodCkmJihuPXRoaXMubWlycm9yLmdldElkKHQpKSxuJiZuIT09LTEmJih0aGlzLm1vdmVkTWFwW1dsKHRoaXMubWlycm9yLmdldElkKGUpLG4pXT0hMCl9ZWxzZSB0aGlzLmFkZGVkU2V0LmFkZChlKSx0aGlzLmRyb3BwZWRTZXQuZGVsZXRlKGUpO1IoZSx0aGlzLmJsb2NrQ2xhc3MsdGhpcy5ibG9ja1NlbGVjdG9yLCExKXx8KEkuY2hpbGROb2RlcyhlKS5mb3JFYWNoKGU9PnRoaXMuZ2VuQWRkcyhlKSksUGwoZSkmJkkuY2hpbGROb2RlcyhJLnNoYWRvd1Jvb3QoZSkpLmZvckVhY2godD0+e3RoaXMucHJvY2Vzc2VkTm9kZU1hbmFnZXIuYWRkKHQsdGhpcyksdGhpcy5nZW5BZGRzKHQsZSl9KSl9fSl9aW5pdChlKXtbYG11dGF0aW9uQ2JgLGBibG9ja0NsYXNzYCxgYmxvY2tTZWxlY3RvcmAsYG1hc2tUZXh0Q2xhc3NgLGBtYXNrVGV4dFNlbGVjdG9yYCxgaW5saW5lU3R5bGVzaGVldGAsYG1hc2tJbnB1dE9wdGlvbnNgLGBtYXNrVGV4dEZuYCxgbWFza0lucHV0Rm5gLGBrZWVwSWZyYW1lU3JjRm5gLGByZWNvcmRDYW52YXNgLGBpbmxpbmVJbWFnZXNgLGBzbGltRE9NT3B0aW9uc2AsYGRhdGFVUkxPcHRpb25zYCxgZG9jYCxgbWlycm9yYCxgaWZyYW1lTWFuYWdlcmAsYHN0eWxlc2hlZXRNYW5hZ2VyYCxgc2hhZG93RG9tTWFuYWdlcmAsYGNhbnZhc01hbmFnZXJgLGBwcm9jZXNzZWROb2RlTWFuYWdlcmBdLmZvckVhY2godD0+e3RoaXNbdF09ZVt0XX0pfWZyZWV6ZSgpe3RoaXMuZnJvemVuPSEwLHRoaXMuY2FudmFzTWFuYWdlci5mcmVlemUoKX11bmZyZWV6ZSgpe3RoaXMuZnJvemVuPSExLHRoaXMuY2FudmFzTWFuYWdlci51bmZyZWV6ZSgpLHRoaXMuZW1pdCgpfWlzRnJvemVuKCl7cmV0dXJuIHRoaXMuZnJvemVufWxvY2soKXt0aGlzLmxvY2tlZD0hMCx0aGlzLmNhbnZhc01hbmFnZXIubG9jaygpfXVubG9jaygpe3RoaXMubG9ja2VkPSExLHRoaXMuY2FudmFzTWFuYWdlci51bmxvY2soKSx0aGlzLmVtaXQoKX1yZXNldCgpe3RoaXMuc2hhZG93RG9tTWFuYWdlci5yZXNldCgpLHRoaXMuY2FudmFzTWFuYWdlci5yZXNldCgpfX07ZnVuY3Rpb24gS2woZSx0KXtlLmRlbGV0ZSh0KSxJLmNoaWxkTm9kZXModCkuZm9yRWFjaCh0PT5LbChlLHQpKX1mdW5jdGlvbiBxbChlLHQsbil7cmV0dXJuIGUubGVuZ3RoIT09MCYmZnVuY3Rpb24oZSx0LG4pe2xldCByPUkucGFyZW50Tm9kZSh0KTtmb3IoO3I7KXtsZXQgdD1uLmdldElkKHIpO2lmKGUuc29tZShlPT5lLmlkPT09dCkpcmV0dXJuITA7cj1JLnBhcmVudE5vZGUocil9cmV0dXJuITF9KGUsdCxuKX1mdW5jdGlvbiBKbChlLHQpe3JldHVybiBlLnNpemUhPT0wJiZZbChlLHQpfWZ1bmN0aW9uIFlsKGUsdCl7bGV0IG49SS5wYXJlbnROb2RlKHQpO3JldHVybiEhbiYmKCEhZS5oYXMobil8fFlsKGUsbikpfXZhciBYbCxIPWU9PlhsPyguLi50KT0+e3RyeXtyZXR1cm4gZSguLi50KX1jYXRjaChlKXtpZihYbCYmWGwoZSk9PT0hMClyZXR1cm47dGhyb3cgZX19OmUsWmw9W107ZnVuY3Rpb24gUWwoZSl7dHJ5e2lmKGBjb21wb3NlZFBhdGhgaW4gZSl7bGV0IHQ9ZS5jb21wb3NlZFBhdGgoKTtpZih0Lmxlbmd0aClyZXR1cm4gdFswXX1lbHNlIGlmKGBwYXRoYGluIGUmJmUucGF0aC5sZW5ndGgpcmV0dXJuIGUucGF0aFswXX1jYXRjaHt9cmV0dXJuIGUmJmUudGFyZ2V0fWZ1bmN0aW9uICRsKGUsdCl7bGV0IG49bmV3IEdsO1psLnB1c2gobiksbi5pbml0KGUpO2xldCByPW5ldyh2bCgpKShIKG4ucHJvY2Vzc011dGF0aW9ucy5iaW5kKG4pKSk7cmV0dXJuIHIub2JzZXJ2ZSh0LHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZU9sZFZhbHVlOiEwLGNoYXJhY3RlckRhdGE6ITAsY2hhcmFjdGVyRGF0YU9sZFZhbHVlOiEwLGNoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSkscn1mdW5jdGlvbiBldSh7bW91c2VJbnRlcmFjdGlvbkNiOmUsZG9jOnQsbWlycm9yOm4sYmxvY2tDbGFzczpyLGJsb2NrU2VsZWN0b3I6aSxzYW1wbGluZzphfSl7aWYoYS5tb3VzZUludGVyYWN0aW9uPT09ITEpcmV0dXJuKCk9Pnt9O2xldCBvPWEubW91c2VJbnRlcmFjdGlvbj09PSEwfHxhLm1vdXNlSW50ZXJhY3Rpb249PT12b2lkIDA/e306YS5tb3VzZUludGVyYWN0aW9uLHM9W10sYz1udWxsO3JldHVybiBPYmplY3Qua2V5cyhWKS5maWx0ZXIoZT0+TnVtYmVyLmlzTmFOKE51bWJlcihlKSkmJiFlLmVuZHNXaXRoKGBfRGVwYXJ0ZWRgKSYmb1tlXSE9PSExKS5mb3JFYWNoKGE9PntsZXQgbz1odChhKSxsPSh0PT5hPT57bGV0IG89UWwoYSk7aWYoUihvLHIsaSwhMCkpcmV0dXJuO2xldCBzPW51bGwsbD10O2lmKGBwb2ludGVyVHlwZWBpbiBhKXtzd2l0Y2goYS5wb2ludGVyVHlwZSl7Y2FzZWBtb3VzZWA6cz16bC5Nb3VzZTticmVhaztjYXNlYHRvdWNoYDpzPXpsLlRvdWNoO2JyZWFrO2Nhc2VgcGVuYDpzPXpsLlBlbn1zPT09emwuVG91Y2g/Vlt0XT09PVYuTW91c2VEb3duP2w9YFRvdWNoU3RhcnRgOlZbdF09PT1WLk1vdXNlVXAmJihsPWBUb3VjaEVuZGApOnpsLlBlbn1lbHNlIGpsKGEpJiYocz16bC5Ub3VjaCk7cz09PW51bGw/Vlt0XT09PVYuQ2xpY2smJihzPWMsYz1udWxsKTooYz1zLChsLnN0YXJ0c1dpdGgoYFRvdWNoYCkmJnM9PT16bC5Ub3VjaHx8bC5zdGFydHNXaXRoKGBNb3VzZWApJiZzPT09emwuTW91c2UpJiYocz1udWxsKSk7bGV0IHU9amwoYSk/YS5jaGFuZ2VkVG91Y2hlc1swXTphO2lmKCF1KXJldHVybjtsZXQgZD1uLmdldElkKG8pLHtjbGllbnRYOmYsY2xpZW50WTpwfT11O0goZSkoe3R5cGU6VltsXSxpZDpkLHg6Zix5OnAsLi4ucyE9PW51bGwmJntwb2ludGVyVHlwZTpzfX0pfSkoYSk7aWYod2luZG93LlBvaW50ZXJFdmVudClzd2l0Y2goVlthXSl7Y2FzZSBWLk1vdXNlRG93bjpjYXNlIFYuTW91c2VVcDpvPW8ucmVwbGFjZShgbW91c2VgLGBwb2ludGVyYCk7YnJlYWs7Y2FzZSBWLlRvdWNoU3RhcnQ6Y2FzZSBWLlRvdWNoRW5kOnJldHVybn1zLnB1c2goTChvLGwsdCkpfSksSCgoKT0+e3MuZm9yRWFjaChlPT5lKCkpfSl9ZnVuY3Rpb24gdHUoe3Njcm9sbENiOmUsZG9jOnQsbWlycm9yOm4sYmxvY2tDbGFzczpyLGJsb2NrU2VsZWN0b3I6aSxzYW1wbGluZzphfSl7cmV0dXJuIEwoYHNjcm9sbGAsSCh4bChIKGE9PntsZXQgbz1RbChhKTtpZighb3x8UihvLHIsaSwhMCkpcmV0dXJuO2xldCBzPW4uZ2V0SWQobyk7aWYobz09PXQmJnQuZGVmYXVsdFZpZXcpe2xldCBuPVRsKHQuZGVmYXVsdFZpZXcpO2Uoe2lkOnMseDpuLmxlZnQseTpuLnRvcH0pfWVsc2UgZSh7aWQ6cyx4Om8uc2Nyb2xsTGVmdCx5Om8uc2Nyb2xsVG9wfSl9KSxhLnNjcm9sbHx8MTAwKSksdCl9dmFyIG51PVtgSU5QVVRgLGBURVhUQVJFQWAsYFNFTEVDVGBdLHJ1PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGl1KGUpe3JldHVybiBmdW5jdGlvbihlLHQpe2lmKGN1KGBDU1NHcm91cGluZ1J1bGVgKSYmZS5wYXJlbnRSdWxlIGluc3RhbmNlb2YgQ1NTR3JvdXBpbmdSdWxlfHxjdShgQ1NTTWVkaWFSdWxlYCkmJmUucGFyZW50UnVsZSBpbnN0YW5jZW9mIENTU01lZGlhUnVsZXx8Y3UoYENTU1N1cHBvcnRzUnVsZWApJiZlLnBhcmVudFJ1bGUgaW5zdGFuY2VvZiBDU1NTdXBwb3J0c1J1bGV8fGN1KGBDU1NDb25kaXRpb25SdWxlYCkmJmUucGFyZW50UnVsZSBpbnN0YW5jZW9mIENTU0NvbmRpdGlvblJ1bGUpe2xldCBuPUFycmF5LmZyb20oZS5wYXJlbnRSdWxlLmNzc1J1bGVzKS5pbmRleE9mKGUpO3QudW5zaGlmdChuKX1lbHNlIGlmKGUucGFyZW50U3R5bGVTaGVldCl7bGV0IG49QXJyYXkuZnJvbShlLnBhcmVudFN0eWxlU2hlZXQuY3NzUnVsZXMpLmluZGV4T2YoZSk7dC51bnNoaWZ0KG4pfXJldHVybiB0fShlLFtdKX1mdW5jdGlvbiBhdShlLHQsbil7bGV0IHIsaTtyZXR1cm4gZT8oZS5vd25lck5vZGU/cj10LmdldElkKGUub3duZXJOb2RlKTppPW4uZ2V0SWQoZSkse3N0eWxlSWQ6aSxpZDpyfSk6e319ZnVuY3Rpb24gb3Uoe21pcnJvcjplLHN0eWxlc2hlZXRNYW5hZ2VyOnR9LG4pe3ZhciByLGksYTtsZXQgbz1udWxsO289bi5ub2RlTmFtZT09PWAjZG9jdW1lbnRgP2UuZ2V0SWQobik6ZS5nZXRJZChJLmhvc3QobikpO2xldCBzPW4ubm9kZU5hbWU9PT1gI2RvY3VtZW50YD8ocj1uLmRlZmF1bHRWaWV3KT09bnVsbD92b2lkIDA6ci5Eb2N1bWVudDooYT0oaT1uLm93bmVyRG9jdW1lbnQpPT1udWxsP3ZvaWQgMDppLmRlZmF1bHRWaWV3KT09bnVsbD92b2lkIDA6YS5TaGFkb3dSb290LGM9cyE9bnVsbCYmcy5wcm90b3R5cGU/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzPT1udWxsP3ZvaWQgMDpzLnByb3RvdHlwZSxgYWRvcHRlZFN0eWxlU2hlZXRzYCk6dm9pZCAwO3JldHVybiBvIT09bnVsbCYmbyE9PS0xJiZzJiZjPyhPYmplY3QuZGVmaW5lUHJvcGVydHkobixgYWRvcHRlZFN0eWxlU2hlZXRzYCx7Y29uZmlndXJhYmxlOmMuY29uZmlndXJhYmxlLGVudW1lcmFibGU6Yy5lbnVtZXJhYmxlLGdldCgpe3ZhciBlO3JldHVybihlPWMuZ2V0KT09bnVsbD92b2lkIDA6ZS5jYWxsKHRoaXMpfSxzZXQoZSl7dmFyIG47bGV0IHI9KG49Yy5zZXQpPT1udWxsP3ZvaWQgMDpuLmNhbGwodGhpcyxlKTtpZihvIT09bnVsbCYmbyE9PS0xKXRyeXt0LmFkb3B0U3R5bGVTaGVldHMoZSxvKX1jYXRjaHt9cmV0dXJuIHJ9fSksSCgoKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGBhZG9wdGVkU3R5bGVTaGVldHNgLHtjb25maWd1cmFibGU6Yy5jb25maWd1cmFibGUsZW51bWVyYWJsZTpjLmVudW1lcmFibGUsZ2V0OmMuZ2V0LHNldDpjLnNldH0pfSkpOigpPT57fX1mdW5jdGlvbiBzdShlLHQ9e30pe2xldCBuPWUuZG9jLmRlZmF1bHRWaWV3O2lmKCFuKXJldHVybigpPT57fTtsZXQgcjsoZnVuY3Rpb24oZSx0KXtsZXR7bXV0YXRpb25DYjpuLG1vdXNlbW92ZUNiOnIsbW91c2VJbnRlcmFjdGlvbkNiOmksc2Nyb2xsQ2I6YSx2aWV3cG9ydFJlc2l6ZUNiOm8saW5wdXRDYjpzLG1lZGlhSW50ZXJhY3Rpb25DYjpjLHN0eWxlU2hlZXRSdWxlQ2I6bCxzdHlsZURlY2xhcmF0aW9uQ2I6dSxjYW52YXNNdXRhdGlvbkNiOmQsZm9udENiOmYsc2VsZWN0aW9uQ2I6cCxjdXN0b21FbGVtZW50Q2I6bX09ZTtlLm11dGF0aW9uQ2I9KC4uLmUpPT57dC5tdXRhdGlvbiYmdC5tdXRhdGlvbiguLi5lKSxuKC4uLmUpfSxlLm1vdXNlbW92ZUNiPSguLi5lKT0+e3QubW91c2Vtb3ZlJiZ0Lm1vdXNlbW92ZSguLi5lKSxyKC4uLmUpfSxlLm1vdXNlSW50ZXJhY3Rpb25DYj0oLi4uZSk9Pnt0Lm1vdXNlSW50ZXJhY3Rpb24mJnQubW91c2VJbnRlcmFjdGlvbiguLi5lKSxpKC4uLmUpfSxlLnNjcm9sbENiPSguLi5lKT0+e3Quc2Nyb2xsJiZ0LnNjcm9sbCguLi5lKSxhKC4uLmUpfSxlLnZpZXdwb3J0UmVzaXplQ2I9KC4uLmUpPT57dC52aWV3cG9ydFJlc2l6ZSYmdC52aWV3cG9ydFJlc2l6ZSguLi5lKSxvKC4uLmUpfSxlLmlucHV0Q2I9KC4uLmUpPT57dC5pbnB1dCYmdC5pbnB1dCguLi5lKSxzKC4uLmUpfSxlLm1lZGlhSW50ZXJhY3Rpb25DYj0oLi4uZSk9Pnt0Lm1lZGlhSW50ZWFjdGlvbiYmdC5tZWRpYUludGVhY3Rpb24oLi4uZSksYyguLi5lKX0sZS5zdHlsZVNoZWV0UnVsZUNiPSguLi5lKT0+e3Quc3R5bGVTaGVldFJ1bGUmJnQuc3R5bGVTaGVldFJ1bGUoLi4uZSksbCguLi5lKX0sZS5zdHlsZURlY2xhcmF0aW9uQ2I9KC4uLmUpPT57dC5zdHlsZURlY2xhcmF0aW9uJiZ0LnN0eWxlRGVjbGFyYXRpb24oLi4uZSksdSguLi5lKX0sZS5jYW52YXNNdXRhdGlvbkNiPSguLi5lKT0+e3QuY2FudmFzTXV0YXRpb24mJnQuY2FudmFzTXV0YXRpb24oLi4uZSksZCguLi5lKX0sZS5mb250Q2I9KC4uLmUpPT57dC5mb250JiZ0LmZvbnQoLi4uZSksZiguLi5lKX0sZS5zZWxlY3Rpb25DYj0oLi4uZSk9Pnt0LnNlbGVjdGlvbiYmdC5zZWxlY3Rpb24oLi4uZSkscCguLi5lKX0sZS5jdXN0b21FbGVtZW50Q2I9KC4uLmUpPT57dC5jdXN0b21FbGVtZW50JiZ0LmN1c3RvbUVsZW1lbnQoLi4uZSksbSguLi5lKX19KShlLHQpLGUucmVjb3JkRE9NJiYocj0kbChlLGUuZG9jKSk7bGV0IGk9ZnVuY3Rpb24oe21vdXNlbW92ZUNiOmUsc2FtcGxpbmc6dCxkb2M6bixtaXJyb3I6cn0pe2lmKHQubW91c2Vtb3ZlPT09ITEpcmV0dXJuKCk9Pnt9O2xldCBpPXR5cGVvZiB0Lm1vdXNlbW92ZT09YG51bWJlcmA/dC5tb3VzZW1vdmU6NTAsYT10eXBlb2YgdC5tb3VzZW1vdmVDYWxsYmFjaz09YG51bWJlcmA/dC5tb3VzZW1vdmVDYWxsYmFjazo1MDAsbyxzPVtdLGM9eGwoSCh0PT57bGV0IG49RGF0ZS5ub3coKS1vO2Uocy5tYXAoZT0+KGUudGltZU9mZnNldC09bixlKSksdCkscz1bXSxvPW51bGx9KSxhKSxsPUgoeGwoSChlPT57bGV0IHQ9UWwoZSkse2NsaWVudFg6bixjbGllbnRZOml9PWpsKGUpP2UuY2hhbmdlZFRvdWNoZXNbMF06ZTtvfHwobz13bCgpKSxzLnB1c2goe3g6bix5OmksaWQ6ci5nZXRJZCh0KSx0aW1lT2Zmc2V0OndsKCktb30pLGModHlwZW9mIERyYWdFdmVudDxgdWAmJmUgaW5zdGFuY2VvZiBEcmFnRXZlbnQ/Qi5EcmFnOmUgaW5zdGFuY2VvZiBNb3VzZUV2ZW50P0IuTW91c2VNb3ZlOkIuVG91Y2hNb3ZlKX0pLGkse3RyYWlsaW5nOiExfSkpLHU9W0woYG1vdXNlbW92ZWAsbCxuKSxMKGB0b3VjaG1vdmVgLGwsbiksTChgZHJhZ2AsbCxuKV07cmV0dXJuIEgoKCk9Pnt1LmZvckVhY2goZT0+ZSgpKX0pfShlKSxhPWV1KGUpLG89dHUoZSkscz1mdW5jdGlvbih7dmlld3BvcnRSZXNpemVDYjplfSx7d2luOnR9KXtsZXQgbj0tMSxyPS0xO3JldHVybiBMKGByZXNpemVgLEgoeGwoSCgoKT0+e2xldCB0PUVsKCksaT1EbCgpO249PT10JiZyPT09aXx8KGUoe3dpZHRoOk51bWJlcihpKSxoZWlnaHQ6TnVtYmVyKHQpfSksbj10LHI9aSl9KSwyMDApKSx0KX0oZSx7d2luOm59KSxjPWZ1bmN0aW9uKHtpbnB1dENiOmUsZG9jOnQsbWlycm9yOm4sYmxvY2tDbGFzczpyLGJsb2NrU2VsZWN0b3I6aSxpZ25vcmVDbGFzczphLGlnbm9yZVNlbGVjdG9yOm8sbWFza0lucHV0T3B0aW9uczpzLG1hc2tJbnB1dEZuOmMsc2FtcGxpbmc6bCx1c2VyVHJpZ2dlcmVkT25JbnB1dDp1fSl7ZnVuY3Rpb24gZChlKXtsZXQgbj1RbChlKSxsPWUuaXNUcnVzdGVkLGQ9biYmbi50YWdOYW1lO2lmKG4mJmQ9PT1gT1BUSU9OYCYmKG49SS5wYXJlbnRFbGVtZW50KG4pKSwhbnx8IWR8fG51LmluZGV4T2YoZCk8MHx8UihuLHIsaSwhMCl8fG4uY2xhc3NMaXN0LmNvbnRhaW5zKGEpfHxvJiZuLm1hdGNoZXMobykpcmV0dXJuO2xldCBwPW4udmFsdWUsbT0hMSxoPV90KG4pfHxgYDtoPT09YHJhZGlvYHx8aD09PWBjaGVja2JveGA/bT1uLmNoZWNrZWQ6KHNbZC50b0xvd2VyQ2FzZSgpXXx8c1toXSkmJihwPW10KHtlbGVtZW50Om4sbWFza0lucHV0T3B0aW9uczpzLHRhZ05hbWU6ZCx0eXBlOmgsdmFsdWU6cCxtYXNrSW5wdXRGbjpjfSkpLGYobix1P3t0ZXh0OnAsaXNDaGVja2VkOm0sdXNlclRyaWdnZXJlZDpsfTp7dGV4dDpwLGlzQ2hlY2tlZDptfSk7bGV0IGc9bi5uYW1lO2g9PT1gcmFkaW9gJiZnJiZtJiZ0LnF1ZXJ5U2VsZWN0b3JBbGwoYGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0iJHtnfSJdYCkuZm9yRWFjaChlPT57aWYoZSE9PW4pe2xldCB0PWUudmFsdWU7ZihlLHU/e3RleHQ6dCxpc0NoZWNrZWQ6IW0sdXNlclRyaWdnZXJlZDohMX06e3RleHQ6dCxpc0NoZWNrZWQ6IW19KX19KX1mdW5jdGlvbiBmKHQscil7bGV0IGk9cnUuZ2V0KHQpO2lmKCFpfHxpLnRleHQhPT1yLnRleHR8fGkuaXNDaGVja2VkIT09ci5pc0NoZWNrZWQpe3J1LnNldCh0LHIpO2xldCBpPW4uZ2V0SWQodCk7SChlKSh7Li4ucixpZDppfSl9fWxldCBwPShsLmlucHV0PT09YGxhc3RgP1tgY2hhbmdlYF06W2BpbnB1dGAsYGNoYW5nZWBdKS5tYXAoZT0+TChlLEgoZCksdCkpLG09dC5kZWZhdWx0VmlldztpZighbSlyZXR1cm4oKT0+e3AuZm9yRWFjaChlPT5lKCkpfTtsZXQgaD1tLk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobS5IVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZSxgdmFsdWVgKSxnPVtbbS5IVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZSxgdmFsdWVgXSxbbS5IVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZSxgY2hlY2tlZGBdLFttLkhUTUxTZWxlY3RFbGVtZW50LnByb3RvdHlwZSxgdmFsdWVgXSxbbS5IVE1MVGV4dEFyZWFFbGVtZW50LnByb3RvdHlwZSxgdmFsdWVgXSxbbS5IVE1MU2VsZWN0RWxlbWVudC5wcm90b3R5cGUsYHNlbGVjdGVkSW5kZXhgXSxbbS5IVE1MT3B0aW9uRWxlbWVudC5wcm90b3R5cGUsYHNlbGVjdGVkYF1dO3JldHVybiBoJiZoLnNldCYmcC5wdXNoKC4uLmcubWFwKGU9PlNsKGVbMF0sZVsxXSx7c2V0KCl7SChkKSh7dGFyZ2V0OnRoaXMsaXNUcnVzdGVkOiExfSl9fSwhMSxtKSkpLEgoKCk9PntwLmZvckVhY2goZT0+ZSgpKX0pfShlKSxsPWZ1bmN0aW9uKHttZWRpYUludGVyYWN0aW9uQ2I6ZSxibG9ja0NsYXNzOnQsYmxvY2tTZWxlY3RvcjpuLG1pcnJvcjpyLHNhbXBsaW5nOmksZG9jOmF9KXtsZXQgbz1IKGE9PnhsKEgoaT0+e2xldCBvPVFsKGkpO2lmKCFvfHxSKG8sdCxuLCEwKSlyZXR1cm47bGV0e2N1cnJlbnRUaW1lOnMsdm9sdW1lOmMsbXV0ZWQ6bCxwbGF5YmFja1JhdGU6dSxsb29wOmR9PW87ZSh7dHlwZTphLGlkOnIuZ2V0SWQobyksY3VycmVudFRpbWU6cyx2b2x1bWU6YyxtdXRlZDpsLHBsYXliYWNrUmF0ZTp1LGxvb3A6ZH0pfSksaS5tZWRpYXx8NTAwKSkscz1bTChgcGxheWAsbyhWbC5QbGF5KSxhKSxMKGBwYXVzZWAsbyhWbC5QYXVzZSksYSksTChgc2Vla2VkYCxvKFZsLlNlZWtlZCksYSksTChgdm9sdW1lY2hhbmdlYCxvKFZsLlZvbHVtZUNoYW5nZSksYSksTChgcmF0ZWNoYW5nZWAsbyhWbC5SYXRlQ2hhbmdlKSxhKV07cmV0dXJuIEgoKCk9PntzLmZvckVhY2goZT0+ZSgpKX0pfShlKSx1PSgpPT57fSxkPSgpPT57fSxmPSgpPT57fSxwPSgpPT57fTtlLnJlY29yZERPTSYmKHU9ZnVuY3Rpb24oe3N0eWxlU2hlZXRSdWxlQ2I6ZSxtaXJyb3I6dCxzdHlsZXNoZWV0TWFuYWdlcjpufSx7d2luOnJ9KXtpZighci5DU1NTdHlsZVNoZWV0fHwhci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZSlyZXR1cm4oKT0+e307bGV0IGk9ci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5pbnNlcnRSdWxlO3IuQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUuaW5zZXJ0UnVsZT1uZXcgUHJveHkoaSx7YXBwbHk6SCgocixpLGEpPT57bGV0W28sc109YSx7aWQ6YyxzdHlsZUlkOmx9PWF1KGksdCxuLnN0eWxlTWlycm9yKTtyZXR1cm4oYyYmYyE9PS0xfHxsJiZsIT09LTEpJiZlKHtpZDpjLHN0eWxlSWQ6bCxhZGRzOlt7cnVsZTpvLGluZGV4OnN9XX0pLHIuYXBwbHkoaSxhKX0pfSksci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5hZGRSdWxlPWZ1bmN0aW9uKGUsdCxuPXRoaXMuY3NzUnVsZXMubGVuZ3RoKXtsZXQgaT1gJHtlfSB7ICR7dH0gfWA7cmV0dXJuIHIuQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUuaW5zZXJ0UnVsZS5hcHBseSh0aGlzLFtpLG5dKX07bGV0IGE9ci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5kZWxldGVSdWxlLG8scztyLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlLmRlbGV0ZVJ1bGU9bmV3IFByb3h5KGEse2FwcGx5OkgoKHIsaSxhKT0+e2xldFtvXT1hLHtpZDpzLHN0eWxlSWQ6Y309YXUoaSx0LG4uc3R5bGVNaXJyb3IpO3JldHVybihzJiZzIT09LTF8fGMmJmMhPT0tMSkmJmUoe2lkOnMsc3R5bGVJZDpjLHJlbW92ZXM6W3tpbmRleDpvfV19KSxyLmFwcGx5KGksYSl9KX0pLHIuQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUucmVtb3ZlUnVsZT1mdW5jdGlvbihlKXtyZXR1cm4gci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5kZWxldGVSdWxlLmFwcGx5KHRoaXMsW2VdKX0sci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5yZXBsYWNlJiYobz1yLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlLnJlcGxhY2Usci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5yZXBsYWNlPW5ldyBQcm94eShvLHthcHBseTpIKChyLGksYSk9PntsZXRbb109YSx7aWQ6cyxzdHlsZUlkOmN9PWF1KGksdCxuLnN0eWxlTWlycm9yKTtyZXR1cm4ocyYmcyE9PS0xfHxjJiZjIT09LTEpJiZlKHtpZDpzLHN0eWxlSWQ6YyxyZXBsYWNlOm99KSxyLmFwcGx5KGksYSl9KX0pKSxyLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlLnJlcGxhY2VTeW5jJiYocz1yLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlLnJlcGxhY2VTeW5jLHIuQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUucmVwbGFjZVN5bmM9bmV3IFByb3h5KHMse2FwcGx5OkgoKHIsaSxhKT0+e2xldFtvXT1hLHtpZDpzLHN0eWxlSWQ6Y309YXUoaSx0LG4uc3R5bGVNaXJyb3IpO3JldHVybihzJiZzIT09LTF8fGMmJmMhPT0tMSkmJmUoe2lkOnMsc3R5bGVJZDpjLHJlcGxhY2VTeW5jOm99KSxyLmFwcGx5KGksYSl9KX0pKTtsZXQgYz17fTtsdShgQ1NTR3JvdXBpbmdSdWxlYCk/Yy5DU1NHcm91cGluZ1J1bGU9ci5DU1NHcm91cGluZ1J1bGU6KGx1KGBDU1NNZWRpYVJ1bGVgKSYmKGMuQ1NTTWVkaWFSdWxlPXIuQ1NTTWVkaWFSdWxlKSxsdShgQ1NTQ29uZGl0aW9uUnVsZWApJiYoYy5DU1NDb25kaXRpb25SdWxlPXIuQ1NTQ29uZGl0aW9uUnVsZSksbHUoYENTU1N1cHBvcnRzUnVsZWApJiYoYy5DU1NTdXBwb3J0c1J1bGU9ci5DU1NTdXBwb3J0c1J1bGUpKTtsZXQgbD17fTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoYykuZm9yRWFjaCgoW3IsaV0pPT57bFtyXT17aW5zZXJ0UnVsZTppLnByb3RvdHlwZS5pbnNlcnRSdWxlLGRlbGV0ZVJ1bGU6aS5wcm90b3R5cGUuZGVsZXRlUnVsZX0saS5wcm90b3R5cGUuaW5zZXJ0UnVsZT1uZXcgUHJveHkobFtyXS5pbnNlcnRSdWxlLHthcHBseTpIKChyLGksYSk9PntsZXRbbyxzXT1hLHtpZDpjLHN0eWxlSWQ6bH09YXUoaS5wYXJlbnRTdHlsZVNoZWV0LHQsbi5zdHlsZU1pcnJvcik7cmV0dXJuKGMmJmMhPT0tMXx8bCYmbCE9PS0xKSYmZSh7aWQ6YyxzdHlsZUlkOmwsYWRkczpbe3J1bGU6byxpbmRleDpbLi4uaXUoaSksc3x8MF19XX0pLHIuYXBwbHkoaSxhKX0pfSksaS5wcm90b3R5cGUuZGVsZXRlUnVsZT1uZXcgUHJveHkobFtyXS5kZWxldGVSdWxlLHthcHBseTpIKChyLGksYSk9PntsZXRbb109YSx7aWQ6cyxzdHlsZUlkOmN9PWF1KGkucGFyZW50U3R5bGVTaGVldCx0LG4uc3R5bGVNaXJyb3IpO3JldHVybihzJiZzIT09LTF8fGMmJmMhPT0tMSkmJmUoe2lkOnMsc3R5bGVJZDpjLHJlbW92ZXM6W3tpbmRleDpbLi4uaXUoaSksb119XX0pLHIuYXBwbHkoaSxhKX0pfSl9KSxIKCgpPT57ci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5pbnNlcnRSdWxlPWksci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5kZWxldGVSdWxlPWEsbyYmKHIuQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUucmVwbGFjZT1vKSxzJiYoci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5yZXBsYWNlU3luYz1zKSxPYmplY3QuZW50cmllcyhjKS5mb3JFYWNoKChbZSx0XSk9Pnt0LnByb3RvdHlwZS5pbnNlcnRSdWxlPWxbZV0uaW5zZXJ0UnVsZSx0LnByb3RvdHlwZS5kZWxldGVSdWxlPWxbZV0uZGVsZXRlUnVsZX0pfSl9KGUse3dpbjpufSksZD1vdShlLGUuZG9jKSxmPWZ1bmN0aW9uKHtzdHlsZURlY2xhcmF0aW9uQ2I6ZSxtaXJyb3I6dCxpZ25vcmVDU1NBdHRyaWJ1dGVzOm4sc3R5bGVzaGVldE1hbmFnZXI6cn0se3dpbjppfSl7bGV0IGE9aS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5zZXRQcm9wZXJ0eTtpLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLnNldFByb3BlcnR5PW5ldyBQcm94eShhLHthcHBseTpIKChpLG8scyk9Pnt2YXIgYztsZXRbbCx1LGRdPXM7aWYobi5oYXMobCkpcmV0dXJuIGEuYXBwbHkobyxbbCx1LGRdKTtsZXR7aWQ6ZixzdHlsZUlkOnB9PWF1KChjPW8ucGFyZW50UnVsZSk9PW51bGw/dm9pZCAwOmMucGFyZW50U3R5bGVTaGVldCx0LHIuc3R5bGVNaXJyb3IpO3JldHVybihmJiZmIT09LTF8fHAmJnAhPT0tMSkmJmUoe2lkOmYsc3R5bGVJZDpwLHNldDp7cHJvcGVydHk6bCx2YWx1ZTp1LHByaW9yaXR5OmR9LGluZGV4Oml1KG8ucGFyZW50UnVsZSl9KSxpLmFwcGx5KG8scyl9KX0pO2xldCBvPWkuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUucmVtb3ZlUHJvcGVydHk7cmV0dXJuIGkuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUucmVtb3ZlUHJvcGVydHk9bmV3IFByb3h5KG8se2FwcGx5OkgoKGksYSxzKT0+e3ZhciBjO2xldFtsXT1zO2lmKG4uaGFzKGwpKXJldHVybiBvLmFwcGx5KGEsW2xdKTtsZXR7aWQ6dSxzdHlsZUlkOmR9PWF1KChjPWEucGFyZW50UnVsZSk9PW51bGw/dm9pZCAwOmMucGFyZW50U3R5bGVTaGVldCx0LHIuc3R5bGVNaXJyb3IpO3JldHVybih1JiZ1IT09LTF8fGQmJmQhPT0tMSkmJmUoe2lkOnUsc3R5bGVJZDpkLHJlbW92ZTp7cHJvcGVydHk6bH0saW5kZXg6aXUoYS5wYXJlbnRSdWxlKX0pLGkuYXBwbHkoYSxzKX0pfSksSCgoKT0+e2kuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUuc2V0UHJvcGVydHk9YSxpLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLnJlbW92ZVByb3BlcnR5PW99KX0oZSx7d2luOm59KSxlLmNvbGxlY3RGb250cyYmKHA9ZnVuY3Rpb24oe2ZvbnRDYjplLGRvYzp0fSl7bGV0IG49dC5kZWZhdWx0VmlldztpZighbilyZXR1cm4oKT0+e307bGV0IHI9W10saT1uZXcgV2Vha01hcCxhPW4uRm9udEZhY2U7bi5Gb250RmFjZT1mdW5jdGlvbihlLHQsbil7bGV0IHI9bmV3IGEoZSx0LG4pO3JldHVybiBpLnNldChyLHtmYW1pbHk6ZSxidWZmZXI6dHlwZW9mIHQhPWBzdHJpbmdgLGRlc2NyaXB0b3JzOm4sZm9udFNvdXJjZTp0eXBlb2YgdD09YHN0cmluZ2A/dDpKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KHQpKSl9KSxyfTtsZXQgbz1DbCh0LmZvbnRzLGBhZGRgLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gc2V0VGltZW91dChIKCgpPT57bGV0IHQ9aS5nZXQobik7dCYmKGUodCksaS5kZWxldGUobikpfSksMCksdC5hcHBseSh0aGlzLFtuXSl9fSk7cmV0dXJuIHIucHVzaCgoKT0+e24uRm9udEZhY2U9YX0pLHIucHVzaChvKSxIKCgpPT57ci5mb3JFYWNoKGU9PmUoKSl9KX0oZSkpKTtsZXQgbT1mdW5jdGlvbihlKXtsZXR7ZG9jOnQsbWlycm9yOm4sYmxvY2tDbGFzczpyLGJsb2NrU2VsZWN0b3I6aSxzZWxlY3Rpb25DYjphfT1lLG89ITAscz1IKCgpPT57bGV0IGU9dC5nZXRTZWxlY3Rpb24oKTtpZighZXx8byYmZSE9bnVsbCYmZS5pc0NvbGxhcHNlZClyZXR1cm47bz1lLmlzQ29sbGFwc2VkfHwhMTtsZXQgcz1bXSxjPWUucmFuZ2VDb3VudHx8MDtmb3IobGV0IHQ9MDt0PGM7dCsrKXtsZXR7c3RhcnRDb250YWluZXI6YSxzdGFydE9mZnNldDpvLGVuZENvbnRhaW5lcjpjLGVuZE9mZnNldDpsfT1lLmdldFJhbmdlQXQodCk7UihhLHIsaSwhMCl8fFIoYyxyLGksITApfHxzLnB1c2goe3N0YXJ0Om4uZ2V0SWQoYSksc3RhcnRPZmZzZXQ6byxlbmQ6bi5nZXRJZChjKSxlbmRPZmZzZXQ6bH0pfWEoe3JhbmdlczpzfSl9KTtyZXR1cm4gcygpLEwoYHNlbGVjdGlvbmNoYW5nZWAscyl9KGUpLGg9ZnVuY3Rpb24oe2RvYzplLGN1c3RvbUVsZW1lbnRDYjp0fSl7bGV0IG49ZS5kZWZhdWx0VmlldztyZXR1cm4gbiYmbi5jdXN0b21FbGVtZW50cz9DbChuLmN1c3RvbUVsZW1lbnRzLGBkZWZpbmVgLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihuLHIsaSl7dHJ5e3Qoe2RlZmluZTp7bmFtZTpufX0pfWNhdGNoe2NvbnNvbGUud2FybihgQ3VzdG9tIGVsZW1lbnQgY2FsbGJhY2sgZmFpbGVkIGZvciAke259YCl9cmV0dXJuIGUuYXBwbHkodGhpcyxbbixyLGldKX19KTooKT0+e319KGUpLGc9W107Zm9yKGxldCB0IG9mIGUucGx1Z2lucylnLnB1c2godC5vYnNlcnZlcih0LmNhbGxiYWNrLG4sdC5vcHRpb25zKSk7cmV0dXJuIEgoKCk9PntabC5mb3JFYWNoKGU9PmUucmVzZXQoKSkscj09bnVsbHx8ci5kaXNjb25uZWN0KCksaSgpLGEoKSxvKCkscygpLGMoKSxsKCksdSgpLGQoKSxmKCkscCgpLG0oKSxoKCksZy5mb3JFYWNoKGU9PmUoKSl9KX1mdW5jdGlvbiBjdShlKXtyZXR1cm4gd2luZG93W2VdIT09dm9pZCAwfWZ1bmN0aW9uIGx1KGUpe3JldHVybiEhKHdpbmRvd1tlXSE9PXZvaWQgMCYmd2luZG93W2VdLnByb3RvdHlwZSYmYGluc2VydFJ1bGVgaW4gd2luZG93W2VdLnByb3RvdHlwZSYmYGRlbGV0ZVJ1bGVgaW4gd2luZG93W2VdLnByb3RvdHlwZSl9Zm9yKHZhciB1dT1jbGFzc3tjb25zdHJ1Y3RvcihlKXtFKHRoaXMsYGlmcmFtZUlkVG9SZW1vdGVJZE1hcGAsbmV3IFdlYWtNYXApLEUodGhpcyxgaWZyYW1lUmVtb3RlSWRUb0lkTWFwYCxuZXcgV2Vha01hcCksdGhpcy5nZW5lcmF0ZUlkRm49ZX1nZXRJZChlLHQsbixyKXtsZXQgaT1ufHx0aGlzLmdldElkVG9SZW1vdGVJZE1hcChlKSxhPXJ8fHRoaXMuZ2V0UmVtb3RlSWRUb0lkTWFwKGUpLG89aS5nZXQodCk7cmV0dXJuIG98fChvPXRoaXMuZ2VuZXJhdGVJZEZuKCksaS5zZXQodCxvKSxhLnNldChvLHQpKSxvfWdldElkcyhlLHQpe2xldCBuPXRoaXMuZ2V0SWRUb1JlbW90ZUlkTWFwKGUpLHI9dGhpcy5nZXRSZW1vdGVJZFRvSWRNYXAoZSk7cmV0dXJuIHQubWFwKHQ9PnRoaXMuZ2V0SWQoZSx0LG4scikpfWdldFJlbW90ZUlkKGUsdCxuKXtsZXQgcj1ufHx0aGlzLmdldFJlbW90ZUlkVG9JZE1hcChlKTtyZXR1cm4gdHlwZW9mIHQ9PWBudW1iZXJgP3IuZ2V0KHQpfHwtMTp0fWdldFJlbW90ZUlkcyhlLHQpe2xldCBuPXRoaXMuZ2V0UmVtb3RlSWRUb0lkTWFwKGUpO3JldHVybiB0Lm1hcCh0PT50aGlzLmdldFJlbW90ZUlkKGUsdCxuKSl9cmVzZXQoZSl7aWYoIWUpcmV0dXJuIHRoaXMuaWZyYW1lSWRUb1JlbW90ZUlkTWFwPW5ldyBXZWFrTWFwLHZvaWQodGhpcy5pZnJhbWVSZW1vdGVJZFRvSWRNYXA9bmV3IFdlYWtNYXApO3RoaXMuaWZyYW1lSWRUb1JlbW90ZUlkTWFwLmRlbGV0ZShlKSx0aGlzLmlmcmFtZVJlbW90ZUlkVG9JZE1hcC5kZWxldGUoZSl9Z2V0SWRUb1JlbW90ZUlkTWFwKGUpe2xldCB0PXRoaXMuaWZyYW1lSWRUb1JlbW90ZUlkTWFwLmdldChlKTtyZXR1cm4gdHx8KHQ9bmV3IE1hcCx0aGlzLmlmcmFtZUlkVG9SZW1vdGVJZE1hcC5zZXQoZSx0KSksdH1nZXRSZW1vdGVJZFRvSWRNYXAoZSl7bGV0IHQ9dGhpcy5pZnJhbWVSZW1vdGVJZFRvSWRNYXAuZ2V0KGUpO3JldHVybiB0fHwodD1uZXcgTWFwLHRoaXMuaWZyYW1lUmVtb3RlSWRUb0lkTWFwLnNldChlLHQpKSx0fX0sZHU9Y2xhc3N7Y29uc3RydWN0b3IoZSl7RSh0aGlzLGBpZnJhbWVzYCxuZXcgV2Vha01hcCksRSh0aGlzLGBjcm9zc09yaWdpbklmcmFtZU1hcGAsbmV3IFdlYWtNYXApLEUodGhpcyxgY3Jvc3NPcmlnaW5JZnJhbWVNaXJyb3JgLG5ldyB1dShFdCkpLEUodGhpcyxgY3Jvc3NPcmlnaW5JZnJhbWVTdHlsZU1pcnJvcmApLEUodGhpcyxgY3Jvc3NPcmlnaW5JZnJhbWVSb290SWRNYXBgLG5ldyBXZWFrTWFwKSxFKHRoaXMsYG1pcnJvcmApLEUodGhpcyxgbXV0YXRpb25DYmApLEUodGhpcyxgd3JhcHBlZEVtaXRgKSxFKHRoaXMsYGxvYWRMaXN0ZW5lcmApLEUodGhpcyxgc3R5bGVzaGVldE1hbmFnZXJgKSxFKHRoaXMsYHJlY29yZENyb3NzT3JpZ2luSWZyYW1lc2ApLHRoaXMubXV0YXRpb25DYj1lLm11dGF0aW9uQ2IsdGhpcy53cmFwcGVkRW1pdD1lLndyYXBwZWRFbWl0LHRoaXMuc3R5bGVzaGVldE1hbmFnZXI9ZS5zdHlsZXNoZWV0TWFuYWdlcix0aGlzLnJlY29yZENyb3NzT3JpZ2luSWZyYW1lcz1lLnJlY29yZENyb3NzT3JpZ2luSWZyYW1lcyx0aGlzLmNyb3NzT3JpZ2luSWZyYW1lU3R5bGVNaXJyb3I9bmV3IHV1KHRoaXMuc3R5bGVzaGVldE1hbmFnZXIuc3R5bGVNaXJyb3IuZ2VuZXJhdGVJZC5iaW5kKHRoaXMuc3R5bGVzaGVldE1hbmFnZXIuc3R5bGVNaXJyb3IpKSx0aGlzLm1pcnJvcj1lLm1pcnJvcix0aGlzLnJlY29yZENyb3NzT3JpZ2luSWZyYW1lcyYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYG1lc3NhZ2VgLHRoaXMuaGFuZGxlTWVzc2FnZS5iaW5kKHRoaXMpKX1hZGRJZnJhbWUoZSl7dGhpcy5pZnJhbWVzLnNldChlLCEwKSxlLmNvbnRlbnRXaW5kb3cmJnRoaXMuY3Jvc3NPcmlnaW5JZnJhbWVNYXAuc2V0KGUuY29udGVudFdpbmRvdyxlKX1hZGRMb2FkTGlzdGVuZXIoZSl7dGhpcy5sb2FkTGlzdGVuZXI9ZX1hdHRhY2hJZnJhbWUoZSx0KXt2YXIgbixyO3RoaXMubXV0YXRpb25DYih7YWRkczpbe3BhcmVudElkOnRoaXMubWlycm9yLmdldElkKGUpLG5leHRJZDpudWxsLG5vZGU6dH1dLHJlbW92ZXM6W10sdGV4dHM6W10sYXR0cmlidXRlczpbXSxpc0F0dGFjaElmcmFtZTohMH0pLHRoaXMucmVjb3JkQ3Jvc3NPcmlnaW5JZnJhbWVzJiYoKG49ZS5jb250ZW50V2luZG93KT09bnVsbHx8bi5hZGRFdmVudExpc3RlbmVyKGBtZXNzYWdlYCx0aGlzLmhhbmRsZU1lc3NhZ2UuYmluZCh0aGlzKSkpLChyPXRoaXMubG9hZExpc3RlbmVyKT09bnVsbHx8ci5jYWxsKHRoaXMsZSksZS5jb250ZW50RG9jdW1lbnQmJmUuY29udGVudERvY3VtZW50LmFkb3B0ZWRTdHlsZVNoZWV0cyYmZS5jb250ZW50RG9jdW1lbnQuYWRvcHRlZFN0eWxlU2hlZXRzLmxlbmd0aD4wJiZ0aGlzLnN0eWxlc2hlZXRNYW5hZ2VyLmFkb3B0U3R5bGVTaGVldHMoZS5jb250ZW50RG9jdW1lbnQuYWRvcHRlZFN0eWxlU2hlZXRzLHRoaXMubWlycm9yLmdldElkKGUuY29udGVudERvY3VtZW50KSl9aGFuZGxlTWVzc2FnZShlKXtsZXQgdD1lO2lmKHQuZGF0YS50eXBlIT09YHJyd2ViYHx8dC5vcmlnaW4hPT10LmRhdGEub3JpZ2lufHwhZS5zb3VyY2UpcmV0dXJuO2xldCBuPXRoaXMuY3Jvc3NPcmlnaW5JZnJhbWVNYXAuZ2V0KGUuc291cmNlKTtpZighbilyZXR1cm47bGV0IHI9dGhpcy50cmFuc2Zvcm1Dcm9zc09yaWdpbkV2ZW50KG4sdC5kYXRhLmV2ZW50KTtyJiZ0aGlzLndyYXBwZWRFbWl0KHIsdC5kYXRhLmlzQ2hlY2tvdXQpfXRyYW5zZm9ybUNyb3NzT3JpZ2luRXZlbnQoZSx0KXt2YXIgbjtzd2l0Y2godC50eXBlKXtjYXNlIHouRnVsbFNuYXBzaG90Ont0aGlzLmNyb3NzT3JpZ2luSWZyYW1lTWlycm9yLnJlc2V0KGUpLHRoaXMuY3Jvc3NPcmlnaW5JZnJhbWVTdHlsZU1pcnJvci5yZXNldChlKSx0aGlzLnJlcGxhY2VJZE9uTm9kZSh0LmRhdGEubm9kZSxlKTtsZXQgbj10LmRhdGEubm9kZS5pZDtyZXR1cm4gdGhpcy5jcm9zc09yaWdpbklmcmFtZVJvb3RJZE1hcC5zZXQoZSxuKSx0aGlzLnBhdGNoUm9vdElkT25Ob2RlKHQuZGF0YS5ub2RlLG4pLHt0aW1lc3RhbXA6dC50aW1lc3RhbXAsdHlwZTp6LkluY3JlbWVudGFsU25hcHNob3QsZGF0YTp7c291cmNlOkIuTXV0YXRpb24sYWRkczpbe3BhcmVudElkOnRoaXMubWlycm9yLmdldElkKGUpLG5leHRJZDpudWxsLG5vZGU6dC5kYXRhLm5vZGV9XSxyZW1vdmVzOltdLHRleHRzOltdLGF0dHJpYnV0ZXM6W10saXNBdHRhY2hJZnJhbWU6ITB9fX1jYXNlIHouTWV0YTpjYXNlIHouTG9hZDpjYXNlIHouRG9tQ29udGVudExvYWRlZDpyZXR1cm4hMTtjYXNlIHouUGx1Z2luOnJldHVybiB0O2Nhc2Ugei5DdXN0b206cmV0dXJuIHRoaXMucmVwbGFjZUlkcyh0LmRhdGEucGF5bG9hZCxlLFtgaWRgLGBwYXJlbnRJZGAsYHByZXZpb3VzSWRgLGBuZXh0SWRgXSksdDtjYXNlIHouSW5jcmVtZW50YWxTbmFwc2hvdDpzd2l0Y2godC5kYXRhLnNvdXJjZSl7Y2FzZSBCLk11dGF0aW9uOnJldHVybiB0LmRhdGEuYWRkcy5mb3JFYWNoKHQ9Pnt0aGlzLnJlcGxhY2VJZHModCxlLFtgcGFyZW50SWRgLGBuZXh0SWRgLGBwcmV2aW91c0lkYF0pLHRoaXMucmVwbGFjZUlkT25Ob2RlKHQubm9kZSxlKTtsZXQgbj10aGlzLmNyb3NzT3JpZ2luSWZyYW1lUm9vdElkTWFwLmdldChlKTtuJiZ0aGlzLnBhdGNoUm9vdElkT25Ob2RlKHQubm9kZSxuKX0pLHQuZGF0YS5yZW1vdmVzLmZvckVhY2godD0+e3RoaXMucmVwbGFjZUlkcyh0LGUsW2BwYXJlbnRJZGAsYGlkYF0pfSksdC5kYXRhLmF0dHJpYnV0ZXMuZm9yRWFjaCh0PT57dGhpcy5yZXBsYWNlSWRzKHQsZSxbYGlkYF0pfSksdC5kYXRhLnRleHRzLmZvckVhY2godD0+e3RoaXMucmVwbGFjZUlkcyh0LGUsW2BpZGBdKX0pLHQ7Y2FzZSBCLkRyYWc6Y2FzZSBCLlRvdWNoTW92ZTpjYXNlIEIuTW91c2VNb3ZlOnJldHVybiB0LmRhdGEucG9zaXRpb25zLmZvckVhY2godD0+e3RoaXMucmVwbGFjZUlkcyh0LGUsW2BpZGBdKX0pLHQ7Y2FzZSBCLlZpZXdwb3J0UmVzaXplOnJldHVybiExO2Nhc2UgQi5NZWRpYUludGVyYWN0aW9uOmNhc2UgQi5Nb3VzZUludGVyYWN0aW9uOmNhc2UgQi5TY3JvbGw6Y2FzZSBCLkNhbnZhc011dGF0aW9uOmNhc2UgQi5JbnB1dDpyZXR1cm4gdGhpcy5yZXBsYWNlSWRzKHQuZGF0YSxlLFtgaWRgXSksdDtjYXNlIEIuU3R5bGVTaGVldFJ1bGU6Y2FzZSBCLlN0eWxlRGVjbGFyYXRpb246cmV0dXJuIHRoaXMucmVwbGFjZUlkcyh0LmRhdGEsZSxbYGlkYF0pLHRoaXMucmVwbGFjZVN0eWxlSWRzKHQuZGF0YSxlLFtgc3R5bGVJZGBdKSx0O2Nhc2UgQi5Gb250OnJldHVybiB0O2Nhc2UgQi5TZWxlY3Rpb246cmV0dXJuIHQuZGF0YS5yYW5nZXMuZm9yRWFjaCh0PT57dGhpcy5yZXBsYWNlSWRzKHQsZSxbYHN0YXJ0YCxgZW5kYF0pfSksdDtjYXNlIEIuQWRvcHRlZFN0eWxlU2hlZXQ6cmV0dXJuIHRoaXMucmVwbGFjZUlkcyh0LmRhdGEsZSxbYGlkYF0pLHRoaXMucmVwbGFjZVN0eWxlSWRzKHQuZGF0YSxlLFtgc3R5bGVJZHNgXSksKG49dC5kYXRhLnN0eWxlcyk9PW51bGx8fG4uZm9yRWFjaCh0PT57dGhpcy5yZXBsYWNlU3R5bGVJZHModCxlLFtgc3R5bGVJZGBdKX0pLHR9fXJldHVybiExfXJlcGxhY2UoZSx0LG4scil7Zm9yKGxldCBpIG9mIHIpKEFycmF5LmlzQXJyYXkodFtpXSl8fHR5cGVvZiB0W2ldPT1gbnVtYmVyYCkmJihBcnJheS5pc0FycmF5KHRbaV0pP3RbaV09ZS5nZXRJZHMobix0W2ldKTp0W2ldPWUuZ2V0SWQobix0W2ldKSk7cmV0dXJuIHR9cmVwbGFjZUlkcyhlLHQsbil7cmV0dXJuIHRoaXMucmVwbGFjZSh0aGlzLmNyb3NzT3JpZ2luSWZyYW1lTWlycm9yLGUsdCxuKX1yZXBsYWNlU3R5bGVJZHMoZSx0LG4pe3JldHVybiB0aGlzLnJlcGxhY2UodGhpcy5jcm9zc09yaWdpbklmcmFtZVN0eWxlTWlycm9yLGUsdCxuKX1yZXBsYWNlSWRPbk5vZGUoZSx0KXt0aGlzLnJlcGxhY2VJZHMoZSx0LFtgaWRgLGByb290SWRgXSksYGNoaWxkTm9kZXNgaW4gZSYmZS5jaGlsZE5vZGVzLmZvckVhY2goZT0+e3RoaXMucmVwbGFjZUlkT25Ob2RlKGUsdCl9KX1wYXRjaFJvb3RJZE9uTm9kZShlLHQpe2UudHlwZT09PUQuRG9jdW1lbnR8fGUucm9vdElkfHwoZS5yb290SWQ9dCksYGNoaWxkTm9kZXNgaW4gZSYmZS5jaGlsZE5vZGVzLmZvckVhY2goZT0+e3RoaXMucGF0Y2hSb290SWRPbk5vZGUoZSx0KX0pfX0sZnU9Y2xhc3N7Y29uc3RydWN0b3IoZSl7RSh0aGlzLGBzaGFkb3dEb21zYCxuZXcgV2Vha1NldCksRSh0aGlzLGBtdXRhdGlvbkNiYCksRSh0aGlzLGBzY3JvbGxDYmApLEUodGhpcyxgYnlwYXNzT3B0aW9uc2ApLEUodGhpcyxgbWlycm9yYCksRSh0aGlzLGByZXN0b3JlSGFuZGxlcnNgLFtdKSx0aGlzLm11dGF0aW9uQ2I9ZS5tdXRhdGlvbkNiLHRoaXMuc2Nyb2xsQ2I9ZS5zY3JvbGxDYix0aGlzLmJ5cGFzc09wdGlvbnM9ZS5ieXBhc3NPcHRpb25zLHRoaXMubWlycm9yPWUubWlycm9yLHRoaXMuaW5pdCgpfWluaXQoKXt0aGlzLnJlc2V0KCksdGhpcy5wYXRjaEF0dGFjaFNoYWRvdyhFbGVtZW50LGRvY3VtZW50KX1hZGRTaGFkb3dSb290KGUsdCl7aWYoIXV0KGUpfHx0aGlzLnNoYWRvd0RvbXMuaGFzKGUpKXJldHVybjt0aGlzLnNoYWRvd0RvbXMuYWRkKGUpO2xldCBuPSRsKHsuLi50aGlzLmJ5cGFzc09wdGlvbnMsZG9jOnQsbXV0YXRpb25DYjp0aGlzLm11dGF0aW9uQ2IsbWlycm9yOnRoaXMubWlycm9yLHNoYWRvd0RvbU1hbmFnZXI6dGhpc30sZSk7dGhpcy5yZXN0b3JlSGFuZGxlcnMucHVzaCgoKT0+bi5kaXNjb25uZWN0KCkpLHRoaXMucmVzdG9yZUhhbmRsZXJzLnB1c2godHUoey4uLnRoaXMuYnlwYXNzT3B0aW9ucyxzY3JvbGxDYjp0aGlzLnNjcm9sbENiLGRvYzplLG1pcnJvcjp0aGlzLm1pcnJvcn0pKSxzZXRUaW1lb3V0KCgpPT57ZS5hZG9wdGVkU3R5bGVTaGVldHMmJmUuYWRvcHRlZFN0eWxlU2hlZXRzLmxlbmd0aD4wJiZ0aGlzLmJ5cGFzc09wdGlvbnMuc3R5bGVzaGVldE1hbmFnZXIuYWRvcHRTdHlsZVNoZWV0cyhlLmFkb3B0ZWRTdHlsZVNoZWV0cyx0aGlzLm1pcnJvci5nZXRJZChJLmhvc3QoZSkpKSx0aGlzLnJlc3RvcmVIYW5kbGVycy5wdXNoKG91KHttaXJyb3I6dGhpcy5taXJyb3Isc3R5bGVzaGVldE1hbmFnZXI6dGhpcy5ieXBhc3NPcHRpb25zLnN0eWxlc2hlZXRNYW5hZ2VyfSxlKSl9LDApfW9ic2VydmVBdHRhY2hTaGFkb3coZSl7ZS5jb250ZW50V2luZG93JiZlLmNvbnRlbnREb2N1bWVudCYmdGhpcy5wYXRjaEF0dGFjaFNoYWRvdyhlLmNvbnRlbnRXaW5kb3cuRWxlbWVudCxlLmNvbnRlbnREb2N1bWVudCl9cGF0Y2hBdHRhY2hTaGFkb3coZSx0KXtsZXQgbj10aGlzO3RoaXMucmVzdG9yZUhhbmRsZXJzLnB1c2goQ2woZS5wcm90b3R5cGUsYGF0dGFjaFNoYWRvd2AsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe2xldCBpPWUuY2FsbCh0aGlzLHIpLGE9SS5zaGFkb3dSb290KHRoaXMpO3JldHVybiBhJiZSbCh0aGlzKSYmbi5hZGRTaGFkb3dSb290KGEsdCksaX19KSl9cmVzZXQoKXt0aGlzLnJlc3RvcmVIYW5kbGVycy5mb3JFYWNoKGU9Pnt0cnl7ZSgpfWNhdGNoe319KSx0aGlzLnJlc3RvcmVIYW5kbGVycz1bXSx0aGlzLnNoYWRvd0RvbXM9bmV3IFdlYWtTZXR9fSxwdT1gQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL2AsbXU9dHlwZW9mIFVpbnQ4QXJyYXk+YHVgP1tdOm5ldyBVaW50OEFycmF5KDI1NiksaHU9MDtodTw2NDtodSsrKW11W3B1LmNoYXJDb2RlQXQoaHUpXT1odTt2YXIgZ3U9bmV3IE1hcCxfdT0oZSx0LG4pPT57aWYoIWV8fCFidShlLHQpJiZ0eXBlb2YgZSE9YG9iamVjdGApcmV0dXJuO2xldCByPWZ1bmN0aW9uKGUsdCl7bGV0IG49Z3UuZ2V0KGUpO3JldHVybiBufHwobj1uZXcgTWFwLGd1LnNldChlLG4pKSxuLmhhcyh0KXx8bi5zZXQodCxbXSksbi5nZXQodCl9KG4sZS5jb25zdHJ1Y3Rvci5uYW1lKSxpPXIuaW5kZXhPZihlKTtyZXR1cm4gaT09PS0xJiYoaT1yLmxlbmd0aCxyLnB1c2goZSkpLGl9O2Z1bmN0aW9uIHZ1KGUsdCxuKXtpZihlIGluc3RhbmNlb2YgQXJyYXkpcmV0dXJuIGUubWFwKGU9PnZ1KGUsdCxuKSk7aWYoZT09PW51bGwpcmV0dXJuIGU7aWYoZSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8ZSBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheXx8ZSBpbnN0YW5jZW9mIEludDMyQXJyYXl8fGUgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fGUgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8ZSBpbnN0YW5jZW9mIEludDE2QXJyYXl8fGUgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fGUgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSlyZXR1cm57cnJfdHlwZTplLmNvbnN0cnVjdG9yLm5hbWUsYXJnczpbT2JqZWN0LnZhbHVlcyhlKV19O2lmKGUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm57cnJfdHlwZTplLmNvbnN0cnVjdG9yLm5hbWUsYmFzZTY0OmZ1bmN0aW9uKGUpe3ZhciB0LG49bmV3IFVpbnQ4QXJyYXkoZSkscj1uLmxlbmd0aCxpPWBgO2Zvcih0PTA7dDxyO3QrPTMpaSs9cHVbblt0XT4+Ml0saSs9cHVbKDMmblt0XSk8PDR8blt0KzFdPj40XSxpKz1wdVsoMTUmblt0KzFdKTw8MnxuW3QrMl0+PjZdLGkrPXB1WzYzJm5bdCsyXV07cmV0dXJuIHIlMz09Mj9pPWkuc3Vic3RyaW5nKDAsaS5sZW5ndGgtMSkrYD1gOnIlMz09MSYmKGk9aS5zdWJzdHJpbmcoMCxpLmxlbmd0aC0yKStgPT1gKSxpfShlKX07aWYoZSBpbnN0YW5jZW9mIERhdGFWaWV3KXJldHVybntycl90eXBlOmUuY29uc3RydWN0b3IubmFtZSxhcmdzOlt2dShlLmJ1ZmZlcix0LG4pLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGhdfTtpZihlIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCl7bGV0IHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lLHtzcmM6bn09ZTtyZXR1cm57cnJfdHlwZTp0LHNyYzpufX1yZXR1cm4gZSBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50P3tycl90eXBlOmBIVE1MSW1hZ2VFbGVtZW50YCxzcmM6ZS50b0RhdGFVUkwoKX06ZSBpbnN0YW5jZW9mIEltYWdlRGF0YT97cnJfdHlwZTplLmNvbnN0cnVjdG9yLm5hbWUsYXJnczpbdnUoZS5kYXRhLHQsbiksZS53aWR0aCxlLmhlaWdodF19OmJ1KGUsdCl8fHR5cGVvZiBlPT1gb2JqZWN0YD97cnJfdHlwZTplLmNvbnN0cnVjdG9yLm5hbWUsaW5kZXg6X3UoZSx0LG4pfTplfXZhciB5dT0oZSx0LG4pPT5lLm1hcChlPT52dShlLHQsbikpLGJ1PShlLHQpPT4hIVtgV2ViR0xBY3RpdmVJbmZvYCxgV2ViR0xCdWZmZXJgLGBXZWJHTEZyYW1lYnVmZmVyYCxgV2ViR0xQcm9ncmFtYCxgV2ViR0xSZW5kZXJidWZmZXJgLGBXZWJHTFNoYWRlcmAsYFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0YCxgV2ViR0xUZXh0dXJlYCxgV2ViR0xVbmlmb3JtTG9jYXRpb25gLGBXZWJHTFZlcnRleEFycmF5T2JqZWN0YCxgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FU2BdLmZpbHRlcihlPT50eXBlb2YgdFtlXT09YGZ1bmN0aW9uYCkuZmluZChuPT5lIGluc3RhbmNlb2YgdFtuXSk7ZnVuY3Rpb24geHUoZSx0LG4scil7bGV0IGk9W107dHJ5e2xldCBhPUNsKGUuSFRNTENhbnZhc0VsZW1lbnQucHJvdG90eXBlLGBnZXRDb250ZXh0YCxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oaSwuLi5hKXtpZighUih0aGlzLHQsbiwhMCkpe2xldCBlPWZ1bmN0aW9uKGUpe3JldHVybiBlPT09YGV4cGVyaW1lbnRhbC13ZWJnbGA/YHdlYmdsYDplfShpKTtpZihgX19jb250ZXh0YGluIHRoaXN8fCh0aGlzLl9fY29udGV4dD1lKSxyJiZbYHdlYmdsYCxgd2ViZ2wyYF0uaW5jbHVkZXMoZSkpaWYoYVswXSYmdHlwZW9mIGFbMF09PWBvYmplY3RgKXtsZXQgZT1hWzBdO2UucHJlc2VydmVEcmF3aW5nQnVmZmVyfHwoZS5wcmVzZXJ2ZURyYXdpbmdCdWZmZXI9ITApfWVsc2UgYS5zcGxpY2UoMCwxLHtwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6ITB9KX1yZXR1cm4gZS5hcHBseSh0aGlzLFtpLC4uLmFdKX19KTtpLnB1c2goYSl9Y2F0Y2h7Y29uc29sZS5lcnJvcihgZmFpbGVkIHRvIHBhdGNoIEhUTUxDYW52YXNFbGVtZW50LnByb3RvdHlwZS5nZXRDb250ZXh0YCl9cmV0dXJuKCk9PntpLmZvckVhY2goZT0+ZSgpKX19ZnVuY3Rpb24gU3UoZSx0LG4scixpLGEpe2xldCBvPVtdLHM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSk7Zm9yKGxldCBjIG9mIHMpaWYoIVtgaXNDb250ZXh0TG9zdGAsYGNhbnZhc2AsYGRyYXdpbmdCdWZmZXJXaWR0aGAsYGRyYXdpbmdCdWZmZXJIZWlnaHRgXS5pbmNsdWRlcyhjKSl0cnl7aWYodHlwZW9mIGVbY10hPWBmdW5jdGlvbmApY29udGludWU7bGV0IHM9Q2woZSxjLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbiguLi5vKXtsZXQgcz1lLmFwcGx5KHRoaXMsbyk7aWYoX3UocyxhLHRoaXMpLGB0YWdOYW1lYGluIHRoaXMuY2FudmFzJiYhUih0aGlzLmNhbnZhcyxyLGksITApKXtsZXQgZT17dHlwZTp0LHByb3BlcnR5OmMsYXJnczp5dShvLGEsdGhpcyl9O24odGhpcy5jYW52YXMsZSl9cmV0dXJuIHN9fSk7by5wdXNoKHMpfWNhdGNoe2xldCByPVNsKGUsYyx7c2V0KGUpe24odGhpcy5jYW52YXMse3R5cGU6dCxwcm9wZXJ0eTpjLGFyZ3M6W2VdLHNldHRlcjohMH0pfX0pO28ucHVzaChyKX1yZXR1cm4gb312YXIgQ3U9YEtHWjFibU4wYVc5dUtDa2dld29nSUNKMWMyVWdjM1J5YVdOMElqc0tJQ0IyWVhJZ1kyaGhjbk1nUFNBaVFVSkRSRVZHUjBoSlNrdE1UVTVQVUZGU1UxUlZWbGRZV1ZwaFltTmtaV1puYUdscWEyeHRibTl3Y1hKemRIVjJkM2g1ZWpBeE1qTTBOVFkzT0Rrckx5STdDaUFnZG1GeUlHeHZiMnQxY0NBOUlIUjVjR1Z2WmlCVmFXNTBPRUZ5Y21GNUlEMDlQU0FpZFc1a1pXWnBibVZrSWlBL0lGdGRJRG9nYm1WM0lGVnBiblE0UVhKeVlYa29NalUyS1RzS0lDQm1iM0lnS0haaGNpQnBJRDBnTURzZ2FTQThJR05vWVhKekxteGxibWQwYURzZ2FTc3JLU0I3Q2lBZ0lDQnNiMjlyZFhCYlkyaGhjbk11WTJoaGNrTnZaR1ZCZENocEtWMGdQU0JwT3dvZ0lIMEtJQ0IyWVhJZ1pXNWpiMlJsSUQwZ1puVnVZM1JwYjI0b1lYSnlZWGxpZFdabVpYSXBJSHNLSUNBZ0lIWmhjaUJpZVhSbGN5QTlJRzVsZHlCVmFXNTBPRUZ5Y21GNUtHRnljbUY1WW5WbVptVnlLU3dnYVRJc0lHeGxiaUE5SUdKNWRHVnpMbXhsYm1kMGFDd2dZbUZ6WlRZMElEMGdJaUk3Q2lBZ0lDQm1iM0lnS0dreUlEMGdNRHNnYVRJZ1BDQnNaVzQ3SUdreUlDczlJRE1wSUhzS0lDQWdJQ0FnWW1GelpUWTBJQ3M5SUdOb1lYSnpXMko1ZEdWelcya3lYU0ErUGlBeVhUc0tJQ0FnSUNBZ1ltRnpaVFkwSUNzOUlHTm9ZWEp6V3loaWVYUmxjMXRwTWwwZ0ppQXpLU0E4UENBMElId2dZbmwwWlhOYmFUSWdLeUF4WFNBK1BpQTBYVHNLSUNBZ0lDQWdZbUZ6WlRZMElDczlJR05vWVhKeld5aGllWFJsYzF0cE1pQXJJREZkSUNZZ01UVXBJRHc4SURJZ2ZDQmllWFJsYzF0cE1pQXJJREpkSUQ0K0lEWmRPd29nSUNBZ0lDQmlZWE5sTmpRZ0t6MGdZMmhoY25OYllubDBaWE5iYVRJZ0t5QXlYU0FtSURZelhUc0tJQ0FnSUgwS0lDQWdJR2xtSUNoc1pXNGdKU0F6SUQwOVBTQXlLU0I3Q2lBZ0lDQWdJR0poYzJVMk5DQTlJR0poYzJVMk5DNXpkV0p6ZEhKcGJtY29NQ3dnWW1GelpUWTBMbXhsYm1kMGFDQXRJREVwSUNzZ0lqMGlPd29nSUNBZ2ZTQmxiSE5sSUdsbUlDaHNaVzRnSlNBeklEMDlQU0F4S1NCN0NpQWdJQ0FnSUdKaGMyVTJOQ0E5SUdKaGMyVTJOQzV6ZFdKemRISnBibWNvTUN3Z1ltRnpaVFkwTG14bGJtZDBhQ0F0SURJcElDc2dJajA5SWpzS0lDQWdJSDBLSUNBZ0lISmxkSFZ5YmlCaVlYTmxOalE3Q2lBZ2ZUc0tJQ0JqYjI1emRDQnNZWE4wUW14dllrMWhjQ0E5SUM4cUlFQmZYMUJWVWtWZlh5QXFMeUJ1WlhjZ1RXRndLQ2s3Q2lBZ1kyOXVjM1FnZEhKaGJuTndZWEpsYm5SQ2JHOWlUV0Z3SUQwZ0x5b2dRRjlmVUZWU1JWOWZJQ292SUc1bGR5Qk5ZWEFvS1RzS0lDQmhjM2x1WXlCbWRXNWpkR2x2YmlCblpYUlVjbUZ1YzNCaGNtVnVkRUpzYjJKR2IzSW9kMmxrZEdnc0lHaGxhV2RvZEN3Z1pHRjBZVlZTVEU5d2RHbHZibk1wSUhzS0lDQWdJR052Ym5OMElHbGtJRDBnWUNSN2QybGtkR2g5TFNSN2FHVnBaMmgwZldBN0NpQWdJQ0JwWmlBb0lrOW1abk5qY21WbGJrTmhiblpoY3lJZ2FXNGdaMnh2WW1Gc1ZHaHBjeWtnZXdvZ0lDQWdJQ0JwWmlBb2RISmhibk53WVhKbGJuUkNiRzlpVFdGd0xtaGhjeWhwWkNrcElISmxkSFZ5YmlCMGNtRnVjM0JoY21WdWRFSnNiMkpOWVhBdVoyVjBLR2xrS1RzS0lDQWdJQ0FnWTI5dWMzUWdiMlptYzJOeVpXVnVJRDBnYm1WM0lFOW1abk5qY21WbGJrTmhiblpoY3loM2FXUjBhQ3dnYUdWcFoyaDBLVHNLSUNBZ0lDQWdiMlptYzJOeVpXVnVMbWRsZEVOdmJuUmxlSFFvSWpKa0lpazdDaUFnSUNBZ0lHTnZibk4wSUdKc2IySWdQU0JoZDJGcGRDQnZabVp6WTNKbFpXNHVZMjl1ZG1WeWRGUnZRbXh2WWloa1lYUmhWVkpNVDNCMGFXOXVjeWs3Q2lBZ0lDQWdJR052Ym5OMElHRnljbUY1UW5WbVptVnlJRDBnWVhkaGFYUWdZbXh2WWk1aGNuSmhlVUoxWm1abGNpZ3BPd29nSUNBZ0lDQmpiMjV6ZENCaVlYTmxOalFnUFNCbGJtTnZaR1VvWVhKeVlYbENkV1ptWlhJcE93b2dJQ0FnSUNCMGNtRnVjM0JoY21WdWRFSnNiMkpOWVhBdWMyVjBLR2xrTENCaVlYTmxOalFwT3dvZ0lDQWdJQ0J5WlhSMWNtNGdZbUZ6WlRZME93b2dJQ0FnZlNCbGJITmxJSHNLSUNBZ0lDQWdjbVYwZFhKdUlDSWlPd29nSUNBZ2ZRb2dJSDBLSUNCamIyNXpkQ0IzYjNKclpYSWdQU0J6Wld4bU93b2dJSGR2Y210bGNpNXZibTFsYzNOaFoyVWdQU0JoYzNsdVl5Qm1kVzVqZEdsdmJpaGxLU0I3Q2lBZ0lDQnBaaUFvSWs5bVpuTmpjbVZsYmtOaGJuWmhjeUlnYVc0Z1oyeHZZbUZzVkdocGN5a2dld29nSUNBZ0lDQmpiMjV6ZENCN0lHbGtMQ0JpYVhSdFlYQXNJSGRwWkhSb0xDQm9aV2xuYUhRc0lHUmhkR0ZWVWt4UGNIUnBiMjV6SUgwZ1BTQmxMbVJoZEdFN0NpQWdJQ0FnSUdOdmJuTjBJSFJ5WVc1emNHRnlaVzUwUW1GelpUWTBJRDBnWjJWMFZISmhibk53WVhKbGJuUkNiRzlpUm05eUtBb2dJQ0FnSUNBZ0lIZHBaSFJvTEFvZ0lDQWdJQ0FnSUdobGFXZG9kQ3dLSUNBZ0lDQWdJQ0JrWVhSaFZWSk1UM0IwYVc5dWN3b2dJQ0FnSUNBcE93b2dJQ0FnSUNCamIyNXpkQ0J2Wm1aelkzSmxaVzRnUFNCdVpYY2dUMlptYzJOeVpXVnVRMkZ1ZG1GektIZHBaSFJvTENCb1pXbG5hSFFwT3dvZ0lDQWdJQ0JqYjI1emRDQmpkSGdnUFNCdlptWnpZM0psWlc0dVoyVjBRMjl1ZEdWNGRDZ2lNbVFpS1RzS0lDQWdJQ0FnWTNSNExtUnlZWGRKYldGblpTaGlhWFJ0WVhBc0lEQXNJREFwT3dvZ0lDQWdJQ0JpYVhSdFlYQXVZMnh2YzJVb0tUc0tJQ0FnSUNBZ1kyOXVjM1FnWW14dllpQTlJR0YzWVdsMElHOW1abk5qY21WbGJpNWpiMjUyWlhKMFZHOUNiRzlpS0dSaGRHRlZVa3hQY0hScGIyNXpLVHNLSUNBZ0lDQWdZMjl1YzNRZ2RIbHdaU0E5SUdKc2IySXVkSGx3WlRzS0lDQWdJQ0FnWTI5dWMzUWdZWEp5WVhsQ2RXWm1aWElnUFNCaGQyRnBkQ0JpYkc5aUxtRnljbUY1UW5WbVptVnlLQ2s3Q2lBZ0lDQWdJR052Ym5OMElHSmhjMlUyTkNBOUlHVnVZMjlrWlNoaGNuSmhlVUoxWm1abGNpazdDaUFnSUNBZ0lHbG1JQ2doYkdGemRFSnNiMkpOWVhBdWFHRnpLR2xrS1NBbUppQmhkMkZwZENCMGNtRnVjM0JoY21WdWRFSmhjMlUyTkNBOVBUMGdZbUZ6WlRZMEtTQjdDaUFnSUNBZ0lDQWdiR0Z6ZEVKc2IySk5ZWEF1YzJWMEtHbGtMQ0JpWVhObE5qUXBPd29nSUNBZ0lDQWdJSEpsZEhWeWJpQjNiM0pyWlhJdWNHOXpkRTFsYzNOaFoyVW9leUJwWkNCOUtUc0tJQ0FnSUNBZ2ZRb2dJQ0FnSUNCcFppQW9iR0Z6ZEVKc2IySk5ZWEF1WjJWMEtHbGtLU0E5UFQwZ1ltRnpaVFkwS1NCeVpYUjFjbTRnZDI5eWEyVnlMbkJ2YzNSTlpYTnpZV2RsS0hzZ2FXUWdmU2s3Q2lBZ0lDQWdJSGR2Y210bGNpNXdiM04wVFdWemMyRm5aU2g3Q2lBZ0lDQWdJQ0FnYVdRc0NpQWdJQ0FnSUNBZ2RIbHdaU3dLSUNBZ0lDQWdJQ0JpWVhObE5qUXNDaUFnSUNBZ0lDQWdkMmxrZEdnc0NpQWdJQ0FnSUNBZ2FHVnBaMmgwQ2lBZ0lDQWdJSDBwT3dvZ0lDQWdJQ0JzWVhOMFFteHZZazFoY0M1elpYUW9hV1FzSUdKaGMyVTJOQ2s3Q2lBZ0lDQjlJR1ZzYzJVZ2V3b2dJQ0FnSUNCeVpYUjFjbTRnZDI5eWEyVnlMbkJ2YzNSTlpYTnpZV2RsS0hzZ2FXUTZJR1V1WkdGMFlTNXBaQ0I5S1RzS0lDQWdJSDBLSUNCOU93cDlLU2dwT3dvdkx5TWdjMjkxY21ObFRXRndjR2x1WjFWU1REMXBiV0ZuWlMxaWFYUnRZWEF0WkdGMFlTMTFjbXd0ZDI5eWEyVnlMVWxLY0VNM1oxOWlMbXB6TG0xaGNBbz1gLHd1PXR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cuQmxvYiYmbmV3IEJsb2IoWyhUdT1DdSxVaW50OEFycmF5LmZyb20oYXRvYihUdSksZT0+ZS5jaGFyQ29kZUF0KDApKSldLHt0eXBlOmB0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGYtOGB9KSxUdTtmdW5jdGlvbiBFdShlKXtsZXQgdDt0cnl7aWYodD13dSYmKHdpbmRvdy5VUkx8fHdpbmRvdy53ZWJraXRVUkwpLmNyZWF0ZU9iamVjdFVSTCh3dSksIXQpdGhyb3dgYDtsZXQgbj1uZXcgV29ya2VyKHQse25hbWU6ZT09bnVsbD92b2lkIDA6ZS5uYW1lfSk7cmV0dXJuIG4uYWRkRXZlbnRMaXN0ZW5lcihgZXJyb3JgLCgpPT57KHdpbmRvdy5VUkx8fHdpbmRvdy53ZWJraXRVUkwpLnJldm9rZU9iamVjdFVSTCh0KX0pLG59Y2F0Y2h7cmV0dXJuIG5ldyBXb3JrZXIoYGRhdGE6dGV4dC9qYXZhc2NyaXB0O2Jhc2U2NCxgK0N1LHtuYW1lOmU9PW51bGw/dm9pZCAwOmUubmFtZX0pfWZpbmFsbHl7dCYmKHdpbmRvdy5VUkx8fHdpbmRvdy53ZWJraXRVUkwpLnJldm9rZU9iamVjdFVSTCh0KX19dmFyIER1PWNsYXNze2NvbnN0cnVjdG9yKGUpe0UodGhpcyxgcGVuZGluZ0NhbnZhc011dGF0aW9uc2AsbmV3IE1hcCksRSh0aGlzLGByYWZTdGFtcHNgLHtsYXRlc3RJZDowLGludm9rZUlkOm51bGx9KSxFKHRoaXMsYG1pcnJvcmApLEUodGhpcyxgbXV0YXRpb25DYmApLEUodGhpcyxgcmVzZXRPYnNlcnZlcnNgKSxFKHRoaXMsYGZyb3plbmAsITEpLEUodGhpcyxgbG9ja2VkYCwhMSksRSh0aGlzLGBwcm9jZXNzTXV0YXRpb25gLChlLHQpPT57ISh0aGlzLnJhZlN0YW1wcy5pbnZva2VJZCYmdGhpcy5yYWZTdGFtcHMubGF0ZXN0SWQhPT10aGlzLnJhZlN0YW1wcy5pbnZva2VJZCkmJnRoaXMucmFmU3RhbXBzLmludm9rZUlkfHwodGhpcy5yYWZTdGFtcHMuaW52b2tlSWQ9dGhpcy5yYWZTdGFtcHMubGF0ZXN0SWQpLHRoaXMucGVuZGluZ0NhbnZhc011dGF0aW9ucy5oYXMoZSl8fHRoaXMucGVuZGluZ0NhbnZhc011dGF0aW9ucy5zZXQoZSxbXSksdGhpcy5wZW5kaW5nQ2FudmFzTXV0YXRpb25zLmdldChlKS5wdXNoKHQpfSk7bGV0e3NhbXBsaW5nOnQ9YGFsbGAsd2luOm4sYmxvY2tDbGFzczpyLGJsb2NrU2VsZWN0b3I6aSxyZWNvcmRDYW52YXM6YSxkYXRhVVJMT3B0aW9uczpvfT1lO3RoaXMubXV0YXRpb25DYj1lLm11dGF0aW9uQ2IsdGhpcy5taXJyb3I9ZS5taXJyb3IsYSYmdD09PWBhbGxgJiZ0aGlzLmluaXRDYW52YXNNdXRhdGlvbk9ic2VydmVyKG4scixpKSxhJiZ0eXBlb2YgdD09YG51bWJlcmAmJnRoaXMuaW5pdENhbnZhc0ZQU09ic2VydmVyKHQsbixyLGkse2RhdGFVUkxPcHRpb25zOm99KX1yZXNldCgpe3RoaXMucGVuZGluZ0NhbnZhc011dGF0aW9ucy5jbGVhcigpLHRoaXMucmVzZXRPYnNlcnZlcnMmJnRoaXMucmVzZXRPYnNlcnZlcnMoKX1mcmVlemUoKXt0aGlzLmZyb3plbj0hMH11bmZyZWV6ZSgpe3RoaXMuZnJvemVuPSExfWxvY2soKXt0aGlzLmxvY2tlZD0hMH11bmxvY2soKXt0aGlzLmxvY2tlZD0hMX1pbml0Q2FudmFzRlBTT2JzZXJ2ZXIoZSx0LG4scixpKXtsZXQgYT14dSh0LG4sciwhMCksbz1uZXcgTWFwLHM9bmV3IEV1O3Mub25tZXNzYWdlPWU9PntsZXR7aWQ6dH09ZS5kYXRhO2lmKG8uc2V0KHQsITEpLCEoYGJhc2U2NGBpbiBlLmRhdGEpKXJldHVybjtsZXR7YmFzZTY0Om4sdHlwZTpyLHdpZHRoOmksaGVpZ2h0OmF9PWUuZGF0YTt0aGlzLm11dGF0aW9uQ2Ioe2lkOnQsdHlwZTpCbFtgMkRgXSxjb21tYW5kczpbe3Byb3BlcnR5OmBjbGVhclJlY3RgLGFyZ3M6WzAsMCxpLGFdfSx7cHJvcGVydHk6YGRyYXdJbWFnZWAsYXJnczpbe3JyX3R5cGU6YEltYWdlQml0bWFwYCxhcmdzOlt7cnJfdHlwZTpgQmxvYmAsZGF0YTpbe3JyX3R5cGU6YEFycmF5QnVmZmVyYCxiYXNlNjQ6bn1dLHR5cGU6cn1dfSwwLDBdfV19KX07bGV0IGM9MWUzL2UsbCx1PTAsZD1lPT57dSYmZS11PGN8fCh1PWUsKCgpPT57bGV0IGU9W107cmV0dXJuIHQuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgY2FudmFzYCkuZm9yRWFjaCh0PT57Uih0LG4sciwhMCl8fGUucHVzaCh0KX0pLGV9KSgpLmZvckVhY2goYXN5bmMgZT0+e3ZhciB0O2xldCBuPXRoaXMubWlycm9yLmdldElkKGUpO2lmKG8uZ2V0KG4pfHxlLndpZHRoPT09MHx8ZS5oZWlnaHQ9PT0wKXJldHVybjtpZihvLnNldChuLCEwKSxbYHdlYmdsYCxgd2ViZ2wyYF0uaW5jbHVkZXMoZS5fX2NvbnRleHQpKXtsZXQgbj1lLmdldENvbnRleHQoZS5fX2NvbnRleHQpOygodD1uPT1udWxsP3ZvaWQgMDpuLmdldENvbnRleHRBdHRyaWJ1dGVzKCkpPT1udWxsP3ZvaWQgMDp0LnByZXNlcnZlRHJhd2luZ0J1ZmZlcik9PT0hMSYmbi5jbGVhcihuLkNPTE9SX0JVRkZFUl9CSVQpfWxldCByPWF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKGUpO3MucG9zdE1lc3NhZ2Uoe2lkOm4sYml0bWFwOnIsd2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHQsZGF0YVVSTE9wdGlvbnM6aS5kYXRhVVJMT3B0aW9uc30sW3JdKX0pKSxsPXJlcXVlc3RBbmltYXRpb25GcmFtZShkKX07bD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZCksdGhpcy5yZXNldE9ic2VydmVycz0oKT0+e2EoKSxjYW5jZWxBbmltYXRpb25GcmFtZShsKX19aW5pdENhbnZhc011dGF0aW9uT2JzZXJ2ZXIoZSx0LG4pe3RoaXMuc3RhcnRSQUZUaW1lc3RhbXBpbmcoKSx0aGlzLnN0YXJ0UGVuZGluZ0NhbnZhc011dGF0aW9uRmx1c2hlcigpO2xldCByPXh1KGUsdCxuLCExKSxpPWZ1bmN0aW9uKGUsdCxuLHIpe2xldCBpPVtdLGE9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModC5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQucHJvdG90eXBlKTtmb3IobGV0IG8gb2YgYSl0cnl7aWYodHlwZW9mIHQuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELnByb3RvdHlwZVtvXSE9YGZ1bmN0aW9uYCljb250aW51ZTtsZXQgYT1DbCh0LkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5wcm90b3R5cGUsbyxmdW5jdGlvbihpKXtyZXR1cm4gZnVuY3Rpb24oLi4uYSl7cmV0dXJuIFIodGhpcy5jYW52YXMsbixyLCEwKXx8c2V0VGltZW91dCgoKT0+e2xldCBuPXl1KGEsdCx0aGlzKTtlKHRoaXMuY2FudmFzLHt0eXBlOkJsW2AyRGBdLHByb3BlcnR5Om8sYXJnczpufSl9LDApLGkuYXBwbHkodGhpcyxhKX19KTtpLnB1c2goYSl9Y2F0Y2h7bGV0IG49U2wodC5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQucHJvdG90eXBlLG8se3NldCh0KXtlKHRoaXMuY2FudmFzLHt0eXBlOkJsW2AyRGBdLHByb3BlcnR5Om8sYXJnczpbdF0sc2V0dGVyOiEwfSl9fSk7aS5wdXNoKG4pfXJldHVybigpPT57aS5mb3JFYWNoKGU9PmUoKSl9fSh0aGlzLnByb2Nlc3NNdXRhdGlvbi5iaW5kKHRoaXMpLGUsdCxuKSxhPWZ1bmN0aW9uKGUsdCxuLHIpe2xldCBpPVtdO3JldHVybiBpLnB1c2goLi4uU3UodC5XZWJHTFJlbmRlcmluZ0NvbnRleHQucHJvdG90eXBlLEJsLldlYkdMLGUsbixyLHQpKSx0LldlYkdMMlJlbmRlcmluZ0NvbnRleHQhPT12b2lkIDAmJmkucHVzaCguLi5TdSh0LldlYkdMMlJlbmRlcmluZ0NvbnRleHQucHJvdG90eXBlLEJsLldlYkdMMixlLG4scix0KSksKCk9PntpLmZvckVhY2goZT0+ZSgpKX19KHRoaXMucHJvY2Vzc011dGF0aW9uLmJpbmQodGhpcyksZSx0LG4pO3RoaXMucmVzZXRPYnNlcnZlcnM9KCk9PntyKCksaSgpLGEoKX19c3RhcnRQZW5kaW5nQ2FudmFzTXV0YXRpb25GbHVzaGVyKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT50aGlzLmZsdXNoUGVuZGluZ0NhbnZhc011dGF0aW9ucygpKX1zdGFydFJBRlRpbWVzdGFtcGluZygpe2xldCBlPXQ9Pnt0aGlzLnJhZlN0YW1wcy5sYXRlc3RJZD10LHJlcXVlc3RBbmltYXRpb25GcmFtZShlKX07cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpfWZsdXNoUGVuZGluZ0NhbnZhc011dGF0aW9ucygpe3RoaXMucGVuZGluZ0NhbnZhc011dGF0aW9ucy5mb3JFYWNoKChlLHQpPT57bGV0IG49dGhpcy5taXJyb3IuZ2V0SWQodCk7dGhpcy5mbHVzaFBlbmRpbmdDYW52YXNNdXRhdGlvbkZvcih0LG4pfSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT50aGlzLmZsdXNoUGVuZGluZ0NhbnZhc011dGF0aW9ucygpKX1mbHVzaFBlbmRpbmdDYW52YXNNdXRhdGlvbkZvcihlLHQpe2lmKHRoaXMuZnJvemVufHx0aGlzLmxvY2tlZClyZXR1cm47bGV0IG49dGhpcy5wZW5kaW5nQ2FudmFzTXV0YXRpb25zLmdldChlKTtpZighbnx8dD09PS0xKXJldHVybjtsZXQgcj1uLm1hcChlPT57bGV0e3R5cGU6dCwuLi5ufT1lO3JldHVybiBufSkse3R5cGU6aX09blswXTt0aGlzLm11dGF0aW9uQ2Ioe2lkOnQsdHlwZTppLGNvbW1hbmRzOnJ9KSx0aGlzLnBlbmRpbmdDYW52YXNNdXRhdGlvbnMuZGVsZXRlKGUpfX0sT3U9Y2xhc3N7Y29uc3RydWN0b3IoZSl7RSh0aGlzLGB0cmFja2VkTGlua0VsZW1lbnRzYCxuZXcgV2Vha1NldCksRSh0aGlzLGBtdXRhdGlvbkNiYCksRSh0aGlzLGBhZG9wdGVkU3R5bGVTaGVldENiYCksRSh0aGlzLGBzdHlsZU1pcnJvcmAsbmV3IEZsKSx0aGlzLm11dGF0aW9uQ2I9ZS5tdXRhdGlvbkNiLHRoaXMuYWRvcHRlZFN0eWxlU2hlZXRDYj1lLmFkb3B0ZWRTdHlsZVNoZWV0Q2J9YXR0YWNoTGlua0VsZW1lbnQoZSx0KXtgX2Nzc1RleHRgaW4gdC5hdHRyaWJ1dGVzJiZ0aGlzLm11dGF0aW9uQ2Ioe2FkZHM6W10scmVtb3ZlczpbXSx0ZXh0czpbXSxhdHRyaWJ1dGVzOlt7aWQ6dC5pZCxhdHRyaWJ1dGVzOnQuYXR0cmlidXRlc31dfSksdGhpcy50cmFja0xpbmtFbGVtZW50KGUpfXRyYWNrTGlua0VsZW1lbnQoZSl7dGhpcy50cmFja2VkTGlua0VsZW1lbnRzLmhhcyhlKXx8KHRoaXMudHJhY2tlZExpbmtFbGVtZW50cy5hZGQoZSksdGhpcy50cmFja1N0eWxlc2hlZXRJbkxpbmtFbGVtZW50KGUpKX1hZG9wdFN0eWxlU2hlZXRzKGUsdCl7aWYoZS5sZW5ndGg9PT0wKXJldHVybjtsZXQgbj17aWQ6dCxzdHlsZUlkczpbXX0scj1bXTtmb3IobGV0IHQgb2YgZSl7bGV0IGU7dGhpcy5zdHlsZU1pcnJvci5oYXModCk/ZT10aGlzLnN0eWxlTWlycm9yLmdldElkKHQpOihlPXRoaXMuc3R5bGVNaXJyb3IuYWRkKHQpLHIucHVzaCh7c3R5bGVJZDplLHJ1bGVzOkFycmF5LmZyb20odC5ydWxlc3x8Q1NTUnVsZSwoZSxuKT0+KHtydWxlOmZ0KGUsdC5ocmVmKSxpbmRleDpufSkpfSkpLG4uc3R5bGVJZHMucHVzaChlKX1yLmxlbmd0aD4wJiYobi5zdHlsZXM9ciksdGhpcy5hZG9wdGVkU3R5bGVTaGVldENiKG4pfXJlc2V0KCl7dGhpcy5zdHlsZU1pcnJvci5yZXNldCgpLHRoaXMudHJhY2tlZExpbmtFbGVtZW50cz1uZXcgV2Vha1NldH10cmFja1N0eWxlc2hlZXRJbkxpbmtFbGVtZW50KGUpe319LGt1PWNsYXNze2NvbnN0cnVjdG9yKCl7RSh0aGlzLGBub2RlTWFwYCxuZXcgV2Vha01hcCksRSh0aGlzLGBhY3RpdmVgLCExKX1pbk90aGVyQnVmZmVyKGUsdCl7bGV0IG49dGhpcy5ub2RlTWFwLmdldChlKTtyZXR1cm4gbiYmQXJyYXkuZnJvbShuKS5zb21lKGU9PmUhPT10KX1hZGQoZSx0KXt0aGlzLmFjdGl2ZXx8KHRoaXMuYWN0aXZlPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMubm9kZU1hcD1uZXcgV2Vha01hcCx0aGlzLmFjdGl2ZT0hMX0pKSx0aGlzLm5vZGVNYXAuc2V0KGUsKHRoaXMubm9kZU1hcC5nZXQoZSl8fG5ldyBTZXQpLmFkZCh0KSl9ZGVzdHJveSgpe319LFUsQXUsanUsTXU9ITE7dHJ5e2lmKEFycmF5LmZyb20oWzFdLGU9PjIqZSlbMF0hPT0yKXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBpZnJhbWVgKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLEFycmF5LmZyb209KChSZT1lLmNvbnRlbnRXaW5kb3cpPT1udWxsP3ZvaWQgMDpSZS5BcnJheS5mcm9tKXx8QXJyYXkuZnJvbSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGUpfX1jYXRjaChlKXtjb25zb2xlLmRlYnVnKGBVbmFibGUgdG8gb3ZlcnJpZGUgQXJyYXkuZnJvbWAsZSl9dmFyIE51PW5ldyBwdDtmdW5jdGlvbiBQdShlPXt9KXtsZXR7ZW1pdDp0LGNoZWNrb3V0RXZlcnlObXM6bixjaGVja291dEV2ZXJ5TnRoOnIsYmxvY2tDbGFzczppPWByci1ibG9ja2AsYmxvY2tTZWxlY3RvcjphPW51bGwsaWdub3JlQ2xhc3M6bz1gcnItaWdub3JlYCxpZ25vcmVTZWxlY3RvcjpzPW51bGwsbWFza1RleHRDbGFzczpjPWByci1tYXNrYCxtYXNrVGV4dFNlbGVjdG9yOmw9bnVsbCxpbmxpbmVTdHlsZXNoZWV0OnU9ITAsbWFza0FsbElucHV0czpkLG1hc2tJbnB1dE9wdGlvbnM6ZixzbGltRE9NT3B0aW9uczpwLG1hc2tJbnB1dEZuOm0sbWFza1RleHRGbjpoLGhvb2tzOmcscGFja0ZuOl8sc2FtcGxpbmc6dj17fSxkYXRhVVJMT3B0aW9uczplZT17fSxtb3VzZW1vdmVXYWl0OnkscmVjb3JkRE9NOmI9ITAscmVjb3JkQ2FudmFzOnRlPSExLHJlY29yZENyb3NzT3JpZ2luSWZyYW1lczp4PSExLHJlY29yZEFmdGVyOlM9ZS5yZWNvcmRBZnRlcj09PWBET01Db250ZW50TG9hZGVkYD9lLnJlY29yZEFmdGVyOmBsb2FkYCx1c2VyVHJpZ2dlcmVkT25JbnB1dDpuZT0hMSxjb2xsZWN0Rm9udHM6cmU9ITEsaW5saW5lSW1hZ2VzOmllPSExLHBsdWdpbnM6QyxrZWVwSWZyYW1lU3JjRm46YWU9KCk9PiExLGlnbm9yZUNTU0F0dHJpYnV0ZXM6b2U9bmV3IFNldChbXSksZXJyb3JIYW5kbGVyOnNlfT1lO1hsPXNlO2xldCBjZT0heHx8d2luZG93LnBhcmVudD09PXdpbmRvdyx3PSExO2lmKCFjZSl0cnl7d2luZG93LnBhcmVudC5kb2N1bWVudCYmKHc9ITEpfWNhdGNoe3c9ITB9aWYoY2UmJiF0KXRocm93IEVycm9yKGBlbWl0IGZ1bmN0aW9uIGlzIHJlcXVpcmVkYCk7aWYoIWNlJiYhdylyZXR1cm4oKT0+e307eSE9PXZvaWQgMCYmdi5tb3VzZW1vdmU9PT12b2lkIDAmJih2Lm1vdXNlbW92ZT15KSxOdS5yZXNldCgpO2xldCBsZT1kPT09ITA/e2NvbG9yOiEwLGRhdGU6ITAsImRhdGV0aW1lLWxvY2FsIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITAsdGV4dGFyZWE6ITAsc2VsZWN0OiEwLHBhc3N3b3JkOiEwfTpmPT09dm9pZCAwP3twYXNzd29yZDohMH06Zix1ZT1wPT09ITB8fHA9PT1gYWxsYD97c2NyaXB0OiEwLGNvbW1lbnQ6ITAsaGVhZEZhdmljb246ITAsaGVhZFdoaXRlc3BhY2U6ITAsaGVhZE1ldGFTb2NpYWw6ITAsaGVhZE1ldGFSb2JvdHM6ITAsaGVhZE1ldGFIdHRwRXF1aXY6ITAsaGVhZE1ldGFWZXJpZmljYXRpb246ITAsaGVhZE1ldGFBdXRob3JzaGlwOnA9PT1gYWxsYCxoZWFkTWV0YURlc2NLZXl3b3JkczpwPT09YGFsbGAsaGVhZFRpdGxlTXV0YXRpb25zOnA9PT1gYWxsYH06cHx8e30sZGU7KGZ1bmN0aW9uKGU9d2luZG93KXtgTm9kZUxpc3RgaW4gZSYmIWUuTm9kZUxpc3QucHJvdG90eXBlLmZvckVhY2gmJihlLk5vZGVMaXN0LnByb3RvdHlwZS5mb3JFYWNoPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSxgRE9NVG9rZW5MaXN0YGluIGUmJiFlLkRPTVRva2VuTGlzdC5wcm90b3R5cGUuZm9yRWFjaCYmKGUuRE9NVG9rZW5MaXN0LnByb3RvdHlwZS5mb3JFYWNoPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoKX0pKCk7bGV0IGZlPTAscGU9ZT0+e2ZvcihsZXQgdCBvZiBDfHxbXSl0LmV2ZW50UHJvY2Vzc29yJiYoZT10LmV2ZW50UHJvY2Vzc29yKGUpKTtyZXR1cm4gXyYmIXcmJihlPV8oZSkpLGV9O1U9KGUsaSk9Pnt2YXIgYTtsZXQgbz1lO2lmKG8udGltZXN0YW1wPXdsKCksISgoYT1abFswXSkhPW51bGwmJmEuaXNGcm96ZW4oKSl8fG8udHlwZT09PXouRnVsbFNuYXBzaG90fHxvLnR5cGU9PT16LkluY3JlbWVudGFsU25hcHNob3QmJm8uZGF0YS5zb3VyY2U9PT1CLk11dGF0aW9ufHxabC5mb3JFYWNoKGU9PmUudW5mcmVlemUoKSksY2UpdD09bnVsbHx8dChwZShvKSxpKTtlbHNlIGlmKHcpe2xldCBlPXt0eXBlOmBycndlYmAsZXZlbnQ6cGUobyksb3JpZ2luOndpbmRvdy5sb2NhdGlvbi5vcmlnaW4saXNDaGVja291dDppfTt3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGUsYCpgKX1pZihvLnR5cGU9PT16LkZ1bGxTbmFwc2hvdClkZT1vLGZlPTA7ZWxzZSBpZihvLnR5cGU9PT16LkluY3JlbWVudGFsU25hcHNob3Qpe2lmKG8uZGF0YS5zb3VyY2U9PT1CLk11dGF0aW9uJiZvLmRhdGEuaXNBdHRhY2hJZnJhbWUpcmV0dXJuO2ZlKys7bGV0IGU9ciYmZmU+PXIsdD1uJiZvLnRpbWVzdGFtcC1kZS50aW1lc3RhbXA+bjsoZXx8dCkmJkF1KCEwKX19O2xldCBUPWU9PntVKHt0eXBlOnouSW5jcmVtZW50YWxTbmFwc2hvdCxkYXRhOntzb3VyY2U6Qi5NdXRhdGlvbiwuLi5lfX0pfSxtZT1lPT5VKHt0eXBlOnouSW5jcmVtZW50YWxTbmFwc2hvdCxkYXRhOntzb3VyY2U6Qi5TY3JvbGwsLi4uZX19KSxoZT1lPT5VKHt0eXBlOnouSW5jcmVtZW50YWxTbmFwc2hvdCxkYXRhOntzb3VyY2U6Qi5DYW52YXNNdXRhdGlvbiwuLi5lfX0pLGdlPW5ldyBPdSh7bXV0YXRpb25DYjpULGFkb3B0ZWRTdHlsZVNoZWV0Q2I6ZT0+VSh7dHlwZTp6LkluY3JlbWVudGFsU25hcHNob3QsZGF0YTp7c291cmNlOkIuQWRvcHRlZFN0eWxlU2hlZXQsLi4uZX19KX0pLF9lPW5ldyBkdSh7bWlycm9yOk51LG11dGF0aW9uQ2I6VCxzdHlsZXNoZWV0TWFuYWdlcjpnZSxyZWNvcmRDcm9zc09yaWdpbklmcmFtZXM6eCx3cmFwcGVkRW1pdDpVfSk7Zm9yKGxldCBlIG9mIEN8fFtdKWUuZ2V0TWlycm9yJiZlLmdldE1pcnJvcih7bm9kZU1pcnJvcjpOdSxjcm9zc09yaWdpbklmcmFtZU1pcnJvcjpfZS5jcm9zc09yaWdpbklmcmFtZU1pcnJvcixjcm9zc09yaWdpbklmcmFtZVN0eWxlTWlycm9yOl9lLmNyb3NzT3JpZ2luSWZyYW1lU3R5bGVNaXJyb3J9KTtsZXQgdmU9bmV3IGt1O2p1PW5ldyBEdSh7cmVjb3JkQ2FudmFzOnRlLG11dGF0aW9uQ2I6aGUsd2luOndpbmRvdyxibG9ja0NsYXNzOmksYmxvY2tTZWxlY3RvcjphLG1pcnJvcjpOdSxzYW1wbGluZzp2LmNhbnZhcyxkYXRhVVJMT3B0aW9uczplZX0pO2xldCB5ZT1uZXcgZnUoe211dGF0aW9uQ2I6VCxzY3JvbGxDYjptZSxieXBhc3NPcHRpb25zOntibG9ja0NsYXNzOmksYmxvY2tTZWxlY3RvcjphLG1hc2tUZXh0Q2xhc3M6YyxtYXNrVGV4dFNlbGVjdG9yOmwsaW5saW5lU3R5bGVzaGVldDp1LG1hc2tJbnB1dE9wdGlvbnM6bGUsZGF0YVVSTE9wdGlvbnM6ZWUsbWFza1RleHRGbjpoLG1hc2tJbnB1dEZuOm0scmVjb3JkQ2FudmFzOnRlLGlubGluZUltYWdlczppZSxzYW1wbGluZzp2LHNsaW1ET01PcHRpb25zOnVlLGlmcmFtZU1hbmFnZXI6X2Usc3R5bGVzaGVldE1hbmFnZXI6Z2UsY2FudmFzTWFuYWdlcjpqdSxrZWVwSWZyYW1lU3JjRm46YWUscHJvY2Vzc2VkTm9kZU1hbmFnZXI6dmV9LG1pcnJvcjpOdX0pO0F1PShlPSExKT0+e2lmKCFiKXJldHVybjtVKHt0eXBlOnouTWV0YSxkYXRhOntocmVmOndpbmRvdy5sb2NhdGlvbi5ocmVmLHdpZHRoOkRsKCksaGVpZ2h0OkVsKCl9fSxlKSxnZS5yZXNldCgpLHllLmluaXQoKSxabC5mb3JFYWNoKGU9PmUubG9jaygpKTtsZXQgdD1mdW5jdGlvbihlLHQpe2xldHttaXJyb3I6bj1uZXcgcHQsYmxvY2tDbGFzczpyPWByci1ibG9ja2AsYmxvY2tTZWxlY3RvcjppPW51bGwsbWFza1RleHRDbGFzczphPWByci1tYXNrYCxtYXNrVGV4dFNlbGVjdG9yOm89bnVsbCxpbmxpbmVTdHlsZXNoZWV0OnM9ITAsaW5saW5lSW1hZ2VzOmM9ITEscmVjb3JkQ2FudmFzOmw9ITEsbWFza0FsbElucHV0czp1PSExLG1hc2tUZXh0Rm46ZCxtYXNrSW5wdXRGbjpmLHNsaW1ET006cD0hMSxkYXRhVVJMT3B0aW9uczptLHByZXNlcnZlV2hpdGVTcGFjZTpoLG9uU2VyaWFsaXplOmcsb25JZnJhbWVMb2FkOl8saWZyYW1lTG9hZFRpbWVvdXQ6dixvblN0eWxlc2hlZXRMb2FkOmVlLHN0eWxlc2hlZXRMb2FkVGltZW91dDp5LGtlZXBJZnJhbWVTcmNGbjpiPSgpPT4hMX09dHx8e307cmV0dXJuIEJ0KGUse2RvYzplLG1pcnJvcjpuLGJsb2NrQ2xhc3M6cixibG9ja1NlbGVjdG9yOmksbWFza1RleHRDbGFzczphLG1hc2tUZXh0U2VsZWN0b3I6byxza2lwQ2hpbGQ6ITEsaW5saW5lU3R5bGVzaGVldDpzLG1hc2tJbnB1dE9wdGlvbnM6dT09PSEwP3tjb2xvcjohMCxkYXRlOiEwLCJkYXRldGltZS1sb2NhbCI6ITAsZW1haWw6ITAsbW9udGg6ITAsbnVtYmVyOiEwLHJhbmdlOiEwLHNlYXJjaDohMCx0ZWw6ITAsdGV4dDohMCx0aW1lOiEwLHVybDohMCx3ZWVrOiEwLHRleHRhcmVhOiEwLHNlbGVjdDohMCxwYXNzd29yZDohMH06dT09PSExP3twYXNzd29yZDohMH06dSxtYXNrVGV4dEZuOmQsbWFza0lucHV0Rm46ZixzbGltRE9NT3B0aW9uczpwPT09ITB8fHA9PT1gYWxsYD97c2NyaXB0OiEwLGNvbW1lbnQ6ITAsaGVhZEZhdmljb246ITAsaGVhZFdoaXRlc3BhY2U6ITAsaGVhZE1ldGFEZXNjS2V5d29yZHM6cD09PWBhbGxgLGhlYWRNZXRhU29jaWFsOiEwLGhlYWRNZXRhUm9ib3RzOiEwLGhlYWRNZXRhSHR0cEVxdWl2OiEwLGhlYWRNZXRhQXV0aG9yc2hpcDohMCxoZWFkTWV0YVZlcmlmaWNhdGlvbjohMH06cD09PSExP3t9OnAsZGF0YVVSTE9wdGlvbnM6bSxpbmxpbmVJbWFnZXM6YyxyZWNvcmRDYW52YXM6bCxwcmVzZXJ2ZVdoaXRlU3BhY2U6aCxvblNlcmlhbGl6ZTpnLG9uSWZyYW1lTG9hZDpfLGlmcmFtZUxvYWRUaW1lb3V0OnYsb25TdHlsZXNoZWV0TG9hZDplZSxzdHlsZXNoZWV0TG9hZFRpbWVvdXQ6eSxrZWVwSWZyYW1lU3JjRm46YixuZXdseUFkZGVkRWxlbWVudDohMX0pfShkb2N1bWVudCx7bWlycm9yOk51LGJsb2NrQ2xhc3M6aSxibG9ja1NlbGVjdG9yOmEsbWFza1RleHRDbGFzczpjLG1hc2tUZXh0U2VsZWN0b3I6bCxpbmxpbmVTdHlsZXNoZWV0OnUsbWFza0FsbElucHV0czpsZSxtYXNrVGV4dEZuOmgsbWFza0lucHV0Rm46bSxzbGltRE9NOnVlLGRhdGFVUkxPcHRpb25zOmVlLHJlY29yZENhbnZhczp0ZSxpbmxpbmVJbWFnZXM6aWUsb25TZXJpYWxpemU6ZT0+e01sKGUsTnUpJiZfZS5hZGRJZnJhbWUoZSksTmwoZSxOdSkmJmdlLnRyYWNrTGlua0VsZW1lbnQoZSksUGwoZSkmJnllLmFkZFNoYWRvd1Jvb3QoSS5zaGFkb3dSb290KGUpLGRvY3VtZW50KX0sb25JZnJhbWVMb2FkOihlLHQpPT57X2UuYXR0YWNoSWZyYW1lKGUsdCkseWUub2JzZXJ2ZUF0dGFjaFNoYWRvdyhlKX0sb25TdHlsZXNoZWV0TG9hZDooZSx0KT0+e2dlLmF0dGFjaExpbmtFbGVtZW50KGUsdCl9LGtlZXBJZnJhbWVTcmNGbjphZX0pO2lmKCF0KXJldHVybiBjb25zb2xlLndhcm4oYEZhaWxlZCB0byBzbmFwc2hvdCB0aGUgZG9jdW1lbnRgKTtVKHt0eXBlOnouRnVsbFNuYXBzaG90LGRhdGE6e25vZGU6dCxpbml0aWFsT2Zmc2V0OlRsKHdpbmRvdyl9fSxlKSxabC5mb3JFYWNoKGU9PmUudW5sb2NrKCkpLGRvY3VtZW50LmFkb3B0ZWRTdHlsZVNoZWV0cyYmZG9jdW1lbnQuYWRvcHRlZFN0eWxlU2hlZXRzLmxlbmd0aD4wJiZnZS5hZG9wdFN0eWxlU2hlZXRzKGRvY3VtZW50LmFkb3B0ZWRTdHlsZVNoZWV0cyxOdS5nZXRJZChkb2N1bWVudCkpfTt0cnl7bGV0IGU9W10sdD1lPT57dmFyIHQ7cmV0dXJuIEgoc3UpKHttdXRhdGlvbkNiOlQsbW91c2Vtb3ZlQ2I6KGUsdCk9PlUoe3R5cGU6ei5JbmNyZW1lbnRhbFNuYXBzaG90LGRhdGE6e3NvdXJjZTp0LHBvc2l0aW9uczplfX0pLG1vdXNlSW50ZXJhY3Rpb25DYjplPT5VKHt0eXBlOnouSW5jcmVtZW50YWxTbmFwc2hvdCxkYXRhOntzb3VyY2U6Qi5Nb3VzZUludGVyYWN0aW9uLC4uLmV9fSksc2Nyb2xsQ2I6bWUsdmlld3BvcnRSZXNpemVDYjplPT5VKHt0eXBlOnouSW5jcmVtZW50YWxTbmFwc2hvdCxkYXRhOntzb3VyY2U6Qi5WaWV3cG9ydFJlc2l6ZSwuLi5lfX0pLGlucHV0Q2I6ZT0+VSh7dHlwZTp6LkluY3JlbWVudGFsU25hcHNob3QsZGF0YTp7c291cmNlOkIuSW5wdXQsLi4uZX19KSxtZWRpYUludGVyYWN0aW9uQ2I6ZT0+VSh7dHlwZTp6LkluY3JlbWVudGFsU25hcHNob3QsZGF0YTp7c291cmNlOkIuTWVkaWFJbnRlcmFjdGlvbiwuLi5lfX0pLHN0eWxlU2hlZXRSdWxlQ2I6ZT0+VSh7dHlwZTp6LkluY3JlbWVudGFsU25hcHNob3QsZGF0YTp7c291cmNlOkIuU3R5bGVTaGVldFJ1bGUsLi4uZX19KSxzdHlsZURlY2xhcmF0aW9uQ2I6ZT0+VSh7dHlwZTp6LkluY3JlbWVudGFsU25hcHNob3QsZGF0YTp7c291cmNlOkIuU3R5bGVEZWNsYXJhdGlvbiwuLi5lfX0pLGNhbnZhc011dGF0aW9uQ2I6aGUsZm9udENiOmU9PlUoe3R5cGU6ei5JbmNyZW1lbnRhbFNuYXBzaG90LGRhdGE6e3NvdXJjZTpCLkZvbnQsLi4uZX19KSxzZWxlY3Rpb25DYjplPT57VSh7dHlwZTp6LkluY3JlbWVudGFsU25hcHNob3QsZGF0YTp7c291cmNlOkIuU2VsZWN0aW9uLC4uLmV9fSl9LGN1c3RvbUVsZW1lbnRDYjplPT57VSh7dHlwZTp6LkluY3JlbWVudGFsU25hcHNob3QsZGF0YTp7c291cmNlOkIuQ3VzdG9tRWxlbWVudCwuLi5lfX0pfSxibG9ja0NsYXNzOmksaWdub3JlQ2xhc3M6byxpZ25vcmVTZWxlY3RvcjpzLG1hc2tUZXh0Q2xhc3M6YyxtYXNrVGV4dFNlbGVjdG9yOmwsbWFza0lucHV0T3B0aW9uczpsZSxpbmxpbmVTdHlsZXNoZWV0OnUsc2FtcGxpbmc6dixyZWNvcmRET006YixyZWNvcmRDYW52YXM6dGUsaW5saW5lSW1hZ2VzOmllLHVzZXJUcmlnZ2VyZWRPbklucHV0Om5lLGNvbGxlY3RGb250czpyZSxkb2M6ZSxtYXNrSW5wdXRGbjptLG1hc2tUZXh0Rm46aCxrZWVwSWZyYW1lU3JjRm46YWUsYmxvY2tTZWxlY3RvcjphLHNsaW1ET01PcHRpb25zOnVlLGRhdGFVUkxPcHRpb25zOmVlLG1pcnJvcjpOdSxpZnJhbWVNYW5hZ2VyOl9lLHN0eWxlc2hlZXRNYW5hZ2VyOmdlLHNoYWRvd0RvbU1hbmFnZXI6eWUscHJvY2Vzc2VkTm9kZU1hbmFnZXI6dmUsY2FudmFzTWFuYWdlcjpqdSxpZ25vcmVDU1NBdHRyaWJ1dGVzOm9lLHBsdWdpbnM6KCh0PUM9PW51bGw/dm9pZCAwOkMuZmlsdGVyKGU9PmUub2JzZXJ2ZXIpKT09bnVsbD92b2lkIDA6dC5tYXAoZT0+KHtvYnNlcnZlcjplLm9ic2VydmVyLG9wdGlvbnM6ZS5vcHRpb25zLGNhbGxiYWNrOnQ9PlUoe3R5cGU6ei5QbHVnaW4sZGF0YTp7cGx1Z2luOmUubmFtZSxwYXlsb2FkOnR9fSl9KSkpfHxbXX0sZyl9O19lLmFkZExvYWRMaXN0ZW5lcihuPT57dHJ5e2UucHVzaCh0KG4uY29udGVudERvY3VtZW50KSl9Y2F0Y2goZSl7Y29uc29sZS53YXJuKGUpfX0pO2xldCBuPSgpPT57QXUoKSxlLnB1c2godChkb2N1bWVudCkpLE11PSEwfTtyZXR1cm4gZG9jdW1lbnQucmVhZHlTdGF0ZT09PWBpbnRlcmFjdGl2ZWB8fGRvY3VtZW50LnJlYWR5U3RhdGU9PT1gY29tcGxldGVgP24oKTooZS5wdXNoKEwoYERPTUNvbnRlbnRMb2FkZWRgLCgpPT57VSh7dHlwZTp6LkRvbUNvbnRlbnRMb2FkZWQsZGF0YTp7fX0pLFM9PT1gRE9NQ29udGVudExvYWRlZGAmJm4oKX0pKSxlLnB1c2goTChgbG9hZGAsKCk9PntVKHt0eXBlOnouTG9hZCxkYXRhOnt9fSksUz09PWBsb2FkYCYmbigpfSx3aW5kb3cpKSksKCk9PntlLmZvckVhY2goZT0+ZSgpKSx2ZS5kZXN0cm95KCksTXU9ITEsWGw9dm9pZCAwfX1jYXRjaChlKXtjb25zb2xlLndhcm4oZSl9fXZhciBGdSxJdTtQdS5hZGRDdXN0b21FdmVudD0oZSx0KT0+e2lmKCFNdSl0aHJvdyBFcnJvcihgcGxlYXNlIGFkZCBjdXN0b20gZXZlbnQgYWZ0ZXIgc3RhcnQgcmVjb3JkaW5nYCk7VSh7dHlwZTp6LkN1c3RvbSxkYXRhOnt0YWc6ZSxwYXlsb2FkOnR9fSl9LFB1LmZyZWV6ZVBhZ2U9KCk9PntabC5mb3JFYWNoKGU9PmUuZnJlZXplKCkpfSxQdS50YWtlRnVsbFNuYXBzaG90PWU9PntpZighTXUpdGhyb3cgRXJyb3IoYHBsZWFzZSB0YWtlIGZ1bGwgc25hcHNob3QgYWZ0ZXIgc3RhcnQgcmVjb3JkaW5nYCk7QXUoZSl9LFB1Lm1pcnJvcj1OdSwoSXU9RnV8fChGdT17fSkpW0l1Lk5vdFN0YXJ0ZWQ9MF09YE5vdFN0YXJ0ZWRgLEl1W0l1LlJ1bm5pbmc9MV09YFJ1bm5pbmdgLEl1W0l1LlN0b3BwZWQ9Ml09YFN0b3BwZWRgO3ZhciBMdT0oZT0+KGUuQ2xvc2VkPWBjbG9zZS5jbGlja2AsZS5Db21wbGV0ZT1gc3VydmV5LmNvbXBsZXRlZGAsZS5GZWVkYmFja0Nsb3NlZD1gZmVlZGJhY2suY2xvc2VkYCxlLlBhZ2VDaGFuZ2U9YHBhZ2UuY2hhbmdlYCxlLkFQST1gYXBpYCxlLk92ZXJyaWRlPWBvdmVycmlkZWAsZSkpKEx1fHx7fSksVz0oZT0+KGUuUmVwbGF5Q2FwdHVyZT1gcmVwbGF5LmNhcHR1cmVgLGUuUmVwbGF5UGF1c2VkPWByZXBsYXkucGF1c2VkYCxlLlJlcGxheVJlc3VtZWQ9YHJlcGxheS5yZXN1bWVkYCxlLkZlZWRiYWNrQnV0dG9uTG9hZGVkPWBmZWVkYmFjay5idXR0b24ubG9hZGVkYCxlLlNES1JlYWR5PWBzZGsucmVhZHlgLGUuU3VydmV5QXBwZWFyZWQ9YHN1cnZleS5hcHBlYXJlZGAsZS5TdXJ2ZXlDbG9zZVJlcXVlc3RlZD1gc3VydmV5LmNsb3NlUmVxdWVzdGVkYCxlLlN1cnZleUNsb3NlZD1gc3VydmV5LmNsb3NlZGAsZS5TdXJ2ZXlEaW1lbnNpb25zPWBzdXJ2ZXkuZGltZW5zaW9uc2AsZS5TdXJ2ZXlGYWRpbmdPdXQ9YHN1cnZleS5mYWRpbmdPdXRgLGUuU3VydmV5SGVpZ2h0PWBzdXJ2ZXkuaGVpZ2h0YCxlLlN1cnZleVByZXNlbnRlZD1gc3VydmV5LnByZXNlbnRlZGAsZS5TdXJ2ZXlMaWZlQ3ljbGU9YHN1cnZleS5saWZlQ3ljbGVgLGUuU3VydmV5V2lkdGg9YHN1cnZleS53aWR0aGAsZS5TdXJ2ZXlXaWxsQ2xvc2U9YHN1cnZleS53aWxsQ2xvc2VgLGUuU3VydmV5V2lsbFByZXNlbnQ9YHN1cnZleS53aWxsLnByZXNlbnRgLGUuQ2xvc2VTdXJ2ZXlPbk92ZXJsYXlDbGljaz1gY2xvc2Uuc3VydmV5Lm92ZXJsYXlDbGlja2AsZS5WaXNpdG9ySURVcGRhdGVkPWB2aXNpdG9yLmlkLnVwZGF0ZWRgLGUuUXVlc3Rpb25BbnN3ZXJlZD1gcXVlc3Rpb24uYW5zd2VyZWRgLGUpKShXfHx7fSksUnU9e0ZFRURCQUNLX0JVVFRPTl9MT0FERUQ6YGZlZWRiYWNrLmJ1dHRvbi5sb2FkZWRgLFNES19SRUFEWTpgc2RrLnJlYWR5YCxTVVJWRVlfQVBQRUFSRUQ6YHN1cnZleS5hcHBlYXJlZGAsU1VSVkVZX0NMT1NFRDpgc3VydmV5LmNsb3NlZGAsU1VSVkVZX0RJTUVOU0lPTlM6YHN1cnZleS5kaW1lbnNpb25zYCxTVVJWRVlfRkFESU5HX09VVDpgc3VydmV5LmZhZGluZ091dGAsU1VSVkVZX0hFSUdIVDpgc3VydmV5LmhlaWdodGAsU1VSVkVZX1dJRFRIOmBzdXJ2ZXkud2lkdGhgLFNVUlZFWV9QUkVTRU5URUQ6YHN1cnZleS5wcmVzZW50ZWRgLFNVUlZFWV9MSUZFX0NZQ0xFOmBzdXJ2ZXkubGlmZUN5Y2xlYCxTVVJWRVlfV0lMTF9DTE9TRTpgc3VydmV5LndpbGxDbG9zZWAsU1VSVkVZX1dJTExfUFJFU0VOVDpgc3VydmV5LndpbGwucHJlc2VudGAsUVVFU1RJT05fQU5TV0VSRUQ6YHF1ZXN0aW9uLmFuc3dlcmVkYCxSRVBMQVlfQ0FQVFVSRTpgcmVwbGF5LmNhcHR1cmVgLENMT1NFX1NVUlZFWV9PTl9PVkVSTEFZX0NMSUNLOmBjbG9zZS5zdXJ2ZXkub3ZlcmxheUNsaWNrYCxWSVNJVE9SX0lEX1VQREFURUQ6YHZpc2l0b3IuaWQudXBkYXRlZGAsREFUQTp7RElTTUlTU19SRUFTT05TOntBUEk6YGFwaWAsQ0xPU0VEOmBjbG9zZS5jbGlja2AsQ09NUExFVEU6YHN1cnZleS5jb21wbGV0ZWRgLFBBR0VfQ0hBTkdFOmBwYWdlLmNoYW5nZWAsT1ZFUlJJREU6YG92ZXJyaWRlYH0sU1VSVkVZX0lEOmBzdXJ2ZXkuaWRgfX0senUsQnU9bmV3IFVpbnQ4QXJyYXkoMTYpO2Z1bmN0aW9uIFZ1KCl7aWYoIXp1JiYoenU9dHlwZW9mIGNyeXB0bzxgdWAmJmNyeXB0by5nZXRSYW5kb21WYWx1ZXMmJmNyeXB0by5nZXRSYW5kb21WYWx1ZXMuYmluZChjcnlwdG8pLCF6dSkpdGhyb3cgRXJyb3IoYGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoKSBub3Qgc3VwcG9ydGVkLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3V1aWRqcy91dWlkI2dldHJhbmRvbXZhbHVlcy1ub3Qtc3VwcG9ydGVkYCk7cmV0dXJuIHp1KEJ1KX12YXIgRz1bXTtmb3IobGV0IGU9MDtlPDI1NjsrK2UpRy5wdXNoKChlKzI1NikudG9TdHJpbmcoMTYpLnNsaWNlKDEpKTt2YXIgSHU9e3JhbmRvbVVVSUQ6dHlwZW9mIGNyeXB0bzxgdWAmJmNyeXB0by5yYW5kb21VVUlEJiZjcnlwdG8ucmFuZG9tVVVJRC5iaW5kKGNyeXB0byl9O2Z1bmN0aW9uIFV1KGUsdCxuKXtpZihIdS5yYW5kb21VVUlEJiYhZSlyZXR1cm4gSHUucmFuZG9tVVVJRCgpO2xldCByPShlPWV8fHt9KS5yYW5kb218fChlLnJuZ3x8VnUpKCk7cmV0dXJuIHJbNl09MTUmcls2XXw2NCxyWzhdPTYzJnJbOF18MTI4LGZ1bmN0aW9uKGUsdD0wKXtyZXR1cm4gR1tlW3QrMF1dK0dbZVt0KzFdXStHW2VbdCsyXV0rR1tlW3QrM11dK2AtYCtHW2VbdCs0XV0rR1tlW3QrNV1dK2AtYCtHW2VbdCs2XV0rR1tlW3QrN11dK2AtYCtHW2VbdCs4XV0rR1tlW3QrOV1dK2AtYCtHW2VbdCsxMF1dK0dbZVt0KzExXV0rR1tlW3QrMTJdXStHW2VbdCsxM11dK0dbZVt0KzE0XV0rR1tlW3QrMTVdXX0ocil9dmFyIFd1PWB1bC1hcHBgLEd1PWAjZTZlNmU2YCxLdT1gI2JkMjgyYWAscXU9MTAzMCxLPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3ModGhpcyxgYnJlYWRjcnVtYnNgLFtdKX1nZXRUaW1lU3RhbXAoKXtyZXR1cm4gbmV3IERhdGUoKS50b0lTT1N0cmluZygpfWFkZEJyZWFkY3J1bWIoZSl7dGhpcy5icmVhZGNydW1icy5wdXNoKGUpLHRoaXMuYnJlYWRjcnVtYnMubGVuZ3RoPjMwMCYmdGhpcy5icmVhZGNydW1icy5zaGlmdCgpfWRlYnVnKGUsdD1gZGVidWdgKXt0aGlzLmFkZEJyZWFkY3J1bWIoe2NhdGVnb3J5OnQsbGV2ZWw6YGluZm9gLG1lc3NhZ2U6ZSx0aW1lc3RhbXA6dGhpcy5nZXRUaW1lU3RhbXAoKSx0eXBlOmBkZWJ1Z2B9KX1lcnJvcihlLHQ9e30pe3RoaXMuYWRkQnJlYWRjcnVtYih7Y2F0ZWdvcnk6YGVycm9yYCxkYXRhOnQsbGV2ZWw6YGVycm9yYCxtZXNzYWdlOmUsdGltZXN0YW1wOnRoaXMuZ2V0VGltZVN0YW1wKCksdHlwZTpgZXJyb3JgfSl9aHR0cChlLHQpe3RoaXMuYWRkQnJlYWRjcnVtYih7Y2F0ZWdvcnk6YHhocmAsZGF0YTp0LG1lc3NhZ2U6ZSx0aW1lc3RhbXA6dGhpcy5nZXRUaW1lU3RhbXAoKSx0eXBlOmBodHRwYH0pfWluZm8oZSx0PXt9KXt0aGlzLmFkZEJyZWFkY3J1bWIoe2NhdGVnb3J5OmBpbmZvYCxkYXRhOnQsbGV2ZWw6YGluZm9gLG1lc3NhZ2U6ZSx0aW1lc3RhbXA6dGhpcy5nZXRUaW1lU3RhbXAoKSx0eXBlOmBpbmZvYH0pfW5hdmlnYXRpb24oZSx0KXt0aGlzLmFkZEJyZWFkY3J1bWIoe2NhdGVnb3J5OmBuYXZpZ2F0aW9uYCxkYXRhOnQsbWVzc2FnZTplLHRpbWVzdGFtcDp0aGlzLmdldFRpbWVTdGFtcCgpLHR5cGU6YG5hdmlnYXRpb25gfSl9fSxKdT0oKT0+e3RyeXtyZXR1cm4gd2luZG93LnBhcmVudC5JbnRlcmNvbX1jYXRjaHtyZXR1cm4gbnVsbH19LFl1PVtPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7X19wcm90b19fOm51bGwsZGlzYWJsZTooKT0+e2xldCBlPUp1KCk7ZSYmKGUudWxfd2FzVmlzaWJsZT0hIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGlmcmFtZS5pbnRlcmNvbS1sYXVuY2hlci1mcmFtZWApLGUudWxfd2FzVmlzaWJsZSYmZShgdXBkYXRlYCx7aGlkZV9kZWZhdWx0X2xhdW5jaGVyOiEwfSkpfSxlbmFibGU6KCk9PntsZXQgZT1KdSgpO2UmJihlLnVsX3dhc1Zpc2libGUmJmUoYHVwZGF0ZWAse2hpZGVfZGVmYXVsdF9sYXVuY2hlcjohMX0pLGRlbGV0ZSBlLnVsX3dhc1Zpc2libGUpfX0sU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpgTW9kdWxlYH0pKV0sWHU9Y2xhc3N7c3RhdGljIGRpc2FibGUoKXtZdS5mb3JFYWNoKGU9PmUuZGlzYWJsZSgpKX1zdGF0aWMgZW5hYmxlKCl7WXUuZm9yRWFjaChlPT5lLmVuYWJsZSgpKX19LFp1PWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKGBQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICR7bn0gJHt0LnRvU3RyaW5nKCl9IGxpc3RlbmVycyBhZGRlZC4gVXNlIGVtaXR0ZXIuc2V0TWF4TGlzdGVuZXJzKCkgdG8gaW5jcmVhc2UgbGltaXRgKSx0aGlzLmVtaXR0ZXI9ZSx0aGlzLnR5cGU9dCx0aGlzLmNvdW50PW4sdGhpcy5uYW1lPWBNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmdgfX0sUXU9Y2xhc3N7c3RhdGljIGxpc3RlbmVyQ291bnQoZSx0KXtyZXR1cm4gZS5saXN0ZW5lckNvdW50KHQpfWNvbnN0cnVjdG9yKCl7dGhpcy5ldmVudHM9bmV3IE1hcCx0aGlzLm1heExpc3RlbmVycz1RdS5kZWZhdWx0TWF4TGlzdGVuZXJzLHRoaXMuaGFzV2FybmVkQWJvdXRQb3RlbnRpYWxNZW1vcnlMZWFrPSExfV9lbWl0SW50ZXJuYWxFdmVudChlLHQsbil7dGhpcy5lbWl0KGUsdCxuKX1fZ2V0TGlzdGVuZXJzKGUpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLHRoaXMuZXZlbnRzLmdldChlKSl8fFtdfV9yZW1vdmVMaXN0ZW5lcihlLHQpe2xldCBuPWUuaW5kZXhPZih0KTtyZXR1cm4gbj4tMSYmZS5zcGxpY2UobiwxKSxbXX1fd3JhcE9uY2VMaXN0ZW5lcihlLHQpe2xldCBuPSguLi5yKT0+KHRoaXMucmVtb3ZlTGlzdGVuZXIoZSxuKSx0LmFwcGx5KHRoaXMscikpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobixgbmFtZWAse3ZhbHVlOnQubmFtZX0pLG59c2V0TWF4TGlzdGVuZXJzKGUpe3JldHVybiB0aGlzLm1heExpc3RlbmVycz1lLHRoaXN9Z2V0TWF4TGlzdGVuZXJzKCl7cmV0dXJuIHRoaXMubWF4TGlzdGVuZXJzfWV2ZW50TmFtZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmV2ZW50cy5rZXlzKCkpfWVtaXQoZSwuLi50KXtsZXQgbj10aGlzLl9nZXRMaXN0ZW5lcnMoZSk7cmV0dXJuIG4uZm9yRWFjaChlPT57ZS5hcHBseSh0aGlzLHQpfSksbi5sZW5ndGg+MH1hZGRMaXN0ZW5lcihlLHQpe3RoaXMuX2VtaXRJbnRlcm5hbEV2ZW50KGBuZXdMaXN0ZW5lcmAsZSx0KTtsZXQgbj10aGlzLl9nZXRMaXN0ZW5lcnMoZSkuY29uY2F0KHQpO2lmKHRoaXMuZXZlbnRzLnNldChlLG4pLHRoaXMubWF4TGlzdGVuZXJzPjAmJnRoaXMubGlzdGVuZXJDb3VudChlKT50aGlzLm1heExpc3RlbmVycyYmIXRoaXMuaGFzV2FybmVkQWJvdXRQb3RlbnRpYWxNZW1vcnlMZWFrKXt0aGlzLmhhc1dhcm5lZEFib3V0UG90ZW50aWFsTWVtb3J5TGVhaz0hMDtsZXQgdD1uZXcgWnUodGhpcyxlLHRoaXMubGlzdGVuZXJDb3VudChlKSk7Y29uc29sZS53YXJuKHQpfXJldHVybiB0aGlzfW9uKGUsdCl7cmV0dXJuIHRoaXMuYWRkTGlzdGVuZXIoZSx0KX1vbmNlKGUsdCl7cmV0dXJuIHRoaXMuYWRkTGlzdGVuZXIoZSx0aGlzLl93cmFwT25jZUxpc3RlbmVyKGUsdCkpfXByZXBlbmRMaXN0ZW5lcihlLHQpe2xldCBuPXRoaXMuX2dldExpc3RlbmVycyhlKTtpZihuLmxlbmd0aD4wKXtsZXQgcj1bdF0uY29uY2F0KG4pO3RoaXMuZXZlbnRzLnNldChlLHIpfWVsc2UgdGhpcy5ldmVudHMuc2V0KGUsbi5jb25jYXQodCkpO3JldHVybiB0aGlzfXByZXBlbmRPbmNlTGlzdGVuZXIoZSx0KXtyZXR1cm4gdGhpcy5wcmVwZW5kTGlzdGVuZXIoZSx0aGlzLl93cmFwT25jZUxpc3RlbmVyKGUsdCkpfXJlbW92ZUxpc3RlbmVyKGUsdCl7bGV0IG49dGhpcy5fZ2V0TGlzdGVuZXJzKGUpO3JldHVybiBuLmxlbmd0aD4wJiYodGhpcy5fcmVtb3ZlTGlzdGVuZXIobix0KSx0aGlzLmV2ZW50cy5zZXQoZSxuKSx0aGlzLl9lbWl0SW50ZXJuYWxFdmVudChgcmVtb3ZlTGlzdGVuZXJgLGUsdCkpLHRoaXN9b2ZmKGUsdCl7cmV0dXJuIHRoaXMucmVtb3ZlTGlzdGVuZXIoZSx0KX1yZW1vdmVBbGxMaXN0ZW5lcnMoZSl7cmV0dXJuIGU/dGhpcy5ldmVudHMuZGVsZXRlKGUpOnRoaXMuZXZlbnRzLmNsZWFyKCksdGhpc31saXN0ZW5lcnMoZSl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fZ2V0TGlzdGVuZXJzKGUpKX1saXN0ZW5lckNvdW50KGUpe3JldHVybiB0aGlzLl9nZXRMaXN0ZW5lcnMoZSkubGVuZ3RofXJhd0xpc3RlbmVycyhlKXtyZXR1cm4gdGhpcy5saXN0ZW5lcnMoZSl9fSwkdT1RdTskdS5kZWZhdWx0TWF4TGlzdGVuZXJzPTEwO3ZhciBxPW5ldyAkdSxlZD1hc3luYyBlPT57YXdhaXQgbmV3IFByb21pc2UodD0+e3NldFRpbWVvdXQodCxlKX0pfSx0ZD0oeyJ1c2VybGVhcC1wbGF0Zm9ybSI6ZX0pPT57dmFyIHQ7cmV0dXJuKCh0PXdpbmRvdy5Vc2VyTGVhcCk9PW51bGw/dm9pZCAwOnQuZm9yY2VEaXJlY3RFbWJlZCl8fGUhPT1gd2ViYH0sbmQ9Y2xhc3N7Y29uc3RydWN0b3IoZSl7cyh0aGlzLGBzdG9yYWdlYCkscyh0aGlzLGB0ZW1wU3RvcmFnZWAse30pLHModGhpcyxgaXNTdG9yYWdlQXZhaWxhYmxlYCk7dHJ5e3RoaXMuc3RvcmFnZT13aW5kb3dbZV07bGV0IHQ9YF9fc3RvcmFnZV90ZXN0X19gO3RoaXMuc3RvcmFnZS5zZXRJdGVtKHQsdCksdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0odCksdGhpcy5pc1N0b3JhZ2VBdmFpbGFibGU9ITB9Y2F0Y2h7dGhpcy5pc1N0b3JhZ2VBdmFpbGFibGU9ITF9fXNldEl0ZW0oZSx0KXt0aGlzLmlzU3RvcmFnZUF2YWlsYWJsZSYmdGhpcy5zdG9yYWdlP3RoaXMuc3RvcmFnZS5zZXRJdGVtKGUsdCk6dGhpcy50ZW1wU3RvcmFnZVtlXT10fXNldEl0ZW1PYmplY3QoZSx0KXt0cnl7dGhpcy5zZXRJdGVtKGUsSlNPTi5zdHJpbmdpZnkodCkpfWNhdGNoKG4pe24gaW5zdGFuY2VvZiBFcnJvciYmKG4uc3RhY2s9ZStgOiBgK3Qsd2luZG93LlVzZXJMZWFwLnJlcG9ydEVycm9yKGBGYWlsZWQgdG8gc2F2ZSB0byBsb2NhbCBzdG9yYWdlYCxuKSl9fWdldEl0ZW0oZSl7cmV0dXJuIHRoaXMuaXNTdG9yYWdlQXZhaWxhYmxlJiZ0aGlzLnN0b3JhZ2U/dGhpcy5zdG9yYWdlLmdldEl0ZW0oZSk6dGhpcy50ZW1wU3RvcmFnZVtlXX1nZXRJdGVtT2JqZWN0KGUpe2xldCB0PXRoaXMuZ2V0SXRlbShlKTtpZih0KXRyeXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaChuKXtuIGluc3RhbmNlb2YgRXJyb3ImJihuLnN0YWNrPWUrYDogYCt0LHdpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihgRmFpbGVkIHRvIHBhcnNlIGxvY2FsIHN0b3JhZ2VgLG4pKX1yZXR1cm57fX1yZW1vdmVJdGVtKGUpe3RoaXMuaXNTdG9yYWdlQXZhaWxhYmxlJiZ0aGlzLnN0b3JhZ2U/dGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0oZSk6ZGVsZXRlIHRoaXMudGVtcFN0b3JhZ2VbZV19Y2xlYXIoKXt0aGlzLmlzU3RvcmFnZUF2YWlsYWJsZSYmdGhpcy5zdG9yYWdlP3RoaXMuc3RvcmFnZS5jbGVhcigpOnRoaXMudGVtcFN0b3JhZ2U9e319fSxyZD0oZSx0KT0+e2xldCBuPVtlW3RdXSxyPWVbdF0uZ3JvdXBJZDtyZXR1cm4gcj9lLnNsaWNlKHQpLnJlZHVjZSgoZSx0KT0+KHQuZ3JvdXBJZD09PXImJmUucHVzaCh0KSxlKSxbXSk6bn0saWQ9ZT0+ZT09PWBsb25nRm9ybVN1cnZleWAsSj1uZXcgbmQoYHNlc3Npb25TdG9yYWdlYCksYWQ9bmV3IG5kKGBsb2NhbFN0b3JhZ2VgKSxvZD1jbGFzc3tjb25zdHJ1Y3RvcihlKXtzKHRoaXMsYHBheWxvYWRgKSxzKHRoaXMsYHByb21pc2VgKSxzKHRoaXMsYHJlamVjdGAsKCk9Pnt9KSxzKHRoaXMsYHJlc29sdmVgLCgpPT57fSksdGhpcy5wYXlsb2FkPWUsdGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKChlLHQpPT57dGhpcy5yZWplY3Q9dCx0aGlzLnJlc29sdmU9ZX0pfXJlc29sdmVSZXF1ZXN0KGUpe3RoaXMucmVzb2x2ZShlKX19LFk9e3JlcGxheTpudWxsfSxzZD0oKT0+e2xldCBlPVtdO3JldHVybiBZLnJlcGxheSYmZS5wdXNoKGByZXBsYXlgKSxlLmpvaW4oYCxgKX0sY2Q9MTAsbGQ9ITEsdWQ9YGAsZGQ9ITEsZmQ9ITEscGQ9W10sbWQ9ZT0+ZS5fY29uZmlnJiZlLl9jb25maWcuaW5zdGFsbGF0aW9uTWV0aG9kP2UuX2NvbmZpZy5pbnN0YWxsYXRpb25NZXRob2Q6ZS5fZ3RtP2B3ZWItZ3RtYDplLl9zZWdtZW50P2B3ZWItc2VnbWVudGA6YHdlYi1zbmlwcGV0YCxoZD1lPT57dmFyIHQ7KHQ9ZT09bnVsbD92b2lkIDA6ZS5ibG9ja2VkVVJJKSE9bnVsbCYmdC5pbmNsdWRlcyh3aW5kb3cuVXNlckxlYXAuX0FQSV9VUkwpJiYoZmQ9ITAsY29uc29sZS53YXJuKGBbU3ByaWddICR7ZS5ibG9ja2VkVVJJfSBpcyBibG9ja2VkIGJ5IENvbnRlbnQtU2VjdXJpdHktUG9saWN5YCkpfSxnZD0oZT1gYCk9PntsZD0hMCx1ZD1lfTtmdW5jdGlvbiBfZChlPXt9KXtsZXQgdD17IkNvbnRlbnQtVHlwZSI6YGFwcGxpY2F0aW9uL2pzb25gLCJ1c2VybGVhcC1wbGF0Zm9ybSI6YHdlYmAsIngtdWwtc2RrLXZlcnNpb24iOmAyLjM1LjBgLCJ4LXVsLWluc3RhbGxhdGlvbi1tZXRob2QiOm1kKGUpLCJzcHJpZy1tb2R1bGVzIjpzZCgpLCJ4LXVsLXBhY2thZ2UtdmVyc2lvbiI6YDIuMzUuMGB9O2lmKGUuZW52SWQmJih0W2B4LXVsLWVudmlyb25tZW50LWlkYF09ZS5lbnZJZCksZS50b2tlbiYmKHQuQXV0aG9yaXphdGlvbj1gQmVhcmVyIGArZS50b2tlbiksZS51c2VySWQmJih0W2B4LXVsLXVzZXItaWRgXT1lLnVzZXJJZCksZS52aXNpdG9ySWQmJih0W2B4LXVsLXZpc2l0b3ItaWRgXT1lLnZpc2l0b3JJZCksZS5wYXJ0bmVyQW5vbnltb3VzSWQmJih0W2B4LXVsLWFub255bW91cy1pZGBdPWUucGFydG5lckFub255bW91c0lkKSxlLm1vYmlsZUhlYWRlcnNKU09OKXtsZXQgbj1KU09OLnBhcnNlKGUubW9iaWxlSGVhZGVyc0pTT04pO09iamVjdC5hc3NpZ24odCxuKX1yZXR1cm4gZS5sb2NhbGUmJih0W2BhY2NlcHQtbGFuZ3VhZ2VgXT1lLmxvY2FsZSksd2luZG93LnByZXZpZXdNb2RlJiYodFtgeC11bC1wcmV2aWV3LW1vZGVgXT1gMWApLHR9dmFyIHZkPWFzeW5jKHtzaG91bGREcm9wT25SYXRlTGltaXQ6ZSwuLi50fSk9PntpZihlKXJldHVybntzdGF0dXM6NDI5fTt7bGV0IGU9bmV3IG9kKHQpO3JldHVybiBwZC5wdXNoKGUpLGUucHJvbWlzZX19LHlkPWFzeW5jKGUsdCk9PntsZXR7cmV0cmllczpuPTAsc2hvdWxkRHJvcE9uUmF0ZUxpbWl0OnI9ITEsc2hvdWxkUmV0cnlSZXF1ZXN0Omk9ITEsLi4uYX09dCxvPXt1cmw6ZSxvcHRpb25zOmEscmV0cmllczpuLHNob3VsZERyb3BPblJhdGVMaW1pdDpyfTtpZihkZCYmIWkpcmV0dXJuIHZkKG8pO2xldCBzPXtvazohMSxyZXBvcnRFcnJvcjohMX07aWYobGQpcmV0dXJuIGNvbnNvbGUuaW5mbyhgVXNlckxlYXAgLSAke3VkfWApLHM7dHJ5e2xldCB0PWF3YWl0IGZldGNoKGUsYSk7aWYodC5zdGF0dXM9PT00MjkpcmV0dXJuIWRkJiYhcnx8aT8oZGQ9ITAsYXdhaXQgZWQoMWUzKih0LmhlYWRlcnMuaGFzKGByYXRlbGltaXQtcmVzZXRgKT9OdW1iZXIodC5oZWFkZXJzLmdldChgcmF0ZWxpbWl0LXJlc2V0YCkpOmNkKSkseWQoZSx7Li4uYSxzaG91bGREcm9wT25SYXRlTGltaXQ6cixzaG91bGRSZXRyeVJlcXVlc3Q6ITB9KSk6dmQobyk7aWYoZGQ9ITEscGQubGVuZ3RoJiYocGQubWFwKGU9PntsZXQgdD1lLnBheWxvYWQ7eWQodC51cmwsey4uLnQub3B0aW9ucyxyZXRyaWVzOnQucmV0cmllcyxzaG91bGREcm9wT25SYXRlTGltaXQ6dC5zaG91bGREcm9wT25SYXRlTGltaXR9KS50aGVuKHQ9PntlLnJlc29sdmVSZXF1ZXN0KHQpfSl9KSxwZD1bXSksdC5vayl7aWYodC5zdGF0dXM9PT0yNDkpcmV0dXJuIGdkKCkscztsZXQgbj1hd2FpdCB0LnRleHQoKTt0cnl7cmV0dXJuIG4mJm4hPT1gT0tgJiYodC5qc29uPUpTT04ucGFyc2UobikpLHR9Y2F0Y2h7cmV0dXJue29rOiExLHJlcG9ydEVycm9yOiExLGVycm9yOkVycm9yKGBmYWlsZWQgcGFyc2luZyByZXNwb25zZSBqc29uIGZvciAke2V9IC0gJHtufWApfX19cmV0dXJuIHR9Y2F0Y2godCl7bGV0IHI9bisxO3JldHVybiByPjV8fGZkP3tvazohMSxyZXBvcnRFcnJvcjohMSxlcnJvcjp0fTooYXdhaXQgZWQoMWUzKjIqKm4pLHlkKGUsey4uLmEscmV0cmllczpyfSkpfX0sYmQ9YHVsLXZpZXctc2RrLXNjcmlwdGAseGQ9W2Bpb3NgLGBhbmRyb2lkYF0sU2Q9YHZpc2l0b3JzYCxDZD1gZW52aXJvbm1lbnRzYDthc3luYyBmdW5jdGlvbiB3ZChlLHQpe3ZhciBuLHIsaTtsZXR7c2hvdWxkRHJvcE9uUmF0ZUxpbWl0OmEsLi4ub309dDtvLmhlYWRlcnM9T2JqZWN0LmFzc2lnbihfZCh3aW5kb3cuVXNlckxlYXApLG8uaGVhZGVycyk7bGV0IHM9YXdhaXQgeWQoZSx7Li4ubyxzaG91bGREcm9wT25SYXRlTGltaXQ6YX0pO2lmKHMub2spe2xldCBlPShuPXMuaGVhZGVycyk9PW51bGw/dm9pZCAwOm4uZ2V0KGBBdXRob3JpemF0aW9uYCksdD1lP2Uuc3BsaXQoYCBgKTp2b2lkIDAsaT10JiZ0Lmxlbmd0aD09PTI/dFsxXTp2b2lkIDAsYT0ocj1zLmhlYWRlcnMpPT1udWxsP3ZvaWQgMDpyLmdldChgeC11bC12aXNpdG9yLWlkYCk7aWYod2luZG93LlVzZXJMZWFwLnVzZXJJZCYmYT09PXdpbmRvdy5Vc2VyTGVhcC52aXNpdG9ySWQpe2xldCBlPWFkLmdldEl0ZW1PYmplY3QoYHNwcmlnLmFub24uZW52LnZpZC5tYXBgKTtlJiZlW3dpbmRvdy5Vc2VyTGVhcC5lbnZJZF09PT1hJiYoZGVsZXRlIGVbd2luZG93LlVzZXJMZWFwLmVudklkXSxhZC5zZXRJdGVtT2JqZWN0KGBzcHJpZy5hbm9uLmVudi52aWQubWFwYCxlKSl9aSYmYSYmKGEhPT13aW5kb3cuVXNlckxlYXAudmlzaXRvcklkfHx3aW5kb3cuVXNlckxlYXAudG9rZW4hPT1pKSYmKFRkKGB0b2tlbmAsaSksVGQoYHZpZGAsYSkscS5lbWl0KFcuVmlzaXRvcklEVXBkYXRlZCx7dmlzaXRvcklkOmF9KSx3aW5kb3cuVXNlckxlYXAudG9rZW49aSx3aW5kb3cuVXNlckxlYXAudmlzaXRvcklkPWEpfXJldHVybihpPXMuanNvbikhPW51bGwmJmkubG9nTWVzc2FnZSYmY29uc29sZS53YXJuKGBbU3ByaWddICR7cy5qc29uLmxvZ01lc3NhZ2V9YCksc31mdW5jdGlvbiBUZChlLHQpe2xldCBuPWFkLmdldEl0ZW1PYmplY3QoYHVzZXJsZWFwLmlkc2ApLHI9blt3aW5kb3cuVXNlckxlYXAuZW52SWRdO3I/cltlXT10OnI9e1tlXTp0fSxuW3dpbmRvdy5Vc2VyTGVhcC5lbnZJZF09cixhZC5zZXRJdGVtT2JqZWN0KGB1c2VybGVhcC5pZHNgLG4pfWZ1bmN0aW9uIEVkKCl7cmV0dXJuIHdpbmRvdy5wcmV2aWV3TW9kZT9gMGA6d2luZG93LlVzZXJMZWFwLnZpc2l0b3JJZD8/YGB9ZnVuY3Rpb24gRGQoZSx0LG4pe2xldCByPVt3aW5kb3cuVXNlckxlYXAuX0FQSV9VUkwsYHNka2AsZV07cmV0dXJuIHQmJnQuZm9yRWFjaChlPT57ci5wdXNoKGUpLGU9PT1DZD9yLnB1c2god2luZG93LlVzZXJMZWFwLmVudklkKTplPT09U2QmJnIucHVzaChFZCgpKX0pLG4mJnIucHVzaChuKSxyLmpvaW4oYC9gKX12YXIgT2Q9YXN5bmModCxuLHIpPT57dmFyIGksYSxvO2xldHtjb250ZXh0OnMsZGVsYXk6Yyxmb3JjZUJyYW5kZWRMb2dvOmwsZW5kQ2FyZDp1LGlzRmVlZGJhY2s6ZD0hMSxoZWF0bWFwOmYsbG9jYWxlOnAscHJldmlld01vZGU6bSxwcm9kdWN0Q29uZmlnOmgscXVlc3Rpb25zOmcscmVzcG9uc2VHcm91cFVpZDpfLHN1cnZleUlkOnYsdXVpZDplZSx2aWQ6eSxzZXNzaW9uUmVwbGF5OmIsc3R1ZHlUeXBlOnRlfT10LHg9X2Qod2luZG93LlVzZXJMZWFwKSxTPUFkKHgpLG5lPWtkKHgpO2lmKGIpaWYoUylxLmVtaXQoVy5SZXBsYXlDYXB0dXJlLHtyZXNwb25zZUdyb3VwVWlkOl8saGFzUXVlc3Rpb25zOiEhKGchPW51bGwmJmcubGVuZ3RoKSxzdXJ2ZXlJZDp2LHVwbG9hZElkOmIudXBsb2FkSWQscmVwbGF5VHlwZTpiLnJlcGxheUR1cmF0aW9uVHlwZT8/YGJlZm9yZWAsc2Vjb25kczpiLnJlcGxheUR1cmF0aW9uU2Vjb25kcyxnZW5lcmF0ZVZpZGVvVXBsb2FkVXJsUGF5bG9hZDp7bWVkaWFSZWNvcmRpbmdVaWQ6VXUoKSxtZWRpYVR5cGU6YHNjcmVlbmAscXVlc3Rpb25JZDoxLHJlc3BvbnNlR3JvdXBVaWQ6XyxzdXJ2ZXlJZDp2LHVwZGF0ZWRBdDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksdmlzaXRvcklkOndpbmRvdy5Vc2VyTGVhcC52aXNpdG9ySWQsaXNSZXBsYXk6ITB9fSk7ZWxzZXtpZighWS5yZXBsYXkpcmV0dXJuIHdpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihgZGlzcGxheVF1ZXN0aW9uc2AsRXJyb3IoYFJlcGxheSBtb2R1bGUgbm90IHJlZ2lzdGVyZWRgKSkse3N1Y2Nlc3M6ITEsbWVzc2FnZTpgUmVwbGF5IG1vZHVsZSBub3QgcmVnaXN0ZXJlZGAsc3VydmV5U3RhdGU6YG5vIHN1cnZleWB9O1kucmVwbGF5LnNjaGVkdWxlT3JDYXB0dXJlUmVwbGF5KHtyZXNwb25zZUdyb3VwSWQ6XyxzdXJ2ZXlJZDp2LHZpc2l0b3JJZDp5LHJlcGxheVBhcmFtczpiLGNvbXBsZXRlVXBsb2FkSGVhZGVyczp4LGFwaVVybDp3aW5kb3cuVXNlckxlYXAuX0FQSV9VUkwsdHJpZ2dlclRpbWVzdGFtcDpEYXRlLm5vdygpLGlzU3RhbmRhbG9uZTpnLmxlbmd0aD09PTB9KX1pZihmKXtpZighWS5yZXBsYXkpcmV0dXJuIHdpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihgZGlzcGxheVF1ZXN0aW9uc2AsRXJyb3IoYFJlcGxheSBtb2R1bGUgbm90IHJlZ2lzdGVyZWRgKSkse3N1Y2Nlc3M6ITEsbWVzc2FnZTpgUmVwbGF5IG1vZHVsZSBub3QgcmVnaXN0ZXJlZGAsc3VydmV5U3RhdGU6YG5vIHN1cnZleWB9O2xldHtldmVudElkOmUscmVwbGF5UGFyYW1zOnQscmVzcG9uc2VHcm91cFVpZDpuLHN1cnZleUlkOml9PWY7YXdhaXQgWS5yZXBsYXkuaW5pdGlhbGl6ZVJlcGxheSh7bWF4UmVwbGF5RHVyYXRpb25TZWNvbmRzOjMwMCxtYXhJbmZsaWdodFJlcXVlc3RzOndpbmRvdy5Vc2VyTGVhcC5tYXhJbmZsaWdodFJlcGxheVJlcXVlc3RzLHRlYXJkb3duQWZ0ZXI6ITAsYXBpVXJsOndpbmRvdy5Vc2VyTGVhcC5fQVBJX1VSTCxyZXBsYXlTZXR0aW5nczpyfSksWS5yZXBsYXkudHJ5UmVwbGF5QWN0aW9uKCgpPT57dmFyIHI7cmV0dXJuKHI9WS5yZXBsYXkpPT1udWxsP3ZvaWQgMDpyLnNjaGVkdWxlQ2FwdHVyZSh7YXBpVXJsOndpbmRvdy5Vc2VyTGVhcC5fQVBJX1VSTCxjb21wbGV0ZVVwbG9hZEhlYWRlcnM6eCxldmVudElkOmUsaXNIZWF0bWFwOiEwLHJlcGxheVBhcmFtczp0LHJlc3BvbnNlR3JvdXBJZDpuLHN1cnZleUlkOmksdHJpZ2dlclRpbWVzdGFtcDpEYXRlLm5vdygpLHZpc2l0b3JJZDp5fSl9LGBFcnJvciBpbiBzY2hlZHVsaW5nL2NhcHR1cmluZyByZXBsYXlgKX1pZih5PT1udWxsfHwhKGchPW51bGwmJmcubGVuZ3RoKSlyZXR1cm4gSy5pbmZvKGBDYW5ub3REaXNwbGF5U3VydmV5YCx7dmlkOnl9KSx7c3VjY2VzczohMSxtZXNzYWdlOmBbU3ByaWddIG5vIHN1cnZleSBmb3VuZGAsc3VydmV5U3RhdGU6YG5vIHN1cnZleWB9O2lmKGpkKGcpKXJldHVybntzdWNjZXNzOiExLG1lc3NhZ2U6YFtTcHJpZ10gYnVuZGxlZCB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgdmlkZW8gdm9pY2VgLHN1cnZleVN0YXRlOmBubyBzdXJ2ZXlgfTtpZih3aW5kb3cuVXNlckxlYXAuY29udGFpbmVyKXtLLmluZm8oYEFscmVhZHlEaXNwbGF5aW5nU3VydmV5YCk7bGV0IGU9YFtTcHJpZ10gKEVSUi00MDkpIEZvdW5kIGFuIGV4aXN0aW5nIFN1cnZleSBjb250YWluZXIsIGFib3J0aW5nIHJlbmRlcmluZyBvZiB0aGlzIHN1cnZleWA7cmV0dXJuIGNvbnNvbGUud2FybihlKSx7c3VjY2VzczohMSxtZXNzYWdlOmUsc3VydmV5U3RhdGU6YG5vIHN1cnZleWB9fWlmKHkhPT13aW5kb3cuVXNlckxlYXAudmlzaXRvcklkJiZlZSE9PXdpbmRvdy5Vc2VyTGVhcC52aXNpdG9ySWQmJiF3aW5kb3cucHJldmlld01vZGUpe2xldCBlPWBBdHRlbXB0ZWQgdG8gZGlzcGxheSBzdXJ2ZXkgdG8gYSBkaWZmZXJlbnQgdmlzaXRvcmA7cmV0dXJuIHdpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihgRGlzcGxheVN1cnZleWAsRXJyb3IoZSkpLHtzdWNjZXNzOiExLG1lc3NhZ2U6ZSxzdXJ2ZXlTdGF0ZTpgbm8gc3VydmV5YH19Sy5pbmZvKGBTaG93aW5nU3VydmV5YCx7c3VydmV5SWQ6dn0pLChpPVkucmVwbGF5KT09bnVsbHx8aS5SZWNvcmRTdXJ2ZXlTaG93bih7aWQ6dix1c2VyQWdlbnQ6d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnR9KSxYdS5kaXNhYmxlKCkscS5lbWl0KFcuU3VydmV5V2lsbFByZXNlbnQse25hbWU6Vy5TdXJ2ZXlXaWxsUHJlc2VudCwic3VydmV5LmlkIjp2fSk7bGV0IHJlLGllLEMsYWUsb2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgZGl2YCksc2U9ZT0+e2xldHsidmlldy52ZXJzaW9uIjp0fT1lO3QhPT14W2B4LXVsLXNkay12ZXJzaW9uYF0mJkZkKCkscS5yZW1vdmVMaXN0ZW5lcihgdmVyaWZ5LnZpZXcudmVyc2lvbmAsc2UpfTtxLm9uKGB2ZXJpZnkudmlldy52ZXJzaW9uYCxzZSksd2luZG93LlVzZXJMZWFwLnVzZU1vYmlsZVN0eWxpbmc9bmUsdGQoeCk/KHJlPWB1bC1kaXJlY3QtZW1iZWRlZC1mcmFtZWAsaWU9ZG9jdW1lbnQuaGVhZCxDPXdpbmRvdyxhZT0hMSwoKCk9PntsZXQgZT1fZCh3aW5kb3cuVXNlckxlYXApLHQ9QWQoZSksbj13aW5kb3cuVXNlckxlYXAuZm9yY2VEaXJlY3RFbWJlZCxyPWVbYHVzZXJsZWFwLXBsYXRmb3JtYF09PT1gd2ViYDtyZXR1cm4gdHx8biYmcn0pKCkmJihQZCh2LGQpLG9lLmlkPXJlLHdpbmRvdy5Vc2VyTGVhcC5jb250YWluZXIuYXBwZW5kQ2hpbGQob2UpLElkKCkscS5lbWl0KFcuU3VydmV5TGlmZUN5Y2xlLHtzdGF0ZTpgcHJlc2VudGVkYH0pLHEuZW1pdChXLlN1cnZleVByZXNlbnRlZCx7bmFtZTpXLlN1cnZleVByZXNlbnRlZCwic3VydmV5LmlkIjp2fSkpKTp7ZnJhbWVJZDpyZSxjb250ZW50V2luRG9jSGVhZDppZSxjb250ZW50V2luZG93OkMsaGFzT3ZlcmxheTphZSxpZnJhbWU6b2V9PVJkKHtwcm9kdWN0Q29uZmlnOmgsdXNlTW9iaWxlU3R5bGluZzpuZSxzdXJ2ZXlJZDp2LGlzRmVlZGJhY2s6ZH0pLHdpbmRvdy5Vc2VyTGVhcC5mcmFtZUlkPXJlO2xldCBjZT17YXBpVVJMOndpbmRvdy5Vc2VyTGVhcC5fQVBJX1VSTCxjYXJkczpnLGNvbmZpZ3VyZUV4aXRPbk92ZXJsYXlDbGljazplPT57cS5vbmNlKFcuQ2xvc2VTdXJ2ZXlPbk92ZXJsYXlDbGljayxlKX0sY29udGV4dDpzLGVuZENhcmQ6dSxlbnZJZDp3aW5kb3cuVXNlckxlYXAuZW52SWQsZXZlbnRFbWl0Rm46cS5lbWl0LmJpbmQocSksZm9udEZhbWlseTp3aW5kb3cuVXNlckxlYXAuZm9udEZhbWlseSxmb250RmFtaWx5VVJMOndpbmRvdy5Vc2VyTGVhcC5mb250RmFtaWx5VVJMLGZvcmNlQnJhbmRlZExvZ286bCxmcmFtZTpvZSxoZWFkZXJzOngsbG9jYWxlOnAsbW9iaWxlU0RLVmVyc2lvbjp3aW5kb3cuVXNlckxlYXAubW9iaWxlU0RLVmVyc2lvbixwcmV2aWV3S2V5OmFkLmdldEl0ZW0oYHNwcmlnLnByZXZpZXdLZXlgKSxwcmV2aWV3TW9kZTptLHByb2R1Y3RDb25maWc6e2ZyYW1lUG9zaXRpb246aD09bnVsbD92b2lkIDA6aC5mcmFtZVBvc2l0aW9uLGRlc2t0b3BEaXNwbGF5Omg9PW51bGw/dm9pZCAwOmguZGVza3RvcERpc3BsYXkscGxhY2VtZW50Omg9PW51bGw/dm9pZCAwOmgucGxhY2VtZW50fSxyZXNwb25zZUdyb3VwVWlkOl8sc3RhcnRpbmdRdWVzdGlvbklkeDooYT13aW5kb3cuVXNlckxlYXAuY29uZmlnKT09bnVsbD92b2lkIDA6YS5zdGFydGluZ1F1ZXN0aW9uSWR4LHN0dWR5VHlwZTp0ZSxzdHlsZU5vbmNlOndpbmRvdy5Vc2VyTGVhcC5zdHlsZU5vbmNlLHN1cnZleUlkOnYsdGFiVGl0bGU6ZG9jdW1lbnQudGl0bGUsdHJhY2tQYWdlVmlld1VybDpuLHVsRXZlbnRzOlJ1LHVwY2h1bmtMaWJyYXJ5VVJMOndpbmRvdy5Vc2VyTGVhcC51cGNodW5rTGlicmFyeVVSTCx1c2VNb2JpbGVTdHlsaW5nOm5lLHVzZXJJZDplZSx2aWV3RG9jdW1lbnQ6Qz09bnVsbD92b2lkIDA6Qy5kb2N1bWVudCx2aWV3V2luZG93OkMsdmlzaXRvckF0dHJpYnV0ZXM6e2V4dGVybmFsVXNlcklkOndpbmRvdy5Vc2VyTGVhcC51c2VySWQsZW1haWw6d2luZG93LlVzZXJMZWFwLmVtYWlsfSwuLi53aW5kb3cuVXNlckxlYXAuX2NvbmZpZ307KG89d2luZG93LlVzZXJMZWFwLl9jb25maWcpIT1udWxsJiZvLnN0YXJ0aW5nUXVlc3Rpb25JZHgmJih3aW5kb3cuVXNlckxlYXAuX2NvbmZpZz17Li4ud2luZG93LlVzZXJMZWFwLl9jb25maWcsc3RhcnRpbmdRdWVzdGlvbklkeDpudWxsfSksY2UuY3VzdG9tU3R5bGVzPShkP3dpbmRvdy5Vc2VyTGVhcC5mZWVkYmFja0N1c3RvbVN0eWxlczp3aW5kb3cuVXNlckxlYXAuY3VzdG9tU3R5bGVzKT8/aC5jdXN0b21TdHlsZXMsQyYmKEMuX19jZmc9Y2UpO2xldCB3PXdpbmRvdy5Vc2VyTGVhcC52aWV3U0RLVVJMP3dpbmRvdy5Vc2VyTGVhcC52aWV3U0RLVVJMOmNlLnBhdGgsbGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYmQpO2xlJiZsZS5yZW1vdmUoKTtsZXQgdWU9ZnVuY3Rpb24oKXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBzY3JpcHRgKTtyZXR1cm4gd2luZG93LlVzZXJMZWFwLm5vbmNlJiZlLnNldEF0dHJpYnV0ZShgbm9uY2VgLHdpbmRvdy5Vc2VyTGVhcC5ub25jZSksZS5pZD1iZCxlfSgpLGRlPSgpPT57d2luZG93LlVzZXJMZWFwLmNvbnRhaW5lciYmT2JqZWN0LmFzc2lnbih3aW5kb3cuVXNlckxlYXAuY29udGFpbmVyLnN0eWxlLHtkaXNwbGF5OmBmbGV4YH0pfTtpZihjZS5pbnN0YWxsYXRpb25NZXRob2Q9PT1gd2ViLW5wbWB8fGNlLmluc3RhbGxhdGlvbk1ldGhvZD09PWB3ZWItbnBtLWJ1bmRsZWRgKXtsZXR7ZGVmYXVsdDp0fT1hd2FpdCBlKGFzeW5jKCk9PntsZXR7ZGVmYXVsdDplfT1hd2FpdCBpbXBvcnQoYC4vY19EUHJMMXUzQy5qc2ApO3JldHVybntkZWZhdWx0OmV9fSxbXSxpbXBvcnQubWV0YS51cmwpO3QuY29uZmlndXJlKGNlKSxhZSYmd2luZG93LlVzZXJMZWFwLmNvbnRhaW5lciYmZGUoKX1lbHNlIHcmJih1ZS5zcmM9dyxhZSYmdWUuYWRkRXZlbnRMaXN0ZW5lcihgbG9hZGAsKCk9Pnt3aW5kb3cuVXNlckxlYXAuY29udGFpbmVyJiZkZSgpfSksQz09bnVsbHx8Qy5hZGRFdmVudExpc3RlbmVyKGBlcnJvcmAsZT0+e2UudGFyZ2V0IGluc3RhbmNlb2YgSFRNTFNjcmlwdEVsZW1lbnQmJmUudGFyZ2V0LnNyYz09PXcmJndpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihgbG9hZEZyYW1lU2NyaXB0YCxFcnJvcihgRnJhbWUgc2NyaXB0IGZhaWxlZCB0byBsb2FkYCkpfSx7Y2FwdHVyZTohMCxvbmNlOiEwfSkpO2llPT1udWxsfHxpZS5hcHBlbmRDaGlsZCh1ZSk7bGV0IGZlPXtzdWNjZXNzOiEwLHN1cnZleVN0YXRlOmByZWFkeWAsc3VydmV5SWQ6dixyZXNwb25zZUdyb3VwVWlkOl99O3JldHVybiB3aW5kb3cuVXNlckxlYXAuaXNNb2JpbGVTREsmJmMmJihmZS5kZWxheT1jKSxmZX07ZnVuY3Rpb24ga2QoZSl7dmFyIHQ7aWYod2luZG93LlVzZXJMZWFwLnVzZU1vYmlsZVN0eWxpbmchPT12b2lkIDApcmV0dXJuIHdpbmRvdy5Vc2VyTGVhcC51c2VNb2JpbGVTdHlsaW5nO2xldCBuPSgodD13aW5kb3cuVXNlckxlYXAud2luZG93RGltZW5zaW9ucyk9PW51bGw/dm9pZCAwOnQud2lkdGgpPz9kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO3JldHVybiBBZChlKXx8bj4xMCYmbjw1MDB9ZnVuY3Rpb24gQWQoZSl7cmV0dXJuIHhkLmluY2x1ZGVzKGVbYHVzZXJsZWFwLXBsYXRmb3JtYF0pfXZhciBqZD1lPT5lLnNvbWUoZT0+ZS50eXBlPT09YHZpZGVvdm9pY2VgKSxNZD1gdWwtZnJhbWVgO3dpbmRvdy5Vc2VyTGVhcCYmd2luZG93LlNwcmlnJiYod2luZG93LlNwcmlnLl9ndG0/d2luZG93LlNwcmlnPXdpbmRvdy5Vc2VyTGVhcDp3aW5kb3cuVXNlckxlYXA9d2luZG93LlNwcmlnKSx3aW5kb3cuVXNlckxlYXB8fCh3aW5kb3cuVXNlckxlYXA9d2luZG93LlNwcmlnKSx3aW5kb3cuU3ByaWd8fCh3aW5kb3cuU3ByaWc9d2luZG93LlVzZXJMZWFwKTt2YXIgTmQ9YDBweGAsUGQ9KGUsdCxuKT0+e3dpbmRvdy5Vc2VyTGVhcC5jb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgZGl2YCksd2luZG93LlVzZXJMZWFwLmNvbnRhaW5lci5jbGFzc05hbWU9YHVsLWNvbnRhaW5lcmArKHQ/YCB1bC1jb250YWluZXItZmVlZGJhY2tgOmBgKSxlJiYod2luZG93LlVzZXJMZWFwLmNvbnRhaW5lci5kYXRhc2V0LnN0dWR5SWQ9ZS50b1N0cmluZygpKTtsZXQgcj1RZCgpO24mJnImJiF3aW5kb3cuVXNlckxlYXAudXNlTW9iaWxlU3R5bGluZz9yLmFwcGVuZENoaWxkKHdpbmRvdy5Vc2VyTGVhcC5jb250YWluZXIpOmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQod2luZG93LlVzZXJMZWFwLmNvbnRhaW5lcil9LEZkPShlLHQpPT57dmFyIG47VmQoKTtsZXQgcj13aW5kb3cuVXNlckxlYXAuY29udGFpbmVyO2lmKHIpdHJ5eyhuPXIucGFyZW50Tm9kZSk9PW51bGx8fG4ucmVtb3ZlQ2hpbGQociksd2luZG93LlVzZXJMZWFwLmNvbnRhaW5lcj1udWxsLFRkKGB0cmFja1N0YXJ0VXJsYCxudWxsKSxxLmVtaXQoVy5TdXJ2ZXlMaWZlQ3ljbGUse3N0YXRlOmBkaXNtaXNzZWRgfSkscS5lbWl0KFcuU3VydmV5Q2xvc2VkLHtuYW1lOlcuU3VydmV5Q2xvc2VkLGluaXRpYXRvcjplLCJzdXJ2ZXkuaWQiOnBhcnNlSW50KHIuZGF0YXNldC5zdHVkeUlkKSwuLi50JiZ7c3R1ZHlUeXBlOnR9fSl9Y2F0Y2godCl7Y29uc29sZS53YXJuKGBbU3ByaWddIChFUlItNDEyKSBFcnJvciByZW1vdmluZyBVc2VyTGVhcCBjb250YWluZXIgYnkgJHtlfSBgK3IpLHQgaW5zdGFuY2VvZiBFcnJvciYmd2luZG93LlVzZXJMZWFwLnJlcG9ydEVycm9yKGBkaXNtaXNzQWN0aXZlU3VydmV5YCx0KX19LElkPSgpPT57cS5vbmNlKFcuU3VydmV5V2lsbENsb3NlLCh7aW5pdGlhdG9yOmUsc3R1ZHlUeXBlOnR9KT0+e3EucmVtb3ZlQWxsTGlzdGVuZXJzKFcuQ2xvc2VTdXJ2ZXlPbk92ZXJsYXlDbGljayksRmQoZSx0KX0pfSxMZD0oZSx0LG4scik9Pnt2YXIgaSxhO2xldCBvPXtwb3NpdGlvbjpgZml4ZWRgLGJvdHRvbTpgMHB4YCxyaWdodDpOZCxib3JkZXI6MCxiYWNrZ3JvdW5kQ29sb3I6YHJnYmEoMCwwLDAsMClgLHpJbmRleDoyMTQ3NDgzNjQ2LHRyYW5zaXRpb246YGhlaWdodCAwLjJzIGVhc2UtaW4tb3V0YCxtYXhXaWR0aDpgMTAwJWB9LHM9T2JqZWN0LmFzc2lnbih7fSx0LHdpbmRvdy5Vc2VyTGVhcCkse2Rlc2t0b3BEaXNwbGF5OmN9PXR8fHt9LGw9Yz09PWBjZW50ZXItbW9kYWxgLHU7bCYmKHMuZnJhbWVQb3NpdGlvbj1gY2VudGVyYCk7bGV0IGQ9ITE7aWYobikoaT13aW5kb3cuVXNlckxlYXAud2luZG93RGltZW5zaW9ucykhPW51bGwmJmkud2lkdGg/by53aWR0aD1gJHt3aW5kb3cuVXNlckxlYXAud2luZG93RGltZW5zaW9ucy53aWR0aH1weGA6by53aWR0aD1gMTAwJWAsKGE9d2luZG93LlVzZXJMZWFwLndpbmRvd0RpbWVuc2lvbnMpIT1udWxsJiZhLmhlaWdodD9vLm1heEhlaWdodD13aW5kb3cuVXNlckxlYXAud2luZG93RGltZW5zaW9ucy5oZWlnaHQtMjArYHB4YDp3aW5kb3cuVXNlckxlYXAubWF4SGVpZ2h0P28ubWF4SGVpZ2h0PXdpbmRvdy5Vc2VyTGVhcC5tYXhIZWlnaHQ6by5tYXhIZWlnaHQ9ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQtMjArYHB4YCxbYGxpZ2h0YCxgZGFya2BdLmluY2x1ZGVzKHMub3ZlcmxheVN0eWxlTW9iaWxlKSYmKGQ9ITApO2Vsc2V7by53aWR0aD1gMzYwcHhgLG8ubWF4SGVpZ2h0PXdpbmRvdy5Vc2VyTGVhcC5tYXhIZWlnaHR8fGA2NnZoYDtsZXQgZT0oKT0+e2Q9ITAsdT17bWFyZ2luOmBhdXRvYCxwb3NpdGlvbjpgc3RhdGljYH19O2lmKHIpbD9lKCk6dT17cG9zaXRpb246YHJlbGF0aXZlYCxoZWlnaHQ6YDMwMHB4YH07ZWxzZSBzd2l0Y2gocy5mcmFtZVBvc2l0aW9uKXtjYXNlYGJvdHRvbUxlZnRgOnU9e2xlZnQ6TmR9O2JyZWFrO2Nhc2VgdG9wTGVmdGA6dT17bGVmdDpOZCx0b3A6MH07YnJlYWs7Y2FzZWB0b3BSaWdodGA6dT17dG9wOjB9O2JyZWFrO2Nhc2VgY2VudGVyYDplKCl9fXJldHVybiBkJiYoKGUsdCk9PntsZXQgbj17cG9zaXRpb246YGZpeGVkYCxvdmVyZmxvdzpgYXV0b2AsdG9wOmAwcHhgLGxlZnQ6YDBweGAsZGlzcGxheTpgbm9uZWAsaGVpZ2h0OmAxMDAlYCx3aWR0aDpgMTAwJWAsdHJhbnNpdGlvbjpgYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2Utb3V0YCx6SW5kZXg6MjE0NzQ4MzY0Nn07bltgYmFja2dyb3VuZC1jb2xvcmBdPSh0P2Uub3ZlcmxheVN0eWxlTW9iaWxlOmUub3ZlcmxheVN0eWxlKT09PWBsaWdodGA/YHJnYmEoMjU1LDI1NSwyNTUsIDAuOTUpYDpgcmdiYSgwLDAsMCwwLjkpYCx0fHwobi5tYXJnaW49YGF1dG9gKSx3aW5kb3cuVXNlckxlYXAuY29udGFpbmVyJiZPYmplY3QuYXNzaWduKHdpbmRvdy5Vc2VyTGVhcC5jb250YWluZXIuc3R5bGUsbil9KShzLG4pLE9iamVjdC5hc3NpZ24oZS5zdHlsZSxvLHUpLGR9LFJkPSh7cHJvZHVjdENvbmZpZzplLHVzZU1vYmlsZVN0eWxpbmc6dCxzdXJ2ZXlJZDpuLGlzRmVlZGJhY2s6cn0pPT57dmFyIGksYTtsZXQgbz1NZDtQZChuLHIsciYmZS5kZXNrdG9wRGlzcGxheT09PWBzbGlkZXJgKSxCZCgpO2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYGlmcmFtZWApO3MuaWQ9byxzLnNldEF0dHJpYnV0ZShgdGl0bGVgLGBTcHJpZyBVc2VyIEZlZWRiYWNrIERpYWxvZ2ApO2xldCBjPUxkKHMsZSx0LHIpO0lkKCk7bGV0IGw9ITE7cy5zZXRIZWlnaHQ9ZT0+e3BhcnNlSW50KHMuc3R5bGUuaGVpZ2h0KT09ZSYmbHx8KGw9ITAscy5zdHlsZS5oZWlnaHQ9YCR7ZX1weGAscS5lbWl0KFcuU3VydmV5SGVpZ2h0LHtuYW1lOlcuU3VydmV5SGVpZ2h0LGNvbnRlbnRGcmFtZUhlaWdodDplLCJzdXJ2ZXkuaWQiOm59KSl9O2xldCB1PSExO3Muc2V0V2lkdGg9ZT0+e3BhcnNlSW50KHMuc3R5bGUud2lkdGgpPT1lJiZ1fHwodT0hMCxzLnN0eWxlLndpZHRoPWAke2V9cHhgLHEuZW1pdChXLlN1cnZleVdpZHRoLHtuYW1lOlcuU3VydmV5V2lkdGgsY29udGVudEZyYW1lV2lkdGg6ZSwic3VydmV5LmlkIjpufSkpfSwoaT13aW5kb3cuVXNlckxlYXAuY29udGFpbmVyKT09bnVsbHx8aS5hcHBlbmRDaGlsZChzKSxlJiYodD9lLmV4aXRPbk92ZXJsYXlDbGlja01vYmlsZTplLmV4aXRPbk92ZXJsYXlDbGljaykmJndpbmRvdy5Vc2VyTGVhcC5jb250YWluZXImJih3aW5kb3cuVXNlckxlYXAuY29udGFpbmVyLm9uY2xpY2s9KCk9PntxLmVtaXQoVy5DbG9zZVN1cnZleU9uT3ZlcmxheUNsaWNrKX0pLHEuZW1pdChXLlN1cnZleUxpZmVDeWNsZSx7c3RhdGU6YHByZXNlbnRlZGB9KSxxLmVtaXQoVy5TdXJ2ZXlQcmVzZW50ZWQse25hbWU6Vy5TdXJ2ZXlQcmVzZW50ZWQsInN1cnZleS5pZCI6bn0pO2xldCBkPShhPXMuY29udGVudFdpbmRvdyk9PW51bGw/dm9pZCAwOmEuZG9jdW1lbnQ7aWYoZCYmKGQub3BlbihgdGV4dC9odG1sYCxgcmVwbGFjZWApLGQud3JpdGUoYDwhZG9jdHlwZSBodG1sPjxoZWFkPjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1sPmApLGQuY2xvc2UoKSwhdCkpe2xldCBlPWQuYm9keTtlLnN0eWxlLmRpc3BsYXk9YGZsZXhgLGUuc3R5bGUuYWxpZ25JdGVtcz1gY2VudGVyYH1yZXR1cm57ZnJhbWVJZDpvLGNvbnRlbnRXaW5Eb2NIZWFkOmQ9PW51bGw/dm9pZCAwOmQuaGVhZCxjb250ZW50V2luZG93OnMuY29udGVudFdpbmRvdyxoYXNPdmVybGF5OmMsaWZyYW1lOnN9fSx6ZD17W1cuU3VydmV5RmFkaW5nT3V0XTooKT0+e3dpbmRvdy5Vc2VyTGVhcC5jb250YWluZXImJk9iamVjdC5hc3NpZ24od2luZG93LlVzZXJMZWFwLmNvbnRhaW5lci5zdHlsZSx7ImJhY2tncm91bmQtY29sb3IiOmByZ2JhKDAsMCwwLDApYH0pfX0sQmQ9KCk9PntPYmplY3QuZW50cmllcyh6ZCkuZm9yRWFjaCgoW2UsdF0pPT57cS5vbihlLHQpfSl9LFZkPSgpPT57T2JqZWN0LmVudHJpZXMoemQpLmZvckVhY2goKFtlLHRdKT0+e3Eub2ZmKGUsdCl9KX0sSGQ9T2JqZWN0LmZyZWV6ZSh7Y29udGFpbnM6KGUsdCk9PnQuaW5jbHVkZXMoZSksbm90Q29udGFpbnM6KGUsdCk9PiF0LmluY2x1ZGVzKGUpLGV4YWN0bHk6KGUsdCk9PnQ9PT1lLG5vdEV4YWN0bHk6KGUsdCk9PnQhPT1lLHN0YXJ0c1dpdGg6KGUsdCk9PnQuc3RhcnRzV2l0aChlKSxlbmRzV2l0aDooZSx0KT0+dC5lbmRzV2l0aChlKSxyZWdleDooZSx0KT0+bmV3IFJlZ0V4cChlKS50ZXN0KHQpLGxlZ2FjeTooZSx0KT0+bmV3IFJlZ0V4cChlLGBpYCkudGVzdCh0KX0pO2Z1bmN0aW9uIFVkKGUsdCl7bGV0e21hdGNoVHlwZTpuLHBhdHRlcm46cn09ZSxpPW4/SGRbbl06SGQubGVnYWN5LGE9ITE7dHJ5e2E9aShyLHQpfWNhdGNoKHQpe2xldCBuPWBbU3ByaWddIChFUlItNDQ1KSBGYWlsZWQgdG8gY2hlY2sgdXJsIG1hdGNoIHdpdGggcGF0dGVybiAke3J9YDt0IGluc3RhbmNlb2YgRXJyb3ImJihjb25zb2xlLndhcm4obix0KSx0LnN0YWNrPUpTT04uc3RyaW5naWZ5KGUpLHdpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihuLHQpKX1yZXR1cm4gYX12YXIgV2Q9ZT0+e2xldHtwYWdlVXJsRXZlbnRzOnR9PXdpbmRvdy5Vc2VyTGVhcC5fY29uZmlnLG49dD09bnVsbD92b2lkIDA6dC5maW5kKHQ9PnQuaWQ9PT1lKTtyZXR1cm4hIW4mJlVkKG4sd2luZG93LmxvY2F0aW9uLmhyZWYpfSxHZD1lPT4hIWUmJmUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSxLZD1lPT5lIGluc3RhbmNlb2YgSFRNTEVsZW1lbnR8fGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50LHFkPSh7ZG9jdW1lbnQ6ZSxlbGVtZW50SWQ6dCxzdHlsZVN0cmluZzpuLG5vbmNlOnJ9KT0+e2xldCBpPWUuZ2V0RWxlbWVudEJ5SWQodCk7aWYoaSlyZXR1cm4gdm9pZChpLnRleHRDb250ZW50PW4pO2xldCBhPWUuY3JlYXRlRWxlbWVudChgc3R5bGVgKTtyJiYoYS5ub25jZT1yKSxhLnRleHRDb250ZW50PW4sYS5pZD10LGUuaGVhZC5hcHBlbmRDaGlsZChhKX0sSmQ9KGUsdCk9PntsZXQgbj10LnF1ZXJ5U2VsZWN0b3IoYC5zcHJpZy1xdWVzdGlvbi1ib2R5YCk7aWYoIUdkKG4pKXJldHVybiBlO2xldCByPW4uc2Nyb2xsSGVpZ2h0O3JldHVybiByPDEwMD9lOmUtKHItMTAwKX0sWWQ9KGUsdCk9PntsZXQgbj10LnF1ZXJ5U2VsZWN0b3IoZSk7aWYoIUdkKG4pKXJldHVybiAwO2xldCByPWdldENvbXB1dGVkU3R5bGUobik7cmV0dXJuIHBhcnNlRmxvYXQoci5wYWRkaW5nTGVmdCkrcGFyc2VGbG9hdChyLnBhZGRpbmdSaWdodCkrKHBhcnNlRmxvYXQoci5tYXJnaW5MZWZ0KStwYXJzZUZsb2F0KHIubWFyZ2luUmlnaHQpKSsocGFyc2VGbG9hdChyLmJvcmRlckxlZnRXaWR0aCkrcGFyc2VGbG9hdChyLmJvcmRlclJpZ2h0V2lkdGgpKX0sWGQ9KGUsdCxuKT0+e2xldCByPWUucXVlcnlTZWxlY3RvcihgLnVsLWNhcmRfX2NvbnRhaW5lcmApLGk9ZS5xdWVyeVNlbGVjdG9yKGAudWwtYXBwYCksYT02MDAsbz0zNjAscz0wO2lmKEdkKHIpJiZHZChpKSl7bGV0IGM9ci5xdWVyeVNlbGVjdG9yKGAudWwtY2FyZC0tbWF0cml4X2dyaWRgKSxsPSFjJiZ0JiZuO3RyeXtsJiYoaS5zdHlsZS53aWR0aD1gMzYwcHhgKSxhPXIuY2xpZW50SGVpZ2h0LGErPShlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKGAuc3ByaWctcXVlc3Rpb24tYm9keWApLG49ZS5xdWVyeVNlbGVjdG9yKGAudWwtY2FyZGApLHI9ZS5xdWVyeVNlbGVjdG9yKGAudWwtY2FyZC1tYWluLWNvbnRlbnRgKSxpPWUucXVlcnlTZWxlY3RvcihgLnVsLWZvb3RlcmApLGE9ZS5xdWVyeVNlbGVjdG9yKGAuc3ByaWctY29udGFpbmVyYCksbz0wO3JldHVybiBHZChuKSYmKG8rPW4uc2Nyb2xsSGVpZ2h0LW4uY2xpZW50SGVpZ2h0KSxHZChyKSYmKG8rPXIuc2Nyb2xsSGVpZ2h0LXIuY2xpZW50SGVpZ2h0KSxHZCh0KSYmKG8rPXQuc2Nyb2xsSGVpZ2h0LXQuY2xpZW50SGVpZ2h0KSxHZChpKSYmR2QoYSkmJmEuY2xpZW50SGVpZ2h0PT09MCYmKG8rPWkuY2xpZW50SGVpZ2h0KSxvfSkoZSk7bGV0IHQ9Z2V0Q29tcHV0ZWRTdHlsZShyKTtzPWE7bGV0IG49cGFyc2VGbG9hdCh0Lm1hcmdpblRvcCkrcGFyc2VGbG9hdCh0Lm1hcmdpbkJvdHRvbSk7YSs9bisocGFyc2VGbG9hdCh0LmJvcmRlclRvcFdpZHRoKStwYXJzZUZsb2F0KHQuYm9yZGVyQm90dG9tV2lkdGgpKSxjJiYobz1jLnNjcm9sbFdpZHRoLG8rPVlkKGAudWwtY2FyZF9fY29udGFpbmVyYCxlKSxvKz1ZZChgLnNwcmlnLXF1ZXN0aW9uLWJvZHlgLGUpKX1maW5hbGx5e2wmJmkuc3R5bGUucmVtb3ZlUHJvcGVydHkoYHdpZHRoYCl9fXJldHVyblthKzEsbyxKZChzLGUpXX0sWmQ9ZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcihgLnVsLWNhcmRfX2NvbnRhaW5lcmApO3QmJih0LnNjcm9sbFRvcD0wKX0sUWQ9KCk9PlgsJGQ9KCk9PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzcHJpZy1mZWVkYmFjay1jb250YWluZXJgKSxlZj0oKT0+ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYHNwcmlnLWZlZWRiYWNrLWxvYWRpbmctYW5pbWF0aW9uYCksdGY9KCk9PiEhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoTWQpLG5mPSExLFg9bnVsbCxyZj1udWxsLGFmPSExLG9mPW51bGwsc2Y9bnVsbCxjZj1bYGJvdHRvbS1sZWZ0YCxgYm90dG9tLXJpZ2h0YCxgY2VudGVyLWxlZnRgLGBjZW50ZXItcmlnaHRgXSxsZj0oKT0+e3ZhciBlO2xldCB0PXdpbmRvdy5Vc2VyTGVhcC5jb250YWluZXI7cmV0dXJuKChlPXQ9PW51bGw/dm9pZCAwOnQucGFyZW50RWxlbWVudCk9PW51bGw/dm9pZCAwOmUuaWQpPT09YHNwcmlnLWZlZWRiYWNrLWxvYWRpbmctY29udGFpbmVyYH0sdWY9KCk9PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzcHJpZy1mZWVkYmFjay1lcnJvci1jb250YWluZXJgKSxkZj0oKT0+e2lmKCFYKXJldHVybiAwO2xldCBlPVg9PW51bGw/dm9pZCAwOlguY2xpZW50V2lkdGgsdD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShYKTtyZXR1cm4gZStwYXJzZUludCh0LmJvcmRlclJpZ2h0V2lkdGh8fGAwYCkrcGFyc2VJbnQodC5ib3JkZXJMZWZ0V2lkdGh8fGAwYCl9LGZmPWU9PntsZXQgdD0kZCgpO3QmJihzZiE9bnVsbCYmc2YuZW5kc1dpdGgoYHJpZ2h0YCk/dC5zdHlsZS5yaWdodD1gJHtlfXB4YDpzZiE9bnVsbCYmc2YuZW5kc1dpdGgoYGxlZnRgKSYmKHQuc3R5bGUubGVmdD1gJHtlfXB4YCkpfSxwZj0oKT0+WCYmKGxmKCl8fHVmKCkpPyhxLm9mZihXLlN1cnZleUFwcGVhcmVkLG1mKSxoZigpLGZmKC1kZigpKSwhMCk6ITEsbWY9KCk9PntpZighWHx8IXJmKXJldHVybjtsZXQgZT1lZigpO2UmJmUucmVtb3ZlKCksWC5zdHlsZS5oZWlnaHQ9YGF1dG9gLFguc3R5bGUud2lkdGg9YGF1dG9gLHJmLmRpc2FibGVkPSExLGFmPSExfSxoZj0oKT0+e2lmKFgmJiFlZigpKXtsZXQgZT0oKCk9PntpZihlZigpKXJldHVybjtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBkaXZgKTtyZXR1cm4gZS5jbGFzc05hbWU9YHVsLWxvYWRpbmctc3Bpbm5lci1jb250YWluZXJgLGUuaWQ9YHNwcmlnLWZlZWRiYWNrLWxvYWRpbmctYW5pbWF0aW9uYCxlLnJvbGU9YHByb2dyZXNzYmFyYCxlLnNldEF0dHJpYnV0ZShgYXJpYS1saXZlYCxgcG9saXRlYCksZS5zZXRBdHRyaWJ1dGUoYGFyaWEtYnVzeWAsYHRydWVgKSxlLnNldEF0dHJpYnV0ZShgYXJpYS1sYWJlbGAsYFByb2Nlc3NpbmcuLi5gKSxlLmlubmVySFRNTD1gCiAgICA8ZGl2IGNsYXNzPSJ1bC1sb2FkaW5nLXNwaW5uZXIiPgogICAgICA8ZGl2IGNsYXNzPSJmaXJzdCI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY29uZCI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRoaXJkIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZm91cnRoIj48L2Rpdj4KICAgIDwvZGl2PgogIGAsZX0pKCk7ZSYmKFguc3R5bGUuaGVpZ2h0PWAzMDBweGAsWC5zdHlsZS53aWR0aD1gMzYwcHhgLFguYXBwZW5kQ2hpbGQoZSkpfX0sZ2Y9KCk9PntYJiZyZiYmKGZmKDApLHJmLmRpc2FibGVkPSEwLGFmPSEwKX0sX2Y9YXN5bmMoZSx0LG4pPT57bGV0e2J1dHRvblRoZW1lOnIsY3VzdG9tU3R5bGVzOmksZXZlbnRJZDphLHBsYWNlbWVudDpvLGRlc2t0b3BEaXNwbGF5OnMsZmVlZGJhY2tMYWJlbDpjLHN1cnZleVV1aWQ6bCxzdXJ2ZXlJZDp1fT1lO3dpbmRvdy5Vc2VyTGVhcC5mZWVkYmFja0N1c3RvbVN0eWxlcz12b2lkIDA7bGV0IGQ9JGQoKTtpZihkKXtpZighdCYmYT09PW9mKXJldHVybjtkLnJlbW92ZSgpLHEub2ZmKFJ1LlNVUlZFWV9GQURJTkdfT1VULHBmKX1vZj1hLHFkKHtkb2N1bWVudCxlbGVtZW50SWQ6YHNwcmlnLWZlZWRiYWNrLXN0eWxlYCxzdHlsZVN0cmluZzpgLnVsLWxvYWRpbmctc3Bpbm5lci1jb250YWluZXJ7Zm9udC1zaXplOjEuOHJlbTtmbGV4LWdyb3c6MTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0udWwtbG9hZGluZy1zcGlubmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjZyZW07aGVpZ2h0OjZyZW19LnVsLWxvYWRpbmctc3Bpbm5lciBkaXZ7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6ODAlO2hlaWdodDo4MCU7bWFyZ2luOjVweDtib3JkZXI6NXB4IHNvbGlkICMxNTJlM2U7Ym9yZGVyLXJhZGl1czo1MCU7YW5pbWF0aW9uOmxkcy1yaW5nIDEuMnMgY3ViaWMtYmV6aWVyKC41LDAsLjUsMSkgaW5maW5pdGU7Ym9yZGVyLWNvbG9yOiMxNTJlM2UgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LnVsLWxvYWRpbmctc3Bpbm5lciAuZmlyc3R7YW5pbWF0aW9uLWRlbGF5Oi0uNDVzfS51bC1sb2FkaW5nLXNwaW5uZXIgLnNlY29uZHthbmltYXRpb24tZGVsYXk6LS4zc30udWwtbG9hZGluZy1zcGlubmVyIC50aGlyZHthbmltYXRpb24tZGVsYXk6LS4xNXN9QGtleWZyYW1lcyBsZHMtcmluZ3swJXt0cmFuc2Zvcm06cm90YXRlKDApfXRve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LmZhZGUtaW4tdHJhbnNpdGlvbnthbmltYXRpb246ZmFkZUluIC40cyBlYXNlLWlufUBrZXlmcmFtZXMgZmFkZUluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fSNzcHJpZy1mZWVkYmFjay1idXR0b257Ym9yZGVyLWxlZnQ6MDtib3JkZXItcmFkaXVzOjAgOHB4IDhweCAwO2Rpc3BsYXk6Z3JpZDtwYWRkaW5nOjhweDt0ZXh0LWFsaWduOmNlbnRlcjt0cmFuc2l0aW9uOmFsbCBlYXNlLWluLW91dCAxczt6LWluZGV4OmluaGVyaXR9I3NwcmlnLWZlZWRiYWNrLWJ1dHRvbjpob3ZlcntjdXJzb3I6cG9pbnRlcn0uc3ByaWctZmVlZGJhY2stYnV0dG9uLWxhYmVse3dyaXRpbmctbW9kZTp2ZXJ0aWNhbC1scjt0ZXh0LW9yaWVudGF0aW9uOnNpZGV3YXlzfS5zcHJpZy1mZWVkYmFjay1idXR0b24tcmlnaHR7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5zcHJpZy1mZWVkYmFjay1idXR0b24tYm90dG9te2FsaWduLXNlbGY6ZmxleC1lbmQ7bWFyZ2luLWJvdHRvbToyMHB4fS5zcHJpZy1mZWVkYmFjay1idXR0b24tbGlnaHR7YmFja2dyb3VuZDojZWZlZmVlO2NvbG9yOiMwMDA7Ym9yZGVyOjFweCBzb2xpZCAjZTJlM2UxfS5zcHJpZy1mZWVkYmFjay1idXR0b24tZGFya3tiYWNrZ3JvdW5kOiMwMDA7Y29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMDAwMDB9I3NwcmlnLWZlZWRiYWNrLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOmZpeGVkO3RyYW5zaXRpb246cmlnaHQgLjJzIGxpbmVhcixsZWZ0IC4ycyBsaW5lYXI7ei1pbmRleDoyMTQ3NDgzNjQ2fS5zcHJpZy1mZWVkYmFjay1jb250YWluZXItbGVmdHtmbGV4LWZsb3c6cm93LXJldmVyc2V9LnNwcmlnLWZlZWRiYWNrLWNvbnRhaW5lci1jZW50ZXJ7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0uc3ByaWctZmVlZGJhY2stY29udGFpbmVyLWJvdHRvbXtib3R0b206MCU7bWFyZ2luLWJvdHRvbToxNXB4fS5zcHJpZy1mZWVkYmFjay1sb2FkaW5nLWNvbnRhaW5lcnthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoycHggc29saWQgdmFyKC0tZmVlZGJhY2stYm9yZGVyKTtkaXNwbGF5OmZsZXg7bWF4LWhlaWdodDo5MHZoO21heC13aWR0aDo5MHZ3O21pbi13aWR0aDowcHh9LnNwcmlnLWZlZWRiYWNrLWxvYWRpbmctY29udGFpbmVyLWxlZnR7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmFkaXVzOjAgOHB4IDhweCAwfS5zcHJpZy1mZWVkYmFjay1sb2FkaW5nLWNvbnRhaW5lci1yaWdodHtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItcmFkaXVzOjhweCAwIDAgOHB4fSNzcHJpZy1mZWVkYmFjay1lcnJvci1jb250YWluZXJ7bWFyZ2luOmF1dG87dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MzYwcHh9LnNwcmlnLWZlZWRiYWNrLWVycm9yLXRleHR7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZiwiQXBwbGUgQ29sb3IgRW1vamkiLCJTZWdvZSBVSSBFbW9qaSIsU2Vnb2UgVUkgU3ltYm9sfSNzcHJpZy1mZWVkYmFjay1sb2FkaW5nLWNvbnRhaW5lciAudWwtY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO21heC1oZWlnaHQ6aW5oZXJpdH0jc3ByaWctZmVlZGJhY2stbG9hZGluZy1hbmltYXRpb257cG9zaXRpb246YWJzb2x1dGV9LnNwcmlnLWZlZWRiYWNrLWxvYWRpbmctY29udGFpbmVyLXByZXZpZXdzIGlmcmFtZXttYXgtaGVpZ2h0OmluaGVyaXQhaW1wb3J0YW50fWAsbm9uY2U6d2luZG93LlVzZXJMZWFwLnN0eWxlTm9uY2V9KSxxZCh7ZG9jdW1lbnQsZWxlbWVudElkOmB1bC1jdXN0b20tc3R5bGVgLHN0eWxlU3RyaW5nOmk/P2BgLG5vbmNlOndpbmRvdy5Vc2VyTGVhcC5zdHlsZU5vbmNlfSksbmY9cz09PWBjZW50ZXItbW9kYWxgLHNmPW87bGV0W2YscF09by5zcGxpdChgLWApOyhlPT57aWYoJGQoKXx8IWNmLmluY2x1ZGVzKGUpKXJldHVybjtsZXRbdCxuXT1lLnNwbGl0KGAtYCkscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBkaXZgKTtyLmlkPWBzcHJpZy1mZWVkYmFjay1jb250YWluZXJgLHIuY2xhc3NMaXN0LmFkZChgc3ByaWctZmVlZGJhY2stY29udGFpbmVyLSR7bn1gLGBzcHJpZy1mZWVkYmFjay1jb250YWluZXItJHt0fWApLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocil9KShvKSxkPSRkKCkscmY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgYnV0dG9uYCk7bGV0IG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgZGl2YCk7bS5jbGFzc05hbWU9YHNwcmlnLWZlZWRiYWNrLWJ1dHRvbi1sYWJlbGAsbS5pbm5lclRleHQ9YyxyZi5hcHBlbmRDaGlsZChtKSxyZi5pZD1gc3ByaWctZmVlZGJhY2stYnV0dG9uYCxyZi5jbGFzc0xpc3QuYWRkKGBzcHJpZy1mZWVkYmFjay1idXR0b24tJHtwfWAsYHNwcmlnLWZlZWRiYWNrLWJ1dHRvbi0ke2Z9YCxgc3ByaWctZmVlZGJhY2stYnV0dG9uLSR7cn1gLGBmYWRlLWluLXRyYW5zaXRpb25gKSxxLm9uKFJ1LlNVUlZFWV9GQURJTkdfT1VULHBmKSxyZi5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsYXN5bmMoKT0+e2xldCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzcHJpZy1mZWVkYmFjay1lcnJvci1jb250YWluZXJgKTtpZih0ZigpfHx1ZigpKXtpZihwZigpKXtxLmVtaXQoVy5TdXJ2ZXlDbG9zZVJlcXVlc3RlZCx7bmFtZTpXLlN1cnZleUNsb3NlUmVxdWVzdGVkLGluaXRpYXRvcjpMdS5GZWVkYmFja0Nsb3NlZCxzdHVkeVR5cGU6YGZlZWRiYWNrQnV0dG9uYCwic3VydmV5LmlkIjp1fSkscS5lbWl0KFcuU3VydmV5V2lsbENsb3NlLHtuYW1lOlcuU3VydmV5V2lsbENsb3NlLGluaXRpYXRvcjpMdS5GZWVkYmFja0Nsb3NlZCxzdHVkeVR5cGU6YGZlZWRiYWNrQnV0dG9uYCwic3VydmV5LmlkIjp1fSk7bGV0IHQ9JGQoKTtlJiZ0JiYodC5yZW1vdmUoKSxvZj1udWxsLFg9bnVsbCl9cmV0dXJufWlmKGtkKF9kKHdpbmRvdy5Vc2VyTGVhcCkpfHxhZnx8Z2YoKSx0KXJldHVybiBYJiZYLmNsYXNzTGlzdC5hZGQoYHNwcmlnLWZlZWRiYWNrLWxvYWRpbmctY29udGFpbmVyLXByZXZpZXdzYCksYXdhaXQgT2QodCksdm9pZCBtZigpO2xldCByPWF3YWl0KGFzeW5jIGU9PntsZXQgdD1hd2FpdCB3ZChEZChgMWAsW1NkXSxgc3RhcnRGZWVkYmFja1N0dWR5YCkse2JvZHk6SlNPTi5zdHJpbmdpZnkoe3N1cnZleVV1aWQ6ZX0pLG1ldGhvZDpgUE9TVGB9KTtyZXR1cm4gdC5vaz90Lmpzb246bnVsbH0pKGwpO2lmKHIpcS5vbmNlKFcuU3VydmV5QXBwZWFyZWQsbWYpLE9kKHsuLi5yLHN0dWR5VHlwZTpgZmVlZGJhY2tCdXR0b25gfSxuKTtlbHNlIGlmKFgpe2xldCBlPXZmKCk7WC5hcHBlbmRDaGlsZChlKSxtZigpLFguc3R5bGUuaGVpZ2h0PWAzMDBweGAsWC5zdHlsZS53aWR0aD1gMzYwcHhgfX0pLGQ9PW51bGx8fGQuYXBwZW5kQ2hpbGQocmYpLHEuZW1pdChXLkZlZWRiYWNrQnV0dG9uTG9hZGVkLHtuYW1lOlcuRmVlZGJhY2tCdXR0b25Mb2FkZWQsInN1cnZleS5pZCI6dX0pO2xldHt1c2VNb2JpbGVTdHlsaW5nOmgsX2NvbmZpZzp7Ym9yZGVyOmd9fT13aW5kb3cuVXNlckxlYXA7aWYobmZ8fGgpZmYoMCk7ZWxzZXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBkaXZgKTtlLmlkPWBzcHJpZy1mZWVkYmFjay1sb2FkaW5nLWNvbnRhaW5lcmAsZS5jbGFzc05hbWU9YHNwcmlnLWZlZWRiYWNrLWxvYWRpbmctY29udGFpbmVyIHNwcmlnLWZlZWRiYWNrLWxvYWRpbmctY29udGFpbmVyLSR7cH1gLGUuc3R5bGUuc2V0UHJvcGVydHkoYC0tZmVlZGJhY2stYm9yZGVyYCxnKSxYPWUsaGYoKSxkPT1udWxsfHxkLmFwcGVuZENoaWxkKGUpLGZmKC1kZigpKX13aW5kb3cuVXNlckxlYXAuX2NvbmZpZy5pc09uUXVlc3Rpb25zVGFiJiZ0JiYhbGYoKSYmWCYmKGdmKCksaGYoKSxYJiZYLmNsYXNzTGlzdC5hZGQoYHNwcmlnLWZlZWRiYWNrLWxvYWRpbmctY29udGFpbmVyLXByZXZpZXdzYCksT2QodCksbWYoKSl9LHZmPSgpPT57bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgZGl2YCk7ZS5pZD1gc3ByaWctZmVlZGJhY2stZXJyb3ItY29udGFpbmVyYCxlLmlubmVySFRNTD1gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDQwIDQwIiBmaWxsPSJub25lIj4KICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjIwIiByPSIxNC41IiBzdHJva2U9IiNCMEI1QjciIHN0cm9rZS13aWR0aD0iMyIvPgogIDxwYXRoIGQ9Ik0yMCAxMkwyMCAyMS42IiBzdHJva2U9IiNCMEI1QjciIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CiAgPGNpcmNsZSBjeD0iMTkuOTk4NCIgY3k9IjI3LjYiIHI9IjEuNiIgZmlsbD0iI0IwQjVCNyIvPgogIDwvc3ZnPmA7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgaDNgKTtyZXR1cm4gdC5jbGFzc05hbWU9YHNwcmlnLWZlZWRiYWNrLWVycm9yLXRleHRgLHQuaW5uZXJUZXh0PWBUaGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgbG9hZGluZyB0aGUgc3VydmV5YCxlLmFwcGVuZENoaWxkKHQpLGV9LHlmPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3ModGhpcyxgX2xkRGF0YWAse30pfWdldEFsbExhdW5jaERhcmtseVZhcmlhdGlvbnMoKXtyZXR1cm4gdGhpcy5fbGREYXRhfXNldExERmxhZ3NWYXJpYXRpb25zKGUpe3RyeXtyZXR1cm4hKCFlfHx0eXBlb2YgZSE9YG9iamVjdGB8fEFycmF5LmlzQXJyYXkoZSkpJiYoT2JqZWN0LmtleXModGhpcy5fbGREYXRhKS5mb3JFYWNoKGU9PntkZWxldGUgdGhpcy5fbGREYXRhW2VdfSksT2JqZWN0LmtleXMoZSkuZm9yRWFjaCh0PT50aGlzLl9sZERhdGFbYCFsYXVuY2hfZGFya2x5XyR7dH1gXT0oZVt0XT8/MCkrMSksITApfWNhdGNoKGUpe3JldHVybiBlIGluc3RhbmNlb2YgRXJyb3ImJndpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihgc2V0QWxsTERGbGFnc1ZhcmlhdGlvbnNgLGUpLGNvbnNvbGUud2FybihgW1NwcmlnXSBBbiBpc3N1ZSBoYWQgb2NjdXJlZCB3aGVuIHNldHRpbmcgTGF1bmNoRGFya2x5IGZsYWdzIGFuZCB2YXJpYXRpb25zLmApLCExfX19O09iamVjdC5mcmVlemUoeWYpO3ZhciBiZj1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtzKHRoaXMsYF9vcHRpbWl6ZWx5RGF0YWAse30pfXNldE9wdGltaXplbHlFeHBlcmltZW50KGUsdD0hMCl7aWYoIWV8fHR5cGVvZiBlIT1gb2JqZWN0YClyZXR1cm4hMTtsZXR7ZXhwZXJpbWVudHM6bn09ZTt0cnl7cmV0dXJuIHQmJk9iamVjdC5rZXlzKHRoaXMuX29wdGltaXplbHlEYXRhKS5tYXAoZT0+e2RlbGV0ZSB0aGlzLl9vcHRpbWl6ZWx5RGF0YVtlXX0pLG4mJm4ubWFwKGU9PntsZXR7aWQ6dCx2YXJpYXRpb246bn09ZSxyPXRoaXMudHJhbnNmb3JtRXhwZXJpbWVudElkKHQpO24mJnR5cGVvZiBuPT1gc3RyaW5nYCYmKHRoaXMuX29wdGltaXplbHlEYXRhW3JdPW4pfSksITB9Y2F0Y2goZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvciYmd2luZG93LlVzZXJMZWFwLnJlcG9ydEVycm9yKGBzZXRPcHRpbWl6ZWx5RXhwZXJpbWVudGAsZSksITF9fWdldEFsbE9wdGltaXplbHlFeHBlcmltZW50cygpe3JldHVybiB0aGlzLl9vcHRpbWl6ZWx5RGF0YX1nZXRPcHRpbWl6ZWx5VmFyaWF0aW9uTmFtZShlKXtyZXR1cm4gdGhpcy5fb3B0aW1pemVseURhdGFbdGhpcy50cmFuc2Zvcm1FeHBlcmltZW50SWQoZSldfXRyYW5zZm9ybUV4cGVyaW1lbnRJZChlKXtyZXR1cm5gIW9wdGltaXplbHlfZXhwZXJpbWVudHNfYCtlfWdldEFuZFNldFdlYk9wdGltaXplbHlFeHBlcmltZW50cygpe3ZhciBlO3RyeXtpZih3aW5kb3cmJndpbmRvdy5vcHRpbWl6ZWx5JiZ0eXBlb2Ygd2luZG93Lm9wdGltaXplbHkuZ2V0PT1gZnVuY3Rpb25gKXtsZXQgdD0oZT13aW5kb3cub3B0aW1pemVseS5nZXQoYHN0YXRlYCkpPT1udWxsP3ZvaWQgMDplLmdldEV4cGVyaW1lbnRTdGF0ZXMoe2lzQWN0aXZlOiEwfSk7aWYodCl7bGV0IGU9T2JqZWN0LmtleXModCkubWFwKGU9Pnt2YXIgbixyO3JldHVybihuPXRbZV0udmFyaWF0aW9uKSE9bnVsbCYmbi5uYW1lP3tpZDplLHZhcmlhdGlvbjoocj10W2VdLnZhcmlhdGlvbik9PW51bGw/dm9pZCAwOnIubmFtZX06e2lkOmUsdmFyaWF0aW9uOmBPcmlnaW5hbGB9fSk7cmV0dXJuIHRoaXMuc2V0T3B0aW1pemVseUV4cGVyaW1lbnQoe2V4cGVyaW1lbnRzOmV9LCExKSwhMH1yZXR1cm4hMX1yZXR1cm4hMX1jYXRjaChlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yJiZ3aW5kb3cuVXNlckxlYXAucmVwb3J0RXJyb3IoYGdldEFuZFNldFdlYk9wdGltaXplbHlgLGUpLCExfX19O09iamVjdC5mcmVlemUoYmYpO3ZhciB4Zj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQpe3ModGhpcyxgcGF1c2VkYCkscyh0aGlzLGBxdWV1ZWApLHModGhpcyxgdWxgKSx0aGlzLnVsPWUsdGhpcy5wYXVzZWQ9ITEsdGhpcy5xdWV1ZT1bXSx0aGlzLmZsdXNoKHQpfWZsdXNoKGUpe2xldCB0PWUubGVuZ3RoO2lmKHQpZm9yKGxldCBuPTA7bjx0O24rKyl0aGlzLnB1c2goZVtuXSl9aXNQYXVzZWQoKXtyZXR1cm4gdGhpcy5wYXVzZWR9cGF1c2UoKXt0aGlzLnBhdXNlZD0hMH11bnBhdXNlKCl7dGhpcy5wYXVzZWQ9ITE7bGV0IGU9dGhpcy5xdWV1ZS5zbGljZSgpO3RoaXMuZW1wdHkoKSx0aGlzLmZsdXNoKGUpfXB1c2goZSl7aWYodGhpcy5wYXVzZWQpdGhpcy5xdWV1ZS5wdXNoKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKWUoKTtlbHNle2xldCB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMSksbj1lWzBdLHI9dGhpcy51bFtuXTtyIGluc3RhbmNlb2YgRnVuY3Rpb24/ci5hcHBseSh0aGlzLnVsLHQpOm4mJmNvbnNvbGUud2FybihgW1NwcmlnXSAoRVJSLTEwMCkgTm8gdmFsaWQgVXNlckxlYXAgYWN0aW9uIGNhbGxlZGAsbil9fXBlcmZvcm0oZSl7aWYodGhpcy5wYXVzZWQpe2xldCB0PSgpPT57fSxuPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG4pe3Q9ZnVuY3Rpb24oKXtuKGUoKSl9fSk7cmV0dXJuIHRoaXMucXVldWUucHVzaCh0KSxufXJldHVybiBlKCl9ZW1wdHkoKXt0aGlzLnF1ZXVlLmxlbmd0aD0wfX0sU2Y9ITAsQ2Y9ITEsd2Y9W2BzZGtfZXZlbnRfcXVldWVfbGF0ZW5jeV9zZWNvbmRzYCxgc2RrX3JlcGxheV9hZGRfZXZlbnRfYmF0Y2hfc2Vjb25kc2AsYHNka19yZXBsYXlfY2xlYW51cF9zZWNvbmRzYCxgc2RrX3JlcGxheV9jb21wcmVzc2lvbl9zZWNvbmRzYCxgc2RrX3JlcGxheV9nZXRfZXZlbnRzX2JldHdlZW5fc2Vjb25kc2AsYHNka19yZXBsYXlfc25hcHNob3Rfc2Vjb25kc2AsYHNka19tdXRhdGlvbnNfbm9kZXNfYWRkZWRgLGBzZGtfbXV0YXRpb25zX25vZGVzX3JlbW92ZWRgLGBzZGtfbXV0YXRpb25zX2F0dHJpYnV0ZXNfY2hhbmdlZGAsYHNka19tdXRhdGlvbnNfY2hhcmFjdGVyX2RhdGFgLGBzZGtfZG9tX25vZGVzX2NvdW50YCxgc2RrX3BhZ2VfaHRtbF9jaGFyYWN0ZXJzYF0sVGYsRWY9e30sRGY9Y2xhc3N7Y29uc3RydWN0b3IoZSl7cyh0aGlzLGBfdmFsdWVzYCxbXSkscyh0aGlzLGBfaXNXZWJNZXRyaWNgKSx0aGlzLm5hbWU9ZSx0aGlzLl9pc1dlYk1ldHJpYz13Zi5pbmNsdWRlcyh0aGlzLm5hbWUpfXJlcG9ydChlKXtpZihTZiYmdGhpcy5fdmFsdWVzLnB1c2goe3RpbWU6RGF0ZS5ub3coKSx2YWx1ZTplfSksQ2Z8fCF0aGlzLl9pc1dlYk1ldHJpYylyZXR1cm47bGV0IHQ9dGhpcy5maW5kRXhjZWVkZWRUaHJlc2hvbGQoZSk7dCYmVGYmJlRmKGUsdCl9Y29sbGVjdCgpe2xldCBlPXRoaXMuX3ZhbHVlcztyZXR1cm4gdGhpcy5fdmFsdWVzPVtdLGV9ZmluZEV4Y2VlZGVkVGhyZXNob2xkKGUpe2xldCB0PUVmW3RoaXMubmFtZV07aWYodClyZXR1cm4gdC5maW5kKHQ9PnRoaXMudmFsdWVFeGNlZWRzVGhyZXNob2xkKGUsdCkpfXZhbHVlRXhjZWVkc1RocmVzaG9sZChlLHQpe3JldHVybiB0LnR5cGU9PT1gbWF4YD9lPnQudmFsdWU6dC50eXBlPT09YG1pbmAmJmU8dC52YWx1ZX19LE9mPXt9LGtmPWU9PntsZXQgdD1uZXcgRGYoZSk7cmV0dXJuIE9mW2VdPXQsdH0sQWY9KGUsdCk9PntsZXQgbj1PZltlXTtyZXR1cm4gbnx8KG49a2YoZSkpLG4ucmVwb3J0KHQpfSxqZj0oe3JlcG9ydGluZ0ludGVydmFsU2Vjb25kczplLHBvc3RNZXRyaWNzOnR9KT0+e2U/c2V0SW50ZXJ2YWwoKCk9PnsoYXN5bmMgZT0+e2xldCB0PU9iamVjdC52YWx1ZXMoT2YpLm1hcChlPT4oe25hbWU6ZS5uYW1lLHZhbHVlczplLmNvbGxlY3QoKX0pKTtpZih0LnNvbWUoZT0+ZS52YWx1ZXMubGVuZ3RoKSl0cnl7YXdhaXQgZShKU09OLnN0cmluZ2lmeSh0KSl9Y2F0Y2goZSl7ZSBpbnN0YW5jZW9mIEVycm9yJiZLLmVycm9yKGBNZXRyaWNzRXJyYCx7ZXJyb3I6e21lc3NhZ2U6ZS5tZXNzYWdlLG5hbWU6ZS5uYW1lfX0pfX0pKHQpfSwxZTMqZSk6U2Y9ITF9LE1mLE5mLFBmPWU9PntsZXQgdD0wLG49ZS5maXJzdEVsZW1lbnRDaGlsZDtmb3IoO247KXQrPVBmKG4pLG4uc2hhZG93Um9vdCYmKHQrPVBmKG4uc2hhZG93Um9vdCkpLG49bi5uZXh0RWxlbWVudFNpYmxpbmcsdCsrO3JldHVybiB0fSxGZj0oKT0+e01mLnJlcG9ydChQZihkb2N1bWVudC5ib2R5KSksTmYucmVwb3J0KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUwubGVuZ3RoKX0sSWY9KGUsdCk9PntsZXQgbj1wZXJmb3JtYW5jZS5ub3coKTtkb2N1bWVudC5oaWRkZW4/c2V0VGltZW91dCgoKT0+SWYoZSx0KSxlKTpzZXRUaW1lb3V0KCgpPT57bGV0IHI9cGVyZm9ybWFuY2Uubm93KCktbjt0LnJlcG9ydChyLzFlMyksc2V0VGltZW91dCgoKT0+SWYoZSx0KSxlKX0sMCl9LExmLFJmLHpmLEJmLFZmLEhmPXt9LFVmPShlLHQ9MSk9PntsZXR7bmFtZTpufT1lO0hmW25dPShIZltuXXx8MCkrdH0sV2Y9ZT0+e2xldCB0PTE7cmV0dXJuIGUuY2hpbGROb2Rlcy5mb3JFYWNoKGU9Pnt0Kz1XZihlKX0pLHR9LEdmPWU9PntsZXQgdD0wO3JldHVybiBlLmZvckVhY2goZT0+e3QrPVdmKGUpfSksdH0sS2Y9ZT0+e3N3aXRjaChlLnR5cGUpe2Nhc2VgY2hpbGRMaXN0YDpVZihMZixHZihlLmFkZGVkTm9kZXMpKSxVZihSZixHZihlLnJlbW92ZWROb2RlcykpO3JldHVybjtjYXNlYGF0dHJpYnV0ZXNgOlVmKHpmKTtyZXR1cm47Y2FzZWBjaGFyYWN0ZXJEYXRhYDpVZihCZik7cmV0dXJufX0scWY9ZT0+ZS5mb3JFYWNoKEtmKSxKZj0oKT0+e0xmLnJlcG9ydChIZltMZi5uYW1lXXx8MCksUmYucmVwb3J0KEhmW1JmLm5hbWVdfHwwKSx6Zi5yZXBvcnQoSGZbemYubmFtZV18fDApLEJmLnJlcG9ydChIZltCZi5uYW1lXXx8MCksSGY9e319LFlmPShlPTFlMyk9PntMZj1rZihgc2RrX211dGF0aW9uc19ub2Rlc19hZGRlZGApLFJmPWtmKGBzZGtfbXV0YXRpb25zX25vZGVzX3JlbW92ZWRgKSx6Zj1rZihgc2RrX211dGF0aW9uc19hdHRyaWJ1dGVzX2NoYW5nZWRgKSxCZj1rZihgc2RrX211dGF0aW9uc19jaGFyYWN0ZXJfZGF0YWApLFZmPW5ldyBNdXRhdGlvbk9ic2VydmVyKHFmKSxWZi5vYnNlcnZlKGRvY3VtZW50LHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZU9sZFZhbHVlOiEwLGNoYXJhY3RlckRhdGE6ITAsY2hhcmFjdGVyRGF0YU9sZFZhbHVlOiEwLGNoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSksc2V0SW50ZXJ2YWwoSmYsZSl9LFhmPSh7aXNXZWI6ZSxyZXBvcnRpbmdJbnRlcnZhbFNlY29uZHM6dCx0aHJlc2hvbGRzOm4scG9zdE1ldHJpY3M6cn0pPT57KChlLHQpPT57RWY9e30sQ2Y9ITEsZT09bnVsbHx8ZS5mb3JFYWNoKGU9Pnt2YXIgdDtlLm1ldHJpYyBpbiBFZnx8KEVmW2UubWV0cmljXT1bXSksKHQ9RWZbZS5tZXRyaWNdKT09bnVsbHx8dC5wdXNoKGUpfSksVGY9dH0pKG4sKGUsdCk9Pnt2YXIgbixyO2lmKChuPVkucmVwbGF5KSE9bnVsbCYmbi5pc1JlcGxheVJlY29yZGluZygpKXtsZXQgbj1gVmFsdWU6ICR7ZX0gb24gJHt0Lm1ldHJpY30gdmlvbGF0ZWQgdGhyZXNob2xkIG9mICR7dC50eXBlfSAke3QudmFsdWV9YDsocj1ZLnJlcGxheSk9PW51bGx8fHIuZGlzYWJsZVJlY29yZGluZyhgVGhyZXNob2xkIHZpb2xhdGVkYCxFcnJvcihuKSx7cmVwb3J0RXJyb3I6ITF9KSx3aW5kb3cuVXNlckxlYXAucmVwb3J0RXJyb3IoYFNkayBQZXJmb3JtYW5jZSBNZXRyaWMgdGhyZXNob2xkIHZpb2xhdGVkYCxFcnJvcihgU2RrIFBlcmZvcm1hbmNlIE1ldHJpYyB0aHJlc2hvbGQgdmlvbGF0ZWRgKSx7bWV0cmljTmFtZTp0Lm1ldHJpYyx0eXBlOnQudHlwZSx2YWx1ZTp0LnZhbHVlfSx7bWV0cmljTmFtZTp0Lm1ldHJpY30pLENmPSEwfX0pLGpmKHtyZXBvcnRpbmdJbnRlcnZhbFNlY29uZHM6dCxwb3N0TWV0cmljczpyfSksZSYmKCgoZT0xZTMpPT57SWYoZSxrZihgc2RrX2V2ZW50X3F1ZXVlX2xhdGVuY3lfc2Vjb25kc2ApKX0pKCksKChlPTFlNCk9PntNZj1rZihgc2RrX2RvbV9ub2Rlc19jb3VudGApLE5mPWtmKGBzZGtfcGFnZV9odG1sX2NoYXJhY3RlcnNgKSxGZigpLHNldEludGVydmFsKEZmLGUpfSkoKSxZZigpKX0sWmY9YHRlc3RgLFFmPVtgcG9wU3RhdGVgLGBwdXNoU3RhdGVgLGByZXBsYWNlU3RhdGVgXSwkZixlcCx0cD17fSxucD1gIWVtYWlsYCxycD1gcGFnZVVybGAsaXA9d2luZG93LmxvY2F0aW9uLmhyZWY7ZnVuY3Rpb24gYXAoZSl7dmFyIHQsbjtsZXR7cGFnZVVybEV2ZW50czpyLGludGVyYWN0aXZlRXZlbnRzOmksZGlzbWlzc09uUGFnZUNoYW5nZTphLHBsYXRmb3JtOm99PXdpbmRvdy5Vc2VyTGVhcC5fY29uZmlnO2lmKG8mJm8hPT1gd2ViYClyZXR1cm47aXAhPT13aW5kb3cubG9jYXRpb24uaHJlZiYmSy5uYXZpZ2F0aW9uKGBMb2NhdGlvbkNoYW5nZWAse2Zyb206aXAsdG86d2luZG93LmxvY2F0aW9uLmhyZWZ9KSxpcD13aW5kb3cubG9jYXRpb24uaHJlZjtsZXQgcz1scCgpLnRyYWNrU3RhcnRVcmwsYz1zP1N0cmluZyhzKTpudWxsO3ImJmRwKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxpJiYoY3AoKSxzcCgpKSxRZCgpJiYoKCk9PntpZihsZigpKXJldHVybjtsZXQgZT0kZCgpO2UmJihXZChvZil8fChlLnJlbW92ZSgpLG9mPW51bGwsWD1udWxsKSl9KSgpLEouZ2V0SXRlbShgc3ByaWcuaXNDYXB0dXJpbmdIZWF0bWFwYCkmJigobj0odD1ZLnJlcGxheSk9PW51bGw/dm9pZCAwOnQuY2hlY2tQZW5kaW5nSGVhdG1hcHNVcmwoKSk9PW51bGx8fG4udGhlbihlPT57dmFyIHQ7ZSYmKCh0PVkucmVwbGF5KT09bnVsbHx8dC51cGxvYWRSZWFkeVBlbmRpbmdDYXB0dXJlcyghMCkpfSkpLCFsZigpJiZhJiZjJiZjIT09d2luZG93LmxvY2F0aW9uLmhyZWYmJmUmJlFmLmluY2x1ZGVzKGUudHlwZSkmJndpbmRvdy5Vc2VyTGVhcChgZGlzbWlzc0FjdGl2ZVN1cnZleWAsTHUuUGFnZUNoYW5nZSl9dmFyIG9wPXtjYXB0dXJlOiEwfSxzcD0oKT0+e2xldCBlPXdpbmRvdy5Vc2VyTGVhcC5fY29uZmlnLmludGVyYWN0aXZlRXZlbnRzLmZpbHRlcihlPT5VZChlLHdpbmRvdy5sb2NhdGlvbi5ocmVmKSkubWFwKGU9PntsZXR7bmFtZTp0LHByb3BlcnRpZXM6bn09ZSx7c2VsZWN0b3I6cixpbm5lclRleHQ6aX09bjtyZXR1cm4gcj9lPT57aWYoS2QoZS50YXJnZXQpKXRyeXtlLnRhcmdldC5jbG9zZXN0KHIpJiZ3aW5kb3cuVXNlckxlYXAoYHRyYWNrYCx0KX1jYXRjaHt9cmV0dXJuITF9OmU9PihLZChlLnRhcmdldCkmJmUudGFyZ2V0LmlubmVyVGV4dD09PWkmJndpbmRvdy5Vc2VyTGVhcChgdHJhY2tgLHQpLCExKX0pLHQ9dD0+ZS5mb3JFYWNoKGU9PmUodCkpO3dpbmRvdy5Vc2VyTGVhcC5fY29uZmlnLmludGVyYWN0aXZlRXZlbnRzSGFuZGxlcj10LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsdCxvcCl9LGNwPSgpPT57d2luZG93LlVzZXJMZWFwLl9jb25maWcuaW50ZXJhY3RpdmVFdmVudHNIYW5kbGVyJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihgY2xpY2tgLHdpbmRvdy5Vc2VyTGVhcC5fY29uZmlnLmludGVyYWN0aXZlRXZlbnRzSGFuZGxlcixvcCksZGVsZXRlIHdpbmRvdy5Vc2VyTGVhcC5fY29uZmlnLmludGVyYWN0aXZlRXZlbnRzSGFuZGxlcn07ZnVuY3Rpb24gbHAoKXtsZXQgZT1hZC5nZXRJdGVtT2JqZWN0KGB1c2VybGVhcC5pZHNgKTtyZXR1cm4gZSYmZVt3aW5kb3cuVXNlckxlYXAuZW52SWRdfHx7fX1mdW5jdGlvbiB1cCgpe2lmKHdpbmRvdy5wcmV2aWV3TW9kZSlyZXR1cm47bGV0IGU9YWQuZ2V0SXRlbU9iamVjdChgc3ByaWcuYW5vbi5lbnYudmlkLm1hcGApfHx7fSx0PWVbd2luZG93LlVzZXJMZWFwLmVudklkXTt3aW5kb3cuVXNlckxlYXAudmlzaXRvcklkPXR8fFV1KCksSy5pbmZvKGBOZXdWaWRgLHt2aWQ6d2luZG93LlVzZXJMZWFwLnZpc2l0b3JJZH0pLFRkKGB2aWRgLHdpbmRvdy5Vc2VyTGVhcC52aXNpdG9ySWQpLHR8fChlW3dpbmRvdy5Vc2VyTGVhcC5lbnZJZF09d2luZG93LlVzZXJMZWFwLnZpc2l0b3JJZCxhZC5zZXRJdGVtT2JqZWN0KGBzcHJpZy5hbm9uLmVudi52aWQubWFwYCxlKSkscS5lbWl0KFcuVmlzaXRvcklEVXBkYXRlZCx7dmlzaXRvcklkOndpbmRvdy5Vc2VyTGVhcC52aXNpdG9ySWR9KX1mdW5jdGlvbiBkcChlLHQsbixyKXt2YXIgaSxhO3RyeXtpZihlLmVuZHNXaXRoKGBtb2NrX3NuaXBwZXQuaHRtbGApKXJldHVybjtLLmluZm8oYFBhZ2VWaWV3YCx7dXJsOmV9KTtsZXQgbz0oaT1kb2N1bWVudD09bnVsbD92b2lkIDA6ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbWV0YVtuYW1lPSJkZXNjcmlwdGlvbiJdYCkpPT1udWxsP3ZvaWQgMDppLmdldEF0dHJpYnV0ZShgY29udGVudGApOyhhPVkucmVwbGF5KT09bnVsbHx8YS5SZWNvcmRQYWdlVmlldyh7Li4ubyYme2Rlc2NyaXB0aW9uOm99LHVybDplLHJlZmVycmVyOmRvY3VtZW50LnJlZmVycmVyLHBhZ2VUaXRsZTpkb2N1bWVudC50aXRsZX0pO2xldCBzPXdpbmRvdy5Vc2VyTGVhcC5fY29uZmlnLnBhZ2VVcmxFdmVudHMsYz0hMTtpZihzJiZzLmxlbmd0aClmb3IobGV0IHQ9MDt0PHMubGVuZ3RoJiYoYz1VZChzW3RdLGUpLCFjKTt0KyspO2lmKCFjKXJldHVybjt3aW5kb3cuVXNlckxlYXAuZGVidWdNb2RlJiZjb25zb2xlLmluZm8oYFtERUJVR10gU3ByaWcgdHJhY2tQYWdlVmlld2AsZSk7bGV0IGw9e3VybDplfTtyJiYobC50cmFja1BhZ2VWaWV3PSEwKSx3aW5kb3cuVXNlckxlYXAuX3F1ZXVlLnB1c2goW2B0cmFja2AscnAsdCxsLG5dKX1jYXRjaCh0KXt0IGluc3RhbmNlb2YgRXJyb3ImJih0LnN0YWNrPWUsd2luZG93LlVzZXJMZWFwLnJlcG9ydEVycm9yKGB0cmFja1BhZ2VWaWV3YCx0KSksY29uc29sZS53YXJuKGBbU3ByaWddIChFUlItNDI4KSBGYWlsZWQgdG8gdHJhY2sgcGFnZSB2aWV3YCx0KX19ZnVuY3Rpb24gZnAoKXtsZXQgZT1gQmFja2JvbmVgaW4gd2luZG93JiZ3aW5kb3cuQmFja2JvbmUmJndpbmRvdy5CYWNrYm9uZS5oaXN0b3J5P3dpbmRvdy5CYWNrYm9uZS5oaXN0b3J5OndpbmRvdy5oaXN0b3J5O2BwdXNoU3RhdGVgaW4gZSYmKGUucHVzaFN0YXRlPShlPT5mdW5jdGlvbiguLi50KXtsZXQgbj1lLmFwcGx5KHRoaXMsdCkscj1uZXcgRXZlbnQoYHB1c2hTdGF0ZWApO3JldHVybiB3aW5kb3cuZGlzcGF0Y2hFdmVudChyKSxhcChyKSxufSkoZS5wdXNoU3RhdGUpKSxgcmVwbGFjZVN0YXRlYGluIGUmJihlLnJlcGxhY2VTdGF0ZT0oZT0+ZnVuY3Rpb24oLi4udCl7bGV0IG49ZS5hcHBseSh0aGlzLHQpLHI9bmV3IEV2ZW50KGByZXBsYWNlU3RhdGVgKTtyZXR1cm4gd2luZG93LmRpc3BhdGNoRXZlbnQociksYXAociksbn0pKGUucmVwbGFjZVN0YXRlKSksW2BoYXNoY2hhbmdlYCxgcG9wc3RhdGVgXS5mb3JFYWNoKGU9PndpbmRvdy5hZGRFdmVudExpc3RlbmVyKGUsYXAsITApKX1hc3luYyBmdW5jdGlvbiBwcChlLHQpe2xldCBuPUVkKCk7ZSYmIXQmJih3aW5kb3cuVXNlckxlYXAuX2NvbmZpZy5tb2RlPVpmKTtsZXQgcj1rZChfZCh3aW5kb3cuVXNlckxlYXApKSxpPWF3YWl0IHdkKGZ1bmN0aW9uKGUpe2xldCB0PW5ldyBVUkwoRGQoYDFgLFtDZF0sYHF1ZXN0aW9uc2ApKTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoZXx8e30pLmZvckVhY2goKFtlLG5dKT0+e24mJnQuc2VhcmNoUGFyYW1zLmFwcGVuZChlLFN0cmluZyhuKSl9KSx0LnRvU3RyaW5nKCl9KHtkZXNrdG9wRGlzcGxheTp3aW5kb3cuVXNlckxlYXAuX2NvbmZpZy5kZXNrdG9wRGlzcGxheSxpc01vYmlsZTpyLHByZXZpZXdMYW5ndWFnZTp3aW5kb3cuVXNlckxlYXAuX2NvbmZpZy5wcmV2aWV3TGFuZ3VhZ2Usc3VydmV5aWQ6ZT09bnVsbD92b2lkIDA6ZS5zdXJ2ZXlJZCxzdXJ2ZXl0ZW1wbGF0ZWlkOmU9PW51bGw/dm9pZCAwOmUuc3VydmV5VGVtcGxhdGVJZCx2aWQ6bn0pLHtzaG91bGREcm9wT25SYXRlTGltaXQ6ITB9KTtpZighaS5vaylyZXR1cm4gaS5yZXBvcnRFcnJvciYmaS5lcnJvciYmKGNvbnNvbGUud2FybihgW1NwcmlnXSAoRVJSLTQxNCkgRmFpbGVkIHRvIHJlcXVlc3QgcXVlc3Rpb25zIGZyb20gdGhlIHNlcnZlcmAsaS5lcnJvciksd2luZG93LlVzZXJMZWFwLnJlcG9ydEVycm9yKGBnZXRRdWVzdGlvbnNgLGkuZXJyb3IpKSx7c3VjY2VzczohMSxzdXJ2ZXlTdGF0ZTpgbm8gc3VydmV5YH07aWYoaS5qc29uLmRlbGF5JiZhd2FpdCBlZChpLmpzb24uZGVsYXkpLCFpLmpzb24uaXNGZWVkYmFjaylyZXR1cm4gT2QoaS5qc29uLGVwLCRmKTt7bGV0e2ZlZWRiYWNrTGFiZWw6dCxwcm9kdWN0Q29uZmlnOm4sc3VydmV5VXVpZDpyLGZlZWRiYWNrQ3VzdG9tU3R5bGVzOmF9PWkuanNvbix7YnV0dG9uVGhlbWU6byxwbGFjZW1lbnQ6cyxkZXNrdG9wRGlzcGxheTpjfT1uO19mKHtjdXN0b21TdHlsZXM6YSxidXR0b25UaGVtZTpvLGRlc2t0b3BEaXNwbGF5OmMsZXZlbnRJZDowLGZlZWRiYWNrTGFiZWw6dCxwbGFjZW1lbnQ6cyxzdXJ2ZXlVdWlkOnIsc3VydmV5SWQ6ZT09bnVsbD92b2lkIDA6ZS5zdXJ2ZXlJZH0saS5qc29uKX19ZnVuY3Rpb24gbXAoZSl7aWYoIWUpcmV0dXJuO3dpbmRvdy5Vc2VyTGVhcC5fY29uZmlnPWUsZS5tdXRlJiZ3aW5kb3cuVXNlckxlYXAuX3F1ZXVlLnBhdXNlKCk7bGV0e2ludGVyYWN0aXZlRXZlbnRzOnQscGFnZVVybEV2ZW50czpuLGRpc21pc3NPblBhZ2VDaGFuZ2U6cn09ZTt0JiZmdW5jdGlvbihlKXtsZXQgdD1lLmxlbmd0aDtmb3IoO3Q7KXtsZXQgbj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqdCk7LS10O2xldCByPWVbdF07ZVt0XT1lW25dLGVbbl09cn19KHQpLCh0fHxufHxyKSYmKGZwKCksYXAoKSl9dmFyIGhwPWZ1bmN0aW9uKGUpe2lmKCF3aW5kb3cuVXNlckxlYXApcmV0dXJuO2xldCB0PWFzeW5jKHQ9e30pPT57dmFyIG4scixpLGEsbztsZXR7dXNlcklkOnMsYW5vbnltb3VzSWQ6YyxtZXRhZGF0YTpsPXt9LHByb3BlcnRpZXM6dSxzaG93U3VydmV5Q2FsbGJhY2s6ZH09dCx7ZXZlbnROYW1lOmZ9PXQ7aWYod2luZG93LlVzZXJMZWFwLmRlYnVnTW9kZSYmZiE9PXJwJiZjb25zb2xlLmluZm8oYFtERUJVR10gU3ByaWcgdHJhY2tgLHQpLGUubW9kZT09PWB0ZXN0YClyZXR1cm47bGV0IHA9YWQuZ2V0SXRlbShgc3ByaWcucHJldmlld0tleWApPz92b2lkIDA7aWYoZS5yZXF1aXJlVXNlcklkRm9yVHJhY2tpbmcmJiF3aW5kb3cuVXNlckxlYXAudXNlcklkJiYhcyl7bGV0IGU9YFtTcHJpZ10gLSBTa2lwcGluZyB0cmFja2luZyB3aXRob3V0IHVzZXJJZGA7cmV0dXJuIGNvbnNvbGUud2FybihlKSx7c3VjY2VzczohMSxtZXNzYWdlOmUsc3VydmV5U3RhdGU6YG5vIHN1cnZleWB9fWlmKCFmfHxmLnRyaW0oKS5sZW5ndGg9PT0wKXtmPWY/U3RyaW5nKGYpOmBgO2xldCBlPWBbU3ByaWddIC0gSW52YWxpZCBldmVudCBuYW1lIGArZjtyZXR1cm4gY29uc29sZS53YXJuKGUpLHtzdWNjZXNzOiExLG1lc3NhZ2U6ZSxzdXJ2ZXlTdGF0ZTpgbm8gc3VydmV5YH19bGV0IG09ZXA/P3dpbmRvdy5sb2NhdGlvbi5ocmVmO2wudXJsfHwobC51cmw9bSksVGQoYHRyYWNrU3RhcnRVcmxgLG0pLChyPShuPXdpbmRvdy5Vc2VyTGVhcCk9PW51bGw/dm9pZCAwOm4uX2NvbmZpZykhPW51bGwmJnIub3B0aW1pemVseUVuYWJsZWQmJihBZChfZCh3aW5kb3cuVXNlckxlYXApKXx8YmYuZ2V0QW5kU2V0V2ViT3B0aW1pemVseUV4cGVyaW1lbnRzKCksbC5vcHRpbWl6ZWx5RXhwZXJpbWVudHM9T2JqZWN0LmFzc2lnbih7fSxiZi5nZXRBbGxPcHRpbWl6ZWx5RXhwZXJpbWVudHMoKSkpLChhPShpPXdpbmRvdy5Vc2VyTGVhcCk9PW51bGw/dm9pZCAwOmkuX2NvbmZpZykhPW51bGwmJmEubGF1bmNoRGFya2x5RW5hYmxlZCYmKGwubGF1bmNoRGFya2x5RmxhZ3M9eWYuZ2V0QWxsTGF1bmNoRGFya2x5VmFyaWF0aW9ucygpKSxzJiYod2luZG93LlVzZXJMZWFwLnVzZXJJZD1zKSxjJiYod2luZG93LlVzZXJMZWFwLnBhcnRuZXJBbm9ueW1vdXNJZD1jKSx1JiYobC5ldmVudFByb3BlcnRpZXM9dSksKG89WS5yZXBsYXkpPT1udWxsfHxvLlJlY29yZEV2ZW50KHtuYW1lOmYsdXJsOmwudXJsfSksSy5pbmZvKGBUcmFja0V2ZW50YCx7ZXZlbnROYW1lOmZ9KTtsZXQgaD13aW5kb3cuVXNlckxlYXAuZGVsYXlpbmdTdXJ2ZXl8fHRmKCk/YXdhaXQgd2QoRGQoYDFgLFtTZF0sYGV2ZW50cy9iYXRjaGApLHtib2R5OkpTT04uc3RyaW5naWZ5KHtldmVudHM6W3tldmVudDpmLG1ldGFkYXRhOmx9XSxwcmV2aWV3S2V5OnB9KSxtZXRob2Q6YFBPU1RgLHNob3VsZERyb3BPblJhdGVMaW1pdDohMH0pOmF3YWl0IHdkKERkKGAxYCxbU2RdLGBldmVudHNgKSx7Ym9keTpKU09OLnN0cmluZ2lmeSh7ZXZlbnQ6ZixtZXRhZGF0YTpsLHByZXZpZXdLZXk6cH0pLG1ldGhvZDpgUE9TVGAsc2hvdWxkRHJvcE9uUmF0ZUxpbWl0OiEwfSk7aWYoIWgub2spe2xldCBlPWBbU3ByaWddIChFUlItNDIxKSBGYWlsZWQgdG8gdHJhY2sgZXZlbnRgO3JldHVybiBoLnJlcG9ydEVycm9yJiYoY29uc29sZS53YXJuKGUsaC5lcnJvciksaC5lcnJvciYmd2luZG93LlVzZXJMZWFwLnJlcG9ydEVycm9yKGB0cmFja2AsaC5lcnJvcikpLHtzdWNjZXNzOiExLG1lc3NhZ2U6ZSxlcnJvcjpoLmVycm9yLHN1cnZleVN0YXRlOmBubyBzdXJ2ZXlgfX1zJiZUZChgdWlkYCxzKSxjJiZUZChgYWlkYCxjKTtsZXQgZz1oLmpzb247Zy5pbnZhbGlkUHJldmlld0tleSYmYWQucmVtb3ZlSXRlbShgc3ByaWcucHJldmlld0tleWApO2xldCBfPWwudHJhY2tQYWdlVmlldz9sLnVybDp2b2lkIDA7cmV0dXJuIGchPW51bGwmJmcuZmVlZGJhY2tCdXR0b24mJl9mKGcuZmVlZGJhY2tCdXR0b24sdm9pZCAwLF8pLGF3YWl0IGFzeW5jIGZ1bmN0aW9uKGUsdCl7dmFyIG4scjtsZXQgaT0hMDtyZXR1cm4hKHQmJihuPWU9PW51bGw/dm9pZCAwOmUuanNvbikhPW51bGwmJm4uc3VydmV5SWQmJih3aW5kb3cuVXNlckxlYXAuZGVsYXlpbmdTdXJ2ZXk9ITAsaT1hd2FpdCB0KGUuanNvbi5zdXJ2ZXlJZCksd2luZG93LlVzZXJMZWFwLmRlbGF5aW5nU3VydmV5PSExLCFpKSkmJigocj1lPT1udWxsP3ZvaWQgMDplLmpzb24pIT1udWxsJiZyLmRlbGF5JiYhd2luZG93LlVzZXJMZWFwLmlzTW9iaWxlU0RLJiYod2luZG93LlVzZXJMZWFwLmRlbGF5aW5nU3VydmV5PSEwLGF3YWl0IGVkKGUuanNvbi5kZWxheSksd2luZG93LlVzZXJMZWFwLmRlbGF5aW5nU3VydmV5PSExKSxpKX0oaCxkKT9mdW5jdGlvbihlKXtpZighd2luZG93LlVzZXJMZWFwLl9jb25maWcuZGlzbWlzc09uUGFnZUNoYW5nZSlyZXR1cm4hMDtsZXQgdD1uZXcgVVJMKGUpLG49bmV3IFVSTChlcD8/d2luZG93LmxvY2F0aW9uLmhyZWYpO3JldHVybiB0Lmhvc3RuYW1lPT09bi5ob3N0bmFtZSYmdC5wYXRobmFtZT09PW4ucGF0aG5hbWV9KG0pP09kKGcsXywkZik6e3N1Y2Nlc3M6ITEsbWVzc2FnZTpgU3R1ZHkgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWQgYWZ0ZXIgcGFnZSBuYXZpZ2F0aW9uYCxzdXJ2ZXlTdGF0ZTpgbm8gc3VydmV5YH06e3N1Y2Nlc3M6ITEsbWVzc2FnZTpgW1NwcmlnXSBDYWxsYmFjayByZXR1cm5lZCBmYWxzZSwgYWJvcnRpbmcgcmVuZGVyaW5nIG9mIHN1cnZleWAsc3VydmV5U3RhdGU6YG5vIHN1cnZleWB9fSxuPShlLHQpPT57dmFyIG47bGV0IHI9KG49ZT09bnVsbD92b2lkIDA6ZS5xdWVyeVNlbGVjdG9yKGBbaWQ9IiR7TWR9Il1gKSk9PW51bGw/dm9pZCAwOm4uY29udGVudERvY3VtZW50O3ImJnFkKHtkb2N1bWVudDpyLGVsZW1lbnRJZDpgdWwtY3VzdG9tLXN0eWxlYCxzdHlsZVN0cmluZzp0fSl9LHI9e2Rpc3BsYXlTdXJ2ZXk6YXN5bmMgZT0+KGNvbnNvbGUud2FybihgW1NwcmlnXSBkaXNwbGF5U3VydmV5IHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gZGVidWcgeW91ciBzdHVkaWVzOyBub3QgaW50ZW5kZWQgZm9yIHByb2R1Y3Rpb24gdXNhZ2UuYCksd2luZG93LlVzZXJMZWFwKGBkaXNtaXNzQWN0aXZlU3VydmV5YCxMdS5PdmVycmlkZSkscHAoe3N1cnZleUlkOmV9LCEwKSksX3ByZXZpZXdTdXJ2ZXkoZSl7d2luZG93LlVzZXJMZWFwKGBkaXNtaXNzQWN0aXZlU3VydmV5YCxMdS5PdmVycmlkZSkscHAoe3N1cnZleVRlbXBsYXRlSWQ6ZX0sITEpfSxfcmV2aWV3U3VydmV5KGUpe3dpbmRvdy5Vc2VyTGVhcChgZGlzbWlzc0FjdGl2ZVN1cnZleWAsTHUuT3ZlcnJpZGUpLHBwKHtzdXJ2ZXlJZDplfSwhMSl9LHByZXZpZXdTdXJ2ZXkoZSl7ci5fcHJldmlld1N1cnZleShlKX0scmV2aWV3U3VydmV5KGUpe3IuX3Jldmlld1N1cnZleShlKX0sbXV0ZSgpe3dpbmRvdy5Vc2VyTGVhcC5fcXVldWUucGF1c2UoKX0sdW5tdXRlKCl7d2luZG93LlVzZXJMZWFwLl9xdWV1ZS51bnBhdXNlKCl9LHNldFZpc2l0b3JUb2tlbigpe2NvbnNvbGUud2FybihgW1NwcmlnXSBzZXRWaXNpdG9yVG9rZW4gaXMgZGVwcmVjYXRlZC5gKX0sZGlzbWlzc0FjdGl2ZVN1cnZleShlPUx1LkFQSSl7d2luZG93LlVzZXJMZWFwLmNvbnRhaW5lciYmKGU9PT1MdS5DbG9zZWQmJndpbmRvdy5TcHJpZy50cmFja0hpc3RvcnkmJndpbmRvdy5TcHJpZy50cmFja0hpc3Rvcnkoe2V2ZW50OmBjbG9zZWRgfSkscS5lbWl0KFcuU3VydmV5Q2xvc2VSZXF1ZXN0ZWQse25hbWU6Vy5TdXJ2ZXlDbG9zZVJlcXVlc3RlZCxpbml0aWF0b3I6ZSwic3VydmV5LmlkIjpwYXJzZUludCh3aW5kb3cuVXNlckxlYXAuY29udGFpbmVyLmRhdGFzZXQuc3R1ZHlJZCl9KSxxLmVtaXQoVy5TdXJ2ZXlXaWxsQ2xvc2Use25hbWU6Vy5TdXJ2ZXlXaWxsQ2xvc2UsaW5pdGlhdG9yOmUsInN1cnZleS5pZCI6cGFyc2VJbnQod2luZG93LlVzZXJMZWFwLmNvbnRhaW5lci5kYXRhc2V0LnN0dWR5SWQpfSkpfSxhc3luYyBzZXRBdHRyaWJ1dGUoZSx0KXtpZighZXx8IXQmJnQhPT0wJiZ0IT09ITEpe2xldCBlPWBbU3ByaWddIC0gRGlzcmVnYXJkaW5nIGVtcHR5IGF0dHJpYnV0ZSAvIHZhbHVlIHByb3ZpZGVkYDtyZXR1cm4gY29uc29sZS53YXJuKGUpLHtzdWNjZXNzOiExLG1lc3NhZ2U6ZX19cmV0dXJuIHRoaXMuc2V0QXR0cmlidXRlcyh7W2VdOnR9KX0sYXN5bmMgc2V0QXR0cmlidXRlcyhlKXtpZihlPT1udWxsfHxPYmplY3Qua2V5cyhlKS5sZW5ndGg9PT0wKXtsZXQgZT1gW1NwcmlnXSAtIERpc3JlZ2FyZGluZyBlbXB0eSBhdHRyaWJ1dGVzIHByb3ZpZGVkYDtyZXR1cm4gY29uc29sZS53YXJuKGUpLHtzdWNjZXNzOiExLG1lc3NhZ2U6ZX19cmV0dXJuIHRoaXMuaWRlbnRpZnlBbmRTZXRBdHRyaWJ1dGVzKHthdHRyaWJ1dGVzOmV9KX0sYXN5bmMgaWRlbnRpZnlBbmRTZXRBdHRyaWJ1dGVzKHQpe2lmKHdpbmRvdy5Vc2VyTGVhcC5kZWJ1Z01vZGUmJmNvbnNvbGUuaW5mbyhgW0RFQlVHXSBTcHJpZyBpZGVudGlmeUFuZFNldEF0dHJpYnV0ZXNgLHQpLGUubW9kZT09PWB0ZXN0YClyZXR1cm47aWYodHlwZW9mIHQhPWBvYmplY3RgfHwhdHx8ISh0LnVzZXJJZHx8dC5hbm9ueW1vdXNJZHx8dC5hdHRyaWJ1dGVzKSl7bGV0IGU9YFtTcHJpZ10gLSBEaXNyZWdhcmRpbmcgZW1wdHkgcGF5bG9hZCBwcm92aWRlZGA7cmV0dXJuIGNvbnNvbGUud2FybihlKSx7c3VjY2VzczohMSxtZXNzYWdlOmV9fWxldHt1c2VySWQ6bixhbm9ueW1vdXNJZDpyLGF0dHJpYnV0ZXM6aX09dDtpZihlLnJlcXVpcmVVc2VySWRGb3JUcmFja2luZyYmIXdpbmRvdy5Vc2VyTGVhcC51c2VySWQmJiFuKXtsZXQgZT1gW1NwcmlnXSAtIFNraXBwaW5nIHRyYWNraW5nIHdpdGhvdXQgdXNlcklkYDtyZXR1cm4gY29uc29sZS53YXJuKGUpLHtzdWNjZXNzOiExLG1lc3NhZ2U6ZX19aWYoaSl7aS5lbWFpbCYmIWlbbnBdJiYoaVtucF09aS5lbWFpbCxkZWxldGUgaS5lbWFpbCk7bGV0IGU9T2JqZWN0LmtleXMoaSk7Zm9yKGxldCB0IG9mIGUpaVt0XT09PXRwW3RdJiZkZWxldGUgaVt0XX1pZighKGkmJk9iamVjdC5rZXlzKGkpLmxlbmd0aCE9PTB8fG4mJndpbmRvdy5Vc2VyTGVhcC51c2VySWQhPT1ufHxyJiZ3aW5kb3cuVXNlckxlYXAucGFydG5lckFub255bW91c0lkIT09cikpcmV0dXJue3N1Y2Nlc3M6ITB9O2xldCBhPXt9LG87cmV0dXJuIG4mJihhLnVzZXJJZD13aW5kb3cuVXNlckxlYXAudXNlcklkPW4pLHImJihhLnBhcnRuZXJBbm9ueW1vdXNJZD13aW5kb3cuVXNlckxlYXAucGFydG5lckFub255bW91c0lkPXIpLGkmJk9iamVjdC5rZXlzKGkpLmxlbmd0aD4wPyhvPWF3YWl0IHdkKERkKGAxYCxbQ2QsU2RdLGBhdHRyaWJ1dGVzYCkse2JvZHk6SlNPTi5zdHJpbmdpZnkoaSksbWV0aG9kOmBQVVRgfSksby5vaz9PYmplY3QuYXNzaWduKHRwLGkpOm8ucmVwb3J0RXJyb3ImJihjb25zb2xlLndhcm4oYFtTcHJpZ10gKEVSUi00MzIpIGlkZW50aWZ5QW5kU2V0QXR0cmlidXRlcyBmYWlsZWRgLG8uZXJyb3IpLG8uZXJyb3ImJndpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihgaWRlbnRpZnlBbmRTZXRBdHRyaWJ1dGVzYCxvLmVycm9yKSkpOm89YXdhaXQgd2QoRGQoYDFgLFtDZCxTZF0pLHtib2R5OkpTT04uc3RyaW5naWZ5KGEpLG1ldGhvZDpgUFVUYH0pLGkmJmlbbnBdJiYod2luZG93LlVzZXJMZWFwLmVtYWlsPWlbbnBdKSxvLm9rJiYobiYmVGQoYHVpZGAsbiksciYmVGQoYGFpZGAscikpLHtzdWNjZXNzOiEhby5va319LGFzeW5jIHJlbW92ZUF0dHJpYnV0ZXModCl7aWYod2luZG93LlVzZXJMZWFwLmRlYnVnTW9kZSYmY29uc29sZS5pbmZvKGBbREVCVUddIFNwcmlnIHJlbW92ZUF0dHJpYnV0ZXNgLHQpLGUubW9kZT09PWB0ZXN0YClyZXR1cm47aWYodD09bnVsbHx8dC5sZW5ndGg9PT0wKXtsZXQgZT1gW1NwcmlnXSAtIERpc3JlZ2FyZGluZyBlbXB0eSBhdHRyaWJ1dGVzIHByb3ZpZGVkYDtyZXR1cm4gY29uc29sZS53YXJuKGUpLHtzdWNjZXNzOiExLG1lc3NhZ2U6ZX19aWYoZS5yZXF1aXJlVXNlcklkRm9yVHJhY2tpbmcmJiF3aW5kb3cuVXNlckxlYXAudXNlcklkKXtsZXQgZT1gW1NwcmlnXSAtIFNraXBwaW5nIHRyYWNraW5nIHdpdGhvdXQgdXNlcklkYDtyZXR1cm4gY29uc29sZS53YXJuKGUpLHtzdWNjZXNzOiExLG1lc3NhZ2U6ZX19bGV0IG49YXdhaXQgd2QoRGQoYDFgLFtDZCxTZF0sYGF0dHJpYnV0ZXNgKSx7Ym9keTpKU09OLnN0cmluZ2lmeSh7ZGVsZXRlOnR9KSxtZXRob2Q6YERFTEVURWB9KTtyZXR1cm4hbi5vayYmbi5yZXBvcnRFcnJvciYmKGNvbnNvbGUud2FybihgW1NwcmlnXSAoRVJSLTQzMykgUmVtb3ZlIGF0dHJpYnV0ZXMgZmFpbGVkYCxuLmVycm9yKSxuLmVycm9yJiZ3aW5kb3cuVXNlckxlYXAucmVwb3J0RXJyb3IoYHJlbW92ZUF0dHJpYnV0ZXNgLG4uZXJyb3IpKSx7c3VjY2VzczohIW4ub2t9fSxhc3luYyBhZGRTdXJ2ZXlMaXN0ZW5lcihlKXtxLm9uKFcuU3VydmV5TGlmZUN5Y2xlLGUpfSxhc3luYyByZW1vdmVTdXJ2ZXlMaXN0ZW5lcihlKXtxLnJlbW92ZUxpc3RlbmVyKFcuU3VydmV5TGlmZUN5Y2xlLGUpfSxhc3luYyBhZGRMaXN0ZW5lcihlLHQpe3Eub24oZSx0KX0sYXN5bmMgcmVtb3ZlTGlzdGVuZXIoZSx0KXtxLnJlbW92ZUxpc3RlbmVyKGUsdCl9LGFzeW5jIHJlbW92ZUFsbExpc3RlbmVycygpe3EucmVtb3ZlQWxsTGlzdGVuZXJzKCl9LHNldFByZXZpZXdLZXkoZSl7ZSYmdHlwZW9mIGU9PWBzdHJpbmdgJiZhZC5pc1N0b3JhZ2VBdmFpbGFibGUmJmUmJmFkLnNldEl0ZW0oYHNwcmlnLnByZXZpZXdLZXlgLGUpfSxhc3luYyBzZXRVc2VySWQodCl7dmFyIG47aWYod2luZG93LlVzZXJMZWFwLmRlYnVnTW9kZSYmY29uc29sZS5pbmZvKGBbREVCVUddIFNwcmlnIHNldFVzZXJJZGAsdCksdD09bnVsbCl7bGV0IGU9YFtTcHJpZ10gLSBJbnZhbGlkIHVzZXJJZCAke3R9YDtyZXR1cm4gY29uc29sZS53YXJuKGUpLHtzdWNjZXNzOiExLG1lc3NhZ2U6ZX19aWYoZS5tb2RlPT09YHRlc3RgfHx0PT09d2luZG93LlVzZXJMZWFwLnVzZXJJZClyZXR1cm47d2luZG93LlVzZXJMZWFwLnVzZXJJZD10O2xldCByPXdpbmRvdy5Vc2VyTGVhcC52aXNpdG9ySWQsaT1hd2FpdCB3ZChEZChgMWAsW0NkLFNkXSkse2JvZHk6SlNPTi5zdHJpbmdpZnkoe3VzZXJJZDp0fSksbWV0aG9kOmBQVVRgfSk7aS5vaz8ociE9PXdpbmRvdy5Vc2VyTGVhcC52aXNpdG9ySWQmJigobj1ZLnJlcGxheSk9PW51bGx8fG4uY2xlYXJVc2VyUmVwbGF5RGF0YSgpKSxUZChgdWlkYCx0KSk6aS5yZXBvcnRFcnJvciYmKGNvbnNvbGUud2FybihgW1NwcmlnXSAoRVJSLTQyMCkgRmFpbGVkIHRvIHNldCB1c2VyIGlkYCxpLmVycm9yKSxpLmVycm9yJiZ3aW5kb3cuVXNlckxlYXAucmVwb3J0RXJyb3IoYHNldFVzZXJJZGAsaS5lcnJvcikpfSxhc3luYyBzZXRQYXJ0bmVyQW5vbnltb3VzSWQoZSl7aWYod2luZG93LlVzZXJMZWFwLmRlYnVnTW9kZSYmY29uc29sZS5pbmZvKGBbREVCVUddIFNwcmlnIHNldFBhcnRuZXJBbm9ueW1vdXNJZGAsZSksZT09bnVsbCl7bGV0IHQ9YFtTcHJpZ10gLSBJbnZhbGlkIHBhcnRuZXJBbm9ueW1vdXNJZCAke2V9YDtyZXR1cm4gY29uc29sZS53YXJuKHQpLHtzdWNjZXNzOiExLG1lc3NhZ2U6dH19cmV0dXJuIHdpbmRvdy5Vc2VyTGVhcC5wYXJ0bmVyQW5vbnltb3VzSWQ9ZSxUZChgYWlkYCxlKSx7c3VjY2VzczohMH19LHRyYWNrOmFzeW5jKGUsbixyPXt9LGk9dm9pZCAwKT0+dCh7ZXZlbnROYW1lOmUscHJvcGVydGllczpuLG1ldGFkYXRhOnIsc2hvd1N1cnZleUNhbGxiYWNrOml9KSxpZGVudGlmeUFuZFRyYWNrOmFzeW5jIGU9PmF3YWl0IHQoZSksdHJhY2tQYWdlVmlldyhlLHQ9dm9pZCAwLG49dm9pZCAwLHI9ITApe2VwPWUsZHAoZSx0LG4scil9LGFwcGx5RmVlZGJhY2tTdHlsZXMoe2J1dHRvbjplPWBgLHZpZXc6dD1gYH0pe3dpbmRvdy5Vc2VyTGVhcC5mZWVkYmFja0N1c3RvbVN0eWxlcz10LGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzcHJpZy1mZWVkYmFjay1zdHlsZWApJiZxZCh7ZG9jdW1lbnQsZWxlbWVudElkOmB1bC1jdXN0b20tc3R5bGVgLHN0eWxlU3RyaW5nOmUsbm9uY2U6d2luZG93LlVzZXJMZWFwLnN0eWxlTm9uY2V9KSxuKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC51bC1jb250YWluZXItZmVlZGJhY2tgKSx0KX0sYXBwbHlTdHlsZXMoZSl7d2luZG93LlVzZXJMZWFwLmN1c3RvbVN0eWxlcz1lLG4od2luZG93LlVzZXJMZWFwLmNvbnRhaW5lcixlKX0sc2V0V2luZG93RGltZW5zaW9ucyhlLHQpe3ZhciBuLHI7bGV0IGk9dHlwZW9mIGU9PWBzdHJpbmdgP3BhcnNlSW50KGUsMTApOmUsYT10eXBlb2YgdD09YHN0cmluZ2A/cGFyc2VJbnQodCwxMCk6dDtpc05hTihpKXx8aXNOYU4oYSl8fCh3aW5kb3cuVXNlckxlYXAud2luZG93RGltZW5zaW9ucz17d2lkdGg6aSxoZWlnaHQ6YX0pO2xldCBvPV9kKHdpbmRvdy5Vc2VyTGVhcCkscz1rZChvKSxjPW9bYHVzZXJsZWFwLXBsYXRmb3JtYF09PT1gd2ViYDtpZighd2luZG93LlVzZXJMZWFwLmZyYW1lSWQpcmV0dXJuO2xldCBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHdpbmRvdy5Vc2VyTGVhcC5mcmFtZUlkKTtsJiYod2luZG93LlVzZXJMZWFwLnVzZU1vYmlsZVN0eWxpbmcmJigobj13aW5kb3cuVXNlckxlYXAud2luZG93RGltZW5zaW9ucykhPW51bGwmJm4ud2lkdGgmJihsLnN0eWxlLndpZHRoPWAke3dpbmRvdy5Vc2VyTGVhcC53aW5kb3dEaW1lbnNpb25zLndpZHRofXB4YCksKHI9d2luZG93LlVzZXJMZWFwLndpbmRvd0RpbWVuc2lvbnMpIT1udWxsJiZyLmhlaWdodCYmKGwuc3R5bGUubWF4SGVpZ2h0PXdpbmRvdy5Vc2VyTGVhcC53aW5kb3dEaW1lbnNpb25zLmhlaWdodC0yMCtgcHhgKSxsLmNvbnRlbnREb2N1bWVudCYmKGwuc3R5bGUuaGVpZ2h0PVN0cmluZyhYZChsLmNvbnRlbnREb2N1bWVudCxjJiYhcyx0ZChvKSlbMF0pK2BweGApKSxxLmVtaXQoVy5TdXJ2ZXlEaW1lbnNpb25zLHtuYW1lOlcuU3VydmV5RGltZW5zaW9ucyxjb250ZW50RnJhbWVXaWR0aDpsLmNsaWVudFdpZHRoLGNvbnRlbnRGcmFtZUhlaWdodDpsLmNsaWVudEhlaWdodCwic3VydmV5LmlkIjpwYXJzZUludCh3aW5kb3cuVXNlckxlYXAuY29udGFpbmVyLmRhdGFzZXQuc3R1ZHlJZCl9KSl9LGxvZ291dFVzZXIoKXt2YXIgZTt3aW5kb3cuVXNlckxlYXAuZGVidWdNb2RlJiZjb25zb2xlLmluZm8oYFtERUJVR10gU3ByaWcgbG9nb3V0YCksSy5pbmZvKGBMb2dPdXRgLHt2aWQ6d2luZG93LlVzZXJMZWFwLnZpc2l0b3JJZCx1c2VySWQ6d2luZG93LlVzZXJMZWFwLnVzZXJJZH0pLHdpbmRvdy5Vc2VyTGVhcC52aXNpdG9ySWQ9bnVsbCx3aW5kb3cuVXNlckxlYXAudXNlcklkPW51bGwsd2luZG93LlVzZXJMZWFwLnBhcnRuZXJBbm9ueW1vdXNJZD1udWxsLHdpbmRvdy5Vc2VyTGVhcC50b2tlbj1udWxsLHdpbmRvdy5Vc2VyTGVhcC5lbWFpbD1udWxsLGFkLnJlbW92ZUl0ZW0oYHVzZXJsZWFwLmlkc2ApLHdpbmRvdy5Vc2VyTGVhcC5fcXVldWUuaXNQYXVzZWQoKSYmd2luZG93LlVzZXJMZWFwLl9xdWV1ZS5lbXB0eSgpLHVwKCksKGU9WS5yZXBsYXkpPT1udWxsfHxlLmNsZWFyVXNlclJlcGxheURhdGEoKSx3aW5kb3cuVXNlckxlYXAuX3F1ZXVlLnVucGF1c2UoKX0sdGVhcmRvd24oKXtbYGhhc2hjaGFuZ2VgLGBwb3BzdGF0ZWBdLmZvckVhY2goZT0+d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxhcCwhMCkpLHdpbmRvdy5Vc2VyTGVhcC5fY29uZmlnLmludGVyYWN0aXZlRXZlbnRzJiZjcCgpLHdpbmRvdy5Vc2VyTGVhcChgZGlzbWlzc0FjdGl2ZVN1cnZleWAsTHUuQVBJKSxkZWxldGUgd2luZG93LlVzZXJMZWFwLGRlbGV0ZSB3aW5kb3cuU3ByaWcsZGVsZXRlIHdpbmRvdy5fU3ByaWd9LGludGVncmF0ZU9wdGltaXplbHkoZSx0PSEwKXt2YXIgbixyO2lmKChyPShuPXdpbmRvdy5Vc2VyTGVhcCk9PW51bGw/dm9pZCAwOm4uX2NvbmZpZykhPW51bGwmJnIub3B0aW1pemVseUVuYWJsZWQpdHJ5e2xldCBuPXR5cGVvZiBlPT1gc3RyaW5nYD9KU09OLnBhcnNlKGUpOmU7YmYuc2V0T3B0aW1pemVseUV4cGVyaW1lbnQobix0KX1jYXRjaChlKXtjb25zb2xlLndhcm4oYFtTcHJpZ10gRXJyb3Igd2l0aCBpbnRlZ3JhdGluZyBPcHRpbWl6ZWx5IGRhdGFgKSxlIGluc3RhbmNlb2YgRXJyb3ImJndpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihgaW50ZWdyYXRlT3B0aW1pemVseWAsZSl9ZWxzZSBjb25zb2xlLndhcm4oYFtTUFJJR10gT3B0aW1pemVseSBpbnRlZ3JhdGlvbiBpcyBjdXJyZW50bHkgbm90IGVuYWJsZWQgZm9yIHlvdXIgcHJvZHVjdC5gKX0saW50ZWdyYXRlT3B0aW1pemVseUNsaWVudChlKXt2YXIgdCxuO2lmKCEoKG49KHQ9d2luZG93LlVzZXJMZWFwKT09bnVsbD92b2lkIDA6dC5fY29uZmlnKSE9bnVsbCYmbi5vcHRpbWl6ZWx5RW5hYmxlZCkpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKGBbU1BSSUddIE9wdGltaXplbHkgaW50ZWdyYXRpb24gaXMgY3VycmVudGx5IG5vdCBlbmFibGVkIGZvciB5b3VyIHByb2R1Y3QuYCk7ZS5ub3RpZmljYXRpb25DZW50ZXIuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIoYEFDVElWQVRFOmV4cGVyaW1lbnQsIHVzZXJfaWQsYXR0cmlidXRlcywgdmFyaWF0aW9uLCBldmVudGAsKHtleHBlcmltZW50OmUsdmFyaWF0aW9uOnR9KT0+e2xldCBuPXtleHBlcmltZW50czpbe2lkOmUuaWQsdmFyaWF0aW9uOnQua2V5fV19O3dpbmRvdy5Vc2VyTGVhcChgaW50ZWdyYXRlT3B0aW1pemVseWAsbiwhMSl9KX0saW1wb3J0TGF1bmNoRGFya2x5RGF0YShlKXt2YXIgdCxuOyhuPSh0PXdpbmRvdy5Vc2VyTGVhcCk9PW51bGw/dm9pZCAwOnQuX2NvbmZpZykhPW51bGwmJm4ubGF1bmNoRGFya2x5RW5hYmxlZD95Zi5zZXRMREZsYWdzVmFyaWF0aW9ucyhlKTpjb25zb2xlLndhcm4oYFtTUFJJR10gTGF1bmNoRGFya2x5IGludGVncmF0aW9uIGlzIGN1cnJlbnRseSBub3QgZW5hYmxlZCBmb3IgeW91ciBwcm9kdWN0LmApfSxzZXRWaXNpdG9yQXR0cmlidXRlOihlLHQpPT4oY29uc29sZS53YXJuKGBbU3ByaWddIHNldFZpc2l0b3JBdHRyaWJ1dGUgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBzZXRBdHRyaWJ1dGVgKSxyLnNldEF0dHJpYnV0ZShlLHQpKSxzZXRFbWFpbDphc3luYyBlPT5yLnNldEF0dHJpYnV0ZShucCxlKSxzZXRWaXNpdG9yRW1haWw6YXN5bmMgZT0+KGNvbnNvbGUud2FybihgW1NwcmlnXSBzZXRWaXNpdG9yRW1haWwgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBzZXRFbWFpbGApLHIuc2V0RW1haWwoZSkpLF9nZW5lcmF0ZVZpZGVvVXBsb2FkVXJsOmFzeW5jIGU9PmFzeW5jIGZ1bmN0aW9uKGUpe3ZhciB0O2lmKCFlKXJldHVybjtsZXQgbj1gJHt3aW5kb3cuVXNlckxlYXAuX0FQSV9VUkx9LzIvZW52aXJvbm1lbnRzL2ludGVncmF0aW9ucy91cGxvYWRgO3RyeXtsZXQgcj1hd2FpdCBmZXRjaChuLHttZXRob2Q6YFBPU1RgLGNhY2hlOmBuby1jYWNoZWAsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6YGFwcGxpY2F0aW9uL2pzb25gfSxib2R5OkpTT04uc3RyaW5naWZ5KGUpfSk7aWYoci5vayl7bGV0IGU9YXdhaXQgci5qc29uKCk7cmV0dXJuKHQ9ZT09bnVsbD92b2lkIDA6ZS51cGxvYWQpPT1udWxsP3ZvaWQgMDp0LnVybH1yZXR1cm4gbnVsbH1jYXRjaChlKXtjb25zb2xlLndhcm4oYFtTcHJpZ10gRXJyb3Igd2l0aCBnZW5lcmF0aW5nIHZpZGVvIHVwbG9hZCB1cmxgKSxlIGluc3RhbmNlb2YgRXJyb3ImJndpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihgZ2VuZXJhdGVWaWRlb1VwbG9hZFVybGAsZSl9fShlKSxfcmVwb3J0TWV0cmljKGUsdCl7QWYoZSx0KX0sX2NvbXBsZXRlU2Vzc2lvblJlcGxheTphc3luYyh7c3VydmV5SWQ6ZSxyZXNwb25zZUdyb3VwVXVpZDp0LGV2ZW50RGlnZXN0Om59KT0+e3ZhciByO3JldHVybiBZLnJlcGxheT8ocj1ZLnJlcGxheSk9PW51bGw/dm9pZCAwOnIuX2NvbXBsZXRlU2Vzc2lvblJlcGxheSh7c3VydmV5SWQ6ZSxyZXNwb25zZUdyb3VwVXVpZDp0LGV2ZW50RGlnZXN0Om4saGVhZGVyczpfZCh3aW5kb3cuVXNlckxlYXApfSk6KHdpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihgX2NvbXBsZXRlU2Vzc2lvblJlcGxheWAsRXJyb3IoYFJlcGxheSBtb2R1bGUgbm90IHJlZ2lzdGVyZWRgKSksITEpfSxwYXVzZVJlcGxheVJlY29yZGluZygpe3ZhciBlLHQsbixyOyh0PShlPVkucmVwbGF5KT09bnVsbD92b2lkIDA6ZS5pc1JlcGxheVBhdXNlZCkhPW51bGwmJnQuY2FsbChlKXx8KHI9KG49WS5yZXBsYXkpPT1udWxsP3ZvaWQgMDpuLnJlY29yZFJlcGxheVBhdXNlZCk9PW51bGx8fHIuY2FsbChuKX0scmVzdW1lUmVwbGF5UmVjb3JkaW5nKCl7dmFyIGUsdCxuLHIsaSxhOyh0PShlPVkucmVwbGF5KT09bnVsbD92b2lkIDA6ZS5pc1JlcGxheVBhdXNlZCkhPW51bGwmJnQuY2FsbChlKSYmKChyPShuPVkucmVwbGF5KT09bnVsbD92b2lkIDA6bi5yZWNvcmRSZXBsYXlSZXN1bWVkKT09bnVsbHx8ci5jYWxsKG4pLChhPShpPVkucmVwbGF5KT09bnVsbD92b2lkIDA6aS5yZWNvcmRGdWxsU25hcHNob3QpPT1udWxsfHxhLmNhbGwoaSkpfX07T2JqZWN0LmFzc2lnbih3aW5kb3cuVXNlckxlYXAscil9O2FzeW5jIGZ1bmN0aW9uIGdwKGUsdCxuPXt9LHI9e30pe2xldCBpPXdpbmRvdy5fX2NmZyYmd2luZG93Ll9fY2ZnLm1vZGUsYT1FZCgpLG89d2luZG93LlVzZXJMZWFwLmVudklkLHM9d2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxjPXttb2RlOmksc2NyZWVuV2lkdGg6d2luZG93LnNjcmVlbi53aWR0aCxzY3JlZW5IZWlnaHQ6d2luZG93LnNjcmVlbi5oZWlnaHQsY2xpZW50V2lkdGg6cy5jbGllbnRXaWR0aCxjbGllbnRIZWlnaHQ6cy5jbGllbnRIZWlnaHQsbG9jYXRpb246ZXA/P3dpbmRvdy5sb2NhdGlvbi5ocmVmLGxhbmd1YWdlOndpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2UsLi4ubn0sbD17YWN0aW9uOmUsYnJlYWRjcnVtYnM6Sy5icmVhZGNydW1icyxlcnI6e21lc3NhZ2U6YCR7dD09bnVsbD92b2lkIDA6dC5uYW1lfSAtICR7dD09bnVsbD92b2lkIDA6dC5tZXNzYWdlfWAsc3RhY2s6dD09bnVsbD92b2lkIDA6dC5zdGFja30sbWV0YTpjLHZpZDphLGVudklkOm8sLi4ucn07KGF3YWl0IHdkKERkKGAxYCxudWxsLGBlcnJvcnNgKSx7bWV0aG9kOmBQT1NUYCxoZWFkZXJzOnsieC11bC1lcnJvciI6d2luZG93LmJ0b2EoYHVzZXJsZWFwLSR7RGF0ZS5ub3coKX0tZXJyb3JgKX0sYm9keTpKU09OLnN0cmluZ2lmeShsKSxzaG91bGREcm9wT25SYXRlTGltaXQ6ITB9KSkub2t8fGNvbnNvbGUud2FybihgW1NwcmlnXSAoRVJSLTQ0NCkgRmFpbGVkIHRvIHJlcG9ydCBlcnJvciB0byBBUElgLHQpfWZ1bmN0aW9uIF9wKGU9e30pe3ZhciB0Oyh0PXdpbmRvdy5TcHJpZ0xvZ2dlckNhbGxiYWNrKT09bnVsbHx8dC5jYWxsKHdpbmRvdyxgSW5pdGlhbGl6aW5nIFNwcmlnYCk7bGV0IG49bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5nZXQoYHNwcmlnUHJldmlld0tleWApPz9gYDthc3luYyBmdW5jdGlvbiByKCl7dmFyIHQsbixyLGksYTtpZih3aW5kb3cuVXNlckxlYXAubG9hZGVkKXJldHVybjtpZigodD13aW5kb3cuU3ByaWdMb2dnZXJDYWxsYmFjayk9PW51bGx8fHQuY2FsbCh3aW5kb3csYExvYWRpbmcgU3ByaWdgKSx3aW5kb3cuVXNlckxlYXAucmVwb3J0RXJyb3I9Z3Asd2luZG93LlVzZXJMZWFwLmxvYWRlZD0hMCx3aW5kb3cuVXNlckxlYXAuX2NvbmZpZz1PYmplY3QuYXNzaWduKHt9LGUsd2luZG93LlVzZXJMZWFwLmNvbmZpZyksd2luZG93LlVzZXJMZWFwLmRlbGF5aW5nU3VydmV5PSExLHdpbmRvdy5Vc2VyTGVhcC5fY29uZmlnJiZ0eXBlb2Ygd2luZG93LlVzZXJMZWFwLl9jb25maWc9PWBvYmplY3RgKWZvcihsZXQgZSBpbiB3aW5kb3cuVXNlckxlYXAuX2NvbmZpZyl3aW5kb3cuVXNlckxlYXBbZV09d2luZG93LlVzZXJMZWFwLl9jb25maWdbZV07aWYod2luZG93LlNwcmlnLm91dHN0YW5kaW5nVHJhbnNhY3Rpb25MaW1pdCE9PXZvaWQgMCYmKGUub3V0c3RhbmRpbmdUcmFuc2FjdGlvbkxpbWl0PXdpbmRvdy5TcHJpZy5vdXRzdGFuZGluZ1RyYW5zYWN0aW9uTGltaXQpLCF3aW5kb3cuVXNlckxlYXAuZW52SWQpe2lmKCF3aW5kb3cuVXNlckxlYXAuYXBwSWQpdGhyb3cgRXJyb3IoYE1pc3NpbmcgRW52aXJvbm1lbnQgaWRgKTt3aW5kb3cuVXNlckxlYXAuZW52SWQ9d2luZG93LlVzZXJMZWFwLmFwcElkfXdpbmRvdy5Vc2VyTGVhcC5kZWJ1Z01vZGUmJmNvbnNvbGUuaW5mbyhgW0RFQlVHXSBTcHJpZyBkZWJ1ZyBtb2RlIGVuYWJsZWRgKTtsZXQgbz1scCgpLHM9d2luZG93LlVzZXJMZWFwLnNhbXBsZVJhdGUsYz1vLnNhbXBsZWQ7aWYocyl7aWYoYz09PW51bGwmJihjPU1hdGgucmFuZG9tKCk8cyxUZChgc2FtcGxlZGAsYykpLCFjKXJldHVybn1lbHNlIGMhPT1udWxsJiZUZChgc2FtcGxlZGAsbnVsbCk7d2luZG93LlVzZXJMZWFwLl9BUElfVVJMfHwod2luZG93LlVzZXJMZWFwLl9BUElfVVJMPWBodHRwczovL2FwaS5zcHJpZy5jb21gKTtsZXQgbD1bLi4ud2luZG93LlVzZXJMZWFwLl9xdWV1ZV07d2luZG93LlVzZXJMZWFwLl9xdWV1ZT1uZXcgeGYod2luZG93LlVzZXJMZWFwLFtdKSx3aW5kb3cuVXNlckxlYXAuX3F1ZXVlLnBhdXNlKCk7Zm9yKGxldCBlPTA7ZTxsLmxlbmd0aDtlKyspd2luZG93LlVzZXJMZWFwLl9xdWV1ZS5wdXNoKGxbZV0pO2xldCB1PW8udG9rZW47dT8od2luZG93LlVzZXJMZWFwLnRva2VuPXUsd2luZG93LlVzZXJMZWFwLnZpc2l0b3JJZD1vLnZpZD8/bnVsbCx3aW5kb3cuVXNlckxlYXAudXNlcklkPW8udWlkPz9udWxsLHdpbmRvdy5Vc2VyTGVhcC5wYXJ0bmVyQW5vbnltb3VzSWQ9by5haWQ/P251bGwpOnVwKCk7bGV0IGQ9QWQoX2Qod2luZG93LlVzZXJMZWFwKSk7KG49d2luZG93LlNwcmlnTG9nZ2VyQ2FsbGJhY2spPT1udWxsfHxuLmNhbGwod2luZG93LGBTcHJpZyBmZXRjaGluZyBjb25maWdgKTtsZXQgZj1hd2FpdCBhc3luYyBmdW5jdGlvbihlKXt2YXIgdCxuO2xldCByPV9kKHdpbmRvdy5Vc2VyTGVhcCk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihgc2VjdXJpdHlwb2xpY3l2aW9sYXRpb25gLGhkKTtsZXQgaT1hd2FpdCB5ZChEZChgMWAsW0NkXSxgY29uZmlnYCkse2hlYWRlcnM6cn0pO2lmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoYHNlY3VyaXR5cG9saWN5dmlvbGF0aW9uYCxoZCksIWkub2spcmV0dXJuKHQ9d2luZG93LlNwcmlnTG9nZ2VyQ2FsbGJhY2spPT1udWxsfHx0LmNhbGwod2luZG93LGBTcHJpZyBjb25maWcgZmV0Y2ggZmFpbGVkYCksaS5yZXBvcnRFcnJvciYmKGNvbnNvbGUud2FybihgW1NwcmlnXSAoRVJSLTQyMikgRmFpbGVkIHRvIGxvYWQgY29uZmlndXJhdGlvbmAsaS5lcnJvciksaS5lcnJvciYmd2luZG93LlVzZXJMZWFwLnJlcG9ydEVycm9yKGBhcHBseVJlbW90ZUNvbmZpZ2AsaS5lcnJvcikpLGdkKGBEaXNhYmxlZDogZmFpbGVkIHRvIGZldGNoIGNvbmZpZ3VyYXRpb25gKSxlO2xldCBhPWkuanNvbjtyZXR1cm4gYSE9bnVsbCYmYS5kaXNhYmxlZD8oKG49d2luZG93LlNwcmlnTG9nZ2VyQ2FsbGJhY2spPT1udWxsfHxuLmNhbGwod2luZG93LGBTcHJpZyBjb25maWcgZmV0Y2ggZGlzYWJsZWRgKSxnZChgRGlzYWJsZWQ6ICR7YS5kaXNhYmxlZH1gKSx7ZGlzYWJsZWQ6YS5kaXNhYmxlZH0pOk9iamVjdC5hc3NpZ24oe30sYSxlKX0oZSk7aWYoKHI9d2luZG93LlNwcmlnTG9nZ2VyQ2FsbGJhY2spPT1udWxsfHxyLmNhbGwod2luZG93LGBTcHJpZyBmZXRjaGVkIGNvbmZpZ2ApLFhmKHtpc1dlYjohZCxyZXBvcnRpbmdJbnRlcnZhbFNlY29uZHM6Zi5tZXRyaWNzUmVwb3J0aW5nRW5hYmxlZHx8Zi5tb2JpbGVNZXRyaWNzUmVwb3J0aW5nRW5hYmxlZD9mLm1ldHJpY3NSZXBvcnRpbmdJbnRlcnZhbFNlY29uZHM6MCx0aHJlc2hvbGRzOmYubWV0cmljVGhyZXNob2xkcyxwb3N0TWV0cmljczphc3luYyBlPT57dmFyIHQ7YXdhaXQgd2QoRGQoYDFgLFtDZF0sYG1ldHJpY3NgKSx7Ym9keTplLG1ldGhvZDpgUE9TVGAsaGVhZGVyczp7IngtdWwtcmVwbGF5LWVuYWJsZWQiOmAkeyEhKCh0PVkucmVwbGF5KSE9bnVsbCYmdC5pc1JlcGxheVJlY29yZGluZygpKX1gfSxzaG91bGREcm9wT25SYXRlTGltaXQ6ITB9KX19KSwhZCl7bGV0IGU9Zi5hbHdheXNPblJlcGxheT97dXNlckFnZW50OndpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LHN1cnZleUlkOmYuYWx3YXlzT25SZXBsYXkuc3VydmV5SWQscmVzcG9uc2VHcm91cFV1aWQ6Zi5hbHdheXNPblJlcGxheS5yZXNwb25zZUdyb3VwVXVpZCxzZGtWZXJzaW9uOmAyLjM1LjBgLG1heER1cmF0aW9uU2Vjb25kczpmLmFsd2F5c09uUmVwbGF5Lm1heER1cmF0aW9uU2Vjb25kc306dm9pZCAwO2F3YWl0KChpPVkucmVwbGF5KT09bnVsbD92b2lkIDA6aS5pbml0aWFsaXplUmVwbGF5KHttYXhSZXBsYXlEdXJhdGlvblNlY29uZHM6Zi5tYXhSZXBsYXlEdXJhdGlvblNlY29uZHMsbWF4SW5mbGlnaHRSZXF1ZXN0czp3aW5kb3cuVXNlckxlYXAubWF4SW5mbGlnaHRSZXBsYXlSZXF1ZXN0cz8/MixyZXBsYXlTZXR0aW5nczpmLnJlcGxheVNldHRpbmdzLGFwaVVybDp3aW5kb3cuVXNlckxlYXAuX0FQSV9VUkwsYWx3YXlzT25Db25maWc6ZX0pKSwkZj1mLnJlcGxheVNldHRpbmdzfWhwKGYpLGF3YWl0IG1wKGYpLHdpbmRvdy5Vc2VyTGVhcC5fcXVldWUudW5wYXVzZSgpLChhPXdpbmRvdy5TcHJpZ0xvZ2dlckNhbGxiYWNrKT09bnVsbHx8YS5jYWxsKHdpbmRvdyxgU2RrUmVhZHlgKSxxLmVtaXQoVy5TREtSZWFkeSx7bW9iaWxlTWV0cmljc1JlcG9ydGluZ0VuYWJsZWQ6ISFmLm1vYmlsZU1ldHJpY3NSZXBvcnRpbmdFbmFibGVkLG1ldHJpY3NSZXBvcnRpbmdJbnRlcnZhbDpmLm1ldHJpY3NSZXBvcnRpbmdJbnRlcnZhbFNlY29uZHN8fDAsbWV0cmljc1RocmVzaG9sZHM6Zi5tZXRyaWNUaHJlc2hvbGRzfHxbXSxtYXhNb2JpbGVSZXBsYXlEdXJhdGlvblNlY29uZHM6Zi5tYXhNb2JpbGVSZXBsYXlEdXJhdGlvblNlY29uZHMsbW9iaWxlUmVwbGF5U2V0dGluZ3M6Zi5tb2JpbGVSZXBsYXlTZXR0aW5nc30pLHEuZW1pdChXLlZpc2l0b3JJRFVwZGF0ZWQse3Zpc2l0b3JJZDp3aW5kb3cuVXNlckxlYXAudmlzaXRvcklkfSkscS5vbihXLlZpc2l0b3JJRFVwZGF0ZWQsKCk9Pntmb3IobGV0IGUgaW4gdHApZGVsZXRlIHRwW2VdfSl9d2luZG93LlVzZXJMZWFwLlVQREFURVM9UnUsd2luZG93LlVzZXJMZWFwKGBzZXRQcmV2aWV3S2V5YCxuKSxkb2N1bWVudC5yZWFkeVN0YXRlPT09YGNvbXBsZXRlYD9yKCk6d2luZG93LmF0dGFjaEV2ZW50P3dpbmRvdy5hdHRhY2hFdmVudChgb25sb2FkYCxyKTp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgbG9hZGAsKCk9PntyKCl9LCExKX12YXIgdnA9Y2xhc3N7Y29uc3RydWN0b3IoKXtzKHRoaXMsYFVQREFURVNgLFJ1KX1kaXNwbGF5U3VydmV5KGUpe3dpbmRvdy5TcHJpZyhgZGlzcGxheVN1cnZleWAsZSl9bXV0ZSgpe3dpbmRvdy5TcHJpZyhgbXV0ZWApfXVubXV0ZSgpe3dpbmRvdy5TcHJpZyhgdW5tdXRlYCl9ZGlzbWlzc0FjdGl2ZVN1cnZleSgpe3dpbmRvdy5TcHJpZyhgZGlzbWlzc0FjdGl2ZVN1cnZleWApfXNldEF0dHJpYnV0ZShlLHQpe3dpbmRvdy5TcHJpZyhgc2V0QXR0cmlidXRlYCxlLHQpfXNldEF0dHJpYnV0ZXMoZSl7d2luZG93LlNwcmlnKGBzZXRBdHRyaWJ1dGVzYCxlKX1pZGVudGlmeUFuZFNldEF0dHJpYnV0ZXMoZSl7d2luZG93LlNwcmlnKGBpZGVudGlmeUFuZFNldEF0dHJpYnV0ZXNgLGUpfXJlbW92ZUF0dHJpYnV0ZXMoZSl7d2luZG93LlNwcmlnKGByZW1vdmVBdHRyaWJ1dGVzYCxlKX1hZGRMaXN0ZW5lcihlLHQpe3dpbmRvdy5TcHJpZyhgYWRkTGlzdGVuZXJgLGUsdCl9cmVtb3ZlTGlzdGVuZXIoZSx0KXt3aW5kb3cuU3ByaWcoYHJlbW92ZUxpc3RlbmVyYCxlLHQpfXJlbW92ZUFsbExpc3RlbmVycygpe3dpbmRvdy5TcHJpZyhgcmVtb3ZlQWxsTGlzdGVuZXJzYCl9c2V0RW1haWwoZSl7d2luZG93LlNwcmlnKGBzZXRBdHRyaWJ1dGVgLGAhZW1haWxgLGUpfXNldFVzZXJJZChlKXt3aW5kb3cuU3ByaWcoYHNldFVzZXJJZGAsZSl9c2V0UGFydG5lckFub255bW91c0lkKGUpe3dpbmRvdy5TcHJpZyhgc2V0UGFydG5lckFub255bW91c0lkYCxlKX10cmFjayhlLHQ9e30sbj17fSl7d2luZG93LlNwcmlnKGB0cmFja2AsZSx0LG4pfWlkZW50aWZ5QW5kVHJhY2soZSl7d2luZG93LlNwcmlnKGBpZGVudGlmeUFuZFRyYWNrYCxlKX10cmFja1BhZ2VWaWV3KGUsdCxuKXt3aW5kb3cuU3ByaWcoYHRyYWNrUGFnZVZpZXdgLGUsdCxuKX1hcHBseVN0eWxlcyhlKXt3aW5kb3cuU3ByaWcoYGFwcGx5U3R5bGVzYCxlKX1zZXRXaW5kb3dEaW1lbnNpb25zKGUsdCl7d2luZG93LlNwcmlnKGBzZXRXaW5kb3dEaW1lbnNpb25zYCxlLHQpfWxvZ291dFVzZXIoKXt3aW5kb3cuU3ByaWcoYGxvZ291dFVzZXJgKX10ZWFyZG93bigpe3dpbmRvdy5TcHJpZyhgdGVhcmRvd25gKX1wYXVzZVJlcGxheVJlY29yZGluZygpe3dpbmRvdy5TcHJpZyhgcGF1c2VSZXBsYXlSZWNvcmRpbmdgKX1yZXN1bWVSZXBsYXlSZWNvcmRpbmcoKXt3aW5kb3cuU3ByaWcoYHJlc3VtZVJlcGxheVJlY29yZGluZ2ApfX0seXA9e2NvbmZpZ3VyZTplPT57aWYoIWUuZW52SWQmJiFlLmVudmlyb25tZW50SWQpdGhyb3cgRXJyb3IoYEluaXRpYWxpemF0aW9uIEVycm9yOiBTcHJpZyBjb25maWd1cmUgcmVxdWlyZXMgYW4gZW52aXJvbm1lbnRJZGApO2lmKGUuZW52SWR8fChlLmVudklkPWUuZW52aXJvbm1lbnRJZD8/YGApLGUuaW5zdGFsbGF0aW9uTWV0aG9kPWB3ZWItbnBtLWJ1bmRsZWRgLHdpbmRvdy5TcHJpZylyZXR1cm4gd2luZG93LlNwcmlnO3dpbmRvdy5TcHJpZz1mdW5jdGlvbigpe3dpbmRvdy5TcHJpZy5fcXVldWUucHVzaChhcmd1bWVudHMpfSxPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2cC5wcm90b3R5cGUpLm1hcChlPT57ZSE9PWBjb25zdHJ1Y3RvcmAmJih3aW5kb3cuU3ByaWdbZV09dnAucHJvdG90eXBlW2VdKX0pO2xldCB0PXdpbmRvdy5TcHJpZztyZXR1cm4gdC5hcHBJZD1lLmVudklkLHQuX3F1ZXVlPVtdLHdpbmRvdy5Vc2VyTGVhcD10LF9wKGUpLHdpbmRvdy5TcHJpZ319LGJwPShlPT4oZVtlLkRvbUNvbnRlbnRMb2FkZWQ9MF09YERvbUNvbnRlbnRMb2FkZWRgLGVbZS5Mb2FkPTFdPWBMb2FkYCxlW2UuRnVsbFNuYXBzaG90PTJdPWBGdWxsU25hcHNob3RgLGVbZS5JbmNyZW1lbnRhbFNuYXBzaG90PTNdPWBJbmNyZW1lbnRhbFNuYXBzaG90YCxlW2UuTWV0YT00XT1gTWV0YWAsZVtlLkN1c3RvbT01XT1gQ3VzdG9tYCxlW2UuUGx1Z2luPTZdPWBQbHVnaW5gLGUpKShicHx8e30pLHhwPShlPT4oZVtlLk11dGF0aW9uPTBdPWBNdXRhdGlvbmAsZVtlLk1vdXNlTW92ZT0xXT1gTW91c2VNb3ZlYCxlW2UuTW91c2VJbnRlcmFjdGlvbj0yXT1gTW91c2VJbnRlcmFjdGlvbmAsZVtlLlNjcm9sbD0zXT1gU2Nyb2xsYCxlW2UuVmlld3BvcnRSZXNpemU9NF09YFZpZXdwb3J0UmVzaXplYCxlW2UuSW5wdXQ9NV09YElucHV0YCxlW2UuVG91Y2hNb3ZlPTZdPWBUb3VjaE1vdmVgLGVbZS5NZWRpYUludGVyYWN0aW9uPTddPWBNZWRpYUludGVyYWN0aW9uYCxlW2UuU3R5bGVTaGVldFJ1bGU9OF09YFN0eWxlU2hlZXRSdWxlYCxlW2UuQ2FudmFzTXV0YXRpb249OV09YENhbnZhc011dGF0aW9uYCxlW2UuRm9udD0xMF09YEZvbnRgLGVbZS5Mb2c9MTFdPWBMb2dgLGVbZS5EcmFnPTEyXT1gRHJhZ2AsZVtlLlN0eWxlRGVjbGFyYXRpb249MTNdPWBTdHlsZURlY2xhcmF0aW9uYCxlW2UuU2VsZWN0aW9uPTE0XT1gU2VsZWN0aW9uYCxlW2UuQWRvcHRlZFN0eWxlU2hlZXQ9MTVdPWBBZG9wdGVkU3R5bGVTaGVldGAsZVtlLkN1c3RvbUVsZW1lbnQ9MTZdPWBDdXN0b21FbGVtZW50YCxlKSkoeHB8fHt9KSxTcD0oZSx0KT0+dC5zb21lKHQ9PmUgaW5zdGFuY2VvZiB0KSxDcCx3cCxUcD1uZXcgV2Vha01hcCxFcD1uZXcgV2Vha01hcCxEcD1uZXcgV2Vha01hcCxPcD17Z2V0KGUsdCxuKXtpZihlIGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24pe2lmKHQ9PT1gZG9uZWApcmV0dXJuIFRwLmdldChlKTtpZih0PT09YHN0b3JlYClyZXR1cm4gbi5vYmplY3RTdG9yZU5hbWVzWzFdP3ZvaWQgMDpuLm9iamVjdFN0b3JlKG4ub2JqZWN0U3RvcmVOYW1lc1swXSl9cmV0dXJuIE1wKGVbdF0pfSxzZXQ6KGUsdCxuKT0+KGVbdF09biwhMCksaGFzOihlLHQpPT5lIGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24mJih0PT09YGRvbmVgfHx0PT09YHN0b3JlYCl8fHQgaW4gZX07ZnVuY3Rpb24ga3AoZSl7T3A9ZShPcCl9ZnVuY3Rpb24gQXAoZSl7cmV0dXJuKHdwfHwod3A9W0lEQkN1cnNvci5wcm90b3R5cGUuYWR2YW5jZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWVQcmltYXJ5S2V5XSkpLmluY2x1ZGVzKGUpP2Z1bmN0aW9uKC4uLnQpe3JldHVybiBlLmFwcGx5KE5wKHRoaXMpLHQpLE1wKHRoaXMucmVxdWVzdCl9OmZ1bmN0aW9uKC4uLnQpe3JldHVybiBNcChlLmFwcGx5KE5wKHRoaXMpLHQpKX19ZnVuY3Rpb24ganAoZSl7cmV0dXJuIHR5cGVvZiBlPT1gZnVuY3Rpb25gP0FwKGUpOihlIGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24mJmZ1bmN0aW9uKGUpe2lmKFRwLmhhcyhlKSlyZXR1cm47bGV0IHQ9bmV3IFByb21pc2UoKHQsbik9PntsZXQgcj0oKT0+e24oZS5lcnJvcnx8bmV3IERPTUV4Y2VwdGlvbihgQWJvcnRFcnJvcmAsYEFib3J0RXJyb3JgKSl9O2Uub25jb21wbGV0ZT0oKT0+e3QoKX0sZS5vbmVycm9yPXIsZS5vbmFib3J0PXJ9KTtUcC5zZXQoZSx0KX0oZSksU3AoZSxDcHx8KENwPVtJREJEYXRhYmFzZSxJREJPYmplY3RTdG9yZSxJREJJbmRleCxJREJDdXJzb3IsSURCVHJhbnNhY3Rpb25dKSk/bmV3IFByb3h5KGUsT3ApOmUpfWZ1bmN0aW9uIE1wKGUpe2lmKGUgaW5zdGFuY2VvZiBJREJSZXF1ZXN0KXJldHVybiBmdW5jdGlvbihlKXtsZXQgdD1uZXcgUHJvbWlzZSgodCxuKT0+e2Uub25zdWNjZXNzPSgpPT57dChNcChlLnJlc3VsdCkpfSxlLm9uZXJyb3I9KCk9PntuKGUuZXJyb3IpfX0pO3JldHVybiBEcC5zZXQodCxlKSx0fShlKTtpZihFcC5oYXMoZSkpcmV0dXJuIEVwLmdldChlKTtsZXQgdD1qcChlKTtyZXR1cm4gdCE9PWUmJihFcC5zZXQoZSx0KSxEcC5zZXQodCxlKSksdH12YXIgTnA9ZT0+RHAuZ2V0KGUpO2Z1bmN0aW9uIFBwKGUse2Jsb2NrZWQ6dH09e30pe2xldCBuPWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShlKTtyZXR1cm4gdCYmKG4ub25ibG9ja2VkPWU9PnQoZS5vbGRWZXJzaW9uLGUpKSxNcChuKS50aGVuKCgpPT57fSl9dmFyIEZwPVtgZ2V0YCxgZ2V0S2V5YCxgZ2V0QWxsYCxgZ2V0QWxsS2V5c2AsYGNvdW50YF0sSXA9W2BwdXRgLGBhZGRgLGBkZWxldGVgLGBjbGVhcmBdLExwPW5ldyBNYXA7ZnVuY3Rpb24gUnAoZSx0KXtpZighKGUgaW5zdGFuY2VvZiBJREJEYXRhYmFzZSl8fHQgaW4gZXx8dHlwZW9mIHQhPWBzdHJpbmdgKXJldHVybjtpZihMcC5nZXQodCkpcmV0dXJuIExwLmdldCh0KTtsZXQgbj10LnJlcGxhY2UoL0Zyb21JbmRleCQvLGBgKSxyPXQhPT1uLGk9SXAuaW5jbHVkZXMobik7aWYoIShuIGluKHI/SURCSW5kZXg6SURCT2JqZWN0U3RvcmUpLnByb3RvdHlwZSl8fCFpJiYhRnAuaW5jbHVkZXMobikpcmV0dXJuO2xldCBhPWFzeW5jIGZ1bmN0aW9uKGUsLi4udCl7bGV0IGE9dGhpcy50cmFuc2FjdGlvbihlLGk/YHJlYWR3cml0ZWA6YHJlYWRvbmx5YCksbz1hLnN0b3JlO3JldHVybiByJiYobz1vLmluZGV4KHQuc2hpZnQoKSkpLChhd2FpdCBQcm9taXNlLmFsbChbb1tuXSguLi50KSxpJiZhLmRvbmVdKSlbMF19O3JldHVybiBMcC5zZXQodCxhKSxhfWtwKGU9Pih7Li4uZSxnZXQ6KHQsbixyKT0+UnAodCxuKXx8ZS5nZXQodCxuLHIpLGhhczoodCxuKT0+ISFScCh0LG4pfHxlLmhhcyh0LG4pfSkpO3ZhciB6cD1bYGNvbnRpbnVlYCxgY29udGludWVQcmltYXJ5S2V5YCxgYWR2YW5jZWBdLEJwPXt9LFZwPW5ldyBXZWFrTWFwLEhwPW5ldyBXZWFrTWFwLFVwPXtnZXQoZSx0KXtpZighenAuaW5jbHVkZXModCkpcmV0dXJuIGVbdF07bGV0IG49QnBbdF07cmV0dXJuIG58fChuPUJwW3RdPWZ1bmN0aW9uKC4uLmUpe1ZwLnNldCh0aGlzLEhwLmdldCh0aGlzKVt0XSguLi5lKSl9KSxufX07YXN5bmMgZnVuY3Rpb24qV3AoLi4uZSl7bGV0IHQ9dGhpcztpZih0IGluc3RhbmNlb2YgSURCQ3Vyc29yfHwodD1hd2FpdCB0Lm9wZW5DdXJzb3IoLi4uZSkpLCF0KXJldHVybjtsZXQgbj1uZXcgUHJveHkodCxVcCk7Zm9yKEhwLnNldChuLHQpLERwLnNldChuLE5wKHQpKTt0Oyl5aWVsZCBuLHQ9YXdhaXQoVnAuZ2V0KG4pfHx0LmNvbnRpbnVlKCkpLFZwLmRlbGV0ZShuKX1mdW5jdGlvbiBHcChlLHQpe3JldHVybiB0PT09U3ltYm9sLmFzeW5jSXRlcmF0b3ImJlNwKGUsW0lEQkluZGV4LElEQk9iamVjdFN0b3JlLElEQkN1cnNvcl0pfHx0PT09YGl0ZXJhdGVgJiZTcChlLFtJREJJbmRleCxJREJPYmplY3RTdG9yZV0pfWtwKGU9Pih7Li4uZSxnZXQ6KHQsbixyKT0+R3AodCxuKT9XcDplLmdldCh0LG4sciksaGFzOih0LG4pPT5HcCh0LG4pfHxlLmhhcyh0LG4pfSkpO3ZhciBLcD1gc3ByaWdSZXBsYXlJZnJhbWVMb2FkZWRgLHFwPWBzcHJpZ1JlcGxheUlmcmFtZVNldHRpbmdzYCxKcD1gc3ByaWdSZXBsYXlJZnJhbWVUYWtlRnVsbFNuYXBzaG90YCxZcD1gc3ByaWdSZXBsYXlUZWFyZG93bmAsWHA9W10sWnA9bmV3IGNsYXNze2NvbnN0cnVjdG9yKGUpe3ModGhpcyxgYXdhaXRpbmdSZXNvbHZlcnNgLFtdKSxzKHRoaXMsYGFjdGl2ZUNvdW50YCwwKSx0aGlzLmNhcGFjaXR5PWV9YXN5bmMgYWNxdWlyZSgpe2lmKCEodGhpcy5hY3RpdmVDb3VudDx0aGlzLmNhcGFjaXR5KSlyZXR1cm4gbmV3IFByb21pc2UoZT0+e3RoaXMuYXdhaXRpbmdSZXNvbHZlcnMucHVzaChlKX0pO3RoaXMuYWN0aXZlQ291bnQrK31yZWxlYXNlKCl7bGV0IGU9dGhpcy5hd2FpdGluZ1Jlc29sdmVycy5zaGlmdCgpO2UmJnRoaXMuYWN0aXZlQ291bnQ8PXRoaXMuY2FwYWNpdHk/ZSgpOnRoaXMuYWN0aXZlQ291bnQtLX1hc3luYyBleGVjdXRlKGUpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5hY3F1aXJlKCksYXdhaXQgZSgpfWZpbmFsbHl7dGhpcy5yZWxlYXNlKCl9fXNldExpbWl0KGUpe3RoaXMuY2FwYWNpdHk9ZX19KDIpLFFwPWFzeW5jKHthcGlVcmw6ZSxzdXJ2ZXlJZDp0LHVwbG9hZElkOm4sZXRhZ3M6cixoZWFkZXJzOmkscmVzcG9uc2VHcm91cFV1aWQ6YSxyZXBsYXlEdXJhdGlvbjpvLGV2ZW50RGlnZXN0OnN9LGM9ITEpPT57dmFyIGw7aWYoIWMmJiFuJiYhcilyZXR1cm4gdm9pZCBLLmVycm9yKGBVcGxvYWRFcnJgLHtpc01vYmlsZTpjLHVwbG9hZElkOm4sZXRhZ3M6cn0pO0suaW5mbyhgTWFya1VwbG9hZENvbXBsZXRlYCx7c3VydmV5SWQ6dH0pO2xldCB1PWF3YWl0IHlkKGAke2V9L3Nkay8xL2NvbXBsZXRlU2Vzc2lvblJlcGxheWAse21ldGhvZDpgUE9TVGAsYm9keTpKU09OLnN0cmluZ2lmeSh7ZXRhZ3M6cix1cGxvYWRJZDpuLHJlc3BvbnNlR3JvdXBVdWlkOmEsc3VydmV5SWQ6dCxyZXBsYXlEdXJhdGlvbjpvLGV2ZW50RGlnZXN0OnMsdXNlckFnZW50OihsPXdpbmRvdz09bnVsbD92b2lkIDA6d2luZG93Lm5hdmlnYXRvcik9PW51bGw/dm9pZCAwOmwudXNlckFnZW50fSksaGVhZGVyczppLHNob3VsZFJldHJ5UmVxdWVzdDohMH0pO3JldHVybiBLLmluZm8oYE1hcmtVcGxvYWREb25lYCx7c3VydmV5SWQ6dH0pLHV9LCRwPWU9PntpZihlIGluc3RhbmNlb2YgQXR0cilyZXR1cm4gbnVsbDtsZXQgdD0xO2ZvcihsZXQgbj1lLnByZXZpb3VzU2libGluZztuO249bi5wcmV2aW91c1NpYmxpbmcpbi5ub2RlTmFtZT09PWUubm9kZU5hbWUmJisrdDtyZXR1cm4gdH0sZW09ZT0+e2lmKGU9PT1udWxsKXJldHVybmBgO2xldCB0PVtdO2lmKGUgaW5zdGFuY2VvZiBEb2N1bWVudClyZXR1cm5gL2A7Zm9yKGxldCBuPWU7biYmIShuIGluc3RhbmNlb2YgRG9jdW1lbnQpJiZuIT09bnVsbDtuPW4gaW5zdGFuY2VvZiBBdHRyP24ub3duZXJFbGVtZW50Om4ucGFyZW50RWxlbWVudCl7bGV0IGU9dFt0Lmxlbmd0aF09e25hbWU6dm9pZCAwLHBvc2l0aW9uOm51bGx9O3N3aXRjaChuLm5vZGVUeXBlKXtjYXNlIE5vZGUuVEVYVF9OT0RFOmUubmFtZT1gdGV4dCgpYDticmVhaztjYXNlIE5vZGUuQVRUUklCVVRFX05PREU6ZS5uYW1lPWBAYCtuLm5vZGVOYW1lO2JyZWFrO2Nhc2UgTm9kZS5QUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6ZS5uYW1lPWBwcm9jZXNzaW5nLWluc3RydWN0aW9uKClgO2JyZWFrO2Nhc2UgTm9kZS5DT01NRU5UX05PREU6ZS5uYW1lPWBjb21tZW50KClgO2JyZWFrO2Nhc2UgTm9kZS5FTEVNRU5UX05PREU6ZS5uYW1lPW4ubm9kZU5hbWV9ZS5wb3NpdGlvbj0kcChuKX1yZXR1cm5gL2ArdC5yZXZlcnNlKCkubWFwKGU9PmUucG9zaXRpb249PT1udWxsP2AvJHtlLm5hbWV9YDpgLyR7ZS5uYW1lfVske2UucG9zaXRpb259XWApLmpvaW4oYGApfSx0bT1lPT5lJiZlLnRyaW0oKS5zdWJzdHJpbmcoMCw1MDApLnJlcGxhY2UoL1xzXHMrL2csYCBgKS5yZXBsYWNlKC9ccj9cbnxcci9nLGAgYCkuc3Vic3RyaW5nKDAsMjUwKSxubT17Y2FwdHVyZTohMCxwYXNzaXZlOiEwfSxybT1bYGFgLGBidXR0b25gLGBpbnB1dGAsYG9wdGlvbmAsYGxpYCxgbGlua2BdLGltPVtgRXNjYXBlYCxgRW50ZXJgLGBCYWNrc3BhY2VgLGBGNWAsYFRhYmBdLGFtPSExLG9tPW51bGwsc209bnVsbCxjbT1lPT57dmFyIHQ7aWYoKCh0PWUudGFnTmFtZSk9PW51bGw/dm9pZCAwOnQudG9Mb3dlckNhc2UoKSk9PT1gaHRtbGApcmV0dXJue2VsZW1lbnQ6YGh0bWxgfTtsZXQgbj17fTtyZXR1cm4gbi5lbGVtZW50PShlPT57aWYoIWUudGFnTmFtZSlyZXR1cm5gTm8gdGFnTmFtZWA7bGV0IHQ9ZS5nZXRBdHRyaWJ1dGUoYHR5cGVgKTtyZXR1cm4gdD9gJHt0fSAke2UudGFnTmFtZS50b0xvd2VyQ2FzZSgpfWA6ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCl9KShlKSxufSxsbT1lPT57dmFyIHQ7aWYoIWUpcmV0dXJue307bGV0IG49ey4uLmNtKGUpfSxyPWUucGFyZW50RWxlbWVudDtpZihyJiZybS5pbmNsdWRlcygodD1yLnRhZ05hbWUpPT1udWxsP3ZvaWQgMDp0LnRvTG93ZXJDYXNlKCkpKXtsZXQgZT1jbShyKTtPYmplY3QuYXNzaWduKG4sZSl9cmV0dXJuIG59LHVtPShlLHQpPT57dmFyIG4scjtsZXQgaT10LnRhcmdldDt2YXIgYTt0LnRhcmdldD09PSgobj13aW5kb3cuZG9jdW1lbnQpPT1udWxsP3ZvaWQgMDpuLmJvZHkpJiZ3aW5kb3cuU3ByaWcucG9pbnRlckRvd25UYXJnZXQmJihpPXdpbmRvdy5TcHJpZy5wb2ludGVyRG93blRhcmdldCksYT17eDp0LngseTp0LnksdHlwZTplLGVsZW1lbnRBdHRyaWJ1dGVzOmxtKGkpLHdpbmRvd0hlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHQsd2luZG93V2lkdGg6d2luZG93LmlubmVyV2lkdGgsLi4uaSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50P3tyZWN0Omk9PW51bGw/dm9pZCAwOmkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkseFBhdGg6ZW0oaSl9Ont9fSwocj1hPT1udWxsP3ZvaWQgMDphLmVsZW1lbnRBdHRyaWJ1dGVzKSE9bnVsbCYmci50ZXh0JiYoYS5lbGVtZW50QXR0cmlidXRlcy50ZXh0PXRtKGEuZWxlbWVudEF0dHJpYnV0ZXMudGV4dCkpLG9tPT1udWxsfHxvbShgU3ByaWdfQ2xpY2tgLGEpfSxkbT1lPT57dmFyIHQ7aW0uaW5jbHVkZXMoZS5rZXkpJiYodD17a2V5OmUua2V5fSxvbT09bnVsbHx8b20oYFNwcmlnX0tleXN0cm9rZWAsdCkpfSxmbT0oKT0+e3ZhciBlO3dpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKGBuYXZpZ2F0aW9uYCkubWFwKGU9PmUudHlwZSkuaW5jbHVkZXMoYHJlbG9hZGApJiYoZT17dXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLGN1cnJlbnRQYWdlVGl0bGU6ZG9jdW1lbnQudGl0bGV9LG9tPT1udWxsfHxvbShgU3ByaWdfUmVmcmVzaGAsZSkpfSxwbT0oKT0+e3ZhciBlO3dpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKGBuYXZpZ2F0aW9uYCkubWFwKGU9PmUudHlwZSkuaW5jbHVkZXMoYGJhY2tfZm9yd2FyZGApJiYoKGU9e2N1clVybDp3aW5kb3cubG9jYXRpb24uaHJlZixmcm9tVXJsOmRvY3VtZW50LnJlZmVycmVyLGN1cnJlbnRQYWdlVGl0bGU6ZG9jdW1lbnQudGl0bGV9KS5jdXJyZW50UGFnZVRpdGxlJiYoZS5jdXJyZW50UGFnZVRpdGxlPXRtKGUuY3VycmVudFBhZ2VUaXRsZSkpLG9tPT1udWxsfHxvbShgU3ByaWdfQmFja0ZvcndhcmRgLGUpKX0sbW09KChlLHQpPT57bGV0IG47cmV0dXJuIHI9PntjbGVhclRpbWVvdXQobiksbj13aW5kb3cuc2V0VGltZW91dCgoKT0+ZShyKSx0KX19KShlPT57aWYoIShlLnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fHxlLnRhcmdldCBpbnN0YW5jZW9mIERvY3VtZW50KSlyZXR1cm47bGV0IHQ9ZS50YXJnZXQ7YHNjcm9sbFRvcGBpbiB0fHwodD10LmRvY3VtZW50RWxlbWVudCksc209PW51bGx8fHNtKHt4UGF0aDplbSh0KSx4OnQuc2Nyb2xsTGVmdCx5OnQuc2Nyb2xsVG9wLGVsZW1lbnRBdHRyaWJ1dGVzOnt0YXJnZXRTY3JvbGxXaWR0aDp0LnNjcm9sbFdpZHRoLHRhcmdldENsaWVudFdpZHRoOnQuY2xpZW50V2lkdGgsdGFyZ2V0U2Nyb2xsSGVpZ2h0OnQuc2Nyb2xsSGVpZ2h0LHRhcmdldENsaWVudEhlaWdodDp0LmNsaWVudEhlaWdodH19KX0sNzUwKSxobT0oZ209YGxlZnRfY2xpY2tgLGU9PnVtKGdtLGUpKSxnbSxfbT1lPT57ZS5idXR0b249PT0yJiZ1bShgcmlnaHRfY2xpY2tgLGUpfSx2bT1lPT57d2luZG93LlNwcmlnJiYod2luZG93LlNwcmlnLnBvaW50ZXJEb3duVGFyZ2V0PWUudGFyZ2V0KX0sWj17aXNSZWNvcmRpbmc6ITEsc2Nyb2xsRXZlbnRVdWlkczp7fSxzdG9wUmVjb3JkaW5nOigpPT57fX0seW09KCk9PndpbmRvdy5pbmRleGVkREImJndpbmRvdy5JREJLZXlSYW5nZSYmd2luZG93LkNvbXByZXNzaW9uU3RyZWFtLFE9KCgpPT57bGV0IGU9Si5nZXRJdGVtKGBzcHJpZy5zZXNzaW9uSWRgKTtpZihlKXJldHVybiBLLmluZm8oYFNlc3Npb25JREZvdW5kYCx7c2F2ZWRTZXNzaW9uSWQ6ZX0pLEoucmVtb3ZlSXRlbShgc3ByaWcuc2Vzc2lvbklkYCksZTtsZXQgdD1VdSgpO3JldHVybiBLLmluZm8oYEdlbmVyYXRlZFNlc3Npb25JRGAse3V1aWQ6dH0pLHR9KSgpLGJtPSgpPT57Si5zZXRJdGVtKGBzcHJpZy5kaXNhYmxlUmVwbGF5UmVjb3JkaW5nYCxgZGlzYWJsZWRgKX0seG09KCk9PiEhSi5nZXRJdGVtKGBzcHJpZy5kaXNhYmxlUmVwbGF5UmVjb3JkaW5nYCksU209KCk9PiEhSi5nZXRJdGVtKGBzcHJpZy5pc1JlcGxheVBhdXNlZGApO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKGBiZWZvcmV1bmxvYWRgLCgpPT57Sy5pbmZvKGBCZWZvcmVVbmxvYWRgLHtzZXNzaW9uSWQ6UX0pLEouc2V0SXRlbShgc3ByaWcuc2Vzc2lvbklkYCxRKX0pO3ZhciBDbT0oZSx0KT0+e3ZhciBuLHI7aWYoIXhtKCkmJlouaXNSZWNvcmRpbmcmJiFTbSgpKXRyeXsocj0obj13aW5kb3cucnJ3ZWJSZWNvcmQpPT1udWxsP3ZvaWQgMDpuLmFkZEN1c3RvbUV2ZW50KT09bnVsbHx8ci5jYWxsKG4sZSx0KX1jYXRjaChlKXtPbShgRXJyb3IgcmVjb3JkaW5nIGN1c3RvbSBldmVudGAsZSl9fSx3bT1hc3luYyBlPT57bGV0e3g6dCx4UGF0aDpuLHk6cn09ZSxpPVouc2Nyb2xsRXZlbnRVdWlkc1tuXTtpZihpKXJldHVybiBrbShhc3luYygpPT57dmFyIG4sYSxvLHM7bGV0IGM9YXdhaXQgJC5vcGVuREIoKSxsPWF3YWl0IGMuZ2V0KGBldmVudHNgLGkpO2lmKGwhPW51bGwmJmwuZXZlbnQpe2xldCBpPUpTT04ucGFyc2UobC5ldmVudCksdT10PigoYT0obj1pLmRhdGEpPT1udWxsP3ZvaWQgMDpuLnBheWxvYWQpPT1udWxsP3ZvaWQgMDphLngpLGQ9cj4oKHM9KG89aS5kYXRhKT09bnVsbD92b2lkIDA6by5wYXlsb2FkKT09bnVsbD92b2lkIDA6cy55KTtpZighdSYmIWQpcmV0dXJuIG51bGw7dSYmKGkuZGF0YS5wYXlsb2FkLng9dCksZCYmKGkuZGF0YS5wYXlsb2FkLnk9ciksaS5kYXRhLnBheWxvYWQuZWxlbWVudEF0dHJpYnV0ZXM9ZS5lbGVtZW50QXR0cmlidXRlcyxsLmV2ZW50PUpTT04uc3RyaW5naWZ5KGkpLGF3YWl0IGMucHV0KGBldmVudHNgLGwpfWVsc2UgQ20oYFNwcmlnX1Njcm9sbGAsZSl9LGBFcnJvciB1cGRhdGluZyBzY3JvbGwgZXZlbnRgKTtDbShgU3ByaWdfU2Nyb2xsYCxlKX0sVG09KCk9PntaLnN0b3BSZWNvcmRpbmcmJihaLnN0b3BSZWNvcmRpbmcoKSxaLnN0b3BSZWNvcmRpbmc9dm9pZCAwKSxaLmlzUmVjb3JkaW5nPSExLFtgY2xlYW51cEludGVydmFsYCxgaW5hY3Rpdml0eUludGVydmFsYCxgcGVuZGluZ0NoZWNrSW50ZXJ2YWxgXS5mb3JFYWNoKGU9PntaW2VdJiYoY2xlYXJJbnRlcnZhbChaW2VdKSxaW2VdPXZvaWQgMCl9KSxhbSYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGBjbGlja2AsaG0sbm0pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGBwb2ludGVyZG93bmAsdm0sbm0pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGBtb3VzZWRvd25gLF9tLG5tKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihga2V5ZG93bmAsZG0sbm0pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGBzY3JvbGxgLG1tLG5tKSxhbT0hMSksWHAuZm9yRWFjaChlPT57dmFyIHQ7KHQ9ZS5zb3VyY2UpPT1udWxsfHx0LnBvc3RNZXNzYWdlKHt0eXBlOllwfSx7dGFyZ2V0T3JpZ2luOmUub3JpZ2lufSl9KX0sRW09W2BkaWQgbm90IGFsbG93IG11dGF0aW9uc2AsYGNhbGxlZCBpbiBhbiBpbnZhbGlkIHNlY3VyaXR5IGNvbnRleHRgXSxEbT0oZSx0LHtyZXBvcnRFcnJvcjpuPSEwLGV4dHJhSW5mbzpyPXt9fSk9PntpZigheG0oKSYmdCBpbnN0YW5jZW9mIEVycm9yKXtpZihibSgpLHQubmFtZT09PWBWZXJzaW9uRXJyb3JgKXJldHVybiBLLmVycm9yKGBWZXJzaW9uRXJyYCx7bWVzc2FnZTplfSksdm9pZCAkLmRlbGV0ZURCKCk7KGU9PntpZighZSlyZXR1cm4hMDtmb3IobGV0IHQgb2YgRW0paWYoZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHQpKXJldHVybiExO3JldHVybiEwfSkodD09bnVsbD92b2lkIDA6dC5tZXNzYWdlKSYmKG4mJndpbmRvdy5Vc2VyTGVhcC5yZXBvcnRFcnJvcihlLHQsciksJC5jbGVhckFsbCgpKX19LE9tPShlLHQse3JlcG9ydEVycm9yOm59PXtyZXBvcnRFcnJvcjohMH0pPT57VG0oKSxLLmVycm9yKGBSZXBsYXlFcnJgLHtjb2RlOnQuY29kZSxuYW1lOnQubmFtZX0pLERtKGUsdCx7cmVwb3J0RXJyb3I6bn0pfSxrbT1hc3luYyhlLHQpPT57dHJ5e3JldHVybiBhd2FpdCBlKCl9Y2F0Y2goZSl7T20odCxlKX19LEFtPSgpPT57Wi5pc1JlY29yZGluZyYmKGttKCgpPT57dmFyIGUsdDtyZXR1cm4odD0oZT13aW5kb3cucnJ3ZWJSZWNvcmQpPT1udWxsP3ZvaWQgMDplLnRha2VGdWxsU25hcHNob3QpPT1udWxsP3ZvaWQgMDp0LmNhbGwoZSwhMCl9LGBFcnJvciByZWNvcmRpbmcgZnVsbCBzbmFwc2hvdGApLFhwLmZvckVhY2goZT0+e3ZhciB0Oyh0PWUuc291cmNlKT09bnVsbHx8dC5wb3N0TWVzc2FnZSh7dHlwZTpKcH0se3RhcmdldE9yaWdpbjplLm9yaWdpbn0pfSkpfSxqbT0wOyhhc3luYygpPT55bSgpJiZQcm9taXNlLmFsbFNldHRsZWQoW1BwKGByZXBsYXlTdG9yYWdlYCksUHAoYHNwcmlnLnJlcGxheWApXSkpKCk7dmFyICQ9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7cyh0aGlzLGB3cmFwVHJhbnNhY3Rpb25XaXRoQ291bnRlcmAsZT0+e3ZhciB0LG47bGV0IHI9KG49KHQ9d2luZG93LlNwcmlnKT09bnVsbD92b2lkIDA6dC5fY29uZmlnKT09bnVsbD92b2lkIDA6bi5vdXRzdGFuZGluZ1RyYW5zYWN0aW9uTGltaXQsaT1yPT09dm9pZCAwPzEwMDpyO2lmKGkmJmptPmkpe2xldCBlPWBUb28gbWFueSBvdXRzdGFuZGluZyB0cmFuc2FjdGlvbnNgO09tKGUsRXJyb3IoZSkse3JlcG9ydEVycm9yOiExfSl9am0rKyxlLmRvbmUuZmluYWxseSgoKT0+e2ptLS19KX0pLHModGhpcyxgZ2V0VHJhbnNhY3Rpb25gLGFzeW5jIGU9PntsZXQgdD0oYXdhaXQgdGhpcy5vcGVuREIoKSkudHJhbnNhY3Rpb24oZSxgcmVhZHdyaXRlYCk7cmV0dXJuIHRoaXMud3JhcFRyYW5zYWN0aW9uV2l0aENvdW50ZXIodCksdH0pfW9wZW5EQigpe3JldHVybiBmdW5jdGlvbihlLHQse2Jsb2NrZWQ6bix1cGdyYWRlOnIsYmxvY2tpbmc6aSx0ZXJtaW5hdGVkOmF9PXt9KXtsZXQgbz1pbmRleGVkREIub3BlbihlLHQpLHM9TXAobyk7cmV0dXJuIHImJihvLm9udXBncmFkZW5lZWRlZD1lPT57cihNcChvLnJlc3VsdCksZS5vbGRWZXJzaW9uLGUubmV3VmVyc2lvbixNcChvLnRyYW5zYWN0aW9uKSxlKX0pLG4mJihvLm9uYmxvY2tlZD1lPT5uKGUub2xkVmVyc2lvbixlLm5ld1ZlcnNpb24sZSkpLHMudGhlbihlPT57YSYmKGUub25jbG9zZT0oKT0+YSgpKSxpJiYoZS5vbnZlcnNpb25jaGFuZ2U9ZT0+aShlLm9sZFZlcnNpb24sZS5uZXdWZXJzaW9uLGUpKX0pLmNhdGNoKCgpPT57fSksc30oYHNwcmlnUmVwbGF5YCwxLHt1cGdyYWRlOihlLHQsbik9PntpZihuPT09MCYmSi5zZXRJdGVtKGBzcHJpZy5wZW5kaW5nQ291bnRgLGAwYCksIWUub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhgZXZlbnRzYCkpe2xldCB0PWUuY3JlYXRlT2JqZWN0U3RvcmUoYGV2ZW50c2Ase2tleVBhdGg6YHV1aWRgfSk7dC5jcmVhdGVJbmRleChgc2Vzc2lvbklkYCxgc2Vzc2lvbklkYCksdC5jcmVhdGVJbmRleChgdGltZXN0YW1wYCxgdGltZXN0YW1wYCksdC5jcmVhdGVJbmRleChgW3Nlc3Npb25JZCt0aW1lc3RhbXBdYCxbYHNlc3Npb25JZGAsYHRpbWVzdGFtcGBdKX1pZighZS5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKGBjaHVua1VwbG9hZHNgKSl7bGV0IHQ9ZS5jcmVhdGVPYmplY3RTdG9yZShgY2h1bmtVcGxvYWRzYCx7a2V5UGF0aDpgdXVpZGB9KTt0LmNyZWF0ZUluZGV4KGBzZXNzaW9uSWRgLGBzZXNzaW9uSWRgKSx0LmNyZWF0ZUluZGV4KGB0aW1lc3RhbXBgLGB0aW1lc3RhbXBgKSx0LmNyZWF0ZUluZGV4KGBbc2Vzc2lvbklkK3N0YXR1c11gLFtgc2Vzc2lvbklkYCxgc3RhdHVzYF0pLHQuY3JlYXRlSW5kZXgoYFt1cGxvYWRJZCtzdGF0dXNdYCxbYHVwbG9hZElkYCxgc3RhdHVzYF0pLHQuY3JlYXRlSW5kZXgoYFtzZXNzaW9uSWQrc3RhdHVzK3VwbG9hZElkXWAsW2BzZXNzaW9uSWRgLGBzdGF0dXNgLGB1cGxvYWRJZGBdKX1pZighZS5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKGBwZW5kaW5nQ2FwdHVyZXNgKSl7bGV0IHQ9ZS5jcmVhdGVPYmplY3RTdG9yZShgcGVuZGluZ0NhcHR1cmVzYCx7a2V5UGF0aDpgdXVpZGB9KTt0LmNyZWF0ZUluZGV4KGBzZXNzaW9uSWRgLGBzZXNzaW9uSWRgKSx0LmNyZWF0ZUluZGV4KGB0aW1lc3RhbXBgLGB0aW1lc3RhbXBgKSx0LmNyZWF0ZUluZGV4KGBbc2Vzc2lvbklkK3RhcmdldFRpbWVzdGFtcF1gLFtgc2Vzc2lvbklkYCxgdGFyZ2V0VGltZXN0YW1wYF0pfX19KX1hc3luYyBkZWxldGVEQigpe3RyeXthd2FpdCBQcChgc3ByaWdSZXBsYXlgKX1jYXRjaHt9fWFzeW5jIGJ1bGtBZGQoZSx0KXtsZXQgbj1hd2FpdCB0aGlzLmdldFRyYW5zYWN0aW9uKGUpO3JldHVybiBQcm9taXNlLmFsbChbLi4udC5tYXAoZT0+bi5zdG9yZS5hZGQoZSkpLG4uZG9uZV0pfWFzeW5jIGNsZWFyQWxsKCl7bGV0IGU9KGF3YWl0IHRoaXMub3BlbkRCKCkpLnRyYW5zYWN0aW9uKFtgZXZlbnRzYCxgY2h1bmtVcGxvYWRzYCxgcGVuZGluZ0NhcHR1cmVzYF0sYHJlYWR3cml0ZWApO3JldHVybiB0aGlzLndyYXBUcmFuc2FjdGlvbldpdGhDb3VudGVyKGUpLFByb21pc2UuYWxsKFtlLm9iamVjdFN0b3JlKGBldmVudHNgKS5jbGVhcigpLGUub2JqZWN0U3RvcmUoYGNodW5rVXBsb2Fkc2ApLmNsZWFyKCksZS5vYmplY3RTdG9yZShgcGVuZGluZ0NhcHR1cmVzYCkuY2xlYXIoKV0pfWFzeW5jIGRlbGV0ZUJ5U2Vzc2lvbklkKGUsdCl7bGV0IG49SURCS2V5UmFuZ2Uub25seSh0KSxyPWF3YWl0IHRoaXMuZ2V0VHJhbnNhY3Rpb24oZSksaT1yLnN0b3JlLmluZGV4KGBzZXNzaW9uSWRgKTtmb3IgYXdhaXQobGV0IGUgb2YgaS5pdGVyYXRlKG4pKWF3YWl0IGUuZGVsZXRlKCk7YXdhaXQgci5kb25lfWFzeW5jIHVwZGF0ZVBhcnRpYWwoZSx0LG4pe2xldCByPWF3YWl0IHRoaXMuZ2V0VHJhbnNhY3Rpb24oZSksaT1hd2FpdCByLnN0b3JlLmdldCh0KTtpJiZhd2FpdCByLnN0b3JlLnB1dCh7Li4uaSwuLi5ufSksYXdhaXQgci5kb25lfWFzeW5jIGRlbGV0ZVJvd3NCZWZvcmUoZSx0LG49KCk9PiEwKXtsZXQgcj1JREJLZXlSYW5nZS51cHBlckJvdW5kKHQsITApLGk9YXdhaXQgdGhpcy5nZXRUcmFuc2FjdGlvbihlKSxhPWkuc3RvcmUuaW5kZXgoYHRpbWVzdGFtcGApO2ZvciBhd2FpdChsZXQgZSBvZiBhLml0ZXJhdGUocikpbihlLnZhbHVlKSYmYXdhaXQgZS5kZWxldGUoKTthd2FpdCBpLmRvbmV9YXN5bmMgZ2V0RXZlbnRzQmV0d2VlbihlLHQ9RGF0ZS5ub3coKSl7aWYoZT49dClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtsZXQgbj1JREJLZXlSYW5nZS5ib3VuZChbUSxlXSxbUSx0XSwhMSwhMCk7cmV0dXJuKGF3YWl0IHRoaXMub3BlbkRCKCkpLmdldEFsbEZyb21JbmRleChgZXZlbnRzYCxgW3Nlc3Npb25JZCt0aW1lc3RhbXBdYCxuKX1hc3luYyB1cGRhdGVFdmVudHNFeHBpcmVkQXQoZSx0LG49MzApe2xldCByPW5ldyBEYXRlLGk9ci5zZXRNaW51dGVzKHIuZ2V0TWludXRlcygpKyhuPz8zMCkpLGE9YXdhaXQgdGhpcy5nZXRUcmFuc2FjdGlvbihgZXZlbnRzYCksbz1hLnN0b3JlLmluZGV4KGBbc2Vzc2lvbklkK3RpbWVzdGFtcF1gKSxzPUlEQktleVJhbmdlLmJvdW5kKFtRLGVdLFtRLHRdLCExLCEwKTtmb3IgYXdhaXQobGV0IGUgb2Ygby5pdGVyYXRlKHMpKWF3YWl0IGUudXBkYXRlKHsuLi5lLnZhbHVlLGV4cGlyZWRBdDppfSk7YXdhaXQgYS5kb25lfWFzeW5jIGRlbGV0ZUNodW5rVXBsb2FkcyhlLHQpe2xldCBuPUlEQktleVJhbmdlLm9ubHkoW3QsZV0pLHI9YXdhaXQgdGhpcy5nZXRUcmFuc2FjdGlvbihgY2h1bmtVcGxvYWRzYCksaT1hd2FpdCByLnN0b3JlLmluZGV4KGBbdXBsb2FkSWQrc3RhdHVzXWApLm9wZW5DdXJzb3Iobik7Zm9yKDtpOylpLmRlbGV0ZSgpLGk9YXdhaXQgaS5jb250aW51ZSgpO2F3YWl0IHIuZG9uZX1hc3luYyBnZXRDaHVua1VwbG9hZHNCeVN0YXR1cyh7c2Vzc2lvbklkOmUsc3RhdHVzOnQsdXBsb2FkSWQ6bn0pe2xldCByPShhd2FpdCB0aGlzLm9wZW5EQigpKS50cmFuc2FjdGlvbihgY2h1bmtVcGxvYWRzYCxgcmVhZG9ubHlgKTt0aGlzLndyYXBUcmFuc2FjdGlvbldpdGhDb3VudGVyKHIpO2xldCBpPW4/ci5zdG9yZS5pbmRleChgW3VwbG9hZElkK3N0YXR1c11gKTpyLnN0b3JlLmluZGV4KGBbc2Vzc2lvbklkK3N0YXR1c11gKSxhPW4/SURCS2V5UmFuZ2Uub25seShbbix0XSk6SURCS2V5UmFuZ2Uub25seShbZSx0XSk7cmV0dXJuIGkuZ2V0QWxsKGEpfWFzeW5jIGdldFBlbmRpbmdDYXB0dXJlcyhlPXt9KXtyZXR1cm4oYXdhaXQoYXdhaXQgdGhpcy5vcGVuREIoKSkuZ2V0QWxsRnJvbUluZGV4KGBwZW5kaW5nQ2FwdHVyZXNgLGBzZXNzaW9uSWRgLFEpKS5maWx0ZXIodD0+IWUuYmVmb3JlUHJlc2VudHx8dC50YXJnZXRUaW1lc3RhbXA8RGF0ZS5ub3coKSkuZmlsdGVyKHQ9PiFlLmlzQmVmb3JlVHlwZXx8dC5jYXB0dXJlUGFyYW1zLnJlcGxheVBhcmFtcy5yZXBsYXlEdXJhdGlvblR5cGU9PT1gYmVmb3JlYCkuZmlsdGVyKHQ9PiFlLmlzSGVhdG1hcHx8KHQuY2FwdHVyZVBhcmFtcy5pc0hlYXRtYXA/PyExKSl9YXN5bmMgbWFya1BlbmRpbmdDYXB0dXJlVG9DYW5VcGxvYWQoZSl7bGV0IHQ9YXdhaXQgdGhpcy5nZXRUcmFuc2FjdGlvbihgcGVuZGluZ0NhcHR1cmVzYCksbj10LnN0b3JlLmluZGV4KGBzZXNzaW9uSWRgKTtmb3IgYXdhaXQobGV0IHQgb2Ygbi5pdGVyYXRlKFEpKXtsZXQgbj10LnZhbHVlO24uY2FwdHVyZVBhcmFtcy5yZXNwb25zZUdyb3VwSWQ9PT1lJiZhd2FpdCB0LnVwZGF0ZSh7Li4ubixjYW5VcGxvYWQ6ITB9KX1hd2FpdCB0LmRvbmV9YXN5bmMgbWFya1BlbmRpbmdIZWF0bWFwc1JlYWR5KGUpe2lmKHBhcnNlSW50KEouZ2V0SXRlbShgc3ByaWcucGVuZGluZ0NvdW50YCk/P2AwYCk9PT0wKXJldHVybiBudWxsO2xldCB0PURhdGUubm93KCksbj1hd2FpdCB0aGlzLmdldFRyYW5zYWN0aW9uKGBwZW5kaW5nQ2FwdHVyZXNgKSxyPW4uc3RvcmUuaW5kZXgoYHNlc3Npb25JZGApO2ZvciBhd2FpdChsZXQgbiBvZiByLml0ZXJhdGUoUSkpe2xldCByPW4udmFsdWU7IXIuY2FwdHVyZVBhcmFtcy5pc0hlYXRtYXB8fGUmJiFlLmluY2x1ZGVzKHIudXVpZCl8fGF3YWl0IG4udXBkYXRlKHsuLi5yLHRhcmdldFRpbWVzdGFtcDp0LGNhcHR1cmVQYXJhbXM6ey4uLnIuY2FwdHVyZVBhcmFtcyx0cmlnZ2VyVGltZXN0YW1wOnQscmVwbGF5UGFyYW1zOnsuLi5yLmNhcHR1cmVQYXJhbXMucmVwbGF5UGFyYW1zLHJlcGxheUR1cmF0aW9uU2Vjb25kczpNYXRoLmZsb29yKCh0LXIudGltZXN0YW1wKS8xZTMpfX19KX1hd2FpdCBuLmRvbmV9fSxNbT1bXSxObSxQbSxGbSxJbSxMbSxSbSx6bT1bXSxCbT0hMSxWbT0wLEhtPSExLFVtPSExLFdtPVtdLEdtPSExLEttPSgpPT5IbSYmIUJtJiZEYXRlLm5vdygpPD1GbSxxbT0oe2FwaVVybDplLGNvbmZpZzp0LHRyaWdnZXJTbmFwc2hvdDpuLGZvcmNlSW5pdDpyPSExfSk9PntIbSYmIXJ8fChKLmlzU3RvcmFnZUF2YWlsYWJsZT8oem09W10sV20uc3BsaWNlKDApLE1tLnNwbGljZSgwKSxWbT0wLExtPW4sUG09ZSxObT17cmVzcG9uc2VHcm91cFV1aWQ6dC5yZXNwb25zZUdyb3VwVXVpZCxzdXJ2ZXlJZDp0LnN1cnZleUlkLHVzZXJBZ2VudDp0LnVzZXJBZ2VudCxzZGtWZXJzaW9uOnQuc2RrVmVyc2lvbn0sSW09dC5tYXhEdXJhdGlvblNlY29uZHMsJG0oKSxIbXx8KFJtPXdpbmRvdy5zZXRJbnRlcnZhbChabSw1MDApKSxIbT0hMCk6Qm09ITApfSxKbT1beHAuRHJhZyx4cC5JbnB1dCx4cC5NZWRpYUludGVyYWN0aW9uLHhwLk1vdXNlSW50ZXJhY3Rpb24seHAuTW91c2VNb3ZlLHhwLlNjcm9sbCx4cC5TZWxlY3Rpb24seHAuVG91Y2hNb3ZlXSxZbT1lPT5lLnR5cGU9PT1icC5DdXN0b218fGUudHlwZT09PWJwLkluY3JlbWVudGFsU25hcHNob3QmJkptLmluY2x1ZGVzKGUuZGF0YS5zb3VyY2UpLFhtPWU9PmUuc29tZShZbSksWm09YXN5bmMoKT0+e2lmKCFLbSgpKXJldHVybiB2b2lkIHdpbmRvdy5jbGVhckludGVydmFsKFJtKTtpZihRbSgpLCFYbShNbSkpcmV0dXJuO2xldCBlPU1tWzBdLnRpbWVzdGFtcDtEYXRlLm5vdygpLWU+MzVlMyYmKExtPT1udWxsfHxMbSgpKX0sUW09YXN5bmMoKT0+e2lmKHptLmxlbmd0aHx8R20pcmV0dXJuO0dtPSEwO2xldCBlPWF3YWl0IHJoKCk7aWYoIWUpcmV0dXJuIHZvaWQoQm09ITApO1dtLnNwbGljZSgwLGUubGVuZ3RoKS5mb3JFYWNoKHQ9PnQoZS5zaGlmdCgpKSksZS5mb3JFYWNoKGU9PnptLnB1c2goZSkpLEdtPSExfSwkbT0oKT0+e2xldCBlPUouZ2V0SXRlbShgc3ByaWcuYWx3YXlzb24uaW5mb2ApO2lmKGUpe0suaW5mbyhgUmVhZCBzdG9yZWQgc2Vzc2lvbiBzdGF0ZWAsZSk7bGV0IHQ9SlNPTi5wYXJzZShlKTtCbT10LmRpc2FibGVkLE5tPXQubWV0YWRhdGEsem09dC51cGxvYWRVcmxzLFZtPXQuY3VycmVudEluZGV4LEZtPXQuZXhwaXJhdGlvblRpbWVzdGFtcCx0LnBlbmRpbmdFdmVudFRpbWVzdGFtcCYmKEsuaW5mbyhgVXBsb2FkaW5nIHdpdGggcGVuZGluZyB0aW1lc3RhbXA6ICR7dC5wZW5kaW5nRXZlbnRUaW1lc3RhbXB9YCksZWgodC5wZW5kaW5nRXZlbnRUaW1lc3RhbXApKX1lbHNlIEZtPTFlMypJbStEYXRlLm5vdygpfSxlaD1hc3luYyBlPT57bGV0IHQ9RGF0ZS5ub3coKSxuPShhd2FpdCAkLmdldEV2ZW50c0JldHdlZW4oZSx0KSkubWFwKGU9PkpTT04ucGFyc2UoZS5ldmVudCkpO2lmKCFYbShuKSlyZXR1cm47YWgobik7bGV0IHI9YXdhaXQgaWgoKTtyJiZhd2FpdCBuaChyLG4pfSx0aD1hc3luYyhlLHQpPT57dHJ5e2xldCBuPWF3YWl0IGUoKTtpZighbi5vayl0aHJvdyBFcnJvcihgRXJyb3IgJHt0fWApO3JldHVybiBufWNhdGNoe0JtPSEwfX0sbmg9YXN5bmMoZSx0KT0+e2lmKCFLbSgpfHwhZSlyZXR1cm47bGV0IG49YXdhaXQoYXN5bmMgZT0+e2xldCB0PW5ldyBUZXh0RW5jb2RlcixuPW5ldyBDb21wcmVzc2lvblN0cmVhbShgZ3ppcGApLHI9bi53cml0YWJsZS5nZXRXcml0ZXIoKSxpPXQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGUpKTtyZXR1cm4gci53cml0ZShpKSxyLmNsb3NlKCksbmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IFJlc3BvbnNlKG4ucmVhZGFibGUpLmFycmF5QnVmZmVyKCkpfSkodCk7Sy5pbmZvKGBVcGxvYWRpbmcgYWx3YXlzLW9uIGV2ZW50cyB3aXRoIHByZXNpZ25lZCB1cmxgKSxhd2FpdCB0aCgoKT0+eWQoZSx7Ym9keTpuLG1ldGhvZDpgUFVUYH0pLGB1cGxvYWRpbmcgYWx3YXlzLW9uIHdpdGggcHJlc2lnbmVkIHVybGApfSxyaD1hc3luYygpPT57aWYoIUttKCkpcmV0dXJuO2xldHtzdXJ2ZXlJZDplLHJlc3BvbnNlR3JvdXBVdWlkOnR9PU5tLG49e3Jlc3BvbnNlR3JvdXBVdWlkOnQsc3VydmV5SWQ6ZSxpbmRleDpWbSsxfTtLLmluZm8oYEZldGNoaW5nIGFsd2F5cy1vbiB1cGxvYWQgdXJsc2Asbik7bGV0IHI9YXdhaXQgdGgoKCk9PnlkKGAke1BtfS9zZGsvMS9yZXBsYXlVcmxzYCx7bWV0aG9kOmBQT1NUYCxib2R5OkpTT04uc3RyaW5naWZ5KG4pLGhlYWRlcnM6X2Qod2luZG93LlVzZXJMZWFwKX0pLGBmZXRjaGluZyBhbHdheXMtb24gc2lnbmVkIHVybHNgKTtpZighcilyZXR1cm47bGV0IGk9ci5qc29uLnNpZ25lZFVybHM7cmV0dXJuIEsuaW5mbyhgRmV0Y2hlZCBtb3JlIGFsd2F5cy1vbiB1cGxvYWQgdXJsc2Ase2JvZHk6bix1cmxzOml9KSxpfSxpaD1hc3luYygpPT57aWYoem0ubGVuZ3RoKXJldHVybiB6bS5zaGlmdCgpO2xldCBlPW5ldyBQcm9taXNlKGU9PntXbS5wdXNoKGUpfSk7cmV0dXJuIFFtKCksZX0sYWg9ZT0+e3ZhciB0LG4scjtsZXQgaT1lLmxlbmd0aD9lW2UubGVuZ3RoLTFdLnRpbWVzdGFtcDpEYXRlLm5vdygpLGE9Vm0sbz0oKG49KHQ9d2luZG93LlVzZXJMZWFwKT09bnVsbD92b2lkIDA6dC5jb25maWcpPT1udWxsP3ZvaWQgMDpuLmN1c3RvbU1ldGFkYXRhKT8/KChyPXdpbmRvdy5fX2NmZyk9PW51bGw/dm9pZCAwOnIuY3VzdG9tTWV0YWRhdGEpO1ZtKyssZS5wdXNoKHt0aW1lc3RhbXA6aSx0eXBlOmJwLkN1c3RvbSxkYXRhOnt0YWc6YFNwcmlnX01ldGFgLHBheWxvYWQ6ey4uLk5tLGluZGV4OmEsdmlzaXRvcklkOndpbmRvdy5Vc2VyTGVhcC52aXNpdG9ySWQ/P2BgLHRpbWVzdGFtcDppLGN1c3RvbU1ldGFkYXRhOm99fX0pfSxvaD0oZSx0KT0+e0ttKCkmJiFVbSYmKGV8fE1tLmxlbmd0aCkmJihlJiZNbS5sZW5ndGgmJihhc3luYygpPT57bGV0IGU9TW0uc3BsaWNlKDApO2lmKCFYbShlKSlyZXR1cm47Sy5pbmZvKGBDYXB0dXJpbmcgYWx3YXlzLW9uIGV2ZW50IGFycmF5IHRvIHVwbG9hZGApLGFoKGUpO2xldCB0PWF3YWl0IGloKCk7dCYmYXdhaXQgbmgodCxlKX0pKCksTW0ucHVzaCh0KSl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKGBiZWZvcmV1bmxvYWRgLGFzeW5jKCk9PntVbT0hMCxLbSgpJiYoSy5pbmZvKGBBbHdheXMgT24gaGFuZGxlIHBhZ2UgdW5sb2FkYCksKCgpPT57bGV0IGU7TW0ubGVuZ3RoJiYoZT1NbVswXS50aW1lc3RhbXApO2xldCB0PXtkaXNhYmxlZDpCbSxtZXRhZGF0YTpObSx1cGxvYWRVcmxzOnptLGN1cnJlbnRJbmRleDpWbSxwZW5kaW5nRXZlbnRUaW1lc3RhbXA6ZSxleHBpcmF0aW9uVGltZXN0YW1wOkZtfTtLLmluZm8oYFN0b3Jpbmcgc2Vzc2lvbiBzdGF0ZSBvbiB1bmxvYWRgLHQpLEouc2V0SXRlbShgc3ByaWcuYWx3YXlzb24uaW5mb2AsSlNPTi5zdHJpbmdpZnkodCkpfSkoKSl9KTt2YXIgc2g9YXN5bmMoZSx0KT0+e2xldCBuPXBlcmZvcm1hbmNlLm5vdygpLHI7dHJ5e3I9YXdhaXQgZSgpfWZpbmFsbHl7bGV0IGU9cGVyZm9ybWFuY2Uubm93KCktbixyPU9mW3RdO3J8fChyPWtmKHQpKSxyLnJlcG9ydChlLzFlMyl9cmV0dXJuIHJ9LGNoPShlLHQpPT57bGV0IG49cGVyZm9ybWFuY2Uubm93KCk7dHJ5e2UoKX1maW5hbGx5e2xldCBlPXBlcmZvcm1hbmNlLm5vdygpLW4scj1PZlt0XTtyfHwocj1rZih0KSksci5yZXBvcnQoZS8xZTMpfX0sbGg9NWUzLHVoPTZlNCxkaD0wLGZoLHBoPSExLG1oPVtdLGhoPWU9Pnt2YXIgdCxuLHIsaTtpZigodD1lLmV2ZW50KSE9bnVsbCYmdC5pbmNsdWRlcyhgU3ByaWdfU2Nyb2xsYCkpe2xldCB0PShpPShyPShuPUpTT04ucGFyc2UoZS5ldmVudCkpPT1udWxsP3ZvaWQgMDpuLmRhdGEpPT1udWxsP3ZvaWQgMDpyLnBheWxvYWQpPT1udWxsP3ZvaWQgMDppLnhQYXRoO2lmKCF0KXJldHVybjtaLnNjcm9sbEV2ZW50VXVpZHNbdF09ZS51dWlkfW1oLnB1c2goZSkscGh8fGdoKCl9LGdoPSgpPT57cGg9ITAsc2V0VGltZW91dChhc3luYygpPT57aWYoeG0oKXx8U20oKSlyZXR1cm47bGV0IGU9bWg7bWg9W10scGg9ITEsY2goYXN5bmMoKT0+e2F3YWl0KGFzeW5jIGU9PntsZXQgdD1lLm1hcChlPT4oey4uLmUsc2Vzc2lvbklkOmUuc2Vzc2lvbklkPz9RfSkpO2lmKHQubGVuZ3RoIT09MClyZXR1cm4ga20oKCk9PiQuYnVsa0FkZChgZXZlbnRzYCx0KSxgRXJyb3Igc3RvcmluZyByZXBsYXkgZXZlbnRzYCl9KShlKX0sYHNka19yZXBsYXlfYWRkX2V2ZW50X2JhdGNoX3NlY29uZHNgKX0sNTAwKX0sX2g9KGUsdCxuKT0+e1ouY2xlYW51cEludGVydmFsPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+e2xldCByPURhdGUubm93KCk7c2goKCk9PmttKGFzeW5jKCk9Pnt4bSgpfHxhd2FpdCBQcm9taXNlLmFsbChbJC5kZWxldGVSb3dzQmVmb3JlKGBldmVudHNgLHItMWUzKmUsdD0+dC5leHBpcmVkQXQ9PT12b2lkIDB8fHQuZXhwaXJlZEF0PHItMWUzKmUpLCQuZGVsZXRlUm93c0JlZm9yZShgY2h1bmtVcGxvYWRzYCxyLTFlMyp0KSwkLmRlbGV0ZVJvd3NCZWZvcmUoYHBlbmRpbmdDYXB0dXJlc2Asci0xZTMqbixlPT4hZS5jYW5VcGxvYWQpXSl9LGBFcnJvciBkZWxldGluZyB0YWJsZSByb3dzYCksYHNka19yZXBsYXlfY2xlYW51cF9zZWNvbmRzYCksSy5kZWJ1ZyhgQ2xlYW51cENvbXBsZXRlYCl9LDNlNCl9LHZoPSgpPT57Wi5wZW5kaW5nQ2hlY2tJbnRlcnZhbD13aW5kb3cuc2V0SW50ZXJ2YWwoYXN5bmMoKT0+e2ttKGFzeW5jKCk9Pnthd2FpdCBiaCgpfSxgRXJyb3IgaW5pdGlhdGluZyBwZW5kaW5nIGNhcHR1cmVzYCl9LDVlMyl9LHloPSExLGJoPWFzeW5jKGU9ITEpPT57aWYoIXloKXRyeXt5aD0hMDtsZXQgdD1wYXJzZUludChmaD8/YDBgKTtpZih0PT09MClyZXR1cm47bGV0IG49YXdhaXQgJC5nZXRQZW5kaW5nQ2FwdHVyZXMoe2JlZm9yZVByZXNlbnQ6ITAsaXNCZWZvcmVUeXBlOmV9KSxyPWF3YWl0ICQub3BlbkRCKCk7YXdhaXQgUHJvbWlzZS5hbGwobi5tYXAoYXN5bmMgZT0+KGF3YWl0IHIuZGVsZXRlKGBwZW5kaW5nQ2FwdHVyZXNgLGUudXVpZCksRGgoZS5jYXB0dXJlUGFyYW1zLGUuY2FuVXBsb2FkKSkpKSxmaD0odC1uLmxlbmd0aCkudG9TdHJpbmcoKSxKLnNldEl0ZW0oYHNwcmlnLnBlbmRpbmdDb3VudGAsZmgpfWZpbmFsbHl7eWg9ITF9fSx4aD1hc3luYyhlLHQsbixyLGkpPT57bGV0IGE9TWF0aC5taW4oZStpLG4pLG89YXdhaXQgc2goKCk9PiQuZ2V0RXZlbnRzQmV0d2VlbihlLGEpLGBzZGtfcmVwbGF5X2dldF9ldmVudHNfYmV0d2Vlbl9zZWNvbmRzYCk7aWYoIShvIT1udWxsJiZvLmxlbmd0aCkpcmV0dXJuIEsuZGVidWcoYE5vRXZlbnRzRm91bmRgKSx7dmFsaWRTdGFydEZvdW5kOnIsZXZlbnRzOltdfTtpZighcil7Sy5kZWJ1ZyhgVmFsaWRTdGFydFNlYXJjaGApO2xldCBlPS0xO3JldHVybiBvPT1udWxsfHxvLmZvckVhY2goKG4scik9PntpZighbi5pc1ZhbGlkU3RhcnQpcmV0dXJuO2xldCBpPW4udGltZXN0YW1wPD10OyhlPDB8fGkpJiYoZT1yKX0pLGU8MD8oSy5kZWJ1ZyhgVmFsaWRTdGFydE5vdEZvdW5kYCkse3ZhbGlkU3RhcnRGb3VuZDpyLGV2ZW50czpbXX0pOnt2YWxpZFN0YXJ0Rm91bmQ6ITAsZXZlbnRzOm89PW51bGw/dm9pZCAwOm8uc2xpY2UoZSl9fXJldHVybnt2YWxpZFN0YXJ0Rm91bmQ6cixldmVudHM6b319LFNoPWU9PlByb21pc2UuYWxsKGUubWFwKGFzeW5jIGU9PntsZXQgdD1hd2FpdChhc3luYyBlPT5acC5leGVjdXRlKGFzeW5jKCk9Pnt2YXIgdDtLLmluZm8oYFVwbG9hZENodW5rU3RhcnRgLHtjaHVua0luZGV4OmUuY2h1bmtJbmRleCxzdXJ2ZXlJZDplLnN1cnZleUlkfSk7bGV0IG49YXdhaXQgeWQoZS51cGxvYWRVcmwse2JvZHk6ZS5kYXRhLG1ldGhvZDpgUFVUYH0pO0suaHR0cChgVXBsb2FkQ2h1bmtFbmRgLHt1cmw6ZS51cGxvYWRVcmwsbWV0aG9kOmBQVVRgLHN0YXR1c19jb2RlOm4uc3RhdHVzLHJlYXNvbjpuLnN0YXR1c1RleHQ/P2BPS2AsY2h1bmtJbmRleDplLmNodW5rSW5kZXgsc3VydmV5SWQ6ZS5zdXJ2ZXlJZH0pO2xldCByPSh0PW4uaGVhZGVycyk9PW51bGw/dm9pZCAwOnQuZ2V0KGBFVGFnYCk7aWYoIXIpdGhyb3cgRXJyb3IoYFVwbG9hZCByZXNwb25zZSBkaWQgbm90IGluY2x1ZGUgZXRhZyBmb3IgdXBsb2FkICR7ZS51cGxvYWRJZH0sIHBhcnQgJHtlLmNodW5rSW5kZXh9YCk7cmV0dXJuIHJ9KSkoZSk7cmV0dXJuIGF3YWl0ICQudXBkYXRlUGFydGlhbChgY2h1bmtVcGxvYWRzYCxlLnV1aWQse2RhdGE6bnVsbCxldGFnOnQsc3RhdHVzOmBVcGxvYWRDb21wbGV0ZWB9KSxlLnVwbG9hZElkfSkpLENoPWFzeW5jIGU9PntsZXQgdD1hd2FpdCAkLmdldENodW5rVXBsb2Fkc0J5U3RhdHVzKHtzdGF0dXM6YFVwbG9hZENvbXBsZXRlYCx1cGxvYWRJZDplfSk7aWYoISh0IT1udWxsJiZ0Lmxlbmd0aCkpcmV0dXJuIHZvaWQgSy5pbmZvKGBOb0NodW5rc0ZvclVwbG9hZGAse3VwbG9hZElkOmV9KTtsZXQgbj10LnJlZHVjZSgoZSx0KT0+KGUuZmluZChlPT5lLmNodW5rSW5kZXg9PT10LmNodW5rSW5kZXgpfHxlLnB1c2godCksZSksW10pO24uc29ydCgoZSx0KT0+ZS5jaHVua0luZGV4LXQuY2h1bmtJbmRleCk7bGV0IHI9bi5tYXAoZT0+KHtFVGFnOmUuZXRhZyxQYXJ0TnVtYmVyOmUuY2h1bmtJbmRleH0pKS5maWx0ZXIoZT0+ZS5FVGFnIT09bnVsbCksaT1uWzBdO2F3YWl0IFFwKHthcGlVcmw6aS5hcGlVcmwsc3VydmV5SWQ6aS5zdXJ2ZXlJZCx1cGxvYWRJZDplLHJlc3BvbnNlR3JvdXBVdWlkOmkucmVzcG9uc2VHcm91cElkLGV0YWdzOnIsaGVhZGVyczppLmNvbXBsZXRlVXBsb2FkSGVhZGVycyxyZXBsYXlEdXJhdGlvbjppLnJlcGxheUR1cmF0aW9ufSksYXdhaXQgJC5kZWxldGVDaHVua1VwbG9hZHMoYFVwbG9hZENvbXBsZXRlYCxlKX0sd2g9KCk9PntrbShhc3luYygpPT57bGV0IGU9YXdhaXQgJC5nZXRDaHVua1VwbG9hZHNCeVN0YXR1cyh7c2Vzc2lvbklkOlEsc3RhdHVzOmBSZWFkeUZvclVwbG9hZGB9KTtpZighKGUhPW51bGwmJmUubGVuZ3RoKSlyZXR1cm47bGV0IHQ9YXdhaXQgU2goZSk7dCE9bnVsbCYmdC5sZW5ndGgmJmF3YWl0IFByb21pc2UuYWxsKHQubWFwKGU9PntpZihlKXJldHVybiBDaChlKX0pKX0sYEVycm9yIHVwbG9hZGluZyB1bmZpbmlzaGVkIGNodW5rc2ApfSxUaD1hc3luYyhlLHQpPT57bGV0IG49dD8/RGF0ZS5ub3coKTtyZXR1cm4oYXN5bmMoZSx0KT0+e2xldCBuPW5ldyBUZXh0RW5jb2RlcixyPW51bGwsaT1uZXcgQ29tcHJlc3Npb25TdHJlYW0oYGd6aXBgKSxhPWkud3JpdGFibGUuZ2V0V3JpdGVyKCksbz0hMSxzPSExLFtjLGxdPVswLDBdLHU9W107Zm9yKGxldCByPWUtMzVlMztyPHQ7cis9dWgpe2lmKHt2YWxpZFN0YXJ0Rm91bmQ6cyxldmVudHM6dX09YXdhaXQgeGgocixlLHQscyx1aCksISh1IT1udWxsJiZ1Lmxlbmd0aCkpe0suZGVidWcoYE5vRXZlbnRzRm91bmRgKTtjb250aW51ZX1jPT09MCYmKGM9dVswXS50aW1lc3RhbXApLGw9dVt1Lmxlbmd0aC0xXS50aW1lc3RhbXA7bGV0IGk9dS5tYXAoZT0+ZS5ldmVudCk7aS5wdXNoKGB7InRpbWVzdGFtcCI6JHt0fX1gKTtsZXQgZD1gJHtvP2AsYDpgW2B9JHtpfWAsZj1uLmVuY29kZShkKTtjaCgoKT0+e2Eud3JpdGUoZil9LGBzZGtfcmVwbGF5X2NvbXByZXNzaW9uX3NlY29uZHNgKSxvPSEwfWlmKGwtYzxsaClyZXR1cm4gSy5kZWJ1ZyhgUmVwbGF5VG9vU2hvcnRgKSxudWxsO2xldCBkPW4uZW5jb2RlKGBdYCk7cmV0dXJuIGEud3JpdGUoZCksYS5jbG9zZSgpLHI9bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IFJlc3BvbnNlKGkucmVhZGFibGUpLmFycmF5QnVmZmVyKCkpLHJ9KShuLWUsbil9LEVoPWFzeW5jIGU9PntsZXR7c3VydmV5SWQ6dCxyZXNwb25zZUdyb3VwSWQ6bix2aXNpdG9ySWQ6cixhcGlVcmw6aSxjb21wbGV0ZVVwbG9hZEhlYWRlcnM6YSxyZXBsYXlQYXJhbXM6byx0cmlnZ2VyVGltZXN0YW1wOnN9PWUsYz1hd2FpdCBUaCgxZTMqby5yZXBsYXlEdXJhdGlvblNlY29uZHMscyk7aWYoIShjIT1udWxsJiZjLmxlbmd0aCkpcmV0dXJuIHZvaWQgSy5pbmZvKGBGaWxlRGF0YUVtcHR5YCx7c3VydmV5SWQ6dH0pO2xldCBsPSgoZSx0LG4pPT57bGV0IHI9ZS5sZW5ndGgsaT0xMDI0KnQqMTAyNCxhPU1hdGguY2VpbChyL24pLG89TWF0aC5tYXgoaSxhKSxzPVtdLGM9MDtmb3IoO2M8cjspcy5wdXNoKGUuc2xpY2UoYyxjK28pKSxjKz1vO3JldHVybiBzfSkoYyxvLm1pbmltdW1DaHVua1NpemVNYixvLnNpZ25lZFVybHMubGVuZ3RoKSx1PWF3YWl0IFByb21pc2UuYWxsKGwubWFwKGFzeW5jKGUsYyk9PntsZXQgdT1VdSgpLGQ9e2FwaVVybDppLGNodW5rSW5kZXg6YysxLGNvbXBsZXRlVXBsb2FkSGVhZGVyczphLGV0YWc6bnVsbCxyZXNwb25zZUdyb3VwSWQ6bixzdGF0dXM6YFJlYWR5Rm9yVXBsb2FkYCxzdXJ2ZXlJZDp0LHRpbWVzdGFtcDpzLHRvdGFsQ2h1bmtzOmwubGVuZ3RoLGRhdGE6ZSx1cGxvYWRJZDpvLnVwbG9hZElkLHVwbG9hZFVybDpvLnNpZ25lZFVybHNbY10udXJsLHV1aWQ6dSx2aXNpdG9ySWQ6cn07cmV0dXJuIGF3YWl0KGF3YWl0ICQub3BlbkRCKCkpLmFkZChgY2h1bmtVcGxvYWRzYCx7Li4uZCxzZXNzaW9uSWQ6ZC5zZXNzaW9uSWQ/P1F9KSxkfSkpO2F3YWl0KGFzeW5jKGUsdCk9Pnthd2FpdCBTaCh0KSxhd2FpdCBQcm9taXNlLmFsbChlLm1hcChlPT5DaChlKSkpfSkoW28udXBsb2FkSWRdLHUpfSxEaD1hc3luYyhlLHQpPT57aWYoeG0oKSlyZXR1cm4gSy5kZWJ1ZyhgUmVwbGF5RGlzYWJsZWQtU2NoZWR1bGVPckNhcHR1cmVgKTtsZXR7aXNIZWF0bWFwOm4saXNTdGFuZGFsb25lOnIscmVwbGF5UGFyYW1zOmksdHJpZ2dlclRpbWVzdGFtcDphLHJlc3BvbnNlR3JvdXBJZDpvfT1lLHM9YXN5bmMoKT0+e3NldFRpbWVvdXQoKCk9PnEucmVtb3ZlTGlzdGVuZXIoVy5RdWVzdGlvbkFuc3dlcmVkLHMpLDApLGttKGFzeW5jKCk9PntpLnJlcGxheUR1cmF0aW9uVHlwZT09PWBiZWZvcmVgP2F3YWl0IEVoKGUpOmF3YWl0ICQubWFya1BlbmRpbmdDYXB0dXJlVG9DYW5VcGxvYWQobyl9LGBFcnJvciBpbiBzY2hlZHVsZS9jYXB0dXJlIGNhbGxiYWNrYCl9O2ttKGFzeW5jKCk9PntpZihpLnJlcGxheUR1cmF0aW9uVHlwZT09PWBhZnRlcmB8fGkucmVwbGF5RHVyYXRpb25UeXBlPT09YGJlZm9yZUFuZEFmdGVyYClyZXR1cm4hciYmIW4mJnEub24oVy5RdWVzdGlvbkFuc3dlcmVkLHMpLHZvaWQgYXdhaXQgQWgoZSk7aWYocnx8bnx8dClhd2FpdCBFaChlKSxuJiZPaCgpO2Vsc2V7bGV0IGU9YS0xZTMqKDM1K2kucmVwbGF5RHVyYXRpb25TZWNvbmRzKSx0PWE7YXdhaXQgJC51cGRhdGVFdmVudHNFeHBpcmVkQXQoZSx0LGkuZXhwaXJhdGlvblRpbWVMaW1pdE1pbnV0ZXMpLHEub24oVy5RdWVzdGlvbkFuc3dlcmVkLHMpfX0sYEVycm9yIGluIHNjaGVkdWxpbmcvY2FwdHVyaW5nIHJlcGxheWApfSxPaD1hc3luYygpPT57cGFyc2VJbnQoZmg/P2AwYCl8fEoucmVtb3ZlSXRlbShgc3ByaWcuaXNDYXB0dXJpbmdIZWF0bWFwYCksSi5nZXRJdGVtKGBzcHJpZy50ZWFyZG93bkFmdGVyQ2FwdHVyZWApJiYoVG0oKSxraCgpLEoucmVtb3ZlSXRlbShgc3ByaWcudGVhcmRvd25BZnRlckNhcHR1cmVgKSl9LGtoPWFzeW5jKCk9PnhtKCk/Sy5kZWJ1ZyhgUmVwbGF5RGlzYWJsZWQtQ2xlYXJEYXRhYCk6UHJvbWlzZS5hbGwoWyQuZGVsZXRlQnlTZXNzaW9uSWQoYGV2ZW50c2AsUSksJC5kZWxldGVCeVNlc3Npb25JZChgcGVuZGluZ0NhcHR1cmVzYCxRKV0pLmNhdGNoKGU9PntPbShgRXJyb3IgY2xlYXJpbmcgdXNlciByZXBsYXkgZGF0YWAsZSl9KSxBaD1hc3luYyBlPT57aWYoeG0oKSlyZXR1cm47bGV0e2lzSGVhdG1hcDp0LHN1cnZleUlkOm59PWUscj1hd2FpdCAkLmdldFBlbmRpbmdDYXB0dXJlcygpLGk9cj09bnVsbD92b2lkIDA6ci5maWx0ZXIoZT0+ZS5jYXB0dXJlUGFyYW1zLnN1cnZleUlkPT09bik7aWYoaSE9bnVsbCYmaS5sZW5ndGgpcmV0dXJuIHZvaWQgSy5pbmZvKGBQZW5kaW5nQ2FwdHVyZUV4aXN0c2Ase3N1cnZleUlkOm59KTt0JiYoQW0oKSxKLnNldEl0ZW0oYHNwcmlnLmlzQ2FwdHVyaW5nSGVhdG1hcGAsYHRydWVgKSxkaD1EYXRlLm5vdygpLFouaW5hY3Rpdml0eUludGVydmFsfHwoWi5pbmFjdGl2aXR5SW50ZXJ2YWw9d2luZG93LnNldEludGVydmFsKCgpPT57dmFyIGU9ZGg7RGF0ZS5ub3coKS1lPj0zZTQmJmttKCgpPT4kLm1hcmtQZW5kaW5nSGVhdG1hcHNSZWFkeSgpLGBFcnJvciBpbiBoZWF0bWFwIGluYWN0aXZpdHlgKX0sMWUzKSkpO2xldCBhPXsuLi5lLHJlcGxheVBhcmFtczp7Li4uZS5yZXBsYXlQYXJhbXN9fTtlLnJlcGxheVBhcmFtcy5yZXBsYXlEdXJhdGlvblR5cGU9PT1gYmVmb3JlQW5kQWZ0ZXJgJiYoYS5yZXBsYXlQYXJhbXMucmVwbGF5RHVyYXRpb25TZWNvbmRzKj0yKSxhLnJlcGxheVBhcmFtcy5yZXBsYXlEdXJhdGlvblR5cGU9YGJlZm9yZWA7bGV0IG89ZS50cmlnZ2VyVGltZXN0YW1wKzFlMyplLnJlcGxheVBhcmFtcy5yZXBsYXlEdXJhdGlvblNlY29uZHM7YS50cmlnZ2VyVGltZXN0YW1wPW8sZmg9KHBhcnNlSW50KGZoPz9gMGApKzEpLnRvU3RyaW5nKCksSi5zZXRJdGVtKGBzcHJpZy5wZW5kaW5nQ291bnRgLGZoKSxhd2FpdChhd2FpdCAkLm9wZW5EQigpKS5hZGQoYHBlbmRpbmdDYXB0dXJlc2Ase2NhblVwbG9hZDohMSxjYXB0dXJlUGFyYW1zOmEsc2Vzc2lvbklkOlEsdGFyZ2V0VGltZXN0YW1wOm8sdGltZXN0YW1wOkRhdGUubm93KCksdXVpZDpVdSgpfSl9OyhlPT57WS5yZXBsYXk9ZX0pKE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtfX3Byb3RvX186bnVsbCxSZWNvcmRFdmVudDplPT57Q20oYFNwcmlnX1RyYWNrRXZlbnRgLGUpfSxSZWNvcmRQYWdlVmlldzplPT57ZS5kZXNjcmlwdGlvbiYmKGUuZGVzY3JpcHRpb249dG0oZS5kZXNjcmlwdGlvbikpLENtKGBTcHJpZ19QYWdlVmlld2AsZSl9LFJlY29yZFN1cnZleVNob3duOmU9PntDbShgU3ByaWdfU2hvd1N1cnZleWAsZSl9LF9jb21wbGV0ZVNlc3Npb25SZXBsYXk6YXN5bmMoe3N1cnZleUlkOmUscmVzcG9uc2VHcm91cFV1aWQ6dCxldmVudERpZ2VzdDpuLGhlYWRlcnM6cn0pPT57aWYoIWV8fCF0KXJldHVybiExO2xldCBpPXdpbmRvdy5Vc2VyTGVhcC5fQVBJX1VSTCxhPWF3YWl0IFFwKHtzdXJ2ZXlJZDplLHJlc3BvbnNlR3JvdXBVdWlkOnQsZXZlbnREaWdlc3Q6bixhcGlVcmw6aSxoZWFkZXJzOnJ9LCEwKTtyZXR1cm4hKGEhPW51bGwmJmEuZXJyb3IpfSxjaGVja1BlbmRpbmdIZWF0bWFwc1VybDooKT0+eG0oKT9LLmRlYnVnKGBSZXBsYXlEaXNhYmxlZC1QZW5kaW5nSGVhdG1hcHNgKTprbShhc3luYygpPT57bGV0IGU9KGF3YWl0ICQuZ2V0UGVuZGluZ0NhcHR1cmVzKHtpc0hlYXRtYXA6ITB9KSkubWFwKGU9Pih7ZXZlbnRJZDplLmNhcHR1cmVQYXJhbXMuZXZlbnRJZCx1dWlkOmUudXVpZH0pKS5maWx0ZXIoKHtldmVudElkOmV9KT0+IVdkKGUpKS5tYXAoKHt1dWlkOmV9KT0+ZSk7cmV0dXJuIEsuaW5mbyhgUGVuZGluZ0hlYXRtYXBzVG9Db21wbGV0ZWAse2NvdW50OmUubGVuZ3RofSksZS5sZW5ndGgmJihhd2FpdCAkLm1hcmtQZW5kaW5nSGVhdG1hcHNSZWFkeShlKSxLLmluZm8oYE1hcmtlZFBlbmRpbmdIZWF0bWFwc1JlYWR5YCkpLGUubGVuZ3RofSxgRXJyb3IgbWFya2luZyBwZW5kaW5nIGhlYXRtYXBzIHJlYWR5YCksY2xlYXJVc2VyUmVwbGF5RGF0YTpraCxkaXNhYmxlUmVjb3JkaW5nOk9tLGluaXRpYWxpemVSZXBsYXk6YXN5bmMoe21heFJlcGxheUR1cmF0aW9uU2Vjb25kczplLG1heEluZmxpZ2h0UmVxdWVzdHM6dD0yLHJlcGxheVNldHRpbmdzOm4sdGVhcmRvd25BZnRlcjpyPSExLGFwaVVybDppLGFsd2F5c09uQ29uZmlnOmF9KT0+e2lmKGEmJnFtKHthcGlVcmw6aSxjb25maWc6YSx0cmlnZ2VyU25hcHNob3Q6KCk9PntBbSgpfX0pLGZoPUouZ2V0SXRlbShgc3ByaWcucGVuZGluZ0NvdW50YCksWi5pc1JlY29yZGluZylyZXR1cm47aWYociYmSi5zZXRJdGVtKGBzcHJpZy50ZWFyZG93bkFmdGVyQ2FwdHVyZWAsYHRydWVgKSx4bSgpKXJldHVybiBLLmRlYnVnKGBSZXBsYXlEaXNhYmxlZGApO2lmKGF3YWl0KGFzeW5jKCk9Pnt2YXIgZTtpZigheW0oKSlyZXR1cm4hMDtpZigoZT13aW5kb3cubmF2aWdhdG9yLnN0b3JhZ2UpIT1udWxsJiZlLmVzdGltYXRlKXRyeXtsZXR7cXVvdGE6ZT0wLHVzYWdlOnQ9MH09YXdhaXQgd2luZG93Lm5hdmlnYXRvci5zdG9yYWdlLmVzdGltYXRlKCksbj0oZS10KS8xMDI0KiozO3JldHVybiBLLmluZm8oYFN0b3JhZ2VgLHthdmFpbGFibGVHYjpufSksbjwuNX1jYXRjaHtyZXR1cm4hMH1yZXR1cm4hMX0pKCkpcmV0dXJuIEsuZGVidWcoYElEQk5vdFN1cHBvcnRlZGApLGJtKCk7dHJ5e2xldCBlPWF3YWl0ICQub3BlbkRCKCk7Sy5pbmZvKGBEQlZlcnNpb25gLHt2ZXJzaW9uOmUudmVyc2lvbn0pfWNhdGNoKGUpe3JldHVybiBLLmVycm9yKGBSZXBsYXlPcGVuRXJyYCx7bmFtZTplLm5hbWV9KSxlLm5hbWU9PT1gVmVyc2lvbkVycm9yYCYmJC5kZWxldGVEQigpLGJtKCl9a20oYXN5bmMoKT0+e2F3YWl0IGJoKCEwKX0sYEVycm9yIHVwbG9hZGluZyByZWFkeSBwZW5kaW5nIGNhcHR1cmVzYCk7bGV0IG89S20oKT8zMDowLHM9TWF0aC5tYXgoZT8/MCxvKTtpZighcylyZXR1cm4gSy5kZWJ1ZyhgTWlzc2luZ0R1cmF0aW9uYCk7Sy5kZWJ1ZyhgUmVwbGF5SW5pdGApLGF3YWl0IGttKGFzeW5jKCk9Pnt2YXIgZTtuIT1udWxsJiZuLm1pbkR1cmF0aW9uJiYobGg9bi5taW5EdXJhdGlvbiksbiE9bnVsbCYmbi5iYXRjaER1cmF0aW9uJiYodWg9bi5iYXRjaER1cmF0aW9uKSxlPXQsWnAuc2V0TGltaXQoZSksd2goKSxfaChzKzM1LDE4MDAscyszNSksdmgoKTtsZXQgcj13aW5kb3cuVXNlckxlYXAucmVwbGF5TGlicmFyeVVSTD8/YGh0dHBzOi8vY2RuLnNwcmlnLmNvbS9kZXBlbmRlbmNpZXMvcmVjb3JkLTIuMC4wLWFscGhhLjE3Lm1pbi5qc2AsaT13aW5kb3cucnJ3ZWJSZWNvcmQ7aWYoIWkpcmV0dXJuIEsuZXJyb3IoYFJlY29yZFNjcmlwdEZhaWxlZGApO2xldCBhPSEwLG89MCxjPXtjaGVja291dEV2ZXJ5Tm1zOjNlNCxzYW1wbGluZzp7aW5wdXQ6YGxhc3RgLHNjcm9sbDoyNTAsbWVkaWE6ODAwfSwuLi5ufTt2YXIgbCx1O1ouc3RvcFJlY29yZGluZz1pKHtlbWl0OihlLHQpPT57aWYoZS50eXBlPT09YnAuQ3VzdG9tJiYoZGg9RGF0ZS5ub3coKSkseG0oKXx8U20oKSlyZXR1cm47dCYmZS50eXBlPT09YnAuTWV0YT9vPXBlcmZvcm1hbmNlLm5vdygpOnQmJm8mJmUudHlwZT09PWJwLkZ1bGxTbmFwc2hvdCYmQWYoYHNka19yZXBsYXlfc25hcHNob3Rfc2Vjb25kc2AsKHBlcmZvcm1hbmNlLm5vdygpLW8pLzFlMyk7bGV0IG49YXx8ISF0JiZlLnR5cGU9PT1icC5NZXRhO2E9ITEsb2gobixlKSxoaCh7dXVpZDpVdSgpLGV2ZW50OkpTT04uc3RyaW5naWZ5KGUpLGlzVmFsaWRTdGFydDpuLHRpbWVzdGFtcDpEYXRlLm5vdygpfSl9LC4uLmN9KSxaLmlzUmVjb3JkaW5nPSEhWi5zdG9wUmVjb3JkaW5nLFouaXNSZWNvcmRpbmcmJigoKGUsdCk9Pnt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgbWVzc2FnZWAsbj0+e3ZhciByO24uZGF0YS50eXBlPT09S3AmJihYcC5wdXNoKHtzb3VyY2U6bi5zb3VyY2Usb3JpZ2luOm4ub3JpZ2lufSksKHI9bi5zb3VyY2UpPT1udWxsfHxyLnBvc3RNZXNzYWdlKHt0eXBlOnFwLHNldHRpbmdzOmUscmVwbGF5TGlicmFyeVVybDp0fSx7dGFyZ2V0T3JpZ2luOm4ub3JpZ2lufSkpfSl9KShjLHIpLHEub24oYHN1cnZleS5jb21wbGV0ZWAsZT0+e0NtKGBTcHJpZ19TdWJtaXRTdXJ2ZXlgLHtpZDplLHVzZXJBZ2VudDp3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudH0pfSksbD1DbSx1PXdtLGFtfHwob209bCxzbT11LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsaG0sbm0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGBwb2ludGVyZG93bmAsdm0sbm0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGBtb3VzZWRvd25gLF9tLG5tKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihga2V5ZG93bmAsZG0sbm0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGBzY3JvbGxgLG1tLG5tKSxhbT0hMCxmbSgpLHBtKCkpKX0sYEVycm9yIGluaXRpYWxpemluZyByZXBsYXlgKX0saXNSZXBsYXlQYXVzZWQ6U20saXNSZXBsYXlSZWNvcmRpbmc6KCk9PlouaXNSZWNvcmRpbmcscmVjb3JkRnVsbFNuYXBzaG90OkFtLHJlY29yZFJlcGxheVBhdXNlZDooKT0+e0NtKGBTcHJpZ19SZXBsYXlQYXVzZWRgLHt0aW1lc3RhbXA6RGF0ZS5ub3coKX0pLEouc2V0SXRlbShgc3ByaWcuaXNSZXBsYXlQYXVzZWRgLGB0cnVlYCl9LHJlY29yZFJlcGxheVJlc3VtZWQ6KCk9PntKLnJlbW92ZUl0ZW0oYHNwcmlnLmlzUmVwbGF5UGF1c2VkYCksQ20oYFNwcmlnX1JlcGxheVJlc3VtZWRgLHt0aW1lc3RhbXA6RGF0ZS5ub3coKX0pfSxzY2hlZHVsZUNhcHR1cmU6QWgsc2NoZWR1bGVPckNhcHR1cmVSZXBsYXk6RGgsdHJ5UmVwbGF5QWN0aW9uOmttLHVwbG9hZFJlYWR5UGVuZGluZ0NhcHR1cmVzOmJofSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOmBNb2R1bGVgfSkpKSx3aW5kb3cuVXBDaHVuaz17Y3JlYXRlVXBsb2FkOlhlfSx3aW5kb3cucnJ3ZWJSZWNvcmQ9UHU7ZXhwb3J0e3JkIGFzIF8sR3UgYXMgYSxVdSBhcyBjLHlwIGFzIGQsR2QgYXMgZixxIGFzIGcsSyBhcyBoLFd1IGFzIGkseWQgYXMgbCx0ZCBhcyBtLEx1IGFzIG4saWQgYXMgbyxxdSBhcyBwLFhkIGFzIHIsWmQgYXMgcyxLdSBhcyB0LHFkIGFzIHUsWHUgYXMgdixXIGFzIHl9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0NnNlRDLTdJLmpzLm1hcA=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_k-fyxQHB.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.656Z","timestamp":1785108244656,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_k-fyxQHB.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 1739\r\nlast-modified: Sun, 26 Jul 2026 22:31:30 GMT\r\netag: \"9f12a70b86fddd0adf893b6547fea99a\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 67f520b00adc946f83d15303a42fc412.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: BOS50-P6\r\nx-amz-cf-id: rA_rEuo6h6UVZiY3rNO58q9vm1I9dTQvECQ3vG0w62ctRWhI3F4KVA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 2633\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=wQXNIvWlIJcNBe50We9rLoWUUmSLUsA8Mgq%2Bo5FadpNBwdt4yE7gmJIVDl4MqrKn1GNu41MCS8MMEQ2I33tESGZ0pcfukGmAFqMUGOxnH%2BgD6koY0XmJhhQfbovuCIzIk7Ia61Wz9KuNZpSW4KgN\"}]}\r\ncf-ray: a21727e11ea10883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":4054,"size_decoded":2891,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (4015)","md5":"33bfc9bad8550f4f1a541e86b7fc0ce6","sha1":"c4ee80d8aab0d7c19558eaf50588d53ad77046c7","sha256":"b12a3ec576fcb70a6da5ef2f99df42cef00c327073cf128d5c0a7ed013f2ff30","sha512":"9e54a89fc599f6b668d3cf1b8f6df13f93e98b4d101e87467232866cceb774e39aac32b6812c3b598455dacb0fca2d4899e837ff0c3b6d8d25466f8340ac0577","ssdeep":"","tlshash":"1781e888b174bbf20dcbf64da17f690df1282564440c9160f331dfa817da6969a61f1f","first_seen":"2026-07-26T23:24:50.357734Z","last_seen":"2026-07-26T23:25:46.865709Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGQxMmNmNjRiLWMwZDctNGMxMC1iY2I3LWYwOGNkNjQyMmQ3MGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWQxMmNmNjRiLWMwZDctNGMxMC1iY2I3LWYwOGNkNjQyMmQ3MGApfSkoKX1jYXRjaHt9aW1wb3J0e2EgYXMgZSxpIGFzIHQsbixvIGFzIHIsciBhcyBpLHMgYXMgYSx0IGFzIGVlfWZyb20iLi9jX0JETnpvc2RKLmpzIjtpbXBvcnR7Q2wgYXMgdGUsV3AgYXMgbyxYYyBhcyBzLFpjIGFzIGMsYWMgYXMgbCxjYyBhcyB1LGNkIGFzIGQsZmQgYXMgbmUsZmYgYXMgZixoZiBhcyBwLGxjIGFzIHJlLHVjIGFzIGllLHdsIGFzIGFlLHhjIGFzIG9lfWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgbT1vKHAoKSksaD1mKCk7ZnVuY3Rpb24gZyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIF8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdPT1udWxsP3t9OmFyZ3VtZW50c1t0XTt0JTI/ZyhPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7dihlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpnKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiB2KGUsdCxuKXtyZXR1cm4odD15KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHkoZSl7dmFyIHQ9YihlLGBzdHJpbmdgKTtyZXR1cm4gdHlwZW9mIHQ9PWBzeW1ib2xgP3Q6dCtgYH1mdW5jdGlvbiBiKGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYobiE9PXZvaWQgMCl7dmFyIHI9bi5jYWxsKGUsdHx8YGRlZmF1bHRgKTtpZih0eXBlb2YgciE9YG9iamVjdGApcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKGBAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLmApfXJldHVybih0PT09YHN0cmluZ2A/U3RyaW5nOk51bWJlcikoZSl9dmFyIHNlPWBzdWJqZWN0Q3NzLXMxY2dyOXo0YCxjZT17Z2FwOjAsc2tpZDowLHBsYWNlbWVudDpgYm90dG9tYCxvZmZzZXRHYXA6dm9pZCAwLHN0cmF0ZWd5OnZvaWQgMH0seD1gYmxvY2tDc3MtYjEzcm5icm9gLFM9KDAsbS5tZW1vKSgoMCxtLmZvcndhcmRSZWYpKChvLGYpPT57bGV0e2NvbnRlbnQ6cCxjaGlsZHJlbjpnLGRpc2FibGVQb3J0YWw6dixzaG93T3ZlcmxheTp5PSExLG9uUHJlc3NTdWJqZWN0OmIsb25DbG9zZTpTLG9uTW91c2VFbnRlcjpDLG9uTW91c2VMZWF2ZTp3LG9uRm9jdXM6VCxvbkJsdXI6RSxvbk1vdXNlRG93bjpELGludmVydENvbG9yU2NoZW1lOmxlLHZpc2libGU6dWUsYWNjZXNzaWJpbGl0eUxhYmVsOmRlPWBwb3BvdmVyTWVudWAsdGVzdElEOk8sY29udGVudFBvc2l0aW9uOmZlPWNlLGJsb2NrOnBlPSExLGRpc2FibGVkOmssZGlzYWJsZUZvY3VzVHJhcDpBLGRpc2FibGVBdXRvRm9jdXM6aj0hMSxkaXNhYmxlVHlwZUZvY3VzOk09ITEsZm9jdXNUYWJJbmRleEVsZW1lbnRzOk4scmVzcGVjdE5lZ2F0aXZlVGFiSW5kZXg6UCxhdXRvRm9jdXNEZWxheTpGLHJlc3RvcmVGb2N1c09uVW5tb3VudDpJLGNvbnRyb2xsZWRFbGVtZW50QWNjZXNzaWJpbGl0eVByb3BzOkwsc3R5bGU6UixjbGFzc05hbWU6en09byxCPXRlKCkse3BsYWNlbWVudDpWPWBib3R0b21gLHNraWQ6bWU9MCxnYXA6SD0wLG9mZnNldEdhcDpVLHN0cmF0ZWd5OmhlfT1mZSxXPUIuc3BhY2VbbWVdLEc9Qi5zcGFjZVtIXSxLPVUmJkgtVSxxPXR5cGVvZiBWPT1gc3RyaW5nYCYmVi5zdGFydHNXaXRoKGBhdXRvYCksZ2U9KDAsbS51c2VNZW1vKSgoKT0+e2xldCByPVt0KHtjcm9zc0F4aXM6VyxtYWluQXhpczpLPz9HfSldO2lmKHEpe2xldCBlPVY9PT1gYXV0by1zdGFydGA/YHN0YXJ0YDpWPT09YGF1dG8tZW5kYD9gZW5kYDp2b2lkIDA7ci5wdXNoKGVlKGU/e2FsaWdubWVudDplfTp2b2lkIDApKX1lbHNlIHIucHVzaChuKCkpLHIucHVzaChlKHtjcm9zc0F4aXM6ITAsbGltaXRlcjppKCl9KSk7cmV0dXJuIHJ9LFtXLEssRyxxLFZdKSx7cmVmczpKLGZsb2F0aW5nU3R5bGVzOlkscGxhY2VtZW50Olh9PXIoe3BsYWNlbWVudDpxP3ZvaWQgMDpWLHN0cmF0ZWd5OmhlLG1pZGRsZXdhcmU6Z2Usd2hpbGVFbGVtZW50c01vdW50ZWQ6YX0pLF9lPXMoZixKLnNldFJlZmVyZW5jZSksdmU9ISFDJiYhIXcmJiFiLHllPXVlJiYhayxaPSgwLG0udXNlQ2FsbGJhY2spKGFzeW5jKCk9PntTPT1udWxsfHxTKCksRT09bnVsbHx8RSgpfSxbRSxTXSksUT0oMCxtLnVzZUNhbGxiYWNrKShlPT57ZS5zdG9wUHJvcGFnYXRpb24oKX0sW10pLCQ9KDAsbS51c2VNZW1vKSgoKT0+KDAsaC5qc3gpKGBkaXZgLHtyZWY6Si5zZXRGbG9hdGluZywiZGF0YS1wbGFjZW1lbnQiOlgsb25DbGljazpRLG9uTW91c2VEb3duOlEsc3R5bGU6XyhfKHt9LFkpLHt9LHt6SW5kZXg6Yy5kcm9wZG93bn0pLGNoaWxkcmVuOigwLGguanN4KShpZSx7YXV0b0ZvY3VzRGVsYXk6RixkaXNhYmxlQXV0b0ZvY3VzOmosZGlzYWJsZUZvY3VzVHJhcDpBLGRpc2FibGVUeXBlRm9jdXM6TSxmb2N1c1RhYkluZGV4RWxlbWVudHM6TixvbkVzY1ByZXNzOloscmVzcGVjdE5lZ2F0aXZlVGFiSW5kZXg6UCxyZXN0b3JlRm9jdXNPblVubW91bnQ6SSxjaGlsZHJlbjooMCxoLmpzeCkoZCxfKF8oe2JhY2tncm91bmQ6YHRyYW5zcGFyZW50YCwiZGF0YS10ZXN0aWQiOk99LEwpLHt9LHtjaGlsZHJlbjpwfSkpfSl9KSxbSi5zZXRGbG9hdGluZyxRLFgsWSxGLGosQSxNLE4sWixQLEksTyxMLHBdKSxiZT12ZT8kOigwLGguanN4KShkLHsiYXJpYS1sYWJlbCI6ZGUsImFyaWEtbW9kYWwiOmB0cnVlYCxvbkNsaWNrOloscGluOmBhbGxgLHBvc2l0aW9uOmBmaXhlZGAscm9sZTpgZGlhbG9nYCx6SW5kZXg6Yy5wb3J0YWwrYy5tb2RhbCxjaGlsZHJlbjokfSkseGU9bGU/YWU6bS5GcmFnbWVudDtyZXR1cm4oMCxoLmpzeHMpKGBkaXZgLHtyZWY6X2UsY2xhc3NOYW1lOm5lKHNlLHBlJiZ4LHopLG9uQmx1cjpFLG9uQ2xpY2s6az92b2lkIDA6YixvbkZvY3VzOms/dm9pZCAwOlQsb25Nb3VzZURvd246az92b2lkIDA6RCxvbk1vdXNlRW50ZXI6az92b2lkIDA6Qyxvbk1vdXNlTGVhdmU6az92b2lkIDA6dyxzdHlsZTpSLGNoaWxkcmVuOltnLCgwLGguanN4KShvZSx7Y2hpbGRyZW46eWU/KDAsaC5qc3gpKHUse2NvbnRhaW5lcklkOmwsZGlzYWJsZVBvcnRhbDp2LGNoaWxkcmVuOigwLGguanN4KSh4ZSx7Y2hpbGRyZW46eT8oMCxoLmpzeHMpKGQse3BpbjpgYWxsYCxwb3NpdGlvbjpgZml4ZWRgLHpJbmRleDpjLnBvcnRhbCtjLm1vZGFsLGNoaWxkcmVuOlsoMCxoLmpzeCkocmUse2FuaW1hdGVkOiEwLG9uQ2xpY2s6Wn0pLCRdfSk6YmV9KX0pOnZvaWQgMH0pXX0pfSkpO1MuZGlzcGxheU5hbWU9YFBvcG92ZXJgO2V4cG9ydHtTIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX2stZnl4UUhCLmpzLm1hcA=="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_BybxolpF.woff2","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.164Z","timestamp":1785108244164,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_BybxolpF.woff2 HTTP/1.1\r\nHost: www.coinbase.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.coinbase.com/assets/sw-cache/a_m3m7GXAn.css\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: font/woff2\r\ncontent-length: 40480\r\nlast-modified: Tue, 07 Apr 2026 13:08:39 GMT\r\netag: \"c9a6e887656f7b1014db3f1a07247ee2\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 34f8e9435dea359238debf97e45feb10.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: FRA60-P6\r\nx-amz-cf-id: KjOOwTAB8d4b_a8e44wDZNubzrMBlz0MWXNEk7s9FkSm3T0euwk7MA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 3787165\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nvary: accept-encoding\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=jeRTDpJv4Ipk7YnmGez0z1Z7hbgP5I%2BKshiaKVxw55vbdyBd2YLUbEQVcAhvZ66ukZkG5KnSPKVS4DK%2FVlTXPxABmEvRiDUF0MfSv%2FCxeg%2FltMa0UEwOfoX%2FNmpG3Fv2VKktFRVYPEwcEhQiyDpy\"}]}\r\ncf-ray: a21727de095f0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":40480,"size_decoded":41607,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 40480, version 1.2097","md5":"c9a6e887656f7b1014db3f1a07247ee2","sha1":"371f6e5792cff6d3bf6122392d2403f05f1ca445","sha256":"5db56ddf9ab991fc7a3a5b188b6b0c92331213ec4991b71d9821c36dcbcdb687","sha512":"8544191d90eb82b7ed77b813bebb04c918677dd206f37d151db7ee5f34feef64afee26b0ea94398a64a8aea0d8c6d8613dd1b106eb49142a485235e6e19e2710","ssdeep":"768:Czw/1p285wfUizBtYzRe195L9i980ZzsDTdPALCNVb872CEzwZfkAYl:tI85WBtd195xi980Cn6IbT9ws","tlshash":"810301d9265d774ed88b863709c227308ce889d6720be1872bb4a18371e6ec8c625fd5","first_seen":"2023-04-22T15:10:15Z","last_seen":"2026-07-26T23:25:46.858747Z","times_seen":1594,"resource_available":false,"data":"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"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_B2l-mZ2r.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.677Z","timestamp":1785108244677,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_B2l-mZ2r.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 2278\r\nlast-modified: Sun, 26 Jul 2026 22:31:15 GMT\r\netag: \"024350a63a86ee861e5edf271743582d\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 55b12da2f11ad43ff6ba0165ec2762d4.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: kXlM8kHaWzaWfVhSrnTz31b-Xm_1qv45vKcBDUBYpH7SG-BEPP655g==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=nlqKyCkSl%2BSArpwwf8hsrHWHwYLuJBJvcxLz5XOtaD%2BLYII7XGhaa9rZ0tukCEHnZS7l0Qdma0P7OaRAAaxLuQjelUlPUHlAcD36uuUmBFb72UO3rpv0u8K0zr90ELD07lqUK5Q1MxdXR2vn6iUC\"}]}\r\ncf-ray: a21727e13ee70883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":6268,"size_decoded":3420,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (4314)","md5":"b753bea329f10b775390b98ebf2381dc","sha1":"c44cd21b3852a0800a2894dcc87a91ee91a315dd","sha256":"8d7634693375a40ceb8f1acf9c78c38ae72aeba28c945de76b96ba219179c0bf","sha512":"3e4901c4ffd3ff8e549adb2455cc7678ccec954a6288481124a7bdb02667c1f241c528c8cca94f92cfe3ec3f8b94129112f7f0038e43237763f3dc841f617f9d","ssdeep":"96:xtoWPbugaGUhffankfjvTn/6tao1F1qEkQkCxKwaZFk/0:Ym6gzUhfCkfjvTnd/CxZaZFx","tlshash":"12d19993e17922683a2b5865b0d3600f6a45d0045e9ff4acb1211d2f17d9cd57a72fc7","first_seen":"2026-07-26T23:24:50.363213Z","last_seen":"2026-07-26T23:25:46.911284Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGQ0ZTAxN2ViLWU4ZWYtNGY3OC1hMzliLWM5MTg3YzQ3NjA5YWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWQ0ZTAxN2ViLWU4ZWYtNGY3OC1hMzliLWM5MTg3YzQ3NjA5YWApfSkoKX1jYXRjaHt9aW1wb3J0e2kgYXMgZX1mcm9tIi4vY19Db25UTHIzbi5qcyI7aW1wb3J0e0ppIGFzIHQsTGkgYXMgbixPcyBhcyByLFdwIGFzIGksX2EgYXMgYSxfZCBhcyBvLGJsIGFzIHMsY2QgYXMgYyxlbyBhcyBsLGZmIGFzIHUsZ2EgYXMgZCxoZiBhcyBmLGppIGFzIHAsbWQgYXMgbSxwYSBhcyBoLHRvIGFzIGcseGwgYXMgXyx6YSBhcyB2LHppIGFzIHl9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBiPWkoZigpKSx4PXUoKSxTPS9eKChbXjw+KClbXF1cLiw7OlxzQFwiXSsoXC5bXjw+KClbXF1cLiw7OlxzQFwiXSspKil8KFwiLitcIikpQCgoW148PigpW1xdXC4sOzpcc0BcIl0rXC4pK1tePD4oKVtcXVwuLDs6XHNAXCJdezIsfSkkL2ksQz1gZ2FtaWwuY29tLGdtYWlsLmNvbixnbWFpLmNvbSxnbWFpbC5jbyxnbWlsLmNvbSxnbmFpbC5jb20sZ21hbC5jb20sZ21pYWwuY29tLGljbG91ZC5jb24sZ21hbGkuY29tLGhtYWlsLmNvbSxnbWFpbC5jb21tLGdtYWlsLmNvbWUsZ21zaWwuY29tLGdhbWFpbC5jb20sZ2VtYWlsLmNvbSx5YWhvby5jb24sZ2FpbC5jb20sZ21haWxsLmNvbSxnbWFpbC5jb21hLGdtYWlsLnZvbSxob3RtYWlsLmNvbixnbWFpbC5jb21sLGdtYWlsLmNpbSxnaW1haWwuY29tLGdtYWlsLmNtLGdtYWlsLmNsbSxnaW1hbC5jb20sZ21laWwuY29tLGFnbWFpbC5jb20sZWFtaWwuY29tLGdnbWFpbC5jb20sZ21haW0uY29tLGdtYWlvLmNvbSxnbWFpcC5jb20sZ21hb2wuY29tLGdtYXVsLmNvbSxnbWlsZS5jb20sZ21pbGwuY29tLGdtcWlsLmNvbSxvdWxvb2suY29tLG91dGxvb29rLmNvbSxpY2x1ZC5jb20saXZsb3VkLmNvbWAuc3BsaXQoYCxgKSx3PWU9PntsZXRbLHRdPWUuc3BsaXQoYEBgKTtyZXR1cm4gUy50ZXN0KGUpJiYhQy5pbmNsdWRlcyh0KX07ZnVuY3Rpb24gVChlKXtyZXR1cm4oMCx4LmpzeCkoRSx7Ym9yZGVyUmFkaXVzOjIwMCx3aWR0aDpgMTAwJWAsY2hpbGRyZW46KDAseC5qc3gpKHIsey4uLmV9KX0pfXZhciBFPWEoYykud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YENEWFRleHRJbnB1dF9fSW5wdXRDb250YWluZXJgLGNvbXBvbmVudElkOmBzYy1kZTI2NjA5LTBgfSkoW2BkaXYsaW5wdXR7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO31bZGF0YS10ZXN0aWQ9J2lucHV0LWludGVyYWN0YWJsZS1hcmVhJ117Ym9yZGVyOnZhcigtLWJvcmRlcldpZHRoLTEwMCkgc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yLXVuZm9jdXNlZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMjAwKTt9W2RhdGEtdGVzdGlkPSdpbnB1dC1pbnRlcmFjdGFibGUtYXJlYSddOmhvdmVye2JhY2tncm91bmQ6dmFyKC0taW50ZXJhY3RhYmxlLWhvdmVyZWQtYmFja2dyb3VuZCk7fWlucHV0e3BhZGRpbmc6dmFyKC0tc3BhY2UtMik7fWBdKSxEPW0oe2VtYWlsSW5wdXRBY2Nlc3NpYmlsaXR5TGFiZWw6e2lkOmBDRFhFbWFpbEZvcm0uZW1haWxJbnB1dEFjY2Vzc2liaWxpdHlMYWJlbGAsZGVmYXVsdE1lc3NhZ2U6YEVtYWlsIGFkZHJlc3NgLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBpbnB1dDphY2Nlc3NpYmlsaXR5TGFiZWwKICAgICNDaGFyTGltaXQ6IDQ1CiAgICAjQ29udGV4dDogQWNjZXNzaWJpbGl0eSBsYWJlbCBmb3IgYW4gZW1haWwgYWRkcmVzcyBpbnB1dCBmaWVsZGB9fSksTz17RW1haWxTdWJtaXRCdXR0b246YGVtYWlsU3VibWl0QnV0dG9uYH0saz12KGZ1bmN0aW9uKHtmb3JtVHlwZTp0LHByb2R1Y3RJZDpyLHBsYWNlaG9sZGVyOmksc3VibWl0QnV0dG9uVGV4dDphLHN1Ym1pdEJ1dHRvblZhcmlhbnQ6cyxzdWNjZXNzTWVzc2FnZTp1LHNob3VsZFNob3dTdWNjZXNzTWVzc2FnZTpmPSEwLGFsaWduOm09YGZsZXgtc3RhcnRgLGNvbXBvbmVudElkOmgsY29udGVudFR5cGVJZDpnfSl7bGV0e2Zvcm1hdE1lc3NhZ2U6X309bygpLHtoZWxwZXJzOnZ9PWQoKSxbUyxDXT0oMCxiLnVzZVN0YXRlKSghMSksW0Usa109KDAsYi51c2VTdGF0ZSkoITEpLHtyZWdpc3RlcjpBLGhhbmRsZVN1Ym1pdDpqLGdldEZpZWxkU3RhdGU6TSxmb3JtU3RhdGU6Tn09ZSgpLFA9KDAsYi51c2VDYWxsYmFjaykoZT0+dD09PWBTaWdudXBgPyEwOncoZSksW3RdKSxGPU0oYGVtYWlsYCxOKS5lcnJvcixJPWwoTy5FbWFpbFN1Ym1pdEJ1dHRvbik7cmV0dXJuIEU/KDAseC5qc3hzKShjLHsiZGF0YS10ZXN0aWQiOmBlbWFpbC1mb3JtLXN1Y2Nlc3MtbWVzc2FnZWAsZGlzcGxheTpgZmxleGAsanVzdGlmeUNvbnRlbnQ6bSxhbGlnbkl0ZW1zOmBjZW50ZXJgLGdhcDoyLHBhZGRpbmc6MixjaGlsZHJlbjpbKDAseC5qc3gpKHkse25hbWU6YGNpcmNsZUNoZWNrbWFya2AsY29sb3I6YGZnUG9zaXRpdmVgLHNpemU6YG1gLGFjdGl2ZTohMH0pLCgwLHguanN4KShwLHtmb250OmBsYWJlbDFgLGNvbnRlbnQ6dSxjb2xvcjpgZmdQb3NpdGl2ZWB9KV19KTooMCx4LmpzeCkoYGZvcm1gLHtvblN1Ym1pdDpqKGFzeW5jIGU9PntJKCksQyghMCk7dHJ5e3ZhciBuO2F3YWl0KHY9PW51bGx8fChuPXYuaGFuZGxlRW1haWxGb3JtU3VibWl0KT09bnVsbD92b2lkIDA6bi5jYWxsKHYsZS5lbWFpbCx7Zm9ybVR5cGU6dCxwcm9kdWN0SWQ6cn0pKSxmJiZrKCEwKX1maW5hbGx5e0MoITEpfX0sYXN5bmMoKT0+e0koKX0pLG5vVmFsaWRhdGU6ITAsc3R5bGU6e3dpZHRoOmAxMDAlYH0sY2hpbGRyZW46KDAseC5qc3hzKShjLHt3aWR0aDpgMTAwJWAsZ2FwOjIsZmxleERpcmVjdGlvbjp7cGhvbmU6YGNvbHVtbmAsdGFibGV0OmByb3dgLGRlc2t0b3A6YHJvd2B9LGp1c3RpZnlDb250ZW50Om0sY2hpbGRyZW46WygwLHguanN4KShjLHt3aWR0aDpgMTAwJWAsbWF4V2lkdGg6e3Bob25lOmAxMDAlYCx0YWJsZXQ6YDQwMHB4YCxkZXNrdG9wOmA0MDBweGB9LGNoaWxkcmVuOigwLHguanN4KShULHsuLi5BKGBlbWFpbGAse3ZhbGlkYXRlOlB9KSxhY2Nlc3NpYmlsaXR5TGFiZWw6XyhELmVtYWlsSW5wdXRBY2Nlc3NpYmlsaXR5TGFiZWwpLGhlbHBlclRleHRFcnJvckljb25BY2Nlc3NpYmlsaXR5TGFiZWw6YEVycm9yOiBJbnZhbGlkIGVtYWlsLiBQbGVhc2UgdHJ5IGFnYWluLmAsaWQ6YGVtYWlsLWZvcm0taW5wdXRgLGF1dG9Db21wbGV0ZTpgZW1haWxgLHBsYWNlaG9sZGVyOmksdHlwZTpgZW1haWxgLCJkYXRhLXRlc3RpZCI6YGVtYWlsLWZvcm0taW5wdXRgLHZhcmlhbnQ6Rj9gbmVnYXRpdmVgOnZvaWQgMCxoZWxwZXJUZXh0OkY/YEVycm9yOiBJbnZhbGlkIGVtYWlsLiBQbGVhc2UgdHJ5IGFnYWluLmA6dm9pZCAwfSl9KSwoMCx4LmpzeCkobix7dHlwZTpgc3VibWl0YCwiZGF0YS10ZXN0aWQiOmBlbWFpbC1mb3JtLXN1Ym1pdC1idXR0b25gLGFuYWx5dGljc0lkOmA3NTM5ZTNjOC0yYWJhLTRmZmEtYTYyMy0xMmJlOGU1ZTNkODNgLHdpZHRoOntwaG9uZTpgMTAwJWAsdGFibGV0OmBhdXRvYCxkZXNrdG9wOmBhdXRvYH0sZGlzYWJsZWQ6UyxsYWJlbDphLHZhcmlhbnQ6cyxjb21wb25lbnRJZDpofSldfSl9KX0pO2Z1bmN0aW9uIEEoe2N0YXM6ZSxjdGFzT3ZlcnJpZGU6dCxsYXlvdXQ6cixmdWxsV2lkdGhCdXR0b25zOmksdGVzdElEOmF9KXtpZih0KXJldHVybiB0O2xldCBvPWU9PW51bGw/dm9pZCAwOmUuZmluZChlPT5lLmNvbnRlbnRUeXBlSWQ9PT1gQ0RYVjJfRW1haWxGb3JtYCk7aWYobylyZXR1cm4oMCx4LmpzeCkoayx7YWxpZ246cj09PWBDZW50ZXIgU3RhY2tlZGA/YGNlbnRlcmA6YGZsZXgtc3RhcnRgLC4uLm99KTtsZXQgcz1lPT1udWxsP3ZvaWQgMDplLmZpbHRlcihlPT5lLmNvbnRlbnRUeXBlSWQ9PT1gQ0RYVjJfQnV0dG9uYCk7cmV0dXJuIHM/KDAseC5qc3gpKF8se2dhcDoyLGZsZXhEaXJlY3Rpb246e3Bob25lOmBjb2x1bW5gLGJhc2U6YHJvd2B9LHdpZHRoOntwaG9uZTpgMTAwJWB9LGZsZXhXcmFwOmBub3dyYXBgLCJkYXRhLXRlc3RpZCI6YCR7YX0tY3Rhc2AsY2hpbGRyZW46cy5tYXAoKGUsdCk9PigwLHguanN4KShjLHt3aWR0aDp7cGhvbmU6aT9gMTAwJWA6YGF1dG9gfSxqdXN0aWZ5Q29udGVudDpyPT09YENlbnRlciBTdGFja2VkYD9gY2VudGVyYDpgZmxleC1zdGFydGAsY2hpbGRyZW46KDAseC5qc3gpKG4sey4uLmUsYmxvY2s6aSwiZGF0YS10ZXN0aWQiOmAke2F9LWN0YXMtJHt0KzF9YH0pfSxlLmxhYmVsKSl9KTpudWxsfXZhciBqPXtIZWFkZXJUaXRsZUxpbms6YGhlYWRlclRpdGxlTGlua2AsSGVhZGVyUGFyYWdyYXBoTGluazpgcGFyYWdyYXBoTGlua2AsRm9vdGVyVGl0bGVMaW5rOmBmb290ZXJUaXRsZUxpbmtgLEZvb3RlclBhcmFncmFwaExpbms6YGZvb3RlclBhcmFncmFwaExpbmtgfSxNPXtoZWFkZXI6e3RpdGxlOmouSGVhZGVyVGl0bGVMaW5rLHBhcmFncmFwaDpqLkhlYWRlclBhcmFncmFwaExpbmt9LGZvb3Rlcjp7dGl0bGU6ai5Gb290ZXJUaXRsZUxpbmsscGFyYWdyYXBoOmouRm9vdGVyUGFyYWdyYXBoTGlua319O2Z1bmN0aW9uIE4oe3RpdGxlOmUsdGl0bGVPdmVycmlkZVByb3BzOm4scGFyYWdyYXBoV3JhcHBlck92ZXJyaWRlUHJvcHM6cixwYXJhZ3JhcGg6aSxjdGFzOmEsbGF5b3V0Om89YEhvcml6b250YWxgLGNsYXNzTmFtZTpsLHRlc3RJRDp1PWBjZHgtc2VjdGlvbi1oZWFkZXJgLGZ1bGxXaWR0aEJ1dHRvbnM6ZD0hMSxzZWN0aW9uUm9sZTpmPWBoZWFkZXJgLGN0YXNPdmVycmlkZTptfSl7bGV0IF89ZyhNW2ZdLnRpdGxlKSx2PWcoTVtmXS5wYXJhZ3JhcGgpLHk9ISFtfHwhIShhIT1udWxsJiZhLmxlbmd0aCk7aWYoIXQoZSkmJiF0KGkpJiYheSlyZXR1cm4gbnVsbDtsZXQgYj10KGUpLFM9YiYmIXQoaSkmJiF5O3JldHVybigwLHguanN4cykoYyx7Y2xhc3NOYW1lOmwsdGVzdElEOnUsd2lkdGg6YDEwMCVgLGZsZXhEaXJlY3Rpb246e3Bob25lOmBjb2x1bW5gLGJhc2U6bz09PWBDZW50ZXIgU3RhY2tlZGB8fG89PT1gU3RhY2tlZGA/YGNvbHVtbmA6YHJvd2B9LGdhcDpoW2Bjb250ZW50LWVsZW1lbnQtZ2FwYF0sYWxpZ25JdGVtczpvPT09YENlbnRlciBTdGFja2VkYD9gY2VudGVyYDpgZmxleC1zdGFydGAsanVzdGlmeUNvbnRlbnQ6bz09PWBIb3Jpem9udGFsYD9gc3BhY2UtYmV0d2VlbmA6dm9pZCAwLGNoaWxkcmVuOlt0KGUpJiYoMCx4LmpzeCkoYyx7d2lkdGg6YDEwMCVgLG1heFdpZHRoOlMmJm8hPT1gQ2VudGVyIFN0YWNrZWRgP2AxMDAlYDpgODAwcHhgLGNoaWxkcmVuOigwLHguanN4KShwLHthczpgaDJgLGZvbnQ6YGRpc3BsYXkzYCxjb250ZW50OmUsImRhdGEtdGVzdGlkIjpgJHt1fS10aXRsZWAsdGV4dEFsaWduOm89PT1gQ2VudGVyIFN0YWNrZWRgP2BjZW50ZXJgOmBzdGFydGAsd2lkdGg6YDEwMCVgLG9uUmljaFRleHRMaW5rQ2xpY2s6XywuLi5ufSl9KSwodChpKXx8eSkmJigwLHguanN4KShzLHt3aWR0aDpgMTAwJWAsbWF4V2lkdGg6e3Bob25lOmBub25lYCxiYXNlOm89PT1gSG9yaXpvbnRhbGAmJmI/YDUxMnB4YDpgODAwcHhgfSxhbGlnbkl0ZW1zOm89PT1gQ2VudGVyIFN0YWNrZWRgP2BjZW50ZXJgOntiYXNlOmBmbGV4LWVuZGAscGhvbmU6YGZsZXgtc3RhcnRgfSwuLi5yLGNoaWxkcmVuOigwLHguanN4cykocyx7Z2FwOmhbYGNvbnRlbnQtZWxlbWVudC1nYXBgXSx3aWR0aDpgMTAwJWAsYWxpZ25JdGVtczpvPT09YENlbnRlciBTdGFja2VkYD9gY2VudGVyYDpgZmxleC1zdGFydGAsY2hpbGRyZW46W3QoaSkmJigwLHguanN4KShwLHtkaXNwbGF5OmBibG9ja2Asd2lkdGg6YDEwMCVgLGZvbnQ6YGJvZHlgLGNvbnRlbnQ6aSwiZGF0YS10ZXN0aWQiOmAke3V9LXBhcmFncmFwaGAsY29sb3I6YGZnTXV0ZWRgLHRleHRBbGlnbjpvPT09YENlbnRlciBTdGFja2VkYD9gY2VudGVyYDpgc3RhcnRgLG9uUmljaFRleHRMaW5rQ2xpY2s6dn0pLCgwLHguanN4KShBLHtjdGFzOmEsbGF5b3V0Om8sZnVsbFdpZHRoQnV0dG9uczpkLHRlc3RJRDp1LGN0YXNPdmVycmlkZTptfSldfSl9KV19KX1leHBvcnR7QSBhcyBuLGsgYXMgcixOIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0IybC1tWjJyLmpzLm1hcA=="}},"time_used":108,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":108,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DAyioOU42.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.689Z","timestamp":1785108244689,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DAyioOU42.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:25 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"c8eda92a08a159c79a7cd49fd1e56daf\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 963857637ab1c1847ddfb92afc9a0986.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: X1b02Gs1KF5Dvfj6lNLU5Z5FcWilX_9ePXA5nsXBIn_3I4hN3anHug==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=9kw%2BVSYs%2Fu9roVBli7Le3A%2Blj1d%2FoJ8z9LUvTXZ60fwiSKPPykEfW852dh%2FN2Ctu4UUdQaLBjNGWFYpRJTP0kT3i1s9ZovLuGEfMp0E1gnmx68xC9fhTWd%2BpjI20gU3dCmYTxQsJo99Kh%2F%2BlDx%2Fv\"}]}\r\ncf-ray: a21727e15f1b0883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2819,"size_decoded":2165,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (952)","md5":"c8eda92a08a159c79a7cd49fd1e56daf","sha1":"10c8894ebca5e136cade683789e62611ec271c7e","sha256":"69aa1222af3a689c9e56174b37620e1d63e7981fdbbe295538f5190471ceb1b5","sha512":"e88682e054a4375db3401a5d82517bf640b413866a08b32d9c8ca978c571719f5c0bfe0d96f9c728bdee8d61c0b8e1a7028b584f34450b403ff5e01a653edb6a","ssdeep":"","tlshash":"5c513143ec24b23965a6041c74b66448a279271ee1fd9214f6c94bcb27e83cff861397","first_seen":"2026-07-26T23:24:50.365593Z","last_seen":"2026-07-26T23:25:46.823813Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDMwZDBhMjk1LTY2MGMtNDEwZC05ZDZlLWRhNGFhNGIyNTFjZmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTMwZDBhMjk1LTY2MGMtNDEwZC05ZDZlLWRhNGFhNGIyNTFjZmApfSkoKX1jYXRjaHt9aW1wb3J0e0YgYXMgZSxPaSBhcyB0LFJkIGFzIG4sV3AgYXMgcixaIGFzIGksX2QgYXMgYSxmZiBhcyBvLGhmIGFzIHMsa3IgYXMgYyxtZCBhcyBsLG5pIGFzIHV9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBkPXIocygpKTtmdW5jdGlvbiBmKCl7bGV0e3Bvc3RTdWJzY3JpYmU6ZX09aSgpLHtjb3VudHJ5RnJvbVVybDpyLGxhbmd1YWdlRnJvbVVybDphLGN1cnJlbmN5Om99PXQoKSxzPW4oYHV0bWApO3JldHVybigwLGQudXNlQ2FsbGJhY2spKGFzeW5jKHQsbik9PntuLmZvcm1UeXBlPT09YEVPVWAmJmF3YWl0IGUoe2VtYWlsOnQsY291bnRyeUNvZGU6cixsb2NhbGU6YSxjdXJyZW5jeTpvLHByb2R1Y3RJZDpuLnByb2R1Y3RJZD8/YGAsc3Vic2NyaWJlTWV0YWRhdGE6ey4uLihzPT1udWxsP3ZvaWQgMDpzWzBdKT8/e319fSksbi5mb3JtVHlwZT09PWBTaWdudXBgJiYod2luZG93LmxvY2F0aW9uLmhyZWY9YCR7Y30/ZW1haWw9JHt0fWApfSxbcyxyLGEsbyxlXSl9dmFyIHA9bygpLG09YFNFT01ldGFgLGg9bCh7dGl0bGU6e2lkOmAke219LnRpdGxlYCxkZWZhdWx0TWVzc2FnZTpgQnV5L1NlbGwgY3J5cHRvY3VycmVuY3kgLSBDb2luYmFzZWAsZGVzY3JpcHRpb246YAogICAgI0NvbXBvbmVudDogU0VPTWV0YQogICAgI0NoYXJMaW1pdDogNzUKICAgICNDb250ZXh0OiBEZWZhdWx0IG1ldGEgdGl0bGUgZm9yIENvaW5iYXNlLmNvbSBvbiBHb29nbGUuIChDaGFyTGltaXQgYXV0b2NhbGN1bGF0ZWQgdG8gNzUpCiAgICAjVmFyaWFibGVFeGFtcGxlOiBCdXkvU2VsbCBjcnlwdG9jdXJyZW5jeSAtIENvaW5iYXNlYH0sdGl0bGVXaXRoQ291bnRyeU5hbWU6e2lkOmAke219LnRpdGxlV2l0aENvdW50cnlOYW1lYCxkZWZhdWx0TWVzc2FnZTpgQnV5L1NlbGwgY3J5cHRvY3VycmVuY3kgLSBDb2luYmFzZSB7Y291bnRyeU5hbWV9YCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBTRU9NZXRhCiAgICAjQ2hhckxpbWl0OiA3NQogICAgI0NvbnRleHQ6IE1ldGEgdGl0bGUgZm9yIENvaW5iYXNlLmNvbSBvbiBHb29nbGUgd2l0aCBjb3VudHJ5IG5hbWUuIChDaGFyTGltaXQgYXV0b2NhbGN1bGF0ZWQgdG8gNzUpCiAgICAjVmFyaWFibGVFeGFtcGxlOiBCdXkvU2VsbCBjcnlwdG9jdXJyZW5jeSAtIENvaW5iYXNlIEdlcm1hbnlgfSxkZXNjcmlwdGlvbjp7aWQ6YCR7bX0uZGVzY3JpcHRpb25gLGRlZmF1bHRNZXNzYWdlOmBDb2luYmFzZSBpcyBhIHNlY3VyZSBvbmxpbmUgcGxhdGZvcm0gZm9yIGJ1eWluZywgc2VsbGluZywgdHJhbnNmZXJyaW5nLCBhbmQgc3RvcmluZyBjcnlwdG9jdXJyZW5jeS5gLGRlc2NyaXB0aW9uOmAKICAgICNDb21wb25lbnQ6IG1ldGEKICAgICNDaGFyTGltaXQ6IDE2MAogICAgI0NvbnRleHQ6IERlZmF1bHQgZGVzY3JpcHRpb24gZm9yIENvaW5iYXNlLmNvbS4KICAgICNWYXJpYWJsZUV4YW1wbGU6IENvaW5iYXNlIGlzIGEgc2VjdXJlIG9ubGluZSBwbGF0Zm9ybSBmb3IgYnV5aW5nLCBzZWxsaW5nLCB0cmFuc2ZlcnJpbmcsIGFuZCBzdG9yaW5nIGNyeXB0b2N1cnJlbmN5LmB9LGRlc2NyaXB0aW9uV2l0aENvdW50cnlOYW1lOntpZDpgJHttfS5kZXNjcmlwdGlvbldpdGhDb3VudHJ5TmFtZWAsZGVmYXVsdE1lc3NhZ2U6YENvaW5iYXNlIHtjb3VudHJ5TmFtZX0gaXMgYSBzZWN1cmUgb25saW5lIHBsYXRmb3JtIGZvciBidXlpbmcsIHNlbGxpbmcsIHRyYW5zZmVycmluZywgYW5kIHN0b3JpbmcgY3J5cHRvY3VycmVuY3kuYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBtZXRhCiAgICAjQ2hhckxpbWl0OiAxNjAKICAgICNDb250ZXh0OiBEZXNjcmlwdGlvbiBmb3IgQ29pbmJhc2UuY29tIHdpdGggY291bnRyeSBuYW1lLgogICAgI1ZhcmlhYmxlRXhhbXBsZTogQ29pbmJhc2UgR2VybWFueSBpcyBhIHNlY3VyZSBvbmxpbmUgcGxhdGZvcm0gZm9yIGJ1eWluZywgc2VsbGluZywgdHJhbnNmZXJyaW5nLCBhbmQgc3RvcmluZyBjcnlwdG9jdXJyZW5jeS5gfX0pO2Z1bmN0aW9uIGcoe3RpdGxlOnQsZGVzY3JpcHRpb246bixpbWFnZTpyLG9nVGl0bGU6aSx0d2l0dGVyQ2FyZDpvLHR3aXR0ZXJJbWFnZTpzLG5vSW5kZXg6Yyxub0ZvbGxvdzpsLGluY2x1ZGVIcmVmTGFuZ3M6ZH0pe2xldHtmb3JtYXRNZXNzYWdlOmZ9PWEoKSxtPWUoKS5jb3VudHJ5TWVzc2FnZSxnPW0/ZihoLnRpdGxlV2l0aENvdW50cnlOYW1lLHtjb3VudHJ5TmFtZTptfSk6ZihoLnRpdGxlKSxfPW0/ZihoLmRlc2NyaXB0aW9uV2l0aENvdW50cnlOYW1lLHtjb3VudHJ5TmFtZTptfSk6ZihoLmRlc2NyaXB0aW9uKTtyZXR1cm4oMCxwLmpzeCkodSx7dGl0bGU6dHx8ZyxpbWFnZTpyLG9nVGl0bGU6aSxkZXNjcmlwdGlvbjpufHxfLHR3aXR0ZXJDYXJkOm8sdHdpdHRlckltYWdlOnMsbm9JbmRleDpjLG5vRm9sbG93OmwsaW5jbHVkZUhyZWZMYW5nczpkfSl9ZXhwb3J0e2YgYXMgbixnIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0RBeWlvT1U0Mi5qcy5tYXA="}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_8_hsTCsL.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.692Z","timestamp":1785108244692,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_8_hsTCsL.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 2376\r\nlast-modified: Sun, 26 Jul 2026 22:31:14 GMT\r\netag: \"11d75114917978cdf331ff1e4828e200\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 06cb9bed6e3c9f95e430c22405e0fd84.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: kRn4G9KK7_VQDzmgIyzgY6w0a8-f_3ELevWRJ2zQu9agNzKZ__5NVA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=d8RxMs%2BtnpNAqL9yjBwRyM4u3hwk9hebTaUxC36HZ7utl4LXLJXynH3aIPfhgQ8YgQpoZvyRfVsT5dMRjz8wHRr21%2BDYfOHI%2F9LF6UL0UYdhW9IkWBM0CtydugV%2FiBfB6Ff2FTFhsu4TDM8LJC%2FU\"}]}\r\ncf-ray: a21727e15f240883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":5548,"size_decoded":3524,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (5509)","md5":"847c7da94210291f27395196b7bed176","sha1":"b593d325545bda2076bc40fa13d50644b01b58b5","sha256":"08e33dc101946235925a4308bce017f8857dc76671dc5b558ba00d81c439fd9b","sha512":"648de1a161b368173b25a9e99ca997bdeb6d355b0530daf624ca9f6df4d264738f11d591c4270197a2f7fe85a3e360b1b526d39471251131e4d5dea2d42da488","ssdeep":"96:xi9DKVyxq36m24wVu28wjCP2f4QdLQWkIprHC9+sEHg9nn:sEr3f2VVu7wjzf4Q2WkI4EAl","tlshash":"53b172e63391b476c31b0627806f0015f7b47a90281f582cb668b9db762499983e7fb5","first_seen":"2026-07-26T23:24:50.367721Z","last_seen":"2026-07-26T23:25:46.875375Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDZhODg3ZjJkLTY2YTMtNDk5OC04MTNmLTcxZmExMTU4MDZlOGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTZhODg3ZjJkLTY2YTMtNDk5OC04MTNmLTcxZmExMTU4MDZlOGApfSkoKX1jYXRjaHt9aW1wb3J0e0ZsIGFzIGUsSnUgYXMgdCxObCBhcyBuLE91IGFzIHIsUGwgYXMgaSxQdSBhcyBhLFFsIGFzIG8sV3AgYXMgcyxYbCBhcyBjLF91IGFzIGwsYXUgYXMgdSxjdSBhcyBkLGR1IGFzIGYsZ3UgYXMgcCxoZiBhcyBtLGh1IGFzIGgsaXUgYXMgZyxrdSBhcyBfLGx1IGFzIHYsbnUgYXMgeSxvdSBhcyBiLHB1IGFzIHgsc3UgYXMgUyx0dSBhcyBDLHZ1IGFzIHcsenUgYXMgVH1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIEU9cyhtKCksMSk7ZnVuY3Rpb24gRChlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFNWR0VsZW1lbnQmJmUudGFnTmFtZSE9PWBzdmdgfWZ1bmN0aW9uIE8oZSx0LG4pe2xldCByPVQoZSk/ZTpvKGUpO3JldHVybiByLnN0YXJ0KHkoYGAscix0LG4pKSxyLmFuaW1hdGlvbn1mdW5jdGlvbiBrKGUpe2xldCBuPWEoKCk9Pm8oZSkpLHtpc1N0YXRpYzpyfT0oMCxFLnVzZUNvbnRleHQpKHQpO2lmKHIpe2xldFssdF09KDAsRS51c2VTdGF0ZSkoZSk7KDAsRS51c2VFZmZlY3QpKCgpPT5uLm9uKGBjaGFuZ2VgLHQpLFtdKX1yZXR1cm4gbn1mdW5jdGlvbiBBKGUsdCxuKXtpZih0eXBlb2YgZT09YHN0cmluZ2Ape2xldCByPWRvY3VtZW50O3QmJih3KCEhdC5jdXJyZW50LGBTY29wZSBwcm92aWRlZCwgYnV0IG5vIGVsZW1lbnQgZGV0ZWN0ZWQuYCkscj10LmN1cnJlbnQpLG4/KG5bZV0/PyhuW2VdPXIucXVlcnlTZWxlY3RvckFsbChlKSksZT1uW2VdKTplPXIucXVlcnlTZWxlY3RvckFsbChlKX1lbHNlIGUgaW5zdGFuY2VvZiBFbGVtZW50JiYoZT1bZV0pO3JldHVybiBBcnJheS5mcm9tKGV8fFtdKX1mdW5jdGlvbiBqKGUsdCl7bGV0IG4saT0oKT0+e2xldHtjdXJyZW50VGltZTpyfT10LGk9KHI9PT1udWxsPzA6ci52YWx1ZSkvMTAwO24hPT1pJiZlKGkpLG49aX07cmV0dXJuIF8udXBkYXRlKGksITApLCgpPT5yKGkpfXZhciBNPWcoKCk9PndpbmRvdy5TY3JvbGxUaW1lbGluZSE9PXZvaWQgMCksTj1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmFuaW1hdGlvbnM9ZS5maWx0ZXIoQm9vbGVhbil9dGhlbihlLHQpe3JldHVybiBQcm9taXNlLmFsbCh0aGlzLmFuaW1hdGlvbnMpLnRoZW4oZSkuY2F0Y2godCl9Z2V0QWxsKGUpe3JldHVybiB0aGlzLmFuaW1hdGlvbnNbMF1bZV19c2V0QWxsKGUsdCl7Zm9yKGxldCBuPTA7bjx0aGlzLmFuaW1hdGlvbnMubGVuZ3RoO24rKyl0aGlzLmFuaW1hdGlvbnNbbl1bZV09dH1hdHRhY2hUaW1lbGluZShlKXtsZXQgdD10aGlzLmFuaW1hdGlvbnMubWFwKHQ9PntpZihNKCkmJnQuYXR0YWNoVGltZWxpbmUpdC5hdHRhY2hUaW1lbGluZShlKTtlbHNlIHJldHVybiB0LnBhdXNlKCksaihlPT57dC50aW1lPXQuZHVyYXRpb24qZX0sZSl9KTtyZXR1cm4oKT0+e3QuZm9yRWFjaCgoZSx0KT0+e2UmJmUoKSx0aGlzLmFuaW1hdGlvbnNbdF0uc3RvcCgpfSl9fWdldCB0aW1lKCl7cmV0dXJuIHRoaXMuZ2V0QWxsKGB0aW1lYCl9c2V0IHRpbWUoZSl7dGhpcy5zZXRBbGwoYHRpbWVgLGUpfWdldCBzcGVlZCgpe3JldHVybiB0aGlzLmdldEFsbChgc3BlZWRgKX1zZXQgc3BlZWQoZSl7dGhpcy5zZXRBbGwoYHNwZWVkYCxlKX1nZXQgZHVyYXRpb24oKXtsZXQgZT0wO2ZvcihsZXQgdD0wO3Q8dGhpcy5hbmltYXRpb25zLmxlbmd0aDt0KyspZT1NYXRoLm1heChlLHRoaXMuYW5pbWF0aW9uc1t0XS5kdXJhdGlvbik7cmV0dXJuIGV9cnVuQWxsKGUpe3RoaXMuYW5pbWF0aW9ucy5mb3JFYWNoKHQ9PnRbZV0oKSl9cGxheSgpe3RoaXMucnVuQWxsKGBwbGF5YCl9cGF1c2UoKXt0aGlzLnJ1bkFsbChgcGF1c2VgKX1zdG9wKCl7dGhpcy5ydW5BbGwoYHN0b3BgKX1jYW5jZWwoKXt0aGlzLnJ1bkFsbChgY2FuY2VsYCl9Y29tcGxldGUoKXt0aGlzLnJ1bkFsbChgY29tcGxldGVgKX19O2Z1bmN0aW9uIGVlKGUpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJiFBcnJheS5pc0FycmF5KGUpfWZ1bmN0aW9uIFAodCl7bGV0IHI9e3ByZXNlbmNlQ29udGV4dDpudWxsLHByb3BzOnt9LHZpc3VhbFN0YXRlOntyZW5kZXJTdGF0ZTp7dHJhbnNmb3JtOnt9LHRyYW5zZm9ybU9yaWdpbjp7fSxzdHlsZTp7fSx2YXJzOnt9LGF0dHJzOnt9fSxsYXRlc3RWYWx1ZXM6e319fSxhPUQodCk/bmV3IG4ocix7ZW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRpb246ITF9KTpuZXcgaShyLHtlbmFibGVIYXJkd2FyZUFjY2VsZXJhdGlvbjohMH0pO2EubW91bnQodCksZS5zZXQodCxhKX1mdW5jdGlvbiBGKGUsdD0xMDApe2xldCBuPVMoe2tleWZyYW1lczpbMCx0XSwuLi5lfSkscj1NYXRoLm1pbih1KG4pLGIpO3JldHVybnt0eXBlOmBrZXlmcmFtZXNgLGVhc2U6ZT0+bi5uZXh0KHIqZSkudmFsdWUvdCxkdXJhdGlvbjpwKHIpfX1mdW5jdGlvbiBJKGUsdCxuLHIpe3JldHVybiB0eXBlb2YgdD09YG51bWJlcmA/dDp0LnN0YXJ0c1dpdGgoYC1gKXx8dC5zdGFydHNXaXRoKGArYCk/TWF0aC5tYXgoMCxlK3BhcnNlRmxvYXQodCkpOnQ9PT1gPGA/bjpyLmdldCh0KT8/ZX12YXIgTD0oZSx0LG4pPT57bGV0IHI9dC1lO3JldHVybigobi1lKSVyK3IpJXIrZX07ZnVuY3Rpb24gUihlLHQpe3JldHVybiBoKGUpP2VbTCgwLGUubGVuZ3RoLHQpXTplfWZ1bmN0aW9uIHooZSx0LG4pe2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKXtsZXQgaT1lW3JdO2kuYXQ+dCYmaS5hdDxuJiYoQyhlLGkpLHItLSl9fWZ1bmN0aW9uIEIoZSx0LG4scixpLGEpe3ooZSxpLGEpO2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKWUucHVzaCh7dmFsdWU6dFtvXSxhdDp4KGksYSxyW29dKSxlYXNpbmc6UihuLG8pfSl9ZnVuY3Rpb24gVihlLHQpe3JldHVybiBlLmF0PT09dC5hdD9lLnZhbHVlPT09bnVsbD8xOnQudmFsdWU9PT1udWxsPy0xOjA6ZS5hdC10LmF0fXZhciBIPWBlYXNlSW5PdXRgO2Z1bmN0aW9uIFUoZSx7ZGVmYXVsdFRyYW5zaXRpb246dD17fSwuLi5ufT17fSxyKXtsZXQgaT10LmR1cmF0aW9ufHwuMyxhPW5ldyBNYXAsbz1uZXcgTWFwLHM9e30sYz1uZXcgTWFwLHU9MCxwPTAsbT0wO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXtsZXQgYT1lW25dO2lmKHR5cGVvZiBhPT1gc3RyaW5nYCl7Yy5zZXQoYSxwKTtjb250aW51ZX1lbHNlIGlmKCFBcnJheS5pc0FycmF5KGEpKXtjLnNldChhLm5hbWUsSShwLGEuYXQsdSxjKSk7Y29udGludWV9bGV0W2YsaCxnPXt9XT1hO2cuYXQhPT12b2lkIDAmJihwPUkocCxnLmF0LHUsYykpO2xldCBfPTAseT0oZSxuLHIsYT0wLG89MCk9PntsZXQgcz1LKGUpLHtkZWxheTpjPTAsdGltZXM6dT1kKHMpLHR5cGU6Zj1ga2V5ZnJhbWVzYCwuLi5ofT1uLHtlYXNlOmc9dC5lYXNlfHxgZWFzZU91dGAsZHVyYXRpb246eX09bixiPXR5cGVvZiBjPT1gZnVuY3Rpb25gP2MoYSxvKTpjLHg9cy5sZW5ndGg7aWYoeDw9MiYmZj09PWBzcHJpbmdgKXtsZXQgZT0xMDA7aWYoeD09PTImJlkocykpe2xldCB0PXNbMV0tc1swXTtlPU1hdGguYWJzKHQpfWxldCB0PXsuLi5ofTt5IT09dm9pZCAwJiYodC5kdXJhdGlvbj1sKHkpKTtsZXQgbj1GKHQsZSk7Zz1uLmVhc2UseT1uLmR1cmF0aW9ufXk/Pyh5PWkpO2xldCBTPXArYixDPVMreTt1Lmxlbmd0aD09PTEmJnVbMF09PT0wJiYodVsxXT0xKTtsZXQgdz11Lmxlbmd0aC1zLmxlbmd0aDt3PjAmJnYodSx3KSxzLmxlbmd0aD09PTEmJnMudW5zaGlmdChudWxsKSxCKHIscyxnLHUsUyxDKSxfPU1hdGgubWF4KGIreSxfKSxtPU1hdGgubWF4KEMsbSl9O2lmKFQoZikpe2xldCBlPVcoZixvKTt5KGgsZyxHKGBkZWZhdWx0YCxlKSl9ZWxzZXtsZXQgZT1BKGYscixzKSx0PWUubGVuZ3RoO2ZvcihsZXQgbj0wO248dDtuKyspe2g9aCxnPWc7bGV0IHI9ZVtuXSxpPVcocixvKTtmb3IobGV0IGUgaW4gaCl5KGhbZV0scShnLGUpLEcoZSxpKSxuLHQpfX11PXAscCs9X31yZXR1cm4gby5mb3JFYWNoKChlLHIpPT57Zm9yKGxldCBpIGluIGUpe2xldCBvPWVbaV07by5zb3J0KFYpO2xldCBzPVtdLGM9W10sbD1bXTtmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKyl7bGV0e2F0OnQsdmFsdWU6bixlYXNpbmc6cn09b1tlXTtzLnB1c2gobiksYy5wdXNoKGYoMCxtLHQpKSxsLnB1c2gocnx8YGVhc2VPdXRgKX1jWzBdIT09MCYmKGMudW5zaGlmdCgwKSxzLnVuc2hpZnQoc1swXSksbC51bnNoaWZ0KEgpKSxjW2MubGVuZ3RoLTFdIT09MSYmKGMucHVzaCgxKSxzLnB1c2gobnVsbCkpLGEuaGFzKHIpfHxhLnNldChyLHtrZXlmcmFtZXM6e30sdHJhbnNpdGlvbjp7fX0pO2xldCB1PWEuZ2V0KHIpO3Uua2V5ZnJhbWVzW2ldPXMsdS50cmFuc2l0aW9uW2ldPXsuLi50LGR1cmF0aW9uOm0sZWFzZTpsLHRpbWVzOmMsLi4ubn19fSksYX1mdW5jdGlvbiBXKGUsdCl7cmV0dXJuIXQuaGFzKGUpJiZ0LnNldChlLHt9KSx0LmdldChlKX1mdW5jdGlvbiBHKGUsdCl7cmV0dXJuIHRbZV18fCh0W2VdPVtdKSx0W2VdfWZ1bmN0aW9uIEsoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpbZV19ZnVuY3Rpb24gcShlLHQpe3JldHVybiBlW3RdP3suLi5lLC4uLmVbdF19OnsuLi5lfX12YXIgSj1lPT50eXBlb2YgZT09YG51bWJlcmAsWT1lPT5lLmV2ZXJ5KEopO2Z1bmN0aW9uIFgodCxuLHIsaSl7bGV0IGE9QSh0LGkpLG89YS5sZW5ndGg7dyghIW8sYE5vIHZhbGlkIGVsZW1lbnQgcHJvdmlkZWQuYCk7bGV0IHM9W107Zm9yKGxldCB0PTA7dDxvO3QrKyl7bGV0IGk9YVt0XTtlLmhhcyhpKXx8UChpKTtsZXQgbD1lLmdldChpKSx1PXsuLi5yfTt0eXBlb2YgdS5kZWxheT09YGZ1bmN0aW9uYCYmKHUuZGVsYXk9dS5kZWxheSh0LG8pKSxzLnB1c2goLi4uYyhsLHsuLi5uLHRyYW5zaXRpb246dX0se30pKX1yZXR1cm4gbmV3IE4ocyl9dmFyIFo9ZT0+QXJyYXkuaXNBcnJheShlKSYmQXJyYXkuaXNBcnJheShlWzBdKTtmdW5jdGlvbiBRKGUsdCxuKXtsZXQgcj1bXTtyZXR1cm4gVShlLHQsbikuZm9yRWFjaCgoe2tleWZyYW1lczplLHRyYW5zaXRpb246dH0sbik9PntsZXQgaTtpPVQobik/TyhuLGUuZGVmYXVsdCx0LmRlZmF1bHQpOlgobixlLHQpLHIucHVzaChpKX0pLG5ldyBOKHIpfXZhciAkPWU9PntmdW5jdGlvbiB0KHQsbixyKXtsZXQgaTtyZXR1cm4gaT1aKHQpP1EodCxuLGUpOmVlKG4pP1godCxuLHIsZSk6Tyh0LG4sciksZSYmZS5hbmltYXRpb25zLnB1c2goaSksaX1yZXR1cm4gdH0sdGU9JCgpO2V4cG9ydHtPIGFzIGEsayBhcyBpLCQgYXMgbixEIGFzIG8sQSBhcyByLHRlIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jXzhfaHNUQ3NMLmpzLm1hcA=="}},"time_used":124,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":124,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/node_modules/.vite/deps/react-dom_client.js?v=08eb349e","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.436Z","timestamp":1785108243436,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /node_modules/.vite/deps/react-dom_client.js?v=08eb349e HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/src/main.tsx\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 1005279\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: max-age=31536000,immutable\r\nEtag: W/\"f56df-7j/XZ42wA+zYvx4NAdw70xInjMA\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Nginx:1.18.0","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":1005279,"size_decoded":1005548,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (821)","md5":"256652f960c2bfb9433cd8226a263ea3","sha1":"ee3fd7678db003ecd8bf1e0d01dc3bd312278cc0","sha256":"497bf484e35f5ee999dd1b23b412c52dd9272592ac944b53246aa2d5aa3ed301","sha512":"aff59bca79ebe4bd8282f5235ebe82efb6ed830c60c56778e366997ed5f7f0bafa7baa6bd94e0f20add7e38d84a54fde9979d435cefe822054bb8558ec2d175d","ssdeep":"12288:XZonyZJssLTGRRngdYvUnyucIQ3oFi0A/Es:XC6JtTGRRngdJFiN/Es","tlshash":"ad25fa786c630a62c6a3216daf2f5482367a48030d0cfc587a4dc2589f9965d96fffdc","first_seen":"2026-07-26T23:24:50.370381Z","last_seen":"2026-07-26T23:25:44.795329Z","times_seen":2,"resource_available":true,"data":"aW1wb3J0IHsKICByZXF1aXJlX3JlYWN0X2RvbQp9IGZyb20gIi9ub2RlX21vZHVsZXMvLnZpdGUvZGVwcy9jaHVuay1ZRjRCNEcyTC5qcz92PTA4ZWIzNDllIjsKaW1wb3J0IHsKICByZXF1aXJlX3JlYWN0Cn0gZnJvbSAiL25vZGVfbW9kdWxlcy8udml0ZS9kZXBzL2NodW5rLVdVUjdENk5TLmpzP3Y9MDhlYjM0OWUiOwppbXBvcnQgewogIF9fY29tbW9uSlMKfSBmcm9tICIvbm9kZV9tb2R1bGVzLy52aXRlL2RlcHMvY2h1bmstRzNQTVY2MlouanM/dj0wOGViMzQ5ZSI7CgovLyBub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanMKdmFyIHJlcXVpcmVfc2NoZWR1bGVyX2RldmVsb3BtZW50ID0gX19jb21tb25KUyh7CiAgIm5vZGVfbW9kdWxlcy9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5kZXZlbG9wbWVudC5qcyIoZXhwb3J0cykgewogICAgInVzZSBzdHJpY3QiOwogICAgKGZ1bmN0aW9uKCkgewogICAgICBmdW5jdGlvbiBwZXJmb3JtV29ya1VudGlsRGVhZGxpbmUoKSB7CiAgICAgICAgbmVlZHNQYWludCA9IGZhbHNlOwogICAgICAgIGlmIChpc01lc3NhZ2VMb29wUnVubmluZykgewogICAgICAgICAgdmFyIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTsKICAgICAgICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRUaW1lOwogICAgICAgICAgdmFyIGhhc01vcmVXb3JrID0gdHJ1ZTsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGE6IHsKICAgICAgICAgICAgICBpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9IGZhbHNlOwogICAgICAgICAgICAgIGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQgJiYgKGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQgPSBmYWxzZSwgbG9jYWxDbGVhclRpbWVvdXQodGFza1RpbWVvdXRJRCksIHRhc2tUaW1lb3V0SUQgPSAtMSk7CiAgICAgICAgICAgICAgaXNQZXJmb3JtaW5nV29yayA9IHRydWU7CiAgICAgICAgICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsOwogICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICAgIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpOwogICAgICAgICAgICAgICAgICBmb3IgKGN1cnJlbnRUYXNrID0gcGVlayh0YXNrUXVldWUpOyBudWxsICE9PSBjdXJyZW50VGFzayAmJiAhKGN1cnJlbnRUYXNrLmV4cGlyYXRpb25UaW1lID4gY3VycmVudFRpbWUgJiYgc2hvdWxkWWllbGRUb0hvc3QoKSk7ICkgewogICAgICAgICAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IGN1cnJlbnRUYXNrLmNhbGxiYWNrOwogICAgICAgICAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgY2FsbGJhY2spIHsKICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXNrLmNhbGxiYWNrID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gY3VycmVudFRhc2sucHJpb3JpdHlMZXZlbDsKICAgICAgICAgICAgICAgICAgICAgIHZhciBjb250aW51YXRpb25DYWxsYmFjayA9IGNhbGxiYWNrKAogICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFzay5leHBpcmF0aW9uVGltZSA8PSBjdXJyZW50VGltZQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTsKICAgICAgICAgICAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgY29udGludWF0aW9uQ2FsbGJhY2spIHsKICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhc2suY2FsbGJhY2sgPSBjb250aW51YXRpb25DYWxsYmFjazsKICAgICAgICAgICAgICAgICAgICAgICAgYWR2YW5jZVRpbWVycyhjdXJyZW50VGltZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGhhc01vcmVXb3JrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYjsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXNrID09PSBwZWVrKHRhc2tRdWV1ZSkgJiYgcG9wKHRhc2tRdWV1ZSk7CiAgICAgICAgICAgICAgICAgICAgICBhZHZhbmNlVGltZXJzKGN1cnJlbnRUaW1lKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgcG9wKHRhc2tRdWV1ZSk7CiAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhc2sgPSBwZWVrKHRhc2tRdWV1ZSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnRUYXNrKSBoYXNNb3JlV29yayA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHZhciBmaXJzdFRpbWVyID0gcGVlayh0aW1lclF1ZXVlKTsKICAgICAgICAgICAgICAgICAgICBudWxsICE9PSBmaXJzdFRpbWVyICYmIHJlcXVlc3RIb3N0VGltZW91dCgKICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVRpbWVvdXQsCiAgICAgICAgICAgICAgICAgICAgICBmaXJzdFRpbWVyLnN0YXJ0VGltZSAtIGN1cnJlbnRUaW1lCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBoYXNNb3JlV29yayA9IGZhbHNlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICBjdXJyZW50VGFzayA9IG51bGwsIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJldmlvdXNQcmlvcml0eUxldmVsLCBpc1BlcmZvcm1pbmdXb3JrID0gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGhhc01vcmVXb3JrID0gdm9pZCAwOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBoYXNNb3JlV29yayA/IHNjaGVkdWxlUGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lKCkgOiBpc01lc3NhZ2VMb29wUnVubmluZyA9IGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBwdXNoKGhlYXAsIG5vZGUpIHsKICAgICAgICB2YXIgaW5kZXggPSBoZWFwLmxlbmd0aDsKICAgICAgICBoZWFwLnB1c2gobm9kZSk7CiAgICAgICAgYTogZm9yICg7IDAgPCBpbmRleDsgKSB7CiAgICAgICAgICB2YXIgcGFyZW50SW5kZXggPSBpbmRleCAtIDEgPj4+IDEsIHBhcmVudCA9IGhlYXBbcGFyZW50SW5kZXhdOwogICAgICAgICAgaWYgKDAgPCBjb21wYXJlKHBhcmVudCwgbm9kZSkpCiAgICAgICAgICAgIGhlYXBbcGFyZW50SW5kZXhdID0gbm9kZSwgaGVhcFtpbmRleF0gPSBwYXJlbnQsIGluZGV4ID0gcGFyZW50SW5kZXg7CiAgICAgICAgICBlbHNlIGJyZWFrIGE7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHBlZWsoaGVhcCkgewogICAgICAgIHJldHVybiAwID09PSBoZWFwLmxlbmd0aCA/IG51bGwgOiBoZWFwWzBdOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHBvcChoZWFwKSB7CiAgICAgICAgaWYgKDAgPT09IGhlYXAubGVuZ3RoKSByZXR1cm4gbnVsbDsKICAgICAgICB2YXIgZmlyc3QgPSBoZWFwWzBdLCBsYXN0ID0gaGVhcC5wb3AoKTsKICAgICAgICBpZiAobGFzdCAhPT0gZmlyc3QpIHsKICAgICAgICAgIGhlYXBbMF0gPSBsYXN0OwogICAgICAgICAgYTogZm9yICh2YXIgaW5kZXggPSAwLCBsZW5ndGggPSBoZWFwLmxlbmd0aCwgaGFsZkxlbmd0aCA9IGxlbmd0aCA+Pj4gMTsgaW5kZXggPCBoYWxmTGVuZ3RoOyApIHsKICAgICAgICAgICAgdmFyIGxlZnRJbmRleCA9IDIgKiAoaW5kZXggKyAxKSAtIDEsIGxlZnQgPSBoZWFwW2xlZnRJbmRleF0sIHJpZ2h0SW5kZXggPSBsZWZ0SW5kZXggKyAxLCByaWdodCA9IGhlYXBbcmlnaHRJbmRleF07CiAgICAgICAgICAgIGlmICgwID4gY29tcGFyZShsZWZ0LCBsYXN0KSkKICAgICAgICAgICAgICByaWdodEluZGV4IDwgbGVuZ3RoICYmIDAgPiBjb21wYXJlKHJpZ2h0LCBsZWZ0KSA/IChoZWFwW2luZGV4XSA9IHJpZ2h0LCBoZWFwW3JpZ2h0SW5kZXhdID0gbGFzdCwgaW5kZXggPSByaWdodEluZGV4KSA6IChoZWFwW2luZGV4XSA9IGxlZnQsIGhlYXBbbGVmdEluZGV4XSA9IGxhc3QsIGluZGV4ID0gbGVmdEluZGV4KTsKICAgICAgICAgICAgZWxzZSBpZiAocmlnaHRJbmRleCA8IGxlbmd0aCAmJiAwID4gY29tcGFyZShyaWdodCwgbGFzdCkpCiAgICAgICAgICAgICAgaGVhcFtpbmRleF0gPSByaWdodCwgaGVhcFtyaWdodEluZGV4XSA9IGxhc3QsIGluZGV4ID0gcmlnaHRJbmRleDsKICAgICAgICAgICAgZWxzZSBicmVhayBhOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmlyc3Q7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tcGFyZShhLCBiKSB7CiAgICAgICAgdmFyIGRpZmYgPSBhLnNvcnRJbmRleCAtIGIuc29ydEluZGV4OwogICAgICAgIHJldHVybiAwICE9PSBkaWZmID8gZGlmZiA6IGEuaWQgLSBiLmlkOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpIHsKICAgICAgICBmb3IgKHZhciB0aW1lciA9IHBlZWsodGltZXJRdWV1ZSk7IG51bGwgIT09IHRpbWVyOyApIHsKICAgICAgICAgIGlmIChudWxsID09PSB0aW1lci5jYWxsYmFjaykgcG9wKHRpbWVyUXVldWUpOwogICAgICAgICAgZWxzZSBpZiAodGltZXIuc3RhcnRUaW1lIDw9IGN1cnJlbnRUaW1lKQogICAgICAgICAgICBwb3AodGltZXJRdWV1ZSksIHRpbWVyLnNvcnRJbmRleCA9IHRpbWVyLmV4cGlyYXRpb25UaW1lLCBwdXNoKHRhc2tRdWV1ZSwgdGltZXIpOwogICAgICAgICAgZWxzZSBicmVhazsKICAgICAgICAgIHRpbWVyID0gcGVlayh0aW1lclF1ZXVlKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaGFuZGxlVGltZW91dChjdXJyZW50VGltZSkgewogICAgICAgIGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQgPSBmYWxzZTsKICAgICAgICBhZHZhbmNlVGltZXJzKGN1cnJlbnRUaW1lKTsKICAgICAgICBpZiAoIWlzSG9zdENhbGxiYWNrU2NoZWR1bGVkKQogICAgICAgICAgaWYgKG51bGwgIT09IHBlZWsodGFza1F1ZXVlKSkKICAgICAgICAgICAgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSB0cnVlLCBpc01lc3NhZ2VMb29wUnVubmluZyB8fCAoaXNNZXNzYWdlTG9vcFJ1bm5pbmcgPSB0cnVlLCBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSgpKTsKICAgICAgICAgIGVsc2UgewogICAgICAgICAgICB2YXIgZmlyc3RUaW1lciA9IHBlZWsodGltZXJRdWV1ZSk7CiAgICAgICAgICAgIG51bGwgIT09IGZpcnN0VGltZXIgJiYgcmVxdWVzdEhvc3RUaW1lb3V0KAogICAgICAgICAgICAgIGhhbmRsZVRpbWVvdXQsCiAgICAgICAgICAgICAgZmlyc3RUaW1lci5zdGFydFRpbWUgLSBjdXJyZW50VGltZQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNob3VsZFlpZWxkVG9Ib3N0KCkgewogICAgICAgIHJldHVybiBuZWVkc1BhaW50ID8gdHJ1ZSA6IGV4cG9ydHMudW5zdGFibGVfbm93KCkgLSBzdGFydFRpbWUgPCBmcmFtZUludGVydmFsID8gZmFsc2UgOiB0cnVlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlcXVlc3RIb3N0VGltZW91dChjYWxsYmFjaywgbXMpIHsKICAgICAgICB0YXNrVGltZW91dElEID0gbG9jYWxTZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgY2FsbGJhY2soZXhwb3J0cy51bnN0YWJsZV9ub3coKSk7CiAgICAgICAgfSwgbXMpOwogICAgICB9CiAgICAgICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0YXJ0ICYmIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQoRXJyb3IoKSk7CiAgICAgIGV4cG9ydHMudW5zdGFibGVfbm93ID0gdm9pZCAwOwogICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiBwZXJmb3JtYW5jZSAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgcGVyZm9ybWFuY2Uubm93KSB7CiAgICAgICAgdmFyIGxvY2FsUGVyZm9ybWFuY2UgPSBwZXJmb3JtYW5jZTsKICAgICAgICBleHBvcnRzLnVuc3RhYmxlX25vdyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGxvY2FsUGVyZm9ybWFuY2Uubm93KCk7CiAgICAgICAgfTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgbG9jYWxEYXRlID0gRGF0ZSwgaW5pdGlhbFRpbWUgPSBsb2NhbERhdGUubm93KCk7CiAgICAgICAgZXhwb3J0cy51bnN0YWJsZV9ub3cgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBsb2NhbERhdGUubm93KCkgLSBpbml0aWFsVGltZTsKICAgICAgICB9OwogICAgICB9CiAgICAgIHZhciB0YXNrUXVldWUgPSBbXSwgdGltZXJRdWV1ZSA9IFtdLCB0YXNrSWRDb3VudGVyID0gMSwgY3VycmVudFRhc2sgPSBudWxsLCBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IDMsIGlzUGVyZm9ybWluZ1dvcmsgPSBmYWxzZSwgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSBmYWxzZSwgaXNIb3N0VGltZW91dFNjaGVkdWxlZCA9IGZhbHNlLCBuZWVkc1BhaW50ID0gZmFsc2UsIGxvY2FsU2V0VGltZW91dCA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBzZXRUaW1lb3V0ID8gc2V0VGltZW91dCA6IG51bGwsIGxvY2FsQ2xlYXJUaW1lb3V0ID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGNsZWFyVGltZW91dCA/IGNsZWFyVGltZW91dCA6IG51bGwsIGxvY2FsU2V0SW1tZWRpYXRlID0gInVuZGVmaW5lZCIgIT09IHR5cGVvZiBzZXRJbW1lZGlhdGUgPyBzZXRJbW1lZGlhdGUgOiBudWxsLCBpc01lc3NhZ2VMb29wUnVubmluZyA9IGZhbHNlLCB0YXNrVGltZW91dElEID0gLTEsIGZyYW1lSW50ZXJ2YWwgPSA1LCBzdGFydFRpbWUgPSAtMTsKICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBsb2NhbFNldEltbWVkaWF0ZSkKICAgICAgICB2YXIgc2NoZWR1bGVQZXJmb3JtV29ya1VudGlsRGVhZGxpbmUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGxvY2FsU2V0SW1tZWRpYXRlKHBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSk7CiAgICAgICAgfTsKICAgICAgZWxzZSBpZiAoInVuZGVmaW5lZCIgIT09IHR5cGVvZiBNZXNzYWdlQ2hhbm5lbCkgewogICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCksIHBvcnQgPSBjaGFubmVsLnBvcnQyOwogICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gcGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lOwogICAgICAgIHNjaGVkdWxlUGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKG51bGwpOwogICAgICAgIH07CiAgICAgIH0gZWxzZQogICAgICAgIHNjaGVkdWxlUGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBsb2NhbFNldFRpbWVvdXQocGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lLCAwKTsKICAgICAgICB9OwogICAgICBleHBvcnRzLnVuc3RhYmxlX0lkbGVQcmlvcml0eSA9IDU7CiAgICAgIGV4cG9ydHMudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHkgPSAxOwogICAgICBleHBvcnRzLnVuc3RhYmxlX0xvd1ByaW9yaXR5ID0gNDsKICAgICAgZXhwb3J0cy51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSA9IDM7CiAgICAgIGV4cG9ydHMudW5zdGFibGVfUHJvZmlsaW5nID0gbnVsbDsKICAgICAgZXhwb3J0cy51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSA9IDI7CiAgICAgIGV4cG9ydHMudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2sgPSBmdW5jdGlvbih0YXNrKSB7CiAgICAgICAgdGFzay5jYWxsYmFjayA9IG51bGw7CiAgICAgIH07CiAgICAgIGV4cG9ydHMudW5zdGFibGVfZm9yY2VGcmFtZVJhdGUgPSBmdW5jdGlvbihmcHMpIHsKICAgICAgICAwID4gZnBzIHx8IDEyNSA8IGZwcyA/IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkIgogICAgICAgICkgOiBmcmFtZUludGVydmFsID0gMCA8IGZwcyA/IE1hdGguZmxvb3IoMWUzIC8gZnBzKSA6IDU7CiAgICAgIH07CiAgICAgIGV4cG9ydHMudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwgPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gY3VycmVudFByaW9yaXR5TGV2ZWw7CiAgICAgIH07CiAgICAgIGV4cG9ydHMudW5zdGFibGVfbmV4dCA9IGZ1bmN0aW9uKGV2ZW50SGFuZGxlcikgewogICAgICAgIHN3aXRjaCAoY3VycmVudFByaW9yaXR5TGV2ZWwpIHsKICAgICAgICAgIGNhc2UgMToKICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgdmFyIHByaW9yaXR5TGV2ZWwgPSAzOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDsKICAgICAgICB9CiAgICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsOwogICAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJpb3JpdHlMZXZlbDsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIGV2ZW50SGFuZGxlcigpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByZXZpb3VzUHJpb3JpdHlMZXZlbDsKICAgICAgICB9CiAgICAgIH07CiAgICAgIGV4cG9ydHMudW5zdGFibGVfcmVxdWVzdFBhaW50ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgbmVlZHNQYWludCA9IHRydWU7CiAgICAgIH07CiAgICAgIGV4cG9ydHMudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5ID0gZnVuY3Rpb24ocHJpb3JpdHlMZXZlbCwgZXZlbnRIYW5kbGVyKSB7CiAgICAgICAgc3dpdGNoIChwcmlvcml0eUxldmVsKSB7CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcHJpb3JpdHlMZXZlbCA9IDM7CiAgICAgICAgfQogICAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDsKICAgICAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByaW9yaXR5TGV2ZWw7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJldHVybiBldmVudEhhbmRsZXIoKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmV2aW91c1ByaW9yaXR5TGV2ZWw7CiAgICAgICAgfQogICAgICB9OwogICAgICBleHBvcnRzLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbihwcmlvcml0eUxldmVsLCBjYWxsYmFjaywgb3B0aW9ucykgewogICAgICAgIHZhciBjdXJyZW50VGltZSA9IGV4cG9ydHMudW5zdGFibGVfbm93KCk7CiAgICAgICAgIm9iamVjdCIgPT09IHR5cGVvZiBvcHRpb25zICYmIG51bGwgIT09IG9wdGlvbnMgPyAob3B0aW9ucyA9IG9wdGlvbnMuZGVsYXksIG9wdGlvbnMgPSAibnVtYmVyIiA9PT0gdHlwZW9mIG9wdGlvbnMgJiYgMCA8IG9wdGlvbnMgPyBjdXJyZW50VGltZSArIG9wdGlvbnMgOiBjdXJyZW50VGltZSkgOiBvcHRpb25zID0gY3VycmVudFRpbWU7CiAgICAgICAgc3dpdGNoIChwcmlvcml0eUxldmVsKSB7CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHZhciB0aW1lb3V0ID0gLTE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICB0aW1lb3V0ID0gMjUwOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgdGltZW91dCA9IDEwNzM3NDE4MjM7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICB0aW1lb3V0ID0gMWU0OwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRpbWVvdXQgPSA1ZTM7CiAgICAgICAgfQogICAgICAgIHRpbWVvdXQgPSBvcHRpb25zICsgdGltZW91dDsKICAgICAgICBwcmlvcml0eUxldmVsID0gewogICAgICAgICAgaWQ6IHRhc2tJZENvdW50ZXIrKywKICAgICAgICAgIGNhbGxiYWNrLAogICAgICAgICAgcHJpb3JpdHlMZXZlbCwKICAgICAgICAgIHN0YXJ0VGltZTogb3B0aW9ucywKICAgICAgICAgIGV4cGlyYXRpb25UaW1lOiB0aW1lb3V0LAogICAgICAgICAgc29ydEluZGV4OiAtMQogICAgICAgIH07CiAgICAgICAgb3B0aW9ucyA+IGN1cnJlbnRUaW1lID8gKHByaW9yaXR5TGV2ZWwuc29ydEluZGV4ID0gb3B0aW9ucywgcHVzaCh0aW1lclF1ZXVlLCBwcmlvcml0eUxldmVsKSwgbnVsbCA9PT0gcGVlayh0YXNrUXVldWUpICYmIHByaW9yaXR5TGV2ZWwgPT09IHBlZWsodGltZXJRdWV1ZSkgJiYgKGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQgPyAobG9jYWxDbGVhclRpbWVvdXQodGFza1RpbWVvdXRJRCksIHRhc2tUaW1lb3V0SUQgPSAtMSkgOiBpc0hvc3RUaW1lb3V0U2NoZWR1bGVkID0gdHJ1ZSwgcmVxdWVzdEhvc3RUaW1lb3V0KGhhbmRsZVRpbWVvdXQsIG9wdGlvbnMgLSBjdXJyZW50VGltZSkpKSA6IChwcmlvcml0eUxldmVsLnNvcnRJbmRleCA9IHRpbWVvdXQsIHB1c2godGFza1F1ZXVlLCBwcmlvcml0eUxldmVsKSwgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgfHwgaXNQZXJmb3JtaW5nV29yayB8fCAoaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSB0cnVlLCBpc01lc3NhZ2VMb29wUnVubmluZyB8fCAoaXNNZXNzYWdlTG9vcFJ1bm5pbmcgPSB0cnVlLCBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSgpKSkpOwogICAgICAgIHJldHVybiBwcmlvcml0eUxldmVsOwogICAgICB9OwogICAgICBleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkID0gc2hvdWxkWWllbGRUb0hvc3Q7CiAgICAgIGV4cG9ydHMudW5zdGFibGVfd3JhcENhbGxiYWNrID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgICAgICB2YXIgcGFyZW50UHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDsKICAgICAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcGFyZW50UHJpb3JpdHlMZXZlbDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmV2aW91c1ByaW9yaXR5TGV2ZWw7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfTsKICAgICAgInVuZGVmaW5lZCIgIT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcCAmJiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AoRXJyb3IoKSk7CiAgICB9KSgpOwogIH0KfSk7CgovLyBub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzCnZhciByZXF1aXJlX3NjaGVkdWxlciA9IF9fY29tbW9uSlMoewogICJub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzIihleHBvcnRzLCBtb2R1bGUpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIGlmIChmYWxzZSkgewogICAgICBtb2R1bGUuZXhwb3J0cyA9IG51bGw7CiAgICB9IGVsc2UgewogICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmVfc2NoZWR1bGVyX2RldmVsb3BtZW50KCk7CiAgICB9CiAgfQp9KTsKCi8vIG5vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS1jbGllbnQuZGV2ZWxvcG1lbnQuanMKdmFyIHJlcXVpcmVfcmVhY3RfZG9tX2NsaWVudF9kZXZlbG9wbWVudCA9IF9fY29tbW9uSlMoewogICJub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20tY2xpZW50LmRldmVsb3BtZW50LmpzIihleHBvcnRzKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICAoZnVuY3Rpb24oKSB7CiAgICAgIGZ1bmN0aW9uIGZpbmRIb29rKGZpYmVyLCBpZCkgewogICAgICAgIGZvciAoZmliZXIgPSBmaWJlci5tZW1vaXplZFN0YXRlOyBudWxsICE9PSBmaWJlciAmJiAwIDwgaWQ7ICkKICAgICAgICAgIGZpYmVyID0gZmliZXIubmV4dCwgaWQtLTsKICAgICAgICByZXR1cm4gZmliZXI7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29weVdpdGhTZXRJbXBsKG9iaiwgcGF0aCwgaW5kZXgsIHZhbHVlKSB7CiAgICAgICAgaWYgKGluZGV4ID49IHBhdGgubGVuZ3RoKSByZXR1cm4gdmFsdWU7CiAgICAgICAgdmFyIGtleSA9IHBhdGhbaW5kZXhdLCB1cGRhdGVkID0gaXNBcnJheUltcGwob2JqKSA/IG9iai5zbGljZSgpIDogYXNzaWduKHt9LCBvYmopOwogICAgICAgIHVwZGF0ZWRba2V5XSA9IGNvcHlXaXRoU2V0SW1wbChvYmpba2V5XSwgcGF0aCwgaW5kZXggKyAxLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIHVwZGF0ZWQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29weVdpdGhSZW5hbWUob2JqLCBvbGRQYXRoLCBuZXdQYXRoKSB7CiAgICAgICAgaWYgKG9sZFBhdGgubGVuZ3RoICE9PSBuZXdQYXRoLmxlbmd0aCkKICAgICAgICAgIGNvbnNvbGUud2FybigiY29weVdpdGhSZW5hbWUoKSBleHBlY3RzIHBhdGhzIG9mIHRoZSBzYW1lIGxlbmd0aCIpOwogICAgICAgIGVsc2UgewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdQYXRoLmxlbmd0aCAtIDE7IGkrKykKICAgICAgICAgICAgaWYgKG9sZFBhdGhbaV0gIT09IG5ld1BhdGhbaV0pIHsKICAgICAgICAgICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgICAgICAgICAiY29weVdpdGhSZW5hbWUoKSBleHBlY3RzIHBhdGhzIHRvIGJlIHRoZSBzYW1lIGV4Y2VwdCBmb3IgdGhlIGRlZXBlc3Qga2V5IgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gY29weVdpdGhSZW5hbWVJbXBsKG9iaiwgb2xkUGF0aCwgbmV3UGF0aCwgMCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNvcHlXaXRoUmVuYW1lSW1wbChvYmosIG9sZFBhdGgsIG5ld1BhdGgsIGluZGV4KSB7CiAgICAgICAgdmFyIG9sZEtleSA9IG9sZFBhdGhbaW5kZXhdLCB1cGRhdGVkID0gaXNBcnJheUltcGwob2JqKSA/IG9iai5zbGljZSgpIDogYXNzaWduKHt9LCBvYmopOwogICAgICAgIGluZGV4ICsgMSA9PT0gb2xkUGF0aC5sZW5ndGggPyAodXBkYXRlZFtuZXdQYXRoW2luZGV4XV0gPSB1cGRhdGVkW29sZEtleV0sIGlzQXJyYXlJbXBsKHVwZGF0ZWQpID8gdXBkYXRlZC5zcGxpY2Uob2xkS2V5LCAxKSA6IGRlbGV0ZSB1cGRhdGVkW29sZEtleV0pIDogdXBkYXRlZFtvbGRLZXldID0gY29weVdpdGhSZW5hbWVJbXBsKAogICAgICAgICAgb2JqW29sZEtleV0sCiAgICAgICAgICBvbGRQYXRoLAogICAgICAgICAgbmV3UGF0aCwKICAgICAgICAgIGluZGV4ICsgMQogICAgICAgICk7CiAgICAgICAgcmV0dXJuIHVwZGF0ZWQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29weVdpdGhEZWxldGVJbXBsKG9iaiwgcGF0aCwgaW5kZXgpIHsKICAgICAgICB2YXIga2V5ID0gcGF0aFtpbmRleF0sIHVwZGF0ZWQgPSBpc0FycmF5SW1wbChvYmopID8gb2JqLnNsaWNlKCkgOiBhc3NpZ24oe30sIG9iaik7CiAgICAgICAgaWYgKGluZGV4ICsgMSA9PT0gcGF0aC5sZW5ndGgpCiAgICAgICAgICByZXR1cm4gaXNBcnJheUltcGwodXBkYXRlZCkgPyB1cGRhdGVkLnNwbGljZShrZXksIDEpIDogZGVsZXRlIHVwZGF0ZWRba2V5XSwgdXBkYXRlZDsKICAgICAgICB1cGRhdGVkW2tleV0gPSBjb3B5V2l0aERlbGV0ZUltcGwob2JqW2tleV0sIHBhdGgsIGluZGV4ICsgMSk7CiAgICAgICAgcmV0dXJuIHVwZGF0ZWQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2hvdWxkU3VzcGVuZEltcGwoKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNob3VsZEVycm9ySW1wbCgpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKSB7CiAgICAgICAgY29uc29sZS5lcnJvcigKICAgICAgICAgICJEbyBub3QgY2FsbCBIb29rcyBpbnNpZGUgdXNlRWZmZWN0KC4uLiksIHVzZU1lbW8oLi4uKSwgb3Igb3RoZXIgYnVpbHQtaW4gSG9va3MuIFlvdSBjYW4gb25seSBjYWxsIEhvb2tzIGF0IHRoZSB0b3AgbGV2ZWwgb2YgeW91ciBSZWFjdCBmdW5jdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL3J1bGVzLW9mLWhvb2tzIgogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gd2FybkludmFsaWRDb250ZXh0QWNjZXNzKCkgewogICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiQ29udGV4dCBjYW4gb25seSBiZSByZWFkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZy4gSW4gY2xhc3NlcywgeW91IGNhbiByZWFkIGl0IGluIHRoZSByZW5kZXIgbWV0aG9kIG9yIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90IGluc2lkZSBIb29rcyBsaWtlIHVzZVJlZHVjZXIoKSBvciB1c2VNZW1vKCkuIgogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbm9vcCgpIHsKICAgICAgfQogICAgICBmdW5jdGlvbiB3YXJuRm9yTWlzc2luZ0tleSgpIHsKICAgICAgfQogICAgICBmdW5jdGlvbiBzZXRUb1NvcnRlZFN0cmluZyhzZXQpIHsKICAgICAgICB2YXIgYXJyYXkgPSBbXTsKICAgICAgICBzZXQuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgYXJyYXkucHVzaCh2YWx1ZSk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGFycmF5LnNvcnQoKS5qb2luKCIsICIpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNyZWF0ZUZpYmVyKHRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpIHsKICAgICAgICByZXR1cm4gbmV3IEZpYmVyTm9kZSh0YWcsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzY2hlZHVsZVJvb3Qocm9vdDIsIGVsZW1lbnQpIHsKICAgICAgICByb290Mi5jb250ZXh0ID09PSBlbXB0eUNvbnRleHRPYmplY3QgJiYgKHVwZGF0ZUNvbnRhaW5lckltcGwocm9vdDIuY3VycmVudCwgMiwgZWxlbWVudCwgcm9vdDIsIG51bGwsIG51bGwpLCBmbHVzaFN5bmNXb3JrJDEoKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2NoZWR1bGVSZWZyZXNoKHJvb3QyLCB1cGRhdGUpIHsKICAgICAgICBpZiAobnVsbCAhPT0gcmVzb2x2ZUZhbWlseSkgewogICAgICAgICAgdmFyIHN0YWxlRmFtaWxpZXMgPSB1cGRhdGUuc3RhbGVGYW1pbGllczsKICAgICAgICAgIHVwZGF0ZSA9IHVwZGF0ZS51cGRhdGVkRmFtaWxpZXM7CiAgICAgICAgICBmbHVzaFBlbmRpbmdFZmZlY3RzKCk7CiAgICAgICAgICBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KAogICAgICAgICAgICByb290Mi5jdXJyZW50LAogICAgICAgICAgICB1cGRhdGUsCiAgICAgICAgICAgIHN0YWxlRmFtaWxpZXMKICAgICAgICAgICk7CiAgICAgICAgICBmbHVzaFN5bmNXb3JrJDEoKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2V0UmVmcmVzaEhhbmRsZXIoaGFuZGxlcikgewogICAgICAgIHJlc29sdmVGYW1pbHkgPSBoYW5kbGVyOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzVmFsaWRDb250YWluZXIobm9kZSkgewogICAgICAgIHJldHVybiAhKCFub2RlIHx8IDEgIT09IG5vZGUubm9kZVR5cGUgJiYgOSAhPT0gbm9kZS5ub2RlVHlwZSAmJiAxMSAhPT0gbm9kZS5ub2RlVHlwZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0TmVhcmVzdE1vdW50ZWRGaWJlcihmaWJlcikgewogICAgICAgIHZhciBub2RlID0gZmliZXIsIG5lYXJlc3RNb3VudGVkID0gZmliZXI7CiAgICAgICAgaWYgKGZpYmVyLmFsdGVybmF0ZSkgZm9yICg7IG5vZGUucmV0dXJuOyApIG5vZGUgPSBub2RlLnJldHVybjsKICAgICAgICBlbHNlIHsKICAgICAgICAgIGZpYmVyID0gbm9kZTsKICAgICAgICAgIGRvCiAgICAgICAgICAgIG5vZGUgPSBmaWJlciwgMCAhPT0gKG5vZGUuZmxhZ3MgJiA0MDk4KSAmJiAobmVhcmVzdE1vdW50ZWQgPSBub2RlLnJldHVybiksIGZpYmVyID0gbm9kZS5yZXR1cm47CiAgICAgICAgICB3aGlsZSAoZmliZXIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMyA9PT0gbm9kZS50YWcgPyBuZWFyZXN0TW91bnRlZCA6IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0U3VzcGVuc2VJbnN0YW5jZUZyb21GaWJlcihmaWJlcikgewogICAgICAgIGlmICgxMyA9PT0gZmliZXIudGFnKSB7CiAgICAgICAgICB2YXIgc3VzcGVuc2VTdGF0ZSA9IGZpYmVyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgICBudWxsID09PSBzdXNwZW5zZVN0YXRlICYmIChmaWJlciA9IGZpYmVyLmFsdGVybmF0ZSwgbnVsbCAhPT0gZmliZXIgJiYgKHN1c3BlbnNlU3RhdGUgPSBmaWJlci5tZW1vaXplZFN0YXRlKSk7CiAgICAgICAgICBpZiAobnVsbCAhPT0gc3VzcGVuc2VTdGF0ZSkgcmV0dXJuIHN1c3BlbnNlU3RhdGUuZGVoeWRyYXRlZDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0QWN0aXZpdHlJbnN0YW5jZUZyb21GaWJlcihmaWJlcikgewogICAgICAgIGlmICgzMSA9PT0gZmliZXIudGFnKSB7CiAgICAgICAgICB2YXIgYWN0aXZpdHlTdGF0ZSA9IGZpYmVyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgICBudWxsID09PSBhY3Rpdml0eVN0YXRlICYmIChmaWJlciA9IGZpYmVyLmFsdGVybmF0ZSwgbnVsbCAhPT0gZmliZXIgJiYgKGFjdGl2aXR5U3RhdGUgPSBmaWJlci5tZW1vaXplZFN0YXRlKSk7CiAgICAgICAgICBpZiAobnVsbCAhPT0gYWN0aXZpdHlTdGF0ZSkgcmV0dXJuIGFjdGl2aXR5U3RhdGUuZGVoeWRyYXRlZDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYXNzZXJ0SXNNb3VudGVkKGZpYmVyKSB7CiAgICAgICAgaWYgKGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpICE9PSBmaWJlcikKICAgICAgICAgIHRocm93IEVycm9yKCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuIik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZmluZEN1cnJlbnRGaWJlclVzaW5nU2xvd1BhdGgoZmliZXIpIHsKICAgICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlOwogICAgICAgIGlmICghYWx0ZXJuYXRlKSB7CiAgICAgICAgICBhbHRlcm5hdGUgPSBnZXROZWFyZXN0TW91bnRlZEZpYmVyKGZpYmVyKTsKICAgICAgICAgIGlmIChudWxsID09PSBhbHRlcm5hdGUpCiAgICAgICAgICAgIHRocm93IEVycm9yKCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuIik7CiAgICAgICAgICByZXR1cm4gYWx0ZXJuYXRlICE9PSBmaWJlciA/IG51bGwgOiBmaWJlcjsKICAgICAgICB9CiAgICAgICAgZm9yICh2YXIgYSA9IGZpYmVyLCBiID0gYWx0ZXJuYXRlOyA7ICkgewogICAgICAgICAgdmFyIHBhcmVudEEgPSBhLnJldHVybjsKICAgICAgICAgIGlmIChudWxsID09PSBwYXJlbnRBKSBicmVhazsKICAgICAgICAgIHZhciBwYXJlbnRCID0gcGFyZW50QS5hbHRlcm5hdGU7CiAgICAgICAgICBpZiAobnVsbCA9PT0gcGFyZW50QikgewogICAgICAgICAgICBiID0gcGFyZW50QS5yZXR1cm47CiAgICAgICAgICAgIGlmIChudWxsICE9PSBiKSB7CiAgICAgICAgICAgICAgYSA9IGI7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocGFyZW50QS5jaGlsZCA9PT0gcGFyZW50Qi5jaGlsZCkgewogICAgICAgICAgICBmb3IgKHBhcmVudEIgPSBwYXJlbnRBLmNoaWxkOyBwYXJlbnRCOyApIHsKICAgICAgICAgICAgICBpZiAocGFyZW50QiA9PT0gYSkgcmV0dXJuIGFzc2VydElzTW91bnRlZChwYXJlbnRBKSwgZmliZXI7CiAgICAgICAgICAgICAgaWYgKHBhcmVudEIgPT09IGIpIHJldHVybiBhc3NlcnRJc01vdW50ZWQocGFyZW50QSksIGFsdGVybmF0ZTsKICAgICAgICAgICAgICBwYXJlbnRCID0gcGFyZW50Qi5zaWJsaW5nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRocm93IEVycm9yKCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuIik7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoYS5yZXR1cm4gIT09IGIucmV0dXJuKSBhID0gcGFyZW50QSwgYiA9IHBhcmVudEI7CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZm9yICh2YXIgZGlkRmluZENoaWxkID0gZmFsc2UsIF9jaGlsZCA9IHBhcmVudEEuY2hpbGQ7IF9jaGlsZDsgKSB7CiAgICAgICAgICAgICAgaWYgKF9jaGlsZCA9PT0gYSkgewogICAgICAgICAgICAgICAgZGlkRmluZENoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGEgPSBwYXJlbnRBOwogICAgICAgICAgICAgICAgYiA9IHBhcmVudEI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKF9jaGlsZCA9PT0gYikgewogICAgICAgICAgICAgICAgZGlkRmluZENoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGIgPSBwYXJlbnRBOwogICAgICAgICAgICAgICAgYSA9IHBhcmVudEI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NoaWxkID0gX2NoaWxkLnNpYmxpbmc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFkaWRGaW5kQ2hpbGQpIHsKICAgICAgICAgICAgICBmb3IgKF9jaGlsZCA9IHBhcmVudEIuY2hpbGQ7IF9jaGlsZDsgKSB7CiAgICAgICAgICAgICAgICBpZiAoX2NoaWxkID09PSBhKSB7CiAgICAgICAgICAgICAgICAgIGRpZEZpbmRDaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGEgPSBwYXJlbnRCOwogICAgICAgICAgICAgICAgICBiID0gcGFyZW50QTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoX2NoaWxkID09PSBiKSB7CiAgICAgICAgICAgICAgICAgIGRpZEZpbmRDaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGIgPSBwYXJlbnRCOwogICAgICAgICAgICAgICAgICBhID0gcGFyZW50QTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBfY2hpbGQgPSBfY2hpbGQuc2libGluZzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKCFkaWRGaW5kQ2hpbGQpCiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICAgIkNoaWxkIHdhcyBub3QgZm91bmQgaW4gZWl0aGVyIHBhcmVudCBzZXQuIFRoaXMgaW5kaWNhdGVzIGEgYnVnIGluIFJlYWN0IHJlbGF0ZWQgdG8gdGhlIHJldHVybiBwb2ludGVyLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoYS5hbHRlcm5hdGUgIT09IGIpCiAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICJSZXR1cm4gZmliZXJzIHNob3VsZCBhbHdheXMgYmUgZWFjaCBvdGhlcnMnIGFsdGVybmF0ZXMuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBpZiAoMyAhPT0gYS50YWcpCiAgICAgICAgICB0aHJvdyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgbm9kZSBvbiBhbiB1bm1vdW50ZWQgY29tcG9uZW50LiIpOwogICAgICAgIHJldHVybiBhLnN0YXRlTm9kZS5jdXJyZW50ID09PSBhID8gZmliZXIgOiBhbHRlcm5hdGU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZmluZEN1cnJlbnRIb3N0RmliZXJJbXBsKG5vZGUpIHsKICAgICAgICB2YXIgdGFnID0gbm9kZS50YWc7CiAgICAgICAgaWYgKDUgPT09IHRhZyB8fCAyNiA9PT0gdGFnIHx8IDI3ID09PSB0YWcgfHwgNiA9PT0gdGFnKSByZXR1cm4gbm9kZTsKICAgICAgICBmb3IgKG5vZGUgPSBub2RlLmNoaWxkOyBudWxsICE9PSBub2RlOyApIHsKICAgICAgICAgIHRhZyA9IGZpbmRDdXJyZW50SG9zdEZpYmVySW1wbChub2RlKTsKICAgICAgICAgIGlmIChudWxsICE9PSB0YWcpIHJldHVybiB0YWc7CiAgICAgICAgICBub2RlID0gbm9kZS5zaWJsaW5nOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHsKICAgICAgICBpZiAobnVsbCA9PT0gbWF5YmVJdGVyYWJsZSB8fCAib2JqZWN0IiAhPT0gdHlwZW9mIG1heWJlSXRlcmFibGUpCiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICBtYXliZUl0ZXJhYmxlID0gTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSB8fCBtYXliZUl0ZXJhYmxlWyJAQGl0ZXJhdG9yIl07CiAgICAgICAgcmV0dXJuICJmdW5jdGlvbiIgPT09IHR5cGVvZiBtYXliZUl0ZXJhYmxlID8gbWF5YmVJdGVyYWJsZSA6IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHsKICAgICAgICBpZiAobnVsbCA9PSB0eXBlKSByZXR1cm4gbnVsbDsKICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHR5cGUpCiAgICAgICAgICByZXR1cm4gdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA/IG51bGwgOiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsOwogICAgICAgIGlmICgic3RyaW5nIiA9PT0gdHlwZW9mIHR5cGUpIHJldHVybiB0eXBlOwogICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOgogICAgICAgICAgICByZXR1cm4gIkZyYWdtZW50IjsKICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRToKICAgICAgICAgICAgcmV0dXJuICJQcm9maWxlciI7CiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6CiAgICAgICAgICAgIHJldHVybiAiU3RyaWN0TW9kZSI7CiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6CiAgICAgICAgICAgIHJldHVybiAiU3VzcGVuc2UiOwogICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6CiAgICAgICAgICAgIHJldHVybiAiU3VzcGVuc2VMaXN0IjsKICAgICAgICAgIGNhc2UgUkVBQ1RfQUNUSVZJVFlfVFlQRToKICAgICAgICAgICAgcmV0dXJuICJBY3Rpdml0eSI7CiAgICAgICAgfQogICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIHR5cGUpCiAgICAgICAgICBzd2l0Y2ggKCJudW1iZXIiID09PSB0eXBlb2YgdHlwZS50YWcgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIlJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgKSwgdHlwZS4kJHR5cGVvZikgewogICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOgogICAgICAgICAgICAgIHJldHVybiAiUG9ydGFsIjsKICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6CiAgICAgICAgICAgICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgIkNvbnRleHQiOwogICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlNVTUVSX1RZUEU6CiAgICAgICAgICAgICAgcmV0dXJuICh0eXBlLl9jb250ZXh0LmRpc3BsYXlOYW1lIHx8ICJDb250ZXh0IikgKyAiLkNvbnN1bWVyIjsKICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOgogICAgICAgICAgICAgIHZhciBpbm5lclR5cGUgPSB0eXBlLnJlbmRlcjsKICAgICAgICAgICAgICB0eXBlID0gdHlwZS5kaXNwbGF5TmFtZTsKICAgICAgICAgICAgICB0eXBlIHx8ICh0eXBlID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICIiLCB0eXBlID0gIiIgIT09IHR5cGUgPyAiRm9yd2FyZFJlZigiICsgdHlwZSArICIpIiA6ICJGb3J3YXJkUmVmIik7CiAgICAgICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOgogICAgICAgICAgICAgIHJldHVybiBpbm5lclR5cGUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGwsIG51bGwgIT09IGlubmVyVHlwZSA/IGlubmVyVHlwZSA6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICJNZW1vIjsKICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6CiAgICAgICAgICAgICAgaW5uZXJUeXBlID0gdHlwZS5fcGF5bG9hZDsKICAgICAgICAgICAgICB0eXBlID0gdHlwZS5faW5pdDsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKGlubmVyVHlwZSkpOwogICAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21Pd25lcihvd25lcikgewogICAgICAgIHJldHVybiAibnVtYmVyIiA9PT0gdHlwZW9mIG93bmVyLnRhZyA/IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIob3duZXIpIDogInN0cmluZyIgPT09IHR5cGVvZiBvd25lci5uYW1lID8gb3duZXIubmFtZSA6IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgewogICAgICAgIHZhciB0eXBlID0gZmliZXIudHlwZTsKICAgICAgICBzd2l0Y2ggKGZpYmVyLnRhZykgewogICAgICAgICAgY2FzZSAzMToKICAgICAgICAgICAgcmV0dXJuICJBY3Rpdml0eSI7CiAgICAgICAgICBjYXNlIDI0OgogICAgICAgICAgICByZXR1cm4gIkNhY2hlIjsKICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgcmV0dXJuICh0eXBlLl9jb250ZXh0LmRpc3BsYXlOYW1lIHx8ICJDb250ZXh0IikgKyAiLkNvbnN1bWVyIjsKICAgICAgICAgIGNhc2UgMTA6CiAgICAgICAgICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8ICJDb250ZXh0IjsKICAgICAgICAgIGNhc2UgMTg6CiAgICAgICAgICAgIHJldHVybiAiRGVoeWRyYXRlZEZyYWdtZW50IjsKICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgIHJldHVybiBmaWJlciA9IHR5cGUucmVuZGVyLCBmaWJlciA9IGZpYmVyLmRpc3BsYXlOYW1lIHx8IGZpYmVyLm5hbWUgfHwgIiIsIHR5cGUuZGlzcGxheU5hbWUgfHwgKCIiICE9PSBmaWJlciA/ICJGb3J3YXJkUmVmKCIgKyBmaWJlciArICIpIiA6ICJGb3J3YXJkUmVmIik7CiAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgIHJldHVybiAiRnJhZ21lbnQiOwogICAgICAgICAgY2FzZSAyNjoKICAgICAgICAgIGNhc2UgMjc6CiAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIHJldHVybiB0eXBlOwogICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICByZXR1cm4gIlBvcnRhbCI7CiAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgIHJldHVybiAiUm9vdCI7CiAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgIHJldHVybiAiVGV4dCI7CiAgICAgICAgICBjYXNlIDE2OgogICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpOwogICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICByZXR1cm4gdHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA/ICJTdHJpY3RNb2RlIiA6ICJNb2RlIjsKICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgIHJldHVybiAiT2Zmc2NyZWVuIjsKICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIHJldHVybiAiUHJvZmlsZXIiOwogICAgICAgICAgY2FzZSAyMToKICAgICAgICAgICAgcmV0dXJuICJTY29wZSI7CiAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICByZXR1cm4gIlN1c3BlbnNlIjsKICAgICAgICAgIGNhc2UgMTk6CiAgICAgICAgICAgIHJldHVybiAiU3VzcGVuc2VMaXN0IjsKICAgICAgICAgIGNhc2UgMjU6CiAgICAgICAgICAgIHJldHVybiAiVHJhY2luZ01hcmtlciI7CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICBjYXNlIDE0OgogICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiB0eXBlKQogICAgICAgICAgICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsOwogICAgICAgICAgICBpZiAoInN0cmluZyIgPT09IHR5cGVvZiB0eXBlKSByZXR1cm4gdHlwZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDI5OgogICAgICAgICAgICB0eXBlID0gZmliZXIuX2RlYnVnSW5mbzsKICAgICAgICAgICAgaWYgKG51bGwgIT0gdHlwZSkgewogICAgICAgICAgICAgIGZvciAodmFyIGkgPSB0eXBlLmxlbmd0aCAtIDE7IDAgPD0gaTsgaS0tKQogICAgICAgICAgICAgICAgaWYgKCJzdHJpbmciID09PSB0eXBlb2YgdHlwZVtpXS5uYW1lKSByZXR1cm4gdHlwZVtpXS5uYW1lOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChudWxsICE9PSBmaWJlci5yZXR1cm4pCiAgICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIucmV0dXJuKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKGRlZmF1bHRWYWx1ZSkgewogICAgICAgIHJldHVybiB7IGN1cnJlbnQ6IGRlZmF1bHRWYWx1ZSB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHBvcChjdXJzb3IsIGZpYmVyKSB7CiAgICAgICAgMCA+IGluZGV4JGpzY29tcCQwID8gY29uc29sZS5lcnJvcigiVW5leHBlY3RlZCBwb3AuIikgOiAoZmliZXIgIT09IGZpYmVyU3RhY2tbaW5kZXgkanNjb21wJDBdICYmIGNvbnNvbGUuZXJyb3IoIlVuZXhwZWN0ZWQgRmliZXIgcG9wcGVkLiIpLCBjdXJzb3IuY3VycmVudCA9IHZhbHVlU3RhY2tbaW5kZXgkanNjb21wJDBdLCB2YWx1ZVN0YWNrW2luZGV4JGpzY29tcCQwXSA9IG51bGwsIGZpYmVyU3RhY2tbaW5kZXgkanNjb21wJDBdID0gbnVsbCwgaW5kZXgkanNjb21wJDAtLSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcHVzaChjdXJzb3IsIHZhbHVlLCBmaWJlcikgewogICAgICAgIGluZGV4JGpzY29tcCQwKys7CiAgICAgICAgdmFsdWVTdGFja1tpbmRleCRqc2NvbXAkMF0gPSBjdXJzb3IuY3VycmVudDsKICAgICAgICBmaWJlclN0YWNrW2luZGV4JGpzY29tcCQwXSA9IGZpYmVyOwogICAgICAgIGN1cnNvci5jdXJyZW50ID0gdmFsdWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVxdWlyZWRDb250ZXh0KGMpIHsKICAgICAgICBudWxsID09PSBjICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiRXhwZWN0ZWQgaG9zdCBjb250ZXh0IHRvIGV4aXN0LiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICApOwogICAgICAgIHJldHVybiBjOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHB1c2hIb3N0Q29udGFpbmVyKGZpYmVyLCBuZXh0Um9vdEluc3RhbmNlKSB7CiAgICAgICAgcHVzaChyb290SW5zdGFuY2VTdGFja0N1cnNvciwgbmV4dFJvb3RJbnN0YW5jZSwgZmliZXIpOwogICAgICAgIHB1c2goY29udGV4dEZpYmVyU3RhY2tDdXJzb3IsIGZpYmVyLCBmaWJlcik7CiAgICAgICAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IsIG51bGwsIGZpYmVyKTsKICAgICAgICB2YXIgbmV4dFJvb3RDb250ZXh0ID0gbmV4dFJvb3RJbnN0YW5jZS5ub2RlVHlwZTsKICAgICAgICBzd2l0Y2ggKG5leHRSb290Q29udGV4dCkgewogICAgICAgICAgY2FzZSA5OgogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgbmV4dFJvb3RDb250ZXh0ID0gOSA9PT0gbmV4dFJvb3RDb250ZXh0ID8gIiNkb2N1bWVudCIgOiAiI2ZyYWdtZW50IjsKICAgICAgICAgICAgbmV4dFJvb3RJbnN0YW5jZSA9IChuZXh0Um9vdEluc3RhbmNlID0gbmV4dFJvb3RJbnN0YW5jZS5kb2N1bWVudEVsZW1lbnQpID8gKG5leHRSb290SW5zdGFuY2UgPSBuZXh0Um9vdEluc3RhbmNlLm5hbWVzcGFjZVVSSSkgPyBnZXRPd25Ib3N0Q29udGV4dChuZXh0Um9vdEluc3RhbmNlKSA6IEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZSA6IEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZiAobmV4dFJvb3RDb250ZXh0ID0gbmV4dFJvb3RJbnN0YW5jZS50YWdOYW1lLCBuZXh0Um9vdEluc3RhbmNlID0gbmV4dFJvb3RJbnN0YW5jZS5uYW1lc3BhY2VVUkkpCiAgICAgICAgICAgICAgbmV4dFJvb3RJbnN0YW5jZSA9IGdldE93bkhvc3RDb250ZXh0KG5leHRSb290SW5zdGFuY2UpLCBuZXh0Um9vdEluc3RhbmNlID0gZ2V0Q2hpbGRIb3N0Q29udGV4dFByb2QoCiAgICAgICAgICAgICAgICBuZXh0Um9vdEluc3RhbmNlLAogICAgICAgICAgICAgICAgbmV4dFJvb3RDb250ZXh0CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgIHN3aXRjaCAobmV4dFJvb3RDb250ZXh0KSB7CiAgICAgICAgICAgICAgICBjYXNlICJzdmciOgogICAgICAgICAgICAgICAgICBuZXh0Um9vdEluc3RhbmNlID0gSG9zdENvbnRleHROYW1lc3BhY2VTdmc7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAibWF0aCI6CiAgICAgICAgICAgICAgICAgIG5leHRSb290SW5zdGFuY2UgPSBIb3N0Q29udGV4dE5hbWVzcGFjZU1hdGg7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgbmV4dFJvb3RJbnN0YW5jZSA9IEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZTsKICAgICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG5leHRSb290Q29udGV4dCA9IG5leHRSb290Q29udGV4dC50b0xvd2VyQ2FzZSgpOwogICAgICAgIG5leHRSb290Q29udGV4dCA9IHVwZGF0ZWRBbmNlc3RvckluZm9EZXYobnVsbCwgbmV4dFJvb3RDb250ZXh0KTsKICAgICAgICBuZXh0Um9vdENvbnRleHQgPSB7CiAgICAgICAgICBjb250ZXh0OiBuZXh0Um9vdEluc3RhbmNlLAogICAgICAgICAgYW5jZXN0b3JJbmZvOiBuZXh0Um9vdENvbnRleHQKICAgICAgICB9OwogICAgICAgIHBvcChjb250ZXh0U3RhY2tDdXJzb3IsIGZpYmVyKTsKICAgICAgICBwdXNoKGNvbnRleHRTdGFja0N1cnNvciwgbmV4dFJvb3RDb250ZXh0LCBmaWJlcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcG9wSG9zdENvbnRhaW5lcihmaWJlcikgewogICAgICAgIHBvcChjb250ZXh0U3RhY2tDdXJzb3IsIGZpYmVyKTsKICAgICAgICBwb3AoY29udGV4dEZpYmVyU3RhY2tDdXJzb3IsIGZpYmVyKTsKICAgICAgICBwb3Aocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IsIGZpYmVyKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRIb3N0Q29udGV4dCgpIHsKICAgICAgICByZXR1cm4gcmVxdWlyZWRDb250ZXh0KGNvbnRleHRTdGFja0N1cnNvci5jdXJyZW50KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwdXNoSG9zdENvbnRleHQoZmliZXIpIHsKICAgICAgICBudWxsICE9PSBmaWJlci5tZW1vaXplZFN0YXRlICYmIHB1c2goaG9zdFRyYW5zaXRpb25Qcm92aWRlckN1cnNvciwgZmliZXIsIGZpYmVyKTsKICAgICAgICB2YXIgY29udGV4dCA9IHJlcXVpcmVkQ29udGV4dChjb250ZXh0U3RhY2tDdXJzb3IuY3VycmVudCk7CiAgICAgICAgdmFyIHR5cGUgPSBmaWJlci50eXBlOwogICAgICAgIHZhciBuZXh0Q29udGV4dCA9IGdldENoaWxkSG9zdENvbnRleHRQcm9kKGNvbnRleHQuY29udGV4dCwgdHlwZSk7CiAgICAgICAgdHlwZSA9IHVwZGF0ZWRBbmNlc3RvckluZm9EZXYoY29udGV4dC5hbmNlc3RvckluZm8sIHR5cGUpOwogICAgICAgIG5leHRDb250ZXh0ID0geyBjb250ZXh0OiBuZXh0Q29udGV4dCwgYW5jZXN0b3JJbmZvOiB0eXBlIH07CiAgICAgICAgY29udGV4dCAhPT0gbmV4dENvbnRleHQgJiYgKHB1c2goY29udGV4dEZpYmVyU3RhY2tDdXJzb3IsIGZpYmVyLCBmaWJlciksIHB1c2goY29udGV4dFN0YWNrQ3Vyc29yLCBuZXh0Q29udGV4dCwgZmliZXIpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwb3BIb3N0Q29udGV4dChmaWJlcikgewogICAgICAgIGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLmN1cnJlbnQgPT09IGZpYmVyICYmIChwb3AoY29udGV4dFN0YWNrQ3Vyc29yLCBmaWJlciksIHBvcChjb250ZXh0RmliZXJTdGFja0N1cnNvciwgZmliZXIpKTsKICAgICAgICBob3N0VHJhbnNpdGlvblByb3ZpZGVyQ3Vyc29yLmN1cnJlbnQgPT09IGZpYmVyICYmIChwb3AoaG9zdFRyYW5zaXRpb25Qcm92aWRlckN1cnNvciwgZmliZXIpLCBIb3N0VHJhbnNpdGlvbkNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IE5vdFBlbmRpbmdUcmFuc2l0aW9uKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkaXNhYmxlZExvZygpIHsKICAgICAgfQogICAgICBmdW5jdGlvbiBkaXNhYmxlTG9ncygpIHsKICAgICAgICBpZiAoMCA9PT0gZGlzYWJsZWREZXB0aCkgewogICAgICAgICAgcHJldkxvZyA9IGNvbnNvbGUubG9nOwogICAgICAgICAgcHJldkluZm8gPSBjb25zb2xlLmluZm87CiAgICAgICAgICBwcmV2V2FybiA9IGNvbnNvbGUud2FybjsKICAgICAgICAgIHByZXZFcnJvciA9IGNvbnNvbGUuZXJyb3I7CiAgICAgICAgICBwcmV2R3JvdXAgPSBjb25zb2xlLmdyb3VwOwogICAgICAgICAgcHJldkdyb3VwQ29sbGFwc2VkID0gY29uc29sZS5ncm91cENvbGxhcHNlZDsKICAgICAgICAgIHByZXZHcm91cEVuZCA9IGNvbnNvbGUuZ3JvdXBFbmQ7CiAgICAgICAgICB2YXIgcHJvcHMgPSB7CiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwKICAgICAgICAgICAgdmFsdWU6IGRpc2FibGVkTG9nLAogICAgICAgICAgICB3cml0YWJsZTogdHJ1ZQogICAgICAgICAgfTsKICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHsKICAgICAgICAgICAgaW5mbzogcHJvcHMsCiAgICAgICAgICAgIGxvZzogcHJvcHMsCiAgICAgICAgICAgIHdhcm46IHByb3BzLAogICAgICAgICAgICBlcnJvcjogcHJvcHMsCiAgICAgICAgICAgIGdyb3VwOiBwcm9wcywKICAgICAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IHByb3BzLAogICAgICAgICAgICBncm91cEVuZDogcHJvcHMKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBkaXNhYmxlZERlcHRoKys7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkgewogICAgICAgIGRpc2FibGVkRGVwdGgtLTsKICAgICAgICBpZiAoMCA9PT0gZGlzYWJsZWREZXB0aCkgewogICAgICAgICAgdmFyIHByb3BzID0geyBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH07CiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7CiAgICAgICAgICAgIGxvZzogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkxvZyB9KSwKICAgICAgICAgICAgaW5mbzogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkluZm8gfSksCiAgICAgICAgICAgIHdhcm46IGFzc2lnbih7fSwgcHJvcHMsIHsgdmFsdWU6IHByZXZXYXJuIH0pLAogICAgICAgICAgICBlcnJvcjogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkVycm9yIH0pLAogICAgICAgICAgICBncm91cDogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkdyb3VwIH0pLAogICAgICAgICAgICBncm91cENvbGxhcHNlZDogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkdyb3VwQ29sbGFwc2VkIH0pLAogICAgICAgICAgICBncm91cEVuZDogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkdyb3VwRW5kIH0pCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgMCA+IGRpc2FibGVkRGVwdGggJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICJkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZm9ybWF0T3duZXJTdGFjayhlcnJvcikgewogICAgICAgIHZhciBwcmV2UHJlcGFyZVN0YWNrVHJhY2UgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTsKICAgICAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHZvaWQgMDsKICAgICAgICBlcnJvciA9IGVycm9yLnN0YWNrOwogICAgICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gcHJldlByZXBhcmVTdGFja1RyYWNlOwogICAgICAgIGVycm9yLnN0YXJ0c1dpdGgoIkVycm9yOiByZWFjdC1zdGFjay10b3AtZnJhbWVcbiIpICYmIChlcnJvciA9IGVycm9yLnNsaWNlKDI5KSk7CiAgICAgICAgcHJldlByZXBhcmVTdGFja1RyYWNlID0gZXJyb3IuaW5kZXhPZigiXG4iKTsKICAgICAgICAtMSAhPT0gcHJldlByZXBhcmVTdGFja1RyYWNlICYmIChlcnJvciA9IGVycm9yLnNsaWNlKHByZXZQcmVwYXJlU3RhY2tUcmFjZSArIDEpKTsKICAgICAgICBwcmV2UHJlcGFyZVN0YWNrVHJhY2UgPSBlcnJvci5pbmRleE9mKCJyZWFjdF9zdGFja19ib3R0b21fZnJhbWUiKTsKICAgICAgICAtMSAhPT0gcHJldlByZXBhcmVTdGFja1RyYWNlICYmIChwcmV2UHJlcGFyZVN0YWNrVHJhY2UgPSBlcnJvci5sYXN0SW5kZXhPZigKICAgICAgICAgICJcbiIsCiAgICAgICAgICBwcmV2UHJlcGFyZVN0YWNrVHJhY2UKICAgICAgICApKTsKICAgICAgICBpZiAoLTEgIT09IHByZXZQcmVwYXJlU3RhY2tUcmFjZSkKICAgICAgICAgIGVycm9yID0gZXJyb3Iuc2xpY2UoMCwgcHJldlByZXBhcmVTdGFja1RyYWNlKTsKICAgICAgICBlbHNlIHJldHVybiAiIjsKICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSkgewogICAgICAgIGlmICh2b2lkIDAgPT09IHByZWZpeCkKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHRocm93IEVycm9yKCk7CiAgICAgICAgICB9IGNhdGNoICh4KSB7CiAgICAgICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cbiggKihhdCApPykvKTsKICAgICAgICAgICAgcHJlZml4ID0gbWF0Y2ggJiYgbWF0Y2hbMV0gfHwgIiI7CiAgICAgICAgICAgIHN1ZmZpeCA9IC0xIDwgeC5zdGFjay5pbmRleE9mKCJcbiAgICBhdCIpID8gIiAoPGFub255bW91cz4pIiA6IC0xIDwgeC5zdGFjay5pbmRleE9mKCJAIikgPyAiQHVua25vd246MDowIiA6ICIiOwogICAgICAgICAgfQogICAgICAgIHJldHVybiAiXG4iICsgcHJlZml4ICsgbmFtZSArIHN1ZmZpeDsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHsKICAgICAgICBpZiAoIWZuIHx8IHJlZW50cnkpIHJldHVybiAiIjsKICAgICAgICB2YXIgZnJhbWUgPSBjb21wb25lbnRGcmFtZUNhY2hlLmdldChmbik7CiAgICAgICAgaWYgKHZvaWQgMCAhPT0gZnJhbWUpIHJldHVybiBmcmFtZTsKICAgICAgICByZWVudHJ5ID0gdHJ1ZTsKICAgICAgICBmcmFtZSA9IEVycm9yLnByZXBhcmVTdGFja1RyYWNlOwogICAgICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdm9pZCAwOwogICAgICAgIHZhciBwcmV2aW91c0Rpc3BhdGNoZXIyID0gbnVsbDsKICAgICAgICBwcmV2aW91c0Rpc3BhdGNoZXIyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDsKICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gbnVsbDsKICAgICAgICBkaXNhYmxlTG9ncygpOwogICAgICAgIHRyeSB7CiAgICAgICAgICB2YXIgUnVuSW5Sb290RnJhbWUgPSB7CiAgICAgICAgICAgIERldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmIChjb25zdHJ1Y3QpIHsKICAgICAgICAgICAgICAgICAgdmFyIEZha2UgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigpOwogICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICJwcm9wcyIsIHsKICAgICAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiBSZWZsZWN0ICYmIFJlZmxlY3QuY29uc3RydWN0KSB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KEZha2UsIFtdKTsKICAgICAgICAgICAgICAgICAgICB9IGNhdGNoICh4KSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgY29udHJvbCA9IHg7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KGZuLCBbXSwgRmFrZSk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgIEZha2UuY2FsbCgpOwogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHgkMCkgewogICAgICAgICAgICAgICAgICAgICAgY29udHJvbCA9IHgkMDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTsKICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoeCQxKSB7CiAgICAgICAgICAgICAgICAgICAgY29udHJvbCA9IHgkMTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAoRmFrZSA9IGZuKCkpICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBGYWtlLmNhdGNoICYmIEZha2UuY2F0Y2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0gY2F0Y2ggKHNhbXBsZSkgewogICAgICAgICAgICAgICAgaWYgKHNhbXBsZSAmJiBjb250cm9sICYmICJzdHJpbmciID09PSB0eXBlb2Ygc2FtcGxlLnN0YWNrKQogICAgICAgICAgICAgICAgICByZXR1cm4gW3NhbXBsZS5zdGFjaywgY29udHJvbC5zdGFja107CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBbbnVsbCwgbnVsbF07CiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QuZGlzcGxheU5hbWUgPSAiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290IjsKICAgICAgICAgIHZhciBuYW1lUHJvcERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKAogICAgICAgICAgICBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsCiAgICAgICAgICAgICJuYW1lIgogICAgICAgICAgKTsKICAgICAgICAgIG5hbWVQcm9wRGVzY3JpcHRvciAmJiBuYW1lUHJvcERlc2NyaXB0b3IuY29uZmlndXJhYmxlICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgKICAgICAgICAgICAgUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LAogICAgICAgICAgICAibmFtZSIsCiAgICAgICAgICAgIHsgdmFsdWU6ICJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiIH0KICAgICAgICAgICk7CiAgICAgICAgICB2YXIgX1J1bkluUm9vdEZyYW1lJERldGVyID0gUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290KCksIHNhbXBsZVN0YWNrID0gX1J1bkluUm9vdEZyYW1lJERldGVyWzBdLCBjb250cm9sU3RhY2sgPSBfUnVuSW5Sb290RnJhbWUkRGV0ZXJbMV07CiAgICAgICAgICBpZiAoc2FtcGxlU3RhY2sgJiYgY29udHJvbFN0YWNrKSB7CiAgICAgICAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZVN0YWNrLnNwbGl0KCJcbiIpLCBjb250cm9sTGluZXMgPSBjb250cm9sU3RhY2suc3BsaXQoIlxuIik7CiAgICAgICAgICAgIGZvciAoX1J1bkluUm9vdEZyYW1lJERldGVyID0gbmFtZVByb3BEZXNjcmlwdG9yID0gMDsgbmFtZVByb3BEZXNjcmlwdG9yIDwgc2FtcGxlTGluZXMubGVuZ3RoICYmICFzYW1wbGVMaW5lc1tuYW1lUHJvcERlc2NyaXB0b3JdLmluY2x1ZGVzKAogICAgICAgICAgICAgICJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiCiAgICAgICAgICAgICk7ICkKICAgICAgICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3IrKzsKICAgICAgICAgICAgZm9yICg7IF9SdW5JblJvb3RGcmFtZSREZXRlciA8IGNvbnRyb2xMaW5lcy5sZW5ndGggJiYgIWNvbnRyb2xMaW5lc1tfUnVuSW5Sb290RnJhbWUkRGV0ZXJdLmluY2x1ZGVzKAogICAgICAgICAgICAgICJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiCiAgICAgICAgICAgICk7ICkKICAgICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXIrKzsKICAgICAgICAgICAgaWYgKG5hbWVQcm9wRGVzY3JpcHRvciA9PT0gc2FtcGxlTGluZXMubGVuZ3RoIHx8IF9SdW5JblJvb3RGcmFtZSREZXRlciA9PT0gY29udHJvbExpbmVzLmxlbmd0aCkKICAgICAgICAgICAgICBmb3IgKG5hbWVQcm9wRGVzY3JpcHRvciA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDEsIF9SdW5JblJvb3RGcmFtZSREZXRlciA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxOyAxIDw9IG5hbWVQcm9wRGVzY3JpcHRvciAmJiAwIDw9IF9SdW5JblJvb3RGcmFtZSREZXRlciAmJiBzYW1wbGVMaW5lc1tuYW1lUHJvcERlc2NyaXB0b3JdICE9PSBjb250cm9sTGluZXNbX1J1bkluUm9vdEZyYW1lJERldGVyXTsgKQogICAgICAgICAgICAgICAgX1J1bkluUm9vdEZyYW1lJERldGVyLS07CiAgICAgICAgICAgIGZvciAoOyAxIDw9IG5hbWVQcm9wRGVzY3JpcHRvciAmJiAwIDw9IF9SdW5JblJvb3RGcmFtZSREZXRlcjsgbmFtZVByb3BEZXNjcmlwdG9yLS0sIF9SdW5JblJvb3RGcmFtZSREZXRlci0tKQogICAgICAgICAgICAgIGlmIChzYW1wbGVMaW5lc1tuYW1lUHJvcERlc2NyaXB0b3JdICE9PSBjb250cm9sTGluZXNbX1J1bkluUm9vdEZyYW1lJERldGVyXSkgewogICAgICAgICAgICAgICAgaWYgKDEgIT09IG5hbWVQcm9wRGVzY3JpcHRvciB8fCAxICE9PSBfUnVuSW5Sb290RnJhbWUkRGV0ZXIpIHsKICAgICAgICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgICAgICBpZiAobmFtZVByb3BEZXNjcmlwdG9yLS0sIF9SdW5JblJvb3RGcmFtZSREZXRlci0tLCAwID4gX1J1bkluUm9vdEZyYW1lJERldGVyIHx8IHNhbXBsZUxpbmVzW25hbWVQcm9wRGVzY3JpcHRvcl0gIT09IGNvbnRyb2xMaW5lc1tfUnVuSW5Sb290RnJhbWUkRGV0ZXJdKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgX2ZyYW1lID0gIlxuIiArIHNhbXBsZUxpbmVzW25hbWVQcm9wRGVzY3JpcHRvcl0ucmVwbGFjZSgKICAgICAgICAgICAgICAgICAgICAgICAgIiBhdCBuZXcgIiwKICAgICAgICAgICAgICAgICAgICAgICAgIiBhdCAiCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgZm4uZGlzcGxheU5hbWUgJiYgX2ZyYW1lLmluY2x1ZGVzKCI8YW5vbnltb3VzPiIpICYmIChfZnJhbWUgPSBfZnJhbWUucmVwbGFjZSgiPGFub255bW91cz4iLCBmbi5kaXNwbGF5TmFtZSkpOwogICAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGZuICYmIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBfZnJhbWUpOwogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHdoaWxlICgxIDw9IG5hbWVQcm9wRGVzY3JpcHRvciAmJiAwIDw9IF9SdW5JblJvb3RGcmFtZSREZXRlcik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIHJlZW50cnkgPSBmYWxzZSwgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZpb3VzRGlzcGF0Y2hlcjIsIHJlZW5hYmxlTG9ncygpLCBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IGZyYW1lOwogICAgICAgIH0KICAgICAgICBzYW1wbGVMaW5lcyA9IChzYW1wbGVMaW5lcyA9IGZuID8gZm4uZGlzcGxheU5hbWUgfHwgZm4ubmFtZSA6ICIiKSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHNhbXBsZUxpbmVzKSA6ICIiOwogICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBmbiAmJiBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc2FtcGxlTGluZXMpOwogICAgICAgIHJldHVybiBzYW1wbGVMaW5lczsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZXNjcmliZUZpYmVyKGZpYmVyLCBjaGlsZEZpYmVyKSB7CiAgICAgICAgc3dpdGNoIChmaWJlci50YWcpIHsKICAgICAgICAgIGNhc2UgMjY6CiAgICAgICAgICBjYXNlIDI3OgogICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoZmliZXIudHlwZSk7CiAgICAgICAgICBjYXNlIDE2OgogICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoIkxhenkiKTsKICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIHJldHVybiBmaWJlci5jaGlsZCAhPT0gY2hpbGRGaWJlciAmJiBudWxsICE9PSBjaGlsZEZpYmVyID8gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoIlN1c3BlbnNlIEZhbGxiYWNrIikgOiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgiU3VzcGVuc2UiKTsKICAgICAgICAgIGNhc2UgMTk6CiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgiU3VzcGVuc2VMaXN0Iik7CiAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmaWJlci50eXBlLCBmYWxzZSk7CiAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmaWJlci50eXBlLnJlbmRlciwgZmFsc2UpOwogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmaWJlci50eXBlLCB0cnVlKTsKICAgICAgICAgIGNhc2UgMzE6CiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgiQWN0aXZpdHkiKTsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiAiIjsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0U3RhY2tCeUZpYmVySW5EZXZBbmRQcm9kKHdvcmtJblByb2dyZXNzMikgewogICAgICAgIHRyeSB7CiAgICAgICAgICB2YXIgaW5mbyA9ICIiLCBwcmV2aW91cyA9IG51bGw7CiAgICAgICAgICBkbyB7CiAgICAgICAgICAgIGluZm8gKz0gZGVzY3JpYmVGaWJlcih3b3JrSW5Qcm9ncmVzczIsIHByZXZpb3VzKTsKICAgICAgICAgICAgdmFyIGRlYnVnSW5mbyA9IHdvcmtJblByb2dyZXNzMi5fZGVidWdJbmZvOwogICAgICAgICAgICBpZiAoZGVidWdJbmZvKQogICAgICAgICAgICAgIGZvciAodmFyIGkgPSBkZWJ1Z0luZm8ubGVuZ3RoIC0gMTsgMCA8PSBpOyBpLS0pIHsKICAgICAgICAgICAgICAgIHZhciBlbnRyeSA9IGRlYnVnSW5mb1tpXTsKICAgICAgICAgICAgICAgIGlmICgic3RyaW5nIiA9PT0gdHlwZW9mIGVudHJ5Lm5hbWUpIHsKICAgICAgICAgICAgICAgICAgdmFyIEpTQ29tcGlsZXJfdGVtcF9jb25zdCA9IGluZm87CiAgICAgICAgICAgICAgICAgIGE6IHsKICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IGVudHJ5Lm5hbWUsIGVudiA9IGVudHJ5LmVudiwgbG9jYXRpb24gPSBlbnRyeS5kZWJ1Z0xvY2F0aW9uOwogICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9IGxvY2F0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGRTdGFjayA9IGZvcm1hdE93bmVyU3RhY2sobG9jYXRpb24pLCBpZHggPSBjaGlsZFN0YWNrLmxhc3RJbmRleE9mKCJcbiIpLCBsYXN0TGluZSA9IC0xID09PSBpZHggPyBjaGlsZFN0YWNrIDogY2hpbGRTdGFjay5zbGljZShpZHggKyAxKTsKICAgICAgICAgICAgICAgICAgICAgIGlmICgtMSAhPT0gbGFzdExpbmUuaW5kZXhPZihuYW1lKSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gIlxuIiArIGxhc3RMaW5lOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgKICAgICAgICAgICAgICAgICAgICAgIG5hbWUgKyAoZW52ID8gIiBbIiArIGVudiArICJdIiA6ICIiKQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaW5mbyA9IEpTQ29tcGlsZXJfdGVtcF9jb25zdCArIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIHByZXZpb3VzID0gd29ya0luUHJvZ3Jlc3MyOwogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIgPSB3b3JrSW5Qcm9ncmVzczIucmV0dXJuOwogICAgICAgICAgfSB3aGlsZSAod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgIHJldHVybiBpbmZvOwogICAgICAgIH0gY2F0Y2ggKHgpIHsKICAgICAgICAgIHJldHVybiAiXG5FcnJvciBnZW5lcmF0aW5nIHN0YWNrOiAiICsgeC5tZXNzYWdlICsgIlxuIiArIHguc3RhY2s7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZVdpdGhvdXRMaW5lTnVtYmVyKGZuKSB7CiAgICAgICAgcmV0dXJuIChmbiA9IGZuID8gZm4uZGlzcGxheU5hbWUgfHwgZm4ubmFtZSA6ICIiKSA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKGZuKSA6ICIiOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCkgewogICAgICAgIGlmIChudWxsID09PSBjdXJyZW50KSByZXR1cm4gbnVsbDsKICAgICAgICB2YXIgb3duZXIgPSBjdXJyZW50Ll9kZWJ1Z093bmVyOwogICAgICAgIHJldHVybiBudWxsICE9IG93bmVyID8gZ2V0Q29tcG9uZW50TmFtZUZyb21Pd25lcihvd25lcikgOiBudWxsOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlclN0YWNrSW5EZXYoKSB7CiAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpIHJldHVybiAiIjsKICAgICAgICB2YXIgd29ya0luUHJvZ3Jlc3MyID0gY3VycmVudDsKICAgICAgICB0cnkgewogICAgICAgICAgdmFyIGluZm8gPSAiIjsKICAgICAgICAgIDYgPT09IHdvcmtJblByb2dyZXNzMi50YWcgJiYgKHdvcmtJblByb2dyZXNzMiA9IHdvcmtJblByb2dyZXNzMi5yZXR1cm4pOwogICAgICAgICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzczIudGFnKSB7CiAgICAgICAgICAgIGNhc2UgMjY6CiAgICAgICAgICAgIGNhc2UgMjc6CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICBpbmZvICs9IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHdvcmtJblByb2dyZXNzMi50eXBlKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICBpbmZvICs9IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCJTdXNwZW5zZSIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDE5OgogICAgICAgICAgICAgIGluZm8gKz0gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoIlN1c3BlbnNlTGlzdCIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDMxOgogICAgICAgICAgICAgIGluZm8gKz0gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoIkFjdGl2aXR5Iik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzA6CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5fZGVidWdPd25lciB8fCAiIiAhPT0gaW5mbyB8fCAoaW5mbyArPSBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWVXaXRob3V0TGluZU51bWJlcigKICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi50eXBlCiAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLl9kZWJ1Z093bmVyIHx8ICIiICE9PSBpbmZvIHx8IChpbmZvICs9IGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZVdpdGhvdXRMaW5lTnVtYmVyKAogICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnR5cGUucmVuZGVyCiAgICAgICAgICAgICAgKSk7CiAgICAgICAgICB9CiAgICAgICAgICBmb3IgKDsgd29ya0luUHJvZ3Jlc3MyOyApCiAgICAgICAgICAgIGlmICgibnVtYmVyIiA9PT0gdHlwZW9mIHdvcmtJblByb2dyZXNzMi50YWcpIHsKICAgICAgICAgICAgICB2YXIgZmliZXIgPSB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyID0gZmliZXIuX2RlYnVnT3duZXI7CiAgICAgICAgICAgICAgdmFyIGRlYnVnU3RhY2sgPSBmaWJlci5fZGVidWdTdGFjazsKICAgICAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MyICYmIGRlYnVnU3RhY2spIHsKICAgICAgICAgICAgICAgIHZhciBmb3JtYXR0ZWRTdGFjayA9IGZvcm1hdE93bmVyU3RhY2soZGVidWdTdGFjayk7CiAgICAgICAgICAgICAgICAiIiAhPT0gZm9ybWF0dGVkU3RhY2sgJiYgKGluZm8gKz0gIlxuIiArIGZvcm1hdHRlZFN0YWNrKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAobnVsbCAhPSB3b3JrSW5Qcm9ncmVzczIuZGVidWdTdGFjaykgewogICAgICAgICAgICAgIHZhciBvd25lclN0YWNrID0gd29ya0luUHJvZ3Jlc3MyLmRlYnVnU3RhY2s7CiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzMiA9IHdvcmtJblByb2dyZXNzMi5vd25lcikgJiYgb3duZXJTdGFjayAmJiAoaW5mbyArPSAiXG4iICsgZm9ybWF0T3duZXJTdGFjayhvd25lclN0YWNrKSk7CiAgICAgICAgICAgIH0gZWxzZSBicmVhazsKICAgICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBpbmZvOwogICAgICAgIH0gY2F0Y2ggKHgpIHsKICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICJcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6ICIgKyB4Lm1lc3NhZ2UgKyAiXG4iICsgeC5zdGFjazsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdDsKICAgICAgfQogICAgICBmdW5jdGlvbiBydW5XaXRoRmliZXJJbkRFVihmaWJlciwgY2FsbGJhY2ssIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpIHsKICAgICAgICB2YXIgcHJldmlvdXNGaWJlciA9IGN1cnJlbnQ7CiAgICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIG51bGwgIT09IGZpYmVyICYmIGZpYmVyLl9kZWJ1Z1Rhc2sgPyBmaWJlci5fZGVidWdUYXNrLnJ1bigKICAgICAgICAgICAgY2FsbGJhY2suYmluZChudWxsLCBhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQogICAgICAgICAgKSA6IGNhbGxiYWNrKGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBzZXRDdXJyZW50RmliZXIocHJldmlvdXNGaWJlcik7CiAgICAgICAgfQogICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgInJ1bldpdGhGaWJlckluREVWIHNob3VsZCBuZXZlciBiZSBjYWxsZWQgaW4gcHJvZHVjdGlvbi4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4iCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzZXRDdXJyZW50RmliZXIoZmliZXIpIHsKICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5nZXRDdXJyZW50U3RhY2sgPSBudWxsID09PSBmaWJlciA/IG51bGwgOiBnZXRDdXJyZW50RmliZXJTdGFja0luRGV2OwogICAgICAgIGlzUmVuZGVyaW5nID0gZmFsc2U7CiAgICAgICAgY3VycmVudCA9IGZpYmVyOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHR5cGVOYW1lKHZhbHVlKSB7CiAgICAgICAgcmV0dXJuICJmdW5jdGlvbiIgPT09IHR5cGVvZiBTeW1ib2wgJiYgU3ltYm9sLnRvU3RyaW5nVGFnICYmIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10gfHwgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fCAiT2JqZWN0IjsKICAgICAgfQogICAgICBmdW5jdGlvbiB3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSwgZmFsc2U7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkgewogICAgICAgIHJldHVybiAiIiArIHZhbHVlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIGF0dHJpYnV0ZU5hbWUpIHsKICAgICAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKQogICAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJUaGUgcHJvdmlkZWQgYCVzYCBhdHRyaWJ1dGUgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIHVzaW5nIGl0IGhlcmUuIiwKICAgICAgICAgICAgYXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgdHlwZU5hbWUodmFsdWUpCiAgICAgICAgICApLCB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNoZWNrQ1NTUHJvcGVydHlTdHJpbmdDb2VyY2lvbih2YWx1ZSwgcHJvcE5hbWUpIHsKICAgICAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKQogICAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJUaGUgcHJvdmlkZWQgYCVzYCBDU1MgcHJvcGVydHkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIHVzaW5nIGl0IGhlcmUuIiwKICAgICAgICAgICAgcHJvcE5hbWUsCiAgICAgICAgICAgIHR5cGVOYW1lKHZhbHVlKQogICAgICAgICAgKSwgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjaGVja0Zvcm1GaWVsZFZhbHVlU3RyaW5nQ29lcmNpb24odmFsdWUpIHsKICAgICAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKQogICAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJGb3JtIGZpZWxkIHZhbHVlcyAodmFsdWUsIGNoZWNrZWQsIGRlZmF1bHRWYWx1ZSwgb3IgZGVmYXVsdENoZWNrZWQgcHJvcHMpIG11c3QgYmUgc3RyaW5ncywgbm90ICVzLiBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS4iLAogICAgICAgICAgICB0eXBlTmFtZSh2YWx1ZSkKICAgICAgICAgICksIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaW5qZWN0SW50ZXJuYWxzKGludGVybmFscykgewogICAgICAgIGlmICgidW5kZWZpbmVkIiA9PT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXykgcmV0dXJuIGZhbHNlOwogICAgICAgIHZhciBob29rID0gX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fOwogICAgICAgIGlmIChob29rLmlzRGlzYWJsZWQpIHJldHVybiB0cnVlOwogICAgICAgIGlmICghaG9vay5zdXBwb3J0c0ZpYmVyKQogICAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJUaGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgUmVhY3QgRGV2VG9vbHMgaXMgdG9vIG9sZCBhbmQgd2lsbCBub3Qgd29yayB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgUmVhY3QuIFBsZWFzZSB1cGRhdGUgUmVhY3QgRGV2VG9vbHMuIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvcmVhY3QtZGV2dG9vbHMiCiAgICAgICAgICApLCB0cnVlOwogICAgICAgIHRyeSB7CiAgICAgICAgICByZW5kZXJlcklEID0gaG9vay5pbmplY3QoaW50ZXJuYWxzKSwgaW5qZWN0ZWRIb29rID0gaG9vazsKICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlJlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJW8uIiwgZXJyKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGhvb2suY2hlY2tEQ0UgPyB0cnVlIDogZmFsc2U7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMobmV3SXNTdHJpY3RNb2RlKSB7CiAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGxvZyQxICYmIHVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlKG5ld0lzU3RyaWN0TW9kZSk7CiAgICAgICAgaWYgKGluamVjdGVkSG9vayAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgaW5qZWN0ZWRIb29rLnNldFN0cmljdE1vZGUpCiAgICAgICAgICB0cnkgewogICAgICAgICAgICBpbmplY3RlZEhvb2suc2V0U3RyaWN0TW9kZShyZW5kZXJlcklELCBuZXdJc1N0cmljdE1vZGUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhc0xvZ2dlZEVycm9yIHx8IChoYXNMb2dnZWRFcnJvciA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIlJlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJW8iLAogICAgICAgICAgICAgIGVycgogICAgICAgICAgICApKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBjbHozMkZhbGxiYWNrKHgpIHsKICAgICAgICB4ID4+Pj0gMDsKICAgICAgICByZXR1cm4gMCA9PT0geCA/IDMyIDogMzEgLSAobG9nKHgpIC8gTE4yIHwgMCkgfCAwOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKGxhbmVzKSB7CiAgICAgICAgdmFyIHBlbmRpbmdTeW5jTGFuZXMgPSBsYW5lcyAmIDQyOwogICAgICAgIGlmICgwICE9PSBwZW5kaW5nU3luY0xhbmVzKSByZXR1cm4gcGVuZGluZ1N5bmNMYW5lczsKICAgICAgICBzd2l0Y2ggKGxhbmVzICYgLWxhbmVzKSB7CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICByZXR1cm4gMjsKICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgcmV0dXJuIDQ7CiAgICAgICAgICBjYXNlIDg6CiAgICAgICAgICAgIHJldHVybiA4OwogICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgcmV0dXJuIDE2OwogICAgICAgICAgY2FzZSAzMjoKICAgICAgICAgICAgcmV0dXJuIDMyOwogICAgICAgICAgY2FzZSA2NDoKICAgICAgICAgICAgcmV0dXJuIDY0OwogICAgICAgICAgY2FzZSAxMjg6CiAgICAgICAgICAgIHJldHVybiAxMjg7CiAgICAgICAgICBjYXNlIDI1NjoKICAgICAgICAgIGNhc2UgNTEyOgogICAgICAgICAgY2FzZSAxMDI0OgogICAgICAgICAgY2FzZSAyMDQ4OgogICAgICAgICAgY2FzZSA0MDk2OgogICAgICAgICAgY2FzZSA4MTkyOgogICAgICAgICAgY2FzZSAxNjM4NDoKICAgICAgICAgIGNhc2UgMzI3Njg6CiAgICAgICAgICBjYXNlIDY1NTM2OgogICAgICAgICAgY2FzZSAxMzEwNzI6CiAgICAgICAgICAgIHJldHVybiBsYW5lcyAmIDI2MTg4ODsKICAgICAgICAgIGNhc2UgMjYyMTQ0OgogICAgICAgICAgY2FzZSA1MjQyODg6CiAgICAgICAgICBjYXNlIDEwNDg1NzY6CiAgICAgICAgICBjYXNlIDIwOTcxNTI6CiAgICAgICAgICAgIHJldHVybiBsYW5lcyAmIDM5MzIxNjA7CiAgICAgICAgICBjYXNlIDQxOTQzMDQ6CiAgICAgICAgICBjYXNlIDgzODg2MDg6CiAgICAgICAgICBjYXNlIDE2Nzc3MjE2OgogICAgICAgICAgY2FzZSAzMzU1NDQzMjoKICAgICAgICAgICAgcmV0dXJuIGxhbmVzICYgNjI5MTQ1NjA7CiAgICAgICAgICBjYXNlIDY3MTA4ODY0OgogICAgICAgICAgICByZXR1cm4gNjcxMDg4NjQ7CiAgICAgICAgICBjYXNlIDEzNDIxNzcyODoKICAgICAgICAgICAgcmV0dXJuIDEzNDIxNzcyODsKICAgICAgICAgIGNhc2UgMjY4NDM1NDU2OgogICAgICAgICAgICByZXR1cm4gMjY4NDM1NDU2OwogICAgICAgICAgY2FzZSA1MzY4NzA5MTI6CiAgICAgICAgICAgIHJldHVybiA1MzY4NzA5MTI7CiAgICAgICAgICBjYXNlIDEwNzM3NDE4MjQ6CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIlNob3VsZCBoYXZlIGZvdW5kIG1hdGNoaW5nIGxhbmVzLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICAgKSwgbGFuZXM7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldE5leHRMYW5lcyhyb290Miwgd2lwTGFuZXMsIHJvb3RIYXNQZW5kaW5nQ29tbWl0KSB7CiAgICAgICAgdmFyIHBlbmRpbmdMYW5lcyA9IHJvb3QyLnBlbmRpbmdMYW5lczsKICAgICAgICBpZiAoMCA9PT0gcGVuZGluZ0xhbmVzKSByZXR1cm4gMDsKICAgICAgICB2YXIgbmV4dExhbmVzID0gMCwgc3VzcGVuZGVkTGFuZXMgPSByb290Mi5zdXNwZW5kZWRMYW5lcywgcGluZ2VkTGFuZXMgPSByb290Mi5waW5nZWRMYW5lczsKICAgICAgICByb290MiA9IHJvb3QyLndhcm1MYW5lczsKICAgICAgICB2YXIgbm9uSWRsZVBlbmRpbmdMYW5lcyA9IHBlbmRpbmdMYW5lcyAmIDEzNDIxNzcyNzsKICAgICAgICAwICE9PSBub25JZGxlUGVuZGluZ0xhbmVzID8gKHBlbmRpbmdMYW5lcyA9IG5vbklkbGVQZW5kaW5nTGFuZXMgJiB+c3VzcGVuZGVkTGFuZXMsIDAgIT09IHBlbmRpbmdMYW5lcyA/IG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHBlbmRpbmdMYW5lcykgOiAocGluZ2VkTGFuZXMgJj0gbm9uSWRsZVBlbmRpbmdMYW5lcywgMCAhPT0gcGluZ2VkTGFuZXMgPyBuZXh0TGFuZXMgPSBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lcyhwaW5nZWRMYW5lcykgOiByb290SGFzUGVuZGluZ0NvbW1pdCB8fCAocm9vdEhhc1BlbmRpbmdDb21taXQgPSBub25JZGxlUGVuZGluZ0xhbmVzICYgfnJvb3QyLCAwICE9PSByb290SGFzUGVuZGluZ0NvbW1pdCAmJiAobmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMocm9vdEhhc1BlbmRpbmdDb21taXQpKSkpKSA6IChub25JZGxlUGVuZGluZ0xhbmVzID0gcGVuZGluZ0xhbmVzICYgfnN1c3BlbmRlZExhbmVzLCAwICE9PSBub25JZGxlUGVuZGluZ0xhbmVzID8gbmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMobm9uSWRsZVBlbmRpbmdMYW5lcykgOiAwICE9PSBwaW5nZWRMYW5lcyA/IG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHBpbmdlZExhbmVzKSA6IHJvb3RIYXNQZW5kaW5nQ29tbWl0IHx8IChyb290SGFzUGVuZGluZ0NvbW1pdCA9IHBlbmRpbmdMYW5lcyAmIH5yb290MiwgMCAhPT0gcm9vdEhhc1BlbmRpbmdDb21taXQgJiYgKG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHJvb3RIYXNQZW5kaW5nQ29tbWl0KSkpKTsKICAgICAgICByZXR1cm4gMCA9PT0gbmV4dExhbmVzID8gMCA6IDAgIT09IHdpcExhbmVzICYmIHdpcExhbmVzICE9PSBuZXh0TGFuZXMgJiYgMCA9PT0gKHdpcExhbmVzICYgc3VzcGVuZGVkTGFuZXMpICYmIChzdXNwZW5kZWRMYW5lcyA9IG5leHRMYW5lcyAmIC1uZXh0TGFuZXMsIHJvb3RIYXNQZW5kaW5nQ29tbWl0ID0gd2lwTGFuZXMgJiAtd2lwTGFuZXMsIHN1c3BlbmRlZExhbmVzID49IHJvb3RIYXNQZW5kaW5nQ29tbWl0IHx8IDMyID09PSBzdXNwZW5kZWRMYW5lcyAmJiAwICE9PSAocm9vdEhhc1BlbmRpbmdDb21taXQgJiA0MTk0MDQ4KSkgPyB3aXBMYW5lcyA6IG5leHRMYW5lczsKICAgICAgfQogICAgICBmdW5jdGlvbiBjaGVja0lmUm9vdElzUHJlcmVuZGVyaW5nKHJvb3QyLCByZW5kZXJMYW5lczIpIHsKICAgICAgICByZXR1cm4gMCA9PT0gKHJvb3QyLnBlbmRpbmdMYW5lcyAmIH4ocm9vdDIuc3VzcGVuZGVkTGFuZXMgJiB+cm9vdDIucGluZ2VkTGFuZXMpICYgcmVuZGVyTGFuZXMyKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21wdXRlRXhwaXJhdGlvblRpbWUobGFuZSwgY3VycmVudFRpbWUpIHsKICAgICAgICBzd2l0Y2ggKGxhbmUpIHsKICAgICAgICAgIGNhc2UgMToKICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgIGNhc2UgODoKICAgICAgICAgIGNhc2UgNjQ6CiAgICAgICAgICAgIHJldHVybiBjdXJyZW50VGltZSArIDI1MDsKICAgICAgICAgIGNhc2UgMTY6CiAgICAgICAgICBjYXNlIDMyOgogICAgICAgICAgY2FzZSAxMjg6CiAgICAgICAgICBjYXNlIDI1NjoKICAgICAgICAgIGNhc2UgNTEyOgogICAgICAgICAgY2FzZSAxMDI0OgogICAgICAgICAgY2FzZSAyMDQ4OgogICAgICAgICAgY2FzZSA0MDk2OgogICAgICAgICAgY2FzZSA4MTkyOgogICAgICAgICAgY2FzZSAxNjM4NDoKICAgICAgICAgIGNhc2UgMzI3Njg6CiAgICAgICAgICBjYXNlIDY1NTM2OgogICAgICAgICAgY2FzZSAxMzEwNzI6CiAgICAgICAgICBjYXNlIDI2MjE0NDoKICAgICAgICAgIGNhc2UgNTI0Mjg4OgogICAgICAgICAgY2FzZSAxMDQ4NTc2OgogICAgICAgICAgY2FzZSAyMDk3MTUyOgogICAgICAgICAgICByZXR1cm4gY3VycmVudFRpbWUgKyA1ZTM7CiAgICAgICAgICBjYXNlIDQxOTQzMDQ6CiAgICAgICAgICBjYXNlIDgzODg2MDg6CiAgICAgICAgICBjYXNlIDE2Nzc3MjE2OgogICAgICAgICAgY2FzZSAzMzU1NDQzMjoKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgY2FzZSA2NzEwODg2NDoKICAgICAgICAgIGNhc2UgMTM0MjE3NzI4OgogICAgICAgICAgY2FzZSAyNjg0MzU0NTY6CiAgICAgICAgICBjYXNlIDUzNjg3MDkxMjoKICAgICAgICAgIGNhc2UgMTA3Mzc0MTgyNDoKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIlNob3VsZCBoYXZlIGZvdW5kIG1hdGNoaW5nIGxhbmVzLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICAgKSwgLTE7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNsYWltTmV4dFJldHJ5TGFuZSgpIHsKICAgICAgICB2YXIgbGFuZSA9IG5leHRSZXRyeUxhbmU7CiAgICAgICAgbmV4dFJldHJ5TGFuZSA8PD0gMTsKICAgICAgICAwID09PSAobmV4dFJldHJ5TGFuZSAmIDYyOTE0NTYwKSAmJiAobmV4dFJldHJ5TGFuZSA9IDQxOTQzMDQpOwogICAgICAgIHJldHVybiBsYW5lOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNyZWF0ZUxhbmVNYXAoaW5pdGlhbCkgewogICAgICAgIGZvciAodmFyIGxhbmVNYXAgPSBbXSwgaSA9IDA7IDMxID4gaTsgaSsrKSBsYW5lTWFwLnB1c2goaW5pdGlhbCk7CiAgICAgICAgcmV0dXJuIGxhbmVNYXA7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbWFya1Jvb3RVcGRhdGVkJDEocm9vdDIsIHVwZGF0ZUxhbmUpIHsKICAgICAgICByb290Mi5wZW5kaW5nTGFuZXMgfD0gdXBkYXRlTGFuZTsKICAgICAgICAyNjg0MzU0NTYgIT09IHVwZGF0ZUxhbmUgJiYgKHJvb3QyLnN1c3BlbmRlZExhbmVzID0gMCwgcm9vdDIucGluZ2VkTGFuZXMgPSAwLCByb290Mi53YXJtTGFuZXMgPSAwKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBtYXJrUm9vdEZpbmlzaGVkKHJvb3QyLCBmaW5pc2hlZExhbmVzLCByZW1haW5pbmdMYW5lcywgc3Bhd25lZExhbmUsIHVwZGF0ZWRMYW5lcywgc3VzcGVuZGVkUmV0cnlMYW5lcykgewogICAgICAgIHZhciBwcmV2aW91c2x5UGVuZGluZ0xhbmVzID0gcm9vdDIucGVuZGluZ0xhbmVzOwogICAgICAgIHJvb3QyLnBlbmRpbmdMYW5lcyA9IHJlbWFpbmluZ0xhbmVzOwogICAgICAgIHJvb3QyLnN1c3BlbmRlZExhbmVzID0gMDsKICAgICAgICByb290Mi5waW5nZWRMYW5lcyA9IDA7CiAgICAgICAgcm9vdDIud2FybUxhbmVzID0gMDsKICAgICAgICByb290Mi5leHBpcmVkTGFuZXMgJj0gcmVtYWluaW5nTGFuZXM7CiAgICAgICAgcm9vdDIuZW50YW5nbGVkTGFuZXMgJj0gcmVtYWluaW5nTGFuZXM7CiAgICAgICAgcm9vdDIuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXMgJj0gcmVtYWluaW5nTGFuZXM7CiAgICAgICAgcm9vdDIuc2hlbGxTdXNwZW5kQ291bnRlciA9IDA7CiAgICAgICAgdmFyIGVudGFuZ2xlbWVudHMgPSByb290Mi5lbnRhbmdsZW1lbnRzLCBleHBpcmF0aW9uVGltZXMgPSByb290Mi5leHBpcmF0aW9uVGltZXMsIGhpZGRlblVwZGF0ZXMgPSByb290Mi5oaWRkZW5VcGRhdGVzOwogICAgICAgIGZvciAocmVtYWluaW5nTGFuZXMgPSBwcmV2aW91c2x5UGVuZGluZ0xhbmVzICYgfnJlbWFpbmluZ0xhbmVzOyAwIDwgcmVtYWluaW5nTGFuZXM7ICkgewogICAgICAgICAgdmFyIGluZGV4ID0gMzEgLSBjbHozMihyZW1haW5pbmdMYW5lcyksIGxhbmUgPSAxIDw8IGluZGV4OwogICAgICAgICAgZW50YW5nbGVtZW50c1tpbmRleF0gPSAwOwogICAgICAgICAgZXhwaXJhdGlvblRpbWVzW2luZGV4XSA9IC0xOwogICAgICAgICAgdmFyIGhpZGRlblVwZGF0ZXNGb3JMYW5lID0gaGlkZGVuVXBkYXRlc1tpbmRleF07CiAgICAgICAgICBpZiAobnVsbCAhPT0gaGlkZGVuVXBkYXRlc0ZvckxhbmUpCiAgICAgICAgICAgIGZvciAoaGlkZGVuVXBkYXRlc1tpbmRleF0gPSBudWxsLCBpbmRleCA9IDA7IGluZGV4IDwgaGlkZGVuVXBkYXRlc0ZvckxhbmUubGVuZ3RoOyBpbmRleCsrKSB7CiAgICAgICAgICAgICAgdmFyIHVwZGF0ZSA9IGhpZGRlblVwZGF0ZXNGb3JMYW5lW2luZGV4XTsKICAgICAgICAgICAgICBudWxsICE9PSB1cGRhdGUgJiYgKHVwZGF0ZS5sYW5lICY9IC01MzY4NzA5MTMpOwogICAgICAgICAgICB9CiAgICAgICAgICByZW1haW5pbmdMYW5lcyAmPSB+bGFuZTsKICAgICAgICB9CiAgICAgICAgMCAhPT0gc3Bhd25lZExhbmUgJiYgbWFya1NwYXduZWREZWZlcnJlZExhbmUocm9vdDIsIHNwYXduZWRMYW5lLCAwKTsKICAgICAgICAwICE9PSBzdXNwZW5kZWRSZXRyeUxhbmVzICYmIDAgPT09IHVwZGF0ZWRMYW5lcyAmJiAwICE9PSByb290Mi50YWcgJiYgKHJvb3QyLnN1c3BlbmRlZExhbmVzIHw9IHN1c3BlbmRlZFJldHJ5TGFuZXMgJiB+KHByZXZpb3VzbHlQZW5kaW5nTGFuZXMgJiB+ZmluaXNoZWRMYW5lcykpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1hcmtTcGF3bmVkRGVmZXJyZWRMYW5lKHJvb3QyLCBzcGF3bmVkTGFuZSwgZW50YW5nbGVkTGFuZXMpIHsKICAgICAgICByb290Mi5wZW5kaW5nTGFuZXMgfD0gc3Bhd25lZExhbmU7CiAgICAgICAgcm9vdDIuc3VzcGVuZGVkTGFuZXMgJj0gfnNwYXduZWRMYW5lOwogICAgICAgIHZhciBzcGF3bmVkTGFuZUluZGV4ID0gMzEgLSBjbHozMihzcGF3bmVkTGFuZSk7CiAgICAgICAgcm9vdDIuZW50YW5nbGVkTGFuZXMgfD0gc3Bhd25lZExhbmU7CiAgICAgICAgcm9vdDIuZW50YW5nbGVtZW50c1tzcGF3bmVkTGFuZUluZGV4XSA9IHJvb3QyLmVudGFuZ2xlbWVudHNbc3Bhd25lZExhbmVJbmRleF0gfCAxMDczNzQxODI0IHwgZW50YW5nbGVkTGFuZXMgJiAyNjE5MzA7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbWFya1Jvb3RFbnRhbmdsZWQocm9vdDIsIGVudGFuZ2xlZExhbmVzKSB7CiAgICAgICAgdmFyIHJvb3RFbnRhbmdsZWRMYW5lcyA9IHJvb3QyLmVudGFuZ2xlZExhbmVzIHw9IGVudGFuZ2xlZExhbmVzOwogICAgICAgIGZvciAocm9vdDIgPSByb290Mi5lbnRhbmdsZW1lbnRzOyByb290RW50YW5nbGVkTGFuZXM7ICkgewogICAgICAgICAgdmFyIGluZGV4ID0gMzEgLSBjbHozMihyb290RW50YW5nbGVkTGFuZXMpLCBsYW5lID0gMSA8PCBpbmRleDsKICAgICAgICAgIGxhbmUgJiBlbnRhbmdsZWRMYW5lcyB8IHJvb3QyW2luZGV4XSAmIGVudGFuZ2xlZExhbmVzICYmIChyb290MltpbmRleF0gfD0gZW50YW5nbGVkTGFuZXMpOwogICAgICAgICAgcm9vdEVudGFuZ2xlZExhbmVzICY9IH5sYW5lOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRCdW1wZWRMYW5lRm9ySHlkcmF0aW9uKHJvb3QyLCByZW5kZXJMYW5lczIpIHsKICAgICAgICB2YXIgcmVuZGVyTGFuZSA9IHJlbmRlckxhbmVzMiAmIC1yZW5kZXJMYW5lczI7CiAgICAgICAgcmVuZGVyTGFuZSA9IDAgIT09IChyZW5kZXJMYW5lICYgNDIpID8gMSA6IGdldEJ1bXBlZExhbmVGb3JIeWRyYXRpb25CeUxhbmUocmVuZGVyTGFuZSk7CiAgICAgICAgcmV0dXJuIDAgIT09IChyZW5kZXJMYW5lICYgKHJvb3QyLnN1c3BlbmRlZExhbmVzIHwgcmVuZGVyTGFuZXMyKSkgPyAwIDogcmVuZGVyTGFuZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRCdW1wZWRMYW5lRm9ySHlkcmF0aW9uQnlMYW5lKGxhbmUpIHsKICAgICAgICBzd2l0Y2ggKGxhbmUpIHsKICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgbGFuZSA9IDE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICBsYW5lID0gNDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDMyOgogICAgICAgICAgICBsYW5lID0gMTY7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyNTY6CiAgICAgICAgICBjYXNlIDUxMjoKICAgICAgICAgIGNhc2UgMTAyNDoKICAgICAgICAgIGNhc2UgMjA0ODoKICAgICAgICAgIGNhc2UgNDA5NjoKICAgICAgICAgIGNhc2UgODE5MjoKICAgICAgICAgIGNhc2UgMTYzODQ6CiAgICAgICAgICBjYXNlIDMyNzY4OgogICAgICAgICAgY2FzZSA2NTUzNjoKICAgICAgICAgIGNhc2UgMTMxMDcyOgogICAgICAgICAgY2FzZSAyNjIxNDQ6CiAgICAgICAgICBjYXNlIDUyNDI4ODoKICAgICAgICAgIGNhc2UgMTA0ODU3NjoKICAgICAgICAgIGNhc2UgMjA5NzE1MjoKICAgICAgICAgIGNhc2UgNDE5NDMwNDoKICAgICAgICAgIGNhc2UgODM4ODYwODoKICAgICAgICAgIGNhc2UgMTY3NzcyMTY6CiAgICAgICAgICBjYXNlIDMzNTU0NDMyOgogICAgICAgICAgICBsYW5lID0gMTI4OwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjY4NDM1NDU2OgogICAgICAgICAgICBsYW5lID0gMTM0MjE3NzI4OwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGxhbmUgPSAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbGFuZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhZGRGaWJlclRvTGFuZXNNYXAocm9vdDIsIGZpYmVyLCBsYW5lcykgewogICAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkKICAgICAgICAgIGZvciAocm9vdDIgPSByb290Mi5wZW5kaW5nVXBkYXRlcnNMYW5lTWFwOyAwIDwgbGFuZXM7ICkgewogICAgICAgICAgICB2YXIgaW5kZXggPSAzMSAtIGNsejMyKGxhbmVzKSwgbGFuZSA9IDEgPDwgaW5kZXg7CiAgICAgICAgICAgIHJvb3QyW2luZGV4XS5hZGQoZmliZXIpOwogICAgICAgICAgICBsYW5lcyAmPSB+bGFuZTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBtb3ZlUGVuZGluZ0ZpYmVyc1RvTWVtb2l6ZWQocm9vdDIsIGxhbmVzKSB7CiAgICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KQogICAgICAgICAgZm9yICh2YXIgcGVuZGluZ1VwZGF0ZXJzTGFuZU1hcCA9IHJvb3QyLnBlbmRpbmdVcGRhdGVyc0xhbmVNYXAsIG1lbW9pemVkVXBkYXRlcnMgPSByb290Mi5tZW1vaXplZFVwZGF0ZXJzOyAwIDwgbGFuZXM7ICkgewogICAgICAgICAgICB2YXIgaW5kZXggPSAzMSAtIGNsejMyKGxhbmVzKTsKICAgICAgICAgICAgcm9vdDIgPSAxIDw8IGluZGV4OwogICAgICAgICAgICBpbmRleCA9IHBlbmRpbmdVcGRhdGVyc0xhbmVNYXBbaW5kZXhdOwogICAgICAgICAgICAwIDwgaW5kZXguc2l6ZSAmJiAoaW5kZXguZm9yRWFjaChmdW5jdGlvbihmaWJlcikgewogICAgICAgICAgICAgIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7CiAgICAgICAgICAgICAgbnVsbCAhPT0gYWx0ZXJuYXRlICYmIG1lbW9pemVkVXBkYXRlcnMuaGFzKGFsdGVybmF0ZSkgfHwgbWVtb2l6ZWRVcGRhdGVycy5hZGQoZmliZXIpOwogICAgICAgICAgICB9KSwgaW5kZXguY2xlYXIoKSk7CiAgICAgICAgICAgIGxhbmVzICY9IH5yb290MjsKICAgICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBsYW5lc1RvRXZlbnRQcmlvcml0eShsYW5lcykgewogICAgICAgIGxhbmVzICY9IC1sYW5lczsKICAgICAgICByZXR1cm4gMCAhPT0gRGlzY3JldGVFdmVudFByaW9yaXR5ICYmIERpc2NyZXRlRXZlbnRQcmlvcml0eSA8IGxhbmVzID8gMCAhPT0gQ29udGludW91c0V2ZW50UHJpb3JpdHkgJiYgQ29udGludW91c0V2ZW50UHJpb3JpdHkgPCBsYW5lcyA/IDAgIT09IChsYW5lcyAmIDEzNDIxNzcyNykgPyBEZWZhdWx0RXZlbnRQcmlvcml0eSA6IElkbGVFdmVudFByaW9yaXR5IDogQ29udGludW91c0V2ZW50UHJpb3JpdHkgOiBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVzb2x2ZVVwZGF0ZVByaW9yaXR5KCkgewogICAgICAgIHZhciB1cGRhdGVQcmlvcml0eSA9IFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnA7CiAgICAgICAgaWYgKDAgIT09IHVwZGF0ZVByaW9yaXR5KSByZXR1cm4gdXBkYXRlUHJpb3JpdHk7CiAgICAgICAgdXBkYXRlUHJpb3JpdHkgPSB3aW5kb3cuZXZlbnQ7CiAgICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gdXBkYXRlUHJpb3JpdHkgPyBEZWZhdWx0RXZlbnRQcmlvcml0eSA6IGdldEV2ZW50UHJpb3JpdHkodXBkYXRlUHJpb3JpdHkudHlwZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcnVuV2l0aFByaW9yaXR5KHByaW9yaXR5LCBmbikgewogICAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucDsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBwcmlvcml0eSwgZm4oKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IHByZXZpb3VzUHJpb3JpdHk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRldGFjaERlbGV0ZWRJbnN0YW5jZShub2RlKSB7CiAgICAgICAgZGVsZXRlIG5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV07CiAgICAgICAgZGVsZXRlIG5vZGVbaW50ZXJuYWxQcm9wc0tleV07CiAgICAgICAgZGVsZXRlIG5vZGVbaW50ZXJuYWxFdmVudEhhbmRsZXJzS2V5XTsKICAgICAgICBkZWxldGUgbm9kZVtpbnRlcm5hbEV2ZW50SGFuZGxlckxpc3RlbmVyc0tleV07CiAgICAgICAgZGVsZXRlIG5vZGVbaW50ZXJuYWxFdmVudEhhbmRsZXNTZXRLZXldOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKHRhcmdldE5vZGUpIHsKICAgICAgICB2YXIgdGFyZ2V0SW5zdCA9IHRhcmdldE5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV07CiAgICAgICAgaWYgKHRhcmdldEluc3QpIHJldHVybiB0YXJnZXRJbnN0OwogICAgICAgIGZvciAodmFyIHBhcmVudE5vZGUgPSB0YXJnZXROb2RlLnBhcmVudE5vZGU7IHBhcmVudE5vZGU7ICkgewogICAgICAgICAgaWYgKHRhcmdldEluc3QgPSBwYXJlbnROb2RlW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldIHx8IHBhcmVudE5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV0pIHsKICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHRhcmdldEluc3QuYWx0ZXJuYXRlOwogICAgICAgICAgICBpZiAobnVsbCAhPT0gdGFyZ2V0SW5zdC5jaGlsZCB8fCBudWxsICE9PSBwYXJlbnROb2RlICYmIG51bGwgIT09IHBhcmVudE5vZGUuY2hpbGQpCiAgICAgICAgICAgICAgZm9yICh0YXJnZXROb2RlID0gZ2V0UGFyZW50SHlkcmF0aW9uQm91bmRhcnkodGFyZ2V0Tm9kZSk7IG51bGwgIT09IHRhcmdldE5vZGU7ICkgewogICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgPSB0YXJnZXROb2RlW2ludGVybmFsSW5zdGFuY2VLZXldKQogICAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50Tm9kZTsKICAgICAgICAgICAgICAgIHRhcmdldE5vZGUgPSBnZXRQYXJlbnRIeWRyYXRpb25Cb3VuZGFyeSh0YXJnZXROb2RlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0YXJnZXRJbnN0OwogICAgICAgICAgfQogICAgICAgICAgdGFyZ2V0Tm9kZSA9IHBhcmVudE5vZGU7CiAgICAgICAgICBwYXJlbnROb2RlID0gdGFyZ2V0Tm9kZS5wYXJlbnROb2RlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRJbnN0YW5jZUZyb21Ob2RlKG5vZGUpIHsKICAgICAgICBpZiAobm9kZSA9IG5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV0gfHwgbm9kZVtpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSkgewogICAgICAgICAgdmFyIHRhZyA9IG5vZGUudGFnOwogICAgICAgICAgaWYgKDUgPT09IHRhZyB8fCA2ID09PSB0YWcgfHwgMTMgPT09IHRhZyB8fCAzMSA9PT0gdGFnIHx8IDI2ID09PSB0YWcgfHwgMjcgPT09IHRhZyB8fCAzID09PSB0YWcpCiAgICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXROb2RlRnJvbUluc3RhbmNlKGluc3QpIHsKICAgICAgICB2YXIgdGFnID0gaW5zdC50YWc7CiAgICAgICAgaWYgKDUgPT09IHRhZyB8fCAyNiA9PT0gdGFnIHx8IDI3ID09PSB0YWcgfHwgNiA9PT0gdGFnKQogICAgICAgICAgcmV0dXJuIGluc3Quc3RhdGVOb2RlOwogICAgICAgIHRocm93IEVycm9yKCJnZXROb2RlRnJvbUluc3RhbmNlOiBJbnZhbGlkIGFyZ3VtZW50LiIpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldFJlc291cmNlc0Zyb21Sb290KHJvb3QyKSB7CiAgICAgICAgdmFyIHJlc291cmNlcyA9IHJvb3QyW2ludGVybmFsUm9vdE5vZGVSZXNvdXJjZXNLZXldOwogICAgICAgIHJlc291cmNlcyB8fCAocmVzb3VyY2VzID0gcm9vdDJbaW50ZXJuYWxSb290Tm9kZVJlc291cmNlc0tleV0gPSB7IGhvaXN0YWJsZVN0eWxlczogLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSwgaG9pc3RhYmxlU2NyaXB0czogLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSB9KTsKICAgICAgICByZXR1cm4gcmVzb3VyY2VzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1hcmtOb2RlQXNIb2lzdGFibGUobm9kZSkgewogICAgICAgIG5vZGVbaW50ZXJuYWxIb2lzdGFibGVNYXJrZXJdID0gdHJ1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZWdpc3RlclR3b1BoYXNlRXZlbnQocmVnaXN0cmF0aW9uTmFtZSwgZGVwZW5kZW5jaWVzKSB7CiAgICAgICAgcmVnaXN0ZXJEaXJlY3RFdmVudChyZWdpc3RyYXRpb25OYW1lLCBkZXBlbmRlbmNpZXMpOwogICAgICAgIHJlZ2lzdGVyRGlyZWN0RXZlbnQocmVnaXN0cmF0aW9uTmFtZSArICJDYXB0dXJlIiwgZGVwZW5kZW5jaWVzKTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZWdpc3RlckRpcmVjdEV2ZW50KHJlZ2lzdHJhdGlvbk5hbWUsIGRlcGVuZGVuY2llcykgewogICAgICAgIHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXNbcmVnaXN0cmF0aW9uTmFtZV0gJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICJFdmVudFJlZ2lzdHJ5OiBNb3JlIHRoYW4gb25lIHBsdWdpbiBhdHRlbXB0ZWQgdG8gcHVibGlzaCB0aGUgc2FtZSByZWdpc3RyYXRpb24gbmFtZSwgYCVzYC4iLAogICAgICAgICAgcmVnaXN0cmF0aW9uTmFtZQogICAgICAgICk7CiAgICAgICAgcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llc1tyZWdpc3RyYXRpb25OYW1lXSA9IGRlcGVuZGVuY2llczsKICAgICAgICB2YXIgbG93ZXJDYXNlZE5hbWUgPSByZWdpc3RyYXRpb25OYW1lLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgcG9zc2libGVSZWdpc3RyYXRpb25OYW1lc1tsb3dlckNhc2VkTmFtZV0gPSByZWdpc3RyYXRpb25OYW1lOwogICAgICAgICJvbkRvdWJsZUNsaWNrIiA9PT0gcmVnaXN0cmF0aW9uTmFtZSAmJiAocG9zc2libGVSZWdpc3RyYXRpb25OYW1lcy5vbmRibGNsaWNrID0gcmVnaXN0cmF0aW9uTmFtZSk7CiAgICAgICAgZm9yIChyZWdpc3RyYXRpb25OYW1lID0gMDsgcmVnaXN0cmF0aW9uTmFtZSA8IGRlcGVuZGVuY2llcy5sZW5ndGg7IHJlZ2lzdHJhdGlvbk5hbWUrKykKICAgICAgICAgIGFsbE5hdGl2ZUV2ZW50cy5hZGQoZGVwZW5kZW5jaWVzW3JlZ2lzdHJhdGlvbk5hbWVdKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKHRhZ05hbWUsIHByb3BzKSB7CiAgICAgICAgaGFzUmVhZE9ubHlWYWx1ZVtwcm9wcy50eXBlXSB8fCBwcm9wcy5vbkNoYW5nZSB8fCBwcm9wcy5vbklucHV0IHx8IHByb3BzLnJlYWRPbmx5IHx8IHByb3BzLmRpc2FibGVkIHx8IG51bGwgPT0gcHJvcHMudmFsdWUgfHwgKCJzZWxlY3QiID09PSB0YWdOYW1lID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICJZb3UgcHJvdmlkZWQgYSBgdmFsdWVgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gYG9uQ2hhbmdlYCBoYW5kbGVyLiBUaGlzIHdpbGwgcmVuZGVyIGEgcmVhZC1vbmx5IGZpZWxkLiBJZiB0aGUgZmllbGQgc2hvdWxkIGJlIG11dGFibGUgdXNlIGBkZWZhdWx0VmFsdWVgLiBPdGhlcndpc2UsIHNldCBgb25DaGFuZ2VgLiIKICAgICAgICApIDogY29uc29sZS5lcnJvcigKICAgICAgICAgICJZb3UgcHJvdmlkZWQgYSBgdmFsdWVgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gYG9uQ2hhbmdlYCBoYW5kbGVyLiBUaGlzIHdpbGwgcmVuZGVyIGEgcmVhZC1vbmx5IGZpZWxkLiBJZiB0aGUgZmllbGQgc2hvdWxkIGJlIG11dGFibGUgdXNlIGBkZWZhdWx0VmFsdWVgLiBPdGhlcndpc2UsIHNldCBlaXRoZXIgYG9uQ2hhbmdlYCBvciBgcmVhZE9ubHlgLiIKICAgICAgICApKTsKICAgICAgICBwcm9wcy5vbkNoYW5nZSB8fCBwcm9wcy5yZWFkT25seSB8fCBwcm9wcy5kaXNhYmxlZCB8fCBudWxsID09IHByb3BzLmNoZWNrZWQgfHwgY29uc29sZS5lcnJvcigKICAgICAgICAgICJZb3UgcHJvdmlkZWQgYSBgY2hlY2tlZGAgcHJvcCB0byBhIGZvcm0gZmllbGQgd2l0aG91dCBhbiBgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmIHRoZSBmaWVsZCBzaG91bGQgYmUgbXV0YWJsZSB1c2UgYGRlZmF1bHRDaGVja2VkYC4gT3RoZXJ3aXNlLCBzZXQgZWl0aGVyIGBvbkNoYW5nZWAgb3IgYHJlYWRPbmx5YC4iCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc0F0dHJpYnV0ZU5hbWVTYWZlKGF0dHJpYnV0ZU5hbWUpIHsKICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbCh2YWxpZGF0ZWRBdHRyaWJ1dGVOYW1lQ2FjaGUsIGF0dHJpYnV0ZU5hbWUpKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZSwgYXR0cmlidXRlTmFtZSkpCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgaWYgKFZBTElEX0FUVFJJQlVURV9OQU1FX1JFR0VYLnRlc3QoYXR0cmlidXRlTmFtZSkpCiAgICAgICAgICByZXR1cm4gdmFsaWRhdGVkQXR0cmlidXRlTmFtZUNhY2hlW2F0dHJpYnV0ZU5hbWVdID0gdHJ1ZTsKICAgICAgICBpbGxlZ2FsQXR0cmlidXRlTmFtZUNhY2hlW2F0dHJpYnV0ZU5hbWVdID0gdHJ1ZTsKICAgICAgICBjb25zb2xlLmVycm9yKCJJbnZhbGlkIGF0dHJpYnV0ZSBuYW1lOiBgJXNgIiwgYXR0cmlidXRlTmFtZSk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldFZhbHVlRm9yQXR0cmlidXRlT25DdXN0b21Db21wb25lbnQobm9kZSwgbmFtZSwgZXhwZWN0ZWQpIHsKICAgICAgICBpZiAoaXNBdHRyaWJ1dGVOYW1lU2FmZShuYW1lKSkgewogICAgICAgICAgaWYgKCFub2RlLmhhc0F0dHJpYnV0ZShuYW1lKSkgewogICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBleHBlY3RlZCkgewogICAgICAgICAgICAgIGNhc2UgInN5bWJvbCI6CiAgICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZDsKICAgICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWQ7CiAgICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgICAgICBpZiAoZmFsc2UgPT09IGV4cGVjdGVkKSByZXR1cm4gZXhwZWN0ZWQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gZXhwZWN0ZWQgPyB2b2lkIDAgOiBudWxsOwogICAgICAgICAgfQogICAgICAgICAgbm9kZSA9IG5vZGUuZ2V0QXR0cmlidXRlKG5hbWUpOwogICAgICAgICAgaWYgKCIiID09PSBub2RlICYmIHRydWUgPT09IGV4cGVjdGVkKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24oZXhwZWN0ZWQsIG5hbWUpOwogICAgICAgICAgcmV0dXJuIG5vZGUgPT09ICIiICsgZXhwZWN0ZWQgPyBleHBlY3RlZCA6IG5vZGU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNldFZhbHVlRm9yQXR0cmlidXRlKG5vZGUsIG5hbWUsIHZhbHVlKSB7CiAgICAgICAgaWYgKGlzQXR0cmlidXRlTmFtZVNhZmUobmFtZSkpCiAgICAgICAgICBpZiAobnVsbCA9PT0gdmFsdWUpIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpOwogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7CiAgICAgICAgICAgICAgY2FzZSAidW5kZWZpbmVkIjoKICAgICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgICAgY2FzZSAic3ltYm9sIjoKICAgICAgICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgICAgdmFyIHByZWZpeDIgPSBuYW1lLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCwgNSk7CiAgICAgICAgICAgICAgICBpZiAoImRhdGEtIiAhPT0gcHJlZml4MiAmJiAiYXJpYS0iICE9PSBwcmVmaXgyKSB7CiAgICAgICAgICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpOwogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgbmFtZSk7CiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKG5hbWUsICIiICsgdmFsdWUpOwogICAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNldFZhbHVlRm9yS25vd25BdHRyaWJ1dGUobm9kZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBpZiAobnVsbCA9PT0gdmFsdWUpIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpOwogICAgICAgIGVsc2UgewogICAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHsKICAgICAgICAgICAgY2FzZSAidW5kZWZpbmVkIjoKICAgICAgICAgICAgY2FzZSAiZnVuY3Rpb24iOgogICAgICAgICAgICBjYXNlICJzeW1ib2wiOgogICAgICAgICAgICBjYXNlICJib29sZWFuIjoKICAgICAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBuYW1lKTsKICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKG5hbWUsICIiICsgdmFsdWUpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBzZXRWYWx1ZUZvck5hbWVzcGFjZWRBdHRyaWJ1dGUobm9kZSwgbmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSkgewogICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkgbm9kZS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgICBjYXNlICJ1bmRlZmluZWQiOgogICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgIGNhc2UgInN5bWJvbCI6CiAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIG5hbWUpOwogICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5hbWUsICIiICsgdmFsdWUpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKSB7CiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHsKICAgICAgICAgIGNhc2UgImJpZ2ludCI6CiAgICAgICAgICBjYXNlICJib29sZWFuIjoKICAgICAgICAgIGNhc2UgIm51bWJlciI6CiAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgY2FzZSAidW5kZWZpbmVkIjoKICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgcmV0dXJuIGNoZWNrRm9ybUZpZWxkVmFsdWVTdHJpbmdDb2VyY2lvbih2YWx1ZSksIHZhbHVlOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuICIiOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBpc0NoZWNrYWJsZShlbGVtKSB7CiAgICAgICAgdmFyIHR5cGUgPSBlbGVtLnR5cGU7CiAgICAgICAgcmV0dXJuIChlbGVtID0gZWxlbS5ub2RlTmFtZSkgJiYgImlucHV0IiA9PT0gZWxlbS50b0xvd2VyQ2FzZSgpICYmICgiY2hlY2tib3giID09PSB0eXBlIHx8ICJyYWRpbyIgPT09IHR5cGUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHRyYWNrVmFsdWVPbk5vZGUobm9kZSwgdmFsdWVGaWVsZCwgY3VycmVudFZhbHVlKSB7CiAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKAogICAgICAgICAgbm9kZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsCiAgICAgICAgICB2YWx1ZUZpZWxkCiAgICAgICAgKTsKICAgICAgICBpZiAoIW5vZGUuaGFzT3duUHJvcGVydHkodmFsdWVGaWVsZCkgJiYgInVuZGVmaW5lZCIgIT09IHR5cGVvZiBkZXNjcmlwdG9yICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBkZXNjcmlwdG9yLmdldCAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgZGVzY3JpcHRvci5zZXQpIHsKICAgICAgICAgIHZhciBnZXQgPSBkZXNjcmlwdG9yLmdldCwgc2V0ID0gZGVzY3JpcHRvci5zZXQ7CiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobm9kZSwgdmFsdWVGaWVsZCwgewogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGdldC5jYWxsKHRoaXMpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgICAgY2hlY2tGb3JtRmllbGRWYWx1ZVN0cmluZ0NvZXJjaW9uKHZhbHVlKTsKICAgICAgICAgICAgICBjdXJyZW50VmFsdWUgPSAiIiArIHZhbHVlOwogICAgICAgICAgICAgIHNldC5jYWxsKHRoaXMsIHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobm9kZSwgdmFsdWVGaWVsZCwgewogICAgICAgICAgICBlbnVtZXJhYmxlOiBkZXNjcmlwdG9yLmVudW1lcmFibGUKICAgICAgICAgIH0pOwogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZ2V0VmFsdWU6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHJldHVybiBjdXJyZW50VmFsdWU7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHNldFZhbHVlOiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgIGNoZWNrRm9ybUZpZWxkVmFsdWVTdHJpbmdDb2VyY2lvbih2YWx1ZSk7CiAgICAgICAgICAgICAgY3VycmVudFZhbHVlID0gIiIgKyB2YWx1ZTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3RvcFRyYWNraW5nOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBub2RlLl92YWx1ZVRyYWNrZXIgPSBudWxsOwogICAgICAgICAgICAgIGRlbGV0ZSBub2RlW3ZhbHVlRmllbGRdOwogICAgICAgICAgICB9CiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiB0cmFjayhub2RlKSB7CiAgICAgICAgaWYgKCFub2RlLl92YWx1ZVRyYWNrZXIpIHsKICAgICAgICAgIHZhciB2YWx1ZUZpZWxkID0gaXNDaGVja2FibGUobm9kZSkgPyAiY2hlY2tlZCIgOiAidmFsdWUiOwogICAgICAgICAgbm9kZS5fdmFsdWVUcmFja2VyID0gdHJhY2tWYWx1ZU9uTm9kZSgKICAgICAgICAgICAgbm9kZSwKICAgICAgICAgICAgdmFsdWVGaWVsZCwKICAgICAgICAgICAgIiIgKyBub2RlW3ZhbHVlRmllbGRdCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUlmQ2hhbmdlZChub2RlKSB7CiAgICAgICAgaWYgKCFub2RlKSByZXR1cm4gZmFsc2U7CiAgICAgICAgdmFyIHRyYWNrZXIgPSBub2RlLl92YWx1ZVRyYWNrZXI7CiAgICAgICAgaWYgKCF0cmFja2VyKSByZXR1cm4gdHJ1ZTsKICAgICAgICB2YXIgbGFzdFZhbHVlID0gdHJhY2tlci5nZXRWYWx1ZSgpOwogICAgICAgIHZhciB2YWx1ZSA9ICIiOwogICAgICAgIG5vZGUgJiYgKHZhbHVlID0gaXNDaGVja2FibGUobm9kZSkgPyBub2RlLmNoZWNrZWQgPyAidHJ1ZSIgOiAiZmFsc2UiIDogbm9kZS52YWx1ZSk7CiAgICAgICAgbm9kZSA9IHZhbHVlOwogICAgICAgIHJldHVybiBub2RlICE9PSBsYXN0VmFsdWUgPyAodHJhY2tlci5zZXRWYWx1ZShub2RlKSwgdHJ1ZSkgOiBmYWxzZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRBY3RpdmVFbGVtZW50KGRvYykgewogICAgICAgIGRvYyA9IGRvYyB8fCAoInVuZGVmaW5lZCIgIT09IHR5cGVvZiBkb2N1bWVudCA/IGRvY3VtZW50IDogdm9pZCAwKTsKICAgICAgICBpZiAoInVuZGVmaW5lZCIgPT09IHR5cGVvZiBkb2MpIHJldHVybiBudWxsOwogICAgICAgIHRyeSB7CiAgICAgICAgICByZXR1cm4gZG9jLmFjdGl2ZUVsZW1lbnQgfHwgZG9jLmJvZHk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgcmV0dXJuIGRvYy5ib2R5OwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzKHZhbHVlKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoCiAgICAgICAgICBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzUmVnZXgsCiAgICAgICAgICBmdW5jdGlvbihjaCkgewogICAgICAgICAgICByZXR1cm4gIlxcIiArIGNoLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpICsgIiAiOwogICAgICAgICAgfQogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdmFsaWRhdGVJbnB1dFByb3BzKGVsZW1lbnQsIHByb3BzKSB7CiAgICAgICAgdm9pZCAwID09PSBwcm9wcy5jaGVja2VkIHx8IHZvaWQgMCA9PT0gcHJvcHMuZGVmYXVsdENoZWNrZWQgfHwgZGlkV2FybkNoZWNrZWREZWZhdWx0Q2hlY2tlZCB8fCAoY29uc29sZS5lcnJvcigKICAgICAgICAgICIlcyBjb250YWlucyBhbiBpbnB1dCBvZiB0eXBlICVzIHdpdGggYm90aCBjaGVja2VkIGFuZCBkZWZhdWx0Q2hlY2tlZCBwcm9wcy4gSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgKHNwZWNpZnkgZWl0aGVyIHRoZSBjaGVja2VkIHByb3AsIG9yIHRoZSBkZWZhdWx0Q2hlY2tlZCBwcm9wLCBidXQgbm90IGJvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0IGVsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMiLAogICAgICAgICAgZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKSB8fCAiQSBjb21wb25lbnQiLAogICAgICAgICAgcHJvcHMudHlwZQogICAgICAgICksIGRpZFdhcm5DaGVja2VkRGVmYXVsdENoZWNrZWQgPSB0cnVlKTsKICAgICAgICB2b2lkIDAgPT09IHByb3BzLnZhbHVlIHx8IHZvaWQgMCA9PT0gcHJvcHMuZGVmYXVsdFZhbHVlIHx8IGRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSQxIHx8IChjb25zb2xlLmVycm9yKAogICAgICAgICAgIiVzIGNvbnRhaW5zIGFuIGlucHV0IG9mIHR5cGUgJXMgd2l0aCBib3RoIHZhbHVlIGFuZCBkZWZhdWx0VmFsdWUgcHJvcHMuIElucHV0IGVsZW1lbnRzIG11c3QgYmUgZWl0aGVyIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIChzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwgb3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90IGJvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0IGVsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMiLAogICAgICAgICAgZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKSB8fCAiQSBjb21wb25lbnQiLAogICAgICAgICAgcHJvcHMudHlwZQogICAgICAgICksIGRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSQxID0gdHJ1ZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXBkYXRlSW5wdXQoZWxlbWVudCwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgbGFzdERlZmF1bHRWYWx1ZSwgY2hlY2tlZCwgZGVmYXVsdENoZWNrZWQsIHR5cGUsIG5hbWUpIHsKICAgICAgICBlbGVtZW50Lm5hbWUgPSAiIjsKICAgICAgICBudWxsICE9IHR5cGUgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHR5cGUgJiYgInN5bWJvbCIgIT09IHR5cGVvZiB0eXBlICYmICJib29sZWFuIiAhPT0gdHlwZW9mIHR5cGUgPyAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih0eXBlLCAidHlwZSIpLCBlbGVtZW50LnR5cGUgPSB0eXBlKSA6IGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIik7CiAgICAgICAgaWYgKG51bGwgIT0gdmFsdWUpCiAgICAgICAgICBpZiAoIm51bWJlciIgPT09IHR5cGUpIHsKICAgICAgICAgICAgaWYgKDAgPT09IHZhbHVlICYmICIiID09PSBlbGVtZW50LnZhbHVlIHx8IGVsZW1lbnQudmFsdWUgIT0gdmFsdWUpCiAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9ICIiICsgZ2V0VG9TdHJpbmdWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgZWxlbWVudC52YWx1ZSAhPT0gIiIgKyBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKSAmJiAoZWxlbWVudC52YWx1ZSA9ICIiICsgZ2V0VG9TdHJpbmdWYWx1ZSh2YWx1ZSkpOwogICAgICAgIGVsc2UKICAgICAgICAgICJzdWJtaXQiICE9PSB0eXBlICYmICJyZXNldCIgIT09IHR5cGUgfHwgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIik7CiAgICAgICAgbnVsbCAhPSB2YWx1ZSA/IHNldERlZmF1bHRWYWx1ZShlbGVtZW50LCB0eXBlLCBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKSkgOiBudWxsICE9IGRlZmF1bHRWYWx1ZSA/IHNldERlZmF1bHRWYWx1ZShlbGVtZW50LCB0eXBlLCBnZXRUb1N0cmluZ1ZhbHVlKGRlZmF1bHRWYWx1ZSkpIDogbnVsbCAhPSBsYXN0RGVmYXVsdFZhbHVlICYmIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCJ2YWx1ZSIpOwogICAgICAgIG51bGwgPT0gY2hlY2tlZCAmJiBudWxsICE9IGRlZmF1bHRDaGVja2VkICYmIChlbGVtZW50LmRlZmF1bHRDaGVja2VkID0gISFkZWZhdWx0Q2hlY2tlZCk7CiAgICAgICAgbnVsbCAhPSBjaGVja2VkICYmIChlbGVtZW50LmNoZWNrZWQgPSBjaGVja2VkICYmICJmdW5jdGlvbiIgIT09IHR5cGVvZiBjaGVja2VkICYmICJzeW1ib2wiICE9PSB0eXBlb2YgY2hlY2tlZCk7CiAgICAgICAgbnVsbCAhPSBuYW1lICYmICJmdW5jdGlvbiIgIT09IHR5cGVvZiBuYW1lICYmICJzeW1ib2wiICE9PSB0eXBlb2YgbmFtZSAmJiAiYm9vbGVhbiIgIT09IHR5cGVvZiBuYW1lID8gKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24obmFtZSwgIm5hbWUiKSwgZWxlbWVudC5uYW1lID0gIiIgKyBnZXRUb1N0cmluZ1ZhbHVlKG5hbWUpKSA6IGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCJuYW1lIik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaW5pdElucHV0KGVsZW1lbnQsIHZhbHVlLCBkZWZhdWx0VmFsdWUsIGNoZWNrZWQsIGRlZmF1bHRDaGVja2VkLCB0eXBlLCBuYW1lLCBpc0h5ZHJhdGluZzIpIHsKICAgICAgICBudWxsICE9IHR5cGUgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHR5cGUgJiYgInN5bWJvbCIgIT09IHR5cGVvZiB0eXBlICYmICJib29sZWFuIiAhPT0gdHlwZW9mIHR5cGUgJiYgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odHlwZSwgInR5cGUiKSwgZWxlbWVudC50eXBlID0gdHlwZSk7CiAgICAgICAgaWYgKG51bGwgIT0gdmFsdWUgfHwgbnVsbCAhPSBkZWZhdWx0VmFsdWUpIHsKICAgICAgICAgIGlmICghKCJzdWJtaXQiICE9PSB0eXBlICYmICJyZXNldCIgIT09IHR5cGUgfHwgdm9pZCAwICE9PSB2YWx1ZSAmJiBudWxsICE9PSB2YWx1ZSkpIHsKICAgICAgICAgICAgdHJhY2soZWxlbWVudCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IG51bGwgIT0gZGVmYXVsdFZhbHVlID8gIiIgKyBnZXRUb1N0cmluZ1ZhbHVlKGRlZmF1bHRWYWx1ZSkgOiAiIjsKICAgICAgICAgIHZhbHVlID0gbnVsbCAhPSB2YWx1ZSA/ICIiICsgZ2V0VG9TdHJpbmdWYWx1ZSh2YWx1ZSkgOiBkZWZhdWx0VmFsdWU7CiAgICAgICAgICBpc0h5ZHJhdGluZzIgfHwgdmFsdWUgPT09IGVsZW1lbnQudmFsdWUgfHwgKGVsZW1lbnQudmFsdWUgPSB2YWx1ZSk7CiAgICAgICAgICBlbGVtZW50LmRlZmF1bHRWYWx1ZSA9IHZhbHVlOwogICAgICAgIH0KICAgICAgICBjaGVja2VkID0gbnVsbCAhPSBjaGVja2VkID8gY2hlY2tlZCA6IGRlZmF1bHRDaGVja2VkOwogICAgICAgIGNoZWNrZWQgPSAiZnVuY3Rpb24iICE9PSB0eXBlb2YgY2hlY2tlZCAmJiAic3ltYm9sIiAhPT0gdHlwZW9mIGNoZWNrZWQgJiYgISFjaGVja2VkOwogICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IGlzSHlkcmF0aW5nMiA/IGVsZW1lbnQuY2hlY2tlZCA6ICEhY2hlY2tlZDsKICAgICAgICBlbGVtZW50LmRlZmF1bHRDaGVja2VkID0gISFjaGVja2VkOwogICAgICAgIG51bGwgIT0gbmFtZSAmJiAiZnVuY3Rpb24iICE9PSB0eXBlb2YgbmFtZSAmJiAic3ltYm9sIiAhPT0gdHlwZW9mIG5hbWUgJiYgImJvb2xlYW4iICE9PSB0eXBlb2YgbmFtZSAmJiAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihuYW1lLCAibmFtZSIpLCBlbGVtZW50Lm5hbWUgPSBuYW1lKTsKICAgICAgICB0cmFjayhlbGVtZW50KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzZXREZWZhdWx0VmFsdWUobm9kZSwgdHlwZSwgdmFsdWUpIHsKICAgICAgICAibnVtYmVyIiA9PT0gdHlwZSAmJiBnZXRBY3RpdmVFbGVtZW50KG5vZGUub3duZXJEb2N1bWVudCkgPT09IG5vZGUgfHwgbm9kZS5kZWZhdWx0VmFsdWUgPT09ICIiICsgdmFsdWUgfHwgKG5vZGUuZGVmYXVsdFZhbHVlID0gIiIgKyB2YWx1ZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdmFsaWRhdGVPcHRpb25Qcm9wcyhlbGVtZW50LCBwcm9wcykgewogICAgICAgIG51bGwgPT0gcHJvcHMudmFsdWUgJiYgKCJvYmplY3QiID09PSB0eXBlb2YgcHJvcHMuY2hpbGRyZW4gJiYgbnVsbCAhPT0gcHJvcHMuY2hpbGRyZW4gPyBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKHByb3BzLmNoaWxkcmVuLCBmdW5jdGlvbihjaGlsZCkgewogICAgICAgICAgbnVsbCA9PSBjaGlsZCB8fCAic3RyaW5nIiA9PT0gdHlwZW9mIGNoaWxkIHx8ICJudW1iZXIiID09PSB0eXBlb2YgY2hpbGQgfHwgImJpZ2ludCIgPT09IHR5cGVvZiBjaGlsZCB8fCBkaWRXYXJuSW52YWxpZENoaWxkIHx8IChkaWRXYXJuSW52YWxpZENoaWxkID0gdHJ1ZSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIkNhbm5vdCBpbmZlciB0aGUgb3B0aW9uIHZhbHVlIG9mIGNvbXBsZXggY2hpbGRyZW4uIFBhc3MgYSBgdmFsdWVgIHByb3Agb3IgdXNlIGEgcGxhaW4gc3RyaW5nIGFzIGNoaWxkcmVuIHRvIDxvcHRpb24+LiIKICAgICAgICAgICkpOwogICAgICAgIH0pIDogbnVsbCA9PSBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCB8fCBkaWRXYXJuSW52YWxpZElubmVySFRNTCB8fCAoZGlkV2FybkludmFsaWRJbm5lckhUTUwgPSB0cnVlLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgIlBhc3MgYSBgdmFsdWVgIHByb3AgaWYgeW91IHNldCBkYW5nZXJvdXNseUlubmVySFRNTCBzbyBSZWFjdCBrbm93cyB3aGljaCB2YWx1ZSBzaG91bGQgYmUgc2VsZWN0ZWQuIgogICAgICAgICkpKTsKICAgICAgICBudWxsID09IHByb3BzLnNlbGVjdGVkIHx8IGRpZFdhcm5TZWxlY3RlZFNldE9uT3B0aW9uIHx8IChjb25zb2xlLmVycm9yKAogICAgICAgICAgIlVzZSB0aGUgYGRlZmF1bHRWYWx1ZWAgb3IgYHZhbHVlYCBwcm9wcyBvbiA8c2VsZWN0PiBpbnN0ZWFkIG9mIHNldHRpbmcgYHNlbGVjdGVkYCBvbiA8b3B0aW9uPi4iCiAgICAgICAgKSwgZGlkV2FyblNlbGVjdGVkU2V0T25PcHRpb24gPSB0cnVlKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7CiAgICAgICAgdmFyIG93bmVyTmFtZSA9IGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCk7CiAgICAgICAgcmV0dXJuIG93bmVyTmFtZSA/ICJcblxuQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYCIgKyBvd25lck5hbWUgKyAiYC4iIDogIiI7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXBkYXRlT3B0aW9ucyhub2RlLCBtdWx0aXBsZSwgcHJvcFZhbHVlLCBzZXREZWZhdWx0U2VsZWN0ZWQpIHsKICAgICAgICBub2RlID0gbm9kZS5vcHRpb25zOwogICAgICAgIGlmIChtdWx0aXBsZSkgewogICAgICAgICAgbXVsdGlwbGUgPSB7fTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcFZhbHVlLmxlbmd0aDsgaSsrKQogICAgICAgICAgICBtdWx0aXBsZVsiJCIgKyBwcm9wVmFsdWVbaV1dID0gdHJ1ZTsKICAgICAgICAgIGZvciAocHJvcFZhbHVlID0gMDsgcHJvcFZhbHVlIDwgbm9kZS5sZW5ndGg7IHByb3BWYWx1ZSsrKQogICAgICAgICAgICBpID0gbXVsdGlwbGUuaGFzT3duUHJvcGVydHkoIiQiICsgbm9kZVtwcm9wVmFsdWVdLnZhbHVlKSwgbm9kZVtwcm9wVmFsdWVdLnNlbGVjdGVkICE9PSBpICYmIChub2RlW3Byb3BWYWx1ZV0uc2VsZWN0ZWQgPSBpKSwgaSAmJiBzZXREZWZhdWx0U2VsZWN0ZWQgJiYgKG5vZGVbcHJvcFZhbHVlXS5kZWZhdWx0U2VsZWN0ZWQgPSB0cnVlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcHJvcFZhbHVlID0gIiIgKyBnZXRUb1N0cmluZ1ZhbHVlKHByb3BWYWx1ZSk7CiAgICAgICAgICBtdWx0aXBsZSA9IG51bGw7CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAobm9kZVtpXS52YWx1ZSA9PT0gcHJvcFZhbHVlKSB7CiAgICAgICAgICAgICAgbm9kZVtpXS5zZWxlY3RlZCA9IHRydWU7CiAgICAgICAgICAgICAgc2V0RGVmYXVsdFNlbGVjdGVkICYmIChub2RlW2ldLmRlZmF1bHRTZWxlY3RlZCA9IHRydWUpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBudWxsICE9PSBtdWx0aXBsZSB8fCBub2RlW2ldLmRpc2FibGVkIHx8IChtdWx0aXBsZSA9IG5vZGVbaV0pOwogICAgICAgICAgfQogICAgICAgICAgbnVsbCAhPT0gbXVsdGlwbGUgJiYgKG11bHRpcGxlLnNlbGVjdGVkID0gdHJ1ZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlU2VsZWN0UHJvcHMoZWxlbWVudCwgcHJvcHMpIHsKICAgICAgICBmb3IgKGVsZW1lbnQgPSAwOyBlbGVtZW50IDwgdmFsdWVQcm9wTmFtZXMubGVuZ3RoOyBlbGVtZW50KyspIHsKICAgICAgICAgIHZhciBwcm9wTmFtZSA9IHZhbHVlUHJvcE5hbWVzW2VsZW1lbnRdOwogICAgICAgICAgaWYgKG51bGwgIT0gcHJvcHNbcHJvcE5hbWVdKSB7CiAgICAgICAgICAgIHZhciBwcm9wTmFtZUlzQXJyYXkgPSBpc0FycmF5SW1wbChwcm9wc1twcm9wTmFtZV0pOwogICAgICAgICAgICBwcm9wcy5tdWx0aXBsZSAmJiAhcHJvcE5hbWVJc0FycmF5ID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiVGhlIGAlc2AgcHJvcCBzdXBwbGllZCB0byA8c2VsZWN0PiBtdXN0IGJlIGFuIGFycmF5IGlmIGBtdWx0aXBsZWAgaXMgdHJ1ZS4lcyIsCiAgICAgICAgICAgICAgcHJvcE5hbWUsCiAgICAgICAgICAgICAgZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkKICAgICAgICAgICAgKSA6ICFwcm9wcy5tdWx0aXBsZSAmJiBwcm9wTmFtZUlzQXJyYXkgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiVGhlIGAlc2AgcHJvcCBzdXBwbGllZCB0byA8c2VsZWN0PiBtdXN0IGJlIGEgc2NhbGFyIHZhbHVlIGlmIGBtdWx0aXBsZWAgaXMgZmFsc2UuJXMiLAogICAgICAgICAgICAgIHByb3BOYW1lLAogICAgICAgICAgICAgIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpCiAgICAgICAgICAgICk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHZvaWQgMCA9PT0gcHJvcHMudmFsdWUgfHwgdm9pZCAwID09PSBwcm9wcy5kZWZhdWx0VmFsdWUgfHwgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlIHx8IChjb25zb2xlLmVycm9yKAogICAgICAgICAgIlNlbGVjdCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCBib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBzZWxlY3QgZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiBodHRwczovL3JlYWN0LmRldi9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50cyIKICAgICAgICApLCBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUgPSB0cnVlKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB2YWxpZGF0ZVRleHRhcmVhUHJvcHMoZWxlbWVudCwgcHJvcHMpIHsKICAgICAgICB2b2lkIDAgPT09IHByb3BzLnZhbHVlIHx8IHZvaWQgMCA9PT0gcHJvcHMuZGVmYXVsdFZhbHVlIHx8IGRpZFdhcm5WYWxEZWZhdWx0VmFsIHx8IChjb25zb2xlLmVycm9yKAogICAgICAgICAgIiVzIGNvbnRhaW5zIGEgdGV4dGFyZWEgd2l0aCBib3RoIHZhbHVlIGFuZCBkZWZhdWx0VmFsdWUgcHJvcHMuIFRleHRhcmVhIGVsZW1lbnRzIG11c3QgYmUgZWl0aGVyIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIChzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwgb3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90IGJvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIHRleHRhcmVhIGFuZCByZW1vdmUgb25lIG9mIHRoZXNlIHByb3BzLiBNb3JlIGluZm86IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzIiwKICAgICAgICAgIGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCkgfHwgIkEgY29tcG9uZW50IgogICAgICAgICksIGRpZFdhcm5WYWxEZWZhdWx0VmFsID0gdHJ1ZSk7CiAgICAgICAgbnVsbCAhPSBwcm9wcy5jaGlsZHJlbiAmJiBudWxsID09IHByb3BzLnZhbHVlICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiVXNlIHRoZSBgZGVmYXVsdFZhbHVlYCBvciBgdmFsdWVgIHByb3BzIGluc3RlYWQgb2Ygc2V0dGluZyBjaGlsZHJlbiBvbiA8dGV4dGFyZWE+LiIKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZGF0ZVRleHRhcmVhKGVsZW1lbnQsIHZhbHVlLCBkZWZhdWx0VmFsdWUpIHsKICAgICAgICBpZiAobnVsbCAhPSB2YWx1ZSAmJiAodmFsdWUgPSAiIiArIGdldFRvU3RyaW5nVmFsdWUodmFsdWUpLCB2YWx1ZSAhPT0gZWxlbWVudC52YWx1ZSAmJiAoZWxlbWVudC52YWx1ZSA9IHZhbHVlKSwgbnVsbCA9PSBkZWZhdWx0VmFsdWUpKSB7CiAgICAgICAgICBlbGVtZW50LmRlZmF1bHRWYWx1ZSAhPT0gdmFsdWUgJiYgKGVsZW1lbnQuZGVmYXVsdFZhbHVlID0gdmFsdWUpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBlbGVtZW50LmRlZmF1bHRWYWx1ZSA9IG51bGwgIT0gZGVmYXVsdFZhbHVlID8gIiIgKyBnZXRUb1N0cmluZ1ZhbHVlKGRlZmF1bHRWYWx1ZSkgOiAiIjsKICAgICAgfQogICAgICBmdW5jdGlvbiBpbml0VGV4dGFyZWEoZWxlbWVudCwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgY2hpbGRyZW4pIHsKICAgICAgICBpZiAobnVsbCA9PSB2YWx1ZSkgewogICAgICAgICAgaWYgKG51bGwgIT0gY2hpbGRyZW4pIHsKICAgICAgICAgICAgaWYgKG51bGwgIT0gZGVmYXVsdFZhbHVlKQogICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgIklmIHlvdSBzdXBwbHkgYGRlZmF1bHRWYWx1ZWAgb24gYSA8dGV4dGFyZWE+LCBkbyBub3QgcGFzcyBjaGlsZHJlbi4iCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKGNoaWxkcmVuKSkgewogICAgICAgICAgICAgIGlmICgxIDwgY2hpbGRyZW4ubGVuZ3RoKQogICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIjx0ZXh0YXJlYT4gY2FuIG9ubHkgaGF2ZSBhdCBtb3N0IG9uZSBjaGlsZC4iKTsKICAgICAgICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuWzBdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IGNoaWxkcmVuOwogICAgICAgICAgfQogICAgICAgICAgbnVsbCA9PSBkZWZhdWx0VmFsdWUgJiYgKGRlZmF1bHRWYWx1ZSA9ICIiKTsKICAgICAgICAgIHZhbHVlID0gZGVmYXVsdFZhbHVlOwogICAgICAgIH0KICAgICAgICBkZWZhdWx0VmFsdWUgPSBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKTsKICAgICAgICBlbGVtZW50LmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKICAgICAgICBjaGlsZHJlbiA9IGVsZW1lbnQudGV4dENvbnRlbnQ7CiAgICAgICAgY2hpbGRyZW4gPT09IGRlZmF1bHRWYWx1ZSAmJiAiIiAhPT0gY2hpbGRyZW4gJiYgbnVsbCAhPT0gY2hpbGRyZW4gJiYgKGVsZW1lbnQudmFsdWUgPSBjaGlsZHJlbik7CiAgICAgICAgdHJhY2soZWxlbWVudCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZmluZE5vdGFibGVOb2RlKG5vZGUsIGluZGVudCkgewogICAgICAgIHJldHVybiB2b2lkIDAgPT09IG5vZGUuc2VydmVyUHJvcHMgJiYgMCA9PT0gbm9kZS5zZXJ2ZXJUYWlsLmxlbmd0aCAmJiAxID09PSBub2RlLmNoaWxkcmVuLmxlbmd0aCAmJiAzIDwgbm9kZS5kaXN0YW5jZUZyb21MZWFmICYmIG5vZGUuZGlzdGFuY2VGcm9tTGVhZiA+IDE1IC0gaW5kZW50ID8gZmluZE5vdGFibGVOb2RlKG5vZGUuY2hpbGRyZW5bMF0sIGluZGVudCkgOiBub2RlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGluZGVudGF0aW9uKGluZGVudCkgewogICAgICAgIHJldHVybiAiICAiICsgIiAgIi5yZXBlYXQoaW5kZW50KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhZGRlZChpbmRlbnQpIHsKICAgICAgICByZXR1cm4gIisgIiArICIgICIucmVwZWF0KGluZGVudCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVtb3ZlZChpbmRlbnQpIHsKICAgICAgICByZXR1cm4gIi0gIiArICIgICIucmVwZWF0KGluZGVudCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGVzY3JpYmVGaWJlclR5cGUoZmliZXIpIHsKICAgICAgICBzd2l0Y2ggKGZpYmVyLnRhZykgewogICAgICAgICAgY2FzZSAyNjoKICAgICAgICAgIGNhc2UgMjc6CiAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIHJldHVybiBmaWJlci50eXBlOwogICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgcmV0dXJuICJMYXp5IjsKICAgICAgICAgIGNhc2UgMzE6CiAgICAgICAgICAgIHJldHVybiAiQWN0aXZpdHkiOwogICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgcmV0dXJuICJTdXNwZW5zZSI7CiAgICAgICAgICBjYXNlIDE5OgogICAgICAgICAgICByZXR1cm4gIlN1c3BlbnNlTGlzdCI7CiAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICByZXR1cm4gZmliZXIgPSBmaWJlci50eXBlLCBmaWJlci5kaXNwbGF5TmFtZSB8fCBmaWJlci5uYW1lIHx8IG51bGw7CiAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICByZXR1cm4gZmliZXIgPSBmaWJlci50eXBlLnJlbmRlciwgZmliZXIuZGlzcGxheU5hbWUgfHwgZmliZXIubmFtZSB8fCBudWxsOwogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICByZXR1cm4gZmliZXIgPSBmaWJlci50eXBlLCBmaWJlci5kaXNwbGF5TmFtZSB8fCBmaWJlci5uYW1lIHx8IG51bGw7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGVzY3JpYmVUZXh0Tm9kZShjb250ZW50LCBtYXhMZW5ndGgpIHsKICAgICAgICByZXR1cm4gbmVlZHNFc2NhcGluZy50ZXN0KGNvbnRlbnQpID8gKGNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShjb250ZW50KSwgY29udGVudC5sZW5ndGggPiBtYXhMZW5ndGggLSAyID8gOCA+IG1heExlbmd0aCA/ICd7Ii4uLiJ9JyA6ICJ7IiArIGNvbnRlbnQuc2xpY2UoMCwgbWF4TGVuZ3RoIC0gNykgKyAnLi4uIn0nIDogInsiICsgY29udGVudCArICJ9IikgOiBjb250ZW50Lmxlbmd0aCA+IG1heExlbmd0aCA/IDUgPiBtYXhMZW5ndGggPyAneyIuLi4ifScgOiBjb250ZW50LnNsaWNlKDAsIG1heExlbmd0aCAtIDMpICsgIi4uLiIgOiBjb250ZW50OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRlc2NyaWJlVGV4dERpZmYoY2xpZW50VGV4dCwgc2VydmVyUHJvcHMsIGluZGVudCkgewogICAgICAgIHZhciBtYXhMZW5ndGggPSAxMjAgLSAyICogaW5kZW50OwogICAgICAgIGlmIChudWxsID09PSBzZXJ2ZXJQcm9wcykKICAgICAgICAgIHJldHVybiBhZGRlZChpbmRlbnQpICsgZGVzY3JpYmVUZXh0Tm9kZShjbGllbnRUZXh0LCBtYXhMZW5ndGgpICsgIlxuIjsKICAgICAgICBpZiAoInN0cmluZyIgPT09IHR5cGVvZiBzZXJ2ZXJQcm9wcykgewogICAgICAgICAgZm9yICh2YXIgZmlyc3REaWZmID0gMDsgZmlyc3REaWZmIDwgc2VydmVyUHJvcHMubGVuZ3RoICYmIGZpcnN0RGlmZiA8IGNsaWVudFRleHQubGVuZ3RoICYmIHNlcnZlclByb3BzLmNoYXJDb2RlQXQoZmlyc3REaWZmKSA9PT0gY2xpZW50VGV4dC5jaGFyQ29kZUF0KGZpcnN0RGlmZik7IGZpcnN0RGlmZisrKSA7CiAgICAgICAgICBmaXJzdERpZmYgPiBtYXhMZW5ndGggLSA4ICYmIDEwIDwgZmlyc3REaWZmICYmIChjbGllbnRUZXh0ID0gIi4uLiIgKyBjbGllbnRUZXh0LnNsaWNlKGZpcnN0RGlmZiAtIDgpLCBzZXJ2ZXJQcm9wcyA9ICIuLi4iICsgc2VydmVyUHJvcHMuc2xpY2UoZmlyc3REaWZmIC0gOCkpOwogICAgICAgICAgcmV0dXJuIGFkZGVkKGluZGVudCkgKyBkZXNjcmliZVRleHROb2RlKGNsaWVudFRleHQsIG1heExlbmd0aCkgKyAiXG4iICsgcmVtb3ZlZChpbmRlbnQpICsgZGVzY3JpYmVUZXh0Tm9kZShzZXJ2ZXJQcm9wcywgbWF4TGVuZ3RoKSArICJcbiI7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpbmRlbnRhdGlvbihpbmRlbnQpICsgZGVzY3JpYmVUZXh0Tm9kZShjbGllbnRUZXh0LCBtYXhMZW5ndGgpICsgIlxuIjsKICAgICAgfQogICAgICBmdW5jdGlvbiBvYmplY3ROYW1lKG9iamVjdCkgewogICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KS5yZXBsYWNlKC9eXFtvYmplY3QgKC4qKVxdJC8sIGZ1bmN0aW9uKG0sIHAwKSB7CiAgICAgICAgICByZXR1cm4gcDA7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGVzY3JpYmVWYWx1ZSh2YWx1ZSwgbWF4TGVuZ3RoKSB7CiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHsKICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKSwgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoID8gNSA+IG1heExlbmd0aCA/ICciLi4uIicgOiB2YWx1ZS5zbGljZSgwLCBtYXhMZW5ndGggLSA0KSArICcuLi4iJyA6IHZhbHVlOwogICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgaWYgKG51bGwgPT09IHZhbHVlKSByZXR1cm4gIm51bGwiOwogICAgICAgICAgICBpZiAoaXNBcnJheUltcGwodmFsdWUpKSByZXR1cm4gIlsuLi5dIjsKICAgICAgICAgICAgaWYgKHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpCiAgICAgICAgICAgICAgcmV0dXJuIChtYXhMZW5ndGggPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodmFsdWUudHlwZSkpID8gIjwiICsgbWF4TGVuZ3RoICsgIj4iIDogIjwuLi4+IjsKICAgICAgICAgICAgdmFyIG5hbWUgPSBvYmplY3ROYW1lKHZhbHVlKTsKICAgICAgICAgICAgaWYgKCJPYmplY3QiID09PSBuYW1lKSB7CiAgICAgICAgICAgICAgbmFtZSA9ICIiOwogICAgICAgICAgICAgIG1heExlbmd0aCAtPSAyOwogICAgICAgICAgICAgIGZvciAodmFyIHByb3BOYW1lIGluIHZhbHVlKQogICAgICAgICAgICAgICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkgewogICAgICAgICAgICAgICAgICB2YXIganNvblByb3BOYW1lID0gSlNPTi5zdHJpbmdpZnkocHJvcE5hbWUpOwogICAgICAgICAgICAgICAgICBqc29uUHJvcE5hbWUgIT09ICciJyArIHByb3BOYW1lICsgJyInICYmIChwcm9wTmFtZSA9IGpzb25Qcm9wTmFtZSk7CiAgICAgICAgICAgICAgICAgIG1heExlbmd0aCAtPSBwcm9wTmFtZS5sZW5ndGggLSAyOwogICAgICAgICAgICAgICAgICBqc29uUHJvcE5hbWUgPSBkZXNjcmliZVZhbHVlKAogICAgICAgICAgICAgICAgICAgIHZhbHVlW3Byb3BOYW1lXSwKICAgICAgICAgICAgICAgICAgICAxNSA+IG1heExlbmd0aCA/IG1heExlbmd0aCA6IDE1CiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIG1heExlbmd0aCAtPSBqc29uUHJvcE5hbWUubGVuZ3RoOwogICAgICAgICAgICAgICAgICBpZiAoMCA+IG1heExlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIG5hbWUgKz0gIiIgPT09IG5hbWUgPyAiLi4uIiA6ICIsIC4uLiI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgbmFtZSArPSAoIiIgPT09IG5hbWUgPyAiIiA6ICIsIikgKyBwcm9wTmFtZSArICI6IiArIGpzb25Qcm9wTmFtZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gInsiICsgbmFtZSArICJ9IjsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbmFtZTsKICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKICAgICAgICAgICAgcmV0dXJuIChtYXhMZW5ndGggPSB2YWx1ZS5kaXNwbGF5TmFtZSB8fCB2YWx1ZS5uYW1lKSA/ICJmdW5jdGlvbiAiICsgbWF4TGVuZ3RoIDogImZ1bmN0aW9uIjsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBkZXNjcmliZVByb3BWYWx1ZSh2YWx1ZSwgbWF4TGVuZ3RoKSB7CiAgICAgICAgcmV0dXJuICJzdHJpbmciICE9PSB0eXBlb2YgdmFsdWUgfHwgbmVlZHNFc2NhcGluZy50ZXN0KHZhbHVlKSA/ICJ7IiArIGRlc2NyaWJlVmFsdWUodmFsdWUsIG1heExlbmd0aCAtIDIpICsgIn0iIDogdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoIC0gMiA/IDUgPiBtYXhMZW5ndGggPyAnIi4uLiInIDogJyInICsgdmFsdWUuc2xpY2UoMCwgbWF4TGVuZ3RoIC0gNSkgKyAnLi4uIicgOiAnIicgKyB2YWx1ZSArICciJzsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZXNjcmliZUV4cGFuZGVkRWxlbWVudCh0eXBlLCBwcm9wcywgcm93UHJlZml4KSB7CiAgICAgICAgdmFyIHJlbWFpbmluZ1Jvd0xlbmd0aCA9IDEyMCAtIHJvd1ByZWZpeC5sZW5ndGggLSB0eXBlLmxlbmd0aCwgcHJvcGVydGllcyA9IFtdLCBwcm9wTmFtZTsKICAgICAgICBmb3IgKHByb3BOYW1lIGluIHByb3BzKQogICAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KHByb3BOYW1lKSAmJiAiY2hpbGRyZW4iICE9PSBwcm9wTmFtZSkgewogICAgICAgICAgICB2YXIgcHJvcFZhbHVlID0gZGVzY3JpYmVQcm9wVmFsdWUoCiAgICAgICAgICAgICAgcHJvcHNbcHJvcE5hbWVdLAogICAgICAgICAgICAgIDEyMCAtIHJvd1ByZWZpeC5sZW5ndGggLSBwcm9wTmFtZS5sZW5ndGggLSAxCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJlbWFpbmluZ1Jvd0xlbmd0aCAtPSBwcm9wTmFtZS5sZW5ndGggKyBwcm9wVmFsdWUubGVuZ3RoICsgMjsKICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKHByb3BOYW1lICsgIj0iICsgcHJvcFZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICByZXR1cm4gMCA9PT0gcHJvcGVydGllcy5sZW5ndGggPyByb3dQcmVmaXggKyAiPCIgKyB0eXBlICsgIj5cbiIgOiAwIDwgcmVtYWluaW5nUm93TGVuZ3RoID8gcm93UHJlZml4ICsgIjwiICsgdHlwZSArICIgIiArIHByb3BlcnRpZXMuam9pbigiICIpICsgIj5cbiIgOiByb3dQcmVmaXggKyAiPCIgKyB0eXBlICsgIlxuIiArIHJvd1ByZWZpeCArICIgICIgKyBwcm9wZXJ0aWVzLmpvaW4oIlxuIiArIHJvd1ByZWZpeCArICIgICIpICsgIlxuIiArIHJvd1ByZWZpeCArICI+XG4iOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRlc2NyaWJlUHJvcGVydGllc0RpZmYoY2xpZW50T2JqZWN0LCBzZXJ2ZXJPYmplY3QsIGluZGVudCkgewogICAgICAgIHZhciBwcm9wZXJ0aWVzID0gIiIsIHJlbWFpbmluZ1NlcnZlclByb3BlcnRpZXMgPSBhc3NpZ24oe30sIHNlcnZlck9iamVjdCksIHByb3BOYW1lOwogICAgICAgIGZvciAocHJvcE5hbWUgaW4gY2xpZW50T2JqZWN0KQogICAgICAgICAgaWYgKGNsaWVudE9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHsKICAgICAgICAgICAgZGVsZXRlIHJlbWFpbmluZ1NlcnZlclByb3BlcnRpZXNbcHJvcE5hbWVdOwogICAgICAgICAgICB2YXIgbWF4TGVuZ3RoID0gMTIwIC0gMiAqIGluZGVudCAtIHByb3BOYW1lLmxlbmd0aCAtIDIsIGNsaWVudFByb3BWYWx1ZSA9IGRlc2NyaWJlVmFsdWUoY2xpZW50T2JqZWN0W3Byb3BOYW1lXSwgbWF4TGVuZ3RoKTsKICAgICAgICAgICAgc2VydmVyT2JqZWN0Lmhhc093blByb3BlcnR5KHByb3BOYW1lKSA/IChtYXhMZW5ndGggPSBkZXNjcmliZVZhbHVlKHNlcnZlck9iamVjdFtwcm9wTmFtZV0sIG1heExlbmd0aCksIHByb3BlcnRpZXMgKz0gYWRkZWQoaW5kZW50KSArIHByb3BOYW1lICsgIjogIiArIGNsaWVudFByb3BWYWx1ZSArICJcbiIsIHByb3BlcnRpZXMgKz0gcmVtb3ZlZChpbmRlbnQpICsgcHJvcE5hbWUgKyAiOiAiICsgbWF4TGVuZ3RoICsgIlxuIikgOiBwcm9wZXJ0aWVzICs9IGFkZGVkKGluZGVudCkgKyBwcm9wTmFtZSArICI6ICIgKyBjbGllbnRQcm9wVmFsdWUgKyAiXG4iOwogICAgICAgICAgfQogICAgICAgIGZvciAodmFyIF9wcm9wTmFtZSBpbiByZW1haW5pbmdTZXJ2ZXJQcm9wZXJ0aWVzKQogICAgICAgICAgcmVtYWluaW5nU2VydmVyUHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShfcHJvcE5hbWUpICYmIChjbGllbnRPYmplY3QgPSBkZXNjcmliZVZhbHVlKAogICAgICAgICAgICByZW1haW5pbmdTZXJ2ZXJQcm9wZXJ0aWVzW19wcm9wTmFtZV0sCiAgICAgICAgICAgIDEyMCAtIDIgKiBpbmRlbnQgLSBfcHJvcE5hbWUubGVuZ3RoIC0gMgogICAgICAgICAgKSwgcHJvcGVydGllcyArPSByZW1vdmVkKGluZGVudCkgKyBfcHJvcE5hbWUgKyAiOiAiICsgY2xpZW50T2JqZWN0ICsgIlxuIik7CiAgICAgICAgcmV0dXJuIHByb3BlcnRpZXM7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGVzY3JpYmVFbGVtZW50RGlmZih0eXBlLCBjbGllbnRQcm9wcywgc2VydmVyUHJvcHMsIGluZGVudCkgewogICAgICAgIHZhciBjb250ZW50ID0gIiIsIHNlcnZlclByb3BOYW1lcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgICAgZm9yIChwcm9wTmFtZSRqc2NvbXAkMCBpbiBzZXJ2ZXJQcm9wcykKICAgICAgICAgIHNlcnZlclByb3BzLmhhc093blByb3BlcnR5KHByb3BOYW1lJGpzY29tcCQwKSAmJiBzZXJ2ZXJQcm9wTmFtZXMuc2V0KAogICAgICAgICAgICBwcm9wTmFtZSRqc2NvbXAkMC50b0xvd2VyQ2FzZSgpLAogICAgICAgICAgICBwcm9wTmFtZSRqc2NvbXAkMAogICAgICAgICAgKTsKICAgICAgICBpZiAoMSA9PT0gc2VydmVyUHJvcE5hbWVzLnNpemUgJiYgc2VydmVyUHJvcE5hbWVzLmhhcygiY2hpbGRyZW4iKSkKICAgICAgICAgIGNvbnRlbnQgKz0gZGVzY3JpYmVFeHBhbmRlZEVsZW1lbnQoCiAgICAgICAgICAgIHR5cGUsCiAgICAgICAgICAgIGNsaWVudFByb3BzLAogICAgICAgICAgICBpbmRlbnRhdGlvbihpbmRlbnQpCiAgICAgICAgICApOwogICAgICAgIGVsc2UgewogICAgICAgICAgZm9yICh2YXIgX3Byb3BOYW1lMiBpbiBjbGllbnRQcm9wcykKICAgICAgICAgICAgaWYgKGNsaWVudFByb3BzLmhhc093blByb3BlcnR5KF9wcm9wTmFtZTIpICYmICJjaGlsZHJlbiIgIT09IF9wcm9wTmFtZTIpIHsKICAgICAgICAgICAgICB2YXIgbWF4TGVuZ3RoJGpzY29tcCQwID0gMTIwIC0gMiAqIChpbmRlbnQgKyAxKSAtIF9wcm9wTmFtZTIubGVuZ3RoIC0gMSwgc2VydmVyUHJvcE5hbWUgPSBzZXJ2ZXJQcm9wTmFtZXMuZ2V0KF9wcm9wTmFtZTIudG9Mb3dlckNhc2UoKSk7CiAgICAgICAgICAgICAgaWYgKHZvaWQgMCAhPT0gc2VydmVyUHJvcE5hbWUpIHsKICAgICAgICAgICAgICAgIHNlcnZlclByb3BOYW1lcy5kZWxldGUoX3Byb3BOYW1lMi50b0xvd2VyQ2FzZSgpKTsKICAgICAgICAgICAgICAgIHZhciBwcm9wTmFtZSRqc2NvbXAkMCA9IGNsaWVudFByb3BzW19wcm9wTmFtZTJdOwogICAgICAgICAgICAgICAgc2VydmVyUHJvcE5hbWUgPSBzZXJ2ZXJQcm9wc1tzZXJ2ZXJQcm9wTmFtZV07CiAgICAgICAgICAgICAgICB2YXIgY2xpZW50UHJvcFZhbHVlID0gZGVzY3JpYmVQcm9wVmFsdWUoCiAgICAgICAgICAgICAgICAgIHByb3BOYW1lJGpzY29tcCQwLAogICAgICAgICAgICAgICAgICBtYXhMZW5ndGgkanNjb21wJDAKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBtYXhMZW5ndGgkanNjb21wJDAgPSBkZXNjcmliZVByb3BWYWx1ZSgKICAgICAgICAgICAgICAgICAgc2VydmVyUHJvcE5hbWUsCiAgICAgICAgICAgICAgICAgIG1heExlbmd0aCRqc2NvbXAkMAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICJvYmplY3QiID09PSB0eXBlb2YgcHJvcE5hbWUkanNjb21wJDAgJiYgbnVsbCAhPT0gcHJvcE5hbWUkanNjb21wJDAgJiYgIm9iamVjdCIgPT09IHR5cGVvZiBzZXJ2ZXJQcm9wTmFtZSAmJiBudWxsICE9PSBzZXJ2ZXJQcm9wTmFtZSAmJiAiT2JqZWN0IiA9PT0gb2JqZWN0TmFtZShwcm9wTmFtZSRqc2NvbXAkMCkgJiYgIk9iamVjdCIgPT09IG9iamVjdE5hbWUoc2VydmVyUHJvcE5hbWUpICYmICgyIDwgT2JqZWN0LmtleXMocHJvcE5hbWUkanNjb21wJDApLmxlbmd0aCB8fCAyIDwgT2JqZWN0LmtleXMoc2VydmVyUHJvcE5hbWUpLmxlbmd0aCB8fCAtMSA8IGNsaWVudFByb3BWYWx1ZS5pbmRleE9mKCIuLi4iKSB8fCAtMSA8IG1heExlbmd0aCRqc2NvbXAkMC5pbmRleE9mKCIuLi4iKSkgPyBjb250ZW50ICs9IGluZGVudGF0aW9uKGluZGVudCArIDEpICsgX3Byb3BOYW1lMiArICI9e3tcbiIgKyBkZXNjcmliZVByb3BlcnRpZXNEaWZmKAogICAgICAgICAgICAgICAgICBwcm9wTmFtZSRqc2NvbXAkMCwKICAgICAgICAgICAgICAgICAgc2VydmVyUHJvcE5hbWUsCiAgICAgICAgICAgICAgICAgIGluZGVudCArIDIKICAgICAgICAgICAgICAgICkgKyBpbmRlbnRhdGlvbihpbmRlbnQgKyAxKSArICJ9fVxuIiA6IChjb250ZW50ICs9IGFkZGVkKGluZGVudCArIDEpICsgX3Byb3BOYW1lMiArICI9IiArIGNsaWVudFByb3BWYWx1ZSArICJcbiIsIGNvbnRlbnQgKz0gcmVtb3ZlZChpbmRlbnQgKyAxKSArIF9wcm9wTmFtZTIgKyAiPSIgKyBtYXhMZW5ndGgkanNjb21wJDAgKyAiXG4iKTsKICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgIGNvbnRlbnQgKz0gaW5kZW50YXRpb24oaW5kZW50ICsgMSkgKyBfcHJvcE5hbWUyICsgIj0iICsgZGVzY3JpYmVQcm9wVmFsdWUoY2xpZW50UHJvcHNbX3Byb3BOYW1lMl0sIG1heExlbmd0aCRqc2NvbXAkMCkgKyAiXG4iOwogICAgICAgICAgICB9CiAgICAgICAgICBzZXJ2ZXJQcm9wTmFtZXMuZm9yRWFjaChmdW5jdGlvbihwcm9wTmFtZSkgewogICAgICAgICAgICBpZiAoImNoaWxkcmVuIiAhPT0gcHJvcE5hbWUpIHsKICAgICAgICAgICAgICB2YXIgbWF4TGVuZ3RoID0gMTIwIC0gMiAqIChpbmRlbnQgKyAxKSAtIHByb3BOYW1lLmxlbmd0aCAtIDE7CiAgICAgICAgICAgICAgY29udGVudCArPSByZW1vdmVkKGluZGVudCArIDEpICsgcHJvcE5hbWUgKyAiPSIgKyBkZXNjcmliZVByb3BWYWx1ZShzZXJ2ZXJQcm9wc1twcm9wTmFtZV0sIG1heExlbmd0aCkgKyAiXG4iOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICAgIGNvbnRlbnQgPSAiIiA9PT0gY29udGVudCA/IGluZGVudGF0aW9uKGluZGVudCkgKyAiPCIgKyB0eXBlICsgIj5cbiIgOiBpbmRlbnRhdGlvbihpbmRlbnQpICsgIjwiICsgdHlwZSArICJcbiIgKyBjb250ZW50ICsgaW5kZW50YXRpb24oaW5kZW50KSArICI+XG4iOwogICAgICAgIH0KICAgICAgICB0eXBlID0gc2VydmVyUHJvcHMuY2hpbGRyZW47CiAgICAgICAgY2xpZW50UHJvcHMgPSBjbGllbnRQcm9wcy5jaGlsZHJlbjsKICAgICAgICBpZiAoInN0cmluZyIgPT09IHR5cGVvZiB0eXBlIHx8ICJudW1iZXIiID09PSB0eXBlb2YgdHlwZSB8fCAiYmlnaW50IiA9PT0gdHlwZW9mIHR5cGUpIHsKICAgICAgICAgIHNlcnZlclByb3BOYW1lcyA9ICIiOwogICAgICAgICAgaWYgKCJzdHJpbmciID09PSB0eXBlb2YgY2xpZW50UHJvcHMgfHwgIm51bWJlciIgPT09IHR5cGVvZiBjbGllbnRQcm9wcyB8fCAiYmlnaW50IiA9PT0gdHlwZW9mIGNsaWVudFByb3BzKQogICAgICAgICAgICBzZXJ2ZXJQcm9wTmFtZXMgPSAiIiArIGNsaWVudFByb3BzOwogICAgICAgICAgY29udGVudCArPSBkZXNjcmliZVRleHREaWZmKHNlcnZlclByb3BOYW1lcywgIiIgKyB0eXBlLCBpbmRlbnQgKyAxKTsKICAgICAgICB9IGVsc2UgaWYgKCJzdHJpbmciID09PSB0eXBlb2YgY2xpZW50UHJvcHMgfHwgIm51bWJlciIgPT09IHR5cGVvZiBjbGllbnRQcm9wcyB8fCAiYmlnaW50IiA9PT0gdHlwZW9mIGNsaWVudFByb3BzKQogICAgICAgICAgY29udGVudCA9IG51bGwgPT0gdHlwZSA/IGNvbnRlbnQgKyBkZXNjcmliZVRleHREaWZmKCIiICsgY2xpZW50UHJvcHMsIG51bGwsIGluZGVudCArIDEpIDogY29udGVudCArIGRlc2NyaWJlVGV4dERpZmYoIiIgKyBjbGllbnRQcm9wcywgdm9pZCAwLCBpbmRlbnQgKyAxKTsKICAgICAgICByZXR1cm4gY29udGVudDsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZXNjcmliZVNpYmxpbmdGaWJlcihmaWJlciwgaW5kZW50KSB7CiAgICAgICAgdmFyIHR5cGUgPSBkZXNjcmliZUZpYmVyVHlwZShmaWJlcik7CiAgICAgICAgaWYgKG51bGwgPT09IHR5cGUpIHsKICAgICAgICAgIHR5cGUgPSAiIjsKICAgICAgICAgIGZvciAoZmliZXIgPSBmaWJlci5jaGlsZDsgZmliZXI7ICkKICAgICAgICAgICAgdHlwZSArPSBkZXNjcmliZVNpYmxpbmdGaWJlcihmaWJlciwgaW5kZW50KSwgZmliZXIgPSBmaWJlci5zaWJsaW5nOwogICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpbmRlbnRhdGlvbihpbmRlbnQpICsgIjwiICsgdHlwZSArICI+XG4iOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRlc2NyaWJlTm9kZShub2RlLCBpbmRlbnQpIHsKICAgICAgICB2YXIgc2tpcFRvTm9kZSA9IGZpbmROb3RhYmxlTm9kZShub2RlLCBpbmRlbnQpOwogICAgICAgIGlmIChza2lwVG9Ob2RlICE9PSBub2RlICYmICgxICE9PSBub2RlLmNoaWxkcmVuLmxlbmd0aCB8fCBub2RlLmNoaWxkcmVuWzBdICE9PSBza2lwVG9Ob2RlKSkKICAgICAgICAgIHJldHVybiBpbmRlbnRhdGlvbihpbmRlbnQpICsgIi4uLlxuIiArIGRlc2NyaWJlTm9kZShza2lwVG9Ob2RlLCBpbmRlbnQgKyAxKTsKICAgICAgICBza2lwVG9Ob2RlID0gIiI7CiAgICAgICAgdmFyIGRlYnVnSW5mbyA9IG5vZGUuZmliZXIuX2RlYnVnSW5mbzsKICAgICAgICBpZiAoZGVidWdJbmZvKQogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZWJ1Z0luZm8ubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIHNlcnZlckNvbXBvbmVudE5hbWUgPSBkZWJ1Z0luZm9baV0ubmFtZTsKICAgICAgICAgICAgInN0cmluZyIgPT09IHR5cGVvZiBzZXJ2ZXJDb21wb25lbnROYW1lICYmIChza2lwVG9Ob2RlICs9IGluZGVudGF0aW9uKGluZGVudCkgKyAiPCIgKyBzZXJ2ZXJDb21wb25lbnROYW1lICsgIj5cbiIsIGluZGVudCsrKTsKICAgICAgICAgIH0KICAgICAgICBkZWJ1Z0luZm8gPSAiIjsKICAgICAgICBpID0gbm9kZS5maWJlci5wZW5kaW5nUHJvcHM7CiAgICAgICAgaWYgKDYgPT09IG5vZGUuZmliZXIudGFnKQogICAgICAgICAgZGVidWdJbmZvID0gZGVzY3JpYmVUZXh0RGlmZihpLCBub2RlLnNlcnZlclByb3BzLCBpbmRlbnQpLCBpbmRlbnQrKzsKICAgICAgICBlbHNlIGlmIChzZXJ2ZXJDb21wb25lbnROYW1lID0gZGVzY3JpYmVGaWJlclR5cGUobm9kZS5maWJlciksIG51bGwgIT09IHNlcnZlckNvbXBvbmVudE5hbWUpCiAgICAgICAgICBpZiAodm9pZCAwID09PSBub2RlLnNlcnZlclByb3BzKSB7CiAgICAgICAgICAgIGRlYnVnSW5mbyA9IGluZGVudDsKICAgICAgICAgICAgdmFyIG1heExlbmd0aCA9IDEyMCAtIDIgKiBkZWJ1Z0luZm8gLSBzZXJ2ZXJDb21wb25lbnROYW1lLmxlbmd0aCAtIDIsIGNvbnRlbnQgPSAiIjsKICAgICAgICAgICAgZm9yIChwcm9wTmFtZSBpbiBpKQogICAgICAgICAgICAgIGlmIChpLmhhc093blByb3BlcnR5KHByb3BOYW1lKSAmJiAiY2hpbGRyZW4iICE9PSBwcm9wTmFtZSkgewogICAgICAgICAgICAgICAgdmFyIHByb3BWYWx1ZSA9IGRlc2NyaWJlUHJvcFZhbHVlKGlbcHJvcE5hbWVdLCAxNSk7CiAgICAgICAgICAgICAgICBtYXhMZW5ndGggLT0gcHJvcE5hbWUubGVuZ3RoICsgcHJvcFZhbHVlLmxlbmd0aCArIDI7CiAgICAgICAgICAgICAgICBpZiAoMCA+IG1heExlbmd0aCkgewogICAgICAgICAgICAgICAgICBjb250ZW50ICs9ICIgLi4uIjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb250ZW50ICs9ICIgIiArIHByb3BOYW1lICsgIj0iICsgcHJvcFZhbHVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgZGVidWdJbmZvID0gaW5kZW50YXRpb24oZGVidWdJbmZvKSArICI8IiArIHNlcnZlckNvbXBvbmVudE5hbWUgKyBjb250ZW50ICsgIj5cbiI7CiAgICAgICAgICAgIGluZGVudCsrOwogICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgIG51bGwgPT09IG5vZGUuc2VydmVyUHJvcHMgPyAoZGVidWdJbmZvID0gZGVzY3JpYmVFeHBhbmRlZEVsZW1lbnQoCiAgICAgICAgICAgICAgc2VydmVyQ29tcG9uZW50TmFtZSwKICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgIGFkZGVkKGluZGVudCkKICAgICAgICAgICAgKSwgaW5kZW50KyspIDogInN0cmluZyIgPT09IHR5cGVvZiBub2RlLnNlcnZlclByb3BzID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiU2hvdWxkIG5vdCBoYXZlIG1hdGNoZWQgYSBub24gSG9zdFRleHQgZmliZXIgdG8gYSBUZXh0IG5vZGUuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIgogICAgICAgICAgICApIDogKGRlYnVnSW5mbyA9IGRlc2NyaWJlRWxlbWVudERpZmYoCiAgICAgICAgICAgICAgc2VydmVyQ29tcG9uZW50TmFtZSwKICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgIG5vZGUuc2VydmVyUHJvcHMsCiAgICAgICAgICAgICAgaW5kZW50CiAgICAgICAgICAgICksIGluZGVudCsrKTsKICAgICAgICB2YXIgcHJvcE5hbWUgPSAiIjsKICAgICAgICBpID0gbm9kZS5maWJlci5jaGlsZDsKICAgICAgICBmb3IgKHNlcnZlckNvbXBvbmVudE5hbWUgPSAwOyBpICYmIHNlcnZlckNvbXBvbmVudE5hbWUgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgKQogICAgICAgICAgbWF4TGVuZ3RoID0gbm9kZS5jaGlsZHJlbltzZXJ2ZXJDb21wb25lbnROYW1lXSwgbWF4TGVuZ3RoLmZpYmVyID09PSBpID8gKHByb3BOYW1lICs9IGRlc2NyaWJlTm9kZShtYXhMZW5ndGgsIGluZGVudCksIHNlcnZlckNvbXBvbmVudE5hbWUrKykgOiBwcm9wTmFtZSArPSBkZXNjcmliZVNpYmxpbmdGaWJlcihpLCBpbmRlbnQpLCBpID0gaS5zaWJsaW5nOwogICAgICAgIGkgJiYgMCA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoICYmIChwcm9wTmFtZSArPSBpbmRlbnRhdGlvbihpbmRlbnQpICsgIi4uLlxuIik7CiAgICAgICAgaSA9IG5vZGUuc2VydmVyVGFpbDsKICAgICAgICBudWxsID09PSBub2RlLnNlcnZlclByb3BzICYmIGluZGVudC0tOwogICAgICAgIGZvciAobm9kZSA9IDA7IG5vZGUgPCBpLmxlbmd0aDsgbm9kZSsrKQogICAgICAgICAgc2VydmVyQ29tcG9uZW50TmFtZSA9IGlbbm9kZV0sIHByb3BOYW1lID0gInN0cmluZyIgPT09IHR5cGVvZiBzZXJ2ZXJDb21wb25lbnROYW1lID8gcHJvcE5hbWUgKyAocmVtb3ZlZChpbmRlbnQpICsgZGVzY3JpYmVUZXh0Tm9kZShzZXJ2ZXJDb21wb25lbnROYW1lLCAxMjAgLSAyICogaW5kZW50KSArICJcbiIpIDogcHJvcE5hbWUgKyBkZXNjcmliZUV4cGFuZGVkRWxlbWVudCgKICAgICAgICAgICAgc2VydmVyQ29tcG9uZW50TmFtZS50eXBlLAogICAgICAgICAgICBzZXJ2ZXJDb21wb25lbnROYW1lLnByb3BzLAogICAgICAgICAgICByZW1vdmVkKGluZGVudCkKICAgICAgICAgICk7CiAgICAgICAgcmV0dXJuIHNraXBUb05vZGUgKyBkZWJ1Z0luZm8gKyBwcm9wTmFtZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZXNjcmliZURpZmYocm9vdE5vZGUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuICJcblxuIiArIGRlc2NyaWJlTm9kZShyb290Tm9kZSwgMCk7CiAgICAgICAgfSBjYXRjaCAoeCkgewogICAgICAgICAgcmV0dXJuICIiOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBkZXNjcmliZUFuY2VzdG9ycyhhbmNlc3RvciwgY2hpbGQsIHByb3BzKSB7CiAgICAgICAgZm9yICh2YXIgZmliZXIgPSBjaGlsZCwgbm9kZSA9IG51bGwsIGRpc3RhbmNlRnJvbUxlYWYgPSAwOyBmaWJlcjsgKQogICAgICAgICAgZmliZXIgPT09IGFuY2VzdG9yICYmIChkaXN0YW5jZUZyb21MZWFmID0gMCksIG5vZGUgPSB7CiAgICAgICAgICAgIGZpYmVyLAogICAgICAgICAgICBjaGlsZHJlbjogbnVsbCAhPT0gbm9kZSA/IFtub2RlXSA6IFtdLAogICAgICAgICAgICBzZXJ2ZXJQcm9wczogZmliZXIgPT09IGNoaWxkID8gcHJvcHMgOiBmaWJlciA9PT0gYW5jZXN0b3IgPyBudWxsIDogdm9pZCAwLAogICAgICAgICAgICBzZXJ2ZXJUYWlsOiBbXSwKICAgICAgICAgICAgZGlzdGFuY2VGcm9tTGVhZgogICAgICAgICAgfSwgZGlzdGFuY2VGcm9tTGVhZisrLCBmaWJlciA9IGZpYmVyLnJldHVybjsKICAgICAgICByZXR1cm4gbnVsbCAhPT0gbm9kZSA/IGRlc2NyaWJlRGlmZihub2RlKS5yZXBsYWNlQWxsKC9eWystXS9nbSwgIj4iKSA6ICIiOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZGF0ZWRBbmNlc3RvckluZm9EZXYob2xkSW5mbywgdGFnKSB7CiAgICAgICAgdmFyIGFuY2VzdG9ySW5mbyA9IGFzc2lnbih7fSwgb2xkSW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mb0RldiksIGluZm8gPSB7IHRhZyB9OwogICAgICAgIC0xICE9PSBpblNjb3BlVGFncy5pbmRleE9mKHRhZykgJiYgKGFuY2VzdG9ySW5mby5hVGFnSW5TY29wZSA9IG51bGwsIGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlID0gbnVsbCwgYW5jZXN0b3JJbmZvLm5vYnJUYWdJblNjb3BlID0gbnVsbCk7CiAgICAgICAgLTEgIT09IGJ1dHRvblNjb3BlVGFncy5pbmRleE9mKHRhZykgJiYgKGFuY2VzdG9ySW5mby5wVGFnSW5CdXR0b25TY29wZSA9IG51bGwpOwogICAgICAgIC0xICE9PSBzcGVjaWFsVGFncy5pbmRleE9mKHRhZykgJiYgImFkZHJlc3MiICE9PSB0YWcgJiYgImRpdiIgIT09IHRhZyAmJiAicCIgIT09IHRhZyAmJiAoYW5jZXN0b3JJbmZvLmxpc3RJdGVtVGFnQXV0b2Nsb3NpbmcgPSBudWxsLCBhbmNlc3RvckluZm8uZGxJdGVtVGFnQXV0b2Nsb3NpbmcgPSBudWxsKTsKICAgICAgICBhbmNlc3RvckluZm8uY3VycmVudCA9IGluZm87CiAgICAgICAgImZvcm0iID09PSB0YWcgJiYgKGFuY2VzdG9ySW5mby5mb3JtVGFnID0gaW5mbyk7CiAgICAgICAgImEiID09PSB0YWcgJiYgKGFuY2VzdG9ySW5mby5hVGFnSW5TY29wZSA9IGluZm8pOwogICAgICAgICJidXR0b24iID09PSB0YWcgJiYgKGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlID0gaW5mbyk7CiAgICAgICAgIm5vYnIiID09PSB0YWcgJiYgKGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZSA9IGluZm8pOwogICAgICAgICJwIiA9PT0gdGFnICYmIChhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGUgPSBpbmZvKTsKICAgICAgICAibGkiID09PSB0YWcgJiYgKGFuY2VzdG9ySW5mby5saXN0SXRlbVRhZ0F1dG9jbG9zaW5nID0gaW5mbyk7CiAgICAgICAgaWYgKCJkZCIgPT09IHRhZyB8fCAiZHQiID09PSB0YWcpCiAgICAgICAgICBhbmNlc3RvckluZm8uZGxJdGVtVGFnQXV0b2Nsb3NpbmcgPSBpbmZvOwogICAgICAgICIjZG9jdW1lbnQiID09PSB0YWcgfHwgImh0bWwiID09PSB0YWcgPyBhbmNlc3RvckluZm8uY29udGFpbmVyVGFnSW5TY29wZSA9IG51bGwgOiBhbmNlc3RvckluZm8uY29udGFpbmVyVGFnSW5TY29wZSB8fCAoYW5jZXN0b3JJbmZvLmNvbnRhaW5lclRhZ0luU2NvcGUgPSBpbmZvKTsKICAgICAgICBudWxsICE9PSBvbGRJbmZvIHx8ICIjZG9jdW1lbnQiICE9PSB0YWcgJiYgImh0bWwiICE9PSB0YWcgJiYgImJvZHkiICE9PSB0YWcgPyB0cnVlID09PSBhbmNlc3RvckluZm8uaW1wbGljaXRSb290U2NvcGUgJiYgKGFuY2VzdG9ySW5mby5pbXBsaWNpdFJvb3RTY29wZSA9IGZhbHNlKSA6IGFuY2VzdG9ySW5mby5pbXBsaWNpdFJvb3RTY29wZSA9IHRydWU7CiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mbzsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc1RhZ1ZhbGlkV2l0aFBhcmVudCh0YWcsIHBhcmVudFRhZywgaW1wbGljaXRSb290U2NvcGUpIHsKICAgICAgICBzd2l0Y2ggKHBhcmVudFRhZykgewogICAgICAgICAgY2FzZSAic2VsZWN0IjoKICAgICAgICAgICAgcmV0dXJuICJociIgPT09IHRhZyB8fCAib3B0aW9uIiA9PT0gdGFnIHx8ICJvcHRncm91cCIgPT09IHRhZyB8fCAic2NyaXB0IiA9PT0gdGFnIHx8ICJ0ZW1wbGF0ZSIgPT09IHRhZyB8fCAiI3RleHQiID09PSB0YWc7CiAgICAgICAgICBjYXNlICJvcHRncm91cCI6CiAgICAgICAgICAgIHJldHVybiAib3B0aW9uIiA9PT0gdGFnIHx8ICIjdGV4dCIgPT09IHRhZzsKICAgICAgICAgIGNhc2UgIm9wdGlvbiI6CiAgICAgICAgICAgIHJldHVybiAiI3RleHQiID09PSB0YWc7CiAgICAgICAgICBjYXNlICJ0ciI6CiAgICAgICAgICAgIHJldHVybiAidGgiID09PSB0YWcgfHwgInRkIiA9PT0gdGFnIHx8ICJzdHlsZSIgPT09IHRhZyB8fCAic2NyaXB0IiA9PT0gdGFnIHx8ICJ0ZW1wbGF0ZSIgPT09IHRhZzsKICAgICAgICAgIGNhc2UgInRib2R5IjoKICAgICAgICAgIGNhc2UgInRoZWFkIjoKICAgICAgICAgIGNhc2UgInRmb290IjoKICAgICAgICAgICAgcmV0dXJuICJ0ciIgPT09IHRhZyB8fCAic3R5bGUiID09PSB0YWcgfHwgInNjcmlwdCIgPT09IHRhZyB8fCAidGVtcGxhdGUiID09PSB0YWc7CiAgICAgICAgICBjYXNlICJjb2xncm91cCI6CiAgICAgICAgICAgIHJldHVybiAiY29sIiA9PT0gdGFnIHx8ICJ0ZW1wbGF0ZSIgPT09IHRhZzsKICAgICAgICAgIGNhc2UgInRhYmxlIjoKICAgICAgICAgICAgcmV0dXJuICJjYXB0aW9uIiA9PT0gdGFnIHx8ICJjb2xncm91cCIgPT09IHRhZyB8fCAidGJvZHkiID09PSB0YWcgfHwgInRmb290IiA9PT0gdGFnIHx8ICJ0aGVhZCIgPT09IHRhZyB8fCAic3R5bGUiID09PSB0YWcgfHwgInNjcmlwdCIgPT09IHRhZyB8fCAidGVtcGxhdGUiID09PSB0YWc7CiAgICAgICAgICBjYXNlICJoZWFkIjoKICAgICAgICAgICAgcmV0dXJuICJiYXNlIiA9PT0gdGFnIHx8ICJiYXNlZm9udCIgPT09IHRhZyB8fCAiYmdzb3VuZCIgPT09IHRhZyB8fCAibGluayIgPT09IHRhZyB8fCAibWV0YSIgPT09IHRhZyB8fCAidGl0bGUiID09PSB0YWcgfHwgIm5vc2NyaXB0IiA9PT0gdGFnIHx8ICJub2ZyYW1lcyIgPT09IHRhZyB8fCAic3R5bGUiID09PSB0YWcgfHwgInNjcmlwdCIgPT09IHRhZyB8fCAidGVtcGxhdGUiID09PSB0YWc7CiAgICAgICAgICBjYXNlICJodG1sIjoKICAgICAgICAgICAgaWYgKGltcGxpY2l0Um9vdFNjb3BlKSBicmVhazsKICAgICAgICAgICAgcmV0dXJuICJoZWFkIiA9PT0gdGFnIHx8ICJib2R5IiA9PT0gdGFnIHx8ICJmcmFtZXNldCIgPT09IHRhZzsKICAgICAgICAgIGNhc2UgImZyYW1lc2V0IjoKICAgICAgICAgICAgcmV0dXJuICJmcmFtZSIgPT09IHRhZzsKICAgICAgICAgIGNhc2UgIiNkb2N1bWVudCI6CiAgICAgICAgICAgIGlmICghaW1wbGljaXRSb290U2NvcGUpIHJldHVybiAiaHRtbCIgPT09IHRhZzsKICAgICAgICB9CiAgICAgICAgc3dpdGNoICh0YWcpIHsKICAgICAgICAgIGNhc2UgImgxIjoKICAgICAgICAgIGNhc2UgImgyIjoKICAgICAgICAgIGNhc2UgImgzIjoKICAgICAgICAgIGNhc2UgImg0IjoKICAgICAgICAgIGNhc2UgImg1IjoKICAgICAgICAgIGNhc2UgImg2IjoKICAgICAgICAgICAgcmV0dXJuICJoMSIgIT09IHBhcmVudFRhZyAmJiAiaDIiICE9PSBwYXJlbnRUYWcgJiYgImgzIiAhPT0gcGFyZW50VGFnICYmICJoNCIgIT09IHBhcmVudFRhZyAmJiAiaDUiICE9PSBwYXJlbnRUYWcgJiYgImg2IiAhPT0gcGFyZW50VGFnOwogICAgICAgICAgY2FzZSAicnAiOgogICAgICAgICAgY2FzZSAicnQiOgogICAgICAgICAgICByZXR1cm4gLTEgPT09IGltcGxpZWRFbmRUYWdzLmluZGV4T2YocGFyZW50VGFnKTsKICAgICAgICAgIGNhc2UgImNhcHRpb24iOgogICAgICAgICAgY2FzZSAiY29sIjoKICAgICAgICAgIGNhc2UgImNvbGdyb3VwIjoKICAgICAgICAgIGNhc2UgImZyYW1lc2V0IjoKICAgICAgICAgIGNhc2UgImZyYW1lIjoKICAgICAgICAgIGNhc2UgInRib2R5IjoKICAgICAgICAgIGNhc2UgInRkIjoKICAgICAgICAgIGNhc2UgInRmb290IjoKICAgICAgICAgIGNhc2UgInRoIjoKICAgICAgICAgIGNhc2UgInRoZWFkIjoKICAgICAgICAgIGNhc2UgInRyIjoKICAgICAgICAgICAgcmV0dXJuIG51bGwgPT0gcGFyZW50VGFnOwogICAgICAgICAgY2FzZSAiaGVhZCI6CiAgICAgICAgICAgIHJldHVybiBpbXBsaWNpdFJvb3RTY29wZSB8fCBudWxsID09PSBwYXJlbnRUYWc7CiAgICAgICAgICBjYXNlICJodG1sIjoKICAgICAgICAgICAgcmV0dXJuIGltcGxpY2l0Um9vdFNjb3BlICYmICIjZG9jdW1lbnQiID09PSBwYXJlbnRUYWcgfHwgbnVsbCA9PT0gcGFyZW50VGFnOwogICAgICAgICAgY2FzZSAiYm9keSI6CiAgICAgICAgICAgIHJldHVybiBpbXBsaWNpdFJvb3RTY29wZSAmJiAoIiNkb2N1bWVudCIgPT09IHBhcmVudFRhZyB8fCAiaHRtbCIgPT09IHBhcmVudFRhZykgfHwgbnVsbCA9PT0gcGFyZW50VGFnOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBmaW5kSW52YWxpZEFuY2VzdG9yRm9yVGFnKHRhZywgYW5jZXN0b3JJbmZvKSB7CiAgICAgICAgc3dpdGNoICh0YWcpIHsKICAgICAgICAgIGNhc2UgImFkZHJlc3MiOgogICAgICAgICAgY2FzZSAiYXJ0aWNsZSI6CiAgICAgICAgICBjYXNlICJhc2lkZSI6CiAgICAgICAgICBjYXNlICJibG9ja3F1b3RlIjoKICAgICAgICAgIGNhc2UgImNlbnRlciI6CiAgICAgICAgICBjYXNlICJkZXRhaWxzIjoKICAgICAgICAgIGNhc2UgImRpYWxvZyI6CiAgICAgICAgICBjYXNlICJkaXIiOgogICAgICAgICAgY2FzZSAiZGl2IjoKICAgICAgICAgIGNhc2UgImRsIjoKICAgICAgICAgIGNhc2UgImZpZWxkc2V0IjoKICAgICAgICAgIGNhc2UgImZpZ2NhcHRpb24iOgogICAgICAgICAgY2FzZSAiZmlndXJlIjoKICAgICAgICAgIGNhc2UgImZvb3RlciI6CiAgICAgICAgICBjYXNlICJoZWFkZXIiOgogICAgICAgICAgY2FzZSAiaGdyb3VwIjoKICAgICAgICAgIGNhc2UgIm1haW4iOgogICAgICAgICAgY2FzZSAibWVudSI6CiAgICAgICAgICBjYXNlICJuYXYiOgogICAgICAgICAgY2FzZSAib2wiOgogICAgICAgICAgY2FzZSAicCI6CiAgICAgICAgICBjYXNlICJzZWN0aW9uIjoKICAgICAgICAgIGNhc2UgInN1bW1hcnkiOgogICAgICAgICAgY2FzZSAidWwiOgogICAgICAgICAgY2FzZSAicHJlIjoKICAgICAgICAgIGNhc2UgImxpc3RpbmciOgogICAgICAgICAgY2FzZSAidGFibGUiOgogICAgICAgICAgY2FzZSAiaHIiOgogICAgICAgICAgY2FzZSAieG1wIjoKICAgICAgICAgIGNhc2UgImgxIjoKICAgICAgICAgIGNhc2UgImgyIjoKICAgICAgICAgIGNhc2UgImgzIjoKICAgICAgICAgIGNhc2UgImg0IjoKICAgICAgICAgIGNhc2UgImg1IjoKICAgICAgICAgIGNhc2UgImg2IjoKICAgICAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5wVGFnSW5CdXR0b25TY29wZTsKICAgICAgICAgIGNhc2UgImZvcm0iOgogICAgICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmZvcm1UYWcgfHwgYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlOwogICAgICAgICAgY2FzZSAibGkiOgogICAgICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmxpc3RJdGVtVGFnQXV0b2Nsb3Npbmc7CiAgICAgICAgICBjYXNlICJkZCI6CiAgICAgICAgICBjYXNlICJkdCI6CiAgICAgICAgICAgIHJldHVybiBhbmNlc3RvckluZm8uZGxJdGVtVGFnQXV0b2Nsb3Npbmc7CiAgICAgICAgICBjYXNlICJidXR0b24iOgogICAgICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGU7CiAgICAgICAgICBjYXNlICJhIjoKICAgICAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5hVGFnSW5TY29wZTsKICAgICAgICAgIGNhc2UgIm5vYnIiOgogICAgICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLm5vYnJUYWdJblNjb3BlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBmaW5kQW5jZXN0b3IocGFyZW50LCB0YWdOYW1lKSB7CiAgICAgICAgZm9yICg7IHBhcmVudDsgKSB7CiAgICAgICAgICBzd2l0Y2ggKHBhcmVudC50YWcpIHsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBjYXNlIDI2OgogICAgICAgICAgICBjYXNlIDI3OgogICAgICAgICAgICAgIGlmIChwYXJlbnQudHlwZSA9PT0gdGFnTmFtZSkgcmV0dXJuIHBhcmVudDsKICAgICAgICAgIH0KICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5yZXR1cm47CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlRE9NTmVzdGluZyhjaGlsZFRhZywgYW5jZXN0b3JJbmZvKSB7CiAgICAgICAgYW5jZXN0b3JJbmZvID0gYW5jZXN0b3JJbmZvIHx8IGVtcHR5QW5jZXN0b3JJbmZvRGV2OwogICAgICAgIHZhciBwYXJlbnRJbmZvID0gYW5jZXN0b3JJbmZvLmN1cnJlbnQ7CiAgICAgICAgYW5jZXN0b3JJbmZvID0gKHBhcmVudEluZm8gPSBpc1RhZ1ZhbGlkV2l0aFBhcmVudCgKICAgICAgICAgIGNoaWxkVGFnLAogICAgICAgICAgcGFyZW50SW5mbyAmJiBwYXJlbnRJbmZvLnRhZywKICAgICAgICAgIGFuY2VzdG9ySW5mby5pbXBsaWNpdFJvb3RTY29wZQogICAgICAgICkgPyBudWxsIDogcGFyZW50SW5mbykgPyBudWxsIDogZmluZEludmFsaWRBbmNlc3RvckZvclRhZyhjaGlsZFRhZywgYW5jZXN0b3JJbmZvKTsKICAgICAgICBhbmNlc3RvckluZm8gPSBwYXJlbnRJbmZvIHx8IGFuY2VzdG9ySW5mbzsKICAgICAgICBpZiAoIWFuY2VzdG9ySW5mbykgcmV0dXJuIHRydWU7CiAgICAgICAgdmFyIGFuY2VzdG9yVGFnID0gYW5jZXN0b3JJbmZvLnRhZzsKICAgICAgICBhbmNlc3RvckluZm8gPSBTdHJpbmcoISFwYXJlbnRJbmZvKSArICJ8IiArIGNoaWxkVGFnICsgInwiICsgYW5jZXN0b3JUYWc7CiAgICAgICAgaWYgKGRpZFdhcm5bYW5jZXN0b3JJbmZvXSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGRpZFdhcm5bYW5jZXN0b3JJbmZvXSA9IHRydWU7CiAgICAgICAgdmFyIGFuY2VzdG9yID0gKGFuY2VzdG9ySW5mbyA9IGN1cnJlbnQpID8gZmluZEFuY2VzdG9yKGFuY2VzdG9ySW5mby5yZXR1cm4sIGFuY2VzdG9yVGFnKSA6IG51bGwsIGFuY2VzdG9yRGVzY3JpcHRpb24gPSBudWxsICE9PSBhbmNlc3RvckluZm8gJiYgbnVsbCAhPT0gYW5jZXN0b3IgPyBkZXNjcmliZUFuY2VzdG9ycyhhbmNlc3RvciwgYW5jZXN0b3JJbmZvLCBudWxsKSA6ICIiLCB0YWdEaXNwbGF5TmFtZSA9ICI8IiArIGNoaWxkVGFnICsgIj4iOwogICAgICAgIHBhcmVudEluZm8gPyAocGFyZW50SW5mbyA9ICIiLCAidGFibGUiID09PSBhbmNlc3RvclRhZyAmJiAidHIiID09PSBjaGlsZFRhZyAmJiAocGFyZW50SW5mbyArPSAiIEFkZCBhIDx0Ym9keT4sIDx0aGVhZD4gb3IgPHRmb290PiB0byB5b3VyIGNvZGUgdG8gbWF0Y2ggdGhlIERPTSB0cmVlIGdlbmVyYXRlZCBieSB0aGUgYnJvd3Nlci4iKSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICJJbiBIVE1MLCAlcyBjYW5ub3QgYmUgYSBjaGlsZCBvZiA8JXM+LiVzXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3IuJXMiLAogICAgICAgICAgdGFnRGlzcGxheU5hbWUsCiAgICAgICAgICBhbmNlc3RvclRhZywKICAgICAgICAgIHBhcmVudEluZm8sCiAgICAgICAgICBhbmNlc3RvckRlc2NyaXB0aW9uCiAgICAgICAgKSkgOiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkluIEhUTUwsICVzIGNhbm5vdCBiZSBhIGRlc2NlbmRhbnQgb2YgPCVzPi5cblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvci4lcyIsCiAgICAgICAgICB0YWdEaXNwbGF5TmFtZSwKICAgICAgICAgIGFuY2VzdG9yVGFnLAogICAgICAgICAgYW5jZXN0b3JEZXNjcmlwdGlvbgogICAgICAgICk7CiAgICAgICAgYW5jZXN0b3JJbmZvICYmIChjaGlsZFRhZyA9IGFuY2VzdG9ySW5mby5yZXR1cm4sIG51bGwgPT09IGFuY2VzdG9yIHx8IG51bGwgPT09IGNoaWxkVGFnIHx8IGFuY2VzdG9yID09PSBjaGlsZFRhZyAmJiBjaGlsZFRhZy5fZGVidWdPd25lciA9PT0gYW5jZXN0b3JJbmZvLl9kZWJ1Z093bmVyIHx8IHJ1bldpdGhGaWJlckluREVWKGFuY2VzdG9yLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICI8JXM+IGNhbm5vdCBjb250YWluIGEgbmVzdGVkICVzLlxuU2VlIHRoaXMgbG9nIGZvciB0aGUgYW5jZXN0b3Igc3RhY2sgdHJhY2UuIiwKICAgICAgICAgICAgYW5jZXN0b3JUYWcsCiAgICAgICAgICAgIHRhZ0Rpc3BsYXlOYW1lCiAgICAgICAgICApOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdmFsaWRhdGVUZXh0TmVzdGluZyhjaGlsZFRleHQsIHBhcmVudFRhZywgaW1wbGljaXRSb290U2NvcGUpIHsKICAgICAgICBpZiAoaW1wbGljaXRSb290U2NvcGUgfHwgaXNUYWdWYWxpZFdpdGhQYXJlbnQoIiN0ZXh0IiwgcGFyZW50VGFnLCBmYWxzZSkpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBpbXBsaWNpdFJvb3RTY29wZSA9ICIjdGV4dHwiICsgcGFyZW50VGFnOwogICAgICAgIGlmIChkaWRXYXJuW2ltcGxpY2l0Um9vdFNjb3BlXSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGRpZFdhcm5baW1wbGljaXRSb290U2NvcGVdID0gdHJ1ZTsKICAgICAgICB2YXIgYW5jZXN0b3IgPSAoaW1wbGljaXRSb290U2NvcGUgPSBjdXJyZW50KSA/IGZpbmRBbmNlc3RvcihpbXBsaWNpdFJvb3RTY29wZSwgcGFyZW50VGFnKSA6IG51bGw7CiAgICAgICAgaW1wbGljaXRSb290U2NvcGUgPSBudWxsICE9PSBpbXBsaWNpdFJvb3RTY29wZSAmJiBudWxsICE9PSBhbmNlc3RvciA/IGRlc2NyaWJlQW5jZXN0b3JzKAogICAgICAgICAgYW5jZXN0b3IsCiAgICAgICAgICBpbXBsaWNpdFJvb3RTY29wZSwKICAgICAgICAgIDYgIT09IGltcGxpY2l0Um9vdFNjb3BlLnRhZyA/IHsgY2hpbGRyZW46IG51bGwgfSA6IG51bGwKICAgICAgICApIDogIiI7CiAgICAgICAgL1xTLy50ZXN0KGNoaWxkVGV4dCkgPyBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkluIEhUTUwsIHRleHQgbm9kZXMgY2Fubm90IGJlIGEgY2hpbGQgb2YgPCVzPi5cblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvci4lcyIsCiAgICAgICAgICBwYXJlbnRUYWcsCiAgICAgICAgICBpbXBsaWNpdFJvb3RTY29wZQogICAgICAgICkgOiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkluIEhUTUwsIHdoaXRlc3BhY2UgdGV4dCBub2RlcyBjYW5ub3QgYmUgYSBjaGlsZCBvZiA8JXM+LiBNYWtlIHN1cmUgeW91IGRvbid0IGhhdmUgYW55IGV4dHJhIHdoaXRlc3BhY2UgYmV0d2VlbiB0YWdzIG9uIGVhY2ggbGluZSBvZiB5b3VyIHNvdXJjZSBjb2RlLlxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yLiVzIiwKICAgICAgICAgIHBhcmVudFRhZywKICAgICAgICAgIGltcGxpY2l0Um9vdFNjb3BlCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2V0VGV4dENvbnRlbnQobm9kZSwgdGV4dCkgewogICAgICAgIGlmICh0ZXh0KSB7CiAgICAgICAgICB2YXIgZmlyc3RDaGlsZCA9IG5vZGUuZmlyc3RDaGlsZDsKICAgICAgICAgIGlmIChmaXJzdENoaWxkICYmIGZpcnN0Q2hpbGQgPT09IG5vZGUubGFzdENoaWxkICYmIDMgPT09IGZpcnN0Q2hpbGQubm9kZVR5cGUpIHsKICAgICAgICAgICAgZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSB0ZXh0OwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSB0ZXh0OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbWVsaXplKHN0cmluZykgewogICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZShoeXBoZW5QYXR0ZXJuLCBmdW5jdGlvbihfLCBjaGFyYWN0ZXIpIHsKICAgICAgICAgIHJldHVybiBjaGFyYWN0ZXIudG9VcHBlckNhc2UoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzZXRWYWx1ZUZvclN0eWxlKHN0eWxlMiwgc3R5bGVOYW1lLCB2YWx1ZSkgewogICAgICAgIHZhciBpc0N1c3RvbVByb3BlcnR5ID0gMCA9PT0gc3R5bGVOYW1lLmluZGV4T2YoIi0tIik7CiAgICAgICAgaXNDdXN0b21Qcm9wZXJ0eSB8fCAoLTEgPCBzdHlsZU5hbWUuaW5kZXhPZigiLSIpID8gd2FybmVkU3R5bGVOYW1lcy5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpICYmIHdhcm5lZFN0eWxlTmFtZXNbc3R5bGVOYW1lXSB8fCAod2FybmVkU3R5bGVOYW1lc1tzdHlsZU5hbWVdID0gdHJ1ZSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICJVbnN1cHBvcnRlZCBzdHlsZSBwcm9wZXJ0eSAlcy4gRGlkIHlvdSBtZWFuICVzPyIsCiAgICAgICAgICBzdHlsZU5hbWUsCiAgICAgICAgICBjYW1lbGl6ZShzdHlsZU5hbWUucmVwbGFjZShtc1BhdHRlcm4sICJtcy0iKSkKICAgICAgICApKSA6IGJhZFZlbmRvcmVkU3R5bGVOYW1lUGF0dGVybi50ZXN0KHN0eWxlTmFtZSkgPyB3YXJuZWRTdHlsZU5hbWVzLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkgJiYgd2FybmVkU3R5bGVOYW1lc1tzdHlsZU5hbWVdIHx8ICh3YXJuZWRTdHlsZU5hbWVzW3N0eWxlTmFtZV0gPSB0cnVlLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgIlVuc3VwcG9ydGVkIHZlbmRvci1wcmVmaXhlZCBzdHlsZSBwcm9wZXJ0eSAlcy4gRGlkIHlvdSBtZWFuICVzPyIsCiAgICAgICAgICBzdHlsZU5hbWUsCiAgICAgICAgICBzdHlsZU5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHlsZU5hbWUuc2xpY2UoMSkKICAgICAgICApKSA6ICFiYWRTdHlsZVZhbHVlV2l0aFNlbWljb2xvblBhdHRlcm4udGVzdCh2YWx1ZSkgfHwgd2FybmVkU3R5bGVWYWx1ZXMuaGFzT3duUHJvcGVydHkodmFsdWUpICYmIHdhcm5lZFN0eWxlVmFsdWVzW3ZhbHVlXSB8fCAod2FybmVkU3R5bGVWYWx1ZXNbdmFsdWVdID0gdHJ1ZSwgY29uc29sZS5lcnJvcigKICAgICAgICAgIGBTdHlsZSBwcm9wZXJ0eSB2YWx1ZXMgc2hvdWxkbid0IGNvbnRhaW4gYSBzZW1pY29sb24uIFRyeSAiJXM6ICVzIiBpbnN0ZWFkLmAsCiAgICAgICAgICBzdHlsZU5hbWUsCiAgICAgICAgICB2YWx1ZS5yZXBsYWNlKGJhZFN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uUGF0dGVybiwgIiIpCiAgICAgICAgKSksICJudW1iZXIiID09PSB0eXBlb2YgdmFsdWUgJiYgKGlzTmFOKHZhbHVlKSA/IHdhcm5lZEZvck5hTlZhbHVlIHx8ICh3YXJuZWRGb3JOYU5WYWx1ZSA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiYE5hTmAgaXMgYW4gaW52YWxpZCB2YWx1ZSBmb3IgdGhlIGAlc2AgY3NzIHN0eWxlIHByb3BlcnR5LiIsCiAgICAgICAgICBzdHlsZU5hbWUKICAgICAgICApKSA6IGlzRmluaXRlKHZhbHVlKSB8fCB3YXJuZWRGb3JJbmZpbml0eVZhbHVlIHx8ICh3YXJuZWRGb3JJbmZpbml0eVZhbHVlID0gdHJ1ZSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICJgSW5maW5pdHlgIGlzIGFuIGludmFsaWQgdmFsdWUgZm9yIHRoZSBgJXNgIGNzcyBzdHlsZSBwcm9wZXJ0eS4iLAogICAgICAgICAgc3R5bGVOYW1lCiAgICAgICAgKSkpKTsKICAgICAgICBudWxsID09IHZhbHVlIHx8ICJib29sZWFuIiA9PT0gdHlwZW9mIHZhbHVlIHx8ICIiID09PSB2YWx1ZSA/IGlzQ3VzdG9tUHJvcGVydHkgPyBzdHlsZTIuc2V0UHJvcGVydHkoc3R5bGVOYW1lLCAiIikgOiAiZmxvYXQiID09PSBzdHlsZU5hbWUgPyBzdHlsZTIuY3NzRmxvYXQgPSAiIiA6IHN0eWxlMltzdHlsZU5hbWVdID0gIiIgOiBpc0N1c3RvbVByb3BlcnR5ID8gc3R5bGUyLnNldFByb3BlcnR5KHN0eWxlTmFtZSwgdmFsdWUpIDogIm51bWJlciIgIT09IHR5cGVvZiB2YWx1ZSB8fCAwID09PSB2YWx1ZSB8fCB1bml0bGVzc051bWJlcnMuaGFzKHN0eWxlTmFtZSkgPyAiZmxvYXQiID09PSBzdHlsZU5hbWUgPyBzdHlsZTIuY3NzRmxvYXQgPSB2YWx1ZSA6IChjaGVja0NTU1Byb3BlcnR5U3RyaW5nQ29lcmNpb24odmFsdWUsIHN0eWxlTmFtZSksIHN0eWxlMltzdHlsZU5hbWVdID0gKCIiICsgdmFsdWUpLnRyaW0oKSkgOiBzdHlsZTJbc3R5bGVOYW1lXSA9IHZhbHVlICsgInB4IjsKICAgICAgfQogICAgICBmdW5jdGlvbiBzZXRWYWx1ZUZvclN0eWxlcyhub2RlLCBzdHlsZXMsIHByZXZTdHlsZXMpIHsKICAgICAgICBpZiAobnVsbCAhPSBzdHlsZXMgJiYgIm9iamVjdCIgIT09IHR5cGVvZiBzdHlsZXMpCiAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgIlRoZSBgc3R5bGVgIHByb3AgZXhwZWN0cyBhIG1hcHBpbmcgZnJvbSBzdHlsZSBwcm9wZXJ0aWVzIHRvIHZhbHVlcywgbm90IGEgc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3R5bGU9e3ttYXJnaW5SaWdodDogc3BhY2luZyArICdlbSd9fSB3aGVuIHVzaW5nIEpTWC4iCiAgICAgICAgICApOwogICAgICAgIHN0eWxlcyAmJiBPYmplY3QuZnJlZXplKHN0eWxlcyk7CiAgICAgICAgbm9kZSA9IG5vZGUuc3R5bGU7CiAgICAgICAgaWYgKG51bGwgIT0gcHJldlN0eWxlcykgewogICAgICAgICAgaWYgKHN0eWxlcykgewogICAgICAgICAgICB2YXIgZXhwYW5kZWRVcGRhdGVzID0ge307CiAgICAgICAgICAgIGlmIChwcmV2U3R5bGVzKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIHByZXZTdHlsZXMpCiAgICAgICAgICAgICAgICBpZiAocHJldlN0eWxlcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICFzdHlsZXMuaGFzT3duUHJvcGVydHkoa2V5KSkKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbG9uZ2hhbmRzID0gc2hvcnRoYW5kVG9Mb25naGFuZFtrZXldIHx8IFtrZXldLCBpID0gMDsgaSA8IGxvbmdoYW5kcy5sZW5ndGg7IGkrKykKICAgICAgICAgICAgICAgICAgICBleHBhbmRlZFVwZGF0ZXNbbG9uZ2hhbmRzW2ldXSA9IGtleTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKHZhciBfa2V5IGluIHN0eWxlcykKICAgICAgICAgICAgICBpZiAoc3R5bGVzLmhhc093blByb3BlcnR5KF9rZXkpICYmICghcHJldlN0eWxlcyB8fCBwcmV2U3R5bGVzW19rZXldICE9PSBzdHlsZXNbX2tleV0pKQogICAgICAgICAgICAgICAgZm9yIChrZXkgPSBzaG9ydGhhbmRUb0xvbmdoYW5kW19rZXldIHx8IFtfa2V5XSwgbG9uZ2hhbmRzID0gMDsgbG9uZ2hhbmRzIDwga2V5Lmxlbmd0aDsgbG9uZ2hhbmRzKyspCiAgICAgICAgICAgICAgICAgIGV4cGFuZGVkVXBkYXRlc1trZXlbbG9uZ2hhbmRzXV0gPSBfa2V5OwogICAgICAgICAgICBfa2V5ID0ge307CiAgICAgICAgICAgIGZvciAodmFyIGtleSRqc2NvbXAkMCBpbiBzdHlsZXMpCiAgICAgICAgICAgICAgZm9yIChrZXkgPSBzaG9ydGhhbmRUb0xvbmdoYW5kW2tleSRqc2NvbXAkMF0gfHwgW2tleSRqc2NvbXAkMF0sIGxvbmdoYW5kcyA9IDA7IGxvbmdoYW5kcyA8IGtleS5sZW5ndGg7IGxvbmdoYW5kcysrKQogICAgICAgICAgICAgICAgX2tleVtrZXlbbG9uZ2hhbmRzXV0gPSBrZXkkanNjb21wJDA7CiAgICAgICAgICAgIGtleSRqc2NvbXAkMCA9IHt9OwogICAgICAgICAgICBmb3IgKHZhciBfa2V5MiBpbiBleHBhbmRlZFVwZGF0ZXMpCiAgICAgICAgICAgICAgaWYgKGtleSA9IGV4cGFuZGVkVXBkYXRlc1tfa2V5Ml0sIChsb25naGFuZHMgPSBfa2V5W19rZXkyXSkgJiYga2V5ICE9PSBsb25naGFuZHMgJiYgKGkgPSBrZXkgKyAiLCIgKyBsb25naGFuZHMsICFrZXkkanNjb21wJDBbaV0pKSB7CiAgICAgICAgICAgICAgICBrZXkkanNjb21wJDBbaV0gPSB0cnVlOwogICAgICAgICAgICAgICAgaSA9IGNvbnNvbGU7CiAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBzdHlsZXNba2V5XTsKICAgICAgICAgICAgICAgIGkuZXJyb3IuY2FsbCgKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgIiVzIGEgc3R5bGUgcHJvcGVydHkgZHVyaW5nIHJlcmVuZGVyICglcykgd2hlbiBhIGNvbmZsaWN0aW5nIHByb3BlcnR5IGlzIHNldCAoJXMpIGNhbiBsZWFkIHRvIHN0eWxpbmcgYnVncy4gVG8gYXZvaWQgdGhpcywgZG9uJ3QgbWl4IHNob3J0aGFuZCBhbmQgbm9uLXNob3J0aGFuZCBwcm9wZXJ0aWVzIGZvciB0aGUgc2FtZSB2YWx1ZTsgaW5zdGVhZCwgcmVwbGFjZSB0aGUgc2hvcnRoYW5kIHdpdGggc2VwYXJhdGUgdmFsdWVzLiIsCiAgICAgICAgICAgICAgICAgIG51bGwgPT0gdmFsdWUgfHwgImJvb2xlYW4iID09PSB0eXBlb2YgdmFsdWUgfHwgIiIgPT09IHZhbHVlID8gIlJlbW92aW5nIiA6ICJVcGRhdGluZyIsCiAgICAgICAgICAgICAgICAgIGtleSwKICAgICAgICAgICAgICAgICAgbG9uZ2hhbmRzCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGZvciAodmFyIHN0eWxlTmFtZSBpbiBwcmV2U3R5bGVzKQogICAgICAgICAgICAhcHJldlN0eWxlcy5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpIHx8IG51bGwgIT0gc3R5bGVzICYmIHN0eWxlcy5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpIHx8ICgwID09PSBzdHlsZU5hbWUuaW5kZXhPZigiLS0iKSA/IG5vZGUuc2V0UHJvcGVydHkoc3R5bGVOYW1lLCAiIikgOiAiZmxvYXQiID09PSBzdHlsZU5hbWUgPyBub2RlLmNzc0Zsb2F0ID0gIiIgOiBub2RlW3N0eWxlTmFtZV0gPSAiIik7CiAgICAgICAgICBmb3IgKHZhciBfc3R5bGVOYW1lIGluIHN0eWxlcykKICAgICAgICAgICAgX2tleTIgPSBzdHlsZXNbX3N0eWxlTmFtZV0sIHN0eWxlcy5oYXNPd25Qcm9wZXJ0eShfc3R5bGVOYW1lKSAmJiBwcmV2U3R5bGVzW19zdHlsZU5hbWVdICE9PSBfa2V5MiAmJiBzZXRWYWx1ZUZvclN0eWxlKG5vZGUsIF9zdHlsZU5hbWUsIF9rZXkyKTsKICAgICAgICB9IGVsc2UKICAgICAgICAgIGZvciAoZXhwYW5kZWRVcGRhdGVzIGluIHN0eWxlcykKICAgICAgICAgICAgc3R5bGVzLmhhc093blByb3BlcnR5KGV4cGFuZGVkVXBkYXRlcykgJiYgc2V0VmFsdWVGb3JTdHlsZShub2RlLCBleHBhbmRlZFVwZGF0ZXMsIHN0eWxlc1tleHBhbmRlZFVwZGF0ZXNdKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc0N1c3RvbUVsZW1lbnQodGFnTmFtZSkgewogICAgICAgIGlmICgtMSA9PT0gdGFnTmFtZS5pbmRleE9mKCItIikpIHJldHVybiBmYWxzZTsKICAgICAgICBzd2l0Y2ggKHRhZ05hbWUpIHsKICAgICAgICAgIGNhc2UgImFubm90YXRpb24teG1sIjoKICAgICAgICAgIGNhc2UgImNvbG9yLXByb2ZpbGUiOgogICAgICAgICAgY2FzZSAiZm9udC1mYWNlIjoKICAgICAgICAgIGNhc2UgImZvbnQtZmFjZS1zcmMiOgogICAgICAgICAgY2FzZSAiZm9udC1mYWNlLXVyaSI6CiAgICAgICAgICBjYXNlICJmb250LWZhY2UtZm9ybWF0IjoKICAgICAgICAgIGNhc2UgImZvbnQtZmFjZS1uYW1lIjoKICAgICAgICAgIGNhc2UgIm1pc3NpbmctZ2x5cGgiOgogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0QXR0cmlidXRlQWxpYXMobmFtZSkgewogICAgICAgIHJldHVybiBhbGlhc2VzLmdldChuYW1lKSB8fCBuYW1lOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydHkkMSh0YWdOYW1lLCBuYW1lKSB7CiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwod2FybmVkUHJvcGVydGllcyQxLCBuYW1lKSAmJiB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0pCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBpZiAockFSSUFDYW1lbCQxLnRlc3QobmFtZSkpIHsKICAgICAgICAgIHRhZ05hbWUgPSAiYXJpYS0iICsgbmFtZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgdGFnTmFtZSA9IGFyaWFQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KHRhZ05hbWUpID8gdGFnTmFtZSA6IG51bGw7CiAgICAgICAgICBpZiAobnVsbCA9PSB0YWdOYW1lKQogICAgICAgICAgICByZXR1cm4gY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiSW52YWxpZCBBUklBIGF0dHJpYnV0ZSBgJXNgLiBBUklBIGF0dHJpYnV0ZXMgZm9sbG93IHRoZSBwYXR0ZXJuIGFyaWEtKiBhbmQgbXVzdCBiZSBsb3dlcmNhc2UuIiwKICAgICAgICAgICAgICBuYW1lCiAgICAgICAgICAgICksIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7CiAgICAgICAgICBpZiAobmFtZSAhPT0gdGFnTmFtZSkKICAgICAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIkludmFsaWQgQVJJQSBhdHRyaWJ1dGUgYCVzYC4gRGlkIHlvdSBtZWFuIGAlc2A/IiwKICAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgIHRhZ05hbWUKICAgICAgICAgICAgKSwgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHJBUklBJDEudGVzdChuYW1lKSkgewogICAgICAgICAgdGFnTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgIHRhZ05hbWUgPSBhcmlhUHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSh0YWdOYW1lKSA/IHRhZ05hbWUgOiBudWxsOwogICAgICAgICAgaWYgKG51bGwgPT0gdGFnTmFtZSkgcmV0dXJuIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWUsIGZhbHNlOwogICAgICAgICAgbmFtZSAhPT0gdGFnTmFtZSAmJiAoY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIlVua25vd24gQVJJQSBhdHRyaWJ1dGUgYCVzYC4gRGlkIHlvdSBtZWFuIGAlc2A/IiwKICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgdGFnTmFtZQogICAgICAgICAgKSwgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydGllcyQyKHR5cGUsIHByb3BzKSB7CiAgICAgICAgdmFyIGludmFsaWRQcm9wcyA9IFtdLCBrZXk7CiAgICAgICAgZm9yIChrZXkgaW4gcHJvcHMpCiAgICAgICAgICB2YWxpZGF0ZVByb3BlcnR5JDEodHlwZSwga2V5KSB8fCBpbnZhbGlkUHJvcHMucHVzaChrZXkpOwogICAgICAgIHByb3BzID0gaW52YWxpZFByb3BzLm1hcChmdW5jdGlvbihwcm9wKSB7CiAgICAgICAgICByZXR1cm4gImAiICsgcHJvcCArICJgIjsKICAgICAgICB9KS5qb2luKCIsICIpOwogICAgICAgIDEgPT09IGludmFsaWRQcm9wcy5sZW5ndGggPyBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkludmFsaWQgYXJpYSBwcm9wICVzIG9uIDwlcz4gdGFnLiBGb3IgZGV0YWlscywgc2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvaW52YWxpZC1hcmlhLXByb3BzIiwKICAgICAgICAgIHByb3BzLAogICAgICAgICAgdHlwZQogICAgICAgICkgOiAxIDwgaW52YWxpZFByb3BzLmxlbmd0aCAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkludmFsaWQgYXJpYSBwcm9wcyAlcyBvbiA8JXM+IHRhZy4gRm9yIGRldGFpbHMsIHNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL2ludmFsaWQtYXJpYS1wcm9wcyIsCiAgICAgICAgICBwcm9wcywKICAgICAgICAgIHR5cGUKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydHkodGFnTmFtZSwgbmFtZSwgdmFsdWUsIGV2ZW50UmVnaXN0cnkpIHsKICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbCh3YXJuZWRQcm9wZXJ0aWVzLCBuYW1lKSAmJiB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgdmFyIGxvd2VyQ2FzZWROYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpOwogICAgICAgIGlmICgib25mb2N1c2luIiA9PT0gbG93ZXJDYXNlZE5hbWUgfHwgIm9uZm9jdXNvdXQiID09PSBsb3dlckNhc2VkTmFtZSkKICAgICAgICAgIHJldHVybiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiUmVhY3QgdXNlcyBvbkZvY3VzIGFuZCBvbkJsdXIgaW5zdGVhZCBvZiBvbkZvY3VzSW4gYW5kIG9uRm9jdXNPdXQuIEFsbCBSZWFjdCBldmVudHMgYXJlIG5vcm1hbGl6ZWQgdG8gYnViYmxlLCBzbyBvbkZvY3VzSW4gYW5kIG9uRm9jdXNPdXQgYXJlIG5vdCBuZWVkZWQvc3VwcG9ydGVkIGJ5IFJlYWN0LiIKICAgICAgICAgICksIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlOwogICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgdmFsdWUgJiYgKCJmb3JtIiA9PT0gdGFnTmFtZSAmJiAiYWN0aW9uIiA9PT0gbmFtZSB8fCAiaW5wdXQiID09PSB0YWdOYW1lICYmICJmb3JtQWN0aW9uIiA9PT0gbmFtZSB8fCAiYnV0dG9uIiA9PT0gdGFnTmFtZSAmJiAiZm9ybUFjdGlvbiIgPT09IG5hbWUpKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgaWYgKG51bGwgIT0gZXZlbnRSZWdpc3RyeSkgewogICAgICAgICAgdGFnTmFtZSA9IGV2ZW50UmVnaXN0cnkucG9zc2libGVSZWdpc3RyYXRpb25OYW1lczsKICAgICAgICAgIGlmIChldmVudFJlZ2lzdHJ5LnJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkobmFtZSkpCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgZXZlbnRSZWdpc3RyeSA9IHRhZ05hbWUuaGFzT3duUHJvcGVydHkobG93ZXJDYXNlZE5hbWUpID8gdGFnTmFtZVtsb3dlckNhc2VkTmFtZV0gOiBudWxsOwogICAgICAgICAgaWYgKG51bGwgIT0gZXZlbnRSZWdpc3RyeSkKICAgICAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIkludmFsaWQgZXZlbnQgaGFuZGxlciBwcm9wZXJ0eSBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD8iLAogICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICAgZXZlbnRSZWdpc3RyeQogICAgICAgICAgICApLCB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTsKICAgICAgICAgIGlmIChFVkVOVF9OQU1FX1JFR0VYLnRlc3QobmFtZSkpCiAgICAgICAgICAgIHJldHVybiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICJVbmtub3duIGV2ZW50IGhhbmRsZXIgcHJvcGVydHkgYCVzYC4gSXQgd2lsbCBiZSBpZ25vcmVkLiIsCiAgICAgICAgICAgICAgbmFtZQogICAgICAgICAgICApLCB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgaWYgKEVWRU5UX05BTUVfUkVHRVgudGVzdChuYW1lKSkKICAgICAgICAgIHJldHVybiBJTlZBTElEX0VWRU5UX05BTUVfUkVHRVgudGVzdChuYW1lKSAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiSW52YWxpZCBldmVudCBoYW5kbGVyIHByb3BlcnR5IGAlc2AuIFJlYWN0IGV2ZW50cyB1c2UgdGhlIGNhbWVsQ2FzZSBuYW1pbmcgY29udmVudGlvbiwgZm9yIGV4YW1wbGUgYG9uQ2xpY2tgLiIsCiAgICAgICAgICAgIG5hbWUKICAgICAgICAgICksIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlOwogICAgICAgIGlmIChyQVJJQS50ZXN0KG5hbWUpIHx8IHJBUklBQ2FtZWwudGVzdChuYW1lKSkgcmV0dXJuIHRydWU7CiAgICAgICAgaWYgKCJpbm5lcmh0bWwiID09PSBsb3dlckNhc2VkTmFtZSkKICAgICAgICAgIHJldHVybiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiRGlyZWN0bHkgc2V0dGluZyBwcm9wZXJ0eSBgaW5uZXJIVE1MYCBpcyBub3QgcGVybWl0dGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgbG9va3VwIGRvY3VtZW50YXRpb24gb24gYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4iCiAgICAgICAgICApLCB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTsKICAgICAgICBpZiAoImFyaWEiID09PSBsb3dlckNhc2VkTmFtZSkKICAgICAgICAgIHJldHVybiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiVGhlIGBhcmlhYCBhdHRyaWJ1dGUgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgaW4gUmVhY3QuIFBhc3MgaW5kaXZpZHVhbCBgYXJpYS1gIGF0dHJpYnV0ZXMgaW5zdGVhZC4iCiAgICAgICAgICApLCB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTsKICAgICAgICBpZiAoImlzIiA9PT0gbG93ZXJDYXNlZE5hbWUgJiYgbnVsbCAhPT0gdmFsdWUgJiYgdm9pZCAwICE9PSB2YWx1ZSAmJiAic3RyaW5nIiAhPT0gdHlwZW9mIHZhbHVlKQogICAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJSZWNlaXZlZCBhIGAlc2AgZm9yIGEgc3RyaW5nIGF0dHJpYnV0ZSBgaXNgLiBJZiB0aGlzIGlzIGV4cGVjdGVkLCBjYXN0IHRoZSB2YWx1ZSB0byBhIHN0cmluZy4iLAogICAgICAgICAgICB0eXBlb2YgdmFsdWUKICAgICAgICAgICksIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlOwogICAgICAgIGlmICgibnVtYmVyIiA9PT0gdHlwZW9mIHZhbHVlICYmIGlzTmFOKHZhbHVlKSkKICAgICAgICAgIHJldHVybiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiUmVjZWl2ZWQgTmFOIGZvciB0aGUgYCVzYCBhdHRyaWJ1dGUuIElmIHRoaXMgaXMgZXhwZWN0ZWQsIGNhc3QgdGhlIHZhbHVlIHRvIGEgc3RyaW5nLiIsCiAgICAgICAgICAgIG5hbWUKICAgICAgICAgICksIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlOwogICAgICAgIGlmIChwb3NzaWJsZVN0YW5kYXJkTmFtZXMuaGFzT3duUHJvcGVydHkobG93ZXJDYXNlZE5hbWUpKSB7CiAgICAgICAgICBpZiAobG93ZXJDYXNlZE5hbWUgPSBwb3NzaWJsZVN0YW5kYXJkTmFtZXNbbG93ZXJDYXNlZE5hbWVdLCBsb3dlckNhc2VkTmFtZSAhPT0gbmFtZSkKICAgICAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIkludmFsaWQgRE9NIHByb3BlcnR5IGAlc2AuIERpZCB5b3UgbWVhbiBgJXNgPyIsCiAgICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgICBsb3dlckNhc2VkTmFtZQogICAgICAgICAgICApLCB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgaWYgKG5hbWUgIT09IGxvd2VyQ2FzZWROYW1lKQogICAgICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJSZWFjdCBkb2VzIG5vdCByZWNvZ25pemUgdGhlIGAlc2AgcHJvcCBvbiBhIERPTSBlbGVtZW50LiBJZiB5b3UgaW50ZW50aW9uYWxseSB3YW50IGl0IHRvIGFwcGVhciBpbiB0aGUgRE9NIGFzIGEgY3VzdG9tIGF0dHJpYnV0ZSwgc3BlbGwgaXQgYXMgbG93ZXJjYXNlIGAlc2AgaW5zdGVhZC4gSWYgeW91IGFjY2lkZW50YWxseSBwYXNzZWQgaXQgZnJvbSBhIHBhcmVudCBjb21wb25lbnQsIHJlbW92ZSBpdCBmcm9tIHRoZSBET00gZWxlbWVudC4iLAogICAgICAgICAgICBuYW1lLAogICAgICAgICAgICBsb3dlckNhc2VkTmFtZQogICAgICAgICAgKSwgd2FybmVkUHJvcGVydGllc1tuYW1lXSA9IHRydWU7CiAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICBjYXNlICJkYW5nZXJvdXNseVNldElubmVySFRNTCI6CiAgICAgICAgICBjYXNlICJjaGlsZHJlbiI6CiAgICAgICAgICBjYXNlICJzdHlsZSI6CiAgICAgICAgICBjYXNlICJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciOgogICAgICAgICAgY2FzZSAic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIjoKICAgICAgICAgIGNhc2UgImRlZmF1bHRWYWx1ZSI6CiAgICAgICAgICBjYXNlICJkZWZhdWx0Q2hlY2tlZCI6CiAgICAgICAgICBjYXNlICJpbm5lckhUTUwiOgogICAgICAgICAgY2FzZSAicmVmIjoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICBjYXNlICJpbm5lclRleHQiOgogICAgICAgICAgY2FzZSAidGV4dENvbnRlbnQiOgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHsKICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgICBjYXNlICJhdXRvRm9jdXMiOgogICAgICAgICAgICAgIGNhc2UgImNoZWNrZWQiOgogICAgICAgICAgICAgIGNhc2UgIm11bHRpcGxlIjoKICAgICAgICAgICAgICBjYXNlICJtdXRlZCI6CiAgICAgICAgICAgICAgY2FzZSAic2VsZWN0ZWQiOgogICAgICAgICAgICAgIGNhc2UgImNvbnRlbnRFZGl0YWJsZSI6CiAgICAgICAgICAgICAgY2FzZSAic3BlbGxDaGVjayI6CiAgICAgICAgICAgICAgY2FzZSAiZHJhZ2dhYmxlIjoKICAgICAgICAgICAgICBjYXNlICJ2YWx1ZSI6CiAgICAgICAgICAgICAgY2FzZSAiYXV0b1JldmVyc2UiOgogICAgICAgICAgICAgIGNhc2UgImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiOgogICAgICAgICAgICAgIGNhc2UgImZvY3VzYWJsZSI6CiAgICAgICAgICAgICAgY2FzZSAicHJlc2VydmVBbHBoYSI6CiAgICAgICAgICAgICAgY2FzZSAiYWxsb3dGdWxsU2NyZWVuIjoKICAgICAgICAgICAgICBjYXNlICJhc3luYyI6CiAgICAgICAgICAgICAgY2FzZSAiYXV0b1BsYXkiOgogICAgICAgICAgICAgIGNhc2UgImNvbnRyb2xzIjoKICAgICAgICAgICAgICBjYXNlICJkZWZhdWx0IjoKICAgICAgICAgICAgICBjYXNlICJkZWZlciI6CiAgICAgICAgICAgICAgY2FzZSAiZGlzYWJsZWQiOgogICAgICAgICAgICAgIGNhc2UgImRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIjoKICAgICAgICAgICAgICBjYXNlICJkaXNhYmxlUmVtb3RlUGxheWJhY2siOgogICAgICAgICAgICAgIGNhc2UgImZvcm1Ob1ZhbGlkYXRlIjoKICAgICAgICAgICAgICBjYXNlICJoaWRkZW4iOgogICAgICAgICAgICAgIGNhc2UgImxvb3AiOgogICAgICAgICAgICAgIGNhc2UgIm5vTW9kdWxlIjoKICAgICAgICAgICAgICBjYXNlICJub1ZhbGlkYXRlIjoKICAgICAgICAgICAgICBjYXNlICJvcGVuIjoKICAgICAgICAgICAgICBjYXNlICJwbGF5c0lubGluZSI6CiAgICAgICAgICAgICAgY2FzZSAicmVhZE9ubHkiOgogICAgICAgICAgICAgIGNhc2UgInJlcXVpcmVkIjoKICAgICAgICAgICAgICBjYXNlICJyZXZlcnNlZCI6CiAgICAgICAgICAgICAgY2FzZSAic2NvcGVkIjoKICAgICAgICAgICAgICBjYXNlICJzZWFtbGVzcyI6CiAgICAgICAgICAgICAgY2FzZSAiaXRlbVNjb3BlIjoKICAgICAgICAgICAgICBjYXNlICJjYXB0dXJlIjoKICAgICAgICAgICAgICBjYXNlICJkb3dubG9hZCI6CiAgICAgICAgICAgICAgY2FzZSAiaW5lcnQiOgogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGxvd2VyQ2FzZWROYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsIDUpOwogICAgICAgICAgICAgICAgaWYgKCJkYXRhLSIgPT09IGxvd2VyQ2FzZWROYW1lIHx8ICJhcmlhLSIgPT09IGxvd2VyQ2FzZWROYW1lKQogICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgIHZhbHVlID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGAlc2AgZm9yIGEgbm9uLWJvb2xlYW4gYXR0cmlidXRlIGAlc2AuXG5cbklmIHlvdSB3YW50IHRvIHdyaXRlIGl0IHRvIHRoZSBET00sIHBhc3MgYSBzdHJpbmcgaW5zdGVhZDogJXM9IiVzIiBvciAlcz17dmFsdWUudG9TdHJpbmcoKX0uJywKICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgICBuYW1lCiAgICAgICAgICAgICAgICApIDogY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGAlc2AgZm9yIGEgbm9uLWJvb2xlYW4gYXR0cmlidXRlIGAlc2AuXG5cbklmIHlvdSB3YW50IHRvIHdyaXRlIGl0IHRvIHRoZSBET00sIHBhc3MgYSBzdHJpbmcgaW5zdGVhZDogJXM9IiVzIiBvciAlcz17dmFsdWUudG9TdHJpbmcoKX0uXG5cbklmIHlvdSB1c2VkIHRvIGNvbmRpdGlvbmFsbHkgb21pdCBpdCB3aXRoICVzPXtjb25kaXRpb24gJiYgdmFsdWV9LCBwYXNzICVzPXtjb25kaXRpb24gPyB2YWx1ZSA6IHVuZGVmaW5lZH0gaW5zdGVhZC4nLAogICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICAgICAgIG5hbWUKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm4gd2FybmVkUHJvcGVydGllc1tuYW1lXSA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKICAgICAgICAgIGNhc2UgInN5bWJvbCI6CiAgICAgICAgICAgIHJldHVybiB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZSwgZmFsc2U7CiAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICBpZiAoImZhbHNlIiA9PT0gdmFsdWUgfHwgInRydWUiID09PSB2YWx1ZSkgewogICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tlZCI6CiAgICAgICAgICAgICAgICBjYXNlICJzZWxlY3RlZCI6CiAgICAgICAgICAgICAgICBjYXNlICJtdWx0aXBsZSI6CiAgICAgICAgICAgICAgICBjYXNlICJtdXRlZCI6CiAgICAgICAgICAgICAgICBjYXNlICJhbGxvd0Z1bGxTY3JlZW4iOgogICAgICAgICAgICAgICAgY2FzZSAiYXN5bmMiOgogICAgICAgICAgICAgICAgY2FzZSAiYXV0b1BsYXkiOgogICAgICAgICAgICAgICAgY2FzZSAiY29udHJvbHMiOgogICAgICAgICAgICAgICAgY2FzZSAiZGVmYXVsdCI6CiAgICAgICAgICAgICAgICBjYXNlICJkZWZlciI6CiAgICAgICAgICAgICAgICBjYXNlICJkaXNhYmxlZCI6CiAgICAgICAgICAgICAgICBjYXNlICJkaXNhYmxlUGljdHVyZUluUGljdHVyZSI6CiAgICAgICAgICAgICAgICBjYXNlICJkaXNhYmxlUmVtb3RlUGxheWJhY2siOgogICAgICAgICAgICAgICAgY2FzZSAiZm9ybU5vVmFsaWRhdGUiOgogICAgICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoKICAgICAgICAgICAgICAgIGNhc2UgImxvb3AiOgogICAgICAgICAgICAgICAgY2FzZSAibm9Nb2R1bGUiOgogICAgICAgICAgICAgICAgY2FzZSAibm9WYWxpZGF0ZSI6CiAgICAgICAgICAgICAgICBjYXNlICJvcGVuIjoKICAgICAgICAgICAgICAgIGNhc2UgInBsYXlzSW5saW5lIjoKICAgICAgICAgICAgICAgIGNhc2UgInJlYWRPbmx5IjoKICAgICAgICAgICAgICAgIGNhc2UgInJlcXVpcmVkIjoKICAgICAgICAgICAgICAgIGNhc2UgInJldmVyc2VkIjoKICAgICAgICAgICAgICAgIGNhc2UgInNjb3BlZCI6CiAgICAgICAgICAgICAgICBjYXNlICJzZWFtbGVzcyI6CiAgICAgICAgICAgICAgICBjYXNlICJpdGVtU2NvcGUiOgogICAgICAgICAgICAgICAgY2FzZSAiaW5lcnQiOgogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgIlJlY2VpdmVkIHRoZSBzdHJpbmcgYCVzYCBmb3IgdGhlIGJvb2xlYW4gYXR0cmlidXRlIGAlc2AuICVzIERpZCB5b3UgbWVhbiAlcz17JXN9PyIsCiAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICAgICAiZmFsc2UiID09PSB2YWx1ZSA/ICJUaGUgYnJvd3NlciB3aWxsIGludGVycHJldCBpdCBhcyBhIHRydXRoeSB2YWx1ZS4iIDogJ0FsdGhvdWdoIHRoaXMgd29ya3MsIGl0IHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQgaWYgeW91IHBhc3MgdGhlIHN0cmluZyAiZmFsc2UiLicsCiAgICAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgICAgdmFsdWUKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHdhcm5Vbmtub3duUHJvcGVydGllcyh0eXBlLCBwcm9wcywgZXZlbnRSZWdpc3RyeSkgewogICAgICAgIHZhciB1bmtub3duUHJvcHMgPSBbXSwga2V5OwogICAgICAgIGZvciAoa2V5IGluIHByb3BzKQogICAgICAgICAgdmFsaWRhdGVQcm9wZXJ0eSh0eXBlLCBrZXksIHByb3BzW2tleV0sIGV2ZW50UmVnaXN0cnkpIHx8IHVua25vd25Qcm9wcy5wdXNoKGtleSk7CiAgICAgICAgcHJvcHMgPSB1bmtub3duUHJvcHMubWFwKGZ1bmN0aW9uKHByb3ApIHsKICAgICAgICAgIHJldHVybiAiYCIgKyBwcm9wICsgImAiOwogICAgICAgIH0pLmpvaW4oIiwgIik7CiAgICAgICAgMSA9PT0gdW5rbm93blByb3BzLmxlbmd0aCA/IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiSW52YWxpZCB2YWx1ZSBmb3IgcHJvcCAlcyBvbiA8JXM+IHRhZy4gRWl0aGVyIHJlbW92ZSBpdCBmcm9tIHRoZSBlbGVtZW50LCBvciBwYXNzIGEgc3RyaW5nIG9yIG51bWJlciB2YWx1ZSB0byBrZWVwIGl0IGluIHRoZSBET00uIEZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9hdHRyaWJ1dGUtYmVoYXZpb3IgIiwKICAgICAgICAgIHByb3BzLAogICAgICAgICAgdHlwZQogICAgICAgICkgOiAxIDwgdW5rbm93blByb3BzLmxlbmd0aCAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkludmFsaWQgdmFsdWVzIGZvciBwcm9wcyAlcyBvbiA8JXM+IHRhZy4gRWl0aGVyIHJlbW92ZSB0aGVtIGZyb20gdGhlIGVsZW1lbnQsIG9yIHBhc3MgYSBzdHJpbmcgb3IgbnVtYmVyIHZhbHVlIHRvIGtlZXAgdGhlbSBpbiB0aGUgRE9NLiBGb3IgZGV0YWlscywgc2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvYXR0cmlidXRlLWJlaGF2aW9yICIsCiAgICAgICAgICBwcm9wcywKICAgICAgICAgIHR5cGUKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNhbml0aXplVVJMKHVybCkgewogICAgICAgIHJldHVybiBpc0phdmFTY3JpcHRQcm90b2NvbC50ZXN0KCIiICsgdXJsKSA/ICJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignUmVhY3QgaGFzIGJsb2NrZWQgYSBqYXZhc2NyaXB0OiBVUkwgYXMgYSBzZWN1cml0eSBwcmVjYXV0aW9uLicpIiA6IHVybDsKICAgICAgfQogICAgICBmdW5jdGlvbiBub29wJDEoKSB7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpIHsKICAgICAgICBuYXRpdmVFdmVudCA9IG5hdGl2ZUV2ZW50LnRhcmdldCB8fCBuYXRpdmVFdmVudC5zcmNFbGVtZW50IHx8IHdpbmRvdzsKICAgICAgICBuYXRpdmVFdmVudC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCAmJiAobmF0aXZlRXZlbnQgPSBuYXRpdmVFdmVudC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCk7CiAgICAgICAgcmV0dXJuIDMgPT09IG5hdGl2ZUV2ZW50Lm5vZGVUeXBlID8gbmF0aXZlRXZlbnQucGFyZW50Tm9kZSA6IG5hdGl2ZUV2ZW50OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc3RvcmVTdGF0ZU9mVGFyZ2V0KHRhcmdldCkgewogICAgICAgIHZhciBpbnRlcm5hbEluc3RhbmNlID0gZ2V0SW5zdGFuY2VGcm9tTm9kZSh0YXJnZXQpOwogICAgICAgIGlmIChpbnRlcm5hbEluc3RhbmNlICYmICh0YXJnZXQgPSBpbnRlcm5hbEluc3RhbmNlLnN0YXRlTm9kZSkpIHsKICAgICAgICAgIHZhciBwcm9wcyA9IHRhcmdldFtpbnRlcm5hbFByb3BzS2V5XSB8fCBudWxsOwogICAgICAgICAgYTogc3dpdGNoICh0YXJnZXQgPSBpbnRlcm5hbEluc3RhbmNlLnN0YXRlTm9kZSwgaW50ZXJuYWxJbnN0YW5jZS50eXBlKSB7CiAgICAgICAgICAgIGNhc2UgImlucHV0IjoKICAgICAgICAgICAgICB1cGRhdGVJbnB1dCgKICAgICAgICAgICAgICAgIHRhcmdldCwKICAgICAgICAgICAgICAgIHByb3BzLnZhbHVlLAogICAgICAgICAgICAgICAgcHJvcHMuZGVmYXVsdFZhbHVlLAogICAgICAgICAgICAgICAgcHJvcHMuZGVmYXVsdFZhbHVlLAogICAgICAgICAgICAgICAgcHJvcHMuY2hlY2tlZCwKICAgICAgICAgICAgICAgIHByb3BzLmRlZmF1bHRDaGVja2VkLAogICAgICAgICAgICAgICAgcHJvcHMudHlwZSwKICAgICAgICAgICAgICAgIHByb3BzLm5hbWUKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGludGVybmFsSW5zdGFuY2UgPSBwcm9wcy5uYW1lOwogICAgICAgICAgICAgIGlmICgicmFkaW8iID09PSBwcm9wcy50eXBlICYmIG51bGwgIT0gaW50ZXJuYWxJbnN0YW5jZSkgewogICAgICAgICAgICAgICAgZm9yIChwcm9wcyA9IHRhcmdldDsgcHJvcHMucGFyZW50Tm9kZTsgKSBwcm9wcyA9IHByb3BzLnBhcmVudE5vZGU7CiAgICAgICAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKGludGVybmFsSW5zdGFuY2UsICJuYW1lIik7CiAgICAgICAgICAgICAgICBwcm9wcyA9IHByb3BzLnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAgICAgICAgICAgICAgICdpbnB1dFtuYW1lPSInICsgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcygKICAgICAgICAgICAgICAgICAgICAiIiArIGludGVybmFsSW5zdGFuY2UKICAgICAgICAgICAgICAgICAgKSArICciXVt0eXBlPSJyYWRpbyJdJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGZvciAoaW50ZXJuYWxJbnN0YW5jZSA9IDA7IGludGVybmFsSW5zdGFuY2UgPCBwcm9wcy5sZW5ndGg7IGludGVybmFsSW5zdGFuY2UrKykgewogICAgICAgICAgICAgICAgICB2YXIgb3RoZXJOb2RlID0gcHJvcHNbaW50ZXJuYWxJbnN0YW5jZV07CiAgICAgICAgICAgICAgICAgIGlmIChvdGhlck5vZGUgIT09IHRhcmdldCAmJiBvdGhlck5vZGUuZm9ybSA9PT0gdGFyZ2V0LmZvcm0pIHsKICAgICAgICAgICAgICAgICAgICB2YXIgb3RoZXJQcm9wcyA9IG90aGVyTm9kZVtpbnRlcm5hbFByb3BzS2V5XSB8fCBudWxsOwogICAgICAgICAgICAgICAgICAgIGlmICghb3RoZXJQcm9wcykKICAgICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAiUmVhY3RET01JbnB1dDogTWl4aW5nIFJlYWN0IGFuZCBub24tUmVhY3QgcmFkaW8gaW5wdXRzIHdpdGggdGhlIHNhbWUgYG5hbWVgIGlzIG5vdCBzdXBwb3J0ZWQuIgogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB1cGRhdGVJbnB1dCgKICAgICAgICAgICAgICAgICAgICAgIG90aGVyTm9kZSwKICAgICAgICAgICAgICAgICAgICAgIG90aGVyUHJvcHMudmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBvdGhlclByb3BzLmRlZmF1bHRWYWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIG90aGVyUHJvcHMuZGVmYXVsdFZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgb3RoZXJQcm9wcy5jaGVja2VkLAogICAgICAgICAgICAgICAgICAgICAgb3RoZXJQcm9wcy5kZWZhdWx0Q2hlY2tlZCwKICAgICAgICAgICAgICAgICAgICAgIG90aGVyUHJvcHMudHlwZSwKICAgICAgICAgICAgICAgICAgICAgIG90aGVyUHJvcHMubmFtZQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZvciAoaW50ZXJuYWxJbnN0YW5jZSA9IDA7IGludGVybmFsSW5zdGFuY2UgPCBwcm9wcy5sZW5ndGg7IGludGVybmFsSW5zdGFuY2UrKykKICAgICAgICAgICAgICAgICAgb3RoZXJOb2RlID0gcHJvcHNbaW50ZXJuYWxJbnN0YW5jZV0sIG90aGVyTm9kZS5mb3JtID09PSB0YXJnZXQuZm9ybSAmJiB1cGRhdGVWYWx1ZUlmQ2hhbmdlZChvdGhlck5vZGUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICBjYXNlICJ0ZXh0YXJlYSI6CiAgICAgICAgICAgICAgdXBkYXRlVGV4dGFyZWEodGFyZ2V0LCBwcm9wcy52YWx1ZSwgcHJvcHMuZGVmYXVsdFZhbHVlKTsKICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICBjYXNlICJzZWxlY3QiOgogICAgICAgICAgICAgIGludGVybmFsSW5zdGFuY2UgPSBwcm9wcy52YWx1ZSwgbnVsbCAhPSBpbnRlcm5hbEluc3RhbmNlICYmIHVwZGF0ZU9wdGlvbnModGFyZ2V0LCAhIXByb3BzLm11bHRpcGxlLCBpbnRlcm5hbEluc3RhbmNlLCBmYWxzZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGJhdGNoZWRVcGRhdGVzJDEoZm4sIGEsIGIpIHsKICAgICAgICBpZiAoaXNJbnNpZGVFdmVudEhhbmRsZXIpIHJldHVybiBmbihhLCBiKTsKICAgICAgICBpc0luc2lkZUV2ZW50SGFuZGxlciA9IHRydWU7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBmbihhKTsKICAgICAgICAgIHJldHVybiBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQ7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChpc0luc2lkZUV2ZW50SGFuZGxlciA9IGZhbHNlLCBudWxsICE9PSByZXN0b3JlVGFyZ2V0IHx8IG51bGwgIT09IHJlc3RvcmVRdWV1ZSkgewogICAgICAgICAgICBpZiAoZmx1c2hTeW5jV29yayQxKCksIHJlc3RvcmVUYXJnZXQgJiYgKGEgPSByZXN0b3JlVGFyZ2V0LCBmbiA9IHJlc3RvcmVRdWV1ZSwgcmVzdG9yZVF1ZXVlID0gcmVzdG9yZVRhcmdldCA9IG51bGwsIHJlc3RvcmVTdGF0ZU9mVGFyZ2V0KGEpLCBmbikpCiAgICAgICAgICAgICAgZm9yIChhID0gMDsgYSA8IGZuLmxlbmd0aDsgYSsrKSByZXN0b3JlU3RhdGVPZlRhcmdldChmblthXSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldExpc3RlbmVyKGluc3QsIHJlZ2lzdHJhdGlvbk5hbWUpIHsKICAgICAgICB2YXIgc3RhdGVOb2RlID0gaW5zdC5zdGF0ZU5vZGU7CiAgICAgICAgaWYgKG51bGwgPT09IHN0YXRlTm9kZSkgcmV0dXJuIG51bGw7CiAgICAgICAgdmFyIHByb3BzID0gc3RhdGVOb2RlW2ludGVybmFsUHJvcHNLZXldIHx8IG51bGw7CiAgICAgICAgaWYgKG51bGwgPT09IHByb3BzKSByZXR1cm4gbnVsbDsKICAgICAgICBzdGF0ZU5vZGUgPSBwcm9wc1tyZWdpc3RyYXRpb25OYW1lXTsKICAgICAgICBhOiBzd2l0Y2ggKHJlZ2lzdHJhdGlvbk5hbWUpIHsKICAgICAgICAgIGNhc2UgIm9uQ2xpY2siOgogICAgICAgICAgY2FzZSAib25DbGlja0NhcHR1cmUiOgogICAgICAgICAgY2FzZSAib25Eb3VibGVDbGljayI6CiAgICAgICAgICBjYXNlICJvbkRvdWJsZUNsaWNrQ2FwdHVyZSI6CiAgICAgICAgICBjYXNlICJvbk1vdXNlRG93biI6CiAgICAgICAgICBjYXNlICJvbk1vdXNlRG93bkNhcHR1cmUiOgogICAgICAgICAgY2FzZSAib25Nb3VzZU1vdmUiOgogICAgICAgICAgY2FzZSAib25Nb3VzZU1vdmVDYXB0dXJlIjoKICAgICAgICAgIGNhc2UgIm9uTW91c2VVcCI6CiAgICAgICAgICBjYXNlICJvbk1vdXNlVXBDYXB0dXJlIjoKICAgICAgICAgIGNhc2UgIm9uTW91c2VFbnRlciI6CiAgICAgICAgICAgIChwcm9wcyA9ICFwcm9wcy5kaXNhYmxlZCkgfHwgKGluc3QgPSBpbnN0LnR5cGUsIHByb3BzID0gISgiYnV0dG9uIiA9PT0gaW5zdCB8fCAiaW5wdXQiID09PSBpbnN0IHx8ICJzZWxlY3QiID09PSBpbnN0IHx8ICJ0ZXh0YXJlYSIgPT09IGluc3QpKTsKICAgICAgICAgICAgaW5zdCA9ICFwcm9wczsKICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGluc3QgPSBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKGluc3QpIHJldHVybiBudWxsOwogICAgICAgIGlmIChzdGF0ZU5vZGUgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHN0YXRlTm9kZSkKICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAiRXhwZWN0ZWQgYCIgKyByZWdpc3RyYXRpb25OYW1lICsgImAgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbiwgaW5zdGVhZCBnb3QgYSB2YWx1ZSBvZiBgIiArIHR5cGVvZiBzdGF0ZU5vZGUgKyAiYCB0eXBlLiIKICAgICAgICAgICk7CiAgICAgICAgcmV0dXJuIHN0YXRlTm9kZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXREYXRhKCkgewogICAgICAgIGlmIChmYWxsYmFja1RleHQpIHJldHVybiBmYWxsYmFja1RleHQ7CiAgICAgICAgdmFyIHN0YXJ0LCBzdGFydFZhbHVlID0gc3RhcnRUZXh0LCBzdGFydExlbmd0aCA9IHN0YXJ0VmFsdWUubGVuZ3RoLCBlbmQsIGVuZFZhbHVlID0gInZhbHVlIiBpbiByb290ID8gcm9vdC52YWx1ZSA6IHJvb3QudGV4dENvbnRlbnQsIGVuZExlbmd0aCA9IGVuZFZhbHVlLmxlbmd0aDsKICAgICAgICBmb3IgKHN0YXJ0ID0gMDsgc3RhcnQgPCBzdGFydExlbmd0aCAmJiBzdGFydFZhbHVlW3N0YXJ0XSA9PT0gZW5kVmFsdWVbc3RhcnRdOyBzdGFydCsrKSA7CiAgICAgICAgdmFyIG1pbkVuZCA9IHN0YXJ0TGVuZ3RoIC0gc3RhcnQ7CiAgICAgICAgZm9yIChlbmQgPSAxOyBlbmQgPD0gbWluRW5kICYmIHN0YXJ0VmFsdWVbc3RhcnRMZW5ndGggLSBlbmRdID09PSBlbmRWYWx1ZVtlbmRMZW5ndGggLSBlbmRdOyBlbmQrKykgOwogICAgICAgIHJldHVybiBmYWxsYmFja1RleHQgPSBlbmRWYWx1ZS5zbGljZShzdGFydCwgMSA8IGVuZCA/IDEgLSBlbmQgOiB2b2lkIDApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEV2ZW50Q2hhckNvZGUobmF0aXZlRXZlbnQpIHsKICAgICAgICB2YXIga2V5Q29kZSA9IG5hdGl2ZUV2ZW50LmtleUNvZGU7CiAgICAgICAgImNoYXJDb2RlIiBpbiBuYXRpdmVFdmVudCA/IChuYXRpdmVFdmVudCA9IG5hdGl2ZUV2ZW50LmNoYXJDb2RlLCAwID09PSBuYXRpdmVFdmVudCAmJiAxMyA9PT0ga2V5Q29kZSAmJiAobmF0aXZlRXZlbnQgPSAxMykpIDogbmF0aXZlRXZlbnQgPSBrZXlDb2RlOwogICAgICAgIDEwID09PSBuYXRpdmVFdmVudCAmJiAobmF0aXZlRXZlbnQgPSAxMyk7CiAgICAgICAgcmV0dXJuIDMyIDw9IG5hdGl2ZUV2ZW50IHx8IDEzID09PSBuYXRpdmVFdmVudCA/IG5hdGl2ZUV2ZW50IDogMDsKICAgICAgfQogICAgICBmdW5jdGlvbiBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZSgpIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBmdW5jdGlvblRoYXRSZXR1cm5zRmFsc2UoKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEludGVyZmFjZSkgewogICAgICAgIGZ1bmN0aW9uIFN5bnRoZXRpY0Jhc2VFdmVudChyZWFjdE5hbWUsIHJlYWN0RXZlbnRUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHsKICAgICAgICAgIHRoaXMuX3JlYWN0TmFtZSA9IHJlYWN0TmFtZTsKICAgICAgICAgIHRoaXMuX3RhcmdldEluc3QgPSB0YXJnZXRJbnN0OwogICAgICAgICAgdGhpcy50eXBlID0gcmVhY3RFdmVudFR5cGU7CiAgICAgICAgICB0aGlzLm5hdGl2ZUV2ZW50ID0gbmF0aXZlRXZlbnQ7CiAgICAgICAgICB0aGlzLnRhcmdldCA9IG5hdGl2ZUV2ZW50VGFyZ2V0OwogICAgICAgICAgdGhpcy5jdXJyZW50VGFyZ2V0ID0gbnVsbDsKICAgICAgICAgIGZvciAodmFyIHByb3BOYW1lIGluIEludGVyZmFjZSkKICAgICAgICAgICAgSW50ZXJmYWNlLmhhc093blByb3BlcnR5KHByb3BOYW1lKSAmJiAocmVhY3ROYW1lID0gSW50ZXJmYWNlW3Byb3BOYW1lXSwgdGhpc1twcm9wTmFtZV0gPSByZWFjdE5hbWUgPyByZWFjdE5hbWUobmF0aXZlRXZlbnQpIDogbmF0aXZlRXZlbnRbcHJvcE5hbWVdKTsKICAgICAgICAgIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gKG51bGwgIT0gbmF0aXZlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCA/IG5hdGl2ZUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgOiBmYWxzZSA9PT0gbmF0aXZlRXZlbnQucmV0dXJuVmFsdWUpID8gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWUgOiBmdW5jdGlvblRoYXRSZXR1cm5zRmFsc2U7CiAgICAgICAgICB0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc0ZhbHNlOwogICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgfQogICAgICAgIGFzc2lnbihTeW50aGV0aWNCYXNlRXZlbnQucHJvdG90eXBlLCB7CiAgICAgICAgICBwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFByZXZlbnRlZCA9IHRydWU7CiAgICAgICAgICAgIHZhciBldmVudCA9IHRoaXMubmF0aXZlRXZlbnQ7CiAgICAgICAgICAgIGV2ZW50ICYmIChldmVudC5wcmV2ZW50RGVmYXVsdCA/IGV2ZW50LnByZXZlbnREZWZhdWx0KCkgOiAidW5rbm93biIgIT09IHR5cGVvZiBldmVudC5yZXR1cm5WYWx1ZSAmJiAoZXZlbnQucmV0dXJuVmFsdWUgPSBmYWxzZSksIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWUpOwogICAgICAgICAgfSwKICAgICAgICAgIHN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBldmVudCA9IHRoaXMubmF0aXZlRXZlbnQ7CiAgICAgICAgICAgIGV2ZW50ICYmIChldmVudC5zdG9wUHJvcGFnYXRpb24gPyBldmVudC5zdG9wUHJvcGFnYXRpb24oKSA6ICJ1bmtub3duIiAhPT0gdHlwZW9mIGV2ZW50LmNhbmNlbEJ1YmJsZSAmJiAoZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZSksIHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQgPSBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZSk7CiAgICAgICAgICB9LAogICAgICAgICAgcGVyc2lzdDogZnVuY3Rpb24oKSB7CiAgICAgICAgICB9LAogICAgICAgICAgaXNQZXJzaXN0ZW50OiBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZQogICAgICAgIH0pOwogICAgICAgIHJldHVybiBTeW50aGV0aWNCYXNlRXZlbnQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW9kaWZpZXJTdGF0ZUdldHRlcihrZXlBcmcpIHsKICAgICAgICB2YXIgbmF0aXZlRXZlbnQgPSB0aGlzLm5hdGl2ZUV2ZW50OwogICAgICAgIHJldHVybiBuYXRpdmVFdmVudC5nZXRNb2RpZmllclN0YXRlID8gbmF0aXZlRXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZShrZXlBcmcpIDogKGtleUFyZyA9IG1vZGlmaWVyS2V5VG9Qcm9wW2tleUFyZ10pID8gISFuYXRpdmVFdmVudFtrZXlBcmddIDogZmFsc2U7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0RXZlbnRNb2RpZmllclN0YXRlKCkgewogICAgICAgIHJldHVybiBtb2RpZmllclN0YXRlR2V0dGVyOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSB7CiAgICAgICAgc3dpdGNoIChkb21FdmVudE5hbWUpIHsKICAgICAgICAgIGNhc2UgImtleXVwIjoKICAgICAgICAgICAgcmV0dXJuIC0xICE9PSBFTkRfS0VZQ09ERVMuaW5kZXhPZihuYXRpdmVFdmVudC5rZXlDb2RlKTsKICAgICAgICAgIGNhc2UgImtleWRvd24iOgogICAgICAgICAgICByZXR1cm4gbmF0aXZlRXZlbnQua2V5Q29kZSAhPT0gU1RBUlRfS0VZQ09ERTsKICAgICAgICAgIGNhc2UgImtleXByZXNzIjoKICAgICAgICAgIGNhc2UgIm1vdXNlZG93biI6CiAgICAgICAgICBjYXNlICJmb2N1c291dCI6CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBnZXREYXRhRnJvbUN1c3RvbUV2ZW50KG5hdGl2ZUV2ZW50KSB7CiAgICAgICAgbmF0aXZlRXZlbnQgPSBuYXRpdmVFdmVudC5kZXRhaWw7CiAgICAgICAgcmV0dXJuICJvYmplY3QiID09PSB0eXBlb2YgbmF0aXZlRXZlbnQgJiYgImRhdGEiIGluIG5hdGl2ZUV2ZW50ID8gbmF0aXZlRXZlbnQuZGF0YSA6IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0TmF0aXZlQmVmb3JlSW5wdXRDaGFycyhkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSB7CiAgICAgICAgc3dpdGNoIChkb21FdmVudE5hbWUpIHsKICAgICAgICAgIGNhc2UgImNvbXBvc2l0aW9uZW5kIjoKICAgICAgICAgICAgcmV0dXJuIGdldERhdGFGcm9tQ3VzdG9tRXZlbnQobmF0aXZlRXZlbnQpOwogICAgICAgICAgY2FzZSAia2V5cHJlc3MiOgogICAgICAgICAgICBpZiAobmF0aXZlRXZlbnQud2hpY2ggIT09IFNQQUNFQkFSX0NPREUpIHJldHVybiBudWxsOwogICAgICAgICAgICBoYXNTcGFjZUtleXByZXNzID0gdHJ1ZTsKICAgICAgICAgICAgcmV0dXJuIFNQQUNFQkFSX0NIQVI7CiAgICAgICAgICBjYXNlICJ0ZXh0SW5wdXQiOgogICAgICAgICAgICByZXR1cm4gZG9tRXZlbnROYW1lID0gbmF0aXZlRXZlbnQuZGF0YSwgZG9tRXZlbnROYW1lID09PSBTUEFDRUJBUl9DSEFSICYmIGhhc1NwYWNlS2V5cHJlc3MgPyBudWxsIDogZG9tRXZlbnROYW1lOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEZhbGxiYWNrQmVmb3JlSW5wdXRDaGFycyhkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSB7CiAgICAgICAgaWYgKGlzQ29tcG9zaW5nKQogICAgICAgICAgcmV0dXJuICJjb21wb3NpdGlvbmVuZCIgPT09IGRvbUV2ZW50TmFtZSB8fCAhY2FuVXNlQ29tcG9zaXRpb25FdmVudCAmJiBpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkgPyAoZG9tRXZlbnROYW1lID0gZ2V0RGF0YSgpLCBmYWxsYmFja1RleHQgPSBzdGFydFRleHQgPSByb290ID0gbnVsbCwgaXNDb21wb3NpbmcgPSBmYWxzZSwgZG9tRXZlbnROYW1lKSA6IG51bGw7CiAgICAgICAgc3dpdGNoIChkb21FdmVudE5hbWUpIHsKICAgICAgICAgIGNhc2UgInBhc3RlIjoKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICBjYXNlICJrZXlwcmVzcyI6CiAgICAgICAgICAgIGlmICghKG5hdGl2ZUV2ZW50LmN0cmxLZXkgfHwgbmF0aXZlRXZlbnQuYWx0S2V5IHx8IG5hdGl2ZUV2ZW50Lm1ldGFLZXkpIHx8IG5hdGl2ZUV2ZW50LmN0cmxLZXkgJiYgbmF0aXZlRXZlbnQuYWx0S2V5KSB7CiAgICAgICAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LmNoYXIgJiYgMSA8IG5hdGl2ZUV2ZW50LmNoYXIubGVuZ3RoKQogICAgICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmNoYXI7CiAgICAgICAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LndoaWNoKQogICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUobmF0aXZlRXZlbnQud2hpY2gpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgY2FzZSAiY29tcG9zaXRpb25lbmQiOgogICAgICAgICAgICByZXR1cm4gdXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgJiYgImtvIiAhPT0gbmF0aXZlRXZlbnQubG9jYWxlID8gbnVsbCA6IG5hdGl2ZUV2ZW50LmRhdGE7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaXNUZXh0SW5wdXRFbGVtZW50KGVsZW0pIHsKICAgICAgICB2YXIgbm9kZU5hbWUgPSBlbGVtICYmIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOwogICAgICAgIHJldHVybiAiaW5wdXQiID09PSBub2RlTmFtZSA/ICEhc3VwcG9ydGVkSW5wdXRUeXBlc1tlbGVtLnR5cGVdIDogInRleHRhcmVhIiA9PT0gbm9kZU5hbWUgPyB0cnVlIDogZmFsc2U7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaXNFdmVudFN1cHBvcnRlZChldmVudE5hbWVTdWZmaXgpIHsKICAgICAgICBpZiAoIWNhblVzZURPTSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGV2ZW50TmFtZVN1ZmZpeCA9ICJvbiIgKyBldmVudE5hbWVTdWZmaXg7CiAgICAgICAgdmFyIGlzU3VwcG9ydGVkID0gZXZlbnROYW1lU3VmZml4IGluIGRvY3VtZW50OwogICAgICAgIGlzU3VwcG9ydGVkIHx8IChpc1N1cHBvcnRlZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLCBpc1N1cHBvcnRlZC5zZXRBdHRyaWJ1dGUoZXZlbnROYW1lU3VmZml4LCAicmV0dXJuOyIpLCBpc1N1cHBvcnRlZCA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBpc1N1cHBvcnRlZFtldmVudE5hbWVTdWZmaXhdKTsKICAgICAgICByZXR1cm4gaXNTdXBwb3J0ZWQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY3JlYXRlQW5kQWNjdW11bGF0ZUNoYW5nZUV2ZW50KGRpc3BhdGNoUXVldWUsIGluc3QsIG5hdGl2ZUV2ZW50LCB0YXJnZXQpIHsKICAgICAgICByZXN0b3JlVGFyZ2V0ID8gcmVzdG9yZVF1ZXVlID8gcmVzdG9yZVF1ZXVlLnB1c2godGFyZ2V0KSA6IHJlc3RvcmVRdWV1ZSA9IFt0YXJnZXRdIDogcmVzdG9yZVRhcmdldCA9IHRhcmdldDsKICAgICAgICBpbnN0ID0gYWNjdW11bGF0ZVR3b1BoYXNlTGlzdGVuZXJzKGluc3QsICJvbkNoYW5nZSIpOwogICAgICAgIDAgPCBpbnN0Lmxlbmd0aCAmJiAobmF0aXZlRXZlbnQgPSBuZXcgU3ludGhldGljRXZlbnQoCiAgICAgICAgICAib25DaGFuZ2UiLAogICAgICAgICAgImNoYW5nZSIsCiAgICAgICAgICBudWxsLAogICAgICAgICAgbmF0aXZlRXZlbnQsCiAgICAgICAgICB0YXJnZXQKICAgICAgICApLCBkaXNwYXRjaFF1ZXVlLnB1c2goeyBldmVudDogbmF0aXZlRXZlbnQsIGxpc3RlbmVyczogaW5zdCB9KSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcnVuRXZlbnRJbkJhdGNoKGRpc3BhdGNoUXVldWUpIHsKICAgICAgICBwcm9jZXNzRGlzcGF0Y2hRdWV1ZShkaXNwYXRjaFF1ZXVlLCAwKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQodGFyZ2V0SW5zdCkgewogICAgICAgIHZhciB0YXJnZXROb2RlID0gZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KTsKICAgICAgICBpZiAodXBkYXRlVmFsdWVJZkNoYW5nZWQodGFyZ2V0Tm9kZSkpIHJldHVybiB0YXJnZXRJbnN0OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JDaGFuZ2VFdmVudChkb21FdmVudE5hbWUsIHRhcmdldEluc3QpIHsKICAgICAgICBpZiAoImNoYW5nZSIgPT09IGRvbUV2ZW50TmFtZSkgcmV0dXJuIHRhcmdldEluc3Q7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc3RvcFdhdGNoaW5nRm9yVmFsdWVDaGFuZ2UoKSB7CiAgICAgICAgYWN0aXZlRWxlbWVudCQxICYmIChhY3RpdmVFbGVtZW50JDEuZGV0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLCBoYW5kbGVQcm9wZXJ0eUNoYW5nZSksIGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSBhY3RpdmVFbGVtZW50JDEgPSBudWxsKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBoYW5kbGVQcm9wZXJ0eUNoYW5nZShuYXRpdmVFdmVudCkgewogICAgICAgIGlmICgidmFsdWUiID09PSBuYXRpdmVFdmVudC5wcm9wZXJ0eU5hbWUgJiYgZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKGFjdGl2ZUVsZW1lbnRJbnN0JDEpKSB7CiAgICAgICAgICB2YXIgZGlzcGF0Y2hRdWV1ZSA9IFtdOwogICAgICAgICAgY3JlYXRlQW5kQWNjdW11bGF0ZUNoYW5nZUV2ZW50KAogICAgICAgICAgICBkaXNwYXRjaFF1ZXVlLAogICAgICAgICAgICBhY3RpdmVFbGVtZW50SW5zdCQxLAogICAgICAgICAgICBuYXRpdmVFdmVudCwKICAgICAgICAgICAgZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpCiAgICAgICAgICApOwogICAgICAgICAgYmF0Y2hlZFVwZGF0ZXMkMShydW5FdmVudEluQmF0Y2gsIGRpc3BhdGNoUXVldWUpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBoYW5kbGVFdmVudHNGb3JJbnB1dEV2ZW50UG9seWZpbGwoZG9tRXZlbnROYW1lLCB0YXJnZXQsIHRhcmdldEluc3QpIHsKICAgICAgICAiZm9jdXNpbiIgPT09IGRvbUV2ZW50TmFtZSA/IChzdG9wV2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSgpLCBhY3RpdmVFbGVtZW50JDEgPSB0YXJnZXQsIGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSB0YXJnZXRJbnN0LCBhY3RpdmVFbGVtZW50JDEuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLCBoYW5kbGVQcm9wZXJ0eUNoYW5nZSkpIDogImZvY3Vzb3V0IiA9PT0gZG9tRXZlbnROYW1lICYmIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvcklucHV0RXZlbnRQb2x5ZmlsbChkb21FdmVudE5hbWUpIHsKICAgICAgICBpZiAoInNlbGVjdGlvbmNoYW5nZSIgPT09IGRvbUV2ZW50TmFtZSB8fCAia2V5dXAiID09PSBkb21FdmVudE5hbWUgfHwgImtleWRvd24iID09PSBkb21FdmVudE5hbWUpCiAgICAgICAgICByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKGFjdGl2ZUVsZW1lbnRJbnN0JDEpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JDbGlja0V2ZW50KGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCkgewogICAgICAgIGlmICgiY2xpY2siID09PSBkb21FdmVudE5hbWUpIHJldHVybiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQodGFyZ2V0SW5zdCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvcklucHV0T3JDaGFuZ2VFdmVudChkb21FdmVudE5hbWUsIHRhcmdldEluc3QpIHsKICAgICAgICBpZiAoImlucHV0IiA9PT0gZG9tRXZlbnROYW1lIHx8ICJjaGFuZ2UiID09PSBkb21FdmVudE5hbWUpCiAgICAgICAgICByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKHRhcmdldEluc3QpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzKHgsIHkpIHsKICAgICAgICByZXR1cm4geCA9PT0geSAmJiAoMCAhPT0geCB8fCAxIC8geCA9PT0gMSAvIHkpIHx8IHggIT09IHggJiYgeSAhPT0geTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzaGFsbG93RXF1YWwob2JqQSwgb2JqQikgewogICAgICAgIGlmIChvYmplY3RJcyhvYmpBLCBvYmpCKSkgcmV0dXJuIHRydWU7CiAgICAgICAgaWYgKCJvYmplY3QiICE9PSB0eXBlb2Ygb2JqQSB8fCBudWxsID09PSBvYmpBIHx8ICJvYmplY3QiICE9PSB0eXBlb2Ygb2JqQiB8fCBudWxsID09PSBvYmpCKQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIHZhciBrZXlzQSA9IE9iamVjdC5rZXlzKG9iakEpLCBrZXlzQiA9IE9iamVjdC5rZXlzKG9iakIpOwogICAgICAgIGlmIChrZXlzQS5sZW5ndGggIT09IGtleXNCLmxlbmd0aCkgcmV0dXJuIGZhbHNlOwogICAgICAgIGZvciAoa2V5c0IgPSAwOyBrZXlzQiA8IGtleXNBLmxlbmd0aDsga2V5c0IrKykgewogICAgICAgICAgdmFyIGN1cnJlbnRLZXkgPSBrZXlzQVtrZXlzQl07CiAgICAgICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwob2JqQiwgY3VycmVudEtleSkgfHwgIW9iamVjdElzKG9iakFbY3VycmVudEtleV0sIG9iakJbY3VycmVudEtleV0pKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldExlYWZOb2RlKG5vZGUpIHsKICAgICAgICBmb3IgKDsgbm9kZSAmJiBub2RlLmZpcnN0Q2hpbGQ7ICkgbm9kZSA9IG5vZGUuZmlyc3RDaGlsZDsKICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXROb2RlRm9yQ2hhcmFjdGVyT2Zmc2V0KHJvb3QyLCBvZmZzZXQpIHsKICAgICAgICB2YXIgbm9kZSA9IGdldExlYWZOb2RlKHJvb3QyKTsKICAgICAgICByb290MiA9IDA7CiAgICAgICAgZm9yICh2YXIgbm9kZUVuZDsgbm9kZTsgKSB7CiAgICAgICAgICBpZiAoMyA9PT0gbm9kZS5ub2RlVHlwZSkgewogICAgICAgICAgICBub2RlRW5kID0gcm9vdDIgKyBub2RlLnRleHRDb250ZW50Lmxlbmd0aDsKICAgICAgICAgICAgaWYgKHJvb3QyIDw9IG9mZnNldCAmJiBub2RlRW5kID49IG9mZnNldCkKICAgICAgICAgICAgICByZXR1cm4geyBub2RlLCBvZmZzZXQ6IG9mZnNldCAtIHJvb3QyIH07CiAgICAgICAgICAgIHJvb3QyID0gbm9kZUVuZDsKICAgICAgICAgIH0KICAgICAgICAgIGE6IHsKICAgICAgICAgICAgZm9yICg7IG5vZGU7ICkgewogICAgICAgICAgICAgIGlmIChub2RlLm5leHRTaWJsaW5nKSB7CiAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5uZXh0U2libGluZzsKICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbm9kZSA9IHZvaWQgMDsKICAgICAgICAgIH0KICAgICAgICAgIG5vZGUgPSBnZXRMZWFmTm9kZShub2RlKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29udGFpbnNOb2RlKG91dGVyTm9kZSwgaW5uZXJOb2RlKSB7CiAgICAgICAgcmV0dXJuIG91dGVyTm9kZSAmJiBpbm5lck5vZGUgPyBvdXRlck5vZGUgPT09IGlubmVyTm9kZSA/IHRydWUgOiBvdXRlck5vZGUgJiYgMyA9PT0gb3V0ZXJOb2RlLm5vZGVUeXBlID8gZmFsc2UgOiBpbm5lck5vZGUgJiYgMyA9PT0gaW5uZXJOb2RlLm5vZGVUeXBlID8gY29udGFpbnNOb2RlKG91dGVyTm9kZSwgaW5uZXJOb2RlLnBhcmVudE5vZGUpIDogImNvbnRhaW5zIiBpbiBvdXRlck5vZGUgPyBvdXRlck5vZGUuY29udGFpbnMoaW5uZXJOb2RlKSA6IG91dGVyTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiA/ICEhKG91dGVyTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihpbm5lck5vZGUpICYgMTYpIDogZmFsc2UgOiBmYWxzZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRBY3RpdmVFbGVtZW50RGVlcChjb250YWluZXJJbmZvKSB7CiAgICAgICAgY29udGFpbmVySW5mbyA9IG51bGwgIT0gY29udGFpbmVySW5mbyAmJiBudWxsICE9IGNvbnRhaW5lckluZm8ub3duZXJEb2N1bWVudCAmJiBudWxsICE9IGNvbnRhaW5lckluZm8ub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyA/IGNvbnRhaW5lckluZm8ub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyA6IHdpbmRvdzsKICAgICAgICBmb3IgKHZhciBlbGVtZW50ID0gZ2V0QWN0aXZlRWxlbWVudChjb250YWluZXJJbmZvLmRvY3VtZW50KTsgZWxlbWVudCBpbnN0YW5jZW9mIGNvbnRhaW5lckluZm8uSFRNTElGcmFtZUVsZW1lbnQ7ICkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICJzdHJpbmciID09PSB0eXBlb2YgZWxlbWVudC5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWY7CiAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0KSBjb250YWluZXJJbmZvID0gZWxlbWVudC5jb250ZW50V2luZG93OwogICAgICAgICAgZWxzZSBicmVhazsKICAgICAgICAgIGVsZW1lbnQgPSBnZXRBY3RpdmVFbGVtZW50KGNvbnRhaW5lckluZm8uZG9jdW1lbnQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgICAgfQogICAgICBmdW5jdGlvbiBoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXMoZWxlbSkgewogICAgICAgIHZhciBub2RlTmFtZSA9IGVsZW0gJiYgZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgcmV0dXJuIG5vZGVOYW1lICYmICgiaW5wdXQiID09PSBub2RlTmFtZSAmJiAoInRleHQiID09PSBlbGVtLnR5cGUgfHwgInNlYXJjaCIgPT09IGVsZW0udHlwZSB8fCAidGVsIiA9PT0gZWxlbS50eXBlIHx8ICJ1cmwiID09PSBlbGVtLnR5cGUgfHwgInBhc3N3b3JkIiA9PT0gZWxlbS50eXBlKSB8fCAidGV4dGFyZWEiID09PSBub2RlTmFtZSB8fCAidHJ1ZSIgPT09IGVsZW0uY29udGVudEVkaXRhYmxlKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb25zdHJ1Y3RTZWxlY3RFdmVudChkaXNwYXRjaFF1ZXVlLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHsKICAgICAgICB2YXIgZG9jID0gbmF0aXZlRXZlbnRUYXJnZXQud2luZG93ID09PSBuYXRpdmVFdmVudFRhcmdldCA/IG5hdGl2ZUV2ZW50VGFyZ2V0LmRvY3VtZW50IDogOSA9PT0gbmF0aXZlRXZlbnRUYXJnZXQubm9kZVR5cGUgPyBuYXRpdmVFdmVudFRhcmdldCA6IG5hdGl2ZUV2ZW50VGFyZ2V0Lm93bmVyRG9jdW1lbnQ7CiAgICAgICAgbW91c2VEb3duIHx8IG51bGwgPT0gYWN0aXZlRWxlbWVudCB8fCBhY3RpdmVFbGVtZW50ICE9PSBnZXRBY3RpdmVFbGVtZW50KGRvYykgfHwgKGRvYyA9IGFjdGl2ZUVsZW1lbnQsICJzZWxlY3Rpb25TdGFydCIgaW4gZG9jICYmIGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhkb2MpID8gZG9jID0geyBzdGFydDogZG9jLnNlbGVjdGlvblN0YXJ0LCBlbmQ6IGRvYy5zZWxlY3Rpb25FbmQgfSA6IChkb2MgPSAoZG9jLm93bmVyRG9jdW1lbnQgJiYgZG9jLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgd2luZG93KS5nZXRTZWxlY3Rpb24oKSwgZG9jID0gewogICAgICAgICAgYW5jaG9yTm9kZTogZG9jLmFuY2hvck5vZGUsCiAgICAgICAgICBhbmNob3JPZmZzZXQ6IGRvYy5hbmNob3JPZmZzZXQsCiAgICAgICAgICBmb2N1c05vZGU6IGRvYy5mb2N1c05vZGUsCiAgICAgICAgICBmb2N1c09mZnNldDogZG9jLmZvY3VzT2Zmc2V0CiAgICAgICAgfSksIGxhc3RTZWxlY3Rpb24gJiYgc2hhbGxvd0VxdWFsKGxhc3RTZWxlY3Rpb24sIGRvYykgfHwgKGxhc3RTZWxlY3Rpb24gPSBkb2MsIGRvYyA9IGFjY3VtdWxhdGVUd29QaGFzZUxpc3RlbmVycyhhY3RpdmVFbGVtZW50SW5zdCwgIm9uU2VsZWN0IiksIDAgPCBkb2MubGVuZ3RoICYmIChuYXRpdmVFdmVudCA9IG5ldyBTeW50aGV0aWNFdmVudCgKICAgICAgICAgICJvblNlbGVjdCIsCiAgICAgICAgICAic2VsZWN0IiwKICAgICAgICAgIG51bGwsCiAgICAgICAgICBuYXRpdmVFdmVudCwKICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0CiAgICAgICAgKSwgZGlzcGF0Y2hRdWV1ZS5wdXNoKHsgZXZlbnQ6IG5hdGl2ZUV2ZW50LCBsaXN0ZW5lcnM6IGRvYyB9KSwgbmF0aXZlRXZlbnQudGFyZ2V0ID0gYWN0aXZlRWxlbWVudCkpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBtYWtlUHJlZml4TWFwKHN0eWxlUHJvcCwgZXZlbnROYW1lKSB7CiAgICAgICAgdmFyIHByZWZpeGVzID0ge307CiAgICAgICAgcHJlZml4ZXNbc3R5bGVQcm9wLnRvTG93ZXJDYXNlKCldID0gZXZlbnROYW1lLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgcHJlZml4ZXNbIldlYmtpdCIgKyBzdHlsZVByb3BdID0gIndlYmtpdCIgKyBldmVudE5hbWU7CiAgICAgICAgcHJlZml4ZXNbIk1veiIgKyBzdHlsZVByb3BdID0gIm1veiIgKyBldmVudE5hbWU7CiAgICAgICAgcmV0dXJuIHByZWZpeGVzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKGV2ZW50TmFtZSkgewogICAgICAgIGlmIChwcmVmaXhlZEV2ZW50TmFtZXNbZXZlbnROYW1lXSkgcmV0dXJuIHByZWZpeGVkRXZlbnROYW1lc1tldmVudE5hbWVdOwogICAgICAgIGlmICghdmVuZG9yUHJlZml4ZXNbZXZlbnROYW1lXSkgcmV0dXJuIGV2ZW50TmFtZTsKICAgICAgICB2YXIgcHJlZml4TWFwID0gdmVuZG9yUHJlZml4ZXNbZXZlbnROYW1lXSwgc3R5bGVQcm9wOwogICAgICAgIGZvciAoc3R5bGVQcm9wIGluIHByZWZpeE1hcCkKICAgICAgICAgIGlmIChwcmVmaXhNYXAuaGFzT3duUHJvcGVydHkoc3R5bGVQcm9wKSAmJiBzdHlsZVByb3AgaW4gc3R5bGUpCiAgICAgICAgICAgIHJldHVybiBwcmVmaXhlZEV2ZW50TmFtZXNbZXZlbnROYW1lXSA9IHByZWZpeE1hcFtzdHlsZVByb3BdOwogICAgICAgIHJldHVybiBldmVudE5hbWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVnaXN0ZXJTaW1wbGVFdmVudChkb21FdmVudE5hbWUsIHJlYWN0TmFtZSkgewogICAgICAgIHRvcExldmVsRXZlbnRzVG9SZWFjdE5hbWVzLnNldChkb21FdmVudE5hbWUsIHJlYWN0TmFtZSk7CiAgICAgICAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KHJlYWN0TmFtZSwgW2RvbUV2ZW50TmFtZV0pOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEFycmF5S2luZChhcnJheSkgewogICAgICAgIGZvciAodmFyIGtpbmQgPSBFTVBUWV9BUlJBWSwgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewogICAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaV07CiAgICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiB2YWx1ZSAmJiBudWxsICE9PSB2YWx1ZSkKICAgICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKHZhbHVlKSAmJiAyID09PSB2YWx1ZS5sZW5ndGggJiYgInN0cmluZyIgPT09IHR5cGVvZiB2YWx1ZVswXSkgewogICAgICAgICAgICAgIGlmIChraW5kICE9PSBFTVBUWV9BUlJBWSAmJiBraW5kICE9PSBFTlRSSUVTX0FSUkFZKQogICAgICAgICAgICAgICAgcmV0dXJuIENPTVBMRVhfQVJSQVk7CiAgICAgICAgICAgICAga2luZCA9IEVOVFJJRVNfQVJSQVk7CiAgICAgICAgICAgIH0gZWxzZSByZXR1cm4gQ09NUExFWF9BUlJBWTsKICAgICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHZhbHVlIHx8ICJzdHJpbmciID09PSB0eXBlb2YgdmFsdWUgJiYgNTAgPCB2YWx1ZS5sZW5ndGggfHwga2luZCAhPT0gRU1QVFlfQVJSQVkgJiYga2luZCAhPT0gUFJJTUlUSVZFX0FSUkFZKQogICAgICAgICAgICAgIHJldHVybiBDT01QTEVYX0FSUkFZOwogICAgICAgICAgICBraW5kID0gUFJJTUlUSVZFX0FSUkFZOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4ga2luZDsKICAgICAgfQogICAgICBmdW5jdGlvbiBhZGRPYmplY3RUb1Byb3BlcnRpZXMob2JqZWN0LCBwcm9wZXJ0aWVzLCBpbmRlbnQsIHByZWZpeDIpIHsKICAgICAgICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KQogICAgICAgICAgaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgIl8iICE9PSBrZXlbMF0gJiYgYWRkVmFsdWVUb1Byb3BlcnRpZXMoa2V5LCBvYmplY3Rba2V5XSwgcHJvcGVydGllcywgaW5kZW50LCBwcmVmaXgyKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhZGRWYWx1ZVRvUHJvcGVydGllcyhwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwcm9wZXJ0aWVzLCBpbmRlbnQsIHByZWZpeDIpIHsKICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgaWYgKG51bGwgPT09IHZhbHVlKSB7CiAgICAgICAgICAgICAgdmFsdWUgPSAibnVsbCI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgaWYgKHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHsKICAgICAgICAgICAgICAgIHZhciB0eXBlTmFtZTIgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodmFsdWUudHlwZSkgfHwgIuKApiIsIGtleSA9IHZhbHVlLmtleTsKICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucHJvcHM7CiAgICAgICAgICAgICAgICB2YXIgcHJvcHNLZXlzID0gT2JqZWN0LmtleXModmFsdWUpLCBwcm9wc0xlbmd0aCA9IHByb3BzS2V5cy5sZW5ndGg7CiAgICAgICAgICAgICAgICBpZiAobnVsbCA9PSBrZXkgJiYgMCA9PT0gcHJvcHNMZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgdmFsdWUgPSAiPCIgKyB0eXBlTmFtZTIgKyAiIC8+IjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoMyA+IGluZGVudCB8fCAxID09PSBwcm9wc0xlbmd0aCAmJiAiY2hpbGRyZW4iID09PSBwcm9wc0tleXNbMF0gJiYgbnVsbCA9PSBrZXkpIHsKICAgICAgICAgICAgICAgICAgdmFsdWUgPSAiPCIgKyB0eXBlTmFtZTIgKyAiIOKApiAvPiI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFsKICAgICAgICAgICAgICAgICAgcHJlZml4MiArICLCoMKgIi5yZXBlYXQoaW5kZW50KSArIHByb3BlcnR5TmFtZSwKICAgICAgICAgICAgICAgICAgIjwiICsgdHlwZU5hbWUyCiAgICAgICAgICAgICAgICBdKTsKICAgICAgICAgICAgICAgIG51bGwgIT09IGtleSAmJiBhZGRWYWx1ZVRvUHJvcGVydGllcygKICAgICAgICAgICAgICAgICAgImtleSIsCiAgICAgICAgICAgICAgICAgIGtleSwKICAgICAgICAgICAgICAgICAgcHJvcGVydGllcywKICAgICAgICAgICAgICAgICAgaW5kZW50ICsgMSwKICAgICAgICAgICAgICAgICAgcHJlZml4MgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgZm9yICh2YXIgcHJvcEtleSBpbiB2YWx1ZSkKICAgICAgICAgICAgICAgICAgImNoaWxkcmVuIiA9PT0gcHJvcEtleSA/IG51bGwgIT0gdmFsdWUuY2hpbGRyZW4gJiYgKCFpc0FycmF5SW1wbCh2YWx1ZS5jaGlsZHJlbikgfHwgMCA8IHZhbHVlLmNoaWxkcmVuLmxlbmd0aCkgJiYgKHByb3BlcnR5TmFtZSA9IHRydWUpIDogaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgcHJvcEtleSkgJiYgIl8iICE9PSBwcm9wS2V5WzBdICYmIGFkZFZhbHVlVG9Qcm9wZXJ0aWVzKAogICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgdmFsdWVbcHJvcEtleV0sCiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcywKICAgICAgICAgICAgICAgICAgICBpbmRlbnQgKyAxLAogICAgICAgICAgICAgICAgICAgIHByZWZpeDIKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChbCiAgICAgICAgICAgICAgICAgICIiLAogICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUgPyAiPuKApjwvIiArIHR5cGVOYW1lMiArICI+IiA6ICIvPiIKICAgICAgICAgICAgICAgIF0pOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0eXBlTmFtZTIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpOwogICAgICAgICAgICAgIHR5cGVOYW1lMiA9IHR5cGVOYW1lMi5zbGljZSg4LCB0eXBlTmFtZTIubGVuZ3RoIC0gMSk7CiAgICAgICAgICAgICAgaWYgKCJBcnJheSIgPT09IHR5cGVOYW1lMikgewogICAgICAgICAgICAgICAgaWYgKHByb3BLZXkgPSBnZXRBcnJheUtpbmQodmFsdWUpLCBwcm9wS2V5ID09PSBQUklNSVRJVkVfQVJSQVkgfHwgcHJvcEtleSA9PT0gRU1QVFlfQVJSQVkpIHsKICAgICAgICAgICAgICAgICAgdmFsdWUgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBFTlRSSUVTX0FSUkFZKSB7CiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChbCiAgICAgICAgICAgICAgICAgICAgcHJlZml4MiArICLCoMKgIi5yZXBlYXQoaW5kZW50KSArIHByb3BlcnR5TmFtZSwKICAgICAgICAgICAgICAgICAgICAiIgogICAgICAgICAgICAgICAgICBdKTsKICAgICAgICAgICAgICAgICAgZm9yIChwcm9wZXJ0eU5hbWUgPSAwOyBwcm9wZXJ0eU5hbWUgPCB2YWx1ZS5sZW5ndGg7IHByb3BlcnR5TmFtZSsrKQogICAgICAgICAgICAgICAgICAgIHR5cGVOYW1lMiA9IHZhbHVlW3Byb3BlcnR5TmFtZV0sIGFkZFZhbHVlVG9Qcm9wZXJ0aWVzKAogICAgICAgICAgICAgICAgICAgICAgdHlwZU5hbWUyWzBdLAogICAgICAgICAgICAgICAgICAgICAgdHlwZU5hbWUyWzFdLAogICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcywKICAgICAgICAgICAgICAgICAgICAgIGluZGVudCArIDEsCiAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgyCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIlByb21pc2UiID09PSB0eXBlTmFtZTIpIHsKICAgICAgICAgICAgICAgIGlmICgiZnVsZmlsbGVkIiA9PT0gdmFsdWUuc3RhdHVzKSB7CiAgICAgICAgICAgICAgICAgIGlmICh0eXBlTmFtZTIgPSBwcm9wZXJ0aWVzLmxlbmd0aCwgYWRkVmFsdWVUb1Byb3BlcnRpZXMoCiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lLAogICAgICAgICAgICAgICAgICAgIHZhbHVlLnZhbHVlLAogICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMsCiAgICAgICAgICAgICAgICAgICAgaW5kZW50LAogICAgICAgICAgICAgICAgICAgIHByZWZpeDIKICAgICAgICAgICAgICAgICAgKSwgcHJvcGVydGllcy5sZW5ndGggPiB0eXBlTmFtZTIpIHsKICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc1t0eXBlTmFtZTJdOwogICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXNbMV0gPSAiUHJvbWlzZTwiICsgKHByb3BlcnRpZXNbMV0gfHwgIk9iamVjdCIpICsgIj4iOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgicmVqZWN0ZWQiID09PSB2YWx1ZS5zdGF0dXMgJiYgKHR5cGVOYW1lMiA9IHByb3BlcnRpZXMubGVuZ3RoLCBhZGRWYWx1ZVRvUHJvcGVydGllcygKICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lLAogICAgICAgICAgICAgICAgICB2YWx1ZS5yZWFzb24sCiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMsCiAgICAgICAgICAgICAgICAgIGluZGVudCwKICAgICAgICAgICAgICAgICAgcHJlZml4MgogICAgICAgICAgICAgICAgKSwgcHJvcGVydGllcy5sZW5ndGggPiB0eXBlTmFtZTIpKSB7CiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzW3R5cGVOYW1lMl07CiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXNbMV0gPSAiUmVqZWN0ZWQgUHJvbWlzZTwiICsgcHJvcGVydGllc1sxXSArICI+IjsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFsKICAgICAgICAgICAgICAgICAgIsKgwqAiLnJlcGVhdChpbmRlbnQpICsgcHJvcGVydHlOYW1lLAogICAgICAgICAgICAgICAgICAiUHJvbWlzZSIKICAgICAgICAgICAgICAgIF0pOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAiT2JqZWN0IiA9PT0gdHlwZU5hbWUyICYmIChwcm9wS2V5ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKSkgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHByb3BLZXkuY29uc3RydWN0b3IgJiYgKHR5cGVOYW1lMiA9IHByb3BLZXkuY29uc3RydWN0b3IubmFtZSk7CiAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFsKICAgICAgICAgICAgICAgIHByZWZpeDIgKyAiwqDCoCIucmVwZWF0KGluZGVudCkgKyBwcm9wZXJ0eU5hbWUsCiAgICAgICAgICAgICAgICAiT2JqZWN0IiA9PT0gdHlwZU5hbWUyID8gMyA+IGluZGVudCA/ICIiIDogIuKApiIgOiB0eXBlTmFtZTIKICAgICAgICAgICAgICBdKTsKICAgICAgICAgICAgICAzID4gaW5kZW50ICYmIGFkZE9iamVjdFRvUHJvcGVydGllcyh2YWx1ZSwgcHJvcGVydGllcywgaW5kZW50ICsgMSwgcHJlZml4Mik7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgIHZhbHVlID0gIiIgPT09IHZhbHVlLm5hbWUgPyAiKCkgPT4ge30iIDogdmFsdWUubmFtZSArICIoKSB7fSI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAic3RyaW5nIjoKICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA9PT0gT01JVFRFRF9QUk9QX0VSUk9SID8gIuKApiIgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAidW5kZWZpbmVkIjoKICAgICAgICAgICAgdmFsdWUgPSAidW5kZWZpbmVkIjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJib29sZWFuIjoKICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpOwogICAgICAgIH0KICAgICAgICBwcm9wZXJ0aWVzLnB1c2goWwogICAgICAgICAgcHJlZml4MiArICLCoMKgIi5yZXBlYXQoaW5kZW50KSArIHByb3BlcnR5TmFtZSwKICAgICAgICAgIHZhbHVlCiAgICAgICAgXSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYWRkT2JqZWN0RGlmZlRvUHJvcGVydGllcyhwcmV2LCBuZXh0LCBwcm9wZXJ0aWVzLCBpbmRlbnQpIHsKICAgICAgICB2YXIgaXNEZWVwbHlFcXVhbCA9IHRydWU7CiAgICAgICAgZm9yIChrZXkgaW4gcHJldikKICAgICAgICAgIGtleSBpbiBuZXh0IHx8IChwcm9wZXJ0aWVzLnB1c2goWwogICAgICAgICAgICBSRU1PVkVEICsgIsKgwqAiLnJlcGVhdChpbmRlbnQpICsga2V5LAogICAgICAgICAgICAi4oCmIgogICAgICAgICAgXSksIGlzRGVlcGx5RXF1YWwgPSBmYWxzZSk7CiAgICAgICAgZm9yICh2YXIgX2tleSBpbiBuZXh0KQogICAgICAgICAgaWYgKF9rZXkgaW4gcHJldikgewogICAgICAgICAgICB2YXIga2V5ID0gcHJldltfa2V5XTsKICAgICAgICAgICAgdmFyIG5leHRWYWx1ZSA9IG5leHRbX2tleV07CiAgICAgICAgICAgIGlmIChrZXkgIT09IG5leHRWYWx1ZSkgewogICAgICAgICAgICAgIGlmICgwID09PSBpbmRlbnQgJiYgImNoaWxkcmVuIiA9PT0gX2tleSkKICAgICAgICAgICAgICAgIGlzRGVlcGx5RXF1YWwgPSAiwqDCoCIucmVwZWF0KGluZGVudCkgKyBfa2V5LCBwcm9wZXJ0aWVzLnB1c2goCiAgICAgICAgICAgICAgICAgIFtSRU1PVkVEICsgaXNEZWVwbHlFcXVhbCwgIuKApiJdLAogICAgICAgICAgICAgICAgICBbQURERUQgKyBpc0RlZXBseUVxdWFsLCAi4oCmIl0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoISgzIDw9IGluZGVudCkpIHsKICAgICAgICAgICAgICAgICAgaWYgKCJvYmplY3QiID09PSB0eXBlb2Yga2V5ICYmICJvYmplY3QiID09PSB0eXBlb2YgbmV4dFZhbHVlICYmIG51bGwgIT09IGtleSAmJiBudWxsICE9PSBuZXh0VmFsdWUgJiYga2V5LiQkdHlwZW9mID09PSBuZXh0VmFsdWUuJCR0eXBlb2YpCiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRWYWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFKSB7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5LnR5cGUgPT09IG5leHRWYWx1ZS50eXBlICYmIGtleS5rZXkgPT09IG5leHRWYWx1ZS5rZXkpIHsKICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKG5leHRWYWx1ZS50eXBlKSB8fCAi4oCmIjsKICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWVwbHlFcXVhbCA9ICLCoMKgIi5yZXBlYXQoaW5kZW50KSArIF9rZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9ICI8IiArIGtleSArICIg4oCmIC8+IjsKICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKAogICAgICAgICAgICAgICAgICAgICAgICAgIFtSRU1PVkVEICsgaXNEZWVwbHlFcXVhbCwga2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBbQURERUQgKyBpc0RlZXBseUVxdWFsLCBrZXldCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVlcGx5RXF1YWwgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBwcmV2S2luZCA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChrZXkpLCBuZXh0S2luZCA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXh0VmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZLaW5kID09PSBuZXh0S2luZCAmJiAoIltvYmplY3QgT2JqZWN0XSIgPT09IG5leHRLaW5kIHx8ICJbb2JqZWN0IEFycmF5XSIgPT09IG5leHRLaW5kKSkgewogICAgICAgICAgICAgICAgICAgICAgICBwcmV2S2luZCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICBVTkNIQU5HRUQgKyAiwqDCoCIucmVwZWF0KGluZGVudCkgKyBfa2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICJbb2JqZWN0IEFycmF5XSIgPT09IG5leHRLaW5kID8gIkFycmF5IiA6ICIiCiAgICAgICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChwcmV2S2luZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRLaW5kID0gcHJvcGVydGllcy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgIGFkZE9iamVjdERpZmZUb1Byb3BlcnRpZXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRWYWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudCArIDEKICAgICAgICAgICAgICAgICAgICAgICAgKSA/IG5leHRLaW5kID09PSBwcm9wZXJ0aWVzLmxlbmd0aCAmJiAocHJldktpbmRbMV0gPSAiUmVmZXJlbnRpYWxseSB1bmVxdWFsIGJ1dCBkZWVwbHkgZXF1YWwgb2JqZWN0cy4gQ29uc2lkZXIgbWVtb2l6YXRpb24uIikgOiBpc0RlZXBseUVxdWFsID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGtleSAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgbmV4dFZhbHVlICYmIGtleS5uYW1lID09PSBuZXh0VmFsdWUubmFtZSAmJiBrZXkubGVuZ3RoID09PSBuZXh0VmFsdWUubGVuZ3RoICYmIChwcmV2S2luZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGtleSksIG5leHRLaW5kID0gRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobmV4dFZhbHVlKSwgcHJldktpbmQgPT09IG5leHRLaW5kKSkgewogICAgICAgICAgICAgICAgICAgIGtleSA9ICIiID09PSBuZXh0VmFsdWUubmFtZSA/ICIoKSA9PiB7fSIgOiBuZXh0VmFsdWUubmFtZSArICIoKSB7fSI7CiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFsKICAgICAgICAgICAgICAgICAgICAgIFVOQ0hBTkdFRCArICLCoMKgIi5yZXBlYXQoaW5kZW50KSArIF9rZXksCiAgICAgICAgICAgICAgICAgICAgICBrZXkgKyAiIFJlZmVyZW50aWFsbHkgdW5lcXVhbCBmdW5jdGlvbiBjbG9zdXJlLiBDb25zaWRlciBtZW1vaXphdGlvbi4iCiAgICAgICAgICAgICAgICAgICAgXSk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGFkZFZhbHVlVG9Qcm9wZXJ0aWVzKF9rZXksIGtleSwgcHJvcGVydGllcywgaW5kZW50LCBSRU1PVkVEKTsKICAgICAgICAgICAgICAgIGFkZFZhbHVlVG9Qcm9wZXJ0aWVzKF9rZXksIG5leHRWYWx1ZSwgcHJvcGVydGllcywgaW5kZW50LCBBRERFRCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlzRGVlcGx5RXF1YWwgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChbCiAgICAgICAgICAgICAgQURERUQgKyAiwqDCoCIucmVwZWF0KGluZGVudCkgKyBfa2V5LAogICAgICAgICAgICAgICLigKYiCiAgICAgICAgICAgIF0pLCBpc0RlZXBseUVxdWFsID0gZmFsc2U7CiAgICAgICAgcmV0dXJuIGlzRGVlcGx5RXF1YWw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2V0Q3VycmVudFRyYWNrRnJvbUxhbmVzKGxhbmVzKSB7CiAgICAgICAgY3VycmVudFRyYWNrID0gbGFuZXMgJiA2MyA/ICJCbG9ja2luZyIgOiBsYW5lcyAmIDY0ID8gIkdlc3R1cmUiIDogbGFuZXMgJiA0MTk0MTc2ID8gIlRyYW5zaXRpb24iIDogbGFuZXMgJiA2MjkxNDU2MCA/ICJTdXNwZW5zZSIgOiBsYW5lcyAmIDIwODAzNzQ3ODQgPyAiSWRsZSIgOiAiT3RoZXIiOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGxvZ0NvbXBvbmVudFRyaWdnZXIoZmliZXIsIHN0YXJ0VGltZSwgZW5kVGltZSwgdHJpZ2dlcikgewogICAgICAgIHN1cHBvcnRzVXNlclRpbWluZyAmJiAocmV1c2FibGVDb21wb25lbnRPcHRpb25zLnN0YXJ0ID0gc3RhcnRUaW1lLCByZXVzYWJsZUNvbXBvbmVudE9wdGlvbnMuZW5kID0gZW5kVGltZSwgcmV1c2FibGVDb21wb25lbnREZXZUb29sRGV0YWlscy5jb2xvciA9ICJ3YXJuaW5nIiwgcmV1c2FibGVDb21wb25lbnREZXZUb29sRGV0YWlscy50b29sdGlwVGV4dCA9IHRyaWdnZXIsIHJldXNhYmxlQ29tcG9uZW50RGV2VG9vbERldGFpbHMucHJvcGVydGllcyA9IG51bGwsIChmaWJlciA9IGZpYmVyLl9kZWJ1Z1Rhc2spID8gZmliZXIucnVuKAogICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZS5iaW5kKAogICAgICAgICAgICBwZXJmb3JtYW5jZSwKICAgICAgICAgICAgdHJpZ2dlciwKICAgICAgICAgICAgcmV1c2FibGVDb21wb25lbnRPcHRpb25zCiAgICAgICAgICApCiAgICAgICAgKSA6IHBlcmZvcm1hbmNlLm1lYXN1cmUodHJpZ2dlciwgcmV1c2FibGVDb21wb25lbnRPcHRpb25zKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbG9nQ29tcG9uZW50UmVhcHBlYXJlZChmaWJlciwgc3RhcnRUaW1lLCBlbmRUaW1lKSB7CiAgICAgICAgbG9nQ29tcG9uZW50VHJpZ2dlcihmaWJlciwgc3RhcnRUaW1lLCBlbmRUaW1lLCAiUmVjb25uZWN0Iik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbG9nQ29tcG9uZW50UmVuZGVyKGZpYmVyLCBzdGFydFRpbWUsIGVuZFRpbWUsIHdhc0h5ZHJhdGVkLCBjb21taXR0ZWRMYW5lcykgewogICAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcik7CiAgICAgICAgaWYgKG51bGwgIT09IG5hbWUgJiYgc3VwcG9ydHNVc2VyVGltaW5nKSB7CiAgICAgICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlLCBzZWxmVGltZSA9IGZpYmVyLmFjdHVhbER1cmF0aW9uOwogICAgICAgICAgaWYgKG51bGwgPT09IGFsdGVybmF0ZSB8fCBhbHRlcm5hdGUuY2hpbGQgIT09IGZpYmVyLmNoaWxkKQogICAgICAgICAgICBmb3IgKHZhciBjaGlsZCA9IGZpYmVyLmNoaWxkOyBudWxsICE9PSBjaGlsZDsgY2hpbGQgPSBjaGlsZC5zaWJsaW5nKQogICAgICAgICAgICAgIHNlbGZUaW1lIC09IGNoaWxkLmFjdHVhbER1cmF0aW9uOwogICAgICAgICAgd2FzSHlkcmF0ZWQgPSAwLjUgPiBzZWxmVGltZSA/IHdhc0h5ZHJhdGVkID8gInRlcnRpYXJ5LWxpZ2h0IiA6ICJwcmltYXJ5LWxpZ2h0IiA6IDEwID4gc2VsZlRpbWUgPyB3YXNIeWRyYXRlZCA/ICJ0ZXJ0aWFyeSIgOiAicHJpbWFyeSIgOiAxMDAgPiBzZWxmVGltZSA/IHdhc0h5ZHJhdGVkID8gInRlcnRpYXJ5LWRhcmsiIDogInByaW1hcnktZGFyayIgOiAiZXJyb3IiOwogICAgICAgICAgdmFyIHByb3BzID0gZmliZXIubWVtb2l6ZWRQcm9wczsKICAgICAgICAgIHNlbGZUaW1lID0gZmliZXIuX2RlYnVnVGFzazsKICAgICAgICAgIG51bGwgIT09IHByb3BzICYmIG51bGwgIT09IGFsdGVybmF0ZSAmJiBhbHRlcm5hdGUubWVtb2l6ZWRQcm9wcyAhPT0gcHJvcHMgPyAoY2hpbGQgPSBbcmVzdWFibGVDaGFuZ2VkUHJvcHNFbnRyeV0sIHByb3BzID0gYWRkT2JqZWN0RGlmZlRvUHJvcGVydGllcygKICAgICAgICAgICAgYWx0ZXJuYXRlLm1lbW9pemVkUHJvcHMsCiAgICAgICAgICAgIHByb3BzLAogICAgICAgICAgICBjaGlsZCwKICAgICAgICAgICAgMAogICAgICAgICAgKSwgMSA8IGNoaWxkLmxlbmd0aCAmJiAocHJvcHMgJiYgIWFscmVhZHlXYXJuZWRGb3JEZWVwRXF1YWxpdHkgJiYgMCA9PT0gKGFsdGVybmF0ZS5sYW5lcyAmIGNvbW1pdHRlZExhbmVzKSAmJiAxMDAgPCBmaWJlci5hY3R1YWxEdXJhdGlvbiA/IChhbHJlYWR5V2FybmVkRm9yRGVlcEVxdWFsaXR5ID0gdHJ1ZSwgY2hpbGRbMF0gPSByZXVzYWJsZURlZXBseUVxdWFsUHJvcHNFbnRyeSwgcmV1c2FibGVDb21wb25lbnREZXZUb29sRGV0YWlscy5jb2xvciA9ICJ3YXJuaW5nIiwgcmV1c2FibGVDb21wb25lbnREZXZUb29sRGV0YWlscy50b29sdGlwVGV4dCA9IERFRVBfRVFVQUxJVFlfV0FSTklORykgOiAocmV1c2FibGVDb21wb25lbnREZXZUb29sRGV0YWlscy5jb2xvciA9IHdhc0h5ZHJhdGVkLCByZXVzYWJsZUNvbXBvbmVudERldlRvb2xEZXRhaWxzLnRvb2x0aXBUZXh0ID0gbmFtZSksIHJldXNhYmxlQ29tcG9uZW50RGV2VG9vbERldGFpbHMucHJvcGVydGllcyA9IGNoaWxkLCByZXVzYWJsZUNvbXBvbmVudE9wdGlvbnMuc3RhcnQgPSBzdGFydFRpbWUsIHJldXNhYmxlQ29tcG9uZW50T3B0aW9ucy5lbmQgPSBlbmRUaW1lLCBudWxsICE9IHNlbGZUaW1lID8gc2VsZlRpbWUucnVuKAogICAgICAgICAgICBwZXJmb3JtYW5jZS5tZWFzdXJlLmJpbmQoCiAgICAgICAgICAgICAgcGVyZm9ybWFuY2UsCiAgICAgICAgICAgICAgIuKAiyIgKyBuYW1lLAogICAgICAgICAgICAgIHJldXNhYmxlQ29tcG9uZW50T3B0aW9ucwogICAgICAgICAgICApCiAgICAgICAgICApIDogcGVyZm9ybWFuY2UubWVhc3VyZSgKICAgICAgICAgICAgIuKAiyIgKyBuYW1lLAogICAgICAgICAgICByZXVzYWJsZUNvbXBvbmVudE9wdGlvbnMKICAgICAgICAgICkpKSA6IG51bGwgIT0gc2VsZlRpbWUgPyBzZWxmVGltZS5ydW4oCiAgICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoCiAgICAgICAgICAgICAgY29uc29sZSwKICAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgICAgICBlbmRUaW1lLAogICAgICAgICAgICAgIENPTVBPTkVOVFNfVFJBQ0ssCiAgICAgICAgICAgICAgdm9pZCAwLAogICAgICAgICAgICAgIHdhc0h5ZHJhdGVkCiAgICAgICAgICAgICkKICAgICAgICAgICkgOiBjb25zb2xlLnRpbWVTdGFtcCgKICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgc3RhcnRUaW1lLAogICAgICAgICAgICBlbmRUaW1lLAogICAgICAgICAgICBDT01QT05FTlRTX1RSQUNLLAogICAgICAgICAgICB2b2lkIDAsCiAgICAgICAgICAgIHdhc0h5ZHJhdGVkCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBsb2dDb21wb25lbnRFcnJvcmVkKGZpYmVyLCBzdGFydFRpbWUsIGVuZFRpbWUsIGVycm9ycykgewogICAgICAgIGlmIChzdXBwb3J0c1VzZXJUaW1pbmcpIHsKICAgICAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcik7CiAgICAgICAgICBpZiAobnVsbCAhPT0gbmFtZSkgewogICAgICAgICAgICBmb3IgKHZhciBkZWJ1Z1Rhc2sgPSBudWxsLCBwcm9wZXJ0aWVzID0gW10sIGkgPSAwOyBpIDwgZXJyb3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgdmFyIGNhcHR1cmVkVmFsdWUgPSBlcnJvcnNbaV07CiAgICAgICAgICAgICAgbnVsbCA9PSBkZWJ1Z1Rhc2sgJiYgbnVsbCAhPT0gY2FwdHVyZWRWYWx1ZS5zb3VyY2UgJiYgKGRlYnVnVGFzayA9IGNhcHR1cmVkVmFsdWUuc291cmNlLl9kZWJ1Z1Rhc2spOwogICAgICAgICAgICAgIGNhcHR1cmVkVmFsdWUgPSBjYXB0dXJlZFZhbHVlLnZhbHVlOwogICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChbCiAgICAgICAgICAgICAgICAiRXJyb3IiLAogICAgICAgICAgICAgICAgIm9iamVjdCIgPT09IHR5cGVvZiBjYXB0dXJlZFZhbHVlICYmIG51bGwgIT09IGNhcHR1cmVkVmFsdWUgJiYgInN0cmluZyIgPT09IHR5cGVvZiBjYXB0dXJlZFZhbHVlLm1lc3NhZ2UgPyBTdHJpbmcoY2FwdHVyZWRWYWx1ZS5tZXNzYWdlKSA6IFN0cmluZyhjYXB0dXJlZFZhbHVlKQogICAgICAgICAgICAgIF0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG51bGwgIT09IGZpYmVyLmtleSAmJiBhZGRWYWx1ZVRvUHJvcGVydGllcygia2V5IiwgZmliZXIua2V5LCBwcm9wZXJ0aWVzLCAwLCAiIik7CiAgICAgICAgICAgIG51bGwgIT09IGZpYmVyLm1lbW9pemVkUHJvcHMgJiYgYWRkT2JqZWN0VG9Qcm9wZXJ0aWVzKGZpYmVyLm1lbW9pemVkUHJvcHMsIHByb3BlcnRpZXMsIDAsICIiKTsKICAgICAgICAgICAgbnVsbCA9PSBkZWJ1Z1Rhc2sgJiYgKGRlYnVnVGFzayA9IGZpYmVyLl9kZWJ1Z1Rhc2spOwogICAgICAgICAgICBmaWJlciA9IHsKICAgICAgICAgICAgICBzdGFydDogc3RhcnRUaW1lLAogICAgICAgICAgICAgIGVuZDogZW5kVGltZSwKICAgICAgICAgICAgICBkZXRhaWw6IHsKICAgICAgICAgICAgICAgIGRldnRvb2xzOiB7CiAgICAgICAgICAgICAgICAgIGNvbG9yOiAiZXJyb3IiLAogICAgICAgICAgICAgICAgICB0cmFjazogQ09NUE9ORU5UU19UUkFDSywKICAgICAgICAgICAgICAgICAgdG9vbHRpcFRleHQ6IDEzID09PSBmaWJlci50YWcgPyAiSHlkcmF0aW9uIGZhaWxlZCIgOiAiRXJyb3IgYm91bmRhcnkgY2F1Z2h0IGFuIGVycm9yIiwKICAgICAgICAgICAgICAgICAgcHJvcGVydGllcwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICAgICAgZGVidWdUYXNrID8gZGVidWdUYXNrLnJ1bigKICAgICAgICAgICAgICBwZXJmb3JtYW5jZS5tZWFzdXJlLmJpbmQocGVyZm9ybWFuY2UsICLigIsiICsgbmFtZSwgZmliZXIpCiAgICAgICAgICAgICkgOiBwZXJmb3JtYW5jZS5tZWFzdXJlKCLigIsiICsgbmFtZSwgZmliZXIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBsb2dDb21wb25lbnRFZmZlY3QoZmliZXIsIHN0YXJ0VGltZSwgZW5kVGltZSwgc2VsZlRpbWUsIGVycm9ycykgewogICAgICAgIGlmIChudWxsICE9PSBlcnJvcnMpIHsKICAgICAgICAgIGlmIChzdXBwb3J0c1VzZXJUaW1pbmcpIHsKICAgICAgICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKTsKICAgICAgICAgICAgaWYgKG51bGwgIT09IG5hbWUpIHsKICAgICAgICAgICAgICBzZWxmVGltZSA9IFtdOwogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXJyb3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICB2YXIgZXJyb3IgPSBlcnJvcnNbaV0udmFsdWU7CiAgICAgICAgICAgICAgICBzZWxmVGltZS5wdXNoKFsKICAgICAgICAgICAgICAgICAgIkVycm9yIiwKICAgICAgICAgICAgICAgICAgIm9iamVjdCIgPT09IHR5cGVvZiBlcnJvciAmJiBudWxsICE9PSBlcnJvciAmJiAic3RyaW5nIiA9PT0gdHlwZW9mIGVycm9yLm1lc3NhZ2UgPyBTdHJpbmcoZXJyb3IubWVzc2FnZSkgOiBTdHJpbmcoZXJyb3IpCiAgICAgICAgICAgICAgICBdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbnVsbCAhPT0gZmliZXIua2V5ICYmIGFkZFZhbHVlVG9Qcm9wZXJ0aWVzKCJrZXkiLCBmaWJlci5rZXksIHNlbGZUaW1lLCAwLCAiIik7CiAgICAgICAgICAgICAgbnVsbCAhPT0gZmliZXIubWVtb2l6ZWRQcm9wcyAmJiBhZGRPYmplY3RUb1Byb3BlcnRpZXMoZmliZXIubWVtb2l6ZWRQcm9wcywgc2VsZlRpbWUsIDAsICIiKTsKICAgICAgICAgICAgICBzdGFydFRpbWUgPSB7CiAgICAgICAgICAgICAgICBzdGFydDogc3RhcnRUaW1lLAogICAgICAgICAgICAgICAgZW5kOiBlbmRUaW1lLAogICAgICAgICAgICAgICAgZGV0YWlsOiB7CiAgICAgICAgICAgICAgICAgIGRldnRvb2xzOiB7CiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICJlcnJvciIsCiAgICAgICAgICAgICAgICAgICAgdHJhY2s6IENPTVBPTkVOVFNfVFJBQ0ssCiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFRleHQ6ICJBIGxpZmVjeWNsZSBvciBlZmZlY3QgZXJyb3JlZCIsCiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogc2VsZlRpbWUKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgKGZpYmVyID0gZmliZXIuX2RlYnVnVGFzaykgPyBmaWJlci5ydW4oCiAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZS5tZWFzdXJlLmJpbmQoCiAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLAogICAgICAgICAgICAgICAgICAi4oCLIiArIG5hbWUsCiAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICkgOiBwZXJmb3JtYW5jZS5tZWFzdXJlKCLigIsiICsgbmFtZSwgc3RhcnRUaW1lKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZQogICAgICAgICAgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpLCBudWxsICE9PSBuYW1lICYmIHN1cHBvcnRzVXNlclRpbWluZyAmJiAoZXJyb3JzID0gMSA+IHNlbGZUaW1lID8gInNlY29uZGFyeS1saWdodCIgOiAxMDAgPiBzZWxmVGltZSA/ICJzZWNvbmRhcnkiIDogNTAwID4gc2VsZlRpbWUgPyAic2Vjb25kYXJ5LWRhcmsiIDogImVycm9yIiwgKGZpYmVyID0gZmliZXIuX2RlYnVnVGFzaykgPyBmaWJlci5ydW4oCiAgICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoCiAgICAgICAgICAgICAgY29uc29sZSwKICAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgICAgICBlbmRUaW1lLAogICAgICAgICAgICAgIENPTVBPTkVOVFNfVFJBQ0ssCiAgICAgICAgICAgICAgdm9pZCAwLAogICAgICAgICAgICAgIGVycm9ycwogICAgICAgICAgICApCiAgICAgICAgICApIDogY29uc29sZS50aW1lU3RhbXAoCiAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgICAgZW5kVGltZSwKICAgICAgICAgICAgQ09NUE9ORU5UU19UUkFDSywKICAgICAgICAgICAgdm9pZCAwLAogICAgICAgICAgICBlcnJvcnMKICAgICAgICAgICkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGxvZ1JlbmRlclBoYXNlKHN0YXJ0VGltZSwgZW5kVGltZSwgbGFuZXMsIGRlYnVnVGFzaykgewogICAgICAgIGlmIChzdXBwb3J0c1VzZXJUaW1pbmcgJiYgIShlbmRUaW1lIDw9IHN0YXJ0VGltZSkpIHsKICAgICAgICAgIHZhciBjb2xvciA9IChsYW5lcyAmIDczODE5NzY1MykgPT09IGxhbmVzID8gInRlcnRpYXJ5LWRhcmsiIDogInByaW1hcnktZGFyayI7CiAgICAgICAgICBsYW5lcyA9IChsYW5lcyAmIDUzNjg3MDkxMikgPT09IGxhbmVzID8gIlByZXBhcmVkIiA6IChsYW5lcyAmIDIwMTMyNjc0MSkgPT09IGxhbmVzID8gIkh5ZHJhdGVkIiA6ICJSZW5kZXIiOwogICAgICAgICAgZGVidWdUYXNrID8gZGVidWdUYXNrLnJ1bigKICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZCgKICAgICAgICAgICAgICBjb25zb2xlLAogICAgICAgICAgICAgIGxhbmVzLAogICAgICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgICAgICBlbmRUaW1lLAogICAgICAgICAgICAgIGN1cnJlbnRUcmFjaywKICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICAgICBjb2xvcgogICAgICAgICAgICApCiAgICAgICAgICApIDogY29uc29sZS50aW1lU3RhbXAoCiAgICAgICAgICAgIGxhbmVzLAogICAgICAgICAgICBzdGFydFRpbWUsCiAgICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICAgIGN1cnJlbnRUcmFjaywKICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICAgIGNvbG9yCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBsb2dTdXNwZW5kZWRSZW5kZXJQaGFzZShzdGFydFRpbWUsIGVuZFRpbWUsIGxhbmVzLCBkZWJ1Z1Rhc2spIHsKICAgICAgICAhc3VwcG9ydHNVc2VyVGltaW5nIHx8IGVuZFRpbWUgPD0gc3RhcnRUaW1lIHx8IChsYW5lcyA9IChsYW5lcyAmIDczODE5NzY1MykgPT09IGxhbmVzID8gInRlcnRpYXJ5LWRhcmsiIDogInByaW1hcnktZGFyayIsIGRlYnVnVGFzayA/IGRlYnVnVGFzay5ydW4oCiAgICAgICAgICBjb25zb2xlLnRpbWVTdGFtcC5iaW5kKAogICAgICAgICAgICBjb25zb2xlLAogICAgICAgICAgICAiUHJld2FybSIsCiAgICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgICAgZW5kVGltZSwKICAgICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICAgbGFuZXMKICAgICAgICAgICkKICAgICAgICApIDogY29uc29sZS50aW1lU3RhbXAoCiAgICAgICAgICAiUHJld2FybSIsCiAgICAgICAgICBzdGFydFRpbWUsCiAgICAgICAgICBlbmRUaW1lLAogICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICBsYW5lcwogICAgICAgICkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGxvZ1N1c3BlbmRlZFdpdGhEZWxheVBoYXNlKHN0YXJ0VGltZSwgZW5kVGltZSwgbGFuZXMsIGRlYnVnVGFzaykgewogICAgICAgICFzdXBwb3J0c1VzZXJUaW1pbmcgfHwgZW5kVGltZSA8PSBzdGFydFRpbWUgfHwgKGxhbmVzID0gKGxhbmVzICYgNzM4MTk3NjUzKSA9PT0gbGFuZXMgPyAidGVydGlhcnktZGFyayIgOiAicHJpbWFyeS1kYXJrIiwgZGVidWdUYXNrID8gZGVidWdUYXNrLnJ1bigKICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoCiAgICAgICAgICAgIGNvbnNvbGUsCiAgICAgICAgICAgICJTdXNwZW5kZWQiLAogICAgICAgICAgICBzdGFydFRpbWUsCiAgICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICAgIGN1cnJlbnRUcmFjaywKICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICAgIGxhbmVzCiAgICAgICAgICApCiAgICAgICAgKSA6IGNvbnNvbGUudGltZVN0YW1wKAogICAgICAgICAgIlN1c3BlbmRlZCIsCiAgICAgICAgICBzdGFydFRpbWUsCiAgICAgICAgICBlbmRUaW1lLAogICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICBsYW5lcwogICAgICAgICkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGxvZ1JlY292ZXJlZFJlbmRlclBoYXNlKHN0YXJ0VGltZSwgZW5kVGltZSwgbGFuZXMsIHJlY292ZXJhYmxlRXJyb3JzLCBoeWRyYXRpb25GYWlsZWQsIGRlYnVnVGFzaykgewogICAgICAgIGlmIChzdXBwb3J0c1VzZXJUaW1pbmcgJiYgIShlbmRUaW1lIDw9IHN0YXJ0VGltZSkpIHsKICAgICAgICAgIGxhbmVzID0gW107CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY292ZXJhYmxlRXJyb3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBlcnJvciA9IHJlY292ZXJhYmxlRXJyb3JzW2ldLnZhbHVlOwogICAgICAgICAgICBsYW5lcy5wdXNoKFsKICAgICAgICAgICAgICAiUmVjb3ZlcmFibGUgRXJyb3IiLAogICAgICAgICAgICAgICJvYmplY3QiID09PSB0eXBlb2YgZXJyb3IgJiYgbnVsbCAhPT0gZXJyb3IgJiYgInN0cmluZyIgPT09IHR5cGVvZiBlcnJvci5tZXNzYWdlID8gU3RyaW5nKGVycm9yLm1lc3NhZ2UpIDogU3RyaW5nKGVycm9yKQogICAgICAgICAgICBdKTsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXJ0VGltZSA9IHsKICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0VGltZSwKICAgICAgICAgICAgZW5kOiBlbmRUaW1lLAogICAgICAgICAgICBkZXRhaWw6IHsKICAgICAgICAgICAgICBkZXZ0b29sczogewogICAgICAgICAgICAgICAgY29sb3I6ICJwcmltYXJ5LWRhcmsiLAogICAgICAgICAgICAgICAgdHJhY2s6IGN1cnJlbnRUcmFjaywKICAgICAgICAgICAgICAgIHRyYWNrR3JvdXA6IExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAgICAgdG9vbHRpcFRleHQ6IGh5ZHJhdGlvbkZhaWxlZCA/ICJIeWRyYXRpb24gRmFpbGVkIiA6ICJSZWNvdmVyZWQgYWZ0ZXIgRXJyb3IiLAogICAgICAgICAgICAgICAgcHJvcGVydGllczogbGFuZXMKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICBkZWJ1Z1Rhc2sgPyBkZWJ1Z1Rhc2sucnVuKAogICAgICAgICAgICBwZXJmb3JtYW5jZS5tZWFzdXJlLmJpbmQocGVyZm9ybWFuY2UsICJSZWNvdmVyZWQiLCBzdGFydFRpbWUpCiAgICAgICAgICApIDogcGVyZm9ybWFuY2UubWVhc3VyZSgiUmVjb3ZlcmVkIiwgc3RhcnRUaW1lKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbG9nRXJyb3JlZFJlbmRlclBoYXNlKHN0YXJ0VGltZSwgZW5kVGltZSwgbGFuZXMsIGRlYnVnVGFzaykgewogICAgICAgICFzdXBwb3J0c1VzZXJUaW1pbmcgfHwgZW5kVGltZSA8PSBzdGFydFRpbWUgfHwgKGRlYnVnVGFzayA/IGRlYnVnVGFzay5ydW4oCiAgICAgICAgICBjb25zb2xlLnRpbWVTdGFtcC5iaW5kKAogICAgICAgICAgICBjb25zb2xlLAogICAgICAgICAgICAiRXJyb3JlZCIsCiAgICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgICAgZW5kVGltZSwKICAgICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICAgImVycm9yIgogICAgICAgICAgKQogICAgICAgICkgOiBjb25zb2xlLnRpbWVTdGFtcCgKICAgICAgICAgICJFcnJvcmVkIiwKICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICBjdXJyZW50VHJhY2ssCiAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICJlcnJvciIKICAgICAgICApKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBsb2dTdXNwZW5kZWRDb21taXRQaGFzZShzdGFydFRpbWUsIGVuZFRpbWUsIHJlYXNvbiwgZGVidWdUYXNrKSB7CiAgICAgICAgIXN1cHBvcnRzVXNlclRpbWluZyB8fCBlbmRUaW1lIDw9IHN0YXJ0VGltZSB8fCAoZGVidWdUYXNrID8gZGVidWdUYXNrLnJ1bigKICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoCiAgICAgICAgICAgIGNvbnNvbGUsCiAgICAgICAgICAgIHJlYXNvbiwKICAgICAgICAgICAgc3RhcnRUaW1lLAogICAgICAgICAgICBlbmRUaW1lLAogICAgICAgICAgICBjdXJyZW50VHJhY2ssCiAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAic2Vjb25kYXJ5LWxpZ2h0IgogICAgICAgICAgKQogICAgICAgICkgOiBjb25zb2xlLnRpbWVTdGFtcCgKICAgICAgICAgIHJlYXNvbiwKICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICBjdXJyZW50VHJhY2ssCiAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICJzZWNvbmRhcnktbGlnaHQiCiAgICAgICAgKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbG9nQ29tbWl0RXJyb3JlZChzdGFydFRpbWUsIGVuZFRpbWUsIGVycm9ycywgcGFzc2l2ZSwgZGVidWdUYXNrKSB7CiAgICAgICAgaWYgKHN1cHBvcnRzVXNlclRpbWluZyAmJiAhKGVuZFRpbWUgPD0gc3RhcnRUaW1lKSkgewogICAgICAgICAgZm9yICh2YXIgcHJvcGVydGllcyA9IFtdLCBpID0gMDsgaSA8IGVycm9ycy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgZXJyb3IgPSBlcnJvcnNbaV0udmFsdWU7CiAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChbCiAgICAgICAgICAgICAgIkVycm9yIiwKICAgICAgICAgICAgICAib2JqZWN0IiA9PT0gdHlwZW9mIGVycm9yICYmIG51bGwgIT09IGVycm9yICYmICJzdHJpbmciID09PSB0eXBlb2YgZXJyb3IubWVzc2FnZSA/IFN0cmluZyhlcnJvci5tZXNzYWdlKSA6IFN0cmluZyhlcnJvcikKICAgICAgICAgICAgXSk7CiAgICAgICAgICB9CiAgICAgICAgICBzdGFydFRpbWUgPSB7CiAgICAgICAgICAgIHN0YXJ0OiBzdGFydFRpbWUsCiAgICAgICAgICAgIGVuZDogZW5kVGltZSwKICAgICAgICAgICAgZGV0YWlsOiB7CiAgICAgICAgICAgICAgZGV2dG9vbHM6IHsKICAgICAgICAgICAgICAgIGNvbG9yOiAiZXJyb3IiLAogICAgICAgICAgICAgICAgdHJhY2s6IGN1cnJlbnRUcmFjaywKICAgICAgICAgICAgICAgIHRyYWNrR3JvdXA6IExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAgICAgdG9vbHRpcFRleHQ6IHBhc3NpdmUgPyAiUmVtYWluaW5nIEVmZmVjdHMgRXJyb3JlZCIgOiAiQ29tbWl0IEVycm9yZWQiLAogICAgICAgICAgICAgICAgcHJvcGVydGllcwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfTsKICAgICAgICAgIGRlYnVnVGFzayA/IGRlYnVnVGFzay5ydW4oCiAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUuYmluZChwZXJmb3JtYW5jZSwgIkVycm9yZWQiLCBzdGFydFRpbWUpCiAgICAgICAgICApIDogcGVyZm9ybWFuY2UubWVhc3VyZSgiRXJyb3JlZCIsIHN0YXJ0VGltZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGxvZ0FuaW1hdGluZ1BoYXNlKHN0YXJ0VGltZSwgZW5kVGltZSwgZGVidWdUYXNrKSB7CiAgICAgICAgIXN1cHBvcnRzVXNlclRpbWluZyB8fCBlbmRUaW1lIDw9IHN0YXJ0VGltZSB8fCAoZGVidWdUYXNrID8gZGVidWdUYXNrLnJ1bigKICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoCiAgICAgICAgICAgIGNvbnNvbGUsCiAgICAgICAgICAgICJBbmltYXRpbmciLAogICAgICAgICAgICBzdGFydFRpbWUsCiAgICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICAgIGN1cnJlbnRUcmFjaywKICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICAgICJzZWNvbmRhcnktZGFyayIKICAgICAgICAgICkKICAgICAgICApIDogY29uc29sZS50aW1lU3RhbXAoCiAgICAgICAgICAiQW5pbWF0aW5nIiwKICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICBjdXJyZW50VHJhY2ssCiAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICJzZWNvbmRhcnktZGFyayIKICAgICAgICApKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBmaW5pc2hRdWV1ZWluZ0NvbmN1cnJlbnRVcGRhdGVzKCkgewogICAgICAgIGZvciAodmFyIGVuZEluZGV4ID0gY29uY3VycmVudFF1ZXVlc0luZGV4LCBpID0gY29uY3VycmVudGx5VXBkYXRlZExhbmVzID0gY29uY3VycmVudFF1ZXVlc0luZGV4ID0gMDsgaSA8IGVuZEluZGV4OyApIHsKICAgICAgICAgIHZhciBmaWJlciA9IGNvbmN1cnJlbnRRdWV1ZXNbaV07CiAgICAgICAgICBjb25jdXJyZW50UXVldWVzW2krK10gPSBudWxsOwogICAgICAgICAgdmFyIHF1ZXVlID0gY29uY3VycmVudFF1ZXVlc1tpXTsKICAgICAgICAgIGNvbmN1cnJlbnRRdWV1ZXNbaSsrXSA9IG51bGw7CiAgICAgICAgICB2YXIgdXBkYXRlID0gY29uY3VycmVudFF1ZXVlc1tpXTsKICAgICAgICAgIGNvbmN1cnJlbnRRdWV1ZXNbaSsrXSA9IG51bGw7CiAgICAgICAgICB2YXIgbGFuZSA9IGNvbmN1cnJlbnRRdWV1ZXNbaV07CiAgICAgICAgICBjb25jdXJyZW50UXVldWVzW2krK10gPSBudWxsOwogICAgICAgICAgaWYgKG51bGwgIT09IHF1ZXVlICYmIG51bGwgIT09IHVwZGF0ZSkgewogICAgICAgICAgICB2YXIgcGVuZGluZyA9IHF1ZXVlLnBlbmRpbmc7CiAgICAgICAgICAgIG51bGwgPT09IHBlbmRpbmcgPyB1cGRhdGUubmV4dCA9IHVwZGF0ZSA6ICh1cGRhdGUubmV4dCA9IHBlbmRpbmcubmV4dCwgcGVuZGluZy5uZXh0ID0gdXBkYXRlKTsKICAgICAgICAgICAgcXVldWUucGVuZGluZyA9IHVwZGF0ZTsKICAgICAgICAgIH0KICAgICAgICAgIDAgIT09IGxhbmUgJiYgbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3QoZmliZXIsIHVwZGF0ZSwgbGFuZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGVucXVldWVVcGRhdGUkMShmaWJlciwgcXVldWUsIHVwZGF0ZSwgbGFuZSkgewogICAgICAgIGNvbmN1cnJlbnRRdWV1ZXNbY29uY3VycmVudFF1ZXVlc0luZGV4KytdID0gZmliZXI7CiAgICAgICAgY29uY3VycmVudFF1ZXVlc1tjb25jdXJyZW50UXVldWVzSW5kZXgrK10gPSBxdWV1ZTsKICAgICAgICBjb25jdXJyZW50UXVldWVzW2NvbmN1cnJlbnRRdWV1ZXNJbmRleCsrXSA9IHVwZGF0ZTsKICAgICAgICBjb25jdXJyZW50UXVldWVzW2NvbmN1cnJlbnRRdWV1ZXNJbmRleCsrXSA9IGxhbmU7CiAgICAgICAgY29uY3VycmVudGx5VXBkYXRlZExhbmVzIHw9IGxhbmU7CiAgICAgICAgZmliZXIubGFuZXMgfD0gbGFuZTsKICAgICAgICBmaWJlciA9IGZpYmVyLmFsdGVybmF0ZTsKICAgICAgICBudWxsICE9PSBmaWJlciAmJiAoZmliZXIubGFuZXMgfD0gbGFuZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZW5xdWV1ZUNvbmN1cnJlbnRIb29rVXBkYXRlKGZpYmVyLCBxdWV1ZSwgdXBkYXRlLCBsYW5lKSB7CiAgICAgICAgZW5xdWV1ZVVwZGF0ZSQxKGZpYmVyLCBxdWV1ZSwgdXBkYXRlLCBsYW5lKTsKICAgICAgICByZXR1cm4gZ2V0Um9vdEZvclVwZGF0ZWRGaWJlcihmaWJlcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCBsYW5lKSB7CiAgICAgICAgZW5xdWV1ZVVwZGF0ZSQxKGZpYmVyLCBudWxsLCBudWxsLCBsYW5lKTsKICAgICAgICByZXR1cm4gZ2V0Um9vdEZvclVwZGF0ZWRGaWJlcihmaWJlcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3Qoc291cmNlRmliZXIsIHVwZGF0ZSwgbGFuZSkgewogICAgICAgIHNvdXJjZUZpYmVyLmxhbmVzIHw9IGxhbmU7CiAgICAgICAgdmFyIGFsdGVybmF0ZSA9IHNvdXJjZUZpYmVyLmFsdGVybmF0ZTsKICAgICAgICBudWxsICE9PSBhbHRlcm5hdGUgJiYgKGFsdGVybmF0ZS5sYW5lcyB8PSBsYW5lKTsKICAgICAgICBmb3IgKHZhciBpc0hpZGRlbiA9IGZhbHNlLCBwYXJlbnQgPSBzb3VyY2VGaWJlci5yZXR1cm47IG51bGwgIT09IHBhcmVudDsgKQogICAgICAgICAgcGFyZW50LmNoaWxkTGFuZXMgfD0gbGFuZSwgYWx0ZXJuYXRlID0gcGFyZW50LmFsdGVybmF0ZSwgbnVsbCAhPT0gYWx0ZXJuYXRlICYmIChhbHRlcm5hdGUuY2hpbGRMYW5lcyB8PSBsYW5lKSwgMjIgPT09IHBhcmVudC50YWcgJiYgKHNvdXJjZUZpYmVyID0gcGFyZW50LnN0YXRlTm9kZSwgbnVsbCA9PT0gc291cmNlRmliZXIgfHwgc291cmNlRmliZXIuX3Zpc2liaWxpdHkgJiBPZmZzY3JlZW5WaXNpYmxlIHx8IChpc0hpZGRlbiA9IHRydWUpKSwgc291cmNlRmliZXIgPSBwYXJlbnQsIHBhcmVudCA9IHBhcmVudC5yZXR1cm47CiAgICAgICAgcmV0dXJuIDMgPT09IHNvdXJjZUZpYmVyLnRhZyA/IChwYXJlbnQgPSBzb3VyY2VGaWJlci5zdGF0ZU5vZGUsIGlzSGlkZGVuICYmIG51bGwgIT09IHVwZGF0ZSAmJiAoaXNIaWRkZW4gPSAzMSAtIGNsejMyKGxhbmUpLCBzb3VyY2VGaWJlciA9IHBhcmVudC5oaWRkZW5VcGRhdGVzLCBhbHRlcm5hdGUgPSBzb3VyY2VGaWJlcltpc0hpZGRlbl0sIG51bGwgPT09IGFsdGVybmF0ZSA/IHNvdXJjZUZpYmVyW2lzSGlkZGVuXSA9IFt1cGRhdGVdIDogYWx0ZXJuYXRlLnB1c2godXBkYXRlKSwgdXBkYXRlLmxhbmUgPSBsYW5lIHwgNTM2ODcwOTEyKSwgcGFyZW50KSA6IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0Um9vdEZvclVwZGF0ZWRGaWJlcihzb3VyY2VGaWJlcikgewogICAgICAgIGlmIChuZXN0ZWRVcGRhdGVDb3VudCA+IE5FU1RFRF9VUERBVEVfTElNSVQpCiAgICAgICAgICB0aHJvdyBuZXN0ZWRQYXNzaXZlVXBkYXRlQ291bnQgPSBuZXN0ZWRVcGRhdGVDb3VudCA9IDAsIHJvb3RXaXRoUGFzc2l2ZU5lc3RlZFVwZGF0ZXMgPSByb290V2l0aE5lc3RlZFVwZGF0ZXMgPSBudWxsLCBFcnJvcigKICAgICAgICAgICAgIk1heGltdW0gdXBkYXRlIGRlcHRoIGV4Y2VlZGVkLiBUaGlzIGNhbiBoYXBwZW4gd2hlbiBhIGNvbXBvbmVudCByZXBlYXRlZGx5IGNhbGxzIHNldFN0YXRlIGluc2lkZSBjb21wb25lbnRXaWxsVXBkYXRlIG9yIGNvbXBvbmVudERpZFVwZGF0ZS4gUmVhY3QgbGltaXRzIHRoZSBudW1iZXIgb2YgbmVzdGVkIHVwZGF0ZXMgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wcy4iCiAgICAgICAgICApOwogICAgICAgIG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA+IE5FU1RFRF9QQVNTSVZFX1VQREFURV9MSU1JVCAmJiAobmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMCwgcm9vdFdpdGhQYXNzaXZlTmVzdGVkVXBkYXRlcyA9IG51bGwsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiTWF4aW11bSB1cGRhdGUgZGVwdGggZXhjZWVkZWQuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGEgY29tcG9uZW50IGNhbGxzIHNldFN0YXRlIGluc2lkZSB1c2VFZmZlY3QsIGJ1dCB1c2VFZmZlY3QgZWl0aGVyIGRvZXNuJ3QgaGF2ZSBhIGRlcGVuZGVuY3kgYXJyYXksIG9yIG9uZSBvZiB0aGUgZGVwZW5kZW5jaWVzIGNoYW5nZXMgb24gZXZlcnkgcmVuZGVyLiIKICAgICAgICApKTsKICAgICAgICBudWxsID09PSBzb3VyY2VGaWJlci5hbHRlcm5hdGUgJiYgMCAhPT0gKHNvdXJjZUZpYmVyLmZsYWdzICYgNDA5OCkgJiYgd2FybkFib3V0VXBkYXRlT25Ob3RZZXRNb3VudGVkRmliZXJJbkRFVihzb3VyY2VGaWJlcik7CiAgICAgICAgZm9yICh2YXIgbm9kZSA9IHNvdXJjZUZpYmVyLCBwYXJlbnQgPSBub2RlLnJldHVybjsgbnVsbCAhPT0gcGFyZW50OyApCiAgICAgICAgICBudWxsID09PSBub2RlLmFsdGVybmF0ZSAmJiAwICE9PSAobm9kZS5mbGFncyAmIDQwOTgpICYmIHdhcm5BYm91dFVwZGF0ZU9uTm90WWV0TW91bnRlZEZpYmVySW5ERVYoc291cmNlRmliZXIpLCBub2RlID0gcGFyZW50LCBwYXJlbnQgPSBub2RlLnJldHVybjsKICAgICAgICByZXR1cm4gMyA9PT0gbm9kZS50YWcgPyBub2RlLnN0YXRlTm9kZSA6IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHR5cGUpIHsKICAgICAgICBpZiAobnVsbCA9PT0gcmVzb2x2ZUZhbWlseSkgcmV0dXJuIHR5cGU7CiAgICAgICAgdmFyIGZhbWlseSA9IHJlc29sdmVGYW1pbHkodHlwZSk7CiAgICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gZmFtaWx5ID8gdHlwZSA6IGZhbWlseS5jdXJyZW50OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc29sdmVGb3J3YXJkUmVmRm9ySG90UmVsb2FkaW5nKHR5cGUpIHsKICAgICAgICBpZiAobnVsbCA9PT0gcmVzb2x2ZUZhbWlseSkgcmV0dXJuIHR5cGU7CiAgICAgICAgdmFyIGZhbWlseSA9IHJlc29sdmVGYW1pbHkodHlwZSk7CiAgICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gZmFtaWx5ID8gbnVsbCAhPT0gdHlwZSAmJiB2b2lkIDAgIT09IHR5cGUgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHR5cGUucmVuZGVyICYmIChmYW1pbHkgPSByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcodHlwZS5yZW5kZXIpLCB0eXBlLnJlbmRlciAhPT0gZmFtaWx5KSA/IChmYW1pbHkgPSB7ICQkdHlwZW9mOiBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFLCByZW5kZXI6IGZhbWlseSB9LCB2b2lkIDAgIT09IHR5cGUuZGlzcGxheU5hbWUgJiYgKGZhbWlseS5kaXNwbGF5TmFtZSA9IHR5cGUuZGlzcGxheU5hbWUpLCBmYW1pbHkpIDogdHlwZSA6IGZhbWlseS5jdXJyZW50OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzQ29tcGF0aWJsZUZhbWlseUZvckhvdFJlbG9hZGluZyhmaWJlciwgZWxlbWVudCkgewogICAgICAgIGlmIChudWxsID09PSByZXNvbHZlRmFtaWx5KSByZXR1cm4gZmFsc2U7CiAgICAgICAgdmFyIHByZXZUeXBlID0gZmliZXIuZWxlbWVudFR5cGU7CiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQudHlwZTsKICAgICAgICB2YXIgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSBmYWxzZSwgJCR0eXBlb2ZOZXh0VHlwZSA9ICJvYmplY3QiID09PSB0eXBlb2YgZWxlbWVudCAmJiBudWxsICE9PSBlbGVtZW50ID8gZWxlbWVudC4kJHR5cGVvZiA6IG51bGw7CiAgICAgICAgc3dpdGNoIChmaWJlci50YWcpIHsKICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGVsZW1lbnQgJiYgKG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgZWxlbWVudCA/IG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZSA6ICQkdHlwZW9mTmV4dFR5cGUgPT09IFJFQUNUX0xBWllfVFlQRSAmJiAobmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICAkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID8gbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlIDogJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTEFaWV9UWVBFICYmIChuZWVkc0NvbXBhcmVGYW1pbGllcyA9IHRydWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICAkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9NRU1PX1RZUEUgPyBuZWVkc0NvbXBhcmVGYW1pbGllcyA9IHRydWUgOiAkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9MQVpZX1RZUEUgJiYgKG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmVlZHNDb21wYXJlRmFtaWxpZXMgJiYgKGZpYmVyID0gcmVzb2x2ZUZhbWlseShwcmV2VHlwZSksIHZvaWQgMCAhPT0gZmliZXIgJiYgZmliZXIgPT09IHJlc29sdmVGYW1pbHkoZWxlbWVudCkpID8gdHJ1ZSA6IGZhbHNlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1hcmtGYWlsZWRFcnJvckJvdW5kYXJ5Rm9ySG90UmVsb2FkaW5nKGZpYmVyKSB7CiAgICAgICAgbnVsbCAhPT0gcmVzb2x2ZUZhbWlseSAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgV2Vha1NldCAmJiAobnVsbCA9PT0gZmFpbGVkQm91bmRhcmllcyAmJiAoZmFpbGVkQm91bmRhcmllcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha1NldCgpKSwgZmFpbGVkQm91bmRhcmllcy5hZGQoZmliZXIpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KGZpYmVyLCB1cGRhdGVkRmFtaWxpZXMsIHN0YWxlRmFtaWxpZXMpIHsKICAgICAgICBkbyB7CiAgICAgICAgICB2YXIgX2ZpYmVyID0gZmliZXIsIGFsdGVybmF0ZSA9IF9maWJlci5hbHRlcm5hdGUsIGNoaWxkID0gX2ZpYmVyLmNoaWxkLCBzaWJsaW5nID0gX2ZpYmVyLnNpYmxpbmcsIHRhZyA9IF9maWJlci50YWc7CiAgICAgICAgICBfZmliZXIgPSBfZmliZXIudHlwZTsKICAgICAgICAgIHZhciBjYW5kaWRhdGVUeXBlID0gbnVsbDsKICAgICAgICAgIHN3aXRjaCAodGFnKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIGNhbmRpZGF0ZVR5cGUgPSBfZmliZXI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgY2FuZGlkYXRlVHlwZSA9IF9maWJlci5yZW5kZXI7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobnVsbCA9PT0gcmVzb2x2ZUZhbWlseSkKICAgICAgICAgICAgdGhyb3cgRXJyb3IoIkV4cGVjdGVkIHJlc29sdmVGYW1pbHkgdG8gYmUgc2V0IGR1cmluZyBob3QgcmVsb2FkLiIpOwogICAgICAgICAgdmFyIG5lZWRzUmVuZGVyID0gZmFsc2U7CiAgICAgICAgICBfZmliZXIgPSBmYWxzZTsKICAgICAgICAgIG51bGwgIT09IGNhbmRpZGF0ZVR5cGUgJiYgKGNhbmRpZGF0ZVR5cGUgPSByZXNvbHZlRmFtaWx5KGNhbmRpZGF0ZVR5cGUpLCB2b2lkIDAgIT09IGNhbmRpZGF0ZVR5cGUgJiYgKHN0YWxlRmFtaWxpZXMuaGFzKGNhbmRpZGF0ZVR5cGUpID8gX2ZpYmVyID0gdHJ1ZSA6IHVwZGF0ZWRGYW1pbGllcy5oYXMoY2FuZGlkYXRlVHlwZSkgJiYgKDEgPT09IHRhZyA/IF9maWJlciA9IHRydWUgOiBuZWVkc1JlbmRlciA9IHRydWUpKSk7CiAgICAgICAgICBudWxsICE9PSBmYWlsZWRCb3VuZGFyaWVzICYmIChmYWlsZWRCb3VuZGFyaWVzLmhhcyhmaWJlcikgfHwgbnVsbCAhPT0gYWx0ZXJuYXRlICYmIGZhaWxlZEJvdW5kYXJpZXMuaGFzKGFsdGVybmF0ZSkpICYmIChfZmliZXIgPSB0cnVlKTsKICAgICAgICAgIF9maWJlciAmJiAoZmliZXIuX2RlYnVnTmVlZHNSZW1vdW50ID0gdHJ1ZSk7CiAgICAgICAgICBpZiAoX2ZpYmVyIHx8IG5lZWRzUmVuZGVyKQogICAgICAgICAgICBhbHRlcm5hdGUgPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIDIpLCBudWxsICE9PSBhbHRlcm5hdGUgJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGFsdGVybmF0ZSwgZmliZXIsIDIpOwogICAgICAgICAgbnVsbCA9PT0gY2hpbGQgfHwgX2ZpYmVyIHx8IHNjaGVkdWxlRmliZXJzV2l0aEZhbWlsaWVzUmVjdXJzaXZlbHkoCiAgICAgICAgICAgIGNoaWxkLAogICAgICAgICAgICB1cGRhdGVkRmFtaWxpZXMsCiAgICAgICAgICAgIHN0YWxlRmFtaWxpZXMKICAgICAgICAgICk7CiAgICAgICAgICBpZiAobnVsbCA9PT0gc2libGluZykgYnJlYWs7CiAgICAgICAgICBmaWJlciA9IHNpYmxpbmc7CiAgICAgICAgfSB3aGlsZSAoMSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gRmliZXJOb2RlKHRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpIHsKICAgICAgICB0aGlzLnRhZyA9IHRhZzsKICAgICAgICB0aGlzLmtleSA9IGtleTsKICAgICAgICB0aGlzLnNpYmxpbmcgPSB0aGlzLmNoaWxkID0gdGhpcy5yZXR1cm4gPSB0aGlzLnN0YXRlTm9kZSA9IHRoaXMudHlwZSA9IHRoaXMuZWxlbWVudFR5cGUgPSBudWxsOwogICAgICAgIHRoaXMuaW5kZXggPSAwOwogICAgICAgIHRoaXMucmVmQ2xlYW51cCA9IHRoaXMucmVmID0gbnVsbDsKICAgICAgICB0aGlzLnBlbmRpbmdQcm9wcyA9IHBlbmRpbmdQcm9wczsKICAgICAgICB0aGlzLmRlcGVuZGVuY2llcyA9IHRoaXMubWVtb2l6ZWRTdGF0ZSA9IHRoaXMudXBkYXRlUXVldWUgPSB0aGlzLm1lbW9pemVkUHJvcHMgPSBudWxsOwogICAgICAgIHRoaXMubW9kZSA9IG1vZGU7CiAgICAgICAgdGhpcy5zdWJ0cmVlRmxhZ3MgPSB0aGlzLmZsYWdzID0gMDsKICAgICAgICB0aGlzLmRlbGV0aW9ucyA9IG51bGw7CiAgICAgICAgdGhpcy5jaGlsZExhbmVzID0gdGhpcy5sYW5lcyA9IDA7CiAgICAgICAgdGhpcy5hbHRlcm5hdGUgPSBudWxsOwogICAgICAgIHRoaXMuYWN0dWFsRHVyYXRpb24gPSAtMDsKICAgICAgICB0aGlzLmFjdHVhbFN0YXJ0VGltZSA9IC0xLjE7CiAgICAgICAgdGhpcy50cmVlQmFzZUR1cmF0aW9uID0gdGhpcy5zZWxmQmFzZUR1cmF0aW9uID0gLTA7CiAgICAgICAgdGhpcy5fZGVidWdUYXNrID0gdGhpcy5fZGVidWdTdGFjayA9IHRoaXMuX2RlYnVnT3duZXIgPSB0aGlzLl9kZWJ1Z0luZm8gPSBudWxsOwogICAgICAgIHRoaXMuX2RlYnVnTmVlZHNSZW1vdW50ID0gZmFsc2U7CiAgICAgICAgdGhpcy5fZGVidWdIb29rVHlwZXMgPSBudWxsOwogICAgICAgIGhhc0JhZE1hcFBvbHlmaWxsIHx8ICJmdW5jdGlvbiIgIT09IHR5cGVvZiBPYmplY3QucHJldmVudEV4dGVuc2lvbnMgfHwgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHRoaXMpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHsKICAgICAgICBDb21wb25lbnQgPSBDb21wb25lbnQucHJvdG90eXBlOwogICAgICAgIHJldHVybiAhKCFDb21wb25lbnQgfHwgIUNvbXBvbmVudC5pc1JlYWN0Q29tcG9uZW50KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50MiwgcGVuZGluZ1Byb3BzKSB7CiAgICAgICAgdmFyIHdvcmtJblByb2dyZXNzMiA9IGN1cnJlbnQyLmFsdGVybmF0ZTsKICAgICAgICBudWxsID09PSB3b3JrSW5Qcm9ncmVzczIgPyAod29ya0luUHJvZ3Jlc3MyID0gY3JlYXRlRmliZXIoCiAgICAgICAgICBjdXJyZW50Mi50YWcsCiAgICAgICAgICBwZW5kaW5nUHJvcHMsCiAgICAgICAgICBjdXJyZW50Mi5rZXksCiAgICAgICAgICBjdXJyZW50Mi5tb2RlCiAgICAgICAgKSwgd29ya0luUHJvZ3Jlc3MyLmVsZW1lbnRUeXBlID0gY3VycmVudDIuZWxlbWVudFR5cGUsIHdvcmtJblByb2dyZXNzMi50eXBlID0gY3VycmVudDIudHlwZSwgd29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZSA9IGN1cnJlbnQyLnN0YXRlTm9kZSwgd29ya0luUHJvZ3Jlc3MyLl9kZWJ1Z093bmVyID0gY3VycmVudDIuX2RlYnVnT3duZXIsIHdvcmtJblByb2dyZXNzMi5fZGVidWdTdGFjayA9IGN1cnJlbnQyLl9kZWJ1Z1N0YWNrLCB3b3JrSW5Qcm9ncmVzczIuX2RlYnVnVGFzayA9IGN1cnJlbnQyLl9kZWJ1Z1Rhc2ssIHdvcmtJblByb2dyZXNzMi5fZGVidWdIb29rVHlwZXMgPSBjdXJyZW50Mi5fZGVidWdIb29rVHlwZXMsIHdvcmtJblByb2dyZXNzMi5hbHRlcm5hdGUgPSBjdXJyZW50MiwgY3VycmVudDIuYWx0ZXJuYXRlID0gd29ya0luUHJvZ3Jlc3MyKSA6ICh3b3JrSW5Qcm9ncmVzczIucGVuZGluZ1Byb3BzID0gcGVuZGluZ1Byb3BzLCB3b3JrSW5Qcm9ncmVzczIudHlwZSA9IGN1cnJlbnQyLnR5cGUsIHdvcmtJblByb2dyZXNzMi5mbGFncyA9IDAsIHdvcmtJblByb2dyZXNzMi5zdWJ0cmVlRmxhZ3MgPSAwLCB3b3JrSW5Qcm9ncmVzczIuZGVsZXRpb25zID0gbnVsbCwgd29ya0luUHJvZ3Jlc3MyLmFjdHVhbER1cmF0aW9uID0gLTAsIHdvcmtJblByb2dyZXNzMi5hY3R1YWxTdGFydFRpbWUgPSAtMS4xKTsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgPSBjdXJyZW50Mi5mbGFncyAmIDY1MDExNzEyOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5jaGlsZExhbmVzID0gY3VycmVudDIuY2hpbGRMYW5lczsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIubGFuZXMgPSBjdXJyZW50Mi5sYW5lczsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIuY2hpbGQgPSBjdXJyZW50Mi5jaGlsZDsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRQcm9wcyA9IGN1cnJlbnQyLm1lbW9pemVkUHJvcHM7CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgPSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlOwogICAgICAgIHdvcmtJblByb2dyZXNzMi51cGRhdGVRdWV1ZSA9IGN1cnJlbnQyLnVwZGF0ZVF1ZXVlOwogICAgICAgIHBlbmRpbmdQcm9wcyA9IGN1cnJlbnQyLmRlcGVuZGVuY2llczsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIuZGVwZW5kZW5jaWVzID0gbnVsbCA9PT0gcGVuZGluZ1Byb3BzID8gbnVsbCA6IHsKICAgICAgICAgIGxhbmVzOiBwZW5kaW5nUHJvcHMubGFuZXMsCiAgICAgICAgICBmaXJzdENvbnRleHQ6IHBlbmRpbmdQcm9wcy5maXJzdENvbnRleHQsCiAgICAgICAgICBfZGVidWdUaGVuYWJsZVN0YXRlOiBwZW5kaW5nUHJvcHMuX2RlYnVnVGhlbmFibGVTdGF0ZQogICAgICAgIH07CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnNpYmxpbmcgPSBjdXJyZW50Mi5zaWJsaW5nOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5pbmRleCA9IGN1cnJlbnQyLmluZGV4OwogICAgICAgIHdvcmtJblByb2dyZXNzMi5yZWYgPSBjdXJyZW50Mi5yZWY7CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnJlZkNsZWFudXAgPSBjdXJyZW50Mi5yZWZDbGVhbnVwOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5zZWxmQmFzZUR1cmF0aW9uID0gY3VycmVudDIuc2VsZkJhc2VEdXJhdGlvbjsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIudHJlZUJhc2VEdXJhdGlvbiA9IGN1cnJlbnQyLnRyZWVCYXNlRHVyYXRpb247CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLl9kZWJ1Z0luZm8gPSBjdXJyZW50Mi5fZGVidWdJbmZvOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5fZGVidWdOZWVkc1JlbW91bnQgPSBjdXJyZW50Mi5fZGVidWdOZWVkc1JlbW91bnQ7CiAgICAgICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzczIudGFnKSB7CiAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIudHlwZSA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhjdXJyZW50Mi50eXBlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi50eXBlID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKGN1cnJlbnQyLnR5cGUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi50eXBlID0gcmVzb2x2ZUZvcndhcmRSZWZGb3JIb3RSZWxvYWRpbmcoY3VycmVudDIudHlwZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzczI7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVzZXRXb3JrSW5Qcm9ncmVzcyh3b3JrSW5Qcm9ncmVzczIsIHJlbmRlckxhbmVzMikgewogICAgICAgIHdvcmtJblByb2dyZXNzMi5mbGFncyAmPSA2NTAxMTcxNDsKICAgICAgICB2YXIgY3VycmVudDIgPSB3b3JrSW5Qcm9ncmVzczIuYWx0ZXJuYXRlOwogICAgICAgIG51bGwgPT09IGN1cnJlbnQyID8gKHdvcmtJblByb2dyZXNzMi5jaGlsZExhbmVzID0gMCwgd29ya0luUHJvZ3Jlc3MyLmxhbmVzID0gcmVuZGVyTGFuZXMyLCB3b3JrSW5Qcm9ncmVzczIuY2hpbGQgPSBudWxsLCB3b3JrSW5Qcm9ncmVzczIuc3VidHJlZUZsYWdzID0gMCwgd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkUHJvcHMgPSBudWxsLCB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSA9IG51bGwsIHdvcmtJblByb2dyZXNzMi51cGRhdGVRdWV1ZSA9IG51bGwsIHdvcmtJblByb2dyZXNzMi5kZXBlbmRlbmNpZXMgPSBudWxsLCB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlID0gbnVsbCwgd29ya0luUHJvZ3Jlc3MyLnNlbGZCYXNlRHVyYXRpb24gPSAwLCB3b3JrSW5Qcm9ncmVzczIudHJlZUJhc2VEdXJhdGlvbiA9IDApIDogKHdvcmtJblByb2dyZXNzMi5jaGlsZExhbmVzID0gY3VycmVudDIuY2hpbGRMYW5lcywgd29ya0luUHJvZ3Jlc3MyLmxhbmVzID0gY3VycmVudDIubGFuZXMsIHdvcmtJblByb2dyZXNzMi5jaGlsZCA9IGN1cnJlbnQyLmNoaWxkLCB3b3JrSW5Qcm9ncmVzczIuc3VidHJlZUZsYWdzID0gMCwgd29ya0luUHJvZ3Jlc3MyLmRlbGV0aW9ucyA9IG51bGwsIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFByb3BzID0gY3VycmVudDIubWVtb2l6ZWRQcm9wcywgd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgPSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlLCB3b3JrSW5Qcm9ncmVzczIudXBkYXRlUXVldWUgPSBjdXJyZW50Mi51cGRhdGVRdWV1ZSwgd29ya0luUHJvZ3Jlc3MyLnR5cGUgPSBjdXJyZW50Mi50eXBlLCByZW5kZXJMYW5lczIgPSBjdXJyZW50Mi5kZXBlbmRlbmNpZXMsIHdvcmtJblByb2dyZXNzMi5kZXBlbmRlbmNpZXMgPSBudWxsID09PSByZW5kZXJMYW5lczIgPyBudWxsIDogewogICAgICAgICAgbGFuZXM6IHJlbmRlckxhbmVzMi5sYW5lcywKICAgICAgICAgIGZpcnN0Q29udGV4dDogcmVuZGVyTGFuZXMyLmZpcnN0Q29udGV4dCwKICAgICAgICAgIF9kZWJ1Z1RoZW5hYmxlU3RhdGU6IHJlbmRlckxhbmVzMi5fZGVidWdUaGVuYWJsZVN0YXRlCiAgICAgICAgfSwgd29ya0luUHJvZ3Jlc3MyLnNlbGZCYXNlRHVyYXRpb24gPSBjdXJyZW50Mi5zZWxmQmFzZUR1cmF0aW9uLCB3b3JrSW5Qcm9ncmVzczIudHJlZUJhc2VEdXJhdGlvbiA9IGN1cnJlbnQyLnRyZWVCYXNlRHVyYXRpb24pOwogICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzczI7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tVHlwZUFuZFByb3BzKHR5cGUsIGtleSwgcGVuZGluZ1Byb3BzLCBvd25lciwgbW9kZSwgbGFuZXMpIHsKICAgICAgICB2YXIgZmliZXJUYWcgPSAwLCByZXNvbHZlZFR5cGUgPSB0eXBlOwogICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgdHlwZSkKICAgICAgICAgIHNob3VsZENvbnN0cnVjdCh0eXBlKSAmJiAoZmliZXJUYWcgPSAxKSwgcmVzb2x2ZWRUeXBlID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHJlc29sdmVkVHlwZSk7CiAgICAgICAgZWxzZSBpZiAoInN0cmluZyIgPT09IHR5cGVvZiB0eXBlKQogICAgICAgICAgZmliZXJUYWcgPSBnZXRIb3N0Q29udGV4dCgpLCBmaWJlclRhZyA9IGlzSG9zdEhvaXN0YWJsZVR5cGUodHlwZSwgcGVuZGluZ1Byb3BzLCBmaWJlclRhZykgPyAyNiA6ICJodG1sIiA9PT0gdHlwZSB8fCAiaGVhZCIgPT09IHR5cGUgfHwgImJvZHkiID09PSB0eXBlID8gMjcgOiA1OwogICAgICAgIGVsc2UKICAgICAgICAgIGE6IHN3aXRjaCAodHlwZSkgewogICAgICAgICAgICBjYXNlIFJFQUNUX0FDVElWSVRZX1RZUEU6CiAgICAgICAgICAgICAgcmV0dXJuIGtleSA9IGNyZWF0ZUZpYmVyKDMxLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSksIGtleS5lbGVtZW50VHlwZSA9IFJFQUNUX0FDVElWSVRZX1RZUEUsIGtleS5sYW5lcyA9IGxhbmVzLCBrZXk7CiAgICAgICAgICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRToKICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoCiAgICAgICAgICAgICAgICBwZW5kaW5nUHJvcHMuY2hpbGRyZW4sCiAgICAgICAgICAgICAgICBtb2RlLAogICAgICAgICAgICAgICAgbGFuZXMsCiAgICAgICAgICAgICAgICBrZXkKICAgICAgICAgICAgICApOwogICAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6CiAgICAgICAgICAgICAgZmliZXJUYWcgPSA4OwogICAgICAgICAgICAgIG1vZGUgfD0gU3RyaWN0TGVnYWN5TW9kZTsKICAgICAgICAgICAgICBtb2RlIHw9IFN0cmljdEVmZmVjdHNNb2RlOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6CiAgICAgICAgICAgICAgcmV0dXJuIHR5cGUgPSBwZW5kaW5nUHJvcHMsIG93bmVyID0gbW9kZSwgInN0cmluZyIgIT09IHR5cGVvZiB0eXBlLmlkICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAnUHJvZmlsZXIgbXVzdCBzcGVjaWZ5IGFuICJpZCIgb2YgdHlwZSBgc3RyaW5nYCBhcyBhIHByb3AuIFJlY2VpdmVkIHRoZSB0eXBlIGAlc2AgaW5zdGVhZC4nLAogICAgICAgICAgICAgICAgdHlwZW9mIHR5cGUuaWQKICAgICAgICAgICAgICApLCBrZXkgPSBjcmVhdGVGaWJlcigxMiwgdHlwZSwga2V5LCBvd25lciB8IFByb2ZpbGVNb2RlKSwga2V5LmVsZW1lbnRUeXBlID0gUkVBQ1RfUFJPRklMRVJfVFlQRSwga2V5LmxhbmVzID0gbGFuZXMsIGtleS5zdGF0ZU5vZGUgPSB7IGVmZmVjdER1cmF0aW9uOiAwLCBwYXNzaXZlRWZmZWN0RHVyYXRpb246IDAgfSwga2V5OwogICAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6CiAgICAgICAgICAgICAgcmV0dXJuIGtleSA9IGNyZWF0ZUZpYmVyKDEzLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSksIGtleS5lbGVtZW50VHlwZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEUsIGtleS5sYW5lcyA9IGxhbmVzLCBrZXk7CiAgICAgICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOgogICAgICAgICAgICAgIHJldHVybiBrZXkgPSBjcmVhdGVGaWJlcigxOSwgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpLCBrZXkuZWxlbWVudFR5cGUgPSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUsIGtleS5sYW5lcyA9IGxhbmVzLCBrZXk7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYgKCJvYmplY3QiID09PSB0eXBlb2YgdHlwZSAmJiBudWxsICE9PSB0eXBlKQogICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOgogICAgICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gMTA7CiAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05TVU1FUl9UWVBFOgogICAgICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gOTsKICAgICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6CiAgICAgICAgICAgICAgICAgICAgZmliZXJUYWcgPSAxMTsKICAgICAgICAgICAgICAgICAgICByZXNvbHZlZFR5cGUgPSByZXNvbHZlRm9yd2FyZFJlZkZvckhvdFJlbG9hZGluZyhyZXNvbHZlZFR5cGUpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOgogICAgICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gMTQ7CiAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6CiAgICAgICAgICAgICAgICAgICAgZmliZXJUYWcgPSAxNjsKICAgICAgICAgICAgICAgICAgICByZXNvbHZlZFR5cGUgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmVzb2x2ZWRUeXBlID0gIiI7CiAgICAgICAgICAgICAgaWYgKHZvaWQgMCA9PT0gdHlwZSB8fCAib2JqZWN0IiA9PT0gdHlwZW9mIHR5cGUgJiYgbnVsbCAhPT0gdHlwZSAmJiAwID09PSBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGgpCiAgICAgICAgICAgICAgICByZXNvbHZlZFR5cGUgKz0gIiBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSBpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuIjsKICAgICAgICAgICAgICBudWxsID09PSB0eXBlID8gcGVuZGluZ1Byb3BzID0gIm51bGwiIDogaXNBcnJheUltcGwodHlwZSkgPyBwZW5kaW5nUHJvcHMgPSAiYXJyYXkiIDogdm9pZCAwICE9PSB0eXBlICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSA/IChwZW5kaW5nUHJvcHMgPSAiPCIgKyAoZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgIlVua25vd24iKSArICIgLz4iLCByZXNvbHZlZFR5cGUgPSAiIERpZCB5b3UgYWNjaWRlbnRhbGx5IGV4cG9ydCBhIEpTWCBsaXRlcmFsIGluc3RlYWQgb2YgYSBjb21wb25lbnQ/IikgOiBwZW5kaW5nUHJvcHMgPSB0eXBlb2YgdHlwZTsKICAgICAgICAgICAgICAoZmliZXJUYWcgPSBvd25lciA/IGdldENvbXBvbmVudE5hbWVGcm9tT3duZXIob3duZXIpIDogbnVsbCkgJiYgKHJlc29sdmVkVHlwZSArPSAiXG5cbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAiICsgZmliZXJUYWcgKyAiYC4iKTsKICAgICAgICAgICAgICBmaWJlclRhZyA9IDI5OwogICAgICAgICAgICAgIHBlbmRpbmdQcm9wcyA9IEVycm9yKAogICAgICAgICAgICAgICAgIkVsZW1lbnQgdHlwZSBpcyBpbnZhbGlkOiBleHBlY3RlZCBhIHN0cmluZyAoZm9yIGJ1aWx0LWluIGNvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgY29tcG9uZW50cykgYnV0IGdvdDogIiArIChwZW5kaW5nUHJvcHMgKyAiLiIgKyByZXNvbHZlZFR5cGUpCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICByZXNvbHZlZFR5cGUgPSBudWxsOwogICAgICAgICAgfQogICAgICAgIGtleSA9IGNyZWF0ZUZpYmVyKGZpYmVyVGFnLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSk7CiAgICAgICAga2V5LmVsZW1lbnRUeXBlID0gdHlwZTsKICAgICAgICBrZXkudHlwZSA9IHJlc29sdmVkVHlwZTsKICAgICAgICBrZXkubGFuZXMgPSBsYW5lczsKICAgICAgICBrZXkuX2RlYnVnT3duZXIgPSBvd25lcjsKICAgICAgICByZXR1cm4ga2V5OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQoZWxlbWVudCwgbW9kZSwgbGFuZXMpIHsKICAgICAgICBtb2RlID0gY3JlYXRlRmliZXJGcm9tVHlwZUFuZFByb3BzKAogICAgICAgICAgZWxlbWVudC50eXBlLAogICAgICAgICAgZWxlbWVudC5rZXksCiAgICAgICAgICBlbGVtZW50LnByb3BzLAogICAgICAgICAgZWxlbWVudC5fb3duZXIsCiAgICAgICAgICBtb2RlLAogICAgICAgICAgbGFuZXMKICAgICAgICApOwogICAgICAgIG1vZGUuX2RlYnVnT3duZXIgPSBlbGVtZW50Ll9vd25lcjsKICAgICAgICBtb2RlLl9kZWJ1Z1N0YWNrID0gZWxlbWVudC5fZGVidWdTdGFjazsKICAgICAgICBtb2RlLl9kZWJ1Z1Rhc2sgPSBlbGVtZW50Ll9kZWJ1Z1Rhc2s7CiAgICAgICAgcmV0dXJuIG1vZGU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoZWxlbWVudHMsIG1vZGUsIGxhbmVzLCBrZXkpIHsKICAgICAgICBlbGVtZW50cyA9IGNyZWF0ZUZpYmVyKDcsIGVsZW1lbnRzLCBrZXksIG1vZGUpOwogICAgICAgIGVsZW1lbnRzLmxhbmVzID0gbGFuZXM7CiAgICAgICAgcmV0dXJuIGVsZW1lbnRzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVRleHQoY29udGVudCwgbW9kZSwgbGFuZXMpIHsKICAgICAgICBjb250ZW50ID0gY3JlYXRlRmliZXIoNiwgY29udGVudCwgbnVsbCwgbW9kZSk7CiAgICAgICAgY29udGVudC5sYW5lcyA9IGxhbmVzOwogICAgICAgIHJldHVybiBjb250ZW50OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbURlaHlkcmF0ZWRGcmFnbWVudChkZWh5ZHJhdGVkTm9kZSkgewogICAgICAgIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKDE4LCBudWxsLCBudWxsLCBOb01vZGUpOwogICAgICAgIGZpYmVyLnN0YXRlTm9kZSA9IGRlaHlkcmF0ZWROb2RlOwogICAgICAgIHJldHVybiBmaWJlcjsKICAgICAgfQogICAgICBmdW5jdGlvbiBjcmVhdGVGaWJlckZyb21Qb3J0YWwocG9ydGFsLCBtb2RlLCBsYW5lcykgewogICAgICAgIG1vZGUgPSBjcmVhdGVGaWJlcigKICAgICAgICAgIDQsCiAgICAgICAgICBudWxsICE9PSBwb3J0YWwuY2hpbGRyZW4gPyBwb3J0YWwuY2hpbGRyZW4gOiBbXSwKICAgICAgICAgIHBvcnRhbC5rZXksCiAgICAgICAgICBtb2RlCiAgICAgICAgKTsKICAgICAgICBtb2RlLmxhbmVzID0gbGFuZXM7CiAgICAgICAgbW9kZS5zdGF0ZU5vZGUgPSB7CiAgICAgICAgICBjb250YWluZXJJbmZvOiBwb3J0YWwuY29udGFpbmVySW5mbywKICAgICAgICAgIHBlbmRpbmdDaGlsZHJlbjogbnVsbCwKICAgICAgICAgIGltcGxlbWVudGF0aW9uOiBwb3J0YWwuaW1wbGVtZW50YXRpb24KICAgICAgICB9OwogICAgICAgIHJldHVybiBtb2RlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKHZhbHVlLCBzb3VyY2UpIHsKICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiB2YWx1ZSAmJiBudWxsICE9PSB2YWx1ZSkgewogICAgICAgICAgdmFyIGV4aXN0aW5nID0gQ2FwdHVyZWRTdGFja3MuZ2V0KHZhbHVlKTsKICAgICAgICAgIGlmICh2b2lkIDAgIT09IGV4aXN0aW5nKSByZXR1cm4gZXhpc3Rpbmc7CiAgICAgICAgICBzb3VyY2UgPSB7CiAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICBzb3VyY2UsCiAgICAgICAgICAgIHN0YWNrOiBnZXRTdGFja0J5RmliZXJJbkRldkFuZFByb2Qoc291cmNlKQogICAgICAgICAgfTsKICAgICAgICAgIENhcHR1cmVkU3RhY2tzLnNldCh2YWx1ZSwgc291cmNlKTsKICAgICAgICAgIHJldHVybiBzb3VyY2U7CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICB2YWx1ZSwKICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgIHN0YWNrOiBnZXRTdGFja0J5RmliZXJJbkRldkFuZFByb2Qoc291cmNlKQogICAgICAgIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcHVzaFRyZWVGb3JrKHdvcmtJblByb2dyZXNzMiwgdG90YWxDaGlsZHJlbikgewogICAgICAgIHdhcm5JZk5vdEh5ZHJhdGluZygpOwogICAgICAgIGZvcmtTdGFja1tmb3JrU3RhY2tJbmRleCsrXSA9IHRyZWVGb3JrQ291bnQ7CiAgICAgICAgZm9ya1N0YWNrW2ZvcmtTdGFja0luZGV4KytdID0gdHJlZUZvcmtQcm92aWRlcjsKICAgICAgICB0cmVlRm9ya1Byb3ZpZGVyID0gd29ya0luUHJvZ3Jlc3MyOwogICAgICAgIHRyZWVGb3JrQ291bnQgPSB0b3RhbENoaWxkcmVuOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHB1c2hUcmVlSWQod29ya0luUHJvZ3Jlc3MyLCB0b3RhbENoaWxkcmVuLCBpbmRleCkgewogICAgICAgIHdhcm5JZk5vdEh5ZHJhdGluZygpOwogICAgICAgIGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRJZDsKICAgICAgICBpZFN0YWNrW2lkU3RhY2tJbmRleCsrXSA9IHRyZWVDb250ZXh0T3ZlcmZsb3c7CiAgICAgICAgaWRTdGFja1tpZFN0YWNrSW5kZXgrK10gPSB0cmVlQ29udGV4dFByb3ZpZGVyOwogICAgICAgIHRyZWVDb250ZXh0UHJvdmlkZXIgPSB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgdmFyIGJhc2VJZFdpdGhMZWFkaW5nQml0ID0gdHJlZUNvbnRleHRJZDsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIgPSB0cmVlQ29udGV4dE92ZXJmbG93OwogICAgICAgIHZhciBiYXNlTGVuZ3RoID0gMzIgLSBjbHozMihiYXNlSWRXaXRoTGVhZGluZ0JpdCkgLSAxOwogICAgICAgIGJhc2VJZFdpdGhMZWFkaW5nQml0ICY9IH4oMSA8PCBiYXNlTGVuZ3RoKTsKICAgICAgICBpbmRleCArPSAxOwogICAgICAgIHZhciBsZW5ndGggPSAzMiAtIGNsejMyKHRvdGFsQ2hpbGRyZW4pICsgYmFzZUxlbmd0aDsKICAgICAgICBpZiAoMzAgPCBsZW5ndGgpIHsKICAgICAgICAgIHZhciBudW1iZXJPZk92ZXJmbG93Qml0cyA9IGJhc2VMZW5ndGggLSBiYXNlTGVuZ3RoICUgNTsKICAgICAgICAgIGxlbmd0aCA9IChiYXNlSWRXaXRoTGVhZGluZ0JpdCAmICgxIDw8IG51bWJlck9mT3ZlcmZsb3dCaXRzKSAtIDEpLnRvU3RyaW5nKDMyKTsKICAgICAgICAgIGJhc2VJZFdpdGhMZWFkaW5nQml0ID4+PSBudW1iZXJPZk92ZXJmbG93Qml0czsKICAgICAgICAgIGJhc2VMZW5ndGggLT0gbnVtYmVyT2ZPdmVyZmxvd0JpdHM7CiAgICAgICAgICB0cmVlQ29udGV4dElkID0gMSA8PCAzMiAtIGNsejMyKHRvdGFsQ2hpbGRyZW4pICsgYmFzZUxlbmd0aCB8IGluZGV4IDw8IGJhc2VMZW5ndGggfCBiYXNlSWRXaXRoTGVhZGluZ0JpdDsKICAgICAgICAgIHRyZWVDb250ZXh0T3ZlcmZsb3cgPSBsZW5ndGggKyB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgfSBlbHNlCiAgICAgICAgICB0cmVlQ29udGV4dElkID0gMSA8PCBsZW5ndGggfCBpbmRleCA8PCBiYXNlTGVuZ3RoIHwgYmFzZUlkV2l0aExlYWRpbmdCaXQsIHRyZWVDb250ZXh0T3ZlcmZsb3cgPSB3b3JrSW5Qcm9ncmVzczI7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcHVzaE1hdGVyaWFsaXplZFRyZWVJZCh3b3JrSW5Qcm9ncmVzczIpIHsKICAgICAgICB3YXJuSWZOb3RIeWRyYXRpbmcoKTsKICAgICAgICBudWxsICE9PSB3b3JrSW5Qcm9ncmVzczIucmV0dXJuICYmIChwdXNoVHJlZUZvcmsod29ya0luUHJvZ3Jlc3MyLCAxKSwgcHVzaFRyZWVJZCh3b3JrSW5Qcm9ncmVzczIsIDEsIDApKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwb3BUcmVlQ29udGV4dCh3b3JrSW5Qcm9ncmVzczIpIHsKICAgICAgICBmb3IgKDsgd29ya0luUHJvZ3Jlc3MyID09PSB0cmVlRm9ya1Byb3ZpZGVyOyApCiAgICAgICAgICB0cmVlRm9ya1Byb3ZpZGVyID0gZm9ya1N0YWNrWy0tZm9ya1N0YWNrSW5kZXhdLCBmb3JrU3RhY2tbZm9ya1N0YWNrSW5kZXhdID0gbnVsbCwgdHJlZUZvcmtDb3VudCA9IGZvcmtTdGFja1stLWZvcmtTdGFja0luZGV4XSwgZm9ya1N0YWNrW2ZvcmtTdGFja0luZGV4XSA9IG51bGw7CiAgICAgICAgZm9yICg7IHdvcmtJblByb2dyZXNzMiA9PT0gdHJlZUNvbnRleHRQcm92aWRlcjsgKQogICAgICAgICAgdHJlZUNvbnRleHRQcm92aWRlciA9IGlkU3RhY2tbLS1pZFN0YWNrSW5kZXhdLCBpZFN0YWNrW2lkU3RhY2tJbmRleF0gPSBudWxsLCB0cmVlQ29udGV4dE92ZXJmbG93ID0gaWRTdGFja1stLWlkU3RhY2tJbmRleF0sIGlkU3RhY2tbaWRTdGFja0luZGV4XSA9IG51bGwsIHRyZWVDb250ZXh0SWQgPSBpZFN0YWNrWy0taWRTdGFja0luZGV4XSwgaWRTdGFja1tpZFN0YWNrSW5kZXhdID0gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRTdXNwZW5kZWRUcmVlQ29udGV4dCgpIHsKICAgICAgICB3YXJuSWZOb3RIeWRyYXRpbmcoKTsKICAgICAgICByZXR1cm4gbnVsbCAhPT0gdHJlZUNvbnRleHRQcm92aWRlciA/IHsgaWQ6IHRyZWVDb250ZXh0SWQsIG92ZXJmbG93OiB0cmVlQ29udGV4dE92ZXJmbG93IH0gOiBudWxsOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc3RvcmVTdXNwZW5kZWRUcmVlQ29udGV4dCh3b3JrSW5Qcm9ncmVzczIsIHN1c3BlbmRlZENvbnRleHQpIHsKICAgICAgICB3YXJuSWZOb3RIeWRyYXRpbmcoKTsKICAgICAgICBpZFN0YWNrW2lkU3RhY2tJbmRleCsrXSA9IHRyZWVDb250ZXh0SWQ7CiAgICAgICAgaWRTdGFja1tpZFN0YWNrSW5kZXgrK10gPSB0cmVlQ29udGV4dE92ZXJmbG93OwogICAgICAgIGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRQcm92aWRlcjsKICAgICAgICB0cmVlQ29udGV4dElkID0gc3VzcGVuZGVkQ29udGV4dC5pZDsKICAgICAgICB0cmVlQ29udGV4dE92ZXJmbG93ID0gc3VzcGVuZGVkQ29udGV4dC5vdmVyZmxvdzsKICAgICAgICB0cmVlQ29udGV4dFByb3ZpZGVyID0gd29ya0luUHJvZ3Jlc3MyOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHdhcm5JZk5vdEh5ZHJhdGluZygpIHsKICAgICAgICBpc0h5ZHJhdGluZyB8fCBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkV4cGVjdGVkIHRvIGJlIGh5ZHJhdGluZy4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYnVpbGRIeWRyYXRpb25EaWZmTm9kZShmaWJlciwgZGlzdGFuY2VGcm9tTGVhZikgewogICAgICAgIGlmIChudWxsID09PSBmaWJlci5yZXR1cm4pIHsKICAgICAgICAgIGlmIChudWxsID09PSBoeWRyYXRpb25EaWZmUm9vdERFVikKICAgICAgICAgICAgaHlkcmF0aW9uRGlmZlJvb3RERVYgPSB7CiAgICAgICAgICAgICAgZmliZXIsCiAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLAogICAgICAgICAgICAgIHNlcnZlclByb3BzOiB2b2lkIDAsCiAgICAgICAgICAgICAgc2VydmVyVGFpbDogW10sCiAgICAgICAgICAgICAgZGlzdGFuY2VGcm9tTGVhZgogICAgICAgICAgICB9OwogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmIChoeWRyYXRpb25EaWZmUm9vdERFVi5maWJlciAhPT0gZmliZXIpCiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAiU2F3IG11bHRpcGxlIGh5ZHJhdGlvbiBkaWZmIHJvb3RzIGluIGEgcGFzcy4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4iCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgaHlkcmF0aW9uRGlmZlJvb3RERVYuZGlzdGFuY2VGcm9tTGVhZiA+IGRpc3RhbmNlRnJvbUxlYWYgJiYgKGh5ZHJhdGlvbkRpZmZSb290REVWLmRpc3RhbmNlRnJvbUxlYWYgPSBkaXN0YW5jZUZyb21MZWFmKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBoeWRyYXRpb25EaWZmUm9vdERFVjsKICAgICAgICB9CiAgICAgICAgdmFyIHNpYmxpbmdzID0gYnVpbGRIeWRyYXRpb25EaWZmTm9kZSgKICAgICAgICAgIGZpYmVyLnJldHVybiwKICAgICAgICAgIGRpc3RhbmNlRnJvbUxlYWYgKyAxCiAgICAgICAgKS5jaGlsZHJlbjsKICAgICAgICBpZiAoMCA8IHNpYmxpbmdzLmxlbmd0aCAmJiBzaWJsaW5nc1tzaWJsaW5ncy5sZW5ndGggLSAxXS5maWJlciA9PT0gZmliZXIpCiAgICAgICAgICByZXR1cm4gc2libGluZ3MgPSBzaWJsaW5nc1tzaWJsaW5ncy5sZW5ndGggLSAxXSwgc2libGluZ3MuZGlzdGFuY2VGcm9tTGVhZiA+IGRpc3RhbmNlRnJvbUxlYWYgJiYgKHNpYmxpbmdzLmRpc3RhbmNlRnJvbUxlYWYgPSBkaXN0YW5jZUZyb21MZWFmKSwgc2libGluZ3M7CiAgICAgICAgZGlzdGFuY2VGcm9tTGVhZiA9IHsKICAgICAgICAgIGZpYmVyLAogICAgICAgICAgY2hpbGRyZW46IFtdLAogICAgICAgICAgc2VydmVyUHJvcHM6IHZvaWQgMCwKICAgICAgICAgIHNlcnZlclRhaWw6IFtdLAogICAgICAgICAgZGlzdGFuY2VGcm9tTGVhZgogICAgICAgIH07CiAgICAgICAgc2libGluZ3MucHVzaChkaXN0YW5jZUZyb21MZWFmKTsKICAgICAgICByZXR1cm4gZGlzdGFuY2VGcm9tTGVhZjsKICAgICAgfQogICAgICBmdW5jdGlvbiB3YXJuSWZIeWRyYXRpbmcoKSB7CiAgICAgICAgaXNIeWRyYXRpbmcgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICJXZSBzaG91bGQgbm90IGJlIGh5ZHJhdGluZyBoZXJlLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhIGJ1Zy4iCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB3YXJuTm9uSHlkcmF0ZWRJbnN0YW5jZShmaWJlciwgcmVqZWN0ZWRDYW5kaWRhdGUpIHsKICAgICAgICBkaWRTdXNwZW5kT3JFcnJvckRFViB8fCAoZmliZXIgPSBidWlsZEh5ZHJhdGlvbkRpZmZOb2RlKGZpYmVyLCAwKSwgZmliZXIuc2VydmVyUHJvcHMgPSBudWxsLCBudWxsICE9PSByZWplY3RlZENhbmRpZGF0ZSAmJiAocmVqZWN0ZWRDYW5kaWRhdGUgPSBkZXNjcmliZUh5ZHJhdGFibGVJbnN0YW5jZUZvckRldldhcm5pbmdzKHJlamVjdGVkQ2FuZGlkYXRlKSwgZmliZXIuc2VydmVyVGFpbC5wdXNoKHJlamVjdGVkQ2FuZGlkYXRlKSkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHRocm93T25IeWRyYXRpb25NaXNtYXRjaChmaWJlcikgewogICAgICAgIHZhciBmcm9tVGV4dCA9IDEgPCBhcmd1bWVudHMubGVuZ3RoICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzFdID8gYXJndW1lbnRzWzFdIDogZmFsc2UsIGRpZmYgPSAiIiwgZGlmZlJvb3QgPSBoeWRyYXRpb25EaWZmUm9vdERFVjsKICAgICAgICBudWxsICE9PSBkaWZmUm9vdCAmJiAoaHlkcmF0aW9uRGlmZlJvb3RERVYgPSBudWxsLCBkaWZmID0gZGVzY3JpYmVEaWZmKGRpZmZSb290KSk7CiAgICAgICAgcXVldWVIeWRyYXRpb25FcnJvcigKICAgICAgICAgIGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKAogICAgICAgICAgICBFcnJvcigKICAgICAgICAgICAgICAiSHlkcmF0aW9uIGZhaWxlZCBiZWNhdXNlIHRoZSBzZXJ2ZXIgcmVuZGVyZWQgIiArIChmcm9tVGV4dCA/ICJ0ZXh0IiA6ICJIVE1MIikgKyAiIGRpZG4ndCBtYXRjaCB0aGUgY2xpZW50LiBBcyBhIHJlc3VsdCB0aGlzIHRyZWUgd2lsbCBiZSByZWdlbmVyYXRlZCBvbiB0aGUgY2xpZW50LiBUaGlzIGNhbiBoYXBwZW4gaWYgYSBTU1ItZWQgQ2xpZW50IENvbXBvbmVudCB1c2VkOlxuXG4tIEEgc2VydmVyL2NsaWVudCBicmFuY2ggYGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJylgLlxuLSBWYXJpYWJsZSBpbnB1dCBzdWNoIGFzIGBEYXRlLm5vdygpYCBvciBgTWF0aC5yYW5kb20oKWAgd2hpY2ggY2hhbmdlcyBlYWNoIHRpbWUgaXQncyBjYWxsZWQuXG4tIERhdGUgZm9ybWF0dGluZyBpbiBhIHVzZXIncyBsb2NhbGUgd2hpY2ggZG9lc24ndCBtYXRjaCB0aGUgc2VydmVyLlxuLSBFeHRlcm5hbCBjaGFuZ2luZyBkYXRhIHdpdGhvdXQgc2VuZGluZyBhIHNuYXBzaG90IG9mIGl0IGFsb25nIHdpdGggdGhlIEhUTUwuXG4tIEludmFsaWQgSFRNTCB0YWcgbmVzdGluZy5cblxuSXQgY2FuIGFsc28gaGFwcGVuIGlmIHRoZSBjbGllbnQgaGFzIGEgYnJvd3NlciBleHRlbnNpb24gaW5zdGFsbGVkIHdoaWNoIG1lc3NlcyB3aXRoIHRoZSBIVE1MIGJlZm9yZSBSZWFjdCBsb2FkZWQuXG5cbmh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvaHlkcmF0aW9uLW1pc21hdGNoIiArIGRpZmYKICAgICAgICAgICAgKSwKICAgICAgICAgICAgZmliZXIKICAgICAgICAgICkKICAgICAgICApOwogICAgICAgIHRocm93IEh5ZHJhdGlvbk1pc21hdGNoRXhjZXB0aW9uOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHByZXBhcmVUb0h5ZHJhdGVIb3N0SW5zdGFuY2UoZmliZXIpIHsKICAgICAgICB2YXIgZGlkSHlkcmF0ZSA9IGZpYmVyLnN0YXRlTm9kZTsKICAgICAgICB2YXIgdHlwZSA9IGZpYmVyLnR5cGUsIHByb3BzID0gZmliZXIubWVtb2l6ZWRQcm9wczsKICAgICAgICBkaWRIeWRyYXRlW2ludGVybmFsSW5zdGFuY2VLZXldID0gZmliZXI7CiAgICAgICAgZGlkSHlkcmF0ZVtpbnRlcm5hbFByb3BzS2V5XSA9IHByb3BzOwogICAgICAgIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQodHlwZSwgcHJvcHMpOwogICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgY2FzZSAiZGlhbG9nIjoKICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgiY2FuY2VsIiwgZGlkSHlkcmF0ZSk7CiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoImNsb3NlIiwgZGlkSHlkcmF0ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiaWZyYW1lIjoKICAgICAgICAgIGNhc2UgIm9iamVjdCI6CiAgICAgICAgICBjYXNlICJlbWJlZCI6CiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoImxvYWQiLCBkaWRIeWRyYXRlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJ2aWRlbyI6CiAgICAgICAgICBjYXNlICJhdWRpbyI6CiAgICAgICAgICAgIGZvciAodHlwZSA9IDA7IHR5cGUgPCBtZWRpYUV2ZW50VHlwZXMubGVuZ3RoOyB0eXBlKyspCiAgICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChtZWRpYUV2ZW50VHlwZXNbdHlwZV0sIGRpZEh5ZHJhdGUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgInNvdXJjZSI6CiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoImVycm9yIiwgZGlkSHlkcmF0ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiaW1nIjoKICAgICAgICAgIGNhc2UgImltYWdlIjoKICAgICAgICAgIGNhc2UgImxpbmsiOgogICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJlcnJvciIsIGRpZEh5ZHJhdGUpOwogICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJsb2FkIiwgZGlkSHlkcmF0ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiZGV0YWlscyI6CiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoInRvZ2dsZSIsIGRpZEh5ZHJhdGUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImlucHV0IjoKICAgICAgICAgICAgY2hlY2tDb250cm9sbGVkVmFsdWVQcm9wcygiaW5wdXQiLCBwcm9wcyk7CiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoImludmFsaWQiLCBkaWRIeWRyYXRlKTsKICAgICAgICAgICAgdmFsaWRhdGVJbnB1dFByb3BzKGRpZEh5ZHJhdGUsIHByb3BzKTsKICAgICAgICAgICAgaW5pdElucHV0KAogICAgICAgICAgICAgIGRpZEh5ZHJhdGUsCiAgICAgICAgICAgICAgcHJvcHMudmFsdWUsCiAgICAgICAgICAgICAgcHJvcHMuZGVmYXVsdFZhbHVlLAogICAgICAgICAgICAgIHByb3BzLmNoZWNrZWQsCiAgICAgICAgICAgICAgcHJvcHMuZGVmYXVsdENoZWNrZWQsCiAgICAgICAgICAgICAgcHJvcHMudHlwZSwKICAgICAgICAgICAgICBwcm9wcy5uYW1lLAogICAgICAgICAgICAgIHRydWUKICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJvcHRpb24iOgogICAgICAgICAgICB2YWxpZGF0ZU9wdGlvblByb3BzKGRpZEh5ZHJhdGUsIHByb3BzKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJzZWxlY3QiOgogICAgICAgICAgICBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKCJzZWxlY3QiLCBwcm9wcyk7CiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoImludmFsaWQiLCBkaWRIeWRyYXRlKTsKICAgICAgICAgICAgdmFsaWRhdGVTZWxlY3RQcm9wcyhkaWRIeWRyYXRlLCBwcm9wcyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAidGV4dGFyZWEiOgogICAgICAgICAgICBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKCJ0ZXh0YXJlYSIsIHByb3BzKSwgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgiaW52YWxpZCIsIGRpZEh5ZHJhdGUpLCB2YWxpZGF0ZVRleHRhcmVhUHJvcHMoZGlkSHlkcmF0ZSwgcHJvcHMpLCBpbml0VGV4dGFyZWEoCiAgICAgICAgICAgICAgZGlkSHlkcmF0ZSwKICAgICAgICAgICAgICBwcm9wcy52YWx1ZSwKICAgICAgICAgICAgICBwcm9wcy5kZWZhdWx0VmFsdWUsCiAgICAgICAgICAgICAgcHJvcHMuY2hpbGRyZW4KICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgdHlwZSA9IHByb3BzLmNoaWxkcmVuOwogICAgICAgICJzdHJpbmciICE9PSB0eXBlb2YgdHlwZSAmJiAibnVtYmVyIiAhPT0gdHlwZW9mIHR5cGUgJiYgImJpZ2ludCIgIT09IHR5cGVvZiB0eXBlIHx8IGRpZEh5ZHJhdGUudGV4dENvbnRlbnQgPT09ICIiICsgdHlwZSB8fCB0cnVlID09PSBwcm9wcy5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgfHwgY2hlY2tGb3JVbm1hdGNoZWRUZXh0KGRpZEh5ZHJhdGUudGV4dENvbnRlbnQsIHR5cGUpID8gKG51bGwgIT0gcHJvcHMucG9wb3ZlciAmJiAobGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgiYmVmb3JldG9nZ2xlIiwgZGlkSHlkcmF0ZSksIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoInRvZ2dsZSIsIGRpZEh5ZHJhdGUpKSwgbnVsbCAhPSBwcm9wcy5vblNjcm9sbCAmJiBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJzY3JvbGwiLCBkaWRIeWRyYXRlKSwgbnVsbCAhPSBwcm9wcy5vblNjcm9sbEVuZCAmJiBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJzY3JvbGxlbmQiLCBkaWRIeWRyYXRlKSwgbnVsbCAhPSBwcm9wcy5vbkNsaWNrICYmIChkaWRIeWRyYXRlLm9uY2xpY2sgPSBub29wJDEpLCBkaWRIeWRyYXRlID0gdHJ1ZSkgOiBkaWRIeWRyYXRlID0gZmFsc2U7CiAgICAgICAgZGlkSHlkcmF0ZSB8fCB0aHJvd09uSHlkcmF0aW9uTWlzbWF0Y2goZmliZXIsIHRydWUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHBvcFRvTmV4dEhvc3RQYXJlbnQoZmliZXIpIHsKICAgICAgICBmb3IgKGh5ZHJhdGlvblBhcmVudEZpYmVyID0gZmliZXIucmV0dXJuOyBoeWRyYXRpb25QYXJlbnRGaWJlcjsgKQogICAgICAgICAgc3dpdGNoIChoeWRyYXRpb25QYXJlbnRGaWJlci50YWcpIHsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBjYXNlIDMxOgogICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICAgIHJvb3RPclNpbmdsZXRvbkNvbnRleHQgPSBmYWxzZTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNhc2UgMjc6CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICByb290T3JTaW5nbGV0b25Db250ZXh0ID0gdHJ1ZTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBoeWRyYXRpb25QYXJlbnRGaWJlci5yZXR1cm47CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcG9wSHlkcmF0aW9uU3RhdGUoZmliZXIpIHsKICAgICAgICBpZiAoZmliZXIgIT09IGh5ZHJhdGlvblBhcmVudEZpYmVyKSByZXR1cm4gZmFsc2U7CiAgICAgICAgaWYgKCFpc0h5ZHJhdGluZykKICAgICAgICAgIHJldHVybiBwb3BUb05leHRIb3N0UGFyZW50KGZpYmVyKSwgaXNIeWRyYXRpbmcgPSB0cnVlLCBmYWxzZTsKICAgICAgICB2YXIgdGFnID0gZmliZXIudGFnLCBKU0NvbXBpbGVyX3RlbXA7CiAgICAgICAgaWYgKEpTQ29tcGlsZXJfdGVtcCA9IDMgIT09IHRhZyAmJiAyNyAhPT0gdGFnKSB7CiAgICAgICAgICBpZiAoSlNDb21waWxlcl90ZW1wID0gNSA9PT0gdGFnKQogICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPSBmaWJlci50eXBlLCBKU0NvbXBpbGVyX3RlbXAgPSAhKCJmb3JtIiAhPT0gSlNDb21waWxlcl90ZW1wICYmICJidXR0b24iICE9PSBKU0NvbXBpbGVyX3RlbXApIHx8IHNob3VsZFNldFRleHRDb250ZW50KGZpYmVyLnR5cGUsIGZpYmVyLm1lbW9pemVkUHJvcHMpOwogICAgICAgICAgSlNDb21waWxlcl90ZW1wID0gIUpTQ29tcGlsZXJfdGVtcDsKICAgICAgICB9CiAgICAgICAgaWYgKEpTQ29tcGlsZXJfdGVtcCAmJiBuZXh0SHlkcmF0YWJsZUluc3RhbmNlKSB7CiAgICAgICAgICBmb3IgKEpTQ29tcGlsZXJfdGVtcCA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2U7IEpTQ29tcGlsZXJfdGVtcDsgKSB7CiAgICAgICAgICAgIHZhciBkaWZmTm9kZSA9IGJ1aWxkSHlkcmF0aW9uRGlmZk5vZGUoZmliZXIsIDApLCBkZXNjcmlwdGlvbiA9IGRlc2NyaWJlSHlkcmF0YWJsZUluc3RhbmNlRm9yRGV2V2FybmluZ3MoSlNDb21waWxlcl90ZW1wKTsKICAgICAgICAgICAgZGlmZk5vZGUuc2VydmVyVGFpbC5wdXNoKGRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wID0gIlN1c3BlbnNlIiA9PT0gZGVzY3JpcHRpb24udHlwZSA/IGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlckh5ZHJhdGlvbkJvdW5kYXJ5KEpTQ29tcGlsZXJfdGVtcCkgOiBnZXROZXh0SHlkcmF0YWJsZShKU0NvbXBpbGVyX3RlbXAubmV4dFNpYmxpbmcpOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKGZpYmVyKTsKICAgICAgICB9CiAgICAgICAgcG9wVG9OZXh0SG9zdFBhcmVudChmaWJlcik7CiAgICAgICAgaWYgKDEzID09PSB0YWcpIHsKICAgICAgICAgIGZpYmVyID0gZmliZXIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgIGZpYmVyID0gbnVsbCAhPT0gZmliZXIgPyBmaWJlci5kZWh5ZHJhdGVkIDogbnVsbDsKICAgICAgICAgIGlmICghZmliZXIpCiAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICJFeHBlY3RlZCB0byBoYXZlIGEgaHlkcmF0ZWQgc3VzcGVuc2UgaW5zdGFuY2UuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgICApOwogICAgICAgICAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlckh5ZHJhdGlvbkJvdW5kYXJ5KGZpYmVyKTsKICAgICAgICB9IGVsc2UgaWYgKDMxID09PSB0YWcpIHsKICAgICAgICAgIGZpYmVyID0gZmliZXIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgIGZpYmVyID0gbnVsbCAhPT0gZmliZXIgPyBmaWJlci5kZWh5ZHJhdGVkIDogbnVsbDsKICAgICAgICAgIGlmICghZmliZXIpCiAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICJFeHBlY3RlZCB0byBoYXZlIGEgaHlkcmF0ZWQgc3VzcGVuc2UgaW5zdGFuY2UuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgICApOwogICAgICAgICAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlckh5ZHJhdGlvbkJvdW5kYXJ5KGZpYmVyKTsKICAgICAgICB9IGVsc2UKICAgICAgICAgIDI3ID09PSB0YWcgPyAodGFnID0gbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSwgaXNTaW5nbGV0b25TY29wZShmaWJlci50eXBlKSA/IChmaWJlciA9IHByZXZpb3VzSHlkcmF0YWJsZU9uRW50ZXJpbmdTY29wZWRTaW5nbGV0b24sIHByZXZpb3VzSHlkcmF0YWJsZU9uRW50ZXJpbmdTY29wZWRTaW5nbGV0b24gPSBudWxsLCBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZmliZXIpIDogbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IHRhZykgOiBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gaHlkcmF0aW9uUGFyZW50RmliZXIgPyBnZXROZXh0SHlkcmF0YWJsZShmaWJlci5zdGF0ZU5vZGUubmV4dFNpYmxpbmcpIDogbnVsbDsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZXNldEh5ZHJhdGlvblN0YXRlKCkgewogICAgICAgIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBoeWRyYXRpb25QYXJlbnRGaWJlciA9IG51bGw7CiAgICAgICAgZGlkU3VzcGVuZE9yRXJyb3JERVYgPSBpc0h5ZHJhdGluZyA9IGZhbHNlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZ3JhZGVIeWRyYXRpb25FcnJvcnNUb1JlY292ZXJhYmxlKCkgewogICAgICAgIHZhciBxdWV1ZWRFcnJvcnMgPSBoeWRyYXRpb25FcnJvcnM7CiAgICAgICAgbnVsbCAhPT0gcXVldWVkRXJyb3JzICYmIChudWxsID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyA/IHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzID0gcXVldWVkRXJyb3JzIDogd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMucHVzaC5hcHBseSgKICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzLAogICAgICAgICAgcXVldWVkRXJyb3JzCiAgICAgICAgKSwgaHlkcmF0aW9uRXJyb3JzID0gbnVsbCk7CiAgICAgICAgcmV0dXJuIHF1ZXVlZEVycm9yczsKICAgICAgfQogICAgICBmdW5jdGlvbiBxdWV1ZUh5ZHJhdGlvbkVycm9yKGVycm9yKSB7CiAgICAgICAgbnVsbCA9PT0gaHlkcmF0aW9uRXJyb3JzID8gaHlkcmF0aW9uRXJyb3JzID0gW2Vycm9yXSA6IGh5ZHJhdGlvbkVycm9ycy5wdXNoKGVycm9yKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbWl0UGVuZGluZ0h5ZHJhdGlvbldhcm5pbmdzKCkgewogICAgICAgIHZhciBkaWZmUm9vdCA9IGh5ZHJhdGlvbkRpZmZSb290REVWOwogICAgICAgIGlmIChudWxsICE9PSBkaWZmUm9vdCkgewogICAgICAgICAgaHlkcmF0aW9uRGlmZlJvb3RERVYgPSBudWxsOwogICAgICAgICAgZm9yICh2YXIgZGlmZiA9IGRlc2NyaWJlRGlmZihkaWZmUm9vdCk7IDAgPCBkaWZmUm9vdC5jaGlsZHJlbi5sZW5ndGg7ICkKICAgICAgICAgICAgZGlmZlJvb3QgPSBkaWZmUm9vdC5jaGlsZHJlblswXTsKICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKGRpZmZSb290LmZpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiQSB0cmVlIGh5ZHJhdGVkIGJ1dCBzb21lIGF0dHJpYnV0ZXMgb2YgdGhlIHNlcnZlciByZW5kZXJlZCBIVE1MIGRpZG4ndCBtYXRjaCB0aGUgY2xpZW50IHByb3BlcnRpZXMuIFRoaXMgd29uJ3QgYmUgcGF0Y2hlZCB1cC4gVGhpcyBjYW4gaGFwcGVuIGlmIGEgU1NSLWVkIENsaWVudCBDb21wb25lbnQgdXNlZDpcblxuLSBBIHNlcnZlci9jbGllbnQgYnJhbmNoIGBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpYC5cbi0gVmFyaWFibGUgaW5wdXQgc3VjaCBhcyBgRGF0ZS5ub3coKWAgb3IgYE1hdGgucmFuZG9tKClgIHdoaWNoIGNoYW5nZXMgZWFjaCB0aW1lIGl0J3MgY2FsbGVkLlxuLSBEYXRlIGZvcm1hdHRpbmcgaW4gYSB1c2VyJ3MgbG9jYWxlIHdoaWNoIGRvZXNuJ3QgbWF0Y2ggdGhlIHNlcnZlci5cbi0gRXh0ZXJuYWwgY2hhbmdpbmcgZGF0YSB3aXRob3V0IHNlbmRpbmcgYSBzbmFwc2hvdCBvZiBpdCBhbG9uZyB3aXRoIHRoZSBIVE1MLlxuLSBJbnZhbGlkIEhUTUwgdGFnIG5lc3RpbmcuXG5cbkl0IGNhbiBhbHNvIGhhcHBlbiBpZiB0aGUgY2xpZW50IGhhcyBhIGJyb3dzZXIgZXh0ZW5zaW9uIGluc3RhbGxlZCB3aGljaCBtZXNzZXMgd2l0aCB0aGUgSFRNTCBiZWZvcmUgUmVhY3QgbG9hZGVkLlxuXG4lcyVzIiwKICAgICAgICAgICAgICAiaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9oeWRyYXRpb24tbWlzbWF0Y2giLAogICAgICAgICAgICAgIGRpZmYKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiByZXNldENvbnRleHREZXBlbmRlbmNpZXMoKSB7CiAgICAgICAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSA9IG51bGw7CiAgICAgICAgaXNEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFViA9IGZhbHNlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHB1c2hQcm92aWRlcihwcm92aWRlckZpYmVyLCBjb250ZXh0LCBuZXh0VmFsdWUpIHsKICAgICAgICBwdXNoKHZhbHVlQ3Vyc29yLCBjb250ZXh0Ll9jdXJyZW50VmFsdWUsIHByb3ZpZGVyRmliZXIpOwogICAgICAgIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IG5leHRWYWx1ZTsKICAgICAgICBwdXNoKHJlbmRlcmVyQ3Vyc29yREVWLCBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIsIHByb3ZpZGVyRmliZXIpOwogICAgICAgIHZvaWQgMCAhPT0gY29udGV4dC5fY3VycmVudFJlbmRlcmVyICYmIG51bGwgIT09IGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAmJiBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgIT09IHJlbmRlcmVyU2lnaWwgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICJEZXRlY3RlZCBtdWx0aXBsZSByZW5kZXJlcnMgY29uY3VycmVudGx5IHJlbmRlcmluZyB0aGUgc2FtZSBjb250ZXh0IHByb3ZpZGVyLiBUaGlzIGlzIGN1cnJlbnRseSB1bnN1cHBvcnRlZC4iCiAgICAgICAgKTsKICAgICAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgPSByZW5kZXJlclNpZ2lsOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHBvcFByb3ZpZGVyKGNvbnRleHQsIHByb3ZpZGVyRmliZXIpIHsKICAgICAgICBjb250ZXh0Ll9jdXJyZW50VmFsdWUgPSB2YWx1ZUN1cnNvci5jdXJyZW50OwogICAgICAgIHZhciBjdXJyZW50UmVuZGVyZXIgPSByZW5kZXJlckN1cnNvckRFVi5jdXJyZW50OwogICAgICAgIHBvcChyZW5kZXJlckN1cnNvckRFViwgcHJvdmlkZXJGaWJlcik7CiAgICAgICAgY29udGV4dC5fY3VycmVudFJlbmRlcmVyID0gY3VycmVudFJlbmRlcmVyOwogICAgICAgIHBvcCh2YWx1ZUN1cnNvciwgcHJvdmlkZXJGaWJlcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2NoZWR1bGVDb250ZXh0V29ya09uUGFyZW50UGF0aChwYXJlbnQsIHJlbmRlckxhbmVzMiwgcHJvcGFnYXRpb25Sb290KSB7CiAgICAgICAgZm9yICg7IG51bGwgIT09IHBhcmVudDsgKSB7CiAgICAgICAgICB2YXIgYWx0ZXJuYXRlID0gcGFyZW50LmFsdGVybmF0ZTsKICAgICAgICAgIChwYXJlbnQuY2hpbGRMYW5lcyAmIHJlbmRlckxhbmVzMikgIT09IHJlbmRlckxhbmVzMiA/IChwYXJlbnQuY2hpbGRMYW5lcyB8PSByZW5kZXJMYW5lczIsIG51bGwgIT09IGFsdGVybmF0ZSAmJiAoYWx0ZXJuYXRlLmNoaWxkTGFuZXMgfD0gcmVuZGVyTGFuZXMyKSkgOiBudWxsICE9PSBhbHRlcm5hdGUgJiYgKGFsdGVybmF0ZS5jaGlsZExhbmVzICYgcmVuZGVyTGFuZXMyKSAhPT0gcmVuZGVyTGFuZXMyICYmIChhbHRlcm5hdGUuY2hpbGRMYW5lcyB8PSByZW5kZXJMYW5lczIpOwogICAgICAgICAgaWYgKHBhcmVudCA9PT0gcHJvcGFnYXRpb25Sb290KSBicmVhazsKICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5yZXR1cm47CiAgICAgICAgfQogICAgICAgIHBhcmVudCAhPT0gcHJvcGFnYXRpb25Sb290ICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiRXhwZWN0ZWQgdG8gZmluZCB0aGUgcHJvcGFnYXRpb24gcm9vdCB3aGVuIHNjaGVkdWxpbmcgY29udGV4dCB3b3JrLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHByb3BhZ2F0ZUNvbnRleHRDaGFuZ2VzKHdvcmtJblByb2dyZXNzMiwgY29udGV4dHMsIHJlbmRlckxhbmVzMiwgZm9yY2VQcm9wYWdhdGVFbnRpcmVUcmVlKSB7CiAgICAgICAgdmFyIGZpYmVyID0gd29ya0luUHJvZ3Jlc3MyLmNoaWxkOwogICAgICAgIG51bGwgIT09IGZpYmVyICYmIChmaWJlci5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgIGZvciAoOyBudWxsICE9PSBmaWJlcjsgKSB7CiAgICAgICAgICB2YXIgbGlzdCA9IGZpYmVyLmRlcGVuZGVuY2llczsKICAgICAgICAgIGlmIChudWxsICE9PSBsaXN0KSB7CiAgICAgICAgICAgIHZhciBuZXh0RmliZXIgPSBmaWJlci5jaGlsZDsKICAgICAgICAgICAgbGlzdCA9IGxpc3QuZmlyc3RDb250ZXh0OwogICAgICAgICAgICBhOiBmb3IgKDsgbnVsbCAhPT0gbGlzdDsgKSB7CiAgICAgICAgICAgICAgdmFyIGRlcGVuZGVuY3kgPSBsaXN0OwogICAgICAgICAgICAgIGxpc3QgPSBmaWJlcjsKICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRleHRzLmxlbmd0aDsgaSsrKQogICAgICAgICAgICAgICAgaWYgKGRlcGVuZGVuY3kuY29udGV4dCA9PT0gY29udGV4dHNbaV0pIHsKICAgICAgICAgICAgICAgICAgbGlzdC5sYW5lcyB8PSByZW5kZXJMYW5lczI7CiAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY3kgPSBsaXN0LmFsdGVybmF0ZTsKICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gZGVwZW5kZW5jeSAmJiAoZGVwZW5kZW5jeS5sYW5lcyB8PSByZW5kZXJMYW5lczIpOwogICAgICAgICAgICAgICAgICBzY2hlZHVsZUNvbnRleHRXb3JrT25QYXJlbnRQYXRoKAogICAgICAgICAgICAgICAgICAgIGxpc3QucmV0dXJuLAogICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMiwKICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgZm9yY2VQcm9wYWdhdGVFbnRpcmVUcmVlIHx8IChuZXh0RmliZXIgPSBudWxsKTsKICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBsaXN0ID0gZGVwZW5kZW5jeS5uZXh0OwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKDE4ID09PSBmaWJlci50YWcpIHsKICAgICAgICAgICAgbmV4dEZpYmVyID0gZmliZXIucmV0dXJuOwogICAgICAgICAgICBpZiAobnVsbCA9PT0gbmV4dEZpYmVyKQogICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgIldlIGp1c3QgY2FtZSBmcm9tIGEgcGFyZW50IHNvIHdlIG11c3QgaGF2ZSBoYWQgYSBwYXJlbnQuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHRGaWJlci5sYW5lcyB8PSByZW5kZXJMYW5lczI7CiAgICAgICAgICAgIGxpc3QgPSBuZXh0RmliZXIuYWx0ZXJuYXRlOwogICAgICAgICAgICBudWxsICE9PSBsaXN0ICYmIChsaXN0LmxhbmVzIHw9IHJlbmRlckxhbmVzMik7CiAgICAgICAgICAgIHNjaGVkdWxlQ29udGV4dFdvcmtPblBhcmVudFBhdGgoCiAgICAgICAgICAgICAgbmV4dEZpYmVyLAogICAgICAgICAgICAgIHJlbmRlckxhbmVzMiwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dEZpYmVyID0gbnVsbDsKICAgICAgICAgIH0gZWxzZSBuZXh0RmliZXIgPSBmaWJlci5jaGlsZDsKICAgICAgICAgIGlmIChudWxsICE9PSBuZXh0RmliZXIpIG5leHRGaWJlci5yZXR1cm4gPSBmaWJlcjsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZm9yIChuZXh0RmliZXIgPSBmaWJlcjsgbnVsbCAhPT0gbmV4dEZpYmVyOyApIHsKICAgICAgICAgICAgICBpZiAobmV4dEZpYmVyID09PSB3b3JrSW5Qcm9ncmVzczIpIHsKICAgICAgICAgICAgICAgIG5leHRGaWJlciA9IG51bGw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZmliZXIgPSBuZXh0RmliZXIuc2libGluZzsKICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gZmliZXIpIHsKICAgICAgICAgICAgICAgIGZpYmVyLnJldHVybiA9IG5leHRGaWJlci5yZXR1cm47CiAgICAgICAgICAgICAgICBuZXh0RmliZXIgPSBmaWJlcjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBuZXh0RmliZXIgPSBuZXh0RmliZXIucmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICBmaWJlciA9IG5leHRGaWJlcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcHJvcGFnYXRlUGFyZW50Q29udGV4dENoYW5nZXMoY3VycmVudDIsIHdvcmtJblByb2dyZXNzMiwgcmVuZGVyTGFuZXMyLCBmb3JjZVByb3BhZ2F0ZUVudGlyZVRyZWUpIHsKICAgICAgICBjdXJyZW50MiA9IG51bGw7CiAgICAgICAgZm9yICh2YXIgcGFyZW50ID0gd29ya0luUHJvZ3Jlc3MyLCBpc0luc2lkZVByb3BhZ2F0aW9uQmFpbG91dCA9IGZhbHNlOyBudWxsICE9PSBwYXJlbnQ7ICkgewogICAgICAgICAgaWYgKCFpc0luc2lkZVByb3BhZ2F0aW9uQmFpbG91dCkgewogICAgICAgICAgICBpZiAoMCAhPT0gKHBhcmVudC5mbGFncyAmIDUyNDI4OCkpIGlzSW5zaWRlUHJvcGFnYXRpb25CYWlsb3V0ID0gdHJ1ZTsKICAgICAgICAgICAgZWxzZSBpZiAoMCAhPT0gKHBhcmVudC5mbGFncyAmIDI2MjE0NCkpIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKDEwID09PSBwYXJlbnQudGFnKSB7CiAgICAgICAgICAgIHZhciBjdXJyZW50UGFyZW50ID0gcGFyZW50LmFsdGVybmF0ZTsKICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnRQYXJlbnQpCiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIlNob3VsZCBoYXZlIGEgY3VycmVudCBmaWJlci4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4iKTsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQubWVtb2l6ZWRQcm9wczsKICAgICAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnRQYXJlbnQpIHsKICAgICAgICAgICAgICB2YXIgY29udGV4dCA9IHBhcmVudC50eXBlOwogICAgICAgICAgICAgIG9iamVjdElzKHBhcmVudC5wZW5kaW5nUHJvcHMudmFsdWUsIGN1cnJlbnRQYXJlbnQudmFsdWUpIHx8IChudWxsICE9PSBjdXJyZW50MiA/IGN1cnJlbnQyLnB1c2goY29udGV4dCkgOiBjdXJyZW50MiA9IFtjb250ZXh0XSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSBpZiAocGFyZW50ID09PSBob3N0VHJhbnNpdGlvblByb3ZpZGVyQ3Vyc29yLmN1cnJlbnQpIHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IHBhcmVudC5hbHRlcm5hdGU7CiAgICAgICAgICAgIGlmIChudWxsID09PSBjdXJyZW50UGFyZW50KQogICAgICAgICAgICAgIHRocm93IEVycm9yKCJTaG91bGQgaGF2ZSBhIGN1cnJlbnQgZmliZXIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIik7CiAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQubWVtb2l6ZWRTdGF0ZS5tZW1vaXplZFN0YXRlICE9PSBwYXJlbnQubWVtb2l6ZWRTdGF0ZS5tZW1vaXplZFN0YXRlICYmIChudWxsICE9PSBjdXJyZW50MiA/IGN1cnJlbnQyLnB1c2goSG9zdFRyYW5zaXRpb25Db250ZXh0KSA6IGN1cnJlbnQyID0gW0hvc3RUcmFuc2l0aW9uQ29udGV4dF0pOwogICAgICAgICAgfQogICAgICAgICAgcGFyZW50ID0gcGFyZW50LnJldHVybjsKICAgICAgICB9CiAgICAgICAgbnVsbCAhPT0gY3VycmVudDIgJiYgcHJvcGFnYXRlQ29udGV4dENoYW5nZXMoCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgIHJlbmRlckxhbmVzMiwKICAgICAgICAgIGZvcmNlUHJvcGFnYXRlRW50aXJlVHJlZQogICAgICAgICk7CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDI2MjE0NDsKICAgICAgfQogICAgICBmdW5jdGlvbiBjaGVja0lmQ29udGV4dENoYW5nZWQoY3VycmVudERlcGVuZGVuY2llcykgewogICAgICAgIGZvciAoY3VycmVudERlcGVuZGVuY2llcyA9IGN1cnJlbnREZXBlbmRlbmNpZXMuZmlyc3RDb250ZXh0OyBudWxsICE9PSBjdXJyZW50RGVwZW5kZW5jaWVzOyApIHsKICAgICAgICAgIGlmICghb2JqZWN0SXMoCiAgICAgICAgICAgIGN1cnJlbnREZXBlbmRlbmNpZXMuY29udGV4dC5fY3VycmVudFZhbHVlLAogICAgICAgICAgICBjdXJyZW50RGVwZW5kZW5jaWVzLm1lbW9pemVkVmFsdWUKICAgICAgICAgICkpCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgY3VycmVudERlcGVuZGVuY2llcyA9IGN1cnJlbnREZXBlbmRlbmNpZXMubmV4dDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzMikgewogICAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEgPSB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbnVsbDsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIgPSB3b3JrSW5Qcm9ncmVzczIuZGVwZW5kZW5jaWVzOwogICAgICAgIG51bGwgIT09IHdvcmtJblByb2dyZXNzMiAmJiAod29ya0luUHJvZ3Jlc3MyLmZpcnN0Q29udGV4dCA9IG51bGwpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlYWRDb250ZXh0KGNvbnRleHQpIHsKICAgICAgICBpc0Rpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiQ29udGV4dCBjYW4gb25seSBiZSByZWFkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZy4gSW4gY2xhc3NlcywgeW91IGNhbiByZWFkIGl0IGluIHRoZSByZW5kZXIgbWV0aG9kIG9yIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90IGluc2lkZSBIb29rcyBsaWtlIHVzZVJlZHVjZXIoKSBvciB1c2VNZW1vKCkuIgogICAgICAgICk7CiAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0Rm9yQ29uc3VtZXIoY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSwgY29udGV4dCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVhZENvbnRleHREdXJpbmdSZWNvbmNpbGlhdGlvbihjb25zdW1lciwgY29udGV4dCkgewogICAgICAgIG51bGwgPT09IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEgJiYgcHJlcGFyZVRvUmVhZENvbnRleHQoY29uc3VtZXIpOwogICAgICAgIHJldHVybiByZWFkQ29udGV4dEZvckNvbnN1bWVyKGNvbnN1bWVyLCBjb250ZXh0KTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZWFkQ29udGV4dEZvckNvbnN1bWVyKGNvbnN1bWVyLCBjb250ZXh0KSB7CiAgICAgICAgdmFyIHZhbHVlID0gY29udGV4dC5fY3VycmVudFZhbHVlOwogICAgICAgIGNvbnRleHQgPSB7IGNvbnRleHQsIG1lbW9pemVkVmFsdWU6IHZhbHVlLCBuZXh0OiBudWxsIH07CiAgICAgICAgaWYgKG51bGwgPT09IGxhc3RDb250ZXh0RGVwZW5kZW5jeSkgewogICAgICAgICAgaWYgKG51bGwgPT09IGNvbnN1bWVyKQogICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAiQ29udGV4dCBjYW4gb25seSBiZSByZWFkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZy4gSW4gY2xhc3NlcywgeW91IGNhbiByZWFkIGl0IGluIHRoZSByZW5kZXIgbWV0aG9kIG9yIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90IGluc2lkZSBIb29rcyBsaWtlIHVzZVJlZHVjZXIoKSBvciB1c2VNZW1vKCkuIgogICAgICAgICAgICApOwogICAgICAgICAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gY29udGV4dDsKICAgICAgICAgIGNvbnN1bWVyLmRlcGVuZGVuY2llcyA9IHsKICAgICAgICAgICAgbGFuZXM6IDAsCiAgICAgICAgICAgIGZpcnN0Q29udGV4dDogY29udGV4dCwKICAgICAgICAgICAgX2RlYnVnVGhlbmFibGVTdGF0ZTogbnVsbAogICAgICAgICAgfTsKICAgICAgICAgIGNvbnN1bWVyLmZsYWdzIHw9IDUyNDI4ODsKICAgICAgICB9IGVsc2UgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbGFzdENvbnRleHREZXBlbmRlbmN5Lm5leHQgPSBjb250ZXh0OwogICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjcmVhdGVDYWNoZSgpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgY29udHJvbGxlcjogbmV3IEFib3J0Q29udHJvbGxlckxvY2FsKCksCiAgICAgICAgICBkYXRhOiAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpLAogICAgICAgICAgcmVmQ291bnQ6IDAKICAgICAgICB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJldGFpbkNhY2hlKGNhY2hlKSB7CiAgICAgICAgY2FjaGUuY29udHJvbGxlci5zaWduYWwuYWJvcnRlZCAmJiBjb25zb2xlLndhcm4oCiAgICAgICAgICAiQSBjYWNoZSBpbnN0YW5jZSB3YXMgcmV0YWluZWQgYWZ0ZXIgaXQgd2FzIGFscmVhZHkgZnJlZWQuIFRoaXMgbGlrZWx5IGluZGljYXRlcyBhIGJ1ZyBpbiBSZWFjdC4iCiAgICAgICAgKTsKICAgICAgICBjYWNoZS5yZWZDb3VudCsrOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlbGVhc2VDYWNoZShjYWNoZSkgewogICAgICAgIGNhY2hlLnJlZkNvdW50LS07CiAgICAgICAgMCA+IGNhY2hlLnJlZkNvdW50ICYmIGNvbnNvbGUud2FybigKICAgICAgICAgICJBIGNhY2hlIGluc3RhbmNlIHdhcyByZWxlYXNlZCBhZnRlciBpdCB3YXMgYWxyZWFkeSBmcmVlZC4gVGhpcyBsaWtlbHkgaW5kaWNhdGVzIGEgYnVnIGluIFJlYWN0LiIKICAgICAgICApOwogICAgICAgIDAgPT09IGNhY2hlLnJlZkNvdW50ICYmIHNjaGVkdWxlQ2FsbGJhY2skMihOb3JtYWxQcmlvcml0eSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBjYWNoZS5jb250cm9sbGVyLmFib3J0KCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc3RhcnRVcGRhdGVUaW1lckJ5TGFuZShsYW5lLCBtZXRob2QsIGZpYmVyKSB7CiAgICAgICAgaWYgKDAgIT09IChsYW5lICYgMTI3KSkKICAgICAgICAgIDAgPiBibG9ja2luZ1VwZGF0ZVRpbWUgJiYgKGJsb2NraW5nVXBkYXRlVGltZSA9IG5vdygpLCBibG9ja2luZ1VwZGF0ZVRhc2sgPSBjcmVhdGVUYXNrKG1ldGhvZCksIGJsb2NraW5nVXBkYXRlTWV0aG9kTmFtZSA9IG1ldGhvZCwgbnVsbCAhPSBmaWJlciAmJiAoYmxvY2tpbmdVcGRhdGVDb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikpLCAoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpICE9PSBOb0NvbnRleHQgJiYgKGNvbXBvbmVudEVmZmVjdFNwYXduZWRVcGRhdGUgPSB0cnVlLCBibG9ja2luZ1VwZGF0ZVR5cGUgPSBTUEFXTkVEX1VQREFURSksIGxhbmUgPSByZXNvbHZlRXZlbnRUaW1lU3RhbXAoKSwgbWV0aG9kID0gcmVzb2x2ZUV2ZW50VHlwZSgpLCBsYW5lICE9PSBibG9ja2luZ0V2ZW50UmVwZWF0VGltZSB8fCBtZXRob2QgIT09IGJsb2NraW5nRXZlbnRUeXBlID8gYmxvY2tpbmdFdmVudFJlcGVhdFRpbWUgPSAtMS4xIDogbnVsbCAhPT0gbWV0aG9kICYmIChibG9ja2luZ1VwZGF0ZVR5cGUgPSBTUEFXTkVEX1VQREFURSksIGJsb2NraW5nRXZlbnRUaW1lID0gbGFuZSwgYmxvY2tpbmdFdmVudFR5cGUgPSBtZXRob2QpOwogICAgICAgIGVsc2UgaWYgKDAgIT09IChsYW5lICYgNDE5NDA0OCkgJiYgMCA+IHRyYW5zaXRpb25VcGRhdGVUaW1lICYmICh0cmFuc2l0aW9uVXBkYXRlVGltZSA9IG5vdygpLCB0cmFuc2l0aW9uVXBkYXRlVGFzayA9IGNyZWF0ZVRhc2sobWV0aG9kKSwgdHJhbnNpdGlvblVwZGF0ZU1ldGhvZE5hbWUgPSBtZXRob2QsIG51bGwgIT0gZmliZXIgJiYgKHRyYW5zaXRpb25VcGRhdGVDb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikpLCAwID4gdHJhbnNpdGlvblN0YXJ0VGltZSkpIHsKICAgICAgICAgIGxhbmUgPSByZXNvbHZlRXZlbnRUaW1lU3RhbXAoKTsKICAgICAgICAgIG1ldGhvZCA9IHJlc29sdmVFdmVudFR5cGUoKTsKICAgICAgICAgIGlmIChsYW5lICE9PSB0cmFuc2l0aW9uRXZlbnRSZXBlYXRUaW1lIHx8IG1ldGhvZCAhPT0gdHJhbnNpdGlvbkV2ZW50VHlwZSkKICAgICAgICAgICAgdHJhbnNpdGlvbkV2ZW50UmVwZWF0VGltZSA9IC0xLjE7CiAgICAgICAgICB0cmFuc2l0aW9uRXZlbnRUaW1lID0gbGFuZTsKICAgICAgICAgIHRyYW5zaXRpb25FdmVudFR5cGUgPSBtZXRob2Q7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHN0YXJ0SG9zdEFjdGlvblRpbWVyKGZpYmVyKSB7CiAgICAgICAgaWYgKDAgPiBibG9ja2luZ1VwZGF0ZVRpbWUpIHsKICAgICAgICAgIGJsb2NraW5nVXBkYXRlVGltZSA9IG5vdygpOwogICAgICAgICAgYmxvY2tpbmdVcGRhdGVUYXNrID0gbnVsbCAhPSBmaWJlci5fZGVidWdUYXNrID8gZmliZXIuX2RlYnVnVGFzayA6IG51bGw7CiAgICAgICAgICAoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpICE9PSBOb0NvbnRleHQgJiYgKGJsb2NraW5nVXBkYXRlVHlwZSA9IFNQQVdORURfVVBEQVRFKTsKICAgICAgICAgIHZhciBuZXdFdmVudFRpbWUgPSByZXNvbHZlRXZlbnRUaW1lU3RhbXAoKSwgbmV3RXZlbnRUeXBlID0gcmVzb2x2ZUV2ZW50VHlwZSgpOwogICAgICAgICAgbmV3RXZlbnRUaW1lICE9PSBibG9ja2luZ0V2ZW50UmVwZWF0VGltZSB8fCBuZXdFdmVudFR5cGUgIT09IGJsb2NraW5nRXZlbnRUeXBlID8gYmxvY2tpbmdFdmVudFJlcGVhdFRpbWUgPSAtMS4xIDogbnVsbCAhPT0gbmV3RXZlbnRUeXBlICYmIChibG9ja2luZ1VwZGF0ZVR5cGUgPSBTUEFXTkVEX1VQREFURSk7CiAgICAgICAgICBibG9ja2luZ0V2ZW50VGltZSA9IG5ld0V2ZW50VGltZTsKICAgICAgICAgIGJsb2NraW5nRXZlbnRUeXBlID0gbmV3RXZlbnRUeXBlOwogICAgICAgIH0KICAgICAgICBpZiAoMCA+IHRyYW5zaXRpb25VcGRhdGVUaW1lICYmICh0cmFuc2l0aW9uVXBkYXRlVGltZSA9IG5vdygpLCB0cmFuc2l0aW9uVXBkYXRlVGFzayA9IG51bGwgIT0gZmliZXIuX2RlYnVnVGFzayA/IGZpYmVyLl9kZWJ1Z1Rhc2sgOiBudWxsLCAwID4gdHJhbnNpdGlvblN0YXJ0VGltZSkpIHsKICAgICAgICAgIGZpYmVyID0gcmVzb2x2ZUV2ZW50VGltZVN0YW1wKCk7CiAgICAgICAgICBuZXdFdmVudFRpbWUgPSByZXNvbHZlRXZlbnRUeXBlKCk7CiAgICAgICAgICBpZiAoZmliZXIgIT09IHRyYW5zaXRpb25FdmVudFJlcGVhdFRpbWUgfHwgbmV3RXZlbnRUaW1lICE9PSB0cmFuc2l0aW9uRXZlbnRUeXBlKQogICAgICAgICAgICB0cmFuc2l0aW9uRXZlbnRSZXBlYXRUaW1lID0gLTEuMTsKICAgICAgICAgIHRyYW5zaXRpb25FdmVudFRpbWUgPSBmaWJlcjsKICAgICAgICAgIHRyYW5zaXRpb25FdmVudFR5cGUgPSBuZXdFdmVudFRpbWU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKSB7CiAgICAgICAgdmFyIHByZXZFZmZlY3REdXJhdGlvbiA9IHByb2ZpbGVyRWZmZWN0RHVyYXRpb247CiAgICAgICAgcHJvZmlsZXJFZmZlY3REdXJhdGlvbiA9IDA7CiAgICAgICAgcmV0dXJuIHByZXZFZmZlY3REdXJhdGlvbjsKICAgICAgfQogICAgICBmdW5jdGlvbiBwb3BOZXN0ZWRFZmZlY3REdXJhdGlvbnMocHJldkVmZmVjdER1cmF0aW9uKSB7CiAgICAgICAgdmFyIGVsYXBzZWRUaW1lID0gcHJvZmlsZXJFZmZlY3REdXJhdGlvbjsKICAgICAgICBwcm9maWxlckVmZmVjdER1cmF0aW9uID0gcHJldkVmZmVjdER1cmF0aW9uOwogICAgICAgIHJldHVybiBlbGFwc2VkVGltZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBidWJibGVOZXN0ZWRFZmZlY3REdXJhdGlvbnMocHJldkVmZmVjdER1cmF0aW9uKSB7CiAgICAgICAgdmFyIGVsYXBzZWRUaW1lID0gcHJvZmlsZXJFZmZlY3REdXJhdGlvbjsKICAgICAgICBwcm9maWxlckVmZmVjdER1cmF0aW9uICs9IHByZXZFZmZlY3REdXJhdGlvbjsKICAgICAgICByZXR1cm4gZWxhcHNlZFRpbWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVzZXRDb21wb25lbnRFZmZlY3RUaW1lcnMoKSB7CiAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSA9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSA9IC0xLjE7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcHVzaENvbXBvbmVudEVmZmVjdFN0YXJ0KCkgewogICAgICAgIHZhciBwcmV2RWZmZWN0U3RhcnQgPSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWU7CiAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lID0gLTEuMTsKICAgICAgICByZXR1cm4gcHJldkVmZmVjdFN0YXJ0OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCkgewogICAgICAgIDAgPD0gcHJldkVmZmVjdFN0YXJ0ICYmIChjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgPSBwcmV2RWZmZWN0U3RhcnQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHB1c2hDb21wb25lbnRFZmZlY3REdXJhdGlvbigpIHsKICAgICAgICB2YXIgcHJldkVmZmVjdER1cmF0aW9uID0gY29tcG9uZW50RWZmZWN0RHVyYXRpb247CiAgICAgICAgY29tcG9uZW50RWZmZWN0RHVyYXRpb24gPSAtMDsKICAgICAgICByZXR1cm4gcHJldkVmZmVjdER1cmF0aW9uOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHBvcENvbXBvbmVudEVmZmVjdER1cmF0aW9uKHByZXZFZmZlY3REdXJhdGlvbikgewogICAgICAgIDAgPD0gcHJldkVmZmVjdER1cmF0aW9uICYmIChjb21wb25lbnRFZmZlY3REdXJhdGlvbiA9IHByZXZFZmZlY3REdXJhdGlvbik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcHVzaENvbXBvbmVudEVmZmVjdEVycm9ycygpIHsKICAgICAgICB2YXIgcHJldkVycm9ycyA9IGNvbXBvbmVudEVmZmVjdEVycm9yczsKICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnMgPSBudWxsOwogICAgICAgIHJldHVybiBwcmV2RXJyb3JzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHB1c2hDb21wb25lbnRFZmZlY3REaWRTcGF3blVwZGF0ZSgpIHsKICAgICAgICB2YXIgcHJldiA9IGNvbXBvbmVudEVmZmVjdFNwYXduZWRVcGRhdGU7CiAgICAgICAgY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSA9IGZhbHNlOwogICAgICAgIHJldHVybiBwcmV2OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHN0YXJ0UHJvZmlsZXJUaW1lcihmaWJlcikgewogICAgICAgIHByb2ZpbGVyU3RhcnRUaW1lID0gbm93KCk7CiAgICAgICAgMCA+IGZpYmVyLmFjdHVhbFN0YXJ0VGltZSAmJiAoZmliZXIuYWN0dWFsU3RhcnRUaW1lID0gcHJvZmlsZXJTdGFydFRpbWUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRHVyYXRpb24oZmliZXIpIHsKICAgICAgICBpZiAoMCA8PSBwcm9maWxlclN0YXJ0VGltZSkgewogICAgICAgICAgdmFyIGVsYXBzZWRUaW1lID0gbm93KCkgLSBwcm9maWxlclN0YXJ0VGltZTsKICAgICAgICAgIGZpYmVyLmFjdHVhbER1cmF0aW9uICs9IGVsYXBzZWRUaW1lOwogICAgICAgICAgZmliZXIuc2VsZkJhc2VEdXJhdGlvbiA9IGVsYXBzZWRUaW1lOwogICAgICAgICAgcHJvZmlsZXJTdGFydFRpbWUgPSAtMTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmRJbmNvbXBsZXRlRHVyYXRpb24oZmliZXIpIHsKICAgICAgICBpZiAoMCA8PSBwcm9maWxlclN0YXJ0VGltZSkgewogICAgICAgICAgdmFyIGVsYXBzZWRUaW1lID0gbm93KCkgLSBwcm9maWxlclN0YXJ0VGltZTsKICAgICAgICAgIGZpYmVyLmFjdHVhbER1cmF0aW9uICs9IGVsYXBzZWRUaW1lOwogICAgICAgICAgcHJvZmlsZXJTdGFydFRpbWUgPSAtMTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVjb3JkRWZmZWN0RHVyYXRpb24oKSB7CiAgICAgICAgaWYgKDAgPD0gcHJvZmlsZXJTdGFydFRpbWUpIHsKICAgICAgICAgIHZhciBlbmRUaW1lID0gbm93KCksIGVsYXBzZWRUaW1lID0gZW5kVGltZSAtIHByb2ZpbGVyU3RhcnRUaW1lOwogICAgICAgICAgcHJvZmlsZXJTdGFydFRpbWUgPSAtMTsKICAgICAgICAgIHByb2ZpbGVyRWZmZWN0RHVyYXRpb24gKz0gZWxhcHNlZFRpbWU7CiAgICAgICAgICBjb21wb25lbnRFZmZlY3REdXJhdGlvbiArPSBlbGFwc2VkVGltZTsKICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgPSBlbmRUaW1lOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiByZWNvcmRFZmZlY3RFcnJvcihlcnJvckluZm8pIHsKICAgICAgICBudWxsID09PSBjb21wb25lbnRFZmZlY3RFcnJvcnMgJiYgKGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IFtdKTsKICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnMucHVzaChlcnJvckluZm8pOwogICAgICAgIG51bGwgPT09IGNvbW1pdEVycm9ycyAmJiAoY29tbWl0RXJyb3JzID0gW10pOwogICAgICAgIGNvbW1pdEVycm9ycy5wdXNoKGVycm9ySW5mbyk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc3RhcnRFZmZlY3RUaW1lcigpIHsKICAgICAgICBwcm9maWxlclN0YXJ0VGltZSA9IG5vdygpOwogICAgICAgIDAgPiBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiYgKGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSA9IHByb2ZpbGVyU3RhcnRUaW1lKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKGZpYmVyKSB7CiAgICAgICAgZm9yICh2YXIgY2hpbGQgPSBmaWJlci5jaGlsZDsgY2hpbGQ7ICkKICAgICAgICAgIGZpYmVyLmFjdHVhbER1cmF0aW9uICs9IGNoaWxkLmFjdHVhbER1cmF0aW9uLCBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZW50YW5nbGVBc3luY0FjdGlvbih0cmFuc2l0aW9uLCB0aGVuYWJsZSkgewogICAgICAgIGlmIChudWxsID09PSBjdXJyZW50RW50YW5nbGVkTGlzdGVuZXJzKSB7CiAgICAgICAgICB2YXIgZW50YW5nbGVkTGlzdGVuZXJzID0gY3VycmVudEVudGFuZ2xlZExpc3RlbmVycyA9IFtdOwogICAgICAgICAgY3VycmVudEVudGFuZ2xlZFBlbmRpbmdDb3VudCA9IDA7CiAgICAgICAgICBjdXJyZW50RW50YW5nbGVkTGFuZSA9IHJlcXVlc3RUcmFuc2l0aW9uTGFuZSgpOwogICAgICAgICAgY3VycmVudEVudGFuZ2xlZEFjdGlvblRoZW5hYmxlID0gewogICAgICAgICAgICBzdGF0dXM6ICJwZW5kaW5nIiwKICAgICAgICAgICAgdmFsdWU6IHZvaWQgMCwKICAgICAgICAgICAgdGhlbjogZnVuY3Rpb24ocmVzb2x2ZSkgewogICAgICAgICAgICAgIGVudGFuZ2xlZExpc3RlbmVycy5wdXNoKHJlc29sdmUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBjdXJyZW50RW50YW5nbGVkUGVuZGluZ0NvdW50Kys7CiAgICAgICAgdGhlbmFibGUudGhlbihwaW5nRW5ndGFuZ2xlZEFjdGlvblNjb3BlLCBwaW5nRW5ndGFuZ2xlZEFjdGlvblNjb3BlKTsKICAgICAgICByZXR1cm4gdGhlbmFibGU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcGluZ0VuZ3RhbmdsZWRBY3Rpb25TY29wZSgpIHsKICAgICAgICBpZiAoMCA9PT0gLS1jdXJyZW50RW50YW5nbGVkUGVuZGluZ0NvdW50ICYmICgtMSA8IHRyYW5zaXRpb25VcGRhdGVUaW1lIHx8ICh0cmFuc2l0aW9uU3RhcnRUaW1lID0gLTEuMSksIG51bGwgIT09IGN1cnJlbnRFbnRhbmdsZWRMaXN0ZW5lcnMpKSB7CiAgICAgICAgICBudWxsICE9PSBjdXJyZW50RW50YW5nbGVkQWN0aW9uVGhlbmFibGUgJiYgKGN1cnJlbnRFbnRhbmdsZWRBY3Rpb25UaGVuYWJsZS5zdGF0dXMgPSAiZnVsZmlsbGVkIik7CiAgICAgICAgICB2YXIgbGlzdGVuZXJzID0gY3VycmVudEVudGFuZ2xlZExpc3RlbmVyczsKICAgICAgICAgIGN1cnJlbnRFbnRhbmdsZWRMaXN0ZW5lcnMgPSBudWxsOwogICAgICAgICAgY3VycmVudEVudGFuZ2xlZExhbmUgPSAwOwogICAgICAgICAgY3VycmVudEVudGFuZ2xlZEFjdGlvblRoZW5hYmxlID0gbnVsbDsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKSAoMCwgbGlzdGVuZXJzW2ldKSgpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBjaGFpblRoZW5hYmxlVmFsdWUodGhlbmFibGUsIHJlc3VsdCkgewogICAgICAgIHZhciBsaXN0ZW5lcnMgPSBbXSwgdGhlbmFibGVXaXRoT3ZlcnJpZGUgPSB7CiAgICAgICAgICBzdGF0dXM6ICJwZW5kaW5nIiwKICAgICAgICAgIHZhbHVlOiBudWxsLAogICAgICAgICAgcmVhc29uOiBudWxsLAogICAgICAgICAgdGhlbjogZnVuY3Rpb24ocmVzb2x2ZSkgewogICAgICAgICAgICBsaXN0ZW5lcnMucHVzaChyZXNvbHZlKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHRoZW5hYmxlLnRoZW4oCiAgICAgICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdGhlbmFibGVXaXRoT3ZlcnJpZGUuc3RhdHVzID0gImZ1bGZpbGxlZCI7CiAgICAgICAgICAgIHRoZW5hYmxlV2l0aE92ZXJyaWRlLnZhbHVlID0gcmVzdWx0OwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykgKDAsIGxpc3RlbmVyc1tpXSkocmVzdWx0KTsKICAgICAgICAgIH0sCiAgICAgICAgICBmdW5jdGlvbihlcnJvcikgewogICAgICAgICAgICB0aGVuYWJsZVdpdGhPdmVycmlkZS5zdGF0dXMgPSAicmVqZWN0ZWQiOwogICAgICAgICAgICB0aGVuYWJsZVdpdGhPdmVycmlkZS5yZWFzb24gPSBlcnJvcjsKICAgICAgICAgICAgZm9yIChlcnJvciA9IDA7IGVycm9yIDwgbGlzdGVuZXJzLmxlbmd0aDsgZXJyb3IrKykKICAgICAgICAgICAgICAoMCwgbGlzdGVuZXJzW2Vycm9yXSkodm9pZCAwKTsKICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIHJldHVybiB0aGVuYWJsZVdpdGhPdmVycmlkZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwZWVrQ2FjaGVGcm9tUG9vbCgpIHsKICAgICAgICB2YXIgY2FjaGVSZXN1bWVkRnJvbVByZXZpb3VzUmVuZGVyID0gcmVzdW1lZENhY2hlLmN1cnJlbnQ7CiAgICAgICAgcmV0dXJuIG51bGwgIT09IGNhY2hlUmVzdW1lZEZyb21QcmV2aW91c1JlbmRlciA/IGNhY2hlUmVzdW1lZEZyb21QcmV2aW91c1JlbmRlciA6IHdvcmtJblByb2dyZXNzUm9vdC5wb29sZWRDYWNoZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwdXNoVHJhbnNpdGlvbihvZmZzY3JlZW5Xb3JrSW5Qcm9ncmVzcywgcHJldkNhY2hlUG9vbCkgewogICAgICAgIG51bGwgPT09IHByZXZDYWNoZVBvb2wgPyBwdXNoKHJlc3VtZWRDYWNoZSwgcmVzdW1lZENhY2hlLmN1cnJlbnQsIG9mZnNjcmVlbldvcmtJblByb2dyZXNzKSA6IHB1c2gocmVzdW1lZENhY2hlLCBwcmV2Q2FjaGVQb29sLnBvb2wsIG9mZnNjcmVlbldvcmtJblByb2dyZXNzKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRTdXNwZW5kZWRDYWNoZSgpIHsKICAgICAgICB2YXIgY2FjaGVGcm9tUG9vbCA9IHBlZWtDYWNoZUZyb21Qb29sKCk7CiAgICAgICAgcmV0dXJuIG51bGwgPT09IGNhY2hlRnJvbVBvb2wgPyBudWxsIDogeyBwYXJlbnQ6IENhY2hlQ29udGV4dC5fY3VycmVudFZhbHVlLCBwb29sOiBjYWNoZUZyb21Qb29sIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY3JlYXRlVGhlbmFibGVTdGF0ZSgpIHsKICAgICAgICByZXR1cm4geyBkaWRXYXJuQWJvdXRVbmNhY2hlZFByb21pc2U6IGZhbHNlLCB0aGVuYWJsZXM6IFtdIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaXNUaGVuYWJsZVJlc29sdmVkKHRoZW5hYmxlKSB7CiAgICAgICAgdGhlbmFibGUgPSB0aGVuYWJsZS5zdGF0dXM7CiAgICAgICAgcmV0dXJuICJmdWxmaWxsZWQiID09PSB0aGVuYWJsZSB8fCAicmVqZWN0ZWQiID09PSB0aGVuYWJsZTsKICAgICAgfQogICAgICBmdW5jdGlvbiB0cmFja1VzZWRUaGVuYWJsZSh0aGVuYWJsZVN0YXRlMiwgdGhlbmFibGUsIGluZGV4KSB7CiAgICAgICAgbnVsbCAhPT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgJiYgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLmRpZFVzZVByb21pc2UgPSB0cnVlKTsKICAgICAgICB2YXIgdHJhY2tlZFRoZW5hYmxlcyA9IHRoZW5hYmxlU3RhdGUyLnRoZW5hYmxlczsKICAgICAgICBpbmRleCA9IHRyYWNrZWRUaGVuYWJsZXNbaW5kZXhdOwogICAgICAgIHZvaWQgMCA9PT0gaW5kZXggPyB0cmFja2VkVGhlbmFibGVzLnB1c2godGhlbmFibGUpIDogaW5kZXggIT09IHRoZW5hYmxlICYmICh0aGVuYWJsZVN0YXRlMi5kaWRXYXJuQWJvdXRVbmNhY2hlZFByb21pc2UgfHwgKHRoZW5hYmxlU3RhdGUyLmRpZFdhcm5BYm91dFVuY2FjaGVkUHJvbWlzZSA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiQSBjb21wb25lbnQgd2FzIHN1c3BlbmRlZCBieSBhbiB1bmNhY2hlZCBwcm9taXNlLiBDcmVhdGluZyBwcm9taXNlcyBpbnNpZGUgYSBDbGllbnQgQ29tcG9uZW50IG9yIGhvb2sgaXMgbm90IHlldCBzdXBwb3J0ZWQsIGV4Y2VwdCB2aWEgYSBTdXNwZW5zZS1jb21wYXRpYmxlIGxpYnJhcnkgb3IgZnJhbWV3b3JrLiIKICAgICAgICApKSwgdGhlbmFibGUudGhlbihub29wJDEsIG5vb3AkMSksIHRoZW5hYmxlID0gaW5kZXgpOwogICAgICAgIGlmICh2b2lkIDAgPT09IHRoZW5hYmxlLl9kZWJ1Z0luZm8pIHsKICAgICAgICAgIHRoZW5hYmxlU3RhdGUyID0gcGVyZm9ybWFuY2Uubm93KCk7CiAgICAgICAgICB0cmFja2VkVGhlbmFibGVzID0gdGhlbmFibGUuZGlzcGxheU5hbWU7CiAgICAgICAgICB2YXIgaW9JbmZvID0gewogICAgICAgICAgICBuYW1lOiAic3RyaW5nIiA9PT0gdHlwZW9mIHRyYWNrZWRUaGVuYWJsZXMgPyB0cmFja2VkVGhlbmFibGVzIDogIlByb21pc2UiLAogICAgICAgICAgICBzdGFydDogdGhlbmFibGVTdGF0ZTIsCiAgICAgICAgICAgIGVuZDogdGhlbmFibGVTdGF0ZTIsCiAgICAgICAgICAgIHZhbHVlOiB0aGVuYWJsZQogICAgICAgICAgfTsKICAgICAgICAgIHRoZW5hYmxlLl9kZWJ1Z0luZm8gPSBbeyBhd2FpdGVkOiBpb0luZm8gfV07CiAgICAgICAgICAiZnVsZmlsbGVkIiAhPT0gdGhlbmFibGUuc3RhdHVzICYmICJyZWplY3RlZCIgIT09IHRoZW5hYmxlLnN0YXR1cyAmJiAodGhlbmFibGVTdGF0ZTIgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgaW9JbmZvLmVuZCA9IHBlcmZvcm1hbmNlLm5vdygpOwogICAgICAgICAgfSwgdGhlbmFibGUudGhlbih0aGVuYWJsZVN0YXRlMiwgdGhlbmFibGVTdGF0ZTIpKTsKICAgICAgICB9CiAgICAgICAgc3dpdGNoICh0aGVuYWJsZS5zdGF0dXMpIHsKICAgICAgICAgIGNhc2UgImZ1bGZpbGxlZCI6CiAgICAgICAgICAgIHJldHVybiB0aGVuYWJsZS52YWx1ZTsKICAgICAgICAgIGNhc2UgInJlamVjdGVkIjoKICAgICAgICAgICAgdGhyb3cgdGhlbmFibGVTdGF0ZTIgPSB0aGVuYWJsZS5yZWFzb24sIGNoZWNrSWZVc2VXcmFwcGVkSW5Bc3luY0NhdGNoKHRoZW5hYmxlU3RhdGUyKSwgdGhlbmFibGVTdGF0ZTI7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZiAoInN0cmluZyIgPT09IHR5cGVvZiB0aGVuYWJsZS5zdGF0dXMpCiAgICAgICAgICAgICAgdGhlbmFibGUudGhlbihub29wJDEsIG5vb3AkMSk7CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIHRoZW5hYmxlU3RhdGUyID0gd29ya0luUHJvZ3Jlc3NSb290OwogICAgICAgICAgICAgIGlmIChudWxsICE9PSB0aGVuYWJsZVN0YXRlMiAmJiAxMDAgPCB0aGVuYWJsZVN0YXRlMi5zaGVsbFN1c3BlbmRDb3VudGVyKQogICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAgICJBbiB1bmtub3duIENvbXBvbmVudCBpcyBhbiBhc3luYyBDbGllbnQgQ29tcG9uZW50LiBPbmx5IFNlcnZlciBDb21wb25lbnRzIGNhbiBiZSBhc3luYyBhdCB0aGUgbW9tZW50LiBUaGlzIGVycm9yIGlzIG9mdGVuIGNhdXNlZCBieSBhY2NpZGVudGFsbHkgYWRkaW5nIGAndXNlIGNsaWVudCdgIHRvIGEgbW9kdWxlIHRoYXQgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBmb3IgdGhlIHNlcnZlci4iCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHRoZW5hYmxlU3RhdGUyID0gdGhlbmFibGU7CiAgICAgICAgICAgICAgdGhlbmFibGVTdGF0ZTIuc3RhdHVzID0gInBlbmRpbmciOwogICAgICAgICAgICAgIHRoZW5hYmxlU3RhdGUyLnRoZW4oCiAgICAgICAgICAgICAgICBmdW5jdGlvbihmdWxmaWxsZWRWYWx1ZSkgewogICAgICAgICAgICAgICAgICBpZiAoInBlbmRpbmciID09PSB0aGVuYWJsZS5zdGF0dXMpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZnVsZmlsbGVkVGhlbmFibGUgPSB0aGVuYWJsZTsKICAgICAgICAgICAgICAgICAgICBmdWxmaWxsZWRUaGVuYWJsZS5zdGF0dXMgPSAiZnVsZmlsbGVkIjsKICAgICAgICAgICAgICAgICAgICBmdWxmaWxsZWRUaGVuYWJsZS52YWx1ZSA9IGZ1bGZpbGxlZFZhbHVlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgZnVuY3Rpb24oZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgaWYgKCJwZW5kaW5nIiA9PT0gdGhlbmFibGUuc3RhdHVzKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJlamVjdGVkVGhlbmFibGUgPSB0aGVuYWJsZTsKICAgICAgICAgICAgICAgICAgICByZWplY3RlZFRoZW5hYmxlLnN0YXR1cyA9ICJyZWplY3RlZCI7CiAgICAgICAgICAgICAgICAgICAgcmVqZWN0ZWRUaGVuYWJsZS5yZWFzb24gPSBlcnJvcjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3dpdGNoICh0aGVuYWJsZS5zdGF0dXMpIHsKICAgICAgICAgICAgICBjYXNlICJmdWxmaWxsZWQiOgogICAgICAgICAgICAgICAgcmV0dXJuIHRoZW5hYmxlLnZhbHVlOwogICAgICAgICAgICAgIGNhc2UgInJlamVjdGVkIjoKICAgICAgICAgICAgICAgIHRocm93IHRoZW5hYmxlU3RhdGUyID0gdGhlbmFibGUucmVhc29uLCBjaGVja0lmVXNlV3JhcHBlZEluQXN5bmNDYXRjaCh0aGVuYWJsZVN0YXRlMiksIHRoZW5hYmxlU3RhdGUyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN1c3BlbmRlZFRoZW5hYmxlID0gdGhlbmFibGU7CiAgICAgICAgICAgIG5lZWRzVG9SZXNldFN1c3BlbmRlZFRoZW5hYmxlREVWID0gdHJ1ZTsKICAgICAgICAgICAgdGhyb3cgU3VzcGVuc2VFeGNlcHRpb247CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc29sdmVMYXp5KGxhenlUeXBlKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJldHVybiBjYWxsTGF6eUluaXRJbkRFVihsYXp5VHlwZSk7CiAgICAgICAgfSBjYXRjaCAoeCkgewogICAgICAgICAgaWYgKG51bGwgIT09IHggJiYgIm9iamVjdCIgPT09IHR5cGVvZiB4ICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiB4LnRoZW4pCiAgICAgICAgICAgIHRocm93IHN1c3BlbmRlZFRoZW5hYmxlID0geCwgbmVlZHNUb1Jlc2V0U3VzcGVuZGVkVGhlbmFibGVERVYgPSB0cnVlLCBTdXNwZW5zZUV4Y2VwdGlvbjsKICAgICAgICAgIHRocm93IHg7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldFN1c3BlbmRlZFRoZW5hYmxlKCkgewogICAgICAgIGlmIChudWxsID09PSBzdXNwZW5kZWRUaGVuYWJsZSkKICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAiRXhwZWN0ZWQgYSBzdXNwZW5kZWQgdGhlbmFibGUuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICAgICk7CiAgICAgICAgdmFyIHRoZW5hYmxlID0gc3VzcGVuZGVkVGhlbmFibGU7CiAgICAgICAgc3VzcGVuZGVkVGhlbmFibGUgPSBudWxsOwogICAgICAgIG5lZWRzVG9SZXNldFN1c3BlbmRlZFRoZW5hYmxlREVWID0gZmFsc2U7CiAgICAgICAgcmV0dXJuIHRoZW5hYmxlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNoZWNrSWZVc2VXcmFwcGVkSW5Bc3luY0NhdGNoKHJlamVjdGVkUmVhc29uKSB7CiAgICAgICAgaWYgKHJlamVjdGVkUmVhc29uID09PSBTdXNwZW5zZUV4Y2VwdGlvbiB8fCByZWplY3RlZFJlYXNvbiA9PT0gU3VzcGVuc2VBY3Rpb25FeGNlcHRpb24pCiAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgIkhvb2tzIGFyZSBub3Qgc3VwcG9ydGVkIGluc2lkZSBhbiBhc3luYyBjb21wb25lbnQuIFRoaXMgZXJyb3IgaXMgb2Z0ZW4gY2F1c2VkIGJ5IGFjY2lkZW50YWxseSBhZGRpbmcgYCd1c2UgY2xpZW50J2AgdG8gYSBtb2R1bGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGZvciB0aGUgc2VydmVyLiIKICAgICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcHVzaERlYnVnSW5mbyhkZWJ1Z0luZm8pIHsKICAgICAgICB2YXIgcHJldmlvdXNEZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvOwogICAgICAgIG51bGwgIT0gZGVidWdJbmZvICYmIChjdXJyZW50RGVidWdJbmZvID0gbnVsbCA9PT0gcHJldmlvdXNEZWJ1Z0luZm8gPyBkZWJ1Z0luZm8gOiBwcmV2aW91c0RlYnVnSW5mby5jb25jYXQoZGVidWdJbmZvKSk7CiAgICAgICAgcmV0dXJuIHByZXZpb3VzRGVidWdJbmZvOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEN1cnJlbnREZWJ1Z1Rhc2soKSB7CiAgICAgICAgdmFyIGRlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm87CiAgICAgICAgaWYgKG51bGwgIT0gZGVidWdJbmZvKSB7CiAgICAgICAgICBmb3IgKHZhciBpID0gZGVidWdJbmZvLmxlbmd0aCAtIDE7IDAgPD0gaTsgaS0tKQogICAgICAgICAgICBpZiAobnVsbCAhPSBkZWJ1Z0luZm9baV0ubmFtZSkgewogICAgICAgICAgICAgIHZhciBkZWJ1Z1Rhc2sgPSBkZWJ1Z0luZm9baV0uZGVidWdUYXNrOwogICAgICAgICAgICAgIGlmIChudWxsICE9IGRlYnVnVGFzaykgcmV0dXJuIGRlYnVnVGFzazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCwgZmliZXIsIHJldHVybkZpYmVyKSB7CiAgICAgICAgZm9yICh2YXIga2V5cyA9IE9iamVjdC5rZXlzKGVsZW1lbnQucHJvcHMpLCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2ldOwogICAgICAgICAgaWYgKCJjaGlsZHJlbiIgIT09IGtleSAmJiAia2V5IiAhPT0ga2V5KSB7CiAgICAgICAgICAgIG51bGwgPT09IGZpYmVyICYmIChmaWJlciA9IGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQoZWxlbWVudCwgcmV0dXJuRmliZXIubW9kZSwgMCksIGZpYmVyLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvLCBmaWJlci5yZXR1cm4gPSByZXR1cm5GaWJlcik7CiAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgIGZpYmVyLAogICAgICAgICAgICAgIGZ1bmN0aW9uKGVycm9yZWRLZXkpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiBSZWFjdC5GcmFnbWVudCBjYW4gb25seSBoYXZlIGBrZXlgIGFuZCBgY2hpbGRyZW5gIHByb3BzLiIsCiAgICAgICAgICAgICAgICAgIGVycm9yZWRLZXkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBrZXkKICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVud3JhcFRoZW5hYmxlKHRoZW5hYmxlKSB7CiAgICAgICAgdmFyIGluZGV4ID0gdGhlbmFibGVJbmRleENvdW50ZXIkMTsKICAgICAgICB0aGVuYWJsZUluZGV4Q291bnRlciQxICs9IDE7CiAgICAgICAgbnVsbCA9PT0gdGhlbmFibGVTdGF0ZSQxICYmICh0aGVuYWJsZVN0YXRlJDEgPSBjcmVhdGVUaGVuYWJsZVN0YXRlKCkpOwogICAgICAgIHJldHVybiB0cmFja1VzZWRUaGVuYWJsZSh0aGVuYWJsZVN0YXRlJDEsIHRoZW5hYmxlLCBpbmRleCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29lcmNlUmVmKHdvcmtJblByb2dyZXNzMiwgZWxlbWVudCkgewogICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnByb3BzLnJlZjsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIucmVmID0gdm9pZCAwICE9PSBlbGVtZW50ID8gZWxlbWVudCA6IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdGhyb3dPbkludmFsaWRPYmplY3RUeXBlSW1wbChyZXR1cm5GaWJlciwgbmV3Q2hpbGQpIHsKICAgICAgICBpZiAobmV3Q2hpbGQuJCR0eXBlb2YgPT09IFJFQUNUX0xFR0FDWV9FTEVNRU5UX1RZUEUpCiAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgJ0EgUmVhY3QgRWxlbWVudCBmcm9tIGFuIG9sZGVyIHZlcnNpb24gb2YgUmVhY3Qgd2FzIHJlbmRlcmVkLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQuIEl0IGNhbiBoYXBwZW4gaWY6XG4tIE11bHRpcGxlIGNvcGllcyBvZiB0aGUgInJlYWN0IiBwYWNrYWdlIGlzIHVzZWQuXG4tIEEgbGlicmFyeSBwcmUtYnVuZGxlZCBhbiBvbGQgY29weSBvZiAicmVhY3QiIG9yICJyZWFjdC9qc3gtcnVudGltZSIuXG4tIEEgY29tcGlsZXIgdHJpZXMgdG8gImlubGluZSIgSlNYIGluc3RlYWQgb2YgdXNpbmcgdGhlIHJ1bnRpbWUuJwogICAgICAgICAgKTsKICAgICAgICByZXR1cm5GaWJlciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXdDaGlsZCk7CiAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiAiICsgKCJbb2JqZWN0IE9iamVjdF0iID09PSByZXR1cm5GaWJlciA/ICJvYmplY3Qgd2l0aCBrZXlzIHsiICsgT2JqZWN0LmtleXMobmV3Q2hpbGQpLmpvaW4oIiwgIikgKyAifSIgOiByZXR1cm5GaWJlcikgKyAiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLiIKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpIHsKICAgICAgICB2YXIgZGVidWdUYXNrID0gZ2V0Q3VycmVudERlYnVnVGFzaygpOwogICAgICAgIG51bGwgIT09IGRlYnVnVGFzayA/IGRlYnVnVGFzay5ydW4oCiAgICAgICAgICB0aHJvd09uSW52YWxpZE9iamVjdFR5cGVJbXBsLmJpbmQobnVsbCwgcmV0dXJuRmliZXIsIG5ld0NoaWxkKQogICAgICAgICkgOiB0aHJvd09uSW52YWxpZE9iamVjdFR5cGVJbXBsKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gd2Fybk9uRnVuY3Rpb25UeXBlSW1wbChyZXR1cm5GaWJlciwgaW52YWxpZENoaWxkKSB7CiAgICAgICAgdmFyIHBhcmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHJldHVybkZpYmVyKSB8fCAiQ29tcG9uZW50IjsKICAgICAgICBvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmdbcGFyZW50TmFtZV0gfHwgKG93bmVySGFzRnVuY3Rpb25UeXBlV2FybmluZ1twYXJlbnROYW1lXSA9IHRydWUsIGludmFsaWRDaGlsZCA9IGludmFsaWRDaGlsZC5kaXNwbGF5TmFtZSB8fCBpbnZhbGlkQ2hpbGQubmFtZSB8fCAiQ29tcG9uZW50IiwgMyA9PT0gcmV0dXJuRmliZXIudGFnID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICJGdW5jdGlvbnMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkLiBUaGlzIG1heSBoYXBwZW4gaWYgeW91IHJldHVybiAlcyBpbnN0ZWFkIG9mIDwlcyAvPiBmcm9tIHJlbmRlci4gT3IgbWF5YmUgeW91IG1lYW50IHRvIGNhbGwgdGhpcyBmdW5jdGlvbiByYXRoZXIgdGhhbiByZXR1cm4gaXQuXG4gIHJvb3QucmVuZGVyKCVzKSIsCiAgICAgICAgICBpbnZhbGlkQ2hpbGQsCiAgICAgICAgICBpbnZhbGlkQ2hpbGQsCiAgICAgICAgICBpbnZhbGlkQ2hpbGQKICAgICAgICApIDogY29uc29sZS5lcnJvcigKICAgICAgICAgICJGdW5jdGlvbnMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkLiBUaGlzIG1heSBoYXBwZW4gaWYgeW91IHJldHVybiAlcyBpbnN0ZWFkIG9mIDwlcyAvPiBmcm9tIHJlbmRlci4gT3IgbWF5YmUgeW91IG1lYW50IHRvIGNhbGwgdGhpcyBmdW5jdGlvbiByYXRoZXIgdGhhbiByZXR1cm4gaXQuXG4gIDwlcz57JXN9PC8lcz4iLAogICAgICAgICAgaW52YWxpZENoaWxkLAogICAgICAgICAgaW52YWxpZENoaWxkLAogICAgICAgICAgcGFyZW50TmFtZSwKICAgICAgICAgIGludmFsaWRDaGlsZCwKICAgICAgICAgIHBhcmVudE5hbWUKICAgICAgICApKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB3YXJuT25GdW5jdGlvblR5cGUocmV0dXJuRmliZXIsIGludmFsaWRDaGlsZCkgewogICAgICAgIHZhciBkZWJ1Z1Rhc2sgPSBnZXRDdXJyZW50RGVidWdUYXNrKCk7CiAgICAgICAgbnVsbCAhPT0gZGVidWdUYXNrID8gZGVidWdUYXNrLnJ1bigKICAgICAgICAgIHdhcm5PbkZ1bmN0aW9uVHlwZUltcGwuYmluZChudWxsLCByZXR1cm5GaWJlciwgaW52YWxpZENoaWxkKQogICAgICAgICkgOiB3YXJuT25GdW5jdGlvblR5cGVJbXBsKHJldHVybkZpYmVyLCBpbnZhbGlkQ2hpbGQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHdhcm5PblN5bWJvbFR5cGVJbXBsKHJldHVybkZpYmVyLCBpbnZhbGlkQ2hpbGQpIHsKICAgICAgICB2YXIgcGFyZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIocmV0dXJuRmliZXIpIHx8ICJDb21wb25lbnQiOwogICAgICAgIG93bmVySGFzU3ltYm9sVHlwZVdhcm5pbmdbcGFyZW50TmFtZV0gfHwgKG93bmVySGFzU3ltYm9sVHlwZVdhcm5pbmdbcGFyZW50TmFtZV0gPSB0cnVlLCBpbnZhbGlkQ2hpbGQgPSBTdHJpbmcoaW52YWxpZENoaWxkKSwgMyA9PT0gcmV0dXJuRmliZXIudGFnID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICJTeW1ib2xzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZC5cbiAgcm9vdC5yZW5kZXIoJXMpIiwKICAgICAgICAgIGludmFsaWRDaGlsZAogICAgICAgICkgOiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIlN5bWJvbHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkLlxuICA8JXM+JXM8LyVzPiIsCiAgICAgICAgICBwYXJlbnROYW1lLAogICAgICAgICAgaW52YWxpZENoaWxkLAogICAgICAgICAgcGFyZW50TmFtZQogICAgICAgICkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHdhcm5PblN5bWJvbFR5cGUocmV0dXJuRmliZXIsIGludmFsaWRDaGlsZCkgewogICAgICAgIHZhciBkZWJ1Z1Rhc2sgPSBnZXRDdXJyZW50RGVidWdUYXNrKCk7CiAgICAgICAgbnVsbCAhPT0gZGVidWdUYXNrID8gZGVidWdUYXNrLnJ1bigKICAgICAgICAgIHdhcm5PblN5bWJvbFR5cGVJbXBsLmJpbmQobnVsbCwgcmV0dXJuRmliZXIsIGludmFsaWRDaGlsZCkKICAgICAgICApIDogd2Fybk9uU3ltYm9sVHlwZUltcGwocmV0dXJuRmliZXIsIGludmFsaWRDaGlsZCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY3JlYXRlQ2hpbGRSZWNvbmNpbGVyKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHsKICAgICAgICBmdW5jdGlvbiBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGRUb0RlbGV0ZSkgewogICAgICAgICAgaWYgKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHsKICAgICAgICAgICAgdmFyIGRlbGV0aW9ucyA9IHJldHVybkZpYmVyLmRlbGV0aW9uczsKICAgICAgICAgICAgbnVsbCA9PT0gZGVsZXRpb25zID8gKHJldHVybkZpYmVyLmRlbGV0aW9ucyA9IFtjaGlsZFRvRGVsZXRlXSwgcmV0dXJuRmliZXIuZmxhZ3MgfD0gMTYpIDogZGVsZXRpb25zLnB1c2goY2hpbGRUb0RlbGV0ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCkgewogICAgICAgICAgaWYgKCFzaG91bGRUcmFja1NpZGVFZmZlY3RzKSByZXR1cm4gbnVsbDsKICAgICAgICAgIGZvciAoOyBudWxsICE9PSBjdXJyZW50Rmlyc3RDaGlsZDsgKQogICAgICAgICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpLCBjdXJyZW50Rmlyc3RDaGlsZCA9IGN1cnJlbnRGaXJzdENoaWxkLnNpYmxpbmc7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gbWFwUmVtYWluaW5nQ2hpbGRyZW4oY3VycmVudEZpcnN0Q2hpbGQpIHsKICAgICAgICAgIGZvciAodmFyIGV4aXN0aW5nQ2hpbGRyZW4gPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOyBudWxsICE9PSBjdXJyZW50Rmlyc3RDaGlsZDsgKQogICAgICAgICAgICBudWxsICE9PSBjdXJyZW50Rmlyc3RDaGlsZC5rZXkgPyBleGlzdGluZ0NoaWxkcmVuLnNldChjdXJyZW50Rmlyc3RDaGlsZC5rZXksIGN1cnJlbnRGaXJzdENoaWxkKSA6IGV4aXN0aW5nQ2hpbGRyZW4uc2V0KGN1cnJlbnRGaXJzdENoaWxkLmluZGV4LCBjdXJyZW50Rmlyc3RDaGlsZCksIGN1cnJlbnRGaXJzdENoaWxkID0gY3VycmVudEZpcnN0Q2hpbGQuc2libGluZzsKICAgICAgICAgIHJldHVybiBleGlzdGluZ0NoaWxkcmVuOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB1c2VGaWJlcihmaWJlciwgcGVuZGluZ1Byb3BzKSB7CiAgICAgICAgICBmaWJlciA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKGZpYmVyLCBwZW5kaW5nUHJvcHMpOwogICAgICAgICAgZmliZXIuaW5kZXggPSAwOwogICAgICAgICAgZmliZXIuc2libGluZyA9IG51bGw7CiAgICAgICAgICByZXR1cm4gZmliZXI7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBsYWNlQ2hpbGQobmV3RmliZXIsIGxhc3RQbGFjZWRJbmRleCwgbmV3SW5kZXgpIHsKICAgICAgICAgIG5ld0ZpYmVyLmluZGV4ID0gbmV3SW5kZXg7CiAgICAgICAgICBpZiAoIXNob3VsZFRyYWNrU2lkZUVmZmVjdHMpCiAgICAgICAgICAgIHJldHVybiBuZXdGaWJlci5mbGFncyB8PSAxMDQ4NTc2LCBsYXN0UGxhY2VkSW5kZXg7CiAgICAgICAgICBuZXdJbmRleCA9IG5ld0ZpYmVyLmFsdGVybmF0ZTsKICAgICAgICAgIGlmIChudWxsICE9PSBuZXdJbmRleCkKICAgICAgICAgICAgcmV0dXJuIG5ld0luZGV4ID0gbmV3SW5kZXguaW5kZXgsIG5ld0luZGV4IDwgbGFzdFBsYWNlZEluZGV4ID8gKG5ld0ZpYmVyLmZsYWdzIHw9IDY3MTA4ODY2LCBsYXN0UGxhY2VkSW5kZXgpIDogbmV3SW5kZXg7CiAgICAgICAgICBuZXdGaWJlci5mbGFncyB8PSA2NzEwODg2NjsKICAgICAgICAgIHJldHVybiBsYXN0UGxhY2VkSW5kZXg7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBsYWNlU2luZ2xlQ2hpbGQobmV3RmliZXIpIHsKICAgICAgICAgIHNob3VsZFRyYWNrU2lkZUVmZmVjdHMgJiYgbnVsbCA9PT0gbmV3RmliZXIuYWx0ZXJuYXRlICYmIChuZXdGaWJlci5mbGFncyB8PSA2NzEwODg2Nik7CiAgICAgICAgICByZXR1cm4gbmV3RmliZXI7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVRleHROb2RlKHJldHVybkZpYmVyLCBjdXJyZW50MiwgdGV4dENvbnRlbnQsIGxhbmVzKSB7CiAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudDIgfHwgNiAhPT0gY3VycmVudDIudGFnKQogICAgICAgICAgICByZXR1cm4gY3VycmVudDIgPSBjcmVhdGVGaWJlckZyb21UZXh0KAogICAgICAgICAgICAgIHRleHRDb250ZW50LAogICAgICAgICAgICAgIHJldHVybkZpYmVyLm1vZGUsCiAgICAgICAgICAgICAgbGFuZXMKICAgICAgICAgICAgKSwgY3VycmVudDIucmV0dXJuID0gcmV0dXJuRmliZXIsIGN1cnJlbnQyLl9kZWJ1Z093bmVyID0gcmV0dXJuRmliZXIsIGN1cnJlbnQyLl9kZWJ1Z1Rhc2sgPSByZXR1cm5GaWJlci5fZGVidWdUYXNrLCBjdXJyZW50Mi5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbywgY3VycmVudDI7CiAgICAgICAgICBjdXJyZW50MiA9IHVzZUZpYmVyKGN1cnJlbnQyLCB0ZXh0Q29udGVudCk7CiAgICAgICAgICBjdXJyZW50Mi5yZXR1cm4gPSByZXR1cm5GaWJlcjsKICAgICAgICAgIGN1cnJlbnQyLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvOwogICAgICAgICAgcmV0dXJuIGN1cnJlbnQyOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVFbGVtZW50KHJldHVybkZpYmVyLCBjdXJyZW50MiwgZWxlbWVudCwgbGFuZXMpIHsKICAgICAgICAgIHZhciBlbGVtZW50VHlwZSA9IGVsZW1lbnQudHlwZTsKICAgICAgICAgIGlmIChlbGVtZW50VHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkKICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQyID0gdXBkYXRlRnJhZ21lbnQoCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgZWxlbWVudC5wcm9wcy5jaGlsZHJlbiwKICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICBlbGVtZW50LmtleQogICAgICAgICAgICApLCB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCwgY3VycmVudDIsIHJldHVybkZpYmVyKSwgY3VycmVudDI7CiAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudDIgJiYgKGN1cnJlbnQyLmVsZW1lbnRUeXBlID09PSBlbGVtZW50VHlwZSB8fCBpc0NvbXBhdGlibGVGYW1pbHlGb3JIb3RSZWxvYWRpbmcoY3VycmVudDIsIGVsZW1lbnQpIHx8ICJvYmplY3QiID09PSB0eXBlb2YgZWxlbWVudFR5cGUgJiYgbnVsbCAhPT0gZWxlbWVudFR5cGUgJiYgZWxlbWVudFR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSAmJiByZXNvbHZlTGF6eShlbGVtZW50VHlwZSkgPT09IGN1cnJlbnQyLnR5cGUpKQogICAgICAgICAgICByZXR1cm4gY3VycmVudDIgPSB1c2VGaWJlcihjdXJyZW50MiwgZWxlbWVudC5wcm9wcyksIGNvZXJjZVJlZihjdXJyZW50MiwgZWxlbWVudCksIGN1cnJlbnQyLnJldHVybiA9IHJldHVybkZpYmVyLCBjdXJyZW50Mi5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyLCBjdXJyZW50Mi5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbywgY3VycmVudDI7CiAgICAgICAgICBjdXJyZW50MiA9IGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQoZWxlbWVudCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpOwogICAgICAgICAgY29lcmNlUmVmKGN1cnJlbnQyLCBlbGVtZW50KTsKICAgICAgICAgIGN1cnJlbnQyLnJldHVybiA9IHJldHVybkZpYmVyOwogICAgICAgICAgY3VycmVudDIuX2RlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm87CiAgICAgICAgICByZXR1cm4gY3VycmVudDI7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVBvcnRhbChyZXR1cm5GaWJlciwgY3VycmVudDIsIHBvcnRhbCwgbGFuZXMpIHsKICAgICAgICAgIGlmIChudWxsID09PSBjdXJyZW50MiB8fCA0ICE9PSBjdXJyZW50Mi50YWcgfHwgY3VycmVudDIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8gIT09IHBvcnRhbC5jb250YWluZXJJbmZvIHx8IGN1cnJlbnQyLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiAhPT0gcG9ydGFsLmltcGxlbWVudGF0aW9uKQogICAgICAgICAgICByZXR1cm4gY3VycmVudDIgPSBjcmVhdGVGaWJlckZyb21Qb3J0YWwocG9ydGFsLCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyksIGN1cnJlbnQyLnJldHVybiA9IHJldHVybkZpYmVyLCBjdXJyZW50Mi5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbywgY3VycmVudDI7CiAgICAgICAgICBjdXJyZW50MiA9IHVzZUZpYmVyKGN1cnJlbnQyLCBwb3J0YWwuY2hpbGRyZW4gfHwgW10pOwogICAgICAgICAgY3VycmVudDIucmV0dXJuID0gcmV0dXJuRmliZXI7CiAgICAgICAgICBjdXJyZW50Mi5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbzsKICAgICAgICAgIHJldHVybiBjdXJyZW50MjsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRnJhZ21lbnQocmV0dXJuRmliZXIsIGN1cnJlbnQyLCBmcmFnbWVudCwgbGFuZXMsIGtleSkgewogICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQyIHx8IDcgIT09IGN1cnJlbnQyLnRhZykKICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQyID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoCiAgICAgICAgICAgICAgZnJhZ21lbnQsCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIubW9kZSwKICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICBrZXkKICAgICAgICAgICAgKSwgY3VycmVudDIucmV0dXJuID0gcmV0dXJuRmliZXIsIGN1cnJlbnQyLl9kZWJ1Z093bmVyID0gcmV0dXJuRmliZXIsIGN1cnJlbnQyLl9kZWJ1Z1Rhc2sgPSByZXR1cm5GaWJlci5fZGVidWdUYXNrLCBjdXJyZW50Mi5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbywgY3VycmVudDI7CiAgICAgICAgICBjdXJyZW50MiA9IHVzZUZpYmVyKGN1cnJlbnQyLCBmcmFnbWVudCk7CiAgICAgICAgICBjdXJyZW50Mi5yZXR1cm4gPSByZXR1cm5GaWJlcjsKICAgICAgICAgIGN1cnJlbnQyLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvOwogICAgICAgICAgcmV0dXJuIGN1cnJlbnQyOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjcmVhdGVDaGlsZChyZXR1cm5GaWJlciwgbmV3Q2hpbGQsIGxhbmVzKSB7CiAgICAgICAgICBpZiAoInN0cmluZyIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiAiIiAhPT0gbmV3Q2hpbGQgfHwgIm51bWJlciIgPT09IHR5cGVvZiBuZXdDaGlsZCB8fCAiYmlnaW50IiA9PT0gdHlwZW9mIG5ld0NoaWxkKQogICAgICAgICAgICByZXR1cm4gbmV3Q2hpbGQgPSBjcmVhdGVGaWJlckZyb21UZXh0KAogICAgICAgICAgICAgICIiICsgbmV3Q2hpbGQsCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIubW9kZSwKICAgICAgICAgICAgICBsYW5lcwogICAgICAgICAgICApLCBuZXdDaGlsZC5yZXR1cm4gPSByZXR1cm5GaWJlciwgbmV3Q2hpbGQuX2RlYnVnT3duZXIgPSByZXR1cm5GaWJlciwgbmV3Q2hpbGQuX2RlYnVnVGFzayA9IHJldHVybkZpYmVyLl9kZWJ1Z1Rhc2ssIG5ld0NoaWxkLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvLCBuZXdDaGlsZDsKICAgICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIG51bGwgIT09IG5ld0NoaWxkKSB7CiAgICAgICAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHsKICAgICAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRToKICAgICAgICAgICAgICAgIHJldHVybiBsYW5lcyA9IGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQoCiAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLAogICAgICAgICAgICAgICAgICByZXR1cm5GaWJlci5tb2RlLAogICAgICAgICAgICAgICAgICBsYW5lcwogICAgICAgICAgICAgICAgKSwgY29lcmNlUmVmKGxhbmVzLCBuZXdDaGlsZCksIGxhbmVzLnJldHVybiA9IHJldHVybkZpYmVyLCByZXR1cm5GaWJlciA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbyksIGxhbmVzLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvLCBjdXJyZW50RGVidWdJbmZvID0gcmV0dXJuRmliZXIsIGxhbmVzOwogICAgICAgICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3Q2hpbGQgPSBjcmVhdGVGaWJlckZyb21Qb3J0YWwoCiAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLAogICAgICAgICAgICAgICAgICByZXR1cm5GaWJlci5tb2RlLAogICAgICAgICAgICAgICAgICBsYW5lcwogICAgICAgICAgICAgICAgKSwgbmV3Q2hpbGQucmV0dXJuID0gcmV0dXJuRmliZXIsIG5ld0NoaWxkLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvLCBuZXdDaGlsZDsKICAgICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRToKICAgICAgICAgICAgICAgIHZhciBfcHJldkRlYnVnSW5mbyA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbyk7CiAgICAgICAgICAgICAgICBuZXdDaGlsZCA9IHJlc29sdmVMYXp5KG5ld0NoaWxkKTsKICAgICAgICAgICAgICAgIHJldHVybkZpYmVyID0gY3JlYXRlQ2hpbGQocmV0dXJuRmliZXIsIG5ld0NoaWxkLCBsYW5lcyk7CiAgICAgICAgICAgICAgICBjdXJyZW50RGVidWdJbmZvID0gX3ByZXZEZWJ1Z0luZm87CiAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuRmliZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKG5ld0NoaWxkKSB8fCBnZXRJdGVyYXRvckZuKG5ld0NoaWxkKSkKICAgICAgICAgICAgICByZXR1cm4gbGFuZXMgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudCgKICAgICAgICAgICAgICAgIG5ld0NoaWxkLAogICAgICAgICAgICAgICAgcmV0dXJuRmliZXIubW9kZSwKICAgICAgICAgICAgICAgIGxhbmVzLAogICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICksIGxhbmVzLnJldHVybiA9IHJldHVybkZpYmVyLCBsYW5lcy5fZGVidWdPd25lciA9IHJldHVybkZpYmVyLCBsYW5lcy5fZGVidWdUYXNrID0gcmV0dXJuRmliZXIuX2RlYnVnVGFzaywgcmV0dXJuRmliZXIgPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pLCBsYW5lcy5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbywgY3VycmVudERlYnVnSW5mbyA9IHJldHVybkZpYmVyLCBsYW5lczsKICAgICAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBuZXdDaGlsZC50aGVuKQogICAgICAgICAgICAgIHJldHVybiBfcHJldkRlYnVnSW5mbyA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbyksIHJldHVybkZpYmVyID0gY3JlYXRlQ2hpbGQoCiAgICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICAgIHVud3JhcFRoZW5hYmxlKG5ld0NoaWxkKSwKICAgICAgICAgICAgICAgIGxhbmVzCiAgICAgICAgICAgICAgKSwgY3VycmVudERlYnVnSW5mbyA9IF9wcmV2RGVidWdJbmZvLCByZXR1cm5GaWJlcjsKICAgICAgICAgICAgaWYgKG5ld0NoaWxkLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUpCiAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNoaWxkKAogICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgICByZWFkQ29udGV4dER1cmluZ1JlY29uY2lsaWF0aW9uKHJldHVybkZpYmVyLCBuZXdDaGlsZCksCiAgICAgICAgICAgICAgICBsYW5lcwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpOwogICAgICAgICAgfQogICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpOwogICAgICAgICAgInN5bWJvbCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiB3YXJuT25TeW1ib2xUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdXBkYXRlU2xvdChyZXR1cm5GaWJlciwgb2xkRmliZXIsIG5ld0NoaWxkLCBsYW5lcykgewogICAgICAgICAgdmFyIGtleSA9IG51bGwgIT09IG9sZEZpYmVyID8gb2xkRmliZXIua2V5IDogbnVsbDsKICAgICAgICAgIGlmICgic3RyaW5nIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmICIiICE9PSBuZXdDaGlsZCB8fCAibnVtYmVyIiA9PT0gdHlwZW9mIG5ld0NoaWxkIHx8ICJiaWdpbnQiID09PSB0eXBlb2YgbmV3Q2hpbGQpCiAgICAgICAgICAgIHJldHVybiBudWxsICE9PSBrZXkgPyBudWxsIDogdXBkYXRlVGV4dE5vZGUocmV0dXJuRmliZXIsIG9sZEZpYmVyLCAiIiArIG5ld0NoaWxkLCBsYW5lcyk7CiAgICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiBudWxsICE9PSBuZXdDaGlsZCkgewogICAgICAgICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7CiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3Q2hpbGQua2V5ID09PSBrZXkgPyAoa2V5ID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSwgcmV0dXJuRmliZXIgPSB1cGRhdGVFbGVtZW50KAogICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICAgICAgb2xkRmliZXIsCiAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLAogICAgICAgICAgICAgICAgICBsYW5lcwogICAgICAgICAgICAgICAgKSwgY3VycmVudERlYnVnSW5mbyA9IGtleSwgcmV0dXJuRmliZXIpIDogbnVsbDsKICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOgogICAgICAgICAgICAgICAgcmV0dXJuIG5ld0NoaWxkLmtleSA9PT0ga2V5ID8gdXBkYXRlUG9ydGFsKHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzKSA6IG51bGw7CiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6CiAgICAgICAgICAgICAgICByZXR1cm4ga2V5ID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSwgbmV3Q2hpbGQgPSByZXNvbHZlTGF6eShuZXdDaGlsZCksIHJldHVybkZpYmVyID0gdXBkYXRlU2xvdCgKICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgICAgIG9sZEZpYmVyLAogICAgICAgICAgICAgICAgICBuZXdDaGlsZCwKICAgICAgICAgICAgICAgICAgbGFuZXMKICAgICAgICAgICAgICAgICksIGN1cnJlbnREZWJ1Z0luZm8gPSBrZXksIHJldHVybkZpYmVyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpc0FycmF5SW1wbChuZXdDaGlsZCkgfHwgZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHsKICAgICAgICAgICAgICBpZiAobnVsbCAhPT0ga2V5KSByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICBrZXkgPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pOwogICAgICAgICAgICAgIHJldHVybkZpYmVyID0gdXBkYXRlRnJhZ21lbnQoCiAgICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICAgIG9sZEZpYmVyLAogICAgICAgICAgICAgICAgbmV3Q2hpbGQsCiAgICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGN1cnJlbnREZWJ1Z0luZm8gPSBrZXk7CiAgICAgICAgICAgICAgcmV0dXJuIHJldHVybkZpYmVyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgbmV3Q2hpbGQudGhlbikKICAgICAgICAgICAgICByZXR1cm4ga2V5ID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSwgcmV0dXJuRmliZXIgPSB1cGRhdGVTbG90KAogICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgICBvbGRGaWJlciwKICAgICAgICAgICAgICAgIHVud3JhcFRoZW5hYmxlKG5ld0NoaWxkKSwKICAgICAgICAgICAgICAgIGxhbmVzCiAgICAgICAgICAgICAgKSwgY3VycmVudERlYnVnSW5mbyA9IGtleSwgcmV0dXJuRmliZXI7CiAgICAgICAgICAgIGlmIChuZXdDaGlsZC4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFKQogICAgICAgICAgICAgIHJldHVybiB1cGRhdGVTbG90KAogICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgICBvbGRGaWJlciwKICAgICAgICAgICAgICAgIHJlYWRDb250ZXh0RHVyaW5nUmVjb25jaWxpYXRpb24ocmV0dXJuRmliZXIsIG5ld0NoaWxkKSwKICAgICAgICAgICAgICAgIGxhbmVzCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7CiAgICAgICAgICB9CiAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7CiAgICAgICAgICAic3ltYm9sIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIHdhcm5PblN5bWJvbFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVGcm9tTWFwKGV4aXN0aW5nQ2hpbGRyZW4sIHJldHVybkZpYmVyLCBuZXdJZHgsIG5ld0NoaWxkLCBsYW5lcykgewogICAgICAgICAgaWYgKCJzdHJpbmciID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgIiIgIT09IG5ld0NoaWxkIHx8ICJudW1iZXIiID09PSB0eXBlb2YgbmV3Q2hpbGQgfHwgImJpZ2ludCIgPT09IHR5cGVvZiBuZXdDaGlsZCkKICAgICAgICAgICAgcmV0dXJuIGV4aXN0aW5nQ2hpbGRyZW4gPSBleGlzdGluZ0NoaWxkcmVuLmdldChuZXdJZHgpIHx8IG51bGwsIHVwZGF0ZVRleHROb2RlKHJldHVybkZpYmVyLCBleGlzdGluZ0NoaWxkcmVuLCAiIiArIG5ld0NoaWxkLCBsYW5lcyk7CiAgICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiBudWxsICE9PSBuZXdDaGlsZCkgewogICAgICAgICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7CiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3SWR4ID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQoCiAgICAgICAgICAgICAgICAgIG51bGwgPT09IG5ld0NoaWxkLmtleSA/IG5ld0lkeCA6IG5ld0NoaWxkLmtleQogICAgICAgICAgICAgICAgKSB8fCBudWxsLCBleGlzdGluZ0NoaWxkcmVuID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSwgcmV0dXJuRmliZXIgPSB1cGRhdGVFbGVtZW50KAogICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICAgICAgbmV3SWR4LAogICAgICAgICAgICAgICAgICBuZXdDaGlsZCwKICAgICAgICAgICAgICAgICAgbGFuZXMKICAgICAgICAgICAgICAgICksIGN1cnJlbnREZWJ1Z0luZm8gPSBleGlzdGluZ0NoaWxkcmVuLCByZXR1cm5GaWJlcjsKICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOgogICAgICAgICAgICAgICAgcmV0dXJuIGV4aXN0aW5nQ2hpbGRyZW4gPSBleGlzdGluZ0NoaWxkcmVuLmdldCgKICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gbmV3Q2hpbGQua2V5ID8gbmV3SWR4IDogbmV3Q2hpbGQua2V5CiAgICAgICAgICAgICAgICApIHx8IG51bGwsIHVwZGF0ZVBvcnRhbChyZXR1cm5GaWJlciwgZXhpc3RpbmdDaGlsZHJlbiwgbmV3Q2hpbGQsIGxhbmVzKTsKICAgICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRToKICAgICAgICAgICAgICAgIHZhciBfcHJldkRlYnVnSW5mbzcgPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pOwogICAgICAgICAgICAgICAgbmV3Q2hpbGQgPSByZXNvbHZlTGF6eShuZXdDaGlsZCk7CiAgICAgICAgICAgICAgICByZXR1cm5GaWJlciA9IHVwZGF0ZUZyb21NYXAoCiAgICAgICAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4sCiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgICAgICBuZXdJZHgsCiAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLAogICAgICAgICAgICAgICAgICBsYW5lcwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGN1cnJlbnREZWJ1Z0luZm8gPSBfcHJldkRlYnVnSW5mbzc7CiAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuRmliZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKG5ld0NoaWxkKSB8fCBnZXRJdGVyYXRvckZuKG5ld0NoaWxkKSkKICAgICAgICAgICAgICByZXR1cm4gbmV3SWR4ID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQobmV3SWR4KSB8fCBudWxsLCBleGlzdGluZ0NoaWxkcmVuID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSwgcmV0dXJuRmliZXIgPSB1cGRhdGVGcmFnbWVudCgKICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgICAgbmV3SWR4LAogICAgICAgICAgICAgICAgbmV3Q2hpbGQsCiAgICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICApLCBjdXJyZW50RGVidWdJbmZvID0gZXhpc3RpbmdDaGlsZHJlbiwgcmV0dXJuRmliZXI7CiAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgbmV3Q2hpbGQudGhlbikKICAgICAgICAgICAgICByZXR1cm4gX3ByZXZEZWJ1Z0luZm83ID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSwgcmV0dXJuRmliZXIgPSB1cGRhdGVGcm9tTWFwKAogICAgICAgICAgICAgICAgZXhpc3RpbmdDaGlsZHJlbiwKICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgICAgbmV3SWR4LAogICAgICAgICAgICAgICAgdW53cmFwVGhlbmFibGUobmV3Q2hpbGQpLAogICAgICAgICAgICAgICAgbGFuZXMKICAgICAgICAgICAgICApLCBjdXJyZW50RGVidWdJbmZvID0gX3ByZXZEZWJ1Z0luZm83LCByZXR1cm5GaWJlcjsKICAgICAgICAgICAgaWYgKG5ld0NoaWxkLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUpCiAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZUZyb21NYXAoCiAgICAgICAgICAgICAgICBleGlzdGluZ0NoaWxkcmVuLAogICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgICBuZXdJZHgsCiAgICAgICAgICAgICAgICByZWFkQ29udGV4dER1cmluZ1JlY29uY2lsaWF0aW9uKHJldHVybkZpYmVyLCBuZXdDaGlsZCksCiAgICAgICAgICAgICAgICBsYW5lcwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpOwogICAgICAgICAgfQogICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpOwogICAgICAgICAgInN5bWJvbCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiB3YXJuT25TeW1ib2xUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gd2Fybk9uSW52YWxpZEtleShyZXR1cm5GaWJlciwgd29ya0luUHJvZ3Jlc3MyLCBjaGlsZCwga25vd25LZXlzKSB7CiAgICAgICAgICBpZiAoIm9iamVjdCIgIT09IHR5cGVvZiBjaGlsZCB8fCBudWxsID09PSBjaGlsZCkgcmV0dXJuIGtub3duS2V5czsKICAgICAgICAgIHN3aXRjaCAoY2hpbGQuJCR0eXBlb2YpIHsKICAgICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6CiAgICAgICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6CiAgICAgICAgICAgICAgd2FybkZvck1pc3NpbmdLZXkocmV0dXJuRmliZXIsIHdvcmtJblByb2dyZXNzMiwgY2hpbGQpOwogICAgICAgICAgICAgIHZhciBrZXkgPSBjaGlsZC5rZXk7CiAgICAgICAgICAgICAgaWYgKCJzdHJpbmciICE9PSB0eXBlb2Yga2V5KSBicmVhazsKICAgICAgICAgICAgICBpZiAobnVsbCA9PT0ga25vd25LZXlzKSB7CiAgICAgICAgICAgICAgICBrbm93bktleXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgICAgICAgICAga25vd25LZXlzLmFkZChrZXkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICgha25vd25LZXlzLmhhcyhrZXkpKSB7CiAgICAgICAgICAgICAgICBrbm93bktleXMuYWRkKGtleSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYod29ya0luUHJvZ3Jlc3MyLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAgICJFbmNvdW50ZXJlZCB0d28gY2hpbGRyZW4gd2l0aCB0aGUgc2FtZSBrZXksIGAlc2AuIEtleXMgc2hvdWxkIGJlIHVuaXF1ZSBzbyB0aGF0IGNvbXBvbmVudHMgbWFpbnRhaW4gdGhlaXIgaWRlbnRpdHkgYWNyb3NzIHVwZGF0ZXMuIE5vbi11bmlxdWUga2V5cyBtYXkgY2F1c2UgY2hpbGRyZW4gdG8gYmUgZHVwbGljYXRlZCBhbmQvb3Igb21pdHRlZCDigJQgdGhlIGJlaGF2aW9yIGlzIHVuc3VwcG9ydGVkIGFuZCBjb3VsZCBjaGFuZ2UgaW4gYSBmdXR1cmUgdmVyc2lvbi4iLAogICAgICAgICAgICAgICAgICBrZXkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOgogICAgICAgICAgICAgIGNoaWxkID0gcmVzb2x2ZUxhenkoY2hpbGQpLCB3YXJuT25JbnZhbGlkS2V5KHJldHVybkZpYmVyLCB3b3JrSW5Qcm9ncmVzczIsIGNoaWxkLCBrbm93bktleXMpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGtub3duS2V5czsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcmVjb25jaWxlQ2hpbGRyZW5BcnJheShyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIG5ld0NoaWxkcmVuLCBsYW5lcykgewogICAgICAgICAgZm9yICh2YXIga25vd25LZXlzID0gbnVsbCwgcmVzdWx0aW5nRmlyc3RDaGlsZCA9IG51bGwsIHByZXZpb3VzTmV3RmliZXIgPSBudWxsLCBvbGRGaWJlciA9IGN1cnJlbnRGaXJzdENoaWxkLCBuZXdJZHggPSBjdXJyZW50Rmlyc3RDaGlsZCA9IDAsIG5leHRPbGRGaWJlciA9IG51bGw7IG51bGwgIT09IG9sZEZpYmVyICYmIG5ld0lkeCA8IG5ld0NoaWxkcmVuLmxlbmd0aDsgbmV3SWR4KyspIHsKICAgICAgICAgICAgb2xkRmliZXIuaW5kZXggPiBuZXdJZHggPyAobmV4dE9sZEZpYmVyID0gb2xkRmliZXIsIG9sZEZpYmVyID0gbnVsbCkgOiBuZXh0T2xkRmliZXIgPSBvbGRGaWJlci5zaWJsaW5nOwogICAgICAgICAgICB2YXIgbmV3RmliZXIgPSB1cGRhdGVTbG90KAogICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgIG9sZEZpYmVyLAogICAgICAgICAgICAgIG5ld0NoaWxkcmVuW25ld0lkeF0sCiAgICAgICAgICAgICAgbGFuZXMKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKG51bGwgPT09IG5ld0ZpYmVyKSB7CiAgICAgICAgICAgICAgbnVsbCA9PT0gb2xkRmliZXIgJiYgKG9sZEZpYmVyID0gbmV4dE9sZEZpYmVyKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBrbm93bktleXMgPSB3YXJuT25JbnZhbGlkS2V5KAogICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgIG5ld0ZpYmVyLAogICAgICAgICAgICAgIG5ld0NoaWxkcmVuW25ld0lkeF0sCiAgICAgICAgICAgICAga25vd25LZXlzCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHNob3VsZFRyYWNrU2lkZUVmZmVjdHMgJiYgb2xkRmliZXIgJiYgbnVsbCA9PT0gbmV3RmliZXIuYWx0ZXJuYXRlICYmIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBvbGRGaWJlcik7CiAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkID0gcGxhY2VDaGlsZChuZXdGaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIG5ld0lkeCk7CiAgICAgICAgICAgIG51bGwgPT09IHByZXZpb3VzTmV3RmliZXIgPyByZXN1bHRpbmdGaXJzdENoaWxkID0gbmV3RmliZXIgOiBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBuZXdGaWJlcjsKICAgICAgICAgICAgcHJldmlvdXNOZXdGaWJlciA9IG5ld0ZpYmVyOwogICAgICAgICAgICBvbGRGaWJlciA9IG5leHRPbGRGaWJlcjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChuZXdJZHggPT09IG5ld0NoaWxkcmVuLmxlbmd0aCkKICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBvbGRGaWJlciksIGlzSHlkcmF0aW5nICYmIHB1c2hUcmVlRm9yayhyZXR1cm5GaWJlciwgbmV3SWR4KSwgcmVzdWx0aW5nRmlyc3RDaGlsZDsKICAgICAgICAgIGlmIChudWxsID09PSBvbGRGaWJlcikgewogICAgICAgICAgICBmb3IgKDsgbmV3SWR4IDwgbmV3Q2hpbGRyZW4ubGVuZ3RoOyBuZXdJZHgrKykKICAgICAgICAgICAgICBvbGRGaWJlciA9IGNyZWF0ZUNoaWxkKHJldHVybkZpYmVyLCBuZXdDaGlsZHJlbltuZXdJZHhdLCBsYW5lcyksIG51bGwgIT09IG9sZEZpYmVyICYmIChrbm93bktleXMgPSB3YXJuT25JbnZhbGlkS2V5KAogICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgICBvbGRGaWJlciwKICAgICAgICAgICAgICAgIG5ld0NoaWxkcmVuW25ld0lkeF0sCiAgICAgICAgICAgICAgICBrbm93bktleXMKICAgICAgICAgICAgICApLCBjdXJyZW50Rmlyc3RDaGlsZCA9IHBsYWNlQ2hpbGQoCiAgICAgICAgICAgICAgICBvbGRGaWJlciwKICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLAogICAgICAgICAgICAgICAgbmV3SWR4CiAgICAgICAgICAgICAgKSwgbnVsbCA9PT0gcHJldmlvdXNOZXdGaWJlciA/IHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBvbGRGaWJlciA6IHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IG9sZEZpYmVyLCBwcmV2aW91c05ld0ZpYmVyID0gb2xkRmliZXIpOwogICAgICAgICAgICBpc0h5ZHJhdGluZyAmJiBwdXNoVHJlZUZvcmsocmV0dXJuRmliZXIsIG5ld0lkeCk7CiAgICAgICAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkOwogICAgICAgICAgfQogICAgICAgICAgZm9yIChvbGRGaWJlciA9IG1hcFJlbWFpbmluZ0NoaWxkcmVuKG9sZEZpYmVyKTsgbmV3SWR4IDwgbmV3Q2hpbGRyZW4ubGVuZ3RoOyBuZXdJZHgrKykKICAgICAgICAgICAgbmV4dE9sZEZpYmVyID0gdXBkYXRlRnJvbU1hcCgKICAgICAgICAgICAgICBvbGRGaWJlciwKICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICBuZXdJZHgsCiAgICAgICAgICAgICAgbmV3Q2hpbGRyZW5bbmV3SWR4XSwKICAgICAgICAgICAgICBsYW5lcwogICAgICAgICAgICApLCBudWxsICE9PSBuZXh0T2xkRmliZXIgJiYgKGtub3duS2V5cyA9IHdhcm5PbkludmFsaWRLZXkoCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgbmV4dE9sZEZpYmVyLAogICAgICAgICAgICAgIG5ld0NoaWxkcmVuW25ld0lkeF0sCiAgICAgICAgICAgICAga25vd25LZXlzCiAgICAgICAgICAgICksIHNob3VsZFRyYWNrU2lkZUVmZmVjdHMgJiYgbnVsbCAhPT0gbmV4dE9sZEZpYmVyLmFsdGVybmF0ZSAmJiBvbGRGaWJlci5kZWxldGUoCiAgICAgICAgICAgICAgbnVsbCA9PT0gbmV4dE9sZEZpYmVyLmtleSA/IG5ld0lkeCA6IG5leHRPbGRGaWJlci5rZXkKICAgICAgICAgICAgKSwgY3VycmVudEZpcnN0Q2hpbGQgPSBwbGFjZUNoaWxkKAogICAgICAgICAgICAgIG5leHRPbGRGaWJlciwKICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCwKICAgICAgICAgICAgICBuZXdJZHgKICAgICAgICAgICAgKSwgbnVsbCA9PT0gcHJldmlvdXNOZXdGaWJlciA/IHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBuZXh0T2xkRmliZXIgOiBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBuZXh0T2xkRmliZXIsIHByZXZpb3VzTmV3RmliZXIgPSBuZXh0T2xkRmliZXIpOwogICAgICAgICAgc2hvdWxkVHJhY2tTaWRlRWZmZWN0cyAmJiBvbGRGaWJlci5mb3JFYWNoKGZ1bmN0aW9uKGNoaWxkKSB7CiAgICAgICAgICAgIHJldHVybiBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGQpOwogICAgICAgICAgfSk7CiAgICAgICAgICBpc0h5ZHJhdGluZyAmJiBwdXNoVHJlZUZvcmsocmV0dXJuRmliZXIsIG5ld0lkeCk7CiAgICAgICAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcmVjb25jaWxlQ2hpbGRyZW5JdGVyYXRvcihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIG5ld0NoaWxkcmVuLCBsYW5lcykgewogICAgICAgICAgaWYgKG51bGwgPT0gbmV3Q2hpbGRyZW4pCiAgICAgICAgICAgIHRocm93IEVycm9yKCJBbiBpdGVyYWJsZSBvYmplY3QgcHJvdmlkZWQgbm8gaXRlcmF0b3IuIik7CiAgICAgICAgICBmb3IgKHZhciByZXN1bHRpbmdGaXJzdENoaWxkID0gbnVsbCwgcHJldmlvdXNOZXdGaWJlciA9IG51bGwsIG9sZEZpYmVyID0gY3VycmVudEZpcnN0Q2hpbGQsIG5ld0lkeCA9IGN1cnJlbnRGaXJzdENoaWxkID0gMCwgbmV4dE9sZEZpYmVyID0gbnVsbCwga25vd25LZXlzID0gbnVsbCwgc3RlcCA9IG5ld0NoaWxkcmVuLm5leHQoKTsgbnVsbCAhPT0gb2xkRmliZXIgJiYgIXN0ZXAuZG9uZTsgbmV3SWR4KyssIHN0ZXAgPSBuZXdDaGlsZHJlbi5uZXh0KCkpIHsKICAgICAgICAgICAgb2xkRmliZXIuaW5kZXggPiBuZXdJZHggPyAobmV4dE9sZEZpYmVyID0gb2xkRmliZXIsIG9sZEZpYmVyID0gbnVsbCkgOiBuZXh0T2xkRmliZXIgPSBvbGRGaWJlci5zaWJsaW5nOwogICAgICAgICAgICB2YXIgbmV3RmliZXIgPSB1cGRhdGVTbG90KHJldHVybkZpYmVyLCBvbGRGaWJlciwgc3RlcC52YWx1ZSwgbGFuZXMpOwogICAgICAgICAgICBpZiAobnVsbCA9PT0gbmV3RmliZXIpIHsKICAgICAgICAgICAgICBudWxsID09PSBvbGRGaWJlciAmJiAob2xkRmliZXIgPSBuZXh0T2xkRmliZXIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGtub3duS2V5cyA9IHdhcm5PbkludmFsaWRLZXkoCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgbmV3RmliZXIsCiAgICAgICAgICAgICAgc3RlcC52YWx1ZSwKICAgICAgICAgICAgICBrbm93bktleXMKICAgICAgICAgICAgKTsKICAgICAgICAgICAgc2hvdWxkVHJhY2tTaWRlRWZmZWN0cyAmJiBvbGRGaWJlciAmJiBudWxsID09PSBuZXdGaWJlci5hbHRlcm5hdGUgJiYgZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIG9sZEZpYmVyKTsKICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQgPSBwbGFjZUNoaWxkKG5ld0ZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3SWR4KTsKICAgICAgICAgICAgbnVsbCA9PT0gcHJldmlvdXNOZXdGaWJlciA/IHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBuZXdGaWJlciA6IHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IG5ld0ZpYmVyOwogICAgICAgICAgICBwcmV2aW91c05ld0ZpYmVyID0gbmV3RmliZXI7CiAgICAgICAgICAgIG9sZEZpYmVyID0gbmV4dE9sZEZpYmVyOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHN0ZXAuZG9uZSkKICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBvbGRGaWJlciksIGlzSHlkcmF0aW5nICYmIHB1c2hUcmVlRm9yayhyZXR1cm5GaWJlciwgbmV3SWR4KSwgcmVzdWx0aW5nRmlyc3RDaGlsZDsKICAgICAgICAgIGlmIChudWxsID09PSBvbGRGaWJlcikgewogICAgICAgICAgICBmb3IgKDsgIXN0ZXAuZG9uZTsgbmV3SWR4KyssIHN0ZXAgPSBuZXdDaGlsZHJlbi5uZXh0KCkpCiAgICAgICAgICAgICAgb2xkRmliZXIgPSBjcmVhdGVDaGlsZChyZXR1cm5GaWJlciwgc3RlcC52YWx1ZSwgbGFuZXMpLCBudWxsICE9PSBvbGRGaWJlciAmJiAoa25vd25LZXlzID0gd2Fybk9uSW52YWxpZEtleSgKICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgICAgb2xkRmliZXIsCiAgICAgICAgICAgICAgICBzdGVwLnZhbHVlLAogICAgICAgICAgICAgICAga25vd25LZXlzCiAgICAgICAgICAgICAgKSwgY3VycmVudEZpcnN0Q2hpbGQgPSBwbGFjZUNoaWxkKAogICAgICAgICAgICAgICAgb2xkRmliZXIsCiAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCwKICAgICAgICAgICAgICAgIG5ld0lkeAogICAgICAgICAgICAgICksIG51bGwgPT09IHByZXZpb3VzTmV3RmliZXIgPyByZXN1bHRpbmdGaXJzdENoaWxkID0gb2xkRmliZXIgOiBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBvbGRGaWJlciwgcHJldmlvdXNOZXdGaWJlciA9IG9sZEZpYmVyKTsKICAgICAgICAgICAgaXNIeWRyYXRpbmcgJiYgcHVzaFRyZWVGb3JrKHJldHVybkZpYmVyLCBuZXdJZHgpOwogICAgICAgICAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDsKICAgICAgICAgIH0KICAgICAgICAgIGZvciAob2xkRmliZXIgPSBtYXBSZW1haW5pbmdDaGlsZHJlbihvbGRGaWJlcik7ICFzdGVwLmRvbmU7IG5ld0lkeCsrLCBzdGVwID0gbmV3Q2hpbGRyZW4ubmV4dCgpKQogICAgICAgICAgICBuZXh0T2xkRmliZXIgPSB1cGRhdGVGcm9tTWFwKAogICAgICAgICAgICAgIG9sZEZpYmVyLAogICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgIG5ld0lkeCwKICAgICAgICAgICAgICBzdGVwLnZhbHVlLAogICAgICAgICAgICAgIGxhbmVzCiAgICAgICAgICAgICksIG51bGwgIT09IG5leHRPbGRGaWJlciAmJiAoa25vd25LZXlzID0gd2Fybk9uSW52YWxpZEtleSgKICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICBuZXh0T2xkRmliZXIsCiAgICAgICAgICAgICAgc3RlcC52YWx1ZSwKICAgICAgICAgICAgICBrbm93bktleXMKICAgICAgICAgICAgKSwgc2hvdWxkVHJhY2tTaWRlRWZmZWN0cyAmJiBudWxsICE9PSBuZXh0T2xkRmliZXIuYWx0ZXJuYXRlICYmIG9sZEZpYmVyLmRlbGV0ZSgKICAgICAgICAgICAgICBudWxsID09PSBuZXh0T2xkRmliZXIua2V5ID8gbmV3SWR4IDogbmV4dE9sZEZpYmVyLmtleQogICAgICAgICAgICApLCBjdXJyZW50Rmlyc3RDaGlsZCA9IHBsYWNlQ2hpbGQoCiAgICAgICAgICAgICAgbmV4dE9sZEZpYmVyLAogICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLAogICAgICAgICAgICAgIG5ld0lkeAogICAgICAgICAgICApLCBudWxsID09PSBwcmV2aW91c05ld0ZpYmVyID8gcmVzdWx0aW5nRmlyc3RDaGlsZCA9IG5leHRPbGRGaWJlciA6IHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IG5leHRPbGRGaWJlciwgcHJldmlvdXNOZXdGaWJlciA9IG5leHRPbGRGaWJlcik7CiAgICAgICAgICBzaG91bGRUcmFja1NpZGVFZmZlY3RzICYmIG9sZEZpYmVyLmZvckVhY2goZnVuY3Rpb24oY2hpbGQpIHsKICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZCk7CiAgICAgICAgICB9KTsKICAgICAgICAgIGlzSHlkcmF0aW5nICYmIHB1c2hUcmVlRm9yayhyZXR1cm5GaWJlciwgbmV3SWR4KTsKICAgICAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiByZWNvbmNpbGVDaGlsZEZpYmVyc0ltcGwocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBuZXdDaGlsZCwgbGFuZXMpIHsKICAgICAgICAgICJvYmplY3QiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgbnVsbCAhPT0gbmV3Q2hpbGQgJiYgbmV3Q2hpbGQudHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSAmJiBudWxsID09PSBuZXdDaGlsZC5rZXkgJiYgKHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhuZXdDaGlsZCwgbnVsbCwgcmV0dXJuRmliZXIpLCBuZXdDaGlsZCA9IG5ld0NoaWxkLnByb3BzLmNoaWxkcmVuKTsKICAgICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIG51bGwgIT09IG5ld0NoaWxkKSB7CiAgICAgICAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHsKICAgICAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRToKICAgICAgICAgICAgICAgIHZhciBwcmV2RGVidWdJbmZvID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKTsKICAgICAgICAgICAgICAgIGE6IHsKICAgICAgICAgICAgICAgICAgZm9yICh2YXIga2V5ID0gbmV3Q2hpbGQua2V5OyBudWxsICE9PSBjdXJyZW50Rmlyc3RDaGlsZDsgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRGaXJzdENoaWxkLmtleSA9PT0ga2V5KSB7CiAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBuZXdDaGlsZC50eXBlOwogICAgICAgICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoNyA9PT0gY3VycmVudEZpcnN0Q2hpbGQudGFnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLnNpYmxpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmVzID0gdXNlRmliZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLnByb3BzLmNoaWxkcmVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5lcy5yZXR1cm4gPSByZXR1cm5GaWJlcjsKICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5lcy5fZGVidWdPd25lciA9IG5ld0NoaWxkLl9vd25lcjsKICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5lcy5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbzsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMobmV3Q2hpbGQsIGxhbmVzLCByZXR1cm5GaWJlcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIgPSBsYW5lczsKICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRGaXJzdENoaWxkLmVsZW1lbnRUeXBlID09PSBrZXkgfHwgaXNDb21wYXRpYmxlRmFtaWx5Rm9ySG90UmVsb2FkaW5nKAogICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgbmV3Q2hpbGQKICAgICAgICAgICAgICAgICAgICAgICkgfHwgIm9iamVjdCIgPT09IHR5cGVvZiBrZXkgJiYgbnVsbCAhPT0ga2V5ICYmIGtleS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFICYmIHJlc29sdmVMYXp5KGtleSkgPT09IGN1cnJlbnRGaXJzdENoaWxkLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQuc2libGluZwogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICBsYW5lcyA9IHVzZUZpYmVyKGN1cnJlbnRGaXJzdENoaWxkLCBuZXdDaGlsZC5wcm9wcyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXJjZVJlZihsYW5lcywgbmV3Q2hpbGQpOwogICAgICAgICAgICAgICAgICAgICAgICBsYW5lcy5yZXR1cm4gPSByZXR1cm5GaWJlcjsKICAgICAgICAgICAgICAgICAgICAgICAgbGFuZXMuX2RlYnVnT3duZXIgPSBuZXdDaGlsZC5fb3duZXI7CiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmVzLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciA9IGxhbmVzOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpOwogICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkID0gY3VycmVudEZpcnN0Q2hpbGQuc2libGluZzsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBuZXdDaGlsZC50eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFID8gKGxhbmVzID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoCiAgICAgICAgICAgICAgICAgICAgbmV3Q2hpbGQucHJvcHMuY2hpbGRyZW4sCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIubW9kZSwKICAgICAgICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICAgICAgICBuZXdDaGlsZC5rZXkKICAgICAgICAgICAgICAgICAgKSwgbGFuZXMucmV0dXJuID0gcmV0dXJuRmliZXIsIGxhbmVzLl9kZWJ1Z093bmVyID0gcmV0dXJuRmliZXIsIGxhbmVzLl9kZWJ1Z1Rhc2sgPSByZXR1cm5GaWJlci5fZGVidWdUYXNrLCBsYW5lcy5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbywgdmFsaWRhdGVGcmFnbWVudFByb3BzKG5ld0NoaWxkLCBsYW5lcywgcmV0dXJuRmliZXIpLCByZXR1cm5GaWJlciA9IGxhbmVzKSA6IChsYW5lcyA9IGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQoCiAgICAgICAgICAgICAgICAgICAgbmV3Q2hpbGQsCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIubW9kZSwKICAgICAgICAgICAgICAgICAgICBsYW5lcwogICAgICAgICAgICAgICAgICApLCBjb2VyY2VSZWYobGFuZXMsIG5ld0NoaWxkKSwgbGFuZXMucmV0dXJuID0gcmV0dXJuRmliZXIsIGxhbmVzLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvLCByZXR1cm5GaWJlciA9IGxhbmVzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybkZpYmVyID0gcGxhY2VTaW5nbGVDaGlsZChyZXR1cm5GaWJlcik7CiAgICAgICAgICAgICAgICBjdXJyZW50RGVidWdJbmZvID0gcHJldkRlYnVnSW5mbzsKICAgICAgICAgICAgICAgIHJldHVybiByZXR1cm5GaWJlcjsKICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOgogICAgICAgICAgICAgICAgYTogewogICAgICAgICAgICAgICAgICBwcmV2RGVidWdJbmZvID0gbmV3Q2hpbGQ7CiAgICAgICAgICAgICAgICAgIGZvciAobmV3Q2hpbGQgPSBwcmV2RGVidWdJbmZvLmtleTsgbnVsbCAhPT0gY3VycmVudEZpcnN0Q2hpbGQ7ICkgewogICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Rmlyc3RDaGlsZC5rZXkgPT09IG5ld0NoaWxkKQogICAgICAgICAgICAgICAgICAgICAgaWYgKDQgPT09IGN1cnJlbnRGaXJzdENoaWxkLnRhZyAmJiBjdXJyZW50Rmlyc3RDaGlsZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyA9PT0gcHJldkRlYnVnSW5mby5jb250YWluZXJJbmZvICYmIGN1cnJlbnRGaXJzdENoaWxkLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiA9PT0gcHJldkRlYnVnSW5mby5pbXBsZW1lbnRhdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbigKICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZC5zaWJsaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmVzID0gdXNlRmliZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkRlYnVnSW5mby5jaGlsZHJlbiB8fCBbXQogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICBsYW5lcy5yZXR1cm4gPSByZXR1cm5GaWJlcjsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIgPSBsYW5lczsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKTsKICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCA9IGN1cnJlbnRGaXJzdENoaWxkLnNpYmxpbmc7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgbGFuZXMgPSBjcmVhdGVGaWJlckZyb21Qb3J0YWwoCiAgICAgICAgICAgICAgICAgICAgcHJldkRlYnVnSW5mbywKICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlci5tb2RlLAogICAgICAgICAgICAgICAgICAgIGxhbmVzCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGxhbmVzLnJldHVybiA9IHJldHVybkZpYmVyOwogICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciA9IGxhbmVzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHBsYWNlU2luZ2xlQ2hpbGQocmV0dXJuRmliZXIpOwogICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOgogICAgICAgICAgICAgICAgcmV0dXJuIHByZXZEZWJ1Z0luZm8gPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pLCBuZXdDaGlsZCA9IHJlc29sdmVMYXp5KG5ld0NoaWxkKSwgcmV0dXJuRmliZXIgPSByZWNvbmNpbGVDaGlsZEZpYmVyc0ltcGwoCiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCwKICAgICAgICAgICAgICAgICAgbmV3Q2hpbGQsCiAgICAgICAgICAgICAgICAgIGxhbmVzCiAgICAgICAgICAgICAgICApLCBjdXJyZW50RGVidWdJbmZvID0gcHJldkRlYnVnSW5mbywgcmV0dXJuRmliZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKG5ld0NoaWxkKSkKICAgICAgICAgICAgICByZXR1cm4gcHJldkRlYnVnSW5mbyA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbyksIHJldHVybkZpYmVyID0gcmVjb25jaWxlQ2hpbGRyZW5BcnJheSgKICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsCiAgICAgICAgICAgICAgICBuZXdDaGlsZCwKICAgICAgICAgICAgICAgIGxhbmVzCiAgICAgICAgICAgICAgKSwgY3VycmVudERlYnVnSW5mbyA9IHByZXZEZWJ1Z0luZm8sIHJldHVybkZpYmVyOwogICAgICAgICAgICBpZiAoZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHsKICAgICAgICAgICAgICBwcmV2RGVidWdJbmZvID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKTsKICAgICAgICAgICAgICBrZXkgPSBnZXRJdGVyYXRvckZuKG5ld0NoaWxkKTsKICAgICAgICAgICAgICBpZiAoImZ1bmN0aW9uIiAhPT0gdHlwZW9mIGtleSkKICAgICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgICAiQW4gb2JqZWN0IGlzIG5vdCBhbiBpdGVyYWJsZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHZhciBuZXdDaGlsZHJlbiA9IGtleS5jYWxsKG5ld0NoaWxkKTsKICAgICAgICAgICAgICBpZiAobmV3Q2hpbGRyZW4gPT09IG5ld0NoaWxkKSB7CiAgICAgICAgICAgICAgICBpZiAoMCAhPT0gcmV0dXJuRmliZXIudGFnIHx8ICJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIgIT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXR1cm5GaWJlci50eXBlKSB8fCAiW29iamVjdCBHZW5lcmF0b3JdIiAhPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5ld0NoaWxkcmVuKSkKICAgICAgICAgICAgICAgICAgZGlkV2FybkFib3V0R2VuZXJhdG9ycyB8fCBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgICAgICJVc2luZyBJdGVyYXRvcnMgYXMgY2hpbGRyZW4gaXMgdW5zdXBwb3J0ZWQgYW5kIHdpbGwgbGlrZWx5IHlpZWxkIHVuZXhwZWN0ZWQgcmVzdWx0cyBiZWNhdXNlIGVudW1lcmF0aW5nIGEgZ2VuZXJhdG9yIG11dGF0ZXMgaXQuIFlvdSBtYXkgY29udmVydCBpdCB0byBhbiBhcnJheSB3aXRoIGBBcnJheS5mcm9tKClgIG9yIHRoZSBgWy4uLnNwcmVhZF1gIG9wZXJhdG9yIGJlZm9yZSByZW5kZXJpbmcuIFlvdSBjYW4gYWxzbyB1c2UgYW4gSXRlcmFibGUgdGhhdCBjYW4gaXRlcmF0ZSBtdWx0aXBsZSB0aW1lcyBvdmVyIHRoZSBzYW1lIGl0ZW1zLiIKICAgICAgICAgICAgICAgICAgKSwgZGlkV2FybkFib3V0R2VuZXJhdG9ycyA9IHRydWU7CiAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICBuZXdDaGlsZC5lbnRyaWVzICE9PSBrZXkgfHwgZGlkV2FybkFib3V0TWFwcyB8fCAoY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICAgIlVzaW5nIE1hcHMgYXMgY2hpbGRyZW4gaXMgbm90IHN1cHBvcnRlZC4gVXNlIGFuIGFycmF5IG9mIGtleWVkIFJlYWN0RWxlbWVudHMgaW5zdGVhZC4iCiAgICAgICAgICAgICAgICApLCBkaWRXYXJuQWJvdXRNYXBzID0gdHJ1ZSk7CiAgICAgICAgICAgICAgcmV0dXJuRmliZXIgPSByZWNvbmNpbGVDaGlsZHJlbkl0ZXJhdG9yKAogICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCwKICAgICAgICAgICAgICAgIG5ld0NoaWxkcmVuLAogICAgICAgICAgICAgICAgbGFuZXMKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGN1cnJlbnREZWJ1Z0luZm8gPSBwcmV2RGVidWdJbmZvOwogICAgICAgICAgICAgIHJldHVybiByZXR1cm5GaWJlcjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIG5ld0NoaWxkLnRoZW4pCiAgICAgICAgICAgICAgcmV0dXJuIHByZXZEZWJ1Z0luZm8gPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pLCByZXR1cm5GaWJlciA9IHJlY29uY2lsZUNoaWxkRmliZXJzSW1wbCgKICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsCiAgICAgICAgICAgICAgICB1bndyYXBUaGVuYWJsZShuZXdDaGlsZCksCiAgICAgICAgICAgICAgICBsYW5lcwogICAgICAgICAgICAgICksIGN1cnJlbnREZWJ1Z0luZm8gPSBwcmV2RGVidWdJbmZvLCByZXR1cm5GaWJlcjsKICAgICAgICAgICAgaWYgKG5ld0NoaWxkLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUpCiAgICAgICAgICAgICAgcmV0dXJuIHJlY29uY2lsZUNoaWxkRmliZXJzSW1wbCgKICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsCiAgICAgICAgICAgICAgICByZWFkQ29udGV4dER1cmluZ1JlY29uY2lsaWF0aW9uKHJldHVybkZpYmVyLCBuZXdDaGlsZCksCiAgICAgICAgICAgICAgICBsYW5lcwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCJzdHJpbmciID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgIiIgIT09IG5ld0NoaWxkIHx8ICJudW1iZXIiID09PSB0eXBlb2YgbmV3Q2hpbGQgfHwgImJpZ2ludCIgPT09IHR5cGVvZiBuZXdDaGlsZCkKICAgICAgICAgICAgcmV0dXJuIHByZXZEZWJ1Z0luZm8gPSAiIiArIG5ld0NoaWxkLCBudWxsICE9PSBjdXJyZW50Rmlyc3RDaGlsZCAmJiA2ID09PSBjdXJyZW50Rmlyc3RDaGlsZC50YWcgPyAoZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4oCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQuc2libGluZwogICAgICAgICAgICApLCBsYW5lcyA9IHVzZUZpYmVyKGN1cnJlbnRGaXJzdENoaWxkLCBwcmV2RGVidWdJbmZvKSwgbGFuZXMucmV0dXJuID0gcmV0dXJuRmliZXIsIHJldHVybkZpYmVyID0gbGFuZXMpIDogKGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCksIGxhbmVzID0gY3JlYXRlRmliZXJGcm9tVGV4dCgKICAgICAgICAgICAgICBwcmV2RGVidWdJbmZvLAogICAgICAgICAgICAgIHJldHVybkZpYmVyLm1vZGUsCiAgICAgICAgICAgICAgbGFuZXMKICAgICAgICAgICAgKSwgbGFuZXMucmV0dXJuID0gcmV0dXJuRmliZXIsIGxhbmVzLl9kZWJ1Z093bmVyID0gcmV0dXJuRmliZXIsIGxhbmVzLl9kZWJ1Z1Rhc2sgPSByZXR1cm5GaWJlci5fZGVidWdUYXNrLCBsYW5lcy5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbywgcmV0dXJuRmliZXIgPSBsYW5lcyksIHBsYWNlU2luZ2xlQ2hpbGQocmV0dXJuRmliZXIpOwogICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpOwogICAgICAgICAgInN5bWJvbCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiB3YXJuT25TeW1ib2xUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7CiAgICAgICAgICByZXR1cm4gZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKSB7CiAgICAgICAgICB2YXIgcHJldkRlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm87CiAgICAgICAgICBjdXJyZW50RGVidWdJbmZvID0gbnVsbDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHRoZW5hYmxlSW5kZXhDb3VudGVyJDEgPSAwOwogICAgICAgICAgICB2YXIgZmlyc3RDaGlsZEZpYmVyID0gcmVjb25jaWxlQ2hpbGRGaWJlcnNJbXBsKAogICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLAogICAgICAgICAgICAgIG5ld0NoaWxkLAogICAgICAgICAgICAgIGxhbmVzCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHRoZW5hYmxlU3RhdGUkMSA9IG51bGw7CiAgICAgICAgICAgIHJldHVybiBmaXJzdENoaWxkRmliZXI7CiAgICAgICAgICB9IGNhdGNoICh4KSB7CiAgICAgICAgICAgIGlmICh4ID09PSBTdXNwZW5zZUV4Y2VwdGlvbiB8fCB4ID09PSBTdXNwZW5zZUFjdGlvbkV4Y2VwdGlvbikgdGhyb3cgeDsKICAgICAgICAgICAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoMjksIHgsIG51bGwsIHJldHVybkZpYmVyLm1vZGUpOwogICAgICAgICAgICBmaWJlci5sYW5lcyA9IGxhbmVzOwogICAgICAgICAgICBmaWJlci5yZXR1cm4gPSByZXR1cm5GaWJlcjsKICAgICAgICAgICAgdmFyIGRlYnVnSW5mbyA9IGZpYmVyLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvOwogICAgICAgICAgICBmaWJlci5fZGVidWdPd25lciA9IHJldHVybkZpYmVyLl9kZWJ1Z093bmVyOwogICAgICAgICAgICBmaWJlci5fZGVidWdUYXNrID0gcmV0dXJuRmliZXIuX2RlYnVnVGFzazsKICAgICAgICAgICAgaWYgKG51bGwgIT0gZGVidWdJbmZvKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IGRlYnVnSW5mby5sZW5ndGggLSAxOyAwIDw9IGk7IGktLSkKICAgICAgICAgICAgICAgIGlmICgic3RyaW5nIiA9PT0gdHlwZW9mIGRlYnVnSW5mb1tpXS5zdGFjaykgewogICAgICAgICAgICAgICAgICBmaWJlci5fZGVidWdPd25lciA9IGRlYnVnSW5mb1tpXTsKICAgICAgICAgICAgICAgICAgZmliZXIuX2RlYnVnVGFzayA9IGRlYnVnSW5mb1tpXS5kZWJ1Z1Rhc2s7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBmaWJlcjsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGN1cnJlbnREZWJ1Z0luZm8gPSBwcmV2RGVidWdJbmZvOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdmFsaWRhdGVTdXNwZW5zZUxpc3ROZXN0ZWRDaGlsZChjaGlsZFNsb3QsIGluZGV4KSB7CiAgICAgICAgdmFyIGlzQW5BcnJheSA9IGlzQXJyYXlJbXBsKGNoaWxkU2xvdCk7CiAgICAgICAgY2hpbGRTbG90ID0gIWlzQW5BcnJheSAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgZ2V0SXRlcmF0b3JGbihjaGlsZFNsb3QpOwogICAgICAgIHJldHVybiBpc0FuQXJyYXkgfHwgY2hpbGRTbG90ID8gKGlzQW5BcnJheSA9IGlzQW5BcnJheSA/ICJhcnJheSIgOiAiaXRlcmFibGUiLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkEgbmVzdGVkICVzIHdhcyBwYXNzZWQgdG8gcm93ICMlcyBpbiA8U3VzcGVuc2VMaXN0IC8+LiBXcmFwIGl0IGluIGFuIGFkZGl0aW9uYWwgU3VzcGVuc2VMaXN0IHRvIGNvbmZpZ3VyZSBpdHMgcmV2ZWFsT3JkZXI6IDxTdXNwZW5zZUxpc3QgcmV2ZWFsT3JkZXI9Li4uPiAuLi4gPFN1c3BlbnNlTGlzdCByZXZlYWxPcmRlcj0uLi4+eyVzfTwvU3VzcGVuc2VMaXN0PiAuLi4gPC9TdXNwZW5zZUxpc3Q+IiwKICAgICAgICAgIGlzQW5BcnJheSwKICAgICAgICAgIGluZGV4LAogICAgICAgICAgaXNBbkFycmF5CiAgICAgICAgKSwgZmFsc2UpIDogdHJ1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpbml0aWFsaXplVXBkYXRlUXVldWUoZmliZXIpIHsKICAgICAgICBmaWJlci51cGRhdGVRdWV1ZSA9IHsKICAgICAgICAgIGJhc2VTdGF0ZTogZmliZXIubWVtb2l6ZWRTdGF0ZSwKICAgICAgICAgIGZpcnN0QmFzZVVwZGF0ZTogbnVsbCwKICAgICAgICAgIGxhc3RCYXNlVXBkYXRlOiBudWxsLAogICAgICAgICAgc2hhcmVkOiB7IHBlbmRpbmc6IG51bGwsIGxhbmVzOiAwLCBoaWRkZW5DYWxsYmFja3M6IG51bGwgfSwKICAgICAgICAgIGNhbGxiYWNrczogbnVsbAogICAgICAgIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY2xvbmVVcGRhdGVRdWV1ZShjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyKSB7CiAgICAgICAgY3VycmVudDIgPSBjdXJyZW50Mi51cGRhdGVRdWV1ZTsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIudXBkYXRlUXVldWUgPT09IGN1cnJlbnQyICYmICh3b3JrSW5Qcm9ncmVzczIudXBkYXRlUXVldWUgPSB7CiAgICAgICAgICBiYXNlU3RhdGU6IGN1cnJlbnQyLmJhc2VTdGF0ZSwKICAgICAgICAgIGZpcnN0QmFzZVVwZGF0ZTogY3VycmVudDIuZmlyc3RCYXNlVXBkYXRlLAogICAgICAgICAgbGFzdEJhc2VVcGRhdGU6IGN1cnJlbnQyLmxhc3RCYXNlVXBkYXRlLAogICAgICAgICAgc2hhcmVkOiBjdXJyZW50Mi5zaGFyZWQsCiAgICAgICAgICBjYWxsYmFja3M6IG51bGwKICAgICAgICB9KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjcmVhdGVVcGRhdGUobGFuZSkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBsYW5lLAogICAgICAgICAgdGFnOiBVcGRhdGVTdGF0ZSwKICAgICAgICAgIHBheWxvYWQ6IG51bGwsCiAgICAgICAgICBjYWxsYmFjazogbnVsbCwKICAgICAgICAgIG5leHQ6IG51bGwKICAgICAgICB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGVucXVldWVVcGRhdGUoZmliZXIsIHVwZGF0ZSwgbGFuZSkgewogICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGZpYmVyLnVwZGF0ZVF1ZXVlOwogICAgICAgIGlmIChudWxsID09PSB1cGRhdGVRdWV1ZSkgcmV0dXJuIG51bGw7CiAgICAgICAgdXBkYXRlUXVldWUgPSB1cGRhdGVRdWV1ZS5zaGFyZWQ7CiAgICAgICAgaWYgKGN1cnJlbnRseVByb2Nlc3NpbmdRdWV1ZSA9PT0gdXBkYXRlUXVldWUgJiYgIWRpZFdhcm5VcGRhdGVJbnNpZGVVcGRhdGUpIHsKICAgICAgICAgIHZhciBjb21wb25lbnROYW1lMiA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpOwogICAgICAgICAgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIkFuIHVwZGF0ZSAoc2V0U3RhdGUsIHJlcGxhY2VTdGF0ZSwgb3IgZm9yY2VVcGRhdGUpIHdhcyBzY2hlZHVsZWQgZnJvbSBpbnNpZGUgYW4gdXBkYXRlIGZ1bmN0aW9uLiBVcGRhdGUgZnVuY3Rpb25zIHNob3VsZCBiZSBwdXJlLCB3aXRoIHplcm8gc2lkZS1lZmZlY3RzLiBDb25zaWRlciB1c2luZyBjb21wb25lbnREaWRVcGRhdGUgb3IgYSBjYWxsYmFjay5cblxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudDogJXMiLAogICAgICAgICAgICBjb21wb25lbnROYW1lMgogICAgICAgICAgKTsKICAgICAgICAgIGRpZFdhcm5VcGRhdGVJbnNpZGVVcGRhdGUgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiBSZW5kZXJDb250ZXh0KSAhPT0gTm9Db250ZXh0KQogICAgICAgICAgcmV0dXJuIGNvbXBvbmVudE5hbWUyID0gdXBkYXRlUXVldWUucGVuZGluZywgbnVsbCA9PT0gY29tcG9uZW50TmFtZTIgPyB1cGRhdGUubmV4dCA9IHVwZGF0ZSA6ICh1cGRhdGUubmV4dCA9IGNvbXBvbmVudE5hbWUyLm5leHQsIGNvbXBvbmVudE5hbWUyLm5leHQgPSB1cGRhdGUpLCB1cGRhdGVRdWV1ZS5wZW5kaW5nID0gdXBkYXRlLCB1cGRhdGUgPSBnZXRSb290Rm9yVXBkYXRlZEZpYmVyKGZpYmVyKSwgbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3QoZmliZXIsIG51bGwsIGxhbmUpLCB1cGRhdGU7CiAgICAgICAgZW5xdWV1ZVVwZGF0ZSQxKGZpYmVyLCB1cGRhdGVRdWV1ZSwgdXBkYXRlLCBsYW5lKTsKICAgICAgICByZXR1cm4gZ2V0Um9vdEZvclVwZGF0ZWRGaWJlcihmaWJlcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZW50YW5nbGVUcmFuc2l0aW9ucyhyb290MiwgZmliZXIsIGxhbmUpIHsKICAgICAgICBmaWJlciA9IGZpYmVyLnVwZGF0ZVF1ZXVlOwogICAgICAgIGlmIChudWxsICE9PSBmaWJlciAmJiAoZmliZXIgPSBmaWJlci5zaGFyZWQsIDAgIT09IChsYW5lICYgNDE5NDA0OCkpKSB7CiAgICAgICAgICB2YXIgcXVldWVMYW5lcyA9IGZpYmVyLmxhbmVzOwogICAgICAgICAgcXVldWVMYW5lcyAmPSByb290Mi5wZW5kaW5nTGFuZXM7CiAgICAgICAgICBsYW5lIHw9IHF1ZXVlTGFuZXM7CiAgICAgICAgICBmaWJlci5sYW5lcyA9IGxhbmU7CiAgICAgICAgICBtYXJrUm9vdEVudGFuZ2xlZChyb290MiwgbGFuZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGVucXVldWVDYXB0dXJlZFVwZGF0ZSh3b3JrSW5Qcm9ncmVzczIsIGNhcHR1cmVkVXBkYXRlKSB7CiAgICAgICAgdmFyIHF1ZXVlID0gd29ya0luUHJvZ3Jlc3MyLnVwZGF0ZVF1ZXVlLCBjdXJyZW50MiA9IHdvcmtJblByb2dyZXNzMi5hbHRlcm5hdGU7CiAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQyICYmIChjdXJyZW50MiA9IGN1cnJlbnQyLnVwZGF0ZVF1ZXVlLCBxdWV1ZSA9PT0gY3VycmVudDIpKSB7CiAgICAgICAgICB2YXIgbmV3Rmlyc3QgPSBudWxsLCBuZXdMYXN0ID0gbnVsbDsKICAgICAgICAgIHF1ZXVlID0gcXVldWUuZmlyc3RCYXNlVXBkYXRlOwogICAgICAgICAgaWYgKG51bGwgIT09IHF1ZXVlKSB7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICB2YXIgY2xvbmUgPSB7CiAgICAgICAgICAgICAgICBsYW5lOiBxdWV1ZS5sYW5lLAogICAgICAgICAgICAgICAgdGFnOiBxdWV1ZS50YWcsCiAgICAgICAgICAgICAgICBwYXlsb2FkOiBxdWV1ZS5wYXlsb2FkLAogICAgICAgICAgICAgICAgY2FsbGJhY2s6IG51bGwsCiAgICAgICAgICAgICAgICBuZXh0OiBudWxsCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBudWxsID09PSBuZXdMYXN0ID8gbmV3Rmlyc3QgPSBuZXdMYXN0ID0gY2xvbmUgOiBuZXdMYXN0ID0gbmV3TGFzdC5uZXh0ID0gY2xvbmU7CiAgICAgICAgICAgICAgcXVldWUgPSBxdWV1ZS5uZXh0OwogICAgICAgICAgICB9IHdoaWxlIChudWxsICE9PSBxdWV1ZSk7CiAgICAgICAgICAgIG51bGwgPT09IG5ld0xhc3QgPyBuZXdGaXJzdCA9IG5ld0xhc3QgPSBjYXB0dXJlZFVwZGF0ZSA6IG5ld0xhc3QgPSBuZXdMYXN0Lm5leHQgPSBjYXB0dXJlZFVwZGF0ZTsKICAgICAgICAgIH0gZWxzZSBuZXdGaXJzdCA9IG5ld0xhc3QgPSBjYXB0dXJlZFVwZGF0ZTsKICAgICAgICAgIHF1ZXVlID0gewogICAgICAgICAgICBiYXNlU3RhdGU6IGN1cnJlbnQyLmJhc2VTdGF0ZSwKICAgICAgICAgICAgZmlyc3RCYXNlVXBkYXRlOiBuZXdGaXJzdCwKICAgICAgICAgICAgbGFzdEJhc2VVcGRhdGU6IG5ld0xhc3QsCiAgICAgICAgICAgIHNoYXJlZDogY3VycmVudDIuc2hhcmVkLAogICAgICAgICAgICBjYWxsYmFja3M6IGN1cnJlbnQyLmNhbGxiYWNrcwogICAgICAgICAgfTsKICAgICAgICAgIHdvcmtJblByb2dyZXNzMi51cGRhdGVRdWV1ZSA9IHF1ZXVlOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB3b3JrSW5Qcm9ncmVzczIgPSBxdWV1ZS5sYXN0QmFzZVVwZGF0ZTsKICAgICAgICBudWxsID09PSB3b3JrSW5Qcm9ncmVzczIgPyBxdWV1ZS5maXJzdEJhc2VVcGRhdGUgPSBjYXB0dXJlZFVwZGF0ZSA6IHdvcmtJblByb2dyZXNzMi5uZXh0ID0gY2FwdHVyZWRVcGRhdGU7CiAgICAgICAgcXVldWUubGFzdEJhc2VVcGRhdGUgPSBjYXB0dXJlZFVwZGF0ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzdXNwZW5kSWZVcGRhdGVSZWFkRnJvbUVudGFuZ2xlZEFzeW5jQWN0aW9uKCkgewogICAgICAgIGlmIChkaWRSZWFkRnJvbUVudGFuZ2xlZEFzeW5jQWN0aW9uKSB7CiAgICAgICAgICB2YXIgZW50YW5nbGVkQWN0aW9uVGhlbmFibGUgPSBjdXJyZW50RW50YW5nbGVkQWN0aW9uVGhlbmFibGU7CiAgICAgICAgICBpZiAobnVsbCAhPT0gZW50YW5nbGVkQWN0aW9uVGhlbmFibGUpIHRocm93IGVudGFuZ2xlZEFjdGlvblRoZW5hYmxlOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MyLCBwcm9wcywgaW5zdGFuY2UkanNjb21wJDAsIHJlbmRlckxhbmVzMikgewogICAgICAgIGRpZFJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24gPSBmYWxzZTsKICAgICAgICB2YXIgcXVldWUgPSB3b3JrSW5Qcm9ncmVzczIudXBkYXRlUXVldWU7CiAgICAgICAgaGFzRm9yY2VVcGRhdGUgPSBmYWxzZTsKICAgICAgICBjdXJyZW50bHlQcm9jZXNzaW5nUXVldWUgPSBxdWV1ZS5zaGFyZWQ7CiAgICAgICAgdmFyIGZpcnN0QmFzZVVwZGF0ZSA9IHF1ZXVlLmZpcnN0QmFzZVVwZGF0ZSwgbGFzdEJhc2VVcGRhdGUgPSBxdWV1ZS5sYXN0QmFzZVVwZGF0ZSwgcGVuZGluZ1F1ZXVlID0gcXVldWUuc2hhcmVkLnBlbmRpbmc7CiAgICAgICAgaWYgKG51bGwgIT09IHBlbmRpbmdRdWV1ZSkgewogICAgICAgICAgcXVldWUuc2hhcmVkLnBlbmRpbmcgPSBudWxsOwogICAgICAgICAgdmFyIGxhc3RQZW5kaW5nVXBkYXRlID0gcGVuZGluZ1F1ZXVlLCBmaXJzdFBlbmRpbmdVcGRhdGUgPSBsYXN0UGVuZGluZ1VwZGF0ZS5uZXh0OwogICAgICAgICAgbGFzdFBlbmRpbmdVcGRhdGUubmV4dCA9IG51bGw7CiAgICAgICAgICBudWxsID09PSBsYXN0QmFzZVVwZGF0ZSA/IGZpcnN0QmFzZVVwZGF0ZSA9IGZpcnN0UGVuZGluZ1VwZGF0ZSA6IGxhc3RCYXNlVXBkYXRlLm5leHQgPSBmaXJzdFBlbmRpbmdVcGRhdGU7CiAgICAgICAgICBsYXN0QmFzZVVwZGF0ZSA9IGxhc3RQZW5kaW5nVXBkYXRlOwogICAgICAgICAgdmFyIGN1cnJlbnQyID0gd29ya0luUHJvZ3Jlc3MyLmFsdGVybmF0ZTsKICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQyICYmIChjdXJyZW50MiA9IGN1cnJlbnQyLnVwZGF0ZVF1ZXVlLCBwZW5kaW5nUXVldWUgPSBjdXJyZW50Mi5sYXN0QmFzZVVwZGF0ZSwgcGVuZGluZ1F1ZXVlICE9PSBsYXN0QmFzZVVwZGF0ZSAmJiAobnVsbCA9PT0gcGVuZGluZ1F1ZXVlID8gY3VycmVudDIuZmlyc3RCYXNlVXBkYXRlID0gZmlyc3RQZW5kaW5nVXBkYXRlIDogcGVuZGluZ1F1ZXVlLm5leHQgPSBmaXJzdFBlbmRpbmdVcGRhdGUsIGN1cnJlbnQyLmxhc3RCYXNlVXBkYXRlID0gbGFzdFBlbmRpbmdVcGRhdGUpKTsKICAgICAgICB9CiAgICAgICAgaWYgKG51bGwgIT09IGZpcnN0QmFzZVVwZGF0ZSkgewogICAgICAgICAgdmFyIG5ld1N0YXRlID0gcXVldWUuYmFzZVN0YXRlOwogICAgICAgICAgbGFzdEJhc2VVcGRhdGUgPSAwOwogICAgICAgICAgY3VycmVudDIgPSBmaXJzdFBlbmRpbmdVcGRhdGUgPSBsYXN0UGVuZGluZ1VwZGF0ZSA9IG51bGw7CiAgICAgICAgICBwZW5kaW5nUXVldWUgPSBmaXJzdEJhc2VVcGRhdGU7CiAgICAgICAgICBkbyB7CiAgICAgICAgICAgIHZhciB1cGRhdGVMYW5lID0gcGVuZGluZ1F1ZXVlLmxhbmUgJiAtNTM2ODcwOTEzLCBpc0hpZGRlblVwZGF0ZSA9IHVwZGF0ZUxhbmUgIT09IHBlbmRpbmdRdWV1ZS5sYW5lOwogICAgICAgICAgICBpZiAoaXNIaWRkZW5VcGRhdGUgPyAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiB1cGRhdGVMYW5lKSA9PT0gdXBkYXRlTGFuZSA6IChyZW5kZXJMYW5lczIgJiB1cGRhdGVMYW5lKSA9PT0gdXBkYXRlTGFuZSkgewogICAgICAgICAgICAgIDAgIT09IHVwZGF0ZUxhbmUgJiYgdXBkYXRlTGFuZSA9PT0gY3VycmVudEVudGFuZ2xlZExhbmUgJiYgKGRpZFJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24gPSB0cnVlKTsKICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50MiAmJiAoY3VycmVudDIgPSBjdXJyZW50Mi5uZXh0ID0gewogICAgICAgICAgICAgICAgbGFuZTogMCwKICAgICAgICAgICAgICAgIHRhZzogcGVuZGluZ1F1ZXVlLnRhZywKICAgICAgICAgICAgICAgIHBheWxvYWQ6IHBlbmRpbmdRdWV1ZS5wYXlsb2FkLAogICAgICAgICAgICAgICAgY2FsbGJhY2s6IG51bGwsCiAgICAgICAgICAgICAgICBuZXh0OiBudWxsCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgYTogewogICAgICAgICAgICAgICAgdXBkYXRlTGFuZSA9IHdvcmtJblByb2dyZXNzMjsKICAgICAgICAgICAgICAgIHZhciBwYXJ0aWFsU3RhdGUgPSBwZW5kaW5nUXVldWU7CiAgICAgICAgICAgICAgICB2YXIgbmV4dFByb3BzID0gcHJvcHMsIGluc3RhbmNlID0gaW5zdGFuY2UkanNjb21wJDA7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHBhcnRpYWxTdGF0ZS50YWcpIHsKICAgICAgICAgICAgICAgICAgY2FzZSBSZXBsYWNlU3RhdGU6CiAgICAgICAgICAgICAgICAgICAgcGFydGlhbFN0YXRlID0gcGFydGlhbFN0YXRlLnBheWxvYWQ7CiAgICAgICAgICAgICAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBwYXJ0aWFsU3RhdGUpIHsKICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgdmFyIG5leHRTdGF0ZSA9IHBhcnRpYWxTdGF0ZS5jYWxsKAogICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcwogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGlmICh1cGRhdGVMYW5lLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpYWxTdGF0ZS5jYWxsKGluc3RhbmNlLCBuZXdTdGF0ZSwgbmV4dFByb3BzKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyhmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0gbmV4dFN0YXRlOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGUgPSBwYXJ0aWFsU3RhdGU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgY2FzZSBDYXB0dXJlVXBkYXRlOgogICAgICAgICAgICAgICAgICAgIHVwZGF0ZUxhbmUuZmxhZ3MgPSB1cGRhdGVMYW5lLmZsYWdzICYgLTY1NTM3IHwgMTI4OwogICAgICAgICAgICAgICAgICBjYXNlIFVwZGF0ZVN0YXRlOgogICAgICAgICAgICAgICAgICAgIG5leHRTdGF0ZSA9IHBhcnRpYWxTdGF0ZS5wYXlsb2FkOwogICAgICAgICAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgbmV4dFN0YXRlKSB7CiAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgIHBhcnRpYWxTdGF0ZSA9IG5leHRTdGF0ZS5jYWxsKAogICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcwogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGlmICh1cGRhdGVMYW5lLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTdGF0ZS5jYWxsKGluc3RhbmNlLCBuZXdTdGF0ZSwgbmV4dFByb3BzKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyhmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgcGFydGlhbFN0YXRlID0gbmV4dFN0YXRlOwogICAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBwYXJ0aWFsU3RhdGUgfHwgdm9pZCAwID09PSBwYXJ0aWFsU3RhdGUpIGJyZWFrIGE7CiAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGUgPSBhc3NpZ24oe30sIG5ld1N0YXRlLCBwYXJ0aWFsU3RhdGUpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICAgIGNhc2UgRm9yY2VVcGRhdGU6CiAgICAgICAgICAgICAgICAgICAgaGFzRm9yY2VVcGRhdGUgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB1cGRhdGVMYW5lID0gcGVuZGluZ1F1ZXVlLmNhbGxiYWNrOwogICAgICAgICAgICAgIG51bGwgIT09IHVwZGF0ZUxhbmUgJiYgKHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSA2NCwgaXNIaWRkZW5VcGRhdGUgJiYgKHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSA4MTkyKSwgaXNIaWRkZW5VcGRhdGUgPSBxdWV1ZS5jYWxsYmFja3MsIG51bGwgPT09IGlzSGlkZGVuVXBkYXRlID8gcXVldWUuY2FsbGJhY2tzID0gW3VwZGF0ZUxhbmVdIDogaXNIaWRkZW5VcGRhdGUucHVzaCh1cGRhdGVMYW5lKSk7CiAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgIGlzSGlkZGVuVXBkYXRlID0gewogICAgICAgICAgICAgICAgbGFuZTogdXBkYXRlTGFuZSwKICAgICAgICAgICAgICAgIHRhZzogcGVuZGluZ1F1ZXVlLnRhZywKICAgICAgICAgICAgICAgIHBheWxvYWQ6IHBlbmRpbmdRdWV1ZS5wYXlsb2FkLAogICAgICAgICAgICAgICAgY2FsbGJhY2s6IHBlbmRpbmdRdWV1ZS5jYWxsYmFjaywKICAgICAgICAgICAgICAgIG5leHQ6IG51bGwKICAgICAgICAgICAgICB9LCBudWxsID09PSBjdXJyZW50MiA/IChmaXJzdFBlbmRpbmdVcGRhdGUgPSBjdXJyZW50MiA9IGlzSGlkZGVuVXBkYXRlLCBsYXN0UGVuZGluZ1VwZGF0ZSA9IG5ld1N0YXRlKSA6IGN1cnJlbnQyID0gY3VycmVudDIubmV4dCA9IGlzSGlkZGVuVXBkYXRlLCBsYXN0QmFzZVVwZGF0ZSB8PSB1cGRhdGVMYW5lOwogICAgICAgICAgICBwZW5kaW5nUXVldWUgPSBwZW5kaW5nUXVldWUubmV4dDsKICAgICAgICAgICAgaWYgKG51bGwgPT09IHBlbmRpbmdRdWV1ZSkKICAgICAgICAgICAgICBpZiAocGVuZGluZ1F1ZXVlID0gcXVldWUuc2hhcmVkLnBlbmRpbmcsIG51bGwgPT09IHBlbmRpbmdRdWV1ZSkKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGlzSGlkZGVuVXBkYXRlID0gcGVuZGluZ1F1ZXVlLCBwZW5kaW5nUXVldWUgPSBpc0hpZGRlblVwZGF0ZS5uZXh0LCBpc0hpZGRlblVwZGF0ZS5uZXh0ID0gbnVsbCwgcXVldWUubGFzdEJhc2VVcGRhdGUgPSBpc0hpZGRlblVwZGF0ZSwgcXVldWUuc2hhcmVkLnBlbmRpbmcgPSBudWxsOwogICAgICAgICAgfSB3aGlsZSAoMSk7CiAgICAgICAgICBudWxsID09PSBjdXJyZW50MiAmJiAobGFzdFBlbmRpbmdVcGRhdGUgPSBuZXdTdGF0ZSk7CiAgICAgICAgICBxdWV1ZS5iYXNlU3RhdGUgPSBsYXN0UGVuZGluZ1VwZGF0ZTsKICAgICAgICAgIHF1ZXVlLmZpcnN0QmFzZVVwZGF0ZSA9IGZpcnN0UGVuZGluZ1VwZGF0ZTsKICAgICAgICAgIHF1ZXVlLmxhc3RCYXNlVXBkYXRlID0gY3VycmVudDI7CiAgICAgICAgICBudWxsID09PSBmaXJzdEJhc2VVcGRhdGUgJiYgKHF1ZXVlLnNoYXJlZC5sYW5lcyA9IDApOwogICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzIHw9IGxhc3RCYXNlVXBkYXRlOwogICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLmxhbmVzID0gbGFzdEJhc2VVcGRhdGU7CiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlOwogICAgICAgIH0KICAgICAgICBjdXJyZW50bHlQcm9jZXNzaW5nUXVldWUgPSBudWxsOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbGxDYWxsYmFjayhjYWxsYmFjaywgY29udGV4dCkgewogICAgICAgIGlmICgiZnVuY3Rpb24iICE9PSB0eXBlb2YgY2FsbGJhY2spCiAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgIkludmFsaWQgYXJndW1lbnQgcGFzc2VkIGFzIGNhbGxiYWNrLiBFeHBlY3RlZCBhIGZ1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAiICsgY2FsbGJhY2sKICAgICAgICAgICk7CiAgICAgICAgY2FsbGJhY2suY2FsbChjb250ZXh0KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRIaWRkZW5DYWxsYmFja3ModXBkYXRlUXVldWUsIGNvbnRleHQpIHsKICAgICAgICB2YXIgaGlkZGVuQ2FsbGJhY2tzID0gdXBkYXRlUXVldWUuc2hhcmVkLmhpZGRlbkNhbGxiYWNrczsKICAgICAgICBpZiAobnVsbCAhPT0gaGlkZGVuQ2FsbGJhY2tzKQogICAgICAgICAgZm9yICh1cGRhdGVRdWV1ZS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzID0gbnVsbCwgdXBkYXRlUXVldWUgPSAwOyB1cGRhdGVRdWV1ZSA8IGhpZGRlbkNhbGxiYWNrcy5sZW5ndGg7IHVwZGF0ZVF1ZXVlKyspCiAgICAgICAgICAgIGNhbGxDYWxsYmFjayhoaWRkZW5DYWxsYmFja3NbdXBkYXRlUXVldWVdLCBjb250ZXh0KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRDYWxsYmFja3ModXBkYXRlUXVldWUsIGNvbnRleHQpIHsKICAgICAgICB2YXIgY2FsbGJhY2tzID0gdXBkYXRlUXVldWUuY2FsbGJhY2tzOwogICAgICAgIGlmIChudWxsICE9PSBjYWxsYmFja3MpCiAgICAgICAgICBmb3IgKHVwZGF0ZVF1ZXVlLmNhbGxiYWNrcyA9IG51bGwsIHVwZGF0ZVF1ZXVlID0gMDsgdXBkYXRlUXVldWUgPCBjYWxsYmFja3MubGVuZ3RoOyB1cGRhdGVRdWV1ZSsrKQogICAgICAgICAgICBjYWxsQ2FsbGJhY2soY2FsbGJhY2tzW3VwZGF0ZVF1ZXVlXSwgY29udGV4dCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcHVzaEhpZGRlbkNvbnRleHQoZmliZXIsIGNvbnRleHQpIHsKICAgICAgICB2YXIgcHJldkVudGFuZ2xlZFJlbmRlckxhbmVzID0gZW50YW5nbGVkUmVuZGVyTGFuZXM7CiAgICAgICAgcHVzaChwcmV2RW50YW5nbGVkUmVuZGVyTGFuZXNDdXJzb3IsIHByZXZFbnRhbmdsZWRSZW5kZXJMYW5lcywgZmliZXIpOwogICAgICAgIHB1c2goY3VycmVudFRyZWVIaWRkZW5TdGFja0N1cnNvciwgY29udGV4dCwgZmliZXIpOwogICAgICAgIGVudGFuZ2xlZFJlbmRlckxhbmVzID0gcHJldkVudGFuZ2xlZFJlbmRlckxhbmVzIHwgY29udGV4dC5iYXNlTGFuZXM7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmV1c2VIaWRkZW5Db250ZXh0T25TdGFjayhmaWJlcikgewogICAgICAgIHB1c2gocHJldkVudGFuZ2xlZFJlbmRlckxhbmVzQ3Vyc29yLCBlbnRhbmdsZWRSZW5kZXJMYW5lcywgZmliZXIpOwogICAgICAgIHB1c2goCiAgICAgICAgICBjdXJyZW50VHJlZUhpZGRlblN0YWNrQ3Vyc29yLAogICAgICAgICAgY3VycmVudFRyZWVIaWRkZW5TdGFja0N1cnNvci5jdXJyZW50LAogICAgICAgICAgZmliZXIKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHBvcEhpZGRlbkNvbnRleHQoZmliZXIpIHsKICAgICAgICBlbnRhbmdsZWRSZW5kZXJMYW5lcyA9IHByZXZFbnRhbmdsZWRSZW5kZXJMYW5lc0N1cnNvci5jdXJyZW50OwogICAgICAgIHBvcChjdXJyZW50VHJlZUhpZGRlblN0YWNrQ3Vyc29yLCBmaWJlcik7CiAgICAgICAgcG9wKHByZXZFbnRhbmdsZWRSZW5kZXJMYW5lc0N1cnNvciwgZmliZXIpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHB1c2hQcmltYXJ5VHJlZVN1c3BlbnNlSGFuZGxlcihoYW5kbGVyKSB7CiAgICAgICAgdmFyIGN1cnJlbnQyID0gaGFuZGxlci5hbHRlcm5hdGU7CiAgICAgICAgcHVzaCgKICAgICAgICAgIHN1c3BlbnNlU3RhY2tDdXJzb3IsCiAgICAgICAgICBzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQgJiBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzaywKICAgICAgICAgIGhhbmRsZXIKICAgICAgICApOwogICAgICAgIHB1c2goc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IsIGhhbmRsZXIsIGhhbmRsZXIpOwogICAgICAgIG51bGwgPT09IHNoZWxsQm91bmRhcnkgJiYgKG51bGwgPT09IGN1cnJlbnQyIHx8IG51bGwgIT09IGN1cnJlbnRUcmVlSGlkZGVuU3RhY2tDdXJzb3IuY3VycmVudCA/IHNoZWxsQm91bmRhcnkgPSBoYW5kbGVyIDogbnVsbCAhPT0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZSAmJiAoc2hlbGxCb3VuZGFyeSA9IGhhbmRsZXIpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwdXNoRGVoeWRyYXRlZEFjdGl2aXR5U3VzcGVuc2VIYW5kbGVyKGZpYmVyKSB7CiAgICAgICAgcHVzaChzdXNwZW5zZVN0YWNrQ3Vyc29yLCBzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQsIGZpYmVyKTsKICAgICAgICBwdXNoKHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLCBmaWJlciwgZmliZXIpOwogICAgICAgIG51bGwgPT09IHNoZWxsQm91bmRhcnkgJiYgKHNoZWxsQm91bmRhcnkgPSBmaWJlcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcHVzaE9mZnNjcmVlblN1c3BlbnNlSGFuZGxlcihmaWJlcikgewogICAgICAgIDIyID09PSBmaWJlci50YWcgPyAocHVzaChzdXNwZW5zZVN0YWNrQ3Vyc29yLCBzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQsIGZpYmVyKSwgcHVzaChzdXNwZW5zZUhhbmRsZXJTdGFja0N1cnNvciwgZmliZXIsIGZpYmVyKSwgbnVsbCA9PT0gc2hlbGxCb3VuZGFyeSAmJiAoc2hlbGxCb3VuZGFyeSA9IGZpYmVyKSkgOiByZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2soZmliZXIpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJldXNlU3VzcGVuc2VIYW5kbGVyT25TdGFjayhmaWJlcikgewogICAgICAgIHB1c2goc3VzcGVuc2VTdGFja0N1cnNvciwgc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50LCBmaWJlcik7CiAgICAgICAgcHVzaCgKICAgICAgICAgIHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLAogICAgICAgICAgc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudCwKICAgICAgICAgIGZpYmVyCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwb3BTdXNwZW5zZUhhbmRsZXIoZmliZXIpIHsKICAgICAgICBwb3Aoc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IsIGZpYmVyKTsKICAgICAgICBzaGVsbEJvdW5kYXJ5ID09PSBmaWJlciAmJiAoc2hlbGxCb3VuZGFyeSA9IG51bGwpOwogICAgICAgIHBvcChzdXNwZW5zZVN0YWNrQ3Vyc29yLCBmaWJlcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZmluZEZpcnN0U3VzcGVuZGVkKHJvdykgewogICAgICAgIGZvciAodmFyIG5vZGUgPSByb3c7IG51bGwgIT09IG5vZGU7ICkgewogICAgICAgICAgaWYgKDEzID09PSBub2RlLnRhZykgewogICAgICAgICAgICB2YXIgc3RhdGUgPSBub2RlLm1lbW9pemVkU3RhdGU7CiAgICAgICAgICAgIGlmIChudWxsICE9PSBzdGF0ZSAmJiAoc3RhdGUgPSBzdGF0ZS5kZWh5ZHJhdGVkLCBudWxsID09PSBzdGF0ZSB8fCBpc1N1c3BlbnNlSW5zdGFuY2VQZW5kaW5nKHN0YXRlKSB8fCBpc1N1c3BlbnNlSW5zdGFuY2VGYWxsYmFjayhzdGF0ZSkpKQogICAgICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgICAgfSBlbHNlIGlmICgxOSA9PT0gbm9kZS50YWcgJiYgKCJmb3J3YXJkcyIgPT09IG5vZGUubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlciB8fCAiYmFja3dhcmRzIiA9PT0gbm9kZS5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyIHx8ICJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzIiA9PT0gbm9kZS5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyIHx8ICJ0b2dldGhlciIgPT09IG5vZGUubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcikpIHsKICAgICAgICAgICAgaWYgKDAgIT09IChub2RlLmZsYWdzICYgMTI4KSkgcmV0dXJuIG5vZGU7CiAgICAgICAgICB9IGVsc2UgaWYgKG51bGwgIT09IG5vZGUuY2hpbGQpIHsKICAgICAgICAgICAgbm9kZS5jaGlsZC5yZXR1cm4gPSBub2RlOwogICAgICAgICAgICBub2RlID0gbm9kZS5jaGlsZDsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobm9kZSA9PT0gcm93KSBicmVhazsKICAgICAgICAgIGZvciAoOyBudWxsID09PSBub2RlLnNpYmxpbmc7ICkgewogICAgICAgICAgICBpZiAobnVsbCA9PT0gbm9kZS5yZXR1cm4gfHwgbm9kZS5yZXR1cm4gPT09IHJvdykgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIG5vZGUgPSBub2RlLnJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIG5vZGUuc2libGluZy5yZXR1cm4gPSBub2RlLnJldHVybjsKICAgICAgICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1vdW50SG9va1R5cGVzRGV2KCkgewogICAgICAgIHZhciBob29rTmFtZSA9IGN1cnJlbnRIb29rTmFtZUluRGV2OwogICAgICAgIG51bGwgPT09IGhvb2tUeXBlc0RldiA/IGhvb2tUeXBlc0RldiA9IFtob29rTmFtZV0gOiBob29rVHlwZXNEZXYucHVzaChob29rTmFtZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXBkYXRlSG9va1R5cGVzRGV2KCkgewogICAgICAgIHZhciBob29rTmFtZSA9IGN1cnJlbnRIb29rTmFtZUluRGV2OwogICAgICAgIGlmIChudWxsICE9PSBob29rVHlwZXNEZXYgJiYgKGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2KyssIGhvb2tUeXBlc0Rldltob29rVHlwZXNVcGRhdGVJbmRleERldl0gIT09IGhvb2tOYW1lKSkgewogICAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUyID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihjdXJyZW50bHlSZW5kZXJpbmdGaWJlcik7CiAgICAgICAgICBpZiAoIWRpZFdhcm5BYm91dE1pc21hdGNoZWRIb29rc0ZvckNvbXBvbmVudC5oYXMoY29tcG9uZW50TmFtZTIpICYmIChkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQuYWRkKGNvbXBvbmVudE5hbWUyKSwgbnVsbCAhPT0gaG9va1R5cGVzRGV2KSkgewogICAgICAgICAgICBmb3IgKHZhciB0YWJsZSA9ICIiLCBpID0gMDsgaSA8PSBob29rVHlwZXNVcGRhdGVJbmRleERldjsgaSsrKSB7CiAgICAgICAgICAgICAgdmFyIG9sZEhvb2tOYW1lID0gaG9va1R5cGVzRGV2W2ldLCBuZXdIb29rTmFtZSA9IGkgPT09IGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID8gaG9va05hbWUgOiBvbGRIb29rTmFtZTsKICAgICAgICAgICAgICBmb3IgKG9sZEhvb2tOYW1lID0gaSArIDEgKyAiLiAiICsgb2xkSG9va05hbWU7IDMwID4gb2xkSG9va05hbWUubGVuZ3RoOyApCiAgICAgICAgICAgICAgICBvbGRIb29rTmFtZSArPSAiICI7CiAgICAgICAgICAgICAgb2xkSG9va05hbWUgKz0gbmV3SG9va05hbWUgKyAiXG4iOwogICAgICAgICAgICAgIHRhYmxlICs9IG9sZEhvb2tOYW1lOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIlJlYWN0IGhhcyBkZXRlY3RlZCBhIGNoYW5nZSBpbiB0aGUgb3JkZXIgb2YgSG9va3MgY2FsbGVkIGJ5ICVzLiBUaGlzIHdpbGwgbGVhZCB0byBidWdzIGFuZCBlcnJvcnMgaWYgbm90IGZpeGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhZCB0aGUgUnVsZXMgb2YgSG9va3M6IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvcnVsZXMtb2YtaG9va3NcblxuICAgUHJldmlvdXMgcmVuZGVyICAgICAgICAgICAgTmV4dCByZW5kZXJcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJXMgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiIsCiAgICAgICAgICAgICAgY29tcG9uZW50TmFtZTIsCiAgICAgICAgICAgICAgdGFibGUKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcykgewogICAgICAgIHZvaWQgMCA9PT0gZGVwcyB8fCBudWxsID09PSBkZXBzIHx8IGlzQXJyYXlJbXBsKGRlcHMpIHx8IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiJXMgcmVjZWl2ZWQgYSBmaW5hbCBhcmd1bWVudCB0aGF0IGlzIG5vdCBhbiBhcnJheSAoaW5zdGVhZCwgcmVjZWl2ZWQgYCVzYCkuIFdoZW4gc3BlY2lmaWVkLCB0aGUgZmluYWwgYXJndW1lbnQgbXVzdCBiZSBhbiBhcnJheS4iLAogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYsCiAgICAgICAgICB0eXBlb2YgZGVwcwogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gd2Fybk9uVXNlRm9ybVN0YXRlSW5EZXYoKSB7CiAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUyID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihjdXJyZW50bHlSZW5kZXJpbmdGaWJlcik7CiAgICAgICAgZGlkV2FybkFib3V0VXNlRm9ybVN0YXRlLmhhcyhjb21wb25lbnROYW1lMikgfHwgKGRpZFdhcm5BYm91dFVzZUZvcm1TdGF0ZS5hZGQoY29tcG9uZW50TmFtZTIpLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgIlJlYWN0RE9NLnVzZUZvcm1TdGF0ZSBoYXMgYmVlbiByZW5hbWVkIHRvIFJlYWN0LnVzZUFjdGlvblN0YXRlLiBQbGVhc2UgdXBkYXRlICVzIHRvIHVzZSBSZWFjdC51c2VBY3Rpb25TdGF0ZS4iLAogICAgICAgICAgY29tcG9uZW50TmFtZTIKICAgICAgICApKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB0aHJvd0ludmFsaWRIb29rRXJyb3IoKSB7CiAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAiSW52YWxpZCBob29rIGNhbGwuIEhvb2tzIGNhbiBvbmx5IGJlIGNhbGxlZCBpbnNpZGUgb2YgdGhlIGJvZHkgb2YgYSBmdW5jdGlvbiBjb21wb25lbnQuIFRoaXMgY291bGQgaGFwcGVuIGZvciBvbmUgb2YgdGhlIGZvbGxvd2luZyByZWFzb25zOlxuMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXG4yLiBZb3UgbWlnaHQgYmUgYnJlYWtpbmcgdGhlIFJ1bGVzIG9mIEhvb2tzXG4zLiBZb3UgbWlnaHQgaGF2ZSBtb3JlIHRoYW4gb25lIGNvcHkgb2YgUmVhY3QgaW4gdGhlIHNhbWUgYXBwXG5TZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9pbnZhbGlkLWhvb2stY2FsbCBmb3IgdGlwcyBhYm91dCBob3cgdG8gZGVidWcgYW5kIGZpeCB0aGlzIHByb2JsZW0uIgogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYXJlSG9va0lucHV0c0VxdWFsKG5leHREZXBzLCBwcmV2RGVwcykgewogICAgICAgIGlmIChpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcykgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmIChudWxsID09PSBwcmV2RGVwcykKICAgICAgICAgIHJldHVybiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiJXMgcmVjZWl2ZWQgYSBmaW5hbCBhcmd1bWVudCBkdXJpbmcgdGhpcyByZW5kZXIsIGJ1dCBub3QgZHVyaW5nIHRoZSBwcmV2aW91cyByZW5kZXIuIEV2ZW4gdGhvdWdoIHRoZSBmaW5hbCBhcmd1bWVudCBpcyBvcHRpb25hbCwgaXRzIHR5cGUgY2Fubm90IGNoYW5nZSBiZXR3ZWVuIHJlbmRlcnMuIiwKICAgICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYKICAgICAgICAgICksIGZhbHNlOwogICAgICAgIG5leHREZXBzLmxlbmd0aCAhPT0gcHJldkRlcHMubGVuZ3RoICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiVGhlIGZpbmFsIGFyZ3VtZW50IHBhc3NlZCB0byAlcyBjaGFuZ2VkIHNpemUgYmV0d2VlbiByZW5kZXJzLiBUaGUgb3JkZXIgYW5kIHNpemUgb2YgdGhpcyBhcnJheSBtdXN0IHJlbWFpbiBjb25zdGFudC5cblxuUHJldmlvdXM6ICVzXG5JbmNvbWluZzogJXMiLAogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYsCiAgICAgICAgICAiWyIgKyBwcmV2RGVwcy5qb2luKCIsICIpICsgIl0iLAogICAgICAgICAgIlsiICsgbmV4dERlcHMuam9pbigiLCAiKSArICJdIgogICAgICAgICk7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcmV2RGVwcy5sZW5ndGggJiYgaSA8IG5leHREZXBzLmxlbmd0aDsgaSsrKQogICAgICAgICAgaWYgKCFvYmplY3RJcyhuZXh0RGVwc1tpXSwgcHJldkRlcHNbaV0pKSByZXR1cm4gZmFsc2U7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVuZGVyV2l0aEhvb2tzKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIENvbXBvbmVudCwgcHJvcHMsIHNlY29uZEFyZywgbmV4dFJlbmRlckxhbmVzKSB7CiAgICAgICAgcmVuZGVyTGFuZXMgPSBuZXh0UmVuZGVyTGFuZXM7CiAgICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIgPSB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgaG9va1R5cGVzRGV2ID0gbnVsbCAhPT0gY3VycmVudDIgPyBjdXJyZW50Mi5fZGVidWdIb29rVHlwZXMgOiBudWxsOwogICAgICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTE7CiAgICAgICAgaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMgPSBudWxsICE9PSBjdXJyZW50MiAmJiBjdXJyZW50Mi50eXBlICE9PSB3b3JrSW5Qcm9ncmVzczIudHlwZTsKICAgICAgICBpZiAoIltvYmplY3QgQXN5bmNGdW5jdGlvbl0iID09PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQ29tcG9uZW50KSB8fCAiW29iamVjdCBBc3luY0dlbmVyYXRvckZ1bmN0aW9uXSIgPT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChDb21wb25lbnQpKQogICAgICAgICAgbmV4dFJlbmRlckxhbmVzID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihjdXJyZW50bHlSZW5kZXJpbmdGaWJlciksIGRpZFdhcm5BYm91dEFzeW5jQ2xpZW50Q29tcG9uZW50LmhhcyhuZXh0UmVuZGVyTGFuZXMpIHx8IChkaWRXYXJuQWJvdXRBc3luY0NsaWVudENvbXBvbmVudC5hZGQobmV4dFJlbmRlckxhbmVzKSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIiVzIGlzIGFuIGFzeW5jIENsaWVudCBDb21wb25lbnQuIE9ubHkgU2VydmVyIENvbXBvbmVudHMgY2FuIGJlIGFzeW5jIGF0IHRoZSBtb21lbnQuIFRoaXMgZXJyb3IgaXMgb2Z0ZW4gY2F1c2VkIGJ5IGFjY2lkZW50YWxseSBhZGRpbmcgYCd1c2UgY2xpZW50J2AgdG8gYSBtb2R1bGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGZvciB0aGUgc2VydmVyLiIsCiAgICAgICAgICAgIG51bGwgPT09IG5leHRSZW5kZXJMYW5lcyA/ICJBbiB1bmtub3duIENvbXBvbmVudCIgOiAiPCIgKyBuZXh0UmVuZGVyTGFuZXMgKyAiPiIKICAgICAgICAgICkpOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlID0gbnVsbDsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIudXBkYXRlUXVldWUgPSBudWxsOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5sYW5lcyA9IDA7CiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IG51bGwgIT09IGN1cnJlbnQyICYmIG51bGwgIT09IGN1cnJlbnQyLm1lbW9pemVkU3RhdGUgPyBIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWIDogbnVsbCAhPT0gaG9va1R5cGVzRGV2ID8gSG9va3NEaXNwYXRjaGVyT25Nb3VudFdpdGhIb29rVHlwZXNJbkRFViA6IEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjsKICAgICAgICBzaG91bGREb3VibGVJbnZva2VVc2VyRm5zSW5Ib29rc0RFViA9IG5leHRSZW5kZXJMYW5lcyA9ICh3b3JrSW5Qcm9ncmVzczIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpICE9PSBOb01vZGU7CiAgICAgICAgdmFyIGNoaWxkcmVuID0gY2FsbENvbXBvbmVudEluREVWKENvbXBvbmVudCwgcHJvcHMsIHNlY29uZEFyZyk7CiAgICAgICAgc2hvdWxkRG91YmxlSW52b2tlVXNlckZuc0luSG9va3NERVYgPSBmYWxzZTsKICAgICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgJiYgKGNoaWxkcmVuID0gcmVuZGVyV2l0aEhvb2tzQWdhaW4oCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICBDb21wb25lbnQsCiAgICAgICAgICBwcm9wcywKICAgICAgICAgIHNlY29uZEFyZwogICAgICAgICkpOwogICAgICAgIGlmIChuZXh0UmVuZGVyTGFuZXMpIHsKICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY2hpbGRyZW4gPSByZW5kZXJXaXRoSG9va3NBZ2FpbigKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgQ29tcG9uZW50LAogICAgICAgICAgICAgIHByb3BzLAogICAgICAgICAgICAgIHNlY29uZEFyZwogICAgICAgICAgICApOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmaW5pc2hSZW5kZXJpbmdIb29rcyhjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICByZXR1cm4gY2hpbGRyZW47CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZmluaXNoUmVuZGVyaW5nSG9va3MoY3VycmVudDIsIHdvcmtJblByb2dyZXNzMikgewogICAgICAgIHdvcmtJblByb2dyZXNzMi5fZGVidWdIb29rVHlwZXMgPSBob29rVHlwZXNEZXY7CiAgICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3MyLmRlcGVuZGVuY2llcyA/IG51bGwgIT09IHRoZW5hYmxlU3RhdGUgJiYgKHdvcmtJblByb2dyZXNzMi5kZXBlbmRlbmNpZXMgPSB7CiAgICAgICAgICBsYW5lczogMCwKICAgICAgICAgIGZpcnN0Q29udGV4dDogbnVsbCwKICAgICAgICAgIF9kZWJ1Z1RoZW5hYmxlU3RhdGU6IHRoZW5hYmxlU3RhdGUKICAgICAgICB9KSA6IHdvcmtJblByb2dyZXNzMi5kZXBlbmRlbmNpZXMuX2RlYnVnVGhlbmFibGVTdGF0ZSA9IHRoZW5hYmxlU3RhdGU7CiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IENvbnRleHRPbmx5RGlzcGF0Y2hlcjsKICAgICAgICB2YXIgZGlkUmVuZGVyVG9vRmV3SG9va3MgPSBudWxsICE9PSBjdXJyZW50SG9vayAmJiBudWxsICE9PSBjdXJyZW50SG9vay5uZXh0OwogICAgICAgIHJlbmRlckxhbmVzID0gMDsKICAgICAgICBob29rVHlwZXNEZXYgPSBjdXJyZW50SG9va05hbWVJbkRldiA9IHdvcmtJblByb2dyZXNzSG9vayA9IGN1cnJlbnRIb29rID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIgPSBudWxsOwogICAgICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTE7CiAgICAgICAgbnVsbCAhPT0gY3VycmVudDIgJiYgKGN1cnJlbnQyLmZsYWdzICYgNjUwMTE3MTIpICE9PSAod29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgNjUwMTE3MTIpICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiSW50ZXJuYWwgUmVhY3QgZXJyb3I6IEV4cGVjdGVkIHN0YXRpYyBmbGFnIHdhcyBtaXNzaW5nLiBQbGVhc2Ugbm90aWZ5IHRoZSBSZWFjdCB0ZWFtLiIKICAgICAgICApOwogICAgICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSBmYWxzZTsKICAgICAgICB0aGVuYWJsZUluZGV4Q291bnRlciA9IDA7CiAgICAgICAgdGhlbmFibGVTdGF0ZSA9IG51bGw7CiAgICAgICAgaWYgKGRpZFJlbmRlclRvb0Zld0hvb2tzKQogICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICJSZW5kZXJlZCBmZXdlciBob29rcyB0aGFuIGV4cGVjdGVkLiBUaGlzIG1heSBiZSBjYXVzZWQgYnkgYW4gYWNjaWRlbnRhbCBlYXJseSByZXR1cm4gc3RhdGVtZW50LiIKICAgICAgICAgICk7CiAgICAgICAgbnVsbCA9PT0gY3VycmVudDIgfHwgZGlkUmVjZWl2ZVVwZGF0ZSB8fCAoY3VycmVudDIgPSBjdXJyZW50Mi5kZXBlbmRlbmNpZXMsIG51bGwgIT09IGN1cnJlbnQyICYmIGNoZWNrSWZDb250ZXh0Q2hhbmdlZChjdXJyZW50MikgJiYgKGRpZFJlY2VpdmVVcGRhdGUgPSB0cnVlKSk7CiAgICAgICAgbmVlZHNUb1Jlc2V0U3VzcGVuZGVkVGhlbmFibGVERVYgPyAobmVlZHNUb1Jlc2V0U3VzcGVuZGVkVGhlbmFibGVERVYgPSBmYWxzZSwgY3VycmVudDIgPSB0cnVlKSA6IGN1cnJlbnQyID0gZmFsc2U7CiAgICAgICAgY3VycmVudDIgJiYgKHdvcmtJblByb2dyZXNzMiA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIod29ya0luUHJvZ3Jlc3MyKSB8fCAiVW5rbm93biIsIGRpZFdhcm5BYm91dFVzZVdyYXBwZWRJblRyeUNhdGNoLmhhcyh3b3JrSW5Qcm9ncmVzczIpIHx8IGRpZFdhcm5BYm91dEFzeW5jQ2xpZW50Q29tcG9uZW50Lmhhcyh3b3JrSW5Qcm9ncmVzczIpIHx8IChkaWRXYXJuQWJvdXRVc2VXcmFwcGVkSW5UcnlDYXRjaC5hZGQod29ya0luUHJvZ3Jlc3MyKSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICJgdXNlYCB3YXMgY2FsbGVkIGZyb20gaW5zaWRlIGEgdHJ5L2NhdGNoIGJsb2NrLiBUaGlzIGlzIG5vdCBhbGxvd2VkIGFuZCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yLiBUbyBoYW5kbGUgZXJyb3JzIHRyaWdnZXJlZCBieSBgdXNlYCwgd3JhcCB5b3VyIGNvbXBvbmVudCBpbiBhIGVycm9yIGJvdW5kYXJ5LiIKICAgICAgICApKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVuZGVyV2l0aEhvb2tzQWdhaW4od29ya0luUHJvZ3Jlc3MyLCBDb21wb25lbnQsIHByb3BzLCBzZWNvbmRBcmcpIHsKICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IHdvcmtJblByb2dyZXNzMjsKICAgICAgICB2YXIgbnVtYmVyT2ZSZVJlbmRlcnMgPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyAmJiAodGhlbmFibGVTdGF0ZSA9IG51bGwpOwogICAgICAgICAgdGhlbmFibGVJbmRleENvdW50ZXIgPSAwOwogICAgICAgICAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzID0gZmFsc2U7CiAgICAgICAgICBpZiAobnVtYmVyT2ZSZVJlbmRlcnMgPj0gUkVfUkVOREVSX0xJTUlUKQogICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAiVG9vIG1hbnkgcmUtcmVuZGVycy4gUmVhY3QgbGltaXRzIHRoZSBudW1iZXIgb2YgcmVuZGVycyB0byBwcmV2ZW50IGFuIGluZmluaXRlIGxvb3AuIgogICAgICAgICAgICApOwogICAgICAgICAgbnVtYmVyT2ZSZVJlbmRlcnMgKz0gMTsKICAgICAgICAgIGlnbm9yZVByZXZpb3VzRGVwZW5kZW5jaWVzID0gZmFsc2U7CiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBjdXJyZW50SG9vayA9IG51bGw7CiAgICAgICAgICBpZiAobnVsbCAhPSB3b3JrSW5Qcm9ncmVzczIudXBkYXRlUXVldWUpIHsKICAgICAgICAgICAgdmFyIGNoaWxkcmVuID0gd29ya0luUHJvZ3Jlc3MyLnVwZGF0ZVF1ZXVlOwogICAgICAgICAgICBjaGlsZHJlbi5sYXN0RWZmZWN0ID0gbnVsbDsKICAgICAgICAgICAgY2hpbGRyZW4uZXZlbnRzID0gbnVsbDsKICAgICAgICAgICAgY2hpbGRyZW4uc3RvcmVzID0gbnVsbDsKICAgICAgICAgICAgbnVsbCAhPSBjaGlsZHJlbi5tZW1vQ2FjaGUgJiYgKGNoaWxkcmVuLm1lbW9DYWNoZS5pbmRleCA9IDApOwogICAgICAgICAgfQogICAgICAgICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTsKICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVY7CiAgICAgICAgICBjaGlsZHJlbiA9IGNhbGxDb21wb25lbnRJbkRFVihDb21wb25lbnQsIHByb3BzLCBzZWNvbmRBcmcpOwogICAgICAgIH0gd2hpbGUgKGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyk7CiAgICAgICAgcmV0dXJuIGNoaWxkcmVuOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIFRyYW5zaXRpb25Bd2FyZUhvc3RDb21wb25lbnQoKSB7CiAgICAgICAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5ILCBtYXliZVRoZW5hYmxlID0gZGlzcGF0Y2hlci51c2VTdGF0ZSgpWzBdOwogICAgICAgIG1heWJlVGhlbmFibGUgPSAiZnVuY3Rpb24iID09PSB0eXBlb2YgbWF5YmVUaGVuYWJsZS50aGVuID8gdXNlVGhlbmFibGUobWF5YmVUaGVuYWJsZSkgOiBtYXliZVRoZW5hYmxlOwogICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyLnVzZVN0YXRlKClbMF07CiAgICAgICAgKG51bGwgIT09IGN1cnJlbnRIb29rID8gY3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZSA6IG51bGwpICE9PSBkaXNwYXRjaGVyICYmIChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5mbGFncyB8PSAxMDI0KTsKICAgICAgICByZXR1cm4gbWF5YmVUaGVuYWJsZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjaGVja0RpZFJlbmRlcklkSG9vaygpIHsKICAgICAgICB2YXIgZGlkUmVuZGVySWRIb29rID0gMCAhPT0gbG9jYWxJZENvdW50ZXI7CiAgICAgICAgbG9jYWxJZENvdW50ZXIgPSAwOwogICAgICAgIHJldHVybiBkaWRSZW5kZXJJZEhvb2s7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYmFpbG91dEhvb2tzKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIGxhbmVzKSB7CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnVwZGF0ZVF1ZXVlID0gY3VycmVudDIudXBkYXRlUXVldWU7CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLmZsYWdzID0gKHdvcmtJblByb2dyZXNzMi5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUgPyB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgJiAtNDAyNjU1MjM3IDogd29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgLTIwNTM7CiAgICAgICAgY3VycmVudDIubGFuZXMgJj0gfmxhbmVzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc2V0SG9va3NPblVud2luZCh3b3JrSW5Qcm9ncmVzczIpIHsKICAgICAgICBpZiAoZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSkgewogICAgICAgICAgZm9yICh3b3JrSW5Qcm9ncmVzczIgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZTsgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MyOyApIHsKICAgICAgICAgICAgdmFyIHF1ZXVlID0gd29ya0luUHJvZ3Jlc3MyLnF1ZXVlOwogICAgICAgICAgICBudWxsICE9PSBxdWV1ZSAmJiAocXVldWUucGVuZGluZyA9IG51bGwpOwogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIgPSB3b3JrSW5Qcm9ncmVzczIubmV4dDsKICAgICAgICAgIH0KICAgICAgICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSBmYWxzZTsKICAgICAgICB9CiAgICAgICAgcmVuZGVyTGFuZXMgPSAwOwogICAgICAgIGhvb2tUeXBlc0RldiA9IHdvcmtJblByb2dyZXNzSG9vayA9IGN1cnJlbnRIb29rID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIgPSBudWxsOwogICAgICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTE7CiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBudWxsOwogICAgICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyA9IGZhbHNlOwogICAgICAgIHRoZW5hYmxlSW5kZXhDb3VudGVyID0gbG9jYWxJZENvdW50ZXIgPSAwOwogICAgICAgIHRoZW5hYmxlU3RhdGUgPSBudWxsOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCkgewogICAgICAgIHZhciBob29rID0gewogICAgICAgICAgbWVtb2l6ZWRTdGF0ZTogbnVsbCwKICAgICAgICAgIGJhc2VTdGF0ZTogbnVsbCwKICAgICAgICAgIGJhc2VRdWV1ZTogbnVsbCwKICAgICAgICAgIHF1ZXVlOiBudWxsLAogICAgICAgICAgbmV4dDogbnVsbAogICAgICAgIH07CiAgICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NIb29rID8gY3VycmVudGx5UmVuZGVyaW5nRmliZXIubWVtb2l6ZWRTdGF0ZSA9IHdvcmtJblByb2dyZXNzSG9vayA9IGhvb2sgOiB3b3JrSW5Qcm9ncmVzc0hvb2sgPSB3b3JrSW5Qcm9ncmVzc0hvb2submV4dCA9IGhvb2s7CiAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzSG9vazsKICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKSB7CiAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnRIb29rKSB7CiAgICAgICAgICB2YXIgbmV4dEN1cnJlbnRIb29rID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIuYWx0ZXJuYXRlOwogICAgICAgICAgbmV4dEN1cnJlbnRIb29rID0gbnVsbCAhPT0gbmV4dEN1cnJlbnRIb29rID8gbmV4dEN1cnJlbnRIb29rLm1lbW9pemVkU3RhdGUgOiBudWxsOwogICAgICAgIH0gZWxzZSBuZXh0Q3VycmVudEhvb2sgPSBjdXJyZW50SG9vay5uZXh0OwogICAgICAgIHZhciBuZXh0V29ya0luUHJvZ3Jlc3NIb29rID0gbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NIb29rID8gY3VycmVudGx5UmVuZGVyaW5nRmliZXIubWVtb2l6ZWRTdGF0ZSA6IHdvcmtJblByb2dyZXNzSG9vay5uZXh0OwogICAgICAgIGlmIChudWxsICE9PSBuZXh0V29ya0luUHJvZ3Jlc3NIb29rKQogICAgICAgICAgd29ya0luUHJvZ3Jlc3NIb29rID0gbmV4dFdvcmtJblByb2dyZXNzSG9vaywgY3VycmVudEhvb2sgPSBuZXh0Q3VycmVudEhvb2s7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBpZiAobnVsbCA9PT0gbmV4dEN1cnJlbnRIb29rKSB7CiAgICAgICAgICAgIGlmIChudWxsID09PSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5hbHRlcm5hdGUpCiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAiVXBkYXRlIGhvb2sgY2FsbGVkIG9uIGluaXRpYWwgcmVuZGVyLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIHRocm93IEVycm9yKCJSZW5kZXJlZCBtb3JlIGhvb2tzIHRoYW4gZHVyaW5nIHRoZSBwcmV2aW91cyByZW5kZXIuIik7CiAgICAgICAgICB9CiAgICAgICAgICBjdXJyZW50SG9vayA9IG5leHRDdXJyZW50SG9vazsKICAgICAgICAgIG5leHRDdXJyZW50SG9vayA9IHsKICAgICAgICAgICAgbWVtb2l6ZWRTdGF0ZTogY3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZSwKICAgICAgICAgICAgYmFzZVN0YXRlOiBjdXJyZW50SG9vay5iYXNlU3RhdGUsCiAgICAgICAgICAgIGJhc2VRdWV1ZTogY3VycmVudEhvb2suYmFzZVF1ZXVlLAogICAgICAgICAgICBxdWV1ZTogY3VycmVudEhvb2sucXVldWUsCiAgICAgICAgICAgIG5leHQ6IG51bGwKICAgICAgICAgIH07CiAgICAgICAgICBudWxsID09PSB3b3JrSW5Qcm9ncmVzc0hvb2sgPyBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5tZW1vaXplZFN0YXRlID0gd29ya0luUHJvZ3Jlc3NIb29rID0gbmV4dEN1cnJlbnRIb29rIDogd29ya0luUHJvZ3Jlc3NIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rLm5leHQgPSBuZXh0Q3VycmVudEhvb2s7CiAgICAgICAgfQogICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzc0hvb2s7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY3JlYXRlRnVuY3Rpb25Db21wb25lbnRVcGRhdGVRdWV1ZSgpIHsKICAgICAgICByZXR1cm4geyBsYXN0RWZmZWN0OiBudWxsLCBldmVudHM6IG51bGwsIHN0b3JlczogbnVsbCwgbWVtb0NhY2hlOiBudWxsIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXNlVGhlbmFibGUodGhlbmFibGUpIHsKICAgICAgICB2YXIgaW5kZXggPSB0aGVuYWJsZUluZGV4Q291bnRlcjsKICAgICAgICB0aGVuYWJsZUluZGV4Q291bnRlciArPSAxOwogICAgICAgIG51bGwgPT09IHRoZW5hYmxlU3RhdGUgJiYgKHRoZW5hYmxlU3RhdGUgPSBjcmVhdGVUaGVuYWJsZVN0YXRlKCkpOwogICAgICAgIHRoZW5hYmxlID0gdHJhY2tVc2VkVGhlbmFibGUodGhlbmFibGVTdGF0ZSwgdGhlbmFibGUsIGluZGV4KTsKICAgICAgICBpbmRleCA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyOwogICAgICAgIG51bGwgPT09IChudWxsID09PSB3b3JrSW5Qcm9ncmVzc0hvb2sgPyBpbmRleC5tZW1vaXplZFN0YXRlIDogd29ya0luUHJvZ3Jlc3NIb29rLm5leHQpICYmIChpbmRleCA9IGluZGV4LmFsdGVybmF0ZSwgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IG51bGwgIT09IGluZGV4ICYmIG51bGwgIT09IGluZGV4Lm1lbW9pemVkU3RhdGUgPyBIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWIDogSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWKTsKICAgICAgICByZXR1cm4gdGhlbmFibGU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXNlKHVzYWJsZSkgewogICAgICAgIGlmIChudWxsICE9PSB1c2FibGUgJiYgIm9iamVjdCIgPT09IHR5cGVvZiB1c2FibGUpIHsKICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgdXNhYmxlLnRoZW4pIHJldHVybiB1c2VUaGVuYWJsZSh1c2FibGUpOwogICAgICAgICAgaWYgKHVzYWJsZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFKSByZXR1cm4gcmVhZENvbnRleHQodXNhYmxlKTsKICAgICAgICB9CiAgICAgICAgdGhyb3cgRXJyb3IoIkFuIHVuc3VwcG9ydGVkIHR5cGUgd2FzIHBhc3NlZCB0byB1c2UoKTogIiArIFN0cmluZyh1c2FibGUpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB1c2VNZW1vQ2FjaGUoc2l6ZSkgewogICAgICAgIHZhciBtZW1vQ2FjaGUgPSBudWxsLCB1cGRhdGVRdWV1ZSA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLnVwZGF0ZVF1ZXVlOwogICAgICAgIG51bGwgIT09IHVwZGF0ZVF1ZXVlICYmIChtZW1vQ2FjaGUgPSB1cGRhdGVRdWV1ZS5tZW1vQ2FjaGUpOwogICAgICAgIGlmIChudWxsID09IG1lbW9DYWNoZSkgewogICAgICAgICAgdmFyIGN1cnJlbnQyID0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIuYWx0ZXJuYXRlOwogICAgICAgICAgbnVsbCAhPT0gY3VycmVudDIgJiYgKGN1cnJlbnQyID0gY3VycmVudDIudXBkYXRlUXVldWUsIG51bGwgIT09IGN1cnJlbnQyICYmIChjdXJyZW50MiA9IGN1cnJlbnQyLm1lbW9DYWNoZSwgbnVsbCAhPSBjdXJyZW50MiAmJiAobWVtb0NhY2hlID0gewogICAgICAgICAgICBkYXRhOiBjdXJyZW50Mi5kYXRhLm1hcChmdW5jdGlvbihhcnJheSkgewogICAgICAgICAgICAgIHJldHVybiBhcnJheS5zbGljZSgpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgaW5kZXg6IDAKICAgICAgICAgIH0pKSk7CiAgICAgICAgfQogICAgICAgIG51bGwgPT0gbWVtb0NhY2hlICYmIChtZW1vQ2FjaGUgPSB7IGRhdGE6IFtdLCBpbmRleDogMCB9KTsKICAgICAgICBudWxsID09PSB1cGRhdGVRdWV1ZSAmJiAodXBkYXRlUXVldWUgPSBjcmVhdGVGdW5jdGlvbkNvbXBvbmVudFVwZGF0ZVF1ZXVlKCksIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLnVwZGF0ZVF1ZXVlID0gdXBkYXRlUXVldWUpOwogICAgICAgIHVwZGF0ZVF1ZXVlLm1lbW9DYWNoZSA9IG1lbW9DYWNoZTsKICAgICAgICB1cGRhdGVRdWV1ZSA9IG1lbW9DYWNoZS5kYXRhW21lbW9DYWNoZS5pbmRleF07CiAgICAgICAgaWYgKHZvaWQgMCA9PT0gdXBkYXRlUXVldWUgfHwgaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMpCiAgICAgICAgICBmb3IgKHVwZGF0ZVF1ZXVlID0gbWVtb0NhY2hlLmRhdGFbbWVtb0NhY2hlLmluZGV4XSA9IEFycmF5KHNpemUpLCBjdXJyZW50MiA9IDA7IGN1cnJlbnQyIDwgc2l6ZTsgY3VycmVudDIrKykKICAgICAgICAgICAgdXBkYXRlUXVldWVbY3VycmVudDJdID0gUkVBQ1RfTUVNT19DQUNIRV9TRU5USU5FTDsKICAgICAgICBlbHNlCiAgICAgICAgICB1cGRhdGVRdWV1ZS5sZW5ndGggIT09IHNpemUgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIkV4cGVjdGVkIGEgY29uc3RhbnQgc2l6ZSBhcmd1bWVudCBmb3IgZWFjaCBpbnZvY2F0aW9uIG9mIHVzZU1lbW9DYWNoZS4gVGhlIHByZXZpb3VzIGNhY2hlIHdhcyBhbGxvY2F0ZWQgd2l0aCBzaXplICVzIGJ1dCBzaXplICVzIHdhcyByZXF1ZXN0ZWQuIiwKICAgICAgICAgICAgdXBkYXRlUXVldWUubGVuZ3RoLAogICAgICAgICAgICBzaXplCiAgICAgICAgICApOwogICAgICAgIG1lbW9DYWNoZS5pbmRleCsrOwogICAgICAgIHJldHVybiB1cGRhdGVRdWV1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBiYXNpY1N0YXRlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7CiAgICAgICAgcmV0dXJuICJmdW5jdGlvbiIgPT09IHR5cGVvZiBhY3Rpb24gPyBhY3Rpb24oc3RhdGUpIDogYWN0aW9uOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1vdW50UmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7CiAgICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpOwogICAgICAgIGlmICh2b2lkIDAgIT09IGluaXQpIHsKICAgICAgICAgIHZhciBpbml0aWFsU3RhdGUgPSBpbml0KGluaXRpYWxBcmcpOwogICAgICAgICAgaWYgKHNob3VsZERvdWJsZUludm9rZVVzZXJGbnNJbkhvb2tzREVWKSB7CiAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGluaXQoaW5pdGlhbEFyZyk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGluaXRpYWxTdGF0ZSA9IGluaXRpYWxBcmc7CiAgICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gaG9vay5iYXNlU3RhdGUgPSBpbml0aWFsU3RhdGU7CiAgICAgICAgcmVkdWNlciA9IHsKICAgICAgICAgIHBlbmRpbmc6IG51bGwsCiAgICAgICAgICBsYW5lczogMCwKICAgICAgICAgIGRpc3BhdGNoOiBudWxsLAogICAgICAgICAgbGFzdFJlbmRlcmVkUmVkdWNlcjogcmVkdWNlciwKICAgICAgICAgIGxhc3RSZW5kZXJlZFN0YXRlOiBpbml0aWFsU3RhdGUKICAgICAgICB9OwogICAgICAgIGhvb2sucXVldWUgPSByZWR1Y2VyOwogICAgICAgIHJlZHVjZXIgPSByZWR1Y2VyLmRpc3BhdGNoID0gZGlzcGF0Y2hSZWR1Y2VyQWN0aW9uLmJpbmQoCiAgICAgICAgICBudWxsLAogICAgICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIsCiAgICAgICAgICByZWR1Y2VyCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gW2hvb2subWVtb2l6ZWRTdGF0ZSwgcmVkdWNlcl07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXBkYXRlUmVkdWNlcihyZWR1Y2VyKSB7CiAgICAgICAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTsKICAgICAgICByZXR1cm4gdXBkYXRlUmVkdWNlckltcGwoaG9vaywgY3VycmVudEhvb2ssIHJlZHVjZXIpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZGF0ZVJlZHVjZXJJbXBsKGhvb2ssIGN1cnJlbnQyLCByZWR1Y2VyKSB7CiAgICAgICAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZTsKICAgICAgICBpZiAobnVsbCA9PT0gcXVldWUpCiAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgIlNob3VsZCBoYXZlIGEgcXVldWUuIFlvdSBhcmUgbGlrZWx5IGNhbGxpbmcgSG9va3MgY29uZGl0aW9uYWxseSwgd2hpY2ggaXMgbm90IGFsbG93ZWQuIChodHRwczovL3JlYWN0LmRldi9saW5rL2ludmFsaWQtaG9vay1jYWxsKSIKICAgICAgICAgICk7CiAgICAgICAgcXVldWUubGFzdFJlbmRlcmVkUmVkdWNlciA9IHJlZHVjZXI7CiAgICAgICAgdmFyIGJhc2VRdWV1ZSA9IGhvb2suYmFzZVF1ZXVlLCBwZW5kaW5nUXVldWUgPSBxdWV1ZS5wZW5kaW5nOwogICAgICAgIGlmIChudWxsICE9PSBwZW5kaW5nUXVldWUpIHsKICAgICAgICAgIGlmIChudWxsICE9PSBiYXNlUXVldWUpIHsKICAgICAgICAgICAgdmFyIGJhc2VGaXJzdCA9IGJhc2VRdWV1ZS5uZXh0OwogICAgICAgICAgICBiYXNlUXVldWUubmV4dCA9IHBlbmRpbmdRdWV1ZS5uZXh0OwogICAgICAgICAgICBwZW5kaW5nUXVldWUubmV4dCA9IGJhc2VGaXJzdDsKICAgICAgICAgIH0KICAgICAgICAgIGN1cnJlbnQyLmJhc2VRdWV1ZSAhPT0gYmFzZVF1ZXVlICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJJbnRlcm5hbCBlcnJvcjogRXhwZWN0ZWQgd29yay1pbi1wcm9ncmVzcyBxdWV1ZSB0byBiZSBhIGNsb25lLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICk7CiAgICAgICAgICBjdXJyZW50Mi5iYXNlUXVldWUgPSBiYXNlUXVldWUgPSBwZW5kaW5nUXVldWU7CiAgICAgICAgICBxdWV1ZS5wZW5kaW5nID0gbnVsbDsKICAgICAgICB9CiAgICAgICAgcGVuZGluZ1F1ZXVlID0gaG9vay5iYXNlU3RhdGU7CiAgICAgICAgaWYgKG51bGwgPT09IGJhc2VRdWV1ZSkgaG9vay5tZW1vaXplZFN0YXRlID0gcGVuZGluZ1F1ZXVlOwogICAgICAgIGVsc2UgewogICAgICAgICAgY3VycmVudDIgPSBiYXNlUXVldWUubmV4dDsKICAgICAgICAgIHZhciBuZXdCYXNlUXVldWVGaXJzdCA9IGJhc2VGaXJzdCA9IG51bGwsIG5ld0Jhc2VRdWV1ZUxhc3QgPSBudWxsLCB1cGRhdGUgPSBjdXJyZW50MiwgZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbjIgPSBmYWxzZTsKICAgICAgICAgIGRvIHsKICAgICAgICAgICAgdmFyIHVwZGF0ZUxhbmUgPSB1cGRhdGUubGFuZSAmIC01MzY4NzA5MTM7CiAgICAgICAgICAgIGlmICh1cGRhdGVMYW5lICE9PSB1cGRhdGUubGFuZSA/ICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmIHVwZGF0ZUxhbmUpID09PSB1cGRhdGVMYW5lIDogKHJlbmRlckxhbmVzICYgdXBkYXRlTGFuZSkgPT09IHVwZGF0ZUxhbmUpIHsKICAgICAgICAgICAgICB2YXIgcmV2ZXJ0TGFuZSA9IHVwZGF0ZS5yZXZlcnRMYW5lOwogICAgICAgICAgICAgIGlmICgwID09PSByZXZlcnRMYW5lKQogICAgICAgICAgICAgICAgbnVsbCAhPT0gbmV3QmFzZVF1ZXVlTGFzdCAmJiAobmV3QmFzZVF1ZXVlTGFzdCA9IG5ld0Jhc2VRdWV1ZUxhc3QubmV4dCA9IHsKICAgICAgICAgICAgICAgICAgbGFuZTogMCwKICAgICAgICAgICAgICAgICAgcmV2ZXJ0TGFuZTogMCwKICAgICAgICAgICAgICAgICAgZ2VzdHVyZTogbnVsbCwKICAgICAgICAgICAgICAgICAgYWN0aW9uOiB1cGRhdGUuYWN0aW9uLAogICAgICAgICAgICAgICAgICBoYXNFYWdlclN0YXRlOiB1cGRhdGUuaGFzRWFnZXJTdGF0ZSwKICAgICAgICAgICAgICAgICAgZWFnZXJTdGF0ZTogdXBkYXRlLmVhZ2VyU3RhdGUsCiAgICAgICAgICAgICAgICAgIG5leHQ6IG51bGwKICAgICAgICAgICAgICAgIH0pLCB1cGRhdGVMYW5lID09PSBjdXJyZW50RW50YW5nbGVkTGFuZSAmJiAoZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbjIgPSB0cnVlKTsKICAgICAgICAgICAgICBlbHNlIGlmICgocmVuZGVyTGFuZXMgJiByZXZlcnRMYW5lKSA9PT0gcmV2ZXJ0TGFuZSkgewogICAgICAgICAgICAgICAgdXBkYXRlID0gdXBkYXRlLm5leHQ7CiAgICAgICAgICAgICAgICByZXZlcnRMYW5lID09PSBjdXJyZW50RW50YW5nbGVkTGFuZSAmJiAoZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbjIgPSB0cnVlKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgdXBkYXRlTGFuZSA9IHsKICAgICAgICAgICAgICAgICAgbGFuZTogMCwKICAgICAgICAgICAgICAgICAgcmV2ZXJ0TGFuZTogdXBkYXRlLnJldmVydExhbmUsCiAgICAgICAgICAgICAgICAgIGdlc3R1cmU6IG51bGwsCiAgICAgICAgICAgICAgICAgIGFjdGlvbjogdXBkYXRlLmFjdGlvbiwKICAgICAgICAgICAgICAgICAgaGFzRWFnZXJTdGF0ZTogdXBkYXRlLmhhc0VhZ2VyU3RhdGUsCiAgICAgICAgICAgICAgICAgIGVhZ2VyU3RhdGU6IHVwZGF0ZS5lYWdlclN0YXRlLAogICAgICAgICAgICAgICAgICBuZXh0OiBudWxsCiAgICAgICAgICAgICAgICB9LCBudWxsID09PSBuZXdCYXNlUXVldWVMYXN0ID8gKG5ld0Jhc2VRdWV1ZUZpcnN0ID0gbmV3QmFzZVF1ZXVlTGFzdCA9IHVwZGF0ZUxhbmUsIGJhc2VGaXJzdCA9IHBlbmRpbmdRdWV1ZSkgOiBuZXdCYXNlUXVldWVMYXN0ID0gbmV3QmFzZVF1ZXVlTGFzdC5uZXh0ID0gdXBkYXRlTGFuZSwgY3VycmVudGx5UmVuZGVyaW5nRmliZXIubGFuZXMgfD0gcmV2ZXJ0TGFuZSwgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzIHw9IHJldmVydExhbmU7CiAgICAgICAgICAgICAgdXBkYXRlTGFuZSA9IHVwZGF0ZS5hY3Rpb247CiAgICAgICAgICAgICAgc2hvdWxkRG91YmxlSW52b2tlVXNlckZuc0luSG9va3NERVYgJiYgcmVkdWNlcihwZW5kaW5nUXVldWUsIHVwZGF0ZUxhbmUpOwogICAgICAgICAgICAgIHBlbmRpbmdRdWV1ZSA9IHVwZGF0ZS5oYXNFYWdlclN0YXRlID8gdXBkYXRlLmVhZ2VyU3RhdGUgOiByZWR1Y2VyKHBlbmRpbmdRdWV1ZSwgdXBkYXRlTGFuZSk7CiAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgIHJldmVydExhbmUgPSB7CiAgICAgICAgICAgICAgICBsYW5lOiB1cGRhdGVMYW5lLAogICAgICAgICAgICAgICAgcmV2ZXJ0TGFuZTogdXBkYXRlLnJldmVydExhbmUsCiAgICAgICAgICAgICAgICBnZXN0dXJlOiB1cGRhdGUuZ2VzdHVyZSwKICAgICAgICAgICAgICAgIGFjdGlvbjogdXBkYXRlLmFjdGlvbiwKICAgICAgICAgICAgICAgIGhhc0VhZ2VyU3RhdGU6IHVwZGF0ZS5oYXNFYWdlclN0YXRlLAogICAgICAgICAgICAgICAgZWFnZXJTdGF0ZTogdXBkYXRlLmVhZ2VyU3RhdGUsCiAgICAgICAgICAgICAgICBuZXh0OiBudWxsCiAgICAgICAgICAgICAgfSwgbnVsbCA9PT0gbmV3QmFzZVF1ZXVlTGFzdCA/IChuZXdCYXNlUXVldWVGaXJzdCA9IG5ld0Jhc2VRdWV1ZUxhc3QgPSByZXZlcnRMYW5lLCBiYXNlRmlyc3QgPSBwZW5kaW5nUXVldWUpIDogbmV3QmFzZVF1ZXVlTGFzdCA9IG5ld0Jhc2VRdWV1ZUxhc3QubmV4dCA9IHJldmVydExhbmUsIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmxhbmVzIHw9IHVwZGF0ZUxhbmUsIHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyB8PSB1cGRhdGVMYW5lOwogICAgICAgICAgICB1cGRhdGUgPSB1cGRhdGUubmV4dDsKICAgICAgICAgIH0gd2hpbGUgKG51bGwgIT09IHVwZGF0ZSAmJiB1cGRhdGUgIT09IGN1cnJlbnQyKTsKICAgICAgICAgIG51bGwgPT09IG5ld0Jhc2VRdWV1ZUxhc3QgPyBiYXNlRmlyc3QgPSBwZW5kaW5nUXVldWUgOiBuZXdCYXNlUXVldWVMYXN0Lm5leHQgPSBuZXdCYXNlUXVldWVGaXJzdDsKICAgICAgICAgIGlmICghb2JqZWN0SXMocGVuZGluZ1F1ZXVlLCBob29rLm1lbW9pemVkU3RhdGUpICYmIChkaWRSZWNlaXZlVXBkYXRlID0gdHJ1ZSwgZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbjIgJiYgKHJlZHVjZXIgPSBjdXJyZW50RW50YW5nbGVkQWN0aW9uVGhlbmFibGUsIG51bGwgIT09IHJlZHVjZXIpKSkKICAgICAgICAgICAgdGhyb3cgcmVkdWNlcjsKICAgICAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHBlbmRpbmdRdWV1ZTsKICAgICAgICAgIGhvb2suYmFzZVN0YXRlID0gYmFzZUZpcnN0OwogICAgICAgICAgaG9vay5iYXNlUXVldWUgPSBuZXdCYXNlUXVldWVMYXN0OwogICAgICAgICAgcXVldWUubGFzdFJlbmRlcmVkU3RhdGUgPSBwZW5kaW5nUXVldWU7CiAgICAgICAgfQogICAgICAgIG51bGwgPT09IGJhc2VRdWV1ZSAmJiAocXVldWUubGFuZXMgPSAwKTsKICAgICAgICByZXR1cm4gW2hvb2subWVtb2l6ZWRTdGF0ZSwgcXVldWUuZGlzcGF0Y2hdOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlcmVuZGVyUmVkdWNlcihyZWR1Y2VyKSB7CiAgICAgICAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKSwgcXVldWUgPSBob29rLnF1ZXVlOwogICAgICAgIGlmIChudWxsID09PSBxdWV1ZSkKICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAiU2hvdWxkIGhhdmUgYSBxdWV1ZS4gWW91IGFyZSBsaWtlbHkgY2FsbGluZyBIb29rcyBjb25kaXRpb25hbGx5LCB3aGljaCBpcyBub3QgYWxsb3dlZC4gKGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvaW52YWxpZC1ob29rLWNhbGwpIgogICAgICAgICAgKTsKICAgICAgICBxdWV1ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyID0gcmVkdWNlcjsKICAgICAgICB2YXIgZGlzcGF0Y2ggPSBxdWV1ZS5kaXNwYXRjaCwgbGFzdFJlbmRlclBoYXNlVXBkYXRlID0gcXVldWUucGVuZGluZywgbmV3U3RhdGUgPSBob29rLm1lbW9pemVkU3RhdGU7CiAgICAgICAgaWYgKG51bGwgIT09IGxhc3RSZW5kZXJQaGFzZVVwZGF0ZSkgewogICAgICAgICAgcXVldWUucGVuZGluZyA9IG51bGw7CiAgICAgICAgICB2YXIgdXBkYXRlID0gbGFzdFJlbmRlclBoYXNlVXBkYXRlID0gbGFzdFJlbmRlclBoYXNlVXBkYXRlLm5leHQ7CiAgICAgICAgICBkbwogICAgICAgICAgICBuZXdTdGF0ZSA9IHJlZHVjZXIobmV3U3RhdGUsIHVwZGF0ZS5hY3Rpb24pLCB1cGRhdGUgPSB1cGRhdGUubmV4dDsKICAgICAgICAgIHdoaWxlICh1cGRhdGUgIT09IGxhc3RSZW5kZXJQaGFzZVVwZGF0ZSk7CiAgICAgICAgICBvYmplY3RJcyhuZXdTdGF0ZSwgaG9vay5tZW1vaXplZFN0YXRlKSB8fCAoZGlkUmVjZWl2ZVVwZGF0ZSA9IHRydWUpOwogICAgICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7CiAgICAgICAgICBudWxsID09PSBob29rLmJhc2VRdWV1ZSAmJiAoaG9vay5iYXNlU3RhdGUgPSBuZXdTdGF0ZSk7CiAgICAgICAgICBxdWV1ZS5sYXN0UmVuZGVyZWRTdGF0ZSA9IG5ld1N0YXRlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gW25ld1N0YXRlLCBkaXNwYXRjaF07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW91bnRTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkgewogICAgICAgIHZhciBmaWJlciA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLCBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTsKICAgICAgICBpZiAoaXNIeWRyYXRpbmcpIHsKICAgICAgICAgIGlmICh2b2lkIDAgPT09IGdldFNlcnZlclNuYXBzaG90KQogICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAiTWlzc2luZyBnZXRTZXJ2ZXJTbmFwc2hvdCwgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIHNlcnZlci1yZW5kZXJlZCBjb250ZW50LiBXaWxsIHJldmVydCB0byBjbGllbnQgcmVuZGVyaW5nLiIKICAgICAgICAgICAgKTsKICAgICAgICAgIHZhciBuZXh0U25hcHNob3QgPSBnZXRTZXJ2ZXJTbmFwc2hvdCgpOwogICAgICAgICAgZGlkV2FyblVuY2FjaGVkR2V0U25hcHNob3QgfHwgbmV4dFNuYXBzaG90ID09PSBnZXRTZXJ2ZXJTbmFwc2hvdCgpIHx8IChjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiVGhlIHJlc3VsdCBvZiBnZXRTZXJ2ZXJTbmFwc2hvdCBzaG91bGQgYmUgY2FjaGVkIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3AiCiAgICAgICAgICApLCBkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCA9IHRydWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBuZXh0U25hcHNob3QgPSBnZXRTbmFwc2hvdCgpOwogICAgICAgICAgZGlkV2FyblVuY2FjaGVkR2V0U25hcHNob3QgfHwgKGdldFNlcnZlclNuYXBzaG90ID0gZ2V0U25hcHNob3QoKSwgb2JqZWN0SXMobmV4dFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkgfHwgKGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJUaGUgcmVzdWx0IG9mIGdldFNuYXBzaG90IHNob3VsZCBiZSBjYWNoZWQgdG8gYXZvaWQgYW4gaW5maW5pdGUgbG9vcCIKICAgICAgICAgICksIGRpZFdhcm5VbmNhY2hlZEdldFNuYXBzaG90ID0gdHJ1ZSkpOwogICAgICAgICAgaWYgKG51bGwgPT09IHdvcmtJblByb2dyZXNzUm9vdCkKICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgIkV4cGVjdGVkIGEgd29yay1pbi1wcm9ncmVzcyByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iCiAgICAgICAgICAgICk7CiAgICAgICAgICAwICE9PSAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiAxMjcpIHx8IHB1c2hTdG9yZUNvbnNpc3RlbmN5Q2hlY2soZmliZXIsIGdldFNuYXBzaG90LCBuZXh0U25hcHNob3QpOwogICAgICAgIH0KICAgICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBuZXh0U25hcHNob3Q7CiAgICAgICAgZ2V0U2VydmVyU25hcHNob3QgPSB7IHZhbHVlOiBuZXh0U25hcHNob3QsIGdldFNuYXBzaG90IH07CiAgICAgICAgaG9vay5xdWV1ZSA9IGdldFNlcnZlclNuYXBzaG90OwogICAgICAgIG1vdW50RWZmZWN0KAogICAgICAgICAgc3Vic2NyaWJlVG9TdG9yZS5iaW5kKG51bGwsIGZpYmVyLCBnZXRTZXJ2ZXJTbmFwc2hvdCwgc3Vic2NyaWJlKSwKICAgICAgICAgIFtzdWJzY3JpYmVdCiAgICAgICAgKTsKICAgICAgICBmaWJlci5mbGFncyB8PSAyMDQ4OwogICAgICAgIHB1c2hTaW1wbGVFZmZlY3QoCiAgICAgICAgICBIYXNFZmZlY3QgfCBQYXNzaXZlLAogICAgICAgICAgeyBkZXN0cm95OiB2b2lkIDAgfSwKICAgICAgICAgIHVwZGF0ZVN0b3JlSW5zdGFuY2UuYmluZCgKICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgZmliZXIsCiAgICAgICAgICAgIGdldFNlcnZlclNuYXBzaG90LAogICAgICAgICAgICBuZXh0U25hcHNob3QsCiAgICAgICAgICAgIGdldFNuYXBzaG90CiAgICAgICAgICApLAogICAgICAgICAgbnVsbAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIG5leHRTbmFwc2hvdDsKICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkgewogICAgICAgIHZhciBmaWJlciA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLCBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCksIGlzSHlkcmF0aW5nJGpzY29tcCQwID0gaXNIeWRyYXRpbmc7CiAgICAgICAgaWYgKGlzSHlkcmF0aW5nJGpzY29tcCQwKSB7CiAgICAgICAgICBpZiAodm9pZCAwID09PSBnZXRTZXJ2ZXJTbmFwc2hvdCkKICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgIk1pc3NpbmcgZ2V0U2VydmVyU25hcHNob3QsIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBzZXJ2ZXItcmVuZGVyZWQgY29udGVudC4gV2lsbCByZXZlcnQgdG8gY2xpZW50IHJlbmRlcmluZy4iCiAgICAgICAgICAgICk7CiAgICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdCA9IGdldFNlcnZlclNuYXBzaG90KCk7CiAgICAgICAgfSBlbHNlIGlmIChnZXRTZXJ2ZXJTbmFwc2hvdCA9IGdldFNuYXBzaG90KCksICFkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCkgewogICAgICAgICAgdmFyIGNhY2hlZFNuYXBzaG90ID0gZ2V0U25hcHNob3QoKTsKICAgICAgICAgIG9iamVjdElzKGdldFNlcnZlclNuYXBzaG90LCBjYWNoZWRTbmFwc2hvdCkgfHwgKGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJUaGUgcmVzdWx0IG9mIGdldFNuYXBzaG90IHNob3VsZCBiZSBjYWNoZWQgdG8gYXZvaWQgYW4gaW5maW5pdGUgbG9vcCIKICAgICAgICAgICksIGRpZFdhcm5VbmNhY2hlZEdldFNuYXBzaG90ID0gdHJ1ZSk7CiAgICAgICAgfQogICAgICAgIGlmIChjYWNoZWRTbmFwc2hvdCA9ICFvYmplY3RJcygKICAgICAgICAgIChjdXJyZW50SG9vayB8fCBob29rKS5tZW1vaXplZFN0YXRlLAogICAgICAgICAgZ2V0U2VydmVyU25hcHNob3QKICAgICAgICApKQogICAgICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gZ2V0U2VydmVyU25hcHNob3QsIGRpZFJlY2VpdmVVcGRhdGUgPSB0cnVlOwogICAgICAgIGhvb2sgPSBob29rLnF1ZXVlOwogICAgICAgIHZhciBjcmVhdGUgPSBzdWJzY3JpYmVUb1N0b3JlLmJpbmQobnVsbCwgZmliZXIsIGhvb2ssIHN1YnNjcmliZSk7CiAgICAgICAgdXBkYXRlRWZmZWN0SW1wbCgyMDQ4LCBQYXNzaXZlLCBjcmVhdGUsIFtzdWJzY3JpYmVdKTsKICAgICAgICBpZiAoaG9vay5nZXRTbmFwc2hvdCAhPT0gZ2V0U25hcHNob3QgfHwgY2FjaGVkU25hcHNob3QgfHwgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3NIb29rICYmIHdvcmtJblByb2dyZXNzSG9vay5tZW1vaXplZFN0YXRlLnRhZyAmIEhhc0VmZmVjdCkgewogICAgICAgICAgZmliZXIuZmxhZ3MgfD0gMjA0ODsKICAgICAgICAgIHB1c2hTaW1wbGVFZmZlY3QoCiAgICAgICAgICAgIEhhc0VmZmVjdCB8IFBhc3NpdmUsCiAgICAgICAgICAgIHsgZGVzdHJveTogdm9pZCAwIH0sCiAgICAgICAgICAgIHVwZGF0ZVN0b3JlSW5zdGFuY2UuYmluZCgKICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgIGZpYmVyLAogICAgICAgICAgICAgIGhvb2ssCiAgICAgICAgICAgICAgZ2V0U2VydmVyU25hcHNob3QsCiAgICAgICAgICAgICAgZ2V0U25hcHNob3QKICAgICAgICAgICAgKSwKICAgICAgICAgICAgbnVsbAogICAgICAgICAgKTsKICAgICAgICAgIGlmIChudWxsID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QpCiAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICJFeHBlY3RlZCBhIHdvcmstaW4tcHJvZ3Jlc3Mgcm9vdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgICApOwogICAgICAgICAgaXNIeWRyYXRpbmckanNjb21wJDAgfHwgMCAhPT0gKHJlbmRlckxhbmVzICYgMTI3KSB8fCBwdXNoU3RvcmVDb25zaXN0ZW5jeUNoZWNrKGZpYmVyLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZ2V0U2VydmVyU25hcHNob3Q7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcHVzaFN0b3JlQ29uc2lzdGVuY3lDaGVjayhmaWJlciwgZ2V0U25hcHNob3QsIHJlbmRlcmVkU25hcHNob3QpIHsKICAgICAgICBmaWJlci5mbGFncyB8PSAxNjM4NDsKICAgICAgICBmaWJlciA9IHsgZ2V0U25hcHNob3QsIHZhbHVlOiByZW5kZXJlZFNuYXBzaG90IH07CiAgICAgICAgZ2V0U25hcHNob3QgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci51cGRhdGVRdWV1ZTsKICAgICAgICBudWxsID09PSBnZXRTbmFwc2hvdCA/IChnZXRTbmFwc2hvdCA9IGNyZWF0ZUZ1bmN0aW9uQ29tcG9uZW50VXBkYXRlUXVldWUoKSwgY3VycmVudGx5UmVuZGVyaW5nRmliZXIudXBkYXRlUXVldWUgPSBnZXRTbmFwc2hvdCwgZ2V0U25hcHNob3Quc3RvcmVzID0gW2ZpYmVyXSkgOiAocmVuZGVyZWRTbmFwc2hvdCA9IGdldFNuYXBzaG90LnN0b3JlcywgbnVsbCA9PT0gcmVuZGVyZWRTbmFwc2hvdCA/IGdldFNuYXBzaG90LnN0b3JlcyA9IFtmaWJlcl0gOiByZW5kZXJlZFNuYXBzaG90LnB1c2goZmliZXIpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVTdG9yZUluc3RhbmNlKGZpYmVyLCBpbnN0LCBuZXh0U25hcHNob3QsIGdldFNuYXBzaG90KSB7CiAgICAgICAgaW5zdC52YWx1ZSA9IG5leHRTbmFwc2hvdDsKICAgICAgICBpbnN0LmdldFNuYXBzaG90ID0gZ2V0U25hcHNob3Q7CiAgICAgICAgY2hlY2tJZlNuYXBzaG90Q2hhbmdlZChpbnN0KSAmJiBmb3JjZVN0b3JlUmVyZW5kZXIoZmliZXIpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHN1YnNjcmliZVRvU3RvcmUoZmliZXIsIGluc3QsIHN1YnNjcmliZSkgewogICAgICAgIHJldHVybiBzdWJzY3JpYmUoZnVuY3Rpb24oKSB7CiAgICAgICAgICBjaGVja0lmU25hcHNob3RDaGFuZ2VkKGluc3QpICYmIChzdGFydFVwZGF0ZVRpbWVyQnlMYW5lKDIsICJ1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZSgpIiwgZmliZXIpLCBmb3JjZVN0b3JlUmVyZW5kZXIoZmliZXIpKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjaGVja0lmU25hcHNob3RDaGFuZ2VkKGluc3QpIHsKICAgICAgICB2YXIgbGF0ZXN0R2V0U25hcHNob3QgPSBpbnN0LmdldFNuYXBzaG90OwogICAgICAgIGluc3QgPSBpbnN0LnZhbHVlOwogICAgICAgIHRyeSB7CiAgICAgICAgICB2YXIgbmV4dFZhbHVlID0gbGF0ZXN0R2V0U25hcHNob3QoKTsKICAgICAgICAgIHJldHVybiAhb2JqZWN0SXMoaW5zdCwgbmV4dFZhbHVlKTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGZvcmNlU3RvcmVSZXJlbmRlcihmaWJlcikgewogICAgICAgIHZhciByb290MiA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgMik7CiAgICAgICAgbnVsbCAhPT0gcm9vdDIgJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QyLCBmaWJlciwgMik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW91bnRTdGF0ZUltcGwoaW5pdGlhbFN0YXRlKSB7CiAgICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpOwogICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgaW5pdGlhbFN0YXRlKSB7CiAgICAgICAgICB2YXIgaW5pdGlhbFN0YXRlSW5pdGlhbGl6ZXIgPSBpbml0aWFsU3RhdGU7CiAgICAgICAgICBpbml0aWFsU3RhdGUgPSBpbml0aWFsU3RhdGVJbml0aWFsaXplcigpOwogICAgICAgICAgaWYgKHNob3VsZERvdWJsZUludm9rZVVzZXJGbnNJbkhvb2tzREVWKSB7CiAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGluaXRpYWxTdGF0ZUluaXRpYWxpemVyKCk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IGhvb2suYmFzZVN0YXRlID0gaW5pdGlhbFN0YXRlOwogICAgICAgIGhvb2sucXVldWUgPSB7CiAgICAgICAgICBwZW5kaW5nOiBudWxsLAogICAgICAgICAgbGFuZXM6IDAsCiAgICAgICAgICBkaXNwYXRjaDogbnVsbCwKICAgICAgICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IGJhc2ljU3RhdGVSZWR1Y2VyLAogICAgICAgICAgbGFzdFJlbmRlcmVkU3RhdGU6IGluaXRpYWxTdGF0ZQogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGhvb2s7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpIHsKICAgICAgICBpbml0aWFsU3RhdGUgPSBtb3VudFN0YXRlSW1wbChpbml0aWFsU3RhdGUpOwogICAgICAgIHZhciBxdWV1ZSA9IGluaXRpYWxTdGF0ZS5xdWV1ZSwgZGlzcGF0Y2ggPSBkaXNwYXRjaFNldFN0YXRlLmJpbmQobnVsbCwgY3VycmVudGx5UmVuZGVyaW5nRmliZXIsIHF1ZXVlKTsKICAgICAgICBxdWV1ZS5kaXNwYXRjaCA9IGRpc3BhdGNoOwogICAgICAgIHJldHVybiBbaW5pdGlhbFN0YXRlLm1lbW9pemVkU3RhdGUsIGRpc3BhdGNoXTsKICAgICAgfQogICAgICBmdW5jdGlvbiBtb3VudE9wdGltaXN0aWMocGFzc3Rocm91Z2gpIHsKICAgICAgICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7CiAgICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gaG9vay5iYXNlU3RhdGUgPSBwYXNzdGhyb3VnaDsKICAgICAgICB2YXIgcXVldWUgPSB7CiAgICAgICAgICBwZW5kaW5nOiBudWxsLAogICAgICAgICAgbGFuZXM6IDAsCiAgICAgICAgICBkaXNwYXRjaDogbnVsbCwKICAgICAgICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IG51bGwsCiAgICAgICAgICBsYXN0UmVuZGVyZWRTdGF0ZTogbnVsbAogICAgICAgIH07CiAgICAgICAgaG9vay5xdWV1ZSA9IHF1ZXVlOwogICAgICAgIGhvb2sgPSBkaXNwYXRjaE9wdGltaXN0aWNTZXRTdGF0ZS5iaW5kKAogICAgICAgICAgbnVsbCwKICAgICAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLAogICAgICAgICAgdHJ1ZSwKICAgICAgICAgIHF1ZXVlCiAgICAgICAgKTsKICAgICAgICBxdWV1ZS5kaXNwYXRjaCA9IGhvb2s7CiAgICAgICAgcmV0dXJuIFtwYXNzdGhyb3VnaCwgaG9va107CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXBkYXRlT3B0aW1pc3RpYyhwYXNzdGhyb3VnaCwgcmVkdWNlcikgewogICAgICAgIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7CiAgICAgICAgcmV0dXJuIHVwZGF0ZU9wdGltaXN0aWNJbXBsKGhvb2ssIGN1cnJlbnRIb29rLCBwYXNzdGhyb3VnaCwgcmVkdWNlcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXBkYXRlT3B0aW1pc3RpY0ltcGwoaG9vaywgY3VycmVudDIsIHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7CiAgICAgICAgaG9vay5iYXNlU3RhdGUgPSBwYXNzdGhyb3VnaDsKICAgICAgICByZXR1cm4gdXBkYXRlUmVkdWNlckltcGwoCiAgICAgICAgICBob29rLAogICAgICAgICAgY3VycmVudEhvb2ssCiAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgcmVkdWNlciA/IHJlZHVjZXIgOiBiYXNpY1N0YXRlUmVkdWNlcgogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVyZW5kZXJPcHRpbWlzdGljKHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7CiAgICAgICAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTsKICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudEhvb2spCiAgICAgICAgICByZXR1cm4gdXBkYXRlT3B0aW1pc3RpY0ltcGwoaG9vaywgY3VycmVudEhvb2ssIHBhc3N0aHJvdWdoLCByZWR1Y2VyKTsKICAgICAgICBob29rLmJhc2VTdGF0ZSA9IHBhc3N0aHJvdWdoOwogICAgICAgIHJldHVybiBbcGFzc3Rocm91Z2gsIGhvb2sucXVldWUuZGlzcGF0Y2hdOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRpc3BhdGNoQWN0aW9uU3RhdGUoZmliZXIsIGFjdGlvblF1ZXVlLCBzZXRQZW5kaW5nU3RhdGUsIHNldFN0YXRlLCBwYXlsb2FkKSB7CiAgICAgICAgaWYgKGlzUmVuZGVyUGhhc2VVcGRhdGUoZmliZXIpKQogICAgICAgICAgdGhyb3cgRXJyb3IoIkNhbm5vdCB1cGRhdGUgZm9ybSBzdGF0ZSB3aGlsZSByZW5kZXJpbmcuIik7CiAgICAgICAgZmliZXIgPSBhY3Rpb25RdWV1ZS5hY3Rpb247CiAgICAgICAgaWYgKG51bGwgIT09IGZpYmVyKSB7CiAgICAgICAgICB2YXIgYWN0aW9uTm9kZSA9IHsKICAgICAgICAgICAgcGF5bG9hZCwKICAgICAgICAgICAgYWN0aW9uOiBmaWJlciwKICAgICAgICAgICAgbmV4dDogbnVsbCwKICAgICAgICAgICAgaXNUcmFuc2l0aW9uOiB0cnVlLAogICAgICAgICAgICBzdGF0dXM6ICJwZW5kaW5nIiwKICAgICAgICAgICAgdmFsdWU6IG51bGwsCiAgICAgICAgICAgIHJlYXNvbjogbnVsbCwKICAgICAgICAgICAgbGlzdGVuZXJzOiBbXSwKICAgICAgICAgICAgdGhlbjogZnVuY3Rpb24obGlzdGVuZXIpIHsKICAgICAgICAgICAgICBhY3Rpb25Ob2RlLmxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfTsKICAgICAgICAgIG51bGwgIT09IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPyBzZXRQZW5kaW5nU3RhdGUodHJ1ZSkgOiBhY3Rpb25Ob2RlLmlzVHJhbnNpdGlvbiA9IGZhbHNlOwogICAgICAgICAgc2V0U3RhdGUoYWN0aW9uTm9kZSk7CiAgICAgICAgICBzZXRQZW5kaW5nU3RhdGUgPSBhY3Rpb25RdWV1ZS5wZW5kaW5nOwogICAgICAgICAgbnVsbCA9PT0gc2V0UGVuZGluZ1N0YXRlID8gKGFjdGlvbk5vZGUubmV4dCA9IGFjdGlvblF1ZXVlLnBlbmRpbmcgPSBhY3Rpb25Ob2RlLCBydW5BY3Rpb25TdGF0ZUFjdGlvbihhY3Rpb25RdWV1ZSwgYWN0aW9uTm9kZSkpIDogKGFjdGlvbk5vZGUubmV4dCA9IHNldFBlbmRpbmdTdGF0ZS5uZXh0LCBhY3Rpb25RdWV1ZS5wZW5kaW5nID0gc2V0UGVuZGluZ1N0YXRlLm5leHQgPSBhY3Rpb25Ob2RlKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcnVuQWN0aW9uU3RhdGVBY3Rpb24oYWN0aW9uUXVldWUsIG5vZGUpIHsKICAgICAgICB2YXIgYWN0aW9uID0gbm9kZS5hY3Rpb24sIHBheWxvYWQgPSBub2RlLnBheWxvYWQsIHByZXZTdGF0ZSA9IGFjdGlvblF1ZXVlLnN0YXRlOwogICAgICAgIGlmIChub2RlLmlzVHJhbnNpdGlvbikgewogICAgICAgICAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCwgY3VycmVudFRyYW5zaXRpb24gPSB7fTsKICAgICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBjdXJyZW50VHJhbnNpdGlvbjsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciByZXR1cm5WYWx1ZSA9IGFjdGlvbihwcmV2U3RhdGUsIHBheWxvYWQpLCBvblN0YXJ0VHJhbnNpdGlvbkZpbmlzaCA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlM7CiAgICAgICAgICAgIG51bGwgIT09IG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoICYmIG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoKGN1cnJlbnRUcmFuc2l0aW9uLCByZXR1cm5WYWx1ZSk7CiAgICAgICAgICAgIGhhbmRsZUFjdGlvblJldHVyblZhbHVlKGFjdGlvblF1ZXVlLCBub2RlLCByZXR1cm5WYWx1ZSk7CiAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICBvbkFjdGlvbkVycm9yKGFjdGlvblF1ZXVlLCBub2RlLCBlcnJvcik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBudWxsICE9PSBwcmV2VHJhbnNpdGlvbiAmJiBudWxsICE9PSBjdXJyZW50VHJhbnNpdGlvbi50eXBlcyAmJiAobnVsbCAhPT0gcHJldlRyYW5zaXRpb24udHlwZXMgJiYgcHJldlRyYW5zaXRpb24udHlwZXMgIT09IGN1cnJlbnRUcmFuc2l0aW9uLnR5cGVzICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIldlIGV4cGVjdGVkIGlubmVyIFRyYW5zaXRpb25zIHRvIGhhdmUgdHJhbnNmZXJyZWQgdGhlIG91dGVyIHR5cGVzIHNldCBhbmQgdGhhdCB5b3UgY2Fubm90IGFkZCB0byB0aGUgb3V0ZXIgVHJhbnNpdGlvbiB3aGlsZSBpbnNpZGUgdGhlIGlubmVyLlRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIgogICAgICAgICAgICApLCBwcmV2VHJhbnNpdGlvbi50eXBlcyA9IGN1cnJlbnRUcmFuc2l0aW9uLnR5cGVzKSwgUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IHByZXZUcmFuc2l0aW9uLCBudWxsID09PSBwcmV2VHJhbnNpdGlvbiAmJiBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyAmJiAoYWN0aW9uUXVldWUgPSBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5zaXplLCBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5jbGVhcigpLCAxMCA8IGFjdGlvblF1ZXVlICYmIGNvbnNvbGUud2FybigKICAgICAgICAgICAgICAiRGV0ZWN0ZWQgYSBsYXJnZSBudW1iZXIgb2YgdXBkYXRlcyBpbnNpZGUgc3RhcnRUcmFuc2l0aW9uLiBJZiB0aGlzIGlzIGR1ZSB0byBhIHN1YnNjcmlwdGlvbiBwbGVhc2UgcmUtd3JpdGUgaXQgdG8gdXNlIFJlYWN0IHByb3ZpZGVkIGhvb2tzLiBPdGhlcndpc2UgY29uY3VycmVudCBtb2RlIGd1YXJhbnRlZXMgYXJlIG9mZiB0aGUgdGFibGUuIgogICAgICAgICAgICApKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uID0gYWN0aW9uKHByZXZTdGF0ZSwgcGF5bG9hZCksIGhhbmRsZUFjdGlvblJldHVyblZhbHVlKGFjdGlvblF1ZXVlLCBub2RlLCBjdXJyZW50VHJhbnNpdGlvbik7CiAgICAgICAgICB9IGNhdGNoIChlcnJvciQ0KSB7CiAgICAgICAgICAgIG9uQWN0aW9uRXJyb3IoYWN0aW9uUXVldWUsIG5vZGUsIGVycm9yJDQpOwogICAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGhhbmRsZUFjdGlvblJldHVyblZhbHVlKGFjdGlvblF1ZXVlLCBub2RlLCByZXR1cm5WYWx1ZSkgewogICAgICAgIG51bGwgIT09IHJldHVyblZhbHVlICYmICJvYmplY3QiID09PSB0eXBlb2YgcmV0dXJuVmFsdWUgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHJldHVyblZhbHVlLnRoZW4gPyAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuYXN5bmNUcmFuc2l0aW9ucysrLCByZXR1cm5WYWx1ZS50aGVuKHJlbGVhc2VBc3luY1RyYW5zaXRpb24sIHJlbGVhc2VBc3luY1RyYW5zaXRpb24pLCByZXR1cm5WYWx1ZS50aGVuKAogICAgICAgICAgZnVuY3Rpb24obmV4dFN0YXRlKSB7CiAgICAgICAgICAgIG9uQWN0aW9uU3VjY2VzcyhhY3Rpb25RdWV1ZSwgbm9kZSwgbmV4dFN0YXRlKTsKICAgICAgICAgIH0sCiAgICAgICAgICBmdW5jdGlvbihlcnJvcikgewogICAgICAgICAgICByZXR1cm4gb25BY3Rpb25FcnJvcihhY3Rpb25RdWV1ZSwgbm9kZSwgZXJyb3IpOwogICAgICAgICAgfQogICAgICAgICksIG5vZGUuaXNUcmFuc2l0aW9uIHx8IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiQW4gYXN5bmMgZnVuY3Rpb24gd2l0aCB1c2VBY3Rpb25TdGF0ZSB3YXMgY2FsbGVkIG91dHNpZGUgb2YgYSB0cmFuc2l0aW9uLiBUaGlzIGlzIGxpa2VseSBub3Qgd2hhdCB5b3UgaW50ZW5kZWQgKGZvciBleGFtcGxlLCBpc1BlbmRpbmcgd2lsbCBub3QgdXBkYXRlIGNvcnJlY3RseSkuIEVpdGhlciBjYWxsIHRoZSByZXR1cm5lZCBmdW5jdGlvbiBpbnNpZGUgc3RhcnRUcmFuc2l0aW9uLCBvciBwYXNzIGl0IHRvIGFuIGBhY3Rpb25gIG9yIGBmb3JtQWN0aW9uYCBwcm9wLiIKICAgICAgICApKSA6IG9uQWN0aW9uU3VjY2VzcyhhY3Rpb25RdWV1ZSwgbm9kZSwgcmV0dXJuVmFsdWUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG9uQWN0aW9uU3VjY2VzcyhhY3Rpb25RdWV1ZSwgYWN0aW9uTm9kZSwgbmV4dFN0YXRlKSB7CiAgICAgICAgYWN0aW9uTm9kZS5zdGF0dXMgPSAiZnVsZmlsbGVkIjsKICAgICAgICBhY3Rpb25Ob2RlLnZhbHVlID0gbmV4dFN0YXRlOwogICAgICAgIG5vdGlmeUFjdGlvbkxpc3RlbmVycyhhY3Rpb25Ob2RlKTsKICAgICAgICBhY3Rpb25RdWV1ZS5zdGF0ZSA9IG5leHRTdGF0ZTsKICAgICAgICBhY3Rpb25Ob2RlID0gYWN0aW9uUXVldWUucGVuZGluZzsKICAgICAgICBudWxsICE9PSBhY3Rpb25Ob2RlICYmIChuZXh0U3RhdGUgPSBhY3Rpb25Ob2RlLm5leHQsIG5leHRTdGF0ZSA9PT0gYWN0aW9uTm9kZSA/IGFjdGlvblF1ZXVlLnBlbmRpbmcgPSBudWxsIDogKG5leHRTdGF0ZSA9IG5leHRTdGF0ZS5uZXh0LCBhY3Rpb25Ob2RlLm5leHQgPSBuZXh0U3RhdGUsIHJ1bkFjdGlvblN0YXRlQWN0aW9uKGFjdGlvblF1ZXVlLCBuZXh0U3RhdGUpKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gb25BY3Rpb25FcnJvcihhY3Rpb25RdWV1ZSwgYWN0aW9uTm9kZSwgZXJyb3IpIHsKICAgICAgICB2YXIgbGFzdCA9IGFjdGlvblF1ZXVlLnBlbmRpbmc7CiAgICAgICAgYWN0aW9uUXVldWUucGVuZGluZyA9IG51bGw7CiAgICAgICAgaWYgKG51bGwgIT09IGxhc3QpIHsKICAgICAgICAgIGxhc3QgPSBsYXN0Lm5leHQ7CiAgICAgICAgICBkbwogICAgICAgICAgICBhY3Rpb25Ob2RlLnN0YXR1cyA9ICJyZWplY3RlZCIsIGFjdGlvbk5vZGUucmVhc29uID0gZXJyb3IsIG5vdGlmeUFjdGlvbkxpc3RlbmVycyhhY3Rpb25Ob2RlKSwgYWN0aW9uTm9kZSA9IGFjdGlvbk5vZGUubmV4dDsKICAgICAgICAgIHdoaWxlIChhY3Rpb25Ob2RlICE9PSBsYXN0KTsKICAgICAgICB9CiAgICAgICAgYWN0aW9uUXVldWUuYWN0aW9uID0gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBub3RpZnlBY3Rpb25MaXN0ZW5lcnMoYWN0aW9uTm9kZSkgewogICAgICAgIGFjdGlvbk5vZGUgPSBhY3Rpb25Ob2RlLmxpc3RlbmVyczsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjdGlvbk5vZGUubGVuZ3RoOyBpKyspICgwLCBhY3Rpb25Ob2RlW2ldKSgpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFjdGlvblN0YXRlUmVkdWNlcihvbGRTdGF0ZSwgbmV3U3RhdGUpIHsKICAgICAgICByZXR1cm4gbmV3U3RhdGU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW91bnRBY3Rpb25TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZVByb3ApIHsKICAgICAgICBpZiAoaXNIeWRyYXRpbmcpIHsKICAgICAgICAgIHZhciBzc3JGb3JtU3RhdGUgPSB3b3JrSW5Qcm9ncmVzc1Jvb3QuZm9ybVN0YXRlOwogICAgICAgICAgaWYgKG51bGwgIT09IHNzckZvcm1TdGF0ZSkgewogICAgICAgICAgICBhOiB7CiAgICAgICAgICAgICAgdmFyIGlzTWF0Y2hpbmcgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcjsKICAgICAgICAgICAgICBpZiAoaXNIeWRyYXRpbmcpIHsKICAgICAgICAgICAgICAgIGlmIChuZXh0SHlkcmF0YWJsZUluc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgICAgICB2YXIgbWFya2VySW5zdGFuY2UgPSBuZXh0SHlkcmF0YWJsZUluc3RhbmNlOwogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGluUm9vdE9yU2luZ2xldG9uID0gcm9vdE9yU2luZ2xldG9uQ29udGV4dDsgOCAhPT0gbWFya2VySW5zdGFuY2Uubm9kZVR5cGU7ICkgewogICAgICAgICAgICAgICAgICAgICAgaWYgKCFpblJvb3RPclNpbmdsZXRvbikgewogICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGI7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKAogICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZS5uZXh0U2libGluZwogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBtYXJrZXJJbnN0YW5jZSkgewogICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGI7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGluUm9vdE9yU2luZ2xldG9uID0gbWFya2VySW5zdGFuY2UuZGF0YTsKICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZSA9IGluUm9vdE9yU2luZ2xldG9uID09PSBGT1JNX1NUQVRFX0lTX01BVENISU5HIHx8IGluUm9vdE9yU2luZ2xldG9uID09PSBGT1JNX1NUQVRFX0lTX05PVF9NQVRDSElORyA/IG1hcmtlckluc3RhbmNlIDogbnVsbDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAobWFya2VySW5zdGFuY2UpIHsKICAgICAgICAgICAgICAgICAgICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0TmV4dEh5ZHJhdGFibGUoCiAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZS5uZXh0U2libGluZwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaXNNYXRjaGluZyA9IG1hcmtlckluc3RhbmNlLmRhdGEgPT09IEZPUk1fU1RBVEVfSVNfTUFUQ0hJTkc7CiAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKGlzTWF0Y2hpbmcpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpc01hdGNoaW5nID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaXNNYXRjaGluZyAmJiAoaW5pdGlhbFN0YXRlUHJvcCA9IHNzckZvcm1TdGF0ZVswXSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHNzckZvcm1TdGF0ZSA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7CiAgICAgICAgc3NyRm9ybVN0YXRlLm1lbW9pemVkU3RhdGUgPSBzc3JGb3JtU3RhdGUuYmFzZVN0YXRlID0gaW5pdGlhbFN0YXRlUHJvcDsKICAgICAgICBpc01hdGNoaW5nID0gewogICAgICAgICAgcGVuZGluZzogbnVsbCwKICAgICAgICAgIGxhbmVzOiAwLAogICAgICAgICAgZGlzcGF0Y2g6IG51bGwsCiAgICAgICAgICBsYXN0UmVuZGVyZWRSZWR1Y2VyOiBhY3Rpb25TdGF0ZVJlZHVjZXIsCiAgICAgICAgICBsYXN0UmVuZGVyZWRTdGF0ZTogaW5pdGlhbFN0YXRlUHJvcAogICAgICAgIH07CiAgICAgICAgc3NyRm9ybVN0YXRlLnF1ZXVlID0gaXNNYXRjaGluZzsKICAgICAgICBzc3JGb3JtU3RhdGUgPSBkaXNwYXRjaFNldFN0YXRlLmJpbmQoCiAgICAgICAgICBudWxsLAogICAgICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIsCiAgICAgICAgICBpc01hdGNoaW5nCiAgICAgICAgKTsKICAgICAgICBpc01hdGNoaW5nLmRpc3BhdGNoID0gc3NyRm9ybVN0YXRlOwogICAgICAgIGlzTWF0Y2hpbmcgPSBtb3VudFN0YXRlSW1wbChmYWxzZSk7CiAgICAgICAgaW5Sb290T3JTaW5nbGV0b24gPSBkaXNwYXRjaE9wdGltaXN0aWNTZXRTdGF0ZS5iaW5kKAogICAgICAgICAgbnVsbCwKICAgICAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLAogICAgICAgICAgZmFsc2UsCiAgICAgICAgICBpc01hdGNoaW5nLnF1ZXVlCiAgICAgICAgKTsKICAgICAgICBpc01hdGNoaW5nID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTsKICAgICAgICBtYXJrZXJJbnN0YW5jZSA9IHsKICAgICAgICAgIHN0YXRlOiBpbml0aWFsU3RhdGVQcm9wLAogICAgICAgICAgZGlzcGF0Y2g6IG51bGwsCiAgICAgICAgICBhY3Rpb24sCiAgICAgICAgICBwZW5kaW5nOiBudWxsCiAgICAgICAgfTsKICAgICAgICBpc01hdGNoaW5nLnF1ZXVlID0gbWFya2VySW5zdGFuY2U7CiAgICAgICAgc3NyRm9ybVN0YXRlID0gZGlzcGF0Y2hBY3Rpb25TdGF0ZS5iaW5kKAogICAgICAgICAgbnVsbCwKICAgICAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLAogICAgICAgICAgbWFya2VySW5zdGFuY2UsCiAgICAgICAgICBpblJvb3RPclNpbmdsZXRvbiwKICAgICAgICAgIHNzckZvcm1TdGF0ZQogICAgICAgICk7CiAgICAgICAgbWFya2VySW5zdGFuY2UuZGlzcGF0Y2ggPSBzc3JGb3JtU3RhdGU7CiAgICAgICAgaXNNYXRjaGluZy5tZW1vaXplZFN0YXRlID0gYWN0aW9uOwogICAgICAgIHJldHVybiBbaW5pdGlhbFN0YXRlUHJvcCwgc3NyRm9ybVN0YXRlLCBmYWxzZV07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXBkYXRlQWN0aW9uU3RhdGUoYWN0aW9uKSB7CiAgICAgICAgdmFyIHN0YXRlSG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpOwogICAgICAgIHJldHVybiB1cGRhdGVBY3Rpb25TdGF0ZUltcGwoc3RhdGVIb29rLCBjdXJyZW50SG9vaywgYWN0aW9uKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVBY3Rpb25TdGF0ZUltcGwoc3RhdGVIb29rLCBjdXJyZW50U3RhdGVIb29rLCBhY3Rpb24pIHsKICAgICAgICBjdXJyZW50U3RhdGVIb29rID0gdXBkYXRlUmVkdWNlckltcGwoCiAgICAgICAgICBzdGF0ZUhvb2ssCiAgICAgICAgICBjdXJyZW50U3RhdGVIb29rLAogICAgICAgICAgYWN0aW9uU3RhdGVSZWR1Y2VyCiAgICAgICAgKVswXTsKICAgICAgICBzdGF0ZUhvb2sgPSB1cGRhdGVSZWR1Y2VyKGJhc2ljU3RhdGVSZWR1Y2VyKVswXTsKICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiBjdXJyZW50U3RhdGVIb29rICYmIG51bGwgIT09IGN1cnJlbnRTdGF0ZUhvb2sgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGN1cnJlbnRTdGF0ZUhvb2sudGhlbikKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBzdGF0ZSA9IHVzZVRoZW5hYmxlKGN1cnJlbnRTdGF0ZUhvb2spOwogICAgICAgICAgfSBjYXRjaCAoeCkgewogICAgICAgICAgICBpZiAoeCA9PT0gU3VzcGVuc2VFeGNlcHRpb24pIHRocm93IFN1c3BlbnNlQWN0aW9uRXhjZXB0aW9uOwogICAgICAgICAgICB0aHJvdyB4OwogICAgICAgICAgfQogICAgICAgIGVsc2Ugc3RhdGUgPSBjdXJyZW50U3RhdGVIb29rOwogICAgICAgIGN1cnJlbnRTdGF0ZUhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTsKICAgICAgICB2YXIgYWN0aW9uUXVldWUgPSBjdXJyZW50U3RhdGVIb29rLnF1ZXVlLCBkaXNwYXRjaCA9IGFjdGlvblF1ZXVlLmRpc3BhdGNoOwogICAgICAgIGFjdGlvbiAhPT0gY3VycmVudFN0YXRlSG9vay5tZW1vaXplZFN0YXRlICYmIChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5mbGFncyB8PSAyMDQ4LCBwdXNoU2ltcGxlRWZmZWN0KAogICAgICAgICAgSGFzRWZmZWN0IHwgUGFzc2l2ZSwKICAgICAgICAgIHsgZGVzdHJveTogdm9pZCAwIH0sCiAgICAgICAgICBhY3Rpb25TdGF0ZUFjdGlvbkVmZmVjdC5iaW5kKG51bGwsIGFjdGlvblF1ZXVlLCBhY3Rpb24pLAogICAgICAgICAgbnVsbAogICAgICAgICkpOwogICAgICAgIHJldHVybiBbc3RhdGUsIGRpc3BhdGNoLCBzdGF0ZUhvb2tdOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFjdGlvblN0YXRlQWN0aW9uRWZmZWN0KGFjdGlvblF1ZXVlLCBhY3Rpb24pIHsKICAgICAgICBhY3Rpb25RdWV1ZS5hY3Rpb24gPSBhY3Rpb247CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVyZW5kZXJBY3Rpb25TdGF0ZShhY3Rpb24pIHsKICAgICAgICB2YXIgc3RhdGVIb29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCksIGN1cnJlbnRTdGF0ZUhvb2sgPSBjdXJyZW50SG9vazsKICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudFN0YXRlSG9vaykKICAgICAgICAgIHJldHVybiB1cGRhdGVBY3Rpb25TdGF0ZUltcGwoc3RhdGVIb29rLCBjdXJyZW50U3RhdGVIb29rLCBhY3Rpb24pOwogICAgICAgIHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpOwogICAgICAgIHN0YXRlSG9vayA9IHN0YXRlSG9vay5tZW1vaXplZFN0YXRlOwogICAgICAgIGN1cnJlbnRTdGF0ZUhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTsKICAgICAgICB2YXIgZGlzcGF0Y2ggPSBjdXJyZW50U3RhdGVIb29rLnF1ZXVlLmRpc3BhdGNoOwogICAgICAgIGN1cnJlbnRTdGF0ZUhvb2subWVtb2l6ZWRTdGF0ZSA9IGFjdGlvbjsKICAgICAgICByZXR1cm4gW3N0YXRlSG9vaywgZGlzcGF0Y2gsIGZhbHNlXTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwdXNoU2ltcGxlRWZmZWN0KHRhZywgaW5zdCwgY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgdGFnID0geyB0YWcsIGNyZWF0ZSwgZGVwcywgaW5zdCwgbmV4dDogbnVsbCB9OwogICAgICAgIGluc3QgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci51cGRhdGVRdWV1ZTsKICAgICAgICBudWxsID09PSBpbnN0ICYmIChpbnN0ID0gY3JlYXRlRnVuY3Rpb25Db21wb25lbnRVcGRhdGVRdWV1ZSgpLCBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci51cGRhdGVRdWV1ZSA9IGluc3QpOwogICAgICAgIGNyZWF0ZSA9IGluc3QubGFzdEVmZmVjdDsKICAgICAgICBudWxsID09PSBjcmVhdGUgPyBpbnN0Lmxhc3RFZmZlY3QgPSB0YWcubmV4dCA9IHRhZyA6IChkZXBzID0gY3JlYXRlLm5leHQsIGNyZWF0ZS5uZXh0ID0gdGFnLCB0YWcubmV4dCA9IGRlcHMsIGluc3QubGFzdEVmZmVjdCA9IHRhZyk7CiAgICAgICAgcmV0dXJuIHRhZzsKICAgICAgfQogICAgICBmdW5jdGlvbiBtb3VudFJlZihpbml0aWFsVmFsdWUpIHsKICAgICAgICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7CiAgICAgICAgaW5pdGlhbFZhbHVlID0geyBjdXJyZW50OiBpbml0aWFsVmFsdWUgfTsKICAgICAgICByZXR1cm4gaG9vay5tZW1vaXplZFN0YXRlID0gaW5pdGlhbFZhbHVlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1vdW50RWZmZWN0SW1wbChmaWJlckZsYWdzLCBob29rRmxhZ3MsIGNyZWF0ZSwgZGVwcykgewogICAgICAgIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTsKICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5mbGFncyB8PSBmaWJlckZsYWdzOwogICAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHB1c2hTaW1wbGVFZmZlY3QoCiAgICAgICAgICBIYXNFZmZlY3QgfCBob29rRmxhZ3MsCiAgICAgICAgICB7IGRlc3Ryb3k6IHZvaWQgMCB9LAogICAgICAgICAgY3JlYXRlLAogICAgICAgICAgdm9pZCAwID09PSBkZXBzID8gbnVsbCA6IGRlcHMKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZGF0ZUVmZmVjdEltcGwoZmliZXJGbGFncywgaG9va0ZsYWdzLCBjcmVhdGUsIGRlcHMpIHsKICAgICAgICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpOwogICAgICAgIGRlcHMgPSB2b2lkIDAgPT09IGRlcHMgPyBudWxsIDogZGVwczsKICAgICAgICB2YXIgaW5zdCA9IGhvb2subWVtb2l6ZWRTdGF0ZS5pbnN0OwogICAgICAgIG51bGwgIT09IGN1cnJlbnRIb29rICYmIG51bGwgIT09IGRlcHMgJiYgYXJlSG9va0lucHV0c0VxdWFsKGRlcHMsIGN1cnJlbnRIb29rLm1lbW9pemVkU3RhdGUuZGVwcykgPyBob29rLm1lbW9pemVkU3RhdGUgPSBwdXNoU2ltcGxlRWZmZWN0KGhvb2tGbGFncywgaW5zdCwgY3JlYXRlLCBkZXBzKSA6IChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5mbGFncyB8PSBmaWJlckZsYWdzLCBob29rLm1lbW9pemVkU3RhdGUgPSBwdXNoU2ltcGxlRWZmZWN0KAogICAgICAgICAgSGFzRWZmZWN0IHwgaG9va0ZsYWdzLAogICAgICAgICAgaW5zdCwKICAgICAgICAgIGNyZWF0ZSwKICAgICAgICAgIGRlcHMKICAgICAgICApKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBtb3VudEVmZmVjdChjcmVhdGUsIGRlcHMpIHsKICAgICAgICAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlID8gbW91bnRFZmZlY3RJbXBsKDI3NjgyNjExMiwgUGFzc2l2ZSwgY3JlYXRlLCBkZXBzKSA6IG1vdW50RWZmZWN0SW1wbCg4MzkwNjU2LCBQYXNzaXZlLCBjcmVhdGUsIGRlcHMpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVzZUVmZmVjdEV2ZW50SW1wbChwYXlsb2FkKSB7CiAgICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIuZmxhZ3MgfD0gNDsKICAgICAgICB2YXIgY29tcG9uZW50VXBkYXRlUXVldWUgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci51cGRhdGVRdWV1ZTsKICAgICAgICBpZiAobnVsbCA9PT0gY29tcG9uZW50VXBkYXRlUXVldWUpCiAgICAgICAgICBjb21wb25lbnRVcGRhdGVRdWV1ZSA9IGNyZWF0ZUZ1bmN0aW9uQ29tcG9uZW50VXBkYXRlUXVldWUoKSwgY3VycmVudGx5UmVuZGVyaW5nRmliZXIudXBkYXRlUXVldWUgPSBjb21wb25lbnRVcGRhdGVRdWV1ZSwgY29tcG9uZW50VXBkYXRlUXVldWUuZXZlbnRzID0gW3BheWxvYWRdOwogICAgICAgIGVsc2UgewogICAgICAgICAgdmFyIGV2ZW50cyA9IGNvbXBvbmVudFVwZGF0ZVF1ZXVlLmV2ZW50czsKICAgICAgICAgIG51bGwgPT09IGV2ZW50cyA/IGNvbXBvbmVudFVwZGF0ZVF1ZXVlLmV2ZW50cyA9IFtwYXlsb2FkXSA6IGV2ZW50cy5wdXNoKHBheWxvYWQpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBtb3VudEV2ZW50KGNhbGxiYWNrKSB7CiAgICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpLCByZWYgPSB7IGltcGw6IGNhbGxiYWNrIH07CiAgICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gcmVmOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmICgoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpICE9PSBOb0NvbnRleHQpCiAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICJBIGZ1bmN0aW9uIHdyYXBwZWQgaW4gdXNlRWZmZWN0RXZlbnQgY2FuJ3QgYmUgY2FsbGVkIGR1cmluZyByZW5kZXJpbmcuIgogICAgICAgICAgICApOwogICAgICAgICAgcmV0dXJuIHJlZi5pbXBsLmFwcGx5KHZvaWQgMCwgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZGF0ZUV2ZW50KGNhbGxiYWNrKSB7CiAgICAgICAgdmFyIHJlZiA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGU7CiAgICAgICAgdXNlRWZmZWN0RXZlbnRJbXBsKHsgcmVmLCBuZXh0SW1wbDogY2FsbGJhY2sgfSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vQ29udGV4dCkKICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgIkEgZnVuY3Rpb24gd3JhcHBlZCBpbiB1c2VFZmZlY3RFdmVudCBjYW4ndCBiZSBjYWxsZWQgZHVyaW5nIHJlbmRlcmluZy4iCiAgICAgICAgICAgICk7CiAgICAgICAgICByZXR1cm4gcmVmLmltcGwuYXBwbHkodm9pZCAwLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgdmFyIGZpYmVyRmxhZ3MgPSA0MTk0MzA4OwogICAgICAgIChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUgJiYgKGZpYmVyRmxhZ3MgfD0gMTM0MjE3NzI4KTsKICAgICAgICByZXR1cm4gbW91bnRFZmZlY3RJbXBsKGZpYmVyRmxhZ3MsIExheW91dCwgY3JlYXRlLCBkZXBzKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpbXBlcmF0aXZlSGFuZGxlRWZmZWN0KGNyZWF0ZSwgcmVmKSB7CiAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiByZWYpIHsKICAgICAgICAgIGNyZWF0ZSA9IGNyZWF0ZSgpOwogICAgICAgICAgdmFyIHJlZkNsZWFudXAgPSByZWYoY3JlYXRlKTsKICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHJlZkNsZWFudXAgPyByZWZDbGVhbnVwKCkgOiByZWYobnVsbCk7CiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBpZiAobnVsbCAhPT0gcmVmICYmIHZvaWQgMCAhPT0gcmVmKQogICAgICAgICAgcmV0dXJuIHJlZi5oYXNPd25Qcm9wZXJ0eSgiY3VycmVudCIpIHx8IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJFeHBlY3RlZCB1c2VJbXBlcmF0aXZlSGFuZGxlKCkgZmlyc3QgYXJndW1lbnQgdG8gZWl0aGVyIGJlIGEgcmVmIGNhbGxiYWNrIG9yIFJlYWN0LmNyZWF0ZVJlZigpIG9iamVjdC4gSW5zdGVhZCByZWNlaXZlZDogJXMuIiwKICAgICAgICAgICAgImFuIG9iamVjdCB3aXRoIGtleXMgeyIgKyBPYmplY3Qua2V5cyhyZWYpLmpvaW4oIiwgIikgKyAifSIKICAgICAgICAgICksIGNyZWF0ZSA9IGNyZWF0ZSgpLCByZWYuY3VycmVudCA9IGNyZWF0ZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbnVsbDsKICAgICAgICAgIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW91bnRJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIGNyZWF0ZSAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkV4cGVjdGVkIHVzZUltcGVyYXRpdmVIYW5kbGUoKSBzZWNvbmQgYXJndW1lbnQgdG8gYmUgYSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYSBoYW5kbGUuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzLiIsCiAgICAgICAgICBudWxsICE9PSBjcmVhdGUgPyB0eXBlb2YgY3JlYXRlIDogIm51bGwiCiAgICAgICAgKTsKICAgICAgICBkZXBzID0gbnVsbCAhPT0gZGVwcyAmJiB2b2lkIDAgIT09IGRlcHMgPyBkZXBzLmNvbmNhdChbcmVmXSkgOiBudWxsOwogICAgICAgIHZhciBmaWJlckZsYWdzID0gNDE5NDMwODsKICAgICAgICAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlICYmIChmaWJlckZsYWdzIHw9IDEzNDIxNzcyOCk7CiAgICAgICAgbW91bnRFZmZlY3RJbXBsKAogICAgICAgICAgZmliZXJGbGFncywKICAgICAgICAgIExheW91dCwKICAgICAgICAgIGltcGVyYXRpdmVIYW5kbGVFZmZlY3QuYmluZChudWxsLCBjcmVhdGUsIHJlZiksCiAgICAgICAgICBkZXBzCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIGNyZWF0ZSAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkV4cGVjdGVkIHVzZUltcGVyYXRpdmVIYW5kbGUoKSBzZWNvbmQgYXJndW1lbnQgdG8gYmUgYSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYSBoYW5kbGUuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzLiIsCiAgICAgICAgICBudWxsICE9PSBjcmVhdGUgPyB0eXBlb2YgY3JlYXRlIDogIm51bGwiCiAgICAgICAgKTsKICAgICAgICBkZXBzID0gbnVsbCAhPT0gZGVwcyAmJiB2b2lkIDAgIT09IGRlcHMgPyBkZXBzLmNvbmNhdChbcmVmXSkgOiBudWxsOwogICAgICAgIHVwZGF0ZUVmZmVjdEltcGwoCiAgICAgICAgICA0LAogICAgICAgICAgTGF5b3V0LAogICAgICAgICAgaW1wZXJhdGl2ZUhhbmRsZUVmZmVjdC5iaW5kKG51bGwsIGNyZWF0ZSwgcmVmKSwKICAgICAgICAgIGRlcHMKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpIHsKICAgICAgICBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGUgPSBbCiAgICAgICAgICBjYWxsYmFjaywKICAgICAgICAgIHZvaWQgMCA9PT0gZGVwcyA/IG51bGwgOiBkZXBzCiAgICAgICAgXTsKICAgICAgICByZXR1cm4gY2FsbGJhY2s7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXBkYXRlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpIHsKICAgICAgICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpOwogICAgICAgIGRlcHMgPSB2b2lkIDAgPT09IGRlcHMgPyBudWxsIDogZGVwczsKICAgICAgICB2YXIgcHJldlN0YXRlID0gaG9vay5tZW1vaXplZFN0YXRlOwogICAgICAgIGlmIChudWxsICE9PSBkZXBzICYmIGFyZUhvb2tJbnB1dHNFcXVhbChkZXBzLCBwcmV2U3RhdGVbMV0pKQogICAgICAgICAgcmV0dXJuIHByZXZTdGF0ZVswXTsKICAgICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBbY2FsbGJhY2ssIGRlcHNdOwogICAgICAgIHJldHVybiBjYWxsYmFjazsKICAgICAgfQogICAgICBmdW5jdGlvbiBtb3VudE1lbW8obmV4dENyZWF0ZSwgZGVwcykgewogICAgICAgIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTsKICAgICAgICBkZXBzID0gdm9pZCAwID09PSBkZXBzID8gbnVsbCA6IGRlcHM7CiAgICAgICAgdmFyIG5leHRWYWx1ZSA9IG5leHRDcmVhdGUoKTsKICAgICAgICBpZiAoc2hvdWxkRG91YmxlSW52b2tlVXNlckZuc0luSG9va3NERVYpIHsKICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgbmV4dENyZWF0ZSgpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBbbmV4dFZhbHVlLCBkZXBzXTsKICAgICAgICByZXR1cm4gbmV4dFZhbHVlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZGF0ZU1lbW8obmV4dENyZWF0ZSwgZGVwcykgewogICAgICAgIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7CiAgICAgICAgZGVwcyA9IHZvaWQgMCA9PT0gZGVwcyA/IG51bGwgOiBkZXBzOwogICAgICAgIHZhciBwcmV2U3RhdGUgPSBob29rLm1lbW9pemVkU3RhdGU7CiAgICAgICAgaWYgKG51bGwgIT09IGRlcHMgJiYgYXJlSG9va0lucHV0c0VxdWFsKGRlcHMsIHByZXZTdGF0ZVsxXSkpCiAgICAgICAgICByZXR1cm4gcHJldlN0YXRlWzBdOwogICAgICAgIHByZXZTdGF0ZSA9IG5leHRDcmVhdGUoKTsKICAgICAgICBpZiAoc2hvdWxkRG91YmxlSW52b2tlVXNlckZuc0luSG9va3NERVYpIHsKICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgbmV4dENyZWF0ZSgpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBbcHJldlN0YXRlLCBkZXBzXTsKICAgICAgICByZXR1cm4gcHJldlN0YXRlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1vdW50RGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7CiAgICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpOwogICAgICAgIHJldHVybiBtb3VudERlZmVycmVkVmFsdWVJbXBsKGhvb2ssIHZhbHVlLCBpbml0aWFsVmFsdWUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZGF0ZURlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSkgewogICAgICAgIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7CiAgICAgICAgcmV0dXJuIHVwZGF0ZURlZmVycmVkVmFsdWVJbXBsKAogICAgICAgICAgaG9vaywKICAgICAgICAgIGN1cnJlbnRIb29rLm1lbW9pemVkU3RhdGUsCiAgICAgICAgICB2YWx1ZSwKICAgICAgICAgIGluaXRpYWxWYWx1ZQogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVyZW5kZXJEZWZlcnJlZFZhbHVlKHZhbHVlLCBpbml0aWFsVmFsdWUpIHsKICAgICAgICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpOwogICAgICAgIHJldHVybiBudWxsID09PSBjdXJyZW50SG9vayA/IG1vdW50RGVmZXJyZWRWYWx1ZUltcGwoaG9vaywgdmFsdWUsIGluaXRpYWxWYWx1ZSkgOiB1cGRhdGVEZWZlcnJlZFZhbHVlSW1wbCgKICAgICAgICAgIGhvb2ssCiAgICAgICAgICBjdXJyZW50SG9vay5tZW1vaXplZFN0YXRlLAogICAgICAgICAgdmFsdWUsCiAgICAgICAgICBpbml0aWFsVmFsdWUKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1vdW50RGVmZXJyZWRWYWx1ZUltcGwoaG9vaywgdmFsdWUsIGluaXRpYWxWYWx1ZSkgewogICAgICAgIGlmICh2b2lkIDAgPT09IGluaXRpYWxWYWx1ZSB8fCAwICE9PSAocmVuZGVyTGFuZXMgJiAxMDczNzQxODI0KSAmJiAwID09PSAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiAyNjE5MzApKQogICAgICAgICAgcmV0dXJuIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHZhbHVlOwogICAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IGluaXRpYWxWYWx1ZTsKICAgICAgICBob29rID0gcmVxdWVzdERlZmVycmVkTGFuZSgpOwogICAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmxhbmVzIHw9IGhvb2s7CiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzIHw9IGhvb2s7CiAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVEZWZlcnJlZFZhbHVlSW1wbChob29rLCBwcmV2VmFsdWUsIHZhbHVlLCBpbml0aWFsVmFsdWUpIHsKICAgICAgICBpZiAob2JqZWN0SXModmFsdWUsIHByZXZWYWx1ZSkpIHJldHVybiB2YWx1ZTsKICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudFRyZWVIaWRkZW5TdGFja0N1cnNvci5jdXJyZW50KQogICAgICAgICAgcmV0dXJuIGhvb2sgPSBtb3VudERlZmVycmVkVmFsdWVJbXBsKGhvb2ssIHZhbHVlLCBpbml0aWFsVmFsdWUpLCBvYmplY3RJcyhob29rLCBwcmV2VmFsdWUpIHx8IChkaWRSZWNlaXZlVXBkYXRlID0gdHJ1ZSksIGhvb2s7CiAgICAgICAgaWYgKDAgPT09IChyZW5kZXJMYW5lcyAmIDQyKSB8fCAwICE9PSAocmVuZGVyTGFuZXMgJiAxMDczNzQxODI0KSAmJiAwID09PSAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiAyNjE5MzApKQogICAgICAgICAgcmV0dXJuIGRpZFJlY2VpdmVVcGRhdGUgPSB0cnVlLCBob29rLm1lbW9pemVkU3RhdGUgPSB2YWx1ZTsKICAgICAgICBob29rID0gcmVxdWVzdERlZmVycmVkTGFuZSgpOwogICAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmxhbmVzIHw9IGhvb2s7CiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzIHw9IGhvb2s7CiAgICAgICAgcmV0dXJuIHByZXZWYWx1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZWxlYXNlQXN5bmNUcmFuc2l0aW9uKCkgewogICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFzeW5jVHJhbnNpdGlvbnMtLTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oZmliZXIsIHF1ZXVlLCBwZW5kaW5nU3RhdGUsIGZpbmlzaGVkU3RhdGUsIGNhbGxiYWNrKSB7CiAgICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wOwogICAgICAgIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSAwICE9PSBwcmV2aW91c1ByaW9yaXR5ICYmIHByZXZpb3VzUHJpb3JpdHkgPCBDb250aW51b3VzRXZlbnRQcmlvcml0eSA/IHByZXZpb3VzUHJpb3JpdHkgOiBDb250aW51b3VzRXZlbnRQcmlvcml0eTsKICAgICAgICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdFNoYXJlZEludGVybmFscy5ULCBjdXJyZW50VHJhbnNpdGlvbiA9IHt9OwogICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gY3VycmVudFRyYW5zaXRpb247CiAgICAgICAgZGlzcGF0Y2hPcHRpbWlzdGljU2V0U3RhdGUoZmliZXIsIGZhbHNlLCBxdWV1ZSwgcGVuZGluZ1N0YXRlKTsKICAgICAgICB0cnkgewogICAgICAgICAgdmFyIHJldHVyblZhbHVlID0gY2FsbGJhY2soKSwgb25TdGFydFRyYW5zaXRpb25GaW5pc2ggPSBSZWFjdFNoYXJlZEludGVybmFscy5TOwogICAgICAgICAgbnVsbCAhPT0gb25TdGFydFRyYW5zaXRpb25GaW5pc2ggJiYgb25TdGFydFRyYW5zaXRpb25GaW5pc2goY3VycmVudFRyYW5zaXRpb24sIHJldHVyblZhbHVlKTsKICAgICAgICAgIGlmIChudWxsICE9PSByZXR1cm5WYWx1ZSAmJiAib2JqZWN0IiA9PT0gdHlwZW9mIHJldHVyblZhbHVlICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiByZXR1cm5WYWx1ZS50aGVuKSB7CiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFzeW5jVHJhbnNpdGlvbnMrKzsKICAgICAgICAgICAgcmV0dXJuVmFsdWUudGhlbihyZWxlYXNlQXN5bmNUcmFuc2l0aW9uLCByZWxlYXNlQXN5bmNUcmFuc2l0aW9uKTsKICAgICAgICAgICAgdmFyIHRoZW5hYmxlRm9yRmluaXNoZWRTdGF0ZSA9IGNoYWluVGhlbmFibGVWYWx1ZSgKICAgICAgICAgICAgICByZXR1cm5WYWx1ZSwKICAgICAgICAgICAgICBmaW5pc2hlZFN0YXRlCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGRpc3BhdGNoU2V0U3RhdGVJbnRlcm5hbCgKICAgICAgICAgICAgICBmaWJlciwKICAgICAgICAgICAgICBxdWV1ZSwKICAgICAgICAgICAgICB0aGVuYWJsZUZvckZpbmlzaGVkU3RhdGUsCiAgICAgICAgICAgICAgcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpCiAgICAgICAgICAgICk7CiAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgZGlzcGF0Y2hTZXRTdGF0ZUludGVybmFsKAogICAgICAgICAgICAgIGZpYmVyLAogICAgICAgICAgICAgIHF1ZXVlLAogICAgICAgICAgICAgIGZpbmlzaGVkU3RhdGUsCiAgICAgICAgICAgICAgcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpCiAgICAgICAgICAgICk7CiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgIGRpc3BhdGNoU2V0U3RhdGVJbnRlcm5hbCgKICAgICAgICAgICAgZmliZXIsCiAgICAgICAgICAgIHF1ZXVlLAogICAgICAgICAgICB7IHRoZW46IGZ1bmN0aW9uKCkgewogICAgICAgICAgICB9LCBzdGF0dXM6ICJyZWplY3RlZCIsIHJlYXNvbjogZXJyb3IgfSwKICAgICAgICAgICAgcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpCiAgICAgICAgICApOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gcHJldmlvdXNQcmlvcml0eSwgbnVsbCAhPT0gcHJldlRyYW5zaXRpb24gJiYgbnVsbCAhPT0gY3VycmVudFRyYW5zaXRpb24udHlwZXMgJiYgKG51bGwgIT09IHByZXZUcmFuc2l0aW9uLnR5cGVzICYmIHByZXZUcmFuc2l0aW9uLnR5cGVzICE9PSBjdXJyZW50VHJhbnNpdGlvbi50eXBlcyAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiV2UgZXhwZWN0ZWQgaW5uZXIgVHJhbnNpdGlvbnMgdG8gaGF2ZSB0cmFuc2ZlcnJlZCB0aGUgb3V0ZXIgdHlwZXMgc2V0IGFuZCB0aGF0IHlvdSBjYW5ub3QgYWRkIHRvIHRoZSBvdXRlciBUcmFuc2l0aW9uIHdoaWxlIGluc2lkZSB0aGUgaW5uZXIuVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4iCiAgICAgICAgICApLCBwcmV2VHJhbnNpdGlvbi50eXBlcyA9IGN1cnJlbnRUcmFuc2l0aW9uLnR5cGVzKSwgUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IHByZXZUcmFuc2l0aW9uLCBudWxsID09PSBwcmV2VHJhbnNpdGlvbiAmJiBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyAmJiAoZmliZXIgPSBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5zaXplLCBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5jbGVhcigpLCAxMCA8IGZpYmVyICYmIGNvbnNvbGUud2FybigKICAgICAgICAgICAgIkRldGVjdGVkIGEgbGFyZ2UgbnVtYmVyIG9mIHVwZGF0ZXMgaW5zaWRlIHN0YXJ0VHJhbnNpdGlvbi4gSWYgdGhpcyBpcyBkdWUgdG8gYSBzdWJzY3JpcHRpb24gcGxlYXNlIHJlLXdyaXRlIGl0IHRvIHVzZSBSZWFjdCBwcm92aWRlZCBob29rcy4gT3RoZXJ3aXNlIGNvbmN1cnJlbnQgbW9kZSBndWFyYW50ZWVzIGFyZSBvZmYgdGhlIHRhYmxlLiIKICAgICAgICAgICkpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBzdGFydEhvc3RUcmFuc2l0aW9uKGZvcm1GaWJlciwgcGVuZGluZ1N0YXRlLCBhY3Rpb24sIGZvcm1EYXRhKSB7CiAgICAgICAgaWYgKDUgIT09IGZvcm1GaWJlci50YWcpCiAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgIkV4cGVjdGVkIHRoZSBmb3JtIGluc3RhbmNlIHRvIGJlIGEgSG9zdENvbXBvbmVudC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4iCiAgICAgICAgICApOwogICAgICAgIHZhciBxdWV1ZSA9IGVuc3VyZUZvcm1Db21wb25lbnRJc1N0YXRlZnVsKGZvcm1GaWJlcikucXVldWU7CiAgICAgICAgc3RhcnRIb3N0QWN0aW9uVGltZXIoZm9ybUZpYmVyKTsKICAgICAgICBzdGFydFRyYW5zaXRpb24oCiAgICAgICAgICBmb3JtRmliZXIsCiAgICAgICAgICBxdWV1ZSwKICAgICAgICAgIHBlbmRpbmdTdGF0ZSwKICAgICAgICAgIE5vdFBlbmRpbmdUcmFuc2l0aW9uLAogICAgICAgICAgbnVsbCA9PT0gYWN0aW9uID8gbm9vcCA6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXF1ZXN0Rm9ybVJlc2V0JDEoZm9ybUZpYmVyKTsKICAgICAgICAgICAgcmV0dXJuIGFjdGlvbihmb3JtRGF0YSk7CiAgICAgICAgICB9CiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbnN1cmVGb3JtQ29tcG9uZW50SXNTdGF0ZWZ1bChmb3JtRmliZXIpIHsKICAgICAgICB2YXIgZXhpc3RpbmdTdGF0ZUhvb2sgPSBmb3JtRmliZXIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICBpZiAobnVsbCAhPT0gZXhpc3RpbmdTdGF0ZUhvb2spIHJldHVybiBleGlzdGluZ1N0YXRlSG9vazsKICAgICAgICBleGlzdGluZ1N0YXRlSG9vayA9IHsKICAgICAgICAgIG1lbW9pemVkU3RhdGU6IE5vdFBlbmRpbmdUcmFuc2l0aW9uLAogICAgICAgICAgYmFzZVN0YXRlOiBOb3RQZW5kaW5nVHJhbnNpdGlvbiwKICAgICAgICAgIGJhc2VRdWV1ZTogbnVsbCwKICAgICAgICAgIHF1ZXVlOiB7CiAgICAgICAgICAgIHBlbmRpbmc6IG51bGwsCiAgICAgICAgICAgIGxhbmVzOiAwLAogICAgICAgICAgICBkaXNwYXRjaDogbnVsbCwKICAgICAgICAgICAgbGFzdFJlbmRlcmVkUmVkdWNlcjogYmFzaWNTdGF0ZVJlZHVjZXIsCiAgICAgICAgICAgIGxhc3RSZW5kZXJlZFN0YXRlOiBOb3RQZW5kaW5nVHJhbnNpdGlvbgogICAgICAgICAgfSwKICAgICAgICAgIG5leHQ6IG51bGwKICAgICAgICB9OwogICAgICAgIHZhciBpbml0aWFsUmVzZXRTdGF0ZSA9IHt9OwogICAgICAgIGV4aXN0aW5nU3RhdGVIb29rLm5leHQgPSB7CiAgICAgICAgICBtZW1vaXplZFN0YXRlOiBpbml0aWFsUmVzZXRTdGF0ZSwKICAgICAgICAgIGJhc2VTdGF0ZTogaW5pdGlhbFJlc2V0U3RhdGUsCiAgICAgICAgICBiYXNlUXVldWU6IG51bGwsCiAgICAgICAgICBxdWV1ZTogewogICAgICAgICAgICBwZW5kaW5nOiBudWxsLAogICAgICAgICAgICBsYW5lczogMCwKICAgICAgICAgICAgZGlzcGF0Y2g6IG51bGwsCiAgICAgICAgICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IGJhc2ljU3RhdGVSZWR1Y2VyLAogICAgICAgICAgICBsYXN0UmVuZGVyZWRTdGF0ZTogaW5pdGlhbFJlc2V0U3RhdGUKICAgICAgICAgIH0sCiAgICAgICAgICBuZXh0OiBudWxsCiAgICAgICAgfTsKICAgICAgICBmb3JtRmliZXIubWVtb2l6ZWRTdGF0ZSA9IGV4aXN0aW5nU3RhdGVIb29rOwogICAgICAgIGZvcm1GaWJlciA9IGZvcm1GaWJlci5hbHRlcm5hdGU7CiAgICAgICAgbnVsbCAhPT0gZm9ybUZpYmVyICYmIChmb3JtRmliZXIubWVtb2l6ZWRTdGF0ZSA9IGV4aXN0aW5nU3RhdGVIb29rKTsKICAgICAgICByZXR1cm4gZXhpc3RpbmdTdGF0ZUhvb2s7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVxdWVzdEZvcm1SZXNldCQxKGZvcm1GaWJlcikgewogICAgICAgIG51bGwgPT09IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICJyZXF1ZXN0Rm9ybVJlc2V0IHdhcyBjYWxsZWQgb3V0c2lkZSBhIHRyYW5zaXRpb24gb3IgYWN0aW9uLiBUbyBmaXgsIG1vdmUgdG8gYW4gYWN0aW9uLCBvciB3cmFwIHdpdGggc3RhcnRUcmFuc2l0aW9uLiIKICAgICAgICApOwogICAgICAgIHZhciBzdGF0ZUhvb2sgPSBlbnN1cmVGb3JtQ29tcG9uZW50SXNTdGF0ZWZ1bChmb3JtRmliZXIpOwogICAgICAgIG51bGwgPT09IHN0YXRlSG9vay5uZXh0ICYmIChzdGF0ZUhvb2sgPSBmb3JtRmliZXIuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUpOwogICAgICAgIGRpc3BhdGNoU2V0U3RhdGVJbnRlcm5hbCgKICAgICAgICAgIGZvcm1GaWJlciwKICAgICAgICAgIHN0YXRlSG9vay5uZXh0LnF1ZXVlLAogICAgICAgICAge30sCiAgICAgICAgICByZXF1ZXN0VXBkYXRlTGFuZShmb3JtRmliZXIpCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBtb3VudFRyYW5zaXRpb24oKSB7CiAgICAgICAgdmFyIHN0YXRlSG9vayA9IG1vdW50U3RhdGVJbXBsKGZhbHNlKTsKICAgICAgICBzdGF0ZUhvb2sgPSBzdGFydFRyYW5zaXRpb24uYmluZCgKICAgICAgICAgIG51bGwsCiAgICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciwKICAgICAgICAgIHN0YXRlSG9vay5xdWV1ZSwKICAgICAgICAgIHRydWUsCiAgICAgICAgICBmYWxzZQogICAgICAgICk7CiAgICAgICAgbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlID0gc3RhdGVIb29rOwogICAgICAgIHJldHVybiBbZmFsc2UsIHN0YXRlSG9va107CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXBkYXRlVHJhbnNpdGlvbigpIHsKICAgICAgICB2YXIgYm9vbGVhbk9yVGhlbmFibGUgPSB1cGRhdGVSZWR1Y2VyKGJhc2ljU3RhdGVSZWR1Y2VyKVswXSwgc3RhcnQgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlOwogICAgICAgIHJldHVybiBbCiAgICAgICAgICAiYm9vbGVhbiIgPT09IHR5cGVvZiBib29sZWFuT3JUaGVuYWJsZSA/IGJvb2xlYW5PclRoZW5hYmxlIDogdXNlVGhlbmFibGUoYm9vbGVhbk9yVGhlbmFibGUpLAogICAgICAgICAgc3RhcnQKICAgICAgICBdOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlcmVuZGVyVHJhbnNpdGlvbigpIHsKICAgICAgICB2YXIgYm9vbGVhbk9yVGhlbmFibGUgPSByZXJlbmRlclJlZHVjZXIoYmFzaWNTdGF0ZVJlZHVjZXIpWzBdLCBzdGFydCA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGU7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICJib29sZWFuIiA9PT0gdHlwZW9mIGJvb2xlYW5PclRoZW5hYmxlID8gYm9vbGVhbk9yVGhlbmFibGUgOiB1c2VUaGVuYWJsZShib29sZWFuT3JUaGVuYWJsZSksCiAgICAgICAgICBzdGFydAogICAgICAgIF07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXNlSG9zdFRyYW5zaXRpb25TdGF0dXMoKSB7CiAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KEhvc3RUcmFuc2l0aW9uQ29udGV4dCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW91bnRJZCgpIHsKICAgICAgICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCksIGlkZW50aWZpZXJQcmVmaXggPSB3b3JrSW5Qcm9ncmVzc1Jvb3QuaWRlbnRpZmllclByZWZpeDsKICAgICAgICBpZiAoaXNIeWRyYXRpbmcpIHsKICAgICAgICAgIHZhciB0cmVlSWQgPSB0cmVlQ29udGV4dE92ZXJmbG93OwogICAgICAgICAgdmFyIGlkV2l0aExlYWRpbmdCaXQgPSB0cmVlQ29udGV4dElkOwogICAgICAgICAgdHJlZUlkID0gKGlkV2l0aExlYWRpbmdCaXQgJiB+KDEgPDwgMzIgLSBjbHozMihpZFdpdGhMZWFkaW5nQml0KSAtIDEpKS50b1N0cmluZygzMikgKyB0cmVlSWQ7CiAgICAgICAgICBpZGVudGlmaWVyUHJlZml4ID0gIl8iICsgaWRlbnRpZmllclByZWZpeCArICJSXyIgKyB0cmVlSWQ7CiAgICAgICAgICB0cmVlSWQgPSBsb2NhbElkQ291bnRlcisrOwogICAgICAgICAgMCA8IHRyZWVJZCAmJiAoaWRlbnRpZmllclByZWZpeCArPSAiSCIgKyB0cmVlSWQudG9TdHJpbmcoMzIpKTsKICAgICAgICAgIGlkZW50aWZpZXJQcmVmaXggKz0gIl8iOwogICAgICAgIH0gZWxzZQogICAgICAgICAgdHJlZUlkID0gZ2xvYmFsQ2xpZW50SWRDb3VudGVyKyssIGlkZW50aWZpZXJQcmVmaXggPSAiXyIgKyBpZGVudGlmaWVyUHJlZml4ICsgInJfIiArIHRyZWVJZC50b1N0cmluZygzMikgKyAiXyI7CiAgICAgICAgcmV0dXJuIGhvb2subWVtb2l6ZWRTdGF0ZSA9IGlkZW50aWZpZXJQcmVmaXg7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW91bnRSZWZyZXNoKCkgewogICAgICAgIHJldHVybiBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGUgPSByZWZyZXNoQ2FjaGUuYmluZCgKICAgICAgICAgIG51bGwsCiAgICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcgogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVmcmVzaENhY2hlKGZpYmVyLCBzZWVkS2V5KSB7CiAgICAgICAgZm9yICh2YXIgcHJvdmlkZXIgPSBmaWJlci5yZXR1cm47IG51bGwgIT09IHByb3ZpZGVyOyApIHsKICAgICAgICAgIHN3aXRjaCAocHJvdmlkZXIudGFnKSB7CiAgICAgICAgICAgIGNhc2UgMjQ6CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKHByb3ZpZGVyKSwgcmVmcmVzaFVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShsYW5lKSwgcm9vdDIgPSBlbnF1ZXVlVXBkYXRlKHByb3ZpZGVyLCByZWZyZXNoVXBkYXRlLCBsYW5lKTsKICAgICAgICAgICAgICBudWxsICE9PSByb290MiAmJiAoc3RhcnRVcGRhdGVUaW1lckJ5TGFuZShsYW5lLCAicmVmcmVzaCgpIiwgZmliZXIpLCBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocm9vdDIsIHByb3ZpZGVyLCBsYW5lKSwgZW50YW5nbGVUcmFuc2l0aW9ucyhyb290MiwgcHJvdmlkZXIsIGxhbmUpKTsKICAgICAgICAgICAgICBmaWJlciA9IGNyZWF0ZUNhY2hlKCk7CiAgICAgICAgICAgICAgbnVsbCAhPT0gc2VlZEtleSAmJiB2b2lkIDAgIT09IHNlZWRLZXkgJiYgbnVsbCAhPT0gcm9vdDIgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICJUaGUgc2VlZCBhcmd1bWVudCBpcyBub3QgZW5hYmxlZCBvdXRzaWRlIGV4cGVyaW1lbnRhbCBjaGFubmVscy4iCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICByZWZyZXNoVXBkYXRlLnBheWxvYWQgPSB7IGNhY2hlOiBmaWJlciB9OwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIHByb3ZpZGVyID0gcHJvdmlkZXIucmV0dXJuOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBkaXNwYXRjaFJlZHVjZXJBY3Rpb24oZmliZXIsIHF1ZXVlLCBhY3Rpb24pIHsKICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50czsKICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgYXJnc1szXSAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIlN0YXRlIHVwZGF0ZXMgZnJvbSB0aGUgdXNlU3RhdGUoKSBhbmQgdXNlUmVkdWNlcigpIEhvb2tzIGRvbid0IHN1cHBvcnQgdGhlIHNlY29uZCBjYWxsYmFjayBhcmd1bWVudC4gVG8gZXhlY3V0ZSBhIHNpZGUgZWZmZWN0IGFmdGVyIHJlbmRlcmluZywgZGVjbGFyZSBpdCBpbiB0aGUgY29tcG9uZW50IGJvZHkgd2l0aCB1c2VFZmZlY3QoKS4iCiAgICAgICAgKTsKICAgICAgICBhcmdzID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpOwogICAgICAgIHZhciB1cGRhdGUgPSB7CiAgICAgICAgICBsYW5lOiBhcmdzLAogICAgICAgICAgcmV2ZXJ0TGFuZTogMCwKICAgICAgICAgIGdlc3R1cmU6IG51bGwsCiAgICAgICAgICBhY3Rpb24sCiAgICAgICAgICBoYXNFYWdlclN0YXRlOiBmYWxzZSwKICAgICAgICAgIGVhZ2VyU3RhdGU6IG51bGwsCiAgICAgICAgICBuZXh0OiBudWxsCiAgICAgICAgfTsKICAgICAgICBpc1JlbmRlclBoYXNlVXBkYXRlKGZpYmVyKSA/IGVucXVldWVSZW5kZXJQaGFzZVVwZGF0ZShxdWV1ZSwgdXBkYXRlKSA6ICh1cGRhdGUgPSBlbnF1ZXVlQ29uY3VycmVudEhvb2tVcGRhdGUoZmliZXIsIHF1ZXVlLCB1cGRhdGUsIGFyZ3MpLCBudWxsICE9PSB1cGRhdGUgJiYgKHN0YXJ0VXBkYXRlVGltZXJCeUxhbmUoYXJncywgImRpc3BhdGNoKCkiLCBmaWJlciksIHNjaGVkdWxlVXBkYXRlT25GaWJlcih1cGRhdGUsIGZpYmVyLCBhcmdzKSwgZW50YW5nbGVUcmFuc2l0aW9uVXBkYXRlKHVwZGF0ZSwgcXVldWUsIGFyZ3MpKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGlzcGF0Y2hTZXRTdGF0ZShmaWJlciwgcXVldWUsIGFjdGlvbikgewogICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzOwogICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBhcmdzWzNdICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiU3RhdGUgdXBkYXRlcyBmcm9tIHRoZSB1c2VTdGF0ZSgpIGFuZCB1c2VSZWR1Y2VyKCkgSG9va3MgZG9uJ3Qgc3VwcG9ydCB0aGUgc2Vjb25kIGNhbGxiYWNrIGFyZ3VtZW50LiBUbyBleGVjdXRlIGEgc2lkZSBlZmZlY3QgYWZ0ZXIgcmVuZGVyaW5nLCBkZWNsYXJlIGl0IGluIHRoZSBjb21wb25lbnQgYm9keSB3aXRoIHVzZUVmZmVjdCgpLiIKICAgICAgICApOwogICAgICAgIGFyZ3MgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7CiAgICAgICAgZGlzcGF0Y2hTZXRTdGF0ZUludGVybmFsKGZpYmVyLCBxdWV1ZSwgYWN0aW9uLCBhcmdzKSAmJiBzdGFydFVwZGF0ZVRpbWVyQnlMYW5lKGFyZ3MsICJzZXRTdGF0ZSgpIiwgZmliZXIpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRpc3BhdGNoU2V0U3RhdGVJbnRlcm5hbChmaWJlciwgcXVldWUsIGFjdGlvbiwgbGFuZSkgewogICAgICAgIHZhciB1cGRhdGUgPSB7CiAgICAgICAgICBsYW5lLAogICAgICAgICAgcmV2ZXJ0TGFuZTogMCwKICAgICAgICAgIGdlc3R1cmU6IG51bGwsCiAgICAgICAgICBhY3Rpb24sCiAgICAgICAgICBoYXNFYWdlclN0YXRlOiBmYWxzZSwKICAgICAgICAgIGVhZ2VyU3RhdGU6IG51bGwsCiAgICAgICAgICBuZXh0OiBudWxsCiAgICAgICAgfTsKICAgICAgICBpZiAoaXNSZW5kZXJQaGFzZVVwZGF0ZShmaWJlcikpIGVucXVldWVSZW5kZXJQaGFzZVVwZGF0ZShxdWV1ZSwgdXBkYXRlKTsKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7CiAgICAgICAgICBpZiAoMCA9PT0gZmliZXIubGFuZXMgJiYgKG51bGwgPT09IGFsdGVybmF0ZSB8fCAwID09PSBhbHRlcm5hdGUubGFuZXMpICYmIChhbHRlcm5hdGUgPSBxdWV1ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyLCBudWxsICE9PSBhbHRlcm5hdGUpKSB7CiAgICAgICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7CiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICB2YXIgY3VycmVudFN0YXRlID0gcXVldWUubGFzdFJlbmRlcmVkU3RhdGUsIGVhZ2VyU3RhdGUgPSBhbHRlcm5hdGUoY3VycmVudFN0YXRlLCBhY3Rpb24pOwogICAgICAgICAgICAgIHVwZGF0ZS5oYXNFYWdlclN0YXRlID0gdHJ1ZTsKICAgICAgICAgICAgICB1cGRhdGUuZWFnZXJTdGF0ZSA9IGVhZ2VyU3RhdGU7CiAgICAgICAgICAgICAgaWYgKG9iamVjdElzKGVhZ2VyU3RhdGUsIGN1cnJlbnRTdGF0ZSkpCiAgICAgICAgICAgICAgICByZXR1cm4gZW5xdWV1ZVVwZGF0ZSQxKGZpYmVyLCBxdWV1ZSwgdXBkYXRlLCAwKSwgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NSb290ICYmIGZpbmlzaFF1ZXVlaW5nQ29uY3VycmVudFVwZGF0ZXMoKSwgZmFsc2U7CiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBhY3Rpb24gPSBlbnF1ZXVlQ29uY3VycmVudEhvb2tVcGRhdGUoZmliZXIsIHF1ZXVlLCB1cGRhdGUsIGxhbmUpOwogICAgICAgICAgaWYgKG51bGwgIT09IGFjdGlvbikKICAgICAgICAgICAgcmV0dXJuIHNjaGVkdWxlVXBkYXRlT25GaWJlcihhY3Rpb24sIGZpYmVyLCBsYW5lKSwgZW50YW5nbGVUcmFuc2l0aW9uVXBkYXRlKGFjdGlvbiwgcXVldWUsIGxhbmUpLCB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGlzcGF0Y2hPcHRpbWlzdGljU2V0U3RhdGUoZmliZXIsIHRocm93SWZEdXJpbmdSZW5kZXIsIHF1ZXVlLCBhY3Rpb24pIHsKICAgICAgICBudWxsID09PSBSZWFjdFNoYXJlZEludGVybmFscy5UICYmIDAgPT09IGN1cnJlbnRFbnRhbmdsZWRMYW5lICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiQW4gb3B0aW1pc3RpYyBzdGF0ZSB1cGRhdGUgb2NjdXJyZWQgb3V0c2lkZSBhIHRyYW5zaXRpb24gb3IgYWN0aW9uLiBUbyBmaXgsIG1vdmUgdGhlIHVwZGF0ZSB0byBhbiBhY3Rpb24sIG9yIHdyYXAgd2l0aCBzdGFydFRyYW5zaXRpb24uIgogICAgICAgICk7CiAgICAgICAgYWN0aW9uID0gewogICAgICAgICAgbGFuZTogMiwKICAgICAgICAgIHJldmVydExhbmU6IHJlcXVlc3RUcmFuc2l0aW9uTGFuZSgpLAogICAgICAgICAgZ2VzdHVyZTogbnVsbCwKICAgICAgICAgIGFjdGlvbiwKICAgICAgICAgIGhhc0VhZ2VyU3RhdGU6IGZhbHNlLAogICAgICAgICAgZWFnZXJTdGF0ZTogbnVsbCwKICAgICAgICAgIG5leHQ6IG51bGwKICAgICAgICB9OwogICAgICAgIGlmIChpc1JlbmRlclBoYXNlVXBkYXRlKGZpYmVyKSkgewogICAgICAgICAgaWYgKHRocm93SWZEdXJpbmdSZW5kZXIpCiAgICAgICAgICAgIHRocm93IEVycm9yKCJDYW5ub3QgdXBkYXRlIG9wdGltaXN0aWMgc3RhdGUgd2hpbGUgcmVuZGVyaW5nLiIpOwogICAgICAgICAgY29uc29sZS5lcnJvcigiQ2Fubm90IGNhbGwgc3RhcnRUcmFuc2l0aW9uIHdoaWxlIHJlbmRlcmluZy4iKTsKICAgICAgICB9IGVsc2UKICAgICAgICAgIHRocm93SWZEdXJpbmdSZW5kZXIgPSBlbnF1ZXVlQ29uY3VycmVudEhvb2tVcGRhdGUoCiAgICAgICAgICAgIGZpYmVyLAogICAgICAgICAgICBxdWV1ZSwKICAgICAgICAgICAgYWN0aW9uLAogICAgICAgICAgICAyCiAgICAgICAgICApLCBudWxsICE9PSB0aHJvd0lmRHVyaW5nUmVuZGVyICYmIChzdGFydFVwZGF0ZVRpbWVyQnlMYW5lKDIsICJzZXRPcHRpbWlzdGljKCkiLCBmaWJlciksIHNjaGVkdWxlVXBkYXRlT25GaWJlcih0aHJvd0lmRHVyaW5nUmVuZGVyLCBmaWJlciwgMikpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzUmVuZGVyUGhhc2VVcGRhdGUoZmliZXIpIHsKICAgICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlOwogICAgICAgIHJldHVybiBmaWJlciA9PT0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIgfHwgbnVsbCAhPT0gYWx0ZXJuYXRlICYmIGFsdGVybmF0ZSA9PT0gY3VycmVudGx5UmVuZGVyaW5nRmliZXI7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZW5xdWV1ZVJlbmRlclBoYXNlVXBkYXRlKHF1ZXVlLCB1cGRhdGUpIHsKICAgICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgPSBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlID0gdHJ1ZTsKICAgICAgICB2YXIgcGVuZGluZyA9IHF1ZXVlLnBlbmRpbmc7CiAgICAgICAgbnVsbCA9PT0gcGVuZGluZyA/IHVwZGF0ZS5uZXh0ID0gdXBkYXRlIDogKHVwZGF0ZS5uZXh0ID0gcGVuZGluZy5uZXh0LCBwZW5kaW5nLm5leHQgPSB1cGRhdGUpOwogICAgICAgIHF1ZXVlLnBlbmRpbmcgPSB1cGRhdGU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZW50YW5nbGVUcmFuc2l0aW9uVXBkYXRlKHJvb3QyLCBxdWV1ZSwgbGFuZSkgewogICAgICAgIGlmICgwICE9PSAobGFuZSAmIDQxOTQwNDgpKSB7CiAgICAgICAgICB2YXIgcXVldWVMYW5lcyA9IHF1ZXVlLmxhbmVzOwogICAgICAgICAgcXVldWVMYW5lcyAmPSByb290Mi5wZW5kaW5nTGFuZXM7CiAgICAgICAgICBsYW5lIHw9IHF1ZXVlTGFuZXM7CiAgICAgICAgICBxdWV1ZS5sYW5lcyA9IGxhbmU7CiAgICAgICAgICBtYXJrUm9vdEVudGFuZ2xlZChyb290MiwgbGFuZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHdhcm5PbkludmFsaWRDYWxsYmFjayhjYWxsYmFjaykgewogICAgICAgIGlmIChudWxsICE9PSBjYWxsYmFjayAmJiAiZnVuY3Rpb24iICE9PSB0eXBlb2YgY2FsbGJhY2spIHsKICAgICAgICAgIHZhciBrZXkgPSBTdHJpbmcoY2FsbGJhY2spOwogICAgICAgICAgZGlkV2Fybk9uSW52YWxpZENhbGxiYWNrLmhhcyhrZXkpIHx8IChkaWRXYXJuT25JbnZhbGlkQ2FsbGJhY2suYWRkKGtleSksIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJFeHBlY3RlZCB0aGUgbGFzdCBvcHRpb25hbCBgY2FsbGJhY2tgIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24uIEluc3RlYWQgcmVjZWl2ZWQ6ICVzLiIsCiAgICAgICAgICAgIGNhbGxiYWNrCiAgICAgICAgICApKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MyLCBjdG9yLCBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsIG5leHRQcm9wcykgewogICAgICAgIHZhciBwcmV2U3RhdGUgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSwgcGFydGlhbFN0YXRlID0gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKTsKICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MyLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7CiAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyh0cnVlKTsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHBhcnRpYWxTdGF0ZSA9IGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMsIHByZXZTdGF0ZSk7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyhmYWxzZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHZvaWQgMCA9PT0gcGFydGlhbFN0YXRlICYmIChjdG9yID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGN0b3IpIHx8ICJDb21wb25lbnQiLCBkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGUuaGFzKGN0b3IpIHx8IChkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGUuYWRkKGN0b3IpLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgIiVzLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpOiBBIHZhbGlkIHN0YXRlIG9iamVjdCAob3IgbnVsbCkgbXVzdCBiZSByZXR1cm5lZC4gWW91IGhhdmUgcmV0dXJuZWQgdW5kZWZpbmVkLiIsCiAgICAgICAgICBjdG9yCiAgICAgICAgKSkpOwogICAgICAgIHByZXZTdGF0ZSA9IG51bGwgPT09IHBhcnRpYWxTdGF0ZSB8fCB2b2lkIDAgPT09IHBhcnRpYWxTdGF0ZSA/IHByZXZTdGF0ZSA6IGFzc2lnbih7fSwgcHJldlN0YXRlLCBwYXJ0aWFsU3RhdGUpOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlID0gcHJldlN0YXRlOwogICAgICAgIDAgPT09IHdvcmtJblByb2dyZXNzMi5sYW5lcyAmJiAod29ya0luUHJvZ3Jlc3MyLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZSA9IHByZXZTdGF0ZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUod29ya0luUHJvZ3Jlc3MyLCBjdG9yLCBvbGRQcm9wcywgbmV3UHJvcHMsIG9sZFN0YXRlLCBuZXdTdGF0ZSwgbmV4dENvbnRleHQpIHsKICAgICAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlOwogICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgaW5zdGFuY2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKSB7CiAgICAgICAgICBvbGRQcm9wcyA9IGluc3RhbmNlLnNob3VsZENvbXBvbmVudFVwZGF0ZSgKICAgICAgICAgICAgbmV3UHJvcHMsCiAgICAgICAgICAgIG5ld1N0YXRlLAogICAgICAgICAgICBuZXh0Q29udGV4dAogICAgICAgICAgKTsKICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzczIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHsKICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHModHJ1ZSk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgb2xkUHJvcHMgPSBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUoCiAgICAgICAgICAgICAgICBuZXdQcm9wcywKICAgICAgICAgICAgICAgIG5ld1N0YXRlLAogICAgICAgICAgICAgICAgbmV4dENvbnRleHQKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgdm9pZCAwID09PSBvbGRQcm9wcyAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiJXMuc2hvdWxkQ29tcG9uZW50VXBkYXRlKCk6IFJldHVybmVkIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIGEgYm9vbGVhbiB2YWx1ZS4gTWFrZSBzdXJlIHRvIHJldHVybiB0cnVlIG9yIGZhbHNlLiIsCiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCAiQ29tcG9uZW50IgogICAgICAgICAgKTsKICAgICAgICAgIHJldHVybiBvbGRQcm9wczsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGN0b3IucHJvdG90eXBlICYmIGN0b3IucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ID8gIXNoYWxsb3dFcXVhbChvbGRQcm9wcywgbmV3UHJvcHMpIHx8ICFzaGFsbG93RXF1YWwob2xkU3RhdGUsIG5ld1N0YXRlKSA6IHRydWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY2FsbENvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMod29ya0luUHJvZ3Jlc3MyLCBpbnN0YW5jZSwgbmV3UHJvcHMsIG5leHRDb250ZXh0KSB7CiAgICAgICAgdmFyIG9sZFN0YXRlID0gaW5zdGFuY2Uuc3RhdGU7CiAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgJiYgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcywgbmV4dENvbnRleHQpOwogICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAmJiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcywgbmV4dENvbnRleHQpOwogICAgICAgIGluc3RhbmNlLnN0YXRlICE9PSBvbGRTdGF0ZSAmJiAod29ya0luUHJvZ3Jlc3MyID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcih3b3JrSW5Qcm9ncmVzczIpIHx8ICJDb21wb25lbnQiLCBkaWRXYXJuQWJvdXRTdGF0ZUFzc2lnbm1lbnRGb3JDb21wb25lbnQuaGFzKHdvcmtJblByb2dyZXNzMikgfHwgKGRpZFdhcm5BYm91dFN0YXRlQXNzaWdubWVudEZvckNvbXBvbmVudC5hZGQod29ya0luUHJvZ3Jlc3MyKSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICIlcy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk6IEFzc2lnbmluZyBkaXJlY3RseSB0byB0aGlzLnN0YXRlIGlzIGRlcHJlY2F0ZWQgKGV4Y2VwdCBpbnNpZGUgYSBjb21wb25lbnQncyBjb25zdHJ1Y3RvcikuIFVzZSBzZXRTdGF0ZSBpbnN0ZWFkLiIsCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIKICAgICAgICApKSwgY2xhc3NDb21wb25lbnRVcGRhdGVyLmVucXVldWVSZXBsYWNlU3RhdGUoCiAgICAgICAgICBpbnN0YW5jZSwKICAgICAgICAgIGluc3RhbmNlLnN0YXRlLAogICAgICAgICAgbnVsbAogICAgICAgICkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc29sdmVDbGFzc0NvbXBvbmVudFByb3BzKENvbXBvbmVudCwgYmFzZVByb3BzKSB7CiAgICAgICAgdmFyIG5ld1Byb3BzID0gYmFzZVByb3BzOwogICAgICAgIGlmICgicmVmIiBpbiBiYXNlUHJvcHMpIHsKICAgICAgICAgIG5ld1Byb3BzID0ge307CiAgICAgICAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBiYXNlUHJvcHMpCiAgICAgICAgICAgICJyZWYiICE9PSBwcm9wTmFtZSAmJiAobmV3UHJvcHNbcHJvcE5hbWVdID0gYmFzZVByb3BzW3Byb3BOYW1lXSk7CiAgICAgICAgfQogICAgICAgIGlmIChDb21wb25lbnQgPSBDb21wb25lbnQuZGVmYXVsdFByb3BzKSB7CiAgICAgICAgICBuZXdQcm9wcyA9PT0gYmFzZVByb3BzICYmIChuZXdQcm9wcyA9IGFzc2lnbih7fSwgbmV3UHJvcHMpKTsKICAgICAgICAgIGZvciAodmFyIF9wcm9wTmFtZSBpbiBDb21wb25lbnQpCiAgICAgICAgICAgIHZvaWQgMCA9PT0gbmV3UHJvcHNbX3Byb3BOYW1lXSAmJiAobmV3UHJvcHNbX3Byb3BOYW1lXSA9IENvbXBvbmVudFtfcHJvcE5hbWVdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ld1Byb3BzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRlZmF1bHRPblVuY2F1Z2h0RXJyb3IoZXJyb3IpIHsKICAgICAgICByZXBvcnRHbG9iYWxFcnJvcihlcnJvcik7CiAgICAgICAgY29uc29sZS53YXJuKAogICAgICAgICAgIiVzXG5cbiVzXG4iLAogICAgICAgICAgY29tcG9uZW50TmFtZSA/ICJBbiBlcnJvciBvY2N1cnJlZCBpbiB0aGUgPCIgKyBjb21wb25lbnROYW1lICsgIj4gY29tcG9uZW50LiIgOiAiQW4gZXJyb3Igb2NjdXJyZWQgaW4gb25lIG9mIHlvdXIgUmVhY3QgY29tcG9uZW50cy4iLAogICAgICAgICAgIkNvbnNpZGVyIGFkZGluZyBhbiBlcnJvciBib3VuZGFyeSB0byB5b3VyIHRyZWUgdG8gY3VzdG9taXplIGVycm9yIGhhbmRsaW5nIGJlaGF2aW9yLlxuVmlzaXQgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9lcnJvci1ib3VuZGFyaWVzIHRvIGxlYXJuIG1vcmUgYWJvdXQgZXJyb3IgYm91bmRhcmllcy4iCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZWZhdWx0T25DYXVnaHRFcnJvcihlcnJvcikgewogICAgICAgIHZhciBjb21wb25lbnROYW1lTWVzc2FnZSA9IGNvbXBvbmVudE5hbWUgPyAiVGhlIGFib3ZlIGVycm9yIG9jY3VycmVkIGluIHRoZSA8IiArIGNvbXBvbmVudE5hbWUgKyAiPiBjb21wb25lbnQuIiA6ICJUaGUgYWJvdmUgZXJyb3Igb2NjdXJyZWQgaW4gb25lIG9mIHlvdXIgUmVhY3QgY29tcG9uZW50cy4iLCByZWNyZWF0ZU1lc3NhZ2UgPSAiUmVhY3Qgd2lsbCB0cnkgdG8gcmVjcmVhdGUgdGhpcyBjb21wb25lbnQgdHJlZSBmcm9tIHNjcmF0Y2ggdXNpbmcgdGhlIGVycm9yIGJvdW5kYXJ5IHlvdSBwcm92aWRlZCwgIiArICgoZXJyb3JCb3VuZGFyeU5hbWUgfHwgIkFub255bW91cyIpICsgIi4iKTsKICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiBlcnJvciAmJiBudWxsICE9PSBlcnJvciAmJiAic3RyaW5nIiA9PT0gdHlwZW9mIGVycm9yLmVudmlyb25tZW50TmFtZSkgewogICAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGVycm9yLmVudmlyb25tZW50TmFtZTsKICAgICAgICAgIGVycm9yID0gWwogICAgICAgICAgICAiJW9cblxuJXNcblxuJXNcbiIsCiAgICAgICAgICAgIGVycm9yLAogICAgICAgICAgICBjb21wb25lbnROYW1lTWVzc2FnZSwKICAgICAgICAgICAgcmVjcmVhdGVNZXNzYWdlCiAgICAgICAgICBdLnNsaWNlKDApOwogICAgICAgICAgInN0cmluZyIgPT09IHR5cGVvZiBlcnJvclswXSA/IGVycm9yLnNwbGljZSgKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMSwKICAgICAgICAgICAgYmFkZ2VGb3JtYXQgKyAiICIgKyBlcnJvclswXSwKICAgICAgICAgICAgYmFkZ2VTdHlsZSwKICAgICAgICAgICAgcGFkICsgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ICsgcGFkLAogICAgICAgICAgICByZXNldFN0eWxlCiAgICAgICAgICApIDogZXJyb3Iuc3BsaWNlKAogICAgICAgICAgICAwLAogICAgICAgICAgICAwLAogICAgICAgICAgICBiYWRnZUZvcm1hdCwKICAgICAgICAgICAgYmFkZ2VTdHlsZSwKICAgICAgICAgICAgcGFkICsgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ICsgcGFkLAogICAgICAgICAgICByZXNldFN0eWxlCiAgICAgICAgICApOwogICAgICAgICAgZXJyb3IudW5zaGlmdChjb25zb2xlKTsKICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGJpbmQuYXBwbHkoY29uc29sZS5lcnJvciwgZXJyb3IpOwogICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0KCk7CiAgICAgICAgfSBlbHNlCiAgICAgICAgICBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiJW9cblxuJXNcblxuJXNcbiIsCiAgICAgICAgICAgIGVycm9yLAogICAgICAgICAgICBjb21wb25lbnROYW1lTWVzc2FnZSwKICAgICAgICAgICAgcmVjcmVhdGVNZXNzYWdlCiAgICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRlZmF1bHRPblJlY292ZXJhYmxlRXJyb3IoZXJyb3IpIHsKICAgICAgICByZXBvcnRHbG9iYWxFcnJvcihlcnJvcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbG9nVW5jYXVnaHRFcnJvcihyb290MiwgZXJyb3JJbmZvKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGNvbXBvbmVudE5hbWUgPSBlcnJvckluZm8uc291cmNlID8gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihlcnJvckluZm8uc291cmNlKSA6IG51bGw7CiAgICAgICAgICBlcnJvckJvdW5kYXJ5TmFtZSA9IG51bGw7CiAgICAgICAgICB2YXIgZXJyb3IgPSBlcnJvckluZm8udmFsdWU7CiAgICAgICAgICBpZiAobnVsbCAhPT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUpCiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycy5wdXNoKGVycm9yKTsKICAgICAgICAgIGVsc2UgewogICAgICAgICAgICB2YXIgb25VbmNhdWdodEVycm9yID0gcm9vdDIub25VbmNhdWdodEVycm9yOwogICAgICAgICAgICBvblVuY2F1Z2h0RXJyb3IoZXJyb3IsIHsgY29tcG9uZW50U3RhY2s6IGVycm9ySW5mby5zdGFjayB9KTsKICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoIChlJDUpIHsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHRocm93IGUkNTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBsb2dDYXVnaHRFcnJvcihyb290MiwgYm91bmRhcnksIGVycm9ySW5mbykgewogICAgICAgIHRyeSB7CiAgICAgICAgICBjb21wb25lbnROYW1lID0gZXJyb3JJbmZvLnNvdXJjZSA/IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZXJyb3JJbmZvLnNvdXJjZSkgOiBudWxsOwogICAgICAgICAgZXJyb3JCb3VuZGFyeU5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGJvdW5kYXJ5KTsKICAgICAgICAgIHZhciBvbkNhdWdodEVycm9yID0gcm9vdDIub25DYXVnaHRFcnJvcjsKICAgICAgICAgIG9uQ2F1Z2h0RXJyb3IoZXJyb3JJbmZvLnZhbHVlLCB7CiAgICAgICAgICAgIGNvbXBvbmVudFN0YWNrOiBlcnJvckluZm8uc3RhY2ssCiAgICAgICAgICAgIGVycm9yQm91bmRhcnk6IDEgPT09IGJvdW5kYXJ5LnRhZyA/IGJvdW5kYXJ5LnN0YXRlTm9kZSA6IG51bGwKICAgICAgICAgIH0pOwogICAgICAgIH0gY2F0Y2ggKGUkNikgewogICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgdGhyb3cgZSQ2OwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNyZWF0ZVJvb3RFcnJvclVwZGF0ZShyb290MiwgZXJyb3JJbmZvLCBsYW5lKSB7CiAgICAgICAgbGFuZSA9IGNyZWF0ZVVwZGF0ZShsYW5lKTsKICAgICAgICBsYW5lLnRhZyA9IENhcHR1cmVVcGRhdGU7CiAgICAgICAgbGFuZS5wYXlsb2FkID0geyBlbGVtZW50OiBudWxsIH07CiAgICAgICAgbGFuZS5jYWxsYmFjayA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoZXJyb3JJbmZvLnNvdXJjZSwgbG9nVW5jYXVnaHRFcnJvciwgcm9vdDIsIGVycm9ySW5mbyk7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gbGFuZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjcmVhdGVDbGFzc0Vycm9yVXBkYXRlKGxhbmUpIHsKICAgICAgICBsYW5lID0gY3JlYXRlVXBkYXRlKGxhbmUpOwogICAgICAgIGxhbmUudGFnID0gQ2FwdHVyZVVwZGF0ZTsKICAgICAgICByZXR1cm4gbGFuZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpbml0aWFsaXplQ2xhc3NFcnJvclVwZGF0ZSh1cGRhdGUsIHJvb3QyLCBmaWJlciwgZXJyb3JJbmZvKSB7CiAgICAgICAgdmFyIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvciA9IGZpYmVyLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yOwogICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKSB7CiAgICAgICAgICB2YXIgZXJyb3IgPSBlcnJvckluZm8udmFsdWU7CiAgICAgICAgICB1cGRhdGUucGF5bG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yKTsKICAgICAgICAgIH07CiAgICAgICAgICB1cGRhdGUuY2FsbGJhY2sgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgbWFya0ZhaWxlZEVycm9yQm91bmRhcnlGb3JIb3RSZWxvYWRpbmcoZmliZXIpOwogICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgICBlcnJvckluZm8uc291cmNlLAogICAgICAgICAgICAgIGxvZ0NhdWdodEVycm9yLAogICAgICAgICAgICAgIHJvb3QyLAogICAgICAgICAgICAgIGZpYmVyLAogICAgICAgICAgICAgIGVycm9ySW5mbwogICAgICAgICAgICApOwogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgdmFyIGluc3QgPSBmaWJlci5zdGF0ZU5vZGU7CiAgICAgICAgbnVsbCAhPT0gaW5zdCAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgaW5zdC5jb21wb25lbnREaWRDYXRjaCAmJiAodXBkYXRlLmNhbGxiYWNrID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBtYXJrRmFpbGVkRXJyb3JCb3VuZGFyeUZvckhvdFJlbG9hZGluZyhmaWJlcik7CiAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgZXJyb3JJbmZvLnNvdXJjZSwKICAgICAgICAgICAgbG9nQ2F1Z2h0RXJyb3IsCiAgICAgICAgICAgIHJvb3QyLAogICAgICAgICAgICBmaWJlciwKICAgICAgICAgICAgZXJyb3JJbmZvCiAgICAgICAgICApOwogICAgICAgICAgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvciAmJiAobnVsbCA9PT0gbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgPyBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFt0aGlzXSkgOiBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZC5hZGQodGhpcykpOwogICAgICAgICAgY2FsbENvbXBvbmVudERpZENhdGNoSW5ERVYodGhpcywgZXJyb3JJbmZvKTsKICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgfHwgMCA9PT0gKGZpYmVyLmxhbmVzICYgMikgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIiVzOiBFcnJvciBib3VuZGFyaWVzIHNob3VsZCBpbXBsZW1lbnQgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKCkuIEluIHRoYXQgbWV0aG9kLCByZXR1cm4gYSBzdGF0ZSB1cGRhdGUgdG8gZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlIG9yIGZhbGxiYWNrIFVJLiIsCiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICJVbmtub3duIgogICAgICAgICAgKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBmdW5jdGlvbiB0aHJvd0V4Y2VwdGlvbihyb290MiwgcmV0dXJuRmliZXIsIHNvdXJjZUZpYmVyLCB2YWx1ZSwgcm9vdFJlbmRlckxhbmVzKSB7CiAgICAgICAgc291cmNlRmliZXIuZmxhZ3MgfD0gMzI3Njg7CiAgICAgICAgaXNEZXZUb29sc1ByZXNlbnQgJiYgcmVzdG9yZVBlbmRpbmdVcGRhdGVycyhyb290Miwgcm9vdFJlbmRlckxhbmVzKTsKICAgICAgICBpZiAobnVsbCAhPT0gdmFsdWUgJiYgIm9iamVjdCIgPT09IHR5cGVvZiB2YWx1ZSAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgdmFsdWUudGhlbikgewogICAgICAgICAgcmV0dXJuRmliZXIgPSBzb3VyY2VGaWJlci5hbHRlcm5hdGU7CiAgICAgICAgICBudWxsICE9PSByZXR1cm5GaWJlciAmJiBwcm9wYWdhdGVQYXJlbnRDb250ZXh0Q2hhbmdlcygKICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgIHNvdXJjZUZpYmVyLAogICAgICAgICAgICByb290UmVuZGVyTGFuZXMsCiAgICAgICAgICAgIHRydWUKICAgICAgICAgICk7CiAgICAgICAgICBpc0h5ZHJhdGluZyAmJiAoZGlkU3VzcGVuZE9yRXJyb3JERVYgPSB0cnVlKTsKICAgICAgICAgIHNvdXJjZUZpYmVyID0gc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudDsKICAgICAgICAgIGlmIChudWxsICE9PSBzb3VyY2VGaWJlcikgewogICAgICAgICAgICBzd2l0Y2ggKHNvdXJjZUZpYmVyLnRhZykgewogICAgICAgICAgICAgIGNhc2UgMzE6CiAgICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICAgIHJldHVybiBudWxsID09PSBzaGVsbEJvdW5kYXJ5ID8gcmVuZGVyRGlkU3VzcGVuZERlbGF5SWZQb3NzaWJsZSgpIDogbnVsbCA9PT0gc291cmNlRmliZXIuYWx0ZXJuYXRlICYmIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RJblByb2dyZXNzICYmICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdFN1c3BlbmRlZCksIHNvdXJjZUZpYmVyLmZsYWdzICY9IC0yNTcsIHNvdXJjZUZpYmVyLmZsYWdzIHw9IDY1NTM2LCBzb3VyY2VGaWJlci5sYW5lcyA9IHJvb3RSZW5kZXJMYW5lcywgdmFsdWUgPT09IG5vb3BTdXNwZW5zZXlDb21taXRUaGVuYWJsZSA/IHNvdXJjZUZpYmVyLmZsYWdzIHw9IDE2Mzg0IDogKHJldHVybkZpYmVyID0gc291cmNlRmliZXIudXBkYXRlUXVldWUsIG51bGwgPT09IHJldHVybkZpYmVyID8gc291cmNlRmliZXIudXBkYXRlUXVldWUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbdmFsdWVdKSA6IHJldHVybkZpYmVyLmFkZCh2YWx1ZSksIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290MiwgdmFsdWUsIHJvb3RSZW5kZXJMYW5lcykpLCBmYWxzZTsKICAgICAgICAgICAgICBjYXNlIDIyOgogICAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZUZpYmVyLmZsYWdzIHw9IDY1NTM2LCB2YWx1ZSA9PT0gbm9vcFN1c3BlbnNleUNvbW1pdFRoZW5hYmxlID8gc291cmNlRmliZXIuZmxhZ3MgfD0gMTYzODQgOiAocmV0dXJuRmliZXIgPSBzb3VyY2VGaWJlci51cGRhdGVRdWV1ZSwgbnVsbCA9PT0gcmV0dXJuRmliZXIgPyAocmV0dXJuRmliZXIgPSB7CiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zOiBudWxsLAogICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZXM6IG51bGwsCiAgICAgICAgICAgICAgICAgIHJldHJ5UXVldWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFt2YWx1ZV0pCiAgICAgICAgICAgICAgICB9LCBzb3VyY2VGaWJlci51cGRhdGVRdWV1ZSA9IHJldHVybkZpYmVyKSA6IChzb3VyY2VGaWJlciA9IHJldHVybkZpYmVyLnJldHJ5UXVldWUsIG51bGwgPT09IHNvdXJjZUZpYmVyID8gcmV0dXJuRmliZXIucmV0cnlRdWV1ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFt2YWx1ZV0pIDogc291cmNlRmliZXIuYWRkKHZhbHVlKSksIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290MiwgdmFsdWUsIHJvb3RSZW5kZXJMYW5lcykpLCBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAiVW5leHBlY3RlZCBTdXNwZW5zZSBoYW5kbGVyIHRhZyAoIiArIHNvdXJjZUZpYmVyLnRhZyArICIpLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICAgIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290MiwgdmFsdWUsIHJvb3RSZW5kZXJMYW5lcyk7CiAgICAgICAgICByZW5kZXJEaWRTdXNwZW5kRGVsYXlJZlBvc3NpYmxlKCk7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGlmIChpc0h5ZHJhdGluZykKICAgICAgICAgIHJldHVybiBkaWRTdXNwZW5kT3JFcnJvckRFViA9IHRydWUsIHJldHVybkZpYmVyID0gc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudCwgbnVsbCAhPT0gcmV0dXJuRmliZXIgPyAoMCA9PT0gKHJldHVybkZpYmVyLmZsYWdzICYgNjU1MzYpICYmIChyZXR1cm5GaWJlci5mbGFncyB8PSAyNTYpLCByZXR1cm5GaWJlci5mbGFncyB8PSA2NTUzNiwgcmV0dXJuRmliZXIubGFuZXMgPSByb290UmVuZGVyTGFuZXMsIHZhbHVlICE9PSBIeWRyYXRpb25NaXNtYXRjaEV4Y2VwdGlvbiAmJiBxdWV1ZUh5ZHJhdGlvbkVycm9yKAogICAgICAgICAgICBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcigKICAgICAgICAgICAgICBFcnJvcigKICAgICAgICAgICAgICAgICJUaGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgaHlkcmF0aW5nIGJ1dCBSZWFjdCB3YXMgYWJsZSB0byByZWNvdmVyIGJ5IGluc3RlYWQgY2xpZW50IHJlbmRlcmluZyBmcm9tIHRoZSBuZWFyZXN0IFN1c3BlbnNlIGJvdW5kYXJ5LiIsCiAgICAgICAgICAgICAgICB7IGNhdXNlOiB2YWx1ZSB9CiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBzb3VyY2VGaWJlcgogICAgICAgICAgICApCiAgICAgICAgICApKSA6ICh2YWx1ZSAhPT0gSHlkcmF0aW9uTWlzbWF0Y2hFeGNlcHRpb24gJiYgcXVldWVIeWRyYXRpb25FcnJvcigKICAgICAgICAgICAgY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIoCiAgICAgICAgICAgICAgRXJyb3IoCiAgICAgICAgICAgICAgICAiVGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGh5ZHJhdGluZyBidXQgUmVhY3Qgd2FzIGFibGUgdG8gcmVjb3ZlciBieSBpbnN0ZWFkIGNsaWVudCByZW5kZXJpbmcgdGhlIGVudGlyZSByb290LiIsCiAgICAgICAgICAgICAgICB7IGNhdXNlOiB2YWx1ZSB9CiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBzb3VyY2VGaWJlcgogICAgICAgICAgICApCiAgICAgICAgICApLCByb290MiA9IHJvb3QyLmN1cnJlbnQuYWx0ZXJuYXRlLCByb290Mi5mbGFncyB8PSA2NTUzNiwgcm9vdFJlbmRlckxhbmVzICY9IC1yb290UmVuZGVyTGFuZXMsIHJvb3QyLmxhbmVzIHw9IHJvb3RSZW5kZXJMYW5lcywgdmFsdWUgPSBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcih2YWx1ZSwgc291cmNlRmliZXIpLCByb290UmVuZGVyTGFuZXMgPSBjcmVhdGVSb290RXJyb3JVcGRhdGUoCiAgICAgICAgICAgIHJvb3QyLnN0YXRlTm9kZSwKICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgIHJvb3RSZW5kZXJMYW5lcwogICAgICAgICAgKSwgZW5xdWV1ZUNhcHR1cmVkVXBkYXRlKHJvb3QyLCByb290UmVuZGVyTGFuZXMpLCB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzICE9PSBSb290U3VzcGVuZGVkV2l0aERlbGF5ICYmICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEVycm9yZWQpKSwgZmFsc2U7CiAgICAgICAgdmFyIGVycm9yID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIoCiAgICAgICAgICBFcnJvcigKICAgICAgICAgICAgIlRoZXJlIHdhcyBhbiBlcnJvciBkdXJpbmcgY29uY3VycmVudCByZW5kZXJpbmcgYnV0IFJlYWN0IHdhcyBhYmxlIHRvIHJlY292ZXIgYnkgaW5zdGVhZCBzeW5jaHJvbm91c2x5IHJlbmRlcmluZyB0aGUgZW50aXJlIHJvb3QuIiwKICAgICAgICAgICAgeyBjYXVzZTogdmFsdWUgfQogICAgICAgICAgKSwKICAgICAgICAgIHNvdXJjZUZpYmVyCiAgICAgICAgKTsKICAgICAgICBudWxsID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzID8gd29ya0luUHJvZ3Jlc3NSb290Q29uY3VycmVudEVycm9ycyA9IFtlcnJvcl0gOiB3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzLnB1c2goZXJyb3IpOwogICAgICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgIT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkgJiYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290RXJyb3JlZCk7CiAgICAgICAgaWYgKG51bGwgPT09IHJldHVybkZpYmVyKSByZXR1cm4gdHJ1ZTsKICAgICAgICB2YWx1ZSA9IGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKHZhbHVlLCBzb3VyY2VGaWJlcik7CiAgICAgICAgc291cmNlRmliZXIgPSByZXR1cm5GaWJlcjsKICAgICAgICBkbyB7CiAgICAgICAgICBzd2l0Y2ggKHNvdXJjZUZpYmVyLnRhZykgewogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZUZpYmVyLmZsYWdzIHw9IDY1NTM2LCByb290MiA9IHJvb3RSZW5kZXJMYW5lcyAmIC1yb290UmVuZGVyTGFuZXMsIHNvdXJjZUZpYmVyLmxhbmVzIHw9IHJvb3QyLCByb290MiA9IGNyZWF0ZVJvb3RFcnJvclVwZGF0ZSgKICAgICAgICAgICAgICAgIHNvdXJjZUZpYmVyLnN0YXRlTm9kZSwKICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgcm9vdDIKICAgICAgICAgICAgICApLCBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUoc291cmNlRmliZXIsIHJvb3QyKSwgZmFsc2U7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICBpZiAocmV0dXJuRmliZXIgPSBzb3VyY2VGaWJlci50eXBlLCBlcnJvciA9IHNvdXJjZUZpYmVyLnN0YXRlTm9kZSwgMCA9PT0gKHNvdXJjZUZpYmVyLmZsYWdzICYgMTI4KSAmJiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHJldHVybkZpYmVyLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciB8fCBudWxsICE9PSBlcnJvciAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgZXJyb3IuY29tcG9uZW50RGlkQ2F0Y2ggJiYgKG51bGwgPT09IGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkIHx8ICFsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZC5oYXMoZXJyb3IpKSkpCiAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlRmliZXIuZmxhZ3MgfD0gNjU1MzYsIHJvb3RSZW5kZXJMYW5lcyAmPSAtcm9vdFJlbmRlckxhbmVzLCBzb3VyY2VGaWJlci5sYW5lcyB8PSByb290UmVuZGVyTGFuZXMsIHJvb3RSZW5kZXJMYW5lcyA9IGNyZWF0ZUNsYXNzRXJyb3JVcGRhdGUocm9vdFJlbmRlckxhbmVzKSwgaW5pdGlhbGl6ZUNsYXNzRXJyb3JVcGRhdGUoCiAgICAgICAgICAgICAgICAgIHJvb3RSZW5kZXJMYW5lcywKICAgICAgICAgICAgICAgICAgcm9vdDIsCiAgICAgICAgICAgICAgICAgIHNvdXJjZUZpYmVyLAogICAgICAgICAgICAgICAgICB2YWx1ZQogICAgICAgICAgICAgICAgKSwgZW5xdWV1ZUNhcHR1cmVkVXBkYXRlKHNvdXJjZUZpYmVyLCByb290UmVuZGVyTGFuZXMpLCBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHNvdXJjZUZpYmVyID0gc291cmNlRmliZXIucmV0dXJuOwogICAgICAgIH0gd2hpbGUgKG51bGwgIT09IHNvdXJjZUZpYmVyKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudDIsIHdvcmtJblByb2dyZXNzMiwgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lczIpIHsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIuY2hpbGQgPSBudWxsID09PSBjdXJyZW50MiA/IG1vdW50Q2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MyLCBudWxsLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzMikgOiByZWNvbmNpbGVDaGlsZEZpYmVycygKICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgIGN1cnJlbnQyLmNoaWxkLAogICAgICAgICAgbmV4dENoaWxkcmVuLAogICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVGb3J3YXJkUmVmKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lczIpIHsKICAgICAgICBDb21wb25lbnQgPSBDb21wb25lbnQucmVuZGVyOwogICAgICAgIHZhciByZWYgPSB3b3JrSW5Qcm9ncmVzczIucmVmOwogICAgICAgIGlmICgicmVmIiBpbiBuZXh0UHJvcHMpIHsKICAgICAgICAgIHZhciBwcm9wc1dpdGhvdXRSZWYgPSB7fTsKICAgICAgICAgIGZvciAodmFyIGtleSBpbiBuZXh0UHJvcHMpCiAgICAgICAgICAgICJyZWYiICE9PSBrZXkgJiYgKHByb3BzV2l0aG91dFJlZltrZXldID0gbmV4dFByb3BzW2tleV0pOwogICAgICAgIH0gZWxzZSBwcm9wc1dpdGhvdXRSZWYgPSBuZXh0UHJvcHM7CiAgICAgICAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICBuZXh0UHJvcHMgPSByZW5kZXJXaXRoSG9va3MoCiAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgIENvbXBvbmVudCwKICAgICAgICAgIHByb3BzV2l0aG91dFJlZiwKICAgICAgICAgIHJlZiwKICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICk7CiAgICAgICAga2V5ID0gY2hlY2tEaWRSZW5kZXJJZEhvb2soKTsKICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudDIgJiYgIWRpZFJlY2VpdmVVcGRhdGUpCiAgICAgICAgICByZXR1cm4gYmFpbG91dEhvb2tzKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIHJlbmRlckxhbmVzMiksIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudDIsIHdvcmtJblByb2dyZXNzMiwgcmVuZGVyTGFuZXMyKTsKICAgICAgICBpc0h5ZHJhdGluZyAmJiBrZXkgJiYgcHVzaE1hdGVyaWFsaXplZFRyZWVJZCh3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAxOwogICAgICAgIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMyKTsKICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MyLmNoaWxkOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZGF0ZU1lbW9Db21wb25lbnQoY3VycmVudDIsIHdvcmtJblByb2dyZXNzMiwgQ29tcG9uZW50LCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzMikgewogICAgICAgIGlmIChudWxsID09PSBjdXJyZW50MikgewogICAgICAgICAgdmFyIHR5cGUgPSBDb21wb25lbnQudHlwZTsKICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgdHlwZSAmJiAhc2hvdWxkQ29uc3RydWN0KHR5cGUpICYmIHZvaWQgMCA9PT0gdHlwZS5kZWZhdWx0UHJvcHMgJiYgbnVsbCA9PT0gQ29tcG9uZW50LmNvbXBhcmUpCiAgICAgICAgICAgIHJldHVybiBDb21wb25lbnQgPSByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcodHlwZSksIHdvcmtJblByb2dyZXNzMi50YWcgPSAxNSwgd29ya0luUHJvZ3Jlc3MyLnR5cGUgPSBDb21wb25lbnQsIHZhbGlkYXRlRnVuY3Rpb25Db21wb25lbnRJbkRldih3b3JrSW5Qcm9ncmVzczIsIHR5cGUpLCB1cGRhdGVTaW1wbGVNZW1vQ29tcG9uZW50KAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICBDb21wb25lbnQsCiAgICAgICAgICAgICAgbmV4dFByb3BzLAogICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICApOwogICAgICAgICAgY3VycmVudDIgPSBjcmVhdGVGaWJlckZyb21UeXBlQW5kUHJvcHMoCiAgICAgICAgICAgIENvbXBvbmVudC50eXBlLAogICAgICAgICAgICBudWxsLAogICAgICAgICAgICBuZXh0UHJvcHMsCiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLm1vZGUsCiAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgKTsKICAgICAgICAgIGN1cnJlbnQyLnJlZiA9IHdvcmtJblByb2dyZXNzMi5yZWY7CiAgICAgICAgICBjdXJyZW50Mi5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MyLmNoaWxkID0gY3VycmVudDI7CiAgICAgICAgfQogICAgICAgIHR5cGUgPSBjdXJyZW50Mi5jaGlsZDsKICAgICAgICBpZiAoIWNoZWNrU2NoZWR1bGVkVXBkYXRlT3JDb250ZXh0KGN1cnJlbnQyLCByZW5kZXJMYW5lczIpKSB7CiAgICAgICAgICB2YXIgcHJldlByb3BzID0gdHlwZS5tZW1vaXplZFByb3BzOwogICAgICAgICAgQ29tcG9uZW50ID0gQ29tcG9uZW50LmNvbXBhcmU7CiAgICAgICAgICBDb21wb25lbnQgPSBudWxsICE9PSBDb21wb25lbnQgPyBDb21wb25lbnQgOiBzaGFsbG93RXF1YWw7CiAgICAgICAgICBpZiAoQ29tcG9uZW50KHByZXZQcm9wcywgbmV4dFByb3BzKSAmJiBjdXJyZW50Mi5yZWYgPT09IHdvcmtJblByb2dyZXNzMi5yZWYpCiAgICAgICAgICAgIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDE7CiAgICAgICAgY3VycmVudDIgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyh0eXBlLCBuZXh0UHJvcHMpOwogICAgICAgIGN1cnJlbnQyLnJlZiA9IHdvcmtJblByb2dyZXNzMi5yZWY7CiAgICAgICAgY3VycmVudDIucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MyOwogICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzczIuY2hpbGQgPSBjdXJyZW50MjsKICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVTaW1wbGVNZW1vQ29tcG9uZW50KGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lczIpIHsKICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudDIpIHsKICAgICAgICAgIHZhciBwcmV2UHJvcHMgPSBjdXJyZW50Mi5tZW1vaXplZFByb3BzOwogICAgICAgICAgaWYgKHNoYWxsb3dFcXVhbChwcmV2UHJvcHMsIG5leHRQcm9wcykgJiYgY3VycmVudDIucmVmID09PSB3b3JrSW5Qcm9ncmVzczIucmVmICYmIHdvcmtJblByb2dyZXNzMi50eXBlID09PSBjdXJyZW50Mi50eXBlKQogICAgICAgICAgICBpZiAoZGlkUmVjZWl2ZVVwZGF0ZSA9IGZhbHNlLCB3b3JrSW5Qcm9ncmVzczIucGVuZGluZ1Byb3BzID0gbmV4dFByb3BzID0gcHJldlByb3BzLCBjaGVja1NjaGVkdWxlZFVwZGF0ZU9yQ29udGV4dChjdXJyZW50MiwgcmVuZGVyTGFuZXMyKSkKICAgICAgICAgICAgICAwICE9PSAoY3VycmVudDIuZmxhZ3MgJiAxMzEwNzIpICYmIChkaWRSZWNlaXZlVXBkYXRlID0gdHJ1ZSk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MyLmxhbmVzID0gY3VycmVudDIubGFuZXMsIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudDIsIHdvcmtJblByb2dyZXNzMiwgcmVuZGVyTGFuZXMyKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHVwZGF0ZUZ1bmN0aW9uQ29tcG9uZW50KAogICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICBDb21wb25lbnQsCiAgICAgICAgICBuZXh0UHJvcHMsCiAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZGF0ZU9mZnNjcmVlbkNvbXBvbmVudChjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCByZW5kZXJMYW5lczIsIG5leHRQcm9wcykgewogICAgICAgIHZhciBuZXh0Q2hpbGRyZW4gPSBuZXh0UHJvcHMuY2hpbGRyZW4sIHByZXZTdGF0ZSA9IG51bGwgIT09IGN1cnJlbnQyID8gY3VycmVudDIubWVtb2l6ZWRTdGF0ZSA6IG51bGw7CiAgICAgICAgbnVsbCA9PT0gY3VycmVudDIgJiYgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZSAmJiAod29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZSA9IHsKICAgICAgICAgIF92aXNpYmlsaXR5OiBPZmZzY3JlZW5WaXNpYmxlLAogICAgICAgICAgX3BlbmRpbmdNYXJrZXJzOiBudWxsLAogICAgICAgICAgX3JldHJ5Q2FjaGU6IG51bGwsCiAgICAgICAgICBfdHJhbnNpdGlvbnM6IG51bGwKICAgICAgICB9KTsKICAgICAgICBpZiAoImhpZGRlbiIgPT09IG5leHRQcm9wcy5tb2RlKSB7CiAgICAgICAgICBpZiAoMCAhPT0gKHdvcmtJblByb2dyZXNzMi5mbGFncyAmIDEyOCkpIHsKICAgICAgICAgICAgcHJldlN0YXRlID0gbnVsbCAhPT0gcHJldlN0YXRlID8gcHJldlN0YXRlLmJhc2VMYW5lcyB8IHJlbmRlckxhbmVzMiA6IHJlbmRlckxhbmVzMjsKICAgICAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQyKSB7CiAgICAgICAgICAgICAgbmV4dFByb3BzID0gd29ya0luUHJvZ3Jlc3MyLmNoaWxkID0gY3VycmVudDIuY2hpbGQ7CiAgICAgICAgICAgICAgZm9yIChuZXh0Q2hpbGRyZW4gPSAwOyBudWxsICE9PSBuZXh0UHJvcHM7ICkKICAgICAgICAgICAgICAgIG5leHRDaGlsZHJlbiA9IG5leHRDaGlsZHJlbiB8IG5leHRQcm9wcy5sYW5lcyB8IG5leHRQcm9wcy5jaGlsZExhbmVzLCBuZXh0UHJvcHMgPSBuZXh0UHJvcHMuc2libGluZzsKICAgICAgICAgICAgICBuZXh0UHJvcHMgPSBuZXh0Q2hpbGRyZW4gJiB+cHJldlN0YXRlOwogICAgICAgICAgICB9IGVsc2UgbmV4dFByb3BzID0gMCwgd29ya0luUHJvZ3Jlc3MyLmNoaWxkID0gbnVsbDsKICAgICAgICAgICAgcmV0dXJuIGRlZmVySGlkZGVuT2Zmc2NyZWVuQ29tcG9uZW50KAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICBwcmV2U3RhdGUsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyLAogICAgICAgICAgICAgIG5leHRQcm9wcwogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgaWYgKDAgIT09IChyZW5kZXJMYW5lczIgJiA1MzY4NzA5MTIpKQogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSA9IHsgYmFzZUxhbmVzOiAwLCBjYWNoZVBvb2w6IG51bGwgfSwgbnVsbCAhPT0gY3VycmVudDIgJiYgcHVzaFRyYW5zaXRpb24oCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIG51bGwgIT09IHByZXZTdGF0ZSA/IHByZXZTdGF0ZS5jYWNoZVBvb2wgOiBudWxsCiAgICAgICAgICAgICksIG51bGwgIT09IHByZXZTdGF0ZSA/IHB1c2hIaWRkZW5Db250ZXh0KHdvcmtJblByb2dyZXNzMiwgcHJldlN0YXRlKSA6IHJldXNlSGlkZGVuQ29udGV4dE9uU3RhY2sod29ya0luUHJvZ3Jlc3MyKSwgcHVzaE9mZnNjcmVlblN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gbmV4dFByb3BzID0gd29ya0luUHJvZ3Jlc3MyLmxhbmVzID0gNTM2ODcwOTEyLCBkZWZlckhpZGRlbk9mZnNjcmVlbkNvbXBvbmVudCgKICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgbnVsbCAhPT0gcHJldlN0YXRlID8gcHJldlN0YXRlLmJhc2VMYW5lcyB8IHJlbmRlckxhbmVzMiA6IHJlbmRlckxhbmVzMiwKICAgICAgICAgICAgICByZW5kZXJMYW5lczIsCiAgICAgICAgICAgICAgbmV4dFByb3BzCiAgICAgICAgICAgICk7CiAgICAgICAgfSBlbHNlCiAgICAgICAgICBudWxsICE9PSBwcmV2U3RhdGUgPyAocHVzaFRyYW5zaXRpb24od29ya0luUHJvZ3Jlc3MyLCBwcmV2U3RhdGUuY2FjaGVQb29sKSwgcHVzaEhpZGRlbkNvbnRleHQod29ya0luUHJvZ3Jlc3MyLCBwcmV2U3RhdGUpLCByZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2sod29ya0luUHJvZ3Jlc3MyKSwgd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgPSBudWxsKSA6IChudWxsICE9PSBjdXJyZW50MiAmJiBwdXNoVHJhbnNpdGlvbih3b3JrSW5Qcm9ncmVzczIsIG51bGwpLCByZXVzZUhpZGRlbkNvbnRleHRPblN0YWNrKHdvcmtJblByb2dyZXNzMiksIHJldXNlU3VzcGVuc2VIYW5kbGVyT25TdGFjayh3b3JrSW5Qcm9ncmVzczIpKTsKICAgICAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzMik7CiAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzMi5jaGlsZDsKICAgICAgfQogICAgICBmdW5jdGlvbiBiYWlsb3V0T2Zmc2NyZWVuQ29tcG9uZW50KGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIpIHsKICAgICAgICBudWxsICE9PSBjdXJyZW50MiAmJiAyMiA9PT0gY3VycmVudDIudGFnIHx8IG51bGwgIT09IHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGUgfHwgKHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGUgPSB7CiAgICAgICAgICBfdmlzaWJpbGl0eTogT2Zmc2NyZWVuVmlzaWJsZSwKICAgICAgICAgIF9wZW5kaW5nTWFya2VyczogbnVsbCwKICAgICAgICAgIF9yZXRyeUNhY2hlOiBudWxsLAogICAgICAgICAgX3RyYW5zaXRpb25zOiBudWxsCiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzMi5zaWJsaW5nOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRlZmVySGlkZGVuT2Zmc2NyZWVuQ29tcG9uZW50KGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIG5leHRCYXNlTGFuZXMsIHJlbmRlckxhbmVzMiwgcmVtYWluaW5nQ2hpbGRMYW5lcykgewogICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBwZWVrQ2FjaGVGcm9tUG9vbCgpOwogICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IG51bGwgPT09IEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA/IG51bGwgOiB7CiAgICAgICAgICBwYXJlbnQ6IENhY2hlQ29udGV4dC5fY3VycmVudFZhbHVlLAogICAgICAgICAgcG9vbDogSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0CiAgICAgICAgfTsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSA9IHsKICAgICAgICAgIGJhc2VMYW5lczogbmV4dEJhc2VMYW5lcywKICAgICAgICAgIGNhY2hlUG9vbDogSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0CiAgICAgICAgfTsKICAgICAgICBudWxsICE9PSBjdXJyZW50MiAmJiBwdXNoVHJhbnNpdGlvbih3b3JrSW5Qcm9ncmVzczIsIG51bGwpOwogICAgICAgIHJldXNlSGlkZGVuQ29udGV4dE9uU3RhY2sod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICBwdXNoT2Zmc2NyZWVuU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgbnVsbCAhPT0gY3VycmVudDIgJiYgcHJvcGFnYXRlUGFyZW50Q29udGV4dENoYW5nZXMoY3VycmVudDIsIHdvcmtJblByb2dyZXNzMiwgcmVuZGVyTGFuZXMyLCB0cnVlKTsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIuY2hpbGRMYW5lcyA9IHJlbWFpbmluZ0NoaWxkTGFuZXM7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW91bnRBY3Rpdml0eUNoaWxkcmVuKHdvcmtJblByb2dyZXNzMiwgbmV4dFByb3BzKSB7CiAgICAgICAgdmFyIGhpZGRlblByb3AgPSBuZXh0UHJvcHMuaGlkZGVuOwogICAgICAgIHZvaWQgMCAhPT0gaGlkZGVuUHJvcCAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgYDxBY3Rpdml0eT4gZG9lc24ndCBhY2NlcHQgYSBoaWRkZW4gcHJvcC4gVXNlIG1vZGU9ImhpZGRlbiIgaW5zdGVhZC4KLSA8QWN0aXZpdHkgJXM+CisgPEFjdGl2aXR5ICVzPmAsCiAgICAgICAgICB0cnVlID09PSBoaWRkZW5Qcm9wID8gImhpZGRlbiIgOiBmYWxzZSA9PT0gaGlkZGVuUHJvcCA/ICJoaWRkZW49e2ZhbHNlfSIgOiAiaGlkZGVuPXsuLi59IiwKICAgICAgICAgIGhpZGRlblByb3AgPyAnbW9kZT0iaGlkZGVuIicgOiAnbW9kZT0idmlzaWJsZSInCiAgICAgICAgKTsKICAgICAgICBuZXh0UHJvcHMgPSBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIoCiAgICAgICAgICB7IG1vZGU6IG5leHRQcm9wcy5tb2RlLCBjaGlsZHJlbjogbmV4dFByb3BzLmNoaWxkcmVuIH0sCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIubW9kZQogICAgICAgICk7CiAgICAgICAgbmV4dFByb3BzLnJlZiA9IHdvcmtJblByb2dyZXNzMi5yZWY7CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLmNoaWxkID0gbmV4dFByb3BzOwogICAgICAgIG5leHRQcm9wcy5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgcmV0dXJuIG5leHRQcm9wczsKICAgICAgfQogICAgICBmdW5jdGlvbiByZXRyeUFjdGl2aXR5Q29tcG9uZW50V2l0aG91dEh5ZHJhdGluZyhjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCByZW5kZXJMYW5lczIpIHsKICAgICAgICByZWNvbmNpbGVDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzczIsIGN1cnJlbnQyLmNoaWxkLCBudWxsLCByZW5kZXJMYW5lczIpOwogICAgICAgIGN1cnJlbnQyID0gbW91bnRBY3Rpdml0eUNoaWxkcmVuKAogICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcwogICAgICAgICk7CiAgICAgICAgY3VycmVudDIuZmxhZ3MgfD0gMjsKICAgICAgICBwb3BTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSA9IG51bGw7CiAgICAgICAgcmV0dXJuIGN1cnJlbnQyOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZGF0ZUFjdGl2aXR5Q29tcG9uZW50KGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIHJlbmRlckxhbmVzMikgewogICAgICAgIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzczIucGVuZGluZ1Byb3BzLCBkaWRTdXNwZW5kID0gMCAhPT0gKHdvcmtJblByb2dyZXNzMi5mbGFncyAmIDEyOCk7CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLmZsYWdzICY9IC0xMjk7CiAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQyKSB7CiAgICAgICAgICBpZiAoaXNIeWRyYXRpbmcpIHsKICAgICAgICAgICAgaWYgKCJoaWRkZW4iID09PSBuZXh0UHJvcHMubW9kZSkKICAgICAgICAgICAgICByZXR1cm4gY3VycmVudDIgPSBtb3VudEFjdGl2aXR5Q2hpbGRyZW4od29ya0luUHJvZ3Jlc3MyLCBuZXh0UHJvcHMpLCB3b3JrSW5Qcm9ncmVzczIubGFuZXMgPSA1MzY4NzA5MTIsIGJhaWxvdXRPZmZzY3JlZW5Db21wb25lbnQobnVsbCwgY3VycmVudDIpOwogICAgICAgICAgICBwdXNoRGVoeWRyYXRlZEFjdGl2aXR5U3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgIChjdXJyZW50MiA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2UpID8gKHJlbmRlckxhbmVzMiA9IGNhbkh5ZHJhdGVIeWRyYXRpb25Cb3VuZGFyeSgKICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICByb290T3JTaW5nbGV0b25Db250ZXh0CiAgICAgICAgICAgICksIHJlbmRlckxhbmVzMiA9IG51bGwgIT09IHJlbmRlckxhbmVzMiAmJiByZW5kZXJMYW5lczIuZGF0YSA9PT0gQUNUSVZJVFlfU1RBUlRfREFUQSA/IHJlbmRlckxhbmVzMiA6IG51bGwsIG51bGwgIT09IHJlbmRlckxhbmVzMiAmJiAobmV4dFByb3BzID0gewogICAgICAgICAgICAgIGRlaHlkcmF0ZWQ6IHJlbmRlckxhbmVzMiwKICAgICAgICAgICAgICB0cmVlQ29udGV4dDogZ2V0U3VzcGVuZGVkVHJlZUNvbnRleHQoKSwKICAgICAgICAgICAgICByZXRyeUxhbmU6IDUzNjg3MDkxMiwKICAgICAgICAgICAgICBoeWRyYXRpb25FcnJvcnM6IG51bGwKICAgICAgICAgICAgfSwgd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgPSBuZXh0UHJvcHMsIG5leHRQcm9wcyA9IGNyZWF0ZUZpYmVyRnJvbURlaHlkcmF0ZWRGcmFnbWVudChyZW5kZXJMYW5lczIpLCBuZXh0UHJvcHMucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MyLCB3b3JrSW5Qcm9ncmVzczIuY2hpbGQgPSBuZXh0UHJvcHMsIGh5ZHJhdGlvblBhcmVudEZpYmVyID0gd29ya0luUHJvZ3Jlc3MyLCBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gbnVsbCkpIDogcmVuZGVyTGFuZXMyID0gbnVsbDsKICAgICAgICAgICAgaWYgKG51bGwgPT09IHJlbmRlckxhbmVzMikKICAgICAgICAgICAgICB0aHJvdyB3YXJuTm9uSHlkcmF0ZWRJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzczIsIGN1cnJlbnQyKSwgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5sYW5lcyA9IDUzNjg3MDkxMjsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gbW91bnRBY3Rpdml0eUNoaWxkcmVuKHdvcmtJblByb2dyZXNzMiwgbmV4dFByb3BzKTsKICAgICAgICB9CiAgICAgICAgdmFyIHByZXZTdGF0ZSA9IGN1cnJlbnQyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgaWYgKG51bGwgIT09IHByZXZTdGF0ZSkgewogICAgICAgICAgdmFyIGFjdGl2aXR5SW5zdGFuY2UgPSBwcmV2U3RhdGUuZGVoeWRyYXRlZDsKICAgICAgICAgIHB1c2hEZWh5ZHJhdGVkQWN0aXZpdHlTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgIGlmIChkaWRTdXNwZW5kKQogICAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgMjU2KQogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5mbGFncyAmPSAtMjU3LCB3b3JrSW5Qcm9ncmVzczIgPSByZXRyeUFjdGl2aXR5Q29tcG9uZW50V2l0aG91dEh5ZHJhdGluZygKICAgICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgZWxzZSBpZiAobnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUpCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLmNoaWxkID0gY3VycmVudDIuY2hpbGQsIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAxMjgsIHdvcmtJblByb2dyZXNzMiA9IG51bGw7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICJDbGllbnQgcmVuZGVyaW5nIGFuIEFjdGl2aXR5IHN1c3BlbmRlZCBpdCBhZ2Fpbi4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4iCiAgICAgICAgICAgICAgKTsKICAgICAgICAgIGVsc2UgaWYgKHdhcm5JZkh5ZHJhdGluZygpLCAwICE9PSAocmVuZGVyTGFuZXMyICYgNTM2ODcwOTEyKSAmJiBtYXJrUmVuZGVyRGVyaXZlZENhdXNlKHdvcmtJblByb2dyZXNzMiksIGRpZFJlY2VpdmVVcGRhdGUgfHwgcHJvcGFnYXRlUGFyZW50Q29udGV4dENoYW5nZXMoCiAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgIHJlbmRlckxhbmVzMiwKICAgICAgICAgICAgZmFsc2UKICAgICAgICAgICksIGRpZFN1c3BlbmQgPSAwICE9PSAocmVuZGVyTGFuZXMyICYgY3VycmVudDIuY2hpbGRMYW5lcyksIGRpZFJlY2VpdmVVcGRhdGUgfHwgZGlkU3VzcGVuZCkgewogICAgICAgICAgICBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3Q7CiAgICAgICAgICAgIGlmIChudWxsICE9PSBuZXh0UHJvcHMgJiYgKGFjdGl2aXR5SW5zdGFuY2UgPSBnZXRCdW1wZWRMYW5lRm9ySHlkcmF0aW9uKAogICAgICAgICAgICAgIG5leHRQcm9wcywKICAgICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICAgKSwgMCAhPT0gYWN0aXZpdHlJbnN0YW5jZSAmJiBhY3Rpdml0eUluc3RhbmNlICE9PSBwcmV2U3RhdGUucmV0cnlMYW5lKSkKICAgICAgICAgICAgICB0aHJvdyBwcmV2U3RhdGUucmV0cnlMYW5lID0gYWN0aXZpdHlJbnN0YW5jZSwgZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGN1cnJlbnQyLCBhY3Rpdml0eUluc3RhbmNlKSwgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKG5leHRQcm9wcywgY3VycmVudDIsIGFjdGl2aXR5SW5zdGFuY2UpLCBTZWxlY3RpdmVIeWRyYXRpb25FeGNlcHRpb247CiAgICAgICAgICAgIHJlbmRlckRpZFN1c3BlbmREZWxheUlmUG9zc2libGUoKTsKICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyID0gcmV0cnlBY3Rpdml0eUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICApOwogICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgIGN1cnJlbnQyID0gcHJldlN0YXRlLnRyZWVDb250ZXh0LCBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0TmV4dEh5ZHJhdGFibGUoCiAgICAgICAgICAgICAgYWN0aXZpdHlJbnN0YW5jZS5uZXh0U2libGluZwogICAgICAgICAgICApLCBoeWRyYXRpb25QYXJlbnRGaWJlciA9IHdvcmtJblByb2dyZXNzMiwgaXNIeWRyYXRpbmcgPSB0cnVlLCBoeWRyYXRpb25FcnJvcnMgPSBudWxsLCBkaWRTdXNwZW5kT3JFcnJvckRFViA9IGZhbHNlLCBoeWRyYXRpb25EaWZmUm9vdERFViA9IG51bGwsIHJvb3RPclNpbmdsZXRvbkNvbnRleHQgPSBmYWxzZSwgbnVsbCAhPT0gY3VycmVudDIgJiYgcmVzdG9yZVN1c3BlbmRlZFRyZWVDb250ZXh0KHdvcmtJblByb2dyZXNzMiwgY3VycmVudDIpLCB3b3JrSW5Qcm9ncmVzczIgPSBtb3VudEFjdGl2aXR5Q2hpbGRyZW4od29ya0luUHJvZ3Jlc3MyLCBuZXh0UHJvcHMpLCB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gNDA5NjsKICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgfQogICAgICAgIHByZXZTdGF0ZSA9IGN1cnJlbnQyLmNoaWxkOwogICAgICAgIG5leHRQcm9wcyA9IHsgbW9kZTogbmV4dFByb3BzLm1vZGUsIGNoaWxkcmVuOiBuZXh0UHJvcHMuY2hpbGRyZW4gfTsKICAgICAgICAwICE9PSAocmVuZGVyTGFuZXMyICYgNTM2ODcwOTEyKSAmJiAwICE9PSAocmVuZGVyTGFuZXMyICYgY3VycmVudDIubGFuZXMpICYmIG1hcmtSZW5kZXJEZXJpdmVkQ2F1c2Uod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICBjdXJyZW50MiA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKHByZXZTdGF0ZSwgbmV4dFByb3BzKTsKICAgICAgICBjdXJyZW50Mi5yZWYgPSB3b3JrSW5Qcm9ncmVzczIucmVmOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5jaGlsZCA9IGN1cnJlbnQyOwogICAgICAgIGN1cnJlbnQyLnJldHVybiA9IHdvcmtJblByb2dyZXNzMjsKICAgICAgICByZXR1cm4gY3VycmVudDI7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbWFya1JlZihjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyKSB7CiAgICAgICAgdmFyIHJlZiA9IHdvcmtJblByb2dyZXNzMi5yZWY7CiAgICAgICAgaWYgKG51bGwgPT09IHJlZikKICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQyICYmIG51bGwgIT09IGN1cnJlbnQyLnJlZiAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDQxOTQ4MTYpOwogICAgICAgIGVsc2UgewogICAgICAgICAgaWYgKCJmdW5jdGlvbiIgIT09IHR5cGVvZiByZWYgJiYgIm9iamVjdCIgIT09IHR5cGVvZiByZWYpCiAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICJFeHBlY3RlZCByZWYgdG8gYmUgYSBmdW5jdGlvbiwgYW4gb2JqZWN0IHJldHVybmVkIGJ5IFJlYWN0LmNyZWF0ZVJlZigpLCBvciB1bmRlZmluZWQvbnVsbC4iCiAgICAgICAgICAgICk7CiAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudDIgfHwgY3VycmVudDIucmVmICE9PSByZWYpCiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSA0MTk0ODE2OwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVGdW5jdGlvbkNvbXBvbmVudChjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMyKSB7CiAgICAgICAgaWYgKENvbXBvbmVudC5wcm90b3R5cGUgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIENvbXBvbmVudC5wcm90b3R5cGUucmVuZGVyKSB7CiAgICAgICAgICB2YXIgY29tcG9uZW50TmFtZTIgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCAiVW5rbm93biI7CiAgICAgICAgICBkaWRXYXJuQWJvdXRCYWRDbGFzc1tjb21wb25lbnROYW1lMl0gfHwgKGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJUaGUgPCVzIC8+IGNvbXBvbmVudCBhcHBlYXJzIHRvIGhhdmUgYSByZW5kZXIgbWV0aG9kLCBidXQgZG9lc24ndCBleHRlbmQgUmVhY3QuQ29tcG9uZW50LiBUaGlzIGlzIGxpa2VseSB0byBjYXVzZSBlcnJvcnMuIENoYW5nZSAlcyB0byBleHRlbmQgUmVhY3QuQ29tcG9uZW50IGluc3RlYWQuIiwKICAgICAgICAgICAgY29tcG9uZW50TmFtZTIsCiAgICAgICAgICAgIGNvbXBvbmVudE5hbWUyCiAgICAgICAgICApLCBkaWRXYXJuQWJvdXRCYWRDbGFzc1tjb21wb25lbnROYW1lMl0gPSB0cnVlKTsKICAgICAgICB9CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlICYmIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLnJlY29yZExlZ2FjeUNvbnRleHRXYXJuaW5nKAogICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgbnVsbAogICAgICAgICk7CiAgICAgICAgbnVsbCA9PT0gY3VycmVudDIgJiYgKHZhbGlkYXRlRnVuY3Rpb25Db21wb25lbnRJbkRldih3b3JrSW5Qcm9ncmVzczIsIHdvcmtJblByb2dyZXNzMi50eXBlKSwgQ29tcG9uZW50LmNvbnRleHRUeXBlcyAmJiAoY29tcG9uZW50TmFtZTIgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCAiVW5rbm93biIsIGRpZFdhcm5BYm91dENvbnRleHRUeXBlc1tjb21wb25lbnROYW1lMl0gfHwgKGRpZFdhcm5BYm91dENvbnRleHRUeXBlc1tjb21wb25lbnROYW1lMl0gPSB0cnVlLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgIiVzIHVzZXMgdGhlIGxlZ2FjeSBjb250ZXh0VHlwZXMgQVBJIHdoaWNoIHdhcyByZW1vdmVkIGluIFJlYWN0IDE5LiBVc2UgUmVhY3QuY3JlYXRlQ29udGV4dCgpIHdpdGggUmVhY3QudXNlQ29udGV4dCgpIGluc3RlYWQuIChodHRwczovL3JlYWN0LmRldi9saW5rL2xlZ2FjeS1jb250ZXh0KSIsCiAgICAgICAgICBjb21wb25lbnROYW1lMgogICAgICAgICkpKSk7CiAgICAgICAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICBDb21wb25lbnQgPSByZW5kZXJXaXRoSG9va3MoCiAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgIENvbXBvbmVudCwKICAgICAgICAgIG5leHRQcm9wcywKICAgICAgICAgIHZvaWQgMCwKICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICk7CiAgICAgICAgbmV4dFByb3BzID0gY2hlY2tEaWRSZW5kZXJJZEhvb2soKTsKICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudDIgJiYgIWRpZFJlY2VpdmVVcGRhdGUpCiAgICAgICAgICByZXR1cm4gYmFpbG91dEhvb2tzKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIHJlbmRlckxhbmVzMiksIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudDIsIHdvcmtJblByb2dyZXNzMiwgcmVuZGVyTGFuZXMyKTsKICAgICAgICBpc0h5ZHJhdGluZyAmJiBuZXh0UHJvcHMgJiYgcHVzaE1hdGVyaWFsaXplZFRyZWVJZCh3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAxOwogICAgICAgIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIENvbXBvbmVudCwgcmVuZGVyTGFuZXMyKTsKICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MyLmNoaWxkOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlcGxheUZ1bmN0aW9uQ29tcG9uZW50KGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIG5leHRQcm9wcywgQ29tcG9uZW50LCBzZWNvbmRBcmcsIHJlbmRlckxhbmVzMikgewogICAgICAgIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTsKICAgICAgICBpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcyA9IG51bGwgIT09IGN1cnJlbnQyICYmIGN1cnJlbnQyLnR5cGUgIT09IHdvcmtJblByb2dyZXNzMi50eXBlOwogICAgICAgIHdvcmtJblByb2dyZXNzMi51cGRhdGVRdWV1ZSA9IG51bGw7CiAgICAgICAgbmV4dFByb3BzID0gcmVuZGVyV2l0aEhvb2tzQWdhaW4oCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICBDb21wb25lbnQsCiAgICAgICAgICBuZXh0UHJvcHMsCiAgICAgICAgICBzZWNvbmRBcmcKICAgICAgICApOwogICAgICAgIGZpbmlzaFJlbmRlcmluZ0hvb2tzKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgIENvbXBvbmVudCA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7CiAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQyICYmICFkaWRSZWNlaXZlVXBkYXRlKQogICAgICAgICAgcmV0dXJuIGJhaWxvdXRIb29rcyhjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCByZW5kZXJMYW5lczIpLCBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIHJlbmRlckxhbmVzMik7CiAgICAgICAgaXNIeWRyYXRpbmcgJiYgQ29tcG9uZW50ICYmIHB1c2hNYXRlcmlhbGl6ZWRUcmVlSWQod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMTsKICAgICAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzMik7CiAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzMi5jaGlsZDsKICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVDbGFzc0NvbXBvbmVudChjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMyKSB7CiAgICAgICAgc3dpdGNoIChzaG91bGRFcnJvckltcGwod29ya0luUHJvZ3Jlc3MyKSkgewogICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgdmFyIF9pbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGUsIHN0YXRlID0gbmV3IHdvcmtJblByb2dyZXNzMi50eXBlKAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFByb3BzLAogICAgICAgICAgICAgIF9pbnN0YW5jZS5jb250ZXh0CiAgICAgICAgICAgICkuc3RhdGU7CiAgICAgICAgICAgIF9pbnN0YW5jZS51cGRhdGVyLmVucXVldWVTZXRTdGF0ZShfaW5zdGFuY2UsIHN0YXRlLCBudWxsKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAxMjg7CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSA2NTUzNjsKICAgICAgICAgICAgX2luc3RhbmNlID0gRXJyb3IoIlNpbXVsYXRlZCBlcnJvciBjb21pbmcgZnJvbSBEZXZUb29scyIpOwogICAgICAgICAgICB2YXIgbGFuZSA9IHJlbmRlckxhbmVzMiAmIC1yZW5kZXJMYW5lczI7CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5sYW5lcyB8PSBsYW5lOwogICAgICAgICAgICBzdGF0ZSA9IHdvcmtJblByb2dyZXNzUm9vdDsKICAgICAgICAgICAgaWYgKG51bGwgPT09IHN0YXRlKQogICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgIkV4cGVjdGVkIGEgd29yay1pbi1wcm9ncmVzcyByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgbGFuZSA9IGNyZWF0ZUNsYXNzRXJyb3JVcGRhdGUobGFuZSk7CiAgICAgICAgICAgIGluaXRpYWxpemVDbGFzc0Vycm9yVXBkYXRlKAogICAgICAgICAgICAgIGxhbmUsCiAgICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKF9pbnN0YW5jZSwgd29ya0luUHJvZ3Jlc3MyKQogICAgICAgICAgICApOwogICAgICAgICAgICBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUod29ya0luUHJvZ3Jlc3MyLCBsYW5lKTsKICAgICAgICB9CiAgICAgICAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICBpZiAobnVsbCA9PT0gd29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZSkgewogICAgICAgICAgc3RhdGUgPSBlbXB0eUNvbnRleHRPYmplY3Q7CiAgICAgICAgICBfaW5zdGFuY2UgPSBDb21wb25lbnQuY29udGV4dFR5cGU7CiAgICAgICAgICAiY29udGV4dFR5cGUiIGluIENvbXBvbmVudCAmJiBudWxsICE9PSBfaW5zdGFuY2UgJiYgKHZvaWQgMCA9PT0gX2luc3RhbmNlIHx8IF9pbnN0YW5jZS4kJHR5cGVvZiAhPT0gUkVBQ1RfQ09OVEVYVF9UWVBFKSAmJiAhZGlkV2FybkFib3V0SW52YWxpZGF0ZUNvbnRleHRUeXBlLmhhcyhDb21wb25lbnQpICYmIChkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGUuYWRkKENvbXBvbmVudCksIGxhbmUgPSB2b2lkIDAgPT09IF9pbnN0YW5jZSA/ICIgSG93ZXZlciwgaXQgaXMgc2V0IHRvIHVuZGVmaW5lZC4gVGhpcyBjYW4gYmUgY2F1c2VkIGJ5IGEgdHlwbyBvciBieSBtaXhpbmcgdXAgbmFtZWQgYW5kIGRlZmF1bHQgaW1wb3J0cy4gVGhpcyBjYW4gYWxzbyBoYXBwZW4gZHVlIHRvIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSwgc28gdHJ5IG1vdmluZyB0aGUgY3JlYXRlQ29udGV4dCgpIGNhbGwgdG8gYSBzZXBhcmF0ZSBmaWxlLiIgOiAib2JqZWN0IiAhPT0gdHlwZW9mIF9pbnN0YW5jZSA/ICIgSG93ZXZlciwgaXQgaXMgc2V0IHRvIGEgIiArIHR5cGVvZiBfaW5zdGFuY2UgKyAiLiIgOiBfaW5zdGFuY2UuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlNVTUVSX1RZUEUgPyAiIERpZCB5b3UgYWNjaWRlbnRhbGx5IHBhc3MgdGhlIENvbnRleHQuQ29uc3VtZXIgaW5zdGVhZD8iIDogIiBIb3dldmVyLCBpdCBpcyBzZXQgdG8gYW4gb2JqZWN0IHdpdGgga2V5cyB7IiArIE9iamVjdC5rZXlzKF9pbnN0YW5jZSkuam9pbigiLCAiKSArICJ9LiIsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICIlcyBkZWZpbmVzIGFuIGludmFsaWQgY29udGV4dFR5cGUuIGNvbnRleHRUeXBlIHNob3VsZCBwb2ludCB0byB0aGUgQ29udGV4dCBvYmplY3QgcmV0dXJuZWQgYnkgUmVhY3QuY3JlYXRlQ29udGV4dCgpLiVzIiwKICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkgfHwgIkNvbXBvbmVudCIsCiAgICAgICAgICAgIGxhbmUKICAgICAgICAgICkpOwogICAgICAgICAgIm9iamVjdCIgPT09IHR5cGVvZiBfaW5zdGFuY2UgJiYgbnVsbCAhPT0gX2luc3RhbmNlICYmIChzdGF0ZSA9IHJlYWRDb250ZXh0KF9pbnN0YW5jZSkpOwogICAgICAgICAgX2luc3RhbmNlID0gbmV3IENvbXBvbmVudChuZXh0UHJvcHMsIHN0YXRlKTsKICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzczIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHsKICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHModHJ1ZSk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgX2luc3RhbmNlID0gbmV3IENvbXBvbmVudChuZXh0UHJvcHMsIHN0YXRlKTsKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyhmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlID0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgPSBudWxsICE9PSBfaW5zdGFuY2Uuc3RhdGUgJiYgdm9pZCAwICE9PSBfaW5zdGFuY2Uuc3RhdGUgPyBfaW5zdGFuY2Uuc3RhdGUgOiBudWxsOwogICAgICAgICAgX2luc3RhbmNlLnVwZGF0ZXIgPSBjbGFzc0NvbXBvbmVudFVwZGF0ZXI7CiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlID0gX2luc3RhbmNlOwogICAgICAgICAgX2luc3RhbmNlLl9yZWFjdEludGVybmFscyA9IHdvcmtJblByb2dyZXNzMjsKICAgICAgICAgIF9pbnN0YW5jZS5fcmVhY3RJbnRlcm5hbEluc3RhbmNlID0gZmFrZUludGVybmFsSW5zdGFuY2U7CiAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyAmJiBudWxsID09PSBzdGF0ZSAmJiAoc3RhdGUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCAiQ29tcG9uZW50IiwgZGlkV2FybkFib3V0VW5pbml0aWFsaXplZFN0YXRlLmhhcyhzdGF0ZSkgfHwgKGRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZS5hZGQoc3RhdGUpLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiYCVzYCB1c2VzIGBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNgIGJ1dCBpdHMgaW5pdGlhbCBzdGF0ZSBpcyAlcy4gVGhpcyBpcyBub3QgcmVjb21tZW5kZWQuIEluc3RlYWQsIGRlZmluZSB0aGUgaW5pdGlhbCBzdGF0ZSBieSBhc3NpZ25pbmcgYW4gb2JqZWN0IHRvIGB0aGlzLnN0YXRlYCBpbiB0aGUgY29uc3RydWN0b3Igb2YgYCVzYC4gVGhpcyBlbnN1cmVzIHRoYXQgYGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc2AgYXJndW1lbnRzIGhhdmUgYSBjb25zaXN0ZW50IHNoYXBlLiIsCiAgICAgICAgICAgIHN0YXRlLAogICAgICAgICAgICBudWxsID09PSBfaW5zdGFuY2Uuc3RhdGUgPyAibnVsbCIgOiAidW5kZWZpbmVkIiwKICAgICAgICAgICAgc3RhdGUKICAgICAgICAgICkpKTsKICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyB8fCAiZnVuY3Rpb24iID09PSB0eXBlb2YgX2luc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKSB7CiAgICAgICAgICAgIHZhciBmb3VuZFdpbGxVcGRhdGVOYW1lID0gbGFuZSA9IHN0YXRlID0gbnVsbDsKICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgJiYgdHJ1ZSAhPT0gX2luc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudC5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nID8gc3RhdGUgPSAiY29tcG9uZW50V2lsbE1vdW50IiA6ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCAmJiAoc3RhdGUgPSAiVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCIpOwogICAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgJiYgdHJ1ZSAhPT0gX2luc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyA/IGxhbmUgPSAiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIgOiAiZnVuY3Rpb24iID09PSB0eXBlb2YgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzICYmIChsYW5lID0gIlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIik7CiAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZSAmJiB0cnVlICE9PSBfaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZS5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nID8gZm91bmRXaWxsVXBkYXRlTmFtZSA9ICJjb21wb25lbnRXaWxsVXBkYXRlIiA6ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgJiYgKGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSAiVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUiKTsKICAgICAgICAgICAgaWYgKG51bGwgIT09IHN0YXRlIHx8IG51bGwgIT09IGxhbmUgfHwgbnVsbCAhPT0gZm91bmRXaWxsVXBkYXRlTmFtZSkgewogICAgICAgICAgICAgIF9pbnN0YW5jZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICJDb21wb25lbnQiOwogICAgICAgICAgICAgIHZhciBuZXdBcGlOYW1lID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPyAiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKCkiIDogImdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkiOwogICAgICAgICAgICAgIGRpZFdhcm5BYm91dExlZ2FjeUxpZmVjeWNsZXNBbmREZXJpdmVkU3RhdGUuaGFzKF9pbnN0YW5jZSkgfHwgKGRpZFdhcm5BYm91dExlZ2FjeUxpZmVjeWNsZXNBbmREZXJpdmVkU3RhdGUuYWRkKF9pbnN0YW5jZSksIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAiVW5zYWZlIGxlZ2FjeSBsaWZlY3ljbGVzIHdpbGwgbm90IGJlIGNhbGxlZCBmb3IgY29tcG9uZW50cyB1c2luZyBuZXcgY29tcG9uZW50IEFQSXMuXG5cbiVzIHVzZXMgJXMgYnV0IGFsc28gY29udGFpbnMgdGhlIGZvbGxvd2luZyBsZWdhY3kgbGlmZWN5Y2xlczolcyVzJXNcblxuVGhlIGFib3ZlIGxpZmVjeWNsZXMgc2hvdWxkIGJlIHJlbW92ZWQuIExlYXJuIG1vcmUgYWJvdXQgdGhpcyB3YXJuaW5nIGhlcmU6XG5odHRwczovL3JlYWN0LmRldi9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyIsCiAgICAgICAgICAgICAgICBfaW5zdGFuY2UsCiAgICAgICAgICAgICAgICBuZXdBcGlOYW1lLAogICAgICAgICAgICAgICAgbnVsbCAhPT0gc3RhdGUgPyAiXG4gICIgKyBzdGF0ZSA6ICIiLAogICAgICAgICAgICAgICAgbnVsbCAhPT0gbGFuZSA/ICJcbiAgIiArIGxhbmUgOiAiIiwKICAgICAgICAgICAgICAgIG51bGwgIT09IGZvdW5kV2lsbFVwZGF0ZU5hbWUgPyAiXG4gICIgKyBmb3VuZFdpbGxVcGRhdGVOYW1lIDogIiIKICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgX2luc3RhbmNlID0gd29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZTsKICAgICAgICAgIHN0YXRlID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkgfHwgIkNvbXBvbmVudCI7CiAgICAgICAgICBfaW5zdGFuY2UucmVuZGVyIHx8IChDb21wb25lbnQucHJvdG90eXBlICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBDb21wb25lbnQucHJvdG90eXBlLnJlbmRlciA/IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJObyBgcmVuZGVyYCBtZXRob2QgZm91bmQgb24gdGhlICVzIGluc3RhbmNlOiBkaWQgeW91IGFjY2lkZW50YWxseSByZXR1cm4gYW4gb2JqZWN0IGZyb20gdGhlIGNvbnN0cnVjdG9yPyIsCiAgICAgICAgICAgIHN0YXRlCiAgICAgICAgICApIDogY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIk5vIGByZW5kZXJgIG1ldGhvZCBmb3VuZCBvbiB0aGUgJXMgaW5zdGFuY2U6IHlvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gZGVmaW5lIGByZW5kZXJgLiIsCiAgICAgICAgICAgIHN0YXRlCiAgICAgICAgICApKTsKICAgICAgICAgICFfaW5zdGFuY2UuZ2V0SW5pdGlhbFN0YXRlIHx8IF9pbnN0YW5jZS5nZXRJbml0aWFsU3RhdGUuaXNSZWFjdENsYXNzQXBwcm92ZWQgfHwgX2luc3RhbmNlLnN0YXRlIHx8IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJnZXRJbml0aWFsU3RhdGUgd2FzIGRlZmluZWQgb24gJXMsIGEgcGxhaW4gSmF2YVNjcmlwdCBjbGFzcy4gVGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgY2xhc3NlcyBjcmVhdGVkIHVzaW5nIFJlYWN0LmNyZWF0ZUNsYXNzLiBEaWQgeW91IG1lYW4gdG8gZGVmaW5lIGEgc3RhdGUgcHJvcGVydHkgaW5zdGVhZD8iLAogICAgICAgICAgICBzdGF0ZQogICAgICAgICAgKTsKICAgICAgICAgIF9pbnN0YW5jZS5nZXREZWZhdWx0UHJvcHMgJiYgIV9pbnN0YW5jZS5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgImdldERlZmF1bHRQcm9wcyB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiBUaGlzIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBjbGFzc2VzIGNyZWF0ZWQgdXNpbmcgUmVhY3QuY3JlYXRlQ2xhc3MuIFVzZSBhIHN0YXRpYyBwcm9wZXJ0eSB0byBkZWZpbmUgZGVmYXVsdFByb3BzIGluc3RlYWQuIiwKICAgICAgICAgICAgc3RhdGUKICAgICAgICAgICk7CiAgICAgICAgICBfaW5zdGFuY2UuY29udGV4dFR5cGUgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgImNvbnRleHRUeXBlIHdhcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIHByb3BlcnR5IG9uICVzLiBVc2UgYSBzdGF0aWMgcHJvcGVydHkgdG8gZGVmaW5lIGNvbnRleHRUeXBlIGluc3RlYWQuIiwKICAgICAgICAgICAgc3RhdGUKICAgICAgICAgICk7CiAgICAgICAgICBDb21wb25lbnQuY2hpbGRDb250ZXh0VHlwZXMgJiYgIWRpZFdhcm5BYm91dENoaWxkQ29udGV4dFR5cGVzLmhhcyhDb21wb25lbnQpICYmIChkaWRXYXJuQWJvdXRDaGlsZENvbnRleHRUeXBlcy5hZGQoQ29tcG9uZW50KSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIiVzIHVzZXMgdGhlIGxlZ2FjeSBjaGlsZENvbnRleHRUeXBlcyBBUEkgd2hpY2ggd2FzIHJlbW92ZWQgaW4gUmVhY3QgMTkuIFVzZSBSZWFjdC5jcmVhdGVDb250ZXh0KCkgaW5zdGVhZC4gKGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvbGVnYWN5LWNvbnRleHQpIiwKICAgICAgICAgICAgc3RhdGUKICAgICAgICAgICkpOwogICAgICAgICAgQ29tcG9uZW50LmNvbnRleHRUeXBlcyAmJiAhZGlkV2FybkFib3V0Q29udGV4dFR5cGVzJDEuaGFzKENvbXBvbmVudCkgJiYgKGRpZFdhcm5BYm91dENvbnRleHRUeXBlcyQxLmFkZChDb21wb25lbnQpLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiJXMgdXNlcyB0aGUgbGVnYWN5IGNvbnRleHRUeXBlcyBBUEkgd2hpY2ggd2FzIHJlbW92ZWQgaW4gUmVhY3QgMTkuIFVzZSBSZWFjdC5jcmVhdGVDb250ZXh0KCkgd2l0aCBzdGF0aWMgY29udGV4dFR5cGUgaW5zdGVhZC4gKGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvbGVnYWN5LWNvbnRleHQpIiwKICAgICAgICAgICAgc3RhdGUKICAgICAgICAgICkpOwogICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnRTaG91bGRVcGRhdGUgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIiVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgY29tcG9uZW50U2hvdWxkVXBkYXRlKCkuIERpZCB5b3UgbWVhbiBzaG91bGRDb21wb25lbnRVcGRhdGUoKT8gVGhlIG5hbWUgaXMgcGhyYXNlZCBhcyBhIHF1ZXN0aW9uIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJldHVybiBhIHZhbHVlLiIsCiAgICAgICAgICAgIHN0YXRlCiAgICAgICAgICApOwogICAgICAgICAgQ29tcG9uZW50LnByb3RvdHlwZSAmJiBDb21wb25lbnQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ICYmICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgX2luc3RhbmNlLnNob3VsZENvbXBvbmVudFVwZGF0ZSAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCBzaG91bGRDb21wb25lbnRVcGRhdGUoKS4gc2hvdWxkQ29tcG9uZW50VXBkYXRlIHNob3VsZCBub3QgYmUgdXNlZCB3aGVuIGV4dGVuZGluZyBSZWFjdC5QdXJlQ29tcG9uZW50LiBQbGVhc2UgZXh0ZW5kIFJlYWN0LkNvbXBvbmVudCBpZiBzaG91bGRDb21wb25lbnRVcGRhdGUgaXMgdXNlZC4iLAogICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCAiQSBwdXJlIGNvbXBvbmVudCIKICAgICAgICAgICk7CiAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudERpZFVubW91bnQgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIiVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgY29tcG9uZW50RGlkVW5tb3VudCgpLiBCdXQgdGhlcmUgaXMgbm8gc3VjaCBsaWZlY3ljbGUgbWV0aG9kLiBEaWQgeW91IG1lYW4gY29tcG9uZW50V2lsbFVubW91bnQoKT8iLAogICAgICAgICAgICBzdGF0ZQogICAgICAgICAgKTsKICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50RGlkUmVjZWl2ZVByb3BzICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICIlcyBoYXMgYSBtZXRob2QgY2FsbGVkIGNvbXBvbmVudERpZFJlY2VpdmVQcm9wcygpLiBCdXQgdGhlcmUgaXMgbm8gc3VjaCBsaWZlY3ljbGUgbWV0aG9kLiBJZiB5b3UgbWVhbnQgdG8gdXBkYXRlIHRoZSBzdGF0ZSBpbiByZXNwb25zZSB0byBjaGFuZ2luZyBwcm9wcywgdXNlIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKS4gSWYgeW91IG1lYW50IHRvIGZldGNoIGRhdGEgb3IgcnVuIHNpZGUtZWZmZWN0cyBvciBtdXRhdGlvbnMgYWZ0ZXIgUmVhY3QgaGFzIHVwZGF0ZWQgdGhlIFVJLCB1c2UgY29tcG9uZW50RGlkVXBkYXRlKCkuIiwKICAgICAgICAgICAgc3RhdGUKICAgICAgICAgICk7CiAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIiVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcygpLiBEaWQgeW91IG1lYW4gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcygpPyIsCiAgICAgICAgICAgIHN0YXRlCiAgICAgICAgICApOwogICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcyAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcygpLiBEaWQgeW91IG1lYW4gVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKT8iLAogICAgICAgICAgICBzdGF0ZQogICAgICAgICAgKTsKICAgICAgICAgIGxhbmUgPSBfaW5zdGFuY2UucHJvcHMgIT09IG5leHRQcm9wczsKICAgICAgICAgIHZvaWQgMCAhPT0gX2luc3RhbmNlLnByb3BzICYmIGxhbmUgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIldoZW4gY2FsbGluZyBzdXBlcigpIGluIGAlc2AsIG1ha2Ugc3VyZSB0byBwYXNzIHVwIHRoZSBzYW1lIHByb3BzIHRoYXQgeW91ciBjb21wb25lbnQncyBjb25zdHJ1Y3RvciB3YXMgcGFzc2VkLiIsCiAgICAgICAgICAgIHN0YXRlCiAgICAgICAgICApOwogICAgICAgICAgX2luc3RhbmNlLmRlZmF1bHRQcm9wcyAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiU2V0dGluZyBkZWZhdWx0UHJvcHMgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMgaXMgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBiZSBpZ25vcmVkLiBJbnN0ZWFkLCBkZWZpbmUgZGVmYXVsdFByb3BzIGFzIGEgc3RhdGljIHByb3BlcnR5IG9uICVzLiIsCiAgICAgICAgICAgIHN0YXRlLAogICAgICAgICAgICBzdGF0ZQogICAgICAgICAgKTsKICAgICAgICAgICJmdW5jdGlvbiIgIT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgfHwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUgfHwgZGlkV2FybkFib3V0R2V0U25hcHNob3RCZWZvcmVVcGRhdGVXaXRob3V0RGlkVXBkYXRlLmhhcyhDb21wb25lbnQpIHx8IChkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUuYWRkKENvbXBvbmVudCksIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICIlczogZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBzaG91bGQgYmUgdXNlZCB3aXRoIGNvbXBvbmVudERpZFVwZGF0ZSgpLiBUaGlzIGNvbXBvbmVudCBkZWZpbmVzIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgb25seS4iLAogICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KQogICAgICAgICAgKSk7CiAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgX2luc3RhbmNlLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiJXM6IGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpIGlzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kIGFuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlY2xhcmUgaXQgYXMgYSBzdGF0aWMgbWV0aG9kLiIsCiAgICAgICAgICAgIHN0YXRlCiAgICAgICAgICApOwogICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIiVzOiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoKSBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCBhbmQgd2lsbCBiZSBpZ25vcmVkLiBJbnN0ZWFkLCBkZWNsYXJlIGl0IGFzIGEgc3RhdGljIG1ldGhvZC4iLAogICAgICAgICAgICBzdGF0ZQogICAgICAgICAgKTsKICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBDb21wb25lbnQuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIiVzOiBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpIGlzIGRlZmluZWQgYXMgYSBzdGF0aWMgbWV0aG9kIGFuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlY2xhcmUgaXQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kLiIsCiAgICAgICAgICAgIHN0YXRlCiAgICAgICAgICApOwogICAgICAgICAgKGxhbmUgPSBfaW5zdGFuY2Uuc3RhdGUpICYmICgib2JqZWN0IiAhPT0gdHlwZW9mIGxhbmUgfHwgaXNBcnJheUltcGwobGFuZSkpICYmIGNvbnNvbGUuZXJyb3IoIiVzLnN0YXRlOiBtdXN0IGJlIHNldCB0byBhbiBvYmplY3Qgb3IgbnVsbCIsIHN0YXRlKTsKICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0Q2hpbGRDb250ZXh0ICYmICJvYmplY3QiICE9PSB0eXBlb2YgQ29tcG9uZW50LmNoaWxkQ29udGV4dFR5cGVzICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICIlcy5nZXRDaGlsZENvbnRleHQoKTogY2hpbGRDb250ZXh0VHlwZXMgbXVzdCBiZSBkZWZpbmVkIGluIG9yZGVyIHRvIHVzZSBnZXRDaGlsZENvbnRleHQoKS4iLAogICAgICAgICAgICBzdGF0ZQogICAgICAgICAgKTsKICAgICAgICAgIF9pbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGU7CiAgICAgICAgICBfaW5zdGFuY2UucHJvcHMgPSBuZXh0UHJvcHM7CiAgICAgICAgICBfaW5zdGFuY2Uuc3RhdGUgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgIF9pbnN0YW5jZS5yZWZzID0ge307CiAgICAgICAgICBpbml0aWFsaXplVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgIHN0YXRlID0gQ29tcG9uZW50LmNvbnRleHRUeXBlOwogICAgICAgICAgX2luc3RhbmNlLmNvbnRleHQgPSAib2JqZWN0IiA9PT0gdHlwZW9mIHN0YXRlICYmIG51bGwgIT09IHN0YXRlID8gcmVhZENvbnRleHQoc3RhdGUpIDogZW1wdHlDb250ZXh0T2JqZWN0OwogICAgICAgICAgX2luc3RhbmNlLnN0YXRlID09PSBuZXh0UHJvcHMgJiYgKHN0YXRlID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkgfHwgIkNvbXBvbmVudCIsIGRpZFdhcm5BYm91dERpcmVjdGx5QXNzaWduaW5nUHJvcHNUb1N0YXRlLmhhcyhzdGF0ZSkgfHwgKGRpZFdhcm5BYm91dERpcmVjdGx5QXNzaWduaW5nUHJvcHNUb1N0YXRlLmFkZChzdGF0ZSksIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICIlczogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGFzc2lnbiBwcm9wcyBkaXJlY3RseSB0byBzdGF0ZSBiZWNhdXNlIHVwZGF0ZXMgdG8gcHJvcHMgd29uJ3QgYmUgcmVmbGVjdGVkIGluIHN0YXRlLiBJbiBtb3N0IGNhc2VzLCBpdCBpcyBiZXR0ZXIgdG8gdXNlIHByb3BzIGRpcmVjdGx5LiIsCiAgICAgICAgICAgIHN0YXRlCiAgICAgICAgICApKSk7CiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUgJiYgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkTGVnYWN5Q29udGV4dFdhcm5pbmcoCiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgX2luc3RhbmNlCiAgICAgICAgICApOwogICAgICAgICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkVW5zYWZlTGlmZWN5Y2xlV2FybmluZ3MoCiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgX2luc3RhbmNlCiAgICAgICAgICApOwogICAgICAgICAgX2luc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgICBzdGF0ZSA9IENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7CiAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2Ygc3RhdGUgJiYgKGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgIENvbXBvbmVudCwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG5leHRQcm9wcwogICAgICAgICAgKSwgX2luc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUpOwogICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgfHwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSB8fCAiZnVuY3Rpb24iICE9PSB0eXBlb2YgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgfHwgKHN0YXRlID0gX2luc3RhbmNlLnN0YXRlLCAiZnVuY3Rpb24iID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCAmJiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50KCksICJmdW5jdGlvbiIgPT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCAmJiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLCBzdGF0ZSAhPT0gX2luc3RhbmNlLnN0YXRlICYmIChjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiJXMuY29tcG9uZW50V2lsbE1vdW50KCk6IEFzc2lnbmluZyBkaXJlY3RseSB0byB0aGlzLnN0YXRlIGlzIGRlcHJlY2F0ZWQgKGV4Y2VwdCBpbnNpZGUgYSBjb21wb25lbnQncyBjb25zdHJ1Y3RvcikuIFVzZSBzZXRTdGF0ZSBpbnN0ZWFkLiIsCiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIod29ya0luUHJvZ3Jlc3MyKSB8fCAiQ29tcG9uZW50IgogICAgICAgICAgKSwgY2xhc3NDb21wb25lbnRVcGRhdGVyLmVucXVldWVSZXBsYWNlU3RhdGUoCiAgICAgICAgICAgIF9pbnN0YW5jZSwKICAgICAgICAgICAgX2luc3RhbmNlLnN0YXRlLAogICAgICAgICAgICBudWxsCiAgICAgICAgICApKSwgcHJvY2Vzc1VwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzMiwgbmV4dFByb3BzLCBfaW5zdGFuY2UsIHJlbmRlckxhbmVzMiksIHN1c3BlbmRJZlVwZGF0ZVJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24oKSwgX2luc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUpOwogICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDQxOTQzMDgpOwogICAgICAgICAgKHdvcmtJblByb2dyZXNzMi5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUgJiYgKHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAxMzQyMTc3MjgpOwogICAgICAgICAgX2luc3RhbmNlID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgaWYgKG51bGwgPT09IGN1cnJlbnQyKSB7CiAgICAgICAgICBfaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlOwogICAgICAgICAgdmFyIHVucmVzb2x2ZWRPbGRQcm9wcyA9IHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFByb3BzOwogICAgICAgICAgbGFuZSA9IHJlc29sdmVDbGFzc0NvbXBvbmVudFByb3BzKENvbXBvbmVudCwgdW5yZXNvbHZlZE9sZFByb3BzKTsKICAgICAgICAgIF9pbnN0YW5jZS5wcm9wcyA9IGxhbmU7CiAgICAgICAgICB2YXIgb2xkQ29udGV4dCA9IF9pbnN0YW5jZS5jb250ZXh0OwogICAgICAgICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9IENvbXBvbmVudC5jb250ZXh0VHlwZTsKICAgICAgICAgIHN0YXRlID0gZW1wdHlDb250ZXh0T2JqZWN0OwogICAgICAgICAgIm9iamVjdCIgPT09IHR5cGVvZiBmb3VuZFdpbGxVcGRhdGVOYW1lICYmIG51bGwgIT09IGZvdW5kV2lsbFVwZGF0ZU5hbWUgJiYgKHN0YXRlID0gcmVhZENvbnRleHQoZm91bmRXaWxsVXBkYXRlTmFtZSkpOwogICAgICAgICAgbmV3QXBpTmFtZSA9IENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7CiAgICAgICAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIG5ld0FwaU5hbWUgfHwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZTsKICAgICAgICAgIHVucmVzb2x2ZWRPbGRQcm9wcyA9IHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMgIT09IHVucmVzb2x2ZWRPbGRQcm9wczsKICAgICAgICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUgfHwgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAmJiAiZnVuY3Rpb24iICE9PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgfHwgKHVucmVzb2x2ZWRPbGRQcm9wcyB8fCBvbGRDb250ZXh0ICE9PSBzdGF0ZSkgJiYgY2FsbENvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoCiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgX2luc3RhbmNlLAogICAgICAgICAgICBuZXh0UHJvcHMsCiAgICAgICAgICAgIHN0YXRlCiAgICAgICAgICApOwogICAgICAgICAgaGFzRm9yY2VVcGRhdGUgPSBmYWxzZTsKICAgICAgICAgIHZhciBvbGRTdGF0ZSA9IHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlOwogICAgICAgICAgX2luc3RhbmNlLnN0YXRlID0gb2xkU3RhdGU7CiAgICAgICAgICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MyLCBuZXh0UHJvcHMsIF9pbnN0YW5jZSwgcmVuZGVyTGFuZXMyKTsKICAgICAgICAgIHN1c3BlbmRJZlVwZGF0ZVJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24oKTsKICAgICAgICAgIG9sZENvbnRleHQgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgIHVucmVzb2x2ZWRPbGRQcm9wcyB8fCBvbGRTdGF0ZSAhPT0gb2xkQ29udGV4dCB8fCBoYXNGb3JjZVVwZGF0ZSA/ICgiZnVuY3Rpb24iID09PSB0eXBlb2YgbmV3QXBpTmFtZSAmJiAoYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMoCiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgQ29tcG9uZW50LAogICAgICAgICAgICBuZXdBcGlOYW1lLAogICAgICAgICAgICBuZXh0UHJvcHMKICAgICAgICAgICksIG9sZENvbnRleHQgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSksIChsYW5lID0gaGFzRm9yY2VVcGRhdGUgfHwgY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUoCiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgQ29tcG9uZW50LAogICAgICAgICAgICBsYW5lLAogICAgICAgICAgICBuZXh0UHJvcHMsCiAgICAgICAgICAgIG9sZFN0YXRlLAogICAgICAgICAgICBvbGRDb250ZXh0LAogICAgICAgICAgICBzdGF0ZQogICAgICAgICAgKSkgPyAoZm91bmRXaWxsVXBkYXRlTmFtZSB8fCAiZnVuY3Rpb24iICE9PSB0eXBlb2YgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgfHwgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ICYmIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQoKSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ICYmIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCkpLCAiZnVuY3Rpb24iID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudERpZE1vdW50ICYmICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gNDE5NDMwOCksICh3b3JrSW5Qcm9ncmVzczIubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlICYmICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMTM0MjE3NzI4KSkgOiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDQxOTQzMDgpLCAod29ya0luUHJvZ3Jlc3MyLm1vZGUgJiBTdHJpY3RFZmZlY3RzTW9kZSkgIT09IE5vTW9kZSAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDEzNDIxNzcyOCksIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFByb3BzID0gbmV4dFByb3BzLCB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSA9IG9sZENvbnRleHQpLCBfaW5zdGFuY2UucHJvcHMgPSBuZXh0UHJvcHMsIF9pbnN0YW5jZS5zdGF0ZSA9IG9sZENvbnRleHQsIF9pbnN0YW5jZS5jb250ZXh0ID0gc3RhdGUsIF9pbnN0YW5jZSA9IGxhbmUpIDogKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgJiYgKHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSA0MTk0MzA4KSwgKHdvcmtJblByb2dyZXNzMi5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUgJiYgKHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAxMzQyMTc3MjgpLCBfaW5zdGFuY2UgPSBmYWxzZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF9pbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGU7CiAgICAgICAgICBjbG9uZVVwZGF0ZVF1ZXVlKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgICAgc3RhdGUgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRQcm9wczsKICAgICAgICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSByZXNvbHZlQ2xhc3NDb21wb25lbnRQcm9wcyhDb21wb25lbnQsIHN0YXRlKTsKICAgICAgICAgIF9pbnN0YW5jZS5wcm9wcyA9IGZvdW5kV2lsbFVwZGF0ZU5hbWU7CiAgICAgICAgICBuZXdBcGlOYW1lID0gd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wczsKICAgICAgICAgIG9sZFN0YXRlID0gX2luc3RhbmNlLmNvbnRleHQ7CiAgICAgICAgICBvbGRDb250ZXh0ID0gQ29tcG9uZW50LmNvbnRleHRUeXBlOwogICAgICAgICAgbGFuZSA9IGVtcHR5Q29udGV4dE9iamVjdDsKICAgICAgICAgICJvYmplY3QiID09PSB0eXBlb2Ygb2xkQ29udGV4dCAmJiBudWxsICE9PSBvbGRDb250ZXh0ICYmIChsYW5lID0gcmVhZENvbnRleHQob2xkQ29udGV4dCkpOwogICAgICAgICAgdW5yZXNvbHZlZE9sZFByb3BzID0gQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczsKICAgICAgICAgIChvbGRDb250ZXh0ID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHVucmVzb2x2ZWRPbGRQcm9wcyB8fCAiZnVuY3Rpb24iID09PSB0eXBlb2YgX2luc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKSB8fCAiZnVuY3Rpb24iICE9PSB0eXBlb2YgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzICYmICJmdW5jdGlvbiIgIT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB8fCAoc3RhdGUgIT09IG5ld0FwaU5hbWUgfHwgb2xkU3RhdGUgIT09IGxhbmUpICYmIGNhbGxDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgIF9pbnN0YW5jZSwKICAgICAgICAgICAgbmV4dFByb3BzLAogICAgICAgICAgICBsYW5lCiAgICAgICAgICApOwogICAgICAgICAgaGFzRm9yY2VVcGRhdGUgPSBmYWxzZTsKICAgICAgICAgIG9sZFN0YXRlID0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgICBfaW5zdGFuY2Uuc3RhdGUgPSBvbGRTdGF0ZTsKICAgICAgICAgIHByb2Nlc3NVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzczIsIG5leHRQcm9wcywgX2luc3RhbmNlLCByZW5kZXJMYW5lczIpOwogICAgICAgICAgc3VzcGVuZElmVXBkYXRlUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbigpOwogICAgICAgICAgdmFyIG5ld1N0YXRlID0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgICBzdGF0ZSAhPT0gbmV3QXBpTmFtZSB8fCBvbGRTdGF0ZSAhPT0gbmV3U3RhdGUgfHwgaGFzRm9yY2VVcGRhdGUgfHwgbnVsbCAhPT0gY3VycmVudDIgJiYgbnVsbCAhPT0gY3VycmVudDIuZGVwZW5kZW5jaWVzICYmIGNoZWNrSWZDb250ZXh0Q2hhbmdlZChjdXJyZW50Mi5kZXBlbmRlbmNpZXMpID8gKCJmdW5jdGlvbiIgPT09IHR5cGVvZiB1bnJlc29sdmVkT2xkUHJvcHMgJiYgKGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgIENvbXBvbmVudCwKICAgICAgICAgICAgdW5yZXNvbHZlZE9sZFByb3BzLAogICAgICAgICAgICBuZXh0UHJvcHMKICAgICAgICAgICksIG5ld1N0YXRlID0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUpLCAoZm91bmRXaWxsVXBkYXRlTmFtZSA9IGhhc0ZvcmNlVXBkYXRlIHx8IGNoZWNrU2hvdWxkQ29tcG9uZW50VXBkYXRlKAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgIENvbXBvbmVudCwKICAgICAgICAgICAgZm91bmRXaWxsVXBkYXRlTmFtZSwKICAgICAgICAgICAgbmV4dFByb3BzLAogICAgICAgICAgICBvbGRTdGF0ZSwKICAgICAgICAgICAgbmV3U3RhdGUsCiAgICAgICAgICAgIGxhbmUKICAgICAgICAgICkgfHwgbnVsbCAhPT0gY3VycmVudDIgJiYgbnVsbCAhPT0gY3VycmVudDIuZGVwZW5kZW5jaWVzICYmIGNoZWNrSWZDb250ZXh0Q2hhbmdlZChjdXJyZW50Mi5kZXBlbmRlbmNpZXMpKSA/IChvbGRDb250ZXh0IHx8ICJmdW5jdGlvbiIgIT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsVXBkYXRlIHx8ICgiZnVuY3Rpb24iID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgJiYgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUobmV4dFByb3BzLCBuZXdTdGF0ZSwgbGFuZSksICJmdW5jdGlvbiIgPT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgJiYgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKAogICAgICAgICAgICBuZXh0UHJvcHMsCiAgICAgICAgICAgIG5ld1N0YXRlLAogICAgICAgICAgICBsYW5lCiAgICAgICAgICApKSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUgJiYgKHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSA0KSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDEwMjQpKSA6ICgiZnVuY3Rpb24iICE9PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSB8fCBzdGF0ZSA9PT0gY3VycmVudDIubWVtb2l6ZWRQcm9wcyAmJiBvbGRTdGF0ZSA9PT0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZSB8fCAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDQpLCAiZnVuY3Rpb24iICE9PSB0eXBlb2YgX2luc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlIHx8IHN0YXRlID09PSBjdXJyZW50Mi5tZW1vaXplZFByb3BzICYmIG9sZFN0YXRlID09PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlIHx8ICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMTAyNCksIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFByb3BzID0gbmV4dFByb3BzLCB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlKSwgX2luc3RhbmNlLnByb3BzID0gbmV4dFByb3BzLCBfaW5zdGFuY2Uuc3RhdGUgPSBuZXdTdGF0ZSwgX2luc3RhbmNlLmNvbnRleHQgPSBsYW5lLCBfaW5zdGFuY2UgPSBmb3VuZFdpbGxVcGRhdGVOYW1lKSA6ICgiZnVuY3Rpb24iICE9PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSB8fCBzdGF0ZSA9PT0gY3VycmVudDIubWVtb2l6ZWRQcm9wcyAmJiBvbGRTdGF0ZSA9PT0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZSB8fCAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDQpLCAiZnVuY3Rpb24iICE9PSB0eXBlb2YgX2luc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlIHx8IHN0YXRlID09PSBjdXJyZW50Mi5tZW1vaXplZFByb3BzICYmIG9sZFN0YXRlID09PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlIHx8ICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMTAyNCksIF9pbnN0YW5jZSA9IGZhbHNlKTsKICAgICAgICB9CiAgICAgICAgbGFuZSA9IF9pbnN0YW5jZTsKICAgICAgICBtYXJrUmVmKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgIHN0YXRlID0gMCAhPT0gKHdvcmtJblByb2dyZXNzMi5mbGFncyAmIDEyOCk7CiAgICAgICAgaWYgKGxhbmUgfHwgc3RhdGUpIHsKICAgICAgICAgIGxhbmUgPSB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlOwogICAgICAgICAgc2V0Q3VycmVudEZpYmVyKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICBpZiAoc3RhdGUgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IpCiAgICAgICAgICAgIENvbXBvbmVudCA9IG51bGwsIHByb2ZpbGVyU3RhcnRUaW1lID0gLTE7CiAgICAgICAgICBlbHNlIGlmIChDb21wb25lbnQgPSBjYWxsUmVuZGVySW5ERVYobGFuZSksIHdvcmtJblByb2dyZXNzMi5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkgewogICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyh0cnVlKTsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBjYWxsUmVuZGVySW5ERVYobGFuZSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMTsKICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQyICYmIHN0YXRlID8gKHdvcmtJblByb2dyZXNzMi5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgIGN1cnJlbnQyLmNoaWxkLAogICAgICAgICAgICBudWxsLAogICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICksIHdvcmtJblByb2dyZXNzMi5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgIENvbXBvbmVudCwKICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICApKSA6IHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIENvbXBvbmVudCwgcmVuZGVyTGFuZXMyKTsKICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlID0gbGFuZS5zdGF0ZTsKICAgICAgICAgIGN1cnJlbnQyID0gd29ya0luUHJvZ3Jlc3MyLmNoaWxkOwogICAgICAgIH0gZWxzZQogICAgICAgICAgY3VycmVudDIgPSBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKAogICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICk7CiAgICAgICAgcmVuZGVyTGFuZXMyID0gd29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZTsKICAgICAgICBfaW5zdGFuY2UgJiYgcmVuZGVyTGFuZXMyLnByb3BzICE9PSBuZXh0UHJvcHMgJiYgKGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMgfHwgY29uc29sZS5lcnJvcigKICAgICAgICAgICJJdCBsb29rcyBsaWtlICVzIGlzIHJlYXNzaWduaW5nIGl0cyBvd24gYHRoaXMucHJvcHNgIHdoaWxlIHJlbmRlcmluZy4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkIGFuZCBjYW4gbGVhZCB0byBjb25mdXNpbmcgYnVncy4iLAogICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcih3b3JrSW5Qcm9ncmVzczIpIHx8ICJhIGNvbXBvbmVudCIKICAgICAgICApLCBkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzID0gdHJ1ZSk7CiAgICAgICAgcmV0dXJuIGN1cnJlbnQyOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1vdW50SG9zdFJvb3RXaXRob3V0SHlkcmF0aW5nKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMyKSB7CiAgICAgICAgcmVzZXRIeWRyYXRpb25TdGF0ZSgpOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAyNTY7CiAgICAgICAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudDIsIHdvcmtJblByb2dyZXNzMiwgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lczIpOwogICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzczIuY2hpbGQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzMiwgQ29tcG9uZW50KSB7CiAgICAgICAgQ29tcG9uZW50ICYmIENvbXBvbmVudC5jaGlsZENvbnRleHRUeXBlcyAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgImNoaWxkQ29udGV4dFR5cGVzIGNhbm5vdCBiZSBkZWZpbmVkIG9uIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICAlcy5jaGlsZENvbnRleHRUeXBlcyA9IC4uLiIsCiAgICAgICAgICBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgIkNvbXBvbmVudCIKICAgICAgICApOwogICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzICYmICh3b3JrSW5Qcm9ncmVzczIgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCAiVW5rbm93biIsIGRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnRbd29ya0luUHJvZ3Jlc3MyXSB8fCAoY29uc29sZS5lcnJvcigKICAgICAgICAgICIlczogRnVuY3Rpb24gY29tcG9uZW50cyBkbyBub3Qgc3VwcG9ydCBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuIiwKICAgICAgICAgIHdvcmtJblByb2dyZXNzMgogICAgICAgICksIGRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnRbd29ya0luUHJvZ3Jlc3MyXSA9IHRydWUpKTsKICAgICAgICAib2JqZWN0IiA9PT0gdHlwZW9mIENvbXBvbmVudC5jb250ZXh0VHlwZSAmJiBudWxsICE9PSBDb21wb25lbnQuY29udGV4dFR5cGUgJiYgKENvbXBvbmVudCA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICJVbmtub3duIiwgZGlkV2FybkFib3V0Q29udGV4dFR5cGVPbkZ1bmN0aW9uQ29tcG9uZW50W0NvbXBvbmVudF0gfHwgKGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiJXM6IEZ1bmN0aW9uIGNvbXBvbmVudHMgZG8gbm90IHN1cHBvcnQgY29udGV4dFR5cGUuIiwKICAgICAgICAgIENvbXBvbmVudAogICAgICAgICksIGRpZFdhcm5BYm91dENvbnRleHRUeXBlT25GdW5jdGlvbkNvbXBvbmVudFtDb21wb25lbnRdID0gdHJ1ZSkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1vdW50U3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShyZW5kZXJMYW5lczIpIHsKICAgICAgICByZXR1cm4geyBiYXNlTGFuZXM6IHJlbmRlckxhbmVzMiwgY2FjaGVQb29sOiBnZXRTdXNwZW5kZWRDYWNoZSgpIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoY3VycmVudDIsIHByaW1hcnlUcmVlRGlkRGVmZXIsIHJlbmRlckxhbmVzMikgewogICAgICAgIGN1cnJlbnQyID0gbnVsbCAhPT0gY3VycmVudDIgPyBjdXJyZW50Mi5jaGlsZExhbmVzICYgfnJlbmRlckxhbmVzMiA6IDA7CiAgICAgICAgcHJpbWFyeVRyZWVEaWREZWZlciAmJiAoY3VycmVudDIgfD0gd29ya0luUHJvZ3Jlc3NEZWZlcnJlZExhbmUpOwogICAgICAgIHJldHVybiBjdXJyZW50MjsKICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVTdXNwZW5zZUNvbXBvbmVudChjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCByZW5kZXJMYW5lczIpIHsKICAgICAgICB2YXIgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0OwogICAgICAgIHZhciBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNSA9IHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHM7CiAgICAgICAgc2hvdWxkU3VzcGVuZEltcGwod29ya0luUHJvZ3Jlc3MyKSAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDEyOCk7CiAgICAgICAgdmFyIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI3MjMgPSBmYWxzZTsKICAgICAgICB2YXIgZGlkU3VzcGVuZCA9IDAgIT09ICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgJiAxMjgpOwogICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQgPSBkaWRTdXNwZW5kKSB8fCAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0ID0gbnVsbCAhPT0gY3VycmVudDIgJiYgbnVsbCA9PT0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZSA/IGZhbHNlIDogMCAhPT0gKHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCAmIEZvcmNlU3VzcGVuc2VGYWxsYmFjaykpOwogICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCAmJiAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjcyMyA9IHRydWUsIHdvcmtJblByb2dyZXNzMi5mbGFncyAmPSAtMTI5KTsKICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQgPSAwICE9PSAod29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgMzIpOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5mbGFncyAmPSAtMzM7CiAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQyKSB7CiAgICAgICAgICBpZiAoaXNIeWRyYXRpbmcpIHsKICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjcyMyA/IHB1c2hQcmltYXJ5VHJlZVN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzczIpIDogcmV1c2VTdXNwZW5zZUhhbmRsZXJPblN0YWNrKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgIChjdXJyZW50MiA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2UpID8gKHJlbmRlckxhbmVzMiA9IGNhbkh5ZHJhdGVIeWRyYXRpb25Cb3VuZGFyeSgKICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICByb290T3JTaW5nbGV0b25Db250ZXh0CiAgICAgICAgICAgICksIHJlbmRlckxhbmVzMiA9IG51bGwgIT09IHJlbmRlckxhbmVzMiAmJiByZW5kZXJMYW5lczIuZGF0YSAhPT0gQUNUSVZJVFlfU1RBUlRfREFUQSA/IHJlbmRlckxhbmVzMiA6IG51bGwsIG51bGwgIT09IHJlbmRlckxhbmVzMiAmJiAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0ID0gewogICAgICAgICAgICAgIGRlaHlkcmF0ZWQ6IHJlbmRlckxhbmVzMiwKICAgICAgICAgICAgICB0cmVlQ29udGV4dDogZ2V0U3VzcGVuZGVkVHJlZUNvbnRleHQoKSwKICAgICAgICAgICAgICByZXRyeUxhbmU6IDUzNjg3MDkxMiwKICAgICAgICAgICAgICBoeWRyYXRpb25FcnJvcnM6IG51bGwKICAgICAgICAgICAgfSwgd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQsIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCA9IGNyZWF0ZUZpYmVyRnJvbURlaHlkcmF0ZWRGcmFnbWVudChyZW5kZXJMYW5lczIpLCBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MyLCB3b3JrSW5Qcm9ncmVzczIuY2hpbGQgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQsIGh5ZHJhdGlvblBhcmVudEZpYmVyID0gd29ya0luUHJvZ3Jlc3MyLCBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gbnVsbCkpIDogcmVuZGVyTGFuZXMyID0gbnVsbDsKICAgICAgICAgICAgaWYgKG51bGwgPT09IHJlbmRlckxhbmVzMikKICAgICAgICAgICAgICB0aHJvdyB3YXJuTm9uSHlkcmF0ZWRJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzczIsIGN1cnJlbnQyKSwgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgIGlzU3VzcGVuc2VJbnN0YW5jZUZhbGxiYWNrKHJlbmRlckxhbmVzMikgPyB3b3JrSW5Qcm9ncmVzczIubGFuZXMgPSAzMiA6IHdvcmtJblByb2dyZXNzMi5sYW5lcyA9IDUzNjg3MDkxMjsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgbmV4dFByaW1hcnlDaGlsZHJlbiA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LmNoaWxkcmVuOwogICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5mYWxsYmFjazsKICAgICAgICAgIGlmIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNzIzKSB7CiAgICAgICAgICAgIHJldXNlU3VzcGVuc2VIYW5kbGVyT25TdGFjayh3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgICAgICB2YXIgbW9kZSA9IHdvcmtJblByb2dyZXNzMi5tb2RlOwogICAgICAgICAgICBuZXh0UHJpbWFyeUNoaWxkcmVuID0gbW91bnRXb3JrSW5Qcm9ncmVzc09mZnNjcmVlbkZpYmVyKAogICAgICAgICAgICAgIHsgbW9kZTogImhpZGRlbiIsIGNoaWxkcmVuOiBuZXh0UHJpbWFyeUNoaWxkcmVuIH0sCiAgICAgICAgICAgICAgbW9kZQogICAgICAgICAgICApOwogICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNSA9IGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KAogICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LAogICAgICAgICAgICAgIG1vZGUsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyLAogICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dFByaW1hcnlDaGlsZHJlbi5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LnJldHVybiA9IHdvcmtJblByb2dyZXNzMjsKICAgICAgICAgICAgbmV4dFByaW1hcnlDaGlsZHJlbi5zaWJsaW5nID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjU7CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5jaGlsZCA9IG5leHRQcmltYXJ5Q2hpbGRyZW47CiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1ID0gd29ya0luUHJvZ3Jlc3MyLmNoaWxkOwogICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5tZW1vaXplZFN0YXRlID0gbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzMik7CiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LmNoaWxkTGFuZXMgPSBnZXRSZW1haW5pbmdXb3JrSW5QcmltYXJ5VHJlZSgKICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlID0gU1VTUEVOREVEX01BUktFUjsKICAgICAgICAgICAgcmV0dXJuIGJhaWxvdXRPZmZzY3JlZW5Db21wb25lbnQoCiAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgcHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICByZXR1cm4gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbigKICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICBuZXh0UHJpbWFyeUNoaWxkcmVuCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICB2YXIgcHJldlN0YXRlID0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICBpZiAobnVsbCAhPT0gcHJldlN0YXRlKSB7CiAgICAgICAgICB2YXIgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI3MjYgPSBwcmV2U3RhdGUuZGVoeWRyYXRlZDsKICAgICAgICAgIGlmIChudWxsICE9PSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjcyNikgewogICAgICAgICAgICBpZiAoZGlkU3VzcGVuZCkKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgJiAyNTYgPyAocHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMiksIHdvcmtJblByb2dyZXNzMi5mbGFncyAmPSAtMjU3LCB3b3JrSW5Qcm9ncmVzczIgPSByZXRyeVN1c3BlbnNlQ29tcG9uZW50V2l0aG91dEh5ZHJhdGluZygKICAgICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICAgKSkgOiBudWxsICE9PSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSA/IChyZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2sod29ya0luUHJvZ3Jlc3MyKSwgd29ya0luUHJvZ3Jlc3MyLmNoaWxkID0gY3VycmVudDIuY2hpbGQsIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAxMjgsIHdvcmtJblByb2dyZXNzMiA9IG51bGwpIDogKHJldXNlU3VzcGVuc2VIYW5kbGVyT25TdGFjayh3b3JrSW5Qcm9ncmVzczIpLCBuZXh0UHJpbWFyeUNoaWxkcmVuID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuZmFsbGJhY2ssIG1vZGUgPSB3b3JrSW5Qcm9ncmVzczIubW9kZSwgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPSBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIG1vZGU6ICJ2aXNpYmxlIiwKICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LmNoaWxkcmVuCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgbW9kZQogICAgICAgICAgICAgICksIG5leHRQcmltYXJ5Q2hpbGRyZW4gPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudCgKICAgICAgICAgICAgICAgIG5leHRQcmltYXJ5Q2hpbGRyZW4sCiAgICAgICAgICAgICAgICBtb2RlLAogICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyLAogICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICksIG5leHRQcmltYXJ5Q2hpbGRyZW4uZmxhZ3MgfD0gMiwgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MyLCBuZXh0UHJpbWFyeUNoaWxkcmVuLnJldHVybiA9IHdvcmtJblByb2dyZXNzMiwgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuc2libGluZyA9IG5leHRQcmltYXJ5Q2hpbGRyZW4sIHdvcmtJblByb2dyZXNzMi5jaGlsZCA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LCByZWNvbmNpbGVDaGlsZEZpYmVycygKICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICAgIGN1cnJlbnQyLmNoaWxkLAogICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICAgICksIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1ID0gd29ya0luUHJvZ3Jlc3MyLmNoaWxkLCBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5tZW1vaXplZFN0YXRlID0gbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzMiksIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LmNoaWxkTGFuZXMgPSBnZXRSZW1haW5pbmdXb3JrSW5QcmltYXJ5VHJlZSgKICAgICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0LAogICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICAgKSwgd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgPSBTVVNQRU5ERURfTUFSS0VSLCB3b3JrSW5Qcm9ncmVzczIgPSBiYWlsb3V0T2Zmc2NyZWVuQ29tcG9uZW50KAogICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1CiAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIGVsc2UgaWYgKHB1c2hQcmltYXJ5VHJlZVN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzczIpLCB3YXJuSWZIeWRyYXRpbmcoKSwgMCAhPT0gKHJlbmRlckxhbmVzMiAmIDUzNjg3MDkxMikgJiYgbWFya1JlbmRlckRlcml2ZWRDYXVzZSh3b3JrSW5Qcm9ncmVzczIpLCBpc1N1c3BlbnNlSW5zdGFuY2VGYWxsYmFjaygKICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjcyNgogICAgICAgICAgICApKSB7CiAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0ID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI3MjYubmV4dFNpYmxpbmcgJiYgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI3MjYubmV4dFNpYmxpbmcuZGF0YXNldDsKICAgICAgICAgICAgICBpZiAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0KSB7CiAgICAgICAgICAgICAgICBuZXh0UHJpbWFyeUNoaWxkcmVuID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0LmRnc3Q7CiAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNC5tc2c7CiAgICAgICAgICAgICAgICBtb2RlID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0LnN0Y2s7CiAgICAgICAgICAgICAgICB2YXIgY29tcG9uZW50U3RhY2sgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQuY3N0Y2s7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI3MjMgPSBtZXNzYWdlOwogICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCA9IG5leHRQcmltYXJ5Q2hpbGRyZW47CiAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPSBtb2RlOwogICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNzI2ID0gY29tcG9uZW50U3RhY2s7CiAgICAgICAgICAgICAgbmV4dFByaW1hcnlDaGlsZHJlbiA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI3MjM7CiAgICAgICAgICAgICAgbW9kZSA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNzI2OwogICAgICAgICAgICAgIG5leHRQcmltYXJ5Q2hpbGRyZW4gPSBuZXh0UHJpbWFyeUNoaWxkcmVuID8gRXJyb3IobmV4dFByaW1hcnlDaGlsZHJlbikgOiBFcnJvcigKICAgICAgICAgICAgICAgICJUaGUgc2VydmVyIGNvdWxkIG5vdCBmaW5pc2ggdGhpcyBTdXNwZW5zZSBib3VuZGFyeSwgbGlrZWx5IGR1ZSB0byBhbiBlcnJvciBkdXJpbmcgc2VydmVyIHJlbmRlcmluZy4gU3dpdGNoZWQgdG8gY2xpZW50IHJlbmRlcmluZy4iCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICBuZXh0UHJpbWFyeUNoaWxkcmVuLnN0YWNrID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgfHwgIiI7CiAgICAgICAgICAgICAgbmV4dFByaW1hcnlDaGlsZHJlbi5kaWdlc3QgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQ7CiAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0ID0gdm9pZCAwID09PSBtb2RlID8gbnVsbCA6IG1vZGU7CiAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPSB7CiAgICAgICAgICAgICAgICB2YWx1ZTogbmV4dFByaW1hcnlDaGlsZHJlbiwKICAgICAgICAgICAgICAgIHNvdXJjZTogbnVsbCwKICAgICAgICAgICAgICAgIHN0YWNrOiBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICJzdHJpbmciID09PSB0eXBlb2YgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0ICYmIENhcHR1cmVkU3RhY2tzLnNldCgKICAgICAgICAgICAgICAgIG5leHRQcmltYXJ5Q2hpbGRyZW4sCiAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgcXVldWVIeWRyYXRpb25FcnJvcihKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNSk7CiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyID0gcmV0cnlTdXNwZW5zZUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoCiAgICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlkUmVjZWl2ZVVwZGF0ZSB8fCBwcm9wYWdhdGVQYXJlbnRDb250ZXh0Q2hhbmdlcygKICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyLAogICAgICAgICAgICAgIGZhbHNlCiAgICAgICAgICAgICksIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCA9IDAgIT09IChyZW5kZXJMYW5lczIgJiBjdXJyZW50Mi5jaGlsZExhbmVzKSwgZGlkUmVjZWl2ZVVwZGF0ZSB8fCBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQpIHsKICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQgPSB3b3JrSW5Qcm9ncmVzc1Jvb3Q7CiAgICAgICAgICAgICAgaWYgKG51bGwgIT09IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCAmJiAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPSBnZXRCdW1wZWRMYW5lRm9ySHlkcmF0aW9uKAogICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0LAogICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICAgKSwgMCAhPT0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgJiYgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgIT09IHByZXZTdGF0ZS5yZXRyeUxhbmUpKQogICAgICAgICAgICAgICAgdGhyb3cgcHJldlN0YXRlLnJldHJ5TGFuZSA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LCBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoCiAgICAgICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNQogICAgICAgICAgICAgICAgKSwgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKAogICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQsCiAgICAgICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNQogICAgICAgICAgICAgICAgKSwgU2VsZWN0aXZlSHlkcmF0aW9uRXhjZXB0aW9uOwogICAgICAgICAgICAgIGlzU3VzcGVuc2VJbnN0YW5jZVBlbmRpbmcoCiAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjcyNgogICAgICAgICAgICAgICkgfHwgcmVuZGVyRGlkU3VzcGVuZERlbGF5SWZQb3NzaWJsZSgpOwogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiA9IHJldHJ5U3VzcGVuc2VDb21wb25lbnRXaXRob3V0SHlkcmF0aW5nKAogICAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICBpc1N1c3BlbnNlSW5zdGFuY2VQZW5kaW5nKAogICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI3MjYKICAgICAgICAgICAgICApID8gKHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAxOTIsIHdvcmtJblByb2dyZXNzMi5jaGlsZCA9IGN1cnJlbnQyLmNoaWxkLCB3b3JrSW5Qcm9ncmVzczIgPSBudWxsKSA6IChjdXJyZW50MiA9IHByZXZTdGF0ZS50cmVlQ29udGV4dCwgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKAogICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI3MjYubmV4dFNpYmxpbmcKICAgICAgICAgICAgICApLCBoeWRyYXRpb25QYXJlbnRGaWJlciA9IHdvcmtJblByb2dyZXNzMiwgaXNIeWRyYXRpbmcgPSB0cnVlLCBoeWRyYXRpb25FcnJvcnMgPSBudWxsLCBkaWRTdXNwZW5kT3JFcnJvckRFViA9IGZhbHNlLCBoeWRyYXRpb25EaWZmUm9vdERFViA9IG51bGwsIHJvb3RPclNpbmdsZXRvbkNvbnRleHQgPSBmYWxzZSwgbnVsbCAhPT0gY3VycmVudDIgJiYgcmVzdG9yZVN1c3BlbmRlZFRyZWVDb250ZXh0KHdvcmtJblByb2dyZXNzMiwgY3VycmVudDIpLCB3b3JrSW5Qcm9ncmVzczIgPSBtb3VudFN1c3BlbnNlUHJpbWFyeUNoaWxkcmVuKAogICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuY2hpbGRyZW4KICAgICAgICAgICAgICApLCB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gNDA5Nik7CiAgICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNzIzKQogICAgICAgICAgcmV0dXJuIHJldXNlU3VzcGVuc2VIYW5kbGVyT25TdGFjayh3b3JrSW5Qcm9ncmVzczIpLCBuZXh0UHJpbWFyeUNoaWxkcmVuID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuZmFsbGJhY2ssIG1vZGUgPSB3b3JrSW5Qcm9ncmVzczIubW9kZSwgY29tcG9uZW50U3RhY2sgPSBjdXJyZW50Mi5jaGlsZCwgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI3MjYgPSBjb21wb25lbnRTdGFjay5zaWJsaW5nLCBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNSA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKAogICAgICAgICAgICBjb21wb25lbnRTdGFjaywKICAgICAgICAgICAgewogICAgICAgICAgICAgIG1vZGU6ICJoaWRkZW4iLAogICAgICAgICAgICAgIGNoaWxkcmVuOiBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5jaGlsZHJlbgogICAgICAgICAgICB9CiAgICAgICAgICApLCBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5zdWJ0cmVlRmxhZ3MgPSBjb21wb25lbnRTdGFjay5zdWJ0cmVlRmxhZ3MgJiA2NTAxMTcxMiwgbnVsbCAhPT0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2NvbXBvbmVudFN0YWNrXzI3MjYgPyBuZXh0UHJpbWFyeUNoaWxkcmVuID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MoCiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNzI2LAogICAgICAgICAgICBuZXh0UHJpbWFyeUNoaWxkcmVuCiAgICAgICAgICApIDogKG5leHRQcmltYXJ5Q2hpbGRyZW4gPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudCgKICAgICAgICAgICAgbmV4dFByaW1hcnlDaGlsZHJlbiwKICAgICAgICAgICAgbW9kZSwKICAgICAgICAgICAgcmVuZGVyTGFuZXMyLAogICAgICAgICAgICBudWxsCiAgICAgICAgICApLCBuZXh0UHJpbWFyeUNoaWxkcmVuLmZsYWdzIHw9IDIpLCBuZXh0UHJpbWFyeUNoaWxkcmVuLnJldHVybiA9IHdvcmtJblByb2dyZXNzMiwgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MyLCBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5zaWJsaW5nID0gbmV4dFByaW1hcnlDaGlsZHJlbiwgd29ya0luUHJvZ3Jlc3MyLmNoaWxkID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUsIGJhaWxvdXRPZmZzY3JlZW5Db21wb25lbnQobnVsbCwgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUpLCBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNSA9IHdvcmtJblByb2dyZXNzMi5jaGlsZCwgbmV4dFByaW1hcnlDaGlsZHJlbiA9IGN1cnJlbnQyLmNoaWxkLm1lbW9pemVkU3RhdGUsIG51bGwgPT09IG5leHRQcmltYXJ5Q2hpbGRyZW4gPyBuZXh0UHJpbWFyeUNoaWxkcmVuID0gbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzMikgOiAobW9kZSA9IG5leHRQcmltYXJ5Q2hpbGRyZW4uY2FjaGVQb29sLCBudWxsICE9PSBtb2RlID8gKGNvbXBvbmVudFN0YWNrID0gQ2FjaGVDb250ZXh0Ll9jdXJyZW50VmFsdWUsIG1vZGUgPSBtb2RlLnBhcmVudCAhPT0gY29tcG9uZW50U3RhY2sgPyB7IHBhcmVudDogY29tcG9uZW50U3RhY2ssIHBvb2w6IGNvbXBvbmVudFN0YWNrIH0gOiBtb2RlKSA6IG1vZGUgPSBnZXRTdXNwZW5kZWRDYWNoZSgpLCBuZXh0UHJpbWFyeUNoaWxkcmVuID0gewogICAgICAgICAgICBiYXNlTGFuZXM6IG5leHRQcmltYXJ5Q2hpbGRyZW4uYmFzZUxhbmVzIHwgcmVuZGVyTGFuZXMyLAogICAgICAgICAgICBjYWNoZVBvb2w6IG1vZGUKICAgICAgICAgIH0pLCBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5tZW1vaXplZFN0YXRlID0gbmV4dFByaW1hcnlDaGlsZHJlbiwgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuY2hpbGRMYW5lcyA9IGdldFJlbWFpbmluZ1dvcmtJblByaW1hcnlUcmVlKAogICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0LAogICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICksIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlID0gU1VTUEVOREVEX01BUktFUiwgYmFpbG91dE9mZnNjcmVlbkNvbXBvbmVudCgKICAgICAgICAgICAgY3VycmVudDIuY2hpbGQsCiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1CiAgICAgICAgICApOwogICAgICAgIG51bGwgIT09IHByZXZTdGF0ZSAmJiAocmVuZGVyTGFuZXMyICYgNjI5MTQ1NjApID09PSByZW5kZXJMYW5lczIgJiYgMCAhPT0gKHJlbmRlckxhbmVzMiAmIGN1cnJlbnQyLmxhbmVzKSAmJiBtYXJrUmVuZGVyRGVyaXZlZENhdXNlKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgcHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgcmVuZGVyTGFuZXMyID0gY3VycmVudDIuY2hpbGQ7CiAgICAgICAgY3VycmVudDIgPSByZW5kZXJMYW5lczIuc2libGluZzsKICAgICAgICByZW5kZXJMYW5lczIgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhyZW5kZXJMYW5lczIsIHsKICAgICAgICAgIG1vZGU6ICJ2aXNpYmxlIiwKICAgICAgICAgIGNoaWxkcmVuOiBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5jaGlsZHJlbgogICAgICAgIH0pOwogICAgICAgIHJlbmRlckxhbmVzMi5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgcmVuZGVyTGFuZXMyLnNpYmxpbmcgPSBudWxsOwogICAgICAgIG51bGwgIT09IGN1cnJlbnQyICYmIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQgPSB3b3JrSW5Qcm9ncmVzczIuZGVsZXRpb25zLCBudWxsID09PSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQgPyAod29ya0luUHJvZ3Jlc3MyLmRlbGV0aW9ucyA9IFtjdXJyZW50Ml0sIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAxNikgOiBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQucHVzaChjdXJyZW50MikpOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5jaGlsZCA9IHJlbmRlckxhbmVzMjsKICAgICAgICB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSA9IG51bGw7CiAgICAgICAgcmV0dXJuIHJlbmRlckxhbmVzMjsKICAgICAgfQogICAgICBmdW5jdGlvbiBtb3VudFN1c3BlbnNlUHJpbWFyeUNoaWxkcmVuKHdvcmtJblByb2dyZXNzMiwgcHJpbWFyeUNoaWxkcmVuKSB7CiAgICAgICAgcHJpbWFyeUNoaWxkcmVuID0gbW91bnRXb3JrSW5Qcm9ncmVzc09mZnNjcmVlbkZpYmVyKAogICAgICAgICAgeyBtb2RlOiAidmlzaWJsZSIsIGNoaWxkcmVuOiBwcmltYXJ5Q2hpbGRyZW4gfSwKICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5tb2RlCiAgICAgICAgKTsKICAgICAgICBwcmltYXJ5Q2hpbGRyZW4ucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MyOwogICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzczIuY2hpbGQgPSBwcmltYXJ5Q2hpbGRyZW47CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW91bnRXb3JrSW5Qcm9ncmVzc09mZnNjcmVlbkZpYmVyKG9mZnNjcmVlblByb3BzLCBtb2RlKSB7CiAgICAgICAgb2Zmc2NyZWVuUHJvcHMgPSBjcmVhdGVGaWJlcigyMiwgb2Zmc2NyZWVuUHJvcHMsIG51bGwsIG1vZGUpOwogICAgICAgIG9mZnNjcmVlblByb3BzLmxhbmVzID0gMDsKICAgICAgICByZXR1cm4gb2Zmc2NyZWVuUHJvcHM7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmV0cnlTdXNwZW5zZUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoY3VycmVudDIsIHdvcmtJblByb2dyZXNzMiwgcmVuZGVyTGFuZXMyKSB7CiAgICAgICAgcmVjb25jaWxlQ2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MyLCBjdXJyZW50Mi5jaGlsZCwgbnVsbCwgcmVuZGVyTGFuZXMyKTsKICAgICAgICBjdXJyZW50MiA9IG1vdW50U3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4oCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIucGVuZGluZ1Byb3BzLmNoaWxkcmVuCiAgICAgICAgKTsKICAgICAgICBjdXJyZW50Mi5mbGFncyB8PSAyOwogICAgICAgIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlID0gbnVsbDsKICAgICAgICByZXR1cm4gY3VycmVudDI7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2NoZWR1bGVTdXNwZW5zZVdvcmtPbkZpYmVyKGZpYmVyLCByZW5kZXJMYW5lczIsIHByb3BhZ2F0aW9uUm9vdCkgewogICAgICAgIGZpYmVyLmxhbmVzIHw9IHJlbmRlckxhbmVzMjsKICAgICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlOwogICAgICAgIG51bGwgIT09IGFsdGVybmF0ZSAmJiAoYWx0ZXJuYXRlLmxhbmVzIHw9IHJlbmRlckxhbmVzMik7CiAgICAgICAgc2NoZWR1bGVDb250ZXh0V29ya09uUGFyZW50UGF0aCgKICAgICAgICAgIGZpYmVyLnJldHVybiwKICAgICAgICAgIHJlbmRlckxhbmVzMiwKICAgICAgICAgIHByb3BhZ2F0aW9uUm9vdAogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKHdvcmtJblByb2dyZXNzMiwgaXNCYWNrd2FyZHMsIHRhaWwsIGxhc3RDb250ZW50Um93LCB0YWlsTW9kZSwgdHJlZUZvcmtDb3VudDIpIHsKICAgICAgICB2YXIgcmVuZGVyU3RhdGUgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICBudWxsID09PSByZW5kZXJTdGF0ZSA/IHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlID0gewogICAgICAgICAgaXNCYWNrd2FyZHMsCiAgICAgICAgICByZW5kZXJpbmc6IG51bGwsCiAgICAgICAgICByZW5kZXJpbmdTdGFydFRpbWU6IDAsCiAgICAgICAgICBsYXN0OiBsYXN0Q29udGVudFJvdywKICAgICAgICAgIHRhaWwsCiAgICAgICAgICB0YWlsTW9kZSwKICAgICAgICAgIHRyZWVGb3JrQ291bnQ6IHRyZWVGb3JrQ291bnQyCiAgICAgICAgfSA6IChyZW5kZXJTdGF0ZS5pc0JhY2t3YXJkcyA9IGlzQmFja3dhcmRzLCByZW5kZXJTdGF0ZS5yZW5kZXJpbmcgPSBudWxsLCByZW5kZXJTdGF0ZS5yZW5kZXJpbmdTdGFydFRpbWUgPSAwLCByZW5kZXJTdGF0ZS5sYXN0ID0gbGFzdENvbnRlbnRSb3csIHJlbmRlclN0YXRlLnRhaWwgPSB0YWlsLCByZW5kZXJTdGF0ZS50YWlsTW9kZSA9IHRhaWxNb2RlLCByZW5kZXJTdGF0ZS50cmVlRm9ya0NvdW50ID0gdHJlZUZvcmtDb3VudDIpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVwZGF0ZVN1c3BlbnNlTGlzdENvbXBvbmVudChjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCByZW5kZXJMYW5lczIpIHsKICAgICAgICB2YXIgbmV4dFByb3BzID0gd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcywgcmV2ZWFsT3JkZXIgPSBuZXh0UHJvcHMucmV2ZWFsT3JkZXIsIHRhaWxNb2RlID0gbmV4dFByb3BzLnRhaWwsIG5ld0NoaWxkcmVuID0gbmV4dFByb3BzLmNoaWxkcmVuLCBzdXNwZW5zZUNvbnRleHQgPSBzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQ7CiAgICAgICAgKG5leHRQcm9wcyA9IDAgIT09IChzdXNwZW5zZUNvbnRleHQgJiBGb3JjZVN1c3BlbnNlRmFsbGJhY2spKSA/IChzdXNwZW5zZUNvbnRleHQgPSBzdXNwZW5zZUNvbnRleHQgJiBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzayB8IEZvcmNlU3VzcGVuc2VGYWxsYmFjaywgd29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDEyOCkgOiBzdXNwZW5zZUNvbnRleHQgJj0gU3VidHJlZVN1c3BlbnNlQ29udGV4dE1hc2s7CiAgICAgICAgcHVzaChzdXNwZW5zZVN0YWNrQ3Vyc29yLCBzdXNwZW5zZUNvbnRleHQsIHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgc3VzcGVuc2VDb250ZXh0ID0gbnVsbCA9PSByZXZlYWxPcmRlciA/ICJudWxsIiA6IHJldmVhbE9yZGVyOwogICAgICAgIGlmICgiZm9yd2FyZHMiICE9PSByZXZlYWxPcmRlciAmJiAidW5zdGFibGVfbGVnYWN5LWJhY2t3YXJkcyIgIT09IHJldmVhbE9yZGVyICYmICJ0b2dldGhlciIgIT09IHJldmVhbE9yZGVyICYmICJpbmRlcGVuZGVudCIgIT09IHJldmVhbE9yZGVyICYmICFkaWRXYXJuQWJvdXRSZXZlYWxPcmRlcltzdXNwZW5zZUNvbnRleHRdKQogICAgICAgICAgaWYgKGRpZFdhcm5BYm91dFJldmVhbE9yZGVyW3N1c3BlbnNlQ29udGV4dF0gPSB0cnVlLCBudWxsID09IHJldmVhbE9yZGVyKQogICAgICAgICAgICBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICdUaGUgZGVmYXVsdCBmb3IgdGhlIDxTdXNwZW5zZUxpc3QgcmV2ZWFsT3JkZXI9Ii4uLiI+IHByb3AgaXMgY2hhbmdpbmcuIFRvIGJlIGZ1dHVyZSBjb21wYXRpYmxlIHlvdSBtdXN0IGV4cGxpY3RseSBzcGVjaWZ5IGVpdGhlciAiaW5kZXBlbmRlbnQiICh0aGUgY3VycmVudCBkZWZhdWx0KSwgInRvZ2V0aGVyIiwgImZvcndhcmRzIiBvciAibGVnYWN5X3Vuc3RhYmxlLWJhY2t3YXJkcyIuJwogICAgICAgICAgICApOwogICAgICAgICAgZWxzZSBpZiAoImJhY2t3YXJkcyIgPT09IHJldmVhbE9yZGVyKQogICAgICAgICAgICBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICdUaGUgcmVuZGVyaW5nIG9yZGVyIG9mIDxTdXNwZW5zZUxpc3QgcmV2ZWFsT3JkZXI9ImJhY2t3YXJkcyI+IGlzIGNoYW5naW5nLiBUbyBiZSBmdXR1cmUgY29tcGF0aWJsZSB5b3UgbXVzdCBzcGVjaWZ5IHJldmVhbE9yZGVyPSJsZWdhY3lfdW5zdGFibGUtYmFja3dhcmRzIiBpbnN0ZWFkLicKICAgICAgICAgICAgKTsKICAgICAgICAgIGVsc2UgaWYgKCJzdHJpbmciID09PSB0eXBlb2YgcmV2ZWFsT3JkZXIpCiAgICAgICAgICAgIHN3aXRjaCAocmV2ZWFsT3JkZXIudG9Mb3dlckNhc2UoKSkgewogICAgICAgICAgICAgIGNhc2UgInRvZ2V0aGVyIjoKICAgICAgICAgICAgICBjYXNlICJmb3J3YXJkcyI6CiAgICAgICAgICAgICAgY2FzZSAiYmFja3dhcmRzIjoKICAgICAgICAgICAgICBjYXNlICJpbmRlcGVuZGVudCI6CiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgICAnIiVzIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gVXNlIGxvd2VyY2FzZSAiJXMiIGluc3RlYWQuJywKICAgICAgICAgICAgICAgICAgcmV2ZWFsT3JkZXIsCiAgICAgICAgICAgICAgICAgIHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKCkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlICJmb3J3YXJkIjoKICAgICAgICAgICAgICBjYXNlICJiYWNrd2FyZCI6CiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgICAnIiVzIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gUmVhY3QgdXNlcyB0aGUgLXMgc3VmZml4IGluIHRoZSBzcGVsbGluZy4gVXNlICIlc3MiIGluc3RlYWQuJywKICAgICAgICAgICAgICAgICAgcmV2ZWFsT3JkZXIsCiAgICAgICAgICAgICAgICAgIHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKCkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICAgJyIlcyIgaXMgbm90IGEgc3VwcG9ydGVkIHJldmVhbE9yZGVyIG9uIDxTdXNwZW5zZUxpc3QgLz4uIERpZCB5b3UgbWVhbiAiaW5kZXBlbmRlbnQiLCAidG9nZXRoZXIiLCAiZm9yd2FyZHMiIG9yICJiYWNrd2FyZHMiPycsCiAgICAgICAgICAgICAgICAgIHJldmVhbE9yZGVyCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgJyVzIGlzIG5vdCBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gRGlkIHlvdSBtZWFuICJpbmRlcGVuZGVudCIsICJ0b2dldGhlciIsICJmb3J3YXJkcyIgb3IgImJhY2t3YXJkcyI/JywKICAgICAgICAgICAgICByZXZlYWxPcmRlcgogICAgICAgICAgICApOwogICAgICAgIHN1c3BlbnNlQ29udGV4dCA9IG51bGwgPT0gdGFpbE1vZGUgPyAibnVsbCIgOiB0YWlsTW9kZTsKICAgICAgICBpZiAoIWRpZFdhcm5BYm91dFRhaWxPcHRpb25zW3N1c3BlbnNlQ29udGV4dF0pCiAgICAgICAgICBpZiAobnVsbCA9PSB0YWlsTW9kZSkgewogICAgICAgICAgICBpZiAoImZvcndhcmRzIiA9PT0gcmV2ZWFsT3JkZXIgfHwgImJhY2t3YXJkcyIgPT09IHJldmVhbE9yZGVyIHx8ICJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzIiA9PT0gcmV2ZWFsT3JkZXIpCiAgICAgICAgICAgICAgZGlkV2FybkFib3V0VGFpbE9wdGlvbnNbc3VzcGVuc2VDb250ZXh0XSA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAnVGhlIGRlZmF1bHQgZm9yIHRoZSA8U3VzcGVuc2VMaXN0IHRhaWw9Ii4uLiI+IHByb3AgaXMgY2hhbmdpbmcuIFRvIGJlIGZ1dHVyZSBjb21wYXRpYmxlIHlvdSBtdXN0IGV4cGxpY3RseSBzcGVjaWZ5IGVpdGhlciAidmlzaWJsZSIgKHRoZSBjdXJyZW50IGRlZmF1bHQpLCAiY29sbGFwc2VkIiBvciAiaGlkZGVuIi4nCiAgICAgICAgICAgICAgKTsKICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAidmlzaWJsZSIgIT09IHRhaWxNb2RlICYmICJjb2xsYXBzZWQiICE9PSB0YWlsTW9kZSAmJiAiaGlkZGVuIiAhPT0gdGFpbE1vZGUgPyAoZGlkV2FybkFib3V0VGFpbE9wdGlvbnNbc3VzcGVuc2VDb250ZXh0XSA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgJyIlcyIgaXMgbm90IGEgc3VwcG9ydGVkIHZhbHVlIGZvciB0YWlsIG9uIDxTdXNwZW5zZUxpc3QgLz4uIERpZCB5b3UgbWVhbiAidmlzaWJsZSIsICJjb2xsYXBzZWQiIG9yICJoaWRkZW4iPycsCiAgICAgICAgICAgICAgdGFpbE1vZGUKICAgICAgICAgICAgKSkgOiAiZm9yd2FyZHMiICE9PSByZXZlYWxPcmRlciAmJiAiYmFja3dhcmRzIiAhPT0gcmV2ZWFsT3JkZXIgJiYgInVuc3RhYmxlX2xlZ2FjeS1iYWNrd2FyZHMiICE9PSByZXZlYWxPcmRlciAmJiAoZGlkV2FybkFib3V0VGFpbE9wdGlvbnNbc3VzcGVuc2VDb250ZXh0XSA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgJzxTdXNwZW5zZUxpc3QgdGFpbD0iJXMiIC8+IGlzIG9ubHkgdmFsaWQgaWYgcmV2ZWFsT3JkZXIgaXMgImZvcndhcmRzIiBvciAiYmFja3dhcmRzIi4gRGlkIHlvdSBtZWFuIHRvIHNwZWNpZnkgcmV2ZWFsT3JkZXI9ImZvcndhcmRzIj8nLAogICAgICAgICAgICAgIHRhaWxNb2RlCiAgICAgICAgICAgICkpOwogICAgICAgIGE6IGlmICgoImZvcndhcmRzIiA9PT0gcmV2ZWFsT3JkZXIgfHwgImJhY2t3YXJkcyIgPT09IHJldmVhbE9yZGVyIHx8ICJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzIiA9PT0gcmV2ZWFsT3JkZXIpICYmIHZvaWQgMCAhPT0gbmV3Q2hpbGRyZW4gJiYgbnVsbCAhPT0gbmV3Q2hpbGRyZW4gJiYgZmFsc2UgIT09IG5ld0NoaWxkcmVuKQogICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKG5ld0NoaWxkcmVuKSkKICAgICAgICAgICAgZm9yIChzdXNwZW5zZUNvbnRleHQgPSAwOyBzdXNwZW5zZUNvbnRleHQgPCBuZXdDaGlsZHJlbi5sZW5ndGg7IHN1c3BlbnNlQ29udGV4dCsrKSB7CiAgICAgICAgICAgICAgaWYgKCF2YWxpZGF0ZVN1c3BlbnNlTGlzdE5lc3RlZENoaWxkKAogICAgICAgICAgICAgICAgbmV3Q2hpbGRyZW5bc3VzcGVuc2VDb250ZXh0XSwKICAgICAgICAgICAgICAgIHN1c3BlbnNlQ29udGV4dAogICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmIChzdXNwZW5zZUNvbnRleHQgPSBnZXRJdGVyYXRvckZuKG5ld0NoaWxkcmVuKSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHN1c3BlbnNlQ29udGV4dCkgewogICAgICAgICAgICBpZiAoc3VzcGVuc2VDb250ZXh0ID0gc3VzcGVuc2VDb250ZXh0LmNhbGwobmV3Q2hpbGRyZW4pKQogICAgICAgICAgICAgIGZvciAodmFyIHN0ZXAgPSBzdXNwZW5zZUNvbnRleHQubmV4dCgpLCBfaSA9IDA7ICFzdGVwLmRvbmU7IHN0ZXAgPSBzdXNwZW5zZUNvbnRleHQubmV4dCgpKSB7CiAgICAgICAgICAgICAgICBpZiAoIXZhbGlkYXRlU3VzcGVuc2VMaXN0TmVzdGVkQ2hpbGQoc3RlcC52YWx1ZSwgX2kpKSBicmVhayBhOwogICAgICAgICAgICAgICAgX2krKzsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAnQSBzaW5nbGUgcm93IHdhcyBwYXNzZWQgdG8gYSA8U3VzcGVuc2VMaXN0IHJldmVhbE9yZGVyPSIlcyIgLz4uIFRoaXMgaXMgbm90IHVzZWZ1bCBzaW5jZSBpdCBuZWVkcyBtdWx0aXBsZSByb3dzLiBEaWQgeW91IG1lYW4gdG8gcGFzcyBtdWx0aXBsZSBjaGlsZHJlbiBvciBhbiBhcnJheT8nLAogICAgICAgICAgICAgIHJldmVhbE9yZGVyCiAgICAgICAgICAgICk7CiAgICAgICAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudDIsIHdvcmtJblByb2dyZXNzMiwgbmV3Q2hpbGRyZW4sIHJlbmRlckxhbmVzMik7CiAgICAgICAgaXNIeWRyYXRpbmcgPyAod2FybklmTm90SHlkcmF0aW5nKCksIG5ld0NoaWxkcmVuID0gdHJlZUZvcmtDb3VudCkgOiBuZXdDaGlsZHJlbiA9IDA7CiAgICAgICAgaWYgKCFuZXh0UHJvcHMgJiYgbnVsbCAhPT0gY3VycmVudDIgJiYgMCAhPT0gKGN1cnJlbnQyLmZsYWdzICYgMTI4KSkKICAgICAgICAgIGE6IGZvciAoY3VycmVudDIgPSB3b3JrSW5Qcm9ncmVzczIuY2hpbGQ7IG51bGwgIT09IGN1cnJlbnQyOyApIHsKICAgICAgICAgICAgaWYgKDEzID09PSBjdXJyZW50Mi50YWcpCiAgICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZSAmJiBzY2hlZHVsZVN1c3BlbnNlV29ya09uRmliZXIoY3VycmVudDIsIHJlbmRlckxhbmVzMiwgd29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgZWxzZSBpZiAoMTkgPT09IGN1cnJlbnQyLnRhZykKICAgICAgICAgICAgICBzY2hlZHVsZVN1c3BlbnNlV29ya09uRmliZXIoY3VycmVudDIsIHJlbmRlckxhbmVzMiwgd29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgZWxzZSBpZiAobnVsbCAhPT0gY3VycmVudDIuY2hpbGQpIHsKICAgICAgICAgICAgICBjdXJyZW50Mi5jaGlsZC5yZXR1cm4gPSBjdXJyZW50MjsKICAgICAgICAgICAgICBjdXJyZW50MiA9IGN1cnJlbnQyLmNoaWxkOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjdXJyZW50MiA9PT0gd29ya0luUHJvZ3Jlc3MyKSBicmVhayBhOwogICAgICAgICAgICBmb3IgKDsgbnVsbCA9PT0gY3VycmVudDIuc2libGluZzsgKSB7CiAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQyLnJldHVybiB8fCBjdXJyZW50Mi5yZXR1cm4gPT09IHdvcmtJblByb2dyZXNzMikKICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgY3VycmVudDIgPSBjdXJyZW50Mi5yZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3VycmVudDIuc2libGluZy5yZXR1cm4gPSBjdXJyZW50Mi5yZXR1cm47CiAgICAgICAgICAgIGN1cnJlbnQyID0gY3VycmVudDIuc2libGluZzsKICAgICAgICAgIH0KICAgICAgICBzd2l0Y2ggKHJldmVhbE9yZGVyKSB7CiAgICAgICAgICBjYXNlICJmb3J3YXJkcyI6CiAgICAgICAgICAgIHJlbmRlckxhbmVzMiA9IHdvcmtJblByb2dyZXNzMi5jaGlsZDsKICAgICAgICAgICAgZm9yIChyZXZlYWxPcmRlciA9IG51bGw7IG51bGwgIT09IHJlbmRlckxhbmVzMjsgKQogICAgICAgICAgICAgIGN1cnJlbnQyID0gcmVuZGVyTGFuZXMyLmFsdGVybmF0ZSwgbnVsbCAhPT0gY3VycmVudDIgJiYgbnVsbCA9PT0gZmluZEZpcnN0U3VzcGVuZGVkKGN1cnJlbnQyKSAmJiAocmV2ZWFsT3JkZXIgPSByZW5kZXJMYW5lczIpLCByZW5kZXJMYW5lczIgPSByZW5kZXJMYW5lczIuc2libGluZzsKICAgICAgICAgICAgcmVuZGVyTGFuZXMyID0gcmV2ZWFsT3JkZXI7CiAgICAgICAgICAgIG51bGwgPT09IHJlbmRlckxhbmVzMiA/IChyZXZlYWxPcmRlciA9IHdvcmtJblByb2dyZXNzMi5jaGlsZCwgd29ya0luUHJvZ3Jlc3MyLmNoaWxkID0gbnVsbCkgOiAocmV2ZWFsT3JkZXIgPSByZW5kZXJMYW5lczIuc2libGluZywgcmVuZGVyTGFuZXMyLnNpYmxpbmcgPSBudWxsKTsKICAgICAgICAgICAgaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICBmYWxzZSwKICAgICAgICAgICAgICByZXZlYWxPcmRlciwKICAgICAgICAgICAgICByZW5kZXJMYW5lczIsCiAgICAgICAgICAgICAgdGFpbE1vZGUsCiAgICAgICAgICAgICAgbmV3Q2hpbGRyZW4KICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJiYWNrd2FyZHMiOgogICAgICAgICAgY2FzZSAidW5zdGFibGVfbGVnYWN5LWJhY2t3YXJkcyI6CiAgICAgICAgICAgIHJlbmRlckxhbmVzMiA9IG51bGw7CiAgICAgICAgICAgIHJldmVhbE9yZGVyID0gd29ya0luUHJvZ3Jlc3MyLmNoaWxkOwogICAgICAgICAgICBmb3IgKHdvcmtJblByb2dyZXNzMi5jaGlsZCA9IG51bGw7IG51bGwgIT09IHJldmVhbE9yZGVyOyApIHsKICAgICAgICAgICAgICBjdXJyZW50MiA9IHJldmVhbE9yZGVyLmFsdGVybmF0ZTsKICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudDIgJiYgbnVsbCA9PT0gZmluZEZpcnN0U3VzcGVuZGVkKGN1cnJlbnQyKSkgewogICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLmNoaWxkID0gcmV2ZWFsT3JkZXI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY3VycmVudDIgPSByZXZlYWxPcmRlci5zaWJsaW5nOwogICAgICAgICAgICAgIHJldmVhbE9yZGVyLnNpYmxpbmcgPSByZW5kZXJMYW5lczI7CiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyID0gcmV2ZWFsT3JkZXI7CiAgICAgICAgICAgICAgcmV2ZWFsT3JkZXIgPSBjdXJyZW50MjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpbml0U3VzcGVuc2VMaXN0UmVuZGVyU3RhdGUoCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHRydWUsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyLAogICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgdGFpbE1vZGUsCiAgICAgICAgICAgICAgbmV3Q2hpbGRyZW4KICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJ0b2dldGhlciI6CiAgICAgICAgICAgIGluaXRTdXNwZW5zZUxpc3RSZW5kZXJTdGF0ZSgKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgZmFsc2UsCiAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgIHZvaWQgMCwKICAgICAgICAgICAgICBuZXdDaGlsZHJlbgogICAgICAgICAgICApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlID0gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzMi5jaGlsZDsKICAgICAgfQogICAgICBmdW5jdGlvbiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIHJlbmRlckxhbmVzMikgewogICAgICAgIG51bGwgIT09IGN1cnJlbnQyICYmICh3b3JrSW5Qcm9ncmVzczIuZGVwZW5kZW5jaWVzID0gY3VycmVudDIuZGVwZW5kZW5jaWVzKTsKICAgICAgICBwcm9maWxlclN0YXJ0VGltZSA9IC0xOwogICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyB8PSB3b3JrSW5Qcm9ncmVzczIubGFuZXM7CiAgICAgICAgaWYgKDAgPT09IChyZW5kZXJMYW5lczIgJiB3b3JrSW5Qcm9ncmVzczIuY2hpbGRMYW5lcykpCiAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudDIpIHsKICAgICAgICAgICAgaWYgKHByb3BhZ2F0ZVBhcmVudENvbnRleHRDaGFuZ2VzKAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICByZW5kZXJMYW5lczIsCiAgICAgICAgICAgICAgZmFsc2UKICAgICAgICAgICAgKSwgMCA9PT0gKHJlbmRlckxhbmVzMiAmIHdvcmtJblByb2dyZXNzMi5jaGlsZExhbmVzKSkKICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0gZWxzZSByZXR1cm4gbnVsbDsKICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudDIgJiYgd29ya0luUHJvZ3Jlc3MyLmNoaWxkICE9PSBjdXJyZW50Mi5jaGlsZCkKICAgICAgICAgIHRocm93IEVycm9yKCJSZXN1bWluZyB3b3JrIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7CiAgICAgICAgaWYgKG51bGwgIT09IHdvcmtJblByb2dyZXNzMi5jaGlsZCkgewogICAgICAgICAgY3VycmVudDIgPSB3b3JrSW5Qcm9ncmVzczIuY2hpbGQ7CiAgICAgICAgICByZW5kZXJMYW5lczIgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50MiwgY3VycmVudDIucGVuZGluZ1Byb3BzKTsKICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5jaGlsZCA9IHJlbmRlckxhbmVzMjsKICAgICAgICAgIGZvciAocmVuZGVyTGFuZXMyLnJldHVybiA9IHdvcmtJblByb2dyZXNzMjsgbnVsbCAhPT0gY3VycmVudDIuc2libGluZzsgKQogICAgICAgICAgICBjdXJyZW50MiA9IGN1cnJlbnQyLnNpYmxpbmcsIHJlbmRlckxhbmVzMiA9IHJlbmRlckxhbmVzMi5zaWJsaW5nID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MoY3VycmVudDIsIGN1cnJlbnQyLnBlbmRpbmdQcm9wcyksIHJlbmRlckxhbmVzMi5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgICByZW5kZXJMYW5lczIuc2libGluZyA9IG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzczIuY2hpbGQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY2hlY2tTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQoY3VycmVudDIsIHJlbmRlckxhbmVzMikgewogICAgICAgIGlmICgwICE9PSAoY3VycmVudDIubGFuZXMgJiByZW5kZXJMYW5lczIpKSByZXR1cm4gdHJ1ZTsKICAgICAgICBjdXJyZW50MiA9IGN1cnJlbnQyLmRlcGVuZGVuY2llczsKICAgICAgICByZXR1cm4gbnVsbCAhPT0gY3VycmVudDIgJiYgY2hlY2tJZkNvbnRleHRDaGFuZ2VkKGN1cnJlbnQyKSA/IHRydWUgOiBmYWxzZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhdHRlbXB0RWFybHlCYWlsb3V0SWZOb1NjaGVkdWxlZFVwZGF0ZShjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCByZW5kZXJMYW5lczIpIHsKICAgICAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzMi50YWcpIHsKICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgcHVzaEhvc3RDb250YWluZXIoCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbwogICAgICAgICAgICApOwogICAgICAgICAgICBwdXNoUHJvdmlkZXIoCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIENhY2hlQ29udGV4dCwKICAgICAgICAgICAgICBjdXJyZW50Mi5tZW1vaXplZFN0YXRlLmNhY2hlCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDI3OgogICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBwdXNoSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIHB1c2hIb3N0Q29udGFpbmVyKAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8KICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICBwdXNoUHJvdmlkZXIoCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi50eXBlLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFByb3BzLnZhbHVlCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgMCAhPT0gKHJlbmRlckxhbmVzMiAmIHdvcmtJblByb2dyZXNzMi5jaGlsZExhbmVzKSAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDQpOwogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMjA0ODsKICAgICAgICAgICAgdmFyIHN0YXRlTm9kZSA9IHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGU7CiAgICAgICAgICAgIHN0YXRlTm9kZS5lZmZlY3REdXJhdGlvbiA9IC0wOwogICAgICAgICAgICBzdGF0ZU5vZGUucGFzc2l2ZUVmZmVjdER1cmF0aW9uID0gLTA7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzMToKICAgICAgICAgICAgaWYgKG51bGwgIT09IHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlKQogICAgICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMTI4LCBwdXNoRGVoeWRyYXRlZEFjdGl2aXR5U3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMiksIG51bGw7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgc3RhdGVOb2RlID0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgICAgIGlmIChudWxsICE9PSBzdGF0ZU5vZGUpIHsKICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gc3RhdGVOb2RlLmRlaHlkcmF0ZWQpCiAgICAgICAgICAgICAgICByZXR1cm4gcHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMiksIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAxMjgsIG51bGw7CiAgICAgICAgICAgICAgaWYgKDAgIT09IChyZW5kZXJMYW5lczIgJiB3b3JrSW5Qcm9ncmVzczIuY2hpbGQuY2hpbGRMYW5lcykpCiAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlU3VzcGVuc2VDb21wb25lbnQoCiAgICAgICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICBwdXNoUHJpbWFyeVRyZWVTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgICBjdXJyZW50MiA9IGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoCiAgICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgcmV0dXJuIG51bGwgIT09IGN1cnJlbnQyID8gY3VycmVudDIuc2libGluZyA6IG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxOToKICAgICAgICAgICAgdmFyIGRpZFN1c3BlbmRCZWZvcmUgPSAwICE9PSAoY3VycmVudDIuZmxhZ3MgJiAxMjgpOwogICAgICAgICAgICBzdGF0ZU5vZGUgPSAwICE9PSAocmVuZGVyTGFuZXMyICYgd29ya0luUHJvZ3Jlc3MyLmNoaWxkTGFuZXMpOwogICAgICAgICAgICBzdGF0ZU5vZGUgfHwgKHByb3BhZ2F0ZVBhcmVudENvbnRleHRDaGFuZ2VzKAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICByZW5kZXJMYW5lczIsCiAgICAgICAgICAgICAgZmFsc2UKICAgICAgICAgICAgKSwgc3RhdGVOb2RlID0gMCAhPT0gKHJlbmRlckxhbmVzMiAmIHdvcmtJblByb2dyZXNzMi5jaGlsZExhbmVzKSk7CiAgICAgICAgICAgIGlmIChkaWRTdXNwZW5kQmVmb3JlKSB7CiAgICAgICAgICAgICAgaWYgKHN0YXRlTm9kZSkKICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVTdXNwZW5zZUxpc3RDb21wb25lbnQoCiAgICAgICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMTI4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRpZFN1c3BlbmRCZWZvcmUgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgICAgbnVsbCAhPT0gZGlkU3VzcGVuZEJlZm9yZSAmJiAoZGlkU3VzcGVuZEJlZm9yZS5yZW5kZXJpbmcgPSBudWxsLCBkaWRTdXNwZW5kQmVmb3JlLnRhaWwgPSBudWxsLCBkaWRTdXNwZW5kQmVmb3JlLmxhc3RFZmZlY3QgPSBudWxsKTsKICAgICAgICAgICAgcHVzaCgKICAgICAgICAgICAgICBzdXNwZW5zZVN0YWNrQ3Vyc29yLAogICAgICAgICAgICAgIHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKHN0YXRlTm9kZSkgYnJlYWs7CiAgICAgICAgICAgIGVsc2UgcmV0dXJuIG51bGw7CiAgICAgICAgICBjYXNlIDIyOgogICAgICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MyLmxhbmVzID0gMCwgdXBkYXRlT2Zmc2NyZWVuQ29tcG9uZW50KAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICByZW5kZXJMYW5lczIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcwogICAgICAgICAgICApOwogICAgICAgICAgY2FzZSAyNDoKICAgICAgICAgICAgcHVzaFByb3ZpZGVyKAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICBDYWNoZUNvbnRleHQsCiAgICAgICAgICAgICAgY3VycmVudDIubWVtb2l6ZWRTdGF0ZS5jYWNoZQogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCByZW5kZXJMYW5lczIpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGJlZ2luV29yayhjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCByZW5kZXJMYW5lczIpIHsKICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MyLl9kZWJ1Z05lZWRzUmVtb3VudCAmJiBudWxsICE9PSBjdXJyZW50MikgewogICAgICAgICAgcmVuZGVyTGFuZXMyID0gY3JlYXRlRmliZXJGcm9tVHlwZUFuZFByb3BzKAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIudHlwZSwKICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLmtleSwKICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcywKICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLl9kZWJ1Z093bmVyIHx8IG51bGwsCiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5tb2RlLAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIubGFuZXMKICAgICAgICAgICk7CiAgICAgICAgICByZW5kZXJMYW5lczIuX2RlYnVnU3RhY2sgPSB3b3JrSW5Qcm9ncmVzczIuX2RlYnVnU3RhY2s7CiAgICAgICAgICByZW5kZXJMYW5lczIuX2RlYnVnVGFzayA9IHdvcmtJblByb2dyZXNzMi5fZGVidWdUYXNrOwogICAgICAgICAgdmFyIHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MyLnJldHVybjsKICAgICAgICAgIGlmIChudWxsID09PSByZXR1cm5GaWJlcikgdGhyb3cgRXJyb3IoIkNhbm5vdCBzd2FwIHRoZSByb290IGZpYmVyLiIpOwogICAgICAgICAgY3VycmVudDIuYWx0ZXJuYXRlID0gbnVsbDsKICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5hbHRlcm5hdGUgPSBudWxsOwogICAgICAgICAgcmVuZGVyTGFuZXMyLmluZGV4ID0gd29ya0luUHJvZ3Jlc3MyLmluZGV4OwogICAgICAgICAgcmVuZGVyTGFuZXMyLnNpYmxpbmcgPSB3b3JrSW5Qcm9ncmVzczIuc2libGluZzsKICAgICAgICAgIHJlbmRlckxhbmVzMi5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzczIucmV0dXJuOwogICAgICAgICAgcmVuZGVyTGFuZXMyLnJlZiA9IHdvcmtJblByb2dyZXNzMi5yZWY7CiAgICAgICAgICByZW5kZXJMYW5lczIuX2RlYnVnSW5mbyA9IHdvcmtJblByb2dyZXNzMi5fZGVidWdJbmZvOwogICAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzMiA9PT0gcmV0dXJuRmliZXIuY2hpbGQpCiAgICAgICAgICAgIHJldHVybkZpYmVyLmNoaWxkID0gcmVuZGVyTGFuZXMyOwogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHZhciBwcmV2U2libGluZyA9IHJldHVybkZpYmVyLmNoaWxkOwogICAgICAgICAgICBpZiAobnVsbCA9PT0gcHJldlNpYmxpbmcpCiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIkV4cGVjdGVkIHBhcmVudCB0byBoYXZlIGEgY2hpbGQuIik7CiAgICAgICAgICAgIGZvciAoOyBwcmV2U2libGluZy5zaWJsaW5nICE9PSB3b3JrSW5Qcm9ncmVzczI7ICkKICAgICAgICAgICAgICBpZiAocHJldlNpYmxpbmcgPSBwcmV2U2libGluZy5zaWJsaW5nLCBudWxsID09PSBwcmV2U2libGluZykKICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCJFeHBlY3RlZCB0byBmaW5kIHRoZSBwcmV2aW91cyBzaWJsaW5nLiIpOwogICAgICAgICAgICBwcmV2U2libGluZy5zaWJsaW5nID0gcmVuZGVyTGFuZXMyOwogICAgICAgICAgfQogICAgICAgICAgd29ya0luUHJvZ3Jlc3MyID0gcmV0dXJuRmliZXIuZGVsZXRpb25zOwogICAgICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3MyID8gKHJldHVybkZpYmVyLmRlbGV0aW9ucyA9IFtjdXJyZW50Ml0sIHJldHVybkZpYmVyLmZsYWdzIHw9IDE2KSA6IHdvcmtJblByb2dyZXNzMi5wdXNoKGN1cnJlbnQyKTsKICAgICAgICAgIHJlbmRlckxhbmVzMi5mbGFncyB8PSAyOwogICAgICAgICAgcmV0dXJuIHJlbmRlckxhbmVzMjsKICAgICAgICB9CiAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQyKQogICAgICAgICAgaWYgKGN1cnJlbnQyLm1lbW9pemVkUHJvcHMgIT09IHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMgfHwgd29ya0luUHJvZ3Jlc3MyLnR5cGUgIT09IGN1cnJlbnQyLnR5cGUpCiAgICAgICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSB0cnVlOwogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmICghY2hlY2tTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQoY3VycmVudDIsIHJlbmRlckxhbmVzMikgJiYgMCA9PT0gKHdvcmtJblByb2dyZXNzMi5mbGFncyAmIDEyOCkpCiAgICAgICAgICAgICAgcmV0dXJuIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZSwgYXR0ZW1wdEVhcmx5QmFpbG91dElmTm9TY2hlZHVsZWRVcGRhdGUoCiAgICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSAwICE9PSAoY3VycmVudDIuZmxhZ3MgJiAxMzEwNzIpID8gdHJ1ZSA6IGZhbHNlOwogICAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgZGlkUmVjZWl2ZVVwZGF0ZSA9IGZhbHNlOwogICAgICAgICAgaWYgKHJldHVybkZpYmVyID0gaXNIeWRyYXRpbmcpCiAgICAgICAgICAgIHdhcm5JZk5vdEh5ZHJhdGluZygpLCByZXR1cm5GaWJlciA9IDAgIT09ICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgJiAxMDQ4NTc2KTsKICAgICAgICAgIHJldHVybkZpYmVyICYmIChyZXR1cm5GaWJlciA9IHdvcmtJblByb2dyZXNzMi5pbmRleCwgd2FybklmTm90SHlkcmF0aW5nKCksIHB1c2hUcmVlSWQod29ya0luUHJvZ3Jlc3MyLCB0cmVlRm9ya0NvdW50LCByZXR1cm5GaWJlcikpOwogICAgICAgIH0KICAgICAgICB3b3JrSW5Qcm9ncmVzczIubGFuZXMgPSAwOwogICAgICAgIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MyLnRhZykgewogICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgYTogaWYgKHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcywgY3VycmVudDIgPSByZXNvbHZlTGF6eSh3b3JrSW5Qcm9ncmVzczIuZWxlbWVudFR5cGUpLCB3b3JrSW5Qcm9ncmVzczIudHlwZSA9IGN1cnJlbnQyLCAiZnVuY3Rpb24iID09PSB0eXBlb2YgY3VycmVudDIpCiAgICAgICAgICAgICAgc2hvdWxkQ29uc3RydWN0KGN1cnJlbnQyKSA/IChyZXR1cm5GaWJlciA9IHJlc29sdmVDbGFzc0NvbXBvbmVudFByb3BzKAogICAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgICByZXR1cm5GaWJlcgogICAgICAgICAgICAgICksIHdvcmtJblByb2dyZXNzMi50YWcgPSAxLCB3b3JrSW5Qcm9ncmVzczIudHlwZSA9IGN1cnJlbnQyID0gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKGN1cnJlbnQyKSwgd29ya0luUHJvZ3Jlc3MyID0gdXBkYXRlQ2xhc3NDb21wb25lbnQoCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICAgICkpIDogKHdvcmtJblByb2dyZXNzMi50YWcgPSAwLCB2YWxpZGF0ZUZ1bmN0aW9uQ29tcG9uZW50SW5EZXYod29ya0luUHJvZ3Jlc3MyLCBjdXJyZW50MiksIHdvcmtJblByb2dyZXNzMi50eXBlID0gY3VycmVudDIgPSByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcoY3VycmVudDIpLCB3b3JrSW5Qcm9ncmVzczIgPSB1cGRhdGVGdW5jdGlvbkNvbXBvbmVudCgKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIGlmICh2b2lkIDAgIT09IGN1cnJlbnQyICYmIG51bGwgIT09IGN1cnJlbnQyKSB7CiAgICAgICAgICAgICAgICBpZiAocHJldlNpYmxpbmcgPSBjdXJyZW50Mi4kJHR5cGVvZiwgcHJldlNpYmxpbmcgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUpIHsKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnRhZyA9IDExOwogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIudHlwZSA9IGN1cnJlbnQyID0gcmVzb2x2ZUZvcndhcmRSZWZGb3JIb3RSZWxvYWRpbmcoY3VycmVudDIpOwogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIgPSB1cGRhdGVGb3J3YXJkUmVmKAogICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2libGluZyA9PT0gUkVBQ1RfTUVNT19UWVBFKSB7CiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi50YWcgPSAxNDsKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyID0gdXBkYXRlTWVtb0NvbXBvbmVudCgKICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyID0gIiI7CiAgICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudDIgJiYgIm9iamVjdCIgPT09IHR5cGVvZiBjdXJyZW50MiAmJiBjdXJyZW50Mi4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFICYmICh3b3JrSW5Qcm9ncmVzczIgPSAiIERpZCB5b3Ugd3JhcCBhIGNvbXBvbmVudCBpbiBSZWFjdC5sYXp5KCkgbW9yZSB0aGFuIG9uY2U/Iik7CiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGN1cnJlbnQyKSB8fCBjdXJyZW50MjsKICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICJFbGVtZW50IHR5cGUgaXMgaW52YWxpZC4gUmVjZWl2ZWQgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG86ICIgKyByZW5kZXJMYW5lczIgKyAiLiBMYXp5IGVsZW1lbnQgdHlwZSBtdXN0IHJlc29sdmUgdG8gYSBjbGFzcyBvciBmdW5jdGlvbi4iICsgd29ya0luUHJvZ3Jlc3MyCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MyOwogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICByZXR1cm4gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQoCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi50eXBlLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICk7CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHJldHVybiByZXR1cm5GaWJlciA9IHdvcmtJblByb2dyZXNzMi50eXBlLCBwcmV2U2libGluZyA9IHJlc29sdmVDbGFzc0NvbXBvbmVudFByb3BzKAogICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMKICAgICAgICAgICAgKSwgdXBkYXRlQ2xhc3NDb21wb25lbnQoCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgIHByZXZTaWJsaW5nLAogICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICApOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICBhOiB7CiAgICAgICAgICAgICAgcHVzaEhvc3RDb250YWluZXIoCiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8KICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGlmIChudWxsID09PSBjdXJyZW50MikKICAgICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgICAiU2hvdWxkIGhhdmUgYSBjdXJyZW50IGZpYmVyLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgcmV0dXJuRmliZXIgPSB3b3JrSW5Qcm9ncmVzczIucGVuZGluZ1Byb3BzOwogICAgICAgICAgICAgIHZhciBwcmV2U3RhdGUgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgICAgICBwcmV2U2libGluZyA9IHByZXZTdGF0ZS5lbGVtZW50OwogICAgICAgICAgICAgIGNsb25lVXBkYXRlUXVldWUoY3VycmVudDIsIHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgICAgcHJvY2Vzc1VwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzMiwgcmV0dXJuRmliZXIsIG51bGwsIHJlbmRlckxhbmVzMik7CiAgICAgICAgICAgICAgdmFyIG5leHRTdGF0ZSA9IHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlOwogICAgICAgICAgICAgIHJldHVybkZpYmVyID0gbmV4dFN0YXRlLmNhY2hlOwogICAgICAgICAgICAgIHB1c2hQcm92aWRlcih3b3JrSW5Qcm9ncmVzczIsIENhY2hlQ29udGV4dCwgcmV0dXJuRmliZXIpOwogICAgICAgICAgICAgIHJldHVybkZpYmVyICE9PSBwcmV2U3RhdGUuY2FjaGUgJiYgcHJvcGFnYXRlQ29udGV4dENoYW5nZXMoCiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgICBbQ2FjaGVDb250ZXh0XSwKICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMiwKICAgICAgICAgICAgICAgIHRydWUKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHN1c3BlbmRJZlVwZGF0ZVJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24oKTsKICAgICAgICAgICAgICByZXR1cm5GaWJlciA9IG5leHRTdGF0ZS5lbGVtZW50OwogICAgICAgICAgICAgIGlmIChwcmV2U3RhdGUuaXNEZWh5ZHJhdGVkKQogICAgICAgICAgICAgICAgaWYgKHByZXZTdGF0ZSA9IHsKICAgICAgICAgICAgICAgICAgZWxlbWVudDogcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgICAgIGlzRGVoeWRyYXRlZDogZmFsc2UsCiAgICAgICAgICAgICAgICAgIGNhY2hlOiBuZXh0U3RhdGUuY2FjaGUKICAgICAgICAgICAgICAgIH0sIHdvcmtJblByb2dyZXNzMi51cGRhdGVRdWV1ZS5iYXNlU3RhdGUgPSBwcmV2U3RhdGUsIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlID0gcHJldlN0YXRlLCB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgJiAyNTYpIHsKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyID0gbW91bnRIb3N0Um9vdFdpdGhvdXRIeWRyYXRpbmcoCiAgICAgICAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXR1cm5GaWJlciAhPT0gcHJldlNpYmxpbmcpIHsKICAgICAgICAgICAgICAgICAgcHJldlNpYmxpbmcgPSBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcigKICAgICAgICAgICAgICAgICAgICBFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICJUaGlzIHJvb3QgcmVjZWl2ZWQgYW4gZWFybHkgdXBkYXRlLCBiZWZvcmUgYW55dGhpbmcgd2FzIGFibGUgaHlkcmF0ZS4gU3dpdGNoZWQgdGhlIGVudGlyZSByb290IHRvIGNsaWVudCByZW5kZXJpbmcuIgogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIHF1ZXVlSHlkcmF0aW9uRXJyb3IocHJldlNpYmxpbmcpOwogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIgPSBtb3VudEhvc3RSb290V2l0aG91dEh5ZHJhdGluZygKICAgICAgICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICBjdXJyZW50MiA9IHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzsKICAgICAgICAgICAgICAgICAgc3dpdGNoIChjdXJyZW50Mi5ub2RlVHlwZSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQyID0gY3VycmVudDIuYm9keTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50MiA9ICJIVE1MIiA9PT0gY3VycmVudDIubm9kZU5hbWUgPyBjdXJyZW50Mi5vd25lckRvY3VtZW50LmJvZHkgOiBjdXJyZW50MjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0TmV4dEh5ZHJhdGFibGUoY3VycmVudDIuZmlyc3RDaGlsZCk7CiAgICAgICAgICAgICAgICAgIGh5ZHJhdGlvblBhcmVudEZpYmVyID0gd29ya0luUHJvZ3Jlc3MyOwogICAgICAgICAgICAgICAgICBpc0h5ZHJhdGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGh5ZHJhdGlvbkVycm9ycyA9IG51bGw7CiAgICAgICAgICAgICAgICAgIGRpZFN1c3BlbmRPckVycm9yREVWID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgIGh5ZHJhdGlvbkRpZmZSb290REVWID0gbnVsbDsKICAgICAgICAgICAgICAgICAgcm9vdE9yU2luZ2xldG9uQ29udGV4dCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMiA9IG1vdW50Q2hpbGRGaWJlcnMoCiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGZvciAod29ya0luUHJvZ3Jlc3MyLmNoaWxkID0gcmVuZGVyTGFuZXMyOyByZW5kZXJMYW5lczI7ICkKICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lczIuZmxhZ3MgPSByZW5kZXJMYW5lczIuZmxhZ3MgJiAtMyB8IDQwOTYsIHJlbmRlckxhbmVzMiA9IHJlbmRlckxhbmVzMi5zaWJsaW5nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgcmVzZXRIeWRyYXRpb25TdGF0ZSgpOwogICAgICAgICAgICAgICAgaWYgKHJldHVybkZpYmVyID09PSBwcmV2U2libGluZykgewogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIgPSBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKAogICAgICAgICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJlY29uY2lsZUNoaWxkcmVuKAogICAgICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIgPSB3b3JrSW5Qcm9ncmVzczIuY2hpbGQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzMjsKICAgICAgICAgIGNhc2UgMjY6CiAgICAgICAgICAgIHJldHVybiBtYXJrUmVmKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIpLCBudWxsID09PSBjdXJyZW50MiA/IChyZW5kZXJMYW5lczIgPSBnZXRSZXNvdXJjZSgKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIudHlwZSwKICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMsCiAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICApKSA/IHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlID0gcmVuZGVyTGFuZXMyIDogaXNIeWRyYXRpbmcgfHwgKHJlbmRlckxhbmVzMiA9IHdvcmtJblByb2dyZXNzMi50eXBlLCBjdXJyZW50MiA9IHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMsIHJldHVybkZpYmVyID0gcmVxdWlyZWRDb250ZXh0KAogICAgICAgICAgICAgIHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnQKICAgICAgICAgICAgKSwgcmV0dXJuRmliZXIgPSBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIoCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIKICAgICAgICAgICAgKS5jcmVhdGVFbGVtZW50KHJlbmRlckxhbmVzMiksIHJldHVybkZpYmVyW2ludGVybmFsSW5zdGFuY2VLZXldID0gd29ya0luUHJvZ3Jlc3MyLCByZXR1cm5GaWJlcltpbnRlcm5hbFByb3BzS2V5XSA9IGN1cnJlbnQyLCBzZXRJbml0aWFsUHJvcGVydGllcyhyZXR1cm5GaWJlciwgcmVuZGVyTGFuZXMyLCBjdXJyZW50MiksIG1hcmtOb2RlQXNIb2lzdGFibGUocmV0dXJuRmliZXIpLCB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlID0gcmV0dXJuRmliZXIpIDogd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgPSBnZXRSZXNvdXJjZSgKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIudHlwZSwKICAgICAgICAgICAgICBjdXJyZW50Mi5tZW1vaXplZFByb3BzLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMsCiAgICAgICAgICAgICAgY3VycmVudDIubWVtb2l6ZWRTdGF0ZQogICAgICAgICAgICApLCBudWxsOwogICAgICAgICAgY2FzZSAyNzoKICAgICAgICAgICAgcmV0dXJuIHB1c2hIb3N0Q29udGV4dCh3b3JrSW5Qcm9ncmVzczIpLCBudWxsID09PSBjdXJyZW50MiAmJiBpc0h5ZHJhdGluZyAmJiAocmV0dXJuRmliZXIgPSByZXF1aXJlZENvbnRleHQocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IuY3VycmVudCksIHByZXZTaWJsaW5nID0gZ2V0SG9zdENvbnRleHQoKSwgcmV0dXJuRmliZXIgPSB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlID0gcmVzb2x2ZVNpbmdsZXRvbkluc3RhbmNlKAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi50eXBlLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMsCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgcHJldlNpYmxpbmcsCiAgICAgICAgICAgICAgZmFsc2UKICAgICAgICAgICAgKSwgZGlkU3VzcGVuZE9yRXJyb3JERVYgfHwgKHByZXZTaWJsaW5nID0gZGlmZkh5ZHJhdGVkUHJvcGVydGllcygKICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIudHlwZSwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIucGVuZGluZ1Byb3BzLAogICAgICAgICAgICAgIHByZXZTaWJsaW5nCiAgICAgICAgICAgICksIG51bGwgIT09IHByZXZTaWJsaW5nICYmIChidWlsZEh5ZHJhdGlvbkRpZmZOb2RlKHdvcmtJblByb2dyZXNzMiwgMCkuc2VydmVyUHJvcHMgPSBwcmV2U2libGluZykpLCBoeWRyYXRpb25QYXJlbnRGaWJlciA9IHdvcmtJblByb2dyZXNzMiwgcm9vdE9yU2luZ2xldG9uQ29udGV4dCA9IHRydWUsIHByZXZTaWJsaW5nID0gbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSwgaXNTaW5nbGV0b25TY29wZSh3b3JrSW5Qcm9ncmVzczIudHlwZSkgPyAocHJldmlvdXNIeWRyYXRhYmxlT25FbnRlcmluZ1Njb3BlZFNpbmdsZXRvbiA9IHByZXZTaWJsaW5nLCBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0TmV4dEh5ZHJhdGFibGUoCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIuZmlyc3RDaGlsZAogICAgICAgICAgICApKSA6IG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBwcmV2U2libGluZyksIHJlY29uY2lsZUNoaWxkcmVuKAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLAogICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICApLCBtYXJrUmVmKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIpLCBudWxsID09PSBjdXJyZW50MiAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDQxOTQzMDQpLCB3b3JrSW5Qcm9ncmVzczIuY2hpbGQ7CiAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIHJldHVybiBudWxsID09PSBjdXJyZW50MiAmJiBpc0h5ZHJhdGluZyAmJiAocHJldlN0YXRlID0gZ2V0SG9zdENvbnRleHQoKSwgcmV0dXJuRmliZXIgPSB2YWxpZGF0ZURPTU5lc3RpbmcoCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnR5cGUsCiAgICAgICAgICAgICAgcHJldlN0YXRlLmFuY2VzdG9ySW5mbwogICAgICAgICAgICApLCBwcmV2U2libGluZyA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2UsIChuZXh0U3RhdGUgPSAhcHJldlNpYmxpbmcpIHx8IChuZXh0U3RhdGUgPSBjYW5IeWRyYXRlSW5zdGFuY2UoCiAgICAgICAgICAgICAgcHJldlNpYmxpbmcsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnR5cGUsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcywKICAgICAgICAgICAgICByb290T3JTaW5nbGV0b25Db250ZXh0CiAgICAgICAgICAgICksIG51bGwgIT09IG5leHRTdGF0ZSA/ICh3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlID0gbmV4dFN0YXRlLCBkaWRTdXNwZW5kT3JFcnJvckRFViB8fCAocHJldlN0YXRlID0gZGlmZkh5ZHJhdGVkUHJvcGVydGllcygKICAgICAgICAgICAgICBuZXh0U3RhdGUsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnR5cGUsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcywKICAgICAgICAgICAgICBwcmV2U3RhdGUKICAgICAgICAgICAgKSwgbnVsbCAhPT0gcHJldlN0YXRlICYmIChidWlsZEh5ZHJhdGlvbkRpZmZOb2RlKHdvcmtJblByb2dyZXNzMiwgMCkuc2VydmVyUHJvcHMgPSBwcmV2U3RhdGUpKSwgaHlkcmF0aW9uUGFyZW50RmliZXIgPSB3b3JrSW5Qcm9ncmVzczIsIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZSgKICAgICAgICAgICAgICBuZXh0U3RhdGUuZmlyc3RDaGlsZAogICAgICAgICAgICApLCByb290T3JTaW5nbGV0b25Db250ZXh0ID0gZmFsc2UsIHByZXZTdGF0ZSA9IHRydWUpIDogcHJldlN0YXRlID0gZmFsc2UsIG5leHRTdGF0ZSA9ICFwcmV2U3RhdGUpLCBuZXh0U3RhdGUgJiYgKHJldHVybkZpYmVyICYmIHdhcm5Ob25IeWRyYXRlZEluc3RhbmNlKHdvcmtJblByb2dyZXNzMiwgcHJldlNpYmxpbmcpLCB0aHJvd09uSHlkcmF0aW9uTWlzbWF0Y2god29ya0luUHJvZ3Jlc3MyKSkpLCBwdXNoSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MyKSwgcHJldlNpYmxpbmcgPSB3b3JrSW5Qcm9ncmVzczIudHlwZSwgcHJldlN0YXRlID0gd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcywgbmV4dFN0YXRlID0gbnVsbCAhPT0gY3VycmVudDIgPyBjdXJyZW50Mi5tZW1vaXplZFByb3BzIDogbnVsbCwgcmV0dXJuRmliZXIgPSBwcmV2U3RhdGUuY2hpbGRyZW4sIHNob3VsZFNldFRleHRDb250ZW50KHByZXZTaWJsaW5nLCBwcmV2U3RhdGUpID8gcmV0dXJuRmliZXIgPSBudWxsIDogbnVsbCAhPT0gbmV4dFN0YXRlICYmIHNob3VsZFNldFRleHRDb250ZW50KHByZXZTaWJsaW5nLCBuZXh0U3RhdGUpICYmICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMzIpLCBudWxsICE9PSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSAmJiAocHJldlNpYmxpbmcgPSByZW5kZXJXaXRoSG9va3MoCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIFRyYW5zaXRpb25Bd2FyZUhvc3RDb21wb25lbnQsCiAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICApLCBIb3N0VHJhbnNpdGlvbkNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IHByZXZTaWJsaW5nKSwgbWFya1JlZihjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyKSwgcmVjb25jaWxlQ2hpbGRyZW4oCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHJldHVybkZpYmVyLAogICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICApLCB3b3JrSW5Qcm9ncmVzczIuY2hpbGQ7CiAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgIHJldHVybiBudWxsID09PSBjdXJyZW50MiAmJiBpc0h5ZHJhdGluZyAmJiAocmVuZGVyTGFuZXMyID0gd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcywgY3VycmVudDIgPSBnZXRIb3N0Q29udGV4dCgpLCByZXR1cm5GaWJlciA9IGN1cnJlbnQyLmFuY2VzdG9ySW5mby5jdXJyZW50LCByZW5kZXJMYW5lczIgPSBudWxsICE9IHJldHVybkZpYmVyID8gdmFsaWRhdGVUZXh0TmVzdGluZygKICAgICAgICAgICAgICByZW5kZXJMYW5lczIsCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIudGFnLAogICAgICAgICAgICAgIGN1cnJlbnQyLmFuY2VzdG9ySW5mby5pbXBsaWNpdFJvb3RTY29wZQogICAgICAgICAgICApIDogdHJ1ZSwgY3VycmVudDIgPSBuZXh0SHlkcmF0YWJsZUluc3RhbmNlLCAocmV0dXJuRmliZXIgPSAhY3VycmVudDIpIHx8IChyZXR1cm5GaWJlciA9IGNhbkh5ZHJhdGVUZXh0SW5zdGFuY2UoCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcywKICAgICAgICAgICAgICByb290T3JTaW5nbGV0b25Db250ZXh0CiAgICAgICAgICAgICksIG51bGwgIT09IHJldHVybkZpYmVyID8gKHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGUgPSByZXR1cm5GaWJlciwgaHlkcmF0aW9uUGFyZW50RmliZXIgPSB3b3JrSW5Qcm9ncmVzczIsIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBudWxsLCByZXR1cm5GaWJlciA9IHRydWUpIDogcmV0dXJuRmliZXIgPSBmYWxzZSwgcmV0dXJuRmliZXIgPSAhcmV0dXJuRmliZXIpLCByZXR1cm5GaWJlciAmJiAocmVuZGVyTGFuZXMyICYmIHdhcm5Ob25IeWRyYXRlZEluc3RhbmNlKHdvcmtJblByb2dyZXNzMiwgY3VycmVudDIpLCB0aHJvd09uSHlkcmF0aW9uTWlzbWF0Y2god29ya0luUHJvZ3Jlc3MyKSkpLCBudWxsOwogICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlQ29tcG9uZW50KGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIHJlbmRlckxhbmVzMik7CiAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIHJldHVybiBwdXNoSG9zdENvbnRhaW5lcigKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvCiAgICAgICAgICAgICksIHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcywgbnVsbCA9PT0gY3VycmVudDIgPyB3b3JrSW5Qcm9ncmVzczIuY2hpbGQgPSByZWNvbmNpbGVDaGlsZEZpYmVycygKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICAgKSA6IHJlY29uY2lsZUNoaWxkcmVuKAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICByZXR1cm5GaWJlciwKICAgICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICAgKSwgd29ya0luUHJvZ3Jlc3MyLmNoaWxkOwogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZUZvcndhcmRSZWYoCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi50eXBlLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICk7CiAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZHJlbigKICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnBlbmRpbmdQcm9wcywKICAgICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICAgKSwgd29ya0luUHJvZ3Jlc3MyLmNoaWxkOwogICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICByZXR1cm4gcmVjb25jaWxlQ2hpbGRyZW4oCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICksIHdvcmtJblByb2dyZXNzMi5jaGlsZDsKICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gNCwgd29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDIwNDgsIHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZSwgcmV0dXJuRmliZXIuZWZmZWN0RHVyYXRpb24gPSAtMCwgcmV0dXJuRmliZXIucGFzc2l2ZUVmZmVjdER1cmF0aW9uID0gLTAsIHJlY29uY2lsZUNoaWxkcmVuKAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLAogICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICApLCB3b3JrSW5Qcm9ncmVzczIuY2hpbGQ7CiAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICByZXR1cm4gcmV0dXJuRmliZXIgPSB3b3JrSW5Qcm9ncmVzczIudHlwZSwgcHJldlNpYmxpbmcgPSB3b3JrSW5Qcm9ncmVzczIucGVuZGluZ1Byb3BzLCBwcmV2U3RhdGUgPSBwcmV2U2libGluZy52YWx1ZSwgInZhbHVlIiBpbiBwcmV2U2libGluZyB8fCBoYXNXYXJuZWRBYm91dFVzaW5nTm9WYWx1ZVByb3BPbkNvbnRleHRQcm92aWRlciB8fCAoaGFzV2FybmVkQWJvdXRVc2luZ05vVmFsdWVQcm9wT25Db250ZXh0UHJvdmlkZXIgPSB0cnVlLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICJUaGUgYHZhbHVlYCBwcm9wIGlzIHJlcXVpcmVkIGZvciB0aGUgYDxDb250ZXh0LlByb3ZpZGVyPmAuIERpZCB5b3UgbWlzc3BlbGwgaXQgb3IgZm9yZ2V0IHRvIHBhc3MgaXQ/IgogICAgICAgICAgICApKSwgcHVzaFByb3ZpZGVyKHdvcmtJblByb2dyZXNzMiwgcmV0dXJuRmliZXIsIHByZXZTdGF0ZSksIHJlY29uY2lsZUNoaWxkcmVuKAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICBwcmV2U2libGluZy5jaGlsZHJlbiwKICAgICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICAgKSwgd29ya0luUHJvZ3Jlc3MyLmNoaWxkOwogICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICByZXR1cm4gcHJldlNpYmxpbmcgPSB3b3JrSW5Qcm9ncmVzczIudHlwZS5fY29udGV4dCwgcmV0dXJuRmliZXIgPSB3b3JrSW5Qcm9ncmVzczIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLCAiZnVuY3Rpb24iICE9PSB0eXBlb2YgcmV0dXJuRmliZXIgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiQSBjb250ZXh0IGNvbnN1bWVyIHdhcyByZW5kZXJlZCB3aXRoIG11bHRpcGxlIGNoaWxkcmVuLCBvciBhIGNoaWxkIHRoYXQgaXNuJ3QgYSBmdW5jdGlvbi4gQSBjb250ZXh0IGNvbnN1bWVyIGV4cGVjdHMgYSBzaW5nbGUgY2hpbGQgdGhhdCBpcyBhIGZ1bmN0aW9uLiBJZiB5b3UgZGlkIHBhc3MgYSBmdW5jdGlvbiwgbWFrZSBzdXJlIHRoZXJlIGlzIG5vIHRyYWlsaW5nIG9yIGxlYWRpbmcgd2hpdGVzcGFjZSBhcm91bmQgaXQuIgogICAgICAgICAgICApLCBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzczIpLCBwcmV2U2libGluZyA9IHJlYWRDb250ZXh0KHByZXZTaWJsaW5nKSwgcmV0dXJuRmliZXIgPSBjYWxsQ29tcG9uZW50SW5ERVYoCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgcHJldlNpYmxpbmcsCiAgICAgICAgICAgICAgdm9pZCAwCiAgICAgICAgICAgICksIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAxLCByZWNvbmNpbGVDaGlsZHJlbigKICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICksIHdvcmtJblByb2dyZXNzMi5jaGlsZDsKICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgIHJldHVybiB1cGRhdGVNZW1vQ29tcG9uZW50KAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIudHlwZSwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIucGVuZGluZ1Byb3BzLAogICAgICAgICAgICAgIHJlbmRlckxhbmVzMgogICAgICAgICAgICApOwogICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVNpbXBsZU1lbW9Db21wb25lbnQoCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi50eXBlLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICk7CiAgICAgICAgICBjYXNlIDE5OgogICAgICAgICAgICByZXR1cm4gdXBkYXRlU3VzcGVuc2VMaXN0Q29tcG9uZW50KAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICAgKTsKICAgICAgICAgIGNhc2UgMzE6CiAgICAgICAgICAgIHJldHVybiB1cGRhdGVBY3Rpdml0eUNvbXBvbmVudChjdXJyZW50Miwgd29ya0luUHJvZ3Jlc3MyLCByZW5kZXJMYW5lczIpOwogICAgICAgICAgY2FzZSAyMjoKICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZU9mZnNjcmVlbkNvbXBvbmVudCgKICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMKICAgICAgICAgICAgKTsKICAgICAgICAgIGNhc2UgMjQ6CiAgICAgICAgICAgIHJldHVybiBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzczIpLCByZXR1cm5GaWJlciA9IHJlYWRDb250ZXh0KENhY2hlQ29udGV4dCksIG51bGwgPT09IGN1cnJlbnQyID8gKHByZXZTaWJsaW5nID0gcGVla0NhY2hlRnJvbVBvb2woKSwgbnVsbCA9PT0gcHJldlNpYmxpbmcgJiYgKHByZXZTaWJsaW5nID0gd29ya0luUHJvZ3Jlc3NSb290LCBwcmV2U3RhdGUgPSBjcmVhdGVDYWNoZSgpLCBwcmV2U2libGluZy5wb29sZWRDYWNoZSA9IHByZXZTdGF0ZSwgcmV0YWluQ2FjaGUocHJldlN0YXRlKSwgbnVsbCAhPT0gcHJldlN0YXRlICYmIChwcmV2U2libGluZy5wb29sZWRDYWNoZUxhbmVzIHw9IHJlbmRlckxhbmVzMiksIHByZXZTaWJsaW5nID0gcHJldlN0YXRlKSwgd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgPSB7CiAgICAgICAgICAgICAgcGFyZW50OiByZXR1cm5GaWJlciwKICAgICAgICAgICAgICBjYWNoZTogcHJldlNpYmxpbmcKICAgICAgICAgICAgfSwgaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzMiksIHB1c2hQcm92aWRlcih3b3JrSW5Qcm9ncmVzczIsIENhY2hlQ29udGV4dCwgcHJldlNpYmxpbmcpKSA6ICgwICE9PSAoY3VycmVudDIubGFuZXMgJiByZW5kZXJMYW5lczIpICYmIChjbG9uZVVwZGF0ZVF1ZXVlKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIpLCBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MyLCBudWxsLCBudWxsLCByZW5kZXJMYW5lczIpLCBzdXNwZW5kSWZVcGRhdGVSZWFkRnJvbUVudGFuZ2xlZEFzeW5jQWN0aW9uKCkpLCBwcmV2U2libGluZyA9IGN1cnJlbnQyLm1lbW9pemVkU3RhdGUsIHByZXZTdGF0ZSA9IHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlLCBwcmV2U2libGluZy5wYXJlbnQgIT09IHJldHVybkZpYmVyID8gKHByZXZTaWJsaW5nID0gewogICAgICAgICAgICAgIHBhcmVudDogcmV0dXJuRmliZXIsCiAgICAgICAgICAgICAgY2FjaGU6IHJldHVybkZpYmVyCiAgICAgICAgICAgIH0sIHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlID0gcHJldlNpYmxpbmcsIDAgPT09IHdvcmtJblByb2dyZXNzMi5sYW5lcyAmJiAod29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgPSB3b3JrSW5Qcm9ncmVzczIudXBkYXRlUXVldWUuYmFzZVN0YXRlID0gcHJldlNpYmxpbmcpLCBwdXNoUHJvdmlkZXIod29ya0luUHJvZ3Jlc3MyLCBDYWNoZUNvbnRleHQsIHJldHVybkZpYmVyKSkgOiAocmV0dXJuRmliZXIgPSBwcmV2U3RhdGUuY2FjaGUsIHB1c2hQcm92aWRlcih3b3JrSW5Qcm9ncmVzczIsIENhY2hlQ29udGV4dCwgcmV0dXJuRmliZXIpLCByZXR1cm5GaWJlciAhPT0gcHJldlNpYmxpbmcuY2FjaGUgJiYgcHJvcGFnYXRlQ29udGV4dENoYW5nZXMoCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIFtDYWNoZUNvbnRleHRdLAogICAgICAgICAgICAgIHJlbmRlckxhbmVzMiwKICAgICAgICAgICAgICB0cnVlCiAgICAgICAgICAgICkpKSwgcmVjb25jaWxlQ2hpbGRyZW4oCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICksIHdvcmtJblByb2dyZXNzMi5jaGlsZDsKICAgICAgICAgIGNhc2UgMjk6CiAgICAgICAgICAgIHRocm93IHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHM7CiAgICAgICAgfQogICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgIlVua25vd24gdW5pdCBvZiB3b3JrIHRhZyAoIiArIHdvcmtJblByb2dyZXNzMi50YWcgKyAiKS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzMikgewogICAgICAgIHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSA0OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHByZWxvYWRJbnN0YW5jZUFuZFN1c3BlbmRJZk5lZWRlZCh3b3JrSW5Qcm9ncmVzczIsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcywgcmVuZGVyTGFuZXMyKSB7CiAgICAgICAgaWYgKHR5cGUgPSAod29ya0luUHJvZ3Jlc3MyLm1vZGUgJiBTdXNwZW5zZXlJbWFnZXNNb2RlKSAhPT0gTm9Nb2RlKQogICAgICAgICAgdHlwZSA9IGZhbHNlOwogICAgICAgIGlmICh0eXBlKSB7CiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDE2Nzc3MjE2LCAocmVuZGVyTGFuZXMyICYgMzM1NTQ0MTI4KSA9PT0gcmVuZGVyTGFuZXMyKQogICAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZS5jb21wbGV0ZSkgd29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDgxOTI7CiAgICAgICAgICAgIGVsc2UgaWYgKHNob3VsZFJlbWFpbk9uUHJldmlvdXNTY3JlZW4oKSkgd29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDgxOTI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICB0aHJvdyBzdXNwZW5kZWRUaGVuYWJsZSA9IG5vb3BTdXNwZW5zZXlDb21taXRUaGVuYWJsZSwgU3VzcGVuc2V5Q29tbWl0RXhjZXB0aW9uOwogICAgICAgIH0gZWxzZSB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgJj0gLTE2Nzc3MjE3OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHByZWxvYWRSZXNvdXJjZUFuZFN1c3BlbmRJZk5lZWRlZCh3b3JrSW5Qcm9ncmVzczIsIHJlc291cmNlKSB7CiAgICAgICAgaWYgKCJzdHlsZXNoZWV0IiAhPT0gcmVzb3VyY2UudHlwZSB8fCAocmVzb3VyY2Uuc3RhdGUubG9hZGluZyAmIEluc2VydGVkKSAhPT0gTm90TG9hZGVkKQogICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLmZsYWdzICY9IC0xNjc3NzIxNzsKICAgICAgICBlbHNlIGlmICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMTY3NzcyMTYsICFwcmVsb2FkUmVzb3VyY2UocmVzb3VyY2UpKQogICAgICAgICAgaWYgKHNob3VsZFJlbWFpbk9uUHJldmlvdXNTY3JlZW4oKSkgd29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDgxOTI7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHRocm93IHN1c3BlbmRlZFRoZW5hYmxlID0gbm9vcFN1c3BlbnNleUNvbW1pdFRoZW5hYmxlLCBTdXNwZW5zZXlDb21taXRFeGNlcHRpb247CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2NoZWR1bGVSZXRyeUVmZmVjdCh3b3JrSW5Qcm9ncmVzczIsIHJldHJ5UXVldWUpIHsKICAgICAgICBudWxsICE9PSByZXRyeVF1ZXVlICYmICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gNCk7CiAgICAgICAgd29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgMTYzODQgJiYgKHJldHJ5UXVldWUgPSAyMiAhPT0gd29ya0luUHJvZ3Jlc3MyLnRhZyA/IGNsYWltTmV4dFJldHJ5TGFuZSgpIDogNTM2ODcwOTEyLCB3b3JrSW5Qcm9ncmVzczIubGFuZXMgfD0gcmV0cnlRdWV1ZSwgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZXRyeUxhbmVzIHw9IHJldHJ5UXVldWUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGN1dE9mZlRhaWxJZk5lZWRlZChyZW5kZXJTdGF0ZSwgaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrKSB7CiAgICAgICAgaWYgKCFpc0h5ZHJhdGluZykKICAgICAgICAgIHN3aXRjaCAocmVuZGVyU3RhdGUudGFpbE1vZGUpIHsKICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoKICAgICAgICAgICAgICBoYXNSZW5kZXJlZEFUYWlsRmFsbGJhY2sgPSByZW5kZXJTdGF0ZS50YWlsOwogICAgICAgICAgICAgIGZvciAodmFyIGxhc3RUYWlsTm9kZSA9IG51bGw7IG51bGwgIT09IGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjazsgKQogICAgICAgICAgICAgICAgbnVsbCAhPT0gaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrLmFsdGVybmF0ZSAmJiAobGFzdFRhaWxOb2RlID0gaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrKSwgaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrID0gaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrLnNpYmxpbmc7CiAgICAgICAgICAgICAgbnVsbCA9PT0gbGFzdFRhaWxOb2RlID8gcmVuZGVyU3RhdGUudGFpbCA9IG51bGwgOiBsYXN0VGFpbE5vZGUuc2libGluZyA9IG51bGw7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNvbGxhcHNlZCI6CiAgICAgICAgICAgICAgbGFzdFRhaWxOb2RlID0gcmVuZGVyU3RhdGUudGFpbDsKICAgICAgICAgICAgICBmb3IgKHZhciBfbGFzdFRhaWxOb2RlID0gbnVsbDsgbnVsbCAhPT0gbGFzdFRhaWxOb2RlOyApCiAgICAgICAgICAgICAgICBudWxsICE9PSBsYXN0VGFpbE5vZGUuYWx0ZXJuYXRlICYmIChfbGFzdFRhaWxOb2RlID0gbGFzdFRhaWxOb2RlKSwgbGFzdFRhaWxOb2RlID0gbGFzdFRhaWxOb2RlLnNpYmxpbmc7CiAgICAgICAgICAgICAgbnVsbCA9PT0gX2xhc3RUYWlsTm9kZSA/IGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjayB8fCBudWxsID09PSByZW5kZXJTdGF0ZS50YWlsID8gcmVuZGVyU3RhdGUudGFpbCA9IG51bGwgOiByZW5kZXJTdGF0ZS50YWlsLnNpYmxpbmcgPSBudWxsIDogX2xhc3RUYWlsTm9kZS5zaWJsaW5nID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBidWJibGVQcm9wZXJ0aWVzKGNvbXBsZXRlZFdvcmspIHsKICAgICAgICB2YXIgZGlkQmFpbG91dCA9IG51bGwgIT09IGNvbXBsZXRlZFdvcmsuYWx0ZXJuYXRlICYmIGNvbXBsZXRlZFdvcmsuYWx0ZXJuYXRlLmNoaWxkID09PSBjb21wbGV0ZWRXb3JrLmNoaWxkLCBuZXdDaGlsZExhbmVzID0gMCwgc3VidHJlZUZsYWdzID0gMDsKICAgICAgICBpZiAoZGlkQmFpbG91dCkKICAgICAgICAgIGlmICgoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHsKICAgICAgICAgICAgZm9yICh2YXIgX3RyZWVCYXNlRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLnNlbGZCYXNlRHVyYXRpb24sIF9jaGlsZDIgPSBjb21wbGV0ZWRXb3JrLmNoaWxkOyBudWxsICE9PSBfY2hpbGQyOyApCiAgICAgICAgICAgICAgbmV3Q2hpbGRMYW5lcyB8PSBfY2hpbGQyLmxhbmVzIHwgX2NoaWxkMi5jaGlsZExhbmVzLCBzdWJ0cmVlRmxhZ3MgfD0gX2NoaWxkMi5zdWJ0cmVlRmxhZ3MgJiA2NTAxMTcxMiwgc3VidHJlZUZsYWdzIHw9IF9jaGlsZDIuZmxhZ3MgJiA2NTAxMTcxMiwgX3RyZWVCYXNlRHVyYXRpb24gKz0gX2NoaWxkMi50cmVlQmFzZUR1cmF0aW9uLCBfY2hpbGQyID0gX2NoaWxkMi5zaWJsaW5nOwogICAgICAgICAgICBjb21wbGV0ZWRXb3JrLnRyZWVCYXNlRHVyYXRpb24gPSBfdHJlZUJhc2VEdXJhdGlvbjsKICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICBmb3IgKF90cmVlQmFzZUR1cmF0aW9uID0gY29tcGxldGVkV29yay5jaGlsZDsgbnVsbCAhPT0gX3RyZWVCYXNlRHVyYXRpb247ICkKICAgICAgICAgICAgICBuZXdDaGlsZExhbmVzIHw9IF90cmVlQmFzZUR1cmF0aW9uLmxhbmVzIHwgX3RyZWVCYXNlRHVyYXRpb24uY2hpbGRMYW5lcywgc3VidHJlZUZsYWdzIHw9IF90cmVlQmFzZUR1cmF0aW9uLnN1YnRyZWVGbGFncyAmIDY1MDExNzEyLCBzdWJ0cmVlRmxhZ3MgfD0gX3RyZWVCYXNlRHVyYXRpb24uZmxhZ3MgJiA2NTAxMTcxMiwgX3RyZWVCYXNlRHVyYXRpb24ucmV0dXJuID0gY29tcGxldGVkV29yaywgX3RyZWVCYXNlRHVyYXRpb24gPSBfdHJlZUJhc2VEdXJhdGlvbi5zaWJsaW5nOwogICAgICAgIGVsc2UgaWYgKChjb21wbGV0ZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSkgewogICAgICAgICAgX3RyZWVCYXNlRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uOwogICAgICAgICAgX2NoaWxkMiA9IGNvbXBsZXRlZFdvcmsuc2VsZkJhc2VEdXJhdGlvbjsKICAgICAgICAgIGZvciAodmFyIGNoaWxkID0gY29tcGxldGVkV29yay5jaGlsZDsgbnVsbCAhPT0gY2hpbGQ7ICkKICAgICAgICAgICAgbmV3Q2hpbGRMYW5lcyB8PSBjaGlsZC5sYW5lcyB8IGNoaWxkLmNoaWxkTGFuZXMsIHN1YnRyZWVGbGFncyB8PSBjaGlsZC5zdWJ0cmVlRmxhZ3MsIHN1YnRyZWVGbGFncyB8PSBjaGlsZC5mbGFncywgX3RyZWVCYXNlRHVyYXRpb24gKz0gY2hpbGQuYWN0dWFsRHVyYXRpb24sIF9jaGlsZDIgKz0gY2hpbGQudHJlZUJhc2VEdXJhdGlvbiwgY2hpbGQgPSBjaGlsZC5zaWJsaW5nOwogICAgICAgICAgY29tcGxldGVkV29yay5hY3R1YWxEdXJhdGlvbiA9IF90cmVlQmFzZUR1cmF0aW9uOwogICAgICAgICAgY29tcGxldGVkV29yay50cmVlQmFzZUR1cmF0aW9uID0gX2NoaWxkMjsKICAgICAgICB9IGVsc2UKICAgICAgICAgIGZvciAoX3RyZWVCYXNlRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLmNoaWxkOyBudWxsICE9PSBfdHJlZUJhc2VEdXJhdGlvbjsgKQogICAgICAgICAgICBuZXdDaGlsZExhbmVzIHw9IF90cmVlQmFzZUR1cmF0aW9uLmxhbmVzIHwgX3RyZWVCYXNlRHVyYXRpb24uY2hpbGRMYW5lcywgc3VidHJlZUZsYWdzIHw9IF90cmVlQmFzZUR1cmF0aW9uLnN1YnRyZWVGbGFncywgc3VidHJlZUZsYWdzIHw9IF90cmVlQmFzZUR1cmF0aW9uLmZsYWdzLCBfdHJlZUJhc2VEdXJhdGlvbi5yZXR1cm4gPSBjb21wbGV0ZWRXb3JrLCBfdHJlZUJhc2VEdXJhdGlvbiA9IF90cmVlQmFzZUR1cmF0aW9uLnNpYmxpbmc7CiAgICAgICAgY29tcGxldGVkV29yay5zdWJ0cmVlRmxhZ3MgfD0gc3VidHJlZUZsYWdzOwogICAgICAgIGNvbXBsZXRlZFdvcmsuY2hpbGRMYW5lcyA9IG5ld0NoaWxkTGFuZXM7CiAgICAgICAgcmV0dXJuIGRpZEJhaWxvdXQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tcGxldGVXb3JrKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIsIHJlbmRlckxhbmVzMikgewogICAgICAgIHZhciBuZXdQcm9wcyA9IHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHM7CiAgICAgICAgcG9wVHJlZUNvbnRleHQod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzMi50YWcpIHsKICAgICAgICAgIGNhc2UgMTY6CiAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgIGNhc2UgODoKICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICBjYXNlIDE0OgogICAgICAgICAgICByZXR1cm4gYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpLCBudWxsOwogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICByZXR1cm4gYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpLCBudWxsOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICByZW5kZXJMYW5lczIgPSB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlOwogICAgICAgICAgICBuZXdQcm9wcyA9IG51bGw7CiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQyICYmIChuZXdQcm9wcyA9IGN1cnJlbnQyLm1lbW9pemVkU3RhdGUuY2FjaGUpOwogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZS5jYWNoZSAhPT0gbmV3UHJvcHMgJiYgKHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSAyMDQ4KTsKICAgICAgICAgICAgcG9wUHJvdmlkZXIoQ2FjaGVDb250ZXh0LCB3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgICAgICBwb3BIb3N0Q29udGFpbmVyKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgIHJlbmRlckxhbmVzMi5wZW5kaW5nQ29udGV4dCAmJiAocmVuZGVyTGFuZXMyLmNvbnRleHQgPSByZW5kZXJMYW5lczIucGVuZGluZ0NvbnRleHQsIHJlbmRlckxhbmVzMi5wZW5kaW5nQ29udGV4dCA9IG51bGwpOwogICAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudDIgfHwgbnVsbCA9PT0gY3VycmVudDIuY2hpbGQpCiAgICAgICAgICAgICAgcG9wSHlkcmF0aW9uU3RhdGUod29ya0luUHJvZ3Jlc3MyKSA/IChlbWl0UGVuZGluZ0h5ZHJhdGlvbldhcm5pbmdzKCksIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MyKSkgOiBudWxsID09PSBjdXJyZW50MiB8fCBjdXJyZW50Mi5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCAmJiAwID09PSAod29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgMjU2KSB8fCAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDEwMjQsIHVwZ3JhZGVIeWRyYXRpb25FcnJvcnNUb1JlY292ZXJhYmxlKCkpOwogICAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgY2FzZSAyNjoKICAgICAgICAgICAgdmFyIHR5cGUgPSB3b3JrSW5Qcm9ncmVzczIudHlwZSwgbmV4dFJlc291cmNlID0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQyID8gKG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MyKSwgbnVsbCAhPT0gbmV4dFJlc291cmNlID8gKGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MyKSwgcHJlbG9hZFJlc291cmNlQW5kU3VzcGVuZElmTmVlZGVkKAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICBuZXh0UmVzb3VyY2UKICAgICAgICAgICAgKSkgOiAoYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpLCBwcmVsb2FkSW5zdGFuY2VBbmRTdXNwZW5kSWZOZWVkZWQoCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHR5cGUsCiAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICBuZXdQcm9wcywKICAgICAgICAgICAgICByZW5kZXJMYW5lczIKICAgICAgICAgICAgKSkpIDogbmV4dFJlc291cmNlID8gbmV4dFJlc291cmNlICE9PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlID8gKG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MyKSwgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpLCBwcmVsb2FkUmVzb3VyY2VBbmRTdXNwZW5kSWZOZWVkZWQoCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIG5leHRSZXNvdXJjZQogICAgICAgICAgICApKSA6IChidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzMiksIHdvcmtJblByb2dyZXNzMi5mbGFncyAmPSAtMTY3NzcyMTcpIDogKGN1cnJlbnQyID0gY3VycmVudDIubWVtb2l6ZWRQcm9wcywgY3VycmVudDIgIT09IG5ld1Byb3BzICYmIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MyKSwgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpLCBwcmVsb2FkSW5zdGFuY2VBbmRTdXNwZW5kSWZOZWVkZWQoCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLAogICAgICAgICAgICAgIHR5cGUsCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgbmV3UHJvcHMsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICkpOwogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIGNhc2UgMjc6CiAgICAgICAgICAgIHBvcEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgIHJlbmRlckxhbmVzMiA9IHJlcXVpcmVkQ29udGV4dChyb290SW5zdGFuY2VTdGFja0N1cnNvci5jdXJyZW50KTsKICAgICAgICAgICAgdHlwZSA9IHdvcmtJblByb2dyZXNzMi50eXBlOwogICAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudDIgJiYgbnVsbCAhPSB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlKQogICAgICAgICAgICAgIGN1cnJlbnQyLm1lbW9pemVkUHJvcHMgIT09IG5ld1Byb3BzICYmIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgaWYgKCFuZXdQcm9wcykgewogICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGUpCiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgICAgICJXZSBtdXN0IGhhdmUgbmV3IHByb3BzIGZvciBuZXcgbW91bnRzLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjdXJyZW50MiA9IGdldEhvc3RDb250ZXh0KCk7CiAgICAgICAgICAgICAgcG9wSHlkcmF0aW9uU3RhdGUod29ya0luUHJvZ3Jlc3MyKSA/IHByZXBhcmVUb0h5ZHJhdGVIb3N0SW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MyLCBjdXJyZW50MikgOiAoY3VycmVudDIgPSByZXNvbHZlU2luZ2xldG9uSW5zdGFuY2UoCiAgICAgICAgICAgICAgICB0eXBlLAogICAgICAgICAgICAgICAgbmV3UHJvcHMsCiAgICAgICAgICAgICAgICByZW5kZXJMYW5lczIsCiAgICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICAgIHRydWUKICAgICAgICAgICAgICApLCB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlID0gY3VycmVudDIsIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MyKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgcG9wSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgdHlwZSA9IHdvcmtJblByb2dyZXNzMi50eXBlOwogICAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudDIgJiYgbnVsbCAhPSB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlKQogICAgICAgICAgICAgIGN1cnJlbnQyLm1lbW9pemVkUHJvcHMgIT09IG5ld1Byb3BzICYmIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgaWYgKCFuZXdQcm9wcykgewogICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGUpCiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgICAgICJXZSBtdXN0IGhhdmUgbmV3IHByb3BzIGZvciBuZXcgbW91bnRzLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgX2N1cnJlbnRIb3N0Q29udGV4dCA9IGdldEhvc3RDb250ZXh0KCk7CiAgICAgICAgICAgICAgaWYgKHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzMikpCiAgICAgICAgICAgICAgICBwcmVwYXJlVG9IeWRyYXRlSG9zdEluc3RhbmNlKHdvcmtJblByb2dyZXNzMiwgX2N1cnJlbnRIb3N0Q29udGV4dCk7CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBuZXh0UmVzb3VyY2UgPSByZXF1aXJlZENvbnRleHQocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IuY3VycmVudCk7CiAgICAgICAgICAgICAgICB2YWxpZGF0ZURPTU5lc3RpbmcodHlwZSwgX2N1cnJlbnRIb3N0Q29udGV4dC5hbmNlc3RvckluZm8pOwogICAgICAgICAgICAgICAgX2N1cnJlbnRIb3N0Q29udGV4dCA9IF9jdXJyZW50SG9zdENvbnRleHQuY29udGV4dDsKICAgICAgICAgICAgICAgIG5leHRSZXNvdXJjZSA9IGdldE93bmVyRG9jdW1lbnRGcm9tUm9vdENvbnRhaW5lcihuZXh0UmVzb3VyY2UpOwogICAgICAgICAgICAgICAgc3dpdGNoIChfY3VycmVudEhvc3RDb250ZXh0KSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgSG9zdENvbnRleHROYW1lc3BhY2VTdmc6CiAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID0gbmV4dFJlc291cmNlLmNyZWF0ZUVsZW1lbnROUygKICAgICAgICAgICAgICAgICAgICAgIFNWR19OQU1FU1BBQ0UsCiAgICAgICAgICAgICAgICAgICAgICB0eXBlCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSBIb3N0Q29udGV4dE5hbWVzcGFjZU1hdGg6CiAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID0gbmV4dFJlc291cmNlLmNyZWF0ZUVsZW1lbnROUygKICAgICAgICAgICAgICAgICAgICAgIE1BVEhfTkFNRVNQQUNFLAogICAgICAgICAgICAgICAgICAgICAgdHlwZQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJzdmciOgogICAgICAgICAgICAgICAgICAgICAgICBuZXh0UmVzb3VyY2UgPSBuZXh0UmVzb3VyY2UuY3JlYXRlRWxlbWVudE5TKAogICAgICAgICAgICAgICAgICAgICAgICAgIFNWR19OQU1FU1BBQ0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZQogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgIm1hdGgiOgogICAgICAgICAgICAgICAgICAgICAgICBuZXh0UmVzb3VyY2UgPSBuZXh0UmVzb3VyY2UuY3JlYXRlRWxlbWVudE5TKAogICAgICAgICAgICAgICAgICAgICAgICAgIE1BVEhfTkFNRVNQQUNFLAogICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJzY3JpcHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuZXh0UmVzb3VyY2UgPSBuZXh0UmVzb3VyY2UuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRSZXNvdXJjZS5pbm5lckhUTUwgPSAiPHNjcmlwdD48XC9zY3JpcHQ+IjsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID0gbmV4dFJlc291cmNlLnJlbW92ZUNoaWxkKAogICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRSZXNvdXJjZS5maXJzdENoaWxkCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgY2FzZSAic2VsZWN0IjoKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID0gInN0cmluZyIgPT09IHR5cGVvZiBuZXdQcm9wcy5pcyA/IG5leHRSZXNvdXJjZS5jcmVhdGVFbGVtZW50KCJzZWxlY3QiLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgaXM6IG5ld1Byb3BzLmlzCiAgICAgICAgICAgICAgICAgICAgICAgIH0pIDogbmV4dFJlc291cmNlLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOwogICAgICAgICAgICAgICAgICAgICAgICBuZXdQcm9wcy5tdWx0aXBsZSA/IG5leHRSZXNvdXJjZS5tdWx0aXBsZSA9IHRydWUgOiBuZXdQcm9wcy5zaXplICYmIChuZXh0UmVzb3VyY2Uuc2l6ZSA9IG5ld1Byb3BzLnNpemUpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRSZXNvdXJjZSA9ICJzdHJpbmciID09PSB0eXBlb2YgbmV3UHJvcHMuaXMgPyBuZXh0UmVzb3VyY2UuY3JlYXRlRWxlbWVudCh0eXBlLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgaXM6IG5ld1Byb3BzLmlzCiAgICAgICAgICAgICAgICAgICAgICAgIH0pIDogbmV4dFJlc291cmNlLmNyZWF0ZUVsZW1lbnQodHlwZSksIC0xID09PSB0eXBlLmluZGV4T2YoIi0iKSAmJiAodHlwZSAhPT0gdHlwZS50b0xvd2VyQ2FzZSgpICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgIjwlcyAvPiBpcyB1c2luZyBpbmNvcnJlY3QgY2FzaW5nLiBVc2UgUGFzY2FsQ2FzZSBmb3IgUmVhY3QgY29tcG9uZW50cywgb3IgbG93ZXJjYXNlIGZvciBIVE1MIGVsZW1lbnRzLiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZQogICAgICAgICAgICAgICAgICAgICAgICApLCAiW29iamVjdCBIVE1MVW5rbm93bkVsZW1lbnRdIiAhPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5leHRSZXNvdXJjZSkgfHwgaGFzT3duUHJvcGVydHkuY2FsbCh3YXJuZWRVbmtub3duVGFncywgdHlwZSkgfHwgKHdhcm5lZFVua25vd25UYWdzW3R5cGVdID0gdHJ1ZSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIHRhZyA8JXM+IGlzIHVucmVjb2duaXplZCBpbiB0aGlzIGJyb3dzZXIuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBSZWFjdCBjb21wb25lbnQsIHN0YXJ0IGl0cyBuYW1lIHdpdGggYW4gdXBwZXJjYXNlIGxldHRlci4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUKICAgICAgICAgICAgICAgICAgICAgICAgKSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG5leHRSZXNvdXJjZVtpbnRlcm5hbEluc3RhbmNlS2V5XSA9IHdvcmtJblByb2dyZXNzMjsKICAgICAgICAgICAgICAgIG5leHRSZXNvdXJjZVtpbnRlcm5hbFByb3BzS2V5XSA9IG5ld1Byb3BzOwogICAgICAgICAgICAgICAgYTogZm9yIChfY3VycmVudEhvc3RDb250ZXh0ID0gd29ya0luUHJvZ3Jlc3MyLmNoaWxkOyBudWxsICE9PSBfY3VycmVudEhvc3RDb250ZXh0OyApIHsKICAgICAgICAgICAgICAgICAgaWYgKDUgPT09IF9jdXJyZW50SG9zdENvbnRleHQudGFnIHx8IDYgPT09IF9jdXJyZW50SG9zdENvbnRleHQudGFnKQogICAgICAgICAgICAgICAgICAgIG5leHRSZXNvdXJjZS5hcHBlbmRDaGlsZChfY3VycmVudEhvc3RDb250ZXh0LnN0YXRlTm9kZSk7CiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKDQgIT09IF9jdXJyZW50SG9zdENvbnRleHQudGFnICYmIDI3ICE9PSBfY3VycmVudEhvc3RDb250ZXh0LnRhZyAmJiBudWxsICE9PSBfY3VycmVudEhvc3RDb250ZXh0LmNoaWxkKSB7CiAgICAgICAgICAgICAgICAgICAgX2N1cnJlbnRIb3N0Q29udGV4dC5jaGlsZC5yZXR1cm4gPSBfY3VycmVudEhvc3RDb250ZXh0OwogICAgICAgICAgICAgICAgICAgIF9jdXJyZW50SG9zdENvbnRleHQgPSBfY3VycmVudEhvc3RDb250ZXh0LmNoaWxkOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmIChfY3VycmVudEhvc3RDb250ZXh0ID09PSB3b3JrSW5Qcm9ncmVzczIpIGJyZWFrIGE7CiAgICAgICAgICAgICAgICAgIGZvciAoOyBudWxsID09PSBfY3VycmVudEhvc3RDb250ZXh0LnNpYmxpbmc7ICkgewogICAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBfY3VycmVudEhvc3RDb250ZXh0LnJldHVybiB8fCBfY3VycmVudEhvc3RDb250ZXh0LnJldHVybiA9PT0gd29ya0luUHJvZ3Jlc3MyKQogICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgICBfY3VycmVudEhvc3RDb250ZXh0ID0gX2N1cnJlbnRIb3N0Q29udGV4dC5yZXR1cm47CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgX2N1cnJlbnRIb3N0Q29udGV4dC5zaWJsaW5nLnJldHVybiA9IF9jdXJyZW50SG9zdENvbnRleHQucmV0dXJuOwogICAgICAgICAgICAgICAgICBfY3VycmVudEhvc3RDb250ZXh0ID0gX2N1cnJlbnRIb3N0Q29udGV4dC5zaWJsaW5nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZSA9IG5leHRSZXNvdXJjZTsKICAgICAgICAgICAgICAgIGE6IHN3aXRjaCAoc2V0SW5pdGlhbFByb3BlcnRpZXMobmV4dFJlc291cmNlLCB0eXBlLCBuZXdQcm9wcyksIHR5cGUpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAiYnV0dG9uIjoKICAgICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOgogICAgICAgICAgICAgICAgICBjYXNlICJzZWxlY3QiOgogICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0YXJlYSI6CiAgICAgICAgICAgICAgICAgICAgbmV3UHJvcHMgPSAhIW5ld1Byb3BzLmF1dG9Gb2N1czsKICAgICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgICBjYXNlICJpbWciOgogICAgICAgICAgICAgICAgICAgIG5ld1Byb3BzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIG5ld1Byb3BzID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBuZXdQcm9wcyAmJiBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgcHJlbG9hZEluc3RhbmNlQW5kU3VzcGVuZElmTmVlZGVkKAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIudHlwZSwKICAgICAgICAgICAgICBudWxsID09PSBjdXJyZW50MiA/IG51bGwgOiBjdXJyZW50Mi5tZW1vaXplZFByb3BzLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5wZW5kaW5nUHJvcHMsCiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMyCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICBpZiAoY3VycmVudDIgJiYgbnVsbCAhPSB3b3JrSW5Qcm9ncmVzczIuc3RhdGVOb2RlKQogICAgICAgICAgICAgIGN1cnJlbnQyLm1lbW9pemVkUHJvcHMgIT09IG5ld1Byb3BzICYmIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgaWYgKCJzdHJpbmciICE9PSB0eXBlb2YgbmV3UHJvcHMgJiYgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZSkKICAgICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgICAiV2UgbXVzdCBoYXZlIG5ldyBwcm9wcyBmb3IgbmV3IG1vdW50cy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGN1cnJlbnQyID0gcmVxdWlyZWRDb250ZXh0KHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnQpOwogICAgICAgICAgICAgIHJlbmRlckxhbmVzMiA9IGdldEhvc3RDb250ZXh0KCk7CiAgICAgICAgICAgICAgaWYgKHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzMikpIHsKICAgICAgICAgICAgICAgIGN1cnJlbnQyID0gd29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZTsKICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMiA9IHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFByb3BzOwogICAgICAgICAgICAgICAgdHlwZSA9ICFkaWRTdXNwZW5kT3JFcnJvckRFVjsKICAgICAgICAgICAgICAgIG5ld1Byb3BzID0gbnVsbDsKICAgICAgICAgICAgICAgIG5leHRSZXNvdXJjZSA9IGh5ZHJhdGlvblBhcmVudEZpYmVyOwogICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IG5leHRSZXNvdXJjZSkKICAgICAgICAgICAgICAgICAgc3dpdGNoIChuZXh0UmVzb3VyY2UudGFnKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgICAgICAgdHlwZSAmJiAodHlwZSA9IGRpZmZIeWRyYXRlZFRleHRGb3JEZXZXYXJuaW5ncygKICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMiwKICAgICAgICAgICAgICAgICAgICAgICAgbmV3UHJvcHMKICAgICAgICAgICAgICAgICAgICAgICksIG51bGwgIT09IHR5cGUgJiYgKGJ1aWxkSHlkcmF0aW9uRGlmZk5vZGUod29ya0luUHJvZ3Jlc3MyLCAwKS5zZXJ2ZXJQcm9wcyA9IHR5cGUpKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMjc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgICAgICAgbmV3UHJvcHMgPSBuZXh0UmVzb3VyY2UubWVtb2l6ZWRQcm9wcywgdHlwZSAmJiAodHlwZSA9IGRpZmZIeWRyYXRlZFRleHRGb3JEZXZXYXJuaW5ncygKICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzMiwKICAgICAgICAgICAgICAgICAgICAgICAgbmV3UHJvcHMKICAgICAgICAgICAgICAgICAgICAgICksIG51bGwgIT09IHR5cGUgJiYgKGJ1aWxkSHlkcmF0aW9uRGlmZk5vZGUoCiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMiwKICAgICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICAgKS5zZXJ2ZXJQcm9wcyA9IHR5cGUpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY3VycmVudDJbaW50ZXJuYWxJbnN0YW5jZUtleV0gPSB3b3JrSW5Qcm9ncmVzczI7CiAgICAgICAgICAgICAgICBjdXJyZW50MiA9IGN1cnJlbnQyLm5vZGVWYWx1ZSA9PT0gcmVuZGVyTGFuZXMyIHx8IG51bGwgIT09IG5ld1Byb3BzICYmIHRydWUgPT09IG5ld1Byb3BzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyB8fCBjaGVja0ZvclVubWF0Y2hlZFRleHQoY3VycmVudDIubm9kZVZhbHVlLCByZW5kZXJMYW5lczIpID8gdHJ1ZSA6IGZhbHNlOwogICAgICAgICAgICAgICAgY3VycmVudDIgfHwgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKHdvcmtJblByb2dyZXNzMiwgdHJ1ZSk7CiAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICB0eXBlID0gcmVuZGVyTGFuZXMyLmFuY2VzdG9ySW5mby5jdXJyZW50LCBudWxsICE9IHR5cGUgJiYgdmFsaWRhdGVUZXh0TmVzdGluZygKICAgICAgICAgICAgICAgICAgbmV3UHJvcHMsCiAgICAgICAgICAgICAgICAgIHR5cGUudGFnLAogICAgICAgICAgICAgICAgICByZW5kZXJMYW5lczIuYW5jZXN0b3JJbmZvLmltcGxpY2l0Um9vdFNjb3BlCiAgICAgICAgICAgICAgICApLCBjdXJyZW50MiA9IGdldE93bmVyRG9jdW1lbnRGcm9tUm9vdENvbnRhaW5lcihjdXJyZW50MikuY3JlYXRlVGV4dE5vZGUoCiAgICAgICAgICAgICAgICAgIG5ld1Byb3BzCiAgICAgICAgICAgICAgICApLCBjdXJyZW50MltpbnRlcm5hbEluc3RhbmNlS2V5XSA9IHdvcmtJblByb2dyZXNzMiwgd29ya0luUHJvZ3Jlc3MyLnN0YXRlTm9kZSA9IGN1cnJlbnQyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICBjYXNlIDMxOgogICAgICAgICAgICByZW5kZXJMYW5lczIgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQyIHx8IG51bGwgIT09IGN1cnJlbnQyLm1lbW9pemVkU3RhdGUpIHsKICAgICAgICAgICAgICBuZXdQcm9wcyA9IHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgICAgaWYgKG51bGwgIT09IHJlbmRlckxhbmVzMikgewogICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQyKSB7CiAgICAgICAgICAgICAgICAgIGlmICghbmV3UHJvcHMpCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAiQSBkZWh5ZHJhdGVkIHN1c3BlbnNlIGNvbXBvbmVudCB3YXMgY29tcGxldGVkIHdpdGhvdXQgYSBoeWRyYXRlZCBub2RlLiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBjdXJyZW50MiA9IHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlOwogICAgICAgICAgICAgICAgICBjdXJyZW50MiA9IG51bGwgIT09IGN1cnJlbnQyID8gY3VycmVudDIuZGVoeWRyYXRlZCA6IG51bGw7CiAgICAgICAgICAgICAgICAgIGlmICghY3VycmVudDIpCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQgdG8gaGF2ZSBhIGh5ZHJhdGVkIGFjdGl2aXR5IGluc3RhbmNlLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBjdXJyZW50MltpbnRlcm5hbEluc3RhbmNlS2V5XSA9IHdvcmtJblByb2dyZXNzMjsKICAgICAgICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MyLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiBudWxsICE9PSByZW5kZXJMYW5lczIgJiYgKGN1cnJlbnQyID0gd29ya0luUHJvZ3Jlc3MyLmNoaWxkLCBudWxsICE9PSBjdXJyZW50MiAmJiAod29ya0luUHJvZ3Jlc3MyLnRyZWVCYXNlRHVyYXRpb24gLT0gY3VycmVudDIudHJlZUJhc2VEdXJhdGlvbikpOwogICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgIGVtaXRQZW5kaW5nSHlkcmF0aW9uV2FybmluZ3MoKSwgcmVzZXRIeWRyYXRpb25TdGF0ZSgpLCAwID09PSAod29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgMTI4KSAmJiAocmVuZGVyTGFuZXMyID0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgPSBudWxsKSwgd29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDQsIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MyKSwgKHdvcmtJblByb2dyZXNzMi5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiYgbnVsbCAhPT0gcmVuZGVyTGFuZXMyICYmIChjdXJyZW50MiA9IHdvcmtJblByb2dyZXNzMi5jaGlsZCwgbnVsbCAhPT0gY3VycmVudDIgJiYgKHdvcmtJblByb2dyZXNzMi50cmVlQmFzZUR1cmF0aW9uIC09IGN1cnJlbnQyLnRyZWVCYXNlRHVyYXRpb24pKTsKICAgICAgICAgICAgICAgIGN1cnJlbnQyID0gZmFsc2U7CiAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICByZW5kZXJMYW5lczIgPSB1cGdyYWRlSHlkcmF0aW9uRXJyb3JzVG9SZWNvdmVyYWJsZSgpLCBudWxsICE9PSBjdXJyZW50MiAmJiBudWxsICE9PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlICYmIChjdXJyZW50Mi5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycyA9IHJlbmRlckxhbmVzMiksIGN1cnJlbnQyID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoIWN1cnJlbnQyKSB7CiAgICAgICAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgMjU2KQogICAgICAgICAgICAgICAgICByZXR1cm4gcG9wU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMiksIHdvcmtJblByb2dyZXNzMjsKICAgICAgICAgICAgICAgIHBvcFN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICgwICE9PSAod29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgMTI4KSkKICAgICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgICAiQ2xpZW50IHJlbmRlcmluZyBhbiBBY3Rpdml0eSBzdXNwZW5kZWQgaXQgYWdhaW4uIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgbmV3UHJvcHMgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQyIHx8IG51bGwgIT09IGN1cnJlbnQyLm1lbW9pemVkU3RhdGUgJiYgbnVsbCAhPT0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZS5kZWh5ZHJhdGVkKSB7CiAgICAgICAgICAgICAgdHlwZSA9IG5ld1Byb3BzOwogICAgICAgICAgICAgIG5leHRSZXNvdXJjZSA9IHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgICAgaWYgKG51bGwgIT09IHR5cGUgJiYgbnVsbCAhPT0gdHlwZS5kZWh5ZHJhdGVkKSB7CiAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudDIpIHsKICAgICAgICAgICAgICAgICAgaWYgKCFuZXh0UmVzb3VyY2UpCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAiQSBkZWh5ZHJhdGVkIHN1c3BlbnNlIGNvbXBvbmVudCB3YXMgY29tcGxldGVkIHdpdGhvdXQgYSBoeWRyYXRlZCBub2RlLiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBuZXh0UmVzb3VyY2UgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID0gbnVsbCAhPT0gbmV4dFJlc291cmNlID8gbmV4dFJlc291cmNlLmRlaHlkcmF0ZWQgOiBudWxsOwogICAgICAgICAgICAgICAgICBpZiAoIW5leHRSZXNvdXJjZSkKICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCB0byBoYXZlIGEgaHlkcmF0ZWQgc3VzcGVuc2UgaW5zdGFuY2UuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIG5leHRSZXNvdXJjZVtpbnRlcm5hbEluc3RhbmNlS2V5XSA9IHdvcmtJblByb2dyZXNzMjsKICAgICAgICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MyLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiBudWxsICE9PSB0eXBlICYmICh0eXBlID0gd29ya0luUHJvZ3Jlc3MyLmNoaWxkLCBudWxsICE9PSB0eXBlICYmICh3b3JrSW5Qcm9ncmVzczIudHJlZUJhc2VEdXJhdGlvbiAtPSB0eXBlLnRyZWVCYXNlRHVyYXRpb24pKTsKICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICBlbWl0UGVuZGluZ0h5ZHJhdGlvbldhcm5pbmdzKCksIHJlc2V0SHlkcmF0aW9uU3RhdGUoKSwgMCA9PT0gKHdvcmtJblByb2dyZXNzMi5mbGFncyAmIDEyOCkgJiYgKHR5cGUgPSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSA9IG51bGwpLCB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gNCwgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpLCAod29ya0luUHJvZ3Jlc3MyLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiBudWxsICE9PSB0eXBlICYmICh0eXBlID0gd29ya0luUHJvZ3Jlc3MyLmNoaWxkLCBudWxsICE9PSB0eXBlICYmICh3b3JrSW5Qcm9ncmVzczIudHJlZUJhc2VEdXJhdGlvbiAtPSB0eXBlLnRyZWVCYXNlRHVyYXRpb24pKTsKICAgICAgICAgICAgICAgIHR5cGUgPSBmYWxzZTsKICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgIHR5cGUgPSB1cGdyYWRlSHlkcmF0aW9uRXJyb3JzVG9SZWNvdmVyYWJsZSgpLCBudWxsICE9PSBjdXJyZW50MiAmJiBudWxsICE9PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlICYmIChjdXJyZW50Mi5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycyA9IHR5cGUpLCB0eXBlID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoIXR5cGUpIHsKICAgICAgICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgJiAyNTYpCiAgICAgICAgICAgICAgICAgIHJldHVybiBwb3BTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MyKSwgd29ya0luUHJvZ3Jlc3MyOwogICAgICAgICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgIGlmICgwICE9PSAod29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgMTI4KSkKICAgICAgICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MyLmxhbmVzID0gcmVuZGVyTGFuZXMyLCAod29ya0luUHJvZ3Jlc3MyLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKHdvcmtJblByb2dyZXNzMiksIHdvcmtJblByb2dyZXNzMjsKICAgICAgICAgICAgcmVuZGVyTGFuZXMyID0gbnVsbCAhPT0gbmV3UHJvcHM7CiAgICAgICAgICAgIGN1cnJlbnQyID0gbnVsbCAhPT0gY3VycmVudDIgJiYgbnVsbCAhPT0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgICAgcmVuZGVyTGFuZXMyICYmIChuZXdQcm9wcyA9IHdvcmtJblByb2dyZXNzMi5jaGlsZCwgdHlwZSA9IG51bGwsIG51bGwgIT09IG5ld1Byb3BzLmFsdGVybmF0ZSAmJiBudWxsICE9PSBuZXdQcm9wcy5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZSAmJiBudWxsICE9PSBuZXdQcm9wcy5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wgJiYgKHR5cGUgPSBuZXdQcm9wcy5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksIG5leHRSZXNvdXJjZSA9IG51bGwsIG51bGwgIT09IG5ld1Byb3BzLm1lbW9pemVkU3RhdGUgJiYgbnVsbCAhPT0gbmV3UHJvcHMubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wgJiYgKG5leHRSZXNvdXJjZSA9IG5ld1Byb3BzLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLCBuZXh0UmVzb3VyY2UgIT09IHR5cGUgJiYgKG5ld1Byb3BzLmZsYWdzIHw9IDIwNDgpKTsKICAgICAgICAgICAgcmVuZGVyTGFuZXMyICE9PSBjdXJyZW50MiAmJiByZW5kZXJMYW5lczIgJiYgKHdvcmtJblByb2dyZXNzMi5jaGlsZC5mbGFncyB8PSA4MTkyKTsKICAgICAgICAgICAgc2NoZWR1bGVSZXRyeUVmZmVjdCh3b3JrSW5Qcm9ncmVzczIsIHdvcmtJblByb2dyZXNzMi51cGRhdGVRdWV1ZSk7CiAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MyKTsKICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzMi5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiYgcmVuZGVyTGFuZXMyICYmIChjdXJyZW50MiA9IHdvcmtJblByb2dyZXNzMi5jaGlsZCwgbnVsbCAhPT0gY3VycmVudDIgJiYgKHdvcmtJblByb2dyZXNzMi50cmVlQmFzZUR1cmF0aW9uIC09IGN1cnJlbnQyLnRyZWVCYXNlRHVyYXRpb24pKTsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIHJldHVybiBwb3BIb3N0Q29udGFpbmVyKHdvcmtJblByb2dyZXNzMiksIG51bGwgPT09IGN1cnJlbnQyICYmIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbwogICAgICAgICAgICApLCBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzMiksIG51bGw7CiAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICByZXR1cm4gcG9wUHJvdmlkZXIod29ya0luUHJvZ3Jlc3MyLnR5cGUsIHdvcmtJblByb2dyZXNzMiksIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MyKSwgbnVsbDsKICAgICAgICAgIGNhc2UgMTk6CiAgICAgICAgICAgIHBvcChzdXNwZW5zZVN0YWNrQ3Vyc29yLCB3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgICAgICBuZXdQcm9wcyA9IHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlOwogICAgICAgICAgICBpZiAobnVsbCA9PT0gbmV3UHJvcHMpIHJldHVybiBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzMiksIG51bGw7CiAgICAgICAgICAgIHR5cGUgPSAwICE9PSAod29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgMTI4KTsKICAgICAgICAgICAgbmV4dFJlc291cmNlID0gbmV3UHJvcHMucmVuZGVyaW5nOwogICAgICAgICAgICBpZiAobnVsbCA9PT0gbmV4dFJlc291cmNlKQogICAgICAgICAgICAgIGlmICh0eXBlKSBjdXRPZmZUYWlsSWZOZWVkZWQobmV3UHJvcHMsIGZhbHNlKTsKICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzICE9PSBSb290SW5Qcm9ncmVzcyB8fCBudWxsICE9PSBjdXJyZW50MiAmJiAwICE9PSAoY3VycmVudDIuZmxhZ3MgJiAxMjgpKQogICAgICAgICAgICAgICAgICBmb3IgKGN1cnJlbnQyID0gd29ya0luUHJvZ3Jlc3MyLmNoaWxkOyBudWxsICE9PSBjdXJyZW50MjsgKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID0gZmluZEZpcnN0U3VzcGVuZGVkKGN1cnJlbnQyKTsKICAgICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gbmV4dFJlc291cmNlKSB7CiAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMTI4OwogICAgICAgICAgICAgICAgICAgICAgY3V0T2ZmVGFpbElmTmVlZGVkKG5ld1Byb3BzLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50MiA9IG5leHRSZXNvdXJjZS51cGRhdGVRdWV1ZTsKICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi51cGRhdGVRdWV1ZSA9IGN1cnJlbnQyOwogICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVSZXRyeUVmZmVjdCh3b3JrSW5Qcm9ncmVzczIsIGN1cnJlbnQyKTsKICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMi5zdWJ0cmVlRmxhZ3MgPSAwOwogICAgICAgICAgICAgICAgICAgICAgY3VycmVudDIgPSByZW5kZXJMYW5lczI7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHJlbmRlckxhbmVzMiA9IHdvcmtJblByb2dyZXNzMi5jaGlsZDsgbnVsbCAhPT0gcmVuZGVyTGFuZXMyOyApCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0V29ya0luUHJvZ3Jlc3MocmVuZGVyTGFuZXMyLCBjdXJyZW50MiksIHJlbmRlckxhbmVzMiA9IHJlbmRlckxhbmVzMi5zaWJsaW5nOwogICAgICAgICAgICAgICAgICAgICAgcHVzaCgKICAgICAgICAgICAgICAgICAgICAgICAgc3VzcGVuc2VTdGFja0N1cnNvciwKICAgICAgICAgICAgICAgICAgICAgICAgc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50ICYgU3VidHJlZVN1c3BlbnNlQ29udGV4dE1hc2sgfCBGb3JjZVN1c3BlbnNlRmFsbGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzMgogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGlzSHlkcmF0aW5nICYmIHB1c2hUcmVlRm9yayh3b3JrSW5Qcm9ncmVzczIsIG5ld1Byb3BzLnRyZWVGb3JrQ291bnQpOwogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzMi5jaGlsZDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY3VycmVudDIgPSBjdXJyZW50Mi5zaWJsaW5nOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBudWxsICE9PSBuZXdQcm9wcy50YWlsICYmIG5vdyQxKCkgPiB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lICYmICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMTI4LCB0eXBlID0gdHJ1ZSwgY3V0T2ZmVGFpbElmTmVlZGVkKG5ld1Byb3BzLCBmYWxzZSksIHdvcmtJblByb2dyZXNzMi5sYW5lcyA9IDQxOTQzMDQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgaWYgKCF0eXBlKQogICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQyID0gZmluZEZpcnN0U3VzcGVuZGVkKG5leHRSZXNvdXJjZSksIG51bGwgIT09IGN1cnJlbnQyKSB7CiAgICAgICAgICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzczIuZmxhZ3MgfD0gMTI4LCB0eXBlID0gdHJ1ZSwgY3VycmVudDIgPSBjdXJyZW50Mi51cGRhdGVRdWV1ZSwgd29ya0luUHJvZ3Jlc3MyLnVwZGF0ZVF1ZXVlID0gY3VycmVudDIsIHNjaGVkdWxlUmV0cnlFZmZlY3Qod29ya0luUHJvZ3Jlc3MyLCBjdXJyZW50MiksIGN1dE9mZlRhaWxJZk5lZWRlZChuZXdQcm9wcywgdHJ1ZSksIG51bGwgPT09IG5ld1Byb3BzLnRhaWwgJiYgImhpZGRlbiIgPT09IG5ld1Byb3BzLnRhaWxNb2RlICYmICFuZXh0UmVzb3VyY2UuYWx0ZXJuYXRlICYmICFpc0h5ZHJhdGluZykKICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpLCBudWxsOwogICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgIDIgKiBub3ckMSgpIC0gbmV3UHJvcHMucmVuZGVyaW5nU3RhcnRUaW1lID4gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyVGFyZ2V0VGltZSAmJiA1MzY4NzA5MTIgIT09IHJlbmRlckxhbmVzMiAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDEyOCwgdHlwZSA9IHRydWUsIGN1dE9mZlRhaWxJZk5lZWRlZChuZXdQcm9wcywgZmFsc2UpLCB3b3JrSW5Qcm9ncmVzczIubGFuZXMgPSA0MTk0MzA0KTsKICAgICAgICAgICAgICBuZXdQcm9wcy5pc0JhY2t3YXJkcyA/IChuZXh0UmVzb3VyY2Uuc2libGluZyA9IHdvcmtJblByb2dyZXNzMi5jaGlsZCwgd29ya0luUHJvZ3Jlc3MyLmNoaWxkID0gbmV4dFJlc291cmNlKSA6IChjdXJyZW50MiA9IG5ld1Byb3BzLmxhc3QsIG51bGwgIT09IGN1cnJlbnQyID8gY3VycmVudDIuc2libGluZyA9IG5leHRSZXNvdXJjZSA6IHdvcmtJblByb2dyZXNzMi5jaGlsZCA9IG5leHRSZXNvdXJjZSwgbmV3UHJvcHMubGFzdCA9IG5leHRSZXNvdXJjZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKG51bGwgIT09IG5ld1Byb3BzLnRhaWwpCiAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQyID0gbmV3UHJvcHMudGFpbCwgbmV3UHJvcHMucmVuZGVyaW5nID0gY3VycmVudDIsIG5ld1Byb3BzLnRhaWwgPSBjdXJyZW50Mi5zaWJsaW5nLCBuZXdQcm9wcy5yZW5kZXJpbmdTdGFydFRpbWUgPSBub3ckMSgpLCBjdXJyZW50Mi5zaWJsaW5nID0gbnVsbCwgcmVuZGVyTGFuZXMyID0gc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50LCByZW5kZXJMYW5lczIgPSB0eXBlID8gcmVuZGVyTGFuZXMyICYgU3VidHJlZVN1c3BlbnNlQ29udGV4dE1hc2sgfCBGb3JjZVN1c3BlbnNlRmFsbGJhY2sgOiByZW5kZXJMYW5lczIgJiBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzaywgcHVzaChzdXNwZW5zZVN0YWNrQ3Vyc29yLCByZW5kZXJMYW5lczIsIHdvcmtJblByb2dyZXNzMiksIGlzSHlkcmF0aW5nICYmIHB1c2hUcmVlRm9yayh3b3JrSW5Qcm9ncmVzczIsIG5ld1Byb3BzLnRyZWVGb3JrQ291bnQpLCBjdXJyZW50MjsKICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICBjYXNlIDIzOgogICAgICAgICAgICByZXR1cm4gcG9wU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMiksIHBvcEhpZGRlbkNvbnRleHQod29ya0luUHJvZ3Jlc3MyKSwgbmV3UHJvcHMgPSBudWxsICE9PSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSwgbnVsbCAhPT0gY3VycmVudDIgPyBudWxsICE9PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlICE9PSBuZXdQcm9wcyAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDgxOTIpIDogbmV3UHJvcHMgJiYgKHdvcmtJblByb2dyZXNzMi5mbGFncyB8PSA4MTkyKSwgbmV3UHJvcHMgPyAwICE9PSAocmVuZGVyTGFuZXMyICYgNTM2ODcwOTEyKSAmJiAwID09PSAod29ya0luUHJvZ3Jlc3MyLmZsYWdzICYgMTI4KSAmJiAoYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzczIpLCB3b3JrSW5Qcm9ncmVzczIuc3VidHJlZUZsYWdzICYgNiAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDgxOTIpKSA6IGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MyKSwgcmVuZGVyTGFuZXMyID0gd29ya0luUHJvZ3Jlc3MyLnVwZGF0ZVF1ZXVlLCBudWxsICE9PSByZW5kZXJMYW5lczIgJiYgc2NoZWR1bGVSZXRyeUVmZmVjdCh3b3JrSW5Qcm9ncmVzczIsIHJlbmRlckxhbmVzMi5yZXRyeVF1ZXVlKSwgcmVuZGVyTGFuZXMyID0gbnVsbCwgbnVsbCAhPT0gY3VycmVudDIgJiYgbnVsbCAhPT0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZSAmJiBudWxsICE9PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCAmJiAocmVuZGVyTGFuZXMyID0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksIG5ld1Byb3BzID0gbnVsbCwgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUgJiYgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sICYmIChuZXdQcm9wcyA9IHdvcmtJblByb2dyZXNzMi5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSwgbmV3UHJvcHMgIT09IHJlbmRlckxhbmVzMiAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDIwNDgpLCBudWxsICE9PSBjdXJyZW50MiAmJiBwb3AocmVzdW1lZENhY2hlLCB3b3JrSW5Qcm9ncmVzczIpLCBudWxsOwogICAgICAgICAgY2FzZSAyNDoKICAgICAgICAgICAgcmV0dXJuIHJlbmRlckxhbmVzMiA9IG51bGwsIG51bGwgIT09IGN1cnJlbnQyICYmIChyZW5kZXJMYW5lczIgPSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlLmNhY2hlKSwgd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGUuY2FjaGUgIT09IHJlbmRlckxhbmVzMiAmJiAod29ya0luUHJvZ3Jlc3MyLmZsYWdzIHw9IDIwNDgpLCBwb3BQcm92aWRlcihDYWNoZUNvbnRleHQsIHdvcmtJblByb2dyZXNzMiksIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MyKSwgbnVsbDsKICAgICAgICAgIGNhc2UgMjU6CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgY2FzZSAzMDoKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgIlVua25vd24gdW5pdCBvZiB3b3JrIHRhZyAoIiArIHdvcmtJblByb2dyZXNzMi50YWcgKyAiKS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB1bndpbmRXb3JrKGN1cnJlbnQyLCB3b3JrSW5Qcm9ncmVzczIpIHsKICAgICAgICBwb3BUcmVlQ29udGV4dCh3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MyLnRhZykgewogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICByZXR1cm4gY3VycmVudDIgPSB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MsIGN1cnJlbnQyICYgNjU1MzYgPyAod29ya0luUHJvZ3Jlc3MyLmZsYWdzID0gY3VycmVudDIgJiAtNjU1MzcgfCAxMjgsICh3b3JrSW5Qcm9ncmVzczIubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MyKSwgd29ya0luUHJvZ3Jlc3MyKSA6IG51bGw7CiAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgIHJldHVybiBwb3BQcm92aWRlcihDYWNoZUNvbnRleHQsIHdvcmtJblByb2dyZXNzMiksIHBvcEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MyKSwgY3VycmVudDIgPSB3b3JrSW5Qcm9ncmVzczIuZmxhZ3MsIDAgIT09IChjdXJyZW50MiAmIDY1NTM2KSAmJiAwID09PSAoY3VycmVudDIgJiAxMjgpID8gKHdvcmtJblByb2dyZXNzMi5mbGFncyA9IGN1cnJlbnQyICYgLTY1NTM3IHwgMTI4LCB3b3JrSW5Qcm9ncmVzczIpIDogbnVsbDsKICAgICAgICAgIGNhc2UgMjY6CiAgICAgICAgICBjYXNlIDI3OgogICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICByZXR1cm4gcG9wSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MyKSwgbnVsbDsKICAgICAgICAgIGNhc2UgMzE6CiAgICAgICAgICAgIGlmIChudWxsICE9PSB3b3JrSW5Qcm9ncmVzczIubWVtb2l6ZWRTdGF0ZSkgewogICAgICAgICAgICAgIHBvcFN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzczIpOwogICAgICAgICAgICAgIGlmIChudWxsID09PSB3b3JrSW5Qcm9ncmVzczIuYWx0ZXJuYXRlKQogICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAgICJUaHJldyBpbiBuZXdseSBtb3VudGVkIGRlaHlkcmF0ZWQgY29tcG9uZW50LiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICByZXNldEh5ZHJhdGlvblN0YXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3VycmVudDIgPSB3b3JrSW5Qcm9ncmVzczIuZmxhZ3M7CiAgICAgICAgICAgIHJldHVybiBjdXJyZW50MiAmIDY1NTM2ID8gKHdvcmtJblByb2dyZXNzMi5mbGFncyA9IGN1cnJlbnQyICYgLTY1NTM3IHwgMTI4LCAod29ya0luUHJvZ3Jlc3MyLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKHdvcmtJblByb2dyZXNzMiksIHdvcmtJblByb2dyZXNzMikgOiBudWxsOwogICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzMik7CiAgICAgICAgICAgIGN1cnJlbnQyID0gd29ya0luUHJvZ3Jlc3MyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgICAgIGlmIChudWxsICE9PSBjdXJyZW50MiAmJiBudWxsICE9PSBjdXJyZW50Mi5kZWh5ZHJhdGVkKSB7CiAgICAgICAgICAgICAgaWYgKG51bGwgPT09IHdvcmtJblByb2dyZXNzMi5hbHRlcm5hdGUpCiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICAgIlRocmV3IGluIG5ld2x5IG1vdW50ZWQgZGVoeWRyYXRlZCBjb21wb25lbnQuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjdXJyZW50MiA9IHdvcmtJblByb2dyZXNzMi5mbGFnczsKICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQyICYgNjU1MzYgPyAod29ya0luUHJvZ3Jlc3MyLmZsYWdzID0gY3VycmVudDIgJiAtNjU1MzcgfCAxMjgsICh3b3JrSW5Qcm9ncmVzczIubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MyKSwgd29ya0luUHJvZ3Jlc3MyKSA6IG51bGw7CiAgICAgICAgICBjYXNlIDE5OgogICAgICAgICAgICByZXR1cm4gcG9wKHN1c3BlbnNlU3RhY2tDdXJzb3IsIHdvcmtJblByb2dyZXNzMiksIG51bGw7CiAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIHJldHVybiBwb3BIb3N0Q29udGFpbmVyKHdvcmtJblByb2dyZXNzMiksIG51bGw7CiAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICByZXR1cm4gcG9wUHJvdmlkZXIod29ya0luUHJvZ3Jlc3MyLnR5cGUsIHdvcmtJblByb2dyZXNzMiksIG51bGw7CiAgICAgICAgICBjYXNlIDIyOgogICAgICAgICAgY2FzZSAyMzoKICAgICAgICAgICAgcmV0dXJuIHBvcFN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzczIpLCBwb3BIaWRkZW5Db250ZXh0KHdvcmtJblByb2dyZXNzMiksIG51bGwgIT09IGN1cnJlbnQyICYmIHBvcChyZXN1bWVkQ2FjaGUsIHdvcmtJblByb2dyZXNzMiksIGN1cnJlbnQyID0gd29ya0luUHJvZ3Jlc3MyLmZsYWdzLCBjdXJyZW50MiAmIDY1NTM2ID8gKHdvcmtJblByb2dyZXNzMi5mbGFncyA9IGN1cnJlbnQyICYgLTY1NTM3IHwgMTI4LCAod29ya0luUHJvZ3Jlc3MyLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKHdvcmtJblByb2dyZXNzMiksIHdvcmtJblByb2dyZXNzMikgOiBudWxsOwogICAgICAgICAgY2FzZSAyNDoKICAgICAgICAgICAgcmV0dXJuIHBvcFByb3ZpZGVyKENhY2hlQ29udGV4dCwgd29ya0luUHJvZ3Jlc3MyKSwgbnVsbDsKICAgICAgICAgIGNhc2UgMjU6CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVud2luZEludGVycnVwdGVkV29yayhjdXJyZW50MiwgaW50ZXJydXB0ZWRXb3JrKSB7CiAgICAgICAgcG9wVHJlZUNvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTsKICAgICAgICBzd2l0Y2ggKGludGVycnVwdGVkV29yay50YWcpIHsKICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgcG9wUHJvdmlkZXIoQ2FjaGVDb250ZXh0LCBpbnRlcnJ1cHRlZFdvcmspOwogICAgICAgICAgICBwb3BIb3N0Q29udGFpbmVyKGludGVycnVwdGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyNjoKICAgICAgICAgIGNhc2UgMjc6CiAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIHBvcEhvc3RDb250ZXh0KGludGVycnVwdGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICBwb3BIb3N0Q29udGFpbmVyKGludGVycnVwdGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzMToKICAgICAgICAgICAgbnVsbCAhPT0gaW50ZXJydXB0ZWRXb3JrLm1lbW9pemVkU3RhdGUgJiYgcG9wU3VzcGVuc2VIYW5kbGVyKGludGVycnVwdGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKGludGVycnVwdGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxOToKICAgICAgICAgICAgcG9wKHN1c3BlbnNlU3RhY2tDdXJzb3IsIGludGVycnVwdGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgcG9wUHJvdmlkZXIoaW50ZXJydXB0ZWRXb3JrLnR5cGUsIGludGVycnVwdGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyMjoKICAgICAgICAgIGNhc2UgMjM6CiAgICAgICAgICAgIHBvcFN1c3BlbnNlSGFuZGxlcihpbnRlcnJ1cHRlZFdvcmspOwogICAgICAgICAgICBwb3BIaWRkZW5Db250ZXh0KGludGVycnVwdGVkV29yayk7CiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQyICYmIHBvcChyZXN1bWVkQ2FjaGUsIGludGVycnVwdGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyNDoKICAgICAgICAgICAgcG9wUHJvdmlkZXIoQ2FjaGVDb250ZXh0LCBpbnRlcnJ1cHRlZFdvcmspOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBzaG91bGRQcm9maWxlKGN1cnJlbnQyKSB7CiAgICAgICAgcmV0dXJuIChjdXJyZW50Mi5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0SG9va0xheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrLCBob29rRmxhZ3MpIHsKICAgICAgICBzaG91bGRQcm9maWxlKGZpbmlzaGVkV29yaykgPyAoc3RhcnRFZmZlY3RUaW1lcigpLCBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KGhvb2tGbGFncywgZmluaXNoZWRXb3JrKSwgcmVjb3JkRWZmZWN0RHVyYXRpb24oKSkgOiBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KGhvb2tGbGFncywgZmluaXNoZWRXb3JrKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRIb29rTGF5b3V0VW5tb3VudEVmZmVjdHMoZmluaXNoZWRXb3JrLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBob29rRmxhZ3MpIHsKICAgICAgICBzaG91bGRQcm9maWxlKGZpbmlzaGVkV29yaykgPyAoc3RhcnRFZmZlY3RUaW1lcigpLCBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoCiAgICAgICAgICBob29rRmxhZ3MsCiAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yCiAgICAgICAgKSwgcmVjb3JkRWZmZWN0RHVyYXRpb24oKSkgOiBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoCiAgICAgICAgICBob29rRmxhZ3MsCiAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KGZsYWdzLCBmaW5pc2hlZFdvcmspIHsKICAgICAgICB0cnkgewogICAgICAgICAgdmFyIHVwZGF0ZVF1ZXVlID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlLCBsYXN0RWZmZWN0ID0gbnVsbCAhPT0gdXBkYXRlUXVldWUgPyB1cGRhdGVRdWV1ZS5sYXN0RWZmZWN0IDogbnVsbDsKICAgICAgICAgIGlmIChudWxsICE9PSBsYXN0RWZmZWN0KSB7CiAgICAgICAgICAgIHZhciBmaXJzdEVmZmVjdCA9IGxhc3RFZmZlY3QubmV4dDsKICAgICAgICAgICAgdXBkYXRlUXVldWUgPSBmaXJzdEVmZmVjdDsKICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgIGlmICgodXBkYXRlUXVldWUudGFnICYgZmxhZ3MpID09PSBmbGFncyAmJiAobGFzdEVmZmVjdCA9IHZvaWQgMCwgKGZsYWdzICYgSW5zZXJ0aW9uKSAhPT0gTm9GbGFncyAmJiAoaXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0ID0gdHJ1ZSksIGxhc3RFZmZlY3QgPSBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICAgIGNhbGxDcmVhdGVJbkRFViwKICAgICAgICAgICAgICAgIHVwZGF0ZVF1ZXVlCiAgICAgICAgICAgICAgKSwgKGZsYWdzICYgSW5zZXJ0aW9uKSAhPT0gTm9GbGFncyAmJiAoaXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0ID0gZmFsc2UpLCB2b2lkIDAgIT09IGxhc3RFZmZlY3QgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIGxhc3RFZmZlY3QpKSB7CiAgICAgICAgICAgICAgICB2YXIgaG9va05hbWUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgICBob29rTmFtZSA9IDAgIT09ICh1cGRhdGVRdWV1ZS50YWcgJiBMYXlvdXQpID8gInVzZUxheW91dEVmZmVjdCIgOiAwICE9PSAodXBkYXRlUXVldWUudGFnICYgSW5zZXJ0aW9uKSA/ICJ1c2VJbnNlcnRpb25FZmZlY3QiIDogInVzZUVmZmVjdCI7CiAgICAgICAgICAgICAgICB2YXIgYWRkZW5kdW0gPSB2b2lkIDA7CiAgICAgICAgICAgICAgICBhZGRlbmR1bSA9IG51bGwgPT09IGxhc3RFZmZlY3QgPyAiIFlvdSByZXR1cm5lZCBudWxsLiBJZiB5b3VyIGVmZmVjdCBkb2VzIG5vdCByZXF1aXJlIGNsZWFuIHVwLCByZXR1cm4gdW5kZWZpbmVkIChvciBub3RoaW5nKS4iIDogImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGxhc3RFZmZlY3QudGhlbiA/ICJcblxuSXQgbG9va3MgbGlrZSB5b3Ugd3JvdGUgIiArIGhvb2tOYW1lICsgIihhc3luYyAoKSA9PiAuLi4pIG9yIHJldHVybmVkIGEgUHJvbWlzZS4gSW5zdGVhZCwgd3JpdGUgdGhlIGFzeW5jIGZ1bmN0aW9uIGluc2lkZSB5b3VyIGVmZmVjdCBhbmQgY2FsbCBpdCBpbW1lZGlhdGVseTpcblxuIiArIGhvb2tOYW1lICsgIigoKSA9PiB7XG4gIGFzeW5jIGZ1bmN0aW9uIGZldGNoRGF0YSgpIHtcbiAgICAvLyBZb3UgY2FuIGF3YWl0IGhlcmVcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IE15QVBJLmdldERhdGEoc29tZUlkKTtcbiAgICAvLyAuLi5cbiAgfVxuICBmZXRjaERhdGEoKTtcbn0sIFtzb21lSWRdKTsgLy8gT3IgW10gaWYgZWZmZWN0IGRvZXNuJ3QgbmVlZCBwcm9wcyBvciBzdGF0ZVxuXG5MZWFybiBtb3JlIGFib3V0IGRhdGEgZmV0Y2hpbmcgd2l0aCBIb29rczogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9ob29rcy1kYXRhLWZldGNoaW5nIiA6ICIgWW91IHJldHVybmVkOiAiICsgbGFzdEVmZmVjdDsKICAgICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKG4sIGEpIHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgICAgICAgIiVzIG11c3Qgbm90IHJldHVybiBhbnl0aGluZyBiZXNpZGVzIGEgZnVuY3Rpb24sIHdoaWNoIGlzIHVzZWQgZm9yIGNsZWFuLXVwLiVzIiwKICAgICAgICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICAgICAgICBhCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgaG9va05hbWUsCiAgICAgICAgICAgICAgICAgIGFkZGVuZHVtCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB1cGRhdGVRdWV1ZSA9IHVwZGF0ZVF1ZXVlLm5leHQ7CiAgICAgICAgICAgIH0gd2hpbGUgKHVwZGF0ZVF1ZXVlICE9PSBmaXJzdEVmZmVjdCk7CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoZmxhZ3MsIGZpbmlzaGVkV29yaywgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcikgewogICAgICAgIHRyeSB7CiAgICAgICAgICB2YXIgdXBkYXRlUXVldWUgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUsIGxhc3RFZmZlY3QgPSBudWxsICE9PSB1cGRhdGVRdWV1ZSA/IHVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgOiBudWxsOwogICAgICAgICAgaWYgKG51bGwgIT09IGxhc3RFZmZlY3QpIHsKICAgICAgICAgICAgdmFyIGZpcnN0RWZmZWN0ID0gbGFzdEVmZmVjdC5uZXh0OwogICAgICAgICAgICB1cGRhdGVRdWV1ZSA9IGZpcnN0RWZmZWN0OwogICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgaWYgKCh1cGRhdGVRdWV1ZS50YWcgJiBmbGFncykgPT09IGZsYWdzKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5zdCA9IHVwZGF0ZVF1ZXVlLmluc3QsIGRlc3Ryb3kgPSBpbnN0LmRlc3Ryb3k7CiAgICAgICAgICAgICAgICB2b2lkIDAgIT09IGRlc3Ryb3kgJiYgKGluc3QuZGVzdHJveSA9IHZvaWQgMCwgKGZsYWdzICYgSW5zZXJ0aW9uKSAhPT0gTm9GbGFncyAmJiAoaXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0ID0gdHJ1ZSksIGxhc3RFZmZlY3QgPSBmaW5pc2hlZFdvcmssIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgICAgICBsYXN0RWZmZWN0LAogICAgICAgICAgICAgICAgICBjYWxsRGVzdHJveUluREVWLAogICAgICAgICAgICAgICAgICBsYXN0RWZmZWN0LAogICAgICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLAogICAgICAgICAgICAgICAgICBkZXN0cm95CiAgICAgICAgICAgICAgICApLCAoZmxhZ3MgJiBJbnNlcnRpb24pICE9PSBOb0ZsYWdzICYmIChpc1J1bm5pbmdJbnNlcnRpb25FZmZlY3QgPSBmYWxzZSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB1cGRhdGVRdWV1ZSA9IHVwZGF0ZVF1ZXVlLm5leHQ7CiAgICAgICAgICAgIH0gd2hpbGUgKHVwZGF0ZVF1ZXVlICE9PSBmaXJzdEVmZmVjdCk7CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRIb29rUGFzc2l2ZU1vdW50RWZmZWN0cyhmaW5pc2hlZFdvcmssIGhvb2tGbGFncykgewogICAgICAgIHNob3VsZFByb2ZpbGUoZmluaXNoZWRXb3JrKSA/IChzdGFydEVmZmVjdFRpbWVyKCksIGNvbW1pdEhvb2tFZmZlY3RMaXN0TW91bnQoaG9va0ZsYWdzLCBmaW5pc2hlZFdvcmspLCByZWNvcmRFZmZlY3REdXJhdGlvbigpKSA6IGNvbW1pdEhvb2tFZmZlY3RMaXN0TW91bnQoaG9va0ZsYWdzLCBmaW5pc2hlZFdvcmspOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNvbW1pdEhvb2tQYXNzaXZlVW5tb3VudEVmZmVjdHMoZmluaXNoZWRXb3JrLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBob29rRmxhZ3MpIHsKICAgICAgICBzaG91bGRQcm9maWxlKGZpbmlzaGVkV29yaykgPyAoc3RhcnRFZmZlY3RUaW1lcigpLCBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoCiAgICAgICAgICBob29rRmxhZ3MsCiAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yCiAgICAgICAgKSwgcmVjb3JkRWZmZWN0RHVyYXRpb24oKSkgOiBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoCiAgICAgICAgICBob29rRmxhZ3MsCiAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRDbGFzc0NhbGxiYWNrcyhmaW5pc2hlZFdvcmspIHsKICAgICAgICB2YXIgdXBkYXRlUXVldWUgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7CiAgICAgICAgaWYgKG51bGwgIT09IHVwZGF0ZVF1ZXVlKSB7CiAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlOwogICAgICAgICAgZmluaXNoZWRXb3JrLnR5cGUuZGVmYXVsdFByb3BzIHx8ICJyZWYiIGluIGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzIHx8IGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMgfHwgKGluc3RhbmNlLnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiRXhwZWN0ZWQgJXMgcHJvcHMgdG8gbWF0Y2ggbWVtb2l6ZWQgcHJvcHMgYmVmb3JlIHByb2Nlc3NpbmcgdGhlIHVwZGF0ZSBxdWV1ZS4gVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSBhIGNvbXBvbmVudCByZWFzc2lnbnMgaXRzIG93biBgdGhpcy5wcm9wc2AuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIsCiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCAiaW5zdGFuY2UiCiAgICAgICAgICApLCBpbnN0YW5jZS5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIkV4cGVjdGVkICVzIHN0YXRlIHRvIG1hdGNoIG1lbW9pemVkIHN0YXRlIGJlZm9yZSBwcm9jZXNzaW5nIHRoZSB1cGRhdGUgcXVldWUuIFRoaXMgbWlnaHQgZWl0aGVyIGJlIGJlY2F1c2Ugb2YgYSBidWcgaW4gUmVhY3QsIG9yIGJlY2F1c2UgYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMuc3RhdGVgLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iLAogICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgImluc3RhbmNlIgogICAgICAgICAgKSk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgY29tbWl0Q2FsbGJhY2tzLAogICAgICAgICAgICAgIHVwZGF0ZVF1ZXVlLAogICAgICAgICAgICAgIGluc3RhbmNlCiAgICAgICAgICAgICk7CiAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY2FsbEdldFNuYXBzaG90QmVmb3JlVXBkYXRlcyhpbnN0YW5jZSwgcHJldlByb3BzLCBwcmV2U3RhdGUpIHsKICAgICAgICByZXR1cm4gaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNvbW1pdENsYXNzU25hcHNob3QoZmluaXNoZWRXb3JrLCBjdXJyZW50MikgewogICAgICAgIHZhciBwcmV2UHJvcHMgPSBjdXJyZW50Mi5tZW1vaXplZFByb3BzLCBwcmV2U3RhdGUgPSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlOwogICAgICAgIGN1cnJlbnQyID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsKICAgICAgICBmaW5pc2hlZFdvcmsudHlwZS5kZWZhdWx0UHJvcHMgfHwgInJlZiIgaW4gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMgfHwgZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyB8fCAoY3VycmVudDIucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiRXhwZWN0ZWQgJXMgcHJvcHMgdG8gbWF0Y2ggbWVtb2l6ZWQgcHJvcHMgYmVmb3JlIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlLiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnByb3BzYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIiwKICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCAiaW5zdGFuY2UiCiAgICAgICAgKSwgY3VycmVudDIuc3RhdGUgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiRXhwZWN0ZWQgJXMgc3RhdGUgdG8gbWF0Y2ggbWVtb2l6ZWQgc3RhdGUgYmVmb3JlIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlLiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIiwKICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCAiaW5zdGFuY2UiCiAgICAgICAgKSk7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHZhciByZXNvbHZlZFByZXZQcm9wcyA9IHJlc29sdmVDbGFzc0NvbXBvbmVudFByb3BzKAogICAgICAgICAgICBmaW5pc2hlZFdvcmsudHlwZSwKICAgICAgICAgICAgcHJldlByb3BzCiAgICAgICAgICApOwogICAgICAgICAgdmFyIHNuYXBzaG90ID0gcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgY2FsbEdldFNuYXBzaG90QmVmb3JlVXBkYXRlcywKICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgIHJlc29sdmVkUHJldlByb3BzLAogICAgICAgICAgICBwcmV2U3RhdGUKICAgICAgICAgICk7CiAgICAgICAgICBwcmV2UHJvcHMgPSBkaWRXYXJuQWJvdXRVbmRlZmluZWRTbmFwc2hvdEJlZm9yZVVwZGF0ZTsKICAgICAgICAgIHZvaWQgMCAhPT0gc25hcHNob3QgfHwgcHJldlByb3BzLmhhcyhmaW5pc2hlZFdvcmsudHlwZSkgfHwgKHByZXZQcm9wcy5hZGQoZmluaXNoZWRXb3JrLnR5cGUpLCBydW5XaXRoRmliZXJJbkRFVihmaW5pc2hlZFdvcmssIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICIlcy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpOiBBIHNuYXBzaG90IHZhbHVlIChvciBudWxsKSBtdXN0IGJlIHJldHVybmVkLiBZb3UgaGF2ZSByZXR1cm5lZCB1bmRlZmluZWQuIiwKICAgICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pKTsKICAgICAgICAgIGN1cnJlbnQyLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlID0gc25hcHNob3Q7CiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBzYWZlbHlDYWxsQ29tcG9uZW50V2lsbFVubW91bnQoY3VycmVudDIsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGluc3RhbmNlKSB7CiAgICAgICAgaW5zdGFuY2UucHJvcHMgPSByZXNvbHZlQ2xhc3NDb21wb25lbnRQcm9wcygKICAgICAgICAgIGN1cnJlbnQyLnR5cGUsCiAgICAgICAgICBjdXJyZW50Mi5tZW1vaXplZFByb3BzCiAgICAgICAgKTsKICAgICAgICBpbnN0YW5jZS5zdGF0ZSA9IGN1cnJlbnQyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgc2hvdWxkUHJvZmlsZShjdXJyZW50MikgPyAoc3RhcnRFZmZlY3RUaW1lcigpLCBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgY2FsbENvbXBvbmVudFdpbGxVbm1vdW50SW5ERVYsCiAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsCiAgICAgICAgICBpbnN0YW5jZQogICAgICAgICksIHJlY29yZEVmZmVjdER1cmF0aW9uKCkpIDogcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgIGNhbGxDb21wb25lbnRXaWxsVW5tb3VudEluREVWLAogICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLAogICAgICAgICAgaW5zdGFuY2UKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNvbW1pdEF0dGFjaFJlZihmaW5pc2hlZFdvcmspIHsKICAgICAgICB2YXIgcmVmID0gZmluaXNoZWRXb3JrLnJlZjsKICAgICAgICBpZiAobnVsbCAhPT0gcmVmKSB7CiAgICAgICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHsKICAgICAgICAgICAgY2FzZSAyNjoKICAgICAgICAgICAgY2FzZSAyNzoKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIHZhciBpbnN0YW5jZVRvVXNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzMDoKICAgICAgICAgICAgICBpbnN0YW5jZVRvVXNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICBpbnN0YW5jZVRvVXNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgcmVmKQogICAgICAgICAgICBpZiAoc2hvdWxkUHJvZmlsZShmaW5pc2hlZFdvcmspKQogICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBzdGFydEVmZmVjdFRpbWVyKCksIGZpbmlzaGVkV29yay5yZWZDbGVhbnVwID0gcmVmKGluc3RhbmNlVG9Vc2UpOwogICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICByZWNvcmRFZmZlY3REdXJhdGlvbigpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBmaW5pc2hlZFdvcmsucmVmQ2xlYW51cCA9IHJlZihpbnN0YW5jZVRvVXNlKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgInN0cmluZyIgPT09IHR5cGVvZiByZWYgPyBjb25zb2xlLmVycm9yKCJTdHJpbmcgcmVmcyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZC4iKSA6IHJlZi5oYXNPd25Qcm9wZXJ0eSgiY3VycmVudCIpIHx8IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIlVuZXhwZWN0ZWQgcmVmIG9iamVjdCBwcm92aWRlZCBmb3IgJXMuIFVzZSBlaXRoZXIgYSByZWYtc2V0dGVyIGZ1bmN0aW9uIG9yIFJlYWN0LmNyZWF0ZVJlZigpLiIsCiAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaW5pc2hlZFdvcmspCiAgICAgICAgICAgICksIHJlZi5jdXJyZW50ID0gaW5zdGFuY2VUb1VzZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2FmZWx5QXR0YWNoUmVmKGN1cnJlbnQyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKGN1cnJlbnQyLCBjb21taXRBdHRhY2hSZWYsIGN1cnJlbnQyKTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY3VycmVudDIsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGVycm9yKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2FmZWx5RGV0YWNoUmVmKGN1cnJlbnQyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKSB7CiAgICAgICAgdmFyIHJlZiA9IGN1cnJlbnQyLnJlZiwgcmVmQ2xlYW51cCA9IGN1cnJlbnQyLnJlZkNsZWFudXA7CiAgICAgICAgaWYgKG51bGwgIT09IHJlZikKICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgcmVmQ2xlYW51cCkKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBpZiAoc2hvdWxkUHJvZmlsZShjdXJyZW50MikpCiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBzdGFydEVmZmVjdFRpbWVyKCksIHJ1bldpdGhGaWJlckluREVWKGN1cnJlbnQyLCByZWZDbGVhbnVwKTsKICAgICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICAgIHJlY29yZEVmZmVjdER1cmF0aW9uKGN1cnJlbnQyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHJ1bldpdGhGaWJlckluREVWKGN1cnJlbnQyLCByZWZDbGVhbnVwKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihjdXJyZW50MiwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGN1cnJlbnQyLnJlZkNsZWFudXAgPSBudWxsLCBjdXJyZW50MiA9IGN1cnJlbnQyLmFsdGVybmF0ZSwgbnVsbCAhPSBjdXJyZW50MiAmJiAoY3VycmVudDIucmVmQ2xlYW51cCA9IG51bGwpOwogICAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgcmVmKQogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGlmIChzaG91bGRQcm9maWxlKGN1cnJlbnQyKSkKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgIHN0YXJ0RWZmZWN0VGltZXIoKSwgcnVuV2l0aEZpYmVySW5ERVYoY3VycmVudDIsIHJlZiwgbnVsbCk7CiAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgICByZWNvcmRFZmZlY3REdXJhdGlvbihjdXJyZW50Mik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSBydW5XaXRoRmliZXJJbkRFVihjdXJyZW50MiwgcmVmLCBudWxsKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IkNykgewogICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBlcnJvciQ3KTsKICAgICAgICAgICAgfQogICAgICAgICAgZWxzZSByZWYuY3VycmVudCA9IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0UHJvZmlsZXIoZmluaXNoZWRXb3JrLCBjdXJyZW50MiwgY29tbWl0U3RhcnRUaW1lMiwgZWZmZWN0RHVyYXRpb24pIHsKICAgICAgICB2YXIgX2ZpbmlzaGVkV29yayRtZW1vaXplID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMsIGlkID0gX2ZpbmlzaGVkV29yayRtZW1vaXplLmlkLCBvbkNvbW1pdCA9IF9maW5pc2hlZFdvcmskbWVtb2l6ZS5vbkNvbW1pdDsKICAgICAgICBfZmluaXNoZWRXb3JrJG1lbW9pemUgPSBfZmluaXNoZWRXb3JrJG1lbW9pemUub25SZW5kZXI7CiAgICAgICAgY3VycmVudDIgPSBudWxsID09PSBjdXJyZW50MiA/ICJtb3VudCIgOiAidXBkYXRlIjsKICAgICAgICBjdXJyZW50VXBkYXRlSXNOZXN0ZWQgJiYgKGN1cnJlbnQyID0gIm5lc3RlZC11cGRhdGUiKTsKICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgX2ZpbmlzaGVkV29yayRtZW1vaXplICYmIF9maW5pc2hlZFdvcmskbWVtb2l6ZSgKICAgICAgICAgIGlkLAogICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICBmaW5pc2hlZFdvcmsuYWN0dWFsRHVyYXRpb24sCiAgICAgICAgICBmaW5pc2hlZFdvcmsudHJlZUJhc2VEdXJhdGlvbiwKICAgICAgICAgIGZpbmlzaGVkV29yay5hY3R1YWxTdGFydFRpbWUsCiAgICAgICAgICBjb21taXRTdGFydFRpbWUyCiAgICAgICAgKTsKICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2Ygb25Db21taXQgJiYgb25Db21taXQoaWQsIGN1cnJlbnQyLCBlZmZlY3REdXJhdGlvbiwgY29tbWl0U3RhcnRUaW1lMik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0UHJvZmlsZXJQb3N0Q29tbWl0SW1wbChmaW5pc2hlZFdvcmssIGN1cnJlbnQyLCBjb21taXRTdGFydFRpbWUyLCBwYXNzaXZlRWZmZWN0RHVyYXRpb24pIHsKICAgICAgICB2YXIgX2ZpbmlzaGVkV29yayRtZW1vaXplMiA9IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzOwogICAgICAgIGZpbmlzaGVkV29yayA9IF9maW5pc2hlZFdvcmskbWVtb2l6ZTIuaWQ7CiAgICAgICAgX2ZpbmlzaGVkV29yayRtZW1vaXplMiA9IF9maW5pc2hlZFdvcmskbWVtb2l6ZTIub25Qb3N0Q29tbWl0OwogICAgICAgIGN1cnJlbnQyID0gbnVsbCA9PT0gY3VycmVudDIgPyAibW91bnQiIDogInVwZGF0ZSI7CiAgICAgICAgY3VycmVudFVwZGF0ZUlzTmVzdGVkICYmIChjdXJyZW50MiA9ICJuZXN0ZWQtdXBkYXRlIik7CiAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9maW5pc2hlZFdvcmskbWVtb2l6ZTIgJiYgX2ZpbmlzaGVkV29yayRtZW1vaXplMigKICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgcGFzc2l2ZUVmZmVjdER1cmF0aW9uLAogICAgICAgICAgY29tbWl0U3RhcnRUaW1lMgogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0SG9zdE1vdW50KGZpbmlzaGVkV29yaykgewogICAgICAgIHZhciB0eXBlID0gZmluaXNoZWRXb3JrLnR5cGUsIHByb3BzID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMsIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsKICAgICAgICB0cnkgewogICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgY29tbWl0TW91bnQsCiAgICAgICAgICAgIGluc3RhbmNlLAogICAgICAgICAgICB0eXBlLAogICAgICAgICAgICBwcm9wcywKICAgICAgICAgICAgZmluaXNoZWRXb3JrCiAgICAgICAgICApOwogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0SG9zdFVwZGF0ZShmaW5pc2hlZFdvcmssIG5ld1Byb3BzLCBvbGRQcm9wcykgewogICAgICAgIHRyeSB7CiAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICBjb21taXRVcGRhdGUsCiAgICAgICAgICAgIGZpbmlzaGVkV29yay5zdGF0ZU5vZGUsCiAgICAgICAgICAgIGZpbmlzaGVkV29yay50eXBlLAogICAgICAgICAgICBvbGRQcm9wcywKICAgICAgICAgICAgbmV3UHJvcHMsCiAgICAgICAgICAgIGZpbmlzaGVkV29yawogICAgICAgICAgKTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzSG9zdFBhcmVudChmaWJlcikgewogICAgICAgIHJldHVybiA1ID09PSBmaWJlci50YWcgfHwgMyA9PT0gZmliZXIudGFnIHx8IDI2ID09PSBmaWJlci50YWcgfHwgMjcgPT09IGZpYmVyLnRhZyAmJiBpc1NpbmdsZXRvblNjb3BlKGZpYmVyLnR5cGUpIHx8IDQgPT09IGZpYmVyLnRhZzsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRIb3N0U2libGluZyhmaWJlcikgewogICAgICAgIGE6IGZvciAoOyA7ICkgewogICAgICAgICAgZm9yICg7IG51bGwgPT09IGZpYmVyLnNpYmxpbmc7ICkgewogICAgICAgICAgICBpZiAobnVsbCA9PT0gZmliZXIucmV0dXJuIHx8IGlzSG9zdFBhcmVudChmaWJlci5yZXR1cm4pKSByZXR1cm4gbnVsbDsKICAgICAgICAgICAgZmliZXIgPSBmaWJlci5yZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBmaWJlci5zaWJsaW5nLnJldHVybiA9IGZpYmVyLnJldHVybjsKICAgICAgICAgIGZvciAoZmliZXIgPSBmaWJlci5zaWJsaW5nOyA1ICE9PSBmaWJlci50YWcgJiYgNiAhPT0gZmliZXIudGFnICYmIDE4ICE9PSBmaWJlci50YWc7ICkgewogICAgICAgICAgICBpZiAoMjcgPT09IGZpYmVyLnRhZyAmJiBpc1NpbmdsZXRvblNjb3BlKGZpYmVyLnR5cGUpKSBjb250aW51ZSBhOwogICAgICAgICAgICBpZiAoZmliZXIuZmxhZ3MgJiAyKSBjb250aW51ZSBhOwogICAgICAgICAgICBpZiAobnVsbCA9PT0gZmliZXIuY2hpbGQgfHwgNCA9PT0gZmliZXIudGFnKSBjb250aW51ZSBhOwogICAgICAgICAgICBlbHNlIGZpYmVyLmNoaWxkLnJldHVybiA9IGZpYmVyLCBmaWJlciA9IGZpYmVyLmNoaWxkOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCEoZmliZXIuZmxhZ3MgJiAyKSkgcmV0dXJuIGZpYmVyLnN0YXRlTm9kZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlSW50b0NvbnRhaW5lcihub2RlLCBiZWZvcmUsIHBhcmVudCkgewogICAgICAgIHZhciB0YWcgPSBub2RlLnRhZzsKICAgICAgICBpZiAoNSA9PT0gdGFnIHx8IDYgPT09IHRhZykKICAgICAgICAgIG5vZGUgPSBub2RlLnN0YXRlTm9kZSwgYmVmb3JlID8gKHdhcm5Gb3JSZWFjdENoaWxkcmVuQ29uZmxpY3QocGFyZW50KSwgKDkgPT09IHBhcmVudC5ub2RlVHlwZSA/IHBhcmVudC5ib2R5IDogIkhUTUwiID09PSBwYXJlbnQubm9kZU5hbWUgPyBwYXJlbnQub3duZXJEb2N1bWVudC5ib2R5IDogcGFyZW50KS5pbnNlcnRCZWZvcmUobm9kZSwgYmVmb3JlKSkgOiAod2FybkZvclJlYWN0Q2hpbGRyZW5Db25mbGljdChwYXJlbnQpLCBiZWZvcmUgPSA5ID09PSBwYXJlbnQubm9kZVR5cGUgPyBwYXJlbnQuYm9keSA6ICJIVE1MIiA9PT0gcGFyZW50Lm5vZGVOYW1lID8gcGFyZW50Lm93bmVyRG9jdW1lbnQuYm9keSA6IHBhcmVudCwgYmVmb3JlLmFwcGVuZENoaWxkKG5vZGUpLCBwYXJlbnQgPSBwYXJlbnQuX3JlYWN0Um9vdENvbnRhaW5lciwgbnVsbCAhPT0gcGFyZW50ICYmIHZvaWQgMCAhPT0gcGFyZW50IHx8IG51bGwgIT09IGJlZm9yZS5vbmNsaWNrIHx8IChiZWZvcmUub25jbGljayA9IG5vb3AkMSkpOwogICAgICAgIGVsc2UgaWYgKDQgIT09IHRhZyAmJiAoMjcgPT09IHRhZyAmJiBpc1NpbmdsZXRvblNjb3BlKG5vZGUudHlwZSkgJiYgKHBhcmVudCA9IG5vZGUuc3RhdGVOb2RlLCBiZWZvcmUgPSBudWxsKSwgbm9kZSA9IG5vZGUuY2hpbGQsIG51bGwgIT09IG5vZGUpKQogICAgICAgICAgZm9yIChpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKG5vZGUsIGJlZm9yZSwgcGFyZW50KSwgbm9kZSA9IG5vZGUuc2libGluZzsgbnVsbCAhPT0gbm9kZTsgKQogICAgICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKG5vZGUsIGJlZm9yZSwgcGFyZW50KSwgbm9kZSA9IG5vZGUuc2libGluZzsKICAgICAgfQogICAgICBmdW5jdGlvbiBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGUobm9kZSwgYmVmb3JlLCBwYXJlbnQpIHsKICAgICAgICB2YXIgdGFnID0gbm9kZS50YWc7CiAgICAgICAgaWYgKDUgPT09IHRhZyB8fCA2ID09PSB0YWcpCiAgICAgICAgICBub2RlID0gbm9kZS5zdGF0ZU5vZGUsIGJlZm9yZSA/IHBhcmVudC5pbnNlcnRCZWZvcmUobm9kZSwgYmVmb3JlKSA6IHBhcmVudC5hcHBlbmRDaGlsZChub2RlKTsKICAgICAgICBlbHNlIGlmICg0ICE9PSB0YWcgJiYgKDI3ID09PSB0YWcgJiYgaXNTaW5nbGV0b25TY29wZShub2RlLnR5cGUpICYmIChwYXJlbnQgPSBub2RlLnN0YXRlTm9kZSksIG5vZGUgPSBub2RlLmNoaWxkLCBudWxsICE9PSBub2RlKSkKICAgICAgICAgIGZvciAoaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlKG5vZGUsIGJlZm9yZSwgcGFyZW50KSwgbm9kZSA9IG5vZGUuc2libGluZzsgbnVsbCAhPT0gbm9kZTsgKQogICAgICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGUobm9kZSwgYmVmb3JlLCBwYXJlbnQpLCBub2RlID0gbm9kZS5zaWJsaW5nOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNvbW1pdFBsYWNlbWVudChmaW5pc2hlZFdvcmspIHsKICAgICAgICBmb3IgKHZhciBob3N0UGFyZW50RmliZXIsIHBhcmVudEZpYmVyID0gZmluaXNoZWRXb3JrLnJldHVybjsgbnVsbCAhPT0gcGFyZW50RmliZXI7ICkgewogICAgICAgICAgaWYgKGlzSG9zdFBhcmVudChwYXJlbnRGaWJlcikpIHsKICAgICAgICAgICAgaG9zdFBhcmVudEZpYmVyID0gcGFyZW50RmliZXI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgcGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5yZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChudWxsID09IGhvc3RQYXJlbnRGaWJlcikKICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAiRXhwZWN0ZWQgdG8gZmluZCBhIGhvc3QgcGFyZW50LiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICAgICk7CiAgICAgICAgc3dpdGNoIChob3N0UGFyZW50RmliZXIudGFnKSB7CiAgICAgICAgICBjYXNlIDI3OgogICAgICAgICAgICBob3N0UGFyZW50RmliZXIgPSBob3N0UGFyZW50RmliZXIuc3RhdGVOb2RlOwogICAgICAgICAgICBwYXJlbnRGaWJlciA9IGdldEhvc3RTaWJsaW5nKGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZSgKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgcGFyZW50RmliZXIsCiAgICAgICAgICAgICAgaG9zdFBhcmVudEZpYmVyCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBwYXJlbnRGaWJlciA9IGhvc3RQYXJlbnRGaWJlci5zdGF0ZU5vZGU7CiAgICAgICAgICAgIGhvc3RQYXJlbnRGaWJlci5mbGFncyAmIDMyICYmIChyZXNldFRleHRDb250ZW50KHBhcmVudEZpYmVyKSwgaG9zdFBhcmVudEZpYmVyLmZsYWdzICY9IC0zMyk7CiAgICAgICAgICAgIGhvc3RQYXJlbnRGaWJlciA9IGdldEhvc3RTaWJsaW5nKGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZSgKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgaG9zdFBhcmVudEZpYmVyLAogICAgICAgICAgICAgIHBhcmVudEZpYmVyCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICBob3N0UGFyZW50RmliZXIgPSBob3N0UGFyZW50RmliZXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87CiAgICAgICAgICAgIHBhcmVudEZpYmVyID0gZ2V0SG9zdFNpYmxpbmcoZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlSW50b0NvbnRhaW5lcigKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgcGFyZW50RmliZXIsCiAgICAgICAgICAgICAgaG9zdFBhcmVudEZpYmVyCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgIkludmFsaWQgaG9zdCBwYXJlbnQgZmliZXIuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRIb3N0U2luZ2xldG9uQWNxdWlzaXRpb24oZmluaXNoZWRXb3JrKSB7CiAgICAgICAgdmFyIHNpbmdsZXRvbiA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUsIHByb3BzID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgIGFjcXVpcmVTaW5nbGV0b25JbnN0YW5jZSwKICAgICAgICAgICAgZmluaXNoZWRXb3JrLnR5cGUsCiAgICAgICAgICAgIHByb3BzLAogICAgICAgICAgICBzaW5nbGV0b24sCiAgICAgICAgICAgIGZpbmlzaGVkV29yawogICAgICAgICAgKTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzSHlkcmF0aW5nUGFyZW50KGN1cnJlbnQyLCBmaW5pc2hlZFdvcmspIHsKICAgICAgICByZXR1cm4gMzEgPT09IGZpbmlzaGVkV29yay50YWcgPyAoZmluaXNoZWRXb3JrID0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUsIG51bGwgIT09IGN1cnJlbnQyLm1lbW9pemVkU3RhdGUgJiYgbnVsbCA9PT0gZmluaXNoZWRXb3JrKSA6IDEzID09PSBmaW5pc2hlZFdvcmsudGFnID8gKGN1cnJlbnQyID0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZSwgZmluaXNoZWRXb3JrID0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUsIG51bGwgIT09IGN1cnJlbnQyICYmIG51bGwgIT09IGN1cnJlbnQyLmRlaHlkcmF0ZWQgJiYgKG51bGwgPT09IGZpbmlzaGVkV29yayB8fCBudWxsID09PSBmaW5pc2hlZFdvcmsuZGVoeWRyYXRlZCkpIDogMyA9PT0gZmluaXNoZWRXb3JrLnRhZyA/IGN1cnJlbnQyLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkICYmIDAgPT09IChmaW5pc2hlZFdvcmsuZmxhZ3MgJiAyNTYpIDogZmFsc2U7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0QmVmb3JlTXV0YXRpb25FZmZlY3RzKHJvb3QyLCBmaXJzdENoaWxkKSB7CiAgICAgICAgcm9vdDIgPSByb290Mi5jb250YWluZXJJbmZvOwogICAgICAgIGV2ZW50c0VuYWJsZWQgPSBfZW5hYmxlZDsKICAgICAgICByb290MiA9IGdldEFjdGl2ZUVsZW1lbnREZWVwKHJvb3QyKTsKICAgICAgICBpZiAoaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzKHJvb3QyKSkgewogICAgICAgICAgaWYgKCJzZWxlY3Rpb25TdGFydCIgaW4gcm9vdDIpCiAgICAgICAgICAgIHZhciBKU0NvbXBpbGVyX3RlbXAgPSB7CiAgICAgICAgICAgICAgc3RhcnQ6IHJvb3QyLnNlbGVjdGlvblN0YXJ0LAogICAgICAgICAgICAgIGVuZDogcm9vdDIuc2VsZWN0aW9uRW5kCiAgICAgICAgICAgIH07CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIGE6IHsKICAgICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPSAoSlNDb21waWxlcl90ZW1wID0gcm9vdDIub3duZXJEb2N1bWVudCkgJiYgSlNDb21waWxlcl90ZW1wLmRlZmF1bHRWaWV3IHx8IHdpbmRvdzsKICAgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gSlNDb21waWxlcl90ZW1wLmdldFNlbGVjdGlvbiAmJiBKU0NvbXBpbGVyX3RlbXAuZ2V0U2VsZWN0aW9uKCk7CiAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiAwICE9PSBzZWxlY3Rpb24ucmFuZ2VDb3VudCkgewogICAgICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wID0gc2VsZWN0aW9uLmFuY2hvck5vZGU7CiAgICAgICAgICAgICAgICB2YXIgYW5jaG9yT2Zmc2V0ID0gc2VsZWN0aW9uLmFuY2hvck9mZnNldCwgZm9jdXNOb2RlID0gc2VsZWN0aW9uLmZvY3VzTm9kZTsKICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9IHNlbGVjdGlvbi5mb2N1c09mZnNldDsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcC5ub2RlVHlwZSwgZm9jdXNOb2RlLm5vZGVUeXBlOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSQyKSB7CiAgICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcCA9IG51bGw7CiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gMCwgc3RhcnQgPSAtMSwgZW5kID0gLTEsIGluZGV4V2l0aGluQW5jaG9yID0gMCwgaW5kZXhXaXRoaW5Gb2N1cyA9IDAsIG5vZGUgPSByb290MiwgcGFyZW50Tm9kZSA9IG51bGw7CiAgICAgICAgICAgICAgICBiOiBmb3IgKDsgOyApIHsKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbmV4dDsgOyApIHsKICAgICAgICAgICAgICAgICAgICBub2RlICE9PSBKU0NvbXBpbGVyX3RlbXAgfHwgMCAhPT0gYW5jaG9yT2Zmc2V0ICYmIDMgIT09IG5vZGUubm9kZVR5cGUgfHwgKHN0YXJ0ID0gbGVuZ3RoICsgYW5jaG9yT2Zmc2V0KTsKICAgICAgICAgICAgICAgICAgICBub2RlICE9PSBmb2N1c05vZGUgfHwgMCAhPT0gc2VsZWN0aW9uICYmIDMgIT09IG5vZGUubm9kZVR5cGUgfHwgKGVuZCA9IGxlbmd0aCArIHNlbGVjdGlvbik7CiAgICAgICAgICAgICAgICAgICAgMyA9PT0gbm9kZS5ub2RlVHlwZSAmJiAobGVuZ3RoICs9IG5vZGUubm9kZVZhbHVlLmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IChuZXh0ID0gbm9kZS5maXJzdENoaWxkKSkgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IG5vZGU7CiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IG5leHQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZm9yICg7IDsgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUgPT09IHJvb3QyKSBicmVhayBiOwogICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPT09IEpTQ29tcGlsZXJfdGVtcCAmJiArK2luZGV4V2l0aGluQW5jaG9yID09PSBhbmNob3JPZmZzZXQgJiYgKHN0YXJ0ID0gbGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID09PSBmb2N1c05vZGUgJiYgKytpbmRleFdpdGhpbkZvY3VzID09PSBzZWxlY3Rpb24gJiYgKGVuZCA9IGxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IChuZXh0ID0gbm9kZS5uZXh0U2libGluZykpIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIG5vZGUgPSBwYXJlbnROb2RlOwogICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSBub2RlLnBhcmVudE5vZGU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgbm9kZSA9IG5leHQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPSAtMSA9PT0gc3RhcnQgfHwgLTEgPT09IGVuZCA/IG51bGwgOiB7IHN0YXJ0LCBlbmQgfTsKICAgICAgICAgICAgICB9IGVsc2UgSlNDb21waWxlcl90ZW1wID0gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgICAgSlNDb21waWxlcl90ZW1wID0gSlNDb21waWxlcl90ZW1wIHx8IHsgc3RhcnQ6IDAsIGVuZDogMCB9OwogICAgICAgIH0gZWxzZSBKU0NvbXBpbGVyX3RlbXAgPSBudWxsOwogICAgICAgIHNlbGVjdGlvbkluZm9ybWF0aW9uID0gewogICAgICAgICAgZm9jdXNlZEVsZW06IHJvb3QyLAogICAgICAgICAgc2VsZWN0aW9uUmFuZ2U6IEpTQ29tcGlsZXJfdGVtcAogICAgICAgIH07CiAgICAgICAgX2VuYWJsZWQgPSBmYWxzZTsKICAgICAgICBmb3IgKG5leHRFZmZlY3QgPSBmaXJzdENoaWxkOyBudWxsICE9PSBuZXh0RWZmZWN0OyApCiAgICAgICAgICBpZiAoZmlyc3RDaGlsZCA9IG5leHRFZmZlY3QsIHJvb3QyID0gZmlyc3RDaGlsZC5jaGlsZCwgMCAhPT0gKGZpcnN0Q2hpbGQuc3VidHJlZUZsYWdzICYgMTAyOCkgJiYgbnVsbCAhPT0gcm9vdDIpCiAgICAgICAgICAgIHJvb3QyLnJldHVybiA9IGZpcnN0Q2hpbGQsIG5leHRFZmZlY3QgPSByb290MjsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZm9yICg7IG51bGwgIT09IG5leHRFZmZlY3Q7ICkgewogICAgICAgICAgICAgIHJvb3QyID0gZmlyc3RDaGlsZCA9IG5leHRFZmZlY3Q7CiAgICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wID0gcm9vdDIuYWx0ZXJuYXRlOwogICAgICAgICAgICAgIGFuY2hvck9mZnNldCA9IHJvb3QyLmZsYWdzOwogICAgICAgICAgICAgIHN3aXRjaCAocm9vdDIudGFnKSB7CiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgIGlmICgwICE9PSAoYW5jaG9yT2Zmc2V0ICYgNCkgJiYgKHJvb3QyID0gcm9vdDIudXBkYXRlUXVldWUsIHJvb3QyID0gbnVsbCAhPT0gcm9vdDIgPyByb290Mi5ldmVudHMgOiBudWxsLCBudWxsICE9PSByb290MikpCiAgICAgICAgICAgICAgICAgICAgZm9yIChKU0NvbXBpbGVyX3RlbXAgPSAwOyBKU0NvbXBpbGVyX3RlbXAgPCByb290Mi5sZW5ndGg7IEpTQ29tcGlsZXJfdGVtcCsrKQogICAgICAgICAgICAgICAgICAgICAgYW5jaG9yT2Zmc2V0ID0gcm9vdDJbSlNDb21waWxlcl90ZW1wXSwgYW5jaG9yT2Zmc2V0LnJlZi5pbXBsID0gYW5jaG9yT2Zmc2V0Lm5leHRJbXBsOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgMCAhPT0gKGFuY2hvck9mZnNldCAmIDEwMjQpICYmIG51bGwgIT09IEpTQ29tcGlsZXJfdGVtcCAmJiBjb21taXRDbGFzc1NuYXBzaG90KHJvb3QyLCBKU0NvbXBpbGVyX3RlbXApOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgaWYgKDAgIT09IChhbmNob3JPZmZzZXQgJiAxMDI0KSkgewogICAgICAgICAgICAgICAgICAgIGlmIChyb290MiA9IHJvb3QyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLCBKU0NvbXBpbGVyX3RlbXAgPSByb290Mi5ub2RlVHlwZSwgOSA9PT0gSlNDb21waWxlcl90ZW1wKQogICAgICAgICAgICAgICAgICAgICAgY2xlYXJDb250YWluZXJTcGFyaW5nbHkocm9vdDIpOwogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKDEgPT09IEpTQ29tcGlsZXJfdGVtcCkKICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAocm9vdDIubm9kZU5hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiSEVBRCI6CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgIkhUTUwiOgogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJCT0RZIjoKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhckNvbnRhaW5lclNwYXJpbmdseShyb290Mik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdDIudGV4dENvbnRlbnQgPSAiIjsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIGNhc2UgMjY6CiAgICAgICAgICAgICAgICBjYXNlIDI3OgogICAgICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgY2FzZSAxNzoKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICBpZiAoMCAhPT0gKGFuY2hvck9mZnNldCAmIDEwMjQpKQogICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgICAgICAgIlRoaXMgdW5pdCBvZiB3b3JrIHRhZyBzaG91bGQgbm90IGhhdmUgc2lkZS1lZmZlY3RzLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByb290MiA9IGZpcnN0Q2hpbGQuc2libGluZzsKICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gcm9vdDIpIHsKICAgICAgICAgICAgICAgIHJvb3QyLnJldHVybiA9IGZpcnN0Q2hpbGQucmV0dXJuOwogICAgICAgICAgICAgICAgbmV4dEVmZmVjdCA9IHJvb3QyOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG5leHRFZmZlY3QgPSBmaXJzdENoaWxkLnJldHVybjsKICAgICAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNvbW1pdExheW91dEVmZmVjdE9uRmliZXIoZmluaXNoZWRSb290LCBjdXJyZW50MiwgZmluaXNoZWRXb3JrKSB7CiAgICAgICAgdmFyIHByZXZFZmZlY3RTdGFydCA9IHB1c2hDb21wb25lbnRFZmZlY3RTdGFydCgpLCBwcmV2RWZmZWN0RHVyYXRpb24gPSBwdXNoQ29tcG9uZW50RWZmZWN0RHVyYXRpb24oKSwgcHJldkVmZmVjdEVycm9ycyA9IHB1c2hDb21wb25lbnRFZmZlY3RFcnJvcnMoKSwgcHJldkVmZmVjdERpZFNwYXduVXBkYXRlID0gcHVzaENvbXBvbmVudEVmZmVjdERpZFNwYXduVXBkYXRlKCksIGZsYWdzID0gZmluaXNoZWRXb3JrLmZsYWdzOwogICAgICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykgewogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgZmxhZ3MgJiA0ICYmIGNvbW1pdEhvb2tMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yaywgTGF5b3V0IHwgSGFzRWZmZWN0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgaWYgKGZsYWdzICYgNCkKICAgICAgICAgICAgICBpZiAoZmluaXNoZWRSb290ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZSwgbnVsbCA9PT0gY3VycmVudDIpCiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsudHlwZS5kZWZhdWx0UHJvcHMgfHwgInJlZiIgaW4gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMgfHwgZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyB8fCAoZmluaXNoZWRSb290LnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQgJXMgcHJvcHMgdG8gbWF0Y2ggbWVtb2l6ZWQgcHJvcHMgYmVmb3JlIGNvbXBvbmVudERpZE1vdW50LiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnByb3BzYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIiwKICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaW5pc2hlZFdvcmspIHx8ICJpbnN0YW5jZSIKICAgICAgICAgICAgICAgICksIGZpbmlzaGVkUm9vdC5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkICVzIHN0YXRlIHRvIG1hdGNoIG1lbW9pemVkIHN0YXRlIGJlZm9yZSBjb21wb25lbnREaWRNb3VudC4gVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSBhIGNvbXBvbmVudCByZWFzc2lnbnMgaXRzIG93biBgdGhpcy5zdGF0ZWAuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIsCiAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCAiaW5zdGFuY2UiCiAgICAgICAgICAgICAgICApKSwgc2hvdWxkUHJvZmlsZShmaW5pc2hlZFdvcmspID8gKHN0YXJ0RWZmZWN0VGltZXIoKSwgcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICAgICAgY2FsbENvbXBvbmVudERpZE1vdW50SW5ERVYsCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICAgICAgZmluaXNoZWRSb290CiAgICAgICAgICAgICAgICApLCByZWNvcmRFZmZlY3REdXJhdGlvbigpKSA6IHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAgIGNhbGxDb21wb25lbnREaWRNb3VudEluREVWLAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBwcmV2UHJvcHMgPSByZXNvbHZlQ2xhc3NDb21wb25lbnRQcm9wcygKICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnR5cGUsCiAgICAgICAgICAgICAgICAgIGN1cnJlbnQyLm1lbW9pemVkUHJvcHMKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBjdXJyZW50MiA9IGN1cnJlbnQyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsudHlwZS5kZWZhdWx0UHJvcHMgfHwgInJlZiIgaW4gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMgfHwgZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyB8fCAoZmluaXNoZWRSb290LnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQgJXMgcHJvcHMgdG8gbWF0Y2ggbWVtb2l6ZWQgcHJvcHMgYmVmb3JlIGNvbXBvbmVudERpZFVwZGF0ZS4gVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSBhIGNvbXBvbmVudCByZWFzc2lnbnMgaXRzIG93biBgdGhpcy5wcm9wc2AuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIsCiAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCAiaW5zdGFuY2UiCiAgICAgICAgICAgICAgICApLCBmaW5pc2hlZFJvb3Quc3RhdGUgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgY29tcG9uZW50RGlkVXBkYXRlLiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIiwKICAgICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaW5pc2hlZFdvcmspIHx8ICJpbnN0YW5jZSIKICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgc2hvdWxkUHJvZmlsZShmaW5pc2hlZFdvcmspID8gKHN0YXJ0RWZmZWN0VGltZXIoKSwgcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICAgICAgY2FsbENvbXBvbmVudERpZFVwZGF0ZUluREVWLAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgICAgICAgcHJldlByb3BzLAogICAgICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICAgICAgZmluaXNoZWRSb290Ll9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlCiAgICAgICAgICAgICAgICApLCByZWNvcmRFZmZlY3REdXJhdGlvbigpKSA6IHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAgIGNhbGxDb21wb25lbnREaWRVcGRhdGVJbkRFViwKICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgICAgIHByZXZQcm9wcywKICAgICAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGZsYWdzICYgNjQgJiYgY29tbWl0Q2xhc3NDYWxsYmFja3MoZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgZmxhZ3MgJiA1MTIgJiYgc2FmZWx5QXR0YWNoUmVmKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICBjdXJyZW50MiA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTsKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZUxheW91dEVmZmVjdHMoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBpZiAoZmxhZ3MgJiA2NCAmJiAoZmxhZ3MgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUsIG51bGwgIT09IGZsYWdzKSkgewogICAgICAgICAgICAgIHByZXZQcm9wcyA9IG51bGw7CiAgICAgICAgICAgICAgaWYgKG51bGwgIT09IGZpbmlzaGVkV29yay5jaGlsZCkKICAgICAgICAgICAgICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLmNoaWxkLnRhZykgewogICAgICAgICAgICAgICAgICBjYXNlIDI3OgogICAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgICAgcHJldlByb3BzID0gZmluaXNoZWRXb3JrLmNoaWxkLnN0YXRlTm9kZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIHByZXZQcm9wcyA9IGZpbmlzaGVkV29yay5jaGlsZC5zdGF0ZU5vZGU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAgIGNvbW1pdENhbGxiYWNrcywKICAgICAgICAgICAgICAgICAgZmxhZ3MsCiAgICAgICAgICAgICAgICAgIHByZXZQcm9wcwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5lZmZlY3REdXJhdGlvbiArPSBwb3BOZXN0ZWRFZmZlY3REdXJhdGlvbnMoY3VycmVudDIpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjc6CiAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQyICYmIGZsYWdzICYgNCAmJiBjb21taXRIb3N0U2luZ2xldG9uQWNxdWlzaXRpb24oZmluaXNoZWRXb3JrKTsKICAgICAgICAgIGNhc2UgMjY6CiAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQyKSB7CiAgICAgICAgICAgICAgaWYgKGZsYWdzICYgNCkgY29tbWl0SG9zdE1vdW50KGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgICAgZWxzZSBpZiAoZmxhZ3MgJiA2NCkgewogICAgICAgICAgICAgICAgZmluaXNoZWRSb290ID0gZmluaXNoZWRXb3JrLnR5cGU7CiAgICAgICAgICAgICAgICBjdXJyZW50MiA9IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzOwogICAgICAgICAgICAgICAgcHJldlByb3BzID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICAgICAgICBjb21taXRIeWRyYXRlZEluc3RhbmNlLAogICAgICAgICAgICAgICAgICAgIHByZXZQcm9wcywKICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcigKICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnJldHVybiwKICAgICAgICAgICAgICAgICAgICBlcnJvcgogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBmbGFncyAmIDUxMiAmJiBzYWZlbHlBdHRhY2hSZWYoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICBpZiAoZmxhZ3MgJiA0KSB7CiAgICAgICAgICAgICAgZmxhZ3MgPSBwdXNoTmVzdGVkRWZmZWN0RHVyYXRpb25zKCk7CiAgICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZUxheW91dEVmZmVjdHMoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspOwogICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7CiAgICAgICAgICAgICAgZmluaXNoZWRSb290LmVmZmVjdER1cmF0aW9uICs9IGJ1YmJsZU5lc3RlZEVmZmVjdER1cmF0aW9ucyhmbGFncyk7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAgIGNvbW1pdFByb2ZpbGVyLAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgICAgICBjb21taXRTdGFydFRpbWUsCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5lZmZlY3REdXJhdGlvbgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgcmVjdXJzaXZlbHlUcmF2ZXJzZUxheW91dEVmZmVjdHMoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMzE6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgZmxhZ3MgJiA0ICYmIGNvbW1pdEFjdGl2aXR5SHlkcmF0aW9uQ2FsbGJhY2tzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGZsYWdzICYgNCAmJiBjb21taXRTdXNwZW5zZUh5ZHJhdGlvbkNhbGxiYWNrcyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGZsYWdzICYgNjQgJiYgKGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlLCBudWxsICE9PSBmaW5pc2hlZFJvb3QgJiYgKGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkUm9vdC5kZWh5ZHJhdGVkLCBudWxsICE9PSBmaW5pc2hlZFJvb3QgJiYgKGZsYWdzID0gcmV0cnlEZWh5ZHJhdGVkU3VzcGVuc2VCb3VuZGFyeS5iaW5kKAogICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrCiAgICAgICAgICAgICksIHJlZ2lzdGVyU3VzcGVuc2VJbnN0YW5jZVJldHJ5KGZpbmlzaGVkUm9vdCwgZmxhZ3MpKSkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgIGZsYWdzID0gbnVsbCAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgfHwgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuOwogICAgICAgICAgICBpZiAoIWZsYWdzKSB7CiAgICAgICAgICAgICAgY3VycmVudDIgPSBudWxsICE9PSBjdXJyZW50MiAmJiBudWxsICE9PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlIHx8IG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW47CiAgICAgICAgICAgICAgcHJldlByb3BzID0gb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuOwogICAgICAgICAgICAgIHZhciBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW47CiAgICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuID0gZmxhZ3M7CiAgICAgICAgICAgICAgKG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBjdXJyZW50MikgJiYgIXByZXZPZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuID8gKHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoCiAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAwICE9PSAoZmluaXNoZWRXb3JrLnN1YnRyZWVGbGFncyAmIDg3NzIpCiAgICAgICAgICAgICAgKSwgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmIDAuMDUgPCBjb21wb25lbnRFZmZlY3RFbmRUaW1lIC0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIGxvZ0NvbXBvbmVudFJlYXBwZWFyZWQoCiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsCiAgICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lCiAgICAgICAgICAgICAgKSkgOiByZWN1cnNpdmVseVRyYXZlcnNlTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuID0gcHJldlByb3BzOwogICAgICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbjsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMzA6CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZUxheW91dEVmZmVjdHMoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspOwogICAgICAgIH0KICAgICAgICAoZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiAwIDw9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJiAwIDw9IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgJiYgKChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiYgbG9nQ29tcG9uZW50RWZmZWN0KAogICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSwKICAgICAgICAgIGNvbXBvbmVudEVmZmVjdER1cmF0aW9uLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzCiAgICAgICAgKSwgbnVsbCA9PT0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZSAmJiBudWxsICE9PSBmaW5pc2hlZFdvcmsucmV0dXJuICYmIG51bGwgIT09IGZpbmlzaGVkV29yay5yZXR1cm4uYWx0ZXJuYXRlICYmIDAuMDUgPCBjb21wb25lbnRFZmZlY3RFbmRUaW1lIC0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIChpc0h5ZHJhdGluZ1BhcmVudCgKICAgICAgICAgIGZpbmlzaGVkV29yay5yZXR1cm4uYWx0ZXJuYXRlLAogICAgICAgICAgZmluaXNoZWRXb3JrLnJldHVybgogICAgICAgICkgfHwgbG9nQ29tcG9uZW50VHJpZ2dlcigKICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSwKICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVuZFRpbWUsCiAgICAgICAgICAiTW91bnQiCiAgICAgICAgKSkpOwogICAgICAgIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCk7CiAgICAgICAgcG9wQ29tcG9uZW50RWZmZWN0RHVyYXRpb24ocHJldkVmZmVjdER1cmF0aW9uKTsKICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnMgPSBwcmV2RWZmZWN0RXJyb3JzOwogICAgICAgIGNvbXBvbmVudEVmZmVjdFNwYXduZWRVcGRhdGUgPSBwcmV2RWZmZWN0RGlkU3Bhd25VcGRhdGU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGV0YWNoRmliZXJBZnRlckVmZmVjdHMoZmliZXIpIHsKICAgICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlOwogICAgICAgIG51bGwgIT09IGFsdGVybmF0ZSAmJiAoZmliZXIuYWx0ZXJuYXRlID0gbnVsbCwgZGV0YWNoRmliZXJBZnRlckVmZmVjdHMoYWx0ZXJuYXRlKSk7CiAgICAgICAgZmliZXIuY2hpbGQgPSBudWxsOwogICAgICAgIGZpYmVyLmRlbGV0aW9ucyA9IG51bGw7CiAgICAgICAgZmliZXIuc2libGluZyA9IG51bGw7CiAgICAgICAgNSA9PT0gZmliZXIudGFnICYmIChhbHRlcm5hdGUgPSBmaWJlci5zdGF0ZU5vZGUsIG51bGwgIT09IGFsdGVybmF0ZSAmJiBkZXRhY2hEZWxldGVkSW5zdGFuY2UoYWx0ZXJuYXRlKSk7CiAgICAgICAgZmliZXIuc3RhdGVOb2RlID0gbnVsbDsKICAgICAgICBmaWJlci5fZGVidWdPd25lciA9IG51bGw7CiAgICAgICAgZmliZXIucmV0dXJuID0gbnVsbDsKICAgICAgICBmaWJlci5kZXBlbmRlbmNpZXMgPSBudWxsOwogICAgICAgIGZpYmVyLm1lbW9pemVkUHJvcHMgPSBudWxsOwogICAgICAgIGZpYmVyLm1lbW9pemVkU3RhdGUgPSBudWxsOwogICAgICAgIGZpYmVyLnBlbmRpbmdQcm9wcyA9IG51bGw7CiAgICAgICAgZmliZXIuc3RhdGVOb2RlID0gbnVsbDsKICAgICAgICBmaWJlci51cGRhdGVRdWV1ZSA9IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cyhmaW5pc2hlZFJvb3QsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIHBhcmVudCkgewogICAgICAgIGZvciAocGFyZW50ID0gcGFyZW50LmNoaWxkOyBudWxsICE9PSBwYXJlbnQ7ICkKICAgICAgICAgIGNvbW1pdERlbGV0aW9uRWZmZWN0c09uRmliZXIoCiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwKICAgICAgICAgICAgcGFyZW50CiAgICAgICAgICApLCBwYXJlbnQgPSBwYXJlbnQuc2libGluZzsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXREZWxldGlvbkVmZmVjdHNPbkZpYmVyKGZpbmlzaGVkUm9vdCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZGVsZXRlZEZpYmVyKSB7CiAgICAgICAgaWYgKGluamVjdGVkSG9vayAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJVbm1vdW50KQogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJVbm1vdW50KHJlbmRlcmVySUQsIGRlbGV0ZWRGaWJlcik7CiAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgaGFzTG9nZ2VkRXJyb3IgfHwgKGhhc0xvZ2dlZEVycm9yID0gdHJ1ZSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiUmVhY3QgaW5zdHJ1bWVudGF0aW9uIGVuY291bnRlcmVkIGFuIGVycm9yOiAlbyIsCiAgICAgICAgICAgICAgZXJyCiAgICAgICAgICAgICkpOwogICAgICAgICAgfQogICAgICAgIHZhciBwcmV2RWZmZWN0U3RhcnQgPSBwdXNoQ29tcG9uZW50RWZmZWN0U3RhcnQoKSwgcHJldkVmZmVjdER1cmF0aW9uID0gcHVzaENvbXBvbmVudEVmZmVjdER1cmF0aW9uKCksIHByZXZFZmZlY3RFcnJvcnMgPSBwdXNoQ29tcG9uZW50RWZmZWN0RXJyb3JzKCksIHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZSA9IHB1c2hDb21wb25lbnRFZmZlY3REaWRTcGF3blVwZGF0ZSgpOwogICAgICAgIHN3aXRjaCAoZGVsZXRlZEZpYmVyLnRhZykgewogICAgICAgICAgY2FzZSAyNjoKICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fCBzYWZlbHlEZXRhY2hSZWYoZGVsZXRlZEZpYmVyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKTsKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwKICAgICAgICAgICAgICBkZWxldGVkRmliZXIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZGVsZXRlZEZpYmVyLm1lbW9pemVkU3RhdGUgPyBkZWxldGVkRmliZXIubWVtb2l6ZWRTdGF0ZS5jb3VudC0tIDogZGVsZXRlZEZpYmVyLnN0YXRlTm9kZSAmJiAoZmluaXNoZWRSb290ID0gZGVsZXRlZEZpYmVyLnN0YXRlTm9kZSwgZmluaXNoZWRSb290LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmluaXNoZWRSb290KSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyNzoKICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fCBzYWZlbHlEZXRhY2hSZWYoZGVsZXRlZEZpYmVyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKTsKICAgICAgICAgICAgdmFyIHByZXZIb3N0UGFyZW50ID0gaG9zdFBhcmVudCwgcHJldkhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IGhvc3RQYXJlbnRJc0NvbnRhaW5lcjsKICAgICAgICAgICAgaXNTaW5nbGV0b25TY29wZShkZWxldGVkRmliZXIudHlwZSkgJiYgKGhvc3RQYXJlbnQgPSBkZWxldGVkRmliZXIuc3RhdGVOb2RlLCBob3N0UGFyZW50SXNDb250YWluZXIgPSBmYWxzZSk7CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsCiAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgIGRlbGV0ZWRGaWJlciwKICAgICAgICAgICAgICByZWxlYXNlU2luZ2xldG9uSW5zdGFuY2UsCiAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyLnN0YXRlTm9kZQogICAgICAgICAgICApOwogICAgICAgICAgICBob3N0UGFyZW50ID0gcHJldkhvc3RQYXJlbnQ7CiAgICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IHByZXZIb3N0UGFyZW50SXNDb250YWluZXI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8IHNhZmVseURldGFjaFJlZihkZWxldGVkRmliZXIsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpOwogICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICBwcmV2SG9zdFBhcmVudCA9IGhvc3RQYXJlbnQ7CiAgICAgICAgICAgIHByZXZIb3N0UGFyZW50SXNDb250YWluZXIgPSBob3N0UGFyZW50SXNDb250YWluZXI7CiAgICAgICAgICAgIGhvc3RQYXJlbnQgPSBudWxsOwogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGVsZXRpb25FZmZlY3RzKAogICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLAogICAgICAgICAgICAgIGRlbGV0ZWRGaWJlcgogICAgICAgICAgICApOwogICAgICAgICAgICBob3N0UGFyZW50ID0gcHJldkhvc3RQYXJlbnQ7CiAgICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IHByZXZIb3N0UGFyZW50SXNDb250YWluZXI7CiAgICAgICAgICAgIGlmIChudWxsICE9PSBob3N0UGFyZW50KQogICAgICAgICAgICAgIGlmIChob3N0UGFyZW50SXNDb250YWluZXIpCiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgICAgICAgICBkZWxldGVkRmliZXIsCiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2hpbGRGcm9tQ29udGFpbmVyLAogICAgICAgICAgICAgICAgICAgIGhvc3RQYXJlbnQsCiAgICAgICAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyLnN0YXRlTm9kZQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyLAogICAgICAgICAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsCiAgICAgICAgICAgICAgICAgICAgZXJyb3IKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgICAgICAgICBkZWxldGVkRmliZXIsCiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2hpbGQsCiAgICAgICAgICAgICAgICAgICAgaG9zdFBhcmVudCwKICAgICAgICAgICAgICAgICAgICBkZWxldGVkRmliZXIuc3RhdGVOb2RlCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcigKICAgICAgICAgICAgICAgICAgICBkZWxldGVkRmliZXIsCiAgICAgICAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwKICAgICAgICAgICAgICAgICAgICBlcnJvcgogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTg6CiAgICAgICAgICAgIG51bGwgIT09IGhvc3RQYXJlbnQgJiYgKGhvc3RQYXJlbnRJc0NvbnRhaW5lciA/IChmaW5pc2hlZFJvb3QgPSBob3N0UGFyZW50LCBjbGVhckh5ZHJhdGlvbkJvdW5kYXJ5KAogICAgICAgICAgICAgIDkgPT09IGZpbmlzaGVkUm9vdC5ub2RlVHlwZSA/IGZpbmlzaGVkUm9vdC5ib2R5IDogIkhUTUwiID09PSBmaW5pc2hlZFJvb3Qubm9kZU5hbWUgPyBmaW5pc2hlZFJvb3Qub3duZXJEb2N1bWVudC5ib2R5IDogZmluaXNoZWRSb290LAogICAgICAgICAgICAgIGRlbGV0ZWRGaWJlci5zdGF0ZU5vZGUKICAgICAgICAgICAgKSwgcmV0cnlJZkJsb2NrZWRPbihmaW5pc2hlZFJvb3QpKSA6IGNsZWFySHlkcmF0aW9uQm91bmRhcnkoaG9zdFBhcmVudCwgZGVsZXRlZEZpYmVyLnN0YXRlTm9kZSkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgcHJldkhvc3RQYXJlbnQgPSBob3N0UGFyZW50OwogICAgICAgICAgICBwcmV2SG9zdFBhcmVudElzQ29udGFpbmVyID0gaG9zdFBhcmVudElzQ29udGFpbmVyOwogICAgICAgICAgICBob3N0UGFyZW50ID0gZGVsZXRlZEZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOwogICAgICAgICAgICBob3N0UGFyZW50SXNDb250YWluZXIgPSB0cnVlOwogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGVsZXRpb25FZmZlY3RzKAogICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLAogICAgICAgICAgICAgIGRlbGV0ZWRGaWJlcgogICAgICAgICAgICApOwogICAgICAgICAgICBob3N0UGFyZW50ID0gcHJldkhvc3RQYXJlbnQ7CiAgICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IHByZXZIb3N0UGFyZW50SXNDb250YWluZXI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoCiAgICAgICAgICAgICAgSW5zZXJ0aW9uLAogICAgICAgICAgICAgIGRlbGV0ZWRGaWJlciwKICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gfHwgY29tbWl0SG9va0xheW91dFVubW91bnRFZmZlY3RzKAogICAgICAgICAgICAgIGRlbGV0ZWRGaWJlciwKICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLAogICAgICAgICAgICAgIExheW91dAogICAgICAgICAgICApOwogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGVsZXRpb25FZmZlY3RzKAogICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLAogICAgICAgICAgICAgIGRlbGV0ZWRGaWJlcgogICAgICAgICAgICApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fCAoc2FmZWx5RGV0YWNoUmVmKGRlbGV0ZWRGaWJlciwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciksIHByZXZIb3N0UGFyZW50ID0gZGVsZXRlZEZpYmVyLnN0YXRlTm9kZSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHByZXZIb3N0UGFyZW50LmNvbXBvbmVudFdpbGxVbm1vdW50ICYmIHNhZmVseUNhbGxDb21wb25lbnRXaWxsVW5tb3VudCgKICAgICAgICAgICAgICBkZWxldGVkRmliZXIsCiAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwKICAgICAgICAgICAgICBwcmV2SG9zdFBhcmVudAogICAgICAgICAgICApKTsKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwKICAgICAgICAgICAgICBkZWxldGVkRmliZXIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDIxOgogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGVsZXRpb25FZmZlY3RzKAogICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLAogICAgICAgICAgICAgIGRlbGV0ZWRGaWJlcgogICAgICAgICAgICApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSAocHJldkhvc3RQYXJlbnQgPSBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuKSB8fCBudWxsICE9PSBkZWxldGVkRmliZXIubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwKICAgICAgICAgICAgICBkZWxldGVkRmliZXIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IHByZXZIb3N0UGFyZW50OwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsCiAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIChkZWxldGVkRmliZXIubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJiAoY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSB8fCAwLjA1IDwgY29tcG9uZW50RWZmZWN0RHVyYXRpb24pICYmIGxvZ0NvbXBvbmVudEVmZmVjdCgKICAgICAgICAgIGRlbGV0ZWRGaWJlciwKICAgICAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSwKICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVuZFRpbWUsCiAgICAgICAgICBjb21wb25lbnRFZmZlY3REdXJhdGlvbiwKICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycwogICAgICAgICk7CiAgICAgICAgcG9wQ29tcG9uZW50RWZmZWN0U3RhcnQocHJldkVmZmVjdFN0YXJ0KTsKICAgICAgICBwb3BDb21wb25lbnRFZmZlY3REdXJhdGlvbihwcmV2RWZmZWN0RHVyYXRpb24pOwogICAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IHByZXZFZmZlY3RFcnJvcnM7CiAgICAgICAgY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSA9IHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRBY3Rpdml0eUh5ZHJhdGlvbkNhbGxiYWNrcyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yaykgewogICAgICAgIGlmIChudWxsID09PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJiAoZmluaXNoZWRSb290ID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZSwgbnVsbCAhPT0gZmluaXNoZWRSb290ICYmIChmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFJvb3QubWVtb2l6ZWRTdGF0ZSwgbnVsbCAhPT0gZmluaXNoZWRSb290KSkpIHsKICAgICAgICAgIGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkUm9vdC5kZWh5ZHJhdGVkOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbW1pdEh5ZHJhdGVkQWN0aXZpdHlJbnN0YW5jZSwKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QKICAgICAgICAgICAgKTsKICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRTdXNwZW5zZUh5ZHJhdGlvbkNhbGxiYWNrcyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yaykgewogICAgICAgIGlmIChudWxsID09PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJiAoZmluaXNoZWRSb290ID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZSwgbnVsbCAhPT0gZmluaXNoZWRSb290ICYmIChmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFJvb3QubWVtb2l6ZWRTdGF0ZSwgbnVsbCAhPT0gZmluaXNoZWRSb290ICYmIChmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFJvb3QuZGVoeWRyYXRlZCwgbnVsbCAhPT0gZmluaXNoZWRSb290KSkpKQogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbW1pdEh5ZHJhdGVkU3VzcGVuc2VJbnN0YW5jZSwKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QKICAgICAgICAgICAgKTsKICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpOwogICAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldFJldHJ5Q2FjaGUoZmluaXNoZWRXb3JrKSB7CiAgICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7CiAgICAgICAgICBjYXNlIDMxOgogICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgIGNhc2UgMTk6CiAgICAgICAgICAgIHZhciByZXRyeUNhY2hlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsKICAgICAgICAgICAgbnVsbCA9PT0gcmV0cnlDYWNoZSAmJiAocmV0cnlDYWNoZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUgPSBuZXcgUG9zc2libHlXZWFrU2V0KCkpOwogICAgICAgICAgICByZXR1cm4gcmV0cnlDYWNoZTsKICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgIHJldHVybiBmaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLCByZXRyeUNhY2hlID0gZmluaXNoZWRXb3JrLl9yZXRyeUNhY2hlLCBudWxsID09PSByZXRyeUNhY2hlICYmIChyZXRyeUNhY2hlID0gZmluaXNoZWRXb3JrLl9yZXRyeUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha1NldCgpKSwgcmV0cnlDYWNoZTsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICJVbmV4cGVjdGVkIFN1c3BlbnNlIGhhbmRsZXIgdGFnICgiICsgZmluaXNoZWRXb3JrLnRhZyArICIpLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYXR0YWNoU3VzcGVuc2VSZXRyeUxpc3RlbmVycyhmaW5pc2hlZFdvcmssIHdha2VhYmxlcykgewogICAgICAgIHZhciByZXRyeUNhY2hlID0gZ2V0UmV0cnlDYWNoZShmaW5pc2hlZFdvcmspOwogICAgICAgIHdha2VhYmxlcy5mb3JFYWNoKGZ1bmN0aW9uKHdha2VhYmxlKSB7CiAgICAgICAgICBpZiAoIXJldHJ5Q2FjaGUuaGFzKHdha2VhYmxlKSkgewogICAgICAgICAgICByZXRyeUNhY2hlLmFkZCh3YWtlYWJsZSk7CiAgICAgICAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkKICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gaW5Qcm9ncmVzc0xhbmVzICYmIG51bGwgIT09IGluUHJvZ3Jlc3NSb290KQogICAgICAgICAgICAgICAgcmVzdG9yZVBlbmRpbmdVcGRhdGVycyhpblByb2dyZXNzUm9vdCwgaW5Qcm9ncmVzc0xhbmVzKTsKICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkIGZpbmlzaGVkIHJvb3QgYW5kIGxhbmVzIHRvIGJlIHNldC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4iCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB2YXIgcmV0cnkgPSByZXNvbHZlUmV0cnlXYWtlYWJsZS5iaW5kKG51bGwsIGZpbmlzaGVkV29yaywgd2FrZWFibGUpOwogICAgICAgICAgICB3YWtlYWJsZS50aGVuKHJldHJ5LCByZXRyeSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290JGpzY29tcCQwLCBwYXJlbnRGaWJlcikgewogICAgICAgIHZhciBkZWxldGlvbnMgPSBwYXJlbnRGaWJlci5kZWxldGlvbnM7CiAgICAgICAgaWYgKG51bGwgIT09IGRlbGV0aW9ucykKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVsZXRpb25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciByb290MiA9IHJvb3QkanNjb21wJDAsIHJldHVybkZpYmVyID0gcGFyZW50RmliZXIsIGRlbGV0ZWRGaWJlciA9IGRlbGV0aW9uc1tpXSwgcHJldkVmZmVjdFN0YXJ0ID0gcHVzaENvbXBvbmVudEVmZmVjdFN0YXJ0KCksIHBhcmVudCA9IHJldHVybkZpYmVyOwogICAgICAgICAgICBhOiBmb3IgKDsgbnVsbCAhPT0gcGFyZW50OyApIHsKICAgICAgICAgICAgICBzd2l0Y2ggKHBhcmVudC50YWcpIHsKICAgICAgICAgICAgICAgIGNhc2UgMjc6CiAgICAgICAgICAgICAgICAgIGlmIChpc1NpbmdsZXRvblNjb3BlKHBhcmVudC50eXBlKSkgewogICAgICAgICAgICAgICAgICAgIGhvc3RQYXJlbnQgPSBwYXJlbnQuc3RhdGVOb2RlOwogICAgICAgICAgICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgIGhvc3RQYXJlbnQgPSBwYXJlbnQuc3RhdGVOb2RlOwogICAgICAgICAgICAgICAgICBob3N0UGFyZW50SXNDb250YWluZXIgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgICAgaG9zdFBhcmVudCA9IHBhcmVudC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzsKICAgICAgICAgICAgICAgICAgaG9zdFBhcmVudElzQ29udGFpbmVyID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAobnVsbCA9PT0gaG9zdFBhcmVudCkKICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICJFeHBlY3RlZCB0byBmaW5kIGEgaG9zdCBwYXJlbnQuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIGNvbW1pdERlbGV0aW9uRWZmZWN0c09uRmliZXIocm9vdDIsIHJldHVybkZpYmVyLCBkZWxldGVkRmliZXIpOwogICAgICAgICAgICBob3N0UGFyZW50ID0gbnVsbDsKICAgICAgICAgICAgaG9zdFBhcmVudElzQ29udGFpbmVyID0gZmFsc2U7CiAgICAgICAgICAgIChkZWxldGVkRmliZXIubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJiAwLjA1IDwgY29tcG9uZW50RWZmZWN0RW5kVGltZSAtIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJiBsb2dDb21wb25lbnRUcmlnZ2VyKAogICAgICAgICAgICAgIGRlbGV0ZWRGaWJlciwKICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsCiAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSwKICAgICAgICAgICAgICAiVW5tb3VudCIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcG9wQ29tcG9uZW50RWZmZWN0U3RhcnQocHJldkVmZmVjdFN0YXJ0KTsKICAgICAgICAgICAgcm9vdDIgPSBkZWxldGVkRmliZXI7CiAgICAgICAgICAgIHJldHVybkZpYmVyID0gcm9vdDIuYWx0ZXJuYXRlOwogICAgICAgICAgICBudWxsICE9PSByZXR1cm5GaWJlciAmJiAocmV0dXJuRmliZXIucmV0dXJuID0gbnVsbCk7CiAgICAgICAgICAgIHJvb3QyLnJldHVybiA9IG51bGw7CiAgICAgICAgICB9CiAgICAgICAgaWYgKHBhcmVudEZpYmVyLnN1YnRyZWVGbGFncyAmIDEzODg2KQogICAgICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKQogICAgICAgICAgICBjb21taXRNdXRhdGlvbkVmZmVjdHNPbkZpYmVyKHBhcmVudEZpYmVyLCByb290JGpzY29tcCQwKSwgcGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNvbW1pdE11dGF0aW9uRWZmZWN0c09uRmliZXIoZmluaXNoZWRXb3JrLCByb290MikgewogICAgICAgIHZhciBwcmV2RWZmZWN0U3RhcnQgPSBwdXNoQ29tcG9uZW50RWZmZWN0U3RhcnQoKSwgcHJldkVmZmVjdER1cmF0aW9uID0gcHVzaENvbXBvbmVudEVmZmVjdER1cmF0aW9uKCksIHByZXZFZmZlY3RFcnJvcnMgPSBwdXNoQ29tcG9uZW50RWZmZWN0RXJyb3JzKCksIHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZSA9IHB1c2hDb21wb25lbnRFZmZlY3REaWRTcGF3blVwZGF0ZSgpLCBjdXJyZW50MiA9IGZpbmlzaGVkV29yay5hbHRlcm5hdGUsIGZsYWdzID0gZmluaXNoZWRXb3JrLmZsYWdzOwogICAgICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykgewogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QyLCBmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgZmxhZ3MgJiA0ICYmIChjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoCiAgICAgICAgICAgICAgSW5zZXJ0aW9uIHwgSGFzRWZmZWN0LAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsucmV0dXJuCiAgICAgICAgICAgICksIGNvbW1pdEhvb2tFZmZlY3RMaXN0TW91bnQoSW5zZXJ0aW9uIHwgSGFzRWZmZWN0LCBmaW5pc2hlZFdvcmspLCBjb21taXRIb29rTGF5b3V0VW5tb3VudEVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGZpbmlzaGVkV29yay5yZXR1cm4sCiAgICAgICAgICAgICAgTGF5b3V0IHwgSGFzRWZmZWN0CiAgICAgICAgICAgICkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290MiwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGZsYWdzICYgNTEyICYmIChvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8IG51bGwgPT09IGN1cnJlbnQyIHx8IHNhZmVseURldGFjaFJlZihjdXJyZW50MiwgY3VycmVudDIucmV0dXJuKSk7CiAgICAgICAgICAgIGlmIChmbGFncyAmIDY0ICYmIG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiAmJiAoZmxhZ3MgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUsIG51bGwgIT09IGZsYWdzICYmIChjdXJyZW50MiA9IGZsYWdzLmNhbGxiYWNrcywgbnVsbCAhPT0gY3VycmVudDIpKSkgewogICAgICAgICAgICAgIHZhciBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcyA9IGZsYWdzLnNoYXJlZC5oaWRkZW5DYWxsYmFja3M7CiAgICAgICAgICAgICAgZmxhZ3Muc2hhcmVkLmhpZGRlbkNhbGxiYWNrcyA9IG51bGwgPT09IGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzID8gY3VycmVudDIgOiBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcy5jb25jYXQoY3VycmVudDIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyNjoKICAgICAgICAgICAgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MgPSBjdXJyZW50SG9pc3RhYmxlUm9vdDsKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290MiwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGZsYWdzICYgNTEyICYmIChvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8IG51bGwgPT09IGN1cnJlbnQyIHx8IHNhZmVseURldGFjaFJlZihjdXJyZW50MiwgY3VycmVudDIucmV0dXJuKSk7CiAgICAgICAgICAgIGlmIChmbGFncyAmIDQpIHsKICAgICAgICAgICAgICB2YXIgY3VycmVudFJlc291cmNlID0gbnVsbCAhPT0gY3VycmVudDIgPyBjdXJyZW50Mi5tZW1vaXplZFN0YXRlIDogbnVsbDsKICAgICAgICAgICAgICBmbGFncyA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlOwogICAgICAgICAgICAgIGlmIChudWxsID09PSBjdXJyZW50MikKICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBmbGFncykKICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUpIHsKICAgICAgICAgICAgICAgICAgICBhOiB7CiAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IGZpbmlzaGVkV29yay50eXBlOwogICAgICAgICAgICAgICAgICAgICAgY3VycmVudDIgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wczsKICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzID0gZXhpc3RpbmdIaWRkZW5DYWxsYmFja3Mub3duZXJEb2N1bWVudCB8fCBleGlzdGluZ0hpZGRlbkNhbGxiYWNrczsKICAgICAgICAgICAgICAgICAgICAgIGI6IHN3aXRjaCAoZmxhZ3MpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGl0bGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZSA9IGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLmdldEVsZW1lbnRzQnlUYWdOYW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpdGxlIgogICAgICAgICAgICAgICAgICAgICAgICAgIClbMF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50UmVzb3VyY2UgfHwgY3VycmVudFJlc291cmNlW2ludGVybmFsSG9pc3RhYmxlTWFya2VyXSB8fCBjdXJyZW50UmVzb3VyY2VbaW50ZXJuYWxJbnN0YW5jZUtleV0gfHwgY3VycmVudFJlc291cmNlLm5hbWVzcGFjZVVSSSA9PT0gU1ZHX05BTUVTUEFDRSB8fCBjdXJyZW50UmVzb3VyY2UuaGFzQXR0cmlidXRlKCJpdGVtcHJvcCIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlID0gZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MuY3JlYXRlRWxlbWVudChmbGFncyksIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLmhlYWQuaW5zZXJ0QmVmb3JlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UmVzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLnF1ZXJ5U2VsZWN0b3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhlYWQgPiB0aXRsZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhjdXJyZW50UmVzb3VyY2UsIGZsYWdzLCBjdXJyZW50Mik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlW2ludGVybmFsSW5zdGFuY2VLZXldID0gZmluaXNoZWRXb3JrOwogICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoY3VycmVudFJlc291cmNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IGN1cnJlbnRSZXNvdXJjZTsKICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJsaW5rIjoKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWF5YmVOb2RlcyA9IGdldEh5ZHJhdGFibGVIb2lzdGFibGVDYWNoZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJocmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzCiAgICAgICAgICAgICAgICAgICAgICAgICAgKS5nZXQoZmxhZ3MgKyAoY3VycmVudDIuaHJlZiB8fCAiIikpOwogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXliZU5vZGVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1heWJlTm9kZXMubGVuZ3RoOyBpKyspCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UmVzb3VyY2UgPSBtYXliZU5vZGVzW2ldLCBjdXJyZW50UmVzb3VyY2UuZ2V0QXR0cmlidXRlKCJocmVmIikgPT09IChudWxsID09IGN1cnJlbnQyLmhyZWYgfHwgIiIgPT09IGN1cnJlbnQyLmhyZWYgPyBudWxsIDogY3VycmVudDIuaHJlZikgJiYgY3VycmVudFJlc291cmNlLmdldEF0dHJpYnV0ZSgicmVsIikgPT09IChudWxsID09IGN1cnJlbnQyLnJlbCA/IG51bGwgOiBjdXJyZW50Mi5yZWwpICYmIGN1cnJlbnRSZXNvdXJjZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikgPT09IChudWxsID09IGN1cnJlbnQyLnRpdGxlID8gbnVsbCA6IGN1cnJlbnQyLnRpdGxlKSAmJiBjdXJyZW50UmVzb3VyY2UuZ2V0QXR0cmlidXRlKCJjcm9zc29yaWdpbiIpID09PSAobnVsbCA9PSBjdXJyZW50Mi5jcm9zc09yaWdpbiA/IG51bGwgOiBjdXJyZW50Mi5jcm9zc09yaWdpbikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXliZU5vZGVzLnNwbGljZShpLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZSA9IGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLmNyZWF0ZUVsZW1lbnQoZmxhZ3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKGN1cnJlbnRSZXNvdXJjZSwgZmxhZ3MsIGN1cnJlbnQyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcy5oZWFkLmFwcGVuZENoaWxkKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAibWV0YSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1heWJlTm9kZXMgPSBnZXRIeWRyYXRhYmxlSG9pc3RhYmxlQ2FjaGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29udGVudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcwogICAgICAgICAgICAgICAgICAgICAgICAgICkuZ2V0KGZsYWdzICsgKGN1cnJlbnQyLmNvbnRlbnQgfHwgIiIpKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1heWJlTm9kZXMubGVuZ3RoOyBpKyspCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UmVzb3VyY2UgPSBtYXliZU5vZGVzW2ldLCBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQyLmNvbnRlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRlbnQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksIGN1cnJlbnRSZXNvdXJjZS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKSA9PT0gKG51bGwgPT0gY3VycmVudDIuY29udGVudCA/IG51bGwgOiAiIiArIGN1cnJlbnQyLmNvbnRlbnQpICYmIGN1cnJlbnRSZXNvdXJjZS5nZXRBdHRyaWJ1dGUoIm5hbWUiKSA9PT0gKG51bGwgPT0gY3VycmVudDIubmFtZSA/IG51bGwgOiBjdXJyZW50Mi5uYW1lKSAmJiBjdXJyZW50UmVzb3VyY2UuZ2V0QXR0cmlidXRlKCJwcm9wZXJ0eSIpID09PSAobnVsbCA9PSBjdXJyZW50Mi5wcm9wZXJ0eSA/IG51bGwgOiBjdXJyZW50Mi5wcm9wZXJ0eSkgJiYgY3VycmVudFJlc291cmNlLmdldEF0dHJpYnV0ZSgiaHR0cC1lcXVpdiIpID09PSAobnVsbCA9PSBjdXJyZW50Mi5odHRwRXF1aXYgPyBudWxsIDogY3VycmVudDIuaHR0cEVxdWl2KSAmJiBjdXJyZW50UmVzb3VyY2UuZ2V0QXR0cmlidXRlKCJjaGFyc2V0IikgPT09IChudWxsID09IGN1cnJlbnQyLmNoYXJTZXQgPyBudWxsIDogY3VycmVudDIuY2hhclNldCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXliZU5vZGVzLnNwbGljZShpLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZSA9IGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLmNyZWF0ZUVsZW1lbnQoZmxhZ3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKGN1cnJlbnRSZXNvdXJjZSwgZmxhZ3MsIGN1cnJlbnQyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcy5oZWFkLmFwcGVuZENoaWxkKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXROb2Rlc0ZvclR5cGUgZW5jb3VudGVyZWQgYSB0eXBlIGl0IGRpZCBub3QgZXhwZWN0OiAiJyArIGZsYWdzICsgJyIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UmVzb3VyY2VbaW50ZXJuYWxJbnN0YW5jZUtleV0gPSBmaW5pc2hlZFdvcms7CiAgICAgICAgICAgICAgICAgICAgICBtYXJrTm9kZUFzSG9pc3RhYmxlKGN1cnJlbnRSZXNvdXJjZSk7CiAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IGN1cnJlbnRSZXNvdXJjZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnN0YXRlTm9kZSA9IGZsYWdzOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICBtb3VudEhvaXN0YWJsZSgKICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLAogICAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnR5cGUsCiAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnN0YXRlTm9kZSA9IGFjcXVpcmVSZXNvdXJjZSgKICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcywKICAgICAgICAgICAgICAgICAgICBmbGFncywKICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcwogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZSAhPT0gZmxhZ3MgPyAobnVsbCA9PT0gY3VycmVudFJlc291cmNlID8gbnVsbCAhPT0gY3VycmVudDIuc3RhdGVOb2RlICYmIChjdXJyZW50MiA9IGN1cnJlbnQyLnN0YXRlTm9kZSwgY3VycmVudDIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjdXJyZW50MikpIDogY3VycmVudFJlc291cmNlLmNvdW50LS0sIG51bGwgPT09IGZsYWdzID8gbW91bnRIb2lzdGFibGUoCiAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsudHlwZSwKICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnN0YXRlTm9kZQogICAgICAgICAgICAgICAgKSA6IGFjcXVpcmVSZXNvdXJjZSgKICAgICAgICAgICAgICAgICAgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MsCiAgICAgICAgICAgICAgICAgIGZsYWdzLAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcwogICAgICAgICAgICAgICAgKSkgOiBudWxsID09PSBmbGFncyAmJiBudWxsICE9PSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlICYmIGNvbW1pdEhvc3RVcGRhdGUoCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMsCiAgICAgICAgICAgICAgICAgIGN1cnJlbnQyLm1lbW9pemVkUHJvcHMKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDI3OgogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QyLCBmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgZmxhZ3MgJiA1MTIgJiYgKG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gfHwgbnVsbCA9PT0gY3VycmVudDIgfHwgc2FmZWx5RGV0YWNoUmVmKGN1cnJlbnQyLCBjdXJyZW50Mi5yZXR1cm4pKTsKICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudDIgJiYgZmxhZ3MgJiA0ICYmIGNvbW1pdEhvc3RVcGRhdGUoCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzLAogICAgICAgICAgICAgIGN1cnJlbnQyLm1lbW9pemVkUHJvcHMKICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdDIsIGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBmbGFncyAmIDUxMiAmJiAob2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fCBudWxsID09PSBjdXJyZW50MiB8fCBzYWZlbHlEZXRhY2hSZWYoY3VycmVudDIsIGN1cnJlbnQyLnJldHVybikpOwogICAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLmZsYWdzICYgMzIpIHsKICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcyA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAgIHJlc2V0VGV4dENvbnRlbnQsCiAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZmxhZ3MgJiA0ICYmIG51bGwgIT0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZSAmJiAoZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcywgY29tbWl0SG9zdFVwZGF0ZSgKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MsCiAgICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudDIgPyBjdXJyZW50Mi5tZW1vaXplZFByb3BzIDogZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MKICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIGZsYWdzICYgMTAyNCAmJiAobmVlZHNGb3JtUmVzZXQgPSB0cnVlLCAiZm9ybSIgIT09IGZpbmlzaGVkV29yay50eXBlICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIlVuZXhwZWN0ZWQgaG9zdCBjb21wb25lbnQgdHlwZS4gRXhwZWN0ZWQgYSBmb3JtLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QyLCBmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgaWYgKGZsYWdzICYgNCkgewogICAgICAgICAgICAgIGlmIChudWxsID09PSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlKQogICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAgICJUaGlzIHNob3VsZCBoYXZlIGEgdGV4dCBub2RlIGluaXRpYWxpemVkLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgZmxhZ3MgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wczsKICAgICAgICAgICAgICBjdXJyZW50MiA9IG51bGwgIT09IGN1cnJlbnQyID8gY3VycmVudDIubWVtb2l6ZWRQcm9wcyA6IGZsYWdzOwogICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICAgICAgY29tbWl0VGV4dFVwZGF0ZSwKICAgICAgICAgICAgICAgICAgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MsCiAgICAgICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgICAgICBmbGFncwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcyA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTsKICAgICAgICAgICAgdGFnQ2FjaGVzID0gbnVsbDsKICAgICAgICAgICAgY3VycmVudFJlc291cmNlID0gY3VycmVudEhvaXN0YWJsZVJvb3Q7CiAgICAgICAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290ID0gZ2V0SG9pc3RhYmxlUm9vdChyb290Mi5jb250YWluZXJJbmZvKTsKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290MiwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgY3VycmVudEhvaXN0YWJsZVJvb3QgPSBjdXJyZW50UmVzb3VyY2U7CiAgICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBpZiAoZmxhZ3MgJiA0ICYmIG51bGwgIT09IGN1cnJlbnQyICYmIGN1cnJlbnQyLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKQogICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgICAgICBjb21taXRIeWRyYXRlZENvbnRhaW5lciwKICAgICAgICAgICAgICAgICAgcm9vdDIuY29udGFpbmVySW5mbwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBuZWVkc0Zvcm1SZXNldCAmJiAobmVlZHNGb3JtUmVzZXQgPSBmYWxzZSwgcmVjdXJzaXZlbHlSZXNldEZvcm1zKGZpbmlzaGVkV29yaykpOwogICAgICAgICAgICByb290Mi5lZmZlY3REdXJhdGlvbiArPSBwb3BOZXN0ZWRFZmZlY3REdXJhdGlvbnMoCiAgICAgICAgICAgICAgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MKICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIGZsYWdzID0gY3VycmVudEhvaXN0YWJsZVJvb3Q7CiAgICAgICAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290ID0gZ2V0SG9pc3RhYmxlUm9vdCgKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8KICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290MiwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290ID0gZmxhZ3M7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgZmxhZ3MgPSBwdXNoTmVzdGVkRWZmZWN0RHVyYXRpb25zKCk7CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdDIsIGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLmVmZmVjdER1cmF0aW9uICs9IGJ1YmJsZU5lc3RlZEVmZmVjdER1cmF0aW9ucyhmbGFncyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzMToKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290MiwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGZsYWdzICYgNCAmJiAoZmxhZ3MgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUsIG51bGwgIT09IGZsYWdzICYmIChmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUgPSBudWxsLCBhdHRhY2hTdXNwZW5zZVJldHJ5TGlzdGVuZXJzKGZpbmlzaGVkV29yaywgZmxhZ3MpKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290MiwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGZpbmlzaGVkV29yay5jaGlsZC5mbGFncyAmIDgxOTIgJiYgbnVsbCAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgIT09IChudWxsICE9PSBjdXJyZW50MiAmJiBudWxsICE9PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlKSAmJiAoZ2xvYmFsTW9zdFJlY2VudEZhbGxiYWNrVGltZSA9IG5vdyQxKCkpOwogICAgICAgICAgICBmbGFncyAmIDQgJiYgKGZsYWdzID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlLCBudWxsICE9PSBmbGFncyAmJiAoZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlID0gbnVsbCwgYXR0YWNoU3VzcGVuc2VSZXRyeUxpc3RlbmVycyhmaW5pc2hlZFdvcmssIGZsYWdzKSkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzID0gbnVsbCAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGU7CiAgICAgICAgICAgIHZhciB3YXNIaWRkZW4gPSBudWxsICE9PSBjdXJyZW50MiAmJiBudWxsICE9PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlLCBwcmV2T2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuID0gb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuLCBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW47CiAgICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiA9IHByZXZPZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW4gfHwgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3M7CiAgICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fCB3YXNIaWRkZW47CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdDIsIGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbjsKICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuID0gcHJldk9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbjsKICAgICAgICAgICAgd2FzSGlkZGVuICYmICFleGlzdGluZ0hpZGRlbkNhbGxiYWNrcyAmJiAhcHJldk9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiAmJiAhcHJldk9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gJiYgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmIDAuMDUgPCBjb21wb25lbnRFZmZlY3RFbmRUaW1lIC0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIGxvZ0NvbXBvbmVudFJlYXBwZWFyZWQoCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSwKICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBpZiAoZmxhZ3MgJiA4MTkyKQogICAgICAgICAgICAgIGE6IGZvciAocm9vdDIgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLCByb290Mi5fdmlzaWJpbGl0eSA9IGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzID8gcm9vdDIuX3Zpc2liaWxpdHkgJiB+T2Zmc2NyZWVuVmlzaWJsZSA6IHJvb3QyLl92aXNpYmlsaXR5IHwgT2Zmc2NyZWVuVmlzaWJsZSwgIWV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzIHx8IG51bGwgPT09IGN1cnJlbnQyIHx8IHdhc0hpZGRlbiB8fCBvZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW4gfHwgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fCAocmVjdXJzaXZlbHlUcmF2ZXJzZURpc2FwcGVhckxheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrKSwgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmIDAuMDUgPCBjb21wb25lbnRFZmZlY3RFbmRUaW1lIC0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIGxvZ0NvbXBvbmVudFRyaWdnZXIoCiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsCiAgICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lLAogICAgICAgICAgICAgICAgIkRpc2Nvbm5lY3QiCiAgICAgICAgICAgICAgKSksIGN1cnJlbnQyID0gbnVsbCwgcm9vdDIgPSBmaW5pc2hlZFdvcms7IDsgKSB7CiAgICAgICAgICAgICAgICBpZiAoNSA9PT0gcm9vdDIudGFnIHx8IDI2ID09PSByb290Mi50YWcpIHsKICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQyKSB7CiAgICAgICAgICAgICAgICAgICAgd2FzSGlkZGVuID0gY3VycmVudDIgPSByb290MjsKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlID0gd2FzSGlkZGVuLnN0YXRlTm9kZSwgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MgPyBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgICAgICAgICAgICAgd2FzSGlkZGVuLAogICAgICAgICAgICAgICAgICAgICAgICBoaWRlSW5zdGFuY2UsCiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZQogICAgICAgICAgICAgICAgICAgICAgKSA6IHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgICAgICAgICAgICB3YXNIaWRkZW4sCiAgICAgICAgICAgICAgICAgICAgICAgIHVuaGlkZUluc3RhbmNlLAogICAgICAgICAgICAgICAgICAgICAgICB3YXNIaWRkZW4uc3RhdGVOb2RlLAogICAgICAgICAgICAgICAgICAgICAgICB3YXNIaWRkZW4ubWVtb2l6ZWRQcm9wcwogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3Iod2FzSGlkZGVuLCB3YXNIaWRkZW4ucmV0dXJuLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKDYgPT09IHJvb3QyLnRhZykgewogICAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudDIpIHsKICAgICAgICAgICAgICAgICAgICB3YXNIaWRkZW4gPSByb290MjsKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgbWF5YmVOb2RlcyA9IHdhc0hpZGRlbi5zdGF0ZU5vZGUsIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzID8gcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbiwKICAgICAgICAgICAgICAgICAgICAgICAgaGlkZVRleHRJbnN0YW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgbWF5YmVOb2RlcwogICAgICAgICAgICAgICAgICAgICAgKSA6IHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgICAgICAgICAgICB3YXNIaWRkZW4sCiAgICAgICAgICAgICAgICAgICAgICAgIHVuaGlkZVRleHRJbnN0YW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgbWF5YmVOb2RlcywKICAgICAgICAgICAgICAgICAgICAgICAgd2FzSGlkZGVuLm1lbW9pemVkUHJvcHMKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKHdhc0hpZGRlbiwgd2FzSGlkZGVuLnJldHVybiwgZXJyb3IpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgxOCA9PT0gcm9vdDIudGFnKSB7CiAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBjdXJyZW50MikgewogICAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbiA9IHJvb3QyOwogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICBpID0gd2FzSGlkZGVuLnN0YXRlTm9kZSwgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MgPyBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgICAgICAgICAgICAgd2FzSGlkZGVuLAogICAgICAgICAgICAgICAgICAgICAgICBoaWRlRGVoeWRyYXRlZEJvdW5kYXJ5LAogICAgICAgICAgICAgICAgICAgICAgICBpCiAgICAgICAgICAgICAgICAgICAgICApIDogcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbiwKICAgICAgICAgICAgICAgICAgICAgICAgdW5oaWRlRGVoeWRyYXRlZEJvdW5kYXJ5LAogICAgICAgICAgICAgICAgICAgICAgICB3YXNIaWRkZW4uc3RhdGVOb2RlCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcih3YXNIaWRkZW4sIHdhc0hpZGRlbi5yZXR1cm4sIGVycm9yKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKDIyICE9PSByb290Mi50YWcgJiYgMjMgIT09IHJvb3QyLnRhZyB8fCBudWxsID09PSByb290Mi5tZW1vaXplZFN0YXRlIHx8IHJvb3QyID09PSBmaW5pc2hlZFdvcmspICYmIG51bGwgIT09IHJvb3QyLmNoaWxkKSB7CiAgICAgICAgICAgICAgICAgIHJvb3QyLmNoaWxkLnJldHVybiA9IHJvb3QyOwogICAgICAgICAgICAgICAgICByb290MiA9IHJvb3QyLmNoaWxkOwogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChyb290MiA9PT0gZmluaXNoZWRXb3JrKSBicmVhayBhOwogICAgICAgICAgICAgICAgZm9yICg7IG51bGwgPT09IHJvb3QyLnNpYmxpbmc7ICkgewogICAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gcm9vdDIucmV0dXJuIHx8IHJvb3QyLnJldHVybiA9PT0gZmluaXNoZWRXb3JrKQogICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICAgIGN1cnJlbnQyID09PSByb290MiAmJiAoY3VycmVudDIgPSBudWxsKTsKICAgICAgICAgICAgICAgICAgcm9vdDIgPSByb290Mi5yZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjdXJyZW50MiA9PT0gcm9vdDIgJiYgKGN1cnJlbnQyID0gbnVsbCk7CiAgICAgICAgICAgICAgICByb290Mi5zaWJsaW5nLnJldHVybiA9IHJvb3QyLnJldHVybjsKICAgICAgICAgICAgICAgIHJvb3QyID0gcm9vdDIuc2libGluZzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGZsYWdzICYgNCAmJiAoZmxhZ3MgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUsIG51bGwgIT09IGZsYWdzICYmIChjdXJyZW50MiA9IGZsYWdzLnJldHJ5UXVldWUsIG51bGwgIT09IGN1cnJlbnQyICYmIChmbGFncy5yZXRyeVF1ZXVlID0gbnVsbCwgYXR0YWNoU3VzcGVuc2VSZXRyeUxpc3RlbmVycyhmaW5pc2hlZFdvcmssIGN1cnJlbnQyKSkpKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE5OgogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QyLCBmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgZmxhZ3MgJiA0ICYmIChmbGFncyA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZSwgbnVsbCAhPT0gZmxhZ3MgJiYgKGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZSA9IG51bGwsIGF0dGFjaFN1c3BlbnNlUmV0cnlMaXN0ZW5lcnMoZmluaXNoZWRXb3JrLCBmbGFncykpKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDMwOgogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjE6CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290MiwgZmluaXNoZWRXb3JrKSwgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7CiAgICAgICAgfQogICAgICAgIChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJiAoKGNvbXBvbmVudEVmZmVjdFNwYXduZWRVcGRhdGUgfHwgMC4wNSA8IGNvbXBvbmVudEVmZmVjdER1cmF0aW9uKSAmJiBsb2dDb21wb25lbnRFZmZlY3QoCiAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsCiAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RHVyYXRpb24sCiAgICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnMKICAgICAgICApLCBudWxsID09PSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlICYmIG51bGwgIT09IGZpbmlzaGVkV29yay5yZXR1cm4gJiYgbnVsbCAhPT0gZmluaXNoZWRXb3JrLnJldHVybi5hbHRlcm5hdGUgJiYgMC4wNSA8IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgLSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiYgKGlzSHlkcmF0aW5nUGFyZW50KAogICAgICAgICAgZmluaXNoZWRXb3JrLnJldHVybi5hbHRlcm5hdGUsCiAgICAgICAgICBmaW5pc2hlZFdvcmsucmV0dXJuCiAgICAgICAgKSB8fCBsb2dDb21wb25lbnRUcmlnZ2VyKAogICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSwKICAgICAgICAgICJNb3VudCIKICAgICAgICApKSk7CiAgICAgICAgcG9wQ29tcG9uZW50RWZmZWN0U3RhcnQocHJldkVmZmVjdFN0YXJ0KTsKICAgICAgICBwb3BDb21wb25lbnRFZmZlY3REdXJhdGlvbihwcmV2RWZmZWN0RHVyYXRpb24pOwogICAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IHByZXZFZmZlY3RFcnJvcnM7CiAgICAgICAgY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSA9IHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKSB7CiAgICAgICAgdmFyIGZsYWdzID0gZmluaXNoZWRXb3JrLmZsYWdzOwogICAgICAgIGlmIChmbGFncyAmIDIpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKGZpbmlzaGVkV29yaywgY29tbWl0UGxhY2VtZW50LCBmaW5pc2hlZFdvcmspOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7CiAgICAgICAgICB9CiAgICAgICAgICBmaW5pc2hlZFdvcmsuZmxhZ3MgJj0gLTM7CiAgICAgICAgfQogICAgICAgIGZsYWdzICYgNDA5NiAmJiAoZmluaXNoZWRXb3JrLmZsYWdzICY9IC00MDk3KTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZWN1cnNpdmVseVJlc2V0Rm9ybXMocGFyZW50RmliZXIpIHsKICAgICAgICBpZiAocGFyZW50RmliZXIuc3VidHJlZUZsYWdzICYgMTAyNCkKICAgICAgICAgIGZvciAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5jaGlsZDsgbnVsbCAhPT0gcGFyZW50RmliZXI7ICkgewogICAgICAgICAgICB2YXIgZmliZXIgPSBwYXJlbnRGaWJlcjsKICAgICAgICAgICAgcmVjdXJzaXZlbHlSZXNldEZvcm1zKGZpYmVyKTsKICAgICAgICAgICAgNSA9PT0gZmliZXIudGFnICYmIGZpYmVyLmZsYWdzICYgMTAyNCAmJiBmaWJlci5zdGF0ZU5vZGUucmVzZXQoKTsKICAgICAgICAgICAgcGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nOwogICAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKHJvb3QyLCBwYXJlbnRGaWJlcikgewogICAgICAgIGlmIChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiA4NzcyKQogICAgICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKQogICAgICAgICAgICBjb21taXRMYXlvdXRFZmZlY3RPbkZpYmVyKHJvb3QyLCBwYXJlbnRGaWJlci5hbHRlcm5hdGUsIHBhcmVudEZpYmVyKSwgcGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRpc2FwcGVhckxheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrKSB7CiAgICAgICAgdmFyIHByZXZFZmZlY3RTdGFydCA9IHB1c2hDb21wb25lbnRFZmZlY3RTdGFydCgpLCBwcmV2RWZmZWN0RHVyYXRpb24gPSBwdXNoQ29tcG9uZW50RWZmZWN0RHVyYXRpb24oKSwgcHJldkVmZmVjdEVycm9ycyA9IHB1c2hDb21wb25lbnRFZmZlY3RFcnJvcnMoKSwgcHJldkVmZmVjdERpZFNwYXduVXBkYXRlID0gcHVzaENvbXBvbmVudEVmZmVjdERpZFNwYXduVXBkYXRlKCk7CiAgICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7CiAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgY2FzZSAxNDoKICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgIGNvbW1pdEhvb2tMYXlvdXRVbm1vdW50RWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnJldHVybiwKICAgICAgICAgICAgICBMYXlvdXQKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURpc2FwcGVhckxheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHNhZmVseURldGFjaFJlZihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4pOwogICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlOwogICAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVubW91bnQgJiYgc2FmZWx5Q2FsbENvbXBvbmVudFdpbGxVbm1vdW50KAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsucmV0dXJuLAogICAgICAgICAgICAgIGluc3RhbmNlCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNhcHBlYXJMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyNzoKICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIHJlbGVhc2VTaW5nbGV0b25JbnN0YW5jZSwKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlCiAgICAgICAgICAgICk7CiAgICAgICAgICBjYXNlIDI2OgogICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBzYWZlbHlEZXRhY2hSZWYoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuKTsKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURpc2FwcGVhckxheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDIyOgogICAgICAgICAgICBudWxsID09PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJiByZWN1cnNpdmVseVRyYXZlcnNlRGlzYXBwZWFyTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMzA6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNhcHBlYXJMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURpc2FwcGVhckxheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrKTsKICAgICAgICB9CiAgICAgICAgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmIChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiYgbG9nQ29tcG9uZW50RWZmZWN0KAogICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSwKICAgICAgICAgIGNvbXBvbmVudEVmZmVjdER1cmF0aW9uLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzCiAgICAgICAgKTsKICAgICAgICBwb3BDb21wb25lbnRFZmZlY3RTdGFydChwcmV2RWZmZWN0U3RhcnQpOwogICAgICAgIHBvcENvbXBvbmVudEVmZmVjdER1cmF0aW9uKHByZXZFZmZlY3REdXJhdGlvbik7CiAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzID0gcHJldkVmZmVjdEVycm9yczsKICAgICAgICBjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlID0gcHJldkVmZmVjdERpZFNwYXduVXBkYXRlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNhcHBlYXJMYXlvdXRFZmZlY3RzKHBhcmVudEZpYmVyKSB7CiAgICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKQogICAgICAgICAgZGlzYXBwZWFyTGF5b3V0RWZmZWN0cyhwYXJlbnRGaWJlciksIHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuc2libGluZzsKICAgICAgfQogICAgICBmdW5jdGlvbiByZWFwcGVhckxheW91dEVmZmVjdHMoZmluaXNoZWRSb290LCBjdXJyZW50MiwgZmluaXNoZWRXb3JrLCBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzKSB7CiAgICAgICAgdmFyIHByZXZFZmZlY3RTdGFydCA9IHB1c2hDb21wb25lbnRFZmZlY3RTdGFydCgpLCBwcmV2RWZmZWN0RHVyYXRpb24gPSBwdXNoQ29tcG9uZW50RWZmZWN0RHVyYXRpb24oKSwgcHJldkVmZmVjdEVycm9ycyA9IHB1c2hDb21wb25lbnRFZmZlY3RFcnJvcnMoKSwgcHJldkVmZmVjdERpZFNwYXduVXBkYXRlID0gcHVzaENvbXBvbmVudEVmZmVjdERpZFNwYXduVXBkYXRlKCksIGZsYWdzID0gZmluaXNoZWRXb3JrLmZsYWdzOwogICAgICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykgewogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGNvbW1pdEhvb2tMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yaywgTGF5b3V0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGN1cnJlbnQyID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsKICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGN1cnJlbnQyLmNvbXBvbmVudERpZE1vdW50ICYmIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBjYWxsQ29tcG9uZW50RGlkTW91bnRJbkRFViwKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgY3VycmVudDIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgY3VycmVudDIgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7CiAgICAgICAgICAgIGlmIChudWxsICE9PSBjdXJyZW50MikgewogICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICAgIGNvbW1pdEhpZGRlbkNhbGxiYWNrcywKICAgICAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgJiYgZmxhZ3MgJiA2NCAmJiBjb21taXRDbGFzc0NhbGxiYWNrcyhmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBzYWZlbHlBdHRhY2hSZWYoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDI3OgogICAgICAgICAgICBjb21taXRIb3N0U2luZ2xldG9uQWNxdWlzaXRpb24oZmluaXNoZWRXb3JrKTsKICAgICAgICAgIGNhc2UgMjY6CiAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgJiYgbnVsbCA9PT0gY3VycmVudDIgJiYgZmxhZ3MgJiA0ICYmIGNvbW1pdEhvc3RNb3VudChmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBzYWZlbHlBdHRhY2hSZWYoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICBpZiAoaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyAmJiBmbGFncyAmIDQpIHsKICAgICAgICAgICAgICBmbGFncyA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTsKICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVhcHBlYXJMYXlvdXRFZmZlY3RzKAogICAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7CiAgICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cy5lZmZlY3REdXJhdGlvbiArPSBidWJibGVOZXN0ZWRFZmZlY3REdXJhdGlvbnMoZmxhZ3MpOwogICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgICAgICBjb21taXRQcm9maWxlciwKICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgICAgICBjdXJyZW50MiwKICAgICAgICAgICAgICAgICAgY29tbWl0U3RhcnRUaW1lLAogICAgICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLmVmZmVjdER1cmF0aW9uCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoCiAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDMxOgogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVhcHBlYXJMYXlvdXRFZmZlY3RzKAogICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cwogICAgICAgICAgICApOwogICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzICYmIGZsYWdzICYgNCAmJiBjb21taXRBY3Rpdml0eUh5ZHJhdGlvbkNhbGxiYWNrcyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyAmJiBmbGFncyAmIDQgJiYgY29tbWl0U3VzcGVuc2VIeWRyYXRpb25DYWxsYmFja3MoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgIG51bGwgPT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlICYmIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHNhZmVseUF0dGFjaFJlZihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4pOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMzA6CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmIChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiYgbG9nQ29tcG9uZW50RWZmZWN0KAogICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSwKICAgICAgICAgIGNvbXBvbmVudEVmZmVjdER1cmF0aW9uLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzCiAgICAgICAgKTsKICAgICAgICBwb3BDb21wb25lbnRFZmZlY3RTdGFydChwcmV2RWZmZWN0U3RhcnQpOwogICAgICAgIHBvcENvbXBvbmVudEVmZmVjdER1cmF0aW9uKHByZXZFZmZlY3REdXJhdGlvbik7CiAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzID0gcHJldkVmZmVjdEVycm9yczsKICAgICAgICBjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlID0gcHJldkVmZmVjdERpZFNwYXduVXBkYXRlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoZmluaXNoZWRSb290LCBwYXJlbnRGaWJlciwgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cykgewogICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgPSBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzICYmIDAgIT09IChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiA4NzcyKTsKICAgICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApCiAgICAgICAgICByZWFwcGVhckxheW91dEVmZmVjdHMoCiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgcGFyZW50RmliZXIuYWx0ZXJuYXRlLAogICAgICAgICAgICBwYXJlbnRGaWJlciwKICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cwogICAgICAgICAgKSwgcGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNvbW1pdE9mZnNjcmVlblBhc3NpdmVNb3VudEVmZmVjdHMoY3VycmVudDIsIGZpbmlzaGVkV29yaykgewogICAgICAgIHZhciBwcmV2aW91c0NhY2hlID0gbnVsbDsKICAgICAgICBudWxsICE9PSBjdXJyZW50MiAmJiBudWxsICE9PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlICYmIG51bGwgIT09IGN1cnJlbnQyLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sICYmIChwcmV2aW91c0NhY2hlID0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCk7CiAgICAgICAgY3VycmVudDIgPSBudWxsOwogICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlICYmIG51bGwgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCAmJiAoY3VycmVudDIgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCk7CiAgICAgICAgY3VycmVudDIgIT09IHByZXZpb3VzQ2FjaGUgJiYgKG51bGwgIT0gY3VycmVudDIgJiYgcmV0YWluQ2FjaGUoY3VycmVudDIpLCBudWxsICE9IHByZXZpb3VzQ2FjaGUgJiYgcmVsZWFzZUNhY2hlKHByZXZpb3VzQ2FjaGUpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRDYWNoZVBhc3NpdmVNb3VudEVmZmVjdChjdXJyZW50MiwgZmluaXNoZWRXb3JrKSB7CiAgICAgICAgY3VycmVudDIgPSBudWxsOwogICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5hbHRlcm5hdGUgJiYgKGN1cnJlbnQyID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlKTsKICAgICAgICBmaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZS5jYWNoZTsKICAgICAgICBmaW5pc2hlZFdvcmsgIT09IGN1cnJlbnQyICYmIChyZXRhaW5DYWNoZShmaW5pc2hlZFdvcmspLCBudWxsICE9IGN1cnJlbnQyICYmIHJlbGVhc2VDYWNoZShjdXJyZW50MikpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlTW91bnRFZmZlY3RzKHJvb3QyLCBwYXJlbnRGaWJlciwgY29tbWl0dGVkTGFuZXMsIGNvbW1pdHRlZFRyYW5zaXRpb25zLCBlbmRUaW1lKSB7CiAgICAgICAgaWYgKHBhcmVudEZpYmVyLnN1YnRyZWVGbGFncyAmIDEwMjU2IHx8IDAgIT09IHBhcmVudEZpYmVyLmFjdHVhbER1cmF0aW9uICYmIChudWxsID09PSBwYXJlbnRGaWJlci5hbHRlcm5hdGUgfHwgcGFyZW50RmliZXIuYWx0ZXJuYXRlLmNoaWxkICE9PSBwYXJlbnRGaWJlci5jaGlsZCkpCiAgICAgICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApIHsKICAgICAgICAgICAgdmFyIG5leHRTaWJsaW5nID0gcGFyZW50RmliZXIuc2libGluZzsKICAgICAgICAgICAgY29tbWl0UGFzc2l2ZU1vdW50T25GaWJlcigKICAgICAgICAgICAgICByb290MiwKICAgICAgICAgICAgICBwYXJlbnRGaWJlciwKICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcywKICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucywKICAgICAgICAgICAgICBudWxsICE9PSBuZXh0U2libGluZyA/IG5leHRTaWJsaW5nLmFjdHVhbFN0YXJ0VGltZSA6IGVuZFRpbWUKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcGFyZW50RmliZXIgPSBuZXh0U2libGluZzsKICAgICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRQYXNzaXZlTW91bnRPbkZpYmVyKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrLCBjb21taXR0ZWRMYW5lcywgY29tbWl0dGVkVHJhbnNpdGlvbnMsIGVuZFRpbWUpIHsKICAgICAgICB2YXIgcHJldkVmZmVjdFN0YXJ0ID0gcHVzaENvbXBvbmVudEVmZmVjdFN0YXJ0KCksIHByZXZFZmZlY3REdXJhdGlvbiA9IHB1c2hDb21wb25lbnRFZmZlY3REdXJhdGlvbigpLCBwcmV2RWZmZWN0RXJyb3JzID0gcHVzaENvbXBvbmVudEVmZmVjdEVycm9ycygpLCBwcmV2RWZmZWN0RGlkU3Bhd25VcGRhdGUgPSBwdXNoQ29tcG9uZW50RWZmZWN0RGlkU3Bhd25VcGRhdGUoKSwgcHJldkRlZXBFcXVhbGl0eSA9IGFscmVhZHlXYXJuZWRGb3JEZWVwRXF1YWxpdHksIGZsYWdzID0gZmluaXNoZWRXb3JrLmZsYWdzOwogICAgICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykgewogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgIChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmIDAgPCBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lICYmIDAgIT09IChmaW5pc2hlZFdvcmsuZmxhZ3MgJiAxKSAmJiBsb2dDb21wb25lbnRSZW5kZXIoCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGZpbmlzaGVkV29yay5hY3R1YWxTdGFydFRpbWUsCiAgICAgICAgICAgICAgZW5kVGltZSwKICAgICAgICAgICAgICBpbkh5ZHJhdGVkU3VidHJlZSwKICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcwogICAgICAgICAgICApOwogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZmxhZ3MgJiAyMDQ4ICYmIGNvbW1pdEhvb2tQYXNzaXZlTW91bnRFZmZlY3RzKGZpbmlzaGVkV29yaywgUGFzc2l2ZSB8IEhhc0VmZmVjdCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAoZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiAwIDwgZmluaXNoZWRXb3JrLmFjdHVhbFN0YXJ0VGltZSAmJiAoMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDEyOCkgPyBsb2dDb21wb25lbnRFcnJvcmVkKAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lLAogICAgICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICAgICAgW10KICAgICAgICAgICAgKSA6IDAgIT09IChmaW5pc2hlZFdvcmsuZmxhZ3MgJiAxKSAmJiBsb2dDb21wb25lbnRSZW5kZXIoCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGZpbmlzaGVkV29yay5hY3R1YWxTdGFydFRpbWUsCiAgICAgICAgICAgICAgZW5kVGltZSwKICAgICAgICAgICAgICBpbkh5ZHJhdGVkU3VidHJlZSwKICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcwogICAgICAgICAgICApKTsKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVNb3VudEVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcywKICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucywKICAgICAgICAgICAgICBlbmRUaW1lCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICB2YXIgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPSBwdXNoTmVzdGVkRWZmZWN0RHVyYXRpb25zKCksIHdhc0luSHlkcmF0ZWRTdWJ0cmVlID0gaW5IeWRyYXRlZFN1YnRyZWU7CiAgICAgICAgICAgIGluSHlkcmF0ZWRTdWJ0cmVlID0gbnVsbCAhPT0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZSAmJiBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkICYmIDAgPT09IChmaW5pc2hlZFdvcmsuZmxhZ3MgJiAyNTYpOwogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaW5IeWRyYXRlZFN1YnRyZWUgPSB3YXNJbkh5ZHJhdGVkU3VidHJlZTsKICAgICAgICAgICAgZmxhZ3MgJiAyMDQ4ICYmIChjb21taXR0ZWRMYW5lcyA9IG51bGwsIG51bGwgIT09IGZpbmlzaGVkV29yay5hbHRlcm5hdGUgJiYgKGNvbW1pdHRlZExhbmVzID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSwgY29tbWl0dGVkVHJhbnNpdGlvbnMgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZS5jYWNoZSwgY29tbWl0dGVkVHJhbnNpdGlvbnMgIT09IGNvbW1pdHRlZExhbmVzICYmIChyZXRhaW5DYWNoZShjb21taXR0ZWRUcmFuc2l0aW9ucyksIG51bGwgIT0gY29tbWl0dGVkTGFuZXMgJiYgcmVsZWFzZUNhY2hlKGNvbW1pdHRlZExhbmVzKSkpOwogICAgICAgICAgICBmaW5pc2hlZFJvb3QucGFzc2l2ZUVmZmVjdER1cmF0aW9uICs9IHBvcE5lc3RlZEVmZmVjdER1cmF0aW9ucygKICAgICAgICAgICAgICBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbgogICAgICAgICAgICApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIGlmIChmbGFncyAmIDIwNDgpIHsKICAgICAgICAgICAgICBmbGFncyA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTsKICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cygKICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsCiAgICAgICAgICAgICAgICBlbmRUaW1lCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlOwogICAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5wYXNzaXZlRWZmZWN0RHVyYXRpb24gKz0gYnViYmxlTmVzdGVkRWZmZWN0RHVyYXRpb25zKGZsYWdzKTsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICAgICAgY29tbWl0UHJvZmlsZXJQb3N0Q29tbWl0SW1wbCwKICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlLAogICAgICAgICAgICAgICAgICBjb21taXRTdGFydFRpbWUsCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5wYXNzaXZlRWZmZWN0RHVyYXRpb24KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVNb3VudEVmZmVjdHMoCiAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcywKICAgICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLAogICAgICAgICAgICAgICAgZW5kVGltZQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzMToKICAgICAgICAgICAgZmxhZ3MgPSBpbkh5ZHJhdGVkU3VidHJlZTsKICAgICAgICAgICAgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPSBudWxsICE9PSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlID8gZmluaXNoZWRXb3JrLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlIDogbnVsbDsKICAgICAgICAgICAgd2FzSW5IeWRyYXRlZFN1YnRyZWUgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgICAgbnVsbCAhPT0gcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gJiYgbnVsbCA9PT0gd2FzSW5IeWRyYXRlZFN1YnRyZWUgPyAod2FzSW5IeWRyYXRlZFN1YnRyZWUgPSBmaW5pc2hlZFdvcmsuZGVsZXRpb25zLCBudWxsICE9PSB3YXNJbkh5ZHJhdGVkU3VidHJlZSAmJiAwIDwgd2FzSW5IeWRyYXRlZFN1YnRyZWUubGVuZ3RoICYmIDE4ID09PSB3YXNJbkh5ZHJhdGVkU3VidHJlZVswXS50YWcgPyAoaW5IeWRyYXRlZFN1YnRyZWUgPSBmYWxzZSwgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPSBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbi5oeWRyYXRpb25FcnJvcnMsIG51bGwgIT09IHByZXZQcm9maWxlckVmZmVjdER1cmF0aW9uICYmIGxvZ0NvbXBvbmVudEVycm9yZWQoCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGZpbmlzaGVkV29yay5hY3R1YWxTdGFydFRpbWUsCiAgICAgICAgICAgICAgZW5kVGltZSwKICAgICAgICAgICAgICBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbgogICAgICAgICAgICApKSA6IGluSHlkcmF0ZWRTdWJ0cmVlID0gdHJ1ZSkgOiBpbkh5ZHJhdGVkU3VidHJlZSA9IGZhbHNlOwogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaW5IeWRyYXRlZFN1YnRyZWUgPSBmbGFnczsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICBmbGFncyA9IGluSHlkcmF0ZWRTdWJ0cmVlOwogICAgICAgICAgICBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbiA9IG51bGwgIT09IGZpbmlzaGVkV29yay5hbHRlcm5hdGUgPyBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUgOiBudWxsOwogICAgICAgICAgICB3YXNJbkh5ZHJhdGVkU3VidHJlZSA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlOwogICAgICAgICAgICBudWxsID09PSBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbiB8fCBudWxsID09PSBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbi5kZWh5ZHJhdGVkIHx8IG51bGwgIT09IHdhc0luSHlkcmF0ZWRTdWJ0cmVlICYmIG51bGwgIT09IHdhc0luSHlkcmF0ZWRTdWJ0cmVlLmRlaHlkcmF0ZWQgPyBpbkh5ZHJhdGVkU3VidHJlZSA9IGZhbHNlIDogKHdhc0luSHlkcmF0ZWRTdWJ0cmVlID0gZmluaXNoZWRXb3JrLmRlbGV0aW9ucywgbnVsbCAhPT0gd2FzSW5IeWRyYXRlZFN1YnRyZWUgJiYgMCA8IHdhc0luSHlkcmF0ZWRTdWJ0cmVlLmxlbmd0aCAmJiAxOCA9PT0gd2FzSW5IeWRyYXRlZFN1YnRyZWVbMF0udGFnID8gKGluSHlkcmF0ZWRTdWJ0cmVlID0gZmFsc2UsIHByZXZQcm9maWxlckVmZmVjdER1cmF0aW9uID0gcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24uaHlkcmF0aW9uRXJyb3JzLCBudWxsICE9PSBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbiAmJiBsb2dDb21wb25lbnRFcnJvcmVkKAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lLAogICAgICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICAgICAgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24KICAgICAgICAgICAgKSkgOiBpbkh5ZHJhdGVkU3VidHJlZSA9IHRydWUpOwogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaW5IeWRyYXRlZFN1YnRyZWUgPSBmbGFnczsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDIzOgogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgIHdhc0luSHlkcmF0ZWRTdWJ0cmVlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsKICAgICAgICAgICAgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlOwogICAgICAgICAgICBudWxsICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSA/IHdhc0luSHlkcmF0ZWRTdWJ0cmVlLl92aXNpYmlsaXR5ICYgT2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWQgPyByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKSA6IHJlY3Vyc2l2ZWx5VHJhdmVyc2VBdG9taWNQYXNzaXZlRWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKSA6IHdhc0luSHlkcmF0ZWRTdWJ0cmVlLl92aXNpYmlsaXR5ICYgT2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWQgPyByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKSA6ICh3YXNJbkh5ZHJhdGVkU3VidHJlZS5fdmlzaWJpbGl0eSB8PSBPZmZzY3JlZW5QYXNzaXZlRWZmZWN0c0Nvbm5lY3RlZCwgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlY29ubmVjdFBhc3NpdmVFZmZlY3RzKAogICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsCiAgICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsCiAgICAgICAgICAgICAgMCAhPT0gKGZpbmlzaGVkV29yay5zdWJ0cmVlRmxhZ3MgJiAxMDI1NikgfHwgMCAhPT0gZmluaXNoZWRXb3JrLmFjdHVhbER1cmF0aW9uICYmIChudWxsID09PSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlIHx8IGZpbmlzaGVkV29yay5hbHRlcm5hdGUuY2hpbGQgIT09IGZpbmlzaGVkV29yay5jaGlsZCksCiAgICAgICAgICAgICAgZW5kVGltZQogICAgICAgICAgICApLCAoZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgPT09IE5vTW9kZSB8fCBpbkh5ZHJhdGVkU3VidHJlZSB8fCAoZmluaXNoZWRSb290ID0gZmluaXNoZWRXb3JrLmFjdHVhbFN0YXJ0VGltZSwgMCA8PSBmaW5pc2hlZFJvb3QgJiYgMC4wNSA8IGVuZFRpbWUgLSBmaW5pc2hlZFJvb3QgJiYgbG9nQ29tcG9uZW50UmVhcHBlYXJlZChmaW5pc2hlZFdvcmssIGZpbmlzaGVkUm9vdCwgZW5kVGltZSksIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJiAwLjA1IDwgY29tcG9uZW50RWZmZWN0RW5kVGltZSAtIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJiBsb2dDb21wb25lbnRSZWFwcGVhcmVkKAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsCiAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZQogICAgICAgICAgICApKSk7CiAgICAgICAgICAgIGZsYWdzICYgMjA0OCAmJiBjb21taXRPZmZzY3JlZW5QYXNzaXZlTW91bnRFZmZlY3RzKAogICAgICAgICAgICAgIHByZXZQcm9maWxlckVmZmVjdER1cmF0aW9uLAogICAgICAgICAgICAgIGZpbmlzaGVkV29yawogICAgICAgICAgICApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjQ6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlTW91bnRFZmZlY3RzKAogICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsCiAgICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsCiAgICAgICAgICAgICAgZW5kVGltZQogICAgICAgICAgICApOwogICAgICAgICAgICBmbGFncyAmIDIwNDggJiYgY29tbWl0Q2FjaGVQYXNzaXZlTW91bnRFZmZlY3QoZmluaXNoZWRXb3JrLmFsdGVybmF0ZSwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgaWYgKChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7CiAgICAgICAgICBpZiAoZmluaXNoZWRSb290ID0gIWluSHlkcmF0ZWRTdWJ0cmVlICYmIG51bGwgPT09IGZpbmlzaGVkV29yay5hbHRlcm5hdGUgJiYgbnVsbCAhPT0gZmluaXNoZWRXb3JrLnJldHVybiAmJiBudWxsICE9PSBmaW5pc2hlZFdvcmsucmV0dXJuLmFsdGVybmF0ZSkKICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMgPSBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lLCAwIDw9IGNvbW1pdHRlZExhbmVzICYmIDAuMDUgPCBlbmRUaW1lIC0gY29tbWl0dGVkTGFuZXMgJiYgbG9nQ29tcG9uZW50VHJpZ2dlcigKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsCiAgICAgICAgICAgICAgZW5kVGltZSwKICAgICAgICAgICAgICAiTW91bnQiCiAgICAgICAgICAgICk7CiAgICAgICAgICAwIDw9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJiAwIDw9IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgJiYgKChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiYgbG9nQ29tcG9uZW50RWZmZWN0KAogICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSwKICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSwKICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RHVyYXRpb24sCiAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycwogICAgICAgICAgKSwgZmluaXNoZWRSb290ICYmIDAuMDUgPCBjb21wb25lbnRFZmZlY3RFbmRUaW1lIC0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIGxvZ0NvbXBvbmVudFRyaWdnZXIoCiAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLAogICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lLAogICAgICAgICAgICAiTW91bnQiCiAgICAgICAgICApKTsKICAgICAgICB9CiAgICAgICAgcG9wQ29tcG9uZW50RWZmZWN0U3RhcnQocHJldkVmZmVjdFN0YXJ0KTsKICAgICAgICBwb3BDb21wb25lbnRFZmZlY3REdXJhdGlvbihwcmV2RWZmZWN0RHVyYXRpb24pOwogICAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IHByZXZFZmZlY3RFcnJvcnM7CiAgICAgICAgY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSA9IHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZTsKICAgICAgICBhbHJlYWR5V2FybmVkRm9yRGVlcEVxdWFsaXR5ID0gcHJldkRlZXBFcXVhbGl0eTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoZmluaXNoZWRSb290LCBwYXJlbnRGaWJlciwgY29tbWl0dGVkTGFuZXMsIGNvbW1pdHRlZFRyYW5zaXRpb25zLCBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLCBlbmRUaW1lKSB7CiAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyA9IGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgJiYgKDAgIT09IChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiAxMDI1NikgfHwgMCAhPT0gcGFyZW50RmliZXIuYWN0dWFsRHVyYXRpb24gJiYgKG51bGwgPT09IHBhcmVudEZpYmVyLmFsdGVybmF0ZSB8fCBwYXJlbnRGaWJlci5hbHRlcm5hdGUuY2hpbGQgIT09IHBhcmVudEZpYmVyLmNoaWxkKSk7CiAgICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKSB7CiAgICAgICAgICB2YXIgbmV4dFNpYmxpbmcgPSBwYXJlbnRGaWJlci5zaWJsaW5nOwogICAgICAgICAgcmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoCiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgcGFyZW50RmliZXIsCiAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucywKICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cywKICAgICAgICAgICAgbnVsbCAhPT0gbmV4dFNpYmxpbmcgPyBuZXh0U2libGluZy5hY3R1YWxTdGFydFRpbWUgOiBlbmRUaW1lCiAgICAgICAgICApOwogICAgICAgICAgcGFyZW50RmliZXIgPSBuZXh0U2libGluZzsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmssIGNvbW1pdHRlZExhbmVzLCBjb21taXR0ZWRUcmFuc2l0aW9ucywgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cywgZW5kVGltZSkgewogICAgICAgIHZhciBwcmV2RWZmZWN0U3RhcnQgPSBwdXNoQ29tcG9uZW50RWZmZWN0U3RhcnQoKSwgcHJldkVmZmVjdER1cmF0aW9uID0gcHVzaENvbXBvbmVudEVmZmVjdER1cmF0aW9uKCksIHByZXZFZmZlY3RFcnJvcnMgPSBwdXNoQ29tcG9uZW50RWZmZWN0RXJyb3JzKCksIHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZSA9IHB1c2hDb21wb25lbnRFZmZlY3REaWRTcGF3blVwZGF0ZSgpLCBwcmV2RGVlcEVxdWFsaXR5ID0gYWxyZWFkeVdhcm5lZEZvckRlZXBFcXVhbGl0eTsKICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzICYmIChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmIDAgPCBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lICYmIDAgIT09IChmaW5pc2hlZFdvcmsuZmxhZ3MgJiAxKSAmJiBsb2dDb21wb25lbnRSZW5kZXIoCiAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lLAogICAgICAgICAgZW5kVGltZSwKICAgICAgICAgIGluSHlkcmF0ZWRTdWJ0cmVlLAogICAgICAgICAgY29tbWl0dGVkTGFuZXMKICAgICAgICApOwogICAgICAgIHZhciBmbGFncyA9IGZpbmlzaGVkV29yay5mbGFnczsKICAgICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHsKICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcywKICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucywKICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKTsKICAgICAgICAgICAgY29tbWl0SG9va1Bhc3NpdmVNb3VudEVmZmVjdHMoZmluaXNoZWRXb3JrLCBQYXNzaXZlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDIzOgogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgIHZhciBfaW5zdGFuY2UyID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsKICAgICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgPyBfaW5zdGFuY2UyLl92aXNpYmlsaXR5ICYgT2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWQgPyByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcywKICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucywKICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKSA6IHJlY3Vyc2l2ZWx5VHJhdmVyc2VBdG9taWNQYXNzaXZlRWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKSA6IChfaW5zdGFuY2UyLl92aXNpYmlsaXR5IHw9IE9mZnNjcmVlblBhc3NpdmVFZmZlY3RzQ29ubmVjdGVkLCByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcywKICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucywKICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgJiYgZmxhZ3MgJiAyMDQ4ICYmIGNvbW1pdE9mZnNjcmVlblBhc3NpdmVNb3VudEVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLmFsdGVybmF0ZSwKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsKICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDI0OgogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcywKICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucywKICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyAmJiBmbGFncyAmIDIwNDggJiYgY29tbWl0Q2FjaGVQYXNzaXZlTW91bnRFZmZlY3QoZmluaXNoZWRXb3JrLmFsdGVybmF0ZSwgZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoCiAgICAgICAgICAgICAgZmluaXNoZWRSb290LAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcywKICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucywKICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLAogICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiYgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmIChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiYgbG9nQ29tcG9uZW50RWZmZWN0KAogICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSwKICAgICAgICAgIGNvbXBvbmVudEVmZmVjdER1cmF0aW9uLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzCiAgICAgICAgKTsKICAgICAgICBwb3BDb21wb25lbnRFZmZlY3RTdGFydChwcmV2RWZmZWN0U3RhcnQpOwogICAgICAgIHBvcENvbXBvbmVudEVmZmVjdER1cmF0aW9uKHByZXZFZmZlY3REdXJhdGlvbik7CiAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzID0gcHJldkVmZmVjdEVycm9yczsKICAgICAgICBjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlID0gcHJldkVmZmVjdERpZFNwYXduVXBkYXRlOwogICAgICAgIGFscmVhZHlXYXJuZWRGb3JEZWVwRXF1YWxpdHkgPSBwcmV2RGVlcEVxdWFsaXR5OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VBdG9taWNQYXNzaXZlRWZmZWN0cyhmaW5pc2hlZFJvb3QkanNjb21wJDAsIHBhcmVudEZpYmVyLCBjb21taXR0ZWRMYW5lcyRqc2NvbXAkMCwgY29tbWl0dGVkVHJhbnNpdGlvbnMkanNjb21wJDAsIGVuZFRpbWUkanNjb21wJDApIHsKICAgICAgICBpZiAocGFyZW50RmliZXIuc3VidHJlZUZsYWdzICYgMTAyNTYgfHwgMCAhPT0gcGFyZW50RmliZXIuYWN0dWFsRHVyYXRpb24gJiYgKG51bGwgPT09IHBhcmVudEZpYmVyLmFsdGVybmF0ZSB8fCBwYXJlbnRGaWJlci5hbHRlcm5hdGUuY2hpbGQgIT09IHBhcmVudEZpYmVyLmNoaWxkKSkKICAgICAgICAgIGZvciAodmFyIGNoaWxkID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IGNoaWxkOyApIHsKICAgICAgICAgICAgcGFyZW50RmliZXIgPSBjaGlsZC5zaWJsaW5nOwogICAgICAgICAgICB2YXIgZmluaXNoZWRSb290ID0gZmluaXNoZWRSb290JGpzY29tcCQwLCBjb21taXR0ZWRMYW5lcyA9IGNvbW1pdHRlZExhbmVzJGpzY29tcCQwLCBjb21taXR0ZWRUcmFuc2l0aW9ucyA9IGNvbW1pdHRlZFRyYW5zaXRpb25zJGpzY29tcCQwLCBlbmRUaW1lID0gbnVsbCAhPT0gcGFyZW50RmliZXIgPyBwYXJlbnRGaWJlci5hY3R1YWxTdGFydFRpbWUgOiBlbmRUaW1lJGpzY29tcCQwLCBwcmV2RGVlcEVxdWFsaXR5ID0gYWxyZWFkeVdhcm5lZEZvckRlZXBFcXVhbGl0eTsKICAgICAgICAgICAgKGNoaWxkLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiAwIDwgY2hpbGQuYWN0dWFsU3RhcnRUaW1lICYmIDAgIT09IChjaGlsZC5mbGFncyAmIDEpICYmIGxvZ0NvbXBvbmVudFJlbmRlcigKICAgICAgICAgICAgICBjaGlsZCwKICAgICAgICAgICAgICBjaGlsZC5hY3R1YWxTdGFydFRpbWUsCiAgICAgICAgICAgICAgZW5kVGltZSwKICAgICAgICAgICAgICBpbkh5ZHJhdGVkU3VidHJlZSwKICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcwogICAgICAgICAgICApOwogICAgICAgICAgICB2YXIgZmxhZ3MgPSBjaGlsZC5mbGFnczsKICAgICAgICAgICAgc3dpdGNoIChjaGlsZC50YWcpIHsKICAgICAgICAgICAgICBjYXNlIDIyOgogICAgICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZUF0b21pY1Bhc3NpdmVFZmZlY3RzKAogICAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsCiAgICAgICAgICAgICAgICAgIGNoaWxkLAogICAgICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcywKICAgICAgICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsCiAgICAgICAgICAgICAgICAgIGVuZFRpbWUKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBmbGFncyAmIDIwNDggJiYgY29tbWl0T2Zmc2NyZWVuUGFzc2l2ZU1vdW50RWZmZWN0cyhjaGlsZC5hbHRlcm5hdGUsIGNoaWxkKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMjQ6CiAgICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlQXRvbWljUGFzc2l2ZUVmZmVjdHMoCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgICAgICAgY2hpbGQsCiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucywKICAgICAgICAgICAgICAgICAgZW5kVGltZQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGZsYWdzICYgMjA0OCAmJiBjb21taXRDYWNoZVBhc3NpdmVNb3VudEVmZmVjdChjaGlsZC5hbHRlcm5hdGUsIGNoaWxkKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlQXRvbWljUGFzc2l2ZUVmZmVjdHMoCiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCwKICAgICAgICAgICAgICAgICAgY2hpbGQsCiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucywKICAgICAgICAgICAgICAgICAgZW5kVGltZQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBhbHJlYWR5V2FybmVkRm9yRGVlcEVxdWFsaXR5ID0gcHJldkRlZXBFcXVhbGl0eTsKICAgICAgICAgICAgY2hpbGQgPSBwYXJlbnRGaWJlcjsKICAgICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiByZWN1cnNpdmVseUFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXQocGFyZW50RmliZXIsIGNvbW1pdHRlZExhbmVzLCBzdXNwZW5kZWRTdGF0ZSkgewogICAgICAgIGlmIChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiBzdXNwZW5zZXlDb21taXRGbGFnKQogICAgICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKQogICAgICAgICAgICBhY2N1bXVsYXRlU3VzcGVuc2V5Q29tbWl0T25GaWJlcigKICAgICAgICAgICAgICBwYXJlbnRGaWJlciwKICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcywKICAgICAgICAgICAgICBzdXNwZW5kZWRTdGF0ZQogICAgICAgICAgICApLCBwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnNpYmxpbmc7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYWNjdW11bGF0ZVN1c3BlbnNleUNvbW1pdE9uRmliZXIoZmliZXIsIGNvbW1pdHRlZExhbmVzLCBzdXNwZW5kZWRTdGF0ZSkgewogICAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7CiAgICAgICAgICBjYXNlIDI2OgogICAgICAgICAgICByZWN1cnNpdmVseUFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXQoCiAgICAgICAgICAgICAgZmliZXIsCiAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsCiAgICAgICAgICAgICAgc3VzcGVuZGVkU3RhdGUKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZmliZXIuZmxhZ3MgJiBzdXNwZW5zZXlDb21taXRGbGFnICYmIG51bGwgIT09IGZpYmVyLm1lbW9pemVkU3RhdGUgJiYgc3VzcGVuZFJlc291cmNlKAogICAgICAgICAgICAgIHN1c3BlbmRlZFN0YXRlLAogICAgICAgICAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290LAogICAgICAgICAgICAgIGZpYmVyLm1lbW9pemVkU3RhdGUsCiAgICAgICAgICAgICAgZmliZXIubWVtb2l6ZWRQcm9wcwogICAgICAgICAgICApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgcmVjdXJzaXZlbHlBY2N1bXVsYXRlU3VzcGVuc2V5Q29tbWl0KAogICAgICAgICAgICAgIGZpYmVyLAogICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgIHN1c3BlbmRlZFN0YXRlCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICB2YXIgcHJldmlvdXNIb2lzdGFibGVSb290ID0gY3VycmVudEhvaXN0YWJsZVJvb3Q7CiAgICAgICAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290ID0gZ2V0SG9pc3RhYmxlUm9vdCgKICAgICAgICAgICAgICBmaWJlci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbwogICAgICAgICAgICApOwogICAgICAgICAgICByZWN1cnNpdmVseUFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXQoCiAgICAgICAgICAgICAgZmliZXIsCiAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsCiAgICAgICAgICAgICAgc3VzcGVuZGVkU3RhdGUKICAgICAgICAgICAgKTsKICAgICAgICAgICAgY3VycmVudEhvaXN0YWJsZVJvb3QgPSBwcmV2aW91c0hvaXN0YWJsZVJvb3Q7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyMjoKICAgICAgICAgICAgbnVsbCA9PT0gZmliZXIubWVtb2l6ZWRTdGF0ZSAmJiAocHJldmlvdXNIb2lzdGFibGVSb290ID0gZmliZXIuYWx0ZXJuYXRlLCBudWxsICE9PSBwcmV2aW91c0hvaXN0YWJsZVJvb3QgJiYgbnVsbCAhPT0gcHJldmlvdXNIb2lzdGFibGVSb290Lm1lbW9pemVkU3RhdGUgPyAocHJldmlvdXNIb2lzdGFibGVSb290ID0gc3VzcGVuc2V5Q29tbWl0RmxhZywgc3VzcGVuc2V5Q29tbWl0RmxhZyA9IDE2Nzc3MjE2LCByZWN1cnNpdmVseUFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXQoCiAgICAgICAgICAgICAgZmliZXIsCiAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsCiAgICAgICAgICAgICAgc3VzcGVuZGVkU3RhdGUKICAgICAgICAgICAgKSwgc3VzcGVuc2V5Q29tbWl0RmxhZyA9IHByZXZpb3VzSG9pc3RhYmxlUm9vdCkgOiByZWN1cnNpdmVseUFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXQoCiAgICAgICAgICAgICAgZmliZXIsCiAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsCiAgICAgICAgICAgICAgc3VzcGVuZGVkU3RhdGUKICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmVjdXJzaXZlbHlBY2N1bXVsYXRlU3VzcGVuc2V5Q29tbWl0KAogICAgICAgICAgICAgIGZpYmVyLAogICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLAogICAgICAgICAgICAgIHN1c3BlbmRlZFN0YXRlCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRldGFjaEFsdGVybmF0ZVNpYmxpbmdzKHBhcmVudEZpYmVyKSB7CiAgICAgICAgdmFyIHByZXZpb3VzRmliZXIgPSBwYXJlbnRGaWJlci5hbHRlcm5hdGU7CiAgICAgICAgaWYgKG51bGwgIT09IHByZXZpb3VzRmliZXIgJiYgKHBhcmVudEZpYmVyID0gcHJldmlvdXNGaWJlci5jaGlsZCwgbnVsbCAhPT0gcGFyZW50RmliZXIpKSB7CiAgICAgICAgICBwcmV2aW91c0ZpYmVyLmNoaWxkID0gbnVsbDsKICAgICAgICAgIGRvCiAgICAgICAgICAgIHByZXZpb3VzRmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nLCBwYXJlbnRGaWJlci5zaWJsaW5nID0gbnVsbCwgcGFyZW50RmliZXIgPSBwcmV2aW91c0ZpYmVyOwogICAgICAgICAgd2hpbGUgKG51bGwgIT09IHBhcmVudEZpYmVyKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVVbm1vdW50RWZmZWN0cyhwYXJlbnRGaWJlcikgewogICAgICAgIHZhciBkZWxldGlvbnMgPSBwYXJlbnRGaWJlci5kZWxldGlvbnM7CiAgICAgICAgaWYgKDAgIT09IChwYXJlbnRGaWJlci5mbGFncyAmIDE2KSkgewogICAgICAgICAgaWYgKG51bGwgIT09IGRlbGV0aW9ucykKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZWxldGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICB2YXIgY2hpbGRUb0RlbGV0ZSA9IGRlbGV0aW9uc1tpXSwgcHJldkVmZmVjdFN0YXJ0ID0gcHVzaENvbXBvbmVudEVmZmVjdFN0YXJ0KCk7CiAgICAgICAgICAgICAgbmV4dEVmZmVjdCA9IGNoaWxkVG9EZWxldGU7CiAgICAgICAgICAgICAgY29tbWl0UGFzc2l2ZVVubW91bnRFZmZlY3RzSW5zaWRlT2ZEZWxldGVkVHJlZV9iZWdpbigKICAgICAgICAgICAgICAgIGNoaWxkVG9EZWxldGUsCiAgICAgICAgICAgICAgICBwYXJlbnRGaWJlcgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgKGNoaWxkVG9EZWxldGUubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJiAwLjA1IDwgY29tcG9uZW50RWZmZWN0RW5kVGltZSAtIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJiBsb2dDb21wb25lbnRUcmlnZ2VyKAogICAgICAgICAgICAgICAgY2hpbGRUb0RlbGV0ZSwKICAgICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSwKICAgICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVuZFRpbWUsCiAgICAgICAgICAgICAgICAiVW5tb3VudCIKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIGRldGFjaEFsdGVybmF0ZVNpYmxpbmdzKHBhcmVudEZpYmVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKHBhcmVudEZpYmVyLnN1YnRyZWVGbGFncyAmIDEwMjU2KQogICAgICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKQogICAgICAgICAgICBjb21taXRQYXNzaXZlVW5tb3VudE9uRmliZXIocGFyZW50RmliZXIpLCBwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnNpYmxpbmc7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0UGFzc2l2ZVVubW91bnRPbkZpYmVyKGZpbmlzaGVkV29yaykgewogICAgICAgIHZhciBwcmV2RWZmZWN0U3RhcnQgPSBwdXNoQ29tcG9uZW50RWZmZWN0U3RhcnQoKSwgcHJldkVmZmVjdER1cmF0aW9uID0gcHVzaENvbXBvbmVudEVmZmVjdER1cmF0aW9uKCksIHByZXZFZmZlY3RFcnJvcnMgPSBwdXNoQ29tcG9uZW50RWZmZWN0RXJyb3JzKCksIHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZSA9IHB1c2hDb21wb25lbnRFZmZlY3REaWRTcGF3blVwZGF0ZSgpOwogICAgICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykgewogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlVW5tb3VudEVmZmVjdHMoZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgZmluaXNoZWRXb3JrLmZsYWdzICYgMjA0OCAmJiBjb21taXRIb29rUGFzc2l2ZVVubW91bnRFZmZlY3RzKAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsucmV0dXJuLAogICAgICAgICAgICAgIFBhc3NpdmUgfCBIYXNFZmZlY3QKICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgIHZhciBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbiA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTsKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVVbm1vdW50RWZmZWN0cyhmaW5pc2hlZFdvcmspOwogICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLnBhc3NpdmVFZmZlY3REdXJhdGlvbiArPSBwb3BOZXN0ZWRFZmZlY3REdXJhdGlvbnMocHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24pOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIHByZXZQcm9maWxlckVmZmVjdER1cmF0aW9uID0gcHVzaE5lc3RlZEVmZmVjdER1cmF0aW9ucygpOwogICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZVVubW91bnRFZmZlY3RzKGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGZpbmlzaGVkV29yay5zdGF0ZU5vZGUucGFzc2l2ZUVmZmVjdER1cmF0aW9uICs9IGJ1YmJsZU5lc3RlZEVmZmVjdER1cmF0aW9ucyhwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbik7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAyMjoKICAgICAgICAgICAgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlOwogICAgICAgICAgICBudWxsICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJiBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbi5fdmlzaWJpbGl0eSAmIE9mZnNjcmVlblBhc3NpdmVFZmZlY3RzQ29ubmVjdGVkICYmIChudWxsID09PSBmaW5pc2hlZFdvcmsucmV0dXJuIHx8IDEzICE9PSBmaW5pc2hlZFdvcmsucmV0dXJuLnRhZykgPyAocHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24uX3Zpc2liaWxpdHkgJj0gfk9mZnNjcmVlblBhc3NpdmVFZmZlY3RzQ29ubmVjdGVkLCByZWN1cnNpdmVseVRyYXZlcnNlRGlzY29ubmVjdFBhc3NpdmVFZmZlY3RzKGZpbmlzaGVkV29yayksIChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJiAwLjA1IDwgY29tcG9uZW50RWZmZWN0RW5kVGltZSAtIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJiBsb2dDb21wb25lbnRUcmlnZ2VyKAogICAgICAgICAgICAgIGZpbmlzaGVkV29yaywKICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsCiAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSwKICAgICAgICAgICAgICAiRGlzY29ubmVjdCIKICAgICAgICAgICAgKSkgOiByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZVVubW91bnRFZmZlY3RzKGZpbmlzaGVkV29yayk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVVbm1vdW50RWZmZWN0cyhmaW5pc2hlZFdvcmspOwogICAgICAgIH0KICAgICAgICAoZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiAwIDw9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJiAwIDw9IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgJiYgKGNvbXBvbmVudEVmZmVjdFNwYXduZWRVcGRhdGUgfHwgMC4wNSA8IGNvbXBvbmVudEVmZmVjdER1cmF0aW9uKSAmJiBsb2dDb21wb25lbnRFZmZlY3QoCiAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsCiAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RHVyYXRpb24sCiAgICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnMKICAgICAgICApOwogICAgICAgIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCk7CiAgICAgICAgcG9wQ29tcG9uZW50RWZmZWN0RHVyYXRpb24ocHJldkVmZmVjdER1cmF0aW9uKTsKICAgICAgICBjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlID0gcHJldkVmZmVjdERpZFNwYXduVXBkYXRlOwogICAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IHByZXZFZmZlY3RFcnJvcnM7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVjdXJzaXZlbHlUcmF2ZXJzZURpc2Nvbm5lY3RQYXNzaXZlRWZmZWN0cyhwYXJlbnRGaWJlcikgewogICAgICAgIHZhciBkZWxldGlvbnMgPSBwYXJlbnRGaWJlci5kZWxldGlvbnM7CiAgICAgICAgaWYgKDAgIT09IChwYXJlbnRGaWJlci5mbGFncyAmIDE2KSkgewogICAgICAgICAgaWYgKG51bGwgIT09IGRlbGV0aW9ucykKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZWxldGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICB2YXIgY2hpbGRUb0RlbGV0ZSA9IGRlbGV0aW9uc1tpXSwgcHJldkVmZmVjdFN0YXJ0ID0gcHVzaENvbXBvbmVudEVmZmVjdFN0YXJ0KCk7CiAgICAgICAgICAgICAgbmV4dEVmZmVjdCA9IGNoaWxkVG9EZWxldGU7CiAgICAgICAgICAgICAgY29tbWl0UGFzc2l2ZVVubW91bnRFZmZlY3RzSW5zaWRlT2ZEZWxldGVkVHJlZV9iZWdpbigKICAgICAgICAgICAgICAgIGNoaWxkVG9EZWxldGUsCiAgICAgICAgICAgICAgICBwYXJlbnRGaWJlcgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgKGNoaWxkVG9EZWxldGUubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJiAwLjA1IDwgY29tcG9uZW50RWZmZWN0RW5kVGltZSAtIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJiBsb2dDb21wb25lbnRUcmlnZ2VyKAogICAgICAgICAgICAgICAgY2hpbGRUb0RlbGV0ZSwKICAgICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSwKICAgICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVuZFRpbWUsCiAgICAgICAgICAgICAgICAiVW5tb3VudCIKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIGRldGFjaEFsdGVybmF0ZVNpYmxpbmdzKHBhcmVudEZpYmVyKTsKICAgICAgICB9CiAgICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKQogICAgICAgICAgZGlzY29ubmVjdFBhc3NpdmVFZmZlY3QocGFyZW50RmliZXIpLCBwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnNpYmxpbmc7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGlzY29ubmVjdFBhc3NpdmVFZmZlY3QoZmluaXNoZWRXb3JrKSB7CiAgICAgICAgdmFyIHByZXZFZmZlY3RTdGFydCA9IHB1c2hDb21wb25lbnRFZmZlY3RTdGFydCgpLCBwcmV2RWZmZWN0RHVyYXRpb24gPSBwdXNoQ29tcG9uZW50RWZmZWN0RHVyYXRpb24oKSwgcHJldkVmZmVjdEVycm9ycyA9IHB1c2hDb21wb25lbnRFZmZlY3RFcnJvcnMoKSwgcHJldkVmZmVjdERpZFNwYXduVXBkYXRlID0gcHVzaENvbXBvbmVudEVmZmVjdERpZFNwYXduVXBkYXRlKCk7CiAgICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7CiAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgY29tbWl0SG9va1Bhc3NpdmVVbm1vdW50RWZmZWN0cygKICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnJldHVybiwKICAgICAgICAgICAgICBQYXNzaXZlCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNjb25uZWN0UGFzc2l2ZUVmZmVjdHMoZmluaXNoZWRXb3JrKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDIyOgogICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlOwogICAgICAgICAgICBpbnN0YW5jZS5fdmlzaWJpbGl0eSAmIE9mZnNjcmVlblBhc3NpdmVFZmZlY3RzQ29ubmVjdGVkICYmIChpbnN0YW5jZS5fdmlzaWJpbGl0eSAmPSB+T2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWQsIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNjb25uZWN0UGFzc2l2ZUVmZmVjdHMoZmluaXNoZWRXb3JrKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURpc2Nvbm5lY3RQYXNzaXZlRWZmZWN0cyhmaW5pc2hlZFdvcmspOwogICAgICAgIH0KICAgICAgICAoZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiAwIDw9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJiAwIDw9IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgJiYgKGNvbXBvbmVudEVmZmVjdFNwYXduZWRVcGRhdGUgfHwgMC4wNSA8IGNvbXBvbmVudEVmZmVjdER1cmF0aW9uKSAmJiBsb2dDb21wb25lbnRFZmZlY3QoCiAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsCiAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lLAogICAgICAgICAgY29tcG9uZW50RWZmZWN0RHVyYXRpb24sCiAgICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnMKICAgICAgICApOwogICAgICAgIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCk7CiAgICAgICAgcG9wQ29tcG9uZW50RWZmZWN0RHVyYXRpb24ocHJldkVmZmVjdER1cmF0aW9uKTsKICAgICAgICBjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlID0gcHJldkVmZmVjdERpZFNwYXduVXBkYXRlOwogICAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IHByZXZFZmZlY3RFcnJvcnM7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0UGFzc2l2ZVVubW91bnRFZmZlY3RzSW5zaWRlT2ZEZWxldGVkVHJlZV9iZWdpbihkZWxldGVkU3VidHJlZVJvb3QsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IkanNjb21wJDApIHsKICAgICAgICBmb3IgKDsgbnVsbCAhPT0gbmV4dEVmZmVjdDsgKSB7CiAgICAgICAgICB2YXIgZmliZXIgPSBuZXh0RWZmZWN0LCBjdXJyZW50MiA9IGZpYmVyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yID0gbmVhcmVzdE1vdW50ZWRBbmNlc3RvciRqc2NvbXAkMCwgcHJldkVmZmVjdFN0YXJ0ID0gcHVzaENvbXBvbmVudEVmZmVjdFN0YXJ0KCksIHByZXZFZmZlY3REdXJhdGlvbiA9IHB1c2hDb21wb25lbnRFZmZlY3REdXJhdGlvbigpLCBwcmV2RWZmZWN0RXJyb3JzID0gcHVzaENvbXBvbmVudEVmZmVjdEVycm9ycygpLCBwcmV2RWZmZWN0RGlkU3Bhd25VcGRhdGUgPSBwdXNoQ29tcG9uZW50RWZmZWN0RGlkU3Bhd25VcGRhdGUoKTsKICAgICAgICAgIHN3aXRjaCAoY3VycmVudDIudGFnKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgICBjb21taXRIb29rUGFzc2l2ZVVubW91bnRFZmZlY3RzKAogICAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLAogICAgICAgICAgICAgICAgUGFzc2l2ZQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMjM6CiAgICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudDIubWVtb2l6ZWRTdGF0ZSAmJiBudWxsICE9PSBjdXJyZW50Mi5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCAmJiAobmVhcmVzdE1vdW50ZWRBbmNlc3RvciA9IGN1cnJlbnQyLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wsIG51bGwgIT0gbmVhcmVzdE1vdW50ZWRBbmNlc3RvciAmJiByZXRhaW5DYWNoZShuZWFyZXN0TW91bnRlZEFuY2VzdG9yKSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMjQ6CiAgICAgICAgICAgICAgcmVsZWFzZUNhY2hlKGN1cnJlbnQyLm1lbW9pemVkU3RhdGUuY2FjaGUpOwogICAgICAgICAgfQogICAgICAgICAgKGN1cnJlbnQyLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJiAwIDw9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJiAwIDw9IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgJiYgKGNvbXBvbmVudEVmZmVjdFNwYXduZWRVcGRhdGUgfHwgMC4wNSA8IGNvbXBvbmVudEVmZmVjdER1cmF0aW9uKSAmJiBsb2dDb21wb25lbnRFZmZlY3QoCiAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsCiAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVuZFRpbWUsCiAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdER1cmF0aW9uLAogICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnMKICAgICAgICAgICk7CiAgICAgICAgICBwb3BDb21wb25lbnRFZmZlY3RTdGFydChwcmV2RWZmZWN0U3RhcnQpOwogICAgICAgICAgcG9wQ29tcG9uZW50RWZmZWN0RHVyYXRpb24ocHJldkVmZmVjdER1cmF0aW9uKTsKICAgICAgICAgIGNvbXBvbmVudEVmZmVjdFNwYXduZWRVcGRhdGUgPSBwcmV2RWZmZWN0RGlkU3Bhd25VcGRhdGU7CiAgICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnMgPSBwcmV2RWZmZWN0RXJyb3JzOwogICAgICAgICAgY3VycmVudDIgPSBmaWJlci5jaGlsZDsKICAgICAgICAgIGlmIChudWxsICE9PSBjdXJyZW50MikgY3VycmVudDIucmV0dXJuID0gZmliZXIsIG5leHRFZmZlY3QgPSBjdXJyZW50MjsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgYTogZm9yIChmaWJlciA9IGRlbGV0ZWRTdWJ0cmVlUm9vdDsgbnVsbCAhPT0gbmV4dEVmZmVjdDsgKSB7CiAgICAgICAgICAgICAgY3VycmVudDIgPSBuZXh0RWZmZWN0OwogICAgICAgICAgICAgIHByZXZFZmZlY3RTdGFydCA9IGN1cnJlbnQyLnNpYmxpbmc7CiAgICAgICAgICAgICAgcHJldkVmZmVjdER1cmF0aW9uID0gY3VycmVudDIucmV0dXJuOwogICAgICAgICAgICAgIGRldGFjaEZpYmVyQWZ0ZXJFZmZlY3RzKGN1cnJlbnQyKTsKICAgICAgICAgICAgICBpZiAoY3VycmVudDIgPT09IGZpYmVyKSB7CiAgICAgICAgICAgICAgICBuZXh0RWZmZWN0ID0gbnVsbDsKICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChudWxsICE9PSBwcmV2RWZmZWN0U3RhcnQpIHsKICAgICAgICAgICAgICAgIHByZXZFZmZlY3RTdGFydC5yZXR1cm4gPSBwcmV2RWZmZWN0RHVyYXRpb247CiAgICAgICAgICAgICAgICBuZXh0RWZmZWN0ID0gcHJldkVmZmVjdFN0YXJ0OwogICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbmV4dEVmZmVjdCA9IHByZXZFZmZlY3REdXJhdGlvbjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBvbkNvbW1pdFJvb3QoKSB7CiAgICAgICAgY29tbWl0SG9va3MuZm9yRWFjaChmdW5jdGlvbihjb21taXRIb29rKSB7CiAgICAgICAgICByZXR1cm4gY29tbWl0SG9vaygpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzQ29uY3VycmVudEFjdEVudmlyb25tZW50KCkgewogICAgICAgIHZhciBpc1JlYWN0QWN0RW52aXJvbm1lbnRHbG9iYWwgPSAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIElTX1JFQUNUX0FDVF9FTlZJUk9OTUVOVCA/IElTX1JFQUNUX0FDVF9FTlZJUk9OTUVOVCA6IHZvaWQgMDsKICAgICAgICBpc1JlYWN0QWN0RW52aXJvbm1lbnRHbG9iYWwgfHwgbnVsbCA9PT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgfHwgY29uc29sZS5lcnJvcigKICAgICAgICAgICJUaGUgY3VycmVudCB0ZXN0aW5nIGVudmlyb25tZW50IGlzIG5vdCBjb25maWd1cmVkIHRvIHN1cHBvcnQgYWN0KC4uLikiCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gaXNSZWFjdEFjdEVudmlyb25tZW50R2xvYmFsOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKSB7CiAgICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vQ29udGV4dCAmJiAwICE9PSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcykKICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmIC13b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lczsKICAgICAgICB2YXIgdHJhbnNpdGlvbiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQ7CiAgICAgICAgcmV0dXJuIG51bGwgIT09IHRyYW5zaXRpb24gPyAodHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyB8fCAodHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCkpLCB0cmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLmFkZChmaWJlciksIHJlcXVlc3RUcmFuc2l0aW9uTGFuZSgpKSA6IHJlc29sdmVVcGRhdGVQcmlvcml0eSgpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlcXVlc3REZWZlcnJlZExhbmUoKSB7CiAgICAgICAgaWYgKDAgPT09IHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lKQogICAgICAgICAgaWYgKDAgPT09ICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmIDUzNjg3MDkxMikgfHwgaXNIeWRyYXRpbmcpIHsKICAgICAgICAgICAgdmFyIGxhbmUgPSBuZXh0VHJhbnNpdGlvbkRlZmVycmVkTGFuZTsKICAgICAgICAgICAgbmV4dFRyYW5zaXRpb25EZWZlcnJlZExhbmUgPDw9IDE7CiAgICAgICAgICAgIDAgPT09IChuZXh0VHJhbnNpdGlvbkRlZmVycmVkTGFuZSAmIDM5MzIxNjApICYmIChuZXh0VHJhbnNpdGlvbkRlZmVycmVkTGFuZSA9IDI2MjE0NCk7CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lID0gbGFuZTsKICAgICAgICAgIH0gZWxzZSB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSA9IDUzNjg3MDkxMjsKICAgICAgICBsYW5lID0gc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudDsKICAgICAgICBudWxsICE9PSBsYW5lICYmIChsYW5lLmZsYWdzIHw9IDMyKTsKICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3NEZWZlcnJlZExhbmU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QyLCBmaWJlciwgbGFuZSkgewogICAgICAgIGlzUnVubmluZ0luc2VydGlvbkVmZmVjdCAmJiBjb25zb2xlLmVycm9yKCJ1c2VJbnNlcnRpb25FZmZlY3QgbXVzdCBub3Qgc2NoZWR1bGUgdXBkYXRlcy4iKTsKICAgICAgICBpc0ZsdXNoaW5nUGFzc2l2ZUVmZmVjdHMgJiYgKGRpZFNjaGVkdWxlVXBkYXRlRHVyaW5nUGFzc2l2ZUVmZmVjdHMgPSB0cnVlKTsKICAgICAgICBpZiAocm9vdDIgPT09IHdvcmtJblByb2dyZXNzUm9vdCAmJiAod29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPT09IFN1c3BlbmRlZE9uRGF0YSB8fCB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9PT0gU3VzcGVuZGVkT25BY3Rpb24pIHx8IG51bGwgIT09IHJvb3QyLmNhbmNlbFBlbmRpbmdDb21taXQpCiAgICAgICAgICBwcmVwYXJlRnJlc2hTdGFjayhyb290MiwgMCksIG1hcmtSb290U3VzcGVuZGVkKAogICAgICAgICAgICByb290MiwKICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMsCiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lLAogICAgICAgICAgICBmYWxzZQogICAgICAgICAgKTsKICAgICAgICBtYXJrUm9vdFVwZGF0ZWQkMShyb290MiwgbGFuZSk7CiAgICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vQ29udGV4dCAmJiByb290MiA9PT0gd29ya0luUHJvZ3Jlc3NSb290KSB7CiAgICAgICAgICBpZiAoaXNSZW5kZXJpbmcpCiAgICAgICAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgICAgIHJvb3QyID0gd29ya0luUHJvZ3Jlc3MgJiYgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcih3b3JrSW5Qcm9ncmVzcykgfHwgIlVua25vd24iOwogICAgICAgICAgICAgICAgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXJGb3JBbm90aGVyQ29tcG9uZW50Lmhhcyhyb290MikgfHwgKGRpZFdhcm5BYm91dFVwZGF0ZUluUmVuZGVyRm9yQW5vdGhlckNvbXBvbmVudC5hZGQocm9vdDIpLCBmaWJlciA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICJVbmtub3duIiwgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICAgIkNhbm5vdCB1cGRhdGUgYSBjb21wb25lbnQgKGAlc2ApIHdoaWxlIHJlbmRlcmluZyBhIGRpZmZlcmVudCBjb21wb25lbnQgKGAlc2ApLiBUbyBsb2NhdGUgdGhlIGJhZCBzZXRTdGF0ZSgpIGNhbGwgaW5zaWRlIGAlc2AsIGZvbGxvdyB0aGUgc3RhY2sgdHJhY2UgYXMgZGVzY3JpYmVkIGluIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvc2V0c3RhdGUtaW4tcmVuZGVyIiwKICAgICAgICAgICAgICAgICAgZmliZXIsCiAgICAgICAgICAgICAgICAgIHJvb3QyLAogICAgICAgICAgICAgICAgICByb290MgogICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlciB8fCAoY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICAgIkNhbm5vdCB1cGRhdGUgZHVyaW5nIGFuIGV4aXN0aW5nIHN0YXRlIHRyYW5zaXRpb24gKHN1Y2ggYXMgd2l0aGluIGByZW5kZXJgKS4gUmVuZGVyIG1ldGhvZHMgc2hvdWxkIGJlIGEgcHVyZSBmdW5jdGlvbiBvZiBwcm9wcyBhbmQgc3RhdGUuIgogICAgICAgICAgICAgICAgKSwgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXIgPSB0cnVlKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZQogICAgICAgICAgaXNEZXZUb29sc1ByZXNlbnQgJiYgYWRkRmliZXJUb0xhbmVzTWFwKHJvb3QyLCBmaWJlciwgbGFuZSksIHdhcm5JZlVwZGF0ZXNOb3RXcmFwcGVkV2l0aEFjdERFVihmaWJlciksIHJvb3QyID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgJiYgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgPT09IE5vQ29udGV4dCAmJiAod29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMgfD0gbGFuZSksIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkgJiYgbWFya1Jvb3RTdXNwZW5kZWQoCiAgICAgICAgICAgIHJvb3QyLAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcywKICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NEZWZlcnJlZExhbmUsCiAgICAgICAgICAgIGZhbHNlCiAgICAgICAgICApKSwgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QyKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwZXJmb3JtV29ya09uUm9vdChyb290MiwgbGFuZXMsIGZvcmNlU3luYykgewogICAgICAgIGlmICgoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpICE9PSBOb0NvbnRleHQpCiAgICAgICAgICB0aHJvdyBFcnJvcigiU2hvdWxkIG5vdCBhbHJlYWR5IGJlIHdvcmtpbmcuIik7CiAgICAgICAgaWYgKDAgIT09IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYmIG51bGwgIT09IHdvcmtJblByb2dyZXNzKSB7CiAgICAgICAgICB2YXIgeWllbGRlZEZpYmVyID0gd29ya0luUHJvZ3Jlc3MsIHlpZWxkRW5kVGltZSA9IG5vdyQxKCk7CiAgICAgICAgICBzd2l0Y2ggKHlpZWxkUmVhc29uKSB7CiAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25JbW1lZGlhdGU6CiAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25EYXRhOgogICAgICAgICAgICAgIHZhciBzdGFydFRpbWUgPSB5aWVsZFN0YXJ0VGltZTsKICAgICAgICAgICAgICBzdXBwb3J0c1VzZXJUaW1pbmcgJiYgKCh5aWVsZGVkRmliZXIgPSB5aWVsZGVkRmliZXIuX2RlYnVnVGFzaykgPyB5aWVsZGVkRmliZXIucnVuKAogICAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZCgKICAgICAgICAgICAgICAgICAgY29uc29sZSwKICAgICAgICAgICAgICAgICAgIlN1c3BlbmRlZCIsCiAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgICAgICAgICAgeWllbGRFbmRUaW1lLAogICAgICAgICAgICAgICAgICBDT01QT05FTlRTX1RSQUNLLAogICAgICAgICAgICAgICAgICB2b2lkIDAsCiAgICAgICAgICAgICAgICAgICJwcmltYXJ5LWxpZ2h0IgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICkgOiBjb25zb2xlLnRpbWVTdGFtcCgKICAgICAgICAgICAgICAgICJTdXNwZW5kZWQiLAogICAgICAgICAgICAgICAgc3RhcnRUaW1lLAogICAgICAgICAgICAgICAgeWllbGRFbmRUaW1lLAogICAgICAgICAgICAgICAgQ09NUE9ORU5UU19UUkFDSywKICAgICAgICAgICAgICAgIHZvaWQgMCwKICAgICAgICAgICAgICAgICJwcmltYXJ5LWxpZ2h0IgogICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uQWN0aW9uOgogICAgICAgICAgICAgIHN0YXJ0VGltZSA9IHlpZWxkU3RhcnRUaW1lOwogICAgICAgICAgICAgIHN1cHBvcnRzVXNlclRpbWluZyAmJiAoKHlpZWxkZWRGaWJlciA9IHlpZWxkZWRGaWJlci5fZGVidWdUYXNrKSA/IHlpZWxkZWRGaWJlci5ydW4oCiAgICAgICAgICAgICAgICBjb25zb2xlLnRpbWVTdGFtcC5iaW5kKAogICAgICAgICAgICAgICAgICBjb25zb2xlLAogICAgICAgICAgICAgICAgICAiQWN0aW9uIiwKICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lLAogICAgICAgICAgICAgICAgICB5aWVsZEVuZFRpbWUsCiAgICAgICAgICAgICAgICAgIENPTVBPTkVOVFNfVFJBQ0ssCiAgICAgICAgICAgICAgICAgIHZvaWQgMCwKICAgICAgICAgICAgICAgICAgInByaW1hcnktbGlnaHQiCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgKSA6IGNvbnNvbGUudGltZVN0YW1wKAogICAgICAgICAgICAgICAgIkFjdGlvbiIsCiAgICAgICAgICAgICAgICBzdGFydFRpbWUsCiAgICAgICAgICAgICAgICB5aWVsZEVuZFRpbWUsCiAgICAgICAgICAgICAgICBDT01QT05FTlRTX1RSQUNLLAogICAgICAgICAgICAgICAgdm9pZCAwLAogICAgICAgICAgICAgICAgInByaW1hcnktbGlnaHQiCiAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgc3VwcG9ydHNVc2VyVGltaW5nICYmICh5aWVsZGVkRmliZXIgPSB5aWVsZEVuZFRpbWUgLSB5aWVsZFN0YXJ0VGltZSwgMyA+IHlpZWxkZWRGaWJlciB8fCBjb25zb2xlLnRpbWVTdGFtcCgKICAgICAgICAgICAgICAgICJCbG9ja2VkIiwKICAgICAgICAgICAgICAgIHlpZWxkU3RhcnRUaW1lLAogICAgICAgICAgICAgICAgeWllbGRFbmRUaW1lLAogICAgICAgICAgICAgICAgQ09NUE9ORU5UU19UUkFDSywKICAgICAgICAgICAgICAgIHZvaWQgMCwKICAgICAgICAgICAgICAgIDUgPiB5aWVsZGVkRmliZXIgPyAicHJpbWFyeS1saWdodCIgOiAxMCA+IHlpZWxkZWRGaWJlciA/ICJwcmltYXJ5IiA6IDEwMCA+IHlpZWxkZWRGaWJlciA/ICJwcmltYXJ5LWRhcmsiIDogImVycm9yIgogICAgICAgICAgICAgICkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzdGFydFRpbWUgPSAoZm9yY2VTeW5jID0gIWZvcmNlU3luYyAmJiAwID09PSAobGFuZXMgJiAxMjcpICYmIDAgPT09IChsYW5lcyAmIHJvb3QyLmV4cGlyZWRMYW5lcykgfHwgY2hlY2tJZlJvb3RJc1ByZXJlbmRlcmluZyhyb290MiwgbGFuZXMpKSA/IHJlbmRlclJvb3RDb25jdXJyZW50KHJvb3QyLCBsYW5lcykgOiByZW5kZXJSb290U3luYyhyb290MiwgbGFuZXMsIHRydWUpOwogICAgICAgIHZhciByZW5kZXJXYXNDb25jdXJyZW50ID0gZm9yY2VTeW5jOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChzdGFydFRpbWUgPT09IFJvb3RJblByb2dyZXNzKSB7CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdElzUHJlcmVuZGVyaW5nICYmICFmb3JjZVN5bmMgJiYgbWFya1Jvb3RTdXNwZW5kZWQocm9vdDIsIGxhbmVzLCAwLCBmYWxzZSk7CiAgICAgICAgICAgIGxhbmVzID0gd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb247CiAgICAgICAgICAgIHlpZWxkU3RhcnRUaW1lID0gbm93KCk7CiAgICAgICAgICAgIHlpZWxkUmVhc29uID0gbGFuZXM7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgeWllbGRlZEZpYmVyID0gbm93JDEoKTsKICAgICAgICAgICAgeWllbGRFbmRUaW1lID0gcm9vdDIuY3VycmVudC5hbHRlcm5hdGU7CiAgICAgICAgICAgIGlmIChyZW5kZXJXYXNDb25jdXJyZW50ICYmICFpc1JlbmRlckNvbnNpc3RlbnRXaXRoRXh0ZXJuYWxTdG9yZXMoeWllbGRFbmRUaW1lKSkgewogICAgICAgICAgICAgIHNldEN1cnJlbnRUcmFja0Zyb21MYW5lcyhsYW5lcyk7CiAgICAgICAgICAgICAgeWllbGRFbmRUaW1lID0gcmVuZGVyU3RhcnRUaW1lOwogICAgICAgICAgICAgIHN0YXJ0VGltZSA9IHlpZWxkZWRGaWJlcjsKICAgICAgICAgICAgICAhc3VwcG9ydHNVc2VyVGltaW5nIHx8IHN0YXJ0VGltZSA8PSB5aWVsZEVuZFRpbWUgfHwgKHdvcmtJblByb2dyZXNzVXBkYXRlVGFzayA/IHdvcmtJblByb2dyZXNzVXBkYXRlVGFzay5ydW4oCiAgICAgICAgICAgICAgICBjb25zb2xlLnRpbWVTdGFtcC5iaW5kKAogICAgICAgICAgICAgICAgICBjb25zb2xlLAogICAgICAgICAgICAgICAgICAiVGVhcmVkIFJlbmRlciIsCiAgICAgICAgICAgICAgICAgIHlpZWxkRW5kVGltZSwKICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lLAogICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssCiAgICAgICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAgICAgICAiZXJyb3IiCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgKSA6IGNvbnNvbGUudGltZVN0YW1wKAogICAgICAgICAgICAgICAgIlRlYXJlZCBSZW5kZXIiLAogICAgICAgICAgICAgICAgeWllbGRFbmRUaW1lLAogICAgICAgICAgICAgICAgc3RhcnRUaW1lLAogICAgICAgICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICAgICAgICAiZXJyb3IiCiAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgZmluYWxpemVSZW5kZXIobGFuZXMsIHlpZWxkZWRGaWJlcik7CiAgICAgICAgICAgICAgc3RhcnRUaW1lID0gcmVuZGVyUm9vdFN5bmMocm9vdDIsIGxhbmVzLCBmYWxzZSk7CiAgICAgICAgICAgICAgcmVuZGVyV2FzQ29uY3VycmVudCA9IGZhbHNlOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzdGFydFRpbWUgPT09IFJvb3RFcnJvcmVkKSB7CiAgICAgICAgICAgICAgcmVuZGVyV2FzQ29uY3VycmVudCA9IGxhbmVzOwogICAgICAgICAgICAgIGlmIChyb290Mi5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyAmIHJlbmRlcldhc0NvbmN1cnJlbnQpCiAgICAgICAgICAgICAgICB2YXIgZXJyb3JSZXRyeUxhbmVzID0gMDsKICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlcnJvclJldHJ5TGFuZXMgPSByb290Mi5wZW5kaW5nTGFuZXMgJiAtNTM2ODcwOTEzLCBlcnJvclJldHJ5TGFuZXMgPSAwICE9PSBlcnJvclJldHJ5TGFuZXMgPyBlcnJvclJldHJ5TGFuZXMgOiBlcnJvclJldHJ5TGFuZXMgJiA1MzY4NzA5MTIgPyA1MzY4NzA5MTIgOiAwOwogICAgICAgICAgICAgIGlmICgwICE9PSBlcnJvclJldHJ5TGFuZXMpIHsKICAgICAgICAgICAgICAgIHNldEN1cnJlbnRUcmFja0Zyb21MYW5lcyhsYW5lcyk7CiAgICAgICAgICAgICAgICBsb2dFcnJvcmVkUmVuZGVyUGhhc2UoCiAgICAgICAgICAgICAgICAgIHJlbmRlclN0YXJ0VGltZSwKICAgICAgICAgICAgICAgICAgeWllbGRlZEZpYmVyLAogICAgICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NVcGRhdGVUYXNrCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgZmluYWxpemVSZW5kZXIobGFuZXMsIHlpZWxkZWRGaWJlcik7CiAgICAgICAgICAgICAgICBsYW5lcyA9IGVycm9yUmV0cnlMYW5lczsKICAgICAgICAgICAgICAgIGE6IHsKICAgICAgICAgICAgICAgICAgeWllbGRlZEZpYmVyID0gcm9vdDI7CiAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IHJlbmRlcldhc0NvbmN1cnJlbnQ7CiAgICAgICAgICAgICAgICAgIHJlbmRlcldhc0NvbmN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzOwogICAgICAgICAgICAgICAgICB2YXIgd2FzUm9vdERlaHlkcmF0ZWQgPSB5aWVsZGVkRmliZXIuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZDsKICAgICAgICAgICAgICAgICAgd2FzUm9vdERlaHlkcmF0ZWQgJiYgKHByZXBhcmVGcmVzaFN0YWNrKHlpZWxkZWRGaWJlciwgZXJyb3JSZXRyeUxhbmVzKS5mbGFncyB8PSAyNTYpOwogICAgICAgICAgICAgICAgICBlcnJvclJldHJ5TGFuZXMgPSByZW5kZXJSb290U3luYygKICAgICAgICAgICAgICAgICAgICB5aWVsZGVkRmliZXIsCiAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXRyeUxhbmVzLAogICAgICAgICAgICAgICAgICAgIGZhbHNlCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGlmIChlcnJvclJldHJ5TGFuZXMgIT09IFJvb3RFcnJvcmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzUm9vdERpZEF0dGFjaFBpbmdMaXN0ZW5lciAmJiAhd2FzUm9vdERlaHlkcmF0ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgIHlpZWxkZWRGaWJlci5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyB8PSBzdGFydFRpbWU7CiAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyB8PSBzdGFydFRpbWU7CiAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWUgPSBSb290U3VzcGVuZGVkV2l0aERlbGF5OwogICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgeWllbGRlZEZpYmVyID0gd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnM7CiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMgPSByZW5kZXJXYXNDb25jdXJyZW50OwogICAgICAgICAgICAgICAgICAgIG51bGwgIT09IHlpZWxkZWRGaWJlciAmJiAobnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMgPyB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyA9IHlpZWxkZWRGaWJlciA6IHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzLnB1c2guYXBwbHkoCiAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycywKICAgICAgICAgICAgICAgICAgICAgIHlpZWxkZWRGaWJlcgogICAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IGVycm9yUmV0cnlMYW5lczsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJlbmRlcldhc0NvbmN1cnJlbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGlmIChzdGFydFRpbWUgIT09IFJvb3RFcnJvcmVkKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGVsc2UgeWllbGRlZEZpYmVyID0gbm93JDEoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHN0YXJ0VGltZSA9PT0gUm9vdEZhdGFsRXJyb3JlZCkgewogICAgICAgICAgICAgIHNldEN1cnJlbnRUcmFja0Zyb21MYW5lcyhsYW5lcyk7CiAgICAgICAgICAgICAgbG9nRXJyb3JlZFJlbmRlclBoYXNlKAogICAgICAgICAgICAgICAgcmVuZGVyU3RhcnRUaW1lLAogICAgICAgICAgICAgICAgeWllbGRlZEZpYmVyLAogICAgICAgICAgICAgICAgbGFuZXMsCiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGZpbmFsaXplUmVuZGVyKGxhbmVzLCB5aWVsZGVkRmliZXIpOwogICAgICAgICAgICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QyLCAwKTsKICAgICAgICAgICAgICBtYXJrUm9vdFN1c3BlbmRlZChyb290MiwgbGFuZXMsIDAsIHRydWUpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGE6IHsKICAgICAgICAgICAgICBmb3JjZVN5bmMgPSByb290MjsKICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXJ0VGltZSkgewogICAgICAgICAgICAgICAgY2FzZSBSb290SW5Qcm9ncmVzczoKICAgICAgICAgICAgICAgIGNhc2UgUm9vdEZhdGFsRXJyb3JlZDoKICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoIlJvb3QgZGlkIG5vdCBjb21wbGV0ZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4iKTsKICAgICAgICAgICAgICAgIGNhc2UgUm9vdFN1c3BlbmRlZFdpdGhEZWxheToKICAgICAgICAgICAgICAgICAgaWYgKChsYW5lcyAmIDQxOTQwNDgpICE9PSBsYW5lcykgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIFJvb3RTdXNwZW5kZWRBdFRoZVNoZWxsOgogICAgICAgICAgICAgICAgICBzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMobGFuZXMpOwogICAgICAgICAgICAgICAgICBsb2dTdXNwZW5kZWRSZW5kZXJQaGFzZSgKICAgICAgICAgICAgICAgICAgICByZW5kZXJTdGFydFRpbWUsCiAgICAgICAgICAgICAgICAgICAgeWllbGRlZEZpYmVyLAogICAgICAgICAgICAgICAgICAgIGxhbmVzLAogICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVXBkYXRlVGFzawogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBmaW5hbGl6ZVJlbmRlcihsYW5lcywgeWllbGRlZEZpYmVyKTsKICAgICAgICAgICAgICAgICAgeWllbGRFbmRUaW1lID0gbGFuZXM7CiAgICAgICAgICAgICAgICAgIDAgIT09ICh5aWVsZEVuZFRpbWUgJiAxMjcpID8gYmxvY2tpbmdTdXNwZW5kZWRUaW1lID0geWllbGRlZEZpYmVyIDogMCAhPT0gKHlpZWxkRW5kVGltZSAmIDQxOTQwNDgpICYmICh0cmFuc2l0aW9uU3VzcGVuZGVkVGltZSA9IHlpZWxkZWRGaWJlcik7CiAgICAgICAgICAgICAgICAgIG1hcmtSb290U3VzcGVuZGVkKAogICAgICAgICAgICAgICAgICAgIGZvcmNlU3luYywKICAgICAgICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSwKICAgICAgICAgICAgICAgICAgICAhd29ya0luUHJvZ3Jlc3NSb290RGlkU2tpcFN1c3BlbmRlZFNpYmxpbmdzCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICBjYXNlIFJvb3RFcnJvcmVkOgogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyA9IG51bGw7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBSb290U3VzcGVuZGVkOgogICAgICAgICAgICAgICAgY2FzZSBSb290Q29tcGxldGVkOgogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCJVbmtub3duIHJvb3QgZXhpdCBzdGF0dXMuIik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSkKICAgICAgICAgICAgICAgIGNvbW1pdFJvb3QoCiAgICAgICAgICAgICAgICAgIGZvcmNlU3luYywKICAgICAgICAgICAgICAgICAgeWllbGRFbmRUaW1lLAogICAgICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMsCiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVHJhbnNpdGlvbnMsCiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZEluY2x1ZGVSZWN1cnNpdmVSZW5kZXJVcGRhdGUsCiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lLAogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcywKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZXRyeUxhbmVzLAogICAgICAgICAgICAgICAgICBzdGFydFRpbWUsCiAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgIHJlbmRlclN0YXJ0VGltZSwKICAgICAgICAgICAgICAgICAgeWllbGRlZEZpYmVyCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKChsYW5lcyAmIDYyOTE0NTYwKSA9PT0gbGFuZXMgJiYgKHJlbmRlcldhc0NvbmN1cnJlbnQgPSBnbG9iYWxNb3N0UmVjZW50RmFsbGJhY2tUaW1lICsgRkFMTEJBQ0tfVEhST1RUTEVfTVMgLSBub3ckMSgpLCAxMCA8IHJlbmRlcldhc0NvbmN1cnJlbnQpKSB7CiAgICAgICAgICAgICAgICAgIG1hcmtSb290U3VzcGVuZGVkKAogICAgICAgICAgICAgICAgICAgIGZvcmNlU3luYywKICAgICAgICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSwKICAgICAgICAgICAgICAgICAgICAhd29ya0luUHJvZ3Jlc3NSb290RGlkU2tpcFN1c3BlbmRlZFNpYmxpbmdzCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGlmICgwICE9PSBnZXROZXh0TGFuZXMoZm9yY2VTeW5jLCAwLCB0cnVlKSkgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgcGVuZGluZ0VmZmVjdHNMYW5lcyA9IGxhbmVzOwogICAgICAgICAgICAgICAgICBmb3JjZVN5bmMudGltZW91dEhhbmRsZSA9IHNjaGVkdWxlVGltZW91dCgKICAgICAgICAgICAgICAgICAgICBjb21taXRSb290V2hlblJlYWR5LmJpbmQoCiAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgZm9yY2VTeW5jLAogICAgICAgICAgICAgICAgICAgICAgeWllbGRFbmRUaW1lLAogICAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMsCiAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zLAogICAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkSW5jbHVkZVJlY3Vyc2l2ZVJlbmRlclVwZGF0ZSwKICAgICAgICAgICAgICAgICAgICAgIGxhbmVzLAogICAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NEZWZlcnJlZExhbmUsCiAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcywKICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmV0cnlMYW5lcywKICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZFNraXBTdXNwZW5kZWRTaWJsaW5ncywKICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgICAgICAgICAgICAgICJUaHJvdHRsZWQiLAogICAgICAgICAgICAgICAgICAgICAgcmVuZGVyU3RhcnRUaW1lLAogICAgICAgICAgICAgICAgICAgICAgeWllbGRlZEZpYmVyCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICByZW5kZXJXYXNDb25jdXJyZW50CiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb21taXRSb290V2hlblJlYWR5KAogICAgICAgICAgICAgICAgICBmb3JjZVN5bmMsCiAgICAgICAgICAgICAgICAgIHlpZWxkRW5kVGltZSwKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMsCiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVHJhbnNpdGlvbnMsCiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZEluY2x1ZGVSZWN1cnNpdmVSZW5kZXJVcGRhdGUsCiAgICAgICAgICAgICAgICAgIGxhbmVzLAogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSwKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMsCiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmV0cnlMYW5lcywKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkU2tpcFN1c3BlbmRlZFNpYmxpbmdzLAogICAgICAgICAgICAgICAgICBzdGFydFRpbWUsCiAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgIHJlbmRlclN0YXJ0VGltZSwKICAgICAgICAgICAgICAgICAgeWllbGRlZEZpYmVyCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfSB3aGlsZSAoMSk7CiAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QyKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRSb290V2hlblJlYWR5KHJvb3QyLCBmaW5pc2hlZFdvcmssIHJlY292ZXJhYmxlRXJyb3JzLCB0cmFuc2l0aW9ucywgZGlkSW5jbHVkZVJlbmRlclBoYXNlVXBkYXRlLCBsYW5lcywgc3Bhd25lZExhbmUsIHVwZGF0ZWRMYW5lcywgc3VzcGVuZGVkUmV0cnlMYW5lcywgZGlkU2tpcFN1c3BlbmRlZFNpYmxpbmdzLCBleGl0U3RhdHVzLCBzdXNwZW5kZWRDb21taXRSZWFzb24sIGNvbXBsZXRlZFJlbmRlclN0YXJ0VGltZSwgY29tcGxldGVkUmVuZGVyRW5kVGltZSkgewogICAgICAgIHJvb3QyLnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQ7CiAgICAgICAgdmFyIHN1YnRyZWVGbGFncyA9IGZpbmlzaGVkV29yay5zdWJ0cmVlRmxhZ3MsIHN1c3BlbmRlZFN0YXRlID0gbnVsbDsKICAgICAgICBpZiAoc3VidHJlZUZsYWdzICYgODE5MiB8fCAxNjc4NTQwOCA9PT0gKHN1YnRyZWVGbGFncyAmIDE2Nzg1NDA4KSkgewogICAgICAgICAgaWYgKHN1c3BlbmRlZFN0YXRlID0gewogICAgICAgICAgICBzdHlsZXNoZWV0czogbnVsbCwKICAgICAgICAgICAgY291bnQ6IDAsCiAgICAgICAgICAgIGltZ0NvdW50OiAwLAogICAgICAgICAgICBpbWdCeXRlczogMCwKICAgICAgICAgICAgc3VzcGVuc2V5SW1hZ2VzOiBbXSwKICAgICAgICAgICAgd2FpdGluZ0ZvckltYWdlczogdHJ1ZSwKICAgICAgICAgICAgd2FpdGluZ0ZvclZpZXdUcmFuc2l0aW9uOiBmYWxzZSwKICAgICAgICAgICAgdW5zdXNwZW5kOiBub29wJDEKICAgICAgICAgIH0sIGFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXRPbkZpYmVyKGZpbmlzaGVkV29yaywgbGFuZXMsIHN1c3BlbmRlZFN0YXRlKSwgc3VidHJlZUZsYWdzID0gKGxhbmVzICYgNjI5MTQ1NjApID09PSBsYW5lcyA/IGdsb2JhbE1vc3RSZWNlbnRGYWxsYmFja1RpbWUgLSBub3ckMSgpIDogKGxhbmVzICYgNDE5NDA0OCkgPT09IGxhbmVzID8gZ2xvYmFsTW9zdFJlY2VudFRyYW5zaXRpb25UaW1lIC0gbm93JDEoKSA6IDAsIHN1YnRyZWVGbGFncyA9IHdhaXRGb3JDb21taXRUb0JlUmVhZHkoc3VzcGVuZGVkU3RhdGUsIHN1YnRyZWVGbGFncyksIG51bGwgIT09IHN1YnRyZWVGbGFncykgewogICAgICAgICAgICBwZW5kaW5nRWZmZWN0c0xhbmVzID0gbGFuZXM7CiAgICAgICAgICAgIHJvb3QyLmNhbmNlbFBlbmRpbmdDb21taXQgPSBzdWJ0cmVlRmxhZ3MoCiAgICAgICAgICAgICAgY29tbWl0Um9vdC5iaW5kKAogICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgIHJvb3QyLAogICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgICAgbGFuZXMsCiAgICAgICAgICAgICAgICByZWNvdmVyYWJsZUVycm9ycywKICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zLAogICAgICAgICAgICAgICAgZGlkSW5jbHVkZVJlbmRlclBoYXNlVXBkYXRlLAogICAgICAgICAgICAgICAgc3Bhd25lZExhbmUsCiAgICAgICAgICAgICAgICB1cGRhdGVkTGFuZXMsCiAgICAgICAgICAgICAgICBzdXNwZW5kZWRSZXRyeUxhbmVzLAogICAgICAgICAgICAgICAgZXhpdFN0YXR1cywKICAgICAgICAgICAgICAgIHN1c3BlbmRlZFN0YXRlLAogICAgICAgICAgICAgICAgc3VzcGVuZGVkU3RhdGUud2FpdGluZ0ZvclZpZXdUcmFuc2l0aW9uID8gIldhaXRpbmcgZm9yIHRoZSBwcmV2aW91cyBBbmltYXRpb24iIDogMCA8IHN1c3BlbmRlZFN0YXRlLmNvdW50ID8gMCA8IHN1c3BlbmRlZFN0YXRlLmltZ0NvdW50ID8gIlN1c3BlbmRlZCBvbiBDU1MgYW5kIEltYWdlcyIgOiAiU3VzcGVuZGVkIG9uIENTUyIgOiAxID09PSBzdXNwZW5kZWRTdGF0ZS5pbWdDb3VudCA/ICJTdXNwZW5kZWQgb24gYW4gSW1hZ2UiIDogMCA8IHN1c3BlbmRlZFN0YXRlLmltZ0NvdW50ID8gIlN1c3BlbmRlZCBvbiBJbWFnZXMiIDogbnVsbCwKICAgICAgICAgICAgICAgIGNvbXBsZXRlZFJlbmRlclN0YXJ0VGltZSwKICAgICAgICAgICAgICAgIGNvbXBsZXRlZFJlbmRlckVuZFRpbWUKICAgICAgICAgICAgICApCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtSb290U3VzcGVuZGVkKAogICAgICAgICAgICAgIHJvb3QyLAogICAgICAgICAgICAgIGxhbmVzLAogICAgICAgICAgICAgIHNwYXduZWRMYW5lLAogICAgICAgICAgICAgICFkaWRTa2lwU3VzcGVuZGVkU2libGluZ3MKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb21taXRSb290KAogICAgICAgICAgcm9vdDIsCiAgICAgICAgICBmaW5pc2hlZFdvcmssCiAgICAgICAgICBsYW5lcywKICAgICAgICAgIHJlY292ZXJhYmxlRXJyb3JzLAogICAgICAgICAgdHJhbnNpdGlvbnMsCiAgICAgICAgICBkaWRJbmNsdWRlUmVuZGVyUGhhc2VVcGRhdGUsCiAgICAgICAgICBzcGF3bmVkTGFuZSwKICAgICAgICAgIHVwZGF0ZWRMYW5lcywKICAgICAgICAgIHN1c3BlbmRlZFJldHJ5TGFuZXMsCiAgICAgICAgICBleGl0U3RhdHVzLAogICAgICAgICAgc3VzcGVuZGVkU3RhdGUsCiAgICAgICAgICBzdXNwZW5kZWRDb21taXRSZWFzb24sCiAgICAgICAgICBjb21wbGV0ZWRSZW5kZXJTdGFydFRpbWUsCiAgICAgICAgICBjb21wbGV0ZWRSZW5kZXJFbmRUaW1lCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc1JlbmRlckNvbnNpc3RlbnRXaXRoRXh0ZXJuYWxTdG9yZXMoZmluaXNoZWRXb3JrKSB7CiAgICAgICAgZm9yICh2YXIgbm9kZSA9IGZpbmlzaGVkV29yazsgOyApIHsKICAgICAgICAgIHZhciB0YWcgPSBub2RlLnRhZzsKICAgICAgICAgIGlmICgoMCA9PT0gdGFnIHx8IDExID09PSB0YWcgfHwgMTUgPT09IHRhZykgJiYgbm9kZS5mbGFncyAmIDE2Mzg0ICYmICh0YWcgPSBub2RlLnVwZGF0ZVF1ZXVlLCBudWxsICE9PSB0YWcgJiYgKHRhZyA9IHRhZy5zdG9yZXMsIG51bGwgIT09IHRhZykpKQogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhZy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgIHZhciBjaGVjayA9IHRhZ1tpXSwgZ2V0U25hcHNob3QgPSBjaGVjay5nZXRTbmFwc2hvdDsKICAgICAgICAgICAgICBjaGVjayA9IGNoZWNrLnZhbHVlOwogICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBpZiAoIW9iamVjdElzKGdldFNuYXBzaG90KCksIGNoZWNrKSkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB0YWcgPSBub2RlLmNoaWxkOwogICAgICAgICAgaWYgKG5vZGUuc3VidHJlZUZsYWdzICYgMTYzODQgJiYgbnVsbCAhPT0gdGFnKQogICAgICAgICAgICB0YWcucmV0dXJuID0gbm9kZSwgbm9kZSA9IHRhZzsKICAgICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAobm9kZSA9PT0gZmluaXNoZWRXb3JrKSBicmVhazsKICAgICAgICAgICAgZm9yICg7IG51bGwgPT09IG5vZGUuc2libGluZzsgKSB7CiAgICAgICAgICAgICAgaWYgKG51bGwgPT09IG5vZGUucmV0dXJuIHx8IG5vZGUucmV0dXJuID09PSBmaW5pc2hlZFdvcmspIHJldHVybiB0cnVlOwogICAgICAgICAgICAgIG5vZGUgPSBub2RlLnJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47CiAgICAgICAgICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1hcmtSb290U3VzcGVuZGVkKHJvb3QyLCBzdXNwZW5kZWRMYW5lcywgc3Bhd25lZExhbmUsIGRpZEF0dGVtcHRFbnRpcmVUcmVlKSB7CiAgICAgICAgc3VzcGVuZGVkTGFuZXMgJj0gfndvcmtJblByb2dyZXNzUm9vdFBpbmdlZExhbmVzOwogICAgICAgIHN1c3BlbmRlZExhbmVzICY9IH53b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lczsKICAgICAgICByb290Mi5zdXNwZW5kZWRMYW5lcyB8PSBzdXNwZW5kZWRMYW5lczsKICAgICAgICByb290Mi5waW5nZWRMYW5lcyAmPSB+c3VzcGVuZGVkTGFuZXM7CiAgICAgICAgZGlkQXR0ZW1wdEVudGlyZVRyZWUgJiYgKHJvb3QyLndhcm1MYW5lcyB8PSBzdXNwZW5kZWRMYW5lcyk7CiAgICAgICAgZGlkQXR0ZW1wdEVudGlyZVRyZWUgPSByb290Mi5leHBpcmF0aW9uVGltZXM7CiAgICAgICAgZm9yICh2YXIgbGFuZXMgPSBzdXNwZW5kZWRMYW5lczsgMCA8IGxhbmVzOyApIHsKICAgICAgICAgIHZhciBpbmRleCA9IDMxIC0gY2x6MzIobGFuZXMpLCBsYW5lID0gMSA8PCBpbmRleDsKICAgICAgICAgIGRpZEF0dGVtcHRFbnRpcmVUcmVlW2luZGV4XSA9IC0xOwogICAgICAgICAgbGFuZXMgJj0gfmxhbmU7CiAgICAgICAgfQogICAgICAgIDAgIT09IHNwYXduZWRMYW5lICYmIG1hcmtTcGF3bmVkRGVmZXJyZWRMYW5lKHJvb3QyLCBzcGF3bmVkTGFuZSwgc3VzcGVuZGVkTGFuZXMpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGZsdXNoU3luY1dvcmskMSgpIHsKICAgICAgICByZXR1cm4gKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT0gTm9Db250ZXh0ID8gKGZsdXNoU3luY1dvcmtBY3Jvc3NSb290c19pbXBsKDAsIGZhbHNlKSwgZmFsc2UpIDogdHJ1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZXNldFdvcmtJblByb2dyZXNzU3RhY2soKSB7CiAgICAgICAgaWYgKG51bGwgIT09IHdvcmtJblByb2dyZXNzKSB7CiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPT09IE5vdFN1c3BlbmRlZCkKICAgICAgICAgICAgdmFyIGludGVycnVwdGVkV29yayA9IHdvcmtJblByb2dyZXNzLnJldHVybjsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgaW50ZXJydXB0ZWRXb3JrID0gd29ya0luUHJvZ3Jlc3MsIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpLCByZXNldEhvb2tzT25VbndpbmQoaW50ZXJydXB0ZWRXb3JrKSwgdGhlbmFibGVTdGF0ZSQxID0gbnVsbCwgdGhlbmFibGVJbmRleENvdW50ZXIkMSA9IDAsIGludGVycnVwdGVkV29yayA9IHdvcmtJblByb2dyZXNzOwogICAgICAgICAgZm9yICg7IG51bGwgIT09IGludGVycnVwdGVkV29yazsgKQogICAgICAgICAgICB1bndpbmRJbnRlcnJ1cHRlZFdvcmsoaW50ZXJydXB0ZWRXb3JrLmFsdGVybmF0ZSwgaW50ZXJydXB0ZWRXb3JrKSwgaW50ZXJydXB0ZWRXb3JrID0gaW50ZXJydXB0ZWRXb3JrLnJldHVybjsKICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZmluYWxpemVSZW5kZXIobGFuZXMsIGZpbmFsaXphdGlvblRpbWUpIHsKICAgICAgICAwICE9PSAobGFuZXMgJiAxMjcpICYmIChibG9ja2luZ0NsYW1wVGltZSA9IGZpbmFsaXphdGlvblRpbWUpOwogICAgICAgIDAgIT09IChsYW5lcyAmIDQxOTQwNDgpICYmICh0cmFuc2l0aW9uQ2xhbXBUaW1lID0gZmluYWxpemF0aW9uVGltZSk7CiAgICAgICAgMCAhPT0gKGxhbmVzICYgNjI5MTQ1NjApICYmIChyZXRyeUNsYW1wVGltZSA9IGZpbmFsaXphdGlvblRpbWUpOwogICAgICAgIDAgIT09IChsYW5lcyAmIDIwODAzNzQ3ODQpICYmIChpZGxlQ2xhbXBUaW1lID0gZmluYWxpemF0aW9uVGltZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcHJlcGFyZUZyZXNoU3RhY2socm9vdDIsIGxhbmVzKSB7CiAgICAgICAgc3VwcG9ydHNVc2VyVGltaW5nICYmIChjb25zb2xlLnRpbWVTdGFtcCgKICAgICAgICAgICJCbG9ja2luZyBUcmFjayIsCiAgICAgICAgICAzZS0zLAogICAgICAgICAgM2UtMywKICAgICAgICAgICJCbG9ja2luZyIsCiAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICJwcmltYXJ5LWxpZ2h0IgogICAgICAgICksIGNvbnNvbGUudGltZVN0YW1wKAogICAgICAgICAgIlRyYW5zaXRpb24gVHJhY2siLAogICAgICAgICAgM2UtMywKICAgICAgICAgIDNlLTMsCiAgICAgICAgICAiVHJhbnNpdGlvbiIsCiAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICJwcmltYXJ5LWxpZ2h0IgogICAgICAgICksIGNvbnNvbGUudGltZVN0YW1wKAogICAgICAgICAgIlN1c3BlbnNlIFRyYWNrIiwKICAgICAgICAgIDNlLTMsCiAgICAgICAgICAzZS0zLAogICAgICAgICAgIlN1c3BlbnNlIiwKICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgInByaW1hcnktbGlnaHQiCiAgICAgICAgKSwgY29uc29sZS50aW1lU3RhbXAoCiAgICAgICAgICAiSWRsZSBUcmFjayIsCiAgICAgICAgICAzZS0zLAogICAgICAgICAgM2UtMywKICAgICAgICAgICJJZGxlIiwKICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgInByaW1hcnktbGlnaHQiCiAgICAgICAgKSk7CiAgICAgICAgdmFyIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lID0gcmVuZGVyU3RhcnRUaW1lOwogICAgICAgIHJlbmRlclN0YXJ0VGltZSA9IG5vdygpOwogICAgICAgIGlmICgwICE9PSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmJiAwIDwgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUpIHsKICAgICAgICAgIHNldEN1cnJlbnRUcmFja0Zyb21MYW5lcyh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyk7CiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdFN1c3BlbmRlZCB8fCB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290U3VzcGVuZGVkV2l0aERlbGF5KQogICAgICAgICAgICBsb2dTdXNwZW5kZWRSZW5kZXJQaGFzZSgKICAgICAgICAgICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSwKICAgICAgICAgICAgICByZW5kZXJTdGFydFRpbWUsCiAgICAgICAgICAgICAgbGFuZXMsCiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NVcGRhdGVUYXNrCiAgICAgICAgICAgICk7CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdmFyIGVuZFRpbWUgPSByZW5kZXJTdGFydFRpbWUsIGRlYnVnVGFzayA9IHdvcmtJblByb2dyZXNzVXBkYXRlVGFzazsKICAgICAgICAgICAgaWYgKHN1cHBvcnRzVXNlclRpbWluZyAmJiAhKGVuZFRpbWUgPD0gcHJldmlvdXNSZW5kZXJTdGFydFRpbWUpKSB7CiAgICAgICAgICAgICAgdmFyIGNvbG9yID0gKGxhbmVzICYgNzM4MTk3NjUzKSA9PT0gbGFuZXMgPyAidGVydGlhcnktZGFyayIgOiAicHJpbWFyeS1kYXJrIiwgbGFiZWwgPSAobGFuZXMgJiA1MzY4NzA5MTIpID09PSBsYW5lcyA/ICJQcmV3YXJtIiA6IChsYW5lcyAmIDIwMTMyNjc0MSkgPT09IGxhbmVzID8gIkludGVycnVwdGVkIEh5ZHJhdGlvbiIgOiAiSW50ZXJydXB0ZWQgUmVuZGVyIjsKICAgICAgICAgICAgICBkZWJ1Z1Rhc2sgPyBkZWJ1Z1Rhc2sucnVuKAogICAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZCgKICAgICAgICAgICAgICAgICAgY29uc29sZSwKICAgICAgICAgICAgICAgICAgbGFiZWwsCiAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lLAogICAgICAgICAgICAgICAgICBlbmRUaW1lLAogICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssCiAgICAgICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAgICAgICBjb2xvcgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICkgOiBjb25zb2xlLnRpbWVTdGFtcCgKICAgICAgICAgICAgICAgIGxhYmVsLAogICAgICAgICAgICAgICAgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUsCiAgICAgICAgICAgICAgICBlbmRUaW1lLAogICAgICAgICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICAgICAgICBjb2xvcgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGZpbmFsaXplUmVuZGVyKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzLCByZW5kZXJTdGFydFRpbWUpOwogICAgICAgIH0KICAgICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IHdvcmtJblByb2dyZXNzVXBkYXRlVGFzazsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sgPSBudWxsOwogICAgICAgIGlmICgwICE9PSAobGFuZXMgJiAxMjcpKSB7CiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sgPSBibG9ja2luZ1VwZGF0ZVRhc2s7CiAgICAgICAgICBkZWJ1Z1Rhc2sgPSAwIDw9IGJsb2NraW5nVXBkYXRlVGltZSAmJiBibG9ja2luZ1VwZGF0ZVRpbWUgPCBibG9ja2luZ0NsYW1wVGltZSA/IGJsb2NraW5nQ2xhbXBUaW1lIDogYmxvY2tpbmdVcGRhdGVUaW1lOwogICAgICAgICAgZW5kVGltZSA9IDAgPD0gYmxvY2tpbmdFdmVudFRpbWUgJiYgYmxvY2tpbmdFdmVudFRpbWUgPCBibG9ja2luZ0NsYW1wVGltZSA/IGJsb2NraW5nQ2xhbXBUaW1lIDogYmxvY2tpbmdFdmVudFRpbWU7CiAgICAgICAgICBjb2xvciA9IDAgPD0gZW5kVGltZSA/IGVuZFRpbWUgOiAwIDw9IGRlYnVnVGFzayA/IGRlYnVnVGFzayA6IHJlbmRlclN0YXJ0VGltZTsKICAgICAgICAgIDAgPD0gYmxvY2tpbmdTdXNwZW5kZWRUaW1lID8gKHNldEN1cnJlbnRUcmFja0Zyb21MYW5lcygyKSwgbG9nU3VzcGVuZGVkV2l0aERlbGF5UGhhc2UoCiAgICAgICAgICAgIGJsb2NraW5nU3VzcGVuZGVkVGltZSwKICAgICAgICAgICAgY29sb3IsCiAgICAgICAgICAgIGxhbmVzLAogICAgICAgICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZQogICAgICAgICAgKSkgOiAwICE9PSAoYW5pbWF0aW5nTGFuZXMgJiAxMjcpICYmIChzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMoMiksIGxvZ0FuaW1hdGluZ1BoYXNlKGJsb2NraW5nQ2xhbXBUaW1lLCBjb2xvciwgYW5pbWF0aW5nVGFzaykpOwogICAgICAgICAgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUgPSBkZWJ1Z1Rhc2s7CiAgICAgICAgICB2YXIgZXZlbnRUaW1lID0gZW5kVGltZSwgZXZlbnRUeXBlID0gYmxvY2tpbmdFdmVudFR5cGUsIGV2ZW50SXNSZXBlYXQgPSAwIDwgYmxvY2tpbmdFdmVudFJlcGVhdFRpbWUsIGlzU3Bhd25lZFVwZGF0ZSA9IGJsb2NraW5nVXBkYXRlVHlwZSA9PT0gU1BBV05FRF9VUERBVEUsIGlzUGluZ2VkVXBkYXRlID0gYmxvY2tpbmdVcGRhdGVUeXBlID09PSBQSU5HRURfVVBEQVRFOwogICAgICAgICAgZGVidWdUYXNrID0gcmVuZGVyU3RhcnRUaW1lOwogICAgICAgICAgZW5kVGltZSA9IGJsb2NraW5nVXBkYXRlVGFzazsKICAgICAgICAgIGNvbG9yID0gYmxvY2tpbmdVcGRhdGVNZXRob2ROYW1lOwogICAgICAgICAgbGFiZWwgPSBibG9ja2luZ1VwZGF0ZUNvbXBvbmVudE5hbWU7CiAgICAgICAgICBpZiAoc3VwcG9ydHNVc2VyVGltaW5nKSB7CiAgICAgICAgICAgIGN1cnJlbnRUcmFjayA9ICJCbG9ja2luZyI7CiAgICAgICAgICAgIDAgPCBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA/IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lID4gZGVidWdUYXNrICYmIChwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IGRlYnVnVGFzaykgOiBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IGRlYnVnVGFzazsKICAgICAgICAgICAgMCA8IGV2ZW50VGltZSA/IGV2ZW50VGltZSA+IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lICYmIChldmVudFRpbWUgPSBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSkgOiBldmVudFRpbWUgPSBwcmV2aW91c1JlbmRlclN0YXJ0VGltZTsKICAgICAgICAgICAgaWYgKG51bGwgIT09IGV2ZW50VHlwZSAmJiBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA+IGV2ZW50VGltZSkgewogICAgICAgICAgICAgIHZhciBjb2xvciRqc2NvbXAkMCA9IGV2ZW50SXNSZXBlYXQgPyAic2Vjb25kYXJ5LWxpZ2h0IiA6ICJ3YXJuaW5nIjsKICAgICAgICAgICAgICBlbmRUaW1lID8gZW5kVGltZS5ydW4oCiAgICAgICAgICAgICAgICBjb25zb2xlLnRpbWVTdGFtcC5iaW5kKAogICAgICAgICAgICAgICAgICBjb25zb2xlLAogICAgICAgICAgICAgICAgICBldmVudElzUmVwZWF0ID8gIkNvbnNlY3V0aXZlIiA6ICJFdmVudDogIiArIGV2ZW50VHlwZSwKICAgICAgICAgICAgICAgICAgZXZlbnRUaW1lLAogICAgICAgICAgICAgICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSwKICAgICAgICAgICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICAgICAgICAgY29sb3IkanNjb21wJDAKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICApIDogY29uc29sZS50aW1lU3RhbXAoCiAgICAgICAgICAgICAgICBldmVudElzUmVwZWF0ID8gIkNvbnNlY3V0aXZlIiA6ICJFdmVudDogIiArIGV2ZW50VHlwZSwKICAgICAgICAgICAgICAgIGV2ZW50VGltZSwKICAgICAgICAgICAgICAgIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lLAogICAgICAgICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICAgICAgICBjb2xvciRqc2NvbXAkMAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGVidWdUYXNrID4gcHJldmlvdXNSZW5kZXJTdGFydFRpbWUgJiYgKGV2ZW50VGltZSA9IGlzU3Bhd25lZFVwZGF0ZSA/ICJlcnJvciIgOiAobGFuZXMgJiA3MzgxOTc2NTMpID09PSBsYW5lcyA/ICJ0ZXJ0aWFyeS1saWdodCIgOiAicHJpbWFyeS1saWdodCIsIGlzU3Bhd25lZFVwZGF0ZSA9IGlzUGluZ2VkVXBkYXRlID8gIlByb21pc2UgUmVzb2x2ZWQiIDogaXNTcGF3bmVkVXBkYXRlID8gIkNhc2NhZGluZyBVcGRhdGUiIDogNSA8IGRlYnVnVGFzayAtIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lID8gIlVwZGF0ZSBCbG9ja2VkIiA6ICJVcGRhdGUiLCBpc1BpbmdlZFVwZGF0ZSA9IFtdLCBudWxsICE9IGxhYmVsICYmIGlzUGluZ2VkVXBkYXRlLnB1c2goWyJDb21wb25lbnQgbmFtZSIsIGxhYmVsXSksIG51bGwgIT0gY29sb3IgJiYgaXNQaW5nZWRVcGRhdGUucHVzaChbIk1ldGhvZCBuYW1lIiwgY29sb3JdKSwgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUgPSB7CiAgICAgICAgICAgICAgc3RhcnQ6IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lLAogICAgICAgICAgICAgIGVuZDogZGVidWdUYXNrLAogICAgICAgICAgICAgIGRldGFpbDogewogICAgICAgICAgICAgICAgZGV2dG9vbHM6IHsKICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogaXNQaW5nZWRVcGRhdGUsCiAgICAgICAgICAgICAgICAgIHRyYWNrOiBjdXJyZW50VHJhY2ssCiAgICAgICAgICAgICAgICAgIHRyYWNrR3JvdXA6IExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAgICAgICBjb2xvcjogZXZlbnRUaW1lCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCBlbmRUaW1lID8gZW5kVGltZS5ydW4oCiAgICAgICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZS5iaW5kKAogICAgICAgICAgICAgICAgcGVyZm9ybWFuY2UsCiAgICAgICAgICAgICAgICBpc1NwYXduZWRVcGRhdGUsCiAgICAgICAgICAgICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZQogICAgICAgICAgICAgICkKICAgICAgICAgICAgKSA6IHBlcmZvcm1hbmNlLm1lYXN1cmUoaXNTcGF3bmVkVXBkYXRlLCBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSkpOwogICAgICAgICAgfQogICAgICAgICAgYmxvY2tpbmdVcGRhdGVUaW1lID0gLTEuMTsKICAgICAgICAgIGJsb2NraW5nVXBkYXRlVHlwZSA9IDA7CiAgICAgICAgICBibG9ja2luZ1VwZGF0ZUNvbXBvbmVudE5hbWUgPSBibG9ja2luZ1VwZGF0ZU1ldGhvZE5hbWUgPSBudWxsOwogICAgICAgICAgYmxvY2tpbmdTdXNwZW5kZWRUaW1lID0gLTEuMTsKICAgICAgICAgIGJsb2NraW5nRXZlbnRSZXBlYXRUaW1lID0gYmxvY2tpbmdFdmVudFRpbWU7CiAgICAgICAgICBibG9ja2luZ0V2ZW50VGltZSA9IC0xLjE7CiAgICAgICAgICBibG9ja2luZ0NsYW1wVGltZSA9IG5vdygpOwogICAgICAgIH0KICAgICAgICAwICE9PSAobGFuZXMgJiA0MTk0MDQ4KSAmJiAod29ya0luUHJvZ3Jlc3NVcGRhdGVUYXNrID0gdHJhbnNpdGlvblVwZGF0ZVRhc2ssIGRlYnVnVGFzayA9IDAgPD0gdHJhbnNpdGlvblN0YXJ0VGltZSAmJiB0cmFuc2l0aW9uU3RhcnRUaW1lIDwgdHJhbnNpdGlvbkNsYW1wVGltZSA/IHRyYW5zaXRpb25DbGFtcFRpbWUgOiB0cmFuc2l0aW9uU3RhcnRUaW1lLCBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IDAgPD0gdHJhbnNpdGlvblVwZGF0ZVRpbWUgJiYgdHJhbnNpdGlvblVwZGF0ZVRpbWUgPCB0cmFuc2l0aW9uQ2xhbXBUaW1lID8gdHJhbnNpdGlvbkNsYW1wVGltZSA6IHRyYW5zaXRpb25VcGRhdGVUaW1lLCBlbmRUaW1lID0gMCA8PSB0cmFuc2l0aW9uRXZlbnRUaW1lICYmIHRyYW5zaXRpb25FdmVudFRpbWUgPCB0cmFuc2l0aW9uQ2xhbXBUaW1lID8gdHJhbnNpdGlvbkNsYW1wVGltZSA6IHRyYW5zaXRpb25FdmVudFRpbWUsIGNvbG9yID0gMCA8PSBlbmRUaW1lID8gZW5kVGltZSA6IDAgPD0gcHJldmlvdXNSZW5kZXJTdGFydFRpbWUgPyBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA6IHJlbmRlclN0YXJ0VGltZSwgMCA8PSB0cmFuc2l0aW9uU3VzcGVuZGVkVGltZSA/IChzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMoMjU2KSwgbG9nU3VzcGVuZGVkV2l0aERlbGF5UGhhc2UoCiAgICAgICAgICB0cmFuc2l0aW9uU3VzcGVuZGVkVGltZSwKICAgICAgICAgIGNvbG9yLAogICAgICAgICAgbGFuZXMsCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sKICAgICAgICApKSA6IDAgIT09IChhbmltYXRpbmdMYW5lcyAmIDQxOTQwNDgpICYmIChzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMoMjU2KSwgbG9nQW5pbWF0aW5nUGhhc2UodHJhbnNpdGlvbkNsYW1wVGltZSwgY29sb3IsIGFuaW1hdGluZ1Rhc2spKSwgaXNQaW5nZWRVcGRhdGUgPSBlbmRUaW1lLCBldmVudFRpbWUgPSB0cmFuc2l0aW9uRXZlbnRUeXBlLCBldmVudFR5cGUgPSAwIDwgdHJhbnNpdGlvbkV2ZW50UmVwZWF0VGltZSwgZXZlbnRJc1JlcGVhdCA9IHRyYW5zaXRpb25VcGRhdGVUeXBlID09PSBQSU5HRURfVVBEQVRFLCBjb2xvciA9IHJlbmRlclN0YXJ0VGltZSwgZW5kVGltZSA9IHRyYW5zaXRpb25VcGRhdGVUYXNrLCBsYWJlbCA9IHRyYW5zaXRpb25VcGRhdGVNZXRob2ROYW1lLCBpc1NwYXduZWRVcGRhdGUgPSB0cmFuc2l0aW9uVXBkYXRlQ29tcG9uZW50TmFtZSwgc3VwcG9ydHNVc2VyVGltaW5nICYmIChjdXJyZW50VHJhY2sgPSAiVHJhbnNpdGlvbiIsIDAgPCBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA/IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lID4gY29sb3IgJiYgKHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lID0gY29sb3IpIDogcHJldmlvdXNSZW5kZXJTdGFydFRpbWUgPSBjb2xvciwgMCA8IGRlYnVnVGFzayA/IGRlYnVnVGFzayA+IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lICYmIChkZWJ1Z1Rhc2sgPSBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSkgOiBkZWJ1Z1Rhc2sgPSBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSwgMCA8IGlzUGluZ2VkVXBkYXRlID8gaXNQaW5nZWRVcGRhdGUgPiBkZWJ1Z1Rhc2sgJiYgKGlzUGluZ2VkVXBkYXRlID0gZGVidWdUYXNrKSA6IGlzUGluZ2VkVXBkYXRlID0gZGVidWdUYXNrLCBkZWJ1Z1Rhc2sgPiBpc1BpbmdlZFVwZGF0ZSAmJiBudWxsICE9PSBldmVudFRpbWUgJiYgKGNvbG9yJGpzY29tcCQwID0gZXZlbnRUeXBlID8gInNlY29uZGFyeS1saWdodCIgOiAid2FybmluZyIsIGVuZFRpbWUgPyBlbmRUaW1lLnJ1bigKICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoCiAgICAgICAgICAgIGNvbnNvbGUsCiAgICAgICAgICAgIGV2ZW50VHlwZSA/ICJDb25zZWN1dGl2ZSIgOiAiRXZlbnQ6ICIgKyBldmVudFRpbWUsCiAgICAgICAgICAgIGlzUGluZ2VkVXBkYXRlLAogICAgICAgICAgICBkZWJ1Z1Rhc2ssCiAgICAgICAgICAgIGN1cnJlbnRUcmFjaywKICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICAgIGNvbG9yJGpzY29tcCQwCiAgICAgICAgICApCiAgICAgICAgKSA6IGNvbnNvbGUudGltZVN0YW1wKAogICAgICAgICAgZXZlbnRUeXBlID8gIkNvbnNlY3V0aXZlIiA6ICJFdmVudDogIiArIGV2ZW50VGltZSwKICAgICAgICAgIGlzUGluZ2VkVXBkYXRlLAogICAgICAgICAgZGVidWdUYXNrLAogICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICBjb2xvciRqc2NvbXAkMAogICAgICAgICkpLCBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA+IGRlYnVnVGFzayAmJiAoZW5kVGltZSA/IGVuZFRpbWUucnVuKAogICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZCgKICAgICAgICAgICAgY29uc29sZSwKICAgICAgICAgICAgIkFjdGlvbiIsCiAgICAgICAgICAgIGRlYnVnVGFzaywKICAgICAgICAgICAgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUsCiAgICAgICAgICAgIGN1cnJlbnRUcmFjaywKICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICAgICJwcmltYXJ5LWRhcmsiCiAgICAgICAgICApCiAgICAgICAgKSA6IGNvbnNvbGUudGltZVN0YW1wKAogICAgICAgICAgIkFjdGlvbiIsCiAgICAgICAgICBkZWJ1Z1Rhc2ssCiAgICAgICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSwKICAgICAgICAgIGN1cnJlbnRUcmFjaywKICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgInByaW1hcnktZGFyayIKICAgICAgICApKSwgY29sb3IgPiBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSAmJiAoZGVidWdUYXNrID0gZXZlbnRJc1JlcGVhdCA/ICJQcm9taXNlIFJlc29sdmVkIiA6IDUgPCBjb2xvciAtIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lID8gIlVwZGF0ZSBCbG9ja2VkIiA6ICJVcGRhdGUiLCBpc1BpbmdlZFVwZGF0ZSA9IFtdLCBudWxsICE9IGlzU3Bhd25lZFVwZGF0ZSAmJiBpc1BpbmdlZFVwZGF0ZS5wdXNoKFsiQ29tcG9uZW50IG5hbWUiLCBpc1NwYXduZWRVcGRhdGVdKSwgbnVsbCAhPSBsYWJlbCAmJiBpc1BpbmdlZFVwZGF0ZS5wdXNoKFsiTWV0aG9kIG5hbWUiLCBsYWJlbF0pLCBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IHsKICAgICAgICAgIHN0YXJ0OiBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSwKICAgICAgICAgIGVuZDogY29sb3IsCiAgICAgICAgICBkZXRhaWw6IHsKICAgICAgICAgICAgZGV2dG9vbHM6IHsKICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBpc1BpbmdlZFVwZGF0ZSwKICAgICAgICAgICAgICB0cmFjazogY3VycmVudFRyYWNrLAogICAgICAgICAgICAgIHRyYWNrR3JvdXA6IExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAgIGNvbG9yOiAicHJpbWFyeS1saWdodCIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIGVuZFRpbWUgPyBlbmRUaW1lLnJ1bigKICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUuYmluZCgKICAgICAgICAgICAgcGVyZm9ybWFuY2UsCiAgICAgICAgICAgIGRlYnVnVGFzaywKICAgICAgICAgICAgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUKICAgICAgICAgICkKICAgICAgICApIDogcGVyZm9ybWFuY2UubWVhc3VyZShkZWJ1Z1Rhc2ssIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lKSkpLCB0cmFuc2l0aW9uVXBkYXRlVGltZSA9IHRyYW5zaXRpb25TdGFydFRpbWUgPSAtMS4xLCB0cmFuc2l0aW9uVXBkYXRlVHlwZSA9IDAsIHRyYW5zaXRpb25TdXNwZW5kZWRUaW1lID0gLTEuMSwgdHJhbnNpdGlvbkV2ZW50UmVwZWF0VGltZSA9IHRyYW5zaXRpb25FdmVudFRpbWUsIHRyYW5zaXRpb25FdmVudFRpbWUgPSAtMS4xLCB0cmFuc2l0aW9uQ2xhbXBUaW1lID0gbm93KCkpOwogICAgICAgIDAgIT09IChsYW5lcyAmIDYyOTE0NTYwKSAmJiAwICE9PSAoYW5pbWF0aW5nTGFuZXMgJiA2MjkxNDU2MCkgJiYgKHNldEN1cnJlbnRUcmFja0Zyb21MYW5lcyg0MTk0MzA0KSwgbG9nQW5pbWF0aW5nUGhhc2UocmV0cnlDbGFtcFRpbWUsIHJlbmRlclN0YXJ0VGltZSwgYW5pbWF0aW5nVGFzaykpOwogICAgICAgIDAgIT09IChsYW5lcyAmIDIwODAzNzQ3ODQpICYmIDAgIT09IChhbmltYXRpbmdMYW5lcyAmIDIwODAzNzQ3ODQpICYmIChzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMoMjY4NDM1NDU2KSwgbG9nQW5pbWF0aW5nUGhhc2UoaWRsZUNsYW1wVGltZSwgcmVuZGVyU3RhcnRUaW1lLCBhbmltYXRpbmdUYXNrKSk7CiAgICAgICAgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUgPSByb290Mi50aW1lb3V0SGFuZGxlOwogICAgICAgIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lICE9PSBub1RpbWVvdXQgJiYgKHJvb3QyLnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQsIGNhbmNlbFRpbWVvdXQocHJldmlvdXNSZW5kZXJTdGFydFRpbWUpKTsKICAgICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IHJvb3QyLmNhbmNlbFBlbmRpbmdDb21taXQ7CiAgICAgICAgbnVsbCAhPT0gcHJldmlvdXNSZW5kZXJTdGFydFRpbWUgJiYgKHJvb3QyLmNhbmNlbFBlbmRpbmdDb21taXQgPSBudWxsLCBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSgpKTsKICAgICAgICBwZW5kaW5nRWZmZWN0c0xhbmVzID0gMDsKICAgICAgICByZXNldFdvcmtJblByb2dyZXNzU3RhY2soKTsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSByb290MjsKICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MoCiAgICAgICAgICByb290Mi5jdXJyZW50LAogICAgICAgICAgbnVsbAogICAgICAgICk7CiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgPSBsYW5lczsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZDsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRTa2lwU3VzcGVuZGVkU2libGluZ3MgPSBmYWxzZTsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJc1ByZXJlbmRlcmluZyA9IGNoZWNrSWZSb290SXNQcmVyZW5kZXJpbmcocm9vdDIsIGxhbmVzKTsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRBdHRhY2hQaW5nTGlzdGVuZXIgPSBmYWxzZTsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEluUHJvZ3Jlc3M7CiAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZXRyeUxhbmVzID0gd29ya0luUHJvZ3Jlc3NEZWZlcnJlZExhbmUgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RQaW5nZWRMYW5lcyA9IHdvcmtJblByb2dyZXNzUm9vdEludGVybGVhdmVkVXBkYXRlZExhbmVzID0gd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzID0gMDsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyA9IHdvcmtJblByb2dyZXNzUm9vdENvbmN1cnJlbnRFcnJvcnMgPSBudWxsOwogICAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZEluY2x1ZGVSZWN1cnNpdmVSZW5kZXJVcGRhdGUgPSBmYWxzZTsKICAgICAgICAwICE9PSAobGFuZXMgJiA4KSAmJiAobGFuZXMgfD0gbGFuZXMgJiAzMik7CiAgICAgICAgZW5kVGltZSA9IHJvb3QyLmVudGFuZ2xlZExhbmVzOwogICAgICAgIGlmICgwICE9PSBlbmRUaW1lKQogICAgICAgICAgZm9yIChyb290MiA9IHJvb3QyLmVudGFuZ2xlbWVudHMsIGVuZFRpbWUgJj0gbGFuZXM7IDAgPCBlbmRUaW1lOyApCiAgICAgICAgICAgIGRlYnVnVGFzayA9IDMxIC0gY2x6MzIoZW5kVGltZSksIGNvbG9yID0gMSA8PCBkZWJ1Z1Rhc2ssIGxhbmVzIHw9IHJvb3QyW2RlYnVnVGFza10sIGVuZFRpbWUgJj0gfmNvbG9yOwogICAgICAgIGVudGFuZ2xlZFJlbmRlckxhbmVzID0gbGFuZXM7CiAgICAgICAgZmluaXNoUXVldWVpbmdDb25jdXJyZW50VXBkYXRlcygpOwogICAgICAgIHJvb3QyID0gZ2V0Q3VycmVudFRpbWUoKTsKICAgICAgICAxZTMgPCByb290MiAtIGxhc3RSZXNldFRpbWUgJiYgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLnJlY2VudGx5Q3JlYXRlZE93bmVyU3RhY2tzID0gMCwgbGFzdFJlc2V0VGltZSA9IHJvb3QyKTsKICAgICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5kaXNjYXJkUGVuZGluZ1dhcm5pbmdzKCk7CiAgICAgICAgcmV0dXJuIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGhhbmRsZVRocm93KHJvb3QyLCB0aHJvd25WYWx1ZSkgewogICAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyID0gbnVsbDsKICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gQ29udGV4dE9ubHlEaXNwYXRjaGVyOwogICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmdldEN1cnJlbnRTdGFjayA9IG51bGw7CiAgICAgICAgaXNSZW5kZXJpbmcgPSBmYWxzZTsKICAgICAgICBjdXJyZW50ID0gbnVsbDsKICAgICAgICB0aHJvd25WYWx1ZSA9PT0gU3VzcGVuc2VFeGNlcHRpb24gfHwgdGhyb3duVmFsdWUgPT09IFN1c3BlbnNlQWN0aW9uRXhjZXB0aW9uID8gKHRocm93blZhbHVlID0gZ2V0U3VzcGVuZGVkVGhlbmFibGUoKSwgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPSBTdXNwZW5kZWRPbkltbWVkaWF0ZSkgOiB0aHJvd25WYWx1ZSA9PT0gU3VzcGVuc2V5Q29tbWl0RXhjZXB0aW9uID8gKHRocm93blZhbHVlID0gZ2V0U3VzcGVuZGVkVGhlbmFibGUoKSwgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPSBTdXNwZW5kZWRPbkluc3RhbmNlKSA6IHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gdGhyb3duVmFsdWUgPT09IFNlbGVjdGl2ZUh5ZHJhdGlvbkV4Y2VwdGlvbiA/IFN1c3BlbmRlZE9uSHlkcmF0aW9uIDogbnVsbCAhPT0gdGhyb3duVmFsdWUgJiYgIm9iamVjdCIgPT09IHR5cGVvZiB0aHJvd25WYWx1ZSAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgdGhyb3duVmFsdWUudGhlbiA/IFN1c3BlbmRlZE9uRGVwcmVjYXRlZFRocm93UHJvbWlzZSA6IFN1c3BlbmRlZE9uRXJyb3I7CiAgICAgICAgd29ya0luUHJvZ3Jlc3NUaHJvd25WYWx1ZSA9IHRocm93blZhbHVlOwogICAgICAgIHZhciBlcnJvcmVkV29yayA9IHdvcmtJblByb2dyZXNzOwogICAgICAgIG51bGwgPT09IGVycm9yZWRXb3JrID8gKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290RmF0YWxFcnJvcmVkLCBsb2dVbmNhdWdodEVycm9yKAogICAgICAgICAgcm9vdDIsCiAgICAgICAgICBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcih0aHJvd25WYWx1ZSwgcm9vdDIuY3VycmVudCkKICAgICAgICApKSA6IGVycm9yZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSAmJiBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZ0FuZFJlY29yZER1cmF0aW9uKGVycm9yZWRXb3JrKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzaG91bGRSZW1haW5PblByZXZpb3VzU2NyZWVuKCkgewogICAgICAgIHZhciBoYW5kbGVyID0gc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudDsKICAgICAgICByZXR1cm4gbnVsbCA9PT0gaGFuZGxlciA/IHRydWUgOiAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiA0MTk0MDQ4KSA9PT0gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgPyBudWxsID09PSBzaGVsbEJvdW5kYXJ5ID8gdHJ1ZSA6IGZhbHNlIDogKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYgNjI5MTQ1NjApID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyB8fCAwICE9PSAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiA1MzY4NzA5MTIpID8gaGFuZGxlciA9PT0gc2hlbGxCb3VuZGFyeSA6IGZhbHNlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHB1c2hEaXNwYXRjaGVyKCkgewogICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7CiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IENvbnRleHRPbmx5RGlzcGF0Y2hlcjsKICAgICAgICByZXR1cm4gbnVsbCA9PT0gcHJldkRpc3BhdGNoZXIgPyBDb250ZXh0T25seURpc3BhdGNoZXIgOiBwcmV2RGlzcGF0Y2hlcjsKICAgICAgfQogICAgICBmdW5jdGlvbiBwdXNoQXN5bmNEaXNwYXRjaGVyKCkgewogICAgICAgIHZhciBwcmV2QXN5bmNEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuQTsKICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5BID0gRGVmYXVsdEFzeW5jRGlzcGF0Y2hlcjsKICAgICAgICByZXR1cm4gcHJldkFzeW5jRGlzcGF0Y2hlcjsKICAgICAgfQogICAgICBmdW5jdGlvbiBtYXJrUmVuZGVyRGVyaXZlZENhdXNlKGZpYmVyKSB7CiAgICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NVcGRhdGVUYXNrICYmICh3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sgPSBudWxsID09IGZpYmVyLl9kZWJ1Z1Rhc2sgPyBudWxsIDogZmliZXIuX2RlYnVnVGFzayk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVuZGVyRGlkU3VzcGVuZERlbGF5SWZQb3NzaWJsZSgpIHsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdFN1c3BlbmRlZFdpdGhEZWxheTsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRTa2lwU3VzcGVuZGVkU2libGluZ3MgfHwgKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYgNDE5NDA0OCkgIT09IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYmIG51bGwgIT09IHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLmN1cnJlbnQgfHwgKHdvcmtJblByb2dyZXNzUm9vdElzUHJlcmVuZGVyaW5nID0gdHJ1ZSk7CiAgICAgICAgMCA9PT0gKHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyAmIDEzNDIxNzcyNykgJiYgMCA9PT0gKHdvcmtJblByb2dyZXNzUm9vdEludGVybGVhdmVkVXBkYXRlZExhbmVzICYgMTM0MjE3NzI3KSB8fCBudWxsID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgfHwgbWFya1Jvb3RTdXNwZW5kZWQoCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QsCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcywKICAgICAgICAgIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lLAogICAgICAgICAgZmFsc2UKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlbmRlclJvb3RTeW5jKHJvb3QyLCBsYW5lcywgc2hvdWxkWWllbGRGb3JQcmVyZW5kZXJpbmcpIHsKICAgICAgICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0OwogICAgICAgIGV4ZWN1dGlvbkNvbnRleHQgfD0gUmVuZGVyQ29udGV4dDsKICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBwdXNoRGlzcGF0Y2hlcigpLCBwcmV2QXN5bmNEaXNwYXRjaGVyID0gcHVzaEFzeW5jRGlzcGF0Y2hlcigpOwogICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3QgIT09IHJvb3QyIHx8IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICE9PSBsYW5lcykgewogICAgICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KSB7CiAgICAgICAgICAgIHZhciBtZW1vaXplZFVwZGF0ZXJzID0gcm9vdDIubWVtb2l6ZWRVcGRhdGVyczsKICAgICAgICAgICAgMCA8IG1lbW9pemVkVXBkYXRlcnMuc2l6ZSAmJiAocmVzdG9yZVBlbmRpbmdVcGRhdGVycyhyb290Miwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpLCBtZW1vaXplZFVwZGF0ZXJzLmNsZWFyKCkpOwogICAgICAgICAgICBtb3ZlUGVuZGluZ0ZpYmVyc1RvTWVtb2l6ZWQocm9vdDIsIGxhbmVzKTsKICAgICAgICAgIH0KICAgICAgICAgIHdvcmtJblByb2dyZXNzVHJhbnNpdGlvbnMgPSBudWxsOwogICAgICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdDIsIGxhbmVzKTsKICAgICAgICB9CiAgICAgICAgbGFuZXMgPSBmYWxzZTsKICAgICAgICBtZW1vaXplZFVwZGF0ZXJzID0gd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1czsKICAgICAgICBhOiBkbwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uICE9PSBOb3RTdXNwZW5kZWQgJiYgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MpIHsKICAgICAgICAgICAgICB2YXIgdW5pdE9mV29yayA9IHdvcmtJblByb2dyZXNzLCB0aHJvd25WYWx1ZSA9IHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWU7CiAgICAgICAgICAgICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbikgewogICAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkh5ZHJhdGlvbjoKICAgICAgICAgICAgICAgICAgcmVzZXRXb3JrSW5Qcm9ncmVzc1N0YWNrKCk7CiAgICAgICAgICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMgPSBSb290U3VzcGVuZGVkQXRUaGVTaGVsbDsKICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25JbW1lZGlhdGU6CiAgICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uRGF0YToKICAgICAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25BY3Rpb246CiAgICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uRGVwcmVjYXRlZFRocm93UHJvbWlzZToKICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudCAmJiAobGFuZXMgPSB0cnVlKTsKICAgICAgICAgICAgICAgICAgdmFyIHJlYXNvbiA9IHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uOwogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZDsKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NUaHJvd25WYWx1ZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgIHRocm93QW5kVW53aW5kV29ya0xvb3Aocm9vdDIsIHVuaXRPZldvcmssIHRocm93blZhbHVlLCByZWFzb24pOwogICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkWWllbGRGb3JQcmVyZW5kZXJpbmcgJiYgd29ya0luUHJvZ3Jlc3NSb290SXNQcmVyZW5kZXJpbmcpIHsKICAgICAgICAgICAgICAgICAgICBtZW1vaXplZFVwZGF0ZXJzID0gUm9vdEluUHJvZ3Jlc3M7CiAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIHJlYXNvbiA9IHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uLCB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZCwgd29ya0luUHJvZ3Jlc3NUaHJvd25WYWx1ZSA9IG51bGwsIHRocm93QW5kVW53aW5kV29ya0xvb3Aocm9vdDIsIHVuaXRPZldvcmssIHRocm93blZhbHVlLCByZWFzb24pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB3b3JrTG9vcFN5bmMoKTsKICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycyA9IHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXM7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfSBjYXRjaCAodGhyb3duVmFsdWUkOCkgewogICAgICAgICAgICBoYW5kbGVUaHJvdyhyb290MiwgdGhyb3duVmFsdWUkOCk7CiAgICAgICAgICB9CiAgICAgICAgd2hpbGUgKDEpOwogICAgICAgIGxhbmVzICYmIHJvb3QyLnNoZWxsU3VzcGVuZENvdW50ZXIrKzsKICAgICAgICByZXNldENvbnRleHREZXBlbmRlbmNpZXMoKTsKICAgICAgICBleGVjdXRpb25Db250ZXh0ID0gcHJldkV4ZWN1dGlvbkNvbnRleHQ7CiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkEgPSBwcmV2QXN5bmNEaXNwYXRjaGVyOwogICAgICAgIG51bGwgPT09IHdvcmtJblByb2dyZXNzICYmICh3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsLCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA9IDAsIGZpbmlzaFF1ZXVlaW5nQ29uY3VycmVudFVwZGF0ZXMoKSk7CiAgICAgICAgcmV0dXJuIG1lbW9pemVkVXBkYXRlcnM7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gd29ya0xvb3BTeW5jKCkgewogICAgICAgIGZvciAoOyBudWxsICE9PSB3b3JrSW5Qcm9ncmVzczsgKSBwZXJmb3JtVW5pdE9mV29yayh3b3JrSW5Qcm9ncmVzcyk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVuZGVyUm9vdENvbmN1cnJlbnQocm9vdDIsIGxhbmVzKSB7CiAgICAgICAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDsKICAgICAgICBleGVjdXRpb25Db250ZXh0IHw9IFJlbmRlckNvbnRleHQ7CiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gcHVzaERpc3BhdGNoZXIoKSwgcHJldkFzeW5jRGlzcGF0Y2hlciA9IHB1c2hBc3luY0Rpc3BhdGNoZXIoKTsKICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3NSb290ICE9PSByb290MiB8fCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAhPT0gbGFuZXMpIHsKICAgICAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkgewogICAgICAgICAgICB2YXIgbWVtb2l6ZWRVcGRhdGVycyA9IHJvb3QyLm1lbW9pemVkVXBkYXRlcnM7CiAgICAgICAgICAgIDAgPCBtZW1vaXplZFVwZGF0ZXJzLnNpemUgJiYgKHJlc3RvcmVQZW5kaW5nVXBkYXRlcnMocm9vdDIsIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKSwgbWVtb2l6ZWRVcGRhdGVycy5jbGVhcigpKTsKICAgICAgICAgICAgbW92ZVBlbmRpbmdGaWJlcnNUb01lbW9pemVkKHJvb3QyLCBsYW5lcyk7CiAgICAgICAgICB9CiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zID0gbnVsbDsKICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlclRhcmdldFRpbWUgPSBub3ckMSgpICsgUkVOREVSX1RJTUVPVVRfTVM7CiAgICAgICAgICBwcmVwYXJlRnJlc2hTdGFjayhyb290MiwgbGFuZXMpOwogICAgICAgIH0gZWxzZQogICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SXNQcmVyZW5kZXJpbmcgPSBjaGVja0lmUm9vdElzUHJlcmVuZGVyaW5nKAogICAgICAgICAgICByb290MiwKICAgICAgICAgICAgbGFuZXMKICAgICAgICAgICk7CiAgICAgICAgYTogZG8KICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiAhPT0gTm90U3VzcGVuZGVkICYmIG51bGwgIT09IHdvcmtJblByb2dyZXNzKQogICAgICAgICAgICAgIGI6IHN3aXRjaCAobGFuZXMgPSB3b3JrSW5Qcm9ncmVzcywgbWVtb2l6ZWRVcGRhdGVycyA9IHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUsIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uKSB7CiAgICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uRXJyb3I6CiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkOwogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgdGhyb3dBbmRVbndpbmRXb3JrTG9vcCgKICAgICAgICAgICAgICAgICAgICByb290MiwKICAgICAgICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICAgICAgICBtZW1vaXplZFVwZGF0ZXJzLAogICAgICAgICAgICAgICAgICAgIFN1c3BlbmRlZE9uRXJyb3IKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uRGF0YToKICAgICAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25BY3Rpb246CiAgICAgICAgICAgICAgICAgIGlmIChpc1RoZW5hYmxlUmVzb2x2ZWQobWVtb2l6ZWRVcGRhdGVycykpIHsKICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZDsKICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICByZXBsYXlTdXNwZW5kZWRVbml0T2ZXb3JrKGxhbmVzKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBsYW5lcyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uICE9PSBTdXNwZW5kZWRPbkRhdGEgJiYgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gIT09IFN1c3BlbmRlZE9uQWN0aW9uIHx8IHdvcmtJblByb2dyZXNzUm9vdCAhPT0gcm9vdDIgfHwgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gU3VzcGVuZGVkQW5kUmVhZHlUb0NvbnRpbnVlKTsKICAgICAgICAgICAgICAgICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdDIpOwogICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICBtZW1vaXplZFVwZGF0ZXJzLnRoZW4obGFuZXMsIGxhbmVzKTsKICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25JbW1lZGlhdGU6CiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gU3VzcGVuZGVkQW5kUmVhZHlUb0NvbnRpbnVlOwogICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkluc3RhbmNlOgogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IFN1c3BlbmRlZE9uSW5zdGFuY2VBbmRSZWFkeVRvQ29udGludWU7CiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZEFuZFJlYWR5VG9Db250aW51ZToKICAgICAgICAgICAgICAgICAgaXNUaGVuYWJsZVJlc29sdmVkKG1lbW9pemVkVXBkYXRlcnMpID8gKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkLCB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbCwgcmVwbGF5U3VzcGVuZGVkVW5pdE9mV29yayhsYW5lcykpIDogKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkLCB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbCwgdGhyb3dBbmRVbndpbmRXb3JrTG9vcCgKICAgICAgICAgICAgICAgICAgICByb290MiwKICAgICAgICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICAgICAgICBtZW1vaXplZFVwZGF0ZXJzLAogICAgICAgICAgICAgICAgICAgIFN1c3BlbmRlZEFuZFJlYWR5VG9Db250aW51ZQogICAgICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uSW5zdGFuY2VBbmRSZWFkeVRvQ29udGludWU6CiAgICAgICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MudGFnKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAyNjoKICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTsKICAgICAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAyNzoKICAgICAgICAgICAgICAgICAgICAgIHZhciBob3N0RmliZXIgPSB3b3JrSW5Qcm9ncmVzczsKICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZSA/IHByZWxvYWRSZXNvdXJjZShyZXNvdXJjZSkgOiBob3N0RmliZXIuc3RhdGVOb2RlLmNvbXBsZXRlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkOwogICAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNpYmxpbmcgPSBob3N0RmliZXIuc2libGluZzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IHNpYmxpbmcpIHdvcmtJblByb2dyZXNzID0gc2libGluZzsKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJldHVybkZpYmVyID0gaG9zdEZpYmVyLnJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsICE9PSByZXR1cm5GaWJlciA/ICh3b3JrSW5Qcm9ncmVzcyA9IHJldHVybkZpYmVyLCBjb21wbGV0ZVVuaXRPZldvcmsocmV0dXJuRmliZXIpKSA6IHdvcmtJblByb2dyZXNzID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBicmVhayBiOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICJVbmV4cGVjdGVkIHR5cGUgb2YgZmliZXIgdHJpZ2dlcmVkIGEgc3VzcGVuc2V5IGNvbW1pdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4iCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkOwogICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgdGhyb3dBbmRVbndpbmRXb3JrTG9vcCgKICAgICAgICAgICAgICAgICAgICByb290MiwKICAgICAgICAgICAgICAgICAgICBsYW5lcywKICAgICAgICAgICAgICAgICAgICBtZW1vaXplZFVwZGF0ZXJzLAogICAgICAgICAgICAgICAgICAgIFN1c3BlbmRlZE9uSW5zdGFuY2VBbmRSZWFkeVRvQ29udGludWUKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uRGVwcmVjYXRlZFRocm93UHJvbWlzZToKICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPSBOb3RTdXNwZW5kZWQ7CiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUgPSBudWxsOwogICAgICAgICAgICAgICAgICB0aHJvd0FuZFVud2luZFdvcmtMb29wKAogICAgICAgICAgICAgICAgICAgIHJvb3QyLAogICAgICAgICAgICAgICAgICAgIGxhbmVzLAogICAgICAgICAgICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMsCiAgICAgICAgICAgICAgICAgICAgU3VzcGVuZGVkT25EZXByZWNhdGVkVGhyb3dQcm9taXNlCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkh5ZHJhdGlvbjoKICAgICAgICAgICAgICAgICAgcmVzZXRXb3JrSW5Qcm9ncmVzc1N0YWNrKCk7CiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkQXRUaGVTaGVsbDsKICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgICAgICJVbmV4cGVjdGVkIFN1c3BlbmRlZFJlYXNvbi4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4iCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSA/IHdvcmtMb29wU3luYygpIDogd29ya0xvb3BDb25jdXJyZW50QnlTY2hlZHVsZXIoKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9IGNhdGNoICh0aHJvd25WYWx1ZSQ5KSB7CiAgICAgICAgICAgIGhhbmRsZVRocm93KHJvb3QyLCB0aHJvd25WYWx1ZSQ5KTsKICAgICAgICAgIH0KICAgICAgICB3aGlsZSAoMSk7CiAgICAgICAgcmVzZXRDb250ZXh0RGVwZW5kZW5jaWVzKCk7CiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkEgPSBwcmV2QXN5bmNEaXNwYXRjaGVyOwogICAgICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDsKICAgICAgICBpZiAobnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MpIHJldHVybiBSb290SW5Qcm9ncmVzczsKICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsOwogICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gMDsKICAgICAgICBmaW5pc2hRdWV1ZWluZ0NvbmN1cnJlbnRVcGRhdGVzKCk7CiAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXM7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gd29ya0xvb3BDb25jdXJyZW50QnlTY2hlZHVsZXIoKSB7CiAgICAgICAgZm9yICg7IG51bGwgIT09IHdvcmtJblByb2dyZXNzICYmICFzaG91bGRZaWVsZCgpOyApCiAgICAgICAgICBwZXJmb3JtVW5pdE9mV29yayh3b3JrSW5Qcm9ncmVzcyk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcGVyZm9ybVVuaXRPZldvcmsodW5pdE9mV29yaykgewogICAgICAgIHZhciBjdXJyZW50MiA9IHVuaXRPZldvcmsuYWx0ZXJuYXRlOwogICAgICAgICh1bml0T2ZXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSA/IChzdGFydFByb2ZpbGVyVGltZXIodW5pdE9mV29yayksIGN1cnJlbnQyID0gcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICB1bml0T2ZXb3JrLAogICAgICAgICAgYmVnaW5Xb3JrLAogICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICB1bml0T2ZXb3JrLAogICAgICAgICAgZW50YW5nbGVkUmVuZGVyTGFuZXMKICAgICAgICApLCBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZ0FuZFJlY29yZER1cmF0aW9uKHVuaXRPZldvcmspKSA6IGN1cnJlbnQyID0gcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICB1bml0T2ZXb3JrLAogICAgICAgICAgYmVnaW5Xb3JrLAogICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICB1bml0T2ZXb3JrLAogICAgICAgICAgZW50YW5nbGVkUmVuZGVyTGFuZXMKICAgICAgICApOwogICAgICAgIHVuaXRPZldvcmsubWVtb2l6ZWRQcm9wcyA9IHVuaXRPZldvcmsucGVuZGluZ1Byb3BzOwogICAgICAgIG51bGwgPT09IGN1cnJlbnQyID8gY29tcGxldGVVbml0T2ZXb3JrKHVuaXRPZldvcmspIDogd29ya0luUHJvZ3Jlc3MgPSBjdXJyZW50MjsKICAgICAgfQogICAgICBmdW5jdGlvbiByZXBsYXlTdXNwZW5kZWRVbml0T2ZXb3JrKHVuaXRPZldvcmspIHsKICAgICAgICB2YXIgbmV4dCA9IHJ1bldpdGhGaWJlckluREVWKHVuaXRPZldvcmssIHJlcGxheUJlZ2luV29yaywgdW5pdE9mV29yayk7CiAgICAgICAgdW5pdE9mV29yay5tZW1vaXplZFByb3BzID0gdW5pdE9mV29yay5wZW5kaW5nUHJvcHM7CiAgICAgICAgbnVsbCA9PT0gbmV4dCA/IGNvbXBsZXRlVW5pdE9mV29yayh1bml0T2ZXb3JrKSA6IHdvcmtJblByb2dyZXNzID0gbmV4dDsKICAgICAgfQogICAgICBmdW5jdGlvbiByZXBsYXlCZWdpbldvcmsodW5pdE9mV29yaykgewogICAgICAgIHZhciBjdXJyZW50MiA9IHVuaXRPZldvcmsuYWx0ZXJuYXRlLCBpc1Byb2ZpbGluZ01vZGUgPSAodW5pdE9mV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGU7CiAgICAgICAgaXNQcm9maWxpbmdNb2RlICYmIHN0YXJ0UHJvZmlsZXJUaW1lcih1bml0T2ZXb3JrKTsKICAgICAgICBzd2l0Y2ggKHVuaXRPZldvcmsudGFnKSB7CiAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICBjdXJyZW50MiA9IHJlcGxheUZ1bmN0aW9uQ29tcG9uZW50KAogICAgICAgICAgICAgIGN1cnJlbnQyLAogICAgICAgICAgICAgIHVuaXRPZldvcmssCiAgICAgICAgICAgICAgdW5pdE9mV29yay5wZW5kaW5nUHJvcHMsCiAgICAgICAgICAgICAgdW5pdE9mV29yay50eXBlLAogICAgICAgICAgICAgIHZvaWQgMCwKICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcwogICAgICAgICAgICApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgIGN1cnJlbnQyID0gcmVwbGF5RnVuY3Rpb25Db21wb25lbnQoCiAgICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgICAgdW5pdE9mV29yaywKICAgICAgICAgICAgICB1bml0T2ZXb3JrLnBlbmRpbmdQcm9wcywKICAgICAgICAgICAgICB1bml0T2ZXb3JrLnR5cGUucmVuZGVyLAogICAgICAgICAgICAgIHVuaXRPZldvcmsucmVmLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICByZXNldEhvb2tzT25VbndpbmQodW5pdE9mV29yayk7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB1bndpbmRJbnRlcnJ1cHRlZFdvcmsoY3VycmVudDIsIHVuaXRPZldvcmspLCB1bml0T2ZXb3JrID0gd29ya0luUHJvZ3Jlc3MgPSByZXNldFdvcmtJblByb2dyZXNzKHVuaXRPZldvcmssIGVudGFuZ2xlZFJlbmRlckxhbmVzKSwgY3VycmVudDIgPSBiZWdpbldvcmsoY3VycmVudDIsIHVuaXRPZldvcmssIGVudGFuZ2xlZFJlbmRlckxhbmVzKTsKICAgICAgICB9CiAgICAgICAgaXNQcm9maWxpbmdNb2RlICYmIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRHVyYXRpb24odW5pdE9mV29yayk7CiAgICAgICAgcmV0dXJuIGN1cnJlbnQyOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHRocm93QW5kVW53aW5kV29ya0xvb3Aocm9vdDIsIHVuaXRPZldvcmssIHRocm93blZhbHVlLCBzdXNwZW5kZWRSZWFzb24pIHsKICAgICAgICByZXNldENvbnRleHREZXBlbmRlbmNpZXMoKTsKICAgICAgICByZXNldEhvb2tzT25VbndpbmQodW5pdE9mV29yayk7CiAgICAgICAgdGhlbmFibGVTdGF0ZSQxID0gbnVsbDsKICAgICAgICB0aGVuYWJsZUluZGV4Q291bnRlciQxID0gMDsKICAgICAgICB2YXIgcmV0dXJuRmliZXIgPSB1bml0T2ZXb3JrLnJldHVybjsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHRocm93RXhjZXB0aW9uKAogICAgICAgICAgICByb290MiwKICAgICAgICAgICAgcmV0dXJuRmliZXIsCiAgICAgICAgICAgIHVuaXRPZldvcmssCiAgICAgICAgICAgIHRocm93blZhbHVlLAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcwogICAgICAgICAgKSkgewogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEZhdGFsRXJyb3JlZDsKICAgICAgICAgICAgbG9nVW5jYXVnaHRFcnJvcigKICAgICAgICAgICAgICByb290MiwKICAgICAgICAgICAgICBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcih0aHJvd25WYWx1ZSwgcm9vdDIuY3VycmVudCkKICAgICAgICAgICAgKTsKICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBudWxsOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgIGlmIChudWxsICE9PSByZXR1cm5GaWJlcikgdGhyb3cgd29ya0luUHJvZ3Jlc3MgPSByZXR1cm5GaWJlciwgZXJyb3I7CiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEZhdGFsRXJyb3JlZDsKICAgICAgICAgIGxvZ1VuY2F1Z2h0RXJyb3IoCiAgICAgICAgICAgIHJvb3QyLAogICAgICAgICAgICBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcih0aHJvd25WYWx1ZSwgcm9vdDIuY3VycmVudCkKICAgICAgICAgICk7CiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IG51bGw7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmICh1bml0T2ZXb3JrLmZsYWdzICYgMzI3NjgpIHsKICAgICAgICAgIGlmIChpc0h5ZHJhdGluZyB8fCBzdXNwZW5kZWRSZWFzb24gPT09IFN1c3BlbmRlZE9uRXJyb3IpIHJvb3QyID0gdHJ1ZTsKICAgICAgICAgIGVsc2UgaWYgKHdvcmtJblByb2dyZXNzUm9vdElzUHJlcmVuZGVyaW5nIHx8IDAgIT09ICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmIDUzNjg3MDkxMikpCiAgICAgICAgICAgIHJvb3QyID0gZmFsc2U7CiAgICAgICAgICBlbHNlIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3REaWRTa2lwU3VzcGVuZGVkU2libGluZ3MgPSByb290MiA9IHRydWUsIHN1c3BlbmRlZFJlYXNvbiA9PT0gU3VzcGVuZGVkT25EYXRhIHx8IHN1c3BlbmRlZFJlYXNvbiA9PT0gU3VzcGVuZGVkT25BY3Rpb24gfHwgc3VzcGVuZGVkUmVhc29uID09PSBTdXNwZW5kZWRPbkltbWVkaWF0ZSB8fCBzdXNwZW5kZWRSZWFzb24gPT09IFN1c3BlbmRlZE9uRGVwcmVjYXRlZFRocm93UHJvbWlzZSkKICAgICAgICAgICAgc3VzcGVuZGVkUmVhc29uID0gc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudCwgbnVsbCAhPT0gc3VzcGVuZGVkUmVhc29uICYmIDEzID09PSBzdXNwZW5kZWRSZWFzb24udGFnICYmIChzdXNwZW5kZWRSZWFzb24uZmxhZ3MgfD0gMTYzODQpOwogICAgICAgICAgdW53aW5kVW5pdE9mV29yayh1bml0T2ZXb3JrLCByb290Mik7CiAgICAgICAgfSBlbHNlIGNvbXBsZXRlVW5pdE9mV29yayh1bml0T2ZXb3JrKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21wbGV0ZVVuaXRPZldvcmsodW5pdE9mV29yaykgewogICAgICAgIHZhciBjb21wbGV0ZWRXb3JrID0gdW5pdE9mV29yazsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoMCAhPT0gKGNvbXBsZXRlZFdvcmsuZmxhZ3MgJiAzMjc2OCkpIHsKICAgICAgICAgICAgdW53aW5kVW5pdE9mV29yaygKICAgICAgICAgICAgICBjb21wbGV0ZWRXb3JrLAogICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZFNraXBTdXNwZW5kZWRTaWJsaW5ncwogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgY3VycmVudDIgPSBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZTsKICAgICAgICAgIHVuaXRPZldvcmsgPSBjb21wbGV0ZWRXb3JrLnJldHVybjsKICAgICAgICAgIHN0YXJ0UHJvZmlsZXJUaW1lcihjb21wbGV0ZWRXb3JrKTsKICAgICAgICAgIGN1cnJlbnQyID0gcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgIGNvbXBsZXRlZFdvcmssCiAgICAgICAgICAgIGNvbXBsZXRlV29yaywKICAgICAgICAgICAgY3VycmVudDIsCiAgICAgICAgICAgIGNvbXBsZXRlZFdvcmssCiAgICAgICAgICAgIGVudGFuZ2xlZFJlbmRlckxhbmVzCiAgICAgICAgICApOwogICAgICAgICAgKGNvbXBsZXRlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkSW5jb21wbGV0ZUR1cmF0aW9uKGNvbXBsZXRlZFdvcmspOwogICAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQyKSB7CiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gY3VycmVudDI7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNvbXBsZXRlZFdvcmsgPSBjb21wbGV0ZWRXb3JrLnNpYmxpbmc7CiAgICAgICAgICBpZiAobnVsbCAhPT0gY29tcGxldGVkV29yaykgewogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IGNvbXBsZXRlZFdvcms7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gY29tcGxldGVkV29yayA9IHVuaXRPZldvcms7CiAgICAgICAgfSB3aGlsZSAobnVsbCAhPT0gY29tcGxldGVkV29yayk7CiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdEluUHJvZ3Jlc3MgJiYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290Q29tcGxldGVkKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB1bndpbmRVbml0T2ZXb3JrKHVuaXRPZldvcmssIHNraXBTaWJsaW5ncykgewogICAgICAgIGRvIHsKICAgICAgICAgIHZhciBuZXh0ID0gdW53aW5kV29yayh1bml0T2ZXb3JrLmFsdGVybmF0ZSwgdW5pdE9mV29yayk7CiAgICAgICAgICBpZiAobnVsbCAhPT0gbmV4dCkgewogICAgICAgICAgICBuZXh0LmZsYWdzICY9IDMyNzY3OwogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IG5leHQ7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmICgodW5pdE9mV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHsKICAgICAgICAgICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmRJbmNvbXBsZXRlRHVyYXRpb24odW5pdE9mV29yayk7CiAgICAgICAgICAgIG5leHQgPSB1bml0T2ZXb3JrLmFjdHVhbER1cmF0aW9uOwogICAgICAgICAgICBmb3IgKHZhciBjaGlsZCA9IHVuaXRPZldvcmsuY2hpbGQ7IG51bGwgIT09IGNoaWxkOyApCiAgICAgICAgICAgICAgbmV4dCArPSBjaGlsZC5hY3R1YWxEdXJhdGlvbiwgY2hpbGQgPSBjaGlsZC5zaWJsaW5nOwogICAgICAgICAgICB1bml0T2ZXb3JrLmFjdHVhbER1cmF0aW9uID0gbmV4dDsKICAgICAgICAgIH0KICAgICAgICAgIG5leHQgPSB1bml0T2ZXb3JrLnJldHVybjsKICAgICAgICAgIG51bGwgIT09IG5leHQgJiYgKG5leHQuZmxhZ3MgfD0gMzI3NjgsIG5leHQuc3VidHJlZUZsYWdzID0gMCwgbmV4dC5kZWxldGlvbnMgPSBudWxsKTsKICAgICAgICAgIGlmICghc2tpcFNpYmxpbmdzICYmICh1bml0T2ZXb3JrID0gdW5pdE9mV29yay5zaWJsaW5nLCBudWxsICE9PSB1bml0T2ZXb3JrKSkgewogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IHVuaXRPZldvcms7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gdW5pdE9mV29yayA9IG5leHQ7CiAgICAgICAgfSB3aGlsZSAobnVsbCAhPT0gdW5pdE9mV29yayk7CiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RTdXNwZW5kZWRBdFRoZVNoZWxsOwogICAgICAgIHdvcmtJblByb2dyZXNzID0gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRSb290KHJvb3QyLCBmaW5pc2hlZFdvcmssIGxhbmVzLCByZWNvdmVyYWJsZUVycm9ycywgdHJhbnNpdGlvbnMsIGRpZEluY2x1ZGVSZW5kZXJQaGFzZVVwZGF0ZSwgc3Bhd25lZExhbmUsIHVwZGF0ZWRMYW5lcywgc3VzcGVuZGVkUmV0cnlMYW5lcywgZXhpdFN0YXR1cywgc3VzcGVuZGVkU3RhdGUsIHN1c3BlbmRlZENvbW1pdFJlYXNvbiwgY29tcGxldGVkUmVuZGVyU3RhcnRUaW1lLCBjb21wbGV0ZWRSZW5kZXJFbmRUaW1lKSB7CiAgICAgICAgcm9vdDIuY2FuY2VsUGVuZGluZ0NvbW1pdCA9IG51bGw7CiAgICAgICAgZG8KICAgICAgICAgIGZsdXNoUGVuZGluZ0VmZmVjdHMoKTsKICAgICAgICB3aGlsZSAocGVuZGluZ0VmZmVjdHNTdGF0dXMgIT09IE5PX1BFTkRJTkdfRUZGRUNUUyk7CiAgICAgICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MuZmx1c2hMZWdhY3lDb250ZXh0V2FybmluZygpOwogICAgICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLmZsdXNoUGVuZGluZ1Vuc2FmZUxpZmVjeWNsZVdhcm5pbmdzKCk7CiAgICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dCkKICAgICAgICAgIHRocm93IEVycm9yKCJTaG91bGQgbm90IGFscmVhZHkgYmUgd29ya2luZy4iKTsKICAgICAgICBzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMobGFuZXMpOwogICAgICAgIGV4aXRTdGF0dXMgPT09IFJvb3RFcnJvcmVkID8gbG9nRXJyb3JlZFJlbmRlclBoYXNlKAogICAgICAgICAgY29tcGxldGVkUmVuZGVyU3RhcnRUaW1lLAogICAgICAgICAgY29tcGxldGVkUmVuZGVyRW5kVGltZSwKICAgICAgICAgIGxhbmVzLAogICAgICAgICAgd29ya0luUHJvZ3Jlc3NVcGRhdGVUYXNrCiAgICAgICAgKSA6IG51bGwgIT09IHJlY292ZXJhYmxlRXJyb3JzID8gbG9nUmVjb3ZlcmVkUmVuZGVyUGhhc2UoCiAgICAgICAgICBjb21wbGV0ZWRSZW5kZXJTdGFydFRpbWUsCiAgICAgICAgICBjb21wbGV0ZWRSZW5kZXJFbmRUaW1lLAogICAgICAgICAgbGFuZXMsCiAgICAgICAgICByZWNvdmVyYWJsZUVycm9ycywKICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yayAmJiBudWxsICE9PSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlICYmIGZpbmlzaGVkV29yay5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQgJiYgMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDI1NiksCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sKICAgICAgICApIDogbG9nUmVuZGVyUGhhc2UoCiAgICAgICAgICBjb21wbGV0ZWRSZW5kZXJTdGFydFRpbWUsCiAgICAgICAgICBjb21wbGV0ZWRSZW5kZXJFbmRUaW1lLAogICAgICAgICAgbGFuZXMsCiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sKICAgICAgICApOwogICAgICAgIGlmIChudWxsICE9PSBmaW5pc2hlZFdvcmspIHsKICAgICAgICAgIDAgPT09IGxhbmVzICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJmaW5pc2hlZExhbmVzIHNob3VsZCBub3QgYmUgZW1wdHkgZHVyaW5nIGEgY29tbWl0LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICk7CiAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrID09PSByb290Mi5jdXJyZW50KQogICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAiQ2Fubm90IGNvbW1pdCB0aGUgc2FtZSB0cmVlIGFzIGJlZm9yZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iCiAgICAgICAgICAgICk7CiAgICAgICAgICBkaWRJbmNsdWRlUmVuZGVyUGhhc2VVcGRhdGUgPSBmaW5pc2hlZFdvcmsubGFuZXMgfCBmaW5pc2hlZFdvcmsuY2hpbGRMYW5lczsKICAgICAgICAgIGRpZEluY2x1ZGVSZW5kZXJQaGFzZVVwZGF0ZSB8PSBjb25jdXJyZW50bHlVcGRhdGVkTGFuZXM7CiAgICAgICAgICBtYXJrUm9vdEZpbmlzaGVkKAogICAgICAgICAgICByb290MiwKICAgICAgICAgICAgbGFuZXMsCiAgICAgICAgICAgIGRpZEluY2x1ZGVSZW5kZXJQaGFzZVVwZGF0ZSwKICAgICAgICAgICAgc3Bhd25lZExhbmUsCiAgICAgICAgICAgIHVwZGF0ZWRMYW5lcywKICAgICAgICAgICAgc3VzcGVuZGVkUmV0cnlMYW5lcwogICAgICAgICAgKTsKICAgICAgICAgIHJvb3QyID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgJiYgKHdvcmtJblByb2dyZXNzID0gd29ya0luUHJvZ3Jlc3NSb290ID0gbnVsbCwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgPSAwKTsKICAgICAgICAgIHBlbmRpbmdGaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcms7CiAgICAgICAgICBwZW5kaW5nRWZmZWN0c1Jvb3QgPSByb290MjsKICAgICAgICAgIHBlbmRpbmdFZmZlY3RzTGFuZXMgPSBsYW5lczsKICAgICAgICAgIHBlbmRpbmdFZmZlY3RzUmVtYWluaW5nTGFuZXMgPSBkaWRJbmNsdWRlUmVuZGVyUGhhc2VVcGRhdGU7CiAgICAgICAgICBwZW5kaW5nUGFzc2l2ZVRyYW5zaXRpb25zID0gdHJhbnNpdGlvbnM7CiAgICAgICAgICBwZW5kaW5nUmVjb3ZlcmFibGVFcnJvcnMgPSByZWNvdmVyYWJsZUVycm9yczsKICAgICAgICAgIHBlbmRpbmdFZmZlY3RzUmVuZGVyRW5kVGltZSA9IGNvbXBsZXRlZFJlbmRlckVuZFRpbWU7CiAgICAgICAgICBwZW5kaW5nU3VzcGVuZGVkQ29tbWl0UmVhc29uID0gc3VzcGVuZGVkQ29tbWl0UmVhc29uOwogICAgICAgICAgcGVuZGluZ0RlbGF5ZWRDb21taXRSZWFzb24gPSBJTU1FRElBVEVfQ09NTUlUOwogICAgICAgICAgcGVuZGluZ1N1c3BlbmRlZFZpZXdUcmFuc2l0aW9uUmVhc29uID0gbnVsbDsKICAgICAgICAgIDAgIT09IGZpbmlzaGVkV29yay5hY3R1YWxEdXJhdGlvbiB8fCAwICE9PSAoZmluaXNoZWRXb3JrLnN1YnRyZWVGbGFncyAmIDEwMjU2KSB8fCAwICE9PSAoZmluaXNoZWRXb3JrLmZsYWdzICYgMTAyNTYpID8gKHJvb3QyLmNhbGxiYWNrTm9kZSA9IG51bGwsIHJvb3QyLmNhbGxiYWNrUHJpb3JpdHkgPSAwLCBzY2hlZHVsZUNhbGxiYWNrJDEoTm9ybWFsUHJpb3JpdHkkMSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHNjaGVkdWxlckV2ZW50ID0gd2luZG93LmV2ZW50OwogICAgICAgICAgICBwZW5kaW5nRGVsYXllZENvbW1pdFJlYXNvbiA9PT0gSU1NRURJQVRFX0NPTU1JVCAmJiAocGVuZGluZ0RlbGF5ZWRDb21taXRSZWFzb24gPSBERUxBWUVEX1BBU1NJVkVfQ09NTUlUKTsKICAgICAgICAgICAgZmx1c2hQYXNzaXZlRWZmZWN0cygpOwogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0pKSA6IChyb290Mi5jYWxsYmFja05vZGUgPSBudWxsLCByb290Mi5jYWxsYmFja1ByaW9yaXR5ID0gMCk7CiAgICAgICAgICBjb21taXRFcnJvcnMgPSBudWxsOwogICAgICAgICAgY29tbWl0U3RhcnRUaW1lID0gbm93KCk7CiAgICAgICAgICBudWxsICE9PSBzdXNwZW5kZWRDb21taXRSZWFzb24gJiYgbG9nU3VzcGVuZGVkQ29tbWl0UGhhc2UoCiAgICAgICAgICAgIGNvbXBsZXRlZFJlbmRlckVuZFRpbWUsCiAgICAgICAgICAgIGNvbW1pdFN0YXJ0VGltZSwKICAgICAgICAgICAgc3VzcGVuZGVkQ29tbWl0UmVhc29uLAogICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sKICAgICAgICAgICk7CiAgICAgICAgICByZWNvdmVyYWJsZUVycm9ycyA9IDAgIT09IChmaW5pc2hlZFdvcmsuZmxhZ3MgJiAxMzg3OCk7CiAgICAgICAgICBpZiAoMCAhPT0gKGZpbmlzaGVkV29yay5zdWJ0cmVlRmxhZ3MgJiAxMzg3OCkgfHwgcmVjb3ZlcmFibGVFcnJvcnMpIHsKICAgICAgICAgICAgcmVjb3ZlcmFibGVFcnJvcnMgPSBSZWFjdFNoYXJlZEludGVybmFscy5UOwogICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gbnVsbDsKICAgICAgICAgICAgdHJhbnNpdGlvbnMgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wOwogICAgICAgICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gRGlzY3JldGVFdmVudFByaW9yaXR5OwogICAgICAgICAgICBzcGF3bmVkTGFuZSA9IGV4ZWN1dGlvbkNvbnRleHQ7CiAgICAgICAgICAgIGV4ZWN1dGlvbkNvbnRleHQgfD0gQ29tbWl0Q29udGV4dDsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHMocm9vdDIsIGZpbmlzaGVkV29yaywgbGFuZXMpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBzcGF3bmVkTGFuZSwgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IHRyYW5zaXRpb25zLCBSZWFjdFNoYXJlZEludGVybmFscy5UID0gcmVjb3ZlcmFibGVFcnJvcnM7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHBlbmRpbmdFZmZlY3RzU3RhdHVzID0gUEVORElOR19NVVRBVElPTl9QSEFTRTsKICAgICAgICAgIGZsdXNoTXV0YXRpb25FZmZlY3RzKCk7CiAgICAgICAgICBmbHVzaExheW91dEVmZmVjdHMoKTsKICAgICAgICAgIGZsdXNoU3Bhd25lZFdvcmsoKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZmx1c2hNdXRhdGlvbkVmZmVjdHMoKSB7CiAgICAgICAgaWYgKHBlbmRpbmdFZmZlY3RzU3RhdHVzID09PSBQRU5ESU5HX01VVEFUSU9OX1BIQVNFKSB7CiAgICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IE5PX1BFTkRJTkdfRUZGRUNUUzsKICAgICAgICAgIHZhciByb290MiA9IHBlbmRpbmdFZmZlY3RzUm9vdCwgZmluaXNoZWRXb3JrID0gcGVuZGluZ0ZpbmlzaGVkV29yaywgbGFuZXMgPSBwZW5kaW5nRWZmZWN0c0xhbmVzLCByb290TXV0YXRpb25IYXNFZmZlY3QgPSAwICE9PSAoZmluaXNoZWRXb3JrLmZsYWdzICYgMTM4NzgpOwogICAgICAgICAgaWYgKDAgIT09IChmaW5pc2hlZFdvcmsuc3VidHJlZUZsYWdzICYgMTM4NzgpIHx8IHJvb3RNdXRhdGlvbkhhc0VmZmVjdCkgewogICAgICAgICAgICByb290TXV0YXRpb25IYXNFZmZlY3QgPSBSZWFjdFNoYXJlZEludGVybmFscy5UOwogICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gbnVsbDsKICAgICAgICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wOwogICAgICAgICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gRGlzY3JldGVFdmVudFByaW9yaXR5OwogICAgICAgICAgICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0OwogICAgICAgICAgICBleGVjdXRpb25Db250ZXh0IHw9IENvbW1pdENvbnRleHQ7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaW5Qcm9ncmVzc0xhbmVzID0gbGFuZXM7CiAgICAgICAgICAgICAgaW5Qcm9ncmVzc1Jvb3QgPSByb290MjsKICAgICAgICAgICAgICByZXNldENvbXBvbmVudEVmZmVjdFRpbWVycygpOwogICAgICAgICAgICAgIGNvbW1pdE11dGF0aW9uRWZmZWN0c09uRmliZXIoZmluaXNoZWRXb3JrLCByb290Mik7CiAgICAgICAgICAgICAgaW5Qcm9ncmVzc1Jvb3QgPSBpblByb2dyZXNzTGFuZXMgPSBudWxsOwogICAgICAgICAgICAgIGxhbmVzID0gc2VsZWN0aW9uSW5mb3JtYXRpb247CiAgICAgICAgICAgICAgdmFyIGN1ckZvY3VzZWRFbGVtID0gZ2V0QWN0aXZlRWxlbWVudERlZXAocm9vdDIuY29udGFpbmVySW5mbyksIHByaW9yRm9jdXNlZEVsZW0gPSBsYW5lcy5mb2N1c2VkRWxlbSwgcHJpb3JTZWxlY3Rpb25SYW5nZSA9IGxhbmVzLnNlbGVjdGlvblJhbmdlOwogICAgICAgICAgICAgIGlmIChjdXJGb2N1c2VkRWxlbSAhPT0gcHJpb3JGb2N1c2VkRWxlbSAmJiBwcmlvckZvY3VzZWRFbGVtICYmIHByaW9yRm9jdXNlZEVsZW0ub3duZXJEb2N1bWVudCAmJiBjb250YWluc05vZGUoCiAgICAgICAgICAgICAgICBwcmlvckZvY3VzZWRFbGVtLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LAogICAgICAgICAgICAgICAgcHJpb3JGb2N1c2VkRWxlbQogICAgICAgICAgICAgICkpIHsKICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSBwcmlvclNlbGVjdGlvblJhbmdlICYmIGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhwcmlvckZvY3VzZWRFbGVtKSkgewogICAgICAgICAgICAgICAgICB2YXIgc3RhcnQgPSBwcmlvclNlbGVjdGlvblJhbmdlLnN0YXJ0LCBlbmQgPSBwcmlvclNlbGVjdGlvblJhbmdlLmVuZDsKICAgICAgICAgICAgICAgICAgdm9pZCAwID09PSBlbmQgJiYgKGVuZCA9IHN0YXJ0KTsKICAgICAgICAgICAgICAgICAgaWYgKCJzZWxlY3Rpb25TdGFydCIgaW4gcHJpb3JGb2N1c2VkRWxlbSkKICAgICAgICAgICAgICAgICAgICBwcmlvckZvY3VzZWRFbGVtLnNlbGVjdGlvblN0YXJ0ID0gc3RhcnQsIHByaW9yRm9jdXNlZEVsZW0uc2VsZWN0aW9uRW5kID0gTWF0aC5taW4oCiAgICAgICAgICAgICAgICAgICAgICBlbmQsCiAgICAgICAgICAgICAgICAgICAgICBwcmlvckZvY3VzZWRFbGVtLnZhbHVlLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHZhciBkb2MgPSBwcmlvckZvY3VzZWRFbGVtLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQsIHdpbiA9IGRvYyAmJiBkb2MuZGVmYXVsdFZpZXcgfHwgd2luZG93OwogICAgICAgICAgICAgICAgICAgIGlmICh3aW4uZ2V0U2VsZWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gd2luLmdldFNlbGVjdGlvbigpLCBsZW5ndGggPSBwcmlvckZvY3VzZWRFbGVtLnRleHRDb250ZW50Lmxlbmd0aCwgc3RhcnQkanNjb21wJDAgPSBNYXRoLm1pbigKICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JTZWxlY3Rpb25SYW5nZS5zdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICApLCBlbmQkanNjb21wJDAgPSB2b2lkIDAgPT09IHByaW9yU2VsZWN0aW9uUmFuZ2UuZW5kID8gc3RhcnQkanNjb21wJDAgOiBNYXRoLm1pbihwcmlvclNlbGVjdGlvblJhbmdlLmVuZCwgbGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICAgICFzZWxlY3Rpb24uZXh0ZW5kICYmIHN0YXJ0JGpzY29tcCQwID4gZW5kJGpzY29tcCQwICYmIChjdXJGb2N1c2VkRWxlbSA9IGVuZCRqc2NvbXAkMCwgZW5kJGpzY29tcCQwID0gc3RhcnQkanNjb21wJDAsIHN0YXJ0JGpzY29tcCQwID0gY3VyRm9jdXNlZEVsZW0pOwogICAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXJ0TWFya2VyID0gZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldCgKICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JGb2N1c2VkRWxlbSwKICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQkanNjb21wJDAKICAgICAgICAgICAgICAgICAgICAgICksIGVuZE1hcmtlciA9IGdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yRm9jdXNlZEVsZW0sCiAgICAgICAgICAgICAgICAgICAgICAgIGVuZCRqc2NvbXAkMAogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydE1hcmtlciAmJiBlbmRNYXJrZXIgJiYgKDEgIT09IHNlbGVjdGlvbi5yYW5nZUNvdW50IHx8IHNlbGVjdGlvbi5hbmNob3JOb2RlICE9PSBzdGFydE1hcmtlci5ub2RlIHx8IHNlbGVjdGlvbi5hbmNob3JPZmZzZXQgIT09IHN0YXJ0TWFya2VyLm9mZnNldCB8fCBzZWxlY3Rpb24uZm9jdXNOb2RlICE9PSBlbmRNYXJrZXIubm9kZSB8fCBzZWxlY3Rpb24uZm9jdXNPZmZzZXQgIT09IGVuZE1hcmtlci5vZmZzZXQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByYW5nZSA9IGRvYy5jcmVhdGVSYW5nZSgpOwogICAgICAgICAgICAgICAgICAgICAgICByYW5nZS5zZXRTdGFydChzdGFydE1hcmtlci5ub2RlLCBzdGFydE1hcmtlci5vZmZzZXQpOwogICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0JGpzY29tcCQwID4gZW5kJGpzY29tcCQwID8gKHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSksIHNlbGVjdGlvbi5leHRlbmQoZW5kTWFya2VyLm5vZGUsIGVuZE1hcmtlci5vZmZzZXQpKSA6IChyYW5nZS5zZXRFbmQoZW5kTWFya2VyLm5vZGUsIGVuZE1hcmtlci5vZmZzZXQpLCBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRvYyA9IFtdOwogICAgICAgICAgICAgICAgZm9yIChzZWxlY3Rpb24gPSBwcmlvckZvY3VzZWRFbGVtOyBzZWxlY3Rpb24gPSBzZWxlY3Rpb24ucGFyZW50Tm9kZTsgKQogICAgICAgICAgICAgICAgICAxID09PSBzZWxlY3Rpb24ubm9kZVR5cGUgJiYgZG9jLnB1c2goewogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IHNlbGVjdGlvbiwKICAgICAgICAgICAgICAgICAgICBsZWZ0OiBzZWxlY3Rpb24uc2Nyb2xsTGVmdCwKICAgICAgICAgICAgICAgICAgICB0b3A6IHNlbGVjdGlvbi5zY3JvbGxUb3AKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgcHJpb3JGb2N1c2VkRWxlbS5mb2N1cyAmJiBwcmlvckZvY3VzZWRFbGVtLmZvY3VzKCk7CiAgICAgICAgICAgICAgICBmb3IgKHByaW9yRm9jdXNlZEVsZW0gPSAwOyBwcmlvckZvY3VzZWRFbGVtIDwgZG9jLmxlbmd0aDsgcHJpb3JGb2N1c2VkRWxlbSsrKSB7CiAgICAgICAgICAgICAgICAgIHZhciBpbmZvID0gZG9jW3ByaW9yRm9jdXNlZEVsZW1dOwogICAgICAgICAgICAgICAgICBpbmZvLmVsZW1lbnQuc2Nyb2xsTGVmdCA9IGluZm8ubGVmdDsKICAgICAgICAgICAgICAgICAgaW5mby5lbGVtZW50LnNjcm9sbFRvcCA9IGluZm8udG9wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfZW5hYmxlZCA9ICEhZXZlbnRzRW5hYmxlZDsKICAgICAgICAgICAgICBzZWxlY3Rpb25JbmZvcm1hdGlvbiA9IGV2ZW50c0VuYWJsZWQgPSBudWxsOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dCwgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IHByZXZpb3VzUHJpb3JpdHksIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSByb290TXV0YXRpb25IYXNFZmZlY3Q7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJvb3QyLmN1cnJlbnQgPSBmaW5pc2hlZFdvcms7CiAgICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IFBFTkRJTkdfTEFZT1VUX1BIQVNFOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBmbHVzaExheW91dEVmZmVjdHMoKSB7CiAgICAgICAgaWYgKHBlbmRpbmdFZmZlY3RzU3RhdHVzID09PSBQRU5ESU5HX0xBWU9VVF9QSEFTRSkgewogICAgICAgICAgcGVuZGluZ0VmZmVjdHNTdGF0dXMgPSBOT19QRU5ESU5HX0VGRkVDVFM7CiAgICAgICAgICB2YXIgc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24gPSBwZW5kaW5nU3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb247CiAgICAgICAgICBpZiAobnVsbCAhPT0gc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24pIHsKICAgICAgICAgICAgY29tbWl0U3RhcnRUaW1lID0gbm93KCk7CiAgICAgICAgICAgIHZhciBzdGFydFRpbWUgPSBjb21taXRFbmRUaW1lLCBlbmRUaW1lID0gY29tbWl0U3RhcnRUaW1lOwogICAgICAgICAgICAhc3VwcG9ydHNVc2VyVGltaW5nIHx8IGVuZFRpbWUgPD0gc3RhcnRUaW1lIHx8IChhbmltYXRpbmdUYXNrID8gYW5pbWF0aW5nVGFzay5ydW4oCiAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZCgKICAgICAgICAgICAgICAgIGNvbnNvbGUsCiAgICAgICAgICAgICAgICBzdXNwZW5kZWRWaWV3VHJhbnNpdGlvblJlYXNvbiwKICAgICAgICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssCiAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICAgICAgICJzZWNvbmRhcnktbGlnaHQiCiAgICAgICAgICAgICAgKQogICAgICAgICAgICApIDogY29uc29sZS50aW1lU3RhbXAoCiAgICAgICAgICAgICAgc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24sCiAgICAgICAgICAgICAgc3RhcnRUaW1lLAogICAgICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAgICJzZWNvbmRhcnktbGlnaHQiCiAgICAgICAgICAgICkpOwogICAgICAgICAgfQogICAgICAgICAgc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24gPSBwZW5kaW5nRWZmZWN0c1Jvb3Q7CiAgICAgICAgICBzdGFydFRpbWUgPSBwZW5kaW5nRmluaXNoZWRXb3JrOwogICAgICAgICAgZW5kVGltZSA9IHBlbmRpbmdFZmZlY3RzTGFuZXM7CiAgICAgICAgICB2YXIgcm9vdEhhc0xheW91dEVmZmVjdCA9IDAgIT09IChzdGFydFRpbWUuZmxhZ3MgJiA4NzcyKTsKICAgICAgICAgIGlmICgwICE9PSAoc3RhcnRUaW1lLnN1YnRyZWVGbGFncyAmIDg3NzIpIHx8IHJvb3RIYXNMYXlvdXRFZmZlY3QpIHsKICAgICAgICAgICAgcm9vdEhhc0xheW91dEVmZmVjdCA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQ7CiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBudWxsOwogICAgICAgICAgICB2YXIgX3ByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wOwogICAgICAgICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gRGlzY3JldGVFdmVudFByaW9yaXR5OwogICAgICAgICAgICB2YXIgX3ByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDsKICAgICAgICAgICAgZXhlY3V0aW9uQ29udGV4dCB8PSBDb21taXRDb250ZXh0OwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGluUHJvZ3Jlc3NMYW5lcyA9IGVuZFRpbWUsIGluUHJvZ3Jlc3NSb290ID0gc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24sIHJlc2V0Q29tcG9uZW50RWZmZWN0VGltZXJzKCksIGNvbW1pdExheW91dEVmZmVjdE9uRmliZXIoCiAgICAgICAgICAgICAgICBzdXNwZW5kZWRWaWV3VHJhbnNpdGlvblJlYXNvbiwKICAgICAgICAgICAgICAgIHN0YXJ0VGltZS5hbHRlcm5hdGUsCiAgICAgICAgICAgICAgICBzdGFydFRpbWUKICAgICAgICAgICAgICApLCBpblByb2dyZXNzUm9vdCA9IGluUHJvZ3Jlc3NMYW5lcyA9IG51bGw7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgZXhlY3V0aW9uQ29udGV4dCA9IF9wcmV2RXhlY3V0aW9uQ29udGV4dCwgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IF9wcmV2aW91c1ByaW9yaXR5LCBSZWFjdFNoYXJlZEludGVybmFscy5UID0gcm9vdEhhc0xheW91dEVmZmVjdDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24gPSBwZW5kaW5nRWZmZWN0c1JlbmRlckVuZFRpbWU7CiAgICAgICAgICBzdGFydFRpbWUgPSBwZW5kaW5nU3VzcGVuZGVkQ29tbWl0UmVhc29uOwogICAgICAgICAgY29tbWl0RW5kVGltZSA9IG5vdygpOwogICAgICAgICAgc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24gPSBudWxsID09PSBzdGFydFRpbWUgPyBzdXNwZW5kZWRWaWV3VHJhbnNpdGlvblJlYXNvbiA6IGNvbW1pdFN0YXJ0VGltZTsKICAgICAgICAgIHN0YXJ0VGltZSA9IGNvbW1pdEVuZFRpbWU7CiAgICAgICAgICBlbmRUaW1lID0gcGVuZGluZ0RlbGF5ZWRDb21taXRSZWFzb24gPT09IEFCT1JURURfVklFV19UUkFOU0lUSU9OX0NPTU1JVDsKICAgICAgICAgIHJvb3RIYXNMYXlvdXRFZmZlY3QgPSB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2s7CiAgICAgICAgICBudWxsICE9PSBjb21taXRFcnJvcnMgPyBsb2dDb21taXRFcnJvcmVkKAogICAgICAgICAgICBzdXNwZW5kZWRWaWV3VHJhbnNpdGlvblJlYXNvbiwKICAgICAgICAgICAgc3RhcnRUaW1lLAogICAgICAgICAgICBjb21taXRFcnJvcnMsCiAgICAgICAgICAgIGZhbHNlLAogICAgICAgICAgICByb290SGFzTGF5b3V0RWZmZWN0CiAgICAgICAgICApIDogIXN1cHBvcnRzVXNlclRpbWluZyB8fCBzdGFydFRpbWUgPD0gc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24gfHwgKHJvb3RIYXNMYXlvdXRFZmZlY3QgPyByb290SGFzTGF5b3V0RWZmZWN0LnJ1bigKICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZCgKICAgICAgICAgICAgICBjb25zb2xlLAogICAgICAgICAgICAgIGVuZFRpbWUgPyAiQ29tbWl0IEludGVycnVwdGVkIFZpZXcgVHJhbnNpdGlvbiIgOiAiQ29tbWl0IiwKICAgICAgICAgICAgICBzdXNwZW5kZWRWaWV3VHJhbnNpdGlvblJlYXNvbiwKICAgICAgICAgICAgICBzdGFydFRpbWUsCiAgICAgICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAgIGVuZFRpbWUgPyAiZXJyb3IiIDogInNlY29uZGFyeS1kYXJrIgogICAgICAgICAgICApCiAgICAgICAgICApIDogY29uc29sZS50aW1lU3RhbXAoCiAgICAgICAgICAgIGVuZFRpbWUgPyAiQ29tbWl0IEludGVycnVwdGVkIFZpZXcgVHJhbnNpdGlvbiIgOiAiQ29tbWl0IiwKICAgICAgICAgICAgc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24sCiAgICAgICAgICAgIHN0YXJ0VGltZSwKICAgICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICAgZW5kVGltZSA/ICJlcnJvciIgOiAic2Vjb25kYXJ5LWRhcmsiCiAgICAgICAgICApKTsKICAgICAgICAgIHBlbmRpbmdFZmZlY3RzU3RhdHVzID0gUEVORElOR19BRlRFUl9NVVRBVElPTl9QSEFTRTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZmx1c2hTcGF3bmVkV29yaygpIHsKICAgICAgICBpZiAocGVuZGluZ0VmZmVjdHNTdGF0dXMgPT09IFBFTkRJTkdfU1BBV05FRF9XT1JLIHx8IHBlbmRpbmdFZmZlY3RzU3RhdHVzID09PSBQRU5ESU5HX0FGVEVSX01VVEFUSU9OX1BIQVNFKSB7CiAgICAgICAgICBpZiAocGVuZGluZ0VmZmVjdHNTdGF0dXMgPT09IFBFTkRJTkdfU1BBV05FRF9XT1JLKSB7CiAgICAgICAgICAgIHZhciBzdGFydFZpZXdUcmFuc2l0aW9uU3RhcnRUaW1lID0gY29tbWl0RW5kVGltZTsKICAgICAgICAgICAgY29tbWl0RW5kVGltZSA9IG5vdygpOwogICAgICAgICAgICB2YXIgZW5kVGltZSA9IGNvbW1pdEVuZFRpbWUsIGFib3J0ZWRWaWV3VHJhbnNpdGlvbiA9IHBlbmRpbmdEZWxheWVkQ29tbWl0UmVhc29uID09PSBBQk9SVEVEX1ZJRVdfVFJBTlNJVElPTl9DT01NSVQ7CiAgICAgICAgICAgICFzdXBwb3J0c1VzZXJUaW1pbmcgfHwgZW5kVGltZSA8PSBzdGFydFZpZXdUcmFuc2l0aW9uU3RhcnRUaW1lIHx8IChhbmltYXRpbmdUYXNrID8gYW5pbWF0aW5nVGFzay5ydW4oCiAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZCgKICAgICAgICAgICAgICAgIGNvbnNvbGUsCiAgICAgICAgICAgICAgICBhYm9ydGVkVmlld1RyYW5zaXRpb24gPyAiSW50ZXJydXB0ZWQgVmlldyBUcmFuc2l0aW9uIiA6ICJTdGFydGluZyBBbmltYXRpb24iLAogICAgICAgICAgICAgICAgc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZSwKICAgICAgICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssCiAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICAgICAgIGFib3J0ZWRWaWV3VHJhbnNpdGlvbiA/ICJlcnJvciIgOiAic2Vjb25kYXJ5LWxpZ2h0IgogICAgICAgICAgICAgICkKICAgICAgICAgICAgKSA6IGNvbnNvbGUudGltZVN0YW1wKAogICAgICAgICAgICAgIGFib3J0ZWRWaWV3VHJhbnNpdGlvbiA/ICJJbnRlcnJ1cHRlZCBWaWV3IFRyYW5zaXRpb24iIDogIlN0YXJ0aW5nIEFuaW1hdGlvbiIsCiAgICAgICAgICAgICAgc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZSwKICAgICAgICAgICAgICBlbmRUaW1lLAogICAgICAgICAgICAgIGN1cnJlbnRUcmFjaywKICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCwKICAgICAgICAgICAgICBhYm9ydGVkVmlld1RyYW5zaXRpb24gPyAiIGVycm9yIiA6ICJzZWNvbmRhcnktbGlnaHQiCiAgICAgICAgICAgICkpOwogICAgICAgICAgICBwZW5kaW5nRGVsYXllZENvbW1pdFJlYXNvbiAhPT0gQUJPUlRFRF9WSUVXX1RSQU5TSVRJT05fQ09NTUlUICYmIChwZW5kaW5nRGVsYXllZENvbW1pdFJlYXNvbiA9IEFOSU1BVElPTl9TVEFSVEVEX0NPTU1JVCk7CiAgICAgICAgICB9CiAgICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IE5PX1BFTkRJTkdfRUZGRUNUUzsKICAgICAgICAgIHJlcXVlc3RQYWludCgpOwogICAgICAgICAgc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZSA9IHBlbmRpbmdFZmZlY3RzUm9vdDsKICAgICAgICAgIHZhciBmaW5pc2hlZFdvcmsgPSBwZW5kaW5nRmluaXNoZWRXb3JrOwogICAgICAgICAgZW5kVGltZSA9IHBlbmRpbmdFZmZlY3RzTGFuZXM7CiAgICAgICAgICBhYm9ydGVkVmlld1RyYW5zaXRpb24gPSBwZW5kaW5nUmVjb3ZlcmFibGVFcnJvcnM7CiAgICAgICAgICB2YXIgcm9vdERpZEhhdmVQYXNzaXZlRWZmZWN0cyA9IDAgIT09IGZpbmlzaGVkV29yay5hY3R1YWxEdXJhdGlvbiB8fCAwICE9PSAoZmluaXNoZWRXb3JrLnN1YnRyZWVGbGFncyAmIDEwMjU2KSB8fCAwICE9PSAoZmluaXNoZWRXb3JrLmZsYWdzICYgMTAyNTYpOwogICAgICAgICAgcm9vdERpZEhhdmVQYXNzaXZlRWZmZWN0cyA/IHBlbmRpbmdFZmZlY3RzU3RhdHVzID0gUEVORElOR19QQVNTSVZFX1BIQVNFIDogKHBlbmRpbmdFZmZlY3RzU3RhdHVzID0gTk9fUEVORElOR19FRkZFQ1RTLCBwZW5kaW5nRmluaXNoZWRXb3JrID0gcGVuZGluZ0VmZmVjdHNSb290ID0gbnVsbCwgcmVsZWFzZVJvb3RQb29sZWRDYWNoZSgKICAgICAgICAgICAgc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZSwKICAgICAgICAgICAgc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZS5wZW5kaW5nTGFuZXMKICAgICAgICAgICksIG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IDAsIHJvb3RXaXRoUGFzc2l2ZU5lc3RlZFVwZGF0ZXMgPSBudWxsKTsKICAgICAgICAgIHZhciByZW1haW5pbmdMYW5lcyA9IHN0YXJ0Vmlld1RyYW5zaXRpb25TdGFydFRpbWUucGVuZGluZ0xhbmVzOwogICAgICAgICAgMCA9PT0gcmVtYWluaW5nTGFuZXMgJiYgKGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkID0gbnVsbCk7CiAgICAgICAgICByb290RGlkSGF2ZVBhc3NpdmVFZmZlY3RzIHx8IGNvbW1pdERvdWJsZUludm9rZUVmZmVjdHNJbkRFVihzdGFydFZpZXdUcmFuc2l0aW9uU3RhcnRUaW1lKTsKICAgICAgICAgIHJlbWFpbmluZ0xhbmVzID0gbGFuZXNUb0V2ZW50UHJpb3JpdHkoZW5kVGltZSk7CiAgICAgICAgICBmaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlOwogICAgICAgICAgaWYgKGluamVjdGVkSG9vayAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJSb290KQogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIHZhciBkaWRFcnJvciA9IDEyOCA9PT0gKGZpbmlzaGVkV29yay5jdXJyZW50LmZsYWdzICYgMTI4KTsKICAgICAgICAgICAgICBzd2l0Y2ggKHJlbWFpbmluZ0xhbmVzKSB7CiAgICAgICAgICAgICAgICBjYXNlIERpc2NyZXRlRXZlbnRQcmlvcml0eToKICAgICAgICAgICAgICAgICAgdmFyIHNjaGVkdWxlclByaW9yaXR5ID0gSW1tZWRpYXRlUHJpb3JpdHk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBDb250aW51b3VzRXZlbnRQcmlvcml0eToKICAgICAgICAgICAgICAgICAgc2NoZWR1bGVyUHJpb3JpdHkgPSBVc2VyQmxvY2tpbmdQcmlvcml0eTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIERlZmF1bHRFdmVudFByaW9yaXR5OgogICAgICAgICAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IE5vcm1hbFByaW9yaXR5JDE7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBJZGxlRXZlbnRQcmlvcml0eToKICAgICAgICAgICAgICAgICAgc2NoZWR1bGVyUHJpb3JpdHkgPSBJZGxlUHJpb3JpdHk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgc2NoZWR1bGVyUHJpb3JpdHkgPSBOb3JtYWxQcmlvcml0eSQxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpbmplY3RlZEhvb2sub25Db21taXRGaWJlclJvb3QoCiAgICAgICAgICAgICAgICByZW5kZXJlcklELAogICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLAogICAgICAgICAgICAgICAgc2NoZWR1bGVyUHJpb3JpdHksCiAgICAgICAgICAgICAgICBkaWRFcnJvcgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICAgIGhhc0xvZ2dlZEVycm9yIHx8IChoYXNMb2dnZWRFcnJvciA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAiUmVhY3QgaW5zdHJ1bWVudGF0aW9uIGVuY291bnRlcmVkIGFuIGVycm9yOiAlbyIsCiAgICAgICAgICAgICAgICBlcnIKICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgfQogICAgICAgICAgaXNEZXZUb29sc1ByZXNlbnQgJiYgc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZS5tZW1vaXplZFVwZGF0ZXJzLmNsZWFyKCk7CiAgICAgICAgICBvbkNvbW1pdFJvb3QoKTsKICAgICAgICAgIGlmIChudWxsICE9PSBhYm9ydGVkVmlld1RyYW5zaXRpb24pIHsKICAgICAgICAgICAgZGlkRXJyb3IgPSBSZWFjdFNoYXJlZEludGVybmFscy5UOwogICAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnA7CiAgICAgICAgICAgIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk7CiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBudWxsOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIHZhciBvblJlY292ZXJhYmxlRXJyb3IgPSBzdGFydFZpZXdUcmFuc2l0aW9uU3RhcnRUaW1lLm9uUmVjb3ZlcmFibGVFcnJvcjsKICAgICAgICAgICAgICBmb3IgKGZpbmlzaGVkV29yayA9IDA7IGZpbmlzaGVkV29yayA8IGFib3J0ZWRWaWV3VHJhbnNpdGlvbi5sZW5ndGg7IGZpbmlzaGVkV29yaysrKSB7CiAgICAgICAgICAgICAgICB2YXIgcmVjb3ZlcmFibGVFcnJvciA9IGFib3J0ZWRWaWV3VHJhbnNpdGlvbltmaW5pc2hlZFdvcmtdLCBlcnJvckluZm8gPSBtYWtlRXJyb3JJbmZvKHJlY292ZXJhYmxlRXJyb3Iuc3RhY2spOwogICAgICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgICAgIHJlY292ZXJhYmxlRXJyb3Iuc291cmNlLAogICAgICAgICAgICAgICAgICBvblJlY292ZXJhYmxlRXJyb3IsCiAgICAgICAgICAgICAgICAgIHJlY292ZXJhYmxlRXJyb3IudmFsdWUsCiAgICAgICAgICAgICAgICAgIGVycm9ySW5mbwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IGRpZEVycm9yLCBSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gc2NoZWR1bGVyUHJpb3JpdHk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIDAgIT09IChwZW5kaW5nRWZmZWN0c0xhbmVzICYgMykgJiYgZmx1c2hQZW5kaW5nRWZmZWN0cygpOwogICAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHN0YXJ0Vmlld1RyYW5zaXRpb25TdGFydFRpbWUpOwogICAgICAgICAgcmVtYWluaW5nTGFuZXMgPSBzdGFydFZpZXdUcmFuc2l0aW9uU3RhcnRUaW1lLnBlbmRpbmdMYW5lczsKICAgICAgICAgIDAgIT09IChlbmRUaW1lICYgMjYxOTMwKSAmJiAwICE9PSAocmVtYWluaW5nTGFuZXMgJiA0MikgPyAobmVzdGVkVXBkYXRlU2NoZWR1bGVkID0gdHJ1ZSwgc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZSA9PT0gcm9vdFdpdGhOZXN0ZWRVcGRhdGVzID8gbmVzdGVkVXBkYXRlQ291bnQrKyA6IChuZXN0ZWRVcGRhdGVDb3VudCA9IDAsIHJvb3RXaXRoTmVzdGVkVXBkYXRlcyA9IHN0YXJ0Vmlld1RyYW5zaXRpb25TdGFydFRpbWUpKSA6IG5lc3RlZFVwZGF0ZUNvdW50ID0gMDsKICAgICAgICAgIHJvb3REaWRIYXZlUGFzc2l2ZUVmZmVjdHMgfHwgZmluYWxpemVSZW5kZXIoZW5kVGltZSwgY29tbWl0RW5kVGltZSk7CiAgICAgICAgICBmbHVzaFN5bmNXb3JrQWNyb3NzUm9vdHNfaW1wbCgwLCBmYWxzZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1ha2VFcnJvckluZm8oY29tcG9uZW50U3RhY2spIHsKICAgICAgICBjb21wb25lbnRTdGFjayA9IHsgY29tcG9uZW50U3RhY2sgfTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29tcG9uZW50U3RhY2ssICJkaWdlc3QiLCB7CiAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICdZb3UgYXJlIGFjY2Vzc2luZyAiZGlnZXN0IiBmcm9tIHRoZSBlcnJvckluZm8gb2JqZWN0IHBhc3NlZCB0byBvblJlY292ZXJhYmxlRXJyb3IuIFRoaXMgcHJvcGVydHkgaXMgbm8gbG9uZ2VyIHByb3ZpZGVkIGFzIHBhcnQgb2YgZXJyb3JJbmZvIGJ1dCBjYW4gYmUgYWNjZXNzZWQgYXMgYSBwcm9wZXJ0eSBvZiB0aGUgRXJyb3IgaW5zdGFuY2UgaXRzZWxmLicKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICByZXR1cm4gY29tcG9uZW50U3RhY2s7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVsZWFzZVJvb3RQb29sZWRDYWNoZShyb290MiwgcmVtYWluaW5nTGFuZXMpIHsKICAgICAgICAwID09PSAocm9vdDIucG9vbGVkQ2FjaGVMYW5lcyAmPSByZW1haW5pbmdMYW5lcykgJiYgKHJlbWFpbmluZ0xhbmVzID0gcm9vdDIucG9vbGVkQ2FjaGUsIG51bGwgIT0gcmVtYWluaW5nTGFuZXMgJiYgKHJvb3QyLnBvb2xlZENhY2hlID0gbnVsbCwgcmVsZWFzZUNhY2hlKHJlbWFpbmluZ0xhbmVzKSkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGZsdXNoUGVuZGluZ0VmZmVjdHMoKSB7CiAgICAgICAgZmx1c2hNdXRhdGlvbkVmZmVjdHMoKTsKICAgICAgICBmbHVzaExheW91dEVmZmVjdHMoKTsKICAgICAgICBmbHVzaFNwYXduZWRXb3JrKCk7CiAgICAgICAgcmV0dXJuIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBmbHVzaFBhc3NpdmVFZmZlY3RzKCkgewogICAgICAgIGlmIChwZW5kaW5nRWZmZWN0c1N0YXR1cyAhPT0gUEVORElOR19QQVNTSVZFX1BIQVNFKSByZXR1cm4gZmFsc2U7CiAgICAgICAgdmFyIHJvb3QyID0gcGVuZGluZ0VmZmVjdHNSb290LCByZW1haW5pbmdMYW5lcyA9IHBlbmRpbmdFZmZlY3RzUmVtYWluaW5nTGFuZXM7CiAgICAgICAgcGVuZGluZ0VmZmVjdHNSZW1haW5pbmdMYW5lcyA9IDA7CiAgICAgICAgdmFyIHJlbmRlclByaW9yaXR5ID0gbGFuZXNUb0V2ZW50UHJpb3JpdHkocGVuZGluZ0VmZmVjdHNMYW5lcyksIHByaW9yaXR5ID0gMCA9PT0gRGVmYXVsdEV2ZW50UHJpb3JpdHkgfHwgRGVmYXVsdEV2ZW50UHJpb3JpdHkgPiByZW5kZXJQcmlvcml0eSA/IERlZmF1bHRFdmVudFByaW9yaXR5IDogcmVuZGVyUHJpb3JpdHk7CiAgICAgICAgcmVuZGVyUHJpb3JpdHkgPSBSZWFjdFNoYXJlZEludGVybmFscy5UOwogICAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucDsKICAgICAgICB0cnkgewogICAgICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IHByaW9yaXR5OwogICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IG51bGw7CiAgICAgICAgICB2YXIgdHJhbnNpdGlvbnMgPSBwZW5kaW5nUGFzc2l2ZVRyYW5zaXRpb25zOwogICAgICAgICAgcGVuZGluZ1Bhc3NpdmVUcmFuc2l0aW9ucyA9IG51bGw7CiAgICAgICAgICBwcmlvcml0eSA9IHBlbmRpbmdFZmZlY3RzUm9vdDsKICAgICAgICAgIHZhciBsYW5lcyA9IHBlbmRpbmdFZmZlY3RzTGFuZXM7CiAgICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IE5PX1BFTkRJTkdfRUZGRUNUUzsKICAgICAgICAgIHBlbmRpbmdGaW5pc2hlZFdvcmsgPSBwZW5kaW5nRWZmZWN0c1Jvb3QgPSBudWxsOwogICAgICAgICAgcGVuZGluZ0VmZmVjdHNMYW5lcyA9IDA7CiAgICAgICAgICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KQogICAgICAgICAgICB0aHJvdyBFcnJvcigiQ2Fubm90IGZsdXNoIHBhc3NpdmUgZWZmZWN0cyB3aGlsZSBhbHJlYWR5IHJlbmRlcmluZy4iKTsKICAgICAgICAgIHNldEN1cnJlbnRUcmFja0Zyb21MYW5lcyhsYW5lcyk7CiAgICAgICAgICBpc0ZsdXNoaW5nUGFzc2l2ZUVmZmVjdHMgPSB0cnVlOwogICAgICAgICAgZGlkU2NoZWR1bGVVcGRhdGVEdXJpbmdQYXNzaXZlRWZmZWN0cyA9IGZhbHNlOwogICAgICAgICAgdmFyIHBhc3NpdmVFZmZlY3RTdGFydFRpbWUgPSAwOwogICAgICAgICAgY29tbWl0RXJyb3JzID0gbnVsbDsKICAgICAgICAgIHBhc3NpdmVFZmZlY3RTdGFydFRpbWUgPSBub3ckMSgpOwogICAgICAgICAgaWYgKHBlbmRpbmdEZWxheWVkQ29tbWl0UmVhc29uID09PSBBTklNQVRJT05fU1RBUlRFRF9DT01NSVQpCiAgICAgICAgICAgIGxvZ0FuaW1hdGluZ1BoYXNlKAogICAgICAgICAgICAgIGNvbW1pdEVuZFRpbWUsCiAgICAgICAgICAgICAgcGFzc2l2ZUVmZmVjdFN0YXJ0VGltZSwKICAgICAgICAgICAgICBhbmltYXRpbmdUYXNrCiAgICAgICAgICAgICk7CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdmFyIHN0YXJ0VGltZSA9IGNvbW1pdEVuZFRpbWUsIGVuZFRpbWUgPSBwYXNzaXZlRWZmZWN0U3RhcnRUaW1lLCBkZWxheWVkVW50aWxQYWludCA9IHBlbmRpbmdEZWxheWVkQ29tbWl0UmVhc29uID09PSBERUxBWUVEX1BBU1NJVkVfQ09NTUlUOwogICAgICAgICAgICAhc3VwcG9ydHNVc2VyVGltaW5nIHx8IGVuZFRpbWUgPD0gc3RhcnRUaW1lIHx8ICh3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sgPyB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sucnVuKAogICAgICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoCiAgICAgICAgICAgICAgICBjb25zb2xlLAogICAgICAgICAgICAgICAgZGVsYXllZFVudGlsUGFpbnQgPyAiV2FpdGluZyBmb3IgUGFpbnQiIDogIldhaXRpbmciLAogICAgICAgICAgICAgICAgc3RhcnRUaW1lLAogICAgICAgICAgICAgICAgZW5kVGltZSwKICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFjaywKICAgICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAgICAgInNlY29uZGFyeS1saWdodCIKICAgICAgICAgICAgICApCiAgICAgICAgICAgICkgOiBjb25zb2xlLnRpbWVTdGFtcCgKICAgICAgICAgICAgICBkZWxheWVkVW50aWxQYWludCA/ICJXYWl0aW5nIGZvciBQYWludCIgOiAiV2FpdGluZyIsCiAgICAgICAgICAgICAgc3RhcnRUaW1lLAogICAgICAgICAgICAgIGVuZFRpbWUsCiAgICAgICAgICAgICAgY3VycmVudFRyYWNrLAogICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAgICJzZWNvbmRhcnktbGlnaHQiCiAgICAgICAgICAgICkpOwogICAgICAgICAgfQogICAgICAgICAgc3RhcnRUaW1lID0gZXhlY3V0aW9uQ29udGV4dDsKICAgICAgICAgIGV4ZWN1dGlvbkNvbnRleHQgfD0gQ29tbWl0Q29udGV4dDsKICAgICAgICAgIHZhciBmaW5pc2hlZFdvcmsgPSBwcmlvcml0eS5jdXJyZW50OwogICAgICAgICAgcmVzZXRDb21wb25lbnRFZmZlY3RUaW1lcnMoKTsKICAgICAgICAgIGNvbW1pdFBhc3NpdmVVbm1vdW50T25GaWJlcihmaW5pc2hlZFdvcmspOwogICAgICAgICAgdmFyIGZpbmlzaGVkV29yayRqc2NvbXAkMCA9IHByaW9yaXR5LmN1cnJlbnQ7CiAgICAgICAgICBmaW5pc2hlZFdvcmsgPSBwZW5kaW5nRWZmZWN0c1JlbmRlckVuZFRpbWU7CiAgICAgICAgICByZXNldENvbXBvbmVudEVmZmVjdFRpbWVycygpOwogICAgICAgICAgY29tbWl0UGFzc2l2ZU1vdW50T25GaWJlcigKICAgICAgICAgICAgcHJpb3JpdHksCiAgICAgICAgICAgIGZpbmlzaGVkV29yayRqc2NvbXAkMCwKICAgICAgICAgICAgbGFuZXMsCiAgICAgICAgICAgIHRyYW5zaXRpb25zLAogICAgICAgICAgICBmaW5pc2hlZFdvcmsKICAgICAgICAgICk7CiAgICAgICAgICBjb21taXREb3VibGVJbnZva2VFZmZlY3RzSW5ERVYocHJpb3JpdHkpOwogICAgICAgICAgZXhlY3V0aW9uQ29udGV4dCA9IHN0YXJ0VGltZTsKICAgICAgICAgIHZhciBwYXNzaXZlRWZmZWN0c0VuZFRpbWUgPSBub3ckMSgpOwogICAgICAgICAgZmluaXNoZWRXb3JrJGpzY29tcCQwID0gcGFzc2l2ZUVmZmVjdFN0YXJ0VGltZTsKICAgICAgICAgIGZpbmlzaGVkV29yayA9IHdvcmtJblByb2dyZXNzVXBkYXRlVGFzazsKICAgICAgICAgIG51bGwgIT09IGNvbW1pdEVycm9ycyA/IGxvZ0NvbW1pdEVycm9yZWQoCiAgICAgICAgICAgIGZpbmlzaGVkV29yayRqc2NvbXAkMCwKICAgICAgICAgICAgcGFzc2l2ZUVmZmVjdHNFbmRUaW1lLAogICAgICAgICAgICBjb21taXRFcnJvcnMsCiAgICAgICAgICAgIHRydWUsCiAgICAgICAgICAgIGZpbmlzaGVkV29yawogICAgICAgICAgKSA6ICFzdXBwb3J0c1VzZXJUaW1pbmcgfHwgcGFzc2l2ZUVmZmVjdHNFbmRUaW1lIDw9IGZpbmlzaGVkV29yayRqc2NvbXAkMCB8fCAoZmluaXNoZWRXb3JrID8gZmluaXNoZWRXb3JrLnJ1bigKICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZCgKICAgICAgICAgICAgICBjb25zb2xlLAogICAgICAgICAgICAgICJSZW1haW5pbmcgRWZmZWN0cyIsCiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrJGpzY29tcCQwLAogICAgICAgICAgICAgIHBhc3NpdmVFZmZlY3RzRW5kVGltZSwKICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssCiAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsCiAgICAgICAgICAgICAgInNlY29uZGFyeS1kYXJrIgogICAgICAgICAgICApCiAgICAgICAgICApIDogY29uc29sZS50aW1lU3RhbXAoCiAgICAgICAgICAgICJSZW1haW5pbmcgRWZmZWN0cyIsCiAgICAgICAgICAgIGZpbmlzaGVkV29yayRqc2NvbXAkMCwKICAgICAgICAgICAgcGFzc2l2ZUVmZmVjdHNFbmRUaW1lLAogICAgICAgICAgICBjdXJyZW50VHJhY2ssCiAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLAogICAgICAgICAgICAic2Vjb25kYXJ5LWRhcmsiCiAgICAgICAgICApKTsKICAgICAgICAgIGZpbmFsaXplUmVuZGVyKGxhbmVzLCBwYXNzaXZlRWZmZWN0c0VuZFRpbWUpOwogICAgICAgICAgZmx1c2hTeW5jV29ya0Fjcm9zc1Jvb3RzX2ltcGwoMCwgZmFsc2UpOwogICAgICAgICAgZGlkU2NoZWR1bGVVcGRhdGVEdXJpbmdQYXNzaXZlRWZmZWN0cyA/IHByaW9yaXR5ID09PSByb290V2l0aFBhc3NpdmVOZXN0ZWRVcGRhdGVzID8gbmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50KysgOiAobmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMCwgcm9vdFdpdGhQYXNzaXZlTmVzdGVkVXBkYXRlcyA9IHByaW9yaXR5KSA6IG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IDA7CiAgICAgICAgICBkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzID0gaXNGbHVzaGluZ1Bhc3NpdmVFZmZlY3RzID0gZmFsc2U7CiAgICAgICAgICBpZiAoaW5qZWN0ZWRIb29rICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBpbmplY3RlZEhvb2sub25Qb3N0Q29tbWl0RmliZXJSb290KQogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGluamVjdGVkSG9vay5vblBvc3RDb21taXRGaWJlclJvb3QocmVuZGVyZXJJRCwgcHJpb3JpdHkpOwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICBoYXNMb2dnZWRFcnJvciB8fCAoaGFzTG9nZ2VkRXJyb3IgPSB0cnVlLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgIlJlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJW8iLAogICAgICAgICAgICAgICAgZXJyCiAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIHZhciBzdGF0ZU5vZGUgPSBwcmlvcml0eS5jdXJyZW50LnN0YXRlTm9kZTsKICAgICAgICAgIHN0YXRlTm9kZS5lZmZlY3REdXJhdGlvbiA9IDA7CiAgICAgICAgICBzdGF0ZU5vZGUucGFzc2l2ZUVmZmVjdER1cmF0aW9uID0gMDsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gcHJldmlvdXNQcmlvcml0eSwgUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IHJlbmRlclByaW9yaXR5LCByZWxlYXNlUm9vdFBvb2xlZENhY2hlKHJvb3QyLCByZW1haW5pbmdMYW5lcyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhcHR1cmVDb21taXRQaGFzZUVycm9yT25Sb290KHJvb3RGaWJlciwgc291cmNlRmliZXIsIGVycm9yKSB7CiAgICAgICAgc291cmNlRmliZXIgPSBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcihlcnJvciwgc291cmNlRmliZXIpOwogICAgICAgIHJlY29yZEVmZmVjdEVycm9yKHNvdXJjZUZpYmVyKTsKICAgICAgICBzb3VyY2VGaWJlciA9IGNyZWF0ZVJvb3RFcnJvclVwZGF0ZShyb290RmliZXIuc3RhdGVOb2RlLCBzb3VyY2VGaWJlciwgMik7CiAgICAgICAgcm9vdEZpYmVyID0gZW5xdWV1ZVVwZGF0ZShyb290RmliZXIsIHNvdXJjZUZpYmVyLCAyKTsKICAgICAgICBudWxsICE9PSByb290RmliZXIgJiYgKG1hcmtSb290VXBkYXRlZCQxKHJvb3RGaWJlciwgMiksIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290RmliZXIpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihzb3VyY2VGaWJlciwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IpIHsKICAgICAgICBpc1J1bm5pbmdJbnNlcnRpb25FZmZlY3QgPSBmYWxzZTsKICAgICAgICBpZiAoMyA9PT0gc291cmNlRmliZXIudGFnKQogICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3JPblJvb3Qoc291cmNlRmliZXIsIHNvdXJjZUZpYmVyLCBlcnJvcik7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBmb3IgKDsgbnVsbCAhPT0gbmVhcmVzdE1vdW50ZWRBbmNlc3RvcjsgKSB7CiAgICAgICAgICAgIGlmICgzID09PSBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLnRhZykgewogICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yT25Sb290KAogICAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwKICAgICAgICAgICAgICAgIHNvdXJjZUZpYmVyLAogICAgICAgICAgICAgICAgZXJyb3IKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoMSA9PT0gbmVhcmVzdE1vdW50ZWRBbmNlc3Rvci50YWcpIHsKICAgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLnN0YXRlTm9kZTsKICAgICAgICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgfHwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZENhdGNoICYmIChudWxsID09PSBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCB8fCAhbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQuaGFzKGluc3RhbmNlKSkpIHsKICAgICAgICAgICAgICAgIHNvdXJjZUZpYmVyID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIoZXJyb3IsIHNvdXJjZUZpYmVyKTsKICAgICAgICAgICAgICAgIHJlY29yZEVmZmVjdEVycm9yKHNvdXJjZUZpYmVyKTsKICAgICAgICAgICAgICAgIGVycm9yID0gY3JlYXRlQ2xhc3NFcnJvclVwZGF0ZSgyKTsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gZW5xdWV1ZVVwZGF0ZShuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBlcnJvciwgMik7CiAgICAgICAgICAgICAgICBudWxsICE9PSBpbnN0YW5jZSAmJiAoaW5pdGlhbGl6ZUNsYXNzRXJyb3JVcGRhdGUoCiAgICAgICAgICAgICAgICAgIGVycm9yLAogICAgICAgICAgICAgICAgICBpbnN0YW5jZSwKICAgICAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwKICAgICAgICAgICAgICAgICAgc291cmNlRmliZXIKICAgICAgICAgICAgICAgICksIG1hcmtSb290VXBkYXRlZCQxKGluc3RhbmNlLCAyKSwgZW5zdXJlUm9vdElzU2NoZWR1bGVkKGluc3RhbmNlKSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IgPSBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLnJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJJbnRlcm5hbCBSZWFjdCBlcnJvcjogQXR0ZW1wdGVkIHRvIGNhcHR1cmUgYSBjb21taXQgcGhhc2UgZXJyb3IgaW5zaWRlIGEgZGV0YWNoZWQgdHJlZS4gVGhpcyBpbmRpY2F0ZXMgYSBidWcgaW4gUmVhY3QuIFBvdGVudGlhbCBjYXVzZXMgaW5jbHVkZSBkZWxldGluZyB0aGUgc2FtZSBmaWJlciBtb3JlIHRoYW4gb25jZSwgY29tbWl0dGluZyBhbiBhbHJlYWR5LWZpbmlzaGVkIHRyZWUsIG9yIGFuIGluY29uc2lzdGVudCByZXR1cm4gcG9pbnRlci5cblxuRXJyb3IgbWVzc2FnZTpcblxuJXMiLAogICAgICAgICAgICBlcnJvcgogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYXR0YWNoUGluZ0xpc3RlbmVyKHJvb3QyLCB3YWtlYWJsZSwgbGFuZXMpIHsKICAgICAgICB2YXIgcGluZ0NhY2hlID0gcm9vdDIucGluZ0NhY2hlOwogICAgICAgIGlmIChudWxsID09PSBwaW5nQ2FjaGUpIHsKICAgICAgICAgIHBpbmdDYWNoZSA9IHJvb3QyLnBpbmdDYWNoZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAoKTsKICAgICAgICAgIHZhciB0aHJlYWRJRHMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgICAgcGluZ0NhY2hlLnNldCh3YWtlYWJsZSwgdGhyZWFkSURzKTsKICAgICAgICB9IGVsc2UKICAgICAgICAgIHRocmVhZElEcyA9IHBpbmdDYWNoZS5nZXQod2FrZWFibGUpLCB2b2lkIDAgPT09IHRocmVhZElEcyAmJiAodGhyZWFkSURzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSwgcGluZ0NhY2hlLnNldCh3YWtlYWJsZSwgdGhyZWFkSURzKSk7CiAgICAgICAgdGhyZWFkSURzLmhhcyhsYW5lcykgfHwgKHdvcmtJblByb2dyZXNzUm9vdERpZEF0dGFjaFBpbmdMaXN0ZW5lciA9IHRydWUsIHRocmVhZElEcy5hZGQobGFuZXMpLCBwaW5nQ2FjaGUgPSBwaW5nU3VzcGVuZGVkUm9vdC5iaW5kKG51bGwsIHJvb3QyLCB3YWtlYWJsZSwgbGFuZXMpLCBpc0RldlRvb2xzUHJlc2VudCAmJiByZXN0b3JlUGVuZGluZ1VwZGF0ZXJzKHJvb3QyLCBsYW5lcyksIHdha2VhYmxlLnRoZW4ocGluZ0NhY2hlLCBwaW5nQ2FjaGUpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwaW5nU3VzcGVuZGVkUm9vdChyb290Miwgd2FrZWFibGUsIHBpbmdlZExhbmVzKSB7CiAgICAgICAgdmFyIHBpbmdDYWNoZSA9IHJvb3QyLnBpbmdDYWNoZTsKICAgICAgICBudWxsICE9PSBwaW5nQ2FjaGUgJiYgcGluZ0NhY2hlLmRlbGV0ZSh3YWtlYWJsZSk7CiAgICAgICAgcm9vdDIucGluZ2VkTGFuZXMgfD0gcm9vdDIuc3VzcGVuZGVkTGFuZXMgJiBwaW5nZWRMYW5lczsKICAgICAgICByb290Mi53YXJtTGFuZXMgJj0gfnBpbmdlZExhbmVzOwogICAgICAgIDAgIT09IChwaW5nZWRMYW5lcyAmIDEyNykgPyAwID4gYmxvY2tpbmdVcGRhdGVUaW1lICYmIChibG9ja2luZ0NsYW1wVGltZSA9IGJsb2NraW5nVXBkYXRlVGltZSA9IG5vdygpLCBibG9ja2luZ1VwZGF0ZVRhc2sgPSBjcmVhdGVUYXNrKCJQcm9taXNlIFJlc29sdmVkIiksIGJsb2NraW5nVXBkYXRlVHlwZSA9IFBJTkdFRF9VUERBVEUpIDogMCAhPT0gKHBpbmdlZExhbmVzICYgNDE5NDA0OCkgJiYgMCA+IHRyYW5zaXRpb25VcGRhdGVUaW1lICYmICh0cmFuc2l0aW9uQ2xhbXBUaW1lID0gdHJhbnNpdGlvblVwZGF0ZVRpbWUgPSBub3coKSwgdHJhbnNpdGlvblVwZGF0ZVRhc2sgPSBjcmVhdGVUYXNrKCJQcm9taXNlIFJlc29sdmVkIiksIHRyYW5zaXRpb25VcGRhdGVUeXBlID0gUElOR0VEX1VQREFURSk7CiAgICAgICAgaXNDb25jdXJyZW50QWN0RW52aXJvbm1lbnQoKSAmJiBudWxsID09PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkEgc3VzcGVuZGVkIHJlc291cmNlIGZpbmlzaGVkIGxvYWRpbmcgaW5zaWRlIGEgdGVzdCwgYnV0IHRoZSBldmVudCB3YXMgbm90IHdyYXBwZWQgaW4gYWN0KC4uLikuXG5cbldoZW4gdGVzdGluZywgY29kZSB0aGF0IHJlc29sdmVzIHN1c3BlbmRlZCBkYXRhIHNob3VsZCBiZSB3cmFwcGVkIGludG8gYWN0KC4uLik6XG5cbmFjdCgoKSA9PiB7XG4gIC8qIGZpbmlzaCBsb2FkaW5nIHN1c3BlbmRlZCBkYXRhICovXG59KTtcbi8qIGFzc2VydCBvbiB0aGUgb3V0cHV0ICovXG5cblRoaXMgZW5zdXJlcyB0aGF0IHlvdSdyZSB0ZXN0aW5nIHRoZSBiZWhhdmlvciB0aGUgdXNlciB3b3VsZCBzZWUgaW4gdGhlIGJyb3dzZXIuIExlYXJuIG1vcmUgYXQgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay93cmFwLXRlc3RzLXdpdGgtYWN0IgogICAgICAgICk7CiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290ID09PSByb290MiAmJiAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiBwaW5nZWRMYW5lcykgPT09IHBpbmdlZExhbmVzICYmICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290U3VzcGVuZGVkV2l0aERlbGF5IHx8IHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RTdXNwZW5kZWQgJiYgKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYgNjI5MTQ1NjApID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmJiBub3ckMSgpIC0gZ2xvYmFsTW9zdFJlY2VudEZhbGxiYWNrVGltZSA8IEZBTExCQUNLX1RIUk9UVExFX01TID8gKGV4ZWN1dGlvbkNvbnRleHQgJiBSZW5kZXJDb250ZXh0KSA9PT0gTm9Db250ZXh0ICYmIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QyLCAwKSA6IHdvcmtJblByb2dyZXNzUm9vdFBpbmdlZExhbmVzIHw9IHBpbmdlZExhbmVzLCB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJldHJ5TGFuZXMgPT09IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYmICh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJldHJ5TGFuZXMgPSAwKSk7CiAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QyKTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZXRyeVRpbWVkT3V0Qm91bmRhcnkoYm91bmRhcnlGaWJlciwgcmV0cnlMYW5lKSB7CiAgICAgICAgMCA9PT0gcmV0cnlMYW5lICYmIChyZXRyeUxhbmUgPSBjbGFpbU5leHRSZXRyeUxhbmUoKSk7CiAgICAgICAgYm91bmRhcnlGaWJlciA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShib3VuZGFyeUZpYmVyLCByZXRyeUxhbmUpOwogICAgICAgIG51bGwgIT09IGJvdW5kYXJ5RmliZXIgJiYgKG1hcmtSb290VXBkYXRlZCQxKGJvdW5kYXJ5RmliZXIsIHJldHJ5TGFuZSksIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChib3VuZGFyeUZpYmVyKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmV0cnlEZWh5ZHJhdGVkU3VzcGVuc2VCb3VuZGFyeShib3VuZGFyeUZpYmVyKSB7CiAgICAgICAgdmFyIHN1c3BlbnNlU3RhdGUgPSBib3VuZGFyeUZpYmVyLm1lbW9pemVkU3RhdGUsIHJldHJ5TGFuZSA9IDA7CiAgICAgICAgbnVsbCAhPT0gc3VzcGVuc2VTdGF0ZSAmJiAocmV0cnlMYW5lID0gc3VzcGVuc2VTdGF0ZS5yZXRyeUxhbmUpOwogICAgICAgIHJldHJ5VGltZWRPdXRCb3VuZGFyeShib3VuZGFyeUZpYmVyLCByZXRyeUxhbmUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc29sdmVSZXRyeVdha2VhYmxlKGJvdW5kYXJ5RmliZXIsIHdha2VhYmxlKSB7CiAgICAgICAgdmFyIHJldHJ5TGFuZSA9IDA7CiAgICAgICAgc3dpdGNoIChib3VuZGFyeUZpYmVyLnRhZykgewogICAgICAgICAgY2FzZSAzMToKICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIHZhciByZXRyeUNhY2hlID0gYm91bmRhcnlGaWJlci5zdGF0ZU5vZGU7CiAgICAgICAgICAgIHZhciBzdXNwZW5zZVN0YXRlID0gYm91bmRhcnlGaWJlci5tZW1vaXplZFN0YXRlOwogICAgICAgICAgICBudWxsICE9PSBzdXNwZW5zZVN0YXRlICYmIChyZXRyeUxhbmUgPSBzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxOToKICAgICAgICAgICAgcmV0cnlDYWNoZSA9IGJvdW5kYXJ5RmliZXIuc3RhdGVOb2RlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgIHJldHJ5Q2FjaGUgPSBib3VuZGFyeUZpYmVyLnN0YXRlTm9kZS5fcmV0cnlDYWNoZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAiUGluZ2VkIHVua25vd24gc3VzcGVuc2UgYm91bmRhcnkgdHlwZS4gVGhpcyBpcyBwcm9iYWJseSBhIGJ1ZyBpbiBSZWFjdC4iCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIG51bGwgIT09IHJldHJ5Q2FjaGUgJiYgcmV0cnlDYWNoZS5kZWxldGUod2FrZWFibGUpOwogICAgICAgIHJldHJ5VGltZWRPdXRCb3VuZGFyeShib3VuZGFyeUZpYmVyLCByZXRyeUxhbmUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VBbmREb3VibGVJbnZva2VFZmZlY3RzSW5ERVYocm9vdCRqc2NvbXAkMCwgcGFyZW50RmliZXIsIGlzSW5TdHJpY3RNb2RlKSB7CiAgICAgICAgaWYgKDAgIT09IChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiA2NzExNzA1NikpCiAgICAgICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApIHsKICAgICAgICAgICAgdmFyIHJvb3QyID0gcm9vdCRqc2NvbXAkMCwgZmliZXIgPSBwYXJlbnRGaWJlciwgaXNTdHJpY3RNb2RlRmliZXIgPSBmaWJlci50eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOwogICAgICAgICAgICBpc1N0cmljdE1vZGVGaWJlciA9IGlzSW5TdHJpY3RNb2RlIHx8IGlzU3RyaWN0TW9kZUZpYmVyOwogICAgICAgICAgICAyMiAhPT0gZmliZXIudGFnID8gZmliZXIuZmxhZ3MgJiA2NzEwODg2NCA/IGlzU3RyaWN0TW9kZUZpYmVyICYmIHJ1bldpdGhGaWJlckluREVWKAogICAgICAgICAgICAgIGZpYmVyLAogICAgICAgICAgICAgIGRvdWJsZUludm9rZUVmZmVjdHNPbkZpYmVyLAogICAgICAgICAgICAgIHJvb3QyLAogICAgICAgICAgICAgIGZpYmVyCiAgICAgICAgICAgICkgOiByZWN1cnNpdmVseVRyYXZlcnNlQW5kRG91YmxlSW52b2tlRWZmZWN0c0luREVWKAogICAgICAgICAgICAgIHJvb3QyLAogICAgICAgICAgICAgIGZpYmVyLAogICAgICAgICAgICAgIGlzU3RyaWN0TW9kZUZpYmVyCiAgICAgICAgICAgICkgOiBudWxsID09PSBmaWJlci5tZW1vaXplZFN0YXRlICYmIChpc1N0cmljdE1vZGVGaWJlciAmJiBmaWJlci5mbGFncyAmIDgxOTIgPyBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgICBmaWJlciwKICAgICAgICAgICAgICBkb3VibGVJbnZva2VFZmZlY3RzT25GaWJlciwKICAgICAgICAgICAgICByb290MiwKICAgICAgICAgICAgICBmaWJlcgogICAgICAgICAgICApIDogZmliZXIuc3VidHJlZUZsYWdzICYgNjcxMDg4NjQgJiYgcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgZmliZXIsCiAgICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZUFuZERvdWJsZUludm9rZUVmZmVjdHNJbkRFViwKICAgICAgICAgICAgICByb290MiwKICAgICAgICAgICAgICBmaWJlciwKICAgICAgICAgICAgICBpc1N0cmljdE1vZGVGaWJlcgogICAgICAgICAgICApKTsKICAgICAgICAgICAgcGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nOwogICAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRvdWJsZUludm9rZUVmZmVjdHNPbkZpYmVyKHJvb3QyLCBmaWJlcikgewogICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpOwogICAgICAgIHRyeSB7CiAgICAgICAgICBkaXNhcHBlYXJMYXlvdXRFZmZlY3RzKGZpYmVyKSwgZGlzY29ubmVjdFBhc3NpdmVFZmZlY3QoZmliZXIpLCByZWFwcGVhckxheW91dEVmZmVjdHMocm9vdDIsIGZpYmVyLmFsdGVybmF0ZSwgZmliZXIsIGZhbHNlKSwgcmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMocm9vdDIsIGZpYmVyLCAwLCBudWxsLCBmYWxzZSwgMCk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKGZhbHNlKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0RG91YmxlSW52b2tlRWZmZWN0c0luREVWKHJvb3QyKSB7CiAgICAgICAgdmFyIGRvdWJsZUludm9rZUVmZmVjdHMgPSB0cnVlOwogICAgICAgIHJvb3QyLmN1cnJlbnQubW9kZSAmIChTdHJpY3RMZWdhY3lNb2RlIHwgU3RyaWN0RWZmZWN0c01vZGUpIHx8IChkb3VibGVJbnZva2VFZmZlY3RzID0gZmFsc2UpOwogICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VBbmREb3VibGVJbnZva2VFZmZlY3RzSW5ERVYoCiAgICAgICAgICByb290MiwKICAgICAgICAgIHJvb3QyLmN1cnJlbnQsCiAgICAgICAgICBkb3VibGVJbnZva2VFZmZlY3RzCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB3YXJuQWJvdXRVcGRhdGVPbk5vdFlldE1vdW50ZWRGaWJlckluREVWKGZpYmVyKSB7CiAgICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgPT09IE5vQ29udGV4dCkgewogICAgICAgICAgdmFyIHRhZyA9IGZpYmVyLnRhZzsKICAgICAgICAgIGlmICgzID09PSB0YWcgfHwgMSA9PT0gdGFnIHx8IDAgPT09IHRhZyB8fCAxMSA9PT0gdGFnIHx8IDE0ID09PSB0YWcgfHwgMTUgPT09IHRhZykgewogICAgICAgICAgICB0YWcgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCAiUmVhY3RDb21wb25lbnQiOwogICAgICAgICAgICBpZiAobnVsbCAhPT0gZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudCkgewogICAgICAgICAgICAgIGlmIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50Lmhhcyh0YWcpKSByZXR1cm47CiAgICAgICAgICAgICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudC5hZGQodGFnKTsKICAgICAgICAgICAgfSBlbHNlIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvck5vdFlldE1vdW50ZWRDb21wb25lbnQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbdGFnXSk7CiAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKGZpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgIkNhbid0IHBlcmZvcm0gYSBSZWFjdCBzdGF0ZSB1cGRhdGUgb24gYSBjb21wb25lbnQgdGhhdCBoYXNuJ3QgbW91bnRlZCB5ZXQuIFRoaXMgaW5kaWNhdGVzIHRoYXQgeW91IGhhdmUgYSBzaWRlLWVmZmVjdCBpbiB5b3VyIHJlbmRlciBmdW5jdGlvbiB0aGF0IGFzeW5jaHJvbm91c2x5IHRyaWVzIHRvIHVwZGF0ZSB0aGUgY29tcG9uZW50LiBNb3ZlIHRoaXMgd29yayB0byB1c2VFZmZlY3QgaW5zdGVhZC4iCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc3RvcmVQZW5kaW5nVXBkYXRlcnMocm9vdDIsIGxhbmVzKSB7CiAgICAgICAgaXNEZXZUb29sc1ByZXNlbnQgJiYgcm9vdDIubWVtb2l6ZWRVcGRhdGVycy5mb3JFYWNoKGZ1bmN0aW9uKHNjaGVkdWxpbmdGaWJlcikgewogICAgICAgICAgYWRkRmliZXJUb0xhbmVzTWFwKHJvb3QyLCBzY2hlZHVsaW5nRmliZXIsIGxhbmVzKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzY2hlZHVsZUNhbGxiYWNrJDEocHJpb3JpdHlMZXZlbCwgY2FsbGJhY2spIHsKICAgICAgICB2YXIgYWN0UXVldWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZTsKICAgICAgICByZXR1cm4gbnVsbCAhPT0gYWN0UXVldWUgPyAoYWN0UXVldWUucHVzaChjYWxsYmFjayksIGZha2VBY3RDYWxsYmFja05vZGUkMSkgOiBzY2hlZHVsZUNhbGxiYWNrJDMocHJpb3JpdHlMZXZlbCwgY2FsbGJhY2spOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHdhcm5JZlVwZGF0ZXNOb3RXcmFwcGVkV2l0aEFjdERFVihmaWJlcikgewogICAgICAgIGlzQ29uY3VycmVudEFjdEVudmlyb25tZW50KCkgJiYgbnVsbCA9PT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgJiYgcnVuV2l0aEZpYmVySW5ERVYoZmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIkFuIHVwZGF0ZSB0byAlcyBpbnNpZGUgYSB0ZXN0IHdhcyBub3Qgd3JhcHBlZCBpbiBhY3QoLi4uKS5cblxuV2hlbiB0ZXN0aW5nLCBjb2RlIHRoYXQgY2F1c2VzIFJlYWN0IHN0YXRlIHVwZGF0ZXMgc2hvdWxkIGJlIHdyYXBwZWQgaW50byBhY3QoLi4uKTpcblxuYWN0KCgpID0+IHtcbiAgLyogZmlyZSBldmVudHMgdGhhdCB1cGRhdGUgc3RhdGUgKi9cbn0pO1xuLyogYXNzZXJ0IG9uIHRoZSBvdXRwdXQgKi9cblxuVGhpcyBlbnN1cmVzIHRoYXQgeW91J3JlIHRlc3RpbmcgdGhlIGJlaGF2aW9yIHRoZSB1c2VyIHdvdWxkIHNlZSBpbiB0aGUgYnJvd3Nlci4gTGVhcm4gbW9yZSBhdCBodHRwczovL3JlYWN0LmRldi9saW5rL3dyYXAtdGVzdHMtd2l0aC1hY3QiLAogICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKQogICAgICAgICAgKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdDIpIHsKICAgICAgICByb290MiAhPT0gbGFzdFNjaGVkdWxlZFJvb3QgJiYgbnVsbCA9PT0gcm9vdDIubmV4dCAmJiAobnVsbCA9PT0gbGFzdFNjaGVkdWxlZFJvb3QgPyBmaXJzdFNjaGVkdWxlZFJvb3QgPSBsYXN0U2NoZWR1bGVkUm9vdCA9IHJvb3QyIDogbGFzdFNjaGVkdWxlZFJvb3QgPSBsYXN0U2NoZWR1bGVkUm9vdC5uZXh0ID0gcm9vdDIpOwogICAgICAgIG1pZ2h0SGF2ZVBlbmRpbmdTeW5jV29yayA9IHRydWU7CiAgICAgICAgbnVsbCAhPT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgPyBkaWRTY2hlZHVsZU1pY3JvdGFza19hY3QgfHwgKGRpZFNjaGVkdWxlTWljcm90YXNrX2FjdCA9IHRydWUsIHNjaGVkdWxlSW1tZWRpYXRlUm9vdFNjaGVkdWxlVGFzaygpKSA6IGRpZFNjaGVkdWxlTWljcm90YXNrIHx8IChkaWRTY2hlZHVsZU1pY3JvdGFzayA9IHRydWUsIHNjaGVkdWxlSW1tZWRpYXRlUm9vdFNjaGVkdWxlVGFzaygpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBmbHVzaFN5bmNXb3JrQWNyb3NzUm9vdHNfaW1wbChzeW5jVHJhbnNpdGlvbkxhbmVzLCBvbmx5TGVnYWN5KSB7CiAgICAgICAgaWYgKCFpc0ZsdXNoaW5nV29yayAmJiBtaWdodEhhdmVQZW5kaW5nU3luY1dvcmspIHsKICAgICAgICAgIGlzRmx1c2hpbmdXb3JrID0gdHJ1ZTsKICAgICAgICAgIGRvIHsKICAgICAgICAgICAgdmFyIGRpZFBlcmZvcm1Tb21lV29yayA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKHZhciByb290MiA9IGZpcnN0U2NoZWR1bGVkUm9vdDsgbnVsbCAhPT0gcm9vdDI7ICkgewogICAgICAgICAgICAgIGlmICghb25seUxlZ2FjeSkKICAgICAgICAgICAgICAgIGlmICgwICE9PSBzeW5jVHJhbnNpdGlvbkxhbmVzKSB7CiAgICAgICAgICAgICAgICAgIHZhciBwZW5kaW5nTGFuZXMgPSByb290Mi5wZW5kaW5nTGFuZXM7CiAgICAgICAgICAgICAgICAgIGlmICgwID09PSBwZW5kaW5nTGFuZXMpIHZhciBuZXh0TGFuZXMgPSAwOwogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YXIgc3VzcGVuZGVkTGFuZXMgPSByb290Mi5zdXNwZW5kZWRMYW5lcywgcGluZ2VkTGFuZXMgPSByb290Mi5waW5nZWRMYW5lczsKICAgICAgICAgICAgICAgICAgICBuZXh0TGFuZXMgPSAoMSA8PCAzMSAtIGNsejMyKDQyIHwgc3luY1RyYW5zaXRpb25MYW5lcykgKyAxKSAtIDE7CiAgICAgICAgICAgICAgICAgICAgbmV4dExhbmVzICY9IHBlbmRpbmdMYW5lcyAmIH4oc3VzcGVuZGVkTGFuZXMgJiB+cGluZ2VkTGFuZXMpOwogICAgICAgICAgICAgICAgICAgIG5leHRMYW5lcyA9IG5leHRMYW5lcyAmIDIwMTMyNjc0MSA/IG5leHRMYW5lcyAmIDIwMTMyNjc0MSB8IDEgOiBuZXh0TGFuZXMgPyBuZXh0TGFuZXMgfCAyIDogMDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAwICE9PSBuZXh0TGFuZXMgJiYgKGRpZFBlcmZvcm1Tb21lV29yayA9IHRydWUsIHBlcmZvcm1TeW5jV29ya09uUm9vdChyb290MiwgbmV4dExhbmVzKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgbmV4dExhbmVzID0gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMsIG5leHRMYW5lcyA9IGdldE5leHRMYW5lcygKICAgICAgICAgICAgICAgICAgICByb290MiwKICAgICAgICAgICAgICAgICAgICByb290MiA9PT0gd29ya0luUHJvZ3Jlc3NSb290ID8gbmV4dExhbmVzIDogMCwKICAgICAgICAgICAgICAgICAgICBudWxsICE9PSByb290Mi5jYW5jZWxQZW5kaW5nQ29tbWl0IHx8IHJvb3QyLnRpbWVvdXRIYW5kbGUgIT09IG5vVGltZW91dAogICAgICAgICAgICAgICAgICApLCAwID09PSAobmV4dExhbmVzICYgMykgfHwgY2hlY2tJZlJvb3RJc1ByZXJlbmRlcmluZyhyb290MiwgbmV4dExhbmVzKSB8fCAoZGlkUGVyZm9ybVNvbWVXb3JrID0gdHJ1ZSwgcGVyZm9ybVN5bmNXb3JrT25Sb290KHJvb3QyLCBuZXh0TGFuZXMpKTsKICAgICAgICAgICAgICByb290MiA9IHJvb3QyLm5leHQ7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gd2hpbGUgKGRpZFBlcmZvcm1Tb21lV29yayk7CiAgICAgICAgICBpc0ZsdXNoaW5nV29yayA9IGZhbHNlOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBwcm9jZXNzUm9vdFNjaGVkdWxlSW5JbW1lZGlhdGVUYXNrKCkgewogICAgICAgIHNjaGVkdWxlckV2ZW50ID0gd2luZG93LmV2ZW50OwogICAgICAgIHByb2Nlc3NSb290U2NoZWR1bGVJbk1pY3JvdGFzaygpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHByb2Nlc3NSb290U2NoZWR1bGVJbk1pY3JvdGFzaygpIHsKICAgICAgICBtaWdodEhhdmVQZW5kaW5nU3luY1dvcmsgPSBkaWRTY2hlZHVsZU1pY3JvdGFza19hY3QgPSBkaWRTY2hlZHVsZU1pY3JvdGFzayA9IGZhbHNlOwogICAgICAgIHZhciBzeW5jVHJhbnNpdGlvbkxhbmVzID0gMDsKICAgICAgICAwICE9PSBjdXJyZW50RXZlbnRUcmFuc2l0aW9uTGFuZSAmJiBzaG91bGRBdHRlbXB0RWFnZXJUcmFuc2l0aW9uKCkgJiYgKHN5bmNUcmFuc2l0aW9uTGFuZXMgPSBjdXJyZW50RXZlbnRUcmFuc2l0aW9uTGFuZSk7CiAgICAgICAgZm9yICh2YXIgY3VycmVudFRpbWUgPSBub3ckMSgpLCBwcmV2ID0gbnVsbCwgcm9vdDIgPSBmaXJzdFNjaGVkdWxlZFJvb3Q7IG51bGwgIT09IHJvb3QyOyApIHsKICAgICAgICAgIHZhciBuZXh0ID0gcm9vdDIubmV4dCwgbmV4dExhbmVzID0gc2NoZWR1bGVUYXNrRm9yUm9vdER1cmluZ01pY3JvdGFzayhyb290MiwgY3VycmVudFRpbWUpOwogICAgICAgICAgaWYgKDAgPT09IG5leHRMYW5lcykKICAgICAgICAgICAgcm9vdDIubmV4dCA9IG51bGwsIG51bGwgPT09IHByZXYgPyBmaXJzdFNjaGVkdWxlZFJvb3QgPSBuZXh0IDogcHJldi5uZXh0ID0gbmV4dCwgbnVsbCA9PT0gbmV4dCAmJiAobGFzdFNjaGVkdWxlZFJvb3QgPSBwcmV2KTsKICAgICAgICAgIGVsc2UgaWYgKHByZXYgPSByb290MiwgMCAhPT0gc3luY1RyYW5zaXRpb25MYW5lcyB8fCAwICE9PSAobmV4dExhbmVzICYgMykpCiAgICAgICAgICAgIG1pZ2h0SGF2ZVBlbmRpbmdTeW5jV29yayA9IHRydWU7CiAgICAgICAgICByb290MiA9IG5leHQ7CiAgICAgICAgfQogICAgICAgIHBlbmRpbmdFZmZlY3RzU3RhdHVzICE9PSBOT19QRU5ESU5HX0VGRkVDVFMgJiYgcGVuZGluZ0VmZmVjdHNTdGF0dXMgIT09IFBFTkRJTkdfUEFTU0lWRV9QSEFTRSB8fCBmbHVzaFN5bmNXb3JrQWNyb3NzUm9vdHNfaW1wbChzeW5jVHJhbnNpdGlvbkxhbmVzLCBmYWxzZSk7CiAgICAgICAgMCAhPT0gY3VycmVudEV2ZW50VHJhbnNpdGlvbkxhbmUgJiYgKGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lID0gMCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2NoZWR1bGVUYXNrRm9yUm9vdER1cmluZ01pY3JvdGFzayhyb290MiwgY3VycmVudFRpbWUpIHsKICAgICAgICBmb3IgKHZhciBzdXNwZW5kZWRMYW5lcyA9IHJvb3QyLnN1c3BlbmRlZExhbmVzLCBwaW5nZWRMYW5lcyA9IHJvb3QyLnBpbmdlZExhbmVzLCBleHBpcmF0aW9uVGltZXMgPSByb290Mi5leHBpcmF0aW9uVGltZXMsIGxhbmVzID0gcm9vdDIucGVuZGluZ0xhbmVzICYgLTYyOTE0NTYxOyAwIDwgbGFuZXM7ICkgewogICAgICAgICAgdmFyIGluZGV4ID0gMzEgLSBjbHozMihsYW5lcyksIGxhbmUgPSAxIDw8IGluZGV4LCBleHBpcmF0aW9uVGltZSA9IGV4cGlyYXRpb25UaW1lc1tpbmRleF07CiAgICAgICAgICBpZiAoLTEgPT09IGV4cGlyYXRpb25UaW1lKSB7CiAgICAgICAgICAgIGlmICgwID09PSAobGFuZSAmIHN1c3BlbmRlZExhbmVzKSB8fCAwICE9PSAobGFuZSAmIHBpbmdlZExhbmVzKSkKICAgICAgICAgICAgICBleHBpcmF0aW9uVGltZXNbaW5kZXhdID0gY29tcHV0ZUV4cGlyYXRpb25UaW1lKGxhbmUsIGN1cnJlbnRUaW1lKTsKICAgICAgICAgIH0gZWxzZSBleHBpcmF0aW9uVGltZSA8PSBjdXJyZW50VGltZSAmJiAocm9vdDIuZXhwaXJlZExhbmVzIHw9IGxhbmUpOwogICAgICAgICAgbGFuZXMgJj0gfmxhbmU7CiAgICAgICAgfQogICAgICAgIGN1cnJlbnRUaW1lID0gd29ya0luUHJvZ3Jlc3NSb290OwogICAgICAgIHN1c3BlbmRlZExhbmVzID0gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXM7CiAgICAgICAgc3VzcGVuZGVkTGFuZXMgPSBnZXROZXh0TGFuZXMoCiAgICAgICAgICByb290MiwKICAgICAgICAgIHJvb3QyID09PSBjdXJyZW50VGltZSA/IHN1c3BlbmRlZExhbmVzIDogMCwKICAgICAgICAgIG51bGwgIT09IHJvb3QyLmNhbmNlbFBlbmRpbmdDb21taXQgfHwgcm9vdDIudGltZW91dEhhbmRsZSAhPT0gbm9UaW1lb3V0CiAgICAgICAgKTsKICAgICAgICBwaW5nZWRMYW5lcyA9IHJvb3QyLmNhbGxiYWNrTm9kZTsKICAgICAgICBpZiAoMCA9PT0gc3VzcGVuZGVkTGFuZXMgfHwgcm9vdDIgPT09IGN1cnJlbnRUaW1lICYmICh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9PT0gU3VzcGVuZGVkT25EYXRhIHx8IHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID09PSBTdXNwZW5kZWRPbkFjdGlvbikgfHwgbnVsbCAhPT0gcm9vdDIuY2FuY2VsUGVuZGluZ0NvbW1pdCkKICAgICAgICAgIHJldHVybiBudWxsICE9PSBwaW5nZWRMYW5lcyAmJiBjYW5jZWxDYWxsYmFjayhwaW5nZWRMYW5lcyksIHJvb3QyLmNhbGxiYWNrTm9kZSA9IG51bGwsIHJvb3QyLmNhbGxiYWNrUHJpb3JpdHkgPSAwOwogICAgICAgIGlmICgwID09PSAoc3VzcGVuZGVkTGFuZXMgJiAzKSB8fCBjaGVja0lmUm9vdElzUHJlcmVuZGVyaW5nKHJvb3QyLCBzdXNwZW5kZWRMYW5lcykpIHsKICAgICAgICAgIGN1cnJlbnRUaW1lID0gc3VzcGVuZGVkTGFuZXMgJiAtc3VzcGVuZGVkTGFuZXM7CiAgICAgICAgICBpZiAoY3VycmVudFRpbWUgIT09IHJvb3QyLmNhbGxiYWNrUHJpb3JpdHkgfHwgbnVsbCAhPT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgJiYgcGluZ2VkTGFuZXMgIT09IGZha2VBY3RDYWxsYmFja05vZGUpCiAgICAgICAgICAgIGNhbmNlbENhbGxiYWNrKHBpbmdlZExhbmVzKTsKICAgICAgICAgIGVsc2UgcmV0dXJuIGN1cnJlbnRUaW1lOwogICAgICAgICAgc3dpdGNoIChsYW5lc1RvRXZlbnRQcmlvcml0eShzdXNwZW5kZWRMYW5lcykpIHsKICAgICAgICAgICAgY2FzZSBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk6CiAgICAgICAgICAgIGNhc2UgQ29udGludW91c0V2ZW50UHJpb3JpdHk6CiAgICAgICAgICAgICAgc3VzcGVuZGVkTGFuZXMgPSBVc2VyQmxvY2tpbmdQcmlvcml0eTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBEZWZhdWx0RXZlbnRQcmlvcml0eToKICAgICAgICAgICAgICBzdXNwZW5kZWRMYW5lcyA9IE5vcm1hbFByaW9yaXR5JDE7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgSWRsZUV2ZW50UHJpb3JpdHk6CiAgICAgICAgICAgICAgc3VzcGVuZGVkTGFuZXMgPSBJZGxlUHJpb3JpdHk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgc3VzcGVuZGVkTGFuZXMgPSBOb3JtYWxQcmlvcml0eSQxOwogICAgICAgICAgfQogICAgICAgICAgcGluZ2VkTGFuZXMgPSBwZXJmb3JtV29ya09uUm9vdFZpYVNjaGVkdWxlclRhc2suYmluZChudWxsLCByb290Mik7CiAgICAgICAgICBudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSA/IChSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZS5wdXNoKHBpbmdlZExhbmVzKSwgc3VzcGVuZGVkTGFuZXMgPSBmYWtlQWN0Q2FsbGJhY2tOb2RlKSA6IHN1c3BlbmRlZExhbmVzID0gc2NoZWR1bGVDYWxsYmFjayQzKHN1c3BlbmRlZExhbmVzLCBwaW5nZWRMYW5lcyk7CiAgICAgICAgICByb290Mi5jYWxsYmFja1ByaW9yaXR5ID0gY3VycmVudFRpbWU7CiAgICAgICAgICByb290Mi5jYWxsYmFja05vZGUgPSBzdXNwZW5kZWRMYW5lczsKICAgICAgICAgIHJldHVybiBjdXJyZW50VGltZTsKICAgICAgICB9CiAgICAgICAgbnVsbCAhPT0gcGluZ2VkTGFuZXMgJiYgY2FuY2VsQ2FsbGJhY2socGluZ2VkTGFuZXMpOwogICAgICAgIHJvb3QyLmNhbGxiYWNrUHJpb3JpdHkgPSAyOwogICAgICAgIHJvb3QyLmNhbGxiYWNrTm9kZSA9IG51bGw7CiAgICAgICAgcmV0dXJuIDI7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcGVyZm9ybVdvcmtPblJvb3RWaWFTY2hlZHVsZXJUYXNrKHJvb3QyLCBkaWRUaW1lb3V0KSB7CiAgICAgICAgbmVzdGVkVXBkYXRlU2NoZWR1bGVkID0gY3VycmVudFVwZGF0ZUlzTmVzdGVkID0gZmFsc2U7CiAgICAgICAgc2NoZWR1bGVyRXZlbnQgPSB3aW5kb3cuZXZlbnQ7CiAgICAgICAgaWYgKHBlbmRpbmdFZmZlY3RzU3RhdHVzICE9PSBOT19QRU5ESU5HX0VGRkVDVFMgJiYgcGVuZGluZ0VmZmVjdHNTdGF0dXMgIT09IFBFTkRJTkdfUEFTU0lWRV9QSEFTRSkKICAgICAgICAgIHJldHVybiByb290Mi5jYWxsYmFja05vZGUgPSBudWxsLCByb290Mi5jYWxsYmFja1ByaW9yaXR5ID0gMCwgbnVsbDsKICAgICAgICB2YXIgb3JpZ2luYWxDYWxsYmFja05vZGUgPSByb290Mi5jYWxsYmFja05vZGU7CiAgICAgICAgcGVuZGluZ0RlbGF5ZWRDb21taXRSZWFzb24gPT09IElNTUVESUFURV9DT01NSVQgJiYgKHBlbmRpbmdEZWxheWVkQ29tbWl0UmVhc29uID0gREVMQVlFRF9QQVNTSVZFX0NPTU1JVCk7CiAgICAgICAgaWYgKGZsdXNoUGVuZGluZ0VmZmVjdHMoKSAmJiByb290Mi5jYWxsYmFja05vZGUgIT09IG9yaWdpbmFsQ2FsbGJhY2tOb2RlKQogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgdmFyIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzJGpzY29tcCQwID0gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXM7CiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMkanNjb21wJDAgPSBnZXROZXh0TGFuZXMoCiAgICAgICAgICByb290MiwKICAgICAgICAgIHJvb3QyID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgPyB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyRqc2NvbXAkMCA6IDAsCiAgICAgICAgICBudWxsICE9PSByb290Mi5jYW5jZWxQZW5kaW5nQ29tbWl0IHx8IHJvb3QyLnRpbWVvdXRIYW5kbGUgIT09IG5vVGltZW91dAogICAgICAgICk7CiAgICAgICAgaWYgKDAgPT09IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzJGpzY29tcCQwKSByZXR1cm4gbnVsbDsKICAgICAgICBwZXJmb3JtV29ya09uUm9vdCgKICAgICAgICAgIHJvb3QyLAogICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMkanNjb21wJDAsCiAgICAgICAgICBkaWRUaW1lb3V0CiAgICAgICAgKTsKICAgICAgICBzY2hlZHVsZVRhc2tGb3JSb290RHVyaW5nTWljcm90YXNrKHJvb3QyLCBub3ckMSgpKTsKICAgICAgICByZXR1cm4gbnVsbCAhPSByb290Mi5jYWxsYmFja05vZGUgJiYgcm9vdDIuY2FsbGJhY2tOb2RlID09PSBvcmlnaW5hbENhbGxiYWNrTm9kZSA/IHBlcmZvcm1Xb3JrT25Sb290VmlhU2NoZWR1bGVyVGFzay5iaW5kKG51bGwsIHJvb3QyKSA6IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcGVyZm9ybVN5bmNXb3JrT25Sb290KHJvb3QyLCBsYW5lcykgewogICAgICAgIGlmIChmbHVzaFBlbmRpbmdFZmZlY3RzKCkpIHJldHVybiBudWxsOwogICAgICAgIGN1cnJlbnRVcGRhdGVJc05lc3RlZCA9IG5lc3RlZFVwZGF0ZVNjaGVkdWxlZDsKICAgICAgICBuZXN0ZWRVcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTsKICAgICAgICBwZXJmb3JtV29ya09uUm9vdChyb290MiwgbGFuZXMsIHRydWUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbmNlbENhbGxiYWNrKGNhbGxiYWNrTm9kZSkgewogICAgICAgIGNhbGxiYWNrTm9kZSAhPT0gZmFrZUFjdENhbGxiYWNrTm9kZSAmJiBudWxsICE9PSBjYWxsYmFja05vZGUgJiYgY2FuY2VsQ2FsbGJhY2skMShjYWxsYmFja05vZGUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNjaGVkdWxlSW1tZWRpYXRlUm9vdFNjaGVkdWxlVGFzaygpIHsKICAgICAgICBudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSAmJiBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZS5wdXNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgcHJvY2Vzc1Jvb3RTY2hlZHVsZUluTWljcm90YXNrKCk7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9KTsKICAgICAgICBzY2hlZHVsZU1pY3JvdGFzayhmdW5jdGlvbigpIHsKICAgICAgICAgIChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dCA/IHNjaGVkdWxlQ2FsbGJhY2skMygKICAgICAgICAgICAgSW1tZWRpYXRlUHJpb3JpdHksCiAgICAgICAgICAgIHByb2Nlc3NSb290U2NoZWR1bGVJbkltbWVkaWF0ZVRhc2sKICAgICAgICAgICkgOiBwcm9jZXNzUm9vdFNjaGVkdWxlSW5NaWNyb3Rhc2soKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZXF1ZXN0VHJhbnNpdGlvbkxhbmUoKSB7CiAgICAgICAgaWYgKDAgPT09IGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lKSB7CiAgICAgICAgICB2YXIgYWN0aW9uU2NvcGVMYW5lID0gY3VycmVudEVudGFuZ2xlZExhbmU7CiAgICAgICAgICAwID09PSBhY3Rpb25TY29wZUxhbmUgJiYgKGFjdGlvblNjb3BlTGFuZSA9IG5leHRUcmFuc2l0aW9uVXBkYXRlTGFuZSwgbmV4dFRyYW5zaXRpb25VcGRhdGVMYW5lIDw8PSAxLCAwID09PSAobmV4dFRyYW5zaXRpb25VcGRhdGVMYW5lICYgMjYxODg4KSAmJiAobmV4dFRyYW5zaXRpb25VcGRhdGVMYW5lID0gMjU2KSk7CiAgICAgICAgICBjdXJyZW50RXZlbnRUcmFuc2l0aW9uTGFuZSA9IGFjdGlvblNjb3BlTGFuZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNvZXJjZUZvcm1BY3Rpb25Qcm9wKGFjdGlvblByb3ApIHsKICAgICAgICBpZiAobnVsbCA9PSBhY3Rpb25Qcm9wIHx8ICJzeW1ib2wiID09PSB0eXBlb2YgYWN0aW9uUHJvcCB8fCAiYm9vbGVhbiIgPT09IHR5cGVvZiBhY3Rpb25Qcm9wKQogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBhY3Rpb25Qcm9wKSByZXR1cm4gYWN0aW9uUHJvcDsKICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKGFjdGlvblByb3AsICJhY3Rpb24iKTsKICAgICAgICByZXR1cm4gc2FuaXRpemVVUkwoIiIgKyBhY3Rpb25Qcm9wKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjcmVhdGVGb3JtRGF0YVdpdGhTdWJtaXR0ZXIoZm9ybSwgc3VibWl0dGVyKSB7CiAgICAgICAgdmFyIHRlbXAgPSBzdWJtaXR0ZXIub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAgICAgIHRlbXAubmFtZSA9IHN1Ym1pdHRlci5uYW1lOwogICAgICAgIHRlbXAudmFsdWUgPSBzdWJtaXR0ZXIudmFsdWU7CiAgICAgICAgZm9ybS5pZCAmJiB0ZW1wLnNldEF0dHJpYnV0ZSgiZm9ybSIsIGZvcm0uaWQpOwogICAgICAgIHN1Ym1pdHRlci5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0ZW1wLCBzdWJtaXR0ZXIpOwogICAgICAgIGZvcm0gPSBuZXcgRm9ybURhdGEoZm9ybSk7CiAgICAgICAgdGVtcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRlbXApOwogICAgICAgIHJldHVybiBmb3JtOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGV4dHJhY3RFdmVudHMkMShkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIG1heWJlVGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7CiAgICAgICAgaWYgKCJzdWJtaXQiID09PSBkb21FdmVudE5hbWUgJiYgbWF5YmVUYXJnZXRJbnN0ICYmIG1heWJlVGFyZ2V0SW5zdC5zdGF0ZU5vZGUgPT09IG5hdGl2ZUV2ZW50VGFyZ2V0KSB7CiAgICAgICAgICB2YXIgYWN0aW9uID0gY29lcmNlRm9ybUFjdGlvblByb3AoCiAgICAgICAgICAgIChuYXRpdmVFdmVudFRhcmdldFtpbnRlcm5hbFByb3BzS2V5XSB8fCBudWxsKS5hY3Rpb24KICAgICAgICAgICksIHN1Ym1pdHRlciA9IG5hdGl2ZUV2ZW50LnN1Ym1pdHRlcjsKICAgICAgICAgIHN1Ym1pdHRlciAmJiAoZG9tRXZlbnROYW1lID0gKGRvbUV2ZW50TmFtZSA9IHN1Ym1pdHRlcltpbnRlcm5hbFByb3BzS2V5XSB8fCBudWxsKSA/IGNvZXJjZUZvcm1BY3Rpb25Qcm9wKGRvbUV2ZW50TmFtZS5mb3JtQWN0aW9uKSA6IHN1Ym1pdHRlci5nZXRBdHRyaWJ1dGUoImZvcm1BY3Rpb24iKSwgbnVsbCAhPT0gZG9tRXZlbnROYW1lICYmIChhY3Rpb24gPSBkb21FdmVudE5hbWUsIHN1Ym1pdHRlciA9IG51bGwpKTsKICAgICAgICAgIHZhciBldmVudCA9IG5ldyBTeW50aGV0aWNFdmVudCgKICAgICAgICAgICAgImFjdGlvbiIsCiAgICAgICAgICAgICJhY3Rpb24iLAogICAgICAgICAgICBudWxsLAogICAgICAgICAgICBuYXRpdmVFdmVudCwKICAgICAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXQKICAgICAgICAgICk7CiAgICAgICAgICBkaXNwYXRjaFF1ZXVlLnB1c2goewogICAgICAgICAgICBldmVudCwKICAgICAgICAgICAgbGlzdGVuZXJzOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaW5zdGFuY2U6IG51bGwsCiAgICAgICAgICAgICAgICBsaXN0ZW5lcjogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgIGlmIChuYXRpdmVFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKDAgIT09IGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgZm9ybURhdGEgPSBzdWJtaXR0ZXIgPyBjcmVhdGVGb3JtRGF0YVdpdGhTdWJtaXR0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICBzdWJtaXR0ZXIKICAgICAgICAgICAgICAgICAgICAgICkgOiBuZXcgRm9ybURhdGEobmF0aXZlRXZlbnRUYXJnZXQpLCBwZW5kaW5nU3RhdGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmc6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGZvcm1EYXRhLAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IG5hdGl2ZUV2ZW50VGFyZ2V0Lm1ldGhvZCwKICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uCiAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZShwZW5kaW5nU3RhdGUpOwogICAgICAgICAgICAgICAgICAgICAgc3RhcnRIb3N0VHJhbnNpdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgbWF5YmVUYXJnZXRJbnN0LAogICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nU3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGFjdGlvbiAmJiAoZXZlbnQucHJldmVudERlZmF1bHQoKSwgZm9ybURhdGEgPSBzdWJtaXR0ZXIgPyBjcmVhdGVGb3JtRGF0YVdpdGhTdWJtaXR0ZXIoCiAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdHRlcgogICAgICAgICAgICAgICAgICAgICkgOiBuZXcgRm9ybURhdGEobmF0aXZlRXZlbnRUYXJnZXQpLCBwZW5kaW5nU3RhdGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgZGF0YTogZm9ybURhdGEsCiAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IG5hdGl2ZUV2ZW50VGFyZ2V0Lm1ldGhvZCwKICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbgogICAgICAgICAgICAgICAgICAgIH0sIE9iamVjdC5mcmVlemUocGVuZGluZ1N0YXRlKSwgc3RhcnRIb3N0VHJhbnNpdGlvbigKICAgICAgICAgICAgICAgICAgICAgIG1heWJlVGFyZ2V0SW5zdCwKICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdTdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhCiAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgY3VycmVudFRhcmdldDogbmF0aXZlRXZlbnRUYXJnZXQKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBleGVjdXRlRGlzcGF0Y2goZXZlbnQsIGxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KSB7CiAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXQ7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGxpc3RlbmVyKGV2ZW50KTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgcmVwb3J0R2xvYmFsRXJyb3IoZXJyb3IpOwogICAgICAgIH0KICAgICAgICBldmVudC5jdXJyZW50VGFyZ2V0ID0gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBwcm9jZXNzRGlzcGF0Y2hRdWV1ZShkaXNwYXRjaFF1ZXVlLCBldmVudFN5c3RlbUZsYWdzKSB7CiAgICAgICAgZXZlbnRTeXN0ZW1GbGFncyA9IDAgIT09IChldmVudFN5c3RlbUZsYWdzICYgNCk7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXNwYXRjaFF1ZXVlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgX2Rpc3BhdGNoUXVldWUkaSA9IGRpc3BhdGNoUXVldWVbaV07CiAgICAgICAgICBhOiB7CiAgICAgICAgICAgIHZhciBwcmV2aW91c0luc3RhbmNlID0gdm9pZCAwLCBldmVudCA9IF9kaXNwYXRjaFF1ZXVlJGkuZXZlbnQ7CiAgICAgICAgICAgIF9kaXNwYXRjaFF1ZXVlJGkgPSBfZGlzcGF0Y2hRdWV1ZSRpLmxpc3RlbmVyczsKICAgICAgICAgICAgaWYgKGV2ZW50U3lzdGVtRmxhZ3MpCiAgICAgICAgICAgICAgZm9yICh2YXIgaSRqc2NvbXAkMCA9IF9kaXNwYXRjaFF1ZXVlJGkubGVuZ3RoIC0gMTsgMCA8PSBpJGpzY29tcCQwOyBpJGpzY29tcCQwLS0pIHsKICAgICAgICAgICAgICAgIHZhciBfZGlzcGF0Y2hMaXN0ZW5lcnMkaSA9IF9kaXNwYXRjaFF1ZXVlJGlbaSRqc2NvbXAkMF0sIGluc3RhbmNlID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkuaW5zdGFuY2UsIGN1cnJlbnRUYXJnZXQgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5jdXJyZW50VGFyZ2V0OwogICAgICAgICAgICAgICAgX2Rpc3BhdGNoTGlzdGVuZXJzJGkgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5saXN0ZW5lcjsKICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZSAhPT0gcHJldmlvdXNJbnN0YW5jZSAmJiBldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKQogICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgbnVsbCAhPT0gaW5zdGFuY2UgPyBydW5XaXRoRmliZXJJbkRFVigKICAgICAgICAgICAgICAgICAgaW5zdGFuY2UsCiAgICAgICAgICAgICAgICAgIGV4ZWN1dGVEaXNwYXRjaCwKICAgICAgICAgICAgICAgICAgZXZlbnQsCiAgICAgICAgICAgICAgICAgIF9kaXNwYXRjaExpc3RlbmVycyRpLAogICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0CiAgICAgICAgICAgICAgICApIDogZXhlY3V0ZURpc3BhdGNoKGV2ZW50LCBfZGlzcGF0Y2hMaXN0ZW5lcnMkaSwgY3VycmVudFRhcmdldCk7CiAgICAgICAgICAgICAgICBwcmV2aW91c0luc3RhbmNlID0gaW5zdGFuY2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgZm9yIChpJGpzY29tcCQwID0gMDsgaSRqc2NvbXAkMCA8IF9kaXNwYXRjaFF1ZXVlJGkubGVuZ3RoOyBpJGpzY29tcCQwKyspIHsKICAgICAgICAgICAgICAgIF9kaXNwYXRjaExpc3RlbmVycyRpID0gX2Rpc3BhdGNoUXVldWUkaVtpJGpzY29tcCQwXTsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkuaW5zdGFuY2U7CiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkuY3VycmVudFRhcmdldDsKICAgICAgICAgICAgICAgIF9kaXNwYXRjaExpc3RlbmVycyRpID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkubGlzdGVuZXI7CiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UgIT09IHByZXZpb3VzSW5zdGFuY2UgJiYgZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSkKICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgIG51bGwgIT09IGluc3RhbmNlID8gcnVuV2l0aEZpYmVySW5ERVYoCiAgICAgICAgICAgICAgICAgIGluc3RhbmNlLAogICAgICAgICAgICAgICAgICBleGVjdXRlRGlzcGF0Y2gsCiAgICAgICAgICAgICAgICAgIGV2ZW50LAogICAgICAgICAgICAgICAgICBfZGlzcGF0Y2hMaXN0ZW5lcnMkaSwKICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldAogICAgICAgICAgICAgICAgKSA6IGV4ZWN1dGVEaXNwYXRjaChldmVudCwgX2Rpc3BhdGNoTGlzdGVuZXJzJGksIGN1cnJlbnRUYXJnZXQpOwogICAgICAgICAgICAgICAgcHJldmlvdXNJbnN0YW5jZSA9IGluc3RhbmNlOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChkb21FdmVudE5hbWUsIHRhcmdldEVsZW1lbnQpIHsKICAgICAgICBub25EZWxlZ2F0ZWRFdmVudHMuaGFzKGRvbUV2ZW50TmFtZSkgfHwgY29uc29sZS5lcnJvcigKICAgICAgICAgICdEaWQgbm90IGV4cGVjdCBhIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoKSBjYWxsIGZvciAiJXMiLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLAogICAgICAgICAgZG9tRXZlbnROYW1lCiAgICAgICAgKTsKICAgICAgICB2YXIgbGlzdGVuZXJTZXQgPSB0YXJnZXRFbGVtZW50W2ludGVybmFsRXZlbnRIYW5kbGVyc0tleV07CiAgICAgICAgdm9pZCAwID09PSBsaXN0ZW5lclNldCAmJiAobGlzdGVuZXJTZXQgPSB0YXJnZXRFbGVtZW50W2ludGVybmFsRXZlbnRIYW5kbGVyc0tleV0gPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpKTsKICAgICAgICB2YXIgbGlzdGVuZXJTZXRLZXkgPSBkb21FdmVudE5hbWUgKyAiX19idWJibGUiOwogICAgICAgIGxpc3RlbmVyU2V0LmhhcyhsaXN0ZW5lclNldEtleSkgfHwgKGFkZFRyYXBwZWRFdmVudExpc3RlbmVyKHRhcmdldEVsZW1lbnQsIGRvbUV2ZW50TmFtZSwgMiwgZmFsc2UpLCBsaXN0ZW5lclNldC5hZGQobGlzdGVuZXJTZXRLZXkpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBsaXN0ZW5Ub05hdGl2ZUV2ZW50KGRvbUV2ZW50TmFtZSwgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lciwgdGFyZ2V0KSB7CiAgICAgICAgbm9uRGVsZWdhdGVkRXZlbnRzLmhhcyhkb21FdmVudE5hbWUpICYmICFpc0NhcHR1cmVQaGFzZUxpc3RlbmVyICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAnRGlkIG5vdCBleHBlY3QgYSBsaXN0ZW5Ub05hdGl2ZUV2ZW50KCkgY2FsbCBmb3IgIiVzIiBpbiB0aGUgYnViYmxlIHBoYXNlLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLAogICAgICAgICAgZG9tRXZlbnROYW1lCiAgICAgICAgKTsKICAgICAgICB2YXIgZXZlbnRTeXN0ZW1GbGFncyA9IDA7CiAgICAgICAgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lciAmJiAoZXZlbnRTeXN0ZW1GbGFncyB8PSA0KTsKICAgICAgICBhZGRUcmFwcGVkRXZlbnRMaXN0ZW5lcigKICAgICAgICAgIHRhcmdldCwKICAgICAgICAgIGRvbUV2ZW50TmFtZSwKICAgICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsCiAgICAgICAgICBpc0NhcHR1cmVQaGFzZUxpc3RlbmVyCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBsaXN0ZW5Ub0FsbFN1cHBvcnRlZEV2ZW50cyhyb290Q29udGFpbmVyRWxlbWVudCkgewogICAgICAgIGlmICghcm9vdENvbnRhaW5lckVsZW1lbnRbbGlzdGVuaW5nTWFya2VyXSkgewogICAgICAgICAgcm9vdENvbnRhaW5lckVsZW1lbnRbbGlzdGVuaW5nTWFya2VyXSA9IHRydWU7CiAgICAgICAgICBhbGxOYXRpdmVFdmVudHMuZm9yRWFjaChmdW5jdGlvbihkb21FdmVudE5hbWUpIHsKICAgICAgICAgICAgInNlbGVjdGlvbmNoYW5nZSIgIT09IGRvbUV2ZW50TmFtZSAmJiAobm9uRGVsZWdhdGVkRXZlbnRzLmhhcyhkb21FdmVudE5hbWUpIHx8IGxpc3RlblRvTmF0aXZlRXZlbnQoZG9tRXZlbnROYW1lLCBmYWxzZSwgcm9vdENvbnRhaW5lckVsZW1lbnQpLCBsaXN0ZW5Ub05hdGl2ZUV2ZW50KGRvbUV2ZW50TmFtZSwgdHJ1ZSwgcm9vdENvbnRhaW5lckVsZW1lbnQpKTsKICAgICAgICAgIH0pOwogICAgICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSA5ID09PSByb290Q29udGFpbmVyRWxlbWVudC5ub2RlVHlwZSA/IHJvb3RDb250YWluZXJFbGVtZW50IDogcm9vdENvbnRhaW5lckVsZW1lbnQub3duZXJEb2N1bWVudDsKICAgICAgICAgIG51bGwgPT09IG93bmVyRG9jdW1lbnQgfHwgb3duZXJEb2N1bWVudFtsaXN0ZW5pbmdNYXJrZXJdIHx8IChvd25lckRvY3VtZW50W2xpc3RlbmluZ01hcmtlcl0gPSB0cnVlLCBsaXN0ZW5Ub05hdGl2ZUV2ZW50KCJzZWxlY3Rpb25jaGFuZ2UiLCBmYWxzZSwgb3duZXJEb2N1bWVudCkpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBhZGRUcmFwcGVkRXZlbnRMaXN0ZW5lcih0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lcikgewogICAgICAgIHN3aXRjaCAoZ2V0RXZlbnRQcmlvcml0eShkb21FdmVudE5hbWUpKSB7CiAgICAgICAgICBjYXNlIERpc2NyZXRlRXZlbnRQcmlvcml0eToKICAgICAgICAgICAgdmFyIGxpc3RlbmVyV3JhcHBlciA9IGRpc3BhdGNoRGlzY3JldGVFdmVudDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIENvbnRpbnVvdXNFdmVudFByaW9yaXR5OgogICAgICAgICAgICBsaXN0ZW5lcldyYXBwZXIgPSBkaXNwYXRjaENvbnRpbnVvdXNFdmVudDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBsaXN0ZW5lcldyYXBwZXIgPSBkaXNwYXRjaEV2ZW50OwogICAgICAgIH0KICAgICAgICBldmVudFN5c3RlbUZsYWdzID0gbGlzdGVuZXJXcmFwcGVyLmJpbmQoCiAgICAgICAgICBudWxsLAogICAgICAgICAgZG9tRXZlbnROYW1lLAogICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncywKICAgICAgICAgIHRhcmdldENvbnRhaW5lcgogICAgICAgICk7CiAgICAgICAgbGlzdGVuZXJXcmFwcGVyID0gdm9pZCAwOwogICAgICAgICFwYXNzaXZlQnJvd3NlckV2ZW50c1N1cHBvcnRlZCB8fCAidG91Y2hzdGFydCIgIT09IGRvbUV2ZW50TmFtZSAmJiAidG91Y2htb3ZlIiAhPT0gZG9tRXZlbnROYW1lICYmICJ3aGVlbCIgIT09IGRvbUV2ZW50TmFtZSB8fCAobGlzdGVuZXJXcmFwcGVyID0gdHJ1ZSk7CiAgICAgICAgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lciA/IHZvaWQgMCAhPT0gbGlzdGVuZXJXcmFwcGVyID8gdGFyZ2V0Q29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB7CiAgICAgICAgICBjYXB0dXJlOiB0cnVlLAogICAgICAgICAgcGFzc2l2ZTogbGlzdGVuZXJXcmFwcGVyCiAgICAgICAgfSkgOiB0YXJnZXRDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRydWUpIDogdm9pZCAwICE9PSBsaXN0ZW5lcldyYXBwZXIgPyB0YXJnZXRDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHsKICAgICAgICAgIHBhc3NpdmU6IGxpc3RlbmVyV3JhcHBlcgogICAgICAgIH0pIDogdGFyZ2V0Q29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoCiAgICAgICAgICBkb21FdmVudE5hbWUsCiAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLAogICAgICAgICAgZmFsc2UKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnRGb3JQbHVnaW5FdmVudFN5c3RlbShkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIG5hdGl2ZUV2ZW50LCB0YXJnZXRJbnN0JGpzY29tcCQwLCB0YXJnZXRDb250YWluZXIpIHsKICAgICAgICB2YXIgYW5jZXN0b3JJbnN0ID0gdGFyZ2V0SW5zdCRqc2NvbXAkMDsKICAgICAgICBpZiAoMCA9PT0gKGV2ZW50U3lzdGVtRmxhZ3MgJiAxKSAmJiAwID09PSAoZXZlbnRTeXN0ZW1GbGFncyAmIDIpICYmIG51bGwgIT09IHRhcmdldEluc3QkanNjb21wJDApCiAgICAgICAgICBhOiBmb3IgKDsgOyApIHsKICAgICAgICAgICAgaWYgKG51bGwgPT09IHRhcmdldEluc3QkanNjb21wJDApIHJldHVybjsKICAgICAgICAgICAgdmFyIG5vZGVUYWcgPSB0YXJnZXRJbnN0JGpzY29tcCQwLnRhZzsKICAgICAgICAgICAgaWYgKDMgPT09IG5vZGVUYWcgfHwgNCA9PT0gbm9kZVRhZykgewogICAgICAgICAgICAgIHZhciBjb250YWluZXIgPSB0YXJnZXRJbnN0JGpzY29tcCQwLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOwogICAgICAgICAgICAgIGlmIChjb250YWluZXIgPT09IHRhcmdldENvbnRhaW5lcikgYnJlYWs7CiAgICAgICAgICAgICAgaWYgKDQgPT09IG5vZGVUYWcpCiAgICAgICAgICAgICAgICBmb3IgKG5vZGVUYWcgPSB0YXJnZXRJbnN0JGpzY29tcCQwLnJldHVybjsgbnVsbCAhPT0gbm9kZVRhZzsgKSB7CiAgICAgICAgICAgICAgICAgIHZhciBncmFuZFRhZyA9IG5vZGVUYWcudGFnOwogICAgICAgICAgICAgICAgICBpZiAoKDMgPT09IGdyYW5kVGFnIHx8IDQgPT09IGdyYW5kVGFnKSAmJiBub2RlVGFnLnN0YXRlTm9kZS5jb250YWluZXJJbmZvID09PSB0YXJnZXRDb250YWluZXIpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICBub2RlVGFnID0gbm9kZVRhZy5yZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZm9yICg7IG51bGwgIT09IGNvbnRhaW5lcjsgKSB7CiAgICAgICAgICAgICAgICBub2RlVGFnID0gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUoY29udGFpbmVyKTsKICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBub2RlVGFnKSByZXR1cm47CiAgICAgICAgICAgICAgICBncmFuZFRhZyA9IG5vZGVUYWcudGFnOwogICAgICAgICAgICAgICAgaWYgKDUgPT09IGdyYW5kVGFnIHx8IDYgPT09IGdyYW5kVGFnIHx8IDI2ID09PSBncmFuZFRhZyB8fCAyNyA9PT0gZ3JhbmRUYWcpIHsKICAgICAgICAgICAgICAgICAgdGFyZ2V0SW5zdCRqc2NvbXAkMCA9IGFuY2VzdG9ySW5zdCA9IG5vZGVUYWc7CiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb250YWluZXIgPSBjb250YWluZXIucGFyZW50Tm9kZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFyZ2V0SW5zdCRqc2NvbXAkMCA9IHRhcmdldEluc3QkanNjb21wJDAucmV0dXJuOwogICAgICAgICAgfQogICAgICAgIGJhdGNoZWRVcGRhdGVzJDEoZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgdGFyZ2V0SW5zdCA9IGFuY2VzdG9ySW5zdCwgbmF0aXZlRXZlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChuYXRpdmVFdmVudCksIGRpc3BhdGNoUXVldWUgPSBbXTsKICAgICAgICAgIGE6IHsKICAgICAgICAgICAgdmFyIHJlYWN0TmFtZSA9IHRvcExldmVsRXZlbnRzVG9SZWFjdE5hbWVzLmdldChkb21FdmVudE5hbWUpOwogICAgICAgICAgICBpZiAodm9pZCAwICE9PSByZWFjdE5hbWUpIHsKICAgICAgICAgICAgICB2YXIgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljRXZlbnQsIHJlYWN0RXZlbnRUeXBlID0gZG9tRXZlbnROYW1lOwogICAgICAgICAgICAgIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7CiAgICAgICAgICAgICAgICBjYXNlICJrZXlwcmVzcyI6CiAgICAgICAgICAgICAgICAgIGlmICgwID09PSBnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KSkgYnJlYWsgYTsKICAgICAgICAgICAgICAgIGNhc2UgImtleWRvd24iOgogICAgICAgICAgICAgICAgY2FzZSAia2V5dXAiOgogICAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNLZXlib2FyZEV2ZW50OwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImZvY3VzaW4iOgogICAgICAgICAgICAgICAgICByZWFjdEV2ZW50VHlwZSA9ICJmb2N1cyI7CiAgICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZm9jdXNvdXQiOgogICAgICAgICAgICAgICAgICByZWFjdEV2ZW50VHlwZSA9ICJibHVyIjsKICAgICAgICAgICAgICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljRm9jdXNFdmVudDsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJiZWZvcmVibHVyIjoKICAgICAgICAgICAgICAgIGNhc2UgImFmdGVyYmx1ciI6CiAgICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiY2xpY2siOgogICAgICAgICAgICAgICAgICBpZiAoMiA9PT0gbmF0aXZlRXZlbnQuYnV0dG9uKSBicmVhayBhOwogICAgICAgICAgICAgICAgY2FzZSAiYXV4Y2xpY2siOgogICAgICAgICAgICAgICAgY2FzZSAiZGJsY2xpY2siOgogICAgICAgICAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKICAgICAgICAgICAgICAgIGNhc2UgIm1vdXNlbW92ZSI6CiAgICAgICAgICAgICAgICBjYXNlICJtb3VzZXVwIjoKICAgICAgICAgICAgICAgIGNhc2UgIm1vdXNlb3V0IjoKICAgICAgICAgICAgICAgIGNhc2UgIm1vdXNlb3ZlciI6CiAgICAgICAgICAgICAgICBjYXNlICJjb250ZXh0bWVudSI6CiAgICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY01vdXNlRXZlbnQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZHJhZyI6CiAgICAgICAgICAgICAgICBjYXNlICJkcmFnZW5kIjoKICAgICAgICAgICAgICAgIGNhc2UgImRyYWdlbnRlciI6CiAgICAgICAgICAgICAgICBjYXNlICJkcmFnZXhpdCI6CiAgICAgICAgICAgICAgICBjYXNlICJkcmFnbGVhdmUiOgogICAgICAgICAgICAgICAgY2FzZSAiZHJhZ292ZXIiOgogICAgICAgICAgICAgICAgY2FzZSAiZHJhZ3N0YXJ0IjoKICAgICAgICAgICAgICAgIGNhc2UgImRyb3AiOgogICAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNEcmFnRXZlbnQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAidG91Y2hjYW5jZWwiOgogICAgICAgICAgICAgICAgY2FzZSAidG91Y2hlbmQiOgogICAgICAgICAgICAgICAgY2FzZSAidG91Y2htb3ZlIjoKICAgICAgICAgICAgICAgIGNhc2UgInRvdWNoc3RhcnQiOgogICAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNUb3VjaEV2ZW50OwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgQU5JTUFUSU9OX0VORDoKICAgICAgICAgICAgICAgIGNhc2UgQU5JTUFUSU9OX0lURVJBVElPTjoKICAgICAgICAgICAgICAgIGNhc2UgQU5JTUFUSU9OX1NUQVJUOgogICAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNBbmltYXRpb25FdmVudDsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIFRSQU5TSVRJT05fRU5EOgogICAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNUcmFuc2l0aW9uRXZlbnQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAic2Nyb2xsIjoKICAgICAgICAgICAgICAgIGNhc2UgInNjcm9sbGVuZCI6CiAgICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1VJRXZlbnQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAid2hlZWwiOgogICAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNXaGVlbEV2ZW50OwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImNvcHkiOgogICAgICAgICAgICAgICAgY2FzZSAiY3V0IjoKICAgICAgICAgICAgICAgIGNhc2UgInBhc3RlIjoKICAgICAgICAgICAgICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljQ2xpcGJvYXJkRXZlbnQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ290cG9pbnRlcmNhcHR1cmUiOgogICAgICAgICAgICAgICAgY2FzZSAibG9zdHBvaW50ZXJjYXB0dXJlIjoKICAgICAgICAgICAgICAgIGNhc2UgInBvaW50ZXJjYW5jZWwiOgogICAgICAgICAgICAgICAgY2FzZSAicG9pbnRlcmRvd24iOgogICAgICAgICAgICAgICAgY2FzZSAicG9pbnRlcm1vdmUiOgogICAgICAgICAgICAgICAgY2FzZSAicG9pbnRlcm91dCI6CiAgICAgICAgICAgICAgICBjYXNlICJwb2ludGVyb3ZlciI6CiAgICAgICAgICAgICAgICBjYXNlICJwb2ludGVydXAiOgogICAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNQb2ludGVyRXZlbnQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAidG9nZ2xlIjoKICAgICAgICAgICAgICAgIGNhc2UgImJlZm9yZXRvZ2dsZSI6CiAgICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1RvZ2dsZUV2ZW50OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgaW5DYXB0dXJlUGhhc2UgPSAwICE9PSAoZXZlbnRTeXN0ZW1GbGFncyAmIDQpLCBhY2N1bXVsYXRlVGFyZ2V0T25seSA9ICFpbkNhcHR1cmVQaGFzZSAmJiAoInNjcm9sbCIgPT09IGRvbUV2ZW50TmFtZSB8fCAic2Nyb2xsZW5kIiA9PT0gZG9tRXZlbnROYW1lKSwgcmVhY3RFdmVudE5hbWUgPSBpbkNhcHR1cmVQaGFzZSA/IG51bGwgIT09IHJlYWN0TmFtZSA/IHJlYWN0TmFtZSArICJDYXB0dXJlIiA6IG51bGwgOiByZWFjdE5hbWU7CiAgICAgICAgICAgICAgaW5DYXB0dXJlUGhhc2UgPSBbXTsKICAgICAgICAgICAgICBmb3IgKHZhciBpbnN0YW5jZSA9IHRhcmdldEluc3QsIGxhc3RIb3N0Q29tcG9uZW50OyBudWxsICE9PSBpbnN0YW5jZTsgKSB7CiAgICAgICAgICAgICAgICB2YXIgX2luc3RhbmNlMiA9IGluc3RhbmNlOwogICAgICAgICAgICAgICAgbGFzdEhvc3RDb21wb25lbnQgPSBfaW5zdGFuY2UyLnN0YXRlTm9kZTsKICAgICAgICAgICAgICAgIF9pbnN0YW5jZTIgPSBfaW5zdGFuY2UyLnRhZzsKICAgICAgICAgICAgICAgIDUgIT09IF9pbnN0YW5jZTIgJiYgMjYgIT09IF9pbnN0YW5jZTIgJiYgMjcgIT09IF9pbnN0YW5jZTIgfHwgbnVsbCA9PT0gbGFzdEhvc3RDb21wb25lbnQgfHwgbnVsbCA9PT0gcmVhY3RFdmVudE5hbWUgfHwgKF9pbnN0YW5jZTIgPSBnZXRMaXN0ZW5lcihpbnN0YW5jZSwgcmVhY3RFdmVudE5hbWUpLCBudWxsICE9IF9pbnN0YW5jZTIgJiYgaW5DYXB0dXJlUGhhc2UucHVzaCgKICAgICAgICAgICAgICAgICAgY3JlYXRlRGlzcGF0Y2hMaXN0ZW5lcigKICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSwKICAgICAgICAgICAgICAgICAgICBfaW5zdGFuY2UyLAogICAgICAgICAgICAgICAgICAgIGxhc3RIb3N0Q29tcG9uZW50CiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgaWYgKGFjY3VtdWxhdGVUYXJnZXRPbmx5KSBicmVhazsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gaW5zdGFuY2UucmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAwIDwgaW5DYXB0dXJlUGhhc2UubGVuZ3RoICYmIChyZWFjdE5hbWUgPSBuZXcgU3ludGhldGljRXZlbnRDdG9yKAogICAgICAgICAgICAgICAgcmVhY3ROYW1lLAogICAgICAgICAgICAgICAgcmVhY3RFdmVudFR5cGUsCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQsCiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldAogICAgICAgICAgICAgICksIGRpc3BhdGNoUXVldWUucHVzaCh7CiAgICAgICAgICAgICAgICBldmVudDogcmVhY3ROYW1lLAogICAgICAgICAgICAgICAgbGlzdGVuZXJzOiBpbkNhcHR1cmVQaGFzZQogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKDAgPT09IChldmVudFN5c3RlbUZsYWdzICYgNykpIHsKICAgICAgICAgICAgYTogewogICAgICAgICAgICAgIHJlYWN0TmFtZSA9ICJtb3VzZW92ZXIiID09PSBkb21FdmVudE5hbWUgfHwgInBvaW50ZXJvdmVyIiA9PT0gZG9tRXZlbnROYW1lOwogICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9ICJtb3VzZW91dCIgPT09IGRvbUV2ZW50TmFtZSB8fCAicG9pbnRlcm91dCIgPT09IGRvbUV2ZW50TmFtZTsKICAgICAgICAgICAgICBpZiAocmVhY3ROYW1lICYmIG5hdGl2ZUV2ZW50ICE9PSBjdXJyZW50UmVwbGF5aW5nRXZlbnQgJiYgKHJlYWN0RXZlbnRUeXBlID0gbmF0aXZlRXZlbnQucmVsYXRlZFRhcmdldCB8fCBuYXRpdmVFdmVudC5mcm9tRWxlbWVudCkgJiYgKGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKHJlYWN0RXZlbnRUeXBlKSB8fCByZWFjdEV2ZW50VHlwZVtpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSkpCiAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgIGlmIChTeW50aGV0aWNFdmVudEN0b3IgfHwgcmVhY3ROYW1lKSB7CiAgICAgICAgICAgICAgICByZWFjdE5hbWUgPSBuYXRpdmVFdmVudFRhcmdldC53aW5kb3cgPT09IG5hdGl2ZUV2ZW50VGFyZ2V0ID8gbmF0aXZlRXZlbnRUYXJnZXQgOiAocmVhY3ROYW1lID0gbmF0aXZlRXZlbnRUYXJnZXQub3duZXJEb2N1bWVudCkgPyByZWFjdE5hbWUuZGVmYXVsdFZpZXcgfHwgcmVhY3ROYW1lLnBhcmVudFdpbmRvdyA6IHdpbmRvdzsKICAgICAgICAgICAgICAgIGlmIChTeW50aGV0aWNFdmVudEN0b3IpIHsKICAgICAgICAgICAgICAgICAgaWYgKHJlYWN0RXZlbnRUeXBlID0gbmF0aXZlRXZlbnQucmVsYXRlZFRhcmdldCB8fCBuYXRpdmVFdmVudC50b0VsZW1lbnQsIFN5bnRoZXRpY0V2ZW50Q3RvciA9IHRhcmdldEluc3QsIHJlYWN0RXZlbnRUeXBlID0gcmVhY3RFdmVudFR5cGUgPyBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShyZWFjdEV2ZW50VHlwZSkgOiBudWxsLCBudWxsICE9PSByZWFjdEV2ZW50VHlwZSAmJiAoYWNjdW11bGF0ZVRhcmdldE9ubHkgPSBnZXROZWFyZXN0TW91bnRlZEZpYmVyKHJlYWN0RXZlbnRUeXBlKSwgaW5DYXB0dXJlUGhhc2UgPSByZWFjdEV2ZW50VHlwZS50YWcsIHJlYWN0RXZlbnRUeXBlICE9PSBhY2N1bXVsYXRlVGFyZ2V0T25seSB8fCA1ICE9PSBpbkNhcHR1cmVQaGFzZSAmJiAyNyAhPT0gaW5DYXB0dXJlUGhhc2UgJiYgNiAhPT0gaW5DYXB0dXJlUGhhc2UpKQogICAgICAgICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlID0gbnVsbDsKICAgICAgICAgICAgICAgIH0gZWxzZSBTeW50aGV0aWNFdmVudEN0b3IgPSBudWxsLCByZWFjdEV2ZW50VHlwZSA9IHRhcmdldEluc3Q7CiAgICAgICAgICAgICAgICBpZiAoU3ludGhldGljRXZlbnRDdG9yICE9PSByZWFjdEV2ZW50VHlwZSkgewogICAgICAgICAgICAgICAgICBpbkNhcHR1cmVQaGFzZSA9IFN5bnRoZXRpY01vdXNlRXZlbnQ7CiAgICAgICAgICAgICAgICAgIF9pbnN0YW5jZTIgPSAib25Nb3VzZUxlYXZlIjsKICAgICAgICAgICAgICAgICAgcmVhY3RFdmVudE5hbWUgPSAib25Nb3VzZUVudGVyIjsKICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgPSAibW91c2UiOwogICAgICAgICAgICAgICAgICBpZiAoInBvaW50ZXJvdXQiID09PSBkb21FdmVudE5hbWUgfHwgInBvaW50ZXJvdmVyIiA9PT0gZG9tRXZlbnROYW1lKQogICAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlID0gU3ludGhldGljUG9pbnRlckV2ZW50LCBfaW5zdGFuY2UyID0gIm9uUG9pbnRlckxlYXZlIiwgcmVhY3RFdmVudE5hbWUgPSAib25Qb2ludGVyRW50ZXIiLCBpbnN0YW5jZSA9ICJwb2ludGVyIjsKICAgICAgICAgICAgICAgICAgYWNjdW11bGF0ZVRhcmdldE9ubHkgPSBudWxsID09IFN5bnRoZXRpY0V2ZW50Q3RvciA/IHJlYWN0TmFtZSA6IGdldE5vZGVGcm9tSW5zdGFuY2UoU3ludGhldGljRXZlbnRDdG9yKTsKICAgICAgICAgICAgICAgICAgbGFzdEhvc3RDb21wb25lbnQgPSBudWxsID09IHJlYWN0RXZlbnRUeXBlID8gcmVhY3ROYW1lIDogZ2V0Tm9kZUZyb21JbnN0YW5jZShyZWFjdEV2ZW50VHlwZSk7CiAgICAgICAgICAgICAgICAgIHJlYWN0TmFtZSA9IG5ldyBpbkNhcHR1cmVQaGFzZSgKICAgICAgICAgICAgICAgICAgICBfaW5zdGFuY2UyLAogICAgICAgICAgICAgICAgICAgIGluc3RhbmNlICsgImxlYXZlIiwKICAgICAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IsCiAgICAgICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQsCiAgICAgICAgICAgICAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXQKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgcmVhY3ROYW1lLnRhcmdldCA9IGFjY3VtdWxhdGVUYXJnZXRPbmx5OwogICAgICAgICAgICAgICAgICByZWFjdE5hbWUucmVsYXRlZFRhcmdldCA9IGxhc3RIb3N0Q29tcG9uZW50OwogICAgICAgICAgICAgICAgICBfaW5zdGFuY2UyID0gbnVsbDsKICAgICAgICAgICAgICAgICAgZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUobmF0aXZlRXZlbnRUYXJnZXQpID09PSB0YXJnZXRJbnN0ICYmIChpbkNhcHR1cmVQaGFzZSA9IG5ldyBpbkNhcHR1cmVQaGFzZSgKICAgICAgICAgICAgICAgICAgICByZWFjdEV2ZW50TmFtZSwKICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSArICJlbnRlciIsCiAgICAgICAgICAgICAgICAgICAgcmVhY3RFdmVudFR5cGUsCiAgICAgICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQsCiAgICAgICAgICAgICAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXQKICAgICAgICAgICAgICAgICAgKSwgaW5DYXB0dXJlUGhhc2UudGFyZ2V0ID0gbGFzdEhvc3RDb21wb25lbnQsIGluQ2FwdHVyZVBoYXNlLnJlbGF0ZWRUYXJnZXQgPSBhY2N1bXVsYXRlVGFyZ2V0T25seSwgX2luc3RhbmNlMiA9IGluQ2FwdHVyZVBoYXNlKTsKICAgICAgICAgICAgICAgICAgYWNjdW11bGF0ZVRhcmdldE9ubHkgPSBfaW5zdGFuY2UyOwogICAgICAgICAgICAgICAgICBpZiAoU3ludGhldGljRXZlbnRDdG9yICYmIHJlYWN0RXZlbnRUeXBlKQogICAgICAgICAgICAgICAgICAgIGI6IHsKICAgICAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlID0gZ2V0UGFyZW50OwogICAgICAgICAgICAgICAgICAgICAgcmVhY3RFdmVudE5hbWUgPSBTeW50aGV0aWNFdmVudEN0b3I7CiAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IHJlYWN0RXZlbnRUeXBlOwogICAgICAgICAgICAgICAgICAgICAgbGFzdEhvc3RDb21wb25lbnQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgZm9yIChfaW5zdGFuY2UyID0gcmVhY3RFdmVudE5hbWU7IF9pbnN0YW5jZTI7IF9pbnN0YW5jZTIgPSBpbkNhcHR1cmVQaGFzZShfaW5zdGFuY2UyKSkKICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEhvc3RDb21wb25lbnQrKzsKICAgICAgICAgICAgICAgICAgICAgIF9pbnN0YW5jZTIgPSAwOwogICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgdGVtcEIgPSBpbnN0YW5jZTsgdGVtcEI7IHRlbXBCID0gaW5DYXB0dXJlUGhhc2UodGVtcEIpKQogICAgICAgICAgICAgICAgICAgICAgICBfaW5zdGFuY2UyKys7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKDsgMCA8IGxhc3RIb3N0Q29tcG9uZW50IC0gX2luc3RhbmNlMjsgKQogICAgICAgICAgICAgICAgICAgICAgICByZWFjdEV2ZW50TmFtZSA9IGluQ2FwdHVyZVBoYXNlKHJlYWN0RXZlbnROYW1lKSwgbGFzdEhvc3RDb21wb25lbnQtLTsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoOyAwIDwgX2luc3RhbmNlMiAtIGxhc3RIb3N0Q29tcG9uZW50OyApCiAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlID0gaW5DYXB0dXJlUGhhc2UoaW5zdGFuY2UpLCBfaW5zdGFuY2UyLS07CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKDsgbGFzdEhvc3RDb21wb25lbnQtLTsgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWFjdEV2ZW50TmFtZSA9PT0gaW5zdGFuY2UgfHwgbnVsbCAhPT0gaW5zdGFuY2UgJiYgcmVhY3RFdmVudE5hbWUgPT09IGluc3RhbmNlLmFsdGVybmF0ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlID0gcmVhY3RFdmVudE5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICByZWFjdEV2ZW50TmFtZSA9IGluQ2FwdHVyZVBoYXNlKHJlYWN0RXZlbnROYW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBpbkNhcHR1cmVQaGFzZShpbnN0YW5jZSk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBpbkNhcHR1cmVQaGFzZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBlbHNlIGluQ2FwdHVyZVBoYXNlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gU3ludGhldGljRXZlbnRDdG9yICYmIGFjY3VtdWxhdGVFbnRlckxlYXZlTGlzdGVuZXJzRm9yRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hRdWV1ZSwKICAgICAgICAgICAgICAgICAgICByZWFjdE5hbWUsCiAgICAgICAgICAgICAgICAgICAgU3ludGhldGljRXZlbnRDdG9yLAogICAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlLAogICAgICAgICAgICAgICAgICAgIGZhbHNlCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIG51bGwgIT09IHJlYWN0RXZlbnRUeXBlICYmIG51bGwgIT09IGFjY3VtdWxhdGVUYXJnZXRPbmx5ICYmIGFjY3VtdWxhdGVFbnRlckxlYXZlTGlzdGVuZXJzRm9yRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hRdWV1ZSwKICAgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRlVGFyZ2V0T25seSwKICAgICAgICAgICAgICAgICAgICByZWFjdEV2ZW50VHlwZSwKICAgICAgICAgICAgICAgICAgICBpbkNhcHR1cmVQaGFzZSwKICAgICAgICAgICAgICAgICAgICB0cnVlCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGE6IHsKICAgICAgICAgICAgICByZWFjdE5hbWUgPSB0YXJnZXRJbnN0ID8gZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KSA6IHdpbmRvdzsKICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSByZWFjdE5hbWUubm9kZU5hbWUgJiYgcmVhY3ROYW1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgICAgaWYgKCJzZWxlY3QiID09PSBTeW50aGV0aWNFdmVudEN0b3IgfHwgImlucHV0IiA9PT0gU3ludGhldGljRXZlbnRDdG9yICYmICJmaWxlIiA9PT0gcmVhY3ROYW1lLnR5cGUpCiAgICAgICAgICAgICAgICB2YXIgZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0Rm9yQ2hhbmdlRXZlbnQ7CiAgICAgICAgICAgICAgZWxzZSBpZiAoaXNUZXh0SW5wdXRFbGVtZW50KHJlYWN0TmFtZSkpCiAgICAgICAgICAgICAgICBpZiAoaXNJbnB1dEV2ZW50U3VwcG9ydGVkKQogICAgICAgICAgICAgICAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JJbnB1dE9yQ2hhbmdlRXZlbnQ7CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0Rm9ySW5wdXRFdmVudFBvbHlmaWxsOwogICAgICAgICAgICAgICAgICB2YXIgaGFuZGxlRXZlbnRGdW5jID0gaGFuZGxlRXZlbnRzRm9ySW5wdXRFdmVudFBvbHlmaWxsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IHJlYWN0TmFtZS5ub2RlTmFtZSwgIVN5bnRoZXRpY0V2ZW50Q3RvciB8fCAiaW5wdXQiICE9PSBTeW50aGV0aWNFdmVudEN0b3IudG9Mb3dlckNhc2UoKSB8fCAiY2hlY2tib3giICE9PSByZWFjdE5hbWUudHlwZSAmJiAicmFkaW8iICE9PSByZWFjdE5hbWUudHlwZSA/IHRhcmdldEluc3QgJiYgaXNDdXN0b21FbGVtZW50KHRhcmdldEluc3QuZWxlbWVudFR5cGUpICYmIChnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JDaGFuZ2VFdmVudCkgOiBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JDbGlja0V2ZW50OwogICAgICAgICAgICAgIGlmIChnZXRUYXJnZXRJbnN0RnVuYyAmJiAoZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0RnVuYyhkb21FdmVudE5hbWUsIHRhcmdldEluc3QpKSkgewogICAgICAgICAgICAgICAgY3JlYXRlQW5kQWNjdW11bGF0ZUNoYW5nZUV2ZW50KAogICAgICAgICAgICAgICAgICBkaXNwYXRjaFF1ZXVlLAogICAgICAgICAgICAgICAgICBnZXRUYXJnZXRJbnN0RnVuYywKICAgICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQsCiAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaGFuZGxlRXZlbnRGdW5jICYmIGhhbmRsZUV2ZW50RnVuYyhkb21FdmVudE5hbWUsIHJlYWN0TmFtZSwgdGFyZ2V0SW5zdCk7CiAgICAgICAgICAgICAgImZvY3Vzb3V0IiA9PT0gZG9tRXZlbnROYW1lICYmIHRhcmdldEluc3QgJiYgIm51bWJlciIgPT09IHJlYWN0TmFtZS50eXBlICYmIG51bGwgIT0gdGFyZ2V0SW5zdC5tZW1vaXplZFByb3BzLnZhbHVlICYmIHNldERlZmF1bHRWYWx1ZShyZWFjdE5hbWUsICJudW1iZXIiLCByZWFjdE5hbWUudmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGhhbmRsZUV2ZW50RnVuYyA9IHRhcmdldEluc3QgPyBnZXROb2RlRnJvbUluc3RhbmNlKHRhcmdldEluc3QpIDogd2luZG93OwogICAgICAgICAgICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkgewogICAgICAgICAgICAgIGNhc2UgImZvY3VzaW4iOgogICAgICAgICAgICAgICAgaWYgKGlzVGV4dElucHV0RWxlbWVudChoYW5kbGVFdmVudEZ1bmMpIHx8ICJ0cnVlIiA9PT0gaGFuZGxlRXZlbnRGdW5jLmNvbnRlbnRFZGl0YWJsZSkKICAgICAgICAgICAgICAgICAgYWN0aXZlRWxlbWVudCA9IGhhbmRsZUV2ZW50RnVuYywgYWN0aXZlRWxlbWVudEluc3QgPSB0YXJnZXRJbnN0LCBsYXN0U2VsZWN0aW9uID0gbnVsbDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgImZvY3Vzb3V0IjoKICAgICAgICAgICAgICAgIGxhc3RTZWxlY3Rpb24gPSBhY3RpdmVFbGVtZW50SW5zdCA9IGFjdGl2ZUVsZW1lbnQgPSBudWxsOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKICAgICAgICAgICAgICAgIG1vdXNlRG93biA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlICJjb250ZXh0bWVudSI6CiAgICAgICAgICAgICAgY2FzZSAibW91c2V1cCI6CiAgICAgICAgICAgICAgY2FzZSAiZHJhZ2VuZCI6CiAgICAgICAgICAgICAgICBtb3VzZURvd24gPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNvbnN0cnVjdFNlbGVjdEV2ZW50KAogICAgICAgICAgICAgICAgICBkaXNwYXRjaFF1ZXVlLAogICAgICAgICAgICAgICAgICBuYXRpdmVFdmVudCwKICAgICAgICAgICAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXQKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlICJzZWxlY3Rpb25jaGFuZ2UiOgogICAgICAgICAgICAgICAgaWYgKHNraXBTZWxlY3Rpb25DaGFuZ2VFdmVudCkgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAia2V5ZG93biI6CiAgICAgICAgICAgICAgY2FzZSAia2V5dXAiOgogICAgICAgICAgICAgICAgY29uc3RydWN0U2VsZWN0RXZlbnQoCiAgICAgICAgICAgICAgICAgIGRpc3BhdGNoUXVldWUsCiAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LAogICAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgZmFsbGJhY2tEYXRhOwogICAgICAgICAgICBpZiAoY2FuVXNlQ29tcG9zaXRpb25FdmVudCkKICAgICAgICAgICAgICBiOiB7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkgewogICAgICAgICAgICAgICAgICBjYXNlICJjb21wb3NpdGlvbnN0YXJ0IjoKICAgICAgICAgICAgICAgICAgICB2YXIgZXZlbnRUeXBlID0gIm9uQ29tcG9zaXRpb25TdGFydCI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWsgYjsKICAgICAgICAgICAgICAgICAgY2FzZSAiY29tcG9zaXRpb25lbmQiOgogICAgICAgICAgICAgICAgICAgIGV2ZW50VHlwZSA9ICJvbkNvbXBvc2l0aW9uRW5kIjsKICAgICAgICAgICAgICAgICAgICBicmVhayBiOwogICAgICAgICAgICAgICAgICBjYXNlICJjb21wb3NpdGlvbnVwZGF0ZSI6CiAgICAgICAgICAgICAgICAgICAgZXZlbnRUeXBlID0gIm9uQ29tcG9zaXRpb25VcGRhdGUiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrIGI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBldmVudFR5cGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgaXNDb21wb3NpbmcgPyBpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkgJiYgKGV2ZW50VHlwZSA9ICJvbkNvbXBvc2l0aW9uRW5kIikgOiAia2V5ZG93biIgPT09IGRvbUV2ZW50TmFtZSAmJiBuYXRpdmVFdmVudC5rZXlDb2RlID09PSBTVEFSVF9LRVlDT0RFICYmIChldmVudFR5cGUgPSAib25Db21wb3NpdGlvblN0YXJ0Iik7CiAgICAgICAgICAgIGV2ZW50VHlwZSAmJiAodXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgJiYgImtvIiAhPT0gbmF0aXZlRXZlbnQubG9jYWxlICYmIChpc0NvbXBvc2luZyB8fCAib25Db21wb3NpdGlvblN0YXJ0IiAhPT0gZXZlbnRUeXBlID8gIm9uQ29tcG9zaXRpb25FbmQiID09PSBldmVudFR5cGUgJiYgaXNDb21wb3NpbmcgJiYgKGZhbGxiYWNrRGF0YSA9IGdldERhdGEoKSkgOiAocm9vdCA9IG5hdGl2ZUV2ZW50VGFyZ2V0LCBzdGFydFRleHQgPSAidmFsdWUiIGluIHJvb3QgPyByb290LnZhbHVlIDogcm9vdC50ZXh0Q29udGVudCwgaXNDb21wb3NpbmcgPSB0cnVlKSksIGhhbmRsZUV2ZW50RnVuYyA9IGFjY3VtdWxhdGVUd29QaGFzZUxpc3RlbmVycygKICAgICAgICAgICAgICB0YXJnZXRJbnN0LAogICAgICAgICAgICAgIGV2ZW50VHlwZQogICAgICAgICAgICApLCAwIDwgaGFuZGxlRXZlbnRGdW5jLmxlbmd0aCAmJiAoZXZlbnRUeXBlID0gbmV3IFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQoCiAgICAgICAgICAgICAgZXZlbnRUeXBlLAogICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSwKICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LAogICAgICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0CiAgICAgICAgICAgICksIGRpc3BhdGNoUXVldWUucHVzaCh7CiAgICAgICAgICAgICAgZXZlbnQ6IGV2ZW50VHlwZSwKICAgICAgICAgICAgICBsaXN0ZW5lcnM6IGhhbmRsZUV2ZW50RnVuYwogICAgICAgICAgICB9KSwgZmFsbGJhY2tEYXRhID8gZXZlbnRUeXBlLmRhdGEgPSBmYWxsYmFja0RhdGEgOiAoZmFsbGJhY2tEYXRhID0gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCksIG51bGwgIT09IGZhbGxiYWNrRGF0YSAmJiAoZXZlbnRUeXBlLmRhdGEgPSBmYWxsYmFja0RhdGEpKSkpOwogICAgICAgICAgICBpZiAoZmFsbGJhY2tEYXRhID0gY2FuVXNlVGV4dElucHV0RXZlbnQgPyBnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIDogZ2V0RmFsbGJhY2tCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpKQogICAgICAgICAgICAgIGV2ZW50VHlwZSA9IGFjY3VtdWxhdGVUd29QaGFzZUxpc3RlbmVycygKICAgICAgICAgICAgICAgIHRhcmdldEluc3QsCiAgICAgICAgICAgICAgICAib25CZWZvcmVJbnB1dCIKICAgICAgICAgICAgICApLCAwIDwgZXZlbnRUeXBlLmxlbmd0aCAmJiAoaGFuZGxlRXZlbnRGdW5jID0gbmV3IFN5bnRoZXRpY0lucHV0RXZlbnQoCiAgICAgICAgICAgICAgICAib25CZWZvcmVJbnB1dCIsCiAgICAgICAgICAgICAgICAiYmVmb3JlaW5wdXQiLAogICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LAogICAgICAgICAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXQKICAgICAgICAgICAgICApLCBkaXNwYXRjaFF1ZXVlLnB1c2goewogICAgICAgICAgICAgICAgZXZlbnQ6IGhhbmRsZUV2ZW50RnVuYywKICAgICAgICAgICAgICAgIGxpc3RlbmVyczogZXZlbnRUeXBlCiAgICAgICAgICAgICAgfSksIGhhbmRsZUV2ZW50RnVuYy5kYXRhID0gZmFsbGJhY2tEYXRhKTsKICAgICAgICAgICAgZXh0cmFjdEV2ZW50cyQxKAogICAgICAgICAgICAgIGRpc3BhdGNoUXVldWUsCiAgICAgICAgICAgICAgZG9tRXZlbnROYW1lLAogICAgICAgICAgICAgIHRhcmdldEluc3QsCiAgICAgICAgICAgICAgbmF0aXZlRXZlbnQsCiAgICAgICAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXQKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICAgIHByb2Nlc3NEaXNwYXRjaFF1ZXVlKGRpc3BhdGNoUXVldWUsIGV2ZW50U3lzdGVtRmxhZ3MpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluc3RhbmNlLAogICAgICAgICAgbGlzdGVuZXIsCiAgICAgICAgICBjdXJyZW50VGFyZ2V0CiAgICAgICAgfTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnModGFyZ2V0RmliZXIsIHJlYWN0TmFtZSkgewogICAgICAgIGZvciAodmFyIGNhcHR1cmVOYW1lID0gcmVhY3ROYW1lICsgIkNhcHR1cmUiLCBsaXN0ZW5lcnMgPSBbXTsgbnVsbCAhPT0gdGFyZ2V0RmliZXI7ICkgewogICAgICAgICAgdmFyIF9pbnN0YW5jZTMgPSB0YXJnZXRGaWJlciwgc3RhdGVOb2RlID0gX2luc3RhbmNlMy5zdGF0ZU5vZGU7CiAgICAgICAgICBfaW5zdGFuY2UzID0gX2luc3RhbmNlMy50YWc7CiAgICAgICAgICA1ICE9PSBfaW5zdGFuY2UzICYmIDI2ICE9PSBfaW5zdGFuY2UzICYmIDI3ICE9PSBfaW5zdGFuY2UzIHx8IG51bGwgPT09IHN0YXRlTm9kZSB8fCAoX2luc3RhbmNlMyA9IGdldExpc3RlbmVyKHRhcmdldEZpYmVyLCBjYXB0dXJlTmFtZSksIG51bGwgIT0gX2luc3RhbmNlMyAmJiBsaXN0ZW5lcnMudW5zaGlmdCgKICAgICAgICAgICAgY3JlYXRlRGlzcGF0Y2hMaXN0ZW5lcih0YXJnZXRGaWJlciwgX2luc3RhbmNlMywgc3RhdGVOb2RlKQogICAgICAgICAgKSwgX2luc3RhbmNlMyA9IGdldExpc3RlbmVyKHRhcmdldEZpYmVyLCByZWFjdE5hbWUpLCBudWxsICE9IF9pbnN0YW5jZTMgJiYgbGlzdGVuZXJzLnB1c2goCiAgICAgICAgICAgIGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIodGFyZ2V0RmliZXIsIF9pbnN0YW5jZTMsIHN0YXRlTm9kZSkKICAgICAgICAgICkpOwogICAgICAgICAgaWYgKDMgPT09IHRhcmdldEZpYmVyLnRhZykgcmV0dXJuIGxpc3RlbmVyczsKICAgICAgICAgIHRhcmdldEZpYmVyID0gdGFyZ2V0RmliZXIucmV0dXJuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gW107CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0UGFyZW50KGluc3QpIHsKICAgICAgICBpZiAobnVsbCA9PT0gaW5zdCkgcmV0dXJuIG51bGw7CiAgICAgICAgZG8KICAgICAgICAgIGluc3QgPSBpbnN0LnJldHVybjsKICAgICAgICB3aGlsZSAoaW5zdCAmJiA1ICE9PSBpbnN0LnRhZyAmJiAyNyAhPT0gaW5zdC50YWcpOwogICAgICAgIHJldHVybiBpbnN0ID8gaW5zdCA6IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYWNjdW11bGF0ZUVudGVyTGVhdmVMaXN0ZW5lcnNGb3JFdmVudChkaXNwYXRjaFF1ZXVlLCBldmVudCwgdGFyZ2V0LCBjb21tb24sIGluQ2FwdHVyZVBoYXNlKSB7CiAgICAgICAgZm9yICh2YXIgcmVnaXN0cmF0aW9uTmFtZSA9IGV2ZW50Ll9yZWFjdE5hbWUsIGxpc3RlbmVycyA9IFtdOyBudWxsICE9PSB0YXJnZXQgJiYgdGFyZ2V0ICE9PSBjb21tb247ICkgewogICAgICAgICAgdmFyIF9pbnN0YW5jZTQgPSB0YXJnZXQsIGFsdGVybmF0ZSA9IF9pbnN0YW5jZTQuYWx0ZXJuYXRlLCBzdGF0ZU5vZGUgPSBfaW5zdGFuY2U0LnN0YXRlTm9kZTsKICAgICAgICAgIF9pbnN0YW5jZTQgPSBfaW5zdGFuY2U0LnRhZzsKICAgICAgICAgIGlmIChudWxsICE9PSBhbHRlcm5hdGUgJiYgYWx0ZXJuYXRlID09PSBjb21tb24pIGJyZWFrOwogICAgICAgICAgNSAhPT0gX2luc3RhbmNlNCAmJiAyNiAhPT0gX2luc3RhbmNlNCAmJiAyNyAhPT0gX2luc3RhbmNlNCB8fCBudWxsID09PSBzdGF0ZU5vZGUgfHwgKGFsdGVybmF0ZSA9IHN0YXRlTm9kZSwgaW5DYXB0dXJlUGhhc2UgPyAoc3RhdGVOb2RlID0gZ2V0TGlzdGVuZXIodGFyZ2V0LCByZWdpc3RyYXRpb25OYW1lKSwgbnVsbCAhPSBzdGF0ZU5vZGUgJiYgbGlzdGVuZXJzLnVuc2hpZnQoCiAgICAgICAgICAgIGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIodGFyZ2V0LCBzdGF0ZU5vZGUsIGFsdGVybmF0ZSkKICAgICAgICAgICkpIDogaW5DYXB0dXJlUGhhc2UgfHwgKHN0YXRlTm9kZSA9IGdldExpc3RlbmVyKHRhcmdldCwgcmVnaXN0cmF0aW9uTmFtZSksIG51bGwgIT0gc3RhdGVOb2RlICYmIGxpc3RlbmVycy5wdXNoKAogICAgICAgICAgICBjcmVhdGVEaXNwYXRjaExpc3RlbmVyKHRhcmdldCwgc3RhdGVOb2RlLCBhbHRlcm5hdGUpCiAgICAgICAgICApKSk7CiAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQucmV0dXJuOwogICAgICAgIH0KICAgICAgICAwICE9PSBsaXN0ZW5lcnMubGVuZ3RoICYmIGRpc3BhdGNoUXVldWUucHVzaCh7IGV2ZW50LCBsaXN0ZW5lcnMgfSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzSW5EZXZlbG9wbWVudCh0eXBlLCBwcm9wcykgewogICAgICAgIHZhbGlkYXRlUHJvcGVydGllcyQyKHR5cGUsIHByb3BzKTsKICAgICAgICAiaW5wdXQiICE9PSB0eXBlICYmICJ0ZXh0YXJlYSIgIT09IHR5cGUgJiYgInNlbGVjdCIgIT09IHR5cGUgfHwgbnVsbCA9PSBwcm9wcyB8fCBudWxsICE9PSBwcm9wcy52YWx1ZSB8fCBkaWRXYXJuVmFsdWVOdWxsIHx8IChkaWRXYXJuVmFsdWVOdWxsID0gdHJ1ZSwgInNlbGVjdCIgPT09IHR5cGUgJiYgcHJvcHMubXVsdGlwbGUgPyBjb25zb2xlLmVycm9yKAogICAgICAgICAgImB2YWx1ZWAgcHJvcCBvbiBgJXNgIHNob3VsZCBub3QgYmUgbnVsbC4gQ29uc2lkZXIgdXNpbmcgYW4gZW1wdHkgYXJyYXkgd2hlbiBgbXVsdGlwbGVgIGlzIHNldCB0byBgdHJ1ZWAgdG8gY2xlYXIgdGhlIGNvbXBvbmVudCBvciBgdW5kZWZpbmVkYCBmb3IgdW5jb250cm9sbGVkIGNvbXBvbmVudHMuIiwKICAgICAgICAgIHR5cGUKICAgICAgICApIDogY29uc29sZS5lcnJvcigKICAgICAgICAgICJgdmFsdWVgIHByb3Agb24gYCVzYCBzaG91bGQgbm90IGJlIG51bGwuIENvbnNpZGVyIHVzaW5nIGFuIGVtcHR5IHN0cmluZyB0byBjbGVhciB0aGUgY29tcG9uZW50IG9yIGB1bmRlZmluZWRgIGZvciB1bmNvbnRyb2xsZWQgY29tcG9uZW50cy4iLAogICAgICAgICAgdHlwZQogICAgICAgICkpOwogICAgICAgIHZhciBldmVudFJlZ2lzdHJ5ID0gewogICAgICAgICAgcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcywKICAgICAgICAgIHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXMKICAgICAgICB9OwogICAgICAgIGlzQ3VzdG9tRWxlbWVudCh0eXBlKSB8fCAic3RyaW5nIiA9PT0gdHlwZW9mIHByb3BzLmlzIHx8IHdhcm5Vbmtub3duUHJvcGVydGllcyh0eXBlLCBwcm9wcywgZXZlbnRSZWdpc3RyeSk7CiAgICAgICAgcHJvcHMuY29udGVudEVkaXRhYmxlICYmICFwcm9wcy5zdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgJiYgbnVsbCAhPSBwcm9wcy5jaGlsZHJlbiAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkEgY29tcG9uZW50IGlzIGBjb250ZW50RWRpdGFibGVgIGFuZCBjb250YWlucyBgY2hpbGRyZW5gIG1hbmFnZWQgYnkgUmVhY3QuIEl0IGlzIG5vdyB5b3VyIHJlc3BvbnNpYmlsaXR5IHRvIGd1YXJhbnRlZSB0aGF0IG5vbmUgb2YgdGhvc2Ugbm9kZXMgYXJlIHVuZXhwZWN0ZWRseSBtb2RpZmllZCBvciBkdXBsaWNhdGVkLiBUaGlzIGlzIHByb2JhYmx5IG5vdCBpbnRlbnRpb25hbC4iCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB3YXJuRm9yUHJvcERpZmZlcmVuY2UocHJvcE5hbWUsIHNlcnZlclZhbHVlLCBjbGllbnRWYWx1ZSwgc2VydmVyRGlmZmVyZW5jZXMpIHsKICAgICAgICBzZXJ2ZXJWYWx1ZSAhPT0gY2xpZW50VmFsdWUgJiYgKGNsaWVudFZhbHVlID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKGNsaWVudFZhbHVlKSwgbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKHNlcnZlclZhbHVlKSAhPT0gY2xpZW50VmFsdWUgJiYgKHNlcnZlckRpZmZlcmVuY2VzW3Byb3BOYW1lXSA9IHNlcnZlclZhbHVlKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gd2FybkZvckV4dHJhQXR0cmlidXRlcyhkb21FbGVtZW50LCBhdHRyaWJ1dGVOYW1lcywgc2VydmVyRGlmZmVyZW5jZXMpIHsKICAgICAgICBhdHRyaWJ1dGVOYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKGF0dHJpYnV0ZU5hbWUpIHsKICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzW2dldFByb3BOYW1lRnJvbUF0dHJpYnV0ZU5hbWUoYXR0cmlidXRlTmFtZSldID0gInN0eWxlIiA9PT0gYXR0cmlidXRlTmFtZSA/IGdldFN0eWxlc09iamVjdEZyb21FbGVtZW50KGRvbUVsZW1lbnQpIDogZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKHJlZ2lzdHJhdGlvbk5hbWUsIGxpc3RlbmVyKSB7CiAgICAgICAgZmFsc2UgPT09IGxpc3RlbmVyID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICJFeHBlY3RlZCBgJXNgIGxpc3RlbmVyIHRvIGJlIGEgZnVuY3Rpb24sIGluc3RlYWQgZ290IGBmYWxzZWAuXG5cbklmIHlvdSB1c2VkIHRvIGNvbmRpdGlvbmFsbHkgb21pdCBpdCB3aXRoICVzPXtjb25kaXRpb24gJiYgdmFsdWV9LCBwYXNzICVzPXtjb25kaXRpb24gPyB2YWx1ZSA6IHVuZGVmaW5lZH0gaW5zdGVhZC4iLAogICAgICAgICAgcmVnaXN0cmF0aW9uTmFtZSwKICAgICAgICAgIHJlZ2lzdHJhdGlvbk5hbWUsCiAgICAgICAgICByZWdpc3RyYXRpb25OYW1lCiAgICAgICAgKSA6IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiRXhwZWN0ZWQgYCVzYCBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLCBpbnN0ZWFkIGdvdCBhIHZhbHVlIG9mIGAlc2AgdHlwZS4iLAogICAgICAgICAgcmVnaXN0cmF0aW9uTmFtZSwKICAgICAgICAgIHR5cGVvZiBsaXN0ZW5lcgogICAgICAgICk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbm9ybWFsaXplSFRNTChwYXJlbnQsIGh0bWwpIHsKICAgICAgICBwYXJlbnQgPSBwYXJlbnQubmFtZXNwYWNlVVJJID09PSBNQVRIX05BTUVTUEFDRSB8fCBwYXJlbnQubmFtZXNwYWNlVVJJID09PSBTVkdfTkFNRVNQQUNFID8gcGFyZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKAogICAgICAgICAgcGFyZW50Lm5hbWVzcGFjZVVSSSwKICAgICAgICAgIHBhcmVudC50YWdOYW1lCiAgICAgICAgKSA6IHBhcmVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocGFyZW50LnRhZ05hbWUpOwogICAgICAgIHBhcmVudC5pbm5lckhUTUwgPSBodG1sOwogICAgICAgIHJldHVybiBwYXJlbnQuaW5uZXJIVE1MOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShtYXJrdXApIHsKICAgICAgICB3aWxsQ29lcmNpb25UaHJvdyhtYXJrdXApICYmIChjb25zb2xlLmVycm9yKAogICAgICAgICAgIlRoZSBwcm92aWRlZCBIVE1MIG1hcmt1cCB1c2VzIGEgdmFsdWUgb2YgdW5zdXBwb3J0ZWQgdHlwZSAlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIHVzaW5nIGl0IGhlcmUuIiwKICAgICAgICAgIHR5cGVOYW1lKG1hcmt1cCkKICAgICAgICApLCB0ZXN0U3RyaW5nQ29lcmNpb24obWFya3VwKSk7CiAgICAgICAgcmV0dXJuICgic3RyaW5nIiA9PT0gdHlwZW9mIG1hcmt1cCA/IG1hcmt1cCA6ICIiICsgbWFya3VwKS5yZXBsYWNlKE5PUk1BTElaRV9ORVdMSU5FU19SRUdFWCwgIlxuIikucmVwbGFjZShOT1JNQUxJWkVfTlVMTF9BTkRfUkVQTEFDRU1FTlRfUkVHRVgsICIiKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjaGVja0ZvclVubWF0Y2hlZFRleHQoc2VydmVyVGV4dCwgY2xpZW50VGV4dCkgewogICAgICAgIGNsaWVudFRleHQgPSBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUoY2xpZW50VGV4dCk7CiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShzZXJ2ZXJUZXh0KSA9PT0gY2xpZW50VGV4dCA/IHRydWUgOiBmYWxzZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywga2V5LCB2YWx1ZSwgcHJvcHMsIHByZXZWYWx1ZSkgewogICAgICAgIHN3aXRjaCAoa2V5KSB7CiAgICAgICAgICBjYXNlICJjaGlsZHJlbiI6CiAgICAgICAgICAgIGlmICgic3RyaW5nIiA9PT0gdHlwZW9mIHZhbHVlKQogICAgICAgICAgICAgIHZhbGlkYXRlVGV4dE5lc3RpbmcodmFsdWUsIHRhZywgZmFsc2UpLCAiYm9keSIgPT09IHRhZyB8fCAidGV4dGFyZWEiID09PSB0YWcgJiYgIiIgPT09IHZhbHVlIHx8IHNldFRleHRDb250ZW50KGRvbUVsZW1lbnQsIHZhbHVlKTsKICAgICAgICAgICAgZWxzZSBpZiAoIm51bWJlciIgPT09IHR5cGVvZiB2YWx1ZSB8fCAiYmlnaW50IiA9PT0gdHlwZW9mIHZhbHVlKQogICAgICAgICAgICAgIHZhbGlkYXRlVGV4dE5lc3RpbmcoIiIgKyB2YWx1ZSwgdGFnLCBmYWxzZSksICJib2R5IiAhPT0gdGFnICYmIHNldFRleHRDb250ZW50KGRvbUVsZW1lbnQsICIiICsgdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImNsYXNzTmFtZSI6CiAgICAgICAgICAgIHNldFZhbHVlRm9yS25vd25BdHRyaWJ1dGUoZG9tRWxlbWVudCwgImNsYXNzIiwgdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgInRhYkluZGV4IjoKICAgICAgICAgICAgc2V0VmFsdWVGb3JLbm93bkF0dHJpYnV0ZShkb21FbGVtZW50LCAidGFiaW5kZXgiLCB2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiZGlyIjoKICAgICAgICAgIGNhc2UgInJvbGUiOgogICAgICAgICAgY2FzZSAidmlld0JveCI6CiAgICAgICAgICBjYXNlICJ3aWR0aCI6CiAgICAgICAgICBjYXNlICJoZWlnaHQiOgogICAgICAgICAgICBzZXRWYWx1ZUZvcktub3duQXR0cmlidXRlKGRvbUVsZW1lbnQsIGtleSwgdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgInN0eWxlIjoKICAgICAgICAgICAgc2V0VmFsdWVGb3JTdHlsZXMoZG9tRWxlbWVudCwgdmFsdWUsIHByZXZWYWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiZGF0YSI6CiAgICAgICAgICAgIGlmICgib2JqZWN0IiAhPT0gdGFnKSB7CiAgICAgICAgICAgICAgc2V0VmFsdWVGb3JLbm93bkF0dHJpYnV0ZShkb21FbGVtZW50LCAiZGF0YSIsIHZhbHVlKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgY2FzZSAic3JjIjoKICAgICAgICAgIGNhc2UgImhyZWYiOgogICAgICAgICAgICBpZiAoIiIgPT09IHZhbHVlICYmICgiYSIgIT09IHRhZyB8fCAiaHJlZiIgIT09IGtleSkpIHsKICAgICAgICAgICAgICAic3JjIiA9PT0ga2V5ID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICdBbiBlbXB0eSBzdHJpbmcgKCIiKSB3YXMgcGFzc2VkIHRvIHRoZSAlcyBhdHRyaWJ1dGUuIFRoaXMgbWF5IGNhdXNlIHRoZSBicm93c2VyIHRvIGRvd25sb2FkIHRoZSB3aG9sZSBwYWdlIGFnYWluIG92ZXIgdGhlIG5ldHdvcmsuIFRvIGZpeCB0aGlzLCBlaXRoZXIgZG8gbm90IHJlbmRlciB0aGUgZWxlbWVudCBhdCBhbGwgb3IgcGFzcyBudWxsIHRvICVzIGluc3RlYWQgb2YgYW4gZW1wdHkgc3RyaW5nLicsCiAgICAgICAgICAgICAgICBrZXksCiAgICAgICAgICAgICAgICBrZXkKICAgICAgICAgICAgICApIDogY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICdBbiBlbXB0eSBzdHJpbmcgKCIiKSB3YXMgcGFzc2VkIHRvIHRoZSAlcyBhdHRyaWJ1dGUuIFRvIGZpeCB0aGlzLCBlaXRoZXIgZG8gbm90IHJlbmRlciB0aGUgZWxlbWVudCBhdCBhbGwgb3IgcGFzcyBudWxsIHRvICVzIGluc3RlYWQgb2YgYW4gZW1wdHkgc3RyaW5nLicsCiAgICAgICAgICAgICAgICBrZXksCiAgICAgICAgICAgICAgICBrZXkKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKG51bGwgPT0gdmFsdWUgfHwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHZhbHVlIHx8ICJzeW1ib2wiID09PSB0eXBlb2YgdmFsdWUgfHwgImJvb2xlYW4iID09PSB0eXBlb2YgdmFsdWUpIHsKICAgICAgICAgICAgICBkb21FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShrZXkpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIGtleSk7CiAgICAgICAgICAgIHZhbHVlID0gc2FuaXRpemVVUkwoIiIgKyB2YWx1ZSk7CiAgICAgICAgICAgIGRvbUVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImFjdGlvbiI6CiAgICAgICAgICBjYXNlICJmb3JtQWN0aW9uIjoKICAgICAgICAgICAgbnVsbCAhPSB2YWx1ZSAmJiAoImZvcm0iID09PSB0YWcgPyAiZm9ybUFjdGlvbiIgPT09IGtleSA/IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIllvdSBjYW4gb25seSBwYXNzIHRoZSBmb3JtQWN0aW9uIHByb3AgdG8gPGlucHV0PiBvciA8YnV0dG9uPi4gVXNlIHRoZSBhY3Rpb24gcHJvcCBvbiA8Zm9ybT4uIgogICAgICAgICAgICApIDogImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHZhbHVlICYmIChudWxsID09IHByb3BzLmVuY1R5cGUgJiYgbnVsbCA9PSBwcm9wcy5tZXRob2QgfHwgZGlkV2FybkZvcm1BY3Rpb25NZXRob2QgfHwgKGRpZFdhcm5Gb3JtQWN0aW9uTWV0aG9kID0gdHJ1ZSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiQ2Fubm90IHNwZWNpZnkgYSBlbmNUeXBlIG9yIG1ldGhvZCBmb3IgYSBmb3JtIHRoYXQgc3BlY2lmaWVzIGEgZnVuY3Rpb24gYXMgdGhlIGFjdGlvbi4gUmVhY3QgcHJvdmlkZXMgdGhvc2UgYXV0b21hdGljYWxseS4gVGhleSB3aWxsIGdldCBvdmVycmlkZGVuLiIKICAgICAgICAgICAgKSksIG51bGwgPT0gcHJvcHMudGFyZ2V0IHx8IGRpZFdhcm5Gb3JtQWN0aW9uVGFyZ2V0IHx8IChkaWRXYXJuRm9ybUFjdGlvblRhcmdldCA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIkNhbm5vdCBzcGVjaWZ5IGEgdGFyZ2V0IGZvciBhIGZvcm0gdGhhdCBzcGVjaWZpZXMgYSBmdW5jdGlvbiBhcyB0aGUgYWN0aW9uLiBUaGUgZnVuY3Rpb24gd2lsbCBhbHdheXMgYmUgZXhlY3V0ZWQgaW4gdGhlIHNhbWUgd2luZG93LiIKICAgICAgICAgICAgKSkpIDogImlucHV0IiA9PT0gdGFnIHx8ICJidXR0b24iID09PSB0YWcgPyAiYWN0aW9uIiA9PT0ga2V5ID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiWW91IGNhbiBvbmx5IHBhc3MgdGhlIGFjdGlvbiBwcm9wIHRvIDxmb3JtPi4gVXNlIHRoZSBmb3JtQWN0aW9uIHByb3Agb24gPGlucHV0PiBvciA8YnV0dG9uPi4iCiAgICAgICAgICAgICkgOiAiaW5wdXQiICE9PSB0YWcgfHwgInN1Ym1pdCIgPT09IHByb3BzLnR5cGUgfHwgImltYWdlIiA9PT0gcHJvcHMudHlwZSB8fCBkaWRXYXJuRm9ybUFjdGlvblR5cGUgPyAiYnV0dG9uIiAhPT0gdGFnIHx8IG51bGwgPT0gcHJvcHMudHlwZSB8fCAic3VibWl0IiA9PT0gcHJvcHMudHlwZSB8fCBkaWRXYXJuRm9ybUFjdGlvblR5cGUgPyAiZnVuY3Rpb24iID09PSB0eXBlb2YgdmFsdWUgJiYgKG51bGwgPT0gcHJvcHMubmFtZSB8fCBkaWRXYXJuRm9ybUFjdGlvbk5hbWUgfHwgKGRpZFdhcm5Gb3JtQWN0aW9uTmFtZSA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgJ0Nhbm5vdCBzcGVjaWZ5IGEgIm5hbWUiIHByb3AgZm9yIGEgYnV0dG9uIHRoYXQgc3BlY2lmaWVzIGEgZnVuY3Rpb24gYXMgYSBmb3JtQWN0aW9uLiBSZWFjdCBuZWVkcyBpdCB0byBlbmNvZGUgd2hpY2ggYWN0aW9uIHNob3VsZCBiZSBpbnZva2VkLiBJdCB3aWxsIGdldCBvdmVycmlkZGVuLicKICAgICAgICAgICAgKSksIG51bGwgPT0gcHJvcHMuZm9ybUVuY1R5cGUgJiYgbnVsbCA9PSBwcm9wcy5mb3JtTWV0aG9kIHx8IGRpZFdhcm5Gb3JtQWN0aW9uTWV0aG9kIHx8IChkaWRXYXJuRm9ybUFjdGlvbk1ldGhvZCA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIkNhbm5vdCBzcGVjaWZ5IGEgZm9ybUVuY1R5cGUgb3IgZm9ybU1ldGhvZCBmb3IgYSBidXR0b24gdGhhdCBzcGVjaWZpZXMgYSBmdW5jdGlvbiBhcyBhIGZvcm1BY3Rpb24uIFJlYWN0IHByb3ZpZGVzIHRob3NlIGF1dG9tYXRpY2FsbHkuIFRoZXkgd2lsbCBnZXQgb3ZlcnJpZGRlbi4iCiAgICAgICAgICAgICkpLCBudWxsID09IHByb3BzLmZvcm1UYXJnZXQgfHwgZGlkV2FybkZvcm1BY3Rpb25UYXJnZXQgfHwgKGRpZFdhcm5Gb3JtQWN0aW9uVGFyZ2V0ID0gdHJ1ZSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiQ2Fubm90IHNwZWNpZnkgYSBmb3JtVGFyZ2V0IGZvciBhIGJ1dHRvbiB0aGF0IHNwZWNpZmllcyBhIGZ1bmN0aW9uIGFzIGEgZm9ybUFjdGlvbi4gVGhlIGZ1bmN0aW9uIHdpbGwgYWx3YXlzIGJlIGV4ZWN1dGVkIGluIHRoZSBzYW1lIHdpbmRvdy4iCiAgICAgICAgICAgICkpKSA6IChkaWRXYXJuRm9ybUFjdGlvblR5cGUgPSB0cnVlLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICdBIGJ1dHRvbiBjYW4gb25seSBzcGVjaWZ5IGEgZm9ybUFjdGlvbiBhbG9uZyB3aXRoIHR5cGU9InN1Ym1pdCIgb3Igbm8gdHlwZS4nCiAgICAgICAgICAgICkpIDogKGRpZFdhcm5Gb3JtQWN0aW9uVHlwZSA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgJ0FuIGlucHV0IGNhbiBvbmx5IHNwZWNpZnkgYSBmb3JtQWN0aW9uIGFsb25nIHdpdGggdHlwZT0ic3VibWl0IiBvciB0eXBlPSJpbWFnZSIuJwogICAgICAgICAgICApKSA6ICJhY3Rpb24iID09PSBrZXkgPyBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICJZb3UgY2FuIG9ubHkgcGFzcyB0aGUgYWN0aW9uIHByb3AgdG8gPGZvcm0+LiIKICAgICAgICAgICAgKSA6IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIllvdSBjYW4gb25seSBwYXNzIHRoZSBmb3JtQWN0aW9uIHByb3AgdG8gPGlucHV0PiBvciA8YnV0dG9uPi4iCiAgICAgICAgICAgICkpOwogICAgICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHZhbHVlKSB7CiAgICAgICAgICAgICAgZG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICBrZXksCiAgICAgICAgICAgICAgICAiamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ0EgUmVhY3QgZm9ybSB3YXMgdW5leHBlY3RlZGx5IHN1Ym1pdHRlZC4gSWYgeW91IGNhbGxlZCBmb3JtLnN1Ym1pdCgpIG1hbnVhbGx5LCBjb25zaWRlciB1c2luZyBmb3JtLnJlcXVlc3RTdWJtaXQoKSBpbnN0ZWFkLiBJZiB5b3VcXCdyZSB0cnlpbmcgdG8gdXNlIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIGluIGEgc3VibWl0IGV2ZW50IGhhbmRsZXIsIGNvbnNpZGVyIGFsc28gY2FsbGluZyBldmVudC5wcmV2ZW50RGVmYXVsdCgpLicpIgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBwcmV2VmFsdWUgJiYgKCJmb3JtQWN0aW9uIiA9PT0ga2V5ID8gKCJpbnB1dCIgIT09IHRhZyAmJiBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgIm5hbWUiLCBwcm9wcy5uYW1lLCBwcm9wcywgbnVsbCksIHNldFByb3AoCiAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgdGFnLAogICAgICAgICAgICAgICAgImZvcm1FbmNUeXBlIiwKICAgICAgICAgICAgICAgIHByb3BzLmZvcm1FbmNUeXBlLAogICAgICAgICAgICAgICAgcHJvcHMsCiAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgKSwgc2V0UHJvcCgKICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICB0YWcsCiAgICAgICAgICAgICAgICAiZm9ybU1ldGhvZCIsCiAgICAgICAgICAgICAgICBwcm9wcy5mb3JtTWV0aG9kLAogICAgICAgICAgICAgICAgcHJvcHMsCiAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgKSwgc2V0UHJvcCgKICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICB0YWcsCiAgICAgICAgICAgICAgICAiZm9ybVRhcmdldCIsCiAgICAgICAgICAgICAgICBwcm9wcy5mb3JtVGFyZ2V0LAogICAgICAgICAgICAgICAgcHJvcHMsCiAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgKSkgOiAoc2V0UHJvcCgKICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICB0YWcsCiAgICAgICAgICAgICAgICAiZW5jVHlwZSIsCiAgICAgICAgICAgICAgICBwcm9wcy5lbmNUeXBlLAogICAgICAgICAgICAgICAgcHJvcHMsCiAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgKSwgc2V0UHJvcChkb21FbGVtZW50LCB0YWcsICJtZXRob2QiLCBwcm9wcy5tZXRob2QsIHByb3BzLCBudWxsKSwgc2V0UHJvcCgKICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICB0YWcsCiAgICAgICAgICAgICAgICAidGFyZ2V0IiwKICAgICAgICAgICAgICAgIHByb3BzLnRhcmdldCwKICAgICAgICAgICAgICAgIHByb3BzLAogICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICkpKTsKICAgICAgICAgICAgaWYgKG51bGwgPT0gdmFsdWUgfHwgInN5bWJvbCIgPT09IHR5cGVvZiB2YWx1ZSB8fCAiYm9vbGVhbiIgPT09IHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgICAgIGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwga2V5KTsKICAgICAgICAgICAgdmFsdWUgPSBzYW5pdGl6ZVVSTCgiIiArIHZhbHVlKTsKICAgICAgICAgICAgZG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAib25DbGljayI6CiAgICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiYgKCJmdW5jdGlvbiIgIT09IHR5cGVvZiB2YWx1ZSAmJiB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIoa2V5LCB2YWx1ZSksIGRvbUVsZW1lbnQub25jbGljayA9IG5vb3AkMSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAib25TY3JvbGwiOgogICAgICAgICAgICBudWxsICE9IHZhbHVlICYmICgiZnVuY3Rpb24iICE9PSB0eXBlb2YgdmFsdWUgJiYgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpLCBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJzY3JvbGwiLCBkb21FbGVtZW50KSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAib25TY3JvbGxFbmQiOgogICAgICAgICAgICBudWxsICE9IHZhbHVlICYmICgiZnVuY3Rpb24iICE9PSB0eXBlb2YgdmFsdWUgJiYgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpLCBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJzY3JvbGxlbmQiLCBkb21FbGVtZW50KSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOgogICAgICAgICAgICBpZiAobnVsbCAhPSB2YWx1ZSkgewogICAgICAgICAgICAgIGlmICgib2JqZWN0IiAhPT0gdHlwZW9mIHZhbHVlIHx8ICEoIl9faHRtbCIgaW4gdmFsdWUpKQogICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAgICJgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgIG11c3QgYmUgaW4gdGhlIGZvcm0gYHtfX2h0bWw6IC4uLn1gLiBQbGVhc2UgdmlzaXQgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9kYW5nZXJvdXNseS1zZXQtaW5uZXItaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGtleSA9IHZhbHVlLl9faHRtbDsKICAgICAgICAgICAgICBpZiAobnVsbCAhPSBrZXkpIHsKICAgICAgICAgICAgICAgIGlmIChudWxsICE9IHByb3BzLmNoaWxkcmVuKQogICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICAgICAiQ2FuIG9ubHkgc2V0IG9uZSBvZiBgY2hpbGRyZW5gIG9yIGBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAuIgogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgZG9tRWxlbWVudC5pbm5lckhUTUwgPSBrZXk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAibXVsdGlwbGUiOgogICAgICAgICAgICBkb21FbGVtZW50Lm11bHRpcGxlID0gdmFsdWUgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHZhbHVlICYmICJzeW1ib2wiICE9PSB0eXBlb2YgdmFsdWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAibXV0ZWQiOgogICAgICAgICAgICBkb21FbGVtZW50Lm11dGVkID0gdmFsdWUgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHZhbHVlICYmICJzeW1ib2wiICE9PSB0eXBlb2YgdmFsdWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIjoKICAgICAgICAgIGNhc2UgInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyI6CiAgICAgICAgICBjYXNlICJkZWZhdWx0VmFsdWUiOgogICAgICAgICAgY2FzZSAiZGVmYXVsdENoZWNrZWQiOgogICAgICAgICAgY2FzZSAiaW5uZXJIVE1MIjoKICAgICAgICAgIGNhc2UgInJlZiI6CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiYXV0b0ZvY3VzIjoKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJ4bGlua0hyZWYiOgogICAgICAgICAgICBpZiAobnVsbCA9PSB2YWx1ZSB8fCAiZnVuY3Rpb24iID09PSB0eXBlb2YgdmFsdWUgfHwgImJvb2xlYW4iID09PSB0eXBlb2YgdmFsdWUgfHwgInN5bWJvbCIgPT09IHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgICAgIGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCJ4bGluazpocmVmIik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwga2V5KTsKICAgICAgICAgICAga2V5ID0gc2FuaXRpemVVUkwoIiIgKyB2YWx1ZSk7CiAgICAgICAgICAgIGRvbUVsZW1lbnQuc2V0QXR0cmlidXRlTlMoeGxpbmtOYW1lc3BhY2UsICJ4bGluazpocmVmIiwga2V5KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJjb250ZW50RWRpdGFibGUiOgogICAgICAgICAgY2FzZSAic3BlbGxDaGVjayI6CiAgICAgICAgICBjYXNlICJkcmFnZ2FibGUiOgogICAgICAgICAgY2FzZSAidmFsdWUiOgogICAgICAgICAgY2FzZSAiYXV0b1JldmVyc2UiOgogICAgICAgICAgY2FzZSAiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCI6CiAgICAgICAgICBjYXNlICJmb2N1c2FibGUiOgogICAgICAgICAgY2FzZSAicHJlc2VydmVBbHBoYSI6CiAgICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHZhbHVlICYmICJzeW1ib2wiICE9PSB0eXBlb2YgdmFsdWUgPyAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwga2V5KSwgZG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoa2V5LCAiIiArIHZhbHVlKSkgOiBkb21FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShrZXkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImluZXJ0IjoKICAgICAgICAgICAgIiIgIT09IHZhbHVlIHx8IGRpZFdhcm5Gb3JOZXdCb29sZWFuUHJvcHNXaXRoRW1wdHlWYWx1ZVtrZXldIHx8IChkaWRXYXJuRm9yTmV3Qm9vbGVhblByb3BzV2l0aEVtcHR5VmFsdWVba2V5XSA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIlJlY2VpdmVkIGFuIGVtcHR5IHN0cmluZyBmb3IgYSBib29sZWFuIGF0dHJpYnV0ZSBgJXNgLiBUaGlzIHdpbGwgdHJlYXQgdGhlIGF0dHJpYnV0ZSBhcyBpZiBpdCB3ZXJlIGZhbHNlLiBFaXRoZXIgcGFzcyBgZmFsc2VgIHRvIHNpbGVuY2UgdGhpcyB3YXJuaW5nLCBvciBwYXNzIGB0cnVlYCBpZiB5b3UgdXNlZCBhbiBlbXB0eSBzdHJpbmcgaW4gZWFybGllciB2ZXJzaW9ucyBvZiBSZWFjdCB0byBpbmRpY2F0ZSB0aGlzIGF0dHJpYnV0ZSBpcyB0cnVlLiIsCiAgICAgICAgICAgICAga2V5CiAgICAgICAgICAgICkpOwogICAgICAgICAgY2FzZSAiYWxsb3dGdWxsU2NyZWVuIjoKICAgICAgICAgIGNhc2UgImFzeW5jIjoKICAgICAgICAgIGNhc2UgImF1dG9QbGF5IjoKICAgICAgICAgIGNhc2UgImNvbnRyb2xzIjoKICAgICAgICAgIGNhc2UgImRlZmF1bHQiOgogICAgICAgICAgY2FzZSAiZGVmZXIiOgogICAgICAgICAgY2FzZSAiZGlzYWJsZWQiOgogICAgICAgICAgY2FzZSAiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUiOgogICAgICAgICAgY2FzZSAiZGlzYWJsZVJlbW90ZVBsYXliYWNrIjoKICAgICAgICAgIGNhc2UgImZvcm1Ob1ZhbGlkYXRlIjoKICAgICAgICAgIGNhc2UgImhpZGRlbiI6CiAgICAgICAgICBjYXNlICJsb29wIjoKICAgICAgICAgIGNhc2UgIm5vTW9kdWxlIjoKICAgICAgICAgIGNhc2UgIm5vVmFsaWRhdGUiOgogICAgICAgICAgY2FzZSAib3BlbiI6CiAgICAgICAgICBjYXNlICJwbGF5c0lubGluZSI6CiAgICAgICAgICBjYXNlICJyZWFkT25seSI6CiAgICAgICAgICBjYXNlICJyZXF1aXJlZCI6CiAgICAgICAgICBjYXNlICJyZXZlcnNlZCI6CiAgICAgICAgICBjYXNlICJzY29wZWQiOgogICAgICAgICAgY2FzZSAic2VhbWxlc3MiOgogICAgICAgICAgY2FzZSAiaXRlbVNjb3BlIjoKICAgICAgICAgICAgdmFsdWUgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHZhbHVlICYmICJzeW1ib2wiICE9PSB0eXBlb2YgdmFsdWUgPyBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksICIiKSA6IGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiY2FwdHVyZSI6CiAgICAgICAgICBjYXNlICJkb3dubG9hZCI6CiAgICAgICAgICAgIHRydWUgPT09IHZhbHVlID8gZG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoa2V5LCAiIikgOiBmYWxzZSAhPT0gdmFsdWUgJiYgbnVsbCAhPSB2YWx1ZSAmJiAiZnVuY3Rpb24iICE9PSB0eXBlb2YgdmFsdWUgJiYgInN5bWJvbCIgIT09IHR5cGVvZiB2YWx1ZSA/IChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBrZXkpLCBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKSkgOiBkb21FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShrZXkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImNvbHMiOgogICAgICAgICAgY2FzZSAicm93cyI6CiAgICAgICAgICBjYXNlICJzaXplIjoKICAgICAgICAgIGNhc2UgInNwYW4iOgogICAgICAgICAgICBudWxsICE9IHZhbHVlICYmICJmdW5jdGlvbiIgIT09IHR5cGVvZiB2YWx1ZSAmJiAic3ltYm9sIiAhPT0gdHlwZW9mIHZhbHVlICYmICFpc05hTih2YWx1ZSkgJiYgMSA8PSB2YWx1ZSA/IChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBrZXkpLCBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKSkgOiBkb21FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShrZXkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgInJvd1NwYW4iOgogICAgICAgICAgY2FzZSAic3RhcnQiOgogICAgICAgICAgICBudWxsID09IHZhbHVlIHx8ICJmdW5jdGlvbiIgPT09IHR5cGVvZiB2YWx1ZSB8fCAic3ltYm9sIiA9PT0gdHlwZW9mIHZhbHVlIHx8IGlzTmFOKHZhbHVlKSA/IGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSkgOiAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwga2V5KSwgZG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgInBvcG92ZXIiOgogICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJiZWZvcmV0b2dnbGUiLCBkb21FbGVtZW50KTsKICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgidG9nZ2xlIiwgZG9tRWxlbWVudCk7CiAgICAgICAgICAgIHNldFZhbHVlRm9yQXR0cmlidXRlKGRvbUVsZW1lbnQsICJwb3BvdmVyIiwgdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgInhsaW5rQWN0dWF0ZSI6CiAgICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZSgKICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgIHhsaW5rTmFtZXNwYWNlLAogICAgICAgICAgICAgICJ4bGluazphY3R1YXRlIiwKICAgICAgICAgICAgICB2YWx1ZQogICAgICAgICAgICApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgInhsaW5rQXJjcm9sZSI6CiAgICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZSgKICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgIHhsaW5rTmFtZXNwYWNlLAogICAgICAgICAgICAgICJ4bGluazphcmNyb2xlIiwKICAgICAgICAgICAgICB2YWx1ZQogICAgICAgICAgICApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgInhsaW5rUm9sZSI6CiAgICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZSgKICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgIHhsaW5rTmFtZXNwYWNlLAogICAgICAgICAgICAgICJ4bGluazpyb2xlIiwKICAgICAgICAgICAgICB2YWx1ZQogICAgICAgICAgICApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgInhsaW5rU2hvdyI6CiAgICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZSgKICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgIHhsaW5rTmFtZXNwYWNlLAogICAgICAgICAgICAgICJ4bGluazpzaG93IiwKICAgICAgICAgICAgICB2YWx1ZQogICAgICAgICAgICApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgInhsaW5rVGl0bGUiOgogICAgICAgICAgICBzZXRWYWx1ZUZvck5hbWVzcGFjZWRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICB4bGlua05hbWVzcGFjZSwKICAgICAgICAgICAgICAieGxpbms6dGl0bGUiLAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAieGxpbmtUeXBlIjoKICAgICAgICAgICAgc2V0VmFsdWVGb3JOYW1lc3BhY2VkQXR0cmlidXRlKAogICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgeGxpbmtOYW1lc3BhY2UsCiAgICAgICAgICAgICAgInhsaW5rOnR5cGUiLAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAieG1sQmFzZSI6CiAgICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZSgKICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgIHhtbE5hbWVzcGFjZSwKICAgICAgICAgICAgICAieG1sOmJhc2UiLAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAieG1sTGFuZyI6CiAgICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZSgKICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgIHhtbE5hbWVzcGFjZSwKICAgICAgICAgICAgICAieG1sOmxhbmciLAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAieG1sU3BhY2UiOgogICAgICAgICAgICBzZXRWYWx1ZUZvck5hbWVzcGFjZWRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICB4bWxOYW1lc3BhY2UsCiAgICAgICAgICAgICAgInhtbDpzcGFjZSIsCiAgICAgICAgICAgICAgdmFsdWUKICAgICAgICAgICAgKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJpcyI6CiAgICAgICAgICAgIG51bGwgIT0gcHJldlZhbHVlICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgJ0Nhbm5vdCB1cGRhdGUgdGhlICJpcyIgcHJvcCBhZnRlciBpdCBoYXMgYmVlbiBpbml0aWFsaXplZC4nCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHNldFZhbHVlRm9yQXR0cmlidXRlKGRvbUVsZW1lbnQsICJpcyIsIHZhbHVlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJpbm5lclRleHQiOgogICAgICAgICAgY2FzZSAidGV4dENvbnRlbnQiOgogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgInBvcG92ZXJUYXJnZXQiOgogICAgICAgICAgICBkaWRXYXJuUG9wb3ZlclRhcmdldE9iamVjdCB8fCBudWxsID09IHZhbHVlIHx8ICJvYmplY3QiICE9PSB0eXBlb2YgdmFsdWUgfHwgKGRpZFdhcm5Qb3BvdmVyVGFyZ2V0T2JqZWN0ID0gdHJ1ZSwgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiVGhlIGBwb3BvdmVyVGFyZ2V0YCBwcm9wIGV4cGVjdHMgdGhlIElEIG9mIGFuIEVsZW1lbnQgYXMgYSBzdHJpbmcuIFJlY2VpdmVkICVzIGluc3RlYWQuIiwKICAgICAgICAgICAgICB2YWx1ZQogICAgICAgICAgICApKTsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICEoMiA8IGtleS5sZW5ndGgpIHx8ICJvIiAhPT0ga2V5WzBdICYmICJPIiAhPT0ga2V5WzBdIHx8ICJuIiAhPT0ga2V5WzFdICYmICJOIiAhPT0ga2V5WzFdID8gKGtleSA9IGdldEF0dHJpYnV0ZUFsaWFzKGtleSksIHNldFZhbHVlRm9yQXR0cmlidXRlKGRvbUVsZW1lbnQsIGtleSwgdmFsdWUpKSA6IHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBudWxsICE9IHZhbHVlICYmICJmdW5jdGlvbiIgIT09IHR5cGVvZiB2YWx1ZSAmJiB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIoa2V5LCB2YWx1ZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNldFByb3BPbkN1c3RvbUVsZW1lbnQoZG9tRWxlbWVudCwgdGFnLCBrZXksIHZhbHVlLCBwcm9wcywgcHJldlZhbHVlKSB7CiAgICAgICAgc3dpdGNoIChrZXkpIHsKICAgICAgICAgIGNhc2UgInN0eWxlIjoKICAgICAgICAgICAgc2V0VmFsdWVGb3JTdHlsZXMoZG9tRWxlbWVudCwgdmFsdWUsIHByZXZWYWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOgogICAgICAgICAgICBpZiAobnVsbCAhPSB2YWx1ZSkgewogICAgICAgICAgICAgIGlmICgib2JqZWN0IiAhPT0gdHlwZW9mIHZhbHVlIHx8ICEoIl9faHRtbCIgaW4gdmFsdWUpKQogICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAgICJgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgIG11c3QgYmUgaW4gdGhlIGZvcm0gYHtfX2h0bWw6IC4uLn1gLiBQbGVhc2UgdmlzaXQgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9kYW5nZXJvdXNseS1zZXQtaW5uZXItaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGtleSA9IHZhbHVlLl9faHRtbDsKICAgICAgICAgICAgICBpZiAobnVsbCAhPSBrZXkpIHsKICAgICAgICAgICAgICAgIGlmIChudWxsICE9IHByb3BzLmNoaWxkcmVuKQogICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICAgICAiQ2FuIG9ubHkgc2V0IG9uZSBvZiBgY2hpbGRyZW5gIG9yIGBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAuIgogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgZG9tRWxlbWVudC5pbm5lckhUTUwgPSBrZXk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiY2hpbGRyZW4iOgogICAgICAgICAgICAic3RyaW5nIiA9PT0gdHlwZW9mIHZhbHVlID8gc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgdmFsdWUpIDogKCJudW1iZXIiID09PSB0eXBlb2YgdmFsdWUgfHwgImJpZ2ludCIgPT09IHR5cGVvZiB2YWx1ZSkgJiYgc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgIiIgKyB2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAib25TY3JvbGwiOgogICAgICAgICAgICBudWxsICE9IHZhbHVlICYmICgiZnVuY3Rpb24iICE9PSB0eXBlb2YgdmFsdWUgJiYgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpLCBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJzY3JvbGwiLCBkb21FbGVtZW50KSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAib25TY3JvbGxFbmQiOgogICAgICAgICAgICBudWxsICE9IHZhbHVlICYmICgiZnVuY3Rpb24iICE9PSB0eXBlb2YgdmFsdWUgJiYgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpLCBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJzY3JvbGxlbmQiLCBkb21FbGVtZW50KSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAib25DbGljayI6CiAgICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiYgKCJmdW5jdGlvbiIgIT09IHR5cGVvZiB2YWx1ZSAmJiB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIoa2V5LCB2YWx1ZSksIGRvbUVsZW1lbnQub25jbGljayA9IG5vb3AkMSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIjoKICAgICAgICAgIGNhc2UgInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyI6CiAgICAgICAgICBjYXNlICJpbm5lckhUTUwiOgogICAgICAgICAgY2FzZSAicmVmIjoKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJpbm5lclRleHQiOgogICAgICAgICAgY2FzZSAidGV4dENvbnRlbnQiOgogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KGtleSkpCiAgICAgICAgICAgICAgbnVsbCAhPSB2YWx1ZSAmJiAiZnVuY3Rpb24iICE9PSB0eXBlb2YgdmFsdWUgJiYgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgYTogewogICAgICAgICAgICAgICAgaWYgKCJvIiA9PT0ga2V5WzBdICYmICJuIiA9PT0ga2V5WzFdICYmIChwcm9wcyA9IGtleS5lbmRzV2l0aCgiQ2FwdHVyZSIpLCB0YWcgPSBrZXkuc2xpY2UoMiwgcHJvcHMgPyBrZXkubGVuZ3RoIC0gNyA6IHZvaWQgMCksIHByZXZWYWx1ZSA9IGRvbUVsZW1lbnRbaW50ZXJuYWxQcm9wc0tleV0gfHwgbnVsbCwgcHJldlZhbHVlID0gbnVsbCAhPSBwcmV2VmFsdWUgPyBwcmV2VmFsdWVba2V5XSA6IG51bGwsICJmdW5jdGlvbiIgPT09IHR5cGVvZiBwcmV2VmFsdWUgJiYgZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHRhZywgcHJldlZhbHVlLCBwcm9wcyksICJmdW5jdGlvbiIgPT09IHR5cGVvZiB2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIHByZXZWYWx1ZSAmJiBudWxsICE9PSBwcmV2VmFsdWUgJiYgKGtleSBpbiBkb21FbGVtZW50ID8gZG9tRWxlbWVudFtrZXldID0gbnVsbCA6IGRvbUVsZW1lbnQuaGFzQXR0cmlidXRlKGtleSkgJiYgZG9tRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoa2V5KSk7CiAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0YWcsIHZhbHVlLCBwcm9wcyk7CiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBrZXkgaW4gZG9tRWxlbWVudCA/IGRvbUVsZW1lbnRba2V5XSA9IHZhbHVlIDogdHJ1ZSA9PT0gdmFsdWUgPyBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksICIiKSA6IHNldFZhbHVlRm9yQXR0cmlidXRlKGRvbUVsZW1lbnQsIGtleSwgdmFsdWUpOwogICAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2V0SW5pdGlhbFByb3BlcnRpZXMoZG9tRWxlbWVudCwgdGFnLCBwcm9wcykgewogICAgICAgIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQodGFnLCBwcm9wcyk7CiAgICAgICAgc3dpdGNoICh0YWcpIHsKICAgICAgICAgIGNhc2UgImRpdiI6CiAgICAgICAgICBjYXNlICJzcGFuIjoKICAgICAgICAgIGNhc2UgInN2ZyI6CiAgICAgICAgICBjYXNlICJwYXRoIjoKICAgICAgICAgIGNhc2UgImEiOgogICAgICAgICAgY2FzZSAiZyI6CiAgICAgICAgICBjYXNlICJwIjoKICAgICAgICAgIGNhc2UgImxpIjoKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJpbWciOgogICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJlcnJvciIsIGRvbUVsZW1lbnQpOwogICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJsb2FkIiwgZG9tRWxlbWVudCk7CiAgICAgICAgICAgIHZhciBoYXNTcmMgPSBmYWxzZSwgaGFzU3JjU2V0ID0gZmFsc2UsIHByb3BLZXk7CiAgICAgICAgICAgIGZvciAocHJvcEtleSBpbiBwcm9wcykKICAgICAgICAgICAgICBpZiAocHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHsKICAgICAgICAgICAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wS2V5XTsKICAgICAgICAgICAgICAgIGlmIChudWxsICE9IHByb3BWYWx1ZSkKICAgICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wS2V5KSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAic3JjIjoKICAgICAgICAgICAgICAgICAgICAgIGhhc1NyYyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJzcmNTZXQiOgogICAgICAgICAgICAgICAgICAgICAgaGFzU3JjU2V0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgImNoaWxkcmVuIjoKICAgICAgICAgICAgICAgICAgICBjYXNlICJkYW5nZXJvdXNseVNldElubmVySFRNTCI6CiAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgdGFnICsgIiBpcyBhIHZvaWQgZWxlbWVudCB0YWcgYW5kIG11c3QgbmVpdGhlciBoYXZlIGBjaGlsZHJlbmAgbm9yIHVzZSBgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLiIKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgIHNldFByb3AoZG9tRWxlbWVudCwgdGFnLCBwcm9wS2V5LCBwcm9wVmFsdWUsIHByb3BzLCBudWxsKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgaGFzU3JjU2V0ICYmIHNldFByb3AoZG9tRWxlbWVudCwgdGFnLCAic3JjU2V0IiwgcHJvcHMuc3JjU2V0LCBwcm9wcywgbnVsbCk7CiAgICAgICAgICAgIGhhc1NyYyAmJiBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgInNyYyIsIHByb3BzLnNyYywgcHJvcHMsIG51bGwpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJpbnB1dCI6CiAgICAgICAgICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoImlucHV0IiwgcHJvcHMpOwogICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJpbnZhbGlkIiwgZG9tRWxlbWVudCk7CiAgICAgICAgICAgIHZhciBkZWZhdWx0VmFsdWUgPSBwcm9wS2V5ID0gcHJvcFZhbHVlID0gaGFzU3JjU2V0ID0gbnVsbCwgY2hlY2tlZCA9IG51bGwsIGRlZmF1bHRDaGVja2VkID0gbnVsbDsKICAgICAgICAgICAgZm9yIChoYXNTcmMgaW4gcHJvcHMpCiAgICAgICAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KGhhc1NyYykpIHsKICAgICAgICAgICAgICAgIHZhciBfcHJvcFZhbHVlID0gcHJvcHNbaGFzU3JjXTsKICAgICAgICAgICAgICAgIGlmIChudWxsICE9IF9wcm9wVmFsdWUpCiAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaGFzU3JjKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAibmFtZSI6CiAgICAgICAgICAgICAgICAgICAgICBoYXNTcmNTZXQgPSBfcHJvcFZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHlwZSI6CiAgICAgICAgICAgICAgICAgICAgICBwcm9wVmFsdWUgPSBfcHJvcFZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tlZCI6CiAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkID0gX3Byb3BWYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgImRlZmF1bHRDaGVja2VkIjoKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkID0gX3Byb3BWYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInZhbHVlIjoKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXkgPSBfcHJvcFZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiZGVmYXVsdFZhbHVlIjoKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IF9wcm9wVmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGlsZHJlbiI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOgogICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT0gX3Byb3BWYWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnICsgIiBpcyBhIHZvaWQgZWxlbWVudCB0YWcgYW5kIG11c3QgbmVpdGhlciBoYXZlIGBjaGlsZHJlbmAgbm9yIHVzZSBgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLiIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgaGFzU3JjLCBfcHJvcFZhbHVlLCBwcm9wcywgbnVsbCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIHZhbGlkYXRlSW5wdXRQcm9wcyhkb21FbGVtZW50LCBwcm9wcyk7CiAgICAgICAgICAgIGluaXRJbnB1dCgKICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlLAogICAgICAgICAgICAgIGNoZWNrZWQsCiAgICAgICAgICAgICAgZGVmYXVsdENoZWNrZWQsCiAgICAgICAgICAgICAgcHJvcFZhbHVlLAogICAgICAgICAgICAgIGhhc1NyY1NldCwKICAgICAgICAgICAgICBmYWxzZQogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJzZWxlY3QiOgogICAgICAgICAgICBjaGVja0NvbnRyb2xsZWRWYWx1ZVByb3BzKCJzZWxlY3QiLCBwcm9wcyk7CiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoImludmFsaWQiLCBkb21FbGVtZW50KTsKICAgICAgICAgICAgaGFzU3JjID0gcHJvcFZhbHVlID0gcHJvcEtleSA9IG51bGw7CiAgICAgICAgICAgIGZvciAoaGFzU3JjU2V0IGluIHByb3BzKQogICAgICAgICAgICAgIGlmIChwcm9wcy5oYXNPd25Qcm9wZXJ0eShoYXNTcmNTZXQpICYmIChkZWZhdWx0VmFsdWUgPSBwcm9wc1toYXNTcmNTZXRdLCBudWxsICE9IGRlZmF1bHRWYWx1ZSkpCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGhhc1NyY1NldCkgewogICAgICAgICAgICAgICAgICBjYXNlICJ2YWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSA9IGRlZmF1bHRWYWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAiZGVmYXVsdFZhbHVlIjoKICAgICAgICAgICAgICAgICAgICBwcm9wVmFsdWUgPSBkZWZhdWx0VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgIm11bHRpcGxlIjoKICAgICAgICAgICAgICAgICAgICBoYXNTcmMgPSBkZWZhdWx0VmFsdWU7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgc2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB0YWcsCiAgICAgICAgICAgICAgICAgICAgICBoYXNTcmNTZXQsCiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBwcm9wcywKICAgICAgICAgICAgICAgICAgICAgIG51bGwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB2YWxpZGF0ZVNlbGVjdFByb3BzKGRvbUVsZW1lbnQsIHByb3BzKTsKICAgICAgICAgICAgdGFnID0gcHJvcEtleTsKICAgICAgICAgICAgcHJvcHMgPSBwcm9wVmFsdWU7CiAgICAgICAgICAgIGRvbUVsZW1lbnQubXVsdGlwbGUgPSAhIWhhc1NyYzsKICAgICAgICAgICAgbnVsbCAhPSB0YWcgPyB1cGRhdGVPcHRpb25zKGRvbUVsZW1lbnQsICEhaGFzU3JjLCB0YWcsIGZhbHNlKSA6IG51bGwgIT0gcHJvcHMgJiYgdXBkYXRlT3B0aW9ucyhkb21FbGVtZW50LCAhIWhhc1NyYywgcHJvcHMsIHRydWUpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJ0ZXh0YXJlYSI6CiAgICAgICAgICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoInRleHRhcmVhIiwgcHJvcHMpOwogICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJpbnZhbGlkIiwgZG9tRWxlbWVudCk7CiAgICAgICAgICAgIHByb3BLZXkgPSBoYXNTcmNTZXQgPSBoYXNTcmMgPSBudWxsOwogICAgICAgICAgICBmb3IgKHByb3BWYWx1ZSBpbiBwcm9wcykKICAgICAgICAgICAgICBpZiAocHJvcHMuaGFzT3duUHJvcGVydHkocHJvcFZhbHVlKSAmJiAoZGVmYXVsdFZhbHVlID0gcHJvcHNbcHJvcFZhbHVlXSwgbnVsbCAhPSBkZWZhdWx0VmFsdWUpKQogICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAidmFsdWUiOgogICAgICAgICAgICAgICAgICAgIGhhc1NyYyA9IGRlZmF1bHRWYWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAiZGVmYXVsdFZhbHVlIjoKICAgICAgICAgICAgICAgICAgICBoYXNTcmNTZXQgPSBkZWZhdWx0VmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImNoaWxkcmVuIjoKICAgICAgICAgICAgICAgICAgICBwcm9wS2V5ID0gZGVmYXVsdFZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICBjYXNlICJkYW5nZXJvdXNseVNldElubmVySFRNTCI6CiAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT0gZGVmYXVsdFZhbHVlKQogICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICJgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgIGRvZXMgbm90IG1ha2Ugc2Vuc2Ugb24gPHRleHRhcmVhPi4iCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHNldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdGFnLAogICAgICAgICAgICAgICAgICAgICAgcHJvcFZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgcHJvcHMsCiAgICAgICAgICAgICAgICAgICAgICBudWxsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFsaWRhdGVUZXh0YXJlYVByb3BzKGRvbUVsZW1lbnQsIHByb3BzKTsKICAgICAgICAgICAgaW5pdFRleHRhcmVhKGRvbUVsZW1lbnQsIGhhc1NyYywgaGFzU3JjU2V0LCBwcm9wS2V5KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAib3B0aW9uIjoKICAgICAgICAgICAgdmFsaWRhdGVPcHRpb25Qcm9wcyhkb21FbGVtZW50LCBwcm9wcyk7CiAgICAgICAgICAgIGZvciAoY2hlY2tlZCBpbiBwcm9wcykKICAgICAgICAgICAgICBpZiAocHJvcHMuaGFzT3duUHJvcGVydHkoY2hlY2tlZCkgJiYgKGhhc1NyYyA9IHByb3BzW2NoZWNrZWRdLCBudWxsICE9IGhhc1NyYykpCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoZWNrZWQpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAic2VsZWN0ZWQiOgogICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQuc2VsZWN0ZWQgPSBoYXNTcmMgJiYgImZ1bmN0aW9uIiAhPT0gdHlwZW9mIGhhc1NyYyAmJiAic3ltYm9sIiAhPT0gdHlwZW9mIGhhc1NyYzsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgY2hlY2tlZCwgaGFzU3JjLCBwcm9wcywgbnVsbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNhc2UgImRpYWxvZyI6CiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoImJlZm9yZXRvZ2dsZSIsIGRvbUVsZW1lbnQpOwogICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJ0b2dnbGUiLCBkb21FbGVtZW50KTsKICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgiY2FuY2VsIiwgZG9tRWxlbWVudCk7CiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoImNsb3NlIiwgZG9tRWxlbWVudCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiaWZyYW1lIjoKICAgICAgICAgIGNhc2UgIm9iamVjdCI6CiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoImxvYWQiLCBkb21FbGVtZW50KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJ2aWRlbyI6CiAgICAgICAgICBjYXNlICJhdWRpbyI6CiAgICAgICAgICAgIGZvciAoaGFzU3JjID0gMDsgaGFzU3JjIDwgbWVkaWFFdmVudFR5cGVzLmxlbmd0aDsgaGFzU3JjKyspCiAgICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChtZWRpYUV2ZW50VHlwZXNbaGFzU3JjXSwgZG9tRWxlbWVudCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiaW1hZ2UiOgogICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJlcnJvciIsIGRvbUVsZW1lbnQpOwogICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCJsb2FkIiwgZG9tRWxlbWVudCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiZGV0YWlscyI6CiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoInRvZ2dsZSIsIGRvbUVsZW1lbnQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImVtYmVkIjoKICAgICAgICAgIGNhc2UgInNvdXJjZSI6CiAgICAgICAgICBjYXNlICJsaW5rIjoKICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgiZXJyb3IiLCBkb21FbGVtZW50KSwgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgibG9hZCIsIGRvbUVsZW1lbnQpOwogICAgICAgICAgY2FzZSAiYXJlYSI6CiAgICAgICAgICBjYXNlICJiYXNlIjoKICAgICAgICAgIGNhc2UgImJyIjoKICAgICAgICAgIGNhc2UgImNvbCI6CiAgICAgICAgICBjYXNlICJociI6CiAgICAgICAgICBjYXNlICJrZXlnZW4iOgogICAgICAgICAgY2FzZSAibWV0YSI6CiAgICAgICAgICBjYXNlICJwYXJhbSI6CiAgICAgICAgICBjYXNlICJ0cmFjayI6CiAgICAgICAgICBjYXNlICJ3YnIiOgogICAgICAgICAgY2FzZSAibWVudWl0ZW0iOgogICAgICAgICAgICBmb3IgKGRlZmF1bHRDaGVja2VkIGluIHByb3BzKQogICAgICAgICAgICAgIGlmIChwcm9wcy5oYXNPd25Qcm9wZXJ0eShkZWZhdWx0Q2hlY2tlZCkgJiYgKGhhc1NyYyA9IHByb3BzW2RlZmF1bHRDaGVja2VkXSwgbnVsbCAhPSBoYXNTcmMpKQogICAgICAgICAgICAgICAgc3dpdGNoIChkZWZhdWx0Q2hlY2tlZCkgewogICAgICAgICAgICAgICAgICBjYXNlICJjaGlsZHJlbiI6CiAgICAgICAgICAgICAgICAgIGNhc2UgImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjoKICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICAgICAgIHRhZyArICIgaXMgYSB2b2lkIGVsZW1lbnQgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciB1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4iCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgZGVmYXVsdENoZWNrZWQsIGhhc1NyYywgcHJvcHMsIG51bGwpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZiAoaXNDdXN0b21FbGVtZW50KHRhZykpIHsKICAgICAgICAgICAgICBmb3IgKF9wcm9wVmFsdWUgaW4gcHJvcHMpCiAgICAgICAgICAgICAgICBwcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcFZhbHVlKSAmJiAoaGFzU3JjID0gcHJvcHNbX3Byb3BWYWx1ZV0sIHZvaWQgMCAhPT0gaGFzU3JjICYmIHNldFByb3BPbkN1c3RvbUVsZW1lbnQoCiAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgIHRhZywKICAgICAgICAgICAgICAgICAgX3Byb3BWYWx1ZSwKICAgICAgICAgICAgICAgICAgaGFzU3JjLAogICAgICAgICAgICAgICAgICBwcm9wcywKICAgICAgICAgICAgICAgICAgdm9pZCAwCiAgICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yIChkZWZhdWx0VmFsdWUgaW4gcHJvcHMpCiAgICAgICAgICBwcm9wcy5oYXNPd25Qcm9wZXJ0eShkZWZhdWx0VmFsdWUpICYmIChoYXNTcmMgPSBwcm9wc1tkZWZhdWx0VmFsdWVdLCBudWxsICE9IGhhc1NyYyAmJiBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgZGVmYXVsdFZhbHVlLCBoYXNTcmMsIHByb3BzLCBudWxsKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdXBkYXRlUHJvcGVydGllcyhkb21FbGVtZW50LCB0YWcsIGxhc3RQcm9wcywgbmV4dFByb3BzKSB7CiAgICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzSW5EZXZlbG9wbWVudCh0YWcsIG5leHRQcm9wcyk7CiAgICAgICAgc3dpdGNoICh0YWcpIHsKICAgICAgICAgIGNhc2UgImRpdiI6CiAgICAgICAgICBjYXNlICJzcGFuIjoKICAgICAgICAgIGNhc2UgInN2ZyI6CiAgICAgICAgICBjYXNlICJwYXRoIjoKICAgICAgICAgIGNhc2UgImEiOgogICAgICAgICAgY2FzZSAiZyI6CiAgICAgICAgICBjYXNlICJwIjoKICAgICAgICAgIGNhc2UgImxpIjoKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJpbnB1dCI6CiAgICAgICAgICAgIHZhciBuYW1lID0gbnVsbCwgdHlwZSA9IG51bGwsIHZhbHVlID0gbnVsbCwgZGVmYXVsdFZhbHVlID0gbnVsbCwgbGFzdERlZmF1bHRWYWx1ZSA9IG51bGwsIGNoZWNrZWQgPSBudWxsLCBkZWZhdWx0Q2hlY2tlZCA9IG51bGw7CiAgICAgICAgICAgIGZvciAocHJvcEtleSBpbiBsYXN0UHJvcHMpIHsKICAgICAgICAgICAgICB2YXIgbGFzdFByb3AgPSBsYXN0UHJvcHNbcHJvcEtleV07CiAgICAgICAgICAgICAgaWYgKGxhc3RQcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSAmJiBudWxsICE9IGxhc3RQcm9wKQogICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wS2V5KSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrZWQiOgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICBjYXNlICJ2YWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImRlZmF1bHRWYWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgbGFzdERlZmF1bHRWYWx1ZSA9IGxhc3RQcm9wOwogICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSB8fCBzZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgIHRhZywKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgbmV4dFByb3BzLAogICAgICAgICAgICAgICAgICAgICAgbGFzdFByb3AKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAodmFyIF9wcm9wS2V5OCBpbiBuZXh0UHJvcHMpIHsKICAgICAgICAgICAgICB2YXIgcHJvcEtleSA9IG5leHRQcm9wc1tfcHJvcEtleThdOwogICAgICAgICAgICAgIGxhc3RQcm9wID0gbGFzdFByb3BzW19wcm9wS2V5OF07CiAgICAgICAgICAgICAgaWYgKG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcEtleTgpICYmIChudWxsICE9IHByb3BLZXkgfHwgbnVsbCAhPSBsYXN0UHJvcCkpCiAgICAgICAgICAgICAgICBzd2l0Y2ggKF9wcm9wS2V5OCkgewogICAgICAgICAgICAgICAgICBjYXNlICJ0eXBlIjoKICAgICAgICAgICAgICAgICAgICB0eXBlID0gcHJvcEtleTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAibmFtZSI6CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHByb3BLZXk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrZWQiOgogICAgICAgICAgICAgICAgICAgIGNoZWNrZWQgPSBwcm9wS2V5OwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICBjYXNlICJkZWZhdWx0Q2hlY2tlZCI6CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENoZWNrZWQgPSBwcm9wS2V5OwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICBjYXNlICJ2YWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwcm9wS2V5OwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICBjYXNlICJkZWZhdWx0VmFsdWUiOgogICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHByb3BLZXk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImNoaWxkcmVuIjoKICAgICAgICAgICAgICAgICAgY2FzZSAiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOgogICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9IHByb3BLZXkpCiAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgdGFnICsgIiBpcyBhIHZvaWQgZWxlbWVudCB0YWcgYW5kIG11c3QgbmVpdGhlciBoYXZlIGBjaGlsZHJlbmAgbm9yIHVzZSBgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLiIKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSAhPT0gbGFzdFByb3AgJiYgc2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB0YWcsCiAgICAgICAgICAgICAgICAgICAgICBfcHJvcEtleTgsCiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgbmV4dFByb3BzLAogICAgICAgICAgICAgICAgICAgICAgbGFzdFByb3AKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRhZyA9ICJjaGVja2JveCIgPT09IGxhc3RQcm9wcy50eXBlIHx8ICJyYWRpbyIgPT09IGxhc3RQcm9wcy50eXBlID8gbnVsbCAhPSBsYXN0UHJvcHMuY2hlY2tlZCA6IG51bGwgIT0gbGFzdFByb3BzLnZhbHVlOwogICAgICAgICAgICBuZXh0UHJvcHMgPSAiY2hlY2tib3giID09PSBuZXh0UHJvcHMudHlwZSB8fCAicmFkaW8iID09PSBuZXh0UHJvcHMudHlwZSA/IG51bGwgIT0gbmV4dFByb3BzLmNoZWNrZWQgOiBudWxsICE9IG5leHRQcm9wcy52YWx1ZTsKICAgICAgICAgICAgdGFnIHx8ICFuZXh0UHJvcHMgfHwgZGlkV2FyblVuY29udHJvbGxlZFRvQ29udHJvbGxlZCB8fCAoY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiQSBjb21wb25lbnQgaXMgY2hhbmdpbmcgYW4gdW5jb250cm9sbGVkIGlucHV0IHRvIGJlIGNvbnRyb2xsZWQuIFRoaXMgaXMgbGlrZWx5IGNhdXNlZCBieSB0aGUgdmFsdWUgY2hhbmdpbmcgZnJvbSB1bmRlZmluZWQgdG8gYSBkZWZpbmVkIHZhbHVlLCB3aGljaCBzaG91bGQgbm90IGhhcHBlbi4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCBlbGVtZW50IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGNvbXBvbmVudC4gTW9yZSBpbmZvOiBodHRwczovL3JlYWN0LmRldi9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50cyIKICAgICAgICAgICAgKSwgZGlkV2FyblVuY29udHJvbGxlZFRvQ29udHJvbGxlZCA9IHRydWUpOwogICAgICAgICAgICAhdGFnIHx8IG5leHRQcm9wcyB8fCBkaWRXYXJuQ29udHJvbGxlZFRvVW5jb250cm9sbGVkIHx8IChjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICJBIGNvbXBvbmVudCBpcyBjaGFuZ2luZyBhIGNvbnRyb2xsZWQgaW5wdXQgdG8gYmUgdW5jb250cm9sbGVkLiBUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgdGhlIHZhbHVlIGNoYW5naW5nIGZyb20gYSBkZWZpbmVkIHRvIHVuZGVmaW5lZCwgd2hpY2ggc2hvdWxkIG5vdCBoYXBwZW4uIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgZWxlbWVudCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb21wb25lbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMiCiAgICAgICAgICAgICksIGRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQgPSB0cnVlKTsKICAgICAgICAgICAgdXBkYXRlSW5wdXQoCiAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICBkZWZhdWx0VmFsdWUsCiAgICAgICAgICAgICAgbGFzdERlZmF1bHRWYWx1ZSwKICAgICAgICAgICAgICBjaGVja2VkLAogICAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkLAogICAgICAgICAgICAgIHR5cGUsCiAgICAgICAgICAgICAgbmFtZQogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJzZWxlY3QiOgogICAgICAgICAgICBwcm9wS2V5ID0gdmFsdWUgPSBkZWZhdWx0VmFsdWUgPSBfcHJvcEtleTggPSBudWxsOwogICAgICAgICAgICBmb3IgKHR5cGUgaW4gbGFzdFByb3BzKQogICAgICAgICAgICAgIGlmIChsYXN0RGVmYXVsdFZhbHVlID0gbGFzdFByb3BzW3R5cGVdLCBsYXN0UHJvcHMuaGFzT3duUHJvcGVydHkodHlwZSkgJiYgbnVsbCAhPSBsYXN0RGVmYXVsdFZhbHVlKQogICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgInZhbHVlIjoKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAibXVsdGlwbGUiOgogICAgICAgICAgICAgICAgICAgIHByb3BLZXkgPSBsYXN0RGVmYXVsdFZhbHVlOwogICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSB8fCBzZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgIHRhZywKICAgICAgICAgICAgICAgICAgICAgIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgbmV4dFByb3BzLAogICAgICAgICAgICAgICAgICAgICAgbGFzdERlZmF1bHRWYWx1ZQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAobmFtZSBpbiBuZXh0UHJvcHMpCiAgICAgICAgICAgICAgaWYgKHR5cGUgPSBuZXh0UHJvcHNbbmFtZV0sIGxhc3REZWZhdWx0VmFsdWUgPSBsYXN0UHJvcHNbbmFtZV0sIG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSAmJiAobnVsbCAhPSB0eXBlIHx8IG51bGwgIT0gbGFzdERlZmF1bHRWYWx1ZSkpCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAidmFsdWUiOgogICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OCA9IHR5cGU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImRlZmF1bHRWYWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gdHlwZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAibXVsdGlwbGUiOgogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdHlwZTsKICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICB0eXBlICE9PSBsYXN0RGVmYXVsdFZhbHVlICYmIHNldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdGFnLAogICAgICAgICAgICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICBuZXh0UHJvcHMsCiAgICAgICAgICAgICAgICAgICAgICBsYXN0RGVmYXVsdFZhbHVlCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgbmV4dFByb3BzID0gZGVmYXVsdFZhbHVlOwogICAgICAgICAgICB0YWcgPSB2YWx1ZTsKICAgICAgICAgICAgbGFzdFByb3BzID0gcHJvcEtleTsKICAgICAgICAgICAgbnVsbCAhPSBfcHJvcEtleTggPyB1cGRhdGVPcHRpb25zKGRvbUVsZW1lbnQsICEhdGFnLCBfcHJvcEtleTgsIGZhbHNlKSA6ICEhbGFzdFByb3BzICE9PSAhIXRhZyAmJiAobnVsbCAhPSBuZXh0UHJvcHMgPyB1cGRhdGVPcHRpb25zKGRvbUVsZW1lbnQsICEhdGFnLCBuZXh0UHJvcHMsIHRydWUpIDogdXBkYXRlT3B0aW9ucyhkb21FbGVtZW50LCAhIXRhZywgdGFnID8gW10gOiAiIiwgZmFsc2UpKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAidGV4dGFyZWEiOgogICAgICAgICAgICBwcm9wS2V5ID0gX3Byb3BLZXk4ID0gbnVsbDsKICAgICAgICAgICAgZm9yIChkZWZhdWx0VmFsdWUgaW4gbGFzdFByb3BzKQogICAgICAgICAgICAgIGlmIChuYW1lID0gbGFzdFByb3BzW2RlZmF1bHRWYWx1ZV0sIGxhc3RQcm9wcy5oYXNPd25Qcm9wZXJ0eShkZWZhdWx0VmFsdWUpICYmIG51bGwgIT0gbmFtZSAmJiAhbmV4dFByb3BzLmhhc093blByb3BlcnR5KGRlZmF1bHRWYWx1ZSkpCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRlZmF1bHRWYWx1ZSkgewogICAgICAgICAgICAgICAgICBjYXNlICJ2YWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImNoaWxkcmVuIjoKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgZGVmYXVsdFZhbHVlLCBudWxsLCBuZXh0UHJvcHMsIG5hbWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKHZhbHVlIGluIG5leHRQcm9wcykKICAgICAgICAgICAgICBpZiAobmFtZSA9IG5leHRQcm9wc1t2YWx1ZV0sIHR5cGUgPSBsYXN0UHJvcHNbdmFsdWVdLCBuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkodmFsdWUpICYmIChudWxsICE9IG5hbWUgfHwgbnVsbCAhPSB0eXBlKSkKICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAidmFsdWUiOgogICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OCA9IG5hbWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImRlZmF1bHRWYWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSA9IG5hbWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgImNoaWxkcmVuIjoKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOgogICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9IG5hbWUpCiAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgImBkYW5nZXJvdXNseVNldElubmVySFRNTGAgZG9lcyBub3QgbWFrZSBzZW5zZSBvbiA8dGV4dGFyZWE+LiIKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgbmFtZSAhPT0gdHlwZSAmJiBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgdmFsdWUsIG5hbWUsIG5leHRQcm9wcywgdHlwZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIHVwZGF0ZVRleHRhcmVhKGRvbUVsZW1lbnQsIF9wcm9wS2V5OCwgcHJvcEtleSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNhc2UgIm9wdGlvbiI6CiAgICAgICAgICAgIGZvciAodmFyIF9wcm9wS2V5MTMgaW4gbGFzdFByb3BzKQogICAgICAgICAgICAgIGlmIChfcHJvcEtleTggPSBsYXN0UHJvcHNbX3Byb3BLZXkxM10sIGxhc3RQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcEtleTEzKSAmJiBudWxsICE9IF9wcm9wS2V5OCAmJiAhbmV4dFByb3BzLmhhc093blByb3BlcnR5KF9wcm9wS2V5MTMpKQogICAgICAgICAgICAgICAgc3dpdGNoIChfcHJvcEtleTEzKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgInNlbGVjdGVkIjoKICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LnNlbGVjdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgc2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB0YWcsCiAgICAgICAgICAgICAgICAgICAgICBfcHJvcEtleTEzLAogICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcywKICAgICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAobGFzdERlZmF1bHRWYWx1ZSBpbiBuZXh0UHJvcHMpCiAgICAgICAgICAgICAgaWYgKF9wcm9wS2V5OCA9IG5leHRQcm9wc1tsYXN0RGVmYXVsdFZhbHVlXSwgcHJvcEtleSA9IGxhc3RQcm9wc1tsYXN0RGVmYXVsdFZhbHVlXSwgbmV4dFByb3BzLmhhc093blByb3BlcnR5KGxhc3REZWZhdWx0VmFsdWUpICYmIF9wcm9wS2V5OCAhPT0gcHJvcEtleSAmJiAobnVsbCAhPSBfcHJvcEtleTggfHwgbnVsbCAhPSBwcm9wS2V5KSkKICAgICAgICAgICAgICAgIHN3aXRjaCAobGFzdERlZmF1bHRWYWx1ZSkgewogICAgICAgICAgICAgICAgICBjYXNlICJzZWxlY3RlZCI6CiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudC5zZWxlY3RlZCA9IF9wcm9wS2V5OCAmJiAiZnVuY3Rpb24iICE9PSB0eXBlb2YgX3Byb3BLZXk4ICYmICJzeW1ib2wiICE9PSB0eXBlb2YgX3Byb3BLZXk4OwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHNldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdGFnLAogICAgICAgICAgICAgICAgICAgICAgbGFzdERlZmF1bHRWYWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OCwKICAgICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcywKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXkKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJpbWciOgogICAgICAgICAgY2FzZSAibGluayI6CiAgICAgICAgICBjYXNlICJhcmVhIjoKICAgICAgICAgIGNhc2UgImJhc2UiOgogICAgICAgICAgY2FzZSAiYnIiOgogICAgICAgICAgY2FzZSAiY29sIjoKICAgICAgICAgIGNhc2UgImVtYmVkIjoKICAgICAgICAgIGNhc2UgImhyIjoKICAgICAgICAgIGNhc2UgImtleWdlbiI6CiAgICAgICAgICBjYXNlICJtZXRhIjoKICAgICAgICAgIGNhc2UgInBhcmFtIjoKICAgICAgICAgIGNhc2UgInNvdXJjZSI6CiAgICAgICAgICBjYXNlICJ0cmFjayI6CiAgICAgICAgICBjYXNlICJ3YnIiOgogICAgICAgICAgY2FzZSAibWVudWl0ZW0iOgogICAgICAgICAgICBmb3IgKHZhciBfcHJvcEtleTE1IGluIGxhc3RQcm9wcykKICAgICAgICAgICAgICBfcHJvcEtleTggPSBsYXN0UHJvcHNbX3Byb3BLZXkxNV0sIGxhc3RQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcEtleTE1KSAmJiBudWxsICE9IF9wcm9wS2V5OCAmJiAhbmV4dFByb3BzLmhhc093blByb3BlcnR5KF9wcm9wS2V5MTUpICYmIHNldFByb3AoCiAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgdGFnLAogICAgICAgICAgICAgICAgX3Byb3BLZXkxNSwKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBuZXh0UHJvcHMsCiAgICAgICAgICAgICAgICBfcHJvcEtleTgKICAgICAgICAgICAgICApOwogICAgICAgICAgICBmb3IgKGNoZWNrZWQgaW4gbmV4dFByb3BzKQogICAgICAgICAgICAgIGlmIChfcHJvcEtleTggPSBuZXh0UHJvcHNbY2hlY2tlZF0sIHByb3BLZXkgPSBsYXN0UHJvcHNbY2hlY2tlZF0sIG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShjaGVja2VkKSAmJiBfcHJvcEtleTggIT09IHByb3BLZXkgJiYgKG51bGwgIT0gX3Byb3BLZXk4IHx8IG51bGwgIT0gcHJvcEtleSkpCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoZWNrZWQpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAiY2hpbGRyZW4iOgogICAgICAgICAgICAgICAgICBjYXNlICJkYW5nZXJvdXNseVNldElubmVySFRNTCI6CiAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT0gX3Byb3BLZXk4KQogICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgIHRhZyArICIgaXMgYSB2b2lkIGVsZW1lbnQgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciB1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4iCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHNldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdGFnLAogICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZCwKICAgICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OCwKICAgICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcywKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXkKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZiAoaXNDdXN0b21FbGVtZW50KHRhZykpIHsKICAgICAgICAgICAgICBmb3IgKHZhciBfcHJvcEtleTE3IGluIGxhc3RQcm9wcykKICAgICAgICAgICAgICAgIF9wcm9wS2V5OCA9IGxhc3RQcm9wc1tfcHJvcEtleTE3XSwgbGFzdFByb3BzLmhhc093blByb3BlcnR5KF9wcm9wS2V5MTcpICYmIHZvaWQgMCAhPT0gX3Byb3BLZXk4ICYmICFuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkoX3Byb3BLZXkxNykgJiYgc2V0UHJvcE9uQ3VzdG9tRWxlbWVudCgKICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICAgICAgdGFnLAogICAgICAgICAgICAgICAgICBfcHJvcEtleTE3LAogICAgICAgICAgICAgICAgICB2b2lkIDAsCiAgICAgICAgICAgICAgICAgIG5leHRQcm9wcywKICAgICAgICAgICAgICAgICAgX3Byb3BLZXk4CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGZvciAoZGVmYXVsdENoZWNrZWQgaW4gbmV4dFByb3BzKQogICAgICAgICAgICAgICAgX3Byb3BLZXk4ID0gbmV4dFByb3BzW2RlZmF1bHRDaGVja2VkXSwgcHJvcEtleSA9IGxhc3RQcm9wc1tkZWZhdWx0Q2hlY2tlZF0sICFuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkoZGVmYXVsdENoZWNrZWQpIHx8IF9wcm9wS2V5OCA9PT0gcHJvcEtleSB8fCB2b2lkIDAgPT09IF9wcm9wS2V5OCAmJiB2b2lkIDAgPT09IHByb3BLZXkgfHwgc2V0UHJvcE9uQ3VzdG9tRWxlbWVudCgKICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICAgICAgdGFnLAogICAgICAgICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZCwKICAgICAgICAgICAgICAgICAgX3Byb3BLZXk4LAogICAgICAgICAgICAgICAgICBuZXh0UHJvcHMsCiAgICAgICAgICAgICAgICAgIHByb3BLZXkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAodmFyIF9wcm9wS2V5MTkgaW4gbGFzdFByb3BzKQogICAgICAgICAgX3Byb3BLZXk4ID0gbGFzdFByb3BzW19wcm9wS2V5MTldLCBsYXN0UHJvcHMuaGFzT3duUHJvcGVydHkoX3Byb3BLZXkxOSkgJiYgbnVsbCAhPSBfcHJvcEtleTggJiYgIW5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcEtleTE5KSAmJiBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgX3Byb3BLZXkxOSwgbnVsbCwgbmV4dFByb3BzLCBfcHJvcEtleTgpOwogICAgICAgIGZvciAobGFzdFByb3AgaW4gbmV4dFByb3BzKQogICAgICAgICAgX3Byb3BLZXk4ID0gbmV4dFByb3BzW2xhc3RQcm9wXSwgcHJvcEtleSA9IGxhc3RQcm9wc1tsYXN0UHJvcF0sICFuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkobGFzdFByb3ApIHx8IF9wcm9wS2V5OCA9PT0gcHJvcEtleSB8fCBudWxsID09IF9wcm9wS2V5OCAmJiBudWxsID09IHByb3BLZXkgfHwgc2V0UHJvcChkb21FbGVtZW50LCB0YWcsIGxhc3RQcm9wLCBfcHJvcEtleTgsIG5leHRQcm9wcywgcHJvcEtleSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0UHJvcE5hbWVGcm9tQXR0cmlidXRlTmFtZShhdHRyTmFtZSkgewogICAgICAgIHN3aXRjaCAoYXR0ck5hbWUpIHsKICAgICAgICAgIGNhc2UgImNsYXNzIjoKICAgICAgICAgICAgcmV0dXJuICJjbGFzc05hbWUiOwogICAgICAgICAgY2FzZSAiZm9yIjoKICAgICAgICAgICAgcmV0dXJuICJodG1sRm9yIjsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiBhdHRyTmFtZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0U3R5bGVzT2JqZWN0RnJvbUVsZW1lbnQoZG9tRWxlbWVudCkgewogICAgICAgIHZhciBzZXJ2ZXJWYWx1ZUluT2JqZWN0Rm9ybSA9IHt9OwogICAgICAgIGRvbUVsZW1lbnQgPSBkb21FbGVtZW50LnN0eWxlOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZG9tRWxlbWVudC5sZW5ndGg7IGkrKykgewogICAgICAgICAgdmFyIHN0eWxlTmFtZSA9IGRvbUVsZW1lbnRbaV07CiAgICAgICAgICBzZXJ2ZXJWYWx1ZUluT2JqZWN0Rm9ybVtzdHlsZU5hbWVdID0gZG9tRWxlbWVudC5nZXRQcm9wZXJ0eVZhbHVlKHN0eWxlTmFtZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZXJ2ZXJWYWx1ZUluT2JqZWN0Rm9ybTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkaWZmSHlkcmF0ZWRTdHlsZXMoZG9tRWxlbWVudCwgdmFsdWUkanNjb21wJDAsIHNlcnZlckRpZmZlcmVuY2VzKSB7CiAgICAgICAgaWYgKG51bGwgIT0gdmFsdWUkanNjb21wJDAgJiYgIm9iamVjdCIgIT09IHR5cGVvZiB2YWx1ZSRqc2NvbXAkMCkKICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJUaGUgYHN0eWxlYCBwcm9wIGV4cGVjdHMgYSBtYXBwaW5nIGZyb20gc3R5bGUgcHJvcGVydGllcyB0byB2YWx1ZXMsIG5vdCBhIHN0cmluZy4gRm9yIGV4YW1wbGUsIHN0eWxlPXt7bWFyZ2luUmlnaHQ6IHNwYWNpbmcgKyAnZW0nfX0gd2hlbiB1c2luZyBKU1guIgogICAgICAgICAgKTsKICAgICAgICBlbHNlIHsKICAgICAgICAgIHZhciBjbGllbnRWYWx1ZTsKICAgICAgICAgIHZhciBkZWxpbWl0ZXIgPSBjbGllbnRWYWx1ZSA9ICIiLCBzdHlsZU5hbWU7CiAgICAgICAgICBmb3IgKHN0eWxlTmFtZSBpbiB2YWx1ZSRqc2NvbXAkMCkKICAgICAgICAgICAgaWYgKHZhbHVlJGpzY29tcCQwLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpIHsKICAgICAgICAgICAgICB2YXIgdmFsdWUgPSB2YWx1ZSRqc2NvbXAkMFtzdHlsZU5hbWVdOwogICAgICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiYgImJvb2xlYW4iICE9PSB0eXBlb2YgdmFsdWUgJiYgIiIgIT09IHZhbHVlICYmICgwID09PSBzdHlsZU5hbWUuaW5kZXhPZigiLS0iKSA/IChjaGVja0NTU1Byb3BlcnR5U3RyaW5nQ29lcmNpb24odmFsdWUsIHN0eWxlTmFtZSksIGNsaWVudFZhbHVlICs9IGRlbGltaXRlciArIHN0eWxlTmFtZSArICI6IiArICgiIiArIHZhbHVlKS50cmltKCkpIDogIm51bWJlciIgIT09IHR5cGVvZiB2YWx1ZSB8fCAwID09PSB2YWx1ZSB8fCB1bml0bGVzc051bWJlcnMuaGFzKHN0eWxlTmFtZSkgPyAoY2hlY2tDU1NQcm9wZXJ0eVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBzdHlsZU5hbWUpLCBjbGllbnRWYWx1ZSArPSBkZWxpbWl0ZXIgKyBzdHlsZU5hbWUucmVwbGFjZSh1cHBlcmNhc2VQYXR0ZXJuLCAiLSQxIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKG1zUGF0dGVybiQxLCAiLW1zLSIpICsgIjoiICsgKCIiICsgdmFsdWUpLnRyaW0oKSkgOiBjbGllbnRWYWx1ZSArPSBkZWxpbWl0ZXIgKyBzdHlsZU5hbWUucmVwbGFjZSh1cHBlcmNhc2VQYXR0ZXJuLCAiLSQxIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKG1zUGF0dGVybiQxLCAiLW1zLSIpICsgIjoiICsgdmFsdWUgKyAicHgiLCBkZWxpbWl0ZXIgPSAiOyIpOwogICAgICAgICAgICB9CiAgICAgICAgICBjbGllbnRWYWx1ZSA9IGNsaWVudFZhbHVlIHx8IG51bGw7CiAgICAgICAgICB2YWx1ZSRqc2NvbXAkMCA9IGRvbUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJzdHlsZSIpOwogICAgICAgICAgdmFsdWUkanNjb21wJDAgIT09IGNsaWVudFZhbHVlICYmIChjbGllbnRWYWx1ZSA9IG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShjbGllbnRWYWx1ZSksIG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZSh2YWx1ZSRqc2NvbXAkMCkgIT09IGNsaWVudFZhbHVlICYmIChzZXJ2ZXJEaWZmZXJlbmNlcy5zdHlsZSA9IGdldFN0eWxlc09iamVjdEZyb21FbGVtZW50KGRvbUVsZW1lbnQpKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGh5ZHJhdGVBdHRyaWJ1dGUoZG9tRWxlbWVudCwgcHJvcEtleSwgYXR0cmlidXRlTmFtZSwgdmFsdWUsIGV4dHJhQXR0cmlidXRlcywgc2VydmVyRGlmZmVyZW5jZXMpIHsKICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKGF0dHJpYnV0ZU5hbWUpOwogICAgICAgIGRvbUVsZW1lbnQgPSBkb21FbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKICAgICAgICBpZiAobnVsbCA9PT0gZG9tRWxlbWVudCkKICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7CiAgICAgICAgICAgIGNhc2UgInVuZGVmaW5lZCI6CiAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKICAgICAgICAgICAgY2FzZSAic3ltYm9sIjoKICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKG51bGwgIT0gdmFsdWUpCiAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgIGNhc2UgInN5bWJvbCI6CiAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIGlmIChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBwcm9wS2V5KSwgZG9tRWxlbWVudCA9PT0gIiIgKyB2YWx1ZSkKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UocHJvcEtleSwgZG9tRWxlbWVudCwgdmFsdWUsIHNlcnZlckRpZmZlcmVuY2VzKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBoeWRyYXRlQm9vbGVhbkF0dHJpYnV0ZShkb21FbGVtZW50LCBwcm9wS2V5LCBhdHRyaWJ1dGVOYW1lLCB2YWx1ZSwgZXh0cmFBdHRyaWJ1dGVzLCBzZXJ2ZXJEaWZmZXJlbmNlcykgewogICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoYXR0cmlidXRlTmFtZSk7CiAgICAgICAgZG9tRWxlbWVudCA9IGRvbUVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOwogICAgICAgIGlmIChudWxsID09PSBkb21FbGVtZW50KSB7CiAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgIGNhc2UgInN5bWJvbCI6CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuOwogICAgICAgIH0gZWxzZQogICAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHsKICAgICAgICAgICAgY2FzZSAiZnVuY3Rpb24iOgogICAgICAgICAgICBjYXNlICJzeW1ib2wiOgogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIGlmICh2YWx1ZSkgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBkb21FbGVtZW50LCB2YWx1ZSwgc2VydmVyRGlmZmVyZW5jZXMpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGh5ZHJhdGVCb29sZWFuaXNoQXR0cmlidXRlKGRvbUVsZW1lbnQsIHByb3BLZXksIGF0dHJpYnV0ZU5hbWUsIHZhbHVlLCBleHRyYUF0dHJpYnV0ZXMsIHNlcnZlckRpZmZlcmVuY2VzKSB7CiAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShhdHRyaWJ1dGVOYW1lKTsKICAgICAgICBkb21FbGVtZW50ID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CiAgICAgICAgaWYgKG51bGwgPT09IGRvbUVsZW1lbnQpCiAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgICBjYXNlICJ1bmRlZmluZWQiOgogICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgIGNhc2UgInN5bWJvbCI6CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKG51bGwgIT0gdmFsdWUpCiAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgIGNhc2UgInN5bWJvbCI6CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIGF0dHJpYnV0ZU5hbWUpLCBkb21FbGVtZW50ID09PSAiIiArIHZhbHVlKQogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBkb21FbGVtZW50LCB2YWx1ZSwgc2VydmVyRGlmZmVyZW5jZXMpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGh5ZHJhdGVOdW1lcmljQXR0cmlidXRlKGRvbUVsZW1lbnQsIHByb3BLZXksIGF0dHJpYnV0ZU5hbWUsIHZhbHVlLCBleHRyYUF0dHJpYnV0ZXMsIHNlcnZlckRpZmZlcmVuY2VzKSB7CiAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShhdHRyaWJ1dGVOYW1lKTsKICAgICAgICBkb21FbGVtZW50ID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CiAgICAgICAgaWYgKG51bGwgPT09IGRvbUVsZW1lbnQpCiAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgICBjYXNlICJ1bmRlZmluZWQiOgogICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgIGNhc2UgInN5bWJvbCI6CiAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAobnVsbCAhPSB2YWx1ZSkKICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7CiAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKICAgICAgICAgICAgY2FzZSAic3ltYm9sIjoKICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkgJiYgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIHByb3BLZXkpLCBkb21FbGVtZW50ID09PSAiIiArIHZhbHVlKSkKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UocHJvcEtleSwgZG9tRWxlbWVudCwgdmFsdWUsIHNlcnZlckRpZmZlcmVuY2VzKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBoeWRyYXRlU2FuaXRpemVkQXR0cmlidXRlKGRvbUVsZW1lbnQsIHByb3BLZXksIGF0dHJpYnV0ZU5hbWUsIHZhbHVlLCBleHRyYUF0dHJpYnV0ZXMsIHNlcnZlckRpZmZlcmVuY2VzKSB7CiAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShhdHRyaWJ1dGVOYW1lKTsKICAgICAgICBkb21FbGVtZW50ID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CiAgICAgICAgaWYgKG51bGwgPT09IGRvbUVsZW1lbnQpCiAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgICBjYXNlICJ1bmRlZmluZWQiOgogICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgIGNhc2UgInN5bWJvbCI6CiAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICBlbHNlIGlmIChudWxsICE9IHZhbHVlKQogICAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHsKICAgICAgICAgICAgY2FzZSAiZnVuY3Rpb24iOgogICAgICAgICAgICBjYXNlICJzeW1ib2wiOgogICAgICAgICAgICBjYXNlICJib29sZWFuIjoKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICBpZiAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgcHJvcEtleSksIGF0dHJpYnV0ZU5hbWUgPSBzYW5pdGl6ZVVSTCgiIiArIHZhbHVlKSwgZG9tRWxlbWVudCA9PT0gYXR0cmlidXRlTmFtZSkKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UocHJvcEtleSwgZG9tRWxlbWVudCwgdmFsdWUsIHNlcnZlckRpZmZlcmVuY2VzKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkaWZmSHlkcmF0ZWRQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHRhZywgcHJvcHMsIGhvc3RDb250ZXh0KSB7CiAgICAgICAgZm9yICh2YXIgc2VydmVyRGlmZmVyZW5jZXMgPSB7fSwgZXh0cmFBdHRyaWJ1dGVzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSwgYXR0cmlidXRlcyA9IGRvbUVsZW1lbnQuYXR0cmlidXRlcywgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKQogICAgICAgICAgc3dpdGNoIChhdHRyaWJ1dGVzW2ldLm5hbWUudG9Mb3dlckNhc2UoKSkgewogICAgICAgICAgICBjYXNlICJ2YWx1ZSI6CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNoZWNrZWQiOgogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzZWxlY3RlZCI6CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmFkZChhdHRyaWJ1dGVzW2ldLm5hbWUpOwogICAgICAgICAgfQogICAgICAgIGlmIChpc0N1c3RvbUVsZW1lbnQodGFnKSkKICAgICAgICAgIGZvciAodmFyIHByb3BLZXkgaW4gcHJvcHMpIHsKICAgICAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7CiAgICAgICAgICAgICAgdmFyIHZhbHVlID0gcHJvcHNbcHJvcEtleV07CiAgICAgICAgICAgICAgaWYgKG51bGwgIT0gdmFsdWUpIHsKICAgICAgICAgICAgICAgIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KHByb3BLZXkpKQogICAgICAgICAgICAgICAgICAiZnVuY3Rpb24iICE9PSB0eXBlb2YgdmFsdWUgJiYgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKHByb3BLZXksIHZhbHVlKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRydWUgIT09IHByb3BzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZykKICAgICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wS2V5KSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hpbGRyZW4iOgogICAgICAgICAgICAgICAgICAgICAgInN0cmluZyIgIT09IHR5cGVvZiB2YWx1ZSAmJiAibnVtYmVyIiAhPT0gdHlwZW9mIHZhbHVlIHx8IHdhcm5Gb3JQcm9wRGlmZmVyZW5jZSgKICAgICAgICAgICAgICAgICAgICAgICAgImNoaWxkcmVuIiwKICAgICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudC50ZXh0Q29udGVudCwKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIjoKICAgICAgICAgICAgICAgICAgICBjYXNlICJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciOgogICAgICAgICAgICAgICAgICAgIGNhc2UgImRlZmF1bHRWYWx1ZSI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiZGVmYXVsdENoZWNrZWQiOgogICAgICAgICAgICAgICAgICAgIGNhc2UgImlubmVySFRNTCI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAicmVmIjoKICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIGNhc2UgImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjoKICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBkb21FbGVtZW50LmlubmVySFRNTDsKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgPyB2YWx1ZS5fX2h0bWwgOiB2b2lkIDA7CiAgICAgICAgICAgICAgICAgICAgICBudWxsICE9IHZhbHVlICYmICh2YWx1ZSA9IG5vcm1hbGl6ZUhUTUwoZG9tRWxlbWVudCwgdmFsdWUpLCB3YXJuRm9yUHJvcERpZmZlcmVuY2UoCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICBjYXNlICJzdHlsZSI6CiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKHByb3BLZXkpOwogICAgICAgICAgICAgICAgICAgICAgZGlmZkh5ZHJhdGVkU3R5bGVzKGRvbUVsZW1lbnQsIHZhbHVlLCBzZXJ2ZXJEaWZmZXJlbmNlcyk7CiAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICBjYXNlICJvZmZzZXRQYXJlbnQiOgogICAgICAgICAgICAgICAgICAgIGNhc2UgIm9mZnNldFRvcCI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAib2Zmc2V0TGVmdCI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAib2Zmc2V0V2lkdGgiOgogICAgICAgICAgICAgICAgICAgIGNhc2UgIm9mZnNldEhlaWdodCI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiaXNDb250ZW50RWRpdGFibGUiOgogICAgICAgICAgICAgICAgICAgIGNhc2UgIm91dGVyVGV4dCI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAib3V0ZXJIVE1MIjoKICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUocHJvcEtleS50b0xvd2VyQ2FzZSgpKTsKICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICJBc3NpZ25tZW50IHRvIHJlYWQtb25seSBwcm9wZXJ0eSB3aWxsIHJlc3VsdCBpbiBhIG5vLW9wOiBgJXNgIiwKICAgICAgICAgICAgICAgICAgICAgICAgcHJvcEtleQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIGNhc2UgImNsYXNzTmFtZSI6CiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKCJjbGFzcyIpOwogICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGdldFZhbHVlRm9yQXR0cmlidXRlT25DdXN0b21Db21wb25lbnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICJjbGFzcyIsCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKAogICAgICAgICAgICAgICAgICAgICAgICAiY2xhc3NOYW1lIiwKICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcywKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgIGhvc3RDb250ZXh0LmNvbnRleHQgPT09IEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZSAmJiAic3ZnIiAhPT0gdGFnICYmICJtYXRoIiAhPT0gdGFnID8gZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShwcm9wS2V5LnRvTG93ZXJDYXNlKCkpIDogZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShwcm9wS2V5KSwgYXR0cmlidXRlcyA9IGdldFZhbHVlRm9yQXR0cmlidXRlT25DdXN0b21Db21wb25lbnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICApLCB3YXJuRm9yUHJvcERpZmZlcmVuY2UoCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgIGZvciAodmFsdWUgaW4gcHJvcHMpCiAgICAgICAgICAgIGlmIChwcm9wcy5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkgJiYgKHByb3BLZXkgPSBwcm9wc1t2YWx1ZV0sIG51bGwgIT0gcHJvcEtleSkpIHsKICAgICAgICAgICAgICBpZiAocmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAiZnVuY3Rpb24iICE9PSB0eXBlb2YgcHJvcEtleSAmJiB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIodmFsdWUsIHByb3BLZXkpOwogICAgICAgICAgICAgIGVsc2UgaWYgKHRydWUgIT09IHByb3BzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZykKICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAiY2hpbGRyZW4iOgogICAgICAgICAgICAgICAgICAgICJzdHJpbmciICE9PSB0eXBlb2YgcHJvcEtleSAmJiAibnVtYmVyIiAhPT0gdHlwZW9mIHByb3BLZXkgfHwgd2FybkZvclByb3BEaWZmZXJlbmNlKAogICAgICAgICAgICAgICAgICAgICAgImNoaWxkcmVuIiwKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQudGV4dENvbnRlbnQsCiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBjYXNlICJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciOgogICAgICAgICAgICAgICAgICBjYXNlICJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciOgogICAgICAgICAgICAgICAgICBjYXNlICJ2YWx1ZSI6CiAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrZWQiOgogICAgICAgICAgICAgICAgICBjYXNlICJzZWxlY3RlZCI6CiAgICAgICAgICAgICAgICAgIGNhc2UgImRlZmF1bHRWYWx1ZSI6CiAgICAgICAgICAgICAgICAgIGNhc2UgImRlZmF1bHRDaGVja2VkIjoKICAgICAgICAgICAgICAgICAgY2FzZSAiaW5uZXJIVE1MIjoKICAgICAgICAgICAgICAgICAgY2FzZSAicmVmIjoKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgY2FzZSAiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOgogICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBkb21FbGVtZW50LmlubmVySFRNTDsKICAgICAgICAgICAgICAgICAgICBwcm9wS2V5ID0gcHJvcEtleSA/IHByb3BLZXkuX19odG1sIDogdm9pZCAwOwogICAgICAgICAgICAgICAgICAgIG51bGwgIT0gcHJvcEtleSAmJiAocHJvcEtleSA9IG5vcm1hbGl6ZUhUTUwoZG9tRWxlbWVudCwgcHJvcEtleSksIGF0dHJpYnV0ZXMgIT09IHByb3BLZXkgJiYgKHNlcnZlckRpZmZlcmVuY2VzW3ZhbHVlXSA9IHsgX19odG1sOiBhdHRyaWJ1dGVzIH0pKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgY2FzZSAiY2xhc3NOYW1lIjoKICAgICAgICAgICAgICAgICAgICBoeWRyYXRlQXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgImNsYXNzIiwKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsCiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIGNhc2UgInRhYkluZGV4IjoKICAgICAgICAgICAgICAgICAgICBoeWRyYXRlQXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgInRhYmluZGV4IiwKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsCiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIGNhc2UgInN0eWxlIjoKICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBkaWZmSHlkcmF0ZWRTdHlsZXMoZG9tRWxlbWVudCwgcHJvcEtleSwgc2VydmVyRGlmZmVyZW5jZXMpOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBjYXNlICJtdWx0aXBsZSI6CiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZSh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKAogICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50Lm11bHRpcGxlLAogICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSwKICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgY2FzZSAibXV0ZWQiOgogICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUodmFsdWUpOwogICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZSgKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudC5tdXRlZCwKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIGNhc2UgImF1dG9Gb2N1cyI6CiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZSgiYXV0b2ZvY3VzIik7CiAgICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKAogICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LmF1dG9mb2N1cywKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIGNhc2UgImRhdGEiOgogICAgICAgICAgICAgICAgICAgIGlmICgib2JqZWN0IiAhPT0gdGFnKSB7CiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBkb21FbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YSIpOwogICAgICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKAogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcywKICAgICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSwKICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGNhc2UgInNyYyI6CiAgICAgICAgICAgICAgICAgIGNhc2UgImhyZWYiOgogICAgICAgICAgICAgICAgICAgIGlmICghKCIiICE9PSBwcm9wS2V5IHx8ICJhIiA9PT0gdGFnICYmICJocmVmIiA9PT0gdmFsdWUgfHwgIm9iamVjdCIgPT09IHRhZyAmJiAiZGF0YSIgPT09IHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgInNyYyIgPT09IHZhbHVlID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgJ0FuIGVtcHR5IHN0cmluZyAoIiIpIHdhcyBwYXNzZWQgdG8gdGhlICVzIGF0dHJpYnV0ZS4gVGhpcyBtYXkgY2F1c2UgdGhlIGJyb3dzZXIgdG8gZG93bmxvYWQgdGhlIHdob2xlIHBhZ2UgYWdhaW4gb3ZlciB0aGUgbmV0d29yay4gVG8gZml4IHRoaXMsIGVpdGhlciBkbyBub3QgcmVuZGVyIHRoZSBlbGVtZW50IGF0IGFsbCBvciBwYXNzIG51bGwgdG8gJXMgaW5zdGVhZCBvZiBhbiBlbXB0eSBzdHJpbmcuJywKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICApIDogY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgJ0FuIGVtcHR5IHN0cmluZyAoIiIpIHdhcyBwYXNzZWQgdG8gdGhlICVzIGF0dHJpYnV0ZS4gVG8gZml4IHRoaXMsIGVpdGhlciBkbyBub3QgcmVuZGVyIHRoZSBlbGVtZW50IGF0IGFsbCBvciBwYXNzIG51bGwgdG8gJXMgaW5zdGVhZCBvZiBhbiBlbXB0eSBzdHJpbmcuJywKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGh5ZHJhdGVTYW5pdGl6ZWRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsCiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIGNhc2UgImFjdGlvbiI6CiAgICAgICAgICAgICAgICAgIGNhc2UgImZvcm1BY3Rpb24iOgogICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBkb21FbGVtZW50LmdldEF0dHJpYnV0ZSh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBwcm9wS2V5KSB7CiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKHZhbHVlLnRvTG93ZXJDYXNlKCkpOwogICAgICAgICAgICAgICAgICAgICAgImZvcm1BY3Rpb24iID09PSB2YWx1ZSA/IChleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKCJuYW1lIiksIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoImZvcm1lbmN0eXBlIiksIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoImZvcm1tZXRob2QiKSwgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZSgiZm9ybXRhcmdldCIpKSA6IChleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKCJlbmN0eXBlIiksIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoIm1ldGhvZCIpLCBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKCJ0YXJnZXQiKSk7CiAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZXMgPT09IEVYUEVDVEVEX0ZPUk1fQUNUSU9OX1VSTCkgewogICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZSh2YWx1ZS50b0xvd2VyQ2FzZSgpKTsKICAgICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZSgKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICJmdW5jdGlvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGh5ZHJhdGVTYW5pdGl6ZWRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS50b0xvd2VyQ2FzZSgpLAogICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSwKICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcywKICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgY2FzZSAieGxpbmtIcmVmIjoKICAgICAgICAgICAgICAgICAgICBoeWRyYXRlU2FuaXRpemVkQXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgInhsaW5rOmhyZWYiLAogICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSwKICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcywKICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgY2FzZSAiY29udGVudEVkaXRhYmxlIjoKICAgICAgICAgICAgICAgICAgICBoeWRyYXRlQm9vbGVhbmlzaEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICJjb250ZW50ZWRpdGFibGUiLAogICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSwKICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcywKICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgY2FzZSAic3BlbGxDaGVjayI6CiAgICAgICAgICAgICAgICAgICAgaHlkcmF0ZUJvb2xlYW5pc2hBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAic3BlbGxjaGVjayIsCiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLAogICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBjYXNlICJkcmFnZ2FibGUiOgogICAgICAgICAgICAgICAgICBjYXNlICJhdXRvUmV2ZXJzZSI6CiAgICAgICAgICAgICAgICAgIGNhc2UgImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiOgogICAgICAgICAgICAgICAgICBjYXNlICJmb2N1c2FibGUiOgogICAgICAgICAgICAgICAgICBjYXNlICJwcmVzZXJ2ZUFscGhhIjoKICAgICAgICAgICAgICAgICAgICBoeWRyYXRlQm9vbGVhbmlzaEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSwKICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcywKICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgY2FzZSAiYWxsb3dGdWxsU2NyZWVuIjoKICAgICAgICAgICAgICAgICAgY2FzZSAiYXN5bmMiOgogICAgICAgICAgICAgICAgICBjYXNlICJhdXRvUGxheSI6CiAgICAgICAgICAgICAgICAgIGNhc2UgImNvbnRyb2xzIjoKICAgICAgICAgICAgICAgICAgY2FzZSAiZGVmYXVsdCI6CiAgICAgICAgICAgICAgICAgIGNhc2UgImRlZmVyIjoKICAgICAgICAgICAgICAgICAgY2FzZSAiZGlzYWJsZWQiOgogICAgICAgICAgICAgICAgICBjYXNlICJkaXNhYmxlUGljdHVyZUluUGljdHVyZSI6CiAgICAgICAgICAgICAgICAgIGNhc2UgImRpc2FibGVSZW1vdGVQbGF5YmFjayI6CiAgICAgICAgICAgICAgICAgIGNhc2UgImZvcm1Ob1ZhbGlkYXRlIjoKICAgICAgICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoKICAgICAgICAgICAgICAgICAgY2FzZSAibG9vcCI6CiAgICAgICAgICAgICAgICAgIGNhc2UgIm5vTW9kdWxlIjoKICAgICAgICAgICAgICAgICAgY2FzZSAibm9WYWxpZGF0ZSI6CiAgICAgICAgICAgICAgICAgIGNhc2UgIm9wZW4iOgogICAgICAgICAgICAgICAgICBjYXNlICJwbGF5c0lubGluZSI6CiAgICAgICAgICAgICAgICAgIGNhc2UgInJlYWRPbmx5IjoKICAgICAgICAgICAgICAgICAgY2FzZSAicmVxdWlyZWQiOgogICAgICAgICAgICAgICAgICBjYXNlICJyZXZlcnNlZCI6CiAgICAgICAgICAgICAgICAgIGNhc2UgInNjb3BlZCI6CiAgICAgICAgICAgICAgICAgIGNhc2UgInNlYW1sZXNzIjoKICAgICAgICAgICAgICAgICAgY2FzZSAiaXRlbVNjb3BlIjoKICAgICAgICAgICAgICAgICAgICBoeWRyYXRlQm9vbGVhbkF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLnRvTG93ZXJDYXNlKCksCiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLAogICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBjYXNlICJjYXB0dXJlIjoKICAgICAgICAgICAgICAgICAgY2FzZSAiZG93bmxvYWQiOgogICAgICAgICAgICAgICAgICAgIGE6IHsKICAgICAgICAgICAgICAgICAgICAgIGkgPSBkb21FbGVtZW50OwogICAgICAgICAgICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSBhdHRyaWJ1dGVzID0gdmFsdWUsIHNlcnZlckRpZmZlcmVuY2VzJGpzY29tcCQwID0gc2VydmVyRGlmZmVyZW5jZXM7CiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKGF0dHJpYnV0ZU5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgaSA9IGkuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGkpCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHByb3BLZXkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1bmRlZmluZWQiOgogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJzeW1ib2wiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbHNlID09PSBwcm9wS2V5KSBicmVhayBhOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChudWxsICE9IHByb3BLZXkpCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHByb3BLZXkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAic3ltYm9sIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRydWUgPT09IHByb3BLZXkgJiYgIiIgPT09IGkpIGJyZWFrIGE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24ocHJvcEtleSwgYXR0cmlidXRlcyksIGkgPT09ICIiICsgcHJvcEtleSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKAogICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLAogICAgICAgICAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcyRqc2NvbXAkMAogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIGNhc2UgImNvbHMiOgogICAgICAgICAgICAgICAgICBjYXNlICJyb3dzIjoKICAgICAgICAgICAgICAgICAgY2FzZSAic2l6ZSI6CiAgICAgICAgICAgICAgICAgIGNhc2UgInNwYW4iOgogICAgICAgICAgICAgICAgICAgIGE6IHsKICAgICAgICAgICAgICAgICAgICAgIGkgPSBkb21FbGVtZW50OwogICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZSA9IGF0dHJpYnV0ZXMgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzJGpzY29tcCQwID0gc2VydmVyRGlmZmVyZW5jZXM7CiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKGF0dHJpYnV0ZU5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgaSA9IGkuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGkpCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHByb3BLZXkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1bmRlZmluZWQiOgogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImZ1bmN0aW9uIjoKICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJzeW1ib2wiOgogICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTsKICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKHByb3BLZXkpIHx8IDEgPiBwcm9wS2V5KSBicmVhayBhOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChudWxsICE9IHByb3BLZXkpCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHByb3BLZXkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAic3ltYm9sIjoKICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJib29sZWFuIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShpc05hTihwcm9wS2V5KSB8fCAxID4gcHJvcEtleSkgJiYgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24ocHJvcEtleSwgYXR0cmlidXRlcyksIGkgPT09ICIiICsgcHJvcEtleSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZSgKICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcywKICAgICAgICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSwKICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDAKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBjYXNlICJyb3dTcGFuIjoKICAgICAgICAgICAgICAgICAgICBoeWRyYXRlTnVtZXJpY0F0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICJyb3dzcGFuIiwKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsCiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIGNhc2UgInN0YXJ0IjoKICAgICAgICAgICAgICAgICAgICBoeWRyYXRlTnVtZXJpY0F0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSwKICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcywKICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgY2FzZSAieEhlaWdodCI6CiAgICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICJ4LWhlaWdodCIsCiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLAogICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBjYXNlICJ4bGlua0FjdHVhdGUiOgogICAgICAgICAgICAgICAgICAgIGh5ZHJhdGVBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAieGxpbms6YWN0dWF0ZSIsCiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLAogICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBjYXNlICJ4bGlua0FyY3JvbGUiOgogICAgICAgICAgICAgICAgICAgIGh5ZHJhdGVBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAieGxpbms6YXJjcm9sZSIsCiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLAogICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBjYXNlICJ4bGlua1JvbGUiOgogICAgICAgICAgICAgICAgICAgIGh5ZHJhdGVBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAieGxpbms6cm9sZSIsCiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLAogICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBjYXNlICJ4bGlua1Nob3ciOgogICAgICAgICAgICAgICAgICAgIGh5ZHJhdGVBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAieGxpbms6c2hvdyIsCiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLAogICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBjYXNlICJ4bGlua1RpdGxlIjoKICAgICAgICAgICAgICAgICAgICBoeWRyYXRlQXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgInhsaW5rOnRpdGxlIiwKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsCiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIGNhc2UgInhsaW5rVHlwZSI6CiAgICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICJ4bGluazp0eXBlIiwKICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsCiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIGNhc2UgInhtbEJhc2UiOgogICAgICAgICAgICAgICAgICAgIGh5ZHJhdGVBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAieG1sOmJhc2UiLAogICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSwKICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcywKICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgY2FzZSAieG1sTGFuZyI6CiAgICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICJ4bWw6bGFuZyIsCiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLAogICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBjYXNlICJ4bWxTcGFjZSI6CiAgICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICJ4bWw6c3BhY2UiLAogICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSwKICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcywKICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgY2FzZSAiaW5lcnQiOgogICAgICAgICAgICAgICAgICAgICIiICE9PSBwcm9wS2V5IHx8IGRpZFdhcm5Gb3JOZXdCb29sZWFuUHJvcHNXaXRoRW1wdHlWYWx1ZVt2YWx1ZV0gfHwgKGRpZFdhcm5Gb3JOZXdCb29sZWFuUHJvcHNXaXRoRW1wdHlWYWx1ZVt2YWx1ZV0gPSB0cnVlLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgICAgICAgIlJlY2VpdmVkIGFuIGVtcHR5IHN0cmluZyBmb3IgYSBib29sZWFuIGF0dHJpYnV0ZSBgJXNgLiBUaGlzIHdpbGwgdHJlYXQgdGhlIGF0dHJpYnV0ZSBhcyBpZiBpdCB3ZXJlIGZhbHNlLiBFaXRoZXIgcGFzcyBgZmFsc2VgIHRvIHNpbGVuY2UgdGhpcyB3YXJuaW5nLCBvciBwYXNzIGB0cnVlYCBpZiB5b3UgdXNlZCBhbiBlbXB0eSBzdHJpbmcgaW4gZWFybGllciB2ZXJzaW9ucyBvZiBSZWFjdCB0byBpbmRpY2F0ZSB0aGlzIGF0dHJpYnV0ZSBpcyB0cnVlLiIsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZQogICAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgICAgIGh5ZHJhdGVCb29sZWFuQXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LAogICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLAogICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGlmICghKDIgPCB2YWx1ZS5sZW5ndGgpIHx8ICJvIiAhPT0gdmFsdWVbMF0gJiYgIk8iICE9PSB2YWx1ZVswXSB8fCAibiIgIT09IHZhbHVlWzFdICYmICJOIiAhPT0gdmFsdWVbMV0pIHsKICAgICAgICAgICAgICAgICAgICAgIGkgPSBnZXRBdHRyaWJ1dGVBbGlhcyh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICBob3N0Q29udGV4dC5jb250ZXh0ID09PSBIb3N0Q29udGV4dE5hbWVzcGFjZU5vbmUgJiYgInN2ZyIgIT09IHRhZyAmJiAibWF0aCIgIT09IHRhZyA/IGV4dHJhQXR0cmlidXRlcy5kZWxldGUoaS50b0xvd2VyQ2FzZSgpKSA6IChhdHRyaWJ1dGVOYW1lID0gdmFsdWUudG9Mb3dlckNhc2UoKSwgYXR0cmlidXRlTmFtZSA9IHBvc3NpYmxlU3RhbmRhcmROYW1lcy5oYXNPd25Qcm9wZXJ0eSgKICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZQogICAgICAgICAgICAgICAgICAgICAgKSA/IHBvc3NpYmxlU3RhbmRhcmROYW1lc1thdHRyaWJ1dGVOYW1lXSB8fCBudWxsIDogbnVsbCwgbnVsbCAhPT0gYXR0cmlidXRlTmFtZSAmJiBhdHRyaWJ1dGVOYW1lICE9PSB2YWx1ZSAmJiAoYXR0cmlidXRlcyA9IHRydWUsIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoYXR0cmlidXRlTmFtZSkpLCBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKGkpKTsKICAgICAgICAgICAgICAgICAgICAgIGE6IGlmIChhdHRyaWJ1dGVOYW1lID0gZG9tRWxlbWVudCwgc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDAgPSBpLCBpID0gcHJvcEtleSwgaXNBdHRyaWJ1dGVOYW1lU2FmZShzZXJ2ZXJEaWZmZXJlbmNlcyRqc2NvbXAkMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVOYW1lLmhhc0F0dHJpYnV0ZShzZXJ2ZXJEaWZmZXJlbmNlcyRqc2NvbXAkMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZSA9IGF0dHJpYnV0ZU5hbWUuZ2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDAKICAgICAgICAgICAgICAgICAgICAgICAgICApLCBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzJGpzY29tcCQwCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwgaSA9IGF0dHJpYnV0ZU5hbWUgPT09ICIiICsgaSA/IGkgOiBhdHRyaWJ1dGVOYW1lOwogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJzeW1ib2wiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVOYW1lID0gc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDAudG9Mb3dlckNhc2UoKS5zbGljZSgwLCA1KSwgImRhdGEtIiAhPT0gYXR0cmlidXRlTmFtZSAmJiAiYXJpYS0iICE9PSBhdHRyaWJ1dGVOYW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIGkgPSB2b2lkIDAgPT09IGkgPyB2b2lkIDAgOiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBlbHNlIGkgPSB2b2lkIDA7CiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIHx8IHdhcm5Gb3JQcm9wRGlmZmVyZW5jZSgKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIDAgPCBleHRyYUF0dHJpYnV0ZXMuc2l6ZSAmJiB0cnVlICE9PSBwcm9wcy5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgJiYgd2FybkZvckV4dHJhQXR0cmlidXRlcyhkb21FbGVtZW50LCBleHRyYUF0dHJpYnV0ZXMsIHNlcnZlckRpZmZlcmVuY2VzKTsKICAgICAgICByZXR1cm4gMCA9PT0gT2JqZWN0LmtleXMoc2VydmVyRGlmZmVyZW5jZXMpLmxlbmd0aCA/IG51bGwgOiBzZXJ2ZXJEaWZmZXJlbmNlczsKICAgICAgfQogICAgICBmdW5jdGlvbiBwcm9wTmFtZXNMaXN0Sm9pbihsaXN0LCBjb21iaW5hdG9yKSB7CiAgICAgICAgc3dpdGNoIChsaXN0Lmxlbmd0aCkgewogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICByZXR1cm4gIiI7CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHJldHVybiBsaXN0WzBdOwogICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICByZXR1cm4gbGlzdFswXSArICIgIiArIGNvbWJpbmF0b3IgKyAiICIgKyBsaXN0WzFdOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIGxpc3Quc2xpY2UoMCwgLTEpLmpvaW4oIiwgIikgKyAiLCAiICsgY29tYmluYXRvciArICIgIiArIGxpc3RbbGlzdC5sZW5ndGggLSAxXTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaXNMaWtlbHlTdGF0aWNSZXNvdXJjZShpbml0aWF0b3JUeXBlKSB7CiAgICAgICAgc3dpdGNoIChpbml0aWF0b3JUeXBlKSB7CiAgICAgICAgICBjYXNlICJjc3MiOgogICAgICAgICAgY2FzZSAic2NyaXB0IjoKICAgICAgICAgIGNhc2UgImZvbnQiOgogICAgICAgICAgY2FzZSAiaW1nIjoKICAgICAgICAgIGNhc2UgImltYWdlIjoKICAgICAgICAgIGNhc2UgImlucHV0IjoKICAgICAgICAgIGNhc2UgImxpbmsiOgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZXN0aW1hdGVCYW5kd2lkdGgoKSB7CiAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKSB7CiAgICAgICAgICBmb3IgKHZhciBjb3VudCA9IDAsIGJpdHMgPSAwLCByZXNvdXJjZUVudHJpZXMgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpLCBpID0gMDsgaSA8IHJlc291cmNlRW50cmllcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgZW50cnkgPSByZXNvdXJjZUVudHJpZXNbaV0sIHRyYW5zZmVyU2l6ZSA9IGVudHJ5LnRyYW5zZmVyU2l6ZSwgaW5pdGlhdG9yVHlwZSA9IGVudHJ5LmluaXRpYXRvclR5cGUsIGR1cmF0aW9uID0gZW50cnkuZHVyYXRpb247CiAgICAgICAgICAgIGlmICh0cmFuc2ZlclNpemUgJiYgZHVyYXRpb24gJiYgaXNMaWtlbHlTdGF0aWNSZXNvdXJjZShpbml0aWF0b3JUeXBlKSkgewogICAgICAgICAgICAgIGluaXRpYXRvclR5cGUgPSAwOwogICAgICAgICAgICAgIGR1cmF0aW9uID0gZW50cnkucmVzcG9uc2VFbmQ7CiAgICAgICAgICAgICAgZm9yIChpICs9IDE7IGkgPCByZXNvdXJjZUVudHJpZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIHZhciBvdmVybGFwRW50cnkgPSByZXNvdXJjZUVudHJpZXNbaV0sIG92ZXJsYXBTdGFydFRpbWUgPSBvdmVybGFwRW50cnkuc3RhcnRUaW1lOwogICAgICAgICAgICAgICAgaWYgKG92ZXJsYXBTdGFydFRpbWUgPiBkdXJhdGlvbikgYnJlYWs7CiAgICAgICAgICAgICAgICB2YXIgb3ZlcmxhcFRyYW5zZmVyU2l6ZSA9IG92ZXJsYXBFbnRyeS50cmFuc2ZlclNpemUsIG92ZXJsYXBJbml0aWF0b3JUeXBlID0gb3ZlcmxhcEVudHJ5LmluaXRpYXRvclR5cGU7CiAgICAgICAgICAgICAgICBvdmVybGFwVHJhbnNmZXJTaXplICYmIGlzTGlrZWx5U3RhdGljUmVzb3VyY2Uob3ZlcmxhcEluaXRpYXRvclR5cGUpICYmIChvdmVybGFwRW50cnkgPSBvdmVybGFwRW50cnkucmVzcG9uc2VFbmQsIGluaXRpYXRvclR5cGUgKz0gb3ZlcmxhcFRyYW5zZmVyU2l6ZSAqIChvdmVybGFwRW50cnkgPCBkdXJhdGlvbiA/IDEgOiAoZHVyYXRpb24gLSBvdmVybGFwU3RhcnRUaW1lKSAvIChvdmVybGFwRW50cnkgLSBvdmVybGFwU3RhcnRUaW1lKSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAtLWk7CiAgICAgICAgICAgICAgYml0cyArPSA4ICogKHRyYW5zZmVyU2l6ZSArIGluaXRpYXRvclR5cGUpIC8gKGVudHJ5LmR1cmF0aW9uIC8gMWUzKTsKICAgICAgICAgICAgICBjb3VudCsrOwogICAgICAgICAgICAgIGlmICgxMCA8IGNvdW50KSBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKDAgPCBjb3VudCkgcmV0dXJuIGJpdHMgLyBjb3VudCAvIDFlNjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jb25uZWN0aW9uICYmIChjb3VudCA9IG5hdmlnYXRvci5jb25uZWN0aW9uLmRvd25saW5rLCAibnVtYmVyIiA9PT0gdHlwZW9mIGNvdW50KSA/IGNvdW50IDogNTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIocm9vdENvbnRhaW5lckVsZW1lbnQpIHsKICAgICAgICByZXR1cm4gOSA9PT0gcm9vdENvbnRhaW5lckVsZW1lbnQubm9kZVR5cGUgPyByb290Q29udGFpbmVyRWxlbWVudCA6IHJvb3RDb250YWluZXJFbGVtZW50Lm93bmVyRG9jdW1lbnQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0T3duSG9zdENvbnRleHQobmFtZXNwYWNlVVJJKSB7CiAgICAgICAgc3dpdGNoIChuYW1lc3BhY2VVUkkpIHsKICAgICAgICAgIGNhc2UgU1ZHX05BTUVTUEFDRToKICAgICAgICAgICAgcmV0dXJuIEhvc3RDb250ZXh0TmFtZXNwYWNlU3ZnOwogICAgICAgICAgY2FzZSBNQVRIX05BTUVTUEFDRToKICAgICAgICAgICAgcmV0dXJuIEhvc3RDb250ZXh0TmFtZXNwYWNlTWF0aDsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiBIb3N0Q29udGV4dE5hbWVzcGFjZU5vbmU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldENoaWxkSG9zdENvbnRleHRQcm9kKHBhcmVudE5hbWVzcGFjZSwgdHlwZSkgewogICAgICAgIGlmIChwYXJlbnROYW1lc3BhY2UgPT09IEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZSkKICAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgICBjYXNlICJzdmciOgogICAgICAgICAgICAgIHJldHVybiBIb3N0Q29udGV4dE5hbWVzcGFjZVN2ZzsKICAgICAgICAgICAgY2FzZSAibWF0aCI6CiAgICAgICAgICAgICAgcmV0dXJuIEhvc3RDb250ZXh0TmFtZXNwYWNlTWF0aDsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICByZXR1cm4gSG9zdENvbnRleHROYW1lc3BhY2VOb25lOwogICAgICAgICAgfQogICAgICAgIHJldHVybiBwYXJlbnROYW1lc3BhY2UgPT09IEhvc3RDb250ZXh0TmFtZXNwYWNlU3ZnICYmICJmb3JlaWduT2JqZWN0IiA9PT0gdHlwZSA/IEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZSA6IHBhcmVudE5hbWVzcGFjZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzaG91bGRTZXRUZXh0Q29udGVudCh0eXBlLCBwcm9wcykgewogICAgICAgIHJldHVybiAidGV4dGFyZWEiID09PSB0eXBlIHx8ICJub3NjcmlwdCIgPT09IHR5cGUgfHwgInN0cmluZyIgPT09IHR5cGVvZiBwcm9wcy5jaGlsZHJlbiB8fCAibnVtYmVyIiA9PT0gdHlwZW9mIHByb3BzLmNoaWxkcmVuIHx8ICJiaWdpbnQiID09PSB0eXBlb2YgcHJvcHMuY2hpbGRyZW4gfHwgIm9iamVjdCIgPT09IHR5cGVvZiBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAmJiBudWxsICE9PSBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAmJiBudWxsICE9IHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBzaG91bGRBdHRlbXB0RWFnZXJUcmFuc2l0aW9uKCkgewogICAgICAgIHZhciBldmVudCA9IHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZXZlbnQgJiYgInBvcHN0YXRlIiA9PT0gZXZlbnQudHlwZSkgewogICAgICAgICAgaWYgKGV2ZW50ID09PSBjdXJyZW50UG9wc3RhdGVUcmFuc2l0aW9uRXZlbnQpIHJldHVybiBmYWxzZTsKICAgICAgICAgIGN1cnJlbnRQb3BzdGF0ZVRyYW5zaXRpb25FdmVudCA9IGV2ZW50OwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGN1cnJlbnRQb3BzdGF0ZVRyYW5zaXRpb25FdmVudCA9IG51bGw7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc29sdmVFdmVudFR5cGUoKSB7CiAgICAgICAgdmFyIGV2ZW50ID0gd2luZG93LmV2ZW50OwogICAgICAgIHJldHVybiBldmVudCAmJiBldmVudCAhPT0gc2NoZWR1bGVyRXZlbnQgPyBldmVudC50eXBlIDogbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiByZXNvbHZlRXZlbnRUaW1lU3RhbXAoKSB7CiAgICAgICAgdmFyIGV2ZW50ID0gd2luZG93LmV2ZW50OwogICAgICAgIHJldHVybiBldmVudCAmJiBldmVudCAhPT0gc2NoZWR1bGVyRXZlbnQgPyBldmVudC50aW1lU3RhbXAgOiAtMS4xOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGhhbmRsZUVycm9ySW5OZXh0VGljayhlcnJvcikgewogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRNb3VudChkb21FbGVtZW50LCB0eXBlLCBuZXdQcm9wcykgewogICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgY2FzZSAiYnV0dG9uIjoKICAgICAgICAgIGNhc2UgImlucHV0IjoKICAgICAgICAgIGNhc2UgInNlbGVjdCI6CiAgICAgICAgICBjYXNlICJ0ZXh0YXJlYSI6CiAgICAgICAgICAgIG5ld1Byb3BzLmF1dG9Gb2N1cyAmJiBkb21FbGVtZW50LmZvY3VzKCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiaW1nIjoKICAgICAgICAgICAgbmV3UHJvcHMuc3JjID8gZG9tRWxlbWVudC5zcmMgPSBuZXdQcm9wcy5zcmMgOiBuZXdQcm9wcy5zcmNTZXQgJiYgKGRvbUVsZW1lbnQuc3Jjc2V0ID0gbmV3UHJvcHMuc3JjU2V0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0SHlkcmF0ZWRJbnN0YW5jZSgpIHsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRVcGRhdGUoZG9tRWxlbWVudCwgdHlwZSwgb2xkUHJvcHMsIG5ld1Byb3BzKSB7CiAgICAgICAgdXBkYXRlUHJvcGVydGllcyhkb21FbGVtZW50LCB0eXBlLCBvbGRQcm9wcywgbmV3UHJvcHMpOwogICAgICAgIGRvbUVsZW1lbnRbaW50ZXJuYWxQcm9wc0tleV0gPSBuZXdQcm9wczsKICAgICAgfQogICAgICBmdW5jdGlvbiByZXNldFRleHRDb250ZW50KGRvbUVsZW1lbnQpIHsKICAgICAgICBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCAiIik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0VGV4dFVwZGF0ZSh0ZXh0SW5zdGFuY2UsIG9sZFRleHQsIG5ld1RleHQpIHsKICAgICAgICB0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlID0gbmV3VGV4dDsKICAgICAgfQogICAgICBmdW5jdGlvbiB3YXJuRm9yUmVhY3RDaGlsZHJlbkNvbmZsaWN0KGNvbnRhaW5lcikgewogICAgICAgIGlmICghY29udGFpbmVyLl9fcmVhY3RXYXJuZWRBYm91dENoaWxkcmVuQ29uZmxpY3QpIHsKICAgICAgICAgIHZhciBwcm9wcyA9IGNvbnRhaW5lcltpbnRlcm5hbFByb3BzS2V5XSB8fCBudWxsOwogICAgICAgICAgaWYgKG51bGwgIT09IHByb3BzKSB7CiAgICAgICAgICAgIHZhciBmaWJlciA9IGdldEluc3RhbmNlRnJvbU5vZGUoY29udGFpbmVyKTsKICAgICAgICAgICAgbnVsbCAhPT0gZmliZXIgJiYgKCJzdHJpbmciID09PSB0eXBlb2YgcHJvcHMuY2hpbGRyZW4gfHwgIm51bWJlciIgPT09IHR5cGVvZiBwcm9wcy5jaGlsZHJlbiA/IChjb250YWluZXIuX19yZWFjdFdhcm5lZEFib3V0Q2hpbGRyZW5Db25mbGljdCA9IHRydWUsIHJ1bldpdGhGaWJlckluREVWKGZpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgJ0Nhbm5vdCB1c2UgYSByZWYgb24gYSBSZWFjdCBlbGVtZW50IGFzIGEgY29udGFpbmVyIHRvIGBjcmVhdGVSb290YCBvciBgY3JlYXRlUG9ydGFsYCBpZiB0aGF0IGVsZW1lbnQgYWxzbyBzZXRzICJjaGlsZHJlbiIgdGV4dCBjb250ZW50IHVzaW5nIFJlYWN0LiBJdCBzaG91bGQgYmUgYSBsZWFmIHdpdGggbm8gY2hpbGRyZW4uIE90aGVyd2lzZSBpdFwncyBhbWJpZ3VvdXMgd2hpY2ggY2hpbGRyZW4gc2hvdWxkIGJlIHVzZWQuJwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pKSA6IG51bGwgIT0gcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiYgKGNvbnRhaW5lci5fX3JlYWN0V2FybmVkQWJvdXRDaGlsZHJlbkNvbmZsaWN0ID0gdHJ1ZSwgcnVuV2l0aEZpYmVySW5ERVYoZmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAnQ2Fubm90IHVzZSBhIHJlZiBvbiBhIFJlYWN0IGVsZW1lbnQgYXMgYSBjb250YWluZXIgdG8gYGNyZWF0ZVJvb3RgIG9yIGBjcmVhdGVQb3J0YWxgIGlmIHRoYXQgZWxlbWVudCBhbHNvIHNldHMgImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiB1c2luZyBSZWFjdC4gSXQgc2hvdWxkIGJlIGEgbGVhZiB3aXRoIG5vIGNoaWxkcmVuLiBPdGhlcndpc2UgaXRcJ3MgYW1iaWd1b3VzIHdoaWNoIGNoaWxkcmVuIHNob3VsZCBiZSB1c2VkLicKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KSkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBpc1NpbmdsZXRvblNjb3BlKHR5cGUpIHsKICAgICAgICByZXR1cm4gImhlYWQiID09PSB0eXBlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlbW92ZUNoaWxkKHBhcmVudEluc3RhbmNlLCBjaGlsZCkgewogICAgICAgIHBhcmVudEluc3RhbmNlLnJlbW92ZUNoaWxkKGNoaWxkKTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZW1vdmVDaGlsZEZyb21Db250YWluZXIoY29udGFpbmVyLCBjaGlsZCkgewogICAgICAgICg5ID09PSBjb250YWluZXIubm9kZVR5cGUgPyBjb250YWluZXIuYm9keSA6ICJIVE1MIiA9PT0gY29udGFpbmVyLm5vZGVOYW1lID8gY29udGFpbmVyLm93bmVyRG9jdW1lbnQuYm9keSA6IGNvbnRhaW5lcikucmVtb3ZlQ2hpbGQoY2hpbGQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNsZWFySHlkcmF0aW9uQm91bmRhcnkocGFyZW50SW5zdGFuY2UsIGh5ZHJhdGlvbkluc3RhbmNlKSB7CiAgICAgICAgdmFyIG5vZGUgPSBoeWRyYXRpb25JbnN0YW5jZSwgZGVwdGggPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIHZhciBuZXh0Tm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7CiAgICAgICAgICBwYXJlbnRJbnN0YW5jZS5yZW1vdmVDaGlsZChub2RlKTsKICAgICAgICAgIGlmIChuZXh0Tm9kZSAmJiA4ID09PSBuZXh0Tm9kZS5ub2RlVHlwZSkKICAgICAgICAgICAgaWYgKG5vZGUgPSBuZXh0Tm9kZS5kYXRhLCBub2RlID09PSBTVVNQRU5TRV9FTkRfREFUQSB8fCBub2RlID09PSBBQ1RJVklUWV9FTkRfREFUQSkgewogICAgICAgICAgICAgIGlmICgwID09PSBkZXB0aCkgewogICAgICAgICAgICAgICAgcGFyZW50SW5zdGFuY2UucmVtb3ZlQ2hpbGQobmV4dE5vZGUpOwogICAgICAgICAgICAgICAgcmV0cnlJZkJsb2NrZWRPbihoeWRyYXRpb25JbnN0YW5jZSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGRlcHRoLS07CiAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZSA9PT0gU1VTUEVOU0VfU1RBUlRfREFUQSB8fCBub2RlID09PSBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEgfHwgbm9kZSA9PT0gU1VTUEVOU0VfUVVFVUVEX1NUQVJUX0RBVEEgfHwgbm9kZSA9PT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSB8fCBub2RlID09PSBBQ1RJVklUWV9TVEFSVF9EQVRBKQogICAgICAgICAgICAgIGRlcHRoKys7CiAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUgPT09IFBSRUFNQkxFX0NPTlRSSUJVVElPTl9IVE1MKQogICAgICAgICAgICAgIHJlbGVhc2VTaW5nbGV0b25JbnN0YW5jZSgKICAgICAgICAgICAgICAgIHBhcmVudEluc3RhbmNlLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgZWxzZSBpZiAobm9kZSA9PT0gUFJFQU1CTEVfQ09OVFJJQlVUSU9OX0hFQUQpIHsKICAgICAgICAgICAgICBub2RlID0gcGFyZW50SW5zdGFuY2Uub3duZXJEb2N1bWVudC5oZWFkOwogICAgICAgICAgICAgIHJlbGVhc2VTaW5nbGV0b25JbnN0YW5jZShub2RlKTsKICAgICAgICAgICAgICBmb3IgKHZhciBub2RlJGpzY29tcCQwID0gbm9kZS5maXJzdENoaWxkOyBub2RlJGpzY29tcCQwOyApIHsKICAgICAgICAgICAgICAgIHZhciBuZXh0Tm9kZSRqc2NvbXAkMCA9IG5vZGUkanNjb21wJDAubmV4dFNpYmxpbmcsIG5vZGVOYW1lID0gbm9kZSRqc2NvbXAkMC5ub2RlTmFtZTsKICAgICAgICAgICAgICAgIG5vZGUkanNjb21wJDBbaW50ZXJuYWxIb2lzdGFibGVNYXJrZXJdIHx8ICJTQ1JJUFQiID09PSBub2RlTmFtZSB8fCAiU1RZTEUiID09PSBub2RlTmFtZSB8fCAiTElOSyIgPT09IG5vZGVOYW1lICYmICJzdHlsZXNoZWV0IiA9PT0gbm9kZSRqc2NvbXAkMC5yZWwudG9Mb3dlckNhc2UoKSB8fCBub2RlLnJlbW92ZUNoaWxkKG5vZGUkanNjb21wJDApOwogICAgICAgICAgICAgICAgbm9kZSRqc2NvbXAkMCA9IG5leHROb2RlJGpzY29tcCQwOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgbm9kZSA9PT0gUFJFQU1CTEVfQ09OVFJJQlVUSU9OX0JPRFkgJiYgcmVsZWFzZVNpbmdsZXRvbkluc3RhbmNlKHBhcmVudEluc3RhbmNlLm93bmVyRG9jdW1lbnQuYm9keSk7CiAgICAgICAgICBub2RlID0gbmV4dE5vZGU7CiAgICAgICAgfSB3aGlsZSAobm9kZSk7CiAgICAgICAgcmV0cnlJZkJsb2NrZWRPbihoeWRyYXRpb25JbnN0YW5jZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaGlkZU9yVW5oaWRlRGVoeWRyYXRlZEJvdW5kYXJ5KHN1c3BlbnNlSW5zdGFuY2UsIGlzSGlkZGVuKSB7CiAgICAgICAgdmFyIG5vZGUgPSBzdXNwZW5zZUluc3RhbmNlOwogICAgICAgIHN1c3BlbnNlSW5zdGFuY2UgPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIHZhciBuZXh0Tm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7CiAgICAgICAgICAxID09PSBub2RlLm5vZGVUeXBlID8gaXNIaWRkZW4gPyAobm9kZS5fc3Rhc2hlZERpc3BsYXkgPSBub2RlLnN0eWxlLmRpc3BsYXksIG5vZGUuc3R5bGUuZGlzcGxheSA9ICJub25lIikgOiAobm9kZS5zdHlsZS5kaXNwbGF5ID0gbm9kZS5fc3Rhc2hlZERpc3BsYXkgfHwgIiIsICIiID09PSBub2RlLmdldEF0dHJpYnV0ZSgic3R5bGUiKSAmJiBub2RlLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSkgOiAzID09PSBub2RlLm5vZGVUeXBlICYmIChpc0hpZGRlbiA/IChub2RlLl9zdGFzaGVkVGV4dCA9IG5vZGUubm9kZVZhbHVlLCBub2RlLm5vZGVWYWx1ZSA9ICIiKSA6IG5vZGUubm9kZVZhbHVlID0gbm9kZS5fc3Rhc2hlZFRleHQgfHwgIiIpOwogICAgICAgICAgaWYgKG5leHROb2RlICYmIDggPT09IG5leHROb2RlLm5vZGVUeXBlKQogICAgICAgICAgICBpZiAobm9kZSA9IG5leHROb2RlLmRhdGEsIG5vZGUgPT09IFNVU1BFTlNFX0VORF9EQVRBKQogICAgICAgICAgICAgIGlmICgwID09PSBzdXNwZW5zZUluc3RhbmNlKSBicmVhazsKICAgICAgICAgICAgICBlbHNlIHN1c3BlbnNlSW5zdGFuY2UtLTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgIG5vZGUgIT09IFNVU1BFTlNFX1NUQVJUX0RBVEEgJiYgbm9kZSAhPT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBICYmIG5vZGUgIT09IFNVU1BFTlNFX1FVRVVFRF9TVEFSVF9EQVRBICYmIG5vZGUgIT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEgfHwgc3VzcGVuc2VJbnN0YW5jZSsrOwogICAgICAgICAgbm9kZSA9IG5leHROb2RlOwogICAgICAgIH0gd2hpbGUgKG5vZGUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGhpZGVEZWh5ZHJhdGVkQm91bmRhcnkoc3VzcGVuc2VJbnN0YW5jZSkgewogICAgICAgIGhpZGVPclVuaGlkZURlaHlkcmF0ZWRCb3VuZGFyeShzdXNwZW5zZUluc3RhbmNlLCB0cnVlKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBoaWRlSW5zdGFuY2UoaW5zdGFuY2UpIHsKICAgICAgICBpbnN0YW5jZSA9IGluc3RhbmNlLnN0eWxlOwogICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBpbnN0YW5jZS5zZXRQcm9wZXJ0eSA/IGluc3RhbmNlLnNldFByb3BlcnR5KCJkaXNwbGF5IiwgIm5vbmUiLCAiaW1wb3J0YW50IikgOiBpbnN0YW5jZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGhpZGVUZXh0SW5zdGFuY2UodGV4dEluc3RhbmNlKSB7CiAgICAgICAgdGV4dEluc3RhbmNlLm5vZGVWYWx1ZSA9ICIiOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHVuaGlkZURlaHlkcmF0ZWRCb3VuZGFyeShkZWh5ZHJhdGVkSW5zdGFuY2UpIHsKICAgICAgICBoaWRlT3JVbmhpZGVEZWh5ZHJhdGVkQm91bmRhcnkoZGVoeWRyYXRlZEluc3RhbmNlLCBmYWxzZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdW5oaWRlSW5zdGFuY2UoaW5zdGFuY2UsIHByb3BzKSB7CiAgICAgICAgcHJvcHMgPSBwcm9wc1tTVFlMRV07CiAgICAgICAgcHJvcHMgPSB2b2lkIDAgIT09IHByb3BzICYmIG51bGwgIT09IHByb3BzICYmIHByb3BzLmhhc093blByb3BlcnR5KCJkaXNwbGF5IikgPyBwcm9wcy5kaXNwbGF5IDogbnVsbDsKICAgICAgICBpbnN0YW5jZS5zdHlsZS5kaXNwbGF5ID0gbnVsbCA9PSBwcm9wcyB8fCAiYm9vbGVhbiIgPT09IHR5cGVvZiBwcm9wcyA/ICIiIDogKCIiICsgcHJvcHMpLnRyaW0oKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB1bmhpZGVUZXh0SW5zdGFuY2UodGV4dEluc3RhbmNlLCB0ZXh0KSB7CiAgICAgICAgdGV4dEluc3RhbmNlLm5vZGVWYWx1ZSA9IHRleHQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY2xlYXJDb250YWluZXJTcGFyaW5nbHkoY29udGFpbmVyKSB7CiAgICAgICAgdmFyIG5leHROb2RlID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7CiAgICAgICAgbmV4dE5vZGUgJiYgMTAgPT09IG5leHROb2RlLm5vZGVUeXBlICYmIChuZXh0Tm9kZSA9IG5leHROb2RlLm5leHRTaWJsaW5nKTsKICAgICAgICBmb3IgKDsgbmV4dE5vZGU7ICkgewogICAgICAgICAgdmFyIG5vZGUgPSBuZXh0Tm9kZTsKICAgICAgICAgIG5leHROb2RlID0gbmV4dE5vZGUubmV4dFNpYmxpbmc7CiAgICAgICAgICBzd2l0Y2ggKG5vZGUubm9kZU5hbWUpIHsKICAgICAgICAgICAgY2FzZSAiSFRNTCI6CiAgICAgICAgICAgIGNhc2UgIkhFQUQiOgogICAgICAgICAgICBjYXNlICJCT0RZIjoKICAgICAgICAgICAgICBjbGVhckNvbnRhaW5lclNwYXJpbmdseShub2RlKTsKICAgICAgICAgICAgICBkZXRhY2hEZWxldGVkSW5zdGFuY2Uobm9kZSk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGNhc2UgIlNDUklQVCI6CiAgICAgICAgICAgIGNhc2UgIlNUWUxFIjoKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgY2FzZSAiTElOSyI6CiAgICAgICAgICAgICAgaWYgKCJzdHlsZXNoZWV0IiA9PT0gbm9kZS5yZWwudG9Mb3dlckNhc2UoKSkgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQobm9kZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbkh5ZHJhdGVJbnN0YW5jZShpbnN0YW5jZSwgdHlwZSwgcHJvcHMsIGluUm9vdE9yU2luZ2xldG9uKSB7CiAgICAgICAgZm9yICg7IDEgPT09IGluc3RhbmNlLm5vZGVUeXBlOyApIHsKICAgICAgICAgIHZhciBhbnlQcm9wcyA9IHByb3BzOwogICAgICAgICAgaWYgKGluc3RhbmNlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09IHR5cGUudG9Mb3dlckNhc2UoKSkgewogICAgICAgICAgICBpZiAoIWluUm9vdE9yU2luZ2xldG9uICYmICgiSU5QVVQiICE9PSBpbnN0YW5jZS5ub2RlTmFtZSB8fCAiaGlkZGVuIiAhPT0gaW5zdGFuY2UudHlwZSkpCiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9IGVsc2UgaWYgKCFpblJvb3RPclNpbmdsZXRvbikKICAgICAgICAgICAgaWYgKCJpbnB1dCIgPT09IHR5cGUgJiYgImhpZGRlbiIgPT09IGluc3RhbmNlLnR5cGUpIHsKICAgICAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKGFueVByb3BzLm5hbWUsICJuYW1lIik7CiAgICAgICAgICAgICAgdmFyIG5hbWUgPSBudWxsID09IGFueVByb3BzLm5hbWUgPyBudWxsIDogIiIgKyBhbnlQcm9wcy5uYW1lOwogICAgICAgICAgICAgIGlmICgiaGlkZGVuIiA9PT0gYW55UHJvcHMudHlwZSAmJiBpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoIm5hbWUiKSA9PT0gbmFtZSkKICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICAgICAgICAgfSBlbHNlIHJldHVybiBpbnN0YW5jZTsKICAgICAgICAgIGVsc2UgaWYgKCFpbnN0YW5jZVtpbnRlcm5hbEhvaXN0YWJsZU1hcmtlcl0pCiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgICAgIGNhc2UgIm1ldGEiOgogICAgICAgICAgICAgICAgaWYgKCFpbnN0YW5jZS5oYXNBdHRyaWJ1dGUoIml0ZW1wcm9wIikpIGJyZWFrOwogICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAgICAgICAgICAgIGNhc2UgImxpbmsiOgogICAgICAgICAgICAgICAgbmFtZSA9IGluc3RhbmNlLmdldEF0dHJpYnV0ZSgicmVsIik7CiAgICAgICAgICAgICAgICBpZiAoInN0eWxlc2hlZXQiID09PSBuYW1lICYmIGluc3RhbmNlLmhhc0F0dHJpYnV0ZSgiZGF0YS1wcmVjZWRlbmNlIikpCiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZWxzZSBpZiAobmFtZSAhPT0gYW55UHJvcHMucmVsIHx8IGluc3RhbmNlLmdldEF0dHJpYnV0ZSgiaHJlZiIpICE9PSAobnVsbCA9PSBhbnlQcm9wcy5ocmVmIHx8ICIiID09PSBhbnlQcm9wcy5ocmVmID8gbnVsbCA6IGFueVByb3BzLmhyZWYpIHx8IGluc3RhbmNlLmdldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iKSAhPT0gKG51bGwgPT0gYW55UHJvcHMuY3Jvc3NPcmlnaW4gPyBudWxsIDogYW55UHJvcHMuY3Jvc3NPcmlnaW4pIHx8IGluc3RhbmNlLmdldEF0dHJpYnV0ZSgidGl0bGUiKSAhPT0gKG51bGwgPT0gYW55UHJvcHMudGl0bGUgPyBudWxsIDogYW55UHJvcHMudGl0bGUpKQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICAgICAgICAgICBjYXNlICJzdHlsZSI6CiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UuaGFzQXR0cmlidXRlKCJkYXRhLXByZWNlZGVuY2UiKSkgYnJlYWs7CiAgICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICAgICAgICAgICAgY2FzZSAic2NyaXB0IjoKICAgICAgICAgICAgICAgIG5hbWUgPSBpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoInNyYyIpOwogICAgICAgICAgICAgICAgaWYgKChuYW1lICE9PSAobnVsbCA9PSBhbnlQcm9wcy5zcmMgPyBudWxsIDogYW55UHJvcHMuc3JjKSB8fCBpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSAhPT0gKG51bGwgPT0gYW55UHJvcHMudHlwZSA/IG51bGwgOiBhbnlQcm9wcy50eXBlKSB8fCBpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIikgIT09IChudWxsID09IGFueVByb3BzLmNyb3NzT3JpZ2luID8gbnVsbCA6IGFueVByb3BzLmNyb3NzT3JpZ2luKSkgJiYgbmFtZSAmJiBpbnN0YW5jZS5oYXNBdHRyaWJ1dGUoImFzeW5jIikgJiYgIWluc3RhbmNlLmhhc0F0dHJpYnV0ZSgiaXRlbXByb3AiKSkKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICAgICAgICAgfQogICAgICAgICAgaW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZShpbnN0YW5jZS5uZXh0U2libGluZyk7CiAgICAgICAgICBpZiAobnVsbCA9PT0gaW5zdGFuY2UpIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBjYW5IeWRyYXRlVGV4dEluc3RhbmNlKGluc3RhbmNlLCB0ZXh0LCBpblJvb3RPclNpbmdsZXRvbikgewogICAgICAgIGlmICgiIiA9PT0gdGV4dCkgcmV0dXJuIG51bGw7CiAgICAgICAgZm9yICg7IDMgIT09IGluc3RhbmNlLm5vZGVUeXBlOyApIHsKICAgICAgICAgIGlmICgoMSAhPT0gaW5zdGFuY2Uubm9kZVR5cGUgfHwgIklOUFVUIiAhPT0gaW5zdGFuY2Uubm9kZU5hbWUgfHwgImhpZGRlbiIgIT09IGluc3RhbmNlLnR5cGUpICYmICFpblJvb3RPclNpbmdsZXRvbikKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICBpbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKGluc3RhbmNlLm5leHRTaWJsaW5nKTsKICAgICAgICAgIGlmIChudWxsID09PSBpbnN0YW5jZSkgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjYW5IeWRyYXRlSHlkcmF0aW9uQm91bmRhcnkoaW5zdGFuY2UsIGluUm9vdE9yU2luZ2xldG9uKSB7CiAgICAgICAgZm9yICg7IDggIT09IGluc3RhbmNlLm5vZGVUeXBlOyApIHsKICAgICAgICAgIGlmICgoMSAhPT0gaW5zdGFuY2Uubm9kZVR5cGUgfHwgIklOUFVUIiAhPT0gaW5zdGFuY2Uubm9kZU5hbWUgfHwgImhpZGRlbiIgIT09IGluc3RhbmNlLnR5cGUpICYmICFpblJvb3RPclNpbmdsZXRvbikKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICBpbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKGluc3RhbmNlLm5leHRTaWJsaW5nKTsKICAgICAgICAgIGlmIChudWxsID09PSBpbnN0YW5jZSkgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc1N1c3BlbnNlSW5zdGFuY2VQZW5kaW5nKGluc3RhbmNlKSB7CiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSB8fCBpbnN0YW5jZS5kYXRhID09PSBTVVNQRU5TRV9RVUVVRURfU1RBUlRfREFUQTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc1N1c3BlbnNlSW5zdGFuY2VGYWxsYmFjayhpbnN0YW5jZSkgewogICAgICAgIHJldHVybiBpbnN0YW5jZS5kYXRhID09PSBTVVNQRU5TRV9GQUxMQkFDS19TVEFSVF9EQVRBIHx8IGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSAmJiBpbnN0YW5jZS5vd25lckRvY3VtZW50LnJlYWR5U3RhdGUgIT09IERPQ1VNRU5UX1JFQURZX1NUQVRFX0xPQURJTkc7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcmVnaXN0ZXJTdXNwZW5zZUluc3RhbmNlUmV0cnkoaW5zdGFuY2UsIGNhbGxiYWNrKSB7CiAgICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBpbnN0YW5jZS5vd25lckRvY3VtZW50OwogICAgICAgIGlmIChpbnN0YW5jZS5kYXRhID09PSBTVVNQRU5TRV9RVUVVRURfU1RBUlRfREFUQSkKICAgICAgICAgIGluc3RhbmNlLl9yZWFjdFJldHJ5ID0gY2FsbGJhY2s7CiAgICAgICAgZWxzZSBpZiAoaW5zdGFuY2UuZGF0YSAhPT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBIHx8IG93bmVyRG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gRE9DVU1FTlRfUkVBRFlfU1RBVEVfTE9BRElORykKICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICB2YXIgbGlzdGVuZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgbGlzdGVuZXIpOwogICAgICAgICAgfTsKICAgICAgICAgIG93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGxpc3RlbmVyKTsKICAgICAgICAgIGluc3RhbmNlLl9yZWFjdFJldHJ5ID0gbGlzdGVuZXI7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldE5leHRIeWRyYXRhYmxlKG5vZGUpIHsKICAgICAgICBmb3IgKDsgbnVsbCAhPSBub2RlOyBub2RlID0gbm9kZS5uZXh0U2libGluZykgewogICAgICAgICAgdmFyIG5vZGVUeXBlID0gbm9kZS5ub2RlVHlwZTsKICAgICAgICAgIGlmICgxID09PSBub2RlVHlwZSB8fCAzID09PSBub2RlVHlwZSkgYnJlYWs7CiAgICAgICAgICBpZiAoOCA9PT0gbm9kZVR5cGUpIHsKICAgICAgICAgICAgbm9kZVR5cGUgPSBub2RlLmRhdGE7CiAgICAgICAgICAgIGlmIChub2RlVHlwZSA9PT0gU1VTUEVOU0VfU1RBUlRfREFUQSB8fCBub2RlVHlwZSA9PT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSB8fCBub2RlVHlwZSA9PT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBIHx8IG5vZGVUeXBlID09PSBTVVNQRU5TRV9RVUVVRURfU1RBUlRfREFUQSB8fCBub2RlVHlwZSA9PT0gQUNUSVZJVFlfU1RBUlRfREFUQSB8fCBub2RlVHlwZSA9PT0gRk9STV9TVEFURV9JU19NQVRDSElORyB8fCBub2RlVHlwZSA9PT0gRk9STV9TVEFURV9JU19OT1RfTUFUQ0hJTkcpCiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGlmIChub2RlVHlwZSA9PT0gU1VTUEVOU0VfRU5EX0RBVEEgfHwgbm9kZVR5cGUgPT09IEFDVElWSVRZX0VORF9EQVRBKQogICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZXNjcmliZUh5ZHJhdGFibGVJbnN0YW5jZUZvckRldldhcm5pbmdzKGluc3RhbmNlKSB7CiAgICAgICAgaWYgKDEgPT09IGluc3RhbmNlLm5vZGVUeXBlKSB7CiAgICAgICAgICBmb3IgKHZhciBKU0NvbXBpbGVyX3RlbXBfY29uc3QgPSBpbnN0YW5jZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLCBzZXJ2ZXJEaWZmZXJlbmNlcyA9IHt9LCBhdHRyaWJ1dGVzID0gaW5zdGFuY2UuYXR0cmlidXRlcywgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBhdHRyID0gYXR0cmlidXRlc1tpXTsKICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNbZ2V0UHJvcE5hbWVGcm9tQXR0cmlidXRlTmFtZShhdHRyLm5hbWUpXSA9ICJzdHlsZSIgPT09IGF0dHIubmFtZS50b0xvd2VyQ2FzZSgpID8gZ2V0U3R5bGVzT2JqZWN0RnJvbUVsZW1lbnQoaW5zdGFuY2UpIDogYXR0ci52YWx1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB7IHR5cGU6IEpTQ29tcGlsZXJfdGVtcF9jb25zdCwgcHJvcHM6IHNlcnZlckRpZmZlcmVuY2VzIH07CiAgICAgICAgfQogICAgICAgIHJldHVybiA4ID09PSBpbnN0YW5jZS5ub2RlVHlwZSA/IGluc3RhbmNlLmRhdGEgPT09IEFDVElWSVRZX1NUQVJUX0RBVEEgPyB7IHR5cGU6ICJBY3Rpdml0eSIsIHByb3BzOiB7fSB9IDogeyB0eXBlOiAiU3VzcGVuc2UiLCBwcm9wczoge30gfSA6IGluc3RhbmNlLm5vZGVWYWx1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkaWZmSHlkcmF0ZWRUZXh0Rm9yRGV2V2FybmluZ3ModGV4dEluc3RhbmNlLCB0ZXh0LCBwYXJlbnRQcm9wcykgewogICAgICAgIHJldHVybiBudWxsID09PSBwYXJlbnRQcm9wcyB8fCB0cnVlICE9PSBwYXJlbnRQcm9wc1tTVVBQUkVTU19IWURSQVRJT05fV0FSTklOR10gPyAodGV4dEluc3RhbmNlLm5vZGVWYWx1ZSA9PT0gdGV4dCA/IHRleHRJbnN0YW5jZSA9IG51bGwgOiAodGV4dCA9IG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZSh0ZXh0KSwgdGV4dEluc3RhbmNlID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKHRleHRJbnN0YW5jZS5ub2RlVmFsdWUpID09PSB0ZXh0ID8gbnVsbCA6IHRleHRJbnN0YW5jZS5ub2RlVmFsdWUpLCB0ZXh0SW5zdGFuY2UpIDogbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXROZXh0SHlkcmF0YWJsZUluc3RhbmNlQWZ0ZXJIeWRyYXRpb25Cb3VuZGFyeShoeWRyYXRpb25JbnN0YW5jZSkgewogICAgICAgIGh5ZHJhdGlvbkluc3RhbmNlID0gaHlkcmF0aW9uSW5zdGFuY2UubmV4dFNpYmxpbmc7CiAgICAgICAgZm9yICh2YXIgZGVwdGggPSAwOyBoeWRyYXRpb25JbnN0YW5jZTsgKSB7CiAgICAgICAgICBpZiAoOCA9PT0gaHlkcmF0aW9uSW5zdGFuY2Uubm9kZVR5cGUpIHsKICAgICAgICAgICAgdmFyIGRhdGEgPSBoeWRyYXRpb25JbnN0YW5jZS5kYXRhOwogICAgICAgICAgICBpZiAoZGF0YSA9PT0gU1VTUEVOU0VfRU5EX0RBVEEgfHwgZGF0YSA9PT0gQUNUSVZJVFlfRU5EX0RBVEEpIHsKICAgICAgICAgICAgICBpZiAoMCA9PT0gZGVwdGgpCiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0TmV4dEh5ZHJhdGFibGUoaHlkcmF0aW9uSW5zdGFuY2UubmV4dFNpYmxpbmcpOwogICAgICAgICAgICAgIGRlcHRoLS07CiAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgIGRhdGEgIT09IFNVU1BFTlNFX1NUQVJUX0RBVEEgJiYgZGF0YSAhPT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSAmJiBkYXRhICE9PSBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEgJiYgZGF0YSAhPT0gU1VTUEVOU0VfUVVFVUVEX1NUQVJUX0RBVEEgJiYgZGF0YSAhPT0gQUNUSVZJVFlfU1RBUlRfREFUQSB8fCBkZXB0aCsrOwogICAgICAgICAgfQogICAgICAgICAgaHlkcmF0aW9uSW5zdGFuY2UgPSBoeWRyYXRpb25JbnN0YW5jZS5uZXh0U2libGluZzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0UGFyZW50SHlkcmF0aW9uQm91bmRhcnkodGFyZ2V0SW5zdGFuY2UpIHsKICAgICAgICB0YXJnZXRJbnN0YW5jZSA9IHRhcmdldEluc3RhbmNlLnByZXZpb3VzU2libGluZzsKICAgICAgICBmb3IgKHZhciBkZXB0aCA9IDA7IHRhcmdldEluc3RhbmNlOyApIHsKICAgICAgICAgIGlmICg4ID09PSB0YXJnZXRJbnN0YW5jZS5ub2RlVHlwZSkgewogICAgICAgICAgICB2YXIgZGF0YSA9IHRhcmdldEluc3RhbmNlLmRhdGE7CiAgICAgICAgICAgIGlmIChkYXRhID09PSBTVVNQRU5TRV9TVEFSVF9EQVRBIHx8IGRhdGEgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEgfHwgZGF0YSA9PT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBIHx8IGRhdGEgPT09IFNVU1BFTlNFX1FVRVVFRF9TVEFSVF9EQVRBIHx8IGRhdGEgPT09IEFDVElWSVRZX1NUQVJUX0RBVEEpIHsKICAgICAgICAgICAgICBpZiAoMCA9PT0gZGVwdGgpIHJldHVybiB0YXJnZXRJbnN0YW5jZTsKICAgICAgICAgICAgICBkZXB0aC0tOwogICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICBkYXRhICE9PSBTVVNQRU5TRV9FTkRfREFUQSAmJiBkYXRhICE9PSBBQ1RJVklUWV9FTkRfREFUQSB8fCBkZXB0aCsrOwogICAgICAgICAgfQogICAgICAgICAgdGFyZ2V0SW5zdGFuY2UgPSB0YXJnZXRJbnN0YW5jZS5wcmV2aW91c1NpYmxpbmc7CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNvbW1pdEh5ZHJhdGVkQ29udGFpbmVyKGNvbnRhaW5lcikgewogICAgICAgIHJldHJ5SWZCbG9ja2VkT24oY29udGFpbmVyKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjb21taXRIeWRyYXRlZEFjdGl2aXR5SW5zdGFuY2UoYWN0aXZpdHlJbnN0YW5jZSkgewogICAgICAgIHJldHJ5SWZCbG9ja2VkT24oYWN0aXZpdHlJbnN0YW5jZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tbWl0SHlkcmF0ZWRTdXNwZW5zZUluc3RhbmNlKHN1c3BlbnNlSW5zdGFuY2UpIHsKICAgICAgICByZXRyeUlmQmxvY2tlZE9uKHN1c3BlbnNlSW5zdGFuY2UpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc29sdmVTaW5nbGV0b25JbnN0YW5jZSh0eXBlLCBwcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCwgdmFsaWRhdGVET01OZXN0aW5nRGV2KSB7CiAgICAgICAgdmFsaWRhdGVET01OZXN0aW5nRGV2ICYmIHZhbGlkYXRlRE9NTmVzdGluZyh0eXBlLCBob3N0Q29udGV4dC5hbmNlc3RvckluZm8pOwogICAgICAgIHByb3BzID0gZ2V0T3duZXJEb2N1bWVudEZyb21Sb290Q29udGFpbmVyKHJvb3RDb250YWluZXJJbnN0YW5jZSk7CiAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgICBjYXNlICJodG1sIjoKICAgICAgICAgICAgdHlwZSA9IHByb3BzLmRvY3VtZW50RWxlbWVudDsKICAgICAgICAgICAgaWYgKCF0eXBlKQogICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgIlJlYWN0IGV4cGVjdGVkIGFuIDxodG1sPiBlbGVtZW50IChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHRvIGV4aXN0IGluIHRoZSBEb2N1bWVudCBidXQgb25lIHdhcyBub3QgZm91bmQuIFJlYWN0IG5ldmVyIHJlbW92ZXMgdGhlIGRvY3VtZW50RWxlbWVudCBmb3IgYW55IERvY3VtZW50IGl0IHJlbmRlcnMgaW50byBzbyB0aGUgY2F1c2UgaXMgbGlrZWx5IGluIHNvbWUgb3RoZXIgc2NyaXB0IHJ1bm5pbmcgb24gdGhpcyBwYWdlLiIKICAgICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gdHlwZTsKICAgICAgICAgIGNhc2UgImhlYWQiOgogICAgICAgICAgICB0eXBlID0gcHJvcHMuaGVhZDsKICAgICAgICAgICAgaWYgKCF0eXBlKQogICAgICAgICAgICAgIHRocm93IEVycm9yKAogICAgICAgICAgICAgICAgIlJlYWN0IGV4cGVjdGVkIGEgPGhlYWQ+IGVsZW1lbnQgKGRvY3VtZW50LmhlYWQpIHRvIGV4aXN0IGluIHRoZSBEb2N1bWVudCBidXQgb25lIHdhcyBub3QgZm91bmQuIFJlYWN0IG5ldmVyIHJlbW92ZXMgdGhlIGhlYWQgZm9yIGFueSBEb2N1bWVudCBpdCByZW5kZXJzIGludG8gc28gdGhlIGNhdXNlIGlzIGxpa2VseSBpbiBzb21lIG90aGVyIHNjcmlwdCBydW5uaW5nIG9uIHRoaXMgcGFnZS4iCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgICAgICBjYXNlICJib2R5IjoKICAgICAgICAgICAgdHlwZSA9IHByb3BzLmJvZHk7CiAgICAgICAgICAgIGlmICghdHlwZSkKICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICJSZWFjdCBleHBlY3RlZCBhIDxib2R5PiBlbGVtZW50IChkb2N1bWVudC5ib2R5KSB0byBleGlzdCBpbiB0aGUgRG9jdW1lbnQgYnV0IG9uZSB3YXMgbm90IGZvdW5kLiBSZWFjdCBuZXZlciByZW1vdmVzIHRoZSBib2R5IGZvciBhbnkgRG9jdW1lbnQgaXQgcmVuZGVycyBpbnRvIHNvIHRoZSBjYXVzZSBpcyBsaWtlbHkgaW4gc29tZSBvdGhlciBzY3JpcHQgcnVubmluZyBvbiB0aGlzIHBhZ2UuIgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiB0eXBlOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgInJlc29sdmVTaW5nbGV0b25JbnN0YW5jZSB3YXMgY2FsbGVkIHdpdGggYW4gZWxlbWVudCB0eXBlIHRoYXQgaXMgbm90IHN1cHBvcnRlZC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4iCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFjcXVpcmVTaW5nbGV0b25JbnN0YW5jZSh0eXBlLCBwcm9wcywgaW5zdGFuY2UsIGludGVybmFsSW5zdGFuY2VIYW5kbGUpIHsKICAgICAgICBpZiAoIWluc3RhbmNlW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldICYmIGdldEluc3RhbmNlRnJvbU5vZGUoaW5zdGFuY2UpKSB7CiAgICAgICAgICB2YXIgdGFnTmFtZSA9IGluc3RhbmNlLnRhZ05hbWUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJZb3UgYXJlIG1vdW50aW5nIGEgbmV3ICVzIGNvbXBvbmVudCB3aGVuIGEgcHJldmlvdXMgb25lIGhhcyBub3QgZmlyc3QgdW5tb3VudGVkLiBJdCBpcyBhbiBlcnJvciB0byByZW5kZXIgbW9yZSB0aGFuIG9uZSAlcyBjb21wb25lbnQgYXQgYSB0aW1lIGFuZCBhdHRyaWJ1dGVzIGFuZCBjaGlsZHJlbiBvZiB0aGVzZSBjb21wb25lbnRzIHdpbGwgbGlrZWx5IGZhaWwgaW4gdW5wcmVkaWN0YWJsZSB3YXlzLiBQbGVhc2Ugb25seSByZW5kZXIgYSBzaW5nbGUgaW5zdGFuY2Ugb2YgPCVzPiBhbmQgaWYgeW91IG5lZWQgdG8gbW91bnQgYSBuZXcgb25lLCBlbnN1cmUgYW55IHByZXZpb3VzIG9uZXMgaGF2ZSB1bm1vdW50ZWQgZmlyc3QuIiwKICAgICAgICAgICAgdGFnTmFtZSwKICAgICAgICAgICAgdGFnTmFtZSwKICAgICAgICAgICAgdGFnTmFtZQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgICBjYXNlICJodG1sIjoKICAgICAgICAgIGNhc2UgImhlYWQiOgogICAgICAgICAgY2FzZSAiYm9keSI6CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiYWNxdWlyZVNpbmdsZXRvbkluc3RhbmNlIHdhcyBjYWxsZWQgd2l0aCBhbiBlbGVtZW50IHR5cGUgdGhhdCBpcyBub3Qgc3VwcG9ydGVkLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiIKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZm9yICh0YWdOYW1lID0gaW5zdGFuY2UuYXR0cmlidXRlczsgdGFnTmFtZS5sZW5ndGg7ICkKICAgICAgICAgIGluc3RhbmNlLnJlbW92ZUF0dHJpYnV0ZU5vZGUodGFnTmFtZVswXSk7CiAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoaW5zdGFuY2UsIHR5cGUsIHByb3BzKTsKICAgICAgICBpbnN0YW5jZVtpbnRlcm5hbEluc3RhbmNlS2V5XSA9IGludGVybmFsSW5zdGFuY2VIYW5kbGU7CiAgICAgICAgaW5zdGFuY2VbaW50ZXJuYWxQcm9wc0tleV0gPSBwcm9wczsKICAgICAgfQogICAgICBmdW5jdGlvbiByZWxlYXNlU2luZ2xldG9uSW5zdGFuY2UoaW5zdGFuY2UpIHsKICAgICAgICBmb3IgKHZhciBhdHRyaWJ1dGVzID0gaW5zdGFuY2UuYXR0cmlidXRlczsgYXR0cmlidXRlcy5sZW5ndGg7ICkKICAgICAgICAgIGluc3RhbmNlLnJlbW92ZUF0dHJpYnV0ZU5vZGUoYXR0cmlidXRlc1swXSk7CiAgICAgICAgZGV0YWNoRGVsZXRlZEluc3RhbmNlKGluc3RhbmNlKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRIb2lzdGFibGVSb290KGNvbnRhaW5lcikgewogICAgICAgIHJldHVybiAiZnVuY3Rpb24iID09PSB0eXBlb2YgY29udGFpbmVyLmdldFJvb3ROb2RlID8gY29udGFpbmVyLmdldFJvb3ROb2RlKCkgOiA5ID09PSBjb250YWluZXIubm9kZVR5cGUgPyBjb250YWluZXIgOiBjb250YWluZXIub3duZXJEb2N1bWVudDsKICAgICAgfQogICAgICBmdW5jdGlvbiBwcmVjb25uZWN0QXMocmVsLCBocmVmLCBjcm9zc09yaWdpbikgewogICAgICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2xvYmFsRG9jdW1lbnQ7CiAgICAgICAgaWYgKG93bmVyRG9jdW1lbnQgJiYgInN0cmluZyIgPT09IHR5cGVvZiBocmVmICYmIGhyZWYpIHsKICAgICAgICAgIHZhciBsaW1pdGVkRXNjYXBlZEhyZWYgPSBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzKGhyZWYpOwogICAgICAgICAgbGltaXRlZEVzY2FwZWRIcmVmID0gJ2xpbmtbcmVsPSInICsgcmVsICsgJyJdW2hyZWY9IicgKyBsaW1pdGVkRXNjYXBlZEhyZWYgKyAnIl0nOwogICAgICAgICAgInN0cmluZyIgPT09IHR5cGVvZiBjcm9zc09yaWdpbiAmJiAobGltaXRlZEVzY2FwZWRIcmVmICs9ICdbY3Jvc3NvcmlnaW49IicgKyBjcm9zc09yaWdpbiArICciXScpOwogICAgICAgICAgcHJlY29ubmVjdHNTZXQuaGFzKGxpbWl0ZWRFc2NhcGVkSHJlZikgfHwgKHByZWNvbm5lY3RzU2V0LmFkZChsaW1pdGVkRXNjYXBlZEhyZWYpLCByZWwgPSB7IHJlbCwgY3Jvc3NPcmlnaW4sIGhyZWYgfSwgbnVsbCA9PT0gb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKGxpbWl0ZWRFc2NhcGVkSHJlZikgJiYgKGhyZWYgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKSwgc2V0SW5pdGlhbFByb3BlcnRpZXMoaHJlZiwgImxpbmsiLCByZWwpLCBtYXJrTm9kZUFzSG9pc3RhYmxlKGhyZWYpLCBvd25lckRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoaHJlZikpKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0UmVzb3VyY2UodHlwZSwgY3VycmVudFByb3BzLCBwZW5kaW5nUHJvcHMsIGN1cnJlbnRSZXNvdXJjZSkgewogICAgICAgIHZhciByZXNvdXJjZVJvb3QgPSAocmVzb3VyY2VSb290ID0gcm9vdEluc3RhbmNlU3RhY2tDdXJzb3IuY3VycmVudCkgPyBnZXRIb2lzdGFibGVSb290KHJlc291cmNlUm9vdCkgOiBudWxsOwogICAgICAgIGlmICghcmVzb3VyY2VSb290KQogICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICcicmVzb3VyY2VSb290IiB3YXMgZXhwZWN0ZWQgdG8gZXhpc3QuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJwogICAgICAgICAgKTsKICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgIGNhc2UgIm1ldGEiOgogICAgICAgICAgY2FzZSAidGl0bGUiOgogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIGNhc2UgInN0eWxlIjoKICAgICAgICAgICAgcmV0dXJuICJzdHJpbmciID09PSB0eXBlb2YgcGVuZGluZ1Byb3BzLnByZWNlZGVuY2UgJiYgInN0cmluZyIgPT09IHR5cGVvZiBwZW5kaW5nUHJvcHMuaHJlZiA/IChwZW5kaW5nUHJvcHMgPSBnZXRTdHlsZUtleShwZW5kaW5nUHJvcHMuaHJlZiksIGN1cnJlbnRQcm9wcyA9IGdldFJlc291cmNlc0Zyb21Sb290KHJlc291cmNlUm9vdCkuaG9pc3RhYmxlU3R5bGVzLCBjdXJyZW50UmVzb3VyY2UgPSBjdXJyZW50UHJvcHMuZ2V0KHBlbmRpbmdQcm9wcyksIGN1cnJlbnRSZXNvdXJjZSB8fCAoY3VycmVudFJlc291cmNlID0gewogICAgICAgICAgICAgIHR5cGU6ICJzdHlsZSIsCiAgICAgICAgICAgICAgaW5zdGFuY2U6IG51bGwsCiAgICAgICAgICAgICAgY291bnQ6IDAsCiAgICAgICAgICAgICAgc3RhdGU6IG51bGwKICAgICAgICAgICAgfSwgY3VycmVudFByb3BzLnNldChwZW5kaW5nUHJvcHMsIGN1cnJlbnRSZXNvdXJjZSkpLCBjdXJyZW50UmVzb3VyY2UpIDogeyB0eXBlOiAidm9pZCIsIGluc3RhbmNlOiBudWxsLCBjb3VudDogMCwgc3RhdGU6IG51bGwgfTsKICAgICAgICAgIGNhc2UgImxpbmsiOgogICAgICAgICAgICBpZiAoInN0eWxlc2hlZXQiID09PSBwZW5kaW5nUHJvcHMucmVsICYmICJzdHJpbmciID09PSB0eXBlb2YgcGVuZGluZ1Byb3BzLmhyZWYgJiYgInN0cmluZyIgPT09IHR5cGVvZiBwZW5kaW5nUHJvcHMucHJlY2VkZW5jZSkgewogICAgICAgICAgICAgIHR5cGUgPSBnZXRTdHlsZUtleShwZW5kaW5nUHJvcHMuaHJlZik7CiAgICAgICAgICAgICAgdmFyIF9zdHlsZXMgPSBnZXRSZXNvdXJjZXNGcm9tUm9vdChyZXNvdXJjZVJvb3QpLmhvaXN0YWJsZVN0eWxlcywgX3Jlc291cmNlID0gX3N0eWxlcy5nZXQodHlwZSk7CiAgICAgICAgICAgICAgaWYgKCFfcmVzb3VyY2UgJiYgKHJlc291cmNlUm9vdCA9IHJlc291cmNlUm9vdC5vd25lckRvY3VtZW50IHx8IHJlc291cmNlUm9vdCwgX3Jlc291cmNlID0gewogICAgICAgICAgICAgICAgdHlwZTogInN0eWxlc2hlZXQiLAogICAgICAgICAgICAgICAgaW5zdGFuY2U6IG51bGwsCiAgICAgICAgICAgICAgICBjb3VudDogMCwKICAgICAgICAgICAgICAgIHN0YXRlOiB7IGxvYWRpbmc6IE5vdExvYWRlZCwgcHJlbG9hZDogbnVsbCB9CiAgICAgICAgICAgICAgfSwgX3N0eWxlcy5zZXQodHlwZSwgX3Jlc291cmNlKSwgKF9zdHlsZXMgPSByZXNvdXJjZVJvb3QucXVlcnlTZWxlY3RvcigKICAgICAgICAgICAgICAgIGdldFN0eWxlc2hlZXRTZWxlY3RvckZyb21LZXkodHlwZSkKICAgICAgICAgICAgICApKSAmJiAhX3N0eWxlcy5fcCAmJiAoX3Jlc291cmNlLmluc3RhbmNlID0gX3N0eWxlcywgX3Jlc291cmNlLnN0YXRlLmxvYWRpbmcgPSBMb2FkZWQgfCBJbnNlcnRlZCksICFwcmVsb2FkUHJvcHNNYXAuaGFzKHR5cGUpKSkgewogICAgICAgICAgICAgICAgdmFyIHByZWxvYWRQcm9wcyA9IHsKICAgICAgICAgICAgICAgICAgcmVsOiAicHJlbG9hZCIsCiAgICAgICAgICAgICAgICAgIGFzOiAic3R5bGUiLAogICAgICAgICAgICAgICAgICBocmVmOiBwZW5kaW5nUHJvcHMuaHJlZiwKICAgICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IHBlbmRpbmdQcm9wcy5jcm9zc09yaWdpbiwKICAgICAgICAgICAgICAgICAgaW50ZWdyaXR5OiBwZW5kaW5nUHJvcHMuaW50ZWdyaXR5LAogICAgICAgICAgICAgICAgICBtZWRpYTogcGVuZGluZ1Byb3BzLm1lZGlhLAogICAgICAgICAgICAgICAgICBocmVmTGFuZzogcGVuZGluZ1Byb3BzLmhyZWZMYW5nLAogICAgICAgICAgICAgICAgICByZWZlcnJlclBvbGljeTogcGVuZGluZ1Byb3BzLnJlZmVycmVyUG9saWN5CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgcHJlbG9hZFByb3BzTWFwLnNldCh0eXBlLCBwcmVsb2FkUHJvcHMpOwogICAgICAgICAgICAgICAgX3N0eWxlcyB8fCBwcmVsb2FkU3R5bGVzaGVldCgKICAgICAgICAgICAgICAgICAgcmVzb3VyY2VSb290LAogICAgICAgICAgICAgICAgICB0eXBlLAogICAgICAgICAgICAgICAgICBwcmVsb2FkUHJvcHMsCiAgICAgICAgICAgICAgICAgIF9yZXNvdXJjZS5zdGF0ZQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGN1cnJlbnRQcm9wcyAmJiBudWxsID09PSBjdXJyZW50UmVzb3VyY2UpCiAgICAgICAgICAgICAgICB0aHJvdyBwZW5kaW5nUHJvcHMgPSAiXG5cbiAgLSAiICsgZGVzY3JpYmVMaW5rRm9yUmVzb3VyY2VFcnJvckRFVihjdXJyZW50UHJvcHMpICsgIlxuICArICIgKyBkZXNjcmliZUxpbmtGb3JSZXNvdXJjZUVycm9yREVWKHBlbmRpbmdQcm9wcyksIEVycm9yKAogICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQgPGxpbms+IG5vdCB0byB1cGRhdGUgdG8gYmUgdXBkYXRlZCB0byBhIHN0eWxlc2hlZXQgd2l0aCBwcmVjZWRlbmNlLiBDaGVjayB0aGUgYHJlbGAsIGBocmVmYCwgYW5kIGBwcmVjZWRlbmNlYCBwcm9wcyBvZiB0aGlzIGNvbXBvbmVudC4gQWx0ZXJuYXRpdmVseSwgY2hlY2sgd2hldGhlciB0d28gZGlmZmVyZW50IDxsaW5rPiBjb21wb25lbnRzIHJlbmRlciBpbiB0aGUgc2FtZSBzbG90IG9yIHNoYXJlIHRoZSBzYW1lIGtleS4iICsgcGVuZGluZ1Byb3BzCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHJldHVybiBfcmVzb3VyY2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGN1cnJlbnRQcm9wcyAmJiBudWxsICE9PSBjdXJyZW50UmVzb3VyY2UpCiAgICAgICAgICAgICAgdGhyb3cgcGVuZGluZ1Byb3BzID0gIlxuXG4gIC0gIiArIGRlc2NyaWJlTGlua0ZvclJlc291cmNlRXJyb3JERVYoY3VycmVudFByb3BzKSArICJcbiAgKyAiICsgZGVzY3JpYmVMaW5rRm9yUmVzb3VyY2VFcnJvckRFVihwZW5kaW5nUHJvcHMpLCBFcnJvcigKICAgICAgICAgICAgICAgICJFeHBlY3RlZCBzdHlsZXNoZWV0IHdpdGggcHJlY2VkZW5jZSB0byBub3QgYmUgdXBkYXRlZCB0byBhIGRpZmZlcmVudCBraW5kIG9mIDxsaW5rPi4gQ2hlY2sgdGhlIGByZWxgLCBgaHJlZmAsIGFuZCBgcHJlY2VkZW5jZWAgcHJvcHMgb2YgdGhpcyBjb21wb25lbnQuIEFsdGVybmF0aXZlbHksIGNoZWNrIHdoZXRoZXIgdHdvIGRpZmZlcmVudCA8bGluaz4gY29tcG9uZW50cyByZW5kZXIgaW4gdGhlIHNhbWUgc2xvdCBvciBzaGFyZSB0aGUgc2FtZSBrZXkuIiArIHBlbmRpbmdQcm9wcwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgY2FzZSAic2NyaXB0IjoKICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRQcm9wcyA9IHBlbmRpbmdQcm9wcy5hc3luYywgcGVuZGluZ1Byb3BzID0gcGVuZGluZ1Byb3BzLnNyYywgInN0cmluZyIgPT09IHR5cGVvZiBwZW5kaW5nUHJvcHMgJiYgY3VycmVudFByb3BzICYmICJmdW5jdGlvbiIgIT09IHR5cGVvZiBjdXJyZW50UHJvcHMgJiYgInN5bWJvbCIgIT09IHR5cGVvZiBjdXJyZW50UHJvcHMgPyAocGVuZGluZ1Byb3BzID0gZ2V0U2NyaXB0S2V5KHBlbmRpbmdQcm9wcyksIGN1cnJlbnRQcm9wcyA9IGdldFJlc291cmNlc0Zyb21Sb290KHJlc291cmNlUm9vdCkuaG9pc3RhYmxlU2NyaXB0cywgY3VycmVudFJlc291cmNlID0gY3VycmVudFByb3BzLmdldChwZW5kaW5nUHJvcHMpLCBjdXJyZW50UmVzb3VyY2UgfHwgKGN1cnJlbnRSZXNvdXJjZSA9IHsKICAgICAgICAgICAgICB0eXBlOiAic2NyaXB0IiwKICAgICAgICAgICAgICBpbnN0YW5jZTogbnVsbCwKICAgICAgICAgICAgICBjb3VudDogMCwKICAgICAgICAgICAgICBzdGF0ZTogbnVsbAogICAgICAgICAgICB9LCBjdXJyZW50UHJvcHMuc2V0KHBlbmRpbmdQcm9wcywgY3VycmVudFJlc291cmNlKSksIGN1cnJlbnRSZXNvdXJjZSkgOiB7IHR5cGU6ICJ2b2lkIiwgaW5zdGFuY2U6IG51bGwsIGNvdW50OiAwLCBzdGF0ZTogbnVsbCB9OwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgJ2dldFJlc291cmNlIGVuY291bnRlcmVkIGEgdHlwZSBpdCBkaWQgbm90IGV4cGVjdDogIicgKyB0eXBlICsgJyIuIHRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJwogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBkZXNjcmliZUxpbmtGb3JSZXNvdXJjZUVycm9yREVWKHByb3BzKSB7CiAgICAgICAgdmFyIGRlc2NyaWJlZFByb3BzID0gMCwgZGVzY3JpcHRpb24gPSAiPGxpbmsiOwogICAgICAgICJzdHJpbmciID09PSB0eXBlb2YgcHJvcHMucmVsID8gKGRlc2NyaWJlZFByb3BzKyssIGRlc2NyaXB0aW9uICs9ICcgcmVsPSInICsgcHJvcHMucmVsICsgJyInKSA6IGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsICJyZWwiKSAmJiAoZGVzY3JpYmVkUHJvcHMrKywgZGVzY3JpcHRpb24gKz0gJyByZWw9IicgKyAobnVsbCA9PT0gcHJvcHMucmVsID8gIm51bGwiIDogImludmFsaWQgdHlwZSAiICsgdHlwZW9mIHByb3BzLnJlbCkgKyAnIicpOwogICAgICAgICJzdHJpbmciID09PSB0eXBlb2YgcHJvcHMuaHJlZiA/IChkZXNjcmliZWRQcm9wcysrLCBkZXNjcmlwdGlvbiArPSAnIGhyZWY9IicgKyBwcm9wcy5ocmVmICsgJyInKSA6IGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsICJocmVmIikgJiYgKGRlc2NyaWJlZFByb3BzKyssIGRlc2NyaXB0aW9uICs9ICcgaHJlZj0iJyArIChudWxsID09PSBwcm9wcy5ocmVmID8gIm51bGwiIDogImludmFsaWQgdHlwZSAiICsgdHlwZW9mIHByb3BzLmhyZWYpICsgJyInKTsKICAgICAgICAic3RyaW5nIiA9PT0gdHlwZW9mIHByb3BzLnByZWNlZGVuY2UgPyAoZGVzY3JpYmVkUHJvcHMrKywgZGVzY3JpcHRpb24gKz0gJyBwcmVjZWRlbmNlPSInICsgcHJvcHMucHJlY2VkZW5jZSArICciJykgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCAicHJlY2VkZW5jZSIpICYmIChkZXNjcmliZWRQcm9wcysrLCBkZXNjcmlwdGlvbiArPSAiIHByZWNlZGVuY2U9eyIgKyAobnVsbCA9PT0gcHJvcHMucHJlY2VkZW5jZSA/ICJudWxsIiA6ICJpbnZhbGlkIHR5cGUgIiArIHR5cGVvZiBwcm9wcy5wcmVjZWRlbmNlKSArICJ9Iik7CiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocHJvcHMpLmxlbmd0aCA+IGRlc2NyaWJlZFByb3BzICYmIChkZXNjcmlwdGlvbiArPSAiIC4uLiIpOwogICAgICAgIHJldHVybiBkZXNjcmlwdGlvbiArICIgLz4iOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldFN0eWxlS2V5KGhyZWYpIHsKICAgICAgICByZXR1cm4gJ2hyZWY9IicgKyBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzKGhyZWYpICsgJyInOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldFN0eWxlc2hlZXRTZWxlY3RvckZyb21LZXkoa2V5KSB7CiAgICAgICAgcmV0dXJuICdsaW5rW3JlbD0ic3R5bGVzaGVldCJdWycgKyBrZXkgKyAiXSI7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc3R5bGVzaGVldFByb3BzRnJvbVJhd1Byb3BzKHJhd1Byb3BzKSB7CiAgICAgICAgcmV0dXJuIGFzc2lnbih7fSwgcmF3UHJvcHMsIHsKICAgICAgICAgICJkYXRhLXByZWNlZGVuY2UiOiByYXdQcm9wcy5wcmVjZWRlbmNlLAogICAgICAgICAgcHJlY2VkZW5jZTogbnVsbAogICAgICAgIH0pOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHByZWxvYWRTdHlsZXNoZWV0KG93bmVyRG9jdW1lbnQsIGtleSwgcHJlbG9hZFByb3BzLCBzdGF0ZSkgewogICAgICAgIG93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvcigKICAgICAgICAgICdsaW5rW3JlbD0icHJlbG9hZCJdW2FzPSJzdHlsZSJdWycgKyBrZXkgKyAiXSIKICAgICAgICApID8gc3RhdGUubG9hZGluZyA9IExvYWRlZCA6IChrZXkgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKSwgc3RhdGUucHJlbG9hZCA9IGtleSwga2V5LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzdGF0ZS5sb2FkaW5nIHw9IExvYWRlZDsKICAgICAgICB9KSwga2V5LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gc3RhdGUubG9hZGluZyB8PSBFcnJvcmVkOwogICAgICAgIH0pLCBzZXRJbml0aWFsUHJvcGVydGllcyhrZXksICJsaW5rIiwgcHJlbG9hZFByb3BzKSwgbWFya05vZGVBc0hvaXN0YWJsZShrZXkpLCBvd25lckRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoa2V5KSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0U2NyaXB0S2V5KHNyYykgewogICAgICAgIHJldHVybiAnW3NyYz0iJyArIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoc3JjKSArICciXSc7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2V0U2NyaXB0U2VsZWN0b3JGcm9tS2V5KGtleSkgewogICAgICAgIHJldHVybiAic2NyaXB0W2FzeW5jXSIgKyBrZXk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYWNxdWlyZVJlc291cmNlKGhvaXN0YWJsZVJvb3QsIHJlc291cmNlLCBwcm9wcykgewogICAgICAgIHJlc291cmNlLmNvdW50Kys7CiAgICAgICAgaWYgKG51bGwgPT09IHJlc291cmNlLmluc3RhbmNlKQogICAgICAgICAgc3dpdGNoIChyZXNvdXJjZS50eXBlKSB7CiAgICAgICAgICAgIGNhc2UgInN0eWxlIjoKICAgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBob2lzdGFibGVSb290LnF1ZXJ5U2VsZWN0b3IoCiAgICAgICAgICAgICAgICAnc3R5bGVbZGF0YS1ocmVmfj0iJyArIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMocHJvcHMuaHJlZikgKyAnIl0nCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UpCiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2UuaW5zdGFuY2UgPSBpbnN0YW5jZSwgbWFya05vZGVBc0hvaXN0YWJsZShpbnN0YW5jZSksIGluc3RhbmNlOwogICAgICAgICAgICAgIHZhciBzdHlsZVByb3BzID0gYXNzaWduKHt9LCBwcm9wcywgewogICAgICAgICAgICAgICAgImRhdGEtaHJlZiI6IHByb3BzLmhyZWYsCiAgICAgICAgICAgICAgICAiZGF0YS1wcmVjZWRlbmNlIjogcHJvcHMucHJlY2VkZW5jZSwKICAgICAgICAgICAgICAgIGhyZWY6IG51bGwsCiAgICAgICAgICAgICAgICBwcmVjZWRlbmNlOiBudWxsCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgaW5zdGFuY2UgPSAoaG9pc3RhYmxlUm9vdC5vd25lckRvY3VtZW50IHx8IGhvaXN0YWJsZVJvb3QpLmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CiAgICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShpbnN0YW5jZSk7CiAgICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoaW5zdGFuY2UsICJzdHlsZSIsIHN0eWxlUHJvcHMpOwogICAgICAgICAgICAgIGluc2VydFN0eWxlc2hlZXQoaW5zdGFuY2UsIHByb3BzLnByZWNlZGVuY2UsIGhvaXN0YWJsZVJvb3QpOwogICAgICAgICAgICAgIHJldHVybiByZXNvdXJjZS5pbnN0YW5jZSA9IGluc3RhbmNlOwogICAgICAgICAgICBjYXNlICJzdHlsZXNoZWV0IjoKICAgICAgICAgICAgICBzdHlsZVByb3BzID0gZ2V0U3R5bGVLZXkocHJvcHMuaHJlZik7CiAgICAgICAgICAgICAgdmFyIF9pbnN0YW5jZSA9IGhvaXN0YWJsZVJvb3QucXVlcnlTZWxlY3RvcigKICAgICAgICAgICAgICAgIGdldFN0eWxlc2hlZXRTZWxlY3RvckZyb21LZXkoc3R5bGVQcm9wcykKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGlmIChfaW5zdGFuY2UpCiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2Uuc3RhdGUubG9hZGluZyB8PSBJbnNlcnRlZCwgcmVzb3VyY2UuaW5zdGFuY2UgPSBfaW5zdGFuY2UsIG1hcmtOb2RlQXNIb2lzdGFibGUoX2luc3RhbmNlKSwgX2luc3RhbmNlOwogICAgICAgICAgICAgIGluc3RhbmNlID0gc3R5bGVzaGVldFByb3BzRnJvbVJhd1Byb3BzKHByb3BzKTsKICAgICAgICAgICAgICAoc3R5bGVQcm9wcyA9IHByZWxvYWRQcm9wc01hcC5nZXQoc3R5bGVQcm9wcykpICYmIGFkb3B0UHJlbG9hZFByb3BzRm9yU3R5bGVzaGVldChpbnN0YW5jZSwgc3R5bGVQcm9wcyk7CiAgICAgICAgICAgICAgX2luc3RhbmNlID0gKGhvaXN0YWJsZVJvb3Qub3duZXJEb2N1bWVudCB8fCBob2lzdGFibGVSb290KS5jcmVhdGVFbGVtZW50KCJsaW5rIik7CiAgICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShfaW5zdGFuY2UpOwogICAgICAgICAgICAgIHZhciBsaW5rSW5zdGFuY2UgPSBfaW5zdGFuY2U7CiAgICAgICAgICAgICAgbGlua0luc3RhbmNlLl9wID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICAgICBsaW5rSW5zdGFuY2Uub25sb2FkID0gcmVzb2x2ZTsKICAgICAgICAgICAgICAgIGxpbmtJbnN0YW5jZS5vbmVycm9yID0gcmVqZWN0OwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKF9pbnN0YW5jZSwgImxpbmsiLCBpbnN0YW5jZSk7CiAgICAgICAgICAgICAgcmVzb3VyY2Uuc3RhdGUubG9hZGluZyB8PSBJbnNlcnRlZDsKICAgICAgICAgICAgICBpbnNlcnRTdHlsZXNoZWV0KF9pbnN0YW5jZSwgcHJvcHMucHJlY2VkZW5jZSwgaG9pc3RhYmxlUm9vdCk7CiAgICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlLmluc3RhbmNlID0gX2luc3RhbmNlOwogICAgICAgICAgICBjYXNlICJzY3JpcHQiOgogICAgICAgICAgICAgIF9pbnN0YW5jZSA9IGdldFNjcmlwdEtleShwcm9wcy5zcmMpOwogICAgICAgICAgICAgIGlmIChzdHlsZVByb3BzID0gaG9pc3RhYmxlUm9vdC5xdWVyeVNlbGVjdG9yKAogICAgICAgICAgICAgICAgZ2V0U2NyaXB0U2VsZWN0b3JGcm9tS2V5KF9pbnN0YW5jZSkKICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlLmluc3RhbmNlID0gc3R5bGVQcm9wcywgbWFya05vZGVBc0hvaXN0YWJsZShzdHlsZVByb3BzKSwgc3R5bGVQcm9wczsKICAgICAgICAgICAgICBpbnN0YW5jZSA9IHByb3BzOwogICAgICAgICAgICAgIGlmIChzdHlsZVByb3BzID0gcHJlbG9hZFByb3BzTWFwLmdldChfaW5zdGFuY2UpKQogICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBhc3NpZ24oe30sIHByb3BzKSwgYWRvcHRQcmVsb2FkUHJvcHNGb3JTY3JpcHQoaW5zdGFuY2UsIHN0eWxlUHJvcHMpOwogICAgICAgICAgICAgIGhvaXN0YWJsZVJvb3QgPSBob2lzdGFibGVSb290Lm93bmVyRG9jdW1lbnQgfHwgaG9pc3RhYmxlUm9vdDsKICAgICAgICAgICAgICBzdHlsZVByb3BzID0gaG9pc3RhYmxlUm9vdC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgICAgICAgICBtYXJrTm9kZUFzSG9pc3RhYmxlKHN0eWxlUHJvcHMpOwogICAgICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKHN0eWxlUHJvcHMsICJsaW5rIiwgaW5zdGFuY2UpOwogICAgICAgICAgICAgIGhvaXN0YWJsZVJvb3QuaGVhZC5hcHBlbmRDaGlsZChzdHlsZVByb3BzKTsKICAgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2UuaW5zdGFuY2UgPSBzdHlsZVByb3BzOwogICAgICAgICAgICBjYXNlICJ2b2lkIjoKICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICB0aHJvdyBFcnJvcigKICAgICAgICAgICAgICAgICdhY3F1aXJlUmVzb3VyY2UgZW5jb3VudGVyZWQgYSByZXNvdXJjZSB0eXBlIGl0IGRpZCBub3QgZXhwZWN0OiAiJyArIHJlc291cmNlLnR5cGUgKyAnIi4gdGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nCiAgICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgICAic3R5bGVzaGVldCIgPT09IHJlc291cmNlLnR5cGUgJiYgKHJlc291cmNlLnN0YXRlLmxvYWRpbmcgJiBJbnNlcnRlZCkgPT09IE5vdExvYWRlZCAmJiAoaW5zdGFuY2UgPSByZXNvdXJjZS5pbnN0YW5jZSwgcmVzb3VyY2Uuc3RhdGUubG9hZGluZyB8PSBJbnNlcnRlZCwgaW5zZXJ0U3R5bGVzaGVldChpbnN0YW5jZSwgcHJvcHMucHJlY2VkZW5jZSwgaG9pc3RhYmxlUm9vdCkpOwogICAgICAgIHJldHVybiByZXNvdXJjZS5pbnN0YW5jZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpbnNlcnRTdHlsZXNoZWV0KGluc3RhbmNlLCBwcmVjZWRlbmNlLCByb290MikgewogICAgICAgIGZvciAodmFyIG5vZGVzID0gcm9vdDIucXVlcnlTZWxlY3RvckFsbCgKICAgICAgICAgICdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW2RhdGEtcHJlY2VkZW5jZV0sc3R5bGVbZGF0YS1wcmVjZWRlbmNlXScKICAgICAgICApLCBsYXN0ID0gbm9kZXMubGVuZ3RoID8gbm9kZXNbbm9kZXMubGVuZ3RoIC0gMV0gOiBudWxsLCBwcmlvciA9IGxhc3QsIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHZhciBub2RlID0gbm9kZXNbaV07CiAgICAgICAgICBpZiAobm9kZS5kYXRhc2V0LnByZWNlZGVuY2UgPT09IHByZWNlZGVuY2UpIHByaW9yID0gbm9kZTsKICAgICAgICAgIGVsc2UgaWYgKHByaW9yICE9PSBsYXN0KSBicmVhazsKICAgICAgICB9CiAgICAgICAgcHJpb3IgPyBwcmlvci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpbnN0YW5jZSwgcHJpb3IubmV4dFNpYmxpbmcpIDogKHByZWNlZGVuY2UgPSA5ID09PSByb290Mi5ub2RlVHlwZSA/IHJvb3QyLmhlYWQgOiByb290MiwgcHJlY2VkZW5jZS5pbnNlcnRCZWZvcmUoaW5zdGFuY2UsIHByZWNlZGVuY2UuZmlyc3RDaGlsZCkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFkb3B0UHJlbG9hZFByb3BzRm9yU3R5bGVzaGVldChzdHlsZXNoZWV0UHJvcHMsIHByZWxvYWRQcm9wcykgewogICAgICAgIG51bGwgPT0gc3R5bGVzaGVldFByb3BzLmNyb3NzT3JpZ2luICYmIChzdHlsZXNoZWV0UHJvcHMuY3Jvc3NPcmlnaW4gPSBwcmVsb2FkUHJvcHMuY3Jvc3NPcmlnaW4pOwogICAgICAgIG51bGwgPT0gc3R5bGVzaGVldFByb3BzLnJlZmVycmVyUG9saWN5ICYmIChzdHlsZXNoZWV0UHJvcHMucmVmZXJyZXJQb2xpY3kgPSBwcmVsb2FkUHJvcHMucmVmZXJyZXJQb2xpY3kpOwogICAgICAgIG51bGwgPT0gc3R5bGVzaGVldFByb3BzLnRpdGxlICYmIChzdHlsZXNoZWV0UHJvcHMudGl0bGUgPSBwcmVsb2FkUHJvcHMudGl0bGUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFkb3B0UHJlbG9hZFByb3BzRm9yU2NyaXB0KHNjcmlwdFByb3BzLCBwcmVsb2FkUHJvcHMpIHsKICAgICAgICBudWxsID09IHNjcmlwdFByb3BzLmNyb3NzT3JpZ2luICYmIChzY3JpcHRQcm9wcy5jcm9zc09yaWdpbiA9IHByZWxvYWRQcm9wcy5jcm9zc09yaWdpbik7CiAgICAgICAgbnVsbCA9PSBzY3JpcHRQcm9wcy5yZWZlcnJlclBvbGljeSAmJiAoc2NyaXB0UHJvcHMucmVmZXJyZXJQb2xpY3kgPSBwcmVsb2FkUHJvcHMucmVmZXJyZXJQb2xpY3kpOwogICAgICAgIG51bGwgPT0gc2NyaXB0UHJvcHMuaW50ZWdyaXR5ICYmIChzY3JpcHRQcm9wcy5pbnRlZ3JpdHkgPSBwcmVsb2FkUHJvcHMuaW50ZWdyaXR5KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRIeWRyYXRhYmxlSG9pc3RhYmxlQ2FjaGUodHlwZSwga2V5QXR0cmlidXRlLCBvd25lckRvY3VtZW50KSB7CiAgICAgICAgaWYgKG51bGwgPT09IHRhZ0NhY2hlcykgewogICAgICAgICAgdmFyIGNhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgICAgIHZhciBjYWNoZXMgPSB0YWdDYWNoZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgICAgY2FjaGVzLnNldChvd25lckRvY3VtZW50LCBjYWNoZSk7CiAgICAgICAgfSBlbHNlCiAgICAgICAgICBjYWNoZXMgPSB0YWdDYWNoZXMsIGNhY2hlID0gY2FjaGVzLmdldChvd25lckRvY3VtZW50KSwgY2FjaGUgfHwgKGNhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSwgY2FjaGVzLnNldChvd25lckRvY3VtZW50LCBjYWNoZSkpOwogICAgICAgIGlmIChjYWNoZS5oYXModHlwZSkpIHJldHVybiBjYWNoZTsKICAgICAgICBjYWNoZS5zZXQodHlwZSwgbnVsbCk7CiAgICAgICAgb3duZXJEb2N1bWVudCA9IG93bmVyRG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUodHlwZSk7CiAgICAgICAgZm9yIChjYWNoZXMgPSAwOyBjYWNoZXMgPCBvd25lckRvY3VtZW50Lmxlbmd0aDsgY2FjaGVzKyspIHsKICAgICAgICAgIHZhciBub2RlID0gb3duZXJEb2N1bWVudFtjYWNoZXNdOwogICAgICAgICAgaWYgKCEobm9kZVtpbnRlcm5hbEhvaXN0YWJsZU1hcmtlcl0gfHwgbm9kZVtpbnRlcm5hbEluc3RhbmNlS2V5XSB8fCAibGluayIgPT09IHR5cGUgJiYgInN0eWxlc2hlZXQiID09PSBub2RlLmdldEF0dHJpYnV0ZSgicmVsIikpICYmIG5vZGUubmFtZXNwYWNlVVJJICE9PSBTVkdfTkFNRVNQQUNFKSB7CiAgICAgICAgICAgIHZhciBub2RlS2V5ID0gbm9kZS5nZXRBdHRyaWJ1dGUoa2V5QXR0cmlidXRlKSB8fCAiIjsKICAgICAgICAgICAgbm9kZUtleSA9IHR5cGUgKyBub2RlS2V5OwogICAgICAgICAgICB2YXIgZXhpc3RpbmcgPSBjYWNoZS5nZXQobm9kZUtleSk7CiAgICAgICAgICAgIGV4aXN0aW5nID8gZXhpc3RpbmcucHVzaChub2RlKSA6IGNhY2hlLnNldChub2RlS2V5LCBbbm9kZV0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY2FjaGU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbW91bnRIb2lzdGFibGUoaG9pc3RhYmxlUm9vdCwgdHlwZSwgaW5zdGFuY2UpIHsKICAgICAgICBob2lzdGFibGVSb290ID0gaG9pc3RhYmxlUm9vdC5vd25lckRvY3VtZW50IHx8IGhvaXN0YWJsZVJvb3Q7CiAgICAgICAgaG9pc3RhYmxlUm9vdC5oZWFkLmluc2VydEJlZm9yZSgKICAgICAgICAgIGluc3RhbmNlLAogICAgICAgICAgInRpdGxlIiA9PT0gdHlwZSA/IGhvaXN0YWJsZVJvb3QucXVlcnlTZWxlY3RvcigiaGVhZCA+IHRpdGxlIikgOiBudWxsCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc0hvc3RIb2lzdGFibGVUeXBlKHR5cGUsIHByb3BzLCBob3N0Q29udGV4dCkgewogICAgICAgIHZhciBvdXRzaWRlSG9zdENvbnRhaW5lckNvbnRleHQgPSAhaG9zdENvbnRleHQuYW5jZXN0b3JJbmZvLmNvbnRhaW5lclRhZ0luU2NvcGU7CiAgICAgICAgaWYgKGhvc3RDb250ZXh0LmNvbnRleHQgPT09IEhvc3RDb250ZXh0TmFtZXNwYWNlU3ZnIHx8IG51bGwgIT0gcHJvcHMuaXRlbVByb3ApCiAgICAgICAgICByZXR1cm4gIW91dHNpZGVIb3N0Q29udGFpbmVyQ29udGV4dCB8fCBudWxsID09IHByb3BzLml0ZW1Qcm9wIHx8ICJtZXRhIiAhPT0gdHlwZSAmJiAidGl0bGUiICE9PSB0eXBlICYmICJzdHlsZSIgIT09IHR5cGUgJiYgImxpbmsiICE9PSB0eXBlICYmICJzY3JpcHQiICE9PSB0eXBlIHx8IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICJDYW5ub3QgcmVuZGVyIGEgPCVzPiBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50IGlmIGl0IGhhcyBhbiBgaXRlbVByb3BgIHByb3AuIGBpdGVtUHJvcGAgc3VnZ2VzdHMgdGhlIHRhZyBiZWxvbmdzIHRvIGFuIGBpdGVtU2NvcGVgIHdoaWNoIGNhbiBhcHBlYXIgYW55d2hlcmUgaW4gdGhlIERPTS4gSWYgeW91IHdlcmUgaW50ZW5kaW5nIGZvciBSZWFjdCB0byBob2lzdCB0aGlzIDwlcz4gcmVtb3ZlIHRoZSBgaXRlbVByb3BgIHByb3AuIE90aGVyd2lzZSwgdHJ5IG1vdmluZyB0aGlzIHRhZyBpbnRvIHRoZSA8aGVhZD4gb3IgPGJvZHk+IG9mIHRoZSBEb2N1bWVudC4iLAogICAgICAgICAgICB0eXBlLAogICAgICAgICAgICB0eXBlCiAgICAgICAgICApLCBmYWxzZTsKICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgIGNhc2UgIm1ldGEiOgogICAgICAgICAgY2FzZSAidGl0bGUiOgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGNhc2UgInN0eWxlIjoKICAgICAgICAgICAgaWYgKCJzdHJpbmciICE9PSB0eXBlb2YgcHJvcHMucHJlY2VkZW5jZSB8fCAic3RyaW5nIiAhPT0gdHlwZW9mIHByb3BzLmhyZWYgfHwgIiIgPT09IHByb3BzLmhyZWYpIHsKICAgICAgICAgICAgICBvdXRzaWRlSG9zdENvbnRhaW5lckNvbnRleHQgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICdDYW5ub3QgcmVuZGVyIGEgPHN0eWxlPiBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50IHdpdGhvdXQga25vd2luZyBpdHMgcHJlY2VkZW5jZSBhbmQgYSB1bmlxdWUgaHJlZiBrZXkuIFJlYWN0IGNhbiBob2lzdCBhbmQgZGVkdXBsaWNhdGUgPHN0eWxlPiB0YWdzIGlmIHlvdSBwcm92aWRlIGEgYHByZWNlZGVuY2VgIHByb3AgYWxvbmcgd2l0aCBhbiBgaHJlZmAgcHJvcCB0aGF0IGRvZXMgbm90IGNvbmZsaWN0IHdpdGggdGhlIGBocmVmYCB2YWx1ZXMgdXNlZCBpbiBhbnkgb3RoZXIgaG9pc3RlZCA8c3R5bGU+IG9yIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgLi4uPiB0YWdzLiAgTm90ZSB0aGF0IGhvaXN0aW5nIDxzdHlsZT4gdGFncyBpcyBjb25zaWRlcmVkIGFuIGFkdmFuY2VkIGZlYXR1cmUgdGhhdCBtb3N0IHdpbGwgbm90IHVzZSBkaXJlY3RseS4gQ29uc2lkZXIgbW92aW5nIHRoZSA8c3R5bGU+IHRhZyB0byB0aGUgPGhlYWQ+IG9yIGNvbnNpZGVyIGFkZGluZyBhIGBwcmVjZWRlbmNlPSJkZWZhdWx0ImAgYW5kIGBocmVmPSJzb21lIHVuaXF1ZSByZXNvdXJjZSBpZGVudGlmaWVyImAuJwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICBjYXNlICJsaW5rIjoKICAgICAgICAgICAgaWYgKCJzdHJpbmciICE9PSB0eXBlb2YgcHJvcHMucmVsIHx8ICJzdHJpbmciICE9PSB0eXBlb2YgcHJvcHMuaHJlZiB8fCAiIiA9PT0gcHJvcHMuaHJlZiB8fCBwcm9wcy5vbkxvYWQgfHwgcHJvcHMub25FcnJvcikgewogICAgICAgICAgICAgIGlmICgic3R5bGVzaGVldCIgPT09IHByb3BzLnJlbCAmJiAic3RyaW5nIiA9PT0gdHlwZW9mIHByb3BzLnByZWNlZGVuY2UpIHsKICAgICAgICAgICAgICAgIHR5cGUgPSBwcm9wcy5ocmVmOwogICAgICAgICAgICAgICAgdmFyIG9uRXJyb3IgPSBwcm9wcy5vbkVycm9yLCBkaXNhYmxlZCA9IHByb3BzLmRpc2FibGVkOwogICAgICAgICAgICAgICAgaG9zdENvbnRleHQgPSBbXTsKICAgICAgICAgICAgICAgIHByb3BzLm9uTG9hZCAmJiBob3N0Q29udGV4dC5wdXNoKCJgb25Mb2FkYCIpOwogICAgICAgICAgICAgICAgb25FcnJvciAmJiBob3N0Q29udGV4dC5wdXNoKCJgb25FcnJvcmAiKTsKICAgICAgICAgICAgICAgIG51bGwgIT0gZGlzYWJsZWQgJiYgaG9zdENvbnRleHQucHVzaCgiYGRpc2FibGVkYCIpOwogICAgICAgICAgICAgICAgb25FcnJvciA9IHByb3BOYW1lc0xpc3RKb2luKGhvc3RDb250ZXh0LCAiYW5kIik7CiAgICAgICAgICAgICAgICBvbkVycm9yICs9IDEgPT09IGhvc3RDb250ZXh0Lmxlbmd0aCA/ICIgcHJvcCIgOiAiIHByb3BzIjsKICAgICAgICAgICAgICAgIGRpc2FibGVkID0gMSA9PT0gaG9zdENvbnRleHQubGVuZ3RoID8gImFuICIgKyBvbkVycm9yIDogInRoZSAiICsgb25FcnJvcjsKICAgICAgICAgICAgICAgIGhvc3RDb250ZXh0Lmxlbmd0aCAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgICAnUmVhY3QgZW5jb3VudGVyZWQgYSA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IiVzIiAuLi4gLz4gd2l0aCBhIGBwcmVjZWRlbmNlYCBwcm9wIHRoYXQgYWxzbyBpbmNsdWRlZCAlcy4gVGhlIHByZXNlbmNlIG9mIGxvYWRpbmcgYW5kIGVycm9yIGhhbmRsZXJzIGluZGljYXRlcyBhbiBpbnRlbnQgdG8gbWFuYWdlIHRoZSBzdHlsZXNoZWV0IGxvYWRpbmcgc3RhdGUgZnJvbSB5b3VyIGZyb20geW91ciBDb21wb25lbnQgY29kZSBhbmQgUmVhY3Qgd2lsbCBub3QgaG9pc3Qgb3IgZGVkdXBsaWNhdGUgdGhpcyBzdHlsZXNoZWV0LiBJZiB5b3VyIGludGVudCB3YXMgdG8gaGF2ZSBSZWFjdCBob2lzdCBhbmQgZGVkdXBsY2lhdGUgdGhpcyBzdHlsZXNoZWV0IHVzaW5nIHRoZSBgcHJlY2VkZW5jZWAgcHJvcCByZW1vdmUgdGhlICVzLCBvdGhlcndpc2UgcmVtb3ZlIHRoZSBgcHJlY2VkZW5jZWAgcHJvcC4nLAogICAgICAgICAgICAgICAgICB0eXBlLAogICAgICAgICAgICAgICAgICBkaXNhYmxlZCwKICAgICAgICAgICAgICAgICAgb25FcnJvcgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgb3V0c2lkZUhvc3RDb250YWluZXJDb250ZXh0ICYmICgic3RyaW5nIiAhPT0gdHlwZW9mIHByb3BzLnJlbCB8fCAic3RyaW5nIiAhPT0gdHlwZW9mIHByb3BzLmhyZWYgfHwgIiIgPT09IHByb3BzLmhyZWYgPyBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgIkNhbm5vdCByZW5kZXIgYSA8bGluaz4gb3V0c2lkZSB0aGUgbWFpbiBkb2N1bWVudCB3aXRob3V0IGEgYHJlbGAgYW5kIGBocmVmYCBwcm9wLiBUcnkgYWRkaW5nIGEgYHJlbGAgYW5kL29yIGBocmVmYCBwcm9wIHRvIHRoaXMgPGxpbms+IG9yIG1vdmluZyB0aGUgbGluayBpbnRvIHRoZSA8aGVhZD4gdGFnIgogICAgICAgICAgICAgICkgOiAocHJvcHMub25FcnJvciB8fCBwcm9wcy5vbkxvYWQpICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAiQ2Fubm90IHJlbmRlciBhIDxsaW5rPiB3aXRoIG9uTG9hZCBvciBvbkVycm9yIGxpc3RlbmVycyBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50LiBUcnkgcmVtb3Zpbmcgb25Mb2FkPXsuLi59IGFuZCBvbkVycm9yPXsuLi59IG9yIG1vdmluZyBpdCBpbnRvIHRoZSByb290IDxoZWFkPiB0YWcgb3Igc29tZXdoZXJlIGluIHRoZSA8Ym9keT4uIgogICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAocHJvcHMucmVsKSB7CiAgICAgICAgICAgICAgY2FzZSAic3R5bGVzaGVldCI6CiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZSA9IHByb3BzLnByZWNlZGVuY2UsIHByb3BzID0gcHJvcHMuZGlzYWJsZWQsICJzdHJpbmciICE9PSB0eXBlb2YgdHlwZSAmJiBvdXRzaWRlSG9zdENvbnRhaW5lckNvbnRleHQgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICAgJ0Nhbm5vdCByZW5kZXIgYSA8bGluayByZWw9InN0eWxlc2hlZXQiIC8+IG91dHNpZGUgdGhlIG1haW4gZG9jdW1lbnQgd2l0aG91dCBrbm93aW5nIGl0cyBwcmVjZWRlbmNlLiBDb25zaWRlciBhZGRpbmcgcHJlY2VkZW5jZT0iZGVmYXVsdCIgb3IgbW92aW5nIGl0IGludG8gdGhlIHJvb3QgPGhlYWQ+IHRhZy4nCiAgICAgICAgICAgICAgICApLCAic3RyaW5nIiA9PT0gdHlwZW9mIHR5cGUgJiYgbnVsbCA9PSBwcm9wczsKICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIGNhc2UgInNjcmlwdCI6CiAgICAgICAgICAgIHR5cGUgPSBwcm9wcy5hc3luYyAmJiAiZnVuY3Rpb24iICE9PSB0eXBlb2YgcHJvcHMuYXN5bmMgJiYgInN5bWJvbCIgIT09IHR5cGVvZiBwcm9wcy5hc3luYzsKICAgICAgICAgICAgaWYgKCF0eXBlIHx8IHByb3BzLm9uTG9hZCB8fCBwcm9wcy5vbkVycm9yIHx8ICFwcm9wcy5zcmMgfHwgInN0cmluZyIgIT09IHR5cGVvZiBwcm9wcy5zcmMpIHsKICAgICAgICAgICAgICBvdXRzaWRlSG9zdENvbnRhaW5lckNvbnRleHQgJiYgKHR5cGUgPyBwcm9wcy5vbkxvYWQgfHwgcHJvcHMub25FcnJvciA/IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAiQ2Fubm90IHJlbmRlciBhIDxzY3JpcHQ+IHdpdGggb25Mb2FkIG9yIG9uRXJyb3IgbGlzdGVuZXJzIG91dHNpZGUgdGhlIG1haW4gZG9jdW1lbnQuIFRyeSByZW1vdmluZyBvbkxvYWQ9ey4uLn0gYW5kIG9uRXJyb3I9ey4uLn0gb3IgbW92aW5nIGl0IGludG8gdGhlIHJvb3QgPGhlYWQ+IHRhZyBvciBzb21ld2hlcmUgaW4gdGhlIDxib2R5Pi4iCiAgICAgICAgICAgICAgKSA6IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAiQ2Fubm90IHJlbmRlciBhIDxzY3JpcHQ+IG91dHNpZGUgdGhlIG1haW4gZG9jdW1lbnQgd2l0aG91dCBgYXN5bmM9e3RydWV9YCBhbmQgYSBub24tZW1wdHkgYHNyY2AgcHJvcC4gRW5zdXJlIHRoZXJlIGlzIGEgdmFsaWQgYHNyY2AgYW5kIGVpdGhlciBtYWtlIHRoZSBzY3JpcHQgYXN5bmMgb3IgbW92ZSBpdCBpbnRvIHRoZSByb290IDxoZWFkPiB0YWcgb3Igc29tZXdoZXJlIGluIHRoZSA8Ym9keT4uIgogICAgICAgICAgICAgICkgOiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICAgJ0Nhbm5vdCByZW5kZXIgYSBzeW5jIG9yIGRlZmVyIDxzY3JpcHQ+IG91dHNpZGUgdGhlIG1haW4gZG9jdW1lbnQgd2l0aG91dCBrbm93aW5nIGl0cyBvcmRlci4gVHJ5IGFkZGluZyBhc3luYz0iIiBvciBtb3ZpbmcgaXQgaW50byB0aGUgcm9vdCA8aGVhZD4gdGFnLicKICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGNhc2UgIm5vc2NyaXB0IjoKICAgICAgICAgIGNhc2UgInRlbXBsYXRlIjoKICAgICAgICAgICAgb3V0c2lkZUhvc3RDb250YWluZXJDb250ZXh0ICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIkNhbm5vdCByZW5kZXIgPCVzPiBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50LiBUcnkgbW92aW5nIGl0IGludG8gdGhlIHJvb3QgPGhlYWQ+IHRhZy4iLAogICAgICAgICAgICAgIHR5cGUKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHByZWxvYWRSZXNvdXJjZShyZXNvdXJjZSkgewogICAgICAgIHJldHVybiAic3R5bGVzaGVldCIgPT09IHJlc291cmNlLnR5cGUgJiYgKHJlc291cmNlLnN0YXRlLmxvYWRpbmcgJiBTZXR0bGVkKSA9PT0gTm90TG9hZGVkID8gZmFsc2UgOiB0cnVlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHN1c3BlbmRSZXNvdXJjZShzdGF0ZSwgaG9pc3RhYmxlUm9vdCwgcmVzb3VyY2UsIHByb3BzKSB7CiAgICAgICAgaWYgKCJzdHlsZXNoZWV0IiA9PT0gcmVzb3VyY2UudHlwZSAmJiAoInN0cmluZyIgIT09IHR5cGVvZiBwcm9wcy5tZWRpYSB8fCBmYWxzZSAhPT0gbWF0Y2hNZWRpYShwcm9wcy5tZWRpYSkubWF0Y2hlcykgJiYgKHJlc291cmNlLnN0YXRlLmxvYWRpbmcgJiBJbnNlcnRlZCkgPT09IE5vdExvYWRlZCkgewogICAgICAgICAgaWYgKG51bGwgPT09IHJlc291cmNlLmluc3RhbmNlKSB7CiAgICAgICAgICAgIHZhciBrZXkgPSBnZXRTdHlsZUtleShwcm9wcy5ocmVmKSwgaW5zdGFuY2UgPSBob2lzdGFibGVSb290LnF1ZXJ5U2VsZWN0b3IoCiAgICAgICAgICAgICAgZ2V0U3R5bGVzaGVldFNlbGVjdG9yRnJvbUtleShrZXkpCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmIChpbnN0YW5jZSkgewogICAgICAgICAgICAgIGhvaXN0YWJsZVJvb3QgPSBpbnN0YW5jZS5fcDsKICAgICAgICAgICAgICBudWxsICE9PSBob2lzdGFibGVSb290ICYmICJvYmplY3QiID09PSB0eXBlb2YgaG9pc3RhYmxlUm9vdCAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgaG9pc3RhYmxlUm9vdC50aGVuICYmIChzdGF0ZS5jb3VudCsrLCBzdGF0ZSA9IG9uVW5zdXNwZW5kLmJpbmQoc3RhdGUpLCBob2lzdGFibGVSb290LnRoZW4oc3RhdGUsIHN0YXRlKSk7CiAgICAgICAgICAgICAgcmVzb3VyY2Uuc3RhdGUubG9hZGluZyB8PSBJbnNlcnRlZDsKICAgICAgICAgICAgICByZXNvdXJjZS5pbnN0YW5jZSA9IGluc3RhbmNlOwogICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoaW5zdGFuY2UpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpbnN0YW5jZSA9IGhvaXN0YWJsZVJvb3Qub3duZXJEb2N1bWVudCB8fCBob2lzdGFibGVSb290OwogICAgICAgICAgICBwcm9wcyA9IHN0eWxlc2hlZXRQcm9wc0Zyb21SYXdQcm9wcyhwcm9wcyk7CiAgICAgICAgICAgIChrZXkgPSBwcmVsb2FkUHJvcHNNYXAuZ2V0KGtleSkpICYmIGFkb3B0UHJlbG9hZFByb3BzRm9yU3R5bGVzaGVldChwcm9wcywga2V5KTsKICAgICAgICAgICAgaW5zdGFuY2UgPSBpbnN0YW5jZS5jcmVhdGVFbGVtZW50KCJsaW5rIik7CiAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoaW5zdGFuY2UpOwogICAgICAgICAgICB2YXIgbGlua0luc3RhbmNlID0gaW5zdGFuY2U7CiAgICAgICAgICAgIGxpbmtJbnN0YW5jZS5fcCA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgIGxpbmtJbnN0YW5jZS5vbmxvYWQgPSByZXNvbHZlOwogICAgICAgICAgICAgIGxpbmtJbnN0YW5jZS5vbmVycm9yID0gcmVqZWN0OwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoaW5zdGFuY2UsICJsaW5rIiwgcHJvcHMpOwogICAgICAgICAgICByZXNvdXJjZS5pbnN0YW5jZSA9IGluc3RhbmNlOwogICAgICAgICAgfQogICAgICAgICAgbnVsbCA9PT0gc3RhdGUuc3R5bGVzaGVldHMgJiYgKHN0YXRlLnN0eWxlc2hlZXRzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSk7CiAgICAgICAgICBzdGF0ZS5zdHlsZXNoZWV0cy5zZXQocmVzb3VyY2UsIGhvaXN0YWJsZVJvb3QpOwogICAgICAgICAgKGhvaXN0YWJsZVJvb3QgPSByZXNvdXJjZS5zdGF0ZS5wcmVsb2FkKSAmJiAocmVzb3VyY2Uuc3RhdGUubG9hZGluZyAmIFNldHRsZWQpID09PSBOb3RMb2FkZWQgJiYgKHN0YXRlLmNvdW50KyssIHJlc291cmNlID0gb25VbnN1c3BlbmQuYmluZChzdGF0ZSksIGhvaXN0YWJsZVJvb3QuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc291cmNlKSwgaG9pc3RhYmxlUm9vdC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIHJlc291cmNlKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHdhaXRGb3JDb21taXRUb0JlUmVhZHkoc3RhdGUsIHRpbWVvdXRPZmZzZXQpIHsKICAgICAgICBzdGF0ZS5zdHlsZXNoZWV0cyAmJiAwID09PSBzdGF0ZS5jb3VudCAmJiBpbnNlcnRTdXNwZW5kZWRTdHlsZXNoZWV0cyhzdGF0ZSwgc3RhdGUuc3R5bGVzaGVldHMpOwogICAgICAgIHJldHVybiAwIDwgc3RhdGUuY291bnQgfHwgMCA8IHN0YXRlLmltZ0NvdW50ID8gZnVuY3Rpb24oY29tbWl0KSB7CiAgICAgICAgICB2YXIgc3R5bGVzaGVldFRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgc3RhdGUuc3R5bGVzaGVldHMgJiYgaW5zZXJ0U3VzcGVuZGVkU3R5bGVzaGVldHMoc3RhdGUsIHN0YXRlLnN0eWxlc2hlZXRzKTsKICAgICAgICAgICAgaWYgKHN0YXRlLnVuc3VzcGVuZCkgewogICAgICAgICAgICAgIHZhciB1bnN1c3BlbmQgPSBzdGF0ZS51bnN1c3BlbmQ7CiAgICAgICAgICAgICAgc3RhdGUudW5zdXNwZW5kID0gbnVsbDsKICAgICAgICAgICAgICB1bnN1c3BlbmQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgU1VTUEVOU0VZX1NUWUxFU0hFRVRfVElNRU9VVCArIHRpbWVvdXRPZmZzZXQpOwogICAgICAgICAgMCA8IHN0YXRlLmltZ0J5dGVzICYmIDAgPT09IGVzdGltYXRlZEJ5dGVzV2l0aGluTGltaXQgJiYgKGVzdGltYXRlZEJ5dGVzV2l0aGluTGltaXQgPSAxMjUgKiBlc3RpbWF0ZUJhbmR3aWR0aCgpICogU1VTUEVOU0VZX0lNQUdFX1RJTUVfRVNUSU1BVEUpOwogICAgICAgICAgdmFyIGltZ1RpbWVyID0gc2V0VGltZW91dCgKICAgICAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgc3RhdGUud2FpdGluZ0ZvckltYWdlcyA9IGZhbHNlOwogICAgICAgICAgICAgIGlmICgwID09PSBzdGF0ZS5jb3VudCAmJiAoc3RhdGUuc3R5bGVzaGVldHMgJiYgaW5zZXJ0U3VzcGVuZGVkU3R5bGVzaGVldHMoc3RhdGUsIHN0YXRlLnN0eWxlc2hlZXRzKSwgc3RhdGUudW5zdXNwZW5kKSkgewogICAgICAgICAgICAgICAgdmFyIHVuc3VzcGVuZCA9IHN0YXRlLnVuc3VzcGVuZDsKICAgICAgICAgICAgICAgIHN0YXRlLnVuc3VzcGVuZCA9IG51bGw7CiAgICAgICAgICAgICAgICB1bnN1c3BlbmQoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIChzdGF0ZS5pbWdCeXRlcyA+IGVzdGltYXRlZEJ5dGVzV2l0aGluTGltaXQgPyA1MCA6IFNVU1BFTlNFWV9JTUFHRV9USU1FT1VUKSArIHRpbWVvdXRPZmZzZXQKICAgICAgICAgICk7CiAgICAgICAgICBzdGF0ZS51bnN1c3BlbmQgPSBjb21taXQ7CiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHN0YXRlLnVuc3VzcGVuZCA9IG51bGw7CiAgICAgICAgICAgIGNsZWFyVGltZW91dChzdHlsZXNoZWV0VGltZXIpOwogICAgICAgICAgICBjbGVhclRpbWVvdXQoaW1nVGltZXIpOwogICAgICAgICAgfTsKICAgICAgICB9IDogbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBvblVuc3VzcGVuZCgpIHsKICAgICAgICB0aGlzLmNvdW50LS07CiAgICAgICAgaWYgKDAgPT09IHRoaXMuY291bnQgJiYgKDAgPT09IHRoaXMuaW1nQ291bnQgfHwgIXRoaXMud2FpdGluZ0ZvckltYWdlcykpIHsKICAgICAgICAgIGlmICh0aGlzLnN0eWxlc2hlZXRzKQogICAgICAgICAgICBpbnNlcnRTdXNwZW5kZWRTdHlsZXNoZWV0cyh0aGlzLCB0aGlzLnN0eWxlc2hlZXRzKTsKICAgICAgICAgIGVsc2UgaWYgKHRoaXMudW5zdXNwZW5kKSB7CiAgICAgICAgICAgIHZhciB1bnN1c3BlbmQgPSB0aGlzLnVuc3VzcGVuZDsKICAgICAgICAgICAgdGhpcy51bnN1c3BlbmQgPSBudWxsOwogICAgICAgICAgICB1bnN1c3BlbmQoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaW5zZXJ0U3VzcGVuZGVkU3R5bGVzaGVldHMoc3RhdGUsIHJlc291cmNlcykgewogICAgICAgIHN0YXRlLnN0eWxlc2hlZXRzID0gbnVsbDsKICAgICAgICBudWxsICE9PSBzdGF0ZS51bnN1c3BlbmQgJiYgKHN0YXRlLmNvdW50KyssIHByZWNlZGVuY2VzQnlSb290ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSwgcmVzb3VyY2VzLmZvckVhY2goaW5zZXJ0U3R5bGVzaGVldEludG9Sb290LCBzdGF0ZSksIHByZWNlZGVuY2VzQnlSb290ID0gbnVsbCwgb25VbnN1c3BlbmQuY2FsbChzdGF0ZSkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGluc2VydFN0eWxlc2hlZXRJbnRvUm9vdChyb290MiwgcmVzb3VyY2UpIHsKICAgICAgICBpZiAoIShyZXNvdXJjZS5zdGF0ZS5sb2FkaW5nICYgSW5zZXJ0ZWQpKSB7CiAgICAgICAgICB2YXIgcHJlY2VkZW5jZXMgPSBwcmVjZWRlbmNlc0J5Um9vdC5nZXQocm9vdDIpOwogICAgICAgICAgaWYgKHByZWNlZGVuY2VzKSB2YXIgbGFzdCA9IHByZWNlZGVuY2VzLmdldChMQVNUX1BSRUNFREVOQ0UpOwogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHByZWNlZGVuY2VzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgICAgICAgcHJlY2VkZW5jZXNCeVJvb3Quc2V0KHJvb3QyLCBwcmVjZWRlbmNlcyk7CiAgICAgICAgICAgIGZvciAodmFyIG5vZGVzID0gcm9vdDIucXVlcnlTZWxlY3RvckFsbCgKICAgICAgICAgICAgICAibGlua1tkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0iCiAgICAgICAgICAgICksIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICB2YXIgbm9kZSA9IG5vZGVzW2ldOwogICAgICAgICAgICAgIGlmICgiTElOSyIgPT09IG5vZGUubm9kZU5hbWUgfHwgIm5vdCBhbGwiICE9PSBub2RlLmdldEF0dHJpYnV0ZSgibWVkaWEiKSkKICAgICAgICAgICAgICAgIHByZWNlZGVuY2VzLnNldChub2RlLmRhdGFzZXQucHJlY2VkZW5jZSwgbm9kZSksIGxhc3QgPSBub2RlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxhc3QgJiYgcHJlY2VkZW5jZXMuc2V0KExBU1RfUFJFQ0VERU5DRSwgbGFzdCk7CiAgICAgICAgICB9CiAgICAgICAgICBub2RlcyA9IHJlc291cmNlLmluc3RhbmNlOwogICAgICAgICAgbm9kZSA9IG5vZGVzLmdldEF0dHJpYnV0ZSgiZGF0YS1wcmVjZWRlbmNlIik7CiAgICAgICAgICBpID0gcHJlY2VkZW5jZXMuZ2V0KG5vZGUpIHx8IGxhc3Q7CiAgICAgICAgICBpID09PSBsYXN0ICYmIHByZWNlZGVuY2VzLnNldChMQVNUX1BSRUNFREVOQ0UsIG5vZGVzKTsKICAgICAgICAgIHByZWNlZGVuY2VzLnNldChub2RlLCBub2Rlcyk7CiAgICAgICAgICB0aGlzLmNvdW50Kys7CiAgICAgICAgICBsYXN0ID0gb25VbnN1c3BlbmQuYmluZCh0aGlzKTsKICAgICAgICAgIG5vZGVzLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBsYXN0KTsKICAgICAgICAgIG5vZGVzLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgbGFzdCk7CiAgICAgICAgICBpID8gaS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShub2RlcywgaS5uZXh0U2libGluZykgOiAocm9vdDIgPSA5ID09PSByb290Mi5ub2RlVHlwZSA/IHJvb3QyLmhlYWQgOiByb290Miwgcm9vdDIuaW5zZXJ0QmVmb3JlKG5vZGVzLCByb290Mi5maXJzdENoaWxkKSk7CiAgICAgICAgICByZXNvdXJjZS5zdGF0ZS5sb2FkaW5nIHw9IEluc2VydGVkOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBGaWJlclJvb3ROb2RlKGNvbnRhaW5lckluZm8sIHRhZywgaHlkcmF0ZSwgaWRlbnRpZmllclByZWZpeCwgb25VbmNhdWdodEVycm9yLCBvbkNhdWdodEVycm9yLCBvblJlY292ZXJhYmxlRXJyb3IsIG9uRGVmYXVsdFRyYW5zaXRpb25JbmRpY2F0b3IsIGZvcm1TdGF0ZSkgewogICAgICAgIHRoaXMudGFnID0gMTsKICAgICAgICB0aGlzLmNvbnRhaW5lckluZm8gPSBjb250YWluZXJJbmZvOwogICAgICAgIHRoaXMucGluZ0NhY2hlID0gdGhpcy5jdXJyZW50ID0gdGhpcy5wZW5kaW5nQ2hpbGRyZW4gPSBudWxsOwogICAgICAgIHRoaXMudGltZW91dEhhbmRsZSA9IG5vVGltZW91dDsKICAgICAgICB0aGlzLmNhbGxiYWNrTm9kZSA9IHRoaXMubmV4dCA9IHRoaXMucGVuZGluZ0NvbnRleHQgPSB0aGlzLmNvbnRleHQgPSB0aGlzLmNhbmNlbFBlbmRpbmdDb21taXQgPSBudWxsOwogICAgICAgIHRoaXMuY2FsbGJhY2tQcmlvcml0eSA9IDA7CiAgICAgICAgdGhpcy5leHBpcmF0aW9uVGltZXMgPSBjcmVhdGVMYW5lTWFwKC0xKTsKICAgICAgICB0aGlzLmVudGFuZ2xlZExhbmVzID0gdGhpcy5zaGVsbFN1c3BlbmRDb3VudGVyID0gdGhpcy5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyA9IHRoaXMuZXhwaXJlZExhbmVzID0gdGhpcy53YXJtTGFuZXMgPSB0aGlzLnBpbmdlZExhbmVzID0gdGhpcy5zdXNwZW5kZWRMYW5lcyA9IHRoaXMucGVuZGluZ0xhbmVzID0gMDsKICAgICAgICB0aGlzLmVudGFuZ2xlbWVudHMgPSBjcmVhdGVMYW5lTWFwKDApOwogICAgICAgIHRoaXMuaGlkZGVuVXBkYXRlcyA9IGNyZWF0ZUxhbmVNYXAobnVsbCk7CiAgICAgICAgdGhpcy5pZGVudGlmaWVyUHJlZml4ID0gaWRlbnRpZmllclByZWZpeDsKICAgICAgICB0aGlzLm9uVW5jYXVnaHRFcnJvciA9IG9uVW5jYXVnaHRFcnJvcjsKICAgICAgICB0aGlzLm9uQ2F1Z2h0RXJyb3IgPSBvbkNhdWdodEVycm9yOwogICAgICAgIHRoaXMub25SZWNvdmVyYWJsZUVycm9yID0gb25SZWNvdmVyYWJsZUVycm9yOwogICAgICAgIHRoaXMucG9vbGVkQ2FjaGUgPSBudWxsOwogICAgICAgIHRoaXMucG9vbGVkQ2FjaGVMYW5lcyA9IDA7CiAgICAgICAgdGhpcy5mb3JtU3RhdGUgPSBmb3JtU3RhdGU7CiAgICAgICAgdGhpcy5pbmNvbXBsZXRlVHJhbnNpdGlvbnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIHRoaXMucGFzc2l2ZUVmZmVjdER1cmF0aW9uID0gdGhpcy5lZmZlY3REdXJhdGlvbiA9IC0wOwogICAgICAgIHRoaXMubWVtb2l6ZWRVcGRhdGVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgY29udGFpbmVySW5mbyA9IHRoaXMucGVuZGluZ1VwZGF0ZXJzTGFuZU1hcCA9IFtdOwogICAgICAgIGZvciAodGFnID0gMDsgMzEgPiB0YWc7IHRhZysrKSBjb250YWluZXJJbmZvLnB1c2goLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSk7CiAgICAgICAgdGhpcy5fZGVidWdSb290VHlwZSA9IGh5ZHJhdGUgPyAiaHlkcmF0ZVJvb3QoKSIgOiAiY3JlYXRlUm9vdCgpIjsKICAgICAgfQogICAgICBmdW5jdGlvbiBjcmVhdGVGaWJlclJvb3QoY29udGFpbmVySW5mbywgdGFnLCBoeWRyYXRlLCBpbml0aWFsQ2hpbGRyZW4sIGh5ZHJhdGlvbkNhbGxiYWNrcywgaXNTdHJpY3RNb2RlLCBpZGVudGlmaWVyUHJlZml4LCBmb3JtU3RhdGUsIG9uVW5jYXVnaHRFcnJvciwgb25DYXVnaHRFcnJvciwgb25SZWNvdmVyYWJsZUVycm9yLCBvbkRlZmF1bHRUcmFuc2l0aW9uSW5kaWNhdG9yKSB7CiAgICAgICAgY29udGFpbmVySW5mbyA9IG5ldyBGaWJlclJvb3ROb2RlKAogICAgICAgICAgY29udGFpbmVySW5mbywKICAgICAgICAgIHRhZywKICAgICAgICAgIGh5ZHJhdGUsCiAgICAgICAgICBpZGVudGlmaWVyUHJlZml4LAogICAgICAgICAgb25VbmNhdWdodEVycm9yLAogICAgICAgICAgb25DYXVnaHRFcnJvciwKICAgICAgICAgIG9uUmVjb3ZlcmFibGVFcnJvciwKICAgICAgICAgIG9uRGVmYXVsdFRyYW5zaXRpb25JbmRpY2F0b3IsCiAgICAgICAgICBmb3JtU3RhdGUKICAgICAgICApOwogICAgICAgIHRhZyA9IENvbmN1cnJlbnRNb2RlOwogICAgICAgIHRydWUgPT09IGlzU3RyaWN0TW9kZSAmJiAodGFnIHw9IFN0cmljdExlZ2FjeU1vZGUgfCBTdHJpY3RFZmZlY3RzTW9kZSk7CiAgICAgICAgdGFnIHw9IFByb2ZpbGVNb2RlOwogICAgICAgIGlzU3RyaWN0TW9kZSA9IGNyZWF0ZUZpYmVyKDMsIG51bGwsIG51bGwsIHRhZyk7CiAgICAgICAgY29udGFpbmVySW5mby5jdXJyZW50ID0gaXNTdHJpY3RNb2RlOwogICAgICAgIGlzU3RyaWN0TW9kZS5zdGF0ZU5vZGUgPSBjb250YWluZXJJbmZvOwogICAgICAgIHRhZyA9IGNyZWF0ZUNhY2hlKCk7CiAgICAgICAgcmV0YWluQ2FjaGUodGFnKTsKICAgICAgICBjb250YWluZXJJbmZvLnBvb2xlZENhY2hlID0gdGFnOwogICAgICAgIHJldGFpbkNhY2hlKHRhZyk7CiAgICAgICAgaXNTdHJpY3RNb2RlLm1lbW9pemVkU3RhdGUgPSB7CiAgICAgICAgICBlbGVtZW50OiBpbml0aWFsQ2hpbGRyZW4sCiAgICAgICAgICBpc0RlaHlkcmF0ZWQ6IGh5ZHJhdGUsCiAgICAgICAgICBjYWNoZTogdGFnCiAgICAgICAgfTsKICAgICAgICBpbml0aWFsaXplVXBkYXRlUXVldWUoaXNTdHJpY3RNb2RlKTsKICAgICAgICByZXR1cm4gY29udGFpbmVySW5mbzsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRDb250ZXh0Rm9yU3VidHJlZShwYXJlbnRDb21wb25lbnQpIHsKICAgICAgICBpZiAoIXBhcmVudENvbXBvbmVudCkgcmV0dXJuIGVtcHR5Q29udGV4dE9iamVjdDsKICAgICAgICBwYXJlbnRDb21wb25lbnQgPSBlbXB0eUNvbnRleHRPYmplY3Q7CiAgICAgICAgcmV0dXJuIHBhcmVudENvbXBvbmVudDsKICAgICAgfQogICAgICBmdW5jdGlvbiB1cGRhdGVDb250YWluZXJJbXBsKHJvb3RGaWJlciwgbGFuZSwgZWxlbWVudCwgY29udGFpbmVyLCBwYXJlbnRDb21wb25lbnQsIGNhbGxiYWNrKSB7CiAgICAgICAgaWYgKGluamVjdGVkSG9vayAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uU2NoZWR1bGVGaWJlclJvb3QpCiAgICAgICAgICB0cnkgewogICAgICAgICAgICBpbmplY3RlZEhvb2sub25TY2hlZHVsZUZpYmVyUm9vdChyZW5kZXJlcklELCBjb250YWluZXIsIGVsZW1lbnQpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhc0xvZ2dlZEVycm9yIHx8IChoYXNMb2dnZWRFcnJvciA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgIlJlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJW8iLAogICAgICAgICAgICAgIGVycgogICAgICAgICAgICApKTsKICAgICAgICAgIH0KICAgICAgICBwYXJlbnRDb21wb25lbnQgPSBnZXRDb250ZXh0Rm9yU3VidHJlZShwYXJlbnRDb21wb25lbnQpOwogICAgICAgIG51bGwgPT09IGNvbnRhaW5lci5jb250ZXh0ID8gY29udGFpbmVyLmNvbnRleHQgPSBwYXJlbnRDb21wb25lbnQgOiBjb250YWluZXIucGVuZGluZ0NvbnRleHQgPSBwYXJlbnRDb21wb25lbnQ7CiAgICAgICAgaXNSZW5kZXJpbmcgJiYgbnVsbCAhPT0gY3VycmVudCAmJiAhZGlkV2FybkFib3V0TmVzdGVkVXBkYXRlcyAmJiAoZGlkV2FybkFib3V0TmVzdGVkVXBkYXRlcyA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiUmVuZGVyIG1ldGhvZHMgc2hvdWxkIGJlIGEgcHVyZSBmdW5jdGlvbiBvZiBwcm9wcyBhbmQgc3RhdGU7IHRyaWdnZXJpbmcgbmVzdGVkIGNvbXBvbmVudCB1cGRhdGVzIGZyb20gcmVuZGVyIGlzIG5vdCBhbGxvd2VkLiBJZiBuZWNlc3NhcnksIHRyaWdnZXIgbmVzdGVkIHVwZGF0ZXMgaW4gY29tcG9uZW50RGlkVXBkYXRlLlxuXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiAlcy4iLAogICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihjdXJyZW50KSB8fCAiVW5rbm93biIKICAgICAgICApKTsKICAgICAgICBjb250YWluZXIgPSBjcmVhdGVVcGRhdGUobGFuZSk7CiAgICAgICAgY29udGFpbmVyLnBheWxvYWQgPSB7IGVsZW1lbnQgfTsKICAgICAgICBjYWxsYmFjayA9IHZvaWQgMCA9PT0gY2FsbGJhY2sgPyBudWxsIDogY2FsbGJhY2s7CiAgICAgICAgbnVsbCAhPT0gY2FsbGJhY2sgJiYgKCJmdW5jdGlvbiIgIT09IHR5cGVvZiBjYWxsYmFjayAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkV4cGVjdGVkIHRoZSBsYXN0IG9wdGlvbmFsIGBjYWxsYmFja2AgYXJndW1lbnQgdG8gYmUgYSBmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogJXMuIiwKICAgICAgICAgIGNhbGxiYWNrCiAgICAgICAgKSwgY29udGFpbmVyLmNhbGxiYWNrID0gY2FsbGJhY2spOwogICAgICAgIGVsZW1lbnQgPSBlbnF1ZXVlVXBkYXRlKHJvb3RGaWJlciwgY29udGFpbmVyLCBsYW5lKTsKICAgICAgICBudWxsICE9PSBlbGVtZW50ICYmIChzdGFydFVwZGF0ZVRpbWVyQnlMYW5lKGxhbmUsICJyb290LnJlbmRlcigpIiwgbnVsbCksIHNjaGVkdWxlVXBkYXRlT25GaWJlcihlbGVtZW50LCByb290RmliZXIsIGxhbmUpLCBlbnRhbmdsZVRyYW5zaXRpb25zKGVsZW1lbnQsIHJvb3RGaWJlciwgbGFuZSkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG1hcmtSZXRyeUxhbmVJbXBsKGZpYmVyLCByZXRyeUxhbmUpIHsKICAgICAgICBmaWJlciA9IGZpYmVyLm1lbW9pemVkU3RhdGU7CiAgICAgICAgaWYgKG51bGwgIT09IGZpYmVyICYmIG51bGwgIT09IGZpYmVyLmRlaHlkcmF0ZWQpIHsKICAgICAgICAgIHZhciBhID0gZmliZXIucmV0cnlMYW5lOwogICAgICAgICAgZmliZXIucmV0cnlMYW5lID0gMCAhPT0gYSAmJiBhIDwgcmV0cnlMYW5lID8gYSA6IHJldHJ5TGFuZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbWFya1JldHJ5TGFuZUlmTm90SHlkcmF0ZWQoZmliZXIsIHJldHJ5TGFuZSkgewogICAgICAgIG1hcmtSZXRyeUxhbmVJbXBsKGZpYmVyLCByZXRyeUxhbmUpOwogICAgICAgIChmaWJlciA9IGZpYmVyLmFsdGVybmF0ZSkgJiYgbWFya1JldHJ5TGFuZUltcGwoZmliZXIsIHJldHJ5TGFuZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24oZmliZXIpIHsKICAgICAgICBpZiAoMTMgPT09IGZpYmVyLnRhZyB8fCAzMSA9PT0gZmliZXIudGFnKSB7CiAgICAgICAgICB2YXIgcm9vdDIgPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIDY3MTA4ODY0KTsKICAgICAgICAgIG51bGwgIT09IHJvb3QyICYmIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290MiwgZmliZXIsIDY3MTA4ODY0KTsKICAgICAgICAgIG1hcmtSZXRyeUxhbmVJZk5vdEh5ZHJhdGVkKGZpYmVyLCA2NzEwODg2NCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGF0dGVtcHRIeWRyYXRpb25BdEN1cnJlbnRQcmlvcml0eShmaWJlcikgewogICAgICAgIGlmICgxMyA9PT0gZmliZXIudGFnIHx8IDMxID09PSBmaWJlci50YWcpIHsKICAgICAgICAgIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpOwogICAgICAgICAgbGFuZSA9IGdldEJ1bXBlZExhbmVGb3JIeWRyYXRpb25CeUxhbmUobGFuZSk7CiAgICAgICAgICB2YXIgcm9vdDIgPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIGxhbmUpOwogICAgICAgICAgbnVsbCAhPT0gcm9vdDIgJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QyLCBmaWJlciwgbGFuZSk7CiAgICAgICAgICBtYXJrUmV0cnlMYW5lSWZOb3RIeWRyYXRlZChmaWJlciwgbGFuZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlckZvckRldlRvb2xzKCkgewogICAgICAgIHJldHVybiBjdXJyZW50OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRpc3BhdGNoRGlzY3JldGVFdmVudChkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGNvbnRhaW5lciwgbmF0aXZlRXZlbnQpIHsKICAgICAgICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdFNoYXJlZEludGVybmFscy5UOwogICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBudWxsOwogICAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucDsKICAgICAgICB0cnkgewogICAgICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IERpc2NyZXRlRXZlbnRQcmlvcml0eSwgZGlzcGF0Y2hFdmVudChkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGNvbnRhaW5lciwgbmF0aXZlRXZlbnQpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gcHJldmlvdXNQcmlvcml0eSwgUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IHByZXZUcmFuc2l0aW9uOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBkaXNwYXRjaENvbnRpbnVvdXNFdmVudChkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGNvbnRhaW5lciwgbmF0aXZlRXZlbnQpIHsKICAgICAgICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdFNoYXJlZEludGVybmFscy5UOwogICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBudWxsOwogICAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucDsKICAgICAgICB0cnkgewogICAgICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IENvbnRpbnVvdXNFdmVudFByaW9yaXR5LCBkaXNwYXRjaEV2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgY29udGFpbmVyLCBuYXRpdmVFdmVudCk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBwcmV2aW91c1ByaW9yaXR5LCBSZWFjdFNoYXJlZEludGVybmFscy5UID0gcHJldlRyYW5zaXRpb247CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnQoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG5hdGl2ZUV2ZW50KSB7CiAgICAgICAgaWYgKF9lbmFibGVkKSB7CiAgICAgICAgICB2YXIgYmxvY2tlZE9uID0gZmluZEluc3RhbmNlQmxvY2tpbmdFdmVudChuYXRpdmVFdmVudCk7CiAgICAgICAgICBpZiAobnVsbCA9PT0gYmxvY2tlZE9uKQogICAgICAgICAgICBkaXNwYXRjaEV2ZW50Rm9yUGx1Z2luRXZlbnRTeXN0ZW0oCiAgICAgICAgICAgICAgZG9tRXZlbnROYW1lLAogICAgICAgICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsCiAgICAgICAgICAgICAgbmF0aXZlRXZlbnQsCiAgICAgICAgICAgICAgcmV0dXJuX3RhcmdldEluc3QsCiAgICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyCiAgICAgICAgICAgICksIGNsZWFySWZDb250aW51b3VzRXZlbnQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCk7CiAgICAgICAgICBlbHNlIGlmIChxdWV1ZUlmQ29udGludW91c0V2ZW50KAogICAgICAgICAgICBibG9ja2VkT24sCiAgICAgICAgICAgIGRvbUV2ZW50TmFtZSwKICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncywKICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyLAogICAgICAgICAgICBuYXRpdmVFdmVudAogICAgICAgICAgKSkKICAgICAgICAgICAgbmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICBlbHNlIGlmIChjbGVhcklmQ29udGludW91c0V2ZW50KGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpLCBldmVudFN5c3RlbUZsYWdzICYgNCAmJiAtMSA8IGRpc2NyZXRlUmVwbGF5YWJsZUV2ZW50cy5pbmRleE9mKGRvbUV2ZW50TmFtZSkpIHsKICAgICAgICAgICAgZm9yICg7IG51bGwgIT09IGJsb2NrZWRPbjsgKSB7CiAgICAgICAgICAgICAgdmFyIGZpYmVyID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShibG9ja2VkT24pOwogICAgICAgICAgICAgIGlmIChudWxsICE9PSBmaWJlcikKICAgICAgICAgICAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICBmaWJlciA9IGZpYmVyLnN0YXRlTm9kZTsKICAgICAgICAgICAgICAgICAgICBpZiAoZmliZXIuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIGxhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMoZmliZXIucGVuZGluZ0xhbmVzKTsKICAgICAgICAgICAgICAgICAgICAgIGlmICgwICE9PSBsYW5lcykgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcm9vdDIgPSBmaWJlcjsKICAgICAgICAgICAgICAgICAgICAgICAgcm9vdDIucGVuZGluZ0xhbmVzIHw9IDI7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAocm9vdDIuZW50YW5nbGVkTGFuZXMgfD0gMjsgbGFuZXM7ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYW5lID0gMSA8PCAzMSAtIGNsejMyKGxhbmVzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICByb290Mi5lbnRhbmdsZW1lbnRzWzFdIHw9IGxhbmU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZXMgJj0gfmxhbmU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKGZpYmVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT0gTm9Db250ZXh0ICYmICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lID0gbm93JDEoKSArIFJFTkRFUl9USU1FT1VUX01TLCBmbHVzaFN5bmNXb3JrQWNyb3NzUm9vdHNfaW1wbCgwLCBmYWxzZSkpOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSAzMToKICAgICAgICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICAgICAgICByb290MiA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgMiksIG51bGwgIT09IHJvb3QyICYmIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290MiwgZmliZXIsIDIpLCBmbHVzaFN5bmNXb3JrJDEoKSwgbWFya1JldHJ5TGFuZUlmTm90SHlkcmF0ZWQoZmliZXIsIDIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZpYmVyID0gZmluZEluc3RhbmNlQmxvY2tpbmdFdmVudChuYXRpdmVFdmVudCk7CiAgICAgICAgICAgICAgbnVsbCA9PT0gZmliZXIgJiYgZGlzcGF0Y2hFdmVudEZvclBsdWdpbkV2ZW50U3lzdGVtKAogICAgICAgICAgICAgICAgZG9tRXZlbnROYW1lLAogICAgICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncywKICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LAogICAgICAgICAgICAgICAgcmV0dXJuX3RhcmdldEluc3QsCiAgICAgICAgICAgICAgICB0YXJnZXRDb250YWluZXIKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGlmIChmaWJlciA9PT0gYmxvY2tlZE9uKSBicmVhazsKICAgICAgICAgICAgICBibG9ja2VkT24gPSBmaWJlcjsKICAgICAgICAgICAgfQogICAgICAgICAgICBudWxsICE9PSBibG9ja2VkT24gJiYgbmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgZGlzcGF0Y2hFdmVudEZvclBsdWdpbkV2ZW50U3lzdGVtKAogICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSwKICAgICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLAogICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LAogICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGZpbmRJbnN0YW5jZUJsb2NraW5nRXZlbnQobmF0aXZlRXZlbnQpIHsKICAgICAgICBuYXRpdmVFdmVudCA9IGdldEV2ZW50VGFyZ2V0KG5hdGl2ZUV2ZW50KTsKICAgICAgICByZXR1cm4gZmluZEluc3RhbmNlQmxvY2tpbmdUYXJnZXQobmF0aXZlRXZlbnQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGZpbmRJbnN0YW5jZUJsb2NraW5nVGFyZ2V0KHRhcmdldE5vZGUpIHsKICAgICAgICByZXR1cm5fdGFyZ2V0SW5zdCA9IG51bGw7CiAgICAgICAgdGFyZ2V0Tm9kZSA9IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKHRhcmdldE5vZGUpOwogICAgICAgIGlmIChudWxsICE9PSB0YXJnZXROb2RlKSB7CiAgICAgICAgICB2YXIgbmVhcmVzdE1vdW50ZWQgPSBnZXROZWFyZXN0TW91bnRlZEZpYmVyKHRhcmdldE5vZGUpOwogICAgICAgICAgaWYgKG51bGwgPT09IG5lYXJlc3RNb3VudGVkKSB0YXJnZXROb2RlID0gbnVsbDsKICAgICAgICAgIGVsc2UgewogICAgICAgICAgICB2YXIgdGFnID0gbmVhcmVzdE1vdW50ZWQudGFnOwogICAgICAgICAgICBpZiAoMTMgPT09IHRhZykgewogICAgICAgICAgICAgIHRhcmdldE5vZGUgPSBnZXRTdXNwZW5zZUluc3RhbmNlRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKTsKICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gdGFyZ2V0Tm9kZSkgcmV0dXJuIHRhcmdldE5vZGU7CiAgICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IG51bGw7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoMzEgPT09IHRhZykgewogICAgICAgICAgICAgIHRhcmdldE5vZGUgPSBnZXRBY3Rpdml0eUluc3RhbmNlRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKTsKICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gdGFyZ2V0Tm9kZSkgcmV0dXJuIHRhcmdldE5vZGU7CiAgICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IG51bGw7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoMyA9PT0gdGFnKSB7CiAgICAgICAgICAgICAgaWYgKG5lYXJlc3RNb3VudGVkLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKQogICAgICAgICAgICAgICAgcmV0dXJuIDMgPT09IG5lYXJlc3RNb3VudGVkLnRhZyA/IG5lYXJlc3RNb3VudGVkLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIDogbnVsbDsKICAgICAgICAgICAgICB0YXJnZXROb2RlID0gbnVsbDsKICAgICAgICAgICAgfSBlbHNlIG5lYXJlc3RNb3VudGVkICE9PSB0YXJnZXROb2RlICYmICh0YXJnZXROb2RlID0gbnVsbCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybl90YXJnZXRJbnN0ID0gdGFyZ2V0Tm9kZTsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRFdmVudFByaW9yaXR5KGRvbUV2ZW50TmFtZSkgewogICAgICAgIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7CiAgICAgICAgICBjYXNlICJiZWZvcmV0b2dnbGUiOgogICAgICAgICAgY2FzZSAiY2FuY2VsIjoKICAgICAgICAgIGNhc2UgImNsaWNrIjoKICAgICAgICAgIGNhc2UgImNsb3NlIjoKICAgICAgICAgIGNhc2UgImNvbnRleHRtZW51IjoKICAgICAgICAgIGNhc2UgImNvcHkiOgogICAgICAgICAgY2FzZSAiY3V0IjoKICAgICAgICAgIGNhc2UgImF1eGNsaWNrIjoKICAgICAgICAgIGNhc2UgImRibGNsaWNrIjoKICAgICAgICAgIGNhc2UgImRyYWdlbmQiOgogICAgICAgICAgY2FzZSAiZHJhZ3N0YXJ0IjoKICAgICAgICAgIGNhc2UgImRyb3AiOgogICAgICAgICAgY2FzZSAiZm9jdXNpbiI6CiAgICAgICAgICBjYXNlICJmb2N1c291dCI6CiAgICAgICAgICBjYXNlICJpbnB1dCI6CiAgICAgICAgICBjYXNlICJpbnZhbGlkIjoKICAgICAgICAgIGNhc2UgImtleWRvd24iOgogICAgICAgICAgY2FzZSAia2V5cHJlc3MiOgogICAgICAgICAgY2FzZSAia2V5dXAiOgogICAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKICAgICAgICAgIGNhc2UgIm1vdXNldXAiOgogICAgICAgICAgY2FzZSAicGFzdGUiOgogICAgICAgICAgY2FzZSAicGF1c2UiOgogICAgICAgICAgY2FzZSAicGxheSI6CiAgICAgICAgICBjYXNlICJwb2ludGVyY2FuY2VsIjoKICAgICAgICAgIGNhc2UgInBvaW50ZXJkb3duIjoKICAgICAgICAgIGNhc2UgInBvaW50ZXJ1cCI6CiAgICAgICAgICBjYXNlICJyYXRlY2hhbmdlIjoKICAgICAgICAgIGNhc2UgInJlc2V0IjoKICAgICAgICAgIGNhc2UgInJlc2l6ZSI6CiAgICAgICAgICBjYXNlICJzZWVrZWQiOgogICAgICAgICAgY2FzZSAic3VibWl0IjoKICAgICAgICAgIGNhc2UgInRvZ2dsZSI6CiAgICAgICAgICBjYXNlICJ0b3VjaGNhbmNlbCI6CiAgICAgICAgICBjYXNlICJ0b3VjaGVuZCI6CiAgICAgICAgICBjYXNlICJ0b3VjaHN0YXJ0IjoKICAgICAgICAgIGNhc2UgInZvbHVtZWNoYW5nZSI6CiAgICAgICAgICBjYXNlICJjaGFuZ2UiOgogICAgICAgICAgY2FzZSAic2VsZWN0aW9uY2hhbmdlIjoKICAgICAgICAgIGNhc2UgInRleHRJbnB1dCI6CiAgICAgICAgICBjYXNlICJjb21wb3NpdGlvbnN0YXJ0IjoKICAgICAgICAgIGNhc2UgImNvbXBvc2l0aW9uZW5kIjoKICAgICAgICAgIGNhc2UgImNvbXBvc2l0aW9udXBkYXRlIjoKICAgICAgICAgIGNhc2UgImJlZm9yZWJsdXIiOgogICAgICAgICAgY2FzZSAiYWZ0ZXJibHVyIjoKICAgICAgICAgIGNhc2UgImJlZm9yZWlucHV0IjoKICAgICAgICAgIGNhc2UgImJsdXIiOgogICAgICAgICAgY2FzZSAiZnVsbHNjcmVlbmNoYW5nZSI6CiAgICAgICAgICBjYXNlICJmb2N1cyI6CiAgICAgICAgICBjYXNlICJoYXNoY2hhbmdlIjoKICAgICAgICAgIGNhc2UgInBvcHN0YXRlIjoKICAgICAgICAgIGNhc2UgInNlbGVjdCI6CiAgICAgICAgICBjYXNlICJzZWxlY3RzdGFydCI6CiAgICAgICAgICAgIHJldHVybiBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk7CiAgICAgICAgICBjYXNlICJkcmFnIjoKICAgICAgICAgIGNhc2UgImRyYWdlbnRlciI6CiAgICAgICAgICBjYXNlICJkcmFnZXhpdCI6CiAgICAgICAgICBjYXNlICJkcmFnbGVhdmUiOgogICAgICAgICAgY2FzZSAiZHJhZ292ZXIiOgogICAgICAgICAgY2FzZSAibW91c2Vtb3ZlIjoKICAgICAgICAgIGNhc2UgIm1vdXNlb3V0IjoKICAgICAgICAgIGNhc2UgIm1vdXNlb3ZlciI6CiAgICAgICAgICBjYXNlICJwb2ludGVybW92ZSI6CiAgICAgICAgICBjYXNlICJwb2ludGVyb3V0IjoKICAgICAgICAgIGNhc2UgInBvaW50ZXJvdmVyIjoKICAgICAgICAgIGNhc2UgInNjcm9sbCI6CiAgICAgICAgICBjYXNlICJ0b3VjaG1vdmUiOgogICAgICAgICAgY2FzZSAid2hlZWwiOgogICAgICAgICAgY2FzZSAibW91c2VlbnRlciI6CiAgICAgICAgICBjYXNlICJtb3VzZWxlYXZlIjoKICAgICAgICAgIGNhc2UgInBvaW50ZXJlbnRlciI6CiAgICAgICAgICBjYXNlICJwb2ludGVybGVhdmUiOgogICAgICAgICAgICByZXR1cm4gQ29udGludW91c0V2ZW50UHJpb3JpdHk7CiAgICAgICAgICBjYXNlICJtZXNzYWdlIjoKICAgICAgICAgICAgc3dpdGNoIChnZXRDdXJyZW50UHJpb3JpdHlMZXZlbCgpKSB7CiAgICAgICAgICAgICAgY2FzZSBJbW1lZGlhdGVQcmlvcml0eToKICAgICAgICAgICAgICAgIHJldHVybiBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk7CiAgICAgICAgICAgICAgY2FzZSBVc2VyQmxvY2tpbmdQcmlvcml0eToKICAgICAgICAgICAgICAgIHJldHVybiBDb250aW51b3VzRXZlbnRQcmlvcml0eTsKICAgICAgICAgICAgICBjYXNlIE5vcm1hbFByaW9yaXR5JDE6CiAgICAgICAgICAgICAgY2FzZSBMb3dQcmlvcml0eToKICAgICAgICAgICAgICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTsKICAgICAgICAgICAgICBjYXNlIElkbGVQcmlvcml0eToKICAgICAgICAgICAgICAgIHJldHVybiBJZGxlRXZlbnRQcmlvcml0eTsKICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIERlZmF1bHRFdmVudFByaW9yaXR5OwogICAgICAgICAgICB9CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gRGVmYXVsdEV2ZW50UHJpb3JpdHk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNsZWFySWZDb250aW51b3VzRXZlbnQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkgewogICAgICAgIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7CiAgICAgICAgICBjYXNlICJmb2N1c2luIjoKICAgICAgICAgIGNhc2UgImZvY3Vzb3V0IjoKICAgICAgICAgICAgcXVldWVkRm9jdXMgPSBudWxsOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImRyYWdlbnRlciI6CiAgICAgICAgICBjYXNlICJkcmFnbGVhdmUiOgogICAgICAgICAgICBxdWV1ZWREcmFnID0gbnVsbDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJtb3VzZW92ZXIiOgogICAgICAgICAgY2FzZSAibW91c2VvdXQiOgogICAgICAgICAgICBxdWV1ZWRNb3VzZSA9IG51bGw7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAicG9pbnRlcm92ZXIiOgogICAgICAgICAgY2FzZSAicG9pbnRlcm91dCI6CiAgICAgICAgICAgIHF1ZXVlZFBvaW50ZXJzLmRlbGV0ZShuYXRpdmVFdmVudC5wb2ludGVySWQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImdvdHBvaW50ZXJjYXB0dXJlIjoKICAgICAgICAgIGNhc2UgImxvc3Rwb2ludGVyY2FwdHVyZSI6CiAgICAgICAgICAgIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5kZWxldGUobmF0aXZlRXZlbnQucG9pbnRlcklkKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChleGlzdGluZ1F1ZXVlZEV2ZW50LCBibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkgewogICAgICAgIGlmIChudWxsID09PSBleGlzdGluZ1F1ZXVlZEV2ZW50IHx8IGV4aXN0aW5nUXVldWVkRXZlbnQubmF0aXZlRXZlbnQgIT09IG5hdGl2ZUV2ZW50KQogICAgICAgICAgcmV0dXJuIGV4aXN0aW5nUXVldWVkRXZlbnQgPSB7CiAgICAgICAgICAgIGJsb2NrZWRPbiwKICAgICAgICAgICAgZG9tRXZlbnROYW1lLAogICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLAogICAgICAgICAgICBuYXRpdmVFdmVudCwKICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyczogW3RhcmdldENvbnRhaW5lcl0KICAgICAgICAgIH0sIG51bGwgIT09IGJsb2NrZWRPbiAmJiAoYmxvY2tlZE9uID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShibG9ja2VkT24pLCBudWxsICE9PSBibG9ja2VkT24gJiYgYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24oYmxvY2tlZE9uKSksIGV4aXN0aW5nUXVldWVkRXZlbnQ7CiAgICAgICAgZXhpc3RpbmdRdWV1ZWRFdmVudC5ldmVudFN5c3RlbUZsYWdzIHw9IGV2ZW50U3lzdGVtRmxhZ3M7CiAgICAgICAgYmxvY2tlZE9uID0gZXhpc3RpbmdRdWV1ZWRFdmVudC50YXJnZXRDb250YWluZXJzOwogICAgICAgIG51bGwgIT09IHRhcmdldENvbnRhaW5lciAmJiAtMSA9PT0gYmxvY2tlZE9uLmluZGV4T2YodGFyZ2V0Q29udGFpbmVyKSAmJiBibG9ja2VkT24ucHVzaCh0YXJnZXRDb250YWluZXIpOwogICAgICAgIHJldHVybiBleGlzdGluZ1F1ZXVlZEV2ZW50OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHF1ZXVlSWZDb250aW51b3VzRXZlbnQoYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpIHsKICAgICAgICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkgewogICAgICAgICAgY2FzZSAiZm9jdXNpbiI6CiAgICAgICAgICAgIHJldHVybiBxdWV1ZWRGb2N1cyA9IGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoCiAgICAgICAgICAgICAgcXVldWVkRm9jdXMsCiAgICAgICAgICAgICAgYmxvY2tlZE9uLAogICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSwKICAgICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLAogICAgICAgICAgICAgIHRhcmdldENvbnRhaW5lciwKICAgICAgICAgICAgICBuYXRpdmVFdmVudAogICAgICAgICAgICApLCB0cnVlOwogICAgICAgICAgY2FzZSAiZHJhZ2VudGVyIjoKICAgICAgICAgICAgcmV0dXJuIHF1ZXVlZERyYWcgPSBhY2N1bXVsYXRlT3JDcmVhdGVDb250aW51b3VzUXVldWVkUmVwbGF5YWJsZUV2ZW50KAogICAgICAgICAgICAgIHF1ZXVlZERyYWcsCiAgICAgICAgICAgICAgYmxvY2tlZE9uLAogICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSwKICAgICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLAogICAgICAgICAgICAgIHRhcmdldENvbnRhaW5lciwKICAgICAgICAgICAgICBuYXRpdmVFdmVudAogICAgICAgICAgICApLCB0cnVlOwogICAgICAgICAgY2FzZSAibW91c2VvdmVyIjoKICAgICAgICAgICAgcmV0dXJuIHF1ZXVlZE1vdXNlID0gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudCgKICAgICAgICAgICAgICBxdWV1ZWRNb3VzZSwKICAgICAgICAgICAgICBibG9ja2VkT24sCiAgICAgICAgICAgICAgZG9tRXZlbnROYW1lLAogICAgICAgICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsCiAgICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyLAogICAgICAgICAgICAgIG5hdGl2ZUV2ZW50CiAgICAgICAgICAgICksIHRydWU7CiAgICAgICAgICBjYXNlICJwb2ludGVyb3ZlciI6CiAgICAgICAgICAgIHZhciBwb2ludGVySWQgPSBuYXRpdmVFdmVudC5wb2ludGVySWQ7CiAgICAgICAgICAgIHF1ZXVlZFBvaW50ZXJzLnNldCgKICAgICAgICAgICAgICBwb2ludGVySWQsCiAgICAgICAgICAgICAgYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudCgKICAgICAgICAgICAgICAgIHF1ZXVlZFBvaW50ZXJzLmdldChwb2ludGVySWQpIHx8IG51bGwsCiAgICAgICAgICAgICAgICBibG9ja2VkT24sCiAgICAgICAgICAgICAgICBkb21FdmVudE5hbWUsCiAgICAgICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLAogICAgICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyLAogICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQKICAgICAgICAgICAgICApCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgY2FzZSAiZ290cG9pbnRlcmNhcHR1cmUiOgogICAgICAgICAgICByZXR1cm4gcG9pbnRlcklkID0gbmF0aXZlRXZlbnQucG9pbnRlcklkLCBxdWV1ZWRQb2ludGVyQ2FwdHVyZXMuc2V0KAogICAgICAgICAgICAgIHBvaW50ZXJJZCwKICAgICAgICAgICAgICBhY2N1bXVsYXRlT3JDcmVhdGVDb250aW51b3VzUXVldWVkUmVwbGF5YWJsZUV2ZW50KAogICAgICAgICAgICAgICAgcXVldWVkUG9pbnRlckNhcHR1cmVzLmdldChwb2ludGVySWQpIHx8IG51bGwsCiAgICAgICAgICAgICAgICBibG9ja2VkT24sCiAgICAgICAgICAgICAgICBkb21FdmVudE5hbWUsCiAgICAgICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLAogICAgICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyLAogICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQKICAgICAgICAgICAgICApCiAgICAgICAgICAgICksIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhdHRlbXB0RXhwbGljaXRIeWRyYXRpb25UYXJnZXQocXVldWVkVGFyZ2V0KSB7CiAgICAgICAgdmFyIHRhcmdldEluc3QgPSBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShxdWV1ZWRUYXJnZXQudGFyZ2V0KTsKICAgICAgICBpZiAobnVsbCAhPT0gdGFyZ2V0SW5zdCkgewogICAgICAgICAgdmFyIG5lYXJlc3RNb3VudGVkID0gZ2V0TmVhcmVzdE1vdW50ZWRGaWJlcih0YXJnZXRJbnN0KTsKICAgICAgICAgIGlmIChudWxsICE9PSBuZWFyZXN0TW91bnRlZCkgewogICAgICAgICAgICBpZiAodGFyZ2V0SW5zdCA9IG5lYXJlc3RNb3VudGVkLnRhZywgMTMgPT09IHRhcmdldEluc3QpIHsKICAgICAgICAgICAgICBpZiAodGFyZ2V0SW5zdCA9IGdldFN1c3BlbnNlSW5zdGFuY2VGcm9tRmliZXIobmVhcmVzdE1vdW50ZWQpLCBudWxsICE9PSB0YXJnZXRJbnN0KSB7CiAgICAgICAgICAgICAgICBxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID0gdGFyZ2V0SW5zdDsKICAgICAgICAgICAgICAgIHJ1bldpdGhQcmlvcml0eShxdWV1ZWRUYXJnZXQucHJpb3JpdHksIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICBhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkobmVhcmVzdE1vdW50ZWQpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKDMxID09PSB0YXJnZXRJbnN0KSB7CiAgICAgICAgICAgICAgaWYgKHRhcmdldEluc3QgPSBnZXRBY3Rpdml0eUluc3RhbmNlRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKSwgbnVsbCAhPT0gdGFyZ2V0SW5zdCkgewogICAgICAgICAgICAgICAgcXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9IHRhcmdldEluc3Q7CiAgICAgICAgICAgICAgICBydW5XaXRoUHJpb3JpdHkocXVldWVkVGFyZ2V0LnByaW9yaXR5LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgYXR0ZW1wdEh5ZHJhdGlvbkF0Q3VycmVudFByaW9yaXR5KG5lYXJlc3RNb3VudGVkKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmICgzID09PSB0YXJnZXRJbnN0ICYmIG5lYXJlc3RNb3VudGVkLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKSB7CiAgICAgICAgICAgICAgcXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9IDMgPT09IG5lYXJlc3RNb3VudGVkLnRhZyA/IG5lYXJlc3RNb3VudGVkLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIDogbnVsbDsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9IG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWRFdmVudCkgewogICAgICAgIGlmIChudWxsICE9PSBxdWV1ZWRFdmVudC5ibG9ja2VkT24pIHJldHVybiBmYWxzZTsKICAgICAgICBmb3IgKHZhciB0YXJnZXRDb250YWluZXJzID0gcXVldWVkRXZlbnQudGFyZ2V0Q29udGFpbmVyczsgMCA8IHRhcmdldENvbnRhaW5lcnMubGVuZ3RoOyApIHsKICAgICAgICAgIHZhciBuZXh0QmxvY2tlZE9uID0gZmluZEluc3RhbmNlQmxvY2tpbmdFdmVudChxdWV1ZWRFdmVudC5uYXRpdmVFdmVudCk7CiAgICAgICAgICBpZiAobnVsbCA9PT0gbmV4dEJsb2NrZWRPbikgewogICAgICAgICAgICBuZXh0QmxvY2tlZE9uID0gcXVldWVkRXZlbnQubmF0aXZlRXZlbnQ7CiAgICAgICAgICAgIHZhciBuYXRpdmVFdmVudENsb25lID0gbmV3IG5leHRCbG9ja2VkT24uY29uc3RydWN0b3IoCiAgICAgICAgICAgICAgbmV4dEJsb2NrZWRPbi50eXBlLAogICAgICAgICAgICAgIG5leHRCbG9ja2VkT24KICAgICAgICAgICAgKSwgZXZlbnQgPSBuYXRpdmVFdmVudENsb25lOwogICAgICAgICAgICBudWxsICE9PSBjdXJyZW50UmVwbGF5aW5nRXZlbnQgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAiRXhwZWN0ZWQgY3VycmVudGx5IHJlcGxheWluZyBldmVudCB0byBiZSBudWxsLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgY3VycmVudFJlcGxheWluZ0V2ZW50ID0gZXZlbnQ7CiAgICAgICAgICAgIG5leHRCbG9ja2VkT24udGFyZ2V0LmRpc3BhdGNoRXZlbnQobmF0aXZlRXZlbnRDbG9uZSk7CiAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnRSZXBsYXlpbmdFdmVudCAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAgICJFeHBlY3RlZCBjdXJyZW50bHkgcmVwbGF5aW5nIGV2ZW50IHRvIG5vdCBiZSBudWxsLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgY3VycmVudFJlcGxheWluZ0V2ZW50ID0gbnVsbDsKICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICByZXR1cm4gdGFyZ2V0Q29udGFpbmVycyA9IGdldEluc3RhbmNlRnJvbU5vZGUobmV4dEJsb2NrZWRPbiksIG51bGwgIT09IHRhcmdldENvbnRhaW5lcnMgJiYgYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24odGFyZ2V0Q29udGFpbmVycyksIHF1ZXVlZEV2ZW50LmJsb2NrZWRPbiA9IG5leHRCbG9ja2VkT24sIGZhbHNlOwogICAgICAgICAgdGFyZ2V0Q29udGFpbmVycy5zaGlmdCgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50SW5NYXAocXVldWVkRXZlbnQsIGtleSwgbWFwKSB7CiAgICAgICAgYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWRFdmVudCkgJiYgbWFwLmRlbGV0ZShrZXkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlcGxheVVuYmxvY2tlZEV2ZW50cygpIHsKICAgICAgICBoYXNTY2hlZHVsZWRSZXBsYXlBdHRlbXB0ID0gZmFsc2U7CiAgICAgICAgbnVsbCAhPT0gcXVldWVkRm9jdXMgJiYgYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWRGb2N1cykgJiYgKHF1ZXVlZEZvY3VzID0gbnVsbCk7CiAgICAgICAgbnVsbCAhPT0gcXVldWVkRHJhZyAmJiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZERyYWcpICYmIChxdWV1ZWREcmFnID0gbnVsbCk7CiAgICAgICAgbnVsbCAhPT0gcXVldWVkTW91c2UgJiYgYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWRNb3VzZSkgJiYgKHF1ZXVlZE1vdXNlID0gbnVsbCk7CiAgICAgICAgcXVldWVkUG9pbnRlcnMuZm9yRWFjaChhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50SW5NYXApOwogICAgICAgIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5mb3JFYWNoKGF0dGVtcHRSZXBsYXlDb250aW51b3VzUXVldWVkRXZlbnRJbk1hcCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZEV2ZW50LCB1bmJsb2NrZWQpIHsKICAgICAgICBxdWV1ZWRFdmVudC5ibG9ja2VkT24gPT09IHVuYmxvY2tlZCAmJiAocXVldWVkRXZlbnQuYmxvY2tlZE9uID0gbnVsbCwgaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCB8fCAoaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCA9IHRydWUsIFNjaGVkdWxlci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKAogICAgICAgICAgU2NoZWR1bGVyLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LAogICAgICAgICAgcmVwbGF5VW5ibG9ja2VkRXZlbnRzCiAgICAgICAgKSkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNjaGVkdWxlUmVwbGF5UXVldWVJZk5lZWRlZChmb3JtUmVwbGF5aW5nUXVldWUpIHsKICAgICAgICBsYXN0U2NoZWR1bGVkUmVwbGF5UXVldWUgIT09IGZvcm1SZXBsYXlpbmdRdWV1ZSAmJiAobGFzdFNjaGVkdWxlZFJlcGxheVF1ZXVlID0gZm9ybVJlcGxheWluZ1F1ZXVlLCBTY2hlZHVsZXIudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaygKICAgICAgICAgIFNjaGVkdWxlci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSwKICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBsYXN0U2NoZWR1bGVkUmVwbGF5UXVldWUgPT09IGZvcm1SZXBsYXlpbmdRdWV1ZSAmJiAobGFzdFNjaGVkdWxlZFJlcGxheVF1ZXVlID0gbnVsbCk7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZm9ybVJlcGxheWluZ1F1ZXVlLmxlbmd0aDsgaSArPSAzKSB7CiAgICAgICAgICAgICAgdmFyIGZvcm0gPSBmb3JtUmVwbGF5aW5nUXVldWVbaV0sIHN1Ym1pdHRlck9yQWN0aW9uID0gZm9ybVJlcGxheWluZ1F1ZXVlW2kgKyAxXSwgZm9ybURhdGEgPSBmb3JtUmVwbGF5aW5nUXVldWVbaSArIDJdOwogICAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iICE9PSB0eXBlb2Ygc3VibWl0dGVyT3JBY3Rpb24pCiAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gZmluZEluc3RhbmNlQmxvY2tpbmdUYXJnZXQoc3VibWl0dGVyT3JBY3Rpb24gfHwgZm9ybSkpCiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgZWxzZSBicmVhazsKICAgICAgICAgICAgICB2YXIgZm9ybUluc3QgPSBnZXRJbnN0YW5jZUZyb21Ob2RlKGZvcm0pOwogICAgICAgICAgICAgIG51bGwgIT09IGZvcm1JbnN0ICYmIChmb3JtUmVwbGF5aW5nUXVldWUuc3BsaWNlKGksIDMpLCBpIC09IDMsIGZvcm0gPSB7CiAgICAgICAgICAgICAgICBwZW5kaW5nOiB0cnVlLAogICAgICAgICAgICAgICAgZGF0YTogZm9ybURhdGEsCiAgICAgICAgICAgICAgICBtZXRob2Q6IGZvcm0ubWV0aG9kLAogICAgICAgICAgICAgICAgYWN0aW9uOiBzdWJtaXR0ZXJPckFjdGlvbgogICAgICAgICAgICAgIH0sIE9iamVjdC5mcmVlemUoZm9ybSksIHN0YXJ0SG9zdFRyYW5zaXRpb24oCiAgICAgICAgICAgICAgICBmb3JtSW5zdCwKICAgICAgICAgICAgICAgIGZvcm0sCiAgICAgICAgICAgICAgICBzdWJtaXR0ZXJPckFjdGlvbiwKICAgICAgICAgICAgICAgIGZvcm1EYXRhCiAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICApKTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZXRyeUlmQmxvY2tlZE9uKHVuYmxvY2tlZCkgewogICAgICAgIGZ1bmN0aW9uIHVuYmxvY2socXVldWVkRXZlbnQpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkRXZlbnQsIHVuYmxvY2tlZCk7CiAgICAgICAgfQogICAgICAgIG51bGwgIT09IHF1ZXVlZEZvY3VzICYmIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWRGb2N1cywgdW5ibG9ja2VkKTsKICAgICAgICBudWxsICE9PSBxdWV1ZWREcmFnICYmIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWREcmFnLCB1bmJsb2NrZWQpOwogICAgICAgIG51bGwgIT09IHF1ZXVlZE1vdXNlICYmIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWRNb3VzZSwgdW5ibG9ja2VkKTsKICAgICAgICBxdWV1ZWRQb2ludGVycy5mb3JFYWNoKHVuYmxvY2spOwogICAgICAgIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5mb3JFYWNoKHVuYmxvY2spOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgcXVldWVkVGFyZ2V0ID0gcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzW2ldOwogICAgICAgICAgcXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9PT0gdW5ibG9ja2VkICYmIChxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID0gbnVsbCk7CiAgICAgICAgfQogICAgICAgIGZvciAoOyAwIDwgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzLmxlbmd0aCAmJiAoaSA9IHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0c1swXSwgbnVsbCA9PT0gaS5ibG9ja2VkT24pOyApCiAgICAgICAgICBhdHRlbXB0RXhwbGljaXRIeWRyYXRpb25UYXJnZXQoaSksIG51bGwgPT09IGkuYmxvY2tlZE9uICYmIHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0cy5zaGlmdCgpOwogICAgICAgIGkgPSAodW5ibG9ja2VkLm93bmVyRG9jdW1lbnQgfHwgdW5ibG9ja2VkKS4kJHJlYWN0Rm9ybVJlcGxheTsKICAgICAgICBpZiAobnVsbCAhPSBpKQogICAgICAgICAgZm9yIChxdWV1ZWRUYXJnZXQgPSAwOyBxdWV1ZWRUYXJnZXQgPCBpLmxlbmd0aDsgcXVldWVkVGFyZ2V0ICs9IDMpIHsKICAgICAgICAgICAgdmFyIGZvcm0gPSBpW3F1ZXVlZFRhcmdldF0sIHN1Ym1pdHRlck9yQWN0aW9uID0gaVtxdWV1ZWRUYXJnZXQgKyAxXSwgZm9ybVByb3BzID0gZm9ybVtpbnRlcm5hbFByb3BzS2V5XSB8fCBudWxsOwogICAgICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHN1Ym1pdHRlck9yQWN0aW9uKQogICAgICAgICAgICAgIGZvcm1Qcm9wcyB8fCBzY2hlZHVsZVJlcGxheVF1ZXVlSWZOZWVkZWQoaSk7CiAgICAgICAgICAgIGVsc2UgaWYgKGZvcm1Qcm9wcykgewogICAgICAgICAgICAgIHZhciBhY3Rpb24gPSBudWxsOwogICAgICAgICAgICAgIGlmIChzdWJtaXR0ZXJPckFjdGlvbiAmJiBzdWJtaXR0ZXJPckFjdGlvbi5oYXNBdHRyaWJ1dGUoImZvcm1BY3Rpb24iKSkKICAgICAgICAgICAgICAgIGlmIChmb3JtID0gc3VibWl0dGVyT3JBY3Rpb24sIGZvcm1Qcm9wcyA9IHN1Ym1pdHRlck9yQWN0aW9uW2ludGVybmFsUHJvcHNLZXldIHx8IG51bGwpCiAgICAgICAgICAgICAgICAgIGFjdGlvbiA9IGZvcm1Qcm9wcy5mb3JtQWN0aW9uOwogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSBmaW5kSW5zdGFuY2VCbG9ja2luZ1RhcmdldChmb3JtKSkgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSBhY3Rpb24gPSBmb3JtUHJvcHMuYWN0aW9uOwogICAgICAgICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBhY3Rpb24gPyBpW3F1ZXVlZFRhcmdldCArIDFdID0gYWN0aW9uIDogKGkuc3BsaWNlKHF1ZXVlZFRhcmdldCwgMyksIHF1ZXVlZFRhcmdldCAtPSAzKTsKICAgICAgICAgICAgICBzY2hlZHVsZVJlcGxheVF1ZXVlSWZOZWVkZWQoaSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBkZWZhdWx0T25EZWZhdWx0VHJhbnNpdGlvbkluZGljYXRvcigpIHsKICAgICAgICBmdW5jdGlvbiBoYW5kbGVOYXZpZ2F0ZShldmVudCkgewogICAgICAgICAgZXZlbnQuY2FuSW50ZXJjZXB0ICYmICJyZWFjdC10cmFuc2l0aW9uIiA9PT0gZXZlbnQuaW5mbyAmJiBldmVudC5pbnRlcmNlcHQoewogICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHBlbmRpbmdSZXNvbHZlID0gcmVzb2x2ZTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZm9jdXNSZXNldDogIm1hbnVhbCIsCiAgICAgICAgICAgIHNjcm9sbDogIm1hbnVhbCIKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBoYW5kbGVOYXZpZ2F0ZUNvbXBsZXRlKCkgewogICAgICAgICAgbnVsbCAhPT0gcGVuZGluZ1Jlc29sdmUgJiYgKHBlbmRpbmdSZXNvbHZlKCksIHBlbmRpbmdSZXNvbHZlID0gbnVsbCk7CiAgICAgICAgICBpc0NhbmNlbGxlZCB8fCBzZXRUaW1lb3V0KHN0YXJ0RmFrZU5hdmlnYXRpb24sIDIwKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc3RhcnRGYWtlTmF2aWdhdGlvbigpIHsKICAgICAgICAgIGlmICghaXNDYW5jZWxsZWQgJiYgIW5hdmlnYXRpb24udHJhbnNpdGlvbikgewogICAgICAgICAgICB2YXIgY3VycmVudEVudHJ5ID0gbmF2aWdhdGlvbi5jdXJyZW50RW50cnk7CiAgICAgICAgICAgIGN1cnJlbnRFbnRyeSAmJiBudWxsICE9IGN1cnJlbnRFbnRyeS51cmwgJiYgbmF2aWdhdGlvbi5uYXZpZ2F0ZShjdXJyZW50RW50cnkudXJsLCB7CiAgICAgICAgICAgICAgc3RhdGU6IGN1cnJlbnRFbnRyeS5nZXRTdGF0ZSgpLAogICAgICAgICAgICAgIGluZm86ICJyZWFjdC10cmFuc2l0aW9uIiwKICAgICAgICAgICAgICBoaXN0b3J5OiAicmVwbGFjZSIKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIG5hdmlnYXRpb24pIHsKICAgICAgICAgIHZhciBpc0NhbmNlbGxlZCA9IGZhbHNlLCBwZW5kaW5nUmVzb2x2ZSA9IG51bGw7CiAgICAgICAgICBuYXZpZ2F0aW9uLmFkZEV2ZW50TGlzdGVuZXIoIm5hdmlnYXRlIiwgaGFuZGxlTmF2aWdhdGUpOwogICAgICAgICAgbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKCJuYXZpZ2F0ZXN1Y2Nlc3MiLCBoYW5kbGVOYXZpZ2F0ZUNvbXBsZXRlKTsKICAgICAgICAgIG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcigibmF2aWdhdGVlcnJvciIsIGhhbmRsZU5hdmlnYXRlQ29tcGxldGUpOwogICAgICAgICAgc2V0VGltZW91dChzdGFydEZha2VOYXZpZ2F0aW9uLCAxMDApOwogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpc0NhbmNlbGxlZCA9IHRydWU7CiAgICAgICAgICAgIG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibmF2aWdhdGUiLCBoYW5kbGVOYXZpZ2F0ZSk7CiAgICAgICAgICAgIG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigKICAgICAgICAgICAgICAibmF2aWdhdGVzdWNjZXNzIiwKICAgICAgICAgICAgICBoYW5kbGVOYXZpZ2F0ZUNvbXBsZXRlCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigKICAgICAgICAgICAgICAibmF2aWdhdGVlcnJvciIsCiAgICAgICAgICAgICAgaGFuZGxlTmF2aWdhdGVDb21wbGV0ZQogICAgICAgICAgICApOwogICAgICAgICAgICBudWxsICE9PSBwZW5kaW5nUmVzb2x2ZSAmJiAocGVuZGluZ1Jlc29sdmUoKSwgcGVuZGluZ1Jlc29sdmUgPSBudWxsKTsKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIFJlYWN0RE9NUm9vdChpbnRlcm5hbFJvb3QpIHsKICAgICAgICB0aGlzLl9pbnRlcm5hbFJvb3QgPSBpbnRlcm5hbFJvb3Q7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gUmVhY3RET01IeWRyYXRpb25Sb290KGludGVybmFsUm9vdCkgewogICAgICAgIHRoaXMuX2ludGVybmFsUm9vdCA9IGludGVybmFsUm9vdDsKICAgICAgfQogICAgICBmdW5jdGlvbiB3YXJuSWZSZWFjdERPTUNvbnRhaW5lckluREVWKGNvbnRhaW5lcikgewogICAgICAgIGNvbnRhaW5lcltpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSAmJiAoY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIgPyBjb25zb2xlLmVycm9yKAogICAgICAgICAgIllvdSBhcmUgY2FsbGluZyBSZWFjdERPTUNsaWVudC5jcmVhdGVSb290KCkgb24gYSBjb250YWluZXIgdGhhdCB3YXMgcHJldmlvdXNseSBwYXNzZWQgdG8gUmVhY3RET00ucmVuZGVyKCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4iCiAgICAgICAgKSA6IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiWW91IGFyZSBjYWxsaW5nIFJlYWN0RE9NQ2xpZW50LmNyZWF0ZVJvb3QoKSBvbiBhIGNvbnRhaW5lciB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gcGFzc2VkIHRvIGNyZWF0ZVJvb3QoKSBiZWZvcmUuIEluc3RlYWQsIGNhbGwgcm9vdC5yZW5kZXIoKSBvbiB0aGUgZXhpc3Rpbmcgcm9vdCBpbnN0ZWFkIGlmIHlvdSB3YW50IHRvIHVwZGF0ZSBpdC4iCiAgICAgICAgKSk7CiAgICAgIH0KICAgICAgInVuZGVmaW5lZCIgIT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQgJiYgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydChFcnJvcigpKTsKICAgICAgdmFyIFNjaGVkdWxlciA9IHJlcXVpcmVfc2NoZWR1bGVyKCksIFJlYWN0ID0gcmVxdWlyZV9yZWFjdCgpLCBSZWFjdERPTSA9IHJlcXVpcmVfcmVhY3RfZG9tKCksIGFzc2lnbiA9IE9iamVjdC5hc3NpZ24sIFJFQUNUX0xFR0FDWV9FTEVNRU5UX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLCBSRUFDVF9FTEVNRU5UX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnQiKSwgUkVBQ1RfUE9SVEFMX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSwgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLCBSRUFDVF9QUk9GSUxFUl9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QuY29uc3VtZXIiKSwgUkVBQ1RfQ09OVEVYVF9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSwgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLCBSRUFDVF9TVVNQRU5TRV9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZV9saXN0IiksIFJFQUNUX01FTU9fVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5tZW1vIiksIFJFQUNUX0xBWllfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5sYXp5Iik7CiAgICAgIC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5zY29wZSIpOwogICAgICB2YXIgUkVBQ1RfQUNUSVZJVFlfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5hY3Rpdml0eSIpOwogICAgICAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QubGVnYWN5X2hpZGRlbiIpOwogICAgICAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QudHJhY2luZ19tYXJrZXIiKTsKICAgICAgdmFyIFJFQUNUX01FTU9fQ0FDSEVfU0VOVElORUwgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbCIpOwogICAgICAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3Qudmlld190cmFuc2l0aW9uIik7CiAgICAgIHZhciBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3IsIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QuY2xpZW50LnJlZmVyZW5jZSIpLCBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0gUmVhY3QuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLCBSZWFjdERPTVNoYXJlZEludGVybmFscyA9IFJlYWN0RE9NLl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSwgTm90UGVuZGluZyA9IE9iamVjdC5mcmVlemUoewogICAgICAgIHBlbmRpbmc6IGZhbHNlLAogICAgICAgIGRhdGE6IG51bGwsCiAgICAgICAgbWV0aG9kOiBudWxsLAogICAgICAgIGFjdGlvbjogbnVsbAogICAgICB9KSwgdmFsdWVTdGFjayA9IFtdOwogICAgICB2YXIgZmliZXJTdGFjayA9IFtdOwogICAgICB2YXIgaW5kZXgkanNjb21wJDAgPSAtMSwgY29udGV4dFN0YWNrQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKG51bGwpLCBjb250ZXh0RmliZXJTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKSwgcm9vdEluc3RhbmNlU3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IobnVsbCksIGhvc3RUcmFuc2l0aW9uUHJvdmlkZXJDdXJzb3IgPSBjcmVhdGVDdXJzb3IobnVsbCksIGRpc2FibGVkRGVwdGggPSAwLCBwcmV2TG9nLCBwcmV2SW5mbywgcHJldldhcm4sIHByZXZFcnJvciwgcHJldkdyb3VwLCBwcmV2R3JvdXBDb2xsYXBzZWQsIHByZXZHcm91cEVuZDsKICAgICAgZGlzYWJsZWRMb2cuX19yZWFjdERpc2FibGVkTG9nID0gdHJ1ZTsKICAgICAgdmFyIHByZWZpeCwgc3VmZml4LCByZWVudHJ5ID0gZmFsc2U7CiAgICAgIHZhciBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3ICgiZnVuY3Rpb24iID09PSB0eXBlb2YgV2Vha01hcCA/IFdlYWtNYXAgOiBNYXApKCk7CiAgICAgIHZhciBjdXJyZW50ID0gbnVsbCwgaXNSZW5kZXJpbmcgPSBmYWxzZSwgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LCBzY2hlZHVsZUNhbGxiYWNrJDMgPSBTY2hlZHVsZXIudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaywgY2FuY2VsQ2FsbGJhY2skMSA9IFNjaGVkdWxlci51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaywgc2hvdWxkWWllbGQgPSBTY2hlZHVsZXIudW5zdGFibGVfc2hvdWxkWWllbGQsIHJlcXVlc3RQYWludCA9IFNjaGVkdWxlci51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsIG5vdyQxID0gU2NoZWR1bGVyLnVuc3RhYmxlX25vdywgZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwgPSBTY2hlZHVsZXIudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsIEltbWVkaWF0ZVByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LCBVc2VyQmxvY2tpbmdQcmlvcml0eSA9IFNjaGVkdWxlci51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSwgTm9ybWFsUHJpb3JpdHkkMSA9IFNjaGVkdWxlci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSwgTG93UHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfTG93UHJpb3JpdHksIElkbGVQcmlvcml0eSA9IFNjaGVkdWxlci51bnN0YWJsZV9JZGxlUHJpb3JpdHksIGxvZyQxID0gU2NoZWR1bGVyLmxvZywgdW5zdGFibGVfc2V0RGlzYWJsZVlpZWxkVmFsdWUgPSBTY2hlZHVsZXIudW5zdGFibGVfc2V0RGlzYWJsZVlpZWxkVmFsdWUsIHJlbmRlcmVySUQgPSBudWxsLCBpbmplY3RlZEhvb2sgPSBudWxsLCBoYXNMb2dnZWRFcnJvciA9IGZhbHNlLCBpc0RldlRvb2xzUHJlc2VudCA9ICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLCBjbHozMiA9IE1hdGguY2x6MzIgPyBNYXRoLmNsejMyIDogY2x6MzJGYWxsYmFjaywgbG9nID0gTWF0aC5sb2csIExOMiA9IE1hdGguTE4yLCBuZXh0VHJhbnNpdGlvblVwZGF0ZUxhbmUgPSAyNTYsIG5leHRUcmFuc2l0aW9uRGVmZXJyZWRMYW5lID0gMjYyMTQ0LCBuZXh0UmV0cnlMYW5lID0gNDE5NDMwNCwgRGlzY3JldGVFdmVudFByaW9yaXR5ID0gMiwgQ29udGludW91c0V2ZW50UHJpb3JpdHkgPSA4LCBEZWZhdWx0RXZlbnRQcmlvcml0eSA9IDMyLCBJZGxlRXZlbnRQcmlvcml0eSA9IDI2ODQzNTQ1NiwgcmFuZG9tS2V5ID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksIGludGVybmFsSW5zdGFuY2VLZXkgPSAiX19yZWFjdEZpYmVyJCIgKyByYW5kb21LZXksIGludGVybmFsUHJvcHNLZXkgPSAiX19yZWFjdFByb3BzJCIgKyByYW5kb21LZXksIGludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXkgPSAiX19yZWFjdENvbnRhaW5lciQiICsgcmFuZG9tS2V5LCBpbnRlcm5hbEV2ZW50SGFuZGxlcnNLZXkgPSAiX19yZWFjdEV2ZW50cyQiICsgcmFuZG9tS2V5LCBpbnRlcm5hbEV2ZW50SGFuZGxlckxpc3RlbmVyc0tleSA9ICJfX3JlYWN0TGlzdGVuZXJzJCIgKyByYW5kb21LZXksIGludGVybmFsRXZlbnRIYW5kbGVzU2V0S2V5ID0gIl9fcmVhY3RIYW5kbGVzJCIgKyByYW5kb21LZXksIGludGVybmFsUm9vdE5vZGVSZXNvdXJjZXNLZXkgPSAiX19yZWFjdFJlc291cmNlcyQiICsgcmFuZG9tS2V5LCBpbnRlcm5hbEhvaXN0YWJsZU1hcmtlciA9ICJfX3JlYWN0TWFya2VyJCIgKyByYW5kb21LZXksIGFsbE5hdGl2ZUV2ZW50cyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCksIHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMgPSB7fSwgcG9zc2libGVSZWdpc3RyYXRpb25OYW1lcyA9IHt9LCBoYXNSZWFkT25seVZhbHVlID0gewogICAgICAgIGJ1dHRvbjogdHJ1ZSwKICAgICAgICBjaGVja2JveDogdHJ1ZSwKICAgICAgICBpbWFnZTogdHJ1ZSwKICAgICAgICBoaWRkZW46IHRydWUsCiAgICAgICAgcmFkaW86IHRydWUsCiAgICAgICAgcmVzZXQ6IHRydWUsCiAgICAgICAgc3VibWl0OiB0cnVlCiAgICAgIH0sIFZBTElEX0FUVFJJQlVURV9OQU1FX1JFR0VYID0gUmVnRXhwKAogICAgICAgICJeWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXVs6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSokIgogICAgICApLCBpbGxlZ2FsQXR0cmlidXRlTmFtZUNhY2hlID0ge30sIHZhbGlkYXRlZEF0dHJpYnV0ZU5hbWVDYWNoZSA9IHt9LCBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzUmVnZXggPSAvW1xuIlxcXS9nLCBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUkMSA9IGZhbHNlLCBkaWRXYXJuQ2hlY2tlZERlZmF1bHRDaGVja2VkID0gZmFsc2UsIGRpZFdhcm5TZWxlY3RlZFNldE9uT3B0aW9uID0gZmFsc2UsIGRpZFdhcm5JbnZhbGlkQ2hpbGQgPSBmYWxzZSwgZGlkV2FybkludmFsaWRJbm5lckhUTUwgPSBmYWxzZTsKICAgICAgdmFyIGRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSA9IGZhbHNlOwogICAgICB2YXIgdmFsdWVQcm9wTmFtZXMgPSBbInZhbHVlIiwgImRlZmF1bHRWYWx1ZSJdLCBkaWRXYXJuVmFsRGVmYXVsdFZhbCA9IGZhbHNlLCBuZWVkc0VzY2FwaW5nID0gL1siJyY8PlxuXHRdfF5cc3xccyQvLCBzcGVjaWFsVGFncyA9ICJhZGRyZXNzIGFwcGxldCBhcmVhIGFydGljbGUgYXNpZGUgYmFzZSBiYXNlZm9udCBiZ3NvdW5kIGJsb2NrcXVvdGUgYm9keSBiciBidXR0b24gY2FwdGlvbiBjZW50ZXIgY29sIGNvbGdyb3VwIGRkIGRldGFpbHMgZGlyIGRpdiBkbCBkdCBlbWJlZCBmaWVsZHNldCBmaWdjYXB0aW9uIGZpZ3VyZSBmb290ZXIgZm9ybSBmcmFtZSBmcmFtZXNldCBoMSBoMiBoMyBoNCBoNSBoNiBoZWFkIGhlYWRlciBoZ3JvdXAgaHIgaHRtbCBpZnJhbWUgaW1nIGlucHV0IGlzaW5kZXggbGkgbGluayBsaXN0aW5nIG1haW4gbWFycXVlZSBtZW51IG1lbnVpdGVtIG1ldGEgbmF2IG5vZW1iZWQgbm9mcmFtZXMgbm9zY3JpcHQgb2JqZWN0IG9sIHAgcGFyYW0gcGxhaW50ZXh0IHByZSBzY3JpcHQgc2VjdGlvbiBzZWxlY3Qgc291cmNlIHN0eWxlIHN1bW1hcnkgdGFibGUgdGJvZHkgdGQgdGVtcGxhdGUgdGV4dGFyZWEgdGZvb3QgdGggdGhlYWQgdGl0bGUgdHIgdHJhY2sgdWwgd2JyIHhtcCIuc3BsaXQoCiAgICAgICAgIiAiCiAgICAgICksIGluU2NvcGVUYWdzID0gImFwcGxldCBjYXB0aW9uIGh0bWwgdGFibGUgdGQgdGggbWFycXVlZSBvYmplY3QgdGVtcGxhdGUgZm9yZWlnbk9iamVjdCBkZXNjIHRpdGxlIi5zcGxpdCgKICAgICAgICAiICIKICAgICAgKSwgYnV0dG9uU2NvcGVUYWdzID0gaW5TY29wZVRhZ3MuY29uY2F0KFsiYnV0dG9uIl0pLCBpbXBsaWVkRW5kVGFncyA9ICJkZCBkdCBsaSBvcHRpb24gb3B0Z3JvdXAgcCBycCBydCIuc3BsaXQoIiAiKSwgZW1wdHlBbmNlc3RvckluZm9EZXYgPSB7CiAgICAgICAgY3VycmVudDogbnVsbCwKICAgICAgICBmb3JtVGFnOiBudWxsLAogICAgICAgIGFUYWdJblNjb3BlOiBudWxsLAogICAgICAgIGJ1dHRvblRhZ0luU2NvcGU6IG51bGwsCiAgICAgICAgbm9iclRhZ0luU2NvcGU6IG51bGwsCiAgICAgICAgcFRhZ0luQnV0dG9uU2NvcGU6IG51bGwsCiAgICAgICAgbGlzdEl0ZW1UYWdBdXRvY2xvc2luZzogbnVsbCwKICAgICAgICBkbEl0ZW1UYWdBdXRvY2xvc2luZzogbnVsbCwKICAgICAgICBjb250YWluZXJUYWdJblNjb3BlOiBudWxsLAogICAgICAgIGltcGxpY2l0Um9vdFNjb3BlOiBmYWxzZQogICAgICB9LCBkaWRXYXJuID0ge30sIHNob3J0aGFuZFRvTG9uZ2hhbmQgPSB7CiAgICAgICAgYW5pbWF0aW9uOiAiYW5pbWF0aW9uRGVsYXkgYW5pbWF0aW9uRGlyZWN0aW9uIGFuaW1hdGlvbkR1cmF0aW9uIGFuaW1hdGlvbkZpbGxNb2RlIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IGFuaW1hdGlvbk5hbWUgYW5pbWF0aW9uUGxheVN0YXRlIGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uIi5zcGxpdCgKICAgICAgICAgICIgIgogICAgICAgICksCiAgICAgICAgYmFja2dyb3VuZDogImJhY2tncm91bmRBdHRhY2htZW50IGJhY2tncm91bmRDbGlwIGJhY2tncm91bmRDb2xvciBiYWNrZ3JvdW5kSW1hZ2UgYmFja2dyb3VuZE9yaWdpbiBiYWNrZ3JvdW5kUG9zaXRpb25YIGJhY2tncm91bmRQb3NpdGlvblkgYmFja2dyb3VuZFJlcGVhdCBiYWNrZ3JvdW5kU2l6ZSIuc3BsaXQoCiAgICAgICAgICAiICIKICAgICAgICApLAogICAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogWyJiYWNrZ3JvdW5kUG9zaXRpb25YIiwgImJhY2tncm91bmRQb3NpdGlvblkiXSwKICAgICAgICBib3JkZXI6ICJib3JkZXJCb3R0b21Db2xvciBib3JkZXJCb3R0b21TdHlsZSBib3JkZXJCb3R0b21XaWR0aCBib3JkZXJJbWFnZU91dHNldCBib3JkZXJJbWFnZVJlcGVhdCBib3JkZXJJbWFnZVNsaWNlIGJvcmRlckltYWdlU291cmNlIGJvcmRlckltYWdlV2lkdGggYm9yZGVyTGVmdENvbG9yIGJvcmRlckxlZnRTdHlsZSBib3JkZXJMZWZ0V2lkdGggYm9yZGVyUmlnaHRDb2xvciBib3JkZXJSaWdodFN0eWxlIGJvcmRlclJpZ2h0V2lkdGggYm9yZGVyVG9wQ29sb3IgYm9yZGVyVG9wU3R5bGUgYm9yZGVyVG9wV2lkdGgiLnNwbGl0KAogICAgICAgICAgIiAiCiAgICAgICAgKSwKICAgICAgICBib3JkZXJCbG9ja0VuZDogWwogICAgICAgICAgImJvcmRlckJsb2NrRW5kQ29sb3IiLAogICAgICAgICAgImJvcmRlckJsb2NrRW5kU3R5bGUiLAogICAgICAgICAgImJvcmRlckJsb2NrRW5kV2lkdGgiCiAgICAgICAgXSwKICAgICAgICBib3JkZXJCbG9ja1N0YXJ0OiBbCiAgICAgICAgICAiYm9yZGVyQmxvY2tTdGFydENvbG9yIiwKICAgICAgICAgICJib3JkZXJCbG9ja1N0YXJ0U3R5bGUiLAogICAgICAgICAgImJvcmRlckJsb2NrU3RhcnRXaWR0aCIKICAgICAgICBdLAogICAgICAgIGJvcmRlckJvdHRvbTogWwogICAgICAgICAgImJvcmRlckJvdHRvbUNvbG9yIiwKICAgICAgICAgICJib3JkZXJCb3R0b21TdHlsZSIsCiAgICAgICAgICAiYm9yZGVyQm90dG9tV2lkdGgiCiAgICAgICAgXSwKICAgICAgICBib3JkZXJDb2xvcjogWwogICAgICAgICAgImJvcmRlckJvdHRvbUNvbG9yIiwKICAgICAgICAgICJib3JkZXJMZWZ0Q29sb3IiLAogICAgICAgICAgImJvcmRlclJpZ2h0Q29sb3IiLAogICAgICAgICAgImJvcmRlclRvcENvbG9yIgogICAgICAgIF0sCiAgICAgICAgYm9yZGVySW1hZ2U6IFsKICAgICAgICAgICJib3JkZXJJbWFnZU91dHNldCIsCiAgICAgICAgICAiYm9yZGVySW1hZ2VSZXBlYXQiLAogICAgICAgICAgImJvcmRlckltYWdlU2xpY2UiLAogICAgICAgICAgImJvcmRlckltYWdlU291cmNlIiwKICAgICAgICAgICJib3JkZXJJbWFnZVdpZHRoIgogICAgICAgIF0sCiAgICAgICAgYm9yZGVySW5saW5lRW5kOiBbCiAgICAgICAgICAiYm9yZGVySW5saW5lRW5kQ29sb3IiLAogICAgICAgICAgImJvcmRlcklubGluZUVuZFN0eWxlIiwKICAgICAgICAgICJib3JkZXJJbmxpbmVFbmRXaWR0aCIKICAgICAgICBdLAogICAgICAgIGJvcmRlcklubGluZVN0YXJ0OiBbCiAgICAgICAgICAiYm9yZGVySW5saW5lU3RhcnRDb2xvciIsCiAgICAgICAgICAiYm9yZGVySW5saW5lU3RhcnRTdHlsZSIsCiAgICAgICAgICAiYm9yZGVySW5saW5lU3RhcnRXaWR0aCIKICAgICAgICBdLAogICAgICAgIGJvcmRlckxlZnQ6IFsiYm9yZGVyTGVmdENvbG9yIiwgImJvcmRlckxlZnRTdHlsZSIsICJib3JkZXJMZWZ0V2lkdGgiXSwKICAgICAgICBib3JkZXJSYWRpdXM6IFsKICAgICAgICAgICJib3JkZXJCb3R0b21MZWZ0UmFkaXVzIiwKICAgICAgICAgICJib3JkZXJCb3R0b21SaWdodFJhZGl1cyIsCiAgICAgICAgICAiYm9yZGVyVG9wTGVmdFJhZGl1cyIsCiAgICAgICAgICAiYm9yZGVyVG9wUmlnaHRSYWRpdXMiCiAgICAgICAgXSwKICAgICAgICBib3JkZXJSaWdodDogWwogICAgICAgICAgImJvcmRlclJpZ2h0Q29sb3IiLAogICAgICAgICAgImJvcmRlclJpZ2h0U3R5bGUiLAogICAgICAgICAgImJvcmRlclJpZ2h0V2lkdGgiCiAgICAgICAgXSwKICAgICAgICBib3JkZXJTdHlsZTogWwogICAgICAgICAgImJvcmRlckJvdHRvbVN0eWxlIiwKICAgICAgICAgICJib3JkZXJMZWZ0U3R5bGUiLAogICAgICAgICAgImJvcmRlclJpZ2h0U3R5bGUiLAogICAgICAgICAgImJvcmRlclRvcFN0eWxlIgogICAgICAgIF0sCiAgICAgICAgYm9yZGVyVG9wOiBbImJvcmRlclRvcENvbG9yIiwgImJvcmRlclRvcFN0eWxlIiwgImJvcmRlclRvcFdpZHRoIl0sCiAgICAgICAgYm9yZGVyV2lkdGg6IFsKICAgICAgICAgICJib3JkZXJCb3R0b21XaWR0aCIsCiAgICAgICAgICAiYm9yZGVyTGVmdFdpZHRoIiwKICAgICAgICAgICJib3JkZXJSaWdodFdpZHRoIiwKICAgICAgICAgICJib3JkZXJUb3BXaWR0aCIKICAgICAgICBdLAogICAgICAgIGNvbHVtblJ1bGU6IFsiY29sdW1uUnVsZUNvbG9yIiwgImNvbHVtblJ1bGVTdHlsZSIsICJjb2x1bW5SdWxlV2lkdGgiXSwKICAgICAgICBjb2x1bW5zOiBbImNvbHVtbkNvdW50IiwgImNvbHVtbldpZHRoIl0sCiAgICAgICAgZmxleDogWyJmbGV4QmFzaXMiLCAiZmxleEdyb3ciLCAiZmxleFNocmluayJdLAogICAgICAgIGZsZXhGbG93OiBbImZsZXhEaXJlY3Rpb24iLCAiZmxleFdyYXAiXSwKICAgICAgICBmb250OiAiZm9udEZhbWlseSBmb250RmVhdHVyZVNldHRpbmdzIGZvbnRLZXJuaW5nIGZvbnRMYW5ndWFnZU92ZXJyaWRlIGZvbnRTaXplIGZvbnRTaXplQWRqdXN0IGZvbnRTdHJldGNoIGZvbnRTdHlsZSBmb250VmFyaWFudCBmb250VmFyaWFudEFsdGVybmF0ZXMgZm9udFZhcmlhbnRDYXBzIGZvbnRWYXJpYW50RWFzdEFzaWFuIGZvbnRWYXJpYW50TGlnYXR1cmVzIGZvbnRWYXJpYW50TnVtZXJpYyBmb250VmFyaWFudFBvc2l0aW9uIGZvbnRXZWlnaHQgbGluZUhlaWdodCIuc3BsaXQoCiAgICAgICAgICAiICIKICAgICAgICApLAogICAgICAgIGZvbnRWYXJpYW50OiAiZm9udFZhcmlhbnRBbHRlcm5hdGVzIGZvbnRWYXJpYW50Q2FwcyBmb250VmFyaWFudEVhc3RBc2lhbiBmb250VmFyaWFudExpZ2F0dXJlcyBmb250VmFyaWFudE51bWVyaWMgZm9udFZhcmlhbnRQb3NpdGlvbiIuc3BsaXQoCiAgICAgICAgICAiICIKICAgICAgICApLAogICAgICAgIGdhcDogWyJjb2x1bW5HYXAiLCAicm93R2FwIl0sCiAgICAgICAgZ3JpZDogImdyaWRBdXRvQ29sdW1ucyBncmlkQXV0b0Zsb3cgZ3JpZEF1dG9Sb3dzIGdyaWRUZW1wbGF0ZUFyZWFzIGdyaWRUZW1wbGF0ZUNvbHVtbnMgZ3JpZFRlbXBsYXRlUm93cyIuc3BsaXQoCiAgICAgICAgICAiICIKICAgICAgICApLAogICAgICAgIGdyaWRBcmVhOiBbCiAgICAgICAgICAiZ3JpZENvbHVtbkVuZCIsCiAgICAgICAgICAiZ3JpZENvbHVtblN0YXJ0IiwKICAgICAgICAgICJncmlkUm93RW5kIiwKICAgICAgICAgICJncmlkUm93U3RhcnQiCiAgICAgICAgXSwKICAgICAgICBncmlkQ29sdW1uOiBbImdyaWRDb2x1bW5FbmQiLCAiZ3JpZENvbHVtblN0YXJ0Il0sCiAgICAgICAgZ3JpZENvbHVtbkdhcDogWyJjb2x1bW5HYXAiXSwKICAgICAgICBncmlkR2FwOiBbImNvbHVtbkdhcCIsICJyb3dHYXAiXSwKICAgICAgICBncmlkUm93OiBbImdyaWRSb3dFbmQiLCAiZ3JpZFJvd1N0YXJ0Il0sCiAgICAgICAgZ3JpZFJvd0dhcDogWyJyb3dHYXAiXSwKICAgICAgICBncmlkVGVtcGxhdGU6IFsKICAgICAgICAgICJncmlkVGVtcGxhdGVBcmVhcyIsCiAgICAgICAgICAiZ3JpZFRlbXBsYXRlQ29sdW1ucyIsCiAgICAgICAgICAiZ3JpZFRlbXBsYXRlUm93cyIKICAgICAgICBdLAogICAgICAgIGxpc3RTdHlsZTogWyJsaXN0U3R5bGVJbWFnZSIsICJsaXN0U3R5bGVQb3NpdGlvbiIsICJsaXN0U3R5bGVUeXBlIl0sCiAgICAgICAgbWFyZ2luOiBbIm1hcmdpbkJvdHRvbSIsICJtYXJnaW5MZWZ0IiwgIm1hcmdpblJpZ2h0IiwgIm1hcmdpblRvcCJdLAogICAgICAgIG1hcmtlcjogWyJtYXJrZXJFbmQiLCAibWFya2VyTWlkIiwgIm1hcmtlclN0YXJ0Il0sCiAgICAgICAgbWFzazogIm1hc2tDbGlwIG1hc2tDb21wb3NpdGUgbWFza0ltYWdlIG1hc2tNb2RlIG1hc2tPcmlnaW4gbWFza1Bvc2l0aW9uWCBtYXNrUG9zaXRpb25ZIG1hc2tSZXBlYXQgbWFza1NpemUiLnNwbGl0KAogICAgICAgICAgIiAiCiAgICAgICAgKSwKICAgICAgICBtYXNrUG9zaXRpb246IFsibWFza1Bvc2l0aW9uWCIsICJtYXNrUG9zaXRpb25ZIl0sCiAgICAgICAgb3V0bGluZTogWyJvdXRsaW5lQ29sb3IiLCAib3V0bGluZVN0eWxlIiwgIm91dGxpbmVXaWR0aCJdLAogICAgICAgIG92ZXJmbG93OiBbIm92ZXJmbG93WCIsICJvdmVyZmxvd1kiXSwKICAgICAgICBwYWRkaW5nOiBbInBhZGRpbmdCb3R0b20iLCAicGFkZGluZ0xlZnQiLCAicGFkZGluZ1JpZ2h0IiwgInBhZGRpbmdUb3AiXSwKICAgICAgICBwbGFjZUNvbnRlbnQ6IFsiYWxpZ25Db250ZW50IiwgImp1c3RpZnlDb250ZW50Il0sCiAgICAgICAgcGxhY2VJdGVtczogWyJhbGlnbkl0ZW1zIiwgImp1c3RpZnlJdGVtcyJdLAogICAgICAgIHBsYWNlU2VsZjogWyJhbGlnblNlbGYiLCAianVzdGlmeVNlbGYiXSwKICAgICAgICB0ZXh0RGVjb3JhdGlvbjogWwogICAgICAgICAgInRleHREZWNvcmF0aW9uQ29sb3IiLAogICAgICAgICAgInRleHREZWNvcmF0aW9uTGluZSIsCiAgICAgICAgICAidGV4dERlY29yYXRpb25TdHlsZSIKICAgICAgICBdLAogICAgICAgIHRleHRFbXBoYXNpczogWyJ0ZXh0RW1waGFzaXNDb2xvciIsICJ0ZXh0RW1waGFzaXNTdHlsZSJdLAogICAgICAgIHRyYW5zaXRpb246IFsKICAgICAgICAgICJ0cmFuc2l0aW9uRGVsYXkiLAogICAgICAgICAgInRyYW5zaXRpb25EdXJhdGlvbiIsCiAgICAgICAgICAidHJhbnNpdGlvblByb3BlcnR5IiwKICAgICAgICAgICJ0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iCiAgICAgICAgXSwKICAgICAgICB3b3JkV3JhcDogWyJvdmVyZmxvd1dyYXAiXQogICAgICB9LCB1cHBlcmNhc2VQYXR0ZXJuID0gLyhbQS1aXSkvZywgbXNQYXR0ZXJuJDEgPSAvXm1zLS8sIGJhZFZlbmRvcmVkU3R5bGVOYW1lUGF0dGVybiA9IC9eKD86d2Via2l0fG1venxvKVtBLVpdLywgbXNQYXR0ZXJuID0gL14tbXMtLywgaHlwaGVuUGF0dGVybiA9IC8tKC4pL2csIGJhZFN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uUGF0dGVybiA9IC87XHMqJC8sIHdhcm5lZFN0eWxlTmFtZXMgPSB7fSwgd2FybmVkU3R5bGVWYWx1ZXMgPSB7fSwgd2FybmVkRm9yTmFOVmFsdWUgPSBmYWxzZSwgd2FybmVkRm9ySW5maW5pdHlWYWx1ZSA9IGZhbHNlLCB1bml0bGVzc051bWJlcnMgPSBuZXcgU2V0KAogICAgICAgICJhbmltYXRpb25JdGVyYXRpb25Db3VudCBhc3BlY3RSYXRpbyBib3JkZXJJbWFnZU91dHNldCBib3JkZXJJbWFnZVNsaWNlIGJvcmRlckltYWdlV2lkdGggYm94RmxleCBib3hGbGV4R3JvdXAgYm94T3JkaW5hbEdyb3VwIGNvbHVtbkNvdW50IGNvbHVtbnMgZmxleCBmbGV4R3JvdyBmbGV4UG9zaXRpdmUgZmxleFNocmluayBmbGV4TmVnYXRpdmUgZmxleE9yZGVyIGdyaWRBcmVhIGdyaWRSb3cgZ3JpZFJvd0VuZCBncmlkUm93U3BhbiBncmlkUm93U3RhcnQgZ3JpZENvbHVtbiBncmlkQ29sdW1uRW5kIGdyaWRDb2x1bW5TcGFuIGdyaWRDb2x1bW5TdGFydCBmb250V2VpZ2h0IGxpbmVDbGFtcCBsaW5lSGVpZ2h0IG9wYWNpdHkgb3JkZXIgb3JwaGFucyBzY2FsZSB0YWJTaXplIHdpZG93cyB6SW5kZXggem9vbSBmaWxsT3BhY2l0eSBmbG9vZE9wYWNpdHkgc3RvcE9wYWNpdHkgc3Ryb2tlRGFzaGFycmF5IHN0cm9rZURhc2hvZmZzZXQgc3Ryb2tlTWl0ZXJsaW1pdCBzdHJva2VPcGFjaXR5IHN0cm9rZVdpZHRoIE1vekFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IE1vekJveEZsZXggTW96Qm94RmxleEdyb3VwIE1vekxpbmVDbGFtcCBtc0FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IG1zRmxleCBtc1pvb20gbXNGbGV4R3JvdyBtc0ZsZXhOZWdhdGl2ZSBtc0ZsZXhPcmRlciBtc0ZsZXhQb3NpdGl2ZSBtc0ZsZXhTaHJpbmsgbXNHcmlkQ29sdW1uIG1zR3JpZENvbHVtblNwYW4gbXNHcmlkUm93IG1zR3JpZFJvd1NwYW4gV2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgV2Via2l0Qm94RmxleCBXZWJLaXRCb3hGbGV4R3JvdXAgV2Via2l0Qm94T3JkaW5hbEdyb3VwIFdlYmtpdENvbHVtbkNvdW50IFdlYmtpdENvbHVtbnMgV2Via2l0RmxleCBXZWJraXRGbGV4R3JvdyBXZWJraXRGbGV4UG9zaXRpdmUgV2Via2l0RmxleFNocmluayBXZWJraXRMaW5lQ2xhbXAiLnNwbGl0KAogICAgICAgICAgIiAiCiAgICAgICAgKQogICAgICApLCBNQVRIX05BTUVTUEFDRSA9ICJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIiwgU1ZHX05BTUVTUEFDRSA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsIGFsaWFzZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcChbCiAgICAgICAgWyJhY2NlcHRDaGFyc2V0IiwgImFjY2VwdC1jaGFyc2V0Il0sCiAgICAgICAgWyJodG1sRm9yIiwgImZvciJdLAogICAgICAgIFsiaHR0cEVxdWl2IiwgImh0dHAtZXF1aXYiXSwKICAgICAgICBbImNyb3NzT3JpZ2luIiwgImNyb3Nzb3JpZ2luIl0sCiAgICAgICAgWyJhY2NlbnRIZWlnaHQiLCAiYWNjZW50LWhlaWdodCJdLAogICAgICAgIFsiYWxpZ25tZW50QmFzZWxpbmUiLCAiYWxpZ25tZW50LWJhc2VsaW5lIl0sCiAgICAgICAgWyJhcmFiaWNGb3JtIiwgImFyYWJpYy1mb3JtIl0sCiAgICAgICAgWyJiYXNlbGluZVNoaWZ0IiwgImJhc2VsaW5lLXNoaWZ0Il0sCiAgICAgICAgWyJjYXBIZWlnaHQiLCAiY2FwLWhlaWdodCJdLAogICAgICAgIFsiY2xpcFBhdGgiLCAiY2xpcC1wYXRoIl0sCiAgICAgICAgWyJjbGlwUnVsZSIsICJjbGlwLXJ1bGUiXSwKICAgICAgICBbImNvbG9ySW50ZXJwb2xhdGlvbiIsICJjb2xvci1pbnRlcnBvbGF0aW9uIl0sCiAgICAgICAgWyJjb2xvckludGVycG9sYXRpb25GaWx0ZXJzIiwgImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyJdLAogICAgICAgIFsiY29sb3JQcm9maWxlIiwgImNvbG9yLXByb2ZpbGUiXSwKICAgICAgICBbImNvbG9yUmVuZGVyaW5nIiwgImNvbG9yLXJlbmRlcmluZyJdLAogICAgICAgIFsiZG9taW5hbnRCYXNlbGluZSIsICJkb21pbmFudC1iYXNlbGluZSJdLAogICAgICAgIFsiZW5hYmxlQmFja2dyb3VuZCIsICJlbmFibGUtYmFja2dyb3VuZCJdLAogICAgICAgIFsiZmlsbE9wYWNpdHkiLCAiZmlsbC1vcGFjaXR5Il0sCiAgICAgICAgWyJmaWxsUnVsZSIsICJmaWxsLXJ1bGUiXSwKICAgICAgICBbImZsb29kQ29sb3IiLCAiZmxvb2QtY29sb3IiXSwKICAgICAgICBbImZsb29kT3BhY2l0eSIsICJmbG9vZC1vcGFjaXR5Il0sCiAgICAgICAgWyJmb250RmFtaWx5IiwgImZvbnQtZmFtaWx5Il0sCiAgICAgICAgWyJmb250U2l6ZSIsICJmb250LXNpemUiXSwKICAgICAgICBbImZvbnRTaXplQWRqdXN0IiwgImZvbnQtc2l6ZS1hZGp1c3QiXSwKICAgICAgICBbImZvbnRTdHJldGNoIiwgImZvbnQtc3RyZXRjaCJdLAogICAgICAgIFsiZm9udFN0eWxlIiwgImZvbnQtc3R5bGUiXSwKICAgICAgICBbImZvbnRWYXJpYW50IiwgImZvbnQtdmFyaWFudCJdLAogICAgICAgIFsiZm9udFdlaWdodCIsICJmb250LXdlaWdodCJdLAogICAgICAgIFsiZ2x5cGhOYW1lIiwgImdseXBoLW5hbWUiXSwKICAgICAgICBbImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsIiwgImdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwiXSwKICAgICAgICBbImdseXBoT3JpZW50YXRpb25WZXJ0aWNhbCIsICJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCJdLAogICAgICAgIFsiaG9yaXpBZHZYIiwgImhvcml6LWFkdi14Il0sCiAgICAgICAgWyJob3Jpek9yaWdpblgiLCAiaG9yaXotb3JpZ2luLXgiXSwKICAgICAgICBbImltYWdlUmVuZGVyaW5nIiwgImltYWdlLXJlbmRlcmluZyJdLAogICAgICAgIFsibGV0dGVyU3BhY2luZyIsICJsZXR0ZXItc3BhY2luZyJdLAogICAgICAgIFsibGlnaHRpbmdDb2xvciIsICJsaWdodGluZy1jb2xvciJdLAogICAgICAgIFsibWFya2VyRW5kIiwgIm1hcmtlci1lbmQiXSwKICAgICAgICBbIm1hcmtlck1pZCIsICJtYXJrZXItbWlkIl0sCiAgICAgICAgWyJtYXJrZXJTdGFydCIsICJtYXJrZXItc3RhcnQiXSwKICAgICAgICBbIm92ZXJsaW5lUG9zaXRpb24iLCAib3ZlcmxpbmUtcG9zaXRpb24iXSwKICAgICAgICBbIm92ZXJsaW5lVGhpY2tuZXNzIiwgIm92ZXJsaW5lLXRoaWNrbmVzcyJdLAogICAgICAgIFsicGFpbnRPcmRlciIsICJwYWludC1vcmRlciJdLAogICAgICAgIFsicGFub3NlLTEiLCAicGFub3NlLTEiXSwKICAgICAgICBbInBvaW50ZXJFdmVudHMiLCAicG9pbnRlci1ldmVudHMiXSwKICAgICAgICBbInJlbmRlcmluZ0ludGVudCIsICJyZW5kZXJpbmctaW50ZW50Il0sCiAgICAgICAgWyJzaGFwZVJlbmRlcmluZyIsICJzaGFwZS1yZW5kZXJpbmciXSwKICAgICAgICBbInN0b3BDb2xvciIsICJzdG9wLWNvbG9yIl0sCiAgICAgICAgWyJzdG9wT3BhY2l0eSIsICJzdG9wLW9wYWNpdHkiXSwKICAgICAgICBbInN0cmlrZXRocm91Z2hQb3NpdGlvbiIsICJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIl0sCiAgICAgICAgWyJzdHJpa2V0aHJvdWdoVGhpY2tuZXNzIiwgInN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIl0sCiAgICAgICAgWyJzdHJva2VEYXNoYXJyYXkiLCAic3Ryb2tlLWRhc2hhcnJheSJdLAogICAgICAgIFsic3Ryb2tlRGFzaG9mZnNldCIsICJzdHJva2UtZGFzaG9mZnNldCJdLAogICAgICAgIFsic3Ryb2tlTGluZWNhcCIsICJzdHJva2UtbGluZWNhcCJdLAogICAgICAgIFsic3Ryb2tlTGluZWpvaW4iLCAic3Ryb2tlLWxpbmVqb2luIl0sCiAgICAgICAgWyJzdHJva2VNaXRlcmxpbWl0IiwgInN0cm9rZS1taXRlcmxpbWl0Il0sCiAgICAgICAgWyJzdHJva2VPcGFjaXR5IiwgInN0cm9rZS1vcGFjaXR5Il0sCiAgICAgICAgWyJzdHJva2VXaWR0aCIsICJzdHJva2Utd2lkdGgiXSwKICAgICAgICBbInRleHRBbmNob3IiLCAidGV4dC1hbmNob3IiXSwKICAgICAgICBbInRleHREZWNvcmF0aW9uIiwgInRleHQtZGVjb3JhdGlvbiJdLAogICAgICAgIFsidGV4dFJlbmRlcmluZyIsICJ0ZXh0LXJlbmRlcmluZyJdLAogICAgICAgIFsidHJhbnNmb3JtT3JpZ2luIiwgInRyYW5zZm9ybS1vcmlnaW4iXSwKICAgICAgICBbInVuZGVybGluZVBvc2l0aW9uIiwgInVuZGVybGluZS1wb3NpdGlvbiJdLAogICAgICAgIFsidW5kZXJsaW5lVGhpY2tuZXNzIiwgInVuZGVybGluZS10aGlja25lc3MiXSwKICAgICAgICBbInVuaWNvZGVCaWRpIiwgInVuaWNvZGUtYmlkaSJdLAogICAgICAgIFsidW5pY29kZVJhbmdlIiwgInVuaWNvZGUtcmFuZ2UiXSwKICAgICAgICBbInVuaXRzUGVyRW0iLCAidW5pdHMtcGVyLWVtIl0sCiAgICAgICAgWyJ2QWxwaGFiZXRpYyIsICJ2LWFscGhhYmV0aWMiXSwKICAgICAgICBbInZIYW5naW5nIiwgInYtaGFuZ2luZyJdLAogICAgICAgIFsidklkZW9ncmFwaGljIiwgInYtaWRlb2dyYXBoaWMiXSwKICAgICAgICBbInZNYXRoZW1hdGljYWwiLCAidi1tYXRoZW1hdGljYWwiXSwKICAgICAgICBbInZlY3RvckVmZmVjdCIsICJ2ZWN0b3ItZWZmZWN0Il0sCiAgICAgICAgWyJ2ZXJ0QWR2WSIsICJ2ZXJ0LWFkdi15Il0sCiAgICAgICAgWyJ2ZXJ0T3JpZ2luWCIsICJ2ZXJ0LW9yaWdpbi14Il0sCiAgICAgICAgWyJ2ZXJ0T3JpZ2luWSIsICJ2ZXJ0LW9yaWdpbi15Il0sCiAgICAgICAgWyJ3b3JkU3BhY2luZyIsICJ3b3JkLXNwYWNpbmciXSwKICAgICAgICBbIndyaXRpbmdNb2RlIiwgIndyaXRpbmctbW9kZSJdLAogICAgICAgIFsieG1sbnNYbGluayIsICJ4bWxuczp4bGluayJdLAogICAgICAgIFsieEhlaWdodCIsICJ4LWhlaWdodCJdCiAgICAgIF0pLCBwb3NzaWJsZVN0YW5kYXJkTmFtZXMgPSB7CiAgICAgICAgYWNjZXB0OiAiYWNjZXB0IiwKICAgICAgICBhY2NlcHRjaGFyc2V0OiAiYWNjZXB0Q2hhcnNldCIsCiAgICAgICAgImFjY2VwdC1jaGFyc2V0IjogImFjY2VwdENoYXJzZXQiLAogICAgICAgIGFjY2Vzc2tleTogImFjY2Vzc0tleSIsCiAgICAgICAgYWN0aW9uOiAiYWN0aW9uIiwKICAgICAgICBhbGxvd2Z1bGxzY3JlZW46ICJhbGxvd0Z1bGxTY3JlZW4iLAogICAgICAgIGFsdDogImFsdCIsCiAgICAgICAgYXM6ICJhcyIsCiAgICAgICAgYXN5bmM6ICJhc3luYyIsCiAgICAgICAgYXV0b2NhcGl0YWxpemU6ICJhdXRvQ2FwaXRhbGl6ZSIsCiAgICAgICAgYXV0b2NvbXBsZXRlOiAiYXV0b0NvbXBsZXRlIiwKICAgICAgICBhdXRvY29ycmVjdDogImF1dG9Db3JyZWN0IiwKICAgICAgICBhdXRvZm9jdXM6ICJhdXRvRm9jdXMiLAogICAgICAgIGF1dG9wbGF5OiAiYXV0b1BsYXkiLAogICAgICAgIGF1dG9zYXZlOiAiYXV0b1NhdmUiLAogICAgICAgIGNhcHR1cmU6ICJjYXB0dXJlIiwKICAgICAgICBjZWxscGFkZGluZzogImNlbGxQYWRkaW5nIiwKICAgICAgICBjZWxsc3BhY2luZzogImNlbGxTcGFjaW5nIiwKICAgICAgICBjaGFsbGVuZ2U6ICJjaGFsbGVuZ2UiLAogICAgICAgIGNoYXJzZXQ6ICJjaGFyU2V0IiwKICAgICAgICBjaGVja2VkOiAiY2hlY2tlZCIsCiAgICAgICAgY2hpbGRyZW46ICJjaGlsZHJlbiIsCiAgICAgICAgY2l0ZTogImNpdGUiLAogICAgICAgIGNsYXNzOiAiY2xhc3NOYW1lIiwKICAgICAgICBjbGFzc2lkOiAiY2xhc3NJRCIsCiAgICAgICAgY2xhc3NuYW1lOiAiY2xhc3NOYW1lIiwKICAgICAgICBjb2xzOiAiY29scyIsCiAgICAgICAgY29sc3BhbjogImNvbFNwYW4iLAogICAgICAgIGNvbnRlbnQ6ICJjb250ZW50IiwKICAgICAgICBjb250ZW50ZWRpdGFibGU6ICJjb250ZW50RWRpdGFibGUiLAogICAgICAgIGNvbnRleHRtZW51OiAiY29udGV4dE1lbnUiLAogICAgICAgIGNvbnRyb2xzOiAiY29udHJvbHMiLAogICAgICAgIGNvbnRyb2xzbGlzdDogImNvbnRyb2xzTGlzdCIsCiAgICAgICAgY29vcmRzOiAiY29vcmRzIiwKICAgICAgICBjcm9zc29yaWdpbjogImNyb3NzT3JpZ2luIiwKICAgICAgICBkYW5nZXJvdXNseXNldGlubmVyaHRtbDogImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwKICAgICAgICBkYXRhOiAiZGF0YSIsCiAgICAgICAgZGF0ZXRpbWU6ICJkYXRlVGltZSIsCiAgICAgICAgZGVmYXVsdDogImRlZmF1bHQiLAogICAgICAgIGRlZmF1bHRjaGVja2VkOiAiZGVmYXVsdENoZWNrZWQiLAogICAgICAgIGRlZmF1bHR2YWx1ZTogImRlZmF1bHRWYWx1ZSIsCiAgICAgICAgZGVmZXI6ICJkZWZlciIsCiAgICAgICAgZGlyOiAiZGlyIiwKICAgICAgICBkaXNhYmxlZDogImRpc2FibGVkIiwKICAgICAgICBkaXNhYmxlcGljdHVyZWlucGljdHVyZTogImRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIiwKICAgICAgICBkaXNhYmxlcmVtb3RlcGxheWJhY2s6ICJkaXNhYmxlUmVtb3RlUGxheWJhY2siLAogICAgICAgIGRvd25sb2FkOiAiZG93bmxvYWQiLAogICAgICAgIGRyYWdnYWJsZTogImRyYWdnYWJsZSIsCiAgICAgICAgZW5jdHlwZTogImVuY1R5cGUiLAogICAgICAgIGVudGVya2V5aGludDogImVudGVyS2V5SGludCIsCiAgICAgICAgZmV0Y2hwcmlvcml0eTogImZldGNoUHJpb3JpdHkiLAogICAgICAgIGZvcjogImh0bWxGb3IiLAogICAgICAgIGZvcm06ICJmb3JtIiwKICAgICAgICBmb3JtbWV0aG9kOiAiZm9ybU1ldGhvZCIsCiAgICAgICAgZm9ybWFjdGlvbjogImZvcm1BY3Rpb24iLAogICAgICAgIGZvcm1lbmN0eXBlOiAiZm9ybUVuY1R5cGUiLAogICAgICAgIGZvcm1ub3ZhbGlkYXRlOiAiZm9ybU5vVmFsaWRhdGUiLAogICAgICAgIGZvcm10YXJnZXQ6ICJmb3JtVGFyZ2V0IiwKICAgICAgICBmcmFtZWJvcmRlcjogImZyYW1lQm9yZGVyIiwKICAgICAgICBoZWFkZXJzOiAiaGVhZGVycyIsCiAgICAgICAgaGVpZ2h0OiAiaGVpZ2h0IiwKICAgICAgICBoaWRkZW46ICJoaWRkZW4iLAogICAgICAgIGhpZ2g6ICJoaWdoIiwKICAgICAgICBocmVmOiAiaHJlZiIsCiAgICAgICAgaHJlZmxhbmc6ICJocmVmTGFuZyIsCiAgICAgICAgaHRtbGZvcjogImh0bWxGb3IiLAogICAgICAgIGh0dHBlcXVpdjogImh0dHBFcXVpdiIsCiAgICAgICAgImh0dHAtZXF1aXYiOiAiaHR0cEVxdWl2IiwKICAgICAgICBpY29uOiAiaWNvbiIsCiAgICAgICAgaWQ6ICJpZCIsCiAgICAgICAgaW1hZ2VzaXplczogImltYWdlU2l6ZXMiLAogICAgICAgIGltYWdlc3Jjc2V0OiAiaW1hZ2VTcmNTZXQiLAogICAgICAgIGluZXJ0OiAiaW5lcnQiLAogICAgICAgIGlubmVyaHRtbDogImlubmVySFRNTCIsCiAgICAgICAgaW5wdXRtb2RlOiAiaW5wdXRNb2RlIiwKICAgICAgICBpbnRlZ3JpdHk6ICJpbnRlZ3JpdHkiLAogICAgICAgIGlzOiAiaXMiLAogICAgICAgIGl0ZW1pZDogIml0ZW1JRCIsCiAgICAgICAgaXRlbXByb3A6ICJpdGVtUHJvcCIsCiAgICAgICAgaXRlbXJlZjogIml0ZW1SZWYiLAogICAgICAgIGl0ZW1zY29wZTogIml0ZW1TY29wZSIsCiAgICAgICAgaXRlbXR5cGU6ICJpdGVtVHlwZSIsCiAgICAgICAga2V5cGFyYW1zOiAia2V5UGFyYW1zIiwKICAgICAgICBrZXl0eXBlOiAia2V5VHlwZSIsCiAgICAgICAga2luZDogImtpbmQiLAogICAgICAgIGxhYmVsOiAibGFiZWwiLAogICAgICAgIGxhbmc6ICJsYW5nIiwKICAgICAgICBsaXN0OiAibGlzdCIsCiAgICAgICAgbG9vcDogImxvb3AiLAogICAgICAgIGxvdzogImxvdyIsCiAgICAgICAgbWFuaWZlc3Q6ICJtYW5pZmVzdCIsCiAgICAgICAgbWFyZ2lud2lkdGg6ICJtYXJnaW5XaWR0aCIsCiAgICAgICAgbWFyZ2luaGVpZ2h0OiAibWFyZ2luSGVpZ2h0IiwKICAgICAgICBtYXg6ICJtYXgiLAogICAgICAgIG1heGxlbmd0aDogIm1heExlbmd0aCIsCiAgICAgICAgbWVkaWE6ICJtZWRpYSIsCiAgICAgICAgbWVkaWFncm91cDogIm1lZGlhR3JvdXAiLAogICAgICAgIG1ldGhvZDogIm1ldGhvZCIsCiAgICAgICAgbWluOiAibWluIiwKICAgICAgICBtaW5sZW5ndGg6ICJtaW5MZW5ndGgiLAogICAgICAgIG11bHRpcGxlOiAibXVsdGlwbGUiLAogICAgICAgIG11dGVkOiAibXV0ZWQiLAogICAgICAgIG5hbWU6ICJuYW1lIiwKICAgICAgICBub21vZHVsZTogIm5vTW9kdWxlIiwKICAgICAgICBub25jZTogIm5vbmNlIiwKICAgICAgICBub3ZhbGlkYXRlOiAibm9WYWxpZGF0ZSIsCiAgICAgICAgb3BlbjogIm9wZW4iLAogICAgICAgIG9wdGltdW06ICJvcHRpbXVtIiwKICAgICAgICBwYXR0ZXJuOiAicGF0dGVybiIsCiAgICAgICAgcGxhY2Vob2xkZXI6ICJwbGFjZWhvbGRlciIsCiAgICAgICAgcGxheXNpbmxpbmU6ICJwbGF5c0lubGluZSIsCiAgICAgICAgcG9zdGVyOiAicG9zdGVyIiwKICAgICAgICBwcmVsb2FkOiAicHJlbG9hZCIsCiAgICAgICAgcHJvZmlsZTogInByb2ZpbGUiLAogICAgICAgIHJhZGlvZ3JvdXA6ICJyYWRpb0dyb3VwIiwKICAgICAgICByZWFkb25seTogInJlYWRPbmx5IiwKICAgICAgICByZWZlcnJlcnBvbGljeTogInJlZmVycmVyUG9saWN5IiwKICAgICAgICByZWw6ICJyZWwiLAogICAgICAgIHJlcXVpcmVkOiAicmVxdWlyZWQiLAogICAgICAgIHJldmVyc2VkOiAicmV2ZXJzZWQiLAogICAgICAgIHJvbGU6ICJyb2xlIiwKICAgICAgICByb3dzOiAicm93cyIsCiAgICAgICAgcm93c3BhbjogInJvd1NwYW4iLAogICAgICAgIHNhbmRib3g6ICJzYW5kYm94IiwKICAgICAgICBzY29wZTogInNjb3BlIiwKICAgICAgICBzY29wZWQ6ICJzY29wZWQiLAogICAgICAgIHNjcm9sbGluZzogInNjcm9sbGluZyIsCiAgICAgICAgc2VhbWxlc3M6ICJzZWFtbGVzcyIsCiAgICAgICAgc2VsZWN0ZWQ6ICJzZWxlY3RlZCIsCiAgICAgICAgc2hhcGU6ICJzaGFwZSIsCiAgICAgICAgc2l6ZTogInNpemUiLAogICAgICAgIHNpemVzOiAic2l6ZXMiLAogICAgICAgIHNwYW46ICJzcGFuIiwKICAgICAgICBzcGVsbGNoZWNrOiAic3BlbGxDaGVjayIsCiAgICAgICAgc3JjOiAic3JjIiwKICAgICAgICBzcmNkb2M6ICJzcmNEb2MiLAogICAgICAgIHNyY2xhbmc6ICJzcmNMYW5nIiwKICAgICAgICBzcmNzZXQ6ICJzcmNTZXQiLAogICAgICAgIHN0YXJ0OiAic3RhcnQiLAogICAgICAgIHN0ZXA6ICJzdGVwIiwKICAgICAgICBzdHlsZTogInN0eWxlIiwKICAgICAgICBzdW1tYXJ5OiAic3VtbWFyeSIsCiAgICAgICAgdGFiaW5kZXg6ICJ0YWJJbmRleCIsCiAgICAgICAgdGFyZ2V0OiAidGFyZ2V0IiwKICAgICAgICB0aXRsZTogInRpdGxlIiwKICAgICAgICB0eXBlOiAidHlwZSIsCiAgICAgICAgdXNlbWFwOiAidXNlTWFwIiwKICAgICAgICB2YWx1ZTogInZhbHVlIiwKICAgICAgICB3aWR0aDogIndpZHRoIiwKICAgICAgICB3bW9kZTogIndtb2RlIiwKICAgICAgICB3cmFwOiAid3JhcCIsCiAgICAgICAgYWJvdXQ6ICJhYm91dCIsCiAgICAgICAgYWNjZW50aGVpZ2h0OiAiYWNjZW50SGVpZ2h0IiwKICAgICAgICAiYWNjZW50LWhlaWdodCI6ICJhY2NlbnRIZWlnaHQiLAogICAgICAgIGFjY3VtdWxhdGU6ICJhY2N1bXVsYXRlIiwKICAgICAgICBhZGRpdGl2ZTogImFkZGl0aXZlIiwKICAgICAgICBhbGlnbm1lbnRiYXNlbGluZTogImFsaWdubWVudEJhc2VsaW5lIiwKICAgICAgICAiYWxpZ25tZW50LWJhc2VsaW5lIjogImFsaWdubWVudEJhc2VsaW5lIiwKICAgICAgICBhbGxvd3Jlb3JkZXI6ICJhbGxvd1Jlb3JkZXIiLAogICAgICAgIGFscGhhYmV0aWM6ICJhbHBoYWJldGljIiwKICAgICAgICBhbXBsaXR1ZGU6ICJhbXBsaXR1ZGUiLAogICAgICAgIGFyYWJpY2Zvcm06ICJhcmFiaWNGb3JtIiwKICAgICAgICAiYXJhYmljLWZvcm0iOiAiYXJhYmljRm9ybSIsCiAgICAgICAgYXNjZW50OiAiYXNjZW50IiwKICAgICAgICBhdHRyaWJ1dGVuYW1lOiAiYXR0cmlidXRlTmFtZSIsCiAgICAgICAgYXR0cmlidXRldHlwZTogImF0dHJpYnV0ZVR5cGUiLAogICAgICAgIGF1dG9yZXZlcnNlOiAiYXV0b1JldmVyc2UiLAogICAgICAgIGF6aW11dGg6ICJhemltdXRoIiwKICAgICAgICBiYXNlZnJlcXVlbmN5OiAiYmFzZUZyZXF1ZW5jeSIsCiAgICAgICAgYmFzZWxpbmVzaGlmdDogImJhc2VsaW5lU2hpZnQiLAogICAgICAgICJiYXNlbGluZS1zaGlmdCI6ICJiYXNlbGluZVNoaWZ0IiwKICAgICAgICBiYXNlcHJvZmlsZTogImJhc2VQcm9maWxlIiwKICAgICAgICBiYm94OiAiYmJveCIsCiAgICAgICAgYmVnaW46ICJiZWdpbiIsCiAgICAgICAgYmlhczogImJpYXMiLAogICAgICAgIGJ5OiAiYnkiLAogICAgICAgIGNhbGNtb2RlOiAiY2FsY01vZGUiLAogICAgICAgIGNhcGhlaWdodDogImNhcEhlaWdodCIsCiAgICAgICAgImNhcC1oZWlnaHQiOiAiY2FwSGVpZ2h0IiwKICAgICAgICBjbGlwOiAiY2xpcCIsCiAgICAgICAgY2xpcHBhdGg6ICJjbGlwUGF0aCIsCiAgICAgICAgImNsaXAtcGF0aCI6ICJjbGlwUGF0aCIsCiAgICAgICAgY2xpcHBhdGh1bml0czogImNsaXBQYXRoVW5pdHMiLAogICAgICAgIGNsaXBydWxlOiAiY2xpcFJ1bGUiLAogICAgICAgICJjbGlwLXJ1bGUiOiAiY2xpcFJ1bGUiLAogICAgICAgIGNvbG9yOiAiY29sb3IiLAogICAgICAgIGNvbG9yaW50ZXJwb2xhdGlvbjogImNvbG9ySW50ZXJwb2xhdGlvbiIsCiAgICAgICAgImNvbG9yLWludGVycG9sYXRpb24iOiAiY29sb3JJbnRlcnBvbGF0aW9uIiwKICAgICAgICBjb2xvcmludGVycG9sYXRpb25maWx0ZXJzOiAiY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVycyIsCiAgICAgICAgImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyI6ICJjb2xvckludGVycG9sYXRpb25GaWx0ZXJzIiwKICAgICAgICBjb2xvcnByb2ZpbGU6ICJjb2xvclByb2ZpbGUiLAogICAgICAgICJjb2xvci1wcm9maWxlIjogImNvbG9yUHJvZmlsZSIsCiAgICAgICAgY29sb3JyZW5kZXJpbmc6ICJjb2xvclJlbmRlcmluZyIsCiAgICAgICAgImNvbG9yLXJlbmRlcmluZyI6ICJjb2xvclJlbmRlcmluZyIsCiAgICAgICAgY29udGVudHNjcmlwdHR5cGU6ICJjb250ZW50U2NyaXB0VHlwZSIsCiAgICAgICAgY29udGVudHN0eWxldHlwZTogImNvbnRlbnRTdHlsZVR5cGUiLAogICAgICAgIGN1cnNvcjogImN1cnNvciIsCiAgICAgICAgY3g6ICJjeCIsCiAgICAgICAgY3k6ICJjeSIsCiAgICAgICAgZDogImQiLAogICAgICAgIGRhdGF0eXBlOiAiZGF0YXR5cGUiLAogICAgICAgIGRlY2VsZXJhdGU6ICJkZWNlbGVyYXRlIiwKICAgICAgICBkZXNjZW50OiAiZGVzY2VudCIsCiAgICAgICAgZGlmZnVzZWNvbnN0YW50OiAiZGlmZnVzZUNvbnN0YW50IiwKICAgICAgICBkaXJlY3Rpb246ICJkaXJlY3Rpb24iLAogICAgICAgIGRpc3BsYXk6ICJkaXNwbGF5IiwKICAgICAgICBkaXZpc29yOiAiZGl2aXNvciIsCiAgICAgICAgZG9taW5hbnRiYXNlbGluZTogImRvbWluYW50QmFzZWxpbmUiLAogICAgICAgICJkb21pbmFudC1iYXNlbGluZSI6ICJkb21pbmFudEJhc2VsaW5lIiwKICAgICAgICBkdXI6ICJkdXIiLAogICAgICAgIGR4OiAiZHgiLAogICAgICAgIGR5OiAiZHkiLAogICAgICAgIGVkZ2Vtb2RlOiAiZWRnZU1vZGUiLAogICAgICAgIGVsZXZhdGlvbjogImVsZXZhdGlvbiIsCiAgICAgICAgZW5hYmxlYmFja2dyb3VuZDogImVuYWJsZUJhY2tncm91bmQiLAogICAgICAgICJlbmFibGUtYmFja2dyb3VuZCI6ICJlbmFibGVCYWNrZ3JvdW5kIiwKICAgICAgICBlbmQ6ICJlbmQiLAogICAgICAgIGV4cG9uZW50OiAiZXhwb25lbnQiLAogICAgICAgIGV4dGVybmFscmVzb3VyY2VzcmVxdWlyZWQ6ICJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIiwKICAgICAgICBmaWxsOiAiZmlsbCIsCiAgICAgICAgZmlsbG9wYWNpdHk6ICJmaWxsT3BhY2l0eSIsCiAgICAgICAgImZpbGwtb3BhY2l0eSI6ICJmaWxsT3BhY2l0eSIsCiAgICAgICAgZmlsbHJ1bGU6ICJmaWxsUnVsZSIsCiAgICAgICAgImZpbGwtcnVsZSI6ICJmaWxsUnVsZSIsCiAgICAgICAgZmlsdGVyOiAiZmlsdGVyIiwKICAgICAgICBmaWx0ZXJyZXM6ICJmaWx0ZXJSZXMiLAogICAgICAgIGZpbHRlcnVuaXRzOiAiZmlsdGVyVW5pdHMiLAogICAgICAgIGZsb29kb3BhY2l0eTogImZsb29kT3BhY2l0eSIsCiAgICAgICAgImZsb29kLW9wYWNpdHkiOiAiZmxvb2RPcGFjaXR5IiwKICAgICAgICBmbG9vZGNvbG9yOiAiZmxvb2RDb2xvciIsCiAgICAgICAgImZsb29kLWNvbG9yIjogImZsb29kQ29sb3IiLAogICAgICAgIGZvY3VzYWJsZTogImZvY3VzYWJsZSIsCiAgICAgICAgZm9udGZhbWlseTogImZvbnRGYW1pbHkiLAogICAgICAgICJmb250LWZhbWlseSI6ICJmb250RmFtaWx5IiwKICAgICAgICBmb250c2l6ZTogImZvbnRTaXplIiwKICAgICAgICAiZm9udC1zaXplIjogImZvbnRTaXplIiwKICAgICAgICBmb250c2l6ZWFkanVzdDogImZvbnRTaXplQWRqdXN0IiwKICAgICAgICAiZm9udC1zaXplLWFkanVzdCI6ICJmb250U2l6ZUFkanVzdCIsCiAgICAgICAgZm9udHN0cmV0Y2g6ICJmb250U3RyZXRjaCIsCiAgICAgICAgImZvbnQtc3RyZXRjaCI6ICJmb250U3RyZXRjaCIsCiAgICAgICAgZm9udHN0eWxlOiAiZm9udFN0eWxlIiwKICAgICAgICAiZm9udC1zdHlsZSI6ICJmb250U3R5bGUiLAogICAgICAgIGZvbnR2YXJpYW50OiAiZm9udFZhcmlhbnQiLAogICAgICAgICJmb250LXZhcmlhbnQiOiAiZm9udFZhcmlhbnQiLAogICAgICAgIGZvbnR3ZWlnaHQ6ICJmb250V2VpZ2h0IiwKICAgICAgICAiZm9udC13ZWlnaHQiOiAiZm9udFdlaWdodCIsCiAgICAgICAgZm9ybWF0OiAiZm9ybWF0IiwKICAgICAgICBmcm9tOiAiZnJvbSIsCiAgICAgICAgZng6ICJmeCIsCiAgICAgICAgZnk6ICJmeSIsCiAgICAgICAgZzE6ICJnMSIsCiAgICAgICAgZzI6ICJnMiIsCiAgICAgICAgZ2x5cGhuYW1lOiAiZ2x5cGhOYW1lIiwKICAgICAgICAiZ2x5cGgtbmFtZSI6ICJnbHlwaE5hbWUiLAogICAgICAgIGdseXBob3JpZW50YXRpb25ob3Jpem9udGFsOiAiZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWwiLAogICAgICAgICJnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIjogImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsIiwKICAgICAgICBnbHlwaG9yaWVudGF0aW9udmVydGljYWw6ICJnbHlwaE9yaWVudGF0aW9uVmVydGljYWwiLAogICAgICAgICJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCI6ICJnbHlwaE9yaWVudGF0aW9uVmVydGljYWwiLAogICAgICAgIGdseXBocmVmOiAiZ2x5cGhSZWYiLAogICAgICAgIGdyYWRpZW50dHJhbnNmb3JtOiAiZ3JhZGllbnRUcmFuc2Zvcm0iLAogICAgICAgIGdyYWRpZW50dW5pdHM6ICJncmFkaWVudFVuaXRzIiwKICAgICAgICBoYW5naW5nOiAiaGFuZ2luZyIsCiAgICAgICAgaG9yaXphZHZ4OiAiaG9yaXpBZHZYIiwKICAgICAgICAiaG9yaXotYWR2LXgiOiAiaG9yaXpBZHZYIiwKICAgICAgICBob3Jpem9yaWdpbng6ICJob3Jpek9yaWdpblgiLAogICAgICAgICJob3Jpei1vcmlnaW4teCI6ICJob3Jpek9yaWdpblgiLAogICAgICAgIGlkZW9ncmFwaGljOiAiaWRlb2dyYXBoaWMiLAogICAgICAgIGltYWdlcmVuZGVyaW5nOiAiaW1hZ2VSZW5kZXJpbmciLAogICAgICAgICJpbWFnZS1yZW5kZXJpbmciOiAiaW1hZ2VSZW5kZXJpbmciLAogICAgICAgIGluMjogImluMiIsCiAgICAgICAgaW46ICJpbiIsCiAgICAgICAgaW5saXN0OiAiaW5saXN0IiwKICAgICAgICBpbnRlcmNlcHQ6ICJpbnRlcmNlcHQiLAogICAgICAgIGsxOiAiazEiLAogICAgICAgIGsyOiAiazIiLAogICAgICAgIGszOiAiazMiLAogICAgICAgIGs0OiAiazQiLAogICAgICAgIGs6ICJrIiwKICAgICAgICBrZXJuZWxtYXRyaXg6ICJrZXJuZWxNYXRyaXgiLAogICAgICAgIGtlcm5lbHVuaXRsZW5ndGg6ICJrZXJuZWxVbml0TGVuZ3RoIiwKICAgICAgICBrZXJuaW5nOiAia2VybmluZyIsCiAgICAgICAga2V5cG9pbnRzOiAia2V5UG9pbnRzIiwKICAgICAgICBrZXlzcGxpbmVzOiAia2V5U3BsaW5lcyIsCiAgICAgICAga2V5dGltZXM6ICJrZXlUaW1lcyIsCiAgICAgICAgbGVuZ3RoYWRqdXN0OiAibGVuZ3RoQWRqdXN0IiwKICAgICAgICBsZXR0ZXJzcGFjaW5nOiAibGV0dGVyU3BhY2luZyIsCiAgICAgICAgImxldHRlci1zcGFjaW5nIjogImxldHRlclNwYWNpbmciLAogICAgICAgIGxpZ2h0aW5nY29sb3I6ICJsaWdodGluZ0NvbG9yIiwKICAgICAgICAibGlnaHRpbmctY29sb3IiOiAibGlnaHRpbmdDb2xvciIsCiAgICAgICAgbGltaXRpbmdjb25lYW5nbGU6ICJsaW1pdGluZ0NvbmVBbmdsZSIsCiAgICAgICAgbG9jYWw6ICJsb2NhbCIsCiAgICAgICAgbWFya2VyZW5kOiAibWFya2VyRW5kIiwKICAgICAgICAibWFya2VyLWVuZCI6ICJtYXJrZXJFbmQiLAogICAgICAgIG1hcmtlcmhlaWdodDogIm1hcmtlckhlaWdodCIsCiAgICAgICAgbWFya2VybWlkOiAibWFya2VyTWlkIiwKICAgICAgICAibWFya2VyLW1pZCI6ICJtYXJrZXJNaWQiLAogICAgICAgIG1hcmtlcnN0YXJ0OiAibWFya2VyU3RhcnQiLAogICAgICAgICJtYXJrZXItc3RhcnQiOiAibWFya2VyU3RhcnQiLAogICAgICAgIG1hcmtlcnVuaXRzOiAibWFya2VyVW5pdHMiLAogICAgICAgIG1hcmtlcndpZHRoOiAibWFya2VyV2lkdGgiLAogICAgICAgIG1hc2s6ICJtYXNrIiwKICAgICAgICBtYXNrY29udGVudHVuaXRzOiAibWFza0NvbnRlbnRVbml0cyIsCiAgICAgICAgbWFza3VuaXRzOiAibWFza1VuaXRzIiwKICAgICAgICBtYXRoZW1hdGljYWw6ICJtYXRoZW1hdGljYWwiLAogICAgICAgIG1vZGU6ICJtb2RlIiwKICAgICAgICBudW1vY3RhdmVzOiAibnVtT2N0YXZlcyIsCiAgICAgICAgb2Zmc2V0OiAib2Zmc2V0IiwKICAgICAgICBvcGFjaXR5OiAib3BhY2l0eSIsCiAgICAgICAgb3BlcmF0b3I6ICJvcGVyYXRvciIsCiAgICAgICAgb3JkZXI6ICJvcmRlciIsCiAgICAgICAgb3JpZW50OiAib3JpZW50IiwKICAgICAgICBvcmllbnRhdGlvbjogIm9yaWVudGF0aW9uIiwKICAgICAgICBvcmlnaW46ICJvcmlnaW4iLAogICAgICAgIG92ZXJmbG93OiAib3ZlcmZsb3ciLAogICAgICAgIG92ZXJsaW5lcG9zaXRpb246ICJvdmVybGluZVBvc2l0aW9uIiwKICAgICAgICAib3ZlcmxpbmUtcG9zaXRpb24iOiAib3ZlcmxpbmVQb3NpdGlvbiIsCiAgICAgICAgb3ZlcmxpbmV0aGlja25lc3M6ICJvdmVybGluZVRoaWNrbmVzcyIsCiAgICAgICAgIm92ZXJsaW5lLXRoaWNrbmVzcyI6ICJvdmVybGluZVRoaWNrbmVzcyIsCiAgICAgICAgcGFpbnRvcmRlcjogInBhaW50T3JkZXIiLAogICAgICAgICJwYWludC1vcmRlciI6ICJwYWludE9yZGVyIiwKICAgICAgICBwYW5vc2UxOiAicGFub3NlMSIsCiAgICAgICAgInBhbm9zZS0xIjogInBhbm9zZTEiLAogICAgICAgIHBhdGhsZW5ndGg6ICJwYXRoTGVuZ3RoIiwKICAgICAgICBwYXR0ZXJuY29udGVudHVuaXRzOiAicGF0dGVybkNvbnRlbnRVbml0cyIsCiAgICAgICAgcGF0dGVybnRyYW5zZm9ybTogInBhdHRlcm5UcmFuc2Zvcm0iLAogICAgICAgIHBhdHRlcm51bml0czogInBhdHRlcm5Vbml0cyIsCiAgICAgICAgcG9pbnRlcmV2ZW50czogInBvaW50ZXJFdmVudHMiLAogICAgICAgICJwb2ludGVyLWV2ZW50cyI6ICJwb2ludGVyRXZlbnRzIiwKICAgICAgICBwb2ludHM6ICJwb2ludHMiLAogICAgICAgIHBvaW50c2F0eDogInBvaW50c0F0WCIsCiAgICAgICAgcG9pbnRzYXR5OiAicG9pbnRzQXRZIiwKICAgICAgICBwb2ludHNhdHo6ICJwb2ludHNBdFoiLAogICAgICAgIHBvcG92ZXI6ICJwb3BvdmVyIiwKICAgICAgICBwb3BvdmVydGFyZ2V0OiAicG9wb3ZlclRhcmdldCIsCiAgICAgICAgcG9wb3ZlcnRhcmdldGFjdGlvbjogInBvcG92ZXJUYXJnZXRBY3Rpb24iLAogICAgICAgIHByZWZpeDogInByZWZpeCIsCiAgICAgICAgcHJlc2VydmVhbHBoYTogInByZXNlcnZlQWxwaGEiLAogICAgICAgIHByZXNlcnZlYXNwZWN0cmF0aW86ICJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwKICAgICAgICBwcmltaXRpdmV1bml0czogInByaW1pdGl2ZVVuaXRzIiwKICAgICAgICBwcm9wZXJ0eTogInByb3BlcnR5IiwKICAgICAgICByOiAiciIsCiAgICAgICAgcmFkaXVzOiAicmFkaXVzIiwKICAgICAgICByZWZ4OiAicmVmWCIsCiAgICAgICAgcmVmeTogInJlZlkiLAogICAgICAgIHJlbmRlcmluZ2ludGVudDogInJlbmRlcmluZ0ludGVudCIsCiAgICAgICAgInJlbmRlcmluZy1pbnRlbnQiOiAicmVuZGVyaW5nSW50ZW50IiwKICAgICAgICByZXBlYXRjb3VudDogInJlcGVhdENvdW50IiwKICAgICAgICByZXBlYXRkdXI6ICJyZXBlYXREdXIiLAogICAgICAgIHJlcXVpcmVkZXh0ZW5zaW9uczogInJlcXVpcmVkRXh0ZW5zaW9ucyIsCiAgICAgICAgcmVxdWlyZWRmZWF0dXJlczogInJlcXVpcmVkRmVhdHVyZXMiLAogICAgICAgIHJlc291cmNlOiAicmVzb3VyY2UiLAogICAgICAgIHJlc3RhcnQ6ICJyZXN0YXJ0IiwKICAgICAgICByZXN1bHQ6ICJyZXN1bHQiLAogICAgICAgIHJlc3VsdHM6ICJyZXN1bHRzIiwKICAgICAgICByb3RhdGU6ICJyb3RhdGUiLAogICAgICAgIHJ4OiAicngiLAogICAgICAgIHJ5OiAicnkiLAogICAgICAgIHNjYWxlOiAic2NhbGUiLAogICAgICAgIHNlY3VyaXR5OiAic2VjdXJpdHkiLAogICAgICAgIHNlZWQ6ICJzZWVkIiwKICAgICAgICBzaGFwZXJlbmRlcmluZzogInNoYXBlUmVuZGVyaW5nIiwKICAgICAgICAic2hhcGUtcmVuZGVyaW5nIjogInNoYXBlUmVuZGVyaW5nIiwKICAgICAgICBzbG9wZTogInNsb3BlIiwKICAgICAgICBzcGFjaW5nOiAic3BhY2luZyIsCiAgICAgICAgc3BlY3VsYXJjb25zdGFudDogInNwZWN1bGFyQ29uc3RhbnQiLAogICAgICAgIHNwZWN1bGFyZXhwb25lbnQ6ICJzcGVjdWxhckV4cG9uZW50IiwKICAgICAgICBzcGVlZDogInNwZWVkIiwKICAgICAgICBzcHJlYWRtZXRob2Q6ICJzcHJlYWRNZXRob2QiLAogICAgICAgIHN0YXJ0b2Zmc2V0OiAic3RhcnRPZmZzZXQiLAogICAgICAgIHN0ZGRldmlhdGlvbjogInN0ZERldmlhdGlvbiIsCiAgICAgICAgc3RlbWg6ICJzdGVtaCIsCiAgICAgICAgc3RlbXY6ICJzdGVtdiIsCiAgICAgICAgc3RpdGNodGlsZXM6ICJzdGl0Y2hUaWxlcyIsCiAgICAgICAgc3RvcGNvbG9yOiAic3RvcENvbG9yIiwKICAgICAgICAic3RvcC1jb2xvciI6ICJzdG9wQ29sb3IiLAogICAgICAgIHN0b3BvcGFjaXR5OiAic3RvcE9wYWNpdHkiLAogICAgICAgICJzdG9wLW9wYWNpdHkiOiAic3RvcE9wYWNpdHkiLAogICAgICAgIHN0cmlrZXRocm91Z2hwb3NpdGlvbjogInN0cmlrZXRocm91Z2hQb3NpdGlvbiIsCiAgICAgICAgInN0cmlrZXRocm91Z2gtcG9zaXRpb24iOiAic3RyaWtldGhyb3VnaFBvc2l0aW9uIiwKICAgICAgICBzdHJpa2V0aHJvdWdodGhpY2tuZXNzOiAic3RyaWtldGhyb3VnaFRoaWNrbmVzcyIsCiAgICAgICAgInN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIjogInN0cmlrZXRocm91Z2hUaGlja25lc3MiLAogICAgICAgIHN0cmluZzogInN0cmluZyIsCiAgICAgICAgc3Ryb2tlOiAic3Ryb2tlIiwKICAgICAgICBzdHJva2VkYXNoYXJyYXk6ICJzdHJva2VEYXNoYXJyYXkiLAogICAgICAgICJzdHJva2UtZGFzaGFycmF5IjogInN0cm9rZURhc2hhcnJheSIsCiAgICAgICAgc3Ryb2tlZGFzaG9mZnNldDogInN0cm9rZURhc2hvZmZzZXQiLAogICAgICAgICJzdHJva2UtZGFzaG9mZnNldCI6ICJzdHJva2VEYXNob2Zmc2V0IiwKICAgICAgICBzdHJva2VsaW5lY2FwOiAic3Ryb2tlTGluZWNhcCIsCiAgICAgICAgInN0cm9rZS1saW5lY2FwIjogInN0cm9rZUxpbmVjYXAiLAogICAgICAgIHN0cm9rZWxpbmVqb2luOiAic3Ryb2tlTGluZWpvaW4iLAogICAgICAgICJzdHJva2UtbGluZWpvaW4iOiAic3Ryb2tlTGluZWpvaW4iLAogICAgICAgIHN0cm9rZW1pdGVybGltaXQ6ICJzdHJva2VNaXRlcmxpbWl0IiwKICAgICAgICAic3Ryb2tlLW1pdGVybGltaXQiOiAic3Ryb2tlTWl0ZXJsaW1pdCIsCiAgICAgICAgc3Ryb2tld2lkdGg6ICJzdHJva2VXaWR0aCIsCiAgICAgICAgInN0cm9rZS13aWR0aCI6ICJzdHJva2VXaWR0aCIsCiAgICAgICAgc3Ryb2tlb3BhY2l0eTogInN0cm9rZU9wYWNpdHkiLAogICAgICAgICJzdHJva2Utb3BhY2l0eSI6ICJzdHJva2VPcGFjaXR5IiwKICAgICAgICBzdXBwcmVzc2NvbnRlbnRlZGl0YWJsZXdhcm5pbmc6ICJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciLAogICAgICAgIHN1cHByZXNzaHlkcmF0aW9ud2FybmluZzogInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyIsCiAgICAgICAgc3VyZmFjZXNjYWxlOiAic3VyZmFjZVNjYWxlIiwKICAgICAgICBzeXN0ZW1sYW5ndWFnZTogInN5c3RlbUxhbmd1YWdlIiwKICAgICAgICB0YWJsZXZhbHVlczogInRhYmxlVmFsdWVzIiwKICAgICAgICB0YXJnZXR4OiAidGFyZ2V0WCIsCiAgICAgICAgdGFyZ2V0eTogInRhcmdldFkiLAogICAgICAgIHRleHRhbmNob3I6ICJ0ZXh0QW5jaG9yIiwKICAgICAgICAidGV4dC1hbmNob3IiOiAidGV4dEFuY2hvciIsCiAgICAgICAgdGV4dGRlY29yYXRpb246ICJ0ZXh0RGVjb3JhdGlvbiIsCiAgICAgICAgInRleHQtZGVjb3JhdGlvbiI6ICJ0ZXh0RGVjb3JhdGlvbiIsCiAgICAgICAgdGV4dGxlbmd0aDogInRleHRMZW5ndGgiLAogICAgICAgIHRleHRyZW5kZXJpbmc6ICJ0ZXh0UmVuZGVyaW5nIiwKICAgICAgICAidGV4dC1yZW5kZXJpbmciOiAidGV4dFJlbmRlcmluZyIsCiAgICAgICAgdG86ICJ0byIsCiAgICAgICAgdHJhbnNmb3JtOiAidHJhbnNmb3JtIiwKICAgICAgICB0cmFuc2Zvcm1vcmlnaW46ICJ0cmFuc2Zvcm1PcmlnaW4iLAogICAgICAgICJ0cmFuc2Zvcm0tb3JpZ2luIjogInRyYW5zZm9ybU9yaWdpbiIsCiAgICAgICAgdHlwZW9mOiAidHlwZW9mIiwKICAgICAgICB1MTogInUxIiwKICAgICAgICB1MjogInUyIiwKICAgICAgICB1bmRlcmxpbmVwb3NpdGlvbjogInVuZGVybGluZVBvc2l0aW9uIiwKICAgICAgICAidW5kZXJsaW5lLXBvc2l0aW9uIjogInVuZGVybGluZVBvc2l0aW9uIiwKICAgICAgICB1bmRlcmxpbmV0aGlja25lc3M6ICJ1bmRlcmxpbmVUaGlja25lc3MiLAogICAgICAgICJ1bmRlcmxpbmUtdGhpY2tuZXNzIjogInVuZGVybGluZVRoaWNrbmVzcyIsCiAgICAgICAgdW5pY29kZTogInVuaWNvZGUiLAogICAgICAgIHVuaWNvZGViaWRpOiAidW5pY29kZUJpZGkiLAogICAgICAgICJ1bmljb2RlLWJpZGkiOiAidW5pY29kZUJpZGkiLAogICAgICAgIHVuaWNvZGVyYW5nZTogInVuaWNvZGVSYW5nZSIsCiAgICAgICAgInVuaWNvZGUtcmFuZ2UiOiAidW5pY29kZVJhbmdlIiwKICAgICAgICB1bml0c3BlcmVtOiAidW5pdHNQZXJFbSIsCiAgICAgICAgInVuaXRzLXBlci1lbSI6ICJ1bml0c1BlckVtIiwKICAgICAgICB1bnNlbGVjdGFibGU6ICJ1bnNlbGVjdGFibGUiLAogICAgICAgIHZhbHBoYWJldGljOiAidkFscGhhYmV0aWMiLAogICAgICAgICJ2LWFscGhhYmV0aWMiOiAidkFscGhhYmV0aWMiLAogICAgICAgIHZhbHVlczogInZhbHVlcyIsCiAgICAgICAgdmVjdG9yZWZmZWN0OiAidmVjdG9yRWZmZWN0IiwKICAgICAgICAidmVjdG9yLWVmZmVjdCI6ICJ2ZWN0b3JFZmZlY3QiLAogICAgICAgIHZlcnNpb246ICJ2ZXJzaW9uIiwKICAgICAgICB2ZXJ0YWR2eTogInZlcnRBZHZZIiwKICAgICAgICAidmVydC1hZHYteSI6ICJ2ZXJ0QWR2WSIsCiAgICAgICAgdmVydG9yaWdpbng6ICJ2ZXJ0T3JpZ2luWCIsCiAgICAgICAgInZlcnQtb3JpZ2luLXgiOiAidmVydE9yaWdpblgiLAogICAgICAgIHZlcnRvcmlnaW55OiAidmVydE9yaWdpblkiLAogICAgICAgICJ2ZXJ0LW9yaWdpbi15IjogInZlcnRPcmlnaW5ZIiwKICAgICAgICB2aGFuZ2luZzogInZIYW5naW5nIiwKICAgICAgICAidi1oYW5naW5nIjogInZIYW5naW5nIiwKICAgICAgICB2aWRlb2dyYXBoaWM6ICJ2SWRlb2dyYXBoaWMiLAogICAgICAgICJ2LWlkZW9ncmFwaGljIjogInZJZGVvZ3JhcGhpYyIsCiAgICAgICAgdmlld2JveDogInZpZXdCb3giLAogICAgICAgIHZpZXd0YXJnZXQ6ICJ2aWV3VGFyZ2V0IiwKICAgICAgICB2aXNpYmlsaXR5OiAidmlzaWJpbGl0eSIsCiAgICAgICAgdm1hdGhlbWF0aWNhbDogInZNYXRoZW1hdGljYWwiLAogICAgICAgICJ2LW1hdGhlbWF0aWNhbCI6ICJ2TWF0aGVtYXRpY2FsIiwKICAgICAgICB2b2NhYjogInZvY2FiIiwKICAgICAgICB3aWR0aHM6ICJ3aWR0aHMiLAogICAgICAgIHdvcmRzcGFjaW5nOiAid29yZFNwYWNpbmciLAogICAgICAgICJ3b3JkLXNwYWNpbmciOiAid29yZFNwYWNpbmciLAogICAgICAgIHdyaXRpbmdtb2RlOiAid3JpdGluZ01vZGUiLAogICAgICAgICJ3cml0aW5nLW1vZGUiOiAid3JpdGluZ01vZGUiLAogICAgICAgIHgxOiAieDEiLAogICAgICAgIHgyOiAieDIiLAogICAgICAgIHg6ICJ4IiwKICAgICAgICB4Y2hhbm5lbHNlbGVjdG9yOiAieENoYW5uZWxTZWxlY3RvciIsCiAgICAgICAgeGhlaWdodDogInhIZWlnaHQiLAogICAgICAgICJ4LWhlaWdodCI6ICJ4SGVpZ2h0IiwKICAgICAgICB4bGlua2FjdHVhdGU6ICJ4bGlua0FjdHVhdGUiLAogICAgICAgICJ4bGluazphY3R1YXRlIjogInhsaW5rQWN0dWF0ZSIsCiAgICAgICAgeGxpbmthcmNyb2xlOiAieGxpbmtBcmNyb2xlIiwKICAgICAgICAieGxpbms6YXJjcm9sZSI6ICJ4bGlua0FyY3JvbGUiLAogICAgICAgIHhsaW5raHJlZjogInhsaW5rSHJlZiIsCiAgICAgICAgInhsaW5rOmhyZWYiOiAieGxpbmtIcmVmIiwKICAgICAgICB4bGlua3JvbGU6ICJ4bGlua1JvbGUiLAogICAgICAgICJ4bGluazpyb2xlIjogInhsaW5rUm9sZSIsCiAgICAgICAgeGxpbmtzaG93OiAieGxpbmtTaG93IiwKICAgICAgICAieGxpbms6c2hvdyI6ICJ4bGlua1Nob3ciLAogICAgICAgIHhsaW5rdGl0bGU6ICJ4bGlua1RpdGxlIiwKICAgICAgICAieGxpbms6dGl0bGUiOiAieGxpbmtUaXRsZSIsCiAgICAgICAgeGxpbmt0eXBlOiAieGxpbmtUeXBlIiwKICAgICAgICAieGxpbms6dHlwZSI6ICJ4bGlua1R5cGUiLAogICAgICAgIHhtbGJhc2U6ICJ4bWxCYXNlIiwKICAgICAgICAieG1sOmJhc2UiOiAieG1sQmFzZSIsCiAgICAgICAgeG1sbGFuZzogInhtbExhbmciLAogICAgICAgICJ4bWw6bGFuZyI6ICJ4bWxMYW5nIiwKICAgICAgICB4bWxuczogInhtbG5zIiwKICAgICAgICAieG1sOnNwYWNlIjogInhtbFNwYWNlIiwKICAgICAgICB4bWxuc3hsaW5rOiAieG1sbnNYbGluayIsCiAgICAgICAgInhtbG5zOnhsaW5rIjogInhtbG5zWGxpbmsiLAogICAgICAgIHhtbHNwYWNlOiAieG1sU3BhY2UiLAogICAgICAgIHkxOiAieTEiLAogICAgICAgIHkyOiAieTIiLAogICAgICAgIHk6ICJ5IiwKICAgICAgICB5Y2hhbm5lbHNlbGVjdG9yOiAieUNoYW5uZWxTZWxlY3RvciIsCiAgICAgICAgejogInoiLAogICAgICAgIHpvb21hbmRwYW46ICJ6b29tQW5kUGFuIgogICAgICB9LCBhcmlhUHJvcGVydGllcyA9IHsKICAgICAgICAiYXJpYS1jdXJyZW50IjogMCwKICAgICAgICAiYXJpYS1kZXNjcmlwdGlvbiI6IDAsCiAgICAgICAgImFyaWEtZGV0YWlscyI6IDAsCiAgICAgICAgImFyaWEtZGlzYWJsZWQiOiAwLAogICAgICAgICJhcmlhLWhpZGRlbiI6IDAsCiAgICAgICAgImFyaWEtaW52YWxpZCI6IDAsCiAgICAgICAgImFyaWEta2V5c2hvcnRjdXRzIjogMCwKICAgICAgICAiYXJpYS1sYWJlbCI6IDAsCiAgICAgICAgImFyaWEtcm9sZWRlc2NyaXB0aW9uIjogMCwKICAgICAgICAiYXJpYS1hdXRvY29tcGxldGUiOiAwLAogICAgICAgICJhcmlhLWNoZWNrZWQiOiAwLAogICAgICAgICJhcmlhLWV4cGFuZGVkIjogMCwKICAgICAgICAiYXJpYS1oYXNwb3B1cCI6IDAsCiAgICAgICAgImFyaWEtbGV2ZWwiOiAwLAogICAgICAgICJhcmlhLW1vZGFsIjogMCwKICAgICAgICAiYXJpYS1tdWx0aWxpbmUiOiAwLAogICAgICAgICJhcmlhLW11bHRpc2VsZWN0YWJsZSI6IDAsCiAgICAgICAgImFyaWEtb3JpZW50YXRpb24iOiAwLAogICAgICAgICJhcmlhLXBsYWNlaG9sZGVyIjogMCwKICAgICAgICAiYXJpYS1wcmVzc2VkIjogMCwKICAgICAgICAiYXJpYS1yZWFkb25seSI6IDAsCiAgICAgICAgImFyaWEtcmVxdWlyZWQiOiAwLAogICAgICAgICJhcmlhLXNlbGVjdGVkIjogMCwKICAgICAgICAiYXJpYS1zb3J0IjogMCwKICAgICAgICAiYXJpYS12YWx1ZW1heCI6IDAsCiAgICAgICAgImFyaWEtdmFsdWVtaW4iOiAwLAogICAgICAgICJhcmlhLXZhbHVlbm93IjogMCwKICAgICAgICAiYXJpYS12YWx1ZXRleHQiOiAwLAogICAgICAgICJhcmlhLWF0b21pYyI6IDAsCiAgICAgICAgImFyaWEtYnVzeSI6IDAsCiAgICAgICAgImFyaWEtbGl2ZSI6IDAsCiAgICAgICAgImFyaWEtcmVsZXZhbnQiOiAwLAogICAgICAgICJhcmlhLWRyb3BlZmZlY3QiOiAwLAogICAgICAgICJhcmlhLWdyYWJiZWQiOiAwLAogICAgICAgICJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiOiAwLAogICAgICAgICJhcmlhLWNvbGNvdW50IjogMCwKICAgICAgICAiYXJpYS1jb2xpbmRleCI6IDAsCiAgICAgICAgImFyaWEtY29sc3BhbiI6IDAsCiAgICAgICAgImFyaWEtY29udHJvbHMiOiAwLAogICAgICAgICJhcmlhLWRlc2NyaWJlZGJ5IjogMCwKICAgICAgICAiYXJpYS1lcnJvcm1lc3NhZ2UiOiAwLAogICAgICAgICJhcmlhLWZsb3d0byI6IDAsCiAgICAgICAgImFyaWEtbGFiZWxsZWRieSI6IDAsCiAgICAgICAgImFyaWEtb3ducyI6IDAsCiAgICAgICAgImFyaWEtcG9zaW5zZXQiOiAwLAogICAgICAgICJhcmlhLXJvd2NvdW50IjogMCwKICAgICAgICAiYXJpYS1yb3dpbmRleCI6IDAsCiAgICAgICAgImFyaWEtcm93c3BhbiI6IDAsCiAgICAgICAgImFyaWEtc2V0c2l6ZSI6IDAsCiAgICAgICAgImFyaWEtYnJhaWxsZWxhYmVsIjogMCwKICAgICAgICAiYXJpYS1icmFpbGxlcm9sZWRlc2NyaXB0aW9uIjogMCwKICAgICAgICAiYXJpYS1jb2xpbmRleHRleHQiOiAwLAogICAgICAgICJhcmlhLXJvd2luZGV4dGV4dCI6IDAKICAgICAgfSwgd2FybmVkUHJvcGVydGllcyQxID0ge30sIHJBUklBJDEgPSBSZWdFeHAoCiAgICAgICAgIl4oYXJpYSktWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXFwtLjAtOVxcdTAwQjdcXHUwMzAwLVxcdTAzNkZcXHUyMDNGLVxcdTIwNDBdKiQiCiAgICAgICksIHJBUklBQ2FtZWwkMSA9IFJlZ0V4cCgKICAgICAgICAiXihhcmlhKVtBLVpdWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXFwtLjAtOVxcdTAwQjdcXHUwMzAwLVxcdTAzNkZcXHUyMDNGLVxcdTIwNDBdKiQiCiAgICAgICksIGRpZFdhcm5WYWx1ZU51bGwgPSBmYWxzZSwgd2FybmVkUHJvcGVydGllcyA9IHt9LCBFVkVOVF9OQU1FX1JFR0VYID0gL15vbi4vLCBJTlZBTElEX0VWRU5UX05BTUVfUkVHRVggPSAvXm9uW15BLVpdLywgckFSSUEgPSBSZWdFeHAoCiAgICAgICAgIl4oYXJpYSktWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXFwtLjAtOVxcdTAwQjdcXHUwMzAwLVxcdTAzNkZcXHUyMDNGLVxcdTIwNDBdKiQiCiAgICAgICksIHJBUklBQ2FtZWwgPSBSZWdFeHAoCiAgICAgICAgIl4oYXJpYSlbQS1aXVs6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSokIgogICAgICApLCBpc0phdmFTY3JpcHRQcm90b2NvbCA9IC9eW1x1MDAwMC1cdTAwMUYgXSpqW1xyXG5cdF0qYVtcclxuXHRdKnZbXHJcblx0XSphW1xyXG5cdF0qc1tcclxuXHRdKmNbXHJcblx0XSpyW1xyXG5cdF0qaVtcclxuXHRdKnBbXHJcblx0XSp0W1xyXG5cdF0qOi9pLCBjdXJyZW50UmVwbGF5aW5nRXZlbnQgPSBudWxsLCByZXN0b3JlVGFyZ2V0ID0gbnVsbCwgcmVzdG9yZVF1ZXVlID0gbnVsbCwgaXNJbnNpZGVFdmVudEhhbmRsZXIgPSBmYWxzZSwgY2FuVXNlRE9NID0gISgidW5kZWZpbmVkIiA9PT0gdHlwZW9mIHdpbmRvdyB8fCAidW5kZWZpbmVkIiA9PT0gdHlwZW9mIHdpbmRvdy5kb2N1bWVudCB8fCAidW5kZWZpbmVkIiA9PT0gdHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KSwgcGFzc2l2ZUJyb3dzZXJFdmVudHNTdXBwb3J0ZWQgPSBmYWxzZTsKICAgICAgaWYgKGNhblVzZURPTSkKICAgICAgICB0cnkgewogICAgICAgICAgdmFyIG9wdGlvbnMkanNjb21wJDAgPSB7fTsKICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvcHRpb25zJGpzY29tcCQwLCAicGFzc2l2ZSIsIHsKICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBwYXNzaXZlQnJvd3NlckV2ZW50c1N1cHBvcnRlZCA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLCBvcHRpb25zJGpzY29tcCQwLCBvcHRpb25zJGpzY29tcCQwKTsKICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0Iiwgb3B0aW9ucyRqc2NvbXAkMCwgb3B0aW9ucyRqc2NvbXAkMCk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgcGFzc2l2ZUJyb3dzZXJFdmVudHNTdXBwb3J0ZWQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIHZhciByb290ID0gbnVsbCwgc3RhcnRUZXh0ID0gbnVsbCwgZmFsbGJhY2tUZXh0ID0gbnVsbCwgRXZlbnRJbnRlcmZhY2UgPSB7CiAgICAgICAgZXZlbnRQaGFzZTogMCwKICAgICAgICBidWJibGVzOiAwLAogICAgICAgIGNhbmNlbGFibGU6IDAsCiAgICAgICAgdGltZVN0YW1wOiBmdW5jdGlvbihldmVudCkgewogICAgICAgICAgcmV0dXJuIGV2ZW50LnRpbWVTdGFtcCB8fCBEYXRlLm5vdygpOwogICAgICAgIH0sCiAgICAgICAgZGVmYXVsdFByZXZlbnRlZDogMCwKICAgICAgICBpc1RydXN0ZWQ6IDAKICAgICAgfSwgU3ludGhldGljRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChFdmVudEludGVyZmFjZSksIFVJRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7IHZpZXc6IDAsIGRldGFpbDogMCB9KSwgU3ludGhldGljVUlFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFVJRXZlbnRJbnRlcmZhY2UpLCBsYXN0TW92ZW1lbnRYLCBsYXN0TW92ZW1lbnRZLCBsYXN0TW91c2VFdmVudCwgTW91c2VFdmVudEludGVyZmFjZSA9IGFzc2lnbih7fSwgVUlFdmVudEludGVyZmFjZSwgewogICAgICAgIHNjcmVlblg6IDAsCiAgICAgICAgc2NyZWVuWTogMCwKICAgICAgICBjbGllbnRYOiAwLAogICAgICAgIGNsaWVudFk6IDAsCiAgICAgICAgcGFnZVg6IDAsCiAgICAgICAgcGFnZVk6IDAsCiAgICAgICAgY3RybEtleTogMCwKICAgICAgICBzaGlmdEtleTogMCwKICAgICAgICBhbHRLZXk6IDAsCiAgICAgICAgbWV0YUtleTogMCwKICAgICAgICBnZXRNb2RpZmllclN0YXRlOiBnZXRFdmVudE1vZGlmaWVyU3RhdGUsCiAgICAgICAgYnV0dG9uOiAwLAogICAgICAgIGJ1dHRvbnM6IDAsCiAgICAgICAgcmVsYXRlZFRhcmdldDogZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgIHJldHVybiB2b2lkIDAgPT09IGV2ZW50LnJlbGF0ZWRUYXJnZXQgPyBldmVudC5mcm9tRWxlbWVudCA9PT0gZXZlbnQuc3JjRWxlbWVudCA/IGV2ZW50LnRvRWxlbWVudCA6IGV2ZW50LmZyb21FbGVtZW50IDogZXZlbnQucmVsYXRlZFRhcmdldDsKICAgICAgICB9LAogICAgICAgIG1vdmVtZW50WDogZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgIGlmICgibW92ZW1lbnRYIiBpbiBldmVudCkgcmV0dXJuIGV2ZW50Lm1vdmVtZW50WDsKICAgICAgICAgIGV2ZW50ICE9PSBsYXN0TW91c2VFdmVudCAmJiAobGFzdE1vdXNlRXZlbnQgJiYgIm1vdXNlbW92ZSIgPT09IGV2ZW50LnR5cGUgPyAobGFzdE1vdmVtZW50WCA9IGV2ZW50LnNjcmVlblggLSBsYXN0TW91c2VFdmVudC5zY3JlZW5YLCBsYXN0TW92ZW1lbnRZID0gZXZlbnQuc2NyZWVuWSAtIGxhc3RNb3VzZUV2ZW50LnNjcmVlblkpIDogbGFzdE1vdmVtZW50WSA9IGxhc3RNb3ZlbWVudFggPSAwLCBsYXN0TW91c2VFdmVudCA9IGV2ZW50KTsKICAgICAgICAgIHJldHVybiBsYXN0TW92ZW1lbnRYOwogICAgICAgIH0sCiAgICAgICAgbW92ZW1lbnRZOiBmdW5jdGlvbihldmVudCkgewogICAgICAgICAgcmV0dXJuICJtb3ZlbWVudFkiIGluIGV2ZW50ID8gZXZlbnQubW92ZW1lbnRZIDogbGFzdE1vdmVtZW50WTsKICAgICAgICB9CiAgICAgIH0pLCBTeW50aGV0aWNNb3VzZUV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoTW91c2VFdmVudEludGVyZmFjZSksIERyYWdFdmVudEludGVyZmFjZSA9IGFzc2lnbih7fSwgTW91c2VFdmVudEludGVyZmFjZSwgeyBkYXRhVHJhbnNmZXI6IDAgfSksIFN5bnRoZXRpY0RyYWdFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KERyYWdFdmVudEludGVyZmFjZSksIEZvY3VzRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIFVJRXZlbnRJbnRlcmZhY2UsIHsgcmVsYXRlZFRhcmdldDogMCB9KSwgU3ludGhldGljRm9jdXNFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEZvY3VzRXZlbnRJbnRlcmZhY2UpLCBBbmltYXRpb25FdmVudEludGVyZmFjZSA9IGFzc2lnbih7fSwgRXZlbnRJbnRlcmZhY2UsIHsKICAgICAgICBhbmltYXRpb25OYW1lOiAwLAogICAgICAgIGVsYXBzZWRUaW1lOiAwLAogICAgICAgIHBzZXVkb0VsZW1lbnQ6IDAKICAgICAgfSksIFN5bnRoZXRpY0FuaW1hdGlvbkV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoQW5pbWF0aW9uRXZlbnRJbnRlcmZhY2UpLCBDbGlwYm9hcmRFdmVudEludGVyZmFjZSA9IGFzc2lnbih7fSwgRXZlbnRJbnRlcmZhY2UsIHsKICAgICAgICBjbGlwYm9hcmREYXRhOiBmdW5jdGlvbihldmVudCkgewogICAgICAgICAgcmV0dXJuICJjbGlwYm9hcmREYXRhIiBpbiBldmVudCA/IGV2ZW50LmNsaXBib2FyZERhdGEgOiB3aW5kb3cuY2xpcGJvYXJkRGF0YTsKICAgICAgICB9CiAgICAgIH0pLCBTeW50aGV0aWNDbGlwYm9hcmRFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KENsaXBib2FyZEV2ZW50SW50ZXJmYWNlKSwgQ29tcG9zaXRpb25FdmVudEludGVyZmFjZSA9IGFzc2lnbih7fSwgRXZlbnRJbnRlcmZhY2UsIHsgZGF0YTogMCB9KSwgU3ludGhldGljQ29tcG9zaXRpb25FdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KAogICAgICAgIENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UKICAgICAgKSwgU3ludGhldGljSW5wdXRFdmVudCA9IFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQsIG5vcm1hbGl6ZUtleSA9IHsKICAgICAgICBFc2M6ICJFc2NhcGUiLAogICAgICAgIFNwYWNlYmFyOiAiICIsCiAgICAgICAgTGVmdDogIkFycm93TGVmdCIsCiAgICAgICAgVXA6ICJBcnJvd1VwIiwKICAgICAgICBSaWdodDogIkFycm93UmlnaHQiLAogICAgICAgIERvd246ICJBcnJvd0Rvd24iLAogICAgICAgIERlbDogIkRlbGV0ZSIsCiAgICAgICAgV2luOiAiT1MiLAogICAgICAgIE1lbnU6ICJDb250ZXh0TWVudSIsCiAgICAgICAgQXBwczogIkNvbnRleHRNZW51IiwKICAgICAgICBTY3JvbGw6ICJTY3JvbGxMb2NrIiwKICAgICAgICBNb3pQcmludGFibGVLZXk6ICJVbmlkZW50aWZpZWQiCiAgICAgIH0sIHRyYW5zbGF0ZVRvS2V5ID0gewogICAgICAgIDg6ICJCYWNrc3BhY2UiLAogICAgICAgIDk6ICJUYWIiLAogICAgICAgIDEyOiAiQ2xlYXIiLAogICAgICAgIDEzOiAiRW50ZXIiLAogICAgICAgIDE2OiAiU2hpZnQiLAogICAgICAgIDE3OiAiQ29udHJvbCIsCiAgICAgICAgMTg6ICJBbHQiLAogICAgICAgIDE5OiAiUGF1c2UiLAogICAgICAgIDIwOiAiQ2Fwc0xvY2siLAogICAgICAgIDI3OiAiRXNjYXBlIiwKICAgICAgICAzMjogIiAiLAogICAgICAgIDMzOiAiUGFnZVVwIiwKICAgICAgICAzNDogIlBhZ2VEb3duIiwKICAgICAgICAzNTogIkVuZCIsCiAgICAgICAgMzY6ICJIb21lIiwKICAgICAgICAzNzogIkFycm93TGVmdCIsCiAgICAgICAgMzg6ICJBcnJvd1VwIiwKICAgICAgICAzOTogIkFycm93UmlnaHQiLAogICAgICAgIDQwOiAiQXJyb3dEb3duIiwKICAgICAgICA0NTogIkluc2VydCIsCiAgICAgICAgNDY6ICJEZWxldGUiLAogICAgICAgIDExMjogIkYxIiwKICAgICAgICAxMTM6ICJGMiIsCiAgICAgICAgMTE0OiAiRjMiLAogICAgICAgIDExNTogIkY0IiwKICAgICAgICAxMTY6ICJGNSIsCiAgICAgICAgMTE3OiAiRjYiLAogICAgICAgIDExODogIkY3IiwKICAgICAgICAxMTk6ICJGOCIsCiAgICAgICAgMTIwOiAiRjkiLAogICAgICAgIDEyMTogIkYxMCIsCiAgICAgICAgMTIyOiAiRjExIiwKICAgICAgICAxMjM6ICJGMTIiLAogICAgICAgIDE0NDogIk51bUxvY2siLAogICAgICAgIDE0NTogIlNjcm9sbExvY2siLAogICAgICAgIDIyNDogIk1ldGEiCiAgICAgIH0sIG1vZGlmaWVyS2V5VG9Qcm9wID0gewogICAgICAgIEFsdDogImFsdEtleSIsCiAgICAgICAgQ29udHJvbDogImN0cmxLZXkiLAogICAgICAgIE1ldGE6ICJtZXRhS2V5IiwKICAgICAgICBTaGlmdDogInNoaWZ0S2V5IgogICAgICB9LCBLZXlib2FyZEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7CiAgICAgICAga2V5OiBmdW5jdGlvbihuYXRpdmVFdmVudCkgewogICAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LmtleSkgewogICAgICAgICAgICB2YXIga2V5ID0gbm9ybWFsaXplS2V5W25hdGl2ZUV2ZW50LmtleV0gfHwgbmF0aXZlRXZlbnQua2V5OwogICAgICAgICAgICBpZiAoIlVuaWRlbnRpZmllZCIgIT09IGtleSkgcmV0dXJuIGtleTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiAia2V5cHJlc3MiID09PSBuYXRpdmVFdmVudC50eXBlID8gKG5hdGl2ZUV2ZW50ID0gZ2V0RXZlbnRDaGFyQ29kZShuYXRpdmVFdmVudCksIDEzID09PSBuYXRpdmVFdmVudCA/ICJFbnRlciIgOiBTdHJpbmcuZnJvbUNoYXJDb2RlKG5hdGl2ZUV2ZW50KSkgOiAia2V5ZG93biIgPT09IG5hdGl2ZUV2ZW50LnR5cGUgfHwgImtleXVwIiA9PT0gbmF0aXZlRXZlbnQudHlwZSA/IHRyYW5zbGF0ZVRvS2V5W25hdGl2ZUV2ZW50LmtleUNvZGVdIHx8ICJVbmlkZW50aWZpZWQiIDogIiI7CiAgICAgICAgfSwKICAgICAgICBjb2RlOiAwLAogICAgICAgIGxvY2F0aW9uOiAwLAogICAgICAgIGN0cmxLZXk6IDAsCiAgICAgICAgc2hpZnRLZXk6IDAsCiAgICAgICAgYWx0S2V5OiAwLAogICAgICAgIG1ldGFLZXk6IDAsCiAgICAgICAgcmVwZWF0OiAwLAogICAgICAgIGxvY2FsZTogMCwKICAgICAgICBnZXRNb2RpZmllclN0YXRlOiBnZXRFdmVudE1vZGlmaWVyU3RhdGUsCiAgICAgICAgY2hhckNvZGU6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICByZXR1cm4gImtleXByZXNzIiA9PT0gZXZlbnQudHlwZSA/IGdldEV2ZW50Q2hhckNvZGUoZXZlbnQpIDogMDsKICAgICAgICB9LAogICAgICAgIGtleUNvZGU6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICByZXR1cm4gImtleWRvd24iID09PSBldmVudC50eXBlIHx8ICJrZXl1cCIgPT09IGV2ZW50LnR5cGUgPyBldmVudC5rZXlDb2RlIDogMDsKICAgICAgICB9LAogICAgICAgIHdoaWNoOiBmdW5jdGlvbihldmVudCkgewogICAgICAgICAgcmV0dXJuICJrZXlwcmVzcyIgPT09IGV2ZW50LnR5cGUgPyBnZXRFdmVudENoYXJDb2RlKGV2ZW50KSA6ICJrZXlkb3duIiA9PT0gZXZlbnQudHlwZSB8fCAia2V5dXAiID09PSBldmVudC50eXBlID8gZXZlbnQua2V5Q29kZSA6IDA7CiAgICAgICAgfQogICAgICB9KSwgU3ludGhldGljS2V5Ym9hcmRFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEtleWJvYXJkRXZlbnRJbnRlcmZhY2UpLCBQb2ludGVyRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIE1vdXNlRXZlbnRJbnRlcmZhY2UsIHsKICAgICAgICBwb2ludGVySWQ6IDAsCiAgICAgICAgd2lkdGg6IDAsCiAgICAgICAgaGVpZ2h0OiAwLAogICAgICAgIHByZXNzdXJlOiAwLAogICAgICAgIHRhbmdlbnRpYWxQcmVzc3VyZTogMCwKICAgICAgICB0aWx0WDogMCwKICAgICAgICB0aWx0WTogMCwKICAgICAgICB0d2lzdDogMCwKICAgICAgICBwb2ludGVyVHlwZTogMCwKICAgICAgICBpc1ByaW1hcnk6IDAKICAgICAgfSksIFN5bnRoZXRpY1BvaW50ZXJFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFBvaW50ZXJFdmVudEludGVyZmFjZSksIFRvdWNoRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIFVJRXZlbnRJbnRlcmZhY2UsIHsKICAgICAgICB0b3VjaGVzOiAwLAogICAgICAgIHRhcmdldFRvdWNoZXM6IDAsCiAgICAgICAgY2hhbmdlZFRvdWNoZXM6IDAsCiAgICAgICAgYWx0S2V5OiAwLAogICAgICAgIG1ldGFLZXk6IDAsCiAgICAgICAgY3RybEtleTogMCwKICAgICAgICBzaGlmdEtleTogMCwKICAgICAgICBnZXRNb2RpZmllclN0YXRlOiBnZXRFdmVudE1vZGlmaWVyU3RhdGUKICAgICAgfSksIFN5bnRoZXRpY1RvdWNoRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChUb3VjaEV2ZW50SW50ZXJmYWNlKSwgVHJhbnNpdGlvbkV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwgewogICAgICAgIHByb3BlcnR5TmFtZTogMCwKICAgICAgICBlbGFwc2VkVGltZTogMCwKICAgICAgICBwc2V1ZG9FbGVtZW50OiAwCiAgICAgIH0pLCBTeW50aGV0aWNUcmFuc2l0aW9uRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChUcmFuc2l0aW9uRXZlbnRJbnRlcmZhY2UpLCBXaGVlbEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBNb3VzZUV2ZW50SW50ZXJmYWNlLCB7CiAgICAgICAgZGVsdGFYOiBmdW5jdGlvbihldmVudCkgewogICAgICAgICAgcmV0dXJuICJkZWx0YVgiIGluIGV2ZW50ID8gZXZlbnQuZGVsdGFYIDogIndoZWVsRGVsdGFYIiBpbiBldmVudCA/IC1ldmVudC53aGVlbERlbHRhWCA6IDA7CiAgICAgICAgfSwKICAgICAgICBkZWx0YVk6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICByZXR1cm4gImRlbHRhWSIgaW4gZXZlbnQgPyBldmVudC5kZWx0YVkgOiAid2hlZWxEZWx0YVkiIGluIGV2ZW50ID8gLWV2ZW50LndoZWVsRGVsdGFZIDogIndoZWVsRGVsdGEiIGluIGV2ZW50ID8gLWV2ZW50LndoZWVsRGVsdGEgOiAwOwogICAgICAgIH0sCiAgICAgICAgZGVsdGFaOiAwLAogICAgICAgIGRlbHRhTW9kZTogMAogICAgICB9KSwgU3ludGhldGljV2hlZWxFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFdoZWVsRXZlbnRJbnRlcmZhY2UpLCBUb2dnbGVFdmVudEludGVyZmFjZSA9IGFzc2lnbih7fSwgRXZlbnRJbnRlcmZhY2UsIHsKICAgICAgICBuZXdTdGF0ZTogMCwKICAgICAgICBvbGRTdGF0ZTogMAogICAgICB9KSwgU3ludGhldGljVG9nZ2xlRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChUb2dnbGVFdmVudEludGVyZmFjZSksIEVORF9LRVlDT0RFUyA9IFs5LCAxMywgMjcsIDMyXSwgU1RBUlRfS0VZQ09ERSA9IDIyOSwgY2FuVXNlQ29tcG9zaXRpb25FdmVudCA9IGNhblVzZURPTSAmJiAiQ29tcG9zaXRpb25FdmVudCIgaW4gd2luZG93LCBkb2N1bWVudE1vZGUgPSBudWxsOwogICAgICBjYW5Vc2VET00gJiYgImRvY3VtZW50TW9kZSIgaW4gZG9jdW1lbnQgJiYgKGRvY3VtZW50TW9kZSA9IGRvY3VtZW50LmRvY3VtZW50TW9kZSk7CiAgICAgIHZhciBjYW5Vc2VUZXh0SW5wdXRFdmVudCA9IGNhblVzZURPTSAmJiAiVGV4dEV2ZW50IiBpbiB3aW5kb3cgJiYgIWRvY3VtZW50TW9kZSwgdXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgPSBjYW5Vc2VET00gJiYgKCFjYW5Vc2VDb21wb3NpdGlvbkV2ZW50IHx8IGRvY3VtZW50TW9kZSAmJiA4IDwgZG9jdW1lbnRNb2RlICYmIDExID49IGRvY3VtZW50TW9kZSksIFNQQUNFQkFSX0NPREUgPSAzMiwgU1BBQ0VCQVJfQ0hBUiA9IFN0cmluZy5mcm9tQ2hhckNvZGUoU1BBQ0VCQVJfQ09ERSksIGhhc1NwYWNlS2V5cHJlc3MgPSBmYWxzZSwgaXNDb21wb3NpbmcgPSBmYWxzZSwgc3VwcG9ydGVkSW5wdXRUeXBlcyA9IHsKICAgICAgICBjb2xvcjogdHJ1ZSwKICAgICAgICBkYXRlOiB0cnVlLAogICAgICAgIGRhdGV0aW1lOiB0cnVlLAogICAgICAgICJkYXRldGltZS1sb2NhbCI6IHRydWUsCiAgICAgICAgZW1haWw6IHRydWUsCiAgICAgICAgbW9udGg6IHRydWUsCiAgICAgICAgbnVtYmVyOiB0cnVlLAogICAgICAgIHBhc3N3b3JkOiB0cnVlLAogICAgICAgIHJhbmdlOiB0cnVlLAogICAgICAgIHNlYXJjaDogdHJ1ZSwKICAgICAgICB0ZWw6IHRydWUsCiAgICAgICAgdGV4dDogdHJ1ZSwKICAgICAgICB0aW1lOiB0cnVlLAogICAgICAgIHVybDogdHJ1ZSwKICAgICAgICB3ZWVrOiB0cnVlCiAgICAgIH0sIGFjdGl2ZUVsZW1lbnQkMSA9IG51bGwsIGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSBudWxsLCBpc0lucHV0RXZlbnRTdXBwb3J0ZWQgPSBmYWxzZTsKICAgICAgY2FuVXNlRE9NICYmIChpc0lucHV0RXZlbnRTdXBwb3J0ZWQgPSBpc0V2ZW50U3VwcG9ydGVkKCJpbnB1dCIpICYmICghZG9jdW1lbnQuZG9jdW1lbnRNb2RlIHx8IDkgPCBkb2N1bWVudC5kb2N1bWVudE1vZGUpKTsKICAgICAgdmFyIG9iamVjdElzID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIE9iamVjdC5pcyA/IE9iamVjdC5pcyA6IGlzLCBza2lwU2VsZWN0aW9uQ2hhbmdlRXZlbnQgPSBjYW5Vc2VET00gJiYgImRvY3VtZW50TW9kZSIgaW4gZG9jdW1lbnQgJiYgMTEgPj0gZG9jdW1lbnQuZG9jdW1lbnRNb2RlLCBhY3RpdmVFbGVtZW50ID0gbnVsbCwgYWN0aXZlRWxlbWVudEluc3QgPSBudWxsLCBsYXN0U2VsZWN0aW9uID0gbnVsbCwgbW91c2VEb3duID0gZmFsc2UsIHZlbmRvclByZWZpeGVzID0gewogICAgICAgIGFuaW1hdGlvbmVuZDogbWFrZVByZWZpeE1hcCgiQW5pbWF0aW9uIiwgIkFuaW1hdGlvbkVuZCIpLAogICAgICAgIGFuaW1hdGlvbml0ZXJhdGlvbjogbWFrZVByZWZpeE1hcCgiQW5pbWF0aW9uIiwgIkFuaW1hdGlvbkl0ZXJhdGlvbiIpLAogICAgICAgIGFuaW1hdGlvbnN0YXJ0OiBtYWtlUHJlZml4TWFwKCJBbmltYXRpb24iLCAiQW5pbWF0aW9uU3RhcnQiKSwKICAgICAgICB0cmFuc2l0aW9ucnVuOiBtYWtlUHJlZml4TWFwKCJUcmFuc2l0aW9uIiwgIlRyYW5zaXRpb25SdW4iKSwKICAgICAgICB0cmFuc2l0aW9uc3RhcnQ6IG1ha2VQcmVmaXhNYXAoIlRyYW5zaXRpb24iLCAiVHJhbnNpdGlvblN0YXJ0IiksCiAgICAgICAgdHJhbnNpdGlvbmNhbmNlbDogbWFrZVByZWZpeE1hcCgiVHJhbnNpdGlvbiIsICJUcmFuc2l0aW9uQ2FuY2VsIiksCiAgICAgICAgdHJhbnNpdGlvbmVuZDogbWFrZVByZWZpeE1hcCgiVHJhbnNpdGlvbiIsICJUcmFuc2l0aW9uRW5kIikKICAgICAgfSwgcHJlZml4ZWRFdmVudE5hbWVzID0ge30sIHN0eWxlID0ge307CiAgICAgIGNhblVzZURPTSAmJiAoc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSwgIkFuaW1hdGlvbkV2ZW50IiBpbiB3aW5kb3cgfHwgKGRlbGV0ZSB2ZW5kb3JQcmVmaXhlcy5hbmltYXRpb25lbmQuYW5pbWF0aW9uLCBkZWxldGUgdmVuZG9yUHJlZml4ZXMuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbiwgZGVsZXRlIHZlbmRvclByZWZpeGVzLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksICJUcmFuc2l0aW9uRXZlbnQiIGluIHdpbmRvdyB8fCBkZWxldGUgdmVuZG9yUHJlZml4ZXMudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTsKICAgICAgdmFyIEFOSU1BVElPTl9FTkQgPSBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZSgiYW5pbWF0aW9uZW5kIiksIEFOSU1BVElPTl9JVEVSQVRJT04gPSBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZSgiYW5pbWF0aW9uaXRlcmF0aW9uIiksIEFOSU1BVElPTl9TVEFSVCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKCJhbmltYXRpb25zdGFydCIpLCBUUkFOU0lUSU9OX1JVTiA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKCJ0cmFuc2l0aW9ucnVuIiksIFRSQU5TSVRJT05fU1RBUlQgPSBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZSgidHJhbnNpdGlvbnN0YXJ0IiksIFRSQU5TSVRJT05fQ0FOQ0VMID0gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoInRyYW5zaXRpb25jYW5jZWwiKSwgVFJBTlNJVElPTl9FTkQgPSBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZSgidHJhbnNpdGlvbmVuZCIpLCB0b3BMZXZlbEV2ZW50c1RvUmVhY3ROYW1lcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCksIHNpbXBsZUV2ZW50UGx1Z2luRXZlbnRzID0gImFib3J0IGF1eENsaWNrIGJlZm9yZVRvZ2dsZSBjYW5jZWwgY2FuUGxheSBjYW5QbGF5VGhyb3VnaCBjbGljayBjbG9zZSBjb250ZXh0TWVudSBjb3B5IGN1dCBkcmFnIGRyYWdFbmQgZHJhZ0VudGVyIGRyYWdFeGl0IGRyYWdMZWF2ZSBkcmFnT3ZlciBkcmFnU3RhcnQgZHJvcCBkdXJhdGlvbkNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBnb3RQb2ludGVyQ2FwdHVyZSBpbnB1dCBpbnZhbGlkIGtleURvd24ga2V5UHJlc3Mga2V5VXAgbG9hZCBsb2FkZWREYXRhIGxvYWRlZE1ldGFkYXRhIGxvYWRTdGFydCBsb3N0UG9pbnRlckNhcHR1cmUgbW91c2VEb3duIG1vdXNlTW92ZSBtb3VzZU91dCBtb3VzZU92ZXIgbW91c2VVcCBwYXN0ZSBwYXVzZSBwbGF5IHBsYXlpbmcgcG9pbnRlckNhbmNlbCBwb2ludGVyRG93biBwb2ludGVyTW92ZSBwb2ludGVyT3V0IHBvaW50ZXJPdmVyIHBvaW50ZXJVcCBwcm9ncmVzcyByYXRlQ2hhbmdlIHJlc2V0IHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1Ym1pdCBzdXNwZW5kIHRpbWVVcGRhdGUgdG91Y2hDYW5jZWwgdG91Y2hFbmQgdG91Y2hTdGFydCB2b2x1bWVDaGFuZ2Ugc2Nyb2xsIHRvZ2dsZSB0b3VjaE1vdmUgd2FpdGluZyB3aGVlbCIuc3BsaXQoCiAgICAgICAgIiAiCiAgICAgICk7CiAgICAgIHNpbXBsZUV2ZW50UGx1Z2luRXZlbnRzLnB1c2goInNjcm9sbEVuZCIpOwogICAgICB2YXIgbGFzdFJlc2V0VGltZSA9IDA7CiAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIHBlcmZvcm1hbmNlICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBwZXJmb3JtYW5jZS5ub3cpIHsKICAgICAgICB2YXIgbG9jYWxQZXJmb3JtYW5jZSA9IHBlcmZvcm1hbmNlOwogICAgICAgIHZhciBnZXRDdXJyZW50VGltZSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGxvY2FsUGVyZm9ybWFuY2Uubm93KCk7CiAgICAgICAgfTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgbG9jYWxEYXRlID0gRGF0ZTsKICAgICAgICBnZXRDdXJyZW50VGltZSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGxvY2FsRGF0ZS5ub3coKTsKICAgICAgICB9OwogICAgICB9CiAgICAgIHZhciByZXBvcnRHbG9iYWxFcnJvciA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiByZXBvcnRFcnJvciA/IHJlcG9ydEVycm9yIDogZnVuY3Rpb24oZXJyb3IpIHsKICAgICAgICBpZiAoIm9iamVjdCIgPT09IHR5cGVvZiB3aW5kb3cgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHdpbmRvdy5FcnJvckV2ZW50KSB7CiAgICAgICAgICB2YXIgZXZlbnQgPSBuZXcgd2luZG93LkVycm9yRXZlbnQoImVycm9yIiwgewogICAgICAgICAgICBidWJibGVzOiB0cnVlLAogICAgICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLAogICAgICAgICAgICBtZXNzYWdlOiAib2JqZWN0IiA9PT0gdHlwZW9mIGVycm9yICYmIG51bGwgIT09IGVycm9yICYmICJzdHJpbmciID09PSB0eXBlb2YgZXJyb3IubWVzc2FnZSA/IFN0cmluZyhlcnJvci5tZXNzYWdlKSA6IFN0cmluZyhlcnJvciksCiAgICAgICAgICAgIGVycm9yCiAgICAgICAgICB9KTsKICAgICAgICAgIGlmICghd2luZG93LmRpc3BhdGNoRXZlbnQoZXZlbnQpKSByZXR1cm47CiAgICAgICAgfSBlbHNlIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIHByb2Nlc3MgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHByb2Nlc3MuZW1pdCkgewogICAgICAgICAgcHJvY2Vzcy5lbWl0KCJ1bmNhdWdodEV4Y2VwdGlvbiIsIGVycm9yKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7CiAgICAgIH0sIE9NSVRURURfUFJPUF9FUlJPUiA9ICJUaGlzIG9iamVjdCBoYXMgYmVlbiBvbWl0dGVkIGJ5IFJlYWN0IGluIHRoZSBjb25zb2xlIGxvZyB0byBhdm9pZCBzZW5kaW5nIHRvbyBtdWNoIGRhdGEgZnJvbSB0aGUgc2VydmVyLiBUcnkgbG9nZ2luZyBzbWFsbGVyIG9yIG1vcmUgc3BlY2lmaWMgb2JqZWN0cy4iLCBFTVBUWV9BUlJBWSA9IDAsIENPTVBMRVhfQVJSQVkgPSAxLCBQUklNSVRJVkVfQVJSQVkgPSAyLCBFTlRSSUVTX0FSUkFZID0gMywgUkVNT1ZFRCA9ICLigJPCoCIsIEFEREVEID0gIivCoCIsIFVOQ0hBTkdFRCA9ICLigIfCoCIsIHN1cHBvcnRzVXNlclRpbWluZyA9ICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgY29uc29sZSAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgY29uc29sZS50aW1lU3RhbXAgJiYgInVuZGVmaW5lZCIgIT09IHR5cGVvZiBwZXJmb3JtYW5jZSAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgcGVyZm9ybWFuY2UubWVhc3VyZSwgQ09NUE9ORU5UU19UUkFDSyA9ICJDb21wb25lbnRzIOKamyIsIExBTkVTX1RSQUNLX0dST1VQID0gIlNjaGVkdWxlciDimpsiLCBjdXJyZW50VHJhY2sgPSAiQmxvY2tpbmciLCBhbHJlYWR5V2FybmVkRm9yRGVlcEVxdWFsaXR5ID0gZmFsc2UsIHJldXNhYmxlQ29tcG9uZW50RGV2VG9vbERldGFpbHMgPSB7CiAgICAgICAgY29sb3I6ICJwcmltYXJ5IiwKICAgICAgICBwcm9wZXJ0aWVzOiBudWxsLAogICAgICAgIHRvb2x0aXBUZXh0OiAiIiwKICAgICAgICB0cmFjazogQ09NUE9ORU5UU19UUkFDSwogICAgICB9LCByZXVzYWJsZUNvbXBvbmVudE9wdGlvbnMgPSB7CiAgICAgICAgc3RhcnQ6IC0wLAogICAgICAgIGVuZDogLTAsCiAgICAgICAgZGV0YWlsOiB7IGRldnRvb2xzOiByZXVzYWJsZUNvbXBvbmVudERldlRvb2xEZXRhaWxzIH0KICAgICAgfSwgcmVzdWFibGVDaGFuZ2VkUHJvcHNFbnRyeSA9IFsiQ2hhbmdlZCBQcm9wcyIsICIiXSwgREVFUF9FUVVBTElUWV9XQVJOSU5HID0gIlRoaXMgY29tcG9uZW50IHJlY2VpdmVkIGRlZXBseSBlcXVhbCBwcm9wcy4gSXQgbWlnaHQgYmVuZWZpdCBmcm9tIHVzZU1lbW8gb3IgdGhlIFJlYWN0IENvbXBpbGVyIGluIGl0cyBvd25lci4iLCByZXVzYWJsZURlZXBseUVxdWFsUHJvcHNFbnRyeSA9IFsiQ2hhbmdlZCBQcm9wcyIsIERFRVBfRVFVQUxJVFlfV0FSTklOR10sIE9mZnNjcmVlblZpc2libGUgPSAxLCBPZmZzY3JlZW5QYXNzaXZlRWZmZWN0c0Nvbm5lY3RlZCA9IDIsIGNvbmN1cnJlbnRRdWV1ZXMgPSBbXSwgY29uY3VycmVudFF1ZXVlc0luZGV4ID0gMCwgY29uY3VycmVudGx5VXBkYXRlZExhbmVzID0gMCwgZW1wdHlDb250ZXh0T2JqZWN0ID0ge307CiAgICAgIE9iamVjdC5mcmVlemUoZW1wdHlDb250ZXh0T2JqZWN0KTsKICAgICAgdmFyIHJlc29sdmVGYW1pbHkgPSBudWxsLCBmYWlsZWRCb3VuZGFyaWVzID0gbnVsbCwgTm9Nb2RlID0gMCwgQ29uY3VycmVudE1vZGUgPSAxLCBQcm9maWxlTW9kZSA9IDIsIFN0cmljdExlZ2FjeU1vZGUgPSA4LCBTdHJpY3RFZmZlY3RzTW9kZSA9IDE2LCBTdXNwZW5zZXlJbWFnZXNNb2RlID0gMzI7CiAgICAgIHZhciBoYXNCYWRNYXBQb2x5ZmlsbCA9IGZhbHNlOwogICAgICB0cnkgewogICAgICAgIHZhciBub25FeHRlbnNpYmxlT2JqZWN0ID0gT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KTsKICAgICAgICAvKiBAX19QVVJFX18gKi8gbmV3IE1hcChbW25vbkV4dGVuc2libGVPYmplY3QsIG51bGxdXSk7CiAgICAgICAgLyogQF9fUFVSRV9fICovIG5ldyBTZXQoW25vbkV4dGVuc2libGVPYmplY3RdKTsKICAgICAgfSBjYXRjaCAoZSQzKSB7CiAgICAgICAgaGFzQmFkTWFwUG9seWZpbGwgPSB0cnVlOwogICAgICB9CiAgICAgIHZhciBDYXB0dXJlZFN0YWNrcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpLCBmb3JrU3RhY2sgPSBbXSwgZm9ya1N0YWNrSW5kZXggPSAwLCB0cmVlRm9ya1Byb3ZpZGVyID0gbnVsbCwgdHJlZUZvcmtDb3VudCA9IDAsIGlkU3RhY2sgPSBbXSwgaWRTdGFja0luZGV4ID0gMCwgdHJlZUNvbnRleHRQcm92aWRlciA9IG51bGwsIHRyZWVDb250ZXh0SWQgPSAxLCB0cmVlQ29udGV4dE92ZXJmbG93ID0gIiIsIGh5ZHJhdGlvblBhcmVudEZpYmVyID0gbnVsbCwgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IG51bGwsIGlzSHlkcmF0aW5nID0gZmFsc2UsIGRpZFN1c3BlbmRPckVycm9yREVWID0gZmFsc2UsIGh5ZHJhdGlvbkRpZmZSb290REVWID0gbnVsbCwgaHlkcmF0aW9uRXJyb3JzID0gbnVsbCwgcm9vdE9yU2luZ2xldG9uQ29udGV4dCA9IGZhbHNlLCBIeWRyYXRpb25NaXNtYXRjaEV4Y2VwdGlvbiA9IEVycm9yKAogICAgICAgICJIeWRyYXRpb24gTWlzbWF0Y2ggRXhjZXB0aW9uOiBUaGlzIGlzIG5vdCBhIHJlYWwgZXJyb3IsIGFuZCBzaG91bGQgbm90IGxlYWsgaW50byB1c2Vyc3BhY2UuIElmIHlvdSdyZSBzZWVpbmcgdGhpcywgaXQncyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIgogICAgICApLCB2YWx1ZUN1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKTsKICAgICAgdmFyIHJlbmRlcmVyQ3Vyc29yREVWID0gY3JlYXRlQ3Vyc29yKG51bGwpOwogICAgICB2YXIgcmVuZGVyZXJTaWdpbCA9IHt9OwogICAgICB2YXIgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSA9IG51bGwsIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IG51bGwsIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSBmYWxzZSwgQWJvcnRDb250cm9sbGVyTG9jYWwgPSAidW5kZWZpbmVkIiAhPT0gdHlwZW9mIEFib3J0Q29udHJvbGxlciA/IEFib3J0Q29udHJvbGxlciA6IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBsaXN0ZW5lcnMgPSBbXSwgc2lnbmFsID0gdGhpcy5zaWduYWwgPSB7CiAgICAgICAgICBhYm9ydGVkOiBmYWxzZSwKICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7CiAgICAgICAgICAgIGxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHRoaXMuYWJvcnQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHNpZ25hbC5hYm9ydGVkID0gdHJ1ZTsKICAgICAgICAgIGxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVyKSB7CiAgICAgICAgICAgIHJldHVybiBsaXN0ZW5lcigpOwogICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgfSwgc2NoZWR1bGVDYWxsYmFjayQyID0gU2NoZWR1bGVyLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssIE5vcm1hbFByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LCBDYWNoZUNvbnRleHQgPSB7CiAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0NPTlRFWFRfVFlQRSwKICAgICAgICBDb25zdW1lcjogbnVsbCwKICAgICAgICBQcm92aWRlcjogbnVsbCwKICAgICAgICBfY3VycmVudFZhbHVlOiBudWxsLAogICAgICAgIF9jdXJyZW50VmFsdWUyOiBudWxsLAogICAgICAgIF90aHJlYWRDb3VudDogMCwKICAgICAgICBfY3VycmVudFJlbmRlcmVyOiBudWxsLAogICAgICAgIF9jdXJyZW50UmVuZGVyZXIyOiBudWxsCiAgICAgIH0sIG5vdyA9IFNjaGVkdWxlci51bnN0YWJsZV9ub3csIGNyZWF0ZVRhc2sgPSBjb25zb2xlLmNyZWF0ZVRhc2sgPyBjb25zb2xlLmNyZWF0ZVRhc2sgOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfSwgU1BBV05FRF9VUERBVEUgPSAxLCBQSU5HRURfVVBEQVRFID0gMiwgcmVuZGVyU3RhcnRUaW1lID0gLTAsIGNvbW1pdFN0YXJ0VGltZSA9IC0wLCBjb21taXRFbmRUaW1lID0gLTAsIGNvbW1pdEVycm9ycyA9IG51bGwsIHByb2ZpbGVyU3RhcnRUaW1lID0gLTEuMSwgcHJvZmlsZXJFZmZlY3REdXJhdGlvbiA9IC0wLCBjb21wb25lbnRFZmZlY3REdXJhdGlvbiA9IC0wLCBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgPSAtMS4xLCBjb21wb25lbnRFZmZlY3RFbmRUaW1lID0gLTEuMSwgY29tcG9uZW50RWZmZWN0RXJyb3JzID0gbnVsbCwgY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSA9IGZhbHNlLCBibG9ja2luZ0NsYW1wVGltZSA9IC0wLCBibG9ja2luZ1VwZGF0ZVRpbWUgPSAtMS4xLCBibG9ja2luZ1VwZGF0ZVRhc2sgPSBudWxsLCBibG9ja2luZ1VwZGF0ZVR5cGUgPSAwLCBibG9ja2luZ1VwZGF0ZU1ldGhvZE5hbWUgPSBudWxsLCBibG9ja2luZ1VwZGF0ZUNvbXBvbmVudE5hbWUgPSBudWxsLCBibG9ja2luZ0V2ZW50VGltZSA9IC0xLjEsIGJsb2NraW5nRXZlbnRUeXBlID0gbnVsbCwgYmxvY2tpbmdFdmVudFJlcGVhdFRpbWUgPSAtMS4xLCBibG9ja2luZ1N1c3BlbmRlZFRpbWUgPSAtMS4xLCB0cmFuc2l0aW9uQ2xhbXBUaW1lID0gLTAsIHRyYW5zaXRpb25TdGFydFRpbWUgPSAtMS4xLCB0cmFuc2l0aW9uVXBkYXRlVGltZSA9IC0xLjEsIHRyYW5zaXRpb25VcGRhdGVUeXBlID0gMCwgdHJhbnNpdGlvblVwZGF0ZVRhc2sgPSBudWxsLCB0cmFuc2l0aW9uVXBkYXRlTWV0aG9kTmFtZSA9IG51bGwsIHRyYW5zaXRpb25VcGRhdGVDb21wb25lbnROYW1lID0gbnVsbCwgdHJhbnNpdGlvbkV2ZW50VGltZSA9IC0xLjEsIHRyYW5zaXRpb25FdmVudFR5cGUgPSBudWxsLCB0cmFuc2l0aW9uRXZlbnRSZXBlYXRUaW1lID0gLTEuMSwgdHJhbnNpdGlvblN1c3BlbmRlZFRpbWUgPSAtMS4xLCByZXRyeUNsYW1wVGltZSA9IC0wLCBpZGxlQ2xhbXBUaW1lID0gLTAsIGFuaW1hdGluZ0xhbmVzID0gMCwgYW5pbWF0aW5nVGFzayA9IG51bGwsIHlpZWxkUmVhc29uID0gMCwgeWllbGRTdGFydFRpbWUgPSAtMS4xLCBjdXJyZW50VXBkYXRlSXNOZXN0ZWQgPSBmYWxzZSwgbmVzdGVkVXBkYXRlU2NoZWR1bGVkID0gZmFsc2UsIGN1cnJlbnRFbnRhbmdsZWRMaXN0ZW5lcnMgPSBudWxsLCBjdXJyZW50RW50YW5nbGVkUGVuZGluZ0NvdW50ID0gMCwgY3VycmVudEVudGFuZ2xlZExhbmUgPSAwLCBjdXJyZW50RW50YW5nbGVkQWN0aW9uVGhlbmFibGUgPSBudWxsLCBwcmV2T25TdGFydFRyYW5zaXRpb25GaW5pc2ggPSBSZWFjdFNoYXJlZEludGVybmFscy5TOwogICAgICBSZWFjdFNoYXJlZEludGVybmFscy5TID0gZnVuY3Rpb24odHJhbnNpdGlvbiwgcmV0dXJuVmFsdWUpIHsKICAgICAgICBnbG9iYWxNb3N0UmVjZW50VHJhbnNpdGlvblRpbWUgPSBub3ckMSgpOwogICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIHJldHVyblZhbHVlICYmIG51bGwgIT09IHJldHVyblZhbHVlICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiByZXR1cm5WYWx1ZS50aGVuKSB7CiAgICAgICAgICBpZiAoMCA+IHRyYW5zaXRpb25TdGFydFRpbWUgJiYgMCA+IHRyYW5zaXRpb25VcGRhdGVUaW1lKSB7CiAgICAgICAgICAgIHRyYW5zaXRpb25TdGFydFRpbWUgPSBub3coKTsKICAgICAgICAgICAgdmFyIG5ld0V2ZW50VGltZSA9IHJlc29sdmVFdmVudFRpbWVTdGFtcCgpLCBuZXdFdmVudFR5cGUgPSByZXNvbHZlRXZlbnRUeXBlKCk7CiAgICAgICAgICAgIGlmIChuZXdFdmVudFRpbWUgIT09IHRyYW5zaXRpb25FdmVudFJlcGVhdFRpbWUgfHwgbmV3RXZlbnRUeXBlICE9PSB0cmFuc2l0aW9uRXZlbnRUeXBlKQogICAgICAgICAgICAgIHRyYW5zaXRpb25FdmVudFJlcGVhdFRpbWUgPSAtMS4xOwogICAgICAgICAgICB0cmFuc2l0aW9uRXZlbnRUaW1lID0gbmV3RXZlbnRUaW1lOwogICAgICAgICAgICB0cmFuc2l0aW9uRXZlbnRUeXBlID0gbmV3RXZlbnRUeXBlOwogICAgICAgICAgfQogICAgICAgICAgZW50YW5nbGVBc3luY0FjdGlvbih0cmFuc2l0aW9uLCByZXR1cm5WYWx1ZSk7CiAgICAgICAgfQogICAgICAgIG51bGwgIT09IHByZXZPblN0YXJ0VHJhbnNpdGlvbkZpbmlzaCAmJiBwcmV2T25TdGFydFRyYW5zaXRpb25GaW5pc2godHJhbnNpdGlvbiwgcmV0dXJuVmFsdWUpOwogICAgICB9OwogICAgICB2YXIgcmVzdW1lZENhY2hlID0gY3JlYXRlQ3Vyc29yKG51bGwpLCBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncyA9IHsKICAgICAgICByZWNvcmRVbnNhZmVMaWZlY3ljbGVXYXJuaW5nczogZnVuY3Rpb24oKSB7CiAgICAgICAgfSwKICAgICAgICBmbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5nczogZnVuY3Rpb24oKSB7CiAgICAgICAgfSwKICAgICAgICByZWNvcmRMZWdhY3lDb250ZXh0V2FybmluZzogZnVuY3Rpb24oKSB7CiAgICAgICAgfSwKICAgICAgICBmbHVzaExlZ2FjeUNvbnRleHRXYXJuaW5nOiBmdW5jdGlvbigpIHsKICAgICAgICB9LAogICAgICAgIGRpc2NhcmRQZW5kaW5nV2FybmluZ3M6IGZ1bmN0aW9uKCkgewogICAgICAgIH0KICAgICAgfSwgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW10sIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXSwgcGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncyA9IFtdLCBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncyA9IFtdLCBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW10sIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW10sIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5yZWNvcmRVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncyA9IGZ1bmN0aW9uKGZpYmVyLCBpbnN0YW5jZSkgewogICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuaGFzKGZpYmVyLnR5cGUpIHx8ICgiZnVuY3Rpb24iID09PSB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ICYmIHRydWUgIT09IGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudC5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICYmIHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5wdXNoKGZpYmVyKSwgZmliZXIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgJiYgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5wdXNoKGZpYmVyKSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgJiYgdHJ1ZSAhPT0gaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcy5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICYmIHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MucHVzaChmaWJlciksIGZpYmVyLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAmJiBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5wdXNoKGZpYmVyKSwgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgJiYgdHJ1ZSAhPT0gaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZS5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICYmIHBlbmRpbmdDb21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MucHVzaChmaWJlciksIGZpYmVyLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlICYmICJmdW5jdGlvbiIgPT09IHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSAmJiBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5wdXNoKGZpYmVyKSk7CiAgICAgIH07CiAgICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLmZsdXNoUGVuZGluZ1Vuc2FmZUxpZmVjeWNsZVdhcm5pbmdzID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICAwIDwgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLmxlbmd0aCAmJiAocGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24oZmliZXIpIHsKICAgICAgICAgIGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLmFkZCgKICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgIkNvbXBvbmVudCIKICAgICAgICAgICk7CiAgICAgICAgICBkaWRXYXJuQWJvdXRVbnNhZmVMaWZlY3ljbGVzLmFkZChmaWJlci50eXBlKTsKICAgICAgICB9KSwgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW10pOwogICAgICAgIHZhciBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50VW5pcXVlTmFtZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgIDAgPCBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLmxlbmd0aCAmJiAocGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uKGZpYmVyKSB7CiAgICAgICAgICBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50VW5pcXVlTmFtZXMuYWRkKAogICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCAiQ29tcG9uZW50IgogICAgICAgICAgKTsKICAgICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpOwogICAgICAgIH0pLCBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW10pOwogICAgICAgIHZhciBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgIDAgPCBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzLmxlbmd0aCAmJiAocGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uKGZpYmVyKSB7CiAgICAgICAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXMuYWRkKAogICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCAiQ29tcG9uZW50IgogICAgICAgICAgKTsKICAgICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpOwogICAgICAgIH0pLCBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW10pOwogICAgICAgIHZhciBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICAwIDwgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MubGVuZ3RoICYmIChwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5mb3JFYWNoKAogICAgICAgICAgZnVuY3Rpb24oZmliZXIpIHsKICAgICAgICAgICAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcy5hZGQoCiAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgIkNvbXBvbmVudCIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7CiAgICAgICAgICB9CiAgICAgICAgKSwgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXSk7CiAgICAgICAgdmFyIGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgMCA8IHBlbmRpbmdDb21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MubGVuZ3RoICYmIChwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24oZmliZXIpIHsKICAgICAgICAgIGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcy5hZGQoCiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICJDb21wb25lbnQiCiAgICAgICAgICApOwogICAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7CiAgICAgICAgfSksIHBlbmRpbmdDb21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MgPSBbXSk7CiAgICAgICAgdmFyIFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgIDAgPCBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5sZW5ndGggJiYgKHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24oZmliZXIpIHsKICAgICAgICAgIFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMuYWRkKAogICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCAiQ29tcG9uZW50IgogICAgICAgICAgKTsKICAgICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpOwogICAgICAgIH0pLCBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdKTsKICAgICAgICBpZiAoMCA8IFVOU0FGRV9jb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcy5zaXplKSB7CiAgICAgICAgICB2YXIgc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZygKICAgICAgICAgICAgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzCiAgICAgICAgICApOwogICAgICAgICAgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIlVzaW5nIFVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgaW4gc3RyaWN0IG1vZGUgaXMgbm90IHJlY29tbWVuZGVkIGFuZCBtYXkgaW5kaWNhdGUgYnVncyBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cblxuKiBNb3ZlIGNvZGUgd2l0aCBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkTW91bnQsIGFuZCBzZXQgaW5pdGlhbCBzdGF0ZSBpbiB0aGUgY29uc3RydWN0b3IuXG5cblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcyIsCiAgICAgICAgICAgIHNvcnRlZE5hbWVzCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICAwIDwgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcy5zaXplICYmIChzb3J0ZWROYW1lcyA9IHNldFRvU29ydGVkU3RyaW5nKAogICAgICAgICAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcwogICAgICAgICksIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiVXNpbmcgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgaW4gc3RyaWN0IG1vZGUgaXMgbm90IHJlY29tbWVuZGVkIGFuZCBtYXkgaW5kaWNhdGUgYnVncyBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cblxuKiBNb3ZlIGRhdGEgZmV0Y2hpbmcgY29kZSBvciBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkVXBkYXRlLlxuKiBJZiB5b3UncmUgdXBkYXRpbmcgc3RhdGUgd2hlbmV2ZXIgcHJvcHMgY2hhbmdlLCByZWZhY3RvciB5b3VyIGNvZGUgdG8gdXNlIG1lbW9pemF0aW9uIHRlY2huaXF1ZXMgb3IgbW92ZSBpdCB0byBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLiBMZWFybiBtb3JlIGF0OiBodHRwczovL3JlYWN0LmRldi9saW5rL2Rlcml2ZWQtc3RhdGVcblxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHM6ICVzIiwKICAgICAgICAgIHNvcnRlZE5hbWVzCiAgICAgICAgKSk7CiAgICAgICAgMCA8IFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMuc2l6ZSAmJiAoc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZygKICAgICAgICAgIFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMKICAgICAgICApLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgIlVzaW5nIFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlIGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCBhbmQgbWF5IGluZGljYXRlIGJ1Z3MgaW4geW91ciBjb2RlLiBTZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXG5cbiogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cblxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHM6ICVzIiwKICAgICAgICAgIHNvcnRlZE5hbWVzCiAgICAgICAgKSk7CiAgICAgICAgMCA8IGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLnNpemUgJiYgKHNvcnRlZE5hbWVzID0gc2V0VG9Tb3J0ZWRTdHJpbmcoY29tcG9uZW50V2lsbE1vdW50VW5pcXVlTmFtZXMpLCBjb25zb2xlLndhcm4oCiAgICAgICAgICAiY29tcG9uZW50V2lsbE1vdW50IGhhcyBiZWVuIHJlbmFtZWQsIGFuZCBpcyBub3QgcmVjb21tZW5kZWQgZm9yIHVzZS4gU2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxuXG4qIE1vdmUgY29kZSB3aXRoIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRNb3VudCwgYW5kIHNldCBpbml0aWFsIHN0YXRlIGluIHRoZSBjb25zdHJ1Y3Rvci5cbiogUmVuYW1lIGNvbXBvbmVudFdpbGxNb3VudCB0byBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IHRvIHN1cHByZXNzIHRoaXMgd2FybmluZyBpbiBub24tc3RyaWN0IG1vZGUuIEluIFJlYWN0IDE4LngsIG9ubHkgdGhlIFVOU0FGRV8gbmFtZSB3aWxsIHdvcmsuIFRvIHJlbmFtZSBhbGwgZGVwcmVjYXRlZCBsaWZlY3ljbGVzIHRvIHRoZWlyIG5ldyBuYW1lcywgeW91IGNhbiBydW4gYG5weCByZWFjdC1jb2RlbW9kIHJlbmFtZS11bnNhZmUtbGlmZWN5Y2xlc2AgaW4geW91ciBwcm9qZWN0IHNvdXJjZSBmb2xkZXIuXG5cblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcyIsCiAgICAgICAgICBzb3J0ZWROYW1lcwogICAgICAgICkpOwogICAgICAgIDAgPCBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXMuc2l6ZSAmJiAoc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZygKICAgICAgICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcwogICAgICAgICksIGNvbnNvbGUud2FybigKICAgICAgICAgICJjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIGhhcyBiZWVuIHJlbmFtZWQsIGFuZCBpcyBub3QgcmVjb21tZW5kZWQgZm9yIHVzZS4gU2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxuXG4qIE1vdmUgZGF0YSBmZXRjaGluZyBjb2RlIG9yIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRVcGRhdGUuXG4qIElmIHlvdSdyZSB1cGRhdGluZyBzdGF0ZSB3aGVuZXZlciBwcm9wcyBjaGFuZ2UsIHJlZmFjdG9yIHlvdXIgY29kZSB0byB1c2UgbWVtb2l6YXRpb24gdGVjaG5pcXVlcyBvciBtb3ZlIGl0IHRvIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuIExlYXJuIG1vcmUgYXQ6IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvZGVyaXZlZC1zdGF0ZVxuKiBSZW5hbWUgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgaW4gbm9uLXN0cmljdCBtb2RlLiBJbiBSZWFjdCAxOC54LCBvbmx5IHRoZSBVTlNBRkVfIG5hbWUgd2lsbCB3b3JrLiBUbyByZW5hbWUgYWxsIGRlcHJlY2F0ZWQgbGlmZWN5Y2xlcyB0byB0aGVpciBuZXcgbmFtZXMsIHlvdSBjYW4gcnVuIGBucHggcmVhY3QtY29kZW1vZCByZW5hbWUtdW5zYWZlLWxpZmVjeWNsZXNgIGluIHlvdXIgcHJvamVjdCBzb3VyY2UgZm9sZGVyLlxuXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMiLAogICAgICAgICAgc29ydGVkTmFtZXMKICAgICAgICApKTsKICAgICAgICAwIDwgY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzLnNpemUgJiYgKHNvcnRlZE5hbWVzID0gc2V0VG9Tb3J0ZWRTdHJpbmcoY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzKSwgY29uc29sZS53YXJuKAogICAgICAgICAgImNvbXBvbmVudFdpbGxVcGRhdGUgaGFzIGJlZW4gcmVuYW1lZCwgYW5kIGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlLiBTZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXG5cbiogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cbiogUmVuYW1lIGNvbXBvbmVudFdpbGxVcGRhdGUgdG8gVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgdG8gc3VwcHJlc3MgdGhpcyB3YXJuaW5nIGluIG5vbi1zdHJpY3QgbW9kZS4gSW4gUmVhY3QgMTgueCwgb25seSB0aGUgVU5TQUZFXyBuYW1lIHdpbGwgd29yay4gVG8gcmVuYW1lIGFsbCBkZXByZWNhdGVkIGxpZmVjeWNsZXMgdG8gdGhlaXIgbmV3IG5hbWVzLCB5b3UgY2FuIHJ1biBgbnB4IHJlYWN0LWNvZGVtb2QgcmVuYW1lLXVuc2FmZS1saWZlY3ljbGVzYCBpbiB5b3VyIHByb2plY3Qgc291cmNlIGZvbGRlci5cblxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHM6ICVzIiwKICAgICAgICAgIHNvcnRlZE5hbWVzCiAgICAgICAgKSk7CiAgICAgIH07CiAgICAgIHZhciBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpLCBkaWRXYXJuQWJvdXRMZWdhY3lDb250ZXh0ID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkTGVnYWN5Q29udGV4dFdhcm5pbmcgPSBmdW5jdGlvbihmaWJlciwgaW5zdGFuY2UpIHsKICAgICAgICB2YXIgc3RyaWN0Um9vdCA9IG51bGw7CiAgICAgICAgZm9yICh2YXIgbm9kZSA9IGZpYmVyOyBudWxsICE9PSBub2RlOyApCiAgICAgICAgICBub2RlLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlICYmIChzdHJpY3RSb290ID0gbm9kZSksIG5vZGUgPSBub2RlLnJldHVybjsKICAgICAgICBudWxsID09PSBzdHJpY3RSb290ID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICJFeHBlY3RlZCB0byBmaW5kIGEgU3RyaWN0TW9kZSBjb21wb25lbnQgaW4gYSBzdHJpY3QgbW9kZSB0cmVlLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLiIKICAgICAgICApIDogIWRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQuaGFzKGZpYmVyLnR5cGUpICYmIChub2RlID0gcGVuZGluZ0xlZ2FjeUNvbnRleHRXYXJuaW5nLmdldChzdHJpY3RSb290KSwgbnVsbCAhPSBmaWJlci50eXBlLmNvbnRleHRUeXBlcyB8fCBudWxsICE9IGZpYmVyLnR5cGUuY2hpbGRDb250ZXh0VHlwZXMgfHwgbnVsbCAhPT0gaW5zdGFuY2UgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGluc3RhbmNlLmdldENoaWxkQ29udGV4dCkgJiYgKHZvaWQgMCA9PT0gbm9kZSAmJiAobm9kZSA9IFtdLCBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcuc2V0KHN0cmljdFJvb3QsIG5vZGUpKSwgbm9kZS5wdXNoKGZpYmVyKSk7CiAgICAgIH07CiAgICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLmZsdXNoTGVnYWN5Q29udGV4dFdhcm5pbmcgPSBmdW5jdGlvbigpIHsKICAgICAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcuZm9yRWFjaChmdW5jdGlvbihmaWJlckFycmF5KSB7CiAgICAgICAgICBpZiAoMCAhPT0gZmliZXJBcnJheS5sZW5ndGgpIHsKICAgICAgICAgICAgdmFyIGZpcnN0RmliZXIgPSBmaWJlckFycmF5WzBdLCB1bmlxdWVOYW1lcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgICAgIGZpYmVyQXJyYXkuZm9yRWFjaChmdW5jdGlvbihmaWJlcikgewogICAgICAgICAgICAgIHVuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCAiQ29tcG9uZW50Iik7CiAgICAgICAgICAgICAgZGlkV2FybkFib3V0TGVnYWN5Q29udGV4dC5hZGQoZmliZXIudHlwZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZyh1bmlxdWVOYW1lcyk7CiAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKGZpcnN0RmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICAgICAiTGVnYWN5IGNvbnRleHQgQVBJIGhhcyBiZWVuIGRldGVjdGVkIHdpdGhpbiBhIHN0cmljdC1tb2RlIHRyZWUuXG5cblRoZSBvbGQgQVBJIHdpbGwgYmUgc3VwcG9ydGVkIGluIGFsbCAxNi54IHJlbGVhc2VzLCBidXQgYXBwbGljYXRpb25zIHVzaW5nIGl0IHNob3VsZCBtaWdyYXRlIHRvIHRoZSBuZXcgdmVyc2lvbi5cblxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHM6ICVzXG5cbkxlYXJuIG1vcmUgYWJvdXQgdGhpcyB3YXJuaW5nIGhlcmU6IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvbGVnYWN5LWNvbnRleHQiLAogICAgICAgICAgICAgICAgc29ydGVkTmFtZXMKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfTsKICAgICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MuZGlzY2FyZFBlbmRpbmdXYXJuaW5ncyA9IGZ1bmN0aW9uKCkgewogICAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncyA9IFtdOwogICAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTsKICAgICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107CiAgICAgICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXTsKICAgICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107CiAgICAgICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MgPSBbXTsKICAgICAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICB9OwogICAgICB2YXIgY2FsbENvbXBvbmVudCA9IHsKICAgICAgICByZWFjdF9zdGFja19ib3R0b21fZnJhbWU6IGZ1bmN0aW9uKENvbXBvbmVudCwgcHJvcHMsIHNlY29uZEFyZykgewogICAgICAgICAgdmFyIHdhc1JlbmRlcmluZyA9IGlzUmVuZGVyaW5nOwogICAgICAgICAgaXNSZW5kZXJpbmcgPSB0cnVlOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIENvbXBvbmVudChwcm9wcywgc2Vjb25kQXJnKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGlzUmVuZGVyaW5nID0gd2FzUmVuZGVyaW5nOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwgY2FsbENvbXBvbmVudEluREVWID0gY2FsbENvbXBvbmVudC5yZWFjdF9zdGFja19ib3R0b21fZnJhbWUuYmluZChjYWxsQ29tcG9uZW50KSwgY2FsbFJlbmRlciA9IHsKICAgICAgICByZWFjdF9zdGFja19ib3R0b21fZnJhbWU6IGZ1bmN0aW9uKGluc3RhbmNlKSB7CiAgICAgICAgICB2YXIgd2FzUmVuZGVyaW5nID0gaXNSZW5kZXJpbmc7CiAgICAgICAgICBpc1JlbmRlcmluZyA9IHRydWU7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UucmVuZGVyKCk7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBpc1JlbmRlcmluZyA9IHdhc1JlbmRlcmluZzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sIGNhbGxSZW5kZXJJbkRFViA9IGNhbGxSZW5kZXIucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoY2FsbFJlbmRlciksIGNhbGxDb21wb25lbnREaWRNb3VudCA9IHsKICAgICAgICByZWFjdF9zdGFja19ib3R0b21fZnJhbWU6IGZ1bmN0aW9uKGZpbmlzaGVkV29yaywgaW5zdGFuY2UpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZE1vdW50KCk7CiAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sIGNhbGxDb21wb25lbnREaWRNb3VudEluREVWID0gY2FsbENvbXBvbmVudERpZE1vdW50LnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKAogICAgICAgIGNhbGxDb21wb25lbnREaWRNb3VudAogICAgICApLCBjYWxsQ29tcG9uZW50RGlkVXBkYXRlID0gewogICAgICAgIHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZTogZnVuY3Rpb24oZmluaXNoZWRXb3JrLCBpbnN0YW5jZSwgcHJldlByb3BzLCBwcmV2U3RhdGUsIHNuYXBzaG90KSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBpbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUsIHNuYXBzaG90KTsKICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwgY2FsbENvbXBvbmVudERpZFVwZGF0ZUluREVWID0gY2FsbENvbXBvbmVudERpZFVwZGF0ZS5yZWFjdF9zdGFja19ib3R0b21fZnJhbWUuYmluZCgKICAgICAgICBjYWxsQ29tcG9uZW50RGlkVXBkYXRlCiAgICAgICksIGNhbGxDb21wb25lbnREaWRDYXRjaCA9IHsKICAgICAgICByZWFjdF9zdGFja19ib3R0b21fZnJhbWU6IGZ1bmN0aW9uKGluc3RhbmNlLCBlcnJvckluZm8pIHsKICAgICAgICAgIHZhciBzdGFjayA9IGVycm9ySW5mby5zdGFjazsKICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZENhdGNoKGVycm9ySW5mby52YWx1ZSwgewogICAgICAgICAgICBjb21wb25lbnRTdGFjazogbnVsbCAhPT0gc3RhY2sgPyBzdGFjayA6ICIiCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0sIGNhbGxDb21wb25lbnREaWRDYXRjaEluREVWID0gY2FsbENvbXBvbmVudERpZENhdGNoLnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKAogICAgICAgIGNhbGxDb21wb25lbnREaWRDYXRjaAogICAgICApLCBjYWxsQ29tcG9uZW50V2lsbFVubW91bnQgPSB7CiAgICAgICAgcmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lOiBmdW5jdGlvbihjdXJyZW50MiwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgaW5zdGFuY2UpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVbm1vdW50KCk7CiAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihjdXJyZW50MiwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwgY2FsbENvbXBvbmVudFdpbGxVbm1vdW50SW5ERVYgPSBjYWxsQ29tcG9uZW50V2lsbFVubW91bnQucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoCiAgICAgICAgY2FsbENvbXBvbmVudFdpbGxVbm1vdW50CiAgICAgICksIGNhbGxDcmVhdGUgPSB7CiAgICAgICAgcmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgICAgICAgIHZhciBjcmVhdGUgPSBlZmZlY3QuY3JlYXRlOwogICAgICAgICAgZWZmZWN0ID0gZWZmZWN0Lmluc3Q7CiAgICAgICAgICBjcmVhdGUgPSBjcmVhdGUoKTsKICAgICAgICAgIHJldHVybiBlZmZlY3QuZGVzdHJveSA9IGNyZWF0ZTsKICAgICAgICB9CiAgICAgIH0sIGNhbGxDcmVhdGVJbkRFViA9IGNhbGxDcmVhdGUucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoY2FsbENyZWF0ZSksIGNhbGxEZXN0cm95ID0gewogICAgICAgIHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZTogZnVuY3Rpb24oY3VycmVudDIsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGRlc3Ryb3kpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGRlc3Ryb3koKTsKICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBlcnJvcik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LCBjYWxsRGVzdHJveUluREVWID0gY2FsbERlc3Ryb3kucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoY2FsbERlc3Ryb3kpLCBjYWxsTGF6eUluaXQgPSB7CiAgICAgICAgcmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lOiBmdW5jdGlvbihsYXp5KSB7CiAgICAgICAgICB2YXIgaW5pdCA9IGxhenkuX2luaXQ7CiAgICAgICAgICByZXR1cm4gaW5pdChsYXp5Ll9wYXlsb2FkKTsKICAgICAgICB9CiAgICAgIH0sIGNhbGxMYXp5SW5pdEluREVWID0gY2FsbExhenlJbml0LnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKGNhbGxMYXp5SW5pdCksIFN1c3BlbnNlRXhjZXB0aW9uID0gRXJyb3IoCiAgICAgICAgIlN1c3BlbnNlIEV4Y2VwdGlvbjogVGhpcyBpcyBub3QgYSByZWFsIGVycm9yISBJdCdzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCBvZiBgdXNlYCB0byBpbnRlcnJ1cHQgdGhlIGN1cnJlbnQgcmVuZGVyLiBZb3UgbXVzdCBlaXRoZXIgcmV0aHJvdyBpdCBpbW1lZGlhdGVseSwgb3IgbW92ZSB0aGUgYHVzZWAgY2FsbCBvdXRzaWRlIG9mIHRoZSBgdHJ5L2NhdGNoYCBibG9jay4gQ2FwdHVyaW5nIHdpdGhvdXQgcmV0aHJvd2luZyB3aWxsIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvci5cblxuVG8gaGFuZGxlIGFzeW5jIGVycm9ycywgd3JhcCB5b3VyIGNvbXBvbmVudCBpbiBhbiBlcnJvciBib3VuZGFyeSwgb3IgY2FsbCB0aGUgcHJvbWlzZSdzIGAuY2F0Y2hgIG1ldGhvZCBhbmQgcGFzcyB0aGUgcmVzdWx0IHRvIGB1c2VgLiIKICAgICAgKSwgU3VzcGVuc2V5Q29tbWl0RXhjZXB0aW9uID0gRXJyb3IoCiAgICAgICAgIlN1c3BlbnNlIEV4Y2VwdGlvbjogVGhpcyBpcyBub3QgYSByZWFsIGVycm9yLCBhbmQgc2hvdWxkIG5vdCBsZWFrIGludG8gdXNlcnNwYWNlLiBJZiB5b3UncmUgc2VlaW5nIHRoaXMsIGl0J3MgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiIKICAgICAgKSwgU3VzcGVuc2VBY3Rpb25FeGNlcHRpb24gPSBFcnJvcigKICAgICAgICAiU3VzcGVuc2UgRXhjZXB0aW9uOiBUaGlzIGlzIG5vdCBhIHJlYWwgZXJyb3IhIEl0J3MgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIGB1c2VBY3Rpb25TdGF0ZWAgdG8gaW50ZXJydXB0IHRoZSBjdXJyZW50IHJlbmRlci4gWW91IG11c3QgZWl0aGVyIHJldGhyb3cgaXQgaW1tZWRpYXRlbHksIG9yIG1vdmUgdGhlIGB1c2VBY3Rpb25TdGF0ZWAgY2FsbCBvdXRzaWRlIG9mIHRoZSBgdHJ5L2NhdGNoYCBibG9jay4gQ2FwdHVyaW5nIHdpdGhvdXQgcmV0aHJvd2luZyB3aWxsIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvci5cblxuVG8gaGFuZGxlIGFzeW5jIGVycm9ycywgd3JhcCB5b3VyIGNvbXBvbmVudCBpbiBhbiBlcnJvciBib3VuZGFyeS4iCiAgICAgICksIG5vb3BTdXNwZW5zZXlDb21taXRUaGVuYWJsZSA9IHsKICAgICAgICB0aGVuOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICdJbnRlcm5hbCBSZWFjdCBlcnJvcjogQSBsaXN0ZW5lciB3YXMgdW5leHBlY3RlZGx5IGF0dGFjaGVkIHRvIGEgIm5vb3AiIHRoZW5hYmxlLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgfSwgc3VzcGVuZGVkVGhlbmFibGUgPSBudWxsLCBuZWVkc1RvUmVzZXRTdXNwZW5kZWRUaGVuYWJsZURFViA9IGZhbHNlLCB0aGVuYWJsZVN0YXRlJDEgPSBudWxsLCB0aGVuYWJsZUluZGV4Q291bnRlciQxID0gMCwgY3VycmVudERlYnVnSW5mbyA9IG51bGwsIGRpZFdhcm5BYm91dE1hcHM7CiAgICAgIHZhciBkaWRXYXJuQWJvdXRHZW5lcmF0b3JzID0gZGlkV2FybkFib3V0TWFwcyA9IGZhbHNlOwogICAgICB2YXIgb3duZXJIYXNLZXlVc2VXYXJuaW5nID0ge307CiAgICAgIHZhciBvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmcgPSB7fTsKICAgICAgdmFyIG93bmVySGFzU3ltYm9sVHlwZVdhcm5pbmcgPSB7fTsKICAgICAgd2FybkZvck1pc3NpbmdLZXkgPSBmdW5jdGlvbihyZXR1cm5GaWJlciwgd29ya0luUHJvZ3Jlc3MyLCBjaGlsZCkgewogICAgICAgIGlmIChudWxsICE9PSBjaGlsZCAmJiAib2JqZWN0IiA9PT0gdHlwZW9mIGNoaWxkICYmIGNoaWxkLl9zdG9yZSAmJiAoIWNoaWxkLl9zdG9yZS52YWxpZGF0ZWQgJiYgbnVsbCA9PSBjaGlsZC5rZXkgfHwgMiA9PT0gY2hpbGQuX3N0b3JlLnZhbGlkYXRlZCkpIHsKICAgICAgICAgIGlmICgib2JqZWN0IiAhPT0gdHlwZW9mIGNoaWxkLl9zdG9yZSkKICAgICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICAgIlJlYWN0IENvbXBvbmVudCBpbiB3YXJuRm9yTWlzc2luZ0tleSBzaG91bGQgaGF2ZSBhIF9zdG9yZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iCiAgICAgICAgICAgICk7CiAgICAgICAgICBjaGlsZC5fc3RvcmUudmFsaWRhdGVkID0gMTsKICAgICAgICAgIHZhciBjb21wb25lbnROYW1lMiA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIocmV0dXJuRmliZXIpLCBjb21wb25lbnRLZXkgPSBjb21wb25lbnROYW1lMiB8fCAibnVsbCI7CiAgICAgICAgICBpZiAoIW93bmVySGFzS2V5VXNlV2FybmluZ1tjb21wb25lbnRLZXldKSB7CiAgICAgICAgICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1tjb21wb25lbnRLZXldID0gdHJ1ZTsKICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC5fb3duZXI7CiAgICAgICAgICAgIHJldHVybkZpYmVyID0gcmV0dXJuRmliZXIuX2RlYnVnT3duZXI7CiAgICAgICAgICAgIHZhciBjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvID0gIiI7CiAgICAgICAgICAgIHJldHVybkZpYmVyICYmICJudW1iZXIiID09PSB0eXBlb2YgcmV0dXJuRmliZXIudGFnICYmIChjb21wb25lbnRLZXkgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHJldHVybkZpYmVyKSkgJiYgKGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSAiXG5cbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAiICsgY29tcG9uZW50S2V5ICsgImAuIik7CiAgICAgICAgICAgIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gfHwgY29tcG9uZW50TmFtZTIgJiYgKGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSAiXG5cbkNoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNhbGwgdXNpbmcgPCIgKyBjb21wb25lbnROYW1lMiArICI+LiIpOwogICAgICAgICAgICB2YXIgY2hpbGRPd25lckFwcGVuZGl4ID0gIiI7CiAgICAgICAgICAgIG51bGwgIT0gY2hpbGQgJiYgcmV0dXJuRmliZXIgIT09IGNoaWxkICYmIChjb21wb25lbnROYW1lMiA9IG51bGwsICJudW1iZXIiID09PSB0eXBlb2YgY2hpbGQudGFnID8gY29tcG9uZW50TmFtZTIgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGNoaWxkKSA6ICJzdHJpbmciID09PSB0eXBlb2YgY2hpbGQubmFtZSAmJiAoY29tcG9uZW50TmFtZTIgPSBjaGlsZC5uYW1lKSwgY29tcG9uZW50TmFtZTIgJiYgKGNoaWxkT3duZXJBcHBlbmRpeCA9ICIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gIiArIGNvbXBvbmVudE5hbWUyICsgIi4iKSk7CiAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKHdvcmtJblByb2dyZXNzMiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSAia2V5IiBwcm9wLiVzJXMgU2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsCiAgICAgICAgICAgICAgICBjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvLAogICAgICAgICAgICAgICAgY2hpbGRPd25lckFwcGVuZGl4CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9OwogICAgICB2YXIgcmVjb25jaWxlQ2hpbGRGaWJlcnMgPSBjcmVhdGVDaGlsZFJlY29uY2lsZXIodHJ1ZSksIG1vdW50Q2hpbGRGaWJlcnMgPSBjcmVhdGVDaGlsZFJlY29uY2lsZXIoZmFsc2UpLCBVcGRhdGVTdGF0ZSA9IDAsIFJlcGxhY2VTdGF0ZSA9IDEsIEZvcmNlVXBkYXRlID0gMiwgQ2FwdHVyZVVwZGF0ZSA9IDMsIGhhc0ZvcmNlVXBkYXRlID0gZmFsc2U7CiAgICAgIHZhciBkaWRXYXJuVXBkYXRlSW5zaWRlVXBkYXRlID0gZmFsc2U7CiAgICAgIHZhciBjdXJyZW50bHlQcm9jZXNzaW5nUXVldWUgPSBudWxsOwogICAgICB2YXIgZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbiA9IGZhbHNlLCBjdXJyZW50VHJlZUhpZGRlblN0YWNrQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKG51bGwpLCBwcmV2RW50YW5nbGVkUmVuZGVyTGFuZXNDdXJzb3IgPSBjcmVhdGVDdXJzb3IoMCksIHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKG51bGwpLCBzaGVsbEJvdW5kYXJ5ID0gbnVsbCwgU3VidHJlZVN1c3BlbnNlQ29udGV4dE1hc2sgPSAxLCBGb3JjZVN1c3BlbnNlRmFsbGJhY2sgPSAyLCBzdXNwZW5zZVN0YWNrQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKDApLCBOb0ZsYWdzID0gMCwgSGFzRWZmZWN0ID0gMSwgSW5zZXJ0aW9uID0gMiwgTGF5b3V0ID0gNCwgUGFzc2l2ZSA9IDgsIGRpZFdhcm5VbmNhY2hlZEdldFNuYXBzaG90OwogICAgICB2YXIgZGlkV2FybkFib3V0TWlzbWF0Y2hlZEhvb2tzRm9yQ29tcG9uZW50ID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgdmFyIGRpZFdhcm5BYm91dFVzZVdyYXBwZWRJblRyeUNhdGNoID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgdmFyIGRpZFdhcm5BYm91dEFzeW5jQ2xpZW50Q29tcG9uZW50ID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgdmFyIGRpZFdhcm5BYm91dFVzZUZvcm1TdGF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHZhciByZW5kZXJMYW5lcyA9IDAsIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyID0gbnVsbCwgY3VycmVudEhvb2sgPSBudWxsLCB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBudWxsLCBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlID0gZmFsc2UsIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyA9IGZhbHNlLCBzaG91bGREb3VibGVJbnZva2VVc2VyRm5zSW5Ib29rc0RFViA9IGZhbHNlLCBsb2NhbElkQ291bnRlciA9IDAsIHRoZW5hYmxlSW5kZXhDb3VudGVyID0gMCwgdGhlbmFibGVTdGF0ZSA9IG51bGwsIGdsb2JhbENsaWVudElkQ291bnRlciA9IDAsIFJFX1JFTkRFUl9MSU1JVCA9IDI1LCBjdXJyZW50SG9va05hbWVJbkRldiA9IG51bGwsIGhvb2tUeXBlc0RldiA9IG51bGwsIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTEsIGlnbm9yZVByZXZpb3VzRGVwZW5kZW5jaWVzID0gZmFsc2UsIENvbnRleHRPbmx5RGlzcGF0Y2hlciA9IHsKICAgICAgICByZWFkQ29udGV4dCwKICAgICAgICB1c2UsCiAgICAgICAgdXNlQ2FsbGJhY2s6IHRocm93SW52YWxpZEhvb2tFcnJvciwKICAgICAgICB1c2VDb250ZXh0OiB0aHJvd0ludmFsaWRIb29rRXJyb3IsCiAgICAgICAgdXNlRWZmZWN0OiB0aHJvd0ludmFsaWRIb29rRXJyb3IsCiAgICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLAogICAgICAgIHVzZUxheW91dEVmZmVjdDogdGhyb3dJbnZhbGlkSG9va0Vycm9yLAogICAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogdGhyb3dJbnZhbGlkSG9va0Vycm9yLAogICAgICAgIHVzZU1lbW86IHRocm93SW52YWxpZEhvb2tFcnJvciwKICAgICAgICB1c2VSZWR1Y2VyOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsCiAgICAgICAgdXNlUmVmOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsCiAgICAgICAgdXNlU3RhdGU6IHRocm93SW52YWxpZEhvb2tFcnJvciwKICAgICAgICB1c2VEZWJ1Z1ZhbHVlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsCiAgICAgICAgdXNlRGVmZXJyZWRWYWx1ZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLAogICAgICAgIHVzZVRyYW5zaXRpb246IHRocm93SW52YWxpZEhvb2tFcnJvciwKICAgICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLAogICAgICAgIHVzZUlkOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsCiAgICAgICAgdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6IHRocm93SW52YWxpZEhvb2tFcnJvciwKICAgICAgICB1c2VGb3JtU3RhdGU6IHRocm93SW52YWxpZEhvb2tFcnJvciwKICAgICAgICB1c2VBY3Rpb25TdGF0ZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLAogICAgICAgIHVzZU9wdGltaXN0aWM6IHRocm93SW52YWxpZEhvb2tFcnJvciwKICAgICAgICB1c2VNZW1vQ2FjaGU6IHRocm93SW52YWxpZEhvb2tFcnJvciwKICAgICAgICB1c2VDYWNoZVJlZnJlc2g6IHRocm93SW52YWxpZEhvb2tFcnJvcgogICAgICB9OwogICAgICBDb250ZXh0T25seURpc3BhdGNoZXIudXNlRWZmZWN0RXZlbnQgPSB0aHJvd0ludmFsaWRIb29rRXJyb3I7CiAgICAgIHZhciBIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSBudWxsLCBIb29rc0Rpc3BhdGNoZXJPbk1vdW50V2l0aEhvb2tUeXBlc0luREVWID0gbnVsbCwgSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IG51bGwsIEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFViA9IG51bGwsIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSBudWxsLCBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IG51bGwsIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSBudWxsOwogICAgICBIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSB7CiAgICAgICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uKGNvbnRleHQpIHsKICAgICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTsKICAgICAgICB9LAogICAgICAgIHVzZSwKICAgICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24oY2FsbGJhY2ssIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUNhbGxiYWNrIjsKICAgICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7CiAgICAgICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTsKICAgICAgICAgIHJldHVybiBtb3VudENhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uKGNvbnRleHQpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUNvbnRleHQiOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTsKICAgICAgICB9LAogICAgICAgIHVzZUVmZmVjdDogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VFZmZlY3QiOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpOwogICAgICAgICAgcmV0dXJuIG1vdW50RWZmZWN0KGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgfSwKICAgICAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBmdW5jdGlvbihyZWYsIGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlSW1wZXJhdGl2ZUhhbmRsZSI7CiAgICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpOwogICAgICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7CiAgICAgICAgICByZXR1cm4gbW91bnRJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VJbnNlcnRpb25FZmZlY3QiOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpOwogICAgICAgICAgbW91bnRFZmZlY3RJbXBsKDQsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VMYXlvdXRFZmZlY3QiOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpOwogICAgICAgICAgcmV0dXJuIG1vdW50TGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgfSwKICAgICAgICB1c2VNZW1vOiBmdW5jdGlvbihjcmVhdGUsIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZU1lbW8iOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpOwogICAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDsKICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIG1vdW50TWVtbyhjcmVhdGUsIGRlcHMpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgdXNlUmVkdWNlcjogZnVuY3Rpb24ocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlUmVkdWNlciI7CiAgICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpOwogICAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDsKICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIG1vdW50UmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHVzZVJlZjogZnVuY3Rpb24oaW5pdGlhbFZhbHVlKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VSZWYiOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudFJlZihpbml0aWFsVmFsdWUpOwogICAgICAgIH0sCiAgICAgICAgdXNlU3RhdGU6IGZ1bmN0aW9uKGluaXRpYWxTdGF0ZSkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlU3RhdGUiOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7CiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBtb3VudFN0YXRlKGluaXRpYWxTdGF0ZSk7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZURlYnVnVmFsdWUiOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICB9LAogICAgICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uKHZhbHVlLCBpbml0aWFsVmFsdWUpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZURlZmVycmVkVmFsdWUiOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudERlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSk7CiAgICAgICAgfSwKICAgICAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVRyYW5zaXRpb24iOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudFRyYW5zaXRpb24oKTsKICAgICAgICB9LAogICAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbihzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlU3luY0V4dGVybmFsU3RvcmUiOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudFN5bmNFeHRlcm5hbFN0b3JlKAogICAgICAgICAgICBzdWJzY3JpYmUsCiAgICAgICAgICAgIGdldFNuYXBzaG90LAogICAgICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICAgIHVzZUlkOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUlkIjsKICAgICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gbW91bnRJZCgpOwogICAgICAgIH0sCiAgICAgICAgdXNlRm9ybVN0YXRlOiBmdW5jdGlvbihhY3Rpb24sIGluaXRpYWxTdGF0ZSkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlRm9ybVN0YXRlIjsKICAgICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB3YXJuT25Vc2VGb3JtU3RhdGVJbkRldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50QWN0aW9uU3RhdGUoYWN0aW9uLCBpbml0aWFsU3RhdGUpOwogICAgICAgIH0sCiAgICAgICAgdXNlQWN0aW9uU3RhdGU6IGZ1bmN0aW9uKGFjdGlvbiwgaW5pdGlhbFN0YXRlKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VBY3Rpb25TdGF0ZSI7CiAgICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50QWN0aW9uU3RhdGUoYWN0aW9uLCBpbml0aWFsU3RhdGUpOwogICAgICAgIH0sCiAgICAgICAgdXNlT3B0aW1pc3RpYzogZnVuY3Rpb24ocGFzc3Rocm91Z2gpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZU9wdGltaXN0aWMiOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudE9wdGltaXN0aWMocGFzc3Rocm91Z2gpOwogICAgICAgIH0sCiAgICAgICAgdXNlSG9zdFRyYW5zaXRpb25TdGF0dXMsCiAgICAgICAgdXNlTWVtb0NhY2hlLAogICAgICAgIHVzZUNhY2hlUmVmcmVzaDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VDYWNoZVJlZnJlc2giOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudFJlZnJlc2goKTsKICAgICAgICB9LAogICAgICAgIHVzZUVmZmVjdEV2ZW50OiBmdW5jdGlvbihjYWxsYmFjaykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlRWZmZWN0RXZlbnQiOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudEV2ZW50KGNhbGxiYWNrKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIEhvb2tzRGlzcGF0Y2hlck9uTW91bnRXaXRoSG9va1R5cGVzSW5ERVYgPSB7CiAgICAgICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uKGNvbnRleHQpIHsKICAgICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTsKICAgICAgICB9LAogICAgICAgIHVzZSwKICAgICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24oY2FsbGJhY2ssIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUNhbGxiYWNrIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlQ29udGV4dDogZnVuY3Rpb24oY29udGV4dCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlQ29udGV4dCI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTsKICAgICAgICB9LAogICAgICAgIHVzZUVmZmVjdDogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VFZmZlY3QiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gbW91bnRFZmZlY3QoY3JlYXRlLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uKHJlZiwgY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VJbXBlcmF0aXZlSGFuZGxlIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgfSwKICAgICAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlSW5zZXJ0aW9uRWZmZWN0IjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgbW91bnRFZmZlY3RJbXBsKDQsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VMYXlvdXRFZmZlY3QiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZU1lbW86IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlTWVtbyI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7CiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBtb3VudE1lbW8oY3JlYXRlLCBkZXBzKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVJlZHVjZXIiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IOwogICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gbW91bnRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgdXNlUmVmOiBmdW5jdGlvbihpbml0aWFsVmFsdWUpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVJlZiI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudFJlZihpbml0aWFsVmFsdWUpOwogICAgICAgIH0sCiAgICAgICAgdXNlU3RhdGU6IGZ1bmN0aW9uKGluaXRpYWxTdGF0ZSkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlU3RhdGUiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IOwogICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VEZWJ1Z1ZhbHVlIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgIH0sCiAgICAgICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24odmFsdWUsIGluaXRpYWxWYWx1ZSkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlRGVmZXJyZWRWYWx1ZSI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudERlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSk7CiAgICAgICAgfSwKICAgICAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVRyYW5zaXRpb24iOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gbW91bnRUcmFuc2l0aW9uKCk7CiAgICAgICAgfSwKICAgICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24oc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVN5bmNFeHRlcm5hbFN0b3JlIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50U3luY0V4dGVybmFsU3RvcmUoCiAgICAgICAgICAgIHN1YnNjcmliZSwKICAgICAgICAgICAgZ2V0U25hcHNob3QsCiAgICAgICAgICAgIGdldFNlcnZlclNuYXBzaG90CiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgdXNlSWQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlSWQiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gbW91bnRJZCgpOwogICAgICAgIH0sCiAgICAgICAgdXNlQWN0aW9uU3RhdGU6IGZ1bmN0aW9uKGFjdGlvbiwgaW5pdGlhbFN0YXRlKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VBY3Rpb25TdGF0ZSI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudEFjdGlvblN0YXRlKGFjdGlvbiwgaW5pdGlhbFN0YXRlKTsKICAgICAgICB9LAogICAgICAgIHVzZUZvcm1TdGF0ZTogZnVuY3Rpb24oYWN0aW9uLCBpbml0aWFsU3RhdGUpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUZvcm1TdGF0ZSI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHdhcm5PblVzZUZvcm1TdGF0ZUluRGV2KCk7CiAgICAgICAgICByZXR1cm4gbW91bnRBY3Rpb25TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSk7CiAgICAgICAgfSwKICAgICAgICB1c2VPcHRpbWlzdGljOiBmdW5jdGlvbihwYXNzdGhyb3VnaCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlT3B0aW1pc3RpYyI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudE9wdGltaXN0aWMocGFzc3Rocm91Z2gpOwogICAgICAgIH0sCiAgICAgICAgdXNlSG9zdFRyYW5zaXRpb25TdGF0dXMsCiAgICAgICAgdXNlTWVtb0NhY2hlLAogICAgICAgIHVzZUNhY2hlUmVmcmVzaDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VDYWNoZVJlZnJlc2giOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gbW91bnRSZWZyZXNoKCk7CiAgICAgICAgfSwKICAgICAgICB1c2VFZmZlY3RFdmVudDogZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUVmZmVjdEV2ZW50IjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50RXZlbnQoY2FsbGJhY2spOwogICAgICAgIH0KICAgICAgfTsKICAgICAgSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IHsKICAgICAgICByZWFkQ29udGV4dDogZnVuY3Rpb24oY29udGV4dCkgewogICAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpOwogICAgICAgIH0sCiAgICAgICAgdXNlLAogICAgICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbihjYWxsYmFjaywgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlQ2FsbGJhY2siOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlQ29udGV4dDogZnVuY3Rpb24oY29udGV4dCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlQ29udGV4dCI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTsKICAgICAgICB9LAogICAgICAgIHVzZUVmZmVjdDogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VFZmZlY3QiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB1cGRhdGVFZmZlY3RJbXBsKDIwNDgsIFBhc3NpdmUsIGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgfSwKICAgICAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBmdW5jdGlvbihyZWYsIGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlSW1wZXJhdGl2ZUhhbmRsZSI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VJbnNlcnRpb25FZmZlY3QiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlRWZmZWN0SW1wbCg0LCBJbnNlcnRpb24sIGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgfSwKICAgICAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlTGF5b3V0RWZmZWN0IjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgTGF5b3V0LCBjcmVhdGUsIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlTWVtbzogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VNZW1vIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDsKICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiB1cGRhdGVNZW1vKGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VSZWR1Y2VyIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDsKICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiB1cGRhdGVSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgdXNlUmVmOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVJlZiI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlOwogICAgICAgIH0sCiAgICAgICAgdXNlU3RhdGU6IGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlU3RhdGUiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IOwogICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVJlZHVjZXIoYmFzaWNTdGF0ZVJlZHVjZXIpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VEZWJ1Z1ZhbHVlIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgIH0sCiAgICAgICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24odmFsdWUsIGluaXRpYWxWYWx1ZSkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlRGVmZXJyZWRWYWx1ZSI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVEZWZlcnJlZFZhbHVlKHZhbHVlLCBpbml0aWFsVmFsdWUpOwogICAgICAgIH0sCiAgICAgICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VUcmFuc2l0aW9uIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZVRyYW5zaXRpb24oKTsKICAgICAgICB9LAogICAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbihzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlU3luY0V4dGVybmFsU3RvcmUiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlU3luY0V4dGVybmFsU3RvcmUoCiAgICAgICAgICAgIHN1YnNjcmliZSwKICAgICAgICAgICAgZ2V0U25hcHNob3QsCiAgICAgICAgICAgIGdldFNlcnZlclNuYXBzaG90CiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgdXNlSWQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlSWQiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTsKICAgICAgICB9LAogICAgICAgIHVzZUZvcm1TdGF0ZTogZnVuY3Rpb24oYWN0aW9uKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VGb3JtU3RhdGUiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB3YXJuT25Vc2VGb3JtU3RhdGVJbkRldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZUFjdGlvblN0YXRlKGFjdGlvbik7CiAgICAgICAgfSwKICAgICAgICB1c2VBY3Rpb25TdGF0ZTogZnVuY3Rpb24oYWN0aW9uKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VBY3Rpb25TdGF0ZSI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVBY3Rpb25TdGF0ZShhY3Rpb24pOwogICAgICAgIH0sCiAgICAgICAgdXNlT3B0aW1pc3RpYzogZnVuY3Rpb24ocGFzc3Rocm91Z2gsIHJlZHVjZXIpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZU9wdGltaXN0aWMiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlT3B0aW1pc3RpYyhwYXNzdGhyb3VnaCwgcmVkdWNlcik7CiAgICAgICAgfSwKICAgICAgICB1c2VIb3N0VHJhbnNpdGlvblN0YXR1cywKICAgICAgICB1c2VNZW1vQ2FjaGUsCiAgICAgICAgdXNlQ2FjaGVSZWZyZXNoOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUNhY2hlUmVmcmVzaCI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlOwogICAgICAgIH0sCiAgICAgICAgdXNlRWZmZWN0RXZlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VFZmZlY3RFdmVudCI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVFdmVudChjYWxsYmFjayk7CiAgICAgICAgfQogICAgICB9OwogICAgICBIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSB7CiAgICAgICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uKGNvbnRleHQpIHsKICAgICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTsKICAgICAgICB9LAogICAgICAgIHVzZSwKICAgICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24oY2FsbGJhY2ssIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUNhbGxiYWNrIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uKGNvbnRleHQpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUNvbnRleHQiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7CiAgICAgICAgfSwKICAgICAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlRWZmZWN0IjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgdXBkYXRlRWZmZWN0SW1wbCgyMDQ4LCBQYXNzaXZlLCBjcmVhdGUsIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24ocmVmLCBjcmVhdGUsIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUltcGVyYXRpdmVIYW5kbGUiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgfSwKICAgICAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlSW5zZXJ0aW9uRWZmZWN0IjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgSW5zZXJ0aW9uLCBjcmVhdGUsIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbihjcmVhdGUsIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUxheW91dEVmZmVjdCI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKDQsIExheW91dCwgY3JlYXRlLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZU1lbW86IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlTWVtbyI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7CiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFVjsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiB1cGRhdGVNZW1vKGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VSZWR1Y2VyIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDsKICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIHJlcmVuZGVyUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHVzZVJlZjogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VSZWYiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTsKICAgICAgICB9LAogICAgICAgIHVzZVN0YXRlOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVN0YXRlIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDsKICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIHJlcmVuZGVyUmVkdWNlcihiYXNpY1N0YXRlUmVkdWNlcik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZURlYnVnVmFsdWUiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgfSwKICAgICAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbih2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VEZWZlcnJlZFZhbHVlIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHJlcmVuZGVyRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTsKICAgICAgICB9LAogICAgICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlVHJhbnNpdGlvbiI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiByZXJlbmRlclRyYW5zaXRpb24oKTsKICAgICAgICB9LAogICAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbihzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlU3luY0V4dGVybmFsU3RvcmUiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlU3luY0V4dGVybmFsU3RvcmUoCiAgICAgICAgICAgIHN1YnNjcmliZSwKICAgICAgICAgICAgZ2V0U25hcHNob3QsCiAgICAgICAgICAgIGdldFNlcnZlclNuYXBzaG90CiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgdXNlSWQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlSWQiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTsKICAgICAgICB9LAogICAgICAgIHVzZUZvcm1TdGF0ZTogZnVuY3Rpb24oYWN0aW9uKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VGb3JtU3RhdGUiOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB3YXJuT25Vc2VGb3JtU3RhdGVJbkRldigpOwogICAgICAgICAgcmV0dXJuIHJlcmVuZGVyQWN0aW9uU3RhdGUoYWN0aW9uKTsKICAgICAgICB9LAogICAgICAgIHVzZUFjdGlvblN0YXRlOiBmdW5jdGlvbihhY3Rpb24pIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUFjdGlvblN0YXRlIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHJlcmVuZGVyQWN0aW9uU3RhdGUoYWN0aW9uKTsKICAgICAgICB9LAogICAgICAgIHVzZU9wdGltaXN0aWM6IGZ1bmN0aW9uKHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VPcHRpbWlzdGljIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHJlcmVuZGVyT3B0aW1pc3RpYyhwYXNzdGhyb3VnaCwgcmVkdWNlcik7CiAgICAgICAgfSwKICAgICAgICB1c2VIb3N0VHJhbnNpdGlvblN0YXR1cywKICAgICAgICB1c2VNZW1vQ2FjaGUsCiAgICAgICAgdXNlQ2FjaGVSZWZyZXNoOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUNhY2hlUmVmcmVzaCI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlOwogICAgICAgIH0sCiAgICAgICAgdXNlRWZmZWN0RXZlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VFZmZlY3RFdmVudCI7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVFdmVudChjYWxsYmFjayk7CiAgICAgICAgfQogICAgICB9OwogICAgICBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWID0gewogICAgICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbihjb250ZXh0KSB7CiAgICAgICAgICB3YXJuSW52YWxpZENvbnRleHRBY2Nlc3MoKTsKICAgICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTsKICAgICAgICB9LAogICAgICAgIHVzZTogZnVuY3Rpb24odXNhYmxlKSB7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHJldHVybiB1c2UodXNhYmxlKTsKICAgICAgICB9LAogICAgICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbihjYWxsYmFjaywgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlQ2FsbGJhY2siOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlQ29udGV4dDogZnVuY3Rpb24oY29udGV4dCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlQ29udGV4dCI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7CiAgICAgICAgfSwKICAgICAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlRWZmZWN0IjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudEVmZmVjdChjcmVhdGUsIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24ocmVmLCBjcmVhdGUsIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUltcGVyYXRpdmVIYW5kbGUiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgfSwKICAgICAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlSW5zZXJ0aW9uRWZmZWN0IjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIG1vdW50RWZmZWN0SW1wbCg0LCBJbnNlcnRpb24sIGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgfSwKICAgICAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlTGF5b3V0RWZmZWN0IjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudExheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlTWVtbzogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VNZW1vIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7CiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBtb3VudE1lbW8oY3JlYXRlLCBkZXBzKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVJlZHVjZXIiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpOwogICAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDsKICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIG1vdW50UmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHVzZVJlZjogZnVuY3Rpb24oaW5pdGlhbFZhbHVlKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VSZWYiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50UmVmKGluaXRpYWxWYWx1ZSk7CiAgICAgICAgfSwKICAgICAgICB1c2VTdGF0ZTogZnVuY3Rpb24oaW5pdGlhbFN0YXRlKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VTdGF0ZSI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IOwogICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VEZWJ1Z1ZhbHVlIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICB9LAogICAgICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uKHZhbHVlLCBpbml0aWFsVmFsdWUpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZURlZmVycmVkVmFsdWUiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50RGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTsKICAgICAgICB9LAogICAgICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlVHJhbnNpdGlvbiI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gbW91bnRUcmFuc2l0aW9uKCk7CiAgICAgICAgfSwKICAgICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24oc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVN5bmNFeHRlcm5hbFN0b3JlIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudFN5bmNFeHRlcm5hbFN0b3JlKAogICAgICAgICAgICBzdWJzY3JpYmUsCiAgICAgICAgICAgIGdldFNuYXBzaG90LAogICAgICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICAgIHVzZUlkOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUlkIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiBtb3VudElkKCk7CiAgICAgICAgfSwKICAgICAgICB1c2VGb3JtU3RhdGU6IGZ1bmN0aW9uKGFjdGlvbiwgaW5pdGlhbFN0YXRlKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VGb3JtU3RhdGUiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50QWN0aW9uU3RhdGUoYWN0aW9uLCBpbml0aWFsU3RhdGUpOwogICAgICAgIH0sCiAgICAgICAgdXNlQWN0aW9uU3RhdGU6IGZ1bmN0aW9uKGFjdGlvbiwgaW5pdGlhbFN0YXRlKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VBY3Rpb25TdGF0ZSI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gbW91bnRBY3Rpb25TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSk7CiAgICAgICAgfSwKICAgICAgICB1c2VPcHRpbWlzdGljOiBmdW5jdGlvbihwYXNzdGhyb3VnaCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlT3B0aW1pc3RpYyI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gbW91bnRPcHRpbWlzdGljKHBhc3N0aHJvdWdoKTsKICAgICAgICB9LAogICAgICAgIHVzZU1lbW9DYWNoZTogZnVuY3Rpb24oc2l6ZSkgewogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICByZXR1cm4gdXNlTWVtb0NhY2hlKHNpemUpOwogICAgICAgIH0sCiAgICAgICAgdXNlSG9zdFRyYW5zaXRpb25TdGF0dXMsCiAgICAgICAgdXNlQ2FjaGVSZWZyZXNoOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUNhY2hlUmVmcmVzaCI7CiAgICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIG1vdW50UmVmcmVzaCgpOwogICAgICAgIH0sCiAgICAgICAgdXNlRWZmZWN0RXZlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VFZmZlY3RFdmVudCI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gbW91bnRFdmVudChjYWxsYmFjayk7CiAgICAgICAgfQogICAgICB9OwogICAgICBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IHsKICAgICAgICByZWFkQ29udGV4dDogZnVuY3Rpb24oY29udGV4dCkgewogICAgICAgICAgd2FybkludmFsaWRDb250ZXh0QWNjZXNzKCk7CiAgICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7CiAgICAgICAgfSwKICAgICAgICB1c2U6IGZ1bmN0aW9uKHVzYWJsZSkgewogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICByZXR1cm4gdXNlKHVzYWJsZSk7CiAgICAgICAgfSwKICAgICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24oY2FsbGJhY2ssIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUNhbGxiYWNrIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlQ29udGV4dDogZnVuY3Rpb24oY29udGV4dCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlQ29udGV4dCI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpOwogICAgICAgIH0sCiAgICAgICAgdXNlRWZmZWN0OiBmdW5jdGlvbihjcmVhdGUsIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUVmZmVjdCI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgdXBkYXRlRWZmZWN0SW1wbCgyMDQ4LCBQYXNzaXZlLCBjcmVhdGUsIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24ocmVmLCBjcmVhdGUsIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUltcGVyYXRpdmVIYW5kbGUiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VJbnNlcnRpb25FZmZlY3QiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKDQsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VMYXlvdXRFZmZlY3QiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKDQsIExheW91dCwgY3JlYXRlLCBkZXBzKTsKICAgICAgICB9LAogICAgICAgIHVzZU1lbW86IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlTWVtbyI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDsKICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiB1cGRhdGVNZW1vKGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VSZWR1Y2VyIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IOwogICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB1c2VSZWY6IGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlUmVmIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTsKICAgICAgICB9LAogICAgICAgIHVzZVN0YXRlOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVN0YXRlIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IOwogICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVJlZHVjZXIoYmFzaWNTdGF0ZVJlZHVjZXIpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VEZWJ1Z1ZhbHVlIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgfSwKICAgICAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbih2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VEZWZlcnJlZFZhbHVlIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTsKICAgICAgICB9LAogICAgICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlVHJhbnNpdGlvbiI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZVRyYW5zaXRpb24oKTsKICAgICAgICB9LAogICAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbihzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlU3luY0V4dGVybmFsU3RvcmUiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZSgKICAgICAgICAgICAgc3Vic2NyaWJlLAogICAgICAgICAgICBnZXRTbmFwc2hvdCwKICAgICAgICAgICAgZ2V0U2VydmVyU25hcHNob3QKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICB1c2VJZDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VJZCI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGU7CiAgICAgICAgfSwKICAgICAgICB1c2VGb3JtU3RhdGU6IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlRm9ybVN0YXRlIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlQWN0aW9uU3RhdGUoYWN0aW9uKTsKICAgICAgICB9LAogICAgICAgIHVzZUFjdGlvblN0YXRlOiBmdW5jdGlvbihhY3Rpb24pIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUFjdGlvblN0YXRlIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlQWN0aW9uU3RhdGUoYWN0aW9uKTsKICAgICAgICB9LAogICAgICAgIHVzZU9wdGltaXN0aWM6IGZ1bmN0aW9uKHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VPcHRpbWlzdGljIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlT3B0aW1pc3RpYyhwYXNzdGhyb3VnaCwgcmVkdWNlcik7CiAgICAgICAgfSwKICAgICAgICB1c2VNZW1vQ2FjaGU6IGZ1bmN0aW9uKHNpemUpIHsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgcmV0dXJuIHVzZU1lbW9DYWNoZShzaXplKTsKICAgICAgICB9LAogICAgICAgIHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzLAogICAgICAgIHVzZUNhY2hlUmVmcmVzaDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VDYWNoZVJlZnJlc2giOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTsKICAgICAgICB9LAogICAgICAgIHVzZUVmZmVjdEV2ZW50OiBmdW5jdGlvbihjYWxsYmFjaykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlRWZmZWN0RXZlbnQiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVFdmVudChjYWxsYmFjayk7CiAgICAgICAgfQogICAgICB9OwogICAgICBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWID0gewogICAgICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbihjb250ZXh0KSB7CiAgICAgICAgICB3YXJuSW52YWxpZENvbnRleHRBY2Nlc3MoKTsKICAgICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTsKICAgICAgICB9LAogICAgICAgIHVzZTogZnVuY3Rpb24odXNhYmxlKSB7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHJldHVybiB1c2UodXNhYmxlKTsKICAgICAgICB9LAogICAgICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbihjYWxsYmFjaywgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlQ2FsbGJhY2siOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7CiAgICAgICAgfSwKICAgICAgICB1c2VDb250ZXh0OiBmdW5jdGlvbihjb250ZXh0KSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VDb250ZXh0IjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7CiAgICAgICAgfSwKICAgICAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uKGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlRWZmZWN0IjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB1cGRhdGVFZmZlY3RJbXBsKDIwNDgsIFBhc3NpdmUsIGNyZWF0ZSwgZGVwcyk7CiAgICAgICAgfSwKICAgICAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBmdW5jdGlvbihyZWYsIGNyZWF0ZSwgZGVwcykgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlSW1wZXJhdGl2ZUhhbmRsZSI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbihjcmVhdGUsIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUluc2VydGlvbkVmZmVjdCI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgSW5zZXJ0aW9uLCBjcmVhdGUsIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbihjcmVhdGUsIGRlcHMpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUxheW91dEVmZmVjdCI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgTGF5b3V0LCBjcmVhdGUsIGRlcHMpOwogICAgICAgIH0sCiAgICAgICAgdXNlTWVtbzogZnVuY3Rpb24oY3JlYXRlLCBkZXBzKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VNZW1vIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IOwogICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW8oY3JlYXRlLCBkZXBzKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVJlZHVjZXIiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7CiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gcmVyZW5kZXJSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgdXNlUmVmOiBmdW5jdGlvbigpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVJlZiI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGU7CiAgICAgICAgfSwKICAgICAgICB1c2VTdGF0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VTdGF0ZSI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDsKICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiByZXJlbmRlclJlZHVjZXIoYmFzaWNTdGF0ZVJlZHVjZXIpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VEZWJ1Z1ZhbHVlIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgfSwKICAgICAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbih2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VEZWZlcnJlZFZhbHVlIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gcmVyZW5kZXJEZWZlcnJlZFZhbHVlKHZhbHVlLCBpbml0aWFsVmFsdWUpOwogICAgICAgIH0sCiAgICAgICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24oKSB7CiAgICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICJ1c2VUcmFuc2l0aW9uIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gcmVyZW5kZXJUcmFuc2l0aW9uKCk7CiAgICAgICAgfSwKICAgICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24oc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZVN5bmNFeHRlcm5hbFN0b3JlIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlU3luY0V4dGVybmFsU3RvcmUoCiAgICAgICAgICAgIHN1YnNjcmliZSwKICAgICAgICAgICAgZ2V0U25hcHNob3QsCiAgICAgICAgICAgIGdldFNlcnZlclNuYXBzaG90CiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgdXNlSWQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlSWQiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlOwogICAgICAgIH0sCiAgICAgICAgdXNlRm9ybVN0YXRlOiBmdW5jdGlvbihhY3Rpb24pIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUZvcm1TdGF0ZSI7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHJlcmVuZGVyQWN0aW9uU3RhdGUoYWN0aW9uKTsKICAgICAgICB9LAogICAgICAgIHVzZUFjdGlvblN0YXRlOiBmdW5jdGlvbihhY3Rpb24pIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUFjdGlvblN0YXRlIjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gcmVyZW5kZXJBY3Rpb25TdGF0ZShhY3Rpb24pOwogICAgICAgIH0sCiAgICAgICAgdXNlT3B0aW1pc3RpYzogZnVuY3Rpb24ocGFzc3Rocm91Z2gsIHJlZHVjZXIpIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZU9wdGltaXN0aWMiOwogICAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7CiAgICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTsKICAgICAgICAgIHJldHVybiByZXJlbmRlck9wdGltaXN0aWMocGFzc3Rocm91Z2gsIHJlZHVjZXIpOwogICAgICAgIH0sCiAgICAgICAgdXNlTWVtb0NhY2hlOiBmdW5jdGlvbihzaXplKSB7CiAgICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTsKICAgICAgICAgIHJldHVybiB1c2VNZW1vQ2FjaGUoc2l6ZSk7CiAgICAgICAgfSwKICAgICAgICB1c2VIb3N0VHJhbnNpdGlvblN0YXR1cywKICAgICAgICB1c2VDYWNoZVJlZnJlc2g6IGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAidXNlQ2FjaGVSZWZyZXNoIjsKICAgICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpOwogICAgICAgICAgcmV0dXJuIHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGU7CiAgICAgICAgfSwKICAgICAgICB1c2VFZmZlY3RFdmVudDogZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gInVzZUVmZmVjdEV2ZW50IjsKICAgICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpOwogICAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7CiAgICAgICAgICByZXR1cm4gdXBkYXRlRXZlbnQoY2FsbGJhY2spOwogICAgICAgIH0KICAgICAgfTsKICAgICAgdmFyIGZha2VJbnRlcm5hbEluc3RhbmNlID0ge307CiAgICAgIHZhciBkaWRXYXJuQWJvdXRTdGF0ZUFzc2lnbm1lbnRGb3JDb21wb25lbnQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICB2YXIgZGlkV2FybkFib3V0VW5pbml0aWFsaXplZFN0YXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgdmFyIGRpZFdhcm5BYm91dEdldFNuYXBzaG90QmVmb3JlVXBkYXRlV2l0aG91dERpZFVwZGF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHZhciBkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgdmFyIGRpZFdhcm5BYm91dERpcmVjdGx5QXNzaWduaW5nUHJvcHNUb1N0YXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgdmFyIGRpZFdhcm5BYm91dFVuZGVmaW5lZERlcml2ZWRTdGF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHZhciBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZXMkMSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHZhciBkaWRXYXJuQWJvdXRDaGlsZENvbnRleHRUeXBlcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHZhciBkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICB2YXIgZGlkV2Fybk9uSW52YWxpZENhbGxiYWNrID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgT2JqZWN0LmZyZWV6ZShmYWtlSW50ZXJuYWxJbnN0YW5jZSk7CiAgICAgIHZhciBjbGFzc0NvbXBvbmVudFVwZGF0ZXIgPSB7CiAgICAgICAgZW5xdWV1ZVNldFN0YXRlOiBmdW5jdGlvbihpbnN0LCBwYXlsb2FkLCBjYWxsYmFjaykgewogICAgICAgICAgaW5zdCA9IGluc3QuX3JlYWN0SW50ZXJuYWxzOwogICAgICAgICAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShpbnN0KSwgdXBkYXRlID0gY3JlYXRlVXBkYXRlKGxhbmUpOwogICAgICAgICAgdXBkYXRlLnBheWxvYWQgPSBwYXlsb2FkOwogICAgICAgICAgdm9pZCAwICE9PSBjYWxsYmFjayAmJiBudWxsICE9PSBjYWxsYmFjayAmJiAod2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrKSwgdXBkYXRlLmNhbGxiYWNrID0gY2FsbGJhY2spOwogICAgICAgICAgcGF5bG9hZCA9IGVucXVldWVVcGRhdGUoaW5zdCwgdXBkYXRlLCBsYW5lKTsKICAgICAgICAgIG51bGwgIT09IHBheWxvYWQgJiYgKHN0YXJ0VXBkYXRlVGltZXJCeUxhbmUobGFuZSwgInRoaXMuc2V0U3RhdGUoKSIsIGluc3QpLCBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocGF5bG9hZCwgaW5zdCwgbGFuZSksIGVudGFuZ2xlVHJhbnNpdGlvbnMocGF5bG9hZCwgaW5zdCwgbGFuZSkpOwogICAgICAgIH0sCiAgICAgICAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24oaW5zdCwgcGF5bG9hZCwgY2FsbGJhY2spIHsKICAgICAgICAgIGluc3QgPSBpbnN0Ll9yZWFjdEludGVybmFsczsKICAgICAgICAgIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoaW5zdCksIHVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShsYW5lKTsKICAgICAgICAgIHVwZGF0ZS50YWcgPSBSZXBsYWNlU3RhdGU7CiAgICAgICAgICB1cGRhdGUucGF5bG9hZCA9IHBheWxvYWQ7CiAgICAgICAgICB2b2lkIDAgIT09IGNhbGxiYWNrICYmIG51bGwgIT09IGNhbGxiYWNrICYmICh3YXJuT25JbnZhbGlkQ2FsbGJhY2soY2FsbGJhY2spLCB1cGRhdGUuY2FsbGJhY2sgPSBjYWxsYmFjayk7CiAgICAgICAgICBwYXlsb2FkID0gZW5xdWV1ZVVwZGF0ZShpbnN0LCB1cGRhdGUsIGxhbmUpOwogICAgICAgICAgbnVsbCAhPT0gcGF5bG9hZCAmJiAoc3RhcnRVcGRhdGVUaW1lckJ5TGFuZShsYW5lLCAidGhpcy5yZXBsYWNlU3RhdGUoKSIsIGluc3QpLCBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocGF5bG9hZCwgaW5zdCwgbGFuZSksIGVudGFuZ2xlVHJhbnNpdGlvbnMocGF5bG9hZCwgaW5zdCwgbGFuZSkpOwogICAgICAgIH0sCiAgICAgICAgZW5xdWV1ZUZvcmNlVXBkYXRlOiBmdW5jdGlvbihpbnN0LCBjYWxsYmFjaykgewogICAgICAgICAgaW5zdCA9IGluc3QuX3JlYWN0SW50ZXJuYWxzOwogICAgICAgICAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShpbnN0KSwgdXBkYXRlID0gY3JlYXRlVXBkYXRlKGxhbmUpOwogICAgICAgICAgdXBkYXRlLnRhZyA9IEZvcmNlVXBkYXRlOwogICAgICAgICAgdm9pZCAwICE9PSBjYWxsYmFjayAmJiBudWxsICE9PSBjYWxsYmFjayAmJiAod2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrKSwgdXBkYXRlLmNhbGxiYWNrID0gY2FsbGJhY2spOwogICAgICAgICAgY2FsbGJhY2sgPSBlbnF1ZXVlVXBkYXRlKGluc3QsIHVwZGF0ZSwgbGFuZSk7CiAgICAgICAgICBudWxsICE9PSBjYWxsYmFjayAmJiAoc3RhcnRVcGRhdGVUaW1lckJ5TGFuZShsYW5lLCAidGhpcy5mb3JjZVVwZGF0ZSgpIiwgaW5zdCksIHNjaGVkdWxlVXBkYXRlT25GaWJlcihjYWxsYmFjaywgaW5zdCwgbGFuZSksIGVudGFuZ2xlVHJhbnNpdGlvbnMoY2FsbGJhY2ssIGluc3QsIGxhbmUpKTsKICAgICAgICB9CiAgICAgIH0sIGNvbXBvbmVudE5hbWUgPSBudWxsLCBlcnJvckJvdW5kYXJ5TmFtZSA9IG51bGwsIFNlbGVjdGl2ZUh5ZHJhdGlvbkV4Y2VwdGlvbiA9IEVycm9yKAogICAgICAgICJUaGlzIGlzIG5vdCBhIHJlYWwgZXJyb3IuIEl0J3MgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIFJlYWN0J3Mgc2VsZWN0aXZlIGh5ZHJhdGlvbiBmZWF0dXJlLiBJZiB0aGlzIGxlYWtzIGludG8gdXNlcnNwYWNlLCBpdCdzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4iCiAgICAgICksIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZTsKICAgICAgdmFyIGRpZFdhcm5BYm91dEJhZENsYXNzID0ge307CiAgICAgIHZhciBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnQgPSB7fTsKICAgICAgdmFyIGRpZFdhcm5BYm91dENvbnRleHRUeXBlcyA9IHt9OwogICAgICB2YXIgZGlkV2FybkFib3V0R2V0RGVyaXZlZFN0YXRlT25GdW5jdGlvbkNvbXBvbmVudCA9IHt9OwogICAgICB2YXIgZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyA9IGZhbHNlOwogICAgICB2YXIgZGlkV2FybkFib3V0UmV2ZWFsT3JkZXIgPSB7fTsKICAgICAgdmFyIGRpZFdhcm5BYm91dFRhaWxPcHRpb25zID0ge307CiAgICAgIHZhciBTVVNQRU5ERURfTUFSS0VSID0gewogICAgICAgIGRlaHlkcmF0ZWQ6IG51bGwsCiAgICAgICAgdHJlZUNvbnRleHQ6IG51bGwsCiAgICAgICAgcmV0cnlMYW5lOiAwLAogICAgICAgIGh5ZHJhdGlvbkVycm9yczogbnVsbAogICAgICB9LCBoYXNXYXJuZWRBYm91dFVzaW5nTm9WYWx1ZVByb3BPbkNvbnRleHRQcm92aWRlciA9IGZhbHNlLCBkaWRXYXJuQWJvdXRVbmRlZmluZWRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9IG51bGw7CiAgICAgIGRpZFdhcm5BYm91dFVuZGVmaW5lZFNuYXBzaG90QmVmb3JlVXBkYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgdmFyIG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiA9IGZhbHNlLCBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuID0gZmFsc2UsIG5lZWRzRm9ybVJlc2V0ID0gZmFsc2UsIFBvc3NpYmx5V2Vha1NldCA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBXZWFrU2V0ID8gV2Vha1NldCA6IFNldCwgbmV4dEVmZmVjdCA9IG51bGwsIGluUHJvZ3Jlc3NMYW5lcyA9IG51bGwsIGluUHJvZ3Jlc3NSb290ID0gbnVsbCwgaG9zdFBhcmVudCA9IG51bGwsIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IGZhbHNlLCBjdXJyZW50SG9pc3RhYmxlUm9vdCA9IG51bGwsIGluSHlkcmF0ZWRTdWJ0cmVlID0gZmFsc2UsIHN1c3BlbnNleUNvbW1pdEZsYWcgPSA4MTkyLCBEZWZhdWx0QXN5bmNEaXNwYXRjaGVyID0gewogICAgICAgIGdldENhY2hlRm9yVHlwZTogZnVuY3Rpb24ocmVzb3VyY2VUeXBlKSB7CiAgICAgICAgICB2YXIgY2FjaGUgPSByZWFkQ29udGV4dChDYWNoZUNvbnRleHQpLCBjYWNoZUZvclR5cGUgPSBjYWNoZS5kYXRhLmdldChyZXNvdXJjZVR5cGUpOwogICAgICAgICAgdm9pZCAwID09PSBjYWNoZUZvclR5cGUgJiYgKGNhY2hlRm9yVHlwZSA9IHJlc291cmNlVHlwZSgpLCBjYWNoZS5kYXRhLnNldChyZXNvdXJjZVR5cGUsIGNhY2hlRm9yVHlwZSkpOwogICAgICAgICAgcmV0dXJuIGNhY2hlRm9yVHlwZTsKICAgICAgICB9LAogICAgICAgIGNhY2hlU2lnbmFsOiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiByZWFkQ29udGV4dChDYWNoZUNvbnRleHQpLmNvbnRyb2xsZXIuc2lnbmFsOwogICAgICAgIH0sCiAgICAgICAgZ2V0T3duZXI6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGN1cnJlbnQ7CiAgICAgICAgfQogICAgICB9OwogICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIFN5bWJvbCAmJiBTeW1ib2wuZm9yKSB7CiAgICAgICAgdmFyIHN5bWJvbEZvciA9IFN5bWJvbC5mb3I7CiAgICAgICAgc3ltYm9sRm9yKCJzZWxlY3Rvci5jb21wb25lbnQiKTsKICAgICAgICBzeW1ib2xGb3IoInNlbGVjdG9yLmhhc19wc2V1ZG9fY2xhc3MiKTsKICAgICAgICBzeW1ib2xGb3IoInNlbGVjdG9yLnJvbGUiKTsKICAgICAgICBzeW1ib2xGb3IoInNlbGVjdG9yLnRlc3RfaWQiKTsKICAgICAgICBzeW1ib2xGb3IoInNlbGVjdG9yLnRleHQiKTsKICAgICAgfQogICAgICB2YXIgY29tbWl0SG9va3MgPSBbXSwgUG9zc2libHlXZWFrTWFwID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIFdlYWtNYXAgPyBXZWFrTWFwIDogTWFwLCBOb0NvbnRleHQgPSAwLCBSZW5kZXJDb250ZXh0ID0gMiwgQ29tbWl0Q29udGV4dCA9IDQsIFJvb3RJblByb2dyZXNzID0gMCwgUm9vdEZhdGFsRXJyb3JlZCA9IDEsIFJvb3RFcnJvcmVkID0gMiwgUm9vdFN1c3BlbmRlZCA9IDMsIFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkgPSA0LCBSb290U3VzcGVuZGVkQXRUaGVTaGVsbCA9IDYsIFJvb3RDb21wbGV0ZWQgPSA1LCBleGVjdXRpb25Db250ZXh0ID0gTm9Db250ZXh0LCB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsLCB3b3JrSW5Qcm9ncmVzcyA9IG51bGwsIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gMCwgTm90U3VzcGVuZGVkID0gMCwgU3VzcGVuZGVkT25FcnJvciA9IDEsIFN1c3BlbmRlZE9uRGF0YSA9IDIsIFN1c3BlbmRlZE9uSW1tZWRpYXRlID0gMywgU3VzcGVuZGVkT25JbnN0YW5jZSA9IDQsIFN1c3BlbmRlZE9uSW5zdGFuY2VBbmRSZWFkeVRvQ29udGludWUgPSA1LCBTdXNwZW5kZWRPbkRlcHJlY2F0ZWRUaHJvd1Byb21pc2UgPSA2LCBTdXNwZW5kZWRBbmRSZWFkeVRvQ29udGludWUgPSA3LCBTdXNwZW5kZWRPbkh5ZHJhdGlvbiA9IDgsIFN1c3BlbmRlZE9uQWN0aW9uID0gOSwgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPSBOb3RTdXNwZW5kZWQsIHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUgPSBudWxsLCB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRTa2lwU3VzcGVuZGVkU2libGluZ3MgPSBmYWxzZSwgd29ya0luUHJvZ3Jlc3NSb290SXNQcmVyZW5kZXJpbmcgPSBmYWxzZSwgd29ya0luUHJvZ3Jlc3NSb290RGlkQXR0YWNoUGluZ0xpc3RlbmVyID0gZmFsc2UsIGVudGFuZ2xlZFJlbmRlckxhbmVzID0gMCwgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RJblByb2dyZXNzLCB3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgPSAwLCB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyA9IDAsIHdvcmtJblByb2dyZXNzUm9vdFBpbmdlZExhbmVzID0gMCwgd29ya0luUHJvZ3Jlc3NEZWZlcnJlZExhbmUgPSAwLCB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJldHJ5TGFuZXMgPSAwLCB3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzID0gbnVsbCwgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMgPSBudWxsLCB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRJbmNsdWRlUmVjdXJzaXZlUmVuZGVyVXBkYXRlID0gZmFsc2UsIGdsb2JhbE1vc3RSZWNlbnRGYWxsYmFja1RpbWUgPSAwLCBnbG9iYWxNb3N0UmVjZW50VHJhbnNpdGlvblRpbWUgPSAwLCBGQUxMQkFDS19USFJPVFRMRV9NUyA9IDMwMCwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyVGFyZ2V0VGltZSA9IEluZmluaXR5LCBSRU5ERVJfVElNRU9VVF9NUyA9IDUwMCwgd29ya0luUHJvZ3Jlc3NUcmFuc2l0aW9ucyA9IG51bGwsIHdvcmtJblByb2dyZXNzVXBkYXRlVGFzayA9IG51bGwsIGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkID0gbnVsbCwgSU1NRURJQVRFX0NPTU1JVCA9IDAsIEFCT1JURURfVklFV19UUkFOU0lUSU9OX0NPTU1JVCA9IDEsIERFTEFZRURfUEFTU0lWRV9DT01NSVQgPSAyLCBBTklNQVRJT05fU1RBUlRFRF9DT01NSVQgPSAzLCBOT19QRU5ESU5HX0VGRkVDVFMgPSAwLCBQRU5ESU5HX01VVEFUSU9OX1BIQVNFID0gMSwgUEVORElOR19MQVlPVVRfUEhBU0UgPSAyLCBQRU5ESU5HX0FGVEVSX01VVEFUSU9OX1BIQVNFID0gMywgUEVORElOR19TUEFXTkVEX1dPUksgPSA0LCBQRU5ESU5HX1BBU1NJVkVfUEhBU0UgPSA1LCBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IDAsIHBlbmRpbmdFZmZlY3RzUm9vdCA9IG51bGwsIHBlbmRpbmdGaW5pc2hlZFdvcmsgPSBudWxsLCBwZW5kaW5nRWZmZWN0c0xhbmVzID0gMCwgcGVuZGluZ0VmZmVjdHNSZW1haW5pbmdMYW5lcyA9IDAsIHBlbmRpbmdFZmZlY3RzUmVuZGVyRW5kVGltZSA9IC0wLCBwZW5kaW5nUGFzc2l2ZVRyYW5zaXRpb25zID0gbnVsbCwgcGVuZGluZ1JlY292ZXJhYmxlRXJyb3JzID0gbnVsbCwgcGVuZGluZ1N1c3BlbmRlZENvbW1pdFJlYXNvbiA9IG51bGwsIHBlbmRpbmdEZWxheWVkQ29tbWl0UmVhc29uID0gSU1NRURJQVRFX0NPTU1JVCwgcGVuZGluZ1N1c3BlbmRlZFZpZXdUcmFuc2l0aW9uUmVhc29uID0gbnVsbCwgTkVTVEVEX1VQREFURV9MSU1JVCA9IDUwLCBuZXN0ZWRVcGRhdGVDb3VudCA9IDAsIHJvb3RXaXRoTmVzdGVkVXBkYXRlcyA9IG51bGwsIGlzRmx1c2hpbmdQYXNzaXZlRWZmZWN0cyA9IGZhbHNlLCBkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzID0gZmFsc2UsIE5FU1RFRF9QQVNTSVZFX1VQREFURV9MSU1JVCA9IDUwLCBuZXN0ZWRQYXNzaXZlVXBkYXRlQ291bnQgPSAwLCByb290V2l0aFBhc3NpdmVOZXN0ZWRVcGRhdGVzID0gbnVsbCwgaXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0ID0gZmFsc2UsIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvck5vdFlldE1vdW50ZWRDb21wb25lbnQgPSBudWxsLCBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlciA9IGZhbHNlOwogICAgICB2YXIgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXJGb3JBbm90aGVyQ29tcG9uZW50ID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgdmFyIGZha2VBY3RDYWxsYmFja05vZGUkMSA9IHt9LCBmaXJzdFNjaGVkdWxlZFJvb3QgPSBudWxsLCBsYXN0U2NoZWR1bGVkUm9vdCA9IG51bGwsIGRpZFNjaGVkdWxlTWljcm90YXNrID0gZmFsc2UsIGRpZFNjaGVkdWxlTWljcm90YXNrX2FjdCA9IGZhbHNlLCBtaWdodEhhdmVQZW5kaW5nU3luY1dvcmsgPSBmYWxzZSwgaXNGbHVzaGluZ1dvcmsgPSBmYWxzZSwgY3VycmVudEV2ZW50VHJhbnNpdGlvbkxhbmUgPSAwLCBmYWtlQWN0Q2FsbGJhY2tOb2RlID0ge307CiAgICAgIChmdW5jdGlvbigpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpbXBsZUV2ZW50UGx1Z2luRXZlbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgZXZlbnROYW1lID0gc2ltcGxlRXZlbnRQbHVnaW5FdmVudHNbaV0sIGRvbUV2ZW50TmFtZSA9IGV2ZW50TmFtZS50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgZXZlbnROYW1lID0gZXZlbnROYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBldmVudE5hbWUuc2xpY2UoMSk7CiAgICAgICAgICByZWdpc3RlclNpbXBsZUV2ZW50KGRvbUV2ZW50TmFtZSwgIm9uIiArIGV2ZW50TmFtZSk7CiAgICAgICAgfQogICAgICAgIHJlZ2lzdGVyU2ltcGxlRXZlbnQoQU5JTUFUSU9OX0VORCwgIm9uQW5pbWF0aW9uRW5kIik7CiAgICAgICAgcmVnaXN0ZXJTaW1wbGVFdmVudChBTklNQVRJT05fSVRFUkFUSU9OLCAib25BbmltYXRpb25JdGVyYXRpb24iKTsKICAgICAgICByZWdpc3RlclNpbXBsZUV2ZW50KEFOSU1BVElPTl9TVEFSVCwgIm9uQW5pbWF0aW9uU3RhcnQiKTsKICAgICAgICByZWdpc3RlclNpbXBsZUV2ZW50KCJkYmxjbGljayIsICJvbkRvdWJsZUNsaWNrIik7CiAgICAgICAgcmVnaXN0ZXJTaW1wbGVFdmVudCgiZm9jdXNpbiIsICJvbkZvY3VzIik7CiAgICAgICAgcmVnaXN0ZXJTaW1wbGVFdmVudCgiZm9jdXNvdXQiLCAib25CbHVyIik7CiAgICAgICAgcmVnaXN0ZXJTaW1wbGVFdmVudChUUkFOU0lUSU9OX1JVTiwgIm9uVHJhbnNpdGlvblJ1biIpOwogICAgICAgIHJlZ2lzdGVyU2ltcGxlRXZlbnQoVFJBTlNJVElPTl9TVEFSVCwgIm9uVHJhbnNpdGlvblN0YXJ0Iik7CiAgICAgICAgcmVnaXN0ZXJTaW1wbGVFdmVudChUUkFOU0lUSU9OX0NBTkNFTCwgIm9uVHJhbnNpdGlvbkNhbmNlbCIpOwogICAgICAgIHJlZ2lzdGVyU2ltcGxlRXZlbnQoVFJBTlNJVElPTl9FTkQsICJvblRyYW5zaXRpb25FbmQiKTsKICAgICAgfSkoKTsKICAgICAgcmVnaXN0ZXJEaXJlY3RFdmVudCgib25Nb3VzZUVudGVyIiwgWyJtb3VzZW91dCIsICJtb3VzZW92ZXIiXSk7CiAgICAgIHJlZ2lzdGVyRGlyZWN0RXZlbnQoIm9uTW91c2VMZWF2ZSIsIFsibW91c2VvdXQiLCAibW91c2VvdmVyIl0pOwogICAgICByZWdpc3RlckRpcmVjdEV2ZW50KCJvblBvaW50ZXJFbnRlciIsIFsicG9pbnRlcm91dCIsICJwb2ludGVyb3ZlciJdKTsKICAgICAgcmVnaXN0ZXJEaXJlY3RFdmVudCgib25Qb2ludGVyTGVhdmUiLCBbInBvaW50ZXJvdXQiLCAicG9pbnRlcm92ZXIiXSk7CiAgICAgIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgKICAgICAgICAib25DaGFuZ2UiLAogICAgICAgICJjaGFuZ2UgY2xpY2sgZm9jdXNpbiBmb2N1c291dCBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoCiAgICAgICAgICAiICIKICAgICAgICApCiAgICAgICk7CiAgICAgIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgKICAgICAgICAib25TZWxlY3QiLAogICAgICAgICJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KAogICAgICAgICAgIiAiCiAgICAgICAgKQogICAgICApOwogICAgICByZWdpc3RlclR3b1BoYXNlRXZlbnQoIm9uQmVmb3JlSW5wdXQiLCBbCiAgICAgICAgImNvbXBvc2l0aW9uZW5kIiwKICAgICAgICAia2V5cHJlc3MiLAogICAgICAgICJ0ZXh0SW5wdXQiLAogICAgICAgICJwYXN0ZSIKICAgICAgXSk7CiAgICAgIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgKICAgICAgICAib25Db21wb3NpdGlvbkVuZCIsCiAgICAgICAgImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpCiAgICAgICk7CiAgICAgIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgKICAgICAgICAib25Db21wb3NpdGlvblN0YXJ0IiwKICAgICAgICAiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKQogICAgICApOwogICAgICByZWdpc3RlclR3b1BoYXNlRXZlbnQoCiAgICAgICAgIm9uQ29tcG9zaXRpb25VcGRhdGUiLAogICAgICAgICJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKQogICAgICApOwogICAgICB2YXIgbWVkaWFFdmVudFR5cGVzID0gImFib3J0IGNhbnBsYXkgY2FucGxheXRocm91Z2ggZHVyYXRpb25jaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgbG9hZGVkZGF0YSBsb2FkZWRtZXRhZGF0YSBsb2Fkc3RhcnQgcGF1c2UgcGxheSBwbGF5aW5nIHByb2dyZXNzIHJhdGVjaGFuZ2UgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VzcGVuZCB0aW1ldXBkYXRlIHZvbHVtZWNoYW5nZSB3YWl0aW5nIi5zcGxpdCgKICAgICAgICAiICIKICAgICAgKSwgbm9uRGVsZWdhdGVkRXZlbnRzID0gbmV3IFNldCgKICAgICAgICAiYmVmb3JldG9nZ2xlIGNhbmNlbCBjbG9zZSBpbnZhbGlkIGxvYWQgc2Nyb2xsIHNjcm9sbGVuZCB0b2dnbGUiLnNwbGl0KCIgIikuY29uY2F0KG1lZGlhRXZlbnRUeXBlcykKICAgICAgKSwgbGlzdGVuaW5nTWFya2VyID0gIl9yZWFjdExpc3RlbmluZyIgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSwgZGlkV2FybkNvbnRyb2xsZWRUb1VuY29udHJvbGxlZCA9IGZhbHNlLCBkaWRXYXJuVW5jb250cm9sbGVkVG9Db250cm9sbGVkID0gZmFsc2UsIGRpZFdhcm5Gb3JtQWN0aW9uVHlwZSA9IGZhbHNlLCBkaWRXYXJuRm9ybUFjdGlvbk5hbWUgPSBmYWxzZSwgZGlkV2FybkZvcm1BY3Rpb25UYXJnZXQgPSBmYWxzZSwgZGlkV2FybkZvcm1BY3Rpb25NZXRob2QgPSBmYWxzZSwgZGlkV2FyblBvcG92ZXJUYXJnZXRPYmplY3QgPSBmYWxzZTsKICAgICAgdmFyIGRpZFdhcm5Gb3JOZXdCb29sZWFuUHJvcHNXaXRoRW1wdHlWYWx1ZSA9IHt9OwogICAgICB2YXIgTk9STUFMSVpFX05FV0xJTkVTX1JFR0VYID0gL1xyXG4/L2csIE5PUk1BTElaRV9OVUxMX0FORF9SRVBMQUNFTUVOVF9SRUdFWCA9IC9cdTAwMDB8XHVGRkZEL2csIHhsaW5rTmFtZXNwYWNlID0gImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCB4bWxOYW1lc3BhY2UgPSAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwgRVhQRUNURURfRk9STV9BQ1RJT05fVVJMID0gImphdmFzY3JpcHQ6dGhyb3cgbmV3IEVycm9yKCdSZWFjdCBmb3JtIHVuZXhwZWN0ZWRseSBzdWJtaXR0ZWQuJykiLCBTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyA9ICJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciLCBBQ1RJVklUWV9TVEFSVF9EQVRBID0gIiYiLCBBQ1RJVklUWV9FTkRfREFUQSA9ICIvJiIsIFNVU1BFTlNFX1NUQVJUX0RBVEEgPSAiJCIsIFNVU1BFTlNFX0VORF9EQVRBID0gIi8kIiwgU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBID0gIiQ/IiwgU1VTUEVOU0VfUVVFVUVEX1NUQVJUX0RBVEEgPSAiJH4iLCBTVVNQRU5TRV9GQUxMQkFDS19TVEFSVF9EQVRBID0gIiQhIiwgUFJFQU1CTEVfQ09OVFJJQlVUSU9OX0hUTUwgPSAiaHRtbCIsIFBSRUFNQkxFX0NPTlRSSUJVVElPTl9CT0RZID0gImJvZHkiLCBQUkVBTUJMRV9DT05UUklCVVRJT05fSEVBRCA9ICJoZWFkIiwgRk9STV9TVEFURV9JU19NQVRDSElORyA9ICJGISIsIEZPUk1fU1RBVEVfSVNfTk9UX01BVENISU5HID0gIkYiLCBET0NVTUVOVF9SRUFEWV9TVEFURV9MT0FESU5HID0gImxvYWRpbmciLCBTVFlMRSA9ICJzdHlsZSIsIEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZSA9IDAsIEhvc3RDb250ZXh0TmFtZXNwYWNlU3ZnID0gMSwgSG9zdENvbnRleHROYW1lc3BhY2VNYXRoID0gMiwgZXZlbnRzRW5hYmxlZCA9IG51bGwsIHNlbGVjdGlvbkluZm9ybWF0aW9uID0gbnVsbCwgd2FybmVkVW5rbm93blRhZ3MgPSB7IGRpYWxvZzogdHJ1ZSwgd2VidmlldzogdHJ1ZSB9LCBjdXJyZW50UG9wc3RhdGVUcmFuc2l0aW9uRXZlbnQgPSBudWxsLCBzY2hlZHVsZXJFdmVudCA9IHZvaWQgMCwgc2NoZWR1bGVUaW1lb3V0ID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHNldFRpbWVvdXQgPyBzZXRUaW1lb3V0IDogdm9pZCAwLCBjYW5jZWxUaW1lb3V0ID0gImZ1bmN0aW9uIiA9PT0gdHlwZW9mIGNsZWFyVGltZW91dCA/IGNsZWFyVGltZW91dCA6IHZvaWQgMCwgbm9UaW1lb3V0ID0gLTEsIGxvY2FsUHJvbWlzZSA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBQcm9taXNlID8gUHJvbWlzZSA6IHZvaWQgMCwgc2NoZWR1bGVNaWNyb3Rhc2sgPSAiZnVuY3Rpb24iID09PSB0eXBlb2YgcXVldWVNaWNyb3Rhc2sgPyBxdWV1ZU1pY3JvdGFzayA6ICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgbG9jYWxQcm9taXNlID8gZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgICAgICByZXR1cm4gbG9jYWxQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbihjYWxsYmFjaykuY2F0Y2goaGFuZGxlRXJyb3JJbk5leHRUaWNrKTsKICAgICAgfSA6IHNjaGVkdWxlVGltZW91dCwgcHJldmlvdXNIeWRyYXRhYmxlT25FbnRlcmluZ1Njb3BlZFNpbmdsZXRvbiA9IG51bGwsIE5vdExvYWRlZCA9IDAsIExvYWRlZCA9IDEsIEVycm9yZWQgPSAyLCBTZXR0bGVkID0gMywgSW5zZXJ0ZWQgPSA0LCBwcmVsb2FkUHJvcHNNYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpLCBwcmVjb25uZWN0c1NldCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCksIHByZXZpb3VzRGlzcGF0Y2hlciA9IFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLmQ7CiAgICAgIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLmQgPSB7CiAgICAgICAgZjogZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgcHJldmlvdXNXYXNSZW5kZXJpbmcgPSBwcmV2aW91c0Rpc3BhdGNoZXIuZigpLCB3YXNSZW5kZXJpbmcgPSBmbHVzaFN5bmNXb3JrJDEoKTsKICAgICAgICAgIHJldHVybiBwcmV2aW91c1dhc1JlbmRlcmluZyB8fCB3YXNSZW5kZXJpbmc7CiAgICAgICAgfSwKICAgICAgICByOiBmdW5jdGlvbihmb3JtKSB7CiAgICAgICAgICB2YXIgZm9ybUluc3QgPSBnZXRJbnN0YW5jZUZyb21Ob2RlKGZvcm0pOwogICAgICAgICAgbnVsbCAhPT0gZm9ybUluc3QgJiYgNSA9PT0gZm9ybUluc3QudGFnICYmICJmb3JtIiA9PT0gZm9ybUluc3QudHlwZSA/IHJlcXVlc3RGb3JtUmVzZXQkMShmb3JtSW5zdCkgOiBwcmV2aW91c0Rpc3BhdGNoZXIucihmb3JtKTsKICAgICAgICB9LAogICAgICAgIEQ6IGZ1bmN0aW9uKGhyZWYpIHsKICAgICAgICAgIHByZXZpb3VzRGlzcGF0Y2hlci5EKGhyZWYpOwogICAgICAgICAgcHJlY29ubmVjdEFzKCJkbnMtcHJlZmV0Y2giLCBocmVmLCBudWxsKTsKICAgICAgICB9LAogICAgICAgIEM6IGZ1bmN0aW9uKGhyZWYsIGNyb3NzT3JpZ2luKSB7CiAgICAgICAgICBwcmV2aW91c0Rpc3BhdGNoZXIuQyhocmVmLCBjcm9zc09yaWdpbik7CiAgICAgICAgICBwcmVjb25uZWN0QXMoInByZWNvbm5lY3QiLCBocmVmLCBjcm9zc09yaWdpbik7CiAgICAgICAgfSwKICAgICAgICBMOiBmdW5jdGlvbihocmVmLCBhcywgb3B0aW9ucykgewogICAgICAgICAgcHJldmlvdXNEaXNwYXRjaGVyLkwoaHJlZiwgYXMsIG9wdGlvbnMpOwogICAgICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBnbG9iYWxEb2N1bWVudDsKICAgICAgICAgIGlmIChvd25lckRvY3VtZW50ICYmIGhyZWYgJiYgYXMpIHsKICAgICAgICAgICAgdmFyIHByZWxvYWRTZWxlY3RvciA9ICdsaW5rW3JlbD0icHJlbG9hZCJdW2FzPSInICsgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhhcykgKyAnIl0nOwogICAgICAgICAgICAiaW1hZ2UiID09PSBhcyA/IG9wdGlvbnMgJiYgb3B0aW9ucy5pbWFnZVNyY1NldCA/IChwcmVsb2FkU2VsZWN0b3IgKz0gJ1tpbWFnZXNyY3NldD0iJyArIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoCiAgICAgICAgICAgICAgb3B0aW9ucy5pbWFnZVNyY1NldAogICAgICAgICAgICApICsgJyJdJywgInN0cmluZyIgPT09IHR5cGVvZiBvcHRpb25zLmltYWdlU2l6ZXMgJiYgKHByZWxvYWRTZWxlY3RvciArPSAnW2ltYWdlc2l6ZXM9IicgKyBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzKAogICAgICAgICAgICAgIG9wdGlvbnMuaW1hZ2VTaXplcwogICAgICAgICAgICApICsgJyJdJykpIDogcHJlbG9hZFNlbGVjdG9yICs9ICdbaHJlZj0iJyArIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoaHJlZikgKyAnIl0nIDogcHJlbG9hZFNlbGVjdG9yICs9ICdbaHJlZj0iJyArIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoaHJlZikgKyAnIl0nOwogICAgICAgICAgICB2YXIga2V5ID0gcHJlbG9hZFNlbGVjdG9yOwogICAgICAgICAgICBzd2l0Y2ggKGFzKSB7CiAgICAgICAgICAgICAgY2FzZSAic3R5bGUiOgogICAgICAgICAgICAgICAga2V5ID0gZ2V0U3R5bGVLZXkoaHJlZik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlICJzY3JpcHQiOgogICAgICAgICAgICAgICAga2V5ID0gZ2V0U2NyaXB0S2V5KGhyZWYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHByZWxvYWRQcm9wc01hcC5oYXMoa2V5KSB8fCAoaHJlZiA9IGFzc2lnbigKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZWw6ICJwcmVsb2FkIiwKICAgICAgICAgICAgICAgIGhyZWY6ICJpbWFnZSIgPT09IGFzICYmIG9wdGlvbnMgJiYgb3B0aW9ucy5pbWFnZVNyY1NldCA/IHZvaWQgMCA6IGhyZWYsCiAgICAgICAgICAgICAgICBhcwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgb3B0aW9ucwogICAgICAgICAgICApLCBwcmVsb2FkUHJvcHNNYXAuc2V0KGtleSwgaHJlZiksIG51bGwgIT09IG93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvcihwcmVsb2FkU2VsZWN0b3IpIHx8ICJzdHlsZSIgPT09IGFzICYmIG93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvcigKICAgICAgICAgICAgICBnZXRTdHlsZXNoZWV0U2VsZWN0b3JGcm9tS2V5KGtleSkKICAgICAgICAgICAgKSB8fCAic2NyaXB0IiA9PT0gYXMgJiYgb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKGdldFNjcmlwdFNlbGVjdG9yRnJvbUtleShrZXkpKSB8fCAoYXMgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKSwgc2V0SW5pdGlhbFByb3BlcnRpZXMoYXMsICJsaW5rIiwgaHJlZiksIG1hcmtOb2RlQXNIb2lzdGFibGUoYXMpLCBvd25lckRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYXMpKSk7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBtOiBmdW5jdGlvbihocmVmLCBvcHRpb25zKSB7CiAgICAgICAgICBwcmV2aW91c0Rpc3BhdGNoZXIubShocmVmLCBvcHRpb25zKTsKICAgICAgICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2xvYmFsRG9jdW1lbnQ7CiAgICAgICAgICBpZiAob3duZXJEb2N1bWVudCAmJiBocmVmKSB7CiAgICAgICAgICAgIHZhciBhcyA9IG9wdGlvbnMgJiYgInN0cmluZyIgPT09IHR5cGVvZiBvcHRpb25zLmFzID8gb3B0aW9ucy5hcyA6ICJzY3JpcHQiLCBwcmVsb2FkU2VsZWN0b3IgPSAnbGlua1tyZWw9Im1vZHVsZXByZWxvYWQiXVthcz0iJyArIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoYXMpICsgJyJdW2hyZWY9IicgKyBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzKGhyZWYpICsgJyJdJywga2V5ID0gcHJlbG9hZFNlbGVjdG9yOwogICAgICAgICAgICBzd2l0Y2ggKGFzKSB7CiAgICAgICAgICAgICAgY2FzZSAiYXVkaW93b3JrbGV0IjoKICAgICAgICAgICAgICBjYXNlICJwYWludHdvcmtsZXQiOgogICAgICAgICAgICAgIGNhc2UgInNlcnZpY2V3b3JrZXIiOgogICAgICAgICAgICAgIGNhc2UgInNoYXJlZHdvcmtlciI6CiAgICAgICAgICAgICAgY2FzZSAid29ya2VyIjoKICAgICAgICAgICAgICBjYXNlICJzY3JpcHQiOgogICAgICAgICAgICAgICAga2V5ID0gZ2V0U2NyaXB0S2V5KGhyZWYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcHJlbG9hZFByb3BzTWFwLmhhcyhrZXkpICYmIChocmVmID0gYXNzaWduKHsgcmVsOiAibW9kdWxlcHJlbG9hZCIsIGhyZWYgfSwgb3B0aW9ucyksIHByZWxvYWRQcm9wc01hcC5zZXQoa2V5LCBocmVmKSwgbnVsbCA9PT0gb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKHByZWxvYWRTZWxlY3RvcikpKSB7CiAgICAgICAgICAgICAgc3dpdGNoIChhcykgewogICAgICAgICAgICAgICAgY2FzZSAiYXVkaW93b3JrbGV0IjoKICAgICAgICAgICAgICAgIGNhc2UgInBhaW50d29ya2xldCI6CiAgICAgICAgICAgICAgICBjYXNlICJzZXJ2aWNld29ya2VyIjoKICAgICAgICAgICAgICAgIGNhc2UgInNoYXJlZHdvcmtlciI6CiAgICAgICAgICAgICAgICBjYXNlICJ3b3JrZXIiOgogICAgICAgICAgICAgICAgY2FzZSAic2NyaXB0IjoKICAgICAgICAgICAgICAgICAgaWYgKG93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvcihnZXRTY3JpcHRTZWxlY3RvckZyb21LZXkoa2V5KSkpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBhcyA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpOwogICAgICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKGFzLCAibGluayIsIGhyZWYpOwogICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoYXMpOwogICAgICAgICAgICAgIG93bmVyRG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIFg6IGZ1bmN0aW9uKHNyYywgb3B0aW9ucykgewogICAgICAgICAgcHJldmlvdXNEaXNwYXRjaGVyLlgoc3JjLCBvcHRpb25zKTsKICAgICAgICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2xvYmFsRG9jdW1lbnQ7CiAgICAgICAgICBpZiAob3duZXJEb2N1bWVudCAmJiBzcmMpIHsKICAgICAgICAgICAgdmFyIHNjcmlwdHMgPSBnZXRSZXNvdXJjZXNGcm9tUm9vdChvd25lckRvY3VtZW50KS5ob2lzdGFibGVTY3JpcHRzLCBrZXkgPSBnZXRTY3JpcHRLZXkoc3JjKSwgcmVzb3VyY2UgPSBzY3JpcHRzLmdldChrZXkpOwogICAgICAgICAgICByZXNvdXJjZSB8fCAocmVzb3VyY2UgPSBvd25lckRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoCiAgICAgICAgICAgICAgZ2V0U2NyaXB0U2VsZWN0b3JGcm9tS2V5KGtleSkKICAgICAgICAgICAgKSwgcmVzb3VyY2UgfHwgKHNyYyA9IGFzc2lnbih7IHNyYywgYXN5bmM6IHRydWUgfSwgb3B0aW9ucyksIChvcHRpb25zID0gcHJlbG9hZFByb3BzTWFwLmdldChrZXkpKSAmJiBhZG9wdFByZWxvYWRQcm9wc0ZvclNjcmlwdChzcmMsIG9wdGlvbnMpLCByZXNvdXJjZSA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksIG1hcmtOb2RlQXNIb2lzdGFibGUocmVzb3VyY2UpLCBzZXRJbml0aWFsUHJvcGVydGllcyhyZXNvdXJjZSwgImxpbmsiLCBzcmMpLCBvd25lckRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocmVzb3VyY2UpKSwgcmVzb3VyY2UgPSB7CiAgICAgICAgICAgICAgdHlwZTogInNjcmlwdCIsCiAgICAgICAgICAgICAgaW5zdGFuY2U6IHJlc291cmNlLAogICAgICAgICAgICAgIGNvdW50OiAxLAogICAgICAgICAgICAgIHN0YXRlOiBudWxsCiAgICAgICAgICAgIH0sIHNjcmlwdHMuc2V0KGtleSwgcmVzb3VyY2UpKTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIFM6IGZ1bmN0aW9uKGhyZWYsIHByZWNlZGVuY2UsIG9wdGlvbnMpIHsKICAgICAgICAgIHByZXZpb3VzRGlzcGF0Y2hlci5TKGhyZWYsIHByZWNlZGVuY2UsIG9wdGlvbnMpOwogICAgICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBnbG9iYWxEb2N1bWVudDsKICAgICAgICAgIGlmIChvd25lckRvY3VtZW50ICYmIGhyZWYpIHsKICAgICAgICAgICAgdmFyIHN0eWxlcyA9IGdldFJlc291cmNlc0Zyb21Sb290KG93bmVyRG9jdW1lbnQpLmhvaXN0YWJsZVN0eWxlcywga2V5ID0gZ2V0U3R5bGVLZXkoaHJlZik7CiAgICAgICAgICAgIHByZWNlZGVuY2UgPSBwcmVjZWRlbmNlIHx8ICJkZWZhdWx0IjsKICAgICAgICAgICAgdmFyIHJlc291cmNlID0gc3R5bGVzLmdldChrZXkpOwogICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CiAgICAgICAgICAgICAgdmFyIHN0YXRlID0geyBsb2FkaW5nOiBOb3RMb2FkZWQsIHByZWxvYWQ6IG51bGwgfTsKICAgICAgICAgICAgICBpZiAocmVzb3VyY2UgPSBvd25lckRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoCiAgICAgICAgICAgICAgICBnZXRTdHlsZXNoZWV0U2VsZWN0b3JGcm9tS2V5KGtleSkKICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgc3RhdGUubG9hZGluZyA9IExvYWRlZCB8IEluc2VydGVkOwogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaHJlZiA9IGFzc2lnbigKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJlbDogInN0eWxlc2hlZXQiLAogICAgICAgICAgICAgICAgICAgIGhyZWYsCiAgICAgICAgICAgICAgICAgICAgImRhdGEtcHJlY2VkZW5jZSI6IHByZWNlZGVuY2UKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgb3B0aW9ucwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIChvcHRpb25zID0gcHJlbG9hZFByb3BzTWFwLmdldChrZXkpKSAmJiBhZG9wdFByZWxvYWRQcm9wc0ZvclN0eWxlc2hlZXQoaHJlZiwgb3B0aW9ucyk7CiAgICAgICAgICAgICAgICB2YXIgbGluayA9IHJlc291cmNlID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7CiAgICAgICAgICAgICAgICBtYXJrTm9kZUFzSG9pc3RhYmxlKGxpbmspOwogICAgICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMobGluaywgImxpbmsiLCBocmVmKTsKICAgICAgICAgICAgICAgIGxpbmsuX3AgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgICAgICAgbGluay5vbmxvYWQgPSByZXNvbHZlOwogICAgICAgICAgICAgICAgICBsaW5rLm9uZXJyb3IgPSByZWplY3Q7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICBzdGF0ZS5sb2FkaW5nIHw9IExvYWRlZDsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICBzdGF0ZS5sb2FkaW5nIHw9IEVycm9yZWQ7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHN0YXRlLmxvYWRpbmcgfD0gSW5zZXJ0ZWQ7CiAgICAgICAgICAgICAgICBpbnNlcnRTdHlsZXNoZWV0KHJlc291cmNlLCBwcmVjZWRlbmNlLCBvd25lckRvY3VtZW50KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmVzb3VyY2UgPSB7CiAgICAgICAgICAgICAgICB0eXBlOiAic3R5bGVzaGVldCIsCiAgICAgICAgICAgICAgICBpbnN0YW5jZTogcmVzb3VyY2UsCiAgICAgICAgICAgICAgICBjb3VudDogMSwKICAgICAgICAgICAgICAgIHN0YXRlCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBzdHlsZXMuc2V0KGtleSwgcmVzb3VyY2UpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBNOiBmdW5jdGlvbihzcmMsIG9wdGlvbnMpIHsKICAgICAgICAgIHByZXZpb3VzRGlzcGF0Y2hlci5NKHNyYywgb3B0aW9ucyk7CiAgICAgICAgICB2YXIgb3duZXJEb2N1bWVudCA9IGdsb2JhbERvY3VtZW50OwogICAgICAgICAgaWYgKG93bmVyRG9jdW1lbnQgJiYgc3JjKSB7CiAgICAgICAgICAgIHZhciBzY3JpcHRzID0gZ2V0UmVzb3VyY2VzRnJvbVJvb3Qob3duZXJEb2N1bWVudCkuaG9pc3RhYmxlU2NyaXB0cywga2V5ID0gZ2V0U2NyaXB0S2V5KHNyYyksIHJlc291cmNlID0gc2NyaXB0cy5nZXQoa2V5KTsKICAgICAgICAgICAgcmVzb3VyY2UgfHwgKHJlc291cmNlID0gb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKAogICAgICAgICAgICAgIGdldFNjcmlwdFNlbGVjdG9yRnJvbUtleShrZXkpCiAgICAgICAgICAgICksIHJlc291cmNlIHx8IChzcmMgPSBhc3NpZ24oeyBzcmMsIGFzeW5jOiB0cnVlLCB0eXBlOiAibW9kdWxlIiB9LCBvcHRpb25zKSwgKG9wdGlvbnMgPSBwcmVsb2FkUHJvcHNNYXAuZ2V0KGtleSkpICYmIGFkb3B0UHJlbG9hZFByb3BzRm9yU2NyaXB0KHNyYywgb3B0aW9ucyksIHJlc291cmNlID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSwgbWFya05vZGVBc0hvaXN0YWJsZShyZXNvdXJjZSksIHNldEluaXRpYWxQcm9wZXJ0aWVzKHJlc291cmNlLCAibGluayIsIHNyYyksIG93bmVyRG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChyZXNvdXJjZSkpLCByZXNvdXJjZSA9IHsKICAgICAgICAgICAgICB0eXBlOiAic2NyaXB0IiwKICAgICAgICAgICAgICBpbnN0YW5jZTogcmVzb3VyY2UsCiAgICAgICAgICAgICAgY291bnQ6IDEsCiAgICAgICAgICAgICAgc3RhdGU6IG51bGwKICAgICAgICAgICAgfSwgc2NyaXB0cy5zZXQoa2V5LCByZXNvdXJjZSkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgdmFyIGdsb2JhbERvY3VtZW50ID0gInVuZGVmaW5lZCIgPT09IHR5cGVvZiBkb2N1bWVudCA/IG51bGwgOiBkb2N1bWVudCwgdGFnQ2FjaGVzID0gbnVsbCwgU1VTUEVOU0VZX1NUWUxFU0hFRVRfVElNRU9VVCA9IDZlNCwgU1VTUEVOU0VZX0lNQUdFX1RJTUVPVVQgPSA4MDAsIFNVU1BFTlNFWV9JTUFHRV9USU1FX0VTVElNQVRFID0gNTAwLCBlc3RpbWF0ZWRCeXRlc1dpdGhpbkxpbWl0ID0gMCwgTEFTVF9QUkVDRURFTkNFID0gbnVsbCwgcHJlY2VkZW5jZXNCeVJvb3QgPSBudWxsLCBOb3RQZW5kaW5nVHJhbnNpdGlvbiA9IE5vdFBlbmRpbmcsIEhvc3RUcmFuc2l0aW9uQ29udGV4dCA9IHsKICAgICAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLAogICAgICAgIFByb3ZpZGVyOiBudWxsLAogICAgICAgIENvbnN1bWVyOiBudWxsLAogICAgICAgIF9jdXJyZW50VmFsdWU6IE5vdFBlbmRpbmdUcmFuc2l0aW9uLAogICAgICAgIF9jdXJyZW50VmFsdWUyOiBOb3RQZW5kaW5nVHJhbnNpdGlvbiwKICAgICAgICBfdGhyZWFkQ291bnQ6IDAKICAgICAgfSwgYmFkZ2VGb3JtYXQgPSAiJWMlcyVjIiwgYmFkZ2VTdHlsZSA9ICJiYWNrZ3JvdW5kOiAjZTZlNmU2O2JhY2tncm91bmQ6IGxpZ2h0LWRhcmsocmdiYSgwLDAsMCwwLjEpLCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpKTtjb2xvcjogIzAwMDAwMDtjb2xvcjogbGlnaHQtZGFyaygjMDAwMDAwLCAjZmZmZmZmKTtib3JkZXItcmFkaXVzOiAycHgiLCByZXNldFN0eWxlID0gIiIsIHBhZCA9ICIgIiwgYmluZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kOwogICAgICB2YXIgZGlkV2FybkFib3V0TmVzdGVkVXBkYXRlcyA9IGZhbHNlOwogICAgICB2YXIgb3ZlcnJpZGVIb29rU3RhdGUgPSBudWxsLCBvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGggPSBudWxsLCBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGggPSBudWxsLCBvdmVycmlkZVByb3BzID0gbnVsbCwgb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGggPSBudWxsLCBvdmVycmlkZVByb3BzUmVuYW1lUGF0aCA9IG51bGwsIHNjaGVkdWxlVXBkYXRlID0gbnVsbCwgc2NoZWR1bGVSZXRyeSA9IG51bGwsIHNldEVycm9ySGFuZGxlciA9IG51bGwsIHNldFN1c3BlbnNlSGFuZGxlciA9IG51bGw7CiAgICAgIG92ZXJyaWRlSG9va1N0YXRlID0gZnVuY3Rpb24oZmliZXIsIGlkLCBwYXRoLCB2YWx1ZSkgewogICAgICAgIGlkID0gZmluZEhvb2soZmliZXIsIGlkKTsKICAgICAgICBudWxsICE9PSBpZCAmJiAocGF0aCA9IGNvcHlXaXRoU2V0SW1wbChpZC5tZW1vaXplZFN0YXRlLCBwYXRoLCAwLCB2YWx1ZSksIGlkLm1lbW9pemVkU3RhdGUgPSBwYXRoLCBpZC5iYXNlU3RhdGUgPSBwYXRoLCBmaWJlci5tZW1vaXplZFByb3BzID0gYXNzaWduKHt9LCBmaWJlci5tZW1vaXplZFByb3BzKSwgcGF0aCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgMiksIG51bGwgIT09IHBhdGggJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHBhdGgsIGZpYmVyLCAyKSk7CiAgICAgIH07CiAgICAgIG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCA9IGZ1bmN0aW9uKGZpYmVyLCBpZCwgcGF0aCkgewogICAgICAgIGlkID0gZmluZEhvb2soZmliZXIsIGlkKTsKICAgICAgICBudWxsICE9PSBpZCAmJiAocGF0aCA9IGNvcHlXaXRoRGVsZXRlSW1wbChpZC5tZW1vaXplZFN0YXRlLCBwYXRoLCAwKSwgaWQubWVtb2l6ZWRTdGF0ZSA9IHBhdGgsIGlkLmJhc2VTdGF0ZSA9IHBhdGgsIGZpYmVyLm1lbW9pemVkUHJvcHMgPSBhc3NpZ24oe30sIGZpYmVyLm1lbW9pemVkUHJvcHMpLCBwYXRoID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKSwgbnVsbCAhPT0gcGF0aCAmJiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocGF0aCwgZmliZXIsIDIpKTsKICAgICAgfTsKICAgICAgb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoID0gZnVuY3Rpb24oZmliZXIsIGlkLCBvbGRQYXRoLCBuZXdQYXRoKSB7CiAgICAgICAgaWQgPSBmaW5kSG9vayhmaWJlciwgaWQpOwogICAgICAgIG51bGwgIT09IGlkICYmIChvbGRQYXRoID0gY29weVdpdGhSZW5hbWUoaWQubWVtb2l6ZWRTdGF0ZSwgb2xkUGF0aCwgbmV3UGF0aCksIGlkLm1lbW9pemVkU3RhdGUgPSBvbGRQYXRoLCBpZC5iYXNlU3RhdGUgPSBvbGRQYXRoLCBmaWJlci5tZW1vaXplZFByb3BzID0gYXNzaWduKHt9LCBmaWJlci5tZW1vaXplZFByb3BzKSwgb2xkUGF0aCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgMiksIG51bGwgIT09IG9sZFBhdGggJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKG9sZFBhdGgsIGZpYmVyLCAyKSk7CiAgICAgIH07CiAgICAgIG92ZXJyaWRlUHJvcHMgPSBmdW5jdGlvbihmaWJlciwgcGF0aCwgdmFsdWUpIHsKICAgICAgICBmaWJlci5wZW5kaW5nUHJvcHMgPSBjb3B5V2l0aFNldEltcGwoZmliZXIubWVtb2l6ZWRQcm9wcywgcGF0aCwgMCwgdmFsdWUpOwogICAgICAgIGZpYmVyLmFsdGVybmF0ZSAmJiAoZmliZXIuYWx0ZXJuYXRlLnBlbmRpbmdQcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcyk7CiAgICAgICAgcGF0aCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgMik7CiAgICAgICAgbnVsbCAhPT0gcGF0aCAmJiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocGF0aCwgZmliZXIsIDIpOwogICAgICB9OwogICAgICBvdmVycmlkZVByb3BzRGVsZXRlUGF0aCA9IGZ1bmN0aW9uKGZpYmVyLCBwYXRoKSB7CiAgICAgICAgZmliZXIucGVuZGluZ1Byb3BzID0gY29weVdpdGhEZWxldGVJbXBsKGZpYmVyLm1lbW9pemVkUHJvcHMsIHBhdGgsIDApOwogICAgICAgIGZpYmVyLmFsdGVybmF0ZSAmJiAoZmliZXIuYWx0ZXJuYXRlLnBlbmRpbmdQcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcyk7CiAgICAgICAgcGF0aCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgMik7CiAgICAgICAgbnVsbCAhPT0gcGF0aCAmJiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocGF0aCwgZmliZXIsIDIpOwogICAgICB9OwogICAgICBvdmVycmlkZVByb3BzUmVuYW1lUGF0aCA9IGZ1bmN0aW9uKGZpYmVyLCBvbGRQYXRoLCBuZXdQYXRoKSB7CiAgICAgICAgZmliZXIucGVuZGluZ1Byb3BzID0gY29weVdpdGhSZW5hbWUoCiAgICAgICAgICBmaWJlci5tZW1vaXplZFByb3BzLAogICAgICAgICAgb2xkUGF0aCwKICAgICAgICAgIG5ld1BhdGgKICAgICAgICApOwogICAgICAgIGZpYmVyLmFsdGVybmF0ZSAmJiAoZmliZXIuYWx0ZXJuYXRlLnBlbmRpbmdQcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcyk7CiAgICAgICAgb2xkUGF0aCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgMik7CiAgICAgICAgbnVsbCAhPT0gb2xkUGF0aCAmJiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIob2xkUGF0aCwgZmliZXIsIDIpOwogICAgICB9OwogICAgICBzY2hlZHVsZVVwZGF0ZSA9IGZ1bmN0aW9uKGZpYmVyKSB7CiAgICAgICAgdmFyIHJvb3QyID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKTsKICAgICAgICBudWxsICE9PSByb290MiAmJiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocm9vdDIsIGZpYmVyLCAyKTsKICAgICAgfTsKICAgICAgc2NoZWR1bGVSZXRyeSA9IGZ1bmN0aW9uKGZpYmVyKSB7CiAgICAgICAgdmFyIGxhbmUgPSBjbGFpbU5leHRSZXRyeUxhbmUoKSwgcm9vdDIgPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIGxhbmUpOwogICAgICAgIG51bGwgIT09IHJvb3QyICYmIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290MiwgZmliZXIsIGxhbmUpOwogICAgICB9OwogICAgICBzZXRFcnJvckhhbmRsZXIgPSBmdW5jdGlvbihuZXdTaG91bGRFcnJvckltcGwpIHsKICAgICAgICBzaG91bGRFcnJvckltcGwgPSBuZXdTaG91bGRFcnJvckltcGw7CiAgICAgIH07CiAgICAgIHNldFN1c3BlbnNlSGFuZGxlciA9IGZ1bmN0aW9uKG5ld1Nob3VsZFN1c3BlbmRJbXBsKSB7CiAgICAgICAgc2hvdWxkU3VzcGVuZEltcGwgPSBuZXdTaG91bGRTdXNwZW5kSW1wbDsKICAgICAgfTsKICAgICAgdmFyIF9lbmFibGVkID0gdHJ1ZSwgcmV0dXJuX3RhcmdldEluc3QgPSBudWxsLCBoYXNTY2hlZHVsZWRSZXBsYXlBdHRlbXB0ID0gZmFsc2UsIHF1ZXVlZEZvY3VzID0gbnVsbCwgcXVldWVkRHJhZyA9IG51bGwsIHF1ZXVlZE1vdXNlID0gbnVsbCwgcXVldWVkUG9pbnRlcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpLCBxdWV1ZWRQb2ludGVyQ2FwdHVyZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpLCBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMgPSBbXSwgZGlzY3JldGVSZXBsYXlhYmxlRXZlbnRzID0gIm1vdXNlZG93biBtb3VzZXVwIHRvdWNoY2FuY2VsIHRvdWNoZW5kIHRvdWNoc3RhcnQgYXV4Y2xpY2sgZGJsY2xpY2sgcG9pbnRlcmNhbmNlbCBwb2ludGVyZG93biBwb2ludGVydXAgZHJhZ2VuZCBkcmFnc3RhcnQgZHJvcCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgaW5wdXQgdGV4dElucHV0IGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBjb250ZXh0bWVudSByZXNldCIuc3BsaXQoCiAgICAgICAgIiAiCiAgICAgICksIGxhc3RTY2hlZHVsZWRSZXBsYXlRdWV1ZSA9IG51bGw7CiAgICAgIFJlYWN0RE9NSHlkcmF0aW9uUm9vdC5wcm90b3R5cGUucmVuZGVyID0gUmVhY3RET01Sb290LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbihjaGlsZHJlbikgewogICAgICAgIHZhciByb290MiA9IHRoaXMuX2ludGVybmFsUm9vdDsKICAgICAgICBpZiAobnVsbCA9PT0gcm9vdDIpIHRocm93IEVycm9yKCJDYW5ub3QgdXBkYXRlIGFuIHVubW91bnRlZCByb290LiIpOwogICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzOwogICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBhcmdzWzFdID8gY29uc29sZS5lcnJvcigKICAgICAgICAgICJkb2VzIG5vdCBzdXBwb3J0IHRoZSBzZWNvbmQgY2FsbGJhY2sgYXJndW1lbnQuIFRvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciByZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gYSBjb21wb25lbnQgYm9keSB3aXRoIHVzZUVmZmVjdCgpLiIKICAgICAgICApIDogaXNWYWxpZENvbnRhaW5lcihhcmdzWzFdKSA/IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiWW91IHBhc3NlZCBhIGNvbnRhaW5lciB0byB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHJvb3QucmVuZGVyKC4uLikuIFlvdSBkb24ndCBuZWVkIHRvIHBhc3MgaXQgYWdhaW4gc2luY2UgeW91IGFscmVhZHkgcGFzc2VkIGl0IHRvIGNyZWF0ZSB0aGUgcm9vdC4iCiAgICAgICAgKSA6ICJ1bmRlZmluZWQiICE9PSB0eXBlb2YgYXJnc1sxXSAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgIllvdSBwYXNzZWQgYSBzZWNvbmQgYXJndW1lbnQgdG8gcm9vdC5yZW5kZXIoLi4uKSBidXQgaXQgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4iCiAgICAgICAgKTsKICAgICAgICBhcmdzID0gY2hpbGRyZW47CiAgICAgICAgdmFyIGN1cnJlbnQyID0gcm9vdDIuY3VycmVudCwgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGN1cnJlbnQyKTsKICAgICAgICB1cGRhdGVDb250YWluZXJJbXBsKGN1cnJlbnQyLCBsYW5lLCBhcmdzLCByb290MiwgbnVsbCwgbnVsbCk7CiAgICAgIH07CiAgICAgIFJlYWN0RE9NSHlkcmF0aW9uUm9vdC5wcm90b3R5cGUudW5tb3VudCA9IFJlYWN0RE9NUm9vdC5wcm90b3R5cGUudW5tb3VudCA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzOwogICAgICAgICJmdW5jdGlvbiIgPT09IHR5cGVvZiBhcmdzWzBdICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiZG9lcyBub3Qgc3VwcG9ydCBhIGNhbGxiYWNrIGFyZ3VtZW50LiBUbyBleGVjdXRlIGEgc2lkZSBlZmZlY3QgYWZ0ZXIgcmVuZGVyaW5nLCBkZWNsYXJlIGl0IGluIGEgY29tcG9uZW50IGJvZHkgd2l0aCB1c2VFZmZlY3QoKS4iCiAgICAgICAgKTsKICAgICAgICBhcmdzID0gdGhpcy5faW50ZXJuYWxSb290OwogICAgICAgIGlmIChudWxsICE9PSBhcmdzKSB7CiAgICAgICAgICB0aGlzLl9pbnRlcm5hbFJvb3QgPSBudWxsOwogICAgICAgICAgdmFyIGNvbnRhaW5lciA9IGFyZ3MuY29udGFpbmVySW5mbzsKICAgICAgICAgIChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dCAmJiBjb25zb2xlLmVycm9yKAogICAgICAgICAgICAiQXR0ZW1wdGVkIHRvIHN5bmNocm9ub3VzbHkgdW5tb3VudCBhIHJvb3Qgd2hpbGUgUmVhY3Qgd2FzIGFscmVhZHkgcmVuZGVyaW5nLiBSZWFjdCBjYW5ub3QgZmluaXNoIHVubW91bnRpbmcgdGhlIHJvb3QgdW50aWwgdGhlIGN1cnJlbnQgcmVuZGVyIGhhcyBjb21wbGV0ZWQsIHdoaWNoIG1heSBsZWFkIHRvIGEgcmFjZSBjb25kaXRpb24uIgogICAgICAgICAgKTsKICAgICAgICAgIHVwZGF0ZUNvbnRhaW5lckltcGwoYXJncy5jdXJyZW50LCAyLCBudWxsLCBhcmdzLCBudWxsLCBudWxsKTsKICAgICAgICAgIGZsdXNoU3luY1dvcmskMSgpOwogICAgICAgICAgY29udGFpbmVyW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldID0gbnVsbDsKICAgICAgICB9CiAgICAgIH07CiAgICAgIFJlYWN0RE9NSHlkcmF0aW9uUm9vdC5wcm90b3R5cGUudW5zdGFibGVfc2NoZWR1bGVIeWRyYXRpb24gPSBmdW5jdGlvbih0YXJnZXQpIHsKICAgICAgICBpZiAodGFyZ2V0KSB7CiAgICAgICAgICB2YXIgdXBkYXRlUHJpb3JpdHkgPSByZXNvbHZlVXBkYXRlUHJpb3JpdHkoKTsKICAgICAgICAgIHRhcmdldCA9IHsgYmxvY2tlZE9uOiBudWxsLCB0YXJnZXQsIHByaW9yaXR5OiB1cGRhdGVQcmlvcml0eSB9OwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMubGVuZ3RoICYmIDAgIT09IHVwZGF0ZVByaW9yaXR5ICYmIHVwZGF0ZVByaW9yaXR5IDwgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzW2ldLnByaW9yaXR5OyBpKyspIDsKICAgICAgICAgIHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0cy5zcGxpY2UoaSwgMCwgdGFyZ2V0KTsKICAgICAgICAgIDAgPT09IGkgJiYgYXR0ZW1wdEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0KHRhcmdldCk7CiAgICAgICAgfQogICAgICB9OwogICAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGlzb21vcnBoaWNSZWFjdFBhY2thZ2VWZXJzaW9uID0gUmVhY3QudmVyc2lvbjsKICAgICAgICBpZiAoIjE5LjIuMyIgIT09IGlzb21vcnBoaWNSZWFjdFBhY2thZ2VWZXJzaW9uKQogICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICdJbmNvbXBhdGlibGUgUmVhY3QgdmVyc2lvbnM6IFRoZSAicmVhY3QiIGFuZCAicmVhY3QtZG9tIiBwYWNrYWdlcyBtdXN0IGhhdmUgdGhlIGV4YWN0IHNhbWUgdmVyc2lvbi4gSW5zdGVhZCBnb3Q6XG4gIC0gcmVhY3Q6ICAgICAgJyArIChpc29tb3JwaGljUmVhY3RQYWNrYWdlVmVyc2lvbiArICJcbiAgLSByZWFjdC1kb206ICAxOS4yLjNcbkxlYXJuIG1vcmU6IGh0dHBzOi8vcmVhY3QuZGV2L3dhcm5pbmdzL3ZlcnNpb24tbWlzbWF0Y2giKQogICAgICAgICAgKTsKICAgICAgfSkoKTsKICAgICAgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIE1hcCAmJiBudWxsICE9IE1hcC5wcm90b3R5cGUgJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIE1hcC5wcm90b3R5cGUuZm9yRWFjaCAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgU2V0ICYmIG51bGwgIT0gU2V0LnByb3RvdHlwZSAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgU2V0LnByb3RvdHlwZS5jbGVhciAmJiAiZnVuY3Rpb24iID09PSB0eXBlb2YgU2V0LnByb3RvdHlwZS5mb3JFYWNoIHx8IGNvbnNvbGUuZXJyb3IoCiAgICAgICAgIlJlYWN0IGRlcGVuZHMgb24gTWFwIGFuZCBTZXQgYnVpbHQtaW4gdHlwZXMuIE1ha2Ugc3VyZSB0aGF0IHlvdSBsb2FkIGEgcG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvcmVhY3QtcG9seWZpbGxzIgogICAgICApOwogICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscy5maW5kRE9NTm9kZSA9IGZ1bmN0aW9uKGNvbXBvbmVudE9yRWxlbWVudCkgewogICAgICAgIHZhciBmaWJlciA9IGNvbXBvbmVudE9yRWxlbWVudC5fcmVhY3RJbnRlcm5hbHM7CiAgICAgICAgaWYgKHZvaWQgMCA9PT0gZmliZXIpIHsKICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgY29tcG9uZW50T3JFbGVtZW50LnJlbmRlcikKICAgICAgICAgICAgdGhyb3cgRXJyb3IoIlVuYWJsZSB0byBmaW5kIG5vZGUgb24gYW4gdW5tb3VudGVkIGNvbXBvbmVudC4iKTsKICAgICAgICAgIGNvbXBvbmVudE9yRWxlbWVudCA9IE9iamVjdC5rZXlzKGNvbXBvbmVudE9yRWxlbWVudCkuam9pbigiLCIpOwogICAgICAgICAgdGhyb3cgRXJyb3IoCiAgICAgICAgICAgICJBcmd1bWVudCBhcHBlYXJzIHRvIG5vdCBiZSBhIFJlYWN0Q29tcG9uZW50LiBLZXlzOiAiICsgY29tcG9uZW50T3JFbGVtZW50CiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBjb21wb25lbnRPckVsZW1lbnQgPSBmaW5kQ3VycmVudEZpYmVyVXNpbmdTbG93UGF0aChmaWJlcik7CiAgICAgICAgY29tcG9uZW50T3JFbGVtZW50ID0gbnVsbCAhPT0gY29tcG9uZW50T3JFbGVtZW50ID8gZmluZEN1cnJlbnRIb3N0RmliZXJJbXBsKGNvbXBvbmVudE9yRWxlbWVudCkgOiBudWxsOwogICAgICAgIGNvbXBvbmVudE9yRWxlbWVudCA9IG51bGwgPT09IGNvbXBvbmVudE9yRWxlbWVudCA/IG51bGwgOiBjb21wb25lbnRPckVsZW1lbnQuc3RhdGVOb2RlOwogICAgICAgIHJldHVybiBjb21wb25lbnRPckVsZW1lbnQ7CiAgICAgIH07CiAgICAgIGlmICghKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBpbnRlcm5hbHMgPSB7CiAgICAgICAgICBidW5kbGVUeXBlOiAxLAogICAgICAgICAgdmVyc2lvbjogIjE5LjIuMyIsCiAgICAgICAgICByZW5kZXJlclBhY2thZ2VOYW1lOiAicmVhY3QtZG9tIiwKICAgICAgICAgIGN1cnJlbnREaXNwYXRjaGVyUmVmOiBSZWFjdFNoYXJlZEludGVybmFscywKICAgICAgICAgIHJlY29uY2lsZXJWZXJzaW9uOiAiMTkuMi4zIgogICAgICAgIH07CiAgICAgICAgaW50ZXJuYWxzLm92ZXJyaWRlSG9va1N0YXRlID0gb3ZlcnJpZGVIb29rU3RhdGU7CiAgICAgICAgaW50ZXJuYWxzLm92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCA9IG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aDsKICAgICAgICBpbnRlcm5hbHMub3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoID0gb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoOwogICAgICAgIGludGVybmFscy5vdmVycmlkZVByb3BzID0gb3ZlcnJpZGVQcm9wczsKICAgICAgICBpbnRlcm5hbHMub3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGggPSBvdmVycmlkZVByb3BzRGVsZXRlUGF0aDsKICAgICAgICBpbnRlcm5hbHMub3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGggPSBvdmVycmlkZVByb3BzUmVuYW1lUGF0aDsKICAgICAgICBpbnRlcm5hbHMuc2NoZWR1bGVVcGRhdGUgPSBzY2hlZHVsZVVwZGF0ZTsKICAgICAgICBpbnRlcm5hbHMuc2NoZWR1bGVSZXRyeSA9IHNjaGVkdWxlUmV0cnk7CiAgICAgICAgaW50ZXJuYWxzLnNldEVycm9ySGFuZGxlciA9IHNldEVycm9ySGFuZGxlcjsKICAgICAgICBpbnRlcm5hbHMuc2V0U3VzcGVuc2VIYW5kbGVyID0gc2V0U3VzcGVuc2VIYW5kbGVyOwogICAgICAgIGludGVybmFscy5zY2hlZHVsZVJlZnJlc2ggPSBzY2hlZHVsZVJlZnJlc2g7CiAgICAgICAgaW50ZXJuYWxzLnNjaGVkdWxlUm9vdCA9IHNjaGVkdWxlUm9vdDsKICAgICAgICBpbnRlcm5hbHMuc2V0UmVmcmVzaEhhbmRsZXIgPSBzZXRSZWZyZXNoSGFuZGxlcjsKICAgICAgICBpbnRlcm5hbHMuZ2V0Q3VycmVudEZpYmVyID0gZ2V0Q3VycmVudEZpYmVyRm9yRGV2VG9vbHM7CiAgICAgICAgcmV0dXJuIGluamVjdEludGVybmFscyhpbnRlcm5hbHMpOwogICAgICB9KSgpICYmIGNhblVzZURPTSAmJiB3aW5kb3cudG9wID09PSB3aW5kb3cuc2VsZiAmJiAoLTEgPCBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkNocm9tZSIpICYmIC0xID09PSBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkVkZ2UiKSB8fCAtMSA8IG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiRmlyZWZveCIpKSkgewogICAgICAgIHZhciBwcm90b2NvbCA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbDsKICAgICAgICAvXihodHRwcz98ZmlsZSk6JC8udGVzdChwcm90b2NvbCkgJiYgY29uc29sZS5pbmZvKAogICAgICAgICAgIiVjRG93bmxvYWQgdGhlIFJlYWN0IERldlRvb2xzIGZvciBhIGJldHRlciBkZXZlbG9wbWVudCBleHBlcmllbmNlOiBodHRwczovL3JlYWN0LmRldi9saW5rL3JlYWN0LWRldnRvb2xzIiArICgiZmlsZToiID09PSBwcm90b2NvbCA/ICJcbllvdSBtaWdodCBuZWVkIHRvIHVzZSBhIGxvY2FsIEhUVFAgc2VydmVyIChpbnN0ZWFkIG9mIGZpbGU6Ly8pOiBodHRwczovL3JlYWN0LmRldi9saW5rL3JlYWN0LWRldnRvb2xzLWZhcSIgOiAiIiksCiAgICAgICAgICAiZm9udC13ZWlnaHQ6Ym9sZCIKICAgICAgICApOwogICAgICB9CiAgICAgIGV4cG9ydHMuY3JlYXRlUm9vdCA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgb3B0aW9ucykgewogICAgICAgIGlmICghaXNWYWxpZENvbnRhaW5lcihjb250YWluZXIpKQogICAgICAgICAgdGhyb3cgRXJyb3IoIlRhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuIik7CiAgICAgICAgd2FybklmUmVhY3RET01Db250YWluZXJJbkRFVihjb250YWluZXIpOwogICAgICAgIHZhciBpc1N0cmljdE1vZGUgPSBmYWxzZSwgaWRlbnRpZmllclByZWZpeCA9ICIiLCBvblVuY2F1Z2h0RXJyb3IgPSBkZWZhdWx0T25VbmNhdWdodEVycm9yLCBvbkNhdWdodEVycm9yID0gZGVmYXVsdE9uQ2F1Z2h0RXJyb3IsIG9uUmVjb3ZlcmFibGVFcnJvciA9IGRlZmF1bHRPblJlY292ZXJhYmxlRXJyb3I7CiAgICAgICAgbnVsbCAhPT0gb3B0aW9ucyAmJiB2b2lkIDAgIT09IG9wdGlvbnMgJiYgKG9wdGlvbnMuaHlkcmF0ZSA/IGNvbnNvbGUud2FybigKICAgICAgICAgICJoeWRyYXRlIHRocm91Z2ggY3JlYXRlUm9vdCBpcyBkZXByZWNhdGVkLiBVc2UgUmVhY3RET01DbGllbnQuaHlkcmF0ZVJvb3QoY29udGFpbmVyLCA8QXBwIC8+KSBpbnN0ZWFkLiIKICAgICAgICApIDogIm9iamVjdCIgPT09IHR5cGVvZiBvcHRpb25zICYmIG51bGwgIT09IG9wdGlvbnMgJiYgb3B0aW9ucy4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFICYmIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAiWW91IHBhc3NlZCBhIEpTWCBlbGVtZW50IHRvIGNyZWF0ZVJvb3QuIFlvdSBwcm9iYWJseSBtZWFudCB0byBjYWxsIHJvb3QucmVuZGVyIGluc3RlYWQuIEV4YW1wbGUgdXNhZ2U6XG5cbiAgbGV0IHJvb3QgPSBjcmVhdGVSb290KGRvbUNvbnRhaW5lcik7XG4gIHJvb3QucmVuZGVyKDxBcHAgLz4pOyIKICAgICAgICApLCB0cnVlID09PSBvcHRpb25zLnVuc3RhYmxlX3N0cmljdE1vZGUgJiYgKGlzU3RyaWN0TW9kZSA9IHRydWUpLCB2b2lkIDAgIT09IG9wdGlvbnMuaWRlbnRpZmllclByZWZpeCAmJiAoaWRlbnRpZmllclByZWZpeCA9IG9wdGlvbnMuaWRlbnRpZmllclByZWZpeCksIHZvaWQgMCAhPT0gb3B0aW9ucy5vblVuY2F1Z2h0RXJyb3IgJiYgKG9uVW5jYXVnaHRFcnJvciA9IG9wdGlvbnMub25VbmNhdWdodEVycm9yKSwgdm9pZCAwICE9PSBvcHRpb25zLm9uQ2F1Z2h0RXJyb3IgJiYgKG9uQ2F1Z2h0RXJyb3IgPSBvcHRpb25zLm9uQ2F1Z2h0RXJyb3IpLCB2b2lkIDAgIT09IG9wdGlvbnMub25SZWNvdmVyYWJsZUVycm9yICYmIChvblJlY292ZXJhYmxlRXJyb3IgPSBvcHRpb25zLm9uUmVjb3ZlcmFibGVFcnJvcikpOwogICAgICAgIG9wdGlvbnMgPSBjcmVhdGVGaWJlclJvb3QoCiAgICAgICAgICBjb250YWluZXIsCiAgICAgICAgICAxLAogICAgICAgICAgZmFsc2UsCiAgICAgICAgICBudWxsLAogICAgICAgICAgbnVsbCwKICAgICAgICAgIGlzU3RyaWN0TW9kZSwKICAgICAgICAgIGlkZW50aWZpZXJQcmVmaXgsCiAgICAgICAgICBudWxsLAogICAgICAgICAgb25VbmNhdWdodEVycm9yLAogICAgICAgICAgb25DYXVnaHRFcnJvciwKICAgICAgICAgIG9uUmVjb3ZlcmFibGVFcnJvciwKICAgICAgICAgIGRlZmF1bHRPbkRlZmF1bHRUcmFuc2l0aW9uSW5kaWNhdG9yCiAgICAgICAgKTsKICAgICAgICBjb250YWluZXJbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gPSBvcHRpb25zLmN1cnJlbnQ7CiAgICAgICAgbGlzdGVuVG9BbGxTdXBwb3J0ZWRFdmVudHMoY29udGFpbmVyKTsKICAgICAgICByZXR1cm4gbmV3IFJlYWN0RE9NUm9vdChvcHRpb25zKTsKICAgICAgfTsKICAgICAgZXhwb3J0cy5oeWRyYXRlUm9vdCA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgaW5pdGlhbENoaWxkcmVuLCBvcHRpb25zKSB7CiAgICAgICAgaWYgKCFpc1ZhbGlkQ29udGFpbmVyKGNvbnRhaW5lcikpCiAgICAgICAgICB0aHJvdyBFcnJvcigiVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4iKTsKICAgICAgICB3YXJuSWZSZWFjdERPTUNvbnRhaW5lckluREVWKGNvbnRhaW5lcik7CiAgICAgICAgdm9pZCAwID09PSBpbml0aWFsQ2hpbGRyZW4gJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICJNdXN0IHByb3ZpZGUgaW5pdGlhbCBjaGlsZHJlbiBhcyBzZWNvbmQgYXJndW1lbnQgdG8gaHlkcmF0ZVJvb3QuIEV4YW1wbGUgdXNhZ2U6IGh5ZHJhdGVSb290KGRvbUNvbnRhaW5lciwgPEFwcCAvPikiCiAgICAgICAgKTsKICAgICAgICB2YXIgaXNTdHJpY3RNb2RlID0gZmFsc2UsIGlkZW50aWZpZXJQcmVmaXggPSAiIiwgb25VbmNhdWdodEVycm9yID0gZGVmYXVsdE9uVW5jYXVnaHRFcnJvciwgb25DYXVnaHRFcnJvciA9IGRlZmF1bHRPbkNhdWdodEVycm9yLCBvblJlY292ZXJhYmxlRXJyb3IgPSBkZWZhdWx0T25SZWNvdmVyYWJsZUVycm9yLCBmb3JtU3RhdGUgPSBudWxsOwogICAgICAgIG51bGwgIT09IG9wdGlvbnMgJiYgdm9pZCAwICE9PSBvcHRpb25zICYmICh0cnVlID09PSBvcHRpb25zLnVuc3RhYmxlX3N0cmljdE1vZGUgJiYgKGlzU3RyaWN0TW9kZSA9IHRydWUpLCB2b2lkIDAgIT09IG9wdGlvbnMuaWRlbnRpZmllclByZWZpeCAmJiAoaWRlbnRpZmllclByZWZpeCA9IG9wdGlvbnMuaWRlbnRpZmllclByZWZpeCksIHZvaWQgMCAhPT0gb3B0aW9ucy5vblVuY2F1Z2h0RXJyb3IgJiYgKG9uVW5jYXVnaHRFcnJvciA9IG9wdGlvbnMub25VbmNhdWdodEVycm9yKSwgdm9pZCAwICE9PSBvcHRpb25zLm9uQ2F1Z2h0RXJyb3IgJiYgKG9uQ2F1Z2h0RXJyb3IgPSBvcHRpb25zLm9uQ2F1Z2h0RXJyb3IpLCB2b2lkIDAgIT09IG9wdGlvbnMub25SZWNvdmVyYWJsZUVycm9yICYmIChvblJlY292ZXJhYmxlRXJyb3IgPSBvcHRpb25zLm9uUmVjb3ZlcmFibGVFcnJvciksIHZvaWQgMCAhPT0gb3B0aW9ucy5mb3JtU3RhdGUgJiYgKGZvcm1TdGF0ZSA9IG9wdGlvbnMuZm9ybVN0YXRlKSk7CiAgICAgICAgaW5pdGlhbENoaWxkcmVuID0gY3JlYXRlRmliZXJSb290KAogICAgICAgICAgY29udGFpbmVyLAogICAgICAgICAgMSwKICAgICAgICAgIHRydWUsCiAgICAgICAgICBpbml0aWFsQ2hpbGRyZW4sCiAgICAgICAgICBudWxsICE9IG9wdGlvbnMgPyBvcHRpb25zIDogbnVsbCwKICAgICAgICAgIGlzU3RyaWN0TW9kZSwKICAgICAgICAgIGlkZW50aWZpZXJQcmVmaXgsCiAgICAgICAgICBmb3JtU3RhdGUsCiAgICAgICAgICBvblVuY2F1Z2h0RXJyb3IsCiAgICAgICAgICBvbkNhdWdodEVycm9yLAogICAgICAgICAgb25SZWNvdmVyYWJsZUVycm9yLAogICAgICAgICAgZGVmYXVsdE9uRGVmYXVsdFRyYW5zaXRpb25JbmRpY2F0b3IKICAgICAgICApOwogICAgICAgIGluaXRpYWxDaGlsZHJlbi5jb250ZXh0ID0gZ2V0Q29udGV4dEZvclN1YnRyZWUobnVsbCk7CiAgICAgICAgb3B0aW9ucyA9IGluaXRpYWxDaGlsZHJlbi5jdXJyZW50OwogICAgICAgIGlzU3RyaWN0TW9kZSA9IHJlcXVlc3RVcGRhdGVMYW5lKG9wdGlvbnMpOwogICAgICAgIGlzU3RyaWN0TW9kZSA9IGdldEJ1bXBlZExhbmVGb3JIeWRyYXRpb25CeUxhbmUoaXNTdHJpY3RNb2RlKTsKICAgICAgICBpZGVudGlmaWVyUHJlZml4ID0gY3JlYXRlVXBkYXRlKGlzU3RyaWN0TW9kZSk7CiAgICAgICAgaWRlbnRpZmllclByZWZpeC5jYWxsYmFjayA9IG51bGw7CiAgICAgICAgZW5xdWV1ZVVwZGF0ZShvcHRpb25zLCBpZGVudGlmaWVyUHJlZml4LCBpc1N0cmljdE1vZGUpOwogICAgICAgIHN0YXJ0VXBkYXRlVGltZXJCeUxhbmUoaXNTdHJpY3RNb2RlLCAiaHlkcmF0ZVJvb3QoKSIsIG51bGwpOwogICAgICAgIG9wdGlvbnMgPSBpc1N0cmljdE1vZGU7CiAgICAgICAgaW5pdGlhbENoaWxkcmVuLmN1cnJlbnQubGFuZXMgPSBvcHRpb25zOwogICAgICAgIG1hcmtSb290VXBkYXRlZCQxKGluaXRpYWxDaGlsZHJlbiwgb3B0aW9ucyk7CiAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKGluaXRpYWxDaGlsZHJlbik7CiAgICAgICAgY29udGFpbmVyW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldID0gaW5pdGlhbENoaWxkcmVuLmN1cnJlbnQ7CiAgICAgICAgbGlzdGVuVG9BbGxTdXBwb3J0ZWRFdmVudHMoY29udGFpbmVyKTsKICAgICAgICByZXR1cm4gbmV3IFJlYWN0RE9NSHlkcmF0aW9uUm9vdChpbml0aWFsQ2hpbGRyZW4pOwogICAgICB9OwogICAgICBleHBvcnRzLnZlcnNpb24gPSAiMTkuMi4zIjsKICAgICAgInVuZGVmaW5lZCIgIT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gJiYgImZ1bmN0aW9uIiA9PT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcCAmJiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AoRXJyb3IoKSk7CiAgICB9KSgpOwogIH0KfSk7CgovLyBub2RlX21vZHVsZXMvcmVhY3QtZG9tL2NsaWVudC5qcwp2YXIgcmVxdWlyZV9jbGllbnQgPSBfX2NvbW1vbkpTKHsKICAibm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9jbGllbnQuanMiKGV4cG9ydHMsIG1vZHVsZSkgewogICAgaWYgKGZhbHNlKSB7CiAgICAgIGNoZWNrRENFKCk7CiAgICAgIG1vZHVsZS5leHBvcnRzID0gbnVsbDsKICAgIH0gZWxzZSB7CiAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZV9yZWFjdF9kb21fY2xpZW50X2RldmVsb3BtZW50KCk7CiAgICB9CiAgfQp9KTsKZXhwb3J0IGRlZmF1bHQgcmVxdWlyZV9jbGllbnQoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtZG9tX2NsaWVudC5qcy5tYXAK"}},"time_used":64,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":19,"receive":45,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/src/index.css","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.439Z","timestamp":1785108243439,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /src/index.css HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/src/main.tsx\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 102851\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: no-cache\r\nEtag: W/\"191c3-PJxmlrpUZG6bbMyh2r7FADKVMz8\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Nginx:1.18.0","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":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":102851,"size_decoded":103101,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (65238)","md5":"b8ca3801321b4f700d9664cbf85a3e5b","sha1":"3c9c6696ba54646e9b6ccca1dabec5003295333f","sha256":"ed8196030bd4335abf9a200f846d3f4a04f8634ddf2285d423948683f88fd6bd","sha512":"258ee01371dd6d70df35822e1e553c1dd95c9075977553e963b39efac3df087511d9d64dd427c33428c758e7c5c37bddcfae2ef04739e5c36aaf56e27778c4ec","ssdeep":"768:fnDjdl7/rR/lSUd0nJLMtpFir1Zk9dODx7goHX0Q9ulcV:fnDjdl7/l/7inJLOa7goHF","tlshash":"40a3e32f7a92442d2d724df7f2d75169a3eb22c48d3597bdafc910524f8c3e0a89612c","first_seen":"2026-07-26T23:24:50.373155Z","last_seen":"2026-07-26T23:25:44.782173Z","times_seen":2,"resource_available":true,"data":"aW1wb3J0IHsgY3JlYXRlSG90Q29udGV4dCBhcyBfX3ZpdGVfX2NyZWF0ZUhvdENvbnRleHQgfSBmcm9tICIvQHZpdGUvY2xpZW50IjtpbXBvcnQubWV0YS5ob3QgPSBfX3ZpdGVfX2NyZWF0ZUhvdENvbnRleHQoIi9zcmMvaW5kZXguY3NzIik7aW1wb3J0IHsgdXBkYXRlU3R5bGUgYXMgX192aXRlX191cGRhdGVTdHlsZSwgcmVtb3ZlU3R5bGUgYXMgX192aXRlX19yZW1vdmVTdHlsZSB9IGZyb20gIi9Adml0ZS9jbGllbnQiCmNvbnN0IF9fdml0ZV9faWQgPSAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9pbmRleC5jc3MiCmNvbnN0IF9fdml0ZV9fY3NzID0gIiosIDo6YmVmb3JlLCA6OmFmdGVyIHtcbiAgLS10dy1ib3JkZXItc3BhY2luZy14OiAwO1xuICAtLXR3LWJvcmRlci1zcGFjaW5nLXk6IDA7XG4gIC0tdHctdHJhbnNsYXRlLXg6IDA7XG4gIC0tdHctdHJhbnNsYXRlLXk6IDA7XG4gIC0tdHctcm90YXRlOiAwO1xuICAtLXR3LXNrZXcteDogMDtcbiAgLS10dy1za2V3LXk6IDA7XG4gIC0tdHctc2NhbGUteDogMTtcbiAgLS10dy1zY2FsZS15OiAxO1xuICAtLXR3LXBhbi14OiAgO1xuICAtLXR3LXBhbi15OiAgO1xuICAtLXR3LXBpbmNoLXpvb206ICA7XG4gIC0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzczogcHJveGltaXR5O1xuICAtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb246ICA7XG4gIC0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiAgO1xuICAtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uOiAgO1xuICAtLXR3LW9yZGluYWw6ICA7XG4gIC0tdHctc2xhc2hlZC16ZXJvOiAgO1xuICAtLXR3LW51bWVyaWMtZmlndXJlOiAgO1xuICAtLXR3LW51bWVyaWMtc3BhY2luZzogIDtcbiAgLS10dy1udW1lcmljLWZyYWN0aW9uOiAgO1xuICAtLXR3LXJpbmctaW5zZXQ6ICA7XG4gIC0tdHctcmluZy1vZmZzZXQtd2lkdGg6IDBweDtcbiAgLS10dy1yaW5nLW9mZnNldC1jb2xvcjogI2ZmZjtcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIDAuNSk7XG4gIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiAwIDAgIzAwMDA7XG4gIC0tdHctcmluZy1zaGFkb3c6IDAgMCAjMDAwMDtcbiAgLS10dy1zaGFkb3c6IDAgMCAjMDAwMDtcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAwICMwMDAwO1xuICAtLXR3LWJsdXI6ICA7XG4gIC0tdHctYnJpZ2h0bmVzczogIDtcbiAgLS10dy1jb250cmFzdDogIDtcbiAgLS10dy1ncmF5c2NhbGU6ICA7XG4gIC0tdHctaHVlLXJvdGF0ZTogIDtcbiAgLS10dy1pbnZlcnQ6ICA7XG4gIC0tdHctc2F0dXJhdGU6ICA7XG4gIC0tdHctc2VwaWE6ICA7XG4gIC0tdHctZHJvcC1zaGFkb3c6ICA7XG4gIC0tdHctYmFja2Ryb3AtYmx1cjogIDtcbiAgLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiAgO1xuICAtLXR3LWJhY2tkcm9wLWNvbnRyYXN0OiAgO1xuICAtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZTogIDtcbiAgLS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiAgO1xuICAtLXR3LWJhY2tkcm9wLWludmVydDogIDtcbiAgLS10dy1iYWNrZHJvcC1vcGFjaXR5OiAgO1xuICAtLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiAgO1xuICAtLXR3LWJhY2tkcm9wLXNlcGlhOiAgO1xuICAtLXR3LWNvbnRhaW4tc2l6ZTogIDtcbiAgLS10dy1jb250YWluLWxheW91dDogIDtcbiAgLS10dy1jb250YWluLXBhaW50OiAgO1xuICAtLXR3LWNvbnRhaW4tc3R5bGU6ICA7XG59XG5cbjo6YmFja2Ryb3Age1xuICAtLXR3LWJvcmRlci1zcGFjaW5nLXg6IDA7XG4gIC0tdHctYm9yZGVyLXNwYWNpbmcteTogMDtcbiAgLS10dy10cmFuc2xhdGUteDogMDtcbiAgLS10dy10cmFuc2xhdGUteTogMDtcbiAgLS10dy1yb3RhdGU6IDA7XG4gIC0tdHctc2tldy14OiAwO1xuICAtLXR3LXNrZXcteTogMDtcbiAgLS10dy1zY2FsZS14OiAxO1xuICAtLXR3LXNjYWxlLXk6IDE7XG4gIC0tdHctcGFuLXg6ICA7XG4gIC0tdHctcGFuLXk6ICA7XG4gIC0tdHctcGluY2gtem9vbTogIDtcbiAgLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzOiBwcm94aW1pdHk7XG4gIC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbjogIDtcbiAgLS10dy1ncmFkaWVudC12aWEtcG9zaXRpb246ICA7XG4gIC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246ICA7XG4gIC0tdHctb3JkaW5hbDogIDtcbiAgLS10dy1zbGFzaGVkLXplcm86ICA7XG4gIC0tdHctbnVtZXJpYy1maWd1cmU6ICA7XG4gIC0tdHctbnVtZXJpYy1zcGFjaW5nOiAgO1xuICAtLXR3LW51bWVyaWMtZnJhY3Rpb246ICA7XG4gIC0tdHctcmluZy1pbnNldDogIDtcbiAgLS10dy1yaW5nLW9mZnNldC13aWR0aDogMHB4O1xuICAtLXR3LXJpbmctb2Zmc2V0LWNvbG9yOiAjZmZmO1xuICAtLXR3LXJpbmctY29sb3I6IHJnYig1OSAxMzAgMjQ2IC8gMC41KTtcbiAgLS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IDAgMCAjMDAwMDtcbiAgLS10dy1yaW5nLXNoYWRvdzogMCAwICMwMDAwO1xuICAtLXR3LXNoYWRvdzogMCAwICMwMDAwO1xuICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDAgIzAwMDA7XG4gIC0tdHctYmx1cjogIDtcbiAgLS10dy1icmlnaHRuZXNzOiAgO1xuICAtLXR3LWNvbnRyYXN0OiAgO1xuICAtLXR3LWdyYXlzY2FsZTogIDtcbiAgLS10dy1odWUtcm90YXRlOiAgO1xuICAtLXR3LWludmVydDogIDtcbiAgLS10dy1zYXR1cmF0ZTogIDtcbiAgLS10dy1zZXBpYTogIDtcbiAgLS10dy1kcm9wLXNoYWRvdzogIDtcbiAgLS10dy1iYWNrZHJvcC1ibHVyOiAgO1xuICAtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3M6ICA7XG4gIC0tdHctYmFja2Ryb3AtY29udHJhc3Q6ICA7XG4gIC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiAgO1xuICAtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGU6ICA7XG4gIC0tdHctYmFja2Ryb3AtaW52ZXJ0OiAgO1xuICAtLXR3LWJhY2tkcm9wLW9wYWNpdHk6ICA7XG4gIC0tdHctYmFja2Ryb3Atc2F0dXJhdGU6ICA7XG4gIC0tdHctYmFja2Ryb3Atc2VwaWE6ICA7XG4gIC0tdHctY29udGFpbi1zaXplOiAgO1xuICAtLXR3LWNvbnRhaW4tbGF5b3V0OiAgO1xuICAtLXR3LWNvbnRhaW4tcGFpbnQ6ICA7XG4gIC0tdHctY29udGFpbi1zdHlsZTogIDtcbn0vKlxuISB0YWlsd2luZGNzcyB2My40LjE5IHwgTUlUIExpY2Vuc2UgfCBodHRwczovL3RhaWx3aW5kY3NzLmNvbVxuKi8vKlxuMS4gUHJldmVudCBwYWRkaW5nIGFuZCBib3JkZXIgZnJvbSBhZmZlY3RpbmcgZWxlbWVudCB3aWR0aC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvNClcbjIuIEFsbG93IGFkZGluZyBhIGJvcmRlciB0byBhbiBlbGVtZW50IGJ5IGp1c3QgYWRkaW5nIGEgYm9yZGVyLXdpZHRoLiAoaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kY3NzL3RhaWx3aW5kY3NzL3B1bGwvMTE2KVxuKi9cblxuKixcbjo6YmVmb3JlLFxuOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgYm9yZGVyLXdpZHRoOiAwOyAvKiAyICovXG4gIGJvcmRlci1zdHlsZTogc29saWQ7IC8qIDIgKi9cbiAgYm9yZGVyLWNvbG9yOiAjZTVlN2ViOyAvKiAyICovXG59XG5cbjo6YmVmb3JlLFxuOjphZnRlciB7XG4gIC0tdHctY29udGVudDogJyc7XG59XG5cbi8qXG4xLiBVc2UgYSBjb25zaXN0ZW50IHNlbnNpYmxlIGxpbmUtaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbjIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuMy4gVXNlIGEgbW9yZSByZWFkYWJsZSB0YWIgc2l6ZS5cbjQuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYHNhbnNgIGZvbnQtZmFtaWx5IGJ5IGRlZmF1bHQuXG41LiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBzYW5zYCBmb250LWZlYXR1cmUtc2V0dGluZ3MgYnkgZGVmYXVsdC5cbjYuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYHNhbnNgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIGJ5IGRlZmF1bHQuXG43LiBEaXNhYmxlIHRhcCBoaWdobGlnaHRzIG9uIGlPU1xuKi9cblxuaHRtbCxcbjpob3N0IHtcbiAgbGluZS1oZWlnaHQ6IDEuNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLW1vei10YWItc2l6ZTogNDsgLyogMyAqL1xuICAtby10YWItc2l6ZTogNDtcbiAgICAgdGFiLXNpemU6IDQ7IC8qIDMgKi9cbiAgZm9udC1mYW1pbHk6IHVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiOyAvKiA0ICovXG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogbm9ybWFsOyAvKiA1ICovXG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBub3JtYWw7IC8qIDYgKi9cbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgLyogNyAqL1xufVxuXG4vKlxuMS4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuMi4gSW5oZXJpdCBsaW5lLWhlaWdodCBmcm9tIGBodG1sYCBzbyB1c2VycyBjYW4gc2V0IHRoZW0gYXMgYSBjbGFzcyBkaXJlY3RseSBvbiB0aGUgYGh0bWxgIGVsZW1lbnQuXG4qL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qXG4xLiBBZGQgdGhlIGNvcnJlY3QgaGVpZ2h0IGluIEZpcmVmb3guXG4yLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBvZiBib3JkZXIgY29sb3IgaW4gRmlyZWZveC4gKGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDY1NSlcbjMuIEVuc3VyZSBob3Jpem9udGFsIHJ1bGVzIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHQuXG4qL1xuXG5ociB7XG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7IC8qIDMgKi9cbn1cblxuLypcbkFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuKi9cblxuYWJicjp3aGVyZShbdGl0bGVdKSB7XG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuLypcblJlbW92ZSB0aGUgZGVmYXVsdCBmb250IHNpemUgYW5kIHdlaWdodCBmb3IgaGVhZGluZ3MuXG4qL1xuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG4vKlxuUmVzZXQgbGlua3MgdG8gb3B0aW1pemUgZm9yIG9wdC1pbiBzdHlsaW5nIGluc3RlYWQgb2Ygb3B0LW91dC5cbiovXG5cbmEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xufVxuXG4vKlxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIEVkZ2UgYW5kIFNhZmFyaS5cbiovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKlxuMS4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgbW9ub2AgZm9udC1mYW1pbHkgYnkgZGVmYXVsdC5cbjIuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYG1vbm9gIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBieSBkZWZhdWx0LlxuMy4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgbW9ub2AgZm9udC12YXJpYXRpb24tc2V0dGluZ3MgYnkgZGVmYXVsdC5cbjQuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiovXG5cbmNvZGUsXG5rYmQsXG5zYW1wLFxucHJlIHtcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDsgLyogMiAqL1xuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogbm9ybWFsOyAvKiAzICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiA0ICovXG59XG5cbi8qXG5BZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qXG5QcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLypcbjEuIFJlbW92ZSB0ZXh0IGluZGVudGF0aW9uIGZyb20gdGFibGUgY29udGVudHMgaW4gQ2hyb21lIGFuZCBTYWZhcmkuIChodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD05OTkwODgsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEyOTcpXG4yLiBDb3JyZWN0IHRhYmxlIGJvcmRlciBjb2xvciBpbmhlcml0YW5jZSBpbiBhbGwgQ2hyb21lIGFuZCBTYWZhcmkuIChodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD05MzU3MjksIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUwMTYpXG4zLiBSZW1vdmUgZ2FwcyBiZXR3ZWVuIHRhYmxlIGJvcmRlcnMgYnkgZGVmYXVsdC5cbiovXG5cbnRhYmxlIHtcbiAgdGV4dC1pbmRlbnQ6IDA7IC8qIDEgKi9cbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IC8qIDMgKi9cbn1cblxuLypcbjEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuMy4gUmVtb3ZlIGRlZmF1bHQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyAvKiAxICovXG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG59XG5cbi8qXG5SZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UgYW5kIEZpcmVmb3guXG4qL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLypcbjEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4yLiBSZW1vdmUgZGVmYXVsdCBidXR0b24gc3R5bGVzLlxuKi9cblxuYnV0dG9uLFxuaW5wdXQ6d2hlcmUoW3R5cGU9J2J1dHRvbiddKSxcbmlucHV0OndoZXJlKFt0eXBlPSdyZXNldCddKSxcbmlucHV0OndoZXJlKFt0eXBlPSdzdWJtaXQnXSkge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMiAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvKiAyICovXG59XG5cbi8qXG5Vc2UgdGhlIG1vZGVybiBGaXJlZm94IGZvY3VzIHN0eWxlIGZvciBhbGwgZm9jdXNhYmxlIGVsZW1lbnRzLlxuKi9cblxuOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogYXV0bztcbn1cblxuLypcblJlbW92ZSB0aGUgYWRkaXRpb25hbCBgOmludmFsaWRgIHN0eWxlcyBpbiBGaXJlZm94LiAoaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja28tZGV2L2Jsb2IvMmY5ZWFjZDlkM2Q5OTVjOTM3YjQyNTFhNTU1N2Q5NWQ0OTRjOWJlMS9sYXlvdXQvc3R5bGUvcmVzL2Zvcm1zLmNzcyNMNzI4LUw3MzcpXG4qL1xuXG46LW1vei11aS1pbnZhbGlkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLypcbkFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lIGFuZCBGaXJlZm94LlxuKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qXG5Db3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBTYWZhcmkuXG4qL1xuXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG46Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qXG4xLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbjIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuKi9cblxuW3R5cGU9J3NlYXJjaCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLypcblJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiovXG5cbjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLypcbjEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4yLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4qL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKlxuQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4qL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKlxuUmVtb3ZlcyB0aGUgZGVmYXVsdCBzcGFjaW5nIGFuZCBib3JkZXIgZm9yIGFwcHJvcHJpYXRlIGVsZW1lbnRzLlxuKi9cblxuYmxvY2txdW90ZSxcbmRsLFxuZGQsXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5ocixcbmZpZ3VyZSxcbnAsXG5wcmUge1xuICBtYXJnaW46IDA7XG59XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5sZWdlbmQge1xuICBwYWRkaW5nOiAwO1xufVxuXG5vbCxcbnVsLFxubWVudSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLypcblJlc2V0IGRlZmF1bHQgc3R5bGluZyBmb3IgZGlhbG9ncy5cbiovXG5kaWFsb2cge1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKlxuUHJldmVudCByZXNpemluZyB0ZXh0YXJlYXMgaG9yaXpvbnRhbGx5IGJ5IGRlZmF1bHQuXG4qL1xuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbi8qXG4xLiBSZXNldCB0aGUgZGVmYXVsdCBwbGFjZWhvbGRlciBvcGFjaXR5IGluIEZpcmVmb3guIChodHRwczovL2dpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2lzc3Vlcy8zMzAwKVxuMi4gU2V0IHRoZSBkZWZhdWx0IHBsYWNlaG9sZGVyIGNvbG9yIHRvIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBncmF5IDQwMCBjb2xvci5cbiovXG5cbmlucHV0OjotbW96LXBsYWNlaG9sZGVyLCB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDE7IC8qIDEgKi9cbiAgY29sb3I6ICM5Y2EzYWY7IC8qIDIgKi9cbn1cblxuaW5wdXQ6OnBsYWNlaG9sZGVyLFxudGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgb3BhY2l0eTogMTsgLyogMSAqL1xuICBjb2xvcjogIzljYTNhZjsgLyogMiAqL1xufVxuXG4vKlxuU2V0IHRoZSBkZWZhdWx0IGN1cnNvciBmb3IgYnV0dG9ucy5cbiovXG5cbmJ1dHRvbixcbltyb2xlPVwiYnV0dG9uXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKlxuTWFrZSBzdXJlIGRpc2FibGVkIGJ1dHRvbnMgZG9uJ3QgZ2V0IHRoZSBwb2ludGVyIGN1cnNvci5cbiovXG46ZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qXG4xLiBNYWtlIHJlcGxhY2VkIGVsZW1lbnRzIGBkaXNwbGF5OiBibG9ja2AgYnkgZGVmYXVsdC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvMTQpXG4yLiBBZGQgYHZlcnRpY2FsLWFsaWduOiBtaWRkbGVgIHRvIGFsaWduIHJlcGxhY2VkIGVsZW1lbnRzIG1vcmUgc2Vuc2libHkgYnkgZGVmYXVsdC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zaW1tb25zL2Nzc3JlbWVkeS9pc3N1ZXMvMTQjaXNzdWVjb21tZW50LTYzNDkzNDIxMClcbiAgIFRoaXMgY2FuIHRyaWdnZXIgYSBwb29ybHkgY29uc2lkZXJlZCBsaW50IGVycm9yIGluIHNvbWUgdG9vbHMgYnV0IGlzIGluY2x1ZGVkIGJ5IGRlc2lnbi5cbiovXG5cbmltZyxcbnN2ZyxcbnZpZGVvLFxuY2FudmFzLFxuYXVkaW8sXG5pZnJhbWUsXG5lbWJlZCxcbm9iamVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIDIgKi9cbn1cblxuLypcbkNvbnN0cmFpbiBpbWFnZXMgYW5kIHZpZGVvcyB0byB0aGUgcGFyZW50IHdpZHRoIGFuZCBwcmVzZXJ2ZSB0aGVpciBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvLiAoaHR0cHM6Ly9naXRodWIuY29tL21vemRldnMvY3NzcmVtZWR5L2lzc3Vlcy8xNClcbiovXG5cbmltZyxcbnZpZGVvIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qIE1ha2UgZWxlbWVudHMgd2l0aCB0aGUgSFRNTCBoaWRkZW4gYXR0cmlidXRlIHN0YXkgaGlkZGVuIGJ5IGRlZmF1bHQgKi9cbltoaWRkZW5dOndoZXJlKDpub3QoW2hpZGRlbj1cInVudGlsLWZvdW5kXCJdKSkge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnBvaW50ZXItZXZlbnRzLW5vbmUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4uY29sbGFwc2Uge1xuICB2aXNpYmlsaXR5OiBjb2xsYXBzZTtcbn1cbi5zdGF0aWMge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuLmFic29sdXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLnJlbGF0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG59XG4uaW5zZXQtMCB7XG4gIGluc2V0OiAwcHg7XG59XG4uLXRvcC0xIHtcbiAgdG9wOiAtMC4yNXJlbTtcbn1cbi4tdG9wLVxcWzlweFxcXSB7XG4gIHRvcDogLTlweDtcbn1cbi5ib3R0b20tMCB7XG4gIGJvdHRvbTogMHB4O1xufVxuLmJvdHRvbS00IHtcbiAgYm90dG9tOiAxcmVtO1xufVxuLmxlZnQtMCB7XG4gIGxlZnQ6IDBweDtcbn1cbi5sZWZ0LTBcXC41IHtcbiAgbGVmdDogMC4xMjVyZW07XG59XG4ubGVmdC0xXFwvMiB7XG4gIGxlZnQ6IDUwJTtcbn1cbi5sZWZ0LTIge1xuICBsZWZ0OiAwLjVyZW07XG59XG4ubGVmdC0zIHtcbiAgbGVmdDogMC43NXJlbTtcbn1cbi5sZWZ0LTQge1xuICBsZWZ0OiAxcmVtO1xufVxuLnJpZ2h0LTAge1xuICByaWdodDogMHB4O1xufVxuLnJpZ2h0LTIge1xuICByaWdodDogMC41cmVtO1xufVxuLnJpZ2h0LTJcXC41IHtcbiAgcmlnaHQ6IDAuNjI1cmVtO1xufVxuLnJpZ2h0LTMge1xuICByaWdodDogMC43NXJlbTtcbn1cbi5yaWdodC00IHtcbiAgcmlnaHQ6IDFyZW07XG59XG4ucmlnaHQtNSB7XG4gIHJpZ2h0OiAxLjI1cmVtO1xufVxuLnJpZ2h0LTYge1xuICByaWdodDogMS41cmVtO1xufVxuLnRvcC0wIHtcbiAgdG9wOiAwcHg7XG59XG4udG9wLTBcXC41IHtcbiAgdG9wOiAwLjEyNXJlbTtcbn1cbi50b3AtMSB7XG4gIHRvcDogMC4yNXJlbTtcbn1cbi50b3AtMVxcLzIge1xuICB0b3A6IDUwJTtcbn1cbi50b3AtMyB7XG4gIHRvcDogMC43NXJlbTtcbn1cbi50b3AtNCB7XG4gIHRvcDogMXJlbTtcbn1cbi50b3AtNSB7XG4gIHRvcDogMS4yNXJlbTtcbn1cbi50b3AtZnVsbCB7XG4gIHRvcDogMTAwJTtcbn1cbi56LTEwIHtcbiAgei1pbmRleDogMTA7XG59XG4uei0yMCB7XG4gIHotaW5kZXg6IDIwO1xufVxuLnotMzAge1xuICB6LWluZGV4OiAzMDtcbn1cbi56LTQwIHtcbiAgei1pbmRleDogNDA7XG59XG4uei01MCB7XG4gIHotaW5kZXg6IDUwO1xufVxuLnotXFxbMTAwXFxdIHtcbiAgei1pbmRleDogMTAwO1xufVxuLmNvbC1zcGFuLTIge1xuICBncmlkLWNvbHVtbjogc3BhbiAyIC8gc3BhbiAyO1xufVxuLm14LTIge1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn1cbi5teC1hdXRvIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi5teS0xIHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cbi5teS00IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5teS02IHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG4uLW1iLTBcXC41IHtcbiAgbWFyZ2luLWJvdHRvbTogLTAuMTI1cmVtO1xufVxuLi1tdC0xMCB7XG4gIG1hcmdpbi10b3A6IC0yLjVyZW07XG59XG4ubWItMCB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cbi5tYi0wXFwuNSB7XG4gIG1hcmdpbi1ib3R0b206IDAuMTI1cmVtO1xufVxuLm1iLTEge1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xufVxuLm1iLTFcXC41IHtcbiAgbWFyZ2luLWJvdHRvbTogMC4zNzVyZW07XG59XG4ubWItMTIge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuLm1iLTIge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG4ubWItMyB7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG4ubWItNCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4ubWItNSB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG4ubWItNiB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cbi5tYi04IHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cbi5tYi1cXFswXFwuMjhyZW1cXF0ge1xuICBtYXJnaW4tYm90dG9tOiAwLjI4cmVtO1xufVxuLm1iLVxcWzFcXC4ycmVtXFxdIHtcbiAgbWFyZ2luLWJvdHRvbTogMS4ycmVtO1xufVxuLm1iLVxcWzFcXC40cmVtXFxdIHtcbiAgbWFyZ2luLWJvdHRvbTogMS40cmVtO1xufVxuLm1iLVxcWzJcXC40cmVtXFxdIHtcbiAgbWFyZ2luLWJvdHRvbTogMi40cmVtO1xufVxuLm1iLVxcWzNcXC42cmVtXFxdIHtcbiAgbWFyZ2luLWJvdHRvbTogMy42cmVtO1xufVxuLm1sLTEge1xuICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbn1cbi5tbC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbn1cbi5tbC0zIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07XG59XG4ubWwtYXV0byB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLm1yLTEge1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG59XG4ubXItMiB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xufVxuLm10LTBcXC41IHtcbiAgbWFyZ2luLXRvcDogMC4xMjVyZW07XG59XG4ubXQtMSB7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG4ubXQtMVxcLjUge1xuICBtYXJnaW4tdG9wOiAwLjM3NXJlbTtcbn1cbi5tdC0xMCB7XG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcbn1cbi5tdC0xMiB7XG4gIG1hcmdpbi10b3A6IDNyZW07XG59XG4ubXQtMiB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cbi5tdC0yNCB7XG4gIG1hcmdpbi10b3A6IDZyZW07XG59XG4ubXQtMyB7XG4gIG1hcmdpbi10b3A6IDAuNzVyZW07XG59XG4ubXQtNCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG4ubXQtNSB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG59XG4ubXQtNiB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbn1cbi5tdC03IHtcbiAgbWFyZ2luLXRvcDogMS43NXJlbTtcbn1cbi5tdC04IHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbn1cbi5tdC1hdXRvIHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbn1cbi5ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG4uZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uaW5saW5lLWZsZXgge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cbi5ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbn1cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFzcGVjdC1cXFsxNlxcLzlcXF0ge1xuICBhc3BlY3QtcmF0aW86IDE2Lzk7XG59XG4uYXNwZWN0LXNxdWFyZSB7XG4gIGFzcGVjdC1yYXRpbzogMSAvIDE7XG59XG4uaC0xIHtcbiAgaGVpZ2h0OiAwLjI1cmVtO1xufVxuLmgtMTAge1xuICBoZWlnaHQ6IDIuNXJlbTtcbn1cbi5oLTExIHtcbiAgaGVpZ2h0OiAyLjc1cmVtO1xufVxuLmgtMTIge1xuICBoZWlnaHQ6IDNyZW07XG59XG4uaC0xNCB7XG4gIGhlaWdodDogMy41cmVtO1xufVxuLmgtMTYge1xuICBoZWlnaHQ6IDRyZW07XG59XG4uaC0yIHtcbiAgaGVpZ2h0OiAwLjVyZW07XG59XG4uaC0yXFwuNSB7XG4gIGhlaWdodDogMC42MjVyZW07XG59XG4uaC0yMCB7XG4gIGhlaWdodDogNXJlbTtcbn1cbi5oLTI0IHtcbiAgaGVpZ2h0OiA2cmVtO1xufVxuLmgtMyB7XG4gIGhlaWdodDogMC43NXJlbTtcbn1cbi5oLTNcXC41IHtcbiAgaGVpZ2h0OiAwLjg3NXJlbTtcbn1cbi5oLTMyIHtcbiAgaGVpZ2h0OiA4cmVtO1xufVxuLmgtNCB7XG4gIGhlaWdodDogMXJlbTtcbn1cbi5oLTQwIHtcbiAgaGVpZ2h0OiAxMHJlbTtcbn1cbi5oLTQ0IHtcbiAgaGVpZ2h0OiAxMXJlbTtcbn1cbi5oLTUge1xuICBoZWlnaHQ6IDEuMjVyZW07XG59XG4uaC02IHtcbiAgaGVpZ2h0OiAxLjVyZW07XG59XG4uaC02NCB7XG4gIGhlaWdodDogMTZyZW07XG59XG4uaC03IHtcbiAgaGVpZ2h0OiAxLjc1cmVtO1xufVxuLmgtOCB7XG4gIGhlaWdodDogMnJlbTtcbn1cbi5oLTkge1xuICBoZWlnaHQ6IDIuMjVyZW07XG59XG4uaC1cXFsxMzBweFxcXSB7XG4gIGhlaWdodDogMTMwcHg7XG59XG4uaC1cXFsxcHhcXF0ge1xuICBoZWlnaHQ6IDFweDtcbn1cbi5oLVxcWzJweFxcXSB7XG4gIGhlaWdodDogMnB4O1xufVxuLmgtXFxbM1xcLjZyZW1cXF0ge1xuICBoZWlnaHQ6IDMuNnJlbTtcbn1cbi5oLVxcWzMzXFwuNnB4XFxdIHtcbiAgaGVpZ2h0OiAzMy42cHg7XG59XG4uaC1cXFs0NnB4XFxdIHtcbiAgaGVpZ2h0OiA0NnB4O1xufVxuLmgtXFxbNVxcLjZyZW1cXF0ge1xuICBoZWlnaHQ6IDUuNnJlbTtcbn1cbi5oLVxcWzUwcHhcXF0ge1xuICBoZWlnaHQ6IDUwcHg7XG59XG4uaC1cXFs1MnB4XFxdIHtcbiAgaGVpZ2h0OiA1MnB4O1xufVxuLmgtXFxbNTZweFxcXSB7XG4gIGhlaWdodDogNTZweDtcbn1cbi5oLVxcWzYwcHhcXF0ge1xuICBoZWlnaHQ6IDYwcHg7XG59XG4uaC1cXFs5NnB4XFxdIHtcbiAgaGVpZ2h0OiA5NnB4O1xufVxuLmgtYXV0byB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5oLWZ1bGwge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uaC1weCB7XG4gIGhlaWdodDogMXB4O1xufVxuLmgtc2NyZWVuIHtcbiAgaGVpZ2h0OiAxMDB2aDtcbn1cbi5tYXgtaC0wIHtcbiAgbWF4LWhlaWdodDogMHB4O1xufVxuLm1heC1oLVxcWzE2MHB4XFxdIHtcbiAgbWF4LWhlaWdodDogMTYwcHg7XG59XG4ubWF4LWgtXFxbNTAwcHhcXF0ge1xuICBtYXgtaGVpZ2h0OiA1MDBweDtcbn1cbi5tYXgtaC1cXFs5MHZoXFxdIHtcbiAgbWF4LWhlaWdodDogOTB2aDtcbn1cbi5tYXgtaC1cXFs5MnZoXFxdIHtcbiAgbWF4LWhlaWdodDogOTJ2aDtcbn1cbi5tYXgtaC1cXFtjYWxjXFwoMTAwdmgtMjIwcHhcXClcXF0ge1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjIwcHgpO1xufVxuLm1pbi1oLTAge1xuICBtaW4taGVpZ2h0OiAwcHg7XG59XG4ubWluLWgtXFxbMThweFxcXSB7XG4gIG1pbi1oZWlnaHQ6IDE4cHg7XG59XG4ubWluLWgtXFxbMnJlbVxcXSB7XG4gIG1pbi1oZWlnaHQ6IDJyZW07XG59XG4ubWluLWgtXFxbNDAwcHhcXF0ge1xuICBtaW4taGVpZ2h0OiA0MDBweDtcbn1cbi5taW4taC1cXFs0NnB4XFxdIHtcbiAgbWluLWhlaWdodDogNDZweDtcbn1cbi5taW4taC1cXFs0ODBweFxcXSB7XG4gIG1pbi1oZWlnaHQ6IDQ4MHB4O1xufVxuLm1pbi1oLVxcWzQ4cHhcXF0ge1xuICBtaW4taGVpZ2h0OiA0OHB4O1xufVxuLm1pbi1oLVxcWzc2MHB4XFxdIHtcbiAgbWluLWhlaWdodDogNzYwcHg7XG59XG4ubWluLWgtXFxbY2FsY1xcKDEwMHZoLTgwcHhcXClcXF0ge1xuICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gODBweCk7XG59XG4ubWluLWgtc2NyZWVuIHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG4udy0xXFwvMiB7XG4gIHdpZHRoOiA1MCU7XG59XG4udy0xMCB7XG4gIHdpZHRoOiAyLjVyZW07XG59XG4udy0xMSB7XG4gIHdpZHRoOiAyLjc1cmVtO1xufVxuLnctMTIge1xuICB3aWR0aDogM3JlbTtcbn1cbi53LTE0IHtcbiAgd2lkdGg6IDMuNXJlbTtcbn1cbi53LTE2IHtcbiAgd2lkdGg6IDRyZW07XG59XG4udy0yIHtcbiAgd2lkdGg6IDAuNXJlbTtcbn1cbi53LTJcXC41IHtcbiAgd2lkdGg6IDAuNjI1cmVtO1xufVxuLnctMjAge1xuICB3aWR0aDogNXJlbTtcbn1cbi53LTI0IHtcbiAgd2lkdGg6IDZyZW07XG59XG4udy0yOCB7XG4gIHdpZHRoOiA3cmVtO1xufVxuLnctMyB7XG4gIHdpZHRoOiAwLjc1cmVtO1xufVxuLnctM1xcLjUge1xuICB3aWR0aDogMC44NzVyZW07XG59XG4udy0zMiB7XG4gIHdpZHRoOiA4cmVtO1xufVxuLnctNCB7XG4gIHdpZHRoOiAxcmVtO1xufVxuLnctNSB7XG4gIHdpZHRoOiAxLjI1cmVtO1xufVxuLnctNTYge1xuICB3aWR0aDogMTRyZW07XG59XG4udy02IHtcbiAgd2lkdGg6IDEuNXJlbTtcbn1cbi53LTY0IHtcbiAgd2lkdGg6IDE2cmVtO1xufVxuLnctNyB7XG4gIHdpZHRoOiAxLjc1cmVtO1xufVxuLnctOCB7XG4gIHdpZHRoOiAycmVtO1xufVxuLnctOSB7XG4gIHdpZHRoOiAyLjI1cmVtO1xufVxuLnctXFxbMTMwcHhcXF0ge1xuICB3aWR0aDogMTMwcHg7XG59XG4udy1cXFsxNDBweFxcXSB7XG4gIHdpZHRoOiAxNDBweDtcbn1cbi53LVxcWzI4MHB4XFxdIHtcbiAgd2lkdGg6IDI4MHB4O1xufVxuLnctXFxbM1xcLjZyZW1cXF0ge1xuICB3aWR0aDogMy42cmVtO1xufVxuLnctXFxbMzNcXC42cHhcXF0ge1xuICB3aWR0aDogMzMuNnB4O1xufVxuLnctXFxbNDZweFxcXSB7XG4gIHdpZHRoOiA0NnB4O1xufVxuLnctXFxbNVxcLjZyZW1cXF0ge1xuICB3aWR0aDogNS42cmVtO1xufVxuLnctXFxbNTBweFxcXSB7XG4gIHdpZHRoOiA1MHB4O1xufVxuLnctXFxbNjBweFxcXSB7XG4gIHdpZHRoOiA2MHB4O1xufVxuLnctXFxbNzJweFxcXSB7XG4gIHdpZHRoOiA3MnB4O1xufVxuLnctXFxbOTZweFxcXSB7XG4gIHdpZHRoOiA5NnB4O1xufVxuLnctYXV0byB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnctZml0IHtcbiAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbn1cbi53LWZ1bGwge1xuICB3aWR0aDogMTAwJTtcbn1cbi53LXB4IHtcbiAgd2lkdGg6IDFweDtcbn1cbi5taW4tdy0wIHtcbiAgbWluLXdpZHRoOiAwcHg7XG59XG4ubWluLXctXFxbMTIwcHhcXF0ge1xuICBtaW4td2lkdGg6IDEyMHB4O1xufVxuLm1pbi13LVxcWzEycmVtXFxdIHtcbiAgbWluLXdpZHRoOiAxMnJlbTtcbn1cbi5taW4tdy1cXFsxNDBweFxcXSB7XG4gIG1pbi13aWR0aDogMTQwcHg7XG59XG4ubWluLXctXFxbMjBweFxcXSB7XG4gIG1pbi13aWR0aDogMjBweDtcbn1cbi5taW4tdy1mdWxsIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xufVxuLm1heC13LTJ4bCB7XG4gIG1heC13aWR0aDogNDJyZW07XG59XG4ubWF4LXctNHhsIHtcbiAgbWF4LXdpZHRoOiA1NnJlbTtcbn1cbi5tYXgtdy01eGwge1xuICBtYXgtd2lkdGg6IDY0cmVtO1xufVxuLm1heC13LTZ4bCB7XG4gIG1heC13aWR0aDogNzJyZW07XG59XG4ubWF4LXctN3hsIHtcbiAgbWF4LXdpZHRoOiA4MHJlbTtcbn1cbi5tYXgtdy1cXFsxMDQwcHhcXF0ge1xuICBtYXgtd2lkdGg6IDEwNDBweDtcbn1cbi5tYXgtdy1cXFsxMHJlbVxcXSB7XG4gIG1heC13aWR0aDogMTByZW07XG59XG4ubWF4LXctXFxbMTEwMHB4XFxdIHtcbiAgbWF4LXdpZHRoOiAxMTAwcHg7XG59XG4ubWF4LXctXFxbMjgwcHhcXF0ge1xuICBtYXgtd2lkdGg6IDI4MHB4O1xufVxuLm1heC13LVxcWzMyMHB4XFxdIHtcbiAgbWF4LXdpZHRoOiAzMjBweDtcbn1cbi5tYXgtdy1cXFszNDBweFxcXSB7XG4gIG1heC13aWR0aDogMzQwcHg7XG59XG4ubWF4LXctXFxbMzgwcHhcXF0ge1xuICBtYXgtd2lkdGg6IDM4MHB4O1xufVxuLm1heC13LVxcWzQwMHB4XFxdIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbn1cbi5tYXgtdy1cXFs0NDBweFxcXSB7XG4gIG1heC13aWR0aDogNDQwcHg7XG59XG4ubWF4LXctXFxbNDgwcHhcXF0ge1xuICBtYXgtd2lkdGg6IDQ4MHB4O1xufVxuLm1heC13LVxcWzY0MHB4XFxdIHtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbn1cbi5tYXgtdy1cXFs2ODBweFxcXSB7XG4gIG1heC13aWR0aDogNjgwcHg7XG59XG4ubWF4LXctXFxbNzgwcHhcXF0ge1xuICBtYXgtd2lkdGg6IDc4MHB4O1xufVxuLm1heC13LVxcWzk0MHB4XFxdIHtcbiAgbWF4LXdpZHRoOiA5NDBweDtcbn1cbi5tYXgtdy1cXFs5ODBweFxcXSB7XG4gIG1heC13aWR0aDogOTgwcHg7XG59XG4ubWF4LXctZnVsbCB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5tYXgtdy1sZyB7XG4gIG1heC13aWR0aDogMzJyZW07XG59XG4ubWF4LXctbWQge1xuICBtYXgtd2lkdGg6IDI4cmVtO1xufVxuLm1heC13LXNtIHtcbiAgbWF4LXdpZHRoOiAyNHJlbTtcbn1cbi5tYXgtdy14bCB7XG4gIG1heC13aWR0aDogMzZyZW07XG59XG4ubWF4LXcteHMge1xuICBtYXgtd2lkdGg6IDIwcmVtO1xufVxuLmZsZXgtMSB7XG4gIGZsZXg6IDEgMSAwJTtcbn1cbi5mbGV4LXNocmluay0wIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4uc2hyaW5rLTAge1xuICBmbGV4LXNocmluazogMDtcbn1cbi5vcmlnaW4tbGVmdCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG59XG4uLXRyYW5zbGF0ZS14LTFcXC8yIHtcbiAgLS10dy10cmFuc2xhdGUteDogLTUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XG59XG4uLXRyYW5zbGF0ZS14LWZ1bGwge1xuICAtLXR3LXRyYW5zbGF0ZS14OiAtMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XG59XG4uLXRyYW5zbGF0ZS15LTFcXC8yIHtcbiAgLS10dy10cmFuc2xhdGUteTogLTUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XG59XG4udHJhbnNsYXRlLXgtMCB7XG4gIC0tdHctdHJhbnNsYXRlLXg6IDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XG59XG4udHJhbnNsYXRlLXgtNSB7XG4gIC0tdHctdHJhbnNsYXRlLXg6IDEuMjVyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xufVxuLnJvdGF0ZS0xODAge1xuICAtLXR3LXJvdGF0ZTogMTgwZGVnO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcbn1cbi5yb3RhdGUtNDUge1xuICAtLXR3LXJvdGF0ZTogNDVkZWc7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xufVxuLnNjYWxlLTAge1xuICAtLXR3LXNjYWxlLXg6IDA7XG4gIC0tdHctc2NhbGUteTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XG59XG4uc2NhbGUtMTAwIHtcbiAgLS10dy1zY2FsZS14OiAxO1xuICAtLXR3LXNjYWxlLXk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xufVxuLnNjYWxlLTUwIHtcbiAgLS10dy1zY2FsZS14OiAuNTtcbiAgLS10dy1zY2FsZS15OiAuNTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XG59XG4udHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XG59XG4uYW5pbWF0ZS1cXFtkcmF3LWNoZWNrXzBcXC41c19lYXNlLW91dF8wXFwuM3NfZm9yd2FyZHNcXF0ge1xuICBhbmltYXRpb246IGRyYXctY2hlY2sgMC41cyBlYXNlLW91dCAwLjNzIGZvcndhcmRzO1xufVxuLmFuaW1hdGUtXFxbc2NhbGUtaW5fMFxcLjVzX2Vhc2Utb3V0XFxdIHtcbiAgYW5pbWF0aW9uOiBzY2FsZS1pbiAwLjVzIGVhc2Utb3V0O1xufVxuQGtleWZyYW1lcyBib3VuY2Uge1xuXG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1JSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuOCwwLDEsMSk7XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwwLDAuMiwxKTtcbiAgfVxufVxuLmFuaW1hdGUtYm91bmNlIHtcbiAgYW5pbWF0aW9uOiBib3VuY2UgMXMgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIHB1bHNlIHtcblxuICA1MCUge1xuICAgIG9wYWNpdHk6IC41O1xuICB9XG59XG4uYW5pbWF0ZS1wdWxzZSB7XG4gIGFuaW1hdGlvbjogcHVsc2UgMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgc3BpbiB7XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi5hbmltYXRlLXNwaW4ge1xuICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xufVxuLmN1cnNvci1kZWZhdWx0IHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmN1cnNvci1ncmFiIHtcbiAgY3Vyc29yOiBncmFiO1xufVxuLmN1cnNvci1ub3QtYWxsb3dlZCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uY3Vyc29yLXBvaW50ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY3Vyc29yLXdhaXQge1xuICBjdXJzb3I6IHdhaXQ7XG59XG4uc2VsZWN0LW5vbmUge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnJlc2l6ZS1ub25lIHtcbiAgcmVzaXplOiBub25lO1xufVxuLmFwcGVhcmFuY2Utbm9uZSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG59XG4uZ3JpZC1jb2xzLTEge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgoMCwgMWZyKSk7XG59XG4uZ3JpZC1jb2xzLTIge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG59XG4uZ3JpZC1jb2xzLTMge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG59XG4uZmxleC1jb2wge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmZsZXgtd3JhcCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5wbGFjZS1pdGVtcy1jZW50ZXIge1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xufVxuLml0ZW1zLXN0YXJ0IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uaXRlbXMtZW5kIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuLml0ZW1zLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uaXRlbXMtYmFzZWxpbmUge1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG59XG4uaXRlbXMtc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuLmp1c3RpZnktZW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5qdXN0aWZ5LWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmp1c3RpZnktYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbi5nYXAtMCB7XG4gIGdhcDogMHB4O1xufVxuLmdhcC0xIHtcbiAgZ2FwOiAwLjI1cmVtO1xufVxuLmdhcC0xXFwuNSB7XG4gIGdhcDogMC4zNzVyZW07XG59XG4uZ2FwLTEwIHtcbiAgZ2FwOiAyLjVyZW07XG59XG4uZ2FwLTEyIHtcbiAgZ2FwOiAzcmVtO1xufVxuLmdhcC0yIHtcbiAgZ2FwOiAwLjVyZW07XG59XG4uZ2FwLTMge1xuICBnYXA6IDAuNzVyZW07XG59XG4uZ2FwLTQge1xuICBnYXA6IDFyZW07XG59XG4uZ2FwLTUge1xuICBnYXA6IDEuMjVyZW07XG59XG4uZ2FwLTYge1xuICBnYXA6IDEuNXJlbTtcbn1cbi5nYXAtOCB7XG4gIGdhcDogMnJlbTtcbn1cbi5nYXAteC0xMCB7XG4gIC1tb3otY29sdW1uLWdhcDogMi41cmVtO1xuICAgICAgIGNvbHVtbi1nYXA6IDIuNXJlbTtcbn1cbi5nYXAteC0yIHtcbiAgLW1vei1jb2x1bW4tZ2FwOiAwLjVyZW07XG4gICAgICAgY29sdW1uLWdhcDogMC41cmVtO1xufVxuLmdhcC14LTMge1xuICAtbW96LWNvbHVtbi1nYXA6IDAuNzVyZW07XG4gICAgICAgY29sdW1uLWdhcDogMC43NXJlbTtcbn1cbi5nYXAteC02IHtcbiAgLW1vei1jb2x1bW4tZ2FwOiAxLjVyZW07XG4gICAgICAgY29sdW1uLWdhcDogMS41cmVtO1xufVxuLmdhcC14LTgge1xuICAtbW96LWNvbHVtbi1nYXA6IDJyZW07XG4gICAgICAgY29sdW1uLWdhcDogMnJlbTtcbn1cbi5nYXAteS0xIHtcbiAgcm93LWdhcDogMC4yNXJlbTtcbn1cbi5nYXAteS0xMCB7XG4gIHJvdy1nYXA6IDIuNXJlbTtcbn1cbi5nYXAteS0yIHtcbiAgcm93LWdhcDogMC41cmVtO1xufVxuLmdhcC15LTMge1xuICByb3ctZ2FwOiAwLjc1cmVtO1xufVxuLnNwYWNlLXktMCA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcbiAgbWFyZ2luLXRvcDogY2FsYygwcHggKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMHB4ICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XG59XG4uc3BhY2UteS0xID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XG4gIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xuICBtYXJnaW4tdG9wOiBjYWxjKDAuMjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMC4yNXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xufVxuLnNwYWNlLXktMiA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcbiAgbWFyZ2luLXRvcDogY2FsYygwLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMC41cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XG59XG4uc3BhY2UteS0yXFwuNSA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcbiAgbWFyZ2luLXRvcDogY2FsYygwLjYyNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygwLjYyNXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xufVxuLnNwYWNlLXktMyA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcbiAgbWFyZ2luLXRvcDogY2FsYygwLjc1cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKDAuNzVyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTtcbn1cbi5zcGFjZS15LTQgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHtcbiAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XG4gIG1hcmdpbi10b3A6IGNhbGMoMXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygxcmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XG59XG4uc3BhY2UteS01ID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XG4gIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xuICBtYXJnaW4tdG9wOiBjYWxjKDEuMjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMS4yNXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xufVxuLnNwYWNlLXktNiA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xuICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcbiAgbWFyZ2luLXRvcDogY2FsYygxLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMS41cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XG59XG4uc2VsZi1jZW50ZXIge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG4ub3ZlcmZsb3ctYXV0byB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLm92ZXJmbG93LWhpZGRlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ub3ZlcmZsb3cteC1hdXRvIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cbi5vdmVyZmxvdy15LWF1dG8ge1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLnRydW5jYXRlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ud2hpdGVzcGFjZS1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLndoaXRlc3BhY2UtcHJlLXdyYXAge1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG59XG4uYnJlYWstd29yZHMge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuLmJyZWFrLWFsbCB7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbn1cbi5yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cbi5yb3VuZGVkLTJ4bCB7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG59XG4ucm91bmRlZC0zeGwge1xuICBib3JkZXItcmFkaXVzOiAxLjVyZW07XG59XG4ucm91bmRlZC1cXFsxMHB4XFxdIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5yb3VuZGVkLVxcWzE4cHhcXF0ge1xuICBib3JkZXItcmFkaXVzOiAxOHB4O1xufVxuLnJvdW5kZWQtXFxbMjhweFxcXSB7XG4gIGJvcmRlci1yYWRpdXM6IDI4cHg7XG59XG4ucm91bmRlZC1mdWxsIHtcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xufVxuLnJvdW5kZWQtbGcge1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG59XG4ucm91bmRlZC1tZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzc1cmVtO1xufVxuLnJvdW5kZWQtbm9uZSB7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbi5yb3VuZGVkLXNtIHtcbiAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG59XG4ucm91bmRlZC14bCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG59XG4uYm9yZGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG59XG4uYm9yZGVyLTAge1xuICBib3JkZXItd2lkdGg6IDBweDtcbn1cbi5ib3JkZXItMiB7XG4gIGJvcmRlci13aWR0aDogMnB4O1xufVxuLmJvcmRlci00IHtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG59XG4uYm9yZGVyLVxcWzRweFxcXSB7XG4gIGJvcmRlci13aWR0aDogNHB4O1xufVxuLmJvcmRlci1cXFs1cHhcXF0ge1xuICBib3JkZXItd2lkdGg6IDVweDtcbn1cbi5ib3JkZXItYiB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbn1cbi5ib3JkZXItYi0yIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xufVxuLmJvcmRlci10IHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xufVxuLmJvcmRlci1ub25lIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuLmJvcmRlci1cXFtcXCMwMDU1N2ZcXF0ge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigwIDg1IDEyNyAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLVxcW1xcIzAwNzNjZlxcXSB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDAgMTE1IDIwNyAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLVxcW1xcIzAwYTBkZlxcXSB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDAgMTYwIDIyMyAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLVxcW1xcIzAxNTJmZlxcXSB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDEgODIgMjU1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItXFxbXFwjMDE1MmZmXFxdXFwvMjAge1xuICBib3JkZXItY29sb3I6IHJnYigxIDgyIDI1NSAvIDAuMik7XG59XG4uYm9yZGVyLVxcW1xcIzBhNGQ4Y1xcXSB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDEwIDc3IDE0MCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLVxcW1xcIzFhNzNlOFxcXSB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDI2IDExNSAyMzIgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci1cXFtcXCMzNjg3MjdcXF0ge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYig1NCAxMzUgMzkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci1cXFtcXCMzYTNhM2NcXF0ge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYig1OCA1OCA2MCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLVxcW1xcIzY2NlxcXSB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDEwMiAxMDIgMTAyIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItXFxbXFwjNmI2YjZiXFxdIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMTA3IDEwNyAxMDcgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci1cXFtcXCM5OTlcXF0ge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigxNTMgMTUzIDE1MyAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLVxcW1xcI0U1RUFGRlxcXSB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIyOSAyMzQgMjU1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItXFxbXFwjYmJiXFxdIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMTg3IDE4NyAxODcgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci1cXFtcXCNkOWQ5ZDlcXF0ge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigyMTcgMjE3IDIxNyAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLVxcW1xcI2UwZTBlMFxcXSB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIyNCAyMjQgMjI0IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItXFxbXFwjZTVlNWU1XFxdIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjI5IDIyOSAyMjkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci1cXFtcXCNlNWU3ZWJcXF0ge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigyMjkgMjMxIDIzNSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLVxcW1xcI2U4ZTRmMFxcXSB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIzMiAyMjggMjQwIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItXFxbXFwjZThlOGVmXFxdIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjMyIDIzMiAyMzkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci1ibGFjayB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDAgMCAwIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItYmx1ZS0yMDAge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigxOTEgMjE5IDI1NCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLWJsdWUtNTAwIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLWJsdWUtNjAwIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMzcgOTkgMjM1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItYmx1ZS02MDBcXC8yMCB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDM3IDk5IDIzNSAvIDAuMik7XG59XG4uYm9yZGVyLWN1cnJlbnQge1xuICBib3JkZXItY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5ib3JkZXItZW1lcmFsZC01MDBcXC80MCB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDE2IDE4NSAxMjkgLyAwLjQpO1xufVxuLmJvcmRlci1ncmF5LTIwMCB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIyOSAyMzEgMjM1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItZ3JheS0zMDAge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigyMDkgMjEzIDIxOSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLWdyYXktNTAwIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMTA3IDExNCAxMjggLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci1ncmF5LTcwMCB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDU1IDY1IDgxIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItZ3JheS04MDAge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigzMSA0MSA1NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLWdyZWVuLTIwMCB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDE4NyAyNDcgMjA4IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItcmVkLTIwMCB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDI1NCAyMDIgMjAyIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItcmVkLTUwMCB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIzOSA2OCA2OCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLXJlZC01MDBcXC81MCB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIzOSA2OCA2OCAvIDAuNSk7XG59XG4uYm9yZGVyLXJvc2UtNTAwIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjQ0IDYzIDk0IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItc2xhdGUtMTAwIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjQxIDI0NSAyNDkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci1zbGF0ZS0yMDAge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigyMjYgMjMyIDI0MCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLXNsYXRlLTMwMCB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIwMyAyMTMgMjI1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItdHJhbnNwYXJlbnQge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJvcmRlci13aGl0ZSB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItd2hpdGVcXC8xMCB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4xKTtcbn1cbi5ib3JkZXItd2hpdGVcXC8xNSB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4xNSk7XG59XG4uYm9yZGVyLXdoaXRlXFwvMjAge1xuICBib3JkZXItY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMik7XG59XG4uYm9yZGVyLXdoaXRlXFwvMzAge1xuICBib3JkZXItY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMyk7XG59XG4uYm9yZGVyLXllbGxvdy0yMDAge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigyNTQgMjQwIDEzOCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLXllbGxvdy01MDBcXC8zMCB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIzNCAxNzkgOCAvIDAuMyk7XG59XG4uYm9yZGVyLXQtXFxbXFwjMDA1NTdmXFxdIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDAgODUgMTI3IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItdC1cXFtcXCMwYTRkOGNcXF0ge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2IoMTAgNzcgMTQwIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItdC1cXFtcXCMwYTg0ZmZcXF0ge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2IoMTAgMTMyIDI1NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLXQtXFxbXFwjMWE3M2MyXFxdIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDI2IDExNSAxOTQgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci10LVxcW1xcIzM2ODcyN1xcXSB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYig1NCAxMzUgMzkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci10LWJsdWUtNTAwIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDU5IDEzMCAyNDYgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci10LWJsdWUtNjAwIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDM3IDk5IDIzNSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uYm9yZGVyLXQtZ3JheS00MDAge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2IoMTU2IDE2MyAxNzUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmJvcmRlci10LWdyYXktNTAwIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDEwNyAxMTQgMTI4IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItdC10cmFuc3BhcmVudCB7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJvcmRlci10LXdoaXRlIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5ib3JkZXItb3BhY2l0eS0yMCB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDAuMjtcbn1cbi5iZy1cXFtcXCMwMDUyRkZcXF0ge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDgyIDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1cXFtcXCMwMDUyRkZcXF1cXC8yMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDgyIDI1NSAvIDAuMik7XG59XG4uYmctXFxbXFwjMDA1MkZGXFxdXFwvMjUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCA4MiAyNTUgLyAwLjI1KTtcbn1cbi5iZy1cXFtcXCMwMDUyZmZcXF0ge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDgyIDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1cXFtcXCMwMDU1N2ZcXF0ge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDg1IDEyNyAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1cXFtcXCMwMGEwZGZcXF0ge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDE2MCAyMjMgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctXFxbXFwjMDE1MmZmXFxdIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMSA4MiAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctXFxbXFwjMDE1MmZmXFxdXFwvNSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxIDgyIDI1NSAvIDAuMDUpO1xufVxuLmJnLVxcW1xcIzBhMGEwYVxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwIDEwIDEwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcIzBhMTYyOFxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwIDIyIDQwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcIzBhNGQ4Y1xcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwIDc3IDE0MCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1cXFtcXCMwYTg0ZmZcXF0ge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMCAxMzIgMjU1IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcIzBhODRmZlxcXVxcLzI1IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwIDEzMiAyNTUgLyAwLjI1KTtcbn1cbi5iZy1cXFtcXCMwYjU3ZDBcXF0ge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMSA4NyAyMDggLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctXFxbXFwjMGQ2YjZmXFxdIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTMgMTA3IDExMSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1cXFtcXCMxMTk5ZmFcXF0ge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNyAxNTMgMjUwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcIzE2MTYxN1xcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyIDIyIDIzIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcIzFhMWExY1xcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2IDI2IDI4IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcIzFhMWExZVxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2IDI2IDMwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcIzFhMWEyZVxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2IDI2IDQ2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcIzFhNzNjMlxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2IDExNSAxOTQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctXFxbXFwjMjIyMjI0XFxdIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzQgMzQgMzYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctXFxbXFwjMjJjNTVlXFxdIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzQgMTk3IDk0IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcIzJhMmEyZVxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQyIDQyIDQ2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcIzNiM2ZjN1xcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDU5IDYzIDE5OSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1cXFtcXCM3MDMwZjBcXF0ge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMTIgNDggMjQwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcIzcxMzJmNVxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDExMyA1MCAyNDUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctXFxbXFwjRUZGM0Y2XFxdIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5IDI0MyAyNDYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctXFxbXFwjRjVGOEZGXFxdIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1IDI0OCAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctXFxbXFwjZDgyMzJhXFxdIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE2IDM1IDQyIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcI2U1ZTVlNVxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyOSAyMjkgMjI5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcI2U2ZjRmYVxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMCAyNDQgMjUwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcI2U4ZTRmMFxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMiAyMjggMjQwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcI2YwZjRmY1xcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MCAyNDQgMjUyIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcI2YwZjlmZFxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MCAyNDkgMjUzIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcI2YxZjFmMVxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MSAyNDEgMjQxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcI2YzZjBmYVxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MyAyNDAgMjUwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcI2YzZjFlY1xcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MyAyNDEgMjM2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcI2YzZjRmNlxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MyAyNDQgMjQ2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcI2Y0ZjRmNFxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NCAyNDQgMjQ0IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLVxcW1xcI2Y0ZjRmOFxcXSB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NCAyNDQgMjQ4IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLWJsYWNrIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAwIDAgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctYmxhY2tcXC80MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDAgMCAvIDAuNCk7XG59XG4uYmctYmxhY2tcXC82MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDAgMCAvIDAuNik7XG59XG4uYmctYmxhY2tcXC83MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDAgMCAvIDAuNyk7XG59XG4uYmctYmxhY2tcXC84MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDAgMCAvIDAuOCk7XG59XG4uYmctYmx1ZS0xMDAge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTkgMjM0IDI1NCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1ibHVlLTUwIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5IDI0NiAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctYmx1ZS01MDAge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1OSAxMzAgMjQ2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLWJsdWUtNTAwXFwvMTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIDAuMSk7XG59XG4uYmctYmx1ZS02MDAge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzNyA5OSAyMzUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctYmx1ZS02MDBcXC80MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzNyA5OSAyMzUgLyAwLjQpO1xufVxuLmJnLWJsdWUtNjAwXFwvNjAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzcgOTkgMjM1IC8gMC42KTtcbn1cbi5iZy1ibHVlLTkwMCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMwIDU4IDEzOCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1lbWVyYWxkLTUwMFxcLzIwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE2IDE4NSAxMjkgLyAwLjIpO1xufVxuLmJnLWdyYXktMTAwIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQzIDI0NCAyNDYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctZ3JheS0yMDAge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjkgMjMxIDIzNSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1ncmF5LTMwMCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwOSAyMTMgMjE5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLWdyYXktNTAge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDkgMjUwIDI1MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1ncmF5LTcwMCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDU1IDY1IDgxIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLWdyYXktODAwIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzEgNDEgNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctZ3JheS04MDBcXC81MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMSA0MSA1NSAvIDAuNSk7XG59XG4uYmctZ3JheS05MDAge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNyAyNCAzOSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1ncmVlbi0xMDAge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjAgMjUyIDIzMSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1ncmVlbi01MCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MCAyNTMgMjQ0IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLWdyZWVuLTUwMCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDM0IDE5NyA5NCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy1ncmVlbi02MDAge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMiAxNjMgNzQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctcHVycGxlLTYwMCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE0NyA1MSAyMzQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctcmVkLTEwMCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NCAyMjYgMjI2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLXJlZC01MCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NCAyNDIgMjQyIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLXJlZC01MDAge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzkgNjggNjggLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctcmVkLTUwMFxcLzEwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOSA2OCA2OCAvIDAuMSk7XG59XG4uYmctcmVkLTUwMFxcLzE1IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOSA2OCA2OCAvIDAuMTUpO1xufVxuLmJnLXJlZC01MDBcXC8yMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzkgNjggNjggLyAwLjIpO1xufVxuLmJnLXJlZC01MDBcXC83MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzkgNjggNjggLyAwLjcpO1xufVxuLmJnLXJlZC02MDAge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjAgMzggMzggLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uYmctcm9zZS01MDBcXC8xMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDQgNjMgOTQgLyAwLjEpO1xufVxuLmJnLXNsYXRlLTIwMCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNiAyMzIgMjQwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLXRyYW5zcGFyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYmctd2hpdGUge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5iZy13aGl0ZVxcLzEwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4xKTtcbn1cbi5iZy13aGl0ZVxcLzE1IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4xNSk7XG59XG4uYmctd2hpdGVcXC80MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuNCk7XG59XG4uYmctd2hpdGVcXC81IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSk7XG59XG4uYmctd2hpdGVcXC84MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuOCk7XG59XG4uYmctd2hpdGVcXC9cXFswXFwuMDJcXF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjAyKTtcbn1cbi5iZy13aGl0ZVxcL1xcWzBcXC4wM1xcXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMDMpO1xufVxuLmJnLXdoaXRlXFwvXFxbMFxcLjA0XFxdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4wNCk7XG59XG4uYmctd2hpdGVcXC9cXFswXFwuMDZcXF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjA2KTtcbn1cbi5iZy13aGl0ZVxcL1xcWzBcXC4wOFxcXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMDgpO1xufVxuLmJnLXllbGxvdy01MCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NCAyNTIgMjMyIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmJnLXllbGxvdy01MDBcXC8xMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzQgMTc5IDggLyAwLjEpO1xufVxuLmJnLW9wYWNpdHktMTAge1xuICAtLXR3LWJnLW9wYWNpdHk6IDAuMTtcbn1cbi5iZy1ncmFkaWVudC10by1iciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20gcmlnaHQsIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSk7XG59XG4uZnJvbS1ibHVlLTYwMFxcLzEwIHtcbiAgLS10dy1ncmFkaWVudC1mcm9tOiByZ2IoMzcgOTkgMjM1IC8gMC4xKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKTtcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDM3IDk5IDIzNSAvIDApIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcbiAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtZnJvbSksIHZhcigtLXR3LWdyYWRpZW50LXRvKTtcbn1cbi50by1ibHVlLTkwMFxcLzEwIHtcbiAgLS10dy1ncmFkaWVudC10bzogcmdiKDMwIDU4IDEzOCAvIDAuMSkgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xufVxuLmJnLWNvdmVyIHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbi5iZy1jZW50ZXIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG59XG4uYmctbm8tcmVwZWF0IHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbi5maWxsLVxcW1xcIzAwNzNjZlxcXSB7XG4gIGZpbGw6ICMwMDczY2Y7XG59XG4uc3Ryb2tlLXdoaXRlIHtcbiAgc3Ryb2tlOiAjZmZmO1xufVxuLm9iamVjdC1jb250YWluIHtcbiAgLW8tb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi5vYmplY3QtY292ZXIge1xuICAtby1vYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG4ucC0wXFwuNSB7XG4gIHBhZGRpbmc6IDAuMTI1cmVtO1xufVxuLnAtMSB7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG59XG4ucC0xXFwuNSB7XG4gIHBhZGRpbmc6IDAuMzc1cmVtO1xufVxuLnAtMTAge1xuICBwYWRkaW5nOiAyLjVyZW07XG59XG4ucC0yIHtcbiAgcGFkZGluZzogMC41cmVtO1xufVxuLnAtMlxcLjUge1xuICBwYWRkaW5nOiAwLjYyNXJlbTtcbn1cbi5wLTMge1xuICBwYWRkaW5nOiAwLjc1cmVtO1xufVxuLnAtNCB7XG4gIHBhZGRpbmc6IDFyZW07XG59XG4ucC01IHtcbiAgcGFkZGluZzogMS4yNXJlbTtcbn1cbi5wLTYge1xuICBwYWRkaW5nOiAxLjVyZW07XG59XG4ucC03IHtcbiAgcGFkZGluZzogMS43NXJlbTtcbn1cbi5wLTgge1xuICBwYWRkaW5nOiAycmVtO1xufVxuLnAtOSB7XG4gIHBhZGRpbmc6IDIuMjVyZW07XG59XG4ucHgtMCB7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG59XG4ucHgtMSB7XG4gIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC4yNXJlbTtcbn1cbi5weC0xXFwuNSB7XG4gIHBhZGRpbmctbGVmdDogMC4zNzVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuMzc1cmVtO1xufVxuLnB4LTEwIHtcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbn1cbi5weC0xMiB7XG4gIHBhZGRpbmctbGVmdDogM3JlbTtcbiAgcGFkZGluZy1yaWdodDogM3JlbTtcbn1cbi5weC0yIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbn1cbi5weC0zIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtO1xufVxuLnB4LTQge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG59XG4ucHgtNSB7XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbn1cbi5weC02IHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbn1cbi5weC03IHtcbiAgcGFkZGluZy1sZWZ0OiAxLjc1cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjc1cmVtO1xufVxuLnB4LTgge1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG59XG4ucHktMFxcLjUge1xuICBwYWRkaW5nLXRvcDogMC4xMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjEyNXJlbTtcbn1cbi5weS0xIHtcbiAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xufVxuLnB5LTFcXC41IHtcbiAgcGFkZGluZy10b3A6IDAuMzc1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4zNzVyZW07XG59XG4ucHktMTAge1xuICBwYWRkaW5nLXRvcDogMi41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xufVxuLnB5LTEyIHtcbiAgcGFkZGluZy10b3A6IDNyZW07XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtO1xufVxuLnB5LTE2IHtcbiAgcGFkZGluZy10b3A6IDRyZW07XG4gIHBhZGRpbmctYm90dG9tOiA0cmVtO1xufVxuLnB5LTIge1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xufVxuLnB5LTJcXC41IHtcbiAgcGFkZGluZy10b3A6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG59XG4ucHktMjAge1xuICBwYWRkaW5nLXRvcDogNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDVyZW07XG59XG4ucHktMjQge1xuICBwYWRkaW5nLXRvcDogNnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDZyZW07XG59XG4ucHktMyB7XG4gIHBhZGRpbmctdG9wOiAwLjc1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTtcbn1cbi5weS0zXFwuNSB7XG4gIHBhZGRpbmctdG9wOiAwLjg3NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuODc1cmVtO1xufVxuLnB5LTQge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG4ucHktNSB7XG4gIHBhZGRpbmctdG9wOiAxLjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcbn1cbi5weS02IHtcbiAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbn1cbi5weS04IHtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xufVxuLnB5LVxcWzEwcHhcXF0ge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG4ucHktXFxbMTFweFxcXSB7XG4gIHBhZGRpbmctdG9wOiAxMXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTFweDtcbn1cbi5wYi0wIHtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cbi5wYi0xIHtcbiAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG59XG4ucGItMTAge1xuICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xufVxuLnBiLTEyIHtcbiAgcGFkZGluZy1ib3R0b206IDNyZW07XG59XG4ucGItMTYge1xuICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbn1cbi5wYi0yIHtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbn1cbi5wYi0yMCB7XG4gIHBhZGRpbmctYm90dG9tOiA1cmVtO1xufVxuLnBiLTQge1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cbi5wYi04IHtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG59XG4ucGwtMiB7XG4gIHBhZGRpbmctbGVmdDogMC41cmVtO1xufVxuLnBsLTJcXC41IHtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbn1cbi5wbC0zIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtO1xufVxuLnByLTEge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtO1xufVxuLnByLTEwIHtcbiAgcGFkZGluZy1yaWdodDogMi41cmVtO1xufVxuLnByLTExIHtcbiAgcGFkZGluZy1yaWdodDogMi43NXJlbTtcbn1cbi5wci0xMiB7XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW07XG59XG4ucHItMTYge1xuICBwYWRkaW5nLXJpZ2h0OiA0cmVtO1xufVxuLnByLTQge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuLnByLTYge1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG59XG4ucHItNyB7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNzVyZW07XG59XG4ucHItOCB7XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG59XG4ucHItOSB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuMjVyZW07XG59XG4ucHQtMCB7XG4gIHBhZGRpbmctdG9wOiAwcHg7XG59XG4ucHQtMTAge1xuICBwYWRkaW5nLXRvcDogMi41cmVtO1xufVxuLnB0LTEyIHtcbiAgcGFkZGluZy10b3A6IDNyZW07XG59XG4ucHQtMTYge1xuICBwYWRkaW5nLXRvcDogNHJlbTtcbn1cbi5wdC0yIHtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbn1cbi5wdC0yMCB7XG4gIHBhZGRpbmctdG9wOiA1cmVtO1xufVxuLnB0LTMge1xuICBwYWRkaW5nLXRvcDogMC43NXJlbTtcbn1cbi5wdC00IHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG59XG4ucHQtNSB7XG4gIHBhZGRpbmctdG9wOiAxLjI1cmVtO1xufVxuLnB0LTYge1xuICBwYWRkaW5nLXRvcDogMS41cmVtO1xufVxuLnB0LTgge1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbn1cbi5wdC1cXFsxOHZoXFxdIHtcbiAgcGFkZGluZy10b3A6IDE4dmg7XG59XG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYWxpZ24tYmFzZWxpbmUge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4uZm9udC1tb25vIHtcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbn1cbi5mb250LXNhbnMge1xuICBmb250LWZhbWlseTogdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG59XG4uZm9udC1zZXJpZiB7XG4gIGZvbnQtZmFtaWx5OiB1aS1zZXJpZiwgR2VvcmdpYSwgQ2FtYnJpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmO1xufVxuLnRleHQtMnhsIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xufVxuLnRleHQtM3hsIHtcbiAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG59XG4udGV4dC00eGwge1xuICBmb250LXNpemU6IDIuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjVyZW07XG59XG4udGV4dC01eGwge1xuICBmb250LXNpemU6IDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLnRleHQtXFxbMVxcLjM3NXJlbVxcXSB7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07XG59XG4udGV4dC1cXFsxMHB4XFxdIHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuLnRleHQtXFxbMTFweFxcXSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi50ZXh0LVxcWzEycHhcXF0ge1xuICBmb250LXNpemU6IDEycHg7XG59XG4udGV4dC1cXFsxM3B4XFxdIHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLnRleHQtXFxbMTRweFxcXSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi50ZXh0LVxcWzE1cHhcXF0ge1xuICBmb250LXNpemU6IDE1cHg7XG59XG4udGV4dC1cXFsxNlxcLjhweFxcXSB7XG4gIGZvbnQtc2l6ZTogMTYuOHB4O1xufVxuLnRleHQtXFxbMTZweFxcXSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi50ZXh0LVxcWzE3cHhcXF0ge1xuICBmb250LXNpemU6IDE3cHg7XG59XG4udGV4dC1cXFsxOHB4XFxdIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuLnRleHQtXFxbMjBweFxcXSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbi50ZXh0LVxcWzIycHhcXF0ge1xuICBmb250LXNpemU6IDIycHg7XG59XG4udGV4dC1cXFsyNHB4XFxdIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuLnRleHQtXFxbMjZweFxcXSB7XG4gIGZvbnQtc2l6ZTogMjZweDtcbn1cbi50ZXh0LVxcWzI4cHhcXF0ge1xuICBmb250LXNpemU6IDI4cHg7XG59XG4udGV4dC1cXFszMnB4XFxdIHtcbiAgZm9udC1zaXplOiAzMnB4O1xufVxuLnRleHQtXFxbNDBweFxcXSB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbn1cbi50ZXh0LVxcWzQ0cHhcXF0ge1xuICBmb250LXNpemU6IDQ0cHg7XG59XG4udGV4dC1iYXNlIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xufVxuLnRleHQtbGcge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbn1cbi50ZXh0LXNtIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG59XG4udGV4dC14bCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG59XG4udGV4dC14cyB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDFyZW07XG59XG4uZm9udC1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5mb250LW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uZm9udC1ub3JtYWwge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLmZvbnQtc2VtaWJvbGQge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4uY2FwaXRhbGl6ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuLml0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5sZWFkaW5nLTYge1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xufVxuLmxlYWRpbmctXFxbMVxcLjJcXF0ge1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuLmxlYWRpbmctXFxbMVxcLjVcXF0ge1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLmxlYWRpbmctbm9uZSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmxlYWRpbmctcmVsYXhlZCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjYyNTtcbn1cbi5sZWFkaW5nLXNudWcge1xuICBsaW5lLWhlaWdodDogMS4zNzU7XG59XG4ubGVhZGluZy10aWdodCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuLnRyYWNraW5nLXRpZ2h0IHtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtO1xufVxuLnRyYWNraW5nLXdpZGUge1xuICBsZXR0ZXItc3BhY2luZzogMC4wMjVlbTtcbn1cbi50cmFja2luZy13aWRlciB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG59XG4udHJhY2tpbmctd2lkZXN0IHtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xufVxuLnRleHQtXFxbXFwjMDA1MkZGXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMCA4MiAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcIzAwNjc5YVxcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDAgMTAzIDE1NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjMDA3M2NmXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMCAxMTUgMjA3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1cXFtcXCMwMTUyZmZcXF0ge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxIDgyIDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjMEEwQjBEXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTAgMTEgMTMgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcIzBhNGQ4Y1xcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDEwIDc3IDE0MCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjMGI1N2QwXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTEgODcgMjA4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1cXFtcXCMwZDZiNmZcXF0ge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxMyAxMDcgMTExIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1cXFtcXCMxMTFcXF0ge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxNyAxNyAxNyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjMTE5OWZhXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTcgMTUzIDI1MCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjMWExNTIzXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjYgMjEgMzUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcIzFhMTUyM1xcXVxcLzgwIHtcbiAgY29sb3I6IHJnYigyNiAyMSAzNSAvIDAuOCk7XG59XG4udGV4dC1cXFtcXCMxYTFhMWFcXF0ge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigyNiAyNiAyNiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjMWE3M2U4XFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjYgMTE1IDIzMiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjMWYxZjFmXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMzEgMzEgMzEgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcIzIwMjEyNFxcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDMyIDMzIDM2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1cXFtcXCMyMjJcXF0ge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigzNCAzNCAzNCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjMmEyYTM4XFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoNDIgNDIgNTYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcIzJkMmQyZFxcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDQ1IDQ1IDQ1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1cXFtcXCMzMzNcXF0ge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYig1MSA1MSA1MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjM2EzYTUyXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoNTggNTggODIgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcIzQxOTJmM1xcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDY1IDE0NiAyNDMgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcIzQ0NFxcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDY4IDY4IDY4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1cXFtcXCM1NTVcXF0ge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYig4NSA4NSA4NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjNUI2MTZFXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoOTEgOTcgMTEwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1cXFtcXCM1RjYzNjhcXF0ge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYig5NSA5OSAxMDQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcIzY2NlxcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDEwMiAxMDIgMTAyIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1cXFtcXCM2YjY1NzhcXF0ge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxMDcgMTAxIDEyMCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjNmI2YjdiXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTA3IDEwNyAxMjMgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcIzcxMzJmNVxcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDExMyA1MCAyNDUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcIzc3N1xcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDExOSAxMTkgMTE5IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1cXFtcXCM4Njg2OGJcXF0ge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxMzQgMTM0IDEzOSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjYWFhXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTcwIDE3MCAxNzAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcI2I4MjI0ZlxcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDE4NCAzNCA3OSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtXFxbXFwjY2NjXFxdIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjA0IDIwNCAyMDQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LVxcW1xcI2VhYjMwOFxcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDIzNCAxNzkgOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtYmxhY2sge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigwIDAgMCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtYmx1ZS0zMDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxNDcgMTk3IDI1MyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtYmx1ZS00MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYig5NiAxNjUgMjUwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1ibHVlLTQwMFxcLzkwIHtcbiAgY29sb3I6IHJnYig5NiAxNjUgMjUwIC8gMC45KTtcbn1cbi50ZXh0LWJsdWUtNTAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtYmx1ZS02MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigzNyA5OSAyMzUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LWJsdWUtNzAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjkgNzggMjE2IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1ibHVlLTgwMCB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDMwIDY0IDE3NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtZW1lcmFsZC0yMDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxNjcgMjQzIDIwOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtZ3JheS0zMDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigyMDkgMjEzIDIxOSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtZ3JheS00MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxNTYgMTYzIDE3NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtZ3JheS01MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxMDcgMTE0IDEyOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtZ3JheS02MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYig3NSA4NSA5OSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtZ3JheS03MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYig1NSA2NSA4MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtZ3JheS04MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigzMSA0MSA1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtZ3JheS05MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxNyAyNCAzOSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtZ3JlZW4tNDAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoNzQgMjIyIDEyOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtZ3JlZW4tNTAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMzQgMTk3IDk0IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1ncmVlbi02MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigyMiAxNjMgNzQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LWdyZWVuLTcwMCB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDIxIDEyOCA2MSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtZ3JlZW4tODAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjIgMTAxIDUyIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1yZWQtMzAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjUyIDE2NSAxNjUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LXJlZC00MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigyNDggMTEzIDExMyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtcmVkLTQwMFxcLzcwIHtcbiAgY29sb3I6IHJnYigyNDggMTEzIDExMyAvIDAuNyk7XG59XG4udGV4dC1yZWQtNTAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjM5IDY4IDY4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1yZWQtNjAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjIwIDM4IDM4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1yZWQtNzAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTg1IDI4IDI4IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1yZWQtODAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTUzIDI3IDI3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1yb3NlLTQwMCB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDI1MSAxMTMgMTMzIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1zbGF0ZS0zMDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigyMDMgMjEzIDIyNSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtc2xhdGUtNDAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTQ4IDE2MyAxODQgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi50ZXh0LXNsYXRlLTUwMCB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDEwMCAxMTYgMTM5IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC1zbGF0ZS05MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxNSAyMyA0MiAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtd2hpdGUge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQtd2hpdGVcXC8xNSB7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjE1KTtcbn1cbi50ZXh0LXdoaXRlXFwvMjAge1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4yKTtcbn1cbi50ZXh0LXdoaXRlXFwvMjUge1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4yNSk7XG59XG4udGV4dC13aGl0ZVxcLzMwIHtcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMyk7XG59XG4udGV4dC13aGl0ZVxcLzM1IHtcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMzUpO1xufVxuLnRleHQtd2hpdGVcXC80MCB7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjQpO1xufVxuLnRleHQtd2hpdGVcXC80NSB7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjQ1KTtcbn1cbi50ZXh0LXdoaXRlXFwvNTAge1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC41KTtcbn1cbi50ZXh0LXdoaXRlXFwvNjAge1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC42KTtcbn1cbi50ZXh0LXdoaXRlXFwvNzAge1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC43KTtcbn1cbi50ZXh0LXdoaXRlXFwvODAge1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC44KTtcbn1cbi50ZXh0LXdoaXRlXFwvODUge1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC44NSk7XG59XG4udGV4dC13aGl0ZVxcLzkwIHtcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuOSk7XG59XG4udGV4dC15ZWxsb3ctNDAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjUwIDIwNCAyMSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnRleHQteWVsbG93LTcwMCB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDE2MSA5OCA3IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udGV4dC15ZWxsb3ctODAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTMzIDc3IDE0IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4udW5kZXJsaW5lIHtcbiAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTtcbn1cbi5wbGFjZWhvbGRlci1ncmF5LTUwMDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIC0tdHctcGxhY2Vob2xkZXItb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxMDcgMTE0IDEyOCAvIHZhcigtLXR3LXBsYWNlaG9sZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5wbGFjZWhvbGRlci1ncmF5LTUwMDo6cGxhY2Vob2xkZXIge1xuICAtLXR3LXBsYWNlaG9sZGVyLW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTA3IDExNCAxMjggLyB2YXIoLS10dy1wbGFjZWhvbGRlci1vcGFjaXR5LCAxKSk7XG59XG4ucGxhY2Vob2xkZXItZ3JheS02MDA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAtLXR3LXBsYWNlaG9sZGVyLW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoNzUgODUgOTkgLyB2YXIoLS10dy1wbGFjZWhvbGRlci1vcGFjaXR5LCAxKSk7XG59XG4ucGxhY2Vob2xkZXItZ3JheS02MDA6OnBsYWNlaG9sZGVyIHtcbiAgLS10dy1wbGFjZWhvbGRlci1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDc1IDg1IDk5IC8gdmFyKC0tdHctcGxhY2Vob2xkZXItb3BhY2l0eSwgMSkpO1xufVxuLnBsYWNlaG9sZGVyLXdoaXRlXFwvMjA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4yKTtcbn1cbi5wbGFjZWhvbGRlci13aGl0ZVxcLzIwOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjIpO1xufVxuLnBsYWNlaG9sZGVyLXdoaXRlXFwvNDA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC40KTtcbn1cbi5wbGFjZWhvbGRlci13aGl0ZVxcLzQwOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjQpO1xufVxuLmFjY2VudC1cXFtcXCMwMGEwZGZcXF0ge1xuICBhY2NlbnQtY29sb3I6ICMwMGEwZGY7XG59XG4uYWNjZW50LVxcW1xcIzBhNGQ4Y1xcXSB7XG4gIGFjY2VudC1jb2xvcjogIzBhNGQ4Yztcbn1cbi5hY2NlbnQtYmxhY2sge1xuICBhY2NlbnQtY29sb3I6ICMwMDA7XG59XG4uYWNjZW50LXJlZC01MDAge1xuICBhY2NlbnQtY29sb3I6ICNlZjQ0NDQ7XG59XG4uYWNjZW50LXdoaXRlIHtcbiAgYWNjZW50LWNvbG9yOiAjZmZmO1xufVxuLm9wYWNpdHktMCB7XG4gIG9wYWNpdHk6IDA7XG59XG4ub3BhY2l0eS0xMDAge1xuICBvcGFjaXR5OiAxO1xufVxuLm9wYWNpdHktNDAge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4ub3BhY2l0eS01MCB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5vcGFjaXR5LTYwIHtcbiAgb3BhY2l0eTogMC42O1xufVxuLnNoYWRvdy0yeGwge1xuICAtLXR3LXNoYWRvdzogMCAyNXB4IDUwcHggLTEycHggcmdiKDAgMCAwIC8gMC4yNSk7XG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMjVweCA1MHB4IC0xMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XG4gIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXNoYWRvdyk7XG59XG4uc2hhZG93LWxnIHtcbiAgLS10dy1zaGFkb3c6IDAgMTBweCAxNXB4IC0zcHggcmdiKDAgMCAwIC8gMC4xKSwgMCA0cHggNnB4IC00cHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAxMHB4IDE1cHggLTNweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLCAwIDRweCA2cHggLTRweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO1xuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xufVxuLnNoYWRvdy1ub25lIHtcbiAgLS10dy1zaGFkb3c6IDAgMCAjMDAwMDtcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAwICMwMDAwO1xuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xufVxuLnNoYWRvdy1zbSB7XG4gIC0tdHctc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTtcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAxcHggMnB4IDAgdmFyKC0tdHctc2hhZG93LWNvbG9yKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcbn1cbi5zaGFkb3cteGwge1xuICAtLXR3LXNoYWRvdzogMCAyMHB4IDI1cHggLTVweCByZ2IoMCAwIDAgLyAwLjEpLCAwIDhweCAxMHB4IC02cHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAyMHB4IDI1cHggLTVweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLCAwIDhweCAxMHB4IC02cHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcbn1cbi5vdXRsaW5lLW5vbmUge1xuICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG4ub3V0bGluZSB7XG4gIG91dGxpbmUtc3R5bGU6IHNvbGlkO1xufVxuLnJpbmcge1xuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpIHZhcigtLXR3LXJpbmctb2Zmc2V0LWNvbG9yKTtcbiAgLS10dy1yaW5nLXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgY2FsYygzcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpIHZhcigtLXR3LXJpbmctY29sb3IpO1xuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXNoYWRvdywgMCAwICMwMDAwKTtcbn1cbi5yaW5nLTEge1xuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpIHZhcigtLXR3LXJpbmctb2Zmc2V0LWNvbG9yKTtcbiAgLS10dy1yaW5nLXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgY2FsYygxcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpIHZhcigtLXR3LXJpbmctY29sb3IpO1xuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXNoYWRvdywgMCAwICMwMDAwKTtcbn1cbi5yaW5nLVxcW1xcIzc0Nzc3NVxcXSB7XG4gIC0tdHctcmluZy1vcGFjaXR5OiAxO1xuICAtLXR3LXJpbmctY29sb3I6IHJnYigxMTYgMTE5IDExNyAvIHZhcigtLXR3LXJpbmctb3BhY2l0eSwgMSkpO1xufVxuLnJpbmctcmVkLTUwMCB7XG4gIC0tdHctcmluZy1vcGFjaXR5OiAxO1xuICAtLXR3LXJpbmctY29sb3I6IHJnYigyMzkgNjggNjggLyB2YXIoLS10dy1yaW5nLW9wYWNpdHksIDEpKTtcbn1cbi5ibHVyLW1kIHtcbiAgLS10dy1ibHVyOiBibHVyKDEycHgpO1xuICBmaWx0ZXI6IHZhcigtLXR3LWJsdXIpIHZhcigtLXR3LWJyaWdodG5lc3MpIHZhcigtLXR3LWNvbnRyYXN0KSB2YXIoLS10dy1ncmF5c2NhbGUpIHZhcigtLXR3LWh1ZS1yb3RhdGUpIHZhcigtLXR3LWludmVydCkgdmFyKC0tdHctc2F0dXJhdGUpIHZhcigtLXR3LXNlcGlhKSB2YXIoLS10dy1kcm9wLXNoYWRvdyk7XG59XG4uYmx1ci1zbSB7XG4gIC0tdHctYmx1cjogYmx1cig0cHgpO1xuICBmaWx0ZXI6IHZhcigtLXR3LWJsdXIpIHZhcigtLXR3LWJyaWdodG5lc3MpIHZhcigtLXR3LWNvbnRyYXN0KSB2YXIoLS10dy1ncmF5c2NhbGUpIHZhcigtLXR3LWh1ZS1yb3RhdGUpIHZhcigtLXR3LWludmVydCkgdmFyKC0tdHctc2F0dXJhdGUpIHZhcigtLXR3LXNlcGlhKSB2YXIoLS10dy1kcm9wLXNoYWRvdyk7XG59XG4uZmlsdGVyIHtcbiAgZmlsdGVyOiB2YXIoLS10dy1ibHVyKSB2YXIoLS10dy1icmlnaHRuZXNzKSB2YXIoLS10dy1jb250cmFzdCkgdmFyKC0tdHctZ3JheXNjYWxlKSB2YXIoLS10dy1odWUtcm90YXRlKSB2YXIoLS10dy1pbnZlcnQpIHZhcigtLXR3LXNhdHVyYXRlKSB2YXIoLS10dy1zZXBpYSkgdmFyKC0tdHctZHJvcC1zaGFkb3cpO1xufVxuLmJhY2tkcm9wLWJsdXIge1xuICAtLXR3LWJhY2tkcm9wLWJsdXI6IGJsdXIoOHB4KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiB2YXIoLS10dy1iYWNrZHJvcC1ibHVyKSB2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzKSB2YXIoLS10dy1iYWNrZHJvcC1jb250cmFzdCkgdmFyKC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlKSB2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlKSB2YXIoLS10dy1iYWNrZHJvcC1pbnZlcnQpIHZhcigtLXR3LWJhY2tkcm9wLW9wYWNpdHkpIHZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlKSB2YXIoLS10dy1iYWNrZHJvcC1zZXBpYSk7XG59XG4uYmFja2Ryb3AtYmx1ci1zbSB7XG4gIC0tdHctYmFja2Ryb3AtYmx1cjogYmx1cig0cHgpO1xuICBiYWNrZHJvcC1maWx0ZXI6IHZhcigtLXR3LWJhY2tkcm9wLWJsdXIpIHZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MpIHZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0KSB2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUpIHZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUpIHZhcigtLXR3LWJhY2tkcm9wLWludmVydCkgdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSkgdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUpIHZhcigtLXR3LWJhY2tkcm9wLXNlcGlhKTtcbn1cbi50cmFuc2l0aW9uIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgZmlsdGVyLCBiYWNrZHJvcC1maWx0ZXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcbn1cbi50cmFuc2l0aW9uLWFsbCB7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zO1xufVxuLnRyYW5zaXRpb24tY29sb3JzIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2U7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcbn1cbi50cmFuc2l0aW9uLW9wYWNpdHkge1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XG59XG4udHJhbnNpdGlvbi10cmFuc2Zvcm0ge1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcbn1cbi5kZWxheS0yMDAge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAyMDBtcztcbn1cbi5kdXJhdGlvbi0xNTAge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcbn1cbi5kdXJhdGlvbi0yMDAge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyMDBtcztcbn1cbi5kdXJhdGlvbi0zMDAge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAzMDBtcztcbn1cbi5kdXJhdGlvbi01MDAge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbn1cbi5kdXJhdGlvbi03MDAge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3MDBtcztcbn1cbi5lYXNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLmVhc2Utb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xufVxuOnJvb3Qge1xuICAgIC0tYnJhbmQtYmx1ZTogIzAxNTJmZjtcbiAgICAtLWNkYy1ibHVlOiAjMTE5OWZhO1xuICAgIC0tY2RjLWRhcms6ICMwYTE2Mjg7XG4gICAgLS1jZGMtaGVyby1ncmFkaWVudDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2U4ZTFmZiAwJSwgI2Q2ZWNmZiA0MCUsICNmZmZmZmYgMTAwJSk7XG4gIH1cbi8qIE1vYmlsZSB2aWV3cG9ydCBoZWlnaHQgZml4ICovXG4uaC1zY3JlZW4tbW9iaWxlIHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIGhlaWdodDogMTAwZHZoOyAvKiBEeW5hbWljIHZpZXdwb3J0IGhlaWdodCBmb3IgbW9iaWxlICovXG4gIH1cbi5taW4taC1zY3JlZW4tbW9iaWxlIHtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBtaW4taGVpZ2h0OiAxMDBkdmg7IC8qIER5bmFtaWMgdmlld3BvcnQgaGVpZ2h0IGZvciBtb2JpbGUgKi9cbiAgfVxuaHRtbCB7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBtaW4taGVpZ2h0OiAxMDBkdmg7XG4gICAgbWluLWhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcbiAgfVxuYm9keSB7XG4gICAgZm9udC1mYW1pbHk6IEludGVyLCB1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLFxuICAgICAgUm9ib3RvLCBIZWx2ZXRpY2EgTmV1ZSwgQXJpYWwsIFwiTm90byBTYW5zXCIsIFwiQXBwbGUgQ29sb3IgRW1vamlcIixcbiAgICAgIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIG1pbi1oZWlnaHQ6IDEwMGR2aDtcbiAgICBtaW4taGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAvKiBQcmV2ZW50IGlPUyBydWJiZXItYmFuZCBvdmVyc2Nyb2xsIGZyb20gcmV2ZWFsaW5nIGEgZGlmZmVyZW50IGNvbG9yICovXG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcbiAgfVxuYm9keS50aGVtZS1nb29nbGUge1xuICAgIGJhY2tncm91bmQ6ICNmMGY0Zjk7XG4gIH1cbiNyb290IHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIG1pbi1oZWlnaHQ6IDEwMGR2aDtcbiAgICBtaW4taGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xuICB9XG4vKiBHb29nbGUgU2FucyBmb250IGZhbWlseSAtIHVzZXMgc3lzdGVtIGZvbnQgaWYgYXZhaWxhYmxlLCBmYWxscyBiYWNrIHRvIFJvYm90byAqL1xuLyogR3JpZCBwYXR0ZXJuIGJhY2tncm91bmQgKi9cbkBrZXlmcmFtZXMgZ3JpZC1tb3ZlIHtcbiAgICAwJSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTBweCA1MHB4O1xuICAgIH1cbiAgfVxuLyogU2NhbmxpbmVzIGVmZmVjdCAqL1xuQGtleWZyYW1lcyBzY2FubGluZXMge1xuICAgIDAlIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDEwMCU7XG4gICAgfVxuICB9XG4vKiBHbGl0Y2ggdGV4dCBlZmZlY3QgKi9cbkBrZXlmcmFtZXMgZ2xpdGNoIHtcbiAgICAwJSxcbiAgICA5MCUsXG4gICAgMTAwJSB7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggcmdiYSgzNCwgMTk3LCA5NCwgMC44KSxcbiAgICAgICAgMCAwIDIwcHggcmdiYSgzNCwgMTk3LCA5NCwgMC41KSwgMCAwIDMwcHggcmdiYSgzNCwgMTk3LCA5NCwgMC4zKTtcbiAgICB9XG4gICAgOTIlIHtcbiAgICAgIHRleHQtc2hhZG93OiAtMnB4IDAgMTBweCByZ2JhKDM0LCAxOTcsIDk0LCAwLjgpLFxuICAgICAgICAycHggMCAyMHB4IHJnYmEoNiwgMTgyLCAyMTIsIDAuOCksIDAgMCAzMHB4IHJnYmEoMzQsIDE5NywgOTQsIDAuMyk7XG4gICAgfVxuICAgIDk0JSB7XG4gICAgICB0ZXh0LXNoYWRvdzogMnB4IDAgMTBweCByZ2JhKDM0LCAxOTcsIDk0LCAwLjgpLFxuICAgICAgICAtMnB4IDAgMjBweCByZ2JhKDYsIDE4MiwgMjEyLCAwLjgpLCAwIDAgMzBweCByZ2JhKDM0LCAxOTcsIDk0LCAwLjMpO1xuICAgIH1cbiAgfVxuLyogQ1JNIOKAlCBwb2xpc2hlZCBwaXRjaC1ibGFjayB0aGVtZSAqL1xuLmNybS1zdXJmYWNlIHtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAwIDAgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbn1cbi5jcm0taGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICBwYWRkaW5nLXRvcDogMC44NzVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjg3NXJlbTtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5jcm0tdGl0bGUge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDI1ZW07XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjgpO1xufVxuLmNybS1zdWJ0aXRsZSB7XG4gIG1hcmdpbi10b3A6IDAuMTI1cmVtO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4zKTtcbn1cbi5jcm0tZXhwYW5kYWJsZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMDMpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLCB0ZXh0LWRlY29yYXRpb24tY29sb3IsIGZpbGwsIHN0cm9rZTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zO1xufVxuLyogQnV0dG9ucyAqL1xuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XG59XG4uYnRuOmRpc2FibGVkIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgb3BhY2l0eTogMC40O1xufVxuLmJ0bi1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuNik7XG59XG4uYnRuLW91dGxpbmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjA2KTtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5idG4tb3V0bGluZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB9XG4uYnRuLWdob3N0IHtcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuNSk7XG59XG4uYnRuLWdob3N0OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4wNCk7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4uYnRuLWdyZWVuIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDAgMCAwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4uYnRuLWdyZWVuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC45KTtcbn1cbi5idG4tZ3JlZW46YWN0aXZlIHtcbiAgLS10dy1zY2FsZS14OiAwLjk4O1xuICAtLXR3LXNjYWxlLXk6IDAuOTg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xufVxuLmJ0bi1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4xKTtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5idG4tYmx1ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMTUpO1xufVxuLmJ0bi1ibHVlOmFjdGl2ZSB7XG4gIC0tdHctc2NhbGUteDogMC45ODtcbiAgLS10dy1zY2FsZS15OiAwLjk4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcbn1cbi8qIFNlZ21lbnRlZCB0b2dnbGUgKi9cbi5zZWdtZW50ZWQge1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogMC41cmVtO1xufVxuLnNlZ21lbnRlZC1idG4ge1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLnNlZ21lbnRlZC1vbi1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMSk7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG4uc2VnbWVudGVkLW9mZiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC40KTtcbn1cbi5zZWdtZW50ZWQtb2ZmOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4wNCk7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjYpO1xufVxuLnNlZ21lbnRlZC1vZmYge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgfVxuLyogQ2FyZHMgKi9cbi5jcm0tY2FyZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgMCAwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG59XG5Aa2V5ZnJhbWVzIGNybS1zbGlkZS1kb3duIHtcbiAgICBmcm9tIHtcbiAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgbWF4LWhlaWdodDogNTAwcHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuLmNybS1ib2R5IHtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgcGFkZGluZy10b3A6IDAuNzVyZW07XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgYW5pbWF0aW9uOiBjcm0tc2xpZGUtZG93biAwLjI1cyBlYXNlLW91dDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogSGlkZSBzY3JvbGxiYXIgZXZlcnl3aGVyZSBpbiBhZG1pbiBwYW5lbCB3aGlsZSBrZWVwaW5nIHNjcm9sbCBmdW5jdGlvbmFsaXR5ICovXG4ubm8tc2Nyb2xsYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuLm5vLXNjcm9sbGJhciB7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgfVxuLlxcW2FuaW1hdGlvbi1kZWxheVxcOi0wXFwuMTVzXFxdIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNXM7XG59XG4uXFxbYW5pbWF0aW9uLWRlbGF5XFw6LTBcXC4zc1xcXSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuM3M7XG59XG5cbi8qIENvaW5iYXNlIGZvbnRzIChidW5kbGVkIGZyb20gc3JjL2Fzc2V0cy9XT0ZGMikgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJDb2luYmFzZSBTYW5zXCI7XG4gIHNyYzogdXJsKFwiL3NyYy9hc3NldHMvV09GRjIvQ29pbmJhc2UtU2Fucy9Db2luYmFzZV9TYW5zLVJlZ3VsYXItd2ViLTEuMzIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNvaW5iYXNlIFNhbnNcIjtcbiAgc3JjOiB1cmwoXCIvc3JjL2Fzc2V0cy9XT0ZGMi9Db2luYmFzZS1TYW5zL0NvaW5iYXNlX1NhbnMtUmVndWxhcl9JdGFsaWMtd2ViLTEuMzIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNvaW5iYXNlIFNhbnNcIjtcbiAgc3JjOiB1cmwoXCIvc3JjL2Fzc2V0cy9XT0ZGMi9Db2luYmFzZS1TYW5zL0NvaW5iYXNlX1NhbnMtTWVkaXVtLXdlYi0xLjMyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJDb2luYmFzZSBTYW5zXCI7XG4gIHNyYzogdXJsKFwiL3NyYy9hc3NldHMvV09GRjIvQ29pbmJhc2UtU2Fucy9Db2luYmFzZV9TYW5zLUJvbGQtd2ViLTEuMzIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQ29pbmJhc2UgVGV4dFwiO1xuICBzcmM6IHVybChcIi9zcmMvYXNzZXRzL1dPRkYyL0NvaW5iYXNlLVRleHQvQ29pbmJhc2VfVGV4dC1SZWd1bGFyLXdlYi0xLjMyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJDb2luYmFzZSBUZXh0XCI7XG4gIHNyYzogdXJsKFwiL3NyYy9hc3NldHMvV09GRjIvQ29pbmJhc2UtVGV4dC9Db2luYmFzZV9UZXh0LU1lZGl1bS13ZWItMS4zMi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQ29pbmJhc2UgVGV4dFwiO1xuICBzcmM6IHVybChcIi9zcmMvYXNzZXRzL1dPRkYyL0NvaW5iYXNlLVRleHQvQ29pbmJhc2VfVGV4dC1Cb2xkLXdlYi0xLjMyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNvaW5iYXNlIERpc3BsYXlcIjtcbiAgc3JjOiB1cmwoXCIvc3JjL2Fzc2V0cy9XT0ZGMi9Db2luYmFzZS1EaXNwbGF5L0NvaW5iYXNlX0Rpc3BsYXktUmVndWxhci13ZWItMS4zMi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQ29pbmJhc2UgRGlzcGxheVwiO1xuICBzcmM6IHVybChcIi9zcmMvYXNzZXRzL1dPRkYyL0NvaW5iYXNlLURpc3BsYXkvQ29pbmJhc2VfRGlzcGxheS1NZWRpdW0td2ViLTEuMzIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNvaW5iYXNlIERpc3BsYXlcIjtcbiAgc3JjOiB1cmwoXCIvc3JjL2Fzc2V0cy9XT0ZGMi9Db2luYmFzZS1EaXNwbGF5L0NvaW5iYXNlX0Rpc3BsYXktQm9sZC13ZWItMS4zMi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJDb2luYmFzZSBNb25vXCI7XG4gIHNyYzogdXJsKFwiL3NyYy9hc3NldHMvV09GRjIvQ29pbmJhc2UtTW9uby9Db2luYmFzZV9Nb25vLVJlZ3VsYXItd2ViLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJDb2luYmFzZSBNb25vXCI7XG4gIHNyYzogdXJsKFwiL3NyYy9hc3NldHMvV09GRjIvQ29pbmJhc2UtTW9uby9Db2luYmFzZV9Nb25vLU1lZGl1bS13ZWIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNvaW5iYXNlIE1vbm9cIjtcbiAgc3JjOiB1cmwoXCIvc3JjL2Fzc2V0cy9XT0ZGMi9Db2luYmFzZS1Nb25vL0NvaW5iYXNlX01vbm8tQm9sZC13ZWIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuLmZpbGVcXDptci00OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cbi5maWxlXFw6Y3Vyc29yLXBvaW50ZXI6OmZpbGUtc2VsZWN0b3ItYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmZpbGVcXDpyb3VuZGVkLWZ1bGw6OmZpbGUtc2VsZWN0b3ItYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xufVxuLmZpbGVcXDpib3JkZXItMDo6ZmlsZS1zZWxlY3Rvci1idXR0b24ge1xuICBib3JkZXItd2lkdGg6IDBweDtcbn1cbi5maWxlXFw6Ymctd2hpdGVcXC8xMDo6ZmlsZS1zZWxlY3Rvci1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjEpO1xufVxuLmZpbGVcXDpweC00OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cbi5maWxlXFw6cHktMjo6ZmlsZS1zZWxlY3Rvci1idXR0b24ge1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xufVxuLmZpbGVcXDp0ZXh0LXNtOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xufVxuLmZpbGVcXDpmb250LXNlbWlib2xkOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZmlsZVxcOnRleHQtd2hpdGU6OmZpbGUtc2VsZWN0b3ItYnV0dG9uIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5wbGFjZWhvbGRlclxcOnRleHQtXFxbXFwjNmI2NTc4XFxdOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTA3IDEwMSAxMjAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5wbGFjZWhvbGRlclxcOnRleHQtXFxbXFwjNmI2NTc4XFxdOjpwbGFjZWhvbGRlciB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDEwNyAxMDEgMTIwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4ucGxhY2Vob2xkZXJcXDp0ZXh0LVxcW1xcIzZiNmI3YlxcXTo6LW1vei1wbGFjZWhvbGRlciB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDEwNyAxMDcgMTIzIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4ucGxhY2Vob2xkZXJcXDp0ZXh0LVxcW1xcIzZiNmI3YlxcXTo6cGxhY2Vob2xkZXIge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxMDcgMTA3IDEyMyAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnBsYWNlaG9sZGVyXFw6dGV4dC1cXFtcXCM4Njg2OGJcXF06Oi1tb3otcGxhY2Vob2xkZXIge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxMzQgMTM0IDEzOSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnBsYWNlaG9sZGVyXFw6dGV4dC1cXFtcXCM4Njg2OGJcXF06OnBsYWNlaG9sZGVyIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTM0IDEzNCAxMzkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5wbGFjZWhvbGRlclxcOnRleHQtZ3JheS00MDA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxNTYgMTYzIDE3NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnBsYWNlaG9sZGVyXFw6dGV4dC1ncmF5LTQwMDo6cGxhY2Vob2xkZXIge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxNTYgMTYzIDE3NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnBsYWNlaG9sZGVyXFw6dGV4dC1zbGF0ZS01MDA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxMDAgMTE2IDEzOSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLnBsYWNlaG9sZGVyXFw6dGV4dC1zbGF0ZS01MDA6OnBsYWNlaG9sZGVyIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTAwIDExNiAxMzkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5wbGFjZWhvbGRlclxcOnRleHQtd2hpdGVcXC8zMDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjMpO1xufVxuLnBsYWNlaG9sZGVyXFw6dGV4dC13aGl0ZVxcLzMwOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjMpO1xufVxuLmhvdmVyXFw6Ym9yZGVyLVxcW1xcIzBkNmI2ZlxcXTpob3ZlciB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDEzIDEwNyAxMTEgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6Ym9yZGVyLVxcW1xcIzBkNmI2ZlxcXVxcLzQwOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMTMgMTA3IDExMSAvIDAuNCk7XG59XG4uaG92ZXJcXDpib3JkZXItXFxbXFwjMTE5OWZhXFxdOmhvdmVyIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMTcgMTUzIDI1MCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpib3JkZXItXFxbXFwjNzEzMmY1XFxdXFwvNDA6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHJnYigxMTMgNTAgMjQ1IC8gMC40KTtcbn1cbi5ob3ZlclxcOmJvcmRlci1cXFtcXCM3MTMyZjVcXF1cXC81MDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDExMyA1MCAyNDUgLyAwLjUpO1xufVxuLmhvdmVyXFw6Ym9yZGVyLWdyYXktMzAwOmhvdmVyIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjA5IDIxMyAyMTkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6Ym9yZGVyLWdyYXktNjAwOmhvdmVyIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoNzUgODUgOTkgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6Ym9yZGVyLXdoaXRlXFwvMjA6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMik7XG59XG4uaG92ZXJcXDpib3JkZXItd2hpdGVcXC8zMDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4zKTtcbn1cbi5ob3ZlclxcOmJvcmRlci13aGl0ZVxcL1xcWzBcXC4xNVxcXTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4xNSk7XG59XG4uaG92ZXJcXDpiZy1cXFtcXCMwMDNFQ0JcXF06aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDYyIDIwMyAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOmJnLVxcW1xcIzAwNDQ2OFxcXTpob3ZlciB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgNjggMTA0IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6YmctXFxbXFwjMDA0NmUwXFxdOmhvdmVyIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCA3MCAyMjQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1cXFtcXCMwMTQ2ZTBcXF06aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxIDcwIDIyNCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOmJnLVxcW1xcIzA4M2M2ZVxcXTpob3ZlciB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDggNjAgMTEwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6YmctXFxbXFwjMGE0ZDhjXFxdXFwvNTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMCA3NyAxNDAgLyAwLjA1KTtcbn1cbi5ob3ZlclxcOmJnLVxcW1xcIzBhNzhlOFxcXTpob3ZlciB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwIDEyMCAyMzIgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1cXFtcXCMwZTRlYjVcXF06aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNCA3OCAxODEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1cXFtcXCMwZjg2ZTBcXF06aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNSAxMzQgMjI0IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6YmctXFxbXFwjMTU1ZmEwXFxdOmhvdmVyIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjEgOTUgMTYwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6YmctXFxbXFwjM2EzYTNlXFxdOmhvdmVyIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTggNTggNjIgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1cXFtcXCM0YTRlZDZcXF06aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3NCA3OCAyMTQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1cXFtcXCNiODFkMjNcXF06aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxODQgMjkgMzUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1cXFtcXCNlOGU0ZjBcXF06aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzIgMjI4IDI0MCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOmJnLVxcW1xcI2U4ZThlZlxcXTpob3ZlciB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMiAyMzIgMjM5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6YmctXFxbXFwjZWRlOGZlXFxdOmhvdmVyIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM3IDIzMiAyNTQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1cXFtcXCNmM2YwZmFcXF06aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMgMjQwIDI1MCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOmJnLVxcW1xcI2Y0ZjRmOFxcXTpob3ZlciB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NCAyNDQgMjQ4IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6YmctXFxbXFwjZjVmOGZkXFxdOmhvdmVyIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1IDI0OCAyNTMgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1ibHVlLTUwOmhvdmVyIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5IDI0NiAyNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1ibHVlLTUwXFwvNTA6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5IDI0NiAyNTUgLyAwLjUpO1xufVxuLmhvdmVyXFw6YmctYmx1ZS03MDA6aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyOSA3OCAyMTYgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1ncmF5LTEwMDpob3ZlciB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MyAyNDQgMjQ2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6YmctZ3JheS0yMDA6aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjkgMjMxIDIzNSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOmJnLWdyYXktMzAwOmhvdmVyIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA5IDIxMyAyMTkgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1ncmF5LTUwOmhvdmVyIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ5IDI1MCAyNTEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1ncmF5LTYwMDpob3ZlciB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc1IDg1IDk5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6YmctZ3JheS03MDA6aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1NSA2NSA4MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOmJnLWdyZWVuLTUwMFxcLzEwOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDM0IDE5NyA5NCAvIDAuMSk7XG59XG4uaG92ZXJcXDpiZy1ncmVlbi03MDA6aG92ZXIge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMSAxMjggNjEgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDpiZy1wdXJwbGUtNzAwOmhvdmVyIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI2IDM0IDIwNiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOmJnLXJlZC01MDBcXC8xMDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzkgNjggNjggLyAwLjEpO1xufVxuLmhvdmVyXFw6YmctcmVkLTcwMDpob3ZlciB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4NSAyOCAyOCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOmJnLXdoaXRlXFwvMTA6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjEpO1xufVxuLmhvdmVyXFw6Ymctd2hpdGVcXC8xNTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMTUpO1xufVxuLmhvdmVyXFw6Ymctd2hpdGVcXC8yMDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMik7XG59XG4uaG92ZXJcXDpiZy13aGl0ZVxcLzkwOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC45KTtcbn1cbi5ob3ZlclxcOmJnLXdoaXRlXFwvXFxbMFxcLjAzXFxdOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4wMyk7XG59XG4uaG92ZXJcXDpiZy13aGl0ZVxcL1xcWzBcXC4wNFxcXTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMDQpO1xufVxuLmhvdmVyXFw6Ymctd2hpdGVcXC9cXFswXFwuMDZcXF06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjA2KTtcbn1cbi5ob3ZlclxcOmJnLXdoaXRlXFwvXFxbMFxcLjEyXFxdOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4xMik7XG59XG4uaG92ZXJcXDp0ZXh0LVxcW1xcIzAxNDZlMFxcXTpob3ZlciB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDEgNzAgMjI0IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDp0ZXh0LVxcW1xcIzExOTlmYVxcXTpob3ZlciB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDE3IDE1MyAyNTAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOnRleHQtXFxbXFwjMWExNTIzXFxdOmhvdmVyIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjYgMjEgMzUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOnRleHQtXFxbXFwjMmEyYTM4XFxdOmhvdmVyIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoNDIgNDIgNTYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOnRleHQtXFxbXFwjM2Q3YWZmXFxdOmhvdmVyIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoNjEgMTIyIDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6dGV4dC1ibGFjazpob3ZlciB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDAgMCAwIC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDp0ZXh0LWJsdWUtNDAwOmhvdmVyIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoOTYgMTY1IDI1MCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6dGV4dC1ibHVlLTUwMDpob3ZlciB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDU5IDEzMCAyNDYgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOnRleHQtYmx1ZS04MDA6aG92ZXIge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigzMCA2NCAxNzUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOnRleHQtZ3JheS0zMDA6aG92ZXIge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigyMDkgMjEzIDIxOSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6dGV4dC1ncmF5LTYwMDpob3ZlciB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDc1IDg1IDk5IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4uaG92ZXJcXDp0ZXh0LWdyYXktODAwOmhvdmVyIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMzEgNDEgNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOnRleHQtZ3JheS05MDA6aG92ZXIge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxNyAyNCAzOSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6dGV4dC1yZWQtNDAwOmhvdmVyIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMjQ4IDExMyAxMTMgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5ob3ZlclxcOnRleHQtd2hpdGU6aG92ZXIge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLmhvdmVyXFw6dGV4dC13aGl0ZVxcLzUwOmhvdmVyIHtcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuNSk7XG59XG4uaG92ZXJcXDp0ZXh0LXdoaXRlXFwvNjA6aG92ZXIge1xuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC42KTtcbn1cbi5ob3ZlclxcOnRleHQtd2hpdGVcXC83MDpob3ZlciB7XG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjcpO1xufVxuLmhvdmVyXFw6dW5kZXJsaW5lOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTtcbn1cbi5ob3ZlclxcOm5vLXVuZGVybGluZTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbi1saW5lOiBub25lO1xufVxuLmhvdmVyXFw6b3BhY2l0eS04MDpob3ZlciB7XG4gIG9wYWNpdHk6IDAuODtcbn1cbi5ob3ZlclxcOm9wYWNpdHktOTA6aG92ZXIge1xuICBvcGFjaXR5OiAwLjk7XG59XG4uaG92ZXJcXDpzaGFkb3ctbWQ6aG92ZXIge1xuICAtLXR3LXNoYWRvdzogMCA0cHggNnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKSwgMCAycHggNHB4IC0ycHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCA0cHggNnB4IC0xcHggdmFyKC0tdHctc2hhZG93LWNvbG9yKSwgMCAycHggNHB4IC0ycHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcbn1cbi5ob3ZlclxcOnNoYWRvdy1zbTpob3ZlciB7XG4gIC0tdHctc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTtcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAxcHggMnB4IDAgdmFyKC0tdHctc2hhZG93LWNvbG9yKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcbn1cbi5ob3ZlclxcOmZpbGVcXDpiZy13aGl0ZVxcLzIwOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMik7XG59XG4uZm9jdXNcXDpib3JkZXItYi0yOmZvY3VzIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xufVxuLmZvY3VzXFw6Ym9yZGVyLVxcW1xcIzAwNzNjZlxcXTpmb2N1cyB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDAgMTE1IDIwNyAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uZm9jdXNcXDpib3JkZXItXFxbXFwjMDBhMGRmXFxdOmZvY3VzIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMCAxNjAgMjIzIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5mb2N1c1xcOmJvcmRlci1cXFtcXCMwYTRkOGNcXF06Zm9jdXMge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigxMCA3NyAxNDAgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmZvY3VzXFw6Ym9yZGVyLVxcW1xcIzBhODRmZlxcXTpmb2N1cyB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDEwIDEzMiAyNTUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmZvY3VzXFw6Ym9yZGVyLVxcW1xcIzBkNmI2ZlxcXTpmb2N1cyB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDEzIDEwNyAxMTEgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmZvY3VzXFw6Ym9yZGVyLVxcW1xcIzExOTlmYVxcXTpmb2N1cyB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDE3IDE1MyAyNTAgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmZvY3VzXFw6Ym9yZGVyLVxcW1xcIzE1NWZhMFxcXTpmb2N1cyB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDIxIDk1IDE2MCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uZm9jdXNcXDpib3JkZXItXFxbXFwjNzEzMmY1XFxdOmZvY3VzIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMTEzIDUwIDI0NSAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uZm9jdXNcXDpib3JkZXItYmxhY2s6Zm9jdXMge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigwIDAgMCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XG59XG4uZm9jdXNcXDpib3JkZXItYmx1ZS00MDA6Zm9jdXMge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYig5NiAxNjUgMjUwIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcbn1cbi5mb2N1c1xcOmJvcmRlci1ibHVlLTUwMDpmb2N1cyB7XG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiKDU5IDEzMCAyNDYgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmZvY3VzXFw6Ym9yZGVyLWdyYXktNTAwOmZvY3VzIHtcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMTA3IDExNCAxMjggLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmZvY3VzXFw6Ym9yZGVyLXJlZC01MDA6Zm9jdXMge1xuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYigyMzkgNjggNjggLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xufVxuLmZvY3VzXFw6Ym9yZGVyLXRyYW5zcGFyZW50OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5mb2N1c1xcOmJvcmRlci13aGl0ZVxcLzMwOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjMpO1xufVxuLmZvY3VzXFw6Ymctd2hpdGVcXC9cXFswXFwuMDZcXF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjA2KTtcbn1cbi5mb2N1c1xcOnNoYWRvdy1cXFswXzBfMF8zcHhfcmdiYVxcKDEwXFwyYyAxMzJcXDJjIDI1NVxcMmMgMFxcLjE1XFwpXFxdOmZvY3VzIHtcbiAgLS10dy1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDEwLDEzMiwyNTUsMC4xNSk7XG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMCAwIDNweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO1xuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xufVxuLmZvY3VzXFw6b3V0bGluZS1ub25lOmZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuLmZvY3VzXFw6cmluZy0wOmZvY3VzIHtcbiAgLS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSB2YXIoLS10dy1yaW5nLW9mZnNldC1jb2xvcik7XG4gIC0tdHctcmluZy1zaGFkb3c6IHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIGNhbGMoMHB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS10dy1yaW5nLWNvbG9yKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3csIDAgMCAjMDAwMCk7XG59XG4uZm9jdXNcXDpyaW5nLTE6Zm9jdXMge1xuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpIHZhcigtLXR3LXJpbmctb2Zmc2V0LWNvbG9yKTtcbiAgLS10dy1yaW5nLXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCkgMCAwIDAgY2FsYygxcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpIHZhcigtLXR3LXJpbmctY29sb3IpO1xuICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXNoYWRvdywgMCAwICMwMDAwKTtcbn1cbi5mb2N1c1xcOnJpbmctMjpmb2N1cyB7XG4gIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpO1xuICAtLXR3LXJpbmctc2hhZG93OiB2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCBjYWxjKDJweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSkgdmFyKC0tdHctcmluZy1jb2xvcik7XG4gIGJveC1zaGFkb3c6IHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93LCAwIDAgIzAwMDApO1xufVxuLmZvY3VzXFw6cmluZy1pbnNldDpmb2N1cyB7XG4gIC0tdHctcmluZy1pbnNldDogaW5zZXQ7XG59XG4uZm9jdXNcXDpyaW5nLVxcW1xcIzAwNTJGRlxcXTpmb2N1cyB7XG4gIC0tdHctcmluZy1vcGFjaXR5OiAxO1xuICAtLXR3LXJpbmctY29sb3I6IHJnYigwIDgyIDI1NSAvIHZhcigtLXR3LXJpbmctb3BhY2l0eSwgMSkpO1xufVxuLmZvY3VzXFw6cmluZy1cXFtcXCMwYjU3ZDBcXF06Zm9jdXMge1xuICAtLXR3LXJpbmctb3BhY2l0eTogMTtcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMTEgODcgMjA4IC8gdmFyKC0tdHctcmluZy1vcGFjaXR5LCAxKSk7XG59XG4uZm9jdXNcXDpyaW5nLVxcW1xcIzBkNmI2ZlxcXVxcLzIwOmZvY3VzIHtcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMTMgMTA3IDExMSAvIDAuMik7XG59XG4uZm9jdXNcXDpyaW5nLVxcW1xcIzExOTlmYVxcXVxcLzIwOmZvY3VzIHtcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMTcgMTUzIDI1MCAvIDAuMik7XG59XG4uZm9jdXNcXDpyaW5nLVxcW1xcIzcxMzJmNVxcXVxcLzIwOmZvY3VzIHtcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMTEzIDUwIDI0NSAvIDAuMik7XG59XG4uZm9jdXNcXDpyaW5nLWJsdWUtNTAwOmZvY3VzIHtcbiAgLS10dy1yaW5nLW9wYWNpdHk6IDE7XG4gIC0tdHctcmluZy1jb2xvcjogcmdiKDU5IDEzMCAyNDYgLyB2YXIoLS10dy1yaW5nLW9wYWNpdHksIDEpKTtcbn1cbi5mb2N1c1xcOnJpbmctYmx1ZS02MDA6Zm9jdXMge1xuICAtLXR3LXJpbmctb3BhY2l0eTogMTtcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMzcgOTkgMjM1IC8gdmFyKC0tdHctcmluZy1vcGFjaXR5LCAxKSk7XG59XG4uZm9jdXNcXDpyaW5nLXJlZC01MDA6Zm9jdXMge1xuICAtLXR3LXJpbmctb3BhY2l0eTogMTtcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoMjM5IDY4IDY4IC8gdmFyKC0tdHctcmluZy1vcGFjaXR5LCAxKSk7XG59XG4uZm9jdXNcXDpyaW5nLXJlZC01MDBcXC8yMDpmb2N1cyB7XG4gIC0tdHctcmluZy1jb2xvcjogcmdiKDIzOSA2OCA2OCAvIDAuMik7XG59XG4uZm9jdXNcXDpyaW5nLXJlZC01MDBcXC81MDpmb2N1cyB7XG4gIC0tdHctcmluZy1jb2xvcjogcmdiKDIzOSA2OCA2OCAvIDAuNSk7XG59XG4uZm9jdXNcXDpyaW5nLXdoaXRlXFwvMjA6Zm9jdXMge1xuICAtLXR3LXJpbmctY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDAuMik7XG59XG4uYWN0aXZlXFw6c2NhbGUtXFxbMFxcLjk3XFxdOmFjdGl2ZSB7XG4gIC0tdHctc2NhbGUteDogMC45NztcbiAgLS10dy1zY2FsZS15OiAwLjk3O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcbn1cbi5hY3RpdmVcXDpzY2FsZS1cXFswXFwuOThcXF06YWN0aXZlIHtcbiAgLS10dy1zY2FsZS14OiAwLjk4O1xuICAtLXR3LXNjYWxlLXk6IDAuOTg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xufVxuLmFjdGl2ZVxcOmN1cnNvci1ncmFiYmluZzphY3RpdmUge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuLmFjdGl2ZVxcOm9wYWNpdHktODA6YWN0aXZlIHtcbiAgb3BhY2l0eTogMC44O1xufVxuLmRpc2FibGVkXFw6cG9pbnRlci1ldmVudHMtbm9uZTpkaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmRpc2FibGVkXFw6Y3Vyc29yLW5vdC1hbGxvd2VkOmRpc2FibGVkIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5kaXNhYmxlZFxcOmJnLVxcW1xcIzFhMjIzOFxcXTpkaXNhYmxlZCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2IDM0IDU2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmRpc2FibGVkXFw6YmctXFxbXFwjOWJiNWMyXFxdOmRpc2FibGVkIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU1IDE4MSAxOTQgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uZGlzYWJsZWRcXDpiZy1cXFtcXCM5YmI2Y2ZcXF06ZGlzYWJsZWQge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTUgMTgyIDIwNyAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5kaXNhYmxlZFxcOmJnLVxcW1xcIzliYmZkOVxcXTpkaXNhYmxlZCB7XG4gIC0tdHctYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1NSAxOTEgMjE3IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xufVxuLmRpc2FibGVkXFw6YmctZ3JheS0zMDA6ZGlzYWJsZWQge1xuICAtLXR3LWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDkgMjEzIDIxOSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcbn1cbi5kaXNhYmxlZFxcOmJnLWdyYXktNDAwOmRpc2FibGVkIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU2IDE2MyAxNzUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XG59XG4uZGlzYWJsZWRcXDp0ZXh0LXNsYXRlLTUwMDpkaXNhYmxlZCB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDEwMCAxMTYgMTM5IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XG59XG4uZGlzYWJsZWRcXDpuby11bmRlcmxpbmU6ZGlzYWJsZWQge1xuICB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTtcbn1cbi5kaXNhYmxlZFxcOm9wYWNpdHktNDA6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZGlzYWJsZWRcXDpvcGFjaXR5LTUwOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xufVxuLmRpc2FibGVkXFw6b3BhY2l0eS02MDpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cbi5kaXNhYmxlZFxcOm9wYWNpdHktNzA6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjc7XG59XG4uZGlzYWJsZWRcXDpvcGFjaXR5LTkwOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC45O1xufVxuLmdyb3VwOmZvY3VzLXdpdGhpbiAuZ3JvdXAtZm9jdXMtd2l0aGluXFw6dGV4dC1cXFtcXCMwYjU3ZDBcXF0ge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYigxMSA4NyAyMDggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5ncm91cDpmb2N1cy13aXRoaW4gLmdyb3VwLWZvY3VzLXdpdGhpblxcOnRleHQtcmVkLTUwMCB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDIzOSA2OCA2OCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xufVxuLmdyb3VwOmhvdmVyIC5ncm91cC1ob3ZlclxcOnNjYWxlLTEwNSB7XG4gIC0tdHctc2NhbGUteDogMS4wNTtcbiAgLS10dy1zY2FsZS15OiAxLjA1O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcbn1cbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXDp0ZXh0LVxcW1xcIzcxMzJmNVxcXSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKDExMyA1MCAyNDUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXDp0ZXh0LWdyYXktOTAwIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2IoMTcgMjQgMzkgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcbn1cbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXDp1bmRlcmxpbmUge1xuICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG5cbiAgLnNtXFw6Ym90dG9tLTYge1xuICAgIGJvdHRvbTogMS41cmVtO1xuICB9XG5cbiAgLnNtXFw6cmlnaHQtNiB7XG4gICAgcmlnaHQ6IDEuNXJlbTtcbiAgfVxuXG4gIC5zbVxcOm1iLTEwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XG4gIH1cblxuICAuc21cXDptYi0xMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgfVxuXG4gIC5zbVxcOm1iLTIge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgfVxuXG4gIC5zbVxcOm1iLTQge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cblxuICAuc21cXDptYi02IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIH1cblxuICAuc21cXDptYi04IHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICB9XG5cbiAgLnNtXFw6bXQtMiB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICB9XG5cbiAgLnNtXFw6bXQtNiB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICB9XG5cbiAgLnNtXFw6bXQtOCB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgfVxuXG4gIC5zbVxcOmJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5zbVxcOmlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG5cbiAgLnNtXFw6ZmxleCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIC5zbVxcOmgtMTAge1xuICAgIGhlaWdodDogMi41cmVtO1xuICB9XG5cbiAgLnNtXFw6aC0xMiB7XG4gICAgaGVpZ2h0OiAzcmVtO1xuICB9XG5cbiAgLnNtXFw6aC0xNCB7XG4gICAgaGVpZ2h0OiAzLjVyZW07XG4gIH1cblxuICAuc21cXDpoLTE2IHtcbiAgICBoZWlnaHQ6IDRyZW07XG4gIH1cblxuICAuc21cXDpoLTIwIHtcbiAgICBoZWlnaHQ6IDVyZW07XG4gIH1cblxuICAuc21cXDpoLTYge1xuICAgIGhlaWdodDogMS41cmVtO1xuICB9XG5cbiAgLnNtXFw6aC03IHtcbiAgICBoZWlnaHQ6IDEuNzVyZW07XG4gIH1cblxuICAuc21cXDpoLTgge1xuICAgIGhlaWdodDogMnJlbTtcbiAgfVxuXG4gIC5zbVxcOm1pbi1oLVxcWzUwMHB4XFxdIHtcbiAgICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgfVxuXG4gIC5zbVxcOnctMTIge1xuICAgIHdpZHRoOiAzcmVtO1xuICB9XG5cbiAgLnNtXFw6dy0xNCB7XG4gICAgd2lkdGg6IDMuNXJlbTtcbiAgfVxuXG4gIC5zbVxcOnctMTYge1xuICAgIHdpZHRoOiA0cmVtO1xuICB9XG5cbiAgLnNtXFw6dy0yMCB7XG4gICAgd2lkdGg6IDVyZW07XG4gIH1cblxuICAuc21cXDp3LTYge1xuICAgIHdpZHRoOiAxLjVyZW07XG4gIH1cblxuICAuc21cXDp3LTcge1xuICAgIHdpZHRoOiAxLjc1cmVtO1xuICB9XG5cbiAgLnNtXFw6dy04IHtcbiAgICB3aWR0aDogMnJlbTtcbiAgfVxuXG4gIC5zbVxcOnctYXV0byB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAuc21cXDpncmlkLWNvbHMtMiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICB9XG5cbiAgLnNtXFw6Z3JpZC1jb2xzLTMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxuXG4gIC5zbVxcOmdyaWQtY29scy1cXFsxZnJfYXV0b1xcXSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bztcbiAgfVxuXG4gIC5zbVxcOmZsZXgtcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG5cbiAgLnNtXFw6aXRlbXMtZW5kIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cblxuICAuc21cXDppdGVtcy1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAuc21cXDpqdXN0aWZ5LWJldHdlZW4ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuXG4gIC5zbVxcOmdhcC0wIHtcbiAgICBnYXA6IDBweDtcbiAgfVxuXG4gIC5zbVxcOmdhcC0xMiB7XG4gICAgZ2FwOiAzcmVtO1xuICB9XG5cbiAgLnNtXFw6Z2FwLTMge1xuICAgIGdhcDogMC43NXJlbTtcbiAgfVxuXG4gIC5zbVxcOmdhcC00IHtcbiAgICBnYXA6IDFyZW07XG4gIH1cblxuICAuc21cXDpnYXAtNSB7XG4gICAgZ2FwOiAxLjI1cmVtO1xuICB9XG5cbiAgLnNtXFw6Z2FwLTYge1xuICAgIGdhcDogMS41cmVtO1xuICB9XG5cbiAgLnNtXFw6Z2FwLTgge1xuICAgIGdhcDogMnJlbTtcbiAgfVxuXG4gIC5zbVxcOnNwYWNlLXktNiA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xuICAgIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMS41cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO1xuICAgIG1hcmdpbi1ib3R0b206IGNhbGMoMS41cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XG4gIH1cblxuICAuc21cXDpwLTEwIHtcbiAgICBwYWRkaW5nOiAyLjVyZW07XG4gIH1cblxuICAuc21cXDpwLTMge1xuICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gIH1cblxuICAuc21cXDpwLTQge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cblxuICAuc21cXDpwLTYge1xuICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgfVxuXG4gIC5zbVxcOnAtOCB7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgfVxuXG4gIC5zbVxcOnB4LTAge1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgfVxuXG4gIC5zbVxcOnB4LTQge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICB9XG5cbiAgLnNtXFw6cHgtNSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gIH1cblxuICAuc21cXDpweC02IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIH1cblxuICAuc21cXDpweC04IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgfVxuXG4gIC5zbVxcOnB5LTEwIHtcbiAgICBwYWRkaW5nLXRvcDogMi41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gIH1cblxuICAuc21cXDpweS0xMiB7XG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gIH1cblxuICAuc21cXDpweS0yIHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gIH1cblxuICAuc21cXDpweS0zIHtcbiAgICBwYWRkaW5nLXRvcDogMC43NXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTtcbiAgfVxuXG4gIC5zbVxcOnB5LTQge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgLnNtXFw6cHktNSB7XG4gICAgcGFkZGluZy10b3A6IDEuMjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDEuMjVyZW07XG4gIH1cblxuICAuc21cXDpwYi0xMCB7XG4gICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgfVxuXG4gIC5zbVxcOnB0LTUge1xuICAgIHBhZGRpbmctdG9wOiAxLjI1cmVtO1xuICB9XG5cbiAgLnNtXFw6cHQtOCB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gIH1cblxuICAuc21cXDpwdC1cXFszXFwuNzVyZW1cXF0ge1xuICAgIHBhZGRpbmctdG9wOiAzLjc1cmVtO1xuICB9XG5cbiAgLnNtXFw6dGV4dC0yeGwge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICB9XG5cbiAgLnNtXFw6dGV4dC0zeGwge1xuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG4gIH1cblxuICAuc21cXDp0ZXh0LTR4bCB7XG4gICAgZm9udC1zaXplOiAyLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW07XG4gIH1cblxuICAuc21cXDp0ZXh0LTV4bCB7XG4gICAgZm9udC1zaXplOiAzcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLnNtXFw6dGV4dC02eGwge1xuICAgIGZvbnQtc2l6ZTogMy43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC5zbVxcOnRleHQtXFxbMVxcLjJyZW1cXF0ge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB9XG5cbiAgLnNtXFw6dGV4dC1cXFsxXFwuNjVyZW1cXF0ge1xuICAgIGZvbnQtc2l6ZTogMS42NXJlbTtcbiAgfVxuXG4gIC5zbVxcOnRleHQtXFxbMTJweFxcXSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbiAgLnNtXFw6dGV4dC1cXFsxM3B4XFxdIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gIH1cblxuICAuc21cXDp0ZXh0LVxcWzE0cHhcXF0ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuXG4gIC5zbVxcOnRleHQtXFxbMTVweFxcXSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG5cbiAgLnNtXFw6dGV4dC1cXFsxNnB4XFxdIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxuICAuc21cXDp0ZXh0LVxcWzE3cHhcXF0ge1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgfVxuXG4gIC5zbVxcOnRleHQtXFxbMjJweFxcXSB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICB9XG5cbiAgLnNtXFw6dGV4dC1cXFsyNHB4XFxdIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gIH1cblxuICAuc21cXDp0ZXh0LVxcWzI2cHhcXF0ge1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgfVxuXG4gIC5zbVxcOnRleHQtXFxbMjhweFxcXSB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICB9XG5cbiAgLnNtXFw6dGV4dC1cXFszMnB4XFxdIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gIH1cblxuICAuc21cXDp0ZXh0LVxcWzM2cHhcXF0ge1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgfVxuXG4gIC5zbVxcOnRleHQtXFxbNDBweFxcXSB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICB9XG5cbiAgLnNtXFw6dGV4dC1iYXNlIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgfVxuXG4gIC5zbVxcOnRleHQtbGcge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIH1cblxuICAuc21cXDp0ZXh0LXNtIHtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICB9XG5cbiAgLnNtXFw6dGV4dC14bCB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcblxuICAubWRcXDpjb2wtc3Bhbi0xIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiAxIC8gc3BhbiAxO1xuICB9XG5cbiAgLm1kXFw6Y29sLXNwYW4tMiB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMiAvIHNwYW4gMjtcbiAgfVxuXG4gIC5tZFxcOm1iLTEyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICB9XG5cbiAgLm1kXFw6bXQtOCB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgfVxuXG4gIC5tZFxcOmJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5tZFxcOmZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAubWRcXDpoaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubWRcXDpoLTI0IHtcbiAgICBoZWlnaHQ6IDZyZW07XG4gIH1cblxuICAubWRcXDp3LTI0IHtcbiAgICB3aWR0aDogNnJlbTtcbiAgfVxuXG4gIC5tZFxcOnctXFxbOTBcXCVcXF0ge1xuICAgIHdpZHRoOiA5MCU7XG4gIH1cblxuICAubWRcXDptYXgtdy1tZCB7XG4gICAgbWF4LXdpZHRoOiAyOHJlbTtcbiAgfVxuXG4gIC5tZFxcOmZsZXgtaW5pdGlhbCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cblxuICAubWRcXDpncmlkLWNvbHMtMiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICB9XG5cbiAgLm1kXFw6Z3JpZC1jb2xzLTQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxuXG4gIC5tZFxcOmdyaWQtY29scy01IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cblxuICAubWRcXDpncmlkLWNvbHMtXFxbMWZyX2F1dG9fMWZyXFxdIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvIDFmcjtcbiAgfVxuXG4gIC5tZFxcOmdyaWQtY29scy1cXFsxZnJfYXV0b18xZnJfYXV0b18xZnJcXF0ge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG8gMWZyIGF1dG8gMWZyO1xuICB9XG5cbiAgLm1kXFw6aXRlbXMtY2VudGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLm1kXFw6anVzdGlmeS1zdGFydCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG5cbiAgLm1kXFw6anVzdGlmeS1iZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICAubWRcXDpnYXAtNiB7XG4gICAgZ2FwOiAxLjVyZW07XG4gIH1cblxuICAubWRcXDpnYXAtOCB7XG4gICAgZ2FwOiAycmVtO1xuICB9XG5cbiAgLm1kXFw6cm91bmRlZC0zeGwge1xuICAgIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcbiAgfVxuXG4gIC5tZFxcOmJvcmRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIH1cblxuICAubWRcXDpiZy1cXFt1cmxcXChcXCdcXC93ZWxsc2JrZ1xcLnBuZ1xcJ1xcKVxcXSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvd2VsbHNia2cucG5nJyk7XG4gIH1cblxuICAubWRcXDpwLTEyIHtcbiAgICBwYWRkaW5nOiAzcmVtO1xuICB9XG5cbiAgLm1kXFw6cC03IHtcbiAgICBwYWRkaW5nOiAxLjc1cmVtO1xuICB9XG5cbiAgLm1kXFw6cC05IHtcbiAgICBwYWRkaW5nOiAyLjI1cmVtO1xuICB9XG5cbiAgLm1kXFw6cHgtNiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB9XG5cbiAgLm1kXFw6cHktMTIge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICB9XG5cbiAgLm1kXFw6cHktMTYge1xuICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICB9XG5cbiAgLm1kXFw6cHktMjAge1xuICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA1cmVtO1xuICB9XG5cbiAgLm1kXFw6cHQtMTIge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICB9XG5cbiAgLm1kXFw6dGV4dC00eGwge1xuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICB9XG5cbiAgLm1kXFw6dGV4dC1cXFsyOHB4XFxdIHtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gIH1cblxuICAubWRcXDp0ZXh0LVxcWzMycHhcXF0ge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgfVxuXG4gIC5tZFxcOnRleHQtXFxbNDBweFxcXSB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICB9XG5cbiAgLm1kXFw6dGV4dC1cXFs0NHB4XFxdIHtcbiAgICBmb250LXNpemU6IDQ0cHg7XG4gIH1cblxuICAubWRcXDp0ZXh0LVxcWzQ4cHhcXF0ge1xuICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgfVxuXG4gIC5tZFxcOnRleHQteGwge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgfVxuXG4gIC5tZFxcOnNoYWRvdy14bCB7XG4gICAgLS10dy1zaGFkb3c6IDAgMjBweCAyNXB4IC01cHggcmdiKDAgMCAwIC8gMC4xKSwgMCA4cHggMTBweCAtNnB4IHJnYigwIDAgMCAvIDAuMSk7XG4gICAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAyMHB4IDI1cHggLTVweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLCAwIDhweCAxMHB4IC02cHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csIDAgMCAjMDAwMCksIHZhcigtLXR3LXJpbmctc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1zaGFkb3cpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG5cbiAgLmxnXFw6aGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmxnXFw6dHJhbnNsYXRlLXgtMCB7XG4gICAgLS10dy10cmFuc2xhdGUteDogMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xuICB9XG5cbiAgLmxnXFw6Z3JpZC1jb2xzLTIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxuXG4gIC5sZ1xcOmdyaWQtY29scy0zIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cblxuICAubGdcXDpncmlkLWNvbHMtNCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xuICB9XG5cbiAgLmxnXFw6Z3JpZC1jb2xzLVxcWzFmcl8yZnJcXF0ge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgfVxuXG4gIC5sZ1xcOnBsLTI0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZyZW07XG4gIH1cblxuICAubGdcXDpwbC1cXFs3MnB4XFxdIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDcycHg7XG4gIH1cblxuICAubGdcXDpwdC0yMCB7XG4gICAgcGFkZGluZy10b3A6IDVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcblxuICAueGxcXDpncmlkLWNvbHMtNCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG4iCl9fdml0ZV9fdXBkYXRlU3R5bGUoX192aXRlX19pZCwgX192aXRlX19jc3MpCmltcG9ydC5tZXRhLmhvdC5hY2NlcHQoKQppbXBvcnQubWV0YS5ob3QucHJ1bmUoKCkgPT4gX192aXRlX19yZW1vdmVTdHlsZShfX3ZpdGVfX2lkKSk="}},"time_used":29,"timings":{"blocked":-1,"dns":0,"connect":15,"send":0,"wait":16,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CQDulsdO2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.711Z","timestamp":1785108244711,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CQDulsdO2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 550\r\nlast-modified: Sun, 26 Jul 2026 22:31:21 GMT\r\netag: \"3973630b28acbb14646b3c6d4f6317e0\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 17f08d2be28e8029d667d74b1efbe608.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: R-VEnwwmCvJ_WQ_YQasaeRocP_Gd9kBFX88tjOVcPBGCgWxwdjB4bw==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 2926\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=8j5Mt08FRhkM5fqBlYwDlnsidSLQRBpNvf2EjtkpE4Df8jlcNYQORU8tu5dwzQXbdTJvM3aJ18W1okSQbVx2BPYip7hsPpvXdi7c0mAzcutoSl79csLQgJxd0aXfsamTLy6MTMk3rizuOH1ha2wQ\"}]}\r\ncf-ray: a21727e17f6a0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":1130,"size_decoded":1698,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1090)","md5":"775ff897b1b0d23ac7f97b906dc8a165","sha1":"95640c9f049e98679697f76d60bbe5f86d2923ef","sha256":"ee10f4e45e8052e832b2ae5246c9a67911a7fcbea6593e176f4d2ab4f1392c85","sha512":"fb446a5e8f8b127ed8469a2159085e60cb0ff84b6bfbdf4ba37d766ece5948ccaee1c4ac4d4ce3628a0f396b4a052d43f2d1e46022075ca5eb3f2f19682cf9df","ssdeep":"","tlshash":"a421eb8639b03fbed202121b91e20909332e223622ed4b15e23c6e5c13bea9ac154e47","first_seen":"2026-07-26T23:24:50.375492Z","last_seen":"2026-07-26T23:25:46.829375Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGQzNDUxNGI4LTdlMjUtNDgzMi04ZTkwLTNjOWQ1NGI3ZjM5ZWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWQzNDUxNGI4LTdlMjUtNDgzMi04ZTkwLTNjOWQ1NGI3ZjM5ZWApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsaGYgYXMgdCxzIGFzIG59ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciByPWUodCgpKSxpPSh7cm9vdE1hcmdpbjplLHRocmVzaG9sZDp0PTAsZm9yY2VPYnNlcnZlOmksZGlzYWJsZWQ6YX09e30pPT57bGV0W28sc109KDAsci51c2VTdGF0ZSkoITEpLGM9KDAsci51c2VSZWYpKG51bGwpLGw9KDAsci51c2VSZWYpKG51bGwpLHU9KDAsci51c2VSZWYpKG51bGwpLGQ9KDAsci51c2VDYWxsYmFjaykoKCk9Pnt2YXIgZTsoZT11LmN1cnJlbnQpPT1udWxsfHxlLmNhbGwodSksdS5jdXJyZW50PW51bGx9LFtdKSxmPSgwLHIudXNlQ2FsbGJhY2spKCgpPT57aWYoZCgpLGF8fHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcj5gdWB8fCFjLmN1cnJlbnQpe3MoITEpO3JldHVybn1sZXQgbj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKFtlXSk9PntzKGUuaXNJbnRlcnNlY3RpbmcpfSx7cm9vdE1hcmdpbjplLHRocmVzaG9sZDp0fSk7bi5vYnNlcnZlKGMuY3VycmVudCksdS5jdXJyZW50PSgpPT57bi5kaXNjb25uZWN0KCl9fSxbZCxlLHQsYV0pO3JldHVybigwLHIudXNlRWZmZWN0KSgoKT0+eyhpfHxjLmN1cnJlbnQhPT1sLmN1cnJlbnQpJiYobC5jdXJyZW50PWMuY3VycmVudCxmKCkpfSksbigoKT0+e2YoKX0sW2UsdCxhXSksKDAsci51c2VFZmZlY3QpKCgpPT4oKT0+e2QoKX0sW10pLCgwLHIudXNlTWVtbykoKCk9Pih7aW5WaWV3Om8scmVmOmN9KSxbbyxjXSl9O2V4cG9ydHtpIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0NRRHVsc2RPMi5qcy5tYXA="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"as.coinbase.com/amp","fqdn":"as.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:06.386Z","timestamp":1785108246386,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /amp HTTP/1.1\r\nHost: as.coinbase.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.coinbase.com/\r\nContent-Type: application/x-www-form-urlencoded; charset=UTF-8\r\nContent-Length: 5929\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":5929,"data":"e=%5B%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108245872%2C%22event_id%22%3A11%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22perf_user_journey_step%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22measurement%22%2C%22duration%22%3A260%2C%22rating%22%3A%22good%22%2C%22step_name%22%3A%22load_homepage_screen%22%2C%22deviceMemory%22%3A0%2C%22hardwareConcurrency%22%3A8%2C%22serviceWorkerStatus%22%3A%22supported%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22page%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22trace_id%22%3A%2214592905212061344081%22%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%2212e8f3d1-4063-4334-a933-8fda4a88c5ad%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A11%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108245913%2C%22event_id%22%3A12%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22anon_touch_capture_success%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22action%22%3A%22process%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22page%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22trace_id%22%3A%2214592905212061344081%22%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%22329c8bdf-d422-45e1-996f-37bac39c0302%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A12%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%2C%7B%22device_id%22%3A%22bbfb27f8-0009-47a7-974b-39f1a9a7b2eb%22%2C%22user_id%22%3Anull%2C%22timestamp%22%3A1785108246384%2C%22event_id%22%3A13%2C%22session_id%22%3A1785108244691%2C%22event_type%22%3A%22idoa_render_google_error%22%2C%22version_name%22%3A%22de89472f041857c92d39c517b49c360b7e08e578%22%2C%22platform%22%3A%22web%22%2C%22os_name%22%3A%22Firefox%22%2C%22os_version%22%3A%22134%22%2C%22device_model%22%3A%22Windows%22%2C%22device_manufacturer%22%3Anull%2C%22language%22%3A%22en%22%2C%22event_properties%22%3A%7B%22target%22%3A%22production%22%2C%22client_id%22%3A%22258660e1-9cfe-4202-9eda-d3beedb3e118%22%2C%22client_action%22%3A%22web-unified-signup%22%2C%22providers%22%3A%5B%5D%2C%22identityDeviceId%22%3A%22%22%2C%22isWebViewV2%22%3Afalse%2C%22action%22%3A%22measurement%22%2C%22message%22%3A%22b.appendChild+is+not+a+function%22%2C%22auth%22%3A0%2C%22component_type%22%3A%22button%22%2C%22platform%22%3A%22web%22%2C%22project_name%22%3A%22consumer%22%2C%22locale%22%3A%22en%22%2C%22session_lcc_id%22%3Anull%2C%22time_start%22%3A1785108244552%2C%22page_key%22%3A%22homepage%22%2C%22page_path%22%3A%22%2F%22%2C%22prev_page_key%22%3A%22%22%2C%22prev_page_path%22%3A%22%22%2C%22referrer%22%3A%22https%3A%2F%2F830129coinbase.com%2F%22%2C%22referring_domain%22%3A%22830129coinbase.com%22%2C%22cds_version%22%3A%227.x%22%2C%22is_low_end_device%22%3Afalse%2C%22is_low_end_experience%22%3Afalse%2C%22ujs%22%3A%5B%22ujs_load_homepage_screen%22%5D%2C%22trace_id%22%3A%2214592905212061344081%22%2C%22has_double_fired%22%3Afalse%2C%22session_uuid%22%3A%22d29a11b7-e0cc-4d8b-8d55-6c3c72f228a6%22%2C%22height%22%3A1024%2C%22width%22%3A1280%2C%22release_stage%22%3A%22production%22%7D%2C%22user_properties%22%3A%7B%7D%2C%22uuid%22%3A%2251fb92d5-1f5d-433d-8ee7-781139cf1665%22%2C%22library%22%3A%7B%22name%22%3A%22%40cbhq%2Fclient-analytics%22%2C%22version%22%3A%2212.16.0%22%7D%2C%22sequence_number%22%3A13%2C%22user_agent%22%3A%22Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0%22%2C%22is_brotli_supported%22%3A%22false%22%7D%5D\u0026v=2\u0026upload_time=1785108246385\u0026client=132e62b5953ce8d568137d5887b6b7ab"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:06 GMT\r\ncontent-type: text/plain; charset=utf-8\r\ncontent-length: 7\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\naccess-control-allow-origin: *\r\nserver: cloudflare\r\nx-content-type-options: nosniff\r\ntrace-id: 1001206904598852284\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=55HATZf7NNFJFv5ANlZPo5UCvSzbRWugrS8n1PQw616zx6uzxGJ0%2FVr14h3LAO1GhslpckHyWtvLgpkGhTAlBIZGx2BzeGrczsIv1YBeVZNXPFUTc7YZWenR%2FIrJSE%2B%2BkQ%3D%3D\"}]}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nset-cookie: cb_dm=37d938ab-f718-4ee9-b71e-657abe7c9f9b; Path=/; Domain=coinbase.com; Expires=Sat, 26 Jul 2036 23:24:06 GMT; HttpOnly; Secure\n__cf_bm=FDimAiEYOEJSvhLkcZtXFF67zlZM3t3xSiQB68KFuRg-1785108246.3883777-1.0.1.1-G8BDc_MYzq1Y1mBSObqtFEW32zO8X05q4qpArRH6E.u20VXtQjh7Ac4aMJdN8YkmC1BNgfckAP3ANr9D.vam_5cafREfLaV4kZVJXEUuXztambHY11QNFCRaLLcUbVNZ; HttpOnly; SameSite=None; Secure; Path=/; Domain=coinbase.com; Expires=Sun, 26 Jul 2026 23:54:06 GMT\r\ncf-ray: a21727ebed321525-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":7,"size_decoded":1163,"mime_type":"text/plain; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"260ca9dd8a4577fc00b7bd5810298076","sha1":"53a5687cb26dc41f2ab4033e97e13adefd3740d6","sha256":"aee408847d35e44e99430f0979c3357b85fe8dbb4535a494301198adbee85f27","sha512":"51e85deb51c2b909a21ec5b8e83b1cb28da258b1be227620105a345a2bd4c6aea549cd5429670f2df33324667b9f623a420b3a0bdbbd03ad48602211e75478a7","ssdeep":"","tlshash":"c0400003000000c000000000000000003000000000000000c00000000f0000000c3000","first_seen":"2023-04-05T04:46:42Z","last_seen":"2026-07-26T23:32:20.195442Z","times_seen":35925,"resource_available":true,"data":"c3VjY2Vzcw=="}},"time_used":124,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":124,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=08eb349e","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.461Z","timestamp":1785108243461,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /node_modules/.vite/deps/chunk-G3PMV62Z.js?v=08eb349e HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=08eb349e\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 7968\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: max-age=31536000,immutable\r\nEtag: W/\"5d9-6wRzMCCzieNLVIrKd7nF1XzrMAE\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Nginx:1.18.0","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":7968,"size_decoded":8232,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (6470)","md5":"ab1b14c2188a11896fbeb5235aada4a0","sha1":"3fdbec746f89c43afc7a6452746ec0fb4de62053","sha256":"b094d3602d0bd2b6101c2225bd9adf6f247077d7499f038294fbf76907b3ff56","sha512":"aa3b9604feee8595dee542a5f97b954cb111501255e5b260345e43eb87a1c8f29ba50515c9fbc9f99e1da9a49dd346cbfe25fdadc1d86323c13361ce9ab4c52d","ssdeep":"96:mXgCDO+YA68hT9XzVPYXwfQsWq4NGXXgXH+/UHINeaNNENrLN5P39NyJds3td3dQ:Mgl+YA68hJXzKqfXg3JY","tlshash":"daf1b4455d5a70b48ffe0573f15c6b3ec29755970a3380e4928ae62b2474c3ac3d9e1b","first_seen":"2026-07-26T23:24:50.377482Z","last_seen":"2026-07-26T23:25:46.809617Z","times_seen":3,"resource_available":true,"data":"dmFyIF9fY3JlYXRlID0gT2JqZWN0LmNyZWF0ZTsKdmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTsKdmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOwp2YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczsKdmFyIF9fZ2V0UHJvdG9PZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjsKdmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7CnZhciBfX2NvbW1vbkpTID0gKGNiLCBtb2QpID0+IGZ1bmN0aW9uIF9fcmVxdWlyZSgpIHsKICByZXR1cm4gbW9kIHx8ICgwLCBjYltfX2dldE93blByb3BOYW1lcyhjYilbMF1dKSgobW9kID0geyBleHBvcnRzOiB7fSB9KS5leHBvcnRzLCBtb2QpLCBtb2QuZXhwb3J0czsKfTsKdmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7CiAgZm9yICh2YXIgbmFtZSBpbiBhbGwpCiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pOwp9Owp2YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4gewogIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSAib2JqZWN0IiB8fCB0eXBlb2YgZnJvbSA9PT0gImZ1bmN0aW9uIikgewogICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKQogICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KQogICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTsKICB9CiAgcmV0dXJuIHRvOwp9Owp2YXIgX190b0VTTSA9IChtb2QsIGlzTm9kZU1vZGUsIHRhcmdldCkgPT4gKHRhcmdldCA9IG1vZCAhPSBudWxsID8gX19jcmVhdGUoX19nZXRQcm90b09mKG1vZCkpIDoge30sIF9fY29weVByb3BzKAogIC8vIElmIHRoZSBpbXBvcnRlciBpcyBpbiBub2RlIGNvbXBhdGliaWxpdHkgbW9kZSBvciB0aGlzIGlzIG5vdCBhbiBFU00KICAvLyBmaWxlIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgQ29tbW9uSlMgZmlsZSB1c2luZyBhIEJhYmVsLQogIC8vIGNvbXBhdGlibGUgdHJhbnNmb3JtIChpLmUuICJfX2VzTW9kdWxlIiBoYXMgbm90IGJlZW4gc2V0KSwgdGhlbiBzZXQKICAvLyAiZGVmYXVsdCIgdG8gdGhlIENvbW1vbkpTICJtb2R1bGUuZXhwb3J0cyIgZm9yIG5vZGUgY29tcGF0aWJpbGl0eS4KICBpc05vZGVNb2RlIHx8ICFtb2QgfHwgIW1vZC5fX2VzTW9kdWxlID8gX19kZWZQcm9wKHRhcmdldCwgImRlZmF1bHQiLCB7IHZhbHVlOiBtb2QsIGVudW1lcmFibGU6IHRydWUgfSkgOiB0YXJnZXQsCiAgbW9kCikpOwoKZXhwb3J0IHsKICBfX2NvbW1vbkpTLAogIF9fZXhwb3J0LAogIF9fdG9FU00KfTsKCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJbU5vZFc1ckxVY3pVRTFXTmpKYUxtcHpQM1k5TURobFlqTTBPV1VpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWRtRnlJRjlmWTNKbFlYUmxJRDBnVDJKcVpXTjBMbU55WldGMFpUdGNiblpoY2lCZlgyUmxabEJ5YjNBZ1BTQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGs3WEc1MllYSWdYMTluWlhSUGQyNVFjbTl3UkdWell5QTlJRTlpYW1WamRDNW5aWFJQZDI1UWNtOXdaWEowZVVSbGMyTnlhWEIwYjNJN1hHNTJZWElnWDE5blpYUlBkMjVRY205d1RtRnRaWE1nUFNCUFltcGxZM1F1WjJWMFQzZHVVSEp2Y0dWeWRIbE9ZVzFsY3p0Y2JuWmhjaUJmWDJkbGRGQnliM1J2VDJZZ1BTQlBZbXBsWTNRdVoyVjBVSEp2ZEc5MGVYQmxUMlk3WEc1MllYSWdYMTlvWVhOUGQyNVFjbTl3SUQwZ1QySnFaV04wTG5CeWIzUnZkSGx3WlM1b1lYTlBkMjVRY205d1pYSjBlVHRjYm5aaGNpQmZYMk52YlcxdmJrcFRJRDBnS0dOaUxDQnRiMlFwSUQwK0lHWjFibU4wYVc5dUlGOWZjbVZ4ZFdseVpTZ3BJSHRjYmlBZ2NtVjBkWEp1SUcxdlpDQjhmQ0FvTUN3Z1kySmJYMTluWlhSUGQyNVFjbTl3VG1GdFpYTW9ZMklwV3pCZFhTa29LRzF2WkNBOUlIc2daWGh3YjNKMGN6b2dlMzBnZlNrdVpYaHdiM0owY3l3Z2JXOWtLU3dnYlc5a0xtVjRjRzl5ZEhNN1hHNTlPMXh1ZG1GeUlGOWZaWGh3YjNKMElEMGdLSFJoY21kbGRDd2dZV3hzS1NBOVBpQjdYRzRnSUdadmNpQW9kbUZ5SUc1aGJXVWdhVzRnWVd4c0tWeHVJQ0FnSUY5ZlpHVm1VSEp2Y0NoMFlYSm5aWFFzSUc1aGJXVXNJSHNnWjJWME9pQmhiR3hiYm1GdFpWMHNJR1Z1ZFcxbGNtRmliR1U2SUhSeWRXVWdmU2s3WEc1OU8xeHVkbUZ5SUY5ZlkyOXdlVkJ5YjNCeklEMGdLSFJ2TENCbWNtOXRMQ0JsZUdObGNIUXNJR1JsYzJNcElEMCtJSHRjYmlBZ2FXWWdLR1p5YjIwZ0ppWWdkSGx3Wlc5bUlHWnliMjBnUFQwOUlGd2liMkpxWldOMFhDSWdmSHdnZEhsd1pXOW1JR1p5YjIwZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWlrZ2UxeHVJQ0FnSUdadmNpQW9iR1YwSUd0bGVTQnZaaUJmWDJkbGRFOTNibEJ5YjNCT1lXMWxjeWhtY205dEtTbGNiaUFnSUNBZ0lHbG1JQ2doWDE5b1lYTlBkMjVRY205d0xtTmhiR3dvZEc4c0lHdGxlU2tnSmlZZ2EyVjVJQ0U5UFNCbGVHTmxjSFFwWEc0Z0lDQWdJQ0FnSUY5ZlpHVm1VSEp2Y0NoMGJ5d2dhMlY1TENCN0lHZGxkRG9nS0NrZ1BUNGdabkp2YlZ0clpYbGRMQ0JsYm5WdFpYSmhZbXhsT2lBaEtHUmxjMk1nUFNCZlgyZGxkRTkzYmxCeWIzQkVaWE5qS0daeWIyMHNJR3RsZVNrcElIeDhJR1JsYzJNdVpXNTFiV1Z5WVdKc1pTQjlLVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdkRzg3WEc1OU8xeHVkbUZ5SUY5ZmRHOUZVMDBnUFNBb2JXOWtMQ0JwYzA1dlpHVk5iMlJsTENCMFlYSm5aWFFwSUQwK0lDaDBZWEpuWlhRZ1BTQnRiMlFnSVQwZ2JuVnNiQ0EvSUY5ZlkzSmxZWFJsS0Y5ZloyVjBVSEp2ZEc5UFppaHRiMlFwS1NBNklIdDlMQ0JmWDJOdmNIbFFjbTl3Y3loY2JpQWdMeThnU1dZZ2RHaGxJR2x0Y0c5eWRHVnlJR2x6SUdsdUlHNXZaR1VnWTI5dGNHRjBhV0pwYkdsMGVTQnRiMlJsSUc5eUlIUm9hWE1nYVhNZ2JtOTBJR0Z1SUVWVFRWeHVJQ0F2THlCbWFXeGxJSFJvWVhRZ2FHRnpJR0psWlc0Z1kyOXVkbVZ5ZEdWa0lIUnZJR0VnUTI5dGJXOXVTbE1nWm1sc1pTQjFjMmx1WnlCaElFSmhZbVZzTFZ4dUlDQXZMeUJqYjIxd1lYUnBZbXhsSUhSeVlXNXpabTl5YlNBb2FTNWxMaUJjSWw5ZlpYTk5iMlIxYkdWY0lpQm9ZWE1nYm05MElHSmxaVzRnYzJWMEtTd2dkR2hsYmlCelpYUmNiaUFnTHk4Z1hDSmtaV1poZFd4MFhDSWdkRzhnZEdobElFTnZiVzF2YmtwVElGd2liVzlrZFd4bExtVjRjRzl5ZEhOY0lpQm1iM0lnYm05a1pTQmpiMjF3WVhScFltbHNhWFI1TGx4dUlDQnBjMDV2WkdWTmIyUmxJSHg4SUNGdGIyUWdmSHdnSVcxdlpDNWZYMlZ6VFc5a2RXeGxJRDhnWDE5a1pXWlFjbTl3S0hSaGNtZGxkQ3dnWENKa1pXWmhkV3gwWENJc0lIc2dkbUZzZFdVNklHMXZaQ3dnWlc1MWJXVnlZV0pzWlRvZ2RISjFaU0I5S1NBNklIUmhjbWRsZEN4Y2JpQWdiVzlrWEc0cEtUdGNibHh1Wlhod2IzSjBJSHRjYmlBZ1gxOWpiMjF0YjI1S1V5eGNiaUFnWDE5bGVIQnZjblFzWEc0Z0lGOWZkRzlGVTAxY2JuMDdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwN1FVRkROVUlzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExHTkJRV003UVVGRGNrTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc2QwSkJRWGRDTzBGQlEzUkVMRWRCUVVjc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExHMUNRVUZ0UWp0QlFVTnNSQ3hIUVVGSExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1kwRkJZenRCUVVONFF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEdOQlFXTTdRVUZEYkVRc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU51UkN4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBPMEZCUTNCSExFTkJRVU03UVVGRFJDeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMmhETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhPMEZCUTNSQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEycEZMRU5CUVVNN1FVRkRSQ3hIUVVGSExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6bERMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOMFJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVsQlFVa3NRMEZCUXp0QlFVTXpReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRUdEJRVU4yUkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpGSUxFTkJRVU1zUTBGQlF6dEJRVU5HTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSVHRCUVVOWUxFTkJRVU03UVVGRFJDeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWMEZCVnp0QlFVTm9TQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETzBGQlEzSkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzN1FVRkRiRVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0QlFVTnlSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFN1FVRkRkRVVzUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFR0QlFVTnFTQ3hEUVVGRExFTkJRVU03UVVGRFJpeERRVUZETEVOQlFVTTdPMEZCUlVZc1RVRkJUU3hEUVVGRE8wRkJRMUFzUTBGQlF5eERRVUZETEZWQlFWVTdRVUZEV2l4RFFVRkRMRU5CUVVNc1VVRkJVVHRCUVVOV0xFTkJRVU1zUTBGQlF6dEJRVU5HTEVOQlFVTTdJbjA9"}},"time_used":38,"timings":{"blocked":22,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BGeBiUJx.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.636Z","timestamp":1785108244636,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_BGeBiUJx.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 1411\r\nlast-modified: Sun, 26 Jul 2026 22:31:16 GMT\r\netag: \"2949e133349d904a8299f7ddb88abd36\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 6b34c3a0ebe92b3f576f7a9526f6c732.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: Zu9u7m9sQQHBDAEMg4L5CRf3CqlyVZQ2kVdGYKrVGZFNAZvTf8hHOA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=eG02s%2FUJZpANN3olFrynPi5VlkCDUAnsJIqDvCyY%2BxDoRMnB%2BeeDfxchii4PK79tqnoCuHU1U7MMLxZiY4lrwefFNStuejgM%2BId3jeqrBO2ADajsLxHp7zS8JD0OsDHe3JXUMCMPJAWREEYu%2FcnS\"}]}\r\ncf-ray: a21727e0fe540883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":4300,"size_decoded":2559,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (4261)","md5":"097e1f08c5e766f9680771113ad9bbb8","sha1":"a148626a58e328b04524305e6b6af4b1e0198b2f","sha256":"b8266ec867de8118255c5bb3e824977eb97e98e6e09088f048e4b63524305c0c","sha512":"25196d7fdc0f7104c81fe4a057e19528bf7861ab1c0685a92071c25df8b379983a5b8228a53a3acbef01085132fee088952a0227fa592d5b520505d682eb0c6f","ssdeep":"96:xRKyZpLK0L7xVLKZPk4y7qltkCL/HJTakkxSoJVSyxWBYMmJT7MwFCYBICCo4Fvf:HKyZMPk4yGltkIHJTakkxFjEYMg3C0If","tlshash":"a7913e016731ce344a656ea8db4b3059aec680d3dee6dc1ab3802ebdd7fa50458b41e6","first_seen":"2026-07-26T23:24:50.379413Z","last_seen":"2026-07-26T23:25:46.902025Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDAwY2VmMjgxLTE3OWMtNDA5Ni05MGZlLTIxNmQxMzY2ODk3MmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTAwY2VmMjgxLTE3OWMtNDA5Ni05MGZlLTIxNmQxMzY2ODk3MmApfSkoKX1jYXRjaHt9aW1wb3J0e0x0IGFzIGV9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciB0PWBBTC5BTS5BTy5BUi5BVy5BWi5CQi5CRC5CRi5CSC5CSi5CTS5CTy5CUy5CVy5CWi5DRy5DSS5DTC5DTS5DTy5DUi5ETy5EWi5FQy5FRy5FVC5GSi5HQS5HRS5HSC5HVC5ITi5JRC5JTC5KTS5KTy5LRS5LRy5LSC5LVy5LWS5LWi5MQy5MSy5NQS5NRC5NSy5NTi5NTy5NUi5NVS5NVi5NVy5NWC5NWS5NWi5ORS5ORy5OUC5PTS5QQS5QRS5QRy5QSy5QWS5SUy5SVy5TQS5TQy5TTi5TUi5TVi5URy5USC5USi5UTi5UUi5UVC5VQS5VRy5VWS5VWi5WRy5WTi5aQS5aTWAuc3BsaXQoYC5gKSxuPXthdTp7ZGV4OmBlbi1hdS9kZXhgLG9uZTpgZW4tYXUvb25lYH0sYnI6e29uZTpgZW4tYnIvb25lYCwiYWR2YW5jZWQtdHJhZGUiOmBlbi1ici91cy1lZWEvYWR2YW5jZWQtdHJhZGVgLCJkZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvYWR2YW5jZWQtdHJhZGUtYXBpIjpgdXMtZWVhLXVrLWJyL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9hZHZhbmNlZC10cmFkZS1hcGlgfSxjYTp7ImxlYXJuL3RpcHMtYW5kLXR1dG9yaWFscy9ob3ctdG8tZWFybi1jcnlwdG8tcmV3YXJkcyI6YGVuLWNhL2xlYXJuL3RpcHMtYW5kLXR1dG9yaWFscy9ob3ctdG8tZWFybi1jcnlwdG8tcmV3YXJkc2AsImRldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9vbnJhbXAiOmBlbi1jYS9kZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvb25yYW1wYCwiYXNzZXQtcmlza3MiOmBlbi1jYS9hc3NldC1yaXNrc2Asb25lOmBlbi1jYS9vbmVgfSxkZTp7b25lOmBlbi1kZS9vbmVgfSxlczp7b25lOmBlbi1lcy9vbmVgfSxmcjp7cHJvZHVjdHM6YGVuLWZyL3Byb2R1Y3RzYCxvbmU6YGVuLWZyL29uZWB9LGdiOnthYm91dDpgZW4tZ2IvYWJvdXRgLCJhZHZhbmNlZC10cmFkZSI6YGVuLWdiL2FkdmFuY2VkLXRyYWRlYCxib3Jyb3c6YGVuLWdiL2JvcnJvd2AsY2FyZDpgZW4tZ2IvY2FyZGAsZGV4OmBlbi1nYi9kZXhgLCJkZXZlbG9wZXItcGxhdGZvcm0vcHJvZHVjdHMvYWR2YW5jZWQtdHJhZGUtYXBpIjpgdXMtZWVhLXVrLWJyL2RldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9hZHZhbmNlZC10cmFkZS1hcGlgLGVhcm46YGVuLWdiL2Vhcm5gLGV2ZW50czpgZW4tZ2IvZXZlbnRzYCxvbmU6YGVuLWdiL29uZWAscHJvZHVjdHM6YGVuLWdiL3Byb2R1Y3RzYCxzZWN1cml0eTpgZW4tZ2Ivc2VjdXJpdHlgLHVzZGM6YGVuLWdiL3VzZGNgLHdhbGxldDpgZW4tZ2Ivd2FsbGV0YCx3ZWFsdGg6YGVuLWdiL3dlYWx0aGB9LGl0OntvbmU6YGVuLWl0L29uZWB9LG5sOntvbmU6YGVuLW5sL29uZWB9LHB0OntvbmU6YGVuLXB0L29uZWB9LHNnOntvbmU6YGVuLXNnL29uZWB9LHVzOnsiYWR2YW5jZWQtdmlwIjpgdXMvYWR2YW5jZWQtdmlwYH0saW46e3Byb2R1Y3RzOmBlbi1pbi9wcm9kdWN0c2B9fSxyPVtgZWVhYCxgd2VhbHRoX2V1cm9wZWAsYHVzX2VlYWAsYGNiMV9tZW1iZXJfbW9udGhgLGBvbmVfb3ZlcnJpZGVgLGBlYXJuX292ZXJyaWRlYCxgYWR2YW5jZWRfdHJhZGVfb3ZlcnJpZGVgLGBhZHZhbmNlZF90cmFkZV91c2AsYHVzZGNfdXNfb3ZlcnJpZGVgLGB1c2RjX3QxX292ZXJyaWRlYCxgdXNkY19nbG9iYWxgLGBtZW1iZXJfbW9udGhfcGx1c19zdG9ja19wZXJwc19vdmVycmlkZWAsYHN0b2NrX3BlcnBldHVhbHNgLGBtZW1iZXJfbW9udGhfaG9tZXBhZ2Vfb3ZlcnJpZGVgLGB1c19yZWdpb25gXSxpPWBBVC5CRS5CRy5DWS5DWi5ERS5ESy5FRS5FUy5GSS5GUi5HUi5IUi5JRS5JVC5MVC5MVS5MVi5NVC5OTC5QTC5QVC5STy5TRS5TSS5TS2Auc3BsaXQoYC5gKSxhPVtgSkVgLGBJTWAsYEFEYCxgR0dgLGBHSWBdLG89W2BBVGAsYEJFYCxgQkdgLGBDSGAsYENZYCxgQ1pgLGBES2AsYEVFYCxgRklgLGBHUmAsYEhSYCxgSFVgLGBJRWAsYExJYCxgTFRgLGBMVWAsYExWYCxgTVRgLGBOT2AsYFBMYCxgUk9gLGBTRWAsYFNJYCxgU0tgLGBTTWBdLHM9W2BVU2AsYEFVYCxgSkVgLGBJTWAsYEFEYCxgR0dgLGBHSWAsYFNHYF0sYz1bYEFVYCxgSkVgLGBJTWAsYEFEYCxgR0dgLGBHSWAsYFNHYF0sbD1bYFVTYF0sdT1bYFVTYCxgSkVgLGBJTWAsYEFEYCxgR0dgLGBHSWBdLGQ9W2BBVWAsYFNHYF0sZj1bYFVTYF0scD1bLi4udSwuLi5kLGBHQmBdLG09Wy4uLm5ldyBTZXQoWy4uLmUsLi4udF0pXS5maWx0ZXIoZT0+IXAuaW5jbHVkZXMoZSkpLGg9YEhLLlZOLkFSLkJPLklELk1YLkNILlRXLkFMLkRaLkFPLkFNLkJILkJELkJCLkJKLlZHLkJGLktILkNNLktZLkNMLkNPLkNSLkRPLkVDLkVHLlNWLkVULkZPLkdBLkdFLkdILkdJLkdULkhOLklMLkpNLkpFLktXLktHLk1LLk1WLk1ELk1DLk1OLk1BLk1aLk5QLk5FLlBLLlBBLlBZLlBFLkxDLlNNLlNOLlJTLlpBLktSLkxLLlRHLlRULlROLlRSLkFFLkFELkFXLkFaLkJTLkJXLkJaLkZKLkpPLk1PLk1SLk1VLk1XLk9NLlBHLlJXLlNDLlNSLlRKLlVHLlVZLlVaLlpNLlNBYC5zcGxpdChgLmApLGc9W2BBRGAsYENIYCxgR0lgLGBKRWAsYFNNYF0sXz1gQVQuQkUuQkcuQ1kuQ1ouREsuRUUuRkkuR0cuR1IuSFIuSFUuSUUuSU0uTEkuTFQuTFUuTFYuTVQuTk8uUEwuUFQuUk8uU0UuU0kuU0tgLnNwbGl0KGAuYCksdj17ZWVhOmUsd2VhbHRoX2V1cm9wZTppLHVzX2VlYTpbYFVTYCwuLi5lXSxjYjFfbWVtYmVyX21vbnRoOm8sb25lX292ZXJyaWRlOmEsZWFybl9vdmVycmlkZTpzLGFkdmFuY2VkX3RyYWRlX292ZXJyaWRlOmMsYWR2YW5jZWRfdHJhZGVfdXM6bCx1c2RjX3VzX292ZXJyaWRlOnUsdXNkY190MV9vdmVycmlkZTpkLHVzZGNfZ2xvYmFsOm0sbWVtYmVyX21vbnRoX3BsdXNfc3RvY2tfcGVycHNfb3ZlcnJpZGU6ZyxzdG9ja19wZXJwZXR1YWxzOmgsbWVtYmVyX21vbnRoX2hvbWVwYWdlX292ZXJyaWRlOl8sdXNfcmVnaW9uOmZ9LHk9e2VlYTp7ImFkdmFuY2VkLXRyYWRlIjpgZWVhL2FkdmFuY2VkLXRyYWRlYCx3YWxsZXQ6YGVlYS93YWxsZXRgLGRleDpgZWVhL2RleGAsdXNkYzpgZWVhL3VzZGNgLGV2ZW50czpgZWVhL2V2ZW50c2B9LHdlYWx0aF9ldXJvcGU6e3dlYWx0aDpgZXVyb3BlLW92ZXJyaWRlL3dlYWx0aGB9LHVzX2VlYTp7ImRldmVsb3Blci1wbGF0Zm9ybS9wcm9kdWN0cy9hZHZhbmNlZC10cmFkZS1hcGkiOmB1cy1lZWEtdWstYnIvZGV2ZWxvcGVyLXBsYXRmb3JtL3Byb2R1Y3RzL2FkdmFuY2VkLXRyYWRlLWFwaWB9LGNiMV9tZW1iZXJfbW9udGg6e29uZTpgbWVtYmVyLW1vbnRoLW92ZXJyaWRlL29uZWB9LG9uZV9vdmVycmlkZTp7b25lOmBvdmVycmlkZS9vbmVgfSxlYXJuX292ZXJyaWRlOntlYXJuOmBvdmVycmlkZS9lYXJuYH0sYWR2YW5jZWRfdHJhZGVfb3ZlcnJpZGU6eyJhZHZhbmNlZC10cmFkZSI6YG92ZXJyaWRlL2FkdmFuY2VkLXRyYWRlYH0sYWR2YW5jZWRfdHJhZGVfdXM6eyJhZHZhbmNlZC10cmFkZSI6YHVzL2FkdmFuY2VkLXRyYWRlYH0sdXNkY191c19vdmVycmlkZTp7dXNkYzpgdXMtb3ZlcnJpZGUvdXNkY2B9LHVzZGNfdDFfb3ZlcnJpZGU6e3VzZGM6YHQxLW92ZXJyaWRlL3VzZGNgfSx1c2RjX2dsb2JhbDp7dXNkYzpgZ2xvYmFsL3VzZGNgfSxtZW1iZXJfbW9udGhfcGx1c19zdG9ja19wZXJwc19vdmVycmlkZTp7ImludGwtaG9tZSI6YG1lbWJlci1tb250aC1wbHVzLXN0b2NrLXBlcnBzLW92ZXJyaWRlL2ludGwtaG9tZWB9LHN0b2NrX3BlcnBldHVhbHM6eyJhZHZhbmNlZC10cmFkZSI6YHN0b2NrLXBlcnBzLWxvY2FsZXMvYWR2YW5jZWQtdHJhZGVgLCJpbnRsLWhvbWUiOmBzdG9jay1wZXJwcy1sb2NhbGVzL2ludGwtaG9tZWB9LG1lbWJlcl9tb250aF9ob21lcGFnZV9vdmVycmlkZTp7ImludGwtaG9tZSI6YG1lbWJlci1tb250aC1vdmVycmlkZS9pbnRsLWhvbWVgfSx1c19yZWdpb246e29uZTpgdXMtb3ZlcnJpZGUvb25lYH19O2V4cG9ydHt5IGFzIGksdiBhcyBuLG4gYXMgcixyIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0JHZUJpVUp4LmpzLm1hcA=="}},"time_used":104,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":104,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DAC8JqRx2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.683Z","timestamp":1785108244683,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DAC8JqRx2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 333\r\nlast-modified: Sun, 26 Jul 2026 22:31:24 GMT\r\netag: \"93c0814669496878634c05a4349142d0\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 26512aa427c30d93015b4bde75974708.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: D1YhEXgpO9xrbE5vkUFv-dOXJooUSfwGu5Qt9M0xl_zL_Df7x6vryQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=3AFO%2FzfkaUkMm0RhSRtXS7TBF6cmoiBLrGlnEPx%2BEquwnryuPfj6FHIKldBxmR2xvayOk3oDcb%2BL%2BKdjTt%2Bl%2BkRi9htWax9N0iya2todTNbJoAermusjksiLke5U2G5uGzJqVywFHga2o8HyTdA%2B\"}]}\r\ncf-ray: a21727e14f030883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":578,"size_decoded":1484,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (538)","md5":"dcf965f8803d9a4151aa177dea74c3cc","sha1":"c4da4d74b1820d1eb9c5ca641bdc49b616fd3675","sha256":"1c59144785a5462adb96018a5e035a7791d7d2e1c9cd56617222cff47c43a104","sha512":"43743c2d659563910713133d2a543fdedbf84d4a654ab8674bf405baf6008032f67ed0d992d3e613f3e903e607dedb836f73650d5de10a72752e6b72c2657713","ssdeep":"","tlshash":"dbf0e1c699f11b658014257fc1a765023365801ae3dcaf30f1294b3c13fddea8540b13","first_seen":"2026-07-26T23:24:50.381252Z","last_seen":"2026-07-26T23:25:46.855576Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDQyZmYxMTg4LWEwMzctNDhmNC04YzliLTVjMWYwZDE5YmUwMGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTQyZmYxMTg4LWEwMzctNDhmNC04YzliLTVjMWYwZDE5YmUwMGApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsaGYgYXMgdH1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7aW1wb3J0e3QgYXMgbn1mcm9tIi4vY19CUE5DZG8zcjIuanMiO3ZhciByPWUodCgpKTtmdW5jdGlvbiBpKGUpe2xldCB0PW4oKTtyZXR1cm4oMCxyLnVzZUNhbGxiYWNrKShuPT5lKHsuLi5uLGNhY2hlVmVyc2lvbjp0fSksW2UsdF0pfWV4cG9ydHtpIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0RBQzhKcVJ4Mi5qcy5tYXA="}},"time_used":102,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":102,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BSQ_mPSi.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.686Z","timestamp":1785108244686,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_BSQ_mPSi.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 7857\r\nlast-modified: Sun, 26 Jul 2026 22:31:17 GMT\r\netag: \"e05829c9c0d747716e2c283c2060c20a\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 c9dfe01ff817aaa5d7026e2556d7e676.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: ixUJe60SVJknRYNKCxP5DdZ87_qiVuDZa6eDLFsKRiJ_5qXsCktanA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=MXy5%2BT1DoS5ORbdvjbfHVeFtqbH6RgbCFJkQu7CnXUdI5FPYYoVEc5N1yy480mfr5g9WjBOYXtmhKsSI8Q2S1hVKpXNiBGsg0JLWsCPwXu5hAIyF0r0fNylLTrRRgkAPG8nquv002xWO8ZvdMd2S\"}]}\r\ncf-ray: a21727e14f110883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":28353,"size_decoded":8997,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (24587)","md5":"70b3cc53cb4ff1e231982e95bcd22ee5","sha1":"0b3ea5869baa35858daa45295bd19c4354fd2eda","sha256":"827e1b6adca9bffde01d05ff4638377dd1e96eaf61215efd78b7834a3fcea918","sha512":"8d800400bc454aac4b143514a25a570825cf9964b3a31613d387e3dd46cd98a84cee2b679dead3d8b35d20039ee526d7b8099251b3a8e2f0c96cdee623b1bcba","ssdeep":"384:3AiJKkfZzHM7ndygmpVqMkZO2/d1bXwItUJyTR1aXM3z:3OmxMY2b9p","tlshash":"c1d2eaaa71233164716bde59907b680c6b6dc844e94a04d879370d2e23de3e07796fcf","first_seen":"2026-07-26T23:24:50.382818Z","last_seen":"2026-07-26T23:25:46.869407Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGNkNjZhM2NmLTVjNWYtNDgxZi05N2ZjLWNkYmYzNWZmNTRiY2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWNkNjZhM2NmLTVjNWYtNDgxZi05N2ZjLWNkYmYzNWZmNTRiY2ApfSkoKX1jYXRjaHt9aW1wb3J0e2EgYXMgZSxpIGFzIHQsbixvIGFzIHIsciBhcyBpLHQgYXMgYSx1IGFzIG99ZnJvbSIuL2NfRHRzMTVxaUIuanMiO2ltcG9ydHt0IGFzIHN9ZnJvbSIuL2NfQ29iQWxlVjYyLmpzIjtpbXBvcnR7YyxsLG4gYXMgdSxvIGFzIGQsciBhcyBmLHMgYXMgcCx0IGFzIG0sdSBhcyBofWZyb20iLi9jX2owU0FGMHVuLmpzIjtpbXBvcnR7biBhcyBnLHIgYXMgXyx0IGFzIHZ9ZnJvbSIuL2NfQjJsLW1aMnIuanMiO2ltcG9ydHtuIGFzIHksdCBhcyBifWZyb20iLi9jX0J4cHdUb0k5LmpzIjtpbXBvcnR7YSBhcyBlZSxvIGFzIHh9ZnJvbSIuL2NfRHQya1hjczIuanMiO2ltcG9ydHtGaSBhcyBTLEdpIGFzIEMsSWkgYXMgdyxKaSBhcyBULEtpIGFzIEUsTGkgYXMgRCxMbyBhcyBPLE9pIGFzIHRlLFFvIGFzIG5lLFJpIGFzIGssVWkgYXMgQSxXaSBhcyBqLFdwIGFzIE0sWWMgYXMgTixfYSBhcyBQLF9kIGFzIEYsYWEgYXMgSSxibCBhcyBMLGNhIGFzIFIsY2QgYXMgeixlbCBhcyBCLGZhIGFzIFYsZmYgYXMgcmUsZ3MgYXMgaWUsaGEgYXMgYWUsaGYgYXMgb2UsaWEgYXMgSCxqaSBhcyBVLGsgYXMgc2UsbWQgYXMgY2UscGEgYXMgVyxxaSBhcyBsZSx0byBhcyBHLHVkIGFzIHVlLHhsIGFzIEssemEgYXMgcSx6aSBhcyBKfWZyb20iLi9lX0NycVJXMXdQLmpzIjtpbXBvcnR7dCBhcyBkZX1mcm9tIi4vY19MdVYxWkxYdS5qcyI7aW1wb3J0e3QgYXMgZmV9ZnJvbSIuL2NfQ0k1MmJRMVEyLmpzIjtpbXBvcnR7biBhcyBwZSx0IGFzIG1lfWZyb20iLi9jX0RBeWlvT1U0Mi5qcyI7dmFyIFk9cmUoKSxoZT17TGVnYWxUZXh0OmBsZWdhbGB9LGdlPXEoZnVuY3Rpb24oe2hlYWRlckxheW91dDplPWBDZW50ZXIgU3RhY2tlZGAsdGl0bGU6dCxwYXJhZ3JhcGg6bixjdGFHcm91cDpyLG1lZGlhOmksbWVkaWFBc3BlY3RSYXRpbzphPWAyMTo5YCxmb290ZXJMYXlvdXQ6cz1gQ2VudGVyIFN0YWNrZWRgLGZvb3RlclRpdGxlOmMsZm9vdGVyUGFyYWdyYXBoOmwsZm9vdGVyQ3RhR3JvdXA6dSxsZWdhbDpkLGlkOmYsdGVzdElEOnA9YGNkeC1jZW50ZXJgLGNsYXNzTmFtZTptLHNlY3Rpb25TZXR0aW5nczpoLG5vU3BhY2luZzpnPSExfSl7bGV0IF89RyhoZS5MZWdhbFRleHQpO3JldHVybigwLFkuanN4cykoSCx7aWQ6Zix0ZXN0SUQ6cCxjbGFzc05hbWU6bSxzZWN0aW9uU2V0dGluZ3M6aCxub1NwYWNpbmc6ZyxjaGlsZHJlbjpbKDAsWS5qc3gpKHYse3RpdGxlOnQscGFyYWdyYXBoOm4sY3RhczpyLGxheW91dDplLHRlc3RJRDpgJHtwfS1zZWN0aW9uLWhlYWRlcmB9KSxFKGkpJiYoMCxZLmpzeCkoUyx7bWVkaWE6aSxhc3BlY3RSYXRpbzphfSksQyhpKSYmKDAsWS5qc3gpKEEse21lZGlhOmksYXNwZWN0UmF0aW86YX0pLCgwLFkuanN4KShvLHt0aXRsZTpjLHBhcmFncmFwaDpsLGN0YXM6dSx0ZXN0SUQ6YCR7cH0tc2VjdGlvbi1mb290ZXJgLGxheW91dDpzfSksVChkKSYmKDAsWS5qc3gpKEwse21heFdpZHRoOmA5MDBweGAsYWxpZ25TZWxmOmBjZW50ZXJgLHRlc3RJRDpgJHtwfS1sZWdhbGAsY2hpbGRyZW46KDAsWS5qc3gpKFUse2ZvbnQ6YGxlZ2FsYCxjb2xvcjpgZmdNdXRlZGAsY29udGVudDpkLHRleHRBbGlnbjpgY2VudGVyYCxvblJpY2hUZXh0TGlua0NsaWNrOl99KX0pXX0pfSksX2U9e0Rpc2FibGVkOi41LEVuYWJsZWQ6MX0sdmU9e0Rpc2FibGVkOmBmZ011dGVkYCxFbmFibGVkOmBmZ1ByaW1hcnlgfSx5ZT17RGlzYWJsZWQ6YGJnU2Vjb25kYXJ5YCxFbmFibGVkOmBiZ1ByaW1hcnlXYXNoYH0sYmU9e0xpbms6YENvbXBhcmlzb25DYXJkU2VjdGlvbkNlbGxMaW5rYH0seGU9cShmdW5jdGlvbih7aWNvbjplLHRpdGxlOnQsY2FwdGlvbjpuLHRlc3RJRDpyLGNsYXNzTmFtZTppLHN0YXRlOmEsbGluazpvLGNvbnRlbnRUZXh0QWxpZ246cz1gbGVmdGB9KXtsZXR7bGluazpjfT1rKG8pLGw9RyhiZS5MaW5rKSx1PW8/U2U6eixkPW8/e2hyZWY6YyxvbkNsaWNrOmx9Ont9LGY9cz09PWBsZWZ0YD9gc3RhcnRgOmBjZW50ZXJgO3JldHVybigwLFkuanN4KSh1LHsuLi5kLGNoaWxkcmVuOigwLFkuanN4cykoSyx7d2lkdGg6YDEwMCVgLGdhcDoyLHBhZGRpbmdZOjEuNSxtaW5IZWlnaHQ6e2Rlc2t0b3A6MTA4fSxhbGlnbkl0ZW1zOmBjZW50ZXJgLGp1c3RpZnlDb250ZW50OnM9PT1gY2VudGVyYD9gY2VudGVyYDpgZmxleC1zdGFydGAsY2xhc3NOYW1lOmksdGVzdElEOnIsb3BhY2l0eTpfZVthXSxjb2xvcjp2ZVthXSxjaGlsZHJlbjpbZSYmKDAsWS5qc3gpKEose25hbWU6ZSxjb2xvcjp2ZVthXSxwYWRkaW5nOjEsc2l6ZTpgc2AsY2xhc3NOYW1lOmBpY29uYCxiYWNrZ3JvdW5kOnllW2FdLGJvcmRlclJhZGl1czoxZTN9KSwoVCh0KXx8VChuKSkmJigwLFkuanN4cykoTCx7YWxpZ25JdGVtczpzPT09YGNlbnRlcmA/YGNlbnRlcmA6YGZsZXgtc3RhcnRgLGNoaWxkcmVuOltUKHQpJiYoMCxZLmpzeCkoVSx7Y2xhc3NOYW1lOmB0aXRsZWAsZm9udDpgbGFiZWwxYCxjb250ZW50OnQsdGV4dEFsaWduOmZ9KSxUKG4pJiYoMCxZLmpzeCkoVSx7Y2xhc3NOYW1lOmBjYXB0aW9uYCxjb2xvcjpgZmdNdXRlZGAsZm9udDpgY2FwdGlvbmAsY29udGVudDpuLHRleHRBbGlnbjpmfSldfSldfSl9KX0pLFNlPVAoTikud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YENEWENvbXBhcmlzb25DYXJkU2VjdGlvbkNlbGxfX1dyYXBwZXJMaW5rYCxjb21wb25lbnRJZDpgc2MtZTZkZTEwYjEtMGB9KShbYCY6aG92ZXJ7LnRpdGxle2NvbG9yOnZhcigtLWNvbG9yLWJnUHJpbWFyeSk7fS5jYXB0aW9ue2NvbG9yOnZhcigtLWNvbG9yLWZnKTt9fWBdKSxDZT1xKGZ1bmN0aW9uKHtjZWxsczplLGNsYXNzTmFtZTp0LHRlc3RJRDpuLGNvbnRlbnRUZXh0QWxpZ246cj1gbGVmdGB9KXtyZXR1cm4gZSE9bnVsbCYmZS5sZW5ndGg/KDAsWS5qc3gpKEwse2NsYXNzTmFtZTp0LHRlc3RJRDpuLHdpZHRoOmAxMDAlYCxjaGlsZHJlbjplLm1hcChlPT4oMCxZLmpzeCkoeGUsey4uLmUsY29udGVudFRleHRBbGlnbjpyfSxlLmlkKSl9KTpudWxsfSksWD1NKG9lKCkpLHdlPXEoZnVuY3Rpb24oe3RpdGxlOmUsZGVzY3JpcHRpb246dCxzZWN0aW9uczpuLGNsYXNzTmFtZTpyLHRlc3RJRDppLGN0YUdyb3VwOmEsc3VidGl0bGU6byxoaWdobGlnaHRlZDpzLGNvbnRlbnRUZXh0QWxpZ246Yz1gbGVmdGAsdGl0bGVUZXh0QWxpZ246bD1gbGVmdGB9KXtsZXQgdT1sPT09YGxlZnRgP2BzdGFydGA6YGNlbnRlcmA7cmV0dXJuKDAsWS5qc3hzKShMLHt3aWR0aDpgMTAwJWAsZ2FwOldbYGNhcmQtZ2FwYF0scGFkZGluZzpXW2BjYXJkLXBhZGRpbmdgXSx0ZXN0SUQ6aSxjbGFzc05hbWU6cixib3JkZXJSYWRpdXM6VltgY2FyZC1jb3JuZXJgXSxib3JkZXJXaWR0aDpzPzIwMDoxMDAsYm9yZGVyQ29sb3I6cz9gYmdTZWNvbmRhcnlgOmBiZ0xpbmVgLGJhY2tncm91bmQ6cz9gYmdTZWNvbmRhcnlgOmBiZ2AsbWF4V2lkdGg6e2Rlc2t0b3A6NDkwfSxjaGlsZHJlbjpbKFQoZSl8fFQobyl8fFQodCkpJiYoMCxZLmpzeHMpKEwse2dhcDoxLGFsaWduSXRlbXM6bD09PWBjZW50ZXJgP2BjZW50ZXJgOmBmbGV4LXN0YXJ0YCxjaGlsZHJlbjpbVChlKSYmKDAsWS5qc3gpKFUse2ZvbnQ6YHRpdGxlNGAsY29udGVudDplLHRleHRBbGlnbjp1fSksVChvKSYmKDAsWS5qc3gpKFUse2ZvbnQ6YGhlYWRsaW5lYCxjb2xvcjpgZmdNdXRlZGAsY29udGVudDpvLHRleHRBbGlnbjp1fSksVCh0KSYmKDAsWS5qc3gpKFUse2ZvbnQ6YGNhcHRpb25gLGNvbG9yOmBmZ011dGVkYCxjb250ZW50OnQsdGV4dEFsaWduOnV9KV19KSwhIShuIT1udWxsJiZuLmxlbmd0aCkmJigwLFkuanN4KShMLHtnYXA6MS41LHdpZHRoOmAxMDAlYCxjaGlsZHJlbjpuLm1hcCgoZSx0KT0+KDAsWS5qc3hzKShYLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsWS5qc3gpKENlLHsuLi5lLGNvbnRlbnRUZXh0QWxpZ246Y30pLHQ8bi5sZW5ndGgtMSYmKDAsWS5qc3gpKEIse2NvbG9yOmBiZ0xpbmVgfSldfSxlLmlkKSl9KSwhIShhIT1udWxsJiZhLmxlbmd0aCkmJigwLFkuanN4KShLLHtnYXA6MixmbGV4RGlyZWN0aW9uOntwaG9uZTpgY29sdW1uYCxiYXNlOmByb3dgfSx3aWR0aDpgMTAwJWAsZmxleFdyYXA6YG5vd3JhcGAsaGVpZ2h0OmAxMDAlYCxhbGlnbkl0ZW1zOmBmbGV4LWVuZGAsY2hpbGRyZW46YS5tYXAoZT0+KDAsWS5qc3gpKEQse2Jsb2NrOiEwLC4uLmV9LGUuaWQpKX0pXX0pfSksVGU9cShmdW5jdGlvbih7aGVhZGVyVGl0bGU6ZSxoZWFkZXJMYXlvdXQ6dCxoZWFkZXJDdGFHcm91cDpuLGhlYWRlclBhcmFncmFwaDpyLGNhcmRzOmksZm9vdGVyTGF5b3V0OmEsZm9vdGVyQ3RhR3JvdXA6cyxmb290ZXJQYXJhZ3JhcGg6Yyxmb290ZXJUaXRsZTpsLGNsYXNzTmFtZTp1LGxlZ2FsOmQsdGVzdElEOmYsY29udGVudFRleHRBbGlnbjpwPWBsZWZ0YCx0aXRsZVRleHRBbGlnbjptPWBsZWZ0YCxzZWN0aW9uU2V0dGluZ3M6aH0pe3JldHVybigwLFkuanN4cykoSCx7Y2xhc3NOYW1lOnUsdGVzdElEOmYsc2VjdGlvblNldHRpbmdzOmgsY2hpbGRyZW46WygwLFkuanN4KSh2LHt0aXRsZTplLGxheW91dDp0LGN0YXM6bixwYXJhZ3JhcGg6cn0pLCgwLFkuanN4KSh6LHtkaXNwbGF5OmBmbGV4YCxnYXA6MixmbGV4RGlyZWN0aW9uOntkZXNrdG9wOmByb3dgLGJhc2U6YGNvbHVtbmB9LGp1c3RpZnlDb250ZW50OntkZXNrdG9wOmBjZW50ZXJgfSxjaGlsZHJlbjppLm1hcChlPT4oMCxZLmpzeCkod2Usey4uLmUsY29udGVudFRleHRBbGlnbjpwLHRpdGxlVGV4dEFsaWduOm19LGUuaWQpKX0pLCgwLFkuanN4KShvLHt0aXRsZTpsLGxheW91dDphLGN0YXM6cyxwYXJhZ3JhcGg6Y30pLFQoZCkmJigwLFkuanN4KSh6LHttYXhXaWR0aDpgOTAwcHhgLGFsaWduU2VsZjpgY2VudGVyYCxjaGlsZHJlbjooMCxZLmpzeCkoVSx7Zm9udDpgbGVnYWxgLGNvbG9yOmBmZ011dGVkYCxjb250ZW50OmQsdGV4dEFsaWduOmBjZW50ZXJgfSl9KV19KX0pLEVlPXttZWRpYVN0eWxlOntmbGV4QmFzaXM6e2Rlc2t0b3A6YDUwJWAsYmFzZTpgMTAwJWB9fSxjb250ZW50Q29udGFpbmVyU3R5bGU6e2ZsZXhCYXNpczp7ZGVza3RvcDpgNTAlYCxiYXNlOmAxMDAlYH0sanVzdGlmeUNvbnRlbnQ6YGNlbnRlcmB9fSxEZT17SW1tZXJzaXZlOntleWVicm93U3R5bGU6e2FsaWduU2VsZjpgY2VudGVyYH0sYXNwZWN0UmF0aW86e2Rlc2t0b3A6YDIxOjlgLHRhYmxldDpgMTY6OWAscGhvbmU6YDE6MWB9LHRpdGxlQW5kU3ViaGVhZENvbnRhaW5lclN0eWxlOnthbGlnbkl0ZW1zOmBjZW50ZXJgfSxoZWFkbGluZVN0eWxlOntmb250OmBkaXNwbGF5MWAsdGV4dEFsaWduOmBjZW50ZXJgfSxzdWJoZWFkQ29udGFpbmVyU3R5bGU6e2FsaWduSXRlbXM6YGNlbnRlcmB9LHN1YmhlYWRTdHlsZTp7dGV4dEFsaWduOmBjZW50ZXJgfX0sIlN0YW5kYXJkOiBNZWRpYSAtIFRleHQiOnsuLi5FZSxzZWN0aW9uU3R5bGU6e2ZsZXhEaXJlY3Rpb246e2Jhc2U6YGNvbHVtbmAsZGVza3RvcDpgcm93LXJldmVyc2VgfSxtYXhIZWlnaHQ6e2Rlc2t0b3A6YDc1dmhgfX0sYXNwZWN0UmF0aW86YDE6MWB9LCJTdGFuZGFyZDogVGV4dCAtIE1lZGlhIjp7Li4uRWUsc2VjdGlvblN0eWxlOntmbGV4RGlyZWN0aW9uOntiYXNlOmBjb2x1bW5gLGRlc2t0b3A6YHJvd2B9LG1heEhlaWdodDp7ZGVza3RvcDpgNzV2aGB9fSxhc3BlY3RSYXRpbzpgMToxYH0sU3RhY2tlZDp7ZXllYnJvd1N0eWxlOntwYWRkaW5nQm90dG9tOntwaG9uZTowLGJhc2U6MX19LGFzcGVjdFJhdGlvOntkZXNrdG9wOmAyMTo5YCx0YWJsZXQ6YDE2OjlgLHBob25lOmAxOjFgfSx0aXRsZUFuZFN1YmhlYWRDb250YWluZXJTdHlsZTp7ZmxleERpcmVjdGlvbjp7YmFzZTpgY29sdW1uYCxkZXNrdG9wOmByb3dgfX0saGVhZGxpbmVTdHlsZTp7ZmxleEJhc2lzOmBhdXRvYH0sc3ViaGVhZFN0eWxlOntmb250OmB0aXRsZTRgfX19O2Z1bmN0aW9uIE9lKHtleWVicm93VGV4dDplLGV5ZWJyb3dJY29uOnR9KXtyZXR1cm4oMCxZLmpzeHMpKHose3N0eWxlOntib3JkZXJXaWR0aDoxfSxib3JkZXJlZDohMCxwYWRkaW5nWDoxLjUscGFkZGluZ1k6Ljc1LGJvcmRlclJhZGl1czozMDAsbWFyZ2luOjAsd2lkdGg6YGZpdC1jb250ZW50YCxjaGlsZHJlbjpbdD8oMCxZLmpzeCkoSix7YWxpZ25JdGVtczpgY2VudGVyYCxzaXplOmBzYCxuYW1lOnQscGFkZGluZ0VuZDoxLGNvbG9yOmBmZ2B9KTpudWxsLCgwLFkuanN4KShVLHthczpgcGAsY29sb3I6YGZnTXV0ZWRgLGZvbnQ6YGNhcHRpb25gLGNvbnRlbnQ6ZX0pXX0pfWZ1bmN0aW9uIGtlKHtjbGFzc05hbWU6ZSxsYXlvdXQ6dCxleWVicm93VGV4dDpuLGV5ZWJyb3dJY29uOnIsaGVhZGxpbmU6aSxzdWJoZWFkOmEsY3RhczpzLG1lZGlhOmMsbGVnYWw6bCxsZWdhbEhpZ2g6dSxzZWN0aW9uU2V0dGluZ3M6ZCxjdXN0b21NZWRpYTpmLG9uTGVnYWxUZXh0TGlua0NsaWNrOnAsb25TdWJoZWFkTGlua0NsaWNrOm0sdGVzdElEOmgsZm9vdGVyVGl0bGU6Zyxmb290ZXJQYXJhZ3JhcGg6dixmb290ZXJDdGFHcm91cDp5LGZvb3RlckxheW91dDpifSl7bGV0e3NlY3Rpb25TdHlsZTplZSxleWVicm93U3R5bGU6eCxoZWFkbGluZVN0eWxlOlMsbWVkaWFTdHlsZTpPLGNvbnRlbnRDb250YWluZXJTdHlsZTp0ZSx0aXRsZUFuZFN1YmhlYWRDb250YWluZXJTdHlsZTpuZSxzdWJoZWFkQ29udGFpbmVyU3R5bGU6ayxzdWJoZWFkU3R5bGU6QSxhc3BlY3RSYXRpbzpNfT1EZVt0XXx8e30sTj1zPT1udWxsP3ZvaWQgMDpzLmZpbmQoZT0+ZS5jb250ZW50VHlwZUlkPT09YENEWFYyX0VtYWlsRm9ybWApLFA9TiE9PXZvaWQgMCxGPXM9PW51bGw/dm9pZCAwOnMuZmlsdGVyKGU9PmUuY29udGVudFR5cGVJZD09PWBDRFhWMl9CdXR0b25gKSxJPSFQJiYoRj09bnVsbD92b2lkIDA6Ri5sZW5ndGgpLFI9KDAsWC51c2VNZW1vKSgoKT0+RShjKSYmdyhjLmRlZmF1bHRFeHRlcm5hbFZpZGVvVXJsKSYmdD09PWBTdGFja2VkYD97ZGVza3RvcDpgMjE6OWAsdGFibGV0OmAxNjo5YCxwaG9uZTpgMTY6OWB9Ok0sW00sdCxjXSksQj1qKHthc3BlY3RSYXRpbzpSfSkuYm94UHJvcFN0eWxlcy5hc3BlY3RSYXRpbztyZXR1cm4oMCxZLmpzeHMpKEgse2NsYXNzTmFtZTplLHRlc3RJRDpoLHNlY3Rpb25TZXR0aW5nczpkLHBhZGRpbmdZOldbYGNvbnRhaW5lci10b3AtZG93bi1wYWRkaW5nLW1kYF0sY2hpbGRyZW46WygwLFkuanN4cykoTCx7Z2FwOldbYGNvbnRhaW5lci1nYXBgXSwuLi5lZSxjaGlsZHJlbjpbKDAsWS5qc3hzKShMLHtnYXA6V1tgY29udGVudC1lbGVtZW50LWdhcGBdLC4uLnRlLGNoaWxkcmVuOltuJiYoMCxZLmpzeCkoeix7YWxpZ25TZWxmOmBiYXNlbGluZWAsLi4ueCxjaGlsZHJlbjooMCxZLmpzeCkoT2Use2V5ZWJyb3dUZXh0Om4sZXllYnJvd0ljb246cn0pfSksKDAsWS5qc3hzKSh6LHtmbGV4RGlyZWN0aW9uOmBjb2x1bW5gLGdhcDpXW2Bjb250ZW50LWVsZW1lbnQtZ2FwYF0sYWxpZ25JdGVtczpgZmxleC1zdGFydGAsLi4ubmUsY2hpbGRyZW46WygwLFkuanN4KShVLHtjb250ZW50Oml8fGBgLGFzOmBoMWAsZm9udDpgZGlzcGxheTJgLC4uLlN9KSwoVChhKXx8UHx8SSkmJigwLFkuanN4cykoTCx7Z2FwOldbYGNvbnRlbnQtZWxlbWVudC1nYXBgXSxhbGlnbkl0ZW1zOmBmbGV4LXN0YXJ0YCx3aWR0aDpgMTAwJWAsbWF4V2lkdGg6YDkwMHB4YCwuLi5rLGNoaWxkcmVuOlthJiYoMCxZLmpzeCkoVSx7YXM6YHBgLGNvbnRlbnQ6YSx0ZXh0QWxpZ246YHN0YXJ0YCxmb250OmBib2R5YCxjb2xvcjpgZmdgLG9uUmljaFRleHRMaW5rQ2xpY2s6bSwuLi5BfSksVCh1KSYmKDAsWS5qc3gpKFUse2FzOmBwYCxtYXhXaWR0aDpgOTAwcHhgLGNvbnRlbnQ6dSxmb250OmBsZWdhbGAsY29sb3I6YGZnTXV0ZWRgfSksUD8oMCxZLmpzeCkoXyx7YWxpZ246dD09PWBJbW1lcnNpdmVgP2BjZW50ZXJgOmBmbGV4LXN0YXJ0YCwuLi5OfSk6bnVsbCxJPygwLFkuanN4KShLLHtnYXA6MixmbGV4RGlyZWN0aW9uOntwaG9uZTpgY29sdW1uYCxiYXNlOmByb3dgfSx3aWR0aDp7cGhvbmU6YDEwMCVgfSxmbGV4V3JhcDpgbm93cmFwYCxjaGlsZHJlbjpGPT1udWxsP3ZvaWQgMDpGLm1hcChlPT4oMCxZLmpzeCkoeix7d2lkdGg6e3Bob25lOmAxMDAlYH0sY2hpbGRyZW46KDAsWS5qc3gpKEQsey4uLmUsYmxvY2s6ITB9KX0sZS5sYWJlbCkpfSk6bnVsbF19KV19KV19KSwoISFjfHwhIWZ8fFQobCkpJiYoMCxZLmpzeHMpKEwse2dhcDoxLGp1c3RpZnlDb250ZW50OmBjZW50ZXJgLHdpZHRoOmAxMDAlYCwuLi5PLGNoaWxkcmVuOltjJiZDKGMpJiYhZiYmKDAsWS5qc3gpKE1lLHthc3BlY3RSYXRpbzpCLGNoaWxkcmVuOigwLFkuanN4KShBZSx7bG9hZGluZzpgZWFnZXJgLG1lZGlhOmMsYm9yZGVyUmFkaXVzOlZbYG1lZGlhLWNvcm5lcmBdLGFzcGVjdFJhdGlvOk19KX0pLGMmJkUoYykmJiFmJiYoMCxZLmpzeCkoTWUse2FzcGVjdFJhdGlvOkIsY2hpbGRyZW46KDAsWS5qc3gpKGplLHttZWRpYTpjLGJvcmRlclJhZGl1czpWW2BtZWRpYS1jb3JuZXJgXSxhc3BlY3RSYXRpbzpSfSl9KSwhIWYmJmYsVChsKSYmKDAsWS5qc3gpKEwse21heFdpZHRoOmA5MDBweGAsY2hpbGRyZW46KDAsWS5qc3gpKFUse2FzOmBwYCxjb2xvcjpgZmdNdXRlZGAsZm9udDpgbGVnYWxgLGNvbnRlbnQ6bCxvblJpY2hUZXh0TGlua0NsaWNrOnB9KX0pXX0pXX0pLCgwLFkuanN4KShvLHt0aXRsZTpnLHBhcmFncmFwaDp2LGN0YXM6eSxsYXlvdXQ6Yn0pXX0pfXZhciBBZT1QKEEpLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBDRFhCYXNlSGVyb19fU3R5bGVkQ0RYSW1hZ2VgLGNvbXBvbmVudElkOmBzYy04NWY5ZjJmZC0wYH0pKFtgd2lkdGg6YXV0bztoZWlnaHQ6MTAwJTtgXSksamU9UChTKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgQ0RYQmFzZUhlcm9fX1N0eWxlZENEWFZpZGVvYCxjb21wb25lbnRJZDpgc2MtODVmOWYyZmQtMWB9KShbYHdpZHRoOmF1dG87aGVpZ2h0OjEwMCU7YF0pLE1lPVAoTCkuYXR0cnMoe3dpZHRoOmAxMDAlYCxoZWlnaHQ6YDEwMCVgLGFsaWduSXRlbXM6YGNlbnRlcmB9KS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgQ0RYQmFzZUhlcm9fX01lZGlhV3JhcHBlcmAsY29tcG9uZW50SWQ6YHNjLTg1ZjlmMmZkLTJgfSkoW2BgXSksTmU9e1BhcmFncmFwaDpgcGFyYWdyYXBoYH0sUGU9e3JlbmRlck5vZGU6e1tSLlVMX0xJU1RdOihlLHQpPT4oMCxZLmpzeCkoTCx7YXM6YHVsYCxmbGV4RGlyZWN0aW9uOmBjb2x1bW5gLGdhcDoyLHBhZGRpbmdUb3A6MixzdHlsZTp7bGlzdFN0eWxlVHlwZTpgbm9uZWB9LGNoaWxkcmVuOnR9KSxbUi5MSVNUX0lURU1dOihlLHQpPT4oMCxZLmpzeHMpKHose2FzOmBsaWAsZ2FwOjIsYWxpZ25JdGVtczpgY2VudGVyYCxjaGlsZHJlbjpbKDAsWS5qc3gpKEllLHtwYWRkaW5nOjEsYm9yZGVyUmFkaXVzOjFlMyxiYWNrZ3JvdW5kOmBiZ0FsdGVybmF0ZWAsY2hpbGRyZW46KDAsWS5qc3gpKEose3Rlc3RJRDpgZmVhdHVyZS1oaWdobGlnaHRzLWl0ZW0tbGlzdC1pdGVtLWljb25gLG5hbWU6YGNpcmNsZUNoZWNrbWFya2Asc2l6ZTpgbWAsImFyaWEtaGlkZGVuIjohMCxhY3RpdmU6ITAsY29sb3I6YGJnSW52ZXJzZWB9KX0pLCgwLFkuanN4KSh6LHtkaXNwbGF5OmBibG9ja2AsY2hpbGRyZW46dH0pXX0pfX0sRmU9cShmdW5jdGlvbih7dGl0bGU6ZSxwYXJhZ3JhcGg6dCxjdGFHcm91cDpuLG1lZGlhOnIsbGVnYWxEaXNjbGFpbWVyOmksbGVnYWxIaWdoOmEsbGF5b3V0Om89YEltYWdlIFJpZ2h0YCx0ZXN0SUQ6cz1gZmVhdHVyZS1oaWdobGlnaHRzLWl0ZW1gLHNlY3Rpb25TZXR0aW5nczpjLGV5ZWJyb3dUZXh0OmwsZXllYnJvd0ljb246dX0pe2xldCBkPUcoTmUuUGFyYWdyYXBoKTtyZXR1cm4oMCxZLmpzeCkoSCx7dGVzdElEOnMsc2VjdGlvblNldHRpbmdzOmMsdmFyaWFudDpgc2xpbWAsY2hpbGRyZW46KDAsWS5qc3hzKShMLHtkaXNwbGF5OmBmbGV4YCxnYXA6V1tgY29udGFpbmVyLWdhcGBdLGFsaWduSXRlbXM6e2Jhc2U6YGNlbnRlcmAscGhvbmU6YHN0cmV0Y2hgfSxmbGV4RGlyZWN0aW9uOntiYXNlOm89PT1gSW1hZ2UgTGVmdGA/YHJvd2A6YHJvdy1yZXZlcnNlYCxwaG9uZTpgY29sdW1uYH0sY2hpbGRyZW46WyhpfHxyKSYmKDAsWS5qc3hzKSh6LHtmbGV4R3JvdzoxLGZsZXhCYXNpczowLGZsZXhEaXJlY3Rpb246YGNvbHVtbmAsZ2FwOjEsY2hpbGRyZW46W3ImJigwLFkuanN4cykoeix7dGVzdElEOmBmZWF0dXJlLWhpZ2hsaWdodHMtaXRlbS1tZWRpYWAsYm9yZGVyUmFkaXVzOlZbYG1lZGlhLWNvcm5lcmBdLGJvcmRlcldpZHRoOjEwMCxib3JkZXJDb2xvcjpDKHIpJiZyLmhpZGVCYWNrZ3JvdW5kfHwoYz09bnVsbD92b2lkIDA6Yy5zZWN0aW9uQmFja2dyb3VuZCk9PT1gU2Vjb25kYXJ5YD9gdHJhbnNwYXJlbnRgOmBiZ0xpbmVgLG92ZXJmbG93OmBoaWRkZW5gLGNoaWxkcmVuOltFKHIpJiYoMCxZLmpzeCkoUyx7dGVzdElEOmBmZWF0dXJlLWhpZ2hsaWdodHMtaXRlbS12aWRlb2AsbWVkaWE6cn0pLEMocikmJigwLFkuanN4KShBLHt0ZXN0SUQ6YGZlYXR1cmUtaGlnaGxpZ2h0cy1pdGVtLWltYWdlYCxtZWRpYTpyLGFzcGVjdFJhdGlvOmA1OjRgfSldfSksaSYmKDAsWS5qc3gpKFUse2ZvbnQ6YGxlZ2FsYCxjb2xvcjpgZmdNdXRlZGAsY29udGVudDppLHRlc3RJRDpgZmVhdHVyZS1oaWdobGlnaHRzLWl0ZW0tbGVnYWwtZGlzY2xhaW1lcmB9KV19KSwoMCxZLmpzeHMpKHose2ZsZXhHcm93OjEsZmxleEJhc2lzOjAsZmxleFNocmluazoxLGZsZXhEaXJlY3Rpb246YGNvbHVtbmAsZ2FwOldbYGNvbnRlbnQtZWxlbWVudC1nYXBgXSxjaGlsZHJlbjpbbD8oMCxZLmpzeCkoT2Use2V5ZWJyb3dUZXh0OmwsZXllYnJvd0ljb246dX0pOm51bGwsZSYmKDAsWS5qc3gpKFUse2FzOmBoMmAsZm9udDpgdGl0bGUxYCxjb250ZW50OmUsdGVzdElEOmBmZWF0dXJlLWhpZ2hsaWdodHMtaXRlbS10aXRsZWB9KSx0JiYoMCxZLmpzeCkoTGUse2NoaWxkcmVuOigwLFkuanN4KShVLHtmb250OmBjYXB0aW9uYCxjb2xvcjpgZmdNdXRlZGAsY29udGVudDp0LHRlc3RJRDpgZmVhdHVyZS1oaWdobGlnaHRzLWl0ZW0tcGFyYWdyYXBoYCxvdmVycmlkZVJpY2hUZXh0T3B0aW9uczpQZSxvblJpY2hUZXh0TGlua0NsaWNrOmR9KX0pLFQoYSkmJigwLFkuanN4KShVLHtmb250OmBsZWdhbGAsY29sb3I6YGZnTXV0ZWRgLGNvbnRlbnQ6YSxtYXhXaWR0aDo5MDAsdGVzdElEOmBmZWF0dXJlLWhpZ2hsaWdodHMtaXRlbS1sZWdhbC1oaWdoYH0pLCgwLFkuanN4KShnLHt0ZXN0SUQ6YGZlYXR1cmUtaGlnaGxpZ2h0cy1pdGVtYCxjdGFzOm59KV19KV19KX0pfSksSWU9UCh6KS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgQ0RYRmVhdHVyZUhpZ2hsaWdodHNJdGVtX19JY29uV3JhcHBlcmAsY29tcG9uZW50SWQ6YHNjLWQyYTllNDk5LTBgfSkoW2BvbCA+IGxpID4gJntkaXNwbGF5Om5vbmU7fWBdKSxMZT1QKEwpLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBDRFhGZWF0dXJlSGlnaGxpZ2h0c0l0ZW1fX1BhcmFncmFwaFdyYXBwZXJgLGNvbXBvbmVudElkOmBzYy1kMmE5ZTQ5OS0xYH0pKFtgcCArIHB7bWFyZ2luLXRvcDp2YXIoLS1zcGFjZS0yKTt9YF0pLFJlPXEoZnVuY3Rpb24oe2NsYXNzTmFtZTplLHNlY3Rpb25zOnQ9W10sc3RhcnRQb3NpdGlvbjpuPWBJbWFnZSBSaWdodGAsdGVzdElEOnI9YGZlYXR1cmUtaGlnaGxpZ2h0YH0pe2lmKHQhPW51bGwmJnQubGVuZ3RoKXJldHVybigwLFkuanN4KSh6LHtjbGFzc05hbWU6ZSx3aWR0aDpgMTAwJWAsYmFja2dyb3VuZDpgYmdgLGZsZXhEaXJlY3Rpb246YGNvbHVtbmAsImRhdGEtdGVzdGlkIjpyLGNoaWxkcmVuOnQubWFwKChlLHQpPT57bGV0IHI9KG49PT1gSW1hZ2UgUmlnaHRgP1tgSW1hZ2UgUmlnaHRgLGBJbWFnZSBMZWZ0YF06W2BJbWFnZSBMZWZ0YCxgSW1hZ2UgUmlnaHRgXSlbdCUyXTtyZXR1cm4oMCxZLmpzeCkoTCx7d2lkdGg6YDEwMCVgLGJhY2tncm91bmQ6YGJnYCxjaGlsZHJlbjooMCxZLmpzeCkoRmUsey4uLmUsbGF5b3V0OnJ9KX0sZS5pZCl9KX0pfSksemU9e3dvcmRCcmVhazpgYnJlYWstd29yZGB9LEJlPXEoZnVuY3Rpb24oe3ZhbHVlOmUsbGFiZWw6dCxjbGFzc05hbWU6bixpZDpyLHRlc3RJRDppPWBmZWF0dXJlLXN0YXRzLWl0ZW1gfSl7cmV0dXJuKDAsWS5qc3hzKShMLHtjbGFzc05hbWU6biwiZGF0YS10ZXN0aWQiOmksaWQ6cj8/dm9pZCAwLGFsaWduSXRlbXM6YGNlbnRlcmAsZ2FwOjIscGFkZGluZzpXW2BjYXJkLXBhZGRpbmdgXSxjaGlsZHJlbjpbZSYmKDAsWS5qc3gpKFUse3Rlc3RJRDpgZmVhdHVyZS1zdGF0cy1pdGVtLXZhbHVlYCxmb250OmBkaXNwbGF5NGAsY29udGVudDplLHRleHRBbGlnbjpgY2VudGVyYCxzdHlsZTp6ZX0pLHQmJigwLFkuanN4KShVLHt0ZXN0SUQ6YGZlYXR1cmUtc3RhdHMtaXRlbS1sYWJlbGAsZm9udDpgbGFiZWwzYCxjb250ZW50OnQsdGV4dEFsaWduOmBjZW50ZXJgLHN0eWxlOnt0ZXh0VHJhbnNmb3JtOmB1cHBlcmNhc2VgfSxjb2xvcjpgZmdNdXRlZGB9KV19KX0pLFo9YHJlcGVhdCgyLCAxZnIpYCxRPWByZXBlYXQoMywgMWZyKWAsVmU9ezI6e2dyaWRUZW1wbGF0ZUNvbHVtbnM6Wn0sMzp7Z3JpZFRlbXBsYXRlQ29sdW1uczp7YmFzZTpaLHRhYmxldDpRLGRlc2t0b3A6UX19LDQ6e2dyaWRUZW1wbGF0ZUNvbHVtbnM6e2Jhc2U6WixkZXNrdG9wOmByZXBlYXQoNCwgMWZyKWB9fSw1OntncmlkVGVtcGxhdGVDb2x1bW5zOntiYXNlOlosdGFibGV0OlEsZGVza3RvcDpRfX19LEhlPWU9PlZlW01hdGgubWluKGUsNSldLFVlPXEoZnVuY3Rpb24oe2lkOmUsY2xhc3NOYW1lOnQsdGl0bGU6bixwYXJhZ3JhcGg6cixpdGVtczppLGN0YUdyb3VwOmEsbGVnYWw6byx0ZXN0SUQ6cyxub1NwYWNpbmc6YyxzZWN0aW9uU2V0dGluZ3M6bCxoZWFkZXJMYXlvdXQ6dX0pe3JldHVybigwLFkuanN4cykoSCx7Y2xhc3NOYW1lOnQsdGVzdElEOnMsbm9TcGFjaW5nOmMsc2VjdGlvblNldHRpbmdzOmwsY2hpbGRyZW46WygwLFkuanN4KSh2LHt0aXRsZTpuLHBhcmFncmFwaDpyLGN0YXM6YSxsYXlvdXQ6dX0pLCgwLFkuanN4KShMLHsiZGF0YS10ZXN0aWQiOmBmZWF0dXJlLXN0YXRzYCxpZDplPz92b2lkIDAsY2hpbGRyZW46ISEoaSE9bnVsbCYmaS5sZW5ndGgpJiYoMCxZLmpzeCkoSyx7ZGlzcGxheTpgZ3JpZGAscm93R2FwOjEsY29sdW1uR2FwOjIsLi4uSGUoaS5sZW5ndGgpLGNoaWxkcmVuOmkubWFwKGU9PigwLFkuanN4KShCZSx7Li4uZX0sZS5jb21wb25lbnRJZCkpfSl9KSxUKG8pJiYoMCxZLmpzeCkoVSx7Zm9udDpgbGVnYWxgLG1heFdpZHRoOjkwMCxkaXNwbGF5OmBibG9ja2AsdGV4dEFsaWduOmBjZW50ZXJgLGNvbnRlbnQ6byxhbGlnblNlbGY6YGNlbnRlcmAsY29sb3I6YGZnTXV0ZWRgfSldfSl9KSxXZT1xKGZ1bmN0aW9uKHtpY29uOmUsdGl0bGU6dCxwYXJhZ3JhcGg6bixsaW5rVXJsOnIsbGlua0xhYmVsOmksY2xhc3NOYW1lOmEsaWQ6b30pe3JldHVybigwLFkuanN4cykoTCx7Z2FwOldbYGNvbnRlbnQtZWxlbWVudC1nYXBgXSxjbGFzc05hbWU6YSwiZGF0YS10ZXN0aWQiOmBmZWF0dXJlLXZhbHVlcy1pdGVtYCxpZDpvPz92b2lkIDAscGFkZGluZ0JvdHRvbTpXW2BjYXJkLXBhZGRpbmdgXSxjaGlsZHJlbjpbKDAsWS5qc3gpKEwse3BhZGRpbmdCb3R0b206V1tgY29udGVudC1lbGVtZW50LWdhcGBdLGp1c3RpZnlDb250ZW50OmBjZW50ZXJgLGJvcmRlcmVkQm90dG9tOiEwLGJvcmRlckNvbG9yOmBiZ0xpbmVIZWF2eWAsY2hpbGRyZW46ZSYmKDAsWS5qc3gpKEose25hbWU6ZSxjb2xvcjpgZmdgLHNpemU6YGxgfSl9KSwoMCxZLmpzeHMpKEwse2dhcDouNSxjaGlsZHJlbjpbKDAsWS5qc3gpKFUse2ZvbnQ6YGhlYWRsaW5lYCxjb250ZW50OnR9KSwoMCxZLmpzeCkoVSx7Zm9udDpgYm9keWAsY29udGVudDpufSldfSksciYmaSYmKDAsWS5qc3gpKEsse2NoaWxkcmVuOigwLFkuanN4KShVLHthczpgYWAsZm9udDpgbGFiZWwxYCxjb2xvcjpgZmdgLHVuZGVybGluZTohMCxocmVmOnIsY29udGVudDppfSl9KV19KX0pLEdlPXsyOntncmlkVGVtcGxhdGVDb2x1bW5zOntkZXNrdG9wOmByZXBlYXQoMiwgMWZyKWB9fSwzOntncmlkVGVtcGxhdGVDb2x1bW5zOntkZXNrdG9wOmByZXBlYXQoMywgMWZyKWB9fSw0OntncmlkVGVtcGxhdGVDb2x1bW5zOnt0YWJsZXQ6YHJlcGVhdCgyLCAxZnIpYCxkZXNrdG9wOmByZXBlYXQoMiwgMWZyKWB9fX0sS2U9cShmdW5jdGlvbih7aWQ6ZSxjbGFzc05hbWU6dCx0aXRsZTpuLHBhcmFncmFwaDpyLGN0YUdyb3VwOmksbWVkaWE6YSxjb2x1bW5zOm8saXRlbXM6cyxsZWdhbDpjLHRlc3RJRDpsLG5vU3BhY2luZzp1PSExLHNlY3Rpb25TZXR0aW5nczpkfSl7cmV0dXJuIW4mJiFyJiYhKGkhPW51bGwmJmkubGVuZ3RoKSYmIUUoYSkmJiFDKGEpJiYhKHMhPW51bGwmJnMubGVuZ3RoKSYmIVQoYyk/bnVsbDooMCxZLmpzeHMpKEgse2NsYXNzTmFtZTp0LHRlc3RJRDpsfHxgZmVhdHVyZS12YWx1ZXNgLGlkOmU/P3ZvaWQgMCxub1NwYWNpbmc6dSxzZWN0aW9uU2V0dGluZ3M6ZCxjaGlsZHJlbjpbKDAsWS5qc3gpKHYse3RpdGxlOm4scGFyYWdyYXBoOnIsY3RhczppLGxheW91dDpgSG9yaXpvbnRhbGB9KSxFKGEpJiYoMCxZLmpzeCkoUyx7bWVkaWE6YX0pLEMoYSkmJigwLFkuanN4KShBLHttZWRpYTphfSkscyE9bnVsbCYmcy5sZW5ndGg/KDAsWS5qc3gpKEsse2Rpc3BsYXk6YGdyaWRgLHJvd0dhcDpXW2BjYXJkLWdhcGBdLGNvbHVtbkdhcDoxMCwuLi5HZVtvXSxjaGlsZHJlbjpzLm1hcChlPT4oMCxZLmpzeCkoV2Usey4uLmV9LGUuY29tcG9uZW50SWQpKX0pOm51bGwsVChjKSYmKDAsWS5qc3gpKHose21heFdpZHRoOmA5MDBweGAsYWxpZ25TZWxmOmBjZW50ZXJgLGNoaWxkcmVuOigwLFkuanN4KShVLHtmb250OmBsZWdhbGAsbWF4V2lkdGg6OTAwLGRpc3BsYXk6YGJsb2NrYCxjb250ZW50OmMsdGV4dEFsaWduOmBjZW50ZXJgfSl9KV19KX0pLHFlPXEoZnVuY3Rpb24oe2xvZ29JbWFnZTplLGxvZ29BbHRUZXh0OnQsbGlua1VybDpuLGNsYXNzTmFtZTpyLGlkOmksdGVzdElEOmE9YGNkeC1nYWxsZXJ5LWxvZ28taXRlbWAsY29udGVudFR5cGVJZDpvfSl7cmV0dXJuIGU/KDAsWS5qc3hzKShKZSx7Y2xhc3NOYW1lOnIsImRhdGEtdGVzdGlkIjphLGlkOmk/P3ZvaWQgMCxwYWRkaW5nOldbYGNvbnRhaW5lci1nYXBgXSxib3JkZXJSYWRpdXM6VltgY2FyZC1tZWRpYS1jb3JuZXJgXSxwb3NpdGlvbjpgcmVsYXRpdmVgLGJvcmRlcmVkOiEwLGJvcmRlckNvbG9yOmBiZ1NlY29uZGFyeWAsY2hpbGRyZW46WygwLFkuanN4KShBLHttZWRpYTp7Li4uZSxpbWFnZUFsdFRleHQ6dHx8ZS5pbWFnZUFsdFRleHQsaGlkZUJhY2tncm91bmQ6ITB9LGFzcGVjdFJhdGlvOmAxOjFgLGJvcmRlclJhZGl1czowfSksISFuJiYoMCxZLmpzeCkoTCx7YXM6YGFgLHBvc2l0aW9uOmBhYnNvbHV0ZWAsdG9wOjAsbGVmdDowLGJvdHRvbTowLHJpZ2h0OjAsYm9yZGVyUmFkaXVzOlZbYGNhcmQtbWVkaWEtY29ybmVyYF0saHJlZjpuLHRhcmdldDpgX2JsYW5rYCwiYXJpYS1sYWJlbCI6dHx8ZS5pbWFnZUFsdFRleHR9KV19KTpudWxsfSksSmU9UChMKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgQ0RYR2FsbGVyeUxvZ29JdGVtX19Mb2dvSXRlbUNvbnRhaW5lcmAsY29tcG9uZW50SWQ6YHNjLTM4ZDIxZDA1LTBgfSkoW2BpbWd7ZmlsdGVyOmdyYXlzY2FsZSgxMDAlKTt0cmFuc2l0aW9uOmZpbHRlciAwLjNzIGVhc2U7fSY6aG92ZXIgaW1nLCYuZm9jdXMtdmlzaWJsZSBpbWd7ZmlsdGVyOmdyYXlzY2FsZSgwKTt9Jjpmb2N1cy13aXRoaW4gaW1ne2ZpbHRlcjpncmF5c2NhbGUoMCk7fWBdKSxZZT0oZSx0PTIpPT5gY2FsYygoMTAwJSAvICR7ZX0pIC0gKCR7dCo4fXB4ICogJHtlLTF9IC8gJHtlfSkpYCxYZT17YmFzZTpZZSgyKSx0YWJsZXQ6WWUoNCksZGVza3RvcDpZZSg1KX0sWmU9cShmdW5jdGlvbih7aGVhZGVyTGF5b3V0OmUsaGVhZGVyVGl0bGU6dCxoZWFkZXJQYXJhZ3JhcGg6bixoZWFkZXJDdGFHcm91cDpyLGl0ZW1zOmk9W10sZm9vdGVyVGl0bGU6YSxmb290ZXJQYXJhZ3JhcGg6cyxmb290ZXJDdGFHcm91cDpjLGZvb3RlckxheW91dDpsLGxlZ2FsOnUsaWQ6ZCxjbGFzc05hbWU6Zix0ZXN0SUQ6cD1gY2R4LWdhbGxlcnktbG9nb2Asc2VjdGlvblNldHRpbmdzOm0sY29tcG9uZW50SWQ6aCxjb250ZW50VHlwZUlkOmd9KXtyZXR1cm4oMCxZLmpzeHMpKEgse2NsYXNzTmFtZTpmLHRlc3RJRDpwLHNlY3Rpb25TZXR0aW5nczptLHZhcmlhbnQ6YHNsaW1gLGNoaWxkcmVuOlsoMCxZLmpzeCkodix7bGF5b3V0OmUsdGl0bGU6dCxwYXJhZ3JhcGg6bixjdGFzOnIsdGVzdElEOmAke3B9LXNlY3Rpb24taGVhZGVyYH0pLCgwLFkuanN4KShLLHtnYXA6MixmbGV4V3JhcDpgd3JhcGAsanVzdGlmeUNvbnRlbnQ6YGNlbnRlcmAsY2hpbGRyZW46aS5tYXAoKGUsdCk9PigwLFkuanN4KShMLHtmbGV4QmFzaXM6WGUsY2hpbGRyZW46KDAsWS5qc3gpKHFlLHsuLi5lLHRlc3RJRDplLnRlc3RJRHx8YGNkeC1nYWxsZXJ5LWxvZ28taXRlbS0ke3QrMX1gfSl9LGUuaWQpKX0pLCgwLFkuanN4KShvLHtsYXlvdXQ6bCx0aXRsZTphLHBhcmFncmFwaDpzLGN0YXM6Yyx0ZXN0SUQ6YCR7cH0tc2VjdGlvbi1mb290ZXJgfSksVCh1KSYmKDAsWS5qc3gpKEwseyJkYXRhLXRlc3RpZCI6YGNkeC1nYWxsZXJ5LWxvZ28tbGVnYWxgLG1heFdpZHRoOmA5MDBweGAsY2hpbGRyZW46KDAsWS5qc3gpKFUse2ZvbnQ6YGxlZ2FsYCxjb2xvcjpgZmdNdXRlZGAsY29udGVudDp1fSl9KV19KX0pLFFlPXtMZWdhbFRleHRMaW5rOmBsZWdhbFRleHRMaW5rYCxTdWJoZWFkTGluazpgc3ViaGVhZExpbmtgfSwkZT1xKGZ1bmN0aW9uKHtjbGFzc05hbWU6ZSx0ZXN0SUQ6dCxjb21wb25lbnRJZDpuLGNvbnRlbnRUeXBlSWQ6cixsYXlvdXQ6aSxleWVicm93VGV4dDphLGV5ZWJyb3dJY29uOm8saGVhZGxpbmU6cyxzdWJoZWFkOmMsY3RhR3JvdXA6bCxtZWRpYTp1LGxlZ2FsOmQsbGVnYWxIaWdoOmYsc2VjdGlvblNldHRpbmdzOnAsZm9vdGVyVGl0bGU6bSxmb290ZXJQYXJhZ3JhcGg6aCxmb290ZXJDdGFHcm91cDpnLGZvb3RlckxheW91dDpffSl7bGV0IHY9RyhRZS5MZWdhbFRleHRMaW5rKSx5PUcoUWUuU3ViaGVhZExpbmspO3JldHVybigwLFkuanN4KShrZSx7Y2xhc3NOYW1lOmUsdGVzdElEOnQsbGF5b3V0OmksZXllYnJvd1RleHQ6YSxleWVicm93SWNvbjpvLGhlYWRsaW5lOnM/P2BgLHN1YmhlYWQ6YyxjdGFzOmwsbWVkaWE6dSxsZWdhbDpkLHNlY3Rpb25TZXR0aW5nczpwLG9uTGVnYWxUZXh0TGlua0NsaWNrOnYsb25TdWJoZWFkTGlua0NsaWNrOnksZm9vdGVyVGl0bGU6bSxmb290ZXJQYXJhZ3JhcGg6aCxmb290ZXJDdGFHcm91cDpnLGZvb3RlckxheW91dDpfLGxlZ2FsSGlnaDpmfSl9KSxldD17TGVnYWxUZXh0TGluazpgbGVnYWxUZXh0TGlua2B9LHR0PXEoZnVuY3Rpb24oe2NsYXNzTmFtZTplLHRlc3RJRDp0LGNvbXBvbmVudElkOm4sY29udGVudFR5cGVJZDpyLGxheW91dDppLGhlYWRsaW5lOmEsc3ViaGVhZDpvLG1lZGlhOnMsY3RhVHlwZTpjLGN0YUxhYmVsOmwsY3RhUGxhY2Vob2xkZXI6dSxsZWdhbDpkLGxlZ2FsSGlnaDpmLHNlY3Rpb25TZXR0aW5nczpwfSl7bGV0IG09RyhldC5MZWdhbFRleHRMaW5rKSxoPVtdO3JldHVybiBjPT09YEJ1dHRvbmA/aD1be2NvbnRlbnRUeXBlSWQ6YENEWFYyX0J1dHRvbmAsY29tcG9uZW50SWQ6bixsYWJlbDpsLGxpbms6YC9zaWdudXBgLHZhcmlhbnQ6YGJyYW5kYCxvcGVuSW5OZXdUYWI6ITF9XTpjPT09YEVtYWlsIEZvcm1gJiYoaD1be2NvbnRlbnRUeXBlSWQ6YENEWFYyX0VtYWlsRm9ybWAsY29tcG9uZW50SWQ6bixmb3JtVHlwZTpgU2lnbnVwYCxwbGFjZWhvbGRlcjp1fHxgYCxzdWJtaXRCdXR0b25UZXh0Omwsc3VibWl0QnV0dG9uVmFyaWFudDpgYnJhbmRgLHN1Y2Nlc3NNZXNzYWdlOmBgLHNob3VsZFNob3dTdWNjZXNzTWVzc2FnZTohMX1dKSwoMCxZLmpzeCkoa2Use2NsYXNzTmFtZTplLHRlc3RJRDp0LGxheW91dDppLGhlYWRsaW5lOmEsc3ViaGVhZDpvLG1lZGlhOnMsbGVnYWw6ZCxsZWdhbEhpZ2g6ZixjdGFzOmgsc2VjdGlvblNldHRpbmdzOnAsb25MZWdhbFRleHRMaW5rQ2xpY2s6bX0pfSksbnQ9cShmdW5jdGlvbih7aWQ6ZSxtZWRpYTp0LHRpdGxlOm4scGFyYWdyYXBoOnIsY3RhR3JvdXA6aSxsZWdhbERpc2NsYWltZXI6YSxpc1Zpc2libGU6byxsb2dDbGljazpzfSl7bGV0IGM9YHByb21vLWNhcm91c2VsLWl0ZW0tdGl0bGUtJHtlfWA7cmV0dXJuKDAsWS5qc3hzKShMLHtnYXA6Mix3aWR0aDpgMTAwJWAsY2hpbGRyZW46WygwLFkuanN4cykoSyx7ZmxleEdyb3c6MSx3aWR0aDpgMTAwJWAsZ2FwOldbYGNvbnRhaW5lci1nYXBgXSxwYWRkaW5nOldbYGNhcmQtcGFkZGluZ2BdLGJvcmRlclJhZGl1czpWW2BjYXJkLWNvcm5lcmBdLGJhY2tncm91bmQ6YGJnYCx0ZXN0SUQ6YHByb21vLWNhcm91c2VsLWl0ZW0tY29udGVudGAsZmxleERpcmVjdGlvbjp7YmFzZTpgcm93YCxwaG9uZTpgY29sdW1uYH0sYWxpZ25JdGVtczpgY2VudGVyYCxjaGlsZHJlbjpbKDAsWS5qc3hzKSh6LHtmbGV4R3JvdzoxLGZsZXhTaHJpbms6MSxmbGV4QmFzaXM6MCx3aWR0aDp7YmFzZTpgYXV0b2AscGhvbmU6YDEwMCVgfSxhbGlnbkl0ZW1zOmBjZW50ZXJgLGNoaWxkcmVuOltDKHQpJiYoMCxZLmpzeCkoQSx7bWVkaWE6dCxhc3BlY3RSYXRpbzpgNDozYH0pLEUodCkmJigwLFkuanN4KShTLHttZWRpYTp0LGFzcGVjdFJhdGlvOmA0OjNgfSldfSksKDAsWS5qc3hzKShMLHtmbGV4R3JvdzoxLGZsZXhTaHJpbms6MSxmbGV4QmFzaXM6MCxqdXN0aWZ5Q29udGVudDpgY2VudGVyYCxnYXA6V1tgY29udGVudC1lbGVtZW50LWdhcGBdLGNoaWxkcmVuOlsoMCxZLmpzeCkoVSx7Y29udGVudDpuLGZvbnQ6YGRpc3BsYXk0YCxjb2xvcjpgZmdgLGlkOmMsYXM6YGgyYCx0ZXN0SUQ6YHByb21vLWNhcm91c2VsLWl0ZW0tdGl0bGVgfSksKDAsWS5qc3gpKFUse2NvbnRlbnQ6cixmb250OmBib2R5YCxjb2xvcjpgZmdgLGFzOmBwYCx0ZXN0SUQ6YHByb21vLWNhcm91c2VsLWl0ZW0tcGFyYWdyYXBoYH0pLChpPT1udWxsP3ZvaWQgMDppLmxlbmd0aCkmJigwLFkuanN4KShLLHtqdXN0aWZ5Q29udGVudDpgZmxleC1zdGFydGAsZ2FwOjIsdGVzdElEOmBwcm9tby1jYXJvdXNlbC1pdGVtLWN0YS1ncm91cGAsY2hpbGRyZW46aT09bnVsbD92b2lkIDA6aS5tYXAoZT0+KDAsWS5qc3gpKEQse2RyYWdnYWJsZTohMSx0YWJJbmRleDpvP3ZvaWQgMDotMSxvbkNsaWNrOnMsdGVzdElEOmBwcm9tby1jYXJvdXNlbC1pdGVtLWN0YWAsLi4uZX0sZS5sYWJlbCkpfSldfSldfSksKDAsWS5qc3gpKFUse2NvbnRlbnQ6YSxmb250OmBsZWdhbGAsY29sb3I6YGZnTXV0ZWRgLHRleHRBbGlnbjpgY2VudGVyYCx0ZXN0SUQ6YHByb21vLWNhcm91c2VsLWl0ZW0tbGVnYWwtZGlzY2xhaW1lcmB9KV19KX0pLHJ0PXtDYXJvdXNlbEl0ZW1DVEE6YGNhcm91c2VsSXRlbUNUQWB9O2Z1bmN0aW9uIGl0KHt0ZXN0SUQ6ZSwuLi50fSl7bGV0IG49RyhydC5DYXJvdXNlbEl0ZW1DVEEpLGk9KDAsWC51c2VJZCkoKSxhPWBwcm9tby1jYXJvdXNlbC1pdGVtLSR7aX1gO3JldHVybigwLFkuanN4KShyLHtpZDphLHdpZHRoOmAxMDAlYCxhY2Nlc3NpYmlsaXR5TGFiZWxsZWRCeTpgcHJvbW8tY2Fyb3VzZWwtaXRlbS10aXRsZS0ke2l9YCx0ZXN0SUQ6ZSxwYWRkaW5nWDoyLGNoaWxkcmVuOih7aXNWaXNpYmxlOmV9KT0+KDAsWS5qc3gpKG50LHtpZDphLC4uLnQsaXNWaXNpYmxlOmUsbG9nQ2xpY2s6bn0pfSl9dmFyIGF0PWBjZHgtcHJvbW8tY2Fyb3VzZWwtY29udGFpbmVyYCxvdD1uKHtwYWRkaW5nWDoyfSksc3Q9cShmdW5jdGlvbih7aWQ6bixjb250ZW50VHlwZUlkOnIsY29tcG9uZW50SWQ6YSxyZWY6byx0ZXN0SUQ6cz1gcHJvbW8tY2Fyb3VzZWxgLGl0ZW1zOmMsYXV0b3BsYXk6bD0hMCxzZWN0aW9uU2V0dGluZ3M6dSwuLi5kfSl7bGV0IGY9RyhgcHJvbW8tY2Fyb3VzZWwtaXRlbS1jdGFgKSxwPSgwLFgudXNlUmVmKShudWxsKSxtPSgwLFgudXNlUmVmKShudWxsKSx7aXNQbGF5aW5nOmgsc3RvcEF1dG9wbGF5OmcsdG9nZ2xlQXV0b3BsYXk6X309dCh7Y2Fyb3VzZWxSZWY6cCxhdXRvcGxheTpsLGl0ZW1Db3VudDooYz09bnVsbD92b2lkIDA6Yy5sZW5ndGgpPz8wLHdyYXBwZXJSZWY6bX0pLHY9KDAsWC51c2VNZW1vKSgoKT0+KHthdXRvcGxheTpsLGlzUGxheWluZzpoLHRvZ2dsZUF1dG9wbGF5Ol8sc3RvcEF1dG9wbGF5Omd9KSxbbCxoLF8sZ10pOygwLFgudXNlRWZmZWN0KSgoKT0+e2Z1bmN0aW9uIGUoKXt2YXIgZTsoZT1wLmN1cnJlbnQpPT1udWxsfHxlLmdvVG9QYWdlKHAuY3VycmVudC5hY3RpdmVQYWdlSW5kZXgpfXJldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgcmVzaXplYCxlKSwoKT0+d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoYHJlc2l6ZWAsZSl9LFtdKTtsZXQgeT1gYmdBbHRlcm5hdGVgO3JldHVybiBjPyhjPT1udWxsP3ZvaWQgMDpjLmxlbmd0aCk9PT0xPygwLFkuanN4KShJLHtzZWN0aW9uU2V0dGluZ3M6dSxjaGlsZHJlbjooMCxZLmpzeCkoSCx7YmFja2dyb3VuZDp5LHBhZGRpbmdZOldbYGNvbnRhaW5lci10b3AtZG93bi1wYWRkaW5nLW1kYF0sdGVzdElEOnMsY2hpbGRyZW46KDAsWS5qc3gpKG50LHsuLi5jWzBdLGlzVmlzaWJsZTohMCxsb2dDbGljazpmfSl9KX0pOigwLFkuanN4KShJLHtzZWN0aW9uU2V0dGluZ3M6dSxjaGlsZHJlbjooMCxZLmpzeCkoY3Qse3JlZjptLHRlc3RJRDpzLGp1c3RpZnlDb250ZW50OmBjZW50ZXJgLG92ZXJmbG93OmBoaWRkZW5gLHdpZHRoOmAxMDAlYCxiYWNrZ3JvdW5kOnksLi4uZCxjaGlsZHJlbjooMCxZLmpzeCkoSCx7YmFja2dyb3VuZDp5LHBhZGRpbmdZOldbYGNvbnRhaW5lci10b3AtZG93bi1wYWRkaW5nLW1kYF0sY2hpbGRyZW46KDAsWS5qc3gpKGkuUHJvdmlkZXIse3ZhbHVlOnYsY2hpbGRyZW46KDAsWS5qc3gpKGUse3JlZjpwLGhpZGVOYXZpZ2F0aW9uOiEwLFBhZ2luYXRpb25Db21wb25lbnQ6b3Qsc3R5bGVzOntyb290OntwYWRkaW5nSW5saW5lOmB2YXIoLS1jYXJvdXNlbC1nYXApYCxvdmVyZmxvdzpgdmlzaWJsZWB9fSxjbGFzc05hbWVzOntjYXJvdXNlbENvbnRhaW5lcjphdH0sb25EcmFnU3RhcnQ6ZyxjaGlsZHJlbjpjLm1hcCgoZSx0KT0+KDAsWC5jcmVhdGVFbGVtZW50KShpdCx7Li4uZSxrZXk6ZS5pZCxpZDpgJHtlLmlkfS0ke3R9YH0pKX0sYGNhcm91c2VsYCl9KX0pfSl9KTpudWxsfSksY3Q9UCh6KS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgQ0RYUHJvbW9DYXJvdXNlbF9fQ2Fyb3VzZWxXcmFwcGVyYCxjb21wb25lbnRJZDpgc2MtZTgzODcwOTEtMGB9KShbYEBtZWRpYSBgLGB7LS1jYXJvdXNlbC1nYXA6dmFyKC0tc3BhY2UtNCk7fWBdLHVlLmRlc2t0b3ApO2Z1bmN0aW9uIGx0KHthY3RpdmVDb2xvcjplPWBwcmltYXJ5YCxzaXplOnQ9YG1lZGl1bWB9PXt9KXtyZXR1cm4gZnVuY3Rpb24oe2xhYmVsOm49YGAsaWQ6cixjb21wb25lbnRJZDppLHRlc3RJRDphPWBjaGlwYH0pe2xldHthY3RpdmVUYWI6byx1cGRhdGVBY3RpdmVUYWI6c309aWUoKSxjPShvPT1udWxsP3ZvaWQgMDpvLmlkKT09PXI7cmV0dXJuKDAsWS5qc3gpKEQse2xpbmVCcmVha0JlaGF2aW9yOmBzaW5nbGUtbGluZWAsb25DbGljazooMCxYLnVzZUNhbGxiYWNrKSgoKT0+cyhyKSxbcixzXSksdmFyaWFudDpjP2U6YHRlcnRpYXJ5YCxzaXplOnQsbGFiZWw6bixjb21wb25lbnRJZDppPz9yLCJhcmlhLXNlbGVjdGVkIjpjLHJvbGU6YHRhYmAsdGVzdElEOmF9KX19dmFyIHV0PWx0KCksZHQ9ZT0+ZT9bYENEWFYyX0NlbnRlcmAsYENEWFYyX0ZlYXR1cmVTdGF0c2AsYENEWFYyX0dhbGxlcnlHcmlkYCxgQ0RYVjJfRmVhdHVyZVZhbHVlc2AsYENEWFYyX0dhbGxlcnlMaXN0YCxgQ0RYVjJfR2FsbGVyeUNhcm91c2VsYF0uaW5jbHVkZXMoZSk6ITEsZnQ9cShmdW5jdGlvbih7Y29udGVudDplLGNsYXNzTmFtZTp0LHRlc3RJRDpufSl7cmV0dXJuIShlIT1udWxsJiZlLmxlbmd0aCl8fCFlLnNvbWUoZT0+ZHQoZT09bnVsbD92b2lkIDA6ZS5jb250ZW50VHlwZUlkKSk/bnVsbDooMCxZLmpzeCkoTCx7Z2FwOldbYGNvbnRhaW5lci10b3AtZG93bi1wYWRkaW5nLWxnYF0sY2xhc3NOYW1lOnQsdGVzdElEOm4sY2hpbGRyZW46ZS5tYXAoKGUsdCk9PntsZXQgcj1lLmlkPz9gJHtlLmNvbnRlbnRUeXBlSWR9LSR7dH1gLGk9YCR7bn0tJHtyfWA7c3dpdGNoKGU9PW51bGw/dm9pZCAwOmUuY29udGVudFR5cGVJZCl7Y2FzZWBDRFhWMl9DZW50ZXJgOnJldHVybigwLFguY3JlYXRlRWxlbWVudCkoZ2Usey4uLmUsbm9TcGFjaW5nOiEwLHRlc3RJRDppLGtleTpyfSk7Y2FzZWBDRFhWMl9GZWF0dXJlU3RhdHNgOnJldHVybigwLFguY3JlYXRlRWxlbWVudCkoVWUsey4uLmUsbm9TcGFjaW5nOiEwLHRlc3RJRDppLGtleTpyfSk7Y2FzZWBDRFhWMl9HYWxsZXJ5R3JpZGA6cmV0dXJuKDAsWC5jcmVhdGVFbGVtZW50KSh5LHsuLi5lLG5vU3BhY2luZzohMCx0ZXN0SUQ6aSxrZXk6cn0pO2Nhc2VgQ0RYVjJfRmVhdHVyZVZhbHVlc2A6cmV0dXJuKDAsWC5jcmVhdGVFbGVtZW50KShLZSx7Li4uZSxub1NwYWNpbmc6ITAsdGVzdElEOmksa2V5OnJ9KTtjYXNlYENEWFYyX0dhbGxlcnlMaXN0YDpyZXR1cm4oMCxYLmNyZWF0ZUVsZW1lbnQpKGIsey4uLmUsbm9TcGFjaW5nOiEwLHRlc3RJRDppLGtleTpyfSk7Y2FzZWBDRFhWMl9HYWxsZXJ5Q2Fyb3VzZWxgOnJldHVybigwLFguY3JlYXRlRWxlbWVudCkoYSx7Li4uZSxub1NwYWNpbmc6ITAsdmFyaWFudDpgc2xpbWAsdGVzdElEOmksa2V5OnJ9KTtkZWZhdWx0OnJldHVybiBudWxsfX0pfSl9KTtmdW5jdGlvbiBwdChlKXtyZXR1cm4hIWUmJmUuY29udGVudFR5cGVJZD09PWBDRFhWMl9HYWxsZXJ5R3JpZGB9ZnVuY3Rpb24gbXQoZSl7cmV0dXJuISFlJiZlLmNvbnRlbnRUeXBlSWQ9PT1gQ0RYVjJfR2FsbGVyeUxpc3RgfWZ1bmN0aW9uIGh0KGUpe3ZhciB0O2xldCBuPSh0PWUuZmlsdGVyKHB0KS5hdCgwKSk9PW51bGw/dm9pZCAwOnQuY2FyZFR5cGU7cmV0dXJuIGUuZXZlcnkoZT0+cHQoZSkmJmUuY2FyZFR5cGU9PT1uKX1mdW5jdGlvbiBndChlKXt2YXIgdDtsZXQgbj0odD1lLmZpbHRlcihtdCkuYXQoMCkpPT1udWxsP3ZvaWQgMDp0LmNhcmRUeXBlO3JldHVybiBlLmV2ZXJ5KGU9Pm10KGUpJiZlLmNhcmRUeXBlPT09bil9ZnVuY3Rpb24gX3QoZSl7bGV0IHQ9ZS5mbGF0TWFwKGU9PmUuY2FyZHM/P1tdKSxuPXQuZXZlcnkoZT0+ZS5jYXJkQXJ0aWNsZURhdGUpO3JldHVybiB0LnNvcnQoKGUsdCk9PntsZXQgcj1lLmNhcmRBcnRpY2xlRGF0ZSxpPXQuY2FyZEFydGljbGVEYXRlO3JldHVybiBuJiZyJiZpP3I+aT8tMToxOmxlKGUudGl0bGU/P2BgKT5sZSh0LnRpdGxlPz9gYCk/MTotMX0pfWZ1bmN0aW9uIHZ0KHt0aXRsZTplLHRhYnM6dCx0ZXN0SUQ6bixtZXJnZUFsbFRhYkNvbnRlbnQ6cj0hMX0pe2xldCBpPUFycmF5LmZyb20obmV3IFNldCgodD09bnVsbD92b2lkIDA6dC5mbGF0TWFwKGU9PmUuY29udGVudCkuZmlsdGVyKEJvb2xlYW4pKT8/W10pKSxhPSgwLFgudXNlTWVtbykoKCk9PntpZihodChpKSl7bGV0IGU9aS5hdCgwKSx0PU1hdGgubWF4KDEsLi4uaS5tYXAoZT0+ZS5jb2x1bW5zPz8zKSk7cmV0dXJuW3tjb250ZW50VHlwZUlkOmBDRFhWMl9HYWxsZXJ5R3JpZGAsY2FyZFR5cGU6KGU9PW51bGw/dm9pZCAwOmUuY2FyZFR5cGUpPz9gQmFzaWNgLGNvbHVtbnM6dCxhdXRvbWF0aWNDYXJkR2VuZXJhdGlvbjohMSxjb21wb25lbnRJZDokLGNhcmRzOl90KGkpfV19aWYoZ3QoaSkpe2xldCBlPWkuYXQoMCk7cmV0dXJuW3tjb250ZW50VHlwZUlkOmBDRFhWMl9HYWxsZXJ5TGlzdGAsY2FyZFR5cGU6KGU9PW51bGw/dm9pZCAwOmUuY2FyZFR5cGUpPz9gQmFzaWNgLGNvbXBvbmVudElkOiQsYXV0b21hdGljQ2FyZEdlbmVyYXRpb246ITEsY2FyZHM6X3QoaSl9XX1yZXR1cm4gaX0sW2ldKTtyZXR1cm4gcj97Y29udGVudFR5cGVJZDpgQ0RYVjJfVGFiQ29udGFpbmVySXRlbWAsY29tcG9uZW50SWQ6YGFsbFRhYmAsdGl0bGU6ZSxjb250ZW50OmEsdGVzdElEOmAke259LWFsbC10YWJgfTp7Y29udGVudFR5cGVJZDpgQ0RYVjJfVGFiQ29udGFpbmVySXRlbWAsY29tcG9uZW50SWQ6YGFsbFRhYmAsdGl0bGU6ZSxjb250ZW50OmksdGVzdElEOmAke259LWFsbC10YWJgfX12YXIgeXQ9e21heFdpZHRoOntwaG9uZTpgbm9uZWAsYmFzZTpgMTIwMHB4YH19LCQ9YGNkeFYyQWxsVGFiYCxidD1jZSh7YWxsVGFiVGl0bGU6e2lkOmBDRFhUYWJDb250YWluZXIuYWxsVGFiVGl0bGVgLGRlZmF1bHRNZXNzYWdlOmBBbGxgLGRlc2NyaXB0aW9uOmAKICAgICAgI0NvbXBvbmVudDogQ0RYVGFiQ29udGFpbmVyCiAgICAgICNDaGFyTGltaXQ6IDMwCiAgICAgICNDb250ZXh0OiBUaXRsZSBmb3IgdGhlICJBbGwiIHRhYiBvZiB0aGUgdGFiIGNvbnRhaW5lcgogICAgYH19KSx4dD1xKGZ1bmN0aW9uKHt0ZXN0SUQ6ZT1gdGFiLWNvbnRhaW5lcmAsY2xhc3NOYW1lOnQsc2VjdGlvblNldHRpbmdzOm4sc2hvd0FsbFRhYjpyLGFsbFRhYlRpdGxlOmksbWVyZ2VBbGxUYWJDb250ZW50OmEsLi4uc30pe3ZhciBjLGwsdSxkO2xldHtmb3JtYXRNZXNzYWdlOmZ9PUYoKSxbcCxtXT0oMCxYLnVzZVN0YXRlKShyPyQ6KChjPXMudGFicyk9PW51bGx8fChjPWNbMF0pPT1udWxsP3ZvaWQgMDpjLmlkKXx8KChsPXMudGFicyk9PW51bGx8fChsPWxbMF0pPT1udWxsP3ZvaWQgMDpsLnRpdGxlKXx8YGApLGg9cD09PSQsZz12dCh7dGl0bGU6aT8/ZihidC5hbGxUYWJUaXRsZSksdGFiczpzLnRhYnMsdGVzdElEOmUsbWVyZ2VBbGxUYWJDb250ZW50OmF9KSxfPVsuLi5yP1t7aWQ6JCxsYWJlbDpnLnRpdGxlLGNvbXBvbmVudElkOmcuY29tcG9uZW50SWQsdGVzdElEOmAke2V9LWFsbC10YWItYnV0dG9uYH1dOltdLC4uLih1PXMudGFicyk9PW51bGw/dm9pZCAwOnUubWFwKHQ9Pih7aWQ6dC5pZD8/dC50aXRsZSxsYWJlbDp0LnRpdGxlLGNvbXBvbmVudElkOnQuY29tcG9uZW50SWQsdGVzdElEOmAke2V9LXRhYi1idXR0b24tJHt0LmlkPz90LnRpdGxlfWB9KSldLHk9aD9nOihkPXMudGFicyk9PW51bGw/dm9pZCAwOmQuZmluZChlPT4oZS5pZHx8ZS50aXRsZSk9PT1wKSxiPSgwLFgudXNlQ2FsbGJhY2spKGU9PnttKGUpfSxbXSk7cmV0dXJuKDAsWS5qc3hzKShILHt0ZXN0SUQ6ZSxjbGFzc05hbWU6dCxzZWN0aW9uU2V0dGluZ3M6bix2YXJpYW50OmBzbGltYCxjaGlsZHJlbjpbKDAsWS5qc3gpKHYse3RpdGxlOnMuaGVhZGVyVGl0bGUscGFyYWdyYXBoOnMuaGVhZGVyUGFyYWdyYXBoLGxheW91dDpzLmhlYWRlckxheW91dCxjdGFzT3ZlcnJpZGU6KDAsWS5qc3gpKFN0LHt0YWJzOl8sb25DaGFuZ2U6Yix2YWx1ZTpwLGdhcDouNSxyb2xlOmB0YWJsaXN0YCxDb21wb25lbnQ6dXQsanVzdGlmeUNvbnRlbnQ6cy5oZWFkZXJMYXlvdXQ9PT1gQ2VudGVyIFN0YWNrZWRgP2BjZW50ZXJgOmBmbGV4LXN0YXJ0YH0pLHBhcmFncmFwaFdyYXBwZXJPdmVycmlkZVByb3BzOnl0fSkseSYmKDAsWC5jcmVhdGVFbGVtZW50KShmdCx7Li4ueSx0ZXN0SUQ6eS50ZXN0SUQsY2xhc3NOYW1lOnkuY2xhc3NOYW1lLGtleTpwfSksKDAsWS5qc3gpKG8se3RpdGxlOnMuZm9vdGVyVGl0bGUscGFyYWdyYXBoOnMuZm9vdGVyUGFyYWdyYXBoLGN0YXM6cy5mb290ZXJDdGFHcm91cCxsYXlvdXQ6cy5mb290ZXJMYXlvdXR9KSxUKHMubGVnYWwpJiYoMCxZLmpzeCkoeix7bWF4V2lkdGg6YDkwMHB4YCxhbGlnblNlbGY6YGNlbnRlcmAsY2hpbGRyZW46KDAsWS5qc3gpKFUse2ZvbnQ6YGxlZ2FsYCxjb2xvcjpgZmdNdXRlZGAsY29udGVudDpzLmxlZ2FsLHRleHRBbGlnbjpgY2VudGVyYH0pfSldfSl9KSxTdD1QKHMpLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBDRFhUYWJDb250YWluZXJfX1N0eWxlZFRhYmJlZENoaXBzYCxjb21wb25lbnRJZDpgc2MtYzI2MTFjZjEtMGB9KShbYFtyb2xlPSdyYWRpb2dyb3VwJ117YmFja2dyb3VuZDppbmhlcml0O31gXSksQ3Q9e0NEWFYyX0FjY29yZGlvbjpoLENEWFYyX0NlbnRlcjpnZSxDRFhWMl9Db21wYXJpc29uOlRlLENEWFYyX0ZlYXR1cmVIaWdobGlnaHRzOlJlLENEWFYyX0ZlYXR1cmVTdGF0czpVZSxDRFhWMl9GZWF0dXJlVmFsdWVzOktlLENEWFYyX0dhbGxlcnlDYXJvdXNlbDphLENEWFYyX0dhbGxlcnlHcmlkOnksQ0RYVjJfR2FsbGVyeUxpc3Q6YixDRFhWMl9HYWxsZXJ5TG9nbzpaZSxDRFhWMl9IZXJvOiRlLENEWFYyX0hlcm9Ib21lOnR0LENEWFYyX0xlZ2FsOngsQ0RYVjJfUHJvbW9DYXJvdXNlbDpzdCxDRFhWMl9UYWJDb250YWluZXI6eHR9LHd0PW5lKGBDT0lOQkFTRV9QVUJMSUNfREVQTE9ZTUVOVF9UQVJHRVRgKTtmdW5jdGlvbiBUdCh7Y2hpbGRyZW46ZSxyZWFzb246dCwuLi5ufSl7bGV0e3BhdGhuYW1lOnJ9PU8oKTtyZXR1cm4oMCxYLnVzZUVmZmVjdCkoKCk9PntsKEVycm9yKHQpLHsuLi5uLHJlYXNvbjp0LHBhdGhuYW1lOnJ9KX0sW3Qscl0pLGV9ZnVuY3Rpb24gRXQoe3BhZ2VEYXRhOmUsQWJvdmVIZWFkZXI6dCxIZWFkZXI6bj1mLEJvZHk6cj1tLEZvb3RlcjppPXUsRmFsbGJhY2s6YT1zZSxCZWxvd0Zvb3RlcjpvLG92ZXJyaWRlQ29tcG9uZW50TWFwOnMsY3VzdG9tQ29tcG9uZW50TWFwOmgsY3VzdG9tRGF0YTpnLGdxbFF1ZXJ5UmVmOl8saGVscGVyczp2LHRlbXBsYXRlTmFtZTp5fSl7bGV0IGI9KDAsWC51c2VDYWxsYmFjaykoZT0+bCh0eXBlb2YgZT09YHN0cmluZ2A/RXJyb3IoZSk6ZSksW10pLHtzZWFyY2g6eH09TygpLHtsYW5ndWFnZUZyb21Vcmw6Uyxjb3VudHJ5RnJvbVVybDpDLGxvY2FsZUZyb21Vcmw6dyxjdXJyZW5jeTpUfT10ZSgpLEU9YygpLEQ9cGUoKSxuZT0oMCxYLnVzZUNhbGxiYWNrKShlPT4oe2xpbms6RShkZSh3LGUpPz9lLHgpLGlzSW50ZXJuYWxMaW5rOiExfSksW3csRSx4XSksaz17c2x1ZzplPT1udWxsP3ZvaWQgMDplLnNsdWcsaWQ6KGU9PW51bGw/dm9pZCAwOmUuaWQpPz92b2lkIDAsdGVtcGxhdGVOYW1lOnl9O2lmKCEoZSE9bnVsbCYmZS5jb250ZW50KSlyZXR1cm4oMCxZLmpzeCkoVHQsey4uLmsscmVhc29uOmBtaXNzaW5nIHBhZ2UgY29udGVudGAsY2hpbGRyZW46KDAsWS5qc3gpKGEse30pfSk7bGV0e2NvbnRlbnQ6QX09ZSx7Y29tcG9uZW50czpqLHBhZ2VTZXR0aW5nczpNfT1BLHtmb3JjZVRoZW1lOk59PU18fHt9LFA9KE49PW51bGw/dm9pZCAwOk4udG9Mb3dlckNhc2UoKSl8fGBsaWdodGA7cmV0dXJuIUFycmF5LmlzQXJyYXkoail8fCEoaiE9bnVsbCYmai5sZW5ndGgpPygwLFkuanN4KShUdCx7Li4uayxyZWFzb246YG1pc3NpbmcgcGFnZSBjb21wb25lbnRzYCxjaGlsZHJlbjooMCxZLmpzeCkoYSx7fSl9KTooMCxZLmpzeCkoZmUse2NoaWxkcmVuOigwLFkuanN4cykoYWUse2FjdGl2ZUNvbG9yU2NoZW1lOlAsdXNlckluZm86e2xvY2FsZUluZm86e2NvdW50cnk6QyxsYW5ndWFnZTpTLGxvY2FsZTp3LGN1cnJlbmN5OlR9LGlzTG9nZ2VkSW46ITF9LGhlbHBlcnM6dj8/e3Jlc29sdmVMaW5rOm5lLGhhbmRsZUVtYWlsRm9ybVN1Ym1pdDpEfSxjdXN0b21EYXRhOmcsY2hpbGRyZW46WygwLFkuanN4KShtZSx7Li4uZChlKX0pLCgwLFkuanN4KShwLHt9KSx0PygwLFkuanN4KSh0LHtwYWdlRGF0YTplLG9uRXJyb3I6Yn0pOm51bGwsbj8oMCxZLmpzeCkobix7cGFnZURhdGE6ZSxvbkVycm9yOmIsYWN0aXZlQ29sb3JTY2hlbWU6UH0pOm51bGwsKDAsWS5qc3gpKHIse3BhZ2VEYXRhOmUsb25FcnJvcjpiLGNvbXBvbmVudE1hcDpDdCxvdmVycmlkZUNvbXBvbmVudE1hcDpzLGN1c3RvbUNvbXBvbmVudE1hcDpoLGdxbFF1ZXJ5UmVmOl99KSwoMCxZLmpzeCkoaSx7cGFnZURhdGE6ZSxvbkVycm9yOmIsYWN0aXZlQ29sb3JTY2hlbWU6UH0pLG8/KDAsWS5qc3gpKG8se3BhZ2VEYXRhOmUsb25FcnJvcjpifSk6bnVsbCx3dCE9PWBwcm9kdWN0aW9uYCYmZT8oMCxZLmpzeCkoZWUse3BhZ2VEYXRhOmUsdGVtcGxhdGVOYW1lOnksY3VzdG9tRGF0YTpnfSk6bnVsbF19KX0pfWV4cG9ydHtSZSBhcyBhLCRlIGFzIGksbHQgYXMgbixrZSBhcyBvLHN0IGFzIHIsRXQgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQlNRX21QU2kuanMubWFw"}},"time_used":112,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":112,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/logos/static/ot_guard_logo.svg","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:09.063Z","timestamp":1785108249063,"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":"cookielaw.org","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:47:21 GMT","end":"Tue, 20 Oct 2026 23:47:08 GMT"},"fingerprint":{"sha1":"BE:65:35:7C:E3:8D:B8:0C:7D:40:51:C7:4B:EE:56:FE:FD:2D:ED:91","sha256":"D6:A8:FD:24:40:A2:7D:0B:B5:73:08:9C:B2:AC:6E:1F:84:CC:D4:09:7B:BA:22:E8:A5:38:A4:10:29:65:88:5C"}}},"request":{"raw":"GET /logos/static/ot_guard_logo.svg HTTP/1.1\r\nHost: cdn.cookielaw.org\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.coinbase.com/\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:09 GMT\r\ncontent-type: image/svg+xml\r\ncontent-md5: tXyZydHjxQshFMbbBT1/8A==\r\nlast-modified: Thu, 23 Jul 2026 17:59:40 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nserver: cloudflare\r\nx-ms-request-id: 9812af7f-501e-00d3-4f2e-1b2c2f000000\r\nx-ms-version: 2009-09-19\r\nx-ms-lease-status: unlocked\r\nx-ms-blob-type: BlockBlob\r\naccess-control-expose-headers: x-ms-request-id,Server,x-ms-version,Content-Type,ETag,Last-Modified,Content-MD5,x-ms-lease-status,x-ms-blob-type,Content-Length,Date,Transfer-Encoding\r\naccess-control-allow-origin: *\r\nx-content-type-options: nosniff\r\ncross-origin-resource-policy: cross-origin\r\nage: 63892\r\ncache-control: max-age=86400\r\ncf-cache-status: HIT\r\ncontent-encoding: gzip\r\ncf-ray: a21727fcaad21525-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":497,"size_decoded":1162,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"b57c99c9d1e3c50b2114c6db053d7ff0","sha1":"ada8abfed92ba8a545bbd9d299d74d5972cc4ae8","sha256":"691dcdb24853a0f5ce4e6597e5713dea66799b57ffe2c2a10f28f98e0b569b19","sha512":"0dab6d06f386d922fb28f70f2590d4f9c361e7f4e5d5e581b98e59aac12b266cba596ffccd87203b4330673ee4ec1d459a1abdfc4b066d243a43b2bf7909f0ee","ssdeep":"","tlshash":"2ef0d4d91906a6adb6822e7cdd3c56e04c2c7ce274dc22c894cce094d4489bc9705855","first_seen":"2023-05-07T20:46:54Z","last_seen":"2026-07-27T02:25:00.940995Z","times_seen":174931,"resource_available":true,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGNsYXNzPSJvdC1mbG9hdGluZy1idXR0b25fX3N2Zy1maWxsIiBkPSJNMTQuNTg4IDBsLjQ0NS4zMjhjMS44MDcgMS4zMDMgMy45NjEgMi41MzMgNi40NjEgMy42ODggMi4wMTUuOTMgNC41NzYgMS43NDYgNy42ODIgMi40NDYgMCAxNC4xNzgtNC43MyAyNC4xMzMtMTQuMTkgMjkuODY0bC0uMzk4LjIzNkM0Ljg2MyAzMC44NyAwIDIwLjgzNyAwIDYuNDYyYzMuMTA3LS43IDUuNjY4LTEuNTE2IDcuNjgyLTIuNDQ2IDIuNzA5LTEuMjUxIDUuMDEtMi41OSA2LjkwNi00LjAxNnptNS44NyAxMy44OGEuNzUuNzUgMCAwMC0uOTc0LjE1OWwtNS40NzUgNi42MjUtMy4wMDUtMi45OTctLjA3Ny0uMDY3YS43NS43NSAwIDAwLS45ODMgMS4xM2w0LjE3MiA0LjE2IDYuNTI1LTcuODk1LjA2LS4wODNhLjc1Ljc1IDAgMDAtLjE2LS45NzN6IiBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4="}},"time_used":7,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":7,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/src/main.tsx","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.196Z","timestamp":1785108243196,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /src/main.tsx HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 1622\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: no-cache\r\nEtag: W/\"2f7-eFy0YAWC9A9vfGQpwk6XIDCXlZU\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Nginx:1.18.0","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":1622,"size_decoded":1868,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (862)","md5":"fa85c42cf327d169530d33a3aff35b2b","sha1":"dcdb5c6edadca17f372e025aac4de8f68f39075a","sha256":"4e76ed9e63d03d4fbb7803fb84d5ec75531cd45f3cb6fa535a0fc503dfa491a8","sha512":"7fb5b78190cc76efb3581c43fbc001b54742c758d55409f9b40351d0b8116dd036ab454e6d2804502cec90c72dd677637aa28e3c6788de764b4eacecec48571e","ssdeep":"","tlshash":"8f3144631088adb6bc2b24adff15f542172c15d5fb14300cc284577a56b6aaa273bd4c","first_seen":"2026-07-26T23:24:50.385634Z","last_seen":"2026-07-26T23:25:46.834621Z","times_seen":3,"resource_available":true,"data":"aW1wb3J0IF9fdml0ZV9fY2pzSW1wb3J0MF9yZWFjdF9qc3hEZXZSdW50aW1lIGZyb20gIi9ub2RlX21vZHVsZXMvLnZpdGUvZGVwcy9yZWFjdF9qc3gtZGV2LXJ1bnRpbWUuanM/dj0wOGViMzQ5ZSI7IGNvbnN0IGpzeERFViA9IF9fdml0ZV9fY2pzSW1wb3J0MF9yZWFjdF9qc3hEZXZSdW50aW1lWyJqc3hERVYiXTsKaW1wb3J0IF9fdml0ZV9fY2pzSW1wb3J0MV9yZWFjdERvbV9jbGllbnQgZnJvbSAiL25vZGVfbW9kdWxlcy8udml0ZS9kZXBzL3JlYWN0LWRvbV9jbGllbnQuanM/dj0wOGViMzQ5ZSI7IGNvbnN0IFJlYWN0RE9NID0gX192aXRlX19janNJbXBvcnQxX3JlYWN0RG9tX2NsaWVudC5fX2VzTW9kdWxlID8gX192aXRlX19janNJbXBvcnQxX3JlYWN0RG9tX2NsaWVudC5kZWZhdWx0IDogX192aXRlX19janNJbXBvcnQxX3JlYWN0RG9tX2NsaWVudDsKaW1wb3J0IEFwcCBmcm9tICIvc3JjL0FwcC50c3giOwppbXBvcnQgIi9zcmMvaW5kZXguY3NzIjsKaW1wb3J0ICIvc3JjL2dlbWluaS10aGVtZS5jc3MiOwppbXBvcnQgIi9zcmMva3Jha2VuLXRoZW1lLmNzcyI7ClJlYWN0RE9NLmNyZWF0ZVJvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvb3QiKSkucmVuZGVyKC8qIEBfX1BVUkVfXyAqLyBqc3hERVYoQXBwLCB7fSwgdm9pZCAwLCBmYWxzZSwgewogIGZpbGVOYW1lOiAiL2hvbWUvY2JwYW5sL2Zyb250ZW5kL3NyYy9tYWluLnRzeCIsCiAgbGluZU51bWJlcjogNywKICBjb2x1bW5OdW1iZXI6IDYyCn0sIHRoaXMpKTsKCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnRZWEJ3YVc1bmN5STZJa0ZCVFRaRU8wRkJUamRFTEU5QlFVOUJMR05CUVdNN1FVRkRja0lzVDBGQlQwTXNVMEZCVXp0QlFVTm9RaXhQUVVGUE8wRkJRMUFzVDBGQlR6dEJRVU5RTEU5QlFVODdRVUZGVUVRc1UwRkJVMFVzVjBGQlYwTXNVMEZCVTBNc1pVRkJaU3hOUVVGTkxFTkJRVVVzUlVGQlJVTXNUMEZCVHl4MVFrRkJReXhUUVVGRU8wRkJRVUU3UVVGQlFUdEJRVUZCTzBGQlFVRXNUMEZCU1N4RFFVRkhJaXdpYm1GdFpYTWlPbHNpVW1WaFkzUkVUMDBpTENKQmNIQWlMQ0pqY21WaGRHVlNiMjkwSWl3aVpHOWpkVzFsYm5RaUxDSm5aWFJGYkdWdFpXNTBRbmxKWkNJc0luSmxibVJsY2lKZExDSnBaMjV2Y21WTWFYTjBJanBiWFN3aWMyOTFjbU5sY3lJNld5SnRZV2x1TG5SemVDSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdVbVZoWTNSRVQwMGdabkp2YlNCY0luSmxZV04wTFdSdmJTOWpiR2xsYm5SY0lqdGNibWx0Y0c5eWRDQkJjSEFnWm5KdmJTQmNJaTR2UVhCd1hDSTdYRzVwYlhCdmNuUWdYQ0l1TDJsdVpHVjRMbU56YzF3aU8xeHVhVzF3YjNKMElGd2lMaTluWlcxcGJta3RkR2hsYldVdVkzTnpYQ0k3WEc1cGJYQnZjblFnWENJdUwydHlZV3RsYmkxMGFHVnRaUzVqYzNOY0lqdGNibHh1VW1WaFkzUkVUMDB1WTNKbFlYUmxVbTl2ZENoa2IyTjFiV1Z1ZEM1blpYUkZiR1Z0Wlc1MFFubEpaQ2hjSW5KdmIzUmNJaWtoS1M1eVpXNWtaWElvUEVGd2NDQXZQaWs3WEc0aVhTd2labWxzWlNJNklpOW9iMjFsTDJOaWNHRnViQzltY205dWRHVnVaQzl6Y21NdmJXRnBiaTUwYzNnaWZRPT0="}},"time_used":54,"timings":{"blocked":-1,"dns":0,"connect":15,"send":0,"wait":15,"receive":0,"ssl":24},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BIiaEx3V.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.596Z","timestamp":1785108244596,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_BIiaEx3V.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 263\r\nlast-modified: Fri, 10 Jul 2026 20:52:55 GMT\r\netag: \"f1125af06cc92fffef1e8ae6219b6cbd\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 dcfa20c2a21f99a696b77f7b84e39586.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN53-P3\r\nx-amz-cf-id: G62pi3txuWccCPA9_Vhf8Xu2idqYLDFXj5hwhjScTfzsu4DbeeS4rA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\nage: 1390728\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=WZ%2B%2BrmkYe1bliGzrAoBB3FpzmFKRxVvhjTMSTRTpqZd2E7zjvuHQEUernL1IKJ40aHvTIS91qVu16i4TARtm7chKyjfpYmfyceXVV4LOtKKCvXZjpKwEOON%2BUbMQrbx7fPMwOWO5yh%2FjFlRE9GLV\"}]}\r\ncf-ray: a21727e0bdbb0883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":468,"size_decoded":1420,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (429)","md5":"a7e69b1b1ad451636887d2efaa21bd67","sha1":"2660c76cb52052b78de2090b46fc3b96d9ecffe6","sha256":"f86cb5540e84bc6ffd83bc9566bc9fa2f32e030df8773f0c8e654ed70aa71985","sha512":"89320ee9942efe6a1dafc4a015f255302b4774212148c2b987edf8e38a16d3de9716f3307ff130742ca7a13c3eb23a9e9c2bc2eec0d43ea34732dbb7f3b7e301","ssdeep":"","tlshash":"49f027c29df02fd19016233fc45216017629526fd3ce4b20f1394e7a576ad9f8414b83","first_seen":"2026-07-17T19:28:31.631541Z","last_seen":"2026-07-26T23:25:46.889257Z","times_seen":4,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDU4MTU1N2I5LTZjNDYtNDFlYS04ZTc5LTY4NjdkNTM0NTEwYWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTU4MTU1N2I5LTZjNDYtNDFlYS04ZTc5LTY4NjdkNTM0NTEwYWApfSkoKX1jYXRjaHt9dmFyIGU9ZT0+ZXx8ZT09PTA/ZS50b1N0cmluZygpLnJlcGxhY2UoL1teI2EtejAtOSUoKS4sIF8tXS9naSxgYCk6YGA7ZXhwb3J0e2UgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQklpYUV4M1YuanMubWFw"}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CofLuR90.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.602Z","timestamp":1785108244602,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CofLuR90.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 875\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\netag: \"2c6195cd50a4e7e9fe9df506a4f3de85\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 b0380453c1d490e0143b23fb633d7e7c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: o8StDfVMQicdXcSnbkRVjLDPuY3FJf7YHJAJ8B_Bj8AhJLeaXtRVYg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=h%2FjTjqveWvFuvkLzADQu9wB0zb7sMnAfuNqAkCQoFUeozNpdfPVxf6du4Krj5ckD2yEZp1SgFXnzjHWPks8dlgmvOJWpQRT0yFplOcz39LHN9BCYMpHBByae3%2BZYNIEP0rqdRLwUIyZpzKd3bDIy\"}]}\r\ncf-ray: a21727e0cdce0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":2054,"size_decoded":2016,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (2015)","md5":"5954928cd58206010909ea15b63d038c","sha1":"6660105654da6a93f8dc6d963366cf3f490101d7","sha256":"33a423554495ec161c817552d9291276c57cb9706ef4d7b277ad8bad8840ea52","sha512":"b2807893b4bfc4c4885d496234452ad07ade551ed9a8b670e9b8edbdc0dfec77e86afa431e41e7bf3e15f92bcf86268888239f3113a863e6662421f48bbc1be7","ssdeep":"","tlshash":"8a41a3d3dbbc7d61c46b029cc3d2c494166150a9a91d4f20f33b28bf07743ad2609be2","first_seen":"2026-07-26T23:24:50.3895Z","last_seen":"2026-07-26T23:25:46.804055Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDA0NWQxZTkzLTFlZmYtNDdkOC04YmUzLTZjYWU1YTMxNWY4ZWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTA0NWQxZTkzLTFlZmYtNDdkOC04YmUzLTZjYWU1YTMxNWY4ZWApfSkoKX1jYXRjaHt9aW1wb3J0e1BvIGFzIGUsV3AgYXMgdCxfYSBhcyBuLGJhIGFzIHIsZiBhcyBpLGZmIGFzIGEsaGYgYXMgb31mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIHM9YSgpLGM9dChvKCkpLGw9KHtwYXRoOmU9YGAsbG9nZ2VkSW46dH0pPT4hdCYmZS5tYXRjaChgXi9wcmljZWApO2Z1bmN0aW9uIHUoZSl7cmV0dXJuIGU9PT1gL2xlZ2FsL3VzZXJfYWdyZWVtZW50YH1mdW5jdGlvbiBkKHtjb2xvcjplPWBzbGF0ZWAsc2l6ZTp0PWBtZWRpdW1gLHdlaWdodDpuPWBpbmhlcml0YCwuLi5yfSl7bGV0e2xvY2FsaXplOmEsaGlkZUxvY2FsZVNlbGVjdG9yOm99PSgwLGMudXNlQ29udGV4dCkoaSksZD1yLnRvfHxyLmhyZWYsZj1sKHtwYXRoOmQsbG9nZ2VkSW46b30pLHA9dShkKT9kOmEoZCk7cmV0dXJuIHIudG8mJiFmPygwLHMuanN4KShoLHsuLi5yLGNvbG9yOmUsc2l6ZTp0LHdlaWdodDpuLHRvOnB9KTooMCxzLmpzeCkobSx7Li4ucixjb2xvcjplLHJlbDpyLnJlbD9yLnJlbDpyLm9wZW5Jbk5ld1RhYj9gbm9vcGVuZXJgOnZvaWQgMCx0YXJnZXQ6ci5vcGVuSW5OZXdUYWI/YF9ibGFua2A6dm9pZCAwLGhyZWY6cH0pfXZhciBmPXtuZXV0cmFsOmB0ZXh0QWNjZW50SG92ZXJgLHNsYXRlOmBzbGF0ZURhcmtgLHdoaXRlOmBzbGF0ZWB9LHA9cihbYGNvbG9yOmAsYDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6YCxgO2ZvbnQtd2VpZ2h0OmAsYDt0ZXh0LWRlY29yYXRpb246YCxgO3RyYW5zaXRpb246Y29sb3IgZWFzZSAwLjI1czsmOmhvdmVye2AsYDt0cmFuc2l0aW9uOmNvbG9yIGVhc2UgMC4yNXM7fWBdLCh7dGhlbWU6ZSxjb2xvcjp0fSk9PnQ9PT1gYWNjZW50YD9lLmNvbG9yLnRleHRBY2NlbnQ6dD09PWBkYXJrYD9lLmNvbG9yLnRleHQ6ZS5jb2xvclt0XT9lLmNvbG9yW3RdOmUuY29sb3IudGV4dEFjY2VudCwoe3RoZW1lOmUsc2l6ZTp0fSk9PnQ9PT1gaW5oZXJpdGA/YGluaGVyaXRgOmUuZm9udFNpemVbdF0sKHt0aGVtZTplLHdlaWdodDp0fSk9PmUuZm9udFdlaWdodFt0XSwoe3VuZGVybGluZWQ6ZX0pPT5lP2B1bmRlcmxpbmVgOmBub25lYCwoe25vSG92ZXI6ZSx0aGVtZTp0LGNvbG9yOm59KT0+e2lmKCFlKXJldHVybiBuPT09YGluaGVyaXRgP3IoW2Bjb2xvcjppbmhlcml0O2BdKTpuPT09YGFjY2VudGA/cihbYGNvbG9yOmAsYDtgXSx0LnRleHRBY2NlbnRIb3Zlcik6bj09PWBkYXJrYD9yKFtgY29sb3I6YCxgO2BdLHQudGV4dExpZ2h0KTpmW25dJiZ0W2Zbbl1dP2Bjb2xvcjogJHt0LmNvbG9yW2Zbbl1dfWA6cihbYGNvbG9yOmAsYDtgXSx0LmNvbG9yLnRleHRBY2NlbnRIb3Zlcil9KSxtPW4uYS53aXRoQ29uZmlnKHtzaG91bGRGb3J3YXJkUHJvcDplPT4hW2B3aXRob3V0U3R5bGVzYF0uaW5jbHVkZXMoZSl9KS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgTGlua19fQWAsY29tcG9uZW50SWQ6YHNjLWUwMzE0ZWYwLTBgfSkoW2BgLGA7YF0sKHt3aXRob3V0U3R5bGVzOmV9KT0+IWUmJnApLGg9bihlKS53aXRoQ29uZmlnKHtzaG91bGRGb3J3YXJkUHJvcDplPT4hW2B3aXRob3V0U3R5bGVzYF0uaW5jbHVkZXMoZSl9KS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgTGlua19fQVJvdXRlckxpbmtgLGNvbXBvbmVudElkOmBzYy1lMDMxNGVmMC0xYH0pKFtgYCxgO2BdLCh7d2l0aG91dFN0eWxlczplfSk9PiFlJiZwKTtleHBvcnR7ZCBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19Db2ZMdVI5MC5qcy5tYXA="}},"time_used":107,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":107,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_B5sSvvmc.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.639Z","timestamp":1785108244639,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_B5sSvvmc.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 1266\r\nlast-modified: Sun, 26 Jul 2026 22:31:15 GMT\r\netag: \"0c01b655809d93e0133d17c8dbb471b2\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 c9dfe01ff817aaa5d7026e2556d7e676.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: ylAtzn2offRp4ktoxMZZMSHkbO2VLurCTcIy3YhVO4PuthlKEr5tcQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=7N9KEVkvssVsxZgXHc840iMIaKv8gr%2Bn9ItyMYqBwhm8zQ%2FpwJrUoAUgEk7M0deXVpdkauOaNCU7Sv07MqbmeAE6z3EO8AOuxF346B4miIO5oIHJg3BSlbDHpmYrBmFBy8ydeT5pQO%2BPRJSQNASy\"}]}\r\ncf-ray: a21727e10e600883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":3040,"size_decoded":2410,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (3001)","md5":"3a9cf9cf773e60294ef591b2cc732ee0","sha1":"6efec759233ab70b729195b0b138632456d46219","sha256":"d6843c9a98591833f6c944c88335cb16fffb93bebe81cf15399e2e05554dc518","sha512":"e0d8be4325c926b4589d964385b1a1e11d3af90b1d8c87b6b5c44a112598d8b8da582f80e26f3f2f1f031760e11c115809055441a69b66a003210b830ae015a8","ssdeep":"","tlshash":"715192c17fe47a75018ed2d9c0bfa9c0f6146126943d66a1f220ace069a885701b5b27","first_seen":"2026-07-26T23:24:50.391239Z","last_seen":"2026-07-26T23:25:46.859589Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDRjMGVmZDIyLWVmNDktNGQyOC1hNTBmLThlMDk1MzNjMDhhN2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTRjMGVmZDIyLWVmNDktNGQyOC1hNTBmLThlMDk1MzNjMDhhN2ApfSkoKX1jYXRjaHt9aW1wb3J0e0Z1IGFzIGUsSHMgYXMgdCxKdSBhcyBuLFBjIGFzIHIsUHUgYXMgaSxScyBhcyBhLFNsIGFzIG8sVXMgYXMgcyxXcCBhcyBjLGZmIGFzIGwsaGYgYXMgdSxqbCBhcyBkLHhsIGFzIGZ9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciBwPWModSgpLDEpO2Z1bmN0aW9uIG0oe2NoaWxkcmVuOnQsaXNWYWxpZFByb3A6ciwuLi5hfSl7ciYmZShyKSxhPXsuLi4oMCxwLnVzZUNvbnRleHQpKG4pLC4uLmF9LGEuaXNTdGF0aWM9aSgoKT0+YS5pc1N0YXRpYyk7bGV0IG89KDAscC51c2VNZW1vKSgoKT0+YSxbSlNPTi5zdHJpbmdpZnkoYS50cmFuc2l0aW9uKSxhLnRyYW5zZm9ybVBhZ2VQb2ludCxhLnJlZHVjZWRNb3Rpb25dKTtyZXR1cm4gcC5jcmVhdGVFbGVtZW50KG4uUHJvdmlkZXIse3ZhbHVlOm99LHQpfXZhciBoPXtwcm9wZXJ0eTpgcm90YXRlYCxlYXNpbmc6dCxkdXJhdGlvbjpzfSxnPWwoKSxfPVtgcm90YXRlYCxgc2l6ZWAsYGNvbG9yYCxgdGVzdElEYCxgcGFkZGluZ2AsYHBhZGRpbmdCb3R0b21gLGBwYWRkaW5nRW5kYCxgcGFkZGluZ1hgLGBwYWRkaW5nU3RhcnRgLGBwYWRkaW5nVG9wYCxgcGFkZGluZ1lgXTtmdW5jdGlvbiB2KGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24geShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF09PW51bGw/e306YXJndW1lbnRzW3RdO3QlMj92KE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtiKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOnYoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIGIoZSx0LG4pe3JldHVybih0PXgodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24geChlKXt2YXIgdD1TKGUsYHN0cmluZ2ApO3JldHVybiB0eXBlb2YgdD09YHN5bWJvbGA/dDp0K2BgfWZ1bmN0aW9uIFMoZSx0KXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihuIT09dm9pZCAwKXt2YXIgcj1uLmNhbGwoZSx0fHxgZGVmYXVsdGApO2lmKHR5cGVvZiByIT1gb2JqZWN0YClyZXR1cm4gcjt0aHJvdyBUeXBlRXJyb3IoYEBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuYCl9cmV0dXJuKHQ9PT1gc3RyaW5nYD9TdHJpbmc6TnVtYmVyKShlKX1mdW5jdGlvbiBDKGUsdCl7aWYoZT09bnVsbClyZXR1cm57fTt2YXIgbixyLGk9dyhlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPT09LTEmJnt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKGlbbl09ZVtuXSl9cmV0dXJuIGl9ZnVuY3Rpb24gdyhlLHQpe2lmKGU9PW51bGwpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluZGV4T2YocikhPT0tMSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59dmFyIFQ9e3ByaW1hcnk6YGZnUHJpbWFyeWAscG9zaXRpdmU6YGZnUG9zaXRpdmVgLG5lZ2F0aXZlOmBmZ05lZ2F0aXZlYCxmb3JlZ3JvdW5kOmBmZ2AsZm9yZWdyb3VuZE11dGVkOmBmZ011dGVkYCxzZWNvbmRhcnk6YGZnTXV0ZWRgfSxFPSgwLHAubWVtbykoZnVuY3Rpb24oZSl7bGV0e3JvdGF0ZTp0LHNpemU6bj1gc2AsY29sb3I6aT1gZmdNdXRlZGAsdGVzdElEOnMscGFkZGluZzpjLHBhZGRpbmdCb3R0b206bCxwYWRkaW5nRW5kOnUscGFkZGluZ1g6cCxwYWRkaW5nU3RhcnQ6dixwYWRkaW5nVG9wOmIscGFkZGluZ1k6eH09ZSxTPUMoZSxfKSx3PXIoe2VudGVyQ29uZmlnczpbeSh5KHt9LGgpLHt9LHt0b1ZhbHVlOnR9KV0saW5pdGlhbDohMX0pLEU9YSgpLEQ9RT9UW0VdOmk7cmV0dXJuKDAsZy5qc3gpKGYse3BhZGRpbmc6YyxwYWRkaW5nQm90dG9tOmwscGFkZGluZ0VuZDp1LHBhZGRpbmdTdGFydDp2LHBhZGRpbmdUb3A6YixwYWRkaW5nWDpwLHBhZGRpbmdZOngsY2hpbGRyZW46KDAsZy5qc3gpKG0se3JlZHVjZWRNb3Rpb246YHVzZXJgLGNoaWxkcmVuOigwLGcuanN4KShkLmRpdix5KHkoe30sdykse30seyJkYXRhLXRlc3RpZCI6YCR7c30tbW90aW9uYCxjaGlsZHJlbjooMCxnLmpzeCkobyx5KHtjb2xvcjpELG5hbWU6YGNhcmV0VXBgLHNpemU6bn0sUykpfSkpfSl9KX0pO2V4cG9ydHtFIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0I1c1N2dm1jLmpzLm1hcA=="}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DouJRUqN.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.674Z","timestamp":1785108244674,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DouJRUqN.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 309\r\nlast-modified: Fri, 10 Jul 2026 20:54:47 GMT\r\netag: \"842d0dc03016f7814d8c36f6422a2243\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 d45ef88fb3f106e18ccaf0607422641a.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JED50-P6\r\nx-amz-cf-id: EroncjRs8ubZs8X3oSqofJdcriliz2_nRsfXLLSFspasHm5nup4UmA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\nage: 1390730\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=EJgznxaVSkv7tU4E%2FxKz71Hd7WhyRIdMp8Jw8P1fxt28QoeciDRTcZQzNL2g9o9QucQA%2Bxg%2B1XPNUacTfVV5SpC3t4qZpikqsqfC85bhgCMvDO0MkJjZtxTTm%2B1pYaKKFCVyJNY160rQQI%2BXSkuG\"}]}\r\ncf-ray: a21727e13edb0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":567,"size_decoded":1468,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (528)","md5":"51f42b21ea15c6a939cc8cef255b35eb","sha1":"5a2c997a227906a7e89eeafc383ffd823ddb3a11","sha256":"09bdb01afa10d88d600911165972635a049d8f57cf6eee61b36ff21866185f4d","sha512":"444f28b5efb4f93c7487efe628e79602b45a900b57bcb960a8dd75fc4edcf24c38773044f89c655c6fcbf60118ffa9389e535485eeff1a95e2491d04f86f463c","ssdeep":"","tlshash":"bff04ca2e9f01bb5319823afd2172241b6481167ab8e5b10a0288a3a3758e8fc494783","first_seen":"2026-07-17T19:28:31.610676Z","last_seen":"2026-07-26T23:25:46.88396Z","times_seen":4,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGU0OTc5NmQ4LTg3NDYtNDBlNy05YjU0LTBlNWY4NDUzN2MwMGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWU0OTc5NmQ4LTg3NDYtNDBlNy05YjU0LTBlNWY4NDUzN2MwMGApfSkoKX1jYXRjaHt9dmFyIGU9KGUsdD0wKT0+e2xldCBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpO2lmKG4pe2xldCBlPShuPT1udWxsP3ZvaWQgMDpuLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCktdCt3aW5kb3cuc2Nyb2xsWTt3aW5kb3cuc2Nyb2xsKHt0b3A6ZSxiZWhhdmlvcjpgc21vb3RoYH0pfX07ZXhwb3J0e2UgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfRG91SlJVcU4uanMubWFw"}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DaWhQ7ei2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.680Z","timestamp":1785108244680,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DaWhQ7ei2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 407\r\nlast-modified: Sun, 26 Jul 2026 22:31:26 GMT\r\netag: \"853d1f03f5656c716a72322f5348b9d1\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 11050e7a710fa6deb5ade87dc71fe9d8.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: hLHcW8pm1it6nn_zOZJj6tx-1SDhmkkenpQvKE_dGO1BhDMocVK1zA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Q9aZ0oAUXJlSVnaeSwS%2BUFZ2JCjjYcMaU5xIpHOVjEAvzVzx34WUZOsy3S%2FWiipyG5g6ZHbvHg3nRp2qMKofA%2FuywNKof59HebhS1eBfI%2FNdTuxy1KcyiFNUa3IIqaIoB0AwNIeVRFO0LTdas4DV\"}]}\r\ncf-ray: a21727e14ef40883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":739,"size_decoded":1552,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (699)","md5":"8cae1ccce7ea22d93a7c84bb34fccb79","sha1":"ae718ba3ed03bfdba0bf261ec0e4549aa4105185","sha256":"b3ae18db1776c8e9e665db168ef6a362d9226ac28c384e4499f6233578849320","sha512":"3f2ab38a3eecc10c56922062952554cb90d2f2bb53eef58cf733f096f53ee53f24b80e208691881a16e855923a353fc14920c2d33e4908d06068430fa7263c80","ssdeep":"","tlshash":"7e0110da86f00b75a442639dc1ae41153b282273826f0f31f03b0a3d07f9eae8080a97","first_seen":"2026-07-26T23:24:50.394253Z","last_seen":"2026-07-26T23:25:46.862154Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDJkM2ZlNDcxLTAwNDQtNDdhOS1iNGVmLTlmZGU4NmI0NzNjNWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTJkM2ZlNDcxLTAwNDQtNDdhOS1iNGVmLTlmZGU4NmI0NzNjNWApfSkoKX1jYXRjaHt9aW1wb3J0e0xvIGFzIGUsT2kgYXMgdCxXcCBhcyBuLGhmIGFzIHIsb3IgYXMgaSx6byBhcyBhfWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgbz1uKHIoKSk7ZnVuY3Rpb24gcygpe2xldHtwYXRobmFtZTpufT1lKCkse2xvY2FsZUNvZGU6cn09dCgpLHtwcmV2aWV3OnMsc3BhY2VfaWQ6YyxlbnZpcm9ubWVudDpsLGZyb250aWVyOnV9PWkoKSxkPWEoKTtyZXR1cm4oMCxvLnVzZU1lbW8pKCgpPT4oe2xvY2FsZUNvZGU6cixwYXJhbXM6ZCxwYXRobmFtZTpuLHByZXZpZXc6cyxzcGFjZUlkOmMsZW52aXJvbm1lbnQ6bCxmcm9udGllcjp1LGNhY2hlVmVyc2lvbjpgYH0pLFtyLGQsbixzLGMsbCx1XSl9ZXhwb3J0e3MgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfRGFXaFE3ZWkyLmpzLm1hcA=="}},"time_used":114,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":114,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/src/pages/RootLanding.tsx","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.517Z","timestamp":1785108243517,"http_version":"HTTP/1.1","security_state":"secure","security_info":null,"request":{"raw":"GET /src/pages/RootLanding.tsx HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/src/App.tsx\r\nSec-Fetch-Dest: script\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":"","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T02:51:03.003348Z","times_seen":17554215,"resource_available":true,"data":null}},"time_used":0,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":0,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"exceptions.coinbase.com/sentry/api/4509158375817216/envelope/?sentry_version=7\u0026sentry_key=49c18eee427e5749efe688d0baece206","fqdn":"exceptions.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"172.64.152.241","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.564Z","timestamp":1785108244564,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"POST /sentry/api/4509158375817216/envelope/?sentry_version=7\u0026sentry_key=49c18eee427e5749efe688d0baece206 HTTP/1.1\r\nHost: exceptions.coinbase.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nContent-Type: text/plain;charset=UTF-8\r\nReferer: https://www.coinbase.com/\r\nContent-Length: 561\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-site\r\nPriority: u=4\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":561,"data":"{\"sent_at\":\"2026-07-26T23:24:04.559Z\",\"sdk\":{\"name\":\"sentry.javascript.react\",\"version\":\"9.45.0\"},\"dsn\":\"https://49c18eee427e5749efe688d0baece206@exceptions.coinbase.com/sentry/4509158375817216\"}\n{\"type\":\"session\"}\n{\"sid\":\"8da4bf68ad4248719351ce06d2a0828b\",\"init\":false,\"started\":\"2026-07-26T23:24:04.558Z\",\"timestamp\":\"2026-07-26T23:24:04.559Z\",\"status\":\"exited\",\"errors\":0,\"attrs\":{\"release\":\"de89472f041857c92d39c517b49c360b7e08e578\",\"environment\":\"production\",\"user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\"}}"}},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-length: 0\r\naccess-control-allow-headers: Origin, Content-Type, Accept, Authorization, User-Agent, Referer, X-Forwarded-For, Bugsnag-Api-Key, Bugsnag-Sent-At, Bugsnag-Payload-Version, Bugsnag-Integrity\r\naccess-control-allow-methods: POST\r\naccess-control-allow-origin: *\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\ncf-cache-status: DYNAMIC\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nset-cookie: __cf_bm=UlMbJ53TuxwSjKUzpkgN43DGzfvUPoq8ozJdtXJlbEI-1785108244.5794842-1.0.1.1-nPIA7lEoD4y7aBkcMexjrPP7q4oIhPS5gsfu3iZM1IIaJmS2frpiwxawuNyTK7tsitz_aazt0Y1bWx9jGSZLXYEcIcftpGF627xJD8O15loiQLV.5KfLiUGxH0lZZjg9; HttpOnly; SameSite=None; Secure; Path=/; Domain=coinbase.com; Expires=Sun, 26 Jul 2026 23:54:04 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=C0aLquPv%2FVyUkCCRAL92j5pv14WU67DztvWKoFD3%2BhRch5cLsVfplD7e8n1bYd13XyM9jIJCm2Q22fCwX9IZTKElsJzU6wSaaF%2Bwwv%2FeY2cLWiA1IcpYjjMeFrBjHdsBBO2XnvtGCw7S\"}]}\r\nserver: cloudflare\r\ncf-ray: a21727e098cd1525-OSL\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":"Cloudflare Bot Management","description":"Cloudflare bot management solution identifies and mitigates automated traffic to protect websites from bad bots.","website":"https://www.cloudflare.com/en-gb/products/bot-management/","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":0,"size_decoded":2331,"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-27T02:51:03.003348Z","times_seen":17554215,"resource_available":true,"data":""}},"time_used":121,"timings":{"blocked":-1,"dns":1,"connect":1,"send":0,"wait":108,"receive":0,"ssl":10},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_BPNCdo3r2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.684Z","timestamp":1785108244684,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_BPNCdo3r2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:16 GMT\r\nvary: accept-encoding\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=iPHTwnKz53HiWDeRgoUuUkol22o9vhe4BLQ7LZs5NglCb%2B1txE1xAdtedb7utbXUxgbSu0XtSQVz7USCoT%2FFgBW2qbkzG2LqpShRPdRJ5zXQAZ5nhzvk9KLuuwKagBLVGByiMi%2BCBr%2FBeW0Ym6We\"}]}\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 6259f104262c746229991b7649181424.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: vNCBeZ0CVr-TbH7OmlaWiCyweXg3Rer1iiY6q5_UqXwXi7rNlk9G6A==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\netag: W/\"90ce959a603ef461d32f9b4762da3cf9\"\r\ncontent-encoding: gzip\r\ncf-ray: a21727e14f0e0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":517,"size_decoded":1450,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (477)","md5":"90ce959a603ef461d32f9b4762da3cf9","sha1":"c3bdb107d6ec1b048399481fbfc3fb4c1c50b2d6","sha256":"6b840ef011cfbdfdf06d31483c93b814c65e3e553ba5d8498467086033062723","sha512":"f3b4263e00544bdf5de4ad1bdc5d13bdb8b43067f96d73c07fb888fa225f22430f65de7d2b6943a9c27caad6677f9d8400c70b899140526b558eb9ee94700145","ssdeep":"","tlshash":"51f050c559f017755000162dc157680233ad216b93dc4f10b135d73c17afe9e8510f83","first_seen":"2026-07-26T23:24:50.39574Z","last_seen":"2026-07-26T23:25:46.90675Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGRiZDI0MzllLTQ3YzAtNDBmMy04NjA1LTliZmU3MWVjNTAyZmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWRiZDI0MzllLTQ3YzAtNDBmMy04NjA1LTliZmU3MWVjNTAyZmApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsaGYgYXMgdCx2IGFzIG59ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciByPWUodCgpKTtmdW5jdGlvbiBpKCl7cmV0dXJuKDAsci51c2VDb250ZXh0KShuKS5jYWNoZVZlcnNpb259ZXhwb3J0e2kgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQlBOQ2RvM3IyLmpzLm1hcA=="}},"time_used":104,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":104,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/@vite/client","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.195Z","timestamp":1785108243195,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /@vite/client HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 178928\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: no-cache\r\nEtag: W/\"8411-l+yG6N7KAhzF+Or+3sAG3BqKq60\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]},{"name":"Nginx:1.18.0","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":178928,"size_decoded":179177,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (31726)","md5":"2c3791925eec5a595a13bf340e6d74db","sha1":"d958ee9348c363fb21782f089e0cddc4c36758f8","sha256":"c0c620c5d60a1fa4e15b9179a12dfbb8fd37c1b1f5a5883fba7d5c93c2af1f55","sha512":"5884062f749877bc7fe5a6c59a8b8cc32561dd2acde2d1d1905e1d91075c877ff02027ff6d4471ca885444fdedeee4c696f585afa5c526dbed5a447138e2d04f","ssdeep":"1536:P1NQcFhP5sFmIb5BRcw6OEQJfiML5JaDUHOpwNgYFsY0g1Dv3t/DU2rYRNxrJL/:3Hcmir5f5JaDsOpI08R+NL/","tlshash":"2d04d6519e4a6071cffe1173f48d533ec29760034ab295ea9087d62f2475d3ac3a9e2b","first_seen":"2026-07-26T23:24:50.397457Z","last_seen":"2026-07-26T23:25:46.813588Z","times_seen":3,"resource_available":true,"data":"aW1wb3J0ICIvbm9kZV9tb2R1bGVzL3ZpdGUvZGlzdC9jbGllbnQvZW52Lm1qcyI7CgovLyNyZWdpb24gXDBAb3hjLXByb2plY3QrcnVudGltZUAwLjk5LjAvaGVscGVycy90eXBlb2YuanMKZnVuY3Rpb24gX3R5cGVvZihvKSB7CgkiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2YiOwoJcmV0dXJuIF90eXBlb2YgPSAiZnVuY3Rpb24iID09IHR5cGVvZiBTeW1ib2wgJiYgInN5bWJvbCIgPT0gdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA/IGZ1bmN0aW9uKG8kMSkgewoJCXJldHVybiB0eXBlb2YgbyQxOwoJfSA6IGZ1bmN0aW9uKG8kMSkgewoJCXJldHVybiBvJDEgJiYgImZ1bmN0aW9uIiA9PSB0eXBlb2YgU3ltYm9sICYmIG8kMS5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG8kMSAhPT0gU3ltYm9sLnByb3RvdHlwZSA/ICJzeW1ib2wiIDogdHlwZW9mIG8kMTsKCX0sIF90eXBlb2Yobyk7Cn0KCi8vI2VuZHJlZ2lvbgovLyNyZWdpb24gXDBAb3hjLXByb2plY3QrcnVudGltZUAwLjk5LjAvaGVscGVycy90b1ByaW1pdGl2ZS5qcwpmdW5jdGlvbiB0b1ByaW1pdGl2ZSh0LCByKSB7CglpZiAoIm9iamVjdCIgIT0gX3R5cGVvZih0KSB8fCAhdCkgcmV0dXJuIHQ7Cgl2YXIgZSA9IHRbU3ltYm9sLnRvUHJpbWl0aXZlXTsKCWlmICh2b2lkIDAgIT09IGUpIHsKCQl2YXIgaSA9IGUuY2FsbCh0LCByIHx8ICJkZWZhdWx0Iik7CgkJaWYgKCJvYmplY3QiICE9IF90eXBlb2YoaSkpIHJldHVybiBpOwoJCXRocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIik7Cgl9CglyZXR1cm4gKCJzdHJpbmciID09PSByID8gU3RyaW5nIDogTnVtYmVyKSh0KTsKfQoKLy8jZW5kcmVnaW9uCi8vI3JlZ2lvbiBcMEBveGMtcHJvamVjdCtydW50aW1lQDAuOTkuMC9oZWxwZXJzL3RvUHJvcGVydHlLZXkuanMKZnVuY3Rpb24gdG9Qcm9wZXJ0eUtleSh0KSB7Cgl2YXIgaSA9IHRvUHJpbWl0aXZlKHQsICJzdHJpbmciKTsKCXJldHVybiAic3ltYm9sIiA9PSBfdHlwZW9mKGkpID8gaSA6IGkgKyAiIjsKfQoKLy8jZW5kcmVnaW9uCi8vI3JlZ2lvbiBcMEBveGMtcHJvamVjdCtydW50aW1lQDAuOTkuMC9oZWxwZXJzL2RlZmluZVByb3BlcnR5LmpzCmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShlLCByLCB0KSB7CglyZXR1cm4gKHIgPSB0b1Byb3BlcnR5S2V5KHIpKSBpbiBlID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIHsKCQl2YWx1ZTogdCwKCQllbnVtZXJhYmxlOiAhMCwKCQljb25maWd1cmFibGU6ICEwLAoJCXdyaXRhYmxlOiAhMAoJfSkgOiBlW3JdID0gdCwgZTsKfQoKLy8jZW5kcmVnaW9uCi8vI3JlZ2lvbiBzcmMvc2hhcmVkL2htci50cwp2YXIgSE1SQ29udGV4dCA9IGNsYXNzIHsKCWNvbnN0cnVjdG9yKGhtckNsaWVudCQxLCBvd25lclBhdGgpIHsKCQl0aGlzLmhtckNsaWVudCA9IGhtckNsaWVudCQxOwoJCXRoaXMub3duZXJQYXRoID0gb3duZXJQYXRoOwoJCV9kZWZpbmVQcm9wZXJ0eSh0aGlzLCAibmV3TGlzdGVuZXJzIiwgdm9pZCAwKTsKCQlpZiAoIWhtckNsaWVudCQxLmRhdGFNYXAuaGFzKG93bmVyUGF0aCkpIGhtckNsaWVudCQxLmRhdGFNYXAuc2V0KG93bmVyUGF0aCwge30pOwoJCWNvbnN0IG1vZCA9IGhtckNsaWVudCQxLmhvdE1vZHVsZXNNYXAuZ2V0KG93bmVyUGF0aCk7CgkJaWYgKG1vZCkgbW9kLmNhbGxiYWNrcyA9IFtdOwoJCWNvbnN0IHN0YWxlTGlzdGVuZXJzID0gaG1yQ2xpZW50JDEuY3R4VG9MaXN0ZW5lcnNNYXAuZ2V0KG93bmVyUGF0aCk7CgkJaWYgKHN0YWxlTGlzdGVuZXJzKSBmb3IgKGNvbnN0IFtldmVudCwgc3RhbGVGbnNdIG9mIHN0YWxlTGlzdGVuZXJzKSB7CgkJCWNvbnN0IGxpc3RlbmVycyA9IGhtckNsaWVudCQxLmN1c3RvbUxpc3RlbmVyc01hcC5nZXQoZXZlbnQpOwoJCQlpZiAobGlzdGVuZXJzKSBobXJDbGllbnQkMS5jdXN0b21MaXN0ZW5lcnNNYXAuc2V0KGV2ZW50LCBsaXN0ZW5lcnMuZmlsdGVyKChsKSA9PiAhc3RhbGVGbnMuaW5jbHVkZXMobCkpKTsKCQl9CgkJdGhpcy5uZXdMaXN0ZW5lcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwoJCWhtckNsaWVudCQxLmN0eFRvTGlzdGVuZXJzTWFwLnNldChvd25lclBhdGgsIHRoaXMubmV3TGlzdGVuZXJzKTsKCX0KCWdldCBkYXRhKCkgewoJCXJldHVybiB0aGlzLmhtckNsaWVudC5kYXRhTWFwLmdldCh0aGlzLm93bmVyUGF0aCk7Cgl9CglhY2NlcHQoZGVwcywgY2FsbGJhY2spIHsKCQlpZiAodHlwZW9mIGRlcHMgPT09ICJmdW5jdGlvbiIgfHwgIWRlcHMpIHRoaXMuYWNjZXB0RGVwcyhbdGhpcy5vd25lclBhdGhdLCAoW21vZF0pID0+IGRlcHM/Lihtb2QpKTsKCQllbHNlIGlmICh0eXBlb2YgZGVwcyA9PT0gInN0cmluZyIpIHRoaXMuYWNjZXB0RGVwcyhbZGVwc10sIChbbW9kXSkgPT4gY2FsbGJhY2s/Lihtb2QpKTsKCQllbHNlIGlmIChBcnJheS5pc0FycmF5KGRlcHMpKSB0aGlzLmFjY2VwdERlcHMoZGVwcywgY2FsbGJhY2spOwoJCWVsc2UgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGhvdC5hY2NlcHQoKSB1c2FnZS5gKTsKCX0KCWFjY2VwdEV4cG9ydHMoXywgY2FsbGJhY2spIHsKCQl0aGlzLmFjY2VwdERlcHMoW3RoaXMub3duZXJQYXRoXSwgKFttb2RdKSA9PiBjYWxsYmFjaz8uKG1vZCkpOwoJfQoJZGlzcG9zZShjYikgewoJCXRoaXMuaG1yQ2xpZW50LmRpc3Bvc2VNYXAuc2V0KHRoaXMub3duZXJQYXRoLCBjYik7Cgl9CglwcnVuZShjYikgewoJCXRoaXMuaG1yQ2xpZW50LnBydW5lTWFwLnNldCh0aGlzLm93bmVyUGF0aCwgY2IpOwoJfQoJZGVjbGluZSgpIHt9CglpbnZhbGlkYXRlKG1lc3NhZ2UpIHsKCQljb25zdCBmaXJzdEludmFsaWRhdGVkQnkgPSB0aGlzLmhtckNsaWVudC5jdXJyZW50Rmlyc3RJbnZhbGlkYXRlZEJ5ID8/IHRoaXMub3duZXJQYXRoOwoJCXRoaXMuaG1yQ2xpZW50Lm5vdGlmeUxpc3RlbmVycygidml0ZTppbnZhbGlkYXRlIiwgewoJCQlwYXRoOiB0aGlzLm93bmVyUGF0aCwKCQkJbWVzc2FnZSwKCQkJZmlyc3RJbnZhbGlkYXRlZEJ5CgkJfSk7CgkJdGhpcy5zZW5kKCJ2aXRlOmludmFsaWRhdGUiLCB7CgkJCXBhdGg6IHRoaXMub3duZXJQYXRoLAoJCQltZXNzYWdlLAoJCQlmaXJzdEludmFsaWRhdGVkQnkKCQl9KTsKCQl0aGlzLmhtckNsaWVudC5sb2dnZXIuZGVidWcoYGludmFsaWRhdGUgJHt0aGlzLm93bmVyUGF0aH0ke21lc3NhZ2UgPyBgOiAke21lc3NhZ2V9YCA6ICIifWApOwoJfQoJb24oZXZlbnQsIGNiKSB7CgkJY29uc3QgYWRkVG9NYXAgPSAobWFwKSA9PiB7CgkJCWNvbnN0IGV4aXN0aW5nID0gbWFwLmdldChldmVudCkgfHwgW107CgkJCWV4aXN0aW5nLnB1c2goY2IpOwoJCQltYXAuc2V0KGV2ZW50LCBleGlzdGluZyk7CgkJfTsKCQlhZGRUb01hcCh0aGlzLmhtckNsaWVudC5jdXN0b21MaXN0ZW5lcnNNYXApOwoJCWFkZFRvTWFwKHRoaXMubmV3TGlzdGVuZXJzKTsKCX0KCW9mZihldmVudCwgY2IpIHsKCQljb25zdCByZW1vdmVGcm9tTWFwID0gKG1hcCkgPT4gewoJCQljb25zdCBleGlzdGluZyA9IG1hcC5nZXQoZXZlbnQpOwoJCQlpZiAoZXhpc3RpbmcgPT09IHZvaWQgMCkgcmV0dXJuOwoJCQljb25zdCBwcnVuZWQgPSBleGlzdGluZy5maWx0ZXIoKGwpID0+IGwgIT09IGNiKTsKCQkJaWYgKHBydW5lZC5sZW5ndGggPT09IDApIHsKCQkJCW1hcC5kZWxldGUoZXZlbnQpOwoJCQkJcmV0dXJuOwoJCQl9CgkJCW1hcC5zZXQoZXZlbnQsIHBydW5lZCk7CgkJfTsKCQlyZW1vdmVGcm9tTWFwKHRoaXMuaG1yQ2xpZW50LmN1c3RvbUxpc3RlbmVyc01hcCk7CgkJcmVtb3ZlRnJvbU1hcCh0aGlzLm5ld0xpc3RlbmVycyk7Cgl9CglzZW5kKGV2ZW50LCBkYXRhKSB7CgkJdGhpcy5obXJDbGllbnQuc2VuZCh7CgkJCXR5cGU6ICJjdXN0b20iLAoJCQlldmVudCwKCQkJZGF0YQoJCX0pOwoJfQoJYWNjZXB0RGVwcyhkZXBzLCBjYWxsYmFjayA9ICgpID0+IHt9KSB7CgkJY29uc3QgbW9kID0gdGhpcy5obXJDbGllbnQuaG90TW9kdWxlc01hcC5nZXQodGhpcy5vd25lclBhdGgpIHx8IHsKCQkJaWQ6IHRoaXMub3duZXJQYXRoLAoJCQljYWxsYmFja3M6IFtdCgkJfTsKCQltb2QuY2FsbGJhY2tzLnB1c2goewoJCQlkZXBzLAoJCQlmbjogY2FsbGJhY2sKCQl9KTsKCQl0aGlzLmhtckNsaWVudC5ob3RNb2R1bGVzTWFwLnNldCh0aGlzLm93bmVyUGF0aCwgbW9kKTsKCX0KfTsKdmFyIEhNUkNsaWVudCA9IGNsYXNzIHsKCWNvbnN0cnVjdG9yKGxvZ2dlciwgdHJhbnNwb3J0JDEsIGltcG9ydFVwZGF0ZWRNb2R1bGUpIHsKCQl0aGlzLmxvZ2dlciA9IGxvZ2dlcjsKCQl0aGlzLnRyYW5zcG9ydCA9IHRyYW5zcG9ydCQxOwoJCXRoaXMuaW1wb3J0VXBkYXRlZE1vZHVsZSA9IGltcG9ydFVwZGF0ZWRNb2R1bGU7CgkJX2RlZmluZVByb3BlcnR5KHRoaXMsICJob3RNb2R1bGVzTWFwIiwgLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSk7CgkJX2RlZmluZVByb3BlcnR5KHRoaXMsICJkaXNwb3NlTWFwIiwgLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSk7CgkJX2RlZmluZVByb3BlcnR5KHRoaXMsICJwcnVuZU1hcCIsIC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCkpOwoJCV9kZWZpbmVQcm9wZXJ0eSh0aGlzLCAiZGF0YU1hcCIsIC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCkpOwoJCV9kZWZpbmVQcm9wZXJ0eSh0aGlzLCAiY3VzdG9tTGlzdGVuZXJzTWFwIiwgLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKSk7CgkJX2RlZmluZVByb3BlcnR5KHRoaXMsICJjdHhUb0xpc3RlbmVyc01hcCIsIC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCkpOwoJCV9kZWZpbmVQcm9wZXJ0eSh0aGlzLCAiY3VycmVudEZpcnN0SW52YWxpZGF0ZWRCeSIsIHZvaWQgMCk7CgkJX2RlZmluZVByb3BlcnR5KHRoaXMsICJ1cGRhdGVRdWV1ZSIsIFtdKTsKCQlfZGVmaW5lUHJvcGVydHkodGhpcywgInBlbmRpbmdVcGRhdGVRdWV1ZSIsIGZhbHNlKTsKCX0KCWFzeW5jIG5vdGlmeUxpc3RlbmVycyhldmVudCwgZGF0YSkgewoJCWNvbnN0IGNicyA9IHRoaXMuY3VzdG9tTGlzdGVuZXJzTWFwLmdldChldmVudCk7CgkJaWYgKGNicykgYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKGNicy5tYXAoKGNiKSA9PiBjYihkYXRhKSkpOwoJfQoJc2VuZChwYXlsb2FkKSB7CgkJdGhpcy50cmFuc3BvcnQuc2VuZChwYXlsb2FkKS5jYXRjaCgoZXJyKSA9PiB7CgkJCXRoaXMubG9nZ2VyLmVycm9yKGVycik7CgkJfSk7Cgl9CgljbGVhcigpIHsKCQl0aGlzLmhvdE1vZHVsZXNNYXAuY2xlYXIoKTsKCQl0aGlzLmRpc3Bvc2VNYXAuY2xlYXIoKTsKCQl0aGlzLnBydW5lTWFwLmNsZWFyKCk7CgkJdGhpcy5kYXRhTWFwLmNsZWFyKCk7CgkJdGhpcy5jdXN0b21MaXN0ZW5lcnNNYXAuY2xlYXIoKTsKCQl0aGlzLmN0eFRvTGlzdGVuZXJzTWFwLmNsZWFyKCk7Cgl9Cglhc3luYyBwcnVuZVBhdGhzKHBhdGhzKSB7CgkJYXdhaXQgUHJvbWlzZS5hbGwocGF0aHMubWFwKChwYXRoKSA9PiB7CgkJCWNvbnN0IGRpc3Bvc2VyID0gdGhpcy5kaXNwb3NlTWFwLmdldChwYXRoKTsKCQkJaWYgKGRpc3Bvc2VyKSByZXR1cm4gZGlzcG9zZXIodGhpcy5kYXRhTWFwLmdldChwYXRoKSk7CgkJfSkpOwoJCWF3YWl0IFByb21pc2UuYWxsKHBhdGhzLm1hcCgocGF0aCkgPT4gewoJCQljb25zdCBmbiA9IHRoaXMucHJ1bmVNYXAuZ2V0KHBhdGgpOwoJCQlpZiAoZm4pIHJldHVybiBmbih0aGlzLmRhdGFNYXAuZ2V0KHBhdGgpKTsKCQl9KSk7Cgl9Cgl3YXJuRmFpbGVkVXBkYXRlKGVyciwgcGF0aCkgewoJCWlmICghKGVyciBpbnN0YW5jZW9mIEVycm9yKSB8fCAhZXJyLm1lc3NhZ2UuaW5jbHVkZXMoImZldGNoIikpIHRoaXMubG9nZ2VyLmVycm9yKGVycik7CgkJdGhpcy5sb2dnZXIuZXJyb3IoYEZhaWxlZCB0byByZWxvYWQgJHtwYXRofS4gVGhpcyBjb3VsZCBiZSBkdWUgdG8gc3ludGF4IGVycm9ycyBvciBpbXBvcnRpbmcgbm9uLWV4aXN0ZW50IG1vZHVsZXMuIChzZWUgZXJyb3JzIGFib3ZlKWApOwoJfQoJLyoqCgkqIGJ1ZmZlciBtdWx0aXBsZSBob3QgdXBkYXRlcyB0cmlnZ2VyZWQgYnkgdGhlIHNhbWUgc3JjIGNoYW5nZQoJKiBzbyB0aGF0IHRoZXkgYXJlIGludm9rZWQgaW4gdGhlIHNhbWUgb3JkZXIgdGhleSB3ZXJlIHNlbnQuCgkqIChvdGhlcndpc2UgdGhlIG9yZGVyIG1heSBiZSBpbmNvbnNpc3RlbnQgYmVjYXVzZSBvZiB0aGUgaHR0cCByZXF1ZXN0IHJvdW5kIHRyaXApCgkqLwoJYXN5bmMgcXVldWVVcGRhdGUocGF5bG9hZCkgewoJCXRoaXMudXBkYXRlUXVldWUucHVzaCh0aGlzLmZldGNoVXBkYXRlKHBheWxvYWQpKTsKCQlpZiAoIXRoaXMucGVuZGluZ1VwZGF0ZVF1ZXVlKSB7CgkJCXRoaXMucGVuZGluZ1VwZGF0ZVF1ZXVlID0gdHJ1ZTsKCQkJYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7CgkJCXRoaXMucGVuZGluZ1VwZGF0ZVF1ZXVlID0gZmFsc2U7CgkJCWNvbnN0IGxvYWRpbmcgPSBbLi4udGhpcy51cGRhdGVRdWV1ZV07CgkJCXRoaXMudXBkYXRlUXVldWUgPSBbXTsKCQkJKGF3YWl0IFByb21pc2UuYWxsKGxvYWRpbmcpKS5mb3JFYWNoKChmbikgPT4gZm4gJiYgZm4oKSk7CgkJfQoJfQoJYXN5bmMgZmV0Y2hVcGRhdGUodXBkYXRlKSB7CgkJY29uc3QgeyBwYXRoLCBhY2NlcHRlZFBhdGgsIGZpcnN0SW52YWxpZGF0ZWRCeSB9ID0gdXBkYXRlOwoJCWNvbnN0IG1vZCA9IHRoaXMuaG90TW9kdWxlc01hcC5nZXQocGF0aCk7CgkJaWYgKCFtb2QpIHJldHVybjsKCQlsZXQgZmV0Y2hlZE1vZHVsZTsKCQljb25zdCBpc1NlbGZVcGRhdGUgPSBwYXRoID09PSBhY2NlcHRlZFBhdGg7CgkJY29uc3QgcXVhbGlmaWVkQ2FsbGJhY2tzID0gbW9kLmNhbGxiYWNrcy5maWx0ZXIoKHsgZGVwcyB9KSA9PiBkZXBzLmluY2x1ZGVzKGFjY2VwdGVkUGF0aCkpOwoJCWlmIChpc1NlbGZVcGRhdGUgfHwgcXVhbGlmaWVkQ2FsbGJhY2tzLmxlbmd0aCA+IDApIHsKCQkJY29uc3QgZGlzcG9zZXIgPSB0aGlzLmRpc3Bvc2VNYXAuZ2V0KGFjY2VwdGVkUGF0aCk7CgkJCWlmIChkaXNwb3NlcikgYXdhaXQgZGlzcG9zZXIodGhpcy5kYXRhTWFwLmdldChhY2NlcHRlZFBhdGgpKTsKCQkJdHJ5IHsKCQkJCWZldGNoZWRNb2R1bGUgPSBhd2FpdCB0aGlzLmltcG9ydFVwZGF0ZWRNb2R1bGUodXBkYXRlKTsKCQkJfSBjYXRjaCAoZSkgewoJCQkJdGhpcy53YXJuRmFpbGVkVXBkYXRlKGUsIGFjY2VwdGVkUGF0aCk7CgkJCX0KCQl9CgkJcmV0dXJuICgpID0+IHsKCQkJdHJ5IHsKCQkJCXRoaXMuY3VycmVudEZpcnN0SW52YWxpZGF0ZWRCeSA9IGZpcnN0SW52YWxpZGF0ZWRCeTsKCQkJCWZvciAoY29uc3QgeyBkZXBzLCBmbiB9IG9mIHF1YWxpZmllZENhbGxiYWNrcykgZm4oZGVwcy5tYXAoKGRlcCkgPT4gZGVwID09PSBhY2NlcHRlZFBhdGggPyBmZXRjaGVkTW9kdWxlIDogdm9pZCAwKSk7CgkJCQljb25zdCBsb2dnZWRQYXRoID0gaXNTZWxmVXBkYXRlID8gcGF0aCA6IGAke2FjY2VwdGVkUGF0aH0gdmlhICR7cGF0aH1gOwoJCQkJdGhpcy5sb2dnZXIuZGVidWcoYGhvdCB1cGRhdGVkOiAke2xvZ2dlZFBhdGh9YCk7CgkJCX0gZmluYWxseSB7CgkJCQl0aGlzLmN1cnJlbnRGaXJzdEludmFsaWRhdGVkQnkgPSB2b2lkIDA7CgkJCX0KCQl9OwoJfQp9OwoKLy8jZW5kcmVnaW9uCi8vI3JlZ2lvbiAuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vbmFub2lkQDUuMS42L25vZGVfbW9kdWxlcy9uYW5vaWQvbm9uLXNlY3VyZS9pbmRleC5qcwpsZXQgdXJsQWxwaGFiZXQgPSAidXNlYW5kb20tMjZUMTk4MzQwUFg3NXB4SkFDS1ZFUllNSU5EQlVTSFdPTEZfR1FaYmZnaGprbHF2d3l6cmljdCI7CmxldCBuYW5vaWQgPSAoc2l6ZSA9IDIxKSA9PiB7CglsZXQgaWQgPSAiIjsKCWxldCBpID0gc2l6ZSB8IDA7Cgl3aGlsZSAoaS0tKSBpZCArPSB1cmxBbHBoYWJldFtNYXRoLnJhbmRvbSgpICogNjQgfCAwXTsKCXJldHVybiBpZDsKfTsKCi8vI2VuZHJlZ2lvbgovLyNyZWdpb24gc3JjL3NoYXJlZC9jb25zdGFudHMudHMKbGV0IFNPVVJDRU1BUFBJTkdfVVJMID0gInNvdXJjZU1hIjsKU09VUkNFTUFQUElOR19VUkwgKz0gInBwaW5nVVJMIjsKCi8vI2VuZHJlZ2lvbgovLyNyZWdpb24gc3JjL3NoYXJlZC91dGlscy50cwpjb25zdCBpc1dpbmRvd3MgPSB0eXBlb2YgcHJvY2VzcyAhPT0gInVuZGVmaW5lZCIgJiYgcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gIndpbjMyIjsKY29uc3QgQXN5bmNGdW5jdGlvbiA9IGFzeW5jIGZ1bmN0aW9uKCkge30uY29uc3RydWN0b3I7CmZ1bmN0aW9uIHByb21pc2VXaXRoUmVzb2x2ZXJzKCkgewoJbGV0IHJlc29sdmU7CglsZXQgcmVqZWN0OwoJcmV0dXJuIHsKCQlwcm9taXNlOiBuZXcgUHJvbWlzZSgoX3Jlc29sdmUsIF9yZWplY3QpID0+IHsKCQkJcmVzb2x2ZSA9IF9yZXNvbHZlOwoJCQlyZWplY3QgPSBfcmVqZWN0OwoJCX0pLAoJCXJlc29sdmUsCgkJcmVqZWN0Cgl9Owp9CgovLyNlbmRyZWdpb24KLy8jcmVnaW9uIHNyYy9zaGFyZWQvbW9kdWxlUnVubmVyVHJhbnNwb3J0LnRzCmZ1bmN0aW9uIHJldml2ZUludm9rZUVycm9yKGUpIHsKCWNvbnN0IGVycm9yID0gbmV3IEVycm9yKGUubWVzc2FnZSB8fCAiVW5rbm93biBpbnZva2UgZXJyb3IiKTsKCU9iamVjdC5hc3NpZ24oZXJyb3IsIGUsIHsgcnVubmVyRXJyb3I6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRXJyb3IoIlJ1bm5lckVycm9yIikgfSk7CglyZXR1cm4gZXJyb3I7Cn0KY29uc3QgY3JlYXRlSW52b2tlYWJsZVRyYW5zcG9ydCA9ICh0cmFuc3BvcnQkMSkgPT4gewoJaWYgKHRyYW5zcG9ydCQxLmludm9rZSkgcmV0dXJuIHsKCQkuLi50cmFuc3BvcnQkMSwKCQlhc3luYyBpbnZva2UobmFtZSwgZGF0YSkgewoJCQljb25zdCByZXN1bHQgPSBhd2FpdCB0cmFuc3BvcnQkMS5pbnZva2UoewoJCQkJdHlwZTogImN1c3RvbSIsCgkJCQlldmVudDogInZpdGU6aW52b2tlIiwKCQkJCWRhdGE6IHsKCQkJCQlpZDogInNlbmQiLAoJCQkJCW5hbWUsCgkJCQkJZGF0YQoJCQkJfQoJCQl9KTsKCQkJaWYgKCJlcnJvciIgaW4gcmVzdWx0KSB0aHJvdyByZXZpdmVJbnZva2VFcnJvcihyZXN1bHQuZXJyb3IpOwoJCQlyZXR1cm4gcmVzdWx0LnJlc3VsdDsKCQl9Cgl9OwoJaWYgKCF0cmFuc3BvcnQkMS5zZW5kIHx8ICF0cmFuc3BvcnQkMS5jb25uZWN0KSB0aHJvdyBuZXcgRXJyb3IoInRyYW5zcG9ydCBtdXN0IGltcGxlbWVudCBzZW5kIGFuZCBjb25uZWN0IHdoZW4gaW52b2tlIGlzIG5vdCBpbXBsZW1lbnRlZCIpOwoJY29uc3QgcnBjUHJvbWlzZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwoJcmV0dXJuIHsKCQkuLi50cmFuc3BvcnQkMSwKCQljb25uZWN0KHsgb25NZXNzYWdlLCBvbkRpc2Nvbm5lY3Rpb24gfSkgewoJCQlyZXR1cm4gdHJhbnNwb3J0JDEuY29ubmVjdCh7CgkJCQlvbk1lc3NhZ2UocGF5bG9hZCkgewoJCQkJCWlmIChwYXlsb2FkLnR5cGUgPT09ICJjdXN0b20iICYmIHBheWxvYWQuZXZlbnQgPT09ICJ2aXRlOmludm9rZSIpIHsKCQkJCQkJY29uc3QgZGF0YSA9IHBheWxvYWQuZGF0YTsKCQkJCQkJaWYgKGRhdGEuaWQuc3RhcnRzV2l0aCgicmVzcG9uc2U6IikpIHsKCQkJCQkJCWNvbnN0IGludm9rZUlkID0gZGF0YS5pZC5zbGljZSg5KTsKCQkJCQkJCWNvbnN0IHByb21pc2UgPSBycGNQcm9taXNlcy5nZXQoaW52b2tlSWQpOwoJCQkJCQkJaWYgKCFwcm9taXNlKSByZXR1cm47CgkJCQkJCQlpZiAocHJvbWlzZS50aW1lb3V0SWQpIGNsZWFyVGltZW91dChwcm9taXNlLnRpbWVvdXRJZCk7CgkJCQkJCQlycGNQcm9taXNlcy5kZWxldGUoaW52b2tlSWQpOwoJCQkJCQkJY29uc3QgeyBlcnJvciwgcmVzdWx0IH0gPSBkYXRhLmRhdGE7CgkJCQkJCQlpZiAoZXJyb3IpIHByb21pc2UucmVqZWN0KGVycm9yKTsKCQkJCQkJCWVsc2UgcHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7CgkJCQkJCQlyZXR1cm47CgkJCQkJCX0KCQkJCQl9CgkJCQkJb25NZXNzYWdlKHBheWxvYWQpOwoJCQkJfSwKCQkJCW9uRGlzY29ubmVjdGlvbgoJCQl9KTsKCQl9LAoJCWRpc2Nvbm5lY3QoKSB7CgkJCXJwY1Byb21pc2VzLmZvckVhY2goKHByb21pc2UpID0+IHsKCQkJCXByb21pc2UucmVqZWN0KC8qIEBfX1BVUkVfXyAqLyBuZXcgRXJyb3IoYHRyYW5zcG9ydCB3YXMgZGlzY29ubmVjdGVkLCBjYW5ub3QgY2FsbCAke0pTT04uc3RyaW5naWZ5KHByb21pc2UubmFtZSl9YCkpOwoJCQl9KTsKCQkJcnBjUHJvbWlzZXMuY2xlYXIoKTsKCQkJcmV0dXJuIHRyYW5zcG9ydCQxLmRpc2Nvbm5lY3Q/LigpOwoJCX0sCgkJc2VuZChkYXRhKSB7CgkJCXJldHVybiB0cmFuc3BvcnQkMS5zZW5kKGRhdGEpOwoJCX0sCgkJYXN5bmMgaW52b2tlKG5hbWUsIGRhdGEpIHsKCQkJY29uc3QgcHJvbWlzZUlkID0gbmFub2lkKCk7CgkJCWNvbnN0IHdyYXBwZWREYXRhID0gewoJCQkJdHlwZTogImN1c3RvbSIsCgkJCQlldmVudDogInZpdGU6aW52b2tlIiwKCQkJCWRhdGE6IHsKCQkJCQluYW1lLAoJCQkJCWlkOiBgc2VuZDoke3Byb21pc2VJZH1gLAoJCQkJCWRhdGEKCQkJCX0KCQkJfTsKCQkJY29uc3Qgc2VuZFByb21pc2UgPSB0cmFuc3BvcnQkMS5zZW5kKHdyYXBwZWREYXRhKTsKCQkJY29uc3QgeyBwcm9taXNlLCByZXNvbHZlLCByZWplY3QgfSA9IHByb21pc2VXaXRoUmVzb2x2ZXJzKCk7CgkJCWNvbnN0IHRpbWVvdXQgPSB0cmFuc3BvcnQkMS50aW1lb3V0ID8/IDZlNDsKCQkJbGV0IHRpbWVvdXRJZDsKCQkJaWYgKHRpbWVvdXQgPiAwKSB7CgkJCQl0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHsKCQkJCQlycGNQcm9taXNlcy5kZWxldGUocHJvbWlzZUlkKTsKCQkJCQlyZWplY3QoLyogQF9fUFVSRV9fICovIG5ldyBFcnJvcihgdHJhbnNwb3J0IGludm9rZSB0aW1lZCBvdXQgYWZ0ZXIgJHt0aW1lb3V0fW1zIChkYXRhOiAke0pTT04uc3RyaW5naWZ5KHdyYXBwZWREYXRhKX0pYCkpOwoJCQkJfSwgdGltZW91dCk7CgkJCQl0aW1lb3V0SWQ/LnVucmVmPy4oKTsKCQkJfQoJCQlycGNQcm9taXNlcy5zZXQocHJvbWlzZUlkLCB7CgkJCQlyZXNvbHZlLAoJCQkJcmVqZWN0LAoJCQkJbmFtZSwKCQkJCXRpbWVvdXRJZAoJCQl9KTsKCQkJaWYgKHNlbmRQcm9taXNlKSBzZW5kUHJvbWlzZS5jYXRjaCgoZXJyKSA9PiB7CgkJCQljbGVhclRpbWVvdXQodGltZW91dElkKTsKCQkJCXJwY1Byb21pc2VzLmRlbGV0ZShwcm9taXNlSWQpOwoJCQkJcmVqZWN0KGVycik7CgkJCX0pOwoJCQl0cnkgewoJCQkJcmV0dXJuIGF3YWl0IHByb21pc2U7CgkJCX0gY2F0Y2ggKGVycikgewoJCQkJdGhyb3cgcmV2aXZlSW52b2tlRXJyb3IoZXJyKTsKCQkJfQoJCX0KCX07Cn07CmNvbnN0IG5vcm1hbGl6ZU1vZHVsZVJ1bm5lclRyYW5zcG9ydCA9ICh0cmFuc3BvcnQkMSkgPT4gewoJY29uc3QgaW52b2tlYWJsZVRyYW5zcG9ydCA9IGNyZWF0ZUludm9rZWFibGVUcmFuc3BvcnQodHJhbnNwb3J0JDEpOwoJbGV0IGlzQ29ubmVjdGVkID0gIWludm9rZWFibGVUcmFuc3BvcnQuY29ubmVjdDsKCWxldCBjb25uZWN0aW5nUHJvbWlzZTsKCXJldHVybiB7CgkJLi4udHJhbnNwb3J0JDEsCgkJLi4uaW52b2tlYWJsZVRyYW5zcG9ydC5jb25uZWN0ID8geyBhc3luYyBjb25uZWN0KG9uTWVzc2FnZSkgewoJCQlpZiAoaXNDb25uZWN0ZWQpIHJldHVybjsKCQkJaWYgKGNvbm5lY3RpbmdQcm9taXNlKSB7CgkJCQlhd2FpdCBjb25uZWN0aW5nUHJvbWlzZTsKCQkJCXJldHVybjsKCQkJfQoJCQljb25zdCBtYXliZVByb21pc2UgPSBpbnZva2VhYmxlVHJhbnNwb3J0LmNvbm5lY3QoewoJCQkJb25NZXNzYWdlOiBvbk1lc3NhZ2UgPz8gKCgpID0+IHt9KSwKCQkJCW9uRGlzY29ubmVjdGlvbigpIHsKCQkJCQlpc0Nvbm5lY3RlZCA9IGZhbHNlOwoJCQkJfQoJCQl9KTsKCQkJaWYgKG1heWJlUHJvbWlzZSkgewoJCQkJY29ubmVjdGluZ1Byb21pc2UgPSBtYXliZVByb21pc2U7CgkJCQlhd2FpdCBjb25uZWN0aW5nUHJvbWlzZTsKCQkJCWNvbm5lY3RpbmdQcm9taXNlID0gdm9pZCAwOwoJCQl9CgkJCWlzQ29ubmVjdGVkID0gdHJ1ZTsKCQl9IH0gOiB7fSwKCQkuLi5pbnZva2VhYmxlVHJhbnNwb3J0LmRpc2Nvbm5lY3QgPyB7IGFzeW5jIGRpc2Nvbm5lY3QoKSB7CgkJCWlmICghaXNDb25uZWN0ZWQpIHJldHVybjsKCQkJaWYgKGNvbm5lY3RpbmdQcm9taXNlKSBhd2FpdCBjb25uZWN0aW5nUHJvbWlzZTsKCQkJaXNDb25uZWN0ZWQgPSBmYWxzZTsKCQkJYXdhaXQgaW52b2tlYWJsZVRyYW5zcG9ydC5kaXNjb25uZWN0KCk7CgkJfSB9IDoge30sCgkJYXN5bmMgc2VuZChkYXRhKSB7CgkJCWlmICghaW52b2tlYWJsZVRyYW5zcG9ydC5zZW5kKSByZXR1cm47CgkJCWlmICghaXNDb25uZWN0ZWQpIGlmIChjb25uZWN0aW5nUHJvbWlzZSkgYXdhaXQgY29ubmVjdGluZ1Byb21pc2U7CgkJCWVsc2UgdGhyb3cgbmV3IEVycm9yKCJzZW5kIHdhcyBjYWxsZWQgYmVmb3JlIGNvbm5lY3QiKTsKCQkJYXdhaXQgaW52b2tlYWJsZVRyYW5zcG9ydC5zZW5kKGRhdGEpOwoJCX0sCgkJYXN5bmMgaW52b2tlKG5hbWUsIGRhdGEpIHsKCQkJaWYgKCFpc0Nvbm5lY3RlZCkgaWYgKGNvbm5lY3RpbmdQcm9taXNlKSBhd2FpdCBjb25uZWN0aW5nUHJvbWlzZTsKCQkJZWxzZSB0aHJvdyBuZXcgRXJyb3IoImludm9rZSB3YXMgY2FsbGVkIGJlZm9yZSBjb25uZWN0Iik7CgkJCXJldHVybiBpbnZva2VhYmxlVHJhbnNwb3J0Lmludm9rZShuYW1lLCBkYXRhKTsKCQl9Cgl9Owp9Owpjb25zdCBjcmVhdGVXZWJTb2NrZXRNb2R1bGVSdW5uZXJUcmFuc3BvcnQgPSAob3B0aW9ucykgPT4gewoJY29uc3QgcGluZ0ludGVydmFsID0gb3B0aW9ucy5waW5nSW50ZXJ2YWwgPz8gM2U0OwoJbGV0IHdzOwoJbGV0IHBpbmdJbnRlcnZhbElkOwoJcmV0dXJuIHsKCQlhc3luYyBjb25uZWN0KHsgb25NZXNzYWdlLCBvbkRpc2Nvbm5lY3Rpb24gfSkgewoJCQljb25zdCBzb2NrZXQgPSBvcHRpb25zLmNyZWF0ZUNvbm5lY3Rpb24oKTsKCQkJc29ja2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBhc3luYyAoeyBkYXRhIH0pID0+IHsKCQkJCW9uTWVzc2FnZShKU09OLnBhcnNlKGRhdGEpKTsKCQkJfSk7CgkJCWxldCBpc09wZW5lZCA9IHNvY2tldC5yZWFkeVN0YXRlID09PSBzb2NrZXQuT1BFTjsKCQkJaWYgKCFpc09wZW5lZCkgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewoJCQkJc29ja2V0LmFkZEV2ZW50TGlzdGVuZXIoIm9wZW4iLCAoKSA9PiB7CgkJCQkJaXNPcGVuZWQgPSB0cnVlOwoJCQkJCXJlc29sdmUoKTsKCQkJCX0sIHsgb25jZTogdHJ1ZSB9KTsKCQkJCXNvY2tldC5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsIGFzeW5jICgpID0+IHsKCQkJCQlpZiAoIWlzT3BlbmVkKSB7CgkJCQkJCXJlamVjdCgvKiBAX19QVVJFX18gKi8gbmV3IEVycm9yKCJXZWJTb2NrZXQgY2xvc2VkIHdpdGhvdXQgb3BlbmVkLiIpKTsKCQkJCQkJcmV0dXJuOwoJCQkJCX0KCQkJCQlvbk1lc3NhZ2UoewoJCQkJCQl0eXBlOiAiY3VzdG9tIiwKCQkJCQkJZXZlbnQ6ICJ2aXRlOndzOmRpc2Nvbm5lY3QiLAoJCQkJCQlkYXRhOiB7IHdlYlNvY2tldDogc29ja2V0IH0KCQkJCQl9KTsKCQkJCQlvbkRpc2Nvbm5lY3Rpb24oKTsKCQkJCX0pOwoJCQl9KTsKCQkJb25NZXNzYWdlKHsKCQkJCXR5cGU6ICJjdXN0b20iLAoJCQkJZXZlbnQ6ICJ2aXRlOndzOmNvbm5lY3QiLAoJCQkJZGF0YTogeyB3ZWJTb2NrZXQ6IHNvY2tldCB9CgkJCX0pOwoJCQl3cyA9IHNvY2tldDsKCQkJcGluZ0ludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7CgkJCQlpZiAoc29ja2V0LnJlYWR5U3RhdGUgPT09IHNvY2tldC5PUEVOKSBzb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICJwaW5nIiB9KSk7CgkJCX0sIHBpbmdJbnRlcnZhbCk7CgkJfSwKCQlkaXNjb25uZWN0KCkgewoJCQljbGVhckludGVydmFsKHBpbmdJbnRlcnZhbElkKTsKCQkJd3M/LmNsb3NlKCk7CgkJfSwKCQlzZW5kKGRhdGEpIHsKCQkJd3Muc2VuZChKU09OLnN0cmluZ2lmeShkYXRhKSk7CgkJfQoJfTsKfTsKCi8vI2VuZHJlZ2lvbgovLyNyZWdpb24gc3JjL3NoYXJlZC9obXJIYW5kbGVyLnRzCmZ1bmN0aW9uIGNyZWF0ZUhNUkhhbmRsZXIoaGFuZGxlcikgewoJY29uc3QgcXVldWUgPSBuZXcgUXVldWUoKTsKCXJldHVybiAocGF5bG9hZCkgPT4gcXVldWUuZW5xdWV1ZSgoKSA9PiBoYW5kbGVyKHBheWxvYWQpKTsKfQp2YXIgUXVldWUgPSBjbGFzcyB7Cgljb25zdHJ1Y3RvcigpIHsKCQlfZGVmaW5lUHJvcGVydHkodGhpcywgInF1ZXVlIiwgW10pOwoJCV9kZWZpbmVQcm9wZXJ0eSh0aGlzLCAicGVuZGluZyIsIGZhbHNlKTsKCX0KCWVucXVldWUocHJvbWlzZSkgewoJCXJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CgkJCXRoaXMucXVldWUucHVzaCh7CgkJCQlwcm9taXNlLAoJCQkJcmVzb2x2ZSwKCQkJCXJlamVjdAoJCQl9KTsKCQkJdGhpcy5kZXF1ZXVlKCk7CgkJfSk7Cgl9CglkZXF1ZXVlKCkgewoJCWlmICh0aGlzLnBlbmRpbmcpIHJldHVybiBmYWxzZTsKCQljb25zdCBpdGVtID0gdGhpcy5xdWV1ZS5zaGlmdCgpOwoJCWlmICghaXRlbSkgcmV0dXJuIGZhbHNlOwoJCXRoaXMucGVuZGluZyA9IHRydWU7CgkJaXRlbS5wcm9taXNlKCkudGhlbihpdGVtLnJlc29sdmUpLmNhdGNoKGl0ZW0ucmVqZWN0KS5maW5hbGx5KCgpID0+IHsKCQkJdGhpcy5wZW5kaW5nID0gZmFsc2U7CgkJCXRoaXMuZGVxdWV1ZSgpOwoJCX0pOwoJCXJldHVybiB0cnVlOwoJfQp9OwoKLy8jZW5kcmVnaW9uCi8vI3JlZ2lvbiBzcmMvY2xpZW50L292ZXJsYXkudHMKY29uc3QgaG1yQ29uZmlnTmFtZSA9ICJ2aXRlLmNvbmZpZy50cyI7CmNvbnN0IGJhc2UkMSA9ICIvIiB8fCAiLyI7CmNvbnN0IGNzcE5vbmNlID0gImRvY3VtZW50IiBpbiBnbG9iYWxUaGlzID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibWV0YVtwcm9wZXJ0eT1jc3Atbm9uY2VdIik/Lm5vbmNlIDogdm9pZCAwOwpmdW5jdGlvbiBoKGUsIGF0dHJzID0ge30sIC4uLmNoaWxkcmVuKSB7Cgljb25zdCBlbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTsKCWZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGF0dHJzKSkgaWYgKHYgIT09IHZvaWQgMCkgZWxlbS5zZXRBdHRyaWJ1dGUoaywgdik7CgllbGVtLmFwcGVuZCguLi5jaGlsZHJlbik7CglyZXR1cm4gZWxlbTsKfQpjb25zdCB0ZW1wbGF0ZVN0eWxlID0gYAo6aG9zdCB7CiAgcG9zaXRpb246IGZpeGVkOwogIHRvcDogMDsKICBsZWZ0OiAwOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICB6LWluZGV4OiA5OTk5OTsKICAtLW1vbm9zcGFjZTogJ1NGTW9uby1SZWd1bGFyJywgQ29uc29sYXMsCiAgJ0xpYmVyYXRpb24gTW9ubycsIE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2U7CiAgLS1yZWQ6ICNmZjU1NTU7CiAgLS15ZWxsb3c6ICNlMmFhNTM7CiAgLS1wdXJwbGU6ICNjZmE0ZmY7CiAgLS1jeWFuOiAjMmRkOWRhOwogIC0tZGltOiAjYzljOWM5OwoKICAtLXdpbmRvdy1iYWNrZ3JvdW5kOiAjMTgxODE4OwogIC0td2luZG93LWNvbG9yOiAjZDhkOGQ4Owp9CgouYmFja2Ryb3AgewogIHBvc2l0aW9uOiBmaXhlZDsKICB6LWluZGV4OiA5OTk5OTsKICB0b3A6IDA7CiAgbGVmdDogMDsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7CiAgb3ZlcmZsb3cteTogc2Nyb2xsOwogIG1hcmdpbjogMDsKICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNjYpOwp9Cgoud2luZG93IHsKICBmb250LWZhbWlseTogdmFyKC0tbW9ub3NwYWNlKTsKICBsaW5lLWhlaWdodDogMS41OwogIG1heC13aWR0aDogODB2dzsKICBjb2xvcjogdmFyKC0td2luZG93LWNvbG9yKTsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIG1hcmdpbjogMzBweCBhdXRvOwogIHBhZGRpbmc6IDIuNXZoIDR2dzsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgYmFja2dyb3VuZDogdmFyKC0td2luZG93LWJhY2tncm91bmQpOwogIGJvcmRlci1yYWRpdXM6IDZweCA2cHggOHB4IDhweDsKICBib3gtc2hhZG93OiAwIDE5cHggMzhweCByZ2JhKDAsMCwwLDAuMzApLCAwIDE1cHggMTJweCByZ2JhKDAsMCwwLDAuMjIpOwogIG92ZXJmbG93OiBoaWRkZW47CiAgYm9yZGVyLXRvcDogOHB4IHNvbGlkIHZhcigtLXJlZCk7CiAgZGlyZWN0aW9uOiBsdHI7CiAgdGV4dC1hbGlnbjogbGVmdDsKfQoKcHJlIHsKICBmb250LWZhbWlseTogdmFyKC0tbW9ub3NwYWNlKTsKICBmb250LXNpemU6IDE2cHg7CiAgbWFyZ2luLXRvcDogMDsKICBtYXJnaW4tYm90dG9tOiAxZW07CiAgb3ZlcmZsb3cteDogc2Nyb2xsOwogIHNjcm9sbGJhci13aWR0aDogbm9uZTsKfQoKcHJlOjotd2Via2l0LXNjcm9sbGJhciB7CiAgZGlzcGxheTogbm9uZTsKfQoKcHJlLmZyYW1lOjotd2Via2l0LXNjcm9sbGJhciB7CiAgZGlzcGxheTogYmxvY2s7CiAgaGVpZ2h0OiA1cHg7Cn0KCnByZS5mcmFtZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogIGJhY2tncm91bmQ6ICM5OTk7CiAgYm9yZGVyLXJhZGl1czogNXB4Owp9CgpwcmUuZnJhbWUgewogIHNjcm9sbGJhci13aWR0aDogdGhpbjsKfQoKLm1lc3NhZ2UgewogIGxpbmUtaGVpZ2h0OiAxLjM7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Cn0KCi5tZXNzYWdlLWJvZHkgewogIGNvbG9yOiB2YXIoLS1yZWQpOwp9CgoucGx1Z2luIHsKICBjb2xvcjogdmFyKC0tcHVycGxlKTsKfQoKLmZpbGUgewogIGNvbG9yOiB2YXIoLS1jeWFuKTsKICBtYXJnaW4tYm90dG9tOiAwOwogIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICB3b3JkLWJyZWFrOiBicmVhay1hbGw7Cn0KCi5mcmFtZSB7CiAgY29sb3I6IHZhcigtLXllbGxvdyk7Cn0KCi5zdGFjayB7CiAgZm9udC1zaXplOiAxM3B4OwogIGNvbG9yOiB2YXIoLS1kaW0pOwp9CgoudGlwIHsKICBmb250LXNpemU6IDEzcHg7CiAgY29sb3I6ICM5OTk7CiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjOTk5OwogIHBhZGRpbmctdG9wOiAxM3B4OwogIGxpbmUtaGVpZ2h0OiAxLjg7Cn0KCmNvZGUgewogIGZvbnQtc2l6ZTogMTNweDsKICBmb250LWZhbWlseTogdmFyKC0tbW9ub3NwYWNlKTsKICBjb2xvcjogdmFyKC0teWVsbG93KTsKfQoKLmZpbGUtbGluayB7CiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgprYmQgewogIGxpbmUtaGVpZ2h0OiAxLjU7CiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICJMaWJlcmF0aW9uIE1vbm8iLCAiQ291cmllciBOZXciLCBtb25vc3BhY2U7CiAgZm9udC1zaXplOiAwLjc1cmVtOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDM4LCA0MCwgNDQpOwogIGNvbG9yOiByZ2IoMTY2LCAxNjcsIDE3MSk7CiAgcGFkZGluZzogMC4xNXJlbSAwLjNyZW07CiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsKICBib3JkZXItd2lkdGg6IDAuMDYyNXJlbSAwLjA2MjVyZW0gMC4xODc1cmVtOwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgYm9yZGVyLWNvbG9yOiByZ2IoNTQsIDU3LCA2NCk7CiAgYm9yZGVyLWltYWdlOiBpbml0aWFsOwp9CmA7CmNvbnN0IGNyZWF0ZVRlbXBsYXRlID0gKCkgPT4gaCgiZGl2IiwgewoJY2xhc3M6ICJiYWNrZHJvcCIsCglwYXJ0OiAiYmFja2Ryb3AiCn0sIGgoImRpdiIsIHsKCWNsYXNzOiAid2luZG93IiwKCXBhcnQ6ICJ3aW5kb3ciCn0sIGgoInByZSIsIHsKCWNsYXNzOiAibWVzc2FnZSIsCglwYXJ0OiAibWVzc2FnZSIKfSwgaCgic3BhbiIsIHsKCWNsYXNzOiAicGx1Z2luIiwKCXBhcnQ6ICJwbHVnaW4iCn0pLCBoKCJzcGFuIiwgewoJY2xhc3M6ICJtZXNzYWdlLWJvZHkiLAoJcGFydDogIm1lc3NhZ2UtYm9keSIKfSkpLCBoKCJwcmUiLCB7CgljbGFzczogImZpbGUiLAoJcGFydDogImZpbGUiCn0pLCBoKCJwcmUiLCB7CgljbGFzczogImZyYW1lIiwKCXBhcnQ6ICJmcmFtZSIKfSksIGgoInByZSIsIHsKCWNsYXNzOiAic3RhY2siLAoJcGFydDogInN0YWNrIgp9KSwgaCgiZGl2IiwgewoJY2xhc3M6ICJ0aXAiLAoJcGFydDogInRpcCIKfSwgIkNsaWNrIG91dHNpZGUsIHByZXNzICIsIGgoImtiZCIsIHt9LCAiRXNjIiksICIga2V5LCBvciBmaXggdGhlIGNvZGUgdG8gZGlzbWlzcy4iLCBoKCJiciIpLCAiWW91IGNhbiBhbHNvIGRpc2FibGUgdGhpcyBvdmVybGF5IGJ5IHNldHRpbmcgIiwgaCgiY29kZSIsIHsgcGFydDogImNvbmZpZy1vcHRpb24tbmFtZSIgfSwgInNlcnZlci5obXIub3ZlcmxheSIpLCAiIHRvICIsIGgoImNvZGUiLCB7IHBhcnQ6ICJjb25maWctb3B0aW9uLXZhbHVlIiB9LCAiZmFsc2UiKSwgIiBpbiAiLCBoKCJjb2RlIiwgeyBwYXJ0OiAiY29uZmlnLWZpbGUtbmFtZSIgfSwgaG1yQ29uZmlnTmFtZSksICIuIikpLCBoKCJzdHlsZSIsIHsgbm9uY2U6IGNzcE5vbmNlIH0sIHRlbXBsYXRlU3R5bGUpKTsKY29uc3QgZmlsZVJFID0gLyg/OmZpbGU6XC9cLyk/KD86W2EtekEtWl06XFx8XC8pLio/OlxkKzpcZCsvZzsKY29uc3QgY29kZWZyYW1lUkUgPSAvXig/Oj4/XHMqXGQrXHMrXHwuKnxccytcfFxzKlxeLiopXHI/XG4vZ207CmNvbnN0IHsgSFRNTEVsZW1lbnQgPSBjbGFzcyB7fSB9ID0gZ2xvYmFsVGhpczsKdmFyIEVycm9yT3ZlcmxheSA9IGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgewoJY29uc3RydWN0b3IoZXJyLCBsaW5rcyA9IHRydWUpIHsKCQlzdXBlcigpOwoJCV9kZWZpbmVQcm9wZXJ0eSh0aGlzLCAicm9vdCIsIHZvaWQgMCk7CgkJX2RlZmluZVByb3BlcnR5KHRoaXMsICJjbG9zZU9uRXNjIiwgdm9pZCAwKTsKCQl0aGlzLnJvb3QgPSB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJvcGVuIiB9KTsKCQl0aGlzLnJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlVGVtcGxhdGUoKSk7CgkJY29kZWZyYW1lUkUubGFzdEluZGV4ID0gMDsKCQljb25zdCBoYXNGcmFtZSA9IGVyci5mcmFtZSAmJiBjb2RlZnJhbWVSRS50ZXN0KGVyci5mcmFtZSk7CgkJY29uc3QgbWVzc2FnZSA9IGhhc0ZyYW1lID8gZXJyLm1lc3NhZ2UucmVwbGFjZShjb2RlZnJhbWVSRSwgIiIpIDogZXJyLm1lc3NhZ2U7CgkJaWYgKGVyci5wbHVnaW4pIHRoaXMudGV4dCgiLnBsdWdpbiIsIGBbcGx1Z2luOiR7ZXJyLnBsdWdpbn1dIGApOwoJCXRoaXMudGV4dCgiLm1lc3NhZ2UtYm9keSIsIG1lc3NhZ2UudHJpbSgpKTsKCQljb25zdCBbZmlsZV0gPSAoZXJyLmxvYz8uZmlsZSB8fCBlcnIuaWQgfHwgInVua25vd24gZmlsZSIpLnNwbGl0KGA/YCk7CgkJaWYgKGVyci5sb2MpIHRoaXMudGV4dCgiLmZpbGUiLCBgJHtmaWxlfToke2Vyci5sb2MubGluZX06JHtlcnIubG9jLmNvbHVtbn1gLCBsaW5rcyk7CgkJZWxzZSBpZiAoZXJyLmlkKSB0aGlzLnRleHQoIi5maWxlIiwgZmlsZSk7CgkJaWYgKGhhc0ZyYW1lKSB0aGlzLnRleHQoIi5mcmFtZSIsIGVyci5mcmFtZS50cmltKCkpOwoJCXRoaXMudGV4dCgiLnN0YWNrIiwgZXJyLnN0YWNrLCBsaW5rcyk7CgkJdGhpcy5yb290LnF1ZXJ5U2VsZWN0b3IoIi53aW5kb3ciKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIChlKSA9PiB7CgkJCWUuc3RvcFByb3BhZ2F0aW9uKCk7CgkJfSk7CgkJdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKCQkJdGhpcy5jbG9zZSgpOwoJCX0pOwoJCXRoaXMuY2xvc2VPbkVzYyA9IChlKSA9PiB7CgkJCWlmIChlLmtleSA9PT0gIkVzY2FwZSIgfHwgZS5jb2RlID09PSAiRXNjYXBlIikgdGhpcy5jbG9zZSgpOwoJCX07CgkJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuY2xvc2VPbkVzYyk7Cgl9Cgl0ZXh0KHNlbGVjdG9yLCB0ZXh0LCBsaW5rRmlsZXMgPSBmYWxzZSkgewoJCWNvbnN0IGVsID0gdGhpcy5yb290LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpOwoJCWlmICghbGlua0ZpbGVzKSBlbC50ZXh0Q29udGVudCA9IHRleHQ7CgkJZWxzZSB7CgkJCWxldCBjdXJJbmRleCA9IDA7CgkJCWxldCBtYXRjaDsKCQkJZmlsZVJFLmxhc3RJbmRleCA9IDA7CgkJCXdoaWxlIChtYXRjaCA9IGZpbGVSRS5leGVjKHRleHQpKSB7CgkJCQljb25zdCB7IDA6IGZpbGUsIGluZGV4IH0gPSBtYXRjaDsKCQkJCWNvbnN0IGZyYWcgPSB0ZXh0LnNsaWNlKGN1ckluZGV4LCBpbmRleCk7CgkJCQllbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShmcmFnKSk7CgkJCQljb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwoJCQkJbGluay50ZXh0Q29udGVudCA9IGZpbGU7CgkJCQlsaW5rLmNsYXNzTmFtZSA9ICJmaWxlLWxpbmsiOwoJCQkJbGluay5vbmNsaWNrID0gKCkgPT4gewoJCQkJCWZldGNoKG5ldyBVUkwoYCR7YmFzZSQxfV9fb3Blbi1pbi1lZGl0b3I/ZmlsZT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWxlKX1gLCBpbXBvcnQubWV0YS51cmwpKTsKCQkJCX07CgkJCQllbC5hcHBlbmRDaGlsZChsaW5rKTsKCQkJCWN1ckluZGV4ICs9IGZyYWcubGVuZ3RoICsgZmlsZS5sZW5ndGg7CgkJCX0KCQkJaWYgKGN1ckluZGV4IDwgdGV4dC5sZW5ndGgpIGVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQuc2xpY2UoY3VySW5kZXgpKSk7CgkJfQoJfQoJY2xvc2UoKSB7CgkJdGhpcy5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZCh0aGlzKTsKCQlkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5jbG9zZU9uRXNjKTsKCX0KfTsKY29uc3Qgb3ZlcmxheUlkID0gInZpdGUtZXJyb3Itb3ZlcmxheSI7CmNvbnN0IHsgY3VzdG9tRWxlbWVudHMgfSA9IGdsb2JhbFRoaXM7CmlmIChjdXN0b21FbGVtZW50cyAmJiAhY3VzdG9tRWxlbWVudHMuZ2V0KG92ZXJsYXlJZCkpIGN1c3RvbUVsZW1lbnRzLmRlZmluZShvdmVybGF5SWQsIEVycm9yT3ZlcmxheSk7CgovLyNlbmRyZWdpb24KLy8jcmVnaW9uIHNyYy9jbGllbnQvY2xpZW50LnRzCmNvbnNvbGUuZGVidWcoIlt2aXRlXSBjb25uZWN0aW5nLi4uIik7CmNvbnN0IGltcG9ydE1ldGFVcmwgPSBuZXcgVVJMKGltcG9ydC5tZXRhLnVybCk7CmNvbnN0IHNlcnZlckhvc3QgPSAibG9jYWxob3N0OjUxNzMvIjsKY29uc3Qgc29ja2V0UHJvdG9jb2wgPSBudWxsIHx8IChpbXBvcnRNZXRhVXJsLnByb3RvY29sID09PSAiaHR0cHM6IiA/ICJ3c3MiIDogIndzIik7CmNvbnN0IGhtclBvcnQgPSBudWxsOwpjb25zdCBzb2NrZXRIb3N0ID0gYCR7bnVsbCB8fCBpbXBvcnRNZXRhVXJsLmhvc3RuYW1lfToke2htclBvcnQgfHwgaW1wb3J0TWV0YVVybC5wb3J0fSR7Ii8ifWA7CmNvbnN0IGRpcmVjdFNvY2tldEhvc3QgPSAibG9jYWxob3N0OjUxNzMvIjsKY29uc3QgYmFzZSA9ICIvIiB8fCAiLyI7CmNvbnN0IGhtclRpbWVvdXQgPSAzMDAwMDsKY29uc3Qgd3NUb2tlbiA9ICJiajNZVlVUV1pjbVciOwpjb25zdCB0cmFuc3BvcnQgPSBub3JtYWxpemVNb2R1bGVSdW5uZXJUcmFuc3BvcnQoKCgpID0+IHsKCWxldCB3c1RyYW5zcG9ydCA9IGNyZWF0ZVdlYlNvY2tldE1vZHVsZVJ1bm5lclRyYW5zcG9ydCh7CgkJY3JlYXRlQ29ubmVjdGlvbjogKCkgPT4gbmV3IFdlYlNvY2tldChgJHtzb2NrZXRQcm90b2NvbH06Ly8ke3NvY2tldEhvc3R9P3Rva2VuPSR7d3NUb2tlbn1gLCAidml0ZS1obXIiKSwKCQlwaW5nSW50ZXJ2YWw6IGhtclRpbWVvdXQKCX0pOwoJcmV0dXJuIHsKCQlhc3luYyBjb25uZWN0KGhhbmRsZXJzKSB7CgkJCXRyeSB7CgkJCQlhd2FpdCB3c1RyYW5zcG9ydC5jb25uZWN0KGhhbmRsZXJzKTsKCQkJfSBjYXRjaCAoZSkgewoJCQkJaWYgKCFobXJQb3J0KSB7CgkJCQkJd3NUcmFuc3BvcnQgPSBjcmVhdGVXZWJTb2NrZXRNb2R1bGVSdW5uZXJUcmFuc3BvcnQoewoJCQkJCQljcmVhdGVDb25uZWN0aW9uOiAoKSA9PiBuZXcgV2ViU29ja2V0KGAke3NvY2tldFByb3RvY29sfTovLyR7ZGlyZWN0U29ja2V0SG9zdH0/dG9rZW49JHt3c1Rva2VufWAsICJ2aXRlLWhtciIpLAoJCQkJCQlwaW5nSW50ZXJ2YWw6IGhtclRpbWVvdXQKCQkJCQl9KTsKCQkJCQl0cnkgewoJCQkJCQlhd2FpdCB3c1RyYW5zcG9ydC5jb25uZWN0KGhhbmRsZXJzKTsKCQkJCQkJY29uc29sZS5pbmZvKCJbdml0ZV0gRGlyZWN0IHdlYnNvY2tldCBjb25uZWN0aW9uIGZhbGxiYWNrLiBDaGVjayBvdXQgaHR0cHM6Ly92aXRlLmRldi9jb25maWcvc2VydmVyLW9wdGlvbnMuaHRtbCNzZXJ2ZXItaG1yIHRvIHJlbW92ZSB0aGUgcHJldmlvdXMgY29ubmVjdGlvbiBlcnJvci4iKTsKCQkJCQl9IGNhdGNoIChlJDEpIHsKCQkJCQkJaWYgKGUkMSBpbnN0YW5jZW9mIEVycm9yICYmIGUkMS5tZXNzYWdlLmluY2x1ZGVzKCJXZWJTb2NrZXQgY2xvc2VkIHdpdGhvdXQgb3BlbmVkLiIpKSB7CgkJCQkJCQljb25zdCBjdXJyZW50U2NyaXB0SG9zdFVSTCA9IG5ldyBVUkwoaW1wb3J0Lm1ldGEudXJsKTsKCQkJCQkJCWNvbnN0IGN1cnJlbnRTY3JpcHRIb3N0ID0gY3VycmVudFNjcmlwdEhvc3RVUkwuaG9zdCArIGN1cnJlbnRTY3JpcHRIb3N0VVJMLnBhdGhuYW1lLnJlcGxhY2UoL0B2aXRlXC9jbGllbnQkLywgIiIpOwoJCQkJCQkJY29uc29sZS5lcnJvcihgW3ZpdGVdIGZhaWxlZCB0byBjb25uZWN0IHRvIHdlYnNvY2tldC4KeW91ciBjdXJyZW50IHNldHVwOgogIChicm93c2VyKSAke2N1cnJlbnRTY3JpcHRIb3N0fSA8LS1bSFRUUF0tLT4gJHtzZXJ2ZXJIb3N0fSAoc2VydmVyKVxuICAoYnJvd3NlcikgJHtzb2NrZXRIb3N0fSA8LS1bV2ViU29ja2V0IChmYWlsaW5nKV0tLT4gJHtkaXJlY3RTb2NrZXRIb3N0fSAoc2VydmVyKVxuQ2hlY2sgb3V0IHlvdXIgVml0ZSAvIG5ldHdvcmsgY29uZmlndXJhdGlvbiBhbmQgaHR0cHM6Ly92aXRlLmRldi9jb25maWcvc2VydmVyLW9wdGlvbnMuaHRtbCNzZXJ2ZXItaG1yIC5gKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQlyZXR1cm47CgkJCQl9CgkJCQljb25zb2xlLmVycm9yKGBbdml0ZV0gZmFpbGVkIHRvIGNvbm5lY3QgdG8gd2Vic29ja2V0ICgke2V9KS4gYCk7CgkJCQl0aHJvdyBlOwoJCQl9CgkJfSwKCQlhc3luYyBkaXNjb25uZWN0KCkgewoJCQlhd2FpdCB3c1RyYW5zcG9ydC5kaXNjb25uZWN0KCk7CgkJfSwKCQlzZW5kKGRhdGEpIHsKCQkJd3NUcmFuc3BvcnQuc2VuZChkYXRhKTsKCQl9Cgl9Owp9KSgpKTsKbGV0IHdpbGxVbmxvYWQgPSBmYWxzZTsKaWYgKHR5cGVvZiB3aW5kb3cgIT09ICJ1bmRlZmluZWQiKSB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcj8uKCJiZWZvcmV1bmxvYWQiLCAoKSA9PiB7Cgl3aWxsVW5sb2FkID0gdHJ1ZTsKfSk7CmZ1bmN0aW9uIGNsZWFuVXJsKHBhdGhuYW1lKSB7Cgljb25zdCB1cmwgPSBuZXcgVVJMKHBhdGhuYW1lLCAiaHR0cDovL3ZpdGUuZGV2Iik7Cgl1cmwuc2VhcmNoUGFyYW1zLmRlbGV0ZSgiZGlyZWN0Iik7CglyZXR1cm4gdXJsLnBhdGhuYW1lICsgdXJsLnNlYXJjaDsKfQpsZXQgaXNGaXJzdFVwZGF0ZSA9IHRydWU7CmNvbnN0IG91dGRhdGVkTGlua1RhZ3MgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtTZXQoKTsKY29uc3QgZGVib3VuY2VSZWxvYWQgPSAodGltZSkgPT4gewoJbGV0IHRpbWVyOwoJcmV0dXJuICgpID0+IHsKCQlpZiAodGltZXIpIHsKCQkJY2xlYXJUaW1lb3V0KHRpbWVyKTsKCQkJdGltZXIgPSBudWxsOwoJCX0KCQl0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4gewoJCQlsb2NhdGlvbi5yZWxvYWQoKTsKCQl9LCB0aW1lKTsKCX07Cn07CmNvbnN0IHBhZ2VSZWxvYWQgPSBkZWJvdW5jZVJlbG9hZCgyMCk7CmNvbnN0IGhtckNsaWVudCA9IG5ldyBITVJDbGllbnQoewoJZXJyb3I6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoIlt2aXRlXSIsIGVyciksCglkZWJ1ZzogKC4uLm1zZykgPT4gY29uc29sZS5kZWJ1ZygiW3ZpdGVdIiwgLi4ubXNnKQp9LCB0cmFuc3BvcnQsIGFzeW5jIGZ1bmN0aW9uIGltcG9ydFVwZGF0ZWRNb2R1bGUoeyBhY2NlcHRlZFBhdGgsIHRpbWVzdGFtcCwgZXhwbGljaXRJbXBvcnRSZXF1aXJlZCwgaXNXaXRoaW5DaXJjdWxhckltcG9ydCB9KSB7Cgljb25zdCBbYWNjZXB0ZWRQYXRoV2l0aG91dFF1ZXJ5LCBxdWVyeV0gPSBhY2NlcHRlZFBhdGguc3BsaXQoYD9gKTsKCWNvbnN0IGltcG9ydFByb21pc2UgPSBpbXBvcnQoCgkJLyogQHZpdGUtaWdub3JlICovCgkJYmFzZSArIGFjY2VwdGVkUGF0aFdpdGhvdXRRdWVyeS5zbGljZSgxKSArIGA/JHtleHBsaWNpdEltcG9ydFJlcXVpcmVkID8gImltcG9ydCYiIDogIiJ9dD0ke3RpbWVzdGFtcH0ke3F1ZXJ5ID8gYCYke3F1ZXJ5fWAgOiAiIn1gCik7CglpZiAoaXNXaXRoaW5DaXJjdWxhckltcG9ydCkgaW1wb3J0UHJvbWlzZS5jYXRjaCgoKSA9PiB7CgkJY29uc29sZS5pbmZvKGBbaG1yXSAke2FjY2VwdGVkUGF0aH0gZmFpbGVkIHRvIGFwcGx5IEhNUiBhcyBpdCdzIHdpdGhpbiBhIGNpcmN1bGFyIGltcG9ydC4gUmVsb2FkaW5nIHBhZ2UgdG8gcmVzZXQgdGhlIGV4ZWN1dGlvbiBvcmRlci4gVG8gZGVidWcgYW5kIGJyZWFrIHRoZSBjaXJjdWxhciBpbXBvcnQsIHlvdSBjYW4gcnVuIFxgdml0ZSAtLWRlYnVnIGhtclxgIHRvIGxvZyB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSBwYXRoIGlmIGEgZmlsZSBjaGFuZ2UgdHJpZ2dlcmVkIGl0LmApOwoJCXBhZ2VSZWxvYWQoKTsKCX0pOwoJcmV0dXJuIGF3YWl0IGltcG9ydFByb21pc2U7Cn0pOwp0cmFuc3BvcnQuY29ubmVjdChjcmVhdGVITVJIYW5kbGVyKGhhbmRsZU1lc3NhZ2UpKTsKYXN5bmMgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShwYXlsb2FkKSB7Cglzd2l0Y2ggKHBheWxvYWQudHlwZSkgewoJCWNhc2UgImNvbm5lY3RlZCI6CgkJCWNvbnNvbGUuZGVidWcoYFt2aXRlXSBjb25uZWN0ZWQuYCk7CgkJCWJyZWFrOwoJCWNhc2UgInVwZGF0ZSI6CgkJCWF3YWl0IGhtckNsaWVudC5ub3RpZnlMaXN0ZW5lcnMoInZpdGU6YmVmb3JlVXBkYXRlIiwgcGF5bG9hZCk7CgkJCWlmIChoYXNEb2N1bWVudCkgaWYgKGlzRmlyc3RVcGRhdGUgJiYgaGFzRXJyb3JPdmVybGF5KCkpIHsKCQkJCWxvY2F0aW9uLnJlbG9hZCgpOwoJCQkJcmV0dXJuOwoJCQl9IGVsc2UgewoJCQkJaWYgKGVuYWJsZU92ZXJsYXkpIGNsZWFyRXJyb3JPdmVybGF5KCk7CgkJCQlpc0ZpcnN0VXBkYXRlID0gZmFsc2U7CgkJCX0KCQkJYXdhaXQgUHJvbWlzZS5hbGwocGF5bG9hZC51cGRhdGVzLm1hcChhc3luYyAodXBkYXRlKSA9PiB7CgkJCQlpZiAodXBkYXRlLnR5cGUgPT09ICJqcy11cGRhdGUiKSByZXR1cm4gaG1yQ2xpZW50LnF1ZXVlVXBkYXRlKHVwZGF0ZSk7CgkJCQljb25zdCB7IHBhdGgsIHRpbWVzdGFtcCB9ID0gdXBkYXRlOwoJCQkJY29uc3Qgc2VhcmNoVXJsID0gY2xlYW5VcmwocGF0aCk7CgkJCQljb25zdCBlbCA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgibGluayIpKS5maW5kKChlKSA9PiAhb3V0ZGF0ZWRMaW5rVGFncy5oYXMoZSkgJiYgY2xlYW5VcmwoZS5ocmVmKS5pbmNsdWRlcyhzZWFyY2hVcmwpKTsKCQkJCWlmICghZWwpIHJldHVybjsKCQkJCWNvbnN0IG5ld1BhdGggPSBgJHtiYXNlfSR7c2VhcmNoVXJsLnNsaWNlKDEpfSR7c2VhcmNoVXJsLmluY2x1ZGVzKCI/IikgPyAiJiIgOiAiPyJ9dD0ke3RpbWVzdGFtcH1gOwoJCQkJcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CgkJCQkJY29uc3QgbmV3TGlua1RhZyA9IGVsLmNsb25lTm9kZSgpOwoJCQkJCW5ld0xpbmtUYWcuaHJlZiA9IG5ldyBVUkwobmV3UGF0aCwgZWwuaHJlZikuaHJlZjsKCQkJCQljb25zdCByZW1vdmVPbGRFbCA9ICgpID0+IHsKCQkJCQkJZWwucmVtb3ZlKCk7CgkJCQkJCWNvbnNvbGUuZGVidWcoYFt2aXRlXSBjc3MgaG90IHVwZGF0ZWQ6ICR7c2VhcmNoVXJsfWApOwoJCQkJCQlyZXNvbHZlKCk7CgkJCQkJfTsKCQkJCQluZXdMaW5rVGFnLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByZW1vdmVPbGRFbCk7CgkJCQkJbmV3TGlua1RhZy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIHJlbW92ZU9sZEVsKTsKCQkJCQlvdXRkYXRlZExpbmtUYWdzLmFkZChlbCk7CgkJCQkJZWwuYWZ0ZXIobmV3TGlua1RhZyk7CgkJCQl9KTsKCQkJfSkpOwoJCQlhd2FpdCBobXJDbGllbnQubm90aWZ5TGlzdGVuZXJzKCJ2aXRlOmFmdGVyVXBkYXRlIiwgcGF5bG9hZCk7CgkJCWJyZWFrOwoJCWNhc2UgImN1c3RvbSI6CgkJCWF3YWl0IGhtckNsaWVudC5ub3RpZnlMaXN0ZW5lcnMocGF5bG9hZC5ldmVudCwgcGF5bG9hZC5kYXRhKTsKCQkJaWYgKHBheWxvYWQuZXZlbnQgPT09ICJ2aXRlOndzOmRpc2Nvbm5lY3QiKSB7CgkJCQlpZiAoaGFzRG9jdW1lbnQgJiYgIXdpbGxVbmxvYWQpIHsKCQkJCQljb25zb2xlLmxvZyhgW3ZpdGVdIHNlcnZlciBjb25uZWN0aW9uIGxvc3QuIFBvbGxpbmcgZm9yIHJlc3RhcnQuLi5gKTsKCQkJCQljb25zdCBzb2NrZXQgPSBwYXlsb2FkLmRhdGEud2ViU29ja2V0OwoJCQkJCWNvbnN0IHVybCA9IG5ldyBVUkwoc29ja2V0LnVybCk7CgkJCQkJdXJsLnNlYXJjaCA9ICIiOwoJCQkJCWF3YWl0IHdhaXRGb3JTdWNjZXNzZnVsUGluZyh1cmwuaHJlZik7CgkJCQkJbG9jYXRpb24ucmVsb2FkKCk7CgkJCQl9CgkJCX0KCQkJYnJlYWs7CgkJY2FzZSAiZnVsbC1yZWxvYWQiOgoJCQlhd2FpdCBobXJDbGllbnQubm90aWZ5TGlzdGVuZXJzKCJ2aXRlOmJlZm9yZUZ1bGxSZWxvYWQiLCBwYXlsb2FkKTsKCQkJaWYgKGhhc0RvY3VtZW50KSBpZiAocGF5bG9hZC5wYXRoICYmIHBheWxvYWQucGF0aC5lbmRzV2l0aCgiLmh0bWwiKSkgewoJCQkJY29uc3QgcGFnZVBhdGggPSBkZWNvZGVVUkkobG9jYXRpb24ucGF0aG5hbWUpOwoJCQkJY29uc3QgcGF5bG9hZFBhdGggPSBiYXNlICsgcGF5bG9hZC5wYXRoLnNsaWNlKDEpOwoJCQkJaWYgKHBhZ2VQYXRoID09PSBwYXlsb2FkUGF0aCB8fCBwYXlsb2FkLnBhdGggPT09ICIvaW5kZXguaHRtbCIgfHwgcGFnZVBhdGguZW5kc1dpdGgoIi8iKSAmJiBwYWdlUGF0aCArICJpbmRleC5odG1sIiA9PT0gcGF5bG9hZFBhdGgpIHBhZ2VSZWxvYWQoKTsKCQkJCXJldHVybjsKCQkJfSBlbHNlIHBhZ2VSZWxvYWQoKTsKCQkJYnJlYWs7CgkJY2FzZSAicHJ1bmUiOgoJCQlhd2FpdCBobXJDbGllbnQubm90aWZ5TGlzdGVuZXJzKCJ2aXRlOmJlZm9yZVBydW5lIiwgcGF5bG9hZCk7CgkJCWF3YWl0IGhtckNsaWVudC5wcnVuZVBhdGhzKHBheWxvYWQucGF0aHMpOwoJCQlicmVhazsKCQljYXNlICJlcnJvciI6CgkJCWF3YWl0IGhtckNsaWVudC5ub3RpZnlMaXN0ZW5lcnMoInZpdGU6ZXJyb3IiLCBwYXlsb2FkKTsKCQkJaWYgKGhhc0RvY3VtZW50KSB7CgkJCQljb25zdCBlcnIgPSBwYXlsb2FkLmVycjsKCQkJCWlmIChlbmFibGVPdmVybGF5KSBjcmVhdGVFcnJvck92ZXJsYXkoZXJyKTsKCQkJCWVsc2UgY29uc29sZS5lcnJvcihgW3ZpdGVdIEludGVybmFsIFNlcnZlciBFcnJvclxuJHtlcnIubWVzc2FnZX1cbiR7ZXJyLnN0YWNrfWApOwoJCQl9CgkJCWJyZWFrOwoJCWNhc2UgInBpbmciOiBicmVhazsKCQlkZWZhdWx0OiByZXR1cm4gcGF5bG9hZDsKCX0KfQpjb25zdCBlbmFibGVPdmVybGF5ID0gdHJ1ZTsKY29uc3QgaGFzRG9jdW1lbnQgPSAiZG9jdW1lbnQiIGluIGdsb2JhbFRoaXM7CmZ1bmN0aW9uIGNyZWF0ZUVycm9yT3ZlcmxheShlcnIpIHsKCWNsZWFyRXJyb3JPdmVybGF5KCk7Cgljb25zdCB7IGN1c3RvbUVsZW1lbnRzOiBjdXN0b21FbGVtZW50cyQxIH0gPSBnbG9iYWxUaGlzOwoJaWYgKGN1c3RvbUVsZW1lbnRzJDEpIHsKCQljb25zdCBFcnJvck92ZXJsYXlDb25zdHJ1Y3RvciA9IGN1c3RvbUVsZW1lbnRzJDEuZ2V0KG92ZXJsYXlJZCk7CgkJZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuZXcgRXJyb3JPdmVybGF5Q29uc3RydWN0b3IoZXJyKSk7Cgl9Cn0KZnVuY3Rpb24gY2xlYXJFcnJvck92ZXJsYXkoKSB7Cglkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKG92ZXJsYXlJZCkuZm9yRWFjaCgobikgPT4gbi5jbG9zZSgpKTsKfQpmdW5jdGlvbiBoYXNFcnJvck92ZXJsYXkoKSB7CglyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChvdmVybGF5SWQpLmxlbmd0aDsKfQpmdW5jdGlvbiB3YWl0Rm9yU3VjY2Vzc2Z1bFBpbmcoc29ja2V0VXJsKSB7CglpZiAodHlwZW9mIFNoYXJlZFdvcmtlciA9PT0gInVuZGVmaW5lZCIpIHsKCQljb25zdCB2aXNpYmlsaXR5TWFuYWdlciA9IHsKCQkJY3VycmVudFN0YXRlOiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUsCgkJCWxpc3RlbmVyczogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKQoJCX07CgkJY29uc3Qgb25WaXNpYmlsaXR5Q2hhbmdlID0gKCkgPT4gewoJCQl2aXNpYmlsaXR5TWFuYWdlci5jdXJyZW50U3RhdGUgPSBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU7CgkJCWZvciAoY29uc3QgbGlzdGVuZXIgb2YgdmlzaWJpbGl0eU1hbmFnZXIubGlzdGVuZXJzKSBsaXN0ZW5lcih2aXNpYmlsaXR5TWFuYWdlci5jdXJyZW50U3RhdGUpOwoJCX07CgkJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsIG9uVmlzaWJpbGl0eUNoYW5nZSk7CgkJcmV0dXJuIHdhaXRGb3JTdWNjZXNzZnVsUGluZ0ludGVybmFsKHNvY2tldFVybCwgdmlzaWJpbGl0eU1hbmFnZXIpOwoJfQoJY29uc3QgYmxvYiA9IG5ldyBCbG9iKFsKCQkiXCJ1c2Ugc3RyaWN0XCI7IiwKCQlgY29uc3Qgd2FpdEZvclN1Y2Nlc3NmdWxQaW5nSW50ZXJuYWwgPSAke3dhaXRGb3JTdWNjZXNzZnVsUGluZ0ludGVybmFsLnRvU3RyaW5nKCl9O2AsCgkJYGNvbnN0IGZuID0gJHtwaW5nV29ya2VyQ29udGVudE1haW4udG9TdHJpbmcoKX07YCwKCQlgZm4oJHtKU09OLnN0cmluZ2lmeShzb2NrZXRVcmwpfSlgCgldLCB7IHR5cGU6ICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9KTsKCWNvbnN0IG9ialVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7Cgljb25zdCBzaGFyZWRXb3JrZXIgPSBuZXcgU2hhcmVkV29ya2VyKG9ialVSTCk7CglyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewoJCWNvbnN0IG9uVmlzaWJpbGl0eUNoYW5nZSA9ICgpID0+IHsKCQkJc2hhcmVkV29ya2VyLnBvcnQucG9zdE1lc3NhZ2UoeyB2aXNpYmlsaXR5OiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgfSk7CgkJfTsKCQlkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwgb25WaXNpYmlsaXR5Q2hhbmdlKTsKCQlzaGFyZWRXb3JrZXIucG9ydC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CgkJCWRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLCBvblZpc2liaWxpdHlDaGFuZ2UpOwoJCQlzaGFyZWRXb3JrZXIucG9ydC5jbG9zZSgpOwoJCQljb25zdCBkYXRhID0gZXZlbnQuZGF0YTsKCQkJaWYgKGRhdGEudHlwZSA9PT0gImVycm9yIikgewoJCQkJcmVqZWN0KGRhdGEuZXJyb3IpOwoJCQkJcmV0dXJuOwoJCQl9CgkJCXJlc29sdmUoKTsKCQl9KTsKCQlvblZpc2liaWxpdHlDaGFuZ2UoKTsKCQlzaGFyZWRXb3JrZXIucG9ydC5zdGFydCgpOwoJfSk7Cn0KZnVuY3Rpb24gcGluZ1dvcmtlckNvbnRlbnRNYWluKHNvY2tldFVybCkgewoJc2VsZi5hZGRFdmVudExpc3RlbmVyKCJjb25uZWN0IiwgKF9ldmVudCkgPT4gewoJCWNvbnN0IHBvcnQgPSBfZXZlbnQucG9ydHNbMF07CgkJaWYgKCFzb2NrZXRVcmwpIHsKCQkJcG9ydC5wb3N0TWVzc2FnZSh7CgkJCQl0eXBlOiAiZXJyb3IiLAoJCQkJZXJyb3I6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRXJyb3IoInNvY2tldFVybCBub3QgZm91bmQiKQoJCQl9KTsKCQkJcmV0dXJuOwoJCX0KCQljb25zdCB2aXNpYmlsaXR5TWFuYWdlciA9IHsKCQkJY3VycmVudFN0YXRlOiAidmlzaWJsZSIsCgkJCWxpc3RlbmVyczogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKQoJCX07CgkJcG9ydC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CgkJCWNvbnN0IHsgdmlzaWJpbGl0eSB9ID0gZXZlbnQuZGF0YTsKCQkJdmlzaWJpbGl0eU1hbmFnZXIuY3VycmVudFN0YXRlID0gdmlzaWJpbGl0eTsKCQkJY29uc29sZS5kZWJ1ZygiW3ZpdGVdIG5ldyB3aW5kb3cgdmlzaWJpbGl0eSIsIHZpc2liaWxpdHkpOwoJCQlmb3IgKGNvbnN0IGxpc3RlbmVyIG9mIHZpc2liaWxpdHlNYW5hZ2VyLmxpc3RlbmVycykgbGlzdGVuZXIodmlzaWJpbGl0eSk7CgkJfSk7CgkJcG9ydC5zdGFydCgpOwoJCWNvbnNvbGUuZGVidWcoIlt2aXRlXSBjb25uZWN0ZWQgZnJvbSB3aW5kb3ciKTsKCQl3YWl0Rm9yU3VjY2Vzc2Z1bFBpbmdJbnRlcm5hbChzb2NrZXRVcmwsIHZpc2liaWxpdHlNYW5hZ2VyKS50aGVuKCgpID0+IHsKCQkJY29uc29sZS5kZWJ1ZygiW3ZpdGVdIHBpbmcgc3VjY2Vzc2Z1bCIpOwoJCQl0cnkgewoJCQkJcG9ydC5wb3N0TWVzc2FnZSh7IHR5cGU6ICJzdWNjZXNzIiB9KTsKCQkJfSBjYXRjaCAoZXJyb3IpIHsKCQkJCXBvcnQucG9zdE1lc3NhZ2UoewoJCQkJCXR5cGU6ICJlcnJvciIsCgkJCQkJZXJyb3IKCQkJCX0pOwoJCQl9CgkJfSwgKGVycm9yKSA9PiB7CgkJCWNvbnNvbGUuZGVidWcoIlt2aXRlXSBlcnJvciBoYXBwZW5lZCIsIGVycm9yKTsKCQkJdHJ5IHsKCQkJCXBvcnQucG9zdE1lc3NhZ2UoewoJCQkJCXR5cGU6ICJlcnJvciIsCgkJCQkJZXJyb3IKCQkJCX0pOwoJCQl9IGNhdGNoIChlcnJvciQxKSB7CgkJCQlwb3J0LnBvc3RNZXNzYWdlKHsKCQkJCQl0eXBlOiAiZXJyb3IiLAoJCQkJCWVycm9yOiBlcnJvciQxCgkJCQl9KTsKCQkJfQoJCX0pOwoJfSk7Cn0KYXN5bmMgZnVuY3Rpb24gd2FpdEZvclN1Y2Nlc3NmdWxQaW5nSW50ZXJuYWwoc29ja2V0VXJsLCB2aXNpYmlsaXR5TWFuYWdlciwgbXMgPSAxZTMpIHsKCWZ1bmN0aW9uIHdhaXQobXMkMSkgewoJCXJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcyQxKSk7Cgl9Cglhc3luYyBmdW5jdGlvbiBwaW5nKCkgewoJCXRyeSB7CgkJCWNvbnN0IHNvY2tldCA9IG5ldyBXZWJTb2NrZXQoc29ja2V0VXJsLCAidml0ZS1waW5nIik7CgkJCXJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewoJCQkJZnVuY3Rpb24gb25PcGVuKCkgewoJCQkJCXJlc29sdmUodHJ1ZSk7CgkJCQkJY2xvc2UoKTsKCQkJCX0KCQkJCWZ1bmN0aW9uIG9uRXJyb3IoKSB7CgkJCQkJcmVzb2x2ZShmYWxzZSk7CgkJCQkJY2xvc2UoKTsKCQkJCX0KCQkJCWZ1bmN0aW9uIGNsb3NlKCkgewoJCQkJCXNvY2tldC5yZW1vdmVFdmVudExpc3RlbmVyKCJvcGVuIiwgb25PcGVuKTsKCQkJCQlzb2NrZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBvbkVycm9yKTsKCQkJCQlzb2NrZXQuY2xvc2UoKTsKCQkJCX0KCQkJCXNvY2tldC5hZGRFdmVudExpc3RlbmVyKCJvcGVuIiwgb25PcGVuKTsKCQkJCXNvY2tldC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIG9uRXJyb3IpOwoJCQl9KTsKCQl9IGNhdGNoIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0KCWZ1bmN0aW9uIHdhaXRGb3JXaW5kb3dTaG93KHZpc2liaWxpdHlNYW5hZ2VyJDEpIHsKCQlyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKCQkJY29uc3Qgb25DaGFuZ2UgPSAobmV3VmlzaWJpbGl0eSkgPT4gewoJCQkJaWYgKG5ld1Zpc2liaWxpdHkgPT09ICJ2aXNpYmxlIikgewoJCQkJCXJlc29sdmUoKTsKCQkJCQl2aXNpYmlsaXR5TWFuYWdlciQxLmxpc3RlbmVycy5kZWxldGUob25DaGFuZ2UpOwoJCQkJfQoJCQl9OwoJCQl2aXNpYmlsaXR5TWFuYWdlciQxLmxpc3RlbmVycy5hZGQob25DaGFuZ2UpOwoJCX0pOwoJfQoJaWYgKGF3YWl0IHBpbmcoKSkgcmV0dXJuOwoJYXdhaXQgd2FpdChtcyk7Cgl3aGlsZSAodHJ1ZSkgaWYgKHZpc2liaWxpdHlNYW5hZ2VyLmN1cnJlbnRTdGF0ZSA9PT0gInZpc2libGUiKSB7CgkJaWYgKGF3YWl0IHBpbmcoKSkgYnJlYWs7CgkJYXdhaXQgd2FpdChtcyk7Cgl9IGVsc2UgYXdhaXQgd2FpdEZvcldpbmRvd1Nob3codmlzaWJpbGl0eU1hbmFnZXIpOwp9CmNvbnN0IHNoZWV0c01hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CmNvbnN0IGxpbmtTaGVldHNNYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwppZiAoImRvY3VtZW50IiBpbiBnbG9iYWxUaGlzKSB7Cglkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZVtkYXRhLXZpdGUtZGV2LWlkXSIpLmZvckVhY2goKGVsKSA9PiB7CgkJc2hlZXRzTWFwLnNldChlbC5nZXRBdHRyaWJ1dGUoImRhdGEtdml0ZS1kZXYtaWQiKSwgZWwpOwoJfSk7Cglkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJsaW5rW3JlbD1cInN0eWxlc2hlZXRcIl1bZGF0YS12aXRlLWRldi1pZF0iKS5mb3JFYWNoKChlbCkgPT4gewoJCWxpbmtTaGVldHNNYXAuc2V0KGVsLmdldEF0dHJpYnV0ZSgiZGF0YS12aXRlLWRldi1pZCIpLCBlbCk7Cgl9KTsKfQpsZXQgbGFzdEluc2VydGVkU3R5bGU7CmZ1bmN0aW9uIHVwZGF0ZVN0eWxlKGlkLCBjb250ZW50KSB7CglpZiAobGlua1NoZWV0c01hcC5oYXMoaWQpKSByZXR1cm47CglsZXQgc3R5bGUgPSBzaGVldHNNYXAuZ2V0KGlkKTsKCWlmICghc3R5bGUpIHsKCQlzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CgkJc3R5bGUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgInRleHQvY3NzIik7CgkJc3R5bGUuc2V0QXR0cmlidXRlKCJkYXRhLXZpdGUtZGV2LWlkIiwgaWQpOwoJCXN0eWxlLnRleHRDb250ZW50ID0gY29udGVudDsKCQlpZiAoY3NwTm9uY2UpIHN0eWxlLnNldEF0dHJpYnV0ZSgibm9uY2UiLCBjc3BOb25jZSk7CgkJaWYgKCFsYXN0SW5zZXJ0ZWRTdHlsZSkgewoJCQlkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTsKCQkJc2V0VGltZW91dCgoKSA9PiB7CgkJCQlsYXN0SW5zZXJ0ZWRTdHlsZSA9IHZvaWQgMDsKCQkJfSwgMCk7CgkJfSBlbHNlIGxhc3RJbnNlcnRlZFN0eWxlLmluc2VydEFkamFjZW50RWxlbWVudCgiYWZ0ZXJlbmQiLCBzdHlsZSk7CgkJbGFzdEluc2VydGVkU3R5bGUgPSBzdHlsZTsKCX0gZWxzZSBzdHlsZS50ZXh0Q29udGVudCA9IGNvbnRlbnQ7CglzaGVldHNNYXAuc2V0KGlkLCBzdHlsZSk7Cn0KZnVuY3Rpb24gcmVtb3ZlU3R5bGUoaWQpIHsKCWlmIChsaW5rU2hlZXRzTWFwLmhhcyhpZCkpIHsKCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBsaW5rW3JlbD0ic3R5bGVzaGVldCJdW2RhdGEtdml0ZS1kZXYtaWRdYCkuZm9yRWFjaCgoZWwpID0+IHsKCQkJaWYgKGVsLmdldEF0dHJpYnV0ZSgiZGF0YS12aXRlLWRldi1pZCIpID09PSBpZCkgZWwucmVtb3ZlKCk7CgkJfSk7CgkJbGlua1NoZWV0c01hcC5kZWxldGUoaWQpOwoJfQoJY29uc3Qgc3R5bGUgPSBzaGVldHNNYXAuZ2V0KGlkKTsKCWlmIChzdHlsZSkgewoJCWRvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQoc3R5bGUpOwoJCXNoZWV0c01hcC5kZWxldGUoaWQpOwoJfQp9CmZ1bmN0aW9uIGNyZWF0ZUhvdENvbnRleHQob3duZXJQYXRoKSB7CglyZXR1cm4gbmV3IEhNUkNvbnRleHQoaG1yQ2xpZW50LCBvd25lclBhdGgpOwp9Ci8qKgoqIHVybHMgaGVyZSBhcmUgZHluYW1pYyBpbXBvcnQoKSB1cmxzIHRoYXQgY291bGRuJ3QgYmUgc3RhdGljYWxseSBhbmFseXplZAoqLwpmdW5jdGlvbiBpbmplY3RRdWVyeSh1cmwsIHF1ZXJ5VG9JbmplY3QpIHsKCWlmICh1cmxbMF0gIT09ICIuIiAmJiB1cmxbMF0gIT09ICIvIikgcmV0dXJuIHVybDsKCWNvbnN0IHBhdGhuYW1lID0gdXJsLnJlcGxhY2UoL1s/I10uKiQvLCAiIik7Cgljb25zdCB7IHNlYXJjaCwgaGFzaCB9ID0gbmV3IFVSTCh1cmwsICJodHRwOi8vdml0ZS5kZXYiKTsKCXJldHVybiBgJHtwYXRobmFtZX0/JHtxdWVyeVRvSW5qZWN0fSR7c2VhcmNoID8gYCZgICsgc2VhcmNoLnNsaWNlKDEpIDogIiJ9JHtoYXNoIHx8ICIifWA7Cn0KCi8vI2VuZHJlZ2lvbgpleHBvcnQgeyBFcnJvck92ZXJsYXksIGNyZWF0ZUhvdENvbnRleHQsIGluamVjdFF1ZXJ5LCByZW1vdmVTdHlsZSwgdXBkYXRlU3R5bGUgfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltTnNhV1Z1ZENKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ1hDSXZibTlrWlY5dGIyUjFiR1Z6TDNacGRHVXZaR2x6ZEM5amJHbGxiblF2Wlc1MkxtMXFjMXdpTzF4dVhHNHZMeU55WldkcGIyNGdYRnd3UUc5NFl5MXdjbTlxWldOMEszSjFiblJwYldWQU1DNDVPUzR3TDJobGJIQmxjbk12ZEhsd1pXOW1MbXB6WEc1bWRXNWpkR2x2YmlCZmRIbHdaVzltS0c4cElIdGNibHgwWENKQVltRmlaV3d2YUdWc2NHVnljeUF0SUhSNWNHVnZabHdpTzF4dVhIUnlaWFIxY200Z1gzUjVjR1Z2WmlBOUlGd2lablZ1WTNScGIyNWNJaUE5UFNCMGVYQmxiMllnVTNsdFltOXNJQ1ltSUZ3aWMzbHRZbTlzWENJZ1BUMGdkSGx3Wlc5bUlGTjViV0p2YkM1cGRHVnlZWFJ2Y2lBL0lHWjFibU4wYVc5dUtHOGtNU2tnZTF4dVhIUmNkSEpsZEhWeWJpQjBlWEJsYjJZZ2J5UXhPMXh1WEhSOUlEb2dablZ1WTNScGIyNG9ieVF4S1NCN1hHNWNkRngwY21WMGRYSnVJRzhrTVNBbUppQmNJbVoxYm1OMGFXOXVYQ0lnUFQwZ2RIbHdaVzltSUZONWJXSnZiQ0FtSmlCdkpERXVZMjl1YzNSeWRXTjBiM0lnUFQwOUlGTjViV0p2YkNBbUppQnZKREVnSVQwOUlGTjViV0p2YkM1d2NtOTBiM1I1Y0dVZ1B5QmNJbk41YldKdmJGd2lJRG9nZEhsd1pXOW1JRzhrTVR0Y2JseDBmU3dnWDNSNWNHVnZaaWh2S1R0Y2JuMWNibHh1THk4alpXNWtjbVZuYVc5dVhHNHZMeU55WldkcGIyNGdYRnd3UUc5NFl5MXdjbTlxWldOMEszSjFiblJwYldWQU1DNDVPUzR3TDJobGJIQmxjbk12ZEc5UWNtbHRhWFJwZG1VdWFuTmNibVoxYm1OMGFXOXVJSFJ2VUhKcGJXbDBhWFpsS0hRc0lISXBJSHRjYmx4MGFXWWdLRndpYjJKcVpXTjBYQ0lnSVQwZ1gzUjVjR1Z2WmloMEtTQjhmQ0FoZENrZ2NtVjBkWEp1SUhRN1hHNWNkSFpoY2lCbElEMGdkRnRUZVcxaWIyd3VkRzlRY21sdGFYUnBkbVZkTzF4dVhIUnBaaUFvZG05cFpDQXdJQ0U5UFNCbEtTQjdYRzVjZEZ4MGRtRnlJR2tnUFNCbExtTmhiR3dvZEN3Z2NpQjhmQ0JjSW1SbFptRjFiSFJjSWlrN1hHNWNkRngwYVdZZ0tGd2liMkpxWldOMFhDSWdJVDBnWDNSNWNHVnZaaWhwS1NrZ2NtVjBkWEp1SUdrN1hHNWNkRngwZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lrQkFkRzlRY21sdGFYUnBkbVVnYlhWemRDQnlaWFIxY200Z1lTQndjbWx0YVhScGRtVWdkbUZzZFdVdVhDSXBPMXh1WEhSOVhHNWNkSEpsZEhWeWJpQW9YQ0p6ZEhKcGJtZGNJaUE5UFQwZ2NpQS9JRk4wY21sdVp5QTZJRTUxYldKbGNpa29kQ2s3WEc1OVhHNWNiaTh2STJWdVpISmxaMmx2Ymx4dUx5OGpjbVZuYVc5dUlGeGNNRUJ2ZUdNdGNISnZhbVZqZEN0eWRXNTBhVzFsUURBdU9Ua3VNQzlvWld4d1pYSnpMM1J2VUhKdmNHVnlkSGxMWlhrdWFuTmNibVoxYm1OMGFXOXVJSFJ2VUhKdmNHVnlkSGxMWlhrb2RDa2dlMXh1WEhSMllYSWdhU0E5SUhSdlVISnBiV2wwYVhabEtIUXNJRndpYzNSeWFXNW5YQ0lwTzF4dVhIUnlaWFIxY200Z1hDSnplVzFpYjJ4Y0lpQTlQU0JmZEhsd1pXOW1LR2twSUQ4Z2FTQTZJR2tnS3lCY0lsd2lPMXh1ZlZ4dVhHNHZMeU5sYm1SeVpXZHBiMjVjYmk4dkkzSmxaMmx2YmlCY1hEQkFiM2hqTFhCeWIycGxZM1FyY25WdWRHbHRaVUF3TGprNUxqQXZhR1ZzY0dWeWN5OWtaV1pwYm1WUWNtOXdaWEowZVM1cWMxeHVablZ1WTNScGIyNGdYMlJsWm1sdVpWQnliM0JsY25SNUtHVXNJSElzSUhRcElIdGNibHgwY21WMGRYSnVJQ2h5SUQwZ2RHOVFjbTl3WlhKMGVVdGxlU2h5S1NrZ2FXNGdaU0EvSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaGxMQ0J5TENCN1hHNWNkRngwZG1Gc2RXVTZJSFFzWEc1Y2RGeDBaVzUxYldWeVlXSnNaVG9nSVRBc1hHNWNkRngwWTI5dVptbG5kWEpoWW14bE9pQWhNQ3hjYmx4MFhIUjNjbWwwWVdKc1pUb2dJVEJjYmx4MGZTa2dPaUJsVzNKZElEMGdkQ3dnWlR0Y2JuMWNibHh1THk4alpXNWtjbVZuYVc5dVhHNHZMeU55WldkcGIyNGdjM0pqTDNOb1lYSmxaQzlvYlhJdWRITmNiblpoY2lCSVRWSkRiMjUwWlhoMElEMGdZMnhoYzNNZ2UxeHVYSFJqYjI1emRISjFZM1J2Y2lob2JYSkRiR2xsYm5Ra01Td2diM2R1WlhKUVlYUm9LU0I3WEc1Y2RGeDBkR2hwY3k1b2JYSkRiR2xsYm5RZ1BTQm9iWEpEYkdsbGJuUWtNVHRjYmx4MFhIUjBhR2x6TG05M2JtVnlVR0YwYUNBOUlHOTNibVZ5VUdGMGFEdGNibHgwWEhSZlpHVm1hVzVsVUhKdmNHVnlkSGtvZEdocGN5d2dYQ0p1WlhkTWFYTjBaVzVsY25OY0lpd2dkbTlwWkNBd0tUdGNibHgwWEhScFppQW9JV2h0Y2tOc2FXVnVkQ1F4TG1SaGRHRk5ZWEF1YUdGektHOTNibVZ5VUdGMGFDa3BJR2h0Y2tOc2FXVnVkQ1F4TG1SaGRHRk5ZWEF1YzJWMEtHOTNibVZ5VUdGMGFDd2dlMzBwTzF4dVhIUmNkR052Ym5OMElHMXZaQ0E5SUdodGNrTnNhV1Z1ZENReExtaHZkRTF2WkhWc1pYTk5ZWEF1WjJWMEtHOTNibVZ5VUdGMGFDazdYRzVjZEZ4MGFXWWdLRzF2WkNrZ2JXOWtMbU5oYkd4aVlXTnJjeUE5SUZ0ZE8xeHVYSFJjZEdOdmJuTjBJSE4wWVd4bFRHbHpkR1Z1WlhKeklEMGdhRzF5UTJ4cFpXNTBKREV1WTNSNFZHOU1hWE4wWlc1bGNuTk5ZWEF1WjJWMEtHOTNibVZ5VUdGMGFDazdYRzVjZEZ4MGFXWWdLSE4wWVd4bFRHbHpkR1Z1WlhKektTQm1iM0lnS0dOdmJuTjBJRnRsZG1WdWRDd2djM1JoYkdWR2JuTmRJRzltSUhOMFlXeGxUR2x6ZEdWdVpYSnpLU0I3WEc1Y2RGeDBYSFJqYjI1emRDQnNhWE4wWlc1bGNuTWdQU0JvYlhKRGJHbGxiblFrTVM1amRYTjBiMjFNYVhOMFpXNWxjbk5OWVhBdVoyVjBLR1YyWlc1MEtUdGNibHgwWEhSY2RHbG1JQ2hzYVhOMFpXNWxjbk1wSUdodGNrTnNhV1Z1ZENReExtTjFjM1J2YlV4cGMzUmxibVZ5YzAxaGNDNXpaWFFvWlhabGJuUXNJR3hwYzNSbGJtVnljeTVtYVd4MFpYSW9LR3dwSUQwK0lDRnpkR0ZzWlVadWN5NXBibU5zZFdSbGN5aHNLU2twTzF4dVhIUmNkSDFjYmx4MFhIUjBhR2x6TG01bGQweHBjM1JsYm1WeWN5QTlJQzhxSUVCZlgxQlZVa1ZmWHlBcUx5QnVaWGNnVFdGd0tDazdYRzVjZEZ4MGFHMXlRMnhwWlc1MEpERXVZM1I0Vkc5TWFYTjBaVzVsY25OTllYQXVjMlYwS0c5M2JtVnlVR0YwYUN3Z2RHaHBjeTV1WlhkTWFYTjBaVzVsY25NcE8xeHVYSFI5WEc1Y2RHZGxkQ0JrWVhSaEtDa2dlMXh1WEhSY2RISmxkSFZ5YmlCMGFHbHpMbWh0Y2tOc2FXVnVkQzVrWVhSaFRXRndMbWRsZENoMGFHbHpMbTkzYm1WeVVHRjBhQ2s3WEc1Y2RIMWNibHgwWVdOalpYQjBLR1JsY0hNc0lHTmhiR3hpWVdOcktTQjdYRzVjZEZ4MGFXWWdLSFI1Y0dWdlppQmtaWEJ6SUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lnZkh3Z0lXUmxjSE1wSUhSb2FYTXVZV05qWlhCMFJHVndjeWhiZEdocGN5NXZkMjVsY2xCaGRHaGRMQ0FvVzIxdlpGMHBJRDArSUdSbGNITS9MaWh0YjJRcEtUdGNibHgwWEhSbGJITmxJR2xtSUNoMGVYQmxiMllnWkdWd2N5QTlQVDBnWENKemRISnBibWRjSWlrZ2RHaHBjeTVoWTJObGNIUkVaWEJ6S0Z0a1pYQnpYU3dnS0Z0dGIyUmRLU0E5UGlCallXeHNZbUZqYXo4dUtHMXZaQ2twTzF4dVhIUmNkR1ZzYzJVZ2FXWWdLRUZ5Y21GNUxtbHpRWEp5WVhrb1pHVndjeWtwSUhSb2FYTXVZV05qWlhCMFJHVndjeWhrWlhCekxDQmpZV3hzWW1GamF5azdYRzVjZEZ4MFpXeHpaU0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZR2x1ZG1Gc2FXUWdhRzkwTG1GalkyVndkQ2dwSUhWellXZGxMbUFwTzF4dVhIUjlYRzVjZEdGalkyVndkRVY0Y0c5eWRITW9YeXdnWTJGc2JHSmhZMnNwSUh0Y2JseDBYSFIwYUdsekxtRmpZMlZ3ZEVSbGNITW9XM1JvYVhNdWIzZHVaWEpRWVhSb1hTd2dLRnR0YjJSZEtTQTlQaUJqWVd4c1ltRmphejh1S0cxdlpDa3BPMXh1WEhSOVhHNWNkR1JwYzNCdmMyVW9ZMklwSUh0Y2JseDBYSFIwYUdsekxtaHRja05zYVdWdWRDNWthWE53YjNObFRXRndMbk5sZENoMGFHbHpMbTkzYm1WeVVHRjBhQ3dnWTJJcE8xeHVYSFI5WEc1Y2RIQnlkVzVsS0dOaUtTQjdYRzVjZEZ4MGRHaHBjeTVvYlhKRGJHbGxiblF1Y0hKMWJtVk5ZWEF1YzJWMEtIUm9hWE11YjNkdVpYSlFZWFJvTENCallpazdYRzVjZEgxY2JseDBaR1ZqYkdsdVpTZ3BJSHQ5WEc1Y2RHbHVkbUZzYVdSaGRHVW9iV1Z6YzJGblpTa2dlMXh1WEhSY2RHTnZibk4wSUdacGNuTjBTVzUyWVd4cFpHRjBaV1JDZVNBOUlIUm9hWE11YUcxeVEyeHBaVzUwTG1OMWNuSmxiblJHYVhKemRFbHVkbUZzYVdSaGRHVmtRbmtnUHo4Z2RHaHBjeTV2ZDI1bGNsQmhkR2c3WEc1Y2RGeDBkR2hwY3k1b2JYSkRiR2xsYm5RdWJtOTBhV1o1VEdsemRHVnVaWEp6S0Z3aWRtbDBaVHBwYm5aaGJHbGtZWFJsWENJc0lIdGNibHgwWEhSY2RIQmhkR2c2SUhSb2FYTXViM2R1WlhKUVlYUm9MRnh1WEhSY2RGeDBiV1Z6YzJGblpTeGNibHgwWEhSY2RHWnBjbk4wU1c1MllXeHBaR0YwWldSQ2VWeHVYSFJjZEgwcE8xeHVYSFJjZEhSb2FYTXVjMlZ1WkNoY0luWnBkR1U2YVc1MllXeHBaR0YwWlZ3aUxDQjdYRzVjZEZ4MFhIUndZWFJvT2lCMGFHbHpMbTkzYm1WeVVHRjBhQ3hjYmx4MFhIUmNkRzFsYzNOaFoyVXNYRzVjZEZ4MFhIUm1hWEp6ZEVsdWRtRnNhV1JoZEdWa1FubGNibHgwWEhSOUtUdGNibHgwWEhSMGFHbHpMbWh0Y2tOc2FXVnVkQzVzYjJkblpYSXVaR1ZpZFdjb1lHbHVkbUZzYVdSaGRHVWdKSHQwYUdsekxtOTNibVZ5VUdGMGFIMGtlMjFsYzNOaFoyVWdQeUJnT2lBa2UyMWxjM05oWjJWOVlDQTZJRndpWENKOVlDazdYRzVjZEgxY2JseDBiMjRvWlhabGJuUXNJR05pS1NCN1hHNWNkRngwWTI5dWMzUWdZV1JrVkc5TllYQWdQU0FvYldGd0tTQTlQaUI3WEc1Y2RGeDBYSFJqYjI1emRDQmxlR2x6ZEdsdVp5QTlJRzFoY0M1blpYUW9aWFpsYm5RcElIeDhJRnRkTzF4dVhIUmNkRngwWlhocGMzUnBibWN1Y0hWemFDaGpZaWs3WEc1Y2RGeDBYSFJ0WVhBdWMyVjBLR1YyWlc1MExDQmxlR2x6ZEdsdVp5azdYRzVjZEZ4MGZUdGNibHgwWEhSaFpHUlViMDFoY0NoMGFHbHpMbWh0Y2tOc2FXVnVkQzVqZFhOMGIyMU1hWE4wWlc1bGNuTk5ZWEFwTzF4dVhIUmNkR0ZrWkZSdlRXRndLSFJvYVhNdWJtVjNUR2x6ZEdWdVpYSnpLVHRjYmx4MGZWeHVYSFJ2Wm1Zb1pYWmxiblFzSUdOaUtTQjdYRzVjZEZ4MFkyOXVjM1FnY21WdGIzWmxSbkp2YlUxaGNDQTlJQ2h0WVhBcElEMCtJSHRjYmx4MFhIUmNkR052Ym5OMElHVjRhWE4wYVc1bklEMGdiV0Z3TG1kbGRDaGxkbVZ1ZENrN1hHNWNkRngwWEhScFppQW9aWGhwYzNScGJtY2dQVDA5SUhadmFXUWdNQ2tnY21WMGRYSnVPMXh1WEhSY2RGeDBZMjl1YzNRZ2NISjFibVZrSUQwZ1pYaHBjM1JwYm1jdVptbHNkR1Z5S0Noc0tTQTlQaUJzSUNFOVBTQmpZaWs3WEc1Y2RGeDBYSFJwWmlBb2NISjFibVZrTG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1WEhSY2RGeDBYSFJ0WVhBdVpHVnNaWFJsS0dWMlpXNTBLVHRjYmx4MFhIUmNkRngwY21WMGRYSnVPMXh1WEhSY2RGeDBmVnh1WEhSY2RGeDBiV0Z3TG5ObGRDaGxkbVZ1ZEN3Z2NISjFibVZrS1R0Y2JseDBYSFI5TzF4dVhIUmNkSEpsYlc5MlpVWnliMjFOWVhBb2RHaHBjeTVvYlhKRGJHbGxiblF1WTNWemRHOXRUR2x6ZEdWdVpYSnpUV0Z3S1R0Y2JseDBYSFJ5WlcxdmRtVkdjbTl0VFdGd0tIUm9hWE11Ym1WM1RHbHpkR1Z1WlhKektUdGNibHgwZlZ4dVhIUnpaVzVrS0dWMlpXNTBMQ0JrWVhSaEtTQjdYRzVjZEZ4MGRHaHBjeTVvYlhKRGJHbGxiblF1YzJWdVpDaDdYRzVjZEZ4MFhIUjBlWEJsT2lCY0ltTjFjM1J2YlZ3aUxGeHVYSFJjZEZ4MFpYWmxiblFzWEc1Y2RGeDBYSFJrWVhSaFhHNWNkRngwZlNrN1hHNWNkSDFjYmx4MFlXTmpaWEIwUkdWd2N5aGtaWEJ6TENCallXeHNZbUZqYXlBOUlDZ3BJRDArSUh0OUtTQjdYRzVjZEZ4MFkyOXVjM1FnYlc5a0lEMGdkR2hwY3k1b2JYSkRiR2xsYm5RdWFHOTBUVzlrZFd4bGMwMWhjQzVuWlhRb2RHaHBjeTV2ZDI1bGNsQmhkR2dwSUh4OElIdGNibHgwWEhSY2RHbGtPaUIwYUdsekxtOTNibVZ5VUdGMGFDeGNibHgwWEhSY2RHTmhiR3hpWVdOcmN6b2dXMTFjYmx4MFhIUjlPMXh1WEhSY2RHMXZaQzVqWVd4c1ltRmphM011Y0hWemFDaDdYRzVjZEZ4MFhIUmtaWEJ6TEZ4dVhIUmNkRngwWm00NklHTmhiR3hpWVdOclhHNWNkRngwZlNrN1hHNWNkRngwZEdocGN5NW9iWEpEYkdsbGJuUXVhRzkwVFc5a2RXeGxjMDFoY0M1elpYUW9kR2hwY3k1dmQyNWxjbEJoZEdnc0lHMXZaQ2s3WEc1Y2RIMWNibjA3WEc1MllYSWdTRTFTUTJ4cFpXNTBJRDBnWTJ4aGMzTWdlMXh1WEhSamIyNXpkSEoxWTNSdmNpaHNiMmRuWlhJc0lIUnlZVzV6Y0c5eWRDUXhMQ0JwYlhCdmNuUlZjR1JoZEdWa1RXOWtkV3hsS1NCN1hHNWNkRngwZEdocGN5NXNiMmRuWlhJZ1BTQnNiMmRuWlhJN1hHNWNkRngwZEdocGN5NTBjbUZ1YzNCdmNuUWdQU0IwY21GdWMzQnZjblFrTVR0Y2JseDBYSFIwYUdsekxtbHRjRzl5ZEZWd1pHRjBaV1JOYjJSMWJHVWdQU0JwYlhCdmNuUlZjR1JoZEdWa1RXOWtkV3hsTzF4dVhIUmNkRjlrWldacGJtVlFjbTl3WlhKMGVTaDBhR2x6TENCY0ltaHZkRTF2WkhWc1pYTk5ZWEJjSWl3Z0x5b2dRRjlmVUZWU1JWOWZJQ292SUc1bGR5Qk5ZWEFvS1NrN1hHNWNkRngwWDJSbFptbHVaVkJ5YjNCbGNuUjVLSFJvYVhNc0lGd2laR2x6Y0c5elpVMWhjRndpTENBdktpQkFYMTlRVlZKRlgxOGdLaThnYm1WM0lFMWhjQ2dwS1R0Y2JseDBYSFJmWkdWbWFXNWxVSEp2Y0dWeWRIa29kR2hwY3l3Z1hDSndjblZ1WlUxaGNGd2lMQ0F2S2lCQVgxOVFWVkpGWDE4Z0tpOGdibVYzSUUxaGNDZ3BLVHRjYmx4MFhIUmZaR1ZtYVc1bFVISnZjR1Z5ZEhrb2RHaHBjeXdnWENKa1lYUmhUV0Z3WENJc0lDOHFJRUJmWDFCVlVrVmZYeUFxTHlCdVpYY2dUV0Z3S0NrcE8xeHVYSFJjZEY5a1pXWnBibVZRY205d1pYSjBlU2gwYUdsekxDQmNJbU4xYzNSdmJVeHBjM1JsYm1WeWMwMWhjRndpTENBdktpQkFYMTlRVlZKRlgxOGdLaThnYm1WM0lFMWhjQ2dwS1R0Y2JseDBYSFJmWkdWbWFXNWxVSEp2Y0dWeWRIa29kR2hwY3l3Z1hDSmpkSGhVYjB4cGMzUmxibVZ5YzAxaGNGd2lMQ0F2S2lCQVgxOVFWVkpGWDE4Z0tpOGdibVYzSUUxaGNDZ3BLVHRjYmx4MFhIUmZaR1ZtYVc1bFVISnZjR1Z5ZEhrb2RHaHBjeXdnWENKamRYSnlaVzUwUm1seWMzUkpiblpoYkdsa1lYUmxaRUo1WENJc0lIWnZhV1FnTUNrN1hHNWNkRngwWDJSbFptbHVaVkJ5YjNCbGNuUjVLSFJvYVhNc0lGd2lkWEJrWVhSbFVYVmxkV1ZjSWl3Z1cxMHBPMXh1WEhSY2RGOWtaV1pwYm1WUWNtOXdaWEowZVNoMGFHbHpMQ0JjSW5CbGJtUnBibWRWY0dSaGRHVlJkV1YxWlZ3aUxDQm1ZV3h6WlNrN1hHNWNkSDFjYmx4MFlYTjVibU1nYm05MGFXWjVUR2x6ZEdWdVpYSnpLR1YyWlc1MExDQmtZWFJoS1NCN1hHNWNkRngwWTI5dWMzUWdZMkp6SUQwZ2RHaHBjeTVqZFhOMGIyMU1hWE4wWlc1bGNuTk5ZWEF1WjJWMEtHVjJaVzUwS1R0Y2JseDBYSFJwWmlBb1kySnpLU0JoZDJGcGRDQlFjbTl0YVhObExtRnNiRk5sZEhSc1pXUW9ZMkp6TG0xaGNDZ29ZMklwSUQwK0lHTmlLR1JoZEdFcEtTazdYRzVjZEgxY2JseDBjMlZ1WkNod1lYbHNiMkZrS1NCN1hHNWNkRngwZEdocGN5NTBjbUZ1YzNCdmNuUXVjMlZ1WkNod1lYbHNiMkZrS1M1allYUmphQ2dvWlhKeUtTQTlQaUI3WEc1Y2RGeDBYSFIwYUdsekxteHZaMmRsY2k1bGNuSnZjaWhsY25JcE8xeHVYSFJjZEgwcE8xeHVYSFI5WEc1Y2RHTnNaV0Z5S0NrZ2UxeHVYSFJjZEhSb2FYTXVhRzkwVFc5a2RXeGxjMDFoY0M1amJHVmhjaWdwTzF4dVhIUmNkSFJvYVhNdVpHbHpjRzl6WlUxaGNDNWpiR1ZoY2lncE8xeHVYSFJjZEhSb2FYTXVjSEoxYm1WTllYQXVZMnhsWVhJb0tUdGNibHgwWEhSMGFHbHpMbVJoZEdGTllYQXVZMnhsWVhJb0tUdGNibHgwWEhSMGFHbHpMbU4xYzNSdmJVeHBjM1JsYm1WeWMwMWhjQzVqYkdWaGNpZ3BPMXh1WEhSY2RIUm9hWE11WTNSNFZHOU1hWE4wWlc1bGNuTk5ZWEF1WTJ4bFlYSW9LVHRjYmx4MGZWeHVYSFJoYzNsdVl5QndjblZ1WlZCaGRHaHpLSEJoZEdoektTQjdYRzVjZEZ4MFlYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b2NHRjBhSE11YldGd0tDaHdZWFJvS1NBOVBpQjdYRzVjZEZ4MFhIUmpiMjV6ZENCa2FYTndiM05sY2lBOUlIUm9hWE11WkdsemNHOXpaVTFoY0M1blpYUW9jR0YwYUNrN1hHNWNkRngwWEhScFppQW9aR2x6Y0c5elpYSXBJSEpsZEhWeWJpQmthWE53YjNObGNpaDBhR2x6TG1SaGRHRk5ZWEF1WjJWMEtIQmhkR2dwS1R0Y2JseDBYSFI5S1NrN1hHNWNkRngwWVhkaGFYUWdVSEp2YldselpTNWhiR3dvY0dGMGFITXViV0Z3S0Nod1lYUm9LU0E5UGlCN1hHNWNkRngwWEhSamIyNXpkQ0JtYmlBOUlIUm9hWE11Y0hKMWJtVk5ZWEF1WjJWMEtIQmhkR2dwTzF4dVhIUmNkRngwYVdZZ0tHWnVLU0J5WlhSMWNtNGdabTRvZEdocGN5NWtZWFJoVFdGd0xtZGxkQ2h3WVhSb0tTazdYRzVjZEZ4MGZTa3BPMXh1WEhSOVhHNWNkSGRoY201R1lXbHNaV1JWY0dSaGRHVW9aWEp5TENCd1lYUm9LU0I3WEc1Y2RGeDBhV1lnS0NFb1pYSnlJR2x1YzNSaGJtTmxiMllnUlhKeWIzSXBJSHg4SUNGbGNuSXViV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJbVpsZEdOb1hDSXBLU0IwYUdsekxteHZaMmRsY2k1bGNuSnZjaWhsY25JcE8xeHVYSFJjZEhSb2FYTXViRzluWjJWeUxtVnljbTl5S0dCR1lXbHNaV1FnZEc4Z2NtVnNiMkZrSUNSN2NHRjBhSDB1SUZSb2FYTWdZMjkxYkdRZ1ltVWdaSFZsSUhSdklITjViblJoZUNCbGNuSnZjbk1nYjNJZ2FXMXdiM0owYVc1bklHNXZiaTFsZUdsemRHVnVkQ0J0YjJSMWJHVnpMaUFvYzJWbElHVnljbTl5Y3lCaFltOTJaU2xnS1R0Y2JseDBmVnh1WEhRdktpcGNibHgwS2lCaWRXWm1aWElnYlhWc2RHbHdiR1VnYUc5MElIVndaR0YwWlhNZ2RISnBaMmRsY21Wa0lHSjVJSFJvWlNCellXMWxJSE55WXlCamFHRnVaMlZjYmx4MEtpQnpieUIwYUdGMElIUm9aWGtnWVhKbElHbHVkbTlyWldRZ2FXNGdkR2hsSUhOaGJXVWdiM0prWlhJZ2RHaGxlU0IzWlhKbElITmxiblF1WEc1Y2RDb2dLRzkwYUdWeWQybHpaU0IwYUdVZ2IzSmtaWElnYldGNUlHSmxJR2x1WTI5dWMybHpkR1Z1ZENCaVpXTmhkWE5sSUc5bUlIUm9aU0JvZEhSd0lISmxjWFZsYzNRZ2NtOTFibVFnZEhKcGNDbGNibHgwS2k5Y2JseDBZWE41Ym1NZ2NYVmxkV1ZWY0dSaGRHVW9jR0Y1Ykc5aFpDa2dlMXh1WEhSY2RIUm9hWE11ZFhCa1lYUmxVWFZsZFdVdWNIVnphQ2gwYUdsekxtWmxkR05vVlhCa1lYUmxLSEJoZVd4dllXUXBLVHRjYmx4MFhIUnBaaUFvSVhSb2FYTXVjR1Z1WkdsdVoxVndaR0YwWlZGMVpYVmxLU0I3WEc1Y2RGeDBYSFIwYUdsekxuQmxibVJwYm1kVmNHUmhkR1ZSZFdWMVpTQTlJSFJ5ZFdVN1hHNWNkRngwWEhSaGQyRnBkQ0JRY205dGFYTmxMbkpsYzI5c2RtVW9LVHRjYmx4MFhIUmNkSFJvYVhNdWNHVnVaR2x1WjFWd1pHRjBaVkYxWlhWbElEMGdabUZzYzJVN1hHNWNkRngwWEhSamIyNXpkQ0JzYjJGa2FXNW5JRDBnV3k0dUxuUm9hWE11ZFhCa1lYUmxVWFZsZFdWZE8xeHVYSFJjZEZ4MGRHaHBjeTUxY0dSaGRHVlJkV1YxWlNBOUlGdGRPMXh1WEhSY2RGeDBLR0YzWVdsMElGQnliMjFwYzJVdVlXeHNLR3h2WVdScGJtY3BLUzVtYjNKRllXTm9LQ2htYmlrZ1BUNGdabTRnSmlZZ1ptNG9LU2s3WEc1Y2RGeDBmVnh1WEhSOVhHNWNkR0Z6ZVc1aklHWmxkR05vVlhCa1lYUmxLSFZ3WkdGMFpTa2dlMXh1WEhSY2RHTnZibk4wSUhzZ2NHRjBhQ3dnWVdOalpYQjBaV1JRWVhSb0xDQm1hWEp6ZEVsdWRtRnNhV1JoZEdWa1Fua2dmU0E5SUhWd1pHRjBaVHRjYmx4MFhIUmpiMjV6ZENCdGIyUWdQU0IwYUdsekxtaHZkRTF2WkhWc1pYTk5ZWEF1WjJWMEtIQmhkR2dwTzF4dVhIUmNkR2xtSUNnaGJXOWtLU0J5WlhSMWNtNDdYRzVjZEZ4MGJHVjBJR1psZEdOb1pXUk5iMlIxYkdVN1hHNWNkRngwWTI5dWMzUWdhWE5UWld4bVZYQmtZWFJsSUQwZ2NHRjBhQ0E5UFQwZ1lXTmpaWEIwWldSUVlYUm9PMXh1WEhSY2RHTnZibk4wSUhGMVlXeHBabWxsWkVOaGJHeGlZV05yY3lBOUlHMXZaQzVqWVd4c1ltRmphM011Wm1sc2RHVnlLQ2g3SUdSbGNITWdmU2tnUFQ0Z1pHVndjeTVwYm1Oc2RXUmxjeWhoWTJObGNIUmxaRkJoZEdncEtUdGNibHgwWEhScFppQW9hWE5UWld4bVZYQmtZWFJsSUh4OElIRjFZV3hwWm1sbFpFTmhiR3hpWVdOcmN5NXNaVzVuZEdnZ1BpQXdLU0I3WEc1Y2RGeDBYSFJqYjI1emRDQmthWE53YjNObGNpQTlJSFJvYVhNdVpHbHpjRzl6WlUxaGNDNW5aWFFvWVdOalpYQjBaV1JRWVhSb0tUdGNibHgwWEhSY2RHbG1JQ2hrYVhOd2IzTmxjaWtnWVhkaGFYUWdaR2x6Y0c5elpYSW9kR2hwY3k1a1lYUmhUV0Z3TG1kbGRDaGhZMk5sY0hSbFpGQmhkR2dwS1R0Y2JseDBYSFJjZEhSeWVTQjdYRzVjZEZ4MFhIUmNkR1psZEdOb1pXUk5iMlIxYkdVZ1BTQmhkMkZwZENCMGFHbHpMbWx0Y0c5eWRGVndaR0YwWldSTmIyUjFiR1VvZFhCa1lYUmxLVHRjYmx4MFhIUmNkSDBnWTJGMFkyZ2dLR1VwSUh0Y2JseDBYSFJjZEZ4MGRHaHBjeTUzWVhKdVJtRnBiR1ZrVlhCa1lYUmxLR1VzSUdGalkyVndkR1ZrVUdGMGFDazdYRzVjZEZ4MFhIUjlYRzVjZEZ4MGZWeHVYSFJjZEhKbGRIVnliaUFvS1NBOVBpQjdYRzVjZEZ4MFhIUjBjbmtnZTF4dVhIUmNkRngwWEhSMGFHbHpMbU4xY25KbGJuUkdhWEp6ZEVsdWRtRnNhV1JoZEdWa1Fua2dQU0JtYVhKemRFbHVkbUZzYVdSaGRHVmtRbms3WEc1Y2RGeDBYSFJjZEdadmNpQW9ZMjl1YzNRZ2V5QmtaWEJ6TENCbWJpQjlJRzltSUhGMVlXeHBabWxsWkVOaGJHeGlZV05yY3lrZ1ptNG9aR1Z3Y3k1dFlYQW9LR1JsY0NrZ1BUNGdaR1Z3SUQwOVBTQmhZMk5sY0hSbFpGQmhkR2dnUHlCbVpYUmphR1ZrVFc5a2RXeGxJRG9nZG05cFpDQXdLU2s3WEc1Y2RGeDBYSFJjZEdOdmJuTjBJR3h2WjJkbFpGQmhkR2dnUFNCcGMxTmxiR1pWY0dSaGRHVWdQeUJ3WVhSb0lEb2dZQ1I3WVdOalpYQjBaV1JRWVhSb2ZTQjJhV0VnSkh0d1lYUm9mV0E3WEc1Y2RGeDBYSFJjZEhSb2FYTXViRzluWjJWeUxtUmxZblZuS0dCb2IzUWdkWEJrWVhSbFpEb2dKSHRzYjJkblpXUlFZWFJvZldBcE8xeHVYSFJjZEZ4MGZTQm1hVzVoYkd4NUlIdGNibHgwWEhSY2RGeDBkR2hwY3k1amRYSnlaVzUwUm1seWMzUkpiblpoYkdsa1lYUmxaRUo1SUQwZ2RtOXBaQ0F3TzF4dVhIUmNkRngwZlZ4dVhIUmNkSDA3WEc1Y2RIMWNibjA3WEc1Y2JpOHZJMlZ1WkhKbFoybHZibHh1THk4amNtVm5hVzl1SUM0dUx5NHVMMjV2WkdWZmJXOWtkV3hsY3k4dWNHNXdiUzl1WVc1dmFXUkFOUzR4TGpZdmJtOWtaVjl0YjJSMWJHVnpMMjVoYm05cFpDOXViMjR0YzJWamRYSmxMMmx1WkdWNExtcHpYRzVzWlhRZ2RYSnNRV3h3YUdGaVpYUWdQU0JjSW5WelpXRnVaRzl0TFRJMlZERTVPRE0wTUZCWU56VndlRXBCUTB0V1JWSlpUVWxPUkVKVlUwaFhUMHhHWDBkUldtSm1aMmhxYTJ4eGRuZDVlbkpwWTNSY0lqdGNibXhsZENCdVlXNXZhV1FnUFNBb2MybDZaU0E5SURJeEtTQTlQaUI3WEc1Y2RHeGxkQ0JwWkNBOUlGd2lYQ0k3WEc1Y2RHeGxkQ0JwSUQwZ2MybDZaU0I4SURBN1hHNWNkSGRvYVd4bElDaHBMUzBwSUdsa0lDczlJSFZ5YkVGc2NHaGhZbVYwVzAxaGRHZ3VjbUZ1Wkc5dEtDa2dLaUEyTkNCOElEQmRPMXh1WEhSeVpYUjFjbTRnYVdRN1hHNTlPMXh1WEc0dkx5TmxibVJ5WldkcGIyNWNiaTh2STNKbFoybHZiaUJ6Y21NdmMyaGhjbVZrTDJOdmJuTjBZVzUwY3k1MGMxeHViR1YwSUZOUFZWSkRSVTFCVUZCSlRrZGZWVkpNSUQwZ1hDSnpiM1Z5WTJWTllWd2lPMXh1VTA5VlVrTkZUVUZRVUVsT1IxOVZVa3dnS3owZ1hDSndjR2x1WjFWU1RGd2lPMXh1WEc0dkx5TmxibVJ5WldkcGIyNWNiaTh2STNKbFoybHZiaUJ6Y21NdmMyaGhjbVZrTDNWMGFXeHpMblJ6WEc1amIyNXpkQ0JwYzFkcGJtUnZkM01nUFNCMGVYQmxiMllnY0hKdlkyVnpjeUFoUFQwZ1hDSjFibVJsWm1sdVpXUmNJaUFtSmlCd2NtOWpaWE56TG5Cc1lYUm1iM0p0SUQwOVBTQmNJbmRwYmpNeVhDSTdYRzVqYjI1emRDQkJjM2x1WTBaMWJtTjBhVzl1SUQwZ1lYTjVibU1nWm5WdVkzUnBiMjRvS1NCN2ZTNWpiMjV6ZEhKMVkzUnZjanRjYm1aMWJtTjBhVzl1SUhCeWIyMXBjMlZYYVhSb1VtVnpiMngyWlhKektDa2dlMXh1WEhSc1pYUWdjbVZ6YjJ4MlpUdGNibHgwYkdWMElISmxhbVZqZER0Y2JseDBjbVYwZFhKdUlIdGNibHgwWEhSd2NtOXRhWE5sT2lCdVpYY2dVSEp2YldselpTZ29YM0psYzI5c2RtVXNJRjl5WldwbFkzUXBJRDArSUh0Y2JseDBYSFJjZEhKbGMyOXNkbVVnUFNCZmNtVnpiMngyWlR0Y2JseDBYSFJjZEhKbGFtVmpkQ0E5SUY5eVpXcGxZM1E3WEc1Y2RGeDBmU2tzWEc1Y2RGeDBjbVZ6YjJ4MlpTeGNibHgwWEhSeVpXcGxZM1JjYmx4MGZUdGNibjFjYmx4dUx5OGpaVzVrY21WbmFXOXVYRzR2THlOeVpXZHBiMjRnYzNKakwzTm9ZWEpsWkM5dGIyUjFiR1ZTZFc1dVpYSlVjbUZ1YzNCdmNuUXVkSE5jYm1aMWJtTjBhVzl1SUhKbGRtbDJaVWx1ZG05clpVVnljbTl5S0dVcElIdGNibHgwWTI5dWMzUWdaWEp5YjNJZ1BTQnVaWGNnUlhKeWIzSW9aUzV0WlhOellXZGxJSHg4SUZ3aVZXNXJibTkzYmlCcGJuWnZhMlVnWlhKeWIzSmNJaWs3WEc1Y2RFOWlhbVZqZEM1aGMzTnBaMjRvWlhKeWIzSXNJR1VzSUhzZ2NuVnVibVZ5UlhKeWIzSTZJQzhxSUVCZlgxQlZVa1ZmWHlBcUx5QnVaWGNnUlhKeWIzSW9YQ0pTZFc1dVpYSkZjbkp2Y2x3aUtTQjlLVHRjYmx4MGNtVjBkWEp1SUdWeWNtOXlPMXh1ZlZ4dVkyOXVjM1FnWTNKbFlYUmxTVzUyYjJ0bFlXSnNaVlJ5WVc1emNHOXlkQ0E5SUNoMGNtRnVjM0J2Y25Ra01Ta2dQVDRnZTF4dVhIUnBaaUFvZEhKaGJuTndiM0owSkRFdWFXNTJiMnRsS1NCeVpYUjFjbTRnZTF4dVhIUmNkQzR1TG5SeVlXNXpjRzl5ZENReExGeHVYSFJjZEdGemVXNWpJR2x1ZG05clpTaHVZVzFsTENCa1lYUmhLU0I3WEc1Y2RGeDBYSFJqYjI1emRDQnlaWE4xYkhRZ1BTQmhkMkZwZENCMGNtRnVjM0J2Y25Ra01TNXBiblp2YTJVb2UxeHVYSFJjZEZ4MFhIUjBlWEJsT2lCY0ltTjFjM1J2YlZ3aUxGeHVYSFJjZEZ4MFhIUmxkbVZ1ZERvZ1hDSjJhWFJsT21sdWRtOXJaVndpTEZ4dVhIUmNkRngwWEhSa1lYUmhPaUI3WEc1Y2RGeDBYSFJjZEZ4MGFXUTZJRndpYzJWdVpGd2lMRnh1WEhSY2RGeDBYSFJjZEc1aGJXVXNYRzVjZEZ4MFhIUmNkRngwWkdGMFlWeHVYSFJjZEZ4MFhIUjlYRzVjZEZ4MFhIUjlLVHRjYmx4MFhIUmNkR2xtSUNoY0ltVnljbTl5WENJZ2FXNGdjbVZ6ZFd4MEtTQjBhSEp2ZHlCeVpYWnBkbVZKYm5admEyVkZjbkp2Y2loeVpYTjFiSFF1WlhKeWIzSXBPMXh1WEhSY2RGeDBjbVYwZFhKdUlISmxjM1ZzZEM1eVpYTjFiSFE3WEc1Y2RGeDBmVnh1WEhSOU8xeHVYSFJwWmlBb0lYUnlZVzV6Y0c5eWRDUXhMbk5sYm1RZ2ZId2dJWFJ5WVc1emNHOXlkQ1F4TG1OdmJtNWxZM1FwSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSW5SeVlXNXpjRzl5ZENCdGRYTjBJR2x0Y0d4bGJXVnVkQ0J6Wlc1a0lHRnVaQ0JqYjI1dVpXTjBJSGRvWlc0Z2FXNTJiMnRsSUdseklHNXZkQ0JwYlhCc1pXMWxiblJsWkZ3aUtUdGNibHgwWTI5dWMzUWdjbkJqVUhKdmJXbHpaWE1nUFNBdktpQkFYMTlRVlZKRlgxOGdLaThnYm1WM0lFMWhjQ2dwTzF4dVhIUnlaWFIxY200Z2UxeHVYSFJjZEM0dUxuUnlZVzV6Y0c5eWRDUXhMRnh1WEhSY2RHTnZibTVsWTNRb2V5QnZiazFsYzNOaFoyVXNJRzl1UkdselkyOXVibVZqZEdsdmJpQjlLU0I3WEc1Y2RGeDBYSFJ5WlhSMWNtNGdkSEpoYm5Od2IzSjBKREV1WTI5dWJtVmpkQ2g3WEc1Y2RGeDBYSFJjZEc5dVRXVnpjMkZuWlNod1lYbHNiMkZrS1NCN1hHNWNkRngwWEhSY2RGeDBhV1lnS0hCaGVXeHZZV1F1ZEhsd1pTQTlQVDBnWENKamRYTjBiMjFjSWlBbUppQndZWGxzYjJGa0xtVjJaVzUwSUQwOVBTQmNJblpwZEdVNmFXNTJiMnRsWENJcElIdGNibHgwWEhSY2RGeDBYSFJjZEdOdmJuTjBJR1JoZEdFZ1BTQndZWGxzYjJGa0xtUmhkR0U3WEc1Y2RGeDBYSFJjZEZ4MFhIUnBaaUFvWkdGMFlTNXBaQzV6ZEdGeWRITlhhWFJvS0Z3aWNtVnpjRzl1YzJVNlhDSXBLU0I3WEc1Y2RGeDBYSFJjZEZ4MFhIUmNkR052Ym5OMElHbHVkbTlyWlVsa0lEMGdaR0YwWVM1cFpDNXpiR2xqWlNnNUtUdGNibHgwWEhSY2RGeDBYSFJjZEZ4MFkyOXVjM1FnY0hKdmJXbHpaU0E5SUhKd1kxQnliMjFwYzJWekxtZGxkQ2hwYm5admEyVkpaQ2s3WEc1Y2RGeDBYSFJjZEZ4MFhIUmNkR2xtSUNnaGNISnZiV2x6WlNrZ2NtVjBkWEp1TzF4dVhIUmNkRngwWEhSY2RGeDBYSFJwWmlBb2NISnZiV2x6WlM1MGFXMWxiM1YwU1dRcElHTnNaV0Z5VkdsdFpXOTFkQ2h3Y205dGFYTmxMblJwYldWdmRYUkpaQ2s3WEc1Y2RGeDBYSFJjZEZ4MFhIUmNkSEp3WTFCeWIyMXBjMlZ6TG1SbGJHVjBaU2hwYm5admEyVkpaQ2s3WEc1Y2RGeDBYSFJjZEZ4MFhIUmNkR052Ym5OMElIc2daWEp5YjNJc0lISmxjM1ZzZENCOUlEMGdaR0YwWVM1a1lYUmhPMXh1WEhSY2RGeDBYSFJjZEZ4MFhIUnBaaUFvWlhKeWIzSXBJSEJ5YjIxcGMyVXVjbVZxWldOMEtHVnljbTl5S1R0Y2JseDBYSFJjZEZ4MFhIUmNkRngwWld4elpTQndjbTl0YVhObExuSmxjMjlzZG1Vb2NtVnpkV3gwS1R0Y2JseDBYSFJjZEZ4MFhIUmNkRngwY21WMGRYSnVPMXh1WEhSY2RGeDBYSFJjZEZ4MGZWeHVYSFJjZEZ4MFhIUmNkSDFjYmx4MFhIUmNkRngwWEhSdmJrMWxjM05oWjJVb2NHRjViRzloWkNrN1hHNWNkRngwWEhSY2RIMHNYRzVjZEZ4MFhIUmNkRzl1UkdselkyOXVibVZqZEdsdmJseHVYSFJjZEZ4MGZTazdYRzVjZEZ4MGZTeGNibHgwWEhSa2FYTmpiMjV1WldOMEtDa2dlMXh1WEhSY2RGeDBjbkJqVUhKdmJXbHpaWE11Wm05eVJXRmphQ2dvY0hKdmJXbHpaU2tnUFQ0Z2UxeHVYSFJjZEZ4MFhIUndjbTl0YVhObExuSmxhbVZqZENndktpQkFYMTlRVlZKRlgxOGdLaThnYm1WM0lFVnljbTl5S0dCMGNtRnVjM0J2Y25RZ2QyRnpJR1JwYzJOdmJtNWxZM1JsWkN3Z1kyRnVibTkwSUdOaGJHd2dKSHRLVTA5T0xuTjBjbWx1WjJsbWVTaHdjbTl0YVhObExtNWhiV1VwZldBcEtUdGNibHgwWEhSY2RIMHBPMXh1WEhSY2RGeDBjbkJqVUhKdmJXbHpaWE11WTJ4bFlYSW9LVHRjYmx4MFhIUmNkSEpsZEhWeWJpQjBjbUZ1YzNCdmNuUWtNUzVrYVhOamIyNXVaV04wUHk0b0tUdGNibHgwWEhSOUxGeHVYSFJjZEhObGJtUW9aR0YwWVNrZ2UxeHVYSFJjZEZ4MGNtVjBkWEp1SUhSeVlXNXpjRzl5ZENReExuTmxibVFvWkdGMFlTazdYRzVjZEZ4MGZTeGNibHgwWEhSaGMzbHVZeUJwYm5admEyVW9ibUZ0WlN3Z1pHRjBZU2tnZTF4dVhIUmNkRngwWTI5dWMzUWdjSEp2YldselpVbGtJRDBnYm1GdWIybGtLQ2s3WEc1Y2RGeDBYSFJqYjI1emRDQjNjbUZ3Y0dWa1JHRjBZU0E5SUh0Y2JseDBYSFJjZEZ4MGRIbHdaVG9nWENKamRYTjBiMjFjSWl4Y2JseDBYSFJjZEZ4MFpYWmxiblE2SUZ3aWRtbDBaVHBwYm5admEyVmNJaXhjYmx4MFhIUmNkRngwWkdGMFlUb2dlMXh1WEhSY2RGeDBYSFJjZEc1aGJXVXNYRzVjZEZ4MFhIUmNkRngwYVdRNklHQnpaVzVrT2lSN2NISnZiV2x6WlVsa2ZXQXNYRzVjZEZ4MFhIUmNkRngwWkdGMFlWeHVYSFJjZEZ4MFhIUjlYRzVjZEZ4MFhIUjlPMXh1WEhSY2RGeDBZMjl1YzNRZ2MyVnVaRkJ5YjIxcGMyVWdQU0IwY21GdWMzQnZjblFrTVM1elpXNWtLSGR5WVhCd1pXUkVZWFJoS1R0Y2JseDBYSFJjZEdOdmJuTjBJSHNnY0hKdmJXbHpaU3dnY21WemIyeDJaU3dnY21WcVpXTjBJSDBnUFNCd2NtOXRhWE5sVjJsMGFGSmxjMjlzZG1WeWN5Z3BPMXh1WEhSY2RGeDBZMjl1YzNRZ2RHbHRaVzkxZENBOUlIUnlZVzV6Y0c5eWRDUXhMblJwYldWdmRYUWdQejhnTm1VME8xeHVYSFJjZEZ4MGJHVjBJSFJwYldWdmRYUkpaRHRjYmx4MFhIUmNkR2xtSUNoMGFXMWxiM1YwSUQ0Z01Da2dlMXh1WEhSY2RGeDBYSFIwYVcxbGIzVjBTV1FnUFNCelpYUlVhVzFsYjNWMEtDZ3BJRDArSUh0Y2JseDBYSFJjZEZ4MFhIUnljR05RY205dGFYTmxjeTVrWld4bGRHVW9jSEp2YldselpVbGtLVHRjYmx4MFhIUmNkRngwWEhSeVpXcGxZM1FvTHlvZ1FGOWZVRlZTUlY5ZklDb3ZJRzVsZHlCRmNuSnZjaWhnZEhKaGJuTndiM0owSUdsdWRtOXJaU0IwYVcxbFpDQnZkWFFnWVdaMFpYSWdKSHQwYVcxbGIzVjBmVzF6SUNoa1lYUmhPaUFrZTBwVFQwNHVjM1J5YVc1bmFXWjVLSGR5WVhCd1pXUkVZWFJoS1gwcFlDa3BPMXh1WEhSY2RGeDBYSFI5TENCMGFXMWxiM1YwS1R0Y2JseDBYSFJjZEZ4MGRHbHRaVzkxZEVsa1B5NTFibkpsWmo4dUtDazdYRzVjZEZ4MFhIUjlYRzVjZEZ4MFhIUnljR05RY205dGFYTmxjeTV6WlhRb2NISnZiV2x6WlVsa0xDQjdYRzVjZEZ4MFhIUmNkSEpsYzI5c2RtVXNYRzVjZEZ4MFhIUmNkSEpsYW1WamRDeGNibHgwWEhSY2RGeDBibUZ0WlN4Y2JseDBYSFJjZEZ4MGRHbHRaVzkxZEVsa1hHNWNkRngwWEhSOUtUdGNibHgwWEhSY2RHbG1JQ2h6Wlc1a1VISnZiV2x6WlNrZ2MyVnVaRkJ5YjIxcGMyVXVZMkYwWTJnb0tHVnljaWtnUFQ0Z2UxeHVYSFJjZEZ4MFhIUmpiR1ZoY2xScGJXVnZkWFFvZEdsdFpXOTFkRWxrS1R0Y2JseDBYSFJjZEZ4MGNuQmpVSEp2YldselpYTXVaR1ZzWlhSbEtIQnliMjFwYzJWSlpDazdYRzVjZEZ4MFhIUmNkSEpsYW1WamRDaGxjbklwTzF4dVhIUmNkRngwZlNrN1hHNWNkRngwWEhSMGNua2dlMXh1WEhSY2RGeDBYSFJ5WlhSMWNtNGdZWGRoYVhRZ2NISnZiV2x6WlR0Y2JseDBYSFJjZEgwZ1kyRjBZMmdnS0dWeWNpa2dlMXh1WEhSY2RGeDBYSFIwYUhKdmR5QnlaWFpwZG1WSmJuWnZhMlZGY25KdmNpaGxjbklwTzF4dVhIUmNkRngwZlZ4dVhIUmNkSDFjYmx4MGZUdGNibjA3WEc1amIyNXpkQ0J1YjNKdFlXeHBlbVZOYjJSMWJHVlNkVzV1WlhKVWNtRnVjM0J2Y25RZ1BTQW9kSEpoYm5Od2IzSjBKREVwSUQwK0lIdGNibHgwWTI5dWMzUWdhVzUyYjJ0bFlXSnNaVlJ5WVc1emNHOXlkQ0E5SUdOeVpXRjBaVWx1ZG05clpXRmliR1ZVY21GdWMzQnZjblFvZEhKaGJuTndiM0owSkRFcE8xeHVYSFJzWlhRZ2FYTkRiMjV1WldOMFpXUWdQU0FoYVc1MmIydGxZV0pzWlZSeVlXNXpjRzl5ZEM1amIyNXVaV04wTzF4dVhIUnNaWFFnWTI5dWJtVmpkR2x1WjFCeWIyMXBjMlU3WEc1Y2RISmxkSFZ5YmlCN1hHNWNkRngwTGk0dWRISmhibk53YjNKMEpERXNYRzVjZEZ4MExpNHVhVzUyYjJ0bFlXSnNaVlJ5WVc1emNHOXlkQzVqYjI1dVpXTjBJRDhnZXlCaGMzbHVZeUJqYjI1dVpXTjBLRzl1VFdWemMyRm5aU2tnZTF4dVhIUmNkRngwYVdZZ0tHbHpRMjl1Ym1WamRHVmtLU0J5WlhSMWNtNDdYRzVjZEZ4MFhIUnBaaUFvWTI5dWJtVmpkR2x1WjFCeWIyMXBjMlVwSUh0Y2JseDBYSFJjZEZ4MFlYZGhhWFFnWTI5dWJtVmpkR2x1WjFCeWIyMXBjMlU3WEc1Y2RGeDBYSFJjZEhKbGRIVnlianRjYmx4MFhIUmNkSDFjYmx4MFhIUmNkR052Ym5OMElHMWhlV0psVUhKdmJXbHpaU0E5SUdsdWRtOXJaV0ZpYkdWVWNtRnVjM0J2Y25RdVkyOXVibVZqZENoN1hHNWNkRngwWEhSY2RHOXVUV1Z6YzJGblpUb2diMjVOWlhOellXZGxJRDgvSUNnb0tTQTlQaUI3ZlNrc1hHNWNkRngwWEhSY2RHOXVSR2x6WTI5dWJtVmpkR2x2YmlncElIdGNibHgwWEhSY2RGeDBYSFJwYzBOdmJtNWxZM1JsWkNBOUlHWmhiSE5sTzF4dVhIUmNkRngwWEhSOVhHNWNkRngwWEhSOUtUdGNibHgwWEhSY2RHbG1JQ2h0WVhsaVpWQnliMjFwYzJVcElIdGNibHgwWEhSY2RGeDBZMjl1Ym1WamRHbHVaMUJ5YjIxcGMyVWdQU0J0WVhsaVpWQnliMjFwYzJVN1hHNWNkRngwWEhSY2RHRjNZV2wwSUdOdmJtNWxZM1JwYm1kUWNtOXRhWE5sTzF4dVhIUmNkRngwWEhSamIyNXVaV04wYVc1blVISnZiV2x6WlNBOUlIWnZhV1FnTUR0Y2JseDBYSFJjZEgxY2JseDBYSFJjZEdselEyOXVibVZqZEdWa0lEMGdkSEoxWlR0Y2JseDBYSFI5SUgwZ09pQjdmU3hjYmx4MFhIUXVMaTVwYm5admEyVmhZbXhsVkhKaGJuTndiM0owTG1ScGMyTnZibTVsWTNRZ1B5QjdJR0Z6ZVc1aklHUnBjMk52Ym01bFkzUW9LU0I3WEc1Y2RGeDBYSFJwWmlBb0lXbHpRMjl1Ym1WamRHVmtLU0J5WlhSMWNtNDdYRzVjZEZ4MFhIUnBaaUFvWTI5dWJtVmpkR2x1WjFCeWIyMXBjMlVwSUdGM1lXbDBJR052Ym01bFkzUnBibWRRY205dGFYTmxPMXh1WEhSY2RGeDBhWE5EYjI1dVpXTjBaV1FnUFNCbVlXeHpaVHRjYmx4MFhIUmNkR0YzWVdsMElHbHVkbTlyWldGaWJHVlVjbUZ1YzNCdmNuUXVaR2x6WTI5dWJtVmpkQ2dwTzF4dVhIUmNkSDBnZlNBNklIdDlMRnh1WEhSY2RHRnplVzVqSUhObGJtUW9aR0YwWVNrZ2UxeHVYSFJjZEZ4MGFXWWdLQ0ZwYm5admEyVmhZbXhsVkhKaGJuTndiM0owTG5ObGJtUXBJSEpsZEhWeWJqdGNibHgwWEhSY2RHbG1JQ2doYVhORGIyNXVaV04wWldRcElHbG1JQ2hqYjI1dVpXTjBhVzVuVUhKdmJXbHpaU2tnWVhkaGFYUWdZMjl1Ym1WamRHbHVaMUJ5YjIxcGMyVTdYRzVjZEZ4MFhIUmxiSE5sSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSW5ObGJtUWdkMkZ6SUdOaGJHeGxaQ0JpWldadmNtVWdZMjl1Ym1WamRGd2lLVHRjYmx4MFhIUmNkR0YzWVdsMElHbHVkbTlyWldGaWJHVlVjbUZ1YzNCdmNuUXVjMlZ1WkNoa1lYUmhLVHRjYmx4MFhIUjlMRnh1WEhSY2RHRnplVzVqSUdsdWRtOXJaU2h1WVcxbExDQmtZWFJoS1NCN1hHNWNkRngwWEhScFppQW9JV2x6UTI5dWJtVmpkR1ZrS1NCcFppQW9ZMjl1Ym1WamRHbHVaMUJ5YjIxcGMyVXBJR0YzWVdsMElHTnZibTVsWTNScGJtZFFjbTl0YVhObE8xeHVYSFJjZEZ4MFpXeHpaU0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0pwYm5admEyVWdkMkZ6SUdOaGJHeGxaQ0JpWldadmNtVWdZMjl1Ym1WamRGd2lLVHRjYmx4MFhIUmNkSEpsZEhWeWJpQnBiblp2YTJWaFlteGxWSEpoYm5Od2IzSjBMbWx1ZG05clpTaHVZVzFsTENCa1lYUmhLVHRjYmx4MFhIUjlYRzVjZEgwN1hHNTlPMXh1WTI5dWMzUWdZM0psWVhSbFYyVmlVMjlqYTJWMFRXOWtkV3hsVW5WdWJtVnlWSEpoYm5Od2IzSjBJRDBnS0c5d2RHbHZibk1wSUQwK0lIdGNibHgwWTI5dWMzUWdjR2x1WjBsdWRHVnlkbUZzSUQwZ2IzQjBhVzl1Y3k1d2FXNW5TVzUwWlhKMllXd2dQejhnTTJVME8xeHVYSFJzWlhRZ2QzTTdYRzVjZEd4bGRDQndhVzVuU1c1MFpYSjJZV3hKWkR0Y2JseDBjbVYwZFhKdUlIdGNibHgwWEhSaGMzbHVZeUJqYjI1dVpXTjBLSHNnYjI1TlpYTnpZV2RsTENCdmJrUnBjMk52Ym01bFkzUnBiMjRnZlNrZ2UxeHVYSFJjZEZ4MFkyOXVjM1FnYzI5amEyVjBJRDBnYjNCMGFXOXVjeTVqY21WaGRHVkRiMjV1WldOMGFXOXVLQ2s3WEc1Y2RGeDBYSFJ6YjJOclpYUXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpaGNJbTFsYzNOaFoyVmNJaXdnWVhONWJtTWdLSHNnWkdGMFlTQjlLU0E5UGlCN1hHNWNkRngwWEhSY2RHOXVUV1Z6YzJGblpTaEtVMDlPTG5CaGNuTmxLR1JoZEdFcEtUdGNibHgwWEhSY2RIMHBPMXh1WEhSY2RGeDBiR1YwSUdselQzQmxibVZrSUQwZ2MyOWphMlYwTG5KbFlXUjVVM1JoZEdVZ1BUMDlJSE52WTJ0bGRDNVBVRVZPTzF4dVhIUmNkRngwYVdZZ0tDRnBjMDl3Wlc1bFpDa2dZWGRoYVhRZ2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dVhIUmNkRngwWEhSemIyTnJaWFF1WVdSa1JYWmxiblJNYVhOMFpXNWxjaWhjSW05d1pXNWNJaXdnS0NrZ1BUNGdlMXh1WEhSY2RGeDBYSFJjZEdselQzQmxibVZrSUQwZ2RISjFaVHRjYmx4MFhIUmNkRngwWEhSeVpYTnZiSFpsS0NrN1hHNWNkRngwWEhSY2RIMHNJSHNnYjI1alpUb2dkSEoxWlNCOUtUdGNibHgwWEhSY2RGeDBjMjlqYTJWMExtRmtaRVYyWlc1MFRHbHpkR1Z1WlhJb1hDSmpiRzl6WlZ3aUxDQmhjM2x1WXlBb0tTQTlQaUI3WEc1Y2RGeDBYSFJjZEZ4MGFXWWdLQ0ZwYzA5d1pXNWxaQ2tnZTF4dVhIUmNkRngwWEhSY2RGeDBjbVZxWldOMEtDOHFJRUJmWDFCVlVrVmZYeUFxTHlCdVpYY2dSWEp5YjNJb1hDSlhaV0pUYjJOclpYUWdZMnh2YzJWa0lIZHBkR2h2ZFhRZ2IzQmxibVZrTGx3aUtTazdYRzVjZEZ4MFhIUmNkRngwWEhSeVpYUjFjbTQ3WEc1Y2RGeDBYSFJjZEZ4MGZWeHVYSFJjZEZ4MFhIUmNkRzl1VFdWemMyRm5aU2g3WEc1Y2RGeDBYSFJjZEZ4MFhIUjBlWEJsT2lCY0ltTjFjM1J2YlZ3aUxGeHVYSFJjZEZ4MFhIUmNkRngwWlhabGJuUTZJRndpZG1sMFpUcDNjenBrYVhOamIyNXVaV04wWENJc1hHNWNkRngwWEhSY2RGeDBYSFJrWVhSaE9pQjdJSGRsWWxOdlkydGxkRG9nYzI5amEyVjBJSDFjYmx4MFhIUmNkRngwWEhSOUtUdGNibHgwWEhSY2RGeDBYSFJ2YmtScGMyTnZibTVsWTNScGIyNG9LVHRjYmx4MFhIUmNkRngwZlNrN1hHNWNkRngwWEhSOUtUdGNibHgwWEhSY2RHOXVUV1Z6YzJGblpTaDdYRzVjZEZ4MFhIUmNkSFI1Y0dVNklGd2lZM1Z6ZEc5dFhDSXNYRzVjZEZ4MFhIUmNkR1YyWlc1ME9pQmNJblpwZEdVNmQzTTZZMjl1Ym1WamRGd2lMRnh1WEhSY2RGeDBYSFJrWVhSaE9pQjdJSGRsWWxOdlkydGxkRG9nYzI5amEyVjBJSDFjYmx4MFhIUmNkSDBwTzF4dVhIUmNkRngwZDNNZ1BTQnpiMk5yWlhRN1hHNWNkRngwWEhSd2FXNW5TVzUwWlhKMllXeEpaQ0E5SUhObGRFbHVkR1Z5ZG1Gc0tDZ3BJRDArSUh0Y2JseDBYSFJjZEZ4MGFXWWdLSE52WTJ0bGRDNXlaV0ZrZVZOMFlYUmxJRDA5UFNCemIyTnJaWFF1VDFCRlRpa2djMjlqYTJWMExuTmxibVFvU2xOUFRpNXpkSEpwYm1kcFpua29leUIwZVhCbE9pQmNJbkJwYm1kY0lpQjlLU2s3WEc1Y2RGeDBYSFI5TENCd2FXNW5TVzUwWlhKMllXd3BPMXh1WEhSY2RIMHNYRzVjZEZ4MFpHbHpZMjl1Ym1WamRDZ3BJSHRjYmx4MFhIUmNkR05zWldGeVNXNTBaWEoyWVd3b2NHbHVaMGx1ZEdWeWRtRnNTV1FwTzF4dVhIUmNkRngwZDNNL0xtTnNiM05sS0NrN1hHNWNkRngwZlN4Y2JseDBYSFJ6Wlc1a0tHUmhkR0VwSUh0Y2JseDBYSFJjZEhkekxuTmxibVFvU2xOUFRpNXpkSEpwYm1kcFpua29aR0YwWVNrcE8xeHVYSFJjZEgxY2JseDBmVHRjYm4wN1hHNWNiaTh2STJWdVpISmxaMmx2Ymx4dUx5OGpjbVZuYVc5dUlITnlZeTl6YUdGeVpXUXZhRzF5U0dGdVpHeGxjaTUwYzF4dVpuVnVZM1JwYjI0Z1kzSmxZWFJsU0UxU1NHRnVaR3hsY2lob1lXNWtiR1Z5S1NCN1hHNWNkR052Ym5OMElIRjFaWFZsSUQwZ2JtVjNJRkYxWlhWbEtDazdYRzVjZEhKbGRIVnliaUFvY0dGNWJHOWhaQ2tnUFQ0Z2NYVmxkV1V1Wlc1eGRXVjFaU2dvS1NBOVBpQm9ZVzVrYkdWeUtIQmhlV3h2WVdRcEtUdGNibjFjYm5aaGNpQlJkV1YxWlNBOUlHTnNZWE56SUh0Y2JseDBZMjl1YzNSeWRXTjBiM0lvS1NCN1hHNWNkRngwWDJSbFptbHVaVkJ5YjNCbGNuUjVLSFJvYVhNc0lGd2ljWFZsZFdWY0lpd2dXMTBwTzF4dVhIUmNkRjlrWldacGJtVlFjbTl3WlhKMGVTaDBhR2x6TENCY0luQmxibVJwYm1kY0lpd2dabUZzYzJVcE8xeHVYSFI5WEc1Y2RHVnVjWFZsZFdVb2NISnZiV2x6WlNrZ2UxeHVYSFJjZEhKbGRIVnliaUJ1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlN3Z2NtVnFaV04wS1NBOVBpQjdYRzVjZEZ4MFhIUjBhR2x6TG5GMVpYVmxMbkIxYzJnb2UxeHVYSFJjZEZ4MFhIUndjbTl0YVhObExGeHVYSFJjZEZ4MFhIUnlaWE52YkhabExGeHVYSFJjZEZ4MFhIUnlaV3BsWTNSY2JseDBYSFJjZEgwcE8xeHVYSFJjZEZ4MGRHaHBjeTVrWlhGMVpYVmxLQ2s3WEc1Y2RGeDBmU2s3WEc1Y2RIMWNibHgwWkdWeGRXVjFaU2dwSUh0Y2JseDBYSFJwWmlBb2RHaHBjeTV3Wlc1a2FXNW5LU0J5WlhSMWNtNGdabUZzYzJVN1hHNWNkRngwWTI5dWMzUWdhWFJsYlNBOUlIUm9hWE11Y1hWbGRXVXVjMmhwWm5Rb0tUdGNibHgwWEhScFppQW9JV2wwWlcwcElISmxkSFZ5YmlCbVlXeHpaVHRjYmx4MFhIUjBhR2x6TG5CbGJtUnBibWNnUFNCMGNuVmxPMXh1WEhSY2RHbDBaVzB1Y0hKdmJXbHpaU2dwTG5Sb1pXNG9hWFJsYlM1eVpYTnZiSFpsS1M1allYUmphQ2hwZEdWdExuSmxhbVZqZENrdVptbHVZV3hzZVNnb0tTQTlQaUI3WEc1Y2RGeDBYSFIwYUdsekxuQmxibVJwYm1jZ1BTQm1ZV3h6WlR0Y2JseDBYSFJjZEhSb2FYTXVaR1Z4ZFdWMVpTZ3BPMXh1WEhSY2RIMHBPMXh1WEhSY2RISmxkSFZ5YmlCMGNuVmxPMXh1WEhSOVhHNTlPMXh1WEc0dkx5TmxibVJ5WldkcGIyNWNiaTh2STNKbFoybHZiaUJ6Y21NdlkyeHBaVzUwTDI5MlpYSnNZWGt1ZEhOY2JtTnZibk4wSUdodGNrTnZibVpwWjA1aGJXVWdQU0JjSW5acGRHVXVZMjl1Wm1sbkxuUnpYQ0k3WEc1amIyNXpkQ0JpWVhObEpERWdQU0JjSWk5Y0lpQjhmQ0JjSWk5Y0lqdGNibU52Ym5OMElHTnpjRTV2Ym1ObElEMGdYQ0prYjJOMWJXVnVkRndpSUdsdUlHZHNiMkpoYkZSb2FYTWdQeUJrYjJOMWJXVnVkQzV4ZFdWeWVWTmxiR1ZqZEc5eUtGd2liV1YwWVZ0d2NtOXdaWEowZVQxamMzQXRibTl1WTJWZFhDSXBQeTV1YjI1alpTQTZJSFp2YVdRZ01EdGNibVoxYm1OMGFXOXVJR2dvWlN3Z1lYUjBjbk1nUFNCN2ZTd2dMaTR1WTJocGJHUnlaVzRwSUh0Y2JseDBZMjl1YzNRZ1pXeGxiU0E5SUdSdlkzVnRaVzUwTG1OeVpXRjBaVVZzWlcxbGJuUW9aU2s3WEc1Y2RHWnZjaUFvWTI5dWMzUWdXMnNzSUhaZElHOW1JRTlpYW1WamRDNWxiblJ5YVdWektHRjBkSEp6S1NrZ2FXWWdLSFlnSVQwOUlIWnZhV1FnTUNrZ1pXeGxiUzV6WlhSQmRIUnlhV0oxZEdVb2F5d2dkaWs3WEc1Y2RHVnNaVzB1WVhCd1pXNWtLQzR1TG1Ob2FXeGtjbVZ1S1R0Y2JseDBjbVYwZFhKdUlHVnNaVzA3WEc1OVhHNWpiMjV6ZENCMFpXMXdiR0YwWlZOMGVXeGxJRDBnWUZ4dU9taHZjM1FnZTF4dUlDQndiM05wZEdsdmJqb2dabWw0WldRN1hHNGdJSFJ2Y0RvZ01EdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2QybGtkR2c2SURFd01DVTdYRzRnSUdobGFXZG9kRG9nTVRBd0pUdGNiaUFnZWkxcGJtUmxlRG9nT1RrNU9UazdYRzRnSUMwdGJXOXViM053WVdObE9pQW5VMFpOYjI1dkxWSmxaM1ZzWVhJbkxDQkRiMjV6YjJ4aGN5eGNiaUFnSjB4cFltVnlZWFJwYjI0Z1RXOXVieWNzSUUxbGJteHZMQ0JEYjNWeWFXVnlMQ0J0YjI1dmMzQmhZMlU3WEc0Z0lDMHRjbVZrT2lBalptWTFOVFUxTzF4dUlDQXRMWGxsYkd4dmR6b2dJMlV5WVdFMU16dGNiaUFnTFMxd2RYSndiR1U2SUNOalptRTBabVk3WEc0Z0lDMHRZM2xoYmpvZ0l6SmtaRGxrWVR0Y2JpQWdMUzFrYVcwNklDTmpPV001WXprN1hHNWNiaUFnTFMxM2FXNWtiM2N0WW1GamEyZHliM1Z1WkRvZ0l6RTRNVGd4T0R0Y2JpQWdMUzEzYVc1a2IzY3RZMjlzYjNJNklDTmtPR1E0WkRnN1hHNTlYRzVjYmk1aVlXTnJaSEp2Y0NCN1hHNGdJSEJ2YzJsMGFXOXVPaUJtYVhobFpEdGNiaUFnZWkxcGJtUmxlRG9nT1RrNU9UazdYRzRnSUhSdmNEb2dNRHRjYmlBZ2JHVm1kRG9nTUR0Y2JpQWdkMmxrZEdnNklERXdNQ1U3WEc0Z0lHaGxhV2RvZERvZ01UQXdKVHRjYmlBZ2IzWmxjbVpzYjNjdGVUb2djMk55YjJ4c08xeHVJQ0J0WVhKbmFXNDZJREE3WEc0Z0lHSmhZMnRuY205MWJtUTZJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNDJOaWs3WEc1OVhHNWNiaTUzYVc1a2IzY2dlMXh1SUNCbWIyNTBMV1poYldsc2VUb2dkbUZ5S0MwdGJXOXViM053WVdObEtUdGNiaUFnYkdsdVpTMW9aV2xuYUhRNklERXVOVHRjYmlBZ2JXRjRMWGRwWkhSb09pQTRNSFozTzF4dUlDQmpiMnh2Y2pvZ2RtRnlLQzB0ZDJsdVpHOTNMV052Ykc5eUtUdGNiaUFnWW05NExYTnBlbWx1WnpvZ1ltOXlaR1Z5TFdKdmVEdGNiaUFnYldGeVoybHVPaUF6TUhCNElHRjFkRzg3WEc0Z0lIQmhaR1JwYm1jNklESXVOWFpvSURSMmR6dGNiaUFnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dUlDQmlZV05yWjNKdmRXNWtPaUIyWVhJb0xTMTNhVzVrYjNjdFltRmphMmR5YjNWdVpDazdYRzRnSUdKdmNtUmxjaTF5WVdScGRYTTZJRFp3ZUNBMmNIZ2dPSEI0SURod2VEdGNiaUFnWW05NExYTm9ZV1J2ZHpvZ01DQXhPWEI0SURNNGNIZ2djbWRpWVNnd0xEQXNNQ3d3TGpNd0tTd2dNQ0F4TlhCNElERXljSGdnY21kaVlTZ3dMREFzTUN3d0xqSXlLVHRjYmlBZ2IzWmxjbVpzYjNjNklHaHBaR1JsYmp0Y2JpQWdZbTl5WkdWeUxYUnZjRG9nT0hCNElITnZiR2xrSUhaaGNpZ3RMWEpsWkNrN1hHNGdJR1JwY21WamRHbHZiam9nYkhSeU8xeHVJQ0IwWlhoMExXRnNhV2R1T2lCc1pXWjBPMXh1ZlZ4dVhHNXdjbVVnZTF4dUlDQm1iMjUwTFdaaGJXbHNlVG9nZG1GeUtDMHRiVzl1YjNOd1lXTmxLVHRjYmlBZ1ptOXVkQzF6YVhwbE9pQXhObkI0TzF4dUlDQnRZWEpuYVc0dGRHOXdPaUF3TzF4dUlDQnRZWEpuYVc0dFltOTBkRzl0T2lBeFpXMDdYRzRnSUc5MlpYSm1iRzkzTFhnNklITmpjbTlzYkR0Y2JpQWdjMk55YjJ4c1ltRnlMWGRwWkhSb09pQnViMjVsTzF4dWZWeHVYRzV3Y21VNk9pMTNaV0pyYVhRdGMyTnliMnhzWW1GeUlIdGNiaUFnWkdsemNHeGhlVG9nYm05dVpUdGNibjFjYmx4dWNISmxMbVp5WVcxbE9qb3RkMlZpYTJsMExYTmpjbTlzYkdKaGNpQjdYRzRnSUdScGMzQnNZWGs2SUdKc2IyTnJPMXh1SUNCb1pXbG5hSFE2SURWd2VEdGNibjFjYmx4dWNISmxMbVp5WVcxbE9qb3RkMlZpYTJsMExYTmpjbTlzYkdKaGNpMTBhSFZ0WWlCN1hHNGdJR0poWTJ0bmNtOTFibVE2SUNNNU9UazdYRzRnSUdKdmNtUmxjaTF5WVdScGRYTTZJRFZ3ZUR0Y2JuMWNibHh1Y0hKbExtWnlZVzFsSUh0Y2JpQWdjMk55YjJ4c1ltRnlMWGRwWkhSb09pQjBhR2x1TzF4dWZWeHVYRzR1YldWemMyRm5aU0I3WEc0Z0lHeHBibVV0YUdWcFoyaDBPaUF4TGpNN1hHNGdJR1p2Ym5RdGQyVnBaMmgwT2lBMk1EQTdYRzRnSUhkb2FYUmxMWE53WVdObE9pQndjbVV0ZDNKaGNEdGNibjFjYmx4dUxtMWxjM05oWjJVdFltOWtlU0I3WEc0Z0lHTnZiRzl5T2lCMllYSW9MUzF5WldRcE8xeHVmVnh1WEc0dWNHeDFaMmx1SUh0Y2JpQWdZMjlzYjNJNklIWmhjaWd0TFhCMWNuQnNaU2s3WEc1OVhHNWNiaTVtYVd4bElIdGNiaUFnWTI5c2IzSTZJSFpoY2lndExXTjVZVzRwTzF4dUlDQnRZWEpuYVc0dFltOTBkRzl0T2lBd08xeHVJQ0IzYUdsMFpTMXpjR0ZqWlRvZ2NISmxMWGR5WVhBN1hHNGdJSGR2Y21RdFluSmxZV3M2SUdKeVpXRnJMV0ZzYkR0Y2JuMWNibHh1TG1aeVlXMWxJSHRjYmlBZ1kyOXNiM0k2SUhaaGNpZ3RMWGxsYkd4dmR5azdYRzU5WEc1Y2JpNXpkR0ZqYXlCN1hHNGdJR1p2Ym5RdGMybDZaVG9nTVROd2VEdGNiaUFnWTI5c2IzSTZJSFpoY2lndExXUnBiU2s3WEc1OVhHNWNiaTUwYVhBZ2UxeHVJQ0JtYjI1MExYTnBlbVU2SURFemNIZzdYRzRnSUdOdmJHOXlPaUFqT1RrNU8xeHVJQ0JpYjNKa1pYSXRkRzl3T2lBeGNIZ2daRzkwZEdWa0lDTTVPVGs3WEc0Z0lIQmhaR1JwYm1jdGRHOXdPaUF4TTNCNE8xeHVJQ0JzYVc1bExXaGxhV2RvZERvZ01TNDRPMXh1ZlZ4dVhHNWpiMlJsSUh0Y2JpQWdabTl1ZEMxemFYcGxPaUF4TTNCNE8xeHVJQ0JtYjI1MExXWmhiV2xzZVRvZ2RtRnlLQzB0Ylc5dWIzTndZV05sS1R0Y2JpQWdZMjlzYjNJNklIWmhjaWd0TFhsbGJHeHZkeWs3WEc1OVhHNWNiaTVtYVd4bExXeHBibXNnZTF4dUlDQjBaWGgwTFdSbFkyOXlZWFJwYjI0NklIVnVaR1Z5YkdsdVpUdGNiaUFnWTNWeWMyOXlPaUJ3YjJsdWRHVnlPMXh1ZlZ4dVhHNXJZbVFnZTF4dUlDQnNhVzVsTFdobGFXZG9kRG9nTVM0MU8xeHVJQ0JtYjI1MExXWmhiV2xzZVRvZ2RXa3RiVzl1YjNOd1lXTmxMQ0JOWlc1c2J5d2dUVzl1WVdOdkxDQkRiMjV6YjJ4aGN5d2dYQ0pNYVdKbGNtRjBhVzl1SUUxdmJtOWNJaXdnWENKRGIzVnlhV1Z5SUU1bGQxd2lMQ0J0YjI1dmMzQmhZMlU3WEc0Z0lHWnZiblF0YzJsNlpUb2dNQzQzTlhKbGJUdGNiaUFnWm05dWRDMTNaV2xuYUhRNklEY3dNRHRjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2NtZGlLRE00TENBME1Dd2dORFFwTzF4dUlDQmpiMnh2Y2pvZ2NtZGlLREUyTml3Z01UWTNMQ0F4TnpFcE8xeHVJQ0J3WVdSa2FXNW5PaUF3TGpFMWNtVnRJREF1TTNKbGJUdGNiaUFnWW05eVpHVnlMWEpoWkdsMWN6b2dNQzR5TlhKbGJUdGNiaUFnWW05eVpHVnlMWGRwWkhSb09pQXdMakEyTWpWeVpXMGdNQzR3TmpJMWNtVnRJREF1TVRnM05YSmxiVHRjYmlBZ1ltOXlaR1Z5TFhOMGVXeGxPaUJ6YjJ4cFpEdGNiaUFnWW05eVpHVnlMV052Ykc5eU9pQnlaMklvTlRRc0lEVTNMQ0EyTkNrN1hHNGdJR0p2Y21SbGNpMXBiV0ZuWlRvZ2FXNXBkR2xoYkR0Y2JuMWNibUE3WEc1amIyNXpkQ0JqY21WaGRHVlVaVzF3YkdGMFpTQTlJQ2dwSUQwK0lHZ29YQ0prYVhaY0lpd2dlMXh1WEhSamJHRnpjem9nWENKaVlXTnJaSEp2Y0Z3aUxGeHVYSFJ3WVhKME9pQmNJbUpoWTJ0a2NtOXdYQ0pjYm4wc0lHZ29YQ0prYVhaY0lpd2dlMXh1WEhSamJHRnpjem9nWENKM2FXNWtiM2RjSWl4Y2JseDBjR0Z5ZERvZ1hDSjNhVzVrYjNkY0lseHVmU3dnYUNoY0luQnlaVndpTENCN1hHNWNkR05zWVhOek9pQmNJbTFsYzNOaFoyVmNJaXhjYmx4MGNHRnlkRG9nWENKdFpYTnpZV2RsWENKY2JuMHNJR2dvWENKemNHRnVYQ0lzSUh0Y2JseDBZMnhoYzNNNklGd2ljR3gxWjJsdVhDSXNYRzVjZEhCaGNuUTZJRndpY0d4MVoybHVYQ0pjYm4wcExDQm9LRndpYzNCaGJsd2lMQ0I3WEc1Y2RHTnNZWE56T2lCY0ltMWxjM05oWjJVdFltOWtlVndpTEZ4dVhIUndZWEowT2lCY0ltMWxjM05oWjJVdFltOWtlVndpWEc1OUtTa3NJR2dvWENKd2NtVmNJaXdnZTF4dVhIUmpiR0Z6Y3pvZ1hDSm1hV3hsWENJc1hHNWNkSEJoY25RNklGd2labWxzWlZ3aVhHNTlLU3dnYUNoY0luQnlaVndpTENCN1hHNWNkR05zWVhOek9pQmNJbVp5WVcxbFhDSXNYRzVjZEhCaGNuUTZJRndpWm5KaGJXVmNJbHh1ZlNrc0lHZ29YQ0p3Y21WY0lpd2dlMXh1WEhSamJHRnpjem9nWENKemRHRmphMXdpTEZ4dVhIUndZWEowT2lCY0luTjBZV05yWENKY2JuMHBMQ0JvS0Z3aVpHbDJYQ0lzSUh0Y2JseDBZMnhoYzNNNklGd2lkR2x3WENJc1hHNWNkSEJoY25RNklGd2lkR2x3WENKY2JuMHNJRndpUTJ4cFkyc2diM1YwYzJsa1pTd2djSEpsYzNNZ1hDSXNJR2dvWENKclltUmNJaXdnZTMwc0lGd2lSWE5qWENJcExDQmNJaUJyWlhrc0lHOXlJR1pwZUNCMGFHVWdZMjlrWlNCMGJ5QmthWE50YVhOekxsd2lMQ0JvS0Z3aVluSmNJaWtzSUZ3aVdXOTFJR05oYmlCaGJITnZJR1JwYzJGaWJHVWdkR2hwY3lCdmRtVnliR0Y1SUdKNUlITmxkSFJwYm1jZ1hDSXNJR2dvWENKamIyUmxYQ0lzSUhzZ2NHRnlkRG9nWENKamIyNW1hV2N0YjNCMGFXOXVMVzVoYldWY0lpQjlMQ0JjSW5ObGNuWmxjaTVvYlhJdWIzWmxjbXhoZVZ3aUtTd2dYQ0lnZEc4Z1hDSXNJR2dvWENKamIyUmxYQ0lzSUhzZ2NHRnlkRG9nWENKamIyNW1hV2N0YjNCMGFXOXVMWFpoYkhWbFhDSWdmU3dnWENKbVlXeHpaVndpS1N3Z1hDSWdhVzRnWENJc0lHZ29YQ0pqYjJSbFhDSXNJSHNnY0dGeWREb2dYQ0pqYjI1bWFXY3RabWxzWlMxdVlXMWxYQ0lnZlN3Z2FHMXlRMjl1Wm1sblRtRnRaU2tzSUZ3aUxsd2lLU2tzSUdnb1hDSnpkSGxzWlZ3aUxDQjdJRzV2Ym1ObE9pQmpjM0JPYjI1alpTQjlMQ0IwWlcxd2JHRjBaVk4wZVd4bEtTazdYRzVqYjI1emRDQm1hV3hsVWtVZ1BTQXZLRDg2Wm1sc1pUcGNYQzljWEM4cFB5Zy9PbHRoTFhwQkxWcGRPbHhjWEZ4OFhGd3ZLUzRxUHpwY1hHUXJPbHhjWkNzdlp6dGNibU52Ym5OMElHTnZaR1ZtY21GdFpWSkZJRDBnTDE0b1B6bytQMXhjY3lwY1hHUXJYRnh6SzF4Y2ZDNHFmRnhjY3l0Y1hIeGNYSE1xWEZ4ZUxpb3BYRnh5UDF4Y2JpOW5iVHRjYm1OdmJuTjBJSHNnU0ZSTlRFVnNaVzFsYm5RZ1BTQmpiR0Z6Y3lCN2ZTQjlJRDBnWjJ4dlltRnNWR2hwY3p0Y2JuWmhjaUJGY25KdmNrOTJaWEpzWVhrZ1BTQmpiR0Z6Y3lCbGVIUmxibVJ6SUVoVVRVeEZiR1Z0Wlc1MElIdGNibHgwWTI5dWMzUnlkV04wYjNJb1pYSnlMQ0JzYVc1cmN5QTlJSFJ5ZFdVcElIdGNibHgwWEhSemRYQmxjaWdwTzF4dVhIUmNkRjlrWldacGJtVlFjbTl3WlhKMGVTaDBhR2x6TENCY0luSnZiM1JjSWl3Z2RtOXBaQ0F3S1R0Y2JseDBYSFJmWkdWbWFXNWxVSEp2Y0dWeWRIa29kR2hwY3l3Z1hDSmpiRzl6WlU5dVJYTmpYQ0lzSUhadmFXUWdNQ2s3WEc1Y2RGeDBkR2hwY3k1eWIyOTBJRDBnZEdocGN5NWhkSFJoWTJoVGFHRmtiM2NvZXlCdGIyUmxPaUJjSW05d1pXNWNJaUI5S1R0Y2JseDBYSFIwYUdsekxuSnZiM1F1WVhCd1pXNWtRMmhwYkdRb1kzSmxZWFJsVkdWdGNHeGhkR1VvS1NrN1hHNWNkRngwWTI5a1pXWnlZVzFsVWtVdWJHRnpkRWx1WkdWNElEMGdNRHRjYmx4MFhIUmpiMjV6ZENCb1lYTkdjbUZ0WlNBOUlHVnljaTVtY21GdFpTQW1KaUJqYjJSbFpuSmhiV1ZTUlM1MFpYTjBLR1Z5Y2k1bWNtRnRaU2s3WEc1Y2RGeDBZMjl1YzNRZ2JXVnpjMkZuWlNBOUlHaGhjMFp5WVcxbElEOGdaWEp5TG0xbGMzTmhaMlV1Y21Wd2JHRmpaU2hqYjJSbFpuSmhiV1ZTUlN3Z1hDSmNJaWtnT2lCbGNuSXViV1Z6YzJGblpUdGNibHgwWEhScFppQW9aWEp5TG5Cc2RXZHBiaWtnZEdocGN5NTBaWGgwS0Z3aUxuQnNkV2RwYmx3aUxDQmdXM0JzZFdkcGJqb2tlMlZ5Y2k1d2JIVm5hVzU5WFNCZ0tUdGNibHgwWEhSMGFHbHpMblJsZUhRb1hDSXViV1Z6YzJGblpTMWliMlI1WENJc0lHMWxjM05oWjJVdWRISnBiU2dwS1R0Y2JseDBYSFJqYjI1emRDQmJabWxzWlYwZ1BTQW9aWEp5TG14dll6OHVabWxzWlNCOGZDQmxjbkl1YVdRZ2ZId2dYQ0oxYm10dWIzZHVJR1pwYkdWY0lpa3VjM0JzYVhRb1lEOWdLVHRjYmx4MFhIUnBaaUFvWlhKeUxteHZZeWtnZEdocGN5NTBaWGgwS0Z3aUxtWnBiR1ZjSWl3Z1lDUjdabWxzWlgwNkpIdGxjbkl1Ykc5akxteHBibVY5T2lSN1pYSnlMbXh2WXk1amIyeDFiVzU5WUN3Z2JHbHVhM01wTzF4dVhIUmNkR1ZzYzJVZ2FXWWdLR1Z5Y2k1cFpDa2dkR2hwY3k1MFpYaDBLRndpTG1acGJHVmNJaXdnWm1sc1pTazdYRzVjZEZ4MGFXWWdLR2hoYzBaeVlXMWxLU0IwYUdsekxuUmxlSFFvWENJdVpuSmhiV1ZjSWl3Z1pYSnlMbVp5WVcxbExuUnlhVzBvS1NrN1hHNWNkRngwZEdocGN5NTBaWGgwS0Z3aUxuTjBZV05yWENJc0lHVnljaTV6ZEdGamF5d2diR2x1YTNNcE8xeHVYSFJjZEhSb2FYTXVjbTl2ZEM1eGRXVnllVk5sYkdWamRHOXlLRndpTG5kcGJtUnZkMXdpS1M1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0Z3aVkyeHBZMnRjSWl3Z0tHVXBJRDArSUh0Y2JseDBYSFJjZEdVdWMzUnZjRkJ5YjNCaFoyRjBhVzl1S0NrN1hHNWNkRngwZlNrN1hHNWNkRngwZEdocGN5NWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtGd2lZMnhwWTJ0Y0lpd2dLQ2tnUFQ0Z2UxeHVYSFJjZEZ4MGRHaHBjeTVqYkc5elpTZ3BPMXh1WEhSY2RIMHBPMXh1WEhSY2RIUm9hWE11WTJ4dmMyVlBia1Z6WXlBOUlDaGxLU0E5UGlCN1hHNWNkRngwWEhScFppQW9aUzVyWlhrZ1BUMDlJRndpUlhOallYQmxYQ0lnZkh3Z1pTNWpiMlJsSUQwOVBTQmNJa1Z6WTJGd1pWd2lLU0IwYUdsekxtTnNiM05sS0NrN1hHNWNkRngwZlR0Y2JseDBYSFJrYjJOMWJXVnVkQzVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLRndpYTJWNVpHOTNibHdpTENCMGFHbHpMbU5zYjNObFQyNUZjMk1wTzF4dVhIUjlYRzVjZEhSbGVIUW9jMlZzWldOMGIzSXNJSFJsZUhRc0lHeHBibXRHYVd4bGN5QTlJR1poYkhObEtTQjdYRzVjZEZ4MFkyOXVjM1FnWld3Z1BTQjBhR2x6TG5KdmIzUXVjWFZsY25sVFpXeGxZM1J2Y2loelpXeGxZM1J2Y2lrN1hHNWNkRngwYVdZZ0tDRnNhVzVyUm1sc1pYTXBJR1ZzTG5SbGVIUkRiMjUwWlc1MElEMGdkR1Y0ZER0Y2JseDBYSFJsYkhObElIdGNibHgwWEhSY2RHeGxkQ0JqZFhKSmJtUmxlQ0E5SURBN1hHNWNkRngwWEhSc1pYUWdiV0YwWTJnN1hHNWNkRngwWEhSbWFXeGxVa1V1YkdGemRFbHVaR1Y0SUQwZ01EdGNibHgwWEhSY2RIZG9hV3hsSUNodFlYUmphQ0E5SUdacGJHVlNSUzVsZUdWaktIUmxlSFFwS1NCN1hHNWNkRngwWEhSY2RHTnZibk4wSUhzZ01Eb2dabWxzWlN3Z2FXNWtaWGdnZlNBOUlHMWhkR05vTzF4dVhIUmNkRngwWEhSamIyNXpkQ0JtY21GbklEMGdkR1Y0ZEM1emJHbGpaU2hqZFhKSmJtUmxlQ3dnYVc1a1pYZ3BPMXh1WEhSY2RGeDBYSFJsYkM1aGNIQmxibVJEYUdsc1pDaGtiMk4xYldWdWRDNWpjbVZoZEdWVVpYaDBUbTlrWlNobWNtRm5LU2s3WEc1Y2RGeDBYSFJjZEdOdmJuTjBJR3hwYm1zZ1BTQmtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Z3aVlWd2lLVHRjYmx4MFhIUmNkRngwYkdsdWF5NTBaWGgwUTI5dWRHVnVkQ0E5SUdacGJHVTdYRzVjZEZ4MFhIUmNkR3hwYm1zdVkyeGhjM05PWVcxbElEMGdYQ0ptYVd4bExXeHBibXRjSWp0Y2JseDBYSFJjZEZ4MGJHbHVheTV2Ym1Oc2FXTnJJRDBnS0NrZ1BUNGdlMXh1WEhSY2RGeDBYSFJjZEdabGRHTm9LRzVsZHlCVlVrd29ZQ1I3WW1GelpTUXhmVjlmYjNCbGJpMXBiaTFsWkdsMGIzSS9abWxzWlQwa2UyVnVZMjlrWlZWU1NVTnZiWEJ2Ym1WdWRDaG1hV3hsS1gxZ0xDQnBiWEJ2Y25RdWJXVjBZUzUxY213cEtUdGNibHgwWEhSY2RGeDBmVHRjYmx4MFhIUmNkRngwWld3dVlYQndaVzVrUTJocGJHUW9iR2x1YXlrN1hHNWNkRngwWEhSY2RHTjFja2x1WkdWNElDczlJR1p5WVdjdWJHVnVaM1JvSUNzZ1ptbHNaUzVzWlc1bmRHZzdYRzVjZEZ4MFhIUjlYRzVjZEZ4MFhIUnBaaUFvWTNWeVNXNWtaWGdnUENCMFpYaDBMbXhsYm1kMGFDa2daV3d1WVhCd1pXNWtRMmhwYkdRb1pHOWpkVzFsYm5RdVkzSmxZWFJsVkdWNGRFNXZaR1VvZEdWNGRDNXpiR2xqWlNoamRYSkpibVJsZUNrcEtUdGNibHgwWEhSOVhHNWNkSDFjYmx4MFkyeHZjMlVvS1NCN1hHNWNkRngwZEdocGN5NXdZWEpsYm5ST2IyUmxQeTV5WlcxdmRtVkRhR2xzWkNoMGFHbHpLVHRjYmx4MFhIUmtiMk4xYldWdWRDNXlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlLRndpYTJWNVpHOTNibHdpTENCMGFHbHpMbU5zYjNObFQyNUZjMk1wTzF4dVhIUjlYRzU5TzF4dVkyOXVjM1FnYjNabGNteGhlVWxrSUQwZ1hDSjJhWFJsTFdWeWNtOXlMVzkyWlhKc1lYbGNJanRjYm1OdmJuTjBJSHNnWTNWemRHOXRSV3hsYldWdWRITWdmU0E5SUdkc2IySmhiRlJvYVhNN1hHNXBaaUFvWTNWemRHOXRSV3hsYldWdWRITWdKaVlnSVdOMWMzUnZiVVZzWlcxbGJuUnpMbWRsZENodmRtVnliR0Y1U1dRcEtTQmpkWE4wYjIxRmJHVnRaVzUwY3k1a1pXWnBibVVvYjNabGNteGhlVWxrTENCRmNuSnZjazkyWlhKc1lYa3BPMXh1WEc0dkx5TmxibVJ5WldkcGIyNWNiaTh2STNKbFoybHZiaUJ6Y21NdlkyeHBaVzUwTDJOc2FXVnVkQzUwYzF4dVkyOXVjMjlzWlM1a1pXSjFaeWhjSWx0MmFYUmxYU0JqYjI1dVpXTjBhVzVuTGk0dVhDSXBPMXh1WTI5dWMzUWdhVzF3YjNKMFRXVjBZVlZ5YkNBOUlHNWxkeUJWVWt3b2FXMXdiM0owTG0xbGRHRXVkWEpzS1R0Y2JtTnZibk4wSUhObGNuWmxja2h2YzNRZ1BTQmNJbXh2WTJGc2FHOXpkRG8xTVRjekwxd2lPMXh1WTI5dWMzUWdjMjlqYTJWMFVISnZkRzlqYjJ3Z1BTQnVkV3hzSUh4OElDaHBiWEJ2Y25STlpYUmhWWEpzTG5CeWIzUnZZMjlzSUQwOVBTQmNJbWgwZEhCek9sd2lJRDhnWENKM2MzTmNJaUE2SUZ3aWQzTmNJaWs3WEc1amIyNXpkQ0JvYlhKUWIzSjBJRDBnYm5Wc2JEdGNibU52Ym5OMElITnZZMnRsZEVodmMzUWdQU0JnSkh0dWRXeHNJSHg4SUdsdGNHOXlkRTFsZEdGVmNtd3VhRzl6ZEc1aGJXVjlPaVI3YUcxeVVHOXlkQ0I4ZkNCcGJYQnZjblJOWlhSaFZYSnNMbkJ2Y25SOUpIdGNJaTljSW4xZ08xeHVZMjl1YzNRZ1pHbHlaV04wVTI5amEyVjBTRzl6ZENBOUlGd2liRzlqWVd4b2IzTjBPalV4TnpNdlhDSTdYRzVqYjI1emRDQmlZWE5sSUQwZ1hDSXZYQ0lnZkh3Z1hDSXZYQ0k3WEc1amIyNXpkQ0JvYlhKVWFXMWxiM1YwSUQwZ016QXdNREE3WEc1amIyNXpkQ0IzYzFSdmEyVnVJRDBnWENKaWFqTlpWbFZVVjFwamJWZGNJanRjYm1OdmJuTjBJSFJ5WVc1emNHOXlkQ0E5SUc1dmNtMWhiR2w2WlUxdlpIVnNaVkoxYm01bGNsUnlZVzV6Y0c5eWRDZ29LQ2tnUFQ0Z2UxeHVYSFJzWlhRZ2QzTlVjbUZ1YzNCdmNuUWdQU0JqY21WaGRHVlhaV0pUYjJOclpYUk5iMlIxYkdWU2RXNXVaWEpVY21GdWMzQnZjblFvZTF4dVhIUmNkR055WldGMFpVTnZibTVsWTNScGIyNDZJQ2dwSUQwK0lHNWxkeUJYWldKVGIyTnJaWFFvWUNSN2MyOWphMlYwVUhKdmRHOWpiMng5T2k4dkpIdHpiMk5yWlhSSWIzTjBmVDkwYjJ0bGJqMGtlM2R6Vkc5clpXNTlZQ3dnWENKMmFYUmxMV2h0Y2x3aUtTeGNibHgwWEhSd2FXNW5TVzUwWlhKMllXdzZJR2h0Y2xScGJXVnZkWFJjYmx4MGZTazdYRzVjZEhKbGRIVnliaUI3WEc1Y2RGeDBZWE41Ym1NZ1kyOXVibVZqZENob1lXNWtiR1Z5Y3lrZ2UxeHVYSFJjZEZ4MGRISjVJSHRjYmx4MFhIUmNkRngwWVhkaGFYUWdkM05VY21GdWMzQnZjblF1WTI5dWJtVmpkQ2hvWVc1a2JHVnljeWs3WEc1Y2RGeDBYSFI5SUdOaGRHTm9JQ2hsS1NCN1hHNWNkRngwWEhSY2RHbG1JQ2doYUcxeVVHOXlkQ2tnZTF4dVhIUmNkRngwWEhSY2RIZHpWSEpoYm5Od2IzSjBJRDBnWTNKbFlYUmxWMlZpVTI5amEyVjBUVzlrZFd4bFVuVnVibVZ5VkhKaGJuTndiM0owS0h0Y2JseDBYSFJjZEZ4MFhIUmNkR055WldGMFpVTnZibTVsWTNScGIyNDZJQ2dwSUQwK0lHNWxkeUJYWldKVGIyTnJaWFFvWUNSN2MyOWphMlYwVUhKdmRHOWpiMng5T2k4dkpIdGthWEpsWTNSVGIyTnJaWFJJYjNOMGZUOTBiMnRsYmowa2UzZHpWRzlyWlc1OVlDd2dYQ0oyYVhSbExXaHRjbHdpS1N4Y2JseDBYSFJjZEZ4MFhIUmNkSEJwYm1kSmJuUmxjblpoYkRvZ2FHMXlWR2x0Wlc5MWRGeHVYSFJjZEZ4MFhIUmNkSDBwTzF4dVhIUmNkRngwWEhSY2RIUnllU0I3WEc1Y2RGeDBYSFJjZEZ4MFhIUmhkMkZwZENCM2MxUnlZVzV6Y0c5eWRDNWpiMjV1WldOMEtHaGhibVJzWlhKektUdGNibHgwWEhSY2RGeDBYSFJjZEdOdmJuTnZiR1V1YVc1bWJ5aGNJbHQyYVhSbFhTQkVhWEpsWTNRZ2QyVmljMjlqYTJWMElHTnZibTVsWTNScGIyNGdabUZzYkdKaFkyc3VJRU5vWldOcklHOTFkQ0JvZEhSd2N6b3ZMM1pwZEdVdVpHVjJMMk52Ym1acFp5OXpaWEoyWlhJdGIzQjBhVzl1Y3k1b2RHMXNJM05sY25abGNpMW9iWElnZEc4Z2NtVnRiM1psSUhSb1pTQndjbVYyYVc5MWN5QmpiMjV1WldOMGFXOXVJR1Z5Y205eUxsd2lLVHRjYmx4MFhIUmNkRngwWEhSOUlHTmhkR05vSUNobEpERXBJSHRjYmx4MFhIUmNkRngwWEhSY2RHbG1JQ2hsSkRFZ2FXNXpkR0Z1WTJWdlppQkZjbkp2Y2lBbUppQmxKREV1YldWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSWxkbFlsTnZZMnRsZENCamJHOXpaV1FnZDJsMGFHOTFkQ0J2Y0dWdVpXUXVYQ0lwS1NCN1hHNWNkRngwWEhSY2RGeDBYSFJjZEdOdmJuTjBJR04xY25KbGJuUlRZM0pwY0hSSWIzTjBWVkpNSUQwZ2JtVjNJRlZTVENocGJYQnZjblF1YldWMFlTNTFjbXdwTzF4dVhIUmNkRngwWEhSY2RGeDBYSFJqYjI1emRDQmpkWEp5Wlc1MFUyTnlhWEIwU0c5emRDQTlJR04xY25KbGJuUlRZM0pwY0hSSWIzTjBWVkpNTG1odmMzUWdLeUJqZFhKeVpXNTBVMk55YVhCMFNHOXpkRlZTVEM1d1lYUm9ibUZ0WlM1eVpYQnNZV05sS0M5QWRtbDBaVnhjTDJOc2FXVnVkQ1F2TENCY0lsd2lLVHRjYmx4MFhIUmNkRngwWEhSY2RGeDBZMjl1YzI5c1pTNWxjbkp2Y2loZ1czWnBkR1ZkSUdaaGFXeGxaQ0IwYnlCamIyNXVaV04wSUhSdklIZGxZbk52WTJ0bGRDNWNibmx2ZFhJZ1kzVnljbVZ1ZENCelpYUjFjRHBjYmlBZ0tHSnliM2R6WlhJcElDUjdZM1Z5Y21WdWRGTmpjbWx3ZEVodmMzUjlJRHd0TFZ0SVZGUlFYUzB0UGlBa2UzTmxjblpsY2todmMzUjlJQ2h6WlhKMlpYSXBYRnh1SUNBb1luSnZkM05sY2lrZ0pIdHpiMk5yWlhSSWIzTjBmU0E4TFMxYlYyVmlVMjlqYTJWMElDaG1ZV2xzYVc1bktWMHRMVDRnSkh0a2FYSmxZM1JUYjJOclpYUkliM04wZlNBb2MyVnlkbVZ5S1Z4Y2JrTm9aV05ySUc5MWRDQjViM1Z5SUZacGRHVWdMeUJ1WlhSM2IzSnJJR052Ym1acFozVnlZWFJwYjI0Z1lXNWtJR2gwZEhCek9pOHZkbWwwWlM1a1pYWXZZMjl1Wm1sbkwzTmxjblpsY2kxdmNIUnBiMjV6TG1oMGJXd2pjMlZ5ZG1WeUxXaHRjaUF1WUNrN1hHNWNkRngwWEhSY2RGeDBYSFI5WEc1Y2RGeDBYSFJjZEZ4MGZWeHVYSFJjZEZ4MFhIUmNkSEpsZEhWeWJqdGNibHgwWEhSY2RGeDBmVnh1WEhSY2RGeDBYSFJqYjI1emIyeGxMbVZ5Y205eUtHQmJkbWwwWlYwZ1ptRnBiR1ZrSUhSdklHTnZibTVsWTNRZ2RHOGdkMlZpYzI5amEyVjBJQ2drZTJWOUtTNGdZQ2s3WEc1Y2RGeDBYSFJjZEhSb2NtOTNJR1U3WEc1Y2RGeDBYSFI5WEc1Y2RGeDBmU3hjYmx4MFhIUmhjM2x1WXlCa2FYTmpiMjV1WldOMEtDa2dlMXh1WEhSY2RGeDBZWGRoYVhRZ2QzTlVjbUZ1YzNCdmNuUXVaR2x6WTI5dWJtVmpkQ2dwTzF4dVhIUmNkSDBzWEc1Y2RGeDBjMlZ1WkNoa1lYUmhLU0I3WEc1Y2RGeDBYSFIzYzFSeVlXNXpjRzl5ZEM1elpXNWtLR1JoZEdFcE8xeHVYSFJjZEgxY2JseDBmVHRjYm4wcEtDa3BPMXh1YkdWMElIZHBiR3hWYm14dllXUWdQU0JtWVd4elpUdGNibWxtSUNoMGVYQmxiMllnZDJsdVpHOTNJQ0U5UFNCY0luVnVaR1ZtYVc1bFpGd2lLU0IzYVc1a2IzY3VZV1JrUlhabGJuUk1hWE4wWlc1bGNqOHVLRndpWW1WbWIzSmxkVzVzYjJGa1hDSXNJQ2dwSUQwK0lIdGNibHgwZDJsc2JGVnViRzloWkNBOUlIUnlkV1U3WEc1OUtUdGNibVoxYm1OMGFXOXVJR05zWldGdVZYSnNLSEJoZEdodVlXMWxLU0I3WEc1Y2RHTnZibk4wSUhWeWJDQTlJRzVsZHlCVlVrd29jR0YwYUc1aGJXVXNJRndpYUhSMGNEb3ZMM1pwZEdVdVpHVjJYQ0lwTzF4dVhIUjFjbXd1YzJWaGNtTm9VR0Z5WVcxekxtUmxiR1YwWlNoY0ltUnBjbVZqZEZ3aUtUdGNibHgwY21WMGRYSnVJSFZ5YkM1d1lYUm9ibUZ0WlNBcklIVnliQzV6WldGeVkyZzdYRzU5WEc1c1pYUWdhWE5HYVhKemRGVndaR0YwWlNBOUlIUnlkV1U3WEc1amIyNXpkQ0J2ZFhSa1lYUmxaRXhwYm10VVlXZHpJRDBnTHlvZ1FGOWZVRlZTUlY5ZklDb3ZJRzVsZHlCWFpXRnJVMlYwS0NrN1hHNWpiMjV6ZENCa1pXSnZkVzVqWlZKbGJHOWhaQ0E5SUNoMGFXMWxLU0E5UGlCN1hHNWNkR3hsZENCMGFXMWxjanRjYmx4MGNtVjBkWEp1SUNncElEMCtJSHRjYmx4MFhIUnBaaUFvZEdsdFpYSXBJSHRjYmx4MFhIUmNkR05zWldGeVZHbHRaVzkxZENoMGFXMWxjaWs3WEc1Y2RGeDBYSFIwYVcxbGNpQTlJRzUxYkd3N1hHNWNkRngwZlZ4dVhIUmNkSFJwYldWeUlEMGdjMlYwVkdsdFpXOTFkQ2dvS1NBOVBpQjdYRzVjZEZ4MFhIUnNiMk5oZEdsdmJpNXlaV3h2WVdRb0tUdGNibHgwWEhSOUxDQjBhVzFsS1R0Y2JseDBmVHRjYm4wN1hHNWpiMjV6ZENCd1lXZGxVbVZzYjJGa0lEMGdaR1ZpYjNWdVkyVlNaV3h2WVdRb01qQXBPMXh1WTI5dWMzUWdhRzF5UTJ4cFpXNTBJRDBnYm1WM0lFaE5Va05zYVdWdWRDaDdYRzVjZEdWeWNtOXlPaUFvWlhKeUtTQTlQaUJqYjI1emIyeGxMbVZ5Y205eUtGd2lXM1pwZEdWZFhDSXNJR1Z5Y2lrc1hHNWNkR1JsWW5Wbk9pQW9MaTR1YlhObktTQTlQaUJqYjI1emIyeGxMbVJsWW5WbktGd2lXM1pwZEdWZFhDSXNJQzR1TG0xelp5bGNibjBzSUhSeVlXNXpjRzl5ZEN3Z1lYTjVibU1nWm5WdVkzUnBiMjRnYVcxd2IzSjBWWEJrWVhSbFpFMXZaSFZzWlNoN0lHRmpZMlZ3ZEdWa1VHRjBhQ3dnZEdsdFpYTjBZVzF3TENCbGVIQnNhV05wZEVsdGNHOXlkRkpsY1hWcGNtVmtMQ0JwYzFkcGRHaHBia05wY21OMWJHRnlTVzF3YjNKMElIMHBJSHRjYmx4MFkyOXVjM1FnVzJGalkyVndkR1ZrVUdGMGFGZHBkR2h2ZFhSUmRXVnllU3dnY1hWbGNubGRJRDBnWVdOalpYQjBaV1JRWVhSb0xuTndiR2wwS0dBL1lDazdYRzVjZEdOdmJuTjBJR2x0Y0c5eWRGQnliMjFwYzJVZ1BTQnBiWEJ2Y25Rb1hHNWNkRngwTHlvZ1FIWnBkR1V0YVdkdWIzSmxJQ292WEc1Y2RGeDBZbUZ6WlNBcklHRmpZMlZ3ZEdWa1VHRjBhRmRwZEdodmRYUlJkV1Z5ZVM1emJHbGpaU2d4S1NBcklHQS9KSHRsZUhCc2FXTnBkRWx0Y0c5eWRGSmxjWFZwY21Wa0lEOGdYQ0pwYlhCdmNuUW1YQ0lnT2lCY0lsd2lmWFE5Skh0MGFXMWxjM1JoYlhCOUpIdHhkV1Z5ZVNBL0lHQW1KSHR4ZFdWeWVYMWdJRG9nWENKY0luMWdYRzRwTzF4dVhIUnBaaUFvYVhOWGFYUm9hVzVEYVhKamRXeGhja2x0Y0c5eWRDa2dhVzF3YjNKMFVISnZiV2x6WlM1allYUmphQ2dvS1NBOVBpQjdYRzVjZEZ4MFkyOXVjMjlzWlM1cGJtWnZLR0JiYUcxeVhTQWtlMkZqWTJWd2RHVmtVR0YwYUgwZ1ptRnBiR1ZrSUhSdklHRndjR3g1SUVoTlVpQmhjeUJwZENkeklIZHBkR2hwYmlCaElHTnBjbU4xYkdGeUlHbHRjRzl5ZEM0Z1VtVnNiMkZrYVc1bklIQmhaMlVnZEc4Z2NtVnpaWFFnZEdobElHVjRaV04xZEdsdmJpQnZjbVJsY2k0Z1ZHOGdaR1ZpZFdjZ1lXNWtJR0p5WldGcklIUm9aU0JqYVhKamRXeGhjaUJwYlhCdmNuUXNJSGx2ZFNCallXNGdjblZ1SUZ4Y1lIWnBkR1VnTFMxa1pXSjFaeUJvYlhKY1hHQWdkRzhnYkc5bklIUm9aU0JqYVhKamRXeGhjaUJrWlhCbGJtUmxibU41SUhCaGRHZ2dhV1lnWVNCbWFXeGxJR05vWVc1blpTQjBjbWxuWjJWeVpXUWdhWFF1WUNrN1hHNWNkRngwY0dGblpWSmxiRzloWkNncE8xeHVYSFI5S1R0Y2JseDBjbVYwZFhKdUlHRjNZV2wwSUdsdGNHOXlkRkJ5YjIxcGMyVTdYRzU5S1R0Y2JuUnlZVzV6Y0c5eWRDNWpiMjV1WldOMEtHTnlaV0YwWlVoTlVraGhibVJzWlhJb2FHRnVaR3hsVFdWemMyRm5aU2twTzF4dVlYTjVibU1nWm5WdVkzUnBiMjRnYUdGdVpHeGxUV1Z6YzJGblpTaHdZWGxzYjJGa0tTQjdYRzVjZEhOM2FYUmphQ0FvY0dGNWJHOWhaQzUwZVhCbEtTQjdYRzVjZEZ4MFkyRnpaU0JjSW1OdmJtNWxZM1JsWkZ3aU9seHVYSFJjZEZ4MFkyOXVjMjlzWlM1a1pXSjFaeWhnVzNacGRHVmRJR052Ym01bFkzUmxaQzVnS1R0Y2JseDBYSFJjZEdKeVpXRnJPMXh1WEhSY2RHTmhjMlVnWENKMWNHUmhkR1ZjSWpwY2JseDBYSFJjZEdGM1lXbDBJR2h0Y2tOc2FXVnVkQzV1YjNScFpubE1hWE4wWlc1bGNuTW9YQ0oyYVhSbE9tSmxabTl5WlZWd1pHRjBaVndpTENCd1lYbHNiMkZrS1R0Y2JseDBYSFJjZEdsbUlDaG9ZWE5FYjJOMWJXVnVkQ2tnYVdZZ0tHbHpSbWx5YzNSVmNHUmhkR1VnSmlZZ2FHRnpSWEp5YjNKUGRtVnliR0Y1S0NrcElIdGNibHgwWEhSY2RGeDBiRzlqWVhScGIyNHVjbVZzYjJGa0tDazdYRzVjZEZ4MFhIUmNkSEpsZEhWeWJqdGNibHgwWEhSY2RIMGdaV3h6WlNCN1hHNWNkRngwWEhSY2RHbG1JQ2hsYm1GaWJHVlBkbVZ5YkdGNUtTQmpiR1ZoY2tWeWNtOXlUM1psY214aGVTZ3BPMXh1WEhSY2RGeDBYSFJwYzBacGNuTjBWWEJrWVhSbElEMGdabUZzYzJVN1hHNWNkRngwWEhSOVhHNWNkRngwWEhSaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNod1lYbHNiMkZrTG5Wd1pHRjBaWE11YldGd0tHRnplVzVqSUNoMWNHUmhkR1VwSUQwK0lIdGNibHgwWEhSY2RGeDBhV1lnS0hWd1pHRjBaUzUwZVhCbElEMDlQU0JjSW1wekxYVndaR0YwWlZ3aUtTQnlaWFIxY200Z2FHMXlRMnhwWlc1MExuRjFaWFZsVlhCa1lYUmxLSFZ3WkdGMFpTazdYRzVjZEZ4MFhIUmNkR052Ym5OMElIc2djR0YwYUN3Z2RHbHRaWE4wWVcxd0lIMGdQU0IxY0dSaGRHVTdYRzVjZEZ4MFhIUmNkR052Ym5OMElITmxZWEpqYUZWeWJDQTlJR05zWldGdVZYSnNLSEJoZEdncE8xeHVYSFJjZEZ4MFhIUmpiMjV6ZENCbGJDQTlJRUZ5Y21GNUxtWnliMjBvWkc5amRXMWxiblF1Y1hWbGNubFRaV3hsWTNSdmNrRnNiQ2hjSW14cGJtdGNJaWtwTG1acGJtUW9LR1VwSUQwK0lDRnZkWFJrWVhSbFpFeHBibXRVWVdkekxtaGhjeWhsS1NBbUppQmpiR1ZoYmxWeWJDaGxMbWh5WldZcExtbHVZMngxWkdWektITmxZWEpqYUZWeWJDa3BPMXh1WEhSY2RGeDBYSFJwWmlBb0lXVnNLU0J5WlhSMWNtNDdYRzVjZEZ4MFhIUmNkR052Ym5OMElHNWxkMUJoZEdnZ1BTQmdKSHRpWVhObGZTUjdjMlZoY21Ob1ZYSnNMbk5zYVdObEtERXBmU1I3YzJWaGNtTm9WWEpzTG1sdVkyeDFaR1Z6S0Z3aVAxd2lLU0EvSUZ3aUpsd2lJRG9nWENJL1hDSjlkRDBrZTNScGJXVnpkR0Z0Y0gxZ08xeHVYSFJjZEZ4MFhIUnlaWFIxY200Z2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVXBJRDArSUh0Y2JseDBYSFJjZEZ4MFhIUmpiMjV6ZENCdVpYZE1hVzVyVkdGbklEMGdaV3d1WTJ4dmJtVk9iMlJsS0NrN1hHNWNkRngwWEhSY2RGeDBibVYzVEdsdWExUmhaeTVvY21WbUlEMGdibVYzSUZWU1RDaHVaWGRRWVhSb0xDQmxiQzVvY21WbUtTNW9jbVZtTzF4dVhIUmNkRngwWEhSY2RHTnZibk4wSUhKbGJXOTJaVTlzWkVWc0lEMGdLQ2tnUFQ0Z2UxeHVYSFJjZEZ4MFhIUmNkRngwWld3dWNtVnRiM1psS0NrN1hHNWNkRngwWEhSY2RGeDBYSFJqYjI1emIyeGxMbVJsWW5WbktHQmJkbWwwWlYwZ1kzTnpJR2h2ZENCMWNHUmhkR1ZrT2lBa2UzTmxZWEpqYUZWeWJIMWdLVHRjYmx4MFhIUmNkRngwWEhSY2RISmxjMjlzZG1Vb0tUdGNibHgwWEhSY2RGeDBYSFI5TzF4dVhIUmNkRngwWEhSY2RHNWxkMHhwYm10VVlXY3VZV1JrUlhabGJuUk1hWE4wWlc1bGNpaGNJbXh2WVdSY0lpd2djbVZ0YjNabFQyeGtSV3dwTzF4dVhIUmNkRngwWEhSY2RHNWxkMHhwYm10VVlXY3VZV1JrUlhabGJuUk1hWE4wWlc1bGNpaGNJbVZ5Y205eVhDSXNJSEpsYlc5MlpVOXNaRVZzS1R0Y2JseDBYSFJjZEZ4MFhIUnZkWFJrWVhSbFpFeHBibXRVWVdkekxtRmtaQ2hsYkNrN1hHNWNkRngwWEhSY2RGeDBaV3d1WVdaMFpYSW9ibVYzVEdsdWExUmhaeWs3WEc1Y2RGeDBYSFJjZEgwcE8xeHVYSFJjZEZ4MGZTa3BPMXh1WEhSY2RGeDBZWGRoYVhRZ2FHMXlRMnhwWlc1MExtNXZkR2xtZVV4cGMzUmxibVZ5Y3loY0luWnBkR1U2WVdaMFpYSlZjR1JoZEdWY0lpd2djR0Y1Ykc5aFpDazdYRzVjZEZ4MFhIUmljbVZoYXp0Y2JseDBYSFJqWVhObElGd2lZM1Z6ZEc5dFhDSTZYRzVjZEZ4MFhIUmhkMkZwZENCb2JYSkRiR2xsYm5RdWJtOTBhV1o1VEdsemRHVnVaWEp6S0hCaGVXeHZZV1F1WlhabGJuUXNJSEJoZVd4dllXUXVaR0YwWVNrN1hHNWNkRngwWEhScFppQW9jR0Y1Ykc5aFpDNWxkbVZ1ZENBOVBUMGdYQ0oyYVhSbE9uZHpPbVJwYzJOdmJtNWxZM1JjSWlrZ2UxeHVYSFJjZEZ4MFhIUnBaaUFvYUdGelJHOWpkVzFsYm5RZ0ppWWdJWGRwYkd4VmJteHZZV1FwSUh0Y2JseDBYSFJjZEZ4MFhIUmpiMjV6YjJ4bExteHZaeWhnVzNacGRHVmRJSE5sY25abGNpQmpiMjV1WldOMGFXOXVJR3h2YzNRdUlGQnZiR3hwYm1jZ1ptOXlJSEpsYzNSaGNuUXVMaTVnS1R0Y2JseDBYSFJjZEZ4MFhIUmpiMjV6ZENCemIyTnJaWFFnUFNCd1lYbHNiMkZrTG1SaGRHRXVkMlZpVTI5amEyVjBPMXh1WEhSY2RGeDBYSFJjZEdOdmJuTjBJSFZ5YkNBOUlHNWxkeUJWVWt3b2MyOWphMlYwTG5WeWJDazdYRzVjZEZ4MFhIUmNkRngwZFhKc0xuTmxZWEpqYUNBOUlGd2lYQ0k3WEc1Y2RGeDBYSFJjZEZ4MFlYZGhhWFFnZDJGcGRFWnZjbE4xWTJObGMzTm1kV3hRYVc1bktIVnliQzVvY21WbUtUdGNibHgwWEhSY2RGeDBYSFJzYjJOaGRHbHZiaTV5Wld4dllXUW9LVHRjYmx4MFhIUmNkRngwZlZ4dVhIUmNkRngwZlZ4dVhIUmNkRngwWW5KbFlXczdYRzVjZEZ4MFkyRnpaU0JjSW1aMWJHd3RjbVZzYjJGa1hDSTZYRzVjZEZ4MFhIUmhkMkZwZENCb2JYSkRiR2xsYm5RdWJtOTBhV1o1VEdsemRHVnVaWEp6S0Z3aWRtbDBaVHBpWldadmNtVkdkV3hzVW1Wc2IyRmtYQ0lzSUhCaGVXeHZZV1FwTzF4dVhIUmNkRngwYVdZZ0tHaGhjMFJ2WTNWdFpXNTBLU0JwWmlBb2NHRjViRzloWkM1d1lYUm9JQ1ltSUhCaGVXeHZZV1F1Y0dGMGFDNWxibVJ6VjJsMGFDaGNJaTVvZEcxc1hDSXBLU0I3WEc1Y2RGeDBYSFJjZEdOdmJuTjBJSEJoWjJWUVlYUm9JRDBnWkdWamIyUmxWVkpKS0d4dlkyRjBhVzl1TG5CaGRHaHVZVzFsS1R0Y2JseDBYSFJjZEZ4MFkyOXVjM1FnY0dGNWJHOWhaRkJoZEdnZ1BTQmlZWE5sSUNzZ2NHRjViRzloWkM1d1lYUm9Mbk5zYVdObEtERXBPMXh1WEhSY2RGeDBYSFJwWmlBb2NHRm5aVkJoZEdnZ1BUMDlJSEJoZVd4dllXUlFZWFJvSUh4OElIQmhlV3h2WVdRdWNHRjBhQ0E5UFQwZ1hDSXZhVzVrWlhndWFIUnRiRndpSUh4OElIQmhaMlZRWVhSb0xtVnVaSE5YYVhSb0tGd2lMMXdpS1NBbUppQndZV2RsVUdGMGFDQXJJRndpYVc1a1pYZ3VhSFJ0YkZ3aUlEMDlQU0J3WVhsc2IyRmtVR0YwYUNrZ2NHRm5aVkpsYkc5aFpDZ3BPMXh1WEhSY2RGeDBYSFJ5WlhSMWNtNDdYRzVjZEZ4MFhIUjlJR1ZzYzJVZ2NHRm5aVkpsYkc5aFpDZ3BPMXh1WEhSY2RGeDBZbkpsWVdzN1hHNWNkRngwWTJGelpTQmNJbkJ5ZFc1bFhDSTZYRzVjZEZ4MFhIUmhkMkZwZENCb2JYSkRiR2xsYm5RdWJtOTBhV1o1VEdsemRHVnVaWEp6S0Z3aWRtbDBaVHBpWldadmNtVlFjblZ1WlZ3aUxDQndZWGxzYjJGa0tUdGNibHgwWEhSY2RHRjNZV2wwSUdodGNrTnNhV1Z1ZEM1d2NuVnVaVkJoZEdoektIQmhlV3h2WVdRdWNHRjBhSE1wTzF4dVhIUmNkRngwWW5KbFlXczdYRzVjZEZ4MFkyRnpaU0JjSW1WeWNtOXlYQ0k2WEc1Y2RGeDBYSFJoZDJGcGRDQm9iWEpEYkdsbGJuUXVibTkwYVdaNVRHbHpkR1Z1WlhKektGd2lkbWwwWlRwbGNuSnZjbHdpTENCd1lYbHNiMkZrS1R0Y2JseDBYSFJjZEdsbUlDaG9ZWE5FYjJOMWJXVnVkQ2tnZTF4dVhIUmNkRngwWEhSamIyNXpkQ0JsY25JZ1BTQndZWGxzYjJGa0xtVnljanRjYmx4MFhIUmNkRngwYVdZZ0tHVnVZV0pzWlU5MlpYSnNZWGtwSUdOeVpXRjBaVVZ5Y205eVQzWmxjbXhoZVNobGNuSXBPMXh1WEhSY2RGeDBYSFJsYkhObElHTnZibk52YkdVdVpYSnliM0lvWUZ0MmFYUmxYU0JKYm5SbGNtNWhiQ0JUWlhKMlpYSWdSWEp5YjNKY1hHNGtlMlZ5Y2k1dFpYTnpZV2RsZlZ4Y2JpUjdaWEp5TG5OMFlXTnJmV0FwTzF4dVhIUmNkRngwZlZ4dVhIUmNkRngwWW5KbFlXczdYRzVjZEZ4MFkyRnpaU0JjSW5CcGJtZGNJam9nWW5KbFlXczdYRzVjZEZ4MFpHVm1ZWFZzZERvZ2NtVjBkWEp1SUhCaGVXeHZZV1E3WEc1Y2RIMWNibjFjYm1OdmJuTjBJR1Z1WVdKc1pVOTJaWEpzWVhrZ1BTQjBjblZsTzF4dVkyOXVjM1FnYUdGelJHOWpkVzFsYm5RZ1BTQmNJbVJ2WTNWdFpXNTBYQ0lnYVc0Z1oyeHZZbUZzVkdocGN6dGNibVoxYm1OMGFXOXVJR055WldGMFpVVnljbTl5VDNabGNteGhlU2hsY25JcElIdGNibHgwWTJ4bFlYSkZjbkp2Y2s5MlpYSnNZWGtvS1R0Y2JseDBZMjl1YzNRZ2V5QmpkWE4wYjIxRmJHVnRaVzUwY3pvZ1kzVnpkRzl0Uld4bGJXVnVkSE1rTVNCOUlEMGdaMnh2WW1Gc1ZHaHBjenRjYmx4MGFXWWdLR04xYzNSdmJVVnNaVzFsYm5SekpERXBJSHRjYmx4MFhIUmpiMjV6ZENCRmNuSnZjazkyWlhKc1lYbERiMjV6ZEhKMVkzUnZjaUE5SUdOMWMzUnZiVVZzWlcxbGJuUnpKREV1WjJWMEtHOTJaWEpzWVhsSlpDazdYRzVjZEZ4MFpHOWpkVzFsYm5RdVltOWtlUzVoY0hCbGJtUkRhR2xzWkNodVpYY2dSWEp5YjNKUGRtVnliR0Y1UTI5dWMzUnlkV04wYjNJb1pYSnlLU2s3WEc1Y2RIMWNibjFjYm1aMWJtTjBhVzl1SUdOc1pXRnlSWEp5YjNKUGRtVnliR0Y1S0NrZ2UxeHVYSFJrYjJOMWJXVnVkQzV4ZFdWeWVWTmxiR1ZqZEc5eVFXeHNLRzkyWlhKc1lYbEpaQ2t1Wm05eVJXRmphQ2dvYmlrZ1BUNGdiaTVqYkc5elpTZ3BLVHRjYm4xY2JtWjFibU4wYVc5dUlHaGhjMFZ5Y205eVQzWmxjbXhoZVNncElIdGNibHgwY21WMGRYSnVJR1J2WTNWdFpXNTBMbkYxWlhKNVUyVnNaV04wYjNKQmJHd29iM1psY214aGVVbGtLUzVzWlc1bmRHZzdYRzU5WEc1bWRXNWpkR2x2YmlCM1lXbDBSbTl5VTNWalkyVnpjMloxYkZCcGJtY29jMjlqYTJWMFZYSnNLU0I3WEc1Y2RHbG1JQ2gwZVhCbGIyWWdVMmhoY21Wa1YyOXlhMlZ5SUQwOVBTQmNJblZ1WkdWbWFXNWxaRndpS1NCN1hHNWNkRngwWTI5dWMzUWdkbWx6YVdKcGJHbDBlVTFoYm1GblpYSWdQU0I3WEc1Y2RGeDBYSFJqZFhKeVpXNTBVM1JoZEdVNklHUnZZM1Z0Wlc1MExuWnBjMmxpYVd4cGRIbFRkR0YwWlN4Y2JseDBYSFJjZEd4cGMzUmxibVZ5Y3pvZ0x5b2dRRjlmVUZWU1JWOWZJQ292SUc1bGR5QlRaWFFvS1Z4dVhIUmNkSDA3WEc1Y2RGeDBZMjl1YzNRZ2IyNVdhWE5wWW1sc2FYUjVRMmhoYm1kbElEMGdLQ2tnUFQ0Z2UxeHVYSFJjZEZ4MGRtbHphV0pwYkdsMGVVMWhibUZuWlhJdVkzVnljbVZ1ZEZOMFlYUmxJRDBnWkc5amRXMWxiblF1ZG1semFXSnBiR2wwZVZOMFlYUmxPMXh1WEhSY2RGeDBabTl5SUNoamIyNXpkQ0JzYVhOMFpXNWxjaUJ2WmlCMmFYTnBZbWxzYVhSNVRXRnVZV2RsY2k1c2FYTjBaVzVsY25NcElHeHBjM1JsYm1WeUtIWnBjMmxpYVd4cGRIbE5ZVzVoWjJWeUxtTjFjbkpsYm5SVGRHRjBaU2s3WEc1Y2RGeDBmVHRjYmx4MFhIUmtiMk4xYldWdWRDNWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtGd2lkbWx6YVdKcGJHbDBlV05vWVc1blpWd2lMQ0J2YmxacGMybGlhV3hwZEhsRGFHRnVaMlVwTzF4dVhIUmNkSEpsZEhWeWJpQjNZV2wwUm05eVUzVmpZMlZ6YzJaMWJGQnBibWRKYm5SbGNtNWhiQ2h6YjJOclpYUlZjbXdzSUhacGMybGlhV3hwZEhsTllXNWhaMlZ5S1R0Y2JseDBmVnh1WEhSamIyNXpkQ0JpYkc5aUlEMGdibVYzSUVKc2IySW9XMXh1WEhSY2RGd2lYRnhjSW5WelpTQnpkSEpwWTNSY1hGd2lPMXdpTEZ4dVhIUmNkR0JqYjI1emRDQjNZV2wwUm05eVUzVmpZMlZ6YzJaMWJGQnBibWRKYm5SbGNtNWhiQ0E5SUNSN2QyRnBkRVp2Y2xOMVkyTmxjM05tZFd4UWFXNW5TVzUwWlhKdVlXd3VkRzlUZEhKcGJtY29LWDA3WUN4Y2JseDBYSFJnWTI5dWMzUWdabTRnUFNBa2UzQnBibWRYYjNKclpYSkRiMjUwWlc1MFRXRnBiaTUwYjFOMGNtbHVaeWdwZlR0Z0xGeHVYSFJjZEdCbWJpZ2tlMHBUVDA0dWMzUnlhVzVuYVdaNUtITnZZMnRsZEZWeWJDbDlLV0JjYmx4MFhTd2dleUIwZVhCbE9pQmNJbUZ3Y0d4cFkyRjBhVzl1TDJwaGRtRnpZM0pwY0hSY0lpQjlLVHRjYmx4MFkyOXVjM1FnYjJKcVZWSk1JRDBnVlZKTUxtTnlaV0YwWlU5aWFtVmpkRlZTVENoaWJHOWlLVHRjYmx4MFkyOXVjM1FnYzJoaGNtVmtWMjl5YTJWeUlEMGdibVYzSUZOb1lYSmxaRmR2Y210bGNpaHZZbXBWVWt3cE8xeHVYSFJ5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVVzSUhKbGFtVmpkQ2tnUFQ0Z2UxeHVYSFJjZEdOdmJuTjBJRzl1Vm1semFXSnBiR2wwZVVOb1lXNW5aU0E5SUNncElEMCtJSHRjYmx4MFhIUmNkSE5vWVhKbFpGZHZjbXRsY2k1d2IzSjBMbkJ2YzNSTlpYTnpZV2RsS0hzZ2RtbHphV0pwYkdsMGVUb2daRzlqZFcxbGJuUXVkbWx6YVdKcGJHbDBlVk4wWVhSbElIMHBPMXh1WEhSY2RIMDdYRzVjZEZ4MFpHOWpkVzFsYm5RdVlXUmtSWFpsYm5STWFYTjBaVzVsY2loY0luWnBjMmxpYVd4cGRIbGphR0Z1WjJWY0lpd2diMjVXYVhOcFltbHNhWFI1UTJoaGJtZGxLVHRjYmx4MFhIUnphR0Z5WldSWGIzSnJaWEl1Y0c5eWRDNWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtGd2liV1Z6YzJGblpWd2lMQ0FvWlhabGJuUXBJRDArSUh0Y2JseDBYSFJjZEdSdlkzVnRaVzUwTG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb1hDSjJhWE5wWW1sc2FYUjVZMmhoYm1kbFhDSXNJRzl1Vm1semFXSnBiR2wwZVVOb1lXNW5aU2s3WEc1Y2RGeDBYSFJ6YUdGeVpXUlhiM0pyWlhJdWNHOXlkQzVqYkc5elpTZ3BPMXh1WEhSY2RGeDBZMjl1YzNRZ1pHRjBZU0E5SUdWMlpXNTBMbVJoZEdFN1hHNWNkRngwWEhScFppQW9aR0YwWVM1MGVYQmxJRDA5UFNCY0ltVnljbTl5WENJcElIdGNibHgwWEhSY2RGeDBjbVZxWldOMEtHUmhkR0V1WlhKeWIzSXBPMXh1WEhSY2RGeDBYSFJ5WlhSMWNtNDdYRzVjZEZ4MFhIUjlYRzVjZEZ4MFhIUnlaWE52YkhabEtDazdYRzVjZEZ4MGZTazdYRzVjZEZ4MGIyNVdhWE5wWW1sc2FYUjVRMmhoYm1kbEtDazdYRzVjZEZ4MGMyaGhjbVZrVjI5eWEyVnlMbkJ2Y25RdWMzUmhjblFvS1R0Y2JseDBmU2s3WEc1OVhHNW1kVzVqZEdsdmJpQndhVzVuVjI5eWEyVnlRMjl1ZEdWdWRFMWhhVzRvYzI5amEyVjBWWEpzS1NCN1hHNWNkSE5sYkdZdVlXUmtSWFpsYm5STWFYTjBaVzVsY2loY0ltTnZibTVsWTNSY0lpd2dLRjlsZG1WdWRDa2dQVDRnZTF4dVhIUmNkR052Ym5OMElIQnZjblFnUFNCZlpYWmxiblF1Y0c5eWRITmJNRjA3WEc1Y2RGeDBhV1lnS0NGemIyTnJaWFJWY213cElIdGNibHgwWEhSY2RIQnZjblF1Y0c5emRFMWxjM05oWjJVb2UxeHVYSFJjZEZ4MFhIUjBlWEJsT2lCY0ltVnljbTl5WENJc1hHNWNkRngwWEhSY2RHVnljbTl5T2lBdktpQkFYMTlRVlZKRlgxOGdLaThnYm1WM0lFVnljbTl5S0Z3aWMyOWphMlYwVlhKc0lHNXZkQ0JtYjNWdVpGd2lLVnh1WEhSY2RGeDBmU2s3WEc1Y2RGeDBYSFJ5WlhSMWNtNDdYRzVjZEZ4MGZWeHVYSFJjZEdOdmJuTjBJSFpwYzJsaWFXeHBkSGxOWVc1aFoyVnlJRDBnZTF4dVhIUmNkRngwWTNWeWNtVnVkRk4wWVhSbE9pQmNJblpwYzJsaWJHVmNJaXhjYmx4MFhIUmNkR3hwYzNSbGJtVnljem9nTHlvZ1FGOWZVRlZTUlY5ZklDb3ZJRzVsZHlCVFpYUW9LVnh1WEhSY2RIMDdYRzVjZEZ4MGNHOXlkQzVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLRndpYldWemMyRm5aVndpTENBb1pYWmxiblFwSUQwK0lIdGNibHgwWEhSY2RHTnZibk4wSUhzZ2RtbHphV0pwYkdsMGVTQjlJRDBnWlhabGJuUXVaR0YwWVR0Y2JseDBYSFJjZEhacGMybGlhV3hwZEhsTllXNWhaMlZ5TG1OMWNuSmxiblJUZEdGMFpTQTlJSFpwYzJsaWFXeHBkSGs3WEc1Y2RGeDBYSFJqYjI1emIyeGxMbVJsWW5WbktGd2lXM1pwZEdWZElHNWxkeUIzYVc1a2IzY2dkbWx6YVdKcGJHbDBlVndpTENCMmFYTnBZbWxzYVhSNUtUdGNibHgwWEhSY2RHWnZjaUFvWTI5dWMzUWdiR2x6ZEdWdVpYSWdiMllnZG1semFXSnBiR2wwZVUxaGJtRm5aWEl1YkdsemRHVnVaWEp6S1NCc2FYTjBaVzVsY2loMmFYTnBZbWxzYVhSNUtUdGNibHgwWEhSOUtUdGNibHgwWEhSd2IzSjBMbk4wWVhKMEtDazdYRzVjZEZ4MFkyOXVjMjlzWlM1a1pXSjFaeWhjSWx0MmFYUmxYU0JqYjI1dVpXTjBaV1FnWm5KdmJTQjNhVzVrYjNkY0lpazdYRzVjZEZ4MGQyRnBkRVp2Y2xOMVkyTmxjM05tZFd4UWFXNW5TVzUwWlhKdVlXd29jMjlqYTJWMFZYSnNMQ0IyYVhOcFltbHNhWFI1VFdGdVlXZGxjaWt1ZEdobGJpZ29LU0E5UGlCN1hHNWNkRngwWEhSamIyNXpiMnhsTG1SbFluVm5LRndpVzNacGRHVmRJSEJwYm1jZ2MzVmpZMlZ6YzJaMWJGd2lLVHRjYmx4MFhIUmNkSFJ5ZVNCN1hHNWNkRngwWEhSY2RIQnZjblF1Y0c5emRFMWxjM05oWjJVb2V5QjBlWEJsT2lCY0luTjFZMk5sYzNOY0lpQjlLVHRjYmx4MFhIUmNkSDBnWTJGMFkyZ2dLR1Z5Y205eUtTQjdYRzVjZEZ4MFhIUmNkSEJ2Y25RdWNHOXpkRTFsYzNOaFoyVW9lMXh1WEhSY2RGeDBYSFJjZEhSNWNHVTZJRndpWlhKeWIzSmNJaXhjYmx4MFhIUmNkRngwWEhSbGNuSnZjbHh1WEhSY2RGeDBYSFI5S1R0Y2JseDBYSFJjZEgxY2JseDBYSFI5TENBb1pYSnliM0lwSUQwK0lIdGNibHgwWEhSY2RHTnZibk52YkdVdVpHVmlkV2NvWENKYmRtbDBaVjBnWlhKeWIzSWdhR0Z3Y0dWdVpXUmNJaXdnWlhKeWIzSXBPMXh1WEhSY2RGeDBkSEo1SUh0Y2JseDBYSFJjZEZ4MGNHOXlkQzV3YjNOMFRXVnpjMkZuWlNoN1hHNWNkRngwWEhSY2RGeDBkSGx3WlRvZ1hDSmxjbkp2Y2x3aUxGeHVYSFJjZEZ4MFhIUmNkR1Z5Y205eVhHNWNkRngwWEhSY2RIMHBPMXh1WEhSY2RGeDBmU0JqWVhSamFDQW9aWEp5YjNJa01Ta2dlMXh1WEhSY2RGeDBYSFJ3YjNKMExuQnZjM1JOWlhOellXZGxLSHRjYmx4MFhIUmNkRngwWEhSMGVYQmxPaUJjSW1WeWNtOXlYQ0lzWEc1Y2RGeDBYSFJjZEZ4MFpYSnliM0k2SUdWeWNtOXlKREZjYmx4MFhIUmNkRngwZlNrN1hHNWNkRngwWEhSOVhHNWNkRngwZlNrN1hHNWNkSDBwTzF4dWZWeHVZWE41Ym1NZ1puVnVZM1JwYjI0Z2QyRnBkRVp2Y2xOMVkyTmxjM05tZFd4UWFXNW5TVzUwWlhKdVlXd29jMjlqYTJWMFZYSnNMQ0IyYVhOcFltbHNhWFI1VFdGdVlXZGxjaXdnYlhNZ1BTQXhaVE1wSUh0Y2JseDBablZ1WTNScGIyNGdkMkZwZENodGN5UXhLU0I3WEc1Y2RGeDBjbVYwZFhKdUlHNWxkeUJRY205dGFYTmxLQ2h5WlhOdmJIWmxLU0E5UGlCelpYUlVhVzFsYjNWMEtISmxjMjlzZG1Vc0lHMXpKREVwS1R0Y2JseDBmVnh1WEhSaGMzbHVZeUJtZFc1amRHbHZiaUJ3YVc1bktDa2dlMXh1WEhSY2RIUnllU0I3WEc1Y2RGeDBYSFJqYjI1emRDQnpiMk5yWlhRZ1BTQnVaWGNnVjJWaVUyOWphMlYwS0hOdlkydGxkRlZ5YkN3Z1hDSjJhWFJsTFhCcGJtZGNJaWs3WEc1Y2RGeDBYSFJ5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVVwSUQwK0lIdGNibHgwWEhSY2RGeDBablZ1WTNScGIyNGdiMjVQY0dWdUtDa2dlMXh1WEhSY2RGeDBYSFJjZEhKbGMyOXNkbVVvZEhKMVpTazdYRzVjZEZ4MFhIUmNkRngwWTJ4dmMyVW9LVHRjYmx4MFhIUmNkRngwZlZ4dVhIUmNkRngwWEhSbWRXNWpkR2x2YmlCdmJrVnljbTl5S0NrZ2UxeHVYSFJjZEZ4MFhIUmNkSEpsYzI5c2RtVW9abUZzYzJVcE8xeHVYSFJjZEZ4MFhIUmNkR05zYjNObEtDazdYRzVjZEZ4MFhIUmNkSDFjYmx4MFhIUmNkRngwWm5WdVkzUnBiMjRnWTJ4dmMyVW9LU0I3WEc1Y2RGeDBYSFJjZEZ4MGMyOWphMlYwTG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb1hDSnZjR1Z1WENJc0lHOXVUM0JsYmlrN1hHNWNkRngwWEhSY2RGeDBjMjlqYTJWMExuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9YQ0psY25KdmNsd2lMQ0J2YmtWeWNtOXlLVHRjYmx4MFhIUmNkRngwWEhSemIyTnJaWFF1WTJ4dmMyVW9LVHRjYmx4MFhIUmNkRngwZlZ4dVhIUmNkRngwWEhSemIyTnJaWFF1WVdSa1JYWmxiblJNYVhOMFpXNWxjaWhjSW05d1pXNWNJaXdnYjI1UGNHVnVLVHRjYmx4MFhIUmNkRngwYzI5amEyVjBMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9YQ0psY25KdmNsd2lMQ0J2YmtWeWNtOXlLVHRjYmx4MFhIUmNkSDBwTzF4dVhIUmNkSDBnWTJGMFkyZ2dlMXh1WEhSY2RGeDBjbVYwZFhKdUlHWmhiSE5sTzF4dVhIUmNkSDFjYmx4MGZWeHVYSFJtZFc1amRHbHZiaUIzWVdsMFJtOXlWMmx1Wkc5M1UyaHZkeWgyYVhOcFltbHNhWFI1VFdGdVlXZGxjaVF4S1NCN1hHNWNkRngwY21WMGRYSnVJRzVsZHlCUWNtOXRhWE5sS0NoeVpYTnZiSFpsS1NBOVBpQjdYRzVjZEZ4MFhIUmpiMjV6ZENCdmJrTm9ZVzVuWlNBOUlDaHVaWGRXYVhOcFltbHNhWFI1S1NBOVBpQjdYRzVjZEZ4MFhIUmNkR2xtSUNodVpYZFdhWE5wWW1sc2FYUjVJRDA5UFNCY0luWnBjMmxpYkdWY0lpa2dlMXh1WEhSY2RGeDBYSFJjZEhKbGMyOXNkbVVvS1R0Y2JseDBYSFJjZEZ4MFhIUjJhWE5wWW1sc2FYUjVUV0Z1WVdkbGNpUXhMbXhwYzNSbGJtVnljeTVrWld4bGRHVW9iMjVEYUdGdVoyVXBPMXh1WEhSY2RGeDBYSFI5WEc1Y2RGeDBYSFI5TzF4dVhIUmNkRngwZG1semFXSnBiR2wwZVUxaGJtRm5aWElrTVM1c2FYTjBaVzVsY25NdVlXUmtLRzl1UTJoaGJtZGxLVHRjYmx4MFhIUjlLVHRjYmx4MGZWeHVYSFJwWmlBb1lYZGhhWFFnY0dsdVp5Z3BLU0J5WlhSMWNtNDdYRzVjZEdGM1lXbDBJSGRoYVhRb2JYTXBPMXh1WEhSM2FHbHNaU0FvZEhKMVpTa2dhV1lnS0hacGMybGlhV3hwZEhsTllXNWhaMlZ5TG1OMWNuSmxiblJUZEdGMFpTQTlQVDBnWENKMmFYTnBZbXhsWENJcElIdGNibHgwWEhScFppQW9ZWGRoYVhRZ2NHbHVaeWdwS1NCaWNtVmhhenRjYmx4MFhIUmhkMkZwZENCM1lXbDBLRzF6S1R0Y2JseDBmU0JsYkhObElHRjNZV2wwSUhkaGFYUkdiM0pYYVc1a2IzZFRhRzkzS0hacGMybGlhV3hwZEhsTllXNWhaMlZ5S1R0Y2JuMWNibU52Ym5OMElITm9aV1YwYzAxaGNDQTlJQzhxSUVCZlgxQlZVa1ZmWHlBcUx5QnVaWGNnVFdGd0tDazdYRzVqYjI1emRDQnNhVzVyVTJobFpYUnpUV0Z3SUQwZ0x5b2dRRjlmVUZWU1JWOWZJQ292SUc1bGR5Qk5ZWEFvS1R0Y2JtbG1JQ2hjSW1SdlkzVnRaVzUwWENJZ2FXNGdaMnh2WW1Gc1ZHaHBjeWtnZTF4dVhIUmtiMk4xYldWdWRDNXhkV1Z5ZVZObGJHVmpkRzl5UVd4c0tGd2ljM1I1YkdWYlpHRjBZUzEyYVhSbExXUmxkaTFwWkYxY0lpa3VabTl5UldGamFDZ29aV3dwSUQwK0lIdGNibHgwWEhSemFHVmxkSE5OWVhBdWMyVjBLR1ZzTG1kbGRFRjBkSEpwWW5WMFpTaGNJbVJoZEdFdGRtbDBaUzFrWlhZdGFXUmNJaWtzSUdWc0tUdGNibHgwZlNrN1hHNWNkR1J2WTNWdFpXNTBMbkYxWlhKNVUyVnNaV04wYjNKQmJHd29YQ0pzYVc1clczSmxiRDFjWEZ3aWMzUjViR1Z6YUdWbGRGeGNYQ0pkVzJSaGRHRXRkbWwwWlMxa1pYWXRhV1JkWENJcExtWnZja1ZoWTJnb0tHVnNLU0E5UGlCN1hHNWNkRngwYkdsdWExTm9aV1YwYzAxaGNDNXpaWFFvWld3dVoyVjBRWFIwY21saWRYUmxLRndpWkdGMFlTMTJhWFJsTFdSbGRpMXBaRndpS1N3Z1pXd3BPMXh1WEhSOUtUdGNibjFjYm14bGRDQnNZWE4wU1c1elpYSjBaV1JUZEhsc1pUdGNibVoxYm1OMGFXOXVJSFZ3WkdGMFpWTjBlV3hsS0dsa0xDQmpiMjUwWlc1MEtTQjdYRzVjZEdsbUlDaHNhVzVyVTJobFpYUnpUV0Z3TG1oaGN5aHBaQ2twSUhKbGRIVnlianRjYmx4MGJHVjBJSE4wZVd4bElEMGdjMmhsWlhSelRXRndMbWRsZENocFpDazdYRzVjZEdsbUlDZ2hjM1I1YkdVcElIdGNibHgwWEhSemRIbHNaU0E5SUdSdlkzVnRaVzUwTG1OeVpXRjBaVVZzWlcxbGJuUW9YQ0p6ZEhsc1pWd2lLVHRjYmx4MFhIUnpkSGxzWlM1elpYUkJkSFJ5YVdKMWRHVW9YQ0owZVhCbFhDSXNJRndpZEdWNGRDOWpjM05jSWlrN1hHNWNkRngwYzNSNWJHVXVjMlYwUVhSMGNtbGlkWFJsS0Z3aVpHRjBZUzEyYVhSbExXUmxkaTFwWkZ3aUxDQnBaQ2s3WEc1Y2RGeDBjM1I1YkdVdWRHVjRkRU52Ym5SbGJuUWdQU0JqYjI1MFpXNTBPMXh1WEhSY2RHbG1JQ2hqYzNCT2IyNWpaU2tnYzNSNWJHVXVjMlYwUVhSMGNtbGlkWFJsS0Z3aWJtOXVZMlZjSWl3Z1kzTndUbTl1WTJVcE8xeHVYSFJjZEdsbUlDZ2hiR0Z6ZEVsdWMyVnlkR1ZrVTNSNWJHVXBJSHRjYmx4MFhIUmNkR1J2WTNWdFpXNTBMbWhsWVdRdVlYQndaVzVrUTJocGJHUW9jM1I1YkdVcE8xeHVYSFJjZEZ4MGMyVjBWR2x0Wlc5MWRDZ29LU0E5UGlCN1hHNWNkRngwWEhSY2RHeGhjM1JKYm5ObGNuUmxaRk4wZVd4bElEMGdkbTlwWkNBd08xeHVYSFJjZEZ4MGZTd2dNQ2s3WEc1Y2RGeDBmU0JsYkhObElHeGhjM1JKYm5ObGNuUmxaRk4wZVd4bExtbHVjMlZ5ZEVGa2FtRmpaVzUwUld4bGJXVnVkQ2hjSW1GbWRHVnlaVzVrWENJc0lITjBlV3hsS1R0Y2JseDBYSFJzWVhOMFNXNXpaWEowWldSVGRIbHNaU0E5SUhOMGVXeGxPMXh1WEhSOUlHVnNjMlVnYzNSNWJHVXVkR1Y0ZEVOdmJuUmxiblFnUFNCamIyNTBaVzUwTzF4dVhIUnphR1ZsZEhOTllYQXVjMlYwS0dsa0xDQnpkSGxzWlNrN1hHNTlYRzVtZFc1amRHbHZiaUJ5WlcxdmRtVlRkSGxzWlNocFpDa2dlMXh1WEhScFppQW9iR2x1YTFOb1pXVjBjMDFoY0M1b1lYTW9hV1FwS1NCN1hHNWNkRngwWkc5amRXMWxiblF1Y1hWbGNubFRaV3hsWTNSdmNrRnNiQ2hnYkdsdWExdHlaV3c5WENKemRIbHNaWE5vWldWMFhDSmRXMlJoZEdFdGRtbDBaUzFrWlhZdGFXUmRZQ2t1Wm05eVJXRmphQ2dvWld3cElEMCtJSHRjYmx4MFhIUmNkR2xtSUNobGJDNW5aWFJCZEhSeWFXSjFkR1VvWENKa1lYUmhMWFpwZEdVdFpHVjJMV2xrWENJcElEMDlQU0JwWkNrZ1pXd3VjbVZ0YjNabEtDazdYRzVjZEZ4MGZTazdYRzVjZEZ4MGJHbHVhMU5vWldWMGMwMWhjQzVrWld4bGRHVW9hV1FwTzF4dVhIUjlYRzVjZEdOdmJuTjBJSE4wZVd4bElEMGdjMmhsWlhSelRXRndMbWRsZENocFpDazdYRzVjZEdsbUlDaHpkSGxzWlNrZ2UxeHVYSFJjZEdSdlkzVnRaVzUwTG1obFlXUXVjbVZ0YjNabFEyaHBiR1FvYzNSNWJHVXBPMXh1WEhSY2RITm9aV1YwYzAxaGNDNWtaV3hsZEdVb2FXUXBPMXh1WEhSOVhHNTlYRzVtZFc1amRHbHZiaUJqY21WaGRHVkliM1JEYjI1MFpYaDBLRzkzYm1WeVVHRjBhQ2tnZTF4dVhIUnlaWFIxY200Z2JtVjNJRWhOVWtOdmJuUmxlSFFvYUcxeVEyeHBaVzUwTENCdmQyNWxjbEJoZEdncE8xeHVmVnh1THlvcVhHNHFJSFZ5YkhNZ2FHVnlaU0JoY21VZ1pIbHVZVzFwWXlCcGJYQnZjblFvS1NCMWNteHpJSFJvWVhRZ1kyOTFiR1J1SjNRZ1ltVWdjM1JoZEdsallXeHNlU0JoYm1Gc2VYcGxaRnh1S2k5Y2JtWjFibU4wYVc5dUlHbHVhbVZqZEZGMVpYSjVLSFZ5YkN3Z2NYVmxjbmxVYjBsdWFtVmpkQ2tnZTF4dVhIUnBaaUFvZFhKc1d6QmRJQ0U5UFNCY0lpNWNJaUFtSmlCMWNteGJNRjBnSVQwOUlGd2lMMXdpS1NCeVpYUjFjbTRnZFhKc08xeHVYSFJqYjI1emRDQndZWFJvYm1GdFpTQTlJSFZ5YkM1eVpYQnNZV05sS0M5YlB5TmRMaW9rTHl3Z1hDSmNJaWs3WEc1Y2RHTnZibk4wSUhzZ2MyVmhjbU5vTENCb1lYTm9JSDBnUFNCdVpYY2dWVkpNS0hWeWJDd2dYQ0pvZEhSd09pOHZkbWwwWlM1a1pYWmNJaWs3WEc1Y2RISmxkSFZ5YmlCZ0pIdHdZWFJvYm1GdFpYMC9KSHR4ZFdWeWVWUnZTVzVxWldOMGZTUjdjMlZoY21Ob0lEOGdZQ1pnSUNzZ2MyVmhjbU5vTG5Oc2FXTmxLREVwSURvZ1hDSmNJbjBrZTJoaGMyZ2dmSHdnWENKY0luMWdPMXh1ZlZ4dVhHNHZMeU5sYm1SeVpXZHBiMjVjYm1WNGNHOXlkQ0I3SUVWeWNtOXlUM1psY214aGVTd2dZM0psWVhSbFNHOTBRMjl1ZEdWNGRDd2dhVzVxWldOMFVYVmxjbmtzSUhKbGJXOTJaVk4wZVd4bExDQjFjR1JoZEdWVGRIbHNaU0I5T3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRE96dEJRVVV2UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU4yUkN4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzQkNMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVNeFFpeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM0JITEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyNUNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMjVDTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTNTQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRaRHM3UVVGRlFTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTklMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETzBGQlF6VkVMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRNMElzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRek5ETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNN1FVRkRPVUlzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRia0lzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkRia01zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdRVUZEZEVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnlSU3hEUVVGRE8wRkJRMFFzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNM1F6czdRVUZGUVN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRPMEZCUXpsRUxGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRNVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVOcVF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU16UXpzN1FVRkZRU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRE8wRkJReTlFTEZGQlFWRXNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRiRU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVVc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVml4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyaENMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVJc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEWWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYWtJN08wRkJSVUVzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNN1FVRkRla0lzUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8wRkJRM1pDTEVOQlFVTXNWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0QlFVTnlReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03UVVGRE9VSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTTdRVUZETlVJc1EwRkJReXhEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXZReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYWtZc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zWVVGQllTeERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNN1FVRkRkRVFzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNM1FpeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRPMEZCUTNKRkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1FVRkRkRVVzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRPMEZCUXpsRUxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNelJ5eERRVUZETEVOQlFVTTdRVUZEUml4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJReTlETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRPMEZCUTJwRkxFTkJRVU03UVVGRFJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMW9zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJRenRCUVVOdVJDeERRVUZETzBGQlEwUXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdRVUZEZUVJc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZEY0Vjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRlRVlzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNN1FVRkRMMFFzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNKRUxFTkJRVU03UVVGRFJDeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU0xUWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRMMFFzUTBGQlF6dEJRVU5FTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRMklzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wRkJRMjVFTEVOQlFVTTdRVUZEUkN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU5ZTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dEJRVU5xUkN4RFFVRkRPMEZCUTBRc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEV2l4RFFVRkRMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU55UWl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEhsQ1FVRjVRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRPMEZCUTNaR0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNCRUxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVE8wRkJRM1pDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4N1FVRkRWaXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF5OUNMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRPMEZCUTNaQ0xFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVODdRVUZEVml4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE4wWXNRMEZCUXp0QlFVTkVMRU5CUVVNc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTJZc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZETlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGVFTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTTdRVUZEY0VJc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU03UVVGRE0wSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTQ3hEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTTdRVUZETjBNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRPMEZCUXpkQ0xFTkJRVU03UVVGRFJDeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU5vUWl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5xUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF6dEJRVU5zUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFR0QlFVTnNReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wRkJRMnhFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0xUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRPMEZCUTNKQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFR0QlFVTldMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMGdzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEZWtJc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFNDeERRVUZETEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zYTBKQlFXdENMRU5CUVVNN1FVRkRiRVFzUTBGQlF5eERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRE8wRkJRMnhETEVOQlFVTTdRVUZEUkN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTnVRaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1FVRkRkRUlzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03UVVGRGFrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTenRCUVVOU0xFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOS0xFTkJRVU03UVVGRFJDeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZGtNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zWVVGQllTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNN1FVRkRja0lzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVObUxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwZ3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETzBGQlEzSkNMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWs3UVVGRFVDeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVOUUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU2l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eGhRVUZoTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTTdRVUZEZGtRc1EwRkJRenRCUVVORUxFTkJRVU03UVVGRFJDeEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU03UVVGRGRFSXNRMEZCUXl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVOQlFVTTdRVUZEZGtRc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwN1FVRkRkRUlzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzBGQlF6bENMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJReXhEUVVGRExHMUNRVUZ0UWp0QlFVTm9SQ3hEUVVGRExFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOdVJTeERRVUZETEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5vUlN4RFFVRkRMRU5CUVVNc1pVRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTVSQ3hEUVVGRExFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNM1JDeERRVUZETEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNoRkxFTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZGtVc1EwRkJReXhEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMSGxDUVVGNVFpeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRelZFTEVOQlFVTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRekZETEVOQlFVTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETzBGQlEzQkVMRU5CUVVNN1FVRkRSQ3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRGNFTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRPMEZCUTJoRUxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZET1VRc1EwRkJRenRCUVVORUxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMEZCUTJZc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRemxETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXp0QlFVTjZRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwb3NRMEZCUXp0QlFVTkVMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5VTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlF6VkNMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTNwQ0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRM1pDTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEzUkNMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRGFrTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVOb1F5eERRVUZETzBGQlEwUXNRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEzcENMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRlRU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRE8wRkJRemRETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRlRVFzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTB3c1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONFF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRGNrTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVNMVF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hEUVVGRE8wRkJRMFFzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTTNRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU03UVVGRGRrWXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjZTU3hEUVVGRE8wRkJRMFFzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJRenRCUVVONlJDeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWs3UVVGRE5VUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpPMEZCUTJ4R0xFTkJRVU1zUTBGQlF6dEJRVU5HTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU0xUWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU5zUkN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dEJRVU5vUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWs3UVVGRGFrTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVczdRVUZEYkVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRPMEZCUTNoRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU40UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE0wUXNRMEZCUXl4RFFVRkRPMEZCUTBZc1EwRkJRenRCUVVORUxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVNelFpeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwN1FVRkRNMFFzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJRenRCUVVNeFF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTzBGQlEyeENMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zWVVGQllUdEJRVU51UWl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zV1VGQldUdEJRVU0xUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0QlFVTTFSaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEY2tRc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRPMEZCUTNKRUxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdRVUZETDBRc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETzBGQlExQXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUXpGRUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5tTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF6dEJRVU14UXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOSUxFTkJRVU1zUTBGQlF6dEJRVU5HTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEWml4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU03UVVGRFVDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXg1UWtGQmVVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc2EwSkJRV3RDTzBGQlEzWkVMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4yU0N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRekZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRia1FzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJRenRCUVVOaUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMSGxDUVVGNVFpeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVNelF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTklMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMGdzUTBGQlF6dEJRVU5FTEVOQlFVTTdPMEZCUlVRc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFNDeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRE8wRkJRM0pHTEVkQlFVY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEhWRVFVRjFSQ3hEUVVGRE8wRkJRM0JHTEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0xUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTmFMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMnBDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNSRUxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVTdRVUZEVml4RFFVRkRPenRCUVVWRUxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRPMEZCUXk5Q0xFZEJRVWNzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTTdRVUZEYkVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU03TzBGQlJTOUNMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMGdzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETzBGQlF6TkNMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF6dEJRVU5vUml4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTzBGQlEzSkVMRkZCUVZFc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRhRU1zUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHp0QlFVTmFMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTA3UVVGRFdDeERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTlNMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRPVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUk8wRkJRM0pDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR6dEJRVU51UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETEU5QlFVODdRVUZEVkN4RFFVRkRMRU5CUVVNN1FVRkRSaXhEUVVGRExFTkJRVU03UVVGRFJqczdRVUZGUVN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRPMEZCUXpORExGRkJRVkVzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU01UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdRVUZETjBRc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRia1lzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3p0QlFVTmlPMEZCUTBFc1MwRkJTeXhEUVVGRExIbENRVUY1UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOdVJDeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUTJoRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVOb1FpeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTXpRaXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRNME1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU5zUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVONFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRMVlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETzBGQlEyWXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWs3UVVGRFZDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMHdzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03UVVGREwwUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTzBGQlEzWkNMRU5CUVVNc1EwRkJRenRCUVVOR0xFTkJRVU1zUTBGQlF6dEJRVU5HTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03UVVGRE0wa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRPVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEVWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdRVUZEYUVJc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6RkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJRenRCUVVNNVFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU4yUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRka1VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrN1FVRkRMMElzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXpReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU40UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRPMEZCUTJoRUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4TlFVRk5PMEZCUXpOQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETzBGQlF6ZEVMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU03UVVGRGJrTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSk8wRkJRekZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdRVUZEZGtNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEYmtNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5PMEZCUTJJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVGl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF6dEJRVU4yUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTQ3hEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTm1MRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU53UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRlRWdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTB3c1EwRkJReXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTNSQ0xFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTndReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5JTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRFlpeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRPMEZCUTJoRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwZ3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRNMElzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdRVUZETjBJc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRka0lzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU5zUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVONFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRMVlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrN1FVRkRWQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUXpWQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk1MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFNpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRPMEZCUTNCRUxFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1EwRkJRenRCUVVNNVJDeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITzBGQlF6ZERMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eFRRVUZUTzBGQlEyaENMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGNFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5xUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNN1FVRkRiRU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE9VZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTTdRVUZEWml4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONFFpeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTklMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1FVRkRPVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBPMEZCUTFnc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTzBGQlExWXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSk8wRkJRMUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5NTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXZReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZsQlFWa3NRMEZCUXl4VFFVRlRMRU5CUVVNN1FVRkRNMElzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF6dEJRVU5xUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTTdRVUZEWml4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNN1FVRkRVQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUenRCUVVONFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZEYWtJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUjBGQlJ5eERRVUZETzBGQlEyaERMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMGdzUTBGQlF5eERRVUZETzBGQlEwWXNRMEZCUXl4RFFVRkRPMEZCUTBZc1EwRkJRenRCUVVORUxFdEJRVXNzUTBGQlF5dzRRa0ZCT0VJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGVFUXNRMEZCUXl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXl4RFFVRkRMSGxDUVVGNVFpeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRia1VzUTBGQlF5eEhRVUZITEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRTlCUVU4N1FVRkRMME1zUTBGQlF5eEhRVUZITEVOQlFVTXNhVUpCUVdsQ08wRkJRM1JDTEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUTFJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUTJoQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUXpsRUxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFMUJRVTA3UVVGRE1VSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1EwRkJRenRCUVVNeFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhwUWtGQmFVSTdRVUZETTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTzBGQlExWXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTQ3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4UFFVRlBMRU5CUVVNN1FVRkRjRVFzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRkRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN6dEJRVU40UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTB3c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1FVRkRja0lzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1R0QlFVTndReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4cFFrRkJhVUk3UVVGRE0wSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRE9VSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTQ3hEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrN1FVRkRja0lzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5XTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNelJDeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEUxQlFVMDdRVUZETTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNhVUpCUVdsQ08wRkJRMnBFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN6dEJRVU4wUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRGVrTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTldMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTI1Q0xFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUVHRCUVVONFF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFqdEJRVU51UlN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRGVrUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRGRrTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTQ3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU16UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExHbENRVUZwUWp0QlFVTnVSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdRVUZETTBRc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1FVRkRhRVFzUTBGQlF5eERRVUZETzBGQlEwWXNRMEZCUXl4RFFVRkRPMEZCUTBZc1EwRkJRenRCUVVORUxFdEJRVXNzUTBGQlF5eHZRMEZCYjBNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNeFJDeERRVUZETEV0QlFVc3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSenRCUVVOcVJDeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMEZCUTFBc1EwRkJReXhIUVVGSExFTkJRVU1zWTBGQll6dEJRVU51UWl4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVOU0xFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRhRVFzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03UVVGRE5VTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpGRUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZETDBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpPMEZCUTI1RUxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONlJDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRNVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNUdEJRVU53UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdRVUZEWkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzUkNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYWtRc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGRGNFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE0wVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRUdEJRVU5hTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOTUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNN1FVRkRaaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU53UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETzBGQlEycERMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEYUVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTlFMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0QlFVTjBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk9MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5NTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJRenRCUVVOaUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03UVVGRGJFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRE8wRkJRelZDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVNNVFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwN1FVRkRaQ3hEUVVGRExFTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzaEdMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZsQlFWa3NRMEZCUXp0QlFVTnVRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5JTEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMllzUTBGQlF5eERRVUZETEVOQlFVTXNZVUZCWVN4RFFVRkRMR05CUVdNc1EwRkJRenRCUVVOb1F5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU5rTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTBnc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTmlMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU5vUXl4RFFVRkRMRU5CUVVNN1FVRkRSaXhEUVVGRExFTkJRVU03UVVGRFJpeERRVUZET3p0QlFVVkVMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMGdzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETzBGQlEyaERMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVOdVF5eERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMEZCUXpGRU8wRkJRMEVzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8wRkJRMnhDTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVObUxFTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNCRExFTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0QlFVTjZReXhEUVVGRE8wRkJRMFFzUTBGQlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkRiRUlzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE1VTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZEYmtJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTzBGQlExZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUE8wRkJRMWdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5NTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU5xUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF6dEJRVU5FTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOWUxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVczdRVUZEYUVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdRVUZEYWtNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXM3UVVGRGVrSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVazdRVUZEY2tJc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGNrVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3p0QlFVTjJRaXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkRha0lzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNUdEJRVU5pTEVOQlFVTTdRVUZEUkN4RFFVRkRPenRCUVVWRUxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRPMEZCUXpkQ0xFdEJRVXNzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTTdRVUZEZEVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRla0lzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTTVSeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU4yUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1pETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZEVZc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJRenRCUVVONlFpeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpPMEZCUTFvN1FVRkRRU3hMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBRaXhEUVVGRExFbEJRVWtzUTBGQlF6dEJRVU5PTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhMUVVGTE8wRkJRMnBDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMUlzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRWQ3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRPMEZCUTJJc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXp0QlFVTmtMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTMEZCU3p0QlFVTm9RaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVR0QlFVTjZReXhEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4VFFVRlRPMEZCUXpsRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTk8wRkJRMmhDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTzBGQlEyNUNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5PMEZCUTI1Q0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTk8wRkJRMnBDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOT3p0QlFVVm9RaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTA3UVVGRE9VSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5PMEZCUTNwQ096dEJRVVZCTEVOQlFVTXNVVUZCVVN4RFFVRkRPMEZCUTFZc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEV0QlFVczdRVUZEYWtJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4TFFVRkxPMEZCUTJoQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTFJc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVkN4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETzBGQlEySXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF6dEJRVU5rTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRUdEJRVU53UWl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5ZTEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXp0QlFVTnFRenM3UVVGRlFTeERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTlNMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU03UVVGREwwSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrN1FVRkRha0lzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0QlFVTTFRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSE8wRkJRM2hDTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNUdEJRVU51UWl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhPMEZCUTNCQ0xFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4UlFVRlJPMEZCUTNCQ0xFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTTdRVUZEZEVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITzBGQlEyaERMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMEZCUTNoRkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TlFVRk5PMEZCUTJ4Q0xFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJRenRCUVVOc1F5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1IwRkJSenRCUVVOb1FpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWs3UVVGRGJFSTdPMEZCUlVFc1IwRkJSeXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXp0QlFVTXZRaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrN1FVRkRha0lzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMllzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSE8wRkJRM0JDTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRUdEJRVU53UWl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVsQlFVazdRVUZEZGtJN08wRkJSVUVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRE8wRkJRM1pDTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhKUVVGSk8wRkJRMlk3TzBGQlJVRXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXp0QlFVTTNRaXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTMEZCU3p0QlFVTm9RaXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnp0QlFVTmlPenRCUVVWQkxFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETzBGQlEyNURMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVYzdRVUZEYkVJc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhPMEZCUTNCQ096dEJRVVZCTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNN1FVRkRWaXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrN1FVRkRka0k3TzBGQlJVRXNRMEZCUXl4UFFVRlBMRU5CUVVNN1FVRkRWQ3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMnhDTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ6dEJRVU5zUWl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpPMEZCUTNaQ096dEJRVVZCTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJRenRCUVVOa0xFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF6dEJRVU51UWpzN1FVRkZRU3hEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU5TTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTjBRanM3UVVGRlFTeERRVUZETEVsQlFVa3NRMEZCUXp0QlFVTk9MRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJRenRCUVVOd1FpeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJFSXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1R0QlFVTjJRaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSE8wRkJRM1pDT3p0QlFVVkJMRU5CUVVNc1MwRkJTeXhEUVVGRE8wRkJRMUFzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEzUkNPenRCUVVWQkxFTkJRVU1zUzBGQlN5eERRVUZETzBGQlExQXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTzBGQlEycENMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJRenRCUVVOdVFqczdRVUZGUVN4RFFVRkRMRWRCUVVjc1EwRkJRenRCUVVOTUxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTVHRCUVVOcVFpeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSE8wRkJRMklzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnp0QlFVTTNRaXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrN1FVRkRia0lzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5zUWpzN1FVRkZRU3hKUVVGSkxFTkJRVU03UVVGRFRDeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFbEJRVWs3UVVGRGFrSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJRenRCUVVNdlFpeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEZEVJN08wRkJSVUVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRPMEZCUTFnc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4VFFVRlRPMEZCUXpWQ0xFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4UFFVRlBPMEZCUTJwQ096dEJRVVZCTEVkQlFVY3NRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRiRUlzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk03UVVGRGFrY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3p0QlFVTndRaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjN1FVRkRiRUlzUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wRkJRMjVETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRE8wRkJRek5DTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpPMEZCUTNwQ0xFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXM3UVVGRGVFSXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVODdRVUZETjBNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4TFFVRkxPMEZCUTNKQ0xFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRCUVVNdlFpeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFOUJRVTg3UVVGRGRrSTdRVUZEUVN4RFFVRkRPMEZCUTBRc1MwRkJTeXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOMFF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRE8wRkJRMnhDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUk8wRkJRMmhDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEV2l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEyaENMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTzBGQlEyUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTmFMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTTdRVUZEYWtJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVODdRVUZEWml4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFR0QlFVTmtMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOa0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRE8wRkJRM1JDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNUdEJRVU53UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOa0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1FVRkRaQ3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1R0QlFVTmFMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOaUxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1FVRkRaaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3p0QlFVTmlMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOaUxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1FVRkRaaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3p0QlFVTmlMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOaUxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNN1FVRkRZaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnp0QlFVTllMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRCUVVOd1dTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTNSQ3hMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVU3UVVGRE9VUXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZWQlFWVTdRVUZETjBNc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU03UVVGRE4wTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVOb1F5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRWQ3hEUVVGRExFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNaRExFTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkROME1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJwRUxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzcERMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpOQ0xFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXp0QlFVTXpSQ3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR6dEJRVU12UlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEycEZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNMVF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRka1VzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdRVUZEY2tZc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZETTBNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNKRUxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU03UVVGRGRrTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1JGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF6dEJRVU4wUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZGtNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTJZc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5LTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRek5DTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUXpsRUxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwZ3NRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXp0QlFVTjJSQ3hEUVVGRE8wRkJRMFFzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVONlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1VVRkJVU3hEUVVGRE8wRkJRemxETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWs3UVVGRGRrTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJRenRCUVVOUUxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXM3UVVGRFdpeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzWkNMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNKRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTzBGQlEzQkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1FVRkROVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRha1FzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE5VTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpPMEZCUXpOQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRPMEZCUTJoRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRla0lzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBGQlEyeEhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5NTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZEZUVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwN1FVRkRla01zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRelZHTEVOQlFVTXNRMEZCUXp0QlFVTkdMRU5CUVVNN1FVRkRSQ3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVkN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNN1FVRkRjRU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF6dEJRVU14UkN4RFFVRkRPMEZCUTBRc1EwRkJRenRCUVVORUxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTTdRVUZEZEVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVk8wRkJRM0pETEVWQlFVVXNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF6czdRVUZGY0Vjc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFNDeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZETlVJc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEY2tNc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXp0QlFVTTVReXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU53UXl4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhoUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTI1R0xFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrN1FVRkRjRUlzUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHRkJRV0VzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0zUml4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlF6RkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZGtJc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3p0QlFVTjRRaXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJRenRCUVVNNVFpeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXc0UWtGQk9FSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzaEVMRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNiME5CUVc5RExFTkJRVU03UVVGRGVFUXNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTNwSExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0QlFVTm9RaXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5JTEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUTFJc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRNVUlzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRPMEZCUTFBc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU03UVVGRGRrTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJZc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJRMnhDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEc5RFFVRnZReXhEUVVGRE8wRkJRM2hFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZEYmtnc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1FVRkRjRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOUUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNN1FVRkRWQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTTdRVUZEZWtNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpWTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTI1Q0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTFSaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJRenRCUVVNMVJDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRlRWdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNc1UwRkJVenRCUVVNelJDeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzN1FVRkRiRUlzUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTndVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk9MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5NTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTk8wRkJRMWdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyNUZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdRVUZEV0N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwZ3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzSkNMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1FVRkRha01zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU0N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEySXNRMEZCUXl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZEZWtJc1EwRkJReXhEUVVGRE8wRkJRMFlzUTBGQlF5eERRVUZETzBGQlEwWXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMHdzUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTenRCUVVOMFFpeEZRVUZGTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyNUdMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTzBGQlEyeENMRU5CUVVNc1EwRkJRenRCUVVOR0xGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkROVUlzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRha1FzUTBGQlF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBGQlEyeERMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTk8wRkJRMnBETzBGQlEwRXNSMEZCUnl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNUdEJRVU40UWl4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU4wUkN4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMnBETEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzN1FVRkRWaXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOa0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVOaUxFTkJRVU1zUTBGQlF5eERRVUZETEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNN1FVRkRkRUlzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSk8wRkJRMllzUTBGQlF5eERRVUZETzBGQlEwWXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRek5DTEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU53UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETzBGQlExWXNRMEZCUXl4RFFVRkRPMEZCUTBZc1EwRkJRenRCUVVORUxFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhGUVVGRkxFTkJRVU03UVVGRGNrTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXp0QlFVTm9ReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXp0QlFVTTNReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWM3UVVGRGJFUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNNVNDeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMSGRDUVVGM1FpeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1JTeERRVUZETEV0QlFVc3NRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTA3UVVGRE4wSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUTI1Q0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMSGRDUVVGM1FpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4elFrRkJjMElzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyeEpMRU5CUVVNN1FVRkRSQ3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEhOQ1FVRnpRaXhEUVVGRExFTkJRVU1zWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4yUkN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRGSXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJRMlFzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU0N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllUdEJRVU16UWl4RFFVRkRMRU5CUVVNN1FVRkRSaXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBGQlEyeEVMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMEZCUTNSRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRM1pDTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU03UVVGRGJFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU55UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTE8wRkJRMUlzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVObUxFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRE8wRkJRMmhGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkROVVFzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRGNrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTk8wRkJRMVlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJRenRCUVVOV0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1EwRkJRenRCUVVNeFF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN6dEJRVU42UWl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpORUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhYUVVGWExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEzcEZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5PMEZCUTNSRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXp0QlFVTndReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wRkJRekZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4TlFVRk5PMEZCUTI1Q0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wRkJRM1JITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU53UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzBGQlEzUkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTzBGQlEzSkVMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXZRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRGFrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXpSQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVObUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTA0c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRE8wRkJRM0pFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXp0QlFVTjBSQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXp0QlFVTTNRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU03UVVGRGVrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOT0xFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRE8wRkJReTlFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzN1FVRkRVaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUTJZc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNN1FVRkRMMFFzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXk5RExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1FVRkRjRU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjZSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRPMEZCUXpGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU03UVVGRGNFTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOd1FpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRE1VTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTjBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTQ3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTzBGQlExSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEY0VJc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF6dEJRVU53UlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGVFVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGQlF6dEJRVU5xUkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM0JFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRCUVVOeVNpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwN1FVRkRWaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJRM1JDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzN1FVRkRVaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRPMEZCUTJRc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNN1FVRkRMMFFzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXp0QlFVTTFReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTzBGQlExSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF6dEJRVU5rTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETzBGQlEzcEVMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMEZCUTNCQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVYzdRVUZETTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4SFFVRkhMRU5CUVVNN1FVRkRPVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzQkdMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMGdzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3p0QlFVTlNMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzN1FVRkRjRUlzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUE8wRkJRM3BDTEVOQlFVTTdRVUZEUkR0QlFVTkJMRXRCUVVzc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVazdRVUZETVVJc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVlVGQlZUdEJRVU0xUXl4UlFVRlJMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRha01zUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8wRkJRM0JDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZUdEJRVU40UkN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjJRaXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEhWQ1FVRjFRaXhEUVVGRExFTkJRVU1zUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU03UVVGRGFrVXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTTNSQ3hEUVVGRE8wRkJRMFE3UVVGRFFTeFJRVUZSTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6ZENMRU5CUVVNc1VVRkJVU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXk5RU8wRkJRMEVzVVVGQlVTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRNMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMR2RDUVVGblFpeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRTFCUVUwN1FVRkRia1E3UVVGRFFTeFJRVUZSTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdRVUZETVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6VkNMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4bFFVRmxPMEZCUTNwRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU03UVVGRGRFTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTQ3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOdVF5eERRVUZETEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhsUVVGbE8wRkJRelZFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4WlFVRlpMRU5CUVVNN1FVRkRMMFlzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU0N4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMR3RDUVVGclFpeERRVUZETzBGQlEyNUZMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zTmtKQlFUWkNMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zYVVKQlFXbENMRU5CUVVNN1FVRkRjRVVzUTBGQlF6dEJRVU5FTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXp0QlFVTjJRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU51UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zTmtKQlFUWkNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBSaXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYmtRc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYmtNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNaRExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZEZWtNc1EwRkJReXhMUVVGTExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU01UXl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZWtNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRia01zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6RkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMGdzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJRenRCUVVOdVJTeERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNelJDeERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU03UVVGRGRrVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTTFRaXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNUdEJRVU14UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpsQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU03UVVGRGRFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTk8wRkJRMVlzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU5hTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTaXhEUVVGRExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJRenRCUVVOMFFpeERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU16UWl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOSU8wRkJRMEVzVVVGQlVTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzBGQlF6RkRMRU5CUVVNc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRemxETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNNVFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dEJRVU5zUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETzBGQlEzQkNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1FVRkRha0lzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU03UVVGRE1VUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMHdzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFR0QlFVTlVMRU5CUVVNc1EwRkJRenRCUVVOR0xFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6VkNMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRPMEZCUXpGQ0xFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU03UVVGRGRFTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTQ3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6bERMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVazdRVUZEY0VNc1EwRkJReXhEUVVGRExFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTzBGQlF6bERMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU03UVVGRE5VUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF6dEJRVU16UlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVOa0xFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJReTlETEVOQlFVTXNRMEZCUXl3MlFrRkJOa0lzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU42UlN4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdRVUZETVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETzBGQlExQXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjZReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRGJrSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETzBGQlEzSkNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRCUVVOc1FpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk9MRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMGdzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYUVJc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8wRkJRMmhFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJRenRCUVVOUUxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJRenRCUVVOeVFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdRVUZEYkVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNKQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJRenRCUVVOeVFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdRVUZEYkVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRCUVVOc1FpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOT0xFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwZzdRVUZEUVN4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExEWkNRVUUyUWl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTnlSaXhEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM0pDTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE5VUXNRMEZCUXp0QlFVTkVMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNaQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTTdRVUZEVGl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRM1pFTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJrTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJRenRCUVVOc1FpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRFdpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTBvc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOMlFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF6dEJRVU51UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdRVUZEV2l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU55UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRMME1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETzBGQlEycEVMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRia0lzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRNME1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF6dEJRVU0zUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRCUVVOV0xFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxPMEZCUTJZc1EwRkJReXhEUVVGRE8wRkJRMFlzUTBGQlF6dEJRVU5FTEVOQlFVTXNVVUZCVVN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEycEVMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyeERMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZGtNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRja01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJRMlFzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF6dEJRVU51UkN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXp0QlFVTTVReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwb3NRMEZCUXp0QlFVTkVMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTk8wRkJRM3BDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU03UVVGRFppeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5vUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTE8wRkJRM3BDTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF6dEJRVU5vUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExHbENRVUZwUWl4RFFVRkRPMEZCUTJ4RU8wRkJRMEVzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBGQlF6TkRMRXRCUVVzc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRCUVVNdlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0QlFVTTVRaXhEUVVGRExGRkJRVkVzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZEVVc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdRVUZEZUVRc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFNDeERRVUZETEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRla1lzUTBGQlF5eERRVUZETEdGQlFXRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1FVRkROVVFzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU0R0QlFVTkJMRWRCUVVjc1EwRkJReXhwUWtGQmFVSTdRVUZEY2tJc1VVRkJVU3hEUVVGRExGZEJRVmNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVOc1F5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5PMEZCUTJ4RExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTTdRVUZET1VJc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTJJc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEzcERMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTjRReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wRkJRelZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTzBGQlF6ZENMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNN1FVRkRja1FzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU03UVVGRGJrTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNCQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUXpsQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOU0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1FVRkRia1VzUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTzBGQlF6TkNMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUE8wRkJRMjVETEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdRVUZEZWtJN1FVRkRRU3hSUVVGUkxFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTNwQ0xFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNZVUZCWVN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6VkNMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGVFWXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRE9VUXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOS0xFTkJRVU1zUTBGQlF5eGhRVUZoTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJRenRCUVVNeFFpeERRVUZETzBGQlEwUXNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJRenRCUVVOb1F5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRMW9zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF6dEJRVU5zUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTTdRVUZEZEVJc1EwRkJRenRCUVVORU8wRkJRMEVzVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzBGQlEzSkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRE8wRkJRelZETzBGQlEwRXNRMEZCUXl4RFFVRkRPMEZCUTBZc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNWVUZCVlN4RFFVRkRPMEZCUTJ4RkxFTkJRVU03UVVGRFJDeFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBGQlEzcERMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjN1FVRkRha1FzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNMVF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTNwRUxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzcEdPenRCUVVWQkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEwZ3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGREluMD0="}},"time_used":71,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":40,"receive":31,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"asset-metadata-service-production.s3.amazonaws.com/asset_icons/c347b6d1a7624e24c4e90089a69dfc8fb75523daf8eeb88007372a0c3a30d428.png","fqdn":"asset-metadata-service-production.s3.amazonaws.com","domain":"asset-metadata-service-production.s3.amazonaws.com","tld":"s3.amazonaws.com"},"ip":{"addr":"16.15.223.116","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.057Z","timestamp":1785108244057,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"s3.amazonaws.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Tue, 18 Nov 2025 00:00:00 GMT","end":"Fri, 06 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"D4:87:03:14:FE:12:27:46:E3:63:CC:7B:43:A1:D0:D8:B9:17:AF:7D","sha256":"7E:BF:42:63:5D:C3:2B:CB:97:F6:0E:38:3E:E1:F8:63:39:AA:CE:A2:39:E1:56:B9:8D:74:1C:79:12:67:14:36"}}},"request":{"raw":"GET /asset_icons/c347b6d1a7624e24c4e90089a69dfc8fb75523daf8eeb88007372a0c3a30d428.png HTTP/1.1\r\nHost: asset-metadata-service-production.s3.amazonaws.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\nReferer: https://www.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\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/1.1 200 OK\r\nx-amz-id-2: yzuEjc9e5e8A+vx+K3s8MXQdbPshhxWYEVxO12L2eDgeocqp047+SPfPePCAW/zghdiVdw7FVGqU44U5CiFREwYk++1mCNAk\r\nx-amz-request-id: 3SEBGJD53FFZ0002\r\nDate: Sun, 26 Jul 2026 23:24:05 GMT\r\nLast-Modified: Wed, 22 Oct 2025 15:05:25 GMT\r\nETag: \"3956b77d83b21395ae24787514fba26d\"\r\nx-amz-server-side-encryption: AES256\r\nCache-Control: public, max-age=31536000\r\nx-amz-version-id: null\r\nAccept-Ranges: bytes\r\nContent-Type: binary/octet-stream\r\nContent-Length: 9578\r\nServer: AmazonS3\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","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"]}],"data":{"size":9578,"size_decoded":10068,"mime_type":"image/png","magic":"PNG image data, 320 x 320, 8-bit/color RGBA, non-interlaced","md5":"3956b77d83b21395ae24787514fba26d","sha1":"3a0b5c88327a30ae958f9ccdfcf044546041e02d","sha256":"c347b6d1a7624e24c4e90089a69dfc8fb75523daf8eeb88007372a0c3a30d428","sha512":"ed509bf7a77132a552c258fbecd2d350bded8124020ff8454ab1cb776039d5deab367374cfee3de1182f99f1a234e0960c75c03c510d43f61aa59be48c5c6555","ssdeep":"192:TTmVmhA7VjFUzwEZwSlNThfqd+9WFHCzgvRMphKwsevaqU:TTfmK9lNtSEQHVvR0U","tlshash":"d012b01b8a48b11895be57808f310ed5f8fb3ebbc24ca01c0fd1bd109e5d65021f916a","first_seen":"2025-10-23T15:32:30.152877Z","last_seen":"2026-07-26T23:25:46.888484Z","times_seen":72,"resource_available":false,"data":"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"}},"time_used":400,"timings":{"blocked":-1,"dns":7,"connect":92,"send":0,"wait":114,"receive":0,"ssl":188},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"dynamic-assets.coinbase.com/e81509d2307f706f3a6f8999968874b50b628634abf5154fc91a7e5f7685d496a33acb4cde02265ed6f54b0a08fa54912208516e956bc5f0ffd1c9c2634099ae/asset_icons/3af4b33bde3012fd29dd1366b0ad737660f24acc91750ee30a034a0679256d0b.png","fqdn":"dynamic-assets.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.061Z","timestamp":1785108244061,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /e81509d2307f706f3a6f8999968874b50b628634abf5154fc91a7e5f7685d496a33acb4cde02265ed6f54b0a08fa54912208516e956bc5f0ffd1c9c2634099ae/asset_icons/3af4b33bde3012fd29dd1366b0ad737660f24acc91750ee30a034a0679256d0b.png HTTP/1.1\r\nHost: dynamic-assets.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-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\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: image/png\r\ncontent-length: 1082\r\nlast-modified: Thu, 28 Feb 2019 18:36:44 GMT\r\netag: \"154bbc236392c91f77c9cc3da087c27f\"\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 92e153168d2c05a354abcd11544943e2.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: VIE50-P4\r\nx-amz-cf-id: 0ZEuQlCq4OU8AmPYh_PV7bZn0hPaybEwJ94onyuNQvbY6lz7tv7AuA==\r\ncf-bgj: h2pri,imgq:100\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=xquZ3%2FExXCGP%2FsGDFsXITXRDriQZRWsRQ%2BKx0ZJ9XpiuRTmJqqg2ZPwlOf6NQ7U%2FsWUetb%2Fyv%2FrNdlShb5XPMjEb1JWFDG1q1qEHw6bNCxhIO2MzE6Tx3NeKpZ8mY%2Bt5%2FXcrHkxQENrIDTZhocEV\"}]}\r\ncache-control: public, max-age=7200\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\ncf-polished: ok, orig_size=2420\r\npriority: u=4;i=?0,cf-chb=(37;u=2;i=?0 298;u=5;i=?0)\r\nx-content-type-options: nosniff\r\nage: 4823\r\nexpires: Mon, 27 Jul 2026 01:24:04 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\ncf-ray: a21727dd681f0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":1082,"size_decoded":2279,"mime_type":"image/png","magic":"PNG image data, 96 x 96, 8-bit colormap, non-interlaced","md5":"f59f9f914b0b58ee49ca375175984c4e","sha1":"0ab6763016e08557d47a7f512009ce2d1238615d","sha256":"beabbb4d3acab578e71455d7a30e282ad4cca99a7205dc8197c4bf218c5de7e5","sha512":"729006a4722c7635c3b404ab11a41f0bf528298d1e2f47c866d1f1288ce53e4fbfeca6f9a348a6fdc6a81bb05f0911d1c4951c838e54853157bbae495c602d2c","ssdeep":"","tlshash":"dd1163b6648dfcbc6f601504c9c6452a60667169141b1121ad2ed8ee1270d91cbf8e46","first_seen":"2024-07-29T18:53:15Z","last_seen":"2026-07-26T23:25:46.814311Z","times_seen":143,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACrUExURQAAACAgICAgICAgICQkJCAgICAgICMjIyAgICMjIyMjIyAgICIiIiIiIiIiIiIiIiMjIyIiIiEhISMjIyEhISEhISMjIyEhISIiIiEhISIiIiEhISIiIv////Ly8vHx8eTk5OPj49bW1tXV1cjIyMfHx7q6uqysrJ+fn56enpGRkZCQkIODg4KCgnV1dXR0dGdnZ1lZWUxMTEtLSz4+Pj09PTAwMC8vLyIiInVQHJkAAAAddFJOUwAQIDBAQE9QUF9gYG9wj5Cfn6Cvr7C/v8/P39/vQlDVbwAAAwRJREFUeNrt2VFX2kAQBeDZQGoDxIhGwE2iRrG0lqJIgPv/f1lbkDNwQjezy+pTvyee7k12YM8mkIxq95Krkc4BINeDq6TXVuSL6lxoHDHqR4GH9N4ABoMTO9oDNLo6c7/4DCI6Ihe9HMx/RTsD818RpLDWD0gsysH834Q6h6NzRQJBBmc6oEatHCfQLWoQ4UQRGfVwslie778hgoT7KrXgSUv2/XSXB3SEyuCNVlR3Do/OqaYLryLBAPyO4RKepcIFchfSvgwHfhZbz5CYFVsT7NO1G3BtWBRbD4YtI4N7w+LuPX+FQ7kyTYAb7PPrt5DBuWFZz69P4QxwbViWxcZ9ZfoipThuUmzNHPMxpI0AkDTI85niEUsb5Pk85gHkDfJ8XqMABquHYuNuYZPPFK+QoME+Hx3eRy0b1o/Fxu0bTC6IaASz1T032OZDEyk0qe5rv7h5yflmitqQN5TTBYDqZVy8e0WTkGLIGnbKO/48Q6OYElg2WOUjoRSODbdzCFzTAM14b2VPFSRGlEGomuzHzyGjKYfYajZ5KouynEwrSOWED/a/oJHNkKvpt/Lvrjf+MbcYcgah+bhg5QwymkYQWX8vDpVLSAwpBTOef2qmsq0iATOe3+qeRZtdbHf95WNp1RBTaJH/9LLajHsi37BDUuL821fw7i1tUHy0tjp/riayhhEfW2T5bFxszWHSJ6KuMN9wXjI/LisYrHfrXwEuDQH9MUSN4XwlbuAHhNgtn8985dL8QkFZ5rOqqSEgMq3RhM9vbg3XtBUKHj6cGr7Qu0yQ79CgaSdG3W7//wW4NkS0o3L5Q7K8QROL7fPZ222x8bjGgUj2Ose5QdO+EN5FdCCFZ306FOTwSgef9VqTJfAo+dRXy/7HoINPfb3vf9Ad+qcYHsRkEPvO979KHWrQynCCvPXhfzUKqASOEkUy3QwO8g6JBZewlgbE/N+EDon5r8hjYv4rdE+Ro68pGg1DOkXQHRrT+eJP6bi8wRFZv6vIFxX2knSY5QCQZzdp0guF4b8BnXDUsaA1r9oAAAAASUVORK5CYII="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/api/v3/coinbase.killswitch.KillSwitchService/KillSwitches?q=eyJzY29wZSI6ImNvbnN1bWVyIiwicGxhdGZvcm0iOiJ3ZWIiLCJ2ZXJzaW9uIjoiZGU4OTQ3MmYwNDE4NTdjOTJkMzljNTE3YjQ5YzM2MGI3ZTA4ZTU3OCJ9","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.558Z","timestamp":1785108244558,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /api/v3/coinbase.killswitch.KillSwitchService/KillSwitches?q=eyJzY29wZSI6ImNvbnN1bWVyIiwicGxhdGZvcm0iOiJ3ZWIiLCJ2ZXJzaW9uIjoiZGU4OTQ3MmYwNDE4NTdjOTJkMzljNTE3YjQ5YzM2MGI3ZTA4ZTU3OCJ9 HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nContent-Type: application/json\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/json\r\ncache-control: public, max-age=30\r\nserver: cloudflare\r\ntrace-id: 8556929605270275740\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=H7xQMwQLkjKZcY7I65tP7nERlI1eP5n4OYuSw9GUwNMQWG%2Fib1w5uiTfyLIQEu7ucBHTXuw2Gnj5cOEBpv%2Bd3%2FSarakfvZYUegIQNPDGiociC%2FtnjXa4cTjBKN8T93RJLBA%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 24\r\nlast-modified: Sun, 26 Jul 2026 23:23:41 GMT\r\nexpires: Sun, 26 Jul 2026 23:24:34 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nvary: accept-encoding\r\ncontent-encoding: gzip\r\ncf-ray: a21727e07d4a0883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":14275,"size_decoded":4835,"mime_type":"application/json","magic":"JSON text data","md5":"0e2d62833ba0f279d359f03a2e9a947c","sha1":"9f7fcd5267d03208f9288f074e8070724b939f97","sha256":"b90e274217b4be3dd841014ab5df0f71092a18e0df9ca0f4a198a5a6a805d1d8","sha512":"99c17301f94b233c27447d52ae749b9e367a02e1976a2b9be404892cca0e37f8032e8328fa77e4f11d68c40276aa2471377bde6104411ebc1cae3d5b10d0d0bb","ssdeep":"384:FxJJhcW7aH8mL6NcAXaQT41RtnZjWJ5WE6cDrYgSvtREkyWZ:FrcW7aAKJLlWJfDkgSvt+NI","tlshash":"205260a8c8a46c3be4ca9569d869bf42ccffdb730d1e5851f52c651c2e701a3730a827","first_seen":"2026-07-26T23:24:50.400449Z","last_seen":"2026-07-26T23:25:46.839253Z","times_seen":3,"resource_available":false,"data":"eyJraWxsc3dpdGNoZXMiOnsiZW5hYmxlX2Fkdm9jYWN5X3BvbGl0aWNpYW5fc29jaWFsX3NoYXJlX3JuIjp0cnVlLCJlbmFibGVfYWxsX2Fzc2V0c19sMl9ybiI6dHJ1ZSwiZW5hYmxlX2Fzc2V0X3BhZ2Vfc29jaWFsX21lZGlhX21ldHJpY3MiOnRydWUsImVuYWJsZV9hc3NldF9wcmljZV9zdWJzY3JpcHRpb25fY2Jybl9ybiI6dHJ1ZSwiZW5hYmxlX2Fzc2V0c191a19maW5fcHJvbV93ZWIiOnRydWUsImVuYWJsZV9iYWNrX25hdl9nZXN0dXJlX292ZXJsYXlfcm4iOnRydWUsImVuYWJsZV9ib3VudHl2Ml93ZWIiOnRydWUsImVuYWJsZV9jYl81MF9pbmZvX21hcmtldGluZ193ZWIiOnRydWUsImVuYWJsZV9jZHNfbnVtcGFkX3JuIjp0cnVlLCJlbmFibGVfY29kZV95ZWxsb3dfbTFfaW50bF93ZWIiOnRydWUsImVuYWJsZV9jb2RlX3llbGxvd19tMV93ZWIiOnRydWUsImVuYWJsZV9jb2RlX3llbGxvd19tMl93ZWIiOnRydWUsImVuYWJsZV9jb252ZXJ0ZXJfcGFnZV92Ml93ZWIiOnRydWUsImVuYWJsZV9jcmVkaXRfY2FyZF93YWl0bGlzdF9tYXJrZXRpbmdfcm91dGVfd2ViIjp0cnVlLCJlbmFibGVfY3lfd2F0Y2hsaXN0X3dlYiI6dHJ1ZSwiZW5hYmxlX2RlYml0X2NhcmRfbWFudWFsX2t5Y19mbG93X3JuIjp0cnVlLCJlbmFibGVfZGVmaV9vdXRhZ2VfY2hlY2tzX3dlYiI6dHJ1ZSwiZW5hYmxlX2Rlcml2YXRpdmVzX3Byb2R1Y3RfZXhwaXJ5X2Jhbm5lcl93ZWIiOnRydWUsImVuYWJsZV9kaXJlY3RfaGVscF9jZW50ZXJfcmVkaXJlY3Rfcm4iOnRydWUsImVuYWJsZV9lcnJvcl9iYW5uZXJfcmV0cnlfYnV0dG9uX3JuIjp0cnVlLCJlbmFibGVfZXVfcGVycHNfYmFubmVyX3JuIjp0cnVlLCJlbmFibGVfZXVfcGVycHNfYmFubmVyX3dlYiI6dHJ1ZSwiZW5hYmxlX2V4cGVyaW1lbnRzX3JlZnJlc2hlcl9ybiI6dHJ1ZSwiZW5hYmxlX2V4cGxvcmVfZHBfdGFibGVfZmlsdGVyX3JuIjp0cnVlLCJlbmFibGVfZXh0ZXJuYWxfd2FsbGV0c192Ml9ybiI6dHJ1ZSwiZW5hYmxlX2ZldGNoX2ludGVyY2VwdF9ybiI6dHJ1ZSwiZW5hYmxlX2Z1dHVyZXNfYmFsYW5jZV9zdW1tYXJ5X3dlYiI6dHJ1ZSwiZW5hYmxlX2dhbWlmaWNhdGlvbjJrX21pbmJ1eTUwIjp0cnVlLCJlbmFibGVfaGVscF9jZW50ZXJfYXV0aF9zZXNzaW9uX3JuIjp0cnVlLCJlbmFibGVfaGVscF9jZW50ZXJfaW5fYXBwX2Jyb3dzZXJfcm4iOnRydWUsImVuYWJsZV9pMThuX21ldHJpY3MiOnRydWUsImVuYWJsZV9pb3Nfc2NyZWVuX3Byb3RlY3Rfcm4iOnRydWUsImVuYWJsZV9sZWFkZXJib2FyZHNfZXhwbG9yZV93ZWIiOnRydWUsImVuYWJsZV9sZWFkZXJib2FyZHNfaG9tZV93ZWIiOnRydWUsImVuYWJsZV9sZWFybmluZ19yZXdhcmRzX3JlZGlyZWN0X3JuIjp0cnVlLCJlbmFibGVfbGVhcm5pbmdfcmV3YXJkc19yZWRpcmVjdF93ZWIiOnRydWUsImVuYWJsZV9sZWdpc2xhdGl2ZV9wb3J0YWxfcm4iOnRydWUsImVuYWJsZV9sb2FfZmFjZV9ybiI6dHJ1ZSwiZW5hYmxlX2xvZ2dlZF9vdXRfd2ViX2RleCI6dHJ1ZSwiZW5hYmxlX2xvZ2dpbmdfbWV0cmljc19ybiI6dHJ1ZSwiZW5hYmxlX2xvZ2dpbmdfbWV0cmljc193d3ciOnRydWUsImVuYWJsZV9tYXJrZXRfZGF0YV9kZXJpdmF0aXZlcyI6dHJ1ZSwiZW5hYmxlX21pY2FfZGlzY2xvc3VyZXNfd2ViIjp0cnVlLCJlbmFibGVfbmV0d29ya19yZXNwb25zZV9kZWJ1Z2dlcl93d3ciOnRydWUsImVuYWJsZV9uZXdfdGFnX2Rlcml2YXRpdmVzX3JuIjp0cnVlLCJlbmFibGVfcGFja3NfdjJfcm4iOnRydWUsImVuYWJsZV9wZXJwc193YXRjaGxpc3Rfd2ViIjp0cnVlLCJlbmFibGVfcGVyc2lzdGFudF9kaXNjbGFpbWVyX2Jhbm5lcl93ZWIiOnRydWUsImVuYWJsZV9wZXJzaXN0YW50X2Rpc2NsYWltZXJfZm9vdGVyX3dlYiI6dHJ1ZSwiZW5hYmxlX3JhdF9pbnR4X292ZXJkcmFmdF9udXhfcm4iOnRydWUsImVuYWJsZV9yYXRfaW50eF9vdmVyZHJhZnRfbnV4X3dlYiI6dHJ1ZSwiZW5hYmxlX3JldGFpbF9tb2RlX3N3aXRjaGVyX3YyX3JuIjp0cnVlLCJlbmFibGVfc2VjdXJpdHlfbG9ja19iYWNrZ3JvdW5kX3RpbWVvdXRfcm4iOnRydWUsImVuYWJsZV9zZXRfYW5hbHl0aWNzX3BhZ2Vfa2V5X3JuIjp0cnVlLCJlbmFibGVfc2lnbmVkX2luX2xpbmtfZGVwZW5kZW5jeV9pbmplY3Rpb25fcm4iOnRydWUsImVuYWJsZV9za2lhX3RyYWRlX2NvbXBvbmVudHNfcm4iOnRydWUsImVuYWJsZV9zcGxhc2hfZmFjZV92YXJpYW50c19ybiI6dHJ1ZSwiZW5hYmxlX3N3Y19iYW5uZXJfYWZ0ZXJfaWR2X3dlYiI6dHJ1ZSwiZW5hYmxlX3N3Y19vbmJvYXJkaW5nX2Jhbm5lcl9ybiI6dHJ1ZSwiZW5hYmxlX3N3Y19zdGFraW5nX3Vwc2VsbHNfcm4iOnRydWUsImVuYWJsZV9zd2Nfc3Rha2luZ191cHNlbGxzX3dlYiI6dHJ1ZSwiZW5hYmxlX3RyYW5zYWN0aW9uc19yZWZlcmVuY2VfZGVlcGxpbmtfcm4iOnRydWUsImVuYWJsZV90cmVuZGluZ18xaF9yZXNvbHV0aW9uX3JuIjp0cnVlLCJlbmFibGVfdHJlbmRpbmdfMWhfcmVzb2x1dGlvbl93ZWIiOnRydWUsImVuYWJsZV91c2RjX3BhZ2VfdjJfd2ViIjp0cnVlLCJlbmFibGVfdXNtX29uX2hjX3dlYnZpZXdfcm4iOnRydWUsImVuYWJsZV93M3dfZGVjb21wX3JuIjp0cnVlLCJlbmFibGVfd2F0Y2hsaXN0X2xpdmVfcHJpY2VzX3dlYiI6dHJ1ZSwiZW5hYmxlX3dlYjNfd2FsbGV0X2FkcF9hbmRfdHJhbnNhY3Rpb25zX3JuIjp0cnVlLCJlbmFibGVfd2ViM193YWxsZXRfYnJvd3Nlcl90cmFuc2FjdGlvbnNfcm4iOnRydWUsImtpbGxfYWNjX3Byb2R1Y3Rpb25fdHJhbnNmZXJfcmVkaXJlY3QiOnRydWUsImtpbGxfYWNjb3VudF9jaGVja2xpc3RfYmFubmVyX21pZ3JhdGlvbl9ybiI6dHJ1ZSwia2lsbF9hY3Rpb25hYmxlX2ZpbHRlcmluZ19ieV9lcnJvcl9jb2RlIjp0cnVlLCJraWxsX2FkZHJlc3NfZXZhbHVhdG9yX3JuIjp0cnVlLCJraWxsX2FkZHJlc3NfZXZhbHVhdG9yX3dlYiI6dHJ1ZSwia2lsbF9hZHBfZGV4X3NlbmRfc2tpcF9hc3NldF9zZWxlY3Rpb25fcm4iOnRydWUsImtpbGxfYWR2YW5jZWRfZGVwb3NpdF9hcHBsZV9wYXlfcm4iOnRydWUsImtpbGxfYWR2YW5jZWRfZGVwb3NpdF9maWF0X3ZpYV9wdWxsX3BheW1lbnRfbWV0aG9kX3JuIjp0cnVlLCJraWxsX2FkdmFuY2VkX2RlcG9zaXRfZ29vZ2xlX3BheV9ybiI6dHJ1ZSwia2lsbF9hZHZhbmNlZF9kZXBvc2l0X3BheXBhbF9ybiI6dHJ1ZSwia2lsbF9hZHZhbmNlZF9mZWVfYmFubmVyX3dlYiI6dHJ1ZSwia2lsbF9hZHZhbmNlZF9wb3J0Zm9saW9fZXJyb3JfYmFubmVyX3JuIjp0cnVlLCJraWxsX2Fkdm9jYWN5X3RyYW5zcGFyZW50X2xvdHRpZV9hdWRpb19ybiI6dHJ1ZSwia2lsbF9hZV9pZHZfaW1wcm92ZW1lbnRzX3JuIjp0cnVlLCJraWxsX2FlX2lkdl9pbXByb3ZlbWVudHNfd3d3Ijp0cnVlLCJraWxsX2FwcHNmbHllcl9wYmFfd2ViIjp0cnVlLCJraWxsX2Fzc2V0X3JhdGluZ3Nfcm4iOnRydWUsImtpbGxfYXNzZXRfcmF0aW5nc193ZWJfcXVlcnkiOnRydWUsImtpbGxfYXNzZXRfc3Rha2VfbnV4X25hdmlnYXRpb25fcm4iOnRydWUsImtpbGxfYXNzZXRfc3Rha2luZ19zdW1tYXJ5X2xlYXJuX2FydGljbGVfY2FyZF9ybiI6dHJ1ZSwia2lsbF9hc3NldF9zdHJ1Y3R1cmVkX3Jldmlld19leHBvc3VyZV9ybiI6dHJ1ZSwia2lsbF9hc3NldHNfdGFiX3Jld2FyZHMiOnRydWUsImtpbGxfYXVfdmljX2VkcF9kbF9udW1iZXJfc2tpcCI6dHJ1ZSwia2lsbF9iYWxhbmNlX3N1bW1hcnlfZGVyaXZhdGl2ZXNfcGVyZm9ybWFuY2VfYmFubmVyX3JuIjp0cnVlLCJraWxsX2Jhc2Vfc3RhYmxlY29pbl9sYXVuY2hfd2ViIjp0cnVlLCJraWxsX2JsZW5kZWRfcmF0ZV9pbl9hZHZhbmNlZF9tb2RlX3JuIjp0cnVlLCJraWxsX2JsZW5kZWRfcmF0ZV9pbl9hZHZhbmNlZF9tb2RlX3dlYiI6dHJ1ZSwia2lsbF9ib3Jyb3dfcGFnZV9ybiI6dHJ1ZSwia2lsbF9ib3Jyb3dfcGFnZV93d3ciOnRydWUsImtpbGxfYnJhdmVfYnJvd3Nlcl9hbGVydF93ZWIiOnRydWUsImtpbGxfY2FuZGxlX3ZhbGlkYXRpb25fd2ViIjp0cnVlLCJraWxsX2NhcmRfY3JlYXRpb25fbmFtZV9taXNtYXRjaCI6dHJ1ZSwia2lsbF9jYXJkX3NwZW5kX3VzZCI6dHJ1ZSwia2lsbF9jYXJkX3NwZW5kaW5nX2xpbWl0c193d3ciOnRydWUsImtpbGxfY2IxX2JyYW5kaW5nX2luX3RyYW5zYWN0aW9uX3NjcmVlbl9ybiI6dHJ1ZSwia2lsbF9jYjFfYnJhbmRpbmdfaW5fdHJhbnNhY3Rpb25fc2NyZWVuX3dlYiI6dHJ1ZSwia2lsbF9jYjFfY2h1cm5faW5jZW50aXZlX3JuIjp0cnVlLCJraWxsX2NiMV9yYXRfcHJlX3RyYWRlX3Vwc2VsbF9kcF9ybiI6dHJ1ZSwia2lsbF9jYjFfc2lnbnVwX25ldHdvcmtfb25seV9ybiI6dHJ1ZSwia2lsbF9jYjFfc2ltcGxlX3RyYWRlX2Zsb3dfY2FwIjp0cnVlLCJraWxsX2NiX2Fzc2lzdF9ybiI6dHJ1ZSwia2lsbF9jaGVja19jb2luYml6X3dhaXRsaXN0Ijp0cnVlLCJraWxsX2NvaW5iYXNlX2NhcmRfYXBwbGVfYW5kX2dvb2dsZV9wYXlfcm4iOnRydWUsImtpbGxfY29pbmJhc2VfY2FyZF9lbGlnaWJpbGl0eV9jaGVja19ybiI6dHJ1ZSwia2lsbF9jb2luYmFzZV9vbmVfZWxpZ2liaWxpdHlfY2hlY2tfd2ViIjp0cnVlLCJraWxsX2NvbmNpZXJnZV9jaGF0X2ZvcmNlZF9iYWNrdHJhY2tfcm4iOnRydWUsImtpbGxfY29udGVudGZ1bF9hcGkiOnRydWUsImtpbGxfY29ycmVsYXRlZF9hc3NldHNfd2ViIjp0cnVlLCJraWxsX2NyZWRpdF9jYXJkX3Jld2FyZF90aWVyX3Vwc2VsbF9ybiI6dHJ1ZSwia2lsbF9jcmVkaXRjYXJkX3ZpcF9ybiI6dHJ1ZSwia2lsbF9jcmVkaXRjYXJkX3dhaXRsaXN0X2luX2FwcF9ybiI6dHJ1ZSwia2lsbF9jcnlwdG9fc2NhbV9yZXBvcnRpbmdfdjFfcm4iOnRydWUsImtpbGxfY3J5cHRvX3NjYW1fcmVwb3J0aW5nX3YxX3dlYiI6dHJ1ZSwia2lsbF9jdXN0b21fcHJpY2VfYWxlcnRzX3N3aXBlX2FjdGlvbnNfcm4iOnRydWUsImtpbGxfZGFwcF93YWxsZXRfcm4iOnRydWUsImtpbGxfZGViaXRjYXJkX2Nsb3NlX2FjY291bnRfcm4iOnRydWUsImtpbGxfZGViaXRjYXJkX2Nsb3NlX2FjY291bnRfd2ViIjp0cnVlLCJraWxsX2RlZmVyX3Vwc2VsbF9mcmFtZXdvcmtfcm4iOnRydWUsImtpbGxfZGVmaV9sZW5kX2NsYWltX3Jld2FyZHNfdXBzZWxsX3JuIjp0cnVlLCJraWxsX2Rlcml2YXRpdmVfY2RkX3YyX3JuIjp0cnVlLCJraWxsX2Rlcml2YXRpdmVfY2RkX3YyX3dlYiI6dHJ1ZSwia2lsbF9kZXJpdmF0aXZlX2tub3dsZWRnZV9jaGVja192Ml9ybiI6dHJ1ZSwia2lsbF9kZXJpdmF0aXZlX3Jpc2tfYWNrX3YyX3JuIjp0cnVlLCJraWxsX2Rlcml2YXRpdmVzX2VsaWdpYmlsaXR5X2NoZWNrX3JuIjp0cnVlLCJraWxsX2RleF9yZWNlaXZlX3JuIjp0cnVlLCJraWxsX2RleF9yZWNlaXZlX3dlYiI6dHJ1ZSwia2lsbF9kaXJlY3RfZGVwb3NpdF90dXJib190YXhfY2FyZCI6dHJ1ZSwia2lsbF9kaXNhYmxlX2ZvcmNlX2Nyb3NzX2RldmljZV9pZHZfd2ViIjp0cnVlLCJraWxsX2R1cGxpY2F0ZV9jcGZfY2hlY2tfcm4iOnRydWUsImtpbGxfZHVwbGljYXRlX2NwZl9jaGVja193ZWIiOnRydWUsImtpbGxfZHluZXRpX2NhcmRfc2Nhbl9pbl93ZWJ2aWV3X2Zvcl9saW5rX2NhcmRfd2ViIjp0cnVlLCJraWxsX2Vhcm5fZWxpZ2liaWxpdHlfY2hlY2tfd2ViIjp0cnVlLCJraWxsX2Vhcm5fZWxpZ2libGVfYXNzZXRzX3JuIjp0cnVlLCJraWxsX2Vhcm5feWllbGRfY2FyZF9ybiI6dHJ1ZSwia2lsbF9lYXJuaW5nX2hvbWVfY2FyZF9zdXJmYWNlX3JuIjp0cnVlLCJraWxsX2VlYV9kbF9iYWNrc2lkZV9ybiI6dHJ1ZSwia2lsbF9lZWFfbW9vbl9zaG90X3BoYXNlX29uZV9ybiI6dHJ1ZSwia2lsbF9lcXVpdGllc19iYWxhbmNlX3N1bW1hcnlfcmVmcmVzaF9ybiI6dHJ1ZSwia2lsbF9ldGgyX2RlcHJlY2F0aW9uX2Jhbm5lcl93ZWIiOnRydWUsImtpbGxfZXhwbG9yZV9jb2xsZWN0aW9uc19pbnRlcm5hdGlvbmFsX3JuIjp0cnVlLCJraWxsX2V4cGxvcmVfZHBfdGFibGVfZmlsdGVyX3JuIjp0cnVlLCJraWxsX2ZlYl8yMDIzX3AycF9mZWF0dXJlIjp0cnVlLCJraWxsX2ZldGNoX2pwX3NwZWNpZmljX2VkcF9pbmZvIjp0cnVlLCJraWxsX2ZldGNoX3ByZXZpZXdfbGltaXRzX3JuIjp0cnVlLCJraWxsX2ZpbnByb21fcmVzdHJpY3Rpb25fbW9kYWxfbWlncmF0aW9uIjp0cnVlLCJraWxsX2ZpbnByb21fdWtfcm4iOnRydWUsImtpbGxfZmlyc3Rfc3Rha2VfaW5jZW50aXZlIjp0cnVlLCJraWxsX2ZvcmNlX3NlY3VyaXR5X2xvY2tfcm4iOnRydWUsImtpbGxfZnBzX3RyYWNrZXJfcm4iOnRydWUsImtpbGxfZnJhbWVfYXNzZXRfc2VydmljZV93ZWIiOnRydWUsImtpbGxfZnNjc19pY29uX3JuIjp0cnVlLCJraWxsX2Z1dHVyZXNfZmlyc3RfdHJhZGVfc3BvdGxpZ2h0X3dlYiI6dHJ1ZSwia2lsbF9mdXR1cmVzX3RyYWRpbmdfdXBzZWxsX2Jhbm5lcl9ybiI6dHJ1ZSwia2lsbF9nZXRwcmVmaWxsX3ZhbGlkYXRlX3Nzbl93ZWIiOnRydWUsImtpbGxfaGVhbHRoX2NoZWNrX3dlYiI6dHJ1ZSwia2lsbF9oZWxwX2NlbnRlcl9tb2RhbF9zdGFja19vcHRpb25zX3JuIjp0cnVlLCJraWxsX2hpZGVfd2F0Y2hsaXN0X3N0YXJfd2ViIjp0cnVlLCJraWxsX2hud2lfY29uY2llcmdlX2NoYXRfcGFydGljaXBhbnRfam9pbmVkX21lc3NhZ2Vfcm4iOnRydWUsImtpbGxfaG53aV9jb25jaWVyZ2VfY2hhdF9wYXJ0aWNpcGFudF9sZWZ0X21lc3NhZ2Vfcm4iOnRydWUsImtpbGxfaG53aV9jb25jaWVyZ2VfcHJpb3JpdHlfc3VwcG9ydF9yb3V0aW5nX3JuIjp0cnVlLCJraWxsX2hud2lfY29uY2llcmdlX3ByaW9yaXR5X3N1cHBvcnRfcm91dGluZ193ZWIiOnRydWUsImtpbGxfaG53aV9yZXN0cmljdGlvbl93ZWIiOnRydWUsImtpbGxfaG9tZV9hc3NldF90YWJsZSI6dHJ1ZSwia2lsbF9pYWhfaW1wcm92ZWRfc3RyZWFtX3JldHJ5X2xvZ2ljX3dlYiI6dHJ1ZSwia2lsbF9pZHZfZmFpbHVyZV9jaGVja19ybiI6dHJ1ZSwia2lsbF9pbWFnZV9jYWNoZV9ybiI6dHJ1ZSwia2lsbF9pbmNlbnRpdmVzX3NiX3N3ZWVwc3Rha2VzX2Zvcm1fd2ViIjp0cnVlLCJraWxsX2ludGVudF9kcml2ZW5fYXNzZXRfcmVjb21tZW5kYXRpb25fd2ViIjp0cnVlLCJraWxsX2ludGVybmF0aW9uYWxfdHJhbnNmZXJzX3JuIjp0cnVlLCJraWxsX2ludHhfYXNzZXRfY3VycmVudF9iYWxhbmNlX3dlYiI6dHJ1ZSwia2lsbF9pbnR4X2Fzc2V0Y3VycmVudGJhbGFuY2V2Ml9ybiI6dHJ1ZSwia2lsbF9pbnR4X2NiY3lfb25ib2FyZGluZ191cGRhdGVfc2NyZWVuX3JuIjp0cnVlLCJraWxsX2ludHhfb25ib2FyZGluZ19pbmNlbnRpdmVzX3dlYiI6dHJ1ZSwia2lsbF9pbnR4X29wZW5faW50ZXJlc3RfcmV3YXJkc19saWZldGltZV9yZXdhcmRzX3JuIjp0cnVlLCJraWxsX2ludHhfb3Blbl9pbnRlcmVzdF9yZXdhcmRzX25leHRfcGF5bWVudF9kYXRlX3JuIjp0cnVlLCJraWxsX2ludHhfb3JkZXJfZmlsbF90eXBlX3JuIjp0cnVlLCJraWxsX2phbl8yMDI1X2Rlcml2YXRpdmVzX2FjY291bnRfY2hlY2tsaXN0X3dlYiI6dHJ1ZSwia2lsbF9qYW5fMjAyNV9sb2dnZWRfb3V0X3NpZ25fdXBfcmVkZXNpZ25fd2ViIjp0cnVlLCJraWxsX2phcGFuX2luZWxpZ2liaWxpdHlfc2lnbnVwX3Rocm91Z2hfZ3JhcGhxbCI6dHJ1ZSwia2lsbF9qcF9reWNfcmVmcmVzaF9ybiI6dHJ1ZSwia2lsbF9qcF9reWNfcmVmcmVzaF93ZWIiOnRydWUsImtpbGxfanBfbWluaW11bV9hZ2VfMjAiOnRydWUsImtpbGxfanBfcmVzaWRlbmNlX2NhcmRfcmVtYWluaW5nX3ZhbGlkaXR5X3JlcXVpcmVkX21zZyI6dHJ1ZSwia2lsbF9qdWxfMjAyNV9kZXhfYWNoX3JuIjp0cnVlLCJraWxsX2xlYXJuX2Vhcm5faW5kaWFfcm4iOnRydWUsImtpbGxfbGVuZF9hc3NldF9zdW1tYXJ5X3JuIjp0cnVlLCJraWxsX2xlbmRfZm9yX25vbl9sZW5kaW5nX3VzZXJzX3dlYiI6dHJ1ZSwia2lsbF9saW1pdF9vcmRlcl9jYWxsb3V0X3Rvb2x0aXBfcm4iOnRydWUsImtpbGxfbGl2ZV9wcmljZXNfbG9nZ2VkX291dF9ybiI6dHJ1ZSwia2lsbF9sb2dnZWRfaW5fZGFwcF9pbnRha2Vfcm4iOnRydWUsImtpbGxfbWFyZ2luXzJfMF91cGRhdGVfZmVhdHVyZSI6dHJ1ZSwia2lsbF9tYXJnaW5fcmF0aW9fZ2xvYmFsX2ljb24iOnRydWUsImtpbGxfbXVsdGlfY2F0ZWdvcnlfc2VhcmNoX3JuIjp0cnVlLCJraWxsX215X2Fzc2V0c19ub3JtYWxfcGFnaW5hdGlvbl9hcHByb2FjaF9ybiI6dHJ1ZSwia2lsbF9teV9hc3NldHNfbm9ybWFsX3BhZ2luYXRpb25fYXBwcm9hY2hfd2ViIjp0cnVlLCJraWxsX215X2Fzc2V0c19wYWdpbmF0aW9uX3JuIjp0cnVlLCJraWxsX25iYV9zd2VlcHN0YWtlc19mb3JtX3dlYiI6dHJ1ZSwia2lsbF9uZXR3b3JrX2Nvbm5lY3Rpb25fcmV0cnlfcm4iOnRydWUsImtpbGxfbmV3X2FuZF90cmVuZGluZ19pb3MiOnRydWUsImtpbGxfbm92XzIwMjVfZGV4X2xhdGFtX2RlYml0Ijp0cnVlLCJraWxsX251eF9yZWZlcnJhbF9waXBlbGluZV9pbnRlcm5hdGlvbmFsIjp0cnVlLCJraWxsX29jdF8yMDI1X2RleF9lZWFfZGViaXQiOnRydWUsImtpbGxfb2N0XzIwMjVfZGV4X2ludGxfZmlhdCI6dHJ1ZSwia2lsbF9vaV9zaG93X3RpZXJfY2hhbmdlX21vZGFsIjp0cnVlLCJraWxsX29sZF9vbmJvYXJkaW5nX2JpcnRocGxhY2VfdGl0bGVfd2ViIjp0cnVlLCJraWxsX29uYm9hcmRpbmdfb3ZlcmxheV9sb2FkZXJfd2ViIjp0cnVlLCJraWxsX29uYm9hcmRpbmdfdmVyaWZmX2lkdl9ybiI6dHJ1ZSwia2lsbF9vbmJvYXJkaW5nX3ZlcmlmZl9pZHZfd3d3Ijp0cnVlLCJraWxsX29wdGltaXplZF9yZW5kZXJpbmdfd2ViIjp0cnVlLCJraWxsX29yZGVyX2Zvcm1fZGVjaW1hbF9wcmVjaXNpb25fY2hlY2tfd2ViIjp0cnVlLCJraWxsX3AycF90YmFfc2VsZWN0aW9uX2NlbGxfanVsXzIwMjUiOnRydWUsImtpbGxfcGFja3NfbmF2aWdhdGVfdG9fZGVwb3NpdF9ybiI6dHJ1ZSwia2lsbF9wYXltZW50X21ldGhvZF92ZXJpZmljYXRpb25fbWlncmF0aW9uX3dlYiI6dHJ1ZSwia2lsbF9wYXlwYWxfY3JlYXRpb25fc2hhZG93dGVzdGluZyI6dHJ1ZSwia2lsbF9wZXJwZXR1YWxfZnV0dXJlc19zdXJmYWNlIjp0cnVlLCJraWxsX3BlcnBldHVhbHNfcHJvbW9fdGFnX3JuIjp0cnVlLCJraWxsX3BsYXRmb3JtaXplZF9mdXR1cmVzX2JyYWNrZXRfb3JkZXJfbW9kYWxfd2ViIjp0cnVlLCJraWxsX3BvcnRmb2xpb19vcmRlcnNfZmlsdGVyIjp0cnVlLCJraWxsX3Bvc2l0aW9uc19jdXJyZW50X3ByaWNlIjp0cnVlLCJraWxsX3ByZV9jaGFuZ2VfY2IxX3VzZGNfZ2F0aW5nX3JuIjp0cnVlLCJraWxsX3ByZV9jaGFuZ2VfY2IxX3VzZGNfZ2F0aW5nX3dlYiI6dHJ1ZSwia2lsbF9wcmVfY2hhbmdlX3VzZGNfZ2F0aW5nX3JuIjp0cnVlLCJraWxsX3ByZWZldGNoX3F1ZXJpZXNfcm4iOnRydWUsImtpbGxfcHJpY2VzX2Vhcm5fYmFubmVyIjp0cnVlLCJraWxsX3Byb2dyZXNzaXZlX2RhdGFfZW5yaWNobWVudF93ZWIiOnRydWUsImtpbGxfcHVsc2VfY2hlY2tfcm4iOnRydWUsImtpbGxfcmF0X2F0dGFjaGVkX3Rwc2xfbW9iaWxlIjp0cnVlLCJraWxsX3JhdF9pbnR4X29wZW5faW50ZXJlc3RfbGlmZXRpbWVfcmV3YXJkc193ZWIiOnRydWUsImtpbGxfcmF0X2ludHhfb3Blbl9pbnRlcmVzdF9yZXdhcmRzX3JuIjp0cnVlLCJraWxsX3JhdF9wYWdlX3JlZnJlc2giOnRydWUsImtpbGxfcmF0X3Byb2R1Y3RzX3N0b3JlX3JuIjp0cnVlLCJraWxsX3JlYWN0X2ZyZWV6ZV93cmFwcGVkX2NvbXBvbmVudHNfcm4iOnRydWUsImtpbGxfcmVjb21tZW5kZWRfYXNzZXRfY2F0X3JuIjp0cnVlLCJraWxsX3JlZmVycmFsX2luY3JlbWVudGFsaXR5Ijp0cnVlLCJraWxsX3JlZmVycmFsX3Vwc2VsbF9tb2RhbF93ZWIiOnRydWUsImtpbGxfcmVmZXRjaGluZ19yZWNlbnRseV9yZW5kZXJlZF9xdWVyaWVzX2luX2Vycm9yX2hhbmRsaW5nX3JuIjp0cnVlLCJraWxsX3Jlc2tpbm5lZF9mYWlsdXJlX2V4Y2VwdGlvbl9lcnJvcl93ZWIiOnRydWUsImtpbGxfcmV0YWlsX2NoYXRfc3VwcG9ydF9hbmltYXRpb24iOnRydWUsImtpbGxfcmV0YWlsX3dlYl9jaGF0Ijp0cnVlLCJraWxsX3Jldl9zaGFyZV9yZXdhcmRzX3dlYiI6dHJ1ZSwia2lsbF9yZXdhcmRzX3ByaWNlX3BlcmNlbnRhZ2VfY2hhbmdlIjp0cnVlLCJraWxsX3JuX2V4cGxvcmVfdGFiX2NsaWVudF9zb3J0aW5nIjp0cnVlLCJraWxsX3JuX2xvYV9mYWNlIjp0cnVlLCJraWxsX3NhZmVfYWNoX3Jlc3RyaWN0aW9uX3JuIjp0cnVlLCJraWxsX3NjYW1fcHJvdGVjdGlvbl9jaGF0X3dlYiI6dHJ1ZSwia2lsbF9zY2FtX3dhcm5pbmdfc2VuZF9mbG93X3JuIjp0cnVlLCJraWxsX3NjcmVlbl9jYXB0dXJlX2RldGVjdGlvbiI6dHJ1ZSwia2lsbF9zY3JlZW5fc3VzcGVuc2VfdGltZW91dF9ybiI6dHJ1ZSwia2lsbF9zZW9fZmFxX3dlYiI6dHJ1ZSwia2lsbF9zZXJ2aWNlX3dvcmtlciI6dHJ1ZSwia2lsbF9zZXJ2aWNlX3dvcmtlcl9jYWNoZV9mb250cyI6dHJ1ZSwia2lsbF9zZXJ2aWNlX3dvcmtlcl9odG1sX2NhY2hlIjp0cnVlLCJraWxsX3NlcnZpY2Vfd29ya2VyX3Byb3h5X2ZvbnQiOnRydWUsImtpbGxfc2hpYl9wcm9tb19jb2RlIjp0cnVlLCJraWxsX3NpZ251cF9vaWRjX2Nia2Vfd2ViIjp0cnVlLCJraWxsX3NpbXBsZV9mdXR1cmVzX29uYm9hcmRpbmdfcm4iOnRydWUsImtpbGxfc2ltcGxlX3RyYWRlX3NlbGxfZmxvd19kb25hdGlvbl93ZWIiOnRydWUsImtpbGxfc2l3YV9hY2NvdW50c193ZWIiOnRydWUsImtpbGxfc3Rha2luZ19iYWxhbmNlc19kZWdyYWRhdGlvbl9ybiI6dHJ1ZSwia2lsbF9zdGFraW5nX2NiMV9wcm9tb2NvZGVfaW50ZWdyYXRpb25fcm4iOnRydWUsImtpbGxfc3Rha2luZ19jYjFfcHJvbW9jb2RlX2ludGVncmF0aW9uX3dlYiI6dHJ1ZSwia2lsbF9zdGFraW5nX2VsaWdpYmlsaXR5X2NoZWNrX3dlYiI6dHJ1ZSwia2lsbF9zdGFraW5nX21hc19uZXR3b3Jrb25seV9wb2xpY3lfcm4iOnRydWUsImtpbGxfc3VwcG9ydF9zY2FtX3F1aXpfdjFfcm4iOnRydWUsImtpbGxfc3VwcG9ydF9zY2FtX3F1aXpfdjFfd2ViIjp0cnVlLCJraWxsX3N1cHBvcnRfc2NhbV93YXJuaW5nX3JuIjp0cnVlLCJraWxsX3N3Y19kcF9ob21lX3NlY3Rpb25fYXVfcm4iOnRydWUsImtpbGxfc3djX2RwX2hvbWVfc2VjdGlvbl9jYV9ybiI6dHJ1ZSwia2lsbF9zd2NfZHBfaG9tZV9zZWN0aW9uX2diX3JuIjp0cnVlLCJraWxsX3N3Y19kcF9ob21lX3NlY3Rpb25fcm4iOnRydWUsImtpbGxfc3djX2hvbWVfc2VjdGlvbl9ybiI6dHJ1ZSwia2lsbF9zd2Nfc2hpZWxkX3JlcGxheV9ybiI6dHJ1ZSwia2lsbF9zd2VlcHN0YWtlc19zaWdudXBfZXhwZXJpbWVudCI6dHJ1ZSwia2lsbF9zd2l0Y2hfbWlncmF0aW9uIjp0cnVlLCJraWxsX3Rlc3RfY29uZmlnX3NlcnZpY2VfcHJvcGFnYXRpb24iOnRydWUsImtpbGxfdGltZXN0YW1wX2dsb2JhbF9iYW5uZXJfd2ViIjp0cnVlLCJraWxsX3Rva2VuX3NhbGVzX3Byb2dyZXNzX2Jhcl9ybiI6dHJ1ZSwia2lsbF90b2tlbl9zYWxlc19wcm9ncmVzc19iYXJfd2ViIjp0cnVlLCJraWxsX3RyYWRlX2Ryb3BvZmZfZGV4X3JuIjp0cnVlLCJraWxsX3RyYWRlX3Zpc2lvbl9vcmRlcmJvb2tfbGl0ZV9tb2RlX3JuIjp0cnVlLCJraWxsX3RyYW5zZmVyb19ybiI6dHJ1ZSwia2lsbF90cmFuc2Zlcm9fd2ViIjp0cnVlLCJraWxsX3VrX2FkZF9wYXltZW50X3VpX3YyX3dlYiI6dHJ1ZSwia2lsbF91a19uZXdfcG1fc2VsZWN0aW9uX3NjcmVlbl93ZWIiOnRydWUsImtpbGxfdW1vX3Byb21vX2NvZGVfcm4iOnRydWUsImtpbGxfdXBpX3dhaXRsaXN0Ijp0cnVlLCJraWxsX3Vwc2VsbF9mcmFtZXdvcmtfY2FjaGVfcmV0YWlsX3dlYiI6dHJ1ZSwia2lsbF91cHNlbGxfZnJhbWV3b3JrX3JhbmtpbmdfcmV0YWlsX3dlYiI6dHJ1ZSwia2lsbF91cHNlbGxfZnJhbWV3b3JrX3JldGFpbF9ybiI6dHJ1ZSwia2lsbF91cHNlbGxfZnJhbWV3b3JrX3JldGFpbF93ZWIiOnRydWUsImtpbGxfdXNfYWRkX3BheW1lbnRfdWlfdjJfd2ViIjp0cnVlLCJraWxsX3VzX25ld19wbV9zZWxlY3Rpb25fc2NyZWVuX3dlYiI6dHJ1ZSwia2lsbF91c2RjX2luZWxpZ2libGVfbm90aWZpY2F0aW9uX3dlYiI6dHJ1ZSwia2lsbF91c2RjX3Jld2FyZHNfdHJhbnNhY3Rpb25zX2JyZWFrZG93bl9ybiI6dHJ1ZSwia2lsbF92Ml9sb2NhbGVfcGlja2VyX3dlYiI6dHJ1ZSwia2lsbF93YWxsZXRfbWVudV9lbnRyeV9ybiI6dHJ1ZSwia2lsbF93YXRjaGxpc3RfcmVjb21tZW5kYXRpb25zX3JuIjp0cnVlLCJraWxsX3dlYjNfd2FsbGV0X2NoYW5nZV9yZWNpcGllbnRfcm4iOnRydWUsImtpbGxfd2ViM193YWxsZXRfZGVjb21fYmFubmVyX3JuIjp0cnVlLCJraWxsX3ljX25leHRfZm9yX3lvdV9ybiI6dHJ1ZSwia2lsbF95Y19uZXh0X2Zvcl95b3Vfd2ViIjp0cnVlLCJraWxsX3lpZWxkX2NlbnRlcl9hbGdvX2RlcHJlY2F0aW9uX3JuIjp0cnVlLCJraWxsX3lpZWxkX2NlbnRlcl9hbGdvX2RlcHJlY2F0aW9uX3dlYiI6dHJ1ZSwia2lsbF95aWVsZF9jZW50ZXJfYWxnb19kZXByZWNhdGlvbl95Y19iYW5uZXJfcm4iOnRydWUsImtpbGxfeWllbGRfY2VudGVyX2FsZ29fZGVwcmVjYXRpb25feWNfYmFubmVyX3dlYiI6dHJ1ZSwia2lsbF95aWVsZF9jZW50ZXJfY2FyZF91cHNlbGxfcm4iOnRydWUsImtpbGxfeWllbGRfY2VudGVyX2NoYXJ0X2Jhbm5lcl9ybiI6dHJ1ZSwia2lsbF95aWVsZF9jZW50ZXJfdGFrZW92ZXJfdXBzZWxsX3JuIjp0cnVlLCJ0MDAwMF9hOGYzYjJkNyI6dHJ1ZSwidDAwMDJfZWFkOTEyZDQiOnRydWUsInQwMDAyX3g5a2YybXBxIjp0cnVlLCJ0MDAwM18wZDBkMzYxYyI6dHJ1ZSwidDAwMDNfMjMzOWM3ZDQiOnRydWUsInQwMDAzXzdmM2U5YTJiIjp0cnVlLCJ0MDAwNV85YThiOTAxZiI6dHJ1ZSwidDAwMDVfYTFiMmMzZDQiOnRydWUsInQwMDA1X2QwZTUwZjMyIjp0cnVlLCJ0MDAwNV9kYzdmNWVhNiI6dHJ1ZSwidDAwMDhfNDAxa254MTEiOnRydWUsInQwMDA4XzUwMWMzcjJrIjp0cnVlLCJ0MDAwOF9kMzgwMzljYyI6dHJ1ZSwidDAwMTFfMTY3MGE4ZTYiOnRydWUsInQwMDExXzNkMzQzY2Q2Ijp0cnVlLCJ0MDAxMl81ZDFhZGNkMSI6dHJ1ZSwidDAwMTJfNjEwZmQzNGYiOnRydWUsInQwMDEyXzg1MDM3Yjk4Ijp0cnVlLCJ0MDAxMl84YmYyNGI1ZiI6dHJ1ZSwidDAwMTJfYmQ1ZjFiMTciOnRydWUsInQwMDEyX2ZmY2RhOGI1Ijp0cnVlLCJ0MDAxM18yMGVkYjk5YyI6dHJ1ZSwidDAwMTNfM2NjMDRjYjciOnRydWUsInQwMDEzXzVlOWExYzc0Ijp0cnVlLCJ0MDAxM183ZWU4ZWI2YiI6dHJ1ZSwidDAwMTRfODNjYjFiNTMiOnRydWUsInQwMDE0X2FiMGZlYmQ2Ijp0cnVlLCJ0MDAxNF9mMmY2MjgzNyI6dHJ1ZSwidDAwMTZfNmQwYWE0NGEiOnRydWUsInQwMDE2X2EyNTZhOGUwIjp0cnVlLCJ0MDAxNl9jYTRlYjNmMSI6dHJ1ZSwidDAwMTZfZDkyMmI0ODAiOnRydWUsInQwMDE2X2RkM2U2MzJkIjp0cnVlLCJ0MDAxNl9lOTdiZTM1MSI6dHJ1ZSwidDAwMTZfZWZjNzgzOGEiOnRydWUsInQwMDE2X2Y4ZTJkMWMzIjp0cnVlLCJ0MDAxOF8wMmR2Z2Q1YSI6dHJ1ZSwidDAwMThfNjNmYjc4MzQiOnRydWUsInQwMDE4Xzk4ODA5NWMxIjp0cnVlLCJ0MDAxOF9hM2U5MmQxYiI6dHJ1ZSwidDAwMThfYTlmN2UyYzMiOnRydWUsInQwMDE5X2E5cDJldXVrIjp0cnVlLCJ0MDAyMF8wOGZjYjBhMSI6dHJ1ZSwidDAwMjBfNjg3NDhkYzIiOnRydWUsInQwMDIwXzc4OTBlZTFhIjp0cnVlLCJ0MDAyMF9jMWQxMGZmYiI6dHJ1ZSwidDAwMjBfZDdhNWJjMmQiOnRydWUsInQwMDIxXzYyYjU3ZDExIjp0cnVlLCJ0MDAyMV82ZWRiMTA3NyI6dHJ1ZSwidDAwMjNfYzhlNWExZDkiOnRydWUsInQwMDIzX2Q0YjhmMWU3Ijp0cnVlLCJ0MDAyNl8xYmEyYzVkNSI6dHJ1ZSwidDAwMjZfMWRjMTA5NjgiOnRydWUsInQwMDI2XzM3YjhlZjRhIjp0cnVlLCJ0MDAyNl9iNjdiMDI4YyI6dHJ1ZSwidDAwMjZfZjlhMmIzYzQiOnRydWUsInQwMDI3XzBkZDQ5OWVmIjp0cnVlLCJ0MDAyOF8wYWNlNjgwNiI6dHJ1ZSwidDAwMjhfMGZkMjkwMzEiOnRydWUsInQwMDI5XzBiMGEwN2Q4Ijp0cnVlLCJ0MDAyOV9lMWYyYTNiNCI6dHJ1ZSwidDAwMzBfYTFiMmMzZDQiOnRydWUsInQwMDMwX2I3ZTJjNGExIjp0cnVlLCJ0MDAzMF9mOWY2MzJmNiI6dHJ1ZSwidDAwMzNfNjliZjI5MjQiOnRydWUsInQwMDMzX2M0ZjdhMWU5Ijp0cnVlLCJ0MDAzNV81ZDNmODUzOSI6dHJ1ZSwidDAwMzZfMDJiNmJmZTQiOnRydWUsInQwMDM3XzFkYzEwOTY4Ijp0cnVlLCJ0MDAzN19hMWIyYzNkNCI6dHJ1ZSwidDAwMzhfZjA5ZDAzYWIiOnRydWUsInRlc3RfZGxtX2tpbGxzd2l0Y2giOnRydWV9fQ=="}},"time_used":12,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_C6dyn7j32.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.628Z","timestamp":1785108244628,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_C6dyn7j32.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 373\r\nlast-modified: Sun, 26 Jul 2026 22:31:20 GMT\r\netag: \"bc822626a297955bc6ac7a5dc79f0970\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 c9dfe01ff817aaa5d7026e2556d7e676.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: qEbKoq4aw2hdvbvhUpigjvukS7KXdUl4IUzFVzGGFChpRm_GzYV6Ag==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=S67hsORtMAv8v8HdhWiSETOPeCA4UbkNcHcDLtn3buF%2B5v53s4sR%2Bjw9m2%2FkqNloISIPi3%2B%2BX%2BXX4YddL4AQeJAzKfv2cokiGUxjp0nxbA3ZxLLpmSnmR3%2BU%2B%2FFB9rWckwAQ0TOUSuV8ayBt6pza\"}]}\r\ncf-ray: a21727e0ee3b0883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":669,"size_decoded":1528,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (629)","md5":"ccbb8cb07bb7d64316a66e1f11ea7909","sha1":"318666744b196e67a916c531f246ff3fed7dbc70","sha256":"dccbc40caad5eaf13eac8c886dbca9ff232581fdb76103320cff863daeca7867","sha512":"6187141c68b2e1c1d867e29712f38b98ad8a1344c5f80a1faaae5d567031ef24913bcc5d9e1c1a7c597f495ad255026e672465a7b6a078cdcea7e92f969d99e1","ssdeep":"","tlshash":"5301f4945bf07f6a550326ed8563a90336e9213782cd8f60f119553d03e4c55c405683","first_seen":"2026-07-26T23:24:50.402085Z","last_seen":"2026-07-26T23:25:46.843256Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGM4NzdiNTdlLTJiMTgtNDc5Yy05MWMwLWM0ZDcyZjlhZDRmNGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWM4NzdiNTdlLTJiMTgtNDc5Yy05MWMwLWM0ZDcyZjlhZDRmNGApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsZmYgYXMgdCxoZiBhcyBufWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgcj10KCksaT0oMCxlKG4oKSkuY3JlYXRlQ29udGV4dCkoe2xvY2FsZTpgZW5gLG9uRXJyb3I6Y29uc29sZS5lcnJvcixzcGFjZUlkOmBgLGNvbXBvbmVudHM6e30sZXJyb3JCb3VuZGFyeVNraXBDb21wb25lbnRzOltdfSk7ZnVuY3Rpb24gYSh7Y2hpbGRyZW46ZSwuLi50fSl7cmV0dXJuKDAsci5qc3gpKGkuUHJvdmlkZXIse3ZhbHVlOnQsY2hpbGRyZW46ZX0pfWV4cG9ydHthIGFzIG4saSBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19DNmR5bjdqMzIuanMubWFw"}},"time_used":114,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":114,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_DKT9lQC52.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.629Z","timestamp":1785108244629,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_DKT9lQC52.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 497\r\nlast-modified: Sun, 26 Jul 2026 22:31:25 GMT\r\netag: \"83503328d238a25a8bcfebfa3b05f2a7\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 cd4031e4934b88564efbd54a91cf8d24.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: WX_xVKEjAHS3cIxXZKeJ6JuGFgM-P7sU7eqB8wx-98EpfmdVri779Q==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=pGJ0UxrnJoybaeUZ5jpgrYkIGG0WoJHXjRrhvzixcfG5%2Fut3nwtbVK7TcLGHI4ts4JujsjGCfK2PG1j5CS99cWjOhOxGJNQQFld%2BtKQ27XqstkspgZm3HtMGAMvQ5TbNJGLQg6wJ2x2hP0OFrRO6\"}]}\r\ncf-ray: a21727e0fe3e0883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":999,"size_decoded":1638,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (959)","md5":"20f1c10458bffb79c50d0a37b80a237e","sha1":"b9f96809d5344707961325a6490daa078487e577","sha256":"d5158e56f65c1d0a54442cc9044813225689cab44389cf6676b23a647ccc7c58","sha512":"5f11d4588f9fd27144b57c672e111d60c6d802bb2adb4856b2fa05f62c6f819e59fef87d8ecbd0b74051f24419d68d7940d39f0cdc43b3b9f3e8443c137aaad3","ssdeep":"","tlshash":"901102ee3bf456b042429a6dc014570273b82302de9c8b28e0f44b3b23c2e8da855b97","first_seen":"2026-07-26T23:24:50.403427Z","last_seen":"2026-07-26T23:25:46.84654Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGUyMjhmNDk2LTFjMzQtNGY0Ny05ZjE4LTRmOTE4ODVjYmMyYmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWUyMjhmNDk2LTFjMzQtNGY0Ny05ZjE4LTRmOTE4ODVjYmMyYmApfSkoKX1jYXRjaHt9aW1wb3J0e3QgYXMgZX1mcm9tIi4vY19DNmR5bjdqMzIuanMiO2ltcG9ydHtXcCBhcyB0LGhmIGFzIG59ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO3ZhciByPXQobigpKSxpPWU9Pnt0cnl7bGV0e2ZpZWxkczp7ZmlsZTp7dXJsOnQsZmlsZU5hbWU6bixjb250ZW50VHlwZTpyLGRldGFpbHM6aX0sdGl0bGU6YSxkZXNjcmlwdGlvbjpvfX09ZTtyZXR1cm57dXJsOnQuc3RhcnRzV2l0aChgLy9gKT9gaHR0cHM6JHt0fWA6dCx0aXRsZTphLGZpbGVOYW1lOm4sY29udGVudFR5cGU6cixkZXNjcmlwdGlvbjpvLGRldGFpbHM6aX19Y2F0Y2h7fX0sYT10PT57bGV0e29uRXJyb3I6bn09KDAsci51c2VDb250ZXh0KShlKTt0cnl7cmV0dXJue3RlbXBsYXRlVHlwZTp0LnRlbXBsYXRlLnN5cy5jb250ZW50VHlwZS5zeXMuaWQsZGF0YTp0LnRlbXBsYXRlLmZpZWxkc319Y2F0Y2goZSl7bihlKX19LG89KGUsdCk9Pnt0cnl7dmFyIG47cmV0dXJuIGU9PW51bGx8fChuPWUuc3lzKT09bnVsbHx8KG49bi5jb250ZW50VHlwZSk9PW51bGx8fChuPW4uc3lzKT09bnVsbD92b2lkIDA6bi5pZH1jYXRjaChlKXt0KGUpfX0scz1lPT5lLmZpZWxkcztleHBvcnR7YSBhcyBpLHMgYXMgbixvIGFzIHIsaSBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19ES1Q5bFFDNTIuanMubWFw"}},"time_used":122,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":122,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_vjw1eDNY.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.723Z","timestamp":1785108244723,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_vjw1eDNY.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 522\r\nlast-modified: Sun, 26 Jul 2026 22:31:31 GMT\r\netag: \"ec47a0badfe39eaba8f49d826d72bab2\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 06cacd0422733e64f8afbe400dd4457c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: 52EeUVKyuwRkcvHWca78bA5t-_kHzGD9nmMZMZGMKnBScXNM4yfKGA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=JaxxywiLT3yih%2BZ2jM6NMRU2jGxSt2jPUIcvTXjVKXo0o%2BkJIJ8%2FNN3LdQsJuBXkTPwN%2F4YhzYt9uuUVF1dKg6MECDkdMHJRih%2Fw8OC2BJzK2Kr5iOwLKPoDnoylZ2QuJJgyXxVmJlcOyMm07wS5\"}]}\r\ncf-ray: a21727e18f8e0883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1181,"size_decoded":1669,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1142)","md5":"5d3f142b6f3522357c8c24cdd77e657c","sha1":"dbd99e776102036d3527d06ca45ee1353614b8af","sha256":"10de12aaeeaba4f90aee036f523f23c1282f59906ef4cdd5f5f566024734d19a","sha512":"bed4acdb2a03a78bf2ba79edbbf80a73f9c89c517492dad8ebf7d23ffd7fc3da75517bafaaf30a9f27c5900944f480ebf8a3f935224bef5b51c2a5c5918aeb61","ssdeep":"","tlshash":"832197ded5f49be0fba23b6ec0a202956338102b80489a58e4a0de6533381ca9675927","first_seen":"2026-07-26T23:24:50.404962Z","last_seen":"2026-07-26T23:25:46.794101Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGQzMmNlYWIzLTZjYWEtNDkyMC1hOGFlLWNjYmNlZDVlNzcwN2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWQzMmNlYWIzLTZjYWEtNDkyMC1hOGFlLWNjYmNlZDVlNzcwN2ApfSkoKX1jYXRjaHt9aW1wb3J0e2kgYXMgZSxuIGFzIHQsciBhcyBuLHQgYXMgcn1mcm9tIi4vY19CR2VCaVVKeC5qcyI7ZnVuY3Rpb24gaSh7cm91dGU6ZSxjb3VudHJ5RnJvbVVybDp0LGNvdW50cnlGcm9tSXA6bn0pe3JldHVybiBvKHtyb3V0ZTplLGNvdW50cnlGcm9tVXJsOnQsY291bnRyeUZyb21JcDpufSl8fGEoe3JvdXRlOmUsY291bnRyeUZyb21JcDpufSl8fGV9ZnVuY3Rpb24gYSh7cm91dGU6bixjb3VudHJ5RnJvbUlwOml9KXtpZihpJiZuKXt2YXIgYTtsZXQgbz1uLnJlcGxhY2UoLyheXC8pLyxgYCksYz1pLnRvTG93ZXJDYXNlKCksbD1yLmZpbmQobj0+e3ZhciByO2xldCBpPXRbbl0sYT1pPT1udWxsP3ZvaWQgMDppLnNvbWUoZT0+ZS50b0xvd2VyQ2FzZSgpPT09Yykscz1lPT1udWxsfHwocj1lW25dKT09bnVsbD92b2lkIDA6cltvXTtyZXR1cm4gYSYmc30pLHU9bCYmKChhPWVbbF0pPT1udWxsP3ZvaWQgMDphW29dKXx8bnVsbDtyZXR1cm4gdT9zKG4sdSk6bnVsbH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBvKHtyb3V0ZTplLGNvdW50cnlGcm9tVXJsOnQsY291bnRyeUZyb21JcDpyfSl7aWYoKHR8fHIpJiZlKXt2YXIgaSxhO2xldCBvPWUucmVwbGFjZSgvKF5cLykvLGBgKSxjPXQudG9Mb3dlckNhc2UoKSxsPSgoaT1uW3IudG9Mb3dlckNhc2UoKV0pPT1udWxsP3ZvaWQgMDppW29dKXx8KChhPW5bY10pPT1udWxsP3ZvaWQgMDphW29dKTtyZXR1cm4gbD9zKGUsbCk6bnVsbH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIGUuc3RhcnRzV2l0aChgL2ApP2AvJHt0fWA6dH1leHBvcnR7aSBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y192ancxZUROWS5qcy5tYXA="}},"time_used":117,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":117,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/consent/01956191-791b-769a-8313-3683f5e22e0d/019a2a30-8483-7450-882c-baf710828cef/en.json","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:08.980Z","timestamp":1785108248980,"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":"cookielaw.org","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:47:21 GMT","end":"Tue, 20 Oct 2026 23:47:08 GMT"},"fingerprint":{"sha1":"BE:65:35:7C:E3:8D:B8:0C:7D:40:51:C7:4B:EE:56:FE:FD:2D:ED:91","sha256":"D6:A8:FD:24:40:A2:7D:0B:B5:73:08:9C:B2:AC:6E:1F:84:CC:D4:09:7B:BA:22:E8:A5:38:A4:10:29:65:88:5C"}}},"request":{"raw":"GET /consent/01956191-791b-769a-8313-3683f5e22e0d/019a2a30-8483-7450-882c-baf710828cef/en.json HTTP/1.1\r\nHost: cdn.cookielaw.org\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.coinbase.com/\r\nOrigin: https://www.coinbase.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:08 GMT\r\ncontent-type: application/json\r\ncf-ray: a21727fc2a051525-OSL\r\ncf-cache-status: HIT\r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\nage: 59133\r\ncache-control: public, max-age=86400\r\ncontent-encoding: gzip\r\netag: 0x8DEE7BE9FF752E2\r\nexpires: Mon, 27 Jul 2026 23:24:08 GMT\r\nlast-modified: Wed, 22 Jul 2026 06:58:24 GMT\r\nserver: cloudflare\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\naccess-control-expose-headers: x-ms-request-id,Server,x-ms-version,Content-Type,Content-Encoding,Cache-Control,ETag,Last-Modified,Content-MD5,x-ms-lease-status,x-ms-blob-type,Content-Length,Date,Transfer-Encoding, X-OneTrust-IsBot\r\ncontent-md5: CiNH1c/XkyM5u5dfnvdl8g==\r\ncross-origin-resource-policy: cross-origin, cross-origin\r\nx-content-type-options: nosniff\r\nx-onetrust-isbot: true\r\nx-ms-blob-type: BlockBlob\r\nx-ms-lease-status: unlocked\r\nx-ms-request-id: 7c951055-e01e-0060-14a7-19d6a8000000\r\nx-ms-version: 2009-09-19\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":286490,"size_decoded":45085,"mime_type":"application/json","magic":"JSON text data","md5":"0fe912f65a379ec4c1f499e055993c2d","sha1":"8bbee38e70400b8e1740af639b0da656c0c367fe","sha256":"0d2e67fcac41b90b1400e05fcde5cb262992d48e6524bc2d374fb6e2ab59eed8","sha512":"6fc0d23a4b32dcce8280acec4a2830db8796e1497421453e49f8ca08ccb40799dc14c8e4032025be6d18332ba03cf2c6aaf3dbf4838ac9d54ff6c5cfb25eb8f3","ssdeep":"1536:AaVrC+CsCq0O9Uc/ZSpUFNcWFuSlB2eC9EDNWD/fiukI9EDNWD/fiukWrTM7B:TVrC+CsCSdB2nNTr47B","tlshash":"7a540b8f3d59131aead78facabd77aa572289e4fbd3349fce6040272414d3e18c51219","first_seen":"2026-07-26T23:24:50.4066Z","last_seen":"2026-07-26T23:25:46.871233Z","times_seen":3,"resource_available":false,"data":"eyJEb21haW5EYXRhIjp7InBjbGlmZVNwYW5ZciI6IlllYXIiLCJwY2xpZmVTcGFuWXJzIjoiWWVhcnMiLCJwY2xpZmVTcGFuU2VjcyI6IkEgZmV3IHNlY29uZHMiLCJwY2xpZmVTcGFuV2siOiJXZWVrIiwicGNsaWZlU3BhbldrcyI6IldlZWtzIiwicGNjb250aW51ZVdpdGhvdXRBY2NlcHRUZXh0IjoiQ29udGludWUgd2l0aG91dCBBY2NlcHRpbmciLCJwY2Nsb3NlQnV0dG9uVHlwZSI6Ikljb24iLCJNYWluVGV4dCI6IkNvb2tpZSBjb25zZW50IG1hbmFnZXIiLCJNYWluSW5mb1RleHQiOiJXaGVuIHlvdSB2aXNpdCBvdXIgd2Vic2l0ZSwgd2UgbWF5IHN0b3JlIGNvb2tpZXMgb24geW91ciBicm93c2VyIGZvciB5b3VyIHNlY3VyaXR5IGFuZCB0byBoZWxwIHVzIGJldHRlciB1bmRlcnN0YW5kIHVzZXIgYmVoYXZpb3IgYW5kIGluZm9ybSB1cyBhYm91dCB3aGljaCBwYXJ0cyBvZiBvdXIgd2Vic2l0ZSB5b3UgaGF2ZSB2aXNpdGVkLiBUaGUgaW5mb3JtYXRpb24gZG9lcyBub3QgdXN1YWxseSBkaXJlY3RseSBpZGVudGlmeSB5b3UsIGJ1dCBpdCBjYW4gZ2l2ZSB5b3UgYSBzYWZlIGFuZCBtb3JlIHBlcnNvbmFsaXplZCB3ZWIgZXhwZXJpZW5jZS4gQmVjYXVzZSB3ZSByZXNwZWN0IHlvdXIgcmlnaHQgdG8gcHJpdmFjeSwgeW91IGNhbiBjaG9vc2Ugbm90IHRvIGFsbG93IHNvbWUgdHlwZXMgb2YgY29va2llcy4gQmxvY2tpbmcgc29tZSB0eXBlcyBvZiBjb29raWVzIG1heSBpbXBhY3QgeW91ciBleHBlcmllbmNlIG9uIHRoZSBzaXRlLiIsIkFib3V0VGV4dCI6IkNvb2tpZSBQb2xpY3kiLCJBYm91dENvb2tpZXNUZXh0IjoiWW91ciBQcml2YWN5IiwiQ29uZmlybVRleHQiOiJBbGxvdyBhbGwiLCJBbGxvd0FsbFRleHQiOiJTYXZlIFNldHRpbmdzIiwiQ29va2llc1VzZWRUZXh0IjoiQ29va2llcyB1c2VkIiwiQ29va2llc0Rlc2NUZXh0IjoiRGVzY3JpcHRpb24iLCJBYm91dExpbmsiOiJodHRwczovL3d3dy5jb2luYmFzZS5jb20vbGVnYWwvY29va2llIzp+OnRleHQ9VGFyZ2V0aW5nJTIwcHVycG9zZXMsdG8lMjB5b3UlMjBvciUyMHlvdXIlMjBpbnRlcmVzdHMuIiwiQWN0aXZlVGV4dCI6IkFjdGl2ZSIsIkFsd2F5c0FjdGl2ZVRleHQiOiJBbHdheXMgYWN0aXZlIiwiQWx3YXlzSW5hY3RpdmVUZXh0IjoiQWx3YXlzIGluYWN0aXZlIiwiUENTaG93QWx3YXlzQWN0aXZlVG9nZ2xlIjp0cnVlLCJBbGVydE5vdGljZVRleHQiOiJTZWUgb3VyIDxhIGhyZWY9XCJodHRwczovL3d3dy5jb2luYmFzZS5jb20vbGVnYWwvY29va2llIzp+OnRleHQ9VGFyZ2V0aW5nJTIwcHVycG9zZXMsdG8lMjB5b3UlMjBvciUyMHlvdXIlMjBpbnRlcmVzdHMuXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5jb29raWUgcG9saWN5PC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgd2UgcHJvY2VzcyB5b3VyIHBlcnNvbmFsIGRhdGEuIFRvIGN1c3RvbWl6ZSB5b3VyIHNldHRpbmdzLCA8YnV0dG9uIGlkPVwib25ldHJ1c3QtcGMtYnRuLWhhbmRsZXJcIiB0eXBlPVwiYnV0dG9uXCI+Y3VzdG9taXplIGNvb2tpZXM8L2J1dHRvbj4uIiwiQWxlcnRDbG9zZVRleHQiOiJDbG9zZSIsIkFsZXJ0TW9yZUluZm9UZXh0IjoiQ3VzdG9taXplIENvb2tpZXMiLCJBbGVydE1vcmVJbmZvVGV4dERpYWxvZyI6IkN1c3RvbWl6ZSBDb29raWVzLCBPcGVucyB0aGUgcHJlZmVyZW5jZSBjZW50ZXIgZGlhbG9nIiwiQ29va2llU2V0dGluZ0J1dHRvblRleHQiOiJDdXN0b21pemUgQ29va2llcyIsIkFsZXJ0QWxsb3dDb29raWVzVGV4dCI6IkFjY2VwdCIsIkNsb3NlU2hvdWxkQWNjZXB0QWxsQ29va2llcyI6ZmFsc2UsIkxhc3RSZWNvbnNlbnREYXRlIjpudWxsLCJCYW5uZXJUaXRsZSI6IiIsIkZvcmNlQ29uc2VudCI6ZmFsc2UsIkJhbm5lclB1c2hlc0Rvd25QYWdlIjpmYWxzZSwiSW5hY3RpdmVUZXh0IjoiSW5hY3RpdmUiLCJDb29raWVzVGV4dCI6IkNvb2tpZXMiLCJDYXRlZ29yaWVzVGV4dCI6IkNvb2tpZSBTdWJncm91cCIsIklzTGlmZXNwYW5FbmFibGVkIjpmYWxzZSwiTGlmZXNwYW5UZXh0IjoiTGlmZXNwYW4iLCJWZW5kb3JMZXZlbE9wdE91dCI6ZmFsc2UsIkhhc1NjcmlwdEFyY2hpdmUiOmZhbHNlLCJCYW5uZXJQb3NpdGlvbiI6ImJvdHRvbS1yaWdodCIsIlByZWZlcmVuY2VDZW50ZXJQb3NpdGlvbiI6ImRlZmF1bHQiLCJQcmVmZXJlbmNlQ2VudGVyQ29uZmlybVRleHQiOiJDb25maXJtIG15IGNob2ljZXMiLCJWZW5kb3JMaXN0VGV4dCI6Ikxpc3Qgb2YgSUFCIFZlbmRvcnMiLCJUaGlyZFBhcnR5Q29va2llTGlzdFRleHQiOiJDb29raWVzIERldGFpbHMiLCJQcmVmZXJlbmNlQ2VudGVyTWFuYWdlUHJlZmVyZW5jZXNUZXh0IjoiIE1hbmFnZSBjb29raWUgcHJlZmVyZW5jZXMiLCJQcmVmZXJlbmNlQ2VudGVyTW9yZUluZm9TY3JlZW5SZWFkZXIiOiJPcGVucyBpbiBhIG5ldyBUYWIiLCJDb29raWVMaXN0VGl0bGUiOiJDb29raWUgTGlzdCIsIkNvb2tpZUxpc3REZXNjcmlwdGlvbiI6IkEgY29va2llIGlzIGEgc21hbGwgcGllY2Ugb2YgZGF0YSAodGV4dCBmaWxlKSB0aGF0IGEgd2Vic2l0ZSDigJMgd2hlbiB2aXNpdGVkIGJ5IGEgdXNlciDigJMgYXNrcyB5b3VyIGJyb3dzZXIgdG8gc3RvcmUgb24geW91ciBkZXZpY2UgaW4gb3JkZXIgdG8gcmVtZW1iZXIgaW5mb3JtYXRpb24gYWJvdXQgeW91LCBzdWNoIGFzIHlvdXIgbGFuZ3VhZ2UgcHJlZmVyZW5jZSBvciBsb2dpbiBpbmZvcm1hdGlvbi4gVGhvc2UgY29va2llcyBhcmUgc2V0IGJ5IHVzIGFuZCBjYWxsZWQgZmlyc3QtcGFydHkgY29va2llcy4gV2UgYWxzbyB1c2UgdGhpcmQtcGFydHkgY29va2llcyDigJMgd2hpY2ggYXJlIGNvb2tpZXMgZnJvbSBhIGRvbWFpbiBkaWZmZXJlbnQgdGhhbiB0aGUgZG9tYWluIG9mIHRoZSB3ZWJzaXRlIHlvdSBhcmUgdmlzaXRpbmcg4oCTIGZvciBvdXIgYWR2ZXJ0aXNpbmcgYW5kIG1hcmtldGluZyBlZmZvcnRzLiBNb3JlIHNwZWNpZmljYWxseSwgd2UgdXNlIGNvb2tpZXMgYW5kIG90aGVyIHRyYWNraW5nIHRlY2hub2xvZ2llcyBmb3IgdGhlIGZvbGxvd2luZyBwdXJwb3NlczoiLCJHcm91cHMiOlt7IlNob3dJblBvcHVwIjp0cnVlLCJTaG93SW5Qb3B1cE5vbklBQiI6dHJ1ZSwiU2hvd1NES0xpc3RMaW5rIjp0cnVlLCJPcmRlciI6IjEiLCJPcHRhbm9uR3JvdXBJZCI6IkMwMDAxIiwiUGFyZW50IjoiIiwiU2hvd1N1Ymdyb3VwIjp0cnVlLCJTaG93U3ViR3JvdXBEZXNjcmlwdGlvbiI6dHJ1ZSwiU2hvd1N1Ymdyb3VwVG9nZ2xlIjpmYWxzZSwiQWx3YXlzU2hvd0NhdGVnb3J5IjpmYWxzZSwiR3JvdXBEZXNjcmlwdGlvbiI6IlRoZXNlIGNvb2tpZXMgYXJlIG5lY2Vzc2FyeSBmb3IgdGhlIHdlYnNpdGUgdG8gZnVuY3Rpb24gYW5kIGNhbm5vdCBiZSBzd2l0Y2hlZCBvZmYgaW4gb3VyIHN5c3RlbXMuIFRoZXkgYXJlIHVzdWFsbHkgb25seSBzZXQgaW4gcmVzcG9uc2UgdG8gYWN0aW9ucyBtYWRlIGJ5IHlvdSB3aGljaCBhbW91bnQgdG8gYSByZXF1ZXN0IGZvciBzZXJ2aWNlcywgc3VjaCBhcyBzZXR0aW5nIHlvdXIgcHJpdmFjeSBwcmVmZXJlbmNlcywgbG9nZ2luZyBpbiBvciBmaWxsaW5nIGluIGZvcm1zLiBUaGVzZSBhbHNvIGluY2x1ZGUgY29va2llcyB3ZSBtYXkgcmVseSBvbiBmb3IgZnJhdWQgcHJldmVudGlvbi4gWW91IGNhbiBzZXQgeW91ciBicm93c2VyIHRvIGJsb2NrIG9yIGFsZXJ0IHlvdSBhYm91dCB0aGVzZSBjb29raWVzLCBidXQgc29tZSBwYXJ0cyBvZiB0aGUgc2l0ZSB3aWxsIG5vdCB0aGVuIHdvcmsuIiwiR3JvdXBEZXNjcmlwdGlvbk9UVCI6IlRoZXNlIGNvb2tpZXMgYXJlIG5lY2Vzc2FyeSBmb3IgdGhlIHdlYnNpdGUgdG8gZnVuY3Rpb24gYW5kIGNhbm5vdCBiZSBzd2l0Y2hlZCBvZmYgaW4gb3VyIHN5c3RlbXMuIFRoZXkgYXJlIHVzdWFsbHkgb25seSBzZXQgaW4gcmVzcG9uc2UgdG8gYWN0aW9ucyBtYWRlIGJ5IHlvdSB3aGljaCBhbW91bnQgdG8gYSByZXF1ZXN0IGZvciBzZXJ2aWNlcywgc3VjaCBhcyBzZXR0aW5nIHlvdXIgcHJpdmFjeSBwcmVmZXJlbmNlcywgbG9nZ2luZyBpbiBvciBmaWxsaW5nIGluIGZvcm1zLiBUaGVzZSBhbHNvIGluY2x1ZGUgY29va2llcyB3ZSBtYXkgcmVseSBvbiBmb3IgZnJhdWQgcHJldmVudGlvbi4gWW91IGNhbiBzZXQgeW91ciBicm93c2VyIHRvIGJsb2NrIG9yIGFsZXJ0IHlvdSBhYm91dCB0aGVzZSBjb29raWVzLCBidXQgc29tZSBwYXJ0cyBvZiB0aGUgc2l0ZSB3aWxsIG5vdCB0aGVuIHdvcmsuIiwiR3JvdXBOYW1lTW9iaWxlIjoiU3RyaWN0bHkgTmVjZXNzYXJ5IENvb2tpZXMiLCJHcm91cE5hbWVPVFQiOiJTdHJpY3RseSBOZWNlc3NhcnkgQ29va2llcyIsIkdyb3VwTmFtZSI6IlN0cmljdGx5IE5lY2Vzc2FyeSBDb29raWVzIiwiSXNJYWJQdXJwb3NlIjpmYWxzZSwiR2VuZXJhbFZlbmRvcnNJZHMiOltdLCJGaXJzdFBhcnR5Q29va2llcyI6W3siaWQiOiIwMTlkOTRjNS1lYzQzLTc4OGYtOTk0Zi0wM2U5YTc0NmZmYzIiLCJOYW1lIjoiZGRfY29va2llX3Rlc3RfIiwiSG9zdCI6Ind3dy5jb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJUaGlzIGNvb2tpZSBuYW1lIGlzIHVzZWQgYnkgRGF0YURvZyB0byBkZXRlcm1pbmUgaWYgY29va2llcyBhcmUgc3VwcG9ydGVkIG9uIHRoZSB3ZWJzaXRlLmRkX2Nvb2tpZV90ZXN0IiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiZGRfY29va2llX3Rlc3QiLCJwYXR0ZXJuS2V5IjoiZGRfY29va2llX3Rlc3QiLCJ0aGlyZFBhcnR5S2V5IjoiUGF0dGVybnxkZF9jb29raWVfdGVzdCIsImZpcnN0UGFydHlLZXkiOiJDb29raWVkZF9jb29raWVfdGVzdF8sUGF0dGVybnxkZF9jb29raWVfdGVzdCIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk1ZjY2ZC1mNzUxLTc3NjItYmQ2OS0wYmY0NzQ4MzY5NDIiLCJOYW1lIjoiY2JfZG0iLCJIb3N0IjoiY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMzY1MiIsImRlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgQ29pbmJhc2Ugd2hpY2ggcHJvdmlkZXMgYSBzZWN1cmUgb25saW5lIHBsYXRmb3JtIGZvciBidXlpbmcsIHNlbGxpbmcsIHRyYW5zZmVycmluZywgYW5kIHN0b3JpbmcgY3J5cHRvY3VycmVuY3kuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgQ29pbmJhc2Ugd2hpY2ggcHJvdmlkZXMgYSBzZWN1cmUgb25saW5lIHBsYXRmb3JtIGZvciBidXlpbmcsIHNlbGxpbmcsIHRyYW5zZmVycmluZywgYW5kIHN0b3JpbmcgY3J5cHRvY3VycmVuY3kuIiwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IkNvb2tpZXxjb2luYmFzZS5jb20iLCJmaXJzdFBhcnR5S2V5IjoiIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOWEwMmU1LTJkZmEtNzRlZS1iZTk4LTE1NTgyNzRjYjBkMiIsIk5hbWUiOiJjYl9jb25zZW50X3ByZWZlcmVuY2VzIiwiSG9zdCI6Ind3dy5jb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOnRydWUsIkxlbmd0aCI6IjAiLCJkZXNjcmlwdGlvbiI6IiIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6bnVsbCwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IiIsImZpcnN0UGFydHlLZXkiOiIiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NWY5NWMtNmEwYy03NWJkLWFlNTMtNGQ5MGI1MTY4MjhhIiwiTmFtZSI6ImFkdmVydGlzaW5nX3NoYXJpbmdfYWxsb3dlZCIsIkhvc3QiOiJjb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIzNjQiLCJkZXNjcmlwdGlvbiI6IlRvIHJlbWVtYmVyIGEgdXNlcnMgcHJlZmVyZW5jZXMgdG8gb3B0aW5nLWluIG9yIG91dCBvZiB0aGlyZCBwYXJ0eSBhZHZlcnRpc2luZyBjb29raWVzLiIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6bnVsbCwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IiIsImZpcnN0UGFydHlLZXkiOiIiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NjA3MDYtYzIzZi03MDQ1LWFiMmEtNThiMDJmMDAyNTI1IiwiTmFtZSI6Ik9wdGFub25BbGVydEJveENsb3NlZCIsIkhvc3QiOiIuY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMzY1IiwiZGVzY3JpcHRpb24iOiJUaGlzIGNvb2tpZSBpcyBzZXQgYnkgd2Vic2l0ZXMgdXNpbmcgY2VydGFpbiB2ZXJzaW9ucyBvZiB0aGUgY29va2llIGxhdyBjb21wbGlhbmNlIHNvbHV0aW9uIGZyb20gT25lVHJ1c3QuICBJdCBpcyBzZXQgYWZ0ZXIgdmlzaXRvcnMgaGF2ZSBzZWVuIGEgY29va2llIGluZm9ybWF0aW9uIG5vdGljZSBhbmQgaW4gc29tZSBjYXNlcyBvbmx5IHdoZW4gdGhleSBhY3RpdmVseSBjbG9zZSB0aGUgbm90aWNlIGRvd24uICBJdCBlbmFibGVzIHRoZSB3ZWJzaXRlIG5vdCB0byBzaG93IHRoZSBtZXNzYWdlIG1vcmUgdGhhbiBvbmNlIHRvIGEgdXNlci4gIFRoZSBjb29raWUgaGFzIGEgb25lIHllYXIgbGlmZXNwYW4gYW5kIGNvbnRhaW5zIG5vIHBlcnNvbmFsIGluZm9ybWF0aW9uLiIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6bnVsbCwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6bnVsbCwiZmlyc3RQYXJ0eUtleSI6bnVsbCwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOWEwMTc0LTlmMDktNzVkMi04NjMxLTU4ZTk4M2U4NGFiZCIsIk5hbWUiOiJnX3N0YXRlIiwiSG9zdCI6Ind3dy5jb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJUaGlzIGNvb2tpZSBuYW1lIGlzIGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgT25lIFRhcCB3aGljaCBpcyB1c2VkIHRvIG1hbmFnZSB1c2VyIHNpZ24tb3V0IHN0YXR1cyBhbmQgcHJldmVudCBDU1JGIGF0dGFja3MuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjpudWxsLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZWdfc3RhdGUiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5YTAxNzQtOWVmMy03Nzg3LTgxYTQtNWM4ODk5N2UyZTVkIiwiTmFtZSI6Ik9wdGFub25Db25zZW50IiwiSG9zdCI6ImNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjM2NCIsImRlc2NyaXB0aW9uIjoiVGhpcyBjb29raWUgaXMgc2V0IGJ5IHRoZSBjb29raWUgY29tcGxpYW5jZSBzb2x1dGlvbiBmcm9tIE9uZVRydXN0LiBJdCBzdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNhdGVnb3JpZXMgb2YgY29va2llcyB0aGUgc2l0ZSB1c2VzIGFuZCB3aGV0aGVyIHZpc2l0b3JzIGhhdmUgZ2l2ZW4gb3Igd2l0aGRyYXduIGNvbnNlbnQgZm9yIHRoZSB1c2Ugb2YgZWFjaCBjYXRlZ29yeS4gVGhpcyBlbmFibGVzIHNpdGUgb3duZXJzIHRvIHByZXZlbnQgY29va2llcyBpbiBlYWNoIGNhdGVnb3J5IGZyb20gYmVpbmcgc2V0IGluIHRoZSB1c2VycyBicm93c2VyLCB3aGVuIGNvbnNlbnQgaXMgbm90IGdpdmVuLiBUaGUgY29va2llIGhhcyBhIG5vcm1hbCBsaWZlc3BhbiBvZiBvbmUgeWVhciwgc28gdGhhdCByZXR1cm5pbmcgdmlzaXRvcnMgdG8gdGhlIHNpdGUgd2lsbCBoYXZlIHRoZWlyIHByZWZlcmVuY2VzIHJlbWVtYmVyZWQuIEl0IGNvbnRhaW5zIG5vIGluZm9ybWF0aW9uIHRoYXQgY2FuIGlkZW50aWZ5IHRoZSBzaXRlIHZpc2l0b3IuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgQ29pbmJhc2Ugd2hpY2ggcHJvdmlkZXMgYSBzZWN1cmUgb25saW5lIHBsYXRmb3JtIGZvciBidXlpbmcsIHNlbGxpbmcsIHRyYW5zZmVycmluZywgYW5kIHN0b3JpbmcgY3J5cHRvY3VycmVuY3kuIiwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IkNvb2tpZXxjb2luYmFzZS5jb20iLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llT3B0YW5vbkNvbnNlbnQiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5YTAxNzQtOWVmMy03OWQyLWEyODItYzYzMTM2OTc0MTY5IiwiTmFtZSI6Ik9wdGFub25BbGVydEJveENsb3NlZCIsIkhvc3QiOiJjb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIzNjQiLCJkZXNjcmlwdGlvbiI6IlRoaXMgY29va2llIGlzIHNldCBieSB3ZWJzaXRlcyB1c2luZyBjZXJ0YWluIHZlcnNpb25zIG9mIHRoZSBjb29raWUgbGF3IGNvbXBsaWFuY2Ugc29sdXRpb24gZnJvbSBPbmVUcnVzdC4gSXQgaXMgc2V0IGFmdGVyIHZpc2l0b3JzIGhhdmUgc2VlbiBhIGNvb2tpZSBpbmZvcm1hdGlvbiBub3RpY2UgYW5kIGluIHNvbWUgY2FzZXMgb25seSB3aGVuIHRoZXkgYWN0aXZlbHkgY2xvc2UgdGhlIG5vdGljZSBkb3duLiBJdCBlbmFibGVzIHRoZSB3ZWJzaXRlIG5vdCB0byBzaG93IHRoZSBtZXNzYWdlIG1vcmUgdGhhbiBvbmNlIHRvIGEgdXNlci4gVGhlIGNvb2tpZSBoYXMgYSBub3JtYWwgbGlmZXNwYW4gb2Ygb25lIHllYXIgYW5kIGNvbnRhaW5zIG5vIHBlcnNvbmFsIGluZm9ybWF0aW9uLiIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6IlRoaXMgZG9tYWluIGlzIG93bmVkIGJ5IENvaW5iYXNlIHdoaWNoIHByb3ZpZGVzIGEgc2VjdXJlIG9ubGluZSBwbGF0Zm9ybSBmb3IgYnV5aW5nLCBzZWxsaW5nLCB0cmFuc2ZlcnJpbmcsIGFuZCBzdG9yaW5nIGNyeXB0b2N1cnJlbmN5LiIsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiJDb29raWV8Y29pbmJhc2UuY29tIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZU9wdGFub25BbGVydEJveENsb3NlZCIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk4MzM4Mi1lMjQ4LTc2ZTMtYmFlNy1jZDU0NjEyNTMwYjgiLCJOYW1lIjoiX2NmdXZpZCIsIkhvc3QiOiJjb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOnRydWUsIkxlbmd0aCI6IjAiLCJkZXNjcmlwdGlvbiI6IlRoZSBfY2Z1dmlkIGNvb2tpZSBpcyB1c2VkIGJ5IENsb3VkZmxhcmUgdG8gZGlzdGluZ3Vpc2ggaW5kaXZpZHVhbCB1c2VycyB3aG8gc2hhcmUgdGhlIHNhbWUgSVAgYWRkcmVzcyBmb3IgdGhlIHB1cnBvc2Ugb2YgZW5mb3JjaW5nIHJhdGUgbGltaXRpbmcgcnVsZXMuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgQ29pbmJhc2Ugd2hpY2ggcHJvdmlkZXMgYSBzZWN1cmUgb25saW5lIHBsYXRmb3JtIGZvciBidXlpbmcsIHNlbGxpbmcsIHRyYW5zZmVycmluZywgYW5kIHN0b3JpbmcgY3J5cHRvY3VycmVuY3kuIiwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IkNvb2tpZXxjb2luYmFzZS5jb20iLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llX2NmdXZpZCIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTlhMDE3NC05ZjAyLTdmMWMtYWRjOC1kYTY4NWQ1YzRmMWQiLCJOYW1lIjoiY2JfY29uc2VudF9wcmVmZXJlbmNlcyIsIkhvc3QiOiJjb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIzNjQiLCJkZXNjcmlwdGlvbiI6IiIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6bnVsbCwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IiIsImZpcnN0UGFydHlLZXkiOm51bGwsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTlhMDJlNS0yZGY1LTcxNzEtYTBmNS1lMDIwMGJlMWUzNjUiLCJOYW1lIjoiT3B0YW5vbkNvbnNlbnQiLCJIb3N0Ijoid3d3LmNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6dHJ1ZSwiTGVuZ3RoIjoiMCIsImRlc2NyaXB0aW9uIjoiVGhpcyBjb29raWUgaXMgc2V0IGJ5IHRoZSBjb29raWUgY29tcGxpYW5jZSBzb2x1dGlvbiBmcm9tIE9uZVRydXN0LiBJdCBzdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNhdGVnb3JpZXMgb2YgY29va2llcyB0aGUgc2l0ZSB1c2VzIGFuZCB3aGV0aGVyIHZpc2l0b3JzIGhhdmUgZ2l2ZW4gb3Igd2l0aGRyYXduIGNvbnNlbnQgZm9yIHRoZSB1c2Ugb2YgZWFjaCBjYXRlZ29yeS4gVGhpcyBlbmFibGVzIHNpdGUgb3duZXJzIHRvIHByZXZlbnQgY29va2llcyBpbiBlYWNoIGNhdGVnb3J5IGZyb20gYmVpbmcgc2V0IGluIHRoZSB1c2VycyBicm93c2VyLCB3aGVuIGNvbnNlbnQgaXMgbm90IGdpdmVuLiBUaGUgY29va2llIGhhcyBhIG5vcm1hbCBsaWZlc3BhbiBvZiBvbmUgeWVhciwgc28gdGhhdCByZXR1cm5pbmcgdmlzaXRvcnMgdG8gdGhlIHNpdGUgd2lsbCBoYXZlIHRoZWlyIHByZWZlcmVuY2VzIHJlbWVtYmVyZWQuIEl0IGNvbnRhaW5zIG5vIGluZm9ybWF0aW9uIHRoYXQgY2FuIGlkZW50aWZ5IHRoZSBzaXRlIHZpc2l0b3IuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjpudWxsLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZU9wdGFub25Db25zZW50IiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOWEwMmU1LTJkZmEtNzhiZi04NTdhLWU2ZTQ3ZTVmODFmNCIsIk5hbWUiOiJhZHZlcnRpc2luZ19zaGFyaW5nX2FsbG93ZWQiLCJIb3N0Ijoid3d3LmNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6dHJ1ZSwiTGVuZ3RoIjoiMCIsImRlc2NyaXB0aW9uIjoiIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjpudWxsLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiIiwiZmlyc3RQYXJ0eUtleSI6IiIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk1ZjY2ZC1mNzRjLTcwMzgtYTQ5ZC1lOTY5MjRkMDNiMzYiLCJOYW1lIjoiX19jZl9ibSIsIkhvc3QiOiJjb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJUaGUgX19jZl9ibSBjb29raWUgaXMgYSBjb29raWUgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgQ2xvdWRmbGFyZSBCb3QgTWFuYWdlbWVudCwgY3VycmVudGx5IGluIHByaXZhdGUgYmV0YS4gQXMgcGFydCBvZiBvdXIgYm90IG1hbmFnZW1lbnQgc2VydmljZSwgdGhpcyBjb29raWUgaGVscHMgbWFuYWdlIGluY29taW5nIHRyYWZmaWMgdGhhdCBtYXRjaGVzIGNyaXRlcmlhIGFzc29jaWF0ZWQgd2l0aCBib3RzLlxuVGhpcyBpcyBhIENsb3VkRm91bmRyeSBjb29raWUiLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJUaGlzIGlzIGEgQ2xvdWRGb3VuZHJ5IGNvb2tpZSIsInBhdHRlcm5LZXkiOiJfY2ZfYm0iLCJ0aGlyZFBhcnR5S2V5IjoiUGF0dGVybnxfY2ZfYm0iLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llX19jZl9ibSxQYXR0ZXJufF9jZl9ibSIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk2MDcwNi1jMDZiLTc5ZTQtYjZmOS1lZGMwYTYwYWJkNGEiLCJOYW1lIjoiT3B0YW5vbkNvbnNlbnQiLCJIb3N0IjoiLmNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjM2NSIsImRlc2NyaXB0aW9uIjoiVGhpcyBjb29raWUgaXMgc2V0IGJ5IHRoZSBjb29raWUgY29tcGxpYW5jZSBzb2x1dGlvbiBmcm9tIE9uZVRydXN0LiBJdCBzdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNhdGVnb3JpZXMgb2YgY29va2llcyB0aGUgc2l0ZSB1c2VzIGFuZCB3aGV0aGVyIHZpc2l0b3JzIGhhdmUgZ2l2ZW4gb3Igd2l0aGRyYXduIGNvbnNlbnQgZm9yIHRoZSB1c2Ugb2YgZWFjaCBjYXRlZ29yeS4gVGhpcyBlbmFibGVzIHNpdGUgb3duZXJzIHRvIHByZXZlbnQgY29va2llcyBpbiBlYWNoIGNhdGVnb3J5IGZyb20gYmVpbmcgc2V0IGluIHRoZSB1c2VycyBicm93c2VyLCB3aGVuIGNvbnNlbnQgaXMgbm90IGdpdmVuLiBUaGUgY29va2llIGhhcyBhIG5vcm1hbCBsaWZlc3BhbiBvZiBvbmUgeWVhciwgc28gdGhhdCByZXR1cm5pbmcgdmlzaXRvcnMgdG8gdGhlIHNpdGUgd2lsbCBoYXZlIHRoZWlyIHByZWZlcmVuY2VzIHJlbWVtYmVyZWQuIEl0IGNvbnRhaW5zIG5vIGluZm9ybWF0aW9uIHRoYXQgY2FuIGlkZW50aWZ5IHRoZSBzaXRlIHZpc2l0b3IuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjpudWxsLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjpudWxsLCJmaXJzdFBhcnR5S2V5IjpudWxsLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfV0sIkhvc3RzIjpbXSwiUHVycG9zZUlkIjoiMTlEQzdFMUYtMzk4RC00RDk2LThDN0MtQzQ4NjY1QjdEMkQ0IiwiQ3VzdG9tR3JvdXBJZCI6IkMwMDAxIiwiR3JvdXBJZCI6ImZjM2EyNTNiLTc2NzItNDA5Yy04YjdjLTRhM2I3NWJiNTdjMiIsIlN0YXR1cyI6ImFsd2F5cyBhY3RpdmUiLCJJc0RudEVuYWJsZWQiOmZhbHNlLCJUeXBlIjoiQ09PS0lFIiwiRGVzY3JpcHRpb25MZWdhbCI6IiIsIklhYklsbHVzdHJhdGlvbnMiOltdLCJIYXNMZWdJbnRPcHRPdXQiOmZhbHNlLCJIYXNDb25zZW50T3B0T3V0Ijp0cnVlLCJJc0dwY0VuYWJsZWQiOmZhbHNlLCJWZW5kb3JTZXJ2aWNlcyI6bnVsbCwiVHJhY2tpbmdUZWNoIjpudWxsfSx7IlNob3dJblBvcHVwIjp0cnVlLCJTaG93SW5Qb3B1cE5vbklBQiI6dHJ1ZSwiU2hvd1NES0xpc3RMaW5rIjp0cnVlLCJPcmRlciI6IjIiLCJPcHRhbm9uR3JvdXBJZCI6IkMwMDAzIiwiUGFyZW50IjoiIiwiU2hvd1N1Ymdyb3VwIjp0cnVlLCJTaG93U3ViR3JvdXBEZXNjcmlwdGlvbiI6dHJ1ZSwiU2hvd1N1Ymdyb3VwVG9nZ2xlIjpmYWxzZSwiQWx3YXlzU2hvd0NhdGVnb3J5IjpmYWxzZSwiR3JvdXBEZXNjcmlwdGlvbiI6IlRoZXNlIGNvb2tpZXMgZW5hYmxlIHVzIHRvIHJlbWVtYmVyIGNob2ljZXMgeW91IGhhdmUgbWFkZSBpbiB0aGUgcGFzdCBpbiBvcmRlciB0byBwcm92aWRlIGVuaGFuY2VkIGZ1bmN0aW9uYWxpdHkgYW5kIHBlcnNvbmFsaXNhdGlvbiAoZS5nLiB3aGF0IGxhbmd1YWdlIHlvdSBwcmVmZXIpLiBJZiB5b3UgZG8gbm90IGFsbG93IHRoZXNlIGNvb2tpZXMgdGhlbiBzb21lIG9yIGFsbCBvZiB0aGVzZSBzZXJ2aWNlcyBtYXkgbm90IGZ1bmN0aW9uIHByb3Blcmx5LiIsIkdyb3VwRGVzY3JpcHRpb25PVFQiOiJUaGVzZSBjb29raWVzIGVuYWJsZSB1cyB0byByZW1lbWJlciBjaG9pY2VzIHlvdSBoYXZlIG1hZGUgaW4gdGhlIHBhc3QgaW4gb3JkZXIgdG8gcHJvdmlkZSBlbmhhbmNlZCBmdW5jdGlvbmFsaXR5IGFuZCBwZXJzb25hbGlzYXRpb24gKGUuZy4gd2hhdCBsYW5ndWFnZSB5b3UgcHJlZmVyKS4gSWYgeW91IGRvIG5vdCBhbGxvdyB0aGVzZSBjb29raWVzIHRoZW4gc29tZSBvciBhbGwgb2YgdGhlc2Ugc2VydmljZXMgbWF5IG5vdCBmdW5jdGlvbiBwcm9wZXJseS4iLCJHcm91cE5hbWVNb2JpbGUiOiJGdW5jdGlvbmFsIENvb2tpZXMiLCJHcm91cE5hbWVPVFQiOiJGdW5jdGlvbmFsIENvb2tpZXMiLCJHcm91cE5hbWUiOiJGdW5jdGlvbmFsIENvb2tpZXMiLCJJc0lhYlB1cnBvc2UiOmZhbHNlLCJHZW5lcmFsVmVuZG9yc0lkcyI6W10sIkZpcnN0UGFydHlDb29raWVzIjpbeyJpZCI6IjAxOTVmNjcyLTJlNzQtNzM4Zi04ZGFhLTA0NzViMGYyYzUwMSIsIk5hbWUiOiJjb2luYmFzZV9jdXJyZW5jeSIsIkhvc3QiOiJ3d3cuY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjp0cnVlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJVc2VkIHRvIHBlcnNpc3QgdGhlIHVzZXIncyBjdXJyZW5jeSB0byBzaG93IHRoZW0gdGhlIHJpZ2h0IHByaWNlcyBmb3IgYXNzZXRzIGV0Yy4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJUaGlzIGRvbWFpbiBpcyBvd25lZCBieSBDb2luYmFzZSB3aGljaCBwcm92aWRlcyBhIHNlY3VyZSBvbmxpbmUgcGxhdGZvcm0gZm9yIGJ1eWluZywgc2VsbGluZywgdHJhbnNmZXJyaW5nLCBhbmQgc3RvcmluZyBjcnlwdG9jdXJyZW5jeS4iLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiQ29va2llfHd3dy5jb2luYmFzZS5jb20iLCJmaXJzdFBhcnR5S2V5IjpudWxsLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NjAyNmItY2Q0MS03YzRjLWFlY2QtNDA4OWU4NTY1MTIwIiwiTmFtZSI6Il9fY2ZfYm0iLCJIb3N0IjoiY29pbmJhc2VjZG4ubmV0IiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMCIsImRlc2NyaXB0aW9uIjoiVGhlIF9fY2ZfYm0gY29va2llIGlzIGEgY29va2llIG5lY2Vzc2FyeSB0byBzdXBwb3J0IENsb3VkZmxhcmUgQm90IE1hbmFnZW1lbnQsIGN1cnJlbnRseSBpbiBwcml2YXRlIGJldGEuIEFzIHBhcnQgb2Ygb3VyIGJvdCBtYW5hZ2VtZW50IHNlcnZpY2UsIHRoaXMgY29va2llIGhlbHBzIG1hbmFnZSBpbmNvbWluZyB0cmFmZmljIHRoYXQgbWF0Y2hlcyBjcml0ZXJpYSBhc3NvY2lhdGVkIHdpdGggYm90cy5cblRoaXMgaXMgYSBDbG91ZEZvdW5kcnkgY29va2llIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVGhpcyBpcyBhIENsb3VkRm91bmRyeSBjb29raWUiLCJwYXR0ZXJuS2V5IjoiX2NmX2JtIiwidGhpcmRQYXJ0eUtleSI6IlBhdHRlcm58X2NmX2JtIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZV9fY2ZfYm0sUGF0dGVybnxfY2ZfYm0iLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NWY5NjMtMTAwYy03OTgzLWI3ZTQtNDE0YzdiMzFiMTBmIiwiTmFtZSI6ImNiX3Rlc3RfY29va2llIiwiSG9zdCI6Ind3dy5jb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOnRydWUsIkxlbmd0aCI6IjAiLCJkZXNjcmlwdGlvbiI6IlRlc3QgY29va2llIHRvIGVuc3VyZSB0aGF0IGNvb2tpZXMgYXJlIHJ1bm5pbmcgb24gQ29pbmJhc2UiLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOm51bGwsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiIiLCJmaXJzdFBhcnR5S2V5IjoiIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmNjcyLTJlNmItNzBjNC1hOWYxLTUzNmMzMGYwYmI4MiIsIk5hbWUiOiJjYl9sb2dnZWRfb3V0X2xvY2FsZSIsIkhvc3QiOiJ3d3cuY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjp0cnVlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJVc2VkIHRvIGVuc3VyZSB0aGUgcmlnaHQgbG9jYWxlIGlzIHVzZWQgd2hlbiB1c2VyJ3MgYXJlIG5hdmlnYXRpbmcgaW50ZXJuYWxseSB3aXRoaW4gY29pbmJhc2UuY29tIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgQ29pbmJhc2Ugd2hpY2ggcHJvdmlkZXMgYSBzZWN1cmUgb25saW5lIHBsYXRmb3JtIGZvciBidXlpbmcsIHNlbGxpbmcsIHRyYW5zZmVycmluZywgYW5kIHN0b3JpbmcgY3J5cHRvY3VycmVuY3kuIiwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IkNvb2tpZXx3d3cuY29pbmJhc2UuY29tIiwiZmlyc3RQYXJ0eUtleSI6bnVsbCwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmNjczLTdlODgtN2QxMi1iMWQ3LTVjZWI5MGQ5NTBhZiIsIk5hbWUiOiJfQUxHT0xJQSIsIkhvc3QiOiJjb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJUaGlzIGNvb2tpZSBuYW1lIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2l0ZSdzIHNlYXJjaCBmZWF0dXJlIHdoaWNoIGlzIHVzZWQgdG8gdHJhY2sgcHJvZHVjdHMgc2VsZWN0ZWQgYW5kIGlkZW50aWZ5IHVzZXJzIGFjcm9zcyBzZXNzaW9ucyB3aXRoIGEgcGVyc2lzdGVudCwgYW5vbnltb3VzIHVzZXIgdG9rZW4uIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjpudWxsLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZV9BTEdPTElBIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOWEwMWFlLWU4ZmQtNzBjZS1iMmE1LTdlNzViMWZjNmJkMyIsIk5hbWUiOiJybG1fYXNzZXRfcGFnZV92aWV3X2NvdW50IiwiSG9zdCI6ImNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjI5IiwiZGVzY3JpcHRpb24iOiIiLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOm51bGwsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiIiLCJmaXJzdFBhcnR5S2V5IjpudWxsLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NWY2NzItMmU3OS03ODNjLWE0NjEtOGYyMGFhZjA4OTE2IiwiTmFtZSI6InJsbV9ob21lX3BhZ2Vfdmlld19jb3VudCIsIkhvc3QiOiJ3d3cuY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMjkiLCJkZXNjcmlwdGlvbiI6IlVzZWQgZm9yIHRyYWNraW5nIHVzZXIgdmlldyBjb3VudHMgb24gYXNzZXQgcGFnZSB0byBkZXRlcm1pbmUgd2hlbiB0byBzaG93IGEgcG9wdXAiLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOm51bGwsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiIiLCJmaXJzdFBhcnR5S2V5IjoiIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmNjczLTdlODktNzUwOS1hNjI2LTkxZWYxNzJiNjU2YSIsIk5hbWUiOiJfQUxHT0xJQSIsIkhvc3QiOiJoZWxwLmNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjE3OSIsImRlc2NyaXB0aW9uIjoiVGhpcyBjb29raWUgbmFtZSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNpdGUncyBzZWFyY2ggZmVhdHVyZSB3aGljaCBpcyB1c2VkIHRvIHRyYWNrIHByb2R1Y3RzIHNlbGVjdGVkIGFuZCBpZGVudGlmeSB1c2VycyBhY3Jvc3Mgc2Vzc2lvbnMgd2l0aCBhIHBlcnNpc3RlbnQsIGFub255bW91cyB1c2VyIHRva2VuLiIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6bnVsbCwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IiIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfQUxHT0xJQSIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTlhMDE3NC05ZjA5LTdjMzUtOGE3ZC1hNGRjNDZkY2UxN2EiLCJOYW1lIjoicmxtX2hvbWVfcGFnZV92aWV3X2NvdW50IiwiSG9zdCI6ImNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjI5IiwiZGVzY3JpcHRpb24iOiIiLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOm51bGwsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiIiLCJmaXJzdFBhcnR5S2V5IjpudWxsLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NWY2NzItMmU4MS03ZjJkLTk1NWUtZGIyZmVmYjVjM2IyIiwiTmFtZSI6ImNvaW5iYXNlX2xvY2FsZSIsIkhvc3QiOiJ3d3cuY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjp0cnVlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJVc2VkIHRvIGVuc3VyZSB0aGUgcmlnaHQgbG9jYWxlIGlzIHVzZWQgd2hlbiB1c2VyJ3MgYXJlIG5hdmlnYXRpbmcgaW50ZXJuYWxseSB3aXRoaW4gY29pbmJhc2UuY29tIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjpudWxsLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiIiwiZmlyc3RQYXJ0eUtleSI6IiIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk2MDAwMy0xOWNlLTc5MjMtOWEwYy1lNDcxOTQ1ODI5OWMiLCJOYW1lIjoicmxtX2Fzc2V0X3BhZ2Vfdmlld19jb3VudCIsIkhvc3QiOiJ3d3cuY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMjkiLCJkZXNjcmlwdGlvbiI6IlVzZWQgZm9yIHRyYWNraW5nIHVzZXIgdmlldyBjb3VudHMgb24gYXNzZXQgcGFnZSB0byBkZXRlcm1pbmUgd2hlbiB0byBzaG93IGEgcG9wdXAiLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOm51bGwsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiIiLCJmaXJzdFBhcnR5S2V5IjoiIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX1dLCJIb3N0cyI6W3siSG9zdE5hbWUiOiJ2aW1lby5jb20iLCJEaXNwbGF5TmFtZSI6InZpbWVvLmNvbSIsIkhvc3RJZCI6Ikg4IiwiRGVzY3JpcHRpb24iOiIiLCJQcml2YWN5UG9saWN5IjoiIiwiQ29va2llcyI6W3siaWQiOiIwMTk1ZjZjZi01ZjZjLTdhNmQtYTFkYi0wNzhlZTNhZjZmNjAiLCJOYW1lIjoiX19jZl9ibSIsIkhvc3QiOiJ2aW1lby5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIGEgQ2xvdWRGb3VuZHJ5IGNvb2tpZSIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6IlRoaXMgaXMgYSBDbG91ZEZvdW5kcnkgY29va2llIiwicGF0dGVybktleSI6Il9jZl9ibSIsInRoaXJkUGFydHlLZXkiOiJQYXR0ZXJufF9jZl9ibSIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfX2NmX2JtLFBhdHRlcm58X2NmX2JtIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmNmNmLTVmNmItNzJjOC05ZTIwLWJkMzBmYjc1MjEyZCIsIk5hbWUiOiJfY2Z1dmlkIiwiSG9zdCI6InZpbWVvLmNvbSIsIklzU2Vzc2lvbiI6dHJ1ZSwiTGVuZ3RoIjoiMCIsImRlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgVmltZW8uIFRoZSBtYWluIGJ1c2luZXNzIGFjdGl2aXR5IGlzOiBWaWRlbyBIb3N0aW5nL1NoYXJpbmciLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJUaGlzIGRvbWFpbiBpcyBvd25lZCBieSBWaW1lby4gVGhlIG1haW4gYnVzaW5lc3MgYWN0aXZpdHkgaXM6IFZpZGVvIEhvc3RpbmcvU2hhcmluZyIsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiJDb29raWV8dmltZW8uY29tIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZV9jZnV2aWQiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfV19LHsiSG9zdE5hbWUiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiRGlzcGxheU5hbWUiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiSG9zdElkIjoiSDIyIiwiRGVzY3JpcHRpb24iOiIiLCJQcml2YWN5UG9saWN5IjoiIiwiQ29va2llcyI6W3siaWQiOiIwMTlhMDE3NC05ZjA5LTdlNDYtOTNlZC1kNGYzMzk5YmExN2QiLCJOYW1lIjoiZ19zdGF0ZSIsIkhvc3QiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMTc5IiwiZGVzY3JpcHRpb24iOiJUaGlzIGRvbWFpbiBpcyBvd25lZCBieSBHb29nbGUuIFRoZSBtYWluIGJ1c2luZXNzIGFjdGl2aXR5IGlzOiBVc2VyIEFjY291bnRzIHN1Yi1kb21haW4uIENvb2tpZXMgaW4gdGhpcyBkb21haW4gaGF2ZSBsaWZlc3BhbnMgYmV0d2VlbiAxIG1vbnRoIHRvIDIgeWVhcnMuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgR29vZ2xlLiBUaGUgbWFpbiBidXNpbmVzcyBhY3Rpdml0eSBpczogVXNlciBBY2NvdW50cyBzdWItZG9tYWluLiBDb29raWVzIGluIHRoaXMgZG9tYWluIGhhdmUgbGlmZXNwYW5zIGJldHdlZW4gMSBtb250aCB0byAyIHllYXJzLiIsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiJDb29raWV8YWNjb3VudHMuZ29vZ2xlLmNvbSIsImZpcnN0UGFydHlLZXkiOiJDb29raWVnX3N0YXRlIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX1dfV0sIlB1cnBvc2VJZCI6IjMwRERCOTFBLTlDMDctNEZEMy04OTI5LURERjZENjY2RjdENSIsIkN1c3RvbUdyb3VwSWQiOiJDMDAwMyIsIkdyb3VwSWQiOiI4ZGUzM2IxYi1hNDUyLTQ4OTItOGU0NC01MWFlZWQwZGQ3MzYiLCJTdGF0dXMiOiJpbmFjdGl2ZSIsIklzRG50RW5hYmxlZCI6ZmFsc2UsIlR5cGUiOiJDT09LSUUiLCJEZXNjcmlwdGlvbkxlZ2FsIjoiIiwiSWFiSWxsdXN0cmF0aW9ucyI6W10sIkhhc0xlZ0ludE9wdE91dCI6ZmFsc2UsIkhhc0NvbnNlbnRPcHRPdXQiOnRydWUsIklzR3BjRW5hYmxlZCI6ZmFsc2UsIlZlbmRvclNlcnZpY2VzIjpudWxsLCJUcmFja2luZ1RlY2giOm51bGx9LHsiU2hvd0luUG9wdXAiOnRydWUsIlNob3dJblBvcHVwTm9uSUFCIjp0cnVlLCJTaG93U0RLTGlzdExpbmsiOnRydWUsIk9yZGVyIjoiMyIsIk9wdGFub25Hcm91cElkIjoiQzAwMDQiLCJQYXJlbnQiOiIiLCJTaG93U3ViZ3JvdXAiOnRydWUsIlNob3dTdWJHcm91cERlc2NyaXB0aW9uIjp0cnVlLCJTaG93U3ViZ3JvdXBUb2dnbGUiOmZhbHNlLCJBbHdheXNTaG93Q2F0ZWdvcnkiOmZhbHNlLCJHcm91cERlc2NyaXB0aW9uIjoiVGhlc2UgY29va2llcyBtYXkgYmUgc2V0IHRocm91Z2ggb3VyIHNpdGUgYnkgb3VyIGFkdmVydGlzaW5nIHBhcnRuZXJzLiBUaGV5IG1heSBiZSB1c2VkIGJ5IHRob3NlIGNvbXBhbmllcyB0byBidWlsZCBhIHByb2ZpbGUgb2YgeW91ciBpbnRlcmVzdHMgYW5kIHNob3cgeW91IHJlbGV2YW50IGFkcyBvbiBvdGhlciBzaXRlcy4gVGhleSBkbyBub3Qgc3RvcmUgZGlyZWN0bHkgcGVyc29uYWwgaW5mb3JtYXRpb24sIGJ1dCBhcmUgYmFzZWQgb24gdW5pcXVlbHkgaWRlbnRpZnlpbmcgeW91ciBicm93c2VyIGFuZCBpbnRlcm5ldCBkZXZpY2UuIElmIHlvdSBkbyBub3QgYWxsb3cgdGhlc2UgY29va2llcywgeW91IHdpbGwgZXhwZXJpZW5jZSBsZXNzIHRhcmdldGVkIGFkdmVydGlzaW5nLiIsIkdyb3VwRGVzY3JpcHRpb25PVFQiOiJUaGVzZSBjb29raWVzIG1heSBiZSBzZXQgdGhyb3VnaCBvdXIgc2l0ZSBieSBvdXIgYWR2ZXJ0aXNpbmcgcGFydG5lcnMuIFRoZXkgbWF5IGJlIHVzZWQgYnkgdGhvc2UgY29tcGFuaWVzIHRvIGJ1aWxkIGEgcHJvZmlsZSBvZiB5b3VyIGludGVyZXN0cyBhbmQgc2hvdyB5b3UgcmVsZXZhbnQgYWRzIG9uIG90aGVyIHNpdGVzLiBUaGV5IGRvIG5vdCBzdG9yZSBkaXJlY3RseSBwZXJzb25hbCBpbmZvcm1hdGlvbiwgYnV0IGFyZSBiYXNlZCBvbiB1bmlxdWVseSBpZGVudGlmeWluZyB5b3VyIGJyb3dzZXIgYW5kIGludGVybmV0IGRldmljZS4gSWYgeW91IGRvIG5vdCBhbGxvdyB0aGVzZSBjb29raWVzLCB5b3Ugd2lsbCBleHBlcmllbmNlIGxlc3MgdGFyZ2V0ZWQgYWR2ZXJ0aXNpbmcuIiwiR3JvdXBOYW1lTW9iaWxlIjoiVGFyZ2V0aW5nIENvb2tpZXMiLCJHcm91cE5hbWVPVFQiOiJUYXJnZXRpbmcgQ29va2llcyIsIkdyb3VwTmFtZSI6IlRhcmdldGluZyBDb29raWVzIiwiSXNJYWJQdXJwb3NlIjpmYWxzZSwiR2VuZXJhbFZlbmRvcnNJZHMiOltdLCJGaXJzdFBhcnR5Q29va2llcyI6W3siaWQiOiIwMTljZmE0MC1hMmIxLTc0NzctODcwZS0xOWVjY2U4NWM3ZjciLCJOYW1lIjoiX2dhdF9VQS1ubm5ubm5uLW5uIiwiSG9zdCI6ImNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjAiLCJkZXNjcmlwdGlvbiI6IlRoaXMgaXMgYSBwYXR0ZXJuIHR5cGUgY29va2llIHNldCBieSBHb29nbGUgQW5hbHl0aWNzLCB3aGVyZSB0aGUgcGF0dGVybiBlbGVtZW50IG9uIHRoZSBuYW1lIGNvbnRhaW5zIHRoZSB1bmlxdWUgaWRlbnRpdHkgbnVtYmVyIG9mIHRoZSBhY2NvdW50IG9yIHdlYnNpdGUgaXQgcmVsYXRlcyB0by4gSXQgYXBwZWFycyB0byBiZSBhIHZhcmlhdGlvbiBvZiB0aGUgX2dhdCBjb29raWUgd2hpY2ggaXMgdXNlZCB0byBsaW1pdCB0aGUgYW1vdW50IG9mIGRhdGEgcmVjb3JkZWQgYnkgR29vZ2xlIG9uIGhpZ2ggdHJhZmZpYyB2b2x1bWUgd2Vic2l0ZXMuR29vZ2xlIEFuYWx5dGljcyBDb29raWVzIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiR29vZ2xlIEFuYWx5dGljcyBDb29raWVzIiwicGF0dGVybktleSI6Il9nYXRfIiwidGhpcmRQYXJ0eUtleSI6IlBhdHRlcm58X2dhdF8iLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llX2dhdF9VQS1ubm5ubm5uLW5uLFBhdHRlcm58X2dhdF8iLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5YTAyZTUtMmRmOS03MjMzLThlMjctMjMxMDQ3ODNmY2RiIiwiTmFtZSI6Il9nY2xfYXUiLCJIb3N0Ijoid3d3LmNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6dHJ1ZSwiTGVuZ3RoIjoiMCIsImRlc2NyaXB0aW9uIjoiVXNlZCBieSBHb29nbGUgQWRTZW5zZSBmb3IgZXhwZXJpbWVudGluZyB3aXRoIGFkdmVydGlzZW1lbnQgZWZmaWNpZW5jeSBhY3Jvc3Mgd2Vic2l0ZXMgdXNpbmcgdGhlaXIgc2VydmljZXMgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgR29vZ2xlJiMzOTtzIHByb2Nlc3Npbmcgb2YgeW91ciBwZXJzb25hbCBkYXRhLCBwbGVhc2UgY29uc3VsdCBHb29nbGUmIzM5O3MgPGEgaHJlZj1cImh0dHBzOi8vYnVzaW5lc3Muc2FmZXR5Lmdvb2dsZS9wcml2YWN5L1wiIHJlbD1cIm5vZm9sbG93XCI+UHJpdmFjeSAmYW1wOyBUZXJtczwvYT4gc2l0ZS4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOm51bGwsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiIiLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llX2djbF9hdSIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTlhMDJlNS0yZGY5LTc2YjYtODM1NS0yMzY2NWM0NDAzN2UiLCJOYW1lIjoiX2dhdF9VQS0iLCJIb3N0Ijoid3d3LmNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6dHJ1ZSwiTGVuZ3RoIjoiMCIsImRlc2NyaXB0aW9uIjoiVGhpcyBjb29raWUgbmFtZSBpcyBhc3NvY2lhdGVkIHdpdGggR29vZ2xlIEFuYWx5dGljcyB3aGljaCBpcyB1c2VkIHRvIHRocm90dGxlIHRoZSByZXF1ZXN0IHJhdGUgdG8gdGhlIEdvb2dsZSBBbmFseXRpY3Mgc2VydmljZS5Hb29nbGUgQW5hbHl0aWNzIENvb2tpZXMiLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJHb29nbGUgQW5hbHl0aWNzIENvb2tpZXMiLCJwYXR0ZXJuS2V5IjoiX2dhdF8iLCJ0aGlyZFBhcnR5S2V5IjoiUGF0dGVybnxfZ2F0XyIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfZ2F0X1VBLSxQYXR0ZXJufF9nYXRfIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmNjcyLTJlN2ItNzEyYy04NDNlLTJlMjgzOWU2OTk5MiIsIk5hbWUiOiJfZ2F0X1VBLSIsIkhvc3QiOiJjb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJUaGlzIGNvb2tpZSBuYW1lIGlzIGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgQW5hbHl0aWNzIHdoaWNoIGlzIHVzZWQgdG8gdGhyb3R0bGUgdGhlIHJlcXVlc3QgcmF0ZSB0byB0aGUgR29vZ2xlIEFuYWx5dGljcyBzZXJ2aWNlLkdvb2dsZSBBbmFseXRpY3MgQ29va2llcyIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6Ikdvb2dsZSBBbmFseXRpY3MgQ29va2llcyIsInBhdHRlcm5LZXkiOiJfZ2F0XyIsInRoaXJkUGFydHlLZXkiOiJQYXR0ZXJufF9nYXRfIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZV9nYXRfVUEtLFBhdHRlcm58X2dhdF8iLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NWY2NzItMmU3Mi03N2Y1LThiMzAtNGFiMTM0OWFkZGNkIiwiTmFtZSI6Il9mYnAiLCJIb3N0IjoiY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiODkiLCJkZXNjcmlwdGlvbiI6IlVzZWQgYnkgRmFjZWJvb2sgdG8gZGVsaXZlciBhIHNlcmllcyBvZiBhZHZlcnRpc2VtZW50IHByb2R1Y3RzIHN1Y2ggYXMgcmVhbCB0aW1lIGJpZGRpbmcgZnJvbSB0aGlyZCBwYXJ0eSBhZHZlcnRpc2VycyIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6bnVsbCwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IiIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfZmJwIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOWEwMmU1LTJkZjgtNzg2ZC1hYWI5LTRiYzJmZmQ0Njk0MSIsIk5hbWUiOiJfZmJwIiwiSG9zdCI6Ind3dy5jb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOnRydWUsIkxlbmd0aCI6IjAiLCJkZXNjcmlwdGlvbiI6IlVzZWQgYnkgRmFjZWJvb2sgdG8gZGVsaXZlciBhIHNlcmllcyBvZiBhZHZlcnRpc2VtZW50IHByb2R1Y3RzIHN1Y2ggYXMgcmVhbCB0aW1lIGJpZGRpbmcgZnJvbSB0aGlyZCBwYXJ0eSBhZHZlcnRpc2VycyIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6bnVsbCwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IiIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfZmJwIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmYzM4LTMyNjUtNzc2YS1iNWIyLTVmNTRjMzFkZGUwMiIsIk5hbWUiOiJfUkNSVFgwMyIsIkhvc3QiOiJ3d3cuY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMCIsImRlc2NyaXB0aW9uIjoiVGhpcyBjb29raWUgbmFtZSBfUkNSVFgwMyBpcyB1c2VkIHRvIHNlcnZlIGludGVyZXN0LWJhc2VkIGpvYiBhZHZlcnRpc2VtZW50cyBhbmQgdHJhY2sgdGhlIHN1Y2Nlc3Mgb2Ygam9iIHBvc3RpbmdzLiIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6bnVsbCwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IiIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfUkNSVFgwMyIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk1ZjY3Mi0yZTY5LTdmMWMtYjBiNi01ZmIzMDQxYTc2YjAiLCJOYW1lIjoiX2ZicCIsIkhvc3QiOiJjb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiI4OSIsImRlc2NyaXB0aW9uIjoiVXNlZCBieSBGYWNlYm9vayB0byBkZWxpdmVyIGEgc2VyaWVzIG9mIGFkdmVydGlzZW1lbnQgcHJvZHVjdHMgc3VjaCBhcyByZWFsIHRpbWUgYmlkZGluZyBmcm9tIHRoaXJkIHBhcnR5IGFkdmVydGlzZXJzIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjpudWxsLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZV9mYnAiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NWZjMzgtMzJiMy03MDYwLWFhNjAtOTg5NzU5MmM3N2MyIiwiTmFtZSI6Il9nY2xfYXUiLCJIb3N0IjoiY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiODkiLCJkZXNjcmlwdGlvbiI6IlVzZWQgYnkgR29vZ2xlIEFkU2Vuc2UgZm9yIGV4cGVyaW1lbnRpbmcgd2l0aCBhZHZlcnRpc2VtZW50IGVmZmljaWVuY3kgYWNyb3NzIHdlYnNpdGVzIHVzaW5nIHRoZWlyIHNlcnZpY2VzIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEdvb2dsZSYjMzk7cyBwcm9jZXNzaW5nIG9mIHlvdXIgcGVyc29uYWwgZGF0YSwgcGxlYXNlIGNvbnN1bHQgR29vZ2xlJiMzOTtzIDxhIGhyZWY9XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvcHJpdmFjeS9cIiByZWw9XCJub2ZvbGxvd1wiPlByaXZhY3kgJmFtcDsgVGVybXM8L2E+IHNpdGUuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjpudWxsLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZV9nY2xfYXUiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NWZjMzgtMzJiYS03N2MwLTg5MDgtOTlhMzQxZGI1YjZlIiwiTmFtZSI6Il9SQ1JUWDAzIiwiSG9zdCI6ImNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjI2OSIsImRlc2NyaXB0aW9uIjoiVGhpcyBjb29raWUgbmFtZSBfUkNSVFgwMyBpcyB1c2VkIHRvIHNlcnZlIGludGVyZXN0LWJhc2VkIGpvYiBhZHZlcnRpc2VtZW50cyBhbmQgdHJhY2sgdGhlIHN1Y2Nlc3Mgb2Ygam9iIHBvc3RpbmdzLiIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6bnVsbCwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IiIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfUkNSVFgwMyIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk1ZmMzOC0zMjgzLTc0N2YtOGJiNC05ZmY1ZDkyYThiMWEiLCJOYW1lIjoiX3JkdF91dWlkIiwiSG9zdCI6ImNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6Ijg5IiwiZGVzY3JpcHRpb24iOiJUaGlzIGNvb2tpZSBpcyBzZXQgYnkgUmVkZGl0IGFuZCBpcyB1c2VkIGZvciB0cmFja2luZyB0aGUgdmlld3Mgb2YgZW1iZWRkZWQgdmlkZW9zIGFuZCBwZXJmb3JtYW5jZSBvZiB0aGUgYWR2ZXJ0aXNlbWVudHMuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjpudWxsLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZV9yZHRfdXVpZCIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk1ZmMzOC0zMmIxLTc5Y2ItOWRmZC1iM2NlZDBmZGY4Y2UiLCJOYW1lIjoiX1JDUlRYMDMtc2FtZXNpdGUiLCJIb3N0Ijoid3d3LmNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjAiLCJkZXNjcmlwdGlvbiI6IlRoaXMgY29va2llIG5hbWUgaXMgYXNzb2NpYXRlZCB3aXRoIFJlY3J1aXRpY3MgYW5kIEdvb2dsZSBNYXJrZXRpbmcgUGxhdGZvcm0gYWR2ZXJ0aXNpbmcgcHJvZHVjdHMgd2hpY2ggaXMgdXNlZCB0byB0YXJnZXQgYWR2ZXJ0aXNpbmcgYmFzZWQgb24gd2hhdOKAmXMgcmVsZXZhbnQgdG8gYSB1c2VyLCB0byBpbXByb3ZlIHJlcG9ydGluZyBvbiBjYW1wYWlnbiBwZXJmb3JtYW5jZSwgYW5kIHRvIGF2b2lkIHNob3dpbmcgYWRzIHRoZSB1c2VyIGhhcyBhbHJlYWR5IHNlZW4uIEl0IGlzIGFsc28gdXNlZCB0byBoZWxwIHRyYWNrIHRoZSBzdWNjZXNzIG9mIGpvYiBwb3N0aW5ncy4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOm51bGwsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiIiLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llX1JDUlRYMDMtc2FtZXNpdGUiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NWZjMzgtMzI4OS03OTEwLWFlZGMtY2E2MDRkZjNjOTUwIiwiTmFtZSI6Il9SQ1JUWDAzLXNhbWVzaXRlIiwiSG9zdCI6ImNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjI2OSIsImRlc2NyaXB0aW9uIjoiVGhpcyBjb29raWUgbmFtZSBpcyBhc3NvY2lhdGVkIHdpdGggUmVjcnVpdGljcyBhbmQgR29vZ2xlIE1hcmtldGluZyBQbGF0Zm9ybSBhZHZlcnRpc2luZyBwcm9kdWN0cyB3aGljaCBpcyB1c2VkIHRvIHRhcmdldCBhZHZlcnRpc2luZyBiYXNlZCBvbiB3aGF04oCZcyByZWxldmFudCB0byBhIHVzZXIsIHRvIGltcHJvdmUgcmVwb3J0aW5nIG9uIGNhbXBhaWduIHBlcmZvcm1hbmNlLCBhbmQgdG8gYXZvaWQgc2hvd2luZyBhZHMgdGhlIHVzZXIgaGFzIGFscmVhZHkgc2Vlbi4gSXQgaXMgYWxzbyB1c2VkIHRvIGhlbHAgdHJhY2sgdGhlIHN1Y2Nlc3Mgb2Ygam9iIHBvc3RpbmdzLiIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6bnVsbCwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IiIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfUkNSVFgwMy1zYW1lc2l0ZSIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk1ZmMzOC0zMmFkLTdjZTEtOTFlMC1mMzU5ZjdlOWY4NjEiLCJOYW1lIjoiX3JkdF91dWlkIiwiSG9zdCI6Ind3dy5jb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJUaGlzIGNvb2tpZSBpcyBzZXQgYnkgUmVkZGl0IGFuZCBpcyB1c2VkIGZvciB0cmFja2luZyB0aGUgdmlld3Mgb2YgZW1iZWRkZWQgdmlkZW9zIGFuZCBwZXJmb3JtYW5jZSBvZiB0aGUgYWR2ZXJ0aXNlbWVudHMuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjpudWxsLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZV9yZHRfdXVpZCIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9XSwiSG9zdHMiOlt7Ikhvc3ROYW1lIjoiZmFjZWJvb2suY29tIiwiRGlzcGxheU5hbWUiOiJmYWNlYm9vay5jb20iLCJIb3N0SWQiOiJINyIsIkRlc2NyaXB0aW9uIjoiIiwiUHJpdmFjeVBvbGljeSI6IiIsIkNvb2tpZXMiOlt7ImlkIjoiMDE5NWY5NjEtYmE2Mi03YThkLTllNWYtZTdhOWFlNDFiN2MzIiwiTmFtZSI6ImZyIiwiSG9zdCI6ImZhY2Vib29rLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6Ijg5IiwiZGVzY3JpcHRpb24iOiJDb250YWlucyBicm93c2VyIGFuZCB1c2VyIHVuaXF1ZSBJRCBjb21iaW5hdGlvbiwgdXNlZCBmb3IgdGFyZ2V0ZWQgYWR2ZXJ0aXNpbmcuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiQ29udGFpbnMgYnJvd3NlciBhbmQgdXNlciB1bmlxdWUgSUQgY29tYmluYXRpb24sIHVzZWQgZm9yIHRhcmdldGVkIGFkdmVydGlzaW5nLiIsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiJDb29raWVmcnxmYWNlYm9vay5jb20iLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llZnIiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfV19LHsiSG9zdE5hbWUiOiJ3d3cubGlua2VkaW4uY29tIiwiRGlzcGxheU5hbWUiOiJ3d3cubGlua2VkaW4uY29tIiwiSG9zdElkIjoiSDEyIiwiRGVzY3JpcHRpb24iOiIiLCJQcml2YWN5UG9saWN5IjoiIiwiQ29va2llcyI6W3siaWQiOiIwMTk1ZjY2Zi0yNzczLTdjZDktYWVjNi1jYWIxMTk0MzNkYjciLCJOYW1lIjoiYnNjb29raWUiLCJIb3N0Ijoid3d3LmxpbmtlZGluLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjM2NCIsImRlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgTGlua2VkSW4gQ29ycG9yYXRpb24uIExpbmtlZEluIGlzIGEgYnVzaW5lc3MtIGFuZCBlbXBsb3ltZW50LW9yaWVudGVkIG9ubGluZSBzZXJ2aWNlIHRoYXQgb3BlcmF0ZXMgdmlhIHdlYnNpdGVzIGFuZCBtb2JpbGUgYXBwcy4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJUaGlzIGRvbWFpbiBpcyBvd25lZCBieSBMaW5rZWRJbiBDb3Jwb3JhdGlvbi4gTGlua2VkSW4gaXMgYSBidXNpbmVzcy0gYW5kIGVtcGxveW1lbnQtb3JpZW50ZWQgb25saW5lIHNlcnZpY2UgdGhhdCBvcGVyYXRlcyB2aWEgd2Vic2l0ZXMgYW5kIG1vYmlsZSBhcHBzLiIsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiJDb29raWV8d3d3LmxpbmtlZGluLmNvbSIsImZpcnN0UGFydHlLZXkiOiJDb29raWVic2Nvb2tpZSIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9XX0seyJIb3N0TmFtZSI6InB4LmFkcy5saW5rZWRpbi5jb20iLCJEaXNwbGF5TmFtZSI6InB4LmFkcy5saW5rZWRpbi5jb20iLCJIb3N0SWQiOiJIMTMiLCJEZXNjcmlwdGlvbiI6IiIsIlByaXZhY3lQb2xpY3kiOiIiLCJDb29raWVzIjpbeyJpZCI6IjAxOTVmNjZmLTI3NzYtNzBhNy1iNjc4LTM0NzJiNjFkYTUzZCIsIk5hbWUiOiJhcl9kZWJ1ZyIsIkhvc3QiOiJweC5hZHMubGlua2VkaW4uY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMzAiLCJkZXNjcmlwdGlvbiI6IlRoaXMgZG9tYWluIGlzIGFzc29jaWF0ZWQgd2l0aCBMaW5rZWRJbidzIG1hcmtldGluZyBzZXJ2aWNlcyB0aGF0IHByb3ZpZGUgcmV0YXJnZXRpbmcgZm9yIGFkdmVydGlzZXJzIHRvIHJlYWNoIGF1ZGllbmNlcyBvbiBMaW5rZWRJbi4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJUaGlzIGRvbWFpbiBpcyBhc3NvY2lhdGVkIHdpdGggTGlua2VkSW4ncyBtYXJrZXRpbmcgc2VydmljZXMgdGhhdCBwcm92aWRlIHJldGFyZ2V0aW5nIGZvciBhZHZlcnRpc2VycyB0byByZWFjaCBhdWRpZW5jZXMgb24gTGlua2VkSW4uIiwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IkNvb2tpZXxweC5hZHMubGlua2VkaW4uY29tIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZWFyX2RlYnVnIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX1dfSx7Ikhvc3ROYW1lIjoiZG91YmxlY2xpY2submV0IiwiRGlzcGxheU5hbWUiOiJkb3VibGVjbGljay5uZXQiLCJIb3N0SWQiOiJINiIsIkRlc2NyaXB0aW9uIjoiIiwiUHJpdmFjeVBvbGljeSI6IiIsIkNvb2tpZXMiOlt7ImlkIjoiMDE5NWY2NmYtMjdhNy03NmJmLWIzZDEtNjhkYWFkYTBhNTFhIiwiTmFtZSI6InRlc3RfY29va2llIiwiSG9zdCI6ImRvdWJsZWNsaWNrLm5ldCIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjAiLCJkZXNjcmlwdGlvbiI6IlRoaXMgZG9tYWluIGlzIG93bmVkIGJ5IERvdWJsZWNsaWNrIChHb29nbGUpLiBUaGUgbWFpbiBidXNpbmVzcyBhY3Rpdml0eSBpczogRG91YmxlY2xpY2sgaXMgR29vZ2xlcyByZWFsIHRpbWUgYmlkZGluZyBhZHZlcnRpc2luZyBleGNoYW5nZSIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6IlRoaXMgZG9tYWluIGlzIG93bmVkIGJ5IERvdWJsZWNsaWNrIChHb29nbGUpLiBUaGUgbWFpbiBidXNpbmVzcyBhY3Rpdml0eSBpczogRG91YmxlY2xpY2sgaXMgR29vZ2xlcyByZWFsIHRpbWUgYmlkZGluZyBhZHZlcnRpc2luZyBleGNoYW5nZSIsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiJDb29raWV8ZG91YmxlY2xpY2submV0IiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZXRlc3RfY29va2llIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmNjcyLTJlNzEtNzQ2ZS04NDRkLWMyODMwZGZiMzNiNyIsIk5hbWUiOiJJREUiLCJIb3N0IjoiZG91YmxlY2xpY2submV0IiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMzk5IiwiZGVzY3JpcHRpb24iOiJUaGlzIGRvbWFpbiBpcyBvd25lZCBieSBEb3VibGVjbGljayAoR29vZ2xlKS4gVGhlIG1haW4gYnVzaW5lc3MgYWN0aXZpdHkgaXM6IERvdWJsZWNsaWNrIGlzIEdvb2dsZXMgcmVhbCB0aW1lIGJpZGRpbmcgYWR2ZXJ0aXNpbmcgZXhjaGFuZ2UiLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJUaGlzIGRvbWFpbiBpcyBvd25lZCBieSBEb3VibGVjbGljayAoR29vZ2xlKS4gVGhlIG1haW4gYnVzaW5lc3MgYWN0aXZpdHkgaXM6IERvdWJsZWNsaWNrIGlzIEdvb2dsZXMgcmVhbCB0aW1lIGJpZGRpbmcgYWR2ZXJ0aXNpbmcgZXhjaGFuZ2UiLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiQ29va2llfGRvdWJsZWNsaWNrLm5ldCIsImZpcnN0UGFydHlLZXkiOiJDb29raWVJREUiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfV19LHsiSG9zdE5hbWUiOiJyZWNydWl0aWNzLmNvbSIsIkRpc3BsYXlOYW1lIjoicmVjcnVpdGljcy5jb20iLCJIb3N0SWQiOiJIMSIsIkRlc2NyaXB0aW9uIjoiIiwiUHJpdmFjeVBvbGljeSI6IiIsIkNvb2tpZXMiOlt7ImlkIjoiMDE5NWY2NmYtMjc4OC03YzNjLThmZGMtMWM5YzZmMmUzYjNiIiwiTmFtZSI6Il9SQ1JUWDAzLXNhbWVzaXRlIiwiSG9zdCI6InJlY3J1aXRpY3MuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMjY5IiwiZGVzY3JpcHRpb24iOiJSZWNydWl0aWNzIGlzIGEgZGF0YS1jZW50cmljIHJlY3J1aXRtZW50IG1hcmtldGluZyBhZ2VuY3kgYW5kIGFuYWx5dGljcyBwbGF0Zm9ybSB0aGF0IGhlbHBzIGNvbXBhbmllcyBvcHRpbWl6ZSB0aGVpciB0YWxlbnQgYWNxdWlzaXRpb24gc3RyYXRlZ2llcy4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJSZWNydWl0aWNzIGlzIGEgZGF0YS1jZW50cmljIHJlY3J1aXRtZW50IG1hcmtldGluZyBhZ2VuY3kgYW5kIGFuYWx5dGljcyBwbGF0Zm9ybSB0aGF0IGhlbHBzIGNvbXBhbmllcyBvcHRpbWl6ZSB0aGVpciB0YWxlbnQgYWNxdWlzaXRpb24gc3RyYXRlZ2llcy4iLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiQ29va2llfHJlY3J1aXRpY3MuY29tIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZV9SQ1JUWDAzLXNhbWVzaXRlIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmNjZmLTI3YTktNzgwZC04ZjE4LWM2YzgyNDFlMGRlZCIsIk5hbWUiOiJfUkNSVFgwMyIsIkhvc3QiOiJyZWNydWl0aWNzLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjI2OSIsImRlc2NyaXB0aW9uIjoiUmVjcnVpdGljcyBpcyBhIGRhdGEtY2VudHJpYyByZWNydWl0bWVudCBtYXJrZXRpbmcgYWdlbmN5IGFuZCBhbmFseXRpY3MgcGxhdGZvcm0gdGhhdCBoZWxwcyBjb21wYW5pZXMgb3B0aW1pemUgdGhlaXIgdGFsZW50IGFjcXVpc2l0aW9uIHN0cmF0ZWdpZXMuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiUmVjcnVpdGljcyBpcyBhIGRhdGEtY2VudHJpYyByZWNydWl0bWVudCBtYXJrZXRpbmcgYWdlbmN5IGFuZCBhbmFseXRpY3MgcGxhdGZvcm0gdGhhdCBoZWxwcyBjb21wYW5pZXMgb3B0aW1pemUgdGhlaXIgdGFsZW50IGFjcXVpc2l0aW9uIHN0cmF0ZWdpZXMuIiwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IkNvb2tpZXxyZWNydWl0aWNzLmNvbSIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfUkNSVFgwMyIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9XX0seyJIb3N0TmFtZSI6InlvdXR1YmUuY29tIiwiRGlzcGxheU5hbWUiOiJ5b3V0dWJlLmNvbSIsIkhvc3RJZCI6IkgyNSIsIkRlc2NyaXB0aW9uIjoiIiwiUHJpdmFjeVBvbGljeSI6IiIsIkNvb2tpZXMiOlt7ImlkIjoiMDE5YTVjNDAtODU1NS03YjI4LTg1YjYtMmQzMjhmMGQxMzE1IiwiTmFtZSI6Il9fU2VjdXJlLXh4eHh4eHgiLCJIb3N0IjoieW91dHViZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJZb3VUdWJlIGlzIGEgR29vZ2xlIG93bmVkIHBsYXRmb3JtIGZvciBob3N0aW5nIGFuZCBzaGFyaW5nIHZpZGVvcy4gWW91VHViZSBjb2xsZWN0cyB1c2VyIGRhdGEgdGhyb3VnaCB2aWRlb3MgZW1iZWRkZWQgaW4gd2Vic2l0ZXMsIHdoaWNoIGlzIGFnZ3JlZ2F0ZWQgd2l0aCBwcm9maWxlIGRhdGEgZnJvbSBvdGhlciBHb29nbGUgc2VydmljZXMgaW4gb3JkZXIgdG8gZGlzcGxheSB0YXJnZXRlZCBhZHZlcnRpc2luZyB0byB3ZWIgdmlzaXRvcnMgYWNyb3NzIGEgYnJvYWQgcmFuZ2Ugb2YgdGhlaXIgb3duIGFuZCBvdGhlciB3ZWJzaXRlcy4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJZb3VUdWJlIGlzIGEgR29vZ2xlIG93bmVkIHBsYXRmb3JtIGZvciBob3N0aW5nIGFuZCBzaGFyaW5nIHZpZGVvcy4gWW91VHViZSBjb2xsZWN0cyB1c2VyIGRhdGEgdGhyb3VnaCB2aWRlb3MgZW1iZWRkZWQgaW4gd2Vic2l0ZXMsIHdoaWNoIGlzIGFnZ3JlZ2F0ZWQgd2l0aCBwcm9maWxlIGRhdGEgZnJvbSBvdGhlciBHb29nbGUgc2VydmljZXMgaW4gb3JkZXIgdG8gZGlzcGxheSB0YXJnZXRlZCBhZHZlcnRpc2luZyB0byB3ZWIgdmlzaXRvcnMgYWNyb3NzIGEgYnJvYWQgcmFuZ2Ugb2YgdGhlaXIgb3duIGFuZCBvdGhlciB3ZWJzaXRlcy4iLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiQ29va2llfHlvdXR1YmUuY29tIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZV9fU2VjdXJlLXh4eHh4eHgiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5YTVjNDAtODU1NS03YTA1LTg2MzMtMzJlMDdlYjM1M2Y4IiwiTmFtZSI6IllTQyIsIkhvc3QiOiJ5b3V0dWJlLmNvbSIsIklzU2Vzc2lvbiI6dHJ1ZSwiTGVuZ3RoIjoiMCIsImRlc2NyaXB0aW9uIjoiWW91VHViZSBpcyBhIEdvb2dsZSBvd25lZCBwbGF0Zm9ybSBmb3IgaG9zdGluZyBhbmQgc2hhcmluZyB2aWRlb3MuIFlvdVR1YmUgY29sbGVjdHMgdXNlciBkYXRhIHRocm91Z2ggdmlkZW9zIGVtYmVkZGVkIGluIHdlYnNpdGVzLCB3aGljaCBpcyBhZ2dyZWdhdGVkIHdpdGggcHJvZmlsZSBkYXRhIGZyb20gb3RoZXIgR29vZ2xlIHNlcnZpY2VzIGluIG9yZGVyIHRvIGRpc3BsYXkgdGFyZ2V0ZWQgYWR2ZXJ0aXNpbmcgdG8gd2ViIHZpc2l0b3JzIGFjcm9zcyBhIGJyb2FkIHJhbmdlIG9mIHRoZWlyIG93biBhbmQgb3RoZXIgd2Vic2l0ZXMuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiWW91VHViZSBpcyBhIEdvb2dsZSBvd25lZCBwbGF0Zm9ybSBmb3IgaG9zdGluZyBhbmQgc2hhcmluZyB2aWRlb3MuIFlvdVR1YmUgY29sbGVjdHMgdXNlciBkYXRhIHRocm91Z2ggdmlkZW9zIGVtYmVkZGVkIGluIHdlYnNpdGVzLCB3aGljaCBpcyBhZ2dyZWdhdGVkIHdpdGggcHJvZmlsZSBkYXRhIGZyb20gb3RoZXIgR29vZ2xlIHNlcnZpY2VzIGluIG9yZGVyIHRvIGRpc3BsYXkgdGFyZ2V0ZWQgYWR2ZXJ0aXNpbmcgdG8gd2ViIHZpc2l0b3JzIGFjcm9zcyBhIGJyb2FkIHJhbmdlIG9mIHRoZWlyIG93biBhbmQgb3RoZXIgd2Vic2l0ZXMuIiwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IkNvb2tpZXx5b3V0dWJlLmNvbSIsImZpcnN0UGFydHlLZXkiOiJDb29raWVZU0MiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5YTVjNDAtODU1NS03N2MxLTg0YzUtNDk3YTM5NzcyMTA1IiwiTmFtZSI6IlZJU0lUT1JfSU5GTzFfTElWRSIsIkhvc3QiOiJ5b3V0dWJlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjE3OSIsImRlc2NyaXB0aW9uIjoiVGhpcyBjb29raWUgaXMgdXNlZCBhcyBhIHVuaXF1ZSBpZGVudGlmaWVyIHRvIHRyYWNrIHZpZXdpbmcgb2YgdmlkZW9zIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEdvb2dsZSYjMzk7cyBwcm9jZXNzaW5nIG9mIHlvdXIgcGVyc29uYWwgZGF0YSwgcGxlYXNlIGNvbnN1bHQgR29vZ2xlJiMzOTtzIDxhIGhyZWY9XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvcHJpdmFjeS9cIiByZWw9XCJub2ZvbGxvd1wiPlByaXZhY3kgJmFtcDsgVGVybXM8L2E+IHNpdGUuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVGhpcyBjb29raWUgaXMgdXNlZCBhcyBhIHVuaXF1ZSBpZGVudGlmaWVyIHRvIHRyYWNrIHZpZXdpbmcgb2YgdmlkZW9zIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEdvb2dsZSYjMzk7cyBwcm9jZXNzaW5nIG9mIHlvdXIgcGVyc29uYWwgZGF0YSwgcGxlYXNlIGNvbnN1bHQgR29vZ2xlJiMzOTtzIDxhIGhyZWY9XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvcHJpdmFjeS9cIiByZWw9XCJub2ZvbGxvd1wiPlByaXZhY3kgJmFtcDsgVGVybXM8L2E+IHNpdGUuIiwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IkNvb2tpZVZJU0lUT1JfSU5GTzFfTElWRXx5b3V0dWJlLmNvbSIsImZpcnN0UGFydHlLZXkiOiJDb29raWVWSVNJVE9SX0lORk8xX0xJVkUiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5YTVjNDAtODU1NS03ZGM1LTk3MjMtZmQ2MGE4ZjM0NDEwIiwiTmFtZSI6IlZJU0lUT1JfUFJJVkFDWV9NRVRBREFUQSIsIkhvc3QiOiJ5b3V0dWJlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjE3OSIsImRlc2NyaXB0aW9uIjoiWW91VHViZSBpcyBhIEdvb2dsZSBvd25lZCBwbGF0Zm9ybSBmb3IgaG9zdGluZyBhbmQgc2hhcmluZyB2aWRlb3MuIFlvdVR1YmUgY29sbGVjdHMgdXNlciBkYXRhIHRocm91Z2ggdmlkZW9zIGVtYmVkZGVkIGluIHdlYnNpdGVzLCB3aGljaCBpcyBhZ2dyZWdhdGVkIHdpdGggcHJvZmlsZSBkYXRhIGZyb20gb3RoZXIgR29vZ2xlIHNlcnZpY2VzIGluIG9yZGVyIHRvIGRpc3BsYXkgdGFyZ2V0ZWQgYWR2ZXJ0aXNpbmcgdG8gd2ViIHZpc2l0b3JzIGFjcm9zcyBhIGJyb2FkIHJhbmdlIG9mIHRoZWlyIG93biBhbmQgb3RoZXIgd2Vic2l0ZXMuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiWW91VHViZSBpcyBhIEdvb2dsZSBvd25lZCBwbGF0Zm9ybSBmb3IgaG9zdGluZyBhbmQgc2hhcmluZyB2aWRlb3MuIFlvdVR1YmUgY29sbGVjdHMgdXNlciBkYXRhIHRocm91Z2ggdmlkZW9zIGVtYmVkZGVkIGluIHdlYnNpdGVzLCB3aGljaCBpcyBhZ2dyZWdhdGVkIHdpdGggcHJvZmlsZSBkYXRhIGZyb20gb3RoZXIgR29vZ2xlIHNlcnZpY2VzIGluIG9yZGVyIHRvIGRpc3BsYXkgdGFyZ2V0ZWQgYWR2ZXJ0aXNpbmcgdG8gd2ViIHZpc2l0b3JzIGFjcm9zcyBhIGJyb2FkIHJhbmdlIG9mIHRoZWlyIG93biBhbmQgb3RoZXIgd2Vic2l0ZXMuIiwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IkNvb2tpZXx5b3V0dWJlLmNvbSIsImZpcnN0UGFydHlLZXkiOiJDb29raWVWSVNJVE9SX1BSSVZBQ1lfTUVUQURBVEEiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfV19LHsiSG9zdE5hbWUiOiJsaW5rZWRpbi5jb20iLCJEaXNwbGF5TmFtZSI6ImxpbmtlZGluLmNvbSIsIkhvc3RJZCI6IkgyIiwiRGVzY3JpcHRpb24iOiIiLCJQcml2YWN5UG9saWN5IjoiIiwiQ29va2llcyI6W3siaWQiOiIwMTk1ZjY2Zi0yNzgzLTc4ZWMtYjg1MS0yNWFiZTRhM2JjMmYiLCJOYW1lIjoiVXNlck1hdGNoSGlzdG9yeSIsIkhvc3QiOiJsaW5rZWRpbi5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIyOSIsImRlc2NyaXB0aW9uIjoiVXNlZCB0byB0cmFjayB1c2FnZSBvZiB0aGUgZW1iZWRkZWQgdmlkZW8gcGxheWVyLiIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6IlVzZWQgdG8gdHJhY2sgdXNhZ2Ugb2YgdGhlIGVtYmVkZGVkIHZpZGVvIHBsYXllci4iLCJwYXR0ZXJuS2V5IjoidXNlciIsInRoaXJkUGFydHlLZXkiOiJQYXR0ZXJufHVzZXIiLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llVXNlck1hdGNoSGlzdG9yeSxQYXR0ZXJufHVzZXIiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NWY2NmYtMjc3ZC03NjIyLWI5ZGUtMmVjNjIxOTg5NzkwIiwiTmFtZSI6ImxpX3N1Z3IiLCJIb3N0IjoibGlua2VkaW4uY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiODkiLCJkZXNjcmlwdGlvbiI6IlRoaXMgZG9tYWluIGlzIG93bmVkIGJ5IExpbmtlZEluIENvcnBvcmF0aW9uLiBMaW5rZWRJbiBpcyBhIGJ1c2luZXNzLSBhbmQgZW1wbG95bWVudC1vcmllbnRlZCBvbmxpbmUgc2VydmljZSB0aGF0IG9wZXJhdGVzIHZpYSB3ZWJzaXRlcyBhbmQgbW9iaWxlIGFwcHMuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgTGlua2VkSW4gQ29ycG9yYXRpb24uIExpbmtlZEluIGlzIGEgYnVzaW5lc3MtIGFuZCBlbXBsb3ltZW50LW9yaWVudGVkIG9ubGluZSBzZXJ2aWNlIHRoYXQgb3BlcmF0ZXMgdmlhIHdlYnNpdGVzIGFuZCBtb2JpbGUgYXBwcy4iLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiQ29va2llfGxpbmtlZGluLmNvbSIsImZpcnN0UGFydHlLZXkiOm51bGwsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk1ZjY2Zi0yN2EyLTcxYjEtYWU3Yi03MTljZTVjNmViZTYiLCJOYW1lIjoibGlkYyIsIkhvc3QiOiJsaW5rZWRpbi5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJUaGlzIGRvbWFpbiBpcyBvd25lZCBieSBMaW5rZWRJbiBDb3Jwb3JhdGlvbi4gTGlua2VkSW4gaXMgYSBidXNpbmVzcy0gYW5kIGVtcGxveW1lbnQtb3JpZW50ZWQgb25saW5lIHNlcnZpY2UgdGhhdCBvcGVyYXRlcyB2aWEgd2Vic2l0ZXMgYW5kIG1vYmlsZSBhcHBzLiIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6IlRoaXMgZG9tYWluIGlzIG93bmVkIGJ5IExpbmtlZEluIENvcnBvcmF0aW9uLiBMaW5rZWRJbiBpcyBhIGJ1c2luZXNzLSBhbmQgZW1wbG95bWVudC1vcmllbnRlZCBvbmxpbmUgc2VydmljZSB0aGF0IG9wZXJhdGVzIHZpYSB3ZWJzaXRlcyBhbmQgbW9iaWxlIGFwcHMuIiwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IkNvb2tpZXxsaW5rZWRpbi5jb20iLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llbGlkYyIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk2NDY2Yy05NTg4LTczZTgtOWE0OS03NGM5NWIxMTI0ZDAiLCJOYW1lIjoiX19jZl9ibSIsIkhvc3QiOiJsaW5rZWRpbi5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIGEgQ2xvdWRGb3VuZHJ5IGNvb2tpZSIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6IlRoaXMgaXMgYSBDbG91ZEZvdW5kcnkgY29va2llIiwicGF0dGVybktleSI6Il9jZl9ibSIsInRoaXJkUGFydHlLZXkiOiJQYXR0ZXJufF9jZl9ibSIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfX2NmX2JtLFBhdHRlcm58X2NmX2JtIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmNjZmLTI3ODYtNzUzNi1hYjNiLWNiYWUzYTc4YTY2YyIsIk5hbWUiOiJBbmFseXRpY3NTeW5jSGlzdG9yeSIsIkhvc3QiOiJsaW5rZWRpbi5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIyOSIsImRlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgTGlua2VkSW4gQ29ycG9yYXRpb24uIExpbmtlZEluIGlzIGEgYnVzaW5lc3MtIGFuZCBlbXBsb3ltZW50LW9yaWVudGVkIG9ubGluZSBzZXJ2aWNlIHRoYXQgb3BlcmF0ZXMgdmlhIHdlYnNpdGVzIGFuZCBtb2JpbGUgYXBwcy4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJUaGlzIGRvbWFpbiBpcyBvd25lZCBieSBMaW5rZWRJbiBDb3Jwb3JhdGlvbi4gTGlua2VkSW4gaXMgYSBidXNpbmVzcy0gYW5kIGVtcGxveW1lbnQtb3JpZW50ZWQgb25saW5lIHNlcnZpY2UgdGhhdCBvcGVyYXRlcyB2aWEgd2Vic2l0ZXMgYW5kIG1vYmlsZSBhcHBzLiIsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiJDb29raWV8bGlua2VkaW4uY29tIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZUFuYWx5dGljc1N5bmNIaXN0b3J5IiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmNjZmLTI3ODAtNzFlOC04NjQxLWY1M2YwZWFkYTJkYiIsIk5hbWUiOiJiY29va2llIiwiSG9zdCI6ImxpbmtlZGluLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjM2NCIsImRlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgTGlua2VkSW4gQ29ycG9yYXRpb24uIExpbmtlZEluIGlzIGEgYnVzaW5lc3MtIGFuZCBlbXBsb3ltZW50LW9yaWVudGVkIG9ubGluZSBzZXJ2aWNlIHRoYXQgb3BlcmF0ZXMgdmlhIHdlYnNpdGVzIGFuZCBtb2JpbGUgYXBwcy4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJUaGlzIGRvbWFpbiBpcyBvd25lZCBieSBMaW5rZWRJbiBDb3Jwb3JhdGlvbi4gTGlua2VkSW4gaXMgYSBidXNpbmVzcy0gYW5kIGVtcGxveW1lbnQtb3JpZW50ZWQgb25saW5lIHNlcnZpY2UgdGhhdCBvcGVyYXRlcyB2aWEgd2Vic2l0ZXMgYW5kIG1vYmlsZSBhcHBzLiIsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiJDb29raWV8bGlua2VkaW4uY29tIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZWJjb29raWUiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfV19LHsiSG9zdE5hbWUiOiJnb29nbGUuY29tIiwiRGlzcGxheU5hbWUiOiJnb29nbGUuY29tIiwiSG9zdElkIjoiSDI2IiwiRGVzY3JpcHRpb24iOiIiLCJQcml2YWN5UG9saWN5IjoiIiwiQ29va2llcyI6W3siaWQiOiIwMTlhNWM0MC04NTUxLTc3ZTItYjE1OC0wMGNlZTliYmZhZWQiLCJOYW1lIjoiTklEIiwiSG9zdCI6Imdvb2dsZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIxODIiLCJkZXNjcmlwdGlvbiI6IlRoaXMgZG9tYWluIGlzIG93bmVkIGJ5IEdvb2dsZSBJbmMuIEFsdGhvdWdoIEdvb2dsZSBpcyBwcmltYXJpbHkga25vd24gYXMgYSBzZWFyY2ggZW5naW5lLCB0aGUgY29tcGFueSBwcm92aWRlcyBhIGRpdmVyc2UgcmFuZ2Ugb2YgcHJvZHVjdHMgYW5kIHNlcnZpY2VzLiBJdHMgbWFpbiBzb3VyY2Ugb2YgcmV2ZW51ZSBob3dldmVyIGlzIGFkdmVydGlzaW5nLiBHb29nbGUgdHJhY2tzIHVzZXJzIGV4dGVuc2l2ZWx5IGJvdGggdGhyb3VnaCBpdHMgb3duIHByb2R1Y3RzIGFuZCBzaXRlcywgYW5kIHRoZSBudW1lcm91cyB0ZWNobm9sb2dpZXMgZW1iZWRkZWQgaW50byBtYW55IG1pbGxpb25zIG9mIHdlYnNpdGVzIGFyb3VuZCB0aGUgd29ybGQuIEl0IHVzZXMgdGhlIGRhdGEgZ2F0aGVyZWQgZnJvbSBtb3N0IG9mIHRoZXNlIHNlcnZpY2VzIHRvIHByb2ZpbGUgdGhlIGludGVyZXN0cyBvZiB3ZWIgdXNlcnMgYW5kIHNlbGwgYWR2ZXJ0aXNpbmcgc3BhY2UgdG8gb3JnYW5pc2F0aW9ucyBiYXNlZCBvbiBzdWNoIGludGVyZXN0IHByb2ZpbGVzIGFzIHdlbGwgYXMgYWxpZ25pbmcgYWR2ZXJ0cyB0byB0aGUgY29udGVudCBvbiB0aGUgcGFnZXMgd2hlcmUgaXRzIGN1c3RvbWVyJ3MgYWR2ZXJ0cyBhcHBlYXIuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgb3duZWQgYnkgR29vZ2xlIEluYy4gQWx0aG91Z2ggR29vZ2xlIGlzIHByaW1hcmlseSBrbm93biBhcyBhIHNlYXJjaCBlbmdpbmUsIHRoZSBjb21wYW55IHByb3ZpZGVzIGEgZGl2ZXJzZSByYW5nZSBvZiBwcm9kdWN0cyBhbmQgc2VydmljZXMuIEl0cyBtYWluIHNvdXJjZSBvZiByZXZlbnVlIGhvd2V2ZXIgaXMgYWR2ZXJ0aXNpbmcuIEdvb2dsZSB0cmFja3MgdXNlcnMgZXh0ZW5zaXZlbHkgYm90aCB0aHJvdWdoIGl0cyBvd24gcHJvZHVjdHMgYW5kIHNpdGVzLCBhbmQgdGhlIG51bWVyb3VzIHRlY2hub2xvZ2llcyBlbWJlZGRlZCBpbnRvIG1hbnkgbWlsbGlvbnMgb2Ygd2Vic2l0ZXMgYXJvdW5kIHRoZSB3b3JsZC4gSXQgdXNlcyB0aGUgZGF0YSBnYXRoZXJlZCBmcm9tIG1vc3Qgb2YgdGhlc2Ugc2VydmljZXMgdG8gcHJvZmlsZSB0aGUgaW50ZXJlc3RzIG9mIHdlYiB1c2VycyBhbmQgc2VsbCBhZHZlcnRpc2luZyBzcGFjZSB0byBvcmdhbmlzYXRpb25zIGJhc2VkIG9uIHN1Y2ggaW50ZXJlc3QgcHJvZmlsZXMgYXMgd2VsbCBhcyBhbGlnbmluZyBhZHZlcnRzIHRvIHRoZSBjb250ZW50IG9uIHRoZSBwYWdlcyB3aGVyZSBpdHMgY3VzdG9tZXIncyBhZHZlcnRzIGFwcGVhci4iLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiQ29va2llfGdvb2dsZS5jb20iLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llTklEIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX1dfV0sIlB1cnBvc2VJZCI6IjBGRTU5MzI1LTJEOTAtNERBRC1CNzEzLTJBNUUwQTEyNTA5QyIsIkN1c3RvbUdyb3VwSWQiOiJDMDAwNCIsIkdyb3VwSWQiOiJhOGQ3NjhiMS1hYjI2LTQzMDQtOGQ1Zi02ZmI1MDU1ZTMyM2UiLCJTdGF0dXMiOiJpbmFjdGl2ZSIsIklzRG50RW5hYmxlZCI6dHJ1ZSwiVHlwZSI6IkNPT0tJRSIsIkRlc2NyaXB0aW9uTGVnYWwiOiIiLCJJYWJJbGx1c3RyYXRpb25zIjpbXSwiSGFzTGVnSW50T3B0T3V0IjpmYWxzZSwiSGFzQ29uc2VudE9wdE91dCI6dHJ1ZSwiSXNHcGNFbmFibGVkIjp0cnVlLCJWZW5kb3JTZXJ2aWNlcyI6bnVsbCwiVHJhY2tpbmdUZWNoIjpudWxsfSx7IlNob3dJblBvcHVwIjp0cnVlLCJTaG93SW5Qb3B1cE5vbklBQiI6dHJ1ZSwiU2hvd1NES0xpc3RMaW5rIjp0cnVlLCJPcmRlciI6IjUiLCJPcHRhbm9uR3JvdXBJZCI6IkMwMDAyIiwiUGFyZW50IjoiIiwiU2hvd1N1Ymdyb3VwIjp0cnVlLCJTaG93U3ViR3JvdXBEZXNjcmlwdGlvbiI6dHJ1ZSwiU2hvd1N1Ymdyb3VwVG9nZ2xlIjpmYWxzZSwiQWx3YXlzU2hvd0NhdGVnb3J5IjpmYWxzZSwiR3JvdXBEZXNjcmlwdGlvbiI6IlRoZXNlIGNvb2tpZXMgYWxsb3cgdXMgdG8gY291bnQgdmlzaXRzIGFuZCB0cmFmZmljIHNvdXJjZXMgc28gd2UgY2FuIG1lYXN1cmUgYW5kIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIG9mIG91ciBzaXRlLiBUaGV5IGhlbHAgdXMgdG8ga25vdyB3aGljaCBwYWdlcyBhcmUgdGhlIG1vc3QgYW5kIGxlYXN0IHBvcHVsYXIgYW5kIHNlZSBob3cgdmlzaXRvcnMgbW92ZSBhcm91bmQgdGhlIHNpdGUuIElmIHlvdSBkbyBub3QgYWxsb3cgdGhlc2UgY29va2llcyB3ZSB3aWxsIG5vdCBrbm93IHdoZW4geW91IGhhdmUgdmlzaXRlZCBvdXIgc2l0ZSwgYW5kIHdpbGwgbm90IGJlIGFibGUgdG8gbW9uaXRvciBpdHMgcGVyZm9ybWFuY2UuIiwiR3JvdXBEZXNjcmlwdGlvbk9UVCI6IlRoZXNlIGNvb2tpZXMgYWxsb3cgdXMgdG8gY291bnQgdmlzaXRzIGFuZCB0cmFmZmljIHNvdXJjZXMgc28gd2UgY2FuIG1lYXN1cmUgYW5kIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIG9mIG91ciBzaXRlLiBUaGV5IGhlbHAgdXMgdG8ga25vdyB3aGljaCBwYWdlcyBhcmUgdGhlIG1vc3QgYW5kIGxlYXN0IHBvcHVsYXIgYW5kIHNlZSBob3cgdmlzaXRvcnMgbW92ZSBhcm91bmQgdGhlIHNpdGUuIElmIHlvdSBkbyBub3QgYWxsb3cgdGhlc2UgY29va2llcyB3ZSB3aWxsIG5vdCBrbm93IHdoZW4geW91IGhhdmUgdmlzaXRlZCBvdXIgc2l0ZSwgYW5kIHdpbGwgbm90IGJlIGFibGUgdG8gbW9uaXRvciBpdHMgcGVyZm9ybWFuY2UuIiwiR3JvdXBOYW1lTW9iaWxlIjoiUGVyZm9ybWFuY2UgQ29va2llcyIsIkdyb3VwTmFtZU9UVCI6IlBlcmZvcm1hbmNlIENvb2tpZXMiLCJHcm91cE5hbWUiOiJQZXJmb3JtYW5jZSBDb29raWVzIiwiSXNJYWJQdXJwb3NlIjpmYWxzZSwiR2VuZXJhbFZlbmRvcnNJZHMiOltdLCJGaXJzdFBhcnR5Q29va2llcyI6W3siaWQiOiIwMTk1ZjY3Mi0yZTdmLTc3OTItOWQ2Yi0wZDhjNGJlZGMyOTYiLCJOYW1lIjoiX2dhX3h4eHh4eHh4eHgiLCJIb3N0IjoiY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMzk5IiwiZGVzY3JpcHRpb24iOiJOQVVzZWQgYnkgR29vZ2xlIEFuYWx5dGljcyB0byBpZGVudGlmeSBhbmQgdHJhY2sgYW4gaW5kaXZpZHVhbCBzZXNzaW9uIHdpdGggeW91ciBkZXZpY2UuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVXNlZCBieSBHb29nbGUgQW5hbHl0aWNzIHRvIGlkZW50aWZ5IGFuZCB0cmFjayBhbiBpbmRpdmlkdWFsIHNlc3Npb24gd2l0aCB5b3VyIGRldmljZS4iLCJwYXR0ZXJuS2V5IjoiX2dhXyIsInRoaXJkUGFydHlLZXkiOiJQYXR0ZXJufF9nYV8iLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llX2dhX3h4eHh4eHh4eHgsUGF0dGVybnxfZ2FfIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmNjcyLTJlNzctNzgxOC05YTYyLTFhNWNjZjZiOTU1OCIsIk5hbWUiOiJfZ2EiLCJIb3N0IjoiY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiNzI5IiwiZGVzY3JpcHRpb24iOiJUaGlzIGNvb2tpZSBuYW1lIGlzIGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgVW5pdmVyc2FsIEFuYWx5dGljcyAtIHdoaWNoIGlzIGEgc2lnbmlmaWNhbnQgdXBkYXRlIHRvIEdvb2dsZSYjMzk7cyBtb3JlIGNvbW1vbmx5IHVzZWQgYW5hbHl0aWNzIHNlcnZpY2UuIFRoaXMgY29va2llIGlzIHVzZWQgdG8gZGlzdGluZ3Vpc2ggdW5pcXVlIHVzZXJzIGJ5IGFzc2lnbmluZyBhIHJhbmRvbWx5IGdlbmVyYXRlZCBudW1iZXIgYXMgYSBjbGllbnQgaWRlbnRpZmllci4gSXQgaXMgaW5jbHVkZWQgaW4gZWFjaCBwYWdlIHJlcXVlc3QgaW4gYSBzaXRlIGFuZCB1c2VkIHRvIGNhbGN1bGF0ZSB2aXNpdG9yLCBzZXNzaW9uIGFuZCBjYW1wYWlnbiBkYXRhIGZvciB0aGUgc2l0ZXMgYW5hbHl0aWNzIHJlcG9ydHMuICBCeSBkZWZhdWx0IGl0IGlzIHNldCB0byBleHBpcmUgYWZ0ZXIgMiB5ZWFycywgYWx0aG91Z2ggdGhpcyBpcyBjdXN0b21pc2FibGUgYnkgd2Vic2l0ZSBvd25lcnMuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEdvb2dsZSYjMzk7cyBwcm9jZXNzaW5nIG9mIHlvdXIgcGVyc29uYWwgZGF0YSwgcGxlYXNlIGNvbnN1bHQgR29vZ2xlJiMzOTtzIDxhIGhyZWY9XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvcHJpdmFjeS9cIiByZWw9XCJub2ZvbGxvd1wiPlByaXZhY3kgJmFtcDsgVGVybXM8L2E+IHNpdGUuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjpudWxsLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiIiwiZmlyc3RQYXJ0eUtleSI6IkNvb2tpZV9nYSIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTk1ZjY3My03ZTg1LTc3MmQtODhmOS0yNWEzYTE5ZWE5NDMiLCJOYW1lIjoiX2dhX3h4eHh4eHh4eHgiLCJIb3N0IjoiaGVscC5jb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIwIiwiZGVzY3JpcHRpb24iOiJOQVVzZWQgYnkgR29vZ2xlIEFuYWx5dGljcyB0byBpZGVudGlmeSBhbmQgdHJhY2sgYW4gaW5kaXZpZHVhbCBzZXNzaW9uIHdpdGggeW91ciBkZXZpY2UuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVXNlZCBieSBHb29nbGUgQW5hbHl0aWNzIHRvIGlkZW50aWZ5IGFuZCB0cmFjayBhbiBpbmRpdmlkdWFsIHNlc3Npb24gd2l0aCB5b3VyIGRldmljZS4iLCJwYXR0ZXJuS2V5IjoiX2dhXyIsInRoaXJkUGFydHlLZXkiOiJQYXR0ZXJufF9nYV8iLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llX2dhX3h4eHh4eHh4eHgsUGF0dGVybnxfZ2FfIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTYwMjZiLWNiODgtNzhmNC1hNGFhLTNmODc2MmJiNmI4NSIsIk5hbWUiOiJjb2luYmFzZV9kZXZpY2VfaWQiLCJIb3N0Ijoid3d3LmNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6ZmFsc2UsIkxlbmd0aCI6IjAiLCJkZXNjcmlwdGlvbiI6IlVzZWQgZm9yIHRyYWNraW5nIHNpZ251cCBhdHRyaWJ1dGlvbiBvbiBsb2dnZWRfb3V0IChTRU8gZXRjKSBhbmQgcnVubmluZyBleHBlcmltZW50cyIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6bnVsbCwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IiIsImZpcnN0UGFydHlLZXkiOiIiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NWY5NzItZWI1My03YjU4LWIxNmYtNDNlYzJiMzM5NDk4IiwiTmFtZSI6Il9nYV94eHh4eHh4eHh4IiwiSG9zdCI6Ind3dy5jb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOnRydWUsIkxlbmd0aCI6IjAiLCJkZXNjcmlwdGlvbiI6Ik5BVXNlZCBieSBHb29nbGUgQW5hbHl0aWNzIHRvIGlkZW50aWZ5IGFuZCB0cmFjayBhbiBpbmRpdmlkdWFsIHNlc3Npb24gd2l0aCB5b3VyIGRldmljZS4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJVc2VkIGJ5IEdvb2dsZSBBbmFseXRpY3MgdG8gaWRlbnRpZnkgYW5kIHRyYWNrIGFuIGluZGl2aWR1YWwgc2Vzc2lvbiB3aXRoIHlvdXIgZGV2aWNlLiIsInBhdHRlcm5LZXkiOiJfZ2FfIiwidGhpcmRQYXJ0eUtleSI6IlBhdHRlcm58X2dhXyIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfZ2FfeHh4eHh4eHh4eCxQYXR0ZXJufF9nYV8iLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5YTAyZTUtMmRmYS03MjM1LWI0NGUtNGJlZWVkNWQ2NzBkIiwiTmFtZSI6Il9naWQiLCJIb3N0Ijoid3d3LmNvaW5iYXNlLmNvbSIsIklzU2Vzc2lvbiI6dHJ1ZSwiTGVuZ3RoIjoiMCIsImRlc2NyaXB0aW9uIjoiVGhpcyBjb29raWUgbmFtZSBpcyBhc3NvY2lhdGVkIHdpdGggR29vZ2xlIFVuaXZlcnNhbCBBbmFseXRpY3MuIFRoaXMgYXBwZWFycyB0byBiZSBhIG5ldyBjb29raWUgYW5kIGFzIG9mIFNwcmluZyAyMDE3IG5vIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBmcm9tIEdvb2dsZS4gIEl0IGFwcGVhcnMgdG8gc3RvcmUgYW5kIHVwZGF0ZSBhIHVuaXF1ZSB2YWx1ZSBmb3IgZWFjaCBwYWdlIHZpc2l0ZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEdvb2dsZSYjMzk7cyBwcm9jZXNzaW5nIG9mIHlvdXIgcGVyc29uYWwgZGF0YSwgcGxlYXNlIGNvbnN1bHQgR29vZ2xlJiMzOTtzIDxhIGhyZWY9XCJodHRwczovL2J1c2luZXNzLnNhZmV0eS5nb29nbGUvcHJpdmFjeS9cIiByZWw9XCJub2ZvbGxvd1wiPlByaXZhY3kgJmFtcDsgVGVybXM8L2E+IHNpdGUuX2dpZCIsInRoaXJkUGFydHlEZXNjcmlwdGlvbiI6Il9naWQiLCJwYXR0ZXJuS2V5IjoiX2dpZCIsInRoaXJkUGFydHlLZXkiOiJQYXR0ZXJufF9naWQiLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llX2dpZCxQYXR0ZXJufF9naWQiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5ZDk0YzUtZWMyZi03YWM3LWI3NWQtOTc2ZjMyOGI1OWE1IiwiTmFtZSI6Il9kZF9zIiwiSG9zdCI6Ind3dy5jb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIzNjQiLCJkZXNjcmlwdGlvbiI6IkRhdGFkb2cgQ29va2llIHVzZWQgdG8gZ3JvdXAgYWxsIGV2ZW50cyBnZW5lcmF0ZWQgZnJvbSBhIHVuaXF1ZSB1c2VyIHNlc3Npb24gYWNyb3NzIG11bHRpcGxlIHBhZ2VzLiBJdCBjb250YWlucyB0aGUgY3VycmVudCBzZXNzaW9uIElELCB3aGV0aGVyIHRoZSBzZXNzaW9uIGlzIGV4Y2x1ZGVkIGR1ZSB0byBzYW1wbGluZywgYW5kIHRoZSBleHBpcmF0aW9uIGRhdGUgb2YgdGhlIHNlc3Npb24uIFRoZSBjb29raWUgaXMgZXh0ZW5kZWQgZm9yIGFuIGV4dHJhIDE1IG1pbnV0ZXMgZXZlcnkgdGltZSB0aGUgdXNlciBpbnRlcmFjdHMgd2l0aCB0aGUgd2Vic2l0ZSwgdXAgdG8gdGhlIG1heGltdW0gdXNlciBzZXNzaW9uIGR1cmF0aW9uICg0IGhvdXJzKS4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOm51bGwsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiIiLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llX2RkX3MiLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfSx7ImlkIjoiMDE5NWY2NzItMmU2Zi03MDFhLWFkYzMtYmFjYzRiOGU0M2UxIiwiTmFtZSI6Il9naWQiLCJIb3N0IjoiY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMCIsImRlc2NyaXB0aW9uIjoiR29vZ2xlIGFkcyBmdW5jdGlvbmFsaXR5IiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiX2dpZCIsInBhdHRlcm5LZXkiOiJfZ2lkIiwidGhpcmRQYXJ0eUtleSI6IlBhdHRlcm58X2dpZCIsImZpcnN0UGFydHlLZXkiOiJDb29raWVfZ2lkLFBhdHRlcm58X2dpZCIsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9LHsiaWQiOiIwMTlhMDJlNS0yZGY4LTdiMzgtOTVjYS1lZTM5MzJkOTZiYTYiLCJOYW1lIjoiX2dhIiwiSG9zdCI6Ind3dy5jb2luYmFzZS5jb20iLCJJc1Nlc3Npb24iOnRydWUsIkxlbmd0aCI6IjAiLCJkZXNjcmlwdGlvbiI6IlRoaXMgY29va2llIG5hbWUgaXMgYXNzb2NpYXRlZCB3aXRoIEdvb2dsZSBVbml2ZXJzYWwgQW5hbHl0aWNzIC0gd2hpY2ggaXMgYSBzaWduaWZpY2FudCB1cGRhdGUgdG8gR29vZ2xlJiMzOTtzIG1vcmUgY29tbW9ubHkgdXNlZCBhbmFseXRpY3Mgc2VydmljZS4gVGhpcyBjb29raWUgaXMgdXNlZCB0byBkaXN0aW5ndWlzaCB1bmlxdWUgdXNlcnMgYnkgYXNzaWduaW5nIGEgcmFuZG9tbHkgZ2VuZXJhdGVkIG51bWJlciBhcyBhIGNsaWVudCBpZGVudGlmaWVyLiBJdCBpcyBpbmNsdWRlZCBpbiBlYWNoIHBhZ2UgcmVxdWVzdCBpbiBhIHNpdGUgYW5kIHVzZWQgdG8gY2FsY3VsYXRlIHZpc2l0b3IsIHNlc3Npb24gYW5kIGNhbXBhaWduIGRhdGEgZm9yIHRoZSBzaXRlcyBhbmFseXRpY3MgcmVwb3J0cy4gIEJ5IGRlZmF1bHQgaXQgaXMgc2V0IHRvIGV4cGlyZSBhZnRlciAyIHllYXJzLCBhbHRob3VnaCB0aGlzIGlzIGN1c3RvbWlzYWJsZSBieSB3ZWJzaXRlIG93bmVycy4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgR29vZ2xlJiMzOTtzIHByb2Nlc3Npbmcgb2YgeW91ciBwZXJzb25hbCBkYXRhLCBwbGVhc2UgY29uc3VsdCBHb29nbGUmIzM5O3MgPGEgaHJlZj1cImh0dHBzOi8vYnVzaW5lc3Muc2FmZXR5Lmdvb2dsZS9wcml2YWN5L1wiIHJlbD1cIm5vZm9sbG93XCI+UHJpdmFjeSAmYW1wOyBUZXJtczwvYT4gc2l0ZS4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOm51bGwsInBhdHRlcm5LZXkiOm51bGwsInRoaXJkUGFydHlLZXkiOiIiLCJmaXJzdFBhcnR5S2V5IjoiQ29va2llX2dhIiwiRHVyYXRpb25UeXBlIjoxLCJjYXRlZ29yeSI6bnVsbCwiaXNUaGlyZFBhcnR5IjpmYWxzZX0seyJpZCI6IjAxOTVmNjcyLTJlNmQtNzU5MS05OTA2LWVmNDEwMjg2MTZjOCIsIk5hbWUiOiJjb2luYmFzZV9kZXZpY2VfaWQiLCJIb3N0IjoiY29pbmJhc2UuY29tIiwiSXNTZXNzaW9uIjpmYWxzZSwiTGVuZ3RoIjoiMzY0OSIsImRlc2NyaXB0aW9uIjoiVXNlZCBmb3IgdHJhY2tpbmcgc2lnbnVwIGF0dHJpYnV0aW9uIG9uIGxvZ2dlZF9vdXQgKFNFTyBldGMpIGFuZCBydW5uaW5nIGV4cGVyaW1lbnRzXG4iLCJ0aGlyZFBhcnR5RGVzY3JpcHRpb24iOiJUaGlzIGRvbWFpbiBpcyBvd25lZCBieSBDb2luYmFzZSB3aGljaCBwcm92aWRlcyBhIHNlY3VyZSBvbmxpbmUgcGxhdGZvcm0gZm9yIGJ1eWluZywgc2VsbGluZywgdHJhbnNmZXJyaW5nLCBhbmQgc3RvcmluZyBjcnlwdG9jdXJyZW5jeS4iLCJwYXR0ZXJuS2V5IjpudWxsLCJ0aGlyZFBhcnR5S2V5IjoiQ29va2llfGNvaW5iYXNlLmNvbSIsImZpcnN0UGFydHlLZXkiOm51bGwsIkR1cmF0aW9uVHlwZSI6MSwiY2F0ZWdvcnkiOm51bGwsImlzVGhpcmRQYXJ0eSI6ZmFsc2V9XSwiSG9zdHMiOlt7Ikhvc3ROYW1lIjoid3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tIiwiRGlzcGxheU5hbWUiOiJ3d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20iLCJIb3N0SWQiOiJIMTAiLCJEZXNjcmlwdGlvbiI6IiIsIlByaXZhY3lQb2xpY3kiOiIiLCJDb29raWVzIjpbeyJpZCI6IjAxOTVmOTcyLWViNTYtNzYzMi05NDkzLTQ1YjVjMjI1YzcwYSIsIk5hbWUiOiJhcl9kZWJ1ZyIsIkhvc3QiOiJ3d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20iLCJJc1Nlc3Npb24iOmZhbHNlLCJMZW5ndGgiOiIzMCIsImRlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgYXNzb2NpYXRlZCB3aXRoIEdvb2dsZSBBbmFseXRpY3MsIHdoaWNoIHByb3ZpZGVzIHN0YXRpc3RpY2FsIGluZm9ybWF0aW9uIGFib3V0IHdlYnNpdGUgdXNhZ2UuIiwidGhpcmRQYXJ0eURlc2NyaXB0aW9uIjoiVGhpcyBkb21haW4gaXMgYXNzb2NpYXRlZCB3aXRoIEdvb2dsZSBBbmFseXRpY3MsIHdoaWNoIHByb3ZpZGVzIHN0YXRpc3RpY2FsIGluZm9ybWF0aW9uIGFib3V0IHdlYnNpdGUgdXNhZ2UuIiwicGF0dGVybktleSI6bnVsbCwidGhpcmRQYXJ0eUtleSI6IkNvb2tpZXx3d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20iLCJmaXJzdFBhcnR5S2V5IjpudWxsLCJEdXJhdGlvblR5cGUiOjEsImNhdGVnb3J5IjpudWxsLCJpc1RoaXJkUGFydHkiOmZhbHNlfV19XSwiUHVycG9zZUlkIjoiM0Y0MEExMTctMkU0RC00NTQxLTkyMTYtODExRkU4Nzk4OTY3IiwiQ3VzdG9tR3JvdXBJZCI6IkMwMDAyIiwiR3JvdXBJZCI6ImFkZGU4NWI4LTAzYzctNDdjOC1iM2Q2LTZmNGJjOTNkMmNhNyIsIlN0YXR1cyI6ImluYWN0aXZlIiwiSXNEbnRFbmFibGVkIjpmYWxzZSwiVHlwZSI6IkNPT0tJRSIsIkRlc2NyaXB0aW9uTGVnYWwiOiIiLCJJYWJJbGx1c3RyYXRpb25zIjpbXSwiSGFzTGVnSW50T3B0T3V0IjpmYWxzZSwiSGFzQ29uc2VudE9wdE91dCI6dHJ1ZSwiSXNHcGNFbmFibGVkIjpmYWxzZSwiVmVuZG9yU2VydmljZXMiOm51bGwsIlRyYWNraW5nVGVjaCI6bnVsbH0seyJTaG93SW5Qb3B1cCI6ZmFsc2UsIlNob3dJblBvcHVwTm9uSUFCIjp0cnVlLCJTaG93U0RLTGlzdExpbmsiOnRydWUsIk9yZGVyIjoiNiIsIk9wdGFub25Hcm91cElkIjoiQzAwMDUiLCJQYXJlbnQiOiIiLCJTaG93U3ViZ3JvdXAiOnRydWUsIlNob3dTdWJHcm91cERlc2NyaXB0aW9uIjp0cnVlLCJTaG93U3ViZ3JvdXBUb2dnbGUiOmZhbHNlLCJBbHdheXNTaG93Q2F0ZWdvcnkiOmZhbHNlLCJHcm91cERlc2NyaXB0aW9uIjoiVGhlc2UgY29va2llcyBhcmUgc2V0IGJ5IGEgcmFuZ2Ugb2Ygc29jaWFsIG1lZGlhIHNlcnZpY2VzIHRoYXQgd2UgaGF2ZSBhZGRlZCB0byB0aGUgc2l0ZSB0byBlbmFibGUgeW91IHRvIHNoYXJlIG91ciBjb250ZW50IHdpdGggeW91ciBmcmllbmRzIGFuZCBuZXR3b3Jrcy4gVGhleSBhcmUgY2FwYWJsZSBvZiB0cmFja2luZyB5b3VyIGJyb3dzZXIgYWNyb3NzIG90aGVyIHNpdGVzIGFuZCBidWlsZGluZyB1cCBhIHByb2ZpbGUgb2YgeW91ciBpbnRlcmVzdHMuIFRoaXMgbWF5IGltcGFjdCB0aGUgY29udGVudCBhbmQgbWVzc2FnZXMgeW91IHNlZSBvbiBvdGhlciB3ZWJzaXRlcyB5b3UgdmlzaXQuIElmIHlvdSBkbyBub3QgYWxsb3cgdGhlc2UgY29va2llcyB5b3UgbWF5IG5vdCBiZSBhYmxlIHRvIHVzZSBvciBzZWUgdGhlc2Ugc2hhcmluZyB0b29scy4iLCJHcm91cERlc2NyaXB0aW9uT1RUIjoiVGhlc2UgY29va2llcyBhcmUgc2V0IGJ5IGEgcmFuZ2Ugb2Ygc29jaWFsIG1lZGlhIHNlcnZpY2VzIHRoYXQgd2UgaGF2ZSBhZGRlZCB0byB0aGUgc2l0ZSB0byBlbmFibGUgeW91IHRvIHNoYXJlIG91ciBjb250ZW50IHdpdGggeW91ciBmcmllbmRzIGFuZCBuZXR3b3Jrcy4gVGhleSBhcmUgY2FwYWJsZSBvZiB0cmFja2luZyB5b3VyIGJyb3dzZXIgYWNyb3NzIG90aGVyIHNpdGVzIGFuZCBidWlsZGluZyB1cCBhIHByb2ZpbGUgb2YgeW91ciBpbnRlcmVzdHMuIFRoaXMgbWF5IGltcGFjdCB0aGUgY29udGVudCBhbmQgbWVzc2FnZXMgeW91IHNlZSBvbiBvdGhlciB3ZWJzaXRlcyB5b3UgdmlzaXQuIElmIHlvdSBkbyBub3QgYWxsb3cgdGhlc2UgY29va2llcyB5b3UgbWF5IG5vdCBiZSBhYmxlIHRvIHVzZSBvciBzZWUgdGhlc2Ugc2hhcmluZyB0b29scy4iLCJHcm91cE5hbWVNb2JpbGUiOiJTb2NpYWwgTWVkaWEgQ29va2llcyIsIkdyb3VwTmFtZU9UVCI6IlNvY2lhbCBNZWRpYSBDb29raWVzIiwiR3JvdXBOYW1lIjoiU29jaWFsIE1lZGlhIENvb2tpZXMiLCJJc0lhYlB1cnBvc2UiOmZhbHNlLCJHZW5lcmFsVmVuZG9yc0lkcyI6W10sIkZpcnN0UGFydHlDb29raWVzIjpbXSwiSG9zdHMiOltdLCJQdXJwb3NlSWQiOiJFMzM3MjgwQy04RjA2LTQ1QjktOEFDMC03NTVCQzFDNTE2MUIiLCJDdXN0b21Hcm91cElkIjoiQzAwMDUiLCJHcm91cElkIjoiZjJjYzU0MTQtODg1Mi00NDJiLWFiMDktNTE1ZTE4OThjODEzIiwiU3RhdHVzIjoiaW5hY3RpdmUiLCJJc0RudEVuYWJsZWQiOmZhbHNlLCJUeXBlIjoiQ09PS0lFIiwiRGVzY3JpcHRpb25MZWdhbCI6IiIsIklhYklsbHVzdHJhdGlvbnMiOltdLCJIYXNMZWdJbnRPcHRPdXQiOmZhbHNlLCJIYXNDb25zZW50T3B0T3V0Ijp0cnVlLCJJc0dwY0VuYWJsZWQiOmZhbHNlLCJWZW5kb3JTZXJ2aWNlcyI6bnVsbCwiVHJhY2tpbmdUZWNoIjpudWxsfV0sIkxhbmd1YWdlIjp7IkN1bHR1cmUiOiJlbiJ9LCJTaG93UHJlZmVyZW5jZUNlbnRlckNsb3NlQnV0dG9uIjp0cnVlLCJDdXN0b21KcyI6IiIsIkxpZmVzcGFuVHlwZVRleHQiOiJTZXNzaW9uIiwiTGlmZXNwYW5EdXJhdGlvblRleHQiOiIiLCJDbG9zZVRleHQiOiJDbG9zZSBwcmVmZXJlbmNlIGNlbnRlciIsIkJhbm5lckNsb3NlQnV0dG9uVGV4dCI6IkNsb3NlIiwiQWRkTGlua3NUb0Nvb2tpZXBlZGlhIjpmYWxzZSwic2hvd0Jhbm5lckNsb3NlQnV0dG9uIjp0cnVlLCJBbGVydExheW91dCI6ImJvdHRvbSIsIlNob3dBbGVydE5vdGljZSI6dHJ1ZSwiSXNDb25zZW50TG9nZ2luZ0VuYWJsZWQiOnRydWUsIklzSWFiRW5hYmxlZCI6ZmFsc2UsIklzSWFiVGhpcmRQYXJ0eUNvb2tpZUVuYWJsZWQiOmZhbHNlLCJTY3JvbGxDbG9zZUJhbm5lciI6ZmFsc2UsIk9uQ2xpY2tDbG9zZUJhbm5lciI6ZmFsc2UsIk5leHRQYWdlQ2xvc2VCYW5uZXIiOmZhbHNlLCJBY2NlcHRBbGxDb29raWVzIjpmYWxzZSwiQ29uc2VudE1vZGVsIjoib3B0LWluIiwiVmVuZG9yQ29uc2VudE1vZGVsIjoib3B0LW91dCIsIlZlbmRvcnMiOltdLCJPdmVycmlkZGVuVmVuZG9ycyI6e30sIk92ZXJyaWRlbkdvb2dsZVZlbmRvcnMiOm51bGwsInB1Ymxpc2hlciI6eyJyZXN0cmljdGlvbnMiOnt9fSwiU2Nyb2xsQWNjZXB0QWxsQ29va2llcyI6ZmFsc2UsIk9uQ2xpY2tBY2NlcHRBbGxDb29raWVzIjpmYWxzZSwiTmV4dFBhZ2VBY2NlcHRBbGxDb29raWVzIjpmYWxzZSwiRmxhdCI6ZmFsc2UsIkZsb2F0aW5nRmxhdCI6ZmFsc2UsIkZsb2F0aW5nUm91bmRlZENvcm5lciI6ZmFsc2UsIkZsb2F0aW5nUm91bmRlZEljb24iOmZhbHNlLCJGbG9hdGluZ1JvdW5kZWQiOnRydWUsIkNlbnRlclJvdW5kZWQiOmZhbHNlLCJDZW50ZXIiOnRydWUsIlBhbmVsIjpmYWxzZSwiUG9wdXAiOmZhbHNlLCJMaXN0IjpmYWxzZSwiVGFiIjpmYWxzZSwiQ2hvaWNlc0Jhbm5lciI6ZmFsc2UsIk5vQmFubmVyIjpmYWxzZSwiQmFubmVySUFCUGFydG5lcnNMaW5rIjoiIiwiQmFubmVyUHVycG9zZVRpdGxlIjoiIiwiQmFubmVyUHVycG9zZURlc2NyaXB0aW9uIjoiIiwiQmFubmVyRmVhdHVyZVRpdGxlIjoiIiwiQmFubmVyRmVhdHVyZURlc2NyaXB0aW9uIjoiIiwiQmFubmVySW5mb3JtYXRpb25UaXRsZSI6IiIsIkJhbm5lckluZm9ybWF0aW9uRGVzY3JpcHRpb24iOiIiLCJCYW5uZXJTaG93UmVqZWN0QWxsQnV0dG9uIjp0cnVlLCJCYW5uZXJSZWplY3RBbGxCdXR0b25UZXh0IjoiUmVqZWN0IiwiUENlbnRlclNob3dSZWplY3RBbGxCdXR0b24iOmZhbHNlLCJQQ2VudGVyUmVqZWN0QWxsQnV0dG9uVGV4dCI6IiIsIkJhbm5lclNldHRpbmdzQnV0dG9uRGlzcGxheUxpbmsiOmZhbHNlLCJCYW5uZXJEUERUaXRsZSI6bnVsbCwiQmFubmVyRFBERGVzY3JpcHRpb24iOm51bGwsIkJhbm5lckRQRERlc2NyaXB0aW9uRm9ybWF0IjpudWxsLCJQQ0ZpcnN0UGFydHlDb29raWVMaXN0VGV4dCI6IkZpcnN0IFBhcnR5IENvb2tpZXMiLCJQQ1ZpZXdDb29raWVzVGV4dCI6IlZpZXcgQ29va2llcyIsIlBDZW50ZXJCYWNrVGV4dCI6IkJhY2sgdG8gcHJlZmVyZW5jZSBjZW50ZXIiLCJQQ2VudGVyVmVuZG9yc0xpc3RUZXh0IjoiVmVuZG9ycyBMaXN0IiwiUENlbnRlclZpZXdQcml2YWN5UG9saWN5VGV4dCI6IlZpZXcgUHJpdmFjeSBQb2xpY3kiLCJQQ2VudGVyQ2xlYXJGaWx0ZXJzVGV4dCI6IkNsZWFyIEZpbHRlcnMiLCJQQ2VudGVyQXBwbHlGaWx0ZXJzVGV4dCI6IkFwcGx5IiwiUENlbnRlckFsbG93QWxsQ29uc2VudFRleHQiOiJBbGxvdyBBbGwgQ29uc2VudCIsIlBDZW50ZXJDb29raWVzTGlzdFRleHQiOiJDb29raWUgTGlzdCIsIlBDZW50ZXJDYW5jZWxGaWx0ZXJzVGV4dCI6IkNhbmNlbCIsIlBDZW50ZXJFbmFibGVBY2NvcmRpb24iOmZhbHNlLCJJYWJUeXBlIjoiIiwiQWR2YW5jZWRBbmFseXRpY3NDYXRlZ29yeSI6IkMwMDAxIiwiUENHcnBEZXNjVHlwZSI6bnVsbCwiUENHcnBEZXNjTGlua1Bvc2l0aW9uIjpudWxsLCJQQ1ZlbmRvckZ1bGxMZWdhbFRleHQiOm51bGwsIkxlZ0ludFNldHRpbmdzIjpudWxsLCJQQ0FjY29yZGlvblN0eWxlIjoiTm9BY2NvcmRpb24iLCJQQ1Nob3dDb25zZW50TGFiZWxzIjpmYWxzZSwiUENBY3RpdmVUZXh0IjoiQWN0aXZlIiwiUENJbmFjdGl2ZVRleHQiOiJJbmFjdGl2ZSIsIkJhbm5lckFkZGl0aW9uYWxEZXNjcmlwdGlvbiI6IiIsIkJhbm5lckFkZGl0aW9uYWxEZXNjUGxhY2VtZW50IjoiQWZ0ZXJEZXNjcmlwdGlvbiIsIlBDZW50ZXJTZWxlY3RBbGxWZW5kb3JzVGV4dCI6IlNlbGVjdCBBbGwgVmVuZG9ycyIsIlBDZW50ZXJGaWx0ZXJUZXh0IjoiRmlsdGVyIiwiUmVjb25zZW50RnJlcXVlbmN5RGF5cyI6MzY1LCJVc2VHb29nbGVWZW5kb3JzIjpmYWxzZSwiUENJQUJWZW5kb3JzVGV4dCI6IklBQiBWZW5kb3JzIiwiUENJbGx1c1RleHQiOiJJbGx1c3RyYXRpb25zIiwiUENHb29nbGVWZW5kb3JzVGV4dCI6Ikdvb2dsZSBWZW5kb3JzIiwiUENUZW1wbGF0ZVVwZ3JhZGUiOnRydWUsIlBDU2hvd1BlcnNpc3RlbnRDb29raWVzSG92ZXJCdXR0b24iOmZhbHNlLCJQQ2VudGVyRHluYW1pY1JlbmRlcmluZ0VuYWJsZSI6ZmFsc2UsIkdsb2JhbFJlc3RyaWN0aW9uRW5hYmxlZCI6ZmFsc2UsIkdsb2JhbFJlc3RyaWN0aW9ucyI6e30sIlBDZW50ZXJVc2VHZW5lcmFsVmVuZG9yc1RvZ2dsZSI6ZmFsc2UsIlBDZW50ZXJHZW5lcmFsVmVuZG9yc1RleHQiOiJPdGhlciBWZW5kb3JzIiwiUENlbnRlckFsbG93VmVuZG9yT3B0b3V0Ijp0cnVlLCJQQ2VudGVyR2VuZXJhbFZlbmRvclRoaXJkUGFydHlDb29raWVzVGV4dCI6IlZpZXcgVmVuZG9yIERldGFpbHMiLCJHZW5lcmFsVmVuZG9ycyI6W10sIkJhbm5lck5vbklBQlZlbmRvckxpc3RUZXh0IjoiIiwiUENlbnRlclZlbmRvckxpc3RMaWZlc3BhbiI6IkxpZmVzcGFuIiwiUENlbnRlclZlbmRvckxpc3REaXNjbG9zdXJlIjoiRGV2aWNlIFN0b3JhZ2UgRGlzY2xvc3VyZSIsIlBDZW50ZXJWZW5kb3JMaXN0Tm9uQ29va2llVXNhZ2UiOiJUaGlzIHZlbmRvciB1dGlsaXplcyBvdGhlciBtZXRob2RzIG9mIHN0b3JhZ2Ugb3IgYWNjZXNzaW5nIGluZm9ybWF0aW9uIGluIGFkZGl0aW9uIHRvIGNvb2tpZXMuIiwiUENlbnRlclZlbmRvckxpc3REZXNjVGV4dCI6IiIsIlBDZW50ZXJWZW5kb3JMaXN0U3RvcmFnZUlkZW50aWZpZXIiOiJJZGVudGlmaWVyIiwiUENlbnRlclZlbmRvckxpc3RTdG9yYWdlVHlwZSI6IlR5cGUiLCJQQ2VudGVyVmVuZG9yTGlzdFN0b3JhZ2VQdXJwb3NlcyI6IlB1cnBvc2VzIiwiUENlbnRlclZlbmRvckxpc3RTdG9yYWdlRG9tYWluIjoiRG9tYWluIiwiUENWTFNEb21haW5zVXNlZCI6IkRvbWFpbnMgVXNlZCIsIlBDVkxTVXNlIjoiVXNlIiwiUENlbnRlclZlbmRvckxpc3RMaWZlc3BhbkRheSI6IkRheSIsIlBDZW50ZXJWZW5kb3JMaXN0TGlmZXNwYW5EYXlzIjoiRGF5cyIsIlBDZW50ZXJWZW5kb3JMaXN0TGlmZXNwYW5Nb250aCI6Ik1vbnRoIiwiUENlbnRlclZlbmRvckxpc3RMaWZlc3Bhbk1vbnRocyI6Ik1vbnRocyIsIlBDTGlmZVNwYW5ZciI6IlllYXIiLCJQQ0xpZmVTcGFuWXJzIjoiWWVhcnMiLCJQQ0xpZmVTcGFuU2VjcyI6IkEgZmV3IHNlY29uZHMiLCJQQ0xpZmVTcGFuV2siOiJXZWVrIiwiUENMaWZlU3BhbldrcyI6IldlZWtzIiwiUENDb29raWVQb2xpY3lUZXh0IjoiVmlldyBQcml2YWN5IFBvbGljeSIsIkJTaG93U2F2ZUJ0biI6dHJ1ZSwiQlNhdmVCdG5UZXh0IjoiU2F2ZSBDaG9pY2VzIiwiQ29va2llRmlyc3RQYXJ0eVRleHQiOiJGaXJzdCBQYXJ0eSIsIkNvb2tpZVRoaXJkUGFydHlUZXh0IjoiVGhpcmQgUGFydHkiLCJQQ0Nvb2tpZVBvbGljeUxpbmtTY3JlZW5SZWFkZXIiOiJNb3JlIGluZm9ybWF0aW9uIGFib3V0IG91ciBjb29raWUgcG9saWN5Liwgb3BlbnMgaW4gYSBuZXcgdGFiIiwiUENMb2dvU2NyZWVuUmVhZGVyIjoiQ29pbmJhc2UiLCJCbnJMb2dvQXJpYSI6IkNvaW5iYXNlIiwiUHVibGlzaGVyQ0MiOiJVUyIsIkJDbG9zZUJ1dHRvblR5cGUiOiJJY29uIiwiQkNvbnRpbnVlVGV4dCI6IkNvbnRpbnVlIHdpdGhvdXQgQWNjZXB0aW5nIiwiUENDbG9zZUJ1dHRvblR5cGUiOiJJY29uIiwiUENDb250aW51ZVRleHQiOiJDb250aW51ZSB3aXRob3V0IEFjY2VwdGluZyIsIkJhbm5lckZvY3VzIjpmYWxzZSwiQlJlamVjdENvbnNlbnRUeXBlIjoiT2JqZWN0VG9MSSIsIkJhbm5lclJlbGF0aXZlRm9udFNpemVzVG9nZ2xlIjpmYWxzZSwiUENBbGxvd1RvZ2dsZUxibCI6IkFsbG93IiwiR0NFbmFibGUiOmZhbHNlLCJHQ0FuYWx5dGljc1N0b3JhZ2UiOiJDMDAwMiIsIkdDQWRTdG9yYWdlIjoiQzAwMDQiLCJHQ0FkVXNlckRhdGEiOiJDMDAwNCIsIkdDQWRQZXJzb25hbGl6YXRpb24iOiJDMDAwNCIsIkdDUmVkYWN0RW5hYmxlIjpmYWxzZSwiR0NXYWl0VGltZSI6MCwiR0NGdW5jdGlvbmFsaXR5U3RvcmFnZSI6IkROQUMiLCJHQ1BlcnNvbmFsaXphdGlvblN0b3JhZ2UiOiJETkFDIiwiR0NTZWN1cml0eVN0b3JhZ2UiOiJETkFDIiwiUENHZW5lcmFsVmVuZG9yc1BvbGljeVRleHQiOiJWaWV3IFByaXZhY3kgUG9saWN5IiwiUENJQUJWZW5kb3JMZWdJbnRDbGFpbVRleHQiOiJWaWV3IExlZ2l0aW1hdGUgSW50ZXJlc3QgQ2xhaW0iLCJQQ09wZW5zQ29va2llc0RldGFpbHNBbGVydCI6IkNvb2tpZSBEZXRhaWxzIGJ1dHRvbiBvcGVucyBDb29raWUgTGlzdCBtZW51IiwiUENPcGVuc1ZlbmRvckRldGFpbHNBbGVydCI6IklBQiBWZW5kb3IgRGV0YWlscyBidXR0b24gb3BlbnMgVmVuZG9yIExpc3QgbWVudSIsIkFyaWFPcGVuUHJlZmVyZW5jZXMiOiJPcGVuIFByZWZlcmVuY2VzIiwiQXJpYUNsb3NlUHJlZmVyZW5jZXMiOiJDbG9zZSBQcmVmZXJlbmNlcyIsIkFyaWFQcml2YWN5IjoiUHJpdmFjeSIsIkFyaWFEZXNjcmliZWRCeSI6IlByb2Nlc3NpbmcgaXMgcmVxdWlyZWQsIGNob2ljZSBpcyBhbHdheXMgZW5hYmxlZC4iLCJCQ29va2llUG9saWN5TGlua1NjcmVlblJlYWRlciI6Ik1vcmUgaW5mb3JtYXRpb24gYWJvdXQgb3VyIGNvb2tpZSBwb2xpY3kuLCBvcGVucyBpbiBhIG5ldyB0YWIiLCJCTm9DdXJzb3JGb2N1cyI6dHJ1ZSwiQlNob3dQb2xpY3lMaW5rIjpmYWxzZSwiUENlbnRlclZlbmRvckxpc3RTZWFyY2giOiJTZWFyY2ggdmVuZG9ycyIsIlBDZW50ZXJDb29raWVMaXN0U2VhcmNoIjoiU2VhcmNo4oCmIiwiUENlbnRlckxlZ2l0SW50ZXJlc3RUZXh0IjoiTGVnaXRpbWF0ZSBJbnRlcmVzdCIsIlBDZW50ZXJMZWdJbnRDb2x1bW5IZWFkZXIiOiJMZWdpdGltYXRlIEludGVyZXN0IiwiUENlbnRlckNvbnNlbnRUZXh0IjoiQ29uc2VudCIsIlBDZW50ZXJWZW5kb3JMaXN0RmlsdGVyQXJpYSI6IkZpbHRlciIsIlBDZW50ZXJDb29raWVMaXN0RmlsdGVyQXJpYSI6IkZpbHRlciIsIkJJbml0aWFsRm9jdXMiOmZhbHNlLCJCSW5pdGlhbEZvY3VzTGlua0FuZEJ1dHRvbiI6ZmFsc2UsIk5ld1ZlbmRvcnNJbmFjdGl2ZUVuYWJsZWQiOmZhbHNlLCJQQ2VudGVyRmlsdGVyQXBwbGllZEFyaWEiOiJBcHBsaWVkIiwiUENlbnRlckZpbHRlckNsZWFyZWRBcmlhIjoiRmlsdGVycyBDbGVhcmVkIiwiUENlbnRlclZlbmRvckxpc3RTY3JlZW5SZWFkZXIiOiJWZW5kb3IgRGV0YWlscyBidXR0b24gb3BlbnMgVmVuZG9yIExpc3QgbWVudSIsIlBDZW50ZXJDb29raWVTZWFyY2hBcmlhTGFiZWwiOiJDb29raWUgbGlzdCBzZWFyY2giLCJQQ2VudGVyVmVuZG9yU2VhcmNoQXJpYUxhYmVsIjoiVmVuZG9yIGxpc3Qgc2VhcmNoIiwiUENlbnRlclZlbmRvckxpc3RUaXRsZSI6bnVsbCwiUENlbnRlclZlbmRvckxpc3RMaW5rVGV4dCI6IiIsIlBDZW50ZXJWZW5kb3JMaXN0TGlua0FyaWFMYWJlbCI6IiIsIklzU2hvd0Fsd2F5c0FjdGl2ZVRleHQiOnRydWUsIlBDZW50ZXJVc2VySWRUaXRsZVRleHQiOiIiLCJQQ2VudGVyVXNlcklkRGVzY3JpcHRpb25UZXh0IjoiIiwiUENlbnRlclVzZXJJZFRpbWVzdGFtcFRpdGxlVGV4dCI6IiIsIlBDZW50ZXJVc2VySWROb3RZZXRDb25zZW50ZWRUZXh0IjoiIiwiQkltcHJpbnRMaW5rU2NyZWVuUmVhZGVyIjoiTGVnYWwgSW5mb3JtYXRpb24sIG9wZW5zIGluIGEgbmV3IHRhYiIsIkJTaG93SW1wcmludExpbmsiOmZhbHNlLCJQQ2VudGVySW1wcmludExpbmtTY3JlZW5SZWFkZXIiOiIiLCJQQ2VudGVySW1wcmludExpbmtUZXh0IjoiIiwiUENlbnRlckltcHJpbnRMaW5rVXJsIjoiIiwiUENDYXRlZ29yeVN0eWxlIjoiVG9nZ2xlIiwiUENWU0VuYWJsZSI6ZmFsc2UsIlBDVlNPcHRPdXQiOmZhbHNlLCJQQ1ZTQ2F0ZWdvcnlWaWV3IjpmYWxzZSwiUENWU0V4cGFuZENhdGVnb3J5IjpmYWxzZSwiUENWU0V4cGFuZEdyb3VwIjpmYWxzZSwiUENWU0xpc3RUaXRsZSI6bnVsbCwiUENWU05hbWVUZXh0IjpudWxsLCJQQ1ZTUGFyZW50Q29tcGFueVRleHQiOm51bGwsIlBDVlNBZGRyZXNzVGV4dCI6bnVsbCwiUENWU0RlZmF1bHRDYXRlZ29yeVRleHQiOm51bGwsIlBDVlNEZWZhdWx0RGVzY3JpcHRpb25UZXh0IjpudWxsLCJQQ1ZTRFBPRW1haWxUZXh0IjpudWxsLCJQQ1ZTRFBPTGlua1RleHQiOm51bGwsIlBDVlNQcml2YWN5UG9saWN5TGlua1RleHQiOm51bGwsIlBDVlNDb29raWVQb2xpY3lMaW5rVGV4dCI6bnVsbCwiUENWU09wdE91dExpbmtUZXh0IjpudWxsLCJQQ1ZTTGVnYWxCYXNpc1RleHQiOm51bGwsIlBDVlNBbGxvd0FsbFRleHQiOm51bGwsIkJTaG93T3B0T3V0U2lnbmFsIjpmYWxzZSwiQk9wdE91dFNpZ25hbFRleHQiOiIiLCJQQ1Nob3dPcHRPdXRTaWduYWwiOmZhbHNlLCJQQ09wdE91dFNpZ25hbFRleHQiOiIiLCJCT3B0T3V0U2lnbmFsVGV4dEFmdGVyQ29uc2VudCI6IiIsIlBDT3B0T3V0U2lnbmFsVGV4dEFmdGVyQ29uc2VudCI6IiIsIlBDU2hvd0RvdWJsZU9wdEluU2lnbmFsIjpmYWxzZSwiUENEb3VibGVPcHRJblNpZ25hbFRleHQiOiIiLCJQQ0RvdWJsZU9wdEluU2lnbmFsRGVzY3JpcHRpb24iOiIiLCJQQ0RvdWJsZU9wdEluU2lnbmFsQ2FuY2VsVGV4dCI6IiIsIlBDRG91YmxlT3B0SW5TaWduYWxDb25maXJtVGV4dCI6IiIsIlBDSG9zdE5vdEZvdW5kIjoiZGlkIG5vdCBtYXRjaCBhbnkgSG9zdHMiLCJQQ1ZlbmRvck5vdEZvdW5kIjoiZGlkIG5vdCBtYXRjaCBhbnkgVmVuZG9ycyIsIlBDVGVjaE5vdEZvdW5kIjoiZGlkIG5vdCBtYXRjaCBhbnkgVGVjaG5vbG9naWVzIiwiUENUcmFja2luZ1RlY2hUaXRsZSI6IlRlY2hub2xvZ3kgTGlzdCIsIlBDVGVjaERldGFpbHNUZXh0IjoiVGVjaG5vbG9naWVzIExpc3QiLCJQQ1RlY2hEZXRhaWxzQXJpYUxhYmVsIjoiVGVjaG5vbG9naWVzIExpc3QgYnV0dG9uIG9wZW5zIFRyYWNraW5nIFRlY2ggbGlzdCBtZW51IiwiUENTaG93VHJhY2tpbmdUZWNoIjpmYWxzZSwiUENDb29raWVzTGFiZWwiOiJDb29raWVzIiwiUENMb2NhbFN0b3JhZ2VMYWJlbCI6IkxvY2FsIFN0b3JhZ2Vbc10iLCJQQ1Nlc3Npb25TdG9yYWdlTGFiZWwiOiJTZXNzaW9uIFN0b3JhZ2Vbc10iLCJQQ0xvY2FsU3RvcmFnZUR1cmF0aW9uVGV4dCI6IlBlcm1hbmVudCIsIlBDU2Vzc2lvblN0b3JhZ2VEdXJhdGlvblRleHQiOiJTZXNzaW9uIiwiQlJlZ2lvbkFyaWFMYWJlbCI6IkNvb2tpZSBiYW5uZXIiLCJCYW5uZXJBcmlhTGFiZWwiOiIiLCJCYW5uZXJPcHRPdXRTaWduYWxOb3RIb25vcmVkVGV4dCI6Ik9wdC1vdXQgcHJlZmVyZW5jZSBzaWduYWwgbm90IGhvbm9yZWQiLCJQQ2VudGVyT3B0T3V0U2lnbmFsTm90SG9ub3JlZFRleHQiOiJPcHQtb3V0IHByZWZlcmVuY2Ugc2lnbmFsIG5vdCBob25vcmVkIiwiUENSZWdpb25BcmlhTGFiZWwiOiJDb29raWUgY29uc2VudCBtYW5hZ2VyIiwiSXNHUFBFbmFibGVkIjpmYWxzZSwiSXNHUFBLbm93bkNoaWxkQXBwbGljYWJsZSI6ZmFsc2UsIklzR1BQRGF0YVByb2Nlc3NpbmdBcHBsaWNhYmxlIjpmYWxzZSwiR1BQUHVycG9zZXMiOnsiU2FsZU9wdE91dENJRCI6IiIsIlNoYXJpbmdPcHRPdXRDSUQiOiIiLCJQZXJzb25hbERhdGFDSUQiOiIiLCJLbm93bkNoaWxkU2VsbFBJQ0lEIjoiIiwiS25vd25DaGlsZFByb2Nlc3NDSUQiOiIiLCJLbm93bkNoaWxkU2hhcmVQSUNJRCI6IiIsIlNlbnNpdGl2ZVBJQ0lEIjoiIiwiVGFyZ2V0ZWRBZHZlcnRpc2luZ09wdE91dENJRCI6IiIsIlNlbnNpdGl2ZVNJQ0lEIjoiIiwiR2VvbG9jYXRpb25DSUQiOiIiLCJSUkVQSW5mb0NJRCI6IiIsIkNvbW11bmljYXRpb25DSUQiOiIiLCJHZW5ldGljQ0lEIjoiIiwiQmlvbWV0cmljQ0lEIjoiIiwiSGVhbHRoQ0lEIjoiIiwiU2V4dWFsT3JpZW50YXRpb25DSUQiOiIiLCJSYWNlQ0lEIjoiIiwiUmVsaWdpb25DSUQiOiIiLCJJbW1pZ3JhdGlvbkNJRCI6IiIsIlBEQ0Fib3ZlQWdlQ0lEIjoiIiwiUERDQmVsb3dBZ2VDSUQiOiIiLCJVbmlvbk1lbWJlcnNoaXBDSUQiOiIiLCJLbm93bkNoaWxkUHJvY2Vzc0JlbG93QWdlMTNDSUQiOiIiLCJLbm93bkNoaWxkUHJvY2Vzc0JldHdlZW5BZ2UxM1RvMTZDSUQiOiIiLCJLbm93bkNoaWxkUHJvY2Vzc0JldHdlZW5BZ2UxNlRvMThDSUQiOiIiLCJLbm93bkNoaWxkU2VsbEFnZTE2VG8xOENJRCI6IiIsIktub3duQ2hpbGRQcm9jZXNzQWdlMTZUbzE4Q0lEIjoiIiwiS25vd25DaGlsZFNlbGxBZ2UxNlRvMTdDSUQiOiIiLCJLbm93bkNoaWxkUHJvY2Vzc0FnZTE2VG8xN0NJRCI6IiIsIlRyYW5zZ2VuZGVyQ0lEIjoiIiwiTmF0aW9uYWxPcmlnaW5DSUQiOiIiLCJDcmltZVZpY3RpbUNJRCI6IiIsIkNvbnN1bWVySGVhbHRoQ0lEIjoiIn0sIklzTVNQQUVuYWJsZWQiOmZhbHNlLCJNU1BBT3B0aW9uTW9kZSI6IiIsIlVzZUdQUFVTTmF0aW9uYWwiOmZhbHNlLCJQQ1ZMaXN0RGF0YURlY2xhcmF0aW9uVGV4dCI6IkRhdGEgRGVjbGFyYXRpb24iLCJQQ1ZMaXN0RGF0YVJldGVudGlvblRleHQiOiJEYXRhIFJldGVudGlvbiIsIlBDVkxpc3RTdGRSZXRlbnRpb25UZXh0IjoiU3RhbmRhcmQgUmV0ZW50aW9uIiwiUENWZW5kb3JzQ291bnRUZXh0IjoiW1ZFTkRPUl9OVU1CRVJdIHBhcnRuZXJzIGNhbiB1c2UgdGhpcyBwdXJwb3NlIiwiUENWZW5kb3JzQ291bnRGZWF0dXJlVGV4dCI6IltWRU5ET1JfTlVNQkVSXSBwYXJ0bmVycyBjYW4gdXNlIHRoaXMgZmVhdHVyZSIsIlBDVmVuZG9yc0NvdW50U3BjRmVhdHVyZVRleHQiOiJbVkVORE9SX05VTUJFUl0gcGFydG5lcnMgY2FuIHVzZSB0aGlzIHNwZWNpYWwgZmVhdHVyZSIsIlBDVmVuZG9yc0NvdW50U3BjUHVycG9zZVRleHQiOiJbVkVORE9SX05VTUJFUl0gcGFydG5lcnMgY2FuIHVzZSB0aGlzIHNwZWNpYWwgcHVycG9zZSIsIklBQkRhdGFDYXRlZ29yaWVzIjpbXSwiSUFCR3JvdXBzUHJlZml4RGF0YSI6bnVsbCwiVXNlTm9uU3RhbmRhcmRTdGFja3MiOmZhbHNlLCJJc1JlcXVpcmVTaWduYXR1cmVFbmFibGVkIjpmYWxzZSwiUmVxdWlyZVNpZ25hdHVyZUNJRCI6IiIsIlBDUmVxdWlyZVNpZ25hdHVyZUZpZWxkTGFiZWwiOiJFbWFpbCIsIlBDUmVxdWlyZVNpZ25hdHVyZUhlYWRlclRleHQiOiJBdXRob3JpemF0aW9uIE5lZWRlZCIsIlBDUmVxdWlyZVNpZ25hdHVyZUhlYWRlckRlc2MiOiJBZGRpdGlvbmFsIGNvbnNlbnQgYXV0aG9yaXphdGlvbiBpcyBuZWVkZWQgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uOiIsIlBDUmVxdWlyZVNpZ25hdHVyZUNvbmZpcm1CdG5UZXh0IjoiQ29uZmlybSIsIlBDUmVxdWlyZVNpZ25hdHVyZVJlamVjdEJ0blRleHQiOiJSZWplY3QiLCJQQ1JlcXVpcmVTaWduYXR1cmVIZWxwVGV4dCI6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQgdG8gY29uc2VudCB0byB0aGlzIGNhdGVnb3J5LiIsIk1DTURhdGEiOnsiRW5hYmxlZCI6ZmFsc2UsIlN0b3JhZ2VUeXBlcyI6eyJhZF9zdG9yYWdlIjoiQzAwMDQiLCJhbmFseXRpY3Nfc3RvcmFnZSI6IiJ9fSwiQUNNRGF0YSI6eyJFbmFibGVkIjpmYWxzZSwiU3RvcmFnZVR5cGVzIjp7ImFkX3N0b3JhZ2UiOiIiLCJ1c2VyX2RhdGEiOiIifX0sIkJhbm5lckJQT0ZpcnN0UG9zaXRpb24iOiJDT09LSUVfU0VUVElOR1MiLCJCYW5uZXJCUE9TZWNvbmRQb3NpdGlvbiI6IlJFSkVDVF9BTEwiLCJCYW5uZXJCUE9UaGlyZFBvc2l0aW9uIjoiQUNDRVBUX0FMTCIsIkJhbm5lckJQT0ZvdXJ0aFBvc2l0aW9uIjpudWxsLCJQQ0JQT0ZpcnN0UG9zaXRpb24iOiJBQ0NFUFRfQUxMIiwiUENCUE9TZWNvbmRQb3NpdGlvbiI6IlJFSkVDVF9BTEwiLCJQQ0JQT1RoaXJkUG9zaXRpb24iOiJTQVZFX1BSRUZFUkVOQ0UiLCJQQ0Nvb2tpZUxpc3RGaWx0ZXJzVGV4dCI6IkNvb2tpZSBMaXN0IEZpbHRlcnMiLCJDYW5HZW5lcmF0ZU5vdEdpdmVuUmVjZWlwdHMiOmZhbHNlLCJBbWF6b25Db25zZW50U3JjVXJsIjoiaHR0cHM6Ly9jLmFtYXpvbi1hZHN5c3RlbS5jb20vYWF0L2Ftem4tY29uc2VudC5qcyIsIlBDZW50ZXJBcHBseUZpbHRlcnNBcmlhTGFiZWwiOiJBcHBseSBmaWx0ZXJzIiwiUENlbnRlckNhbmNlbEZpbHRlckFyaWFMYWJlbCI6IkNhbmNlbCBmaWx0ZXIgYXBwbGljYXRpb24iLCJQQ2VudGVyQ2xlYXJGaWx0ZXJzQXJpYUxhYmVsIjoiQ2xlYXIgZmlsdGVycyIsIlBDZW50ZXJUb2dnbGVBY3RpdmVDb2xvciI6IiM0NjgyNTQiLCJQQ2VudGVyVG9nZ2xlSW5BY3RpdmVDb2xvciI6IiM3Njc2NzYiLCJQQ2VudGVyQ29va2llQ2F0ZWdvcmllc0FyaWFMYWJlbCI6IkNvb2tpZSBDYXRlZ29yaWVzIiwiR1BDT3B0T3V0Tm90ZVRleHQiOiJPcHRlZCBvdXQgZHVlIHRvIEdQQyBzaWduYWwuIiwiRE5UT3B0T3V0Tm90ZVRleHQiOiJPcHRlZCBvdXQgZHVlIHRvIEROVCBzaWduYWwuIiwiQVRUT3B0T3V0Tm90ZVRleHQiOiJPcHRlZCBvdXQgZHVlIHRvIEFUVCBzaWduYWwuIn0sIkNvbW1vbkRhdGEiOnsicGNlbnRlckNvbnRpbnVlV29BY2NlcHRMaW5rQ29sb3IiOiIjNWI2MTZlIiwiSWFiVGhpcmRQYXJ0eUNvb2tpZVVybCI6ImNvb2tpZXMub25ldHJ1c3QubWdyLmNvbnNlbnN1Lm9yZyIsIk9wdGFub25IaWRlQWNjZXB0QnV0dG9uIjoiIiwiT3B0YW5vblN0eWxlIjoibW9kZXJuIiwiT3B0YW5vblN0YXRpY0NvbnRlbnRMb2NhdGlvbiI6IiIsIkJhbm5lckN1c3RvbUNTUyI6Ii8qIFxuXHRPbmUgVHJ1c3QgQ29pbmJhc2Vcblx0VGhlc2Ugc3R5bGVzIGFyZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IE9uZSBUcnVzdCBzdHlsZXMgZm9yIENvaW5iYXNlLlxuXHRFdmVyeXRpbWUgd2UgdXBkYXRlIHRoZSBCYW5uZXIgYW5kIE1vZGFsIHN0eWxlcywgd2Ugc2hvdWxkIHVwZGF0ZSB0aGVzZSBzdHlsZXMuXG5cdENvcHkgdGhlc2Ugc3R5bGVzIHRvIHRoZSBDb2luYmFzZSB0ZW1wbGF0ZSBpbiBPbmVUcnVzdC5cbiovXG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIHtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgZm9udC1mYW1pbHk6XG4gICAgQ29pbmJhc2VTYW5zLFxuICAgIC1hcHBsZS1zeXN0ZW0sXG4gICAgQmxpbmtNYWNTeXN0ZW1Gb250LFxuICAgICdTZWdvZSBVSScsXG4gICAgUm9ib3RvLFxuICAgIE94eWdlbixcbiAgICBVYnVudHUsXG4gICAgQ2FudGFyZWxsLFxuICAgICdGaXJhIFNhbnMnLFxuICAgICdEcm9pZCBTYW5zJyxcbiAgICAnSGVsdmV0aWNhIE5ldWUnLFxuICAgIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbn1cblxuI29uZXRydXN0LXBjLXNkayB7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OlxuICAgIENvaW5iYXNlU2FucyxcbiAgICAtYXBwbGUtc3lzdGVtLFxuICAgIEJsaW5rTWFjU3lzdGVtRm9udCxcbiAgICAnU2Vnb2UgVUknLFxuICAgIFJvYm90byxcbiAgICBPeHlnZW4sXG4gICAgVWJ1bnR1LFxuICAgIENhbnRhcmVsbCxcbiAgICAnRmlyYSBTYW5zJyxcbiAgICAnRHJvaWQgU2FucycsXG4gICAgJ0hlbHZldGljYSBOZXVlJyxcbiAgICBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyIHtcbiAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAub3QtYm5yLWxvZ28ge1xuICBoZWlnaHQ6IDY0cHg7XG4gIHdpZHRoOiA2NHB4O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtdGNmMi12ZW5kb3ItY291bnQub3QtdGV4dC1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1jbG9zZS1pY29uLFxuI29uZXRydXN0LXBjLXNkayAub3QtY2xvc2UtaWNvbixcbiNvdC1zeW5jLW50ZnkgLm90LWNsb3NlLWljb24ge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMnB4O1xuICB3aWR0aDogMTJweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLnBvd2VyZWQtYnktbG9nbyxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1wYy1mb290ZXItbG9nbyBhLFxuI29uZXRydXN0LXBjLXNkayAucG93ZXJlZC1ieS1sb2dvLFxuI29uZXRydXN0LXBjLXNkayAub3QtcGMtZm9vdGVyLWxvZ28gYSxcbiNvdC1zeW5jLW50ZnkgLnBvd2VyZWQtYnktbG9nbyxcbiNvdC1zeW5jLW50ZnkgLm90LXBjLWZvb3Rlci1sb2dvIGEge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgaGVpZ2h0OiAyNXB4O1xuICB3aWR0aDogMTUycHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAucG93ZXJlZC1ieS1sb2dvOmhvdmVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXBjLWZvb3Rlci1sb2dvIGE6aG92ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5wb3dlcmVkLWJ5LWxvZ286aG92ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXItbG9nbyBhOmhvdmVyLFxuI290LXN5bmMtbnRmeSAucG93ZXJlZC1ieS1sb2dvOmhvdmVyLFxuI290LXN5bmMtbnRmeSAub3QtcGMtZm9vdGVyLWxvZ28gYTpob3ZlciB7XG4gIGNvbG9yOiAjNTY1NjU2O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoMyAqLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaDQgKixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGg2ICosXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24gKixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGFbZGF0YS1wYXJlbnQtaWRdICosXG4jb25ldHJ1c3QtcGMtc2RrIGgzICosXG4jb25ldHJ1c3QtcGMtc2RrIGg0ICosXG4jb25ldHJ1c3QtcGMtc2RrIGg2ICosXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbiAqLFxuI29uZXRydXN0LXBjLXNkayBhW2RhdGEtcGFyZW50LWlkXSAqLFxuI290LXN5bmMtbnRmeSBoMyAqLFxuI290LXN5bmMtbnRmeSBoNCAqLFxuI290LXN5bmMtbnRmeSBoNiAqLFxuI290LXN5bmMtbnRmeSBidXR0b24gKixcbiNvdC1zeW5jLW50ZnkgYVtkYXRhLXBhcmVudC1pZF0gKiB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtaGlkZSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhpZGUsXG4jb3Qtc3luYy1udGZ5IC5vdC1oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24ub3QtbGluay1idG46aG92ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbi5vdC1saW5rLWJ0bjpob3ZlcixcbiNvdC1zeW5jLW50ZnkgYnV0dG9uLm90LWxpbmstYnRuOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIG9wYWNpdHk6IDE7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1yb3cgLm90LXNkay1jb2x1bW4ge1xuICBwYWRkaW5nOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBnYXA6IDFlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayBbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkLFxuI29uZXRydXN0LXBjLXNkayBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpIHtcbiAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgW3R5cGU9J2NoZWNrYm94J106ZGlzYWJsZWQgKyBsYWJlbDo6YmVmb3JlLFxuI29uZXRydXN0LXBjLXNkayBbdHlwZT0nY2hlY2tib3gnXTpkaXNhYmxlZCArIGxhYmVsOmFmdGVyLFxuI29uZXRydXN0LXBjLXNkayBbdHlwZT0nY2hlY2tib3gnXTpkaXNhYmxlZCArIGxhYmVsIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuI29uZXRydXN0LXBjLXNkayBsaSBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgei1pbmRleDogMTtcbn1cblxuI29uZXRydXN0LXBjLXNkayBsaSAub3QtY2hlY2tib3ggbGFiZWwge1xuICB6LWluZGV4OiAyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGxpIC5vdC1jaGVja2JveCBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayBsaSAuaG9zdC10aXRsZSBhLFxuI29uZXRydXN0LXBjLXNkayBsaSAub3QtaG9zdC1uYW1lIGEsXG4jb25ldHJ1c3QtcGMtc2RrIGxpIC5hY2NvcmRpb24tdGV4dCxcbiNvbmV0cnVzdC1wYy1zZGsgbGkgLm90LWFjYy10eHQge1xuICB6LWluZGV4OiAyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXQge1xuICBtYXJnaW46IDNweCAwLjFleDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAucGMtbG9nbyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLWxvZ28ge1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiAxODBweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAucGMtbG9nbyBpbWcsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1sb2dvIGltZyB7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAuc2NyZWVuLXJlYWRlci1vbmx5LFxuI29uZXRydXN0LXBjLXNkayAub3Qtc2Nybi1yZHIsXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLnNjcmVlbi1yZWFkZXItb25seSxcbi5vdC1zZGstY29va2llLXBvbGljeSAub3Qtc2Nybi1yZHIge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdC1mYWRlLWluLFxuLm9uZXRydXN0LXBjLWRhcmstZmlsdGVyLm90LWZhZGUtaW4sXG4jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1mYWRlLWluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IG9uZXRydXN0LWZhZGUtaW47XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5vbmV0cnVzdC1wYy1kYXJrLWZpbHRlci5vdC1oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4jb3Qtc2RrLWJ0bi5vdC1zZGstc2hvdy1zZXR0aW5ncyxcbiNvdC1zZGstYnRuLm9wdGFub24tc2hvdy1zZXR0aW5ncyB7XG4gIGNvbG9yOiAjMDA1MmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDA1MmZmO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgcGFkZGluZzogMC44ZW0gMmVtO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC1tb3otdHJhbnNpdGlvbjogMC4xcyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiAwLjFzIGVhc2U7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMXMgZWFzZTtcbiAgdHJhbnNpdGlvbjogMC4xcyBlYXNlO1xufVxuXG4jb3Qtc2RrLWJ0bi5vdC1zZGstc2hvdy1zZXR0aW5nczpob3ZlcixcbiNvdC1zZGstYnRuLm9wdGFub24tc2hvdy1zZXR0aW5nczpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1MmZmO1xufVxuXG4ub25ldHJ1c3QtcGMtZGFyay1maWx0ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHotaW5kZXg6IDIxNDc0ODM2NDY7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG5cbkBrZXlmcmFtZXMgb25ldHJ1c3QtZmFkZS1pbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ub3QtY29va2llLWxhYmVsIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDI2cHgpIGFuZCAobWF4LXdpZHRoOiA4OTZweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICNvbmV0cnVzdC1wYy1zZGsgcCB7XG4gICAgZm9udC1zaXplOiAwLjc1ZW07XG4gIH1cbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taW5wdXQ6Zm9jdXMgKyBsYWJlbCB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCAjMDAwO1xuICBvdXRsaW5lLXN0eWxlOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC11c2VyaWQtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC11c2VyaWQtdGl0bGUgPiBzcGFuLFxuI29uZXRydXN0LXBjLXNkayAub3QtdXNlcmlkLXRpbWVzdGFtcCA+IHNwYW4ge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC11c2VyaWQtZGVzYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1kZXNjIGEge1xuICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWhkciA+IHAgYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8gYSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mbyBhIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXItbG9nbyBpbWcge1xuICB3aWR0aDogMTM2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcHVyLXZkci1jb3VudCB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBwYWRkaW5nLXRvcDogM3B4O1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LW9wdG91dC1zaWduYWwsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1vcHRvdXQtc2lnbmFsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMyYWU4ODtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBwYWRkaW5nOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWZmZmE7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDI7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1vcHRvdXQtc2lnbmFsIC5vdC1vcHRvdXQtaWNvbixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LW9wdG91dC1zaWduYWwgLm90LW9wdG91dC1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LW9wdG91dC1zaWduYWwgc3ZnLFxuI29uZXRydXN0LXBjLXNkayAub3Qtb3B0b3V0LXNpZ25hbCBzdmcge1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1vcHRvdXQtc2lnbmFsIHN2ZyBwYXRoLFxuI29uZXRydXN0LXBjLXNkayAub3Qtb3B0b3V0LXNpZ25hbCBzdmcgcGF0aCB7XG4gIGZpbGw6ICMzMmFlODg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrLFxuI29uZXRydXN0LXBjLXNkayxcbiNvdC1zeW5jLW50Znkge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICosXG4jb25ldHJ1c3QtYmFubmVyLXNkayA6OmFmdGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrICosXG4jb25ldHJ1c3QtcGMtc2RrIDo6YWZ0ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIDo6YmVmb3JlLFxuI290LXN5bmMtbnRmeSAqLFxuI290LXN5bmMtbnRmeSA6OmFmdGVyLFxuI290LXN5bmMtbnRmeSA6OmJlZm9yZSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBkaXYsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBzcGFuLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaDEsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoMixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGgzLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaDQsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoNSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGg2LFxuI29uZXRydXN0LWJhbm5lci1zZGsgcCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGltZyxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIHN2ZyxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIHNlY3Rpb24sXG4jb25ldHJ1c3QtYmFubmVyLXNkayBhLFxuI29uZXRydXN0LWJhbm5lci1zZGsgbGFiZWwsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIHVsLFxuI29uZXRydXN0LWJhbm5lci1zZGsgbGksXG4jb25ldHJ1c3QtYmFubmVyLXNkayBuYXYsXG4jb25ldHJ1c3QtYmFubmVyLXNkayB0YWJsZSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIHRoZWFkLFxuI29uZXRydXN0LWJhbm5lci1zZGsgdHIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayB0ZCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIHRib2R5LFxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LW1haW4tY29udGVudCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC10b2dnbGUsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb3QtY29udGVudCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvdC1wYy1jb250ZW50LFxuI29uZXRydXN0LWJhbm5lci1zZGsgLmNoZWNrYm94LFxuI29uZXRydXN0LXBjLXNkayBkaXYsXG4jb25ldHJ1c3QtcGMtc2RrIHNwYW4sXG4jb25ldHJ1c3QtcGMtc2RrIGgxLFxuI29uZXRydXN0LXBjLXNkayBoMixcbiNvbmV0cnVzdC1wYy1zZGsgaDMsXG4jb25ldHJ1c3QtcGMtc2RrIGg0LFxuI29uZXRydXN0LXBjLXNkayBoNSxcbiNvbmV0cnVzdC1wYy1zZGsgaDYsXG4jb25ldHJ1c3QtcGMtc2RrIHAsXG4jb25ldHJ1c3QtcGMtc2RrIGltZyxcbiNvbmV0cnVzdC1wYy1zZGsgc3ZnLFxuI29uZXRydXN0LXBjLXNkayBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIHNlY3Rpb24sXG4jb25ldHJ1c3QtcGMtc2RrIGEsXG4jb25ldHJ1c3QtcGMtc2RrIGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayBpbnB1dCxcbiNvbmV0cnVzdC1wYy1zZGsgdWwsXG4jb25ldHJ1c3QtcGMtc2RrIGxpLFxuI29uZXRydXN0LXBjLXNkayBuYXYsXG4jb25ldHJ1c3QtcGMtc2RrIHRhYmxlLFxuI29uZXRydXN0LXBjLXNkayB0aGVhZCxcbiNvbmV0cnVzdC1wYy1zZGsgdHIsXG4jb25ldHJ1c3QtcGMtc2RrIHRkLFxuI29uZXRydXN0LXBjLXNkayB0Ym9keSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LW1haW4tY29udGVudCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXRvZ2dsZSxcbiNvbmV0cnVzdC1wYy1zZGsgI290LWNvbnRlbnQsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1jb250ZW50LFxuI29uZXRydXN0LXBjLXNkayAuY2hlY2tib3gsXG4jb3Qtc3luYy1udGZ5IGRpdixcbiNvdC1zeW5jLW50Znkgc3BhbixcbiNvdC1zeW5jLW50ZnkgaDEsXG4jb3Qtc3luYy1udGZ5IGgyLFxuI290LXN5bmMtbnRmeSBoMyxcbiNvdC1zeW5jLW50ZnkgaDQsXG4jb3Qtc3luYy1udGZ5IGg1LFxuI290LXN5bmMtbnRmeSBoNixcbiNvdC1zeW5jLW50ZnkgcCxcbiNvdC1zeW5jLW50ZnkgaW1nLFxuI290LXN5bmMtbnRmeSBzdmcsXG4jb3Qtc3luYy1udGZ5IGJ1dHRvbixcbiNvdC1zeW5jLW50Znkgc2VjdGlvbixcbiNvdC1zeW5jLW50ZnkgYSxcbiNvdC1zeW5jLW50ZnkgbGFiZWwsXG4jb3Qtc3luYy1udGZ5IGlucHV0LFxuI290LXN5bmMtbnRmeSB1bCxcbiNvdC1zeW5jLW50ZnkgbGksXG4jb3Qtc3luYy1udGZ5IG5hdixcbiNvdC1zeW5jLW50ZnkgdGFibGUsXG4jb3Qtc3luYy1udGZ5IHRoZWFkLFxuI290LXN5bmMtbnRmeSB0cixcbiNvdC1zeW5jLW50ZnkgdGQsXG4jb3Qtc3luYy1udGZ5IHRib2R5LFxuI290LXN5bmMtbnRmeSAub3QtbWFpbi1jb250ZW50LFxuI290LXN5bmMtbnRmeSAub3QtdG9nZ2xlLFxuI290LXN5bmMtbnRmeSAjb3QtY29udGVudCxcbiNvdC1zeW5jLW50ZnkgI290LXBjLWNvbnRlbnQsXG4jb3Qtc3luYy1udGZ5IC5jaGVja2JveCB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGNsZWFyOiBub25lO1xuICBmbG9hdDogbm9uZTtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdG9wOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtaW5kZW50OiAwO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHotaW5kZXg6IGF1dG87XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGxhYmVsOmJlZm9yZSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGxhYmVsOmFmdGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLmNoZWNrYm94OmFmdGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLmNoZWNrYm94OmJlZm9yZSxcbiNvbmV0cnVzdC1wYy1zZGsgbGFiZWw6YmVmb3JlLFxuI29uZXRydXN0LXBjLXNkayBsYWJlbDphZnRlcixcbiNvbmV0cnVzdC1wYy1zZGsgLmNoZWNrYm94OmFmdGVyLFxuI29uZXRydXN0LXBjLXNkayAuY2hlY2tib3g6YmVmb3JlLFxuI290LXN5bmMtbnRmeSBsYWJlbDpiZWZvcmUsXG4jb3Qtc3luYy1udGZ5IGxhYmVsOmFmdGVyLFxuI290LXN5bmMtbnRmeSAuY2hlY2tib3g6YWZ0ZXIsXG4jb3Qtc3luYy1udGZ5IC5jaGVja2JveDpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgY29udGVudDogbm9uZTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb250YWluZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAyMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbHVtbixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29sdW1ucyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb2x1bW4sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29sdW1ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogaW5pdGlhbDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQwMHB4KSB7XG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTAlO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU1MHB4KSB7XG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29sdW1uLFxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbHVtbnMsXG4gICNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb2x1bW4sXG4gICNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb2x1bW5zIHtcbiAgICBtYXJnaW4tbGVmdDogNCU7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb2x1bW5zOmZpcnN0LWNoaWxkLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29sdW1uOmZpcnN0LWNoaWxkLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29sdW1uczpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLXR3by5vdC1zZGstY29sdW1ucyxcbiAgI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLXR3by5vdC1zZGstY29sdW1ucyB7XG4gICAgd2lkdGg6IDEzLjMzMzMzMzMzMzMlO1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay10aHJlZS5vdC1zZGstY29sdW1ucyxcbiAgI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLXRocmVlLm90LXNkay1jb2x1bW5zIHtcbiAgICB3aWR0aDogMjIlO1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1mb3VyLm90LXNkay1jb2x1bW5zLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstZm91ci5vdC1zZGstY29sdW1ucyB7XG4gICAgd2lkdGg6IDMwLjY2NjY2NjY2NjclO1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1laWdodC5vdC1zZGstY29sdW1ucyxcbiAgI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWVpZ2h0Lm90LXNkay1jb2x1bW5zIHtcbiAgICB3aWR0aDogNjUuMzMzMzMzMzMzMyU7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLW5pbmUub3Qtc2RrLWNvbHVtbnMsXG4gICNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1uaW5lLm90LXNkay1jb2x1bW5zIHtcbiAgICB3aWR0aDogNzQlO1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay10ZW4ub3Qtc2RrLWNvbHVtbnMsXG4gICNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay10ZW4ub3Qtc2RrLWNvbHVtbnMge1xuICAgIHdpZHRoOiA4Mi42NjY2NjY2NjY3JTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstZWxldmVuLm90LXNkay1jb2x1bW5zLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstZWxldmVuLm90LXNkay1jb2x1bW5zIHtcbiAgICB3aWR0aDogOTEuMzMzMzMzMzMzMyU7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLXR3ZWx2ZS5vdC1zZGstY29sdW1ucyxcbiAgI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLXR3ZWx2ZS5vdC1zZGstY29sdW1ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgaDEsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoMixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGgzLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaDQsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoNSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGg2LFxuI29uZXRydXN0LXBjLXNkayBoMSxcbiNvbmV0cnVzdC1wYy1zZGsgaDIsXG4jb25ldHJ1c3QtcGMtc2RrIGgzLFxuI29uZXRydXN0LXBjLXNkayBoNCxcbiNvbmV0cnVzdC1wYy1zZGsgaDUsXG4jb25ldHJ1c3QtcGMtc2RrIGg2IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGgxLFxuI29uZXRydXN0LXBjLXNkayBoMSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoMixcbiNvbmV0cnVzdC1wYy1zZGsgaDIge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGgzLFxuI29uZXRydXN0LXBjLXNkayBoMyB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoNCxcbiNvbmV0cnVzdC1wYy1zZGsgaDQge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGg1LFxuI29uZXRydXN0LXBjLXNkayBoNSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoNixcbiNvbmV0cnVzdC1wYy1zZGsgaDYge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU1MHB4KSB7XG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGgxLFxuICAjb25ldHJ1c3QtcGMtc2RrIGgxIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGgyLFxuICAjb25ldHJ1c3QtcGMtc2RrIGgyIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGgzLFxuICAjb25ldHJ1c3QtcGMtc2RrIGgzIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGg0LFxuICAjb25ldHJ1c3QtcGMtc2RrIGg0IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGg1LFxuICAjb25ldHJ1c3QtcGMtc2RrIGg1IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGg2LFxuICAjb25ldHJ1c3QtcGMtc2RrIGg2IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBwLFxuI29uZXRydXN0LXBjLXNkayBwIHtcbiAgbWFyZ2luOiAwIDAgMWVtIDA7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBhLFxuI29uZXRydXN0LXBjLXNkayBhIHtcbiAgY29sb3I6ICM1NjU2NTY7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGE6aG92ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIGE6aG92ZXIge1xuICBjb2xvcjogIzU2NTY1NjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1idXR0b24sXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uLFxuI29uZXRydXN0LXBjLXNkayBidXR0b24ge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1idXR0b24sXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uLFxuI29uZXRydXN0LXBjLXNkayBidXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMzhweDtcbiAgcGFkZGluZzogMCAzMHB4O1xuICBjb2xvcjogIzU1NTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMzhweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1idXR0b246aG92ZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayA6bm90KC5vdC1sZWctYnRuLWNvbnRhaW5lcikgPiBidXR0b246bm90KC5vdC1saW5rLWJ0bik6aG92ZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayA6bm90KC5vdC1sZWctYnRuLWNvbnRhaW5lcikgPiBidXR0b246bm90KC5vdC1saW5rLWJ0bik6Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uOmhvdmVyLFxuI29uZXRydXN0LXBjLXNkayA6bm90KC5vdC1sZWctYnRuLWNvbnRhaW5lcikgPiBidXR0b246bm90KC5vdC1saW5rLWJ0bik6aG92ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIDpub3QoLm90LWxlZy1idG4tY29udGFpbmVyKSA+IGJ1dHRvbjpub3QoLm90LWxpbmstYnRuKTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMTRjZWM7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIDpub3QoLm90LWxlZy1idG4tY29udGFpbmVyKSA+IGJ1dHRvbjpub3QoLm90LWxpbmstYnRuKTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstYnV0dG9uOmZvY3VzLFxuI29uZXRydXN0LWJhbm5lci1zZGsgOm5vdCgub3QtbGVnLWJ0bi1jb250YWluZXIpID4gYnV0dG9uOmZvY3VzLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWJ1dHRvbjpmb2N1cyxcbiNvbmV0cnVzdC1wYy1zZGsgOm5vdCgub3QtbGVnLWJ0bi1jb250YWluZXIpID4gYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkICMwMDA7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnksXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSdzdWJtaXQnXS5vdC1zZGstYnV0dG9uLXByaW1hcnksXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSdyZXNldCddLm90LXNkay1idXR0b24tcHJpbWFyeSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9J2J1dHRvbiddLm90LXNkay1idXR0b24tcHJpbWFyeSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1idXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5LFxuI29uZXRydXN0LXBjLXNkayBidXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5LFxuI29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPSdzdWJtaXQnXS5vdC1zZGstYnV0dG9uLXByaW1hcnksXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J3Jlc2V0J10ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5LFxuI29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPSdidXR0b24nXS5vdC1zZGstYnV0dG9uLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzYzNmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMzNjM2YwO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnk6aG92ZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT0nc3VibWl0J10ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT0ncmVzZXQnXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6aG92ZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSdidXR0b24nXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6aG92ZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmZvY3VzLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT0nc3VibWl0J10ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmZvY3VzLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT0ncmVzZXQnXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSdidXR0b24nXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeTpob3ZlcixcbiNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeTpob3ZlcixcbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT0nc3VibWl0J10ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLFxuI29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPSdyZXNldCddLm90LXNkay1idXR0b24tcHJpbWFyeTpob3ZlcixcbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT0nYnV0dG9uJ10ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J3N1Ym1pdCddLm90LXNkay1idXR0b24tcHJpbWFyeTpmb2N1cyxcbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT0ncmVzZXQnXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J2J1dHRvbiddLm90LXNkay1idXR0b24tcHJpbWFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWVhZWRiO1xuICBib3JkZXItY29sb3I6ICMxZWFlZGI7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9J3RleHQnXSxcbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgaGVpZ2h0OiAzOHB4O1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QxZDFkMTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSd0ZXh0J10sXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J3RleHQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSd0ZXh0J106Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J3RleHQnXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIG91dGxpbmU6IDA7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9J2NoZWNrYm94J10sXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J2NoZWNrYm94J10ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIHVsLFxuI29uZXRydXN0LXBjLXNkayB1bCB7XG4gIGxpc3Qtc3R5bGU6IGNpcmNsZSBpbnNpZGU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIHVsLFxuI29uZXRydXN0LXBjLXNkayB1bCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgdWwgdWwsXG4jb25ldHJ1c3QtcGMtc2RrIHVsIHVsIHtcbiAgbWFyZ2luOiAxLjVyZW0gMCAxLjVyZW0gM3JlbTtcbiAgZm9udC1zaXplOiA5MCU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGxpLFxuI29uZXRydXN0LXBjLXNkayBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIHRoLFxuI29uZXRydXN0LWJhbm5lci1zZGsgdGQsXG4jb25ldHJ1c3QtcGMtc2RrIHRoLFxuI29uZXRydXN0LXBjLXNkayB0ZCB7XG4gIHBhZGRpbmc6IDEycHggMTVweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMWUxZTE7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbixcbiNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyOmFmdGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1yb3c6YWZ0ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyOmFmdGVyLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLXJvdzphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstcm93IHtcbiAgcGFkZGluZy1yaWdodDogMjhweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1yb3csXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstcm93IHtcbiAgbWFyZ2luOiAwO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayB7XG4gIGJveC1zaGFkb3c6IDAgMCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3RGbGF0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ1O1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBtYXgtaGVpZ2h0OiA5MCU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3RGbGF0LnRvcCB7XG4gIHRvcDogMHB4O1xuICBib3R0b206IGF1dG87XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrLm90UmVsRm9udCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgPiAub3Qtc2RrLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAxMXB4O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkazo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjYzFjMWMxO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayB7XG4gIHNjcm9sbGJhci1hcnJvdy1jb2xvcjogI2MxYzFjMTtcbiAgc2Nyb2xsYmFyLWRhcmtzaGFkb3ctY29sb3I6ICNjMWMxYzE7XG4gIHNjcm9sbGJhci1mYWNlLWNvbG9yOiAjYzFjMWMxO1xuICBzY3JvbGxiYXItc2hhZG93LWNvbG9yOiAjYzFjMWMxO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5IHtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5IC5vdC1ndi1saXN0LWhhbmRsZXIge1xuICBmbG9hdDogbGVmdDtcbiAgZm9udC1zaXplOiAwLjgyZW07XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlcjogMDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3ktdGV4dCB7XG4gIGNsZWFyOiBib3RoO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDAuODhlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0ICoge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5LXRleHQgYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5LXRpdGxlLFxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0IHtcbiAgY29sb3I6IGRpbWdyYXk7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLXBhcmVudCB7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1MmZmO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MmZmO1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgbWluLXdpZHRoOiAxMjVweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHBhZGRpbmc6IDEycHggMTBweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC1zaXplOiAwLjgxM2VtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjBmMztcbiAgY29sb3I6ICMwYTBiMGQ7XG4gIGJvcmRlci1jb2xvcjogI2VlZjBmMztcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIG1pbi13aWR0aDogMTI1cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZvbnQtc2l6ZTogMC44MTNlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjBmMztcbiAgY29sb3I6ICMwYTBiMGQ7XG4gIGJvcmRlci1jb2xvcjogI2VlZjBmMztcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIG1pbi13aWR0aDogMTI1cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZvbnQtc2l6ZTogMC44MTNlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0ICNvbmV0cnVzdC1wYy1idG4taGFuZGxlciB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICMwMDUyZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG4gIG1pbi13aWR0aDogYXV0bztcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0ICNvbmV0cnVzdC1wYy1idG4taGFuZGxlcjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkICMwMDVmY2M7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vbmV0cnVzdC1jbG9zZS1idG4tdWkge1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEycHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHBhZGRpbmc6IDEycHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vbmV0cnVzdC1jbG9zZS1idG4tdWk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub25ldHJ1c3QtY2xvc2UtYnRuLXVpOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgIzAwNWZjYztcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lcl9sb2dvIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAub3QtYm5yLWxvZ28ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGxlZnQ6IDBweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAjb25ldHJ1c3QtcG9saWN5IHtcbiAgbWFyZ2luLWxlZnQ6IDY1cHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1iLWFkZGwtZGVzYyB7XG4gIGNsZWFyOiBib3RoO1xuICBmbG9hdDogbGVmdDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNiYW5uZXItb3B0aW9ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMWVtKTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taW5wdXQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1yaWdodDogM3B4O1xuICBtYXJnaW46IDAgMCAxMHB4O1xuICBmb250LXNpemU6IDAuODJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taW5wdXQgKiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAuYmFubmVyLW9wdGlvbi1pbnB1dFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAuYmFubmVyLW9wdGlvbi1kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taW5wdXRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIC5vdC1hcnJvdy1jb250YWluZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDA7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy1sZWZ0OiAycHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAuYmFubmVyLW9wdGlvbi1oZWFkZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taGVhZGVyIDpmaXJzdC1jaGlsZCB7XG4gIGNvbG9yOiBkaW1ncmF5O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWhlYWRlciAub3QtYXJyb3ctY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLCAwLCAwLCAwKTtcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgZGltZ3JheTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWRldGFpbHMge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDAuODNlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgcGFkZGluZzogMTBweCAwcHggNXB4IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgaGVpZ2h0OiAwcHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWRldGFpbHMgKiB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBkaW1ncmF5O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtYXJyb3ctY29udGFpbmVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24tZGV0YWlscyB7XG4gIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbiAwcztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWRwZC1jb250YWluZXIge1xuICBmbG9hdDogbGVmdDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWRwZC10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1kcGQtdGl0bGUsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtZHBkLWRlc2Mge1xuICBmb250LXNpemU6IDAuODhlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6IGRpbWdyYXk7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1kcGQtdGl0bGUgKixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1kcGQtZGVzYyAqIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3QtaWFiLTIgI29uZXRydXN0LXBvbGljeS10ZXh0ICoge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1pYWItMiAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwIGJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1jbG9zZS1idG4tbGluayB7XG4gIHBhZGRpbmctdG9wOiAyNXB4O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1jbG9zZS1idG4tbGluayAjb25ldHJ1c3QtY2xvc2UtYnRuLWNvbnRhaW5lciB7XG4gIHRvcDogMTVweDtcbiAgdHJhbnNmb3JtOiBub25lO1xuICByaWdodDogMTVweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3QtY2xvc2UtYnRuLWxpbmsgI29uZXRydXN0LWNsb3NlLWJ0bi1jb250YWluZXIgYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGZvbnQtc2l6ZTogMC42OWVtO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5LXRleHQsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtZHBkLWRlc2MsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtYi1hZGRsLWRlc2Mge1xuICBmb250LXNpemU6IDAuODEzZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1kcGQtZGVzYyB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1kcGQtZGVzYyA+IC5vdC1iLWFkZGwtZGVzYyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wb2xpY3ktdGl0bGUsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0LFxuI29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1iLWFkZGwtZGVzYyxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAub3QtZHBkLWRlc2MsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LWRwZC10aXRsZSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtYmFubmVyLXNkayAjYmFubmVyLW9wdGlvbnMgKixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1jYXQtaGVhZGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LW9wdG91dC1zaWduYWwge1xuICBjb2xvcjogIzFkMWQxZDtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWRldGFpbHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgYVtocmVmXSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtYmFubmVyLXNkayBhW2hyZWZdIGZvbnQsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWxpbmstYnRuIHtcbiAgY29sb3I6ICMwMDUyZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYTBiMGQ7XG4gIGJvcmRlci1jb2xvcjogIzBhMGIwZDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtYmFubmVyLXNkayAqOmZvY3VzLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrOmZvY3VzIHtcbiAgb3V0bGluZS1jb2xvcjogIzAwMDAwMDtcbiAgb3V0bGluZS13aWR0aDogMXB4O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkay5vdEZsb2F0aW5nUm91bmRlZCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrLm90RmxvYXRpbmdSb3VuZGVkW2Rpcj0ncnRsJ10ge1xuICB3aWR0aDogNTI4cHg7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzJweCk7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrID4gZGl2ID4gZGl2Lm90LXNkay1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtZ3JvdXAtY29udGFpbmVyICNvbmV0cnVzdC1wb2xpY3ktdGV4dCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1ncm91cC1jb250YWluZXIgLm90LWItYWRkbC1kZXNjIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtZ3JvdXAtY29udGFpbmVyICNvbmV0cnVzdC1wb2xpY3ktdGV4dCBhIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1ncm91cC1jb250YWluZXIgI29uZXRydXN0LXBvbGljeS10ZXh0IGE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtZ3JvdXAtY29udGFpbmVyICNvbmV0cnVzdC1wb2xpY3ktdGV4dCBhOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgIzAwNWZjYztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnQuaGFzLXJlamVjdC1hbGwtYnV0dG9uICNvbmV0cnVzdC1idXR0b24tZ3JvdXAge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vbmV0cnVzdC1iYW5uZXItb3B0aW9ucyB7XG4gIGZsb2F0OiB1bnNldDtcbiAgbWF4LXdpZHRoOiB1bnNldDtcbiAgb3JkZXI6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMWVtO1xuICB3aWR0aDogMTAwJTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnQuaGFzLXJlamVjdC1hbGwtYnV0dG9uXG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXBcbiAgYnV0dG9uIHtcbiAgcGFkZGluZzogOHB4IDE2cHg7XG4gIGhlaWdodDogNDBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtaW4td2lkdGg6IGF1dG87XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50ICNvbmV0cnVzdC1idXR0b24tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnQgI29uZXRydXN0LWJ1dHRvbi1ncm91cCBidXR0b24ge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNka1xuICAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLXBhcmVudFxuICAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwXG4gICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIge1xuICBvcmRlcjogMjtcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyIHtcbiAgb3JkZXI6IDE7XG4gIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4OiAxO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLXBhcmVudCAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwICNvbmV0cnVzdC1wYy1idG4taGFuZGxlciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnQgI29uZXRydXN0LWJ1dHRvbi1ncm91cCAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIge1xuICBvcmRlcjogMTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtaW4td2lkdGg6IGF1dG87XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrXG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50XG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXBcbiAgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgIzAwNWZjYztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyOmhvdmVyLFxuI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGIwZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtY2xvc2UtYnRuLWNvbnRhaW5lciB7XG4gIHJpZ2h0OiAyNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICB0b3A6IDE2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdFBjQ2VudGVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdG9wOiA1JTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiA0MCU7XG4gIG1heC13aWR0aDogNTc1cHg7XG4gIG1pbi13aWR0aDogNTc1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDIuNXB4O1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAycHggMTBweCAtM3B4ICM5OTk7XG4gIC1tb3otYm94LXNoYWRvdzogMHB4IDJweCAxMHB4IC0zcHggIzk5OTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxMHB4IC0zcHggIzk5OTtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdFBjQ2VudGVyW2Rpcj0ncnRsJ10ge1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdFJlbEZvbnQge1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LW9wdG91dC1zaWduYWwge1xuICBtYXJnaW4tdG9wOiAwLjYyNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtYWRkdGwtdmVubHN0IC5vdC1hcnctY250cixcbiNvbmV0cnVzdC1wYy1zZGsgI290LWFkZHRsLXZlbmxzdCAub3QtcGx1cy1taW51cyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhpZGUtdGdsIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1hZGR0bC12ZW5sc3QgLm90LWFydy1jbnRyICosXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1hZGR0bC12ZW5sc3QgLm90LXBsdXMtbWludXMgKixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhpZGUtdGdsICoge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWduLXZlbmxzdCAub3QtdmVuLWl0ZW0gLm90LWFjYy1oZHIge1xuICBtaW4taGVpZ2h0OiA0MHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMTBweCAxMHB4IDEwcHggMzBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOWU5ZTk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLXRpdGxlLFxuI29uZXRydXN0LXBjLXNkayAjb3QtY2F0ZWdvcnktdGl0bGUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jYXQtaGVhZGVyLFxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LXRpdGxlLFxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWhkciAub3QtdmVuLW5hbWUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hbHdheXMtYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiBkaW1ncmF5O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hbHdheXMtYWN0aXZlLWdyb3VwIC5vdC1jYXQtaGVhZGVyIHtcbiAgd2lkdGg6IDU1JTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gcCB7XG4gIGNsZWFyOiBib3RoO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LXNpemU6IDAuODEyZW07XG4gIGNvbG9yOiBkaW1ncmF5O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jbG9zZS1pY29uIHtcbiAgaGVpZ2h0OiA0NHB4O1xuICB3aWR0aDogNDRweDtcbiAgYmFja2dyb3VuZC1zaXplOiAxMnB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy10aXRsZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWRlc2Mge1xuICBjbGVhcjogYm90aDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMC44MTJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyBhIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyAqIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyB1bCBsaSB7XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGEge1xuICBjb2xvcjogIzY1NjU2NTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGE6aG92ZXIge1xuICBjb2xvcjogIzM4NjBiZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayBsYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI3Zkci1sc3QtZHNjIHtcbiAgZm9udC1zaXplOiAwLjgxMmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBwYWRkaW5nOiAxMHB4IDE1cHggNXB4IDE1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uIHtcbiAgbWF4LXdpZHRoOiAzOTRweDtcbiAgcGFkZGluZzogMTJweCAzMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1saW5rLWJ0biB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlcjogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgdG9wOiA2MHB4O1xuICBib3R0b206IDExMHB4O1xuICBtYXJnaW46IDFweCAzcHggMCAzMHB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gNjNweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LWFsd2F5cy1hY3RpdmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jYXQtZ3JwIC5vdC1hbHdheXMtYWN0aXZlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjbGVhcjogbm9uZTtcbiAgY29sb3I6ICM1YjYxNmU7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDExcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLXNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjZDhkOGQ4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J2NoZWNrYm94J106Zm9jdXMgKyAub3QtYWNjLWhkciB7XG4gIG91dGxpbmU6ICMwMDAgMXB4IHNvbGlkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1zY3JvbGxiYXIge1xuICBzY3JvbGxiYXItYXJyb3ctY29sb3I6ICNkOGQ4ZDg7XG4gIHNjcm9sbGJhci1kYXJrc2hhZG93LWNvbG9yOiAjZDhkOGQ4O1xuICBzY3JvbGxiYXItZmFjZS1jb2xvcjogI2Q4ZDhkODtcbiAgc2Nyb2xsYmFyLXNoYWRvdy1jb2xvcjogI2Q4ZDhkODtcbn1cblxuI29uZXRydXN0LXBjLXNkayAuc2F2ZS1wcmVmZXJlbmNlLWJ0bi1oYW5kbGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1kZXNjIC5wcml2YWN5LW5vdGljZS1saW5rIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1kZXNjIC5vdC1pbXByaW50LWhhbmRsZXIge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjbGVhcjogYm90aDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zd2l0Y2ggKyAub3Qtc3ViZ3JwLWNudHIge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IGluaXRpYWw7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyBsaSBwLFxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIGxpIGg1IHtcbiAgZm9udC1zaXplOiAwLjgxM2VtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogZGltZ3JheTtcbn1cblxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1zd2l0Y2gge1xuICBtaW4taGVpZ2h0OiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LXN3aXRjaC1ub2Ige1xuICB0b3A6IDA7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLXR4dCB7XG4gIG1hcmdpbjogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIGxpIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgbGkgaDUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgbGkub3Qtc3ViZ3JwIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGxpLm90LXN1YmdycCA+IGg1IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwMHB4KTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gcCA+IHVsLFxuI29uZXRydXN0LXBjLXNkayBsaS5vdC1zdWJncnAgcCA+IHVsIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGxpc3Qtc3R5bGU6IGRpc2M7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1pdGVtIHAgPiB1bCBsaSxcbiNvbmV0cnVzdC1wYy1zZGsgbGkub3Qtc3ViZ3JwIHAgPiB1bCBsaSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gcCA+IHVsIGxpOmxhc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIGxpLm90LXN1YmdycCBwID4gdWwgbGk6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1sb2dvIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcGMtZm9vdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDE2MHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q4ZDhkODtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdC1mdHItc3RhY2tlZCAub3QtcGMtcmVmdXNlLWFsbC1oYW5kbGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWZ0ci1zdGFja2VkICNvdC1wYy1jb250ZW50IHtcbiAgYm90dG9tOiAxNjBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdC1mdHItc3RhY2tlZCAub3QtcGMtZm9vdGVyIGJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtZnRyLXN0YWNrZWQgLm90LWJ0bi1jb250YWluZXIge1xuICBtYXJnaW46IDAgMzBweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDYwcHgpO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXItbG9nbyB7XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXItbG9nbyBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNka1tkaXI9J3J0bCddIC5vdC1wYy1mb290ZXItbG9nbyB7XG4gIGRpcmVjdGlvbjogcnRsO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrW2Rpcj0ncnRsJ10gLm90LXBjLWZvb3Rlci1sb2dvIGEge1xuICBtYXJnaW4tcmlnaHQ6IDI1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXRnbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wgaW5wdXQ6Y2hlY2tlZCArIC5vdC1zd2l0Y2ggLm90LXN3aXRjaC1ub2Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1MmZmICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXRnbCBpbnB1dDpjaGVja2VkICsgLm90LXN3aXRjaCAub3Qtc3dpdGNoLW5vYjpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNmZmY7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXRnbCBpbnB1dDpmb2N1cyArIC5vdC1zd2l0Y2gge1xuICBvdXRsaW5lOiAjMDAwIHNvbGlkIDFweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA0NXB4O1xuICBoZWlnaHQ6IDI1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDQ1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN3aXRjaC1ub2Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4gMHM7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4gMHM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbiAwcztcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc3dpdGNoLW5vYjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IDE4cHg7XG4gIHdpZHRoOiAxOHB4O1xuICBib3R0b206IDNweDtcbiAgbGVmdDogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuNHM7XG4gIHRyYW5zaXRpb246IDAuNHM7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzODYwYmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBpbnB1dCArIGxhYmVsOjphZnRlciB7XG4gIGNvbnRlbnQ6IG5vbmU7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXQ6Y2hlY2tlZCArIGxhYmVsOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXQ6Zm9jdXMgKyBsYWJlbDo6YmVmb3JlIHtcbiAgb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIG91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1zdHlsZTogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggbGFiZWw6OmJlZm9yZSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBsYWJlbDo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUge1xuICBoZWlnaHQ6IDE4cHg7XG4gIHdpZHRoOiAxOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzg2MGJlO1xuICBsZWZ0OiAwcHg7XG4gIHRvcDogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsOjphZnRlciB7XG4gIGhlaWdodDogNXB4O1xuICB3aWR0aDogOXB4O1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkO1xuICBib3JkZXItYm90dG9tOiAzcHggc29saWQ7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIGxlZnQ6IDRweDtcbiAgdG9wOiA1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWxhYmVsLXR4dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBpbnB1dCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXRnbCBpbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYXJ3LWNudHIge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFydy1jbnRyIC5vdC1hcncge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBjb2xvcjogZGltZ3JheTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAxNTBtcyBlYXNlLWluIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAxNTBtcyBlYXNlLWluIDBzO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMTUwbXMgZWFzZS1pbiAwcztcbiAgdHJhbnNpdGlvbjogYWxsIDE1MG1zIGVhc2UtaW4gMHM7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXQ6Y2hlY2tlZCB+IC5vdC1hY2MtaGRyIC5vdC1hcncsXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLWhkciAub3QtYXJ3LWNudHIgc3ZnIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J2NoZWNrYm94J106Zm9jdXMgKyAub3QtYWNjLWhkciB7XG4gIG91dGxpbmU6ICMwMDAgMXB4IHNvbGlkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wtY250cixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFydy1jbnRyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wtY250ciB7XG4gIHdpZHRoOiA0NXB4O1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3QtdGdsLWNudHIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hbHdheXMtYWN0aXZlLXN1Ymdyb3VwIHtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gIHRvcDogM3B4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWxhYmVsLXN0YXR1cyB7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYXJ3LWNudHIge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hcnctY250ciBzdmcge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbiAwcztcbiAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4gMHM7XG4gIGhlaWdodDogMTBweDtcbiAgd2lkdGg6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXQ6Y2hlY2tlZCB+IC5vdC1hY2MtaGRyIC5vdC1hcncge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFydyB7XG4gIHdpZHRoOiAxMHB4O1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4gMHM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4gMHM7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4gMHM7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bHN0LWNudHIge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1obHN0LWNudHIge1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZsc3QtY250ciAub3QtZXh0LWxuayxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1oZHIgLm90LWV4dC1sbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMTNweDtcbiAgd2lkdGg6IDEzcHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4taGRyIC5vdC1leHQtbG5rIHtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAuYmFjay1idG4taGFuZGxlciB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLmJhY2stYnRuLWhhbmRsZXI6aG92ZXIge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC10aXRsZSBoMyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjb2xvcjogIzY1NjU2NTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LXRpdGxlIHtcbiAgbWFyZ2luOiAxMHB4IDAgMTBweCAwcHg7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1oZHIge1xuICBtYXJnaW46IDAgMCAwIDMwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWhkciBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2Q0ZDRkNDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICN2ZW5kb3Itc2VhcmNoLWhhbmRsZXIge1xuICBoZWlnaHQ6IDMxcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBmb250LXNpemU6IDAuOGVtO1xuICBwYWRkaW5nLXJpZ2h0OiAzNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLW5hbWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDI3cHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSA4MHB4KTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3Qge1xuICB3aWR0aDogMTAwJTtcbiAgYm90dG9tOiAxMDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDYwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdDpub3QoLm90LWVuYmwtY2hyKSAub3QtdGdsLWNudHIgLm90LWFydy1jbnRyLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0Om5vdCgub3QtZW5ibC1jaHIpIC5vdC10Z2wtY250ciAub3QtYXJ3LWNudHIgKiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC10Z2wtY250ciB7XG4gIHJpZ2h0OiAxMnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtYXJ3LWNudHIge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC1hcncge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC1hY2MtaGRyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bHN0LWNudHIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWwtYmxrIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAzO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1iYWNrLWFydyB7XG4gIGhlaWdodDogMTJweDtcbiAgd2lkdGg6IDEycHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWxzdC1zdWJoZHIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWFyY2gtY250ciB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNzglO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXNlYXJjaC1jbnRyID4gc3ZnIHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmbG9hdDogbGVmdDtcbiAgcmlnaHQ6IC0xNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1mbHRyLWNudHIge1xuICBmbG9hdDogcmlnaHQ7XG4gIHJpZ2h0OiA1MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI2ZpbHRlci1idG4taGFuZGxlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzODYwYmU7XG4gIGJvcmRlci1yYWRpdXM6IDE3cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICAtbW96LXRyYW5zaXRpb246IDAuMXMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogMC4xcyBlYXNlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDFzIGVhc2U7XG4gIHRyYW5zaXRpb246IDAuMXMgZWFzZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNmaWx0ZXItYnRuLWhhbmRsZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzg2MGJlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNmaWx0ZXItYnRuLWhhbmRsZXIgc3ZnIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgbWFyZ2luOiAzcHggMTBweCAwIDEwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICByaWdodDogYXV0bztcbiAgdG9wOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbGluayxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1sZWdjbGFpbS1saW5rIHtcbiAgY29sb3I6ICMzODYwYmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBmb250LXdlaWdodDogMTAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxJSk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDElKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDElKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxJSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWxpbmsgKixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1sZWdjbGFpbS1saW5rICoge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1saW5rOmhvdmVyLFxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWxlZ2NsYWltLWxpbms6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWhkciB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxNjBweCk7XG4gIGhlaWdodDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWxpbmssXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbGVnY2xhaW0tbGluayB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgbGk6Zmlyc3QtY2hpbGQgcDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYzpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYzpudGgtY2hpbGQobiArIDMpIHAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYzpudGgtY2hpbGQobiArIDMpIHA6bnRoLW9mLXR5cGUob2RkKSB7XG4gIHdpZHRoOiAzMCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYzpudGgtY2hpbGQobiArIDMpIHA6bnRoLW9mLXR5cGUoZXZlbikge1xuICB3aWR0aDogNTAlO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYyBwLFxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgLm90LXZlbi1kaXNjIGg0IHtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYyBoNCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgLm90LXZlbi1kaXNjIHA6bnRoLWxhc3QtY2hpbGQoLW4gKyAxKSB7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyAub3QtdmVuLWRpc2MgcDpudGgtY2hpbGQoLW4gKyAyKTpub3QoLmRpc2MtcHVyKSB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyAub3QtdmVuLWRpc2MgLmRpc2MtcHVyLWNvbnQge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYyAuZGlzYy1wdXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBsZWZ0OiBjYWxjKDMwJSArIDE3cHgpO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyAub3QtdmVuLWRpc2MgLmRpc2MtcHVyOm50aC1jaGlsZCgtbiArIDEpIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgcCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIGg0LFxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMC42OWVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgY29sb3I6ICMyZTM2NDQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIGg0IHtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgc3BhbiB7XG4gIGNvbG9yOiBkaW1ncmF5O1xuICBwYWRkaW5nOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tcHVyIGg0IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlOWU5ZTk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTllOWU5O1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1ob3N0LWxzdCAub3Qtc2VsLWFsbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tcmlnaHQ6IDQycHg7XG4gIHRvcDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LXNlbC1hbGwgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWhvc3QtbHN0IC5vdC1zZWwtYWxsIGxhYmVsIHtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWhvc3QtbHN0IC5vdC1hY2MtdHh0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDk1JTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1oZHIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMTI1cHgpO1xuICBmbG9hdDogbGVmdDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1uYW1lLFxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1kZXNjIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogOTAlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1oZHIgPiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGZvbnQtc2l6ZTogMC44MmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUgKyBhIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUgYSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtZGVzYyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtaW5mbyB7XG4gIGNvbG9yOiBkaW1ncmF5O1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtbmFtZSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtbmFtZSBhIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMC44MmVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUgYSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWV4cGFuZCB7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBjbGVhcjogYm90aDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjMzg2MGJlO1xuICBmb250LXNpemU6IDAuNzJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1leHBhbmQgKiB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1kZXNjLFxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1pbmZvIHtcbiAgZm9udC1zaXplOiAwLjY4OGVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWRlc2Mge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW9wdCB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW9wdCBsaSA+IGRpdiBkaXYge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBwYWRkaW5nOiA1cHggMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1vcHQgbGkgPiBkaXYgZGl2Om50aC1jaGlsZCgxKSB7XG4gIHdpZHRoOiAzMCU7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW9wdCBsaSA+IGRpdiBkaXY6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDcwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1pbmZvIHtcbiAgYm9yZGVyOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxMHB4KTtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1pbmZvID4gZGl2IHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI25vLXJlc3VsdHMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI25vLXJlc3VsdHMgcCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogIzJlMzY0NDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNuby1yZXN1bHRzIHAgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1mbHRyLW1vZGFsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogbm9uZTtcbiAgLW1vei10cmFuc2l0aW9uOiAwLjJzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IDAuMnMgZWFzZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAycyBlYXNlO1xuICB0cmFuc2l0aW9uOiAwLjJzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDE7XG4gIHJpZ2h0OiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1mbHRyLW1vZGFsIC5vdC1sYWJlbC10eHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBjb2xvcjogZGltZ3JheTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtZmx0ci1jbnQge1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ2O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogOTAlO1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgd2lkdGg6IDMyNXB4O1xuICBsZWZ0OiAyMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggMTJweCAycHggI2M3YzVjNztcbiAgLW1vei1ib3gtc2hhZG93OiAwcHggMHB4IDEycHggMnB4ICNjN2M1Yzc7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMTJweCAycHggI2M3YzVjNztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtZmx0ci1zY3JsY250IHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBjbGVhcjogYm90aDtcbiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gNjBweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWFuY2hvciB7XG4gIGJvcmRlcjogMTJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDApO1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDIxNDc0ODM2NDc7XG4gIHJpZ2h0OiA1NXB4O1xuICB0b3A6IDc1cHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtM3B4IC0zcHggNXB4IC0ycHggI2M3YzVjNztcbiAgLW1vei1ib3gtc2hhZG93OiAtM3B4IC0zcHggNXB4IC0ycHggI2M3YzVjNztcbiAgYm94LXNoYWRvdzogLTNweCAtM3B4IDVweCAtMnB4ICNjN2M1Yzc7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWZsdHItYnRucyB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNmaWx0ZXItYXBwbHktaGFuZGxlciB7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtZmx0ci1vcHQge1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgd2lkdGg6IDc1JTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1mbHRyLW9wdCBwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGNvbG9yOiAjMmUzNjQ0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggbGFiZWwgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBjb2xvcjogZGltZ3JheTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGlucHV0W3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbDo6YWZ0ZXIge1xuICBjb250ZW50OiBub25lO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGlucHV0W3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCArIGxhYmVsOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpmb2N1cyArIGxhYmVsOjpiZWZvcmUge1xuICBvdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLXN0eWxlOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtdmVuY250cixcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1hZHRsdmVuY250cixcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1ob3N0Y250cixcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1saWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtZ252ZW5jbnRyIHtcbiAgcmlnaHQ6IDE1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtdmVuY250ciBsYWJlbCxcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1hZHRsdmVuY250ciBsYWJlbCxcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1ob3N0Y250ciBsYWJlbCxcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1saWNudHIgbGFiZWwsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtZ252ZW5jbnRyIGxhYmVsIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtdmVuLWxzdDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTJlMmUyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayB1bCBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxNXB4IDE1cHggMTVweCAxMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTJlMjtcbn1cblxuI29uZXRydXN0LXBjLXNkayB1bCBsaSBoMyB7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBjb2xvcjogIzY1NjU2NTtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA3MCU7XG4gIGhlaWdodDogYXV0bztcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIHVsIGxpIHAge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43ZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgdWwgbGkgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDA7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gPiBidXR0b246Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IGJ1dHRvbjpmb2N1cyxcbiNvbmV0cnVzdC1wYy1zZGsgbGkgPiBidXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAjMDAwIHNvbGlkIDJweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gPiBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IGJ1dHRvbixcbiNvbmV0cnVzdC1wYy1zZGsgbGkgPiBidXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jYXQtaXRlbSA+IGJ1dHRvblthcmlhLWV4cGFuZGVkPSdmYWxzZSddIH4gLm90LWFjYy10eHQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IGJ1dHRvblthcmlhLWV4cGFuZGVkPSdmYWxzZSddIH4gLm90LWFjYy10eHQsXG4jb25ldHJ1c3QtcGMtc2RrIGxpID4gYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J2ZhbHNlJ10gfiAub3QtYWNjLXR4dCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1heC1oZWlnaHQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiAwLjI1cyBlYXNlLW91dDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gPiBidXR0b25bYXJpYS1leHBhbmRlZD0ndHJ1ZSddIH4gLm90LWFjYy10eHQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLXR4dCxcbiNvbmV0cnVzdC1wYy1zZGsgbGkgPiBidXR0b25bYXJpYS1leHBhbmRlZD0ndHJ1ZSddIH4gLm90LWFjYy10eHQge1xuICB0cmFuc2l0aW9uOiAwLjFzIGVhc2UtaW47XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1pdGVtID4gYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB+IC5vdC1hY2MtZ3JwY250cixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyID4gYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB+IC5vdC1hY2MtZ3JwY250cixcbiNvbmV0cnVzdC1wYy1zZGsgbGkgPiBidXR0b25bYXJpYS1leHBhbmRlZD0ndHJ1ZSddIH4gLm90LWFjYy1ncnBjbnRyIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtaXRlbSA+IGJ1dHRvbjpmb2N1cyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1pdGVtID4gYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAycHggc29saWQgIzAwMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaGlkZS1hY2MgPiBidXR0b24ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaGlkZS1hY2MgLm90LXBsdXMtbWludXMgPiAqLFxuI29uZXRydXN0LXBjLXNkayAub3QtaGlkZS1hY2MgLm90LWFydy1jbnRyID4gKiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaGlkZS1hY2MgLm90LWFjYy1oZHIge1xuICBtaW4taGVpZ2h0OiAzMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudCkge1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzdweCk7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDkwcHgpO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudCkgI290LXNlbC1ibGsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWZjO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTJlMmUyO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMnB4KTtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdC1hZGR0bC12ZW5kb3JzICNvdC1sc3QtY250Om5vdCgub3QtaG9zdC1jbnQpICNvdC1zZWwtYmxrLm90LXZuZC1saXN0LWNudCB7XG4gIGJvcmRlcjogdW5zZXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnNcbiAgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudClcbiAgI290LXNlbC1ibGsub3Qtdm5kLWxpc3QtY250XG4gIC5vdC1zZWwtYWxsLWhkciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9yc1xuICAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KVxuICAjb3Qtc2VsLWJsay5vdC12bmQtbGlzdC1jbnRcbiAgLm90LXNlbC1hbGwge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9yc1xuICAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KVxuICAjb3Qtc2VsLWJsay5vdC12bmQtbGlzdC1jbnRcbiAgLm90LXNlbC1hbGxcbiAgLm90LWNoa2JveCB7XG4gIHJpZ2h0OiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudCkgLm90LXNlbC1hbGwge1xuICBwYWRkaW5nLXJpZ2h0OiAzNHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudCkgLm90LXNlbC1hbGwtY2hrYm94IHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KSB1bCBsaSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KSAub3QtYWNjLWNudHIgPiAub3QtYWNjLWhkciB7XG4gIHBhZGRpbmc6IDEwcHggMCAxMHB4IDE1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAub3Qtc2VsLWFsbC1jaGtib3gge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAub3QtcGx1cy1taW51cyB+IC5vdC1zZWwtYWxsLWNoa2JveCB7XG4gIHJpZ2h0OiAzNHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LXZlbi1sc3Q6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTJlMmUyO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTJlMmUyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTJlMjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjLWNudHIgaW5wdXQge1xuICB6LWluZGV4OiAxO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IC5vdC1hY2MtaGRyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmYztcbiAgcGFkZGluZzogNXB4IDAgNXB4IDE1cHg7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IC5vdC1hY2MtaGRyIC5vdC1wbHVzLW1pbnVzIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG9wOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IC5vdC1hY2MtaGRyIC5vdC1hcnctY250ciB7XG4gIHJpZ2h0OiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IC5vdC1hY2MtaGRyIGlucHV0IHtcbiAgei1pbmRleDogMjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjLWNudHIub3QtYWRkLXRlY2ggLm90LWFjYy1oZHIge1xuICBwYWRkaW5nOiAxMHB4IDAgMTBweCAxNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IGlucHV0W3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCB+IC5vdC1hY2MtaGRyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUyZTI7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyID4gLm90LWFjYy10eHQge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyIGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLXR4dCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciAub3QtYWRkdGwtdmVuYm94IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmxzdC1jbnRyIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbnNlYy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMC44MTNlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtdmVuY250ci5saW5lLXRocm91Z2ggbGFiZWw6OmFmdGVyLFxuI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWFkdGx2ZW5jbnRyLmxpbmUtdGhyb3VnaCBsYWJlbDo6YWZ0ZXIsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtbGljbnRyLmxpbmUtdGhyb3VnaCBsYWJlbDo6YWZ0ZXIsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtaG9zdGNudHIubGluZS10aHJvdWdoIGxhYmVsOjphZnRlcixcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1nbnZlbmNudHIubGluZS10aHJvdWdoIGxhYmVsOjphZnRlciB7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgLW8tdHJhbnNmb3JtOiBub25lO1xuICAtbXMtdHJhbnNmb3JtOiBub25lO1xuICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGVmdDogNXB4O1xuICB0b3A6IDlweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtY2F0ZWdvcnktdGl0bGUge1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgZm9udC1zaXplOiAxZW07XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWdycCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1pdGVtIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYnRuLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1idG4tY29udGFpbmVyIGJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBoZWlnaHQ6IDNyZW07XG4gIG1pbi13aWR0aDogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayAjY2xvc2UtcGMtYnRuLWhhbmRsZXIub3QtY2xvc2UtaWNvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IHVuc2V0O1xuICByaWdodDogdW5zZXQ7XG4gIHotaW5kZXg6IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI2Nsb3NlLXBjLWJ0bi1oYW5kbGVyLm90LWNsb3NlLWljb24gc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTBweDtcbiAgd2lkdGg6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI2NsZWFyLWZpbHRlcnMtaGFuZGxlciB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZsb2F0OiByaWdodDtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzM4NjBiZTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgcGFkZGluZzogMXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNjbGVhci1maWx0ZXJzLWhhbmRsZXI6aG92ZXIge1xuICBjb2xvcjogIzIyODVmNztcbn1cblxuI29uZXRydXN0LXBjLXNkayAjY2xlYXItZmlsdGVycy1oYW5kbGVyOmZvY3VzIHtcbiAgb3V0bGluZTogIzAwMCBzb2xpZCAxcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWVuYmwtY2hyIGg0IH4gLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWVuYmwtY2hyIGg0IH4gLm90LWFsd2F5cy1hY3RpdmUge1xuICByaWdodDogNDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtZW5ibC1jaHIgaDQgfiAub3QtdGdsICsgLm90LXRnbCB7XG4gIHJpZ2h0OiAxMjBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtZW5ibC1jaHIgLm90LXBsaS1oZHIub3QtbGVnLWJvcmRlci1jb2xvciBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgd2lkdGg6IDkwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWVuYmwtY2hyIGxpLm90LXN1YmdycCA+IGg1ICsgLm90LXRnbC1jbnRyIHtcbiAgcGFkZGluZy1yaWdodDogMjVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcGx1cy1taW51cyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgdG9wOiAzcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBsdXMtbWludXMgc3BhbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogIzI3NDU1YztcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbHVzLW1pbnVzIHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gIHRvcDogMjUlO1xuICBib3R0b206IDI1JTtcbiAgd2lkdGg6IDEwJTtcbiAgbGVmdDogNDUlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbHVzLW1pbnVzIHNwYW46bGFzdC1vZi10eXBlIHtcbiAgbGVmdDogMjUlO1xuICByaWdodDogMjUlO1xuICBoZWlnaHQ6IDEwJTtcbiAgdG9wOiA0NSU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB+IC5vdC1hY2MtaGRyIC5vdC1hcncsXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyBzcGFuOmZpcnN0LW9mLXR5cGUsXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cblxuI29uZXRydXN0LXBjLXNkayBidXR0b25bYXJpYS1leHBhbmRlZD0ndHJ1ZSddIH4gLm90LWFjYy1oZHIgLm90LXBsdXMtbWludXMgc3BhbjpsYXN0LW9mLXR5cGUge1xuICBsZWZ0OiA1MCU7XG4gIHJpZ2h0OiA1MCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC12ZW5jbnRyIGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWFkdGx2ZW5jbnRyIGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWhvc3RjbnRyIGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWxpY250ciBsYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWl0ZW0gLm90LXBsdXMtbWludXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4taXRlbSAub3QtcGx1cy1taW51cyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4taXRlbSB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmUgaW5zaWRlO1xuICBmb250LXNpemU6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWl0ZW0gdWwgbGkge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBsaS1oZHIge1xuICBjb2xvcjogIzc3ODA4ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDcuNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogNy41cHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAycHgpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBsaS1oZHIgc3BhbjpmaXJzdC1jaGlsZCB7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcbiAgbWF4LXdpZHRoOiA5MHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyIHNwYW46bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gIG1heC13aWR0aDogOTVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1saS10aXRsZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAwLjgxM2VtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyLm90LWxlZy1ib3JkZXItY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyLm90LWxlZy1ib3JkZXItY29sb3Igc3BhbjpmaXJzdC1jaGlsZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiA3MHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGxpLm90LXN1YmdycCA+IGg1LFxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWhlYWRlciB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxMzBweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgbGkub3Qtc3ViZ3JwID4gaDUgKyAub3QtdGdsLWNudHIge1xuICBwYWRkaW5nLWxlZnQ6IDEzcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1ncnBjbnRyIC5vdC1hY2MtZ3JwZGVzYyB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjLWdycGNudHIgLm90LXN1YmdycC1jbnRyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOGQ4ZDg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1ncnBjbnRyIC5vdC12bHN0LWNudHIgKyAub3Qtc3ViZ3JwLWNudHIge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtaGRyIC5vdC1hcnctY250ciArIC5vdC10Z2wtY250cixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy10eHQgaDQgKyAub3QtdGdsLWNudHIge1xuICBwYWRkaW5nLWxlZnQ6IDEzcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBsaS1oZHIgfiAub3QtY2F0LWl0ZW0gLm90LXN1YmdycCA+IGg1LFxuI29uZXRydXN0LXBjLXNkayAub3QtcGxpLWhkciB+IC5vdC1jYXQtaXRlbSAub3QtY2F0LWhlYWRlciB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxNDVweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBsaS1oZHIgfiAub3QtY2F0LWl0ZW0gaDUgKyAub3QtdGdsLWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyIH4gLm90LWNhdC1pdGVtIC5vdC1jYXQtaGVhZGVyICsgLm90LXRnbCB7XG4gIHBhZGRpbmctbGVmdDogMjhweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc2VsLWFsbC1oZHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWwtYWxsLWNoa2JveCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc2VsLWFsbC1jaGtib3gge1xuICB6LWluZGV4OiAxO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWwtYWxsIHtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDIzcHg7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY29uc2VudC1oZHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1saS1oZHIge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMC44MTJlbTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWxpLWhkciB7XG4gIG1heC13aWR0aDogMTAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNvbnNlbnQtaGRyIHtcbiAgbWF4LXdpZHRoOiA1NXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtbGljbnRyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMXB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZsb2F0OiByaWdodDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogODBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWxpY250ciBsYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWN0Z2wge1xuICBtYXJnaW4tbGVmdDogNjZweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWxpdGdsICsgLm90LWFydy1jbnRyIHtcbiAgbWFyZ2luLWxlZnQ6IDgxcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWVuYmwtY2hyIC5vdC1ob3N0LWNudCAub3QtdGdsLWNudHIge1xuICB3aWR0aDogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KSAub3QtdGdsLWNudHIge1xuICB3aWR0aDogYXV0bztcbiAgdG9wOiBhdXRvO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC1jbnQgLm90LWNoa2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC1jaGtib3ggbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC1jbnQgLm90LXZuZC1pbmZvLWNudHIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtZ3JwZGVzYyArIC5vdC1sZWctYnRuLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycCAub3QtbGVnLWJ0bi1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXZlbi1sc3QgLm90LWxlZy1idG4tY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtbGVnLWJ0bi1jb250YWluZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1sZWctYnRuLWNvbnRhaW5lciBidXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDYuNXB4IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1sZWctYnRuLWNvbnRhaW5lciBzdmcge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDE0cHg7XG4gIHdpZHRoOiAxNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBzdWI7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjdGl2ZS1sZWctYnRuIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWN0aXZlLWxlZy1idG4gc3ZnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1yZW1vdmUtb2JqZWN0aW9uLWhhbmRsZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LW9iai1sZWctYnRuLWhhbmRsZXIgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdC1jbG9zZS1idG4tbGluayAjY2xvc2UtcGMtYnRuLWhhbmRsZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGZvbnQtc2l6ZTogMC42OWVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICByaWdodDogMTVweDtcbiAgdG9wOiAxNXB4O1xuICB3aWR0aDogYXV0bztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcGdwaC1saW5rIHtcbiAgZm9udC1zaXplOiAwLjgxM2VtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wZ3BoLWxpbmsub3QtcGdwaC1saW5rLXN1Ymdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcGdwaC1jb250ciB7XG4gIG1hcmdpbjogMCAyLjVyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBncGgtdGl0bGUge1xuICBmb250LXNpemU6IDEuMThyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBncGgtZGVzYyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcGdwaC1kZXNjOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDk2JTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOWU5ZTk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1oZWFkZXIge1xuICBmbG9hdDogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBtYXgtd2lkdGg6IDkwJTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLWl0ZW0gPiBidXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAjMDAwIHNvbGlkIDJweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLWl0ZW0gPiBidXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtaXRlbSA+IGJ1dHRvblthcmlhLWV4cGFuZGVkPSdmYWxzZSddIH4gLm90LWFjYy10eHQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXgtaGVpZ2h0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogMC4yNXMgZWFzZS1vdXQ7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1pdGVtID4gYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB+IC5vdC1hY2MtdHh0IHtcbiAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtaXRlbSA+IGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLWdycGNudHIge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jYXQtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAycHgpO1xuICBmbG9hdDogbGVmdDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jYXQtaXRlbTpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOGQ4ZDg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWFjYy1ncnBkZXNjIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gIGZvbnQtc2l6ZTogMC44MTJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtYWNjLWdycGRlc2MgPiB1bCB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1hY2MtZ3JwZGVzYyA+IHVsIGxpIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IGRpdiArIC5vdC1hY2MtZ3JwZGVzYyB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtdmxzdC1jbnRyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtdmxzdC1jbnRyOmxhc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1obHN0LWNudHI6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtYWNjLWhkciB7XG4gIHBhZGRpbmctdG9wOiAxMS41cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMS41cHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWFjYy10eHQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3Qtc3ViZ3JwLWNudHIge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzVweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LXN1YmdycCB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtYWNjLWdycGNudHIge1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWNhdC1oZWFkZXIgKyAub3QtYXJ3LWNudHIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1jYXQtaGVhZGVyICsgLm90LWFydy1jbnRyIC5vdC1hcncge1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBjb2xvcjogZGltZ3JheTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtY2F0LWhlYWRlciB7XG4gIGZsb2F0OiBub25lO1xuICBjb2xvcjogIzJlMzY0NDtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBtaW4taGVpZ2h0OiBpbmhlcml0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC12bHN0LWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1obHN0LWNudHIge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1hY2MtaGRyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAyNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IGg0IH4gLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgaDQgfiAub3QtYWx3YXlzLWFjdGl2ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgcmlnaHQ6IDIwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgaDQgfiAub3QtdGdsICsgLm90LXRnbCB7XG4gIHJpZ2h0OiA5NXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gOTZweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC1jbnQgLm90LXZuZC1pbmZvLWNudHIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC12bmQtaW5mbyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctbGVmdDogMC43NXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm9bZGF0YS12bmQtaW5mby1rZXkqPSdEUE9FbWFpbCddIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC12bmQtaW5mb1tkYXRhLXZuZC1pbmZvLWtleSo9J0RQT0xpbmsnXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm8gLm90LXZuZC1sYmwge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm8gLm90LXZuZC1jbnQge1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtc2Vydi1oZHItY250cixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtc2Vydi1oZHItY250ciB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q4ZDhkODtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLXNlcnYtaGRyLWNudHIgLm90LXZuZC1zZXJ2LWhkcixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtc2Vydi1oZHItY250ciAub3Qtdm5kLXNlcnYtaGRyIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAwLjk1ZW07XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gYnV0dG9uIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOGQ4ZDg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtOmZpcnN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgYm9yZGVyLXRvcDogdW5zZXQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtOmxhc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW06bGFzdC1jaGlsZCBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW06bGFzdC1jaGlsZCBidXR0b24ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8tY250cixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8tY250ciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMS43NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mbyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8ge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mb1tkYXRhLXZuZC1pbmZvLWtleSo9J0RQT0VtYWlsJ10sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvW2RhdGEtdm5kLWluZm8ta2V5Kj0nRFBPRW1haWwnXSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvW2RhdGEtdm5kLWluZm8ta2V5Kj0nRFBPTGluayddLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mb1tkYXRhLXZuZC1pbmZvLWtleSo9J0RQT0xpbmsnXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvIC5vdC12bmQtbGJsLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mbyAub3Qtdm5kLWxibCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8gLm90LXZuZC1jbnQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvIC5vdC12bmQtY250IHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0Lm90LXZuZC1zdWJncnAtY250LFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYub3Qtdm5kLXN1YmdycC1jbnQge1xuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3Qub3Qtdm5kLXN1YmdycC1jbnQgLm90LXZuZC1zZXJ2LWhkci1jbnRyIC5vdC12bmQtc2Vydi1oZHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2Vydi5vdC12bmQtc3ViZ3JwLWNudCAub3Qtdm5kLXNlcnYtaGRyLWNudHIgLm90LXZuZC1zZXJ2LWhkciB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3Qub3Qtdm5kLXN1YmdycC1jbnQgLm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2Vydi5vdC12bmQtc3ViZ3JwLWNudCAub3QtY2F0LWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIC5vdC12bmQtc2VydiB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmc6IDFyZW0gMC45NXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgLm90LXZuZC1zZXJ2IC5vdC12bmQtc2Vydi1oZHItY250ciB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q4ZDhkODtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgLm90LXZuZC1zZXJ2IC5vdC12bmQtc2Vydi1oZHItY250ciAub3Qtdm5kLXNlcnYtaGRyIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAwLjgycmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciAub3QtY2F0LWhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrXG4gIC5vdC1zdWJncnAtY250clxuICB1bC5vdC1zdWJncnBzXG4gIC5vdC12bmQtc2VydlxuICAub3Qtdm5kLWxzdC1jb250XG4gIC5vdC1hY2NvcmRpb24tbGF5b3V0XG4gIC5vdC1hY2MtaGRyXG4gIGRpdi5vdC1jaGtib3gge1xuICBtYXJnaW4tbGVmdDogMC44MnJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtY29uZmlnIC5vdC1hY2MtaGRyLFxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkcixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkcixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2hlY2tib3gtY29uc2VudCAub3QtYWNjLWhkciB7XG4gIHBhZGRpbmc6IDAuN3JlbSAwO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciBkaXY6Zmlyc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgZGl2OmZpcnN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciBkaXY6Zmlyc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciBkaXY6Zmlyc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgZGl2OmZpcnN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciBkaXY6Zmlyc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgZGl2OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtY29uZmlnIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciBkaXY6bGFzdC1jaGlsZCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciBkaXY6bGFzdC1jaGlsZCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2hlY2tib3gtY29uc2VudCAub3QtYWNjLWhkciBkaXY6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIgLm90LWFsd2F5cy1hY3RpdmUsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWFsd2F5cy1hY3RpdmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1hbHdheXMtYWN0aXZlLFxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWFsd2F5cy1hY3RpdmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWFsd2F5cy1hY3RpdmUsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1hbHdheXMtYWN0aXZlLFxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRyIC5vdC1hbHdheXMtYWN0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogdW5zZXQ7XG4gIHRvcDogdW5zZXQ7XG4gIHRyYW5zZm9ybTogdW5zZXQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyxcbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LXBsdXMtbWludXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyxcbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LXBsdXMtbWludXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LXBsdXMtbWludXMge1xuICB0b3A6IDA7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtYXJ3LWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWFydy1jbnRyLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtYXJ3LWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtYXJ3LWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWFydy1jbnRyLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtYXJ3LWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LWFydy1jbnRyIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHRvcDogdW5zZXQ7XG4gIHJpZ2h0OiB1bnNldDtcbiAgdHJhbnNmb3JtOiB1bnNldDtcbiAgbWFyZ2luLXRvcDogLTJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1jYXQtaGVhZGVyLFxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1jYXQtaGVhZGVyLFxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRyIC5vdC1jYXQtaGVhZGVyIHtcbiAgZmxleDogMTtcbiAgbWFyZ2luOiAwIDAuNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtY29uZmlnIC5vdC1hY2MtaGRyIC5vdC10Z2wsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC10Z2wsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2hlY2tib3gtY29uc2VudCAub3QtYWNjLWhkciAub3QtdGdsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGZsb2F0OiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIgLm90LWNoa2JveCxcbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94LFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94LFxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNoa2JveCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94LFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94LFxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRyIC5vdC1jaGtib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCAwLjVyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWwsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWwsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWwsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWwsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbDo6YmVmb3JlLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbDo6YmVmb3JlLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbDo6YmVmb3JlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIgLm90LWNoa2JveCBpbnB1dCxcbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LFxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNoa2JveCBpbnB1dCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LFxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgbGkub3Qtc3ViZ3JwIC5vdC1hY2MtaGRyIGg1Lm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIGxpLm90LXN1YmdycCAub3QtYWNjLWhkciBoNC5vdC1jYXQtaGVhZGVyIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgbGkub3Qtc3ViZ3JwIGg1IHtcbiAgdG9wOiAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMC41cmVtIDRweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtc2VsYy1hbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAwO1xuICBmbG9hdDogdW5zZXQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtc2VsYy1hbGwub3QtdG9nZ2xlLWNvbmYge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbC5vdC10b2dnbGUtY29uZi5vdC1jYXJldC1jb25mIC5vdC1zZWwtYWxsLWNoa2JveCB7XG4gIG1hcmdpbi1yaWdodDogNDhweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtc2VsYy1hbGwub3QtdG9nZ2xlLWNvbmYgLm90LXNlbC1hbGwtY2hrYm94IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLXNlbGMtYWxsLm90LXRvZ2dsZS1jb25mICNvdC1zZWxhbGwtdmVuY250ci5vdC1jaGtib3gsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbC5vdC10b2dnbGUtY29uZiAjb3Qtc2VsYWxsLXZlbmNudHIub3QtdGdsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICByaWdodDogdW5zZXQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZsb2F0OiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbC5vdC10b2dnbGUtY29uZiAjb3Qtc2VsYWxsLXZlbmNudHIgbGFiZWwge1xuICB3aWR0aDogNDVweDtcbiAgaGVpZ2h0OiAyNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbCAub3Qtc2VsLWFsbC1jaGtib3gge1xuICBtYXJnaW4tcmlnaHQ6IDExcHg7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbCAuc2VsLWFsbC1oZHIge1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgZm9udC1zaXplOiAwLjgxMmVtO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLWxpc3QtY250ICNvdC1zZWxhbGwtdmVuY250ci5vdC1jaGtib3gge1xuICBmbG9hdDogdW5zZXQ7XG4gIHJpZ2h0OiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrW2Rpcj0ncnRsJ10gI290LWJhY2stYXJ3LFxuI29uZXRydXN0LXBjLXNka1tkaXI9J3J0bCddIGlucHV0IH4gLm90LWFjYy1oZHIgLm90LWFydyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGtbZGlyPSdydGwnXSBpbnB1dDpjaGVja2VkIH4gLm90LWFjYy1oZHIgLm90LWFydyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGtbZGlyPSdydGwnXSAub3QtY2hrYm94IGxhYmVsOjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIGJvcmRlci1yaWdodDogM3B4IHNvbGlkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrW2Rpcj0ncnRsJ10gLm90LXNlYXJjaC1jbnRyID4gc3ZnIHtcbiAgcmlnaHQ6IDA7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvdC1zZWFyY2gtY250cixcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zd2l0Y2gub3QtdG9nZ2xlLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgb3QtZ3JwLWhkcjEgLmNoZWNrYm94LFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LXBjLXRpdGxlOmFmdGVyLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LXNlbC1ibGssXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtZmx0ci1jbnQsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtYW5jaG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgaDMsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBoNCxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIGg1LFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgaDYsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBwLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LXZlbi1sc3QgLm90LXZlbi1vcHRzIHAsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy10aXRsZSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1saS10aXRsZSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWwtYWxsLWhkciBzcGFuLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LWhvc3QtbHN0IC5vdC1ob3N0LWluZm8sXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtZmx0ci1tb2RhbCAjbW9kYWwtaGVhZGVyLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWNoZWNrYm94IGxhYmVsIHNwYW4sXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0ICNvdC1zZWwtYmxrIHAsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0ICNvdC1sc3QtdGl0bGUgaDMsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5iYWNrLWJ0bi1oYW5kbGVyIHAsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12ZW4tbmFtZSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgI290LXZlbi1sc3QgLmNvbnNlbnQtY2F0ZWdvcnksXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtbGVnLWJ0bi1jb250YWluZXIgLm90LWluYWN0aXZlLWxlZy1idG4sXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtbGFiZWwtc3RhdHVzLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBsYWJlbCBzcGFuLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI2NsZWFyLWZpbHRlcnMtaGFuZGxlcixcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1vcHRvdXQtc2lnbmFsIHtcbiAgY29sb3I6ICMxZDFkMWQ7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5wcml2YWN5LW5vdGljZS1saW5rLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXBncGgtbGluayxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1ob3N0LWxpc3QtaGFuZGxlcixcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbGluayxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbGVnY2xhaW0tbGluayxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1ob3N0LWxzdCAub3QtaG9zdC1uYW1lIGEsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LWFjYy1oZHIgLm90LWhvc3QtZXhwYW5kLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LWhvc3QtbHN0IC5vdC1ob3N0LWluZm8gYSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1jb250ZW50ICNvdC1wYy1kZXNjIC5vdC1saW5rLWJ0bixcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvIGEsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm8gYSB7XG4gIGNvbG9yOiAjMDA1MmZmO1xufVxuXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LWhvc3QtaW5mbyxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtdHh0IC5vdC12ZW4tZGV0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNka1xuICAjb25ldHJ1c3QtcGMtc2RrXG4gIGJ1dHRvbjpub3QoI2NsZWFyLWZpbHRlcnMtaGFuZGxlcik6bm90KC5vdC1jbG9zZS1pY29uKTpub3QoI2ZpbHRlci1idG4taGFuZGxlcik6bm90KFxuICAgIC5vdC1yZW1vdmUtb2JqZWN0aW9uLWhhbmRsZXJcbiAgKTpub3QoLm90LW9iai1sZWctYnRuLWhhbmRsZXIpOm5vdChbYXJpYS1leHBhbmRlZF0pOm5vdCgub3QtbGluay1idG4pLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWxlZy1idG4tY29udGFpbmVyIC5vdC1hY3RpdmUtbGVnLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDUyZmY7XG4gIGJvcmRlci1jb2xvcjogIzAwNTJmZjtcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY3RpdmUtbWVudSB7XG4gIGJvcmRlci1jb2xvcjogIzAwNTJmZjtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWxlZy1idG4tY29udGFpbmVyIC5vdC1yZW1vdmUtb2JqZWN0aW9uLWhhbmRsZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1sZWctYnRuLWNvbnRhaW5lciAub3QtaW5hY3RpdmUtbGVnLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNzg4MDhlO1xuICBib3JkZXItY29sb3I6ICM3ODgwOGU7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wgaW5wdXQ6Zm9jdXMgKyAub3Qtc3dpdGNoLFxuLm90LXN3aXRjaCAub3Qtc3dpdGNoLW5vYixcbi5vdC1zd2l0Y2ggLm90LXN3aXRjaC1ub2I6YmVmb3JlLFxuI29uZXRydXN0LXBjLXNkayAub3QtY2hlY2tib3ggaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpmb2N1cyArIGxhYmVsOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpmb2N1cyArIGxhYmVsOjpiZWZvcmUge1xuICBvdXRsaW5lLWNvbG9yOiAjMDAwMDAwO1xuICBvdXRsaW5lLXdpZHRoOiAxcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtaXRlbSA+IGJ1dHRvbjpmb2N1cyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1pdGVtID4gYnV0dG9uOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgKjpmb2N1cyxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC12bHN0LWNudHIgPiBhOmZvY3VzIHtcbiAgb3V0bGluZTogdW5zZXQ7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wgaW5wdXQ6Zm9jdXMgKyAub3Qtc3dpdGNoIHtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAqOmZvY3VzLXZpc2libGUsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtdmxzdC1jbnRyID4gYTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkICMwMDVmY2MgIWltcG9ydGFudDtcbiAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXRnbCBpbnB1dDpmb2N1cy12aXNpYmxlICsgLm90LXN3aXRjaCB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCAjMDA1ZmNjICFpbXBvcnRhbnQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZsc3QtY250ciAub3QtZXh0LWxuayxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1oZHIgLm90LWV4dC1sbmsge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvbG9nb3Mvc3RhdGljL290X2V4dGVybmFsX2xpbmsuc3ZnJyk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLnBjLWxvZ28ge1xuICB3aWR0aDogMTA1cHg7XG4gIGhlaWdodDogMzhweDtcbn1cblxuZGl2Lm90LXBjLWZvb3Rlci1sb2dvIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjY29va2llLXByZWZlcmVuY2VzIC5vdC1hbHdheXMtYWN0aXZlIHtcbiAgY29sb3I6ICM2OTY5Njk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI3BjLXRpdGxlLFxuI29uZXRydXN0LXBjLXNkayAjbWFuYWdlLWNvb2tpZXMtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBtYXJnaW46IDhweCAwcHggMTZweCAwcHg7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayBkaXYjcGMtcG9saWN5LXRleHQsXG4jb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1pdGVtIHAge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrIGJ1dHRvbiNhY2NlcHQtcmVjb21tZW5kZWQtYnRuLWhhbmRsZXIsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgYnV0dG9uLm9uZXRydXN0LWNsb3NlLWJ0bi1oYW5kbGVyIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1ob3N0LWxpc3QtaGFuZGxlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLmFjY29yZGlvbi10ZXh0IC5vdC1zd2l0Y2gtbGFiZWwge1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAuc3dpdGNoLWNoZWNrYm94OmNoZWNrZWQgKyAub3Qtc3dpdGNoLWxhYmVsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLnN3aXRjaC1jaGVja2JveDpjaGVja2VkICsgLm90LXN3aXRjaC1sYWJlbCAub3Qtc3dpdGNoLW5vYiB7XG4gIGJvcmRlci1jb2xvcjogIzAwNTJmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTJmZjtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5IHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5Lm90UmVsRm9udCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5IGgzLFxuLm90LXNkay1jb29raWUtcG9saWN5IGg0LFxuLm90LXNkay1jb29raWUtcG9saWN5IGg2LFxuLm90LXNkay1jb29raWUtcG9saWN5IHAsXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgbGksXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgYSxcbi5vdC1zZGstY29va2llLXBvbGljeSB0aCxcbi5vdC1zZGstY29va2llLXBvbGljeSAjY29va2llLXBvbGljeS1kZXNjcmlwdGlvbixcbi5vdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvb2tpZS1wb2xpY3ktZ3JvdXAsXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgI2Nvb2tpZS1wb2xpY3ktdGl0bGUge1xuICBjb2xvcjogZGltZ3JheTtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5ICNjb29raWUtcG9saWN5LWRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDQge1xuICBmb250LXNpemU6IDEuMmVtO1xufVxuXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDYge1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luLXRvcDogMmVtO1xufVxuXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGgge1xuICBtaW4td2lkdGg6IDc1cHg7XG59XG5cbi5vdC1zZGstY29va2llLXBvbGljeSBhLFxuLm90LXNkay1jb29raWUtcG9saWN5IGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGhlYWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNmY0O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5IC5vdC1tb2JpbGUtYm9yZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5IHNlY3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG5cbi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogaW5oZXJpdDtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5W2Rpcj0ncnRsJ10ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ub3QtZmxvYXRpbmctYnV0dG9uX19mcm9udCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9jZG4uY29va2llbGF3Lm9yZy9sb2dvcy9zdGF0aWMvb3RfcGVyc2lzdGVudF9jb29raWVfaWNvbi5wbmcnKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzZweCkge1xuICAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNka1xuICAgICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50XG4gICAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAgICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIsXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrXG4gICAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgICAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwXG4gICAgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlciB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGtcbiAgICAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLXBhcmVudFxuICAgICNvbmV0cnVzdC1idXR0b24tZ3JvdXBcbiAgICAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDI0cHg7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy10b3A6IDI0cHg7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5LXRleHQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyNHB4O1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWNsb3NlLWJ0bi1jb250YWluZXIge1xuICAgIHRvcDogMjRweDtcbiAgICByaWdodDogMjRweDtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1ndi1saXN0LWhhbmRsZXIsXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIDpub3QoLm90LWRwZC1kZXNjKSA+IC5vdC1iLWFkZGwtZGVzYyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkay5vdEZsb2F0aW5nUm91bmRlZCxcbiAgI29uZXRydXN0LWJhbm5lci1zZGsub3RGbG9hdGluZ1JvdW5kZWRbZGlyPSdydGwnXSB7XG4gICAgYm90dG9tOiAxcmVtO1xuICAgIHdpZHRoOiA5MiU7XG4gICAgbGVmdDogNCU7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLXJvdyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3kge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLXBhcmVudCxcbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWRwZC1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgI29uZXRydXN0LXBjLXNkay5vdFBjQ2VudGVyIHtcbiAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XG4gIH1cblxuICAjb25ldHJ1c3QtcGMtc2RrICNvdC1jYXRlZ29yeS10aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDU2cHg7XG4gIH1cbn1cblxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGIwZDtcbiAgYm94LXNoYWRvdzogMHB4IDRweCAxMnB4IDBweCAjYTVhYWI2MzM7XG59XG5cbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcG9saWN5LXRpdGxlLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wb2xpY3ktdGV4dCxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAub3QtYi1hZGRsLWRlc2MsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LWRwZC1kZXNjLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1kcGQtdGl0bGUsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgI2Jhbm5lci1vcHRpb25zICosXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWNhdC1oZWFkZXIsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LW9wdG91dC1zaWduYWwge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIGFbaHJlZl0sXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgYVtocmVmXSBmb250LFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1saW5rLWJ0biB7XG4gIGNvbG9yOiAjNTc4YmZhO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIge1xuICBvcmRlcjogMTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGEwYjBkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtaW4td2lkdGg6IGF1dG87XG4gIG91dGxpbmU6IG5vbmU7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyOmhvdmVyLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrXG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50XG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXBcbiAgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NzhiZmEgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNTc4YmZhICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMGEwYjBkICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGssXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI290LXNlYXJjaC1jbnRyLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXN3aXRjaC5vdC10b2dnbGUsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBvdC1ncnAtaGRyMSAuY2hlY2tib3gsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtdGl0bGU6YWZ0ZXIsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsLWJsayxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1mbHRyLWNudCxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1hbmNob3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGEwYjBkO1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBoMyxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIGg0LFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgaDUsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBoNixcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIHAsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtdmVuLWxzdCAub3QtdmVuLW9wdHMgcCxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1kZXNjLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LXBjLXRpdGxlLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWxpLXRpdGxlLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXNlbC1hbGwtaGRyIHNwYW4sXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LWhvc3QtaW5mbyxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1mbHRyLW1vZGFsICNtb2RhbC1oZWFkZXIsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtY2hlY2tib3ggbGFiZWwgc3BhbixcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgI290LXNlbC1ibGsgcCxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgI290LWxzdC10aXRsZSBoMyxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLmJhY2stYnRuLWhhbmRsZXIgcCxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZlbi1uYW1lLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrXG4gICNvbmV0cnVzdC1wYy1zZGtcbiAgI290LXBjLWxzdFxuICAjb3QtdmVuLWxzdFxuICAuY29uc2VudC1jYXRlZ29yeSxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKVxuICB+ICNvbmV0cnVzdC1jb25zZW50LXNka1xuICAjb25ldHJ1c3QtcGMtc2RrXG4gIC5vdC1sZWctYnRuLWNvbnRhaW5lclxuICAub3QtaW5hY3RpdmUtbGVnLWJ0bixcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1sYWJlbC1zdGF0dXMsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsIHNwYW4sXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjY2xlYXItZmlsdGVycy1oYW5kbGVyLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LW9wdG91dC1zaWduYWwge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLnByaXZhY3ktbm90aWNlLWxpbmssXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtcGdwaC1saW5rLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLmNhdGVnb3J5LWhvc3QtbGlzdC1oYW5kbGVyLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1saW5rLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1sZWdjbGFpbS1saW5rLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LWhvc3QtbHN0IC5vdC1ob3N0LW5hbWUgYSxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKVxuICB+ICNvbmV0cnVzdC1jb25zZW50LXNka1xuICAjb25ldHJ1c3QtcGMtc2RrXG4gICNvdC1ob3N0LWxzdFxuICAub3QtYWNjLWhkclxuICAub3QtaG9zdC1leHBhbmQsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LWhvc3QtaW5mbyBhLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrXG4gICNvbmV0cnVzdC1wYy1zZGtcbiAgI290LXBjLWNvbnRlbnRcbiAgI290LXBjLWRlc2NcbiAgLm90LWxpbmstYnRuLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrXG4gICNvbmV0cnVzdC1wYy1zZGtcbiAgLm90LXZuZC1zZXJ2XG4gIC5vdC12bmQtaXRlbVxuICAub3Qtdm5kLWluZm9cbiAgYSxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC12bmQtaW5mbyBhIHtcbiAgY29sb3I6ICM1NzhiZmE7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgI29uZXRydXN0LXBjLXNka1xuICBidXR0b246bm90KCNjbGVhci1maWx0ZXJzLWhhbmRsZXIpOm5vdCgub3QtY2xvc2UtaWNvbik6bm90KCNmaWx0ZXItYnRuLWhhbmRsZXIpOm5vdChcbiAgICAub3QtcmVtb3ZlLW9iamVjdGlvbi1oYW5kbGVyXG4gICk6bm90KC5vdC1vYmotbGVnLWJ0bi1oYW5kbGVyKTpub3QoW2FyaWEtZXhwYW5kZWRdKTpub3QoLm90LWxpbmstYnRuKSxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKVxuICB+ICNvbmV0cnVzdC1jb25zZW50LXNka1xuICAjb25ldHJ1c3QtcGMtc2RrXG4gIC5vdC1sZWctYnRuLWNvbnRhaW5lclxuICAub3QtYWN0aXZlLWxlZy1idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTc4YmZhO1xuICBib3JkZXItY29sb3I6ICM1NzhiZmE7XG4gIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gIGNvbG9yOiAjMGEwYjBkO1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgI29uZXRydXN0LXBjLXNka1xuICAub3QtdGdsXG4gIGlucHV0OmNoZWNrZWRcbiAgKyAub3Qtc3dpdGNoXG4gIC5vdC1zd2l0Y2gtbm9iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU3OGJmYSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrXG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50XG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXBcbiAgI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMGEwYjBkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDQwcHggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzZweCkge1xuICAjcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgICB+ICNvbmV0cnVzdC1jb25zZW50LXNka1xuICAgICNvbmV0cnVzdC1iYW5uZXItc2RrXG4gICAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgICAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwXG4gICAgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlcixcbiAgI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gICAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgICAjb25ldHJ1c3QtYmFubmVyLXNka1xuICAgICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50XG4gICAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAgICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJQQ0N1c3RvbUNTUyI6Ii8qIFxuXHRPbmUgVHJ1c3QgQ29pbmJhc2Vcblx0VGhlc2Ugc3R5bGVzIGFyZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IE9uZSBUcnVzdCBzdHlsZXMgZm9yIENvaW5iYXNlLlxuXHRFdmVyeXRpbWUgd2UgdXBkYXRlIHRoZSBCYW5uZXIgYW5kIE1vZGFsIHN0eWxlcywgd2Ugc2hvdWxkIHVwZGF0ZSB0aGVzZSBzdHlsZXMuXG5cdENvcHkgdGhlc2Ugc3R5bGVzIHRvIHRoZSBDb2luYmFzZSB0ZW1wbGF0ZSBpbiBPbmVUcnVzdC5cbiovXG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIHtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgZm9udC1mYW1pbHk6XG4gICAgQ29pbmJhc2VTYW5zLFxuICAgIC1hcHBsZS1zeXN0ZW0sXG4gICAgQmxpbmtNYWNTeXN0ZW1Gb250LFxuICAgICdTZWdvZSBVSScsXG4gICAgUm9ib3RvLFxuICAgIE94eWdlbixcbiAgICBVYnVudHUsXG4gICAgQ2FudGFyZWxsLFxuICAgICdGaXJhIFNhbnMnLFxuICAgICdEcm9pZCBTYW5zJyxcbiAgICAnSGVsdmV0aWNhIE5ldWUnLFxuICAgIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbn1cblxuI29uZXRydXN0LXBjLXNkayB7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OlxuICAgIENvaW5iYXNlU2FucyxcbiAgICAtYXBwbGUtc3lzdGVtLFxuICAgIEJsaW5rTWFjU3lzdGVtRm9udCxcbiAgICAnU2Vnb2UgVUknLFxuICAgIFJvYm90byxcbiAgICBPeHlnZW4sXG4gICAgVWJ1bnR1LFxuICAgIENhbnRhcmVsbCxcbiAgICAnRmlyYSBTYW5zJyxcbiAgICAnRHJvaWQgU2FucycsXG4gICAgJ0hlbHZldGljYSBOZXVlJyxcbiAgICBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyIHtcbiAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAub3QtYm5yLWxvZ28ge1xuICBoZWlnaHQ6IDY0cHg7XG4gIHdpZHRoOiA2NHB4O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtdGNmMi12ZW5kb3ItY291bnQub3QtdGV4dC1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1jbG9zZS1pY29uLFxuI29uZXRydXN0LXBjLXNkayAub3QtY2xvc2UtaWNvbixcbiNvdC1zeW5jLW50ZnkgLm90LWNsb3NlLWljb24ge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMnB4O1xuICB3aWR0aDogMTJweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLnBvd2VyZWQtYnktbG9nbyxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1wYy1mb290ZXItbG9nbyBhLFxuI29uZXRydXN0LXBjLXNkayAucG93ZXJlZC1ieS1sb2dvLFxuI29uZXRydXN0LXBjLXNkayAub3QtcGMtZm9vdGVyLWxvZ28gYSxcbiNvdC1zeW5jLW50ZnkgLnBvd2VyZWQtYnktbG9nbyxcbiNvdC1zeW5jLW50ZnkgLm90LXBjLWZvb3Rlci1sb2dvIGEge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgaGVpZ2h0OiAyNXB4O1xuICB3aWR0aDogMTUycHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAucG93ZXJlZC1ieS1sb2dvOmhvdmVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXBjLWZvb3Rlci1sb2dvIGE6aG92ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5wb3dlcmVkLWJ5LWxvZ286aG92ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXItbG9nbyBhOmhvdmVyLFxuI290LXN5bmMtbnRmeSAucG93ZXJlZC1ieS1sb2dvOmhvdmVyLFxuI290LXN5bmMtbnRmeSAub3QtcGMtZm9vdGVyLWxvZ28gYTpob3ZlciB7XG4gIGNvbG9yOiAjNTY1NjU2O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoMyAqLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaDQgKixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGg2ICosXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24gKixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGFbZGF0YS1wYXJlbnQtaWRdICosXG4jb25ldHJ1c3QtcGMtc2RrIGgzICosXG4jb25ldHJ1c3QtcGMtc2RrIGg0ICosXG4jb25ldHJ1c3QtcGMtc2RrIGg2ICosXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbiAqLFxuI29uZXRydXN0LXBjLXNkayBhW2RhdGEtcGFyZW50LWlkXSAqLFxuI290LXN5bmMtbnRmeSBoMyAqLFxuI290LXN5bmMtbnRmeSBoNCAqLFxuI290LXN5bmMtbnRmeSBoNiAqLFxuI290LXN5bmMtbnRmeSBidXR0b24gKixcbiNvdC1zeW5jLW50ZnkgYVtkYXRhLXBhcmVudC1pZF0gKiB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtaGlkZSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhpZGUsXG4jb3Qtc3luYy1udGZ5IC5vdC1oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24ub3QtbGluay1idG46aG92ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbi5vdC1saW5rLWJ0bjpob3ZlcixcbiNvdC1zeW5jLW50ZnkgYnV0dG9uLm90LWxpbmstYnRuOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIG9wYWNpdHk6IDE7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1yb3cgLm90LXNkay1jb2x1bW4ge1xuICBwYWRkaW5nOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBnYXA6IDFlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayBbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkLFxuI29uZXRydXN0LXBjLXNkayBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpIHtcbiAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgW3R5cGU9J2NoZWNrYm94J106ZGlzYWJsZWQgKyBsYWJlbDo6YmVmb3JlLFxuI29uZXRydXN0LXBjLXNkayBbdHlwZT0nY2hlY2tib3gnXTpkaXNhYmxlZCArIGxhYmVsOmFmdGVyLFxuI29uZXRydXN0LXBjLXNkayBbdHlwZT0nY2hlY2tib3gnXTpkaXNhYmxlZCArIGxhYmVsIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuI29uZXRydXN0LXBjLXNkayBsaSBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgei1pbmRleDogMTtcbn1cblxuI29uZXRydXN0LXBjLXNkayBsaSAub3QtY2hlY2tib3ggbGFiZWwge1xuICB6LWluZGV4OiAyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGxpIC5vdC1jaGVja2JveCBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayBsaSAuaG9zdC10aXRsZSBhLFxuI29uZXRydXN0LXBjLXNkayBsaSAub3QtaG9zdC1uYW1lIGEsXG4jb25ldHJ1c3QtcGMtc2RrIGxpIC5hY2NvcmRpb24tdGV4dCxcbiNvbmV0cnVzdC1wYy1zZGsgbGkgLm90LWFjYy10eHQge1xuICB6LWluZGV4OiAyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXQge1xuICBtYXJnaW46IDNweCAwLjFleDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAucGMtbG9nbyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLWxvZ28ge1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiAxODBweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAucGMtbG9nbyBpbWcsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1sb2dvIGltZyB7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAuc2NyZWVuLXJlYWRlci1vbmx5LFxuI29uZXRydXN0LXBjLXNkayAub3Qtc2Nybi1yZHIsXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgLnNjcmVlbi1yZWFkZXItb25seSxcbi5vdC1zZGstY29va2llLXBvbGljeSAub3Qtc2Nybi1yZHIge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdC1mYWRlLWluLFxuLm9uZXRydXN0LXBjLWRhcmstZmlsdGVyLm90LWZhZGUtaW4sXG4jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1mYWRlLWluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IG9uZXRydXN0LWZhZGUtaW47XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5vbmV0cnVzdC1wYy1kYXJrLWZpbHRlci5vdC1oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4jb3Qtc2RrLWJ0bi5vdC1zZGstc2hvdy1zZXR0aW5ncyxcbiNvdC1zZGstYnRuLm9wdGFub24tc2hvdy1zZXR0aW5ncyB7XG4gIGNvbG9yOiAjMDA1MmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDA1MmZmO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgcGFkZGluZzogMC44ZW0gMmVtO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC1tb3otdHJhbnNpdGlvbjogMC4xcyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiAwLjFzIGVhc2U7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMXMgZWFzZTtcbiAgdHJhbnNpdGlvbjogMC4xcyBlYXNlO1xufVxuXG4jb3Qtc2RrLWJ0bi5vdC1zZGstc2hvdy1zZXR0aW5nczpob3ZlcixcbiNvdC1zZGstYnRuLm9wdGFub24tc2hvdy1zZXR0aW5nczpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1MmZmO1xufVxuXG4ub25ldHJ1c3QtcGMtZGFyay1maWx0ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHotaW5kZXg6IDIxNDc0ODM2NDY7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG5cbkBrZXlmcmFtZXMgb25ldHJ1c3QtZmFkZS1pbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ub3QtY29va2llLWxhYmVsIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDI2cHgpIGFuZCAobWF4LXdpZHRoOiA4OTZweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICNvbmV0cnVzdC1wYy1zZGsgcCB7XG4gICAgZm9udC1zaXplOiAwLjc1ZW07XG4gIH1cbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taW5wdXQ6Zm9jdXMgKyBsYWJlbCB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCAjMDAwO1xuICBvdXRsaW5lLXN0eWxlOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC11c2VyaWQtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC11c2VyaWQtdGl0bGUgPiBzcGFuLFxuI29uZXRydXN0LXBjLXNkayAub3QtdXNlcmlkLXRpbWVzdGFtcCA+IHNwYW4ge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC11c2VyaWQtZGVzYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1kZXNjIGEge1xuICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWhkciA+IHAgYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8gYSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mbyBhIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXItbG9nbyBpbWcge1xuICB3aWR0aDogMTM2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcHVyLXZkci1jb3VudCB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBwYWRkaW5nLXRvcDogM3B4O1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LW9wdG91dC1zaWduYWwsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1vcHRvdXQtc2lnbmFsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMyYWU4ODtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBwYWRkaW5nOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWZmZmE7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDI7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1vcHRvdXQtc2lnbmFsIC5vdC1vcHRvdXQtaWNvbixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LW9wdG91dC1zaWduYWwgLm90LW9wdG91dC1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LW9wdG91dC1zaWduYWwgc3ZnLFxuI29uZXRydXN0LXBjLXNkayAub3Qtb3B0b3V0LXNpZ25hbCBzdmcge1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1vcHRvdXQtc2lnbmFsIHN2ZyBwYXRoLFxuI29uZXRydXN0LXBjLXNkayAub3Qtb3B0b3V0LXNpZ25hbCBzdmcgcGF0aCB7XG4gIGZpbGw6ICMzMmFlODg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrLFxuI29uZXRydXN0LXBjLXNkayxcbiNvdC1zeW5jLW50Znkge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICosXG4jb25ldHJ1c3QtYmFubmVyLXNkayA6OmFmdGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrICosXG4jb25ldHJ1c3QtcGMtc2RrIDo6YWZ0ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIDo6YmVmb3JlLFxuI290LXN5bmMtbnRmeSAqLFxuI290LXN5bmMtbnRmeSA6OmFmdGVyLFxuI290LXN5bmMtbnRmeSA6OmJlZm9yZSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBkaXYsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBzcGFuLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaDEsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoMixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGgzLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaDQsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoNSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGg2LFxuI29uZXRydXN0LWJhbm5lci1zZGsgcCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGltZyxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIHN2ZyxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIHNlY3Rpb24sXG4jb25ldHJ1c3QtYmFubmVyLXNkayBhLFxuI29uZXRydXN0LWJhbm5lci1zZGsgbGFiZWwsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIHVsLFxuI29uZXRydXN0LWJhbm5lci1zZGsgbGksXG4jb25ldHJ1c3QtYmFubmVyLXNkayBuYXYsXG4jb25ldHJ1c3QtYmFubmVyLXNkayB0YWJsZSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIHRoZWFkLFxuI29uZXRydXN0LWJhbm5lci1zZGsgdHIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayB0ZCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIHRib2R5LFxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LW1haW4tY29udGVudCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC10b2dnbGUsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb3QtY29udGVudCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvdC1wYy1jb250ZW50LFxuI29uZXRydXN0LWJhbm5lci1zZGsgLmNoZWNrYm94LFxuI29uZXRydXN0LXBjLXNkayBkaXYsXG4jb25ldHJ1c3QtcGMtc2RrIHNwYW4sXG4jb25ldHJ1c3QtcGMtc2RrIGgxLFxuI29uZXRydXN0LXBjLXNkayBoMixcbiNvbmV0cnVzdC1wYy1zZGsgaDMsXG4jb25ldHJ1c3QtcGMtc2RrIGg0LFxuI29uZXRydXN0LXBjLXNkayBoNSxcbiNvbmV0cnVzdC1wYy1zZGsgaDYsXG4jb25ldHJ1c3QtcGMtc2RrIHAsXG4jb25ldHJ1c3QtcGMtc2RrIGltZyxcbiNvbmV0cnVzdC1wYy1zZGsgc3ZnLFxuI29uZXRydXN0LXBjLXNkayBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIHNlY3Rpb24sXG4jb25ldHJ1c3QtcGMtc2RrIGEsXG4jb25ldHJ1c3QtcGMtc2RrIGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayBpbnB1dCxcbiNvbmV0cnVzdC1wYy1zZGsgdWwsXG4jb25ldHJ1c3QtcGMtc2RrIGxpLFxuI29uZXRydXN0LXBjLXNkayBuYXYsXG4jb25ldHJ1c3QtcGMtc2RrIHRhYmxlLFxuI29uZXRydXN0LXBjLXNkayB0aGVhZCxcbiNvbmV0cnVzdC1wYy1zZGsgdHIsXG4jb25ldHJ1c3QtcGMtc2RrIHRkLFxuI29uZXRydXN0LXBjLXNkayB0Ym9keSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LW1haW4tY29udGVudCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXRvZ2dsZSxcbiNvbmV0cnVzdC1wYy1zZGsgI290LWNvbnRlbnQsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1jb250ZW50LFxuI29uZXRydXN0LXBjLXNkayAuY2hlY2tib3gsXG4jb3Qtc3luYy1udGZ5IGRpdixcbiNvdC1zeW5jLW50Znkgc3BhbixcbiNvdC1zeW5jLW50ZnkgaDEsXG4jb3Qtc3luYy1udGZ5IGgyLFxuI290LXN5bmMtbnRmeSBoMyxcbiNvdC1zeW5jLW50ZnkgaDQsXG4jb3Qtc3luYy1udGZ5IGg1LFxuI290LXN5bmMtbnRmeSBoNixcbiNvdC1zeW5jLW50ZnkgcCxcbiNvdC1zeW5jLW50ZnkgaW1nLFxuI290LXN5bmMtbnRmeSBzdmcsXG4jb3Qtc3luYy1udGZ5IGJ1dHRvbixcbiNvdC1zeW5jLW50Znkgc2VjdGlvbixcbiNvdC1zeW5jLW50ZnkgYSxcbiNvdC1zeW5jLW50ZnkgbGFiZWwsXG4jb3Qtc3luYy1udGZ5IGlucHV0LFxuI290LXN5bmMtbnRmeSB1bCxcbiNvdC1zeW5jLW50ZnkgbGksXG4jb3Qtc3luYy1udGZ5IG5hdixcbiNvdC1zeW5jLW50ZnkgdGFibGUsXG4jb3Qtc3luYy1udGZ5IHRoZWFkLFxuI290LXN5bmMtbnRmeSB0cixcbiNvdC1zeW5jLW50ZnkgdGQsXG4jb3Qtc3luYy1udGZ5IHRib2R5LFxuI290LXN5bmMtbnRmeSAub3QtbWFpbi1jb250ZW50LFxuI290LXN5bmMtbnRmeSAub3QtdG9nZ2xlLFxuI290LXN5bmMtbnRmeSAjb3QtY29udGVudCxcbiNvdC1zeW5jLW50ZnkgI290LXBjLWNvbnRlbnQsXG4jb3Qtc3luYy1udGZ5IC5jaGVja2JveCB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGNsZWFyOiBub25lO1xuICBmbG9hdDogbm9uZTtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgdG9wOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtaW5kZW50OiAwO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHotaW5kZXg6IGF1dG87XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGxhYmVsOmJlZm9yZSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGxhYmVsOmFmdGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLmNoZWNrYm94OmFmdGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLmNoZWNrYm94OmJlZm9yZSxcbiNvbmV0cnVzdC1wYy1zZGsgbGFiZWw6YmVmb3JlLFxuI29uZXRydXN0LXBjLXNkayBsYWJlbDphZnRlcixcbiNvbmV0cnVzdC1wYy1zZGsgLmNoZWNrYm94OmFmdGVyLFxuI29uZXRydXN0LXBjLXNkayAuY2hlY2tib3g6YmVmb3JlLFxuI290LXN5bmMtbnRmeSBsYWJlbDpiZWZvcmUsXG4jb3Qtc3luYy1udGZ5IGxhYmVsOmFmdGVyLFxuI290LXN5bmMtbnRmeSAuY2hlY2tib3g6YWZ0ZXIsXG4jb3Qtc3luYy1udGZ5IC5jaGVja2JveDpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgY29udGVudDogbm9uZTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb250YWluZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAyMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbHVtbixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29sdW1ucyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb2x1bW4sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29sdW1ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogaW5pdGlhbDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQwMHB4KSB7XG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTAlO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU1MHB4KSB7XG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29sdW1uLFxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbHVtbnMsXG4gICNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb2x1bW4sXG4gICNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb2x1bW5zIHtcbiAgICBtYXJnaW4tbGVmdDogNCU7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb2x1bW5zOmZpcnN0LWNoaWxkLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29sdW1uOmZpcnN0LWNoaWxkLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29sdW1uczpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLXR3by5vdC1zZGstY29sdW1ucyxcbiAgI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLXR3by5vdC1zZGstY29sdW1ucyB7XG4gICAgd2lkdGg6IDEzLjMzMzMzMzMzMzMlO1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay10aHJlZS5vdC1zZGstY29sdW1ucyxcbiAgI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLXRocmVlLm90LXNkay1jb2x1bW5zIHtcbiAgICB3aWR0aDogMjIlO1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1mb3VyLm90LXNkay1jb2x1bW5zLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstZm91ci5vdC1zZGstY29sdW1ucyB7XG4gICAgd2lkdGg6IDMwLjY2NjY2NjY2NjclO1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1laWdodC5vdC1zZGstY29sdW1ucyxcbiAgI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWVpZ2h0Lm90LXNkay1jb2x1bW5zIHtcbiAgICB3aWR0aDogNjUuMzMzMzMzMzMzMyU7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLW5pbmUub3Qtc2RrLWNvbHVtbnMsXG4gICNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1uaW5lLm90LXNkay1jb2x1bW5zIHtcbiAgICB3aWR0aDogNzQlO1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay10ZW4ub3Qtc2RrLWNvbHVtbnMsXG4gICNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay10ZW4ub3Qtc2RrLWNvbHVtbnMge1xuICAgIHdpZHRoOiA4Mi42NjY2NjY2NjY3JTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstZWxldmVuLm90LXNkay1jb2x1bW5zLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstZWxldmVuLm90LXNkay1jb2x1bW5zIHtcbiAgICB3aWR0aDogOTEuMzMzMzMzMzMzMyU7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLXR3ZWx2ZS5vdC1zZGstY29sdW1ucyxcbiAgI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLXR3ZWx2ZS5vdC1zZGstY29sdW1ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgaDEsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoMixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGgzLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaDQsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoNSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGg2LFxuI29uZXRydXN0LXBjLXNkayBoMSxcbiNvbmV0cnVzdC1wYy1zZGsgaDIsXG4jb25ldHJ1c3QtcGMtc2RrIGgzLFxuI29uZXRydXN0LXBjLXNkayBoNCxcbiNvbmV0cnVzdC1wYy1zZGsgaDUsXG4jb25ldHJ1c3QtcGMtc2RrIGg2IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGgxLFxuI29uZXRydXN0LXBjLXNkayBoMSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoMixcbiNvbmV0cnVzdC1wYy1zZGsgaDIge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGgzLFxuI29uZXRydXN0LXBjLXNkayBoMyB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoNCxcbiNvbmV0cnVzdC1wYy1zZGsgaDQge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGg1LFxuI29uZXRydXN0LXBjLXNkayBoNSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBoNixcbiNvbmV0cnVzdC1wYy1zZGsgaDYge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU1MHB4KSB7XG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGgxLFxuICAjb25ldHJ1c3QtcGMtc2RrIGgxIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGgyLFxuICAjb25ldHJ1c3QtcGMtc2RrIGgyIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGgzLFxuICAjb25ldHJ1c3QtcGMtc2RrIGgzIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGg0LFxuICAjb25ldHJ1c3QtcGMtc2RrIGg0IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGg1LFxuICAjb25ldHJ1c3QtcGMtc2RrIGg1IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIGg2LFxuICAjb25ldHJ1c3QtcGMtc2RrIGg2IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBwLFxuI29uZXRydXN0LXBjLXNkayBwIHtcbiAgbWFyZ2luOiAwIDAgMWVtIDA7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBhLFxuI29uZXRydXN0LXBjLXNkayBhIHtcbiAgY29sb3I6ICM1NjU2NTY7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGE6aG92ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIGE6aG92ZXIge1xuICBjb2xvcjogIzU2NTY1NjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1idXR0b24sXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uLFxuI29uZXRydXN0LXBjLXNkayBidXR0b24ge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1idXR0b24sXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uLFxuI29uZXRydXN0LXBjLXNkayBidXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMzhweDtcbiAgcGFkZGluZzogMCAzMHB4O1xuICBjb2xvcjogIzU1NTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMzhweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1idXR0b246aG92ZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayA6bm90KC5vdC1sZWctYnRuLWNvbnRhaW5lcikgPiBidXR0b246bm90KC5vdC1saW5rLWJ0bik6aG92ZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayA6bm90KC5vdC1sZWctYnRuLWNvbnRhaW5lcikgPiBidXR0b246bm90KC5vdC1saW5rLWJ0bik6Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uOmhvdmVyLFxuI29uZXRydXN0LXBjLXNkayA6bm90KC5vdC1sZWctYnRuLWNvbnRhaW5lcikgPiBidXR0b246bm90KC5vdC1saW5rLWJ0bik6aG92ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIDpub3QoLm90LWxlZy1idG4tY29udGFpbmVyKSA+IGJ1dHRvbjpub3QoLm90LWxpbmstYnRuKTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMTRjZWM7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIDpub3QoLm90LWxlZy1idG4tY29udGFpbmVyKSA+IGJ1dHRvbjpub3QoLm90LWxpbmstYnRuKTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstYnV0dG9uOmZvY3VzLFxuI29uZXRydXN0LWJhbm5lci1zZGsgOm5vdCgub3QtbGVnLWJ0bi1jb250YWluZXIpID4gYnV0dG9uOmZvY3VzLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWJ1dHRvbjpmb2N1cyxcbiNvbmV0cnVzdC1wYy1zZGsgOm5vdCgub3QtbGVnLWJ0bi1jb250YWluZXIpID4gYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkICMwMDA7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnksXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSdzdWJtaXQnXS5vdC1zZGstYnV0dG9uLXByaW1hcnksXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSdyZXNldCddLm90LXNkay1idXR0b24tcHJpbWFyeSxcbiNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9J2J1dHRvbiddLm90LXNkay1idXR0b24tcHJpbWFyeSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1idXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5LFxuI29uZXRydXN0LXBjLXNkayBidXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5LFxuI29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPSdzdWJtaXQnXS5vdC1zZGstYnV0dG9uLXByaW1hcnksXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J3Jlc2V0J10ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5LFxuI29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPSdidXR0b24nXS5vdC1zZGstYnV0dG9uLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzYzNmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMzNjM2YwO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnk6aG92ZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT0nc3VibWl0J10ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT0ncmVzZXQnXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6aG92ZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSdidXR0b24nXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6aG92ZXIsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmZvY3VzLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT0nc3VibWl0J10ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmZvY3VzLFxuI29uZXRydXN0LWJhbm5lci1zZGsgaW5wdXRbdHlwZT0ncmVzZXQnXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSdidXR0b24nXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeTpob3ZlcixcbiNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uLm90LXNkay1idXR0b24tcHJpbWFyeTpob3ZlcixcbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT0nc3VibWl0J10ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLFxuI29uZXRydXN0LXBjLXNkayBpbnB1dFt0eXBlPSdyZXNldCddLm90LXNkay1idXR0b24tcHJpbWFyeTpob3ZlcixcbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT0nYnV0dG9uJ10ub3Qtc2RrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbi5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J3N1Ym1pdCddLm90LXNkay1idXR0b24tcHJpbWFyeTpmb2N1cyxcbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT0ncmVzZXQnXS5vdC1zZGstYnV0dG9uLXByaW1hcnk6Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J2J1dHRvbiddLm90LXNkay1idXR0b24tcHJpbWFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWVhZWRiO1xuICBib3JkZXItY29sb3I6ICMxZWFlZGI7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9J3RleHQnXSxcbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgaGVpZ2h0OiAzOHB4O1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QxZDFkMTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSd0ZXh0J10sXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J3RleHQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayBpbnB1dFt0eXBlPSd0ZXh0J106Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J3RleHQnXTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIG91dGxpbmU6IDA7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGlucHV0W3R5cGU9J2NoZWNrYm94J10sXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J2NoZWNrYm94J10ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIHVsLFxuI29uZXRydXN0LXBjLXNkayB1bCB7XG4gIGxpc3Qtc3R5bGU6IGNpcmNsZSBpbnNpZGU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIHVsLFxuI29uZXRydXN0LXBjLXNkayB1bCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgdWwgdWwsXG4jb25ldHJ1c3QtcGMtc2RrIHVsIHVsIHtcbiAgbWFyZ2luOiAxLjVyZW0gMCAxLjVyZW0gM3JlbTtcbiAgZm9udC1zaXplOiA5MCU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGxpLFxuI29uZXRydXN0LXBjLXNkayBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIHRoLFxuI29uZXRydXN0LWJhbm5lci1zZGsgdGQsXG4jb25ldHJ1c3QtcGMtc2RrIHRoLFxuI29uZXRydXN0LXBjLXNkayB0ZCB7XG4gIHBhZGRpbmc6IDEycHggMTVweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMWUxZTE7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbixcbiNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyOmFmdGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1yb3c6YWZ0ZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyOmFmdGVyLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLXJvdzphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstcm93IHtcbiAgcGFkZGluZy1yaWdodDogMjhweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1yb3csXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstcm93IHtcbiAgbWFyZ2luOiAwO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayB7XG4gIGJveC1zaGFkb3c6IDAgMCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3RGbGF0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ1O1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBtYXgtaGVpZ2h0OiA5MCU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3RGbGF0LnRvcCB7XG4gIHRvcDogMHB4O1xuICBib3R0b206IGF1dG87XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrLm90UmVsRm9udCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgPiAub3Qtc2RrLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAxMXB4O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkazo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjYzFjMWMxO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayB7XG4gIHNjcm9sbGJhci1hcnJvdy1jb2xvcjogI2MxYzFjMTtcbiAgc2Nyb2xsYmFyLWRhcmtzaGFkb3ctY29sb3I6ICNjMWMxYzE7XG4gIHNjcm9sbGJhci1mYWNlLWNvbG9yOiAjYzFjMWMxO1xuICBzY3JvbGxiYXItc2hhZG93LWNvbG9yOiAjYzFjMWMxO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5IHtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5IC5vdC1ndi1saXN0LWhhbmRsZXIge1xuICBmbG9hdDogbGVmdDtcbiAgZm9udC1zaXplOiAwLjgyZW07XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlcjogMDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3ktdGV4dCB7XG4gIGNsZWFyOiBib3RoO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDAuODhlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0ICoge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5LXRleHQgYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5LXRpdGxlLFxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0IHtcbiAgY29sb3I6IGRpbWdyYXk7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLXBhcmVudCB7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1MmZmO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MmZmO1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgbWluLXdpZHRoOiAxMjVweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHBhZGRpbmc6IDEycHggMTBweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC1zaXplOiAwLjgxM2VtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjBmMztcbiAgY29sb3I6ICMwYTBiMGQ7XG4gIGJvcmRlci1jb2xvcjogI2VlZjBmMztcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIG1pbi13aWR0aDogMTI1cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZvbnQtc2l6ZTogMC44MTNlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjBmMztcbiAgY29sb3I6ICMwYTBiMGQ7XG4gIGJvcmRlci1jb2xvcjogI2VlZjBmMztcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIG1pbi13aWR0aDogMTI1cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZvbnQtc2l6ZTogMC44MTNlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0ICNvbmV0cnVzdC1wYy1idG4taGFuZGxlciB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICMwMDUyZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG4gIG1pbi13aWR0aDogYXV0bztcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0ICNvbmV0cnVzdC1wYy1idG4taGFuZGxlcjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkICMwMDVmY2M7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vbmV0cnVzdC1jbG9zZS1idG4tdWkge1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEycHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIHBhZGRpbmc6IDEycHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vbmV0cnVzdC1jbG9zZS1idG4tdWk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub25ldHJ1c3QtY2xvc2UtYnRuLXVpOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgIzAwNWZjYztcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lcl9sb2dvIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAub3QtYm5yLWxvZ28ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGxlZnQ6IDBweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAjb25ldHJ1c3QtcG9saWN5IHtcbiAgbWFyZ2luLWxlZnQ6IDY1cHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1iLWFkZGwtZGVzYyB7XG4gIGNsZWFyOiBib3RoO1xuICBmbG9hdDogbGVmdDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNiYW5uZXItb3B0aW9ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMWVtKTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taW5wdXQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1yaWdodDogM3B4O1xuICBtYXJnaW46IDAgMCAxMHB4O1xuICBmb250LXNpemU6IDAuODJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taW5wdXQgKiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAuYmFubmVyLW9wdGlvbi1pbnB1dFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAuYmFubmVyLW9wdGlvbi1kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taW5wdXRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIC5vdC1hcnJvdy1jb250YWluZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDA7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy1sZWZ0OiAycHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAuYmFubmVyLW9wdGlvbi1oZWFkZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24taGVhZGVyIDpmaXJzdC1jaGlsZCB7XG4gIGNvbG9yOiBkaW1ncmF5O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWhlYWRlciAub3QtYXJyb3ctY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLCAwLCAwLCAwKTtcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgZGltZ3JheTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWRldGFpbHMge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDAuODNlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgcGFkZGluZzogMTBweCAwcHggNXB4IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgaGVpZ2h0OiAwcHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWRldGFpbHMgKiB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBkaW1ncmF5O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtYXJyb3ctY29udGFpbmVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLmJhbm5lci1vcHRpb24tZGV0YWlscyB7XG4gIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbiAwcztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWRwZC1jb250YWluZXIge1xuICBmbG9hdDogbGVmdDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWRwZC10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1kcGQtdGl0bGUsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtZHBkLWRlc2Mge1xuICBmb250LXNpemU6IDAuODhlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6IGRpbWdyYXk7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1kcGQtdGl0bGUgKixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1kcGQtZGVzYyAqIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3QtaWFiLTIgI29uZXRydXN0LXBvbGljeS10ZXh0ICoge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1pYWItMiAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwIGJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1jbG9zZS1idG4tbGluayB7XG4gIHBhZGRpbmctdG9wOiAyNXB4O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkay5vdC1jbG9zZS1idG4tbGluayAjb25ldHJ1c3QtY2xvc2UtYnRuLWNvbnRhaW5lciB7XG4gIHRvcDogMTVweDtcbiAgdHJhbnNmb3JtOiBub25lO1xuICByaWdodDogMTVweDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsub3QtY2xvc2UtYnRuLWxpbmsgI29uZXRydXN0LWNsb3NlLWJ0bi1jb250YWluZXIgYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGZvbnQtc2l6ZTogMC42OWVtO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5LXRleHQsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtZHBkLWRlc2MsXG4jb25ldHJ1c3QtYmFubmVyLXNkayAub3QtYi1hZGRsLWRlc2Mge1xuICBmb250LXNpemU6IDAuODEzZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1kcGQtZGVzYyB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1kcGQtZGVzYyA+IC5vdC1iLWFkZGwtZGVzYyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wb2xpY3ktdGl0bGUsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBvbGljeS10ZXh0LFxuI29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1iLWFkZGwtZGVzYyxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAub3QtZHBkLWRlc2MsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LWRwZC10aXRsZSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtYmFubmVyLXNkayAjYmFubmVyLW9wdGlvbnMgKixcbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1jYXQtaGVhZGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgLm90LW9wdG91dC1zaWduYWwge1xuICBjb2xvcjogIzFkMWQxZDtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIC5iYW5uZXItb3B0aW9uLWRldGFpbHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgYVtocmVmXSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtYmFubmVyLXNkayBhW2hyZWZdIGZvbnQsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWxpbmstYnRuIHtcbiAgY29sb3I6ICMwMDUyZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyLFxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYTBiMGQ7XG4gIGJvcmRlci1jb2xvcjogIzBhMGIwZDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtYmFubmVyLXNkayAqOmZvY3VzLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrOmZvY3VzIHtcbiAgb3V0bGluZS1jb2xvcjogIzAwMDAwMDtcbiAgb3V0bGluZS13aWR0aDogMXB4O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkay5vdEZsb2F0aW5nUm91bmRlZCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrLm90RmxvYXRpbmdSb3VuZGVkW2Rpcj0ncnRsJ10ge1xuICB3aWR0aDogNTI4cHg7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzJweCk7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrID4gZGl2ID4gZGl2Lm90LXNkay1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtZ3JvdXAtY29udGFpbmVyICNvbmV0cnVzdC1wb2xpY3ktdGV4dCxcbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1ncm91cC1jb250YWluZXIgLm90LWItYWRkbC1kZXNjIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtZ3JvdXAtY29udGFpbmVyICNvbmV0cnVzdC1wb2xpY3ktdGV4dCBhIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1ncm91cC1jb250YWluZXIgI29uZXRydXN0LXBvbGljeS10ZXh0IGE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtZ3JvdXAtY29udGFpbmVyICNvbmV0cnVzdC1wb2xpY3ktdGV4dCBhOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgIzAwNWZjYztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnQuaGFzLXJlamVjdC1hbGwtYnV0dG9uICNvbmV0cnVzdC1idXR0b24tZ3JvdXAge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrIC5vbmV0cnVzdC1iYW5uZXItb3B0aW9ucyB7XG4gIGZsb2F0OiB1bnNldDtcbiAgbWF4LXdpZHRoOiB1bnNldDtcbiAgb3JkZXI6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMWVtO1xuICB3aWR0aDogMTAwJTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnQuaGFzLXJlamVjdC1hbGwtYnV0dG9uXG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXBcbiAgYnV0dG9uIHtcbiAgcGFkZGluZzogOHB4IDE2cHg7XG4gIGhlaWdodDogNDBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtaW4td2lkdGg6IGF1dG87XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50ICNvbmV0cnVzdC1idXR0b24tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnQgI29uZXRydXN0LWJ1dHRvbi1ncm91cCBidXR0b24ge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNka1xuICAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLXBhcmVudFxuICAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwXG4gICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIge1xuICBvcmRlcjogMjtcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMTtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyIHtcbiAgb3JkZXI6IDE7XG4gIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4OiAxO1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLXBhcmVudCAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwICNvbmV0cnVzdC1wYy1idG4taGFuZGxlciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnQgI29uZXRydXN0LWJ1dHRvbi1ncm91cCAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIge1xuICBvcmRlcjogMTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtaW4td2lkdGg6IGF1dG87XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1iYW5uZXItc2RrXG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50XG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXBcbiAgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgIzAwNWZjYztcbn1cblxuI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyOmhvdmVyLFxuI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGIwZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4jb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtY2xvc2UtYnRuLWNvbnRhaW5lciB7XG4gIHJpZ2h0OiAyNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICB0b3A6IDE2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdFBjQ2VudGVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdG9wOiA1JTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiA0MCU7XG4gIG1heC13aWR0aDogNTc1cHg7XG4gIG1pbi13aWR0aDogNTc1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDIuNXB4O1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAycHggMTBweCAtM3B4ICM5OTk7XG4gIC1tb3otYm94LXNoYWRvdzogMHB4IDJweCAxMHB4IC0zcHggIzk5OTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxMHB4IC0zcHggIzk5OTtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdFBjQ2VudGVyW2Rpcj0ncnRsJ10ge1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdFJlbEZvbnQge1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LW9wdG91dC1zaWduYWwge1xuICBtYXJnaW4tdG9wOiAwLjYyNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtYWRkdGwtdmVubHN0IC5vdC1hcnctY250cixcbiNvbmV0cnVzdC1wYy1zZGsgI290LWFkZHRsLXZlbmxzdCAub3QtcGx1cy1taW51cyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhpZGUtdGdsIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1hZGR0bC12ZW5sc3QgLm90LWFydy1jbnRyICosXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1hZGR0bC12ZW5sc3QgLm90LXBsdXMtbWludXMgKixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhpZGUtdGdsICoge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWduLXZlbmxzdCAub3QtdmVuLWl0ZW0gLm90LWFjYy1oZHIge1xuICBtaW4taGVpZ2h0OiA0MHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMTBweCAxMHB4IDEwcHggMzBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOWU5ZTk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLXRpdGxlLFxuI29uZXRydXN0LXBjLXNkayAjb3QtY2F0ZWdvcnktdGl0bGUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jYXQtaGVhZGVyLFxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LXRpdGxlLFxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWhkciAub3QtdmVuLW5hbWUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hbHdheXMtYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiBkaW1ncmF5O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hbHdheXMtYWN0aXZlLWdyb3VwIC5vdC1jYXQtaGVhZGVyIHtcbiAgd2lkdGg6IDU1JTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gcCB7XG4gIGNsZWFyOiBib3RoO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LXNpemU6IDAuODEyZW07XG4gIGNvbG9yOiBkaW1ncmF5O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jbG9zZS1pY29uIHtcbiAgaGVpZ2h0OiA0NHB4O1xuICB3aWR0aDogNDRweDtcbiAgYmFja2dyb3VuZC1zaXplOiAxMnB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy10aXRsZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWRlc2Mge1xuICBjbGVhcjogYm90aDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMC44MTJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyBhIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyAqIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyB1bCBsaSB7XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGEge1xuICBjb2xvcjogIzY1NjU2NTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGE6aG92ZXIge1xuICBjb2xvcjogIzM4NjBiZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayBsYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI3Zkci1sc3QtZHNjIHtcbiAgZm9udC1zaXplOiAwLjgxMmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBwYWRkaW5nOiAxMHB4IDE1cHggNXB4IDE1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uIHtcbiAgbWF4LXdpZHRoOiAzOTRweDtcbiAgcGFkZGluZzogMTJweCAzMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1saW5rLWJ0biB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlcjogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgdG9wOiA2MHB4O1xuICBib3R0b206IDExMHB4O1xuICBtYXJnaW46IDFweCAzcHggMCAzMHB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gNjNweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LWFsd2F5cy1hY3RpdmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jYXQtZ3JwIC5vdC1hbHdheXMtYWN0aXZlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjbGVhcjogbm9uZTtcbiAgY29sb3I6ICM1YjYxNmU7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDExcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLXNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjZDhkOGQ4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J2NoZWNrYm94J106Zm9jdXMgKyAub3QtYWNjLWhkciB7XG4gIG91dGxpbmU6ICMwMDAgMXB4IHNvbGlkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1zY3JvbGxiYXIge1xuICBzY3JvbGxiYXItYXJyb3ctY29sb3I6ICNkOGQ4ZDg7XG4gIHNjcm9sbGJhci1kYXJrc2hhZG93LWNvbG9yOiAjZDhkOGQ4O1xuICBzY3JvbGxiYXItZmFjZS1jb2xvcjogI2Q4ZDhkODtcbiAgc2Nyb2xsYmFyLXNoYWRvdy1jb2xvcjogI2Q4ZDhkODtcbn1cblxuI29uZXRydXN0LXBjLXNkayAuc2F2ZS1wcmVmZXJlbmNlLWJ0bi1oYW5kbGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1kZXNjIC5wcml2YWN5LW5vdGljZS1saW5rIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1kZXNjIC5vdC1pbXByaW50LWhhbmRsZXIge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjbGVhcjogYm90aDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zd2l0Y2ggKyAub3Qtc3ViZ3JwLWNudHIge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IGluaXRpYWw7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyBsaSBwLFxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIGxpIGg1IHtcbiAgZm9udC1zaXplOiAwLjgxM2VtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogZGltZ3JheTtcbn1cblxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1zd2l0Y2gge1xuICBtaW4taGVpZ2h0OiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LXN3aXRjaC1ub2Ige1xuICB0b3A6IDA7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLXR4dCB7XG4gIG1hcmdpbjogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIGxpIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgbGkgaDUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgbGkub3Qtc3ViZ3JwIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGxpLm90LXN1YmdycCA+IGg1IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwMHB4KTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gcCA+IHVsLFxuI29uZXRydXN0LXBjLXNkayBsaS5vdC1zdWJncnAgcCA+IHVsIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGxpc3Qtc3R5bGU6IGRpc2M7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1pdGVtIHAgPiB1bCBsaSxcbiNvbmV0cnVzdC1wYy1zZGsgbGkub3Qtc3ViZ3JwIHAgPiB1bCBsaSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gcCA+IHVsIGxpOmxhc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIGxpLm90LXN1YmdycCBwID4gdWwgbGk6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1sb2dvIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcGMtZm9vdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDE2MHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q4ZDhkODtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdC1mdHItc3RhY2tlZCAub3QtcGMtcmVmdXNlLWFsbC1oYW5kbGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWZ0ci1zdGFja2VkICNvdC1wYy1jb250ZW50IHtcbiAgYm90dG9tOiAxNjBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdC1mdHItc3RhY2tlZCAub3QtcGMtZm9vdGVyIGJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtZnRyLXN0YWNrZWQgLm90LWJ0bi1jb250YWluZXIge1xuICBtYXJnaW46IDAgMzBweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDYwcHgpO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXItbG9nbyB7XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1mb290ZXItbG9nbyBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNka1tkaXI9J3J0bCddIC5vdC1wYy1mb290ZXItbG9nbyB7XG4gIGRpcmVjdGlvbjogcnRsO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrW2Rpcj0ncnRsJ10gLm90LXBjLWZvb3Rlci1sb2dvIGEge1xuICBtYXJnaW4tcmlnaHQ6IDI1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXRnbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wgaW5wdXQ6Y2hlY2tlZCArIC5vdC1zd2l0Y2ggLm90LXN3aXRjaC1ub2Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1MmZmICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXRnbCBpbnB1dDpjaGVja2VkICsgLm90LXN3aXRjaCAub3Qtc3dpdGNoLW5vYjpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNmZmY7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXRnbCBpbnB1dDpmb2N1cyArIC5vdC1zd2l0Y2gge1xuICBvdXRsaW5lOiAjMDAwIHNvbGlkIDFweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA0NXB4O1xuICBoZWlnaHQ6IDI1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDQ1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN3aXRjaC1ub2Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4gMHM7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4gMHM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbiAwcztcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc3dpdGNoLW5vYjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IDE4cHg7XG4gIHdpZHRoOiAxOHB4O1xuICBib3R0b206IDNweDtcbiAgbGVmdDogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuNHM7XG4gIHRyYW5zaXRpb246IDAuNHM7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzODYwYmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBpbnB1dCArIGxhYmVsOjphZnRlciB7XG4gIGNvbnRlbnQ6IG5vbmU7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXQ6Y2hlY2tlZCArIGxhYmVsOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXQ6Zm9jdXMgKyBsYWJlbDo6YmVmb3JlIHtcbiAgb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIG91dGxpbmUtd2lkdGg6IDJweDtcbiAgb3V0bGluZS1zdHlsZTogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggbGFiZWw6OmJlZm9yZSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBsYWJlbDo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUge1xuICBoZWlnaHQ6IDE4cHg7XG4gIHdpZHRoOiAxOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzg2MGJlO1xuICBsZWZ0OiAwcHg7XG4gIHRvcDogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsOjphZnRlciB7XG4gIGhlaWdodDogNXB4O1xuICB3aWR0aDogOXB4O1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkO1xuICBib3JkZXItYm90dG9tOiAzcHggc29saWQ7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIGxlZnQ6IDRweDtcbiAgdG9wOiA1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWxhYmVsLXR4dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBpbnB1dCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXRnbCBpbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYXJ3LWNudHIge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFydy1jbnRyIC5vdC1hcncge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBjb2xvcjogZGltZ3JheTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAxNTBtcyBlYXNlLWluIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAxNTBtcyBlYXNlLWluIDBzO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMTUwbXMgZWFzZS1pbiAwcztcbiAgdHJhbnNpdGlvbjogYWxsIDE1MG1zIGVhc2UtaW4gMHM7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXQ6Y2hlY2tlZCB+IC5vdC1hY2MtaGRyIC5vdC1hcncsXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLWhkciAub3QtYXJ3LWNudHIgc3ZnIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGlucHV0W3R5cGU9J2NoZWNrYm94J106Zm9jdXMgKyAub3QtYWNjLWhkciB7XG4gIG91dGxpbmU6ICMwMDAgMXB4IHNvbGlkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wtY250cixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFydy1jbnRyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wtY250ciB7XG4gIHdpZHRoOiA0NXB4O1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3QtdGdsLWNudHIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hbHdheXMtYWN0aXZlLXN1Ymdyb3VwIHtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gIHRvcDogM3B4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWxhYmVsLXN0YXR1cyB7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYXJ3LWNudHIge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hcnctY250ciBzdmcge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbiAwcztcbiAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4gMHM7XG4gIGhlaWdodDogMTBweDtcbiAgd2lkdGg6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgaW5wdXQ6Y2hlY2tlZCB+IC5vdC1hY2MtaGRyIC5vdC1hcncge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFydyB7XG4gIHdpZHRoOiAxMHB4O1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4gMHM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4gMHM7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW4gMHM7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluIDBzO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bHN0LWNudHIge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1obHN0LWNudHIge1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZsc3QtY250ciAub3QtZXh0LWxuayxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1oZHIgLm90LWV4dC1sbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMTNweDtcbiAgd2lkdGg6IDEzcHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4taGRyIC5vdC1leHQtbG5rIHtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAuYmFjay1idG4taGFuZGxlciB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLmJhY2stYnRuLWhhbmRsZXI6aG92ZXIge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC10aXRsZSBoMyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjb2xvcjogIzY1NjU2NTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LXRpdGxlIHtcbiAgbWFyZ2luOiAxMHB4IDAgMTBweCAwcHg7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1oZHIge1xuICBtYXJnaW46IDAgMCAwIDMwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWhkciBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2Q0ZDRkNDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICN2ZW5kb3Itc2VhcmNoLWhhbmRsZXIge1xuICBoZWlnaHQ6IDMxcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBmb250LXNpemU6IDAuOGVtO1xuICBwYWRkaW5nLXJpZ2h0OiAzNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMTVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLW5hbWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDI3cHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSA4MHB4KTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3Qge1xuICB3aWR0aDogMTAwJTtcbiAgYm90dG9tOiAxMDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDYwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdDpub3QoLm90LWVuYmwtY2hyKSAub3QtdGdsLWNudHIgLm90LWFydy1jbnRyLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0Om5vdCgub3QtZW5ibC1jaHIpIC5vdC10Z2wtY250ciAub3QtYXJ3LWNudHIgKiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC10Z2wtY250ciB7XG4gIHJpZ2h0OiAxMnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtYXJ3LWNudHIge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC1hcncge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC1hY2MtaGRyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bHN0LWNudHIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWwtYmxrIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAzO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1iYWNrLWFydyB7XG4gIGhlaWdodDogMTJweDtcbiAgd2lkdGg6IDEycHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWxzdC1zdWJoZHIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWFyY2gtY250ciB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNzglO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXNlYXJjaC1jbnRyID4gc3ZnIHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmbG9hdDogbGVmdDtcbiAgcmlnaHQ6IC0xNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1mbHRyLWNudHIge1xuICBmbG9hdDogcmlnaHQ7XG4gIHJpZ2h0OiA1MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI2ZpbHRlci1idG4taGFuZGxlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzODYwYmU7XG4gIGJvcmRlci1yYWRpdXM6IDE3cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICAtbW96LXRyYW5zaXRpb246IDAuMXMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogMC4xcyBlYXNlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDFzIGVhc2U7XG4gIHRyYW5zaXRpb246IDAuMXMgZWFzZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNmaWx0ZXItYnRuLWhhbmRsZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzg2MGJlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNmaWx0ZXItYnRuLWhhbmRsZXIgc3ZnIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgbWFyZ2luOiAzcHggMTBweCAwIDEwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICByaWdodDogYXV0bztcbiAgdG9wOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbGluayxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1sZWdjbGFpbS1saW5rIHtcbiAgY29sb3I6ICMzODYwYmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBmb250LXdlaWdodDogMTAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxJSk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDElKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDElKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxJSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWxpbmsgKixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1sZWdjbGFpbS1saW5rICoge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1saW5rOmhvdmVyLFxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWxlZ2NsYWltLWxpbms6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWhkciB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxNjBweCk7XG4gIGhlaWdodDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWxpbmssXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbGVnY2xhaW0tbGluayB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgbGk6Zmlyc3QtY2hpbGQgcDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYzpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYzpudGgtY2hpbGQobiArIDMpIHAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYzpudGgtY2hpbGQobiArIDMpIHA6bnRoLW9mLXR5cGUob2RkKSB7XG4gIHdpZHRoOiAzMCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYzpudGgtY2hpbGQobiArIDMpIHA6bnRoLW9mLXR5cGUoZXZlbikge1xuICB3aWR0aDogNTAlO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYyBwLFxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgLm90LXZlbi1kaXNjIGg0IHtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYyBoNCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgLm90LXZlbi1kaXNjIHA6bnRoLWxhc3QtY2hpbGQoLW4gKyAxKSB7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyAub3QtdmVuLWRpc2MgcDpudGgtY2hpbGQoLW4gKyAyKTpub3QoLmRpc2MtcHVyKSB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyAub3QtdmVuLWRpc2MgLmRpc2MtcHVyLWNvbnQge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tZGlzYyAuZGlzYy1wdXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBsZWZ0OiBjYWxjKDMwJSArIDE3cHgpO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tZGV0cyAub3QtdmVuLWRpc2MgLmRpc2MtcHVyOm50aC1jaGlsZCgtbiArIDEpIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgcCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIGg0LFxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMC42OWVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgY29sb3I6ICMyZTM2NDQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIGg0IHtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWRldHMgc3BhbiB7XG4gIGNvbG9yOiBkaW1ncmF5O1xuICBwYWRkaW5nOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1kZXRzIC5vdC12ZW4tcHVyIGg0IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlOWU5ZTk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTllOWU5O1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1ob3N0LWxzdCAub3Qtc2VsLWFsbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tcmlnaHQ6IDQycHg7XG4gIHRvcDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LXNlbC1hbGwgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWhvc3QtbHN0IC5vdC1zZWwtYWxsIGxhYmVsIHtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWhvc3QtbHN0IC5vdC1hY2MtdHh0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDk1JTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1oZHIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMTI1cHgpO1xuICBmbG9hdDogbGVmdDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1uYW1lLFxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1kZXNjIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogOTAlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1oZHIgPiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGZvbnQtc2l6ZTogMC44MmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUgKyBhIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUgYSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtZGVzYyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtaW5mbyB7XG4gIGNvbG9yOiBkaW1ncmF5O1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtbmFtZSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtbmFtZSBhIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMC44MmVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW5hbWUgYSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWV4cGFuZCB7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBjbGVhcjogYm90aDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjMzg2MGJlO1xuICBmb250LXNpemU6IDAuNzJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1leHBhbmQgKiB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1kZXNjLFxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1pbmZvIHtcbiAgZm9udC1zaXplOiAwLjY4OGVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWRlc2Mge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW9wdCB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW9wdCBsaSA+IGRpdiBkaXYge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBwYWRkaW5nOiA1cHggMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1vcHQgbGkgPiBkaXYgZGl2Om50aC1jaGlsZCgxKSB7XG4gIHdpZHRoOiAzMCU7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LW9wdCBsaSA+IGRpdiBkaXY6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDcwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1pbmZvIHtcbiAgYm9yZGVyOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxMHB4KTtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaG9zdC1pbmZvID4gZGl2IHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI25vLXJlc3VsdHMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI25vLXJlc3VsdHMgcCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogIzJlMzY0NDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNuby1yZXN1bHRzIHAgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1mbHRyLW1vZGFsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogbm9uZTtcbiAgLW1vei10cmFuc2l0aW9uOiAwLjJzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IDAuMnMgZWFzZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAycyBlYXNlO1xuICB0cmFuc2l0aW9uOiAwLjJzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDE7XG4gIHJpZ2h0OiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1mbHRyLW1vZGFsIC5vdC1sYWJlbC10eHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBjb2xvcjogZGltZ3JheTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtZmx0ci1jbnQge1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ2O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogOTAlO1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgd2lkdGg6IDMyNXB4O1xuICBsZWZ0OiAyMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggMTJweCAycHggI2M3YzVjNztcbiAgLW1vei1ib3gtc2hhZG93OiAwcHggMHB4IDEycHggMnB4ICNjN2M1Yzc7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMTJweCAycHggI2M3YzVjNztcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtZmx0ci1zY3JsY250IHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBjbGVhcjogYm90aDtcbiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gNjBweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWFuY2hvciB7XG4gIGJvcmRlcjogMTJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDApO1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDIxNDc0ODM2NDc7XG4gIHJpZ2h0OiA1NXB4O1xuICB0b3A6IDc1cHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtM3B4IC0zcHggNXB4IC0ycHggI2M3YzVjNztcbiAgLW1vei1ib3gtc2hhZG93OiAtM3B4IC0zcHggNXB4IC0ycHggI2M3YzVjNztcbiAgYm94LXNoYWRvdzogLTNweCAtM3B4IDVweCAtMnB4ICNjN2M1Yzc7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWZsdHItYnRucyB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNmaWx0ZXItYXBwbHktaGFuZGxlciB7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtZmx0ci1vcHQge1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgd2lkdGg6IDc1JTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1mbHRyLW9wdCBwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGNvbG9yOiAjMmUzNjQ0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggbGFiZWwgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBjb2xvcjogZGltZ3JheTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGlucHV0W3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbDo6YWZ0ZXIge1xuICBjb250ZW50OiBub25lO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGlucHV0W3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCArIGxhYmVsOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpmb2N1cyArIGxhYmVsOjpiZWZvcmUge1xuICBvdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgb3V0bGluZS13aWR0aDogMnB4O1xuICBvdXRsaW5lLXN0eWxlOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtdmVuY250cixcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1hZHRsdmVuY250cixcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1ob3N0Y250cixcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1saWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtZ252ZW5jbnRyIHtcbiAgcmlnaHQ6IDE1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtdmVuY250ciBsYWJlbCxcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1hZHRsdmVuY250ciBsYWJlbCxcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1ob3N0Y250ciBsYWJlbCxcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1saWNudHIgbGFiZWwsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtZ252ZW5jbnRyIGxhYmVsIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtdmVuLWxzdDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTJlMmUyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayB1bCBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxNXB4IDE1cHggMTVweCAxMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTJlMjtcbn1cblxuI29uZXRydXN0LXBjLXNkayB1bCBsaSBoMyB7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBjb2xvcjogIzY1NjU2NTtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA3MCU7XG4gIGhlaWdodDogYXV0bztcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIHVsIGxpIHAge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43ZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgdWwgbGkgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDA7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gPiBidXR0b246Zm9jdXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IGJ1dHRvbjpmb2N1cyxcbiNvbmV0cnVzdC1wYy1zZGsgbGkgPiBidXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAjMDAwIHNvbGlkIDJweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gPiBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IGJ1dHRvbixcbiNvbmV0cnVzdC1wYy1zZGsgbGkgPiBidXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jYXQtaXRlbSA+IGJ1dHRvblthcmlhLWV4cGFuZGVkPSdmYWxzZSddIH4gLm90LWFjYy10eHQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IGJ1dHRvblthcmlhLWV4cGFuZGVkPSdmYWxzZSddIH4gLm90LWFjYy10eHQsXG4jb25ldHJ1c3QtcGMtc2RrIGxpID4gYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J2ZhbHNlJ10gfiAub3QtYWNjLXR4dCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1heC1oZWlnaHQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiAwLjI1cyBlYXNlLW91dDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWl0ZW0gPiBidXR0b25bYXJpYS1leHBhbmRlZD0ndHJ1ZSddIH4gLm90LWFjYy10eHQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLXR4dCxcbiNvbmV0cnVzdC1wYy1zZGsgbGkgPiBidXR0b25bYXJpYS1leHBhbmRlZD0ndHJ1ZSddIH4gLm90LWFjYy10eHQge1xuICB0cmFuc2l0aW9uOiAwLjFzIGVhc2UtaW47XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1pdGVtID4gYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB+IC5vdC1hY2MtZ3JwY250cixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyID4gYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB+IC5vdC1hY2MtZ3JwY250cixcbiNvbmV0cnVzdC1wYy1zZGsgbGkgPiBidXR0b25bYXJpYS1leHBhbmRlZD0ndHJ1ZSddIH4gLm90LWFjYy1ncnBjbnRyIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtaXRlbSA+IGJ1dHRvbjpmb2N1cyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1pdGVtID4gYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAycHggc29saWQgIzAwMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaGlkZS1hY2MgPiBidXR0b24ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaGlkZS1hY2MgLm90LXBsdXMtbWludXMgPiAqLFxuI29uZXRydXN0LXBjLXNkayAub3QtaGlkZS1hY2MgLm90LWFydy1jbnRyID4gKiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtaGlkZS1hY2MgLm90LWFjYy1oZHIge1xuICBtaW4taGVpZ2h0OiAzMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudCkge1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzdweCk7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDkwcHgpO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudCkgI290LXNlbC1ibGsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWZjO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTJlMmUyO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMnB4KTtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdC1hZGR0bC12ZW5kb3JzICNvdC1sc3QtY250Om5vdCgub3QtaG9zdC1jbnQpICNvdC1zZWwtYmxrLm90LXZuZC1saXN0LWNudCB7XG4gIGJvcmRlcjogdW5zZXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnNcbiAgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudClcbiAgI290LXNlbC1ibGsub3Qtdm5kLWxpc3QtY250XG4gIC5vdC1zZWwtYWxsLWhkciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9yc1xuICAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KVxuICAjb3Qtc2VsLWJsay5vdC12bmQtbGlzdC1jbnRcbiAgLm90LXNlbC1hbGwge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9yc1xuICAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KVxuICAjb3Qtc2VsLWJsay5vdC12bmQtbGlzdC1jbnRcbiAgLm90LXNlbC1hbGxcbiAgLm90LWNoa2JveCB7XG4gIHJpZ2h0OiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudCkgLm90LXNlbC1hbGwge1xuICBwYWRkaW5nLXJpZ2h0OiAzNHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LWxzdC1jbnQ6bm90KC5vdC1ob3N0LWNudCkgLm90LXNlbC1hbGwtY2hrYm94IHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KSB1bCBsaSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KSAub3QtYWNjLWNudHIgPiAub3QtYWNjLWhkciB7XG4gIHBhZGRpbmc6IDEwcHggMCAxMHB4IDE1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAub3Qtc2VsLWFsbC1jaGtib3gge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsub3QtYWRkdGwtdmVuZG9ycyAub3QtcGx1cy1taW51cyB+IC5vdC1zZWwtYWxsLWNoa2JveCB7XG4gIHJpZ2h0OiAzNHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrLm90LWFkZHRsLXZlbmRvcnMgI290LXZlbi1sc3Q6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTJlMmUyO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTJlMmUyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTJlMjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjLWNudHIgaW5wdXQge1xuICB6LWluZGV4OiAxO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IC5vdC1hY2MtaGRyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmYztcbiAgcGFkZGluZzogNXB4IDAgNXB4IDE1cHg7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IC5vdC1hY2MtaGRyIC5vdC1wbHVzLW1pbnVzIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG9wOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IC5vdC1hY2MtaGRyIC5vdC1hcnctY250ciB7XG4gIHJpZ2h0OiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IC5vdC1hY2MtaGRyIGlucHV0IHtcbiAgei1pbmRleDogMjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjLWNudHIub3QtYWRkLXRlY2ggLm90LWFjYy1oZHIge1xuICBwYWRkaW5nOiAxMHB4IDAgMTBweCAxNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciA+IGlucHV0W3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCB+IC5vdC1hY2MtaGRyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUyZTI7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyID4gLm90LWFjYy10eHQge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1jbnRyIGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLXR4dCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtY250ciAub3QtYWRkdGwtdmVuYm94IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmxzdC1jbnRyIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbnNlYy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMC44MTNlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtdmVuY250ci5saW5lLXRocm91Z2ggbGFiZWw6OmFmdGVyLFxuI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWFkdGx2ZW5jbnRyLmxpbmUtdGhyb3VnaCBsYWJlbDo6YWZ0ZXIsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtbGljbnRyLmxpbmUtdGhyb3VnaCBsYWJlbDo6YWZ0ZXIsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtaG9zdGNudHIubGluZS10aHJvdWdoIGxhYmVsOjphZnRlcixcbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC1nbnZlbmNudHIubGluZS10aHJvdWdoIGxhYmVsOjphZnRlciB7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgLW8tdHJhbnNmb3JtOiBub25lO1xuICAtbXMtdHJhbnNmb3JtOiBub25lO1xuICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGVmdDogNXB4O1xuICB0b3A6IDlweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtY2F0ZWdvcnktdGl0bGUge1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgZm9udC1zaXplOiAxZW07XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWdycCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1pdGVtIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYnRuLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1idG4tY29udGFpbmVyIGJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBoZWlnaHQ6IDNyZW07XG4gIG1pbi13aWR0aDogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayAjY2xvc2UtcGMtYnRuLWhhbmRsZXIub3QtY2xvc2UtaWNvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IHVuc2V0O1xuICByaWdodDogdW5zZXQ7XG4gIHotaW5kZXg6IHVuc2V0O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI2Nsb3NlLXBjLWJ0bi1oYW5kbGVyLm90LWNsb3NlLWljb24gc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTBweDtcbiAgd2lkdGg6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI2NsZWFyLWZpbHRlcnMtaGFuZGxlciB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZsb2F0OiByaWdodDtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzM4NjBiZTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgcGFkZGluZzogMXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNjbGVhci1maWx0ZXJzLWhhbmRsZXI6aG92ZXIge1xuICBjb2xvcjogIzIyODVmNztcbn1cblxuI29uZXRydXN0LXBjLXNkayAjY2xlYXItZmlsdGVycy1oYW5kbGVyOmZvY3VzIHtcbiAgb3V0bGluZTogIzAwMCBzb2xpZCAxcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWVuYmwtY2hyIGg0IH4gLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWVuYmwtY2hyIGg0IH4gLm90LWFsd2F5cy1hY3RpdmUge1xuICByaWdodDogNDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtZW5ibC1jaHIgaDQgfiAub3QtdGdsICsgLm90LXRnbCB7XG4gIHJpZ2h0OiAxMjBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtZW5ibC1jaHIgLm90LXBsaS1oZHIub3QtbGVnLWJvcmRlci1jb2xvciBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgd2lkdGg6IDkwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWVuYmwtY2hyIGxpLm90LXN1YmdycCA+IGg1ICsgLm90LXRnbC1jbnRyIHtcbiAgcGFkZGluZy1yaWdodDogMjVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcGx1cy1taW51cyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgdG9wOiAzcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBsdXMtbWludXMgc3BhbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogIzI3NDU1YztcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbHVzLW1pbnVzIHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gIHRvcDogMjUlO1xuICBib3R0b206IDI1JTtcbiAgd2lkdGg6IDEwJTtcbiAgbGVmdDogNDUlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbHVzLW1pbnVzIHNwYW46bGFzdC1vZi10eXBlIHtcbiAgbGVmdDogMjUlO1xuICByaWdodDogMjUlO1xuICBoZWlnaHQ6IDEwJTtcbiAgdG9wOiA0NSU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB+IC5vdC1hY2MtaGRyIC5vdC1hcncsXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyBzcGFuOmZpcnN0LW9mLXR5cGUsXG4jb25ldHJ1c3QtcGMtc2RrIGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cblxuI29uZXRydXN0LXBjLXNkayBidXR0b25bYXJpYS1leHBhbmRlZD0ndHJ1ZSddIH4gLm90LWFjYy1oZHIgLm90LXBsdXMtbWludXMgc3BhbjpsYXN0LW9mLXR5cGUge1xuICBsZWZ0OiA1MCU7XG4gIHJpZ2h0OiA1MCU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXNlbGFsbC12ZW5jbnRyIGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWFkdGx2ZW5jbnRyIGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWhvc3RjbnRyIGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWxpY250ciBsYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1ob3N0LWl0ZW0gLm90LXBsdXMtbWludXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4taXRlbSAub3QtcGx1cy1taW51cyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4taXRlbSB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmUgaW5zaWRlO1xuICBmb250LXNpemU6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWl0ZW0gdWwgbGkge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBsaS1oZHIge1xuICBjb2xvcjogIzc3ODA4ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDcuNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogNy41cHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAycHgpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBsaS1oZHIgc3BhbjpmaXJzdC1jaGlsZCB7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcbiAgbWF4LXdpZHRoOiA5MHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyIHNwYW46bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gIG1heC13aWR0aDogOTVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1saS10aXRsZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAwLjgxM2VtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyLm90LWxlZy1ib3JkZXItY29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyLm90LWxlZy1ib3JkZXItY29sb3Igc3BhbjpmaXJzdC1jaGlsZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiA3MHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIGxpLm90LXN1YmdycCA+IGg1LFxuI29uZXRydXN0LXBjLXNkayAub3QtY2F0LWhlYWRlciB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxMzBweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgbGkub3Qtc3ViZ3JwID4gaDUgKyAub3QtdGdsLWNudHIge1xuICBwYWRkaW5nLWxlZnQ6IDEzcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1ncnBjbnRyIC5vdC1hY2MtZ3JwZGVzYyB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjLWdycGNudHIgLm90LXN1YmdycC1jbnRyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOGQ4ZDg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy1ncnBjbnRyIC5vdC12bHN0LWNudHIgKyAub3Qtc3ViZ3JwLWNudHIge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtaGRyIC5vdC1hcnctY250ciArIC5vdC10Z2wtY250cixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjYy10eHQgaDQgKyAub3QtdGdsLWNudHIge1xuICBwYWRkaW5nLWxlZnQ6IDEzcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBsaS1oZHIgfiAub3QtY2F0LWl0ZW0gLm90LXN1YmdycCA+IGg1LFxuI29uZXRydXN0LXBjLXNkayAub3QtcGxpLWhkciB+IC5vdC1jYXQtaXRlbSAub3QtY2F0LWhlYWRlciB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxNDVweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBsaS1oZHIgfiAub3QtY2F0LWl0ZW0gaDUgKyAub3QtdGdsLWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wbGktaGRyIH4gLm90LWNhdC1pdGVtIC5vdC1jYXQtaGVhZGVyICsgLm90LXRnbCB7XG4gIHBhZGRpbmctbGVmdDogMjhweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc2VsLWFsbC1oZHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWwtYWxsLWNoa2JveCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc2VsLWFsbC1jaGtib3gge1xuICB6LWluZGV4OiAxO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWwtYWxsIHtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDIzcHg7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtY29uc2VudC1oZHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1saS1oZHIge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMC44MTJlbTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWxpLWhkciB7XG4gIG1heC13aWR0aDogMTAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNvbnNlbnQtaGRyIHtcbiAgbWF4LXdpZHRoOiA1NXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1zZWxhbGwtbGljbnRyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMXB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZsb2F0OiByaWdodDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogODBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsYWxsLWxpY250ciBsYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWN0Z2wge1xuICBtYXJnaW4tbGVmdDogNjZweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdmVuLWxpdGdsICsgLm90LWFydy1jbnRyIHtcbiAgbWFyZ2luLWxlZnQ6IDgxcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWVuYmwtY2hyIC5vdC1ob3N0LWNudCAub3QtdGdsLWNudHIge1xuICB3aWR0aDogYXV0bztcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudDpub3QoLm90LWhvc3QtY250KSAub3QtdGdsLWNudHIge1xuICB3aWR0aDogYXV0bztcbiAgdG9wOiBhdXRvO1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC1jbnQgLm90LWNoa2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC1jaGtib3ggbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC1jbnQgLm90LXZuZC1pbmZvLWNudHIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtZ3JwZGVzYyArIC5vdC1sZWctYnRuLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycCAub3QtbGVnLWJ0bi1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LXZlbi1sc3QgLm90LWxlZy1idG4tY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtbGVnLWJ0bi1jb250YWluZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1sZWctYnRuLWNvbnRhaW5lciBidXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDYuNXB4IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1sZWctYnRuLWNvbnRhaW5lciBzdmcge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDE0cHg7XG4gIHdpZHRoOiAxNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBzdWI7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjdGl2ZS1sZWctYnRuIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWN0aXZlLWxlZy1idG4gc3ZnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1yZW1vdmUtb2JqZWN0aW9uLWhhbmRsZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LW9iai1sZWctYnRuLWhhbmRsZXIgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuI29uZXRydXN0LXBjLXNkay5vdC1jbG9zZS1idG4tbGluayAjY2xvc2UtcGMtYnRuLWhhbmRsZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGZvbnQtc2l6ZTogMC42OWVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICByaWdodDogMTVweDtcbiAgdG9wOiAxNXB4O1xuICB3aWR0aDogYXV0bztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcGdwaC1saW5rIHtcbiAgZm9udC1zaXplOiAwLjgxM2VtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1wZ3BoLWxpbmsub3QtcGdwaC1saW5rLXN1Ymdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcGdwaC1jb250ciB7XG4gIG1hcmdpbjogMCAyLjVyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBncGgtdGl0bGUge1xuICBmb250LXNpemU6IDEuMThyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXBncGgtZGVzYyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtcGdwaC1kZXNjOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDk2JTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOWU5ZTk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWNhdC1oZWFkZXIge1xuICBmbG9hdDogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBtYXgtd2lkdGg6IDkwJTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLWl0ZW0gPiBidXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAjMDAwIHNvbGlkIDJweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLWl0ZW0gPiBidXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtaXRlbSA+IGJ1dHRvblthcmlhLWV4cGFuZGVkPSdmYWxzZSddIH4gLm90LWFjYy10eHQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXgtaGVpZ2h0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogMC4yNXMgZWFzZS1vdXQ7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1pdGVtID4gYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB+IC5vdC1hY2MtdHh0IHtcbiAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtaXRlbSA+IGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gfiAub3QtYWNjLWdycGNudHIge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jYXQtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAycHgpO1xuICBmbG9hdDogbGVmdDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jYXQtaXRlbTpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOGQ4ZDg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWFjYy1ncnBkZXNjIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gIGZvbnQtc2l6ZTogMC44MTJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtYWNjLWdycGRlc2MgPiB1bCB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1hY2MtZ3JwZGVzYyA+IHVsIGxpIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IGRpdiArIC5vdC1hY2MtZ3JwZGVzYyB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtdmxzdC1jbnRyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtdmxzdC1jbnRyOmxhc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1obHN0LWNudHI6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtYWNjLWhkciB7XG4gIHBhZGRpbmctdG9wOiAxMS41cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMS41cHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWFjYy10eHQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3Qtc3ViZ3JwLWNudHIge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzVweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LXN1YmdycCB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtYWNjLWdycGNudHIge1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgLm90LWNhdC1oZWFkZXIgKyAub3QtYXJ3LWNudHIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1jYXQtaGVhZGVyICsgLm90LWFydy1jbnRyIC5vdC1hcncge1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBjb2xvcjogZGltZ3JheTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dCAub3QtY2F0LWhlYWRlciB7XG4gIGZsb2F0OiBub25lO1xuICBjb2xvcjogIzJlMzY0NDtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBtaW4taGVpZ2h0OiBpbmhlcml0O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC12bHN0LWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1obHN0LWNudHIge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IC5vdC1hY2MtaGRyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAyNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0IGg0IH4gLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgaDQgfiAub3QtYWx3YXlzLWFjdGl2ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgcmlnaHQ6IDIwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQgaDQgfiAub3QtdGdsICsgLm90LXRnbCB7XG4gIHJpZ2h0OiA5NXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gOTZweCk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI290LWxzdC1jbnQgLm90LXZuZC1pbmZvLWNudHIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC12bmQtaW5mbyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctbGVmdDogMC43NXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm9bZGF0YS12bmQtaW5mby1rZXkqPSdEUE9FbWFpbCddIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC12bmQtaW5mb1tkYXRhLXZuZC1pbmZvLWtleSo9J0RQT0xpbmsnXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm8gLm90LXZuZC1sYmwge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm8gLm90LXZuZC1jbnQge1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtc2Vydi1oZHItY250cixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtc2Vydi1oZHItY250ciB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q4ZDhkODtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLXNlcnYtaGRyLWNudHIgLm90LXZuZC1zZXJ2LWhkcixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtc2Vydi1oZHItY250ciAub3Qtdm5kLXNlcnYtaGRyIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAwLjk1ZW07XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gYnV0dG9uIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOGQ4ZDg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIGJ1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gYnV0dG9uW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtOmZpcnN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgYm9yZGVyLXRvcDogdW5zZXQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtOmxhc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW06bGFzdC1jaGlsZCBidXR0b24sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW06bGFzdC1jaGlsZCBidXR0b24ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8tY250cixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8tY250ciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMS43NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mbyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8ge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mb1tkYXRhLXZuZC1pbmZvLWtleSo9J0RQT0VtYWlsJ10sXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvW2RhdGEtdm5kLWluZm8ta2V5Kj0nRFBPRW1haWwnXSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvW2RhdGEtdm5kLWluZm8ta2V5Kj0nRFBPTGluayddLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mb1tkYXRhLXZuZC1pbmZvLWtleSo9J0RQT0xpbmsnXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDhkOGQ4O1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvIC5vdC12bmQtbGJsLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC12bmQtaW5mbyAub3Qtdm5kLWxibCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3Qtdm5kLWluZm8gLm90LXZuZC1jbnQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvIC5vdC12bmQtY250IHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0Lm90LXZuZC1zdWJncnAtY250LFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYub3Qtdm5kLXN1YmdycC1jbnQge1xuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3Qub3Qtdm5kLXN1YmdycC1jbnQgLm90LXZuZC1zZXJ2LWhkci1jbnRyIC5vdC12bmQtc2Vydi1oZHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2Vydi5vdC12bmQtc3ViZ3JwLWNudCAub3Qtdm5kLXNlcnYtaGRyLWNudHIgLm90LXZuZC1zZXJ2LWhkciB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3Qub3Qtdm5kLXN1YmdycC1jbnQgLm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2Vydi5vdC12bmQtc3ViZ3JwLWNudCAub3QtY2F0LWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIC5vdC12bmQtc2VydiB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmc6IDFyZW0gMC45NXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgLm90LXZuZC1zZXJ2IC5vdC12bmQtc2Vydi1oZHItY250ciB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q4ZDhkODtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgLm90LXZuZC1zZXJ2IC5vdC12bmQtc2Vydi1oZHItY250ciAub3Qtdm5kLXNlcnYtaGRyIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAwLjgycmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciAub3QtY2F0LWhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrXG4gIC5vdC1zdWJncnAtY250clxuICB1bC5vdC1zdWJncnBzXG4gIC5vdC12bmQtc2VydlxuICAub3Qtdm5kLWxzdC1jb250XG4gIC5vdC1hY2NvcmRpb24tbGF5b3V0XG4gIC5vdC1hY2MtaGRyXG4gIGRpdi5vdC1jaGtib3gge1xuICBtYXJnaW4tbGVmdDogMC44MnJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtY29uZmlnIC5vdC1hY2MtaGRyLFxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkcixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkcixcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2hlY2tib3gtY29uc2VudCAub3QtYWNjLWhkciB7XG4gIHBhZGRpbmc6IDAuN3JlbSAwO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciBkaXY6Zmlyc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgZGl2OmZpcnN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciBkaXY6Zmlyc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciBkaXY6Zmlyc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgZGl2OmZpcnN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciBkaXY6Zmlyc3QtY2hpbGQsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgZGl2OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtY29uZmlnIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciBkaXY6bGFzdC1jaGlsZCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIGRpdjpsYXN0LWNoaWxkLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciBkaXY6bGFzdC1jaGlsZCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2hlY2tib3gtY29uc2VudCAub3QtYWNjLWhkciBkaXY6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIgLm90LWFsd2F5cy1hY3RpdmUsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWFsd2F5cy1hY3RpdmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1hbHdheXMtYWN0aXZlLFxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWFsd2F5cy1hY3RpdmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWFsd2F5cy1hY3RpdmUsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1hbHdheXMtYWN0aXZlLFxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRyIC5vdC1hbHdheXMtYWN0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogdW5zZXQ7XG4gIHRvcDogdW5zZXQ7XG4gIHRyYW5zZm9ybTogdW5zZXQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyxcbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LXBsdXMtbWludXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtcGx1cy1taW51cyxcbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LXBsdXMtbWludXMsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LXBsdXMtbWludXMge1xuICB0b3A6IDA7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtYXJ3LWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWFydy1jbnRyLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtYXJ3LWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtYXJ3LWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWFydy1jbnRyLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtYXJ3LWNudHIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LWFydy1jbnRyIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHRvcDogdW5zZXQ7XG4gIHJpZ2h0OiB1bnNldDtcbiAgdHJhbnNmb3JtOiB1bnNldDtcbiAgbWFyZ2luLXRvcDogLTJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1jYXQtaGVhZGVyLFxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1jYXQtaGVhZGVyLFxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRyIC5vdC1jYXQtaGVhZGVyIHtcbiAgZmxleDogMTtcbiAgbWFyZ2luOiAwIDAuNXJlbTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtY29uZmlnIC5vdC1hY2MtaGRyIC5vdC10Z2wsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC10Z2wsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgI290LXBjLWxzdCAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LXRnbCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LWFjY29yZGlvbi1sYXlvdXQub3QtY2hlY2tib3gtY29uc2VudCAub3QtYWNjLWhkciAub3QtdGdsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGZsb2F0OiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIgLm90LWNoa2JveCxcbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94LFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94LFxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNoa2JveCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94LFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94LFxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRyIC5vdC1jaGtib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCAwLjVyZW07XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWwsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWwsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsLFxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLXNlcnYgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWwsXG4jb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZzLWxpc3QgLm90LXZuZC1pdGVtIC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggbGFiZWwsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLWNvbmZpZyAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrIHVsLm90LXN1YmdycHMgLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbDo6YmVmb3JlLFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbDo6YmVmb3JlLFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGxhYmVsOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2NvcmRpb24tbGF5b3V0Lm90LWNoZWNrYm94LWNvbnNlbnQgLm90LWFjYy1oZHIgLm90LWNoa2JveCBsYWJlbDo6YmVmb3JlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LWFjYy1oZHIgLm90LWNoa2JveCBpbnB1dCxcbiNvbmV0cnVzdC1wYy1zZGsgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LFxuI29uZXRydXN0LXBjLXNkayAub3Qtc3ViZ3JwLWNudHIgdWwub3Qtc3ViZ3JwcyAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LFxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCAub3Qtdm5kLWl0ZW0gLm90LWFjYy1oZHIgLm90LWNoa2JveCBpbnB1dCxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZuZC1zZXJ2IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LFxuI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12cy1saXN0IC5vdC12bmQtaXRlbSAub3QtYWNjLWhkciAub3QtY2hrYm94IGlucHV0LFxuI29uZXRydXN0LXBjLXNkayAub3QtYWNjb3JkaW9uLWxheW91dC5vdC1jaGVja2JveC1jb25zZW50IC5vdC1hY2MtaGRyIC5vdC1jaGtib3ggaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgbGkub3Qtc3ViZ3JwIC5vdC1hY2MtaGRyIGg1Lm90LWNhdC1oZWFkZXIsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1zdWJncnAtY250ciB1bC5vdC1zdWJncnBzIGxpLm90LXN1YmdycCAub3QtYWNjLWhkciBoNC5vdC1jYXQtaGVhZGVyIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1jb25maWcgLm90LXN1YmdycC1jbnRyIHVsLm90LXN1YmdycHMgbGkub3Qtc3ViZ3JwIGg1IHtcbiAgdG9wOiAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMC41cmVtIDRweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtc2VsYy1hbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAwO1xuICBmbG9hdDogdW5zZXQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtc2VsYy1hbGwub3QtdG9nZ2xlLWNvbmYge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbC5vdC10b2dnbGUtY29uZi5vdC1jYXJldC1jb25mIC5vdC1zZWwtYWxsLWNoa2JveCB7XG4gIG1hcmdpbi1yaWdodDogNDhweDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3QtdnMtc2VsYy1hbGwub3QtdG9nZ2xlLWNvbmYgLm90LXNlbC1hbGwtY2hrYm94IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZzLXNlbGMtYWxsLm90LXRvZ2dsZS1jb25mICNvdC1zZWxhbGwtdmVuY250ci5vdC1jaGtib3gsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbC5vdC10b2dnbGUtY29uZiAjb3Qtc2VsYWxsLXZlbmNudHIub3QtdGdsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICByaWdodDogdW5zZXQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZsb2F0OiBub25lO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbC5vdC10b2dnbGUtY29uZiAjb3Qtc2VsYWxsLXZlbmNudHIgbGFiZWwge1xuICB3aWR0aDogNDVweDtcbiAgaGVpZ2h0OiAyNXB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbCAub3Qtc2VsLWFsbC1jaGtib3gge1xuICBtYXJnaW4tcmlnaHQ6IDExcHg7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC12cy1zZWxjLWFsbCAuc2VsLWFsbC1oZHIge1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgZm9udC1zaXplOiAwLjgxMmVtO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAub3Qtdm5kLWxpc3QtY250ICNvdC1zZWxhbGwtdmVuY250ci5vdC1jaGtib3gge1xuICBmbG9hdDogdW5zZXQ7XG4gIHJpZ2h0OiAwO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrW2Rpcj0ncnRsJ10gI290LWJhY2stYXJ3LFxuI29uZXRydXN0LXBjLXNka1tkaXI9J3J0bCddIGlucHV0IH4gLm90LWFjYy1oZHIgLm90LWFydyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGtbZGlyPSdydGwnXSBpbnB1dDpjaGVja2VkIH4gLm90LWFjYy1oZHIgLm90LWFydyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGtbZGlyPSdydGwnXSAub3QtY2hrYm94IGxhYmVsOjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIGJvcmRlci1yaWdodDogM3B4IHNvbGlkO1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrW2Rpcj0ncnRsJ10gLm90LXNlYXJjaC1jbnRyID4gc3ZnIHtcbiAgcmlnaHQ6IDA7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvdC1zZWFyY2gtY250cixcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zd2l0Y2gub3QtdG9nZ2xlLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgb3QtZ3JwLWhkcjEgLmNoZWNrYm94LFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LXBjLXRpdGxlOmFmdGVyLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LXNlbC1ibGssXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtZmx0ci1jbnQsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtYW5jaG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgaDMsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBoNCxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIGg1LFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgaDYsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBwLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LXZlbi1sc3QgLm90LXZlbi1vcHRzIHAsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtZGVzYyxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy10aXRsZSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1saS10aXRsZSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZWwtYWxsLWhkciBzcGFuLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LWhvc3QtbHN0IC5vdC1ob3N0LWluZm8sXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtZmx0ci1tb2RhbCAjbW9kYWwtaGVhZGVyLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWNoZWNrYm94IGxhYmVsIHNwYW4sXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0ICNvdC1zZWwtYmxrIHAsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0ICNvdC1sc3QtdGl0bGUgaDMsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5iYWNrLWJ0bi1oYW5kbGVyIHAsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtbHN0IC5vdC12ZW4tbmFtZSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgI290LXZlbi1sc3QgLmNvbnNlbnQtY2F0ZWdvcnksXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtbGVnLWJ0bi1jb250YWluZXIgLm90LWluYWN0aXZlLWxlZy1idG4sXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtbGFiZWwtc3RhdHVzLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWNoa2JveCBsYWJlbCBzcGFuLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI2NsZWFyLWZpbHRlcnMtaGFuZGxlcixcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1vcHRvdXQtc2lnbmFsIHtcbiAgY29sb3I6ICMxZDFkMWQ7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5wcml2YWN5LW5vdGljZS1saW5rLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXBncGgtbGluayxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1ob3N0LWxpc3QtaGFuZGxlcixcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbGluayxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC12ZW4tbGVnY2xhaW0tbGluayxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1ob3N0LWxzdCAub3QtaG9zdC1uYW1lIGEsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LWFjYy1oZHIgLm90LWhvc3QtZXhwYW5kLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LWhvc3QtbHN0IC5vdC1ob3N0LWluZm8gYSxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1jb250ZW50ICNvdC1wYy1kZXNjIC5vdC1saW5rLWJ0bixcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC12bmQtc2VydiAub3Qtdm5kLWl0ZW0gLm90LXZuZC1pbmZvIGEsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtbHN0LWNudCAub3Qtdm5kLWluZm8gYSB7XG4gIGNvbG9yOiAjMDA1MmZmO1xufVxuXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LWhvc3QtaW5mbyxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY2MtdHh0IC5vdC12ZW4tZGV0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNka1xuICAjb25ldHJ1c3QtcGMtc2RrXG4gIGJ1dHRvbjpub3QoI2NsZWFyLWZpbHRlcnMtaGFuZGxlcik6bm90KC5vdC1jbG9zZS1pY29uKTpub3QoI2ZpbHRlci1idG4taGFuZGxlcik6bm90KFxuICAgIC5vdC1yZW1vdmUtb2JqZWN0aW9uLWhhbmRsZXJcbiAgKTpub3QoLm90LW9iai1sZWctYnRuLWhhbmRsZXIpOm5vdChbYXJpYS1leHBhbmRlZF0pOm5vdCgub3QtbGluay1idG4pLFxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWxlZy1idG4tY29udGFpbmVyIC5vdC1hY3RpdmUtbGVnLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDUyZmY7XG4gIGJvcmRlci1jb2xvcjogIzAwNTJmZjtcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1hY3RpdmUtbWVudSB7XG4gIGJvcmRlci1jb2xvcjogIzAwNTJmZjtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWxlZy1idG4tY29udGFpbmVyIC5vdC1yZW1vdmUtb2JqZWN0aW9uLWhhbmRsZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1sZWctYnRuLWNvbnRhaW5lciAub3QtaW5hY3RpdmUtbGVnLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNzg4MDhlO1xuICBib3JkZXItY29sb3I6ICM3ODgwOGU7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wgaW5wdXQ6Zm9jdXMgKyAub3Qtc3dpdGNoLFxuLm90LXN3aXRjaCAub3Qtc3dpdGNoLW5vYixcbi5vdC1zd2l0Y2ggLm90LXN3aXRjaC1ub2I6YmVmb3JlLFxuI29uZXRydXN0LXBjLXNkayAub3QtY2hlY2tib3ggaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpmb2N1cyArIGxhYmVsOjpiZWZvcmUsXG4jb25ldHJ1c3QtcGMtc2RrIC5vdC1jaGtib3ggaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpmb2N1cyArIGxhYmVsOjpiZWZvcmUge1xuICBvdXRsaW5lLWNvbG9yOiAjMDAwMDAwO1xuICBvdXRsaW5lLXdpZHRoOiAxcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LWhvc3QtaXRlbSA+IGJ1dHRvbjpmb2N1cyxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1pdGVtID4gYnV0dG9uOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgKjpmb2N1cyxcbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC12bHN0LWNudHIgPiBhOmZvY3VzIHtcbiAgb3V0bGluZTogdW5zZXQ7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC10Z2wgaW5wdXQ6Zm9jdXMgKyAub3Qtc3dpdGNoIHtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAqOmZvY3VzLXZpc2libGUsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtdmxzdC1jbnRyID4gYTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkICMwMDVmY2MgIWltcG9ydGFudDtcbiAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXRnbCBpbnB1dDpmb2N1cy12aXNpYmxlICsgLm90LXN3aXRjaCB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCAjMDA1ZmNjICFpbXBvcnRhbnQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZsc3QtY250ciAub3QtZXh0LWxuayxcbiNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1oZHIgLm90LWV4dC1sbmsge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvbG9nb3Mvc3RhdGljL290X2V4dGVybmFsX2xpbmsuc3ZnJyk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLnBjLWxvZ28ge1xuICB3aWR0aDogMTA1cHg7XG4gIGhlaWdodDogMzhweDtcbn1cblxuZGl2Lm90LXBjLWZvb3Rlci1sb2dvIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI29uZXRydXN0LXBjLXNkayAjY29va2llLXByZWZlcmVuY2VzIC5vdC1hbHdheXMtYWN0aXZlIHtcbiAgY29sb3I6ICM2OTY5Njk7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgI3BjLXRpdGxlLFxuI29uZXRydXN0LXBjLXNkayAjbWFuYWdlLWNvb2tpZXMtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBtYXJnaW46IDhweCAwcHggMTZweCAwcHg7XG59XG5cbiNvbmV0cnVzdC1jb25zZW50LXNkayBkaXYjcGMtcG9saWN5LXRleHQsXG4jb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1pdGVtIHAge1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuI29uZXRydXN0LWNvbnNlbnQtc2RrIGJ1dHRvbiNhY2NlcHQtcmVjb21tZW5kZWQtYnRuLWhhbmRsZXIsXG4jb25ldHJ1c3QtY29uc2VudC1zZGsgYnV0dG9uLm9uZXRydXN0LWNsb3NlLWJ0bi1oYW5kbGVyIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4jb25ldHJ1c3QtcGMtc2RrIC5jYXRlZ29yeS1ob3N0LWxpc3QtaGFuZGxlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLmFjY29yZGlvbi10ZXh0IC5vdC1zd2l0Y2gtbGFiZWwge1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuI29uZXRydXN0LXBjLXNkayAuc3dpdGNoLWNoZWNrYm94OmNoZWNrZWQgKyAub3Qtc3dpdGNoLWxhYmVsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbiNvbmV0cnVzdC1wYy1zZGsgLnN3aXRjaC1jaGVja2JveDpjaGVja2VkICsgLm90LXN3aXRjaC1sYWJlbCAub3Qtc3dpdGNoLW5vYiB7XG4gIGJvcmRlci1jb2xvcjogIzAwNTJmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTJmZjtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5IHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5Lm90UmVsRm9udCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5IGgzLFxuLm90LXNkay1jb29raWUtcG9saWN5IGg0LFxuLm90LXNkay1jb29raWUtcG9saWN5IGg2LFxuLm90LXNkay1jb29raWUtcG9saWN5IHAsXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgbGksXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgYSxcbi5vdC1zZGstY29va2llLXBvbGljeSB0aCxcbi5vdC1zZGstY29va2llLXBvbGljeSAjY29va2llLXBvbGljeS1kZXNjcmlwdGlvbixcbi5vdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvb2tpZS1wb2xpY3ktZ3JvdXAsXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgI2Nvb2tpZS1wb2xpY3ktdGl0bGUge1xuICBjb2xvcjogZGltZ3JheTtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5ICNjb29raWUtcG9saWN5LWRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDQge1xuICBmb250LXNpemU6IDEuMmVtO1xufVxuXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgaDYge1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luLXRvcDogMmVtO1xufVxuXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGgge1xuICBtaW4td2lkdGg6IDc1cHg7XG59XG5cbi5vdC1zZGstY29va2llLXBvbGljeSBhLFxuLm90LXNkay1jb29raWUtcG9saWN5IGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4ub3Qtc2RrLWNvb2tpZS1wb2xpY3kgdGhlYWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNmY0O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5IC5vdC1tb2JpbGUtYm9yZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5IHNlY3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG5cbi5vdC1zZGstY29va2llLXBvbGljeSB0YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogaW5oZXJpdDtcbn1cblxuLm90LXNkay1jb29raWUtcG9saWN5W2Rpcj0ncnRsJ10ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ub3QtZmxvYXRpbmctYnV0dG9uX19mcm9udCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9jZG4uY29va2llbGF3Lm9yZy9sb2dvcy9zdGF0aWMvb3RfcGVyc2lzdGVudF9jb29raWVfaWNvbi5wbmcnKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzZweCkge1xuICAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNka1xuICAgICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50XG4gICAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAgICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIsXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrXG4gICAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgICAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwXG4gICAgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlciB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGtcbiAgICAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLXBhcmVudFxuICAgICNvbmV0cnVzdC1idXR0b24tZ3JvdXBcbiAgICAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyLFxuICAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDI0cHg7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy10b3A6IDI0cHg7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5LXRleHQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyNHB4O1xuICB9XG5cbiAgI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWNsb3NlLWJ0bi1jb250YWluZXIge1xuICAgIHRvcDogMjRweDtcbiAgICByaWdodDogMjRweDtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1ndi1saXN0LWhhbmRsZXIsXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrIDpub3QoLm90LWRwZC1kZXNjKSA+IC5vdC1iLWFkZGwtZGVzYyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkay5vdEZsb2F0aW5nUm91bmRlZCxcbiAgI29uZXRydXN0LWJhbm5lci1zZGsub3RGbG9hdGluZ1JvdW5kZWRbZGlyPSdydGwnXSB7XG4gICAgYm90dG9tOiAxcmVtO1xuICAgIHdpZHRoOiA5MiU7XG4gICAgbGVmdDogNCU7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLXJvdyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3kge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwLXBhcmVudCxcbiAgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWRwZC1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgI29uZXRydXN0LXBjLXNkay5vdFBjQ2VudGVyIHtcbiAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XG4gIH1cblxuICAjb25ldHJ1c3QtcGMtc2RrICNvdC1jYXRlZ29yeS10aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDU2cHg7XG4gIH1cbn1cblxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGIwZDtcbiAgYm94LXNoYWRvdzogMHB4IDRweCAxMnB4IDBweCAjYTVhYWI2MzM7XG59XG5cbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcG9saWN5LXRpdGxlLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wb2xpY3ktdGV4dCxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAub3QtYi1hZGRsLWRlc2MsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgLm90LWRwZC1kZXNjLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrIC5vdC1kcGQtdGl0bGUsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgI2Jhbm5lci1vcHRpb25zICosXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LWNhdC1oZWFkZXIsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgLm90LW9wdG91dC1zaWduYWwge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIGFbaHJlZl0sXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LWJhbm5lci1zZGsgYVtocmVmXSBmb250LFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1saW5rLWJ0biB7XG4gIGNvbG9yOiAjNTc4YmZhO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIge1xuICBvcmRlcjogMTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGEwYjBkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtaW4td2lkdGg6IGF1dG87XG4gIG91dGxpbmU6IG5vbmU7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyOmhvdmVyLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrXG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50XG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXBcbiAgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NzhiZmEgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNTc4YmZhICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMGEwYjBkICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGssXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI290LXNlYXJjaC1jbnRyLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXN3aXRjaC5vdC10b2dnbGUsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBvdC1ncnAtaGRyMSAuY2hlY2tib3gsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtcGMtdGl0bGU6YWZ0ZXIsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3Qtc2VsLWJsayxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1mbHRyLWNudCxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1hbmNob3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGEwYjBkO1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBoMyxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIGg0LFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgaDUsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayBoNixcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIHAsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtdmVuLWxzdCAub3QtdmVuLW9wdHMgcCxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1kZXNjLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LXBjLXRpdGxlLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LWxpLXRpdGxlLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXNlbC1hbGwtaGRyIHNwYW4sXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LWhvc3QtaW5mbyxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1mbHRyLW1vZGFsICNtb2RhbC1oZWFkZXIsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtY2hlY2tib3ggbGFiZWwgc3BhbixcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgI290LXNlbC1ibGsgcCxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgI290LWxzdC10aXRsZSBoMyxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLmJhY2stYnRuLWhhbmRsZXIgcCxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1wYy1sc3QgLm90LXZlbi1uYW1lLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrXG4gICNvbmV0cnVzdC1wYy1zZGtcbiAgI290LXBjLWxzdFxuICAjb3QtdmVuLWxzdFxuICAuY29uc2VudC1jYXRlZ29yeSxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKVxuICB+ICNvbmV0cnVzdC1jb25zZW50LXNka1xuICAjb25ldHJ1c3QtcGMtc2RrXG4gIC5vdC1sZWctYnRuLWNvbnRhaW5lclxuICAub3QtaW5hY3RpdmUtbGVnLWJ0bixcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrIC5vdC1sYWJlbC1zdGF0dXMsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtY2hrYm94IGxhYmVsIHNwYW4sXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjY2xlYXItZmlsdGVycy1oYW5kbGVyLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LW9wdG91dC1zaWduYWwge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLnByaXZhY3ktbm90aWNlLWxpbmssXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAub3QtcGdwaC1saW5rLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLmNhdGVnb3J5LWhvc3QtbGlzdC1oYW5kbGVyLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1saW5rLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgLm90LXZlbi1sZWdjbGFpbS1saW5rLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wYy1zZGsgI290LWhvc3QtbHN0IC5vdC1ob3N0LW5hbWUgYSxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKVxuICB+ICNvbmV0cnVzdC1jb25zZW50LXNka1xuICAjb25ldHJ1c3QtcGMtc2RrXG4gICNvdC1ob3N0LWxzdFxuICAub3QtYWNjLWhkclxuICAub3QtaG9zdC1leHBhbmQsXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaykgfiAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBjLXNkayAjb3QtaG9zdC1sc3QgLm90LWhvc3QtaW5mbyBhLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrXG4gICNvbmV0cnVzdC1wYy1zZGtcbiAgI290LXBjLWNvbnRlbnRcbiAgI290LXBjLWRlc2NcbiAgLm90LWxpbmstYnRuLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrXG4gICNvbmV0cnVzdC1wYy1zZGtcbiAgLm90LXZuZC1zZXJ2XG4gIC5vdC12bmQtaXRlbVxuICAub3Qtdm5kLWluZm9cbiAgYSxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKSB+ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcGMtc2RrICNvdC1sc3QtY250IC5vdC12bmQtaW5mbyBhIHtcbiAgY29sb3I6ICM1NzhiZmE7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgI29uZXRydXN0LXBjLXNka1xuICBidXR0b246bm90KCNjbGVhci1maWx0ZXJzLWhhbmRsZXIpOm5vdCgub3QtY2xvc2UtaWNvbik6bm90KCNmaWx0ZXItYnRuLWhhbmRsZXIpOm5vdChcbiAgICAub3QtcmVtb3ZlLW9iamVjdGlvbi1oYW5kbGVyXG4gICk6bm90KC5vdC1vYmotbGVnLWJ0bi1oYW5kbGVyKTpub3QoW2FyaWEtZXhwYW5kZWRdKTpub3QoLm90LWxpbmstYnRuKSxcbiNyb290Omhhcyg+IC5jb2luYmFzZS5kYXJrKVxuICB+ICNvbmV0cnVzdC1jb25zZW50LXNka1xuICAjb25ldHJ1c3QtcGMtc2RrXG4gIC5vdC1sZWctYnRuLWNvbnRhaW5lclxuICAub3QtYWN0aXZlLWxlZy1idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTc4YmZhO1xuICBib3JkZXItY29sb3I6ICM1NzhiZmE7XG4gIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gIGNvbG9yOiAjMGEwYjBkO1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgI29uZXRydXN0LXBjLXNka1xuICAub3QtdGdsXG4gIGlucHV0OmNoZWNrZWRcbiAgKyAub3Qtc3dpdGNoXG4gIC5vdC1zd2l0Y2gtbm9iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU3OGJmYSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xufVxuXG4jcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgI29uZXRydXN0LWJhbm5lci1zZGtcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyLFxuI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gIH4gI29uZXRydXN0LWNvbnNlbnQtc2RrXG4gICNvbmV0cnVzdC1iYW5uZXItc2RrXG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50XG4gICNvbmV0cnVzdC1idXR0b24tZ3JvdXBcbiAgI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMGEwYjBkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDQwcHggIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzZweCkge1xuICAjcm9vdDpoYXMoPiAuY29pbmJhc2UuZGFyaylcbiAgICB+ICNvbmV0cnVzdC1jb25zZW50LXNka1xuICAgICNvbmV0cnVzdC1iYW5uZXItc2RrXG4gICAgI29uZXRydXN0LWJ1dHRvbi1ncm91cC1wYXJlbnRcbiAgICAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwXG4gICAgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlcixcbiAgI3Jvb3Q6aGFzKD4gLmNvaW5iYXNlLmRhcmspXG4gICAgfiAjb25ldHJ1c3QtY29uc2VudC1zZGtcbiAgICAjb25ldHJ1c3QtYmFubmVyLXNka1xuICAgICNvbmV0cnVzdC1idXR0b24tZ3JvdXAtcGFyZW50XG4gICAgI29uZXRydXN0LWJ1dHRvbi1ncm91cFxuICAgICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6ICMwYTBiMGQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJQY1RleHRDb2xvciI6IiMwYTBiMGQiLCJQY0J1dHRvbkNvbG9yIjoiIzAwNTJmZiIsIlBjQnV0dG9uVGV4dENvbG9yIjoiI0ZGRkZGRiIsIlBjQmFja2dyb3VuZENvbG9yIjoiI0ZGRkZGRiIsIlBjTWVudUNvbG9yIjoiI0Y0RjRGNCIsIlBjTWVudUhpZ2hMaWdodENvbG9yIjoiI0ZGRkZGRiIsIlBjQWNjb3JkaW9uQmFja2dyb3VuZENvbG9yIjoiI0ZGRkZGRiIsIlBDZW50ZXJFeHBhbmRUb1ZpZXdUZXh0IjoiIiwiUGNFbmFibGVUb2dnbGVzIjpmYWxzZSwiUGNMaW5rc1RleHRDb2xvciI6IiMwMDUyZmYiLCJUZXh0Q29sb3IiOiIjMEEwQjBEIiwiQnV0dG9uQ29sb3IiOiIjMDA1MmZmIiwiQmFubmVyTVBCdXR0b25Db2xvciI6IiNFRUYwRjMiLCJCYW5uZXJNUEJ1dHRvblRleHRDb2xvciI6IiNFRUYwRjMiLCJCdXR0b25UZXh0Q29sb3IiOiIjRkZGRkZGIiwiQmFja2dyb3VuZENvbG9yIjoiI0VFRjBGMyIsIkJhbm5lckxpbmtzVGV4dENvbG9yIjoiIzAwNTJmZiIsIkJhbm5lckFjY29yZGlvbkJhY2tncm91bmRDb2xvciI6IiNGRkZGRkYiLCJDb29raWVQZXJzaXN0ZW50TG9nbyI6Imh0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvbG9nb3Mvc3RhdGljL290X3BlcnNpc3RlbnRfY29va2llX2ljb24ucG5nIiwiT3B0YW5vbkxvZ28iOiJodHRwczovL2Nkbi5jb29raWVsYXcub3JnL2xvZ29zL2YwNTg5MmYxLTgzNGEtNDYxOC04NGY2LWEyYTVkMGVmNGRiMS8wMTk3M2U1Zi1kMmVjLTcyOWUtOGFjMy04ODQ2NDUyMDRjZDEvMmJiMzJmMGItMTQ5Yi00YTNjLThjZmQtZGQ0YzU4M2M5YTYyL2NvaW5iYXNlX2xvZ29AMngucG5nIiwiQm5yTG9nbyI6IiIsIk9uZVRydXN0Rm9vdGVyTG9nbyI6Imh0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvbG9nb3Mvc3RhdGljL3Bvd2VyZWRfYnlfbG9nby5zdmciLCJPcHRhbm9uQ29va2llRG9tYWluIjoiY29pbmJhc2UuY29tIiwiT3B0YW5vbkdyb3VwSWRQZXJmb3JtYW5jZUNvb2tpZXMiOiJDMDAwMiIsIk9wdGFub25Hcm91cElkRnVuY3Rpb25hbGl0eUNvb2tpZXMiOiJDMDAwMyIsIk9wdGFub25Hcm91cElkVGFyZ2V0aW5nQ29va2llcyI6IkMwMDA0IiwiT3B0YW5vbkdyb3VwSWRTb2NpYWxDb29raWVzIjoiQzAwMDUiLCJTaG93U3ViR3JvdXBDb29raWVzIjpmYWxzZSwiTGVnYWN5QmFubmVyTGF5b3V0IjoiZGVmYXVsdF9mbGF0X2JvdHRvbV90d29fYnV0dG9uX2JsYWNrIiwiT3B0YW5vbkhpZGVDb29raWVTZXR0aW5nQnV0dG9uIjoiIiwiVXNlUlRMIjpmYWxzZSwiU2hvd0Jhbm5lckFjY2VwdEJ1dHRvbiI6dHJ1ZSwiU2hvd0Jhbm5lckNvb2tpZVNldHRpbmdzIjp0cnVlLCJTaG93Q29va2llTGlzdCI6ZmFsc2UsIlBDU2hvd0Nvb2tpZUhvc3QiOnRydWUsIlBDU2hvd0Nvb2tpZUR1cmF0aW9uIjp0cnVlLCJQQ1Nob3dDb29raWVUeXBlIjp0cnVlLCJQQ1Nob3dDb29raWVDYXRlZ29yeSI6dHJ1ZSwiUENTaG93Q29va2llRGVzY3JpcHRpb24iOnRydWUsIkFsbG93SG9zdE9wdE91dCI6ZmFsc2UsIkNvb2tpZUxpc3RUaXRsZUNvbG9yIjoiIzY5Njk2OSIsIkNvb2tpZUxpc3RHcm91cE5hbWVDb2xvciI6IiM2OTY5NjkiLCJDb29raWVMaXN0VGFibGVIZWFkZXJDb2xvciI6IiM2OTY5NjkiLCJDb29raWVMaXN0VGFibGVIZWFkZXJCYWNrZ3JvdW5kQ29sb3IiOiIjRjhGOEY4IiwiQ29va2llc1YyTmV3Q29va2llUG9saWN5Ijp0cnVlLCJDb29raWVMaXN0UHJpbWFyeUNvbG9yIjoiIzY5Njk2OSIsIkNvb2tpZUxpc3RDdXN0b21Dc3MiOiIiLCJUVExHcm91cEJ5VGVjaCI6ZmFsc2UsIlRUTFNob3dUZWNoRGVzYyI6ZmFsc2UsIkNvbnNlbnRJbnRlZ3JhdGlvbiI6eyJDb25zZW50QXBpIjoiaHR0cHM6Ly9wcml2YWN5cG9ydGFsLm9uZXRydXN0LmNvbS9yZXF1ZXN0L3YxL2NvbnNlbnRyZWNlaXB0cyIsIlJlcXVlc3RJbmZvcm1hdGlvbiI6ImV5SmhiR2NpT2lKU1V6VXhNaUo5LmV5SnZkRXAzZEZabGNuTnBiMjRpT2pFc0luQnliMk5sYzNOSlpDSTZJamMxWXpWall6VTVMVFF3T1RjdE5HTXlaaTFpWVdFNExUTmxPRFEwWVRGbE5UWXhPQ0lzSW5CeWIyTmxjM05XWlhKemFXOXVJam8wTENKcFlYUWlPaUl5TURJMUxURXdMVEk0VkRBNU9qUXhPakUwTGpjME15SXNJbTF2WXlJNklrTlBUMHRKUlNJc0luQnZiR2xqZVY5MWNta2lPaUpqYjJsdVltRnpaUzVqYjIwaUxDSnpkV0lpT201MWJHd3NJbWx6Y3lJNmJuVnNiQ3dpZEdWdVlXNTBTV1FpT2lKbU1EVTRPVEptTVMwNE16UmhMVFEyTVRndE9EUm1OaTFoTW1FMVpEQmxaalJrWWpFaUxDSmtaWE5qY21sd2RHbHZiaUk2SWxSb2FYTWdZMjlzYkdWamRHbHZiaUJ3YjJsdWRDQmpZWEIwZFhKbGN5QjBhR1VnWTNWeWNtVnVkQ0J6YVhSbElIWnBjMmwwYjNJZ1kyOXVjMlZ1ZENCd2NtVm1aWEpsYm1ObGN5Qm1iM0lnZEdobElHUnZiV0ZwYmpvZ1kyOXBibUpoYzJVdVkyOXRMV1Z1SUhOd1pXTnBabWxsWkM0aUxDSmpiMjV6Wlc1MFZIbHdaU0k2SWtOUFQwdEpSVUpCVGs1RlVpSXNJbUZzYkc5M1RtOTBSMmwyWlc1RGIyNXpaVzUwY3lJNlptRnNjMlVzSW1SdmRXSnNaVTl3ZEVsdUlqcG1ZV3h6WlN3aWNIVnljRzl6WlhNaU9tNTFiR3dzSW01dmRHbGpaWE1pT2x0ZExDSmtjMFJoZEdGRmJHVnRaVzUwY3lJNmJuVnNiQ3dpWVhWMGFHVnVkR2xqWVhScGIyNVNaWEYxYVhKbFpDSTZabUZzYzJVc0luSmxZMjl1Wm1seWJVRmpkR2wyWlZCMWNuQnZjMlVpT21aaGJITmxMQ0p2ZG1WeWNtbGtaVUZqZEdsMlpWQjFjbkJ2YzJVaU9uUnlkV1VzSW1SNWJtRnRhV05EYjJ4c1pXTjBhVzl1VUc5cGJuUWlPblJ5ZFdVc0ltRmtaR2wwYVc5dVlXeEpaR1Z1ZEdsbWFXVnljeUk2Ym5Wc2JDd2liWFZzZEdsd2JHVkpaR1Z1ZEdsbWFXVnlWSGx3WlhNaU9tWmhiSE5sTENKbGJtRmliR1ZRWVhKbGJuUlFjbWx0WVhKNVNXUmxiblJwWm1sbGNuTWlPbVpoYkhObExDSndZWEpsYm5SUWNtbHRZWEo1U1dSbGJuUnBabWxsY25OVWVYQmxJanB1ZFd4c0xDSmhaR1JwZEdsdmJtRnNVR0Z5Wlc1MFNXUmxiblJwWm1sbGNsUjVjR1Z6SWpwYlhTd2laVzVoWW14bFIyVnZiRzlqWVhScGIyNGlPblJ5ZFdVc0ltUmhkR0ZGYkdWdFpXNTBWSGx3WlUxaGNDSTZlMzBzSW5SbGJtRnVkRXRsZVNJNk1URXpNek45LlhXVmNyYXNLSUNucW5JMFU5MWNZckc4NXpmN1ZGNkc0bHpiem9yX2xGYm5wcU5sdzhjUllvZXBUUVdHVG51ZE5hcU9FTVBlbXZ6b19mQ3FVWWV1RmUwajVpSE1iVUtid0hFRTdzS3Fsb0VqVVZvY0tTMTRHYTFkYVNkYzlleTRobkwzWTF6ZkhlZG11Nkxta0FLMW9MZG1GbGpYNE5qZDQtbnp0cTktMTFaRG9kQ05sbFFvbW5BMXdBUG5MRHM0d2xyWGNENm1WUnVGMnlDTGZydlBmMFpFRDlrVms3QjIyamNzalNuNng4Y1A2RDUtNXYxeHJKOEg4RU5ucFVXczJ5UFpzTWtjWnNKS2prNFgtUWdKVTQtR29oYms2VkdEQ0JoNXVYbmxJajZmUW5YajZEN1NQRlVRQUlBOFNlSXlKNDBNZzNJR1VrQndxVnNwUEVSeUdqeUNXZFZlNm9jNjJQQkxlWkc3M3pkbENxTnZsSzIxTUNfY2FpUi01Vk9fdnFibUFVZDdicnFYTUVUYUFNdEpldUR6bFZMNWZLdVhGR0h3LVRpSnJhVHVQSjFRNmZkVXE4RjI4aTRqRTNrY2NHSHZYaHJqbjhnenU3VHYyMmVWLTdpV0paZ2xMdEZUbDkzV08zQlppMklKM0ZSRHpTRWFKcl94LUNvTzltZm5NRkRrcHNxMURlS0JDVTViUlU1NVlJMk5rYlRDVk5qX3dfSWhmZ081YWVseVpQSHhvRHVveHdjUF9CSmwxbVNQRzVSdldjX0pITmZBU1pKdWpEY0xyc2dTQ05NZ2E0WFl6NjlTWVNsQ0xfUWdXZ3NpRm9raXdsUzdZX3MyMmxjelhkZElHY2RhR0ZEdG5uZ241aHdOQ25XV2MwN3g3RG56YldmSG01NEJ3ZWhrIiwiSWRlbnRpZmllZFJlY2VpcHRzQWxsb3dlZCI6dHJ1ZSwiRGVmYXVsdElkZW50aWZpZXIiOiJFbWFpbCIsIkRlZmF1bHRBbm9ueW1vdXNJZGVudGlmaWVyIjoiQ29va2llIFVuaXF1ZSBJZCIsIkVuYWJsZUpXVEF1dGhGb3JLbm93blVzZXJzIjpmYWxzZSwiQW5vbnltb3VzQ29uc2VudEFwaSI6Imh0dHBzOi8vcHJpdmFjeXBvcnRhbC5vbmV0cnVzdC5jb20vcmVxdWVzdC92MS9jb25zZW50cmVjZWlwdHMvYW5vbnltb3VzIiwiQ1JPQ29uc2VudEFwaSI6Imh0dHBzOi8vcHJpdmFjeXBvcnRhbC5vbmV0cnVzdC5jb20vcmVxdWVzdC92MS9jb25zZW50cmVjZWlwdHMvY3JvIiwiR1BDUmVhc29uSUQiOiJiYzkwYjgzNi1kOTY4LTRkYTEtODVjMy1mZmM0YTA5MDViMjgiLCJETlRSZWFzb25JRCI6IjJlYzJjOWIyLTVjOTAtNDY5Ny04YTlhLWRmOGJmNTc3MDk4MCIsIkFUVFJlYXNvbklEIjoiYjc4YzY4ZTMtMTU2OC00MjQ4LTk5YzItY2FkMzcyNDNjZDAxIiwiQUdFR0FURVJlYXNvbklEIjoiODIzMzc2NjQtMTQ4MC00NTZkLWExY2YtZTYwZmZkMmFiM2JlIn0sIkdsb2JhbE9wdE91dEZvcm1JbnRlZ3JhdGlvbiI6eyJHbG9iYWxPcHRPdXRGb3JtVVJMIjpudWxsLCJSZXF1ZXN0SW5mb3JtYXRpb24iOm51bGwsIkdsb2JhbE9wdE91dEVuYWJsZWQiOmZhbHNlLCJHbG9iYWxPcHRPdXREU0FSRm9ybUlEIjpudWxsLCJHbG9iYWxPcHRPdXRDdXN0b21DYXRlZ29yeUlEcyI6bnVsbCwiR2xvYmFsT3B0T3V0Q29uZmlybWF0aW9uTWVzc2FnZSI6bnVsbCwiR2xvYmFsT3B0T3V0SW5zdHJ1Y3Rpb25hbE1lc3NhZ2UiOm51bGwsIkdsb2JhbE9wdE91dEFsbG93VW5rbm93blVzZXJzIjpudWxsLCJHbG9iYWxPcHRPdXRDb21tdW5pY2F0aW9uTWVkaXVtIjpudWxsLCJHbG9iYWxPcHRPdXREZXNjcmlwdGlvbiI6bnVsbCwiR2xvYmFsT3B0T3V0U3VibWl0QnV0dG9uVGV4dCI6bnVsbCwiR2xvYmFsT3B0T3V0Q2xvc2VCdXR0b25UZXh0IjpudWxsLCJHbG9iYWxPcHRPdXRDYW5jZWxCdXR0b25UZXh0IjpudWxsLCJHbG9iYWxPcHRPdXRJbnB1dFZhbGlkYXRpb25FcnJvciI6bnVsbCwiR2xvYmFsT3B0T3V0U3VibWlzc2lvbkVycm9yIjpudWxsLCJHbG9iYWxPcHRPdXRLbm93blVzZXJFcnJvciI6bnVsbH0sIkJDb25zZW50UHVycG9zZXNUZXh0IjoiQ29uc2VudCBQdXJwb3NlcyIsIkJGZWF0dXJlc1RleHQiOiJGZWF0dXJlcyIsIkJMZWdpdGltYXRlSW50ZXJlc3RQdXJwb3Nlc1RleHQiOiJMZWdpdGltYXRlIEludGVyZXN0IFB1cnBvc2VzIiwiQlNwZWNpYWxGZWF0dXJlc1RleHQiOiJTcGVjaWFsIEZlYXR1cmVzIiwiQlNwZWNpYWxQdXJwb3Nlc1RleHQiOiJTcGVjaWFsIFB1cnBvc2VzIiwiQkNvbnNlbnRUZXh0IjoiQ29uc2VudCIsIkJMZWdpdEludGVyZXN0VGV4dCI6IkxlZ2l0aW1hdGUgSW50ZXJlc3QiLCJJYWJMZWdhbFRleHRVcmwiOiJodHRwczovL3RjZi5jb29raWVwZWRpYS5jby51ayIsIlBDQ0xpc3ROYW1lIjoiTmFtZSIsIlBDQ0xpc3RIb3N0IjoiSG9zdCIsIlBDQ0xpc3REdXJhdGlvbiI6IkR1cmF0aW9uIiwiUENDTGlzdFR5cGUiOiJUeXBlIiwiUENDTGlzdENhdGVnb3J5IjoiQ2F0ZWdvcnkiLCJQQ0NMaXN0RGVzY3JpcHRpb24iOiJEZXNjcmlwdGlvbiIsIlBDRGlhbG9nQ2xvc2UiOiJbYGRpYWxvZyBjbG9zZWRgXSIsIlBjTGVnSW50QnV0dG9uQ29sb3IiOiIjRkZGRkZGIiwiUGNMZWdJbnRCdXR0b25UZXh0Q29sb3IiOiIjNEQ0RDREIiwiQkNhdGVnb3J5Q29udGFpbmVyQ29sb3IiOiIjRjlGOUZDIiwiQkNhdGVnb3J5U3R5bGVDb2xvciI6IiMzODYwQkUiLCJCTGluZUJyZWFrQ29sb3IiOiIjRTlFOUU5IiwiQlNhdmVCdG5Db2xvciI6IiMzNDZFNEEiLCJCQ2F0ZWdvcnlTdHlsZSI6IkNoZWNrYm94IiwiQkFuaW1hdGlvbiI6IlJlbW92ZV9BbmltYXRpb24iLCJCQ29udGludWVDb2xvciI6IiM1YjYxNmUiLCJQQ0NvbnRpbnVlQ29sb3IiOiIjNWI2MTZlIiwiUENGb290ZXJMb2dvVXJsIjoiaHR0cHM6Ly93d3cub25ldHJ1c3QuY29tL3NvbHV0aW9ucy9jb25zZW50LWFuZC1wcmVmZXJlbmNlcy8iLCJQQ0Zvb3RlckNvb2tpZVByb0xvZ29VcmwiOm51bGwsIkJGb2N1c0JvcmRlckNvbG9yIjoiIzAxNGNlYyIsIlBDRm9jdXNCb3JkZXJDb2xvciI6IiMwMTRjZWMiLCJUZW1wbGF0ZU5hbWUiOiJDb2luYmFzZSBXZWIgT3B0LUluIFRlbXBsYXRlIChETyBOT1QgREVMRVRFKSIsIkdlb1J1bGVHcm91cE5hbWUiOiJDb2luYmFzZSBBdWRpZW5jZSIsIkdlb1J1bGVOYW1lIjoiT1BULUlOIiwiT1RDbG9zZUJ0bkxvZ28iOiJodHRwczovL2Nkbi5jb29raWVsYXcub3JnL2xvZ29zL3N0YXRpYy9vdF9jbG9zZS5zdmciLCJPVEV4dGVybmFsTGlua0xvZ28iOiJodHRwczovL2Nkbi5jb29raWVsYXcub3JnL2xvZ29zL3N0YXRpYy9vdF9leHRlcm5hbF9saW5rLnN2ZyIsIk9UR3VhcmRMb2dvIjoiaHR0cHM6Ly9jZG4uY29va2llbGF3Lm9yZy9sb2dvcy9zdGF0aWMvb3RfZ3VhcmRfbG9nby5zdmciLCJPVFNwcml0ZUxvZ28iOm51bGwsIkJhbm5lckV4dGVybmFsTGlua3NMb2dvIjoiIiwiQmFubmVyUmVxdWlyZUV4dGVybmFsTGlua3MiOmZhbHNlLCJCYW5uZXJSZXF1aXJlRXh0ZXJuYWxMaW5rc0N1c3RvbUxvZ28iOmZhbHNlfSwiTnRmeUNvbmZpZyI6eyJTaG93TnRmeSI6ZmFsc2UsIk50ZnlEdXJhdGlvbiI6NSwiU2hvd0NTIjp0cnVlLCJDU1R5cGUiOiJCVVRUT04iLCJDU1R4dCI6IkNvb2tpZSBTZXR0aW5ncyIsIlN5bmMiOnsiVGl0bGUiOiJDb29raWUgUHJlZmVyZW5jZXMiLCJUaXRsZUFsaWduIjoibGVmdCIsIlRpdGxlQ29sb3IiOiIjNjk2OTY5IiwiRGVzYyI6IlN5bmNpbmcuLi4iLCJEZXNjQWxpZ24iOiJsZWZ0IiwiRGVzY0NvbG9yIjoiIzY5Njk2OSIsIkJnQ29sb3IiOiIjRkZGRkZGIiwiQmRyQ29sb3IiOiIjRkZGRkZGIiwiSWNvbkJnQ29sb3IiOiIjMTI3NkNFIiwiU2hvd0Nsb3NlIjp0cnVlLCJDbG9zZUFyaWEiOiJDbG9zZSIsIlNob3dJY29uIjp0cnVlfSwiQ29tcGxldGUiOnsiVGl0bGUiOiJDb29raWUgUHJlZmVyZW5jZXMiLCJUaXRsZUFsaWduIjoibGVmdCIsIlRpdGxlQ29sb3IiOiIjNjk2OTY5IiwiRGVzYyI6IlN5bmNlZCIsIkRlc2NBbGlnbiI6ImxlZnQiLCJEZXNjQ29sb3IiOiIjNjk2OTY5IiwiQmdDb2xvciI6IiNGRkZGRkYiLCJCZHJDb2xvciI6IiNGRkZGRkYiLCJJY29uQmdDb2xvciI6IiM2Q0MwNEEiLCJTaG93Q2xvc2UiOnRydWUsIkNsb3NlQXJpYSI6IkNsb3NlIiwiU2hvd0ljb24iOnRydWV9LCJDU0J1dHRvbiI6eyJDb2xvciI6IiNGRkZGRkYiLCJCZ0NvbG9yIjoiIzEyNzZDRSIsIkJkckNvbG9yIjoiIzEyNzZDRSIsIkFsaWduIjoiY2VudGVyIn0sIkNTTGluayI6eyJDb2xvciI6IiMxMjc2Q0UiLCJBbGlnbiI6ImNlbnRlciJ9fSwiT1RURGF0YSI6bnVsbCwiTW9iaWxlRGF0YSI6bnVsbH0="}},"time_used":15,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":15,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/src/kraken-theme.css","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.442Z","timestamp":1785108243442,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /src/kraken-theme.css HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/src/main.tsx\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 1817\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: no-cache\r\nEtag: W/\"719-l2C7L7ZIznUA/+ZLngvzR0fH3UM\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Nginx:1.18.0","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":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":1817,"size_decoded":2063,"mime_type":"text/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (1372)","md5":"98548eb9987a4f0107ea5d618cd7bfed","sha1":"9760bb2fb648ce7500ffe64b9e0bf34747c7dd43","sha256":"a7dcb855cdc3165d7d29edfc47a1b063ce069de909faa9135917d24f6a1c057b","sha512":"73f6defb26fa41a9bcf8a53671cd51f4bfe167445404c38bf759e7c3ea079dc9e7abc710f4c3651041d26264bab6929693c1a84f131369ef0e362b6284a2210a","ssdeep":"","tlshash":"9d31ce22673b62746c120faefedeb2107f78394488343b66dfdcd95d06c61f442551a8","first_seen":"2026-07-26T23:24:50.408134Z","last_seen":"2026-07-26T23:25:46.837715Z","times_seen":3,"resource_available":true,"data":"aW1wb3J0IHsgY3JlYXRlSG90Q29udGV4dCBhcyBfX3ZpdGVfX2NyZWF0ZUhvdENvbnRleHQgfSBmcm9tICIvQHZpdGUvY2xpZW50IjtpbXBvcnQubWV0YS5ob3QgPSBfX3ZpdGVfX2NyZWF0ZUhvdENvbnRleHQoIi9zcmMva3Jha2VuLXRoZW1lLmNzcyIpO2ltcG9ydCB7IHVwZGF0ZVN0eWxlIGFzIF9fdml0ZV9fdXBkYXRlU3R5bGUsIHJlbW92ZVN0eWxlIGFzIF9fdml0ZV9fcmVtb3ZlU3R5bGUgfSBmcm9tICIvQHZpdGUvY2xpZW50Igpjb25zdCBfX3ZpdGVfX2lkID0gIi9ob21lL2NicGFubC9mcm9udGVuZC9zcmMva3Jha2VuLXRoZW1lLmNzcyIKY29uc3QgX192aXRlX19jc3MgPSAiLyogS3Jha2VuIGJyYW5kIOKAlCBhY3RpdmUgd2hlbiBib2R5IGhhcyAudGhlbWUta3Jha2VuICovXG4udGhlbWUta3Jha2VuIHtcbiAgLS1rcmFrZW4tYmc6ICNmYWY5ZmM7XG4gIC0ta3Jha2VuLWZnOiAjMWExNTIzO1xuICAtLWtyYWtlbi1jYXJkOiAjZmZmZmZmO1xuICAtLWtyYWtlbi1wcmltYXJ5OiAjNzEzMmY1O1xuICAtLWtyYWtlbi1wcmltYXJ5LWZnOiAjZmZmZmZmO1xuICAtLWtyYWtlbi1wcmltYXJ5LXNvZnQ6ICNlZGU4ZmU7XG4gIC0ta3Jha2VuLW11dGVkOiAjNmI2NTc4O1xuICAtLWtyYWtlbi1ib3JkZXI6ICNlOGU0ZjA7XG4gIC0ta3Jha2VuLWhlcm8tZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxMzVkZWcsXG4gICAgI2YzZjBmYSAwJSxcbiAgICAjZWRlOGZlIDUwJSxcbiAgICAjZmFmM2YwIDEwMCVcbiAgKTtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmO1xufVxuXG4udGhlbWUta3Jha2VuIC5rcmFrZW4tYmctcGFnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWtyYWtlbi1iZyk7XG4gIGNvbG9yOiB2YXIoLS1rcmFrZW4tZmcpO1xufVxuXG4udGhlbWUta3Jha2VuIC5rcmFrZW4tYmctaGVybyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWtyYWtlbi1oZXJvLWdyYWRpZW50KTtcbn1cblxuLnRoZW1lLWtyYWtlbiAua3Jha2VuLWNhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1rcmFrZW4tY2FyZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWtyYWtlbi1ib3JkZXIpO1xufVxuXG4udGhlbWUta3Jha2VuIC5rcmFrZW4tYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1rcmFrZW4tcHJpbWFyeSk7XG4gIGNvbG9yOiB2YXIoLS1rcmFrZW4tcHJpbWFyeS1mZyk7XG59XG5cbi50aGVtZS1rcmFrZW4gLmtyYWtlbi1idG4tcHJpbWFyeTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuLnRoZW1lLWtyYWtlbiAua3Jha2VuLWJ0bi1zb2Z0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0ta3Jha2VuLXByaW1hcnktc29mdCk7XG4gIGNvbG9yOiB2YXIoLS1rcmFrZW4tcHJpbWFyeSk7XG59XG5cbi50aGVtZS1rcmFrZW4gLmtyYWtlbi10ZXh0LW11dGVkIHtcbiAgY29sb3I6IHZhcigtLWtyYWtlbi1tdXRlZCk7XG59XG5cbi50aGVtZS1rcmFrZW4gLmtyYWtlbi1ib3JkZXItZm9jdXM6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWtyYWtlbi1wcmltYXJ5KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1rcmFrZW4tcHJpbWFyeSkgMjAlLCB0cmFuc3BhcmVudCk7XG59XG4iCl9fdml0ZV9fdXBkYXRlU3R5bGUoX192aXRlX19pZCwgX192aXRlX19jc3MpCmltcG9ydC5tZXRhLmhvdC5hY2NlcHQoKQppbXBvcnQubWV0YS5ob3QucHJ1bmUoKCkgPT4gX192aXRlX19yZW1vdmVTdHlsZShfX3ZpdGVfX2lkKSk="}},"time_used":50,"timings":{"blocked":-1,"dns":0,"connect":16,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"dynamic-assets.coinbase.com/41f6a93a3a222078c939115fc304a67c384886b7a9e6c15dcbfa6519dc45f6bb4a586e9c48535d099efa596dbf8a9dd72b05815bcd32ac650c50abb5391a5bd0/asset_icons/1f8489bb280fb0a0fd643c1161312ba49655040e9aaaced5f9ad3eeaf868eadc.png","fqdn":"dynamic-assets.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.055Z","timestamp":1785108244055,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /41f6a93a3a222078c939115fc304a67c384886b7a9e6c15dcbfa6519dc45f6bb4a586e9c48535d099efa596dbf8a9dd72b05815bcd32ac650c50abb5391a5bd0/asset_icons/1f8489bb280fb0a0fd643c1161312ba49655040e9aaaced5f9ad3eeaf868eadc.png HTTP/1.1\r\nHost: dynamic-assets.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-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\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: image/png\r\ncontent-length: 2113\r\nlast-modified: Thu, 28 Feb 2019 18:36:42 GMT\r\netag: \"1209268b2a9b376e08bdcfb12b98aaf9\"\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 eb200ae275096cdc1167d92125284ef0.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: MXP53-P4\r\nx-amz-cf-id: 9TNPcQ6kfvSCZJdt8gOScKSetrOs_ZwDKws8ETcF85I4fcuLSZVW2A==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=3XysdeKxqZE%2FbPppSuOoFyT%2Fe54w7Kr67Pzny58JworQGB37WR%2Fxta2LbMkaugM4M1ypPZaxQu5sX75buTY5kLUzKyPfhPaSeJv7%2BvQ0RsIcMbrOM6xKNO1rUS6D3JKBSfr3m%2BBYHsUgcagcPrk0\"}]}\r\ncache-control: public, max-age=7200\r\ncf-polished: ok, orig_size=2113\r\ncf-bgj: imgq:100,h2pri\r\npriority: u=4;i=?0,cf-chb=(37;u=4;i 862;u=5;i=?0)\r\nage: 6598\r\nexpires: Mon, 27 Jul 2026 01:24:04 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nvary: accept-encoding\r\ncf-ray: a21727dd68040883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2113,"size_decoded":3301,"mime_type":"image/png","magic":"PNG image data, 128 x 128, 8-bit colormap, non-interlaced","md5":"1209268b2a9b376e08bdcfb12b98aaf9","sha1":"4478f21f5228225c5ab4552c2b1abbe35e862be9","sha256":"9adc9724481b9ee1393ee384f3cc3e39fdbf21936c38fa581ea1536371d0ceae","sha512":"f89abdc3e69bc31ce1eb397032391c2bac1c74f85f89cdb0767ac931433d350ef5dfdcc4ede5840b1e3d3ad2126f9f5859bd2509cf0ab300ca80b52336aaa00b","ssdeep":"","tlshash":"a34118ea0a1b7e3a134f380386fa36676c0ccfa944d42270f11233522e7907cd5fa888","first_seen":"2023-05-11T18:09:32Z","last_seen":"2026-07-26T23:25:46.853157Z","times_seen":184,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAACu1BMVEUAAAAwr4Aqon0po30moX0noXwnonsnonwnonwnoXsnonsnonwrqoAmpH4noX0monwmonwmoXsrqoAnonwnonwnonwnonwppIAno3snoXwop4AnonsnonsnooAnonwmonsqo30noXwmpH4upIAnoXxAv4Aoo3snonwppXsmoXwnoXwsp3snoXwpo36A/4Anon0nonwnsYkmonwuooAnoXwxqoYppXsnoXwnoXyHy7bD5dpbuJsnonut283///9wwaiFyrTA49j9/v3r9vNat5v4/Pq74dYooXsxpoJJsJBhup95xa2KzLiY0sCn2cm139LE5dvS6+T+/v7z+ffN6eC/49iw3c+i1saT0L1ywqlZt5pCrYwro34monxUtZd4xK2b08Lb7+ns9vPW7ear2syd1MOPzruByLJ0wqpmvaL5/PvP6uJrv6WU0L6y3dDH593d8Orz+vi03tGQz7tsv6VIsJAqon0oonxQs5SCybPl8++64dV7xq8+q4opon0wpYFHr4+GyrWm2MnF5tz6/fyj18dArIs0p4N1w6u84tb1+vnx+fa44NQxpYE9q4lqvqSX0r/L6N/8/f3n9PCk18heuZ0noXxpvqPB5Nma08EzpoNvwKfu9/VKsJFku6Dc8Opzwqo7qoe34NOe1cREro3i8u1ju6Aso3/3+/pBrIvI5904qYZ8xq9/x7Gf1cXR6+NkvKFXtpkypoL0+vhfup6+4tctpH+g1sX7/fyDybNFro7v+PWo2crq9vKl2Mix3c8vpYA3qIUupIBnvaLA5Nny+ffk8+7F5dtovaNStJU8qohDrY1xwamv3M7Q6uLh8uyNzbrw+Pas28ySz7yIy7eAyLGW0b/M6eDc7+lIr49uwKeRz7zY7uep2co5qYZWtpi239Pt9/Te8Ot+x7BlvKFNspM1p4Q2qITC5Np1UGUrAAAAXnRSTlMAEDdeham4xdLf7PkMSYvC6f8GQoTG+ziV7SB82TSv/j25QxyrBHTzPtSIHcRLAomoDbsWzBUf2nX///+s/////////////1////////////////////////////+GK/+6OgAABNdJREFUeAHEzgVCw0AABMBt0Wq6qWuMuuPu8P8f4U5jF7l5wUBIIrm2vrG5tZ1KZzLp1PbW5sb6WjKBWGRzeaXAlQpKPpdFlNRiqVyho0q5VFQRjWqtTk/qtSpC12i26EOr2UCY2h2NPmmdNsKiGxRi6AiDqVCYYiIoa4eB7FgIotvrM6B+rwthgyFDMBxATHekMRTaqAsB4wlDM7Hg2zTNEKWn8Gc21xgqbT6DD+qCoVuo8Gy5ywjsLuHR3j4jsX8ATw6PGJGjQ3iwd8TIHO3B1XKfEdpfwoW6y0jtqnA0WzBiixmczBm5ORxMNUZOm8LWOM0YpMew0Z0wFpMuVhsxJiOsNNAYE22AFbpDxmbYxX/HjNEx/rH6tHFyKuyMNvoW/jqnnYtLYVe0c44/TMYboInflLgDCn7RGXeAOn4y4g8Y+KHN+ANs41tHRqCDLw1NRkBr4FOTMgJs4tORnEALH6qUE2AV72qyAjW8UeuyAnUVr4p0dn2zyu3lL3c3q9zTWRGvShTxcPnLI0WU8KosL1AGgGxFXqCSBZCjvABzAPIyA3kAisyAAqAgM1AAEpQZYAJJuYHkM2v1lKBXDAUAOGM9nSXMLsoztm3btm3btm3bZu3uonYn+XW/54vkkGiBILR1dPX0DQyNjE1M8S9m5haWVtbKNrZ29iAICeLA558dnZwtXMxMXd1U3D08vbx9fPEvfv569wOsAoOCQ0zVTELDwiMigS8ORAp4iYqOCY1VDY5zjn+YkMg7BUnJPimpaWrpbhk2mcCTFFEEpqzsnNy8/PsPCwStgcKi4pLSsvKKKGBSZG6CyqrqdLUa20Rhi7C2LjS9PrWBvQ1kgarRBZua7UXrgpaAXGxlpEKWyAFNG2Kgveht2N6BZp1AI0fkgcILMbeLizkQjtjdAxTyRAEoehF9+7g4QD8iDgCFAv0Ag4g4VCj6AYbNEHGEegB6CkZNEHHMw060A4xP4BcGQCPPKMLJqWlEVDWemYU7NM354i++9fPwv0Rbg2D8YkEJqORYbQjti7n4VceSsu0y/KdycjRrZSVrdLXyjvZbC1jf+P5yyjKw2lAGWFb9A83wG9XNrUXl7Z3dKGCa3LPdDzs4nMPvjpwdgUmGSAMP9g+PLU7wF9UFt6C408Gz8ws9b6XwoqqqIv+6ZqcL/cuMJYur6zz87eigXwd4kSZSwI+b2yehT32RTydXz5R1nwM/pIgD8C2q8MXt/baXQW6bZvi/6VevD6sPLt+8ffce+CdJJEAYUR988S8fC0Aon4k3iwOEohiAIXfc3f2EO2zDoAyGuxb6308nyOlLm7jxTzL+oxT/LOd/TPBfM/znlP495xcU/IomyAEEb9Z0BMBpTeeIUQCx21UtAXARL1MMQOp2XU8AJG8PFgBA9kY7zRAAmdujFQGQlp7tDAHkxYdLQwA58enWDIBXfrw2A/Ak/JbsBSjJBQY9gExgcFTsBKioJBY9QL2s0Xj0ANmaXmRSATRUKpceoFW2QmZbLe9mrZDZAJ2PFRpxpZOWWmmtlxababUblts7tN5PBw504gFHLnDm0+RDJz71+mvKQ33sNizrcr+pXzXTIh888sknH71ak/3+9I4cJBNs+Ayn33j8bn6cru3cY1kVRWHb/0UVWWPdydz+DwBBp1Nmf3wEeQAAAABJRU5ErkJggg=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":4,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_ODTiuu-t2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.589Z","timestamp":1785108244589,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_ODTiuu-t2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:29 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"e347c7b4db3fd370e985fc501684a655\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 06cb9bed6e3c9f95e430c22405e0fd84.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: 0nYWplI9NNO1S0VU-y-nGc1EggNUFhA0K9Lp0ZtIDueLtIv3x81vBQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=hOxcnUu2BufhIY6%2FEq1agk9KtxeSEsAOpmDNk61apoJpjYl1efgQC6riPZzs7hyGAuppF3734DVuxPJzBdFmEn3B5B%2BiOiilorFf7xCj%2BbRydg3X5InKfaFHqF1SopaBgtcwrROTte9UCa%2BLzONM\"}]}\r\ncf-ray: a21727e0bd9b0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":40363,"size_decoded":13549,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (8511)","md5":"e347c7b4db3fd370e985fc501684a655","sha1":"863a71b32f597d38e793924667e019fb757e5387","sha256":"f0c2d02ec0d2f259ef89eaedd71b6258d51544fe8ca8ab37ec22d431def2257b","sha512":"9652071433998c255fd886fe87d4b052927373e922345d624ed02d7c7a4692ecfc7f9dd60b019dfafffdc88840fcdb1ada4490f479df544bd34888906d640678","ssdeep":"768:EArIqrUtCHrUuziEvw4uN8GV4VofWJJk30J:eDtarS5IofSJk30J","tlshash":"e003f863ec607fbc155b099ca433e44c17ba932e9986d164b8948e9a07ce7d06172fcf","first_seen":"2026-07-26T23:24:50.410072Z","last_seen":"2026-07-26T23:25:46.815031Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YDg1Y2UxZjI0LWZhYzgtNDIzOC1hZGI5LTcyNTgyNWRjNDMzM2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLTg1Y2UxZjI0LWZhYzgtNDIzOC1hZGI5LTcyNTgyNWRjNDMzM2ApfSkoKX1jYXRjaHt9aW1wb3J0e3QgYXMgZX1mcm9tIi4vY19CQVZ0dy1NWS5qcyI7aW1wb3J0e3R9ZnJvbSIuL2NfQjVXQU1KSnMuanMiO2ltcG9ydHt0IGFzIG59ZnJvbSIuL2NfRFVYTTYzdWIuanMiO2ltcG9ydHt0IGFzIHJ9ZnJvbSIuL2NfYkdyVnd1aDcuanMiO2ltcG9ydHt0IGFzIGl9ZnJvbSIuL2NfQ29iQWxlVjYyLmpzIjtpbXBvcnR7YyBhcyBhfWZyb20iLi9jX2owU0FGMHVuLmpzIjtpbXBvcnR7dCBhcyBvfWZyb20iLi9jX0JTUV9tUFNpLmpzIjtpbXBvcnR7JG4gYXMgcyxBaSBhcyBjLENuIGFzIGwsRGMgYXMgdSxFYSBhcyBkLEduIGFzIGYsSGMgYXMgcCxIciBhcyBlZSxJYyBhcyBtLEpjIGFzIGgsSm4gYXMgZyxKcyBhcyB0ZSxLYyBhcyBuZSxLZCBhcyByZSxLbiBhcyBpZSxLciBhcyBhZSxMYyBhcyBvZSxMZCBhcyBzZSxMbiBhcyBjZSxMbyBhcyBsZSxMciBhcyB1ZSxOIGFzIGRlLE5uIGFzIGZlLE9pIGFzIF8sT3IgYXMgcGUsUHIgYXMgdixRYyBhcyBtZSxRbyBhcyBoZSxRciBhcyB5LFFzIGFzIGdlLFJuIGFzIF9lLFJvIGFzIHZlLFJyIGFzIHllLFNsIGFzIGJlLFQgYXMgeGUsVGkgYXMgU2UsVWMgYXMgYixVdCBhcyBDZSxWYyBhcyB3ZSxWciBhcyBUZSxXYyBhcyBFZSxXbiBhcyBEZSxXcCBhcyBPZSxYbiBhcyBrZSxZYyBhcyBBZSxZbiBhcyBqZSxabiBhcyBNZSxfYSBhcyB4LF9kIGFzIFMsYmwgYXMgQyxidCBhcyBOZSxjZCBhcyB3LGNyIGFzIFQsZWkgYXMgUGUsZWwgYXMgRmUsZW4gYXMgSWUsZXIgYXMgTGUsZXMgYXMgUmUsZmYgYXMgemUsaGYgYXMgQmUsaXQgYXMgRSxrZCBhcyBWZSxsaSBhcyBIZSxtZCBhcyBELG5pIGFzIFVlLG9kIGFzIE8sb3QgYXMgayxxbiBhcyBXZSx0ciBhcyBHZSx4YSBhcyBLZSx4ZiBhcyBxZSx4bCBhcyBBLHh0IGFzIGoseWkgYXMgSmUseXQgYXMgWWUsem4gYXMgWGV9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO2ltcG9ydHt0IGFzIFplfWZyb20iLi9jX0x1VjFaTFh1LmpzIjtpbXBvcnR7biBhcyBRZSxyIGFzICRlLHQgYXMgZXR9ZnJvbSIuL2Nfa2RlVlY0UHAuanMiO2ltcG9ydHt0IGFzIHR0fWZyb20iLi9jX0N2YVBWUmdzMi5qcyI7aW1wb3J0e3QgYXMgbnR9ZnJvbSIuL2NfRGFXaFE3ZWkyLmpzIjtpbXBvcnR7dCBhcyBydH1mcm9tIi4vY19EQUM4SnFSeDIuanMiO2ltcG9ydHt0IGFzIGl0fWZyb20iLi9jX0NuQVlCMUZQLmpzIjtpbXBvcnR7dCBhcyBhdH1mcm9tIi4vY19Cd2hrMzN3VS5qcyI7aW1wb3J0e28gYXMgb3R9ZnJvbSIuL2NfQkVqYXRnZFAyLmpzIjtpbXBvcnR7biBhcyBzdH1mcm9tIi4vY19EQXlpb09VNDIuanMiO2ltcG9ydHtuIGFzIGN0fWZyb20iLi9jX0RtV3lwYUh2Mi5qcyI7aW1wb3J0e3QgYXMgbHR9ZnJvbSIuL2NfRE80VFBjd2UuanMiO2ltcG9ydHt0IGFzIHV0fWZyb20iLi9jX0NvZkx1UjkwLmpzIjtpbXBvcnR7biBhcyBkdCx0IGFzIE19ZnJvbSIuL2NfQ2xqZUdJS0cyLmpzIjtpbXBvcnR7dCBhcyBmdH1mcm9tIi4vY19ERzVRMlFjeDIuanMiO2ltcG9ydHthIGFzIHB0LGMgYXMgbXQsaSBhcyBodCxsIGFzIGd0LG8gYXMgX3QscyBhcyB2dCx0IGFzIHl0LHUgYXMgYnR9ZnJvbSIuL2NfRDZGRXpfOEkyLmpzIjtpbXBvcnR7dCBhcyB4dH1mcm9tIi4vY19EUWhUM1BWVDIuanMiO2ltcG9ydHt0IGFzIFN0fWZyb20iLi9jX2xTUlNJR2JfMi5qcyI7dmFyIE49emUoKSxQPU9lKEJlKCkpLEY9YFN0YXRpY01vYmlsZUhvbWVIZXJvYCxJPUQoe3RpdGxlOntpZDpgJHtGfS50aXRsZWAsZGVmYXVsdE1lc3NhZ2U6YEp1bXAgc3RhcnQgeW91ciBjcnlwdG8gcG9ydGZvbGlvYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBUaXRsZQogICAgI0NoYXJMaW1pdDogNzAKICAgICNDb250ZXh0OiBUaXRsZSBmb3IgQ29pbmJhc2UgaG9tZXBhZ2UgZm9yIGV4cGVyaW1lbnQgKENoYXJMaW1pdCBhdXRvY2FsY3VsYXRlZCB0byA3MClgfSxzdWJ0aXRsZTp7aWQ6YCR7Rn0uc3VidGl0bGVgLGRlZmF1bHRNZXNzYWdlOmBDb2luYmFzZSBpcyB0aGUgZWFzaWVzdCBwbGFjZSB0byBidXkgYW5kIHNlbGwgY3J5cHRvY3VycmVuY3kuIFNpZ24gdXAgYW5kIGdldCBzdGFydGVkIHRvZGF5LmAsZGVzY3JpcHRpb246YAogICAgI0NvbXBvbmVudDogU3VidGl0bGUKICAgICNDaGFyTGltaXQ6IDE1MAogICAgI0NvbnRleHQ6IFN1YnRpdGxlIGZvciBob21lcGFnZSAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDE1MClgfSxjdGFQcm9tcHQ6e2lkOmAke0Z9LmN0YVByb21wdGAsZGVmYXVsdE1lc3NhZ2U6YEp1bXAgc3RhcnQgeW91ciBwb3J0Zm9saW9gLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBOYWtlZEhlcm9QaWxsCiAgICAjQ2hhckxpbWl0OiA2NQogICAgI0NvbnRleHQ6IENUQSBhYm92ZSBoZXJvIHRleHRgfSx1a0luY2VudGl2ZVRpdGxlOntpZDpgJHtGfS51a0luY2VudGl2ZVRpdGxlYCxkZWZhdWx0TWVzc2FnZTpgR2V0IGNyeXB0byBhZnRlciB5b3VyIGZpcnN0IGJ1eSpgLGRlc2NyaXB0aW9uOmAKICAgICNDb21wb25lbnQ6IFRpdGxlCiAgICAjQ2hhckxpbWl0OiA3MAogICAgI0NvbnRleHQ6IFRpdGxlIGZvciBDb2luYmFzZSBob21lcGFnZSBmb3IgZXhwZXJpbWVudCAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDcwKWB9fSk7ZnVuY3Rpb24gQ3Qoe29uRW1haWxTdWJtaXQ6ZX0pe2xldHtmb3JtYXRNZXNzYWdlOnR9PVMoKSxuPXYoKTtyZXR1cm4oMCxOLmpzeHMpKEMse2lkOmBTdGF0aWNNb2JpbGVIb21lSGVyb2AsYWxpZ25Db250ZW50OmBjZW50ZXJgLGFsaWduSXRlbXM6YGZsZXgtc3RhcnRgLHBhZGRpbmdZOjEwLHBhZGRpbmdYOjMsY2hpbGRyZW46WygwLE4uanN4KSh5dCx7b25DbGljazooMCxQLnVzZUNhbGxiYWNrKSgoKT0+ZShgYCksW2VdKSxoYXNJY29uOiEwLGNoaWxkcmVuOnQoSS5jdGFQcm9tcHQpfSksKDAsTi5qc3gpKHR0LHt0YWdOYW1lOmBob21lX2hlcm9fdGl0bGVgLGNoaWxkcmVuOigwLE4uanN4KShPLHtmb250OmBkaXNwbGF5M2AsYXM6YGgzYCxkaXNwbGF5OmBibG9ja2AsY2hpbGRyZW46dChuP0kudWtJbmNlbnRpdmVUaXRsZTpJLnRpdGxlKX0pfSksKDAsTi5qc3gpKHcse3BhZGRpbmdUb3A6MixwYWRkaW5nQm90dG9tOjQsY2hpbGRyZW46KDAsTi5qc3gpKGgse2FzOmBwYCxkaXNwbGF5OmBibG9ja2AsY2hpbGRyZW46dChJLnN1YnRpdGxlKX0pfSksKDAsTi5qc3gpKGh0LHtvblN1Ym1pdDplLHZhcmlhbnQ6YHByaW1hcnlgfSldfSl9dmFyIHd0PSgwLFAubWVtbykoQ3QpLEw9YFN3ZWVwc3Rha2VVcHNlbGxgLFR0PUQoe3RpdGxlSmFuU3dlZXBzOntpZDpgJHtMfS50aXRsZUphblN3ZWVwc2AsZGVmYXVsdE1lc3NhZ2U6YENyZWF0ZSBhbiBhY2NvdW50IGZvciBhIGNoYW5jZSB0byB3aW5gLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBUZXh0RGlzcGxheTIKICAgICNDaGFyTGltaXQ6IDgwCiAgICAjQ29udGV4dDogSGVhZGVyIGZvciBTd2VlcHN0YWtlcyB1cHNlbGxgfSxtZXNzYWdlTWF5U3dlZXBzOntpZDpgJHtMfS5tZXNzYWdlTWF5U3dlZXBzYCxkZWZhdWx0TWVzc2FnZTpgU2lnbiB1cCBmb3IgYSBDb2luYmFzZSBhY2NvdW50IGJ5IEp1bHkgNiwgMjAyMiBhbmQgeW914oCZbGwgYmUgYXV0b21hdGljYWxseSBlbnRlcmVkIGZvciBhIGNoYW5jZSB0byB3aW4geW91ciBzaGFyZSBvZiAkMU0gaW4gQml0Y29pbmAsZGVzY3JpcHRpb246YCNDb21wb25lbnQ6IFRleHRCb2R5CiAgICAjQ2hhckxpbWl0OiAyMDUKICAgICNDb250ZXh0OiBNZXNzYWdlIGZvciBTd2VlcHN0YWtlcyB1cHNlbGxgfSxjdGFUaXRsZTp7aWQ6YCR7TH0uY3RhVGl0bGVgLGRlZmF1bHRNZXNzYWdlOmBMZWFybiBtb3JlYCxkZXNjcmlwdGlvbjpgI0NvbXBvbmVudDogQnV0dG9uCiAgICAjQ2hhckxpbWl0OiA0NQogICAgI0NvbnRleHQ6IENUQSB0aXRsZSBmb3IgU3dlZXBzdGFrZXMgdXBzZWxsYH0sZGlzY2xhaW1lcjp7aWQ6YCR7TH0uZGlzY2xhaW1lcmAsZGVmYXVsdE1lc3NhZ2U6YE5vIHB1cmNoYXNlIG5lY2Vzc2FyeS4ge3J1bGVzfWAsZGVzY3JpcHRpb246YCNDb21wb25lbnQ6IFRleHRMZWdhbAogICAgI0NoYXJMaW1pdDogNzAKICAgICNDb250ZXh0OiBEaXNjbGFpbWVyIHRpdGxlIGZvciBTd2VlcHN0YWtlcyB1cHNlbGxgfSxtYXJjaFJ1bGVzOntpZDpgJHtMfS5tYXJjaFJ1bGVzYCxkZWZhdWx0TWVzc2FnZTpgU2VlIE9mZmljaWFsIFJ1bGVzYCxkZXNjcmlwdGlvbjpgI0NvbXBvbmVudDogTGluawogICAgI0NoYXJMaW1pdDogNTUKICAgICNDb250ZXh0OiBNZXNzYWdlIHRha2luZyB0aGUgdXNlciB0byBzd2VlcHN0YWtlcyBydWxlcyBwYWdlYH0sYWx0VGV4dDp7aWQ6YCR7TH0uYWx0VGV4dGAsZGVmYXVsdE1lc3NhZ2U6YCQxTSBpbiBCaXRjb2luYCxkZXNjcmlwdGlvbjpgI0NvbXBvbmVudDogTmV4dEdlbkltYWdlOmFsdE1lc3NhZ2UKICAgICNDaGFyTGltaXQ6IDUwCiAgICAjQ29udGV4dDogQWx0IG1lc3NhZ2UgZm9yIGltYWdlYH19KSxFdD1beWUsdWUsVGUsYWVdO2Z1bmN0aW9uIER0KCl7YyhgcGhvbmVgKTtsZXQgZT1fKCkuY291bnRyeUZyb21JcCx0PV8oKS5sb2NhbGVDb2RlO0V0LmluY2x1ZGVzKGUpO2xldHtmb3JtYXRNZXNzYWdlOm59PVMoKTtyZXR1cm4gdD09PWVlfHxuKFR0Lm1hcmNoUnVsZXMpLG51bGx9eChsdCkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YFN3ZWVwc3Rha2VVcHNlbGxfX1N0eWxlZFNlY3Rpb25gLGNvbXBvbmVudElkOmBzYy1kZDZmZDA5Yi0wYH0pKFtgb3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MHB4O2hlaWdodDoxMDAlO0BtZWRpYSAoYCxgKXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO31gXSxFLnBob25lKTt2YXIgT3Q9KDAsUC5tZW1vKShEdCk7ZnVuY3Rpb24ga3QoKXtyZXR1cm4gaGUoYENPSU5CQVNFX1BVQkxJQ19ERVBMT1lNRU5UX1RBUkdFVGApPT09YHByb2R1Y3Rpb25gP251bGw6KDAsTi5qc3gpKEMse2JvcmRlcmVkOiEwLGJhY2tncm91bmQ6YGJnTmVnYXRpdmVgLHBhZGRpbmdYOjMscGFkZGluZ1k6Mix0ZXN0SUQ6YGRldi1mYWxsYmFjay13YXJuaW5nYCxjaGlsZHJlbjooMCxOLmpzeCkoSWUse2NoaWxkcmVuOigwLE4uanN4cykoQyx7Z2FwOjIsY2hpbGRyZW46WygwLE4uanN4KShPLHtjb2xvcjpgZmdJbnZlcnNlYCxmb250U2l6ZTpgZGlzcGxheTNgLGNoaWxkcmVuOmBBdHRlbnRpb246IEhvbWUgc3RhdGljIGZhbGxiYWNrIHRyaWdnZXJlZGB9KSwoMCxOLmpzeHMpKE8se2NvbG9yOmBmZ0ludmVyc2VgLGZvbnRTaXplOmBoZWFkbGluZWAsY2hpbGRyZW46W2BUaGUgaG9tZSBzdGF0aWMgZmFsbGJhY2sgaGFzIGJlZW4gdHJpZ2dlcmVkLiBUaGF0IG1lYW5zIHRoZSBkZWZhdWx0IGhvbWVwYWdlIHdhcyBub3QgYWJsZSB0byBsb2FkLCBhbmQgdGhlcmUgaXMgcHJvYmFibHkgYW4gaXNzdWUgd2l0aCB0aGUgaG9tZXBhZ2UgdGVtcGxhdGUuYCwoMCxOLmpzeCkoYGJyYCx7fSksYFBsZWFzZSBjaGVjayB0aGUgY29uc29sZSBmb3IgYW55IGVycm9ycyBiZWZvcmUgb3BlbmluZyBhIFBSLmBdfSksKDAsTi5qc3gpKE8se2FzOmBlbWAsY29sb3I6YGZnSW52ZXJzZWAsZm9udFNpemU6YGhlYWRsaW5lYCxjaGlsZHJlbjpgVGhpcyBpcyBhIGRldi1vbmx5IG1lc3NhZ2UuYH0pXX0pfSl9KX1mdW5jdGlvbiBSKHtjaGlsZHJlbjplfSl7cmV0dXJuKDAsTi5qc3gpKHcse3dpZHRoOmAxMDAlYCxqdXN0aWZ5Q29udGVudDpgY2VudGVyYCxjaGlsZHJlbjooMCxOLmpzeCkoQyx7d2lkdGg6YDEwMCVgLG1heFdpZHRoOmsubGF5b3V0LndpZHRoLGNoaWxkcmVuOmV9KX0pfXZhciB6PWBEaXNjbGFpbWVyc2AsQj1EKHt0ZXJtc0FwcGx5OntpZDpgJHt6fS50ZXJtc0FwcGx5YCxkZWZhdWx0TWVzc2FnZTpgKlRlcm1zIGFwcGx5LmAsZGVzY3JpcHRpb246YCNDb21wb25lbnQ6IFRleHRMZWdhbAogICAgI0NoYXJMaW1pdDogNDUKICAgICNDb250ZXh0OiBUZXh0IHVzZWQgYnkgdGVybXMgYXBwbHkgc2VjdGlvbmB9LGNyeXB0b1Jld2FyZHM6e2lkOmAke3p9LmNyeXB0b1Jld2FyZHNgLGRlZmF1bHRNZXNzYWdlOmDCuUNyeXB0byByZXdhcmRzIGlzIGFuIG9wdGlvbmFsIENvaW5iYXNlIG9mZmVyLmAsZGVzY3JpcHRpb246YCNDb21wb25lbnQ6IFRleHRMZWdhbAogICAgI0NoYXJMaW1pdDogOTAKICAgICNDb250ZXh0OiBUZXh0IHVzZWQgYnkgdGhlIGZpcnN0IHN1cGVyc2NyaXB0IHNlY3Rpb25gfSxsaW1pdGVkV2hpbGVTdXBwbGllczp7aWQ6YCR7en0ubGltaXRlZFdoaWxlU3VwcGxpZXNgLGRlZmF1bHRNZXNzYWdlOmDCskxpbWl0ZWQgd2hpbGUgc3VwcGxpZXMgbGFzdCBhbmQgYW1vdW50cyBvZmZlcmVkIGZvciBlYWNoIHF1aXogbWF5IHZhcnkuIE11c3QgdmVyaWZ5IElEIHRvIGJlIGVsaWdpYmxlIGFuZCBjb21wbGV0ZSBxdWl6IHRvIGVhcm4uIFVzZXJzIG1heSBvbmx5IGVhcm4gb25jZSBwZXIgcXVpei4gQ29pbmJhc2UgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIGNhbmNlbCB0aGUgbGVhcm5pbmcgcmV3YXJkcyBvZmZlciBhdCBhbnkgdGltZS5gLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBUZXh0TGVnYWwKICAgICNDaGFyTGltaXQ6IDM1MAogICAgI0NvbnRleHQ6IFRleHQgdXNlZCBieSB0aGUgc2Vjb25kIHN1cGVyc2NyaXB0IHNlY3Rpb25gfX0pO2Z1bmN0aW9uIEF0KHtzaG93SW5jZW50aXZlczplfSl7bGV0e2Zvcm1hdE1lc3NhZ2U6dH09UygpO3JldHVybigwLE4uanN4KShSLHtjaGlsZHJlbjooMCxOLmpzeHMpKEMse3BhZGRpbmdYOjMsY2hpbGRyZW46W2U/KDAsTi5qc3gpKEFlLHtvbkNsaWNrOmllLGhyZWY6SGUsb3BlbkluTmV3V2luZG93OiEwLGNoaWxkcmVuOigwLE4uanN4KShiLHthczpgcGAsY29sb3I6YGZnUHJpbWFyeWAsZGlzcGxheTpgYmxvY2tgLGNoaWxkcmVuOnQoQi50ZXJtc0FwcGx5KX0pfSk6bnVsbCwoMCxOLmpzeCkoYix7YXM6YHBgLGNvbG9yOmBmZ011dGVkYCxkaXNwbGF5OmBibG9ja2AsY2hpbGRyZW46dChCLmNyeXB0b1Jld2FyZHMpfSksKDAsTi5qc3gpKGIse2FzOmBwYCxjb2xvcjpgZmdNdXRlZGAsZGlzcGxheTpgYmxvY2tgLGNoaWxkcmVuOnQoQi5saW1pdGVkV2hpbGVTdXBwbGllcyl9KV19KX0pfXZhciBqdD0oMCxQLm1lbW8pKEF0KSxNdD0xOCxOdD01MDAsUHQ9Mjc3LFY9YEVhcm5BbmRMZWFybkNyeXB0b2AsSD1EKHtlYXJuVGl0bGU6e2lkOmAke1Z9LmVhcm5UaXRsZWAsZGVmYXVsdE1lc3NhZ2U6YEVhcm4gY3J5cHRvYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDQ1CiAgICAjQ29udGV4dDogVGl0bGUgb2YgdGhlIEVhcm4gQ3J5cHRvIChDaGFyTGltaXQgYXV0b2NhbGN1bGF0ZWQgdG8gNDUpYH0sZWFybkRlc2NyaXB0aW9uOntpZDpgJHtWfS5lYXJuRGVzY3JpcHRpb25gLGRlZmF1bHRNZXNzYWdlOmBTdGFydCBlYXJuaW5nIGNyeXB0byBqdXN0IGZvciBsZWFybmluZyBhYm91dCBob3cgc3BlY2lmaWMgY3J5cHRvY3VycmVuY2llcyB3b3JrLsKyYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDE0MAogICAgI0NvbnRleHQ6IERlc2NyaXB0aW9uIG9mIHRoZSBFYXJuIENyeXB0byAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDE0MClgfSxlYXJuSW1hZ2VBbHQ6e2lkOmAke1Z9LmVhcm5JbWFnZUFsdGAsZGVmYXVsdE1lc3NhZ2U6YEVhcm4gQ3J5cHRvYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDQ1CiAgICAjQ29udGV4dDogQWx0ZXJuYXRpdmUgdGV4dCB1c2VkIGZvciB0aGUgaW1hZ2UgaW4gdGhlIEVhcm4gQ3J5cHRvIChDaGFyTGltaXQgYXV0b2NhbGN1bGF0ZWQgdG8gNDUpYH0sZ2V0U3RhcnRlZFRpdGxlOntpZDpgJHtWfS5nZXRTdGFydGVkVGl0bGVgLGRlZmF1bHRNZXNzYWdlOmBHZXQgc3RhcnRlZGAsZGVzY3JpcHRpb246YAogICAgI0NvbXBvbmVudDogTEVHQUNZCiAgICAjQ2hhckxpbWl0OiA0NQogICAgI0NvbnRleHQ6IFRpdGxlIHRleHQgdXNlZCBmb3IgdGhlIGdldCBzdGFydGVkIGxpbmsgKENoYXJMaW1pdCBhdXRvY2FsY3VsYXRlZCB0byA0NSlgfSxnZXRTdGFydGVkTGluazp7aWQ6YCR7Vn0uZ2V0U3RhcnRlZExpbmtgLGRlZmF1bHRNZXNzYWdlOmBodHRwczovL3d3dy5jb2luYmFzZS5jb20vbGVhcm5pbmctcmV3YXJkc2AsZGVzY3JpcHRpb246YAogICAgI0NvbXBvbmVudDogTEVHQUNZCiAgICAjQ2hhckxpbWl0OiA4NQogICAgI0NvbnRleHQ6IEdldCBzdGFydGVkIExpbmsgKENoYXJMaW1pdCBhdXRvY2FsY3VsYXRlZCB0byA4NSlgfSxsZWFyblRpdGxlOntpZDpgJHtWfS5sZWFyblRpdGxlYCxkZWZhdWx0TWVzc2FnZTpgTGVhcm4gdGhlIGJhc2ljc2AsZGVzY3JpcHRpb246YAogICAgI0NvbXBvbmVudDogTEVHQUNZCiAgICAjQ2hhckxpbWl0OiA1MAogICAgI0NvbnRleHQ6IFRpdGxlIG9mIHRoZSBMZWFybiBDcnlwdG8gKENoYXJMaW1pdCBhdXRvY2FsY3VsYXRlZCB0byA1MClgfSxsZWFybkRlc2NyaXB0aW9uOntpZDpgJHtWfS5sZWFybkRlc2NyaXB0aW9uYCxkZWZhdWx0TWVzc2FnZTpgRXhwbG9yZSBiZWdpbm5lciBndWlkZXMsIHByYWN0aWNhbCB0dXRvcmlhbHMsIGFuZCBtYXJrZXQgdXBkYXRlcyBvbiBCaXRjb2luLCBFdGhlcmV1bSBhbmQgbW9yZS5gLGRlc2NyaXB0aW9uOmAKICAgICNDb21wb25lbnQ6IExFR0FDWQogICAgI0NoYXJMaW1pdDogMTU1CiAgICAjQ29udGV4dDogRGVzY3JpcHRpb24gb2YgdGhlIExlYXJuIENyeXB0byAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDE1NSlgfSxsZWFybkltYWdlQWx0OntpZDpgJHtWfS5sZWFybkltYWdlQWx0YCxkZWZhdWx0TWVzc2FnZTpgTGVhcm4gQ3J5cHRvYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDQ1CiAgICAjQ29udGV4dDogQWx0ZXJuYXRpdmUgdGV4dCB1c2VkIGZvciB0aGUgaW1hZ2UgaW4gdGhlIExlYXJuIENyeXB0byAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDQ1KWB9LGxlYXJuTW9yZVRpdGxlOntpZDpgJHtWfS5sZWFybk1vcmVUaXRsZWAsZGVmYXVsdE1lc3NhZ2U6YExlYXJuIG1vcmVgLGRlc2NyaXB0aW9uOmAKICAgICNDb21wb25lbnQ6IExFR0FDWQogICAgI0NoYXJMaW1pdDogNDUKICAgICNDb250ZXh0OiBUaXRsZSB0ZXh0IHVzZWQgZm9yIHRoZSBsZWFybiBtb3JlIGxpbmsgKENoYXJMaW1pdCBhdXRvY2FsY3VsYXRlZCB0byA0NSlgfSxsZWFybk1vcmVMaW5rOntpZDpgJHtWfS5sZWFybk1vcmVMaW5rYCxkZWZhdWx0TWVzc2FnZTpgaHR0cHM6Ly93d3cuY29pbmJhc2UuY29tL2xlYXJuYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDcwCiAgICAjQ29udGV4dDogTGVhcm4gTW9yZSBMaW5rIChDaGFyTGltaXQgYXV0b2NhbGN1bGF0ZWQgdG8gNzApYH19KTtmdW5jdGlvbiBGdCgpe2xldHtmb3JtYXRNZXNzYWdlOmV9PVMoKSx0PWMoYHBob25lYCksbj1jKGBwaG9uZV9zbWFsbGApLHI9W3t0aXRsZTplKEguZWFyblRpdGxlKSxkZXNjcmlwdGlvbjplKEguZWFybkRlc2NyaXB0aW9uKSxpbWFnZUFsdDplKEguZWFybkltYWdlQWx0KSxsaW5rVGl0bGU6ZShILmdldFN0YXJ0ZWRUaXRsZSkscmVhZE1vcmVVcmw6ZShILmdldFN0YXJ0ZWRMaW5rKSxvbkNsaWNrOkRlLGltYWdlVXJsOmBodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L2M1YmQwd3FqYzd2MC80NTIwQ3A2S09yMzJ6S2JyNVFzeHVvLzZhY2I2MGQ4Zjg0MjkyZDA3ZDQ0MTAyZjExY2EyOTQwL2NvbXAtaGVhZGVyLW1vYmlsZV8yeC5wbmdgfSx7dGl0bGU6ZShILmxlYXJuVGl0bGUpLGRlc2NyaXB0aW9uOmUoSC5sZWFybkRlc2NyaXB0aW9uKSxpbWFnZUFsdDplKEgubGVhcm5JbWFnZUFsdCksbGlua1RpdGxlOmUoSC5sZWFybk1vcmVUaXRsZSkscmVhZE1vcmVVcmw6ZShILmxlYXJuTW9yZUxpbmspLG9uQ2xpY2s6ZixpbWFnZVVybDpgaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9jNWJkMHdxamM3djAvNDgxajVlZGtSdHFQaG9MaGQxSHpPcC9kYjMxZDMyYjVhNTA1MzEzZTM5NTc2NDVkNWFhM2RkZS9MZWFybi1jcnlwdG9fMngucG5nYH1dO3JldHVybigwLE4uanN4KSh3LHtqdXN0aWZ5Q29udGVudDpgY2VudGVyYCxhbGlnbkl0ZW1zOmBjZW50ZXJgLHBhZGRpbmdZOm4/NzoxMCxwYWRkaW5nWDpuPzM6NCxiYWNrZ3JvdW5kOmBiZ1ByaW1hcnlXYXNoYCxjaGlsZHJlbjooMCxOLmpzeCkodD9DOkEse2dhcDo1LG1heFdpZHRoOmsubGF5b3V0LndpZHRoLHdpZHRoOmAxMDAlYCxqdXN0aWZ5Q29udGVudDpgY2VudGVyYCxhbGlnbkl0ZW1zOmBjZW50ZXJgLGNoaWxkcmVuOnIubWFwKChlLHIpPT4oMCxOLmpzeCkoQWUse29uQ2xpY2s6ZS5vbkNsaWNrLGhyZWY6ZS5yZWFkTW9yZVVybCxjaGlsZHJlbjooMCxOLmpzeHMpKEMse21heFdpZHRoOnQ/YHVuc2V0YDpOdCx3aWR0aDpgMTAwJWAsYm9yZGVyZWQ6ITAsZWxldmF0aW9uOjEsYm9yZGVyUmFkaXVzOjQwMCxiYWNrZ3JvdW5kOmBiZ2AsY2hpbGRyZW46WygwLE4uanN4KSh3LHtoZWlnaHQ6bj9gYXV0b2A6UHQsY2hpbGRyZW46KDAsTi5qc3gpKEl0LHt1cmw6ZS5pbWFnZVVybCxhbHRNZXNzYWdlOmUuaW1hZ2VBbHQscGljdHVyZVdpZHRoOmAxMDAlYCx3aWR0aDpgMTAwJWAsaGVpZ2h0OmAxMDAlYH0pfSksKDAsTi5qc3gpKE8se2ZvbnQ6YHRpdGxlM2AsYXM6YGgzYCxjb2xvcjpgZmdgLHBhZGRpbmdYOm4/MjozLHBhZGRpbmdUb3A6bj8yOjMsZGlzcGxheTpgYmxvY2tgLGNoaWxkcmVuOmUudGl0bGV9KSwoMCxOLmpzeCkoaCx7YXM6YHBgLGNvbG9yOmBmZ011dGVkYCxwYWRkaW5nWDpuPzI6MyxwYWRkaW5nQm90dG9tOm4/Mzo0LHBhZGRpbmdUb3A6MSxkaXNwbGF5OmBibG9ja2AsY2hpbGRyZW46ZS5kZXNjcmlwdGlvbn0pLCgwLE4uanN4KShGZSx7fSksKDAsTi5qc3gpKHcse2p1c3RpZnlDb250ZW50OmBjZW50ZXJgLHBhZGRpbmdZOm4/MjozLGNoaWxkcmVuOmUubGlua1RpdGxlfSldfSxyKX0sZS50aXRsZSkpfSl9KX12YXIgSXQ9eChNKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgRWFybkFuZExlYXJuX19TdHlsZWROZXh0R2VuSW1hZ2VgLGNvbXBvbmVudElkOmBzYy04MjQxN2ExMS0wYH0pKFtgb2JqZWN0LWZpdDpjb3Zlcjtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmAsYHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOmAsYHB4O2BdLE10LE10KSxMdD0oMCxQLm1lbW8pKEZ0KSxSdD0xOTAsenQ9MTU1LEJ0PTE5MCxWdD0xNTUsSHQ9S2UoW2Bmcm9te29wYWNpdHk6MCU7fXRve29wYWNpdHk6MTAwJTt9YF0pO2Z1bmN0aW9uIFV0KHthc3NldDplLGlzTW9iaWxlOnR9KXtsZXR7Zm9ybWF0TnVtYmVyOm59PVMoKSx7Y3VycmVuY3k6cn09XygpLHtuYW1lOmksc2x1ZzphLGltYWdlVXJsOm8scGVyY2VudENoYW5nZTpzLGxhdGVzdDpjfT1lLGw9dD93ZTpwLHtjb2xvcjp1LGljb246ZH09KDAsUC51c2VNZW1vKSgoKT0+cz4wP3tjb2xvcjpgZmdQb3NpdGl2ZWAsaWNvbjpgdXBBcnJvd2B9OnM8MD97Y29sb3I6YGZnTmVnYXRpdmVgLGljb246YGRvd25BcnJvd2B9Ontjb2xvcjpgZmdNdXRlZGAsaWNvbjpgZG90YH0sW3NdKTtyZXR1cm4oMCxOLmpzeCkoS3Qse29uQ2xpY2s6KDAsUC51c2VDYWxsYmFjaykoKCk9PntnKGEpfSxbYV0pLGhyZWY6YC9wcmljZS8ke2F9YCxjaGlsZHJlbjooMCxOLmpzeCkodyx7cGFkZGluZ1g6dD8yOjMscGFkZGluZ1k6dD8zOjQsZWxldmF0aW9uOjIsd2lkdGg6dD96dDpSdCxoZWlnaHQ6dD9WdDpCdCxmbGV4R3JvdzoxLGJvcmRlcmVkOiEwLGJhY2tncm91bmQ6YGJnYCxjbGFzc05hbWU6WHQsY2hpbGRyZW46KDAsTi5qc3hzKShDLHtqdXN0aWZ5Q29udGVudDpgc3BhY2UtYmV0d2VlbmAsZmxleEdyb3c6MSxjaGlsZHJlbjpbKDAsTi5qc3hzKShBLHtjaGlsZHJlbjpbKDAsTi5qc3gpKHF0LHtzcmM6byxhbHQ6YGB9KSwoMCxOLmpzeHMpKEMse3BhZGRpbmdTdGFydDp0PzE6MixjaGlsZHJlbjpbKDAsTi5qc3gpKG5lLHthczpgaDNgLGRpc3BsYXk6YGJsb2NrYCxjaGlsZHJlbjppfSksKDAsTi5qc3gpKGgse2FzOmBwYCxjb2xvcjpgZmdNdXRlZGAsZGlzcGxheTpgYmxvY2tgLGNoaWxkcmVuOm4oTnVtYmVyKGMpLHtzdHlsZTpgY3VycmVuY3lgLGN1cnJlbmN5OnJ9KX0pXX0pXX0pLCgwLE4uanN4cykoQSx7YWxpZ25JdGVtczpgY2VudGVyYCxjaGlsZHJlbjpbKDAsTi5qc3gpKGJlLHtuYW1lOmQsc2l6ZTp0P2BzYDpgbWAsY29sb3I6dSxwYWRkaW5nRW5kOjF9KSwoMCxOLmpzeCkobCx7YXM6YHNwYW5gLGNvbG9yOnUsY2hpbGRyZW46bihzfHwwLHtzdHlsZTpgcGVyY2VudGAsbWluaW11bUZyYWN0aW9uRGlnaXRzOjIsbWF4aW11bUZyYWN0aW9uRGlnaXRzOjIsc2lnbkRpc3BsYXk6YG5ldmVyYH0pfSldfSldfSl9KX0pfXZhciBXdD00NSxHdD0zMixLdD14KHV0KS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgQXNzZXRUaWxlX19TdHlsZWRMaW5rYCxjb21wb25lbnRJZDpgc2MtZjllNzM0ZDYtMGB9KShbYGFuaW1hdGlvbjpgLGAgYCxgbXMgY3ViaWMtYmV6aWVyKGAsYCk7YF0sSHQsb2UubW9kZXJhdGUxLG0uZW50ZXJGdW5jdGlvbmFsLmpvaW4oYCxgKSkscXQ9eC5pbWcud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YEFzc2V0VGlsZV9fQXNzZXRJY29uYCxjb21wb25lbnRJZDpgc2MtZjllNzM0ZDYtMWB9KShbYHdpZHRoOmAsYHB4O2hlaWdodDpgLGBweDtAbWVkaWEgKGAsYCl7d2lkdGg6YCxgcHg7aGVpZ2h0OmAsYHB4O31gXSxXdCxXdCxFLnBob25lLEd0LEd0KSxKdD0oMCxQLm1lbW8pKFV0KSxVPWBFeHBsb3JlQ3J5cHRvYCxXPUQoe2V4cGxvcmVIZWFkbGluZTp7aWQ6YCR7VX0uZXhwbG9yZUhlYWRsaW5lYCxkZWZhdWx0TWVzc2FnZTpgRXhwbG9yZSBjcnlwdG8gbGlrZSBCaXRjb2luLCBFdGhlcmV1bSwgYW5kIERvZ2Vjb2luYCxkZXNjcmlwdGlvbjpgI0NvbXBvbmVudDogSGVhZGxpbmUKICAgICNDaGFyTGltaXQ6IDEwMAogICAgI0NvbnRleHQ6IEhlYWRsaW5lIGZvciBhIHNlY3Rpb24gcHJvbXB0aW5nIHVzZXJzIHRvIGV4cGxvcmUgZGlmZmVyZW50IGNyeXB0b2N1cnJlbmNpZXNgfSxleHBsb3JlRGVzY3JpcHRpb246e2lkOmAke1V9LmV4cGxvcmVEZXNjcmlwdGlvbmAsZGVmYXVsdE1lc3NhZ2U6YFNpbXBseSBhbmQgc2VjdXJlbHkgYnV5LCBzZWxsLCBhbmQgbWFuYWdlIGh1bmRyZWRzIG9mIGNyeXB0b2N1cnJlbmNpZXMuYCxkZXNjcmlwdGlvbjpgI0NvbXBvbmVudDogRGVzY3JpcHRpb24KICAgICNDaGFyTGltaXQ6IDEyNQogICAgI0NvbnRleHQ6IERlc2NyaXB0aW9uIGZvciBhIHNlY3Rpb24gcHJvbXB0aW5nIHVzZXJzIHRvIGV4cGxvcmUgZGlmZmVyZW50IGNyeXB0b2N1cnJlbmNpZXNgfSxleHBsb3JlQnV0dG9uVGV4dDp7aWQ6YCR7VX0uZXhwbG9yZUJ1dHRvblRleHRgLGRlZmF1bHRNZXNzYWdlOmBTZWUgbW9yZSBhc3NldHNgLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBCdXR0b24KICAgICNDaGFyTGltaXQ6IDUwCiAgICAjQ29udGV4dDogQnV0dG9uIGxhYmVsIGZvciBhIHRleHQgdGhhdCBsZWFkcyB1c2VycyB0byBhIHBhZ2Ugd2hlcmUgdGhleSBjYW4gZXhwbG9yZSBjcnlwdG9jdXJyZW5jaWVzYH0sdG9wR2FpbmVyc0ZpbHRlcjp7aWQ6YCR7VX0udG9wR2FpbmVyc0ZpbHRlclRleHRgLGRlZmF1bHRNZXNzYWdlOmBUb3AgZ2FpbmVyc2AsZGVzY3JpcHRpb246YCNDb21wb25lbnQ6IEJ1dHRvbgogICAgI0NoYXJMaW1pdDogNTAKICAgICNDb250ZXh0OiBCdXR0b24gTGFiZWwgZm9yIGZpbHRlciBidXR0b24gdGhhdCB3aWxsIHNob3cgdGhlIHRvcCBnYWluaW5nIGNyeXB0b2N1cnJlbmNpZXNgfSx0cmFkYWJsZUZpbHRlcjp7aWQ6YCR7VX0udHJhZGFibGVGaWx0ZXJgLGRlZmF1bHRNZXNzYWdlOmBUcmFkYWJsZWAsZGVzY3JpcHRpb246YAogICAgI0NvbXBvbmVudDogTEVHQUNZCiAgICAjQ2hhckxpbWl0OiA0MAogICAgI0NvbnRleHQ6IExhYmVsIGZvciBmaWx0ZXIgYnV0dG9uIHRoYXQgd2lsbCBzaG93IHRoZSB0b3AgdHJhZGFibGUgY3J5cHRvY3VycmVuY2llcyAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDQwKWB9fSksWXQ9KDAsUC5tZW1vKShmdW5jdGlvbih7ZGF0YTplfSl7bGV0e2Zvcm1hdE1lc3NhZ2U6bn09UygpLHI9YyhgcGhvbmVgKSxbYSxvXT0oMCxQLnVzZVN0YXRlKShgdHJhZGFibGVgKSxzPWV8fHt0b3BHYWluZXJzOltdLHRyYWRhYmxlOltdfSxsPSgwLFAudXNlTWVtbykoKCk9Plt7aWQ6YHRyYWRhYmxlYCxsYWJlbDpuKFcudHJhZGFibGVGaWx0ZXIpfSx7aWQ6YHRvcEdhaW5lcnNgLGxhYmVsOm4oVy50b3BHYWluZXJzRmlsdGVyKX1dLFtuXSksZD0oMCxQLnVzZUNhbGxiYWNrKShlPT57bGV0IHQ9ZTtqZSh0KSxvKHQpfSxbXSksZj1yP3A6dCxlZT1yP2g6cDtyZXR1cm4oMCxOLmpzeCkodyx7d2lkdGg6YDEwMCVgLGp1c3RpZnlDb250ZW50OmBjZW50ZXJgLGJhY2tncm91bmQ6YGJnUHJpbWFyeVdhc2hgLHBhZGRpbmdZOnI/NToxMCxwYWRkaW5nWDpyPzE6MyxjaGlsZHJlbjooMCxOLmpzeHMpKHcse21heFdpZHRoOmsubGF5b3V0LndpZHRoLGp1c3RpZnlDb250ZW50OmBzcGFjZS1iZXR3ZWVuYCxhbGlnbkl0ZW1zOmBmbGV4LXN0YXJ0YCxwYWRkaW5nWDpyPzM6MCx3aWR0aDpgMTAwJWAsZmxleERpcmVjdGlvbjpyP2Bjb2x1bW4tcmV2ZXJzZWA6YHJvd2AsY2hpbGRyZW46WygwLE4uanN4KShlbix7Y2hpbGRyZW46KDAsTi5qc3gpKHcse3dpZHRoOmAxMDAlYCxwYWRkaW5nRW5kOnI/MDo0LHBhZGRpbmdUb3A6cj81OjAsYWxpZ25JdGVtczpgY2VudGVyYCxjaGlsZHJlbjooMCxOLmpzeHMpKEMse2dhcDo0LGNoaWxkcmVuOlsoMCxOLmpzeCkoZix7YXM6YGgyYCxjaGlsZHJlbjpuKFcuZXhwbG9yZUhlYWRsaW5lKX0pLCgwLE4uanN4KShlZSx7YXM6YHBgLGNoaWxkcmVuOm4oVy5leHBsb3JlRGVzY3JpcHRpb24pfSksKDAsTi5qc3gpKHcse2NoaWxkcmVuOigwLE4uanN4KSh1LHtvbkNsaWNrOmtlLGhyZWY6cGUsYmxvY2s6cixhbmFseXRpY3NJZDpgZjQ2ZGM2YjgtZTFlYi00YTQ0LThjMTUtOWJlZWZiNmVjN2IyYCxhczpgYWAsY2hpbGRyZW46bihXLmV4cGxvcmVCdXR0b25UZXh0KX0pfSldfSl9KX0pLCgwLE4uanN4cykoQyx7anVzdGlmeUNvbnRlbnQ6YGNlbnRlcmAsYWxpZ25TZWxmOmBjZW50ZXJgLGFsaWduSXRlbXM6YGNlbnRlcmAsY2hpbGRyZW46WygwLE4uanN4KShBLHtwYWRkaW5nQm90dG9tOjQsZ2FwOjEsd2lkdGg6YDEwMCVgLGZsZXhXcmFwOmB3cmFwYCx6SW5kZXg6MCxjaGlsZHJlbjooMCxOLmpzeCkoaSx7dmFsdWU6YSxvbkNoYW5nZTpkLHRhYnM6bH0pfSksKDAsTi5qc3gpKHRuLHtjaGlsZHJlbjpzW2FdLm1hcChlPT4oMCxOLmpzeCkoSnQse2Fzc2V0OmUsaXNNb2JpbGU6cn0sZS5pZCkpfSldfSldfSl9KX0pLFh0PWBhc3NldC10aWxlYCxadD0xZTMsUXQ9MzIwLCR0PTEwNTAsZW49eC5kaXYud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YEV4cGxvcmVDcnlwdG9fX1RleHRDb250YWluZXJgLGNvbXBvbmVudElkOmBzYy01ZmM1ZWYwMS0wYH0pKFtgZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXI7d2lkdGg6NTAlO21heC13aWR0aDo1MDBweDtAbWVkaWEgKG1pbi13aWR0aDpgLGBweCkgYW5kIChtYXgtd2lkdGg6MTE3MHB4KXttYXgtd2lkdGg6NDUwcHg7fUBtZWRpYSAobWluLXdpZHRoOmAsYHB4KSBhbmQgKG1heC13aWR0aDpgLGBweCl7bWF4LXdpZHRoOjM4MHB4O31AbWVkaWEgKGAsYCl7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTt9YF0sJHQsWnQsJHQtMSxFLnBob25lX3NtYWxsKSx0bj14LmRpdi53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgRXhwbG9yZUNyeXB0b19fQXNzZXRUaWxlR3JpZGAsY29tcG9uZW50SWQ6YHNjLTVmYzVlZjAxLTFgfSkoW2BkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKTtjb2x1bW4tZ2FwOnZhcigtLXNwYWNlLTIpO3Jvdy1nYXA6dmFyKC0tc3BhY2UtMik7d2lkdGg6MTAwJTtAbWVkaWEgKG1heC13aWR0aDpgLGBweCl7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoMyxtaW5tYXgoMCwxZnIpKTt9QG1lZGlhIChgLGApe2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMyxtaW5tYXgoMCwxZnIpKTtncmlkLXRlbXBsYXRlLXJvd3M6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSk7fUBtZWRpYSAoYCxgKXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSk7Z3JpZC10ZW1wbGF0ZS1yb3dzOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpO31AbWVkaWEgKG1heC13aWR0aDpgLGBweCl7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9LmAsYHtib3JkZXItcmFkaXVzOjI0cHg7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bzt9YF0sWnQsRS5waG9uZSxFLnBob25lX3NtYWxsLFF0LFh0KTtmdW5jdGlvbiBubihlKXtyZXR1cm4oMCxOLmpzeCkoSmUse2NvbnRleHQ6YGhvbWUtZXhwbG9yZS1jcnlwdG9gLG93bmVyOmBhY3F1aXNpdGlvbmAsY2hpbGRyZW46KDAsTi5qc3gpKFl0LHsuLi5lfSl9KX12YXIgcm49KDAsUC5tZW1vKShubiksYW49NzA0LG9uPTYzMCxzbj0zNzMsRz1gRmVhdHVyZXNgLEs9RCh7YXBwVGl0bGU6e2lkOmAke0d9LmFwcFRpdGxlYCxkZWZhdWx0TWVzc2FnZTpgVHJhZGVgLGRlc2NyaXB0aW9uOmAKICAgICNDb21wb25lbnQ6IExFR0FDWQogICAgI0NoYXJMaW1pdDogMzUKICAgICNDb250ZXh0OiBUaXRsZSBvZiB0aGUgYXBwIHNlY3Rpb24gKENoYXJMaW1pdCBhdXRvY2FsY3VsYXRlZCB0byAzNSlgfSxhcHBIZWFkbGluZTp7aWQ6YCR7R30uYXBwSGVhZGxpbmVgLGRlZmF1bHRNZXNzYWdlOmBCdXksIHNlbGwsIGFuZCBzdG9yZSBodW5kcmVkcyBvZiBjcnlwdG9jdXJyZW5jaWVzYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDk1CiAgICAjQ29udGV4dDogSGVhZGxpbmUgb2YgdGhlIGFwcCBzZWN0aW9uIChDaGFyTGltaXQgYXV0b2NhbGN1bGF0ZWQgdG8gOTUpYH0sYXBwRGVzY3JpcHRpb246e2lkOmAke0d9LmFwcERlc2NyaXB0aW9uYCxkZWZhdWx0TWVzc2FnZTpgRnJvbSBCaXRjb2luIHRvIERvZ2Vjb2luLCB3ZSBtYWtlIGl0IGVhc3kgdG8gYnV5IGFuZCBzZWxsIGNyeXB0b2N1cnJlbmN5LiBQcm90ZWN0IHlvdXIgY3J5cHRvIHdpdGggYmVzdCBpbiBjbGFzcyBjb2xkIHN0b3JhZ2UuYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDE5NQogICAgI0NvbnRleHQ6IERlc2NyaXB0aW9uIG9mIHRoZSBhcHAgc2VjdGlvbiAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDE5NSlgfSxhcHBCdXR0b25UZXh0OntpZDpgJHtHfS5hcHBCdXR0b25UZXh0YCxkZWZhdWx0TWVzc2FnZTpgU2lnbiB1cCBub3dgLGRlc2NyaXB0aW9uOmAKICAgICNDb21wb25lbnQ6IExFR0FDWQogICAgI0NoYXJMaW1pdDogNDUKICAgICNDb250ZXh0OiBCdXR0b24gdGV4dCBvZiB0aGUgYXBwIHNlY3Rpb24gKENoYXJMaW1pdCBhdXRvY2FsY3VsYXRlZCB0byA0NSlgfSxhcHBJbWFnZUFsdDp7aWQ6YCR7R30uYXBwSW1hZ2VBbHRgLGRlZmF1bHRNZXNzYWdlOmBBcHAgaW50ZXJmYWNlYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDQ1CiAgICAjQ29udGV4dDogQWx0ZXJuYXRpdmUgdGV4dCB1c2VkIGZvciB0aGUgaW1hZ2UgaW4gdGhlIGFwcCBzZWN0aW9uIChDaGFyTGltaXQgYXV0b2NhbGN1bGF0ZWQgdG8gNDUpYH0sY2FyZFRpdGxlOntpZDpgJHtHfS5jYXJkVGl0bGVgLGRlZmF1bHRNZXNzYWdlOmBDYXJkYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDM1CiAgICAjQ29udGV4dDogVGl0bGUgb2YgdGhlIGNhcmQgc2VjdGlvbiAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDM1KWB9LGNhcmRIZWFkbGluZTp7aWQ6YCR7R30uY2FyZEhlYWRsaW5lYCxkZWZhdWx0TWVzc2FnZTpgRWFybiBjcnlwdG8gcmV3YXJkcyB3aXRoIG91ciBWaXNh4oSiIGRlYml0IGNhcmTCuWAsZGVzY3JpcHRpb246YAogICAgI0NvbXBvbmVudDogTEVHQUNZCiAgICAjQ2hhckxpbWl0OiA5MAogICAgI0NvbnRleHQ6IEhlYWRsaW5lIG9mIHRoZSBjYXJkIHNlY3Rpb24gKENoYXJMaW1pdCBhdXRvY2FsY3VsYXRlZCB0byA5MClgfSxjYXJkRGVzY3JpcHRpb246e2lkOmAke0d9LmNhcmREZXNjcmlwdGlvbmAsZGVmYXVsdE1lc3NhZ2U6YFlvdXIgZGFpbHkgY29mZmVlIGFuZCB3ZWVrbHkgZ3JvY2VyeSBydW4gY2FuIG5vdyBlYXJuIHlvdSB1cCB0byA0JSBiYWNrIGluIGEgY3J5cHRvIHJld2FyZCBvZiB5b3VyIGNob2ljZSB3aGVuIHlvdSB1c2UgQ29pbmJhc2UgQ2FyZC5gLGRlc2NyaXB0aW9uOmAKICAgICNDb21wb25lbnQ6IExFR0FDWQogICAgI0NoYXJMaW1pdDogMjA1CiAgICAjQ29udGV4dDogRGVzY3JpcHRpb24gb2YgdGhlIGNhcmQgc2VjdGlvbiAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDIwNSlgfSxjYXJkQnV0dG9uVGV4dDp7aWQ6YCR7R30uY2FyZEJ1dHRvblRleHRgLGRlZmF1bHRNZXNzYWdlOmBHZXQgeW91ciBDYXJkYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDQ1CiAgICAjQ29udGV4dDogQnV0dG9uIHRleHQgb2YgdGhlIGNhcmQgc2VjdGlvbiAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDQ1KWB9LGNhcmRJbWFnZUFsdDp7aWQ6YCR7R30uY2FyZEltYWdlQWx0YCxkZWZhdWx0TWVzc2FnZTpgQ2FyZCBpbnRlcmZhY2VgLGRlc2NyaXB0aW9uOmAKICAgICNDb21wb25lbnQ6IExFR0FDWQogICAgI0NoYXJMaW1pdDogNTAKICAgICNDb250ZXh0OiBBbHRlcm5hdGl2ZSB0ZXh0IHVzZWQgZm9yIHRoZSBpbWFnZSBpbiB0aGUgY2FyZCBzZWN0aW9uIChDaGFyTGltaXQgYXV0b2NhbGN1bGF0ZWQgdG8gNTApYH0sd2FsbGV0VGl0bGU6e2lkOmAke0d9LndhbGxldFRpdGxlYCxkZWZhdWx0TWVzc2FnZTpgV2FsbGV0YCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDQwCiAgICAjQ29udGV4dDogVGl0bGUgb2YgdGhlIHdhbGxldCBzZWN0aW9uIChDaGFyTGltaXQgYXV0b2NhbGN1bGF0ZWQgdG8gNDApYH0sd2FsbGV0SGVhZGxpbmU6e2lkOmAke0d9LndhbGxldEhlYWRsaW5lYCxkZWZhdWx0TWVzc2FnZTpgRG8gbW9yZSB3aXRoIHlvdXIgY3J5cHRvIHdpdGggQ29pbmJhc2UgV2FsbGV0YCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDkwCiAgICAjQ29udGV4dDogSGVhZGxpbmUgb2YgdGhlIHdhbGxldCBzZWN0aW9uIChDaGFyTGltaXQgYXV0b2NhbGN1bGF0ZWQgdG8gOTApYH0sd2FsbGV0RGVzY3JpcHRpb246e2lkOmAke0d9LndhbGxldERlc2NyaXB0aW9uYCxkZWZhdWx0TWVzc2FnZTpgU3RvcmUgeW91ciBjcnlwdG8gaW4geW91ciBvd24gcGVyc29uYWwgY3J5cHRvIHdhbGxldCBhbmQgZXhwbG9yZSBkZWNlbnRyYWxpemVkIGZpbmFuY2UgKERlRmkpLCBidXkgYW5kIHNlbGwgTkZUcywgYW5kIG1vcmUuYCxkZXNjcmlwdGlvbjpgCiAgICAjQ29tcG9uZW50OiBMRUdBQ1kKICAgICNDaGFyTGltaXQ6IDE5NQogICAgI0NvbnRleHQ6IERlc2NyaXB0aW9uIG9mIHRoZSB3YWxsZXQgc2VjdGlvbiAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDE5NSlgfSx3YWxsZXRCdXR0b25UZXh0OntpZDpgJHtHfS53YWxsZXRCdXR0b25UZXh0YCxkZWZhdWx0TWVzc2FnZTpgTGVhcm4gbW9yZWAsZGVzY3JpcHRpb246YAogICAgI0NvbXBvbmVudDogTEVHQUNZCiAgICAjQ2hhckxpbWl0OiA0NQogICAgI0NvbnRleHQ6IEJ1dHRvbiB0ZXh0IG9mIHRoZSB3YWxsZXQgc2VjdGlvbiAoQ2hhckxpbWl0IGF1dG9jYWxjdWxhdGVkIHRvIDQ1KWB9LHdhbGxldEltYWdlQWx0OntpZDpgJHtHfS53YWxsZXRJbWFnZUFsdGAsZGVmYXVsdE1lc3NhZ2U6YFdhbGxldCBpbnRlcmZhY2VgLGRlc2NyaXB0aW9uOmAKICAgICNDb21wb25lbnQ6IExFR0FDWQogICAgI0NoYXJMaW1pdDogNTAKICAgICNDb250ZXh0OiBBbHRlcm5hdGl2ZSB0ZXh0IHVzZWQgZm9yIHRoZSBpbWFnZSBpbiB0aGUgd2FsbGV0IHNlY3Rpb24gKENoYXJMaW1pdCBhdXRvY2FsY3VsYXRlZCB0byA1MClgfX0pO2Z1bmN0aW9uIGNuKCl7bGV0e2Zvcm1hdE1lc3NhZ2U6ZX09UygpLGk9YyhgcGhvbmVgKSxhPWl0KHtxdWVyeTpgKG1heC13aWR0aDogJHtvbn1weClgLGluaXRpYWxWYWx1ZTppfSksbz1qKHtzZWN0aW9uOmB0cmFkZWB9KSxzPVt7dGl0bGU6ZShLLmFwcFRpdGxlKSxoZWFkbGluZTplKEsuYXBwSGVhZGxpbmUpLGRlc2NyaXB0aW9uOmUoSy5hcHBEZXNjcmlwdGlvbiksYnV0dG9uVGV4dDplKEsuYXBwQnV0dG9uVGV4dCksb25DbGljazpvLG9uQ1RBTG9nOigpPT5NZShgYnV5U2VsbFN0b3JlYCksaW1hZ2VBbHQ6ZShLLmFwcEltYWdlQWx0KSxpbWFnZVVybDpgaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9xNXVsazRicDY1cjcvNURoNGlVcmk4TU93bENHOWNOakxVcS8zZjBlMTRmODNlNWVkYjllMjdkYTQzMmQ4NmYyNTE2Ni9UcmFkZV8zeC1taW4ucG5nYH0se3RpdGxlOmUoSy5jYXJkVGl0bGUpLGhlYWRsaW5lOmUoSy5jYXJkSGVhZGxpbmUpLGRlc2NyaXB0aW9uOmUoSy5jYXJkRGVzY3JpcHRpb24pLGJ1dHRvblRleHQ6ZShLLmNhcmRCdXR0b25UZXh0KSxyZWRpcmVjdFJvdXRlOmAvY2FyZGAsb25DVEFMb2c6KCk9Pk1lKGBlYXJuUmV3YXJkc0RlYml0Q2FyZGApLGltYWdlQWx0OmUoSy5jYXJkSW1hZ2VBbHQpLGltYWdlVXJsOmBodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L3E1dWxrNGJwNjVyNy9LMzdQSDlqV0tNTE5UU3ZqUkJzSFEvMTQ2ZGQzMzgzOTkwMjQwYThmMzlhY2M4MTAwMjFkMTYvQ2FyZF8zeC1taW4ucG5nYH0se3RpdGxlOmUoSy53YWxsZXRUaXRsZSksaGVhZGxpbmU6ZShLLndhbGxldEhlYWRsaW5lKSxkZXNjcmlwdGlvbjplKEsud2FsbGV0RGVzY3JpcHRpb24pLGJ1dHRvblRleHQ6ZShLLndhbGxldEJ1dHRvblRleHQpLHJlZGlyZWN0Um91dGU6YGh0dHBzOi8vd2FsbGV0LmNvaW5iYXNlLmNvbS9gLG9uQ1RBTG9nOigpPT5NZShgZG9Nb3JlV2FsbGV0YCksaW1hZ2VBbHQ6ZShLLndhbGxldEltYWdlQWx0KSxpbWFnZVVybDpgaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldC9xNXVsazRicDY1cjcvNzRwdzA2RExadU81QnBwMG5ab0xyeS8yYmE4OTg4NTY3NjNhYmJiM2NhY2VlNTM2YmNjNTJkMy9XYWxsZXRfVUlfMnhfXzFfLnBuZ2B9XSxsPWE/cDp0O3JldHVybigwLE4uanN4KShSLHtjaGlsZHJlbjpzLm1hcCgoZSx0KT0+KDAsTi5qc3hzKSh3LHtqdXN0aWZ5Q29udGVudDpgY2VudGVyYCxhbGlnbkl0ZW1zOmBjZW50ZXJgLGZsZXhEaXJlY3Rpb246YT9gY29sdW1uYDpgcm93YCxwYWRkaW5nWTppPzU6MTAsY2hpbGRyZW46WygwLE4uanN4KSh3LHt3aWR0aDphP2AxMDAlYDpgNDUlYCxqdXN0aWZ5Q29udGVudDpgY2VudGVyYCxhbGlnbkl0ZW1zOmBjZW50ZXJgLGNoaWxkcmVuOigwLE4uanN4KShsbix7dXJsOmUuaW1hZ2VVcmwsYWx0TWVzc2FnZTplLmltYWdlQWx0LHdpZHRoOmAxMDAlYCxoZWlnaHQ6YDEwMCVgfSl9KSwoMCxOLmpzeCkodyx7d2lkdGg6YT9gMTAwJWA6YDU1JWAsYWxpZ25JdGVtczpgY2VudGVyYCxwYWRkaW5nU3RhcnQ6aT8wOjgscGFkZGluZ1g6MyxjaGlsZHJlbjooMCxOLmpzeHMpKEMse2dhcDo0LG1heFdpZHRoOmE/YDEwMCVgOmFuLGFsaWduSXRlbXM6YGZsZXgtc3RhcnRgLGNoaWxkcmVuOlsoMCxOLmpzeHMpKEEse2dhcDoyLGFsaWduSXRlbXM6YGNlbnRlcmAsY2hpbGRyZW46WygwLE4uanN4KShyLHtzaXplOjMyfSksKDAsTi5qc3gpKG4se2FzOmBoMWAsdGV4dFRyYW5zZm9ybTpgdXBwZXJjYXNlYCxkaXNwbGF5OmBibG9ja2AsY2hpbGRyZW46ZS50aXRsZX0pXX0pLCgwLE4uanN4KShsLHthczpgaDJgLGNoaWxkcmVuOmUuaGVhZGxpbmV9KSwoMCxOLmpzeCkoaCx7YXM6YHBgLGRpc3BsYXk6YGJsb2NrYCxjaGlsZHJlbjplLmRlc2NyaXB0aW9ufSksKDAsTi5qc3gpKHUsey4uLmUucmVkaXJlY3RSb3V0ZT97dG86ZS5yZWRpcmVjdFJvdXRlLG9uQ2xpY2s6ZS5vbkNUQUxvZ306e29uQ2xpY2s6KCk9Pnt2YXIgdDtlLm9uQ1RBTG9nKCksKHQ9ZS5vbkNsaWNrKT09bnVsbHx8dC5jYWxsKGUpfX0sYmxvY2s6YSxhbmFseXRpY3NJZDpgMDc3YWFjODQtZjZhNy00MmM3LTk4OWMtYzEwMWE0Y2Y0NGQ1YCxjaGlsZHJlbjplLmJ1dHRvblRleHR9KV19KX0pXX0sdCkpfSl9dmFyIGxuPXgoTSkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YEZlYXR1cmVzX19TdHlsZWROZXh0R2VuSW1hZ2VgLGNvbXBvbmVudElkOmBzYy0xZTIxN2Y4LTBgfSkoW2BtYXgtd2lkdGg6YCxgcHg7YF0sc24pLHVuPSgwLFAubWVtbykoY24pO2Z1bmN0aW9uIGRuKGUpe2xldCB0PSgwLFAudXNlQ29udGV4dCkoZS5jb250ZXh0KSxuPSgwLFAudXNlQ29udGV4dCkoYnQpLHI9ITA7Zm9yKGxldCBlIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJnRbZV0uZXJyb3JzJiYocj0hMSk7cmV0dXJuW24scl19dmFyIGZuPXtlbWFpbDpgYH0scT1ndChmbikscG49KDAsUC5tZW1vKShmdW5jdGlvbih7b25Vc2VyRm9jdXNBbmRUeXBlOmV9KXtsZXR7Zm9ybWF0TWVzc2FnZTp0fT1TKCkse2VtYWlsOm59PXZ0KHEpO3B0KG4sZSksX3QoW1tRZSx2b2lkIDBdLFskZSx2b2lkIDBdXSxuLnJlZ2lzdGVyVmFsaWRhdG9yKTtsZXQgcj1tdChxKSxbaV09ZG4ocSk7cmV0dXJuKDAsTi5qc3hzKShtbix7b25TdWJtaXQ6KDAsUC51c2VDYWxsYmFjaykoYXN5bmMgZT0+e2UhPW51bGwmJmUucHJldmVudERlZmF1bHQmJmUucHJldmVudERlZmF1bHQoKSxhd2FpdCBpKCl9LFtpXSksY2hpbGRyZW46WygwLE4uanN4KShobix7Li4ubixzaG93RXJyb3I6ciYmISFuLmVycm9ycyxwbGFjZWhvbGRlcjpgc2F0b3NoaUBuYWthbW90by5jb21gLGFyaWFMYWJlbDp0KHh0LnBsYWNlaG9sZGVyKX0pLCgwLE4uanN4KSh1LHt0eXBlOmBzdWJtaXRgLGFuYWx5dGljc0lkOmA3YTRjY2FhNy05MDA0LTQwNWItYWUwYS0xMmVmN2I1NDU4N2RgLGNoaWxkcmVuOnQoTmUuc2lnblVwKX0pXX0pfSksbW49eC5mb3JtLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBFbWFpbENUQV9fRm9ybWAsY29tcG9uZW50SWQ6YHNjLTNmZGM5NGE0LTBgfSkoW2BkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3dpZHRoOjEwMCU7cGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZS0yKTtnYXA6MTZweDtAbWVkaWEgKGAsYCl7cGFkZGluZy1yaWdodDowO2dhcDoyMHB4O31AbWVkaWEgKGAsYCl7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4O31gXSxFLnBob25lLEUucGhvbmVfc21hbGwpLGhuPXgoZXQpLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBFbWFpbENUQV9fU3R5bGVkSW5wdXRgLGNvbXBvbmVudElkOmBzYy0zZmRjOTRhNC0xYH0pKFtgYm9yZGVyLXJhZGl1czo4cHg7aW5wdXR7cGFkZGluZzoxOHB4O31AbWVkaWEgKGAsYCl7bWFyZ2luLXJpZ2h0OjA7fWBdLEUucGhvbmVfc21hbGwpO2Z1bmN0aW9uIGduKHtvblN1Ym1pdDplLG9uVXNlckZvY3VzQW5kVHlwZTp0fSl7bGV0IG49KDAsUC51c2VDYWxsYmFjaykodD0+ZSh0LmVtYWlsKSxbZV0pO3JldHVybigwLE4uanN4KShxLlByb3ZpZGVyLHtvblN1Ym1pdDpuLGluaXRpYWxWYWx1ZXM6Zm4sY2hpbGRyZW46KDAsTi5qc3gpKHBuLHtvblVzZXJGb2N1c0FuZFR5cGU6dH0pfSl9dmFyIF9uPSgwLFAubWVtbykoZ24pLHZuPTYzNix5bj03NTAsYm49NjgwLHhuPTQ3NSxTbj0xMDkwLENuPTQ3Mix3bj01MDAsVG49NTEwLEVuPTM1MCxEbj0tMTQwLEo9YEZyZWVZb3VyTW9uZXlgLFk9RCh7aW1hZ2VBbHQ6e2lkOmAke0p9LmltYWdlQWx0YCxkZWZhdWx0TWVzc2FnZTpgU2NyZWVuc2hvdCBvZiBvdXIgbW9iaWxlIGFwcHMsIHNob3djYXNpbmcgdGhlIHBvcnRmb2xpbyBzY3JlZW4gYW5kIGJ1eSBmbG93YCxkZXNjcmlwdGlvbjpgI0NvbXBvbmVudDogU3R5bGVkTmV4dEdlbkltYWdlOmFsdE1lc3NhZ2UKICAgICNDaGFyTGltaXQ6IDEzMAogICAgI0NvbnRleHQ6IEltYWdlIGFsdCB1c2VkIGJ5IHRoaXMgc2VjdGlvbmB9LGZ1dHVyZU1vbmV5VGl0bGU6e2lkOmAke0p9LmZ1dHVyZU1vbmV5VGl0bGVgLGRlZmF1bHRNZXNzYWdlOmBUaGUgZnV0dXJlIG9mIG1vbmV5IGlzIGhlcmVgLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBEYXRhZG9nU3ludGhldGljVGFnCiAgICAjQ2hhckxpbWl0OiA2NQogICAgI0NvbnRleHQ6IFRpdGxlIG9mIHRoZSBzZWN0aW9uYH0sZGVzY3JpcHRpb246e2lkOmAke0p9LmRlc2NyaXB0aW9uYCxkZWZhdWx0TWVzc2FnZTpgT3ZlciB7cGVvcGxlQ291bnR9IHBlb3BsZSBhbmQgYnVzaW5lc3NlcyB0cnVzdCB1cyB0byBidXksIHNlbGwsIGFuZCBtYW5hZ2UgY3J5cHRvLmAsZGVzY3JpcHRpb246YCNDb21wb25lbnQ6IERlc2NyaXB0aW9uCiAgICAjQ2hhckxpbWl0OiAxNDAKICAgICNDb250ZXh0OiBEZXNjcmlwdGlvbiBvZiB0aGUgc2VjdGlvbmB9fSksT249YGh0dHBzOi8vaW1hZ2VzLmN0ZmFzc2V0cy5uZXQvcTV1bGs0YnA2NXI3LzZVcWJEWEV4UW5kRUo5SzB5bXBoaFAvNWRmYTdjNjM5MGRmMjhkZGVhMTRkMTZjNmY5M2E4ZmYvSGVyb19pbWFnZV9fMl9fXzFfLnBuZ2Asa249ZHQoe3VybDpPbn0pO2Z1bmN0aW9uIEFuKHtvbkVtYWlsU3VibWl0Om4sc2hvd0luY2VudGl2ZXM6cn0pe2xldHtmb3JtYXRNZXNzYWdlOml9PVMoKSxhPWMoYHBob25lYCksbz1jKGBwaG9uZV9zbWFsbGApLGw9aXQoe3F1ZXJ5OmAobWF4LXdpZHRoOiAke1NufXB4KWAsaW5pdGlhbFZhbHVlOmF9KSx1PVQoKSx7bnVtYmVyT2ZDdXN0b21lcnNGb3JtYXR0ZWRMb25nOmR9PVN0KCksZj1vfHxsJiYhYT90OmUscD1vP2I6aDtyZXR1cm4oMCxOLmpzeCkoUix7Y2hpbGRyZW46KDAsTi5qc3hzKSh3LHtmbGV4RGlyZWN0aW9uOmE/YGNvbHVtbmA6YHJvd2AscGFkZGluZ0JvdHRvbTphPzQ6MCxwYWRkaW5nVG9wOmE/NDowLGNoaWxkcmVuOlshYSYmKDAsTi5qc3gpKGpuLHtjaGlsZHJlbjooMCxOLmpzeCkoTW4se3VybDpPbixhbHRNZXNzYWdlOmkoWS5pbWFnZUFsdCkscGljdHVyZVdpZHRoOmAxMDAlYCx3aWR0aDpgMTAwJWAsaGVpZ2h0OmAxMDAlYH0pfSksKDAsTi5qc3hzKSh3LHttaW5XaWR0aDpsP2A0MCVgOmBhdXRvYCxmbGV4RGlyZWN0aW9uOmBjb2x1bW5gLGp1c3RpZnlDb250ZW50OmBjZW50ZXJgLHBhZGRpbmdTdGFydDphPzM6MSxwYWRkaW5nRW5kOjMscGFkZGluZ1RvcDohbyYmYT84OjAscGFkZGluZ0JvdHRvbTphJiYhbz8xMDowLHpJbmRleDoxLGNoaWxkcmVuOlsoMCxOLmpzeHMpKEMse3BhZGRpbmdCb3R0b206bz8yOjgsZ2FwOm8/MToyLGNoaWxkcmVuOlsoMCxOLmpzeCkodyx7bWF4V2lkdGg6IW8mJmE/d246YDEwMCVgLGNoaWxkcmVuOigwLE4uanN4KShmLHthczpgaDFgLGNoaWxkcmVuOigwLE4uanN4KSh0dCx7dGFnTmFtZTpgaG9tZV9oZXJvX3RpdGxlYCxjaGlsZHJlbjppKFkuZnV0dXJlTW9uZXlUaXRsZSl9KX0pfSksKDAsTi5qc3gpKHcse21heFdpZHRoOiFvJiZhP1RuOmAxMDAlYCxjaGlsZHJlbjooMCxOLmpzeCkocCx7YXM6YHBgLGNvbG9yOmBmZ011dGVkYCxjaGlsZHJlbjppKFkuZGVzY3JpcHRpb24se3Blb3BsZUNvdW50OmR9KX0pfSldfSksKDAsTi5qc3gpKEMse3BhZGRpbmdCb3R0b206YT8yOjMsbWF4V2lkdGg6YT9gMTAwJWA6Q24sY2hpbGRyZW46KDAsTi5qc3gpKF9uLHtvblN1Ym1pdDpuLG9uVXNlckZvY3VzQW5kVHlwZTpzfSl9KSxyJiZ1PygwLE4uanN4KSh3LHtqdXN0aWZ5Q29udGVudDpvP2BjZW50ZXJgOmBmbGV4LXN0YXJ0YCxjaGlsZHJlbjpvPygwLE4uanN4cykoYix7YXM6YHNwYW5gLGNoaWxkcmVuOlt1PT1udWxsP3ZvaWQgMDp1Lm1lc3NhZ2UsYCpgXX0pOigwLE4uanN4cykoaCx7YXM6YHNwYW5gLGNoaWxkcmVuOlt1PT1udWxsP3ZvaWQgMDp1Lm1lc3NhZ2UsYCpgXX0pfSk6bnVsbF19KV19KX0pfXZhciBqbj14LmRpdi53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgRnJlZVlvdXJNb25leV9fSW1hZ2VDb250YWluZXJgLGNvbXBvbmVudElkOmBzYy04ZmQ5MGNhMi0wYH0pKFtgbWluLXdpZHRoOmAsYHB4O2hlaWdodDpgLGBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDpgLGBweCl7bWluLXdpZHRoOmF1dG87aGVpZ2h0OmAsYHB4O31AbWVkaWEgKGAsYCl7aGVpZ2h0OmAsYHB4O2ltZ3ttYXgtd2lkdGg6dW5zZXQ7cG9zaXRpb246cmVsYXRpdmU7Ym90dG9tOmAsYHB4O319QG1lZGlhIChgLGApe2hlaWdodDphdXRvO21hcmdpbi10b3A6MDtpbWd7cG9zaXRpb246dW5zZXQ7bWF4LXdpZHRoOmAsYHB4O319YF0sdm4seW4sU24sYm4sRS5waG9uZSxFbixEbixFLnBob25lX3NtYWxsLHhuKSxNbj14KE0pLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBGcmVlWW91ck1vbmV5X19TdHlsZWROZXh0R2VuSW1hZ2VgLGNvbXBvbmVudElkOmBzYy04ZmQ5MGNhMi0xYH0pKFtgb2JqZWN0LWZpdDpjb3ZlcjtgXSksTm49KDAsUC5tZW1vKShBbiksUG49YE1ldGFUYWdzYCxGbj1EKHt0aXRsZVRhZzp7aWQ6YCR7UG59LnRpdGxlVGFnYCxkZWZhdWx0TWVzc2FnZTpgQ29pbmJhc2UgLSBCdXkgJiBTZWxsIEJpdGNvaW4sIEV0aGVyZXVtLCBhbmQgbW9yZSB3aXRoIHRydXN0YCxkZXNjcmlwdGlvbjpgI0NvbXBvbmVudDogU2hhcmVkTWV0YVRhZ3M6dGl0bGUKICAgICNDaGFyTGltaXQ6IDExMAogICAgI0NvbnRleHQ6IFRleHQgZm9yIHRoZSB0aXRsZSB0YWcgaW4gQ29pbmJhc2UgaG9tZSBwYWdlYH0sZGVzY3JpcHRpb25UYWc6e2lkOmAke1BufS5kZXNjcmlwdGlvblRhZ2AsZGVmYXVsdE1lc3NhZ2U6YENvaW5iYXNlIGlzIGEgc2VjdXJlIHBsYXRmb3JtIHRoYXQgbWFrZXMgaXQgZWFzeSB0byBidXksIHNlbGwsIGFuZCBzdG9yZSBjcnlwdG9jdXJyZW5jeSBsaWtlIEJpdGNvaW4sIEV0aGVyZXVtLCBhbmQgbW9yZS4gQmFzZWQgaW4gdGhlIFVTQSwgQ29pbmJhc2UgaXMgYXZhaWxhYmxlIGluIG92ZXIgMzAgY291bnRyaWVzIHdvcmxkd2lkZS5gLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBTaGFyZWRNZXRhVGFnczpkZXNjcmlwdGlvbgogICAgI0NoYXJMaW1pdDogMjg1CiAgICAjQ29udGV4dDogVGV4dCBmb3IgdGhlIGRlc2NyaXB0aW9uIG1ldGEgdGFnIGluIENvaW5iYXNlIGhvbWUgcGFnZWB9fSk7ZnVuY3Rpb24gSW4oKXtsZXR7Zm9ybWF0TWVzc2FnZTplfT1TKCk7cmV0dXJuKDAsTi5qc3gpKFVlLHtpbmNsdWRlSHJlZkxhbmdzOiEwLHR3aXR0ZXJDYXJkOmBzdW1tYXJ5X2xhcmdlX2ltYWdlYCx0aXRsZTplKEZuLnRpdGxlVGFnKSxkZXNjcmlwdGlvbjplKEZuLmRlc2NyaXB0aW9uVGFnKX0pfXZhciBMbj0oMCxQLm1lbW8pKEluKSxSbj04MzAsem49MTAyNSxCbj01MjAsVm49YHN0YXJ0LXlvdXItcG9ydGZvbGlvLXRpdGxlLWNsYXNzbmFtZWAsWD1gU3RhcnRZb3VyUG9ydGZvbGlvYCxaPUQoe3BvcnRmb2xpb0hlYWRlcjp7aWQ6YCR7WH0ucG9ydGZvbGlvSGVhZGVyYCxkZWZhdWx0TWVzc2FnZTpgVGFrZSBjb250cm9sIG9mIHlvdXIgbW9uZXlgLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBMYWJlbAogICAgI0NoYXJMaW1pdDogNjUKICAgICNDb250ZXh0OiBIZWFkZXIgb2YgdGhlIFN0YXJ0IFlvdXIgUG9ydGZvbGlvIHNlY3Rpb25gfSxwb3J0Zm9saW9UaXRsZTp7aWQ6YCR7WH0ucG9ydGZvbGlvVGl0bGVgLGRlZmF1bHRNZXNzYWdlOmBTdGFydCB5b3VyIHBvcnRmb2xpbyB0b2RheSBhbmRgLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBUaXRsZQogICAgI0NoYXJMaW1pdDogNzAKICAgICNDb250ZXh0OiBUaXRsZSBvZiB0aGUgU3RhcnQgWW91ciBQb3J0Zm9saW8gc2VjdGlvbmB9LHBvcnRmb2xpb0Rlc2NyaXB0aW9uOntpZDpgJHtYfS5wb3J0Zm9saW9EZXNjcmlwdGlvbmAsZGVmYXVsdE1lc3NhZ2U6YFdl4oCZcmUgY29tbWl0dGVkIHRvIGNyZWF0aW5nIG1vcmUgZWNvbm9taWMgZnJlZWRvbSB0aHJvdWdoIGFjY2Vzc2libGUsIHNhZmUsIGFuZCBzZWN1cmUgZmluYW5jaWFsIHRvb2xzIGZvciBldmVyeW9uZS5gLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBUZXh0Qm9keQogICAgI0NoYXJMaW1pdDogMTg1CiAgICAjQ29udGV4dDogRGVzY3JpcHRpb24gb2YgdGhlIFN0YXJ0IFlvdXIgUG9ydGZvbGlvIHNlY3Rpb25gfSxwb3J0Zm9saW9JbWFnZUFsdFRleHQ6e2lkOmAke1h9LnBvcnRmb2xpb0ltYWdlQWx0VGV4dGAsZGVmYXVsdE1lc3NhZ2U6YEltYWdlIG9mIHRoZSBzdGFydCB5b3VyIHBvcnRmb2xpbyBzZWN0aW9uYCxkZXNjcmlwdGlvbjpgI0NvbXBvbmVudDogU3R5bGVkTmV4dEdlbkltYWdlOmFsdE1lc3NhZ2UKICAgICNDaGFyTGltaXQ6IDg1CiAgICAjQ29udGV4dDogSW1hZ2UgYWx0IHRleHQgb2YgdGhlIFN0YXJ0IFlvdXIgUG9ydGZvbGlvIHNlY3Rpb25gfX0pLEhuPWBodHRwczovL2ltYWdlcy5jdGZhc3NldHMubmV0L2M1YmQwd3FqYzd2MC8xSHlmRFhtNDQxOE9uS1BMY3FVSnJRLzQwYjM1MzA4ZDAyNDIzZDhjNjdlN2M0NWE3Mzg3ZGUxL0ZyYW1lXzMxNjEyMzQ5OF9fMV8ucG5nYDtmdW5jdGlvbiBVbigpe2xldHtmb3JtYXRNZXNzYWdlOnR9PVMoKSxuPXZlKCkscj1UKCksaT1qKHtzZWN0aW9uOmBmb290ZXJgLGFjY2VwdHNFbWFpbDohMH0pLGE9KDAsUC51c2VDYWxsYmFjaykoKCk9PntyIT1udWxsJiZyLm92ZXJyaWRlU2lnbnVwVXJsP24oci51cmwpOmkoKX0sW3I9PW51bGw/dm9pZCAwOnIub3ZlcnJpZGVTaWdudXBVcmwscj09bnVsbD92b2lkIDA6ci51cmwsaSxuXSksbz0oMCxQLnVzZUNhbGxiYWNrKSgoKT0+e0xlKCksaSgpfSxbaV0pLHM9YyhgcGhvbmVfc21hbGxgKSxsPWl0KHtxdWVyeTpgKG1heC13aWR0aDogJHt6bn1weClgLGluaXRpYWxWYWx1ZTpzfSksdT1zP3A6ZTtyZXR1cm4oMCxOLmpzeHMpKHcse2p1c3RpZnlDb250ZW50OmBjZW50ZXJgLGFsaWduSXRlbXM6YGNlbnRlcmAsZmxleERpcmVjdGlvbjpsP2Bjb2x1bW5gOmByb3dgLHBhZGRpbmdYOmw/MzowLHBhZGRpbmdZOjUsbWF4V2lkdGg6ay5sYXlvdXQud2lkdGgsYWxpZ25TZWxmOmBjZW50ZXJgLGNoaWxkcmVuOlsoMCxOLmpzeCkodyx7bWF4V2lkdGg6Um4sd2lkdGg6bD9gMTAwJWA6YGF1dG9gLHBhZGRpbmdYOmw/MDoxMCxwYWRkaW5nQm90dG9tOmw/MTA6OCxwYWRkaW5nVG9wOmw/MTA6OSxjaGlsZHJlbjooMCxOLmpzeCkoR24seyRpc1RhYmxldDpsLCRpc1Bob25lOnMsdXJsOkhuLGFsdE1lc3NhZ2U6dChaLnBvcnRmb2xpb0ltYWdlQWx0VGV4dCkscGljdHVyZVdpZHRoOmAxMDAlYCx3aWR0aDpgMTAwJWAsaGVpZ2h0OmAxMDAlYH0pfSksKDAsTi5qc3gpKEMse3BhZGRpbmdTdGFydDpsPzA6NSxwYWRkaW5nRW5kOmw/MDozLGp1c3RpZnlDb250ZW50OmBjZW50ZXJgLGNoaWxkcmVuOigwLE4uanN4cykoQyx7bWF4V2lkdGg6Um4sY2hpbGRyZW46W3M/KDAsTi5qc3gpKEVlLHthczpgbGFiZWxgLGNvbG9yOmBmZ2AsY2hpbGRyZW46dChaLnBvcnRmb2xpb0hlYWRlcil9KTooMCxOLmpzeCkocCx7YXM6YGxhYmVsYCxjb2xvcjpgZmdgLGNoaWxkcmVuOnQoWi5wb3J0Zm9saW9IZWFkZXIpfSksKDAsTi5qc3gpKFduLHtjaGlsZHJlbjooMCxOLmpzeHMpKHUse2FzOmBoMWAscGFkZGluZ1RvcDoyLGNoaWxkcmVuOlt0KFoucG9ydGZvbGlvVGl0bGUpLCgwLE4uanN4KShtZSx7fSksciYmKDAsTi5qc3gpKEFlLHtvbkNsaWNrOmEsYXM6YGJ1dHRvbmAsY2hpbGRyZW46KDAsTi5qc3hzKSh1LHthczpgaDJgLGNvbG9yOmBmZ1ByaW1hcnlgLHBhZGRpbmdTdGFydDoxLGNsYXNzTmFtZTpWbixjaGlsZHJlbjpbci5tZXNzYWdlLGAqYF19KX0pXX0pfSkscyYmKDAsTi5qc3gpKEMse3BhZGRpbmdUb3A6MixwYWRkaW5nQm90dG9tOjEsY2hpbGRyZW46KDAsTi5qc3gpKGgse2FzOmBwYCxwYWRkaW5nQm90dG9tOjQsZGlzcGxheTpgYmxvY2tgLGNoaWxkcmVuOnQoWi5wb3J0Zm9saW9EZXNjcmlwdGlvbil9KX0pLCgwLE4uanN4KShfbix7b25TdWJtaXQ6byxvblVzZXJGb2N1c0FuZFR5cGU6R2V9KV19KX0pXX0pfXZhciBXbj14LmRpdi53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgU3RhcnRQb3J0Zm9saW9fX1dyYXBwZXJgLGNvbXBvbmVudElkOmBzYy1lZTUzMGQyOS0wYH0pKFtgZGlzcGxheTpmbGV4O3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlLTUpO2J1dHRvbntkaXNwbGF5OmNvbnRlbnRzO30uYCxge2Rpc3BsYXk6aW5saW5lO31AbWVkaWEgKGAsYCl7cGFkZGluZy1ib3R0b206MDt9YF0sVm4sRS5waG9uZV9zbWFsbCksR249eChNKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgU3RhcnRQb3J0Zm9saW9fX1N0eWxlZE5leHRHZW5JbWFnZWAsY29tcG9uZW50SWQ6YHNjLWVlNTMwZDI5LTFgfSkoW2BgLGA7YCxgO29iamVjdC1maXQ6Y292ZXI7YF0sKHskaXNUYWJsZXQ6ZX0pPT5lP2AKICAgICAgICBtYXgtaGVpZ2h0OiAke0JufXB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvO2A6YGAsKHskaXNQaG9uZTplfSk9PmU/YG9iamVjdC1maXQ6IGNvbnRhaW47YDpgYCksS249KDAsUC5tZW1vKShVbikscW49NDIwLEpuPTM0MCxZbj00MzAsWG49OTAwLFpuPTUyMCxRbj0xNjYsUT1gVG9vbHNgLCQ9RCh7dGl0bGU6e2lkOmAke1F9LnRpdGxlYCxkZWZhdWx0TWVzc2FnZTpgVGhlIGZyZWVkb20gb2YgY3J5cHRvIGZvciBldmVyeW9uZSwgZXZlcnl3aGVyZWAsZGVzY3JpcHRpb246YCNDb21wb25lbnQ6IFRpdGxlCiAgICAjQ2hhckxpbWl0OiA5MAogICAgI0NvbnRleHQ6IFRpdGxlIG9mIHRoZSB0b29scyBzZWN0aW9uYH0sZGVzY3JpcHRpb246e2lkOmAke1F9LmRlc2NyaXB0aW9uYCxkZWZhdWx0TWVzc2FnZTpgV2XigJlyZSBjb21taXR0ZWQgdG8gY3JlYXRpbmcgbW9yZSBlY29ub21pYyBmcmVlZG9tIHRocm91Z2ggYWNjZXNzaWJsZSwgc2FmZSwgYW5kIHNlY3VyZSBmaW5hbmNpYWwgdG9vbHMgZm9yIGV2ZXJ5b25lLmAsZGVzY3JpcHRpb246YCNDb21wb25lbnQ6IFRleHRCb2R5CiAgICAjQ2hhckxpbWl0OiAxODUKICAgICNDb250ZXh0OiBUaXRsZSBvZiB0aGUgdG9vbHMgc2VjdGlvbmB9LGJ1dHRvblRleHQ6e2lkOmAke1F9LmJ1dHRvblRleHRgLGRlZmF1bHRNZXNzYWdlOmBMZWFybiBtb3JlYCxkZXNjcmlwdGlvbjpgI0NvbXBvbmVudDogQnV0dG9uCiAgICAjQ2hhckxpbWl0OiA0NQogICAgI0NvbnRleHQ6IEJ1dHRvbiB0ZXh0IG9mIHRoZSB0b29scyBzZWN0aW9uYH0saW1hZ2VBbHQ6e2lkOmAke1F9LmltYWdlQWx0YCxkZWZhdWx0TWVzc2FnZTpgUGVvcGxlIHdhbGtpbmdgLGRlc2NyaXB0aW9uOmAjQ29tcG9uZW50OiBTdHlsZWROZXh0R2VuSW1hZ2U6YWx0TWVzc2FnZQogICAgI0NoYXJMaW1pdDogNTAKICAgICNDb250ZXh0OiBJbWFnZSBhbHQgdXNlZCBpbiB0aGUgdG9vbHMgc2VjdGlvbmB9fSksJG49YGh0dHBzOi8vaW1hZ2VzLmN0ZmFzc2V0cy5uZXQvcTV1bGs0YnA2NXI3LzVGc0xYMVBnQm9uZ2VESldSSE9MSEIvNWZmYzVlNmI4NDcxZmNkYmRkMjcwYTkyZmI5OGFjNTUvR2V0dHlJbWFnZXMtNDk1NjkyMjQxX21pbi5qcGVnYDtmdW5jdGlvbiBlcigpe2xldHtmb3JtYXRNZXNzYWdlOmV9PVMoKSxuPWMoYHBob25lYCkscj1jKGBwaG9uZV9zbWFsbGApO2Z1bmN0aW9uIGkoZSx0LGkpe3JldHVybiByP2U6bj90Oml9bGV0IGE9bj9wOnQ7cmV0dXJuKDAsTi5qc3gpKFIse2NoaWxkcmVuOigwLE4uanN4cykodyx7ZmxleERpcmVjdGlvbjpuP2Bjb2x1bW4tcmV2ZXJzZWA6YHJvd2AsY2hpbGRyZW46WygwLE4uanN4KShycix7Y2hpbGRyZW46KDAsTi5qc3hzKShDLHthbGlnbkl0ZW1zOmBmbGV4LXN0YXJ0YCxqdXN0aWZ5Q29udGVudDpgY2VudGVyYCxnYXA6bj80OjYsY2hpbGRyZW46WygwLE4uanN4KSh3LHttYXhXaWR0aDppKGAxMDAlYCxKbixxbiksY2hpbGRyZW46KDAsTi5qc3gpKGEse2FzOmBoMWAsY2hpbGRyZW46ZSgkLnRpdGxlKX0pfSksKDAsTi5qc3gpKHcse21heFdpZHRoOmkoYDEwMCVgLGAxMDAlYCxZbiksY2hpbGRyZW46KDAsTi5qc3gpKGgse2FzOmBwYCxkaXNwbGF5OmBibG9ja2AsY2hpbGRyZW46ZSgkLmRlc2NyaXB0aW9uKX0pfSksKDAsTi5qc3gpKHUse29uQ2xpY2s6V2UsaHJlZjpgL2Fib3V0YCxibG9jazpyLGFuYWx5dGljc0lkOmA2NzkxNzc4Ny1hYjFjLTQ2ZDAtYjYxYy1iNzk1YzcxNDE2NDdgLGFzOmBhYCxjaGlsZHJlbjplKCQuYnV0dG9uVGV4dCl9KV19KX0pLCgwLE4uanN4KSh3LHt3aWR0aDpuP2AxMDAlYDpgNTAlYCxoZWlnaHQ6aShRbixabixYbiksY2hpbGRyZW46KDAsTi5qc3gpKHRyLHtjaGlsZHJlbjooMCxOLmpzeCkobnIse3VybDokbixhbHRNZXNzYWdlOmUoJC5pbWFnZUFsdCksd2lkdGg6YDEwMCVgLGhlaWdodDpgMTAwJWB9KX0pfSldfSl9KX12YXIgdHI9eC5kaXYud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YFRvb2xzX19JbWFnZUNvbnRhaW5lcmAsY29tcG9uZW50SWQ6YHNjLTY1MGU2Njc3LTBgfSkoW2BkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJTtwaWN0dXJle2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO31gXSksbnI9eChNKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgVG9vbHNfX1N0eWxlZE5leHRHZW5JbWFnZWAsY29tcG9uZW50SWQ6YHNjLTY1MGU2Njc3LTFgfSkoW2BvYmplY3QtZml0OmNvdmVyO2BdKSxycj14LmRpdi53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgVG9vbHNfX0N1c3RvbUNvbnRlbnRXcmFwcGVyYCxjb21wb25lbnRJZDpgc2MtNjUwZTY2NzctMmB9KShbYGRpc3BsYXk6ZmxleDtmbGV4OjE7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOnZhcigtLXNwYWNlLTMpO3BhZGRpbmctbGVmdDowO0BtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6YCxgcHgpe3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjZS0zKTt9YF0say5sYXlvdXQud2lkdGgpLGlyPSgwLFAubWVtbykoZXIpO2Z1bmN0aW9uIGFyKHtleHBsb3JlQ3J5cHRvRGF0YTplLHNob3dJbmNlbnRpdmVzOnQ9ITB9KXtsZXR7aXNQaG9uZTpufT10ZSgpLHI9VCgpLGk9dCYmISFyLGE9aih7c2VjdGlvbjpgaW5jZW50aXZlX2Jhbm5lcmAsY2FsbGJhY2s6WGV9KSxvPWooe3NlY3Rpb246YGhlcm9gLGFjY2VwdHNFbWFpbDohMH0pLHM9eShga2lsbF9ob21lX2V4cGxvcmVfY3J5cHRvYCksYz15KGBraWxsX2hvbWVfc3dlZXBzdGFrZV91cHNlbGxgKTtyZXR1cm4oMCxOLmpzeHMpKGRlLHtjbGFzc05hbWU6YHN0YXRpYy1ob21lYCx0ZXN0SUQ6YGhvbWVwYWdlLXN0YXRpY2AsY2hpbGRyZW46WygwLE4uanN4cykoU2Use2NoaWxkcmVuOlsoMCxOLmpzeCkoYGxpbmtgLHtyZWw6YHByZWxvYWRgLGhyZWY6bj9rbi5wcmltYXJ5Lm1vYmlsZTprbi5wcmltYXJ5LmRlc2t0b3AsYXM6YGltYWdlYH0pLCgwLE4uanN4KShgbGlua2Ase3JlbDpgcHJlY29ubmVjdGAsaHJlZjpgaHR0cHM6Ly9pbWFnZXMuY3RmYXNzZXRzLm5ldGB9KV19KSwoMCxOLmpzeCkoTG4se30pLCgwLE4uanN4KShZZSx7Y29udGVudElkOmBtYWluYCx0eXBlOmBkYXJrYCxjdGFCdXR0b25UeXBlOmBwcmltYXJ5YCxiYW5uZXI6aSYmcj97bWVzc2FnZTpyPT1udWxsP3ZvaWQgMDpyLm1lc3NhZ2Usb25DbGljazphfTp2b2lkIDB9KSwoMCxOLmpzeCkoa3Qse30pLG4/KDAsTi5qc3gpKHd0LHtvbkVtYWlsU3VibWl0Om99KTooMCxOLmpzeCkoTm4se29uRW1haWxTdWJtaXQ6byxzaG93SW5jZW50aXZlczppfSksIXMmJmUmJigwLE4uanN4KShybix7ZGF0YTplfSksIWMmJigwLE4uanN4KShPdCx7fSksKDAsTi5qc3gpKHVuLHt9KSwoMCxOLmpzeCkoTHQse30pLCgwLE4uanN4KShpcix7fSksaT8oMCxOLmpzeCkoS24se30pOm51bGwsKDAsTi5qc3gpKGp0LHtzaG93SW5jZW50aXZlczppfSksKDAsTi5qc3gpKFBlLHt9KV19KX12YXIgb3I9KDAsUC5tZW1vKShhcik7ZnVuY3Rpb24gc3IoZSl7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1mdW5jdGlvbiBjcih7bW9iaWxlVmFyaWFudDplLGRlc2t0b3BWYXJpYW50OnQsdmFyaWFudEdyb3VwTmFtZXM6bixhZGRpdGlvbmFsU2tpcFRyYWNraW5nOnJ9KXtsZXQgaT1jKGBwaG9uZWApLGE9Z2UoZSx7c2tpcFRyYWNraW5nOiFpfHxyfSksbz1nZSh0LHtza2lwVHJhY2tpbmc6aXx8cn0pLHM9aT9hOm87cmV0dXJuIG4ucmVkdWNlKChlLHQpPT4oZVtgaXMke3NyKHQpfWBdPXM9PT10JiYhcixlKSx7fSl9ZnVuY3Rpb24gbHIoZSl7bGV0e3N3aXRjaGVzOnQsdGVtcGxhdGU6bj1gYCxleHBlcmltZW50czpyfT1vdFtlXT8/e30se2NvbnRlbnQ6aT1udWxsfT10Pz97fSxhPSF5KGkpJiYhIW4se2lzVHJlYXRtZW50Om99PWNyKHtkZXNrdG9wVmFyaWFudDoocj09bnVsbD92b2lkIDA6ci5kZXNrdG9wKT8/bnVsbCxtb2JpbGVWYXJpYW50OihyPT1udWxsP3ZvaWQgMDpyLm1vYmlsZSk/P251bGwsdmFyaWFudEdyb3VwTmFtZXM6W2B0cmVhdG1lbnRgLGBjb250cm9sYF0sYWRkaXRpb25hbFNraXBUcmFja2luZzohYX0pLHM9YSYmKHI/bzohMCk7cmV0dXJuKDAsUC51c2VNZW1vKSgoKT0+cz97aXNFbmFibGVkOiEwLHRlbXBsYXRlOm59Ontpc0VuYWJsZWQ6ITEsdGVtcGxhdGU6YGB9LFtzLG5dKX12YXIgdXI9ZnVuY3Rpb24oKXt2YXIgZT17ZGVmYXVsdFZhbHVlOm51bGwsa2luZDpgTG9jYWxBcmd1bWVudGAsbmFtZTpgYXNzZXRMaW1pdGB9LHQ9e2RlZmF1bHRWYWx1ZTpudWxsLGtpbmQ6YExvY2FsQXJndW1lbnRgLG5hbWU6YHF1b3RlQ3VycmVuY3lgfSxuPXtkZWZhdWx0VmFsdWU6bnVsbCxraW5kOmBMb2NhbEFyZ3VtZW50YCxuYW1lOmBzaG91bGRVc2VVQVNGaWVsZHNgfSxyPXtraW5kOmBWYXJpYWJsZWAsbmFtZTpgcXVvdGVDdXJyZW5jeWAsdmFyaWFibGVOYW1lOmBxdW90ZUN1cnJlbmN5YH0saT17a2luZDpgVmFyaWFibGVgLG5hbWU6YGZpcnN0YCx2YXJpYWJsZU5hbWU6YGFzc2V0TGltaXRgfSxhPXtraW5kOmBMaXRlcmFsYCxuYW1lOmBvcmRlcmAsdmFsdWU6YERFU0NgfSxvPXtraW5kOmBMaXRlcmFsYCxuYW1lOmBxdWVyeWAsdmFsdWU6YGB9LHM9e2tpbmQ6YExpdGVyYWxgLG5hbWU6YHJlc29sdXRpb25gLHZhbHVlOmBEQVlgfSxjPVt7YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YGRheWAsc3RvcmFnZUtleTpudWxsfV0sbD17YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YGlkYCxzdG9yYWdlS2V5Om51bGx9LHU9W3thbGlhczpudWxsLGFyZ3M6bnVsbCxjb25jcmV0ZVR5cGU6YEFzc2V0RWRnZWAsa2luZDpgTGlua2VkRmllbGRgLG5hbWU6YGVkZ2VzYCxwbHVyYWw6ITAsc2VsZWN0aW9uczpbe2FsaWFzOm51bGwsYXJnczpudWxsLGNvbmNyZXRlVHlwZTpgQXNzZXRgLGtpbmQ6YExpbmtlZEZpZWxkYCxuYW1lOmBub2RlYCxwbHVyYWw6ITEsc2VsZWN0aW9uczpbe2FsaWFzOm51bGwsYXJnczpudWxsLGtpbmQ6YFNjYWxhckZpZWxkYCxuYW1lOmB1dWlkYCxzdG9yYWdlS2V5Om51bGx9LHthbGlhczpudWxsLGFyZ3M6bnVsbCxraW5kOmBTY2FsYXJGaWVsZGAsbmFtZTpgbmFtZWAsc3RvcmFnZUtleTpudWxsfSx7YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YHNsdWdgLHN0b3JhZ2VLZXk6bnVsbH0se2FsaWFzOm51bGwsYXJnczpudWxsLGtpbmQ6YFNjYWxhckZpZWxkYCxuYW1lOmBpbWFnZVVybGAsc3RvcmFnZUtleTpudWxsfSx7YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YGRpc3BsYXlTeW1ib2xgLHN0b3JhZ2VLZXk6bnVsbH0se2FsaWFzOm51bGwsYXJnczpbcl0sY29uY3JldGVUeXBlOmBMYXRlc3RBc3NldFByaWNlYCxraW5kOmBMaW5rZWRGaWVsZGAsbmFtZTpgbGF0ZXN0UHJpY2VgLHBsdXJhbDohMSxzZWxlY3Rpb25zOlt7YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YHByaWNlYCxzdG9yYWdlS2V5Om51bGx9LHtjb25kaXRpb246YHNob3VsZFVzZVVBU0ZpZWxkc2Asa2luZDpgQ29uZGl0aW9uYCxwYXNzaW5nVmFsdWU6ITEsc2VsZWN0aW9uczpbe2FsaWFzOm51bGwsYXJnczpudWxsLGNvbmNyZXRlVHlwZTpgUGVyY2VudENoYW5nZXNgLGtpbmQ6YExpbmtlZEZpZWxkYCxuYW1lOmBwZXJjZW50Q2hhbmdlc2AscGx1cmFsOiExLHNlbGVjdGlvbnM6YyxzdG9yYWdlS2V5Om51bGx9XX0se2NvbmRpdGlvbjpgc2hvdWxkVXNlVUFTRmllbGRzYCxraW5kOmBDb25kaXRpb25gLHBhc3NpbmdWYWx1ZTohMCxzZWxlY3Rpb25zOlt7YWxpYXM6bnVsbCxhcmdzOm51bGwsY29uY3JldGVUeXBlOmBQZXJjZW50Q2hhbmdlc1YyYCxraW5kOmBMaW5rZWRGaWVsZGAsbmFtZTpgcGVyY2VudENoYW5nZXNWMmAscGx1cmFsOiExLHNlbGVjdGlvbnM6YyxzdG9yYWdlS2V5Om51bGx9XX0sbF0sc3RvcmFnZUtleTpudWxsfSxsXSxzdG9yYWdlS2V5Om51bGx9XSxzdG9yYWdlS2V5Om51bGx9XTtyZXR1cm57ZnJhZ21lbnQ6e2FyZ3VtZW50RGVmaW5pdGlvbnM6W2UsdCxuXSxraW5kOmBGcmFnbWVudGAsbWV0YWRhdGE6bnVsbCxuYW1lOmBDRFhIb21lUGFnZVF1ZXJ5YCxzZWxlY3Rpb25zOlt7YXJnczpbe2tpbmQ6YFZhcmlhYmxlYCxuYW1lOmBhc3NldExpbWl0YCx2YXJpYWJsZU5hbWU6YGFzc2V0TGltaXRgfSxyXSxraW5kOmBGcmFnbWVudFNwcmVhZGAsbmFtZTpgRmVhdHVyZUFzc2V0c0ZyYWdtZW50YH1dLHR5cGU6YFF1ZXJ5YCxhYnN0cmFjdEtleTpudWxsfSxraW5kOmBSZXF1ZXN0YCxvcGVyYXRpb246e2FyZ3VtZW50RGVmaW5pdGlvbnM6W3QsbixlXSxraW5kOmBPcGVyYXRpb25gLG5hbWU6YENEWEhvbWVQYWdlUXVlcnlgLHNlbGVjdGlvbnM6W3thbGlhczpgdHJhZGFibGVgLGFyZ3M6W3traW5kOmBMaXRlcmFsYCxuYW1lOmBmaWx0ZXJgLHZhbHVlOmBMSVNURURgfSxpLGEsbyxzLHtraW5kOmBMaXRlcmFsYCxuYW1lOmBzb3J0YCx2YWx1ZTpgTUFSS0VUX0NBUGB9XSxjb25jcmV0ZVR5cGU6YEFzc2V0Q29ubmVjdGlvbmAsa2luZDpgTGlua2VkRmllbGRgLG5hbWU6YHNlYXJjaEFzc2V0c1YyYCxwbHVyYWw6ITEsc2VsZWN0aW9uczp1LHN0b3JhZ2VLZXk6bnVsbH0se2FsaWFzOmB0b3BHYWluZXJzYCxhcmdzOlt7a2luZDpgTGl0ZXJhbGAsbmFtZTpgZmlsdGVyYCx2YWx1ZTpgVE9QX0dBSU5FUlNgfSxpLGEsbyxzLHtraW5kOmBMaXRlcmFsYCxuYW1lOmBzb3J0YCx2YWx1ZTpgUEVSQ0VOVF9DSEFOR0VgfV0sY29uY3JldGVUeXBlOmBBc3NldENvbm5lY3Rpb25gLGtpbmQ6YExpbmtlZEZpZWxkYCxuYW1lOmBzZWFyY2hBc3NldHNWMmAscGx1cmFsOiExLHNlbGVjdGlvbnM6dSxzdG9yYWdlS2V5Om51bGx9LHthbGlhczpgbmV3T25Db2luYmFzZWAsYXJnczpbe2tpbmQ6YExpdGVyYWxgLG5hbWU6YGZpbHRlcmAsdmFsdWU6YFJFQ0VOVExZX0xJU1RFRF8zX01PTlRIU2B9LGldLGNvbmNyZXRlVHlwZTpgQXNzZXRDb25uZWN0aW9uYCxraW5kOmBMaW5rZWRGaWVsZGAsbmFtZTpgc2VhcmNoQXNzZXRzVjJgLHBsdXJhbDohMSxzZWxlY3Rpb25zOnUsc3RvcmFnZUtleTpudWxsfV19LHBhcmFtczp7aWQ6YDU2MWNmYTdjNjhjNmYxNDZjMjAyYWY4MjE1ZGQ2YjUxYzg2MWU4ODU3NmU1NjczODlmY2ZlMjNkNTk4YjkwZDlgLG1ldGFkYXRhOnt9LG5hbWU6YENEWEhvbWVQYWdlUXVlcnlgLG9wZXJhdGlvbktpbmQ6YHF1ZXJ5YCx0ZXh0Om51bGx9fX0oKTt1ci5oYXNoPWA4OTdiZmI5OWYyZDQxNjA1NjFkODMxYzljZGEyOTkzYmA7dmFyIGRyPWBvbmV0cnVzdGxvYWRlZGA7ZnVuY3Rpb24gZnIoe29wZW5Db29raWVQcmVmTW9kYWw6ZX0peygwLFAudXNlRWZmZWN0KSgoKT0+e2xldCB0PSgpPT57ZSYmc2UoKX07cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGRyLHQpLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoZHIsdCl9fSxbZV0pfXZhciBwcj17QXBwRG93bmxvYWRCYW5uZXI6YXQsRmVhdHVyZUFzc2V0czpmdH07ZnVuY3Rpb24gbXIoe3RlbXBsYXRlRm9yQ291bnRyeVVybDplfSl7bGV0e3BhdGhuYW1lOnQsc2VhcmNoOm59PWxlKCkscj1lPz90LHtjb3VudHJ5RnJvbUlwOmksY291bnRyeUZyb21Vcmw6cyxjdXJyZW5jeTpjLGxvY2FsZUZyb21Vcmw6dSxsb2NhbGVDb2RlOmZ9PV8oKSxwPWwoKSxlZT1udCgpLG09YSgpLGg9cnQoY3QpLGc9VCgpLHRlPWQoYGRlY18yMDI1X2dvb2dsZV9vbmV0YXBfaW50bF9ob21lYCkse2ZldGNoUGxhY2Vob2xkZXJzOm5lLHBvcHVsYXRlRnJvbVJlc3VsdHM6aWV9PWZlKHtoaWdoZXN0RWFybkFQWTp7fSx1c2RjOntjb3VudHJ5Q29kZTppfSxpbmNlbnRpdmVzOntwcmVmZXRjaERhdGE6ZyYmey4uLmcsdXJsOmBgfX19KSxbYWUsb2UsLi4uc2VdPV9lKGU9PmUocmUpKHVyLHtxdW90ZUN1cnJlbmN5OmMsc2hvdWxkVXNlVUFTRmllbGRzOnAsYXNzZXRMaW1pdDo2fSksZT0+ZShjZSkoe3VuaXF1ZUtleTpgQ0RYSG9tZVBhZ2VfaG9tZXBhZ2VgLGZldGNoZXI6aCxwYXJhbXM6e2Ntc1BhcmFtczp7Li4uZWUscGF0aG5hbWU6ci5yZXBsYWNlKGAvY29va2llLXByZWZlcmVuY2VzYCxgYCl8fGAvYH0sY291bnRyeUZyb21Vcmw6cyxjb3VudHJ5RnJvbUlwOml9fSksLi4ubmUpO2ZyKHtvcGVuQ29va2llUHJlZk1vZGFsOigwLFAudXNlTWVtbykoKCk9PlJlZ0V4cChgXigvW2Etel17Mn0oLVthLXpdezIsM30pPyk/L2Nvb2tpZS1wcmVmZXJlbmNlcygvPykkYCkudGVzdChyKSxbcl0pfSksKDAsUC51c2VFZmZlY3QpKCgpPT57cWUoYGxvYWRlZF9ob21lcGFnZV9zY3JlZW5gKX0sW10pO2xldCB1ZT0oMCxQLnVzZUNhbGxiYWNrKShlPT57UmUoZSx7b3duZXI6YGFjcXVpc2l0aW9uYCxjb250ZXh0OmBjbXNgfSl9LFtdKSxkZT0oMCxQLnVzZUNhbGxiYWNrKSgoKT0+KDAsTi5qc3gpKG9yLHt9KSxbXSkscGU9KDAsUC51c2VDYWxsYmFjaykoZT0+KHtsaW5rOm0oWmUodSxlKT8/ZSxuKSxpc0ludGVybmFsTGluazohMX0pLFt1LG0sbl0pLHY9c3QoKSxtZT0oMCxQLnVzZU1lbW8pKCgpPT4oe3Jlc29sdmVMaW5rOnBlLGhhbmRsZUVtYWlsRm9ybVN1Ym1pdDp2fSksW3BlLHZdKTtyZXR1cm4oMCxOLmpzeHMpKEplLHtvd25lcjpgaG9tZWAsb25DYXRjaDp1ZSxmYWxsYmFjazpkZSxjb250ZXh0OmBjbXNgLHdpbGxFcnJvckJsb2NrVXNlcjohMCxjaGlsZHJlbjpbKDAsTi5qc3gpKG8se3BhZ2VEYXRhOm9lLHRlbXBsYXRlTmFtZTpgQ0RYSG9tZVBhZ2VgLGN1c3RvbURhdGE6aWUoc2Use2xvY2FsZTpmfSksRmFsbGJhY2s6b3IsY3VzdG9tQ29tcG9uZW50TWFwOnByLGdxbFF1ZXJ5UmVmOmFlLGhlbHBlcnM6bWV9KSwodGV8fCFlKSYmKDAsTi5qc3gpKENlLHtwYXJlbnRDb21wb25lbnRDb250ZXh0OmBob21lcGFnZWB9KV19KX12YXIgaHI9KDAsUC5tZW1vKShtcik7ZnVuY3Rpb24gZ3IoKXtxZShgbmF2aWdhdGVfdG9fbG9nZ2VkX291dF9ob21lYCk7bGV0e2NvdW50cnlGcm9tSXA6ZSxjb3VudHJ5RnJvbVVybDp0LGxvY2FsZUZyb21Vcmw6bn09XygpLHI9ZT09PWBVU2B8fG49PT1gZXMtdXNgLGk9ZT09PWBBVWAsYT1lPT09YEpQYCxvPXkoYGtpbGxfY29udGVudGZ1bF9ob21lcGFnZWApLHtpc0VuYWJsZWQ6c309bHIoZSksYz1PYmplY3Qua2V5cyhWZSgpKS5pbmNsdWRlcyh0PT1udWxsP3ZvaWQgMDp0LnRvTG93ZXJDYXNlKCkpLHtpc0VuYWJsZWQ6bCx0ZW1wbGF0ZTp1fT1scih0KTtyZXR1cm4gbyYmcj8oMCxOLmpzeCkob3Ise30pOmMmJihsfHxyKT8oMCxOLmpzeCkoaHIse3RlbXBsYXRlRm9yQ291bnRyeVVybDp1fSk6aSYmIXM/KDAsTi5qc3gpKHhlLHt0bzpgL2F1YCxleHRlcm5hbDohMX0pOmE/KDAsTi5qc3gpKHhlLHt0bzpgL2phYCxleHRlcm5hbDohMX0pOigwLE4uanN4KShocix7dGVtcGxhdGVGb3JDb3VudHJ5VXJsOmAvaW50bC1ob21lYH0pfXZhciBfcj0oMCxQLm1lbW8pKGdyKTtleHBvcnR7X3IgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfT0RUaXV1LXQyLmpzLm1hcA=="}},"time_used":112,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":112,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.cookielaw.org/logos/f05892f1-834a-4618-84f6-a2a5d0ef4db1/01973e5f-d2ec-729e-8ac3-884645204cd1/2bb32f0b-149b-4a3c-8cfd-dd4c583c9a62/coinbase_logo@2x.png","fqdn":"cdn.cookielaw.org","domain":"cookielaw.org","tld":"org"},"ip":{"addr":"104.18.87.42","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:09.081Z","timestamp":1785108249081,"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":"cookielaw.org","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 22:47:21 GMT","end":"Tue, 20 Oct 2026 23:47:08 GMT"},"fingerprint":{"sha1":"BE:65:35:7C:E3:8D:B8:0C:7D:40:51:C7:4B:EE:56:FE:FD:2D:ED:91","sha256":"D6:A8:FD:24:40:A2:7D:0B:B5:73:08:9C:B2:AC:6E:1F:84:CC:D4:09:7B:BA:22:E8:A5:38:A4:10:29:65:88:5C"}}},"request":{"raw":"GET /logos/f05892f1-834a-4618-84f6-a2a5d0ef4db1/01973e5f-d2ec-729e-8ac3-884645204cd1/2bb32f0b-149b-4a3c-8cfd-dd4c583c9a62/coinbase_logo@2x.png HTTP/1.1\r\nHost: cdn.cookielaw.org\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\nReferer: https://www.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\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\ndate: Sun, 26 Jul 2026 23:24:09 GMT\r\ncontent-type: image/png\r\ncontent-length: 1248\r\ncontent-md5: ImCrIJZVihIp0dY1uM//Ig==\r\nlast-modified: Thu, 12 Jun 2025 18:24:28 GMT\r\netag: 0x8DDA9DE5E431BFF\r\nserver: cloudflare\r\nx-ms-request-id: 1bab4a66-301e-00c8-7729-b102bd000000\r\nx-ms-version: 2009-09-19\r\nx-ms-lease-status: unlocked\r\nx-ms-blob-type: BlockBlob\r\naccess-control-expose-headers: x-ms-request-id,Server,x-ms-version,Content-Type,ETag,Last-Modified,Content-MD5,x-ms-lease-status,x-ms-blob-type,Content-Length,Date,Transfer-Encoding\r\naccess-control-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ncache-control: max-age=86400\r\naccept-ranges: bytes\r\nage: 64452\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a21727fcca5e32fa-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":1248,"size_decoded":2115,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"2260ab2096558a1229d1d635b8cfff22","sha1":"f0b69a0dcaf3c2ce14b49917987ae6fb05a464e8","sha256":"0297e824197074ac922cbd2f302427a8d364e38edd1996a7b6c2fa94fb39df18","sha512":"0704da696d803dad2db853792476eb2d059f4115d4a2ab098a2400245b9e5557af1ad051b9f02d606728ccab75cfd3ea713b4cadee3789a504bb1d6143c6f2c3","ssdeep":"","tlshash":"d521eada8ff7b4784d4b5720d45001eade19656ba30d78509e50351607ce568835c5fb","first_seen":"2025-09-24T03:28:24.916045Z","last_seen":"2026-07-26T23:25:46.860447Z","times_seen":130,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAR1SURBVHgB7ZtdUhNBEMf/kwDPuQHLCcQTmJzAkGiVb8IJgBNIToCcQHizSgPxBMAJ4AauJ3B9NJqM3TukEmRnM9M7mw/dX1Ug5GN2p6enp78AKioqKv5jFBbFGx3hF3ahEdFf23TlxqP3NRL6+Y1ej7GJe3xUMRZAuQJ4pZsY4yU9a9Mjgh8x3d0N/f6CvhqgJMILoK0bqOGQnh3Ro4EwGGFsohdaM8IJoJyJP0XhPKQgwgigqw9pD5+gzIk/JqbHGS7VexSkmAB41eu4osk3sQzMtjgoog1yAbzWuxjR5P2NW2hiWoQ9fFL3ECATgJn8NRan8vNIaCYHktPCXwCrN/kpCvskhAu/r/jQJmemhjus4uQNCW2Hls92qLl+8GHyq7nyUxqpXWKv0xF3AdRxiuUbPBfY5f7g+mE3AZhzvo11gY/ljj5y+eh8GzBV/QjhiNOgxzg0SMc2QVKEcCTYwvN5PsIG5lHDO4S4MUURnsYF3dTAelNG2E16FuKaDdoKPM4Bcm8rD3NDX1EMXu1j7zO6o/cRQhBb2MnTgnwbYFZfDruqY1JDSTh7qc7puy0ao1go/BO5tiBfAzqaVz+CBFb3K7WPEHT0CSBejIQEuYOBSrLetGtAV0uSGAZetVCTZy7VSQFN4DDdeoLZBaDTTI4ETmkdIzSj1JjFkKDwwvZWng1oQkavlHweq3At36JbyfFhsm2ACXju4E9M6rqDMunqa1H+wXIaZGvAWHz09FA2mpKkEobZQqtZLrILCVtpFrdcxpQTlBFlvZjtCWqynP6ZgmQhuXy2BV3NJ4JfVGrqDk+wucL+IS+7uouir/YQiJrl1W34MsYPrCG2YzCB/0jfsYbYTgHJakZYQ2w2wF8D9AIF0NWcjvc1grepS/0X2QJQIpczSnNxZZ8EHKLLslO3WS9mbwEl9LmHC0ib1YQuuuWUyhbASHykHaJ8ZGHxKHtRswUwSNXY3w7wNjCZnHIwY0fwJ6Y5eWgAI/W5QelzLpqGpp3m+mWrr+wuul0AdbHPbSrGoSlSl9DZBpCxC+B3agck28Dk5bvauTgxlw6NJa9LxGl+0YJdACaHdgYpmgqVHLt7lKmewFuJxwCNJUXlR6j5WeExuANDpgUMa8KQiioSw8jf4UJs0eaLzfwcxfygt1hGdpYYrFF1WhFb9Za1ZYi3MCseoSjcT9RXBQojjGl+4vR4SMuePDgmE+2alMZCXiOmBE1rnmfqlvYwhcZTrBfHLk1U7nkfaTJyGbDh66uWy0fd+wNG4CxMjNUnTjvHHPn3WmQcSuKzuGsAwzEC9+AUORrLw/QHeYbj/rlfZhXb5Dyboyb4acAEvhCXvVfDJsTSyTMyATC8Hbh+z2XwZTHpPxBO3gwRglDdHO6wDeotv1l6Fj4hFI7oUWZWyARoHKNYGh58CSeACVNBcH9BhDAEn/iE8AKYhf9lZgSO6p4JCq5xmpWqY4DP6gYlUa4AZuGgaoOEME4FwcXXx+U3Lsaoh/7BERm3wCtdUVFRUZHBH3G3X6Yh3288AAAAAElFTkSuQmCC"}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Cc6q9Fpd.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.673Z","timestamp":1785108244673,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_Cc6q9Fpd.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 889\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\netag: \"89ca7c234f96f90b0f215641c1fd39d9\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 17f08d2be28e8029d667d74b1efbe608.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: 3B7_Dqp936IKgxC5Sfvrf2wKm5OrJet1focs92L0RU1_COLF0ptN6A==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=C%2FXgqRjRWJ1QMhYlbI%2Bx247%2B1KdFX9MTY4Rcmvpbe8cKnBzZYx8jB1%2FIb%2FIJm5Lmh1%2BqLrwn3AeAYThzhGkXe9uR22LhSenhnGH%2BFLg8zvfw5bbDwHt6UWL8C3LecW50sJd%2BftuyUtAh%2FPG%2Fz46Z\"}]}\r\ncf-ray: a21727e13ed80883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":2098,"size_decoded":2046,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (2059)","md5":"8b0721a2d85259b5ead1329a1c13da81","sha1":"33a53f375c94fdeb98ef92aa9d4d89496311bed3","sha256":"9565d5dbd6c81886b0fd3c48bc021e28fca86dec2f0af1977179a569ed68c3d3","sha512":"5779e73cf389ddea92b22a946c2b4247473fb3797eb59288da74b0b3a09f556e92321c5bbc88ba8c773d894fb338f70bc8af8f502fb664c52cc9bf5797b96ce0","ssdeep":"","tlshash":"d541649d55b0371e90b7243ee05e0b2f3674a0646f5e4ea0e170be6eb3808a41f21a97","first_seen":"2026-07-26T23:24:50.413286Z","last_seen":"2026-07-26T23:25:46.782832Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGZlZjA0MDYwLTAxYjItNGIwYy1hNzRhLTIyMzcyMGQ1Nzk4MGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWZlZjA0MDYwLTAxYjItNGIwYy1hNzRhLTIyMzcyMGQ1Nzk4MGApfSkoKX1jYXRjaHt9aW1wb3J0e3QgYXMgZX1mcm9tIi4vY19uS3MyYmplbjIuanMiO2ltcG9ydHtyIGFzIHR9ZnJvbSIuL2NfZHViNGlhUkguanMiO2ltcG9ydHtXcCBhcyBuLF9hIGFzIHIsZmYgYXMgaSxoZiBhcyBhfWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgbz1uKGEoKSkscz1pKCk7ZnVuY3Rpb24gYyhlLHQsbixyKXtyZXR1cm57bGV2ZWw6ZSxtZXNzYWdlOnQsdGltZXN0YW1wOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSwuLi5uJiZ7Y29udGV4dDpufSwuLi5yJiZ7ZXJyb3I6ci5zdGFja3x8ci50b1N0cmluZygpfX19ZnVuY3Rpb24gbChlLHQpe2NvbnNvbGUuZGVidWcoSlNPTi5zdHJpbmdpZnkoYyhgZGVidWdgLGUsdCkpKX1mdW5jdGlvbiB1KGUsdCl7Y29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoYyhgaW5mb2AsZSx0KSkpfWZ1bmN0aW9uIGQoZSx0KXtjb25zb2xlLndhcm4oSlNPTi5zdHJpbmdpZnkoYyhgd2FybmAsZSx0KSkpfWZ1bmN0aW9uIGYoZSx0LG4pe2NvbnNvbGUuZXJyb3IoSlNPTi5zdHJpbmdpZnkoYyhgZXJyb3JgLGUsbix0KSkpfXZhciBwPXtsb2dJbmZvOnUsbG9nRGVidWc6bCxsb2dFcnJvcjpmLG5vdGlmeUVycm9yOmR9LG09KDAsby5jcmVhdGVDb250ZXh0KShwKSxoPSgpPT4oMCxvLnVzZUNvbnRleHQpKG0pO2Z1bmN0aW9uIGcoe3NyYzp0LGFsdDpuLHdpZHRoOnIsaGVpZ2h0OmksY2xhc3NOYW1lOmEsbG9hZGluZzpvPWBsYXp5YCx3ZWJwUXVhbGl0eTpjLGF2aWZRdWFsaXR5Omx9KXtsZXQgdT10eXBlb2YgdD09YG9iamVjdGAsZD1yfHwodT90LndpZHRoOnZvaWQgMCksZj1pfHwodT90LmhlaWdodDp2b2lkIDApO3JldHVybigwLHMuanN4KShlLHtpbWFnZURldGFpbHM6e3NyYzp0eXBlb2YgdD09YG9iamVjdGA/dC5zcmM6dCx3aWR0aDpkLGhlaWdodDpmfSx3ZWJwUXVhbGl0eTpjLGF2aWZRdWFsaXR5OmwsYWx0Om58fGBgLGxvYWRpbmc6byxjbGFzc05hbWU6YX0pfXZhciBfPSgwLG8uY3JlYXRlQ29udGV4dCkoZyksdj0oKT0+KDAsby51c2VDb250ZXh0KShfKTtmdW5jdGlvbiB5KHtzcmM6ZT1gYCxhbHQ6dD1gaW1hZ2VgLHdpZHRoOm49MWUzLGhlaWdodDpyPTFlMywuLi5pfSl7bGV0IGE9digpO3JldHVybiBlPygwLHMuanN4KShhLHtzcmM6ZSxhbHQ6dCx3aWR0aDpuLGhlaWdodDpyLC4uLml9KTpudWxsfWZ1bmN0aW9uIGIoe3NyYzplLGFsdDp0PWBgLHByaW9yaXR5Om4sbG9hZGluZzpyLGFzcGVjdFJhdGlvOmksaW1hZ2VGaXQ6YT1gY292ZXJgLGNsYXNzTmFtZTpvLGNtc1dpZHRoOmMsY21zSGVpZ2h0Omwsd2VicFF1YWxpdHk6dSxhdmlmUXVhbGl0eTpkLC4uLmZ9KXtyZXR1cm4gZT8oMCxzLmpzeCkoeCx7d2lkdGg6YDEwMCVgLGhlaWdodDpgMTAwJWAsLi4uZiwkX2NzczppLCRfY3NzMjphLGNoaWxkcmVuOigwLHMuanN4KSh5LHthbHQ6dCxzcmM6ZSx3aWR0aDpjLGhlaWdodDpsLHByaW9yaXR5Om4sbG9hZGluZzpyLGNsYXNzTmFtZTpvLHdlYnBRdWFsaXR5OnUsYXZpZlF1YWxpdHk6ZH0pfSk6bnVsbH12YXIgeD1yKHQpLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBJbWFnZV9fX1N0eWxlZERpdmAsY29tcG9uZW50SWQ6YHNjLWRhYTc5YjA5LTBgfSkoZT0+KHthc3BlY3RSYXRpbzplLiRfY3NzLGltZzp7d2lkdGg6YDEwMCVgLG1pbkhlaWdodDpgMTAwJWAsaGVpZ2h0OmAxMDAlYCxvYmplY3RGaXQ6ZS4kX2NzczJ9fSkpO2V4cG9ydHtkIGFzIGksaCBhcyBuLHUgYXMgcixiIGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0NjNnE5RnBkLmpzLm1hcA=="}},"time_used":113,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":113,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"images.ctfassets.net/o10es7wu5gm1/7u288Ye3VqqulrXnAkpeg6/1daeac1468bf0f2279473422c54b88cc/GTM25765_Prediction_Markets_GlobalNavUpsell_175x175__2_.png?fm=avif\u0026w=495\u0026h=495\u0026q=65","fqdn":"images.ctfassets.net","domain":"ctfassets.net","tld":"net"},"ip":{"addr":"108.157.229.92","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.169Z","timestamp":1785108244169,"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":"images.ctfassets.net","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Sat, 18 Oct 2025 00:00:00 GMT","end":"Sun, 15 Nov 2026 23:59:59 GMT"},"fingerprint":{"sha1":"3E:39:C1:37:7A:6B:60:8A:D5:73:9E:D7:C4:F9:3A:11:9B:BD:94:2B","sha256":"AC:EA:37:10:54:C2:91:B5:04:B8:B4:CA:CD:35:48:4D:D0:92:78:F6:E2:8B:D9:57:78:20:D6:74:FE:14:16:A9"}}},"request":{"raw":"GET /o10es7wu5gm1/7u288Ye3VqqulrXnAkpeg6/1daeac1468bf0f2279473422c54b88cc/GTM25765_Prediction_Markets_GlobalNavUpsell_175x175__2_.png?fm=avif\u0026w=495\u0026h=495\u0026q=65 HTTP/1.1\r\nHost: images.ctfassets.net\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\nReferer: https://www.coinbase.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\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\ncontent-type: image/avif\r\ncontent-length: 19050\r\nlast-modified: Thu, 16 Jul 2026 14:21:05 GMT\r\nserver: Contentful Images API\r\naccess-control-allow-origin: *\r\ndate: Sun, 26 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=31536000\r\netag: \"3d3fd4e472ef08f464d2a01974fe5f40\"\r\nvary: Accept-Encoding\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 3346055bb53a57ebf02828b88e1ee87c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN56-P2\r\nx-amz-cf-id: Byu4n2qpJUfKyCLBzX5Pp10yn060l8lvFYOx2qEysW6NtCTR7HhXow==\r\nage: 67998\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":19050,"size_decoded":19586,"mime_type":"image/avif","magic":"ISO Media, AVIF Image","md5":"3d3fd4e472ef08f464d2a01974fe5f40","sha1":"3d786913ad3c645712b2335d61d79db20589d11d","sha256":"a2c9f7116db7cf1d0c13ca42a20edd32afe4d09e4ea698f2363367eb8a104800","sha512":"9b46812b924789d821ff1e19ae24f05054b759d9191ba82731643b76326a802ba01ce54deaece60e12b7a01ed21134bff76e0b7cf11b4d7cdec5a531e2a13651","ssdeep":"384:2MGn4XyxJxNxhcO+zStZUPV8Nz0k1Rj8DCJlWZl1jScc4cr7ZFGKJbrxiO7IM36:25n4XgJxNPsQ6yZ1IC6lgpWmJf6","tlshash":"db82d0fe749e4c5f90ac91758b279e3405976b7adf331a28e23171045839594fc89f50","first_seen":"2026-07-26T23:24:50.414576Z","last_seen":"2026-07-26T23:25:46.841678Z","times_seen":3,"resource_available":false,"data":"AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAASVAAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAe8AAAHvAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQEMAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAASVhtZGF0EgAKChhiPd7uCBAQDCAyvpIBEdACCCCBQPS6zckISHeizFmQMlZJt4AsmpBdQpfyk54/hjjsQ4O89KOnVRhy8AH5yLFGTRlxavDv7vKmi3NqoMf5twMzujvaK25FbAhHk1nzHAQSK5gXSuTDHFiB+SnpUnOIu6SO5N4AzaHmyZeNolHOM5MgxC4pjN/VmTBdmkhQ7Zw59Hz7R96DM7aW5lMw+4uds036a0RJyeKTs95PKBdwrUsaqDTfLiphXfTyelRnE/3Gn4GPVPQrjWlhDrGb3N4zS3zCixQvc2cKSFJQJZvozM7Lgj2kB5flZ8q53O/SB1nR4KtVrYzPEaPQEkQrT8cNGWU4FU8pLh06j/p6YS2wlE+b9/Xic2xZNlhMCXqpVKV2X7tAA1eNZu1k5sm4PfBf0sNmZdqoBirtmZKZtKgS5sTg+P/d7knKnqkSvmbP1fM3beDq2POx0XonHxc7sWT+wGa64a1VKtUHABOgPqERqz2PZtnQMho9ehAyhJRtVTiS+futAGYEd/ooEwhuI9k1/jJP7JOKr9mE3RorTfanUnAsBoVWkn8u1UlfbyTSUMPJEl7uInBXUyTD4BngPhbMLwBevCUHZie+9CAefNjyVefoB1Da9Ctt8JIukE1mh5pzN/0+kn3b7ovm1XuYXcHFIunOCWkX+8+G9zj8RrrQV/rU+GhHoffYKeA51QzglRomMXZ1FqnoG13oSdEgbDz8lDHFv0uB3siQwbWGt5N1g4N2X+hIOMXgUvFJBXNJ/FUkhDUyxgY03Nl6fKlI5IkI77kAPHC4mOUsrBg3T2T9pgPObJGn06g13Pq/m4hJOaSnaAIifKUwA1OhC7IO8DdtGE8OnK8dci4VPXxIcl/7irZs7vczX7bdEZObkNF7nY5UTk9xkpI09QFcWqp6yFeilrDERPewoJfPi1ktzb6FNxVX8A3gWI+U+T0jumdIhLno+4CW1EqQrnDkwOncFNR7jek75vtTc9gbQnl4HsxaJVIFyRsmE0vfWZM/qjP4j4RBi9IKf3oe5xQ7ZKeKIOI6GslChpNgXLm7WCnU2ujjILKqCeMTGRpKhJJgtRfaKiJLkCkYpcKRiMWZyyy/B++XoAeB/WAigXrq3L3FQDJfEKY/o+mq/gM3GE23KM2JoA6PSS6BugEu7bi2qT0+aTzqXW4l0WaPFc/dd7p2F+cqJoVrcIKWDzhEk8uWOx55aHc7qy5WRPS3AUtSgeTJR+NfVvqUdMtSsppIF8S9wc9uB5ajtoRAWafV+OdxxAGghgDQFLha+lS+nUy3SUSN3mGEocZjypyWZGuKldvuyRbpQT6XUjXhkLI58otp8ojYbAvCc2FHZUMQtVG+hzTo39fVwdbDzvQnDetZG4DUSGFTEZQlUiCqQ+BHRlURjIETF4XjPuM5xGg0otgC68UVwtT+k/bOW1AMTuXmy3FOO4mXhzl/CI/CyVHgbRV/Z4wxQHXrSvhxzD0OOaVcsO+vyzxILPZ+fwWtehnJkcmFpLn9tuz0goy8yLqOqSimRG71mODprE2Q5Ixt70MptCaVvl4vaKLTwhSd1SLHQqH2asehUUgVLOH+ujiARagDV8QEf/P8jIw6OMfy+jF0BmBSZSpe+n5/AkFh43/ggHkyb3pE/IFpxFWov6znkAIpdIkpUlZaNYNnMTAOltLh5BTIfF+uvs+54LowEgxEPeWzlCX+gpOG4flHB04Uo+cl/xMXix1+W3H60QwaUiEqFsLqC+rRWkPSLGwroZlGKmVfnwR2FfAezogmbayqr9O8cT0emgnLwqU4zDPkebAKaJH1hHd2QuDwbXqos5rvoy2ZQHutMOgWUcU+gxnmO77Og61dy8cUAv/BZd4KBC0IUpZr5BxGoTOuLNUHwtKWpAJdKU4xgepizN3iQgF1xGOwLYVZ4iWFLHaFRnVUwvmANadGOwcDCfEcnSG5qNCOgRiAs1QwlMSMllCRJahfbQlvGiZg2HgVhJT2T1dCdxibqSsh4KRwXzTe3DxsZ3wO9/jIk3J7S9C5vCPIkohxXz8YrIqVSwkf6A0paf9t26Lh+K+lVzCektceRIpjHvyi4bHXtMN1geXzngAezkfrRqLw9lK7DGLlEvctwiiTjflKl/6T4GuX8qG6qTBGGP0U5rWqs/Yti0GvRXcm+GIltEQeR/1KNHHG+A/+V+0IwZ4q6jgAM3tkOJVFBi2vQA/A81XSQ+SYdno3dVLsCjbrupB3ZmnYtQiPljner7HHe3A19+qDS4iSeLIbeJ0Wm+m//Up0BJrjR0A9BBBNWd7CbR8/N0cnOeXWfC04w09ytZXSS2ToOxD7WLr6+6wZpfkhOMDZ5EVwTB12jOGwx1x1R08fV7CrxAGmhs/dBPe+iNOInxxoLa5TDmmz17wWdcDB++z1jm2ISsKQTbOkgf7inmrE/Oi7i/yqKc5UUB2yvge7M+NFVEC2jZ3nOOA/epLjZAZQHlF59WbDJbLAUJtq349YJ07EsE5bd9Kk36IdYiOWC+GN4xPitoqbpQw7m950heYHFJSXIj5XPv//tjrZfaKERtZ8/bfXhgjaROEMiVBjo4U7Axcup8AzSbqaFFJj2czmP6CRgQ8rvJfI0QmiVphEx848w6tPWliiTXw2TRqNAV4WLJoD7CbHd5lyztIlSyckxJlJ1jchhVuEFgLkknexIwV+Lpi2z3Ga9qo5XDiB696DG8saVOAxygvNV7/Ucrql4Kr+55UxZdQg6tb6hTgXRzLSUti2htswfQJGf2vcNa781e7D7dD1ivrlFKPbLQraGPVw2C7GRaxhWPizv3ex1g5hksjdzL+UEjKq5vfMDLbTNCR9+MNembTgxRl9dc9rLT7VU3XqKSXHhnWBFd/IYYDsT0HnyQTtT/vrKvr7N2j+a0zqQOLqRiNC3ec1cWUBfF/PEOEtQ0/Q3U0vtuq0dMGASjwvFHGPgp0oIV6A1p/Pjo2tmmugtGW3EU+r40civiDqcLheU0202aLAOza9HnDV5e/HGv6HVqeszoQpFKYA/vJ9g+tzMvLNbkAY4TWslHyolJHP/DRJ6dtevQ4jyc8YV0bEqmPdQyxbO2I1wdHDhJ0ee+LF99KBzQrp9B9d+KSyLueKVUYx3t4j6CEzKeLrVFND0/gYodgBt7dE3ujelUba0OtWnuA+d8O4sU3kw6JQoly452jqv2pNfjnqtnw0wsVz3pVcXsWBZq9i5Sp8T547/IkSchURx0cxMKb5ac0aY75PvINw1YOVcGD0AfrLwfRY9CNZtEwS1Qi4+m2NIuxdHaWl9JTwMSz/6XmOa4ScbT58Fv//w9RuVWtAg8Fv7sj7vpARhB36UdGWutvqmXoe7iUm1MJrX8XqmSYnubQ/CWBs84HwCBAIXrDkJ0MmZZPMBRbJr8NRzKnjqSZ9SQjLNM5lt2+g3nDsvFljV5rdCwaz2Y0MtQ1Q1b+oj+Gygzbgj/LwGb4LItpT5nkTOsrPfExLrtgRwl/u1QHKShjqig9BxuGtPy1s6w6MpI4L25b0rGZ25xnV+I+LP0iMlSN/hBl79CcJkJUUsYR4vMNmteDAxHgPLyyCwmO4O66obdqz0gbUwiSlArJPzyrvixwTL/s3Hgjc9ddaxcfj3BoFXyuwcFM8AoL/IJoL5faoJLjBo0rhDl3Jtkr9uBQxUr7nPd+xvgeRhd8Ng0S7s+QeqwrZTKJA7A2TktNGKmoHtatR0pvhZv6dzZWA2LCDDmP/PfpmgugF7N0r5PcZ2szkOFaccF62Qg+4fPq10X2WBhi8q5Sj+rMoiK5Sy48tZukl+70zF6++XPRtUPqzKE62cQBLWtHVK+cQFOsc1AST9QMsAlle0bS82CPSGrOc0LieQLc9FprbmECEPJmF6BDzuBVnxBTvUrHUJuUlviDRiBAkmiF94grL8yo5bnuiCxFi/6AvcDVh//Ip00Nn7shAhwfd3PHFixQNLF+7gV8rgBXTAQ//oJqQcEsb/4gibpT8Ya2UztxWqQQkFZ9zgIIONLNfL5/RlPqHmzJltVa56JWCeere+bMbYbpLxC5bQVAWBo5b1sqV3p1uHXiujDv09mUuC8TxCVWiB0R9V6Gb7K4eZ7DNw+jcKRRy8tmRFIuLoJ2mhBajpuqdix8dY7VLUrhs3VLC1FRT+Xqu+tHHu8MYzTdVslyQRJ+Z7gnTp6iKZAaYqZ72mIPc3e1rypdF8qiEEmMLLZwVJUJs9LLzRt6SaLdaQfQXbf1V21kjYsfVgH62vO2G4YC6KBCbTogvgBJRCYG/NlaCLXT/kcCKnpFioP421TyYzK5XZ1ACVLt6gRWAQw6mAnpWswXadHCZ3Z5bbdNUAOukHxvRrLKW9hgFY3vkupEWAIrH8JMSZmRJBuV13qR1zjU9dwFR7e70kE60Y0vzMgSjahNvtwo2G9Dx465koJ48nGigKS42rdarp0KbRfaV90UMdiruKZSFQOiBR6nKlqE2Rw8acRF/oF1I/CsrfnrAy1LwYalMvrQPzOZDIyEyIDm1ekPcBYR2XDx7gRM2FyPmrF352Mj2vPXW68hoQNYuHxPRsY+87Xu9rc3xWO5XiH5vVj5QJ2kde0ay0ls2GPstxQADnJC4lXblIAR/Z2IqgtiPjA7RNEQTsGs0JCFpyRXSOpyuzFwASudhAN8EN2lBjn79mHI3nF+A8tBjJu8045BUrLvEs6TVOhBE0vS808xmzOgcF8k5zJfBb9wQegg5ZbVEWffLzdkG/f9YCm5dn092HSkr9H8ZvCQbYZcF0ZxLRF7/7vGAmZBMtXttNTbcCiRPJVe3f6vg5lJdxkbnHqLOYa/tjt/wEbEUeI4rIPgSDKaJJuimQGtiYtmsRRNu0kh7gacykYMqKkedQhdTZCe7LJjfM7K4ZlnNgFgHzmzRAKAxDzs70h/pkO8mcMgZWo1Fuo6I8LJZh/+goF7jcen9GPSx7xv53m+2/tGkq7YimYDw7c0HyVXN0kVD7vodb1GxeIUVA8tqHaWtemQfcVZBu29DOYFDpgpsAJaz/LbHDvxMnnSFKhrFYnKAPyTZUgZIIuiJmzKSaaY1ib27fwfphO70GeAjFxafZlbwvOxgoqMdei1tRFnKbSjzL8S3EbIQqamT+KnNiswjaKhMbZQ+ma999nqOQnaHE59SE3WQ1+RGQ5vrbmz4+zj1FaCRkvRRybP1CJxKopvWiWA+KnK+lz+IxLUw4p85Ug+Nq588Ytro7UDAjNkwIQy3ue5H9UwgySYTYsA9n6AWu4dftGCFCImYLPglEPbPz1y1wZLK3BKSe99GDexhE/xpMgRWlmkYktIkMe8JFZwMfdX2inSvyQjJ5uwhi4OovfdhqteR3UcfzG5K0czjKUEmZIEI1TRIWTUe1lu18vEfmxO+8aFWslaRjmUrfYjrQxqP00BMt6NHHL3g+NRovPxdLk05FKJq//OIy76W8Aq75o8b0+blGBQ4ks+pAZJBpwl3sajh9elsChsopObF+l7h17tlQbg4/vdYaabE6crSF4WNmUzK0eSlfvuw1LmaG9HQ9INvk6HGJuI1hWihX8bU7YRGxM/B89CUFne/lKgiiA7/WdIuMH4S6ykr2y2fxezZ7qtd0I1+6El878m/su8QMWvlRmRe1foG/sgKlsrdk+E705SU+USunSz0xplv1YFsJJpOui78O5MfzJb6RNaqFKJUJxlMb1e1zZEcRnDB+0HBonMO6wvi80odRR03Y38xVw9ZdrSgY4u9kwQlLkEmcQYjE+xkitZk0xxCFbC577Dh2fLEWwrU1FQvPOfYfkNl0V9G5eNwYOpfn9P2w3x+RJQNJBReulT2/zY5FZWKJ7RVE87iUgJhSFIefCugxdAnltN9ji4xR7ZVFTud9TQDapez6LKHSbsf+5TQIBNIT+UoZ8dqyjxwFYWqXBuyPcQWXWHB28BKR2X+/bLWjS8AKARW8aAynUVcAr5j3D3+E5pttVn78RtnNiFMDLyGVA1paortjtmStL5vJ4FoWNNg1tY/kaRYl85zIK9RQdrvaC4Dr9Hf6Or6+qfHexA58qcJ7b9sVm5Un9BX7iP8GM9RnsmQxdc46010HBO/pPyl49bYmow0NSkYJmkEXNGjgSaZFtjXDcPS28zCVe+s2lh1Bff2UiOwahgBzJ23i8Nqjf33QrIfKiq2hHqi9C7iNQrR3XqYNcTeOiynZP8ubkjx6r9ROPp6tn3z6aSwpYnLIpWOLT84+B60+zmkEhs3Vl/48R0uIgw5BdGtBnW4woc2Wk9aKO6gsYlvTW+MtR2QSTdXNQz6ycl8Rnp7CIkXVx1IDExaNC6XUEHvcMIdeyFPD9hDcrcDgpFVgOFrSGLQ/alQCagWeT3HM1BWM8+afLLPHLy1LJpezEXOOQnHJcKLOoHeBAcFvI/9qsKLfoEIexkkHz6MgW5bwi4sjcPwb4rYd0jQ9chUetQt6rCl9Xu+9Tt99p5738zXAa1ZzgI6VjDPSwG8FvxLebrO8LRvOKuLErS4ArHZW9G7tAptWvX4XZTbR/caljTeR03AVRSN4v+qTSVQO6Sfuhdt8ryHpBcSeWJUi3XK+Po8yUKWZ+O3GwE26HxYamLYTyIxcNfJy2l9jvr3nZYAoTFmGsJLjVaYM8RMdpVOY868A0qE38+TXVE8f0mB1L+sUQ0TE86o2KDp9pwpaCXuW5TEb1PK6W7o8tJoI6NHBmT1sl5bGjll+Prj4PhlLQpwdRvlK+pjVC2kMpM3Amy/1LInI8u9vXe8wRu/gI575u0a0UZwu9REAEPuKPOZnfpPkbD3JhjV+o1OISaJVwF9ce8ZuLs5WffzHdKt4RepZx2psxvCUIZjzWo6YRyqrxZQr/XQE98YzjukEW7pWw3vnWiMCc41pwjXQQo9ANMaq5GAW1GUmoEo5E5chQ2W0erabOXcYpnSQ1SeToGnGrTEa8AdQcox04YNkEOSGSKyLwR/+RTH1x8ous9IJWnmBuDmS8Atjgx3uKmjf5nCuPNhXOM6RWSEhAcgHk8BOGUVdfP6jFDZaQhsy4DTbloPmKTp12NPO30kufeNI+1nbEiFGzWKOkJrQgn/CUs3Z6khotIKgx40LKPIdIR3m0l1uavnoc59HHV1kNCjtWKFjJTx3JjFUGaY9jtpsbnhdBty/MwV0JTXziAd33slbMJyTG8qFlb5Ly0ZCVgcQGDsSM8OzEpBLgkmCqk3wvP6uiZY67PTOM/MQitvm2yydyR3v5zy96MyXzfZn4kVRgdvG1ZNvrbnl+XgvRxxpFlist99EpCX3pnk0I1/CNATRfI7NHcJ33Z5px0ojlPImZVv+K+olkuLJHtgKir3Z0REIy2xGqAN+OgVSDdYrI0x29gJ/fOG9mTxVzou6zfhEDE4Qr5fn2LOVE4DqRlTYuFDQJ7oCgamTHGuLunnHWqmkXCbWeY3dSj4Jdg9TBjKvcUFreQNLxV2zHxC6xkyYZxaLsQ8NZOPUCL3V4RxK8//JeLdUf+2Y6i3Y/drygcZibdoFz4blLQtYcZPwg3BA7fN8kdJre/KaqN0/kFWTcaczIJfiQ7UtoEDW7rAbXZKLIjXiqqDIOZBgF1JFAA+iZPnIHI+atBc2/x7KAiHJP1SsK8CL8Hsz57c0lnb01ezv4Smmpq42MEim3pAI6N9BQwWz00U2LxKtoIzS9bipqij9EDgoX62xq3hJR7y35lqpYPh6A/XNWB080Zqm0KKW5giDMzx0VzMqPMA1fFKK9van5IO0W2L2WJcbU0D2HCb1y0JujmDWASvWUScQQztDiEhWARdt61hiikYIpxmCOl55fj35u8ZDfrpJbqusNggKbfdzfTpJVVIZL6LQmmUh5Nd4FzuZnVMXoErkL2Om10s8vt0srd4Lt8MOWyeOLf8pjkmc73zVbR4ZR+hMg3odCvHYNhuKfObQYSkjN9wDs/UcXm6LsRoijUDCUiuzduEkwB2h9TaJCoVilV8W0amzLUieR2Ds8/nWbILQBjYwmHmfHRoucGGf+XD1IJ57ovgSokkcibNwVRI6sWkzS5k3KLZyQnfxh/3+YogapocL3fqBjx1TJ8iE8Zj2knSmYpTvPWWlx9GnnWDPOXtCdQjLEOzjpRgJiWcf2T7gjfaBxxOak0nqpkVJqh6lSRFDcQJCQaV1pAbKMevb+pE3tAS7IY81eFk7SFODFVdJtjKx2KKdUX7e74skRbrPo4MCDzCn9unhc8y4vQpYPOI09Izmut2jWp/KwzO5ZzuD2hoiOox8W4EiUc6SB2ME/92pJojEOqsQE/V11VoIZ3kHi17OKPTRPTzI64wI7Y4Tco13DX9gvfntWDatRFtkJFW+oQMriBtP4b108AjKSiKXef5cYLu2AMaYmWiHTzdhBIvSma+V02M7r5sboEhKHcu4+9ITfvR0ByG1tui3MyzhiPn0Ou1hzSZeaa74Pgrhg5JGoQBJaIuovkSwXpqjN8sF2oPU9aIULkHduoHxjpdhqtJ5BncJOoeYFmPphE1Rz65TbqMn2NaHrPmY99pVNn18fkwUqQPUIpNEZ5MTESGBBv5iiGN27HukbjTfj32w8hGAMOajB3zh064ktcp3vBFp+V93/XjphhJv9w53GbweWL9UoP2ZMvl+yZslfOH1g/aLSvZtGWIZmyH2ZIwlNK5vFfWfGGbK+xtGD9AtAR+okjBLPeem3m+K2yVsf5n29A6e4hfHlh9RXGIwwnK0NvtS59cbyml+7bMCBFTMTwnwqMR0M22O5rYJb370yvNd1CSmUjHBii/pMT7wLI59rK0PFswGyIqp8svtfchAoT9jRYdz2OIUWWOYLuLyhdckzUuns+cz/IHuGX8APB/9+5z26c0EfYhVPC+MDk0wnqG754dqdRYgUlUyqOnmWG+xHMc4thm+GynkKqjc9lSeFTftq4XkiI4HEzLh4j48/QWs9X9Mpx4xYceV/+mSVMkeriQoCzR0BnXx79AsMrXmu20BQGufd5yefa8jnn37hznPgF9/7dIMHU3oTnMLFJyVGriQuewwnpa7AWaqrTzO6HZHbLBwuGLk5mvCeEZNnWVd/sZLmh86keKnNefptZM1TAVyZAereo3Q6D6W4Lp11J8TpC2rfg2C+XxClNs60XNeEIh+4htObnJz3RmQ6pj2SnHjtWOxnH7yxkgWQC7dHfFq8f/zUlEEcGWTmYGo4MY5ZeW/ZDf7xwHwIA3Tdd4oWHdLrCzncNfoCCz5WFXvZaBQkg6vPCCZ+crN2YzKGFBKAIZ6tC2brOx1VRYj/3cSNqYZ0vhf1gNe5GVRLZWkdBRRZCMWfvqZLcbay4sG+MSeP3Wg7h9EPRyHISwDHor5HLhty3B7ABW053EK8HjX70GmKU2aPpp1EyypJ22YQlLPZuHLqFciepNQK11moRh3nmAJHvqEqVPgQ8ZsSKeOUp+cxwiIhhbQxvcKWjBraXt3HXRoG0/GXvDwZSB/0wizjZdZvl+TVkEW2A2rrNb85EhbjXBINmmy97dt7DwRyDhYYY6OLuq5DZqeL3aCNhQtNjvbgeFTPMSh8sRGqAsEG/FF2if5KXL75ogTsbvyyeCa40LyOs0YLfsOmB+VuNBeWuHLdPoG8WQDiYJZOE1qtbxMT+OYSfci/nw3lF7cOrUfzF09esXrpHgi8cfwcZn8UHvur5Qg2XXbyEJULGrPnIx68FgJlgUki6xGVW7o+46Cim8OR1uBt8BDac49gX8rPpTHeQCoy6tUfLBD0+LtrzwLJG+ZOKDHAq0m9NGD3TG+S6vFn71YvR0saEmeepTwu3Zeual27kx4hcp1R/6JFmWz+gjmzG1DKlYwcZytGBiPaNN5UiMdlkZPsgNtJopcVT0PAR+7u30BhvFrqVZqFKjotaE19tX0nlNfu4ofocNNTb1IpqMrojK5B5GGdsIWxtThxtZ2fhIshWCCtqmPCQpKH8xU3r2X6C7p34ZLB3WQ5PuXQnLxhvMNDvy+9Jb88krpDLsvj7WvicoSqieFUXAcCgnoWJSYNJ5Qn2N5R6+axMnTWPSwPdyL7XknKcw5/iG3DIqpREzGU+tDTTeRAxs2Fy/QiwOxkcjy1T1ljJ7FrUL4jve7hFY5uA5RRSLA2C2ytNzpeTxx305BIMdMGABk2D2wvWTgGY2tH8OyAd7rqX9D5/Kzlj25ea/jtMa812+OhZc/Ydy6DN8bPz6BJTi3cMtX9w5h8IL+MUgXxgcXrUmdLYUL84Ik4aBEgVq4LSM3cqyNIkX8AN2Kvy+ryVg6BB/ziNYe2Czw5lreWBMdSAqnoyowoG4u9qBcWJYuTvGsTNdENA+uhTtUqcnUF/Dro3p5NDCqdlu2w3aIfkVFWY1/RPVlwFJ3lt+2rmelUrtnfLjiRuOha9MhD2fW+4rFwYvNOtmZQMmD7K9Moa+OIp3eE8qgj2InMHVqBe8Cs9rHt4QoHhrolw4SyvjhQ3ykrnIIOylTXqlyP3iAW2O/x6svXMEylnRYXD3IkZQkVPoJZsiD8a9liI7l/I8aM89fYMgI2ycRv3vi3yV9eF4xJ5w+OwjB6voWYth0uprjWgJLlCkZ+4dAlszKecYbebGF6RsFiD5DXIJ8UgyLUz4nvlqnKhFmLxaHpZqNG+pRC6l/mq6YVNpllqXVFDBTSv8TzCZNmOaLX0yas9/uc2n9rh3NV/3DBk8fp4CgZhLPBQlXWNC1rH3+hbHkJCSxsXggR2fvg5rcmXHDYAv/uNRyjVkrZEC0V/6a7sVVxaZEw4BRaC0xCFZRd3byBtFBbkdXLshM2snABT+dkzmnCZlJf+4VVYsd/+/mxIkm4+MBnmJd3pLS1ZZPLxQDaTaIcyIKnXjw3rBoHZSZxMA+Zzj37h65M/m/mSewYJVUmxAJi7DsDuEQmTBGHzs3xK58dkk+WD5tvfpdCYUqEa12/VoAAE7kFt4rFCGGKjiLdDoyu5JDYuOi2Wuh+RUfXHyFMP0vn722mKWwDJ378+SkgaHOy9ZxB0UqIHRA/N/DxVzCuLOni2RggzKurOB+0dmu8svm/8yWGvOKzj3rZ+MjNmT7cgfZeuV8Zjgoq2lLyNEmFD/JYlNja3UGGEXBw8bi0DHdatUGiy/+nUvAnZeP59GcII+BNM/zrrhIGa6iqjT3Lnr2BY+EcR7Tkn65TqQp4DODfALjsFCeQDMjKl+e1JyiLueTxLJtf7771Yq4Cct7jb4jVD37a58bPzIa6/uf8DLnci/BHYX8K0oxDb2EA2lZl6wzGLaarCP73tmJNe8PrstTKvHTehSFTBfqsbNq/iJQ3T5xDPl+eR7WSwDBlIxK5Pz4mFaqfOXw60jyCT8IgruNfEus1uOHUQZr5f3d3sfURkzqx+RuDZ3kGotJ/IRyKVnEShRqFV38LZ2KBPweFwbnTYRAdyWIFPdoiKHfHsg1fjucPTRSYihNSML2W8CUZyp6nQikXT0K9hVy+/jh0qLy7JQzjsmyFRhfNKrMUkX8KGcL5omOLBSFpvW2u+m7sAv1a78OVvBkqAJzXiEIoQAbc12SKyX70QYKsoaHkYfpZxStUwXztb4pTkZbzbN3lFig0T6Q1ui01tI6WWsrl1+EN5jKu8xTlbuqkW2YM/OBw9rruxL2HBJEVeC5HLMNwAM6xWYOIoddx4KDhMibT9cCktRfdvyBUTUAVj6zYJbhb0Ba1g8hvRABfXGqo8QpYiv1JPFeeu6kzTrpw1+tQQgYJa7HAUjxJr6Rku36A2a9lvHghMPVSxyey/6j/BS0ZyXvr9CmwL/+ZcQw0Tu4cenF8UfM2U7irVQEqSzZVDXsb4lUXVbCCMbvPSFa2YGQks+RNjfYK4DllFLD1ExMlQFxq7Au3o8V5nI5gH3Fvrlwpv26JafaiGLSfwRgOyZl7llVxRL0erH2kxxsvsFMMwj+BsVBM5S2pHgZLDG/YfDJIDXuNytEFDx19dSxGdjvQRBYa/EEH51oWgs9/500zcWnjlZb/tAdoqnE9QmzVsg86/5UVjvRBnMTT/BsrGdI6M1EZ2p7mSE9VNm5Le2ZJcfwegme7fMw4RMEbrd52YjHPsa9BqayDNoiu+A+4rnWtsR8nuvdVWRM9zJ5p1LQAoZXIv0ux1uEAB62lEbLXQtt9o5wPuHjDpHEw6HTrfq3yayqCAdW8eBF6bclgDMA6UAeiSZPlJ3CeGN0xfdPmFFT0BLLFzac+0uLXhtYxi3wUCMVM4E615tjvwjyYud02wISXDqwsrhHgTzf7cT99DdnUpHyEAz446f/jHFxq9Oti/GC7J6UW52EI92j2SPNv6Tn/uPOv7rw66rxvdbglTbD+9seyEa8Gvcx+WJx9elezgZCevCrDMWQ91wO646xMDyFwSupFkEfipR427yHVBG4aiy39Dsz11yX96WsqJrdrxKknYso5Vl2FKvmSFzu8KptlyNvahbFp+ifV9xzZ/JJWfZIOZ42RXG0pJkgo+0K9yKT7ttLywWDMG0na4H9TZQjmbSlvgIK5daH+gknC7oLY9dTLO+L3o556MJqqceoxo6n3hpPYYbJsneDLLuqaFE9R/jXbAEJeccInu3gIunvkpx63orONx5iz7FsM0SfUZraqOuiX0LuPjkxQiJ8r0MpaPFaLgYwspbJ7rnDafcoC5qrJ9sZCeU8lip/fmhGaDfIpv9x+vbVP2gwaY8UMi1XSLQQNKW/WbpRXXbVXzIQ1Xt6xaa4ETZinIb+zKnoCftKnWMH53X9t0xlBOksdJHEskxC+fqSbjyGOM6C0kXECHeBcnbsv7ZSzz2Ji65IIiVxTLqE2K0gb4MkyBPKCiPJVCPzDaCdHqMa5+xNLkYoOOpxxIDTSRFZeijt7Vbx52ZwA7MPI6s1SSv6ss+pSdVByeSnoWfcGpIReLuXKzpl8vcfBgFTMn73QWcnq++DIdMICkc2aUk4GZjCnjZTrUETrSsX5r8IIGk81iPQWWDuT9rJi4gP34a82ACChMvxK45k8Hb7HU0hYu7aqEkA/eXSzaeRBbRKwhkW4FdVTlhr0uWbx67qOsr2FCIkhTjOWHt3eWnkhBB19THmvyJSMrFX5/qiiGR/XNTDo/4cvT5qM2caC+ZcL5WfEiexBw6BMKOYN7s47dHg5rce99y14KGmiPADZcHtL3avAMc9+4igNQtxwmVZTnNbqiUln4k15inEHVzKfDZaAstdhumotCMny4ISAnk9u9hHo7SQxoCqv7Or2FT2xsXFO/rtCBCJ3p09jBefZYsjPx62OjKsIZk4EBwKJeFAbICzNSY3gtgO/u/tt8/dmjzUgJioqJsOXyCJPhPzEBuIjzcr8UprtAXyNjfqgdM1lrk5vmqsoANL4iNxdaa2DWQOqTRycXL0CYo7nEGrht1Mw2wcVqyGJ/rvS8R+a2YUzP32nkiqSyl5Kx2hU70FmeaLOAUaK78DhkXnSIEDRjEjrWy1jJ0tMzXpezz7mgb/uboUeZSqPu4ZuhNNvW5eVdLDHMSOZX4g02zbFVRwlmqkSCYGaBiguLSqwyfxR2Ksgbzgt9GC35RlLPg3MhD4sM7lCW38MaVunJE3xhrnoUCLHcfraXw+LXWBrbvwzyg4j39WtcBeBrufaa1fyzA3vRCOM3wOKhxmODXGMtpyK6AI9FwpLPVD17mVfrShPFeb46ZxxFIhAQfY3E70Nh1L/jhIK/zwAFrvx7qV7QW6jzMWN5GT7JVOcnNdqngmwwQYRY3qp3yVZgxCftVR5f+rlIf0rKy/ZCEC283ACs4NHGKcHS2OVyzzW+Ne9TF7FGwFKcewcMX66iKQJC8TtLa/zbpT3UW/0cwjlJ5lR1Uh5XgtuKgBEppNY6MPfv+QprASAN3hLMdoP31UnSJs4yoBXuH3zllaGAEoZsk0WfwdlyXkIB3f/6uz2CiVf/nBanzB+cP6/dU98rqXs1XRo4MLe+IB7fAvMlfhODBdGORJ8Dt9SjndBUa3KoBCAqqYGK8milvz/OB8Vq7i6XCIgA4MPGl/KJT9Eho7e9GClnkir8fJ866/4soqbAYw9ItURbavGOnXyl6Mj5QCqD9IP8sHevdmLaM4hQtsbL3SDMOeENHuEZPLb/EqlNp6Ak9LRcy/BwNtkwmT0TeyPRA7Df+niq5UXkeydYLsUNxlNErOXasPKrKuP3vEoU1/NhtmMv1SNCuiA2uSM268Glr3LSbyKrxvdJdkia2ZK2sliuaTKdaFZcBOlnqwlkvFBi7h1atgnLBWrmqrEVvd9W6/Nzt3zGh6Dl0QopwM0QtEAcaxM8CWVvl1qA0weuq+vkI1PHOABlLbq0yfMLDYOYhnxSZSu7mJTj89O2+TXTR4Ufk3MPriDMRjqglbzAFgr/9w1yLw3eEL2PoEvM0UzP9+muh0xj0BIq6NjdJpKTZ4eLVq4Au8LjENy9g3Ul4rlSZcKG7zPFOZVX9FIoSzLivxzae0JFfVcFDtOy2GUyCUWgjudMSPeUQ56+Sg3BGW8WpMxGPtJqJOs/qyf0K98nuqcdYLMTdAsbk9x3j1ETYF2cbWjEHcqxATFUZc/q4FVFVPrDaraG+E1LTJlTCm4AH7nD7wuBEo8sYQ4SyoJ9v2Rdygsvhz9OT+nw6uY8DlJpJlQwe7RD19d11hKMiFgem5DHAjqi2xmBx9bKrDVJB+ph3E8PYUYde6n06EgfwTy6fTKUKvbV10S04pvX12hHWShb30oOY9zdQMst5fFBP8pBBkyNGBOu5jRDjZ/w72U8ZiJufF6o4TTYSneKzDkOgsp+/TlofQPoGusS3+vCkb5xkaPhFxvGwVqBzJgFAPSPKwCAIYaEhgrCSzsIUP0D0hyQo63LCI8rf2sNU4DAPoWtuPSQF06AD35ojBTaleH6C3DEeMFNbxGbVXnx7jEUyugD6Jue0b+iMrbtOrSNfC/SryAogk16IwcXC/5E7P4ByJEaP1A88eNw589me6dEvS5VfM689YsrT1EpJ0CU3bCOqhu8eklB/W0EH2082f8g9pv7//+YHYdSfT0JXnSbMEiY45iR7OqQJann8e6TcdUNylHNYqd2QnJIS8ofcU1p2cYIuRCja9vpxZPTVNqoJ/Ugf6VBjPxYIXJYL+kug7J70gNWc1rn1djkE1sU4UIfdVeyruDeXCt3PLPI+dFZTuxs2H8DXi2z6n0leabtsypkPB3f3lcwMrScXGUNOdYvydu439tZu99i8LNkKkAI3wKGm/GyjfU3WRcmsI61oG7pIDR48fzbpZhxRYk8vKcZuR15M3w6M1tgA2GLZNfgLs+9kpLQ3bzoXxsKvwki5OJG90qv+0N80lq4d5H0G/CMnscVT5mjsjXovsjwn9pJ0NeK2CSmaYVz/2NgmDW61ZHXezx6Ay45CamQQE2DXsGA4BzKLYCOv/bwOnif8OCwEw9Uaaw++BB7QznQvflS4awAA+uRuRA2hWBKsx+D0jUWKJS0iX/xLf9d9ClT6qFiT7y1AnIvi8laEk42PJKZPOOgFaS8GU80x4NiIK/0UijiAguqcJ0OrO/v2kys+hS3xMBGZka3CYBGNkc7YgbPd0/JaTriY1jwFI0WjuDSTldtFLz1Oxeth8eioze1PCiBjuxk4It17GRk3sZt7Hs60EZ67H7/4FC4AcW38RvNQ7WK1WzI6VBwtBc/fm5Wv+mNJs8fn1vnQ8RJmdMZjU99+rTf+h0VniiByZwhOkO3Thze5qSlzCTnzu6tk8brh0ltlxrEpzxbJKsXUTD6zDBezZVkSE4ixi0b7JOwnz6DySTrlfHnbtZkT/0UQ/y0aUHsbe9meRaD+3Isbzn5+jiC0TOa/Swu4UYV0ReoAo/eQm7G2yklV3YGYP/sH4IDD/Owltgp4W0dE557PGbElbHn8gHI1GC3+xjZ/aNxShpbtV497dwEsrahF/DoJG4kHRdLIInNPhrcWmj012f6J3kIg2kT+RNXQRBd8/LpoeZTCjfJVWU6z/0WjSCRwNy4okGfHe5JFOgLbJCoW0+H7SxaQVNuGH/EuDMZ+r6JIaov/yUCkq63J9ccA6veEoXlXCLUk8J9tAwVdqDosma5jcQbit0yJmKTTHgiufmGCSKIM/5AgeLq3xl3LwfGy052KEjtxdPZsA3+lhgXQa7BLqpMNDaLOrJ58iSxsErq76lVWweT7OcZXGnTTFuvl+JPdG/ppQj2Qn33NKBdcpLg2nWGfmF7NYwCE6A9b9UFwUCe2rglU39HKEVA5sGdO+AhiQgux5z1l11/MjBFZ+P/aAHQA6dGhj8h0A6iSDyfQAibJ/Ku5Rse2/Nvdz6epRT8jpw7C7R4X0SpS+wTuny0MYaXl0G9uKTeVIQDfupAte4luaPaqk/+cyJLlZHTj0nGytE/0Ru7YiHevdXlkL6dNjPhhpj4XBm2mk4G39PgkWcCpsSfRHcpnwaPWXcICaHldeVUENTpri4r5P6vFD/a8bozUIzXCh2mAgk5GBbT0HNlQIoiIpt95nu/iOfzTQqPEwehidDxcdhpNjz4WS/TPoIzTv5e9ccu1jwbfL2zAkGmel3ZjQsEUGwNZNHVuJz12rdzHPlBO/qe2oyy1E/2zUXeDQb7CTLMz6HPIQ5Is6aswRsecy4q6qztHpjn8v9YGAtHl2wbUUlSiaX4DtZ0+UImUNkyxfMOol52XxpZeNsI5PTYG1J5eXF1eRHNrlIYiYL/j8aH89Z7aX1wwkDmThBkZuN9jNUj3PVPeE97TAqvgqc7PzLY7+UmvKgly0/MwG1z9tVkuDW7HInVFTJ2FhlLUpV/kP6ovUkCim23bl02ztV7+0Yngd2mz8OckPCle9DyuDDEp+nLog7DYbnxAdztMBBaIzWFDc7DPXuQI/LlBbI5ukHCIagaSGSEXrzyPM9Ge/xsPFXHUBRCN4PI6QUY57Brm7E3Yeolf69pq1W5IeRJA1H+dC3VaP45qQ2BGGIhSj0a94Cl5aZjgvJHk98UxFFxi9b7vJfx6FrVOY4qAyAiyE3HUzOIjPu7XwGdTaEduJ/8YA9mKWxrqVs+mjYjwnILgmj0E41nmqbgeMF5Hwk1I0/wLmixDxC7289pcbEnRQaVBAvLrh/b77tioplqhCVNVQmvmRZjtimWVG7qcuWs1NC5MdoI3J7MWEGr2MR8aujtCVPJOS6osowDYUTt3wKZQWTIp8ZzuB0F2s1SK+d/Cr67vjex17SYauRn/0PbfBwcew7l89UUMn2/NvqZi0CIButWOl+hVvOa8P8AC/PFk8eIdjCdj+tgQwthlm7yubhrsx9gixCQrkqD7fAr8d28rwYP+yuy8eN6wCCHto5KCPG0GToVmknFkp/eEKg6FhDkR/7+0imaj1QodHakYAlpBDMpbESL6WMVO6c04Aaa5R/8EGyuy+vjQndoJlnwbbLSyAyXChLQfFxBGHYG7SlYZsm8YpVVQScxvXDNnAw1H8pUDCQEX9G5xiiWtHV7wG9jrbdSi4U9tSsD1LnHPM1zlhHCTnxiL2DzaOLrSfEBiJW65K9mcOXZXhWVufDQHF9ur9xXcPXIA2tNrzhs5X5m0R4O+9RLDz3IuJJqHaJEfC6AAXchYbsMemHAPPetMdpI+s93ZC54nweody7NWg8cpTTeIryI94eyntb9zkbn8jedqClXy8aNoRPNSf5A/nuEYU8YI6/R5i3zq8sSm4j6EK+rBcoElmTPhPQmV6FZvlLQfi7p54uVnJZURLRuHlWczKsqsXSM2TjE1uJm84qTnoLoh3GGmpclkrdPojSjvWedm1OTkm4E0tXht3dkYjxSQyaMzqJRfnX3OxJ0fWjWkVAND2Xdqyy8T8snfQUmUqdGpWOAuWbl6Q8GB53ZMXb5zTW8AmmAPwrJqGZq9iW00VVF07bi09m+Xa7jSH9f6832q3NPbHD5YrlSJ6GSF0rwAT5skR05kAHAk3OzBpTk3ddslslAOWsS+EyELrFfgaC6xV9jDtg9FN+EujBWv0gtHDwFJ0DpcncoBdMPxW39bJFCkvsczzAUmVQCRcQPeKmHz419PugWpn/LIE1Fpi3fBEu0OXRkL5A9mITMhJbTHero5pqzneyRZyPnMxpnb51Acum0BGoRZPao/Eq/hVMZTCcnPjJ/UBGWyjoMraX06R2FP50A+XW2YDCIKHJH9vw3kKv2rpEGbKemo3QgqYFiFgipbisCA2gjTxnVxxk+dYmQ9DdW4k0C5KhcMv7HGiOGemkqPoOfdy24A6E0/wMBSADo3i0fC/h7MiD0u+pea+/p9odrAAWhcxVIwf+G+ehApzBovHxSs3r7FdZorh8QXn092tvtdy2d+Is8AY6qDvEeNr49mCdvruKKl9lknDQsAUZ3X263mDgH1g87Z6lfxBmNJ1bJMJ5dAqrPn56CRKbg9FMcyLxhvl7r6+lzzupACsg0KAvW60sxkz31yct/pGubaARgMjvgSGxnKjmYdx1sFZs9HTvYlnLRjlyowNSK/M68CPd5ACZ+y8ky2U3/JeWRa+uBj2+ero7hE3vfyfQNG7r63WrbcX224TozS/ez44MuY9ed5wbPfwXOpcMXHY+c18a9hnYgdw9uPlpz8oNKn3J/DPB6D0cJ1a6oPl52BbBaLA5eN4wAeObUPti6h2KZK/5f0Ltj69sXuxbibmiCyDVtzyU+vLyBDIq0Jq3zvOmA4sNkUz6l+e9skiu84uAEfQNZAG8lWIdD7CmMERSQXn3Rp12f89rspdmSXGCWJVtxW3np0CeaB+xQGx/Cnn+nIUR6uK1vfYL6iapuFJ3fi7QIZFSjp0SbLYY8zrZc0Ij6iO8HimRtiS9Q0m4/nEgOVtwjDP9G2ewzwul9S0JeabzdG90wvrCMeKLEqZ/7ggAVd4VNkTLLjei7johHFM7LjNGczBUFWdKXqZyC2ZFkT1owxVf2K+1IU989NTsOvvuGc/7BYD9tBBWUZVJ1hYttxfODYhpJ2kGU5pOPuKD1hAXDzPZowNGVgNetvpAFnhardVmJi/xvgu1DE/I7KISH/5FgcMyz6eh/vuAgd5SDq7xWR6jPhTwSm8xHN8VZrr+frBVq1tDSht+SODgr5gubKJuoSgw5Ici/mTwsfp7BpMm6cd9RiewwON23PSvkuQjcSdvq81IEA+z1nSO1iJmzPqMidLnehSK//JbPCnu4CebrMoGNMelnsG6vtXDX38vavn3AFOwU/D4/Cz68wvBlVqpos8Xe2tivtJ6cPp7UuNA6fjqkyQrpfQfvftJYY7rgzbZPNev3iG/ky9T0OMjz4ytk8yhPvJQJqd6yA3L3ZOSY8rDIJeQZUqXzDn62sdfTtJxK3uiicY3uyuPJwmvz38Ra9aUb9eEQXoij0y7MlUzJZiggqrI/T3svPTPSG/KLRg5XR5ngT2402rZlXfTS6R4WT21suHH/RpsUHIAGH7jHbpIBx8ZtdDa0DhU8xaq6NuCUeVHD/nAtaN5Gj70XINDfiE8W5oxlJvR7j/lyn4PbJLssg/gmC4SwA9TMk5wlSGqr3Vfm5l584kXwahA8f2Pz6x0cpkwBfUhJjY1Mnvh3QSuQDENGAb0Qv9tD2x4Ez3iTf3U1SnMKaUOvOq08Hs7616VM8sWDG97GVjHFNcT1cNdyFyqYRoZnGj+/OKfYQeqPO9tgqvLgO4/pGEmKVR/x+C4rc4NtH4CNlhP7RCMgRKMtg790i9/EzTJWyngz2RFrizZ5Xd7qyhKADXzMoYN7rpdAa5bEv7p4h+ItG353NdlRs6rJU7WmgoCHDw0sipVYfSIl9xPE2mfjbIxkmIwji3VkU6/k4orv3ZZqs2fyqCXtw6We4eb6yy2ocDG65R1uaD8i9+cR3younC4vphtJH2EIiur/+HN7ObY8RhWHiDMhWESxYMMphK+rxngupwEL157ZSM5pOcWdccdZrp49ESKjav3JRAeKPYY044IUxpWagXrxZI/28CTbvMbGLmhJPxg9TcBWyDSxkMNjzqI0g/E+reTOXeZxQmafAY7qUilE7A5sBTEVf/V29KQIwJSotfnzOhMj9Y8i+dCzx6pTAIwhTLNClHuyXIBZwz6zHyo6aUvGFZReU51lXQtKNvF9tCB0vTJgPllz05EfVlVK1HENfPo/ynB9WmKvQCXMM5d/NTgseUrmIwIRKPsSg0fmS22DMUnkn1nurzeItRHL2nF+tjR1Al2eJnXlZY4wP3z+bvNfEfePSLc6+Z2We5fDthviu1/UCAPqpbsMWusJ5pJ6xjtQYn/elocfKEW9ZEB9COw6ymvzQMJzgRwN10GVhySga3WY//xR0fOThyIutARtWoGjNPh6/C+1sAiotFWEQGlqP1o2tO9cCopM1B4n+YlwyprRPgqr0mgBxzly6qVxrT2mBykUWIvjo5JFwjTAongpEvQvZlyhwMGkyvrYePvLkYalYlK6mpKNpjNJLrqzK5xThqaRe0EfFA+ZAcnpFcpq10FWpv4i1S6hWXhGMogppMTP0s1OL5bsSygWzMg578d8DaY+DZzKkWtmRHnZMLwIAB7KsYNcOQg4922/h1RMDyTueO3sBOtwiBwC5qIue+NKyHUl2ZsG1Y+SGQwDuUX5BK1XWccVQsXXDtjujgPxqrwjtoWbWmM+BS2EuCgdvWMK8lGVaP/A966MeW3e4BhBZ0ucxMfzo7PghtZNcVrGyIL3gyd2LzA9u8YPqShkss0tD7/LIXzlJkVdKFRjq+W6+V08IW800loGjqGFDDEHSe09QoxtcNQXY3o5TMm/ERMMVHR3X1cCk4nOQIfupd4ccmdARD8o2BRUzRN6rTzMjVkNTkAoDCLcBqcMJ3oOv3wKow2wBPEZPxndykntUsCdV6WZAaTN2HEwqHS8xtSqyK7PUODLmsNus3gZ/rZcjtYPfcaeSjbxKAy1iBdMjk05gnvUfuEPWRLN17ZTunwTeF+tbIePavB19Ko01I0LBL3PLJ60mL930UyILwWI4VGeboUqInDR7UxKCuz2n9u8HGVs5JNeqIaiQgfFjGhmdHmFoV1t/sYkV9lNk0byBwW7S2vvOQLkC1AunFcniEpLsT9iphk056Rhu3ksPaJX5aC18WvkiRWEL0Fiyyc3clvt7eO4slNH6CeE3NIKIULjU2dO05FhkVvO1jlIA4oE9NY3b8JzvLYsxngmebrp590/LBMovbbcwvuUhRlItsrjr+C0jdtPASTUKM2hKtN3rWjSepN9E9/lday77jD1pIbkbxqkNqJ6CBNOL8c8WfpUCmsNgkHNibEqz3Wq7OoWOvGzt5vHnEFfHHhSnhCoHYAQk7vs8g4seczJClWlDUWKrjzH28gD1IRyjR3aXP86RbhJxkUTOm6ygJ49UWsbbSlGWguf/AWziUawvdWQPFICU4EQJb5Nm9KFQ6g80PgswzEBcNNn56GNoUHueEFNFr6EsfUAcdfSc349QA15Tfdr2hMOmRNUJZH0ebNOdn4FNgODCpaGNZGrggUSKec2vKlg5tBHukW+A4DKuJj91FugR0+0EljSFR1dJVSKi5oCeDl2UnlLSZsBBcAb8HETQNL4HA5+mkqlR7uIbsVVytJ8UtOBOlywOex43X2EmRmXL8QbeoKgFIfjz0u5DBuJYNvBLURgtjYEhhThkhz0K6VfpIWs0gGH88o72pRgNmazjSrxdTxoeunv4vNp+KIE7Fz8zkPOhldz3HxNHlfi5xD+4wHGWqFulk6AWYUn/3BznX//ZbHmBOV8kHMX1M3Lr1jxXCIt/cBUEbmFnYyZ7uUIHs2GZmp3mZIy/Nt9FjzWBQF3lDwXYnsvLstnY86OgqPccmmeDWTerqg8GYU/NqQ1bjCH/DnXYOQT3qLLFFzEilFbiUDhQQNJyPm+Q+T6Pkd6PCDfEExknF8B975luMP5tG+i/1E3t71nQLMHnqDqAd73cBe5y6y9eh5P5LUnJNzq4KKTx2JC/45CqDMUqADsoxiRzinIh45wxDX5nv7NgTrEkDjJnVKqacq6P8rW47748Sz3ka+4oIw8eqJNsmoyIt3bqqcCUJAINz0Otdm8FxAGUk1bhdoq1ZoNjQlLc8i7sTQ20W7OCLhbFk3xd3ZoUlSXh82iGm+pXGcH+3AkIUt75xIvoyqv3CFgEaoqpEBz0LWr0aAMjKXq22aUOpf2WcOxuXi6LuTsbRjD234cfra38wA5oeGTCsRFuAUDPehjHO7XNDqnQ5jINj4gTfOEy7Ry0SQ5Pn17aePbuTTT1ZHTLERNLs8DAkIr4MZ5hLUZ/dsUTXEAcbJIFhBEBTbYvrDUNZiNOpi+5OyXuqo+C93hI23OyOYfrHsFJO6G7CqM86RblUNIthffm0SnvO5NYAV+easij+tWWtzUulEGxubb4XIBADuUfIKla25ZDBbSzrgKOLc2eHFRR5+KxeqUk4PxR9QKq3MLuOsO45ZI3w+mWVL7UhftFvenuiSgNohrKwWTphUdQqHzkzn13sm8GuBtHmGS1DGb0YO58I5I3jVWc2TAX16g8ZrQs+xsW5RjstMee8ox+c0PJw6hmyLyppL1r6s8rduD+5slW7Fep19Mhh46OZKp1TNUyriulGpFYWj8nRy3a7nPtamSgiSPtb/THrunB109GvPzmpZMY3et2MhpsL75S5Gqq62c8Npx2T9yMs7jSPglsbTC0mT/PLFE0ai1WQeMUAWhF0dqWNY3oLoT23XI/q5WhAlwa/7H9KzPR7y5ZEGe/Ti3wY+jKYDcIEqDW3cgjHQusQ0meDqY9mw5zUpUVU6XJEwVXE9QcUstAVF9qS8UffKjHfk0OZ/01n3sRExu7LBL4RbA83h3JSMzJaPNFg9daq00Dx2P9vWyVat465Vz5tx5edsBGqzBG670Xp58Dv9iBw0pwfxERVXzG6FEkWd4NOkSBoFKrDLPStwZsTg+bDBAerAVeEHOsJ95jx/0woHJxNCcrrIHtFwAZggX/arDhjmX8G590vxZPVJYTg5Ro4qjSRAl46pLIUXMCtjI+SZdoYFaROruXUmyCuJpGhwHc1kaJ/VkD4d3Q408xCUM3O8ZHxe9b0o17JI24NHVr0gv/PdaKzxJg+0IFCW1k0BsFKfqdhg9nPq0g85nnMlxoT9yZjbkNA8jxT9MSssi3kQRuASdyCOS4qQi/UxYFw68xAUr5KQ2GAvusIo3oxWgp0DmtpC7BwmNMLrhLXEdIfpIDUrejqKgJJNrOv3D1zmd6RLuxfKC5KE512eImAoIn4ataISTfZAGWqTetSu6hlja2syk9vJZJtY8T/6sTRGEn81R53O+hdMANo4z9GkHn9JijiXHPDJD1ktzirvSdZ+j4v2UqIYc/97W079UDhkyWIoAXSBN8wKSEX4eiHJmS2xo3qymXqbsoYr0QUobS0wDcOAYuqUzHAYbjgzAU3mEuypr8R2y8AK67AN2H1wPv4xBabzbtLm6p3SgYDMrCT+yCd6N7+siTEIilxNzwHncyWDG57/Z+yVLIa1lph2OqIm2HjWQfmh6q/N1fjS4uzyc3UOXrAqB8wBTOrJB45/eFjCcKtmZ75OGnS3xEpEOrP3xY96WBoAeVmEX70abTnDyeWV6H8a0JLBn7yKTs8AyQLfhS8RXZMrHB8YvkrYmSfbyobnL//nM12AEME+vTGH/tOIHnWD+tnQpAsI/Vc9Sg/Hzjq8n9bLdL6Qv8cA4zz+7jpl2dVXnKxbum3PPw9/Tws3CGK+4m65jRVDM7HddDFzhxSg06LhaDOyLRMDjpHP8bB6lZPJfnVBWP9EQSUoBR4qK5M8KNBLFbNTotryOelOx5/1x3KFfVCWY8/S7np4PGHj1QJTHa8rOYaLuKCxnN89vvQQzKcz9RSL7lHlQUib29Ts1wFj7ZVzYxeY3tVGvQqhQKh2Rdl7HnUyrePsNR77u7Hi1ybsMexyGvpDZfNdA0e0kij5lG+cX0yp43L0lGnVLwuuc+6JO6lDf3MX8GdeV7k9+a/H0zRorSfXIgyCp/TxdXwGsBPJr/RFg1HMtDaJ8lTUUa23aBGZx7JQEU3wMLGO18uORyI30fyhwe9sFaPqOVXHC3ACEvdtS64OmUOHu8LyrlQBqSiRDUTjwxzZEDKTT0leeGyicZzh616O6Cf0cNwG4UNAbcwo2LKB0BbVoCfxIhKXOwcFYGl399MATe/Y9/EGHREZQe5rK2eN7qxIoZF5CDRaheU+vOywWul5PAkZkA3oYrTE7pCynYjmXe59qFWkWISlobBbJ9UhI+ABuhXQZkpbMyjPeIU/jmidC9mMM/VU6HtJ+yjXkxwGq9H8T4mOBISGC9iQtJYc0+FDmkeAWcchCM+DHOb1xVW+ZSqfbCgq0Z9O1zxjm3W/RzOKHeJl/PSDVN+Afrtr7hmMzPfqmWZ8zL2DGDE3p93pNYm5V/aPhYESmlEj/vWzoy5FNxIIoNG5YrUviBEaXKOBkkohaJewkHUJVEAAEVTBzazevnKDKPgWAi+v4IStgIkI/ctB7uPxL5+EEc4mRUtYWlnu5fhpRqUz+K4aq6gPABQUME9cPxwseCidlGqSXq86B+LNWIeMgmErpz9zerrCqX8fNYqP0f+Pyqigg86ZRAzgpePrT110e0l8BrE9kVbZZ5HtTnlnilaXWll1h4bcet9swH4i93eJ9JnEXhSy2SSAY4om/nE0ABRsWYFnqGAEyGxLVvJEGxkvrVKUwtYh72dH7W/7JhOApsBwimj8YIXMY8h3NTgmlAnuwx9nSvKozOKf3QawAFLs6qtY9THfF72ZQQPWoFYbdy5KjnjeXQqFnj8NNkMsYZ8v13tyYJOg7z3eiLF4l/2ZbojxFhp0DsIn4LuhztgYP8QlzKvxloKb/XkVR6DDRMhDZTP4+KwFGR/HOpDVZd0xQ0tDz/aFDISUnksL2pF45udWdMHXdDO0YczEC2d1we8PlV92WSB8NamTz6a/FDb3cPN6w0zt4SUrs+hUqxBE19dU8wdtvFPI2oh2hVEbFmf4XiiBMZXn2EbC8Ziw/sseQ+vP4F0Fat1+hpr2zlsPXiidNNN1H/Mp806GOcYgp27/+pKM/6Ns27HwfZhlAgjItSDbraDs8nPRH1vEX0"}},"time_used":19,"timings":{"blocked":-1,"dns":6,"connect":8,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"830129coinbase.com/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=08eb349e","fqdn":"830129coinbase.com","domain":"830129coinbase.com","tld":"com"},"ip":{"addr":"31.77.151.22","port":443,"asn":0,"as":"","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://830129coinbase.com/","date":"2026-07-26T23:24:03.435Z","timestamp":1785108243435,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"830129coinbase.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 20:05:25 GMT","end":"Sat, 24 Oct 2026 20:05:24 GMT"},"fingerprint":{"sha1":"D9:ED:14:AF:57:BC:22:0F:60:8B:25:53:DE:7B:4E:EB:14:24:3E:FB","sha256":"49:E9:1F:0B:59:B3:AD:80:48:E7:13:21:EA:67:98:97:F4:AC:84:F8:FC:86:48:AA:D2:52:0E:91:D1:AF:B8:98"}}},"request":{"raw":"GET /node_modules/.vite/deps/react_jsx-dev-runtime.js?v=08eb349e HTTP/1.1\r\nHost: 830129coinbase.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://830129coinbase.com/src/main.tsx\r\nSec-Fetch-Dest: script\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/1.1 200 OK\r\nServer: nginx/1.18.0 (Ubuntu)\r\nDate: Sun, 26 Jul 2026 23:24:03 GMT\r\nContent-Type: text/javascript\r\nContent-Length: 12375\r\nConnection: keep-alive\r\nVary: Origin\r\nCache-Control: max-age=31536000,immutable\r\nEtag: W/\"3057-uoEw+L1MWhpTS2KR4xZJd05UrGM\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Nginx:1.18.0","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":"Ubuntu","description":"Ubuntu is a free and open-source operating system on Linux for the enterprise server, desktop, cloud, and IoT.","website":"https://www.ubuntu.com/server","common_platform_enumeration":"cpe:2.3:o:canonical:ubuntu_linux:*:*:*:*:*:*:*:*","icon":"Ubuntu.svg","categories":["Operating systems"]}],"data":{"size":12375,"size_decoded":12641,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (1249)","md5":"c511c82fbd945e4aa56f40542e1a1593","sha1":"ba8130f8bd4c5a1a534b6291e31649774e54ac63","sha256":"7f6c1047b8ea1673707003365ee639e859df40b6597249356fddefa46fc7ef98","sha512":"b874ab7f2f910bb3e0e084a650826e6943a2232b6d05d0757b275aedadbd91a8f44192d0dfb8d765cf459af84e2100d60808711721d17be74a40171014406d7c","ssdeep":"384:guR3lC+2NQVUxpv3o9Q9CCdq2f2w2F2AurfsVkYYIHtAlkA:bR3aAUxpr9CCdq2f2w2F2Tr4c","tlshash":"3c42840528ea76a44d13a0b58b7bd547f52af44b062deea4f98cc5382f0409d81eb3dc","first_seen":"2026-07-26T23:24:50.415811Z","last_seen":"2026-07-26T23:25:46.887741Z","times_seen":3,"resource_available":true,"data":"aW1wb3J0IHsKICByZXF1aXJlX3JlYWN0Cn0gZnJvbSAiL25vZGVfbW9kdWxlcy8udml0ZS9kZXBzL2NodW5rLVdVUjdENk5TLmpzP3Y9MDhlYjM0OWUiOwppbXBvcnQgewogIF9fY29tbW9uSlMKfSBmcm9tICIvbm9kZV9tb2R1bGVzLy52aXRlL2RlcHMvY2h1bmstRzNQTVY2MlouanM/dj0wOGViMzQ5ZSI7CgovLyBub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcwp2YXIgcmVxdWlyZV9yZWFjdF9qc3hfZGV2X3J1bnRpbWVfZGV2ZWxvcG1lbnQgPSBfX2NvbW1vbkpTKHsKICAibm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMiKGV4cG9ydHMpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIChmdW5jdGlvbigpIHsKICAgICAgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHsKICAgICAgICBpZiAobnVsbCA9PSB0eXBlKSByZXR1cm4gbnVsbDsKICAgICAgICBpZiAoImZ1bmN0aW9uIiA9PT0gdHlwZW9mIHR5cGUpCiAgICAgICAgICByZXR1cm4gdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA/IG51bGwgOiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsOwogICAgICAgIGlmICgic3RyaW5nIiA9PT0gdHlwZW9mIHR5cGUpIHJldHVybiB0eXBlOwogICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOgogICAgICAgICAgICByZXR1cm4gIkZyYWdtZW50IjsKICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRToKICAgICAgICAgICAgcmV0dXJuICJQcm9maWxlciI7CiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6CiAgICAgICAgICAgIHJldHVybiAiU3RyaWN0TW9kZSI7CiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6CiAgICAgICAgICAgIHJldHVybiAiU3VzcGVuc2UiOwogICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6CiAgICAgICAgICAgIHJldHVybiAiU3VzcGVuc2VMaXN0IjsKICAgICAgICAgIGNhc2UgUkVBQ1RfQUNUSVZJVFlfVFlQRToKICAgICAgICAgICAgcmV0dXJuICJBY3Rpdml0eSI7CiAgICAgICAgfQogICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIHR5cGUpCiAgICAgICAgICBzd2l0Y2ggKCJudW1iZXIiID09PSB0eXBlb2YgdHlwZS50YWcgJiYgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgIlJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuIgogICAgICAgICAgKSwgdHlwZS4kJHR5cGVvZikgewogICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOgogICAgICAgICAgICAgIHJldHVybiAiUG9ydGFsIjsKICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6CiAgICAgICAgICAgICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgIkNvbnRleHQiOwogICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlNVTUVSX1RZUEU6CiAgICAgICAgICAgICAgcmV0dXJuICh0eXBlLl9jb250ZXh0LmRpc3BsYXlOYW1lIHx8ICJDb250ZXh0IikgKyAiLkNvbnN1bWVyIjsKICAgICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOgogICAgICAgICAgICAgIHZhciBpbm5lclR5cGUgPSB0eXBlLnJlbmRlcjsKICAgICAgICAgICAgICB0eXBlID0gdHlwZS5kaXNwbGF5TmFtZTsKICAgICAgICAgICAgICB0eXBlIHx8ICh0eXBlID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICIiLCB0eXBlID0gIiIgIT09IHR5cGUgPyAiRm9yd2FyZFJlZigiICsgdHlwZSArICIpIiA6ICJGb3J3YXJkUmVmIik7CiAgICAgICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOgogICAgICAgICAgICAgIHJldHVybiBpbm5lclR5cGUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGwsIG51bGwgIT09IGlubmVyVHlwZSA/IGlubmVyVHlwZSA6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICJNZW1vIjsKICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6CiAgICAgICAgICAgICAgaW5uZXJUeXBlID0gdHlwZS5fcGF5bG9hZDsKICAgICAgICAgICAgICB0eXBlID0gdHlwZS5faW5pdDsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKGlubmVyVHlwZSkpOwogICAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7CiAgICAgICAgcmV0dXJuICIiICsgdmFsdWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY2hlY2tLZXlTdHJpbmdDb2VyY2lvbih2YWx1ZSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOwogICAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGZhbHNlOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIGlmIChKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQpIHsKICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGNvbnNvbGU7CiAgICAgICAgICB2YXIgSlNDb21waWxlcl90ZW1wX2NvbnN0ID0gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LmVycm9yOwogICAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMCA9ICJmdW5jdGlvbiIgPT09IHR5cGVvZiBTeW1ib2wgJiYgU3ltYm9sLnRvU3RyaW5nVGFnICYmIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10gfHwgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fCAiT2JqZWN0IjsKICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdC5jYWxsKAogICAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQsCiAgICAgICAgICAgICJUaGUgcHJvdmlkZWQga2V5IGlzIGFuIHVuc3VwcG9ydGVkIHR5cGUgJXMuIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLiIsCiAgICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMAogICAgICAgICAgKTsKICAgICAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRUYXNrTmFtZSh0eXBlKSB7CiAgICAgICAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpIHJldHVybiAiPD4iOwogICAgICAgIGlmICgib2JqZWN0IiA9PT0gdHlwZW9mIHR5cGUgJiYgbnVsbCAhPT0gdHlwZSAmJiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUpCiAgICAgICAgICByZXR1cm4gIjwuLi4+IjsKICAgICAgICB0cnkgewogICAgICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7CiAgICAgICAgICByZXR1cm4gbmFtZSA/ICI8IiArIG5hbWUgKyAiPiIgOiAiPC4uLj4iOwogICAgICAgIH0gY2F0Y2ggKHgpIHsKICAgICAgICAgIHJldHVybiAiPC4uLj4iOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBnZXRPd25lcigpIHsKICAgICAgICB2YXIgZGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkE7CiAgICAgICAgcmV0dXJuIG51bGwgPT09IGRpc3BhdGNoZXIgPyBudWxsIDogZGlzcGF0Y2hlci5nZXRPd25lcigpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIFVua25vd25Pd25lcigpIHsKICAgICAgICByZXR1cm4gRXJyb3IoInJlYWN0LXN0YWNrLXRvcC1mcmFtZSIpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGhhc1ZhbGlkS2V5KGNvbmZpZykgewogICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgImtleSIpKSB7CiAgICAgICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICJrZXkiKS5nZXQ7CiAgICAgICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdm9pZCAwICE9PSBjb25maWcua2V5OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkgewogICAgICAgIGZ1bmN0aW9uIHdhcm5BYm91dEFjY2Vzc2luZ0tleSgpIHsKICAgICAgICAgIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duIHx8IChzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9IHRydWUsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICIlczogYGtleWAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCBpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lIHZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgcHJvcC4gKGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvc3BlY2lhbC1wcm9wcykiLAogICAgICAgICAgICBkaXNwbGF5TmFtZQogICAgICAgICAgKSk7CiAgICAgICAgfQogICAgICAgIHdhcm5BYm91dEFjY2Vzc2luZ0tleS5pc1JlYWN0V2FybmluZyA9IHRydWU7CiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAia2V5IiwgewogICAgICAgICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksCiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUKICAgICAgICB9KTsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbGVtZW50UmVmR2V0dGVyV2l0aERlcHJlY2F0aW9uV2FybmluZygpIHsKICAgICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0aGlzLnR5cGUpOwogICAgICAgIGRpZFdhcm5BYm91dEVsZW1lbnRSZWZbY29tcG9uZW50TmFtZV0gfHwgKGRpZFdhcm5BYm91dEVsZW1lbnRSZWZbY29tcG9uZW50TmFtZV0gPSB0cnVlLCBjb25zb2xlLmVycm9yKAogICAgICAgICAgIkFjY2Vzc2luZyBlbGVtZW50LnJlZiB3YXMgcmVtb3ZlZCBpbiBSZWFjdCAxOS4gcmVmIGlzIG5vdyBhIHJlZ3VsYXIgcHJvcC4gSXQgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIEpTWCBFbGVtZW50IHR5cGUgaW4gYSBmdXR1cmUgcmVsZWFzZS4iCiAgICAgICAgKSk7CiAgICAgICAgY29tcG9uZW50TmFtZSA9IHRoaXMucHJvcHMucmVmOwogICAgICAgIHJldHVybiB2b2lkIDAgIT09IGNvbXBvbmVudE5hbWUgPyBjb21wb25lbnROYW1lIDogbnVsbDsKICAgICAgfQogICAgICBmdW5jdGlvbiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCBwcm9wcywgb3duZXIsIGRlYnVnU3RhY2ssIGRlYnVnVGFzaykgewogICAgICAgIHZhciByZWZQcm9wID0gcHJvcHMucmVmOwogICAgICAgIHR5cGUgPSB7CiAgICAgICAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLAogICAgICAgICAgdHlwZSwKICAgICAgICAgIGtleSwKICAgICAgICAgIHByb3BzLAogICAgICAgICAgX293bmVyOiBvd25lcgogICAgICAgIH07CiAgICAgICAgbnVsbCAhPT0gKHZvaWQgMCAhPT0gcmVmUHJvcCA/IHJlZlByb3AgOiBudWxsKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCAicmVmIiwgewogICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCiAgICAgICAgICBnZXQ6IGVsZW1lbnRSZWZHZXR0ZXJXaXRoRGVwcmVjYXRpb25XYXJuaW5nCiAgICAgICAgfSkgOiBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgInJlZiIsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiBudWxsIH0pOwogICAgICAgIHR5cGUuX3N0b3JlID0ge307CiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUuX3N0b3JlLCAidmFsaWRhdGVkIiwgewogICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSwKICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgICAgd3JpdGFibGU6IHRydWUsCiAgICAgICAgICB2YWx1ZTogMAogICAgICAgIH0pOwogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCAiX2RlYnVnSW5mbyIsIHsKICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsCiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwKICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgICAgdmFsdWU6IG51bGwKICAgICAgICB9KTsKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgIl9kZWJ1Z1N0YWNrIiwgewogICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSwKICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgICAgd3JpdGFibGU6IHRydWUsCiAgICAgICAgICB2YWx1ZTogZGVidWdTdGFjawogICAgICAgIH0pOwogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCAiX2RlYnVnVGFzayIsIHsKICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsCiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwKICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgICAgdmFsdWU6IGRlYnVnVGFzawogICAgICAgIH0pOwogICAgICAgIE9iamVjdC5mcmVlemUgJiYgKE9iamVjdC5mcmVlemUodHlwZS5wcm9wcyksIE9iamVjdC5mcmVlemUodHlwZSkpOwogICAgICAgIHJldHVybiB0eXBlOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGpzeERFVkltcGwodHlwZSwgY29uZmlnLCBtYXliZUtleSwgaXNTdGF0aWNDaGlsZHJlbiwgZGVidWdTdGFjaywgZGVidWdUYXNrKSB7CiAgICAgICAgdmFyIGNoaWxkcmVuID0gY29uZmlnLmNoaWxkcmVuOwogICAgICAgIGlmICh2b2lkIDAgIT09IGNoaWxkcmVuKQogICAgICAgICAgaWYgKGlzU3RhdGljQ2hpbGRyZW4pCiAgICAgICAgICAgIGlmIChpc0FycmF5SW1wbChjaGlsZHJlbikpIHsKICAgICAgICAgICAgICBmb3IgKGlzU3RhdGljQ2hpbGRyZW4gPSAwOyBpc1N0YXRpY0NoaWxkcmVuIDwgY2hpbGRyZW4ubGVuZ3RoOyBpc1N0YXRpY0NoaWxkcmVuKyspCiAgICAgICAgICAgICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhjaGlsZHJlbltpc1N0YXRpY0NoaWxkcmVuXSk7CiAgICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZSAmJiBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTsKICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigKICAgICAgICAgICAgICAgICJSZWFjdC5qc3g6IFN0YXRpYyBjaGlsZHJlbiBzaG91bGQgYWx3YXlzIGJlIGFuIGFycmF5LiBZb3UgYXJlIGxpa2VseSBleHBsaWNpdGx5IGNhbGxpbmcgUmVhY3QuanN4cyBvciBSZWFjdC5qc3hERVYuIFVzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuIgogICAgICAgICAgICAgICk7CiAgICAgICAgICBlbHNlIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuKTsKICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsICJrZXkiKSkgewogICAgICAgICAgY2hpbGRyZW4gPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7CiAgICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykuZmlsdGVyKGZ1bmN0aW9uKGspIHsKICAgICAgICAgICAgcmV0dXJuICJrZXkiICE9PSBrOwogICAgICAgICAgfSk7CiAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuID0gMCA8IGtleXMubGVuZ3RoID8gIntrZXk6IHNvbWVLZXksICIgKyBrZXlzLmpvaW4oIjogLi4uLCAiKSArICI6IC4uLn0iIDogIntrZXk6IHNvbWVLZXl9IjsKICAgICAgICAgIGRpZFdhcm5BYm91dEtleVNwcmVhZFtjaGlsZHJlbiArIGlzU3RhdGljQ2hpbGRyZW5dIHx8IChrZXlzID0gMCA8IGtleXMubGVuZ3RoID8gInsiICsga2V5cy5qb2luKCI6IC4uLiwgIikgKyAiOiAuLi59IiA6ICJ7fSIsIGNvbnNvbGUuZXJyb3IoCiAgICAgICAgICAgICdBIHByb3BzIG9iamVjdCBjb250YWluaW5nIGEgImtleSIgcHJvcCBpcyBiZWluZyBzcHJlYWQgaW50byBKU1g6XG4gIGxldCBwcm9wcyA9ICVzO1xuICA8JXMgey4uLnByb3BzfSAvPlxuUmVhY3Qga2V5cyBtdXN0IGJlIHBhc3NlZCBkaXJlY3RseSB0byBKU1ggd2l0aG91dCB1c2luZyBzcHJlYWQ6XG4gIGxldCBwcm9wcyA9ICVzO1xuICA8JXMga2V5PXtzb21lS2V5fSB7Li4ucHJvcHN9IC8+JywKICAgICAgICAgICAgaXNTdGF0aWNDaGlsZHJlbiwKICAgICAgICAgICAgY2hpbGRyZW4sCiAgICAgICAgICAgIGtleXMsCiAgICAgICAgICAgIGNoaWxkcmVuCiAgICAgICAgICApLCBkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY2hpbGRyZW4gKyBpc1N0YXRpY0NoaWxkcmVuXSA9IHRydWUpOwogICAgICAgIH0KICAgICAgICBjaGlsZHJlbiA9IG51bGw7CiAgICAgICAgdm9pZCAwICE9PSBtYXliZUtleSAmJiAoY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihtYXliZUtleSksIGNoaWxkcmVuID0gIiIgKyBtYXliZUtleSk7CiAgICAgICAgaGFzVmFsaWRLZXkoY29uZmlnKSAmJiAoY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KSwgY2hpbGRyZW4gPSAiIiArIGNvbmZpZy5rZXkpOwogICAgICAgIGlmICgia2V5IiBpbiBjb25maWcpIHsKICAgICAgICAgIG1heWJlS2V5ID0ge307CiAgICAgICAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBjb25maWcpCiAgICAgICAgICAgICJrZXkiICE9PSBwcm9wTmFtZSAmJiAobWF5YmVLZXlbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXSk7CiAgICAgICAgfSBlbHNlIG1heWJlS2V5ID0gY29uZmlnOwogICAgICAgIGNoaWxkcmVuICYmIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKAogICAgICAgICAgbWF5YmVLZXksCiAgICAgICAgICAiZnVuY3Rpb24iID09PSB0eXBlb2YgdHlwZSA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8ICJVbmtub3duIiA6IHR5cGUKICAgICAgICApOwogICAgICAgIHJldHVybiBSZWFjdEVsZW1lbnQoCiAgICAgICAgICB0eXBlLAogICAgICAgICAgY2hpbGRyZW4sCiAgICAgICAgICBtYXliZUtleSwKICAgICAgICAgIGdldE93bmVyKCksCiAgICAgICAgICBkZWJ1Z1N0YWNrLAogICAgICAgICAgZGVidWdUYXNrCiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiB2YWxpZGF0ZUNoaWxkS2V5cyhub2RlKSB7CiAgICAgICAgaXNWYWxpZEVsZW1lbnQobm9kZSkgPyBub2RlLl9zdG9yZSAmJiAobm9kZS5fc3RvcmUudmFsaWRhdGVkID0gMSkgOiAib2JqZWN0IiA9PT0gdHlwZW9mIG5vZGUgJiYgbnVsbCAhPT0gbm9kZSAmJiBub2RlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgJiYgKCJmdWxmaWxsZWQiID09PSBub2RlLl9wYXlsb2FkLnN0YXR1cyA/IGlzVmFsaWRFbGVtZW50KG5vZGUuX3BheWxvYWQudmFsdWUpICYmIG5vZGUuX3BheWxvYWQudmFsdWUuX3N0b3JlICYmIChub2RlLl9wYXlsb2FkLnZhbHVlLl9zdG9yZS52YWxpZGF0ZWQgPSAxKSA6IG5vZGUuX3N0b3JlICYmIChub2RlLl9zdG9yZS52YWxpZGF0ZWQgPSAxKSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnQob2JqZWN0KSB7CiAgICAgICAgcmV0dXJuICJvYmplY3QiID09PSB0eXBlb2Ygb2JqZWN0ICYmIG51bGwgIT09IG9iamVjdCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTsKICAgICAgfQogICAgICB2YXIgUmVhY3QgPSByZXF1aXJlX3JlYWN0KCksIFJFQUNUX0VMRU1FTlRfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudCIpLCBSRUFDVF9QT1JUQUxfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSwgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLCBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIiksIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSwgUkVBQ1RfQ09OU1VNRVJfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5jb25zdW1lciIpLCBSRUFDVF9DT05URVhUX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLCBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSAvKiBAX19QVVJFX18gKi8gU3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSwgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlX2xpc3QiKSwgUkVBQ1RfTUVNT19UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSwgUkVBQ1RfTEFaWV9UWVBFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSwgUkVBQ1RfQUNUSVZJVFlfVFlQRSA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKCJyZWFjdC5hY3Rpdml0eSIpLCBSRUFDVF9DTElFTlRfUkVGRVJFTkNFID0gLyogQF9fUFVSRV9fICovIFN5bWJvbC5mb3IoInJlYWN0LmNsaWVudC5yZWZlcmVuY2UiKSwgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPSBSZWFjdC5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSwgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5LCBjcmVhdGVUYXNrID0gY29uc29sZS5jcmVhdGVUYXNrID8gY29uc29sZS5jcmVhdGVUYXNrIDogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH07CiAgICAgIFJlYWN0ID0gewogICAgICAgIHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZTogZnVuY3Rpb24oY2FsbFN0YWNrRm9yRXJyb3IpIHsKICAgICAgICAgIHJldHVybiBjYWxsU3RhY2tGb3JFcnJvcigpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgdmFyIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duOwogICAgICB2YXIgZGlkV2FybkFib3V0RWxlbWVudFJlZiA9IHt9OwogICAgICB2YXIgdW5rbm93bk93bmVyRGVidWdTdGFjayA9IFJlYWN0LnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKAogICAgICAgIFJlYWN0LAogICAgICAgIFVua25vd25Pd25lcgogICAgICApKCk7CiAgICAgIHZhciB1bmtub3duT3duZXJEZWJ1Z1Rhc2sgPSBjcmVhdGVUYXNrKGdldFRhc2tOYW1lKFVua25vd25Pd25lcikpOwogICAgICB2YXIgZGlkV2FybkFib3V0S2V5U3ByZWFkID0ge307CiAgICAgIGV4cG9ydHMuRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFOwogICAgICBleHBvcnRzLmpzeERFViA9IGZ1bmN0aW9uKHR5cGUsIGNvbmZpZywgbWF5YmVLZXksIGlzU3RhdGljQ2hpbGRyZW4pIHsKICAgICAgICB2YXIgdHJhY2tBY3R1YWxPd25lciA9IDFlNCA+IFJlYWN0U2hhcmVkSW50ZXJuYWxzLnJlY2VudGx5Q3JlYXRlZE93bmVyU3RhY2tzKys7CiAgICAgICAgcmV0dXJuIGpzeERFVkltcGwoCiAgICAgICAgICB0eXBlLAogICAgICAgICAgY29uZmlnLAogICAgICAgICAgbWF5YmVLZXksCiAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuLAogICAgICAgICAgdHJhY2tBY3R1YWxPd25lciA/IEVycm9yKCJyZWFjdC1zdGFjay10b3AtZnJhbWUiKSA6IHVua25vd25Pd25lckRlYnVnU3RhY2ssCiAgICAgICAgICB0cmFja0FjdHVhbE93bmVyID8gY3JlYXRlVGFzayhnZXRUYXNrTmFtZSh0eXBlKSkgOiB1bmtub3duT3duZXJEZWJ1Z1Rhc2sKICAgICAgICApOwogICAgICB9OwogICAgfSkoKTsKICB9Cn0pOwoKLy8gbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1kZXYtcnVudGltZS5qcwp2YXIgcmVxdWlyZV9qc3hfZGV2X3J1bnRpbWUgPSBfX2NvbW1vbkpTKHsKICAibm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1kZXYtcnVudGltZS5qcyIoZXhwb3J0cywgbW9kdWxlKSB7CiAgICBpZiAoZmFsc2UpIHsKICAgICAgbW9kdWxlLmV4cG9ydHMgPSBudWxsOwogICAgfSBlbHNlIHsKICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlX3JlYWN0X2pzeF9kZXZfcnVudGltZV9kZXZlbG9wbWVudCgpOwogICAgfQogIH0KfSk7CmV4cG9ydCBkZWZhdWx0IHJlcXVpcmVfanN4X2Rldl9ydW50aW1lKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0X2pzeC1kZXYtcnVudGltZS5qcy5tYXAK"}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CP-cgHfY.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.595Z","timestamp":1785108244595,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CP-cgHfY.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 516\r\nlast-modified: Sun, 26 Jul 2026 22:31:21 GMT\r\netag: \"ed3ca23cfc6320943818e498404eb228\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 64f0ff8e7bff3f1f8d3800d8859fa950.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: 4yCFKTsuv2F7WeYFa-F6BqgL35iNQ4OALvaeoxrxvvTeYAOT3dkuUg==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=jBCdWzr7d5c5zBS2doUY6p4vHDCDlup9H5VQRiJRHdj20I02JaHMUsbN7BN5hwEo%2BghXIBL4QqkaV3qzHuqxk7GERRUj0YkmSlB18yaRd4HUjDgTC%2F6%2BY8%2FHjR71jxwO24OP3NPHJ9CJ2t8i7aA%2F\"}]}\r\ncf-ray: a21727e0bdb90883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":1155,"size_decoded":1663,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1116)","md5":"0dd7d303afea790ee55f70128e50e7ec","sha1":"f096cbf71accdc1184b57ba4b468f3c2af7d29c1","sha256":"483ad765c0685a69219b66b06dba0882569aef1caa1a94394ae2564febea52d3","sha512":"ed2f7b9a1067edef1ace48046d2f05e54ee7057f15753b1d0ae803ff8599ce57bbc0cdb89758b8196ea63738356f1d70a26e42f5637a37de76a64dc65bdc58a9","ssdeep":"","tlshash":"84211413a77d1f5f906333acc9b24101666d4036e38d4a11d1b9653903bfaea45717c7","first_seen":"2026-07-26T23:24:50.417226Z","last_seen":"2026-07-26T23:25:46.867553Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGViMDE3MzEyLTc1N2ItNDYyZC05NjMzLTc5NGRiYzE2NmRjZmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWViMDE3MzEyLTc1N2ItNDYyZC05NjMzLTc5NGRiYzE2NmRjZmApfSkoKX1jYXRjaHt9aW1wb3J0e19hIGFzIGV9ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO2ltcG9ydHt0fWZyb20iLi9jX0JJaWFFeDNWLmpzIjt2YXIgbj1lLmRpdi53aXRoQ29uZmlnKHtzaG91bGRGb3J3YXJkUHJvcDplPT4hW2ByZXZlcnNlYCxgY29sdW1uYCxgd2VpZ2h0YCxgd3JhcGAsYGFsaWduYCxganVzdGlmeWAsYGNlbnRlcmAsYGZpeGVkYCxgYXV0b2BdLmluY2x1ZGVzKGUpfSkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YEZsZXhgLGNvbXBvbmVudElkOmBzYy1hMzVlMDQxYS0wYH0pKFtgZGlzcGxheTpmbGV4O2AsYDtgLGA7YCxgO2AsYDtgLGA7YCxgO2AsYDtgLGA7ZmxleC1kaXJlY3Rpb246YCxgO2BdLCh7b25DbGljazplfSk9PmU/YGN1cnNvcjogcG9pbnRlcjtgOmBgLCh7YXV0bzplfSk9PmU/YGZsZXg6IDEgMSBhdXRvO2A6YGAsKHtmaXhlZDplfSk9PmU/YGZsZXg6IDAgMCBhdXRvYDpgYCwoe2NlbnRlcjplfSk9PmU/YGp1c3RpZnktY29udGVudDogY2VudGVyOyBhbGlnbi1pdGVtczogY2VudGVyO2A6YGAsKHtqdXN0aWZ5OmV9KT0+ZT9ganVzdGlmeS1jb250ZW50OiAke3QoZSl9O2A6YGAsKHthbGlnbjplfSk9PmU/YGFsaWduLWl0ZW1zOiAke3QoZSl9O2A6YGAsKHt3cmFwOmV9KT0+ZT9gZmxleC13cmFwOiAke3QoZSl9O2A6YGAsKHt3ZWlnaHQ6ZX0pPT5lP2BmbGV4OiAke3QoZSl9O2A6YGAsKHtjb2x1bW46ZSxyZXZlcnNlOnR9KT0+ZT9gY29sdW1uJHt0P2AtcmV2ZXJzZWA6YGB9YDpgcm93JHt0P2AtcmV2ZXJzZWA6YGB9YCk7ZXhwb3J0e24gYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfQ1AtY2dIZlkuanMubWFw"}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CfT0_Tmo2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.627Z","timestamp":1785108244627,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CfT0_Tmo2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 939\r\nlast-modified: Sun, 26 Jul 2026 22:31:22 GMT\r\netag: \"7c581f975556620b0a165ab031c32b38\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 3cee1b61334bd8139fe0ff6d7079a1e4.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: 9bHf8WKhPRek6yJ4Cfl5mbj9mSno8Od3RmfqKjnha8SRXVibCer4FA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=gyf7vrCPQVWWd694C75Pmz%2F0tUnxIlMH%2FrfsDEn2wcn9HBkYSPem2qXl6scMGtaRKMH1KJ8uSx%2BKritNTsTZu4hsei2hR4LKgvlaAcaMvabTQ2VO3zYpxR%2FEKV4O1TCNM1rc4LrzyNKSznh1RLVV\"}]}\r\ncf-ray: a21727e0ee360883-OSL\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 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":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1949,"size_decoded":2084,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1909)","md5":"5708429a2f0187f6c4b1c3a0f6a99e0d","sha1":"4e1e727800ee5827bff63f61037a624f0f08e11f","sha256":"32681595d8328ee509f07ad855b7aefe7ee2c6decd3040c242510207c1ac4384","sha512":"f13fe29779956dfd5b437297e5a14cb761759ec99e2b43f17bdd12420ea55dcb8498355f4f28447cfaf1dc848a289370e2d91a55740b68362612918c8f695094","ssdeep":"","tlshash":"5241aaa5af91127831c948d5c3366c1ab2995046eecf8ae0f03b4e5717e84e5c1a1be7","first_seen":"2026-07-26T23:24:50.418491Z","last_seen":"2026-07-26T23:25:46.806643Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGM0YjM3ZmYzLWJmOTQtNGQyMC04YzJjLTI2ZWJkODk3OGUzMGAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWM0YjM3ZmYzLWJmOTQtNGQyMC04YzJjLTI2ZWJkODk3OGUzMGApfSkoKX1jYXRjaHt9aW1wb3J0e3QgYXMgZX1mcm9tIi4vY19DNmR5bjdqMzIuanMiO2ltcG9ydHtuIGFzIHQsciBhcyBufWZyb20iLi9jX0RLVDlsUUM1Mi5qcyI7aW1wb3J0e0ZmIGFzIHIsSWYgYXMgaSxQZiBhcyBhLFRmIGFzIG8sV3AgYXMgcyxhcyBhcyBjLGNkIGFzIGwsZmYgYXMgdSxoZiBhcyBkLGlzIGFzIGYscm8gYXMgcH1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIG09dSgpLGg9cyhkKCkpO2MoKTt2YXIgZz1jbGFzcyBleHRlbmRzIGguQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLGYodGhpcyxgc3RhdGVgLHtoYXNFcnJvcjohMX0pfWNvbXBvbmVudERpZENhdGNoKGUsdCl7dGhpcy5wcm9wcy5vbkVycm9yKGUse2lzQm91bmRhcnlFcnJvcjohMCxjb21wb25lbnRTdGFjazp0PT1udWxsP3ZvaWQgMDp0LmNvbXBvbmVudFN0YWNrfSksdGhpcy5zZXRTdGF0ZSh7aGFzRXJyb3I6ITB9KX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5zdGF0ZS5oYXNFcnJvcj9udWxsOnRoaXMucHJvcHMuY2hpbGRyZW59fSxfPXtBOnthY3Rpb246YS5jbGljayxjb21wb25lbnRUeXBlOmkubGlua30sQlVUVE9OOnthY3Rpb246YS5jbGljayxjb21wb25lbnRUeXBlOmkuYnV0dG9ufX07ZnVuY3Rpb24gdigpe3JldHVybigwLGgudXNlQ2FsbGJhY2spKGU9PntsZXQgdD1lLnRhcmdldDtpZighdClyZXR1cm47bGV0IG49dC5jbG9zZXN0KE9iamVjdC5rZXlzKF8pLmpvaW4oYCwgYCkpLGk9bj09bnVsbD92b2lkIDA6bi50YWdOYW1lLGE9bj09bnVsbD92b2lkIDA6bi5pbm5lclRleHQ7IW58fCFpfHxvKGBjbXNfY2xpY2tgLHsuLi5fW2ldLGlubmVyVGV4dDphfSxyLmhpZ2gpfSxbXSl9dmFyIHk9KGUscixpLGEsbyk9PmU/ZS5tYXAoKGUscyk9PntsZXQgYz1uKGUscik7aWYoIWMpcmV0dXJuIG51bGw7bGV0IGw9aVtjXSx1PSEhKGEhPW51bGwmJmEuaW5jbHVkZXMoYykpO2lmKGM9PT1gZ2VuZXJpY0NvbXBvbmVudFN1Yk5hdmApcmV0dXJuIG51bGw7aWYobD09PXZvaWQgMClyZXR1cm4gcihFcnJvcihgTWlzc2luZyBjb21wb25lbnQgZm9yICR7Y31gKSksbnVsbDtsZXQgZD10KGUpLGY9ZD09bnVsbD92b2lkIDA6ZC5jb21wb25lbnRJZCxoPSgwLG0uanN4KShsLHsuLi5kLG9wdGlvbnM6b30scyk7cmV0dXJuIGYmJihoPSgwLG0uanN4KShwLHtjb21wb25lbnRJZDpmLGNoaWxkcmVuOmh9LHMpKSx1fHwoaD0oMCxtLmpzeCkoZyx7b25FcnJvcjpyLGNoaWxkcmVuOmh9LHMpKSxofSk6bnVsbDtmdW5jdGlvbiBiKHtjb250ZW50OnQsYWRkaXRpb25hbFByb3BzOm4sdGVzdElEOnJ9KXtsZXQgaT0oMCxoLnVzZUNvbnRleHQpKGUpLGE9KDAsaC51c2VNZW1vKSgoKT0+KHsuLi5uLHJlbmRlck5lc3RlZENvbXBvbmVudHM6eX0pLFtuXSk7cmV0dXJuKDAsbS5qc3gpKGwse2Rpc3BsYXk6YGNvbnRlbnRzYCxvbkNsaWNrOnYoKSx0ZXN0SUQ6cixjaGlsZHJlbjp5KEFycmF5LmlzQXJyYXkodCk/dDpbdF0saS5vbkVycm9yLGkuY29tcG9uZW50cyxpLmVycm9yQm91bmRhcnlTa2lwQ29tcG9uZW50cyxhKX0pfXZhciB4PSgwLGgubWVtbykoYik7ZXhwb3J0e2cgYXMgbix4IGFzIHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX0NmVDBfVG1vMi5qcy5tYXA="}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_tlHxE0FV.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.634Z","timestamp":1785108244634,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_tlHxE0FV.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 1014\r\nlast-modified: Sun, 26 Jul 2026 22:31:31 GMT\r\netag: \"739d042162cf52b2c799620bb89441b2\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 d5718175f872fe6d7c3488e3658ff35a.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: RfY2WAc8K0utggbqxaWB0tBX-qEgcZIwPLo83b1of8_lGehwJqFTgA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=KnzVfVnfcBi6KiAP6CY%2BF476eT3%2FCN4qW4Gpx1Ahk%2F8gTP%2FMwhpZb0jYFzmWBHdZDGZEzdlOVP0%2Fv5XOSRxudNgKHIO9TABSdfcneKU7j0iw8%2BwRJ4MnzTQ2LRno6NCRQeWfDPTQdcdFwt8269NL\"}]}\r\ncf-ray: a21727e0fe4d0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":2147,"size_decoded":2164,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (2108)","md5":"1406891c23482645f60c106c63ef0868","sha1":"d9ab3a70254eec049e2da2667fcfc3a6c311dd46","sha256":"ac7283bfc74d01cebc7c9dd8156b642988f33d03df43c29f00056ace7ff68c56","sha512":"52e201712b1a565597a08f914a8ee663c9af7821dd1387438394c0d8c05e033cda3c20d026c6f8d03fbd0a4c4c5d03a2352b2309630e38d9b633a3c29252c753","ssdeep":"","tlshash":"6b4186d6e3a0a67126c49189c485613635ae222a5cce6f70f352088d27a19c992d7f53","first_seen":"2026-07-26T23:24:50.419686Z","last_seen":"2026-07-26T23:25:46.831482Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGQwODA0M2ZiLTcyZDEtNDZhYS05NzY1LTQyMDViMmIxODczNmAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWQwODA0M2ZiLTcyZDEtNDZhYS05NzY1LTQyMDViMmIxODczNmApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsWHQgYXMgdCxmZiBhcyBuLGhmIGFzIHIsa28gYXMgaSxycyBhcyBhLHVvIGFzIG99ZnJvbSIuL2VfQ3JxUlcxd1AuanMiO2ltcG9ydHt0IGFzIHN9ZnJvbSIuL2NfRGNaQXJXdDkyLmpzIjt2YXIgYz1uKCksbD1lKHIoKSksdT1jbGFzcyBleHRlbmRzIGwuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuc3RhdGU9e2hhc0Vycm9yOiExfX1zdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKCl7cmV0dXJue2hhc0Vycm9yOiEwfX1jb21wb25lbnREaWRDYXRjaChlLHQpe3ZhciBuLHI7KG49KHI9dGhpcy5wcm9wcykub25FcnJvcik9PW51bGx8fG4uY2FsbChyLGUsdCl9cmVuZGVyKCl7cmV0dXJuIHRoaXMuc3RhdGUuaGFzRXJyb3I/dGhpcy5wcm9wcy5mYWxsYmFja3x8bnVsbDp0aGlzLnByb3BzLmNoaWxkcmVufX0sZD0oMCxsLmNyZWF0ZUNvbnRleHQpKHUpLGY9KCk9PigwLGwudXNlQ29udGV4dCkoZCk7ZnVuY3Rpb24gcCh7Y2hpbGRyZW46ZSwuLi50fSl7cmV0dXJuKDAsYy5qc3gpKGYoKSx7Li4udCxjaGlsZHJlbjplfSl9dmFyIG09KHtwYXRobmFtZTplLHBhcmFtczp0LGFwcGVuZExlYWRpbmdTbGFzaDpuLHJlbW92ZUxlYWRpbmdTbGFzaDpyfSwuLi5pKT0+e2xldCBhPXQmJih0LnNsdWd8fHRbaS5maW5kKGU9PnRbZV0hPT12b2lkIDApfHxgYF0pLG89dHlwZW9mIGE9PWBzdHJpbmdgJiZhLmxlbmd0aD4wP2EudG9Mb3dlckNhc2UoKTpoKGUpO3JldHVybiByP28ucmVwbGFjZSgvKF5cLykvLGBgKTohbnx8L15cLy8udGVzdChvKT9vOmAvJHtvfWB9LGg9ZT0+dChlKS5yZXBsYWNlKC9cLyQvLGBgKSxnPWBtYXN0ZXJgLF89KHtwcmV2aWV3OmUsc3BhY2VJZDp0LGVudmlyb25tZW50Om59LHIpPT57bGV0IGk9YSgpP3tpbnNlY3VyZTohMCxob3N0OmBsb2NhbGhvc3Q6MzAwM2AsYmFzZVBhdGg6YC9hcGkvY21zYH06e307aWYocylyZXR1cm57c3BhY2U6ci5kZXYuc3BhY2VJZCxhY2Nlc3NUb2tlbjpyLnByb2QuYWNjZXNzVG9rZW4saG9zdDpyLnByb2QuaG9zdCwuLi5pfTtsZXQgbz1lPT09YHRydWVgO3JldHVybntzcGFjZTp0fHxyLmRldi5zcGFjZUlkLGFjY2Vzc1Rva2VuOm8mJnIuZGV2LnByZXZpZXdBY2Nlc3NUb2tlbnx8ci5kZXYuYWNjZXNzVG9rZW4saG9zdDpvJiZyLmRldi5wcmV2aWV3SG9zdHx8ci5kZXYuaG9zdCxlbnZpcm9ubWVudDpufHxnLC4uLml9fSx2PShlLHQpPT57aWYocylyZXR1cm4gdC5wcm9kLmNsaWVudEtleTtsZXQgbj1lLnByZXZpZXc9PT1gdHJ1ZWAscj1lLmVudmlyb25tZW50PT09YGRldmA7cmV0dXJuYCR7dC5kZXYuY2xpZW50S2V5fSR7cj9gX0RFVmA6YGB9JHtuP2BfTk9fUFJPWFlgOmBgfWB9LHk9KHtsb2NhbGVDb2RlOmUscGFyYW1zOnQscGF0aG5hbWU6bixwcmV2aWV3OnIsc3BhY2VJZDphLGVudmlyb25tZW50OmN9LGwsLi4udSk9PntsZXQgZD1fKHtwcmV2aWV3OnIsc3BhY2VJZDphLGVudmlyb25tZW50OmN9LGwpLGY9dih7cHJldmlldzpyLGVudmlyb25tZW50OmN9LGwpLHA9bSh7cGF0aG5hbWU6bixwYXJhbXM6dH0sLi4udSk7byhgbWFya2V0aW5nYCxkLGYsaSgpKTtsZXR7c3VwcG9ydHNMb2NhbGl6YXRpb246aH09cz9sLnByb2Q6bC5kZXY7cmV0dXJue3JvdXRlOnAsY2xpZW50S2V5OmYsb3B0aW9uczpkLHF1ZXJ5T3B0aW9uczp7b25FcnJvcjpjb25zb2xlLmVycm9yLGxvY2FsZTpoP2U6YGVuYCxzcGFjZUlkOmQuc3BhY2UsY2xpZW50S2V5OmZ9fX07ZXhwb3J0e2ggYXMgbixwIGFzIHIseSBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y190bEh4RTBGVi5qcy5tYXA="}},"time_used":126,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":126,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_BK4OHNf6.css","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.697Z","timestamp":1785108244697,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_BK4OHNf6.css HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 309\r\nlast-modified: Mon, 01 Jun 2026 17:37:52 GMT\r\netag: \"07a01fe3e3648640b1b3a922ded004a7\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 b27a50fc86bebfa3ec23c4357aeb68f2.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: VIE50-P4\r\nx-amz-cf-id: KrVmArBfWrAWzffemkNNv9pFyl98R4V9ZkY9y6Wb8V5HULyuNbcpOA==\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nage: 4772069\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=8h77HkY3Tzd49eamp6ruIqxpWz7ZJAw3sGIFTX%2BMstX2V503Yg3J4e5mJ6kpQoJKrXJ2%2B4bkhQ%2FHTY6cTVgroN8yTaQgXWJiNfwna%2F%2FGPpIn%2FHl75M1gExhD7C2bQ042SSBpJgL0GLWpZXFPHKaX\"}]}\r\ncf-ray: a21727e15f370883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":722,"size_decoded":1472,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (721)","md5":"6c692d51d89d568b87a1fb2a470c308d","sha1":"5b8dcb1311cb3a9c63d2b9aebc48215d237138e0","sha256":"64f0c893668f85d3083ae550b81434efae89137320f9a7d12548efc466f1f26f","sha512":"5092dc9bc728f78ab30761c14558909d5cc51e1bc31055cdf8fe4ee1324306e1834ce950ebe82ade23b20ea116931d9c18c998524ab2c69ea0868008880e3c2e","ssdeep":"","tlshash":"f00160fc2fd8213e483bd737e61acccec612a128367482c08de7e9210784c700a0ab0c","first_seen":"2026-06-02T03:41:41.366528Z","last_seen":"2026-07-26T23:25:46.876153Z","times_seen":14,"resource_available":false,"data":"QGxheWVyIGNkc3suY2Fyb3VzZWxJdGVtQ3NzLWMxcnJxZGx0e2ZsZXgtc2hyaW5rOjB9Lm5hdmlnYXRpb25Dc3MtbjE1aDFmeG97cGFkZGluZzp2YXIoLS1zcGFjZS0wXzUpIDB9Lm5hdmlnYXRpb25Dc3MtbjE1aDFmeG9bZGF0YS1oaWRkZW51bmxlc3Nmb2N1c2VkPXRydWVde29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfS5uYXZpZ2F0aW9uQ3NzLW4xNWgxZnhvW2RhdGEtaGlkZGVudW5sZXNzZm9jdXNlZD10cnVlXTpmb2N1cy13aXRoaW57b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG99LmRlZmF1bHRQYWdpbmF0aW9uQ3NzLWR5cXdtZ2l7cGFkZGluZzo0cHggMH0ucGlsbENzcy1wZWE4a216e2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyUmFkaXVzLTEwMCk7d2lkdGg6MjRweDtoZWlnaHQ6NHB4fS5kb3RDc3MtZDFlb2luZjZ7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXJSYWRpdXMtMTAwKTtoZWlnaHQ6NHB4O292ZXJmbG93OmhpZGRlbn0uZGVmYXVsdENhcm91c2VsQ3NzLWQzaXM5ZjQgaW1ne3BvaW50ZXItZXZlbnRzOm5vbmV9LnNjcmVlblJlYWRlck9ubHlDc3Mtc2hkd2s3c3std2Via2l0LWNsaXA6cmVjdCgwIDAgMCAwKTtjbGlwOnJlY3QoMCAwIDAgMCk7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlcjowO3dpZHRoOjFweDtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTtvdmVyZmxvdzpoaWRkZW59fQo="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_CnBZtet6.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.671Z","timestamp":1785108244671,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_CnBZtet6.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:23 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"79beeb56a5ea6378b9698b81e1a008d6\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 d6b9aa181ba5a92d5b44b5660b83ef38.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: fbaBxwdHmFsrMfpkxSj2832MYQls5G0zUNOce_4NimAgqT9Q3C4zqQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=8nl7L2FqlDGAfMrAK06ViGYofLLkNpS3FFzPN7gity3Cvs52q4lUIFgGm%2FM6tLlF2O13B%2FkNCH7c%2Fh7rbQbTll709FM7Gq0R70ieAzFnfBDZBUaLYyFnl1NDkonWyAKn800F4P2jAkVI2Ps5qCyV\"}]}\r\ncf-ray: a21727e13ed10883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":8039,"size_decoded":4498,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (8000)","md5":"79beeb56a5ea6378b9698b81e1a008d6","sha1":"d9614b3f2b9dc15f7bbe0d4765bff7c1cf85de68","sha256":"ecf1b0b1dc0cdd5e1df5989b10791930a57c1e6440634a415120f6f4aaa0b21b","sha512":"dbd8b496be954ce7ccc9161076dea435a3f61635e78ce448172a01d97e08236483f2d8287d9cfa84a59a6914e7ee73db7e901f5d4604457b6bcf283c1e8feabd","ssdeep":"96:x4D57SCIfBjbEDVE1Cpwo3daC1bk3HhT8iDUeelZ6Tev/UZUSJLgClgT9yACOy3z:SN7RIA8CVaobYHaJdnRFvkACOyj","tlshash":"bff117dfb22031bc321789e48023530f714f5553bc4e0768f5b2ec6a226ca9971a7f4a","first_seen":"2026-07-26T23:24:50.421618Z","last_seen":"2026-07-26T23:25:46.84406Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGQyNjE4YWEyLTc1ZmQtNGFlMS05NGEzLTAxOGI3ZTA2NzkwN2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWQyNjE4YWEyLTc1ZmQtNGFlMS05NGEzLTAxOGI3ZTA2NzkwN2ApfSkoKX1jYXRjaHt9aW1wb3J0e3QgYXMgZX1mcm9tIi4vY19DZlQwX1RtbzIuanMiO2ltcG9ydHtjIGFzIHQsbixyfWZyb20iLi9jX2R1YjRpYVJILmpzIjtpbXBvcnR7biBhcyBpLHQgYXMgYX1mcm9tIi4vY19ERzJ0aDREaS5qcyI7aW1wb3J0e3QgYXMgb31mcm9tIi4vY19Eb3VKUlVxTi5qcyI7aW1wb3J0e24gYXMgcyx0IGFzIGN9ZnJvbSIuL2NfQ2M2cTlGcGQuanMiO2ltcG9ydHtWYSBhcyBsLFdwIGFzIHUsWWMgYXMgZCxfYSBhcyBmLGNhIGFzIHAsZCBhcyBtLGVsIGFzIGgsZmYgYXMgZyxoZiBhcyBfLG5vIGFzIHYsc2EgYXMgeSx1YSBhcyBifWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgeD1nKCksUz11KF8oKSk7ZnVuY3Rpb24gQyhlKXtsZXQgdD0oMCxTLnVzZUNvbnRleHQpKG0pO3JldHVybigwLFMudXNlTWVtbykoKCk9PntpZighdHx8IXQuaXNVcmxUb01lcmdlKGUpKXJldHVybiBlO2xldCBuPW5ldyBVUkwoZSkscj1uZXcgVVJMU2VhcmNoUGFyYW1zKG4uc2VhcmNoKTtyZXR1cm4gdC51dG1QYXJhbXMuZm9yRWFjaCgoZSx0KT0+e3Iuc2V0KHQsZSl9KSxuLnNlYXJjaD1yLnRvU3RyaW5nKCksbi50b1N0cmluZygpfSxbZSx0XSl9ZnVuY3Rpb24gdyhlKXtsZXQgdD0oMCxTLnVzZUNvbnRleHQpKG0pO3JldHVybigwLFMudXNlTWVtbykoKCk9PiF0fHwhdC51cmxTYW5pdGl6ZXI/ZTp0LnVybFNhbml0aXplcihlKSxbdCxlXSl9ZnVuY3Rpb24gVChlKXtyZXR1cm4oMCx4LmpzeCkoYGFgLHsuLi5lfSl9dmFyIEU9KDAsUy5jcmVhdGVDb250ZXh0KShUKSxEPSgpPT4oMCxTLnVzZUNvbnRleHQpKEUpLE89KDAsUy5jcmVhdGVDb250ZXh0KSh7bG9jYWxlOmBlbmB9KSxrPSgpPT4oMCxTLnVzZUNvbnRleHQpKE8pLEE9ZT0+IWV8fGUuc3RhcnRzV2l0aChgaHR0cGApP2U6KGU9ZS5yZXBsYWNlKC9cL1wvKy9nLGAvYCksZS5jaGFyQXQoMCkhPT1gL2AmJmUuY2hhckF0KDApIT09YCNgJiYoZT1gLyR7ZX1gKSxlKSxqPWU9PmU/ZS5zdGFydHNXaXRoKGAjYCk6ITEsTT1lPT5lP2Uuc3RhcnRzV2l0aChgL2ApJiYhZS5zdGFydHNXaXRoKGAvL2ApOiExLGVlPWU9PiEhZS5tYXRjaChiKSxOPShlLHQ9YGVuYCk9PntpZighdHx8dD09PWBlbmB8fGUuaW5jbHVkZXMoYG9hdXRoX3NpZ251cGApfHxlLnN0YXJ0c1dpdGgoYCNgKXx8ZS5zdGFydHNXaXRoKGBtYWlsdG86YCl8fGUuc3RhcnRzV2l0aChgdGVsOmApfHwhZS5tYXRjaCgvXmh0dHBzPzpcL1wvLykpcmV0dXJuIGU7bGV0IG49bmV3IFVSTChlKTtyZXR1cm4obi5ob3N0bmFtZT09PWBjb2luYmFzZS5jb21gfHxuLmhvc3RuYW1lPT09YHd3dy5jb2luYmFzZS5jb21gKSYmIWVlKG4ucGF0aG5hbWUpJiYobi5wYXRobmFtZT1gLyR7dH0ke24ucGF0aG5hbWV9YCksbi50b1N0cmluZygpfSxQPWU9PmUuc3RhcnRzV2l0aChgaHR0cHM6Ly9gKT9lOmUuc3RhcnRzV2l0aChgaHR0cDovL2ApP2BodHRwczovLyR7ZS5zbGljZSg3KX1gOmUuc3RhcnRzV2l0aChgLy9gKT9gaHR0cHM6JHtlfWA6ZSxGPWU9PntsZXQgdD1lLnNwbGl0KGAuYCksbj10LmZpbmRMYXN0SW5kZXgoZT0+ZS5sZW5ndGg+Myk7cmV0dXJuIHQuc2xpY2UoTWF0aC5tYXgoMCxuKSkuam9pbihgLmApfSxJPWU9PntsZXRbdCxuXT0oMCxTLnVzZVN0YXRlKShgYCkse2xvZ0luZm86cn09cygpO2lmKCgwLFMudXNlRWZmZWN0KSgoKT0+bih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpLFtdKSwhZXx8TShlKXx8aihlKSlyZXR1cm4hMTtsZXQgaT1BKGUpO3RyeXtsZXQgZT1QKGkpLG49bmV3IFVSTChlKS5ob3N0bmFtZSxyPUYobik7cmV0dXJuKCF0fHwhIXQmJnIhPT1GKHQpKSYmIShyPT09YGNvaW5iYXNlLmNvbWB8fHI9PT1gd3d3LmNvaW5iYXNlLmNvbWApfWNhdGNoKHQpe3JldHVybiByKGBFcnJvciB2YWxpZGF0aW5nIGV4dGVybmFsIFVSTDogJHtlfWAsdC5tZXNzYWdlKSwhMH19O2Z1bmN0aW9uIEwoe2NoaWxkcmVuOmUsaHJlZjp0PWBgLCJkYXRhLXFhIjpyPWBgLGNsYXNzTmFtZTppLHVuZGVybGluZTphPSExLC4uLnN9KXtsZXQgYz13KEEodCkpLGw9dC5zdGFydHNXaXRoKGB0ZWxgKSx1PXQuc3RhcnRzV2l0aChgbWFpbHRvYCksZj1NKGMpLHA9aihjKSxtPUkoYykse2xvY2FsZTpofT1rKCksZz1EKCkse2FuYWx5dGljc1ByZWZpeDpffT1uKCksdj1DKGY/YzpOKGMsaCkpLHk9YCR7X30ke3ImJl8/YC1gOmBgfSR7cn1gLGI9ZT0+e2UucHJldmVudERlZmF1bHQoKSxvKHYucmVwbGFjZShgI2AsYGApKX07cmV0dXJuIGcmJmYmJiFsJiYhdT8oMCx4LmpzeCkoZyx7aHJlZjp2LCJkYXRhLXFhIjp5LGNoaWxkcmVuOigwLHguanN4KShkLHsuLi5zLHVuZGVybGluZTphLGNsYXNzTmFtZTppLCJkYXRhLXFhIjp5LGNoaWxkcmVuOmV9KX0pOigwLHguanN4KShkLHsuLi5zLHVuZGVybGluZTphLGhyZWY6bHx8dT90OnYsImRhdGEtcWEiOnksb3BlbkluTmV3V2luZG93Om0sY2xhc3NOYW1lOmkscmVsOm0/YG5vb3BlbmVyIG5vcmVmZXJyZXJgOnZvaWQgMCxvbkNsaWNrOnA/Yjp2b2lkIDAsY2hpbGRyZW46ZX0pfXZhciBSPXYoKTtmdW5jdGlvbiB6KGUsdCl7cmV0dXJuIHR5cGVvZiBlPT1gc3RyaW5nYD90KGUpOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoZT0+dHlwZW9mIGU9PWBzdHJpbmdgP3QoZSk6ZSk6ZX12YXIgQj0oe2RhdGFRYTplLHRhcmdldDp0PWBfc2VsZmAsZm9yZWdyb3VuZElubGluZUxpbms6bj1gYmx1ZTYwYCxvbkxpbmtDbGljazpyfT17fSk9PntsZXR7d2l0aEN1c3RvbURhdGE6aX09bCgpO3JldHVybiBmdW5jdGlvbihhLG8pe3ZhciBzO3JldHVybiBvPygwLHguanN4KShWLHskY29sb3I6biwiZGF0YS1xYSI6ZSx0YXJnZXQ6dCxocmVmOihhPT1udWxsfHwocz1hLmRhdGEpPT1udWxsfHwocz1zLnRhcmdldCk9PW51bGx8fChzPXMuZmllbGRzKT09bnVsbHx8KHM9cy5maWxlKT09bnVsbD92b2lkIDA6cy51cmwpfHxhLmRhdGEudXJpfHxgYCxvbkNsaWNrOnIsY2hpbGRyZW46eihvLGkpfHxvfSk6bnVsbH19LFY9ZihMKS5hdHRycyhlPT4oe3N0eWxlOnsiLS1saW5rLWNvbG9yIjp0KGUuJGNvbG9yKX19KSkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YElubGluZUh5cGVyTGlua19fU3R5bGVkSW5saW5lTGlua2AsY29tcG9uZW50SWQ6YHNjLWExMWZlYTIyLTBgfSkoW2B3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7c3Bhbnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lICFpbXBvcnRhbnQ7Y29sb3I6dmFyKC0tbGluay1jb2xvcik7fWBdKSx0ZT0oe2RlZmF1bHRTcGFjaW5nVG9wOmV9PXt9KT0+ZnVuY3Rpb24odCl7dmFyIG4saTtyZXR1cm4oMCx4LmpzeCkocix7c3BhY2luZ1RvcDplLGNoaWxkcmVuOigwLHguanN4KShjLHtsb2FkaW5nOmBsYXp5YCxtYXhXaWR0aDpgMTAwJWAsYWx0Oih0PT1udWxsfHwobj10LmRhdGEpPT1udWxsfHwobj1uLnRhcmdldCk9PW51bGx8fChuPW4uZmllbGRzKT09bnVsbD92b2lkIDA6bi50aXRsZSl8fGBgLHNyYzoodD09bnVsbHx8KGk9dC5kYXRhKT09bnVsbHx8KGk9aS50YXJnZXQpPT1udWxsfHwoaT1pLmZpZWxkcyk9PW51bGx8fChpPWkuZmlsZSk9PW51bGw/dm9pZCAwOmkudXJsKXx8YGB9KX0pfSxIPSh7ZGVmYXVsdFNwYWNpbmdUb3A6dCxhZGRpdGlvbmFsUHJvcHM6bn09e30pPT5mdW5jdGlvbihpKXt2YXIgYTtyZXR1cm4oMCx4LmpzeCkocix7ZGlzcGxheTpgYmxvY2tgLHNwYWNpbmdUb3A6dCxjaGlsZHJlbjooMCx4LmpzeCkoZSx7Y29udGVudDppPT1udWxsfHwoYT1pLmRhdGEpPT1udWxsP3ZvaWQgMDphLnRhcmdldCxhZGRpdGlvbmFsUHJvcHM6bn0pfSl9LG5lPSgpPT5mdW5jdGlvbigpe3JldHVybigwLHguanN4KShoLHtjb2xvcjpgYmdMaW5lYH0pfSxVPXtoMTpgdGl0bGUyYCxoMjpgdGl0bGUyYCxoMzpgdGl0bGUzYCxoNDpgdGl0bGU0YCxoNTpgbGFiZWwxYCxoNjpgbGFiZWwyYH0sVz0oe2FzOmUsdmFyaWFudDp0LGRpc3BsYXk6bj1gaW5saW5lYCxjb2xvcjpyPWBmb3JlZ3JvdW5kYCxkZWZhdWx0U3BhY2luZ1RvcDppPTN9KT0+e2xldHt3aXRoQ3VzdG9tRGF0YTpvfT1sKCk7cmV0dXJuIGZ1bmN0aW9uKHMsYyl7cmV0dXJuKDAseC5qc3gpKGEse2FzOmUsY29sb3I6cixkaXNwbGF5Om4sdmFyaWFudDp0fHxVW2VdLHNwYWNpbmdUb3A6aSxjaGlsZHJlbjp6KGMsbyl9KX19LEc9KHthczplLGNzczp0LGNvbG9yOm59KT0+e2xldCByPWU9PT1gb2xgP3tsaXN0U3R5bGVUeXBlOmBkZWNpbWFsYH06e2xpc3RTdHlsZVR5cGU6YGRpc2NgfTtyZXR1cm4gZnVuY3Rpb24oaSxhKXtyZXR1cm4oMCx4LmpzeCkoSyx7YXM6ZSxkaXNwbGF5OmBibG9ja2Asc3BhY2luZ1N0YXJ0OjMsY29sb3I6biwkX2Nzczp0fHxyLGNoaWxkcmVuOmF9KX19LEs9ZihyKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgTGlzdF9fX1N0eWxlZERpdmAsY29tcG9uZW50SWQ6YHNjLWE0YTFkNzFiLTBgfSkoW2BgLGBgXSxlPT5lLiRfY3NzKSxxPSh7Y29sb3I6ZSxjc3M6dCxsaXN0V3JhcHBlcjpufT17fSk9PntsZXQgcj1ufHxTLkZyYWdtZW50LHt3aXRoQ3VzdG9tRGF0YTppfT1sKCk7cmV0dXJuIGZ1bmN0aW9uKG4sYSl7cmV0dXJuKDAseC5qc3gpKHIse2NoaWxkcmVuOigwLHguanN4KShKLHthczpgbGlgLHZhcmlhbnQ6YGJvZHlgLGRpc3BsYXk6YGxpc3QtaXRlbWAsY29sb3I6ZSwkX2Nzczp0LGNoaWxkcmVuOnooYSxpKX0pfSl9fSxKPWYoYSkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YExpc3RJdGVtX19fU3R5bGVkVGV4dGAsY29tcG9uZW50SWQ6YHNjLWNlMzNmZDkzLTBgfSkoW2BgLGBgXSxlPT5lLiRfY3NzKSxZPSh7Y3NzOmUsY29sb3I6dCx2YXJpYW50Om49YGJvZHlgLGRpc3BsYXk6cj1gYmxvY2tgLHBhcmFncmFwaFNwYWNpbmdUb3A6aX09e30pPT57bGV0e3dpdGhDdXN0b21EYXRhOmF9PWwoKTtyZXR1cm4gZnVuY3Rpb24obyxzKXtyZXR1cm4oMCx4LmpzeCkoWCx7YXM6by5jb250ZW50LnNvbWUoZT0+ZS5tYXJrcyYmZS5tYXJrcy5zb21lKGU9PmUudHlwZT09PWBjb2RlYCkpP2BkaXZgOmBwYCxjb2xvcjp0LGRpc3BsYXk6cix2YXJpYW50Om4sc3BhY2luZ1RvcDppLCRfY3NzOmUsY2hpbGRyZW46eihzLGEpfSl9fSxYPWYoYSkud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YFBhcmFncmFwaF9fX1N0eWxlZFRleHRgLGNvbXBvbmVudElkOmBzYy1kNGI4OTRiNS0wYH0pKGU9Pih7d29yZEJyZWFrOmBub3JtYWxgLG92ZXJmbG93V3JhcDpgYW55d2hlcmVgLHdoaXRlU3BhY2U6YGJyZWFrLXNwYWNlc2AsLi4uZS4kX2Nzc30pKSxyZT0oe3NlY29uZGFyeUNvbG9yOmUsY3NzOnR9PXt9KT0+ZnVuY3Rpb24obixyKXtyZXR1cm4oMCx4LmpzeCkoWix7YXM6YGJsb2NrcXVvdGVgLGRpc3BsYXk6YGJsb2NrYCxvdmVyZmxvdzpgaGlkZGVuYCxjb2xvcjplLCRfY3NzOnR8fHttYXJnaW5CbG9ja1N0YXJ0OmAxZW1gLG1hcmdpbkJsb2NrRW5kOmAxZW1gLG1hcmdpbklubGluZVN0YXJ0OjQwLG1hcmdpbklubGluZUVuZDo0MH0sY2hpbGRyZW46cn0pfSxaPWYocikud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YFF1b3RlX19fU3R5bGVkRGl2YCxjb21wb25lbnRJZDpgc2MtNjg5YjNhNTMtMGB9KShbYGAsYGBdLGU9PmUuJF9jc3MpLGllPSgpPT5mdW5jdGlvbihlLHQpe3JldHVybigwLHguanN4KShhZSx7Y2hpbGRyZW46KDAseC5qc3gpKGB0Ym9keWAse2NoaWxkcmVuOnR9KX0pfSxhZT1mLnRhYmxlLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBUYWJsZV9fU3R5bGVkVGFibGVgLGNvbXBvbmVudElkOmBzYy1iOGE1YzA0MS0wYH0pKFtgd2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7cHtwYWRkaW5nOnZhcigtLXNwYWNlLTEpO310ZHtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjBweDt9dGh7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIwcHg7Ym9yZGVyLWJvdHRvbToycHggc29saWQgcmdiYSg5MSw5OSwxMTAsMC42Nik7fXRyOmZpcnN0LWNoaWxke3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt9dHI6bnRoLWNoaWxkKG9kZCl7YmFja2dyb3VuZDojZWVmMGYzO31gXSk7ZnVuY3Rpb24gb2UoZSl7bGV0IHQ9e307Zm9yKGxldCBuIG9mIGUpdFtuXT0oZSx0KT0+dDtyZXR1cm4gdH1mdW5jdGlvbiBRKGUsdCl7cmV0dXJuKDAsUi5kb2N1bWVudFRvUmVhY3RDb21wb25lbnRzKShlLHtyZW5kZXJOb2RlOm9lKHQpfSl9ZnVuY3Rpb24gc2UoKXtyZXR1cm57W3AuTElTVF9JVEVNXTooZSx0KT0+UShlLFtwLlBBUkFHUkFQSF0pLFtwLlFVT1RFXTooZSx0KT0+KDAseC5qc3gpKGEse3ZhcmlhbnQ6YGRpc3BsYXkyYCxhczpgaDJgLGNoaWxkcmVuOlEoZSxbcC5QQVJBR1JBUEhdKX0pfX12YXIgJD0oe2N1c3RvbVJlbmRlck9wdGlvbnM6ZSxjdXN0b21SZW5kZXJNYXJrczp0LGhhc092ZXJyaWRlQ29udGVudGZ1bFBhcmFncmFwaFdyYXBwaW5nOm59PXt9KT0+cj0+e2xldCBhPWUmJk9iamVjdC5rZXlzKGUpLm1hcCh0PT57bGV0IG49ZVt0XTtyZXR1cm5bdCxuJiZuKHsuLi5yfSldfSkucmVkdWNlKChlLHQpPT4oey4uLmUsW3RbMF1dOnRbMV19KSx7fSk7cmV0dXJue3JlbmRlck1hcms6ey4uLnR9LHJlbmRlck5vZGU6e1twLkhFQURJTkdfMV06Vyh7YXM6YGgxYCwuLi5yfSksW3AuSEVBRElOR18yXTpXKHthczpgaDJgLC4uLnJ9KSxbcC5IRUFESU5HXzNdOlcoe2FzOmBoM2AsLi4ucn0pLFtwLkhFQURJTkdfNF06Vyh7YXM6YGg0YCwuLi5yfSksW3AuSEVBRElOR181XTpXKHthczpgaDVgLC4uLnJ9KSxbcC5IRUFESU5HXzZdOlcoe2FzOmBoNmAsLi4ucn0pLFtwLlBBUkFHUkFQSF06WSh7Li4ucn0pLFtwLkVNQkVEREVEX0FTU0VUXTp0ZSh7Li4ucn0pLFtwLkVNQkVEREVEX0VOVFJZXTpIKHsuLi5yLGFkZGl0aW9uYWxQcm9wczp7Li4ucixpc0Z1bGxXaWR0aDohMX19KSxbcC5MSVNUX0lURU1dOnEoey4uLnJ9KSxbcC5VTF9MSVNUXTpHKHthczpgdWxgLC4uLnJ9KSxbcC5PTF9MSVNUXTpHKHthczpgb2xgLC4uLnJ9KSxbcC5RVU9URV06cmUoey4uLnJ9KSxbcC5UQUJMRV06aWUoKSxbcC5IUl06bmUoKSxbeS5IWVBFUkxJTktdOkIoe2RhdGFRYTppLlNoYXJlZFJpY2hUZXh0LC4uLnJ9KSxbeS5BU1NFVF9IWVBFUkxJTktdOkIoey4uLnJ9KSwuLi5hLC4uLm4mJnNlKCl9fX0sY2U9MyxsZT0kKHtoYXNPdmVycmlkZUNvbnRlbnRmdWxQYXJhZ3JhcGhXcmFwcGluZzohMH0pO2Z1bmN0aW9uIHVlKHtjb250ZW50OmUsY29sb3I6dD1gZm9yZWdyb3VuZGAsZm9yZWdyb3VuZElubGluZUxpbms6bj1gYmx1ZTYwYCxkZWZhdWx0U3BhY2luZ1RvcDppPWNlLHBhcmFncmFwaFNwYWNpbmdUb3A6YSxzZWNvbmRhcnlDb2xvcjpvPWBmb3JlZ3JvdW5kTXV0ZWRgLHJpY2hUZXh0T3B0aW9uczpzPWxlLG9uTGlua0NsaWNrOmN9KXtyZXR1cm4oMCx4LmpzeCkocix7ZGlzcGxheTpgY29udGVudHNgLGNsYXNzTmFtZTpgcmljaC10ZXh0YCxjaGlsZHJlbjooMCxSLmRvY3VtZW50VG9SZWFjdENvbXBvbmVudHMpKGUscyh7Y29sb3I6dCxmb3JlZ3JvdW5kSW5saW5lTGluazpuLGRlZmF1bHRTcGFjaW5nVG9wOmkscGFyYWdyYXBoU3BhY2luZ1RvcDphLHNlY29uZGFyeUNvbG9yOm8sb25MaW5rQ2xpY2s6Y30pKX0pfWV4cG9ydHtCIGFzIGEsSSBhcyBjLGogYXMgZCxBIGFzIGYsQyBhcyBnLHcgYXMgaCxIIGFzIGksTiBhcyBsLEQgYXMgbSwkIGFzIG4sViBhcyBvLGsgYXMgcCxZIGFzIHIsTCBhcyBzLHVlIGFzIHQsTSBhcyB1fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19DbkJadGV0Ni5qcy5tYXA="}},"time_used":106,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":106,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"dynamic-assets.coinbase.com/e785e0181f1a23a30d9476038d9be91e9f6c63959b538eabbc51a1abc8898940383291eede695c3b8dfaa1829a9b57f5a2d0a16b0523580346c6b8fab67af14b/asset_icons/b57ac673f06a4b0338a596817eb0a50ce16e2059f327dc117744449a47915cb2.png","fqdn":"dynamic-assets.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.053Z","timestamp":1785108244053,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /e785e0181f1a23a30d9476038d9be91e9f6c63959b538eabbc51a1abc8898940383291eede695c3b8dfaa1829a9b57f5a2d0a16b0523580346c6b8fab67af14b/asset_icons/b57ac673f06a4b0338a596817eb0a50ce16e2059f327dc117744449a47915cb2.png HTTP/1.1\r\nHost: dynamic-assets.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-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\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: image/png\r\ncontent-length: 2589\r\nlast-modified: Thu, 28 Feb 2019 18:36:45 GMT\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\netag: \"8f8d12b8691a706a99e7544bd33527c2\"\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 1cd8e8e00c7ffa643d8c2094a6e60404.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: VIE50-P4\r\nx-amz-cf-id: Gh0n-EhFkQ-aWRnWm_Xx1f-Y4FXV78gUL63gH760-VjaiQD6NGHe2Q==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=2saNrIP7C5rJ9Z%2Baj1DVA9G%2FN%2F2%2FNX0IXHqryeGyseyX1xfO8Dp3G9XnXAmvTcEe8W6KMxfRP70apMcMMask02eP2Wxf%2F8CMiSXERd61S7tmTAuo3mpSYpHvxm%2F1mU3RcTFSNXklfzCZGQiriIkE\"}]}\r\ncache-control: public, max-age=7200\r\ncf-polished: ok, orig_size=2589\r\ncf-bgj: imgq:100,h2pri\r\npriority: u=4;i=?0,cf-chb=(37;u=4;i 887;u=5;i=?0)\r\nage: 4958\r\nexpires: Mon, 27 Jul 2026 01:24:04 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nvary: accept-encoding\r\ncf-ray: a21727dd58000883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":2589,"size_decoded":3779,"mime_type":"image/png","magic":"PNG image data, 128 x 128, 8-bit colormap, non-interlaced","md5":"8f8d12b8691a706a99e7544bd33527c2","sha1":"1ecd8325658f45911e28e94afb85f3aba3ea38c4","sha256":"8022fd53c251f18cb39cefede445f1c78a3b265989232f0bb46b9c4622e55a9e","sha512":"36abf50c637a730a26ceea1ab4e2c9d153274b5c1a03d273372f0b580eeed3267d08d4512326da520bd19b425288d72f0c2edc8abdbd3549b03612c639946021","ssdeep":"","tlshash":"a9513aa1c3955ea0445ad9910b83ea56263031dca284f7d6ee3024900f68b35b4d2b73","first_seen":"2023-04-13T08:11:26Z","last_seen":"2026-07-26T23:25:46.830755Z","times_seen":316,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAC91BMVEUAAAD4lBr3lBv3kxr/qiv/v0D3lBv4kxr4kxv/mxv3lBv/lSv4lhz4kxr4lBv3lxv3lRv4kxv4lBr6lhv4lRz3lBv3lyD5lBv4kxv6kx34kxr4lBr3kxv6lBz/nSf4lBr//4D3kxr4lhv4lBr7lB34lBr7lh33lBr4kxr3kxv/nyD4kxv/lyP/lRr3lBv4lBv6lRv3lBv4lBv4lBv4kxr/lCH4lBr4lBr3lBv6lBv/niT3kxr////+/v3+/fz5uWr3lBz3kxv4p0X++vX837z71KT97975sVr3lB3+/v74qUj3mCX83bj4pUD+8+f5sVv3myz7zJP5s175tGD++/b7zZX6wn/97dn97936xIP4ojr3mCT3mSf3liL++vb4pD/5rlX82a/6wn797tv6xof84sH4qUn827L5r1b4pkT7z5r+8uT83LX969b958z++/f+9+/6wn36xIL+9u34ojv6wHr97Nj3njL6xob5s1/3lR73lR/+/fv++fL6x4n83bf95cn4p0b6vHL4pkP7zpf4pkL3min6yIv+/Pn5uWz6w4D95sr6v3n97Nf5tWL4qkz848T84sL+9uz4qkv3nC36xYX95836vnX848P6vXP++fT83rn96dL81qn4oDb96M/7zpj+9ev70qH7z5v3lSD+8+b5uGn6wXv97tz71KX96tL3lyL827P96M771ab5tmX84L/4qUr70qD3njH7z5n4q074q03++PH+8eP6xYT84L798N/++PD6u3D71af96tP70Z784cH5slz969T5t2b706P6w4H3mCb96dH5r1f5rlP5tGH4rFD84L34qEf4oTn6x4r++fP3mir3myv5sl33nS/5um73mSj70Jz3nC77y5L4pUH84cD5sFf7yo7+9Oj3nTD5um3816r95Mf7zJT95Mb+9+783rr82Kz969X4rE/98eH4oDf6x4j4rVH82K398eL7zZb5sVn+9On3liH3njP3lyP82K76vXT837v5uWv+/Pr4qEaA3nGYAAAAO3RSTlMA/uzCBgTGudocqQxJ+9JChPnMOItDIHy7NK/f7TcNiALES/M+1D3piagQlRYdhtlexayrdB91uIVfFSGgzMAAAAaaSURBVHhexdtldxvJEgbgEhriGLKG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"}},"time_used":15,"timings":{"blocked":-1,"dns":4,"connect":4,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"static-assets.coinbase.com/growth/acquisition/global-nav/upsell/developers_upsell_cdxv2_2.jpg","fqdn":"static-assets.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.172Z","timestamp":1785108244172,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /growth/acquisition/global-nav/upsell/developers_upsell_cdxv2_2.jpg HTTP/1.1\r\nHost: static-assets.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-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\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: image/jpeg\r\ncontent-length: 11866\r\nlast-modified: Tue, 19 May 2026 19:44:10 GMT\r\netag: \"c9c2ad742a3405348b3b981922f10c50\"\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 a89672c5bed576aaabefe419c0d5bad2.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN53-P2\r\nx-amz-cf-id: IHXchWmJZB1zd4HvjttVpMNxssJM47aF3BpCky38Q8PF2SRvQMe4qQ==\r\npriority: u=1;i=?0,cf-chb=(260;u=3;i=?0 1710;u=5;i=?0 11221;u=6;i=?0)\r\ncf-bgj: imgq:85,h2pri\r\nx-content-type-options: nosniff\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\ncf-polished: ok, orig_size=12598\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=p7FzOgPJpQStwobTfiatL0t9v8MeXzGWIETm3eXlN0UAOhU1aCN1NjsFhd65QGSYwnA0lCESwTG1ad1bFSJqsMJVNNVd%2Bea7TpzwvhNErtvw1bXTdZM1nE5RM3qIwycRWeMLLnZ6GHhz04WZ\"}]}\r\nage: 3638\r\nexpires: Mon, 27 Jul 2026 01:24:04 GMT\r\ncache-control: public, max-age=7200\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvary: accept-encoding\r\ncf-ray: a21727de19830883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":11866,"size_decoded":13102,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 416x416, components 3","md5":"9b5ec69a68d14ca6bf135bb1eb0b14de","sha1":"fbe7370f453c3eaaba01582be52f678889c319c8","sha256":"ae44d34877fa36d74ebf861fa09c33e76be29847122dba1a5e3fd7808b77a526","sha512":"dd619082381f27b9caab1a02eab505329db324c47c6f27c6bf321d2f24ae129f534f8e87a0614061ccad052de35c51bf94d1efe26178fd3904d5ea9edb22f7e2","ssdeep":"192:LbDiAYBrOpB2Ck1iVtwLRlCcAwlwNhpJbTDslYuM81ygIfSW7EDP6YDXa2a3U7ur:LbDJzB5tyRgclwvv4O6y3SXxXaM7J+w8","tlshash":"e332af82da17b6eedece04384394e2699677cde3a3c58c757bbc4228c46135583d8e49","first_seen":"2026-02-20T10:40:08.007305Z","last_seen":"2026-07-26T23:25:46.801859Z","times_seen":57,"resource_available":false,"data":"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"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_D6FEz_8I2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.603Z","timestamp":1785108244603,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_D6FEz_8I2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:25 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"4342947efcfb9a413d507c2b40adafc6\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 fe7607851cd3efa2e4097f91d04ac700.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: a4uQv5bWfAX8VH9aoW3QNm3aXG9p6vac7BTiEjIp9lnur36sjYMzPA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=uWBzz2rqkkPEe9c5iVEC3ovU44H7mo%2BWOOS1bvxiu9h3kgpbMpdnIt1IxnE6aQwa2aaPzsI1RoF5ljQwPFtWoJtKEF3TKSDu5iwGpKTm7d6%2FkfESAbIQuS9WPNAVGZu38inxirDeUmtS2Bfzqklh\"}]}\r\ncf-ray: a21727e0cdd20883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":"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":9289,"size_decoded":4852,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (9249)","md5":"4342947efcfb9a413d507c2b40adafc6","sha1":"789372ca5e1840779eefc3290e97ed4c50ad7d6b","sha256":"9ece4271cc6091a08d62d44f69f4028114e9451d99ae9f7098074774996f9823","sha512":"f12195eabbda776a22e3212dc8054cdb8a828850b4413779d93a1caf44bcfc2a1c82699bcbe90cda2a14c5ac1c67cbcc4160f1032bff8e2246d038865f182438","ssdeep":"192:FLpE6EbWUM3sPXEKEa0EdE2WAdA/sme7wHI0tdRtAbXFkrae9tAi:F6H6b3iy3AA/jZogdRtAbqra0Ai","tlshash":"17121acb726072eb7e27cb55403d254db20f60647c2989c07714f8fb42d7cd1a659baa","first_seen":"2026-07-26T23:24:50.424229Z","last_seen":"2026-07-26T23:25:46.842491Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGI1M2MwNWY2LTUyYjAtNDg4OC1hOWRjLTQzZWI1M2QyNzI5N2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWI1M2MwNWY2LTUyYjAtNDg4OC1hOWRjLTQzZWI1M2QyNzI5N2ApfSkoKX1jYXRjaHt9aW1wb3J0eyRuIGFzIGUsRGMgYXMgdCxHYyBhcyBuLE9pIGFzIHIsUW4gYXMgaSxTIGFzIGEsV3AgYXMgbyxYciBhcyBzLFhzIGFzIGMsWWMgYXMgbCxfYSBhcyB1LF9kIGFzIGQsYmwgYXMgZixidCBhcyBwLGVzIGFzIG0sZmYgYXMgaCxoZiBhcyBnLGl0IGFzIF8sbHIgYXMgdn1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7aW1wb3J0e24gYXMgeSxyIGFzIGIsdCBhcyB4fWZyb20iLi9jX2tkZVZWNFBwLmpzIjtpbXBvcnR7dCBhcyBTfWZyb20iLi9jX0NQLWNnSGZZLmpzIjtpbXBvcnR7dCBhcyBDfWZyb20iLi9jX0RRaFQzUFZUMi5qcyI7dmFyIHc9aCgpLFQ9byhnKCkpLEU9ZT0+KHQsbik9Pnt0cnl7bGV0IHI9bi50eXBlPT09YHJlYWRgP3Q6ZSh0LG4ub3JpZ2luYWxBY3Rpb24pO3JldHVybiBuLnJlc29sdmUocikscn1jYXRjaChlKXt0aHJvdyBuLnJlamVjdChlKSxlfX07ZnVuY3Rpb24gZWUoZSx0LG4pe2xldCByPSgwLFQudXNlUmVmKShFKGUpKTthKCgpPT57ci5jdXJyZW50PUUoZSl9LFtlXSk7bGV0W2ksb109KDAsVC51c2VSZWR1Y2VyKShyLmN1cnJlbnQsdCxuKTtyZXR1cm5baSwoMCxULnVzZUNhbGxiYWNrKShlPT5uZXcgUHJvbWlzZSgodCxuKT0+e28oe3R5cGU6YG11dGF0ZWAsb3JpZ2luYWxBY3Rpb246ZSxyZXNvbHZlOnQscmVqZWN0Om59KX0pLFtvXSksKDAsVC51c2VDYWxsYmFjaykoKCk9Pm5ldyBQcm9taXNlKChlLHQpPT57byh7dHlwZTpgcmVhZGAscmVzb2x2ZTplLHJlamVjdDp0fSl9KSxbb10pXX12YXIgRD0oMCxULmNyZWF0ZUNvbnRleHQpKGU9PlByb21pc2UucmVqZWN0KEVycm9yKGBEaXNwYXRjaCBjb250ZXh0IG5vdCBwcm92aWRlZGApKSksTz0oKT0+e30saz0oMCxULmNyZWF0ZUNvbnRleHQpKHtsb2FkaW5nOiExLHNldExvYWRpbmcoKXt9fSksQT0oMCxULmNyZWF0ZUNvbnRleHQpKE8pO2Z1bmN0aW9uIGooZSx0KXtsZXQgbjtzd2l0Y2godC50eXBlKXtjYXNlYGVycm9yYDpyZXR1cm57Li4uZSx2YWx1ZXM6ey4uLmUudmFsdWVzLFt0Lm1ldGEubmFtZV06ey4uLmUudmFsdWVzW3QubWV0YS5uYW1lXSxlcnJvcnM6Wy4uLmUudmFsdWVzW3QubWV0YS5uYW1lXS5lcnJvcnN8fFtdLC4uLnQucGF5bG9hZF19fX07Y2FzZWBmb3JtRXJyb3JgOm49ey4uLmUsdmFsdWVzOnsuLi5lLnZhbHVlc319O2ZvcihsZXQgZSBpbiB0LnBheWxvYWQpe3ZhciByO09iamVjdC5oYXNPd24odC5wYXlsb2FkLGUpJiYobi52YWx1ZXNbZV09ey4uLm4udmFsdWVzW2VdLGVycm9yczpbLi4uKChyPW4udmFsdWVzW2VdKT09bnVsbD92b2lkIDA6ci5lcnJvcnMpfHxbXSwuLi50LnBheWxvYWRbZV1dfSl9cmV0dXJuIG47Y2FzZWByZWdpc3RlclZhbGlkYXRvcmA6dmFyIGk7cmV0dXJuey4uLmUsdmFsdWVzOnsuLi5lLnZhbHVlcyxbdC5tZXRhLm5hbWVdOnsuLi5lLnZhbHVlc1t0Lm1ldGEubmFtZV0sZXJyb3JzOnQucGF5bG9hZCgoaT1lLnZhbHVlc1t0Lm1ldGEubmFtZV0pPT1udWxsP3ZvaWQgMDppLnZhbHVlKX19LHZhbGlkYXRvcnM6ey4uLmUudmFsaWRhdG9ycyxbdC5tZXRhLm5hbWVdOnQucGF5bG9hZH19O2Nhc2VgdW5yZWdpc3RlclZhbGlkYXRvcmA6cmV0dXJuey4uLmUsdmFsdWVzOnsuLi5lLnZhbHVlcyxbdC5tZXRhLm5hbWVdOnsuLi5lLnZhbHVlc1t0Lm1ldGEubmFtZV0sZXJyb3JzOnZvaWQgMH19LHZhbGlkYXRvcnM6ey4uLmUudmFsaWRhdG9ycyxbdC5tZXRhLm5hbWVdOnZvaWQgMH19O2Nhc2VgY2xlYXJEaXJ0eVN0YXRlYDpyZXR1cm57Li4uZSx2YWx1ZXM6ey4uLmUudmFsdWVzLFt0Lm1ldGEubmFtZV06ey4uLmUudmFsdWVzW3QubWV0YS5uYW1lXSxpc0RpcnR5OiExfX19O2Nhc2VgY2hhbmdlYDpyZXR1cm57Li4uZSx2YWx1ZXM6ey4uLmUudmFsdWVzLFt0Lm1ldGEubmFtZV06e3ZhbHVlOnQucGF5bG9hZCxpc0RpcnR5OiEwLGVycm9yczplLnZhbGlkYXRvcnNbdC5tZXRhLm5hbWVdP2UudmFsaWRhdG9yc1t0Lm1ldGEubmFtZV0odC5wYXlsb2FkKTp2b2lkIDB9fX07ZGVmYXVsdDpyZXR1cm4gZX19ZnVuY3Rpb24gTShlKXtsZXQgdD17dmFsaWRhdG9yczp7fSx2YWx1ZXM6e319O2ZvcihsZXQgbiBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiYodC52YWx1ZXNbbl09e3ZhbHVlOmVbbl0saXNEaXJ0eTohMX0pO3JldHVybiB0fWZ1bmN0aW9uIE4oZSl7bGV0IHQ9e307Zm9yKGxldCBuIGluIGUudmFsdWVzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLnZhbHVlcyxuKSYmKHRbbl09ZS52YWx1ZXNbbl0udmFsdWUpO3JldHVybiB0fWZ1bmN0aW9uIHRlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHtpbml0aWFsVmFsdWVzOm49dCxvblN1Ym1pdDpyLGNoaWxkcmVuOml9KXtsZXRbYSxvLHNdPWVlKGosbixNKSxbYyxsXT0oMCxULnVzZVN0YXRlKSghMSksdT0oMCxULnVzZUNhbGxiYWNrKShhc3luYyBlPT57bGV0IHQ9ZT0+e28oe3R5cGU6YGZvcm1FcnJvcmAscGF5bG9hZDplfSl9O3RyeXtyZXR1cm4gbCghMCksYXdhaXQgcihOKGF3YWl0IHMoKSksdCxlKX1maW5hbGx5e2woITEpfX0sW3IsbyxzXSksZD0oMCxULnVzZU1lbW8pKCgpPT4oe2xvYWRpbmc6YyxzZXRMb2FkaW5nOmx9KSxbY10pO3JldHVybigwLHcuanN4KShELlByb3ZpZGVyLHt2YWx1ZTpvLGNoaWxkcmVuOigwLHcuanN4KShrLlByb3ZpZGVyLHt2YWx1ZTpkLGNoaWxkcmVuOigwLHcuanN4KShBLlByb3ZpZGVyLHt2YWx1ZTp1LGNoaWxkcmVuOigwLHcuanN4KShlLlByb3ZpZGVyLHt2YWx1ZTphLnZhbHVlcyxjaGlsZHJlbjppfSl9KX0pfSl9fWZ1bmN0aW9uIFAoZSl7bGV0IHQ9KDAsVC5jcmVhdGVDb250ZXh0KShNKGUpLnZhbHVlcyk7cmV0dXJue2NvbnRleHQ6dCxQcm92aWRlcjp0ZSh0LGUpfX1mdW5jdGlvbiBGKGUpe2xldCB0PSgwLFQudXNlQ29udGV4dCkoZS5jb250ZXh0KTtmb3IobGV0IGUgaW4gdClpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKSYmdFtlXS5pc0RpcnR5KXJldHVybiEwO3JldHVybiExfXZhciBJPW8oYygpKTtmdW5jdGlvbiBMKGUpe2xldCB0PSgwLFQudXNlQ29udGV4dCkoZS5jb250ZXh0KSxuPSgwLFQudXNlQ29udGV4dCkoRCkscj17fSxpPSgwLFQudXNlQ2FsbGJhY2spKCgwLEkuZGVmYXVsdCkoZT0+dD0+bih7dHlwZTpgY2hhbmdlYCxwYXlsb2FkOnQsbWV0YTp7bmFtZTplfX0pKSxbbl0pLGE9KDAsVC51c2VDYWxsYmFjaykoKDAsSS5kZWZhdWx0KShlPT4oKT0+bih7dHlwZTpgY2xlYXJEaXJ0eVN0YXRlYCxtZXRhOntuYW1lOmV9fSkpLFtuXSksbz0oMCxULnVzZUNhbGxiYWNrKSgoMCxJLmRlZmF1bHQpKGU9PnQ9Pm4oe3R5cGU6YGVycm9yYCxwYXlsb2FkOnQsbWV0YTp7bmFtZTplfX0pKSxbbl0pLHM9KDAsVC51c2VDYWxsYmFjaykoKDAsSS5kZWZhdWx0KShlPT50PT4obih7dHlwZTpgcmVnaXN0ZXJWYWxpZGF0b3JgLHBheWxvYWQ6dCxtZXRhOntuYW1lOmV9fSksKCk9Pm4oe3R5cGU6YHVucmVnaXN0ZXJWYWxpZGF0b3JgLG1ldGE6e25hbWU6ZX19KSkpLFtuXSk7Zm9yKGxldCBlIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJihyW2VdPXsuLi50W2VdLG5hbWU6ZSxjbGVhckRpcnR5U3RhdGU6YShlKSxvbkNoYW5nZTppKGUpLG9uRXJyb3JzOm8oZSkscmVnaXN0ZXJWYWxpZGF0b3I6cyhlKX0pO3JldHVybiByfWZ1bmN0aW9uIFIoZSx0KXsoMCxULnVzZUVmZmVjdCkoKCk9PnQ9PW51bGw/dm9pZCAwOnQodD0+e2xldCBuPVtdO2ZvcihsZXRbcixpXW9mIGUpcih0KSE9PSEwJiZuLnB1c2goRXJyb3IoaXx8YGApKTtpZihuLmxlbmd0aD4wKXJldHVybiBufSksW3RdKX12YXIgej0oZSx0KT0+e2xldCBuPSgwLFQudXNlUmVmKSghMSk7KDAsVC51c2VFZmZlY3QpKCgpPT57ZS5pc0RpcnR5JiZlLnZhbHVlLmxlbmd0aD09PTEmJiFuLmN1cnJlbnQmJih0KCksbi5jdXJyZW50PSEwKX0sW2UudmFsdWUubGVuZ3RoPT09MV0pfSxCPXtlbWFpbDpgYH0sVj1QKEIpLEg9KDAsVC5tZW1vKShmdW5jdGlvbihpKXtsZXR7Zm9ybWF0TWVzc2FnZTphfT1kKCkse2NvdW50cnlGcm9tSXA6byxsb2NhbGVDb2RlOmN9PXIoKSxsPW89PT1gVVNgJiZjPT09cy5FbmdsaXNoLHtlbWFpbDp1fT1MKFYpLGg9dih7ZW1haWw6dS52YWx1ZXx8dm9pZCAwfSk7eih1LGUpLFIoW1t5LHZvaWQgMF0sW2Isdm9pZCAwXV0sdS5yZWdpc3RlclZhbGlkYXRvcik7bGV0IGc9RihWKSxfPSgwLFQudXNlQ2FsbGJhY2spKGFzeW5jIGU9Pnt0cnl7ZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5wcmV2ZW50RGVmYXVsdCgpLHdpbmRvdy5sb2NhdGlvbi5ocmVmPWh9Y2F0Y2goZSl7bShlLHtvd25lcjpgYWNxdWlzaXRpb25gLGNvbnRleHQ6YGxvZ0hvbWVwYWdlU2lnbnVwRm9ybVN1Ym1pdGB9KX19LFtoXSk7cmV0dXJuKDAsdy5qc3hzKShmLHtnYXA6LjUsd2lkdGg6YDEwMCVgLGNoaWxkcmVuOlsoMCx3LmpzeCkobix7YXM6YHBgLGRpc3BsYXk6YGJsb2NrYCxjaGlsZHJlbjphKEMucGxhY2Vob2xkZXIpfSksKDAsdy5qc3hzKShXLHtvblN1Ym1pdDpfLGNoaWxkcmVuOlsoMCx3LmpzeCkoVSx7Li4udSxzaG93RXJyb3I6ZyYmISF1LmVycm9ycyxwbGFjZWhvbGRlcjpgc2F0b3NoaUBuYWthbW90by5jb21gLGFyaWFMYWJlbDphKEMucGxhY2Vob2xkZXIpfSksKDAsdy5qc3gpKEcse2NoaWxkcmVuOigwLHcuanN4KSh0LHt2YXJpYW50OmkudmFyaWFudCx0eXBlOmBzdWJtaXRgLGJsb2NrOiEwLGFuYWx5dGljc0lkOmA2ZjkyNjcyYS05YTNkLTQ1OGMtOTVkMy1iNmNmNmM2ZmRjYjRgLG9uQ2xpY2s6aS5vbkNsaWNrLGNoaWxkcmVuOigwLHcuanN4KShLLHtjaGlsZHJlbjphKGw/cC5zaWduVXA6cC5nZXRTdGFydGVkKX0pfSl9KV19KV19KX0pLFU9dSh4KS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgRW1haWxDVEFfX1N0eWxlZElucHV0YCxjb21wb25lbnRJZDpgc2MtMmFiYTI5NzQtMGB9KShbYGJvcmRlci1yYWRpdXM6OHB4O2BdKSxXPXUuZm9ybS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgRW1haWxDVEFfX0Zvcm1gLGNvbXBvbmVudElkOmBzYy0yYWJhMjk3NC0xYH0pKFtgZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzt3aWR0aDoxMDAlO0BtZWRpYSAoYCxgKXtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fWBdLF8ucGhvbmVfc21hbGwpLEc9dS5kaXYud2l0aENvbmZpZyh7ZGlzcGxheU5hbWU6YEVtYWlsQ1RBX19CdXR0b25Db250YWluZXJgLGNvbXBvbmVudElkOmBzYy0yYWJhMjk3NC0yYH0pKFtgbWFyZ2luLWxlZnQ6dmFyKC0tc3BhY2UtMik7QG1lZGlhIChgLGApe21hcmdpbi1sZWZ0OjA7bWFyZ2luLXRvcDp2YXIoLS1zcGFjZS0yKTt9YF0sXy5waG9uZV9zbWFsbCksSz11LmRpdi53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgRW1haWxDVEFfX0J1dHRvbkNvbnRlbnRzUGFkZGluZ2AsY29tcG9uZW50SWQ6YHNjLTJhYmEyOTc0LTNgfSkoW2BtYXJnaW4tbGVmdDp2YXIoLS1zcGFjZS0zKTttYXJnaW4tcmlnaHQ6dmFyKC0tc3BhY2UtMyk7YF0pO2Z1bmN0aW9uIHEoZSl7bGV0IHQ9KDAsVC51c2VDYWxsYmFjaykodD0+e2koKSxlLm9uU3VibWl0KHQuZW1haWwpfSxbZV0pO3JldHVybigwLHcuanN4KShWLlByb3ZpZGVyLHtvblN1Ym1pdDp0LGluaXRpYWxWYWx1ZXM6QixjaGlsZHJlbjooMCx3LmpzeCkoSCx7dmFyaWFudDplLnZhcmlhbnQsb25DbGljazplLm9uQ2xpY2t9KX0pfXZhciBKPSgwLFQubWVtbykocSksWT1lPT4oMCx3LmpzeHMpKGBzdmdgLHt3aWR0aDoyNCxoZWlnaHQ6MjQsdmlld0JveDpgMCAwIDI0IDI0YCxmaWxsOmBub25lYCx4bWxuczpgaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdgLC4uLmUsY2hpbGRyZW46WygwLHcuanN4KShgcGF0aGAse2Q6YE0xMiAyNEMxOC42Mjc0IDI0IDI0IDE4LjYyNzQgMjQgMTJDMjQgNS4zNzI1OCAxOC42Mjc0IDAgMTIgMEM1LjM3MjU4IDAgMCA1LjM3MjU4IDAgMTJDMCAxOC42Mjc0IDUuMzcyNTggMjQgMTIgMjRaYCxmaWxsOmAjMTY1MkYwYH0pLCgwLHcuanN4KShgcGF0aGAse2Q6YE0xNy4yNzQgMTAuNTE0OUMxNy41MDk1IDguOTQyOTQgMTYuMzExOCA4LjA5NzY5IDE0LjY3NTMgNy41MzM2OUwxNS4yMDYzIDUuNDAzNjlMMTMuOTEwMyA1LjA4MTE5TDEzLjM5MjggNy4xNTQ5NEMxMy4wNTIzIDcuMDY5NDQgMTIuNzAyOCA2Ljk4OTk0IDEyLjM1NCA2LjkxMDQ0TDEyLjg3NTMgNC44MjMxOUwxMS41NzkzIDQuNDk5OTRMMTEuMDQ4MyA2LjYyOTE5QzEwLjc2NjMgNi41NjQ2OSAxMC40ODg4IDYuNTAxNjkgMTAuMjIwMyA2LjQzNDE5TDEwLjIyMTggNi40Mjc0NEw4LjQzMzc1IDUuOTgxMTlMOC4wODg3NSA3LjM2NTY5QzguMDg4NzUgNy4zNjU2OSA5LjA1MSA3LjU4NjE5IDkuMDMwNzUgNy41OTk2OUM5LjU1NTc1IDcuNzMwOTQgOS42NTAyNSA4LjA3ODE5IDkuNjM0NSA4LjM1NDE5TDkuMDMgMTAuNzgwNEM5LjA2NiAxMC43ODk0IDkuMTEyNSAxMC44MDI5IDkuMTY1IDEwLjgyMzJMOS4wMjc3NSAxMC43ODk0TDguMTgwMjUgMTQuMTg4NEM4LjExNTc1IDE0LjM0NzQgNy45NTMgMTQuNTg2NyA3LjU4NTUgMTQuNDk1OUM3LjU5OSAxNC41MTQ3IDYuNjQzNSAxNC4yNjEyIDYuNjQzNSAxNC4yNjEyTDYgMTUuNzQ0N0w3LjY4NzUgMTYuMTY1NEM4LjAwMSAxNi4yNDQyIDguMzA4NSAxNi4zMjY3IDguNjEwNzUgMTYuNDAzOUw4LjA3NDUgMTguNTU3OUw5LjM2OTc1IDE4Ljg4MDRMOS45MDA3NSAxNi43NTA0QzEwLjI1NDggMTYuODQ1NyAxMC41OTgzIDE2LjkzNDIgMTAuOTM0MyAxNy4wMTgyTDEwLjQwNDcgMTkuMTM5MkwxMS43MDA4IDE5LjQ2MTdMMTIuMjM3IDE3LjMxMjJDMTQuNDQ4IDE3LjczMDcgMTYuMTEgMTcuNTYxOSAxNi44MDk4IDE1LjU2MjRDMTcuMzczOCAxMy45NTI5IDE2Ljc4MiAxMy4wMjM3IDE1LjYxODggMTIuNDE4NEMxNi40NjYzIDEyLjIyMzQgMTcuMTAzOCAxMS42NjYyIDE3LjI3NCAxMC41MTQ5Wk0xNC4zMTE1IDE0LjY2ODRDMTMuOTExOCAxNi4yNzg3IDExLjIwMDUgMTUuNDA3OSAxMC4zMjE1IDE1LjE4OTdMMTEuMDM0IDEyLjMzNTlDMTEuOTEzIDEyLjU1NTcgMTQuNzMwOCAxMi45ODk5IDE0LjMxMTUgMTQuNjY4NFpNMTQuNzEyOCAxMC40OTE3QzE0LjM0NzUgMTEuOTU2NCAxMi4wOTE1IDExLjIxMTcgMTEuMzYwMyAxMS4wMjk0TDEyLjAwNTMgOC40NDE5NEMxMi43MzY1IDguNjI0MTkgMTUuMDkzOCA4Ljk2Mzk0IDE0LjcxMjggMTAuNDkxN1pgLGZpbGw6YHdoaXRlYH0pXX0pLFg9ZT0+KDAsdy5qc3gpKGBzdmdgLHt3aWR0aDoxNixoZWlnaHQ6MTIsdmlld0JveDpgMCAwIDE2IDEyYCxmaWxsOmBub25lYCx4bWxuczpgaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdgLC4uLmUsY2hpbGRyZW46KDAsdy5qc3gpKGBwYXRoYCx7ZDpgTTQuMTAwMTNlLTA3IDYuOTk5OTRMMTIuMTcgNi45OTk5NEw4Ljg5IDEwLjI3OTlMMTAuMyAxMS42ODk5TDE2IDUuOTk5OTRMMTAuMyAwLjMwOTk0Mkw4Ljg5IDEuNzE5OTRMMTIuMTcgNC45OTk5NEw1Ljg0ODU4ZS0wNyA0Ljk5OTk0TDQuMTAwMTNlLTA3IDYuOTk5OTRaYCxmaWxsOmAjMTY1MkYwYH0pfSksWj0oMCxULm1lbW8pKGU9PmUuaGFzSWNvbj8oMCx3LmpzeCkobCx7YXM6YGJ1dHRvbmAsY2hpbGRyZW46KDAsdy5qc3hzKSgkLHtvbkNsaWNrOmUub25DbGljaywiZGF0YS10ZXN0aWQiOmBuYWtlZC1oZXJvLXBpbGwtY29udGVudGAsY2hpbGRyZW46WygwLHcuanN4KShuZSx7fSksZS5jaGlsZHJlbiwoMCx3LmpzeCkoUSx7fSldfSl9KTooMCx3LmpzeCkobCx7YXM6YGJ1dHRvbmAsY2hpbGRyZW46KDAsdy5qc3hzKSgkLHtvbkNsaWNrOmUub25DbGljaywiZGF0YS10ZXN0aWQiOmBuYWtlZC1oZXJvLXBpbGwtY29udGVudGAsY2hpbGRyZW46W2UuY2hpbGRyZW4sKDAsdy5qc3gpKFEse30pXX0pfSkpLFE9dShYKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgSGVyb1BpbGxfX1N0eWxlZEluY2VudGl2ZUFycm93YCxjb21wb25lbnRJZDpgc2MtZDc5YzYzYmQtMGB9KShbYG1hcmdpbi1sZWZ0OnZhcigtLXNwYWNlLTEpO2BdKSxuZT11KFkpLndpdGhDb25maWcoe2Rpc3BsYXlOYW1lOmBIZXJvUGlsbF9fTmFrZWRCaXRjb2luSWNvbmAsY29tcG9uZW50SWQ6YHNjLWQ3OWM2M2JkLTFgfSkoW2BtYXJnaW46dmFyKC0tc3BhY2UtMSk7bWFyZ2luLWxlZnQ6MDtgXSkscmU9dShZKS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgSGVyb1BpbGxfX1N0eWxlZEJpdGNvaW5JY29uYCxjb21wb25lbnRJZDpgc2MtZDc5YzYzYmQtMmB9KShbYG1hcmdpbjp2YXIoLS1zcGFjZS0xKTttYXJnaW4tbGVmdDp2YXIoLS1zcGFjZS0yKTtAbWVkaWEgKGAsYCl7bWFyZ2luLWxlZnQ6dmFyKC0tc3BhY2UtMSk7fWBdLF8ucGhvbmVfc21hbGwpLCQ9dShTKS5hdHRycyh7YWxpZ246YGNlbnRlcmB9KS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgSGVyb1BpbGxfX05ha2VkUGlsbGAsY29tcG9uZW50SWQ6YHNjLWQ3OWM2M2JkLTNgfSkoW2Bjb2xvcjp2YXIoLS1jb2xvci1iZ1ByaW1hcnkpO2ZvbnQtd2VpZ2h0OjUwMDsmOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y3Vyc29yOnBvaW50ZXI7fWBdKSxpZT11KFMpLmF0dHJzKHtjZW50ZXI6ITB9KS53aXRoQ29uZmlnKHtkaXNwbGF5TmFtZTpgSGVyb1BpbGxfX1BpbGxgLGNvbXBvbmVudElkOmBzYy1kNzljNjNiZC00YH0pKFtgYmFja2dyb3VuZDp2YXIoLS1jb2xvci1iZ0FsdGVybmF0ZSk7Y29sb3I6dmFyKC0tY29sb3ItYmdQcmltYXJ5KTtmb250LXdlaWdodDo1MDA7aGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czo0MHB4O2ZvbnQtc2l6ZToxNnB4O0BtZWRpYSAoYCxgKXtoZWlnaHQ6MzJweDtib3JkZXItcmFkaXVzOjMycHg7Zm9udC1zaXplOjE0cHg7fWBdLF8ucGhvbmVfc21hbGwpO2V4cG9ydHt6IGFzIGEsRiBhcyBjLEogYXMgaSxQIGFzIGwsaWUgYXMgbixSIGFzIG8scmUgYXMgcixMIGFzIHMsWiBhcyB0LEEgYXMgdX07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWNfRDZGRXpfOEkyLmpzLm1hcA=="}},"time_used":105,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":105,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_dub4iaRH.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.666Z","timestamp":1785108244666,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_dub4iaRH.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 2046\r\nlast-modified: Sun, 26 Jul 2026 22:31:30 GMT\r\netag: \"7d3221bdab2b6d3218def693cd871e58\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 06cacd0422733e64f8afbe400dd4457c.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: ae7nv__yVdMIxsg_-TBQk5EzEY8jX2eDIlOsWSNG2DUqkPgnJqLndQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=9LtUAQe3CUSmwloqTh5Iz%2BQFfamQx9QC5fRLTsSS8LDKokzSRaAiEMdEVh5m2z8uR3pmYaW74vaM3EzifOzbgV4FWlduyf7tt%2BzfPicPYh%2FYt%2BIMXR84Yglo%2FmGVGX4%2FAEynvx9YwNtxWI7RYB2D\"}]}\r\ncf-ray: a21727e12ec90883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":7591,"size_decoded":3196,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (7552)","md5":"d659c06c96b15aba3c5d494df2eb4ee7","sha1":"5fa71aa2b4708d7771c23373063838d16a731231","sha256":"3f0cbb238e85e73af99473fabd7e7461bac6caa6dd06937909a23f2574b19cfa","sha512":"c5867f0abf3d9df72c05e3dc67eb1dc9b87c3bc41acf2fa558e98d01624037c247a3870559ee379a820d1df1dc6a862da73e2202400eac1b21ab2e45fc5fed7c","ssdeep":"96:x4rQI8x31qUwIh1RPW9SqfG0oURTUEakC/wmYb4g4hD4H:+rQIk31qUwIh1RPW9Sn0o00kNm+1H","tlshash":"13f113a75988666d321be1bc60f927084398441df85b8feda33eb5b7014e783073f666","first_seen":"2026-07-26T23:24:50.425612Z","last_seen":"2026-07-26T23:25:46.792457Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGY0MjQxOGIzLWFiYjItNDBiYy04NTUxLTc3MWFlODE4MGJkM2AsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWY0MjQxOGIzLWFiYjItNDBiYy04NTUxLTc3MWFlODE4MGJkM2ApfSkoKX1jYXRjaHt9aW1wb3J0e1dwIGFzIGUsX2EgYXMgdCxjZCBhcyBuLGZmIGFzIHIsaGYgYXMgaX1mcm9tIi4vZV9DcnFSVzF3UC5qcyI7dmFyIGE9ZShpKCkpLG89cigpLHM9e3Bob25lOm51bGwsdGFibGV0Ojc2OCxkZXNrdG9wOjEwMjQsbGFyZ2VfZGVza3RvcDoxMjAwfSxjPVtudWxsLGBAbWVkaWEgKG1pbi13aWR0aDogJHtzLnRhYmxldH1weClgLGBAbWVkaWEgKG1pbi13aWR0aDogJHtzLmRlc2t0b3B9cHgpYCxgQG1lZGlhIChtaW4td2lkdGg6ICR7cy5sYXJnZV9kZXNrdG9wfXB4KWBdLGw9W2BzbWAsYG1kYCxgbGdgLGB4bGBdLHU9e21kOmNbMV0sbGc6Y1syXSx4bDpjWzNdfSxkPXtkZWZhdWx0OntiYWNrZ3JvdW5kOmBiYWNrZ3JvdW5kYCxmb3JlZ3JvdW5kOmBmb3JlZ3JvdW5kYCxmb3JlZ3JvdW5kU2Vjb25kYXJ5OmBmb3JlZ3JvdW5kTXV0ZWRgLGZvcmVncm91bmRJbmxpbmVMaW5rOmBibHVlNjBgLGJhY2tncm91bmRBbHRlcm5hdGU6YGJhY2tncm91bmRBbHRlcm5hdGVgLGJvcmRlckxpbmU6YGxpbmVgLHByaW1hcnk6YHByaW1hcnlgfSxkYXJrOntiYWNrZ3JvdW5kOmBmb3JlZ3JvdW5kYCxmb3JlZ3JvdW5kOmBiYWNrZ3JvdW5kYCxmb3JlZ3JvdW5kU2Vjb25kYXJ5OmBiYWNrZ3JvdW5kYCxmb3JlZ3JvdW5kSW5saW5lTGluazpgYmx1ZTMwYCxiYWNrZ3JvdW5kQWx0ZXJuYXRlOmBmb3JlZ3JvdW5kTXV0ZWRgLGJhY2tncm91bmRIb3ZlcjpgcHJpbWFyeWAsYm9yZGVyTGluZTpgYmFja2dyb3VuZGAscHJpbWFyeTpgcHJpbWFyeWB9LGRhcmt3YXNoOntiYWNrZ3JvdW5kOmBncmF5OTBgLGZvcmVncm91bmQ6YGJhY2tncm91bmRgLGZvcmVncm91bmRTZWNvbmRhcnk6YGJhY2tncm91bmRgLGZvcmVncm91bmRJbmxpbmVMaW5rOmBibHVlMzBgLGJhY2tncm91bmRBbHRlcm5hdGU6YGZvcmVncm91bmRNdXRlZGAsYmFja2dyb3VuZEhvdmVyOmBwcmltYXJ5YCxib3JkZXJMaW5lOmBiYWNrZ3JvdW5kYCxwcmltYXJ5OmBwcmltYXJ5YH0sc3VidGxlOntiYWNrZ3JvdW5kOmBiYWNrZ3JvdW5kQWx0ZXJuYXRlYCxmb3JlZ3JvdW5kOmBmb3JlZ3JvdW5kYCxmb3JlZ3JvdW5kU2Vjb25kYXJ5OmBmb3JlZ3JvdW5kTXV0ZWRgLGZvcmVncm91bmRJbmxpbmVMaW5rOmBibHVlNjBgLGJhY2tncm91bmRBbHRlcm5hdGU6YGJhY2tncm91bmRgLGJvcmRlckxpbmU6YGZvcmVncm91bmRNdXRlZGAscHJpbWFyeTpgcHJpbWFyeWB9LHdhc2g6e2JhY2tncm91bmQ6YHByaW1hcnlXYXNoYCxmb3JlZ3JvdW5kOmBmb3JlZ3JvdW5kYCxmb3JlZ3JvdW5kU2Vjb25kYXJ5OmBmb3JlZ3JvdW5kTXV0ZWRgLGZvcmVncm91bmRJbmxpbmVMaW5rOmBibHVlNjBgLGJhY2tncm91bmRBbHRlcm5hdGU6YGJhY2tncm91bmRgLGJhY2tncm91bmRIb3ZlcjpgYmFja2dyb3VuZEFsdGVybmF0ZWAsYm9yZGVyTGluZTpgZm9yZWdyb3VuZE11dGVkYCxwcmltYXJ5OmBwcmltYXJ5YH0scHJpbWFyeTp7YmFja2dyb3VuZDpgcHJpbWFyeWAsZm9yZWdyb3VuZDpgYmFja2dyb3VuZGAsZm9yZWdyb3VuZFNlY29uZGFyeTpgYmFja2dyb3VuZEFsdGVybmF0ZWAsZm9yZWdyb3VuZElubGluZUxpbms6YGdyYXkwYCxib3JkZXJMaW5lOmBiYWNrZ3JvdW5kYCxiYWNrZ3JvdW5kQWx0ZXJuYXRlOmBmb3JlZ3JvdW5kYCxiYWNrZ3JvdW5kSG92ZXI6YGxpbmVgLHByaW1hcnk6YGJhY2tncm91bmRgfX0sZj0oZSx0KT0+YHZhcigtLWNvbG9yLSR7XyhlLHQpfSlgLHA9ZT0+YHJnYih2YXIoLS0ke2V9KSlgLG09e2ZvcmVncm91bmQ6YGZnYCxmb3JlZ3JvdW5kTXV0ZWQ6YGZnTXV0ZWRgLHByaW1hcnk6YGZnUHJpbWFyeWAscHJpbWFyeUZvcmVncm91bmQ6YGZnSW52ZXJzZWAsc2Vjb25kYXJ5OmBiZ1NlY29uZGFyeWAsc2Vjb25kYXJ5Rm9yZWdyb3VuZDpgZmdgLHBvc2l0aXZlOmBmZ1Bvc2l0aXZlYCxwb3NpdGl2ZUZvcmVncm91bmQ6YGZnSW52ZXJzZWAsbmVnYXRpdmU6YGZnTmVnYXRpdmVgLG5lZ2F0aXZlRm9yZWdyb3VuZDpgZmdJbnZlcnNlYCx3YXJuaW5nOmBiZ1dhcm5pbmdgLHdhcm5pbmdGb3JlZ3JvdW5kOmBmZ1dhcm5pbmdgLGJhY2tncm91bmQ6YGJnYCxiYWNrZ3JvdW5kQWx0ZXJuYXRlOmBiZ0FsdGVybmF0ZWAsYmFja2dyb3VuZEludmVyc2U6YGJnSW52ZXJzZWAsYmFja2dyb3VuZE92ZXJsYXk6YGJnT3ZlcmxheWAsbGluZTpgYmdMaW5lYCxsaW5lSGVhdnk6YGJnTGluZUhlYXZ5YCx0cmFuc3BhcmVudDpgdHJhbnNwYXJlbnRgLG5lZ2F0aXZlV2FzaDpgYmdOZWdhdGl2ZVdhc2hgLHByaW1hcnlXYXNoOmBiZ1ByaW1hcnlXYXNoYH0saD17YmFja2dyb3VuZDpgYmdgLGJhY2tncm91bmRBbHRlcm5hdGU6YGJnQWx0ZXJuYXRlYCxiYWNrZ3JvdW5kT3ZlcmxheTpgYmdPdmVybGF5YCxiYWNrZ3JvdW5kSW52ZXJzZTpgYmdJbnZlcnNlYCxwcmltYXJ5OmBiZ1ByaW1hcnlgLHByaW1hcnlXYXNoOmBiZ1ByaW1hcnlXYXNoYCxzZWNvbmRhcnk6YGJnU2Vjb25kYXJ5YCxwb3NpdGl2ZTpgYmdQb3NpdGl2ZWAsbmVnYXRpdmU6YGJnTmVnYXRpdmVgLHdhcm5pbmc6YGJnV2FybmluZ2AsdHJhbnNwYXJlbnQ6YHRyYW5zcGFyZW50YCxuZWdhdGl2ZVdhc2g6YGJnTmVnYXRpdmVXYXNoYCxmb3JlZ3JvdW5kOmBmZ2AsZm9yZWdyb3VuZE11dGVkOmBmZ011dGVkYCxsaW5lOmBiZ0xpbmVgLGxpbmVIZWF2eTpgYmdMaW5lSGVhdnlgLG5lZ2F0aXZlRm9yZWdyb3VuZDpgZmdJbnZlcnNlYCxwb3NpdGl2ZUZvcmVncm91bmQ6YGZnSW52ZXJzZWAscHJpbWFyeUZvcmVncm91bmQ6YGZnSW52ZXJzZWAsc2Vjb25kYXJ5Rm9yZWdyb3VuZDpgZmdgLHdhcm5pbmdGb3JlZ3JvdW5kOmBmZ1dhcm5pbmdgfSxnPXtwcmltYXJ5OmBiZ0xpbmVQcmltYXJ5YCxwcmltYXJ5V2FzaDpgYmdMaW5lUHJpbWFyeVN1YnRsZWAsc2Vjb25kYXJ5OmBiZ0xpbmVgLHBvc2l0aXZlOmBiZ1Bvc2l0aXZlYCxuZWdhdGl2ZTpgYmdOZWdhdGl2ZWAsbGluZTpgYmdMaW5lYCxsaW5lSGVhdnk6YGJnTGluZUhlYXZ5YCx0cmFuc3BhcmVudDpgdHJhbnNwYXJlbnRgLHdhcm5pbmc6YGJnV2FybmluZ2Asd2FybmluZ0ZvcmVncm91bmQ6YGZnV2FybmluZ2AsYmFja2dyb3VuZDpgYmdgLGJhY2tncm91bmRBbHRlcm5hdGU6YGJnQWx0ZXJuYXRlYCxiYWNrZ3JvdW5kT3ZlcmxheTpgYmdPdmVybGF5YCxiYWNrZ3JvdW5kSW52ZXJzZTpgYmdJbnZlcnNlYCxmb3JlZ3JvdW5kOmBmZ2AsZm9yZWdyb3VuZE11dGVkOmBmZ011dGVkYCxuZWdhdGl2ZUZvcmVncm91bmQ6YGZnSW52ZXJzZWAscG9zaXRpdmVGb3JlZ3JvdW5kOmBmZ0ludmVyc2VgLHByaW1hcnlGb3JlZ3JvdW5kOmBmZ0ludmVyc2VgLHNlY29uZGFyeUZvcmVncm91bmQ6YGZnYCxuZWdhdGl2ZVdhc2g6YGJnTmVnYXRpdmVXYXNoYH0sXz0oZSx0KT0+e3N3aXRjaCh0KXtjYXNlYGZvcmVncm91bmRgOnJldHVybiBtW2VdfHxgZmdgO2Nhc2VgYmFja2dyb3VuZGA6cmV0dXJuIGhbZV18fGBiZ2A7Y2FzZWBib3JkZXJgOnJldHVybiBnW2VdfHxgbGluZWB9fSx2PXtmb3JlZ3JvdW5kOmB2YXIoLS1mb3JlZ3JvdW5kKWAsZm9yZWdyb3VuZE11dGVkOmB2YXIoLS1mb3JlZ3JvdW5kLW11dGVkKWAsYmFja2dyb3VuZDpgdmFyKC0tYmFja2dyb3VuZClgLGJhY2tncm91bmRBbHRlcm5hdGU6YHZhcigtLWJhY2tncm91bmQtYWx0ZXJuYXRlKWAsYmFja2dyb3VuZEludmVyc2U6YHZhcigtLWJhY2tncm91bmQtaW52ZXJzZSlgLGJhY2tncm91bmRPdmVybGF5OmB2YXIoLS1iYWNrZ3JvdW5kLW92ZXJsYXkpYCxsaW5lOmB2YXIoLS1saW5lKWAsbGluZUhlYXZ5OmB2YXIoLS1saW5lLWhlYXZ5KWAscHJpbWFyeTpgdmFyKC0tcHJpbWFyeSlgLHByaW1hcnlXYXNoOmB2YXIoLS1wcmltYXJ5LXdhc2gpYCxwcmltYXJ5Rm9yZWdyb3VuZDpgdmFyKC0tcHJpbWFyeS1mb3JlZ3JvdW5kKWAsbmVnYXRpdmU6YHZhcigtLW5lZ2F0aXZlKWAsbmVnYXRpdmVGb3JlZ3JvdW5kOmB2YXIoLS1uZWdhdGl2ZS1mb3JlZ3JvdW5kKWAsbmVnYXRpdmVXYXNoOmB2YXIoLS1uZWdhdGl2ZS13YXNoKWAscG9zaXRpdmU6YHZhcigtLXBvc2l0aXZlKWAscG9zaXRpdmVGb3JlZ3JvdW5kOmB2YXIoLS1wb3NpdGl2ZS1mb3JlZ3JvdW5kKWAsc2Vjb25kYXJ5OmB2YXIoLS1zZWNvbmRhcnkpYCxzZWNvbmRhcnlGb3JlZ3JvdW5kOmB2YXIoLS1zZWNvbmRhcnktZm9yZWdyb3VuZClgLHRyYW5zcGFyZW50OmB2YXIoLS10cmFuc3BhcmVudClgLHdhcm5pbmc6YHZhcigtLXdhcm5pbmcpYCx3YXJuaW5nRm9yZWdyb3VuZDpgdmFyKC0td2FybmluZy1mb3JlZ3JvdW5kKWB9LHk9e2FsbDp7cG9zaXRpb246YGFic29sdXRlYCx0b3A6MCxib3R0b206MCxsZWZ0OjAscmlnaHQ6MH0sdG9wOntwb3NpdGlvbjpgYWJzb2x1dGVgLHRvcDowLGxlZnQ6MCxyaWdodDowfSxib3R0b206e3Bvc2l0aW9uOmBhYnNvbHV0ZWAsYm90dG9tOjAsbGVmdDowLHJpZ2h0OjB9LGxlZnQ6e3Bvc2l0aW9uOmBhYnNvbHV0ZWAsdG9wOjAsYm90dG9tOjAsbGVmdDowfSxyaWdodDp7cG9zaXRpb246YGFic29sdXRlYCx0b3A6MCxib3R0b206MCxyaWdodDowfX0sYj1lPT5gY2FsYygke2V9ICogdmFyKC0tc3BhY2UtMSkpYCx4PShlLHQpPT57aWYodHlwZW9mIGU9PWBvYmplY3RgKXJldHVybmByZ2JhKHZhcigtLSR7ZVswXX0pLCAke2VbMV19KWA7aWYoZSBpbiB2KXtsZXQgbj1fKGUsdCk7cmV0dXJuIG4/YHZhcigtLWNvbG9yLSR7bn0pYDpgdHJhbnNwYXJlbnRgfXJldHVybmByZ2IodmFyKC0tJHtlfSkpYH0sUz17Z3JpZENvbHVtbjohMCxncmlkUm93OiEwLGdyaWRBdXRvRmxvdzohMCxncmlkQXV0b0NvbHVtbnM6ITAsZ2l0QXV0b1Jvd3M6ITAsZ3JpZFRlbXBsYXRlOiEwLGdyaWRUZW1wbGF0ZUNvbHVtbnM6ITAsZ3JpZFRlbXBsYXRlUm93czohMCxncmlkVGVtcGxhdGVBcmVhczohMCxncmlkQXJlYTohMCx6SW5kZXg6ITAscG9zaXRpb246ITAsdG9wOiEwLHJpZ2h0OiEwLGJvdHRvbTohMCxsZWZ0OiEwLGRpc3BsYXk6ITAsb3ZlcmZsb3c6ITAsb3ZlcmZsb3dYOiEwLG92ZXJmbG93WTohMCx3aWR0aDohMCxoZWlnaHQ6ITAsbWluV2lkdGg6ITAsbWluSGVpZ2h0OiEwLG1heFdpZHRoOiEwLG1heEhlaWdodDohMCxmbGV4OiEwLGZsZXhXcmFwOiEwLGZsZXhEaXJlY3Rpb246ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmbGV4QmFzaXM6ITAsYWxpZ25JdGVtczohMCxhbGlnbkNvbnRlbnQ6ITAsYWxpZ25TZWxmOiEwLGp1c3RpZnlJdGVtczohMCxqdXN0aWZ5Q29udGVudDohMCxqdXN0aWZ5U2VsZjohMCxvcmRlcjohMCxjb2x1bW5Db3VudDohMCxib3JkZXI6ITAsYm9yZGVyVG9wOiEwLGJvcmRlckJvdHRvbTohMCxib3JkZXJMZWZ0OiEwLGJvcmRlclJpZ2h0OiEwLHBpbjplPT55W2VdLGNvbG9yOmU9Pih7Y29sb3I6eChlLGBmb3JlZ3JvdW5kYCl9KSxiYWNrZ3JvdW5kOmU9Pih7YmFja2dyb3VuZENvbG9yOngoZSxgYmFja2dyb3VuZGApfSksYm9yZGVyQ29sb3I6ZT0+KHtib3JkZXJDb2xvcjp4KGUsYGJvcmRlcmApfSksZ2FwOmU9Pih7Z2FwOmIoZSl9KSxjb2x1bW5HYXA6ZT0+KHtjb2x1bW5HYXA6YihlKX0pLHJvd0dhcDplPT4oe3Jvd0dhcDpiKGUpfSksc3BhY2luZzplPT4oe3BhZGRpbmc6YihlKX0pLHNwYWNpbmdUb3A6ZT0+KHtwYWRkaW5nVG9wOmIoZSl9KSxzcGFjaW5nQm90dG9tOmU9Pih7cGFkZGluZ0JvdHRvbTpiKGUpfSksc3BhY2luZ1N0YXJ0OmU9Pih7cGFkZGluZ0xlZnQ6YihlKX0pLHNwYWNpbmdFbmQ6ZT0+KHtwYWRkaW5nUmlnaHQ6YihlKX0pLHNwYWNpbmdWZXJ0aWNhbDplPT4oe3BhZGRpbmdUb3A6YihlKSxwYWRkaW5nQm90dG9tOmIoZSl9KSxzcGFjaW5nSG9yaXpvbnRhbDplPT4oe3BhZGRpbmdMZWZ0OmIoZSkscGFkZGluZ1JpZ2h0OmIoZSl9KSxvZmZzZXQ6ZT0+KHttYXJnaW46YigtZSl9KSxvZmZzZXRUb3A6ZT0+KHttYXJnaW5Ub3A6YigtZSl9KSxvZmZzZXRCb3R0b206ZT0+KHttYXJnaW5Cb3R0b206YigtZSl9KSxvZmZzZXRTdGFydDplPT4oe21hcmdpbkxlZnQ6YigtZSl9KSxvZmZzZXRFbmQ6ZT0+KHttYXJnaW5SaWdodDpiKC1lKX0pLG9mZnNldFZlcnRpY2FsOmU9Pih7bWFyZ2luVG9wOmIoLWUpLG1hcmdpbkJvdHRvbTpiKC1lKX0pLG9mZnNldEhvcml6b250YWw6ZT0+KHttYXJnaW5MZWZ0OmIoLWUpLG1hcmdpblJpZ2h0OmIoLWUpfSksY3NzOmU9PmV9LEM9KGUsdCk9PntsZXQgbj17Li4uZSwuLi50fTtmb3IobGV0IHIgaW4gZSkhZVtyXXx8dHlwZW9mIHRbcl0hPWBvYmplY3RgfHxPYmplY3QuYXNzaWduKG4se1tyXTpPYmplY3QuYXNzaWduKGVbcl0sdFtyXSl9KTtyZXR1cm4gbn0sdz0oZSx0KT0+e2xldCBuPXt9LHI9MDtmb3IoO3I8Yy5sZW5ndGg7KXtsZXQgaT1gbGVuZ3RoYGluIGU/ZVtyXTplW2xbcl1dLGE9Y1tyXSxvPWk9PW51bGw/bnVsbDp0KGkpOyFhJiZvP09iamVjdC5hc3NpZ24obixvKTphJiYoblthXT1vfHx7fSkscisrfXJldHVybiBufSxUPWU9PnQ9PntsZXQgbj17fTtmb3IobGV0IHIgaW4gdCl7aWYoIU9iamVjdC5oYXNPd24odCxyKSljb250aW51ZTtsZXQgaT10W3JdO2lmKGk9PW51bGwpY29udGludWU7bGV0IGE9U1tyXTtpZighYSYmZSYmKGE9ZVtyXSksYSl7aWYoYT09PSEwJiYoYT1lPT4oe1tyXTplfSkpLHR5cGVvZiBpPT1gb2JqZWN0YCYmciE9PWBjc3NgKXtuPUMobix3KGksYSkpO2NvbnRpbnVlfU9iamVjdC5hc3NpZ24obixhKGkpKX19cmV0dXJuIG59LEU9VCgpLEQ9dCgoMCxhLmZvcndhcmRSZWYpKChlLHQpPT4oMCxvLmpzeCkobix7Li4uZSxyZWY6dCxjbGFzc05hbWU6ZT09bnVsbD92b2lkIDA6ZS5jbGFzc05hbWV9KSkpLndpdGhDb25maWcoe3Nob3VsZEZvcndhcmRQcm9wOmU9PiFTW2VdLGRpc3BsYXlOYW1lOmBEaXZgLGNvbXBvbmVudElkOmBzYy1mYzZiOTRhZi0wYH0pKGU9PntsZXQgdD1FKGUpO3JldHVybiB0LmRpc3BsYXl8fCh0LmRpc3BsYXk9YGZsZXhgKSx0fSksTz0oMCxhLmNyZWF0ZUNvbnRleHQpKHthbmFseXRpY3NQcmVmaXg6YGB9KSxrPSgpPT4oMCxhLnVzZUNvbnRleHQpKE8pO2Z1bmN0aW9uIEEoe2NoaWxkcmVuOmUsYW5hbHl0aWNzUHJlZml4OnR9KXtsZXR7YW5hbHl0aWNzUHJlZml4Om49YGB9PWsoKSxyPSgwLGEudXNlTWVtbykoKCk9Pih7YW5hbHl0aWNzUHJlZml4OmAke259JHtuJiZ0P2AtYDpgYH0ke3R9YH0pLFt0LG5dKTtyZXR1cm4oMCxvLmpzeCkoTy5Qcm92aWRlcix7dmFsdWU6cixjaGlsZHJlbjplfSl9ZXhwb3J0e1MgYXMgYSxwIGFzIGMsVCBhcyBpLHMgYXMgbCxrIGFzIG4sZiBhcyBvLEQgYXMgcixkIGFzIHMsQSBhcyB0LHV9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jX2R1YjRpYVJILmpzLm1hcA=="}},"time_used":115,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":115,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/c_Ct0_WMwP2.js","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.720Z","timestamp":1785108244720,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/c_Ct0_WMwP2.js HTTP/1.1\r\nHost: www.coinbase.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.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Sun, 26 Jul 2026 22:31:23 GMT\r\nserver: cloudflare\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\nx-amz-version-id: null\r\ncontent-encoding: gzip\r\netag: W/\"601b47a0b80457c75687961437382bc6\"\r\nvary: Accept-Encoding\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 9b467d1b9559306c930b2f8176043a22.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: JFK50-P15\r\nx-amz-cf-id: tA-b7jSEKV8OAE8KClMhYow3x7iBjt7kcY_KdCH9xJrRST5aT1ZOJA==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=iyS%2BAciq6QEck8C34UK%2B8LxmMKxjTWVJ%2BraVF8qvsSnW1HSPhSUaiRgBQCgq%2FYPMX%2ByiuNgzMYbW51ACBfvlCH9o1yxRfh5S6DeWv7oM4MguaK2gut2ePSH91%2BPFGRXg5tLO41nOn%2F3%2BVUzbrUWQ\"}]}\r\ncf-ray: a21727e18f880883-OSL\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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":4410,"size_decoded":2667,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (4370)","md5":"601b47a0b80457c75687961437382bc6","sha1":"d72d4054958a74bb9f8a5d39169f2b7ff5e3fa67","sha256":"a6e515478d6f48c56473d0961607799a8d04530d15360f1c7016053e8646c223","sha512":"96997a1ee56a3b6004669fd164a7bf24221c434df15dd40dd9378f6d2a18fab53405a0fba4f66f38a91efe7e85a990b05fcf096ad5ada7b8bc30a3115c597d71","ssdeep":"96:xcFCQjkIaOWWTnEhE4z7zcN/LJUmxU43wiJvGRRH:QWGCNz7z41XxDA","tlshash":"b29154d39dd07ff30a6e8a4d1067804823feb1b778c9c318e2b11f9a15135599363b99","first_seen":"2026-07-26T23:24:50.42693Z","last_seen":"2026-07-26T23:25:46.818125Z","times_seen":3,"resource_available":true,"data":"dHJ5eyhmdW5jdGlvbigpe3ZhciBlPXR5cGVvZiB3aW5kb3c8YHVgP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPGB1YD9nbG9iYWw6dHlwZW9mIGdsb2JhbFRoaXM8YHVgP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8YHVgP3NlbGY6e30sdD1uZXcgZS5FcnJvcigpLnN0YWNrO3QmJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbdF09YGFhOTEzMTA4LTA4MTItNDcwNy05ZWQ1LTlkNWIwOTUwZjYwOWAsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9YHNlbnRyeS1kYmlkLWFhOTEzMTA4LTA4MTItNDcwNy05ZWQ1LTlkNWIwOTUwZjYwOWApfSkoKX1jYXRjaHt9aW1wb3J0e0NuIGFzIGUsVmQgYXMgdCxXcCBhcyBuLGVzIGFzIHIsZmYgYXMgaSxoZiBhcyBhfWZyb20iLi9lX0NycVJXMXdQLmpzIjt2YXIgbz1pKCkscz1mdW5jdGlvbigpe3ZhciBlPVt7ZGVmYXVsdFZhbHVlOm51bGwsa2luZDpgTG9jYWxBcmd1bWVudGAsbmFtZTpgaW5wdXRgfSx7ZGVmYXVsdFZhbHVlOm51bGwsa2luZDpgTG9jYWxBcmd1bWVudGAsbmFtZTpgc2hvdWxkVXNlVUFTRmllbGRzYH1dLHQ9W3traW5kOmBWYXJpYWJsZWAsbmFtZTpgaW5wdXRgLHZhcmlhYmxlTmFtZTpgaW5wdXRgfV0sbj17YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YHByaWNlYCxzdG9yYWdlS2V5Om51bGx9LHI9e2FsaWFzOm51bGwsYXJnczpudWxsLGtpbmQ6YFNjYWxhckZpZWxkYCxuYW1lOmB0aW1lc3RhbXBgLHN0b3JhZ2VLZXk6bnVsbH0saT1be2FsaWFzOm51bGwsYXJnczpudWxsLGtpbmQ6YFNjYWxhckZpZWxkYCxuYW1lOmBob3VyYCxzdG9yYWdlS2V5Om51bGx9LHthbGlhczpudWxsLGFyZ3M6bnVsbCxraW5kOmBTY2FsYXJGaWVsZGAsbmFtZTpgZGF5YCxzdG9yYWdlS2V5Om51bGx9LHthbGlhczpudWxsLGFyZ3M6bnVsbCxraW5kOmBTY2FsYXJGaWVsZGAsbmFtZTpgd2Vla2Asc3RvcmFnZUtleTpudWxsfSx7YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YG1vbnRoYCxzdG9yYWdlS2V5Om51bGx9LHthbGlhczpudWxsLGFyZ3M6bnVsbCxraW5kOmBTY2FsYXJGaWVsZGAsbmFtZTpgeWVhcmAsc3RvcmFnZUtleTpudWxsfSx7YWxpYXM6bnVsbCxhcmdzOm51bGwsa2luZDpgU2NhbGFyRmllbGRgLG5hbWU6YGFsbGAsc3RvcmFnZUtleTpudWxsfV0sYT17Y29uZGl0aW9uOmBzaG91bGRVc2VVQVNGaWVsZHNgLGtpbmQ6YENvbmRpdGlvbmAscGFzc2luZ1ZhbHVlOiExLHNlbGVjdGlvbnM6W3thbGlhczpudWxsLGFyZ3M6bnVsbCxjb25jcmV0ZVR5cGU6YFBlcmNlbnRDaGFuZ2VzYCxraW5kOmBMaW5rZWRGaWVsZGAsbmFtZTpgcGVyY2VudENoYW5nZXNgLHBsdXJhbDohMSxzZWxlY3Rpb25zOmksc3RvcmFnZUtleTpudWxsfV19LG89e2NvbmRpdGlvbjpgc2hvdWxkVXNlVUFTRmllbGRzYCxraW5kOmBDb25kaXRpb25gLHBhc3NpbmdWYWx1ZTohMCxzZWxlY3Rpb25zOlt7YWxpYXM6bnVsbCxhcmdzOm51bGwsY29uY3JldGVUeXBlOmBQZXJjZW50Q2hhbmdlc1YyYCxraW5kOmBMaW5rZWRGaWVsZGAsbmFtZTpgcGVyY2VudENoYW5nZXNWMmAscGx1cmFsOiExLHNlbGVjdGlvbnM6aSxzdG9yYWdlS2V5Om51bGx9XX07cmV0dXJue2ZyYWdtZW50Onthcmd1bWVudERlZmluaXRpb25zOmUsa2luZDpgRnJhZ21lbnRgLG1ldGFkYXRhOm51bGwsbmFtZTpgQXNzZXRQcmljZVN1YnNjcmlwdGlvblN1YnNjcmlwdGlvbmAsc2VsZWN0aW9uczpbe2FsaWFzOm51bGwsYXJnczp0LGNvbmNyZXRlVHlwZTpgTGF0ZXN0QXNzZXRQcmljZVVwZGF0ZWRFdmVudGAsa2luZDpgTGlua2VkRmllbGRgLG5hbWU6YGxhdGVzdEFzc2V0UHJpY2VVcGRhdGVkYCxwbHVyYWw6ITEsc2VsZWN0aW9uczpbe2FsaWFzOm51bGwsYXJnczpudWxsLGNvbmNyZXRlVHlwZTpgTGF0ZXN0QXNzZXRQcmljZWAsa2luZDpgTGlua2VkRmllbGRgLG5hbWU6YGxhdGVzdFByaWNlYCxwbHVyYWw6ITEsc2VsZWN0aW9uczpbbixyLGEsb10sc3RvcmFnZUtleTpudWxsfV0sc3RvcmFnZUtleTpudWxsfV0sdHlwZTpgU3Vic2NyaXB0aW9uYCxhYnN0cmFjdEtleTpudWxsfSxraW5kOmBSZXF1ZXN0YCxvcGVyYXRpb246e2FyZ3VtZW50RGVmaW5pdGlvbnM6ZSxraW5kOmBPcGVyYXRpb25gLG5hbWU6YEFzc2V0UHJpY2VTdWJzY3JpcHRpb25TdWJzY3JpcHRpb25gLHNlbGVjdGlvbnM6W3thbGlhczpudWxsLGFyZ3M6dCxjb25jcmV0ZVR5cGU6YExhdGVzdEFzc2V0UHJpY2VVcGRhdGVkRXZlbnRgLGtpbmQ6YExpbmtlZEZpZWxkYCxuYW1lOmBsYXRlc3RBc3NldFByaWNlVXBkYXRlZGAscGx1cmFsOiExLHNlbGVjdGlvbnM6W3thbGlhczpudWxsLGFyZ3M6bnVsbCxjb25jcmV0ZVR5cGU6YExhdGVzdEFzc2V0UHJpY2VgLGtpbmQ6YExpbmtlZEZpZWxkYCxuYW1lOmBsYXRlc3RQcmljZWAscGx1cmFsOiExLHNlbGVjdGlvbnM6W24scixhLG8se2FsaWFzOm51bGwsYXJnczpudWxsLGtpbmQ6YFNjYWxhckZpZWxkYCxuYW1lOmBpZGAsc3RvcmFnZUtleTpudWxsfV0sc3RvcmFnZUtleTpudWxsfV0sc3RvcmFnZUtleTpudWxsfV19LHBhcmFtczp7aWQ6YGQ0MTk5ZGE2ZGJlOWYwYTgzMjkzMDE1MGEwNjdmYjlhZmI3YTFlOTUzNTkzZTVlZWU1ZmQ2M2RiMmFlNTU0ZTNgLG1ldGFkYXRhOnt9LG5hbWU6YEFzc2V0UHJpY2VTdWJzY3JpcHRpb25TdWJzY3JpcHRpb25gLG9wZXJhdGlvbktpbmQ6YHN1YnNjcmlwdGlvbmAsdGV4dDpudWxsfX19KCk7cy5oYXNoPWA4ZjVkYzgwOGRmZTFiYjYwM2JlYmNkNjZlNmNhNzRjZGA7dmFyIGM9bihhKCkpLGw9bmV3IFNldChbYGFib3J0ZWRgLGBmZXRjaCBpcyBhYm9ydGVkYCxgc2lnbmFsIGlzIGFib3J0ZWQgd2l0aG91dCByZWFzb25gLGB0aGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkYCxgdGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC5gLGB0aGUgdXNlciBhYm9ydGVkIGEgcmVxdWVzdGAsYHRoZSB1c2VyIGFib3J0ZWQgYSByZXF1ZXN0LmBdKSx1PTEwO2Z1bmN0aW9uIGQoZSl7bGV0IHQ9ZTtmb3IobGV0IGU9MDtlPD11O2UrKyl7aWYoIXR8fCEodCBpbnN0YW5jZW9mIEVycm9yKSlyZXR1cm4hMTtpZihmKHQpKXJldHVybiEwO2xldCBlPXQuY2F1c2U7aWYoIWV8fGU9PT10KXJldHVybiExO3Q9ZX1yZXR1cm4hMX1mdW5jdGlvbiBmKGUpe2lmKGUubmFtZT09PWBBYm9ydEVycm9yYClyZXR1cm4hMDtsZXQgdD10eXBlb2YgZS5tZXNzYWdlPT1gc3RyaW5nYD9lLm1lc3NhZ2UudG9Mb3dlckNhc2UoKTpgYDtyZXR1cm4gbC5oYXModCl9ZnVuY3Rpb24gcChlKXtsZXRbdCxuXT0oMCxjLnVzZVN0YXRlKShlKTtyZXR1cm4hdCYmZSYmbihlKSx0fXZhciBtPVs0ZTMsMTZlMyw2NGUzXSxoPW0ubGVuZ3RoO2Z1bmN0aW9uIGcoe2Fzc2V0VXVpZDpuLHF1b3RlQ3VycmVuY3k6cixvbkVycm9yOmksb25IZWFsdGh5OmF9KXtsZXQgbz1lKCk7cmV0dXJuIHQoKDAsYy51c2VNZW1vKSgoKT0+KHtzdWJzY3JpcHRpb246cyx2YXJpYWJsZXM6e2lucHV0Onthc3NldFV1aWQ6bixxdW90ZUN1cnJlbmN5OnJ9LHNob3VsZFVzZVVBU0ZpZWxkczpvfSx1cGRhdGVyOihlLHQpPT57dmFyIG47bGV0IHI9dD09bnVsbHx8KG49dC5sYXRlc3RBc3NldFByaWNlVXBkYXRlZCk9PW51bGw/dm9pZCAwOm4ubGF0ZXN0UHJpY2U7ciE9bnVsbCYmci50aW1lc3RhbXAmJmEoKX0sb25FcnJvcjppfSksW24scixvLGksYV0pKSxudWxsfWZ1bmN0aW9uIF8oe2Fzc2V0VXVpZDplLHF1b3RlQ3VycmVuY3k6dH0pe2xldCBuPSgwLGMudXNlUmVmKSgwKSxbaSxhXT0oMCxjLnVzZVN0YXRlKSgwKSxzPSgwLGMudXNlUmVmKSh2b2lkIDApLGw9KDAsYy51c2VDYWxsYmFjaykoKCk9PntuLmN1cnJlbnQ9MH0sW10pO3JldHVybigwLGMudXNlRWZmZWN0KSgoKT0+KG4uY3VycmVudD0wLCgpPT57cy5jdXJyZW50JiZjbGVhclRpbWVvdXQocy5jdXJyZW50KX0pLFtlLHRdKSwoMCxvLmpzeCkoZyx7YXNzZXRVdWlkOmUscXVvdGVDdXJyZW5jeTp0LG9uRXJyb3I6KDAsYy51c2VDYWxsYmFjaykoaT0+e2lmKGQoaSkpcmV0dXJuO2xldCBvPW4uY3VycmVudCxjPW8+PWg7aWYoKG89PT0wfHxjKSYmcihpLHtvd25lcjpgdHJhZGluZ2AsY29udGV4dDpgQXNzZXRQcmljZVN1YnNjcmlwdGlvbmAsc2V2ZXJpdHk6YHdhcm5pbmdgLGFzc2V0VXVpZDplLHF1b3RlQ3VycmVuY3k6dCxyZXRyeUF0dGVtcHQ6byxtYXhSZXRyaWVzOmgscmV0cnlFeGhhdXN0ZWQ6Y30pLG88aCl7bGV0IGU9bVtvXTtzLmN1cnJlbnQmJmNsZWFyVGltZW91dChzLmN1cnJlbnQpLHMuY3VycmVudD1zZXRUaW1lb3V0KCgpPT57bi5jdXJyZW50Kz0xLGEoZT0+ZSsxKX0sZSl9fSxbZSx0XSksb25IZWFsdGh5Omx9LGkpfWV4cG9ydHtwIGFzIG4sXyBhcyB0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y19DdDBfV013UDIuanMubWFw"}},"time_used":106,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":106,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.coinbase.com/assets/sw-cache/a_Bcn7nnPq.css","fqdn":"www.coinbase.com","domain":"coinbase.com","tld":"com"},"ip":{"addr":"104.18.35.15","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.coinbase.com/","date":"2026-07-26T23:24:04.726Z","timestamp":1785108244726,"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":"coinbase.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 15 Jul 2026 04:30:46 GMT","end":"Tue, 13 Oct 2026 05:30:25 GMT"},"fingerprint":{"sha1":"0E:D8:37:32:73:91:42:F6:80:4F:1C:67:0A:B0:01:C0:AE:CF:19:90","sha256":"B4:80:8C:87:51:99:55:65:54:72:08:85:A0:C4:23:34:16:B7:0C:64:08:93:44:91:51:5A:C9:70:94:C0:04:FD"}}},"request":{"raw":"GET /assets/sw-cache/a_Bcn7nnPq.css HTTP/1.1\r\nHost: www.coinbase.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\nReferer: https://www.coinbase.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: cb_dm=8ef157a5-3295-4f39-b9b9-e206edbc4f68; coinbase_device_id=bbfb27f8-0009-47a7-974b-39f1a9a7b2eb; __cf_bm=Gmj8FSU1c.XMN8eQpdSlQgrCTTpsehfb3iv8Ne4_XBw-1785108243.857654-1.0.1.1-ZXIHBKbu1cAm38o3BqnAzNjp7LZ5D13H0vdhzbPHLnxEewn8mtTlsutpl9qF1jCpYMpB11ov98GGD.YlOJ87CDcw8rEAW9kqJDcHkh.jrKtgxVFHWyfkEnnEAj766NqB\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Sun, 26 Jul 2026 23:24:04 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 162\r\nlast-modified: Mon, 01 Jun 2026 17:37:52 GMT\r\netag: \"6cb4a85731afcf19fbd01f8ba1e53713\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=31556926\r\ncontent-encoding: br\r\nx-amz-version-id: null\r\naccept-ranges: bytes\r\nserver: cloudflare\r\nx-cache: Miss from cloudfront\r\nvia: 1.1 71fa07378b36d27ca1ff96d018b60fbc.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: VIE50-P4\r\nx-amz-cf-id: mQLwySD04maZH5Z2H1jsjA4Vn21HSl6FgPbe6iOV2IfAwWy3xh7HEQ==\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 4772069\r\nexpires: Tue, 27 Jul 2027 05:12:50 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=FPfd51h6WXJnR94ho7jYuvBGYnkecfdq%2FDnlrYDEmBYkfwSCmvnZGa3aBe2QYEoeLgxXeyv9IXTMNtVBYh8GB1D74EmDoCnpbA5x%2BQmuFzOhfcAzIl1U7v7B9JOEy8JGo5CDrBZi6LyG7VrLQRLh\"}]}\r\ncf-ray: a21727e18f9b0883-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"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":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon 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":298,"size_decoded":1317,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"5dec7a1243244724106b12c5a1174ac3","sha1":"e428929af2a1d694b1317096b4815f391a99c55d","sha256":"f9a04cd1ba89b985956575d17b7cb1ba1b12c6cc2d6a884b9d42832725121320","sha512":"fb61148cffce758b934df784ebc7914ff6ee2f13fa68c2f45d26a4d4c84a2bd2a884a49917dbfba7d7d51c3eecef9a3fc10b98ed82b827ce599220d929120ae7","ssdeep":"","tlshash":"cce07d40843638c2e0978d5574cc7d15d03480826e7ba80ad79b8d5acb0f12e3303b4c","first_seen":"2026-06-02T03:41:41.442678Z","last_seen":"2026-07-26T23:25:46.833096Z","times_seen":11,"resource_available":false,"data":"QGxheWVyIGNkc3suaWNvbkNzcy1pZXl2cWtre2NvbG9yOmN1cnJlbnRDb2xvcjtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtcmVuZGVyaW5nOmF1dG87ZmxleC1zaHJpbms6MDtmb250LWZhbWlseTpDb2luYmFzZUljb25zO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxOy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1kZWNvcmF0aW9uOm5vbmU7ZGlzcGxheTpibG9ja30udHJhbnNpdGlvbkNzcy10MXc0dnR5ent0cmFuc2l0aW9uOmZpbGwgLjE1cyBlYXNlLWluLW91dH19Cg=="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
